用大宏块进行视频译码转让专利

申请号 : CN200980139143.8

文献号 : CN102172023B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陈培松叶琰马尔塔·卡切维奇

申请人 : 高通股份有限公司

摘要 :

本发明描述用于使用大于由常规视频编码和解码标准规定的宏块的宏块来编码和解码数字视频数据的技术。举例来说,所述技术包括使用包含大于16×16像素(例如64×64像素)的宏块来编码和解码视频流。可将每一宏块分割成两个或两个以上分区,且可使用不同模式来编码所述分区中的两者或两者以上。在一个实例中,一种设备包括视频编码器,所述视频编码器经配置以:接收具有大于16×16像素的大小的视频块;将所述块分割成若干分区;使用第一编码模式来编码所述分区中的一者;使用不同于所述第一编码模式的第二编码模式来编码所述分区中的另一者;以及产生指示所述块的所述大小并识别所述分区和用于编码所述分区的所述编码模式的块类型语法信息。

权利要求 :

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像素的大小。

说明书 :

用大宏块进行视频译码

[0001] 本申请案主张2008年10月3日申请的第61/102,787号美国临时申请案、2009年1月13日申请的第61/144,357号美国临时申请案和2009年4月3日申请的第61/166,631
号美国临时申请案的权益,所述申请案中的每一者以全文引用的方式并入本文中。
[0002] 本申请案涉及均与本申请案同一天申请、均具有相同标题“使用大宏块的视频译码(VIDEO CODING WITH LARGE MACROBLOCKS)”的美国专利申请案(暂时通过代理人案号
090033U1、090033U3、090033U4来引用),所述申请案均转让给本受让人且其全文在此以引用的方式明确地并入本文中以用于所有目的。

技术领域

[0003] 本发明涉及数字视频译码,且更特定来说,涉及基于块的视频译码。

背景技术

[0004] 可将数字视频能力并入较广范围的装置中,包括数字电视、数字直播系统、无线广播系统、个人数字助理(PDA)、膝上型或桌上型计算机、数码相机、数字记录装置、视频游戏装置、视频游戏控制台、蜂窝式或卫星无线电电话等。数字视频装置实施视频压缩技术,例如由MPEG-2、MPEG-4、ITU-T H.263或ITU-T H.264/MPEG-4第10部分高级视频译码(AVC)界定的标准和所述标准的扩展部分中所描述的那些视频压缩技术,以更有效地发射和接收
数字视频信息。
[0005] 视频压缩技术执行空间预测和/或时间预测以减少或移除视频序列中所固有的冗余。对于基于块的视频译码,可将一视频帧或切片分割成若干宏块。可进一步分割每一
宏块。使用关于相邻宏块的空间预测编码经帧内译码的(I)帧或切片中的宏块。经帧间译
码的(P或B)帧或切片中的宏块可使用关于同一帧或切片中的相邻宏块的空间预测或关于
其它参考帧的时间预测。

发明内容

[0006] 一般来说,本发明描述用于使用大宏块编码数字视频数据的技术。大宏块大于一般由现有视频编码标准规定的宏块。大多数视频编码标准规定使用16×16像素阵列的形
式的宏块。根据本发明,编码器和解码器可利用大小大于16×16像素的大宏块。作为实例,大宏块可具有32×32、64×64或更大的像素阵列。
[0007] 视频编码依赖于空间和/或时间冗余来支持视频数据的压缩。以较高空间分辨率和/或较高帧速率产生的视频帧可支持较多冗余。如本发明中所描述,使用大宏块可准许
视频译码技术利用随着空间分辨率和/或帧速率增加而产生的较大冗余度。根据本发明,
视频译码技术可利用多种特征来支持对大宏块的译码。
[0008] 如本发明中所描述,大宏块译码技术可将大宏块分割成若干分区,且针对选定分区使用不同分区大小和不同译码模式(例如,不同的空间(I)模式或时间(P或B)模式)。
作为另一实例,一种译码技术可利用分层经译码块模式(coded block pattern,CBP)值来
有效地识别大宏块内的具有非零系数的经译码的宏块和分区。作为另一实例,一种译码技
术可比较通过使用大宏块与小的宏块进行译码而产生的速率-失真量度以选择产生更有
利的结果的宏块大小。
[0009] 在一个实例中,本发明提供一种方法,其包含:用视频编码器编码具有大于16×16像素的大小的视频块;产生指示所述块的所述大小的块类型语法信息;以及产生用
于所述经编码块的经译码块模式值,其中所述经译码块模式值指示所述经编码块是否包括
至少一个非零系数。
[0010] 在另一实例中,本发明提供一种设备,其包含视频编码器,所述视频编码器经配置以:编码具有大于16×16像素的大小的视频块;产生指示所述块的所述大小的块类型语法信息;以及产生用于所述经编码块的经译码块模式值,其中所述经译码块模式值指示所述
经编码块是否包括至少一个非零系数。
[0011] 在另一实例中,本发明提供一种计算机可读媒体,其经编码有用于致使视频编码设备执行以下操作的指令:用视频编码器编码具有大于16×16像素的大小的视频块;产
生指示所述块的所述大小的块类型语法信息;以及产生用于所述经编码块的经译码块模式
值,其中所述经译码块模式值指示所述经编码块是否包括至少一个非零系数。
[0012] 在一额外实例中,本发明提供一种方法,其包含:用视频解码器接收具有大于16×16像素的大小的经编码视频块;接收指示所述经编码块的所述大小的块类型语法信
息;接收用于所述经编码块的经译码块模式值,其中所述经译码块模式值指示所述经编码
块是否包括至少一个非零系数;以及基于所述块类型语法信息和用于所述经编码块的所述
经译码块模式值来解码所述经编码块。
[0013] 在另一实例中,本发明提供一种设备,其包含视频解码器,所述视频解码器经配置以:接收具有大于16×16像素的大小的经编码视频块;接收指示所述经编码块的所述大小的块类型语法信息;接收用于所述经编码块的经译码块模式值,其中所述经译码块模式值
指示所述经编码块是否包括至少一个非零系数;以及基于所述块类型语法信息和用于所述
经编码块的所述经译码块模式值来解码所述经编码块。
[0014] 在另一实例中,本发明提供一种计算机可读媒体,其包含用以致使视频解码器执行以下操作的指令:接收具有大于16×16像素的大小的经编码视频块;接收指示所述经编
码块的所述大小的块类型语法信息;接收用于所述经编码块的经译码块模式值,其中所述
经译码块模式值指示所述经编码块是否包括至少一个非零系数;以及基于所述块类型语法
信息和用于所述经编码块的所述经译码块模式值来解码所述经编码块。
[0015] 在另一实例中,本发明提供一种方法,其包含:用视频编码器接收具有大于16×16像素的大小的视频块;将所述块分割成若干分区;使用第一编码模式编码所述分区
中的一者;使用不同于所述第一编码模式的第二编码模式编码所述分区中的另一者;以及
产生指示所述块的所述大小并识别所述分区和用于编码所述分区的所述编码模式的块类
型语法信息。
[0016] 在一额外实例中,本发明提供一种设备,其包含视频编码器,所述视频编码器经配置以:接收具有大于16×16像素的大小的视频块;将所述块分割成若干分区;使用第一编码模式编码所述分区中的一者;使用不同于所述第一编码模式的第二编码模式编码所述分
区中的另一者;产生指示所述块的所述大小并识别所述分区和用于编码所述分区的所述编
码模式的块类型语法信息。
[0017] 在另一实例中,本发明提供一种计算机可读媒体,其经编码有用以致使视频编码器执行以下操作的指令:接收具有大于16×16像素的大小的视频块;将所述块分割成若干
分区;使用第一编码模式编码所述分区中的一者;使用不同于所述第一编码模式的第二编
码模式编码所述分区中的另一者;以及产生指示所述块的所述大小并识别所述分区和用于
编码所述分区的所述编码模式的块类型语法信息。
[0018] 在另一实例中,本发明提供一种方法,其包含:用视频解码器接收具有大于16×16像素的大小的视频块,其中将所述块分割成若干分区,使用第一编码模式编码所述
分区中的一者且使用不同于所述第一编码模式的第二编码模式编码所述分区中的另一者;
接收指示所述块的所述大小并识别所述分区和用于编码所述分区的所述编码模式的块类
型语法信息;以及基于所述块类型语法信息来解码所述视频块。
[0019] 在另一实例中,本发明提供一种设备,其包含视频解码器,所述视频解码器经配置以:接收具有大于16×16像素的大小的视频块,其中所述块经分割成若干分区,所述分区中的一者是使用第一编码模式而被编码且所述分区中的另一者是使用一不同于所述第一
编码模式的第二编码模式而被编码;接收指示所述块的所述大小并识别所述分区和用于编
码所述分区的所述编码模式的块类型语法信息;以及基于所述块类型语法信息来解码所述
视频块。
[0020] 在一额外实例中,本发明提供一种计算机可读媒体,其经编码有用以致使视频解码器执行以下操作的指令:用视频解码器接收具有大于16×16像素的大小的视频块,其中
所述块经分割成若干分区,所述分区中的一者是使用第一编码模式而被编码且所述分区中
的另一者是使用不同于所述第一编码模式的第二编码模式而被编码;接收指示所述块的所
述大小并识别所述分区和用于编码所述分区的所述编码模式的块类型语法信息;以及基于
所述块类型语法信息来解码所述视频块。
[0021] 在另一实例中,本发明提供一种方法,其包含:用数字视频编码器接收视频译码单元;确定使用具有16×16像素的大小的第一视频块编码所述视频译码单元的第一速率-失真量度;确定使用具有大于16×16像素的大小的第二视频块编码所述视频译码单元的第
二速率-失真量度,在所述第一速率-失真量度小于第二速率-失真量度时使用所述第一
视频块来编码所述视频译码单元;以及在所述第二速率-失真量度小于所述第一速率-失
真量度时使用所述第二视频块来编码所述视频译码单元。
[0022] 在一额外实例中,本发明提供一种设备,其包含视频编码器,所述视频编码器经配置以:接收视频译码单元;确定使用具有16×16像素的大小的第一视频块编码所述视频译码单元的第一速率-失真量度;确定使用具有大于16×16像素的大小的第二视频块编码所
述视频译码单元的第二速率-失真量度;在所述第一速率-失真量度小于第二速率-失真
量度时使用所述第一视频块来编码所述视频译码单元;在所述第二速率-失真量度小于所
述第一速率-失真量度时使用所述第二视频块来编码所述视频译码单元。
[0023] 在另一实例中,本发明提供一种计算机可读媒体,其经编码有用以致使视频编码器执行以下操作的指令:接收视频译码单元;确定使用具有16×16像素的大小的第一视频
块编码所述视频译码单元的第一速率-失真量度;确定使用具有大于16×16像素的大小的
第二视频块编码所述视频译码单元的第二速率-失真量度;在所述第一速率-失真量度小
于第二速率-失真量度时使用所述第一视频块来编码所述视频译码单元;以及在所述第二
速率-失真量度小于所述第一速率-失真量度时使用所述第二视频块来编码所述视频译码
单元。
[0024] 在另一实例中,本发明提供一种方法,其包含:用视频编码器编码包含多个视频块的经译码单元,其中所述多个视频块中的至少一者包含大于16×16像素的大小;以及产生包括最大大小值的用于所述经译码单元的语法信息,其中所述最大大小值指示所述经译码
单元中的所述多个视频块中的最大者的大小。
[0025] 在另一实例中,本发明提供一种设备,其包含视频编码器,所述视频编码器经配置以:编码包含多个视频块的经译码单元,其中所述多个视频块中的至少一者包含大于
16×16像素的大小;以及产生包括最大大小值的用于所述经译码单元的语法信息,其中所
述最大大小值指示所述经译码单元中的所述多个视频块中的最大者的大小。
[0026] 在另一实例中,本发明提供一种设备,其包含包含以下装置的设备:用于编码包含多个视频块的经译码单元的装置,其中所述多个视频块中的至少一者包含大于16×16像素的大小;以及用于产生包括最大大小值的用于所述经译码单元的语法信息的装置,其中
所述最大大小值指示所述经译码单元中的所述多个视频块中的最大者的大小。
[0027] 在另一实例中,本发明提供一种计算机可读存储媒体,其经编码有用以致使可编程处理器执行以下操作的指令:编码包含多个视频块的经译码单元,其中所述多个视频块
中的至少一者包含大于16×16像素的大小;以及产生包括最大大小值的用于所述经译码
单元的语法信息,其中所述最大大小值指示所述经译码单元中的所述多个视频块中的最大
者的大小。
[0028] 在另一实例中,本发明提供一种方法,其包含:用视频解码器接收包含多个视频块的经译码单元,其中所述多个视频块中的至少一者包含大于16×16像素的大小;接收包括最大大小值的用于所述经译码单元的语法信息,其中所述最大大小值指示所述经译码单元
中的所述多个视频块中的最大者的大小;根据所述最大大小值选择块类型语法解码器;以
及使用所述选定块类型语法解码器解码所述经译码单元中的所述多个视频块中的每一者。
[0029] 在另一实例中,本发明提供一种设备,其包含视频解码器,所述视频解码器经配置以:接收包含多个视频块的经译码单元,其中所述多个视频块中的至少一者包含大于
16×16像素的大小;接收包括最大大小值的用于所述经译码单元的语法信息,其中所述最
大大小值指示所述经译码单元中的所述多个视频块中的最大者的大小;根据所述最大大小
值选择块类型语法解码器;以及使用所述选定块类型语法解码器解码所述经译码单元中的
所述多个视频块中的每一者。
[0030] 在另一实例中,本发明提供:用于接收包含多个视频块的经译码单元的装置,其中所述多个视频块中的至少一者包含大于16×16像素的大小;用于接收包括最大大小值的用于所述经译码单元的语法信息的装置,其中所述最大大小值指示所述经译码单元中的所
述多个视频块中的最大者的大小;用于根据所述最大大小值选择块类型语法解码器的装
置;以及用于使用所述选定块类型语法解码器解码所述经译码单元中的所述多个视频块中
的每一者的装置。
[0031] 在另一实例中,本发明提供一种计算机可读存储媒体,其经编码有用于致使可编程处理器执行以下操作的指令:接收包含多个视频块的经译码单元,其中所述多个视频块
中的至少一者包含大于16×16像素的大小;接收包括最大大小值的用于所述经译码单元
的语法信息,其中所述最大大小值指示所述经译码单元中的所述多个视频块中的最大者的
大小;根据所述最大大小值选择块类型语法解码器;以及使用所述选定块类型语法解码器
解码所述经译码单元中的所述多个视频块中的每一者。
[0032] 在以下附图和描述中阐述一个或一个以上实例的细节。将从所述描述和图式并从权利要求书明白其它特征、目标和优点。

附图说明

[0033] 图1为说明使用大宏块编码和解码数字视频数据的实例视频编码和解码系统的方框图。
[0034] 图2为说明实施用于译码大宏块的技术的视频编码器的一实例的方框图。
[0035] 图3为说明实施用于译码大宏块的技术的视频解码器的一实例的方框图。
[0036] 图4A为说明在大宏块的各种层级中的分割的概念图。
[0037] 图4B为说明将不同译码模式指派到大宏块的不同分区的概念图。
[0038] 图5为说明大宏块的各种层级的分层视图的概念图。
[0039] 图6为说明用于设定64×64像素的大宏块的经译码块模式(CBP)值的实例方法的流程图。
[0040] 图7为说明用于设定64×64像素的大宏块的32×32像素分区的CBP值的实例方法的流程图。
[0041] 图8为说明用于设定64×64像素的大宏块的32×32像素分区的16×16像素分区的CBP值的实例方法的流程图。
[0042] 图9为说明用于确定二位luma16×8_CBP值的实例方法的流程图。
[0043] 图10为说明64×64像素的大宏块的一实例布置的方框图。
[0044] 图11为说明用于计算N×N像素的大视频块的最佳分割和编码方法的实例方法的流程图。
[0045] 图12为说明具有各种分区的实例64×64像素宏块和用于每一分区的选定编码方法的方框图。
[0046] 图13为说明用于确定用于编码视频序列的帧的宏块的最佳大小的实例方法的流程图。
[0047] 图14为说明实例无线通信装置的方框图,所述无线通信装置包括使用大宏块编码数字视频数据的视频编码器/解码器(CODEC)。
[0048] 图15为说明大宏块的分层CBP表示的实例阵列表示的方框图。
[0049] 图16为说明对应于图15的分层CBP表示的实例树结构的方框图。
[0050] 图17为说明用于使用经译码单元的语法信息来指示和选择用于所述经译码单元的视频块的基于块的语法编码器和解码器的实例方法的流程图。

具体实施方式

[0051] 本发明描述用于使用大宏块编码和解码数字视频数据的技术。大宏块大于一般由现有视频编码标准规定的宏块。大多数视频编码标准规定使用16×16像素阵列的形式的
宏块。根据本发明,编码器和/或解码器可利用大小大于16×16像素的大宏块。作为实例,
大宏块可具有32×32、64×64或可能更大的像素阵列。
[0052] 一般来说,如本文中所使用的术语“宏块”可指代包含表达为N×N像素的经界定大小的像素阵列的数据结构,其中N为正整数值。宏块可界定:四个亮度块,每一亮度块包含(N/2)×(N/2)像素的阵列;两个色度块,每一色度块包含N×N像素的阵列;以及标头,
其包含宏块类型信息和经译码块模式(CBP)信息,如下文更详细地论述。
[0053] 常规视频译码标准通常规定经界定的宏块大小为16×16像素阵列。根据本发明中所描述的各种技术,宏块可包含N×N像素阵列,其中N可大于16。同样地,常规视频译
码标准规定经帧间编码的宏块通常经指派有单一运动向量。根据本发明中所描述的各种技
术,多个运动向量可经指派有用于N×N宏块的经帧间编码的分区,如下文更详细地描述。
对“大宏块”或类似短语的引用一般指代具有大于16×16的像素阵列的宏块。
[0054] 在一些情况下,大宏块可支持译码效率的改进和/或数据发射开销的减少,同时维持或可能改进图像质量。举例来说,使用大宏块可准许视频编码器和/或解码器利用以
增加的空间分辨率(例如,每帧1280×720或1920×1080像素)和/或增加的帧速率(例
如,每秒30帧或60帧)产生视频数据所提供的增加的冗余。
[0055] 作为一说明,具有每帧1280×720像素的空间分辨率和每秒60帧的帧速率的数字视频序列在空间上比具有每帧176×144像素的空间分辨率和每秒15帧的帧速率的数字视
频序列大36倍,且在时间上比具有每帧176×144像素的空间分辨率和每秒15帧的帧速率
的数字视频序列快4倍。通过增加的宏块大小,视频编码器和/或解码器可更好地利用增
加的空间和/或时间冗余来支持视频数据的压缩。
[0056] 而且,通过使用较大宏块,针对给定帧或切片,可编码较小数目个块,从而减少需要发射的开销信息的量。换句话说,较大宏块可准许针对每一帧或切片译码的宏块的总数目的减少。如果(例如)帧的空间分辨率增加4倍,则对于所述帧中的像素,将需要4倍的
16×16宏块。在此实例中,在64×64宏块的情况下,减少了处置增加的空间分辨率所需的
宏块的数目。在每一帧或切片的减少数目个宏块的情况下,例如,可减少例如语法信息、运动向量数据等的译码信息的累积量。
[0057] 在本发明中,宏块的大小一般指代宏块中所含有的像素的数目,例如,64×64、32×32、16×16等。因此,大宏块(例如,64×64或32×32)可能在其含有比16×16宏块
的像素数目大的数目个像素的意义上是大的。然而,由大宏块的垂直和水平尺寸界定的空
间区域(即,作为由视频帧的垂直和水平尺寸界定的区域的部分)可大于或可不大于常规
16×16宏块的区域。在一些实例中,大宏块的区域可与常规的16×16宏块相同或类似。然
而,大宏块具有以宏块内的像素的较高数目和较高空间密度为特征的较高空间分辨率。
[0058] 可至少部分基于帧中的像素的数目(即,帧中的空间分辨率)来配置宏块的大小。如果帧具有较高数目个像素,则可将大宏块配置为具有较高数目个像素。作为一说明,视
频编码器可经配置以针对以每秒30帧显示的1280×720像素帧而利用32×32像素宏块。
作为另一说明,视频编码器可经配置以针对以每秒60帧显示的1280×720像素帧而利用
64×64像素宏块。
[0059] 由编码器编码的每一宏块可能需要描述宏块的一个或一个以上特性的数据。所述数据可指示(例如)用于表示宏块的大小、分割宏块的方式,和应用于宏块和/或其分区的
译码模式(空间或时间)的宏块类型数据。另外,所述数据可包括运动向量差异(mvd)数
据以及表示宏块和/或其分区的运动向量信息的其它语法元素。而且,所述数据可包括经
译码块模式(CBP)值以及表示预测后的残余信息的其它语法元素。宏块类型数据可提供于
大宏块的单一宏块标头中。
[0060] 如上文所提及,通过利用大宏块,编码器可减少每一帧或切片的宏块的数目,且借此减少针对每一帧或切片需要发射的净开销的量。而且,通过利用大宏块,针对特定帧或切片,宏块的总数目可减小,此可减少向用户显示的视频中的块状假影(blockyartifact)。
[0061] 本发明中所描述的视频编码技术可利用一个或一个以上特征来支持对大宏块的译码。举例来说,可将大宏块分割成若干较小分区。可将不同译码模式(例如,不同的空间(I)或时间(P或B)译码模式)应用于大宏块内的选定分区。而且,可利用分层经译码块
模式(CBP)值来有效地识别具有表示残余数据的非零变换系数的经译码的宏块和分区。另
外,可比较使用大宏块大小与小宏块大小进行译码的速率-失真量度以选择产生有利结果
的宏块大小。此外,包含变化大小的宏块的经译码单元(例如,帧、切片、序列,或图片群组)可包括指示所述经译码单元中的最大宏块的大小的语法元素。如下文更详细地描述,大宏
块包含不同于标准的16×16像素块的块层级语法。因此,通过指示经译码单元中的最大宏
块的大小,编码器可向解码器发信号通知将应用于所述经译码单元的宏块的块层级语法解
码器。
[0062] 针对大宏块中的不同分区使用不同译码模式可被称作大宏块的混合模式译码。代替均匀地译码大宏块以使得所有分区具有相同的帧内或帧间译码模式,可译码大宏块
以使得一些分区具有不同译码模式,例如不同的帧内译码模式(例如,I_16×16、I_8×8、
I_4×4)或帧内和帧间译码模式。
[0063] 如果将大宏块划分成两个或两个以上分区,则(例如)可用第一模式译码至少一个分区且可用不同于所述第一模式的第二模式译码另一分区。在一些情况下,第一模式可
为第一I模式且第二模式可为不同于所述第一I模式的第二I模式。在其它情况下,第一
模式可为I模式且第二模式可为P或B模式。因此,在一些实例中,大宏块可包括一个或一
个以上在时间上(P或B)译码的分区和一个或一个以上在空间上(I)译码的分区,或一个
或一个以上具有不同I模式的在空间上译码的分区。
[0064] 一个或一个以上分层经译码块模式(CBP)值可用于有效地描述大宏块中的任何分区是否具有至少一个非零变换系数,且如果有,则描述哪些分区具有至少一个非零变换
系数。变换系数编码大宏块的残余数据。大宏块层级CBP位指示大宏块中的任何分区是否
包括非零的、经量化的系数。如果大宏块中的任何分区不包括非零、经量化的系数,则不需要考虑所述分区中的任一者是否具有非零系数,因为已知整个大宏块不具有非零系数。在
此情况下,可使用预测宏块来解码不具有残余数据的宏块。
[0065] 或者,如果宏块层级CBP值指示大宏块中的至少一个分区具有非零系数,则可分析分区层级CBP值以识别所述分区中的哪一者包括至少一个非零系数。解码器接着可检索
具有至少一个非零系数的分区的适当残余数据,且使用所述残余数据和预测块数据解码所
述分区。在一些情况下,一个或一个以上分区可具有非零系数,且因此包括具有适当指示的分区层级CBP值。大宏块与所述分区中的至少一些分区均可大于16×16像素。
[0066] 为了选择产生有利速率-失真量度的宏块大小,可针对大宏块(例如,32×32或64×64)与小宏块(例如,16×16)两者分析速率-失真量度。举例来说,编码器可比较经
译码单元(例如,帧或切片)的16×16宏块、32×32宏块与64×64宏块之间的速率-失
真量度。编码器可接着选择产生最好的速率-失真的宏块大小,且使用所述选定宏块大小
(即,具有最好的速率-失真的宏块大小)编码所述经译码单元。
[0067] 所述选择可基于在三个或三个以上遍次(例如,使用16×16像素宏块的第一遍次、使用32×32像素宏块的第二遍次,和使用64×64像素宏块的第三遍次)中编码帧或切
片,和比较每一遍次的速率-失真量度。以此方式,编码器可通过改变宏块大小并选择产生给定译码单元(例如,切片或帧)的最好的或最佳速率-失真的宏块大小来优化速率-失
真。编码器可进一步将用于经译码单元的识别在经译码单元中所使用的宏块的大小的语
法信息(例如)作为帧标头或切片标头的一部分进行发射。如下文更详细地论述,用于经
译码单元的语法信息可包含最大大小指示符,其指示经译码单元中所使用的宏块的最大大
小。以此方式,编码器可向解码器通知预期将哪些语法用于经译码单元的宏块。当宏块的
最大大小包含16×16像素时,解码器可预期标准H.264语法且根据H.264-指定语法来解
析宏块。然而,当宏块的最大大小大于16×16(例如,包含64×64像素)时,解码器可预期
与较大宏块的处理有关的经修改的语法元素和/或额外语法元素(如本发明描述),且根据
所述经修改的语法或额外语法来解析宏块。
[0068] 对于一些视频帧或切片,在给定相对低的失真的情况下,大宏块可呈现实质的位速率节省且借此产生最好的速率-失真结果。然而,对于其它视频帧或切片,较小宏块可呈现较少失真,从而在速率-失真成本分析中重要性超过位速率。因此,在不同情况下,(例
如)视视频内容和复杂性而定,64×64、32×32或16×16可适合于不同视频帧或切片。
[0069] 图1为说明实例视频编码和解码系统10的方框图,视频编码和解码系统10可利用用于使用大宏块(即,含有比16×16宏块多的像素的宏块)编码/解码数字视频数据
的技术。如图1中所展示,系统10包括经由通信信道16将经编码的视频发射到目的装置
14的源装置12。源装置12和目的装置14可包含较广范围的装置中的任一者。在一些情
况下,源装置12和目的装置14可包含无线通信装置,例如无线手持机、所谓的蜂窝式或卫
星无线电电话,或可在通信信道16上(在此情况下,通信信道16为无线的)传送视频信息
的任何无线装置。然而,本发明的涉及包含比由常规视频编码标准规定的宏块多的像素的
大宏块的使用的技术未必限于无线应用或设定。举例来说,这些技术可适用于空中电视广
播、有线电视发射、卫星电视发射、因特网视频发射、经编码到存储媒体上的经编码的数字视频,或其它情况。因此,通信信道16可包含适合于发射经编码的视频数据的无线媒体或
有线媒体的任何组合。
[0070] 在图1的实例中,源装置12可包括视频源18、视频编码器20、调制器/解调器(调制解调器)22和发射器24。目的装置14可包括接收器26、调制解调器28、视频解码器30,
和显示装置32。根据本发明,源装置12的视频编码器20可经配置以应用用于在视频编码
过程中使用具有大于由常规视频编码标准规定的宏块大小的大小的大宏块的技术中的一
者或一者以上。类似地,目的装置14的视频解码器30可经配置以应用用于在视频解码过程
中使用大于由常规视频编码标准规定的宏块大小的宏块大小的技术中的一者或一者以上。
[0071] 图1的所说明的系统10仅为一个实例。如本发明中所描述的用于使用大宏块的技术可由任何数字视频编码和/或解码装置来执行。源装置12和目的装置14仅为所述译
码装置(在所述译码装置中,源装置12产生用于发射到目的装置14的经译码的视频数据)
的实例。在一些实例中,装置12、14可以大体上对称的方式操作以使得装置12、14中的每
一者包括视频编码和解码组件。因此,系统10可支持视频装置12、14之间的单向或双向视
频发射,以(例如)用于视频串流、视频回放、视频广播或视频电话。
[0072] 源装置12的视频源18可包括视频俘获装置,例如摄像机、含有先前所俘获的视频的视频存档,和/或来自视频内容提供者的视频馈入(video feed)。作为另一替代方案,视频源18可产生基于计算机图形的数据作为源视频,或产生实况视频、经存档的视频与计算
机产生的视频的组合。在一些情况下,如果视频源18为摄像机,则源装置12与目的装置14
可形成所谓的相机电话或视频电话。然而,如上文所提及,一般来说,本发明中所描述的技术可适用于视频译码,且可适用于无线或有线应用。在每一情况下,可由视频编码器20来
编码经俘获的、经预先俘获的或计算机产生的视频。经编码的视频信息可接着由调制解调
器22根据通信标准来调制,且经由发射器24而发射到目的装置14。调制解调器22可包括
各种混频器、滤波器、放大器或经设计以用于信号调制的其它组件。发射器24可包括经设
计以用于发射数据的电路,包括放大器、滤波器,和一个或一个以上天线。
[0073] 目的装置14的接收器26在信道16上接收信息,且调制解调器28解调所述信息。同样,视频编码过程可实施本文中所描述的技术中的一者或一者以上以将大宏块(例如,
大于16×16)用于视频数据的帧间(即,时间)编码和/或帧内(即,空间)编码。由视频
解码器30执行的视频解码过程还可在解码过程期间使用所述技术。在信道16上传送的信
息可包括由视频编码器20界定的语法信息,所述语法信息还被视频解码器30使用,所述语
法信息包括描述大宏块的特性和/或处理的语法元素,如下文更详细地论述。可将语法信
息包括于帧标头、切片标头、序列标头(例如,相对于H.264,通过使用经译码的视频序列所符合的简档和层级)或宏块标头中的任一者或全部中。显示装置32向用户显示经解码的
视频数据,且可包含例如阴极射线管(CRT)、液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器或另一类型的显示装置的多种显示装置中的任一者。
[0074] 在图1的实例中,通信信道16可包含任何无线或有线通信媒体(例如,射频(RF)频谱或一个或一个以上物理传输线),或无线与有线媒体的任何组合。通信信道16可形成
基于包的网络(例如,局域网、广域网,或例如因特网等全球网络)的一部分。通信信道16
一般表示用于将视频数据从源装置12发射到目的装置14的任何合适的通信媒体或不同通
信媒体的集合,包括有线或无线媒体的任何合适组合。通信信道16可包括路由器、交换机、基站,或可用于促进从源装置12到目的装置14的通信的任何其它装备。
[0075] 视频编码器20和视频解码器30可根据例如ITU-T H.264标准(或者经描述为MPEG-4第10部分,高级视频译码(AVC))的视频压缩标准而操作。然而,本发明的技术不限
于任何特定译码标准。其它实例包括MPEG-2和ITU-T H.263。虽然图1中未展示,但在一
些方面中,视频编码器20和视频解码器30可各自与音频编码器和解码器集成,且可包括适
当的MUX-DEMUX单元或其它硬件和软件,以处置共同数据流或单独数据流中的音频与视频
两者的编码。如果可适用,则MUX-DEMUX单元可遵从ITU H.223多路复用器协议,或例如用
户数据报协议(UDP)等其它协议。
[0076] ITU-T H.264/MPEG-4(AVC)标准由ITU-T视频译码专家组(VCEG)与ISO/IEC动画专家组(MPEG)一起制定,作为被称为联合视频小组(JVT)的共同伙伴关系的产物。在一
些方面中,本发明中所描述的技术可适用于一般遵从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的扩展。
[0077] 视频编码器20和视频解码器30各自可经实施为例如一个或一个以上微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑、软件、硬件、固件或其任何组合的多种合适编码器电路中的任一者。视频编码器20和视频解码器
30中的每一者可包括于一个或一个以上编码器或解码器中,视频编码器20和视频解码器
30中的任一者可作为组合式编码器/解码器(CODEC)的一部分而集成于相应相机、计算机、
移动装置、订户装置、广播装置、机顶盒、服务器等中。
[0078] 视频序列通常包括一系列视频帧。视频编码器20对个别视频帧内的视频块操作以便编码视频数据。一视频块可对应于一宏块或一宏块的一分区。一视频块可进一步对应
于一分区的一分区。视频块可具有固定或不同的大小,且大小可根据指定译码标准或根据
本发明的技术而不同。每一视频帧可包括多个切片。每一切片可包括多个宏块,所述多个
宏块可布置成若干分区,所述分区还被称作子块。
[0079] 作为一实例,ITU-T H.264标准支持各种块大小(例如,针对亮度分量的16乘16、8乘8或4乘4,和针对色度分量的8×8)的帧内预测,以及各种块大小(例如,针对亮度分
量的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的正整数值。一块中的像素可布置成
若干行和若干列。
[0080] 小于16乘16的块大小可称作16乘16宏块的分区。同样地,对于N×N块,小于N×N的块大小可称作N×N块的分区。本发明的技术描述大于常规16×16像素宏块的宏块
(例如,32×32像素宏块、64×64像素宏块,或更大宏块)的帧内译码和帧间译码。视频块
可包含像素域中的像素数据的块,或(例如)在对表示经译码的视频块与预测视频块之间
的像素差异的残余视频块数据应用例如离散余弦变换(DCT)、整数变换、小波变换或概念上类似的变换等变换之后的在变换域中的变换系数的块。在一些情况下,视频块可包含变换
域中的经量化的变换系数的块。
[0081] 较小视频块可提供较好的分辨率,且可用于视频帧的包括高细节水平的位置。一般来说,可将宏块和有时称作子块的各种分区视为视频块。另外,可将切片视为多个视频
块,例如宏块和/或子块。每一切片可为视频帧的可独立解码的单元。或者,帧本身可为
可解码的单元,或可将帧的其它部分界定为可解码的单元。术语“经译码单元”或“译码单元”可指代视频帧的任何可独立解码的单元,例如完整帧、帧的切片、图片群组(GOP)(还称作序列),或根据可适用的译码技术界定的另一可独立解码的单元。
[0082] 在用于产生预测数据和残余数据的帧内预测或帧间预测译码之后,且在用于产生变换系数的任何变换(例如,H.264/AVC中所使用的4×4或8×8整数变换或离散余弦变
换DCT)之后,可执行对变换系数的量化。量化一般指代将变换系数量化以可能地减少用于
表示系数的数据量的过程。量化过程可减少与一些系数或全部系数相关联的位深度。举例
来说,在量化期间,可将n位值向下舍入到m位值,其中n大于m。
[0083] 在量化之后,可(例如)根据内容自适应可变长度译码(CAVLC)、上下文自适应二进制算术译码(CABAC)或另一熵译码方法来执行经量化数据的熵译码。经配置以用于熵译
码的处理单元或另一处理单元可执行其它处理功能,例如对经量化系数的零游程长度译码
和/或例如CBP值、宏块类型、译码模式、经译码单元(例如,帧、切片、宏块,或序列)的最大宏块大小等的语法信息的产生。
[0084] 根据本发明的各种技术,视频编码器20可使用大于由常规视频编码标准规定的宏块的宏块来编码数字视频数据。在一个实例中,视频编码器20可用视频编码器编码具有
大于16×16像素的大小的视频块,产生指示所述块的大小的块类型语法信息,并产生所述
经编码块的CBP值,其中所述经译码块模式值指示所述经编码块是否包括至少一个非零系
数。宏块块类型语法信息可提供于大宏块的宏块标头中。宏块块类型语法信息可指示宏块
在帧或切片中的地址或位置,或识别宏块的位置的宏块编号、应用于宏块的译码模式的类
型、宏块的量化值、宏块的任何运动向量信息,和宏块的CBP值。
[0085] 在另一实例中,视频编码器20可接收具有大于16×16像素的大小的视频块,将所述块分割成若干分区,使用第一编码模式编码所述分区中的一者,使用不同于所述第一编
码模式的第二编码模式编码所述分区中的另一者,并产生指示所述块的大小并识别所述分
区和用于编码所述分区的编码模式的块类型语法信息。
[0086] 在一额外实例中,视频编码器20可接收视频译码单元(例如,帧或切片),确定使用具有16×16像素的大小的第一视频块编码所述视频译码单元的第一速率-失真量度,确
定使用具有大于16×16像素的大小的第二视频块编码所述视频译码单元的第二速率-失
真量度,在所述第一速率-失真量度小于第二速率-失真量度时使用所述第一视频块编码
所述视频译码单元,且在所述第二速率-失真量度小于所述第一速率-失真量度时使用所
述第二视频块编码所述视频译码单元。
[0087] 在一个实例中,视频解码器30可接收具有大于16×16像素的大小的经编码视频块,接收指示所述经编码块的大小的块类型语法信息,接收所述经编码块的经译码块模式
值,其中所述经译码块模式值指示所述经编码块是否包括至少一个非零系数,且基于所述
块类型语法信息和所述经编码块的所述经译码块模式值来解码所述经编码块。
[0088] 在另一实例中,视频解码器30可接收具有大于16×16像素的大小的视频块,其中所述块经分割成若干分区,所述分区中的一者经帧内编码且所述分区中的另一者经帧内编
码,接收指示所述块的大小并识别所述分区和用于编码所述分区的所述编码模式的块类型
语法信息,且基于所述块类型语法信息解码所述视频块。
[0089] 图2为说明视频编码器50的一实例的方框图,视频编码器50可实施与本发明一致的用于使用大宏块的技术。视频编码器50可对应于源装置12的视频编码器20或不同
装置的视频编码器。视频编码器50可执行对视频帧内的块(包括大宏块,或大宏块的分区
或子分区)的帧内译码和帧间译码。帧内译码依赖于空间预测来减少或移除给定视频帧内
的视频的空间冗余。帧间译码依赖于时间预测来减少或移除视频序列的邻近帧内的视频的
时间冗余。
[0090] 帧内模式(I模式)可指代若干基于空间的压缩模式中的任一者,且例如预测(P模式)或双向(B模式)的帧间模式可指代若干基于时间的压缩模式中的任一者。本发明
的技术可在帧间译码与帧内译码两者期间应用。在一些情况下,本发明的技术还可适用于
编码非视频数字图片。即,数字静态图片编码器可利用本发明的技术以类似于编码视频序
列中的视频帧中的经帧内译码的宏块的方式使用大宏块对数字静态图片进行帧内译码。
[0091] 如图2中所展示,视频编码器50接收待编码的视频帧内的当前视频块。在图2的实例中,视频编码器50包括运动补偿单元35、运动估计单元36、帧内预测单元37、模式选择单元39、参考帧存储装置34、求和器48、变换单元38、量化单元40,和熵译码单元46。对于视频块重构,视频编码器50还包括逆量化单元42、逆变换单元44,和求和器51。还可包括
解块滤波器(图2中未展示)以将块边界滤波,以从经重构的视频移除成块性假影。在需
要时,解块滤波器通常对求和器51的输出进行滤波。
[0092] 在编码过程期间,视频编码器50接收待译码的视频帧或切片。可将所述帧或切片划分成多个视频块,包括大宏块。运动估计单元36和运动补偿单元35相对于一个或一个以
上参考帧中的一个或一个以上块执行对所接收的视频块的帧间预测译码以提供时间压缩。
帧内预测单元37相对于与待译码的块相同的帧或切片中的一个或一个以上相邻块执行对
所接收的视频块的帧内预测译码以提供空间压缩。
[0093] 模式选择单元39可(例如)基于误差结果而选择译码模式(帧内或帧间)中的一者,且将所得的经帧内译码或经帧间译码的块提供到求和器48以产生残余块数据,且提
供到求和器51以重构经编码块以用作参考帧。根据本发明的技术,待编码的视频块可包含
大于由常规译码标准规定的宏块(即,大于16×16像素宏块)的宏块。举例来说,大视频
块可包含64×64像素宏块或32×32像素宏块。
[0094] 运动估计单元36与运动补偿单元35可高度集成,但出于概念目的而单独说明。运动估计是产生估计视频块的运动的运动向量的过程。运动向量(例如)可指示预测参考帧
(或其它经译码单元)内的预测块相对于当前帧(或其它经译码单元)内正被译码的当前
块的位移。预测块是经发现在像素差异方面密切地匹配待译码的块的块,其可通过绝对差
总和(SAD)、平方差总和(SSD)或其它差异量度来确定。
[0095] 运动向量还可指示大宏块的分区的位移。在关于具有一个32×64分区和两个32×32分区的64×64像素宏块的一个实例中,第一运动向量可指示32×64分区的位移,
第二运动向量可指示32×32分区中的第一者的位移,且第三运动向量可指示32×32分区
中的第二者的位移,所有位移均相对于参考帧中的对应分区。还可将所述分区视为视频块
(在那些术语用于本发明中时)。运动补偿可涉及基于运动估计所确定的运动向量来获取
或产生预测块。同样,运动估计单元36与运动补偿单元35可在功能上集成。
[0096] 运动估计单元36通过将经帧间译码的帧的视频块与参考帧存储装置34中的参考帧的视频块进行比较来计算经帧间译码的帧的视频块的运动向量。运动补偿单元35还可
内插参考帧(例如,I帧或P帧)的子整数像素。ITU H.264标准将参考帧称作“列表”。因
此,还可将存储于参考帧存储装置34中的数据视为列表。运动估计单元36将来自参考帧
存储装置34的一个或一个以上参考帧(或列表)的块与当前帧(例如,P帧或B帧)的待
编码的块进行比较。当参考帧存储装置34中的参考帧包括用于子整数像素的值时,由运动
估计单元36计算的运动向量可指代参考帧的子整数像素位置。运动估计单元36将经计算
的运动向量发送到熵译码单元46和运动补偿单元35。由运动向量识别的参考帧块可称作
预测块。运动补偿单元35计算参考帧的预测块的误差值。
[0097] 运动补偿单元35可基于预测块计算预测数据。视频编码器50通过从正经译码的原始视频块减去来自运动补偿单元35的预测数据而形成残余视频块。求和器48表示执行
此减法运算的组件。变换单元38对残余块应用例如离散余弦变换(DCT)或概念上类似的变
换的变换,从而产生包含残余变换系数值的视频块。变换单元38可执行概念上类似于DCT
的其它变换,例如由H.264标准界定的变换。还可使用小波变换、整数变换、子频带变换或其它类型的变换。在任何情况下,变换单元38对残余块应用变换,从而产生残余变换系数
的块。所述变换可将残余信息从像素值域转换到变换域(例如,频域)。
[0098] 量化单元40将残余变换系数量化以进一步减小位速率。量化过程可减少与一些系数或全部系数相关联的位深度。在一个实例中,量化单元40可根据亮度量化参数(在本
发明中称作QPY)而建立用于每一64×64像素宏块的不同程度的量化。量化单元40可基
于量化参数修正符(其在本文中称作“MB64_delta_QP”)和先前经编码的64×64像素宏块
而进一步修改在64×64宏块的量化期间所使用的亮度量化参数。
[0099] 每一64×64像素的大宏块可包含在-26与+25之间(包括-26与+25)的范围内的个别MB64_delta_QP值。一般来说,视频编码器50可基于用于发射特定块的经编码版本
的所要位速率而建立用于所述特定块的MB64_delta_QP值。第一64×64像素宏块的MB64_
delta_QP值可等于包括第一64×64像素宏块的帧或切片的QP值(例如,在帧/切片标头
中)。可根据下式来计算用于当前64×64像素宏块的QPY:
[0100] QPY=(QPY,PREV+MB64_delta_QP+52)%52
[0101] 其中QPY,PREV指代在当前切片/帧的解码次序中的前一64×64像素宏块的QPY值,且其中“%”指代模数运算符,使得N%52传回在0与51之间(包括0与51)的结果,从
而对应于N除以52的余数值。对于帧/切片中的第一宏块,可将QPY,PREV设定为等于在帧/
切片标头中发送的帧/切片QP。
[0102] 在一个实例中,量化单元40假定:当未针对特定64×64像素宏块(包括“跳跃”型宏块,例如,P_Skip和B_Skip宏块类型)界定MB64_delta_QP值时,MB64_delta_QP值等
于零。在一些实例中,可界定额外delta_QP值(一般称作量化参数修改值)以用于64×64
像素宏块内的分区的较细粒度量化控制,例如用于64×64像素宏块的每一32×32像素分
区的MB32_delta_QP值。在一些实例中,64×64宏块的每一分区可经指派一个别量化参数。
代替针对64×64宏块使用单一QP,针对每一分区使用个别化的量化参数可实现宏块的更
有效量化,(例如)以便更好地调整对非同质区域的量化。可将每一量化参数修改值作为语
法信息与对应的经编码块包括在一起,且解码器可通过根据量化参数修改值解量化(即,
逆量化)经编码块来解码经编码块。
[0103] 在量化之后,熵译码单元46将经量化的变换系数进行熵译码。举例来说,熵译码单元46可执行内容自适应可变长度译码(CAVLC)、上下文自适应二进制算术译码(CABAC),
或另一熵译码技术。在由熵译码单元46进行熵译码之后,可将经编码的视频发射到另一装
置或将其存档以用于稍后发射或检索。经译码的位流可包括经熵译码的残余变换系数块、
所述块的运动向量、每一64×64像素宏块的MB64_delta_QP值,和包括(例如)宏块类型
识别符值、指示经译码单元中的宏块的最大大小的经译码单元标头、QPY值、经译码块模式(CBP)值、识别宏块或子块的分割方法的值,和变换大小旗标值的其它语法元素,如下文更详细地论述。在上下文自适应二进制算术译码的情况下,上下文可基于相邻宏块。
[0104] 在一些情况下,除熵译码之外,视频编码器50的熵译码单元46或另一单元可经配置以执行其它译码功能。举例来说,熵译码单元46可经配置以确定大宏块和分区的CBP值。
熵译码单元46可应用分层CBP方案以提供大宏块的指示宏块中的任何分区是否包括非零
变换系数值的CBP值,且如果是,则提供用于指示大宏块内的特定分区是否具有非零变换
系数值的其它CBP值。而且,在一些情况下,熵译码单元46可执行对大宏块或子分区中的
系数的游程长度译码。具体来说,熵译码单元46可应用曲折扫描或其它扫描模式以扫描宏
块或分区中的变换系数,且编码零的游程以用于进一步压缩。熵译码单元46还可用适当的
语法元素建构标头信息以用于在经编码视频位流中进行发射。
[0105] 逆量化单元42和逆变换单元44分别应用逆量化和逆变换,以重构像素域中的残余块,(例如)以用于稍后用作参考块。运动补偿单元35可通过将残余块加到参考帧存储
装置34的帧中的一者的预测块来计算参考块。运动补偿单元35还可对经重构的残余块应
用一个或一个以上内插滤波器以计算子整数像素值。求和器51将经重构的残余块加到由
运动补偿单元35产生的经运动补偿的预测块以产生用于存储于参考帧存储装置34中的经
重构的视频块。经重构的视频块可由运动估计单元36和运动补偿单元35用作用于对后续
视频帧中的块进行帧间译码的参考块。大宏块可包含64×64像素宏块、32×32像素宏块,
或大于由常规视频译码标准规定的大小的其它宏块。
[0106] 图3为说明视频解码器60的一实例的方框图,视频解码器60解码以本发明中所描述的方式编码的视频序列。经编码的视频序列可包括大于由常规视频编码标准规定的大
小的经编码的宏块。举例来说,经编码的宏块可为32×32像素或64×64像素宏块。在图
3的实例中,视频解码器60包括熵解码单元52、运动补偿单元54、帧内预测单元55、逆量化单元56、逆变换单元58、参考帧存储装置62和求和器64。视频解码器60在一些实例中可
执行一般与关于视频编码器50(图2)所描述的编码遍次互逆的解码遍次。运动补偿单元
54可基于从熵解码单元52接收的运动向量产生预测数据。
[0107] 熵解码单元52对所接收的位流进行熵解码以产生经量化的系数和语法元素(例如,运动向量、CBP值、QPY值、变换大小旗标值、MB64_delta_QP值)。熵解码单元52可解
析位流以识别经译码单元(例如,帧、切片和/或宏块标头)中的语法信息。包含多个宏块
的经译码单元的语法信息可指示经译码单元中的宏块(例如,16×16像素、32×32像素、
64×64像素,或其它较大大小的宏块)的最大大小。(例如)视块的译码模式而定,将块的
语法信息从熵译码单元52转发到运动补偿单元54或帧内预测单元55。解码器可使用经译
码单元的语法中的最大大小指示符来选择用于所述经译码单元的语法解码器。通过使用针
对所述最大大小而指定的语法解码器,解码器可接着适当地解译和处理包括于所述经译码
单元中的大宏块。
[0108] 运动补偿单元54可使用在位流中所接收的运动向量来识别参考帧存储装置62中的参考帧中的预测块。帧内预测单元55可使用在位流中所接收的帧内预测模式以从空间
上邻近的块形成预测块。逆量化单元56将提供于位流中且由熵解码单元52解码的经量化
的块系数逆量化(即,解量化)。逆量化过程可包括(例如)如通过H.264解码标准界定的
常规过程。逆量化过程还可包括使用由编码器50针对每一64×64宏块计算的用以确定量
化的程度且同样应该应用的逆量化的程度的量化参数QPY。
[0109] 逆变换单元58对变换系数应用逆变换(例如,逆DCT、逆整数变换,或概念上类似的逆变换过程),以便产生像素域中的残余块。运动补偿单元54产生经运动补偿的块,可
能执行基于内插滤波器的内插。待用于具有子像素精度的运动估计的内插滤波器的识别符
可包括在语法元素中。运动补偿单元54可使用如由视频编码器50在视频块的编码期间所
使用的内插滤波器来计算参考块的子整数像素的内插值。运动补偿单元54可根据所接收
的语法信息来确定由视频编码器50使用的内插滤波器且使用所述内插滤波器来产生预测
块。
[0110] 运动补偿单元54使用一些语法信息来确定用于编码经编码视频块的(多个)帧的宏块的大小、描述经编码视频序列的帧的每一宏块经分割的方式的分割信息、指示每一
分区经编码的方式的模式、用于每一经帧间编码的宏块或分区的一个或一个以上参考帧
(或列表),和用于解码经编码视频序列的其它信息。
[0111] 求和器64将残余块与由运动补偿单元54或帧内预测单元产生的对应预测块求和以形成经解码的块。在需要时,还可应用解块滤波器以对经解码的块进行滤波以便移除成
块性假影。接着将经解码的视频块存储于参考帧存储装置62中,参考帧存储装置62提供
用于后续运动补偿的参考块且还产生用于在显示装置(例如,图1的装置32)上呈现的经
解码视频。经解码视频块可各自包含64×64像素宏块、32×32像素宏块,或其它大于标准
的宏块。一些宏块可包括具有多种不同分区大小的分区。
[0112] 图4A为说明大宏块的各种分区层级中的实例分割的概念图。每一分区层级的块包括对应于特定层级的若干像素。还针对每一层级展示四个分割模式,其中第一分割模式
包括整个块,第二分割模式包括相等大小的两个水平分区,第三分割模式包括相等大小的
两个垂直分区,且第四分割模式包括四个相等大小的分区。可针对每一分区层级的每一分
区选择所述分割模式中的一者。
[0113] 在图4A的实例中,层级0对应于亮度样本和相关联的色度样本的64×64像素宏块分区。层级1对应于亮度样本和相关联的色度样本的32×32像素块。层级2对应于亮
度样本和相关联的色度样本的16×16像素块,且层级3对应于亮度样本和相关联的色度样
本的8×8像素块。
[0114] 在其它实例中,可引入额外层级以利用更大或更小数目个像素。举例来说,层级0可开始于128×128像素宏块、256×256像素宏块或其它较大大小的宏块。最高编号的层级在一些实例中可精细到单一像素(即,1×1块)。因此,从最低层级到最高层级,可将分割
逐步子分割,使得宏块被分割,分区被进一步分割,所得分区被再进一步分割,等等。在一些情况中,低于层级0的分区(即,分区的分区)可称作子分区。
[0115] 当使用四个相等大小的子块分割一个层级处的块时,可根据下一个层级的分割模式来分割子块中的任一者或全部。即,对于在层级x处经分割成四个相等大小的
子块(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像素子块中的每一者。
[0116] 通过使用图4A中所展示的分区的实例四个层级,可通过实施本发明的架构和技术的编码器来自适应地表示大的同质区域和细小的零星改变。举例来说,视频编码器50可
(例如)基于速率-失真分析确定不同宏块的不同分割层级,以及对所述分区应用的编码模
式。而且,如下文更详细地描述,视频编码器50可(例如)基于速率-失真量度结果或其
它考虑事项而使用空间(P编码或B编码)或时间(I编码)预测来不同地编码最终分区中
的至少一些分区。
[0117] 代替均匀地编码大宏块而使得所有分区均具有相同的帧内译码模式或帧间译码模式,可译码大宏块以使得一些分区具有不同译码模式。举例来说,可用相对于同一宏块中的其它(至少一个)分区来说不同的帧内译码模式(例如,I_16×16、I_8×8、I_4×4)译
码一些(至少一个)分区。而且,可对一些(至少一个)分区进行帧内译码而对同一宏块
中的其它(至少一个)分区进行帧间译码。
[0118] 举例来说,对于具有四个16×16分区的32×32块,视频编码器50可使用空间预测来编码16×16分区中的一些分区,且使用时间预测来编码其它16×16分区。作为另一
实例,对于具有四个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分区。
[0119] 图4B为说明将不同译码模式指派到大宏块的不同分区的概念图。具体来说,图4B说明将I_16×16帧内译码模式指派到大的32×32宏块的左上部16×16块、将I_8×8帧
内译码模式指派到大的32×32宏块的右上部和左下部16×16块和将I_4×4帧内译码模
式指派到大的32×32宏块的右下部16×16块。在一些情况下,图4B中所说明的译码模式
可为用于亮度译码的H.264帧内译码模式。
[0120] 以所描述的方式,可有选择地进一步分割每一分区,且可使用时间预测或空间预测并使用选定的时间译码模式或空间译码模式选择性地译码每一最终分区。因此,有可能
用混合模式译码大宏块,以使得宏块中的一些分区经帧内译码且同一宏块中的其它分区经
帧间译码,或用不同的帧内译码模式或不同的帧间译码模式译码同一宏块中的一些分区。
[0121] 视频编码器50可根据宏块类型进一步界定每一分区。可将宏块类型作为语法元素包括于经编码位流中,例如作为宏块标头中的语法元素。一般来说,宏块类型可用于识别宏块经分割的方式,和用于编码宏块的分区中的每一者的相应方法或模式,如上文所论述。
用于编码分区的方法可不仅包括帧内译码和帧间译码,而且包括特定模式的帧内译码(例
如,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)。
[0122] 如下文针对P块关于表1的实例和针对B块关于表2的实例更详细地论述,可根据表示具有64×64像素的宏块的MB64_type语法元素界定分区层级0块。可针对任何MB[N]_
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或根据本发明的技术针对较大宏块的处理而指定的类型)。
[0123] 一般来说,对于对应类型,每一MB[N]_type界定可表示对应类型(例如,64×64)的块中的像素的数目、块的参考帧(或参考列表)、块的分区的数目、块的每一分区的大小、每一分区经编码的方式(例如,帧内或帧间和特定模式),和当分区经帧间译码时块的每一
分区的参考帧(或参考列表)。对于16×16和更小的块,视频编码器50在一些实例中可使
用常规类型的界定作为块的类型(例如,由H.264标准指定的类型)。在其它实例中,视频
编码器50可对16×16和更小的块应用新界定的块类型。
[0124] 视频编码器50可评估使用正常宏块大小和分区的常规帧间或帧内译码方法(例如,由ITU H.264规定的方法)和由本发明描述的使用较大宏块和分区的帧间或帧内译码
方法,且比较每一方法的速率-失真特性以确定哪种方法产生最好的速率-失真性能。视
频编码器50接着可基于译码方法的最佳或可接受的速率-失真结果来选择最好的译码
方法(包括帧间或帧内模式、宏块大小(大的、较大或正常),和分割),且将其应用于待译
码的块。作为一说明,视频编码器50可基于当视频编码器使用64×64宏块、32×32宏块
或16×16宏块大小时所产生的速率-失真结果而选择使用64×64宏块、32×32宏块或
16×16宏块来编码特定帧或切片。
[0125] 一般来说,可使用两种不同方法来设计使用大宏块的帧内模式。作为一个实例,在帧内译码期间,可直接基于相邻块对块执行空间预测。根据本发明的技术,视频编码器50可直接基于块的相邻像素产生空间预测32×32块,且直接基于块的相邻像素产生空间预
测64×64块。以此方式,与16×16帧内块相比,可以较大规模执行空间预测。因此,这些
技术在一些实例中可导致一些位速率节省,例如,每一帧或切片使用较小数目个块或分区。
[0126] 作为另一实例,视频编码器50可将四个N×N块分组在一起以产生(N*2)×(N*2)块,且接着编码所述(N*2)×(N*2)块。通过使用现有H.264帧内译码模式,视频编码器50
可将四个经帧内译码的块分组在一起,借此形成大的经帧内译码的宏块。举例来说,可将四个经帧内译码的块(每一者具有16×16的大小)分组在一起以形成大的32×32的经帧
内译码的块。视频编码器50可使用不同编码模式(例如,根据H.264的I_16×16、I_8×8
或I_4×4)编码四个对应的N×N块中的每一者。以此方式,可通过视频编码器50向每一
16×16块指派其自身的空间预测模式,(例如)以促进有利的编码结果。
[0127] 视频编码器50可根据上文所论述的两种不同方法中的任一者设计帧内模式,且分析所述不同方法以确定哪种方法提供更好的编码结果。举例来说,视频编码器50可应用
不同的帧内模式方法,且将其置于单一候选池中以允许其彼此竞争以达到最好的速率-失
真性能。通过使用不同方法之间的速率-失真比较,视频编码器50可确定如何编码每一分
区和/或宏块。具体来说,视频编码器50可选择针对给定宏块产生最好的速率-失真性能
的译码模式,且应用那些译码模式来编码所述宏块。
[0128] 图5为说明大宏块的各种分区层级的分层视图的概念图。图5还表示如关于图4A所描述的大宏块的各种分区层级之间的关系。如图5的实例中所说明,一分区层级的每一
块可具有对应的经译码块模式(CBP)值。所述CBP值形成描述一块或宏块的语法信息的一
部分。在一个实例中,CBP值各自为指示在变换和量化运算之后在给定块中是否存在任何
非零变换系数值的一位语法值。
[0129] 在一些情况下,预测块可能在像素内容上非常接近于待译码的块,使得全部残余变换系数被量化成零,在所述情况下,可能不需要发射用于所述经译码块的变换系数。而
是,可将用于块的CBP值设定为0以指示经译码块不包括非零系数。或者,如果块包括至
少一个非零系数,则可将CBP值设定为1。解码器60可使用CBP值来识别经译码的残余块
(即,具有一个或一个以上非零变换系数)与未经译码的块(即,不包括非零变换系数)。
[0130] 根据本发明中所描述的技术中的一些,编码器可基于大宏块(包括其分区)是否具有至少一个非零系数而分层地将CBP值指派到那些宏块,且将CBP值指派到所述分区以
指示哪些分区具有非零系数。大宏块的分层CBP可促进对大宏块的处理以迅速地识别经译
码的大宏块和未经译码的大宏块,且准许识别大宏块的每一分区层级的经译码分区以确定
是否有必要使用残余数据来解码所述块。
[0131] 在一个实例中,层级零处的64×64像素宏块可包括包含CBP64值(例如,一位值)的语法信息,所述CBP64值用以指示整个64×64像素宏块(包括任何分区)是否具有非零
系数。在一个实例中,视频编码器50将CBP64位“设定”(例如)到值“1”,以表示64×64
像素宏块包括至少一个非零系数。因此,当将CBP64值设定(例如)到值“1”时,64×64像
素宏块在其中某处包括至少一个非零系数。在另一实例中,视频编码器50将CBP64值“清
除”(例如)到值“0”,以表示64×64像素宏块具有全零系数。因此,当将CBP64值清除(例
如)到值“0”时,指示64×64像素宏块为具有全零系数。具有为“0”的CBP64值的宏块一
般不需要在位流中发射残余数据,而具有为“1”的CBP64值的宏块一般需要在位流中发射
残余数据以用于解码所述宏块。
[0132] 具有全零系数的64×64像素宏块不需要包括用于其分区或子块的CBP值。即,因为64×64像素宏块具有全零系数,所以所述分区中的每一者也必定具有全零系数。相反
地,包括至少一个非零系数的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。编码器可进一步在包含多个宏块的经译码单元(例如,帧、切片或序列)的
语法中指示经译码单元中的宏块的最大大小,以向解码器指示如何解译每一宏块的语法信
息(例如,将哪个语法解码器用于处理经译码单元中的宏块)。
[0133] 以此方式,具有全零系数的64×64像素宏块可使用单一位来表示宏块具有全零系数的事实,而具有至少一个非零系数的64×64像素宏块可包括包含至少五个位的CBP语
法信息:用于表示64×64像素宏块具有非零系数的第一位,和各自表示宏块的四个32×32
像素分区中的对应一者是否包括至少一个非零系数的四个额外位。在一些实例中,当四个
额外位中的前三者为零时,可不包括第四额外位,解码器可将其解译为最后分区为一。即,在前三个位为零时且在表示较高层级阶层的位具有值1时,编码器可确定最后位具有值1。
举例来说,可将CBP64前缀值“10001”缩短到“1000”,因为第一位指示四个分区中的至少一者具有非零系数,且接下来三个零指示前三个分区具有全零系数。因此,解码器可(例
如)从位串“1000”推断出:最后分区包括非零系数,而不具有向解码器通知所述事实的显式位。即,解码器可将CBP64前缀“1000”解译为“10001”。
[0134] 同样地,当32×32像素分区包括至少一个非零系数时,可将一位CBP32设定为值“1”,且当全部系数具有零值时,将一位CBP32设定为值“0”。如果32×32像素分区具有为“1”的CBP值,则那个32×32分区的在下一个分区层级处的分区可经指派有CBP值,以指示
相应分区是否包括任何非零系数。因此,可在每一分区层级处以分层方式指派CBP值,直到不存在其它分区层级或不存在包括非零系数的分区为止。
[0135] 以上述方式,编码器和/或解码器可利用分层的CBP值来表示大宏块(例如,64×64或32×32)和其分区是否包括至少一个非零系数或全零系数。因此,编码器可:编
码数字视频流的经译码单元的大宏块,以使得所述大宏块包含大于16×16像素;产生识别
所述块的大小的块类型语法信息;产生用于所述块的CBP值,以使得所述CBP值识别所述块
是否包括至少一个非零系数;以及在可适用时产生用于所述块的各种分区层级的额外CBP
值。
[0136] 在一个实例中,分层的CBP值可包含位阵列(例如,位向量),所述位阵列的长度视前缀的值而定。所述阵列可进一步表示CBP值的阶层(例如,树结构),如图5中所展示。所述阵列可以宽度优先(breadth-first)方式表示树的节点,其中每一节点对应于阵列中
的一位。在一个实例中,当树的节点具有经设定为“1”的位时,所述节点具有四个分支(对应于四个分区),且当所述位被清除到“0”时,所述节点不具有分支。
[0137] 在此实例中,为了识别从特定节点X分岔的节点的值,编码器和/或解码器可通过计算下式来确定表示从节点x分岔的节点的从节点Y开始的四个连续位:
[0138]
[0139] 其中tree[]对应于具有为0的开始索引的位阵列,i为到阵列tree[]中的整数索引,x对应于tree[]中的节点X的索引,且y对应于为节点X的第一分支节点的节点Y的
索引。三个后续阵列位置(即,y+1、y+2,和y+3)对应于节点X的其它分支节点。
[0140] 编码器(例如,视频编码器50(图2))可使用现有方法(例如,由ITU H.264规定的用于设定16×16块的CBP值的方法)指派具有至少一个非零系数的32×32像素分区的
16×16像素分区的CBP值,以作为64×64像素宏块的语法的一部分。编码器还可基于分区
的大小、对应于分区的块的类型(例如,色度块或亮度块),或分区的其它特性而选择具有
至少一个非零系数的32×32像素分区的分区的CBP值。参看图8和图9进一步详细论述
用于设定32×32像素分区的分区的CBP值的实例方法。
[0141] 图6到图9为说明根据本发明的技术的用于设定各种经译码块模式(CBP)值的实例方法的流程图。虽然图6到图9的实例方法是相对于64×64像素宏块而论述的,但应
理解,类似技术可适用于指派其它大小的宏块的分层CBP值。虽然图6到图9的实例是相
对于视频编码器50(图2)而论述的,但应理解,其它编码器可使用类似方法来将CBP值指
派到大于标准的宏块。同样地,解码器可利用类似的、但互逆的方法来解译宏块的特定CBP值的意义。举例来说,如果在位流中所接收的经帧间译码的宏块具有为“0”的CBP值,则解码器可不接收所述宏块的残余数据,且可仅产生由运动向量识别的预测块作为经解码的宏
块,或由相对于所述宏块的分区的运动向量而识别的预测块群组。
[0142] 图6为说明用于设定一实例64×64像素宏块的CBP64值的实例方法的流程图。可对大于64×64的宏块应用类似方法。最初,视频编码器50接收64×64像素宏块(100)。
运动估计单元36和运动补偿单元35可接着分别产生用于编码所述宏块的一个或一个以上
运动向量和一个或一个以上残余块。变换单元38的输出一般包含用于经帧内译码的块或
经帧间译码的块的残余块的残余变换系数值阵列,所述阵列由量化单元40量化以产生一
系列经量化的变换系数。
[0143] 熵译码单元46可提供熵译码和与熵译码分离的其它译码功能。举例来说,除CAVLC、CABAC或其它熵译码功能外,视频编码器50的熵译码单元46或另一单元可确定用于
大宏块和分区的CBP值。具体来说,熵译码单元46可通过首先确定64×64像素宏块是否
具有至少一个非零的、经量化的变换系数来确定所述宏块的CBP64值(102)。当熵译码单元
46确定所有变换系数具有零值时(102的“否”分支),熵译码单元46清除64×64宏块的
CBP64值(例如,将用于CBP64值的位复位到“0”)(104)。当熵译码单元46识别出64×64
宏块的至少一个非零系数时(102的“是”分支),熵译码单元46设定CBP64值(例如,将用
于CBP64值的位设定为“1”)(106)。
[0144] 当宏块具有全零系数时,熵译码单元46不需要建立用于宏块的分区的任何额外CBP值,此可减少开销。然而,在一个实例中,当宏块具有至少一个非零系数时,熵译码单元
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”)。
[0145] 图7为说明用于设定64×64像素宏块的32×32像素分区的CBP32值的实例方法的流程图。最初,对于下一个分区层级,熵译码单元46接收宏块的32×32像素分区(例如,
关于图6参看的四个分区中的一者)(110)。熵译码单元46接着通过首先确定32×32像
素分区是否包括至少一个非零系数来确定用于所述分区的CBP32值(112)。当熵译码单元
46确定用于分区的所有系数具有零值时(112的“否”分支),熵译码单元46清除CBP32值
(例如,将用于CBP32值的位复位到“0”)(114)。当熵译码单元46识别出分区的至少一个
非零系数时(112的“是”分支),熵译码单元46设定CBP32值(例如,将用于CBP32值的位
设定为值“1”)(116)。
[0146] 在一个实例中,当分区具有全零系数时,熵译码单元46不会建立用于所述分区的任何额外CBP值。然而,当分区包括至少一个非零系数时,熵译码单元46确定用于宏块的
32×32像素分区的四个16×16像素分区中的每一者的CBP值。熵译码单元46可利用关于
图8所描述的方法来建立各自对应于四个16×16像素分区中的一者的四个CBP16值。
[0147] 以此方式,当分区具有全零系数时,熵译码单元46可设定具有值“0”的位以指示分区具有全零系数,而当分区具有至少一个非零系数时,熵译码单元46可包括五个位:用于分区的一个位,和各自对应于宏块的分区的四个子分区中的不同一者的四个位。因此,当前一分区层级中的分区具有至少一个非零变换系数值时,每一额外分区层级可呈现四个额
外CBP位。作为一个实例,如果64×64宏块具有为1的CBP值,且四个32×32分区具有分
别为1、0、1和1的CBP值,则直到那个点的总的CBP值为11011。可添加用于32×32分区
的额外分区(例如,16×16分区)的额外CBP位。
[0148] 图8为说明用于设定64×64像素宏块的32×32像素分区的16×16像素分区的CBP16值的实例方法的流程图。对于特定16×16像素分区,视频编码器50可利用如由视频
译码标准(例如,ITU H.264)规定的CBP值,如下文所论述。对于其它16×16分区,视频
编码器50可利用根据本发明的其它技术的CBP值。最初,如图8中所展示,熵译码单元46
接收16×16分区(例如,关于图7所描述的32×32分区的16×16分区中的一者)(120)。
[0149] 熵译码单元46可接着确定16×16像素分区的运动分区是否大于8×8像素块(122)。一般来说,运动分区描述其中运动较为集中的分区。举例来说,可将仅具有一个运动向量的16×16像素分区视为一16×16运动分区。类似地,对于具有各自具有一个运动
向量的两个8×16分区的16×16像素分区,可将两个8×16分区中的每一者视为一8×16
运动分区。在任何情况下,在图8的实例中,当运动分区不大于8×8像素块时(122的“否”
分支),熵译码单元46以与由ITU H.264规定的方式相同的方式将CBP值指派到16×16像
素分区(124)。
[0150] 当存在16×16像素分区的大于8×8像素块的运动分区时(122的“是”分支),熵译码单元46使用步骤125之后的步骤建构和发送lumacbp16值(125)。在图8的实例中,
为了建构lumacbp16值,熵译码单元46确定分区的16×16像素亮度分量是否具有至少一
个非零系数(126)。在图8的实例中,当16×16像素亮度分量具有全零系数时(126的“否”
分支),熵译码单元46指派根据ITU H.264的经译码块模式色度部分的CBP16值(128)。
[0151] 当熵译码单元46确定16×16像素亮度分量具有至少一个非零系数时(126的“是”分支),熵译码单元46确定16×16像素分区的变换大小旗标(130)。变换大小旗标一
般指示正用于所述分区的变换。由变换大小旗标表示的变换可包括4×4变换、8×8变换、
16×16变换、16×8变换或8×16变换中的一者。变换大小旗标可包含整数值,其对应于识
别可能变换中的一者的所列举值。熵译码单元46可接着确定变换大小旗标是否表示变换
大小大于或等于16×8(或8×16)(132)。
[0152] 在图8的实例中,当变换大小旗标不指示变换大小大于或等于16×8(或8×16)时(132的“否”分支),熵译码单元46将一值指派到根据ITU H.264的CBP16(134)。当变
换大小旗标指示变换大小大于或等于16×8(或8×16)时(132的“是”分支),熵译码单
元46接着确定16×16像素分区的类型是否为两个16×8像素分区或两个8×16像素分区
(136)。
[0153] 在图8的实例中,当16×16像素分区的类型不是两个16×8像素分区且不是两个8×16像素分区时(138的“否”分支),熵译码单元46指派根据由ITU H.264规定的色
度经译码块分区的CBP16值(140)。当16×16像素分区的类型为两个16×8或两个8×16
像素分区时(138的“是”分支),熵译码单元46还使用由ITU H.264规定的色度经译码块
模式,但另外向CBP16值指派二位luma16×8_CBP值(例如,根据关于图9所描述的方法)
(142)。
[0154] 图9为说明用于确定二位luma16×8_CBP值的实例方法的流程图。熵译码单元46接收经进一步分割成两个16×8或两个8×16像素分区的16×16像素分区(150)。熵
译码单元46一般根据16×16像素分区的对应子块是否包括至少一个非零系数来指派
luma16×8_CBP的每一位。
[0155] 熵译码单元46确定16×16像素分区的第一子块是否具有至少一个非零系数,以确定第一子块是否具有至少一个非零系数(152)。当第一子块具有全零系数时(152的“否”分支),熵译码单元46清除luma16×8_CBP的第一位(例如,将luma16×8_CBP[0]指派为
值“0”)(154)。当第一子块具有至少一个非零系数时(152的“是”分支),熵译码单元46
设定luma16×8_CBP的第一位(例如,将luma16×8_CBP[0]指派为值“1”)(156)。
[0156] 熵译码单元46还确定16×16像素分区的第二子分区是否具有至少一个非零系数(158)。当第二子分区具有全零系数时(158的“否”分支),熵译码单元46清除luma16×8_
CBP的第二位(例如,将luma16×8_CBP[1]指派为值“0”)(160)。当第二子块具有至少一
个非零系数时(158的“是”分支),熵译码单元46接着设定luma16×8_CBP的第二位(例
如,将luma16×8_CBP[1]指派为值“1”)(162)。
[0157] 以下伪码提供关于图8和图9所描述的方法的一个实例实施方案:
[0158]
[0159] 在所述伪码中,“lumacbp16”对应于附加指示整个16×16亮度块是否具有非零系数的一位旗标的运算。当“lumacbp16”等于1时,存在至少一个非零系数。函数“Transform_size_flag”指代具有指示所使用的变换(例如,4×4变换、8×8变换、16×16变换(用于等
于或大于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像素宏块的语法信息中。
[0160] “Luma16×8_cbp”指代产生二位数的计算,其中每一位指示两个分区P_16×8或P_8×16中的一者是否具有非零系数。将由luma16×8_cbp产生的二位数并入64×64像素
宏块的语法中。可以与如由ITU H.264规定的CodedBlockPatternChroma相同的方式计算
值“chroma_cbp”。将所计算的chroma_cbp值并入64×64像素宏块的语法信息中。可以与
ITU H.264中所界定的CBP相同的方式计算函数h264_cbp。将所计算的H264_cbp值并入
64×64像素宏块的语法信息中。
[0161] 一般来说,根据图6到图9的方法可包括:用视频编码器编码具有大于16×16像素的大小的视频块;产生指示所述块的大小的块类型语法信息;以及产生用于所述经编码
块的经译码块模式值,其中所述经译码块模式值指示所述经编码块是否包括至少一个非零
系数。
[0162] 图10为说明64×64像素宏块的一实例布置的方框图。图10的宏块包含在图10中经标记为A、B、C和D的四个32×32分区。如关于图4A所论述,在一个实例中,可以以下
四种方式中的任一者分割一块:不具有子分区的整个块(64×64)、两个相等大小的水平分
区(32×64和32×64)、两个相等大小的垂直分区(64×32和64×32),或四个相等大小的
正方形分区(32×32、32×32、32×32和32×32)。
[0163] 在图10的实例中,整个块分区包含块A、B、C和D中的每一者;两个相等大小的水平分区中的第一者包含A和B,而两个相等大小的水平分区中的第二者包含C和D;两个相
等大小的垂直分区中的第一者包含A和C,而两个相等大小的垂直分区中的第二者包含B和
D;且四个相等大小的正方形分区对应于A、B、C和D中的每一者中的一者。类似分区方案
可用于任何大小的块,例如,大于64×64像素、32×32像素、16×16像素、8×8像素,或其它
大小的视频块。
[0164] 当对一视频块进行帧内译码时,各种方法可用于分割所述视频块。此外,可对分区中的每一者进行不同地帧内译码(即,用不同模式,例如不同的帧内模式)。举例来说,可将32×32分区(例如,图10的分区A)进一步分割成大小为16×16像素的四个相等大小的
块。作为一个实例,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层级处被帧内译码。
[0165] 另一方面,根据本发明的技术配置的编码器可应用混合模式方法。对于帧内译码,例如,大宏块可具有用不同译码模式编码的各种分区。作为一说明,(例如,如图4B中所展示)在32×32分区中,一个16×16分区可在4×4像素层级处被帧内译码,而其它16×16分区可在8×8像素层级处被帧内译码,且一个16×16分区可在16×16层级处被帧内译
码。
[0166] 当将把一视频块分割成用于帧内译码的四个相等大小的子块时,待进行帧内译码的第一块可为左上部块,随后是紧接在第一块右方的块,随后是紧接在第一块下方的块,且最后是第一块的右下方的块。参考图10的实例块,帧内译码的次序将从A进行到B到C且
最后到D。虽然图10描绘64×64像素宏块,但对不同大小的经分割块的帧内译码可遵循此
相同排序。
[0167] 当一视频块将作为P帧或P切片的一部分被帧间译码时,可将所述块分割成四个上文所描述的分区中的任一者,所述四个分区中的每一者可被单独编码。即,可根据不同编码模式(帧内编码(I译码)或参考单一参考帧/切片/列表的帧间编码(P译码))编码
所述块的每一分区。以下表1概述用于大小为N×N的块的每一潜在可能分区的帧间编码
信息。在表1参看“M”的位置,M=N/2。在下文的表1中,L0指代“列表0”(即,参考帧
/切片/列表)。当决定如何最好地分割N×N块时,编码器(例如,视频编码器50)可基于
拉格朗日乘数分析每一MB_N_type(即,每一分区类型)的速率-失真成本信息(如关于图
11更详细地论述),从而选择最低成本作为最好的分割方法。
[0168] 表1
[0169]
[0170] 在以上表1中,“MB_N_type”列的元素为N×N块的每一分区类型的关键。“MB_N_type的名称”列的元素为N×N块的不同分割类型的名称。名称中的“P”指代使用P译码
(即,参考单一帧/切片/列表)来帧间译码块。名称中的“L0”指代用作P译码的参考帧
或切片的参考帧/切片/列表(例如,“列表0”)。“N×N”指代分区为整个块,“N×M”指代分区为宽度N和高度M的两个分区,“M×N”指代分区为宽度M和高度N的两个分区,“M×M”
指代分区为各自具有宽度M和高度M的四个相等大小的分区。
[0171] 在表1中,PN_Skip暗示“跳过”所述块,(例如)因为由译码产生的块具有全零系数。“预测模式部分1”列的元素指代用于分区的子分区1的参考帧/切片/列表,而“预测
模式部分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”。
[0172] 下文的表2包括类似于表1的列和元素的列和元素。然而,表2对应于使用双向预测(B编码)的经帧间译码的块的各种编码模式。因此,可通过第一帧/切片/列表(L0)
与第二帧/切片/列表(L1)中的任一者或两者来编码每一分区。“BiPred”指代从L0与
L1两者预测的对应分区。在表2中,列标签和值的意义类似于表1中所使用的列标签和值
的意义。
[0173] 表2
[0174]
[0175] 图11为说明用于计算N×N像素视频块的最佳分割和编码方法的实例方法的流程图。一般来说,图11的方法包含计算如应用于(例如)图4A中所展示的每一不同分割方
法的每一不同编码方法(例如,各种空间或时间模式)的成本,和选择对于N×N像素视频
块来说具有最好的速率-失真成本的编码模式与分割方法的组合。一般可使用拉格朗日乘
数与速率和失真值来计算成本,以使得速率-失真成本=失真+λ*速率,其中失真表示原
始块与经译码块之间的误差,且速率表示支持所述译码模式所必需的位速率。在一些情况
下,可在宏块、分区、切片或帧层级上确定速率和失真。
[0176] 最初,视频编码器50接收待编码的N×N视频块(170)。举例来说,视频编码器50可接收64×64的大宏块或其分区(例如,32×32或16×16分区),视频编码器50将针对
所述宏块或其分区选择编码和分割方法。视频编码器50接着计算使用多种不同译码模式
(例如,不同的帧内译码模式和帧间译码模式)编码N×N块的成本(172)。为了计算在空
间上编码N×N块的成本,视频编码器50可计算失真和用给定译码模式编码N×N块所需的
位速率,且接着计算成本=失真(Mode,N×N)+λ*速率(Mode,N×N)。视频编码器50可使用指定译码技术编码宏块,且确定所得位速率成本和失真。可基于经译码的宏块中的像素与原始宏
块中的像素之间的像素差异(例如,基于绝对差总和(SAD)量度、平方差总和(SSD)量度或
其它像素差异量度)来确定失真。
[0177] 视频编码器50可接着将N×N块分割成两个相等大小的非重叠的水平N×(N/2)分区。视频编码器50可计算使用各种译码模式编码所述分区中的每一者的成本(176)。举
例来说,为了计算编码第一N×(N/2)分区的成本,视频编码器50可计算编码第一N×(N/2)
分区的失真和位速率,且接着计算成本=失真(Mode,FIRST PARTITION,N×(N/2))+λ*速率(Mode,FIRST PARTITION,N×(N/2))。
[0178] 视频编码器50可接着将N×N块分割成两个相等大小的非重叠的垂直(N/2)×N分区。视频编码器50可计算使用各种译码模式编码所述分区中的每一者的成本(178)。举
例来说,为了计算编码所述(N/2)×N分区中的第一者的成本,视频编码器50可计算编码第
一(N/2)×N分区的失真和位速率,且接着计算成本=失真(Mode,FIRST PARTITION,(N/2)×N)+λ*速率(Mode,FIRST PARTITION,(N/2)×N)。对于编码所述(N/2)×N宏块分区中的第二者的成本,视频编码器
50可执行类似计算。
[0179] 视频编码器50可接着将N×N块分割成四个相等大小的非重叠的(N/2)×(N/2)分区。视频编码器50可计算使用各种译码模式编码所述分区的成本(180)。为了计算编
码所述(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)分区)的成本。
[0180] 接下来,视频编码器50可确定分割与编码模式的哪个组合产生根据速率和失真的最好的(即,最低)成本(182)。举例来说,视频编码器50可比较编码两个邻近
(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可经
配置以评估分割与编码模式组合的更有限集合。
[0181] 在确定最好(例如,最低成本)的分割和编码方法后即刻,视频编码器50可使用所述最好-成本确定的方法来编码N×N宏块(184)。在一些情况下,结果可为大宏块具有
使用不同译码模式译码的分区。对大宏块应用混合模式译码以使得对大宏块中的不同分区
应用不同译码模式的能力可准许以减少的成本译码宏块。
[0182] 在一些实例中,用混合模式进行译码的方法可包括:用视频编码器50接收具有大于16×16像素的大小的视频块;将所述块分割成若干分区;用第一编码模式编码所述分区
中的一者;用不同于所述第一编码模式的第二编码模式编码所述分区中的另一者;以及产
生指示所述块的大小并识别所述分区和用于编码所述分区的所述编码模式的块类型语法
信息。
[0183] 图12为说明具有各种分区的实例64×64像素的大宏块和用于每一分区的不同选定编码方法的方框图。在图12的实例中,每一分区经标记有“I”、“P”或“B”中的一者。经标记为“I”的分区为编码器已(例如)基于速率-失真评估而选择利用帧内译码的分区。
经标记为“P”的分区为编码器已(例如)基于速率-失真评估而选择利用单一参考帧间译
码的分区。经标记为“B”的分区为编码器已(例如)基于速率-失真评估而选择利用双向
预测帧间译码的分区。在图12的实例中,同一大宏块内的不同分区具有不同的译码模式,
包括不同分区或子分区大小和不同的帧内译码模式或帧间译码模式。
[0184] 大宏块为由宏块语法元素识别的宏块,所述宏块语法元素识别用于例如H.264译码标准的扩展的给定译码标准的宏块类型(例如,mb64_type或mb32_type)。宏块类型语
法元素可作为宏块标头语法元素提供于经编码视频位流中。图12中所说明的I译码、P
译码和B译码的分区可根据不同的译码模式(例如,具有各种块大小的帧内预测模式或帧
间预测模式,包括用于大小大于16×16的大分区的大块大小模式或用于大小小于或等于
16×16的分区的H.264模式)而被译码。
[0185] 在一个实例中,编码器(例如,视频编码器50)可使用关于图11所描述的实例方法来选择用于图12的实例的大宏块的不同分区和子分区的各种编码模式和分区大小。举
例来说,视频编码器50可接收64×64宏块,执行图11的方法,且因此产生具有各种分区大
小和译码模式的图12的实例宏块。然而,应理解,分割和译码模式的选择可通过应用图11
的方法而产生,例如,基于从其选择宏块的帧的类型,且基于针对其而执行所述方法的输入的宏块。举例来说,当帧包含I帧时,每一分区将经帧内编码。作为另一实例,当帧包含P
帧时,每一分区可经帧内编码或基于单一参考帧(即,无双向预测)而经帧间译码。
[0186] 出于说明的目的,假定图12的实例宏块是选自双向预测帧(B帧)。在其它实例中,在宏块是选自P帧的情况下,视频编码器50将不使用双向预测来编码分区。同样地,在宏块是选自I帧的情况下,视频编码器50将不使用帧间译码(P编码或B编码)来编码分
区。然而,在任何情况下,视频编码器50可针对宏块的不同部分选择各种分区大小,且选择使用任何可用的编码模式来编码每一分区。
[0187] 在图12的实例中,假定基于速率-失真分析的分区与模式选择的组合产生一个32×32经B译码的分区、一个32×32经P译码的分区、一个16×32经I译码的分区、一个
32×16经B译码的分区、一个16×16经P译码的分区、一个16×8经P译码的分区、一个
8×16经P译码的分区、一个8×8经P译码的分区、一个8×8经B译码的分区、一个8×8经
I译码的分区,和具有各种译码模式的众多较小子分区。图12的实例是出于概念性说明对
大宏块中的分区的混合模式译码的目的而提供,且不应必定被视为表示特定的大的64×64
宏块的实际译码结果。
[0188] 图13为说明用于确定用于编码视频序列的帧或切片的宏块的最佳大小的实例方法的流程图。虽然相对于选择帧的宏块的最佳大小而进行描述,但类似于关于图13所描述
的方法的方法可用于选择用于切片的宏块的最佳大小。同样地,虽然图13的方法是相对于
视频编码器50而进行描述,但应理解,任何编码器可利用图13的实例方法来确定用于编码
视频序列的帧的宏块的最佳(例如,最低成本)大小。一般来说,图13的方法包含将编码
遍次执行三次,针对16×16宏块、32×32宏块和64×64宏块中的每一者各执行一次,且视
频编码器可计算每一遍次的速率-失真量度以确定哪个宏块大小提供最好的速率-失真。
[0189] 视频编码器50可首先在第一编码遍次期间使用16×16像素宏块来编码帧(例如,使用函数编码(帧,MB16_type))(190),以产生经编码的帧F16。在第一编码遍次之
后,视频编码器50可基于16×16像素宏块的使用而分别计算位速率和失真以作为R16和
D16(192)。视频编码器50可接着使用拉格朗日乘数C16=D16+λ*R16来计算呈使用16×16
像素宏块的成本C16的形式的速率-失真量度(194)。可(例如)根据H.264标准来选择
用于16×16像素宏块的译码模式和分区大小。
[0190] 视频编码器50可接着在第二编码遍次期间使用32×32像素宏块来编码帧(例如,使用函数编码(帧,MB32_type))(196),以产生经编码的帧F32。在第二编码编次之
后,视频编码器50可基于32×32像素宏块的使用而分别计算位速率和失真以作为R32和
D32(198)。视频编码器50可接着使用拉格朗日乘数C32=D32+λ*R32来计算呈使用32×32
像素宏块的成本C32的形式的速率-失真量度(200)。可(例如)使用如参考图11和图12
所描述的速率和失真评估技术来选择用于32×32像素宏块的译码模式和分区大小。
[0191] 视频编码器50可接着在第三编码遍次期间使用64×64像素宏块来编码帧(例如,使用函数编码(帧,MB64_type))(202),以产生经编码的帧F64。在第三编码遍次之
后,视频编码器50可基于64×64像素宏块的使用而分别计算位速率和失真以作为R64和
D64(204)。视频编码器50可接着使用拉格朗日乘数C64=D64+λ*R64来计算呈使用64×64
像素宏块的成本C64的形式的速率-失真量度(206)。可(例如)使用如参考图11和图12
所描述的速率和失真评估技术来选择用于64×64像素宏块的译码模式和分区大小。
[0192] 接下来,视频编码器50可确定对于所述帧来说量度C16、C32和C64中的哪一者最低(208)。视频编码器50可选择使用用产生最低成本的宏块大小而编码的帧(210)。因此,例如,当C16为最低时,视频编码器50可在位流中转发用16×16宏块编码为经编码的帧的
帧F16以用于存储或发射到解码器。当C32为最低时,视频编码器50可转发用32×32宏块
编码的F32。当C64为最低时,视频编码器50可转发用64×64宏块编码的F64。
[0193] 在其它实例中,视频编码器50可以任何次序执行编码遍次。举例来说,视频编码器50可开始于64×64宏块编码遍次,然后执行32×32宏块编码遍次,且以16×16宏块编
码遍次结束。而且,类似方法可用于编码包含多个宏块的其它经译码单元(例如,具有不同大小的宏块的切片)。举例来说,视频编码器50可应用类似于图13的方法的方法来选择用
于编码帧的切片(而不是完整帧)的最佳宏块大小。
[0194] 视频编码器50还可在特定经译码单元(例如,帧或切片)的标头中发射所述经译码单元的宏块的大小的识别符以供解码器使用。根据图13的方法,一种方法可包括:用
数字视频编码器接收数字视频流的经译码单元;计算对应于使用各自包含16×16像素的
第一多个块来编码所述经译码单元的速率-失真的第一速率-失真量度;计算对应于使
用各自包含大于16×16像素的第二多个块来编码所述经译码单元的速率-失真的第二速
率-失真量度;以及确定对于所述经译码单元来说所述第一速率-失真量度和所述第二速
率-失真量度中的哪一者最低。所述方法可进一步包括:当确定第一速率-失真量度为最
低时,使用第一多个块来编码所述经译码单元,且当确定第二速率-失真量度为最低时,使用第二多个块来编码所述经译码单元。
[0195] 图14为说明包括视频编码器/解码器CODEC 234的实例无线通信装置230的方框图,视频编码器/解码器CODEC 234可使用本发明中所描述的多种技术中的任一者、使用
大于标准的宏块来编码和/或解码数字视频数据。在图14的实例中,无线通信装置230包
括摄像机232、视频编码器-解码器(CODEC)234、调制器/解调器(调制解调器)236、收发
器238、处理器240、用户接口242、存储器244、数据存储装置246、天线248,和总线250。
[0196] 图14中所说明的包括于无线通信装置230中的组件可通过硬件、软件和/或固件的任何合适的组合来实现。在所说明的实例中,所述组件经描绘为单独单元。然而,在其它实例中,所述各种组件可集成于共同硬件和/或软件内的组合单元中。作为一个实例,存储器244可存储可由处理器240执行的对应于视频CODEC 234的各种功能的指令。作为另一
实例,摄像机232可包括执行视频CODEC 234的功能(例如,编码和/或解码视频数据)的
视频CODEC。
[0197] 在一个实例中,摄像机232可对应于视频源18(图1)。一般来说,摄像机232可记录由传感器阵列俘获的视频数据以产生数字视频数据。摄像机232可经由总线250将原始
的、所记录的数字视频数据发送到视频CODEC 234以用于编码,并接着发送到数据存储装
置246以用于数据存储。处理器240可经由总线250将关于记录视频的模式、记录视频的
帧速率、结束记录或改变帧速率模式的时间、将视频数据发送到视频CODEC 234的时间或
指示其它模式或参数的信号的信号发送到摄像机232。
[0198] 用户接口242可包含一个或一个以上接口(例如,输入和输出接口)。举例来说,用户接口242可包括触摸屏、小键盘、按钮、可充当取景器viewfinder的屏幕、麦克风、扬声器,或其它接口。当摄像机232接收视频数据时,处理器240可向摄像机232发信号以使其
将视频数据发送到用户接口242以显示在取景器上。
[0199] 视频CODEC 234可编码来自摄像机232的视频数据并解码经由天线248、收发器238和调制解调器236接收的视频数据。视频CODEC 234另外或替代性地可解码从数据存储
装置246接收的先前编码的数据以用于回放。视频CODEC 234可使用大于由常规视频编码
标准规定的宏块的大小的宏块来编码和/或解码数字视频数据。举例来说,视频CODEC234
可使用包含64×64像素或32×32像素的大宏块来编码和/或解码数字视频数据。可用根
据例如H.264标准的扩展等视频标准的宏块类型语法元素来识别大宏块。
[0200] 视频CODEC 234可执行视频编码器50(图2)和/或视频解码器60(图3)中的任一者或两者的功能,以及如本发明中所描述的任何其它编码/解码功能或技术。举例来说,CODEC 234可将大宏块分割成多种不同大小的较小分区,且针对选定的分区使用不同的译
码模式(例如,空间(I)或时间(P或B))。分区大小和译码模式的选择可基于所述分区大
小和译码模式的速率-失真结果。CODEC 234还可利用分层的经译码块模式(CBP)值来识
别大宏块内的具有非零系数的经译码宏块和分区。另外,在一些实例中,CODEC234可将大
宏块与小宏块的速率-失真量度进行比较以选择针对帧、切片或其它译码单元产生较有利
结果的宏块大小。
[0201] 用户可与用户接口242交互以经由调制解调器236、收发器238和天线248将数据存储装置246中的所记录的视频序列发射到另一装置(例如,另一无线通信装置)。可根据
例如MPEG-2、MPEG-3、MPEG-4、H.263、H.264或经受本发明中所描述的扩展或修改的其它视频编码标准等编码标准来编码所述视频序列。举例来说,还可使用大于标准的宏块来编码
所述视频序列,如本发明中所描述。无线通信装置230还可接收经编码的视频片段且将所
接收的视频序列存储于数据存储装置246中。
[0202] 所接收的经编码的视频序列的宏块可大于由常规视频编码标准指定的宏块。为了显示数据存储装置246中的经编码视频片段(例如,所记录的视频序列或所接收的视频片
段),视频CODEC 234可解码视频序列并将视频片段的经解码帧发送到用户接口242。当视
频序列包括音频数据时,视频CODEC 234可解码音频,或者无线通信装置230可进一步包括
用以解码音频的音频编解码器(未展示)。以此方式,视频CODEC 234可执行编码器的功能
与解码器的功能两者。
[0203] 图14的无线通信装置230的存储器244可经编码有计算机可读指令,所述计算机可读指令致使处理器240和/或视频CODEC 234执行各种任务(除了存储经编码的视频数
据之外)。可将所述指令从例如数据存储装置246等数据存储装置加载到存储器244中。
举例来说,所述指令可致使处理器240执行相对于视频CODEC 234所描述的功能。
[0204] 图15为说明实例分层的经译码块模式(CBP)260的方框图。CBP 260的实例一般对应于用于64×64像素宏块的语法信息的一部分。在图15的实例中,CBP 260包含CBP64
值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的实例中所展示。
[0205] 在另一实例中,当CBP64值262为具有值“0”的位时,CBP 260可仅由CBP64组成,因为值“0”可指示对应于CBP 260的块具有全零值系数。因此,那个块的所有分区同样将含有全零值系数。在一个实例中,当CBP64为具有值“1”的位,且CBP32值中的用于特定
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分区的多个例子。
[0206] 在图15的实例中,可根据各种方法(例如,根据图8和图9的方法)来计算用于四个16×16分区的四个CBP16值272、274、276、278。CBP16值272、274、276、278中的任一者或全部可包括“lumacbp16”值、transform_size_flag,和/或luma16×8_cbp。还可根
据如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/分区阶层中的相应层级处的分区中的一者。
[0207] 图16为说明对应于CBP 260(图15)的实例树结构280的方框图。CBP64节点282对应于CBP64值262,CBP32节点284、286、288、290各自对应于CBP32值264、266、268、270中的相应者,且CBP16节点292、294、296、298各自对应于CBP16值272、274、276、278中的相应者。以此方式,如本发明中所界定的经译码块模式值可对应于分层CBP。树中产生另
一分支的每一节点对应于为“1”的相应CBP值。在图15和图16的实例中,CBP64 282与
CBP32 286均具有值“1”,且产生具有可能为“1”的CBP值的进一步分区,即,在该处,下一个分区层级处的至少一个分区包括至少一个非零变换系数值。
[0208] 图17为说明用于使用经译码单元的语法信息来指示和选择用于所述经译码单元的视频块的基于块的语法编码器和解码器的实例方法的流程图。一般来说,除编码经译码
单元的多个视频块之外以及结合编码经译码单元的多个视频块,例如视频编码器20(图1)
的视频编码器可执行图17的步骤300到310。经译码单元可包含视频帧、切片,或图片群组
(还称作一“序列”)。除解码所述经译码单元的所述多个视频块之外以及结合解码所述经
译码单元的所述多个视频块,例如视频解码器30(图1)的视频解码器可执行图17的步骤
312到316。
[0209] 最初,视频编码器20可接收经译码单元(例如,帧、切片,或图片群组)的各种大小的块的集合(300)。根据本发明的技术,所述块中的一者或一者以上可包含大于16×16
像素(例如,32×32像素、64×64像素等)。然而,所述块不需要各自包括相同数目个像素。
一般来说,视频编码器20可使用相同的基于块的语法来编码所述块中的每一者。举例来
说,视频编码器20可使用分层的经译码块模式来编码所述块中的每一者,如上文所描述。
[0210] 视频编码器20可基于所述经译码单元的所述块集合中的最大块(即,最大块大小)而选择待使用的基于块的语法。最大块大小可对应于所述经译码单元中所包括的最大
宏块的大小。因此,视频编码器20可确定所述集合中的最大大小的块(302)。在图17的实
例中,视频编码器20还可确定所述集合中的最小大小的块(304)。如上文所论述,一块的分层的经译码块模式具有对应于所述块的分区是否具有非零的、经量化系数的长度。在一些
实例中,视频编码器20可将最小大小值包括于用于经译码单元的语法信息中。在一些实例
中,最小大小值指示所述经译码单元中的最小分区大小。以此方式,最小分区大小(例如,经译码单元中的最小块)可用于确定分层的经译码块模式的最大长度。
[0211] 视频编码器20可接着根据对应于最大块的语法来编码所述经译码单元的集合的每一块(306)。举例来说,假定最大块包含64×64像素块,则视频编码器20可使用例如上
文针对MB64_type所界定的语法的语法。作为另一实例,假定最大块包含32×32像素块,
则视频编码器20可使用例如上文针对MB32_type所界定的语法的语法。
[0212] 视频编码器20还产生经译码单元语法信息,所述经译码单元语法信息包括对应于经译码单元中的最大块和经译码单元中的最小块的值(308)。视频编码器20可接着将经
译码单元(包括用于经译码单元和经译码单元的块中的每一者的语法信息)发射到视频解
码器30。
[0213] 视频解码器30可从视频编码器20接收经译码单元和用于经译码单元的语法信息(312)。视频解码器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的
子分区。
[0214] 以此方式,视频解码器30可保持与现有译码标准(例如,H.264)向后兼容。举例来说,当经译码单元中的最大块包含16×16像素时,视频编码器20可在经译码单元语法信
息中指示此信息,且视频解码器30可应用基于标准H.264块的语法解码器。然而,当经译
码单元中的最大块包含大于16×16像素时,视频编码器20可在经译码单元语法信息中指
示此信息,且视频解码器30可根据本发明的技术而选择性地应用基于块的语法解码器以
解码经译码单元的块。
[0215] 在一个或一个以上实例中,可以硬件、软件、固件或其任何组合来实施所描述的功能。如果以软件来实施,则可将所述功能作为一个或一个以上指令或代码存储于计算机可读媒体上或经由计算机可读媒体进行传输。计算机可读媒体包括计算机存储媒体与通信媒
体(包括促进将计算机程序从一处传递到另一处的任何媒体)两者。存储媒体可为可由计
算机存取的任何可用媒体。以实例而非限制的方式,所述计算机可读媒体可包含RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置,或可用于载运或存储呈指令或数据结构的形式的所要程序代码并可由计算机存取的任何其它媒体。而且,
将任何连接适当地称为计算机可读媒体。举例来说,如果使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)或例如红外线、无线电和微波等无线技术从网站、服务器或其它远程源
发射软件,则同轴电缆、光纤电缆、双绞线、DSL或例如红外线、无线电和微波等无线技术包括在媒体的定义中。如本文中所使用的磁盘和光盘包括压缩光盘(CD)、激光光盘、光学光
盘、数字多功能光盘(DVD)、软盘和蓝光光盘,其中磁盘通常以磁方式再现数据,而光盘用激光以光学方式再现数据。上述各者的组合也应包括在计算机可读媒体的范围内。
[0216] 已描述了各种实例。这些和其它实例在所附权利要求书的范围内。