用于对视频样本的块进行去块的方法、设备和系统与流程

文档序号:12290212阅读:545来源:国知局
用于对视频样本的块进行去块的方法、设备和系统与流程

本发明通常涉及数字视频信号处理,尤其涉及用于对视频样本的块进行去块的方法、设备和系统。本发明还涉及包括记录有用于对视频样本的块进行去块的计算机程序的计算机可读介质的计算机程序产品。



背景技术:

当前存在包括用于传输和存储视频数据的应用程序的许多视频编码用的应用程序。还开发了许多视频编码标准并且其它视频编码标准当前正在开发中。视频编码标准化的最新进展已导致形成被称为“视频编码联合协作小组”(JCT-VC)的组。该视频编码联合协作小组(JCT-VC)包括:已知为视频编码专家组(VCEG)的国际电信联盟(ITU)的电信标准化部门(ITU-T)的研究组16、问题6(SG16/Q6)的成员;以及还已知为运动图片专家组(MPEG)的国际标准化组织/国际电工委员会联合技术委员会1/小组委员会29/工作组11(ISO/IEC JTC1/SC29/WG11)的成员。

视频编码联合协作小组(JCT-VC)产生了显著优于“H.264/MPEG-4AVC”(ISO/IEC 14496-10)视频编码标准的新视频编码标准。该新视频编码标准已被命名为“高效率视频编码(HEVC)”。高效率视频编码(HEVC)的进一步开发的目的旨在引入针对以不同的名称已知为“画面内容”或“不连续色调内容”的内容的有所改进的支持。这种内容是来自计算机或平板装置(例如,来自DVI连接器)的或者如将经由无线HDMI链路进行传输的典型的视频输出。按照前述的视频压缩标准无法良好地应对这种内容,因而目的旨在改进针对这种类型的内容的可实现的编码效率的新活动正在进行中。

视频数据包括一个或多个颜色通道。通常,存在一个主要颜色通道和两个次要颜色通道。主要颜色通道通常被称为“亮度”通道,并且次要颜色通道通常被称为“色度”通道。使用诸如“YCbCr”或“RGB”等的颜色空间来表示视频数据。

对于画面内容应用,通常使用“RGB”,这是因为“RGB”是通常用于驱动LCD面板的格式。最大信号强度存在于“G”(绿色)通道中,因而通常使用主要颜色通道来对G通道进行编码,并且使用次要颜色通道来对其余通道(即,“B”和“R”)进行编码。这种编码方法可被称为“GBR”。在“YCbCr”颜色空间处于使用中的情况下,使用主要颜色通道来对“Y”通道进行编码,并且使用次要颜色通道来对“Cb”通道和“Cr”通道进行编码。

还使用特定色度格式来表示视频数据。按4:4:4色度格式处于使用中的情况下的相同空间密度来对主要颜色通道和次要颜色通道进行空间采样。对于画面内容,常用的色度格式是4:4:4,这是因为通常LCD面板按4:4:4格式来提供像素。位深度定义各个颜色通道中的样本的位宽度,这暗示了可用样本值的范围。通常,所有的颜色通道都具有相同的位深度,但这些颜色通道也可以具有不同的位深度。

在高效率视频编码(HEVC)中,使用帧内预测、帧内块复制预测和帧间预测这三种预测方法。帧内预测方法和帧内块复制方法使得能够根据视频帧的一部分来预测同一视频帧的其它部分的内容。帧内预测方法通常产生具有定向纹理的样本块,其中帧内预测模式指定纹理的方向和用作用以产生该纹理的基础的帧内的邻接样本。帧内块复制预测方法使用来自当前帧的样本块作为针对当前样本块的预测。

帧间预测方法根据先前视频帧中的块来预测视频帧内的样本块的内容。可以将先前视频帧(即,按与可能不同的“显示顺序”相反的“解码顺序”)称为“参考帧”。帧间预测的预测单位在针对“单向”帧间预测进行配置的情况下,可以参考一个参考帧,或者在针对“双向”帧间预测进行配置的情况下,可以参考两个参考帧。从各参考帧获得一个样本块。各参考帧是从参考图片的列表中所选择的。样本块相对于使用运动矢量所考虑的预测单位(PU)的位置发生相对偏移。在针对双向帧间预测来配置预测单位(PU)的情况下,应用单独的运动矢量以从各参考帧获得样本块。

视频帧序列内的第一个视频帧由于不存在可用于参考的在前帧,因此通常对该第一个帧内的所有样本块使用帧内预测。后续视频帧可以使用一个或多个先前视频帧,其中根据这一个或多个先前视频帧来预测样本块。为了使编码效率最大化,通常使用产生最接近所拍摄帧数据的预测块的预测方法。预测样本块和所拍摄帧数据之间的剩余差已知为“残差”(residual)。通常将差的该空间域表示变换为频域表示。通常,频域表示针对从摄像传感器拍摄到的内容(还称为“自然内容”、“连续色调内容”或“照相机拍摄内容”)紧凑地存储空间域表示中所存在的信息。对于画面内容,通过对诸如字体、窗口边缘和图标结果等的内容进行软件渲染所得到的较锐利边缘不能高效地在频域中表示。频域表示包括通过应用诸如整数离散余弦变换(DCT)等的变换所得到的“残差系数”的块。此外,对残差系数(或“缩放变换系数”)进行量化,这引入了损耗但还进一步减少了需要编码在位流中的信息量。可以将还已知为“变换系数”的残差的有损频域表示存储在位流中。将具有非零值的各残差系数称为“有效”残差系数。解码器内所恢复的残差中的“损耗”量影响了从位流解码得到的视频数据与所拍摄帧数据相比的失真并且影响了位流的大小。



技术实现要素:

本发明的目的是实质上克服或至少改进现有配置的一个或多个缺点。

根据本公开的一个方面,提供一种用于对视频数据的样本块的边缘进行去块的方法,所述方法包括以下步骤:针对视频数据的两个邻接块中的第一个块来对第一预测模式进行解码,其中视频数据的各个块包括主要颜色通道和至少一个次要颜色通道;针对视频数据的所述两个邻接块中的第二个块来对第二预测模式进行解码;在所述第一预测模式和所述第二预测模式都是帧内块复制的情况下,沿着与视频数据的所述第一个块和视频数据的所述第二个块之间的边界相对应的边缘来针对样本块确定边界强度值,其中在与所述两个邻接块相关联的块矢量具有不同大小的情况下,所述边界强度值表示应用弱的去块滤波器,并且在所述块矢量具有相等大小的情况下,所述边界强度值表示不应用去块滤波;以及仅在所确定的边界强度值表示应当应用所述弱的去块滤波器的情况下,才沿着所述两个邻接块的所述边缘向视频数据的样本块应用所述弱的去块滤波器,其中所述弱的去块滤波器不同于对被判断为具有两个邻接配置的帧内预测模式块的边缘所应用的滤波器。

根据本公开的另一方面,提供一种用于对视频数据的样本块的边缘进行去块的设备,所述设备包括:解码模块,用于针对视频数据的两个邻接块中的第一个块来对第一预测模式进行解码,并且针对视频数据的所述两个邻接块中的第二个块来对第二预测模式进行解码,其中视频数据的各个块包括主要颜色通道和至少一个次要颜色通道;确定模块,用于在所述第一预测模式和所述第二预测模式都是帧内块复制的情况下,沿着与视频数据的所述第一个块和视频数据的所述第二个块之间的边界相对应的边缘来针对样本块确定边界强度值,其中在与所述两个邻接块相关联的块矢量具有不同大小的情况下,所述边界强度值表示应用弱的去块滤波器,并且在所述块矢量具有相等大小的情况下,所述边界强度值表示不应用去块滤波;以及应用模块,用于仅在所确定的边界强度值表示应当应用所述弱的去块滤波器的情况下,才沿着所述两个邻接块的所述边缘向视频数据的样本块应用所述弱的去块滤波器,其中所述弱的去块滤波器不同于对被判断为具有两个邻接配置的帧内预测模式块的边缘所应用的滤波器。

根据本公开的又一方面,提供一种用于对视频数据的样本块的边缘进行去块的系统,所述系统包括:存储器,用于存储数据和计算机程序;处理器,其连接至所述存储器,并且用于执行所述计算机程序,所述计算机程序包括用于进行以下操作的指令:针对视频数据的两个邻接块中的第一个块来对第一预测模式进行解码,其中视频数据的各个块包括主要颜色通道和至少一个次要颜色通道;针对视频数据的所述两个邻接块中的第二个块来对第二预测模式进行解码;在所述第一预测模式和所述第二预测模式都是帧内块复制的情况下,沿着与视频数据的所述第一个块和视频数据的所述第二个块之间的边界相对应的边缘来针对样本块确定边界强度值,其中在与所述两个邻接块相关联的块矢量具有不同大小的情况下,所述边界强度值表示应用弱的去块滤波器,并且在所述块矢量具有相等大小的情况下,所述边界强度值表示不应用去块滤波;以及仅在所确定的边界强度值表示应当应用所述弱的去块滤波器的情况下,才沿着所述两个邻接块的所述边缘向视频数据的样本块应用所述弱的去块滤波器,其中所述弱的去块滤波器不同于对被判断为具有两个邻接配置的帧内预测模式块的边缘所应用的滤波器。

根据本发明的又一方面,提供一种存储有计算机程序的非瞬态计算机可读介质,所述计算机程序用于对视频数据的样本块的边缘进行去块,所述计算机程序包括以下代码:用于针对视频数据的两个邻接块中的第一个块来对第一预测模式进行解码的代码,其中视频数据的各个块包括主要颜色通道和至少一个次要颜色通道;用于针对视频数据的所述两个邻接块中的第二个块来对第二预测模式进行解码的代码;用于在所述第一预测模式和所述第二预测模式都是帧内块复制的情况下、沿着与视频数据的所述第一个块和视频数据的所述第二个块之间的边界相对应的边缘来针对样本块确定边界强度值的代码,其中在与所述两个邻接块相关联的块矢量具有不同大小的情况下,所述边界强度值表示应用弱的去块滤波器,并且在所述块矢量具有相等大小的情况下,所述边界强度值表示不应用去块滤波;以及用于仅在所确定的边界强度值表示应当应用所述弱的去块滤波器的情况下、才沿着所述两个邻接块的所述边缘向视频数据的样本块应用所述弱的去块滤波器的代码,其中所述弱的去块滤波器不同于对被判断为具有两个邻接配置的帧内预测模式块的边缘所应用的滤波器。

根据本发明的又一方面,提供一种用于对视频数据的样本块的边缘进行去块的方法,所述方法包括以下步骤:针对视频数据的两个邻接块中的第一个块来对第一预测模式进行解码,其中视频数据的各个块包括主要颜色通道和至少一个次要颜色通道;针对视频数据的所述两个邻接块中的第二个块来对第二预测模式进行解码;沿着与视频数据的所述第一个块和视频数据的所述第二个块之间的边界相对应的边缘来针对样本块确定边界强度值;以及在所确定的边界强度值表示所述第一预测模式是帧内预测并且所述第二预测模式是帧内块复制预测的情况下,沿着所述边缘向视频数据的样本块应用弱的去块滤波器,其中所述弱的去块滤波器不同于对被判断为具有两个邻接配置的帧内预测模式块的块所应用的滤波器。

根据本发明的另一方面,提供一种用于对视频数据的样本块的边缘进行去块的设备,所述设备包括:解码模块,用于针对视频数据的两个邻接块中的第一个块来对第一预测模式进行解码,并且针对视频数据的所述两个邻接块中的第二个块来对第二预测模式进行解码,其中视频数据的各个块包括主要颜色通道和至少一个次要颜色通道;确定模块,用于沿着与视频数据的所述第一个块和视频数据的所述第二个块之间的边界相对应的边缘来针对样本块确定边界强度值;以及应用模块,用于在所确定的边界强度值表示所述第一预测模式是帧内预测并且所述第二预测模式是帧内块复制预测的情况下,沿着所述边缘向视频数据的样本块应用弱的去块滤波器,其中所述弱的去块滤波器不同于对被判断为具有两个邻接配置的帧内预测模式块的块所应用的滤波器。

根据本发明的又一方面,提供一种用于对视频数据的样本块的边缘进行去块的系统,所述系统包括:存储器,用于存储数据和计算机程序;处理器,其连接至所述存储器,并且用于执行所述计算机程序,所述计算机程序包括用于进行以下操作的指令:针对视频数据的两个邻接块中的第一个块来对第一预测模式进行解码,其中视频数据的各个块包括主要颜色通道和至少一个次要颜色通道;针对视频数据的所述两个邻接块中的第二个块来对第二预测模式进行解码;沿着与视频数据的所述第一个块和视频数据的所述第二个块之间的边界相对应的边缘来针对样本块确定边界强度值;以及在所确定的边界强度值表示所述第一预测模式是帧内预测并且所述第二预测模式是帧内块复制预测的情况下,沿着所述边缘向视频数据的样本块应用弱的去块滤波器,其中所述弱的去块滤波器不同于对被判断为具有两个邻接配置的帧内预测模式块的块所应用的滤波器。

根据本发明的又一方面,提供一种存储有计算机程序的非瞬态计算机可读介质,所述计算机程序用于对视频数据的样本块的边缘进行去块,所述计算机程序包括以下代码:用于针对视频数据的两个邻接块中的第一个块来对第一预测模式进行解码的代码,其中视频数据的各个块包括主要颜色通道和至少一个次要颜色通道;用于针对视频数据的所述两个邻接块中的第二个块来对第二预测模式进行解码的代码;用于沿着与视频数据的所述第一个块和视频数据的所述第二个块之间的边界相对应的边缘来针对样本块确定边界强度值的代码;以及用于在所确定的边界强度值表示所述第一预测模式是帧内预测并且所述第二预测模式是帧内块复制预测的情况下、沿着所述边缘向视频数据的样本块应用弱的去块滤波器的代码,其中所述弱的去块滤波器不同于对被判断为具有两个邻接配置的帧内预测模式块的块所应用的滤波器。

根据本发明的又一方面,提供一种去块方法,包括以下步骤:针对视频数据的两个邻接块中的第一个块来对第一预测模式进行解码,其中视频数据的各个块包括主要颜色通道和至少一个次要颜色通道;针对视频数据的所述两个邻接块中的第二个块来对第二预测模式进行解码;沿着与视频数据的所述第一个块和视频数据的所述第二个块之间的边界相对应的边缘来针对样本块确定边界强度值;以及在所确定的边界强度值表示所述第一预测模式是帧内预测并且所述第二预测模式是帧内块复制预测的情况下,沿着所述边缘仅向所述主要颜色通道的数据应用去块滤波器。

根据本发明的又一方面,提供一种去块设备,包括:解码模块,用于针对视频数据的两个邻接块中的第一个块来对第一预测模式进行解码,并且针对视频数据的所述两个邻接块中的第二个块来对第二预测模式进行解码,其中视频数据的各个块包括主要颜色通道和至少一个次要颜色通道;确定模块,用于沿着与视频数据的所述第一个块和视频数据的所述第二个块之间的边界相对应的边缘来针对样本块确定边界强度值;以及去块滤波器模块,用于在所确定的边界强度值表示所述第一预测模式是帧内预测并且所述第二预测模式是帧内块复制预测的情况下,沿着所述边缘仅向所述主要颜色通道的数据应用去块滤波器。

根据本发明的又一方面,提供一种去块系统,包括:存储器,用于存储数据和计算机程序;处理器,其连接至所述存储器,并且用于执行所述计算机程序,所述计算机程序包括用于进行以下操作的指令:针对视频数据的两个邻接块中的第一个块来对第一预测模式进行解码,其中视频数据的各个块包括主要颜色通道和至少一个次要颜色通道;针对视频数据的所述两个邻接块中的第二个块来对第二预测模式进行解码;沿着与视频数据的所述第一个块和视频数据的所述第二个块之间的边界相对应的边缘来针对样本块确定边界强度值;以及在所确定的边界强度值表示所述第一预测模式是帧内预测并且所述第二预测模式是帧内块复制预测的情况下,沿着所述边缘仅向所述主要颜色通道的数据应用去块滤波器。

根据本发明的又一方面,提供一种存储有计算机程序的非瞬态计算机可读介质,所述计算机程序用于进行去块方法,所述计算机程序包括以下代码:用于针对视频数据的两个邻接块中的第一个块来对第一预测模式进行解码的代码,其中视频数据的各个块包括主要颜色通道和至少一个次要颜色通道;用于针对视频数据的所述两个邻接块中的第二个块来对第二预测模式进行解码的代码;用于沿着与视频数据的所述第一个块和视频数据的所述第二个块之间的边界相对应的边缘来针对样本块确定边界强度值的代码;以及用于在所确定的边界强度值表示所述第一预测模式是帧内预测并且所述第二预测模式是帧内块复制预测的情况下、沿着所述边缘仅向所述主要颜色通道的数据应用去块滤波器的代码。

还公开了其它方面。

附图说明

现在将参考以下的附图和附录来说明本发明的至少一个实施例,其中:

图1是示出视频编码和解码系统的示意框图;

图2A和2B构成可以实践图1的视频编码和解码系统的其中一个或这两者的通用计算机系统的示意框图;

图3是示出视频编码器的功能模块的示意框图;

图4是示出视频解码器的功能模块的示意框图;

图5A是示出用于对编码树块(CTB)内的编码块(CB)进行扫描的示例“Z扫描”顺序的示意框图;

图5B是示出示例帧内块复制操作的示意框图;

图6是示出具有重建样本的区域的示例帧的示意框图;

图7是示出帧的一部分内的水平边缘和垂直边缘的示例的示意框图;

图8是示出根据各个边缘的任意边的预测单位(PU)的预测模式所得到的边缘类型的示例的示意框图;

图9是示出针对不同的颜色通道和边界强度值的滤波器强度设置的表;

图10A是示出用于根据边缘的各边的预测单位(PU)的预测模式来设置针对该边缘的边界强度的规则的表;

图10B是示出用于根据边缘的各边的预测单位(PU)的预测模式来设置针对该边缘的边界强度的规则的表;

图10C是示出用于根据边缘的各边的预测单位(PU)的预测模式来设置针对该边缘的边界强度的规则的表;

图11是示出用于针对去块滤波器设置边界强度的方法的示意流程图;

图12是示出用于针对去块滤波器设置边界强度的方法的示意流程图;

图13是示出用于对视频数据的块进行帧内块复制和去块的方法的示意流程图;以及

附录1和附录2提供根据这里所公开的修改和变化进行修改后的根据HEVC标准的句法表。

具体实施方式

在任一个或多个附图中参考具有相同附图标记的步骤和/或特征的情况下,除非出现相反意图,否则这些步骤和/或特征为了本说明书的目的而具有相同的功能或操作。

为了减少由于量化处理而产生的伪影,可以应用“去块”滤波器以使视频数据的块之间的边界平滑化。视频数据的邻接块之间的平滑差异可以充分提高解码视频数据的感知(即,主观)质量。视频数据的邻接块之间的平滑差异还可以提高作为解码视频数据的客观质量的度量的峰值信噪比(PSNR)。

图1是示出视频编码和解码系统100的功能模块的示意框图。系统100可以利用去块的方法来在存在“画面内容”的情况下提高主观和客观的视频质量。画面内容是包含不应像连续音调内容那样进行强烈过滤的高频信息的内容。

系统100包括源装置110和目的地装置130。通信通道120用于从源装置110向目的地装置130通信编码视频信息。在一些配置中,源装置110和目的地装置130分别可以包括移动电话手机,其中在这种情况下,通信通道120是无线通道。在其它配置中,源装置110和目的地装置130可以包括视频会议设备,其中在这种情况下,通信通道120通常是诸如因特网连接等的有线通道。此外,源装置110和目的地装置130可以包括任意宽范围的装置,其中这些装置包括支持空中电视广播、有线电视应用、因特网视频应用以及在一些存储介质或文件服务器上捕获编码视频数据的应用的装置。

如图1所示,源装置110包括视频源112、视频编码器114和发送器116。视频源112通常包括诸如摄像传感器等的所拍摄视频帧数据的源、存储在非瞬态记录介质上的先前拍摄到的视频序列、或者来自远程摄像传感器的视频提供。视频源112还可以是显示例如操作系统和各种计算机应用程序的视频输出的计算机图形卡的输出。这种内容是“画面内容”的示例。可以包括摄像传感器作为视频源112的源装置110的示例包括智能电话、视频摄录机和网络视频照相机等。视频编码器114将来自视频源112的所拍摄帧数据转换成编码视频数据并且以下将参考图3来进一步说明。该编码视频数据通常是编码位流并且由发送器116经由通信通道120作为编码视频数据(或“编码视频信息”)进行发送。代替经由通信通道120进行发送,还可以将该编码视频数据在随后经由通信通道120进行发送之前存储在诸如“闪速”(Flash)存储器或硬盘驱动器等的非瞬态存储装置122中。

目的地装置130包括接收器132、视频解码器134和显示装置136。接收器132从通信通道120接收编码视频数据并将所接收到的视频数据传递至视频解码器134。然后,视频解码器134将解码后的帧数据输出至显示装置136。显示装置136的示例包括诸如智能电话、平板计算机和计算机监视器或者单机型电视机等内的阴极射线管和液晶显示器。还可以将源装置110和目的地装置130各自的功能嵌入单个装置中。

尽管以上说明了示例装置,但源装置110和目的地装置130各自通常经由硬件组件和软件组件的组合可以配置在通用计算机系统内。图2A示出如下的这种计算机系统200,其中该计算机系统200包括:计算机模块201;诸如键盘202、鼠标指示器装置203、扫描器226、可被配置为视频源112的照相机227、以及麦克风280等的输入装置;以及包括打印机215、可被配置为显示装置136的显示装置214、以及扬声器217的输出装置。计算机模块201可以使用外部调制器-解调器(调制解调器)收发器装置216来经由接线221与通信网络220进行通信。可以表示通信通道120的通信网络220可以是广域网(WAN),诸如因特网、蜂窝电信网络或私有WAN等。在接线221是电话线的情况下,调制解调器216可以是传统的“拨号上网”调制解调器。可选地,在接线221是高容量(例如,线缆)接线的情况下,调制解调器216可以是宽带调制解调器。还可以使用无线调制解调器来进行向通信网络220的无线连接。收发器装置216可以提供发送器116和接收器132的功能,并且通信通道120可以嵌入接线221中。

计算机模块201通常包括存储器单元206和至少一个处理器单元205。例如,存储器单元206可以具有半导体随机存取存储器(RAM)和半导体只读存储器(ROM)。计算机模块201还包括多个输入/输出(I/O)接口,其中这多个输入/输出(I/O)接口包括:音频-视频接口207,其连接至视频显示器214、扬声器217和麦克风280;I/O接口213,其连接至键盘202、鼠标203、扫描器226、照相机227以及可选的操纵杆或其它人机接口装置(未示出);以及外部调制解调器216和打印机215所用的接口208。从音频-视频接口207向计算机监视器214的信号通常是计算机图形卡的输出并且提供“画面内容”的示例。在一些实现中,调制解调器216可以内置于计算机模块201内,例如内置于接口208内。计算机模块201还具有本地网络接口211,其中该本地网络接口211允许计算机系统200经由接线223连接至已知为局域网(LAN)的局域通信网络222。如图2A所示,局域通信网络222还可以经由接线224连接至广域网220,其中该局域通信网络222通常包括所谓的“防火墙”装置或具有相似功能的装置。本地网络接口211可以包括以太网(EthernetTM)电路卡、蓝牙(BluetoothTM)无线配置或IEEE 802.11无线配置;然而,对于接口211,可以实践多种其它类型的接口。本地网络接口211还可以提供发送器116和接收器132的功能,并且通信通道120也可以嵌入局域通信网络222中。

I/O接口208和213可以提供串行连接和并行连接中的任一个或这两者,其中前者通常根据通用串行总线(USB)标准来实现并且具有相应的USB连接器(未示出)。设置有存储装置209,并且存储装置209通常包括硬盘驱动器(HDD)210。还可以使用诸如软盘驱动器和磁带驱动器(未示出)等的其它存储装置。通常设置有光盘驱动器212以用作数据的非易失性源。可以使用例如光盘(例如,CD-ROM、DVD、蓝光盘(Blu-ray DiscTM))、USB-RAM、便携式外部硬盘驱动器和软盘等的便携式存储器装置作为向计算机系统200的数据的适当源。通常,HDD 210、光盘驱动器212、网络220和222中的任意还可被配置为用作视频源112、或者用作为了经由显示器214进行再现所要存储的解码视频数据的目的地。系统100的源装置110和目的地装置130或者系统100的源装置110和目的地装置130可以体现在计算机系统200中。

计算机模块201的组件205~213通常经由互连总线204并且以得到相关领域技术人员已知的计算机系统200的传统操作模式的方式进行通信。例如,处理器205使用接线218连接至系统总线204。同样,存储器206和光盘驱动器212通过接线219连接至系统总线204。可以实践所述配置的计算机的示例包括IBM-PC和兼容机、Sun SPARCstation、Apple MacTM或相似的计算机系统。

在适当或期望的情况下,可以使用计算机系统200来实现视频编码器114和视频解码器134以及以下所述的方法,其中可以将视频编码器114、视频解码器134和要说明的方法作为在计算机系统200内可执行的一个或多个软件应用程序233来实现。特别地,利用在计算机系统200内执行的软件233中的指令231(参见图2B)来实现视频编码器114、视频解码器134和所述方法的步骤。可以将软件指令231形成为各自用于进行一个或多个特定任务的一个或多个代码模块。还可以将软件分割成两个单独部分,其中第一部分和相应的代码模块进行所述方法,并且第二部分和相应的代码模块管理第一部分和用户之间的用户界面。

例如,可以将软件存储在包括以下所述的存储装置的计算机可读介质中。将软件从计算机可读介质载入计算机系统200,然后由计算机系统200来执行。记录有这种软件或计算机程序的计算机可读介质是计算机程序产品。优选地,在计算机系统200中使用该计算机程序产品实现了用于实施视频编码器114、视频解码器134和所述方法的有利设备。

通常将软件233存储在HDD 210或存储器206中。将该软件从计算机可读介质载入计算机系统200,并且由计算机系统200来执行。因而,例如,可以将软件233存储在光盘驱动器212所读取的光学可读盘存储介质(例如,CD-ROM)225上。

在一些实例中,将应用程序233以编码在一个或多个CD-ROM 225上并且经由相应的驱动器212进行读取的方式供给至用户,或者可选地,可以由用户从网络220或222读取应用程序233。此外,还可以将软件从其它计算机可读介质载入计算机系统200。计算机可读存储介质是指将所记录的指令和/或数据提供至计算机系统200以供执行和/或处理的任何非瞬态有形存储介质。这种存储介质的示例包括软盘、磁带、CD-ROM、DVD、蓝光盘(Blu-ray DiscTM)、硬盘驱动器、ROM或集成电路、USB存储器、磁光盘、或者诸如PCMCIA卡等的计算机可读卡,而与这些装置在计算机模块201的内部还是外部无关。还可以参与将软件、应用程序、指令和/或视频数据或编码视频数据提供至计算机模块401的瞬态或非有形计算机可读传输介质的示例包括:无线电或红外线传输通道及向着其它计算机或联网装置的网络接线、以及包括电子邮件发送和网站上所记录的信息等的因特网或内联网。

可以执行上述的应用程序233的第二部分和相应的代码模块来实现要渲染或呈现在显示器214上的一个或多个图形用户界面(GUI)。通过典型地对键盘202和鼠标203进行操作,计算机系统200的用户和应用程序可以以在功能上可适用的方式对界面进行操作,以将控制命令和/或输入提供至与这些GUI相关联的应用程序。还可以实现在功能上可适用的其它形式的用户界面,诸如利用经由扬声器217所输出的语音提示和经由麦克风280所输入的用户声音命令的音频界面等。

图2B是处理器205和“存储器”234的详细示意框图。存储器234表示图2A中的计算机模块201可以访问的(包括HDD 209和半导体存储器206的)所有存储器模块的逻辑聚合。

在初始对计算机模块201通电的情况下,执行上电自检(power-on self-test,POST)程序250。通常将POST程序250存储在图2A的半导体存储器206的ROM 249中。有时将诸如存储有软件的ROM 249等的硬件装置称为固件。POST程序250检查计算机模块201内的硬件以确保适当工作,并且通常检查处理器205、存储器234(209,206)和通常还存储在ROM 249中的基本输入-输出系统软件(BIOS)模块251,以进行正确操作。一旦POST程序250成功运行,BIOS 251启动图2A的硬盘驱动器210。启动硬盘驱动器210使得经由处理器205执行驻留在硬盘驱动器210上的引导装入程序252。这样将操作系统253载入RAM存储器206,其中在该RAM存储器206上,操作系统253开始工作。操作系统253是处理器205可执行的系统级应用程序,以实现包括处理器管理、存储器管理、装置管理、存储管理、软件应用程序接口和通用用户界面等的各种高级功能。

操作系统253管理存储器234(209,206),以确保计算机模块201上运行的各处理或应用程序具有在不会与分配至其它处理的内存冲突的情况下执行的充足内存。此外,必须适当使用图2A的计算机系统200中可用的不同类型的存储器,以使得各处理可以高效地运行。因此,聚合存储器234并不意图例示如何分配存储器的特定区段(除非另外说明),而是提供计算机系统200可访问的存储器的概述图以及如何使用该存储器。

如图2B所示,处理器205包括多个功能模块,其中这多个功能模块包括控制单元239、运算逻辑单元(ALU)240和有时称为高速缓冲存储器的本地或内部存储器248。高速缓冲存储器248在寄存器区段中通常包括多个存储寄存器244~246。一个或多个内部总线241从功能上使这些功能模块相互连接。处理器205通常还具有用于使用接线218来经由系统总线204与外部装置进行通信的一个或多个接口242。存储器234使用接线219连接至总线204。

应用程序233包括可以包含条件分支指令和循环指令的指令序列231。程序233还可以包括执行程序233时所使用的数据232。将指令231和数据232分别存储在存储器位置228、229、230和235、236、237中。根据指令231和存储器位置228~230的相对大小,如存储器位置230中示出的指令所描述的,可以将特定指令存储在单个存储器位置中。可选地,如存储器位置228和229中示出的指令段所描述的,可以将指令分割成各自被存储在单独的存储器位置的多个部分。

通常,向处理器205赋予一组指令,其中在该处理器205内执行该组指令。处理器205等待下一输入,其中处理器205通过执行另一组指令来对该下一输入作出反应。可以从多个源中的一个或多个源提供各输入,其中该输入包括一个或多个输入装置202、203所生成的数据、从外部源经由网络220、202其中之一所接收到的数据、从存储装置206、209其中之一所检索到的数据或者从插入相应的读取器212内的存储介质225所检索到的数据(所有这些均在图2A中示出)。执行一组指令在一些情况下可能会导致输出数据。执行还可能涉及将数据或变量存储至存储器234。

视频编码器114、视频解码器134和所述方法可以使用存储器234内的相应存储器位置255、256、257中所存储的输入变量254。视频编码器114、视频解码器134和所述方法产生存储器234内的相应存储器位置262、263、264中所存储的输出变量261。可以将中间变量258存储在存储器位置259、260、266和267中。

参考图2B的处理器205,寄存器244、245、246、运算逻辑单元(ALU)240和控制单元239一起工作以进行微操作序列,其中这些微操作序列是针对构成程序233的指令集中的每个指令进行“提取、解码和执行”周期所需的。各提取、解码和执行周期包括以下操作:

(a)提取操作,用于从存储器位置228、229、230提取或读取指令231;

(b)解码操作,其中在该解码操作中,控制单元239判断提取了哪个指令;以及

(c)执行操作,其中在该执行操作中,控制单元239和/或ALU 240执行该指令。

之后,可以执行针对下一指令的进一步提取、解码和执行周期。同样,可以进行存储周期,其中在该存储周期中,控制单元239将值存储至或写入存储器位置232。

要说明的图11、12和13的方法中的各步骤或子处理与程序233的一个或多个区段相关联,并且通常通过处理器205中的寄存器部244、245、247、ALU 240和控制单元239一起工作以针对程序233的所述区段的指令集中的每个指令进行提取、解码和执行周期,来进行该步骤或子处理。

图3是示出视频编码器114的功能模块的示意框图。图4是示出视频解码器134的功能模块的示意框图。通常,在视频编码器114和视频解码器134内以块或阵列(例如,样本的块或变换系数的块等)来传递数据。在参考各个阵列元素(例如,样本或变换系数)的行为来说明功能模块的情况下,该行为应被理解为适用于所有的阵列元素。如图2A和2B所示,可以使用通用计算机系统200来实现视频编码器114和视频解码器134,其中可以利用计算机系统200内的专用硬件、利用计算机系统200内可执行的软件(诸如驻留在硬盘驱动器205上并且由处理器205控制其执行的软件应用程序233的一个或多个软件代码模块等)、或者可选地利用计算机系统200内可执行的专用硬件和软件的组合,来实现各种功能模块。可选地,可以在诸如进行所述方法的功能或子功能的一个或多个集成电路等的专用硬件中实现视频编码器114、视频解码器134和所述方法。这种专用硬件可以包括图形处理器、数字信号处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者一个或多个微处理器和关联存储器。特别地,视频编码器114包括模块320~350,并且视频解码器134包括模块420~440,其中这些模块各自可被实现为软件应用程序233的一个或多个软件代码模块。

尽管图3的视频编码器114是高效率视频编码(HEVC)视频编码流水线的示例,但还可以使用其它视频编解码器来进行这里所述的处理阶段。视频编码器114接收诸如一系列帧(各帧包括一个或多个颜色通道)等的所拍摄帧数据。

视频编码器114将诸如帧数据310等的所拍摄帧数据的各帧分割成边大小是2的幂的通常被称为“编码树单位”(CTU)的正方形区域。通常按光栅扫描顺序对帧数据310中的编码树单位(CTU)进行扫描。各编码树单位(CTU)与当前帧所表示的图像的所有颜色通道相关联,使得各编码树单位(CTU)针对各颜色通道包括一个编码树块(CTB)。例如,在使用YCbCr颜色空间进行编码后的帧中,编码树单位(CTU)包括针对与该帧所表示的图像中的同一空间位置相对应的Y、Cb和Cr颜色面的三个编码树块(CTB)。各个编码树块(CTB)的大小可能根据颜色成分而改变,并且通常依赖于所使用的颜色成分缩放模式或“色度格式”。例如,在所有颜色成分都具有相同大小的通常已知为“4:4:4”色度格式的模式中,编码树块(CTB)的大小将相同。在色度成分在水平方向和垂直方向这两者上均缩减了2的因数的通常已知为“4:2:0”色度格式的模式中,色度编码树块(CTB)的大小是亮度编码树块(CTB)的大小(在水平方向和垂直方向这两者上)的二分之一。在指定编码树单位(CTU)的大小的情况下,该大小通常是指亮度编码树块(CTB)的大小。可以根据编码树单位(CTU)的大小和颜色成分缩放模式来推断色度编码树块(CTB)的大小。

各编码树单位(CTU)包括具有“编码单位”(CU)的集合的帧的一部分的层级四叉树子分割,使得在该层级四叉树子分割的各叶节点处,存在一个编码单位(CU)。各编码单位(CU)针对各颜色通道包括样本或“样本块”的二维阵列。可以继续该子分割,直到叶节点处所存在的编码单位(CU)达到了特定最小大小为止。该特定最小大小被称为最小编码单位(SCU)大小。通常,最小编码单位(SCU)大小是8×8,但诸如16×16或32×32等的其它大小也是可以的。以亮度样本为单位来指定编码单位(CU)的大小。因而,亮度通道的相应编码块(CB)将具有与编码单位(CU)相同的尺寸。色度通道的相应编码块(CB)将具有根据色度子采样大小进行了缩放的尺寸。如果不进行编码树单位(CTU)的子分割、并且单个编码单位(CU)占据整个编码树单位(CTU),则这种编码单位(CU)被称为最大编码单位(LCU)(或最大编码单位大小)。通常,最大编码单位(LCU)大小是64×64。然而,诸如32×32和16×16等的最大编码单位(LCU)的其它大小也是可以的。还可以以亮度样本为单位来指定最大编码单位(LCU)的尺寸。作为该四叉树层级的结果,编码树单位(CTU)整体被一个或多个编码单位(CU)所占据。针对已知为编码视频序列的帧的集合,在位流中通知最大编码单位大小。对于特定帧,最大编码单位(LCU)大小和最小编码单位(SCU)大小没有改变。

视频编码器114针对各编码块(CU)产生一个或多个“预测单位”(PU)。各编码单位(CU)中的预测单位(PU)的各种配置均是可以的,并且将编码单位(CU)中的预测单位(PU)的各配置被称为“分区模式”。视频编码器114所产生的针对各编码块(CU)的预测单位(PU)没有重叠。此外,编码单位(CU)整体被视频编码器114针对编码单位(CU)所产生的一个或多个预测单位(PU)占据,使得预测单位(PU)覆盖帧中的与该帧的各个编码树单位(CTU)相对应的区域。编码单位(CU)向预测单位(PU)的子分割得到针对各颜色成分的编码块(CB)向“预测块”(PB)的子分割。根据子分割所使用的颜色成分缩放模式,与针对不同颜色成分的同一编码单位(CU)相对应的预测块(PB)的大小可能不同。

视频编码器114从多路复用器模块340输出预测单位(PU)382。差模块344产生“残差样本阵列”360。残差样本阵列360是预测单位(PU)382和来自帧数据310的编码树块(CTB)的编码单位(CU)的数据样本的相应2D阵列之间的差。针对这些阵列中的各位置处的相应样本来计算预测单位(PU)382和相应2D阵列之间的差。由于预测单位(PU)382和相应2D阵列之间的差可以为正或负,因此一个差样本的动态范围是位深度+1位。

在变换模块320中可以将残差样本阵列360变换成频域。来自差模块344的残差样本阵列360被变换模块320接收到,其中该变换模块320通过应用“正向变换”将残差样本阵列360从空间表示转换为频域表示。变换模块320根据具有特定精度的变换来创建变换系数。将编码单位(CU)子分割成一个或多个变换单位(TU)。可以将子分割后的编码单位(CU)称为“残差四叉树”或“残差四叉树(RQT)”。变换单位(TU)整体与帧的所有颜色成分相关联。每个变换单位(TU)包括针对各颜色通道的各个变换块(TB)。根据应用于图片变换块(TB)的颜色成分缩放模式,由于颜色成分缩放,因此色度通道与相应的亮度变换块(TB)相比可能具有较小的大小。变换块(TB)、预测块(PB)和编码块(CB)各自可被称为“块”或“样本块”,并且应从术语“块”的使用的上下文来理解块的类型。在两个块之间不存在其它块的情况下,这两个块被视为彼此“邻接”或“邻接配置”。这两个块可以具有不同大小并且仍被视为邻接(或“邻接配置”)。

量化控制模块346可以根据“率失真标准”针对各种可能的量化参数值测试编码位流312中所需的位率。率失真标准是编码位流312的位率或其局部区域与失真之间的可接受权衡的度量。失真是帧缓冲器332中所存储的帧和所拍摄帧数据310之间的差的度量。可以使用峰值信噪比(PSNR)或绝对差值和(SAD)度量来判断失真。在视频编码器114的一些配置中,率失真标准考虑亮度颜色通道的率和失真,因而编码决定是基于亮度通道的特性来进行的。通常,残差四叉树(RQT)在亮度颜色通道和色度颜色通道之间是共用的,并且色度信息的量与亮度相比相对较小,因而在率失真标准中可以仅考虑亮度。

从量化控制模块346输出量化参数384。该量化参数针对视频数据的帧可以是固定的、或者在正对帧进行编码时可以以块为单位改变。还可以使用用于控制量化参数384的其它方法。残差四叉树所用的一组可能的变换单位(TU)依赖于可用的变换大小和编码单位(CU)大小。较大大小的变换单位(TU)使得将较大的变换用于亮度颜色通道和色度颜色通道这两者。通常,较大的变换提供残差样本阵列的样本数据(或“残差能量”)分散在该残差样本阵列内的更紧凑表示。较小的变换单位(TU)提供残差样本阵列的残差能量局限于该残差样本阵列的特定区域的更紧凑表示。可以使用残差四叉树(RQT)的许多可能结构来在高效率视频编码(HEVC)标准中实现残差样本阵列360的高编码效率。

预测模式选择器模块348选择针对当前预测单位(PU)的预测模式386。

设置“变换量化旁路”模式,其中在该“变换量化旁路”模式中,变换模块320和量化模块322被旁路。使用“cu_transquant_bypass_flag”句法元素来在编码单位(CU)等级通知变换量化旁路模式。可以使用变换量化旁路模式来以无损方式将帧数据310编码在编码位流312中。以编码单位(CU)等级来控制变换量化旁路模式的使用,从而使得能够以无损方式对帧数据310的一部分进行编码。经由“高等级句法”来控制变换量化旁路模式的可用性,从而使得在帧数据310的任何部分中不需要无损编码的情况下能够去除用于对变换量化旁路模式进行控制的信令开销。高等级句法是指编码位流312中的通常不太经常进行编码的部分。高等级句法用于描述位流312的性质(例如,限制或配置视频编码器114和视频解码器134中所使用的特定编码工具)。高等级句法的示例包括“序列参数集”、“图片参数集”和“条带头部”。

对于高效率视频编码(HEVC)标准,使用诸如改进的离散余弦变换(DCT)等的变换来实现残差样本阵列360向频域表示的转换。在这些变换中,代替相乘,修改允许使用移位和相加来实现。这种修改与传统的离散余弦变换(DCT)相比,使得能够降低实现复杂度。除改进的离散余弦变换(DCT)外,在特定情形下还可以使用改进的离散正弦变换(DST)。根据所支持的变换大小,残差样本阵列360和缩放变换系数362的各种大小均是可以的。在高效率视频编码(HEVC)标准中,对具有诸如32×32、16×16、8×8和4×4等的大小的数据样本的二维(2D)阵列进行变换。因而,视频编码器114可利用变换大小的预定集合。此外,变换大小的集合在亮度通道和色度通道之间可能有所不同。

可以向亮度通道和色度通道这两者应用变换。针对变换单位(TU)在亮度通道和色度通道的处理之间存在差异。各残差四叉树占据一个编码单位(CU),并且被定义为编码单位(CU)向着在残差四叉树层级的各叶节点处包含一个变换单位(TU)的层级的四叉树分解。各变换单位(TU)具有与所支持的变换大小其中之一相对应的大小。在残差四叉树层级的各等级处,“编码块标志值”用信号通知在各颜色通道中可能存在变换。该信号通知可以表示(在不存在进一步分割的情况下)在当前层级等级中存在变换、或者较低层级可能包含由此得到的变换单位(TU)中的至少一个变换。在编码块标志值为0的情况下,已知当前或较低的层级等级处的所有残差系数为零。在这种情况下,针对当前层级等级或较低层级等级处的任何变换单位(TU)的相应颜色通道,均无需进行变换。在编码块标志值为1的情况下,如果不对当前区域进行进一步子分割,则该区域包含需要至少一个非零(即,有效)残差系数的变换。如果对当前区域进行进一步子分割,则编码块标志值为1表示如此得到的各子分割区域可以包括非零残差系数。这样,针对各颜色通道,零个或更多个变换可以覆盖从无直至编码单位(CU)整体的编码单位(CU)的区域的一部分。针对各颜色通道存在单独的编码块标志值。由于存在仅具有一个可能的编码块标志值的情况,因此无需对各编码块标志值进行编码。

对于给定的变换块(TB),可以进行变换,或者可以跳过变换。在这些“变换跳过”块中,残差系数提供空间域表示。“变换跳过”模式通常是针对画面内容所选择的,这是因为变换跳过模式可以实现与改进的整数离散余弦变换(DCT)所实现的压缩效率相比更高的压缩效率的高频(不连续色调)信息。由于针对各变换块(TB)通知了变换跳过操作,因此对于给定的变换单位(TU),针对各颜色通道单独提供变换跳过的信令。

将缩放变换系数362输入至量化模块322,其中在该量化模块322中,根据所确定的量化参数384对缩放变换系数362的数据样本值进行缩放和量化以产生变换系数364。变换系数364是具有与残差样本阵列360相同的尺寸的值的阵列。在应用变换的情况下,变换系数364提供残差样本阵列360的频域表示。在跳过变换的情况下,变换系数364提供残差样本阵列360的空间域表示(即,由量化模块322进行了量化但未由变换模块320进行变换)。对于离散余弦变换(DCT),变换系数364的左上方值指定针对残差样本阵列360的“DC”值,并且已知为“DC系数”。DC系数代表残差样本阵列360的值的“平均值”。变换系数364中的其它值指定针对残差样本阵列360的“AC系数”。根据所确定的量化参数384的值,该缩放和量化导致精度损失。所确定的量化参数384的值越高导致从残差数据中丢失的信息越多,并且导致在重建样本370中存在越多的分块伪影。由于要编码的信息较少,因此信息的丢失提高了视频编码器114所实现的压缩。压缩效率的该提高是以降低来自视频解码器134的输出的可视质量为代价发生的。所确定的量化参数384可以在对帧数据310的各帧进行编码期间改变。可选地,所确定的量化参数384可以针对帧数据310的一部分固定。在一个配置中,所确定的量化参数384可以针对帧数据310的整个帧固定。所确定的量化参数384的其它改变也是可以的,诸如利用单独值对不同的残差系数进行量化等。

将变换系数364和所确定的量化参数384视为向着去量化模块326的输入。去量化模块326反转量化模块322所进行的缩放以产生重新缩放变换系数366。重新缩放变换系数366是变换系数364的重新缩放版本。还将变换系数364、所确定的量化参数384和预测模式386视为向着熵编码器模块324的输入。熵编码器模块324将变换系数364的值编码在编码位流312(或“视频位流”)中。由于通过量化模块322的操作所引起的精度损失,因此重新缩放变换系数366与缩放变换系数362中的原始值不相同。然后将来自去量化模块326的重新缩放变换系数366输出至逆变换模块328。逆变换模块328进行从频域向着空间域的逆变换,以产生重新缩放变换系数366的空间域表示368。空间域表示368与视频解码器134处所产生的空间域表示大致相同。然后,将空间域表示368输入至求和模块342。

运动估计模块338通过将帧数据310与来自(通常配置在存储器206内的)帧缓冲器模块332中所存储的帧的一个或多个集合中的先前帧数据进行比较,来产生运动矢量374。帧的这些集合已知为“参考图片列表”。然后将这些运动矢量374输入至运动补偿模块334,其中该运动补偿模块334考虑到根据运动矢量374所推导出的空间偏移,通过对帧缓冲器模块332中所存储的数据样本进行滤波来产生帧间预测的预测单位(PU)376。尽管图3没有示出,但也将运动矢量374传递至熵编码器模块324以编码在编码位流312中。这些运动矢量被编码为“运动矢量差”、即针对当前块和邻接块的运动矢量的大小之间的差。

帧内预测模块336使用从求和模块342获得的重建样本370来产生帧内预测的预测单位(PU)378。特别地,帧内预测模块336使用来自已被解码的邻接块的样本来产生针对当前预测单位(PU)的帧内预测样本。在邻接块不可用(例如,在帧边界处)的情况下,邻接样本被视为“不可用”于参考。在这些情况下,代替邻接样本值,使用默认值。通常,默认值(或“半色调”)等于位深度所表示的范围的一半。例如,在视频编码器114是针对八(8)的位深度所配置的情况下,默认值是一百二十八(128)。求和模块342对来自多路复用器模块340的预测单位(PU)382和多路复用器的空间域输出382进行求和。

帧内块复制模块350测试各种块矢量以产生针对预测单位(PU)382(可被称为帧内块复制预测单位)的最佳参考块。该参考块包括来自从当前编码树块(CTB)和/或先前编码树块(CTB)所获得的重建样本370的块、或者来自帧缓冲器332的样本。多路复用器352基于所提供的块矢量来在重建样本370的块和来自帧缓冲器332的样本之间进行选择。参考块不能包括来自当前编码树块(CTB)中的尚未被解码(因而不可用在重建样本370中)的任何编码块(CB)的样本。块矢量是用于指定相对于当前考虑的预测单位(PU)的位置的参考块的位置的二维矢量。块矢量包括水平成分(即,“X成分”)和垂直成分(即,“Y成分”)。帧内块复制模块350可以通过使用嵌套循环进行搜索来测试每个有效的块矢量。更快的搜索方法也是可以的。帧内块复制模块350可以通过仅搜索在水平方向或垂直方向上与当前编码块(CU)对准的块矢量来降低搜索复杂度,还可以搜索近水平和近垂直的块矢量。帧内块复制模块350可以测试块矢量的空间稀疏集合,然后在稀疏的块矢量中的最佳块矢量的附近进行精细搜索,以产生最终块矢量。

可以使用帧内预测、帧间预测、帧内块复制方法或者使用调色板(palette)预测来生成预测单位(PU)。帧内预测方法利用与预测单位(PU)邻接(通常位于该预测单位的上方和左方)的先前进行了解码的数据样本,从而在该预测单位(PU)内生成参考数据样本。各种方向的帧内预测都是可以的(总共33个方向);另外,针对总共三十五(35)个可能的帧内预测模式,支持“DC模式”和“平面模式”。帧间预测方法利用运动矢量以参考来自所选择的参考帧中的块。运动估计模块338和运动压缩模块334针对精度为亮度样本的精度的四分之一(1/4)的运动矢量374进行工作,从而使得能够进行帧数据310中的帧之间的运动的精确建模。帧内块复制方法利用块矢量以参考来自先前在当前帧中进行了解码的样本中的样本块。按整数像素精度定义块矢量。

调色板预测使用一系列的“运行”操作和“复制”操作来利用从“调色板”获得的样本填充预测单位(PU)。运行操作使用调色板中可利用的颜色来按光栅扫描顺序填充预测单位(PU)。复制操作通过将来自预测单位(PU)中的邻接样本的值复制到当前样本,来按光栅扫描顺序填充预测单位(PU)。使用运行操作和复制操作的组合来按光栅扫描顺序填充预测单位(PU)整体。用以从颜色的调色板中以高精度指定预测单位(PU)内容的能力使调色板预测模式对于画面内容而言高度有益。

根据率失真权衡来决定要使用帧内预测、帧间预测、帧内块复制和调色板预测方法中的哪个。在由此得到的编码位流312的期望位率和由于预测方法而引入的图像质量失真量之间进行率失真权衡。如果使用帧内预测,则还根据率失真权衡来从一组可能的帧内预测模式中选择一个帧内预测模式。多路复用器模块340可以选择来自帧内预测模块336的帧内预测的参考样本378、或者来自运动补偿块334的帧间预测的预测单位(PU)376、或者来自帧内块复制模块350的帧内块复制样本、或者来自调色板预测模块(图3中未示出)的调色板预测样本。多路复用器模块340根据预测模式386进行选择。

求和模块342产生重建样本370,其中将这些重建样本370输入至去块滤波器模块330。去块滤波器模块330沿着块边界进行滤波,从而产生写入存储器206内所配置的帧缓冲器模块332的去块样本372。帧缓冲器模块332是具有用以保持来自一个或多个过去帧的数据以作为参考图片列表的一部分供将来参考的充足容量的缓冲器。

熵编码器324通过进行上下文自适应二进制算术编码(CABAC)算法将统称为“句法元素”的变换系数364、预测模式386、运动矢量(或运动矢量差)和其它参数编码在编码位流312中。将句法元素一起组成“句法结构”。分组可以包含用以描述层级结构的递归。除诸如帧内预测模式等的序数值或者诸如运动矢量等的整数值以外,句法元素还包括诸如用以表示四叉树分割等的标志。

尽管参考高效率视频编码(HEVC)视频解码流水线来描述图4的视频解码器134,但其它的视频编解码器也可以采用模块420~434的处理阶段。还可以从存储器206、硬盘驱动器210、CD-ROM、蓝光盘(Blu-ray diskTM)或其它计算机可读存储介质读取编码视频信息。可选地,可以从诸如连接至通信网络220的服务器或射频接收器等的外部源来接收编码视频信息。

如从图4看出,将诸如编码位流312等的所接收到的视频数据输入至视频解码器134。可以从存储器206、硬盘驱动器210、CD-ROM、蓝光盘(Blu-ray diskTM)或其它计算机可读存储介质读取编码位流312。可选地,可以从诸如连接至通信网络220的服务器或射频接收器等的外部源来接收编码位流312。编码位流312包含表示要解码的所拍摄帧数据的编码句法元素。

将编码位流312输入至熵解码器模块420,其中该熵解码器模块420从编码位流312中提取句法元素,并且将这些句法元素的值传递至视频解码器134中的其它块。熵解码器模块420应用上下文自适应二进制算术编码(CABAC)算法以从编码位流312解码句法元素。使用解码后的句法元素来在视频解码器134内重建参数。参数包括零以上的残差数据阵列450、运动矢量452(从编码位流312解码运动矢量差并且根据这些运动矢量差来推导运动矢量452)、预测模式454。将残差数据阵列450传递至去量化模块421,将运动矢量452传递至运动补偿模块434,并且将预测模式454传递至帧内预测模块426和多路复用器428。

去量化模块421对残差数据阵列450的残差数据进行逆缩放以创建采用变换系数的形式的重建数据455。去量化模块421将重建数据455输出至逆变换模块422。逆变换模块422应用“逆变换”以将重建数据455(即,变换系数)从频域表示转换为空间域表示,从而输出残差样本阵列456。逆变换模块422进行与逆变换模块328相同的操作。逆变换模块422被配置为进行逆变换。逆变换模块422所进行的变换是从对符合高效率视频编码(HEVC)标准的编码位流312进行解码所需的变换大小的预定集合中所选择的。

运动补偿模块434将来自熵解码器模块420的运动矢量452与来自存储器206内所配置的帧缓冲器块432的参考帧数据460相组合使用,以产生针对预测单位(PU)的帧间预测的预测单位(PU)462。该帧间预测的预测单位(PU)462是基于先前解码的帧数据的输出解码帧数据的预测。在预测模式454表示使用帧内预测对当前预测单位(PU)进行编码的情况下,帧内预测模块426产生针对预测单位(PU)的帧内预测的预测单位(PU)464。该帧内预测的预测单位(PU)464是使用在空间上邻接预测单位(PU)的数据样本和还由预测模式454供给的预测方向来产生的。在空间上邻接的数据样本是根据从求和模块424输出的重建样本458来获得的。帧内块复制模块436通过使用多路复用器440以从当前编码树块和/或先前编码树块(CTB)或者从帧缓冲器432复制样本的阵列,来产生参考样本块438。通过将(熵解码器420解码后的)块矢量与当前编码块(CB)在当前编码树块(CTB)内的位置相加来计算参考样本的偏移。对于表示位于当前编码树块(CTB)和先前编码树块(CTB)的外部的参考块的块矢量,多路复用器440选择来自帧缓冲器432的样本,在其它不同情况下,多路复用器选择来自重建样本458的样本。多路复用器模块428根据当前预测模式454,来选择来自帧内预测的预测单位(PU)464或帧间预测的预测单位(PU)462的预测单位(PU)466、或者来自帧内块复制模块436的参考块438、或者来自调色板预测模块(图4中未示出)的调色板预测。利用求和模块424将从多路复用器模块428输出的预测单位(PU)466与来自逆缩放和变换模块422的残差样本阵列456相加,以产生重建样本458。然后将这些重建样本458输入至去块滤波器模块430、帧内预测模块426和帧内块复制模块436各自。去块滤波器模块430沿着诸如变换单位(TU)边界等的数据块边界进行滤波以使可见的伪影平滑化。将去块滤波器模块430的输出写入存储器206内所配置的帧缓冲器模块432。帧缓冲器模块432提供用以保持一个或多个解码帧以供将来参考的充足存储量。还将解码帧412从帧缓冲器模块432输出至诸如显示装置136(例如,采用显示装置214的形式)等的显示装置。

图5A是示出用于对编码树块(CTB)500内的编码块(CB)进行扫描的示例“Z扫描”顺序的示意框图。在编码树块(CTB)500的层级分解的各等级处,进行类似“Z”的扫描,即先从左向右然后从上向下。这些扫描是以深度优先的方式递归地应用的。在图5A的示例中,如Z扫描顺序(例如,502)那样扫描编码树块(CTB)500的左上方的四个编码块(CB),从而到达在图5A的示例中当前正处理的编码块(CB)506。根据Z扫描顺序504来扫描编码树块(CTB)500的其余部分。来自编码树块(CTB)500中的先前解码后的编码块(CB)的样本可用于帧内预测。来自编码块(CB)的尚未被视频解码器134解码的样本不可用于帧内预测,并且在图5A中利用斜线阴影示出。如此,视频编码器114还将来自编码块(CB)的尚未进行解码的样本视为不可用于帧内块复制。

图5B是示出示例帧内块复制操作的示意框图。在示例帧内块复制操作中,编码块(CB)522被配置为使用帧内块复制模式。在用于重建编码块(CB)522的当前编码树块(CTB)528中,块矢量524相对于编码块(CB)522的左上样本位置而参考样本的参考块526。在图5B的示例中,尚未对当前编码树块(CTB)528的区域530进行解码,这是因为区域530按Z扫描顺序位于编码块(CB)522之后。因而,区域530不可用于参考。在图5B的示例中,参考块526完全包含在当前编码树块(CTB)528内,其中没有示出先前编码树块(CTB)。

视频编码器114中的帧内块复制模块350和视频解码器134中的帧内块复制模块436的存储器容量足以保持两个编码树块(CTB)的亮度样本和色度样本,其中编码树块(CTB)大小被配置为64×64个亮度样本和根据所选择的色度格式的针对色度的相应尺寸。

图6是示出分割成帧内块复制所用的局部区域和远区域的视频数据600的示例帧的示意框图。编码单位(CU)606被配置为使用帧内块复制。针对编码单位(CU)606示出两个示例块矢量。第一个块矢量608参考参考块610。参考块610(按光栅扫描顺序)位于包含编码单位(CU)606的编码树单位(CTU)之前的编码树单位(CTU)中。如此,参考块610包含在片上存储器中,并且通过多路复用器352选择来自视频编码器114中的重建样本370的块或者多路复用器440选择来自视频解码器134中的重建样本458的块,来访问参考块610。第二个块矢量612参考参考块614。参考块614按光栅扫描顺序位于并非当前编码树单位(CTU)或先前编码树单位(CTU)的编码树单位(CTU)中。如此,参考块610包含在片外存储器中。通过多路复用器352选择来自视频编码器114中的帧缓冲器330的块、或者多路复用器440选择来自视频解码器134中的帧缓冲器430的块,来访问参考块610。在视频解码器134中,帧600处于解码的过程中,因而并非帧600中的所有样本均可用于由多路复用器440进行选择。区域602示出帧600中先前进行了解码的编码树单位(CTU)。通常,区域602可用于由多路复用器440进行选择。由于去块滤波器430中的流水线延迟,因此包含编码单位(CU)606的编码树单位(CTU)之前的一个或多个编码树单位(CTU)不可用,这是有可能的。

图7是示出帧部分700内的水平边缘和垂直边缘的示例的示意框图。帧部分700包括主要颜色通道和至少一个次要颜色通道。颜色通道包括诸如样本702等的样本的阵列。各样本具有范围依赖于所考虑的颜色通道的位深度的数值。帧部分700被分割成8×8个块的网格。仅沿着网格的边缘进行去块滤波处理。网格包括诸如边缘708等的水平边缘和诸如边缘707等的垂直边缘。沿着8×8网格上的各边缘(例如,708),定义“边界强度”。然后,根据该边界强度和与所考虑的边缘邻接的块的量化参数来推导“滤波器强度”。去块滤波处理在主要颜色通道和次要颜色通道之间有所不同,并且以下参考图9来进一步说明。量化参数可能会向下改变至4×4的块粒度。因而,滤波器强度也可能会向下改变为8×8网格上的每四个样本的粒度。结果,沿着一个八(8)样本边缘,针对每组四个样本的两个不同滤波器强度是可能的。各边缘是两个邻接块之间的界面,因而具有两个“边”。对于水平边缘709,使用占据水平边缘709上方的块的一部分和水平边缘709下方的块的一部分的阴影样本704作为向水平边缘709的去块滤波处理的输入。对于垂直边缘711,使用占据垂直边缘711左方的块的一部分和垂直边缘711右方的块的一部分的阴影样本706作为向垂直边缘711的去块滤波处理的输入。

图8是根据各个边缘的任意边的预测单位(PU)的预测模式所得到的边缘类型的示例的示意框图。编码树块(CTB)800包括具有各种大小和预测模式的多个预测单位(PU)。在图8的示例中,编码树块(CTB)800包括具有针对边缘的各边的预测单位(PU)的预测模式的各组合的边缘。边缘802存在于帧内预测的预测单位(PU)801和帧内块复制预测单位(PU)803之间。边缘804存在于帧内块复制预测单位(PU)803和帧内块复制预测单位(PU)805之间。边缘806存在于帧内块复制预测单位(PU)805和帧间预测的预测单位(PU)807之间。边缘808存在于帧间预测的预测单位(PU)807和帧间预测的预测单位(PU)809之间。边缘810存在于帧间预测的预测单位(PU)811和帧内预测的预测单位(PU)813之间。边缘812存在于帧内预测的预测单位(PU)813和帧内预测的预测单位(PU)815之间。边缘814存在于帧间预测的预测单位(PU)809和调色板预测的预测单位(PU)817之间。边缘816存在于帧内预测的预测单位(PU)813和调色板预测的预测单位(PU)817之间。边缘818存在于帧内块复制预测的预测单位(PU)805和调色板预测的预测单位(PU)815之间。

尽管在图8中没有示出,但在各预测单位(PU)使用调色板预测的两个邻接预测单位(PU)之间存在另一类型的边缘。如图8所示,利用四个预测模式(即,帧内预测、帧间预测、帧内块复制和调色板模式),在邻接的预测单位(PU)之间可以存在10种边缘(即,802、804、806、808、810、812、814、816和818以及图8中未示出的调色板到调色板边缘)。此外,边缘还存在于预测单位(PU)内,一直到8×8样本网格粒度,然而没有对这些边缘进行去块。

此外,尽管在图8中没有示出,但在变换单位(TU)之间存在边缘。对变换单位(TU)之间的边缘进行标记以进行去块。通常,使用边缘标志的阵列来通知要对哪些边缘进行去块并且不对哪些边缘进行去块。单独考虑水平边缘和垂直边缘(例如,经由去块滤波器的两遍,其中相应的遍用于确定关联的边缘标志)。

图9是示出针对不同的颜色通道和边界强度值的滤波器强度设置的表900。定义三个边界强度值(即,0、1和2)。边界强度值0表示不向主要颜色通道和次要颜色通道中的所考虑的边缘应用去块。边界强度值1表示向主要颜色通道中的所考虑的边缘应用“弱”滤波器、但不向次要颜色通道中的所考虑的边缘应用滤波。边界强度值二(2)表示向主要颜色通道中的所考虑的边缘应用“强”滤波器并且向次要颜色通道中的所考虑的边缘应用滤波。对于边缘标志被设置为零(0)的沿着8×8样本网格的边缘、即不位于两个预测单位(PU)或两个变换单位(TU)的边界上的边缘,边界强度值毫无疑问被设置为零。去块滤波器的“强度”依赖于所考虑的边缘的任意边的变换单位(TU)的量化参数。对于给定的量化参数值,在应用“强”滤波器和“弱”滤波器的滤波的情况下,支持两个滤波器强度。给定的量化参数值处的“强”滤波器与较低的量化参数值处的“弱”滤波器相对应。

图10A是示出用于根据边缘的各边的预测单位(PU)的预测模式来设置针对该边缘的边界强度的规则的表1000。在表1000中总结并且如下所述定义该规则。表1000采用两个邻接块的预测模式,并且表示沿着这两个邻接块之间的边缘的边界强度。对于水平边缘,预测单位(PU)在所考虑的边缘的上方和下方。对于垂直边缘,预测单位(PU)在所考虑的边缘的左方或右方。在图10A的规则中,如果任意块具有帧内预测、帧内块复制或调色板模式的预测模式,则将边界强度设置为2。否则(即,这两个块都具有帧间预测的预测模式),在满足以下条件中的一个或多个的情况下,将边界强度设置为一(1):

(a)如所考虑的边缘的任意边的变换块(TB)的、通知在相应变换块(TB)中存在至少一个有效残差系数的编码块标志中的任一或这两者所示,在任意变换块(TB)中存在至少一个非零(即,有效)残差系数;

(b)针对各块使用不同的参考图像,或者针对各块使用不同数量的运动矢量;

(c)针对各块使用一个运动矢量,并且两个运动矢量之间的绝对差大于四个四分之一亮度样本;

(d)针对各块使用两个运动矢量,针对各块使用相同的两个参考图片,并且各对运动矢量之间的绝对差大于四个四分之一亮度样本。

如果不满足上述的条件(a)、(b)、(c)和(d),则将所考虑的边缘的边界强度设置为零(0)。

在表1000的规则中,针对任意块使用帧内预测或帧内块复制的块之间的边缘,在主要颜色通道中应用强滤波并且在次要颜色通道中应用滤波。对于“自然内容”、即在无参考帧可用的情况下,经常使用帧内预测的预测单位(PU)。帧内预测处理使用来自与当前预测单位(PU)邻接的块的样本来产生预测单位(PU)的预测样本。由于根据与预测单位(PU)邻接的块的样本所确定的有限信息,因此帧内预测的预测单位(PU)几乎始终包括残差信息。对于自然内容,频繁地向残差信息应用变换。对于如上所述的画面内容,由于存在变换不能进行高效压缩的高频信息,因此可以跳过变换。利用帧内预测的变换残差的普遍使用表示使用边界强度值2是适当的。对于自然内容,很少选择帧内块复制模式和调色板模式。

在帧数据310是(例如,来自摄像传感器的)自然内容时帧内块复制或调色板模式可供视频编码器114选择的情况下,观察到较小的编码效率提高。对于画面内容,频繁地选择帧内块复制和调色板模式。特别地,经常选择帧内块复制以复制具有高频信息的区域。这种区域包括“锐利”边缘,如此,应用强的去块滤波器可能会降低编码效率,这是因为锐利边缘被平滑化,这样使得PSNR降低。在这些情况下,根据内容的准确性质和供帧内块复制模式使用的适当参考块的可用性,频繁地选择调色板模式。

图10B是示出用于根据边缘的各边的预测单位(PU)的预测模式来设置针对该边缘的边界强度的规则的表1010。在表1010中总结并且如下所述定义该规则。表1010采用两个邻接块的预测模式,并且表示沿着两个邻接块之间的边缘的边界强度。在图10B的规则中,如果任意块具有帧内预测的预测模式,则将边界强度设置为二(2)。否则,如果两个块都具有帧内块复制的预测模式,则在与这两个块相对应的块矢量相等(即,块矢量具有相等大小)的情况下将边界强度设置为零(0),并且在与这两个块相对应的块矢量不相等的情况下将边界强度设置为一(1)。否则,如果任意块具有帧内块复制或调色板模式的预测模式,则将边界强度设置为一(1)。否则(即,两个块都具有帧间预测的预测模式),则根据如以上参考图10A所述的条件(a)~(d)来设置边界强度。

在表1010的规则中,如果两个邻接块使用帧内块复制预测或者调色板预测模式或者帧内块复制和调色板预测模式的组合,则这两个邻接块之间的边缘将使用边界强度值1,从而得到在主要颜色通道中应用弱滤波器并且在次要颜色通道中不应用滤波器。由于对于包含画面内容的视频数据的帧的区域通常选择帧内块复制或调色板模式,因此去块滤波器的减弱降低了针对这些区域的平滑效果,从而保留这些区域中所存在的高频(即,较锐利边缘)。表1010的规则与表1000的规则相比提高了压缩效率。

图10C是示出用于根据边缘的各边的预测单位(PU)的预测模式来设置针对该边缘的边界强度的规则的表1020。在表1020中总结并且如下所述定义该规则。表1020采用两个邻接块的预测模式并且表示沿着这两个邻接块之间的边缘的边界强度。在图10C的规则中,如果任意块具有帧内块复制或调色板模式的预测模式,则将边界强度设置为一(1)。否则,如果任意块具有帧内预测的预测模式,则将边界强度设置为二(2)。否则(即,块具有帧间预测的预测模式),则根据如参考图10A所述的条件(a)~(d)来设置边界强度。

在表1020的规则中,如果两个邻接块中的任意块使用帧内块复制或者调色板模式或者帧内块复制和调色板预测模式的组合,则这两个邻接块之间的边缘将使用边界强度值一(1),这样得到在主要颜色通道中应用弱滤波器并且在次要颜色通道中不应用滤波器。与表1010的规则相比,表1020的规则进一步减少了去块滤波器针对帧内块复制的应用。由于对于包含画面内容的视频数据的帧的区域通常选择帧内块复制模式或调色板预测模式,因此去块滤波器的减弱降低了针对这些区域的平滑效果,从而保留了这些区域中所存在的高频(即,较锐利边缘)。表1020的规则与表1010的规则相比进一步提高了压缩效率。

图11是示出用于针对去块滤波器设置边界强度值的方法1100的示意流程图。方法1100得到根据表1010的规则来设置边界强度值。方法1100可被实现为实现视频编码器114或视频解码器134的一个或多个软件代码模块,其中该一个或多个软件代码模块驻留在硬盘驱动器210上并且由处理器205控制其执行。在视频编码器114和视频解码器134这两者中进行方法1100。将参考视频编码器114和去块滤波器模块330来说明方法1100。然而,方法1100的说明还适用于视频解码器134和去块滤波器模块430。针对帧数据310中的各边缘进行方法1100,直到8×8的块粒度为止。

在视频编码器114的特定配置中,利用处理器205进行初始变换和编码块标志测试的步骤1101。在视频解码器134的特定配置中,也利用处理器205进行初始变换和编码块标志测试的步骤1101。以下将更详细地说明步骤1101。

在帧内测试的步骤1102中,去块滤波器模块330在处理器205的控制下测试所考虑的边缘的任意边的预测单位(PU)的预测模式。同样,在利用视频解码器134正进行方法1100的情况下,也利用去块滤波器模块430进行步骤1102。如果任意预测模式是帧内预测,则处理器205的控制进入边界强度2的步骤1104。否则(即,如果两个预测模式都不是帧内预测),则处理器205的控制进入帧内块复制或调色板模式测试的步骤1105。

在边界强度2的步骤1104中,去块滤波器模块330在处理器205的控制下将所考虑的边缘的边界强度值设置为2。然后,方法1100终止。再次地,在利用视频解码器134正进行方法1100的情况下,也利用去块滤波器模块430进行步骤1104。

在帧内块复制或调色板模式测试的步骤1105中,去块滤波器模块330在处理器205的控制下测试所考虑的边缘的任意边的预测单位(PU)的预测模式。如果任意预测模式是帧内块复制或调色板模式,则处理器205的控制进入块矢量测试的步骤1107。否则(即,如果这两个预测模式都是帧间预测),则处理器205的控制进入变换和编码块标志值测试的步骤1106。再次地,在利用视频解码器134正进行方法1100的情况下,也利用去块滤波器模块430进行步骤1105。

在编码块标志值测试的步骤1106中,去块滤波器模块330在处理器205的控制下测试沿着所考虑的边缘的任意边的亮度变换块(TB)的编码块标志。如果任意变换块(TB)包括至少一个有效残差系数(即,相应的编码块标志的值为1),则处理器的控制进入边界强度1的步骤1110。否则(即,两个亮度变换块(TB)都不具有有效残差系数),则控制进入参考图片和运动矢量测试的步骤1108。再次地,在利用视频解码器134正进行方法1100的情况下,也利用去块滤波器模块430进行步骤1106。

在块矢量测试的步骤1107中,去块滤波器模块330在处理器205的控制下测试所考虑的边缘的任意边的预测单位(PU)的预测模式。如果两个预测模式都是帧内块复制,则比较两个预测单位(PU)的块矢量。如果块矢量相等(即,块矢量具有相等大小),则处理器205的控制进入边界强度0的步骤1112。否则(即,块矢量不相等),则处理器205的控制进入边界强度1的步骤1110。再次地,在利用视频解码器134正进行方法1100的情况下,也利用去块滤波器模块430进行步骤1107。

在参考图片和运动矢量测试的步骤1108中,去块滤波器模块330(或者在利用视频解码器134正进行方法1100的情况下为去块滤波器模块430)在处理器205的控制下测试各预测单位(PU)的以下条件:

(a)针对各预测单位(PU)使用不同的参考图片,或者针对各预测单位(PU)使用不同数量的运动矢量;

(b)针对各预测单位(PU)使用一个运动矢量,并且两个运动矢量之间的绝对差大于四个四分之一亮度样本;

(c)针对各预测单位(PU)使用两个运动矢量,针对各块使用相同的两个参考图片,并且各对运动矢量之间的绝对差大于四个四分之一亮度样本。

在满足条件(a)~(c)中的任何条件的情况下,处理器205的控制进入边界强度1的步骤1110。否则(即,不满足条件(a)~(c)),则处理器205的控制进入边界强度0的步骤1112。

在边界强度1的步骤1110中,去块滤波器模块330(或者在利用视频解码器134正进行方法1100的情况下为去块滤波器模块430)在处理器205的控制下将所考虑的边缘的边界强度值设置为1。然后,方法1100终止。

在边界强度0的步骤1112中,去块滤波器模块330(或者在利用视频解码器134正进行方法1100的情况下为去块滤波器模块430)在处理器205的控制下将所考虑的边缘的边界强度值设置为0。然后,方法1100终止。

在视频编码器114和视频解码器134的一个配置中,修改方法1100,使得在帧内测试的步骤1102之前进行初始变换和编码块标志测试的步骤1101。在初始变换和编码块标志测试的步骤1101中,在两个预测单位(PU)都具有至少一个有效残差系数(即,相应编码块标志的值为1)、并且预测单位不使用变换(即,针对所考虑的预测单位(PU)启用“变换跳过”)的情况下,控制进入边界强度0的步骤1112。在这些配置中,即使存在有效残差系数,在使用变换跳过的邻接块之间也不应用去块滤波器。由于针对画面内容有可能选择变换跳过,因此应用去块滤波器的省略防止了这种内容的不期望平滑化。在使用变换跳过的邻接块之间不应用去块滤波器的情况下,实现了小的编码效率提高。

在视频编码器114和视频解码器134的另一配置中,修改初始变换和编码块标志值测试的步骤1101,使得在任意或两个预测单位(PU)具有至少一个有效残差系数(即,编码块标志等于1)、并且与预测单位(PU)相对应的亮度通道(即,主要颜色通道)中的变换块(TB)不使用变换(即,针对所考虑的变换块(TB)启用“变换跳过”)的情况下,控制进入边界强度0的步骤1112。在这些配置中,即使存在有效残差系数,在块至少之一使用变换跳过的邻接块之间也不应用去块滤波器。由于针对画面内容有可能选择变换跳过,因此应用去块滤波器的省略防止了这种内容的不期望平滑化,并且实现了小的编码效率提高。

在视频编码器114和视频解码器134的又一配置中,修改初始变换和编码块标志值测试的步骤1101,使得应用以下规则以确定边界强度:设P表示所考虑的边缘的一边的变换单位(TU)或预测单位(PU),并且设Q表示所考虑的边缘的另一边的变换单位(TU)或预测单位(PU)。可利用两个变化:如果以下表达式评价为真,则处理器205的控制进入边界强度0的步骤1112,否则控制进入步骤1102:

变化1:(CBF(P)等于零或TS(P))、并且(CBF(Q)等于零或TS(Q)以及(Intra(P)或IBC(P)和Intra(Q)或IBC(Q))

变化2:(CBF(P)等于零或TS(P))、并且(CBF(Q)等于零或TS(Q)以及(IBC(P)或IBC(Q))

其中:CBF(x)等于与块“x”相关联的亮度变换块(TB)的编码块标志;TS(x)等于与块“x”相关联的亮度变换块(TB)的变换跳过标志;Intra(x)表示与块“x”相关联的预测单位(PU)的预测模式是帧内预测;并且IBC(x)表示与块“x”相关联的预测单位(PU)的预测模式是帧内块复制。这种配置禁用沿着与(包括边缘的一边不具有任何有效残差系数的)变换跳过块相关联的边缘的去块,并且针对包括画面内容的帧的区域提供提高了的编码效率。

在视频编码器114和视频解码器134的又一配置中,省略了方法1100的块矢量测试的步骤1107。在省略了步骤1107的配置中,如果处理器205在帧内块复制测试的步骤1105中判断为沿着给定边缘的任意或两个预测单位(PU)使用帧内块复制、调色板模式或者帧内块复制和调色板预测模式的组合,则控制进入边界强度1的步骤1110。在省略了步骤1107的配置中,消除了用以缓冲用于确定去块滤波器的边界强度的帧内块复制预测单位的块矢量的要求。如此,利用视频编码器114中的去块模块330或视频解码器134中的去块模块430没有访问块矢量。在省略了步骤1107的配置中,修改图10B的表1010所述的规则,使得各自使用帧内块复制的两个预测单位(PU)之间的边缘的边界强度值始终为1。

在视频编码器114和视频解码器134的又一配置中,按照如下所述修改图11的步骤1105:如果任意预测模式是帧内块复制或调色板模式,则处理器205的控制进入边界强度值0的步骤1112。在包括这种修改后的步骤1105的配置中,对于给定边缘,如果该边缘的任意边的预测单位(PU)正使用帧内块复制模式或者调色板模式或者这两个预测模式的组合,则针对主要颜色通道和次要颜色通道禁用去块滤波器。

图12是示出用于针对去块滤波器设置边界强度值的方法1200的示意流程图。方法1200得到根据表1020的规则来设置边界强度值。方法1200可被实现为实现视频编码器114或视频解码器134的一个或多个软件代码模块,其中该一个或多个软件代码模块驻留在硬盘驱动器210上并且由处理器205控制其执行。在视频编码器114和视频解码器134这两者中进行方法1200。然而,以下将参考视频编码器114来说明方法1200。针对帧数据310中的各边缘进行方法1200,直到8×8的块粒度为止。

在帧内块复制或调色板模式测试的步骤1201中,去块滤波器模块330(或者在利用视频解码器134正进行方法1200的情况下为去块滤波器模块430)在处理器205的控制下测试所考虑的边缘的一边的预测单位(PU)的第一预测模式和所考虑的边缘的另一边的预测单位(PU)的第二预测模式。如果任意预测模式是帧内块复制或调色板模式,则处理器205的控制进入边界强度1的步骤1210。步骤1201中所执行的测试得到:在第一预测模式是帧内预测并且第二预测模式是帧内块复制或调色板模式、或者第一预测模式是帧内块复制或调色板模式并且第二预测模式是帧内的情况下,控制进入边界强度1的步骤1210。步骤1201与图11的步骤1102的不同之处在于:如此得到的边界强度是1而不是2。由于步骤1201中所执行的测试以对称方式处理各边缘,因此第一预测模式和第二预测模式的以下定义是可以的:左方预测单位(PU)和右方预测单位(PU)、或者右方预测单位(PU)和左方预测单位(PU)、或者上方预测单位(PU)和下方预测单位(PU)、或者下方预测单位(PU)和上方预测单位(PU)。否则(即,如果两个预测模式都不是帧内块复制或者调色板模式或者这两个预测模式的组合),则处理器205的控制进入帧内测试的步骤1202。

在帧内测试的步骤1202中,去块滤波器模块330(或者在利用视频解码器134正进行方法1200的情况下为去块滤波器模块430)在处理器205的控制下测试所考虑的边缘的任意边的预测单位(PU)的预测模式。如果任意预测模式是帧内预测,则处理器205的控制进入边界强度2的步骤1204。否则(即,如果两个预测模式都是帧间预测),则处理器205的控制进入变换和编码块标志值测试的步骤1206。

在边界强度2的步骤1204中,去块滤波器模块330(或者在利用视频解码器134正进行方法1200的情况下为去块滤波器模块430)在处理器205的控制下将所考虑的边缘的边界强度值设置为2。然后,方法1200终止。

在编码块标志测试的步骤1206中,去块滤波器模块330(或者在利用视频解码器134正进行方法1200的情况下为去块滤波器模块430)在处理器205的控制下测试沿着所考虑的边缘的任意边的亮度变换块(TB)的编码块标志。如果任意变换块(TB)包括至少一个有效残差系数(即,相应的编码块标志的值为1),则处理器205的控制进入边界强度1的步骤1210。否则(即,两个亮度变换块(TB)都不具有有效残差系数),则控制进入参考图片和运动矢量测试的步骤1208。

在参考图片和运动矢量测试的步骤1208中,去块滤波器模块330(或者在利用视频解码器134正进行方法1200的情况下为去块滤波器模块430)在处理器205的控制下测试各预测单位(PU)的以下条件:

(a)针对各预测单位(PU)使用不同的参考图片,或者针对各预测单位(PU)使用不同数量的运动矢量;

(b)针对各预测单位(PU)使用一个运动矢量,并且两个运动矢量之间的绝对差大于四个四分之一亮度样本;

(c)针对各预测单位(PU)使用两个运动矢量,针对各块使用相同的两个参考图片,并且各对运动矢量之间的绝对差大于四个四分之一亮度样本。

在满足条件(a)~(c)中的任何条件的情况下,处理器205的控制进入边界强度1的步骤1210。否则(即,不满足条件(a)~(c)),处理器205的控制进入边界强度0的步骤1212。

在边界强度1的步骤1210中,去块滤波器模块330(或者在利用视频解码器134正进行方法1200的情况下为去块滤波器模块430)在处理器205的控制下将所考虑的边缘的边界强度值设置为1。然后,方法1200终止。

在边界强度0的步骤1212中,去块滤波器模块330(或者在利用视频解码器134正进行方法1200的情况下为去块滤波器模块430)在处理器205的控制下将所考虑的边缘的边界强度值设置为0。然后,方法1200终止。

在视频编码器114和视频解码器134的一个配置中,按照如下所述修改图12的步骤1201:如果任意预测模式是帧内块复制或调色板模式,则处理器205的控制进入边界强度0的步骤1212。在以这种方式修改步骤1201的配置中,对于给定边缘,如果该边缘的任意边的预测单位(PU)正使用帧内块复制模式或者调色板模式或者帧内块复制和调色板预测模式的组合,则针对主要颜色通道和次要颜色通道禁用去块滤波器。

图13是示出用于对视频数据的块进行帧内块复制和去块的方法的示意流程图。方法1300可被实现为实现视频编码器114或视频解码器134的一个或多个软件代码模块,其中该一个或多个软件代码模块驻留在硬盘驱动器210上并且由处理器205控制其执行。在视频编码器114和视频解码器134这两者中进行方法1300。然而,以下将参考视频编码器114来说明方法1300。将方法1300应用于帧中的每个编码树块(CTB)。

进行如以下所述的步骤1302~1320,使得遍历整个编码树块(CTB)。另外,针对视频数据的帧中的每个编码树块(CTB)进行方法1300。

在确定预测模式的步骤1302中,预测模式选择器模块348在处理器205的控制下在视频编码器114(视频解码器134中的熵解码器420)中确定针对两个邻接配置的预测单位(PU)的预测模式。在利用视频解码器134正进行方法1300的情况下,也利用熵解码器模块420进行步骤1106。

在帧内块复制测试的步骤1304中,处理器205测试所考虑的预测单位(PU)的预测模式。如果该预测模式表示使用帧内块复制,则处理器的控制进入区域测试的步骤1306。否则,处理器205的控制进入针对帧内预测或帧间预测的步骤(图13中未示出),然后进入确定残差四叉树的步骤1312。

在区域测试的步骤1306中,视频编码器114中的帧内块复制模块350(或者在利用视频解码器134正进行方法1300的情况下为视频解码器134中的帧内块复制模块436)测试与所考虑的预测单位(PU)相关联的块矢量。如果该块矢量参考当前编码树单位(CTU)或先前编码树单位(CTU)内的参考块、即视频编码器114中的重建样本370或视频解码器134中的重建样本458,则处理器205的控制进入从重建样本进行复制的步骤1308。图6的块矢量608是参考当前编码树单位(CTU)和/或先前编码树单位(CTU)内的参考块的这种块矢量的示例。否则(块矢量参考当前编码树单位(CTU)和先前编码树单位(CTU)外的参考块),处理器205的控制进入从帧缓冲器进行复制的步骤1310。图6的块矢量612是表示参考当前编码树单位(CTU)和先前编码树单位(CTU)外的参考块的块矢量的示例。

在从重建样本进行复制的步骤1308中,视频编码器114中的多路复用器352从重建样本370中选择样本的块。步骤1308中所选择的重建样本是在进行环内滤波(即,去块)之前存在的样本。可选地,在利用视频解码器134正进行方法1300的情况下,视频解码器134中的多路复用器440在步骤1308中从重建样本458中选择样本的块。重建样本370是没有进行去块的样本。重建样本370来自视频数据的与当前编码树单位(CTU)或先前编码树单位(CTU)相对应的帧的区域。如此,通常使用“片上”存储器来存储重建样本370。使用本地或片上存储器降低了针对外部存储器(例如,206)的带宽要求。通常使用在硅面积方面昂贵但提供非常高的带宽的静态RAM来实现该片上存储器。由于片上存储器的(例如,硅面积方面的)极大成本,因此片上存储器通常缺少足以保持视频数据的整个帧的容量。

在从帧缓冲器进行复制的步骤1310中,视频编码器114中的多路复用器352从帧缓冲器332中选择样本的块。已对步骤1310中所选择的重建样本应用了环内滤波(即,去块)。可选地,在利用视频解码器134正进行方法1300的情况下,视频解码器134中的多路复用器440在步骤1310中从帧缓冲器432中选择样本的块。步骤1310中所选择的重建样本是从外部存储器(例如,206)中的帧缓冲器所获得的。如此,已对步骤1310中所选择的重建样本应用了去块滤波。可以从视频数据的帧中的当前编码树单位(CTU)和先前编码树单位(CTU)之前的任何位置来获得步骤1310中所选择的重建样本。如此,针对步骤1310中可选择的样本的存储要求超过针对片上存储器的实际约束,并且作为代替必须存储在外部存储器(例如,206)中。

将重建样本(即,在应用去块滤波器之前)存储到外部存储器(例如,206)中将增加外部存储器带宽,这是因为在利用视频数据的帧中的被配置为使用帧内块复制的稍后编码单位(CU)参考重建编码单位(CU)的样本的情况下,各重建编码单位(CU)将需要存储在外部存储器(例如,206)中。在视频编码器114的操作期间,去块样本(例如,372)已存储在外部存储器(例如,206)中。同样,在视频解码器134的操作期间,将来自去块滤波器模块430的输出存储在帧缓冲器模块432中。如此,在不要求将任何附加样本写入外部存储器(例如,206)的情况下,去块样本的块可供多路复用器352选择。此外,针对读取访问的外部存储器带宽的增加仅针对被配置为使用帧内块复制的各编码单位(CU)而存在。在视频解码器134中发生相似的行为,其中帧缓冲器432中的重建样本的块可供多路复用器440选择。

在确定残差四叉树的步骤1312中,确定针对编码单位(CU)的残差四叉树。在视频编码器114中,在处理器205的控制下,通常通过测试多个不同的残差四叉树并且针对各残差四叉树进行量化步骤、变换步骤、逆量化步骤和逆变换步骤(即,按照模块320~328)来确定残差四叉树。然后,在处理器205的控制下,利用熵编码器324将该残差四叉树编码在编码位流312中。

在利用视频解码器134执行方法1300的情况下,在处理器205的控制下,在步骤1312中,利用熵解码器420确定残差四叉树和残差系数,其中熵解码器420从视频位流312中解码关联的句法元素。

分两遍(首先针对水平边缘测试和去块、其次针对垂直边缘测试和去块)进行如以下所述的步骤1314~1320。

在确定预测单位(PU)边缘的步骤1314中,视频编码器114中的去块模块330(或者在利用视频解码器134正进行方法1300的情况下为视频解码器134中的去块模块430)在处理器205的控制下确定边缘标志阵列中的边缘标志。边缘标志阵列通知可以对哪些边缘进行去块并且不对哪些边缘进行去块,直到沿着8×8样本网格的边缘的粒度为止。对不同的预测单位(PU)之间的边缘加标志以进行去块。这些标志可以存储在存储器206内。针对各编码单位(CU)的预测单位(PU)边界基于该编码单位(CU)的分区模式是已知的。

在确定变换单位(TU)边界的步骤1316中,视频编码器114中的去块模块330(或者在利用视频解码器134正进行方法1300的情况下为视频解码器134中的去块模块430)在处理器205的控制下确定边缘标志阵列中的附加边缘标志。除步骤1314中所设置的边缘标志外,还可以向不同变换单位(TU)之间的任何边缘加标志以进行去块。变换单位(TU)边界基于所确定的针对各编码单位(CU)的残差四叉树(RQT)结构是已知的。

在确定边界强度的步骤1318中,视频编码器114中的去块模块330(或者在利用视频解码器134正进行方法1300的情况下为视频解码器134中的去块模块430)在处理器205的控制下确定各边缘的边界强度值。

在视频编码器114和视频解码器134的一个配置中,在进行步骤1318的情况下调用方法1100。在进行步骤1318的情况下调用方法1100的配置中,去块滤波器变弱,使得在邻接配置的帧内块复制预测单位(PU)之间的边缘处,不对次要颜色通道边缘进行去块但针对主要颜色通道应用弱滤波器。

在视频编码器114和视频解码器134的另一配置中,在步骤1318中调用方法1200。在步骤1318中调用方法1200的配置中,去块滤波器变弱,使得在任意预测单位(PU)使用帧内块复制的邻接预测单位之间的边缘处,不对次要颜色通道边缘进行去块但针对主要颜色通道应用弱滤波器。

方法1300继续进行应用去块滤波器的步骤1320,其中在该应用去块滤波器的步骤1320中,视频编码器114中的去块模块330(或者在利用视频解码器134正进行方法1300的情况下为视频解码器134中的去块模块430)在处理器205的控制下根据来自步骤1308的所确定的边界强度值来进行编码树块(CTB)中的各边缘的去块。根据图9的表900,使用滤波器强度来对主要颜色通道和次要颜色通道进行滤波。特别地,对于边界强度值1,向主要颜色通道应用了去块滤波,但没有向次要滤波通道应用去块滤波。然后,方法1300终止。

附录A示出根据方法1100的针对高效率视频编码(HEVC)标准的“工作草案”文本。

附录A示出根据方法1200的针对高效率视频编码(HEVC)标准的“工作草案”文本。

高度期望上述的用于对块矢量进行编码的方法作为提高通过帧内块复制可实现的压缩效率的方法,从而使帧内块复制成为供视频编码器进行选择的更具竞争性的候选模式。因而,所述的方法提高了可实现的压缩效率。

产业上的可利用性

所述的配置适用于计算机和数据处理行业,特别适用于对诸如视频信号等的信号进行编码或解码的数字信号处理。

前述仅说明本发明的一些实施例,并且可以在没有背离本发明的范围和精神的情况下对本发明进行修改和/或改变,其中这些实施例仅是示例性而非限制性的。

在本说明书的上下文中,词语“包括”意味着“主要但未必仅包括”或“具有”或“包含”,而不是“仅由…组成”。词语“包括(comprising)”的诸如“comprise”和“comprises”等的词尾变化具有相应的变化含义。

附录A

8.7.2.4边界滤波强度的推导过程

向该过程的输入如下:

–亮度图片样本阵列recPictureL

–指定相对于当前图片的左上亮度样本的当前亮度编码块的左上样本的亮度位置(xCb,yCb),

–指定当前亮度编码块的大小的变量log2CbSize,

–指定是对垂直(EDGE_VER)边缘还是对水平(EDGE_HOR)边缘进行滤波的变量edgeType,

–二维(nCbS)×(nCbS)阵列edgeFlags。

该过程的输出是指定边界滤波强度的二维(nCbS)×(nCbS)阵列bS。

按照如下所述推导变量xDi、yDj、xN和yN:

1.如果edgeType等于EDGE_VER,则将xDi设置得等于(i<<3),将yDj设置得等于(j<<2),将xN设置得等于(1<<(log2CbSize-3))-1,并且将yN设置得等于(1<<(log2CbSize-2))-1。

2.否则(edgeType等于EDGE_HOR),将xDi设置得等于(i<<2),将yDj设置得等于(j<<3),将xN设置得等于(1<<(log2CbSize-2))-1,并且将yN设置得等于(1<<(log2CbSize-3))-1。

对于i=0,..,xN的xDi和j=0,..,yN的yDj,以下适用:

3.如果edgeFlags[xDi][yDj]等于0,则将变量bS[xDi][yDj]设置得等于0。

4.否则(edgeFlags[xDi][yDj]等于1),以下适用:

–按照如下所述推导p0和q0

■如果edgeType等于EDGE_VER,则将p0设置得等于recPictureL[xCb+xDi-1][yCb+yDj],并且将q0设置得等于recPictureL[xCb+xDi][yCb+yDj]。

■否则(edgeType等于EDGE_HOR),则将p0设置得等于recPictureL[xCb+xDi][yCb+yDj-1],并且将q0设置得等于recPictureL[xCb+xDi][yCb+yDj]。

–按照如下所述推导变量bS[xDi][yDj]:

■如果样本p0或q0处于利用帧内预测模式而不是(帧内块复制模式或调色板预测模式)进行编码后的编码单位的亮度编码块中,则将bS[xDi][yDj]设置得等于2。

■否则,如果块边缘也是变换块边缘、并且样本p0或q0处于包含一个或多个非零变换系数等级的亮度变换块中,则将bS[xDi][yDj]设置得等于1。

■否则,如果以下条件中的一个或多个为真,则将bS[xDi][yDj]设置得等于1:

·对于包含样本p0的亮度预测块的预测,与对于包含样本q0的亮度预测块的预测相比,使用不同的参考图片或不同数量的运动矢量。

注释1-关于两个亮度预测块所使用的参考图片是相同还是不同的判断仅基于参考哪些图片,而与是使用向参考图片列表0的索引还是使用向参考图片列表1的索引来形成预测无关,并且还与参考图片列表内的索引位置是否不同无关。

注释2-具有涵盖(xPb,yPb)的左上亮度样本的亮度预测块的预测所使用的运动矢量的数量等于PredFlagL0[xPb][yPb]+PredFlagL1[xPb][yPb]。

·使用一个运动矢量来预测包含样本p0的亮度预测块并使用一个运动矢量来预测包含样本q0的亮度预测块,并且所使用的运动矢量的水平或垂直成分之间的绝对差大于或等于以四分之一亮度样本为单位的4。

·使用两个运动矢量和两个不同参考图片来预测包含样本p0的亮度预测块,使用针对相同的两个参考图片的两个运动矢量来预测包含样本q0的亮度预测块,并且针对相同参考图片的两个亮度预测块的预测中所使用的两个运动矢量的水平或垂直成分之间的绝对差大于或等于以四分之一亮度样本为单位的4。

·使用针对相同参考图片的两个运动矢量来预测包含样本p0的亮度预测块,使用针对相同参考图片的两个运动矢量来预测包含样本q0的亮度预测块,并且以下这两个条件都为真:

○两个亮度预测块的预测中所使用的列表0运动矢量的水平或垂直成分之间的绝对差大于或等于以四分之一亮度样本为单位的4,或者两个亮度预测块的预测中所使用的列表1运动矢量的水平或垂直成分之间的绝对差大于或等于以四分之一亮度样本为单位的4。

○包含样本p0的亮度预测块的预测中所使用的列表0运动矢量和包含样本q0的亮度预测块的预测中所使用的列表1运动矢量的水平或垂直成分之间的绝对差大于或等于以四分之一亮度样本为单位的4,或者包含样本p0的亮度预测块的预测中所使用的列表1运动矢量和包含样本q0的亮度预测块的预测中所使用的列表0运动矢量的水平或垂直成分之间的绝对差大于或等于以四分之一亮度样本为单位的4。

■否则,变量bS[xDi][yDj]被设置得等于0。

附录B

8.7.2.4边界滤波强度的推导过程

向该过程的输入如下:

–亮度图片样本阵列recPictureL

–指定相对于当前图片的左上亮度样本的当前亮度编码块的左上样本的亮度位置(xCb,yCb),

–指定当前亮度编码块的大小的变量log2CbSize,

–指定是对垂直(EDGE_VER)边缘还是对水平(EDGE_HOR)边缘进行滤波的变量edgeType,

–二维(nCbS)×(nCbS)阵列edgeFlags。

该过程的输出是指定边界滤波强度的二维(nCbS)×(nCbS)阵列bS。

按照如下所述推导变量xDi、yDj、xN和yN:

–如果edgeType等于EDGE_VER,则将xDi设置得等于(i<<3),将yDj设置得等于(j<<2),将xN设置得等于(1<<(log2CbSize-3))-1,并且将yN设置得等于(1<<(log2CbSize-2))-1。

–否则(edgeType等于EDGE_HOR),将xDi设置得等于(i<<2),将yDj设置得等于(j<<3),将xN设置得等于(1<<(log2CbSize-2))-1,并且将yN设置得等于(1<<(log2CbSize-3))-1。

对于i=0..xN的xDi和j=0..yN的yDj,以下适用:

–如果edgeFlags[xDi][yDj]等于0,则将变量bS[xDi][yDj]设置得等于0。

–否则(edgeFlags[xDi][yDj]等于1),以下适用:

–按照如下所述推导p0和q0

-如果edgeType等于EDGE_VER,则将p0设置得等于recPictureL[xCb+xDi-1][yCb+yDj],并且将q0设置得等于recPictureL[xCb+xDi][yCb+yDj]。

-否则(edgeType等于EDGE_HOR),则将p0设置得等于recPictureL[xCb+xDi][yCb+yDj-1],并且将q0设置得等于recPictureL[xCb+xDi][yCb+yDj]。

–按照如下所述推导变量bS[xDi][yDj]:

-如果样本p0或q0处于利用帧内块复制模式或调色板预测模式进行编码后的编码单位的亮度编码块中,则将bS[xDi][yDj]设置得等于1。

-否则,如果样本p0或q0处于利用帧内预测模式进行编码后的编码单位的亮度编码块中,则将bS[xDi][yDj]设置得等于2。

-否则,如果块边缘也是变换块边缘并且样本p0或q0处于包含一个或多个非零变换系数等级的亮度变换块中,则将bS[xDi][yDj]设置得等于1。

-否则,如果以下条件中的一个或多个为真,则将bS[xDi][yDj]设置得等于1:

-对于包含样本p0的亮度预测块的预测,与包含样本q0的亮度预测块的预测相比,使用不同的参考图片或不同数量的运动矢量。

注释1-关于两个亮度预测块所使用的参考图片是相同还是不同的判断仅基于参考哪些图片,而与是使用向参考图片列表0的索引还是使用向参考图片列表1的索引来形成预测无关,并且还与参考图片列表内的索引位置是否不同无关。

注释2-具有涵盖(xPb,yPb)的左上亮度样本的亮度预测块的预测所使用的运动矢量的数量等于PredFlagL0[xPb][yPb]+PredFlagL1[xPb][yPb]。

-使用一个运动矢量来预测包含样本p0的亮度预测块并使用一个运动矢量来预测包含样本q0的亮度预测块,并且所使用的运动矢量的水平或垂直成分之间的绝对差大于或等于以四分之一亮度样本为单位的4。

-使用两个运动矢量和两个不同参考图片来预测包含样本p0的亮度预测块,使用针对相同的两个参考图片的两个运动矢量来预测包含样本q0的亮度预测块,并且针对相同参考图片的两个亮度预测块的预测中所使用的两个运动矢量的水平或垂直成分之间的绝对差大于或等于以四分之一亮度样本为单位的4。

-使用针对相同参考图片的两个运动矢量来预测包含样本p0的亮度预测块,使用针对相同参考图片的两个运动矢量来预测包含样本q0的亮度预测块,并且以下这两个条件都为真:

-两个亮度预测块的预测中所使用的列表0运动矢量的水平或垂直成分之间的绝对差大于或等于以四分之一亮度样本为单位的4,或者两个亮度预测块的预测中所使用的列表1运动矢量的水平或垂直成分之间的绝对差大于或等于以四分之一亮度样本为单位的4。

-包含样本p0的亮度预测块的预测中所使用的列表0运动矢量和包含样本q0的亮度预测块的预测中所使用的列表1运动矢量的水平或垂直成分之间的绝对差大于或等于以四分之一亮度样本为单位的4,或者包含样本p0的亮度预测块的预测中所使用的列表1运动矢量和包含样本q0的亮度预测块的预测中所使用的列表0运动矢量的水平或垂直成分之间的绝对差大于或等于以四分之一亮度样本为单位的4。

-否则,变量bS[xDi][yDj]被设置得等于0。

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