用于视频译码中的参考图像重采样的多个图像大小和符合性窗口的处理的制作方法

文档序号:28802470发布日期:2022-02-09 00:22阅读:164来源:国知局
用于视频译码中的参考图像重采样的多个图像大小和符合性窗口的处理的制作方法
用于视频译码中的参考图像重采样的多个图像大小和符合性窗口的处理
1.相关申请交叉引用
2.本专利申请案要求陈建乐(jianle chen)等人于2019年7月8日递交的申请号为62/871,493、发明名称为“用于视频译码中的参考图像重采样的多个图像大小和符合性窗口的处理(handling of multiple picture size and conformance windows for reference picture resampling in video coding)”的美国临时专利申请案的权益,其全部内容通过引用结合在本技术中。
技术领域
3.本发明大体上描述了在视频译码中支持多个图像大小和符合性窗口的技术。更具体地,本发明确保具有相同图像大小的图像参数集也具有相同的符合性窗口。


背景技术:

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


技术实现要素:

5.第一方面涉及一种由视频解码器实现的对经译码的视频码流进行解码的方法。所述方法包括:所述视频解码器接收参考相同序列参数集的第一图像参数集和第二图像参数集,其中,当所述第一图像参数集和所述第二图像参数集的图像宽度和图像高度具有相同值时,所述第一图像参数集和所述第二图像参数集的符合性窗口具有相同值;所述视频解码器将所述符合性窗口应用于与所述第一图像参数集或所述第二图像参数集对应的当前图像。
6.所述方法提供了将具有相同图像大小的图像参数集约束为也具有相同符合性窗口大小(例如,裁剪窗口大小)的技术。通过保持具有相同图像大小的图像参数集的符合性窗口的大小相同,在启用参考图像重采样(reference picture resampling,rpr)时可以避免过于复杂的处理。因此,可以降低编码器和解码器侧的处理器、存储器和/或网络资源的利用率。因此,视频译码中的编码器/解码器(又名“编解码器”)相对于当前编解码器得到了改进。实际上,改进的视频译码过程在发送、接收和/或观看视频时提供了更好的用户体验。
7.可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述符合性窗口包
括符合性窗口左偏移、符合性窗口右偏移、符合性窗口上偏移和符合性窗口下偏移。
8.可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述指令还使得所述解码设备在应用所述符合性窗口之后,使用帧间预测对与所述第一图像参数集或所述第二图像参数集对应的所述当前图像进行解码,其中,所述帧间预测基于经重采样的参考图像。
9.可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述方法还包括使用参考图像重采样(reference picture resampling,rps)对与所述第一图像集或所述第二图像集对应的所述当前图像关联的参考图像进行重采样。
10.可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述参考图像的重采样改变所述参考图像的分辨率,所述参考图像用于对与所述第一图像集或所述第二图像集对应的所述当前图像进行帧间预测。
11.可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述图像宽度和所述图像高度是以亮度样本为单位测量的。
12.可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述方法还包括根据所述当前图像的所述图像宽度、所述图像高度和所述符合性窗口以及所述当前图像的参考图像,确定是否启用双向光流(bi-direction optical flow,bdof)来解码所述图像。
13.可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述方法还包括根据所述当前图像的所述图像宽度、所述图像高度和所述符合性窗口以及所述当前图像的参考图像,确定是否启用解码器侧运动矢量修正(decoder-side motion vector refinement,dmvr)来解码所述图像。
14.可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述方法还包括在电子设备的显示器上显示使用所述当前块生成的图像。
15.第二方面涉及一种由视频编码器实现的对视频码流进行编码的方法。所述方法包括:所述视频编码器生成参考相同序列参数集的第一图像参数集和第二图像参数集,其中,当所述第一图像参数集和所述第二图像参数集的图像宽度和图像高度具有相同值时,所述第一图像参数集和所述第二图像参数集的符合性窗口具有相同值;所述视频编码器将所述第一图像参数集和所述第二图像参数集编码到视频码流中;所述视频编码器存储所述视频码流,其中,所述视频码流用于发送给视频解码器。
16.所述方法提供了将具有相同图像大小的图像参数集约束为也具有相同符合性窗口大小(例如,裁剪窗口大小)的技术。通过保持具有相同图像大小的图像参数集的符合性窗口的大小相同,在启用参考图像重采样(reference picture resampling,rpr)时可以避免过于复杂的处理。因此,可以降低编码器和解码器侧的处理器、存储器和/或网络资源的利用率。因此,视频译码中的编码器/解码器(又名“编解码器”)相对于当前编解码器得到了改进。实际上,改进的视频译码过程在发送、接收和/或观看视频时提供了更好的用户体验。
17.可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述符合性窗口包括符合性窗口左偏移、符合性窗口右偏移、符合性窗口上偏移和符合性窗口下偏移。
18.可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述图像宽度和所述图像高度是以亮度样本为单位测量的。
19.可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述方法还包括向
所述视频解码器发送包括所述第一图像参数集和所述第二图像参数集的所述视频码流。
20.第三方面涉及一种解码设备。所述解码设备包括:接收器,用于接收经译码的视频码流;存储器,耦合到所述接收器并存储指令;处理器,耦合到所述存储器并用于执行所述指令以使得所述解码设备:接收参考相同序列参数集的第一图像参数集和第二图像参数集,其中,当所述第一图像参数集和所述第二图像参数集的图像宽度和图像高度具有相同值时,所述第一图像参数集和所述第二图像参数集的符合性窗口具有相同值;将所述符合性窗口应用于与所述第一图像参数集或所述第二图像参数集对应的当前图像。
21.所述解码设备提供了将具有相同图像大小的图像参数集约束为也具有相同符合性窗口大小(例如,裁剪窗口大小)的技术。通过保持具有相同图像大小的图像参数集的符合性窗口的大小相同,在启用参考图像重采样(reference picture resampling,rpr)时可以避免过于复杂的处理。因此,可以降低编码器和解码器侧的处理器、存储器和/或网络资源的利用率。因此,视频译码中的编码器/解码器(又名“编解码器”)相对于当前编解码器得到了改进。实际上,改进的视频译码过程在发送、接收和/或观看视频时提供了更好的用户体验。
22.可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述符合性窗口包括符合性窗口左偏移、符合性窗口右偏移、符合性窗口上偏移和符合性窗口下偏移。
23.可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述指令还使得所述解码设备在应用所述符合性窗口之后,使用帧间预测对与所述第一图像参数集或所述第二图像参数集对应的所述当前图像进行解码,其中,所述帧间预测基于经重采样的参考图像。
24.可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述解码设备还包括显示器,其中,所述显示器用于显示根据所述当前图像生成的图像。
25.第四方面涉及一种编码设备。所述编码设备包括:存储器,包括指令;处理器,耦合到所述存储器并用于实现所述指令以使得所述编码设备:生成参考相同序列参数集的第一图像参数集和第二图像参数集,其中,当所述第一图像参数集和所述第二图像参数集的图像宽度和图像高度具有相同值时,所述第一图像参数集和所述第二图像参数集的符合性窗口具有相同值;将所述第一图像参数集和所述第二图像参数集编码到视频码流中;发送器,耦合到所述处理器并用于向视频解码器发送包括所述第一图像参数集和所述第二图像参数集的所述视频码流。
26.所述编码设备提供了将具有相同图像大小的图像参数集约束为也具有相同符合性窗口大小(例如,裁剪窗口大小)的技术。通过保持具有相同图像大小的图像参数集的符合性窗口的大小相同,在启用参考图像重采样(reference picture resampling,rpr)时可以避免过于复杂的处理。因此,可以降低编码器和解码器侧的处理器、存储器和/或网络资源的利用率。因此,视频译码中的编码器/解码器(又名“编解码器”)相对于当前编解码器得到了改进。实际上,改进的视频译码过程在发送、接收和/或观看视频时提供了更好的用户体验。
27.可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述符合性窗口包括符合性窗口左偏移、符合性窗口右偏移、符合性窗口上偏移和符合性窗口下偏移。
28.可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述图像宽度和所
述图像高度是以亮度样本为单位测量的。
29.第五方面涉及一种译码装置。所述译码装置包括:接收器,用于接收图像进行编码或接收码流进行解码;发送器,耦合到所述接收器并用于向解码器发送所述码流或向显示器发送经解码图像;存储器,耦合到所述接收器或所述发送器中的至少一个并用于存储指令;处理器,耦合到所述存储器并用于执行存储在所述存储器中的所述指令,以执行本文公开的任何一种方法。
30.所述译码装置提供了将具有相同图像大小的图像参数集约束为也具有相同符合性窗口大小(例如,裁剪窗口大小)的技术。通过保持具有相同图像大小的图像参数集的符合性窗口的大小相同,在启用参考图像重采样(reference picture resampling,rpr)时可以避免过于复杂的处理。因此,可以降低编码器和解码器侧的处理器、存储器和/或网络资源的利用率。因此,视频译码中的编码器/解码器(又名“编解码器”)相对于当前编解码器得到了改进。实际上,改进的视频译码过程在发送、接收和/或观看视频时提供了更好的用户体验。
31.可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述译码装置还包括显示器,其中,所述显示器用于显示图像。
32.第六方面涉及一种系统。所述系统包括:编码器;解码器,与所述编码器通信,其中,所述编码器或所述解码器包括本文公开的解码设备、编码设备或译码装置。
33.所述系统提供了将具有相同图像大小的图像参数集约束为也具有相同符合性窗口大小(例如,裁剪窗口大小)的技术。通过保持具有相同图像大小的图像参数集的符合性窗口的大小相同,在启用参考图像重采样(reference picture resampling,rpr)时可以避免过于复杂的处理。因此,可以降低编码器和解码器侧的处理器、存储器和/或网络资源的利用率。因此,视频译码中的编码器/解码器(又名“编解码器”)相对于当前编解码器得到了改进。实际上,改进的视频译码过程在发送、接收和/或观看视频时提供了更好的用户体验。
34.第七方面涉及一种译码模块。所述译码模块包括:接收模块,用于接收图像进行编码或接收码流进行解码;发送模块,耦合到所述接收模块并用于向解码模块发送所述码流或向显示模块发送经解码图像;存储模块,耦合到所述接收模块或所述发送模块中的至少一个并用于存储指令;处理模块,耦合到所述存储模块并用于执行存储在所述存储模块中的所述指令,以执行本文公开的任何一种方法。
35.所述译码模块提供了将具有相同图像大小的图像参数集约束为也具有相同符合性窗口大小(例如,裁剪窗口大小)的技术。通过保持具有相同图像大小的图像参数集的符合性窗口的大小相同,在启用参考图像重采样(reference picture resampling,rpr)时可以避免过于复杂的处理。因此,可以降低编码器和解码器侧的处理器、存储器和/或网络资源的利用率。因此,视频译码中的编码器/解码器(又名“编解码器”)相对于当前编解码器得到了改进。实际上,改进的视频译码过程在发送、接收和/或观看视频时提供了更好的用户体验。
36.为了描述的清晰性,上述任一实施例可以与上述其它任一或多个实施例结合以创建本发明范围内的新实施例。
37.这些和其它特征将结合附图和权利要求书从以下详细描述中更清楚地理解。
附图说明
38.为了更透彻地理解本发明,现参考结合附图和具体实施方式而描述的以下简要说明,其中的相同附图标记表示相同部件。
39.图1为对视频信号进行译码的示例性方法的流程图。
40.图2为用于视频译码的示例性编码和解码(编解码)系统的示意图。
41.图3为示例性视频编码器的示意图。
42.图4为示例性视频解码器的示意图。
43.图5为表示在解码顺序和呈现顺序中帧内随机接入点(intra random access point,irap)图像相对于前置图像和后置图像的关系的经译码视频序列。
44.图6示出了用于空间可适性的多层译码的示例。
45.图7为单向帧间预测的示例的示意图。
46.图8为双向帧间预测的示例的示意图。
47.图9示出了视频码流。
48.图10示出了图像的分割技术。
49.图11为对经译码的视频码流进行解码的方法的实施例。
50.图12为对经译码的视频码流进行编码的方法的实施例。
51.图13为视频译码设备的示意图。
52.图14为译码模块的实施例的示意图。
具体实施方式
53.首先应理解,尽管下文提供一项或多项实施例的说明性实现方式,但本发明所公开的系统和/或方法可使用任何数目的技术来实现,无论该技术是当前已知还是现有的。本发明决不应限于下文所说明的说明性实现方式、附图和技术,包括本文所说明并描述的示例性设计和实现方式,而是可在所附权利要求书的范围以及其等效物的完整范围内修改。
54.以下术语的定义如下所述,除非在本文相反的上下文中使用。具体地,以下定义旨在更加清晰地描述本发明。但是,术语在不同的上下文中可能会有不同的描述。因此,以下定义应当视为补充信息,不应当视为对此处为这些术语提供的描述的任何其它定义进行限制。
55.码流是包括视频数据的一系列比特,这些视频数据被压缩以在编码器和解码器之间传输。编码器(encoder)是一种用于采用编码过程将视频数据压缩到码流中的设备。解码器(decoder)是一种用于采用解码过程从码流中重建视频数据进行显示的设备。图像是创建帧或其场的亮度样本和/或色度样本组成的阵列。为了清楚讨论,正在编码或解码的图像可以称为当前图像。
56.参考图像(reference picture)是包括参考样本的图像,这些样本可在根据帧间预测和/或层间预测通过参考对其它图像进行译码时使用。参考图像列表是用于帧间预测和/或层间预测的一列参考图像。一些视频译码系统使用两个参考图像列表,这两个参考图像列表可以表示为参考图像列表1和参考图像列表0。参考图像列表结构是包括多个参考图像列表的可寻址语法结构。帧间预测是通过参考图像中与参考图像和当前图像在同一层的当前图像不同的参考图像中的指示样本,对当前图像的样本进行译码的机制。参考图像列
constrained tile set,mcts)、最大传输单元(maximum transfer unit,mtu)、网络抽象层(network abstraction layer,nal)、图像顺序编号(picture order count,poc)、原始字节序列载荷(raw byte sequence payload,rbsp)、序列参数集(sequence parameter set,sps)、通用视频编码(versatile video coding,vvc)和工作草案(working draft,wd)。
63.图1为对视频信号进行译码的示例性操作方法100的流程图。具体地,在编码器侧对视频信号进行编码。编码过程通过使用各种机制来压缩视频信号,从而减小视频文件。较小的文件大小有助于压缩视频文件传输给用户,同时减少相关的带宽开销。然后,解码器对压缩视频文件进行解码,以重建原始视频信号,向终端用户显示。解码过程通常与编码过程一样,有助于解码器以相同方式重建视频信号。
64.在步骤101中,将视频信号输入到编码器中。例如,视频信号可以是存储在存储器中的未压缩的视频文件。又如,视频文件可以由视频捕获设备(例如,摄像机)捕获,并且进行编码以支持视频的实时流传输。视频文件可以同时包括音频分量和视频分量。视频分量包括一系列图像帧,当按顺序观看时,这些图像帧会产生运动的视觉效果。这些帧包括以光表示的像素(本文称为亮度分量(或亮度样本))和颜色(称为色度分量(或颜色样本))。在一些示例中,所述帧还可以包括深度值以支持三维观看。
65.在步骤103中,将视频分割成块。分割包括将每个帧中的像素细分为正方形和/或矩形块以进行压缩。例如,在高效视频编码(high efficiency video coding,hevc)(也称为h.265和mpeg-h第2部分)中,可以首先将帧分为编码树单元(coding tree unit,ctu),这些编码树单元是预定义大小(例如,64个像素
×
64个像素)的块。ctu包括亮度样本和色度样本。可以使用编码树将ctu分成块,然后递归地细分这些块,直到获得支持进一步编码的配置结构。例如,可以细分帧的亮度分量,直到各个块包括相对均匀的亮度(lighting)值。此外,可以细分帧的色度分量,直到各个块包括相对均匀的颜色值。因此,视频帧的内容不同,分割机制就不同。
66.在步骤105中,使用各种压缩机制来压缩在步骤103中分割的图像块。例如,可以使用帧间预测和/或帧内预测。帧间预测旨在利用一个事实,即一个共同场景中的对象往往出现在连续的帧中。因此,无需在相邻帧中重复描述在参考帧中描绘对象的块。一个对象(例如,一张桌子)可以在多个帧中保持恒定的位置。因此,该桌子只描述一次,相邻帧可以回指参考帧。模式匹配机制可用于匹配跨多个帧的对象。此外,由于对象移动或摄像机移动等原因,移动对象可以跨多个帧表示。在特定示例中,一个视频可以跨多个帧显示在屏幕上移动的汽车。运动矢量可以用来描述这种移动。运动矢量是一个二维矢量,提供从对象在一个帧中的坐标与该对象在参考帧中的坐标之间的偏移。因此,帧间预测可将当前帧中的图像块编码为运动矢量集,表示当前帧中的图像块与参考帧中的对应块之间的偏移。
67.帧内预测对公共帧中的块进行编码。帧内预测利用了以下事实:亮度分量和色度分量往往聚集在一个帧中。例如,一棵树的一部分中的一片绿色往往与几片类似的绿色相邻。帧内预测使用多种方向性预测模式(例如,hevc中的33个模式)、平面模式和直流(direct current,dc)模式。方向性模式表示当前块的样本与相邻块在对应方向上的样本相似/相同。平面模式表示可以根据行边缘的邻块对行/列(例如平面)上的一系列块进行插值。实际上,平面模式通过在变化值中使用相对恒定的斜率来表示亮度/颜色在行/列之间的平滑过渡。dc模式用于边界平滑,表示块和方向性预测模式的角方向相关的所有相邻块
的样本相关的平均值相似/相同。因此,帧内预测块可以将图像块表示为各种关系预测模式值而不是实际值。此外,帧间预测块可以将图像块表示为运动矢量值而不是实际值。在这两种情况下,预测块在一些情况下可以不完全表示图像块。任何差异都存储在残差块中。可以对残差块进行变换以进一步压缩文件。
68.在步骤107中,可以应用各种滤波技术。在hevc中,根据环内滤波方案应用滤波器。以上讨论的基于块的预测可在解码器中创建块状图像。此外,基于块的预测方案可以对块进行编码,然后重建经编码块,以供以后用作参考块。环内滤波方案迭代地将噪声抑制滤波器、去块效应滤波器、自适应环路滤波器和样本自适应偏移(sample adaptive offset,sao)滤波器应用到块/帧。这些滤波器减少了这些块伪影,以便可以准确地重建经编码文件。此外,这些滤波器减少了重建参考块伪影,使得伪影不太可能在基于重建参考块编码的后续块中产生其它的伪影。
69.在步骤109中,一旦视频信号被分割、压缩和滤波,则将所得数据编码到码流中。码流包括上述数据以及任何期望支持解码器中适当的视频信号重建的指示数据。例如,这些数据可以包括分割数据、预测数据、残差块和向解码器提供译码指令的各种标志。码流可以存储在存储器中,所述码流用于根据请求发送到解码器。码流还可以向多个解码器广播和/或组播。码流的创建是一个迭代过程。因此,步骤101、103、105、107和109可以在多个帧和块上连续和/或同时发生。图1所示的顺序是为了清楚和便于讨论而呈现的,并非旨在将视频译码过程限制于特定顺序。
70.在步骤111中,解码器接收码流并开始解码过程。具体地,解码器使用熵解码方案将码流转换为对应的语法和视频数据。在步骤111中,解码器使用码流中的语法数据来确定帧的分割。所述分割应与步骤103中的块分割的结果匹配。现在描述在步骤111中使用的熵编码/解码。编码器在压缩过程中做出许多选择,例如根据输入图像中的值的空间定位从多个可能选项中选择块分割方案。指示确切的选项可以使用大量的二进制位。本文中使用的二进制位是当作变量的二进制值(例如,可以根据上下文变化的比特值)。熵编码有助于编码器丢弃任何明显不适合特定情况的选项,从而留下一组可使用的选项。然后,为每个可使用的选项分配一个码字。码字的长度取决于可使用选项的数量(例如,一个二进制位对应两个选项,两个二进制位对应三个到四个选项)。然后,编码器对所选选项的码字进行编码。此方案减小了码字的大小,因为码字的大小与期望的一样大,以唯一地指示可使用选项的小子集中的一个选项,而不是唯一地指示所有可能选项的可能大集中的选项。然后,解码器通过以与编码器类似的方式确定可使用选项集对所述选项进行解码。通过确定可使用选项集,解码器可以读取码字并确定编码器做出的选择。
71.在步骤113中,解码器执行块解码。具体地,解码器进行逆变换来生成残差块。然后,解码器使用残差块和对应的预测块,根据分割来重建图像块。预测块可包括编码器在步骤105中生成的帧内预测块和帧间预测块。然后,根据在步骤111中确定的分割数据将重建图像块放置在重建视频信号的帧中。步骤113的语法还可以通过上文讨论的熵编码在码流中指示。
72.在步骤115中,以类似于编码器在步骤107的方式对重建视频信号的帧执行滤波。例如,可以对帧使用噪声抑制滤波器、去块效应滤波器、自适应环路滤波器和sao滤波器以消除块伪影。一旦帧被滤波,可以在步骤117中将视频信号输出到显示器以供终端用户观
看。
73.图2是用于视频译码的示例性编码和解码(编解码)系统200的示意图。具体地,编解码系统200能够实现操作方法100。广义地,编解码器系统200用于描述编码器和解码器中使用的组件。如关于操作方法100中的步骤101和103所讨论,编解码系统200接收视频信号并对视频信号进行分割,产生分割视频信号201。然后,当作为编码器时,编解码系统200将分割视频信号201压缩到编码码流中,如关于方法100中的步骤105、107和109所讨论。当充当解码器时,编解码系统200从码流中生成输出视频信号,如结合操作方法100中的步骤111、113、115和117所述。编解码系统200包括通用译码器控制组件211、变换缩放和量化组件213、帧内估计组件215、帧内预测组件217、运动补偿组件219、运动估计组件221、缩放和逆变换组件229、滤波器控制分析组件227、环内滤波器组件225、解码图像缓冲器组件223、标头格式和上下文自适应二进制算术编码(context adaptive binary arithmetic coding,cabac)组件231。这些组件如图所示相耦合。在图2中,黑线表示待编码/解码数据的运动,而虚线表示控制其它组件操作的控制数据的运动。编解码系统200中的组件都可以存在于编码器中。解码器可包括编解码系统200中组件的子集。例如,解码器可以包括帧内预测组件217、运动补偿组件219、缩放和逆变换组件229、环内滤波器组件225和解码图像缓冲器组件223。现对这些组件加以说明。
74.分割视频信号201是已通过编码树分割成像素块的捕获视频序列。编码树使用各种划分模式将像素块细分为更小的像素块。然后,可以将这些块进一步细分为更小的块。所述块可以称为编码树上的节点。将较大的父节点划分为较小的子节点。节点被细分的次数称为节点/编码树的深度。在一些情况下,划分的块可以包括在编码单元(coding unit,cu)中。例如,cu可以是ctu的子部分,包括亮度块、红差色度(cr)块和蓝差色度(cb)块以及cu的对应语法指令。划分模式可以包括二叉树(binary tree,bt)、三叉树(triple tree,tt)和四叉树(quad tree,qt),用于将节点分别划分为形状不同的两个、三个或四个子节点,具体取决于所使用的划分模式。将分割视频信号201转发到通用译码器控制组件211、变换缩放和量化组件213、帧内估计组件215、滤波器控制分析组件227和运动估计组件221进行压缩。
75.通用译码器控制组件211用于根据应用约束条件做出与将视频序列的图像编码到码流中相关的决策。例如,通用译码器控制组件211管理码率/码流大小相对于重建质量的优化。可以根据存储空间/带宽可用性和图像分辨率请求做出这些决策。通用译码器控制组件211还根据传输速度管理缓冲器的利用率,以减轻缓存欠载和超载问题。为了管理这些问题,通用译码器控制组件211管理由其它组件进行的分割、预测和滤波。例如,通用译码器控制组件211可以动态增加压缩复杂度以增大分辨率和带宽利用率,或者降低压缩复杂度以降低分辨率和带宽利用率。因此,通用译码器控制组件211控制编解码系统200的其它组件来平衡视频信号重建质量与码率问题。通用译码器控制组件211创建控制数据,控制其它组件的操作。还将控制数据转发到标头格式和cabac组件231,以在码流中进行编码,从而指示在解码器中解码的参数。
76.分割视频信号201还发送到运动估计组件221和运动补偿组件219进行帧间预测。可以将分割视频信号201的帧或条带分为多个视频块。运动估计组件221和运动补偿组件219根据一个或多个参考帧中的一个或多个块对所接收视频块执行帧间预测译码以提供时间预测。编解码系统200可以执行多个译码过程,以便为每个视频数据块选择适当的译码模
式,等等。
77.运动估计组件221和运动补偿组件219可以高度集成,但出于概念的目的单独说明。由运动估计组件221执行的运动估计是生成运动矢量的过程,运动矢量用于估计视频块的运动。例如,运动矢量可以指示编码对象相对于预测块的位移。预测块是被发现在像素差方面与待编码块紧密匹配的块。预测块也可以称为参考块。这种像素差可以通过绝对差和(sum of absolute difference,sad)、平方差和(sum of square difference,ssd)或其它差度量确定。hevc使用若干编码对象,包括ctu、编码树块(coding tree block,ctb)和cu。例如,可以将ctu分成多个ctb,然后可以将ctb划分为多个cb包括在cu中。cu可以编码为包括预测数据的预测单元(prediction unit,pu)和/或包括cu的变换残差数据的变换单元(transform unit,tu)。运动估计组件221使用率失真分析作为率失真优化过程的一部分来生成运动矢量、pu和tu。例如,运动估计组件221可以确定当前块/帧的多个参考块、多个运动矢量等,并且可以选择具有最佳率失真特性的参考块、运动矢量等。最佳率失真特性平衡视频重建的质量(例如,压缩造成的数据丢失量)和译码效率(例如,最终编码的大小)。
78.在一些示例中,编解码系统200可以计算存储在解码图像缓冲器组件223中的参考图像的子整数像素位置的值。例如,视频编解码系统200可对参考图像的四分之一像素位置、八分之一像素位置或其它分数像素位置的值进行插值。因此,运动估计组件221可执行有关于整像素位置和分数像素位置的运动搜索,并输出具有分数像素精度的运动矢量。运动估计组件221通过比较pu的位置与参考图像的预测块的位置来计算经帧间编码条带中视频块的pu的运动矢量。运动估计组件221将计算的运动矢量作为运动数据输出至标头格式和cabac组件231进行编码,将运动输出至运动补偿组件219。
79.由运动补偿组件219执行的运动补偿可涉及根据由运动估计组件221确定的运动矢量获取或生成预测块。同样,在一些示例中,运动估计组件221和运动补偿组件219可以在功能上集成。在接收当前视频块的pu的运动矢量之后,运动补偿组件219可以定位运动矢量指向的预测块。然后,通过从正在编码的当前视频块的像素值中减去预测块的像素值,产生像素差值,从而形成残差视频块。通常,运动估计组件221对亮度分量进行运动估计,运动补偿组件219将根据亮度分量计算的运动矢量用于色度分量和亮度分量。将预测块和残差块转发到变换缩放和量化组件213。
80.分割视频信号201还发送到帧内估计组件215和帧内预测组件217。与运动估计组件221和运动补偿组件219一样,帧内估计组件215和帧内预测组件217可以高度集成,但出于概念的目的单独说明。帧内估计组件215和帧内预测组件217根据当前帧中的块对当前块进行帧内预测,以替代如上所述的由运动估计组件221和运动补偿组件219在帧之间执行的帧间预测。具体地,帧内估计组件215确定用于对当前块进行编码的帧内预测模式。在一些示例中,帧内估计组件215从多个测试的帧内预测模式中选择适当的帧内预测模式对当前块进行编码。然后,将所选择的帧内预测模式转发到标头格式和cabac组件231进行编码。
81.例如,帧内估计组件215使用各种测试的帧内预测模式的率失真分析来计算率失真值,并在测试的模式中选择具有最佳率失真特性的帧内预测模式。率失真分析通常确定经编码块和为了产生经编码块进行编码的原始未编码块之间的失真(或误差)量以及用于产生经编码块的码率(例如,比特数)。帧内估计组件215根据各种经编码块的失真和速率计算比率,确定哪种帧内预测模式得到块的最佳率失真值。另外,帧内估计组件215可用于根
据率失真优化(rate-distortion optimization,rdo)使用深度建模模式(depth modeling mode,dmm)对深度图的深度块进行编码。
82.当在编码器上实现时,帧内预测组件217可根据由帧内估计组件215确定的已选帧内预测模式从预测块中生成残差块,或者当在解码器上实现时,从码流中读取残差块。残差块包括预测块和原始块之间的值差,表示为矩阵。然后,将残差块转发到变换缩放和量化组件213。帧内估计组件215和帧内预测分量217可以对亮度分量和色度分量执行操作。
83.变换缩放和量化组件213用于进一步压缩残差块。变换缩放和量化组件213将离散余弦变换(discrete cosine transform,dct)、离散正弦变换(discrete sine transform,dst)等变换或概念上类似的变换应用于残差块,产生包括残差变换系数值的视频块。还可以使用小波变换、整数变换、子带变换或其它类型的变换。变换可将残差信息从像素值域变换到变换域,例如频域。变换缩放和量化组件213还用于根据频率等对变换残差信息进行缩放。这种缩放涉及对残差信息应用缩放因子,以便在不同的粒度上量化不同的频率信息,会影响重建视频的最终视觉质量。变换缩放和量化分量213还用于量化变换系数以进一步降低码率。量化过程可以减少与部分或全部系数相关的位深度。可以通过调整量化参数来修改量化程度。在一些示例中,变换缩放和量化组件213随后可对包括量化变换系数的矩阵进行扫描。将量化变换系数转发到标头格式和cabac组件231,以编码到码流中。
84.缩放和逆变换组件229进行变换缩放和量化组件213的逆操作以支持运动估计。缩放和逆变换组件229进行反缩放、逆变换和/或反量化来重建像素域中的残差块,例如,后续用作参考块,该参考块可成为另一当前块的预测块。运动估计组件221和/或运动补偿组件219可以通过将残差块与对应预测块相加来计算参考块,以用于对后续块/帧进行运动估计。将滤波器应用于重建参考块,以减少在缩放、量化和变换过程中产生的伪影。当预测后续块时,这些伪影可以产生不准确的预测(并产生其它伪影)。
85.滤波器控制分析组件227和环内滤波器组件225将滤波器应用于残差块和/或重建图像块。例如,缩放和逆变换组件229中的变换残差块可以与帧内预测组件217和/或运动补偿组件219中的对应预测块组合以重建原始图像块。然后,可以将滤波器应用于重建图像块。在一些示例中,可以将滤波器应用于残差块。与图2中的其它组件一样,滤波器控制分析组件227和环内滤波器组件225高度集成且可以一起实现,但出于概念目的单独描述。应用于重建参考块的滤波器应用于特定空间区域,并且包括多个参数以调整如何应用这些滤波器。所述滤波器控制分析组件227分析重建参考块,以确定应在哪里应用这些滤波器并设置对应的参数。这些数据作为滤波器控制数据转发到标头格式和cabac组件231进行编码。环内滤波器组件225根据滤波器控制数据应用这些滤波器。滤波器可以包括去块效应滤波器、噪声抑制滤波器、sao滤波器和自适应环路滤波器。这些滤波器可以根据示例应用于空间/像素域(例如,在重建像素块上)或频域中。
86.当作为编码器操作时,将滤波后的重建图像块、残差块和/或预测块存储在解码图像缓冲器组件223中,以供以后进行如上所述的运动估计。当作为解码器操作时,解码图像缓冲器组件223存储重建块和滤波块并向显示器转发重建块和滤波块,作为输出视频信号的一部分。解码图像缓冲器组件223可以是能够存储预测块、残差块和/或重建图像块的任何存储器设备。
87.标头格式和cabac组件231从编解码系统200的各种组件接收数据并将这些数据编
码到经编码码流中以发送到解码器。具体地,标头格式和cabac组件231生成各种标头以对总体控制数据和滤波器控制数据等控制数据进行编码。此外,包括帧内预测和运动数据的预测数据以及量化变换系数数据形式的残差数据均编码到码流中。最终码流包括解码器想要重建原始分割视频信号201的所有信息。这些信息还可以包括帧内预测模式索引表(也称为码字映射表)、各种块的编码上下文的定义、最可能的帧内预测模式的指示、分割信息的指示等。这些数据可以通过熵编码技术进行编码。例如,可以通过使用上下文自适应可变长度编码(context adaptive variable length coding,cavlc)、cabac、基于语法的上下文自适应二进制算术编码(syntax-based context-adaptive binary arithmetic coding,sbac)、概率区间分割熵(probability interval partitioning entropy,pipe)译码或其它熵译码技术来对所述信息进行编码。在熵译码之后,经译码码流可以发送到另一设备(例如,视频解码器)或存档以供稍后发送或检索。
88.图3为示例性视频编码器300的框图。视频编码器300可用于实现编解码系统200的编码功能和/或实现操作方法100的步骤101、103、105、107和/或109。编码器300对输入视频信号进行分割,产生和分割视频信号201基本相似的分割视频信号301。然后,通过编码器300的组件将分割视频信号301压缩和编码到码流中。
89.具体地,将分割视频信号301转发给帧内预测组件317进行帧内预测。帧内预测组件317可与帧内估计组件215和帧内预测组件217基本相似。分割视频信号301还转发到运动补偿组件321,用于根据解码图像缓冲器323中的参考块进行帧间预测。运动补偿组件321可与运动估计组件221和运动补偿组件219基本相似。将帧内预测组件317和运动补偿组件321中的预测块和残差块转发到变换和量化组件313以对残差块进行变换和量化。变换和量化组件313可与变换缩放和量化组件213基本相似。将变换和量化残差块和对应的预测块(以及相关控制数据)转发到熵编码组件331以编码到码流中。熵编码组件331可与标头格式和cabac组件231基本相似。
90.变换和量化残差块和/或对应的预测块也从变换和量化组件313转发到逆变换和量化组件329以重建为参考块供运动补偿组件321使用。逆变换和量化组件329可与缩放和逆变换组件229基本相似。根据示例,也将环内滤波器组件325中的环内滤波器应用于残差块和/或重建参考块。环内滤波器组件325可与滤波器控制分析组件227和环内滤波器组件225基本相似。如关于环内滤波器组件225所讨论,环内滤波器组件325可以包括多个滤波器。然后,将滤波块存储在解码图像缓冲器组件323中,以供运动补偿组件321用作参考块。解码图像缓冲器组件323可与解码图像缓冲器组件223基本相似。
91.图4为示例性视频解码器400的框图。视频解码器400可用于实现编解码系统200的解码功能和/或实现操作方法100的步骤111、113、115和/或117。例如,解码器400从编码器300接收码流,并根据所述码流生成重建输出视频信号以向终端用户显示。
92.码流由熵解码组件433接收。熵解码组件433用于实现熵解码方案,例如cavlc、cabac、sbac、pipe译码或其它熵译码技术。例如,熵解码组件433可以使用标头信息来提供上下文以解译在码流中编码为码字的其它数据。解码信息包括对视频信号进行解码所需的任何信息,例如总体控制数据、滤波器控制数据、分割信息、运动数据、预测数据和残差块的量化变换系数。将量化变换系数转发到逆变换和量化组件429以重建为残差块。逆变换和量化组件429可与逆变换和量化组件329基本相似。
93.将重建残差块和/或预测块转发到帧内预测组件417以根据帧内预测操作重建为图像块。帧内预测组件417可与帧内估计组件215和帧内预测组件217相似。具体地,帧内预测组件417使用预测模式来定位帧中的参考块,并将残差块应用于结果以重建帧内预测图像块。重建帧内预测图像块和/或残差块以及对应的帧间预测数据通过环内滤波器组件425转发到解码图像缓冲器组件423,解码图像缓冲器组件423和环内滤波器组件425可以分别与解码图像缓冲器组件223和环内滤波器组件225基本相似。环内滤波器组件425对重建图像块、残差块和/或预测块进行滤波,并且这些信息存储在解码图像缓冲器组件423中。将解码图像缓冲器组件423中的重建图像块转发到运动补偿组件421进行帧间预测。运动补偿组件421可与运动估计组件221和/或运动补偿组件219基本相似。具体地,运动补偿组件421使用参考块中的运动矢量来生成预测块,并将残差块应用于结果中以重建图像块。所得重建块还可以通过环内滤波器组件425转发到解码图像缓冲器组件423。解码图像缓冲器组件423继续存储其它重建图像块,这些图像块可以通过分割信息重建成帧。这些帧也可以按顺序排列。所述顺序作为重建输出视频信号向显示屏输出。
94.请记住,视频压缩技术执行空间(帧内)预测和/或时间(帧间)预测以减少或去除视频序列固有的冗余。对于基于块的视频译码,视频条带(slice)(例如,视频图像或视频图像的一部分)可以分割成视频块,视频块也可以称为树块、编码树块(coding tree block,ctb)、编码树单元(coding tree unit,ctu)、编码单元(coding unit,cu)和/或编码节点。图像的帧内译码(i)条带中的视频块针对同一图像中的相邻块中的参考样本使用空间预测进行编码。图像的帧间译码(p或b)条带中的视频块可以针对同一图像中的相邻块中的参考样本使用空间预测,或者针对其它参考图像中的参考样本使用时间预测。图像可以称为帧,参考图像可以称为参考帧。
95.空间或时间预测产生预测块用于待译码块。残差数据表示待译码的原始块和预测块之间的像素差。根据指向构成预测块的参考样本的块的运动矢量和指示经译码块与预测块之间的差的残差数据,对帧间译码的块进行编码。帧内译码块根据帧内译码模式和残差数据进行编码。为了进一步压缩,残差数据可以从像素域变换到变换域,从而产生残差变换系数,然后可以量化残差变换系数。可以扫描最初以二维阵列排列的量化变换系数产生一维变换系数向量,并且可以应用熵译码来实现更大的压缩。
96.图像和视频压缩发展迅速,编码标准多样化。这些视频编码标准包括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)等扩展版本。
97.还有一个新的视频编码标准,名为通用视频编码(versatile video coding,vvc),正在由itu-t和iso/iec的联合视频专家组(joint video experts team,jvet)开发。
虽然vvc标准有几个工作草案,vvc的一个工作草案(working draft,wd),即b.bross、j.chen和s.liu在2019年3月27日的第13次jvet会议(vvc草案5)上提出的jvet-n1001-v3“versatile video coding(draft 5)(通用视频编码(草案5))”,在本文中被引用。本段和前一段中的每个参考文献都以全文引用的方式并入。
98.本文公开的技术的描述以itu-t和iso/iec的联合视频专家组(joint video experts team,jvet)正在开发的视频编码标准通用视频编码(versatile video coding,vvc)为基础。然而,这些技术还适用于其它视频编解码规范。
99.图5为在解码顺序508和呈现顺序510中帧内随机接入点(intra random access point,irap)图像502相对于前置图像504和后置图像506的关系的表示500。在一个实施例中,irap图像502称为清理随机接入(clean random access,cra)图像或伴随可解码随机接入(random access decodable,radl)图像的即时解码刷新(instantaneous decoder refresh,idr)图像。在hevc中,idr图像、cra图像和断点连接接入(broken link access,bla)图像都被认为是irap图像502。对于vvc,2018年10月的第12次jvet会议上同意将idr图像和cra图像都作为irap图像。在一个实施例中,断点连接接入(broken link access,bla)图像和逐步解码刷新(gradual decoder refresh,gdr)图像也可以被认为是irap图像。经译码视频序列的解码过程始终从irap图像开始。
100.如图5所示,前置图像504(例如,图像2和3)按解码顺序508在irap图像502之后,但按呈现顺序510在irap图像502之前。后置图像506按解码顺序508和呈现顺序510都在irap图像502之后。虽然图5中示出了两个前置图像504和一个后置图像506,但本领域技术人员将理解,在实际应用中,解码顺序508和呈现顺序510中可以存在更多或更少的前置图像504和/或后置图像506。
101.图5中的前置图像504被分为两种类型,即跳过随机接入前置(random access skipped leading,rasl)图像和radl图像。当解码从irap图像502(例如,图像1)开始时,radl图像(例如,图像3)可以被正确解码;但是,rasl图像(例如,图像2)无法被正确解码。因此,rasl图像被丢弃。鉴于radl图像与rasl图像之间的区别,与irap图像502关联的前置图像504的类型可以识别为radl或rasl,以便实现高效和正确的译码。在hevc中,当存在rasl图像和radl图像时,约束如下:对于与相同irap图像502关联的rasl图像和radl图像,rasl图像可以按呈现顺序510在radl图像之前。
102.irap图像502提供了以下两个重要的功能/优势。首先,irap图像502的存在表示解码过程可以从该图像开始。该功能具有随机接入特征,其中,解码过程从码流中的一个位置开始,而不一定从码流的起始开始,前提是irap图像502存在于该位置上。其次,irap图像502的存在刷新解码过程,使得从irap图像502开始的经译码图像(不包括rasl图像)在不参考位于irap图像之前的图像的情况下被译码。因此,使码流中存在irap图像502可以停止将在解码irap图像502之前的经译码图像期间可能发生的任何错误传播到irap图像502和按解码顺序508在irap图像502之后的那些图像。
103.虽然irap图像502提供了重要的功能,但这些功能会使压缩效率降低。irap图像502的存在会导致码率激增。这种对压缩效率的降低是由于两个原因。首先,由于irap图像502是帧内预测图像,当与作为帧间预测图像的其它图像(例如,前置图像504、后置图像506)相比时,图像本身会需要相对更多的比特来表示。其次,由于irap图像502的存在中断
了时间预测(这是因为解码器会刷新解码过程,其中,解码过程的动作之一是移除解码图像缓冲器(decoded picture buffer,dpb)中的之前参考图像),irap图像502导致按解码顺序508在irap图像502之后的图像的译码效率较低(即,需要更多的比特来表示),这是因为这些图像具有较少参考图像进行它们的帧间预测译码。
104.在被认为是irap图像502的图像类型中,hevc中的idr图像与其它图像类型相比具有不同的指示和推导方式。其中一些区别如下。
105.对于idr图像的图像顺序编号(picture order count,poc)值的指示和推导,poc的最高有效位(most significant bit,msb)部分不是根据之前的关键图像推导的,而是简单地设置为0。
106.对于参考图像管理所需的指示信息,idr图像的条带头不包括需要被指示以辅助参考图像管理的信息。对于其它图像类型(即cra、后置、时间子层接入(temporal sub-layer access,tsa)等),参考图像标识过程(即,确定解码图像缓冲器(decoded picture buffer,dpb)中的参考图像的状态(用于参考或不用于参考)的过程)需要下面描述的参考图像集(reference picture set,rps)等信息或其它形式的类似信息(例如,参考图像列表)。然而,对于idr图像,由于idr图像的存在表示解码过程可以仅将dpb中的所有参考图像标记为不用于参考,因此不需要指示(signal)这些信息。
107.除了irap图像概念,还有前置图像,如果前置图像存在,则前置图像与irap图像关联。前置图像是解码顺序在其关联的irap图像之后但输出顺序在irap图像之前的图像。根据译码配置和图像参考结构,前置图像进一步分为两种类型。第一种类型是在解码过程从关联irap图像开始时可能无法被正确解码的前置图像。发生这种情况是因为这些前置图像是在参考解码顺序在irap图像之前的图像的情况下进行译码的。这些前置图像称为随机接入跳过前置(random access skipped leading,rasl)图像。第二种类型是即使在解码过程从关联irap图像开始时也可以被正确解码的前置图像。这可能是因为这些前置图像是在没有直接或间接参考解码顺序在irap图像之前的图像的情况下进行译码的。这些前置图像称为可解码随机接入前置(random access decodable leading,radl)图像。在hevc中,当存在rasl图像和radl图像时,约束如下:对于与相同irap图像关联的rasl图像和radl图像,rasl图像可以按输出顺序在radl图像之前。
108.在hevc和vvc中,irap图像502和前置图像504都可以包括在单个网络抽象层(network abstraction layer,nal)单元中。一组nal单元可以称为接入单元。irap图像502和前置图像504被赋予不同的nal单元类型,使得这些图像可以容易地由系统级应用识别。例如,视频拼接器需要理解经译码图像类型,而不需要理解经译码码流中语法元素的太多细节,特别是需要从非irap图像中识别irap图像502,并从后置图像506中识别前置图像504,包括确定rasl图像和radl图像。后置图像506是与irap图像502关联并按呈现顺序510在irap图像502之后的那些图像。图像可以按解码顺序508在特定irap图像502之后,并按解码顺序508在任何其它irap图像502之前。为此,赋予irap图像502和前置图像504它们自己的nal单元类型有助于此类应用。
109.对于hevc,irap图像的nal单元类型包括:
110.伴随前置图像的bla图像(bla_w_lp):按解码顺序可以在一个或多个前置图像之前的断点连接接入(broken link access,bla)图像的nal单元。
111.伴随radl图像的bla图像(bla_w_radl):按解码顺序可以在一个或多个radl图像之前但未伴随rasl图像的bla图像的nal单元。
112.未伴随前置图像的bla图像(bla_n_lp):按解码顺序不在前置图像之前的bla图像的nal单元。
113.伴随radl图像的idr图像(idr_w_radl):按解码顺序可以在一个或多个radl图像之前但未伴随rasl图像的idr图像的nal单元。
114.未伴随前置图像的idr图像(idr_n_lp):按解码顺序不在前置图像之前的idr图像的nal单元。
115.cra:可以在前置图像(即,rasl图像或radl图像或两种图像)之前的清理随机接入(clean random access,cra)图像的nal单元。
116.radl:radl图像的nal单元。
117.rasl:rasl图像的nal单元。
118.对于vvc,irap图像502和前置图像504的nal单元类型如下:
119.伴随radl图像的idr图像(idr_w_radl):按解码顺序可以在一个或多个radl图像之前但未伴随rasl图像的idr图像的nal单元。
120.未伴随前置图像的idr图像(idr_n_lp):按解码顺序不在前置图像之前的idr图像的nal单元。
121.cra:可以在前置图像(即,rasl图像或radl图像或两种图像)之前的清理随机接入(clean random access,cra)图像的nal单元。
122.radl:radl图像的nal单元。
123.rasl:rasl图像的nal单元。
124.参考图像重采样(reference picture resampling,rpr)特征是在不需要在分辨率更改位置上对图像进行帧内译码的情况下,在码流中间更改经译码图像的空间分辨率的能力。要实现此特征,图像需要能够参考空间分辨率与当前图像的空间分辨率不同的一个或多个参考图像,以便进行帧间预测。因此,需要对这种参考图像或其一部分进行重采样,以对当前图像进行编码和解码。因此,称为rpr。此特征也可以称为自适应分辨率变化(adaptive resolution change,arc)或其它名称。rpr特征可以有益于一些使用案例或应用场景,如下所示。
125.视频电话和会议中的速率自适应。这是为了使经译码视频适应不断变化的网络条件。当网络条件变差,导致可用带宽降低时,编码器可以通过对较低分辨率的图像进行编码来适应这种情况。
126.多方视频会议中的主动发言者变化。对于多方视频会议,主动发言者的视频大小通常大于其它与会者的视频大小。当主动发言者发生变化时,每个与会者的图像分辨率也可能需要调整。当主动发言者频繁发生变化时,更加需要arc特征。
127.流式传输中的快速启动。对于流式传输应用,应用通常在开始显示图像之前会缓冲一定长度的经解码图像。以较低分辨率启动码流使得应用可以在缓冲区中拥有足够的图像,以更快地开始显示。
128.流式传输中的自适应流切换。http动态自适应流媒体(dynamic adaptive streaming over http,dash)规范包括名为@mediastreamstructureid的特征。此特征可以
实现在具有不可解码前置图像(例如,hevc中伴随关联rasl图像的cra图像)的开放图像组(group of picture,gop)随机接入点处的不同表示之间切换。当同一视频的两种不同表示的码率不同但空间分辨率相同,而它们的@mediastreamstructureid值相同时,可以在伴随关联rasl图像的cra图像处执行两种表示之间的切换,并且与cra图像处切换关联的rasl图像可以以可接受的质量解码,从而实现无缝切换。利用arc,@mediastreamstructureid特征也可以用于具有不同空间分辨率的各dash表示之间的切换。
129.各种方法有利于支持rpr/arc的基本技术,例如,图像分辨率列表的指示、dpb中的参考图像重采样的一些约束等。
130.支持rpr所需的技术的一个组成部分是指示(signal)码流中可以存在的图像分辨率的方法。在一些示例中,这可以通过使用sps中的图像分辨率列表更改图像分辨率的当前指示来解决,如下所示。
[0131][0132]
num_pic_size_in_luma_samples_minus1+1表示经译码视频序列中可以存在的以亮度样本为单位的图像大小(宽度和高度)的数量。
[0133]
pic_width_in_luma_samples[i]表示经译码视频序列中可以存在的经解码图像的以亮度样本为单位的第i个宽度。pic_width_in_luma_samples[i]不可以等于0,且可以为mincbsizey的整数倍。
[0134]
pic_height_in_luma_samples[i]表示经译码视频序列中可以存在的经解码图像的以亮度样本为单位的第i个高度。pic_height_in_luma_samples[i]不可以等于0,且可以为mincbsizey的整数倍。
[0135]
第15次jvet会议上讨论了支持rpr的指示图像大小和符合性窗口的另一种技术。指示(signaling)如下。
[0136]

在sps中指示最大图像大小(即,图像宽度和图像高度)
[0137]

在图像参数集(picture parameter set,pps)中指示图像大小
[0138]

将符合性窗口的当前指示从sps移动到pps。符合性窗口信息用于在准备图像输出的过程中裁剪经重建/经解码图像。裁剪后的图像大小是使用图像关联的符合性窗口裁剪图像后的图像大小。
[0139]
图像大小和符合性窗口的指示如下。
[0140][0141]
max_width_in_luma_samples表示码流符合性的要求为:此sps处于活动状态的任何图像的pic_width_in_luma_samples小于或等于max_width_in_luma_samples。
[0142]
max_height_in_luma_samples表示码流符合性的要求为:此sps处于活动状态的任何图像的pic_height_in_luma_samples小于或等于max_height_in_luma_samples。
[0143][0144][0145]
pic_width_in_luma_samples表示参考pps的每个经解码图像的以亮度样本为单位的宽度。pic_width_in_luma_samples不可以等于0,且可以为mincbsizey的整数倍。
[0146]
pic_height_in_luma_samples表示参考pps的每个经解码图像的以亮度样本为单位的高度,pic_height_in_luma_samples不可以等于0,且可以为mincbsizey的整数倍。
[0147]
码流符合性的要求为:宽度和高度为reference_pic_width_in_luma_samples和reference_pic_height_in_luma_samples的每个活动参考图像都满足以下所有条件:
[0148]

2*pic_width_in_luma_samples》=reference_pic_width_in_luma_samples
[0149]

2*pic_height_in_luma_samples》=reference_pic_height_in_luma_samples
[0150]

pic_width_in_luma_samples《=8*reference_pic_width_in_luma_samples
[0151]

pic_height_in_luma_samples《=8*reference_pic_height_in_luma_samples
[0152]
变量picwidthinctbsy、picheightinctbsy、picsizeinctbsy、picwidthinmincbsy、picheightinmincbsy、picsizeinmincbsy、picsizeinsamplesy、picwidthinsamplesc和picheightinsamplesc推导如下:
[0153]
picwidthinctbsy=ceil(pic_width_in_luma_samples
÷
ctbsizey)
ꢀꢀꢀꢀꢀꢀ
(1)
[0154]
picheightinctbsy=ceil(pic_height_in_luma_samples
÷
ctbsizey)
ꢀꢀꢀꢀꢀ
(2)
[0155]
picsizeinctbsy=picwidthinctbsy*picheightinctbsy
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)
[0156]
picwidthinmincbsy=pic_width_in_luma_samples/mincbsizey
ꢀꢀꢀꢀ
(4)
[0157]
picheightinmincbsy=pic_height_in_luma_samples/mincbsizey
ꢀꢀꢀꢀꢀꢀꢀ
(5)
[0158]
picsizeinmincbsy=picwidthinmincbsy*picheightinmincbsy
ꢀꢀꢀꢀꢀꢀꢀ
(6)
[0159]
picsizeinsamplesy=pic_width_in_luma_samples*pic_height_in_luma_samples
ꢀꢀꢀꢀꢀꢀ
(7)
[0160]
picwidthinsamplesc=pic_width_in_luma_samples/subwidthc
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8)
[0161]
picheightinsamplesc=pic_height_in_luma_samples/subheightc
ꢀꢀꢀꢀꢀꢀ
(9)
[0162]
conformance_window_flag=1表示符合性裁剪窗口偏移参数在pps中的下一个参数之后。conformance_window_flag=0表示符合性裁剪窗口偏移参数不存在。
[0163]
根据图像坐标中指定的用于输出的矩形区域,conf_win_left_offset、conf_win_right_offset、conf_win_top_offset和conf_win_bottom_offset表示从解码过程输出的参考pps的图像的样本。当conformance_window_flag=0时,conf_win_left_offset、conf_win_right_offset、conf_win_top_offset和conf_win_bottom_offset的值推断为0。
[0164]
符合性裁剪窗口包括具有水平图像坐标和垂直图像坐标的亮度样本,其中,水平图像坐标的范围为subwidthc*conf_win_left_offset到pic_width_in_luma_samples

(subwidthc*conf_win_right_offset+1)(包括端值),垂直图像坐标的范围为subheightc*conf_win_top_offset到pic_height_in_luma_samples

(subheightc*conf_win_bottom_offset+1)(包括端值)。
[0165]
subwidthc*(conf_win_left_offset+conf_win_right_offset)的值可以小于pic_width_in_luma_samples,subheightc*(conf_win_top_offset+conf_win_bottom_offset)的值可以小于pic_height_in_luma_samples。
[0166]
变量picoutputwidthl和picoutputheightl推导如下:
[0167]
picoutputwidthl=pic_width_in_luma_samples
–ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(10)
[0168]
subwidthc*(conf_win_right_offset+conf_win_left_offset)
[0169]
picoutputheightl=pic_height_in_pic_size_units
–ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(11)
[0170]
subheightc*(conf_win_bottom_offset+conf_win_top_offset)
[0171]
当chromaarraytype不等于0时,两个色度阵列的对应指定样本是具有图像坐标(x/subwidthc,y/subheightc)的样本,其中,(x,y)是指定亮度样本的图像坐标。
[0172]
注:符合性裁剪窗口偏移参数仅应用于输出。所有内部解码过程都应用于未裁剪的图像大小。
[0173]
pps中图像大小和符合性窗口的指示引入了以下问题。
[0174]

由于经译码视频序列(coded video sequence,cvs)中可以存在多个pps,因此两
个pps可以包括相同的图像大小指示,但包括不同的符合性窗口指示。这将导致参考不同pps的两个图像具有相同的图像大小,但具有不同的裁剪大小。
[0175]

为了支持rpr,当块的当前图像和参考图像具有不同的图像大小时,建议关闭几个译码工具来对块进行译码。但是,由于现在即使两个图像具有相同的图像大小,裁剪大小也可以不同,因此有必要根据裁剪大小进行额外的检查。
[0176]
本文公开了将具有相同图像大小的图像参数集约束为也具有相同符合性窗口大小(例如,裁剪窗口大小)的技术。通过保持具有相同图像大小的图像参数集的符合性窗口的大小相同,在启用参考图像重采样(reference picture resampling,rpr)时可以避免过于复杂的处理。因此,可以降低编码器和解码器侧的处理器、存储器和/或网络资源的利用率。因此,视频译码中的编码器/解码器(又名“编解码器”)相对于当前编解码器得到了改进。实际上,改进的视频译码过程在发送、接收和/或观看视频时提供了更好的用户体验。
[0177]
视频译码的可适性通常通过使用多层译码技术来支持。多层码流包括基本层(base layer,bl)和一个或多个增强层(enhancement layer,el)。可适性的示例包括空间可适性、质量/信噪比(signal-to-noise,snr)可适性、多视图可适性等。当使用的是多层译码技术时,图像或其一部分可以在以下情况下进行译码:(1)不使用参考图像,即,使用帧内预测,(2)参考同一层中的参考图像,即,使用帧间预测,或(3)参考其它一个或多个层中的参考图像,即,使用层间预测。用于当前图像的层间预测的参考图像称为层间参考图像(inter-layer reference picture,ilrp)。
[0178]
图6为基于层的预测600的一个示例的示意图。例如,在块压缩步骤105、块解码步骤113、运动估计组件221、运动补偿组件219、运动补偿组件321和/或运动补偿组件421处执行基于层的预测600以确定mv。基于层的预测600与单向帧间预测和/或双向帧间预测共存,但也在不同层中的图像之间执行。
[0179]
基于层的预测600应用于不同层中的图像611、612、613和614与图像615、616、617和618之间。在所示的示例中,图像611、612、613和614是层n+1 632的一部分,图像615、616、617和618是层n 631的一部分。层n 631和/或层n+1 632等层是一组图像,这些图像都与类似的大小、质量、分辨率、信噪比、能力等类似的特征值关联。在所示的示例中,与层n 631相比,层n+1 632与更大的图像大小关联。因此,在本示例中,层n+1 632中的图像611、612、613和614比层n 631中的图像615、616、617和618大(例如,高度和宽度更大,因此样本更多)。但是,这些图像可以通过其它特性划分为层n+1 632和层n 631。虽然只显示了两层:层n+1 632和层n 631,但一组图像可以根据关联的特征划分为任意数量的层。层n+1 632和层n 631也可以用层id表示。层id是与图像关联的数据项,并表示图像是所指示层的一部分。因此,图像611至618中的每个图像可以与对应的层id关联,以表示层n+1 632或层n 631中的哪个层包括对应的图像。
[0180]
不同层631和632中的图像611至618交替显示。因此,不同层631和632中的图像611至618可以共享相同的时间标识符(identifier,id),并且可以包括在同一au中。本文所使用的au是与用于从dpb输出的同一显示时间关联的一个或多个经译码图像组成的集合。例如,如果需要较小的图像,则解码器可以在当前显示时间解码并显示图像615,或者如果需要较大的图像,则解码器可以在当前显示时间解码并显示图像611。因此,高层n+1 632中的图像611至614包括与低层n 631中的对应图像615至618包括基本上相同的图像数据(尽管
图像大小不同)。具体地,图像611与图像615包括基本上相同的图像数据,图像612与图像616包括基本上相同的图像数据,以此类推。
[0181]
图像611至618可以参考同一层n 631或n+1 632中的其它图像611至618进行译码。参考同一层中的一个图像对另一个图像进行译码即为帧间预测623,帧间预测623包括单向帧间预测和/或双向帧间预测。帧间预测623由实线箭头表示。例如,图像613可以通过将层n+1 632中的图像611、612和/或614中的一个或两个图像作为参考的帧间预测623来译码,其中,单向帧间预测使用一个图像作为参考,和/或双向帧间预测使用两个图像作为参考。此外,图像617可以通过将层n 631中的图像615、616和/或618中的一个或两个图像作为参考的帧间预测623来译码,其中,单向帧间预测使用一个图像作为参考,和/或双向帧间预测使用两个图像作为参考。当在执行帧间预测623时,将一个图像作为同一层中另一个图像的参考时,该图像可以称为参考图像。例如,图像612可以是用于根据帧间预测623对图像613进行译码的参考图像。帧间预测623也可以被称为多层上下文中的层内预测。因此,帧间预测623是通过参考与当前图像不同的参考图像中的指示样本对当前图像的样本进行译码的机制,其中,参考图像和当前图像位于同一层中。
[0182]
图像611至618也可以通过参考不同层中的其它图像611至618进行译码。这个过程称为层间预测621,由虚线箭头表示。层间预测621是通过参考一个参考图像中的指示样本对当前图像的样本进行译码的机制,其中,当前图像和参考图像在不同的层中,因此具有不同的层id。例如,低层n 631中的图像可以作为对高层n+1 632中的对应图像进行译码的参考图像。在一个具体的示例中,图像611可以根据层间预测621通过参考图像615进行译码。在这种情况下,图像615被用作层间参考图像。层间参考图像是用于层间预测621的参考图像。在大多数情况下,对层间预测621进行了约束,使得当前图像(例如,图像611)只能使用同一au中包含的且位于低层的一个或多个层间参考图像,例如,图像615。当多层(例如,两层以上)可用时,层间预测621可以根据层级比当前图像低的多个层间参考图像对当前图像进行编码/解码。
[0183]
视频编码器可以使用基于层的预测600来通过帧间预测623和层间预测621的许多不同组合和/或排列对图像611至618进行编码。例如,图像615可以根据帧内预测进行译码。然后,通过将图像615作为参考图像,图像616至618可以根据帧间预测623进行译码。此外,通过将图像615作为层间参考图像,图像611可以根据层间预测621进行译码。然后,通过将图像611作为参考图像,图像612至614可以根据帧间预测623进行译码。因此,参考图像可以作为不同译码机制的单层参考图像和层间参考图像。通过根据低层n 631图像对高层n+1 632图像进行译码,高层n+1 632可以避免使用帧内预测,帧内预测的译码效率比帧间预测623和层间预测621的译码效率低得多。因此,译码效率低的帧内预测只限于最小/最低质量的图像,因此只限于对最少量的视频数据进行译码。用作参考图像和/或层间参考图像的图像可以在参考图像列表结构中包括的一个或多个参考图像列表的条目中指示。
[0184]
以前的h.26x视频编码系列已经支持根据用于单层译码的一个或多个档次(profile)实现一个或多个单独档次中的可适性。可适性视频编码(scalable video coding,svc)是avc/h.264的可扩展版本,支持空间可适性、时间可适性和质量可适性。对于svc,在el图像中的每个宏块(macroblock,mb)中指示了一个标志,以表示el mb是否使用低层中的并置块进行预测。基于并置块的预测可以包括纹理、运动矢量和/或译码模式。svc的
实现方式不能在其设计中直接重用未经修改的h.264/avc实现方式。svc el宏块语法和解码过程与h.264/avc语法和解码过程不同。
[0185]
可适性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)级实现的。
[0186]
需要说明的是,参考图像重采样和空间可适性特征都需要对参考图像或其一部分进行重采样。参考图像重采样可以在图像级或编码块级实现。然而,当rpr称为译码特征时,它是单层译码的特征。即便如此,从编解码器设计的角度来看,可以或甚至优选使用相同的重采样滤波器,以实现单层译码的rpr特征和多层译码的空间可适性特征。
[0187]
图7为单向帧间预测700的示例的示意图。单向帧间预测700可以用于确定在分割图像时创建的经编码块和/或经解码块的运动矢量。
[0188]
单向帧间预测700使用包括参考块731的参考帧730来预测当前帧710中的当前块711。如图所示,参考帧730可以在时间上位于当前帧710之后(例如,作为后一个参考帧),但在一些示例中,也可以在时间上位于当前帧710之前(例如,作为前一个参考帧)。当前帧710是在特定时间正在被编码/解码的示例性帧/图像。当前帧710包括当前块711中的一个对象,该对象与参考帧730的参考块731中的一个对象匹配。参考帧730是对当前帧710进行编码时用作参考的帧,参考块731是参考帧730中的一个块,该块包括的对象也包括在当前帧710的当前块711中。
[0189]
当前块711是译码过程中在指定点正在被编码/解码的任何译码单元。当采用仿射帧间预测模式时,当前块711可以是整个分割块,也可以是子块。当前帧710与参考帧730间隔一定时间距离(temporal distance,td)733。td 733表示视频序列中的当前帧710与参考帧730之间的时间量,测量单位可以是帧。当前块711的预测信息可以通过表示各帧之间的方向和时间距离的参考索引对参考帧730和/或参考块731进行参考。在td 733表示的时间段内,当前块711中的对象从当前帧710中的一个位置移动到参考帧730中的另一个位置(例如,参考块731的位置)。例如,该对象可以沿着运动路径(motion trajectory)713移动,该运动路径713表示对象随时间移动的方向。运动矢量735描述该对象在td 733内沿着运动路径713移动的方向和幅度。因此,经编码运动矢量735、参考块731和包括当前块711与参考块731之间差值的残差提供足够信息,这些信息足以重建当前块711并且在当前帧710中定位当前块711。
[0190]
图8为双向帧间预测800的示例的示意图。双向帧间预测800可以用于确定在分割图像时创建的经编码块和/或经解码块的运动矢量。
[0191]
双向帧间预测800类似于单向帧间预测700,但使用一对参考帧来预测当前帧810
中的当前块811。因此,当前帧810和当前块811分别基本上类似于当前帧710和当前块711。当前帧810在时间上位于在视频序列中当前帧810之前出现的前一个参考帧820与在视频序列中当前帧810之后出现的后一个参考帧830之间。前一个参考帧820和后一个参考帧830在其它方面基本上类似于参考帧730。
[0192]
当前块811与前一个参考帧820中的前一个参考块821以及后一个参考帧830中的后一个参考块831匹配。这种匹配表示在播放视频序列的过程中,一个对象沿着运动路径813从后一个参考块821的位置经由当前块811移动到后一个参考块831的位置。当前帧810与前一个参考帧820间隔一定的之前时间距离(td0)823,并与后一个参考帧830间隔一定的后一个时间距离(td1)833。td0 823表示视频序列中的前一个参考帧820与当前帧810之间的时间量,以帧为单位。td1 833表示视频序列中的当前帧810与后一个参考帧830之间的时间量,以帧为单位。因此,该对象在td0 823表示的时间段内沿着运动路径813从前一个参考块821移动到当前块811。该对象还在td1 833表示的时间段内沿着运动路径813从当前块811移动到后一个参考块831。当前块811的预测信息可以通过表示各帧之间的方向和时间距离的一对参考索引对前一个参考帧820和/或前一个参考块821以及后一个参考帧830和/或后一个参考块831进行参考。
[0193]
前一个运动矢量(mv0)825描述该对象在td0 823内(例如,在前一个参考帧820与当前帧810之间)沿着运动路径813移动的方向和幅度。后一个运动矢量(mv1)835描述该对象在td1 833内(例如,在当前帧810与后一个参考帧830之间)沿着运动路径813移动的方向和幅度。因此,在双向帧间预测800中,当前块811可以通过使用前一个参考块821和/或后一个参考块831、mv0 825和mv1 835进行译码和重建。
[0194]
在一个实施例中,帧间预测和/或双向帧间预测可以逐个样本(例如,逐个像素)而不是逐个块执行。也就是说,可以为当前块811中的每个样本确定指向前一个参考块821和/或后一个参考块831中的每个样本的运动矢量。在这些实施例中,图8中示出的运动矢量825和运动矢量835表示与当前块811、前一个参考块821和后一个参考块831中的多个样本对应的多个运动矢量。
[0195]
在融合模式和先进的运动矢量预测(advanced motion vector prediction,amvp)模式中,候选列表是通过按照候选列表确定模式定义的顺序将候选运动矢量添加到候选列表中生成的。这类候选运动矢量可以包括根据单向帧间预测700、双向帧间预测800或其组合生成的运动矢量。具体地,运动矢量是在相邻块进行编码时为这类块生成的。这类运动矢量被添加到当前块的候选列表中,而且当前块的运动矢量是从该候选列表中选择的。然后,运动矢量可以被指示为选定运动矢量在候选列表中的索引。解码器可以使用与编码器相同的过程构建候选列表,并可以根据指示的索引从候选列表中确定选定的运动矢量。因此,候选运动矢量包括根据单向帧间预测700和/或双向帧间预测800生成的运动矢量,具体取决于在编码这类相邻块时所使用的方法。
[0196]
图9示出了视频码流900。本文所使用的视频码流900也可以称为经译码的视频码流、码流或其变体。如图9所示,码流900包括序列参数集(sequence parameter set,sps)902、图像参数集(picture parameter set,pps)904、条带头906和图像数据908。
[0197]
sps 902包括图像序列(sequence of picture,sop)中的所有图像共用的数据。相反,pps 904包括整个图像共用的的数据。条带头906包括当前条带的信息,例如,条带类型、
将使用哪些参考图像等。sps 902和pps 904可以统称为参数集。sps 902、pps 904和条带头906是网络抽象层(network abstraction layer,nal)单元的类型。nal单元是一种语法结构,包括要遵循的数据类型(例如,经译码视频数据)的指示。nal单元分为视频编码层(video coding layer,vcl)和非vcl nal单元。vcl nal单元包括表示视频图像中样本值的数据,非vcl nal单元包括任何相关的附加信息,例如,参数集(可应用于大量vcl nal单元的重要标头数据)和补充增强信息(定时信息和其它补充数据,其可以增强解码视频信号的可用性,但不是解码视频图像中样本值所必需的)。本领域技术人员将理解,码流900在实际应用中可以包括其它参数和信息。
[0198]
图9的图像数据908包括与被编码或解码的图像或视频关联的数据。图像数据908可以简单地称为码流900中携带的有效载荷或数据。在一个实施例中,图像数据908包括cvs 914(或clvs),cvs 914包括多个图像910。cvs 914是视频码流900中的每个编码层视频序列(coded layer video sequence,clvs)的经译码视频序列。需要说明的是,当视频码流900包括单层时,cvs和clvs是相同的。cvs和clvs仅在视频码流900包括多层时不同。
[0199]
如图9所示,每个图像910的条带可以包括在其自己的vcl nal单元912中。cvs 914中的一组vcl nal单元912可以称为接入单元。
[0200]
图10示出了图像1010的分割技术1000。图像1010可以类似于图9中的任何图像910。如图所示,图像1010可以被分割为多个条带1012。条带是帧(例如图像)的空间上不同的区域,这个区域与同一帧中任何其它区域分开编码。虽然图10中示出了3个条带1012,但在实际应用中可以使用更多或更少的条带。每个条带1012可以被分割为多个块1014。图10中的块1014可以类似于图8中的当前块811、前一个参考块821和后一个参考块831。块1014可以表示cu。虽然图10中示出了4个块1014,但在实际应用中可以使用更多或更少的块。
[0201]
每个块1014可以被分割为多个样本1016(例如,像素)。在一个实施例中,每个块1014的大小是以亮度样本为单位测量的。虽然图10中示出了16个样本1016,但在实际应用中可以使用更多或更少的样本。
[0202]
在一个实施例中,符合性窗口1060应用于图像1010。如上所述,符合性窗口1060用于在准备图像输出的过程中裁剪、减小或以其它方式改变图像1010(例如,经重建/经解码图像)的大小。例如,解码器可以将符合性窗口1060应用于图像1010,以便在图像被输出显示给用户之前裁剪、修剪、缩小或以其它方式改变图像1010的大小。符合性窗口1060的大小是通过将符合性窗口上偏移1062、符合性窗口下偏移1064、符合性窗口左偏移1066以及符合性窗口右偏移1068应用于图像1010来确定的,以在输出之前减小图像1010的大小。也就是说,仅输出存在于符合性窗口1060中的图像1010的一部分。因此,图像1010是在输出之前被裁剪的。在一个实施例中,第一图像参数集和第二图像参数集参考相同的序列参数集,它们的图像宽度和图像高度具有相同值。因此,第一图像参数集和第二图像参数集的符合性窗口具有相同值。
[0203]
图11为由视频解码器(例如,视频解码器400)实现的解码方法1100的实施例。方法1100可以在从视频编码器(例如,视频编码器300)直接或间接接收到经解码码流之后执行。通过保持具有相同图像大小的图像参数集的符合性窗口的大小相同,方法1100改进了解码过程。因此,参考图像重采样(reference picture resampling,rpr)可以保持对整个cvs启用或打开。通过保持具有相同图像大小的图像参数集的符合性窗口大小一致,可以提高译
码效率。因此,实际上,编解码器的性能得到提高,用户体验更好。
[0204]
在步骤1102中,视频解码器接收参考相同序列参数集的第一图像参数集(例如,ppsa)和第二图像参数集(例如,ppsb)。当第一图像参数集和第二图像参数集的图像宽度和图像高度具有相同值时,第一图像参数集和第二图像参数集的符合性窗口具有相同值。在一个实施例中,图像宽度和图像高度是以亮度样本为单位测量的。
[0205]
在一个实施例中,图像宽度表示为pic_width_in_luma_samples。在一个实施例中,图像高度表示为pic_height_in_luma_samples。在一个实施例中,pic_width_in_luma_samples表示参考pps的每个经译码图像的以亮度样本为单位的宽度。在一个实施例中,pic_height_in_luma_samples表示参考pps的每个经解码图像的以亮度样本为单位的高度。
[0206]
在一个实施例中,符合性窗口包括共同表示符合性窗口大小的符合性窗口左偏移、符合性窗口右偏移、符合性窗口上偏移和符合性窗口下偏移。在一个实施例中,符合性窗口左偏移表示为pps_conf_win_left_offset。在一个实施例中,符合性窗口右偏移表示为pps_conf_win_right_offset。在一个实施例中,符合性窗口上偏移表示为pps_conf_win_top_offset。在一个实施例中,符合性窗口下偏移表示为pps_conf_win_bottom_offset。在一个实施例中,符合性窗口大小或值在pps中指示。
[0207]
在步骤1104中,视频解码器将符合性窗口应用于与第一图像参数集或第二图像参数集对应的当前图像。通过上述步骤,视频编码器将当前图像裁剪到符合性窗口的大小。
[0208]
在一个实施例中,所述方法还包括根据经重采样的参考图像,使用帧间预测对当前图像进行解码。在一个实施例中,所述方法还包括使用参考图像重采样(reference picture resampling,rps)对与当前图像对应的参考图像进行重采样。在一个实施例中,参考图像的重采样改变参考图像的分辨率。
[0209]
在一个实施例中,所述方法还包括根据当前图像的图像宽度、图像高度和符合性窗口以及当前图像的参考图像,确定是否启用双向光流(bi-direction optical flow,bdof)来解码所述图像。在一个实施例中,所述方法还包括根据当前图像的图像宽度、图像高度和符合性窗口以及当前图像的参考图像,确定是否启用解码器侧运动矢量修正(decoder-side motion vector refinement,dmvr)来解码所述图像。
[0210]
在一个实施例中,所述方法还包括在电子设备(例如,智能手机、平板电脑、笔记本电脑、个人计算机等)的显示器上显示使用当前块生成的图像。
[0211]
图12为由视频编码器(例如,视频编码器300)实现的对视频码流进行编码的方法1200的一个实施例。方法1200可以在图像(例如,来自视频)要编码到视频码流中并且接着发送到视频解码器(例如,视频解码器400)时执行。通过保持具有相同图像大小的图像参数集的符合性窗口的大小相同,方法1200改进了编码过程。因此,参考图像重采样(reference picture resampling,rpr)可以保持对整个cvs启用或打开。通过保持具有相同图像大小的图像参数集的符合性窗口大小一致,可以提高译码效率。因此,实际上,编解码器的性能得到提高,用户体验更好。
[0212]
在步骤1202中,视频编码器生成参考相同序列参数集的第一图像参数集和第二图像参数集。当第一图像参数集和第二图像参数集的图像宽度和图像高度具有相同值时,第一图像参数集和第二图像参数集的符合性窗口具有相同值。在一个实施例中,图像宽度和
图像高度是以亮度样本为单位测量的。
[0213]
在一个实施例中,图像宽度表示为pic_width_in_luma_samples。在一个实施例中,图像高度表示为pic_height_in_luma_samples。在一个实施例中,pic_width_in_luma_samples表示参考pps的每个经译码图像的以亮度样本为单位的宽度。在一个实施例中,pic_height_in_luma_samples表示参考pps的每个经解码图像的以亮度样本为单位的高度。
[0214]
在一个实施例中,符合性窗口包括共同表示符合性窗口大小的符合性窗口左偏移、符合性窗口右偏移、符合性窗口上偏移和符合性窗口下偏移。在一个实施例中,符合性窗口左偏移表示为pps_conf_win_left_offset。在一个实施例中,符合性窗口右偏移表示为pps_conf_win_right_offset。在一个实施例中,符合性窗口上偏移表示为pps_conf_win_top_offset。在一个实施例中,符合性窗口下偏移表示为pps_conf_win_bottom_offset。在一个实施例中,符合性窗口大小或值在pps中指示。
[0215]
在步骤1204中,视频编码器将第一图像参数集和第二图像参数集编码到视频码流中。在步骤1206中,视频编码器存储视频码流,其中,视频码流用于发送给视频解码器。在一个实施例中,视频编码器向视频解码器发送包括第一图像参数集和第二图像参数集的视频码流。
[0216]
在一个实施例中,提供了一种用于对视频码流进行编码的方法。所述码流包括多个参数集和多个图像。所述多个图像中的每个图像包括多个条带。所述多个条带中的每个条带包括多个编码块。所述方法包括生成参数集parameterseta并将其写入包括信息的码流中,其中,所述信息包括图像大小picsizea和符合性窗口confwina。所述参数集可以是图像参数集(picture parameter set,pps)。所述方法还包括生成另一个参数集parametersetb并将其写入包括信息的码流中,其中,所述信息包括图像大小picsizeb和符合性窗口confwinb。所述参数集可以是图像参数集(picture parameter set,pps)。所述方法还包括:当parameterseta中的picsizea的值和parametersetb中的picsizeb的值相等时,约束parameterseta中的符合性窗口confwina的值和parametersetb中的符合性窗口confwinb的值相等;当parameterseta中的confwina的值和parametersetb中的confwinb值相等时,约束parameterseta中的图像大小picsizea的值和parametersetb中的picsizeb的值相等。所述方法还包括对所述码流进行编码。
[0217]
在一个实施例中,提供了一种用于对视频码流进行解码的方法。所述码流包括多个参数集和多个图像。所述多个图像中的每个图像包括多个条带。所述多个条带中的每个条带包括多个编码块。所述方法包括解析参数集,以获取与当前图像currpic关联的图像大小和符合性窗口大小。上述获取的信息用于推导所述当前图像的图像大小和裁剪后的大小。所述方法还包括解析另一个参数集,以获取与参考图像refpic关联的图像大小和符合性窗口大小。上述获取的信息用于推导所述参考图像的图像大小和裁剪后的大小。所述方法还包括:确定refpic作为参考图像,以对位于所述当前图像currpic中的当前块curblock进行解码;根据所述当前图像和所述参考图像的图像大小和符合性窗口,确定是否使用或启用双向光流(bi-direction optical flow,bdof)对所述当前编码块进行解码;对所述当前块进行解码。
[0218]
在一个实施例中,当所述当前图像和所述参考图像的图像大小和符合性窗口不同
时,不使用或禁用bdof对所述当前编码块进行解码。
[0219]
在一个实施例中,提供了一种用于对视频码流进行解码的方法。所述码流包括多个参数集和多个图像。所述多个图像中的每个图像包括多个条带。所述多个条带中的每个条带包括多个编码块。所述方法包括解析参数集,以获取与当前图像currpic关联的图像大小和符合性窗口大小。上述获取的信息用于推导所述当前图像的图像大小和裁剪后的大小。所述方法还包括解析另一个参数集,以获取与参考图像refpic关联的图像大小和符合性窗口大小。上述获取的信息用于推导所述参考图像的图像大小和裁剪后的大小。所述方法还包括:确定refpic作为参考图像,以对位于所述当前图像currpic中的当前块curblock进行解码;根据所述当前图像和所述参考图像的图像大小和符合性窗口,确定是否使用或启用编码器侧运动矢量修正(decoder-side motion vector refinement,dmvr)对所述当前编码块进行解码;对所述当前块进行解码。
[0220]
在一个实施例中,当所述当前图像和所述参考图像的图像大小和符合性窗口不同时,不使用或禁用dmvr对所述当前编码块进行解码。
[0221]
在一个实施例中,提供了一种用于对视频码流进行编码的方法。在一个实施例中,所述码流包括多个参数集和多个图像。所述多个图像中的每个图像包括多个条带。所述多个条带中的每个条带包括多个编码块。所述方法包括生成参数集,其中,所述参数集包括与当前图像currpic关联的图像大小和符合性窗口大小。上述信息用于推导所述当前图像的图像大小和裁剪后的大小。所述方法还包括生成另一个参数集,其中,所述另一个参数集包括与参考图像refpic关联的图像大小和符合性窗口大小。上述获取的信息用于推导所述参考图像的图像大小和裁剪后的大小。所述方法还包括:当所述当前图像和所述参考图像的图像大小和符合性窗口不同时,约束所述参考图像refpic不可以用作所有条带的时间运动矢量预测(temporal motion vector prediction,tmvp)的并置参考图像,其中,所述所有条带属于所述当前图像currpic。也就是说,约束如果所述参考图像refpic是用于对用于tmvp的所述当前图像currpic中的块进行译码的并置参考图像,则所述当前图像和所述参考图像的图像大小和符合性窗口可以相同。所述方法还包括对所述码流进行解码。
[0222]
在一个实施例中,提供了一种用于对视频码流进行解码的方法。所述码流包括多个参数集和多个图像。所述多个图像中的每个图像包括多个条带。所述多个条带中的每个条带包括多个编码块。所述方法包括解析参数集,以获取与当前图像currpic关联的图像大小和符合性窗口大小。上述获取的信息用于推导所述当前图像的图像大小和裁剪后的大小。所述方法还包括解析另一个参数集,以获取与参考图像refpic关联的图像大小和符合性窗口大小。上述获取的信息用于推导所述参考图像的图像大小和裁剪后的大小。所述方法还包括:确定refpic作为对位于所述当前图像currpic中的当前块curblock进行解码的参考图像;解析语法元素(slice_dvmr_bdof_enable_flag),以确定是否使用或启用解码器侧运动矢量修正(decoder-side motion vector refinement,dmvr)和/或双向光流(bi-direction optical flow,bdof)对所述当前编码图像和/或条带进行解码。所述方法还包括:当parameterseta中的符合性窗口confwina和parametersetb中的符合性窗口confwinb不相同或parameterseta中的picsizea的值和parametersetb中的picsizeb的值不相同时,约束语法元素(slice_dvmr_bdof_enable_flag)的值等于0。
[0223]
以下描述关于基础文本,即vvc工作草案。也就是说,只描述了增量,而下文未提到
的基础文本中的文本按原样适用。删除的文本用斜体表示,添加的文本用粗体表示。
[0224]
提供了序列参数集的语法和语义。
[0225][0226]
max_width_in_luma_samples表示码流符合性的要求为:此sps处于活动状态的任何图像的pic_width_in_luma_samples小于或等于max_width_in_luma_samples。
[0227]
max_height_in_luma_samples表示码流符合性的要求为:此sps处于活动状态的任何图像的pic_height_in_luma_samples小于或等于max_height_in_luma_samples。
[0228]
提供了图像参数集的语法和语义。
[0229][0230][0231]
pic_width_in_luma_samples表示参考pps的每个经解码图像的以亮度样本为单位的宽度。pic_width_in_luma_samples不可以等于0,且可以为mincbsizey的整数倍。
[0232]
pic_height_in_luma_samples表示参考pps的每个经解码图像的以亮度样本为单位的高度,pic_height_in_luma_samples不可以等于0,且可以为mincbsizey的整数倍。
[0233]
码流符合性的要求为:宽度和高度为reference_pic_width_in_luma_samples和reference_pic_height_in_luma_samples的每个活动参考图像都满足以下所有条件:
[0234]

2*pic_width_in_luma_samples》=reference_pic_width_in_luma_samples
[0235]

2*pic_height_in_luma_samples》=reference_pic_height_in_luma_samples
[0236]

pic_width_in_luma_samples《=8*reference_pic_width_in_luma_samples
[0237]

pic_height_in_luma_samples《=8*reference_pic_height_in_luma_samples
[0238]
变量picwidthinctbsy、picheightinctbsy、picsizeinctbsy、picwidthinmincbsy、picheightinmincbsy、picsizeinmincbsy、picsizeinsamplesy、picwidthinsamplesc和picheightinsamplesc推导如下:
[0239]
picwidthinctbsy=ceil(pic_width_in_luma_samples
÷
ctbsizey)
ꢀꢀꢀꢀꢀ
(1)
[0240]
picheightinctbsy=ceil(pic_height_in_luma_samples
÷
ctbsizey)
ꢀꢀꢀꢀ
(2)
[0241]
picsizeinctbsy=picwidthinctbsy*picheightinctbsy
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)
[0242]
picwidthinmincbsy=pic_width_in_luma_samples/mincbsizey
ꢀꢀꢀꢀꢀ
(4)
[0243]
picheightinmincbsy=pic_height_in_luma_samples/mincbsizey
ꢀꢀꢀ
(5)
[0244]
picsizeinmincbsy=picwidthinmincbsy*picheightinmincbsy
ꢀꢀꢀꢀꢀꢀꢀꢀ
(6)
[0245]
picsizeinsamplesy=pic_width_in_luma_samples*pic_height_in_luma_samples
ꢀꢀꢀꢀꢀꢀ
(7)
[0246]
picwidthinsamplesc=pic_width_in_luma_samples/subwidthc
ꢀꢀꢀꢀꢀꢀ
(8)
[0247]
picheightinsamplesc=pic_height_in_luma_samples/subheightc
ꢀꢀꢀꢀꢀ
(9)
[0248]
conformance_window_flag=1表示符合性裁剪窗口偏移参数在pps中的下一个参数之后。conformance_window_flag=0表示符合性裁剪窗口偏移参数不存在。
[0249]
根据图像坐标中指定的用于输出的矩形区域,conf_win_left_offset、conf_win_right_offset、conf_win_top_offset和conf_win_bottom_offset表示从解码过程输出的参考pps的图像的样本。当conformance_window_flag=0时,conf_win_left_offset、conf_win_right_offset、conf_win_top_offset和conf_win_bottom_offset的值推断为0。
[0250]
符合性裁剪窗口包括具有水平图像坐标和垂直图像坐标的亮度样本,其中,水平图像坐标的范围为subwidthc*conf_win_left_offset到pic_width_in_luma_samples

(subwidthc*conf_win_right_offset+1),垂直图像坐标的范围为subheightc*conf_win_top_offset到pic_height_in_luma_samples

(subheightc*conf_win_bottom_offset+1)(包括端值)。
[0251]
subwidthc*(conf_win_left_offset+conf_win_right_offset)的值可以小于pic_width_in_luma_samples,subheightc*(conf_win_top_offset+conf_win_bottom_offset)的值可以小于pic_height_in_luma_samples。
[0252]
变量picoutputwidthl和picoutputheightl推导如下:
[0253]
picoutputwidthl=pic_width_in_luma_samples
–ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(10)
[0254]
subwidthc*(conf_win_right_offset+conf_win_left_offset)
[0255]
picoutputheightl=pic_height_in_pic_size_units
–ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(11)
[0256]
subheightc*(conf_win_bottom_offset+conf_win_top_offset)
[0257]
当chromaarraytype不等于0时,两个色度阵列的对应指定样本是具有图像坐标(x/subwidthc,y/subheightc)的样本,其中,(x,y)是指定亮度样本的图像坐标。
[0258]
注:符合性裁剪窗口偏移参数仅应用于输出。所有内部解码过程都应用于未裁剪
的图像大小。
[0259]
设pps_a和pps_b是参考相同序列参数集的图像参数集,码流符合性要求为:如果pps_a和pps_b中的pic_width_in_luma_samples具有相同值且pps_a和pps_b中的pic_height_in_luma_samples具有相同值,则以下所有条件都可以为真:
[0260]
pps_a和pps_b中的conf_win_left_offset具有相同值,
[0261]
pps_a和pps_b中的conf_win_right_offset具有相同值,
[0262]
pps_a和pps_b中的conf_win_top_offset具有相同值,
[0263]
pps_a和pps_b中的conf_win_bottom_offset具有相同值。
[0264]
collocated_ref_idx的语义中添加了以下约束:
[0265]
collocated_ref_idx表示用于时间运动矢量预测的并置图像的参考索引。
[0266]
当slice_type等于p或slice_type等于b且collocated_from_l0_flag等于1时,collocated_ref_idx参考列表0中的图像,并且collocated_ref_idx的取值范围可以为0到numrefidxactive[0]

1(包括端值)。
[0267]
当slice_type=b且collocated_from_l0_flag=0时,collocated_ref_idx参考列表1中的图像,并且collocated_ref_idx的取值范围可以为0到numrefidxactive[1]

1(包括端值)。
[0268]
当collocated_ref_idx不存在时,collocated_ref_idx的值推断为0。
[0269]
码流符合性的要求为:由collocated_ref_idx参考的图像对于经译码图像的所有条带都可以相同。
[0270]
码流符合性的要求为:由collocated_ref_idx参考的参考图像的分辨率与当前图像的分辨率可以相同。
[0271]
码流符合性的要求为:由collocated_ref_idx参考的参考图像的图像大小和符合性窗口与当前图像的图像大小和符合性窗口可以相同。
[0272]
修改以下将dmvrflag设置为1的条件:
[0273]

当以下所有条件为真时,dmvrflag设置为1:
[0274]

sps_dmvr_enabled_flag等于1,
[0275]

general_merge_flag[xcb][ycb]等于1,
[0276]

predflagl0[0][0]和predflagl1[0][0]均等于1,
[0277]

mmvd_merge_flag[xcb][ycb]等于0,
[0278]

diffpicordercnt(currpic,refpiclist[0][refidxl0])等于diffpicordercnt(refpiclist[1][refidxl1],currpic),
[0279]

bcwidx[xcb][ycb]等于0,
[0280]

luma_weight_l0_flag[refidxl0]和luma_weight_l1_flag[refidxl1]均等于0,
[0281]

cbwidth大于或等于8,
[0282]

cbheight大于或等于8,
[0283]

cbheight*cbwidth大于或等于128,
[0284]

当x为0或1时,与refidxlx关联的参考图像refpiclx的pic_width_in_luma_samples和pic_height_in_luma_samples分别等于当前图像的pic_width_in_luma_samples和pic_height_in_luma_samples。
[0285]

当x为0或1时,与refidxlx关联的参考图像refpiclx的pic_width_in_luma_samples、pic_height_in_luma_samples、conf_win_left_offset、conf_win_right_offset、conf_win_top_offset和conf_win_bottom_offset分别等于当前图像的pic_width_in_luma_samples、pic_height_in_luma_samples、conf_win_left_offset、conf_win_right_offset、conf_win_top_offset和conf_win_bottom_offset。
[0286]
修改以下将dmvrflag设置为1的条件:
[0287]

如果以下所有条件为真,则bdofflag设置为真(true):
[0288]

sps_bdof_enabled_flag等于1,
[0289]

predflagl0[xsbidx][ysbidx]和predflagl1[xsbidx][ysbidx]均等于1,
[0290]

diffpicordercnt(currpic,refpiclist[0][refidxl0])*diffpicordercnt(currpic,refpiclist[1][refidxl1])小于0,
[0291]

motionmodelidc[xcb][ycb]等于0,
[0292]

merge_subblock_flag[xcb][ycb]等于0,
[0293]

sym_mvd_flag[xcb][ycb]等于0,
[0294]

bcwidx[xcb][ycb]等于0,
[0295]

luma_weight_l0_flag[refidxl0]和luma_weight_l1_flag[refidxl1]均等于0,
[0296]

cbheight大于或等于8,
[0297]

当x为0或1时,与refidxlx关联的参考图像refpiclx的pic_width_in_luma_samples和pic_height_in_luma_samples分别等于当前图像的pic_width_in_luma_samples和pic_height_in_luma_samples。
[0298]

当x为0或1时,与refidxlx关联的参考图像refpiclx的pic_width_in_luma_samples、pic_height_in_luma_samples、conf_win_left_offset、conf_win_right_offset、conf_win_top_offset和conf_win_bottom_offset分别等于当前图像的pic_width_in_luma_samples、pic_height_in_luma_samples、conf_win_left_offset、conf_win_right_offset、conf_win_top_offset和conf_win_bottom_offset。
[0299]

cidx等于0。
[0300]
图13为本发明实施例提供的视频译码设备1300(例如,视频编码器20或视频编码器30)的示意图。视频译码设备1300适用于实现本文所述的所公开实施例。视频译码设备1300包括用于接收数据的入端口1310和接收器单元(receiver unit,rx)1320;用于处理数据的处理器、逻辑单元或中央处理单元(central processing unit,cpu)1330;用于发送数据的发送器单元(transmitter unit,tx)1340和出端口1350;以及用于存储数据的存储器1360。视频译码设备1300还可以包括耦合到入端口1310、接收器单元1320、发送器单元1340和出端口1350的光电(optical-to-electrical,oe)组件和电光(electrical-to-optical,eo)组件,用于光或电信号的出或入。
[0301]
处理器1330由硬件和软件实现。处理器1330可以实现为一个或多个cpu芯片、核心(例如,作为多核处理器)、现场可编程门阵列(field-programmable gate array,fpga)、专用集成电路(application specific integrated circuit,asic)和数字信号处理器(digital signal processor,dsp)。处理器1330与入端口1310、接收器单元1320、发送器单元1340、出端口1350和存储器1360通信。处理器1330包括译码模块1370。译码模块1370实现
上文所公开的实施例。例如,译码模块1370执行、处理、准备或提供各种编解码功能。因此,包括译码模块1370为视频译码设备1300的功能提供了实质性改进,并且实现了视频译码设备1300到不同状态的转换。或者,以存储在存储器1360中并由处理器1330执行的指令来实现译码模块1370。
[0302]
视频译码设备1300还可以包括用于向用户和从用户发送数据的输入和/或输出(input/output,i/o)设备1380。i/o设备1380可以包括输出设备,例如显示视频数据的显示器、输出音频数据的扬声器等。i/o设备1380还可以包括键盘、鼠标、轨迹球等输入设备和/或与上述输出设备进行交互的对应接口。
[0303]
存储器1360包括一个或多个磁盘、磁带驱动器和固态驱动器,并且可用作溢出数据存储设备,以在选择执行程序时存储这些程序以及存储程序执行期间读取的指令和数据。存储器1360可以是易失性和/或非易失性的,并且可以是只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、三态内容寻址存储器(ternary content-addressable memory,tcam)和/或静态随机存取存储器(static random-access memory,sram)。
[0304]
图14为译码模块1400的实施例的示意图。在一个实施例中,译码模块1400在视频译码设备1402(例如,视频编码器20或视频解码器30)中实现。视频译码设备1402包括接收模块1401。接收模块1401用于接收图像进行编码或接收码流进行解码。视频译码设备1402包括耦合到接收模块1401的发送模块1407。发送模块1407用于将向解码器发送码流或向显示模块(例如,i/o设备1380中的一个)发送经解码图像。
[0305]
视频译码设备1402包括存储模块1403。存储模块1403耦合到接收模块1401或发送模块1407中的至少一个。存储模块1403用于存储指令。视频译码设备1402包括处理模块1405。处理模块1405耦合到存储模块1403。处理模块1405用于执行存储在存储模块1403中的指令以执行本文公开的方法。
[0306]
还应当理解,本文中阐述的示例性方法的步骤不一定需要按照所描述的顺序执行,并且这些方法的步骤的顺序应当理解为仅仅是示例性的。同样地,在与本发明各种实施例相一致的方法中,这些方法可以包括其它步骤,并且某些步骤可以省略或合并。
[0307]
虽然本发明中已提供若干实施例,但应理解,在不脱离本发明的精神或范围的情况下,本发明所公开的系统和方法可以以许多其它特定形式来体现。本发明的示例应被视为说明性而非限制性的,且本发明并不限于本文本所给出的细节。例如,各种元件或组件可以在另一系统中组合或合并,或者某些特征可以省略或不实现。
[0308]
此外,在不脱离本发明的范围的情况下,各种实施例中描述和说明为离散或单独的技术、系统、子系统和方法可以与其它系统、模块、技术或方法进行组合或合并。展示或论述为彼此耦合或直接耦合或互相通信的其它项可以采用电方式、机械方式或其它方式经由某一接口、设备或中间组件间接地耦合或通信。其它变化、替代和改变的示例可以由本领域的技术人员在不脱离本文精神和所公开的范围的情况下确定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1