用大宏块进行视频译码转让专利
申请号 : CN200980139143.8
文献号 : CN102172023B
文献日 : 2013-08-28
发明人 : 陈培松 , 叶琰 , 马尔塔·卡切维奇
申请人 : 高通股份有限公司
摘要 :
权利要求 :
1.一种用于对视频数据进行编码的方法,其包含:
用视频编码器接收具有大于16×16像素的大小的视频块;
将所述块分割成若干分区,其中所述分区中的一些分区具有不同的大小;
使用第一编码模式来编码所述分区中的一者;
使用不同于所述第一编码模式的第二编码模式来编码所述分区中的另一者;以及产生指示所述块的所述大小并识别所述块的所述分区和用于编码所述分区的所述编码模式的用于所述块的块类型语法信息。
2.根据权利要求1所述的方法,其进一步包含产生包含用于所述块的经译码数据和所述块类型语法信息的经编码视频位流。
3.根据权利要求1所述的方法,其进一步包含基于编码成本分析来选择用于编码所述分区的所述编码模式。
4.根据权利要求3所述的方法,其进一步包含基于所述编码成本分析来选择对所述块的所述分割,其中所述编码成本分析包括对编码模式和所述分区的位速率和失真的分析。
5.根据权利要求1所述的方法,其中所述第一编码模式包括帧内编码模式且所述第二编码模式包括帧间编码模式。
6.根据权利要求1所述的方法,其中所述第一编码模式包括第一帧内编码模式且所述第二编码模式包括不同于所述第一帧内编码模式的第二帧内编码模式。
7.根据权利要求1所述的方法,其中所述第一编码模式包括第一帧间编码模式且所述第二编码模式包括不同于所述第一帧间编码模式的第二帧间编码模式。
8.根据权利要求1所述的方法,其中所述视频块具有至少64×64像素的大小。
9.根据权利要求1所述的方法,其进一步包含:
产生对应于所述分区中的相应者的量化参数修改值;以及
在对所述分区的编码期间根据所述量化参数修改值中的相应者将所述分区量化。
10.一种用于对视频数据进行编码的设备,其包含:
用于接收具有大于16×16像素的大小的视频块的装置;
用于将所述块分割成若干分区的装置,其中所述分区中的一些分区具有不同的大小;
用于使用第一编码模式来编码所述分区中的一者的装置;
用于使用不同于所述第一编码模式的第二编码模式来编码所述分区中的另一者的装置;以及用于产生指示所述块的所述大小并识别所述块的所述分区和用于编码所述分区的所述编码模式的用于所述块的块类型语法信息的装置。
11.根据权利要求10所述的设备,其进一步包含用于产生包含用于所述块的经译码数据和所述块类型语法信息的经编码视频位流的装置。
12.根据权利要求10所述的设备,其进一步包含用于基于编码成本分析来选择用于编码所述分区的所述编码模式的装置。
13.根据权利要求12所述的设备,其进一步包含用于基于所述编码成本分析来选择对所述块的所述分割的装置,其中所述编码成本分析包括对所述分区的帧内编码和帧间编码的位速率和失真的分析。
14.根据权利要求10所述的设备,其中所述第一编码模式包括帧内编码模式且所述第二编码模式包括帧间编码模式。
15.根据权利要求10所述的设备,其中所述第一编码模式包括第一帧内编码模式且所述第二编码模式包括不同于所述第一帧内编码模式的第二帧内编码模式。
16.根据权利要求10所述的设备,其中所述第一编码模式包括第一帧间编码模式且所述第二编码模式包括不同于所述第一帧间编码模式的第二帧间编码模式。
17.根据权利要求10所述的设备,其中所述视频块具有至少64×64像素的大小。
18.一种用于对视频数据进行编码的方法,其包含:
用视频解码器接收具有大于16×16像素的大小的视频块,其中将所述块分割成若干分区,所述分区中的一些分区具有不同的大小,用第一编码模式来编码所述分区中的一者且用不同于所述第一编码模式的第二编码模式来编码所述分区中的另一者;
接收指示所述块的所述大小并识别所述块的所述分区和用于编码所述分区的所述编码模式的用于所述块的块类型语法信息;以及基于所述块类型语法信息来解码所述视频块。
19.根据权利要求18所述的方法,其中所述第一编码模式包括帧内编码模式且所述第二编码模式包括帧间编码模式。
20.根据权利要求18所述的方法,其中所述第一编码模式包括第一帧内编码模式且所述第二编码模式包括不同于所述第一帧内编码模式的第二帧内编码模式。
21.根据权利要求18所述的方法,其中所述第一编码模式包括第一帧间编码模式且所述第二编码模式包括不同于所述第一帧间编码模式的第二帧间编码模式。
22.根据权利要求18所述的方法,其中所述视频块具有至少64×64像素的大小。
23.根据权利要求18所述的方法,其进一步包含接收用于所述分区中的每一者的量化参数修改值,其中解码所述视频块包含根据所述量化参数修改值将所述分区解量化。
24.一种用于对视频数据进行编码的设备,其包含:
用于接收具有大于16×16像素的大小的视频块的装置,其中所述块经分割成若干分区,所述分区中的一些分区具有不同的大小,所述分区中的一者是用第一编码模式来编码且所述分区中的另一者是用不同于所述第一编码模式的第二编码模式来编码;
用于接收指示所述块的所述大小并识别所述块的所述分区和用于编码所述分区的所述编码模式的用于所述块的块类型语法信息的装置;以及用于基于所述块类型语法信息来解码所述视频块的装置。
25.根据权利要求24所述的设备,其中所述第一编码模式包括帧内编码模式且所述第二编码模式包括帧间编码模式。
26.根据权利要求24所述的设备,其中所述第一编码模式包括第一帧内编码模式且所述第二编码模式包括不同于所述第一帧内编码模式的第二帧内编码模式。
27.根据权利要求24所述的设备,其中所述第一编码模式包括第一帧间编码模式且所述第二编码模式包括不同于所述第一帧间编码模式的第二帧间编码模式。
28.根据权利要求24所述的设备,其中所述视频块具有至少64×64像素的大小。
说明书 :
用大宏块进行视频译码
号美国临时申请案的权益,所述申请案中的每一者以全文引用的方式并入本文中。
090033U1、090033U3、090033U4来引用),所述申请案均转让给本受让人且其全文在此以引用的方式明确地并入本文中以用于所有目的。
技术领域
背景技术
数字视频信息。
宏块。使用关于相邻宏块的空间预测编码经帧内译码的(I)帧或切片中的宏块。经帧间译
码的(P或B)帧或切片中的宏块可使用关于同一帧或切片中的相邻宏块的空间预测或关于
其它参考帧的时间预测。
发明内容
式的宏块。根据本发明,编码器和解码器可利用大小大于16×16像素的大宏块。作为实例,大宏块可具有32×32、64×64或更大的像素阵列。
视频译码技术利用随着空间分辨率和/或帧速率增加而产生的较大冗余度。根据本发明,
视频译码技术可利用多种特征来支持对大宏块的译码。
作为另一实例,一种译码技术可利用分层经译码块模式(coded block pattern,CBP)值来
有效地识别大宏块内的具有非零系数的经译码的宏块和分区。作为另一实例,一种译码技
术可比较通过使用大宏块与小的宏块进行译码而产生的速率-失真量度以选择产生更有
利的结果的宏块大小。
于所述经编码块的经译码块模式值,其中所述经译码块模式值指示所述经编码块是否包括
至少一个非零系数。
经编码块是否包括至少一个非零系数。
生指示所述块的所述大小的块类型语法信息;以及产生用于所述经编码块的经译码块模式
值,其中所述经译码块模式值指示所述经编码块是否包括至少一个非零系数。
息;接收用于所述经编码块的经译码块模式值,其中所述经译码块模式值指示所述经编码
块是否包括至少一个非零系数;以及基于所述块类型语法信息和用于所述经编码块的所述
经译码块模式值来解码所述经编码块。
指示所述经编码块是否包括至少一个非零系数;以及基于所述块类型语法信息和用于所述
经编码块的所述经译码块模式值来解码所述经编码块。
码块的所述大小的块类型语法信息;接收用于所述经编码块的经译码块模式值,其中所述
经译码块模式值指示所述经编码块是否包括至少一个非零系数;以及基于所述块类型语法
信息和用于所述经编码块的所述经译码块模式值来解码所述经编码块。
中的一者;使用不同于所述第一编码模式的第二编码模式编码所述分区中的另一者;以及
产生指示所述块的所述大小并识别所述分区和用于编码所述分区的所述编码模式的块类
型语法信息。
区中的另一者;产生指示所述块的所述大小并识别所述分区和用于编码所述分区的所述编
码模式的块类型语法信息。
分区;使用第一编码模式编码所述分区中的一者;使用不同于所述第一编码模式的第二编
码模式编码所述分区中的另一者;以及产生指示所述块的所述大小并识别所述分区和用于
编码所述分区的所述编码模式的块类型语法信息。
分区中的一者且使用不同于所述第一编码模式的第二编码模式编码所述分区中的另一者;
接收指示所述块的所述大小并识别所述分区和用于编码所述分区的所述编码模式的块类
型语法信息;以及基于所述块类型语法信息来解码所述视频块。
编码模式的第二编码模式而被编码;接收指示所述块的所述大小并识别所述分区和用于编
码所述分区的所述编码模式的块类型语法信息;以及基于所述块类型语法信息来解码所述
视频块。
所述块经分割成若干分区,所述分区中的一者是使用第一编码模式而被编码且所述分区中
的另一者是使用不同于所述第一编码模式的第二编码模式而被编码;接收指示所述块的所
述大小并识别所述分区和用于编码所述分区的所述编码模式的块类型语法信息;以及基于
所述块类型语法信息来解码所述视频块。
二速率-失真量度,在所述第一速率-失真量度小于第二速率-失真量度时使用所述第一
视频块来编码所述视频译码单元;以及在所述第二速率-失真量度小于所述第一速率-失
真量度时使用所述第二视频块来编码所述视频译码单元。
述视频译码单元的第二速率-失真量度;在所述第一速率-失真量度小于第二速率-失真
量度时使用所述第一视频块来编码所述视频译码单元;在所述第二速率-失真量度小于所
述第一速率-失真量度时使用所述第二视频块来编码所述视频译码单元。
块编码所述视频译码单元的第一速率-失真量度;确定使用具有大于16×16像素的大小的
第二视频块编码所述视频译码单元的第二速率-失真量度;在所述第一速率-失真量度小
于第二速率-失真量度时使用所述第一视频块来编码所述视频译码单元;以及在所述第二
速率-失真量度小于所述第一速率-失真量度时使用所述第二视频块来编码所述视频译码
单元。
单元中的所述多个视频块中的最大者的大小。
16×16像素的大小;以及产生包括最大大小值的用于所述经译码单元的语法信息,其中所
述最大大小值指示所述经译码单元中的所述多个视频块中的最大者的大小。
所述最大大小值指示所述经译码单元中的所述多个视频块中的最大者的大小。
中的至少一者包含大于16×16像素的大小;以及产生包括最大大小值的用于所述经译码
单元的语法信息,其中所述最大大小值指示所述经译码单元中的所述多个视频块中的最大
者的大小。
中的所述多个视频块中的最大者的大小;根据所述最大大小值选择块类型语法解码器;以
及使用所述选定块类型语法解码器解码所述经译码单元中的所述多个视频块中的每一者。
16×16像素的大小;接收包括最大大小值的用于所述经译码单元的语法信息,其中所述最
大大小值指示所述经译码单元中的所述多个视频块中的最大者的大小;根据所述最大大小
值选择块类型语法解码器;以及使用所述选定块类型语法解码器解码所述经译码单元中的
所述多个视频块中的每一者。
述多个视频块中的最大者的大小;用于根据所述最大大小值选择块类型语法解码器的装
置;以及用于使用所述选定块类型语法解码器解码所述经译码单元中的所述多个视频块中
的每一者的装置。
中的至少一者包含大于16×16像素的大小;接收包括最大大小值的用于所述经译码单元
的语法信息,其中所述最大大小值指示所述经译码单元中的所述多个视频块中的最大者的
大小;根据所述最大大小值选择块类型语法解码器;以及使用所述选定块类型语法解码器
解码所述经译码单元中的所述多个视频块中的每一者。
附图说明
具体实施方式
宏块。根据本发明,编码器和/或解码器可利用大小大于16×16像素的大宏块。作为实例,
大宏块可具有32×32、64×64或可能更大的像素阵列。
其包含宏块类型信息和经译码块模式(CBP)信息,如下文更详细地论述。
码标准规定经帧间编码的宏块通常经指派有单一运动向量。根据本发明中所描述的各种技
术,多个运动向量可经指派有用于N×N宏块的经帧间编码的分区,如下文更详细地描述。
对“大宏块”或类似短语的引用一般指代具有大于16×16的像素阵列的宏块。
增加的空间分辨率(例如,每帧1280×720或1920×1080像素)和/或增加的帧速率(例
如,每秒30帧或60帧)产生视频数据所提供的增加的冗余。
频序列大36倍,且在时间上比具有每帧176×144像素的空间分辨率和每秒15帧的帧速率
的数字视频序列快4倍。通过增加的宏块大小,视频编码器和/或解码器可更好地利用增
加的空间和/或时间冗余来支持视频数据的压缩。
16×16宏块。在此实例中,在64×64宏块的情况下,减少了处置增加的空间分辨率所需的
宏块的数目。在每一帧或切片的减少数目个宏块的情况下,例如,可减少例如语法信息、运动向量数据等的译码信息的累积量。
的像素数目大的数目个像素的意义上是大的。然而,由大宏块的垂直和水平尺寸界定的空
间区域(即,作为由视频帧的垂直和水平尺寸界定的区域的部分)可大于或可不大于常规
16×16宏块的区域。在一些实例中,大宏块的区域可与常规的16×16宏块相同或类似。然
而,大宏块具有以宏块内的像素的较高数目和较高空间密度为特征的较高空间分辨率。
频编码器可经配置以针对以每秒30帧显示的1280×720像素帧而利用32×32像素宏块。
作为另一说明,视频编码器可经配置以针对以每秒60帧显示的1280×720像素帧而利用
64×64像素宏块。
译码模式(空间或时间)的宏块类型数据。另外,所述数据可包括运动向量差异(mvd)数
据以及表示宏块和/或其分区的运动向量信息的其它语法元素。而且,所述数据可包括经
译码块模式(CBP)值以及表示预测后的残余信息的其它语法元素。宏块类型数据可提供于
大宏块的单一宏块标头中。
模式(CBP)值来有效地识别具有表示残余数据的非零变换系数的经译码的宏块和分区。另
外,可比较使用大宏块大小与小宏块大小进行译码的速率-失真量度以选择产生有利结果
的宏块大小。此外,包含变化大小的宏块的经译码单元(例如,帧、切片、序列,或图片群组)可包括指示所述经译码单元中的最大宏块的大小的语法元素。如下文更详细地描述,大宏
块包含不同于标准的16×16像素块的块层级语法。因此,通过指示经译码单元中的最大宏
块的大小,编码器可向解码器发信号通知将应用于所述经译码单元的宏块的块层级语法解
码器。
以使得一些分区具有不同译码模式,例如不同的帧内译码模式(例如,I_16×16、I_8×8、
I_4×4)或帧内和帧间译码模式。
为第一I模式且第二模式可为不同于所述第一I模式的第二I模式。在其它情况下,第一
模式可为I模式且第二模式可为P或B模式。因此,在一些实例中,大宏块可包括一个或一
个以上在时间上(P或B)译码的分区和一个或一个以上在空间上(I)译码的分区,或一个
或一个以上具有不同I模式的在空间上译码的分区。
系数。变换系数编码大宏块的残余数据。大宏块层级CBP位指示大宏块中的任何分区是否
包括非零的、经量化的系数。如果大宏块中的任何分区不包括非零、经量化的系数,则不需要考虑所述分区中的任一者是否具有非零系数,因为已知整个大宏块不具有非零系数。在
此情况下,可使用预测宏块来解码不具有残余数据的宏块。
具有至少一个非零系数的分区的适当残余数据,且使用所述残余数据和预测块数据解码所
述分区。在一些情况下,一个或一个以上分区可具有非零系数,且因此包括具有适当指示的分区层级CBP值。大宏块与所述分区中的至少一些分区均可大于16×16像素。
译码单元(例如,帧或切片)的16×16宏块、32×32宏块与64×64宏块之间的速率-失
真量度。编码器可接着选择产生最好的速率-失真的宏块大小,且使用所述选定宏块大小
(即,具有最好的速率-失真的宏块大小)编码所述经译码单元。
片,和比较每一遍次的速率-失真量度。以此方式,编码器可通过改变宏块大小并选择产生给定译码单元(例如,切片或帧)的最好的或最佳速率-失真的宏块大小来优化速率-失
真。编码器可进一步将用于经译码单元的识别在经译码单元中所使用的宏块的大小的语
法信息(例如)作为帧标头或切片标头的一部分进行发射。如下文更详细地论述,用于经
译码单元的语法信息可包含最大大小指示符,其指示经译码单元中所使用的宏块的最大大
小。以此方式,编码器可向解码器通知预期将哪些语法用于经译码单元的宏块。当宏块的
最大大小包含16×16像素时,解码器可预期标准H.264语法且根据H.264-指定语法来解
析宏块。然而,当宏块的最大大小大于16×16(例如,包含64×64像素)时,解码器可预期
与较大宏块的处理有关的经修改的语法元素和/或额外语法元素(如本发明描述),且根据
所述经修改的语法或额外语法来解析宏块。
如)视视频内容和复杂性而定,64×64、32×32或16×16可适合于不同视频帧或切片。
的技术。如图1中所展示,系统10包括经由通信信道16将经编码的视频发射到目的装置
14的源装置12。源装置12和目的装置14可包含较广范围的装置中的任一者。在一些情
况下,源装置12和目的装置14可包含无线通信装置,例如无线手持机、所谓的蜂窝式或卫
星无线电电话,或可在通信信道16上(在此情况下,通信信道16为无线的)传送视频信息
的任何无线装置。然而,本发明的涉及包含比由常规视频编码标准规定的宏块多的像素的
大宏块的使用的技术未必限于无线应用或设定。举例来说,这些技术可适用于空中电视广
播、有线电视发射、卫星电视发射、因特网视频发射、经编码到存储媒体上的经编码的数字视频,或其它情况。因此,通信信道16可包含适合于发射经编码的视频数据的无线媒体或
有线媒体的任何组合。
和显示装置32。根据本发明,源装置12的视频编码器20可经配置以应用用于在视频编码
过程中使用具有大于由常规视频编码标准规定的宏块大小的大小的大宏块的技术中的一
者或一者以上。类似地,目的装置14的视频解码器30可经配置以应用用于在视频解码过程
中使用大于由常规视频编码标准规定的宏块大小的宏块大小的技术中的一者或一者以上。
码装置(在所述译码装置中,源装置12产生用于发射到目的装置14的经译码的视频数据)
的实例。在一些实例中,装置12、14可以大体上对称的方式操作以使得装置12、14中的每
一者包括视频编码和解码组件。因此,系统10可支持视频装置12、14之间的单向或双向视
频发射,以(例如)用于视频串流、视频回放、视频广播或视频电话。
机产生的视频的组合。在一些情况下,如果视频源18为摄像机,则源装置12与目的装置14
可形成所谓的相机电话或视频电话。然而,如上文所提及,一般来说,本发明中所描述的技术可适用于视频译码,且可适用于无线或有线应用。在每一情况下,可由视频编码器20来
编码经俘获的、经预先俘获的或计算机产生的视频。经编码的视频信息可接着由调制解调
器22根据通信标准来调制,且经由发射器24而发射到目的装置14。调制解调器22可包括
各种混频器、滤波器、放大器或经设计以用于信号调制的其它组件。发射器24可包括经设
计以用于发射数据的电路,包括放大器、滤波器,和一个或一个以上天线。
大于16×16)用于视频数据的帧间(即,时间)编码和/或帧内(即,空间)编码。由视频
解码器30执行的视频解码过程还可在解码过程期间使用所述技术。在信道16上传送的信
息可包括由视频编码器20界定的语法信息,所述语法信息还被视频解码器30使用,所述语
法信息包括描述大宏块的特性和/或处理的语法元素,如下文更详细地论述。可将语法信
息包括于帧标头、切片标头、序列标头(例如,相对于H.264,通过使用经译码的视频序列所符合的简档和层级)或宏块标头中的任一者或全部中。显示装置32向用户显示经解码的
视频数据,且可包含例如阴极射线管(CRT)、液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器或另一类型的显示装置的多种显示装置中的任一者。
基于包的网络(例如,局域网、广域网,或例如因特网等全球网络)的一部分。通信信道16
一般表示用于将视频数据从源装置12发射到目的装置14的任何合适的通信媒体或不同通
信媒体的集合,包括有线或无线媒体的任何合适组合。通信信道16可包括路由器、交换机、基站,或可用于促进从源装置12到目的装置14的通信的任何其它装备。
于任何特定译码标准。其它实例包括MPEG-2和ITU-T H.263。虽然图1中未展示,但在一
些方面中,视频编码器20和视频解码器30可各自与音频编码器和解码器集成,且可包括适
当的MUX-DEMUX单元或其它硬件和软件,以处置共同数据流或单独数据流中的音频与视频
两者的编码。如果可适用,则MUX-DEMUX单元可遵从ITU H.223多路复用器协议,或例如用
户数据报协议(UDP)等其它协议。
些方面中,本发明中所描述的技术可适用于一般遵从H.264标准的装置。H.264标准描述
于ITU-T研究组的2005年3月公布的ITU-T推荐H.264,用于通用视听服务的高级视频译
码(Advanced Video Coding for generic audiovisual services)中,其在本文中可被称
作H.264标准或H.264规范,或H.264/AVC标准或规范。联合视频小组(JVT)不断致力于
对H.264/MPEG-4AVC的扩展。
30中的每一者可包括于一个或一个以上编码器或解码器中,视频编码器20和视频解码器
30中的任一者可作为组合式编码器/解码器(CODEC)的一部分而集成于相应相机、计算机、
移动装置、订户装置、广播装置、机顶盒、服务器等中。
于一分区的一分区。视频块可具有固定或不同的大小,且大小可根据指定译码标准或根据
本发明的技术而不同。每一视频帧可包括多个切片。每一切片可包括多个宏块,所述多个
宏块可布置成若干分区,所述分区还被称作子块。
量的16×16、16×8、8×16、8×8、8×4、4×8和4×4,和针对色度分量的对应缩放的大小)
的帧间预测。在本发明中,“×”与“乘”可互换地使用,以指代依据垂直和水平尺寸的块的像素尺寸,例如,16×16像素或16乘16像素。一般来说,16×16块将具有在垂直方向上的
16个像素和在水平方向上的16个像素。同样地,N×N块一般具有在垂直方向上的N个像
素和在水平方向上的N个像素,其中N表示可大于16的正整数值。一块中的像素可布置成
若干行和若干列。
(例如,32×32像素宏块、64×64像素宏块,或更大宏块)的帧内译码和帧间译码。视频块
可包含像素域中的像素数据的块,或(例如)在对表示经译码的视频块与预测视频块之间
的像素差异的残余视频块数据应用例如离散余弦变换(DCT)、整数变换、小波变换或概念上类似的变换等变换之后的在变换域中的变换系数的块。在一些情况下,视频块可包含变换
域中的经量化的变换系数的块。
块,例如宏块和/或子块。每一切片可为视频帧的可独立解码的单元。或者,帧本身可为
可解码的单元,或可将帧的其它部分界定为可解码的单元。术语“经译码单元”或“译码单元”可指代视频帧的任何可独立解码的单元,例如完整帧、帧的切片、图片群组(GOP)(还称作序列),或根据可适用的译码技术界定的另一可独立解码的单元。
换DCT)之后,可执行对变换系数的量化。量化一般指代将变换系数量化以可能地减少用于
表示系数的数据量的过程。量化过程可减少与一些系数或全部系数相关联的位深度。举例
来说,在量化期间,可将n位值向下舍入到m位值,其中n大于m。
码的处理单元或另一处理单元可执行其它处理功能,例如对经量化系数的零游程长度译码
和/或例如CBP值、宏块类型、译码模式、经译码单元(例如,帧、切片、宏块,或序列)的最大宏块大小等的语法信息的产生。
大于16×16像素的大小的视频块,产生指示所述块的大小的块类型语法信息,并产生所述
经编码块的CBP值,其中所述经译码块模式值指示所述经编码块是否包括至少一个非零系
数。宏块块类型语法信息可提供于大宏块的宏块标头中。宏块块类型语法信息可指示宏块
在帧或切片中的地址或位置,或识别宏块的位置的宏块编号、应用于宏块的译码模式的类
型、宏块的量化值、宏块的任何运动向量信息,和宏块的CBP值。
码模式的第二编码模式编码所述分区中的另一者,并产生指示所述块的大小并识别所述分
区和用于编码所述分区的编码模式的块类型语法信息。
定使用具有大于16×16像素的大小的第二视频块编码所述视频译码单元的第二速率-失
真量度,在所述第一速率-失真量度小于第二速率-失真量度时使用所述第一视频块编码
所述视频译码单元,且在所述第二速率-失真量度小于所述第一速率-失真量度时使用所
述第二视频块编码所述视频译码单元。
值,其中所述经译码块模式值指示所述经编码块是否包括至少一个非零系数,且基于所述
块类型语法信息和所述经编码块的所述经译码块模式值来解码所述经编码块。
码,接收指示所述块的大小并识别所述分区和用于编码所述分区的所述编码模式的块类型
语法信息,且基于所述块类型语法信息解码所述视频块。
装置的视频编码器。视频编码器50可执行对视频帧内的块(包括大宏块,或大宏块的分区
或子分区)的帧内译码和帧间译码。帧内译码依赖于空间预测来减少或移除给定视频帧内
的视频的空间冗余。帧间译码依赖于时间预测来减少或移除视频序列的邻近帧内的视频的
时间冗余。
的技术可在帧间译码与帧内译码两者期间应用。在一些情况下,本发明的技术还可适用于
编码非视频数字图片。即,数字静态图片编码器可利用本发明的技术以类似于编码视频序
列中的视频帧中的经帧内译码的宏块的方式使用大宏块对数字静态图片进行帧内译码。
解块滤波器(图2中未展示)以将块边界滤波,以从经重构的视频移除成块性假影。在需
要时,解块滤波器通常对求和器51的输出进行滤波。
上参考帧中的一个或一个以上块执行对所接收的视频块的帧间预测译码以提供时间压缩。
帧内预测单元37相对于与待译码的块相同的帧或切片中的一个或一个以上相邻块执行对
所接收的视频块的帧内预测译码以提供空间压缩。
供到求和器51以重构经编码块以用作参考帧。根据本发明的技术,待编码的视频块可包含
大于由常规译码标准规定的宏块(即,大于16×16像素宏块)的宏块。举例来说,大视频
块可包含64×64像素宏块或32×32像素宏块。
(或其它经译码单元)内的预测块相对于当前帧(或其它经译码单元)内正被译码的当前
块的位移。预测块是经发现在像素差异方面密切地匹配待译码的块的块,其可通过绝对差
总和(SAD)、平方差总和(SSD)或其它差异量度来确定。
第二运动向量可指示32×32分区中的第一者的位移,且第三运动向量可指示32×32分区
中的第二者的位移,所有位移均相对于参考帧中的对应分区。还可将所述分区视为视频块
(在那些术语用于本发明中时)。运动补偿可涉及基于运动估计所确定的运动向量来获取
或产生预测块。同样,运动估计单元36与运动补偿单元35可在功能上集成。
内插参考帧(例如,I帧或P帧)的子整数像素。ITU H.264标准将参考帧称作“列表”。因
此,还可将存储于参考帧存储装置34中的数据视为列表。运动估计单元36将来自参考帧
存储装置34的一个或一个以上参考帧(或列表)的块与当前帧(例如,P帧或B帧)的待
编码的块进行比较。当参考帧存储装置34中的参考帧包括用于子整数像素的值时,由运动
估计单元36计算的运动向量可指代参考帧的子整数像素位置。运动估计单元36将经计算
的运动向量发送到熵译码单元46和运动补偿单元35。由运动向量识别的参考帧块可称作
预测块。运动补偿单元35计算参考帧的预测块的误差值。
此减法运算的组件。变换单元38对残余块应用例如离散余弦变换(DCT)或概念上类似的变
换的变换,从而产生包含残余变换系数值的视频块。变换单元38可执行概念上类似于DCT
的其它变换,例如由H.264标准界定的变换。还可使用小波变换、整数变换、子频带变换或其它类型的变换。在任何情况下,变换单元38对残余块应用变换,从而产生残余变换系数
的块。所述变换可将残余信息从像素值域转换到变换域(例如,频域)。
发明中称作QPY)而建立用于每一64×64像素宏块的不同程度的量化。量化单元40可基
于量化参数修正符(其在本文中称作“MB64_delta_QP”)和先前经编码的64×64像素宏块
而进一步修改在64×64宏块的量化期间所使用的亮度量化参数。
的所要位速率而建立用于所述特定块的MB64_delta_QP值。第一64×64像素宏块的MB64_
delta_QP值可等于包括第一64×64像素宏块的帧或切片的QP值(例如,在帧/切片标头
中)。可根据下式来计算用于当前64×64像素宏块的QPY:
而对应于N除以52的余数值。对于帧/切片中的第一宏块,可将QPY,PREV设定为等于在帧/
切片标头中发送的帧/切片QP。
于零。在一些实例中,可界定额外delta_QP值(一般称作量化参数修改值)以用于64×64
像素宏块内的分区的较细粒度量化控制,例如用于64×64像素宏块的每一32×32像素分
区的MB32_delta_QP值。在一些实例中,64×64宏块的每一分区可经指派一个别量化参数。
代替针对64×64宏块使用单一QP,针对每一分区使用个别化的量化参数可实现宏块的更
有效量化,(例如)以便更好地调整对非同质区域的量化。可将每一量化参数修改值作为语
法信息与对应的经编码块包括在一起,且解码器可通过根据量化参数修改值解量化(即,
逆量化)经编码块来解码经编码块。
或另一熵译码技术。在由熵译码单元46进行熵译码之后,可将经编码的视频发射到另一装
置或将其存档以用于稍后发射或检索。经译码的位流可包括经熵译码的残余变换系数块、
所述块的运动向量、每一64×64像素宏块的MB64_delta_QP值,和包括(例如)宏块类型
识别符值、指示经译码单元中的宏块的最大大小的经译码单元标头、QPY值、经译码块模式(CBP)值、识别宏块或子块的分割方法的值,和变换大小旗标值的其它语法元素,如下文更详细地论述。在上下文自适应二进制算术译码的情况下,上下文可基于相邻宏块。
熵译码单元46可应用分层CBP方案以提供大宏块的指示宏块中的任何分区是否包括非零
变换系数值的CBP值,且如果是,则提供用于指示大宏块内的特定分区是否具有非零变换
系数值的其它CBP值。而且,在一些情况下,熵译码单元46可执行对大宏块或子分区中的
系数的游程长度译码。具体来说,熵译码单元46可应用曲折扫描或其它扫描模式以扫描宏
块或分区中的变换系数,且编码零的游程以用于进一步压缩。熵译码单元46还可用适当的
语法元素建构标头信息以用于在经编码视频位流中进行发射。
装置34的帧中的一者的预测块来计算参考块。运动补偿单元35还可对经重构的残余块应
用一个或一个以上内插滤波器以计算子整数像素值。求和器51将经重构的残余块加到由
运动补偿单元35产生的经运动补偿的预测块以产生用于存储于参考帧存储装置34中的经
重构的视频块。经重构的视频块可由运动估计单元36和运动补偿单元35用作用于对后续
视频帧中的块进行帧间译码的参考块。大宏块可包含64×64像素宏块、32×32像素宏块,
或大于由常规视频译码标准规定的大小的其它宏块。
小的经编码的宏块。举例来说,经编码的宏块可为32×32像素或64×64像素宏块。在图
3的实例中,视频解码器60包括熵解码单元52、运动补偿单元54、帧内预测单元55、逆量化单元56、逆变换单元58、参考帧存储装置62和求和器64。视频解码器60在一些实例中可
执行一般与关于视频编码器50(图2)所描述的编码遍次互逆的解码遍次。运动补偿单元
54可基于从熵解码单元52接收的运动向量产生预测数据。
析位流以识别经译码单元(例如,帧、切片和/或宏块标头)中的语法信息。包含多个宏块
的经译码单元的语法信息可指示经译码单元中的宏块(例如,16×16像素、32×32像素、
64×64像素,或其它较大大小的宏块)的最大大小。(例如)视块的译码模式而定,将块的
语法信息从熵译码单元52转发到运动补偿单元54或帧内预测单元55。解码器可使用经译
码单元的语法中的最大大小指示符来选择用于所述经译码单元的语法解码器。通过使用针
对所述最大大小而指定的语法解码器,解码器可接着适当地解译和处理包括于所述经译码
单元中的大宏块。
上邻近的块形成预测块。逆量化单元56将提供于位流中且由熵解码单元52解码的经量化
的块系数逆量化(即,解量化)。逆量化过程可包括(例如)如通过H.264解码标准界定的
常规过程。逆量化过程还可包括使用由编码器50针对每一64×64宏块计算的用以确定量
化的程度且同样应该应用的逆量化的程度的量化参数QPY。
能执行基于内插滤波器的内插。待用于具有子像素精度的运动估计的内插滤波器的识别符
可包括在语法元素中。运动补偿单元54可使用如由视频编码器50在视频块的编码期间所
使用的内插滤波器来计算参考块的子整数像素的内插值。运动补偿单元54可根据所接收
的语法信息来确定由视频编码器50使用的内插滤波器且使用所述内插滤波器来产生预测
块。
分区经编码的方式的模式、用于每一经帧间编码的宏块或分区的一个或一个以上参考帧
(或列表),和用于解码经编码视频序列的其它信息。
块性假影。接着将经解码的视频块存储于参考帧存储装置62中,参考帧存储装置62提供
用于后续运动补偿的参考块且还产生用于在显示装置(例如,图1的装置32)上呈现的经
解码视频。经解码视频块可各自包含64×64像素宏块、32×32像素宏块,或其它大于标准
的宏块。一些宏块可包括具有多种不同分区大小的分区。
包括整个块,第二分割模式包括相等大小的两个水平分区,第三分割模式包括相等大小的
两个垂直分区,且第四分割模式包括四个相等大小的分区。可针对每一分区层级的每一分
区选择所述分割模式中的一者。
度样本和相关联的色度样本的16×16像素块,且层级3对应于亮度样本和相关联的色度样
本的8×8像素块。
逐步子分割,使得宏块被分割,分区被进一步分割,所得分区被再进一步分割,等等。在一些情况中,低于层级0的分区(即,分区的分区)可称作子分区。
子块(N/2)×(N/2)的N×N块,可根据层级x+1的分割模式中的任一者进一步分割
(N/2)×(N/2)子块中的任一者。因此,可根据图4A中所展示的层级1处的模式(例如,
32×32、32×16与32×16、16×32与16×32,或16×16、16×16、16×16与16×16)中的任
一者进一步分割层级0处的64×64像素宏块的32×32像素子块。同样地,在由经分割的
32×32像素子块产生四个16×16像素子块的情况下,可根据图4A中所展示的层级2处的
模式中的任一者进一步分割16×16像素子块中的每一者。在由经分割的16×16像素子块
产生四个8×8像素子块的情况下,可根据图4A中所展示的层级3处的模式中的任一者进
一步分割8×8像素子块中的每一者。
(例如)基于速率-失真分析确定不同宏块的不同分割层级,以及对所述分区应用的编码模
式。而且,如下文更详细地描述,视频编码器50可(例如)基于速率-失真量度结果或其
它考虑事项而使用空间(P编码或B编码)或时间(I编码)预测来不同地编码最终分区中
的至少一些分区。
码一些(至少一个)分区。而且,可对一些(至少一个)分区进行帧内译码而对同一宏块
中的其它(至少一个)分区进行帧间译码。
实例,对于具有四个16×16分区的32×32块,视频编码器50可使用第一预测模式(例如,
I_16×16、I_8×8、I_4×4中的一者)来编码16×16分区中的一者或一者以上,且使用不
同的空间预测模式(例如,I_16×16、I_8×8、I_4×4中的一者)来编码一个或一个以上其
它16×16分区。
内译码模式指派到大的32×32宏块的右上部和左下部16×16块和将I_4×4帧内译码模
式指派到大的32×32宏块的右下部16×16块。在一些情况下,图4B中所说明的译码模式
可为用于亮度译码的H.264帧内译码模式。
用混合模式译码大宏块,以使得宏块中的一些分区经帧内译码且同一宏块中的其它分区经
帧间译码,或用不同的帧内译码模式或不同的帧间译码模式译码同一宏块中的一些分区。
用于编码分区的方法可不仅包括帧内译码和帧间译码,而且包括特定模式的帧内译码(例
如,I_16×16、I_8×8、I_4×4)或帧间译码(例如,P_或B_16×16、16×8、8×16、8×8、
8×4、4×8和4×4)。
type(其中,[N]指代具有N×N像素的块,其中N为可大于16的正整数)形成类似类型的
界定。当N×N块具有大小为(N/2)×(N/2)的四个分区时(如图4A上的最后一列中所展
示),所述四个分区中的每一者可接收其自身类型的界定(例如,MB[N/2]_type)。举例来
说,对于具有四个32×32像素分区的64×64像素块(MB64_type的类型),视频编码器50
可针对四个32×32像素分区中的每一者引入MB32_type。这些宏块类型语法元素可辅助解
码器60解码大宏块和大宏块的各种分区,如本发明中所描述。每一N×N像素宏块(其中
N大于16)一般对应于唯一类型的界定。因此,编码器可产生适合于特定宏块的语法,且向
解码器指示经译码单元(例如,帧、切片,或宏块的序列)中的宏块的最大大小。以此方式,解码器可接收将应用于经译码单元的宏块的语法解码器的指示。此还确保解码器可与现有
译码标准(例如,H.264)向后兼容,因为编码器可指示将应用于宏块的语法解码器的类型
(例如,标准的H.264或根据本发明的技术针对较大宏块的处理而指定的类型)。
分区的参考帧(或参考列表)。对于16×16和更小的块,视频编码器50在一些实例中可使
用常规类型的界定作为块的类型(例如,由H.264标准指定的类型)。在其它实例中,视频
编码器50可对16×16和更小的块应用新界定的块类型。
方法,且比较每一方法的速率-失真特性以确定哪种方法产生最好的速率-失真性能。视
频编码器50接着可基于译码方法的最佳或可接受的速率-失真结果来选择最好的译码
方法(包括帧间或帧内模式、宏块大小(大的、较大或正常),和分割),且将其应用于待译
码的块。作为一说明,视频编码器50可基于当视频编码器使用64×64宏块、32×32宏块
或16×16宏块大小时所产生的速率-失真结果而选择使用64×64宏块、32×32宏块或
16×16宏块来编码特定帧或切片。
测64×64块。以此方式,与16×16帧内块相比,可以较大规模执行空间预测。因此,这些
技术在一些实例中可导致一些位速率节省,例如,每一帧或切片使用较小数目个块或分区。
可将四个经帧内译码的块分组在一起,借此形成大的经帧内译码的宏块。举例来说,可将四个经帧内译码的块(每一者具有16×16的大小)分组在一起以形成大的32×32的经帧
内译码的块。视频编码器50可使用不同编码模式(例如,根据H.264的I_16×16、I_8×8
或I_4×4)编码四个对应的N×N块中的每一者。以此方式,可通过视频编码器50向每一
16×16块指派其自身的空间预测模式,(例如)以促进有利的编码结果。
不同的帧内模式方法,且将其置于单一候选池中以允许其彼此竞争以达到最好的速率-失
真性能。通过使用不同方法之间的速率-失真比较,视频编码器50可确定如何编码每一分
区和/或宏块。具体来说,视频编码器50可选择针对给定宏块产生最好的速率-失真性能
的译码模式,且应用那些译码模式来编码所述宏块。
块可具有对应的经译码块模式(CBP)值。所述CBP值形成描述一块或宏块的语法信息的一
部分。在一个实例中,CBP值各自为指示在变换和量化运算之后在给定块中是否存在任何
非零变换系数值的一位语法值。
是,可将用于块的CBP值设定为0以指示经译码块不包括非零系数。或者,如果块包括至
少一个非零系数,则可将CBP值设定为1。解码器60可使用CBP值来识别经译码的残余块
(即,具有一个或一个以上非零变换系数)与未经译码的块(即,不包括非零变换系数)。
指示哪些分区具有非零系数。大宏块的分层CBP可促进对大宏块的处理以迅速地识别经译
码的大宏块和未经译码的大宏块,且准许识别大宏块的每一分区层级的经译码分区以确定
是否有必要使用残余数据来解码所述块。
系数。在一个实例中,视频编码器50将CBP64位“设定”(例如)到值“1”,以表示64×64
像素宏块包括至少一个非零系数。因此,当将CBP64值设定(例如)到值“1”时,64×64像
素宏块在其中某处包括至少一个非零系数。在另一实例中,视频编码器50将CBP64值“清
除”(例如)到值“0”,以表示64×64像素宏块具有全零系数。因此,当将CBP64值清除(例
如)到值“0”时,指示64×64像素宏块为具有全零系数。具有为“0”的CBP64值的宏块一
般不需要在位流中发射残余数据,而具有为“1”的CBP64值的宏块一般需要在位流中发射
残余数据以用于解码所述宏块。
地,包括至少一个非零系数的64×64像素宏块可进一步包括用于下一分区层级处的分区
的CBP值。举例来说,具有值1的CBP64可包括用于64×64块的每一32×32分区的呈一
位值CBP32的形式的额外语法信息。即,在一个实例中,64×64像素宏块的每一32×32像
素分区(例如,图5中的层级1的四个分区块)经指派有CBP32值作为64×64像素宏块的
语法信息的一部分。与CBP64值一样,每一CBP32值可包含一位,所述位在对应的32×32
像素块具有至少一个非零系数时被设定为值1,且在对应的32×32像素块具有全零系数时
被清除到值0。编码器可进一步在包含多个宏块的经译码单元(例如,帧、切片或序列)的
语法中指示经译码单元中的宏块的最大大小,以向解码器指示如何解译每一宏块的语法信
息(例如,将哪个语法解码器用于处理经译码单元中的宏块)。
法信息:用于表示64×64像素宏块具有非零系数的第一位,和各自表示宏块的四个32×32
像素分区中的对应一者是否包括至少一个非零系数的四个额外位。在一些实例中,当四个
额外位中的前三者为零时,可不包括第四额外位,解码器可将其解译为最后分区为一。即,在前三个位为零时且在表示较高层级阶层的位具有值1时,编码器可确定最后位具有值1。
举例来说,可将CBP64前缀值“10001”缩短到“1000”,因为第一位指示四个分区中的至少一者具有非零系数,且接下来三个零指示前三个分区具有全零系数。因此,解码器可(例
如)从位串“1000”推断出:最后分区包括非零系数,而不具有向解码器通知所述事实的显式位。即,解码器可将CBP64前缀“1000”解译为“10001”。
相应分区是否包括任何非零系数。因此,可在每一分区层级处以分层方式指派CBP值,直到不存在其它分区层级或不存在包括非零系数的分区为止。
码数字视频流的经译码单元的大宏块,以使得所述大宏块包含大于16×16像素;产生识别
所述块的大小的块类型语法信息;产生用于所述块的CBP值,以使得所述CBP值识别所述块
是否包括至少一个非零系数;以及在可适用时产生用于所述块的各种分区层级的额外CBP
值。
的一位。在一个实例中,当树的节点具有经设定为“1”的位时,所述节点具有四个分支(对应于四个分区),且当所述位被清除到“0”时,所述节点不具有分支。
索引。三个后续阵列位置(即,y+1、y+2,和y+3)对应于节点X的其它分支节点。
16×16像素分区的CBP值,以作为64×64像素宏块的语法的一部分。编码器还可基于分区
的大小、对应于分区的块的类型(例如,色度块或亮度块),或分区的其它特性而选择具有
至少一个非零系数的32×32像素分区的分区的CBP值。参看图8和图9进一步详细论述
用于设定32×32像素分区的分区的CBP值的实例方法。
理解,类似技术可适用于指派其它大小的宏块的分层CBP值。虽然图6到图9的实例是相
对于视频编码器50(图2)而论述的,但应理解,其它编码器可使用类似方法来将CBP值指
派到大于标准的宏块。同样地,解码器可利用类似的、但互逆的方法来解译宏块的特定CBP值的意义。举例来说,如果在位流中所接收的经帧间译码的宏块具有为“0”的CBP值,则解码器可不接收所述宏块的残余数据,且可仅产生由运动向量识别的预测块作为经解码的宏
块,或由相对于所述宏块的分区的运动向量而识别的预测块群组。
运动估计单元36和运动补偿单元35可接着分别产生用于编码所述宏块的一个或一个以上
运动向量和一个或一个以上残余块。变换单元38的输出一般包含用于经帧内译码的块或
经帧间译码的块的残余块的残余变换系数值阵列,所述阵列由量化单元40量化以产生一
系列经量化的变换系数。
大宏块和分区的CBP值。具体来说,熵译码单元46可通过首先确定64×64像素宏块是否
具有至少一个非零的、经量化的变换系数来确定所述宏块的CBP64值(102)。当熵译码单元
46确定所有变换系数具有零值时(102的“否”分支),熵译码单元46清除64×64宏块的
CBP64值(例如,将用于CBP64值的位复位到“0”)(104)。当熵译码单元46识别出64×64
宏块的至少一个非零系数时(102的“是”分支),熵译码单元46设定CBP64值(例如,将用
于CBP64值的位设定为“1”)(106)。
46进行到确定用于64×64像素宏块的四个32×32像素分区中的每一者的CBP值(108)。
熵译码单元46可将关于图7所描述的方法利用四次,每次针对所述四个分区中的一者,以
建立四个CBP32值,每一CBP32值对应于64×64宏块的四个32×32像素分区中的不同一
者。以此方式,当宏块具有全零系数时,熵译码单元46可发射具有值“0”的单一位以指示宏块具有全零系数,而当宏块具有至少一个非零系数时,熵译码单元46可发射五个位:用于
宏块的一位,和各自对应于宏块的四个分区中的一者的四个位。另外,当分区包括至少一个非零系数时,可在经编码位流中发送用于分区的残余数据。与上文所论述的CBP64的实例
一样,当四个额外位中的前三者为零时,第四额外位可能不必要,因为解码器可确定其具有值1。因此,在一些实例中,编码器可仅发送三个0(即,“000”)而不是三个0和一个1(即,“0001”)。
关于图6参看的四个分区中的一者)(110)。熵译码单元46接着通过首先确定32×32像
素分区是否包括至少一个非零系数来确定用于所述分区的CBP32值(112)。当熵译码单元
46确定用于分区的所有系数具有零值时(112的“否”分支),熵译码单元46清除CBP32值
(例如,将用于CBP32值的位复位到“0”)(114)。当熵译码单元46识别出分区的至少一个
非零系数时(112的“是”分支),熵译码单元46设定CBP32值(例如,将用于CBP32值的位
设定为值“1”)(116)。
32×32像素分区的四个16×16像素分区中的每一者的CBP值。熵译码单元46可利用关于
图8所描述的方法来建立各自对应于四个16×16像素分区中的一者的四个CBP16值。
外CBP位。作为一个实例,如果64×64宏块具有为1的CBP值,且四个32×32分区具有分
别为1、0、1和1的CBP值,则直到那个点的总的CBP值为11011。可添加用于32×32分区
的额外分区(例如,16×16分区)的额外CBP位。
译码标准(例如,ITU H.264)规定的CBP值,如下文所论述。对于其它16×16分区,视频
编码器50可利用根据本发明的其它技术的CBP值。最初,如图8中所展示,熵译码单元46
接收16×16分区(例如,关于图7所描述的32×32分区的16×16分区中的一者)(120)。
向量的两个8×16分区的16×16像素分区,可将两个8×16分区中的每一者视为一8×16
运动分区。在任何情况下,在图8的实例中,当运动分区不大于8×8像素块时(122的“否”
分支),熵译码单元46以与由ITU H.264规定的方式相同的方式将CBP值指派到16×16像
素分区(124)。
为了建构lumacbp16值,熵译码单元46确定分区的16×16像素亮度分量是否具有至少一
个非零系数(126)。在图8的实例中,当16×16像素亮度分量具有全零系数时(126的“否”
分支),熵译码单元46指派根据ITU H.264的经译码块模式色度部分的CBP16值(128)。
般指示正用于所述分区的变换。由变换大小旗标表示的变换可包括4×4变换、8×8变换、
16×16变换、16×8变换或8×16变换中的一者。变换大小旗标可包含整数值,其对应于识
别可能变换中的一者的所列举值。熵译码单元46可接着确定变换大小旗标是否表示变换
大小大于或等于16×8(或8×16)(132)。
换大小旗标指示变换大小大于或等于16×8(或8×16)时(132的“是”分支),熵译码单
元46接着确定16×16像素分区的类型是否为两个16×8像素分区或两个8×16像素分区
(136)。
度经译码块分区的CBP16值(140)。当16×16像素分区的类型为两个16×8或两个8×16
像素分区时(138的“是”分支),熵译码单元46还使用由ITU H.264规定的色度经译码块
模式,但另外向CBP16值指派二位luma16×8_CBP值(例如,根据关于图9所描述的方法)
(142)。
译码单元46一般根据16×16像素分区的对应子块是否包括至少一个非零系数来指派
luma16×8_CBP的每一位。
值“0”)(154)。当第一子块具有至少一个非零系数时(152的“是”分支),熵译码单元46
设定luma16×8_CBP的第一位(例如,将luma16×8_CBP[0]指派为值“1”)(156)。
CBP的第二位(例如,将luma16×8_CBP[1]指派为值“0”)(160)。当第二子块具有至少一
个非零系数时(158的“是”分支),熵译码单元46接着设定luma16×8_CBP的第二位(例
如,将luma16×8_CBP[1]指派为值“1”)(162)。
于或大于16×16的运动分区)、16×8变换(用于P_16×8)或8×16变换(用于P_8×16)
中的一者)的结果的所执行的计算。TRANSFORM_SIZE_GREATER_THAN_16×8为用于指示变
换大小大于或等于16×8或8×16的所列举值(例如,“2”)。将transform_size_flag的
结果并入64×64像素宏块的语法信息中。
宏块的语法中。可以与如由ITU H.264规定的CodedBlockPatternChroma相同的方式计算
值“chroma_cbp”。将所计算的chroma_cbp值并入64×64像素宏块的语法信息中。可以与
ITU H.264中所界定的CBP相同的方式计算函数h264_cbp。将所计算的H264_cbp值并入
64×64像素宏块的语法信息中。
块的经译码块模式值,其中所述经译码块模式值指示所述经编码块是否包括至少一个非零
系数。
四种方式中的任一者分割一块:不具有子分区的整个块(64×64)、两个相等大小的水平分
区(32×64和32×64)、两个相等大小的垂直分区(64×32和64×32),或四个相等大小的
正方形分区(32×32、32×32、32×32和32×32)。
等大小的垂直分区中的第一者包含A和C,而两个相等大小的垂直分区中的第二者包含B和
D;且四个相等大小的正方形分区对应于A、B、C和D中的每一者中的一者。类似分区方案
可用于任何大小的块,例如,大于64×64像素、32×32像素、16×16像素、8×8像素,或其它
大小的视频块。
块。作为一个实例,ITU H.264描述用于对16×16宏块进行帧内编码的三种不同方法,包
括在16×16层级处的帧内译码、在8×8层级处的帧内译码,和在4×4层级处的帧内译码。
然而,ITU H.264规定使用相同帧内译码模式编码16×16宏块的每一分区。因此,根据ITU
H.264,如果16×16宏块的一个子块将在4×4层级处被帧内译码,则16×16宏块的每个子
块都必须在4×4层级处被帧内译码。
码。
最后到D。虽然图10描绘64×64像素宏块,但对不同大小的经分割块的帧内译码可遵循此
相同排序。
所述块的每一分区。以下表1概述用于大小为N×N的块的每一潜在可能分区的帧间编码
信息。在表1参看“M”的位置,M=N/2。在下文的表1中,L0指代“列表0”(即,参考帧
/切片/列表)。当决定如何最好地分割N×N块时,编码器(例如,视频编码器50)可基于
拉格朗日乘数分析每一MB_N_type(即,每一分区类型)的速率-失真成本信息(如关于图
11更详细地论述),从而选择最低成本作为最好的分割方法。
(即,参考单一帧/切片/列表)来帧间译码块。名称中的“L0”指代用作P译码的参考帧
或切片的参考帧/切片/列表(例如,“列表0”)。“N×N”指代分区为整个块,“N×M”指代分区为宽度N和高度M的两个分区,“M×N”指代分区为宽度M和高度N的两个分区,“M×M”
指代分区为各自具有宽度M和高度M的四个相等大小的分区。
模式部分2”列的元素指代用于分区的子分区2的参考帧/切片/列表。因为P_L0_N×N
仅具有单一分区,所以“预测模式部分2”的对应元素为“N/A”,因为不存在第二子分区。对于PN_M×M,存在可经单独编码的四个分区块。因此,用于PN_M×M的两个预测模式列包括
“N/A”。与P_L0_N×N一样,PN_Skip仅具有单一部分,因此“预测模式部分2”列的对应元素为“N/A”。
与第二帧/切片/列表(L1)中的任一者或两者来编码每一分区。“BiPred”指代从L0与
L1两者预测的对应分区。在表2中,列标签和值的意义类似于表1中所使用的列标签和值
的意义。
法的每一不同编码方法(例如,各种空间或时间模式)的成本,和选择对于N×N像素视频
块来说具有最好的速率-失真成本的编码模式与分割方法的组合。一般可使用拉格朗日乘
数与速率和失真值来计算成本,以使得速率-失真成本=失真+λ*速率,其中失真表示原
始块与经译码块之间的误差,且速率表示支持所述译码模式所必需的位速率。在一些情况
下,可在宏块、分区、切片或帧层级上确定速率和失真。
所述宏块或其分区选择编码和分割方法。视频编码器50接着计算使用多种不同译码模式
(例如,不同的帧内译码模式和帧间译码模式)编码N×N块的成本(172)。为了计算在空
间上编码N×N块的成本,视频编码器50可计算失真和用给定译码模式编码N×N块所需的
位速率,且接着计算成本=失真(Mode,N×N)+λ*速率(Mode,N×N)。视频编码器50可使用指定译码技术编码宏块,且确定所得位速率成本和失真。可基于经译码的宏块中的像素与原始宏
块中的像素之间的像素差异(例如,基于绝对差总和(SAD)量度、平方差总和(SSD)量度或
其它像素差异量度)来确定失真。
例来说,为了计算编码第一N×(N/2)分区的成本,视频编码器50可计算编码第一N×(N/2)
分区的失真和位速率,且接着计算成本=失真(Mode,FIRST PARTITION,N×(N/2))+λ*速率(Mode,FIRST PARTITION,N×(N/2))。
例来说,为了计算编码所述(N/2)×N分区中的第一者的成本,视频编码器50可计算编码第
一(N/2)×N分区的失真和位速率,且接着计算成本=失真(Mode,FIRST PARTITION,(N/2)×N)+λ*速率(Mode,FIRST PARTITION,(N/2)×N)。对于编码所述(N/2)×N宏块分区中的第二者的成本,视频编码器
50可执行类似计算。
码所述(N/2)×(N/2)分区的成本,视频编码器50可首先计算编码左上部(N/2)×(N/2)
分区的失真和位速率,且按照成本(Mode,UPPER-LEFT,(N/2)×(N/2))=失真(Mode,UPPER-LEFT,(N/2)×(N/2))+λ*速率(Mode,UPPER-LEFT,(N/2)×(N/2))得到其成本。视频编码器50可按以下次序类似地计算每一(N/2)×(N/2)块的成本:(1)左上部分区,(2)右上部分区,(3)左下部分区,(4)右下部分
区。在一些实例中,视频编码器50可对于所述(N/2)×(N/2)分区中的一者或一者以上对此
方法进行递归调用以计算进一步分割和单独编码所述(N/2)×(N/2)分区中的每一者(例
如,作为(N/2)×(N/4)分区、(N/4)×(N/2)分区,和(N/4)×(N/4)分区)的成本。
(N/2)×(N/2)分区的最好的成本与编码包含所述两个邻近(N/2)×(N/2)分区的N×(N/2)
分区的最好的成本。当编码所述两个邻近(N/2)×(N/2)分区的累计成本超过编码包含
所述两个邻近(N/2)×(N/2)分区的N×(N/2)分区的成本时,视频编码器50可选择编码
N×(N/2)分区的较低成本选项。一般来说,视频编码器50可针对每一分区应用分割方法与
编码模式的每个组合以识别最低成本分割和编码方法。在一些情况下,视频编码器50可经
配置以评估分割与编码模式组合的更有限集合。
使用不同译码模式译码的分区。对大宏块应用混合模式译码以使得对大宏块中的不同分区
应用不同译码模式的能力可准许以减少的成本译码宏块。
中的一者;用不同于所述第一编码模式的第二编码模式编码所述分区中的另一者;以及产
生指示所述块的大小并识别所述分区和用于编码所述分区的所述编码模式的块类型语法
信息。
经标记为“P”的分区为编码器已(例如)基于速率-失真评估而选择利用单一参考帧间译
码的分区。经标记为“B”的分区为编码器已(例如)基于速率-失真评估而选择利用双向
预测帧间译码的分区。在图12的实例中,同一大宏块内的不同分区具有不同的译码模式,
包括不同分区或子分区大小和不同的帧内译码模式或帧间译码模式。
法元素可作为宏块标头语法元素提供于经编码视频位流中。图12中所说明的I译码、P
译码和B译码的分区可根据不同的译码模式(例如,具有各种块大小的帧内预测模式或帧
间预测模式,包括用于大小大于16×16的大分区的大块大小模式或用于大小小于或等于
16×16的分区的H.264模式)而被译码。
例来说,视频编码器50可接收64×64宏块,执行图11的方法,且因此产生具有各种分区大
小和译码模式的图12的实例宏块。然而,应理解,分割和译码模式的选择可通过应用图11
的方法而产生,例如,基于从其选择宏块的帧的类型,且基于针对其而执行所述方法的输入的宏块。举例来说,当帧包含I帧时,每一分区将经帧内编码。作为另一实例,当帧包含P
帧时,每一分区可经帧内编码或基于单一参考帧(即,无双向预测)而经帧间译码。
区。然而,在任何情况下,视频编码器50可针对宏块的不同部分选择各种分区大小,且选择使用任何可用的编码模式来编码每一分区。
32×16经B译码的分区、一个16×16经P译码的分区、一个16×8经P译码的分区、一个
8×16经P译码的分区、一个8×8经P译码的分区、一个8×8经B译码的分区、一个8×8经
I译码的分区,和具有各种译码模式的众多较小子分区。图12的实例是出于概念性说明对
大宏块中的分区的混合模式译码的目的而提供,且不应必定被视为表示特定的大的64×64
宏块的实际译码结果。
的方法的方法可用于选择用于切片的宏块的最佳大小。同样地,虽然图13的方法是相对于
视频编码器50而进行描述,但应理解,任何编码器可利用图13的实例方法来确定用于编码
视频序列的帧的宏块的最佳(例如,最低成本)大小。一般来说,图13的方法包含将编码
遍次执行三次,针对16×16宏块、32×32宏块和64×64宏块中的每一者各执行一次,且视
频编码器可计算每一遍次的速率-失真量度以确定哪个宏块大小提供最好的速率-失真。
后,视频编码器50可基于16×16像素宏块的使用而分别计算位速率和失真以作为R16和
D16(192)。视频编码器50可接着使用拉格朗日乘数C16=D16+λ*R16来计算呈使用16×16
像素宏块的成本C16的形式的速率-失真量度(194)。可(例如)根据H.264标准来选择
用于16×16像素宏块的译码模式和分区大小。
后,视频编码器50可基于32×32像素宏块的使用而分别计算位速率和失真以作为R32和
D32(198)。视频编码器50可接着使用拉格朗日乘数C32=D32+λ*R32来计算呈使用32×32
像素宏块的成本C32的形式的速率-失真量度(200)。可(例如)使用如参考图11和图12
所描述的速率和失真评估技术来选择用于32×32像素宏块的译码模式和分区大小。
后,视频编码器50可基于64×64像素宏块的使用而分别计算位速率和失真以作为R64和
D64(204)。视频编码器50可接着使用拉格朗日乘数C64=D64+λ*R64来计算呈使用64×64
像素宏块的成本C64的形式的速率-失真量度(206)。可(例如)使用如参考图11和图12
所描述的速率和失真评估技术来选择用于64×64像素宏块的译码模式和分区大小。
帧F16以用于存储或发射到解码器。当C32为最低时,视频编码器50可转发用32×32宏块
编码的F32。当C64为最低时,视频编码器50可转发用64×64宏块编码的F64。
码遍次结束。而且,类似方法可用于编码包含多个宏块的其它经译码单元(例如,具有不同大小的宏块的切片)。举例来说,视频编码器50可应用类似于图13的方法的方法来选择用
于编码帧的切片(而不是完整帧)的最佳宏块大小。
数字视频编码器接收数字视频流的经译码单元;计算对应于使用各自包含16×16像素的
第一多个块来编码所述经译码单元的速率-失真的第一速率-失真量度;计算对应于使
用各自包含大于16×16像素的第二多个块来编码所述经译码单元的速率-失真的第二速
率-失真量度;以及确定对于所述经译码单元来说所述第一速率-失真量度和所述第二速
率-失真量度中的哪一者最低。所述方法可进一步包括:当确定第一速率-失真量度为最
低时,使用第一多个块来编码所述经译码单元,且当确定第二速率-失真量度为最低时,使用第二多个块来编码所述经译码单元。
大于标准的宏块来编码和/或解码数字视频数据。在图14的实例中,无线通信装置230包
括摄像机232、视频编码器-解码器(CODEC)234、调制器/解调器(调制解调器)236、收发
器238、处理器240、用户接口242、存储器244、数据存储装置246、天线248,和总线250。
实例,摄像机232可包括执行视频CODEC 234的功能(例如,编码和/或解码视频数据)的
视频CODEC。
的、所记录的数字视频数据发送到视频CODEC 234以用于编码,并接着发送到数据存储装
置246以用于数据存储。处理器240可经由总线250将关于记录视频的模式、记录视频的
帧速率、结束记录或改变帧速率模式的时间、将视频数据发送到视频CODEC 234的时间或
指示其它模式或参数的信号的信号发送到摄像机232。
将视频数据发送到用户接口242以显示在取景器上。
装置246接收的先前编码的数据以用于回放。视频CODEC 234可使用大于由常规视频编码
标准规定的宏块的大小的宏块来编码和/或解码数字视频数据。举例来说,视频CODEC234
可使用包含64×64像素或32×32像素的大宏块来编码和/或解码数字视频数据。可用根
据例如H.264标准的扩展等视频标准的宏块类型语法元素来识别大宏块。
码模式(例如,空间(I)或时间(P或B))。分区大小和译码模式的选择可基于所述分区大
小和译码模式的速率-失真结果。CODEC 234还可利用分层的经译码块模式(CBP)值来识
别大宏块内的具有非零系数的经译码宏块和分区。另外,在一些实例中,CODEC234可将大
宏块与小宏块的速率-失真量度进行比较以选择针对帧、切片或其它译码单元产生较有利
结果的宏块大小。
例如MPEG-2、MPEG-3、MPEG-4、H.263、H.264或经受本发明中所描述的扩展或修改的其它视频编码标准等编码标准来编码所述视频序列。举例来说,还可使用大于标准的宏块来编码
所述视频序列,如本发明中所描述。无线通信装置230还可接收经编码的视频片段且将所
接收的视频序列存储于数据存储装置246中。
段),视频CODEC 234可解码视频序列并将视频片段的经解码帧发送到用户接口242。当视
频序列包括音频数据时,视频CODEC 234可解码音频,或者无线通信装置230可进一步包括
用以解码音频的音频编解码器(未展示)。以此方式,视频CODEC 234可执行编码器的功能
与解码器的功能两者。
据之外)。可将所述指令从例如数据存储装置246等数据存储装置加载到存储器244中。
举例来说,所述指令可致使处理器240执行相对于视频CODEC 234所描述的功能。
值262、四个CBP32值264、266、268、270,和四个CBP16值272、274、276、278。CBP 260的每一块可包括一个或一个以上位。在一个实例中,当CBP64值262为具有值“1”(其指示大
宏块中存在至少一个非零系数)的位时,CBP 260包括用于大的64×64宏块的四个32×32
分区的四个CBP32值264、266、268、270,如图15的实例中所展示。
32×32分区的CBP32值为具有值“1”的位时,用于所述32×32分区的CBP32值具有表示
CBP16值的四个分支,(例如)如相对于CBP32值266所展示。在一个实例中,当CBP32值
为具有值“0”的位时,CBP32不具有任何分支。在图15的实例中,CBP260可具有五位前缀
“10100”,其指示:CBP64值为1,且32×32分区中的一者具有为“1”的CBP32值,其中后续位对应于四个CBP16值272、274、276、278(对应于具有为“1”的CBP32值的32×32分区的
16×16分区)。虽然在图15的实例中仅将单一CBP32值展示为具有值“1”,但在其它实例
中,两个32×32分区、三个32×32分区或全部四个32×32分区可具有为“1”的CBP32值,
在所述情况下,将需要具有对应的CBP16值的四个16×16分区的多个例子。
据如ITU H.264中所界定的CBP值或如ITU H.264中的CodedBlockPatternChroma、如关于
图8和图9所论述来计算CBP16值272、274、276、278。在图15的实例中,假定CBP16 278
具有值“1”,且其它CBP 16值272、274、276具有值“0”,则用于64×64宏块的九位CBP值将为“101000001”,其中每一位对应于CBP/分区阶层中的相应层级处的分区中的一者。
一分支的每一节点对应于为“1”的相应CBP值。在图15和图16的实例中,CBP64 282与
CBP32 286均具有值“1”,且产生具有可能为“1”的CBP值的进一步分区,即,在该处,下一个分区层级处的至少一个分区包括至少一个非零变换系数值。
单元的多个视频块之外以及结合编码经译码单元的多个视频块,例如视频编码器20(图1)
的视频编码器可执行图17的步骤300到310。经译码单元可包含视频帧、切片,或图片群组
(还称作一“序列”)。除解码所述经译码单元的所述多个视频块之外以及结合解码所述经
译码单元的所述多个视频块,例如视频解码器30(图1)的视频解码器可执行图17的步骤
312到316。
像素(例如,32×32像素、64×64像素等)。然而,所述块不需要各自包括相同数目个像素。
一般来说,视频编码器20可使用相同的基于块的语法来编码所述块中的每一者。举例来
说,视频编码器20可使用分层的经译码块模式来编码所述块中的每一者,如上文所描述。
宏块的大小。因此,视频编码器20可确定所述集合中的最大大小的块(302)。在图17的实
例中,视频编码器20还可确定所述集合中的最小大小的块(304)。如上文所论述,一块的分层的经译码块模式具有对应于所述块的分区是否具有非零的、经量化系数的长度。在一些
实例中,视频编码器20可将最小大小值包括于用于经译码单元的语法信息中。在一些实例
中,最小大小值指示所述经译码单元中的最小分区大小。以此方式,最小分区大小(例如,经译码单元中的最小块)可用于确定分层的经译码块模式的最大长度。
文针对MB64_type所界定的语法的语法。作为另一实例,假定最大块包含32×32像素块,
则视频编码器20可使用例如上文针对MB32_type所界定的语法的语法。
译码单元(包括用于经译码单元和经译码单元的块中的每一者的语法信息)发射到视频解
码器30。
择基于块的语法解码器(314)。举例来说,假定经译码单元语法信息指示经译码单元中的最大块包含64×64像素,则视频解码器30可选择用于MB64_type块的语法解码器。视频解码
器30可接着将选定的语法解码器应用到经译码单元的块以解码经译码单元的块(316)。视
频解码器30还可基于最小的经编码分区的经译码单元语法信息中的指示而确定块何时不
具有进一步单独编码的子分区。举例来说,如果最大块为64×64像素且最小块也为64×64
像素,则可确定不将64×64块划分成小于64×64大小的子分区。作为另一实例,如果最大
块为64×64像素且最小块为32×32像素,则可确定将64×64块划分成不小于32×32的
子分区。
息中指示此信息,且视频解码器30可应用基于标准H.264块的语法解码器。然而,当经译
码单元中的最大块包含大于16×16像素时,视频编码器20可在经译码单元语法信息中指
示此信息,且视频解码器30可根据本发明的技术而选择性地应用基于块的语法解码器以
解码经译码单元的块。
体(包括促进将计算机程序从一处传递到另一处的任何媒体)两者。存储媒体可为可由计
算机存取的任何可用媒体。以实例而非限制的方式,所述计算机可读媒体可包含RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置,或可用于载运或存储呈指令或数据结构的形式的所要程序代码并可由计算机存取的任何其它媒体。而且,
将任何连接适当地称为计算机可读媒体。举例来说,如果使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)或例如红外线、无线电和微波等无线技术从网站、服务器或其它远程源
发射软件,则同轴电缆、光纤电缆、双绞线、DSL或例如红外线、无线电和微波等无线技术包括在媒体的定义中。如本文中所使用的磁盘和光盘包括压缩光盘(CD)、激光光盘、光学光
盘、数字多功能光盘(DVD)、软盘和蓝光光盘,其中磁盘通常以磁方式再现数据,而光盘用激光以光学方式再现数据。上述各者的组合也应包括在计算机可读媒体的范围内。