CN111971958A - 视频编码中的块分割 - Google Patents
视频编码中的块分割 Download PDFInfo
- Publication number
- CN111971958A CN111971958A CN201980025703.0A CN201980025703A CN111971958A CN 111971958 A CN111971958 A CN 111971958A CN 201980025703 A CN201980025703 A CN 201980025703A CN 111971958 A CN111971958 A CN 111971958A
- Authority
- CN
- China
- Prior art keywords
- maximum
- height
- width
- sub
- residual
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/12—Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
- H04N19/122—Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/129—Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
- H04N19/159—Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Discrete Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
公开了一种视频编码机制。所述机制包括:选择划分机制将编码单元(coding unit,CU)划分成子CU以应用一个或多个变换单元(transform unit,TU),其中,所述划分机制的选择是基于将CU宽度与最大TU宽度进行比较以及将CU高度与最大TU高度进行比较;将所述选择的划分机制应用于所述CU以获得子CU;确定其中一个所述子CU的残差,所述残差包括所述子CU的像素点值与所述子CU的预测像素点之间的差值;根据所述选择的划分机制的结果,应用所述TU以变换所述CU的所述残差;将所述CU的变换残差编码到码流中。
Description
相关申请案交叉申请
本专利申请要求于2018年4月18日由傅佳莉等人提交的申请号为62/659,583、发明名称为“用于视频编码的块分割中的划分模式限制(Split Mode Restriction In BlockPartitioning For Video Coding)”的美国临时专利申请、2018年4月18日由傅佳莉等人提交的申请号为62/659,673、发明名称为“用于视频编码的块分割中的划分模式限制(SplitMode Restriction In Block Partitioning For Video Coding)”的美国临时专利申请以及2018年4月18日由傅佳莉等人提交的申请号为62/659,135、发明名称为“用于视频编码的块分割中的划分模式限制(Split Mode Restriction In Block Partitioning For VideoCoding)”的美国临时专利申请的权益,这些在先申请以引用的方式并入本文。
技术领域
本发明大体涉及视频编码,具体涉及作为视频编码机制的一部分,细分编码单元(coding unit,CU)以应用变换单元(transform unit,TU)。
背景技术
当数据要在带宽容量受限的通信网络中发送或以其它方式传输时,可能会造成困难,因为即使在视频较短的情况下也需要对大量的视频数据进行描述。因此,视频数据通常要先压缩然后在现代电信网络中传输。由于内存资源可能有限,因此当在存储设备中存储视频时,视频的大小也可能成为问题。视频压缩设备通常在源侧使用软件和/或硬件,以在传输或存储之前对视频数据进行编码,从而减少用来表示数字视频图像所需的数据量。然后,在目的地侧对视频数据进行解码的视频解压缩设备接收压缩的数据。在有限的网络资源以及对更高视频质量的需求不断增长的情况下,需要改进压缩和解压缩技术,这些改进的技术在几乎不影响图像质量的情况下能够提高压缩比。
发明内容
在一个实施例中,本发明包括一种在编码器中实现的方法。所述方法包括:处理器选择划分机制将CU划分成子CU以应用一个或多个TU,其中,所述划分机制是通过将CU宽度与最大TU宽度进行比较以及将CU高度与最大TU高度进行比较来进行选择的。所述方法还包括:所述处理器将所述选择的划分机制应用于所述CU。所述方法还包括:所述处理器确定所述CU的残差,其中,所述残差包括所述CU的像素点值与所述CU的预测像素点之间的差值。所述方法还包括:根据所述选择的划分机制的结果,应用所述TU以变换所述CU的所述残差。所述方法还包括:所述处理器将所述CU的变化残差编码到码流中。所述方法还包括:与所述处理器耦合的发射器将所述码流发送到解码器,以支持重建所述CU,用于显示。在一些视频编码系统中,将单个TU置于CU上,以变换因帧内预测和/或帧间预测而产生的残差像素点的某些部分。在某些情况下,最大TU尺寸小于CU的尺寸,这可能使残差像素点的某些部分未变换。本实施例包括一种通过比较CU尺寸和最大TU尺寸将CU划分成子CU的机制。这允许根据所述子CU划分将多个TU应用于CU,以便使变换的残差像素点数量达到最大。这又提高了编码效率。
可选地,在上述任一方面中,提供了所述方面的另一种实现方式:所述划分机制包括:确定第一CU边尺寸大于第一最大TU边尺寸,第二CU边尺寸小于或等于第二最大TU边尺寸;根据确定的结果为第一CU边尺寸大于所述第一最大TU边尺寸且所述第二CU边尺寸小于或等于所述第二最大TU边尺寸,确定不划分所述CU。
可选地,在上述任一方面中,提供了所述方面的另一种实现方式:所述划分机制包括:确定第一CU边尺寸大于第一最大TU边尺寸,第二CU边尺寸小于或等于第二最大TU边尺寸;根据确定的结果为第一CU边尺寸大于所述第一最大TU边尺寸且所述第二CU边尺寸小于或等于所述第二最大TU边尺寸,通过创建与所述第一CU边尺寸垂直的子CU划分来划分所述CU。
可选地,在上述任一方面中,提供了所述方面的另一种实现方式:所述划分机制包括:确定第一CU边尺寸大于第一最大TU边尺寸且不是第一最大TU边尺寸的整数倍,并且第二CU边尺寸大于第二最大TU边尺寸且不是第二最大TU边尺寸的整数倍;根据确定的结果为第一CU边尺寸大于所述第一最大TU边尺寸且不是所述第一最大TU边尺寸的整数倍,并且所述第二CU边尺寸大于所述第二最大TU边尺寸且不是所述第二最大TU边尺寸的整数倍,通过创建垂直于所述第一CU边尺寸的子CU划分来划分所述CU直到所述第一CU边尺寸小于所述第一最大TU边,或者通过创建垂直于所述第二CU边尺寸的子CU划分来划分所述CU直到所述第二CU边尺寸小于所述第二最大TU边。
可选地,在上述任一方面中,提供了所述方面的另一种实现方式:所述划分机制包括:确定第一CU边尺寸大于第一最大TU边尺寸且不是第一最大TU边尺寸的整数倍,并且第二CU边尺寸大于第二最大TU边尺寸且不是第二最大TU边尺寸的整数倍;根据确定的结果为第一CU边尺寸大于所述第一最大TU边尺寸且不是所述第一最大TU边尺寸的整数倍,并且所述第二CU边尺寸大于所述第二最大TU边尺寸且不是所述第二最大TU边尺寸的整数倍,通过创建垂直于所述第一CU边尺寸的子CU划分来划分所述CU直到所述第一CU边尺寸小于所述第一最大TU边,并且通过创建垂直于所述第二CU边尺寸的子CU划分来划分所述CU直到所述第二CU边尺寸小于所述第二最大TU边。
可选地,在上述任一方面中,提供了所述方面的另一种实现方式:垂直于所述第一CU边进行的子CU划分不进一步划分垂直于所述第二CU边进行的子CU划分,反之亦然。
可选地,在上述任一方面中,提供了所述方面的另一种实现方式:还包括将标志编码到所述码流中以指示为所述CU选择的所述划分机制。
可选地,在上述任一方面中,提供了所述方面的另一种实现方式:还包括选择帧内预测模式以对所述CU进行编码,其中,根据所述选择的划分机制的结果应用所述TU以变换所述CU的所述残差包括根据所述帧内预测模式按顺序应用所述TU。
可选地,在上述任一方面中,提供了所述方面的另一种实现方式:所述帧内预测模式指向一个方向,其中,根据所述帧内预测模式按顺序应用所述TU包括:首先应用位于与所述帧内预测模式所指向的方向相反方向上的第一个TU;最后应用位于所述帧内预测模式所指向的方向上的最后一个TU。
在一个实施例中,本发明包括一种视频编码设备,所述视频编码设备包括处理器和与所述处理器耦合的发射器,其中,所述处理器和发射器用于执行上述任一方面的方法。
在一个实施例中,本发明包括一种非瞬时性计算机可读介质,包括供视频编码设备使用的计算机程序产品,其中,所述计算机程序产品包括存储在所述非瞬时性计算机可读介质中的计算机可执行指令,当处理器执行所述计算机可执行指令时,所述视频编码设备执行上述任一方面的方法。
在一个实施例中,本发明包括一种编码器,所述编码器包括:划分机制模块,用于选择划分机制将CU划分成子CU以应用一个或多个TU,其中,所述划分机制是通过将CU宽度与最大TU宽度进行比较以及将CU高度与最大TU高度进行比较来进行选择的。所述编码器还包括:划分应用模块,用于将所述选择的划分机制应用于所述CU。所述编码器还包括:残差模块,用于确定所述CU的残差,其中,所述残差包括所述CU的像素点值与所述CU的预测像素点之间的差值。所述编码器还包括:变换模块,用于根据所述选择的划分机制的结果,应用所述TU以变换所述CU的所述残差。所述编码器还包括:编码模块,用于将所述CU的变化残差编码到码流中。所述编码器还包括:发射模块,用于将所述码流发送到解码器,以支持重建所述CU,用于显示。在一些视频编码系统中,将单个TU置于CU上,以变换因帧内预测和/或帧间预测而产生的残差像素点的某些部分。在某些情况下,最大TU尺寸小于CU的尺寸,这可能使残差像素点的某些部分未变换。本实施例包括一种通过比较CU尺寸和最大TU尺寸将CU划分成子CU的机制。这允许根据所述子CU划分将多个TU应用于CU,以便使变换的残差像素点数量达到最大。这又提高了编码效率。
任选地,在任一上述方面中,提供了所述方面的另一种实现方式:所述编码器还用于执行上述任一方面的方法。
在一个实施例中,本发明包括一种在解码器中实现的方法,所述方法包括:接收器接收码流,其中,所述码流包括CU的变换残差,所述变换残差包括进行变换时所述CU的像素点值与所述CU的预测像素点之间的差值。所述方法还包括:处理器选择划分机制将所述CU划分成子CU以将一个或多个逆TU应用于所述变换残差,其中,所述划分机制是通过将CU宽度与最大TU宽度进行比较以及将CU高度与最大TU高度进行比较来进行选择的。所述方法还包括:根据所述选择的划分机制的结果,所述处理器将所述选择的划分机制应用于所述CU,并应用所述逆TU以将所述变换残差解压缩为所述CU的残差。所述方法还包括:所述处理器根据所述残差和所述预测像素点重建所述CU的像素点值。所述方法还包括:所述处理器将所述CU的所述重建像素点值作为重建视频的一部分向显示器转发。在一些视频编码系统中,将单个TU置于CU上,以变换因帧内预测和/或帧间预测而产生的残差像素点的某些部分。在某些情况下,最大TU尺寸小于CU的尺寸,这可能使残差像素点的某些部分未变换。本实施例包括一种通过比较CU尺寸和最大TU尺寸将CU划分成子CU的机制。这允许根据所述子CU划分将多个TU应用于CU,以便使变换的残差像素点数量达到最大。这又提高了编码效率。
可选地,在上述任一方面中,提供了所述方面的另一种实现方式:所述划分机制包括:确定第一CU边尺寸大于第一最大TU边尺寸,第二CU边尺寸小于或等于第二最大TU边尺寸;根据确定的结果为第一CU边尺寸大于所述第一最大TU边尺寸且所述第二CU边尺寸小于或等于所述第二最大TU边尺寸,确定不划分所述CU。
可选地,在上述任一方面中,提供了所述方面的另一种实现方式:所述划分机制包括:确定第一CU边尺寸大于第一最大TU边尺寸,第二CU边尺寸小于或等于第二最大TU边尺寸;根据确定的结果为第一CU边尺寸大于所述第一最大TU边尺寸且所述第二CU边尺寸小于或等于所述第二最大TU边尺寸,通过创建与所述第一CU边尺寸垂直的子CU划分来划分所述CU。
可选地,在上述任一方面中,提供了所述方面的另一种实现方式:所述划分机制包括:确定第一CU边尺寸大于第一最大TU边尺寸且不是第一最大TU边尺寸的整数倍,并且第二CU边尺寸大于第二最大TU边尺寸且不是第二最大TU边尺寸的整数倍;根据确定的结果为第一CU边尺寸大于所述第一最大TU边尺寸且不是所述第一最大TU边尺寸的整数倍,并且所述第二CU边尺寸大于所述第二最大TU边尺寸且不是所述第二最大TU边尺寸的整数倍,通过创建垂直于所述第一CU边尺寸的子CU划分来划分所述CU直到所述第一CU边尺寸小于所述第一最大TU边,或者通过创建垂直于所述第二CU边尺寸的子CU划分来划分所述CU直到所述第二CU边尺寸小于所述第二最大TU边。
可选地,在上述任一方面中,提供了所述方面的另一种实现方式:所述划分机制包括:确定第一CU边尺寸大于第一最大TU边尺寸且不是第一最大TU边尺寸的整数倍,并且第二CU边尺寸大于第二最大TU边尺寸且不是第二最大TU边尺寸的整数倍;根据确定的结果为第一CU边尺寸大于所述第一最大TU边尺寸且不是所述第一最大TU边尺寸的整数倍,并且所述第二CU边尺寸大于所述第二最大TU边尺寸且不是所述第二最大TU边尺寸的整数倍,通过创建垂直于所述第一CU边尺寸的子CU划分来划分所述CU直到所述第一CU边尺寸小于所述第一最大TU边,并且通过创建垂直于所述第二CU边尺寸的子CU划分来划分所述CU直到所述第二CU边尺寸小于所述第二最大TU边。
可选地,在上述任一方面中,提供了所述方面的另一种实现方式:垂直于所述第一CU边进行的子CU划分不进一步划分垂直于所述第二CU边进行的子CU划分,反之亦然。
可选地,在上述任一方面中,提供了所述方面的另一种实现方式:还包括所述接收器接收所述码流中指示为所述CU选择的所述划分机制的标志。
可选地,在上述任一方面中,提供了所述方面的另一种实现方式:所述码流包括所述CU的帧内预测模式,其中,根据所述选择的划分机制的结果应用所述逆TU以将所述变换残差解压缩为所述CU的残差包括根据所述帧内预测模式按顺序应用所述逆TU。
可选地,在上述任一方面中,提供了所述方面的另一种实现方式:所述帧内预测模式指向一个方向,其中,根据所述帧内预测模式按顺序应用所述逆TU包括:首先应用位于与所述帧内预测模式所指向的方向相反方向上的第一个逆TU;最后应用位于所述帧内预测模式所指向的方向上的最后一个逆TU。
在一个实施例中,本发明包括一种视频编码设备,所述视频编码设备包括处理器和与所述处理器耦合的接收器,其中,所述处理器和接收器用于执行上述任一方面的方法。
在一个实施例中,本发明包括一种非瞬时性计算机可读介质,包括供视频编码设备使用的计算机程序产品,其中,所述计算机程序产品包括存储在所述非瞬时性计算机可读介质中的计算机可执行指令,当处理器执行所述计算机可执行指令时,所述视频编码设备执行上述任一方面的方法。
在一个实施例中,本发明包括一种解码器,所述解码器包括:接收模块,用于接收码流,其中,所述码流包括CU的变换残差,所述变换残差包括进行变换时所述CU的像素点值与所述CU的预测像素点之间的差值;所述解码器还包括:划分机制模块,用于选择划分机制将所述CU划分成子CU以将一个或多个逆TU应用于所述变换残差,其中,所述划分机制是通过将CU宽度与最大TU宽度进行比较以及将CU高度与最大TU高度进行比较来进行选择的。所述解码器还包括:变换模块,用于根据所述选择的划分机制的结果,将所述选择的划分机制应用于所述CU,并应用所述逆TU以将所述变换残差解压缩为所述CU的残差。所述解码器还包括:解码模块,用于根据所述残差和所述预测像素点重建所述CU的像素点值。所述解码器还包括:显示接口模块,用于将所述CU的所述重建像素点值作为重建视频的一部分向显示器转发。在一些视频编码系统中,将单个TU置于CU上,以变换因帧内预测和/或帧间预测而产生的残差像素点的某些部分。在某些情况下,最大TU尺寸小于CU的尺寸,这可能使残差像素点的某些部分未变换。本实施例包括一种通过比较CU尺寸和最大TU尺寸将CU划分成子CU的机制。这允许根据所述子CU划分将多个TU应用于CU,以便使变换的残差像素点数量达到最大。这又提高了编码效率。
可选地,在任一上述方面中,提供了所述方面的另一种实现方式:所述解码器还用于执行上述任一方面的方法。
为了清楚起见,上述任一实施例可以与上述其它实施例中的任意一个或多个实施例结合,在本发明的范围内产生新的实施例。
根据以下详细说明结合附图和权利要求将能更清楚地理解这些和其它特征。
附图说明
为了更透彻地理解本发明,现结合附图和具体实施方式,参阅以下简要说明,其中相同附图标记表示相似的部件。
图1为对视频信号进行编码的示例性方法的流程图。
图2为用于视频编码的示例性编码和解码(编解码)系统的示意图。
图3为可以将CU划分成子CU的示例性视频编码器的示意图。
图4为可以将CU划分成子CU的示例性视频解码器的示意图。
图5为在视频编码期间将CU划分成子CU的示例性机制的示意图。
图6为帧内预测模式示例的示意图。
图7为通过将CU尺寸与最大TU尺寸进行比较而选择的应用于CU的示例性划分机制的示意图。
图8为通过将CU尺寸与最大TU尺寸进行比较而选择的应用于CU的另一种示例性划分机制的示意图。
图9为通过将CU尺寸与最大TU尺寸进行比较而选择的应用于CU的其它示例性划分机制的示意图。
图10-图15为用于根据选择的帧内预测模式按顺序应用TU的示例性机制的示意图。
图16为通过将CU尺寸与最大TU尺寸进行比较来选择用于在编码器侧应用于CU的划分机制的示例性方法的流程图。
图17为通过将CU尺寸与最大TU尺寸进行比较来选择用于在解码器侧应用于CU的划分机制的示例性方法的流程图。
图18为执行划分机制的示例性方法的流程图。
图19为执行划分机制的另一种示例性方法的流程图。
图20为示例性视频编码设备的示意图。
图21为通过将CU尺寸与最大TU尺寸进行比较来选择应用于CU的划分机制的示例性系统的示意图。
具体实施方式
首先应理解,尽管下文提供了一个或多个实施例的说明性实现方式,但所公开的系统和/或方法可使用任何数量的技术来实施,无论该技术是当前已知还是现有的。本发明决不应限于下文所说明的说明性实现方式、附图和技术,包括本文所说明并描述的示例性设计和实现方式,而是可在所附权利要求书的范围以及其等效物的完整范围内修改。
视频编码包括将视频帧分割成块,并通过帧内预测和帧间预测对块进行编码,以压缩视频文件的大小。具体地,可以将视频帧分割成编码单元(coding unit,CU),这些编码单元包括亮度编码块(coding block,CB)和色度CB(分别为亮度值和颜色值)。然后,可以应用预测(帧内或帧间)来确定编码块的参考块。预测产生预测信息,该预测信息通过参考一个或多个参考块对CB进行编码。将CB的像素点(例如,像素)与一个或多个参考块的像素点进行比较,值差保留为残差像素点。残差像素点构成CU中的残差块。为了进一步压缩CU,可以通过使用变换单元(transform unit,TU)将变换应用于残差像素点。可以将包括变换核心的TU叠加到CU的残差块上,以将残差像素点转换为变换系数。可以在解码器中使用包括逆变换的TU来恢复残差像素点,从而重建CU的CB。
本发明改进将TU应用于CU的过程。通过分割CTU(coding tree unit,CTU)来产生CU。CU的尺寸可以因分割过程不同而不同。TU的尺寸也可以不同以适应CU。然而,TU具有最大尺寸。因此,在某些情况下,CU可以大于最大TU尺寸。在此类情况下,将单个TU置于CU上会在TU之外留下一些残差像素点。这导致一些残差像素点未变换,因此未被压缩。
本文公开了将TU应用于CU的改进的机制,以更好地覆盖残差像素点,从而提高压缩和编码效率。具体地,所公开的机制将CU划分成子CU,并将TU应用于每个子CU。通过分别将CU的宽度和高度与最大TU的宽度和高度进行比较来选择划分机制。当第一CU边尺寸大于第一最大TU边尺寸(例如,高度或宽度)且第二CU边尺寸小于或等于第二最大TU边尺寸(例如,宽度或高度)时,可以通过应用垂直于第一CU边尺寸的子CU划分来划分CU。子CU划分是应用于CU的分割,以将CU细分为子CU。或者,该机制可以确定不再对CU进行划分。在其它情况下,该机制可以确定第一CU边尺寸大于第一最大TU边尺寸且不是第一最大TU边尺寸的整数倍,并且第二CU边尺寸大于第二最大TU边尺寸且不是第二最大TU边尺寸的整数倍。在这种情况下,可以通过创建垂直于第一CU边尺寸的子CU划分来划分所述CU直到第一CU边尺寸小于第一最大TU边,或者通过创建垂直于第二CU边尺寸的子CU划分直到第二CU边尺寸小于第二最大TU边。或者,可以创建垂直于第一CU边尺寸的子CU划分来划分所述CU直到第一CU边尺寸小于第一最大TU边,并且创建垂直于第二CU边尺寸的子CU划分来划分所述CU直到第二CU边尺寸小于第二最大TU边。可以使用标志来指示所采用的划分机制。应用此类机制可以使得将TU平铺到CU上以覆盖CU,从而在大多数情况下完全覆盖残差。在另一示例中,可以按照根据预测信息选择的顺序应用TU。具体地,本发明可以涉及旨在用于帧内预测的CU。此类CU根据指向同一帧中参考块的预测模式进行编码。可以根据预测角度自适应地应用TU。具体地,以与帧内预测模式所指向方向相反方向上的位置(例如,离参考块最远)开始,以与帧内预测模式所指向方向相同方向上的某一位置(例如,最接近参考块)结束,按顺序应用TU。通过使残差像素点可用于重建,然后,这些残差像素点可以用作同一块中在预测角度方向上的其它像素点的参考像素点,该方法可以提高并行性。
图1为对视频信号进行编码的示例性操作方法100的流程图。具体地,在编码器侧对视频信号进行编码。编码过程通过采用各种机制来压缩视频信号以减小视频文件大小。减小的文件便于将压缩的视频文件传输给用户,同时减少相关的带宽开销。然后,解码器对压缩的视频文件进行解码,以重建原始视频信号,向终端用户显示。解码过程通常与编码过程对应,以使解码器可以一致地重建视频信号,但应注意,为了正确重建视频信号,解码过程与编码过程之间存在一些区别。
在步骤101中,将视频信号输入编码器中。例如,所述视频信号可以是存储在存储器中的未压缩的视频文件。在另一示例中,视频文件可以由视频捕获设备(如视频摄像机)捕获,并且进行编码以支持视频的直播。视频文件可以包括音频分量和视频分量,它们在一个传输信道中以某种方式交织并在接收端解交织。所述视频分量包括一系列图像帧,当按顺序观看时,这些图像帧会产生运动的视觉效果。这些帧包括根据光(本文称为亮度分量(或亮度像素点))和颜色(称为色度分量(或色度像素点))表示的像素。在一些示例中,这些帧还可以包括深度值以支持三维观看。
在步骤103中,将视频分割成块。分割包括将每个帧中的像素细分为正方形和/或矩形块/三角形块进行压缩。例如,在高效视频编码(High Efficiency Video Coding,HEVC)(也称为H.265和MPEG-H第2部分)中,可以首先将帧分为编码树单元(coding treeunit,CTU),这些编码树单元是预定义大小(例如,64个像素×64个像素)的块。CTU包括亮度像素点和色度像素点。可以采用编码树将CTU分成块,然后递归地细分这些块,直到获得支持进一步编码的配置。例如,可以对帧的亮度分量进行细分,直到各个块包括相对均匀的亮度值。此外,可以对帧的色度分量进行细分,直到各个块包括相对均匀的颜色值。因此,分割机制根据视频帧的内容而不同。
在步骤105中,采用各种压缩机制来压缩在步骤103中分割的图像块。例如,可以采用帧间预测和/或帧内预测。帧间预测利用共同场景中的对象往往出现在连续帧中这一事实。因此,无需在相邻帧中对参考帧中描绘对象的块进行重复描述。具体地,一个对象(如一张桌子)可以在多个帧中保持恒定的位置。因此,只描述一次桌子,相邻帧可以回指参考帧。可以采用模式匹配机制来匹配多个帧中的对象。此外,由于对象移动或摄像机移动等,移动对象可以通过多个帧表示。在特定示例中,视频可以通过多个帧显示在屏幕上移动的汽车。可以采用运动矢量描述这种移动。运动矢量是一个二维矢量,提供从帧中对象的坐标到参考帧中该对象的坐标的偏移。因此,帧间预测可以将当前帧中的图像块编码为运动矢量集合,指示相对于参考帧中对应块的偏移。
帧内预测对公共帧中的块进行编码。帧内预测利用亮度分量和色度分量往往在帧中聚集这一事实。例如,一棵树的一部分中的一片绿色往往与几片类似的绿色相邻。帧内预测采用多种方向预测模式(例如,HEVC中的33种模式)、平面模式和直流(direct current,DC)模式。所述方向模式指示当前块与对应方向上邻块的像素点相似/相同。平面模式指示可以根据行边缘处的邻块对行/列(例如平面)上的一系列块进行插值。实际上,平面模式通过采用变化值的相对恒定的斜率来指示光/颜色在行/列上的平滑转变。DC模式用于边界平滑,指示块和与所有邻块的像素点相关联的平均值相似/相同,所述邻块与方向预测模式的角方向相关联。因此,帧内预测块可以将图像块表示为各种关系预测模式值而非实际值。此外,帧间预测块可以将图像块表示为运动矢量值而非实际值。在任一种情况下,预测块在某些情况下可能无法准确地表示图像块。所有差值都存储在残差块中。可以对残差块应用变换以进一步压缩文件。
在步骤107中,可以应用各种滤波技术。在HEVC中,根据环内滤波方案应用滤波器。上文描述的基于块的预测可以在解码器侧创建块状图像。此外,基于块的预测方案可以对块进行编码,然后重建编码块,以供以后用作参考块。所述环内滤波方案迭代地将噪声抑制滤波器、去块效应滤波器、自适应环路滤波器和像素点自适应偏移(sample adaptiveoffset,SAO)滤波器应用于块/帧。这些滤波器减少了此类块伪影,从而可以准确地重建编码文件。此外,这些滤波器减少了重建参考块中的伪影,使得伪影不太可能在基于重建参考块编码的后续块中产生其它伪影。
在步骤109中,一旦对视频信号进行了分割、压缩和滤波,则在码流中对所得数据进行编码。所述码流包括上述数据以及支持在解码器侧进行适当的视频信号重建所需要的任何指示数据。例如,此类数据可以包括分割数据、预测数据、残差块和向解码器提供编码指令的各种标志。所述码流可以存储在存储器中,以便在请求时向解码器传输。还可以向多个解码器广播和/或组播所述码流。创建码流是一个迭代过程。因此,步骤101、103、105、107和109可以在多个帧和块中连续和/或同时进行。图1所示的顺序是为了清楚和便于描述而呈现的,并非旨在将视频编码过程限制于特定顺序。
在步骤111中,所述解码器接收所述码流并开始解码过程。具体地,所述解码器采用熵解码方案将所述码流转换为对应的语法数据和视频数据。在步骤111中,所述解码器采用所述码流中的语法数据来确定帧的分割。分割应该与步骤103中的块分割结果匹配。这里描述了步骤111中采用的熵编码/解码。编码器在压缩过程中进行许多选择,例如根据一个或多个输入图像中值的空间定位从多个可能选择中选择块分割方案。指示确切的选择可能会使用大量的位元。本文中使用的位元是被视为变量的二进制值(例如,可能根据上下文变化的比特值)。熵编码允许编码器丢弃任何明显不适合特定情况的选项,从而留下一组可使用的选项。然后,为每个可使用的选项分配码字。码字的长度取决于可使用的选项的数量(例如,一个位元对应两个选项,两个位元对应三个或四个选项等)。然后,编码器对所选选项的码字进行编码。该方案减小了码字的大小,因为码字的大小与唯一指示从可使用的选项的小子集中的一个选项,而非唯一指示从所有可能选项的潜在大集中的选项所需要的码字一样大。然后,解码器通过以与编码器类似的方式确定可使用选项集来对所述选择进行解码。通过确定可使用选项集,解码器可以读取码字并确定编码器做出的选择。
在步骤113中,所述解码器执行块解码。具体地,解码器进行逆变换来生成残差块。然后,解码器使用残差块和对应的预测块,根据分割重建图像块。所述预测块可以包括在步骤105中编码器侧生成的帧内预测块和帧间预测块。然后,根据在步骤111中确定的分割数据将重建图像块定位到重建视频信号的帧中。步骤113的语法还可以通过上文描述的熵编码在码流中指示。
在步骤115中,以类似于步骤107编码器侧的方式对重建视频信号的帧进行滤波。例如,可以对帧应用噪声抑制滤波器、去块效应滤波器、自适应环路滤波器和SAO滤波器以去除块伪影。一旦对帧进行滤波,可以在步骤117中将视频信号输出到显示器以供终端用户观看。
本发明涉及各种修改,以在压缩块时提高编码效率(例如,减小文件大小)、提高准确性和/或降低编码复杂度(例如,降低处理器资源利用率)。因此,本发明改进了步骤105中编码器侧块压缩和步骤113中解码器侧块解码的功能。具体地,在步骤105和113中,将包括编码块的CU分为子CU。然后,当CU大于最大TU尺寸时,可以根据子CU边界将包括变换的TU平铺到CU上,以完全覆盖一个或多个残差块中的残差像素点。
图2为用于视频编码的示例性编码和解码(编解码)系统200的示意图。具体地,编解码系统200能够实现操作方法100。编解码系统200广义地描述编码器和解码器中使用的组件。编解码系统200接收视频信号并对视频信号进行分割,如操作方法100中的步骤101和103所描述,从而产生经分割的视频信号201。然后,当作为编码器时,编解码系统200将经分割的视频信号201压缩为经编码码流,如方法100中的步骤105、107和109所描述的。当作为解码器时,编解码系统200从码流中生成输出视频信号,如操作方法100中的步骤111、113、115和117所描述的。编解码系统200包括通用编码器控制组件211、变换缩放和量化组件213、帧内估计组件215、帧内预测组件217、运动补偿组件219、运动估计组件221、缩放和逆变换组件229、滤波器控制分析组件227、环内滤波器组件225、解码图像缓冲器组件223、标头格式化和上下文自适应二进制算术编码(context adaptive binary arithmeticcoding,CABAC)组件231。此类组件如图所示耦合。在图2中,黑线表示待编码/解码数据的移动,而虚线表示控制其它组件操作的控制数据的移动。编解码系统200的组件都可以在编码器中使用。解码器可以包括编解码系统200的组件的子集。例如,解码器可以包括帧内预测组件217、运动补偿组件219、缩放和逆变换组件229、环内滤波器组件225和解码图像缓冲器组件223。这里对这些组件进行描述。
经分割的视频信号201是已通过编码树分割成像素块的捕获视频序列。编码树采用各种划分模式将像素块细分为更小的像素块。然后,可以将这些块进一步细分为更小块。所述块可以称为所述编码树上的节点。较大的父节点被划分成较小的子节点。节点被细分的次数称为节点/编码树的深度。在某些情况下,划分的块可以包括在编码单元(codingunit,CU)中。例如,CU可以是CTU的子部分,包括亮度块、一个或多个红差色度(Cr)块和一个或多个蓝差色度(Cb)块以及CU的对应语法指令。所述划分模式可以包括二叉树(binarytree,BT)、三叉树(triple tree,TT)和四叉树(quad tree,QT),用于根据所采用的划分模式,分别将节点分割为不同形状的两个、三个或四个子节点。将经分割的视频信号201转发给通用编码器控制组件211、变换缩放和量化组件213、帧内估计组件215、滤波器控制分析组件227和运动估计组件221进行压缩。
通用编码器控制组件211用于根据应用约束做出与将视频序列的图像编码到码流中相关的决策。例如,通用编码器控制组件211管理码率/码流大小相对于重建质量的优化。可以根据存储空间/带宽可用性和图像分辨率请求做出此类决策。通用编码器控制组件211还根据传输速度管理缓冲器利用率,以缓解缓存欠载和超载问题。为了解决这些问题,通用编码器控制组件211管理由其它组件进行的分割、预测和滤波。例如,通用编码器控制组件211可以动态地提高压缩复杂度以提高分辨率和增加带宽利用率,或者降低压缩复杂度以降低分辨率和带宽利用率。因此,通用编码器控制组件211控制编解码系统200的其它组件来平衡视频信号重建质量与码率问题。通用编码器控制组件211创建控制数据,这些控制数据控制其它组件的操作。还将所述控制数据转发给标头格式化和CABAC组件231,以在码流中编码,从而指示用于在解码器中解码的参数。
还将经分割的视频信号201发送到运动估计组件221和运动补偿组件219进行帧间预测。可以将经分割的视频信号201的帧或条带分成多个视频块。运动估计组件221和运动补偿组件219相对于一个或多个参考帧中的一个或多个块对所接收视频块进行帧间预测编码以提供时间预测。编解码系统200可以执行多个编码过程,以便为每个视频数据块选择适当的编码模式等等。
运动估计组件221和运动补偿组件219可以高度集成,但出于概念目的进行单独说明。运动估计组件221执行的运动估计是生成运动矢量的过程,其中,这些运动矢量用于估计视频块的运动。例如,运动矢量可以指示编码对象相对于预测块的位移。预测块是被发现在像素差异方面与待编码块高度匹配的块。预测块也可以称为参考块。此类像素差异可以通过绝对差异和(sum of absolute difference,SAD)、平方差异和(sum of squaredifference,SSD)或其它差异度量来确定。HEVC采用若干编码对象,包括CTU、编码树块(coding tree block,CTB)和CU。例如,可以将CTU分成多个CTB,然后可以将CTB分成多个CB包括在CU中。可以将CU编码为包括预测数据的预测单元(prediction unit,PU)和/或包括CU的变化残差数据的一个或多个变换单元(transform unit,TU)。运动估计组件221使用率失真分析作为率失真优化过程的一部分来生成运动矢量、PU和TU。例如,运动估计组件221可以确定当前块/帧的多个参考块、多个运动矢量等,并且可以选择具有最佳率失真特性的参考块、运动矢量等。最佳率失真特性平衡视频重建的质量(例如,压缩造成的数据丢失量)和编码效率(例如,最终编码的大小)。
在一些示例中,编解码系统200可以计算存储在解码图像缓冲器组件223中的参考图像的子整数像素位置的值。例如,视频编解码系统200可以内插参考图像的四分之一像素位置、八分之一像素位置或其它分数像素位置的值。因此,运动估计组件221可以执行相对于全像素位置和分数像素位置的运动搜索,并输出具有分数像素精度的运动矢量。运动估计组件221通过将PU的位置与参考图像的预测块的位置进行比较来计算帧间编码条带中视频块的PU的运动矢量。运动估计组件221将计算的运动矢量作为运动数据输出到标头格式化和CABAC组件231以进行编码,并将运动输出到运动补偿组件219。
运动补偿组件219执行的运动补偿可以涉及根据运动估计组件221所确定的运动矢量获取或生成预测块。另外,在一些示例中,运动估计组件221和运动补偿组件219可以在功能上集成。在接收当前视频块的PU的运动矢量之后,运动补偿组件219可以定位运动矢量指向的预测块。然后,从所编码的当前视频块的像素值中减去预测块的像素值,从而形成像素差值,如此形成残差视频块。通常,运动估计组件221相对于亮度分量执行运动估计,运动补偿组件219将根据亮度分量计算的运动矢量用于色度分量和亮度分量。将预测块和残差块转发给变换缩放和量化组件213。
还将经分割的视频信号201发送到帧内估计组件215和帧内预测组件217。如同运动估计组件221和运动补偿组件219,帧内估计组件215和帧内预测组件217可以高度集成,但出于概念目的进行单独说明。帧内估计组件215和帧内预测组件217相对于当前帧中的块对当前块进行帧内预测,以替代如上所述的由运动估计组件221和运动补偿组件219在各帧之间执行的帧间预测。具体地,帧内估计组件215确定帧内预测模式来用于对当前块进行编码。在一些示例中,帧内估计组件215从多个测试的帧内预测模式中选择适当的帧内预测模式来对当前块进行编码。然后,将所选择的帧内预测模式转发给标头格式化和CABAC组件231进行编码。
例如,帧内估计组件215对各种测试的帧内预测模式进行率失真分析来计算率失真值,并在测试的模式中选择具有最佳率失真特性的帧内预测模式。率失真分析通常确定编码块与经编码以产生编码块的原始未编码块之间的失真(或误差)量,以及用于产生编码块的码率(例如,比特数)。帧内估计组件215根据各种编码块的失真和速率计算比率,以确定哪种帧内预测模式表现出块的最佳率失真值。此外,帧内估计组件215可用于根据率失真优化(rate-distortion optimization,RDO),使用深度建模模式(depth modeling mode,DMM)对深度图的深度块进行编码。
当在编码器上实现时,帧内预测组件217可以根据由帧内估计组件215确定的所选帧内预测模式从预测块生成残差块,或者当在解码器上实现时,从码流读取残差块。所述残差块包括预测块与原始块之间的值差异,以表示为矩阵。然后,将残差块转发给变换缩放和量化组件213。帧内估计组件215和帧内预测组件217可以对亮度分量和色度分量进行操作。
变换缩放和量化组件213用于进一步压缩残差块。变换缩放和量化组件213对残差块应用变换,如离散余弦变换(discrete cosine transform,DCT)、离散正弦变换(discrete sine transform,DST)或概念上类似的变换,从而产生包括残差变换系数值的视频块。还可以使用小波变换、整数变换、子带变换或其它类型的变换。变换可以将残差信息从像素值域转化到变换域,如频域。变换缩放和量化组件213还用于根据频率等对变换的残差信息进行缩放。这种缩放涉及对残差信息应用缩放因子,以便在不同粒度下量化不同的频率信息,这可能会影响重建视频的最终视觉质量。变换缩放和量化组件213还用于量化变换系数以进一步降低码率。量化过程可以降低与一些或全部系数有关的位深度。可以通过调整量化参数来修改量化程度。在一些示例中,变换缩放和量化组件213随后可以对包括量化变换系数的矩阵进行扫描。将量化变换系数转发给标头格式化和CABAC组件231,以在码流中编码。
缩放和逆变换组件229应用变换缩放和量化组件213的逆操作以支持运动估计。缩放和逆变换组件229使用逆缩放、逆变换和/或反量化以重建像素域中的残差块,例如,用于以后用作参考块,所述参考块可成为另一当前块的预测块。运动估计组件221和/或运动补偿组件219可以通过将残差块添加回对应的预测块来计算参考块,以用于后续块/帧的运动估计。将滤波器应用于重建参考块,以减少在缩放、量化和变换期间产生的伪影。当预测后续块时,此类伪影可能另外导致预测不准确(并产生其它伪影)。
滤波器控制分析组件227和环内滤波器组件225将滤波器应用于残差块和/或重建图像块。例如,可以将缩放和逆变换组件229的变换残差块与帧内预测组件217和/或运动补偿组件219的对应预测块合并以重建原始图像块。然后,可以将滤波器应用于重建图像块。在一些示例中,滤波器可以转而应用于残差块。如同图2中的其它组件,滤波器控制分析组件227和环内滤波器组件225高度集成,可以一起实施,但出于概念目的进行单独描述。应用于重建参考块的滤波器应用于特定空间区域,包括多个参数以调整应用此类滤波器的方式。滤波器控制分析组件227对重建参考块进行分析,以确定应该应用此类滤波器的位置并设置对应的参数。将此类数据作为滤波器控制数据转发给标头格式化和CABAC组件231进行编码。环内滤波器组件225根据滤波器控制数据应用此类滤波器。所述滤波器可以包括去块效应滤波器、噪声抑制滤波器、SAO滤波器和自适应环路滤波器。此类滤波器可以根据示例应用于空域/像素域(例如,针对重建像素块)或频域中。
当作为编码器操作时,将经滤波的重建图像块、残差块和/或预测块存储在解码图像缓冲器组件223中,以供以后用于运动估计,如上所述。当作为解码器操作时,解码图像缓冲器组件223存储经重建和经滤波的块并将其作为输出视频信号的一部分向显示器转发。解码图像缓冲器组件223可以是能够存储预测块、残差块和/或重建图像块的任何存储器设备。
标头格式化和CABAC组件231从编解码系统200的各组件接收数据并将此类数据编码到经编码码流中以向解码器传输。具体地,标头格式化和CABAC组件231生成各种标头以对控制数据(如总体控制数据和滤波器控制数据)进行编码。此外,将预测数据(包括帧内预测)和运动数据,以及量化变换系数数据形式的残差数据均在码流中进行编码。最终码流包括解码器重建原始的经分割的视频信号201所需要的所有信息。此类信息还可以包括帧内预测模式索引表(也称为码字映射表)、各种块的编码上下文的定义、最可能的帧内预测模式的指示、分割信息的指示等。此类数据可以采用熵编码进行编码。例如,可以采用上下文自适应可变长度编码(context adaptive variable length coding,CAVLC)、CABAC、基于语法的上下文自适应二进制算术编码(syntax-based context-adaptive binaryarithmetic coding,SBAC)、概率区间分割熵(probability interval partitioningentropy,PIPE)编码或其它熵编码技术对信息进行编码。在熵编码之后,可以将经编码码流传输到另一设备(例如,视频解码器)或存档以用于后续传输或检索。
本发明涉及各种修改,以在压缩块时提高编码效率(例如,减小文件大小)、提高准确性和/或降低编码复杂度(例如,降低处理器资源利用率)。例如,本发明改进了变换缩放和量化组件213和/或缩放和逆变换组件229的功能。具体地,变换缩放和量化组件213可以将包括编码块的CU划分成子CU以应用变换。然后,当CU大于最大TU尺寸时,可以根据子CU边界将包括变换的TU平铺到CU上,以完全覆盖一个或多个残差块中的残差像素点。缩放和逆变换组件229可以进行此类过程的相反过程以创建参考块和/或创建重建块以供显示。本发明还可以通过改变TU应用顺序来创建用于帧内预测的额外参考像素点来改进帧内估计组件215和/或帧内预测组件217的功能。
图3为可以将CU划分成子CU的示例性视频编码器300的框图。视频编码器300可以用于实现编解码系统200的编码功能和/或实现操作方法100的步骤101、103、105、107和/或109。编码器300对输入视频信号进行分割,从而产生经分割的视频信号301,其中,所述经分割的视频信号301基本上类似于经分割的视频信号201。然后,通过编码器300的组件压缩经分割的视频信号301并编码到码流中。
具体地,将经分割的视频信号301转发给帧内预测组件317进行帧内预测。帧内预测组件317可以基本上类似于帧内估计组件215和帧内预测组件217。还将经分割的视频信号301转发给运动补偿组件321,以根据解码图像缓冲器组件323中的参考块进行帧间预测。运动补偿组件321可以基本上类似于运动估计组件221和运动补偿组件219。将来自帧内预测组件317和运动补偿组件321的预测块和残差块转发给变换和量化组件313以对残差块进行变换和量化。变换和量化组件313可以基本上类似于变换缩放和量化组件213。将经变换和量化的残差块和对应的预测块(连同相关控制数据)转发给熵编码组件331以编码到码流中。熵编码组件331可以基本上类似于标头格式化和CABAC组件231。
也将经变换和量化的残差块和/或对应的预测块从变换和量化组件313转发给逆变换和量化组件329以重建成参考块供运动补偿组件321使用。逆变换和量化组件329可以基本上类似于缩放和逆变换组件229。根据示例,也将环内滤波器组件325中的环内滤波器应用于残差块和/或重建参考块。环内滤波器组件325可以基本上类似于滤波器控制分析组件227和环内滤波器组件225。环内滤波器组件325可以包括多个滤波器,如结合环内滤波器组件225所描述的。然后,将滤波块存储在解码图像缓冲器组件323中,以供运动补偿组件321用作参考块。解码图像缓冲器组件323可以基本上类似于解码图像缓冲器组件223。
例如,CU的预测模式可以由帧内预测组件317选择。然后,帧内预测组件317可以将CU划分成子CU,并根据子CU边界,通过确定CU中的像素点与预测模式所指示的参考像素点之间的差值,根据所选择的预测模式确定CU的残差像素点。然后,帧内预测组件317可以将残差像素点转发给变换和量化组件313,变换和量化组件313可以根据子CU边界应用TU以压缩残差像素点。在其它示例中,帧内预测组件317可以为CU选择帧内预测模式并确定残差像素点。然后,帧内预测组件317可以将残差像素点转发给变换和量化组件313,变换和量化组件313可以将CU划分成子CU并根据子CU划分应用TU。
无论具体实现方式如何,所公开的机制都将CU划分成子CU以应用TU,从而压缩残差像素点。通过分别将CU的宽度和高度与最大TU的宽度和高度进行比较来选择划分机制。下文描述各种划分机制。将CU划分成子CU以应用多个TU可以实现TU覆盖率增加,从而能够确保对基本上所有残差像素点进行变换(例如,从而不以未变换残差值进行编码)。此外,在一些示例中,可以根据为CU选择的帧内预测模式将TU和/或逆TU应用于子CU(例如,在变换和量化组件313和/或逆变换和量化组件329中)。这允许一个子CU中的像素点作为同一CU的另一子CU中的像素点的参考像素点。因此,该方法支持并行处理能力提高、编码准确度提高和/或编码效率提高。因此,所公开的机制可以改进帧内预测组件317、变换和量化组件313和/或逆变换和量化组件329的功能。
图4为可以将CU划分成子CU的示例性视频解码器400的框图。视频解码器400可以用于实现编解码系统200的解码功能和/或实现操作方法100的步骤111、113、115和/或117。例如,解码器400从编码器300接收码流,并根据所述码流生成重建的输出视频信号,向终端用户显示。
所述码流由熵解码组件433接收。熵解码组件433用于实现熵解码方案,如CAVLC、CABAC、SBAC、PIPE编码或其它熵编码技术。例如,熵解码组件433可以采用标头信息来提供上下文以解释在码流中编码为码字的其它数据。解码信息包括对视频信号进行解码所需的任何信息,如总体控制数据、滤波器控制数据、分割信息、运动数据、预测数据和残差块中的量化变换系数。将量化变换系数转发给逆变换和量化组件429以重建成残差块。逆变换和量化组件429可以类似于逆变换和量化组件329。
将重建残差块和/或预测块转发给帧内预测组件417,以根据帧内预测操作重建成图像块。帧内预测组件417可以类似于帧内估计组件215和帧内预测组件217。具体地,帧内预测组件417采用预测模式来定位帧中的参考块,并将残差块应用于结果以重建帧内预测图像块。将重建的帧内预测图像块和/或残差块以及对应的帧间预测数据通过环内滤波器组件425转发给解码图像缓冲器组件423。解码图像缓冲器组件423和环内滤波器组件425可以分别基本上类似于解码图像缓冲器组件223和环内滤波器组件225。环内滤波器组件425对重建图像块、残差块和/或预测块进行滤波,并且将此类信息存储在解码图像缓冲器组件423中。将来自解码图像缓冲器组件423的重建图像块转发给运动补偿组件421进行帧间预测。运动补偿组件421可以基本上类似于运动估计组件221和/或运动补偿组件219。具体地,运动补偿组件421使用来自参考块的运动矢量来生成预测块,并将残差块应用于结果以重建图像块。还可以经由环内滤波器组件425将所得重建块转发给解码图像缓冲器组件423。解码图像缓冲器组件423继续存储附加重建图像块,这些重建图像块可以通过分割信息重建成帧。此类帧也可以位于序列中。将所述序列作为重建的输出视频信号向显示器输出。
与视频编码器300一样,视频解码器400可以将CU划分成子CU。根据示例,所述划分可以由帧内预测组件417和/或逆变换和量化组件429应用。所公开的机制将CU划分成子CU以应用逆TU,从而解压缩残差像素点。通过分别将CU的宽度和高度与最大TU的宽度和高度进行比较来选择划分机制。例如,帧内预测组件417可以采用编码到码流中的帧内预测模式,以根据参考像素点确定CU中像素点的预测值。此外,逆变换和量化组件429可以根据子CU划分应用逆TU以重建CU的残差像素点。然后,可以组合残差像素点和预测值以重建CU的像素点,以包括在视频中。将CU划分成子CU以应用多个逆TU可以实现TU覆盖率增加,从而能够确保当接收在码流中时对基本上所有残差像素点进行变换(例如,从而不作为未变换残差值进行接收)。此外,在一些示例中,可以在逆变换和量化组件429中根据CU的帧内预测模式按顺序将逆TU应用于子CU。这允许一个子CU中的像素点作为同一CU的另一子CU中的像素点的参考像素点。因此,该方法支持并行处理能力提高、编码准确度提高和/或编码效率提高。因此,所公开的机制可以改进帧内预测组件417和/或逆变换和量化组件429的功能。
图5为在视频编码期间将CU划分成子CU的示例性机制500的示意图。方法100、编解码系统200、编码器系统300和/或解码器系统400在对视频帧进行编码时可以采用机制500。机制500描述了从图5的顶部到图5的底部CU 541的编码过程。然而,CU 541的解码过程可以通过反转箭头并从下到上代替从上到下查看图5来理解。
在编码器侧,接收视频帧并分割成一个或多个条带。条带是帧中与同一帧中其它区域分开编码的在空间上不同的区域。将条带分为CTU。CTU是能够接受完整编码树应用的最大像素块(例如,编码树通常不跨越CTU边界)。编码树包括一个或多个节点,每个节点与一种划分模式相关联。当应用于CTU时,编码树应用划分模式将CTU递归地细分为逐渐变小的块。CU 541是将编码树应用于CTU的结果。CU 541是像素点543的群组,编码树对这些像素点543进行划分,直到应用所有编码树节点并到达叶节点。因此,CU 541是编码树可以获得的最小像素点543划分。CU 541包括足够的信息以根据上下文对像素块进行编码或解码。具体地,在编码之前,CU 541包括亮度像素点和色度像素点(包括红差色度(Cr)和蓝差色度(Cb)像素点),这些亮度像素点和色度像素点可以用来表示视频帧块中像素的亮度值和颜色值。
应用预测(551)对CU 541的像素点543进行编码。预测(551)可以包括帧内预测或帧间预测,但本示例侧重于帧内预测。如上所述,帧内预测使用同一帧中的参考块来预测CU541中像素点543的当前块。在帧内预测中,选择预测模式545来表示CU 541的像素点543。预测模式545指示一个或多个参考像素点以预测像素点543。这样一来,可以以单一预测模式545对CU 541进行编码,而不是对所有像素点543进行编码。在许多情况下,参考像素点与CU541的像素点543不同。将预测模式545所指示的参考像素点与像素点543之间的任何差异保留为残差544。根据上下文,残差544可以包括残差像素点和/或残差块。因此,可以根据残差544和预测模式545重建CU 541的像素点543。
然后,机制500可以将CU 541划分(552)成子CU 547。下文详细描述将CU 541划分(552)成子CU 547的过程。例如,当CU 541大于最大尺寸时,可以划分(552)CU 541。因此,划分(552)CU 541以允许在子CU 547边界处多个TU平铺到CU 541上。这样能确保残差544完全由TU覆盖,从而完全变换。因此,子CU 547是CU 541中小于或等于最大TU尺寸(例如,高度和/或宽度)的部分。可以根据基于CU 541尺寸和最大TU尺寸选择的划分(552)机制进行划分(552)。应注意,在某些情况下,残差544是在将CU 541划分(552)成子CU547之前确定的,如图所示。在其它示例中,可以在确定CU 541的预测模式545之后和确定残差544之前,将CU541划分(552)成子CU547。在这种情况下,将整个CU 541的预测模式545应用于每一个子CU547。然后,根据预测模式545确定子CU 547的残差544。
然后,根据子CU547的边界将TU应用(553)于残差544。应用(553)TU包括确定将修改预定信号(如离散余弦波)以拟合残差544的模式的系数。因此,可以将此类系数保存为变换残差546。这是因为可以将逆变换应用于变换残差546的系数以重建残差544。因此,编码CU 541包括预测模式545和一个或多个子CU 547,所述一个或多个子CU 547包括用作变换残差546的系数。CU 541的预测模式545和变换残差546提供足够的信息以重建CU 541的像素点543。CU 541还可以包括足够详细地描述编码过程以对CU 541进行解码所需的任何语法元素。例如,CU 541可以包括标志或其它编码对象以支持像素点543的重建。
解码器可以基本上以相反的方式执行机制500以恢复CU 541的像素点543。例如,解码器可以从码流接收变换残差546和预测模式545。解码器可以将CU 541划分(552)成子CU 547,并将逆TU应用(553)于子CU 547,以从变换残差546获得残差544。解码器还可以通过采用预测模式545确定参考像素点来进行预测(551)。可以将参考像素点与残差544进行比较,以获得CU 541的像素点543,可以使用这些像素点543来重建视频的CU 541、CTU、条带和帧。
图6为视频编码中使用的帧内预测模式600的示例的示意图。例如,方法100的步骤105和113、编解码系统200的帧内估计组件215和帧内预测组件217、编码器300的帧内预测组件317和/或解码器400的帧内预测组件417可以使用帧内预测模式600。此外,机制500的预测模式545可以从帧内预测模式600中选择,以参考其它参考像素点对CU 541中的像素点进行编码(例如,留下可以由TU压缩/变换的残差544)。
如上所述,帧内预测涉及将CU中的一个或多个像素点与一个或多个邻块的一个或多个参考像素点进行匹配。然后,可以将CU表示为选择的预测模式索引和残差块,与表示包括在CU中的所有亮度/色度值相比,CU表示和传输的数据量小得多。当没有可用参考帧时,或者当没有对当前块、条带和/或帧使用帧间预测编码时,可以使用帧内预测。可以从同一帧中的邻块导出用于帧内预测的参考像素点。高级视频编码(Advanced Video Coding,AVC)(也称为H.264)和H.265/HEVC都使用邻块的边界像素点的参考线作为参考像素点进行帧内预测。为了覆盖不同的纹理或结构特性,采用了多种不同的帧内预测模式。H.265/HEVC支持总共35种帧内预测模式600,这些帧内预测模式600将像素点的当前块与一个或多个参考像素点在空间上相关联。具体地,帧内预测模式600包括以模式2至模式34索引的33种方向预测模式、以模式1索引的直流(direct current,DC)模式和以模式0索引的平面模式。
在编码期间,编码器将CU中当前块的亮度值/色度值与跨越邻块边缘的参考线中对应参考像素点的亮度值/色度值进行匹配。当找到与其中一个参考线的最佳匹配时,编码器选择指向最佳匹配参考线的一个方向帧内预测模式600。为了描述清楚,下文使用缩写来参考特定的方向帧内预测模式600。DirS表示从左下角顺时针计数时起始方向帧内预测模式(例如,HEVC中的模式2)。DirE表示从左下角顺时针计数时终止方向帧内预测模式(例如,HEVC中的模式34)。DirD表示从左下角顺时针计数时中间方向帧内编码模式(例如,HEVC中的模式18)。DirH表示水平帧内预测模式(例如,HEVC中的模式10)。DirV表示垂直帧内预测模式(例如,HEVC中的模式26)。
DC模式作为平滑函数,导出CU中块的预测值作为遍历邻块的参考线中所有参考像素点的平均值。平面模式返回预测值,该预测值指示参考像素点的参考线的底部与左上角处的像素点之间或左上角与右上角处的像素点之间的平滑转变(例如,值的恒定斜率)。
对于平面模式、DC模式以及从DirH到DirV的预测模式,参考线的顶行和参考线的左列都作为参考像素点。对于预测方向从DirS到DirH(包括DirS和DirH)的预测模式,参考线左列上邻块中的参考像素点作为参考像素点。对于预测方向从DirV到DirE(包括DirV和DirE)的预测模式,参考线顶行上邻块的参考像素点作为参考像素点。因此,帧内预测模式600可用于指示像素点与一个或多个参考像素点之间的空间和/或方向关系。
图7为通过将CU 740尺寸与最大TU 750尺寸进行比较而选择的应用于CU 740的示例性划分机制700的示意图。例如,方法100、编解码系统200、编码器系统300和/或解码器系统400在对视频帧进行编码时可以应用划分机制700。在一个具体示例中,划分机制700可以作为机制500中的划分(552)进行应用。此外,划分机制700可以与选择一个帧内预测模式600和应用TU以对CU进行编码和/或解码结合使用。
如上所述,可以选择划分机制700将CU 740划分成子CU 745,以应用一个或多个TU。具体地,通过将CU 740的宽度741与最大TU 750的宽度751进行比较,并将CU 740的高度与最大TU 750的高度752进行比较来选择划分机制700。CU 740和子CU 745可以分别基本上类似于CU 541和子CU 547。
在图7所示的情况下,CU 740的第一边尺寸(在这种情况下为CU宽度741)大于最大TU 750的第一边尺寸(在这种情况下为最大TU宽度751)。此外,CU 740的第二边尺寸(在这种情况下为CU高度742)小于或等于最大TU 750的第二边尺寸(在这种情况下为最大TU高度752)。根据确定的结果为CU 740的第一边尺寸大于最大TU 750的第一边尺寸且CU 740的第二边尺寸小于或等于最大TU 750的第二边尺寸,有两种选择。通常,如果当前CU的任一边大于最大TU的任一边和/或当前CU的第二边尺寸小于最大TU的第二边,可以采用以下解决方案之一对CU进行划分。根据第一种方法,根据小于TU最大边的任一TU边尺寸,将大于TU最大边的CU边划分成一个或多个子CU尺寸。根据第二种方法,将大于TU最大边的CU边划分成一个或多个子CU。根据第三种方法,使用标志来指示使用哪种方法(例如,第一种方法或第二种方法)来划分大于TU最大边的CU边。
对于第一种选择,确定是否根据CU 740的较小边(例如,CU 740的高度742)划分CU740。具体地,确定在垂直于较小边(例如,平行于较大边)的方向上划分CU 740是否会增加TU 750的覆盖率。然而,如图7所示,以这种方式划分CU 740不会增加TU 750的覆盖率。因此,不进行划分,从而产生CU 743。
对于第二种选择,确定是否沿CU 740的较大边(例如,CU 740的宽度741)划分CU740。具体地,确定垂直于较大边(例如,平行于较小边)划分CU 740是否会增加TU 750的覆盖率。如图7所示,以这种方式划分CU 740会增加TU 750的覆盖率。因此,垂直于CU 740的较大边进行子CU划分746。子CU划分746产生子CU745,将CU740转换为CU 744。
编码器可以在码流中对标志或其它语法进行编码,以指示为CU 740选择的划分机制700,该划分机制700产生CU 743或CU 744。此外,解码器可以读取标志或其它语法并进行对应的划分。在另一示例中,编码器和解码器可以都根据一组共同的预定规则执行划分机制700。
如图所示,将划分机制700应用于宽度741为128个像素且高度742为64个像素的CU740,以及宽度751为64个像素且高度752为64个像素的最大TU 750。第一示例不进行分割,因此不改变CU 740尺寸。第二示例产生64×64个像素的子CU 745。可以将一个或多个TU置于子CU形成的边界上,以变换位于此类子CU中的残差像素点。
另一种情况是,CU 740的宽度741可以为128个像素且高度742可以为64个像素;而最大TU 750的宽度751可以为32个像素且高度752可以为32个像素。因此,CU 740的宽度741和高度742均大于CU 740的宽度751和高度752。在这种情况下,可以垂直于较大边、垂直于较小边,或者垂直于较大边和较小边划分CU 740。在第一示例中,可以垂直于较小边(在这种情况下为高度742)划分CU 740,因为这种划分增加了TU覆盖率。第一示例产生两个128×32个像素的子CU745。在第二示例中,可以垂直于较小边和较大边(在这种情况下,为高度742和宽度751)划分CU 740,因为此类划分增加了TU覆盖率。第二示例可以产生八个32×32个像素的子CU 745。与上述情况/示例一样,可以将标志或其它语法编码到码流中以指示为CU 740选择的划分机制700。
图8为通过将CU 840尺寸与最大TU 850尺寸进行比较而选择的应用于CU 840的另一种示例性划分机制800的示意图。例如,方法100、编解码系统200、编码器系统300和/或解码器系统400在对视频帧进行编码时可以应用划分机制800。在一个具体示例中,划分机制800可以作为机制500中的划分(552)进行应用。此外,划分机制800可以与选择一个帧内预测模式600和应用TU以对CU进行编码和/或解码结合使用。
划分机制800类似于划分机制700,但应用于不同尺寸的CU 840。根据具有宽度851和高度852的最大TU 850,将划分机制800应用于具有宽度841和高度842的CU 840,其中,CU840、宽度841、高度842、最大TU 850、宽度851和高度852基本上类似于CU740、宽度741、高度742、最大TU 750、宽度751和高度752。CU 840的宽度841为128个像素且高度842为32个像素;而最大TU 850的宽度851为32个像素且高度852为32个像素。
在图8所示的情况下,CU 840的第一边尺寸(在这种情况下为CU宽度841)大于最大TU 850的第一边尺寸(在这种情况下为最大TU宽度851)。此外,CU 840的第二边尺寸(在这种情况下为CU高度842)小于或等于最大TU 850的第二边尺寸(在这种情况下为最大TU高度852)。根据确定的结果为CU 840的第一边尺寸大于最大TU 850的第一边尺寸且CU 840的第二边尺寸小于或等于最大TU 850的第二边尺寸,有两种选择。
对于第一种选择,确定是否根据CU 840的较小边(例如,CU 840的高度842)划分CU840。具体地,确定垂直于较小边(或平行于较大边)划分CU 840是否会增加TU 850的覆盖率。然而,如图8所示,以这种方式划分CU 840不会增加TU 850的覆盖率。因此,不进行划分,从而产生CU 843。
对于第二种选择,确定是否根据CU 840的较大边(例如,CU 840的宽度841)划分CU840。具体地,确定垂直于较大边(或平行于较小边)划分CU 840是否会增加TU 850的覆盖率。如图8所示,以这种方式划分CU 840会增加TU 850的覆盖率。因此,垂直于CU 840的较大边进行子CU划分846。子CU划分846产生子CU 845,将CU840转换为CU 844。
编码器可以在码流中对标志或其它语法进行编码,以指示为CU840选择的划分机制800,该划分机制800产生CU 843或CU 844。此外,解码器可以读取标志或其它语法并进行对应的划分。第一示例不进行分割,因此不改变CU840尺寸。第二示例产生四个32×32个像素的相同子CU 845。
可以将一个或多个TU置于子CU形成的边界上,以变换位于此类子CU中的残差像素点。编码器可以在码流中对标志或其它语法进行编码,以指示为CU 840选择的划分机制800,该划分机制800产生CU 843或CU 844。此外,解码器可以读取标志或其它语法并进行对应的划分。在另一示例中,编码器和解码器可以都根据一组共同的预定规则执行划分机制800。
图9为其它示例性划分机制900的示意图,通过将CU 940尺寸与最大TU 950尺寸进行比较而选择的应用于CU 940。例如,方法100、编解码系统200、编码器系统300和/或解码器系统400在对视频帧进行编码时可以应用划分机制900。在一个具体示例中,划分机制900可以用作机制500中的划分(552)操作。此外,划分机制900可以与选择一个帧内预测模式600和应用TU以对CU进行编码和/或解码结合使用。
划分机制900类似于划分机制700和800,但应用于不同尺寸的CU 940。根据具有宽度951和高度952的最大TU 950,将划分机制900应用于具有宽度941和高度942的CU 940,其中,CU 940、宽度941、高度942、最大TU 950、宽度951和高度952基本上类似于CU 740、宽度741、高度742、最大TU 750、宽度751和高度752。CU 940的宽度941为96个像素且高度942为96个像素;而最大TU 950的宽度951为64个像素且高度952为64个像素。
可以选择划分机制900将CU 940划分成子CU,以应用一个或多个TU。具体地,通过将CU 940的宽度941与最大TU 950的宽度951进行比较,并将CU 940的高度942与最大TU950的高度952进行比较来选择划分机制900。
在图9所示的情况下,CU 940的第一边尺寸大于最大TU 950的第一边尺寸且不是最大TU 950的第一边尺寸的整数倍(例如,第一边尺寸分别为宽度941和宽度951)。此外,CU940的第二边尺寸大于最大TU 950的第二边尺寸且不是最大TU 950的第二边尺寸的整数倍(例如,第二边尺寸分别为高度942和高度952)。根据确定的结果为CU 940的第一边尺寸大于最大TU 950的第一边尺寸且不是最大TU 950的第一边尺寸的整数倍(例如,第一边尺寸分别为宽度941和宽度951),并且CU940的第二边尺寸大于最大TU950的第二边尺寸且不是最大TU 950的第二边尺寸的整数倍(例如,第二边尺寸分别为高度942和高度952),有多种选择。第一种选择是,通过创建垂直于第一CU边尺寸(例如,宽度941)的子CU划分来划分所述CU940直到第一CU边尺寸小于第一最大TU边(例如,宽度951),或者通过创建垂直于第二CU边尺寸(例如,高度942)的子CU划分来划分所述CU 940直到第二CU边尺寸小于第二最大TU边(例如,高度952)。这种选择可以产生CU960、CU961、CU962和/或CU 963。在这种情况下,CU 960包括64个像素×96个像素的子CU和64个像素×32个像素的子CU。CU 961包括32个像素×96个像素的子CU和64个像素×96个像素的子CU。CU 962包括96个像素×32个像素的子CU和96个像素×64个像素的子CU。CU 963包括96个像素×64个像素的子CU和96个像素×32个像素的子CU。
第二种选择是,通过创建垂直于第一CU边尺寸(例如,宽度941)的子CU划分来划分CU 940直到第一CU边尺寸小于第一最大TU边(例如,宽度951),并且通过创建垂直于第二CU边尺寸(例如,高度942)的子CU划分来划分CU 940直到第二CU边尺寸小于第二最大TU边(例如,高度952)。这种选择可以产生CU 964、CU 965、CU 966和/或CU 967。在这种情况下,CU964、CU 965、CU 966和CU 967各自包括64个像素×64个像素的子CU、64个像素×32个像素的子CU、32个像素×64个像素的子CU和32个像素×32个像素的子CU。根据图9所示的子CU划分,子CU位于不同的位置。
第三种选择的划分与第二种选择的划分类似,然而,垂直于第一CU边(例如,宽度941)进行的子CU划分不进一步划分垂直于第二CU边(例如高度942)进行的任何子CU划分,反之亦然。该方法可以产生CU 968、CU 969、CU 970、CU 971、CU 972、CU 973、CU 974和/或CU 975。在这种情况下,CU 968、CU 969、CU 970、CU 971、CU 972、CU 973、CU 974和CU 975各自包括64个像素×64个像素的子CU。CU 968、CU 969、CU 970和CU 971还包括96个像素×32个像素的子CU和32个像素×64个像素的子CU。此外,CU 972、CU 973、CU 974和CU 975还包括32个像素×96个像素的子CU和64个像素×32个像素的子CU。根据图9所示的子CU划分,子CU位于不同的位置。
可以将一个或多个TU置于子CU形成的边界上,以变换位于此类子CU中的残差像素点。编码器可以在码流中对标志或其它语法进行编码,以指示为CU 940选择的划分机制900,该划分机制900产生CU 960-CU 975。例如,可以使用语法指示最大子CU、最小子CU、中尺寸子CU或其组合的位置。此外,解码器可以读取标志或其它语法并进行对应的划分。此外,可以使用标志来指示是否使用划分机制700、800和/或900。在另一示例中,编码器和解码器可以都根据一组共同的预定规则执行划分机制900。
如果每个维度的CU边长大于最大变换长度,则最大变换长度平铺CU边长。通过应用在CU尺寸下建立的预测模式在变换块尺寸下进行帧内预测。每个变换块的操作顺序可以呈锯齿形。上方和/或左侧TU的重建像素点可以用作右侧和/或下方TU的参考像素点。
图10-图15为用于根据选择的帧内预测模式按顺序应用TU的示例性机制1000、1100、1200、1300、1400和1500的示意图。具体地,根据帧内预测角度自适应地应用此类机制中每个变换块的操作顺序。方法100、编解码系统200、编码器系统300和/或解码器系统400在对视频帧进行编码时可以应用此类机制。此外,可以使用机制1000、1100、1200、1300、1400和1500作为机制500的一部分应用(553)TU。因此,机制1000、1100、1200、1300、1400和1500可以与划分机制700、800和/或900结合应用。具体地,机制1000、1100、1200、1300、1400和1500可以根据为CU选择的帧内预测模式600按顺序应用TU,从而根据选择的划分机制700、800和/或900的结果应用TU来变换CU的残差。
具体地,机制1000、1100、1200、1300、1400和1500各自初始应用位于与CU的帧内预测模式所指向方向相反方向上的第一TU。然后按顺序应用TU。最后,应用位于帧内预测模式所指向方向上的最后一个TU。以这种方式应用TU可以将CU中的像素点用作同一CU中其它像素点的参考像素点。
例如,在机制1000中,将CU 1041划分成四个子CU。此外,帧内预测模式1071角度为左下。在这种情况下,每个TU的帧内预测的操作顺序为右上、左上、右下和左下。在另一示例中,将CU 1042划分成四个子CU。此外,帧内预测模式1072角度为左下。在该示例中,每个TU的帧内预测的操作顺序为右上、右下、左上和左下。无论哪种情况,右上TU的重建像素点都可以作为左上TU和右下TU的参考像素点。此外,左上TU和右下TU的重建像素点可以作为左下TU的参考像素点。
在另一示例中,在机制1100中,将CU 1141垂直划分成两个子CU。此外,帧内预测模式1171角度为左下。在该示例中,每个TU的帧内预测的操作顺序为从右到左。右侧TU的重建像素点可以作为左侧TU的参考像素点。
在另一示例中,在机制1200中,将CU 1241垂直划分成四个子CU。此外,帧内预测角度模式1271角度为左下。在该示例中,每个TU的帧内预测的操作顺序为右、右中、左中和左。右侧TU的重建像素点可以作为左侧TU的参考像素点。
在又一示例中,在机制1300中,将CU 1341纵横四分成四个子CU。此外,帧内预测模式1371角度为右上。在该示例中,每个TU的帧内预测的操作顺序可以为左下、左上、右下和右上。在另一示例中,将CU 1342纵横四分成四个子CU。此外,帧内预测模式1372角度为右上。每个TU的帧内预测的操作顺序可以为左下、右下、左上和右上。无论是机制1300中使用的哪一个示例,左下TU的重建像素点都可以作为左上TU和右下TU的参考像素点。此外,左上TU和右下TU的重建像素点可以作为右上TU的参考像素点。
在又一示例中,在机制1400中,将CU 1441水平划分成两个子CU。此外,帧内预测模式1471角度为右上。在该示例中,每个TU的帧内预测的操作顺序为从下到上。下方TU的重建像素点可以作为上方TU的参考像素点。
在又一示例中,在机制1500中,将CU 1541水平划分成四个子CU。此外,帧内预测模式1571角度为右上。在该示例中,每个TU的帧内预测的操作顺序为下、中下、中上和中。下方TU的重建像素点可以作为上方TU的参考像素点。
图16为通过将CU尺寸与最大TU尺寸进行比较来选择用于在编码器侧应用于CU的划分机制的示例性方法1600的流程图。例如,方法1600与方法100可以由编解码系统200和/或编码器300等结合应用。此外,方法1600可用于实现机制500并对帧内预测模式600进行选择。此外,方法1600可以选择并应用划分机制700、800和/或900。此外,方法1600可以根据机制1000、1100、1200、1300、1400和/或1500将TU应用于子CU(由划分机制生成)。
方法1600可以在块压缩期间针对当前CU启动。在步骤1601中,例如从帧内预测模式600中选择帧内预测模式以对CU进行编码。可以根据率失真优化选择帧内预测模式。例如,编码器可以尝试多种帧内预测模式,并选择在编码效率与准确度损失之间取得最佳权衡的帧内预测模式。
在步骤1603中,选择划分机制将所述CU划分成子CU,以应用一个或多个TU。所述划分机制通过将CU宽度与最大TU宽度进行比较,并将CU高度与最大TU高度进行比较来选择。例如,当第一CU边尺寸大于第一最大TU边尺寸,且第二CU边尺寸小于或等于第二最大TU边尺寸时,可以采用划分机制700和/或800。具体地,方法1600可以选择并实施如下所述的方法1800。在另一示例中,方法1600可以确定第一CU边尺寸大于第一最大TU边尺寸且不是第一最大TU边尺寸的整数倍,并且第二CU边尺寸大于第二最大TU边尺寸且不是第二最大TU边尺寸的整数倍。在这种情况下,方法1600可以采用划分机制900。具体地,方法1600可以选择并实施如下所述的方法1900。
在步骤1605中,将所述选择的划分机制应用于所述CU以产生子CU。此外,在步骤1606中,确定所述CU的残差。如上所述,残差包括CU的像素点值与帧内预测模式所指示的参考值之间的差值。需要说明的是,此类参考像素点也可以称为预测像素点。还需要说明的是,在一些示例中,步骤1606可以在步骤1605之前进行。具体地,在一些示例中,确定CU的残差,然后将CU划分成子CU,这些子CU包括包含在CU对应位置中的残差像素点。在其它示例中,将CU划分成子CU,然后将为CU选择的帧内预测模式应用于每个子CU以确定子CU的残差像素点。
在步骤1607中,根据选择的划分机制的结果,将一个或多个TU应用于子CU以变换CU的残差。在一些情况下,根据选择的划分机制的结果应用TU以变换CU的残差可以包括根据帧内预测模式(例如,根据机制1000、1100、1200、1300、1400和/或1500)按顺序应用TU。例如,帧内预测模式指向一个方向。根据帧内预测模式按顺序应用TU可以包括:首先应用位于与帧内预测模式所指向的方向相反方向上的第一个TU;之后应用位于帧内预测模式所指向的方向上的最后一个TU。
在步骤1609中,将CU的帧内预测模式和变换残差编码到码流中。也可以将标志或其它语法编码到码流中以指示在步骤1603中为CU选择的划分机制。然后,在步骤1611中,将所述码流发送到解码器以支持重建CU,用于显示。
图17为通过将CU尺寸与最大TU尺寸进行比较来选择用于在解码器侧应用于CU的划分机制的示例性方法1700的流程图。例如,方法1700与方法100可以由编解码系统200和/或解码器400等结合应用。此外,方法1700可用于实现机制500以根据帧内预测模式600进行解码。此外,方法1700可以选择并应用划分机制700、800和/或900。此外,方法1700可以根据机制1000、1100、1200、1300、1400和/或1500将TU应用于子CU(由划分机制生成)。
可以启动方法1700以对当前CU进行解码,从而重建待输出图像。在步骤1701中,接收码流。所述码流包括CU的帧内预测模式和CU的变换残差。变换残差包括进行变换时CU的像素点值与帧内预测模式(例如,预测像素点)所指示的参考值之间的差值。
在步骤1705中,选择划分机制将CU划分成子CU,以将一个或多个逆TU应用于变换残差。所述划分机制通过将CU宽度与最大TU宽度进行比较,并将CU高度与最大TU高度进行比较来选择。例如,可以根据码流中从编码器指示的标志和/或语法并根据在编码器中进行的确定来选择划分机制。在另一示例中,解码器可以根据预定(例如,默认)规则进行选择。例如,当第一CU边尺寸大于第一最大TU边尺寸,且第二CU边尺寸小于或等于第二最大TU边尺寸时,可以采用划分机制700和/或800。具体地,方法1700可以选择并实施如下所述的方法1800。在另一示例中,方法1700可以确定第一CU边尺寸大于第一最大TU边尺寸且不是第一最大TU边尺寸的整数倍,并且第二CU边尺寸大于第二最大TU边尺寸且不是第二最大TU边尺寸的整数倍。在这种情况下,方法1700可以采用划分机制900。具体地,方法1700可以选择并实施如下所述的方法1900。
在步骤1707中,将所述选择的划分机制应用于所述CU以产生子CU。此外,根据选择的划分机制的结果将逆TU应用于子CU以将变换残差解压缩为CU的残差。在一些示例中,根据选择的划分机制的结果应用逆TU以将变换残差解压缩为CU的残差包括根据帧内预测模式按顺序应用逆TU。在这种情况下,CU中的像素点可以作为CU中其它像素点的参考像素点。根据帧内预测模式按顺序应用逆TU可以包括:首先应用位于与帧内预测模式所指向的方向相反方向上的第一个逆TU;最后应用位于帧内预测模式所指向的方向上的最后一个逆TU。
在步骤1709中,根据残差和帧内预测模式重建CU的像素点值。然后,在步骤1711中,可以将CU的重建像素点值作为重建视频的一部分向显示器转发。
图18为执行划分机制的示例性方法1800的流程图。具体地,方法1800可以由方法1600的步骤1603和/或1605和/或方法1700的步骤1705用来实现划分机制700和/或800。方法1800可以由编码器和/或解码器实施。当已知对应CU的CU尺寸和最大变换尺寸时,在编码和/或解码期间启动方法1800。
在步骤1801中,方法1800确定第一CU边尺寸大于第一最大TU边尺寸,且第二CU边尺寸小于或等于第二最大TU边尺寸。在一个示例中,CU高度大于最大TU高度,且CU宽度小于或等于最大TU宽度。在另一示例中,CU宽度大于最大TU宽度,且CU高度小于或等于最大TU高度。
在步骤1803中,根据确定的结果为所述第一CU边尺寸大于所述第一最大TU边尺寸且所述第二CU边尺寸小于或等于所述第二最大TU边尺寸,可以通过创建垂直于所述第一CU边尺寸的子CU划分来划分所述CU。或者,根据确定的结果为第一CU边尺寸大于第一最大TU边尺寸且第二CU边尺寸小于或等于第二最大TU边尺寸,可以通过创建垂直于第二CU边尺寸的子CU划分来划分CU,这导致方法1800确定不划分CU。
图19为执行划分机制的另一示例性方法1900的流程图。具体地,方法1900可以由方法1600的步骤1603和/或1605和/或方法1700的步骤1705用来实现划分机制900。方法1900可以由编码器和/或解码器实施。当已知对应CU的CU尺寸和最大变换尺寸时,在编码和/或解码期间启动方法1900。
在步骤1901中,方法1900确定第一CU边尺寸大于第一最大TU边尺寸且不是第一最大TU边尺寸的整数倍,并且第二CU边尺寸大于第二最大TU边尺寸且不是第二最大TU边尺寸的整数倍。具体地,CU高度大于最大TU高度,且CU宽度大于最大TU宽度。此外,分别地,CU的宽度和高度并非最大TU尺寸的宽度和高度的整数倍。
在步骤1903中,根据步骤1901的确定,通过创建垂直于第一CU边尺寸的子CU划分来划分CU直到第一CU边尺寸小于第一最大TU边,和/或通过创建垂直于第二CU边尺寸的子CU划分来划分CU直到第二CU边尺寸小于第二最大TU边。可选地,垂直于第一CU边进行的子CU划分可以不进一步划分垂直于第二CU边进行的子CU划分,反之亦然。
图20为示例性视频编码设备2000的示意图。视频编码设备2000适用于实现本文描述的所公开示例/实施例。视频编码设备2000包括下行端口2020、上行端口2050,和/或收发单元(Tx/Rx)2010,其中,所述收发单元包括用于通过网络在上游和/或下游传输数据的发射器和/或接收器。视频编码设备2000还包括:处理器2030,包括用于处理数据的逻辑单元和/或中央处理单元(central processing unit,CPU);和用于存储数据的存储器2032。视频编码设备2000还可以包括与上行端口2050和/或下行端口2020耦合的光电(optical-to-electrical,OE)组件、电光(electrical-to-optical,EO)组件,和/或无线通信组件,用于通过光或无线通信网络进行数据通信。视频编码设备2000还可以包括输入和/或输出(input/output,I/O)设备2060,用于向用户传输数据和从用户传输数据。I/O设备2060可以包括输出设备,如用于显示视频数据的显示器、用于输出音频数据的扬声器等。I/O设备2060还可以包括输入设备,如键盘、鼠标、轨迹球等,和/或用于与此类输出设备交互的对应接口。
处理器2030通过硬件和软件实现。处理器2030可以实现为一个或多个CPU芯片、核(例如,多核处理器)、现场可编程门阵列(field-programmable gate array,FPGA)、专用集成电路(application specific integrated circuit,ASIC)和数字信号处理器(digitalsignal processor,DSP)。处理器2030与下行端口2020、Tx/Rx 2010、上行端口2050和存储器2032通信。处理器2030包括编码模块2014。编码模块2014结合帧内预测模式600实现上述公开的实施例,如方法100、1600、1700、1800和1900以及机制500、700、800、900、1000、1100、1200、1300、1400和/或1500,以及本文描述的任何其它方法/机制。此外,编码模块2014可以实现编解码系统200、编码器300和/或解码器400。例如,可以使用编码模块2014将CU划分成子CU。具体地,编码模块2014可以通过分别将CU宽度和高度与最大TU的宽度和高度进行比较来选择划分机制,然后将TU应用于一个或多个子CU。编码模块2014还可以对标志或其它语法进行编码和/或读取以指示所选择的划分机制。此外,编码模块2014可以按照根据为CU选择的预测模式选择的顺序将TU应用于子CU。因此,编码模块2014使视频编码设备2000以更高的编码效率和/或准确度操作。因此,编码模块2014改进了视频编码设备2000的功能,并解决了视频编码领域特有的问题。此外,编码模块2014可以将视频编码设备2000变换到不同的状态。或者,编码模块2014可以实现为存储在存储器2032中并由处理器2030执行的指令(例如,存储在非瞬时性介质中的计算机程序产品)。
存储器2032包括一个或多个存储器类型,如磁盘、磁带机、固态驱动器、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、闪存、三元内容可寻址存储器(ternary content-addressable memory,TCAM)、静态随机存取存储器(static random-access memory,SRAM)等。存储器2032可用作溢出数据存储设备,以在选择程序执行时存储此类程序,并存储在程序执行期间读取的指令和数据。
图21为通过将CU尺寸与最大TU尺寸进行比较来选择应用于CU的划分机制的示例性系统2100的示意图。系统2100包括编码器2102和解码器2110,可以由编解码系统200、编码器300和/或解码器400实现。
编码器2102包括:预测模块2101,用于选择帧内预测模式对CU进行编码。编码器2102还包括:划分机制模块2103,用于选择划分机制将CU划分成子CU以应用一个或多个变换单元(transform unit,TU),其中,划分机制的选择是基于将CU宽度与最大TU宽度进行比较以及将CU高度与最大TU高度进行比较。编码器2102还包括:划分应用模块2105,用于将选择的划分机制应用于CU以获得子CU。编码器2102还包括:残差模块2106,用于确定其中一个子CU的残差,其中,所述残差包括子CU的像素点值与子CU的预测像素点之间的差值。编码器2102还包括:变换模块2107,用于根据选择的划分机制的结果,应用TU以变换CU的残差。编码器2102还包括:编码模块2108,用于将CU的变化残差编码到码流中。编码器2102还包括:发射模块2109,用于将码流发送到解码器,以支持重建CU,用于显示。
解码器2110包括:接收模块2117,用于接收码流,其中,所述码流包括CU的变换残差,所述变换残差包括进行变换时CU的像素点值与CU的预测像素点之间的差值。解码器2110还包括:划分机制模块2111,用于选择划分机制将CU划分成子CU以将一个或多个逆TU应用于变换残差,其中,所述划分机制是通过将CU宽度与最大TU宽度进行比较以及将CU高度与最大TU高度进行比较来进行选择的。解码器2110还包括:变换模块2113,用于根据选择的划分机制的结果对CU的子CU应用逆TU以将变换残差解压缩为CU的残差。解码器2110还包括:解码模块2115,用于根据残差和预测像素点重建CU的像素点值。解码器2110还包括:显示接口模块2119,用于将CU的重建像素点值作为重建视频的一部分向显示器转发。
当第一组件与第二组件之间除了线、迹线或其它介质之外没有中间组件时,所述第一组件与所述第二组件直接耦合。当第一组件与第二组件之间除了线、迹线或其它介质之外还有中间组件时,第一组件与第二组件间接耦合。术语“耦合”及其变型包括直接耦合和间接耦合。除非另有说明,否则使用术语“约”意指包括后续数字±10%的范围。
虽然本发明中已提供若干实施例,但可以理解,在不脱离本发明的精神或范围的情况下,所公开的系统和方法可以以许多其它特定形式来体现。本发明示例应被视为说明性而非限制性的,且本发明并不限于本文所给出的细节。例如,可以在另一系统中结合或集成各种元件或组件,或者可以省略或不实现某些特征。
此外,在不脱离本发明范围的情况下,各种实施例中描述和说明为离散或单独的技术、系统、子系统和方法可以与其它系统、组件、技术或方法进行组合或集成。变化、替换和变更的其它实例可由本领域技术人员确定,并可在不脱离本文公开的精神和范围的情况下举例。
Claims (27)
1.一种在编码器中实现的方法,其特征在于,所述方法包括:
处理器选择划分机制将编码单元(coding unit,CU)划分成子CU以应用一个或多个变换单元(transform unit,TU),其中,所述划分机制的选择是基于将CU宽度与最大TU宽度进行比较以及将CU高度与最大TU高度进行比较;
所述处理器将所述选择的划分机制应用于所述CU以获得子CU;
所述处理器确定其中一个所述子CU的残差,其中,所述残差包括所述子CU的像素点值与所述子CU的预测像素点之间的差值;
根据所述选择的划分机制的结果,应用所述TU以变换所述CU的所述残差;
所述处理器将所述CU的变化残差编码到码流中。
2.根据权利要求1所述的方法,其特征在于,所述划分机制包括:
确定CU宽度大于最大TU宽度且CU高度小于或等于最大TU高度;
根据确定的结果为CU宽度大于所述最大TU宽度且所述CU高度小于或等于所述最大TU高度,当所述TU的高度不小于所述最大TU高度且所述TU的宽度不小于所述最大TU宽度时,确定不划分所述CU。
3.根据权利要求1所述的方法,其特征在于,所述划分机制包括:
确定CU宽度大于最大TU宽度且CU高度小于或等于最大TU高度;
根据确定的结果为CU宽度大于所述最大TU宽度且所述CU高度小于或等于所述最大TU高度,通过创建垂直于所述CU宽度的子CU划分来划分所述CU。
4.根据权利要求1所述的方法,其特征在于,所述划分机制包括:
确定CU宽度大于最大TU宽度且不是最大TU宽度的整数倍,并且CU高度大于最大TU高度且不是最大TU高度的整数倍;
根据确定的结果为CU宽度大于所述最大TU宽度且不是所述最大TU宽度的整数倍,并且所述CU高度大于所述最大TU高度且不是所述最大TU高度的整数倍,通过创建垂直于所述CU宽度的子CU划分来划分所述CU直到所述CU宽度小于第一最大TU边,或者通过创建垂直于所述CU高度的子CU划分来划分所述CU直到所述CU高度小于所述最大TU高度。
5.根据权利要求1所述的方法,其特征在于,所述划分机制包括:
确定CU宽度大于最大TU宽度且不是最大TU宽度的整数倍,并且CU高度大于最大TU高度且不是最大TU高度的整数倍;
根据确定的结果为CU宽度大于所述最大TU宽度且不是所述最大TU宽度的整数倍,并且所述CU高度大于所述最大TU高度且不是所述最大TU高度的整数倍,通过创建垂直于所述CU宽度的子CU划分来划分所述CU直到所述CU宽度小于所述第一最大TU边,并且通过创建垂直于所述CU高度的子CU划分来划分所述CU直到所述CU高度小于所述最大TU高度。
6.根据权利要求1至5中任一项所述的方法,其特征在于,垂直于所述CU宽度进行的子CU划分不进一步划分垂直于所述CU高度进行的子CU划分,反之亦然。
7.根据权利要求1至6中任一项所述的方法,其特征在于,还包括将标志编码到所述码流中以指示为所述CU选择的所述划分机制。
8.根据权利要求1至7中任一项所述的方法,其特征在于,还包括选择帧内预测模式以对所述CU的每个子CU进行编码,其中,根据所述选择的划分机制的结果应用所述TU以变换所述CU的所述子CU的所述残差包括根据所述帧内预测模式按顺序应用所述TU。
9.根据权利要求1至7中任一项所述的方法,其特征在于,所述帧内预测模式指向一个方向,其中,根据所述帧内预测模式按顺序应用所述TU包括:
首先对位于与所述帧内预测模式所指向的方向相反方向上的所述子CU应用第一个TU;
最后对位于所述帧内预测模式所指向的方向上的所述子CU应用最后一个TU。
10.一种视频编码设备,其特征在于,包括:
处理器和与所述处理器耦合的发射器,其中,所述处理器和发射器用于执行根据权利要求1至9中任一项所述的方法。
11.一种非瞬时性计算机可读介质,其特征在于,包括供视频编码设备使用的计算机程序产品,其中,所述计算机程序产品包括存储在所述非瞬时性计算机可读介质中的计算机可执行指令,当处理器执行所述计算机可执行指令时,所述视频编码设备执行根据权利要求1至9中任一项所述的方法。
12.一种编码器,其特征在于,包括:
划分机制模块,用于选择划分机制将编码单元(coding unit,CU)划分成子CU以应用一个或多个变换单元(transform unit,TU),其中,所述划分机制的选择是基于将CU宽度与最大TU宽度进行比较以及将CU高度与最大TU高度进行比较;
划分应用模块,用于将所述选择的划分机制应用于所述CU以获得子CU;
残差模块,用于确定其中一个所述子CU的残差,其中,所述残差包括所述子CU的像素点值与所述子CU的预测像素点之间的差值;
变换模块,用于根据所述选择的划分机制的结果,应用所述TU以变换所述CU的所述残差;
编码模块,用于将所述CU的变化残差编码到码流中。
13.根据权利要求12所述的编码器,其特征在于,所述编码器还用于执行根据权利要求1至9中任一项所述的方法。
14.一种在解码器中实现的方法,其特征在于,所述方法包括:
接收器接收码流,其中,所述码流包括与编码单元(coding unit,CU)的变换残差对应的编码内容,所述变换残差包括进行变换时所述CU的像素点值与所述CU的预测像素点之间的差值;
处理器选择划分机制将所述CU划分成子CU以将一个或多个逆变换单元(transformunit,TU)应用于所述变换残差,其中,所述划分机制是通过将CU宽度与最大TU宽度进行比较以及将CU高度与最大TU高度进行比较来进行选择的;
所述处理器将所述选择的划分机制应用于所述CU以获得所述子CU,并将所述逆TU应用于所述子CU以将所述变换残差逆变换为所述CU的残差;
所述处理器根据所述残差和所述预测像素点重建所述CU的像素点值。
15.根据权利要求14所述的方法,其特征在于,所述划分机制的选择包括:
确定CU宽度大于最大TU宽度且CU高度小于或等于最大TU高度;
根据所述确定的结果为所述CU宽度大于所述最大TU宽度且所述CU高度小于或等于所述最大TU高度,确定不划分所述CU。
16.根据权利要求14所述的方法,其特征在于,所述划分机制的选择包括:
确定CU宽度大于最大TU宽度且CU高度小于或等于最大TU高度;
根据确定的结果为CU宽度大于所述最大TU宽度且所述CU高度小于或等于所述最大TU高度,通过创建垂直于所述CU宽度的子CU划分来划分所述CU。
17.根据权利要求14所述的方法,其特征在于,所述划分机制的选择包括:
确定CU宽度大于最大TU宽度且不是最大TU宽度的整数倍,并且CU高度大于最大TU高度且不是最大TU高度的整数倍;
根据确定的结果为CU宽度大于所述最大TU宽度且不是所述最大TU宽度的整数倍,并且所述CU高度大于所述最大TU高度且不是所述最大TU高度的整数倍,通过创建垂直于所述CU宽度的子CU划分来划分所述CU直到所述CU宽度小于所述最大TU宽度,或者通过创建垂直于所述CU高度的子CU划分来划分所述CU直到所述CU高度小于所述最大TU高度。
18.根据权利要求14所述的方法,其特征在于,所述划分机制的选择包括:
确定CU宽度大于最大TU宽度且不是最大TU宽度的整数倍,并且CU高度大于最大TU高度且不是最大TU高度的整数倍;
根据确定的结果为CU宽度大于所述最大TU宽度且不是所述最大TU宽度的整数倍,并且所述CU高度大于所述最大TU高度且不是所述最大TU高度的整数倍,通过创建垂直于所述CU宽度的子CU划分来划分所述CU直到所述CU宽度小于所述最大TU宽度,并且通过创建垂直于所述CU高度的子CU划分来划分所述CU直到所述CU高度小于所述最大TU高度。
19.根据权利要求14至18中任一项所述的方法,其特征在于,垂直于所述CU宽度进行的子CU划分不进一步划分垂直于所述CU高度进行的子CU划分,反之亦然。
20.根据权利要求14至19中任一项所述的方法,其特征在于,所述划分机制的选择包括:
确定CU宽度大于最大TU宽度且CU高度小于或等于最大TU高度;
响应所述确定,所述方法还包括:所述接收器接收所述码流中指示为所述CU选择的所述划分机制的标志,所述划分机制不划分所述CU,或者通过创建垂直于所述CU宽度的子CU划分来划分所述CU。
21.根据权利要求14至19中任一项所述的方法,其特征在于,所述划分机制的选择包括:
确定CU宽度大于最大TU宽度且不是最大TU宽度的整数倍,并且CU高度大于最大TU高度且不是最大TU高度的整数倍;
响应所述确定,所述方法还包括:所述接收器接收所述码流中指示为所述CU选择的所述划分机制的标志,所述划分机制通过创建垂直于所述CU宽度的子CU划分来划分所述CU直到所述CU宽度小于所述最大TU宽度,或者通过创建垂直于所述CU高度的子CU划分来划分所述CU直到所述CU高度小于所述最大TU高度。
22.根据权利要求14至21中任一项所述的方法,其特征在于,所述码流包括所述CU的子CU的帧内预测模式,其中,根据所述选择的划分机制的结果应用所述逆TU以将所述变化残差解压缩为所述子CU的残差包括根据所述帧内预测模式按顺序应用所述逆TU。
23.根据权利要求14至22中任一项所述的方法,其特征在于,所述帧内预测模式指向一个方向,其中,根据所述帧内预测模式按顺序应用所述逆TU包括:
首先对位于与所述帧内预测模式所指向的方向相反方向上的所述子CU应用第一个逆TU;
最后对位于所述帧内预测模式所指向的方向上的所述子CU应用最后一个逆TU。
24.一种视频编码设备,其特征在于,包括:
处理器和与所述处理器耦合的接收器,其中,所述处理器和接收器用于执行根据权利要求14至23中任一项所述的方法。
25.一种非瞬时性计算机可读介质,其特征在于,包括供视频编码设备使用的计算机程序产品,其中,所述计算机程序产品包括存储在所述非瞬时性计算机可读介质中的计算机可执行指令,当处理器执行所述计算机可执行指令时,所述视频编码设备执行根据权利要求14至23中任一项所述的方法。
26.一种解码器,其特征在于,包括:
接收模块,用于接收码流,其中,所述码流包括编码单元(coding unit,CU)的变换残差,所述变换残差包括进行变换时所述CU的像素点值与所述CU的预测像素点之间的差值;
划分机制模块,用于选择划分机制将所述CU划分成子CU以将一个或多个逆变换单元(transform unit,TU)应用于所述变换残差,其中,所述划分机制是通过将CU宽度与最大TU宽度进行比较以及将CU高度与最大TU高度进行比较来进行选择的;
划分模块,用于将所述选择的划分机制应用于所述CU以获得子CU;
变换模块,用于根据所述选择的划分机制的结果对所述CU的所述子CU应用所述逆TU以将所述变换残差解压缩为所述CU的残差;
解码模块,用于根据所述残差和所述预测像素点重建所述CU的像素点值。
27.根据权利要求26所述的解码器,其特征在于,所述解码器还用于执行根据权利要求14至23中任一项所述的方法。
Applications Claiming Priority (7)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201862659583P | 2018-04-18 | 2018-04-18 | |
| US201862659135P | 2018-04-18 | 2018-04-18 | |
| US201862659673P | 2018-04-18 | 2018-04-18 | |
| US62/659,583 | 2018-04-18 | ||
| US62/659,135 | 2018-04-18 | ||
| US62/659,673 | 2018-04-18 | ||
| PCT/US2019/027500 WO2019204212A1 (en) | 2018-04-18 | 2019-04-15 | Block partitioning in video coding |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN111971958A true CN111971958A (zh) | 2020-11-20 |
| CN111971958B CN111971958B (zh) | 2023-01-13 |
Family
ID=68239852
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201980025703.0A Active CN111971958B (zh) | 2018-04-18 | 2019-04-15 | 视频编码中的块分割方法和设备 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US11102484B2 (zh) |
| EP (1) | EP3777150A1 (zh) |
| CN (1) | CN111971958B (zh) |
| WO (1) | WO2019204212A1 (zh) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US12457334B2 (en) | 2020-12-08 | 2025-10-28 | Huawei Technologies Co., Ltd. | Encoding and decoding methods and apparatuses for enhancement layer |
Citations (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101938657A (zh) * | 2010-10-07 | 2011-01-05 | 西安电子科技大学 | 高效视频编码中编码单元自适应划分方法 |
| WO2013063245A1 (en) * | 2011-10-27 | 2013-05-02 | Qualcomm Incorporated | Non-square transforms in intra-prediction video coding |
| WO2014047693A1 (en) * | 2012-09-28 | 2014-04-03 | Canon Kabushiki Kaisha | Method, apparatus and system for encoding and decoding the transform units of a coding unit |
| CN104067613A (zh) * | 2011-11-08 | 2014-09-24 | 株式会社Kt | 图像编码方法和装置以及图像解码方法和装置 |
| CN104853201A (zh) * | 2010-07-02 | 2015-08-19 | 数码士控股有限公司 | 用于帧内预测的编码/解码图像的装置和方法 |
| US9661347B2 (en) * | 2010-08-17 | 2017-05-23 | Samsung Electronics Co., Ltd. | Video encoding method and apparatus using transformation unit of variable tree structure, and video decoding method and apparatus |
| WO2017157249A1 (en) * | 2016-03-16 | 2017-09-21 | Mediatek Inc. | Method and apparatus of video data processing with restricted block size in video coding |
| US20180070105A1 (en) * | 2016-09-07 | 2018-03-08 | Qualcomm Incorporated | Sub-pu based bi-directional motion compensation in video coding |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9788019B2 (en) * | 2011-03-09 | 2017-10-10 | Hfi Innovation Inc. | Method and apparatus of transform unit partition with reduced complexity |
| KR20170122351A (ko) * | 2016-04-26 | 2017-11-06 | 인텔렉추얼디스커버리 주식회사 | 화면 내 예측 방향성에 따른 적응적 부호화 순서를 사용하는 비디오 코딩 방법 및 장치 |
-
2019
- 2019-04-15 EP EP19788776.3A patent/EP3777150A1/en active Pending
- 2019-04-15 CN CN201980025703.0A patent/CN111971958B/zh active Active
- 2019-04-15 WO PCT/US2019/027500 patent/WO2019204212A1/en not_active Ceased
-
2020
- 2020-07-15 US US16/929,979 patent/US11102484B2/en active Active
Patent Citations (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN104853201A (zh) * | 2010-07-02 | 2015-08-19 | 数码士控股有限公司 | 用于帧内预测的编码/解码图像的装置和方法 |
| US9661347B2 (en) * | 2010-08-17 | 2017-05-23 | Samsung Electronics Co., Ltd. | Video encoding method and apparatus using transformation unit of variable tree structure, and video decoding method and apparatus |
| CN101938657A (zh) * | 2010-10-07 | 2011-01-05 | 西安电子科技大学 | 高效视频编码中编码单元自适应划分方法 |
| WO2013063245A1 (en) * | 2011-10-27 | 2013-05-02 | Qualcomm Incorporated | Non-square transforms in intra-prediction video coding |
| CN104067613A (zh) * | 2011-11-08 | 2014-09-24 | 株式会社Kt | 图像编码方法和装置以及图像解码方法和装置 |
| WO2014047693A1 (en) * | 2012-09-28 | 2014-04-03 | Canon Kabushiki Kaisha | Method, apparatus and system for encoding and decoding the transform units of a coding unit |
| CN104685872A (zh) * | 2012-09-28 | 2015-06-03 | 佳能株式会社 | 对编码单位的变换单位编码和解码的方法、设备和系统 |
| WO2017157249A1 (en) * | 2016-03-16 | 2017-09-21 | Mediatek Inc. | Method and apparatus of video data processing with restricted block size in video coding |
| US20180070105A1 (en) * | 2016-09-07 | 2018-03-08 | Qualcomm Incorporated | Sub-pu based bi-directional motion compensation in video coding |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US12457334B2 (en) | 2020-12-08 | 2025-10-28 | Huawei Technologies Co., Ltd. | Encoding and decoding methods and apparatuses for enhancement layer |
Also Published As
| Publication number | Publication date |
|---|---|
| WO2019204212A1 (en) | 2019-10-24 |
| EP3777150A4 (en) | 2021-02-17 |
| EP3777150A1 (en) | 2021-02-17 |
| US11102484B2 (en) | 2021-08-24 |
| US20200351500A1 (en) | 2020-11-05 |
| CN111971958B (zh) | 2023-01-13 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP7234300B2 (ja) | 複数の参照線を用いたイントラ予測 | |
| CN112425166B (zh) | 视频译码中使用交叉分量线性模型进行帧内预测 | |
| US11109026B2 (en) | Luma and chroma block partitioning | |
| TWI682661B (zh) | 在計算設備中實現的方法 | |
| US11606571B2 (en) | Spatial varying transform for video coding | |
| US12495168B2 (en) | Constrained coding tree for video coding | |
| CN111971958B (zh) | 视频编码中的块分割方法和设备 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| GR01 | Patent grant | ||
| GR01 | Patent grant |