用于视频数据的视频编解码方法与流程

文档序号:26057473发布日期:2021-07-27 15:36阅读:175来源:国知局
用于视频数据的视频编解码方法与流程

相关申请

本发明要求提交于2015年4月13日的号码为62/146,533的美国临时专利申请案,提交于2015年5月13日的号码为62/160,831的美国临时专利申请案,提交于2015年6月23日的号码为62/183,262的美国临时专利申请案,提交于2015年10月6日的号码为62/237,717的美国临时专利申请案以及提交于2015年10月13日的号码为62/240,699的美国临时专利申请案的优先权。在此引用的美国临时专利申请案其全文以引用的方式并入本文中。

本发明涉及用于视频数据的视频编解码方法,具体涉及帧内块复制(intrablockcopy,简写为intrabcoribc)编解码。特别地,本发明涉及用于与帧内图像块复制编解码相关的语法元素的信令、二值化和约束的各种技术。



背景技术:

高效视频编码(highefficiencyvideocoding,简写为hevc)最近几年发展起来的一个新的编解码标准。在高效视频编码系统中,h.264/avc中固定尺寸大小的宏块(macroblock)被灵活的块所替代,称为编码单元(codingunit,简写为cu)。编码单元中的像素共用相同的编解码参数以提升编解码的效率。一个cu可以开始于一个最大的编码单元(largestcu,简写为lcu),在hevc中也叫称为编码树单元(codedtreeunit,简写为ctu)。除了编码单元的概念,在hevc中也引入了预测单元(predictionunit,简写为pu)的概念。一旦完成cu分层树(hierarchicaltree)的拆分,根据预测类型和预测单元分割,每一个叶cu可以进一步拆分成一个或多个预测单元。hevc也支持切片(slice)结构,在此结构中,一图像被分割成多个切片并且每个切片使用它自己的编解码参数或配置。

随着hevc标准的发展,hevc扩展的也开始发展。hevc扩展包括了以非4:2:0色度格式为目标的范围扩展(rangeextensions,简写为rext),如4:2:2和4:4:4,以及更高的比特深度(bit-depth)的视频如每样本12、14和16比特的视频。利用rext的一个可能的应用是通过有线或无线连接的屏幕共享。由于屏幕内容的特定特性,已经完成开发编解码工具并且证明了编解码效率的显著增益。

在当前开发的针对高效视频编码标准的屏幕内容编解码(screencontentcoding),一些工具由于在屏幕内容编解码效率方面的提高,已经被采用。对于帧内块(intrablock),使用基于来自相邻块的重构像素的预测来根据常规方法执行帧内预测。帧内预测可以从包括垂直模式、水平模式和各种角度预测模式的一组帧内模式中选择一个帧内模式。对于hevc屏幕内容编解码来说,一个被称为帧内块复制(intrablockcopy,简写为intrabc)的新的帧内编解码模式已经被使用。2013年4月18-26日,在韩国仁川举行的视频编码联合协作小组(jointcollaborativeteamonvideocoding,简写为jct-vc)itu-tsg16wp3和iso/iecjtc1/sc29/wg11,第13次会议中,budagavi在ahg8:使用帧内运动补偿的视频编解码(videocodingusingintramotioncompensation)中最初提出了intrabc技术,文献:jctvc-m0350(以下称为jctvc-m0350)。图1所示一个jctvc-m0350的示例,其中使用帧内运动补偿(motioncompensation,简写为mc)对编码单元(cu,110)进行编码,预测块(120)由当前cu和位移矢量(displacementvector)(112)来定位。在本示例中,搜索区域被限于当前ctu(编码树单元),左边ctu和左左(left-left)ctu,预测块从已经重构的区域中获得。然后,对当前cu的位移矢量也叫块矢量(blcokvector,简写为bv)和残差进行编码。众所周知的是,hevc采用ctu和cu块结构作为编解码视频数据的基础单元。每个图像被划分成多个ctu并且每个ctu递归地划分成多个cu。在预测阶段中,每个cu可以被分成用于执行预测处理的多个块,称之为预测单元(predictionunits,简写为pus)。在每个cu形成预测残差之后,与每个cu相关的残差被分成应用转换的多个块,称之为转换单元(transformunits,简称tus)。

在jctvc-m0350中,至少在以下区域,帧内运动补偿不同于用于帧间预测的运动补偿:

帧内运动补偿的运动矢量(mvs)被限制为一维的(1-d)(也就是水平或者垂直),而帧间运动补偿使用二维的(2-d)运动估计。

帧间运动补偿的二进制化是定长的,而帧间预测使用指数哥伦布(exponential-golomb)。

帧内运动补偿引入了一个新的语法元素来用指示运动矢量是水平的或者垂直的。

基于jctvc-m0350,2013年7月25日-8月2日,在奥地利维也纳举行的jct-vcitu-tsg16wp3和iso/iecjtc1/sc29/wg11,第14次会议中,pang等人在non-rces:使用2-d运动矢量的帧内运动补偿(intramotioncompensationwith2-dmvs)中公开了一些修正,文献:jctvc-n0256(以下称为jctvc-n0256)。首先,帧内mc被扩展至支持2-dmvs,所以mv的两个分量可以同时是非0的。相比于mv被严格限制为水平的或者垂直的传统方法,这为帧内mc提供了更多的灵活性,

在jctvc-t1005(2015年2月10-18日,在瑞士日内瓦举行的jct-vcitu-tsg16wp3和iso/iecjtc1/sc29/wg11,第20次会议中,joshi等人,hevc屏幕内容编码草案文本3(hevcscreencontentcodingdrafttext3),文献:jctvc-t1005)中,帧内块复制模式与普通的帧间模式相协调(harmonized)。在去块(debolcking)之前重构的当前图像被插入到list_0的参考帧列表中作为参考帧的一个。帧内块复制模式通过设置refidx(也就是参考画面索引(referencepictureindex))来标示重构的当前图像。因此,对于一个当前图像,需要输出两个图像,一个是未过滤(un-filtered)的图像(也就是在去块之前),另一个是过滤的图像(也就是在样本自适应偏移(sampleadaptiveoffset,简称为sao)以后)。为了支持帧内块复制,屏幕内容编码(screencontentcoding,简称scc)的最坏情况的带宽(bandwidth,简称为bw)大于hevc和hevcreext。

在jctvc-t0045(2015年2月10-18日,在瑞士日内瓦举行的jct-vcitu-tsg16wp3和iso/iecjtc1/sc29/wg11,第20次会议中,lainema等人在ahg10:帧内块复制的存储器带宽压缩(memorybandwidthreductionforintrablockcopy),文献:jctvc-t0045)和jctvc-t0051(2015年2月10-18日,在瑞士日内瓦举行的jct-vcitu-tsg16wp3和iso/iecjtc1/sc29/wg11,第20次会议中,laroche等人在ahg10:在ibc上的存储压缩(onibcmemoryreduction),文献:jctvc-t0051)中,提出了一个标示一个ctu-级(level)旗标来指示当前ctu是否会因帧内块复制模式被后续块引用的方法。如果旗标是1,这个ctu的去块和sao是禁止的。这个ctu可以用于帧内块复制模式。否则,这个ctu的去块和sao是可用的。在这种情况下,这个ctu不能被用于后续块的帧内块复制模式。因此,只需要输出一种ctu,最坏情况下的带宽和hevc一样。

因为参考图像通常存储在dram(dynamicrandomaccessmemory,动态随机存取存储器)中,存储器带宽的计算需要考虑dram数据访问行为。对于带宽的估算,方程式(1)通常用于计算像素在最坏情况中每个像素插值所需要像素的平均数。m和n是pu的宽度和高度,m和n是dram中一个地址的存储单元的宽度和高度。如果采用了双向预测(bi-prediction),数值应该是双倍的。

在上述方程式中,代表对应于不小于χ的最小整数的上限函数。



技术实现要素:

本发明提出了一种用于减少最坏情况下频宽的视频编解码方法及其装置。

提出了一种用于视频数据的视频编解码方法及装置。确定受限制的intrabc预测(帧内块复制预测),限制intrabc预测而不使用属于选定块组中的一个或多个块的样本。使用包括所述受限制的intrabc预测的编解码模式将视频编码或者解码应用于当前块。在一个示例中,所述选定块组由8×8双向预测的pu、4×8单向预测的pu,8×4单向预测的pu,来自于16×16pu的amp(asymmetricmotionpartiton,非对称运动分割)双向预测的pu或者任何他们的组合组成。在另一个示例中,所述选定块组由8x8双向预测的pu组成。所述受限制的intrabc预测可以应用于具有非444色度格式的所述当前块。

所述受限制的intrabc预测可能包括例外情况,如果满足一个或多个条件,所述受限制的intrabc预测允许在属于所述选定块组的块中使用样本。例如,所述条件可能对应于所述块是8x8intrabc编码的块,所述块位于所述当前块中的当前ctu(编码树单元)或者当前块的左ctu内,或者所述块的两个运动矢量中的至少一个具有整数值。在另一个示例中,所述条件对应于所述块是两个运动矢量中的至少一个具有整数值的8×8双向预测的块。在又一个示例中,所述条件对应于所述一个或多个块通过都有具有整数值的运动矢量编码或者通过使用intrabc预测编码。所述条件也可以对应于所述块通过至少一个具有整数值的运动矢量分量编码。

提出了一种用于视频数据的视频编解码方法和装置。因为一个或多个选定预测单元尺寸、预测单元的预测类型或者两者是禁止的或者不允许的,受限制的预测被决定以不允许或者禁止选定预测。使用包括与所述受限制预测一致的intrabc预测的预测模式将视频编解码应用于所述当前块。在一个示例中,所述选定pu尺、pu预测类型或者两者对应于8×8双向预测的pu。与所述受限制预测一致的所述intrabc预测可以被应用于具有非444色度格式的所述当前块。

所述选定pu的尺寸、pu预测类型或者两者对于所述受限制的预测是禁止的或不允许的,除非一个或多个条件被确定是满足的。例如,所述选定pu的尺寸、pu预测类型或者两者可以对应于8×8双向预测的pu,而所述条件可以对应于所述8×8双向预测的pu中两个运动矢量的其中一个具有整数值或者8×8双向预测的pu的所有运动矢量具有整数值。在另一个示例中,所述选定pu的尺寸,pu预测类型或者两者可以对应于8×8双向预测的pu,所述条件可以对应于所述8×8双向预测的pu中的至少一个运动矢量分量具有整数值。

本发明通过在应用帧内块复制的时候对帧内块复制编解码施加各种约束,可实现减少在最坏情况下的存储器的带宽需求。並使其在最坏情况下的存储器的带宽需求不超過hevc的最坏情况下的存储器的带宽需求。

附图说明

图1示出了根据基于hevc(高效视频编码)的屏幕内容编码测试模块版本4(scm-4.0)的示例性intrabc预测。

图2示出了根据本发明一个实施例的intrabc编解码的示例性流程图,其中使用属于一个或多个选定块尺寸,一个或多个预测类型或者两者的样本来限制intrabc预测。

图3示出了根据本发明一个实施例的视频编解码的示例性流程图,其中一个或多个选定pu(预测单元)尺寸、pu预测类型或者两者对于选定预测是禁止或者不允许的。

具体实施方式

以下描述是实施本发明的最佳实施方式,所做之描述是为了更好的理解本发明的基本原理的目的而不应该对其作限制性理解,本发明保护范围由所附权利要求最佳确定。

用于帧内块复制的块尺寸约束

根据方程式(1)中的公式,对不同pu尺寸和不同存储块尺寸的最坏情况下的带宽分析如表1所示。因为ctu的重构像素数据与dram中的存储器单元对准,所以不需要插值滤波器,输出重构ctu的预过滤或者过滤的结果仅仅给每个像素的带宽增加了1像素。输出一个过滤的ctu(也就是“p+输出”)的总带宽以及输出一个过滤的ctu和未过滤的ctu(也就是“p+输出+未过滤输出”)的总带宽也在如表1所示。在表1中,在每对(m,n)中的hevc的带宽瓶颈在“p+输出”列中用粗体标记。如图1所示,最坏的情况发生于具有双向预测的所有的8×8pu。对于这种块,如果未过滤的像素也被输出,最坏情况下的带宽(如“p+输出+未过滤输出”列所示)大于hevc最坏情况下的输出。

表1

在4:2:0色度格式中,如在jctvc-c007(2010年10月7-15日,在中国广州举行的jct-vcitu-tsg16wp3和iso/iecjtc1/sc29/wg11,第三次会议中,chono等人,jct-vcahg报告:存储压缩(memorycompression),文献:jctvc-c007)和jctvc-t0440(2013年1月14-23日,在瑞士日内瓦举行的jct-vcitu-tsg16wp3和iso/iecjtc1/sc29/wg11,第12次会议,francois等人,ahg7:扩展用于非4:2:0格式的色度预测的性能(theperformanceofextendedintrachromapredictionfornon4:2:0format),文献:jctvc-l0440)中所推荐的,色度被认为是隔行扫描(interleaved)的。这些方法用于存储器bw分析。对于每个在m×n亮度块中的像素,每次从色度的存储器中取出的像素数量按照以下方式计算得到。

实施例1:通过限制intrabc参考块的存取来克服最坏情况下的存储器带宽

为了克服在某些intrabc情况下,增多的最坏情况下的存储器带宽的问题,如果所述intrabc参考块属于选定块组,则限制所述intrabc参考块的存取。

例如,所述intrabc预测能被限制不使用下列预测单元(pu)尺寸和/或pu类型的样本:

1.4×8pu和8×8双向预测的pus;

2.4×8pu,8×4pu,和8×8双向预测的pus;

3.4×8pu,8×4pu,和8×8pus;

4.4×8pu,8×4pu,8×8双向预测的pu,16×4双向预测的pu,4×16双向预测的pu,16×12双向预测的pu,和12×16双向预测的pu;

5.4×8pu,8×4pu,和双向预测的pu;

6.4×8pu和双向预测的pu;

7.双向预测的pu;

8.8×8双向预测的pu;

9.4×8pu;

10.8×4pu;

在另一个示例中,所述intrabc预测能被限制而不使用编码单元的尺寸小于阈值的样本:

11.cu尺寸小于16×16;

12.cu尺寸小于32×32;

13.cu尺寸小于64×64;

在另一个示例中,所述intrabc预测能被限制而不使用pu的尺寸小于阈值的样本来限制:

14.pu尺寸小于16×16;

15.pu尺寸小于32×32;

16.pu尺寸小于64×64;

在另一个示例中,所述intrabc预测能被限制而不使用上述一个或多个条件组合的样本:

17.cu尺寸小于16×16或者pu尺寸是4×16,12×16,16×4或者16×12;

18.cu尺寸小于16×16或者16×4双向预测的pu,4×16双向预测的pu,16×12双向预测的pu,和12×16双向预测的pu;

19.cu尺寸小于16×16或者所述cu有16×4双向预测的pu,4×16双向预测的pu,16×12双向预测的pu和12×16双向预测的pu;

20.cu尺寸小于16×16或者所述cu有16×4双向预测的pu和16×12双向预测的pu,或者有4×16双向预测的pu和12×16双向预测的pu;

21.cu尺寸小于16×16和双向预测的pu。

在另一个示例中,所述intrabc预测能被限制而不使用特定cu/pu分区的样本,例如:

22.cu有16×4双向预测的pu,4×16双向预测的pu,16×12双向预测的pu和12×16双向预测的pu;

23.cu有16×4双向预测的pu和16×12双向预测的pu,或者有4×16双向预测的pu和12×16双向预测的pu。

在另一个示例中,如果满足与运动矢量解析度有关的一个或多个下列条件,所述受限制的intrabc预测遵循后续例外情况,以允许所述intrabc预测去使用属于选定块组(selectedblockgroup)的intrabc参考块的样本:

24.样本由整数mv编码;

25.样本的其中一个mv_x或者mv_y是整数mv;

26.样本的其中一组(mv_x,mv_y)两个都是整数mv;

在另一个示例中,如果满足了与运动矢量解析度有关的一个或多个下列条件,所述受限制的intrabc预测遵循后续例外情况,以允许所述intrabc预测去使用属于选定块组的intrabc参考块的样本:

27.所述intrabc预测来自于由帧内块复制编码的样本;

28.所述intrabc预测来自于不使用插值编码的样本;

29.所述intrabc预测来自于其中一个参考帧是来自于用于帧内块复制的重构的当前图像的样本;

30.当在当前切片数据头中的use_integer_mv_flag是1时,采用所述intrabc预测;

31.所述intrabc预测来自于切片中use_integer_mv_flag是1的样本;

上述情况中的一个或多个可以被一起应用于一些编解码规格或/和一些色度格式。例如,如果使用了条件2,23,27和30,在8×4/4×8uni-predpu(单向预测的pu,简称为pu)中,或者在8×8bi-predpu(双向预测的pu)中,或在有16×4双向预测的pu和16×12双向预测的pu的cu中,或者有4×16双向预测的pu和12×16双向预测的pu的cu中的样本不允许通过intrabc进行预测,除非如果这个样本的其中一个参考帧来自于重构的当前图像或者在样本所属的切片数据头中的use_integer_mv_flag是1。

对于上述的情况,一个图像可以被分成多个n×n块,其中n可以是4,8,16,32,64,或者所述n×n块可以是ctu/ctb的尺寸。对于这些块,编码器可以使用一个旗标以指示所述块是否可以被帧内块复制模式引用。这个标志可以在数码流中被标示或者推导。例如,对于条件8,n可以是16,以及这个标志以指示这个16×16块是否具有小于16×16的cu、如果这个旗标为假,那么这个块不能被帧内块复制模式引用。

在另一个示例中,对于情况18,如果一个16×16块有一个小于16×16的cu或者有16×4双向预测的pu,4×16双向预测的pu,16×12双向预测的pu和12×16双向预测的pu,这个16×16的块不能被帧内块复制模式引用。

在另一个示例中,对于情况20,如果一个16×16块有一个小于16×16的cu或者有16×4双向预测的pu和16×12双向预测的pu,或者cu有4×16双向预测的pu和12×16双向预测的pu,这个16×16块不能被帧内块复制模式引用。

在另一个示例中,块尺寸可以是8×8,并且使用了条件2,22,28和31.在另一个示例中,使用了条件2,28和31。

在另一个示例中,块尺寸可以是16×16,并且使用了条件2,22,28和31。

在另一个示例中,有约束的帧内预测可以与该n×n块约束一起被应用。例如,如果应用了有约束的帧内预测并且这个n×n块中的一个样本通过普通帧间模式编码(也就是参考样本不来自于当前图像),对于帧内块复制,这个块被标记为无效的。

上述条件可以与其他约束组合。例如,对某一个区域,这个区域中所有的样本可以用于帧内块复制模式。对于在这个区域之外的样本,可以应用一个或多个上述的约束(或/和n×n块标志/约束)。所述区域可以是当前ctu或者当前ctu加左边m个ctus,其中m是一个整数值,例如1或者2.

在另一个示例中,根据上述约束和帧内块复制约束(例如:在当前图像之外,与当前pu/cu重叠,在应用有约束的帧内预测时的帧间编码像素),无效样本被当作默认值,如128或者(1<<(比特深度(bit_depth)-1))。

在另一个示例中,当当前切片是p-切片或者i-切片的时候,在jctvc-t0045和jctvc-t0051中的ctu旗标可以被推测为0(也就是总是允许去块和sao)。

实施例2:通过在一些规格或者色度格式中禁止或不允许一些模式来克服最坏情况下的存储器带宽

根据本实施例,为了降低一些规格或者一些色度格式中的最坏情况下的带宽,一些模式被禁止或不允许使用选定预测。

例如,对应于下列选定pu尺寸和/或pu预测类型中的其中一个块,对于选定预测可以是禁止的或者不允许的:

1.4×8pu和8×8双向预测的pu;

2.4×8pu,8×4pu和8×8双向预测的pu;

3.4×8pu,8×4pu和8×8pu;

4.4×8pu,8×4pu,8×8双向预测的pu,16×4双向预测的pu,4×16双向预测的pu,16×12双向预测的pu和12×16双向预测的pu;

5.4×8pu,8×4pu,8×8双向预测的pu,16×4双向预测的pu,4×16双向预测的pu,16×12双向预测的pu和12×16双向预测的pu;

6.4×8pu,8×8双向预测的pu,4×16双向预测的pu和12×16双向预测的pu;

7.双向预测的pu;

8.8×8双向预测的pu;

9.4×8pu;

10.8×4pu;

11.4×8pu和双向预测的pu。

在另一个示例中,对应于尺寸小于阈值的下列选定cus中的一个块,对于选定预测可以是禁止的或者不允许:

12.cu尺寸小于16×16;

13.cu尺寸小于32×32;

14.cu尺寸小于64×64;

在另一个示例中,对应于尺寸小于阈值的下述选定pus中的一个块,对于选定预测可以是禁止的或者不允许的:

15.pu尺寸小于16×16;

16.pu尺寸小于32×32;

17.pu尺寸小于64×64;

在另一个示例中,对应于上述cu和pu一个或多个情况的组合的块,对于选定预测可以是禁止的或者不允许的:

18.禁止尺寸小于16×16的cu和双向预测的pu;

19.禁止有16×4双向预测的pu,4×16双向预测的pu,16×12双向预测的pu和12×16双向预测的pu的cu;

20.禁止有16×4双向预测的pu和16×12双向预测的pu的cu,或者有4×16双向预测的pu和12×16双向预测的pu的cu;

21.禁止尺寸小于16×16的cu或者尺寸是4×16,12×16,16×4或者16×12的pu;

22.禁止尺寸小于16×16的cu或者16×4双向预测的pu,4×16双向预测的pu,16×12双向预测的pu和12×16双向预测的pu;

23.禁止尺寸小于16×16的cu或者有16×4双向预测的pu,4×16双向预测的pu,16×12双向预测的pu和12×16双向预测的pu的cu;

24.禁止尺寸小于16×16的cu或者有16×4双向预测的pu和16×12双向预测的pu的cu,或者有4×16双向预测的pu和12×16双向预测的pu的cu。

在另一个示例中,对应于选定pu尺寸和/或pu类型和mv解析度的块,对于选定预测可以是禁止的或者不允许的:

25.禁止/不允许具有分数(fractional)mv的4×8pu和8×8双向预测的pu;

26.禁止/不允许具有分数mv的4×8pu,具有分数mv的8×4pu,和8×8双向预测的pu;

27.禁止/不允许具有分数mv的4×8pu,具有分数mv的8×4pu,8×8双向预测的pu,具有分数mv的16×4双向预测的pu,具有分数mv的4×16双向预测的pu,具有分数mv的16×12双向预测的pu,和具有分数mv的12×16双向预测的pu;

28.禁止/不允许具有分数mv的4×8pu,8×8双向预测的pu,具有分数mv的4×16双向预测的pu,以及具有分数mv的12×16双向预测的pu;

29.禁止/不允许具有分数mv的4×npu和8×8双向预测的pu,n可以是8,16;

30.禁止/不允许具有分数mv_x以及分数mv_y的4x8pu和8×8双向预测的pu。

在另一个示例中,如果满足了与pu尺寸和/或pu类型和mv解析度有关一个或多个的条件,禁止或者不允许块模式是遵循一个或多个例外情况以允许所述intrabc预测。

31.允许由整数mv编码的pu;

32.允许mv-x或mv-y的其中一个是整数mv的pu;

33.允许一组(mv-x,mv-y)两者是整数mv的pu;

34.允许具有分数mv的4x8pu,如果在相同cu中的其他4x8pu由整数mv编码或者由帧内块复制编码;

35.允许mv-y是整数mv的pu;

36.允许一个列表中的mv-y是整数mv的pu;

37.允许mv-x是整数mv的pu;

38.允许一个列表中的mv-x是整数mv的pu;

39.允许mvs的两个列表是相同的以及两个参考图像是相同图像的双向预测的pu。

在另一个示例中,如果满足一个或多个下述条件,禁止或者不允许块模式遵循一个或多个例外情况以允许所述intrabc预测:

40.允许参考视频中的一个来自于重构的当前图像的pu,其中重构当前图像用于帧内块复制;

41.允许当use_integer_mv_flag是1时的在当前切片数据头中的pu;

42.允许在use_integer_mv_flag是1的切片中的pu;

43.允许由帧内块复制编码的pu;

44.允许不使用插值编码的pu;

一个或多个这些约束可以被一起应用到一些规格或/和一些色度格式中,如非444格式或者420格式。例如,如果使用了项目9和31,具有分数mv(分数的mv_x或者分数的mv_y)的4x8pu在420格式中是不被允许的。在另一个示例中,如果使用了项目9和32,同时具有分数mv_x和具有分数mv_y的4x8pu在420格式中是不被允许的。

在另一个示例中,如果使用了项目9和35,具有分数mv_y的4x8pu在420格式中是不被允许的。在另一个示例中,如果使用了项目8和36,有分数的l0mv_y和分数的l1mv_y的8x8双向预测的pu在420格式中是不被允许的。

在又一个示例中,如果使用了项目8和33,8x8双向预测的pu是不被允许的。然而,具有一组(mv_x,mv_y)都是整数mv的8x8双向预测的pu是允许的。

在又一个示例中,如果使用了项目8,33和39,8x8双向预测的pu是不被允许的,但是具有一组(mv_x,mv_y)都是整数mv的8x8双向预测的pu是允许的,或者具有相同l0mv和l1mv以及两个参考图像是相同图像,如具有相同的poc(pictureordercount,图像阶数)的8x8双向预测的pu是允许的。

在又一示例中,如果使用了项目8,33,39,8x8双向预测的pu对于选定预测是不被允许的,但是具有所有整数mv_x和整数mv_y的8x8双向预测的是允许的,或者具有相同l0mv和l1mv以及对于两个参考图像相同的poc(pictureordercount,图像阶数)的8x8双向预测的pu是允许的。

在又一个示例中,如果使用了项目8,35和39,具有整数l0mv_y或者整数l1mv_y的8x8双向预测的pu是允许的,或者具有相同l0mv和l1mv以及两个参考图像是相同图像,如具有相同的poc的8x8双向预测的pu是允许的。

当使用了intrabc时,可以应用这些约束/条件,也就是当pps_curr_pic_ref_enabled_flag是1时,currpicinlist0flag是1,或者currpicinlist1flag是1的时候。

在上述实施例中,当使用一些如420,444或者422格式的色度格式的时候,这些约束/条件可以被应用。例如,下列文本被指定于项目9和31。

当inter_pred_idc[x0][y0]=1,npbw=4(也就是pu的宽度=4),npbh=8(也就是pu高度=8),以及currpicinlist0flag和currpicinlist1flag两者中的一个等于1,以及满足下述条件中的一个时,变量fourbyeightunipredfractionalmvinuseforcurrpic被设置为等于1。所述变量指示具有分数mv的4x8单向预测的pu是否对于intrabc模式是允许的。下述四个条件意味着在l0或者l1中存在一个参考图像以及mv_x和mv_y是分数的。

-refidxl0[x0][y0]不是–1且mvl0[x0][y0][0]&0x03不是0

-refidxl0[x0][y0]不是–1且mvl0[x0][y0][1]&0x03不是0;

-refidxl1[x0][y0]不是–1且mvl1[x0][y0][0]&0x03不是0;

-refidxl1[x0][y0]不是–1且mvl1[x0][y0][1]&0x03不是0.

其中mvlx[x0][y0][0]是mvlx[x0][y0]的x分量,以及mvlx[x0][y0][1]是mvlx[x0][y0]的y分量。

符合屏幕内容编码扩展规格的数码流将服从下述约束:

-当chroma_format_idc小于3时,fourbyeightunipredfractionalmvinuseforcurrpic的值将等于0。

在另一个示例中,下述文本被指定于项目9和35。

当inter_pred_idc[x0][y0]=1,npbw=4,npbh=8,以及currpicinlist0flag和currpicinlist1flag两者之一等于1,以及下述条件的其中一个为真,变量fourbyeightunipredfractionalmvyinuseforcurrpic被设置为等于1。

–refidxl0[x0][y0]不是–1以及mvl0[x0][y0][1]&0x03不是0;

–refidxl1[x0][y0]不是–1以及mvl1[x0][y0][1]&0x03不是0。

符合屏幕内容编码扩展规格的数码流将服从下述约束:

-当chroma_format_idc小于3时,fourbyeightunipredfractionalmvinuseforcurrpic的值将等于0。

例如,下述文本被指定于项目9和31。

当inter_pred_idc[x0][y0]=1,npbw=4,npbh=8,以及currpicinlist0flag和currpicinlist1flag两者之一等于1,并且下述条件中的一个为真,变量fourbyeightunipredfractionalmvinuseforcurrpic被设置为等于1。

–refidxl0[x0][y0]不是–1以及mvl0[x0][y0][0]&0x03不是0;

–refidxl0[x0][y0]不是–1以及mvl0[x0][y0][1]&0x03不是0;

–refidxl1[x0][y0]不是–1以及mvl1[x0][y0][0]&0x03不是0;

–refidxl1[x0][y0]不是–1以及mvl1[x0][y0][1]&0x03不是0。

符合屏幕内容编码扩展规格的数码流将服从下述约束:

-当chroma_format_idc小于3时,fourbyeightunipredfractionalmvinuseforcurrpic的值将等于0。

另一个示例,下述文本被指定于项目9和35。

当inter_pred_idc[x0][y0]=1,npbw=4,npbh=8,以及currpicinlist0flag和currpicinlist1flag两者之一等于1,并且下述条件中的一个为真,变量fourbyeightunipredfractionalmvinuseforcurrpic被设置为等于1。

–refidxl0[x0][y0]不是–1以及mvl0[x0][y0][1]&0x03不是0

–refidxl1[x0][y0]不是–1以及mvl1[x0][y0][1]&0x03不是0

符合屏幕内容编码扩展规格的数码流将服从下述约束:

-当chroma_format_idc小于3时,fourbyeightunipredfractionalmvinuseforcurrpic的值将等于0。

在另一个实施例中,当use_integer_mv_flag是1的时候,这些约束被应用。在又一实施例中,通过使用数码流一致性的要求或者规范变化,这些约束可以被应用。例如,数码流一致性需要当pps_curr_pic_ref_enabled_flag是1的时候,具有分数mv(mv_x和mv_y中的其中一个是分数的mv)的4x8pu在420格式中是不允许的。在另一个示例中,数码流一致性需要当pps_curr_pic_ref_enabled_flag是1的时候,同时具有分数mv_x和分数的mv_y在420格式中是不允许的。

在又一个实施例中,这些约束是否被应用取决于在序列参数集(sequenceparameterset,简称sps),pps或者切片数据头中的启用语法。例如:

如果(pps_curr_pic_ref_enabled_flag==1&&chroma_format_idc<3&&

use_integer_mv_flag==1)

disable_8x8_bi_4x8_uni_frac_mv_inter_flag;

或者

如果(pps_curr_pic_ref_enabled_flag==1&&chroma_format_idc<3)

disable_8x8_bi_4x8_uni_frac_mv_inter_flag

例如,如果pps_curr_pic_ref_enabled_flag=1且chroma_format_idc<3,语法disable_8x8_bi_4x8_uni_frac_mv_inter_flag可以增加到pps中。如果disable_8x8_bi_4x8_uni_frac_mv_inter_flag=1,数码流一致性的需求是需要的。在这种情况下,当pps_curr_pic_ref_enabled_flag=1且chroma_format_idc<3时,对于8x4pu(也就是npbw=8以及npbh=4)或者4x8pu(也就是npbw=4以及npbh=8)的inter_pred_idc[x][y]将不等于2当当前pu的mv_x和mv_y不是整数mv或者当前pu的mv_x和mv_y中的一个不是整数mv。

intrabc启用标志(也就是curr_pic_as_ref_enabled)可以在pps或者切片数据头中被标示,所以intrabc可以在一些图像中启用,在一些图像中禁止。当intrabc启用的时候,应用提议的约束。

受限制的intrabc预测可以应用于非444色度格式的视频。对于每个具有两个4x8pus的8x8cu,如果另一个pu通过整数mv编码或者通过帧内块复制编码,一个pu可以具有分数mvs(也就是“分数的mv_x和分数的mv_y”或者“分数的mv_x或者分数的mv_y”)。

在实施例2的一个示例中,如果应用约束29,数码流一致性的需求是需要的。在这种情况下,当curr_pic_as_ref_enabled_flag=1时,当npbw=8且npbh=8时,inter_pred_idc[x][y]将不等于2。

在另一个示例中,当curr_pic_as_ref_enabled_flag=1且npbw=8且npbh=8时,inter_pred_idc[x][y]=2从码字中移除。

在一个示例中,在方法-2中,如果约束39和30被应用,数码流一致性的需求是需要的,其是当curr_pic_as_ref_enabled_flag=1以及chroma_format_idc<3时,对于8x8pu(也就是npbw=8且npbh=8)或者4x8pu(也就是npbw=4且npbh=8)的inter_pred_idc[x][y]将不等于2。

图2示出了根据本发明一实施例的intrabc编解码的示例性流程图,其中intrabc预测被限制而不使用属于一个或多个选定块尺寸,一个或多个预测类型或者两者的样本。在步骤210中,系统接收与当前图像中当前块相关的输入数据。对于编码,输入数据对应于与待编码的当前块相关的数据,对于解码,输入数据对应于包括当前块的编码的数码流。在步骤220中,受限制的intrabc预测通过限制intrabc预测而不使用属于选定块组的一个或多个块中的样本所来决定。在步骤230中,使用包括受限制的intrabc预测的编解码模式将视频编码或者解码应用于当前块。

图3示出了根据本发明一实施例的视频编解码的示例性流程图,其中一个或多个选定pu尺寸、pu预测类型或者两者是禁止的或者不允许的。在步骤310中,系统接收与当前图像中当前块相关的输入数据。对于编码,输入数据对应于与待编码的当前块相关的数据,对于解码,输入数据对应于包括当前块的编码的数码流。在步骤320中,受限制的预测通过禁止或者不允许一个或多个选定pu尺、pu预测类型或者两者有的选定预测所决定。在步骤330中,使用包括与受限制预测一致的intrabc预测的编解码模式将视频编解码应用于当前块,其中选定预测对应于8x8双向预测。

在一个实施例中,禁止选定pu尺寸和/或pu预测类型意味着这里没有与禁止的选定pu和/或pu预测类型相关的语法元素。在另一方面,不允许选定pu尺寸和/或pu预测类型意味着编码器可以或可以不使用选定pu尺寸和/或pu预测类型,然而,解码器可以确保在解码当前块的时候,将不使用选定pu和/或pu预测类型。

上述示出的流程图是为了说明包括本发明实施例的在视频编码器或者解码器中的受限制intrabc编解码的示例。在不违背本发明精神的情况下,本领域技术人员可以修改每个步骤、重新排列步骤、拆分步骤或者组合步骤来实施本发明。

以上描述是为了让本领域普通技术人员能够实施在特定应用及其要求的上下文中提供的本发明。对所描述实施例的各种修改对于本领域技术人员而言将是显而易见的,而且本发明定义的一般原理可能应用于其他实施例。因此,本发明不旨在限于所示出或者描述的实施例,而且与本发明所公开的原理或新颖特征一致的最宽范围。在上述详细描述中,示出了各种特定细节以便提供一个本发明的透彻理解。然而,本领域技术人员可以理解并实施本发明。

如上所述的本发明的实施例可以以各种硬件、软件代码或者两者的组合来实现。例如,本发明的一个实施例可以是集成到视频压缩芯片中的一个或多个电子电路或者集成视频压缩软件中的程序代码,以执行本文所述的处理。本发明的实施例还可以是在数字信号处理器(dsp)上执行的程序代码,以执行本文所述的处理。本发明还可以涉及由计算机处理器、数字信号处理器、未处理器或者现场可编程门阵列(fpga)执行的多个功能。这些处理器可以被配置为通过执行定义为本发明所体现的特定方法的机器可读软件代码或者固件代码来执行根据本发明的特定任务。软件代码或固件代码可以用不同的编程语言和不同的格式或样式来开发。软件代码还可以针对不同的目标平台编译。然而,不同的代码格式、软件代码的风格和语言以及其他手段的配置代码以执行与本发明一致的任务将不得脱离本发明的精神和范围。

在不脱离本发明精神或基本特征的情况下,本发明还可以以其他具体形式实施。所描述的示例在所有方面被认为仅是说明性的而不是限制性的。本发明的范围由所附权利要求表示而不是前面的描述。在权利要求的等同物的含义和范围内的所有改变将被包括在其范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1