视频码流的解码方法及对应的设备及介质转让专利

申请号 : CN202210732621.3

文献号 : CN115314708B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陈建乐弗努·亨德里王业奎

申请人 : 华为技术有限公司

摘要 :

一种解码方法,包括:视频解码器确定正在解码的当前图像的分辨率是否与通过与所述当前图像关联的参考图像列表标识的参考图像的分辨率相同;当确定所述当前图像的所述分辨率与每个所述参考图像的分辨率都相同时,所述视频解码器对所述当前图像的当前块启用解码器侧运动矢量修正(decoder‑side motion vector refinement,DMVR);当确定所述当前图像的所述分辨率与任一所述参考图像的分辨率不同时,所述视频解码器对所述当前图像的所述当前块禁用所述DMVR;当对所述当前块启用DMVR标志时,所述视频解码器使用所述DMVR修正所述当前块对应的运动矢量。

权利要求 :

1.一种视频码流的解码方法,其特征在于,包括:

确定正在解码的当前图像的分辨率是否与所述当前图像关联的参考图像列表所标识的参考图像的分辨率相同;

当确定所述当前图像的所述分辨率与每个所述参考图像的分辨率都相同时,对所述当前图像的当前块启用解码器侧运动矢量修正DMVR;

当确定所述当前图像的所述分辨率与任一所述参考图像的分辨率不同时,对所述当前图像的所述当前块禁用所述DMVR;

当对所述当前块启用所述DMVR时,使用所述DMVR修正所述当前块对应的运动矢量。

2.根据权利要求1所述的方法,其特征在于,启用所述DMVR包括将DMVR标志设置为第一值,禁用所述DMVR包括将所述DMVR标志设置为第二值。

3.根据权利要求1或2所述的方法,其特征在于,还包括根据双向帧间预测模式,基于所述参考图像列表为所述当前图像生成所述参考图像。

4.根据权利要求1或2所述的方法,其特征在于,还包括根据每个图像的分辨率和与所述图像关联的参考图像的分辨率不同或相同,对多个图像中的块选择性启用和禁用所述DMVR。

5.根据权利要求1或2所述的方法,其特征在于,还包括当所述DMVR被禁用时,对包含所述当前图像的整个编码视频序列CVS启用参考图像重采样RPR。

6.根据权利要求1或2所述的方法,其特征在于,所述当前图像的所述分辨率设置在经编码的视频码流的参数集中,所述当前块是从所述当前图像的条带中获得的。

7.根据权利要求1或2所述的方法,其特征在于,还包括在电子设备的显示器上显示使用所述当前块生成的图像。

8.一种解码设备,其特征在于,包括:

接收器,用于接收经编码的视频码流;

与所述接收器耦合的存储器,所述存储器存储指令;

与所述存储器耦合的处理器,所述处理器用于执行所述指令以使所述解码设备:确定正在解码的当前图像的分辨率是否与所述当前图像关联的参考图像列表所标识的参考图像的分辨率相同;

当确定所述当前图像的所述分辨率与每个所述参考图像的分辨率都相同时,对所述当前图像的当前块启用解码器侧运动矢量修正DMVR;

当确定所述当前图像的所述分辨率与任一所述参考图像的分辨率不同时,对所述当前图像的所述当前块禁用所述DMVR;

当对所述当前块启用所述DMVR时,使用所述DMVR修正所述当前块对应的运动矢量。

9.根据权利要求8所述的解码设备,其特征在于,启用所述DMVR包括将DMVR标志设置为第一值,禁用所述DMVR包括将所述DMVR标志设置为第二值。

10.根据权利要求8或9所述的解码设备,其特征在于,所述处理器还用于根据双向帧间预测模式,基于所述参考图像列表为所述当前图像生成所述参考图像。

11.根据权利要求8或9所述的解码设备,其特征在于,所述处理器还用于根据每个图像的分辨率和与所述图像关联的参考图像的分辨率不同或相同,对多个图像中的块选择性启用和禁用所述DMVR。

12.根据权利要求8或9所述的解码设备,其特征在于,当所述DMVR被禁用时,对包含所述当前图像的整个编码视频序列CVS启用参考图像重采样RPR。

13.根据权利要求8或9所述的解码设备,其特征在于,所述当前图像的所述分辨率设置在经编码的视频码流的参数集中,所述当前块是从所述当前图像的条带中获得的。

14.根据权利要求8或9所述的解码设备,其特征在于,还包括显示器,所述显示器用于显示根据所述当前块生成的图像。

15.一种译码装置,其特征在于,包括:

接收器,用于接收码流进行解码;

与所述接收器耦合的发送器,其中,所述发送器用于将解码图像发送到显示器;

与所述接收器或所述发送器中的至少一个耦合的存储器,其中,所述存储器用于存储指令;

与所述存储器耦合的处理器,所述处理器用于执行存储在所述存储器中的所述指令,以执行根据权利要求1至7中任一项所述的方法。

16.根据权利要求15所述的译码装置,其特征在于,还包括用于显示图像的显示器。

17.一种视频码流的编解码系统,其特征在于,包括:编码器;

与所述编码器通信的解码器,其中,所述解码器包括根据权利要求8至14中任一项所述的解码设备或权利要求15或16所述的译码装置。

18.一种译码模块,其特征在于,包括:

接收模块,用于接收码流进行解码;

与所述接收模块耦合的发送模块,其中,所述发送模块用于将解码图像发送到显示模块;

与所述接收模块或所述发送模块中的至少一个耦合的存储模块,其中,所述存储模块用于存储指令;

与所述存储模块耦合的处理模块,其中,所述处理模块用于执行存储在所述存储模块中的所述指令,以执行根据权利要求1至7中任一项所述的方法。

19.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储用于被处理器执行的程序,所述程序使所述处理器执行根据权利要求1至7中任一项所述的方法。

说明书 :

视频码流的解码方法及对应的设备及介质

[0001] 本申请是分案申请,原申请的申请号是202080035927.2,原申请日是2020年5月14日,原申请的全部内容通过引用结合在本申请中。

技术领域

[0002] 本发明大体上描述了在视频译码中支持解码器侧运动矢量修正(decoder‑side motion vector refinement,DMVR)的技术。更具体地,本发明支持DMVR用于参考图像重采样,并且在当前图像和参考图像的空间分辨率不同时,可以对块或样本禁用DMVR。

背景技术

[0003] 即使视频相对较短,也需要大量的视频数据来描述,当数据要在带宽容量受限的通信网络中进行流式传输或以其它方式传输时,这样可能会造成困难。因此,视频数据通常要先压缩,然后通过现代电信网络进行传输。由于内存资源可能有限,当在存储设备中存储视频时,视频的大小也可能成为问题。视频压缩设备通常在信源侧使用软件和/或硬件对视频数据进行编码,然后进行传输或存储,从而减少表示数字视频图像所需的数据量。然后,对视频数据进行解码的视频解压缩设备在目的地侧接收压缩数据。在网络资源有限以及对更高视频质量的需求不断增长的情况下,需要改进压缩和解压缩技术,这些改进的技术在几乎不影响图像质量的情况下能够提高压缩比。

发明内容

[0004] 第一方面涉及一种由视频解码器实现的对经编码的视频码流进行解码的方法。所述方法包括:视频解码器确定正在解码的当前图像的分辨率是否与通过与所述当前图像关联的参考图像列表标识的参考图像的分辨率相同;当确定所述当前图像的所述分辨率与每个所述参考图像的分辨率都相同时,所述视频解码器对所述当前图像的当前块启用解码器侧运动矢量修正(decoder‑side motion vector refinement,DMVR);当确定所述当前图像的所述分辨率与任一所述参考图像的分辨率不同时,所述视频解码器对所述当前图像的所述当前块禁用所述DMVR;当对所述当前块启用所述DMVR时,所述视频解码器使用所述DMVR修正所述当前块对应的运动矢量。
[0005] 该方法所提供的技术可以在当前图像的空间分辨率与参考图像的空间分辨率不同时选择性禁用DMVR,而不是在启用参考图像重采样(reference picture resampling,RPR)时必须对整个CVS禁用DMVR。以这种方式选择性禁用DMVR可以提高译码效率。因此,可以在编码器和解码器侧降低处理器、存储器和/或网络资源利用率。因此,视频译码中的编码器/解码器(又名“编解码器”)相对于当前编解码器得到了改进。实际上,当视频在发送、接收和/或观看时,改进的视频译码过程为用户提供了更好的用户体验。
[0006] 可选地,在上述任一方面中,提供了该方面的另一种实现方式:启用所述DMVR包括将DMVR标志设置为第一值,禁用所述DMVR包括将所述DMVR标志设置为第二值。
[0007] 可选地,在上述任一方面中,提供了该方面的另一种实现方式:根据双向帧间预测模式,基于所述参考图像列表为所述当前图像生成所述参考图像。
[0008] 可选地,在上述任一方面中,提供了该方面的另一种实现方式:根据每个图像的分辨率和与所述图像关联的参考图像的分辨率不同或相同,对多个图像中的块选择性启用和禁用所述DMVR。
[0009] 可选地,在上述任一方面中,提供了该方面的另一种实现方式:当所述DMVR被禁用时,对包含所述当前图像的整个编码视频序列(coded video sequence,CVS)启用参考图像重采样(reference picture resampling,RPR)。
[0010] 可选地,在上述任一方面中,提供了该方面的另一种实现方式:所述当前图像的所述分辨率设置在所述经编码的视频码流的参数集中,所述当前块是从所述当前图像的条带中获得的。
[0011] 可选地,在上述任一方面中,提供了该方面的另一种实现方式:在电子设备的显示器上显示使用所述当前块生成的图像。
[0012] 第二方面涉及一种由视频编码器实现的对视频码流进行编码的方法。所述方法包括:所述视频编码器确定正在编码的当前图像的分辨率是否与在与所述当前图像关联的参考图像列表中标识的参考图像的分辨率相同;当确定所述当前图像的所述分辨率与每个所述参考图像的分辨率都相同时,所述视频编码器对所述当前图像的当前块启用解码器侧运动矢量修正(decoder‑side motion vector refinement,DMVR);当确定所述当前图像的所述分辨率与任一所述参考图像的分辨率不同时,所述视频编码器对所述当前图像的所述当前块禁用所述DMVR;当对所述当前块启用所述DMVR时,所述视频编码器使用所述DMVR修正所述当前块对应的运动矢量。
[0013] 该方法所提供的技术可以在当前图像的空间分辨率与参考图像的空间分辨率不同时选择性禁用DMVR,而不是在启用参考图像重采样(reference picture resampling,RPR)时必须对整个CVS禁用DMVR。以这种方式选择性禁用DMVR可以提高译码效率。因此,可以在编码器和解码器侧降低处理器、存储器和/或网络资源利用率。因此,视频译码中的编码器/解码器(又名“编解码器”)相对于当前编解码器得到了改进。实际上,当视频在发送、接收和/或观看时,改进的视频译码过程为用户提供了更好的用户体验。
[0014] 可选地,在上述任一方面中,提供了该方面的另一种实现方式:所述视频编码器根据所述参考图像确定所述当前图像的运动矢量;所述视频编码器根据所述运动矢量对所述当前图像进行编码;所述视频编码器使用假设参考解码器对所述当前图像进行解码。
[0015] 可选地,在上述任一方面中,提供了该方面的另一种实现方式:启用所述DMVR包括将DMVR标志设置为第一值,禁用所述DMVR包括将所述DMVR标志设置为第二值。
[0016] 可选地,在上述任一方面中,提供了该方面的另一种实现方式:根据双向帧间预测模式,基于参考图像列表为所述当前图像生成所述参考图像。
[0017] 可选地,在上述任一方面中,提供了该方面的另一种实现方式:根据每个图像的分辨率和与所述图像关联的参考图像的分辨率不同或相同,对多个图像中的块选择性启用和禁用所述DMVR。
[0018] 可选地,在上述任一方面中,提供了该方面的另一种实现方式:即使当所述DMVR被禁用时,也对包含所述当前图像的整个编码视频序列(coded video sequence,CVS)启用参考图像重采样(reference picture resampling,RPR)。
[0019] 可选地,在上述任一方面中,提供了该方面的另一种实现方式:向视频解码器发送包含所述当前块的所述视频码流。
[0020] 第三方面涉及一种解码设备。所述解码设备包括:接收器,用于接收经编码的视频码流;与所述接收器耦合的存储器,所述存储器存储指令;与所述存储器耦合的处理器,所述处理器用于执行所述指令以使所述解码设备:确定正在解码的当前图像的分辨率是否与通过与所述当前图像关联的参考图像列表标识的参考图像的分辨率相同;当确定所述当前图像的所述分辨率与每个所述参考图像的分辨率都相同时,对所述当前图像的当前块启用解码器侧运动矢量修正(decoder‑side motion vector refinement,DMVR);当确定所述当前图像的所述分辨率与任一所述参考图像的分辨率不同时,对所述当前图像的所述当前块禁用所述DMVR;当对所述当前块启用所述DMVR时,使用所述DMVR修正所述当前块对应的运动矢量。
[0021] 该解码设备所提供的技术可以在当前图像的空间分辨率与参考图像的空间分辨率不同时选择性禁用DMVR,而不是在启用参考图像重采样(reference picture resampling,RPR)时必须对整个CVS禁用DMVR。以这种方式选择性禁用DMVR可以提高译码效率。因此,可以在编码器和解码器侧降低处理器、存储器和/或网络资源利用率。因此,视频译码中的编码器/解码器(又名“编解码器”)相对于当前编解码器得到了改进。实际上,当视频在发送、接收和/或观看时,改进的视频译码过程为用户提供了更好的用户体验。
[0022] 可选地,在上述任一方面中,提供了该方面的另一种实现方式:当所述DMVR被禁用时,对包含所述当前图像的整个编码视频序列(coded video sequence,CVS)启用参考图像重采样(reference picture resampling,RPR)。
[0023] 可选地,在上述任一方面中,该方面的另一种实现方式提供了一种显示器,所述显示器用于显示根据所述当前块生成的图像。
[0024] 第四方面涉及一种编码设备。所述编码设备包括:存储器,所述存储器包含指令;与所述存储器耦合的处理器,所述处理器用于实现所述指令以使所述编码设备:确定正在编码的当前图像的分辨率是否与在与所述当前块关联的参考图像列表中标识的参考图像的分辨率相同;当确定所述当前图像的所述分辨率与每个所述参考图像的分辨率都相同时,对所述当前图像的当前块启用解码器侧运动矢量修正(decoder‑side motion vector refinement,DMVR);当确定所述当前图像的所述分辨率与任一所述参考图像的分辨率不同时,对所述当前图像的所述当前块禁用所述DMVR;当对所述当前块启用所述DMVR标志时,使用所述DMVR修正所述当前块对应的运动矢量;与所述处理器耦合的发送器,所述发送器用于向视频解码器发送包含所述当前块的视频码流。
[0025] 该编码设备所提供的技术可以在当前图像的空间分辨率与参考图像的空间分辨率不同时选择性禁用DMVR,而不是在启用参考图像重采样(reference picture resampling,RPR)时必须对整个CVS禁用DMVR。以这种方式选择性禁用DMVR可以提高译码效率。因此,可以在编码器和解码器侧降低处理器、存储器和/或网络资源利用率。因此,视频译码中的编码器/解码器(又名“编解码器”)相对于当前编解码器得到了改进。实际上,当视频在发送、接收和/或观看时,改进的视频译码过程为用户提供了更好的用户体验。
[0026] 可选地,在上述任一方面中,提供了该方面的另一种实现方式:即使当所述DMVR被禁用时,也对包含所述当前图像的整个编码视频序列(coded video sequence,CVS)启用参考图像重采样(reference picture resampling,RPR)。
[0027] 可选地,在上述任一方面中,提供了该方面的另一种实现方式:所述存储器在所述发送器向所述视频解码器发送所述码流之前存储所述视频码流。
[0028] 第五方面涉及一种译码装置。所述译码装置包括:接收器,用于接收图像进行编码或接收码流进行解码;与所述接收器耦合的发送器,其中,所述发送器用于将所述码流发送到解码器或将解码图像发送到显示器;与所述接收器或所述发送器中的至少一个耦合的存储器,其中,所述存储器用于存储指令;与所述存储器耦合的处理器,其中,所述处理器用于执行存储在所述存储器中的所述指令以执行本文公开的任一种方法。
[0029] 该译码装置所提供的技术可以在当前图像的空间分辨率与参考图像的空间分辨率不同时选择性禁用DMVR,而不是在启用参考图像重采样(reference picture resampling,RPR)时必须对整个CVS禁用DMVR。以这种方式选择性禁用DMVR可以提高译码效率。因此,可以在编码器和解码器侧降低处理器、存储器和/或网络资源利用率。因此,视频译码中的编码器/解码器(又名“编解码器”)相对于当前编解码器得到了改进。实际上,当视频在发送、接收和/或观看时,改进的视频译码过程为用户提供了更好的用户体验。
[0030] 第六方面涉及一种系统。所述系统包括编码器;以及与所述编码器通信的解码器,其中,所述编码器或所述解码器包括本文公开的解码设备、编码设备或译码装置。
[0031] 该系统所提供的技术可以在当前图像的空间分辨率与参考图像的空间分辨率不同时选择性禁用DMVR,而不是在启用参考图像重采样(reference picture resampling,RPR)时必须对整个CVS禁用DMVR。以这种方式选择性禁用DMVR可以提高译码效率。因此,可以在编码器和解码器侧降低处理器、存储器和/或网络资源利用率。因此,视频译码中的编码器/解码器(又名“编解码器”)相对于当前编解码器得到了改进。实际上,当视频在发送、接收和/或观看时,改进的视频译码过程为用户提供了更好的用户体验。

附图说明

[0032] 为了更全面地理解本发明,现在参考下文结合附图和详细说明进行的简要描述,其中,相似附图标记表示相似部件。
[0033] 图1是可以利用视频译码技术的示例性译码系统的框图。
[0034] 图2是可以实现视频译码技术的示例性视频编码器的框图。
[0035] 图3是可以实现视频译码技术的视频解码器示例的框图。
[0036] 图4是在解码顺序和呈现顺序中IRAP图像相对于前置图像和后置图像的关系的表示。
[0037] 图5示出了用于实现空间可适性的多层译码的示例。
[0038] 图6是单向帧间预测示例的示意图。
[0039] 图7是双向帧间预测示例的示意图。
[0040] 图8示出了视频码流。
[0041] 图9示出了图像的分割技术。
[0042] 图10是对经编码的视频码流进行解码的方法的实施例。
[0043] 图11是对经编码的视频码流进行编码的方法的实施例。
[0044] 图12是视频译码设备的示意图。
[0045] 图13是译码模块的实施例的示意图。

具体实施方式

[0046] 首先应理解,尽管下文提供了一个或多个实施例的说明性实现方式,但所公开的系统和/或方法可使用任何数量的技术来实现,无论这些技术是当前已知还是现有的。本发明决不应限于下文所说明的说明性实现方式、附图和技术,包括本文所说明并描述的示例性设计和实现方式,而是可以在所附权利要求书的范围以及其等效物的完整范围内修改。
[0047] 本文所使用的分辨率描述了视频文件中的像素数量。即,分辨率是投影图像以像素测量的宽度和高度。例如,视频的分辨率可能为1280(水平像素)×720(垂直像素)。这通常简单地写成1280×720,或缩写为720p。DMVR是一种用于修正预测块的运动或运动矢量的过程、算法或译码工具。DMVR可以根据使用双边模板匹配过程为双向预测找到的两个运动矢量找到运动矢量。在DMVR中,可以找到使用两个运动矢量中的每一个生成的预测编码单元的加权组合,并且这两个运动矢量可以通过用最佳地指向组合预测编码单元的新运动矢量替换它们来修正。RPR特征是在不需要在分辨率更改位置处对图像进行帧内译码的情况下,在码流中间更改经编码图像的空间分辨率的能力。
[0048] 图1为可以采用本文描述的视频译码技术的示例性译码系统10的框图。如图1所示,译码系统10包括源设备12,源设备12提供稍后待目的地设备14解码的经编码的视频数据。具体地,源设备12可以通过计算机可读介质16将视频数据提供给目的地设备14。源设备12和目的地设备14可以包括各种设备中的任一个,包括台式电脑、笔记本(例如,膝上型)电脑、平板电脑、机顶盒、“智能”手机和“智能”平板等电话手机、电视、摄像机、显示设备、数字媒体播放器、视频游戏机、视频流设备等。在一些情况下,源设备12和目的地设备14可以用于无线通信。
[0049] 目的地设备14可以通过计算机可读介质16接收待解码的经编码的视频数据。计算机可读介质16可以包括能够将经编码的视频数据从源设备12移动到目的地设备14的任何类型的介质或设备。在一个示例中,计算机可读介质16可以包括通信介质,以使源设备12能够将经编码的视频数据直接实时地发送到目的地设备14。经编码的视频数据可以根据通信标准(例如,无线通信协议)来调制,然后发送给目的地设备14。该通信介质可以包括任何无线或有线通信介质,例如,射频(radio frequency,RF)频谱或一个或多个物理传输线。所述通讯介质可构成分组网络(如局域网、广域网、或如互联网的全球网络)的一部分。该通信介质可以包括路由器、交换机、基站或任何其它可以促进源设备12与目的地设备14之间通信的设备。
[0050] 在一些示例中,经编码的数据可以从输出接口22输出到存储设备。类似地,经编码的数据可以通过输入接口从存储设备中存取。该存储设备可以包括各种分布式或本地存取的数据存储介质中的任一个,例如,硬盘驱动器、蓝光光盘、数字视频光盘(digital video disk,DVD)、只读光盘存储器(Compact Disc Read‑Only Memory,CD‑ROM)、闪存、易失性或非易失性存储器,或任何其它适合用于存储经编码的视频数据的数字存储介质。在另一示例中,存储设备可以对应于文件服务器或可以存储由源设备12生成的经编码的视频的另一中间存储设备。目的地设备14可以通过流式传输或下载方式从存储设备中存取所存储的视频数据。文件服务器可以是能够存储经编码的视频数据并将该经编码的视频数据发送给目的地设备14的任何类型的服务器。示例性文件服务器包括万维网服务器(例如,用于网站)、文件传输协议(file transfer protocol,FTP)服务器、网络附属存储(network attached storage,NAS)设备或本地磁盘驱动器。目的地设备14可以通过包括因特网连接的任何标准数据连接存取经编码的视频数据。标准数据连接可以包括无线信道(例如,Wi‑Fi连接)、有线连接(例如,数字用户线(digital subscriber line,DSL)、电缆调制解调器等)或适于存取在文件服务器中存储的经编码的视频数据的两者组合。经编码的视频数据从存储设备的传输可以是流式传输、下载传输或其组合。
[0051] 本发明的技术不一定限于无线应用或设置。这些技术可以应用于视频译码以支持各种多媒体应用中的任一种,例如,空中电视广播、有线电视传输、卫星电视传输、HTTP动态自适应流媒体(dynamic adaptive streaming over HTTP,DASH)等互联网流式视频传输、将数字视频编码以存储于数据存储介质中、对存储于数据存储介质中的数字视频解码,或其它应用。在一些示例中,译码系统10可以用于支持单向或双向视频传输,以支持视频流式传输、视频播放、视频广播和/或视频电话等应用。
[0052] 在图1的示例中,源设备12包括视频源18、视频编码器20和输出接口22。目的地设备14包括输入接口28、视频解码器30和显示设备32。根据本发明,源设备12的视频编码器20和/或目的地设备14的视频解码器30可以用于应用视频译码技术。在其它示例中,源设备和目的地设备可以包括其它组件或装置。例如,源设备12可以从外部视频源(例如,外部相机)接收视频数据。类似地,目的地设备14可以与外部显示设备连接,而不是包括集成显示设备。
[0053] 图1所示的译码系统10仅仅是一个示例。视频译码技术可以由任何数字视频编码和/或解码设备执行。尽管本发明的技术通常由视频译码设备执行,但这些技术也可以由视频编码器/解码器(通常称为“编解码器”)执行。此外,本发明的技术还可以由视频预处理器执行。视频编码器和/或解码器可以是图形处理单元(graphics processing unit,GPU)或类似设备。
[0054] 源设备12和目的地设备14仅仅是此类译码设备的示例,其中,源设备12生成经编码的视频数据,以发送给目的地设备14。在一些示例中,源设备12和目的地设备14可以基本上对称地操作,使得源设备12和目的地设备14都包括视频编码和解码组件。因此,译码系统10可以支持视频设备12和14之间的单向或双向视频传输,例如,用于视频流式传输、视频播放、视频广播或视频电话。
[0055] 源设备12的视频源18可以包括视频捕获设备(例如,摄像机)、包括先前捕获的视频的视频档案库,和/或从视频内容提供方接收视频的视频输入接口。在另一替代方案中,视频源18可以生成基于计算机图形的数据作为源视频,或直播视频、存档视频和计算机生成视频的组合。
[0056] 在一些情况下,当视频源18是摄像机时,源设备12和目的地设备14可以组成摄像手机或可视电话。然而,如上所述,本发明中描述的技术通常可以适用于视频译码,并且可以应用于无线应用和/或有线应用。在每种情况下,所捕获、预捕获或计算机生成的视频都可以由视频编码器20进行编码。然后,经编码的视频信息可以通过输出接口22输出到计算机可读介质16。
[0057] 计算机可读介质16可以包括瞬态介质,例如,无线广播或有线网络传输,还可以包括存储介质(即,非瞬时性存储介质),例如,硬盘、闪存盘、光盘、数字视频光盘、蓝光光盘或其它计算机可读介质。在一些示例中,网络服务器(未示出)可以从源设备12接收经编码的视频数据,并且通过网络传输等将经编码的视频数据提供给目的地设备14。类似地,介质生产设施(例如,光盘冲压设施)的计算设备可以从源设备12接收经编码的视频数据,并产生包括经编码的视频数据的光盘。因此,在各种示例中,计算机可读介质16可以理解为包括一个或多个各种形式的计算机可读介质。
[0058] 目的地设备14的输入接口28从计算机可读介质16接收信息。计算机可读介质16的信息可以包括由视频编码器20定义的语法信息。该语法信息还由视频解码器30使用,包括描述块和其它编码单元(例如,图像组(group of picture,GOP))的特征和/或处理方式的语法元素。显示设备32将经解码的视频数据显示给用户,并且可以包括各种显示设备中的任一个,例如,阴极射线管(cathode ray tube,CRT)、液晶显示器(liquid crystal display,LCD)、等离子体显示器、有机发光二极管(organic light emitting diode,OLED)显示器或其它类型的显示设备。
[0059] 视频编码器20和视频解码器30可以根据视频编码标准(例如,目前开发的高效视频编码(efficiency video coding,HEVC)标准)进行操作,并且可以遵守HEVC测试模型(HEVC test model,HM)。可选地,视频编码器20和视频解码器30可以根据其它专有或行业标准进行操作,这些标准例如为国际电信联盟电信标准化部门(International Telecommunications Union Telecommunication Standardization Sector,ITU‑T)H.264标准(还称为运动图像专家组(motion picture expert group,MPEG)‑4第10部分,高级视频编码(advanced video coding,AVC))、H.265/HEVC及此类标准的扩展版本。然而,本发明的技术不限于任何特定的编码标准。视频编码标准的其它示例包括MPEG‑2和ITU‑T H.263。尽管图1未示出,但是在一些方面中,视频编码器20和视频解码器30可以分别与音频编码器和音频解码器集成,并且可以包括合适的复用器‑解复用器(multiplexer‑demultiplexer,MUX‑DEMUX)单元或其它硬件和软件,以处理共同数据流或独立数据流中的音频和视频两者的编码。如果适用,MUX‑DEMUX单元可以遵守ITU H.223复用器协议,或用户数据报协议(user datagram protocol,UDP)等其它协议。
[0060] 视频编码器20和视频解码器30可以分别实现为各种合适的编码器电路中的任一个,例如,一个或多个微处理器、一个或多个数字信号处理器(digital signal processor,DSP)、一个或多个专用集成电路(application specific integrated circuit,ASIC)、一个或多个现场可编程门阵列(field programmable gate array,FPGA)、一个或多个离散逻辑、一个或多个软件、一个或多个硬件、一个或多个固件或其任何组合。当上述技术部分以软件实现时,一种设备可以将该软件的指令存储在合适的非瞬时性计算机可读介质中,并且在硬件中使用一个或多个处理器来执行这些指令,以执行本发明的技术。视频编码器20和视频解码器30都可以包括在一个或多个编码器或解码器中,其中任一者可以集成为相应设备中的组合编码器/解码器(encoder/decoder,CODEC)的部分。包括视频编码器20和/或视频解码器30的设备可以包括集成电路、微处理器和/或如蜂窝电话等无线通信设备。
[0061] 图2为可以实现视频译码技术的视频编码器20示例的框图。视频编码器20可以对视频条带(slice)内的视频块执行帧内译码和帧间译码。帧内译码依赖于空间预测来减少或去除给定视频帧或图像内的视频中的空间冗余。帧间译码依赖于时间预测来减少或去除视频序列的相邻帧或图像内的视频中的时间冗余。帧内模式(I模式)可以指代若干种基于空间的译码模式中的任一种。帧间模式(例如单向预测(uni‑directional/uni prediction)(P模式)或双向预测(bi‑prediction/bi prediction)(B模式)可以指代若干种基于时间的译码模式中的任一种。
[0062] 如图2所示,视频编码器20接收待编码的视频帧内的当前视频块。在图2的示例中,视频编码器20包括模式选择单元40、参考帧存储器64、加法器50、变换处理单元52、量化单元54和熵编码单元56。模式选择单元40又包括运动补偿单元44、运动估计单元42、帧内预测(intra‑predition/intra prediction)单元46和分割单元48。为了视频块重建,视频编码器20还包括反量化单元58、逆变换单元60和加法器62。去块效应滤波器(图2中未示出)也包括在内,以对块边界进行滤波,从而从重建视频中去除块性伪影。如果需要,去块效应滤波器通常对加法器62的输出进行滤波。除去块效应滤波器之外,还可以使用其它(环内或环后)滤波器。为了简洁起见而未示出此类滤波器,但是如果需要,此类滤波器(作为环内滤波器)可以对加法器50的输出进行滤波。
[0063] 在编码过程期间,视频编码器20接收待译码的视频帧或条带。可以将帧或条带划分成多个视频块。运动估计单元42和运动补偿单元44相对于一个或多个参考帧中的一个或多个块对接收到的视频块执行帧间预测译码,以提供时间预测。帧内预测单元46还可以相对于与待译码块位于同一帧或条带中的一个或多个相邻块对接收到的视频块执行帧内预测译码,以提供空间预测。视频编码器20可以执行多个译码过程,(例如)以选择用于视频数据的每一块的适当译码模式。
[0064] 此外,分割单元48可以基于先前译码过程中对先前分割方案的评估而将视频数据的块分割成多个子块。例如,分割单元48可以最初将帧或条带分割成多个最大编码单元(largest coding unit,LCU),并且根据率失真分析(例如,率失真优化)将每个LCU分割成多个子编码单元(sub‑coding unit,sub‑CU)。模式选择单元40可以进一步产生指示LCU分割成多个子CU的四叉树数据结构。四叉树的叶节点CU可以包括一个或多个预测单元(prediction unit,PU)和一个或多个变换单元(transform unit,TU)。
[0065] 本发明使用术语“块”来指代HEVC上下文中的CU、PU或TU中的任一个或其它标准上下文中的类似数据结构(例如,H.264/AVC中的宏块及其子块)。CU包括编码节点、与编码节点关联的PU和TU。CU的大小与编码节点的大小对应,呈正方形。CU的大小范围可以为8×8个像素到最大值为64×64个像素或更大的树块大小。每个CU可以包括一个或多个PU和一个或多个TU。例如,与CU关联的语法数据可以描述将CU分割为一个或多个PU。对CU进行跳过模式或直接模式编码、进行帧内预测模式编码或进行帧间预测(inter‑predictio/inter prediction)模式编码,分割模式可能有所不同。PU可以分割成非正方形。与CU关联的语法数据还可以描述(例如)根据四叉树将CU分割成一个或多个TU。TU可以是正方形或非正方形(例如,矩形)。
[0066] 模式选择单元40可以根据误差结果等选择帧内或帧间译码模式中的一种,将所得到的帧内或帧间译码块提供给加法器50以生成残差块数据,并提供给加法器62以重建编码块以用作参考帧。模式选择单元40还将语法元素(例如,运动矢量、帧内模式指示符、分割信息和其它此类语法信息)提供给熵编码单元56。
[0067] 运动估计单元42和运动补偿单元44可以高度集成,但出于概念目的而分别说明。由运动估计单元42执行的运动估计为生成运动矢量的过程,这些运动矢量估计视频块的运动。例如,运动矢量可以表示当前视频帧或图像内的视频块的PU相对于参考帧(或其它经编码单元)内的预测块(其相对于当前帧(或其它经编码单元)内的正被编码的当前块)的位移。预测块为发现在像素差方面与待译码块高度匹配的块。所述像素差可以通过绝对差和(sum of absolute difference,SAD)、平方差和(sum of square difference,SSD)或其它差度量进行确定。在一些示例中,视频编码器20可以计算存储于参考帧存储器64中的参考图像的子整数像素位置的值。例如,视频编码器20可以插值参考图像的四分之一像素位置、八分之一像素位置或其它分数像素位置的值。因此,运动估计单元42可以执行相对于整数像素位置和分数像素位置的运动搜索,并以分数像素精度输出运动矢量。
[0068] 运动估计单元42通过将帧间译码条带中的视频块的PU的位置与参考图像的预测块的位置进行比较而计算该PU的运动矢量。参考图像可以选自第一参考图像列表(列表0)或第二参考图像列表(列表1),其中每一个列表标识存储于参考帧存储器64中的一个或多个参考图像。运动估计单元42将计算得到的运动矢量发送给熵编码单元56和运动补偿单元44。
[0069] 由运动补偿单元44执行的运动补偿可以包括根据运动估计单元42确定的运动矢量来提取或生成预测块。另外,在一些示例中,运动估计单元42和运动补偿单元44可以在功能上集成。一旦接收到当前视频块的PU的运动矢量,运动补偿单元44可以定位在其中一个参考图像列表中运动矢量指向的预测块。加法器50通过从正被译码的当前视频块的像素值中减去预测块的像素值,从而形成像素差值来形成残差视频块,如下所述。通常,运动估计单元42执行关于亮度分量的运动估计,运动补偿单元44将根据亮度分量计算得到的运动矢量用于色度分量和亮度分量两者。模式选择单元40还可以生成与视频块和视频条带关联的语法元素,以供视频解码器30在解码视频条带的视频块时使用。
[0070] 帧内预测单元46可以对当前块进行帧内预测,以替代由运动估计单元42和运动补偿单元44执行的帧间预测,如上文所述。具体地,帧内预测单元46可以确定帧内预测模式,以用于编码当前块。在一些示例中,帧内预测单元46可以(例如)在单独的编码过程期间使用各种帧内预测模式来编码当前块,而且帧内预测单元46(或在一些示例中,模式选择单元40)可以从经测试的模式中选择要使用的合适帧内预测模式。
[0071] 例如,帧内预测单元46可以使用针对各种经测试的帧内预测模式的率失真分析而计算率失真值,并在经测试模式中选择具有最佳率失真特性的帧内预测模式。率失真分析通常确定编码块与经编码以产生编码块的原始未编码块之间的失真(或误差)量,以及用于产生编码块的码率(即,比特数)。帧内预测单元46可以根据各个编码块的失真和速率计算比率,以判断哪种帧内预测模式对于该块表现最佳率失真值。
[0072] 另外,帧内预测单元46可以用于使用深度建模模式(depth modeling mode,DMM)对深度图像的深度块进行译码。模式选择单元40可以判断可用DMM模式是否比帧内预测模式和其它DMM模式(例如,使用率失真优化(rate‑distortion optimization,RDO))产生更好的译码结果。与深度图像对应的纹理图像的数据可以存储于参考帧存储器64中。运动估计单元42和运动补偿单元44还可以用于对深度图像的深度块进行帧间预测。
[0073] 在选择块的帧内预测模式(例如,传统的帧内预测模式或其中一个DMM模式)之后,帧内预测单元46可以将信息提供给熵编码单元56,该信息表示为块选择的帧内预测模式。熵编码单元56可以对表示所选帧内预测模式的信息进行编码。视频编码器20可以在所发送的码流中携带配置数据,所述配置数据可以包括多个帧内预测模式索引表和多个经修改的帧内预测模式索引表(也称为码字映射表),各种块的编码上下文的定义,待用于每个编码上下文的最有可能帧内预测模式、帧内预测模式索引表和经修改的帧内预测模式索引表的指示。
[0074] 视频编码器20通过从正被译码的原始视频块中减去来自模式选择单元40的预测数据而形成残差视频块。求和器50表示执行这种减法运算的一个或多个组件。
[0075] 变换处理单元52将离散余弦变换(discrete cosine transform,DCT)或概念上类似的变换等变换应用于残差块,从而产生包括残差变换系数值的视频块。变换处理单元52可以执行概念上类似于DCT的其它变换。还可以使用小波变换、整数变换、子频带变换或其它类型的变换。
[0076] 变换处理单元52将变换应用于残差块,从而产生残差变换系数块。上述变换可以将残差信息从像素值域转换到变换域(例如频域)。变换处理单元52可以将所得到的变换系数发送给量化单元54。量化单元54对变换系数进行量化以进一步降低码率。量化过程可以减小与部分或全部系数关联的位深度。量化程度可以通过调整量化参数来修改。在一些示例中,量化单元54可以接着对包括量化变换系数的矩阵执行扫描。或者,熵编码单元56可以执行扫描。
[0077] 在量化之后,熵编码单元56对量化变换系数进行熵编码。例如,熵编码单元56可以执行上下文自适应可变长度编码(context adaptive variable length coding,CAVLC)、上下文自适应二进制算术编码(context adaptive binary arithmetic coding,CABAC)、基于语法的上下文自适应二进制算术编码(syntax‑based context‑adaptive binary arithmetic coding,SBAC)、概率区间分割熵(probability interval partitioning entropy,PIPE)编码或其它熵编码技术。在基于上下文的熵编码的情况中,上下文可以基于相邻块。在由熵编码单元56执行熵编码之后,经编码的码流可以发送给另一设备(例如,视频解码器30)或存档以供稍后发送或检索。
[0078] 反量化单元58和逆变换单元60分别应用反量化和逆变换,以在像素域中重建残差块,(例如)以供稍后用作参考块。运动补偿单元44可以通过将残差块加到参考帧存储器64内的其中一个帧的预测块中来计算参考块。运动补偿单元44还可以将一个或多个插值滤波器应用于重建残差块,以计算子整数像素值以供用于运动估计中。加法器62将重建残差块加到由运动补偿单元44产生的运动补偿预测块中,以产生重建视频块以供存储于参考帧存储器64中。重建视频块可以由运动估计单元42和运动补偿单元44用作参考块,以对后续视频帧中的块进行帧间译码。
[0079] 图3为可以实现视频译码技术的视频解码器30示例的框图。在图3的示例中,视频解码器30包括熵解码单元70、运动补偿单元72、帧内预测单元74、反量化单元76、逆变换单元78、参考帧存储器82和加法器80。在一些示例中,视频解码器30可以执行与参照视频编码器20(图2)描述的编码过程大体相反的解码过程。运动补偿单元72可以根据从熵解码单元70接收到的运动矢量来生成预测数据,而帧内预测单元74可以根据从熵解码单元70接收到的帧内预测模式指示符来生成预测数据。
[0080] 在解码过程期间,视频解码器30从视频编码器20接收经编码的视频码流,该经编码的视频码流表示经编码的视频条带的视频块及关联的语法元素。视频解码器30的熵解码单元70对码流进行熵解码以生成量化系数、运动矢量或帧内预测模式指示符和其它语法元素。熵解码单元70将运动矢量和其它语法元素转发给运动补偿单元72。视频解码器30可以接收视频条带级和/或视频块级的语法元素。
[0081] 当视频条带经译码为帧内译码(I)条带时,帧内预测单元74可以根据指示的帧内预测模式和来自当前帧或图像的先前解码块的数据为当前视频条带的视频块生成预测数据。当视频帧经译码为帧间译码(例如,B、P或GPB)条带时,运动补偿单元72根据从熵解码单元70接收到的运动矢量和其它语法元素为当前视频条带的视频块产生预测块。这些预测块可以根据其中一个参考图像列表内的其中一个参考图像而产生。视频解码器30可以根据存储于参考帧存储器82中的参考图像,使用默认构建技术来构建参考帧列表:列表0和列表1。
[0082] 运动补偿单元72通过解析运动矢量和其它语法元素针对当前视频条带的视频块确定预测信息,并使用所述预测信息为正被解码的当前视频块产生预测块。例如,运动补偿单元72使用接收到的一些语法元素来确定用于对视频条带的视频块进行译码的预测模式(例如,帧内预测或帧间预测)、帧间预测条带类型(例如,B条带、P条带或GPB条带)、条带的一个或多个参考图像列表的构建信息、条带的每个帧间编码视频块的运动矢量、条带的每个帧间译码视频块的帧间预测状态和用于对当前视频条带中的视频块进行解码的其它信息。
[0083] 运动补偿单元72还可以根据插值滤波器进行插值。运动补偿单元72可以使用由视频编码器20在视频块编码期间使用的插值滤波器来计算参考块的子整数像素的插值。在这种情况下,运动补偿单元72可以根据接收到的语法元素来确定由视频编码器20使用的插值滤波器,并使用这些插值滤波器来产生预测块。
[0084] 与深度图像对应的纹理图像的数据可以存储于参考帧存储器82中。运动补偿单元72还可以用于对深度图像的深度块进行帧间预测。
[0085] 在一个实施例中,视频解码器30包括用户界面(user interface,UI)84。用户界面84用于接收视频解码器30的用户(例如,网络管理员)的输入。通过用户界面84,用户能够管理或更改视频解码器30上的设置。例如,用户能够输入或以其它方式提供参数(例如,标志)的值,以便根据用户的偏好控制视频解码器30的配置和/或操作。例如,用户界面84可以是支持用户通过图形图标、下拉菜单、复选框等与视频解码器30交互的图形用户界面(graphical user interface,GUI)。在某些情况下,用户界面84可以通过键盘、鼠标或其它外围设备从用户接收信息。在一个实施例中,用户能够通过智能手机、平板设备、相对视频解码器30远程定位的个人计算机等访问用户界面84。本文所使用的用户界面84可以称为外部输入端或外部装置。
[0086] 考虑到上述情况,视频压缩技术执行空间(帧内)预测和/或时间(帧间)预测来减少或去除视频序列中固有的冗余。对于基于块的视频译码,视频条带(即视频图像或视频图像的一部分)可以分割成多个视频块,所述多个视频块还可以称为树块、编码树块(coding tree block,CTB)、编码树单元(coding tree unit,CTU)、编码单元(coding unit,CU)和/或编码节点。图像的帧内译码(I)条带中的视频块是相对于同一图像中的相邻块中的参考样本使用空间预测进行编码的。图像的帧间译码(P或B)条带中的视频块可以使用相对于同一图像内的相邻块中的参考样本的空间预测,或者使用相对于其它参考图像中的参考样本的时间预测。图像可以称为帧,参考图像可以称为参考帧。
[0087] 空间预测或时间预测为待译码块产生预测块。残差数据表示待译码原始块与预测块之间的像素差。帧间译码块根据运动矢量和残差数据进行编码,所述运动矢量指向组成所述预测块的参考样本的块,所述残差数据表示所述经译码块与所述预测块之间的差值。帧内译码块是根据帧内译码模式和残差数据进行编码的。为了进一步压缩,所述残差数据可以从像素域变换到变换域,从而产生可以接着进行量化的残差变换系数。量化变换系数最初以二维阵列排列,并且可以扫描,以产生变换系数的一维矢量。熵编码可以用于实现进一步压缩。
[0088] 图像和视频压缩发展迅速,由此产生了各种编码标准。这类视频编码标准包括ITU‑T H.261、国际标准化组织/国际电工委员会(International Organization for Standardization/International Electrotechnical Commission,ISO/IEC)MPEG‑1第2部分、ITU‑T H.262或ISO/IEC MPEG‑2第2部分、ITU‑T H.263、ISO/IEC MPEG‑4第2部分,高级视频编码(advanced video coding,AVC)(也称为ITU‑T H.264或ISO/IEC MPEG‑4第10部分),以及高效视频编码(high efficiency video coding,HEVC)(也称为ITU‑T H.265或MPEG‑H第2部分)。AVC包括可适性视频编码(scalable video coding,SVC)、多视图视频编码(multiview video coding,MVC)和多视图视频编码加深度(multiview video coding plus depth,MVC+D)以及3D AVC(3D‑AVC)等扩展版。HEVC包括可适性HEVC(scalable HEVC,SHVC)、多视图HEVC(multiview HEVC,MV‑HEVC)、3D HEVC(3D‑HEVC)等扩展版。
[0089] 还有一个新的视频编码标准,名为通用视频编码(versatile video coding,VVC),正在由ITU‑T和ISO/IEC的联合视频专家组(joint video experts team,JVET)开发。虽然VVC标准有多个工作草案,但通过引用并入本文的是VVC的其中一个工作草案(working draft,WD),即B.Bross、J.Chen和S.Liu,“通用视频编码(草案5)(Versatile Video Coding(Draft 5))”,JVET‑N1001‑v3,第13届JVET会议,2019年3月27日(VVC草案5)。
[0090] 本文公开的技术的描述是基于ITU‑T和ISO/IEC的联合视频专家组(joint video experts team,JVET)正在开发的视频编码标准通用视频编码(versatile video coding,VVC)。然而,这些技术还适用于其它视频编解码规范。
[0091] 图4是在解码顺序408和呈现顺序410中帧内随机接入点(intra random access point,IRAP)图像402相对于前置图像404和后置图像406的关系的表示400。在一个实施例中,IRAP图像402称为清理随机接入(clean random access,CRA)图像或伴随可解码随机接入前置(random access decodable leading,RADL)图像的即时解码刷新(instantaneous decoder refresh,IDR)图像。在HEVC中,IDR图像、CRA图像和断点链接接入(broken link access,BLA)图像都认为是IRAP图像402。对于VVC,在2018年10月的第12届JVET会议上,同意将IDR和CRA图像作为IRAP图像。在一个实施例中,断点链接接入(broken link access,BLA)和逐步解码刷新(gradual decoder refresh,GDR)图像也可以认为是IRAP图像。编码视频序列的解码过程始终从IRAP开始。
[0092] 如图4所示,前置图像404(例如,图像2和3)在解码顺序408中跟在IRAP图像402之后,但在呈现顺序410中在IRAP图像402之前。后置图像406在解码顺序408和呈现顺序410中都跟在IRAP图像402之后。虽然图4中描绘了两个前置图像404和一个后置图像406,但本领域技术人员将理解,在实际应用中,在解码顺序408和呈现顺序410中可以存在更多或更少的前置图像404和/或后置图像406。
[0093] 图4中的前置图像404分为两种类型,即跳过随机接入前置(random access skipped leading,RASL)图像和RADL前置图像。当解码从IRAP图像402(例如,图像1)开始时,RADL图像(例如,图像3)可以被正确解码;然而,RASL图像(例如,图像2)无法被正确解码。因此,丢弃RASL图像。根据RADL与RASL图像之间的区别,与IRAP图像402关联的前置图像404的类型应识别为RADL或RASL,以便实现高效和正确的译码。在HEVC中,当存在RASL图像和RADL图像时,受到如下限制:对于与同一IRAP图像402关联的RASL和RADL图像,RASL图像在呈现顺序410中应位于RADL图像之前。
[0094] IRAP图像402提供了以下两个重要的功能/益处。首先,IRAP图像402的存在表示解码过程可以从该图像开始。该功能实现随机接入特征,其中,解码过程从码流中的该位置开始,而不必从码流的开始处开始,只要IRAP图像402存在于该位置即可。其次,IRAP图像402的存在刷新解码过程,使得从IRAP图像402开始的经编码图像(不包括RASL图像)在不参考先前图像的情况下被编码。因此,在码流中存在IRAP图像402可以防止在对IRAP图像402之前的经编码图像进行解码期间可能发生的任何错误传播到IRAP图像402以及解码顺序408中跟在IRAP图像402之后的那些图像。
[0095] 虽然IRAP图像402提供了重要的功能,但这些IRAP图像会降低压缩效率。IRAP图像402的存在导致码率激增。这种对压缩效率的降低归因于两个原因。首先,由于IRAP图像402是帧内预测图像,当与作为帧间预测图像的其它图像(例如,前置图像404、后置图像406)相比时,该图像将需要相对更多的比特来表示。其次,因为IRAP图像402的存在破坏了时间预测(这是因为解码器将刷新解码过程,其中,解码过程的动作之一是删除解码图像缓冲区(decoded picture buffer,DPB)中的先前参考图像),所以IRAP图像402导致在解码顺序
408中跟在IRAP图像402之后的图像的译码效率较低(即,需要更多的比特来表示),这是因为这些图像具有较少参考图像来进行其帧间预测译码。
[0096] 在认为是IRAP图像402的图像类型中,HEVC中的IDR图像与其它图像类型相比具有不同的指示和推导。其中一些区别如下。
[0097] 对于IDR图像的图像顺序编号(picture order count,POC)值的指示和推导,POC的最高有效位(most significant bit,MSB)部分不是从先前的关键图像推导的,而是简单地设置为0。
[0098] 对于参考图像管理所需的指示信息,IDR图像的条带头不包含需要进行指示以辅助参考图像管理的信息。对于其它图像类型(即CRA、后置、时间子层接入(temporal sub‑layer access,TSA)等),参考图像标识过程(即,确定解码图像缓冲区(decoded picture buffer,DPB)中用于参考和不用于参考的参考图像的状态的过程)需要诸如下文描述的参考图像集(reference picture set,RPS)之类的信息或其它形式的类似信息(例如参考图像列表)。但是,对于IDR图像,此类信息不需要进行指示(signal),因为IDR的存在表示解码过程应该简单地将DPB中的所有参考图像标识为不用于参考。
[0099] 在HEVC和VVC中,IRAP图像402和前置图像404可以各自包含在单个网络抽象层(network abstraction layer,NAL)单元中。NAL单元集合可以称为接入单元。IRAP图像402和前置图像404被赋予不同的NAL单元类型,使得这些图像容易由系统级应用识别。例如,视频条带器需要理解经编码图像的类型,而不必理解经编码码流中语法元素的太多细节,特别是需要从非IRAP图像中识别IRAP图像402,并从后置图像406中识别前置图像404,包括确定RASL和RADL图像。后置图像406是与IRAP图像402关联并且在呈现顺序410中跟在IRAP图像402之后的那些图像。图像可以在解码顺序408中跟在特定IRAP图像402之后,并且在解码顺序408中在任何其它IRAP图像402之前。为此,赋予IRAP图像402和前置图像404其自己的NAL单元类型有助于此类应用。
[0100] 对于HEVC,IRAP图像的NAL单元类型包括:
[0101] 伴随前置图像的BLA(BLA_W_LP):在解码顺序中之后可以跟随一个或多个前置图像的断点链接接入(broken link access,BLA)图像的NAL单元。
[0102] 伴随RADL的BLA(BLA_W_RADL):在解码顺序中之后可以跟随一个或多个RADL图像但没有RASL图像的BLA图像的NAL单元。
[0103] 未伴随前置图像的BLA(BLA_N_LP):在解码顺序中之后不跟随前置图像的BLA图像的NAL单元。
[0104] 伴随RADL的IDR(IDR_W_RADL):在解码顺序中之后可以跟随一个或多个RADL图像但没有RASL图像的IDR图像的NAL单元。
[0105] 未伴随前置图像的IDR(IDR_N_LP):在解码顺序中之后不跟随前置图像的IDR图像的NAL单元。
[0106] CRA:之后可以跟随前置图像(即,RASL图像或RADL图像或两者)的清理随机接入(clean random access,CRA)图像的NAL单元。
[0107] RADL:RADL图像的NAL单元。
[0108] RASL:RASL图像的NAL单元。
[0109] 对于VVC,IRAP图像402和前置图像404的NAL单元类型如下:
[0110] 伴随RADL的IDR(IDR_W_RADL):在解码顺序中之后可以跟随一个或多个RADL图像但没有RASL图像的IDR图像的NAL单元。
[0111] 未伴随前置图像的IDR(IDR_N_LP):在解码顺序中之后不跟随前置图像的IDR图像的NAL单元。
[0112] CRA:之后可以跟随前置图像(即,RASL图像或RADL图像或两者)的清理随机接入(clean random access,CRA)图像的NAL单元。
[0113] RADL:RADL图像的NAL单元。
[0114] RASL:RASL图像的NAL单元。
[0115] 参考图像重采样(reference picture resampling,RPR)特征是在不需要在分辨率更改位置处对图像进行帧内译码的情况下,在码流中间更改经编码图像的空间分辨率的能力。要实现此特征,图像需要能够参考空间分辨率与当前图像的空间分辨率不同的一个或多个参考图像,以便进行帧间预测。因此,需要对这种参考图像或其一部分进行重采样,以对当前图像进行编码和解码。因此,称为RPR。此特征也可以称为自适应分辨率变化(adaptive resolution change,ARC)或其它名称。有一些使用案例或应用场景可以受益于RPR特征,如下所示。
[0116] 视频电话和会议中的速率自适应。这是为了使经编码的视频适应不断变化的网络条件。当网络条件变差,导致可用带宽降低时,编码器可以通过编码较小分辨率的图像来适应这种情况。
[0117] 多方视频会议中的主动发言者变化。对于多方视频会议,主动发言者的视频大小通常大于其他与会者的视频大小。当主动发言者发生变化时,每个与会者的图像分辨率也可能需要调整。当主动发言者频繁发生变化时,更加需要ARC特征。
[0118] 流式传输快速启动。对于流式传输应用,通常应用在开始显示图像之前会缓冲到一定长度的解码图像。以较小的分辨率启动码流使应用可以在缓冲区中拥有足够的图像,以更快地开始显示。
[0119] 流式传输中的自适应流切换。HTTP动态自适应流媒体(dynamic adaptive streaming over HTTP,DASH)规范包括名为@mediaStreamStructureId的特征。此特征可以实现在具有不可解码前置图像(例如,HEVC中具有关联RASL图像的CRA图像)的开放GOP随机接入点处的不同表示之间切换。当同一视频的两种不同表示具有不同的码率但空间分辨率相同,而它们的@mediaStreamStructureId值相同时,可以在具有关联RASL图像的CRA图像上执行两种表示之间的切换,并且与切换CRA图像关联的RASL图像可以以可接受的质量解码,从而实现无缝切换。利用ARC,@mediaStreamStructureId特征也可以用于在具有不同空间分辨率的各DASH表示之间切换。
[0120] 有各种方法促进实现支持RPR/ARC的基本技术,如图像分辨率列表的指示、DPB中参考图像重采样的一些约束等。此外,在日内瓦举行的第14届JVET会议期间,有一些提交文稿提议约束应适用于VVC以支持RPR。提议的约束包括以下约束。
[0121] 当当前图像参考与该当前图像的分辨率不同的参考图像时,应对该当前图像中的块禁用某些译码工具。这些工具如下所示。
[0122] 时间运动矢量预测(temporal motion vector prediction,TMVP)和先进的TMVP(advanced TMVP,ATMVP)。这是由JVET‑N0118提议的。
[0123] 解码器侧运动矢量修正(decoder side motion vector refinement,DMVR)。这是由JVET‑N0279提议的。
[0124] 双向光流(bi‑directional optical flow,BIO)。这是由JVET‑N0279提议的。
[0125] 禁止对与当前图像的分辨率不同的参考图像中的块进行双向预测。这是由JVET‑N0118提议的。
[0126] 对于运动补偿,样本滤波应仅应用一次,即,如果需要重采样和插值以获得更精细的像素分辨率(例如,四分之一像素分辨率),则需要组合两个滤波器并且仅应用一次。这是由JVET‑N0118提议的。
[0127] 视频译码的可适性通常通过使用多层译码技术来支持。多层码流包括基本层(base layer,BL)和一个或多个增强层(enhancement layer,EL)。可适性的示例包括空间可适性、质量/信噪比(signal‑to‑noise,SNR)可适性、多视图可适性等。当使用多层译码技术时,可以(1)在不使用参考图像,即,使用帧内预测的情况下,(2)通过参考同一层中的参考图像,即,使用帧间预测,或(3)通过参考其它一个或多个层中的参考图像,即,使用层间预测,对图像或其一部分进行译码。用于当前图像的层间预测的参考图像称为层间参考图像(inter‑layer reference picture,ILRP)。
[0128] 图5示出了用于实现空间可适性500的多层译码的示例。层N中图像502的分辨率与层N+1中图像504的分辨率不同(例如,分辨率更低)。在一个实施例中,层N被认为是基础层,层N+1被认为是增强层,如上所述。层N中的图像502和层N+1中的图像504可以使用帧间预测(如实现箭头所示)进行译码。图像502也可以使用层间预测(如虚线箭头所示)进行译码。
[0129] 在RPR的上下文中,参考图像可以通过从下层选择参考图像,或通过使用层间预测根据下层参考图像生成高层参考图像来重采样。
[0130] 以前的H.26x视频编码系列支持从一个或多个配置文件实现一个或多个单独配置文件的可适性,以实现单层译码。可适性视频编码(scalable video coding,SVC)是AVC/H.264的可扩展版,支持空间、时间和质量可适性。对于SVC,在EL图像中的每个宏块(macroblock,MB)中指示标志,以表示EL MB是否使用来自下层的并置块进行预测。基于并置块的预测可以包括纹理、运动矢量和/或译码模式。SVC的实现方式不能在其设计中直接重用未经修改的H.264/AVC实现。SVC EL宏块语法和解码过程与H.264/AVC语法和解码过程不同。
[0131] 可适性HEVC(scalable HEVC,SHVC)是HEVC/H.265标准的扩展版,支持空间和质量可适性;多视图HEVC(multiview HEVC,MV‑HEVC)是HEVC/H.265的扩展,支持多视图可适性;3D HEVC(3D‑HEVC)是HEVC/H.264的扩展,支持比MV‑HEVC更先进、更高效的三维(three dimensional,3D)视频译码。需要说明的是,单层HEVC编解码器包括时间可适性。HEVC的多层扩展的设计采用了如下理念:用于层间预测的解码图像仅来自同一接入单元(access unit,AU),并视为长期参考图像(long‑term reference picture,LTRP),并连同当前层中的其它时间参考图像被分配一个或多个参考图像列表中的参考索引。层间预测(inter‑layer prediction,ILP)是通过将参考索引的值设置为参考一个或多个参考图像列表中的一个或多个层间参考图像来在预测单元(prediction unit,PU)级别实现的。
[0132] 需要说明的是,参考图像重采样和空间可适性特征都需要对参考图像或其一部分进行重采样。参考图像重采样可以在图像级或编码块级实现。然而,当RPR称为译码特征时,它是单层译码的特征。即便如此,从编解码器设计的角度来看,可以或甚至优选使用相同的重采样滤波器,以实现单层译码的RPR特征和多层译码的空间可适性特征。
[0133] JVET‑N0279提议禁用DMVR进行RPR。更准确而言,它提议在启用RPR时对整个编码视频序列(coded video sequence,CVS)禁用DMVR。即使启用了RPR特征,在许多情况下,当前图像也不会参考具有不同分辨率的参考图像。因此,对整个CVS禁用DMVR是不必要的限制,并且可能会降低译码效率。
[0134] 本文公开的技术可以在当前图像的空间分辨率与参考图像的空间分辨率不同时选择性禁用DMVR,而不是在启用RPR时必须对整个CVS禁用DMVR。以这种方式选择性禁用DMVR可以提高译码效率。因此,可以在编码器和解码器侧降低处理器、存储器和/或网络资源利用率。因此,视频译码中的编码器/解码器(又名“编解码器”)相对于当前编解码器得到了改进。实际上,当视频在发送、接收和/或观看时,改进的视频译码过程为用户提供了更好的用户体验。
[0135] 图6是单向帧间预测600示例的示意图。单向帧间预测600可以用于确定在分割图像时创建的编码块和/或解码块的运动矢量。
[0136] 单向帧间预测600采用包括参考块631的参考帧630来预测当前帧610中的当前块611。如图所示,参考帧630可以在时间上位于当前帧610之后(例如,作为下一个参考帧),但在一些示例中,也可以在时间上位于当前帧610之前(例如,作为前一个参考帧)。当前帧610是在特定时间进行编码/解码的示例帧/图像。当前帧610包括当前块611中的一个对象,该对象与参考帧630中的参考块631中的一个对象匹配。参考帧630是对当前帧610进行编码用作参考的帧,参考块631是参考帧630中的一个块,这个块包括的对象也包括在当前帧610中的当前块611中。
[0137] 当前块611是译码过程中在指定时间点进行编码/解码的任何编码单元。当前块611可以是整个分割块,也可以是采用仿射帧间预测时的子块。当前帧610与参考帧630间隔一定时间距离(temporal distance,TD)633。TD 633表示视频序列中的当前帧610与参考帧
630之间的时间量,测量单位可以是帧。当前块611的预测信息可以通过表示各帧之间的方向和时间距离的参考索引对参考帧630和/或参考块631参考。在TD 633表示的时间段内,当前块611中的对象从当前帧610中的一个位置移动到参考帧630中的另一个位置(例如,参考块631的位置)。例如,该对象可以沿着运动路径(trajectory)613移动,运动路径613表示对象随时间移动的方向。运动矢量635描述该对象在TD 633内沿着运动路径613移动的方向和幅度。因此,经编码的运动矢量635、参考块631和包括当前块611与参考块631之间差值的残差提供足够信息来重建当前块611并且在当前帧610中定位当前块611。
[0138] 图7是双向帧间预测700示例的示意图。双向帧间预测700可以用于确定在分割图像时创建的编码块和/或解码块的运动矢量。
[0139] 双向帧间预测700类似于单向帧间预测600,但采用一对参考帧来预测当前帧710中的当前块711。因此,当前帧710和当前块711分别基本上类似于当前帧610和当前块611。当前帧710在时间上位于前一个参考帧720与下一个参考帧730之间,其中,前一个参考帧
720在视频序列中出现在当前帧710之前,下一个参考帧730在视频序列中出现在当前帧710之后。前一个参考帧720和下一个参考帧730在其它方面基本上类似于参考帧630。
[0140] 当前块711与前一个参考帧720中的前一个参考块721和下一个参考帧730中的下一个参考块731匹配。这样的匹配表示,在播放视频序列的过程中,一个对象沿着运动路径713从前一个参考块721中的位置经过当前块711移动到下一个参考块731中的位置。当前帧
710与前一个参考帧720间隔一定的前一个时间距离(TD0)723,且与下一个参考帧730间隔一定的下一个时间距离(TD1)733。TD0 723表示视频序列中先前参考帧720与当前帧710之间以帧为单位的时间量。TD1 733表示视频序列中当前帧710与后续参考帧730之间以帧为单位的时间量。因此,该对象在由TD0 723表示的时间段内沿着运动路径713从前一个参考块721移动到当前块711。该对象还在由TD1 733表示的时间段内沿着运动路径713从当前块
711移动到下一个参考块731。当前块711的预测信息可以通过一对表示各帧之间的方向和时间距离的参考索引对前一个参考帧720和/或前一个参考块721以及下一个参考帧730和/或下一个参考块731参考。
[0141] 前一个运动矢量(MV0)725描述该对象在TD0 723(例如,在前一个参考帧720与当前帧710之间)内沿着运动路径713移动的方向和幅度。下一个运动矢量(MV1)735描述该对象在TD1 733(例如,在当前帧710与下一个参考帧730之间)内沿着运动路径713移动的方向和幅度。因此,在双向帧间预测700中,当前块711可以通过前一个参考块721和/或下一个参考块731、MV0 725和MV1 735进行译码和重建。
[0142] 在一个实施例中,帧间预测和/或双向帧间预测可以基于逐个样本(例如,逐个像素)而不是基于逐个块执行。即,可以针对当前块711中的每个样本确定指向前一个参考块721和/或下一个参考块731中的每个样本的运动矢量。在这些实施例中,图7中描绘的运动矢量725和运动矢量735表示对应于当前块711、前一个参考块721和下一个参考块731中的多个样本的多个运动矢量。
[0143] 在融合模式和先进的运动矢量预测(advanced motion vector prediction,AMVP)模式中,候选列表通过按照候选列表确定模式定义的顺序将候选运动矢量添加到候选列表中生成的。这类候选运动矢量可以包括根据单向帧间预测600、双向帧间预测700或其组合的运动矢量。具体地,运动矢量是在相邻块进行编码时针对这类块生成的。这类运动矢量被添加到当前块的候选列表中,而且当前块的运动矢量是从该候选列表中选择的。然后,运动矢量可以指示为选定运动矢量在候选列表中的索引。解码器可以使用与编码器相同的过程构建候选列表,并可以根据指示的索引从候选列表中确定选定的运动矢量。因此,候选运动矢量包括根据单向帧间预测600和/或双向帧间预测700生成的运动矢量,具体取决于在编码这类相邻块时所使用的方法。
[0144] 图8示出了视频码流800。本文使用的视频码流800还可以称为经编码的视频码流、码流或其变体。如图8所示,码流800包括序列参数集(sequence parameter set,SPS)802、图像参数集(picture parameter set,PPS)804、条带头806和图像数据808。
[0145] SPS 802包括图像序列(sequence of picture,SOP)中的所有图像共有的数据。相比之下,PPS 804包括整个图像共有的数据。条带头806包括当前条带的信息,例如条带类型、待使用的参考图像等。SPS 802和PPS 804可以统称为参数集。SPS 802、PPS 804和条带头806是网络抽象层(network abstraction layer,NAL)单元的类型。NAL单元是一种语法结构,包括待遵循的数据类型(例如,经译码的视频数据)的指示。NAL单元分为视频编码层(video coding layer,VCL)和非VCL NAL单元。VCL NAL单元包含表示视频图像中样本值的数据,非VCL NAL单元包含任何关联的附加信息,如参数集(可应用于大量VCL NAL单元的重要报头数据)和补充增强信息(定时信息和其它补充数据,该补充数据可以增强解码视频信号的可用性,但不是解码视频图像中样本的值所必需的)。本领域技术人员将理解,码流800在实际应用中可以包括其它参数和信息。
[0146] 图8的图像数据808包括与正在编码或解码的图像或视频关联的数据。图像数据808可以简单地称为码流800中携带的负载或数据。在一个实施例中,图像数据808包括CVS 
814(或CLVS),该CVS 814包含多个图像810。CVS 814是视频码流800中每个编码层视频序列(coded layer video sequence,CLVS)的编码视频序列。需要说明的是,当视频码流800包括单层时,CVS和CLVS相同。CVS和CLVS仅在视频码流800包括多个层时不同。
[0147] 每个图像810的条带可以包含在其自己的VCL NAL单元812中。CVS 814中的VCL NAL单元812的集合可以称为接入单元。
[0148] 图9示出了用于图像910的分割技术900。图像910可以类似于图8中的任何图像810。如图所示,图像910可以被分割为多个条带912。条带是帧(例如图像)的空间上不同的区域,与同一帧中任何其它区域分开编码。虽然图9中描绘了三个条带912,但在实际应用中可以使用更多或更少的条带。每个条带912可以被分割为多个块914。图9中的块914可以类似于图7中的当前块711、前一个参考块721和下一个参考块731。块914可以表示CU。虽然图9中描绘了四个块914,但在实际应用中可以使用更多或更少的块。
[0149] 每个块914可以被分割为多个样本916(例如,像素)。在一个实施例中,每个块914的大小以亮度样本为单位测量。虽然图9中描绘了十六个样本916,但在实际应用中可以使用更多或更少的样本。
[0150] 图10为由视频解码器(例如视频解码器30)实现的对经编码的视频码流进行解码的方法1000的一个实施例。方法1000可以在从视频编码器(例如视频编码器20)直接或间接地接收解码码流之后执行。方法1000在当前图像的空间分辨率与参考图像的空间分辨率不同时选择性禁用DMVR,而不是在启用RPR时必须对整个CVS禁用DMVR,从而改进了解码过程。以这种方式选择性禁用DMVR可以提高译码效率。因此,实际上,提高了编解码器的性能,从而提供了更好的用户体验。
[0151] 在步骤1002中,视频解码器确定正在解码的当前图像的分辨率是否与通过参考图像列表标识的参考图像的分辨率相同。在一个实施例中,视频解码器接收经编码的视频码流(例如,码流800)。经编码的视频码流包括参考图像列表,指示当前图像的分辨率,并指示双向帧间预测模式。在一个实施例中,参考图像列表结构包括参考图像列表。在一个实施例中,参考图像列表用于双向帧间预测。在一个实施例中,当前图像的分辨率设置在经编码的视频码流的参数集中。在一个实施例中,参考图像的分辨率是根据当前图像推导,根据当前图像的分辨率推断,从码流解析,或以其它方式获得的。在一个实施例中,当前图像的参考图像是根据双向帧间预测模式,基于参考图像列表生成的。
[0152] 在步骤1004中,当确定当前图像的分辨率与每个参考图像的分辨率都相同时,视频解码器对当前图像的当前块启用DMVR。在一个实施例中,视频解码器通过将DMVR标志设置为第一值(例如,真(true)、1等)来启用DMVR。在一个实施例中,即使启用DMVR,DMVR也是可选的过程。即,即使启用了DMVR,也不需要执行DMVR。
[0153] 在步骤1006中,当当前图像的分辨率与任一参考图像的分辨率不同时,视频解码器对当前图像的当前块禁用DMVR。在一个实施例中,视频解码器通过将DMVR标志设置为第二值(例如,假(false)、0)来禁用DMVR。
[0154] 在步骤1008中,当DMVR标志设置为第一值时,视频解码器修正当前块对应的运动矢量。在一个实施例中,方法1000还包括根据当前图像的分辨率与参考图像的分辨率不同或相同,对当前图像中的其它块选择性启用和禁用DMVR。
[0155] 在一个实施例中,所述方法还包括即使当DMVR被禁用时,也对包含当前图像的整个编码视频序列(coded video sequence,CVS)启用参考图像重采样(reference picture resampling,RPR)。
[0156] 在一个实施例中,当前块是从当前图像的条带中获得的。在一个实施例中,当前图像包括多个条带,其中,当前块是从多个条带中的一个条带中获得的。
[0157] 在一个实施例中,为电子设备(例如,智能手机、平板电脑、笔记本电脑、个人计算机等)的用户显示根据当前图像生成的图像。
[0158] 图11为由视频编码器(例如视频编码器20)实现的对视频码流进行编码的方法1100的一个实施例。方法900可以在(例如视频中的)图像待编码到视频码流中并接着发送给视频解码器(例如视频解码器30)时执行。方法1100在当前图像的空间分辨率与参考图像的空间分辨率不同时选择性禁用DMVR,而不是在启用RPR时必须对整个CVS禁用DMVR,从而改进了编码过程。以这种方式选择性禁用DMVR可以提高译码效率。因此,实际上,提高了编解码器的性能,从而提供了更好的用户体验。
[0159] 在步骤1102中,视频编码器确定正在编码的当前图像的分辨率是否与通过参考图像列表标识的参考图像的分辨率相同。在一个实施例中,参考图像列表结构包括参考图像列表。在一个实施例中,参考图像列表用于双向帧间预测。在一个实施例中,当前图像的分辨率编码到视频码流的参数集中。在一个实施例中,当前图像的参考图像是根据双向帧间预测模式,基于参考图像列表生成的。
[0160] 在步骤1104中,当确定当前图像的分辨率与每个参考图像的分辨率都相同时,视频编码器对当前图像的当前块启用DMVR。在一个实施例中,视频编码器通过将DMVR标志设置为第一值(例如,真、1等)来启用DMVR。在一个实施例中,即使启用DMVR,DMVR也是可选的过程。即,即使启用了DMVR,也不需要执行DMVR。
[0161] 在一个实施例中,该方法包括根据参考图像确定当前图像的运动矢量,根据运动矢量对当前图像进行编码,以及使用假设参考解码器(hypothetical reference decoder,HRD)对当前图像进行解码。
[0162] 在步骤1106中,当当前图像的分辨率与任一参考图像的分辨率不同时,视频编码器对当前图像的当前块禁用DMVR。在一个实施例中,视频编码器通过将DMVR标志设置为第二值(例如,假、0)来禁用DMVR。
[0163] 在步骤1108中,当DMVR标志设置为第一值时,视频编码器修正当前块对应的运动矢量。在一个实施例中,方法1100还包括根据当前图像的分辨率与参考图像的分辨率不同或相同,对当前图像中的其它块选择性启用和禁用DMVR。
[0164] 在一个实施例中,所述方法还包括即使当DMVR被禁用时,也对包含当前图像的整个编码视频序列(coded video sequence,CVS)启用参考图像重采样(reference picture resampling,RPR)。
[0165] 在一个实施例中,当前块是从当前图像的条带中获得的。在一个实施例中,当前图像包括多个条带,其中,当前块是从多个条带中的一个条带中获得的。
[0166] 在一个实施例中,视频编码器生成包含当前块的视频码流,并向视频解码器发送视频码流。在一个实施例中,视频编码器存储视频码流,以发送给视频解码器。
[0167] 在一个实施例中,公开了一种用于对视频码流进行解码的方法。视频码流包括至少一个图像。每个图像包括多个条带。多个条带中的每个条带包括多个编码块和多个参考图像列表。多个参考图像列表中的每个参考图像列表包括多个参考图像,这些参考图像可以用于条带中的编码块的帧间预测。
[0168] 该方法包括:解析参数集,以获得当前图像的分辨率信息;获得当前图像中当前条带的两个参考图像列表;确定用于对当前条带中的当前编码块进行解码的参考图像;确定参考图像的分辨率;根据当前图像和参考图像的分辨率,决定是否使用或启用解码器侧运动矢量修正(decoder‑side motion vector refinement,DMVR)对当前编码块进行解码;对当前编码块进行解码。
[0169] 在一个实施例中,当当前图像和参考图像的分辨率不同时,不使用或禁用DMVR对当前编码块进行解码。
[0170] 在一个实施例中,公开了一种用于对视频码流进行解码的方法。视频码流包括至少一个图像。每个图像包括多个条带。多个条带中的每个条带与包含多个语法元素的报头相关联。多个条带中的每个条带包括多个编码块和多个参考图像列表。多个参考图像列表中的每个参考图像列表包括多个参考图像,这些参考图像可以用于当前条带中的编码块的帧间预测。
[0171] 该方法包括:解析参数集以获得标志,该标志指定解码器侧运动矢量修正(decoder‑side motion vector refinement,DMVR)译码工具/技术是否可用于对当前编码视频序列中的图像进行解码;获得当前图像中的当前条带;当指定解码器侧运动矢量修正(decoder‑side motion vector refinement,DMVR)译码工具/技术是否可用于对当前编码视频序列中的图像进行解码的标志的值指定可以使用DMVR时,解析与当前条带关联的条带头,以获得指定是否可以使用DMVR译码工具对当前条带中的编码块进行解码的标志。
[0172] 在一个实施例中,当指定DMVR译码工具是否可以用于对当前条带中的编码块进行解码的标志的值指定译码工具不能用于对当前条带进行解码时,DMVR译码工具不用于或禁止用于对当前编码块进行解码。
[0173] 在一个实施例中,当不存在时,指定DMVR译码工具是否可用于对当前条带中的编码块进行解码的标志的值推断为与指定解码器侧运动矢量修正(decoder‑side motion vector refinement,DMVR)译码工具/技术是否可用于对当前编码视频序列中的图像进行解码的标志的值相同。
[0174] 在一个实施例中,公开了一种用于对视频码流进行编码的方法。视频码流包括至少一个图像。每个图像包括多个条带。多个条带中的每个条带与包含多个语法元素的报头相关联。多个条带中的每个条带包括多个编码块和多个参考图像列表。多个参考图像列表中的每个参考图像列表包括多个参考图像,这些参考图像可以用于当前条带中的编码块的帧间预测。
[0175] 该方法包括:确定解码器侧运动矢量修正(decoder‑side motion vector refinement,DMVR)译码工具/技术是否可用于对当前编码视频序列中的图像进行编码;解析参数集,以获得每个图像码流的分辨率信息;获得当前图像中当前条带的两个参考图像列表;解析当前条带的参考图像列表,以获得可以用于对当前条带的编码块进行解码的有效参考图像;如果满足以下条件中的至少一个,则约束DMVR译码工具不能用于对当前条带中的编码块进行编码:DMVR译码工具不能用于对当前编码视频序列中的图像进行编码;当前图像和至少一个参考图像的分辨率不同。
[0176] 公开了一种用于对视频码流进行解码的方法。视频码流包括至少一个图像。每个图像包括多个条带。多个条带中的每个条带与包含多个语法元素的报头相关联。多个条带中的每个条带包括多个编码块和多个参考图像列表。多个参考图像列表中的每个参考图像列表包括多个参考图像,这些参考图像可以用于当前条带中的编码块的帧间预测。
[0177] 该方法包括:解析参数集,以获得指定解码器侧运动矢量修正(decoder‑side motion vector refinement,DMVR)译码工具/技术是否可用于对当前编码视频序列中的图像进行解码的标志;解析参数集,以获得指定解码器侧运动矢量修正(decoder‑side motion vector refinement,DMVR)译码工具/技术是否可用于对参考参数集的图像进行解码的标志,其中,参数集是图像参数集(picture parameter set,PPS)。
[0178] 在一个实施例中,当指定DMVR译码工具是否可以用于对参考PPS的图像进行解码的标志的值指定不能使用译码工具时,DMVR译码工具不用于或禁止用于对当前编码块进行解码。
[0179] 在一个实施例中,公开了一种用于对视频码流进行编码的方法。视频码流包括至少一个图像。每个图像包括多个条带。多个条带中的每个条带与包含多个语法元素的报头相关联。多个条带中的每个条带包括多个编码块和多个参考图像列表。多个参考图像列表中的每个参考图像列表包括多个参考图像,这些参考图像可以用于当前条带中的编码块的帧间预测。
[0180] 该方法包括:确定解码器侧运动矢量修正(decoder‑side motion vector refinement,DMVR)译码工具/技术是否可用于对当前编码视频序列中的图像进行编码;确定解码器侧运动矢量修正(decoder‑side motion vector refinement,DMVR)译码工具/技术是否可用于对参考当前PPS的图像进行编码;当DMVR译码工具不能用于对当前编码序列中的图像进行编码时,约束DMVR译码工具不能用于对参考当前PPS的图像进行编码。
[0181] 以下语法和语义可用于实现本文公开的实施例。以下描述是相对于基础文本,该基础文本是最新的VVC草案规范。换句话说,只描述了增改的内容,而下文未提到的基础文本中的文本按原样适用。相对于基础文本的添加文本以粗体显示,删除的文本以斜体显示。
[0182] 更新参考图像列表构建过程,如下所示。
[0183] 参考图像列表RefPicList[0]和RefPicList[1]的构建方式如下:
[0184]
[0185]
[0186] 确定是否使用DMVR的标志的推导。
[0187] 以帧间预测模式编码的编码单元的解码过程包括以下顺序步骤。
[0188] 1.变量dmvrFlag设置为0。
[0189] 2.当前编码单元的运动矢量分量和参考索引如下推导。
[0190] 如果MergeTriangleFlag[xCb][yCb]、inter_affine_flag[xCb][yCb]和merge_subblock_flag[xCb][yCb]均等于0,则适用以下情况:
[0191] 调用第8.5.2.1节中指定的运动矢量分量和参考索引的推导过程,其中,亮度编码块位置(xCb,yCb)、亮度编码块宽度cbWidth和亮度编码块高度cbHeight作为输入,亮度运动矢量mvL0[0][0]和mvL1[0][0]、参考索引refIdxL0和refIdxL1以及预测列表利用标志predFlagL0[0][0]和predFlagL1[0][0],以及双向预测权重索引bcwIdx作为输出。
[0192] 当满足以下所有条件时,dmvrFlag设置为1:
[0193] sps_dmvr_enabled_flag等于1
[0194] general_merge_flag[xCb][yCb]等于1
[0195] predFlagL0[0][0]和predFlagL1[0][0]均等于1
[0196] mmvd_flag[xCb][yCb]等于0
[0197] DiffPicOrderCnt(currPic,RefPicList[0][refIdxL0])等于
[0198] DiffPicOrderCnt(RefPicList[1][refIdxL1],currPic)
[0199] BcwIdx[xCb][yCb]等于0
[0200] luma_weight_l0_flag[refIdxL0]和luma_weight_l1_flag[refIdxL1]均等于0[0201] cbWidth大于或等于8
[0202] cbHeight大于或等于8
[0203] cbHeight*cbWidth大于或等于128
[0204]
[0205]
[0206] 提供序列参数集语法和语义。
[0207]
[0208] sps_dmvr_enabled_flag等于1表示基于解码器运动矢量修正的帧间双向预测被启用。sps_dmvr_enabled_flag等于0表示基于解码器运动矢量修正的帧间双向预测被禁用。
[0209] 提供条带头语法和语义。
[0210]
[0211]
[0212] 确定是否使用DMVR的标志的推导。
[0213] 以帧间预测模式编码的编码单元的解码过程包括以下顺序步骤:
[0214] 1.变量dmvrFlag设置为0。
[0215] 2.当前编码单元的运动矢量分量和参考索引如下推导:
[0216] 如果MergeTriangleFlag[xCb][yCb]、inter_affine_flag[xCb][yCb]和merge_subblock_flag[xCb][yCb]均等于0,则适用以下情况:
[0217] 调用第8.5.2.1节中指定的运动矢量分量和参考索引的推导过程,其中,亮度编码块位置(xCb,yCb)、亮度编码块宽度cbWidth和亮度编码块高度cbHeight作为输入,亮度运动矢量mvL0[0][0]和mvL1[0][0]、参考索引refIdxL0和refIdxL1以及预测列表利用标志predFlagL0[0][0]和predFlagL1[0][0],以及双向预测权重索引bcwIdx作为输出。
[0218] 当满足以下所有条件时,dmvrFlag设置为1:
[0219] sps_dmvr_enabled_flag等于1
[0220] slice_dmvr_enabled_flag等于1
[0221] general_merge_flag[xCb][yCb]等于1
[0222] predFlagL0[0][0]和predFlagL1[0][0]均等于1
[0223] mmvd_flag[xCb][yCb]等于0
[0224] DiffPicOrderCnt(currPic,RefPicList[0][refIdxL0])等于
[0225] DiffPicOrderCnt(RefPicList[1][refIdxL1],currPic)
[0226] BcwIdx[xCb][yCb]等于0
[0227] luma_weight_l0_flag[refIdxL0]和luma_weight_l1_flag[refIdxL1]均等于0[0228] cbWidth大于或等于8
[0229] cbHeight大于或等于8
[0230] cbHeight*cbWidth大于或等于128
[0231] 提供序列参数集语法和语义。
[0232]
[0233] sps_dmvr_enabled_flag等于1表示基于解码器运动矢量修正的帧间双向预测被启用。sps_dmvr_enabled_flag等于0表示基于解码器运动矢量修正的帧间双向预测被禁用。
[0234] 提供图像参数集语法和语义。
[0235]
[0236]
[0237] 确定是否使用DMVR的标志的推导。
[0238] 以帧间预测模式编码的编码单元的解码过程包括以下顺序步骤:
[0239] 变量dmvrFlag设置为0。
[0240] 当前编码单元的运动矢量分量和参考索引如下推导:
[0241] 如果MergeTriangleFlag[xCb][yCb]、inter_affine_flag[xCb][yCb]和merge_subblock_flag[xCb][yCb]均等于0,则适用以下情况:
[0242] 调用第8.5.2.1节中指定的运动矢量分量和参考索引的推导过程,其中,亮度编码块位置(xCb,yCb)、亮度编码块宽度cbWidth和亮度编码块高度cbHeight作为输入,亮度运动矢量mvL0[0][0]和mvL1[0][0]、参考索引refIdxL0和refIdxL1以及预测列表利用标志predFlagL0[0][0]和predFlagL1[0][0],以及双向预测权重索引bcwIdx作为输出。
[0243] 当满足以下所有条件时,dmvrFlag设置为1:
[0244]
[0245]
[0246] general_merge_flag[xCb][yCb]等于1
[0247] predFlagL0[0][0]和predFlagL1[0][0]均等于1
[0248] mmvd_flag[xCb][yCb]等于0
[0249] DiffPicOrderCnt(currPic,RefPicList[0][refIdxL0])等于
[0250] DiffPicOrderCnt(RefPicList[1][refIdxL1],currPic)
[0251] BcwIdx[xCb][yCb]等于0
[0252] luma_weight_l0_flag[refIdxL0]和luma_weight_l1_flag[refIdxL1]均等于0[0253] cbWidth大于或等于8
[0254] cbHeight大于或等于8
[0255] cbHeight*cbWidth大于或等于128
[0256] 图12为本发明实施例提供的视频译码设备1200(例如视频编码器20或视频解码器30)的示意图。视频译码设备1200适用于实现本文描述的公开实施例。视频译码设备1200包括:入端口1210和接收单元(Rx)1220,用于接收数据;处理器、逻辑单元或中央处理单元(central processing unit,CPU)1230,用于处理数据;发送单元(Tx)1240和出端口1250,用于发送数据;存储器1260,用于存储数据。视频译码设备1200还可以包括与入端口1210、接收单元1220、发送单元1240和出端口1250耦合的光电(optical‑to‑electrical,OE)组件和电光(electrical‑to‑optical,EO)组件,用作光信号或电信号的出口或入口。
[0257] 处理器1230通过硬件和软件实现。处理器1230可以实现为一个或多个CPU芯片、一个或多个核(例如,实现为多核处理器)、一个或多个现场可编程门阵列(field‑programmable gate array,FPGA)、一个或多个专用集成电路(application specific integrated circuit,ASIC)以及一个或多个数字信号处理器(digital signal processor,DSP)。处理器1230与入端口1210、接收单元1220、发送单元1240、出端口1250和存储器1260通信。处理器1230包括译码模块1270。译码模块1270实现上文描述的公开实施例。例如,译码模块1270实现、处理、准备或提供各种编解码功能。因此,将译码模块1270包括在内使得视频译码设备1200的功能得到了显著改进,并且实现了视频译码设备1200到不同状态的转换。或者,以存储在存储器1260中并由处理器1230执行的指令来实现译码模块1270。
[0258] 视频译码设备1200还可以包括输入和/或输出(input/output,I/O)设备1280,用于与用户进行数据通信。I/O设备1280可以包括输出设备,例如显示视频数据的显示器、输出音频数据的扬声器等。I/O设备1280还可以包括键盘、鼠标、轨迹球等输入设备和/或与上述输出设备进行交互的对应接口。
[0259] 存储器1260包括一个或多个磁盘、磁带机和固态硬盘,可用作溢出数据存储设备,以在选择执行程序时存储这类程序,并存储在程序执行期间读取的指令和数据。存储器1260可以是易失性和/或非易失性的,并且可以是只读存储器(read‑only memory,ROM)、随机存取存储器(random access memory,RAM)、三态内容寻址存储器(ternary content‑addressable memory,TCAM)和/或静态随机存取存储器(static random‑access memory,SRAM)。
[0260] 图13为译码模块1300的实施例的示意图。在一个实施例中,译码模块1300在视频译码设备1302(例如视频编码器20或视频解码器30)中实现。视频译码设备1302包括接收模块1301。接收模块1301用于接收图像进行编码或者接收码流进行解码。视频译码设备1302包括与接收模块1301耦合的发送模块1307。发送模块1307用于向解码器发送所述码流或者向显示模块(例如多个I/O设备1280中的一个I/O设备)发送解码图像。
[0261] 视频译码设备1302包括存储模块1303。存储模块1303与接收模块1301或发送模块1307中的至少一个耦合。存储模块1303用于存储指令。视频译码设备1302还包括处理模块
1305。处理模块1305与存储模块1303耦合。处理模块1305用于执行存储在存储模块1303中的指令,以执行本文公开的方法。
[0262] 还应当理解,本文中阐述的示例性方法的步骤不一定需要按照所描述的顺序执行,并且这些方法的步骤的顺序应当理解为仅仅是示例性的。同理,在与本发明各种实施例相一致的方法中,这样的方法可以包括其它步骤,并且某些步骤可以省略或组合。
[0263] 虽然本发明提供了若干个实施例,但应该理解,在不脱离本发明的精神或范围的情况下,所公开的系统和方法可以通过其它多种具体形式体现。本发明示例应被视为说明性而非限制性的,且本发明并不限于本文所给出的详细内容。例如,各种元件或组件可以组合或集成在另一系统中,或者一些特征可以省略或不实施。
[0264] 另外,在不脱离本发明范围的情况下,各种实施例中描述和说明为离散或单独的技术、系统、子系统和方法可以与其它系统、模块、技术或方法组合或集成。示出或描述为彼此耦合、或直接耦合、或彼此通信的其它项目可通过某种接口、设备或中间组件以电方式、机械方式或其它方式间接耦合或通信。变化、替换和变更的其它示例可由本领域技术人员确定,并可在不脱离本文公开的精神和范围的情况下举例。