一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

在多层视频码流中支持在接入单元内包括混合IRAP图像和非IRAP图像的制作方法

2022-04-30 15:47:08 来源:中国专利 TAG:

在多层视频码流中支持在接入单元内包括混合irap图像和非irap图像
1.相关申请案交叉申请
2.本专利申请要求由王业奎于2019年9月24日提交的、发明名称为“在多层视频码流中支持在接入单元内包括混合rap图像和非irap图像(support of mixed rap and non-irap pictures within an access unit in multiple-layer video bitstreams)”的申请号为62/905,141的美国临时专利申请的权益,其内容通过引用的方式并入本技术中。
技术领域
3.本发明大体上涉及视频译码中的多层视频码流。更具体地,本发明涉及支持包括帧内随机接入点(intra random access point,irap)图像和非irap图像的多层视频码流。


背景技术:

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


技术实现要素:

5.第一方面涉及一种视频解码器实现的解码方法,包括:所述视频解码器接收码流,所述码流包括序列参数集(sequence parameter set,sps)和参考所述sps的标头,其中,所述sps包括第一标志,所述标头包括第二标志、图像顺序编号(picture order count,poc)最高有效位(most significant bit,msb)值的长度的指示符和所述poc msb值,其中,所述第一标志的值表示所述第二标志在所述标头中存在,所述第二标志的值表示所述poc msb值在所述标头中存在;所述视频解码器根据所述poc msb值确定poc值;所述视频解码器根据所述poc值从所述码流中标识图像;所述视频解码器对所述图像进行解码,以获得解码图像。
6.所述方法提供了当同一接入单元(access unit,au)同时包括irap图像和非irap图像时,简化多层视频译码中的图像顺序编号(picture order count,poc)推导的技术。在单层视频译码中,当遇到irap图像时,poc最高有效位(most significant bit,msb)值将重置。在同一au在不同层中同时包括irap图像和非irap图像的多层视频编码中,当遇到irap图像时重置poc msb值将导致irap图像和非irap图像具有不同的poc msb值,这可能会导致译码错误。为了解决这个问题,不重置irap图像的poc msb值,而是从码流中获取irap图像
的poc msb值和irap图像的poc msb长度。也就是说,irap图像的poc msb值和irap图像的poc msb长度在码流中指示。这确保了同一au中irap图像的poc msb值和非irap图像的poc msb值保持相同,从而消除了潜在的译码错误。因此,视频译码中的编码器/解码器(又称为编解码器)相对于现有的编解码器有所改进。实际上,改进的视频译码过程在发送、接收和/或观看视频时为用户提供更好的体验。
7.可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述第一标志包括指定为sps_poc_msb_cycle_flag的poc msb标志。
8.可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述第一标志的所述值为1。
9.可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述第二标志包括另一个poc msb标志,并指定为ph_poc_msb_cycle_present_flag。
10.可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述第二标志的所述值为1。
11.可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述poc值是通过级联所述poc msb值和poc最低有效位(least significant bit,lsb)值来确定的。
12.可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述第二标志为图像级别标志。
13.可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述长度的所述指示符加1表示所述poc msb的所述长度,以比特为单位。
14.可选地,根据上述任一方面,在所述方面的另一种实现方式中,在电子设备的显示器上显示所述解码图像。
15.第二方面涉及一种视频编码器实现的编码方法,所述方法包括:所述视频编码器将序列参数集(sequence parameter set,sps)中的第一标志设置为一个值,以表示第二标志在参考所述sps的标头中存在;所述视频编码器在所述sps中提供所述标头中的图像顺序编号(picture order count,poc)最高有效位(most significant bit,msb)值的长度的指示符;所述视频编码器将所述标头中的所述第二标志设置为一个值,以表示所述poc msb值在所述标头中存在;所述视频编码器将所述sps和所述标头编码到码流中;所述视频编码器存储所述码流,用于传输到视频解码器。
16.所述方法提供了当同一接入单元(access unit,au)同时包括irap图像和非irap图像时,简化多层视频译码中的图像顺序编号(picture order count,poc)推导的技术。在单层视频译码中,当遇到irap图像时,poc最高有效位(most significant bit,msb)值将重置。在同一au在不同层中同时包括irap图像和非irap图像的多层视频编码中,当遇到irap图像时重置poc msb值将导致irap图像和非irap图像具有不同的poc msb值,这可能会导致译码错误。为了解决这个问题,不重置irap图像的poc msb值,而是从码流中获取irap图像的poc msb值和irap图像的poc msb长度。也就是说,irap图像的poc msb值和irap图像的poc msb长度在码流中指示。这确保了同一au中irap图像的poc msb值和非irap图像的poc msb值保持相同,从而消除了潜在的译码错误。因此,视频译码中的编码器/解码器(又称为编解码器)相对于现有的编解码器有所改进。实际上,改进的视频译码过程在发送、接收和/或观看视频时为用户提供更好的体验。
17.可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述第一标志包括指定为sps_poc_msb_cycle_flag的poc msb标志,所述第一标志的所述值为1。
18.可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述第二标志包括另一个poc msb标志,并指定为ph_poc_msb_cycle_present_flag,所述第二标志的所述值为1。
19.可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述poc值是通过将所述poc msb值与poc最低有效位(least significant bit,lsb)值相加来确定的,所述第二标志是图像级别标志。
20.第三方面涉及解码设备,包括:接收器,所述接收器用于接收码流,所述码流包括包括第一标志的序列参数集(sequence parameter set,sps),并且当图像顺序编号(picture order count,poc)最高有效位(most significant bit,msb)值在参考所述sps的标头中存在时,所述码流包括所述poc msb值的长度的指示符;耦合到所述接收器的存储器,所述存储器存储指令;耦合到所述存储器的处理器,所述处理器用于执行所述指令,以使所述解码设备执行以下操作:根据所述第一标志的值,确定第二标志在参考所述sps的所述标头中是否存在;当所述第二标志存在时,根据所述第二标志的值确定所述poc msb值在所述标头中是否存在;当所述poc msb值存在时,根据所述poc msb值确定poc值;根据所述poc值从所述码流中标识图像;对所述图像进行解码,以获得解码图像
21.所述解码设备提供了当同一接入单元(access unit,au)同时包括irap图像和非irap图像时,简化多层视频译码中的图像顺序编号(picture order count,poc)推导的技术。在单层视频译码中,当遇到irap图像时,poc最高有效位(most significant bit,msb)值将重置。在同一au在不同层中同时包括irap图像和非irap图像的多层视频编码中,当遇到irap图像时重置poc msb值将导致irap图像和非irap图像具有不同的poc msb值,这可能会导致译码错误。为了解决这个问题,不重置irap图像的poc msb值,而是从码流中获取irap图像的poc msb值和irap图像的poc msb长度。也就是说,irap图像的poc msb值和irap图像的poc msb长度在码流中指示。这确保了同一au中irap图像的poc msb值和非irap图像的poc msb值保持相同,从而消除了潜在的译码错误。因此,视频译码中的编码器/解码器(又称为编解码器)相对于现有的编解码器有所改进。实际上,改进的视频译码过程在发送、接收和/或观看视频时为用户提供更好的体验。
22.可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述第一标志包括指定为sps_poc_msb_cycle_flag的poc msb标志。
23.可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述第二标志包括另一个poc msb标志,并指定为ph_poc_msb_cycle_present_flag。
24.可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述第二标志为图像级别标志。
25.第四方面涉及一种编码设备,包括:包括指令的存储器;耦合到所述存储器的处理器,所述处理器用于执行所述指令,以使所述编码设备执行以下操作:将序列参数集(sequence parameter set,sps)中的第一标志设置为一个值,以表示第二标志在参考所述sps的标头中存在;当所述sps中图像顺序编号(picture order count,poc)最高有效位(most significant bit,msb)值在参考所述sps的所述标头中存在时,提供所述poc msb值
的长度的指示符;将所述第二标志设置为一个值,以表示所述poc msb值在所述标头中存在;将所述sps和所述标头编码到码流中;耦合到所述处理器的发送器,所述发送器用于向视频解码器发送所述码流。
26.所述编码设备提供了当同一接入单元(access unit,au)同时包括irap图像和非irap图像时,简化多层视频译码中的图像顺序编号(picture order count,poc)推导的技术。在单层视频译码中,当遇到irap图像时,poc最高有效位(most significant bit,msb)值将重置。在同一au在不同层中同时包括irap图像和非irap图像的多层视频编码中,当遇到irap图像时重置poc msb值将导致irap图像和非irap图像具有不同的poc msb值,这可能会导致译码错误。为了解决这个问题,不重置irap图像的poc msb值,而是从码流中获取irap图像的poc msb值和irap图像的poc msb长度。也就是说,irap图像的poc msb值和irap图像的poc msb长度在码流中指示。这确保了同一au中irap图像的poc msb值和非irap图像的poc msb值保持相同,从而消除了潜在的译码错误。因此,视频译码中的编码器/解码器(又称为编解码器)相对于现有的编解码器有所改进。实际上,改进的视频译码过程在发送、接收和/或观看视频时为用户提供更好的体验。
27.可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述第一标志包括指定为sps_poc_msb_cycle_flag的poc msb标志,所述第二标志包括另一个poc msb标志,并指定为ph_poc_msb_cycle_present_flag。
28.可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述第二标志为图像级别标志。
29.第五方面涉及一种译码装置。所述译码装置包括:接收器,用于接收用于编码的图像或接收用于解码的码流;耦合到所述接收器的发送器,所述发送器用于将所述码流发送到解码器或将解码图像发送到显示器;耦合到所述接收器和所述发送器中的至少一个的存储器,所述存储器用于存储指令;耦合到所述存储器的处理器,所述处理器用于执行存储在所述存储器中的所述指令,以执行本文公开的任一方法。
30.所述译码装置提供了当同一接入单元(access unit,au)同时包括irap图像和非irap图像时,简化多层视频译码中的图像顺序编号(picture order count,poc)推导的技术。在单层视频译码中,当遇到irap图像时,poc最高有效位(most significant bit,msb)值将重置。在同一au在不同层中同时包括irap图像和非irap图像的多层视频编码中,当遇到irap图像时重置poc msb值将导致irap图像和非irap图像具有不同的poc msb值,这可能会导致译码错误。为了解决这个问题,不重置irap图像的poc msb值,而是从码流中获取irap图像的poc msb值和irap图像的poc msb长度。也就是说,irap图像的poc msb值和irap图像的poc msb长度在码流中指示。这确保了同一au中irap图像的poc msb值和非irap图像的poc msb值保持相同,从而消除了潜在的译码错误。因此,视频译码中的编码器/解码器(又称为编解码器)相对于现有的编解码器有所改进。实际上,改进的视频译码过程在发送、接收和/或观看视频时为用户提供更好的体验。
31.可选地,根据上述任一方面,在所述方面的另一种实现方式中,包括用于显示所述解码图像的显示器。
32.第六方面涉及一种系统。所述系统包括编码器;与所述编码器通信的解码器,其中,所述编码器或所述解码器包括本文公开的解码设备、编码设备或译码装置。
33.所述系统提供了当同一接入单元(access unit,au)同时包括irap图像和非irap图像时,简化多层视频译码中的图像顺序编号(picture order count,poc)推导的技术。在单层视频译码中,当遇到irap图像时,poc最高有效位(most significant bit,msb)值将重置。在同一au在不同层中同时包括irap图像和非irap图像的多层视频编码中,当遇到irap图像时重置poc msb值将导致irap图像和非irap图像具有不同的poc msb值,这可能会导致译码错误。为了解决这个问题,不重置irap图像的poc msb值,而是从码流中获取irap图像的poc msb值和irap图像的poc msb长度。也就是说,irap图像的poc msb值和irap图像的poc msb长度在码流中指示。这确保了同一au中irap图像的poc msb值和非irap图像的poc msb值保持相同,从而消除了潜在的译码错误。因此,视频译码中的编码器/解码器(又称为编解码器)相对于现有的编解码器有所改进。实际上,改进的视频译码过程在发送、接收和/或观看视频时为用户提供更好的体验。
34.第七方面涉及一种译码模块。所述译码模块包括:接收模块,用于接收用于编码的图像或接收用于解码的码流;耦合到所述接收模块的发送模块,所述发送模块用于将所述码流发送到解码模块或将解码图像发送到显示模块;耦合到所述接收模块或所述发送模块中的至少一个的存储模块,所述存储模块用于存储指令;耦合到所述存储模块的处理模块,所述处理模块用于执行存储在所述存储模块中的所述指令,以执行本文公开的任一方法。
35.所述译码模块提供了当同一接入单元(access unit,au)同时包括irap图像和非irap图像时,简化多层视频译码中的图像顺序编号(picture order count,poc)推导的技术。在单层视频译码中,当遇到irap图像时,poc最高有效位(most significant bit,msb)值将重置。在同一au在不同层中同时包括irap图像和非irap图像的多层视频编码中,当遇到irap图像时重置poc msb值将导致irap图像和非irap图像具有不同的poc msb值,这可能会导致译码错误。为了解决这个问题,不重置irap图像的poc msb值,而是从码流中获取irap图像的poc msb值和irap图像的poc msb长度。也就是说,irap图像的poc msb值和irap图像的poc msb长度在码流中指示。这确保了同一au中irap图像的poc msb值和非irap图像的poc msb值保持相同,从而消除了潜在的译码错误。因此,视频译码中的编码器/解码器(又称为编解码器)相对于现有的编解码器有所改进。实际上,改进的视频译码过程在发送、接收和/或观看视频时为用户提供更好的体验。
36.为了清楚起见,上述任一实施例可以与上述其它实施例中任何一个或多个组合以创建本发明范围内的新实施例。
37.从结合附图和权利要求书的以下详细描述中,将更清楚地理解这些和其它特征。
附图说明
38.为了更完整地理解本发明,结合附图和具体实施方式,参考以下简要描述,其中,相同的附图标记表示相同的部件。
39.图1为对视频信号进行译码的示例性方法的流程图。
40.图2为用于视频译码的示例性编码和解码(编解码)系统的示意图。
41.图3为示例性视频编码器的示意图。
42.图4为示例性视频解码器的示意图。
43.图5示出了用于空间可适性的多层译码的示例。
44.图6为在解码顺序和呈现顺序中irap图像相对于前置图像和后置图像之间的关系的表示。
45.图7示出了用于实现逐步解码刷新(gradual decoding refresh,gdr)技术的视频码流。
46.图8为在使用编码器限制来支持gdr时不期望的运动搜索的示意图。
47.图9示出了视频码流的实施例。
48.图10为对编码视频码流进行解码的方法的实施例。
49.图11为对译码视频码流进行编码的方法的实施例。
50.图12为视频译码设备的示意图。
51.图13为译码模块的实施例的示意图。
具体实施方式
52.首先应理解,尽管下文提供了一个或多个实施例的说明性实现方式,但所公开的系统和/或方法可以使用任何数量的技术来实现,无论该技术是当前已知的技术还是现有的技术。本发明不应限于下文所说明的说明性实现方式、附图和技术,包括本文所说明和描述的示例性设计和实现方式,而是可在所附权利要求书的范围以及其等效部分的完整范围内修改。
53.以下术语的定义如下所述,除非在本文相反的上下文中使用。具体地,以下定义旨在更加清晰地描述本发明。但是,术语在不同的上下文中可能会有不同的描述。因此,以下定义应当视为补充信息,不应当视为对此处为这些术语提供的描述的任何其它定义进行限制。
54.码流是包括视频数据的位序列,这些视频数据被压缩以在编码器和解码器之间传输。编码器是一种采用编码过程将视频数据压缩到码流中的设备。解码器是一种采用解码过程从码流中重建视频数据进行显示的设备。图像是创建帧或其场的亮度样本和/或色度样本组成的阵列。为了清楚论述,正在编码或解码的图像可以称为当前图像。参考图像是包括可以在根据帧间预测和/或层间预测通过参考对其它图像进行译码时使用的参考样本的图像。参考图像列表是用于帧间预测和/或层间预测的一列参考图像。一些视频译码系统使用两个参考图像列表,这两个参考图像列表可以表示为参考图像列表1和参考图像列表0。参考图像列表结构是包括多个参考图像列表的可寻址语法结构。帧间预测是通过参考与当前图像不同的参考图像中的指示样本对当前图像中的样本进行译码的机制,其中,参考图像和当前图像位于同一层中。参考图像列表结构条目是参考图像列表结构中的可寻址位置,该可寻址位置表示与参考图像列表相关联的参考图像。条带头是译码条带(slice)的一部分,该译码条带包括与条带中表示的分块(tile)中的所有视频数据相关的数据元素。序列参数集(sequence parameter set,sps)是包括与图像序列相关的数据的参数集。图像参数集(picture parameter set,pps)是一种包括语法元素的语法结构,这些语法元素应用于如由每个图像头中的语法元素确定的0个或0个以上完整译码图像。
55.标志是一个变量或单比特语法元素,可以取两个可能的值(0和1)之一。接入单元(access unit,au)是与相同显示时间(例如,相同图像顺序编号)相关联的一个或多个译码图像的集合,这些译码图像用于从解码图像缓冲区(decoded picture buffer,dpb)中输出
(例如,显示给用户)。接入单元分隔符(access unit delimiter,aud)是一种指示符或数据结构,用于指示au的开始或au之间的边界。解码视频序列是由解码器重建的准备向用户显示的图像序列。
56.编码视频序列(coded video sequence,cvs)是接入单元(access unit,au)组成的序列,该序列包括解码顺序中的编码视频序列起始(coded video sequence start,cvss)au,后面接着包括0个或0个以上不是cvss au的au。不是cvss au的au包括下一cvss au之前的所有后续au(但不包括下一cvss au)。cvss au是视频参数集(video parameter set,vps)表示的每个层都有预测单元(prediction unit,pu)并且每个pu中的编码图像为编码层视频序列起始(coded layer video sequence start,clvss)图像的au。在一个实施例中,每个图像都在au内。pu是网络抽象层(network abstraction layer,nal)单元的集合,这些nal单元根据指定的分类规则彼此相关联,按解码顺序连续,并且只包括一个编码图像。
57.图像顺序编号(picture order count,poc)是与每个图像相关联的变量,该变量唯一地标识clvs中的所有图像中的相关联的图像。当相关联的图像要从dpb输出时,poc表示相关联的图像在输出顺序中相对于同一clvs中的要从dpb输出的其它图像在输出顺序中的位置的位置。最高有效位(most significant bit,msb)(也称为高阶位)是二进制数中具有最大值的位位置。msb有时被称为高阶位或最左边位,因为位置记数法中的约定是更有效的数字写得更靠左。图像头(picture header,ph)是一种包括语法元素的语法结构,这些语法元素适用于编码图像的所有条带。
58.本文中采用以下缩略词:接入单元(access unit,au)、编码树块(coding tree block,ctb)、编码树单元(coding tree unit,ctu)、编码单元(coding unit,cu)、编码层视频序列(coded layer video sequence,clvs)、编码层视频序列起始(coded layer video sequence start,clvss)、编码视频序列(coded video sequence,cvs)、编码视频序列起始(coded video sequence start,cvss)、联合视频专家组(joint video experts team,jvet)、运动约束分块集(motion-constrained tile set,mcts)、最大传输单元(maximum transfer unit,mtu)、网络抽象层(network abstraction layer,nal)、输出层集(output layer set,ols)、图像顺序编号(picture order count,poc)、图像参数集(picture parameter set,pps)、随机接入点(random access point,rap)、原始字节序列载荷(raw byte sequence payload,rbsp)、序列参数集(sequence parameter set,sps)、视频参数集(video parameter set,vps)、通用视频编码(versatile video coding,vvc)和工作草稿(working draft,wd)。
59.图1为对视频信号进行译码的示例性操作方法100的流程图。具体地,在编码器侧对视频信号进行编码。编码过程通过使用各种机制对视频信号进行压缩,以减小视频文件大小。较小的文件大小有利于在减少相关联的带宽开销的同时,将压缩的视频文件发送给用户。然后,解码器对压缩的视频文件进行解码,以重建原始视频信号,用于向终端用户显示。解码过程通常与编码过程对应,便于解码器一致地重建视频信号。
60.在步骤101中,将视频信号输入编码器。例如,视频信号可以是存储在存储器中的未压缩的视频文件。又例如,视频文件可以由视频捕获设备(例如摄像机)捕获,并进行编码以支持视频的直播。视频文件可以包括音频分量和视频分量。视频分量包括一系列图像帧,
当按顺序观看时,这些图像帧会产生运动的视觉效果。这些帧包括根据光(本文称为亮度分量(或亮度样本))和颜色(称为色度分量(或色度样本))表示的像素。在一些示例中,这些帧还可以包括深度值以支持三维观看。
61.在步骤103中,将视频分割为块。分割包括将每个帧中的像素细分为方块和/或矩形块,用于进行压缩。例如,在高效视频编码(high efficiency video coding,hevc)(还称为h.265和mpeg-h第2部分)中,可以首先将帧划分成编码树单元(coding tree unit,ctu),它们是预定义大小(例如,64个像素
×
64个像素)的块。ctu包括亮度样本和色度样本。可以使用编码树将ctu划分为块,然后递归细分这些块,直到获得支持进一步编码的配置。例如,帧的亮度分量可以细分,直到各个块包括相对均匀的亮度值。此外,帧的色度分量可以细分,直到各个块包括相对均匀的颜色值。因此,分割机制根据视频帧的内容而不同。
62.在步骤105中,使用各种压缩机制来压缩在步骤103中分割的图像块。例如,可以使用帧间预测和/或帧内预测。帧间预测旨在利用公共场景中的对象往往出现在连续帧中这一事实。因此,无需在相邻帧中对参考帧中描述对象的块进行重复描述。具体地,一个对象(如一张桌子)可以在多个帧中保持在恒定的位置。因此,只描述一次桌子,相邻帧可以重新参考参考帧。模式匹配机制可以用于匹配多个帧中的对象。此外,由于对象移动或摄像机移动等,移动对象可以通过多个帧表示。在一个具体的示例中,视频可以通过多个帧显示在屏幕上移动的汽车。运动矢量可以用于描述这种移动。运动矢量是一个二维矢量,提供从帧中对象的坐标到参考帧中该对象的坐标的偏移。因此,帧间预测可以将当前帧中的图像块编码为运动矢量集,表示相对于参考帧中对应块的偏移。
63.帧内预测对公共帧中的块进行编码。帧内预测利用亮度分量和色度分量往往在帧中聚集这一事实。例如,一棵树的一部分中的一片绿色往往与几片类似的绿色相邻。帧内预测使用多种方向预测模式(例如,hevc中有33种模式)、平面模式和直流(direct current,dc)模式。方向模式表示当前块与对应方向的邻块的样本类似/相同。平面模式表示可以根据行边缘处的邻块对行/列(例如平面)上的一系列块进行插值。实际上,平面模式通过使用变化值的相对恒定的斜率来表示光/颜色在行/列上的平滑转变。dc模式用于边界平滑,表示块和与所有邻块的样本相关联的平均值类似/相同,所述邻块与方向预测模式的角方向相关联。因此,帧内预测块可以将图像块表示为各种关系预测模式值而非实际值。此外,帧间预测块可以将图像块表示为运动矢量值而非实际值。在任一种情况下,预测块在一些情况下可能无法精确地表示图像块。所有差值都存储在残差块中。可以对残差块进行变换以进一步压缩文件。
64.在步骤107中,可以应用各种滤波技术。在hevc中,根据环内滤波方案应用滤波器。上文描述的基于块的预测可能使得在解码器侧创建块状图像。此外,基于块的预测方案可以对块进行编码,然后重建编码块,以供以后用作参考块。环内滤波方案迭代地将噪声抑制滤波器、去块效应滤波器、自适应环路滤波器和样本自适应偏移(sample adaptive offset,sao)滤波器用于块/帧。这些滤波器减少了此类块伪影,从而可以准确地重建编码文件。此外,这些滤波器减少了重建参考块中的伪影,使得伪影不太可能在根据重建参考块编码的后续块中产生其它伪影。
65.在步骤109中,一旦对视频信号进行了分割、压缩和滤波,则将所得数据编码到码流中。所述码流包括上述数据以及支持在解码器侧进行适当的视频信号重建所需要的任何
指示(signal)数据。例如,此类数据可以包括分割数据、预测数据、残差块和向解码器提供译码指令的各种标志。码流可以存储在存储器中,用于在请求时传输到解码器。还可以向多个解码器广播和/或组播所述码流。创建码流是一个迭代过程。因此,步骤101、103、105、107和109可以在多个帧和块中连续和/或同时执行。图1所示的顺序是为了清楚和便于描述而呈现的,并非旨在将视频译码过程限制于特定顺序。
66.在步骤111中,解码器接收码流并开始解码过程。具体地,解码器使用熵解码方案将码流转换为对应的语法数据和视频数据。在步骤111中,解码器使用码流中的语法数据来确定帧的分割部分。分割应与步骤103中的块分割结果匹配。这里描述了步骤111中使用的熵编码/熵解码。编码器在压缩过程中进行许多选择,例如根据一个或多个输入图像中值的空间定位从多个可能选择中选择块分割方案。指示确切的选择可能会使用大量的位元。如本文使用的,位元是被视为变量的二进制值(例如,可以根据上下文变化的位值)。熵编码使得编码器可以丢弃任何明显不适合特定情况的选项,从而留下一组可使用的选项。然后,为每个可使用的选项分配码字。码字的长度取决于可使用的选项的数量(例如,一个位元对应两个选项,两个位元对应三个或四个选项等)。然后,编码器对所选选项的码字进行编码。该方案减小了码字的大小,因为码字的大小与唯一表示从可使用的选项的小子集中的一个选项,而非唯一表示从所有可能选项的潜在大集中的选项所需要的码字一样大。然后,解码器通过以与编码器类似的方式确定可使用的选项集来对该选择进行解码。通过确定可使用的选项集,解码器可以读取码字并确定编码器做出的选择。
67.在步骤113中,解码器执行块解码。具体地,解码器进行逆变换来生成残差块。然后,解码器使用残差块和对应的预测块,根据分割重建图像块。预测块可以包括在步骤105中编码器侧生成的帧内预测块和帧间预测块。然后,根据在步骤111中确定的分割数据将重建图像块定位到重建视频信号的帧中。步骤113的语法还可以通过上文描述的熵编码在码流中指示。
68.在步骤115中,以类似于步骤107的方式在编码器侧对重建视频信号的帧进行滤波。例如,可以对帧应用噪声抑制滤波器、去块效应滤波器、自适应环路滤波器和sao滤波器以去除块伪影。一旦对帧进行滤波,在步骤117中,可以将视频信号输出到显示器以供终端用户观看。
69.图2为用于视频译码的示例性编码和解码(编解码)系统200的示意图。具体地,编解码系统200能够实现操作方法100。编解码系统200广义地描述编码器和解码器中使用的组件。编解码系统200接收视频信号并对视频信号进行分割,如操作方法100中的步骤101和103所描述,从而产生分割视频信号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。这里对这些组件进行描述。
70.分割视频信号201是已通过编码树分割为像素块的捕获的视频序列。编码树使用各种划分模式将像素块细分为更小的像素块。然后这些块还可以细分为更小的块。这些块可以称为编码树上的节点。较大的父节点被划分为较小的子节点。节点被细分的次数称为节点/编码树的深度。在一些情况下,编码单元(coding unit,cu)中可以包括划分的块。例如,cu可以是ctu的子部分,ctu包括亮度块、红差色度(cr)块和蓝差色度(cb)块以及cu的对应语法指令。划分模式可以包括二叉树(binary tree,bt)、三叉树(triple tree,tt)和四叉树(quad tree,qt),用于根据所使用的划分模式,分别将节点分割为不同形状的两个、三个或四个子节点。将分割视频信号201转发到通用译码器控制组件211、变换缩放和量化组件213、帧内估计组件215、滤波器控制分析组件227和运动估计组件221进行压缩。
71.通用译码器控制组件211用于根据应用约束做出与将视频序列的图像编码到码流中相关的决策。例如,通用译码器控制组件211管理码率/码流大小相对于重建质量的优化。此类决策可以根据存储空间/带宽可用性和图像分辨率请求做出。通用译码器控制组件211还根据传输速度管理缓冲区使用率,以缓解缓冲区欠载和超载问题。为了解决这些问题,通用译码器控制组件211管理由其它组件进行的分割、预测和滤波。例如,通用译码器控制组件211可以动态地提高压缩复杂度以提高分辨率和提高带宽使用率,或者降低压缩复杂度以降低分辨率和带宽使用率。因此,通用译码器控制组件211控制编解码系统200的其它组件,以平衡视频信号重建质量与码率问题。通用译码器控制组件211创建控制数据,这些控制数据控制其它组件的操作。控制数据还被转发到标头格式和cabac组件231,以编码到码流中,从而指示用于在解码器中进行解码的参数。
72.分割视频信号201还被发送至运动估计组件221和运动补偿组件219,用于进行帧间预测。分割视频信号201的帧或条带可以划分为多个视频块。运动估计组件221和运动补偿组件219相对于一个或多个参考帧中的一个或多个块对接收到的视频块进行帧间预测译码以提供时间预测。编解码系统200可以执行多个译码过程,以便为每个视频数据块选择适当的译码模式等等。
73.运动估计组件221和运动补偿组件219可以高度集成,但出于概念目的分开示出。运动估计组件221执行的运动估计是生成运动矢量的过程,其中,这些运动矢量用于估计视频块的运动。例如,运动矢量可以表示译码对象相对于预测块的位移。预测块是被发现在像素差方面与待译码块高度匹配的块。预测块也可以称为参考块。此类像素差可以通过绝对差和(sum of absolute difference,sad)、平方差和(sum of square difference,ssd)或其它差值度量来确定。hevc使用几种译码对象,包括ctu、编码树块(coding tree block,ctb)和cu。例如,ctu可以划分为多个ctb,然后ctb可以划分为多个cb,多个cb用于包括在cu中。cu可以编码为包括预测数据的预测单元(prediction unit,pu)和/或包括cu的变换残差数据的变换单元(transform unit,tu)。运动估计组件221使用率失真分析作为率失真优化过程的一部分来生成运动矢量、pu和tu。例如,运动估计组件221可以确定当前块/帧的多个参考块、多个运动矢量等,并且可以选择具有最佳率失真特性的参考块、运动矢量等。最佳率失真特性平衡视频重建的质量(例如,压缩造成的数据丢失量)与译码效率(例如,最终
编码的大小)。
74.在一些示例中,编解码系统200可以计算存储在解码图像缓冲区组件223中的参考图像的子整数像素位置的值。例如,视频编解码系统200可以对参考图像的四分之一像素位置、八分之一像素位置或其它分数像素位置的值进行插值。因此,运动估计组件221可以执行相对于全像素位置和分数像素位置的运动搜索,并输出具有分数像素精度的运动矢量。运动估计组件221通过将pu的位置与参考图像的预测块的位置进行比较来计算帧间译码条带中视频块的pu的运动矢量。运动估计组件221将计算的运动矢量作为运动数据输出到标头格式和cabac组件231以进行编码,并将运动输出到运动补偿组件219。
75.运动补偿组件219执行的运动补偿可以涉及根据运动估计组件221所确定的运动矢量获取或生成预测块。另外,在一些示例中,运动估计组件221和运动补偿组件219可以在功能上集成。在接收到当前视频块的pu的运动矢量之后,运动补偿组件219可以定位运动矢量指向的预测块。然后,通过从正被译码的当前视频块的像素值中减去预测块的像素值,形成像素差值,从而形成残差视频块。通常,运动估计组件221相对于亮度分量执行运动估计,运动补偿组件219将根据亮度分量计算的运动矢量用于色度分量和亮度分量。将预测块和残差块转发到变换缩放和量化组件213。
76.分割视频信号201也被发送到帧内估计组件215和帧内预测组件217。如同运动估计组件221和运动补偿组件219,帧内估计组件215和帧内预测组件217可以高度集成,但出于概念目的分开示出。帧内估计组件215和帧内预测组件217相对于当前帧中的块对当前块进行帧内预测,以替代如上所述的由运动估计组件221和运动补偿组件219在各帧之间执行的帧间预测。具体地,帧内估计组件215确定帧内预测模式,用于对当前块进行编码。在一些示例中,帧内估计组件215从多个测试的帧内预测模式中选择适当的帧内预测模式来对当前块进行编码。然后,将所选择的帧内预测模式转发到标头格式和cabac组件231用于进行编码。
77.例如,帧内估计组件215使用对各种测试的帧内预测模式的率失真分析来计算率失真值,并在测试的模式中选择具有最佳率失真特性的帧内预测模式。率失真分析通常确定编码块与经编码以产生编码块的原始未编码块之间的失真(或误差)量,以及用于生成编码块的码率(例如,位数)。帧内估计组件215根据各种编码块的失真和速率计算比率,以确定哪种帧内预测模式表现出块的最佳率失真值。此外,帧内估计组件215可以用于根据率失真优化(rate-distortion optimization,rdo),使用深度建模模式(depth modeling mode,dmm)对深度图的深度块进行译码。
78.当在编码器上实现时,帧内预测组件217可以根据由帧内估计组件215确定的所选帧内预测模式从预测块生成残差块,或者当在解码器上实现时,从码流读取残差块。残差块包括预测块与原始块之间的值差,表示为矩阵。然后,残差块被转发到变换缩放和量化组件213。帧内估计组件215和帧内预测组件217可以对亮度分量和色度分量进行操作。
79.变换缩放和量化组件213用于进一步压缩残差块。变换缩放和量化组件213对残差块应用变换,如离散余弦变换(discrete cosine transform,dct)、离散正弦变换(discrete sine transform,dst)或概念上类似的变换,从而产生包括残差变换系数值的视频块。还可以使用小波变换、整数变换、子带变换或其它类型的变换。变换可以将残差信息从像素值域转换到变换域,如频域。变换缩放和量化组件213还用于根据频率等对变换的
残差信息进行缩放。这种缩放涉及对残差信息应用缩放因子,以便在不同粒度下量化不同的频率信息,这可能会影响重建视频的最终视觉质量。变换缩放和量化组件213还用于对变换系数进行量化以进一步降低码率。量化过程可以降低与一些或全部系数相关联的位深度。量化程度可以通过调整量化参数来修改。在一些示例中,变换缩放和量化组件213随后可以对包括量化变换系数的矩阵进行扫描。量化变换系数被转发到标头格式和cabac组件231,以编码到码流中。
80.缩放和逆变换组件229应用变换缩放和量化组件213的逆操作以支持运动估计。缩放和逆变换组件229应用逆缩放、逆变换和/或反量化以重建像素域中的残差块,例如,以供以后用作参考块,参考块可成为另一当前块的预测块。运动估计组件221和/或运动补偿组件219可以通过将残差块添加回对应的预测块来计算参考块,以用于后续块/帧的运动估计。滤波器用于重建参考块,以减少在缩放、量化和变换期间产生的伪影。当对后续块进行预测时,此类伪影可能导致预测不准确(并产生其它伪影)。
81.滤波器控制分析组件227和环内滤波器组件225将滤波器用于残差块和/或重建图像块。例如,缩放和逆变换组件229的变换残差块可以与帧内预测组件217和/或运动补偿组件219的对应的预测块合并以重建原始图像块。然后,滤波器可以用于重建图像块。在一些示例中,滤波器可以转而用于残差块。如同图2中的其它组件,滤波器控制分析组件227和环内滤波器组件225高度集成,可以一起实现,但出于概念目的分开示出。用于重建参考块的滤波器用于特定空间区域,包括多个参数以调整应用此类滤波器的方式。滤波器控制分析组件227对重建参考块进行分析,以确定应应用此类滤波器的位置并设置对应的参数。此类数据作为滤波器控制数据被转发到标头格式和cabac组件231用于进行编码。环内滤波器组件225根据滤波器控制数据应用此类滤波器。滤波器可以包括去块效应滤波器、噪声抑制滤波器、sao滤波器和自适应环路滤波器。此类滤波器可以根据示例用于空域/像素域(例如,针对重建像素块)或频域中。
82.当作为编码器时,将滤波重建图像块、残差块和/或预测块存储在解码图像缓冲区组件223中,以供以后用于运动估计,如上所述。当作为解码器时,解码图像缓冲区组件223存储经重建和滤波的块并将其作为输出视频信号的一部分向显示器转发。解码图像缓冲区组件223可以是能够存储预测块、残差块和/或重建图像块的任何存储设备。
83.标头格式和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)编码或其它熵编码技术对信息进行编码。在熵编码之后,可以将编码码流发送到另一设备(例如,视频解码器)或存档以供后续发送或检索。
84.图3为示例性视频编码器300的框图。视频编码器300可以用于实现编解码系统200的编码功能和/或实现操作方法100的步骤101、103、105、107和/或109。编码器300对输入视频信号进行分割,从而产生分割视频信号301,其中,分割视频信号301实质上类似于分割视频信号201。然后,通过编码器300的组件压缩分割视频信号301并将其编码到码流中。
85.具体地,分割视频信号301被转发到帧内预测组件317用于进行帧内预测。帧内预测组件317实质上可以类似于帧内估计组件215和帧内预测组件217。分割视频信号301还被转发到运动补偿组件321,用于根据解码图像缓冲区组件323中的参考块进行帧间预测。运动补偿组件321实质上可以类似于运动估计组件221和运动补偿组件219。帧内预测组件317和运动补偿组件321的预测块和残差块被转发到变换和量化组件313以用于对残差块进行变换和量化。变换和量化组件313实质上可以类似于变换缩放和量化组件213。变换和量化残差块和对应的预测块(连同相关联控制数据)被转发到熵编码组件331用于编码到码流中。熵编码组件331可以实质上类似于标头格式和cabac组件231。
86.变换和量化残差块和/或对应的预测块也从变换和量化组件313转发到逆变换和反量化组件329以重建成参考块供运动补偿组件321使用。逆变换和反量化组件329实质上可以类似于缩放和逆变换组件229。根据示例,环内滤波器组件325中的环内滤波器还用于残差块和/或重建参考块。环内滤波器组件325实质上可以类似于滤波器控制分析组件227和环内滤波器组件225。如关于环内滤波器组件225所描述,环内滤波器组件325可以包括多个滤波器。然后,滤波块存储在解码图像缓冲区组件323中,以供运动补偿组件321用作参考块。解码图像缓冲区组件323实质上可以类似于解码图像缓冲区组件223。
87.图4为示例性视频解码器400的框图。视频解码器400可以用于实现编解码系统200的解码功能和/或实现操作方法100的步骤111、113、115和/或117。例如,解码器400从编码器300接收码流,并根据该码流生成重建输出视频信号,用于向终端用户显示。
88.该码流由熵解码组件433接收。熵解码组件433用于实现熵解码方案,如cavlc、cabac、sbac、pipe译码或其它熵译码技术。例如,熵解码组件433可以使用标头信息来提供上下文以解释在码流中编码为码字的其它数据。解码信息包括对视频信号进行解码所需的任何信息,如通用控制数据、滤波器控制数据、分割信息、运动数据、预测数据和残差块中的量化变换系数。量化变换系数被转发到逆变换和反量化组件429以重建成残差块。逆变换和反量化组件429可以类似于逆变换和反量化组件329。
89.重建残差块和/或预测块被转发到帧内预测组件417,以根据帧内预测操作重建成图像块。帧内预测组件417可以类似于帧内估计组件215和帧内预测组件217。具体地,帧内预测组件417使用预测模式来定位帧中的参考块,并将残差块用于结果以重建帧内预测图像块。重建帧内预测图像块和/或残差块以及对应的帧间预测数据通过环内滤波器组件425转发到解码图像缓冲区组件423。解码图像缓冲区组件423和环内滤波器组件425实质上可以分别类似于解码图像缓冲区组件223和环内滤波器组件225。环内滤波器组件425对重建图像块、残差块和/或预测块进行滤波,并且此类信息存储在解码图像缓冲区组件423中。解码图像缓冲区组件423的重建图像块被转发到运动补偿组件421进行帧间预测。运动补偿组件421实质上可以类似于运动估计组件221和/或运动补偿组件219。具体地,运动补偿组件421使用参考块的运动矢量来生成预测块,并将残差块用于结果以重建图像块。所得重建块还可以通过环内滤波器组件425转发到解码图像缓冲区组件423。解码图像缓冲区组件423
继续存储其它重建图像块,这些重建图像块可以通过分割信息重建成帧。这些帧还可以放置在一个序列中。该序列作为重建输出视频信号向显示器输出。
90.考虑到上述情况,视频压缩技术执行空间(帧内)预测和/或时间(帧间)预测以减少或去除视频序列中固有的冗余。对于基于块的视频译码,可以将视频条带(例如,视频图像或视频图像的一部分)分割为视频块,视频块也可以称为树块、编码树块(coding tree block,ctb)、编码树单元(coding tree unit,ctu)、编码单元(coding unit,cu)和/或编码节点。参照同一图像的相邻块中的参考样本使用空间预测对图像内的帧内编码(i)条带中的视频块进行编码。图像内的帧间编码(p或b)条带中的视频块参照同一图像的相邻块中的参考样本使用空间预测,或者参照其它参考图像中的参考样本使用时间预测。图像可以称为帧,参考图像可以称为参考帧。
91.通过空间预测或时间预测,产生待编码块的预测块。残差数据表示待编码的原始块与预测块之间的像素差。根据运动矢量和残差数据对帧间译码块进行编码,其中,运动矢量指向构成预测块的参考样本的块,残差数据表示编码块与预测块之间的差值。根据帧内编码模式和残差数据对帧内编码块进行编码。为了进一步压缩,可以将残差数据从像素域变换到变换域,从而产生接着进行量化的残差变换系数。可以扫描最初以二维阵列排列的量化变换系数以生成变换系数的一维矢量,并且可以应用熵编码以实现进一步压缩。
92.图像和视频压缩发展迅速,编码标准多样化。这些视频编码标准包括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)等扩展版。
93.通用视频编码(versatile video coding,vvc)是itu-t和iso/iec联合视频专家组(joint video experts team,jvet)开发的一种新的视频编码标准。虽然vvc标准有几个工作草案(working draft,wd),但本文特别参考vvc中的一个工作草案,即b.bross、j.chen和s.liu的“通用视频编码(草案5)(versatile video coding(draft 5))”jvet-n1001-v3,第13次jvet会议,2019年3月27日(vvc草案5)。
94.分层视频编码也被称为可适性视频编码或具有可适性的视频编码。视频译码中的可适性通常通过多层译码技术来支持。多层码流包括基本层(base layer,bl)和一个或多个增强层(enhancement layer,el)。可适性的示例包括空间可适性、质量/信噪比(signal-to-noise,snr)可适性、多视图可适性等。当使用的是多层译码技术时,图像或其一部分可以在以下情况下进行译码:(1)不使用参考图像,即,使用帧内预测,(2)参考同一层中的参考图像,即,使用帧间预测,或(3)参考其它层中的参考图像,即,使用层间预测。用于当前图像的层间预测的参考图像称为层间参考图像(inter-layer reference picture,ilrp)。
95.图5为基于层的预测500的示例的示意图。例如,在块压缩步骤105、块解码步骤
113、运动估计组件221、运动补偿组件219、运动补偿组件321和/或运动补偿组件421处执行基于层的预测500来确定运动矢量(motion vector,mv)。基于层的预测500与单向帧间预测和/或双向帧间预测共存,但也在不同层中的图像之间执行。
96.基于层的预测500应用于不同层中的图像511、512、513和514与图像515、516、517和518之间。在所示示例中,图像511、512、513和514是层n 1 532的一部分,图像515、516、517和518是层n 531的一部分。层(例如层n 531和/或层n 1 532)是一组图像,这些图像都与类似的大小、质量、分辨率、信噪比、能力等类似的特征值相关联。在所示示例中,与层n 531相比,层n 1 532与更大的图像大小相关联。因此,在本示例中,层n 1532中的图像511、512、513和514比层n 531中的图像515、516、517和518大(例如,高度和宽度大,因此样本更多)。但是,这些图像可以通过其它特征划分为层n 1 532和层n 531。虽然只示出了两层:层n 1 532和层n 531,但一组图像可以根据相关联的特征划分为任意数量的层。层n 1 532和层n 531也可以用层标识符(identifier,id)表示。层id是与图像相关联的数据项,并表示该图像是表示的层的一部分。因此,图像511至518中的每个图像可以与对应的层id相关联,以表示层n 1 532或层n 531中的哪个层包括对应的图像。
97.不同的层531和532中的图像511至518交替显示。因此,不同层531和532中的图像511至518可以共享相同的时间标识符(identifier,id),并且可以包括在同一au中。如本文使用的,au是与用于从dpb输出的同一显示时间相关联的一个或多个译码图像的集合。例如,如果需要较小的图像,则解码器可以在当前显示时间对图像515进行解码并显示,或者如果需要较大的图像,则解码器可以在当前显示时间对图像511进行解码并显示。因此,高层n 1 532中的图像511至514与低层n 531中的对应图像515至518包括基本上相同的图像数据(尽管图像大小不同)。具体地,图像511与图像515包括基本上相同的图像数据,图像512与图像516包括基本上相同的图像数据,以此类推。
98.图像511至518可以通过参考同一层(n 531或n 1 532)中的其它图像511至518进行译码。参考同一层中的一个图像对另一个图像进行译码即为帧间预测523,帧间预测523与单向帧间预测和/或双向帧间预测共存。帧间预测523由实线箭头表示。例如,图像513可以通过将层n 1 532中的图像511、512和/或514中的一个或两个图像用作参考的帧间预测523来译码,其中,单向帧间预测使用一个图像作为参考,和/或双向帧间预测使用两个图像作为参考。此外,图像517可以通过将层n 531中的图像515、516和/或518中的一个或两个图像用作参考的帧间预测523来译码,其中,单向帧间预测使用一个图像作为参考,和/或双向帧间预测使用两个图像作为参考。在执行帧间预测523时,当将一个图像用作同一层中另一个图像的参考时,该图像可以称为参考图像。例如,图像512可以是用于根据帧间预测523对图像513进行译码的参考图像。帧间预测523也可以称为多层上下文中的层内预测。因此,帧间预测523是通过参考与当前图像不同的参考图像中的指示样本对当前图像中的样本进行译码的机制,其中,参考图像和当前图像位于同一层中。
99.图像511至518也可以通过参考不同层中的其它图像511至518进行译码。这个过程称为层间预测521,由虚线箭头表示。层间预测521是通过参考参考图像中的指示样本对当前图像中的样本进行译码的机制,其中,当前图像和参考图像位于不同的层中,因此具有不同的层id。例如,低层n 531中的图像可以用作对高层n 1 532中的对应图像进行译码的参考图像。在一个具体的示例中,图像511可以根据层间预测521通过参考图像515进行译码。
picture,ltrp),而且分配有一个或多个参考图像列表中的参考索引和当前层中的其它时间参考图像。层间预测(inter-layer prediction,ilp)是在预测单元(prediction unit,pu)级通过将参考索引的值设置为参考一个或多个参考图像列表中的一个或多个层间参考图像而实现的。
105.需要说明的是,参考图像重采样和空间可适性特征都需要对参考图像或其一部分进行重采样。参考图像重采样(reference picture resampling,rpr)可以在图像级或编码块级实现。但是,当rpr称为译码特征时,它是单层译码的特征。即便如此,从编解码器设计的角度来看,可以或甚至优选使用相同的重采样滤波器,以实现单层译码的rpr特征和多层译码的空间可适性特征。
106.最新的vvc草案支持分层视频编码。vvc码流可以包括多个层。这些层可以相互独立,即,每个层都是在不使用层间预测(inter-layer prediction,ilp)的情况下编码的。在这种情况下,这些层也被称为同播层。也可以使用ilp对一些层进行编码。vps中的标志用于表示这些层是否是同播层或一些层是否使用ilp。当一些层使用ilp时,层之间的层依赖关系也会在vps中进行指示。
107.与shvc和mv-hevc不同,最新的vvc草案没有指定ols。ols是层集合,其中,一个或多个层被指定为输出层。输出层是输出层集中被输出的层。
108.在最新的vvc草案中,当这些层为同播层时,规定只能选择一层进行解码和输出。在最新的vvc草案中,当一些层使用ilp时,码流中的所有层都被指定为待解码,但只有一些层被指定为输出层。输出层可以被指示为(1)仅最高层,(2)所有层,或(3)最高层加上指示的较低层集合。
109.图6为在解码顺序608和呈现顺序610(又称为输出顺序)中帧内随机接入点(intra random access point,irap)图像602相对于前置图像604和后置图像606之间的关系的表示600。在一个实施例中,irap图像602被称为清理随机接入(clean random access,cra)图像或伴随随机接入可解码(random access decodable,radl)图像的即时解码刷新(instantaneous decoder refresh,idr)图像。在hevc中,idr图像、cra图像和断点连接接入(broken link access,bla)图像都被认为是irap图像602。对于vvc,在2018年10月的第12次jvet会议上,同意将idr图像和cra图像作为irap图像。在一个实施例中,断点连接接入(broken link access,bla)图像和逐步解码器刷新(gradual decoder refresh,gdr)图像也可以被认为是irap图像。编码视频序列的解码过程始终从irap开始。irap图像提供随机接入点(random access point,rap)。
110.如图6所示,前置图像604(例如,图像2和图像3)在解码顺序608中在irap图像602之后,但在呈现顺序610中在irap图像602之前。后置图像606在解码顺序608和呈现顺序610中都在irap图像602之后。虽然图6中示出了两个前置图像604和一个后置图像606,但本领域技术人员将理解,在实际应用中,更多或更少的前置图像604和/或后置图像606可以在解码顺序608和呈现顺序610中存在。
111.图6中的前置图像604分为两种类型,即跳过随机接入前置(random access skipped leading,rasl)图像和radl前置图像。当从irap图像602(例如,图像1)开始解码时,radl图像(例如,图像3)可以被正确解码;但是,rasl图像(例如,图像2)不能被正确解码。因此,rasl图像被丢弃。鉴于radl图像与rasl图像之间的区别,与irap图像602相关联的
前置图像604的类型应该被标识为radl或rasl,以便高效和正确地编码。在hevc中,当rasl图像和radl图像存在时,受到如下约束:对于与同一irap602图像相关联的rasl图像和radl图像,rasl图像在呈现顺序610中应在radl图像之前。
112.irap图像602提供了以下两个重要的功能/益处。第一,irap图像602的存在表示解码过程可以从该图像开始。该功能支持随机接入特性,其中,解码过程从码流中的某个位置开始,而不一定是从码流起始处开始,只要irap图像602在该位置存在。第二,irap图像602的存在刷新了解码过程,使得从irap图像602开始的编码图像(不包括rasl图像)在没有对之前图像的参考的情况下被编码。因此,irap图像602在码流中存在可以防止在对irap图像602之前的编码图像进行解码期间可能发生的任何错误传播到irap图像602以及解码顺序608中在irap图像602之后的那些图像。
113.虽然irap图像602提供了重要功能,但irap图像可能会影响压缩效率。irap图像602的存在导致码率激增。两个原因造成压缩效率效率低下。第一,由于irap图像602是帧内预测图像,当与作为帧内预测图像的其它图像(例如,前置图像604、后置图像606)相比时,该图像将需要相对更多的位来表示。第二,因为irap图像602的存在破坏了时间预测(这是因为解码器会刷新解码过程,其中,解码过程的动作之一是删除解码图像缓冲区(decoded picture buffer,dpb)中的之前的参考图像),所以irap图像602导致在解码顺序608中在irap图像602之后的图像的译码效率较低(即,需要更多的位来表示),这是因为这些图像具有较少参考图像来进行其帧间预测译码。
114.在被认为是irap图像602的图像类型中,hevc中的idr图像与其它图像类型相比具有不同的指示和推导。其中一些区别如下:
115.为了指示和推导idr图像的图像顺序编号(picture order count,poc)值,poc的最高有效位(most significant bit,msb)部分不是从之前的关键图像推导的,而是被简单地设置为0。
116.对于参考图像管理所需的指示信息,idr图像的条带头不包括需要被指示来辅助参考图像管理所需的信息。对于其它图像类型(即cra、后置、时间子层接入(temporal sub-layer access,tsa)等),参考图像标识过程(即,确定解码图像缓冲区(decoded picture buffer,dpb)中用于参考和不用于参考的参考图像的状态的过程)需要下面描述的参考图像集(reference picture set,rps)等信息或其它形式的类似信息(例如参考图像列表)。但是,对于idr图像,不需要指示这样的信息,因为idr的存在表示解码过程应该简单地将dpb中的所有参考图像标识为不用于参考。
117.在hevc和vvc中,irap图像和前置图像被赋予不同的nal单元类型(nal unit type,nut),使得这些图像可以很容易地由系统级应用程序标识。例如,视频条带器需要理解编码图像类型而不必理解编码码流中语法元素的太多细节,特别是需要从非irap图像中标识irap图像,并从后置图像中标识前置图像,包括确定rasl图像和radl图像。后置图像是与irap图像相关联并且在输出顺序中在irap图像之后的图像。与特定irap图像相关联的图像按解码顺序在特定irap图像之后,并按解码顺序在任何其它irap图像之前。为此,赋予irap图像和前置图像nal单元类型可以有助于此类应用。
118.在hevc中,每个图像都被分配有一个poc值,表示为picordercntval。poc有三个主要作用:唯一地标识图像,指示相对于同一cvs中其它图像的输出位置,以及在较低级别视
频编码层(video coding layer,vcl)解码过程中执行运动矢量缩放。同一cvs中的所有图像都有唯一的poc值。来自不同cvs的图像可以共享相同的poc值,但这些图像仍然可以唯一地标识,因为不能将来自一个cvs的图像与另一个cvs的任何图像混合。cvs中允许poc值不连续。也就是说,在输出顺序上连续的两个图像之间的poc值差可以相差一个以上(事实上,连续图像的poc值差的量可以任意变化)。
119.在hevc中,图像的poc值使用条带头中的码字指示。允许的poc值的范围为-2
31
至2
31-1,因此为了节省条带头中的位,仅指示poc值的最低有效位(poc lsb)。用于poc lsb的位数可以在4至16之间,并在sps中指示。其余位是poc值的最高有效位(poc msb)。由于在条带头中仅指示poc lsb,因此当前图像的poc msb是从先前的图像推导的,称为prevtid0pic。为了在图像被删除时也能以相同的方式进行poc推导,prevtid0pic被设置为时间层0的最近的前一个图像,该图像不是rasl图像、radl图像,或子层非参考图像。解码器通过将当前图像的poc值与prevtid0pic图像的poc值进行比较,推导poc msb值。
120.不幸的是,现有的译码设计有缺点。例如,在shvc和mv-hevc中,混合irap图像和非irap图像可以包括在同一接入单元中(例如,图5中au 506中的图像511和515),但设计非常复杂。事实上,在shvc和mv-hevc中,使用最新hevc标准第f.8.1条的几页文本规定了这种设计的一般解码过程。文本涉及许多全局标志/变量/列表的使用,包括noclrasoutputflag、layerinitializedflag、layerresetflag、firstpicinlayerdecodedflag、numpredictedlayers、idpredictedlayer、iddirectreflayer、numdirectreflayers、numactivereflayerpics、numactivereflayerpics0、numactivereflayerpics1等。shvc和mv-hevc中的许多其它地方,在接入单元内提供对混合irap图像和非irap图像的支持也很复杂。这包括poc推导过程。
121.本文公开了当同一接入单元(access unit,au)同时包括irap图像和非irap图像时,简化多层视频译码中的图像顺序编号(picture order count,poc)推导的技术。在单层视频译码中,当遇到irap图像时,poc最高有效位(most significant bit,msb)值将重置。在同一au在不同层中同时包括irap图像和非irap图像的多层视频编码中,当遇到irap图像时重置poc msb值将导致irap图像和非irap图像具有不同的poc msb值,这可能会导致译码错误。为了解决这个问题,不重置irap图像的poc msb值,而是从码流中获取irap图像的poc msb值和irap图像的poc msb长度。也就是说,irap图像的poc msb值和irap图像的poc msb长度在码流中指示(而不是像hevc中那样推导)。这确保了同一au中irap图像的poc msb值和非irap图像的poc msb值保持相同,从而消除了潜在的译码错误。因此,视频译码中的编码器/解码器(又称为编解码器)相对于现有的编解码器有所改进。实际上,改进的视频译码过程在发送、接收和/或观看视频时为用户提供更好的体验。
122.图7示出了用于实现逐步解码刷新(gradual decoding refresh,gdr)技术700的视频码流750。如本文使用的,视频码流750也可以称为编码视频码流、码流或其变体。如图7所示,码流750包括序列参数集(sequence parameter set,sps)752、图像参数集(picture parameter set,pps)754、条带头756和图像数据758。
123.sps 752包括对图像序列(sequence of picture,sop)中所有图像通用的数据。相比之下,pps 754包括对完整图像通用的数据。条带头756包括当前条带的信息,例如条带类型、待使用的参考图像等。sps 752和pps 754可以统称为参数集。sps 752、pps 754和条带
头756是网络抽象层(network abstraction layer,nal)单元的类型。nal单元是一种语法结构,包括待遵循的数据类型(例如,编码视频数据)的表示。nal单元分为视频编码层(video coding layer,vcl)nal单元和非vcl nal单元。vcl nal单元包括表示视频图像中样本值的数据,非vcl nal单元包括任何相关联的附加信息,如参数集(可应用于多个vcl nal单元的重要数据)和补充增强信息(定时信息和其它补充数据,可用于增强解码视频信号的可用性,但不是解码视频图像中样本的值所必需的)。本领域技术人员将理解,码流750在实际应用中可以包括其它参数和信息。
124.图7的图像数据758包括与所编码或解码的图像或视频相关联的数据。图像数据758可以简单地称为码流750中携带的载荷或数据。在一个实施例中,图像数据758包括cvs 708(或clvs),该cvs 708(或clvs)包括gdr图像702、一个或多个后置图像704和恢复点图像706。在一个实施例中,gdr图像702被称为cvs开始(cvs starting,cvss)图像。cvs 708是视频码流750中的每个编码层视频序列(coded layer video sequence,clvs)的编码视频序列。需要说明的是,当视频码流750包括单个层时,cvs和clvs相同。cvs和clvs仅在视频码流750包括多个层时才不同。在一个实施例中,后置图像704可以被视为gdr图像的一种形式,因为它们在gdr周期中在恢复点图像706之前。
125.在一个实施例中,gdr图像702、后置图像704和恢复点图像706可以定义cvs 708中的gdr周期。在一个实施例中,解码顺序依次是gdr图像702、后置图像704、恢复点图像706。
126.cvs 708是从gdr图像702开始的一系列图像(或其部分),并包括下一个gdr图像前(但不包括下一个gdr图像)或码流750结束前的所有图像(或其部分)。gdr周期是从gdr图像702开始的一系列图像,并包括恢复点图像706前(包括恢复点图像706)的所有图像。cvs 708的解码过程总是从gdr图像702开始。
127.如图7所示,gdr技术700或原理是针对以gdr图像702开始并以恢复点图像706结束的一系列图像。gdr图像702包括刷新/干净区域710和未刷新/脏区域712,其中,该刷新/干净区域710包括所有已使用帧内预测进行译码的块(即,帧内预测块),该未刷新/脏区域712包括所有已使用帧间预测进行译码的块(即,帧间预测块)。
128.紧邻gdr图像702的后置图像704包括刷新/干净区域710,该刷新/干净区域710具有使用帧内预测进行译码的第一部分710a和使用帧间预测进行译码的第二部分710b。第二部分710b通过参考例如cvs 708的gdr周期内的前一图像的刷新/干净区域710来译码。如图所示,随着译码过程沿一致方向(例如,从左到右)进行,后置图像704的刷新/干净区域710扩展,而未刷新/脏区域712相应地变小。最终,通过译码过程获得仅包括刷新/干净区域710的恢复点图像706。需要说明的是,并且如下文将进一步描述的,被译码为帧间预测块的刷新/干净区域710的第二部分710b可以仅参考参考图像中的刷新/干净区域710。
129.如图7所示,cvs 708中的gdr图像702、后置图像704和恢复点图像706的条带各自包括在自己的vcl nal单元730中。
130.在一个实施例中,cvs 708中包括gdr图像702的vcl nal单元730具有gdr nal单元类型(gdr_nut)。即,在一个实施例中,cvs 708中包括gdr图像702的vcl nal单元730相对于后置图像704和恢复点图像706具有自己唯一的nal单元类型。在一个实施例中,gdr_nut支持码流750从gdr图像702开始,而不是码流750必须从帧内随机接入点(intra random access point,irap)图像开始。例如,将gdr图像702的vcl nal单元730指定为gdr_nut可以
向解码器指示cvs 708中的初始vcl nal单元730包括gdr图像702。在一个实施例中,gdr图像702是cvs 708中的初始图像。在一个实施例中,gdr图像702是gdr周期中的初始图像。
131.图8为在使用编码器限制来支持gdr时不期望的运动搜索800的示意图。如图所示,运动搜索800描述当前图像802和参考图像804。当前图像802和参考图像804各自包括用帧内预测进行译码的刷新区域806、用帧间预测进行译码的刷新区域808,和未刷新区域810。刷新区域806、刷新区域808和未刷新区域810类似于图7中的刷新/干净区域710的第一部分710a、刷新/干净区域710的第二部分710b,以及未刷新/脏区域712。
132.在运动搜索过程800中,编码器受到约束或被防止选择导致参考块814的一些样本位于刷新区域806之外的任何运动矢量812。即使当参考块814在预测当前图像802中的当前块816时提供最佳率失真成本标准时,也会发生这种情况。因此,图8示出了当使用编码器限制来支持gdr时,运动搜索800的非最佳性的原因。
133.图9示出了视频码流900的实施例。如本文使用的,视频码流900也可以称为编码视频码流、码流或其变体。如图9所示,码流900包括至少一个图像单元(picture unit,pu)901。虽然图9中示出了三个pu 901,但在实际应用中,不同数量的pu 901可以在码流900中存在。每个pu 901是根据指定的分类规则彼此相关联的nal单元的集合,按解码顺序连续,并且正好包括一个译码图像(例如,图像914)。
134.在一个实施例中,每个pu 901包括以下中的一个或多个:解码能力信息(decoding capability information,dci)902、视频参数集(video parameter set,vps)904、序列参数集(sequence parameter set,sps)906、图像参数集(picture parameter set,pps)908、图像头(picture header,ph)912和图像914。dci 902、vps 904、sps 906和pps 908中的每一个都可以统称为参数集。在一个实施例中,图9中未示出的其它参数集(例如,自适应参数集(adaption parameter set,aps))也可以包括在码流900中,该参数集是一种包括语法元素的语法结构,这些语法元素应用于如由条带头中的0个或0个以上语法元素确定的0个或0个以上条带。
135.dci 902也可以称为解码参数集(decoding parameter set或decoder parameter set,dps),是包括应用于完整码流的语法元素的语法结构。dci 902包括在视频码流(例如,码流900)的生存期内保持恒定的参数,该生存期可以转换为会话的生存期。dci 902可以包括档次、级别和子档次信息,以确定保证永远不会被超过(即使会话中发生视频序列的拼接)的最大复杂性互操作点。该dci还可选地包括约束标志,这些约束标志指示视频码流将受如这些标志的值所指示的某些特征的使用的约束。这样,码流可以被标记为不使用某些工具,这允许在解码器实现中分配资源。与所有参数集一样,dci 902在第一次被参考,并由视频序列中的第一个图像参考时存在,这意味着dci 902必须在码流中的第一nal单元之间发送。虽然码流中可以有多个dci 902,但其中的语法元素的值在被参考时不能不一致。
136.vps 904包括用于增强层的参考图像集构建的解码依赖关系或信息。vps 904提供了可扩展序列的整体视角或视图,包括提供了哪些类型的操作点、这些操作点的档次、层次和级别,以及码流的一些其它高级属性,这些属性可以用作会话协商和内容选择等的基础。
137.sps 906包括对图像序列(sequence of picture,sop)中所有图像通用的数据。sps 906是包括语法元素的语法结构,这些语法元素应用于如由pps中的语法元素的内容确定的0个或0个以上完整clvs,pps由每个图像头中的语法元素参考。相比之下,pps 908包括
对完整图像通用的数据。pps 908是一种包括语法元素的语法结构,这些语法元素应用于如由每个图像头(例如,ph 912)中的语法元素确定的0个或0个以上完整译码图像。
138.在一个实施例中,sps 906包括第一标志930,第一标志930是指定为sps_poc_msb_cycle_flag的poc msb标志。当第一标志930具有第一值(例如,1)时,第一标志930表示每个标头(例如,图像头912)包括第二标志940,第二标志940是指定为ph_poc_msb_cycle_present_flag的另一个poc msb标志。当第一标志930具有第二值(例如,0)时,第一标志930表示标头(例如,图像头912)不包括第二标志940。如本文使用的,第二标志940可以被称为ph_poc_msb_cycle_present_flag语法元素。
139.当poc msb值包括在参考sps 906的标头中时,sps 906还包括poc msb值的长度的指示符950。在一个实施例中,长度的指示符950指定为sps_poc_msb_cycle_len_minus1。在一个实施例中,sps_poc_msb_cycle_len_minus1 1表示当poc msb值在参考sps的标头中存在时poc msb值的长度,以比特为单位。在一个实施例中,指示符的值在零(0)至32-sps_log2_max_pic_order_cnt_lsb_minus4-5的范围内(包括端值)。sps_log2_max_pic_order_cnt_lsb_minus4表示用于图像顺序编号的解码过程中的变量maxpicordercntlsb的值(最大图像顺序编号lsb),如下所述:maxpicordercntlsb=2
(sps_log2_max_pic_order_cnt_lsb_minus4 4)
,其中,sps_log2_max_pic_order_cnt_lsb_minus4的值应在0至12的范围内(包括端值)。
140.第二标志940表示poc msb值960在标头中是否存在。在一个实施例中,如本文所描述,同时包括irap图像和非irap图像的混合au中存在poc msb值960。当第二标志940具有第一值(例如,1)时,第二标志940表示poc msb值960在标头(例如,图像头912)中存在。当第二标志940具有第二值(例如,0)时,第二标志940表示poc msb值960在标头中不存在。在一个实施例中,poc msb值960可以被称为poc msb值语法元素。
141.poc msb值960表示当前图像(例如,图像914)的poc msb周期的值。在一个实施例中,poc msb值960指定为ph_poc_msb_cycle_val。因此,poc msb值960在码流900中显式地指示,而不是根据前一个图像推导。在一个实施例中,码流中指示的poc msb值用于获得poc值。在一个实施例中,poc值是通过级联poc msb值和poc lsb来确定的,poc lsb也可以在码流900中指示。
142.每个编码图像与图像顺序编号变量(表示为picordercntval)相关联。picordercntval推导如下:picordercntval=picordercntmsb ph_pic_order_cnt_lsb,其中picordercntmsb是poc msb,ph_pic_order_cnt_lsb是poc lsb。
143.正如下面将更全面地解释的那样,使用上述标志支持跨层的不同步的irap图像。本文描述的poc处理确保了au内所有图像的poc值相同。为了实现这一目标,将为irap图像(即idr图像、cra图像和gdr图像)指示(而不是推导)poc msb值。与shvc和mv-hevc中的混合poc重置和poc msb指示机制相比,这使得poc推导的设计明显简单。
144.dci 902、vps 904、sps 906和pps 908包括在不同类型的网络抽象层(network abstraction layer,nal)单元中。nal单元是一种语法结构,包括待遵循的数据类型(例如,编码视频数据)的表示。nal单元分为视频编码层(video coding layer,vcl)nal单元和非vcl nal单元。vcl nal单元包括表示视频图像中样本值的数据,非vcl nal单元包括任何相关联的附加信息,如参数集(可应用于多个vcl nal单元的重要数据)和补充增强信息(定时信息和其它补充数据,可用于增强解码视频信号的可用性,但不是解码视频图像中样本的
值所必需的)。
145.在一个实施例中,dci 902包括在指定为dci nal单元或dps nal单元的非vcl nal单元中。也就是说,dci nal单元具有dci nal单元类型(nut),dps nal单元具有dps nut。在一个实施例中,vps 904包括在指定为vps nal单元的非vcl nal单元中。因此,vps nal单元具有一个vps nut。在一个实施例中,sps 906是指定为sps nal单元的非vcl nal单元。因此,sps nal单元具有sps nut。在一个实施例中,pps908包括在指定为pps nal单元的非vcl nal单元中。因此,pps nal单元具有一个pps nut。
146.ph 912是包括应用于译码图像(例如,图像914)的所有条带(例如,条带918)的语法元素的语法结构。在一个实施例中,ph 912是被指定为ph nal单元的新型非vcl nal单元。因此,ph nal单元具有ph nut(例如,ph_nut)。在一个实施例中,每个pu901中包括一个且仅一个ph 912。也就是说,pu 901包括单个或单独的ph 912。在一个实施例中,码流900中的每个图像914正好存在一个ph nal单元。
147.在一个实施例中,与ph 912相关联的ph nal单元具有时间id和层id。时间id指示ph nal单元相对于码流(例如,码流900)中的其它ph nal单元在时间上的位置。层id指示包括ph nal单元的层(例如,层531或层532)。在一个实施例中,时间id类似于poc,但不同于poc。poc按顺序唯一地标识每个图像。在单层码流中,时间id和poc将是相同的。在多层码流中(例如,见图5),同一au中的图像将具有不同的poc,但具有相同的时间id。
148.在一个实施例中,ph nal单元在包括相关联的图像914的第一条带918的vcl nal单元之前。这建立了ph 912和与ph 912相关联的图像914的条带918之间的关联,而不需要在ph 912中指示并从条带头920中参考的图像头id。因此,可以推断,两个ph 912之间的所有vcl nal单元属于同一图像914,并且图像914与两个ph 912之间的第一ph912相关联。在一个实施例中,ph 912之后的第一vcl nal单元包括与ph 912相关联的图像914的第一条带918。
149.在一个实施例中,ph nal单元遵循图像级别参数集(例如,pps)或更高级别参数集,例如dci(又称为dps)、vps、sps、pps等,这些参数集的时间id和层id分别小于ph nal单元的时间id和层id。因此,这些参数集不会在图像或接入单元中重复。由于此顺序,ph 912可以立即解析。也就是说,包括与完整图像相关的参数的参数集位于ph nal单元之前的码流中。任何包括部分图像的参数的部分都位于ph nal单元之后。
150.在一个替代方案中,ph nal单元遵循图像级别参数集和前缀补充增强信息(supplemental enhancement information,sei)消息,或更高级别参数集,例如dci(又称为dps)、vps、sps、pps、aps、sei消息等。
151.在一个实施例中,ph 912可以包括表示与ph 912相关联的图像914的图像类型的语法元素(例如标志等)。图像类型可以包括但不限于以下类型:即时解码器刷新(instantaneous decoder refresh,idr)图像,清理随机接入(clean random access,cra)图像,gdr图像,只包括帧内预测条带(i条带)且为非gdr图像的非irap图像,只包括单向帧间预测条带(p条带)和i条带且为非gdr图像的非irap图像,以及只包括双向帧间预测条带(b条带)、p条带和i条带且为非gdr图像的非irap图像。因此,ph 912中的单个标志能够表示图像(例如图像914)中的所有条带(例如条带918)是否是gdr图像(例如gdr图像702)中的条带等。这样还支持在ph 912中指示gdr图像的恢复点图像顺序编号(picture order count,
poc)一次,而不是在每个条带头(例如条带头920)中指示。
152.在一个实施例中,一个或多个语法元素在ph 912中指示,而不是在与ph 912相关联的图像914的条带头920中指示。这些语法元素是由图像914参考的pps id、表示图像914是否是参考图像的标志、图像914的颜色平面、图像914的poc最低有效位(least significant bit,lsb)、图像914是gdr图像(例如gdr图像702)时的恢复点poc、表示是否输出图像914之前的图像的标志以及表示图像914是否是输出图像的标志。pps id是标识图像914的特定pps的标识符。图像914的颜色平面包括图像914的亮度分量和色度分量(例如,y、cb和cr等)。poc lsb是标识poc的一个比特(或多个比特)。poc是与每个图像(例如图像914)相关联的变量,该变量唯一地标识clvs中的所有图像中的相关联的图像。当相关联的图像要从dpb输出时,poc表示相关联的图像在输出顺序中相对于同一clvs中的要从dpb输出的其它图像在输出顺序中的位置的位置。恢复点poc是标识恢复点(因此标识恢复点图像)的poc。
153.将这些语法元素从条带头920移动到ph 912中可以为完整图像914指示一次语法元素,而不是在每个条带头920中重复这些语法元素。这减少了冗余,提高了译码效率。
154.例如,图像914为黑白格式的亮度样本阵列或4:2:0、4:2:2和4:4:4彩色格式的亮度样本阵列和两个对应的色度样本阵列。在一个实施例中,每个pu 901中包括一个且仅一个图像914。因此,在每个pu 901中只有一个ph 912,并且只有一个对应于该ph 912的图像914。也就是说,pu 901包括单个或单独的图像914。
155.图像914可以是帧或字段。但是,在一个cvs 916中,所有图像914都是帧,或所有图像914都是字段。cvs 916是视频码流900中的每个编码层视频序列(coded layer video sequence,clvs)的编码视频序列。需要说明的是,当视频码流900包括单个层时,cvs 916和clvs相同。cvs 916和clvs仅在视频码流900包括多个层时才不同(例如,如图5所示)。
156.pu 901可以共同组成clvs。clvs是具有相同nuh_layer_id值的pu 901组成的序列,该序列包括解码顺序中的编码层视频序列起始(coded layer video sequence start,clvss)pu,后面接着包括0个或0个以上不是clvss pu的pu 901。不是clvss pu的pu 901包括下一clvss pu之前的所有后续pu 901(但不包括下一clvss pu)。clvss pu是编码图像(例如图像914)为clvss图像的pu 901。clvss图像是编码图像,即nooutputbeforerecoveryflag等于1的irap图像或nooutputbeforerecoveryflag等于1的gdr图像(例如gdr图像702)。
157.每个图像914包括一个或多个条带918。条带918是图像(例如,图像914)的整数个完整分块或分块内的整数个连续完整ctu行。每个条带918仅包括在单个nal单元(例如,vcl nal单元)中。分块(未示出)是图像(例如,图像914)中的特定分块列和特定分块行内的ctu的矩形区域。ctu(未示出)是具有三个样本阵列的图像中的亮度样本的ctb、色度样本的两个对应的ctb,或是黑白图像或使用三个单独的颜色平面和用于对样本进行译码的语法结构译码的图像中的样本的ctb。ctb(未示出)是n
×
n的样本块,其中,n可以设为某个值以将分量分割为ctb,这是一种分割。块(未示出)是m
×
n(m列
×
n行)个样本(例如,像素)阵列,或m
×
n个变换系数阵列等。
158.在一个实施例中,每个条带918包括条带头920。条带头920是译码条带918的一部分,包括与条带918中表示的所有分块或一个分块中的ctu行相关联的数据元素。也就是说,
条带头920包括条带918的信息,例如条带类型、待使用的参考图像等。
159.图像914及其条带918包括与所编码或解码的图像或视频相关联的数据。因此,图像914及其条带918可以简单地称为码流900中携带的载荷或数据。
160.本领域技术人员将理解,码流900在实际应用中可以包括其它参数和信息。
161.图10为视频解码器(例如视频解码器400)实现的解码方法1000的一个实施例。方法1000可以在直接或间接从视频编码器(例如,视频编码器300)接收到码流之后执行。方法1000通过提供当同一au同时包括irap图像和非irap图像时,简化多层视频译码中poc推导的技术,来改进解码过程。在单层视频译码中,当遇到irap图像时,poc msb值将重置。在同一au在不同层中同时包括irap图像和非irap图像的多层视频编码中,当遇到irap图像时重置poc msb值将导致irap图像和非irap图像具有不同的poc msb值,这可能会导致译码错误。为了解决这个问题,不重置irap图像的poc msb值,而是从码流中获取irap图像的poc msb值和irap图像的poc msb长度。也就是说,irap图像的poc msb值和irap图像的poc msb长度在码流中指示。这确保了同一au中irap图像的poc msb值和非irap图像的poc msb值保持相同,从而消除了潜在的译码错误。因此,视频译码中的编码器/解码器(又称为编解码器)相对于现有的编解码器有所改进。实际上,改进的视频译码过程在发送、接收和/或观看视频时为用户提供更好的体验。
162.在框1002中,视频解码器接收码流,该码流包括:包括第一标志(例如,第一标志930)的sps(例如,sps 906),以及poc msb值(例如,poc msb值960)的长度的指示符(例如,长度的指示符950)(当poc msb值在参考sps的标头(例如,图像头912)中存在时)。在一个实施例中,第一标志是指定为sps_poc_msb_cycle_flag的poc msb标志。第一标志的值表示第二标志(例如,第二标志940)在参考sps的标头中是否存在。在一个实施例中,当第一标志的值为1时,第二标志在参考sps的每个标头中存在。在一个实施例中,当第一标志的值为0时,第二标志在参考sps的标头中不存在。
163.在一个实施例中,第二标志是另一个poc msb标志,并指定为ph_poc_msb_cycle_present_flag。第二标志的值表示poc msb值在标头中是否存在。在一个实施例中,如本文所描述,同时包括irap图像和非irap图像的混合au中存在poc msb值960。在一个实施例中,当第二标志的值为1时,poc msb值在参考sps的标头中存在。在一个实施例中,当第二标志的值为0时,poc msb值在参考sps的标头中不存在。
164.在框1004中,视频解码器根据poc msb值确定poc值。poc值是与每个图像相关联的变量。poc值唯一地标识clvs中的所有图像中的相关联的图像,标识何时从dpb输出相关联的图像,并标识相关联的图像在输出顺序中相对于同一clvs中的要从dpb输出的其它图像在输出顺序中的位置的位置。在一个实施例中,poc值是通过级联或以其它方式组合poc msb值和pos lsb值来确定的(例如,poc值=poc msb poc lsb)。
165.在框1006中,视频解码器根据poc值从码流中标识图像(例如,图像914)。在框1008中,视频解码器对图像进行解码,以获得解码图像。在图像被解码之后,该图像可以用于生成或产生图像或视频序列,以便在电子设备(例如智能手机、平板电脑、膝上型电脑、个人电脑等)的显示器或屏幕上显示给用户。
166.图11为视频编码器(例如,视频编码器300)实现的对视频码流进行编码的方法1100的实施例。当图像(例如,视频中的图像)需要编码到视频码流中并且发送到视频解码
器(例如,视频解码器400)时,可以执行方法1100。方法1100通过提供当同一au同时包括irap图像和非irap图像时,简化多层视频译码中poc推导的技术,来改进编码过程。在单层视频译码中,当遇到irap图像时,poc msb值将重置。在同一au在不同层中同时包括irap图像和非irap图像的多层视频编码中,当遇到irap图像时重置poc msb值将导致irap图像和非irap图像具有不同的poc msb值,这可能会导致译码错误。为了解决这个问题,不重置irap图像的poc msb值,而是从码流中获取irap图像的poc msb值和irap图像的poc msb长度。也就是说,irap图像的poc msb值和irap图像的poc msb长度在码流中指示。这确保了同一au中irap图像的poc msb值和非irap图像的poc msb值保持相同,从而消除了潜在的译码错误。因此,视频译码中的编码器/解码器(又称为编解码器)相对于现有的编解码器有所改进。实际上,改进的视频译码过程在发送、接收和/或观看视频时为用户提供更好的体验。
167.在框1102中,视频编码器将sps(例如,sps 906)中的第一标志(例如,第一标志930)设置为一个值,以表示第二标志(例如,第二标志940)在参考sps的标头中存在。在一个实施例中,第一标志是指定为sps_poc_msb_cycle_flag的poc msb标志。在一个实施例中,当第一标志的值为1时,第二标志在参考sps的标头中存在。在一个实施例中,当第一标志的值为0时,第二标志在参考sps的标头中不存在。
168.在框1104中,当poc msb值在参考sps的标头中存在时,视频编码器在sps中提供poc msb值(例如,poc msb值960)的长度的指示符(例如,长度的指示符950)。
169.在框1106中,视频编码器将第二标志设置为一个值,以表示poc msb值在标头中存在。在一个实施例中,第二标志是另一个poc msb标志,并指定为ph_poc_msb_cycle_present_flag。在一个实施例中,当第二标志的值为1时,poc msb值在参考sps的标头中存在。在一个实施例中,当第二标志的值为0时,poc msb值在参考sps的标头中不存在。
170.在框1108中,视频编码器将sps和标头编码到码流中。在步骤1110中,视频编码器存储码流,用于传输到视频解码器。视频码流传输到视频解码器之前,可以存储在存储器中。所述视频解码器接收到视频码流之后,可以对编码视频码流进行解码(例如,如以上所描述),以生成或产生用于在电子设备(例如,智能手机、平板电脑、膝上型电脑、个人电脑等)的显示器或屏幕上向用户显示的图像或视频序列。
171.以下语法和语义可用于实现本文公开的实施例。以下描述是相对于基础文本的,该文本是最新的vvc草案规范。
172.在一个实施例中,(nuh_layer_id等于特定值layerid的特定图像的)相关联的irap图像是解码顺序中的nuh_layer_id等于layerid(当存在时)的前一个irap图像,irap图像之间没有nuh_layer_id等于layerid的gdr图像。nuh_layer_id表示vcl nal单元所属的层的标识符或非vcl nal单元应用的层的标识符。nuh_layer_id的值应在0至55的范围内(包括端值)。nuh_layer_id的其它值被保留,供itu-t|iso/iec将来使用。
173.如本文使用的,pu也可以被称为层接入单元。在一个实施例中,清理随机接入(clean random access,cra)层接入单元是编码图像为cra图像的层接入单元。在一个实施例中,清理随机接入(clean random access,cra)图像是每个vcl nal单元的nal_unit_type等于cra_nut的irap图像。在一个实施例中,cra图像在其解码过程中不使用帧间预测,并且可以是解码顺序中码流中的第一个图像,也可以出现在码流中的稍后位置。在一个实施例中,cra图像可以具有相关联的radl图像或rasl图像。当cra图像的
nooutputbeforerecoveryflag等于1时,解码器不会输出相关联的rasl图像,因为相关联的rasl图像可能包括对码流中不存在的图像的参考而不可解码。
174.在一个实施例中,编码层视频序列(coded layer video sequence,clvs)是具有相同nuh_layer_id值的pu组成的序列,该序列包括解码顺序中的clvss pu,后面接着包括0个或0个以上不是clvss pu的pu。不是clvss pu的pu包括下一clvss pu之前的所有后续pu(但不包括下一clvss pu)。在一个实施例中,clvss pu可以是idr pu、cra pu或gdr pu。对于每个idr pu、每个cra pu(具有等于1的handlecraasclvsstartflag)、每个cra pu或gdr pu(其为解码顺序中的码流层中的第一pu,或解码顺序中的eos nal单元之后的码流层中的第一pu),nooutputbeforerecoveryflag的值等于1。
175.在一个实施例中,编码层视频序列起始(coded layer video sequence start,clvss)层接入单元是编码图像为clvss图像的层接入单元。编码层视频序列起始(coded layer video sequence start,clvss)图像是编码图像,即noincorrectpicoutputflag等于1的irap图像或noincorrectpicoutputflag等于1的gdr图像。
176.在一个实施例中,编码视频序列(coded video sequence,cvs):即接入单元序列,该序列包括解码顺序中的cvss接入单元,后面接着包括0个或0个以上不是cvss接入单元的接入单元。不是cvss接入单元的接入单元包括下一cvss接入单元之前的所有后续接入单元(但不包括下一cvss接入单元)。
177.在一个实施例中,编码视频序列起始(coded video sequence start,cvss)接入单元:即cvs中的每个层都有层接入单元,并且每个层接入单元中的编码图像是clvss图像的接入单元。需要说明的是,这要求每个cvss au都是完整au,cvss au中的每个图像都是clvss图像。在一个实施例中,逐步解码刷新(gradual decoding refresh,gdr)接入单元:即每个当前层接入单元中的编码图像是gdr图像的接入单元。在一个实施例中,逐步解码刷新(gradual decoding refresh,gdr)层接入单元:即编码图像是gdr图像的层接入单元。在一个实施例中,逐步解码刷新(gradual decoding refresh,gdr)图像:即每个vcl nal单元的nal_unit_type等于gdr_nut的图像。
178.sps语法如下。
[0179][0180]
在一个实施例中,上述粗体语法元素可以包括在vps中。
[0181]
条带头语法如下。
[0182][0183][0184]
在一个实施例中,语法条件部分“&&nal_unit_type》=idr_w_radl&&nal_unit_type《=gdr_nut”可以删除。也就是说,当poc_msb_in_rap_pics_flag等于1时,为具有任何nal_unit_type值的条带指示poc_msb_val。
[0185]
在一个实施例中,添加一个图像级别标志以决定语法元素poc_msb_val的存在。也就是说,当poc_msb_in_rap_pics_flag等于1时,编码器可以决定为irap图像或gdr图像的每个条带单独指示或不指示poc_msb_val。
[0186]
在一个实施例中,应用上述两种替代方案。在一个实施例中,使用se(v)或ue(v)指示poc_msb_val,并从sps语法中删除poc_msb_len_minus1语法元素。
[0187]
下面描述nal单元头语义。
[0188]
nuh_layer_id表示vcl nal单元所属的层的标识符或非vcl nal单元应用的层的标识符。
[0189]
对于编码图像的所有vcl nal单元,nuh_layer_id的值应相同。编码图像或层接入单元的nuh_layer_id的值是编码图像或层接入单元的vcl nal单元的nuh_layer_id的值。
[0190]
nal_unit_type表示nal单元类型,即nal单元中包括的rbsp数据结构的类型。
[0191]
对于图像的所有编码条带nal单元,nal_unit_type的值应相同。图像或层接入单元被称为具有与图像或层接入单元的编码条带nal单元相同的nal单元类型。需要说明的是,上述两个段落允许au内的vcl nal单元具有不同的nal单元类型,这允许au内包括混合rap图像和非rap图像。rap图像是idr图像、car图像或gdr图像。
[0192]
对于cvss接入单元的图像,nal_unit_type的值应相同。
[0193]
提供了接入单元的顺序和与cvs的关联。
[0194]
符合标准的码流包括一个或多个cvs。cvs包括一个或多个接入单元。cvs的第一接入单元是cvss接入单元,其中,每个当前层接入单元是clvss层接入单元,clvss层接入单元是noincorrectpicoutputflag等于1的irap层接入单元,或noincorrectpicoutputflag等于1的gdr层接入单元。每个cvss接入单元应在cvs中存在的每个层中具有图像。码流一致性的要求是,当存在时,包括序列nal单元的结尾或码流nal单元结尾的接入单元之后的下一个接入单元中的每个层接入单元应为irap层接入单元,可以是idr层接入单元、cra层接入单元或gdr层接入单元。
[0195]
下面描述sps语义。
[0196]
log2_max_pic_order_cnt_lsb_minus4表示用于图像顺序编号的解码过程中的变量maxpicordercntlsb的值,如下所述:
[0197]
maxpicordercntlsb=2(log2_max_pic_order_cnt_lsb_minus4 4)
[0198]
log2_max_pic_order_cnt_lsb_minus4的值应在0至12的范围内(包括端值)。
[0199]
poc_msb_in_rap_pics_flag等于1表示为参考sps的图像指示poc_msb_val语法元素,并且vcl nal单元的nal_unit_type在idr_w_radl至gdr_nut的范围内(包括端值)。poc_msb_in_rap_pics_flag等于0表示不为参考sps的图像指示poc_msb_val语法元素。
[0200]
poc_msb_len_minus1 1表示poc_msb_val语法元素(如果存在)的长度(以比特为单位)。poc_msb_len_minus1的值应在0至32-log2_max_pic_order_cnt_lsb_minus4-5的范围内(包括端值)。
[0201]
下面描述条带头语义。
[0202]
slice_pic_order_cnt_lsb表示当前图像的图像顺序编号对maxpicordercntlsb取模。语法元素slice_pic_order_cnt_lsb的长度为log2_max_pic_order_cnt_lsb_minus4 4个比特。slice_pic_order_cnt_lsb的值应在0至maxpicordercntlsb-1的范围内(包括端值)。
[0203]
poc_msb_val表示当前图像的poc msb值。语法元素poc_msb_val的长度为(poc_msb_len_minus1 1)个比特。
[0204]
下面描述编码图像的解码过程。
[0205]
pictureoutputflag设置如下:
[0206]

如果以下条件之一为真,则pictureoutputflag设置为0。
[0207]

当前图像为rasl图像,且相关联的irap图像的noincorrectpicoutputflag等于1。
[0208]

gdr_enabled_flag等于1,且当前图像是noincorrectpicoutputflag等于1的gdr图像。
[0209]

gdr_enabled_flag等于1,当前图像与noincorrectpicoutputflag等于1的gdr图像相关联,且当前图像的picordercntval小于相关联的gdr图像的rppicordercntval。
[0210]

当前图像不属于输出层。
[0211]

否则,pictureoutputflag设置为pic_output_flag。
[0212]
下面提供图像顺序编号的解码过程。
[0213]
该过程的输出为picordercntval,即当前图像的图像顺序编号。
[0214]
每个编码图像与图像顺序编号变量(表示为picordercntval)相关联。
[0215]
当图像不存在poc_msb_val且当前图像不是clvss图像时,变量prevpicordercntlsb和prevpicordercntmsb推导如下:
[0216]

假设prevtid0pic是解码顺序中的前一个图像,该图像的nuh_layer_id等于当前图像的nuh_layer_id、该图像的temporalid等于0,并且该图像不是rasl图像或radl图像。
[0217]

将变量prevpicordercntlsb设置为prevtid0pic的slice_pic_order_cnt_lsb。
[0218]

将变量prevpicordercntmsb设置为prevtid0pic的picordercntmsb。
[0219]
当前图像的变量picordercntmsb如下推导。
[0220]

如果图像存在poc_msb_val,则picordercntmsb设置为等于poc_msb_val*
[0221]
maxpicordercntlsb。
[0222]

否则(图像不存在poc_msb_val),如果当前图像是clvss图像,则picordercntmsb设置为0。
[0223]

否则,picordercntmsb如下推导。
[0224]
if((slice_pic_order_cnt_lsb《prevpicordercntlsb)&&
[0225]
((prevpicordercntlsb-slice_pic_order_cnt_lsb)》=(maxpicordercntlsb/2)))
[0226]
picordercntmsb=prevpicordercntmsb maxpicordercntlsb
ꢀꢀꢀꢀꢀ
(8-1)
[0227]
else if((slice_pic_order_cnt_lsb》prevpicordercntlsb)&&
[0228]
((slice_pic_order_cnt_lsb-prevpicordercntlsb)》(maxpicordercntlsb/2)))
[0229]
picordercntmsb=prevpicordercntmsb-maxpicordercntlsb
[0230]
else
[0231]
picordercntmsb=prevpicordercntmsb
[0232]
picordercntval is derived as follows.
[0233]
picordercntval=picordercntmsb slice_pic_order_cnt_lsb
ꢀꢀꢀꢀꢀꢀꢀꢀ
(8-2)
[0234]
说明

所有不存在poc_msb_val的clvss图像的picordercntval等于slice_pic_order_cnt_lsb,因为对于这些图像,picordercntmsb设置为0。
[0235]
picordercntval的值应在-231至231-1的范围内(包括端值)。
[0236]
在一个cvs中,任意两个具有相同nuh_layer_id值的译码图像的picordercntval值应不相同。
[0237]
任何特定接入单元中的所有图像应都可以具有相同的picordercntval值。
[0238]
函数picordercnt(picx)表示如下:
[0239]
picordercnt(picx)=picordercntval of the picture picx
ꢀꢀꢀꢀꢀꢀꢀꢀ
(8-3)
[0240]
函数diffpicordercnt(pica,picb)表示如下:
[0241]
diffpicordercnt(pica,picb)=picordercnt(pica)-picordercnt(picb)
ꢀꢀꢀꢀꢀꢀ
(8-4)
[0242]
码流应不包括使解码过程中使用的diffpicordercnt(pica,picb)的值不在-215至215-1的范围内(包括端值)的数据。
[0243]
说明:假设x为当前图像,y和z为同一个cvs中的另外两个图像,当diffpicordercnt(x,y)和diffpicordercnt(x,z)都为正或都为负时,认为y和z相对于x处
于相同的输出顺序方向上。
[0244]
图12为根据本发明实施例的视频译码设备1200(例如视频编码器300或视频解码器400)的示意图。视频译码设备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)组件,用作光信号或电信号的出口或入口。
[0245]
处理器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。
[0246]
视频译码设备1200还可以包括用于与用户进行数据通信的输入和/或输出(i/o)设备1280。i/o设备1280可以包括输出设备,例如用于显示视频数据的显示器、用于输出音频数据的扬声器等。i/o设备1280还可以包括键盘、鼠标、轨迹球等输入设备和/或用于与这些输出设备交互的对应接口。
[0247]
存储器1260包括一个或多个磁盘、磁带机和固态硬盘,并且可以用作溢出数据存储设备,以在选择此类程序用于执行时存储程序,以及存储在程序执行期间读取的指令和数据。存储器1260可以是易失性和/或非易失性的,并且可以是只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、三态内容寻址存储器(ternary content-addressable memory,tcam)和/或静态随机存取存储器(static random-access memory,sram)。
[0248]
图13为译码模块1300的一个实施例的示意图。在一个实施例中,译码模块1300在视频译码设备1302(例如,视频编码器300或视频解码器400)中实现。视频译码设备1302包括接收模块1301。接收模块1301用于接收用于进行编码的图像,或接收用于进行解码的码流。视频译码设备1302包括耦合到接收模块1301的发送模块1307。发送模块1307用于将码流发送到解码器或将解码图像发送到显示模块(例如,i/o设备1280中的一个)。
[0249]
视频译码设备1302包括存储模块1303。存储模块1303耦合到接收模块1301或发送模块1307中的至少一个。存储模块1303用于存储指令。视频译码设备1302还包括处理模块1305。处理模块1305耦合到存储模块1303。处理模块1305用于执行存储在存储模块1303中的指令以执行本文公开的方法。
[0250]
还应理解,本文中阐述的示例性方法的步骤不一定需要按照所描述的顺序执行,并且这些方法的步骤的顺序应理解为仅仅是示例性的。同样地,在与本发明各种实施例相
一致的方法中,这些方法可以包括其它步骤,并且某些步骤可以省略或组合。
[0251]
尽管本发明中已经提供了几个实施例,但应理解的是,在不偏离本发明的精神或范围的情况下,所公开的系统和方法可以以许多其它特定形式实现。当前的这些示例被认为是说明性的而非限制性的,并且意图不限于本文给出的细节。例如,各种元件或组件可以组合或集成在另一个系统中,或者可以省略或不实现一些特征。
[0252]
此外,在不偏离本发明范围的情况下,在各种实施例中描述和示出为分立的或独立的技术、系统、子系统和方法,可以与其它系统、模块、技术或方法组合或集成。示出或论述为相互耦合、直接耦合或通信的其它项目可以通过电、机械或其它方式通过一些接口、设备或中间组件间接耦合或通信。改变、替换和更改的其它示例可以由本领域技术人员确定,并且可以在不偏离本文所公开的精神和范围的情况下进行。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献