在视频译码中缓冲预测数据的设备和方法转让专利

申请号 : CN201280035931.4

文献号 : CN103688541B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 钱威俊郑云非翔林·王马尔塔·卡切维奇郭立威

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

摘要 :

在一实例中,本发明的方面涉及一种译码视频数据的方法,所述方法大体上包含确定视频数据块的预测信息,其中所述块包含于经译码视频数据单元中且定位于所述经译码单元中的上方相邻块的顶部行下方,且其中所述块的所述预测信息是基于来自所述经译码单元中的一个或一个以上其它块的预测信息,但并不基于来自所述经译码单元中的所述顶部行的块中的任一者的预测信息。所述方法还大体上包含基于所述所确定预测信息译码所述块。

权利要求 :

1.一种译码视频数据的方法,所述方法包括:

译码视频数据切片的第一最大经译码单元;

针对位于所述第一最大经译码单元之下、邻近所述第一最大经译码单元并且包含于所述视频数据切片的第二最大经译码单元中的当前视频数据块,识别一个或多个块以从所述一个或多个块中确定一个或多个最可能帧内预测模式,从而基于所述一个或多个块的位置来预测所述当前视频数据块的帧内预测模式,其中识别所述一个或多个块包括将所述第一最大经译码单元的任何块的位置排除在外;

基于经识别的所述一个或多个块的各自帧内预测模式确定所述一个或多个最可能帧内预测模式;以及基于所述一个或多个最可能帧内预测模式译码指示所述当前块的所述帧内预测模式的数据。

2.根据权利要求1所述的方法,其中所述第一最大经译码单元和所述第二最大经译码单元被包括在单个视频数据切片中。

3.根据权利要求1所述的方法,其中识别所述一个或多个块包括识别所述块的一个或多个左侧相邻块。

4.根据权利要求3所述的方法,其中识别所述一个或多个块包括识别直接邻近于所述块的一个或多个块。

5.根据权利要求3所述的方法,其中识别所述一个或多个块包含识别并非直接邻近于所述块的一个或多个块。

6.根据权利要求1所述的方法,其中识别所述一个或多个块包括识别第一左侧相邻第一块及定位于所述当前块下方的第二左侧相邻块。

7.根据权利要求1所述的方法,其中译码指示所述当前块的所述帧内预测模式的所述数据包括编码所述数据块,且其中所述方法进一步包括:使用所述当前块的所述帧内预测模式确定所述当前块的残余值;以及编码所述残余值并编码在经编码位流中指示所述当前块的所述帧内预测模式的所述数据。

8.根据权利要求1所述的方法,其中译码指示所述当前块的所述帧内预测模式的所述数据包括解码所述数据,且其中所述方法进一步包括:解码所述当前块的残余值;

使用所述当前块的所述帧内预测模式帧内预测所述块;以及

组合所述块的所述帧内预测残余值与所接收残余值。

9.一种用于译码视频数据的设备,所述设备包括:

存储器,其经配置以存储视频数据;及

经配置以进行以下操作的一个或多个处理器:

译码所述视频数据切片的第一最大经译码单元;

针对位于所述第一最大经译码单元之下、邻近所述第一最大经译码单元并且包含于所述视频数据切片的第二最大经译码单元中的当前视频数据块,识别一个或多个块以从所述一个或多个块中确定一个或多个最可能帧内预测模式,从而基于所述一个或多个块的位置来预测所述当前视频数据块的帧内预测模式,其中为了识别所述一个或多个块,所述一个或多个处理器将所述第一最大经译码单元的任何块的位置排除在外;

基于经识别的所述一个或多个块的各自帧内预测模式确定所述一个或多个最可能帧内预测模式;以及基于所述一个或多个最可能帧内预测模式译码指示所述当前块的所述帧内预测模式的数据。

10.根据权利要求9所述的设备,其中所述第一最大经译码单元和所述第二最大经译码单元包括在单个视频数据切片中。

11.根据权利要求9所述的设备,其中为了识别所述一个或多个块,所述一个或多个处理器经配置以识别所述当前块的一个或多个左侧相邻块。

12.根据权利要求11所述的设备,其中为了识别所述一个或多个块,所述一个或多个处理器经配置以识别直接邻近于所述当前块的一个或多个块。

13.根据权利要求11所述的设备,其中为了识别所述一个或多个块,所述一个或多个处理器经配置以识别并非直接邻近于所述当前块的一个或多个块。

14.根据权利要求9所述的设备,其中为了识别所述一个或多个块,所述一个或多个处理器经进一步配置以识别第一左侧相邻第一块及定位于所述当前块下方的第二左侧相邻块。

15.根据权利要求9所述的设备,其中所述设备包括视频编码器,且其中为了译码指示所述当前块的所述帧内预测模式的所述数据,所述一个或多个处理器经配置以编码所述数据,且其中所述一个或多个处理器进一步经配置以:使用所述当前块的所述帧内预测模式确定所述当前块的残余值;以及编码所述残余值并编码在经编码位流中指示所述当前块的所述帧内预测模式的所述数据。

16.根据权利要求9所述的设备,其中所述设备包括视频解码器,其中为了译码指示所述当前块的所述帧内预测模式的所述数据,所述一个或多个处理器经配置以解码所述数据,且其中所述一个或多个处理器进一步经配置以:解码所述当前块的残余值;

使用所述当前块的所述帧内预测模式帧内预测所述块;以及

组合所述块的所述帧内预测残余值与所接收残余值。

17.一种用于译码视频数据的设备,所述设备包括:

用于译码视频数据切片的第一最大经译码单元的装置;

用于针对位于所述第一最大经译码单元之下、邻近所述第一最大经译码单元并且包含于所述视频数据切片的第二最大经译码单元中的当前视频数据块,识别一个或多个块以从所述一个或多个块中确定一个或多个最可能帧内预测模式,从而基于所述一个或多个块的位置来预测所述当前视频数据块的帧内预测模式的装置,其中用于识别所述一个或多个块的装置包括用于将所述第一最大经译码单元的任何块的位置排除在外的装置;

用于基于所述一个或多个块的各自帧内预测模式确定所述一个或多个最可能帧内预测模式的装置;以及用于基于所述一个或多个最可能帧内预测模式译码指示所述当前块的所述帧内预测模式的数据的装置。

18.根据权利要求17所述的设备,其中所述第一最大经译码单元和所述第二最大经译码单元包括在单个视频数据切片中。

19.根据权利要求17所述的设备,其中用于识别所述一个或多个块的装置包括用于识别所述块的一个或多个左侧相邻块的装置。

20.根据权利要求17所述的设备,其中用于识别所述一个或多个块的所述装置包括用于识别第一左侧相邻第一块及定位于所述当前块下方的第二左侧相邻块。

说明书 :

在视频译码中缓冲预测数据的设备和方法

[0001] 本申请案主张2011年7月20日申请的第61/509,933号美国临时申请案及2011年8月10日申请的第61/522,136号美国临时申请案的优先权,所述临时申请案中的每一者的内容特此以全文引用的方式并入。

技术领域

[0002] 本发明涉及视频译码,且更具体来说涉及视频数据的熵译码。

背景技术

[0003] 数字视频能力可并入到广泛范围的装置中,所述装置包含数字电视、数字直播系统、无线广播系统、个人数字助理(PDA)、膝上型或桌上型计算机、平板计算机、电子书阅读器、数码相机、数字记录装置、数字媒体播放器、视频游戏装置、视频游戏机、蜂窝式或卫星无线电电话、所谓的“智能电话”、视频电传会议装置、视频流式发射装置等等。数字视频装置实施例如以下各者等视频压缩技术:描述于由MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4第10部分(高级视频译码(AVC))定义的标准、目前在开发中的高效率视频译码(HEVC)标准及这些标准的扩展中的视频压缩技术。视频装置可通过实施这些视频压缩技术而更有效率地发射、接收、编码、解码及/或存储数字视频信息。
[0004] 视频压缩技术执行空间(图片内)预测及/或时间(图片间)预测以减小或移除视频序列中所固有的冗余。对于基于块的视频译码,可将视频切片(即,视频图片或视频图片的一部分)分割成视频块,其还可被称作树型块、译码单元(CU)及/或译码节点。使用关于同一图片中的相邻块中的参考样本的空间预测来编码图片的帧内译码(I)的切片中的视频块。图片的帧间译码(P或B)切片中的视频块可使用关于同一图片中的相邻块中的参考样本的空间预测或关于其它参考图片中的参考样本的时间预测。
[0005] 空间或时间预测引起针对待译码的块的预测性块。残余数据表示待译码的原始块与预测性块之间的像素差。根据指向形成预测性块的参考样本的块的运动向量及指示经译码块与预测性块之间的差异的残余数据来编码帧间译码块。根据帧内译码模式及残余数据来编码帧内译码块。为了进行进一步压缩,可将残余数据从像素域变换到变换域,从而得到残余变换系数,可接着量化残余变换系数。可扫描最初在二维阵列中配置的经量化的变换系数以便产生变换系数的一维向量,且可应用熵译码以达成甚至更多压缩。

发明内容

[0006] 一般来说,本发明描述用于译码视频数据的技术。举例来说,本发明的所述技术包含减小在视频译码中执行预测技术时经缓冲的数据的量。即,空间预测(即,帧内预测)或时间预测(即,帧间预测)可用以减小或移除视频序列中的冗余。在基于块的视频译码中,可将来自一个块的视频数据用作一个或一个以上其它视频数据块的预测信息。与当前正译码的块的一个或一个以上相邻块相关联的预测信息可经存储(即,缓冲),使得此预测信息可用于译码所述当前块。本发明的所述技术涉及限制在译码期间所缓冲的来自相邻块的预测信息的量。根据本发明的一些方面,一种视频译码装置在译码当前块时可避免使用来自定位于当前正被译码的视频数据块上方的视频数据块(例如,称作“上方相邻块”)的预测信息。
[0007] 在一实例中,本发明的方面涉及一种译码视频数据的方法,所述方法包含:确定视频数据块的预测信息,其中所述块包含于经译码视频数据单元中且定位于所述经译码单元中的上方相邻块的顶部行下方,且其中所述块的所述预测信息是基于来自所述经译码单元中的一个或一个以上其它块的预测信息,但并不基于来自所述经译码单元中的所述顶部行的块中的任一者的预测信息;以及基于所述所确定预测信息译码所述块。
[0008] 在另一实例中,本发明的方面涉及一种用于译码视频数据的设备。在此实例中,所述设备包含一个或一个以上处理器,所述一个或一个以上处理器经配置以:确定视频数据块的预测信息,其中所述块包含于经译码视频数据单元中且定位于所述经译码单元中的上方相邻块的顶部行下方,且其中所述块的所述预测信息是基于来自所述经译码单元中的一个或一个以上其它块的预测信息,但并不基于来自所述经译码单元中的所述顶部行的块中的任一者的预测信息;以及基于所述所确定预测信息译码所述块。
[0009] 在另一实例中,本发明的方面涉及一种存储有指令的非暂时性计算机可读存储媒体,所述指令在执行时致使一个或一个以上处理器进行以下操作:确定视频数据块的预测信息,其中所述块包含于经译码视频数据单元中且定位于所述经译码单元中的上方相邻块的顶部行下方,且其中所述块的所述预测信息是基于来自所述经译码单元中的一个或一个以上其它块的预测信息,但并不基于来自所述经译码单元中的所述顶部行的块中的任一者的预测信息;以及基于所述所确定预测信息译码所述块。
[0010] 在另一实例中,本发明的方面涉及一种用于译码视频数据的设备。在此实例中,所述设备包含:用于确定视频数据块的预测信息的装置,其中所述块包含于经译码视频数据单元中且定位于所述经译码单元中的上方相邻块的顶部行下方,且其中所述块的所述预测信息是基于来自所述经译码单元中的一个或一个以上其它块的预测信息,但并不基于来自所述经译码单元中的所述顶部行的块中的任一者的预测信息;以及用于基于所述所确定预测信息译码所述块的装置。
[0011] 本发明的一个或一个以上方面的细节陈述于附图及下文的描述中。本发明中所描述的技术的其它特征、目标及优点将从描述及图式且从权利要求书而显而易见。

附图说明

[0012] 图1是说明可利用本发明中所描述的技术的实例视频编码及解码系统的框图。
[0013] 图2是说明可实施本发明中所描述的技术的实例视频编码器的框图。
[0014] 图3是说明可实施本发明中所描述的技术的实例视频解码器的框图。
[0015] 图4A及4B是说明实例四叉树及对应的最大译码单元(LCU)的概念图。
[0016] 图5是说明可根据其确定最可能的帧内模式的实例相邻块的图。
[0017] 图6是说明运动向量预测因子候选者的实例位置的图。
[0018] 图7是说明可根据其确定用于译码块的预测信息的实例相邻块的图。
[0019] 图8是说明可根据其确定用于译码块的预测信息的实例相邻块的另一图。
[0020] 图9是说明可根据其确定用于译码块的预测信息的实例相邻块的另一图。
[0021] 图10是说明可根据其确定用于译码块的预测信息的实例相邻块的另一图。
[0022] 图11是说明截割一个或一个以上相邻块的预测信息的实例的概念图。
[0023] 图12是说明截割一个或一个以上相邻块的预测信息的实例的另一概念图。
[0024] 图13是说明最大译码单元的边界译码单元的框图。
[0025] 图14是说明用于减小在视频译码期间经缓冲的预测信息的量的实例技术的流程图。
[0026] 图15是说明用于减小在执行帧内预测时经缓冲的预测信息的量的实例技术的流程图。
[0027] 图16是说明用于减小在执行帧内预测时经缓冲的预测信息的量的实例技术的流程图。
[0028] 图17是说明用于减小在执行帧间预测时经缓冲的预测信息的量的实例技术的流程图。
[0029] 图18是说明用于减小在执行帧间预测时经缓冲的预测信息的量的实例技术的流程图。

具体实施方式

[0030] 视频译码装置可试图通过利用空间及/或时间冗余来压缩视频数据。举例来说,视频编码器可通过相对于相邻的先前译码的块来译码块而利用空间冗余。同样,视频编码器可通过相对于先前译码的图片的数据译码块来利用时间冗余。明确地说,视频编码器可根据空间相邻块的数据或根据先前经译码图片的数据预测当前块。视频编码器可接着将块的残余计算为块的实际像素值与块的所预测像素值之间的差。因而,块的残余可包含像素(或空间)域中的逐像素差值。
[0031] 关于帧内译码,视频编码器可根据预定义的帧内预测模式产生预测性块。视频编码器可从当前正编码的块的值减去预测性块的值以产生残余数据块。视频编码器可在经编码位流中传信帧内预测模式及残余数据块,所述经编码位流可由视频解码器解码。解码器可产生相同预测性块(例如,使用相同帧内预测模式),且通过组合残余数据与预测性块的数据来重建经编码视频块。
[0032] 新兴HEVC标准可使用多达35或35个以上帧内预测模式。为了减小传信由视频编码器选择的帧内预测模式所需的位的数目,视频编码器可识别已译码的视频块(例如,一个或一个以上空间相邻块)的帧内预测模式。基于这些相邻块的帧内预测模式,视频编码器可识别当前视频块的最可能帧内预测模式。最可能帧内预测模式表示基于当前视频块的上下文的最有可能用于编码当前块的帧内预测模式。上下文可(例如)由用于相邻块的帧内预测模式、当前块的大小及其它因子的某一组合来定义。由视频编码器使用以确定当前视频块的上下文的因子也为可由视频解码器辨别的。因此,视频编码器所确定的最可能帧内预测模式还可由视频解码器确定,而不必显式地传信到视频解码器。最可能帧内预测模式可能或可能不与实际用以编码当前块的帧内预测模式相同。实际帧内预测模式可由视频编码器基于哪一帧内预测模式产生经重建视频的最佳质量来确定。
[0033] 视频编码器可产生用于包含于位流中的指示最可能帧内预测模式是否与当前视频块的实际预测模式相同的语法元素。语法元素可(例如)为单一位,其中“1”指示实际帧内预测模式为最可能帧内预测模式,且“0”指示实际帧内预测模式并非最可能帧内预测模式。因此,当当前视频块的实际帧内预测模式为最可能帧内预测模式时,可使用单一位(在此实例中为“1”)将当前视频块的实际帧内预测模式从编码器传信到解码器。在实际帧内预测模式并非最可能帧内预测模式的例子中,可通过第一位之后的码字(即,为“0”的第一位继之以码字)传信实际帧内预测。
[0034] 关于帧间译码,视频编码器可产生运动向量以(例如)根据另一视频图片或切片来识别预测性视频数据块,其可用以预测当前正编码的块的值。视频编码器可从当前块的值减去预测性块的值以产生残余数据块。一般来说,视频编码器可在可由视频解码器解码的经编码位流中传信运动向量及残余数据。解码器可在经解码图片缓冲器中的一组经解码块中找出同一预测性块(例如,基于运动向量),且通过组合残余数据与预测性块的数据来重建经编码视频块。
[0035] 在一些状况下,还应用运动向量的预测性译码以进一步减小传达运动向量所需的数据量。在此状况下,并非编码并传达运动向量自身,而是编码器编码并传达相对于已知(或可知)运动向量的运动向量差(MVD)。可与MVD一起使用以定义当前运动向量的已知运动向量可通过所谓的运动向量预测因子(MVP)来定义。
[0036] 可实施在即将到来的HEVC标准中称作自适应运动向量预测(AMVP)的过程,其中运动向量候选者集合是根据空间及时间方向上的若干相邻块而建置。运动向量候选者集合包含针对MVP的多个候选者。在此状况下,视频编码器基于对编码率及失真的分析(例如,使用所谓速率失真成本分析)而从候选者集合选择最准确的预测因子。可将运动向量预测因子索引(mvp_idx)发射到视频解码器以告知解码器在何处找到MVP,即,哪一MVP候选者将用于解码。还传达MVD。解码器可组合MVD与MVP(由运动向量预测因子索引定义),以便重建运动向量。
[0037] 所谓“合并模式”也可为可用的,在所述模式中,正被译码的当前视频块继承了相邻视频块的运动信息(例如,运动向量、参考预测索引、预测方向或其它信息)。索引值可用以识别当前视频块从哪一相邻块继承其运动信息(例如,相对于时间上邻近的帧在顶部、右上、左侧或相同定位)。合并模式使用来自若干个候选块中的一者的运动信息,但并不依赖于MVD。
[0038] 因此,本发明大体上将“预测信息”称作用于产生预测性视频数据块的帧内预测信息及/或帧间预测信息。即,关于帧内译码,预测信息可指代用于译码视频数据块的帧内译码模式。在相邻块的帧内译码模式被用于译码块(例如,使用上文所描述的最可能模式导出过程)的实例中,预测信息还可指代这些相邻帧内译码模式。另外或替代性地,对于帧间预测来说,预测信息可指代用以译码视频数据块的运动信息(例如,运动向量、参考图片索引、预测方向,或其它信息)。在相邻块的运动信息被用于译码块(例如,使用上文所描述的AMVP及合并模式过程)的实例中,预测信息还可指代这些相邻运动信息。
[0039] 在任何状况下,预测信息可存储到所谓“线缓冲器”,使得预测信息在译码期间可用于参考。关于帧内译码,视频译码器可存储针对每一块的帧内预测模式。关于帧间译码,视频译码器可存储针对每一块的运动信息(例如,运动向量(mvx,mvy)、参考图片索引(ref_idx)、预测方向(inter_dir),或其它信息)。线缓冲器可存储与定位于当前正译码的块或切片上方且通常延伸越过图片的整个宽度的一行块相关联的预测信息。
[0040] 线缓冲器可包含可由视频译码器存取的存储器。线缓冲器可在缓冲整个帧的预测信息(其可为相对大量数据)与缓冲待在译码期间存取的具有最高可能性的预测信息之间求得平衡。即,在一些实例中,仅最频繁使用的预测信息可存储到线缓冲器以便使缓冲器的大小尽可能小。
[0041] 然而,随着视频分辨率及帧的宽度(例如,从右向左越过给定视频帧的像素的数目)增大,存储于线缓冲器中的数据量也增大。在一些实例中,小达4×4个像素的视频数据块可用以译码图片。作为一实例,1920×1080像素图片(例如,对于1080p视频来说)可包含多达495个4×4像素块。因此,如果存储每一视频数据块的预测信息,则可需要视频译码器将相对大量的数据存储到线缓冲器。
[0042] 本发明的技术大体上涉及限制或减小在译码期间经缓冲的来自相邻块的预测信息量。举例来说,并非在译码当前块时使用上方相邻块的预测信息,而是在一些实施例中,视频译码装置可基于来自左侧相邻块的预测信息来确定预测信息。在其它实例中,视频译码装置可基于来自上方相邻块的数据来确定预测信息,但仅在当前块是较大分割区(例如,如下文更详细描述,在新兴高效率视频译码(HEVC)标准中称作最大译码单元(LCU))的子块,且此子块并不与另一LCU接界时才这样做。如下文所描述的多种其它技术也可用以减小在视频译码期间经缓冲的预测性信息的量。
[0043] 根据本发明的技术,限制经缓冲的数据量可减小与译码视频数据相关联的复杂性。举例来说,本发明的方面可允许视频译码装置缓冲较少数据,进而减小与此缓冲相关联的存储器要求。此外,减少预测信息所来源于的位置可改进熵译码效率及/或吞吐量。举例来说,本发明的技术可经实施以改进剖析吞吐量。即,随着视频译码器接收视频数据,可根据特定剖析过程(例如,波前剖析)来剖析(例如,读取及分段)视频数据。在一些实例中,剖析过程可包含在剖析一个或一个以上初始LCU(例如,切片中的最上及/或最左LCU)之后剖析切片的每一LCU。剖析LCU可允许视频译码器形成多个处理线程(例如,用于并行处理),其中每一线程包含一个或一个以上经剖析LCU。
[0044] 然而,归因于预测信息相依性,某些线程可依赖于其它线程,此情形对于并行处理应用程序可能非最佳的。举例来说,第一线程可依赖于由第二不同线程处理的数据,此情形可使得第一线程等待,直到第二线程已处理了数据为止。即,通常直到数据为有用的点才剖析数据,且接着数据被译码。在常规波前的状况下,视频译码器可减缓译码第一(例如,顶部)波前的数据。彼情形又可使得下一线程停止,所述使下一线程停止使得再下一线程停止,等等。根据本发明的方面,通过消除预测信息相依性,一个线程减缓将不影响正被处理的其它线程。关于剖析,这意味着线程的剖析器不需要参考其它线程,而是可针对每一线程独立地操作。
[0045] 在一个实例中,为了说明的目的,假设当前正被译码的LCU定位于切片的顶部行下方,其中切片的一个或一个以上LCU定位于当前切片上方。在此实例中,用于译码当前LCU的预测信息可包含于上部相邻LCU(例如,定位于当前LCU上方的LCU)中。即,用于译码当前LCU的预测信息可依赖于上部相邻LCU的一个或一个以上值(例如,帧内预测模式、运动信息或其类似者)。因此,当前LCU在可译码当前LCU之前可能必须等待上部相邻LCU被译码。引入此潜时可减缓译码过程,特别是在并行处理应用程序中。可实施本发明的方面以减小此相依性,进而减小上述潜时的可能性。
[0046] 图1是说明可利用用于有效存储预测信息的技术的实例视频编码及解码系统10的框图。如图1中所展示,系统10包含源装置12,源装置12提供稍后待由目的地装置14解码的经编码视频数据。明确地说,源装置12经由计算机可读媒体16将视频数据提供到目的地装置14。源装置12及目的地装置14可包括广泛范围的装置中的任一者,包含桌上型计算机、笔记型(即,膝上型)计算机、平板计算机、机顶盒、电话手持机(例如,所谓“智能”电话)、所谓“智能”板、电视、摄影机、显示装置、数字媒体播放器、视频游戏机、视频流式发射装置,或其类似者。在一些状况下,源装置12及目的地装置14可经配备以进行无线通信。
[0047] 目的地装置14可经由计算机可读媒体16接收待解码的经编码视频数据。计算机可读媒体16可包括能够将经编码视频数据从源装置12移动到目的地装置14的任何类型的媒体或装置。在一个实例中,计算机可读媒体16可包括用以使源装置12能够将经编码视频数据直接实时发射到目的地装置14的通信媒体。可根据通信标准(例如,无线通信协议)调制经编码视频数据,且将经编码视频数据发射到目的地装置14。通信媒体可包括任何无线或有线通信媒体,例如,射频(RF)频谱或一个或一个以上实体传输线。通信媒体可形成基于封包的网络(例如,区域网络、广域网络或例如因特网等全球网络)的部分。通信媒体可包含路由器、交换器、基站,或可用以促进从源装置12到目的地装置14的通信的任何其它设备。
[0048] 在一些实例中,经编码数据可从输出接口22输出到存储装置。类似地,可通过输入接口从存储装置存取经编码数据。存储装置可包含多种分散式或本端存取的数据存储媒体中的任一者,例如,硬盘驱动器、蓝光光盘、DVD、CD-ROM、闪存存储器、易失性或非易失性存储器,或用于存储经编码视频数据的任何其它合适数字存储媒体。在又一实例中,存储装置可对应于可存储由源装置12产生的经编码视频的文件服务器或另一中间存储装置。目的地装置14可经由流式发射或下载而从存储装置存取所存储视频数据。文件服务器可为能够存储经编码视频数据且将所述经编码视频数据发射到目的地装置14的任何类型的服务器。实例文件服务器包含网络服务器(例如,针对网站)、FTP服务器、网络附接存储(NAS)装置,或本地磁盘驱动器。目的地装置14可经由任何标准数据连接(包含因特网连接)而存取经编码视频数据。此数据连接可包含适合于存取存储于文件服务器上的经编码视频数据的无线信道(例如,Wi-Fi连接)、有线连接(例如,DSL、缆线调制解调器,等等),或两者的组合。经编码视频数据从存储装置的发射可为流式发射、下载发射,或其组合。
[0049] 本发明可大体上涉及视频编码器20将某信息“传信”到例如视频解码器30等另一装置。然而,应理解,视频编码器20可通过使某些语法元素与视频数据的各种经编码部分相关联来传信信息。即,视频编码器20可通过将某些语法元素存储到视频数据的各种经编码部分的标头来“传信”数据。在一些状况下,这些语法元素可在由视频解码器30接收并解码之前经编码并存储(例如,存储到存储媒体34或文件服务器36)。因此,术语“传信”可通常指代用于解码经压缩视频数据的语法或其它数据的传达,不管此传达是实时或几乎实时抑或在时间跨度上(例如当在编码时将语法元素存储到记录媒体,所述语法元素可接着在存储到此媒体之后的任何时间由解码装置检索时可能发生)发生。
[0050] 本发明的技术(所述技术大体上涉及预测数据的有效存储)未必限于无线应用或设定。所述技术可应用于支持多种多媒体应用中的任一者的视频译码,所述多媒体应用例如是空中电视广播、有线电视发射、卫星电视发射、因特网流式视频发射(例如HTTP上的动态适应性流式发射(DASH))、编码到数据存储媒体上的数字视频、存储于数据存储媒体上的数字视频的解码,或其它应用。在一些实例中,系统10可经配置以支持单向或双向视频发射以支持例如视频流式发射、视频回放、视频广播及/或视频电话等应用。
[0051] 在图1的实例中,源装置12包含视频源18、视频编码器20及输出接口22。目的地装置14包含输入接口28、视频解码器30及显示装置32。根据本发明,源装置12的视频编码器20可经配置以应用用于译码运动向量且用于在HEVC及其扩展(例如,多视角或三维视频(3DV)扩展)中执行双向预测的技术。在其它实例中,源装置及目的地装置可包含其它组件或配置。举例来说,源装置12可从外部视频源18(例如,外部摄影机)接收视频数据。同样地,目的地装置14可与外部显示装置接口连接,而非包含集成式显示装置。
[0052] 图1的所说明系统10仅为一个实例。可通过任何数字视频编码及/或解码装置来执行用于有效存储预测数据的技术。尽管通常本发明的技术是由视频编码装置来执行,但所述技术还可由视频编码器/解码器(通常被称作“CODEC”)来执行。此外,还可由视频预处理器执行本发明的技术。源装置12及目的地装置14仅为这些译码装置的实例,其中源装置12产生用于发射到目的地装置14的经译码视频数据。在一些实例中,装置12、14可以实质上对称的方式操作,使得装置12、14中的每一者包含视频编码及解码组件。因此,系统10可支持视频装置12、14之间的单向或双向视频发射,(例如)以用于视频流式发射、视频回放、视频广播或视频电话。
[0053] 源装置12的视频源18可包含视频俘获装置,例如,视频摄影机、含有先前俘获的视频的视频存档,及/或接收来自视频内容提供者的视频的视频馈入接口。作为另一替代例,视频源18可产生基于计算机图形的数据作为来源视频,或实况视频、存档视频及计算机产生的视频的组合。在一些状况下,如果视频源18为视频摄影机,则源装置12与目的地装置14可形成所谓相机电话或视频电话。然而,如上文所提及,本发明中所描述的技术可一般适用于视频译码,且可应用于无线及/或有线应用。在每一状况下,可由视频编码器20编码经俘获、经预俘获或计算机产生的视频。经编码视频信息可接着由输出接口22输出到计算机可读媒体16上。
[0054] 计算机可读媒体16可包含暂态媒体,例如无线广播或有线网络传输;或存储媒体(即,非暂时性存储媒体),例如硬盘、闪存盘、光盘、数字视频光盘、蓝光光盘,或其它计算机可读媒体。在一些实例中,网络服务器(未图示)可从源装置12接收经编码视频数据,并(例如)经由网络发射将经编码视频数据提供到目的地装置14。类似地,媒体生产设施(例如,光盘压制设施)的计算装置可从源装置12接收经编码视频数据,并生产含有经编码视频数据的光盘。因此,在各种实例中,可理解计算机可读媒体16包含具有各种形式的一个或一个以上计算机可读媒体。
[0055] 目的地装置14的输入接口28接收来自计算机可读媒体16的信息。计算机可读媒体16的信息可包含由视频编码器20定义的语法信息(其也由视频解码器30使用),所述语法信息包含描述块及其它经译码单元(例如,GOP)的特性及/或处理的语法元素。明确地说,本发明将“经译码单元”称作数据单元,所述数据单元包含例如切片、图片、波前集合或图块等多个块。因此,应将术语“经译码单元”理解为包含多个块,例如,多个最大译码单元(LCU)。此外,不应将术语“经译码单元”与如在HEVC中使用的术语“译码单元”或CU混淆。显示装置32向用户显示经解码的视频数据,且可包括多种显示装置中的任一者,例如,阴极射线管(CRT)、液晶显示器(LCD)、等离子体显示器、有机发光二极管(OLED)显示器或另一类型的显示装置。
[0056] 视频编码器20及视频解码器30可根据例如目前在开发中的高效率视频译码(HEVC)标准等视频译码标准而操作,且可符合HEVC测试模型(HM)。HEVC的最新工作草案(WD)(且下文称作HEVC WD7)可从http://phenix.int-evry.fr/jct/doc_end_user/documents/9_Geneva/wg11/JCTVC-I1003-v5.zip获得,较新版本可从http://phenix.int-evry.fr/jct/doc_end_user/documents/9_Geneva/wg11/JCTVC-I1003-v6.zip获得,所述两个版本特此如同被全文阐述一般以引用的方式并入本文中。或者,视频编码器20及视频解码器30可根据其它专属或工业标准(例如,ITU-T H.264标准,替代地被称作MPEG-4,第10部分,高级视频译码(AVC))或这些标准的扩展而操作。然而,本发明的技术不限于任何特定译码标准。视频译码标准的其它实例包含MPEG-2及ITU-T H.263。
[0057] 作为被称为联合视频小组(JVT)的集体合作的产物,ITU-T H.264/MPEG-4(AVC)标准是由ITU-T视频译码专家组(VCEG)连同ISO/IEC动画专家组(MPEG)制定。在一些方面中,可将本发明中所描述的技术应用于大体上符合H.264标准的装置。H.264标准由ITU-T研究组在ITU-T推荐标准H.264“用于通用影音服务的高级视频译码(Advanced Video Coding for generic audiovisual services)”中描述且发布于2005年3月,所述H.264标准可在本文中被称作H.264标准或H.264规范,或H.264/AVC标准或规范。联合视频小组(JVT)继续致力于对H.264/MPEG-4AVC的扩展。
[0058] JCT-VC正致力于HEVC标准的开发。HEVC标准化努力是基于视频译码装置的演进型模型(被称作HEVC测试模型(HM))。HM设想了视频译码装置相对于根据(例如)ITU-T H.264/AVC的现有装置的若干额外能力。举例来说,H.264提供九个帧内预测编码模式,而HM可提供多达三十三个帧内预测编码模式。
[0059] 一般来说,HM的工作模型描述:视频帧或图片可划分成包含明度样本及色度样本两者的树型块或最大译码单元(LCU)的序列。位流内的语法数据可定义LCU的大小,LCU为就像素数目来说的最大译码单元。切片包含呈译码次序的多个连续树型块。视频图片可被分割成一个或一个以上切片。每一树型块可根据四叉树而分裂成数个译码单元(CU)。一般来说,四叉树数据结构包含每CU一个节点,其中根节点对应于树形块。如果CU被分裂成四个子CU,则对应于CU的节点包含四个叶节点,其中每一叶节点对应于子CU中的一者。
[0060] 四叉树数据结构中的每一节点可提供对应CU的语法数据。举例来说,四叉树中的节点可包含分裂旗标,所述分裂旗标指示对应于节点的CU是否被分裂成子CU。CU的语法元素可被递归式地定义,且可视CU是否被分裂成子CU而定。如果CU不被进一步分裂,则可将CU称作叶CU。在本发明中,叶CU的四个子CU也将称作叶CU,即使不存在原始叶CU的显式分裂也是这样。举例来说,如果16×16大小的CU未经进一步分裂,则四个8×8子CU也将被称作叶CU,尽管16×16CU从未被分裂。
[0061] CU具有与H.264标准的宏块类似的用途,只是CU不具有大小区别。举例来说,可将树形块分裂成四个子节点(也称作子CU),且每一子节点又可为上代节点,并被分裂成另外四个子节点。被称作四叉树的叶节点的最终不能分裂的子节点包括也称作叶CU的译码节点。与经译码位流相关联的语法数据可定义被称作最大CU深度的树型块可分裂的最大次数,且也可定义译码节点的最小大小。因此,位流也可定义最小译码单元(SCU)。本发明使用术语“块”来指代HEVC的上下文中的CU、PU或TU中的任一者,或其它标准的上下文中的类似数据结构(例如,H.264/AVC中的宏块及其子块)。此外,本发明可使用术语“经译码单元”来描述预定义的数量的视频数据,所述预定义的数量的视频数据可包含两个或两个以上视频数据块。即,例如,经译码单元可指代图片、切片、图块或图块集合、波前集合,或包含视频数据的任何其它预定义单元。因此,不应将术语“经译码单元”与术语“译码单元”或CU混淆。
[0062] CU包含译码节点及与所述译码节点相关联的预测单元(PU)及变换单元(TU)。CU的大小对应于译码节点的大小,且形状必须为正方形。CU的大小可在从8×8像素直到具有最大64×64像素或大于64×64像素的树型块的大小的范围内。每一CU可含有一个或一个以上PU及一个或一个以上TU。与CU相关联的语法数据可描述(例如)将CU分割成一个或一个以上PU。分割模式可在CU是经跳过或直接模式编码、经帧内预测模式编码抑或经帧间预测模式编码之间而不同。PU的形状可分割成非正方形。与CU相关联的语法数据还可描述(例如)根据四叉树将CU分割成一个或一个以上TU。TU的形状可为正方形或非正方形(例如,矩形)。
[0063] HEVC标准允许根据TU的变换,其对于不同CU可为不同的。TU通常基于针对经分割LCU定义的给定CU内的PU的大小而设定大小,尽管此情形可能并非总是为所述状况。TU的大小通常与PU相同或小于PU。在一些实例中,可使用称为“残余四叉树”(RQT)的四叉树结构将对应于CU的残余样本再分成数个较小单元。RQT的叶节点可被称作变换单元(TU)。与TU相关联的像素差值可经变换以产生可经量化的变换系数。
[0064] 叶CU可包含一个或一个以上预测单元(PU)。一般来说,PU表示对应于对应CU的全部或一部分的空间区域,且可包含用于检索PU的参考样本的数据。此外,PU包含关于预测的数据。举例来说,当PU经帧内模式编码时,PU的数据可包含于残余四叉树(RQT)内,所述残余四叉树(RQT)可包含描述对应于PU的TU的帧内预测模式的数据。作为另一实例,当PU经帧间模式编码时,PU可包含定义所述PU的一个或一个以上运动向量的数据。定义PU的运动向量的数据可描述(例如)运动向量的水平分量、运动向量的垂直分量、运动向量的分辨率(例如,四分之一像素精度或八分之一像素精度)、运动向量所指向的参考图片,及/或运动向量的参考图片列表(例如,列表0、列表1或列表C)。
[0065] 具有一个或一个以上PU的叶CU还可包含一个或一个以上变换单元(TU)。如上文所论述,可使用RQT(也称作TU四叉树结构)来指定变换单元。举例来说,分裂旗标可指示叶CU是否被分裂成四个变换单元。接着,每一变换单元可被进一步分裂成其它子TU。当TU不被进一步分裂时,可将TU称作叶TU。通常,对于帧内译码来说,属于叶CU的所有叶TU共享同一帧内预测模式。即,大体上将同一帧内预测模式应用于计算叶CU的所有TU的预测值。对于帧内译码来说,视频编码器20可使用帧内预测模式计算每一叶TU的残余值,作为CU的对应于所述TU的部分与原始块之间的差。TU未必限于PU的大小。因此,TU可大于或小于PU。对于帧内译码来说,可使PU与同一CU的对应叶TU相同定位。在一些实例中,叶TU的最大大小可对应于对应叶CU的大小。
[0066] 此外,还可使叶CU的TU与称作残余四叉树(RQT)的相应四叉树数据结构相关联。即,叶CU可包含指示叶CU被分割成TU的方式的四叉树。TU四叉树的根节点通常对应于叶CU,而CU四叉树的根节点通常对应于树型块(或LCU)。RQT的未经分裂的TU被称作叶TU。一般来说,除非另有注释,否则本发明使用术语CU及TU来分别指代叶CU及叶TU。
[0067] 视频序列通常包含一系列视频图片。图片群组(GOP)通常包括一系列的一个或一个以上视频图片。GOP可包含GOP的标头、图片中的一者或一者以上的标头中或别处的语法数据,所述语法数据描述包含于GOP中的数个图片。图片的每一切片可包含描述相应切片的编码模式的切片语法数据。视频编码器20通常对个别视频切片内的视频块进行操作,以便编码视频数据。视频块可对应于CU内的译码节点。视频块可具有固定或变化的大小,且可根据指定译码标准而在大小上不同。
[0068] 作为一实例,HM支持按各种PU大小的预测。假定特定CU的大小为2N×2N,则HM支持按2N×2N或N×N的PU大小的帧内预测,及按2N×2N、2N×N、N×2N或N×N的对称PU大小的帧间预测。HM也支持按2N×nU、2N×nD、nL×2N及nR×2N的PU大小的用于帧间预测的不对称分割。在不对称分割中,CU的一个方向未被分割,而另一方向被分割成25%与75%。CU的对应于25%分割的部分是由“n”继之以“上”、“下”、“左”或“右”的指示来指示。因此,例如,“2N×nU”指代水平地分割为顶部上的2N×0.5N PU及底部上的2N×1.5N PU的2N×2N CU。
[0069] 在本发明中,“N×N”与“N乘N”可互换地使用以指代视频块在垂直尺寸与水平尺寸方面的像素尺寸,例如,16×16像素或16乘16像素。一般来说,16×16块将在垂直方向上具有16个像素(y=16)且在水平方向上具有16个像素(x=16)。同样地,N×N块通常在垂直方向上具有N个像素且在水平方向上具有N个像素,其中N表示非负整数值。可以行及列配置块中的像素。此外,块不必在水平方向上具有与垂直方向上相同的数目个像素。举例来说,块可包括N×M个像素,其中M不必等于N。
[0070] 在使用CU的PU进行帧内预测性或帧间预测性译码之后,视频编码器20可计算CU的TU的残余数据。PU可包括描述在空间域(也被称作像素域)中产生预测性像素数据的方法或模式的语法数据,且TU可包括在将例如离散余弦变换(DCT)、整数变换、小波变换或概念上类似的变换的变换应用于残余视频数据之后的变换域中的系数。所述残余数据可对应于未经编码的图片的像素与对应于PU的预测值之间的像素差。视频编码器20可形成包含CU的残余数据的TU,且接着变换所述TU以产生CU的变换系数。
[0071] 在进行任何变换以产生变换系数之后,视频编码器20可执行变换系数的量化。量化通常指代将变换系数量化以可能地减小用以表示所述系数的数据的量,从而提供进一步压缩的过程。量化过程可减小与所述系数中的一些或全部相关联的位深度。举例来说,n位值在量化期间可降值舍位到m位值,其中n大于m。
[0072] 在量化之后,视频编码器可扫描变换系数,从而从包含经量化变换系数的二维矩阵产生一维向量。扫描可经设计以将较高能量(且因此较低频率)系数放置于阵列之前部,且将较低能量(且因此较高频率)系数放置于阵列之后部。在一些实例中,视频编码器20可利用预定义扫描次序来扫描经量化的变换系数以产生可经熵编码的串行化向量。在其它实例中,视频编码器20可执行自适应扫描。在扫描经量化的变换系数以形成一维向量之后,视频编码器20可(例如)根据以下各者而对所述一维向量进行熵编码:上下文自适应可变长度译码(CAVLC)、上下文自适应二进制算术译码(CABAC)、基于语法的上下文自适应二进制算术译码(SBAC)、机率间隔分割熵(PIPE)译码或另一熵编码方法。视频编码器20也可将与经编码视频数据相关联的语法元素熵编码以供视频解码器30在解码视频数据时使用。
[0073] 一般来说,由视频解码器30执行的视频解码过程可包含与由视频编码器20执行的编码技术互逆的技术。尽管大体上为互逆的,但在一些例子中,视频解码器30可执行类似于由视频编码器20执行的技术的技术。视频解码器30还可依赖于在所接收位流中所含有的语法元素或其它数据,所述所接收位流包含关于视频编码器20所描述的数据。
[0074] 根据本发明的方面,视频编码器20及/或视频解码器30可实施本发明的用于限制在译码期间(例如,在线缓冲器中)经缓冲的来自相邻块的数据量的技术。举例来说,视频编码器20及/或视频解码器30可限制来自相邻块的在译码期间经缓冲的预测信息的量。如上文所提及,预测信息可包含帧内预测信息(例如,帧内译码模式)或运动信息(例如,运动向量、参考图片索引、预测方向,或其它信息)。根据本发明的方面,并非在译码当前块时使用以上方相邻块的预测信息,在一些实例中,视频编码器20及/或视频解码器30可基于来自左侧相邻块的预测信息来确定预测信息。在其它实例中,视频编码器20及/或视频解码器30可基于来自上方相邻块的数据来确定预测信息,但仅在当前块是较大分割区的子块(例如,如下文更详细描述,在新兴高效率视频译码(HEVC)标准中称作最大译码单元(LCU)),且此子块并不与另一LCU接界时才这样做。如下文所描述的多种其它技术也可用以减小在视频译码期间由视频编码器20及/或视频解码器30缓冲的预测性信息的量。
[0075] 视频编码器20及视频解码器30各自可在适用时实施为多种合适编码器或解码器电路中的任一者,例如,一个或一个以上微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑电路、软件、硬件、固件或其任何组合。视频编码器20及视频解码器30中的每一者可包含于一个或一个以上编码器或解码器中,其中任一者可集成为经组合的视频编码器/解码器(CODEC)的部分。包含视频编码器20及/或视频解码器30的装置可包括集成电路、微处理器及/或无线通信装置(例如,蜂窝式电话)。
[0076] 尽管未在图1中展示,但在一些方面中,视频编码器20及视频解码器30可各自与音频编码器及解码器集成,且可包含适当MUX-DEMUX单元或其它硬件及软件,以处置共同数据流或分开的数据流中的音频与视频两者的编码。如果适用,则MUX-DEMUX单元可符合ITU H.223多工器协议或例如用户数据报协议(UDP)等其它协议。
[0077] 图2是说明可实施本发明中所描述的用于有效存储预测信息的技术的实例视频编码器20的框图。视频编码器20可执行视频切片内的视频块的帧内译码及帧间译码。帧内译码依赖于空间预测以减小或移除给定视频图片内的视频的空间冗余。帧间译码依赖于时间预测以减小或移除视频序列的邻近图片内的视频的时间冗余。帧内模式(I模式)可指代若干基于空间的压缩模式中的任一者。帧间模式(例如,单向预测(P模式)或双向预测(B模式))可指代若干基于时间的压缩模式中的任一者。
[0078] 如图2中所展示,视频编码器20接收待编码的视频数据。在图2的实例中,视频编码器20包含模式选择单元40、求和器50、变换处理单元52、量化单元54、熵编码单元56,及参考图片存储器64。模式选择单元40又包含运动估计单元42、运动补偿单元44、帧内预测单元46及分割单元48。对于视频块重建来说,视频编码器20还包含逆量化单元58、逆变换处理单元60,及求和器62。也可包含解块滤波器(图2中未展示)以对块边界进行滤波以从经重建的视频移除成块效应假影。如果需要,所述解块滤波器将通常对求和器62的输出进行滤波。除解块滤波器外,还可使用额外回路滤波器(回路内滤波器或回路后滤波器)。为了简洁而并未展示这些滤波器,但如果需要,所述滤波器可对求和器50的输出进行滤波(作为回路内滤波器)。
[0079] 在编码过程期间,视频编码器20接收待译码的视频图片或切片。可将图片或切片划分成多个视频块。运动估计单元42及运动补偿单元44执行所接收视频块相对于一个或一个以上参考图片中的一个或一个以上块的帧间预测性译码,以提供时间压缩。帧内预测单元46可替代性地执行所接收视频块相对于处于与待译码的块相同的图片或切片中的一个或一个以上相邻块的帧内预测性译码,以提供空间压缩。视频编码器20可执行多个译码遍次,(例如)以选择视频数据的每一块的适当译码模式。
[0080] 此外,分割单元48可基于对先前译码遍次中的先前分割方案的评估而将视频数据的块分割成子块。举例来说,分割单元48可最初将图片或切片分割成LCU,且基于速率失真分析(例如,速率失真优化)将每一LCU分割成子CU。模式选择单元40可进一步产生指示将LCU分割成数个子CU的四叉树数据结构。四叉树的叶节点CU可包含一个或一个以上PU及一个或一个以上TU。
[0081] 模式选择单元40可(例如)基于误差结果而选择译码模式(帧内或帧间)中的一者,且将所得的经帧内或帧间译码的块提供到求和器50以产生残余块数据且提供到求和器62以重建经编码块以用作参考图片。模式选择单元40还将语法元素(例如,运动向量、帧内模式指示符、分割信息及其它此语法信息)提供到熵编码单元56。
[0082] 可高度集成运动估计单元42与运动补偿单元44,但出于概念的目的而对其分离地加以说明。由运动估计单元42执行的运动估计为产生运动向量的过程,运动向量估计视频块的运动。举例来说,运动向量可指示,当前视频图片内的视频块的PU相对于参考图片(或其它经译码单元)内的预测性块(其是相对于当前图片(或其它经译码单元)内的正译码的当前块)的移位。如上文所提及,运动向量可构成预测信息。
[0083] 预测性块为被发现与待译码的块在像素差方面紧密匹配的块,可通过绝对差的和(SAD)、平方差的和(SSD)或其它差量度来确定像素差。在一些实例中,视频编码器20可计算存储于参考图片存储器64中的参考图片的次整数像素位置的值。举例来说,视频编码器20可内插参考图片的四分之一像素位置、八分之一像素位置或其它分数像素位置的值。因此,运动估计单元42可执行相对于完整像素位置及分数像素位置的运动搜索,且输出具有分数像素精度的运动向量。
[0084] 运动估计单元42通过比较PU的位置与参考图片的预测性块的位置而计算帧间译码切片中的视频块的PU的运动向量。参考图片可选从第一参考图片列表(列表0)或第二参考图片列表(列表1),所述列表中的每一者识别存储于参考图片存储器64中的一个或一个以上参考图片。运动估计单元42将所计算出的运动向量发送到熵编码单元56及运动补偿单元44。
[0085] 在一些实例中,并非发送当前PU的实际运动向量,运动估计单元42可预测运动向量以进一步减小传达运动向量所需的数据量。在此状况下,并非编码并传达运动向量自身,运动估计单元42可产生相对于已知(或可知)运动向量的运动向量差(MVD)。可与MVD一起使用以定义当前运动向量的已知运动向量可通过所谓运动向量预测因子(MVP)来定义。一般来说,为了是有效MVP,正用于预测的运动向量必须指向与当前正译码的运动向量所指向的参考图片相同的参考图片。
[0086] 在一些实例中,运动估计单元42可建置运动向量预测因子候选者列表,所述列表包含作为MVP的候选者的若干在空间及/或时间方向上的相邻块。当多个运动向量预测因子候选者为可用的(来自多个候选块)时,运动估计单元42可根据预定选择准则来确定当前块的运动向量预测因子。举例来说,运动估计单元42可基于对编码率及失真的分析(例如,使用速率失真成本分析或其它译码效率分析)从候选者集合选择最准确的预测因子。在其它实例中,运动估计单元42可产生运动向量预测因子候选者的平均值。选择运动向量预测因子的其它方法也为可能的。
[0087] 在选择了运动向量预测因子之后,运动估计单元42可确定运动向量预测因子索引(mvp_flag),所述索引(mvp_flag)可用以向视频解码器(例如,例如视频解码器30)告知在含有MVP候选块的参考图片列表中何处找到MVP。运动估计单元42还可确定当前块与所选择MVP之间的MVD。MVP索引及MVD可用以重建运动向量。
[0088] 在一些实例中,运动估计单元42可替代地实施所谓“合并模式”,在所述“合并模式”中,运动估计单元42可“合并”预测性视频块的运动信息(例如,运动向量、参考图片索引、预测方向或其它信息)与当前视频块。因此,关于合并模式,当前视频块继承了来自另一已知(或可知)视频块的运动信息。运动估计单元42可建置合并模式候选者列表,所述列表包含作为合并模式的候选者的若干在空间及/或时间方向上的相邻块。运动估计单元42可确定索引值(例如,merge_idx),所述索引值可用以向视频解码器(例如,例如视频解码器30)告知在含有合并候选块的参考图片列表中何处找到合并视频块(即,从其获得运动信息的块)。
[0089] 根据本发明的方面,运动估计单元42可限制来自相邻块的在编码期间经缓冲的运动信息(例如,运动向量、参考图片索引、预测方向或其它信息)的量。举例来说,并非基于来自上方相邻块的运动信息确定当前块的MVP或合并候选者,运动估计单元42可基于来自左侧相邻块的运动信息来确定用于编码当前块的运动信息。在其它实例中,运动估计单元42可基于来自上方相邻块的数据来确定当前块的运动信息,但仅在当前块为LCU的子块且上方相邻块是来自同一LCU时才这样做。在又其它实例中,运动估计单元42可实施其它技术(例如,如下文更详细描述的子取样、内插等等)以减小在编码期间经缓冲的运动信息的量。
[0090] 由运动补偿单元44执行的运动补偿可涉及基于由运动估计单元42确定的运动向量取得或产生预测性块。再一次,在一些实例中,运动估计单元42及运动补偿单元44可在功能上集成。在接收到当前视频块的PU的运动向量后,运动补偿单元44随即可在参考图片列表中的一者中找到运动向量所指向的预测性块。如下文所论述,求和器50通过从正被译码的当前视频块的像素值减去预测性块的像素值从而形成像素差值来形成残余视频块。一般来说,运动估计单元42执行关于明度分量的运动估计,且运动补偿单元44针对色度分量及明度分量两者使用基于明度分量计算的运动向量。模式选择单元40也可产生与视频块及视频切片相关联的供视频解码器30在解码视频切片的视频块时使用的语法元素。
[0091] 作为如上文所描述的由运动估计单元42及运动补偿单元44执行的帧间预测的替代例,帧内预测单元46可帧内预测当前块。明确地说,帧内预测单元46可确定使用帧内预测模式来编码当前块。在一些实例中,帧内预测单元46(例如)在分开的编码遍次期间可使用各种帧内预测模式编码当前块,且帧内预测单元46(或在一些实例中模式选择单元40)可从经测试模式中选择使用适当帧内预测模式。
[0092] 举例来说,帧内预测单元46可使用速率失真分析而计算各种经测试帧内预测模式的速率失真值,且在经测试模式中选择具有最好速率失真特性的帧内预测模式。速率失真分析通常确定经编码块与原始未经编码的块(其经编码以产生经编码块)之间的失真(或误差)的量,以及用以产生经编码块的位率(即,位数目)。帧内预测单元46可根据失真及速率计算各种经编码块的比率以确定哪一帧内预测模式展现块的最好速率失真值。
[0093] 在一些实例中,帧内预测单元46可使用所谓最可能模式来指示所选择帧内预测模式。举例来说,帧内预测单元46可基于包含先前经编码块的上下文模型来指示当前块的帧内预测模式。在一实例中,假定块的从左到右、从顶部到底部的编码次序,帧内预测单元46可基于在相对顶部且相对左侧与当前块接界的先前经编码块来确定最可能模式。这些块可具有与当前块具有相同的帧内模式的高机率。
[0094] 在一个实例中,如果在当前块的顶部与左侧的块是以不同模式编码,则帧内预测单元46可根据由帧内预测模式46维持的预定义的帧内模式分级(例如,帧内模式的根据模式编号的数值分级)选择具有较低数值分级的帧内模式作为最可能模式。在另一实例中,如果在当前块的顶部与左侧的块是以不同模式编码,则帧内预测单元46可选择预定义的默认模式(例如,DC帧内模式)作为最可能模式。然而,在当前块的上下文包含一个以上帧内模式时选择最可能模式的过程仅作为实例来提供,且帧内预测单元46可经配置而以多种其它方式来确定最可能模式。
[0095] 在确定最可能帧内模式之后,帧内预测单元46可基于最可能模式与用以编码当前块的所选择帧内模式的比较来设定旗标(例如,most_probable_mode旗标)。举例来说,如果最可能模式与当前块的所选择帧内模式相同,则帧内预测单元46可将最可能模式旗标设定为值1,从而指示所选择帧内模式与最可能模式为相同的。在此实例中,不需要额外位来传信所选择模式。即,在接收到已设定为1的最可能模式旗标之后,视频解码器(例如视频解码器30)即可再生(例如)用于确定如由编码器使用的最可能模式的相同程序,且接着使用最可能模式来解码所接收块。
[0096] 如果最可能模式与当前块的所选择帧内模式不同,则帧内预测单元46可将最可能模式旗标设定为值0,从而指示所述模式是不同的。在此实例中,可需要额外位来传信用以编码当前块的实际帧内模式(例如,直接或通过到相邻块中的另一块的索引)。根据一些实例,帧内预测单元46可维持帧内模式的数值分级,其中最常用的帧内模式具有最低数值分级。在这些实例中,帧内预测单元46可基于数值分级或另一数值识别符来传信用以编码当前块的实际帧内模式。
[0097] 根据本发明的方面,帧内预测单元46可限制来自相邻块的在编码期间经缓冲的预测信息(例如,帧内模式数据)的量。举例来说,并非基于来自上方相邻块的帧内模式数据来确定当前块的最可能帧内模式,帧内预测单元46可基于左侧相邻块的帧内模式来确定用于编码当前块的最可能帧内模式。即,例如,帧内预测单元46可在不确定来自上方相邻块的帧内模式的情况下仅基于左侧相邻块的帧内模式来确定用于解码当前块的最可能帧内模式。在其它实例中,帧内预测单元46可基于来自一个或一个以上左侧相邻块及上方相邻块的数据来确定当前块的最可能帧内模式,但仅在当前块为LCU的子块且上方相邻块是来自同一LCU时才这样做。在又其它实例中,帧内预测单元46可实施其它技术(例如,如下文更详细描述的子取样、内插等等)以减小在编码期间经缓冲的帧内模式数据的量。
[0098] 视频编码器20通过从正译码的原始视频块减去来自模式选择单元40的预测数据而形成残余视频块。求和器50表示执行此减法运算的(多个)组件。变换处理单元52将变换(例如,离散余弦变换(DCT)或概念上类似的变换)应用于残余块,从而产生包括残余变换系数值的视频块。变换处理单元52可执行概念上类似于DCT的其它变换。也可使用小波变换、整数变换、次频带变换或其它类型的变换。在任何状况下,变换处理单元52将变换应用于残余块,从而产生残余变换系数的块。所述变换可将残余信息从像素值域转换到变换域(例如,频域)。
[0099] 变换处理单元52可将所得变换系数发送到量化单元54。量化单元54量化所述变换系数以进一步减小位率。量化过程可减小与所述系数中的一些或全部相关联的位深度。可通过调整量化参数而修改量化程度。在一些实例中,量化单元54可接着执行对包含经量化的变换系数的矩阵的扫描。或者,熵编码单元56可执行所述扫描。
[0100] 在量化之后,熵编码单元56熵译码经量化的变换系数。举例来说,熵编码单元56可执行上下文自适应可变长度译码(CAVLC)、上下文自适应二进制算术译码(CABAC)、基于语法的上下文自适应二进制算术译码(SBAC)、机率间隔分割熵(PIPE)译码或另一熵译码技术。在基于上下文的熵译码的状况下,上下文可是基于相邻块。
[0101] 关于CABAC,熵编码单元56可选择上下文模型,所述上下文模型对上下文进行操作以编码与视频数据的块相关联的符号。举例来说,熵编码单元56可使用每一语法元素的机率估计来熵编码视频数据块的每一语法元素。机率估计可指示元素具有给定值的似然度。机率估计可包含于也称作上下文模型的机率模型内。熵编码单元56可通过确定语法元素的上下文信息(或更简化地“上下文”)来选择上下文模型。针对每一上下文定义不同机率模型。在译码语法元素之后,熵编码单元56可基于语法元素的实际值来更新所选择上下文模型,以反映最新机率估计。即,例如,熵编码单元56可更新选择上下文模型以转变到新上下文模型的方式。
[0102] 在通过熵编码单元56进行的熵译码之后,可将经编码位流式发射到另一装置(例如,视频解码器30)或经存档(例如,到记录媒体)以供稍后发射或检索。逆量化单元58及逆变换处理单元60分别应用逆量化及逆变换,以在像素域中重建残余块(例如)供稍后用作参考块。运动补偿单元44可通过将残余块加到参考图片存储器64的图片中的一者的预测性块来计算参考块。运动补偿单元44也可将一个或一个以上内插滤波器应用于经重建的残余块以计算次整数像素值以供用于运动估计中。求和器62将经重建的残余块加到由运动补偿单元44产生的运动补偿预测块,以产生经重建的视频块以供存储于参考图片存储器64中。经重建的视频块可由运动估计单元42及运动补偿单元44用作参考块以对后续视频图片中的块进行帧间译码。
[0103] 以此方式,视频编码器20为视频译码器的实例,所述视频译码器可执行一种包含以下步骤的方法:确定视频数据的第一块的预测信息,其中所述第一块包含于经译码视频数据单元内,其中第一块是在经译码单元中的块的顶部行下方;基于第一视频数据块的预测信息而不基于来自经译码单元中的顶部行块的预测信息确定经译码单元中的在顶部行块下方的第二视频数据块的预测信息;以及基于所确定的第二块的预测信息来译码第二块。
[0104] 图3是说明可实施本发明中所描述的用于熵译码视频数据的技术的实例视频解码器30的框图。在图3的实例中,视频解码器30包含熵解码单元80、预测单元81、逆量化单元86、逆变换单元88、求和器90,及参考图片存储器92。预测单元81包含运动补偿单元82及帧内预测单元84。
[0105] 在解码过程期间,视频解码器30从视频编码器20接收表示经编码视频切片的视频块及相关联的语法元素的经编码视频位流。视频解码器30的熵解码单元80熵解码所述位流以产生经量化的系数、运动向量及其它语法元素。
[0106] 视频解码器30可接收视频切片层级及/或视频块层级的语法元素。举例来说,作为背景,视频解码器30可接收已经压缩成所谓“网络抽象层单元”或NAL单元以用于经由网络发射的经压缩视频数据。每一NAL单元可包含识别存储到NAL单元的数据的类型的标头。存在两种类型的通常存储到NAL单元的数据。第一类型的存储到NAL单元的数据为视频译码层(VCL)数据,所述数据包含经压缩视频数据。第二类型的存储到NAL单元的数据称作非VCL数据,所述非VCL数据包含额外信息,例如定义大量NAL单元共有的标头数据的参数集合,及补充增强信息(SEI)。
[0107] 举例来说,参数集合可含有序列层级标头信息(例如,在序列参数集合(SPS)中)及偶尔改变的图片层级标头信息(例如,在图片参数集合(PPS)中)。含有于参数集合中的偶尔改变的信息并不需要针对每一序列或图片进行重复,由此改进了译码效率。此外,参数集合的使用允许实现标头信息的频带外发射,由此避免了需要用于错误恢复(error resilience)的冗余发射。
[0108] 如上文关于图2的视频编码器20所描述,熵解码单元80可类似于熵编码单元56而配置。举例来说,熵译码单元80可选择上下文模型,所述上下文模型对上下文进行操作以解码与视频数据块相关联的符号。即,熵译码单元80可使用每一语法元素的机率估计来熵解码视频数据块的每一语法元素。
[0109] 熵解码单元80将运动向量及其它经解码语法元素转递到预测单元81。当视频切片经译码为帧内译码(I)切片时,预测单元81的帧内预测单元84可基于所传信的帧内预测模式(例如,直接或通过到相邻块中的另一块的索引作为最可能模式来传信)及来自当前图片的先前经解码块的数据而产生当前视频切片的视频块的预测数据。当视频图片经译码为帧间译码(即,B、P或GPB)切片时,预测单元81的运动补偿单元82基于从熵解码单元80接收的运动向量及其它语法元素而产生当前视频切片的视频块的预测性块。可从参考图片列表中的列表内的参考图片中的一者产生预测性块。视频解码器30可基于存储于参考图片存储器92中的参考图片使用默认建构技术来建构参考图片列表,列表0及列表1。
[0110] 运动补偿单元82通过剖析运动向量及其它语法元素而确定当前视频切片的视频块的预测信息,且使用所述预测信息以产生正经解码的当前视频块的预测性块。举例来说,运动补偿单元82使用一些所接收的语法元素以确定用以译码视频切片的视频块的预测模式(例如,帧内预测或帧间预测)、帧间预测切片类型(例如,B切片、P切片或GPB切片)、切片的参考图片列表中的一者或一者以上的建构信息、切片的每一帧间编码视频块的运动向量、切片的每一帧间译码视频块的帧间预测状态,及用以解码当前视频切片中的视频块的其它信息。
[0111] 运动补偿单元82还可基于内插滤波器执行内插。运动补偿单元82可使用如由视频编码器20在视频块的编码期间使用的内插滤波器,以计算参考块的次整数像素的内插值。在此状况下,运动补偿单元82可根据所接收的语法元素确定由视频编码器20使用的内插滤波器,且使用所述内插滤波器来产生预测性块。
[0112] 根据本发明的方面,运动补偿单元82可限制来自相邻块的在解码期间经缓冲的运动信息(例如,运动向量、参考图片索引、预测方向或其它信息)的量。举例来说,并非基于来自上方相邻块的运动信息确定当前块的MVP或合并候选者,运动补偿单元82可基于来自左侧相邻块的运动信息来确定用于解码当前块的运动信息。在其它实例中,运动补偿单元82可基于来自上方相邻块的数据来确定当前块的运动信息,但仅在当前块为LCU的子块且上方相邻块是来自同一LCU时才这样做。在又其它实例中,运动补偿单元82可实施其它技术(例如,如下文更详细描述的子取样、内插等等)以减小在解码期间经缓冲的运动信息的量。
[0113] 根据本发明的方面,帧内预测单元84可限制来自相邻块的在解码期间经缓冲的预测信息(例如,帧内模式数据)的量。举例来说,并非基于来自上方相邻块的帧内模式数据来确定当前块的最可能帧内模式,帧内预测单元84可基于左侧相邻块的帧内模式来确定用于解码当前块的最可能帧内模式。即,例如,帧内预测单元84可在不确定来自上方相邻块的帧内模式的情况下仅基于左侧相邻块的帧内模式来确定用于解码当前块的最可能帧内模式。在其它实例中,帧内预测单元84可基于来自一个或一个以上左侧相邻块及上方相邻块的数据来确定当前块的最可能帧内模式,但仅在当前块为LCU的子块且上方相邻块是来自同一LCU时才这样做。在又其它实例中,帧内预测单元84可实施其它技术(例如,如下文更详细描述的子取样、内插等等)以减小在解码期间经缓冲的帧内模式数据的量。
[0114] 逆量化单元86将位流中所提供且由熵解码单元80解码的经量化的变换系数逆量化(即,解量化)。逆量化过程可包含使用由视频编码器20针对视频切片中的每一视频块所计算的量化参数,以确定量化程度及(同样地)应所述应用的逆量化的程度。
[0115] 逆变换处理单元88将逆变换(例如,逆DCT、逆整数变换或概念上类似的逆变换过程)应用于变换系数,以便在像素域中产生残余块。根据本发明的方面,逆变换处理单元88可确定将变换应用到残余数据的方式。即,例如,逆变换处理单元88可确定RQT,所述RQT表示变换(例如,DCT、整数变换、小波变换或一个或一个以上其它变换)被应用到与所接收视频数据的块相关联的残余明度样本及残余色度样本的方式。
[0116] 在运动补偿单元82基于运动向量及其它语法元素产生当前视频块的预测性块之后,视频解码器30通过将来自逆变换处理单元88的残余块与由运动补偿单元82所产生的对应预测性块求和而形成经解码视频块。求和器90表示执行此加法运算的(多个)组件。如果需要,还可应用解块滤波器来对经解码块进行滤波,以便移除成块效应假影。其它回路滤波器(在译码回路中抑或在译码回路之后)也可用以使像素转变平滑化,或以其它方式改进视频质量。接着将给定图片中的经解码视频块存储于参考图片存储器92中,所述参考图片存储器92存储用于后续运动补偿的参考图片。参考图片存储器92也存储经解码视频以用于稍后在显示装置(例如,图1的显示装置32)上呈现。
[0117] 以此方式,视频解码器30为视频解码器的实例,所述视频解码器可执行一种包含以下步骤的方法:确定视频数据的第一块的预测信息,其中所述第一块包含于经译码视频数据单元内,其中第一块是在经译码单元中的块的顶部行下方;基于第一视频数据块的预测信息而不基于来自经译码单元中的顶部行块的预测信息来确定经译码单元中的在顶部行块下方的第二视频数据块的预测信息;以及基于第二块的所确定预测信息来译码第二块。
[0118] 图4A及4B是说明实例四叉树150及对应最大译码单元172的概念图。图4A描绘实例四叉树150,所述四叉树150包含以阶层式样式配置的节点。四叉树150可与(例如)根据所提议HEVC标准的树型块相关联。四叉树(例如,四叉树150)中的每一节点可为无子节点的叶节点,或具有四个子节点。在图4A的实例中,四叉树150包含根节点152。根节点152具有四个子节点,所述子节点包含叶节点156A到156C(叶节点156)及节点154。因为节点154并非叶节点,所以节点154包含四个子节点,所述子节点在此实例中为叶节点158A到158D(叶节点158)。
[0119] 四叉树150可包含描述对应最大译码单元(LCU)(在此实例中,例如LCU 172)的特性的数据。举例来说,四叉树150根据其结构可描述LCU到子CU的分裂。假定LCU 172具有2N×2N的大小。在此实例中,LCU 172具有四个子CU 176A到176C(子CU 176)及174,每一子CU具有大小N×N。将子CU 174进一步分裂成四个子CU 178A到178D(子CU 178),每一子CU具有大小N/2×N/2。在此实例中,四叉树150的结构对应于LCU 172的分裂。即,根节点152对应于LCU 172,叶节点156对应于子CU 176,节点154对应于子CU 174,且叶节点158对应于子CU 178。
[0120] 四叉树150的节点的数据可描述对应于节点的CU是否经分裂。如果CU经分裂,则四个额外节点可存在于四叉树150中。在一些实例中,可类似于以下伪码地实施四叉树的节点:
[0121]
[0122] split_flag值可为表示对应于当前节点的CU是否经分裂的一位值。如果CU未经分裂,则split_flag值可为“0”,而如果CU经分裂,则split_flag值可为“1”。关于四叉树150的实例,分裂旗标值的阵列可为101000000。
[0123] 如上文所提及,CU深度可指代例如LCU 172的LCU已被划分的程度。举例来说,根节点152可对应于CU深度0,而节点154及叶节点156可对应于CU深度1。此外,叶节点158可对应于CU深度2。根据本发明的方面,CU及/或TU深度可用作用于熵译码某些语法元素的上下文。在一实例中,为了解释的目的,相较于叶节点158A,可使用不同上下文模型来熵译码与叶节点156A相关联的一个或一个以上语法元素,此是因为叶节点156A位于深度1处,而叶节点
158A位于深度2处。
[0124] 虽然图4A说明CU四叉树的实例,但应理解,类似四叉树可应用到叶节点CU的TU。即,叶节点CU可包含描述CU的TU的分割的TU四叉树(称作残余四叉树(RQT))。TU四叉树可大体上类似于CU四叉树,只是TU四叉树可个别地传信CU的TU的帧内预测模式。
[0125] 根据本发明的一些方面,视频译码器(例如视频编码器20及/或视频解码器30)可基于来自某些相邻CU的预测信息来确定当前块的预测信息。举例来说,如下文更详细描述,视频译码器可基于例如子CU 176A的相邻CU来确定子CU 178C的预测信息。在一些实例中,视频译码器可避免基于例如上方相邻子CU 178的某些相邻CU来确定预测信息。然而,根据本发明的方面,如下文更详细描述,倘如果上方相邻CU的信息并不需要存储到线缓冲器,视频译码器就可使用上方相邻CU确定预测信息。
[0126] 举例来说,根据本发明的方面,视频译码器可基于上方相邻子CU 178A来确定子CU 178C的预测信息,这是因为上方相邻子CU 178A位于与子CU 178C的LCU相同的LCU(即,LCU 
172)中。在一些实例中,在译码LCU时,与LCU的所有CU相关联的数据为可用的(例如,无外部缓冲)。因此,根据本发明的方面,视频译码器可在不缓冲预测信息的情况下使用与LCU的块相关联的预测信息。即,根据本发明的方面,视频译码器可基于上方相邻子CU 178A而不在线缓冲器中缓冲子CU 178A的预测信息地确定子CU 178C的预测信息。
[0127] 图5是说明在帧内译码块时可借以确定最可能帧内模式的实例相邻块的图。举例来说,为了解释的目的,假定视频解码器(例如,视频解码器30)当前正解码语法元素,所述语法元素指示当前块180内的像素的特定预测模式(例如,帧内预测模式)。在此实例中,视频解码器30可识别来自上方相邻块182及左侧相邻块184的帧内预测模式以确定当前语法元素的上下文。因此,用以熵解码当前语法元素的上下文模型可视上方相邻块182及左侧相邻块184的帧内预测模式而定。
[0128] 在此实例中,视频解码器30可存储或缓冲指示上方相邻块182及左侧相邻块184的帧内预测模式的数据,使得此数据在执行帧内预测时是可用的。举例来说,视频解码器30可将上方相邻块182的帧内预测模式存储到在含有块180到184的图片的宽度上延伸的线缓冲器中,使得帧内预测模式可用于充当译码当前块180的上下文。
[0129] 然而,随着视频分辨率及帧的宽度(例如,从右向左越过给定视频帧的像素的数目)增大,存储于线缓冲器中的数据量也增大。在一些实例中,如上文所提及,小到4×4个像素的视频数据块可用以译码图片。作为一实例,1920×1080像素图片(例如,对于1080p视频来说)可包含具有多达495个4×4像素块的宽度。每一块可具有相关联的帧内预测模式。通过35个潜在帧内预测模式,视频解码器30可针对495个块中的每一者存储高达六个位的帧内预测信息。因此,如果图片的每一块的帧内预测模式皆存储到线缓冲器(所述线缓冲器在展示于图5中的实例中包含块182),可要求视频解码器30将相对大量的数据存储到线缓冲器。
[0130] 本发明的技术大体上涉及限制在译码期间经缓冲的来自相邻块的帧内模式数据的量。即,本发明的方面涉及限制用于在执行最可能模式导出时使用的存储到线缓冲器的帧内模式数据的量。如关于图7且在本发明中的其它地方更详细描述,根据本发明的一些方面,视频译码器(例如,视频编码器20或视频解码器30)可基于左侧相邻块184(以及如图8的实例中所展示,一个或一个以上其它左侧相邻块)但不基于上方相邻块182来确定当前块180的最可能帧内模式。在此实例中,视频译码器可避免将上方相邻块182的帧内模式存储到线缓冲器,这是因为所述帧内模式并不用以确定当前块180的最可能帧内模式。
[0131] 在其它实例中,视频译码器可基于上方相邻块182来确定当前块180的帧内模式,但仅在上方相邻块182是来自与当前块180的LCU相同的LCU时才这样做。在此实例中,上方相邻块182的帧内模式可为可用的(在不存储于线缓冲器中的情况下),这是因为LCU的所有信息在LCU的译码期间通常是可用的。然而,如果上方相邻块182是来自不同LCU,则与上方相邻块182相关联的数据可与不同LCU包含在一起(例如,在经编码位流中)。因此,在所述实例中,如上文所描述,视频译码器可需要缓冲帧内模式,此情形需要存储器资源且还可防止LCU的并行译码。如下文所描述的多种其它技术也可用以减小在视频译码期间经缓冲的预测性信息的量。
[0132] 图6是说明在执行运动向量预测(包含AMVP及合并模式)时的潜在运动向量预测因子候选者的图。即,对于当前正被译码的块188来说,来自相邻块A0、A1、B0、B1及B2的运动信息(例如,包括水平分量及垂直分量的运动向量、运动向量索引、预测方向或其它信息)可用以预测块188的运动信息。此外,与时间上相同定位的块COL相关联的运动信息也可用以预测块188的运动信息(例如,参考图片中的相同定位块)。在运动向量预测的上下文中,相邻块A0、A1、B0、B1及B2以及相同定位的块COL在下文通常可称作运动向量预测因子候选者。
[0133] 在一些实例中,在执行运动向量预测时可识别展示于图6中的运动向量预测因子候选者(例如,产生MVD抑或执行合并模式)。在其它实例中,在执行合并模式与运动向量预测时可识别不同候选者。即,视频译码器(例如,视频编码器20或视频解码器30)可识别与用于执行运动向量预测的运动向量预测因子候选者集合不同的用于执行合并模式的运动向量预测因子候选者集合。
[0134] 在一实例中,为了执行合并模式,视频编码器(例如,视频编码器20)可最初确定来自运动向量预测因子候选者的哪些运动向量可用于与块188合并。即,在一些例子中,来自运动向量预测因子候选者中的一者或一者以上的运动信息可能归因于(例如)运动向量预测因子候选者正被帧内译码、尚未经译码或不存在而为不可用的(例如,运动向量预测因子候选者中的一者或一者以上位于另一图片或切片中)。视频编码器20可建构运动向量预测因子候选者列表,所述列表包含可用的运动向量预测因子候选块中的每一者。
[0135] 在建构候选者列表之后,视频编码器20可从候选者列表选择待用作当前块100的运动向量的运动向量。在一些实例中,视频编码器20可从候选者列表中选择与块188的运动向量最好地匹配的运动向量。即,视频编码器20可根据速率失真分析从候选者列表选择运动向量。
[0136] 视频编码器20可提供使用合并模式编码块188的指示。举例来说,视频编码器20可设定旗标或其它语法元素,从而指示使用合并模式来预测块188的运动向量。在一实例中,视频编码器20可通过设定merge_flag[x0][y0]指示:根据运动向量预测因子候选者推断块188的帧间预测参数。在此实例中,阵列索引x0、y0可指定预测块的左上明度样本相对于图片(或切片)的左上明度样本的位置(x0,y0)。
[0137] 此外,在一些实例中,视频编码器20可提供索引,从而识别块188从哪个合并候选者继承运动向量。举例来说,merge_idx[x0][y0]可指定合并候选者索引,所述索引识别合并候选者列表中的图片,且其中x0、y0指定预测块的左上明度样本相对于图片(或切片)的左上明度样本的位置(x0,y0)。
[0138] 视频解码器(例如,视频解码器30)可执行类似步骤以在解码块188时识别适当合并候选者。举例来说,视频解码器30可接收使用合并模式预测块188的指示。在一实例中,视频解码器30可接收merge_flag[x0][y0],其中(x0,y0)指定预测块的左上明度样本(对应于块中的像素)相对于图片(或切片)的左上明度样本的位置。虽然关于明度样本进行描述,但上文所描述的技术也可针对色度样本来执行。
[0139] 在一些实例中,视频解码器30可在合并候选块的运动信息与块188之前缩放运动向量预测因子。举例来说,如果运动向量预测因子指代位于不同于由块188参考的预测性块的时间位置的参考图片中的预测性块(例如,块188的实际运动向量),则视频解码器30可缩放运动向量预测因子。举例来说,视频解码器30可缩放运动向量预测因子,使得所述预测因子指代与块188的参考图片相同的参考图片。在一些实例中,视频解码器30可根据图片次序计数(POC)值的差来缩放运动向量预测因子。在选择运动向量预测因子之后,视频解码器30可合并与运动向量预测因子相关联的运动信息与块188的运动信息。
[0140] 此外,视频解码器30可建构合并候选者列表。举例来说,视频解码器30可接收指示可用于运动向量预测的视频块的一个或一个以上语法元素(例如,旗标)。视频解码器30可基于所接收旗标建构合并候选者列表。如果若干合并候选者具有相同运动向量及相同参考索引,则可从列表移除(即,剔除)一些冗余合并候选者。
[0141] 视频解码器30可根据所接收索引识别适当合并候选者。举例来说,视频解码器30可接收索引,其识别块188从哪一合并候选者继承运动向量。在一实例中,merge_idx[x0][y0]可指定合并候选者索引,所述索引识别合并候选者列表中的图片,且其中x0、y0指定预测块的左上明度样本相对于图片(或切片)的左上明度样本的位置(x0,y0)。
[0142] 视频编码器20及视频解码器30可实施类似过程,以执行视频数据的当前块的运动向量预测。举例来说,视频编码器20可最初确定来自运动向量预测因子候选者的哪些运动向量可用作MVP。来自运动向量预测因子候选者中的一者或一者以上的运动信息可归因于(例如)运动向量预测因子候选者正被帧内译码、尚未经译码或不存在而为不可用的(例如,未包含于图片或切片中,例如在图片或切片中的顶部行块上方的块)。
[0143] 为了确定哪些运动向量预测因子候选者为可用的,视频编码器20可又根据基于预定优先权的方案分析运动向量预测因子候选者中的每一者。举例来说,对于每一运动向量预测因子候选者来说,视频编码器20可确定运动向量预测因子是否与块188的实际运动向量指代相同参考图片。如果运动向量预测因子指代相同参考图片,则视频编码器20可将运动向量预测因子候选者添加到MVP候选者列表。如果运动向量预测因子不指代相同参考图片,则运动向量预测因子可在添加到MVP候选者列表之前被缩放(例如,如上文所论述,基于POC距离缩放)。
[0144] 关于经相同定位的块COL,如果经相同定位的块包含一个以上运动向量预测因子(例如,将COL预测为B帧),则视频编码器20可根据当前列表及当前参考图片(针对块188)选择时间运动向量预测因子中的一者。视频编码器20可接着将所选择时间运动向量预测因子添加到运动向量预测因子候选者列表。
[0145] 视频编码器20可通过设定enable_temporal_mvp_flag来传信一个或一个以上运动向量预测因子为可用的。在建置候选者列表之后,视频编码器20可从候选者中选择待用作块100的运动向量预测因子的运动向量。在一些实例中,视频编码器20可根据速率失真分析来选择候选运动向量。
[0146] 视频编码器20可使用识别候选者列表中的MVP的MVP索引(mvp_flag)来传信所选择运动向量预测因子。举例来说,视频编码器20可设定mvp_l0_flag[x0][y0]来指定列表0的运动向量预测因子索引,其中x0、y0指定候选块的左上明度样本相对于图片的左上明度样本的位置(x0,y0)。在另一实例中,视频编码器20可设定mvp_l1_flag[x0][y0]来指定列表1的运动向量预测因子索引,其中x0、y0指定候选块的左上明度样本相对于图片的左上明度样本的位置(x0,y0)。在又其它实例中,视频编码器20可设定mvp_lc_flag[x0][y0]来指定列表c的运动向量预测因子索引,其中x0、y0指定候选块的左上明度样本相对于图片的左上明度样本的位置(x0,y0)。
[0147] 视频编码器20也可产生运动向量差值(MVD)。MVD可构成所选择运动向量预测因子与块188的实际运动向量之间的差。视频编码器20可将MVD与MVP索引一起传信。
[0148] 视频解码器30可执行类似操作以使用运动向量预测因子来确定当前块的运动向量。举例来说,视频解码器30可在参数集合(例如,图片参数集合(PPS))中接收指示,其指示针对一个或一个以上图片启用运动向量预测。即,在一实例中,视频解码器30可在PPS中接收enable_temporal_mvp_flag。当特定图片参考enable_temporal_mvp_flag等于零的PPS时,可将参考图片存储器中的参考图片标注为“未用于时间运动向量预测”。
[0149] 如果实施运动向量预测,则在接收到块188之后,视频解码器30即可建构MVP候选者列表。视频解码器30可使用上文关于视频编码器20所论述的相同方案来建构MVP候选者列表。在一些例子中,视频解码器30可执行类似于上文关于视频编码器20所描述的运动向量缩放的运动向量缩放。举例来说,如果运动向量预测因子并未指代与块188的参考图片相同的参考图片,则运动向量预测因子在添加到MVP候选者列表之前可被缩放(例如,如上文所论述,基于POC距离缩放)。视频解码器30可使用识别候选者列表中的MVP的所接收MVP索引(mvp_flag)来识别块188的适当运动向量预测因子。视频解码器30可接着使用MVP及所接收MVD来产生块100的运动向量。
[0150] 应理解,仅为了举例而提供展示于图6中的运动向量预测因子候选块,且为了预测运动信息可使用较多、较少或不同块。
[0151] 在任何状况下,视频译码器(例如,视频编码器20或视频解码器30)可存储或缓冲A0、A1、B0、B1、B2及相同定位的块COL的运动信息,使得此数据可用于产生MVD或执行合并模式。举例来说,视频译码器可将上方相邻块B0、B1及B2的运动信息(例如,运动向量、参考图片索引、预测方向或其它信息)存储于在含有所述块的图片的宽度上延伸的线缓冲器中,使得在块188的帧间预测期间所述运动信息可用于参考。
[0152] 然而,如上文所提及,存储到线缓冲器的数据的量可为相对巨大的。举例来说,1920×1080像素图片(例如,对于1080p视频来说)可包含具有多达495个4×4像素块的宽度,每一块潜在地具有其自己的运动信息。此外,可存在可用于译码每一图片的高达16个参考图片。因此,当存储线缓冲器中的图片的每一块的所有运动信息时,可要求视频译码器将相对大量的数据存储到线缓冲器。
[0153] 根据本发明的方面,视频译码器(例如,视频编码器20或视频解码器30)可限制确定块188的运动信息所根据的位置的数目,以减小在译码期间存储到线缓冲器的数据的量。即,例如,并非根据所有A0、A1、B0、B1及B2确定用于译码块188的运动信息(例如,MVP或合并候选者),视频译码器可仅基于所述候选者的子集来确定块188的运动信息。根据本发明的方面,视频译码器可基于左侧相邻块A1及A0以及相同定位的块COL而不基于上方相邻块B0、B1或B2来确定块188的运动信息。即,例如,视频译码器可仅基于左侧相邻块A1及A0以及相同定位的块COL来确定块188的运动信息。在此实例中,视频译码器可避免将与上方相邻块B0、B1或B2相关联的运动信息存储到线缓冲器,这是因为所述运动信息并不用以确定用于译码块
188的MVP或合并候选者。
[0154] 在其它实例中,视频译码器可基于上方相邻块B0、B1或B2中的一者或一者以上(例如,除A1及A0以及相同定位的块COL外)确定块188的运动信息,但仅在上方相邻块是来自与当前块188的LCU相同的LCU时才这样做。在此实例中,上方相邻块B0、B1或B2的运动信息可为可用的(在不存储于线缓冲器中的情况下),这是因为在LCU的译码期间LCU的所有信息通常为可用的。如下文所描述的多种其它技术也可用以减小在视频译码期间经缓冲的运动信息的量。
[0155] 图7是说明根据本发明的方面的可借以确定预测信息的实例相邻块的框图。展示于图7中的实例大体上被描述为由视频译码器执行。应理解,在一些实例中,图7的技术可由上文所描述的视频编码器20(图1及图2)或视频解码器30(图1及图3)来进行。在其它实例中,图7的技术可由多种其它处理器、处理单元、例如编码器/解码器(CODEC)等基于硬件的译码单元及其类似者来执行。
[0156] 视频译码器可当前正在译码(例如,帧间译码或帧内译码)经译码单元191的当前块190。经译码单元191通常可包含预定义数量的视频数据,所述预定义数量的视频数据包含视频数据的多个块,例如LCU、切片、图块或图块集合、波前集合,或包含多个视频数据块的任何其它预定义单元。虽然上方相邻块194、左侧相邻块192及块196在图7的实例中大体上被展示为未经划分块,但应理解,这些块可被划分成一个或一个以上较小块。
[0157] 根据本发明的方面,并非将来自上方相邻块194的预测信息用于译码块190,视频译码器可仅使用来自左侧相邻块192的预测信息(例如,帧内或帧间预测信息)。举例来说,视频译码器在执行当前块190的帧间预测或帧内预测时可能不使用来自上方相邻块194或不邻近于当前块190定位的先前经译码块196的数据。在此实例中,与在译码期间使用所有相邻块的预测信息(例如,如图5及6中所展示)的情况相比较,视频译码器可缓冲较少数据。举例来说,假定64×64个像素的最大LCU大小及4×4个像素的最小CU大小,视频解码器30可潜在地缓冲与仅16个视频数据块(例如,64/4=16个潜在左侧相邻块)相关联的数据。
[0158] 通过限制上下文信息所来源于的位置,如图7的实例中所展示并描述,视频译码器可减小为了预测而缓冲的数据的量。此外,视频译码器可增大剖析吞吐量。举例来说,如上文所提及,视频解码器(例如,视频解码器30)可根据特定剖析固持(例如,波前剖析)来剖析所接收视频数据。在视频解码器30并不根据例如上方相邻块194等某些相邻块确定预测信息的实例中,视频解码器30可消除相依性以改进剖析吞吐量及并行地处理视频数据的能力。此外,消除相依性可减小预测导出误差的可能性,由此进一步改进剖析过程。
[0159] 图8是说明可借以确定用于译码块的预测信息的实例相邻块的另一框图。在展示于图8中的实例中,视频译码器(例如,视频编码器20或视频解码器30)可基于左侧相邻块L及底部左侧相邻块BL来确定当前正被译码的块200的预测信息。与展示于图7中的实例相比较,图8的实例添加了借以导出预测信息的额外左侧相邻块。
[0160] 在展示于图8中的实例中,如同展示于图7中的实例一样,可能根本不需要用于存储相对于当前块200的上方相邻块的预测信息(例如,帧内模式或运动信息)的线缓冲器。如上文所解释,LCU可经分割成不同配置的CU。因此,图8的块L及BL可为同一LCU的不同CU。
[0161] 关于帧内预测,块L与块BL可皆使用同一帧内预测模式进行译码,但在一些例子中,块L与块BL可使用不同帧内预测模式进行译码。基于块L的帧内预测模式及块BL的帧内预测模式,可确定当前块200的最可能帧内预测模式。举例来说,如果使用(预定义数目个帧内模式中的)模式6来译码块L及BL两者,则块200的最可能帧内预测模式也可能为模式6。再一次,模式6可能并非块200的实际预测模式,但考虑到块200的上下文(即,相邻于块200的块的预测模式),模式6可为块200的统计上最可能的模式。
[0162] 在另一实例中,为了改进译码效率并避免冗余,如果块L与BL具有相同帧内预测模式,则当前块200左侧的第三块也可用于确定最可能模式。应注意,块L及BL(或第三左侧块)不需要直接邻近于块200,而是可在块200的左侧的一或多列处。如果块L及块BL分别使用模式3及8来编码,则块200的最可能模式可能为模式3、模式8或不同模式。针对特定上下文的最可能模式可通过识别对于所述上下文是统计上最可能的帧内预测模式来做出选择。通过避免将上方块用于确定最可能模式,可消除对存储上方块的帧内预测模式的线缓冲器的需要。
[0163] 关于帧间预测,可存储相邻于块200的块的包含以下各者的运动信息:指示运动向量的x及y座标的运动向量(mvx,mvy)、指示参考帧列表中的参考帧的参考索引(ref_idx),及指示使用哪一参考帧列表(例如,L0或L1)的预测方向(inter_dir)。在一些实例中,所有这些运动信息可存储于对应线缓冲器中。根据本发明的方面,视频译码器可仅存储块L及块BL的运动信息,且排除上方相邻块的运动信息。
[0164] 根据一些实例,可通过产生额外运动候选者来补偿与减小用于运动向量预测的候选者的数目相关联的可能性能损失。举例来说,如以下实例表1中所展示,视频译码器可使用例如块L及BL的运动信息等可用运动信息产生额外运动候选者。
[0165] 表1-所产生的运动候选者
[0166]合并idx L0 L1  
0 mvL0_A,ref0   来自L
1   mvL1_B,ref0 来自BL
2 mvL0_A,ref0 mvL1_B,ref0 所产生
3 mvL0_A,ref0 mvL0'_A,ref0' 所产生
4 mvL1'_B,ref0' mvL1_B,ref0 所产生
[0167] 如表1的实例中所展示,视频译码器可使用来自块L及BL的运动信息产生运动合并候选者(2)、(3)及(4)。即,候选者L及BL的运动信息(inter_dir、ref_idx及mv)可用以产生新运动候选者。在此实例中,mvLX_Y可表示第Y候选者中列表X的运动向量,mvLX'_Y可表示参考列表中第N参考图片中的mvLX_Y,refN的经处理运动向量。展示于表1中的所产生运动信息可通过缩放、偏移、截割或以其它方式修改现有运动信息来产生。
[0168] 虽然关于L及BL描述图8的实例,但如上文所提及,还可使用其它块(例如,额外块、并不邻近于块200的块等等)。此外,关于合并模式(例如,如表1中所展示)所描述的技术可使用MVD类似地应用到运动向量预测。
[0169] 图9是说明可借以确定用于译码块的预测信息的实例相邻块的另一框图。举例来说,本发明的方面包含基于多个左侧相邻块L00到L0N、L10到L1N、L20到L2N、BL0到BLN等等来确定当前块205的预测信息。在一些实例中,视频译码器可基于来自正被译码的块的左侧一个以上列的块来确定预测信息。即,关于帧间译码,可通过选自多个左侧相邻块的块来建构最终运动向量候选者列表。关于帧内译码,来自多个左侧相邻块的帧内模式可用于最可能模式导出。
[0170] 如图9的实例中所展示,额外左侧相邻块(例如,在接界块LN0的左侧)可用以抵消与不缓冲左侧相邻块的预测信息相关联的可能译码性能损失。举例来说,在一些例子中,上方相邻块的帧内模式可与块205的帧内模式匹配。在其它例子中,与上方相邻块相关联的运动向量可与块205的运动向量匹配或接近匹配。在这些例子中,在译码期间防止视频译码器检索上方相邻块的数据可导致译码性能损失,这是由于视频译码器可被迫找寻较不准确的预测因子。然而,通过增大视频译码器可从其检索数据从而确定预测信息的左侧相邻块的数目,可增大找到相对高质量预测因子的可能性。
[0171] 在一些实例中,展示于图9中的左侧相邻块可为形成同一LCU的部分的不同CU。在其它实例中,左侧相邻块可包含于不同LCU中。
[0172] 图10是说明可借以确定用于译码块的预测信息的实例相邻块的另一图。举例来说,与不存储与上方相邻块相关联的任何数据形成对比,减小用于预测用途(例如,帧间译码或帧内译码)的线缓冲器数据的另一方式为减小存储到线缓冲器的块的数目。在展示于图10中的实例中,块210当前正被译码,而块212先前已经译码。在一些实例中,与块214A及214B(共同为块214)相关联的预测信息(例如,帧内模式或运动信息)可存储到线缓冲器。
[0173] 然而,根据本发明的方面,可仅将与块214相关联的数据的子集存储到线缓冲器。即,在展示于图10中的实例中,可将与块214A相关联的预测信息存储到线缓冲器,而可从线缓冲器省略与块214B相关联的预测信息。虽然图10的实例展示块214A与214B具有相等大小,但在其它实例中,可实施仅允许将块214的预测信息的一部分存储到线缓冲器的不同子取样方案。即,在其它实例中,块214A可大于或小于块214B。
[0174] 在展示于图10中的实例中,如果视频译码器(例如,视频编码器20或视频解码器30)需要确定来自块214A中的一者的预测信息,则视频译码器可从缓冲器读取所述预测信息。即,例如,如果块214A中的一者包含块210的最可能模式确定的上下文,则视频译码器可从线缓冲器读取帧内模式。
[0175] 或者,如果视频译码器需要确定来自块214B中的一者的预测信息,则视频译码器可基于存储于缓冲器中的预测信息的子集导出所述块的预测信息。导出可(例如)基于复制一个或一个以上附近块214A的存储于缓冲器中的预测信息,内插存储于缓冲器中的运动信息,或基于块214A的所存储预测信息以某一其它方式导出预测信息。
[0176] 图11是说明截割(例如,减小位深度)存储到缓冲器的运动向量的实例的概念图。即,例如,减小存储到线缓冲器的预测信息(且更具体来说,用于帧间预测的运动向量)的量的另一方式可为减小在存储每一运动向量的每一分量时使用的位的数目。
[0177] 在此实例中,如图11的实例中所展示,存储到线缓冲器的每一运动向量(例如,与上部相邻块相关联的运动向量)可经截割到N个位,其中每一运动向量最初为M个位(M大于N)。在图11的实例中,M等于12且N等于8,但还可实施其它数目个位。应理解,展示于图11中的整数的特定表示可能不对应于实体表示(称为2补数算术),而是为了解释而提供。通过展示于图11中的实例位截割,无子像素(“子像素(sub-pel)”)准确度的运动向量的最大范围为64。当运动为小时,此截割对译码效率可具有相对小的影响或无影响。
[0178] 图12是说明截割存储到线缓冲器的运动向量的实例的另一概念图。举例来说,如果相对运动向量为相对大的,则可截割较少有效位。即,在图12的实例中,已截割了三个最高有效位及子像素位中的一者。更具体来说,在图12的实例中,移除1/4像素或子像素准确度,且移除3个最高有效位,但可实施不同配置。从最高或最低有效位移除的位的数目(例如,如图11及图12中所展示)可在例如SPS或PPS等参数集合中予以指定。
[0179] 图13是说明LCU的边界CU的图。举例来说,LCU 240由块242接界,块242可包含一个或一个以上其它LCU。在展示于图13中的实例中,LCU 240包含与块242共享边界的边界CU 244,及不与块242共享边界的内部CU 246。LCU 240的每一CU可具有相关联的PU。
[0180] 在一些实例中,如上文所描述,视频译码器可使用来自上方相邻块的预测信息(例如,帧内模式或运动信息)译码LCU 240的PU。CU 246的上方相邻PU的预测信息可易于得到,这是由于这些PU包含于同一LCU 242中。然而,为了在译码CU 244的边界PU时存取来自上方相邻块242的预测信息,视频译码器必须存取来自不同于正译码的LCU 240的LCU的此信息。为了(例如)在不存取在视频译码器外部的存储器的情况下为可用的,视频译码器可将此上方相邻预测信息存储到线缓冲器。
[0181] 将此统一方案应用于LCU 240的所有PU(包含用以存储边界CU 244的信息的缓冲器)可辅助硬件实施简单性。即,所有PU可存取来自相同相对位置的预测信息。然而,在译码期间排除来自在不同于含有块244、246的LCU的LCU中的上方相邻块242的数据而不加以检索可减小存储到线缓冲器的数据的量。此外,在译码期间排除来自上方相邻块242的数据而不加以检索还可使可能由于依靠LCU 240外部的CU而引入的不准确性的影响最小化,由此改进译码性能。即,如果来自上方相邻块242的数据形成另一切片的被丢失或以其它方式遭破坏的部分,则视频译码器仍可译码边界CU 244.
[0182] 因此,贯穿本发明所描述的技术可仅应用到LCU的PU的子集。即,例如,用于限制存储到线缓冲器的数据的量的技术可仅应用到LCU 240的可能需要存取线缓冲器的边界CU 244。
[0183] 图14是说明用于减小在视频译码期间经缓冲的预测信息的量的实例技术的流程图。展示于图14中的实例大体上被描述为由视频译码器执行。应理解,在一些实例中,图14的技术可由上文所描述的视频编码器20(图1及图2)或视频解码器30(图1及3)来进行。在其它实例中,图14的技术可由多种其它处理器、处理单元、例如编码器/解码器(CODEC)等基于硬件的译码单元及其类似者来执行。
[0184] 视频译码器可接收用于熵译码的经译码单元(例如,图片、切片、图块、波前集合及其类似者)的视频数据的块(260)。根据本发明的方面,可使视频数据块定位于经译码单元中的块的顶部行下方。在一些实例中,当前正译码的块可为与上方相邻子CU包含于同一LCU中的子CU。在其它实例中,块可定位于LCU的边缘处,使得上方相邻块与当前块属于不同的LCU。
[0185] 视频译码器可接着基于经译码单元中的一个或一个以上其它块的预测信息但并不基于经译码单元的顶部行中的块来确定块的预测信息(262)。举例来说,如果对第一块进行帧间预测,则视频译码器可确定与第一块相关联的运动信息(例如,运动向量、参考图片索引、预测方向或其它信息)。或者,如果对第一块进行帧内预测,则视频译码器可确定第一块的帧内模式。
[0186] 在一些实例中,根据本发明的方面,并非基于上方相邻块来确定块的预测信息,视频译码器可使用来自左侧相邻块的预测信息。在一些实例中,左侧相邻块可包含于与当前正被译码块的LCU相同的LCU内。在其它实例中,左侧相邻块可包含于与当前正被译码块的LCU不同的LCU内。如上文所提及,在一些实例中,一个或一个以上其它块可直接邻近于当前正被译码的块而定位,或可距所述块若干个块而定位。
[0187] 在另一实例中,视频数据块可包含LCU的一个或一个以上块,且顶部行块可包含一个或一个以上其它LCU。在此实例中,根据本发明的方面,视频译码器可使用与LCU的其它块相关联的预测信息确定块的预测信息,但将顶部行的上方相邻块(其包含于其它LCU中)排除在外。为了说明,在一实例中,正被译码的块可包含LCU的第一子CU,且上方相邻块可包含一个或一个以上其它LCU。也假定第二子CU定位于第一子CU上方(在同一LCU中)。在此实例中,视频译码器可使用基于定位于第一子CU上方的第二子CU的信息确定第一子CU的预测信息。
[0188] 视频译码器可接着基于所确定预测信息译码块(264)。举例来说,如下文关于图15及16更详细描述,如果块为经帧内译码块,则视频译码器可通过基于来自一个或一个以上其它块的帧内预测模式确定块的最可能模式来译码块。或者,如下文关于图17及18更详细描述,如果当前块为经帧间译码块,则视频译码器可通过基于来自一个或一个以上其它块的运动信息确定MVD(或合并信息)来译码块。
[0189] 应理解,关于图14所展示并描述的步骤仅作为一个实例而提供。即,图14的方法的步骤不必以展示于图14中的次序执行,且可执行较少、额外或替代性步骤。
[0190] 图15是说明用于减小在视频编码中执行帧内预测时经缓冲的预测信息的量的实例技术的流程图。虽然关于视频编码器20进行描述,但应理解,关于图15所描述的技术可由多种其它处理器、处理单元、例如编码器/解码器(CODEC)等基于硬件的译码单元及其类似者执行。
[0191] 在展示于图15中的实例中,视频编码器20可确定第一视频数据块的帧内预测模式(270)。视频编码器20还可确定第二视频数据块的帧内预测模式(272)。根据本发明的方面,视频编码器20可基于第一块的帧内预测模式确定第二块的帧内预测模式,但仅在第一块并非第二块的上方相邻块的情况下才这样做(274)。如果第一块是上方相邻块,则视频编码器20可基于一个或一个以上其它块来确定第二块的最可能帧内模式。即,可排除上方相邻块而不将其考虑为第一块。在一些实例中,视频编码器20仅可在第一块是来自不同于第二块的LCU的LCU的情况下应用上方相邻块限制。
[0192] 视频编码器20可确定所确定的最可能帧内模式是否与第二块的所确定帧内模式相同(276)。如果最可能帧内模式与第二块的所确定帧内模式相同(步骤276的是分支),则视频编码器可在经编码位流中提供最可能模式的指示(278)。根据一些实例,视频编码器20可在经编码位流中设定最可能模式旗标,由此指示最可能模式被用以帧内译码第二块。在此实例中,如下文关于图16更详细描述,在解码最可能模式旗标之后,视频解码器(例如,视频解码器30)即可再生最可能模式导出过程以确定用以编码第二块的帧内模式。如果最可能帧内模式与第二块的帧内模式不同(步骤276的否分支),则视频编码器20可在经编码位流中提供用以编码块的帧内模式的指示(280)。
[0193] 应理解,关于图15所展示并描述的步骤仅作为一个实例而提供。即,图15的方法的步骤不必以展示于图15中的次序执行,且可执行较少、额外或替代性步骤。
[0194] 图16是说明用于减小在视频解码中执行帧内预测时经缓冲的预测信息的量的实例技术的流程图。虽然关于视频解码器30进行描述,但应理解,关于图16所描述的技术可由多种其它处理器、处理单元、例如编码器/解码器(CODEC)等基于硬件的译码单元及其类似者执行。
[0195] 视频解码器30最初可确定第一视频数据块的帧内预测模式(290)。视频解码器30也可接收第二块的最可能帧内模式的指示(292)。举例来说,在一些实例中,视频解码器30可接收最可能模式旗标,所述最可能模式旗标指示最可能帧内模式是否被用以帧内预测第二块的像素。
[0196] 视频解码器30可基于接收到的指示来确定最可能帧内模式是否与用于解码第二块的帧内模式相同(294)。如果最可能帧内模式为用于解码第二块的适当帧内模式(步骤294的是分支),则视频解码器30可确定第二块的最可能帧内模式(296)。举例来说,根据本发明的方面,视频解码器30可基于第一块的帧内预测模式确定第二块的帧内预测模式,但仅在第一块并非第二块的上方相邻块的情况下才这样做。如果第一块是上方相邻块,则视频解码器30可基于一个或一个以上其它块来确定第二块的最可能帧内模式。在一些实例中,视频解码器30仅可在第一块是来自不同于第二块的LCU的LCU的情况下应用上方相邻块限制。
[0197] 视频解码器30可接着使用最可能帧内模式解码第二块(298)。即,例如,视频解码器30可使用最可能帧内预测模式预测第二块,且基于预测性值与所接收残余值的组合确定第二块的像素值。
[0198] 如果最可能帧内模式并非用于解码第二块的适当帧内模式(步骤294的否分支),则视频解码器30可(例如)基于某一所接收传信而确定用于解码第二块的帧内模式(300)。在其它实例中,视频解码器30可将默认帧内模式应用于第二块。在任何状况下,视频解码器
30可接着基于所确定帧内模式解码第二块(302)。即,例如,视频解码器30可使用所确定帧内预测模式预测第二块,且基于预测性值与所接收残余值的组合确定第二块的像素值。
[0199] 应理解,关于图16所展示并描述的步骤仅作为一个实例而提供。即,图16的方法的步骤不必以展示于图16中的次序执行,且可执行较少、额外或替代性步骤。
[0200] 图17是说明用于减小在视频编码中执行帧间预测时经缓冲的预测信息的量的实例技术的流程图。虽然关于视频编码器20进行描述,但应理解,关于图17所描述的技术可由多种其它处理器、处理单元、例如编码器/解码器(CODEC)等基于硬件的译码单元及其类似者执行。
[0201] 在图17中的实例中,视频编码器20可确定第一视频数据块的运动信息(310)。视频编码器20还可确定第二视频数据块的运动信息(312)。根据本发明的方面,视频编码器20可基于第一块的运动向量确定第二块的MVP,但仅在第一块并非第二块的上方相邻块的情况下才这样做(314)。如果第一块是上方相邻块,则视频编码器20可基于一个或一个以上其它块来确定第二块的MVP。在一些实例中,视频编码器20仅可在第一块是来自不同于第二块的LCU的LCU的情况下应用上方相邻块限制。
[0202] 视频编码器20还可在经编码位流中提供所确定MVP的指示(316)。即,视频编码器20可识别MVP所属于的块。此外,视频编码器20可将MVD与MVP一起包含于经编码位流中。
[0203] 尽管关于确定MVP并产生MVD进行描述,但应理解,关于图17所描述的技术也可用于合并模式。也应理解,关于图17所展示并描述的步骤仅作为一个实例而提供。即,图17的方法的步骤不必以展示于图17中的次序执行,且可执行较少、额外或替代性步骤。
[0204] 图18是说明用于减小在视频编码中执行帧间预测时经缓冲的预测信息的量的实例技术的流程图。虽然关于视频解码器30进行描述,但应理解,关于图18所描述的技术可由多种其它处理器、处理单元、例如编码器/解码器(CODEC)等基于硬件的译码单元及其类似者来执行。
[0205] 在展示于图18中的实例中,视频解码器30可确定第一视频数据块的运动信息(330)。视频解码器30也可接收第二视频数据块的运动向量预测因子的指示(332)。根据本发明的方面,视频解码器30可基于第一块的运动向量确定第二块的MVP,但仅在第一块并非第二块的上方相邻块的情况下才这样做(334)。即,视频解码器30仅可在第一块并非第二块的上方相邻块的情况下将来自第一块的运动向量添加到MVP候选者列表。如果第一块是上方相邻块,则视频解码器30可基于一个或一个以上其它块来确定第二块的MVP。在一些实例中,视频解码器30仅可在第一块是来自不同于第二块的LCU的LCU的情况下应用上方相邻块限制。
[0206] 视频解码器30可通过组合第一块的运动向量(在第一块用作MVP的例子中)与所接收MVD来确定第二块的运动信息。视频解码器30可接着使用所确定运动信息解码第二块(336)。即,视频解码器30可检索由运动向量识别的预测性块,且基于预测性块与所接收残余值的组合确定第二块的像素值。
[0207] 尽管关于确定MVP并产生MVD进行描述,但应理解,关于图18所描述的技术也可用于合并模式。也应理解,关于图18所展示并描述的步骤仅作为一个实例而提供。即,图18的方法的步骤不必以展示于图18中的次序执行,且可执行较少、额外或替代性步骤。
[0208] 此外,应理解,视实例而定,本文中所描述的任何方法的某些动作或事件可以不同序列执行、可经添加、合并或完全省去(例如,并非所有所描述动作或事件皆对于方法的实践为必要的)。此外,在某些实例中,动作或事件可(例如)经由多线程处理、中断处理或多个处理器同时而非顺序执行。此外,虽然为了清晰将本发明的某些方面描述为由单一模块或单元执行,但应理解,本发明的技术可由与视频译码器相关联的单元或模块的组合来执行。
[0209] 在一个或一个以上实例中,所描述的功能可以硬件、软件、固件或其任何组合实施。如果在软件中实施,则功能可作为一个或一个以上指令或程序代码而存储于计算机可读媒体上或经由计算机可读媒体而发射,且由基于硬件的处理单元执行。计算机可读媒体可包含对应于有形媒体(例如,数据存储媒体)的计算机可读存储媒体或通信媒体,通信媒体包含促进(例如)根据通信协议将计算机程序从一处传送到另一处的任何媒体。
[0210] 以此方式,计算机可读媒体通常可对应于(1)非暂态的有形计算机可读存储媒体或(2)例如信号或载波等通信媒体。数据存储媒体可为可由一个或一个以上计算机或一个或一个以上处理器存取以检索指令、程序代码及/或数据结构以用于实施本发明中所描述的技术的任何可用媒体。计算机程序产品可包含计算机可读媒体。
[0211] 作为实例而非限制,这些计算机可读存储媒体可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储器、磁盘存储器或其它磁性存储装置、闪存存储器,或可用以存储呈指令或数据结构的形式的所要程序代码且可由计算机存取的任何其它媒体。而且,任何连接被适当地称为计算机可读媒体。举例来说,如果使用同轴电缆、光纤缆线、双绞线、数字订户线(DSL)或例如红外线、无线电及微波等无线技术而从网站、服务器或其它远端源发射指令,则同轴电缆、光纤缆线、双绞线、DSL或例如红外线、无线电及微波等无线技术包含于媒体的定义中。
[0212] 然而,应理解,计算机可读存储媒体及数据存储媒体不包含连接、载波、信号或其它瞬时媒体,而是替代地针对非瞬时有形存储媒体。如本文中所使用,磁盘及光盘包含压缩光盘(CD)、激光光盘、光学光盘、数字影音光盘(DVD)、软盘及蓝光光盘,其中磁盘通常以磁性方式再生数据,而光盘通过激光以光学方式再生数据。上述各者的组合也应包含于计算机可读媒体的范围内。
[0213] 指令可由例如以下各者的一个或一个以上处理器执行:一个或一个以上数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效集成或离散逻辑电路。因此,如本文中所使用的术语“处理器”可指代前述结构或适于实施本文中所描述的技术的任何其它结构中的任一者。另外,在一些方面中,可将本文所描述的功能性提供于经配置以用于编码及解码的专用硬件及/或软件模块内,或并入组合的编解码器中。而且,所述技术可完全实施于一个或一个以上电路或逻辑元件中。
[0214] 可在包含无线手持机、集成电路(IC)或一组IC(例如,芯片组)的广泛多种装置或设备中实施本发明的技术。各种组件、模块或单元描述于本发明中以强调经配置以执行所揭示的技术的装置的功能方面,但不一定要求通过不同硬件单元实现。更确切来说,如上文所描述,各种单元可组合于编解码器硬件单元中或由交互操作的硬件单元的集合(包含如上文所描述的一个或一个以上处理器)结合合适的软件及/或固件来提供。
[0215] 已描述了本发明的各种方面。这些及其它方面在所附权利要求书的范围内。