发明内容
本发明的目的旨在进一步提高视频数据的编码和压缩效率。
根据本发明的第一方面,提供一种图像和视频数据编码方法。在该方法中,将图像分割为最大编码单元LCU,以所述最大编码单元LCU为单位进行编码;采用能够将最大编码单元LCU裂分成四个编码单元CU的四叉树结构,并且四叉树结构上的编码单元CU能够被进一步裂分,其中针对每一次裂分对应设置一个裂分标识SF,并且对所述四叉树结构上的CU进行编码。该方法包括步骤:确定当前CU的尺寸是否大于预先确定的最大变换尺寸;并且在确定当前CU的尺寸大于预先确定的最大变换尺寸的情况下,直接将当前CU进行裂分,而不将与当前CU所对应的裂分标识SF写入图像和视频数据的编码码流中。
在本发明的一个实施方式中,在确定当前CU的尺寸等于或者小于预先确定的最大变换尺寸的情况下,将当前CU所对应的裂分标识SF随同该当前CU的编码数据一起写入图像和视频数据的编码码流中。
在本发明的一个实施方式中,最大编码单元LCU使用帧内预测编码模式。
在本发明的一个实施方式中,最大编码单元LCU使用帧间预测编码模式。
在本发明的一个实施方式中,将最大编码单元LCU尺寸和/或最大变换尺寸编码在图像和视频数据的编码码流中。
根据本发明的第二方面,提供一种图像和视频数据解码方法。在该方法中,以最大编码单元LCU为单位对图像和视频数据的编码码流进行解码,以恢复图像。图像在编码时被分割为最大编码单元LCU,并且采用能够将最大编码单元LCU裂分成四个编码单元CU的四叉树结构,并且四叉树结构上的编码单元CU能够被进一步裂分,其中针对每一次裂分对应设置一个裂分标识SF,并且对所述四叉树结构上的CU进行编码。该方法包括步骤:接收图像和视频数据的编码码流;确定当前CU的尺寸是否大于预先确定的最大变换尺寸;并且在确定当前CU的尺寸大于预先确定的最大变换尺寸的情况下,推定当前CU在编码时进行了裂分操作,而不从图像和视频数据的编码码流中读取与当前CU所对应的裂分标识SF。
在本发明的一个实施方式中,在确定当前CU的尺寸等于或者小于预先确定的最大变换尺寸的情况下,从图像和视频数据的编码码流中读取与当前CU所对应的裂分标识SF。
根据本发明的第三方面,提供一种图像和视频数据编码设备。在编码过程中,将图像分割为最大编码单元LCU,以所述最大编码单元LCU为单位进行编码。采用能够将最大编码单元LCU裂分成四个编码单元CU的四叉树结构,并且四叉树结构上的编码单元CU能够被进一步裂分,其中针对每一次裂分对应设置一个裂分标识SF,并且对所述四叉树结构上的CU进行编码。所述设备包括:确定装置,确定当前CU的尺寸是否大于预先确定的最大变换尺寸;以及SF写入装置,在所述确定装置确定当前CU的尺寸大于预先确定的最大变换尺寸的情况下,直接将当前CU进行裂分,而不将与当前CU所对应的裂分标识SF写入图像和视频数据的编码码流中。
在本发明的一个实施方式中,所述SF写入装置进一步被配置为:在所述确定装置确定当前CU的尺寸等于或者小于预先确定的最大变换尺寸的情况下,将当前CU所对应的裂分标识SF随同该当前CU的编码数据一起写入图像和视频数据的编码码流中。
根据本发明的第四方面,提供一种图像和视频数据解码设备。在解码过程中,以最大编码单元LCU为单位对图像和视频数据的编码码流进行解码,以恢复图像。图像在编码时被分割为最大编码单元LCU,并且采用能够将最大编码单元LCU裂分成四个编码单元CU的四叉树结构,并且四叉树结构上的编码单元CU能够被进一步裂分,其中针对每一次裂分对应设置一个裂分标识SF,并且对所述四叉树结构上的CU进行编码。所述设备包括:接收装置,用于接收图像和视频数据的编码码流;确定装置,用于确定当前CU的尺寸是否大于预先确定的最大变换尺寸;以及SF读取装置,用于在确定当前CU的尺寸大于预先确定的最大变换尺寸的情况下,推定当前CU在编码时进行了裂分操作,而不从图像和视频数据的编码码流中读取与当前CU所对应的裂分标识SF。
在本发明的一个实施方式中,所述SF读取装置进一步被配置为:在确定当前CU的尺寸等于或者小于预先确定的最大变换尺寸的情况下,从图像和视频数据的编码码流中读取与当前CU所对应的裂分标识SF。
本发明的各种实施方式使得能够在一定的应用环境下,不再编码和传输裂分标识SF,从而实现了信息压缩和码率节省。
具体实施方式
下文将结合附图参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。
本发明实施方式所描述的编解码方法可以理解为对HEVC/H.265国际标准的一个细节的改进,但是也可以独立于HEVC/H.265标准而应用于其他的高清视频编码(HEVC)实施方案中。在下文中,如无特别说明,本发明使用的诸如编码树单元CTU、最大编码单元LCU、裂分标识SF、编码单元CU、预测单元PU、变换单元TU等术语继承HEVC/H.265标准中对这些术语的定义和描述。
对HEVC/H.265国际标准的描述可以具体参考国际电信联盟远程通信标准化组织ITU-T所公布的H.265文档,标题为“Highefficiencyvideocoding”,可以从网址http://www.itu.int/rec/T-REC-H.265-201304-S获得。为了本申请公开内容的完整性,将上述文献的全部内容通过引用的方式并入本文。本文并不旨在就HEVC/H.265国际标准任何细节进行描述,本领域技术人员知道如何在该标准的公布文档中找到更多的细节。
在本公开中,术语“编解码”是指发生在编码器处的编码和发生在解码器处的解码。类似地,术语编解码器是指编码器、解码器或者组合的编解码器。术语编解码器、编码器、解码器都指的是设计用于与本公开一致的对图像或视频数据进行编解码(编码或解码)的特定机器。
应当理解,虽然在下文中主要是以在编码器执行的编码来描述本发明的各种实施方式,但是所描述的各种实施方式的逆过程也可以应用于在解码器执行的解码。
HEVC/H.265是基于块的混合空间和时间预测编解码方法。在HEVC/H.265中,输入图像首先被划分成方形的最大编码单元LCU,或称作编码树单元CTU,如图1所示。不同于其中基本编码单元是16×16像素的宏块的H.264视频编码标准,在HEVC中,CTU可以大至64×64像素。一个LCU可以被裂分成四个方形的编码单元CU,CU的尺寸可以是LCU尺寸的四分之一;一个LCU也可以不被裂分,直接被视为一个CU,具体视该LCU所在区域的输入图像的情况而定。每个CU可以进一步被裂分成四个更小的CU,其尺寸是原CU尺寸的四分之一。可以重复裂分过程直至满足一定标准。图2示出划分成CU的一个LCU的示例。在一般情况下,对于HEVC/H.265,使用的最小CU(例如,如下文进一步详述的叶子节点)被认为是一个基本编码CU。
LCU如何被裂分成CU可以通过四叉树来表示。在四叉树的每个节点处,如果节点被进一步裂分成子节点,则裂分标识SF被设置为1。否则,将标识SF设置为0。例如,图2的LCU划分可以通过图3的四叉树来表示。这些裂分标识SF被与视频码流中的其他标识,包括跳跃模式标识、合并模式信号、预测单元PU模式标识以及之类的,一起联合编码。在图3的四叉树的情况下,这些裂分标识1、0、1、0、0都需要被传输,连同其他标识被编码为开销。对于给定CU的语法信息可以被递归地定义,并且可以取决于CU是否被裂分成子CU。
未被裂分的节点(例如,在给定四叉树中对应于终端或叶子节点的节点)可以包括一个或多个预测单元PU。通常而言,PU表示对应CU的全部或一部分,并且包括用于出于针对CU执行预测的目的而获取对于PU的参考样本的数据。因此,在四叉树的每个叶子节点处,2N×2N的CU(例如,图2中左上角所示的CU)可以具有四种可能的图案(N×N,N×2N,2N×N,2N×2N)之一,如图4所示。虽然针对2N×2N的CU进行示出,但是可以使用具有不同的尺寸和对应图案(例如,正方形或矩形)的其他PU,如图5所示。
现在参考图5,其针对PU的不同的编码结构。针对帧内编码,可以使用尺寸为2N×2N和N×N的PU。针对帧间编码,可以使用尺寸为2N×2N、2N×N、N×2N、N×N的PU。如上所述,如果以帧内模式对PU进行编码,则每个PU可以具有它自己的空间预测方向。如果以帧间模式对PU进行编码,则每个PU可以具有它自己的运动矢量和相关联的参考图像。
CU可以被在空间上或时间上进行预测编码。如果CU被在帧内模式进行编解码,则CU的每个PU可以具有它自己的空间预测方向。如果CU被在帧间模式进行编解码,则CU的每个PU可以具有它自己的运动矢量和相关的参考图像。定义运动矢量的数据例如可以描述运动矢量的水平分量、运动矢量的垂直分量、用于运动矢量的分辨率(例如,四分之一像素精度或1/8像素精度)、运动矢量指向的参考帧或者用于运动矢量的参考列表(例如,列表0或列表1)。另外,可以使用运动矢量预测器索引来识别运动矢量预测器(例如,左邻居的运动矢量(MV),共处一地的邻居的MV)。取决于CU是否为未编码的、帧内预测模式编码的或者帧间预测模式编码的,划分模式可以不同。
通常而言,在帧内预测编码中,在帧中的相邻块之间存在高层级的空间相关性。因此,可以从附近的经编码和经重构的块来预测块,从而产生了帧内预测。在一些实施例中,可以通过定位在当前块之上或者其左边的先前编码的样本的加权平均来形成预测。编码器可以选择使原始和预测之间的差异和成本最小化的模式,并且在控制数据中用信号发送该选择。
通常而言,在帧间预测编码中,视频序列在帧之间具有高度的时间相关性,使得当前帧中的块能够被先前编码的帧中的区域(或者在双向预测的情况下中的两个区域)精确地描述,该先前编码的帧被称为参考帧。帧间预测利用先前编码和重构的参考帧、使用基于块的运动估计和补偿技术来开发预测。
在进行帧内预测或帧间预测编码以产生预测数据和残余数据之后,并且在进行任何变换(比如在H.264/AVC中使用的4×4或8×8整数变换或离散余弦变换(DCT))以产生变换系数之后,可以执行变换系统的量化。在一些实施例中,可以例如使用HEVC中的变换跳过模式来绕过任何变换操作。量化一般是指对变换系数进行量化从而有可能减小用来表示系统的数据量的过程,例如通过将高精度变换系数转换成有限数目的可能值。
每个CU还可以被划分成变换单元TU。在一些实施例中,对一个或多个TU执行块变换操作以对该块内的像素进行去相关,并且将块能量压缩成变换块的低阶系数。现代视频编解码器一般会定义多种尺寸的变换。一个视频编解码器所支持的变换的多少和大小受实际应用的影响,同时也有实现成本等的考虑。TU可支持4×4至32×32的编码变换,TU的最大尺寸(即,最大变换尺寸)可以在编解码系统中进行预先设定。
在本发明的一个实施方式中,TU的最大尺寸被编码器编码进码流中而传递至解码器。
在一些实施例中,可以应用一个8×8或4×4的变换。在其它实施例中,可以将不同尺寸的块变换的集合应用到CU,如图6所示,其中左边的块是被划分成PU的一个CU,右边的块是关联的TU集合。CU内的每个块变换的尺寸和位置由一个单独的四叉树来描述。图7示出在图6的例子中用于CU的TU的四叉树表示法。在这个例子中,裂分标识1、1、0、0、0被作为开销的一部分被编码进码流并且进行发送。如所理解的,CU、PU和TU尺寸可以是N×N或者M×N,其中N≠M,N和M为2的幂次方,例如4、8、16、32、64。
可以针对不同的目的来使用任何给定的CU的TU和PU。TU通常被用于变换、量化和编码操作,而PU通常被用于空间和时间预测。对于给定CU,未必存在PU的数目和TU的数目之间的直接关系。
发明人认识到,裂分标识SF实际上和变换尺寸具有关联,由于可使用的变换尺寸的限制,因此重建像素块至多是以最大的变换尺寸作为重建单位。例如,对于帧内预测来说,使用的预测像素与当前编码块越邻近,相关性越强,预测效果越好。因此,当前帧内编解码块的尺寸大于最大的变换尺寸时,其四叉树的烈分标识可以推知为1,因此不必写入码流或者进行发送。据此,可以提高图像或视频数据的压缩效率。
根据本发明的实施方式,可以利用变换尺寸来推知编码单元是否需要裂分。
举例而言,如果一个视频编解码器支持的变换尺寸是8×8和4×4,则对于16×16的尺寸及以上尺寸的帧内编码单元,不需要将SF写入码流。编码端和解码端此时都应推知SF==1。
作为另一个例子,如果一个视频编解码器支持的最大变换尺寸是32×32,则对于当前CU尺寸(N×N)为64×64,则裂分标识SF可被推知为1,而不必将其编码在码流中进行传输。
因此,根据本发明的实施方式,提出一种图像和视频数据编码方法80,如图8所示,其示意出了该图像和视频数据编码方法的流程图。该方法80包括步骤:
S810:确定当前CU的尺寸是否大于预先确定的最大变换尺寸。
S820:在确定当前CU的尺寸大于预先确定的最大变换尺寸的情况下,直接将当前CU进行裂分,设定当前CU的裂分标识SF,而不将与当前CU所对应的裂分标识SF写入图像和视频数据的编码码流中。此时,SF被推知为1,即CU必须进行裂分。
可选地,该方法包括步骤S830:在确定当前CU的尺寸等于或者小于预先确定的最大变换尺寸的情况下,将当前CU所对应的裂分标识SF随同该当前CU的编码数据一起写入图像和视频数据的编码码流中。此步骤中,当前CU是否裂分可以参考HEVC/H.285标准所规定的方法。
根据本发明的实施方式,还提出一种图像和视频数据编码设备90,包括:确定装置910,用于确定当前CU的尺寸是否大于预先确定的最大变换尺寸;以及SF写入装置920,用于在所述确定装置确定当前CU的尺寸大于预先确定的最大变换尺寸的情况下,直接将当前CU进行裂分,而不将与当前CU所对应的裂分标识SF写入图像和视频数据的编码码流中。
进一步地,所述SF写入装置920可以被配置为:在所述确定装置确定当前CU的尺寸等于或者小于预先确定的最大变换尺寸的情况下,将当前CU所对应的裂分标识SF随同该当前CU的编码数据一起写入图像和视频数据的编码码流中。
应当理解,本发明实施方式所使用的最大编码单元LCU和最大变换尺寸等编解码参数可以在编解码系统中预先设定,具体实现方法可以由不同的视频编解码标准规定。而根据本发明的一个实施方式,可以由编码器将上述编解码参数发送给解码器,例如将预先确定的最大变换尺寸等参数写入编码码流中,比如通过在序列参数集或等效的序列头中的参数进行传递。
由此,根据本发明的实施方式,还提供一种图像和视频数据解码方法和解码设备。
所述图像和视频数据解码方法包括步骤:
接收图像和视频数据的编码码流;
确定当前CU的尺寸是否大于预先确定的最大变换尺寸;并且
在确定当前CU的尺寸大于预先确定的最大变换尺寸的情况下,推定当前CU在编码时进行了裂分操作,而不从图像和视频数据的编码码流中读取与当前CU所对应的裂分标识SF。
进一步地,所述方法可以包括步骤:
在确定当前CU的尺寸等于或者小于预先确定的最大变换尺寸的情况下,从图像和视频数据的编码码流中读取与当前CU所对应的裂分标识SF。
所述图像和视频数据解码设备包括:
接收装置,用于接收图像和视频数据的编码码流;
确定装置,用于确定当前CU的尺寸是否大于预先确定的最大变换尺寸;以及
SF读取装置,用于在确定当前CU的尺寸大于预先确定的最大变换尺寸的情况下,推定当前CU在编码时进行了裂分操作,而不从图像和视频数据的编码码流中读取与当前CU所对应的裂分标识SF。
进一步地,所述SF读取装置可以被配置为:在确定当前CU的尺寸等于或者小于预先确定的最大变换尺寸的情况下,从图像和视频数据的编码码流中读取与当前CU所对应的裂分标识SF。
应当注意,在本公开的实施例中,编解码操作支持帧内图像(比如I图像)和帧间图像(比如P图像或B图像)。可以在不参考其他图像的情况下对帧内图像进行编码。因此,可以对于帧内图像内部的CU/PU使用空间预测。帧内图像提供解码可能在其处开始的点。另一方面,帧间图像通常针对高压缩。帧间图像支持帧内预测和帧间预测二者。帧间图像中的CU/PU被在空间上或者在时间上进行预测编码。时间参考是先前编码的帧内或帧间图像。
应当理解,附图中描绘为功能块的元件可以被实现为硬件、软件或它们的组合。框图和/或流程图中的每个方框以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
此外,本发明的实施方式可以被采用在诸如个人计算机、智能电话或平板计算机等系统上。
已经出于示出和描述的目的给出了本发明的说明书,但是其并不意在是穷举的或者限制于所公开形式的发明。本领域技术人员可以想到很多修改和变体。在不脱离本发明精神的前提下,做出的所有修改和替换都将落入所附权利要求定义的本发明保护范围内。