参考图像列表结构的候选指示的制作方法

文档序号:26013216发布日期:2021-07-23 21:34阅读:47来源:国知局
参考图像列表结构的候选指示的制作方法
相关申请交叉引用本专利申请要求fnuhendry等人于2018年9月12日提交的申请号为62/730,172、发明名称为“视频译码中的基于参考图像列表的参考图像管理的比特数减少(bitcountreductionforreferencepicturemanagementbasedonreferencepicturelistsinvideocoding)”的美国临时专利申请的权益,以及要求fnuhendry等人于2019年5月15日提交的申请号为62/848,147、发明名称为“视频译码中的基于参考图像列表的参考图像管理的比特数减少(bitcountreductionforreferencepicturemanagementbasedonreferencepicturelistsinvideocoding)”的美国临时专利申请的权益,其全部内容通过引用结合在本申请中。本发明大体上描述了改进视频译码中的参考图像管理的指示效率的技术。更具体地,本发明描述了改进参考图像列表构建和直接基于参考图像列表的参考图像标识的指示的技术。
背景技术
:即使视频相对较短,也需要大量的视频数据来描述,当数据要在带宽容量有限的通信网络中进行流式传输或以其它方式传输时,这样可能会造成困难。因此,视频数据通常要先压缩,然后通过现代电信网络进行传输。由于内存资源可能有限,当在存储设备上存储视频时,该视频的大小也可能是一个问题。视频压缩设备通常在源侧使用软件和/或硬件对视频数据进行编码,然后进行传输或存储,从而减少表示数字视频图像所需的数据量。然后,由解码视频数据的视频解压缩设备在目的地侧接收压缩数据。在网络资源有限以及对更高视频质量的需求不断增长的情况下,需要改进压缩和解压缩技术,这些改进的技术在几乎不影响图像质量的情况下能够提高压缩比。技术实现要素:第一方面涉及一种对经译码视频码流进行解码的方法。所述方法包括:从所述经译码视频码流中解析标志;从所述经译码视频码流中解析第一参考图像列表结构的候选;当所述标志具有第一值时,确定第二参考图像列表结构的候选不存在于所述经译码视频码流中并推断所述第二参考图像列表结构的候选与所述第一参考图像列表结构的候选相同;当所述标志具有第二值时,确定第二参考图像列表结构的候选存在于所述经译码视频码流中;使用所述第一参考图像列表结构的候选或所述第二参考图像列表结构的候选中的至少一个来生成参考图像列表;根据所述参考图像列表执行帧间预测,以生成重建块。所述方法提供的技术简化了所述译码过程并提高了所述译码过程的效率。使用一个标志来表示是否可以推断第二参考图像列表结构的候选与第一参考图像列表结构的候选相同,视频译码中的编码器/解码器(也称为“编解码器”)相比于目前的编解码器有所改进(例如使用更少的比特、需要更少的带宽、效率更高等)。实际上,改进的视频译码过程在发送、接收和/或观看视频时提供了更好的用户体验。根据所述第一方面,在所述方法的第一种实现方式中,所述标志表示为rpl1_copy_from_rpl0_flag。根据所述第一方面或所述第一方面的任一上述实现方式,在所述方法的第二种实现方式中,所述标志包括在所述经译码视频码流的序列参数集(sequenceparameterset,sps)中。根据所述第一方面或所述第一方面的任一上述实现方式,在所述方法的第三种实现方式中,当所述标志具有所述第一值时,所述第二参考图像列表结构的候选不存在于所述经译码视频码流的序列参数集(sequenceparameterset,sps)中。根据所述第一方面或所述第一方面的任一上述实现方式,在所述方法的第四种实现方式中,当所述标志具有所述第二值时,所述第二参考图像列表结构的候选存在于所述经译码视频码流的sps中。根据所述第一方面或所述第一方面的任一上述实现方式,在所述方法的第五种实现方式中,所述标志的所述第一值为1(1)。根据所述第一方面或所述第一方面的任一上述实现方式,在所述方法的第六种实现方式中,所述标志的所述第二值为0(0)。根据所述第一方面或所述第一方面的任一上述实现方式,在所述方法的第七种实现方式中,所述标志放置在所述经译码视频码流中的任何预定义参考图像列表结构之前。第二方面涉及一种由视频编码器实现的对视频码流进行编码的方法。所述方法包括:当第二参考图像列表结构的候选未编码在所述视频码流中,且视频解码器推断所述第二参考图像列表结构的候选与第一参考图像列表结构的候选相同时,将具有第一值的标志编码在所述视频码流中;当所述第二参考图像列表结构的候选编码在所述视频码流中时,将具有第二值的标志编码在所述视频码流中;当所述标志以所述第一值作为其值进行编码时,将所述第一参考图像列表结构的候选编码在所述视频码流中;当所述标志以所述第二值作为其值进行编码时,将所述第一参考图像列表结构的候选和所述第二参考图像列表结构的候选编码在所述视频码流中;向所述视频解码器发送所述视频码流。所述方法提供的技术简化了所述译码过程并提高了所述译码过程的效率。使用一个标志来表示是否可以推断第二参考图像列表结构的候选与第一参考图像列表结构的候选相同,视频译码中的编码器/解码器(也称为“编解码器”)相比于目前的编解码器有所改进(例如使用更少的比特、需要更少的带宽、效率更高等)。实际上,改进的视频译码过程在发送、接收和/或观看视频时提供了更好的用户体验。根据所述第二方面,在所述方法的第一种实现方式中,所述标志表示为rpl1_copy_from_rpl0_flag。根据所述第二方面或所述第二方面的任一上述实现方式,在所述方法的第二种实现方式中,所述标志编码在所述经译码视频码流的序列参数集(sequenceparameterset,sps)中。根据所述第二方面或所述第二方面的任一上述实现方式,在所述方法的第三种实现方式中,当所述标志具有所述第一值时,所述第二参考图像列表结构的候选不存在于所述经译码视频码流的序列参数集(sequenceparameterset,sps)中。根据所述第二方面或所述第二方面的任一上述实现方式,在所述方法的第四种实现方式中,当所述标志具有所述第一值时,所述第二参考图像列表结构的候选存在于所述经译码视频码流的sps中。根据所述第二方面或所述第二方面的任一上述实现方式,在所述方法的第五种实现方式中,所述标志的所述第一值为1(1),所述标志的所述第二值为0(0),所述第一参考图像列表结构的候选编码在所述经译码视频码流的序列参数集(sequenceparameterset,sps)中。根据所述第二方面或所述第二方面的任一上述实现方式,在所述方法的第六种实现方式中,所述标志编码在所述经译码视频码流中的任何预定义参考图像列表结构之前。第三方面涉及一种解码设备。所述解码设备包括:接收器,用于接收经译码视频码流;与所述接收器耦合的存储器,所述存储器存储指令;与所述存储器耦合的处理器,所述处理器用于执行存储在所述存储器中的所述指令,以使得所述处理器:从所述经译码视频码流中解析标志;从所述经译码视频码流中解析第一参考图像列表结构的候选;当所述标志具有第一值时,确定第二参考图像列表结构的候选不存在于所述经译码视频码流中并推断所述第二参考图像列表结构的候选与所述第一参考图像列表结构的候选相同;当所述标志具有第二值时,确定第二参考图像列表结构的候选存在于所述经译码视频码流中;使用所述第一参考图像列表结构的候选或所述第二参考图像列表结构的候选中的至少一个来生成参考图像列表;根据所述参考图像列表执行帧间预测,以生成重建块。所述解码设备提供的技术简化了所述译码过程并提高了所述译码过程的效率。使用一个标志来表示是否可以推断第二参考图像列表结构的候选与第一参考图像列表结构的候选相同,视频译码中的编码器/解码器(也称为“编解码器”)相比于目前的编解码器有所改进(例如使用更少的比特、需要更少的带宽、效率更高等)。实际上,改进的视频译码过程在发送、接收和/或观看视频时提供了更好的用户体验。根据所述第三方面,在所述解码设备的第一种实现方式中,显示器用于显示使用所述重建块生成的图像。根据所述第三方面或所述第三方面的任一上述实现方式,在所述解码设备的第二种实现方式中,所述标志表示为rpl1_copy_from_rpl0_flag。根据所述第三方面或所述第三方面的任一上述实现方式,在所述解码设备的第三种实现方式中,所述标志包括在所述经译码视频码流的序列参数集(sequenceparameterset,sps)中。根据所述第三方面或所述第三方面的任一上述实现方式,在所述解码设备的第四种实现方式中,当所述标志具有所述第一值时,所述第二参考图像列表结构不存在于所述经译码视频码流的sps中;当所述标志具有所述第二值时,所述第二参考图像列表结构存在于所述经译码视频码流的sps中。根据所述第三方面或所述第三方面的任一上述实现方式,在所述解码设备的第五种实现方式中,所述标志的所述第一值为1(1),所述标志的所述第二值为0(0)。根据所述第三方面或所述第三方面的任一上述实现方式,在所述解码设备的第六种实现方式中,所述标志放置在所述经译码视频码流中的任何预定义参考图像列表结构之前。第四方面涉及一种编码设备。所述编码设备包括:处理器,用于:当第二参考图像列表结构的候选未编码在视频码流中,且视频解码器推断所述第二参考图像列表结构的候选与第一参考图像的候选相同时,将具有第一值的标志编码在所述视频码流中;当所述第二参考图像列表结构的候选编码在所述视频码流中时,将具有第二值的标志编码在所述视频码流中;当所述标志以所述第一值作为其值进行编码时,将所述第一参考图像列表结构编码在所述视频码流中;当所述标志以所述第二值作为其值进行编码时,将所述第一参考图像列表结构和所述第二参考图像列表结构编码在所述视频码流中;与所述处理器耦合的发送器,所述发送器用于向所述视频解码器发送所述视频码流。所述编码设备提供的技术简化了所述译码过程并提高了所述译码过程的效率。使用一个标志来表示是否可以推断第二参考图像列表结构的候选与第一参考图像列表结构的候选相同,视频译码中的编码器/解码器(也称为“编解码器”)相比于目前的编解码器有所改进(例如使用更少的比特、需要更少的带宽、效率更高等)。实际上,改进的视频译码过程在发送、接收和/或观看视频时提供了更好的用户体验。根据所述第四方面,在所述编码设备的第一种实现方式中,所述标志表示为rpl1_copy_from_rpl0_flag。根据所述第四方面或所述第四方面的任一上述实现方式,在所述编码设备的第二种实现方式中,所述标志编码在所述经译码视频码流的序列参数集(sequenceparameterset,sps)中。根据所述第四方面或所述第四方面的任一上述实现方式,在所述编码设备的第三种实现方式中,当所述标志具有所述第一值时,所述第二参考图像列表结构不存在于所述经译码视频码流的sps中;当所述标志具有所述第二值时,所述第二参考图像列表结构存在于所述经译码视频码流的sps中。根据所述第四方面或所述第四方面的任一上述实现方式,在所述编码设备的第四种实现方式中,所述标志的所述第一值为1(1),所述标志的所述第二值为0(0)。根据所述第四方面或所述第四方面的任一上述实现方式,在所述编码设备的第五种实现方式中,所述标志编码在所述经译码视频码流中的任何预定义参考图像列表结构之前。第五方面涉及一种译码装置。所述译码装置包括:接收器,用于接收码流进行解码;与所述接收器耦合的发送器,所述发送器用于向显示器发送经解码图像;与所述接收器或所述发送器中的至少一个耦合的存储器,所述存储器用于存储指令;与所述存储器耦合的处理器,所述处理器用于执行存储在所述存储器中的所述指令,以执行本文公开的实施例中任一个提供的方法。所述译码装置提供的技术简化了译码过程并提高了译码过程的效率。使用一个标志来表示是否可以推断第二参考图像列表结构的候选与第一参考图像列表结构的候选相同,视频译码中的编码器/解码器(也称为“编解码器”)相比于目前的编解码器有所改进(例如使用更少的比特、需要更少的带宽、效率更高等)。实际上,改进的视频译码过程在发送、接收和/或观看视频时提供了更好的用户体验。第六方面涉及一种系统。所述系统包括:编码器,包括本文公开的实施例中任一个提供的编码设备;与所述编码器通信的解码器,所述解码器包括本文公开的实施例中任一个提供的解码设备。所述系统提供的技术简化了译码过程并提高了译码过程的效率。使用一个标志来表示是否可以推断第二参考图像列表结构的候选与第一参考图像列表结构的候选相同,视频译码中的编码器/解码器(也称为“编解码器”)相比于目前的编解码器有所改进(例如使用更少的比特、需要更少的带宽、效率更高等)。实际上,改进的视频译码过程在发送、接收和/或观看视频时提供了更好的用户体验。第七方面涉及一种译码模块。所述译码模板包括:接收模块,用于接收码流进行解码;与所述接收模块耦合的发送模块,所述发送模块用于向显示模块发送经解码图像;与所述接收模块或所述发送模块中的至少一个耦合的存储模块,所述存储模块用于存储指令;与所述存储模块耦合的处理模块,所述处理模块用于执行存储在所述存储模块中的所述指令,以执行本文公开的实施例中任一个提供的方法。所述译码模块提供的技术简化了译码过程并提高了译码过程的效率。使用一个标志来表示是否可以推断第二参考图像列表结构的候选与第一参考图像列表结构的候选相同,视频译码中的编码器/解码器(也称为“编解码器”)相比于目前的编解码器有所改进(例如使用更少的比特、需要更少的带宽、效率更高等)。实际上,改进的视频译码过程在发送、接收和/或观看视频时提供了更好的用户体验。附图说明为了更全面地理解本发明,现在参考下文结合附图和详细说明进行的简要描述,其中,相似的附图标记表示相似的部件。图1为可以采用双向预测技术的示例性译码系统的框图。图2为可以实现双向预测技术的示例性视频编码器的框图。图3为可以实现双向预测技术的示例性视频解码器的框图。图4为包括当前图像的参考图像集(referencepictureset,rps)的示意图,该当前图像包括rps的所有子集中的表项。图5为视频码流的一个实施例的示意图。图6为对经译码视频码流进行解码的方法的实施例。图7为对视频码流进行编码的方法的实施例。图8为视频译码设备的示意图。图9为译码模块的一个实施例的示意图。具体实施方式以下是本文使用的各种缩略语:解码图像缓冲区(decodedpicturebuffer,dpb)、解码即时刷新(instantaneousdecodingrefresh,idr)、帧内随机接入点(intrarandomaccesspoint,irap)、最低有效位(leastsignificantbit,lsb)、最高有效位(mostsignificantbit,msb)、网络抽象层(networkabstractionlayer,nal)、图像顺序编号(pictureordercount,poc)、原始字节序列载荷(rawbytesequencepayload,rbsp)、序列参数集(sequenceparameterset,sps)、工作草稿(workingdraft,wd)。图1为可以采用本文描述的视频译码技术的示例性译码系统10的框图。如图1所示,译码系统10包括源设备12,其中,源设备12提供稍后由目的地设备14解码的经编码视频数据。具体地,源设备12可以通过计算机可读介质16将视频数据提供给目的地设备14。源设备12和目的地设备14可以包括多种设备中的任一个,包括台式电脑、笔记本(例如膝上型)电脑、平板电脑、机顶盒、“智能”手机和“智能”板(pad)等电话手机、电视、相机、显示设备、数字媒体播放器、视频游戏机、视频流设备等。在一些情况下,源设备12和目的地设备14可以用于无线通信。目的地设备14可以通过计算机可读介质16接收待解码的经编码视频数据。计算机可读介质16可以包括任何类型的能够将经编码视频数据从源设备12传递给目的地设备14的介质或设备。在一个示例中,计算机可读介质16可以包括通信介质,以使源设备12能够实时地将经编码视频数据直接发送给目的地设备14。所述经编码视频数据可以根据无线通信协议等通信标准进行调制,并发送给目的地设备14。所述通信介质可以包括任何无线或有线通信介质,例如射频(radiofrequency,rf)频谱或一条或多条物理传输线。所述通信介质可以构成分组网络(例如局域网、广域网或诸如因特网之类的全球网络)的一部分。所述通信介质可以包括路由器、交换机、基站或任何其它可用于促进从源设备12到目的地设备14进行通信的设备。在一些示例中,经编码数据可以从输出接口22输出到存储设备。类似地,经编码数据可以通过输入接口从存储设备存取。所述存储设备可以包括各种分布式或本地存取的数据存储介质中的任一个,例如硬盘驱动器、蓝光光盘、数字视频光盘(digitalvideodisk,dvd)、只读光盘存储器(compactdiscread-onlymemory,cd-rom)、闪存、易失性或非易失性存储器,或任何其它合适的用于存储经编码视频数据的数字存储介质。在另一个示例中,所述存储设备可以对应于文件服务器或可以存储由源设备12生成的经编码视频的另一中间存储设备。目的地设备14可以经由流式传输或下载从所述存储设备存取所存储的视频数据。所述文件服务器可以是任何类型的能够存储经编码视频数据并将该经编码视频数据发送给目的地设备14的服务器。示例性文件服务器包括万维网服务器(例如用于网站)、文件传输协议(filetransferprotocol,ftp)服务器、网络附属存储(networkattachedstorage,nas)设备或本地磁盘驱动器。目的地设备14可以通过任何标准数据连接(包括因特网连接)存取经编码视频数据。标准数据连接可以包括无线信道(例如wi-fi连接)、有线连接(例如数字用户线(digitalsubscriberline,dsl)、电缆调制解调器等)或两者适于存取存储在文件服务器上的经编码视频数据的组合。经编码视频数据从存储设备的传输可以是流式传输、下载传输或其组合。本发明中的技术不一定限于无线应用或设置。这些技术可以应用于视频译码以支持各种多媒体应用中的任一种,例如空中电视广播、有线电视传输、卫星电视传输、互联网流媒体视频传输(例如http动态自适应流媒体(dynamicadaptivestreamingoverhttp,dash)、在数据存储介质上编码的数字视频、存储在数据存储介质上的数字视频的解码,或其它应用。在一些示例中,译码系统10可以用于支持单向或双向视频传输,以支持视频流式传输、视频播放、视频广播和/或视频电话等应用。在图1的示例中,源设备12包括视频源18、视频编码器20和输出接口22。目的地设备14包括输入接口28、视频解码器30和显示设备32。根据本发明,源设备12中的视频编码器20和/或目的地设备14中的视频解码器30可以用于使用这些技术进行视频译码。在其它示例中,源设备和目的地设备可以包括其它组件或装置。例如,源设备12可以从外部视频源(例如外部相机)接收视频数据。类似地,目的地设备14可以与外部显示设备连接,而不是包括集成显示设备。图1所示的译码系统10仅仅是一个示例。视频译码技术可以由任何数字视频编码和/或解码设备执行。尽管本发明中的技术通常由视频译码设备执行,但这些技术还可以由视频编码器/解码器(通常称为“编解码器(codec)”)执行。此外,本发明中的技术还可以由视频预处理器执行。视频编码器和/或解码器可以是图形处理单元(graphicsprocessingunit,gpu)或类似设备。源设备12和目的地设备14仅仅是此类译码设备的示例,其中,源设备12生成经译码视频数据,以发送给目的地设备14。在一些示例中,源设备12和目的地设备14可以基本上对称地操作,使得源设备12和目的地设备14都包括视频编码和解码组件。因此,译码系统10可以支持视频设备12和14之间的单向或双向视频传输,例如用于视频流式传输、视频播放、视频广播或视频电话。源设备12中的视频源18可以包括视频捕获设备(例如摄影机)、包括先前捕获的视频的视频档案库,和/或从视频内容提供方接收视频的视频输入接口。或者,视频源18可以生成基于计算机图形的数据作为源视频,或作为直播视频、存档视频和计算机生成视频的组合。在一些情况下,当视频源18是摄影机时,源设备12和目的地设备14可以组成摄像头手机或可视电话。然而,如上所述,本发明中描述的技术通常可以适用于视频译码,也可以应用于无线应用和/或有线应用。在每种情况下,所捕获、预捕获或计算机生成的视频都可以由视频编码器20进行编码。然后,经编码视频信息可以通过输出接口22输出到计算机可读介质16上。计算机可读介质16可以无线广播或有线网络传输等瞬态介质,还可以包括存储介质(即非瞬时性存储介质),例如硬盘、闪存盘、光盘、数字视频光盘、蓝光光盘或其它计算机可读介质。在一些示例中,网络服务器(未示出)可以从源设备12接收经编码视频数据,并且通过网络传输等将经编码视频数据提供给目的地设备14。类似地,介质生产设施(如光盘冲压设施)中的计算设备可以从源设备12接收经编码视频数据,并产生包括经编码视频数据的光盘。因此,在各种示例中,计算机可读介质16可以理解为包括一个或多个各种形式的计算机可读介质。目的地设备14中的输入接口28从计算机可读介质16接收信息。计算机可读介质16的信息可以包括由视频编码器20定义的语法信息。该语法信息也由视频解码器30使用,包括描述块和其它经译码单元(例,图像组(groupofpicture,gop))的特征和/或处理方式的语法元素。显示设备32将经解码视频数据显示给用户,并且可以包括各种显示设备中的任一个,例如阴极射线管(cathoderaytube,crt)、液晶显示器(liquidcrystaldisplay,lcd)、等离子体显示器、有机发光二极体(organiclightemittingdiode,oled)显示器或其它类型的显示设备。视频编码器20和视频解码器30可以根据视频编码标准(例如目前正在开发的高效视频编码(efficiencyvideocoding,hevc)标准)进行操作,并且可以遵照hevc测试模型(hevctestmodel,hm)。或者,视频编码器20和视频解码器30可以根据其它专有或行业标准进行操作,例如国际电信联盟电信标准化部门(internationaltelecommunicationsuniontelecommunicationstandardizationsector,itu-t)h.264标准(还称为运动图像专家组(motionpictureexpertgroup,mpeg)-4第10部分、高级视频编码(advancedvideocoding,avc))、h.265/hevc及此类标准的扩展版本等。然而,本发明中的技术不限于任何特定的编码标准。视频编码标准的其它示例包括mpeg-2和itu-th.263。尽管图1未示出,但是在一些方面中,视频编码器20和视频解码器30可以分别与音频编码器和音频解码器集成,并且可以包括合适的复用器-解复用器(multiplexer-demultiplexer,mux-demux)单元或其它硬件和软件,以对共用数据流或单独数据流中的音频和视频都进行编码。如果适用,mux-demux单元可以遵照ituh.223复用器协议,或遵照用户数据报协议(userdatagramprotocol,udp)等其它协议。视频编码器20和视频解码器30可以分别实现为各种合适的编码器电路中的任一个,例如一个或多个微处理器、一个或多个数字信号处理器(digitalsignalprocessor,dsp)、一个或多个专用集成电路(applicationspecificintegratedcircuit,asic)、一个或多个现场可编程门阵列(fieldprogrammablegatearray,fpga)、一个或多个离散逻辑、一个或多个软件、一个或多个硬件、一个或多个固件或其任何组合。当上述技术部分在软件中实现时,一种设备可以将该软件的指令存储在合适的非瞬时性计算机可读介质中,并且使用一个或多个处理器在硬件中执行这些指令,以执行本发明中的技术。视频编码器20和视频解码器30都可以包括在一个或多个编码器或解码器中,编码器或解码器可以集成为相应设备中的组合编码器/解码器(codec)的一部分。一种包括视频编码器20和/或视频解码器30的设备可以包括集成电路、微处理器和/或诸如蜂窝电话之类的无线通信设备。图2为可以实现视频译码技术的示例性视频编码器20的框图。视频编码器20可以对视频条带(slice)内的视频块执行帧内译码和帧间译码。帧内译码依赖于空间预测来减少或去除某个视频帧或图像内的视频中的空间冗余。帧间译码依赖于时间预测来减少或去除视频序列的相邻帧或图像内的视频中的时间冗余。帧内模式(i模式)可以是几种基于空间的译码模式中的任一种。帧间模式(例如单向预测(uni-directional/uniprediction)(p模式)或双向预测(bi-prediction/biprediction)(b模式)可以是几种基于时间的译码模式中的任一种。如图2所示,视频编码器20接收待编码的视频帧内的当前视频块。在图2的示例中,视频编码器20包括模式选择单元40、参考帧存储器64、加法器50、变换处理单元52、量化单元54和熵编码单元56。模式选择单元40又包括运动补偿单元44、运动估计单元42、帧内预测(intra-prediction/intraprediction)单元46和分割单元48。为了重建视频块,视频编码器20还包括反量化单元58、逆变换单元60和加法器62。去块效应滤波器(图2中未示出)也包括在内,用于对块边界进行滤波,从而从重建视频中去除块状伪影。如果需要,去块效应滤波器通常对加法器62的输出进行滤波。除去块效应滤波器之外,还可以使用其它(环内或环后)滤波器。出于简洁而未示出此类滤波器,但是如果需要,此类滤波器(作为环内滤波器)可以对加法器50的输出进行滤波。在编码过程中,视频编码器20接收待译码的视频帧或条带(slice)。所述帧或条带可以划分成多个视频块。运动估计单元42和运动补偿单元44参照一个或多个参考帧中的一个或多个块对接收到的视频块执行帧间预测译码,以实现时间预测。帧内预测单元46还可以参照与待译码块位于同一帧或条带中的一个或多个相邻块对接收到的视频块执行帧内预测译码,以实现空间预测。视频编码器20可以执行多个译码回合,以便(例如)为每个视频数据块选择合适的译码模式。此外,分割单元48可以根据在先前译码回合中对先前分割方案的评估将视频数据块分割成子块。例如,分割单元48最初可以将帧或条带分割成最大编码单元(largestcodingunit,lcu),并且根据率失真分析(例如率失真优化)将每个lcu都分割成子编码单元(sub-codingunit,sub-cu)。模式选择单元40还可以产生指示将lcu分割成子cu的四叉树数据结构。四叉树中的叶节点cu可以包括一个或多个预测单元(predictionunit,pu)和一个或多个变换单元(transformunit,tu)。本发明使用术语“块”来指代hevc上下文中的cu、pu或tu中的任一个或其它标准上下文中的类似数据结构(例如h.264/avc中的宏块及其子块)。cu包括编码节点、与编码节点关联的pu和tu。cu的大小与编码节点的大小对应,呈正方形。cu的大小范围可以为8×8个像素直到最大值为64×64个像素或更大的树块大小。每个cu可以包括一个或多个pu和一个或多个tu。与cu关联的语法数据可以描述(例如)将cu分割成一个或多个pu。对cu进行跳过模式或直接模式编码、进行帧内预测模式编码或进行帧间预测(inter-prediction/interprediction)模式编码,分割模式可能有所不同。pu可以分割成非正方形。与cu关联的语法数据还可以描述(例如)根据四叉树将cu分割成一个或多个tu。tu可以是正方形或非正方形(例如矩形)。模式选择单元40可以根据误差结果等选择帧内或帧间译码模式中的一种,将所得到的经帧内或帧间译码块提供给加法器50以生成残差块数据,并提供给加法器62来重建经编码块以用作参考帧。模式选择单元40还将语法元素(例如运动向量、帧内模式指示符、分割信息和其它此类语法信息)提供给熵编码单元56。运动估计单元42和运动补偿单元44可以高度集成,但出于概念目的而单独说明。由运动估计单元42执行的运动估计是生成运动矢量的过程,这些运动矢量用于估计视频块的运动。运动向量(例如)可以表示当前视频帧或图像内的视频块的pu相对于参考帧(或其它经译码单元)内的预测块(相对于当前帧(或其它经译码单元)内的正在译码的当前块)的位移。预测块是在像素差方面与待译码块高度匹配的块。所述像素差可以通过绝对差和(sumofabsolutedifference,sad)、平方差和(sumofsquaredifference,ssd)或其它差度量进行确定。在一些示例中,视频编码器20可以计算存储在参考帧存储器64中的参考图像的子整数像素位置的值。例如,视频编码器20可以内插参考图像的四分之一像素位置、八分之一像素位置或其它分数像素位置的值。因此,运动估计单元42可以参照整像素位置和分数像素位置执行运动搜索,并输出具有分数像素精度的运动矢量。运动估计单元42通过将经帧间译码条带中的视频块的pu的位置与参考图像的预测块的位置进行比较来计该pu的运动矢量。所述参考图像可以从第一参考图像列表(列表0)或第二参考图像列表(列表1)中选择,每个列表标识存储在参考帧存储器64中的一个或多个参考图像。运动估计单元42将计算到的运动矢量发送给熵编码单元56和运动补偿单元44。由运动补偿单元44执行的运动补偿可以包括根据运动估计单元42确定的运动矢量来获取或生成预测块。另外,在一些示例中,运动估计单元42和运动补偿单元44可以在功能上集成。一接收到当前视频块的pu的运动矢量,运动补偿单元44就可以定位运动矢量在其中一个参考图像列表中所指向的预测块。加法器50通过从正在译码的当前视频块的像素值中减去预测块的像素值来形成残差视频块,从而得到像素差值,如下所述。一般而言,运动估计单元42参照亮度分量执行运动估计,运动补偿单元44将根据亮度分量计算到的运动矢量用于色度分量和亮度分量。模式选择单元40还可以生成与视频块和视频条带相关的语法元素,以供视频解码器30在解码视频条带的视频块时使用。帧内预测单元46可以对当前块进行帧内预测,以替代由运动估计单元42和运动补偿单元44执行的帧间预测,如上所述。具体地,帧内预测单元46可以确定帧内预测模式,以用于编码当前块。在一些示例中,帧内预测单元46可以(例如)在单独的编码回合中使用各种帧内预测模式来编码当前块,而且帧内预测单元46(或在一些示例中,模式选择单元40)可以从所测试的模式中选择合适的帧内预测模式进行使用。例如,帧内预测单元46可以使用速率失真分析对各种测试的帧内预测模式计算率失真值,并在测试的模式中选择率失真特性最佳的帧内预测模式。率失真分析一般确定经编码块与原始、未经编码块(曾经被编码以产生经编码块)之间的失真(或误差)量,以及确定用于产生经编码块的码率(即比特数)。帧内预测单元46可以根据各种经编码块的失真和速率计算比率,以判断哪种帧内预测模式表现出块的最佳率失真值。另外,帧内预测单元46可以用于使用深度建模模式(depthmodelingmode,dmm)对深度图像的深度块进行译码。模式选择单元40可以判断可用dmm模式是否比帧内预测模式和其它dmm模式(例如使用率失真优化(rate-distortionoptimization,rdo))产生更好的译码结果。与深度图像对应的纹理图像的数据可以存储在参考帧存储器64中。运动估计单元42和运动补偿单元44还可以用于对深度图像的深度块进行帧间预测。在选择块的帧内预测模式(例如传统的帧内预测模式或其中一个dmm模式)之后,帧内预测单元46可以将信息提供给熵编码单元56,该信息表示为块选择的帧内预测模式。熵编码单元56可以对表示所选帧内预测模式的信息进行编码。视频编码器20可以在所发送的码流中携带配置数据,所述配置数据可以包括多个帧内预测模式索引表和多个经修改的帧内预测模式索引表(也称为码字映射表),各种块的编码上下文的定义,用于每个编码上下文的最有可能帧内预测模式、帧内预测模式索引表和经修改的帧内预测模式索引表的指示。视频编码器20通过从正在译码的原始视频块中减去来自模式选择单元40的预测数据形成残差视频块。加法器50是执行这种减法操作的一个或多个组件。变换处理单元52将离散余弦变换(discretecosinetransform,dct)或概念上类似的变换等应用于残差块,从而产生包括残差变换系数值的视频块。变换处理单元52可以执行概念上类似于dct的其它变换。还可以使用小波变换、整数变换、子带变换或其它类型的变换。变换处理单元52将变换应用于残差块,从而产生残差变换系数块。上述变换可以将残差信息从像素域转换到变换域(例如频域)。变换处理单元52可以将所得到的变换系数发送给量化单元54。量化单元54对变换系数进行量化以进一步降低码率。量化过程可以减小与部分或全部系数相关的位深度。量化的程度可以通过调整量化参数来修改。在一些示例中,量化单元54可以接着对包括量化变换系数的矩阵执行扫描。或者,熵编码单元56可以执行扫描。在量化之后,熵编码单元56对量化变换系数进行熵编码。例如,熵编码单元56可以执行上下文自适应可变长度编码(contextadaptivevariablelengthcoding,cavlc)、上下文自适应二进制算术编码(contextadaptivebinaryarithmeticcoding,cabac)、基于语法的上下文自适应二进制算术编码(syntax-basedcontext-adaptivebinaryarithmeticcoding,sbac)、概率区间分割熵(probabilityintervalpartitioningentropy,pipe)编码或其它熵编码技术。在基于上下文的熵编码的情况中,上下文可以是相邻块。在由熵编码单元56执行熵编码之后,经编码码流可以发送给另一设备(例如视频解码器30)或进行存档以供稍后发送或检索。反量化单元58和逆变换单元60分别应用反量化和逆变换,以重建像素域中的残差块,(例如)以供稍后用作参考块。运动补偿单元44可以通过将残差块加到参考帧存储器64的其中一个帧的预测块中来计算参考块。运动补偿单元44还可以将一个或多个插值滤波器应用于重建残差块,以计算子整数像素值,进行运动估计。加法器62将重建残差块加到由运动补偿单元44产生的运动补偿预测块中,以产生重建视频块,存储在参考帧存储器64中。重建视频块可以由运动估计单元42和运动补偿单元44用作参考块,以对后续视频帧中的块进行帧间译码。图3为可以实现视频译码技术的示例性视频解码器30的框图。在图3的示例中,视频解码器30包括熵解码单元70、运动补偿单元72、帧内预测单元74、反量化单元76、逆变换单元78、参考帧存储器82和加法器80。在一些示例中,视频解码器30可以执行解码回合,该解码回合一般与参照视频编码器20(图2)描述的编码回合互逆。运动补偿单元72可以根据从熵解码单元70接收到的运动矢量来生成预测数据,而帧内预测单元74可以根据从熵解码单元70接收到的帧内预测模式指示符来生成预测数据。在解码过程中,视频解码器30从视频编码器20接收经编码视频码流,所述经编码视频码流表示经编码视频条带(slice)的视频块和相关语法元素。视频解码器30中的熵解码单元70对码流进行熵解码以生成量化系数、运动向量或帧内预测模式指示符和其它语法元素。熵解码单元70将运动矢量和其它语法元素转发给运动补偿单元72。视频解码器30可以接收视频条带级和/或视频块级的语法元素。当视频条带译码为经帧内译码(i)条带时,帧内预测单元74可以根据指示的帧内预测模式和来自当前帧或图像中的先前解码块的数据为当前视频条带的视频块生成预测数据。当视频帧译码为经帧间译码(例如b、p或gpb)条带时,运动补偿单元72根据从熵解码单元70接收到的运动矢量和其它语法元素为当前视频条带的视频块产生预测块。这些预测块可以根据其中一个参考图像列表内的其中一个参考图像而产生。视频解码器30可以根据存储在参考帧存储器82中的参考图像,使用默认构建技术来构建参考帧列表0和列表1。运动补偿单元72通过解析运动向量和其它语法元素为当前视频条带的视频块确定预测信息,并使用所述预测信息为正在解码的当前视频块产生预测块。例如,运动补偿单元72使用接收到的一些语法元素来确定用于对视频条带中的视频块进行译码的预测模式(例如帧内预测或帧间预测)、帧间预测条带类型(例如b条带、p条带或gpb条带)、条带中的一个或多个参考图像列表的构建信息、条带中的每个经帧间编码视频块的运动矢量、条带中的每个经帧间译码视频块的帧间预测状态和用于对当前视频条带中的视频块进行解码的其它信息。运动补偿单元72还可以根据插值滤波器进行插值。运动补偿单元72可以使用由视频编码器20在视频块的编码过程中所使用的插值滤波器来计算参考块的子整数像素的内插值。在这种情况下,运动补偿单元72可以根据接收到的语法元素来确定由视频编码器20使用的插值滤波器,并使用这些插值滤波器来产生预测块。与深度图像对应的纹理图像的数据可以存储在参考帧存储器82中。运动补偿单元72还可以用于对深度图像的深度块进行帧间预测。图像和视频压缩发展迅速,由此产生了各种各样的编码标准。这些视频编码标准包括国际电信联盟(internationaltelecommunicationunion,itu)-电信标准部(itutelecommunicationsstandardizationsector,itu-t)h.261、iso/iec活动图像专家组(motionpictureexpertsgroup,mpeg)-1第2部分、itu-th.262或iso/iecmpeg-2第2部分、itu-th.263、iso/iecmpeg-4第2部分、高级视频编码(advancedvideocoding,avc)(也称为itu-th.264或iso/iecmpeg-4第10部分)和高效视频编码(highefficiencyvideocoding,hevc)(也称为itu-th.265或mpeg-h第2部分)。avc包括可分级视频编码(scalablevideocoding,svc)、多视图视频编码(multiviewvideocoding,mvc)和多视图视频编码加深度(multiviewvideocodingplusdepth,mvc+d)、3davc(3d-avc)等扩展版。hevc包括可分级hevc(scalablehevc,shvc)、多视图hevc(multiviewhevc,mv-hevc)、3dhevc(3d-hevc)等扩展版。通用视频编码(versatilevideocoding,vvc)是itu-t和iso/iec成立的联合视频专家组(jointvideoexpertsteam,jvet)正在开发的一种新视频编码标准。在撰写时,vvc的最新工作草稿(workingdraft,wd)包含在jvet-k1001-v1中。jvet文档jvet-k0325-v3包括对vvc的高级语法的更新。本发明描述了各种技术,旨在解决vvc标准正在开发中的问题。然而,这些技术也可以应用于其它视频/媒体编解码器规范。视频压缩技术执行空间(帧内)预测和/或时间(帧间)预测来减少或去除视频序列中固有的冗余。针对基于块的视频译码,视频条带(slice)(例如视频图像或视频图像的一部分)可以分割成视频块。视频块还可以称为树块(treeblock)、编码树块(codingtreeblock,ctb)、编码树单元(codingtreeunit,ctu)、编码单元(codingunit,cu)和/或编码节点。一个图像的经帧内译码(i)条带中的视频块使用相对于同一图像内的相邻块中的参考样本的空间预测进行编码。一个图像的经帧间译码(p或b)条带中的视频块可以使用相对于同一图像内的相邻块中的参考样本的空间预测,或者使用相对于其它参考图像中的参考样本的时间预测。图像可以称为帧,参考图像可以称为参考帧。空间预测或时间预测为待译码块产生预测块。残差数据表示待译码原始块与所述预测块之间的像素差。经帧间译码块根据运动矢量和残差数据进行编码,所述运动矢量指向组成所述预测块的参考样本的块,所述残差数据表示所述经译码块与所述预测块之间的差值。经帧内译码块根据帧内译码模式和所述残差数据进行编码。为了进一步压缩,所述残差数据可以从像素域变换到变换域,从而产生可以接着进行量化的残差变换系数。量化变换系数最初以二维阵列排列,并且可以扫描,以产生变换系数的一维矢量。熵编码可以用于实现进一步压缩。在视频编解码器规范中,标识图像用于多种用途,包括用作帧间预测中的参考图像、用于从解码图像缓冲区(decodedpicturebuffer,dpb)输出的图像、用于运动矢量的缩放、用于加权预测等。在avc和hevc中,图像可以通过图像顺序编号(pictureordercount,poc)标识。在avc和hevc中,dpb中的图像可以被标识为“用于短期参考”、“用于长期参考”或“不用于参考”。一旦一个图像被标识为“不用于参考”,该图像就不能再用于预测,而且当不再需要输出该图像时,该图像可以从dpb中删除。avc中存在两种参考图像:短期参考图像和长期参考图像。当一个参考图像不再需要用于预测参考时,该参考图像可以被标识为“不用于参考”。三种状态(短期参考、长期参考、不用于参考)之间的转换通过解码参考图像标识过程进行控制。存在两种可选的解码参考图像标识机制:隐式滑动窗口过程和显式内存管理控制操作(memorymanagementcontroloperation,mmco)过程。滑动窗口过程在参考帧的数量等于给定的最大数量(sps中的max_num_ref_frames)时,将短期参考图像标识为“不用于参考”。这些短期参考图像以先入先出的方式存储,使得最近解码的短期图像保存在dpb中。显式mmco过程可以包括多个mmco命令。一个mmco命令可以将一个或多个短期或长期参考图像标识为“不用于参考”,将所有图像标识为“不用于参考”,或将当前参考图像或现有的短期参考图像标识为长期参考图像并将长期图像索引分配给该长期参考图像。在avc中,参考图像标识操作以及从dpb中输出和删除图像的过程是在一个图像完成解码之后执行的。hevc引入了一种不同的参考图像管理方法,称为参考图像集(referencepictureset,rps)。rps概念与avc中的mmco/滑动窗口的最根本区别在于,为每个特定条带提供由当前图像或任何后续图像使用的参考图像组成的完整集合。因此,指示了必须保存在dpb中以供当前图像或后续图像使用的所有图像组成的完整集合。这与avc方案不同,avc方案只指示了dpb的相对变化。使用rps概念,不需要解码顺序靠前的图像的信息来保持dpb中参考图像的正确状态。为了充分发挥rps的优点并提高抗误码能力,hevc与avc相比,改变了图像解码和dpb操作的顺序。在avc的图像标识和缓冲区操作中,从dpb中输出和删除解码图像一般都是在当前图像完成解码之后进行的。在hevc中,首先从当前图像的条带头中解码出rps,然后进行图像标识和缓冲区操作,最后解码当前图像。hevc中的每个条带头必须包括用于为包括条带的图像指示rps的参数。唯一的例外情况是不为idr条带指示rps,而是推断rps为空。对于不属于idr图像的i条带,即使这些i条带属于i图像,也可以提供rps,因为可能存在解码顺序在i图像之后的图像,这些图像使用依据解码顺序在i图像之前的图像的帧间预测。rps中的图像的数量不超过sps中的语法元素sps_max_dec_pic_buffering表示的dpb大小限制。每个图像都与表示输出顺序的poc值相关。条带头包括固定长度码字pic_order_cnt_lsb,表示整poc值的最低有效位(leastsignificantbit,lsb),也称为poclsb。码字的长度在sps中指示,并可以介于4个到16个比特之间。rps概念使用poc来标识参考图像。除每个条带头本身的poc值之外,每个条带头还直接包括rps中的每个图像的poc值(或lsb)的经译码表示或使用sps中的经译码表示。每个图像对应的rps包括5个不同的参考图像列表,也称为5个rps子集。refpicsetstcurrbefore包括解码顺序和输出顺序都在当前图像之前的所有可以用于当前图像的帧间预测中的短期参考图像。refpicsetstcurrafter包括解码顺序在当前图像之前、输出顺序在当前图像之后的所有可以用于当前图像的帧间预测中的短期参考图像。refpicsetstfoll包括所有可以用于解码顺序在当前图像之后的一个或多个图像的帧间预测中、但不用于当前图像的帧间预测中的短期参考图像。refpicsetltcurr包括所有可以用于当前图像的帧间预测中的长期参考图像。refpicsetltfoll包括所有可以用于解码顺序在当前图像之后的一个或多个图像的帧间预测中、但不用于当前图像的帧间预测中的长期参考图像。rps最多使用3个循环来指示,这3个循环对以下不同类型的参考图像重复:poc值小于当前图像的短期参考图像、poc值大于当前图像的短期参考图像,以及长期参考图像。另外,为每个参考图像发送一个标志(used_by_curr_pic_x_flag),表示参考图像由当前图像参考(包括在列表refpicsetstcurrbefore、refpicsetstcurrafter或refpicsetltcurr中)或者不由当前图像参考(包括在列表refpicsetstfoll或refpicsetltfoll中)。图4示出了包括当前图像b14的rps400,当前图像b14包括rps400的所有子集402中的表项(例如图像)。在图4的示例中,当前图像b14正好一个图像,这个图像位于5个子集402(还称为rps子集)中的每个子集中。p8是称为refpicsetstcurrbefore的子集402中的图像,因为该图像的输出顺序在b14之前,而且该图像由b14使用。p12是称为refpicsetstcurrafter的子集402中的图像,因为该图像的输出顺序在b14之后,而且该图像由b14使用。p13是称为refpicsetstfoll的子集402中的图像,因为该图像是b14不使用的短期参考图像(但是由于b15会使用,所以必须保存在dpb中)。p4是称为refpicsetltcurr的子集402中的图像,因为该图像为由b14使用的长期参考图像。i0是称为refpicsetltfoll的子集402中的图像,因为该图像是当前图像不使用的长期参考图像(但是由于b15会使用,所以必须保存在dpb中)。rps400中的短期参考图像可以直接包括在条带头中。或者,条带头可以只包括表示索引的语法元素,从而参考在激活sps中发送的预定义rps列表。rps402中的短期参考图像可以使用两种不同方案中的任一种来指示:下文描述的帧间rps或这里描述的帧内rps。当使用帧内rps时,指示num_negative_pics和num_positive_pics来表示两个不同参考图像列表的长度。这两个列表包括与当前图像分别存在负poc差值和正poc差值的参考图像。这两个列表中的每个元素都使用可变长度码进行编码,该可变长度码表示相对于列表中的前一元素的poc差值减1。对于每个列表中的第一个图像,指示与当前图像的poc值减1有关。当对序列参数集中的循环rps进行编码时,一个rps(例如rps400)中的元素有可能参考序列参数集中已经编码的另一个rps进行编码。这称为帧间rps。由于序列参数集中的所有rps都位于同一网络抽象层(networkabstractionlayer,nal)单元中,因此该方法不会存在误差稳定性问题。帧间rps语法基于以下事实:当前图像的rps可以根据前一解码图像的rps进行预测。这是因为当前图像的所有参考图像都必须是前一图像的参考图像,或者是前一解码图像本身。只需要表示这些图像中的哪些图像是参考图像并用于预测当前图像。因此,该语法包括以下内容:索引,指向rps并用作预测值;delta_poc,待加到预测值的delta_poc中,以得到当前rps的增量poc;指示符集,表示哪些图像是参考图像以及这些图像是否只用于预测后续图像。在一个实施例中,增量poc是指当前参考图像与另一(例如前一)参考图像之间的poc差值。希望使用长期参考图像的编码器必须将sps语法元素long_term_ref_pics_present_flag设置为1。长期参考图像则可以通过固定长度码字poc_lsb_lt在条带头中指示,该固定长度码字表示每个长期图像的整poc值的最低有效位。每个poc_lsb_lt都是为特定长期图像指示的码字pic_order_cnt_lsb的副本。还有可能在sps中指示长期图像集,作为poclsb值列表。长期图像的poclsb则可以在条带头中指示,作为此列表的索引。还可以指示语法元素delta_poc_msb_cycle_lt_minus1,以计算长期参考图像相对于当前图像的整poc距离。这要求为每个长期参考图像指示码字delta_poc_msb_cycle_lt_minus1,每个长期参考图像与rps中的任何其它参考图像具有相同的poclsb值。对于hevc中的参考图像标识,在进行图像解码之前,dpb中通常存在多个图像。其中一些图像可以用于预测,因此被标识为“用于参考”。其它图像不可用于预测,而是等待输出,因此被标识为“不用于参考”。当条带头完成解析时,首先执行图像标识过程,然后对条带数据进行解码。存在于dpb中且被标识为“用于参考”但不包括在rps中的图像被标识为“不用于参考”。如果used_by_curr_pic_x_flag等于0,则不存在于dpb中但包括在参考图像集中的图像被忽略。但是,如果used_by_curr_pic_x_flag等于1,则该参考图像将用于预测当前图像,但缺失。这时,推断图像无意丢失,解码器需要采取合适的措施。在解码当前图像之后,将参考图像标识为“用于短期参考”。下面论述hevc中的参考图像列表构建。在hevc中,术语“帧间预测”用于表示根据除当前解码图像之外的参考图像的数据元素(例如样本值或运动矢量)推导的预测。与在avc中一样,一个图像可以根据多个参考图像来预测。用于帧间预测的参考图像排列在一个或多个参考图像列表中。参考索引用于标识需要使用列表中的哪些参考图像来产生预测信号。p条带使用单个参考图像列表(列表0),b条带使用两个参考图像列表(列表0和列表1)。与avc类似,hevc中的参考图像列表构建包括参考图像列表初始化和参考图像列表修改。在avc中,用于列表0的初始化过程对于p条带(使用解码顺序)和b条带(使用输出顺序)是不同的。在hevc中,两种情况都使用输出顺序。参考图像列表初始化根据以下3个rps子集创建默认列表0和列表1(如果条带是b条带):refpicsetstcurrbefore、refpicsetstcurrafter和refpicsetltcurr。首先,将输出顺序靠前(靠后)的短期图像按照它们与当前图像的poc距离,从小到大插入到列表0(列表1)中;然后,将输出顺序靠后(靠前)的短期图像按照它们与当前图像的poc距离,从小到大插入到列表0(列表1)中;最后,将长期图像插入到末尾处。就rps而言,对于列表0,将refpicsetstcurrbefore中的表项插入到初始列表中,然后插入refpicsetstcurrafter中的表项。之后,添加refpicsetltcurr中的表项(如果存在)。在hevc中,当一个列表中的表项的数量小于激活参考图像的目标数量(在图像参数集或条带头中指示)时,重复上述过程(再次添加已添加到参考图像列表中的参考图像)。当表项的数量大于目标数量时,截断该列表。在参考图像列表完成初始化之后,可以修改该参考图像列表,使得当前图像的参考图像可以根据参考图像列表修改命令以任何顺序(包括一个特定参考图像可以出现在列表中的多个位置上的情况)排列。当表示存在列表修改的标志设置为1时,指示命令的固定数量(等于参考图像列表中的表项的目标数量),而且每个命令为参考图像列表插入一个表项。一个参考图像在命令中通过当前图像的根据rps指示推导的参考图像列表的索引来标识。这与h.264/avc中的参考图像列表修改不同,在h.264/avc中,一个图像通过图像编号(根据语法元素frame_num推导)或长期参考图像索引来标识,而且交换初始列表中的前两个表项或将一个表项插入到初始列表的起始处并移位其它表项等可能需要较少的命令。一个参考图像列表不可以包括temporalid大于当前图像的任何参考图像。hevc码流可能包括几个时间子层。每个nal单元属于某个子层,由temporalid(等于temporal_id_plus1–1)表示。参考图像管理直接以参考图像列表为基础。jct-vc文档jctvc-g643包括一种直接使用3个参考图像列表(参考图像列表0、参考图像列表1和闲置参考图像列表)来管理dpb中的参考图像的方法,从而避免以下情况需要指示和解码过程:(1)avc中的滑动窗口和mmco过程以及参考图像列表初始化和修改过程,或者(2)hevc中的参考图像集以及参考图像列表初始化和修改过程。但是,基于参考图像列表(referencepicturelist,rpl)的参考图像管理存在问题。例如,关于在码流中指示语法元素这一方面,一些基于rpl的参考图像管理方案没有优化。这样导致此类基于rpl的方法比基于rps的方法等其它显式参考图像管理方法需要更多的比特进行指示。基于rpl的方法的指示效率低有几个方面的原因。例如,rpl结构中的一些语法元素使用效率低的熵编码进行译码。例如,表示短期参考图像(short-termreferencepicture,strp)的增量poc值的语法元素的译码使用左位优先的有符号整数的零阶指数哥伦布编码的语法元素(例如se(v)),因为增量poc值可以为正值,也可以为负值。为了使用指数哥伦布码对任何非负整数x进行编码,第一步是写下以二进制表示的x+1。接着,对写入的比特进行计数,将此数减去1,然后在前一个位串之前写入上述数量的起始零位。指数哥伦布码的前几个值为:但是,如果增量poc的符号值和绝对值单独进行译码,则效率可以更高。当rpl索引(例如对应参考图像列表0和参考图像列表1)参考参数集(例如sps)中的预定义rpl结构时,rpl索引的指示效率不是很高,因为这些方案总是指示两种索引。在许多情况下,可以排列rpl0和rpl1的预定义rpl结构,使得当一个图像的rpl参考参数集中的预定义rpl结构时,rpl0的索引和rpl1的索引是相同的。此外,没有进行帧间rpl译码就将参考图像列表结构写入经译码视频码流中。例如,rpl结构可以在不参考先前在码流中指示的(多个)rpl结构的情况下进行译码。在一个实施例中,rpl结构是指一种包括指向候选参考图像的指针(pointer)的索引列表的编程构造。本文描述了几个方面,这些方面可以单独和/或组合应用,以解决本文描述的问题。下面分别描述了这几个方面。一方面,当针对strp对增量poc值进行译码时,符号值和绝对值在视频码流中单独译码。为了表示每个rpl结构中的增量poc值是否具有相同的符号值(例如,同一rpl结构中的所有增量poc值为正增量poc值还是负增量poc值),一个标志与预定rpl结构在相同的参数集(例如sps、pps)中指示。该标志可以称为“all_rpl_entries_same_sign_flag”。当all_rpl_entries_same_sign_flag等于1时,在rpl结构中指示一个标志来表示该rpl结构中的所有表项的符号值(例如strp的增量poc值的符号值)。当all_rpl_entries_same_sign_flag等于0时,在rpl结构中指示一个标志来表示与每个rpl结构中的strp相关的每个表项的符号值。在一个实施例中,rpl结构中的strp表项的增量poc值的绝对值使用无符号整数的零阶指数哥伦布编码(例如ue(v))进行译码。或者,指示两个标志,而不是指示一个标志all_rpl_entries_same_sign_flag,每个rpl结构列表(例如rpl0对应的rpl结构列表和rpl1对应的rpl结构列表)对应一个标志。对于编码,当在参数集中创建列表rpl0和rpl1对应的预定义rpl结构时,可以对rpl0和rpl1对应的列表中的rpl结构进行排列,使得列表0对应的rpl结构和列表1对应的rpl结构配对。因此,当一个图像参考参数集中的预定义rpl结构时,该图像的rpl0和rpl0的索引是相同的。与上述观点相关,一个标志可以表示rpl1中参考预定义rpl结构的语法元素是否存在于条带头中。该标志可以称为“rpl1_idx_present_flag”。该标志可以根据标志的预期范围或预期时长(persistence)在sps或pps中指示。在一个实施例中,该标志优选在pps中指示。根据rpl1_idx_present_flag的值,以下情况适用。当rpl1_idx_present_flag等于1时,与包括该标志的参数集相关的条带头的rpl1是否参考预定义rpl结构和其索引不在条带头中指示,而是根据同一条带中的rpl0的对应语法元素推断。也就是说,不指示ref_pic_list_sps_flag[1]和ref_pic_list_idx[1],而是分别根据ref_pic_list_sps_flag[0]和ref_pic_list_idx[0]的值推断(例如复制)。否则,当rpl1_idx_present_flag等于0时,ref_pic_list_sps_flag[1]和ref_pic_list_idx[1]存在于与包括该标志的参数集相关的条带头中。或者,根据rpl1_idx_present_flag的值,以下情况适用。当rpl1_idx_present_flag等于1时,在与包括该标志的参数集相关的条带头的rpl1参考预定义rpl结构时,rpl1的索引不在条带头中指示。相反,根据同一条带中的rpl0对应的语法元素推断rpl1的索引。也就是说,不指示ref_pic_list_idx[1],而是根据ref_pic_list_idx[0]的值推断(例如复制)。否则,当rpl1_idx_present_flag等于0时,ref_pic_list_idx[1]存在于与包括该标志的参数集相关的条带头中。一个标志可以用于表示rpl1对应的列表中的rpl结构是否具有与列表rpl0对应的列表中的rpl结构相同的内容。该标志可以称为“rpl1_copy_from_rpl0_flag”。该标志在包括预定义rpl结构的同一参数集中指示,并且需要在指示预定义rpl结构之前确定位置。根据rpl1_copy_from_rpl0_flag的值,以下情况适用。当rpl1_copy_from_rpl0_flag等于1时,不指示列表1对应的rpl结构的数量,而是推断与列表0对应的rpl结构的数量相同。不指示列表1对应的rpl结构。相反,在解码器侧解析和解码列表0对应的预定义rpl结构之后,对于列表0对应的每个rpl结构,创建完全相同的rpl结构副本,并将rpl结构副本分配给列表1对应的具有相同索引的rpl结构。否则,当rpl1_copy_from_rpl0_flag等于0时,指示列表1对应的rpl结构的数量和列表1对应的rpl结构的数量。rpl结构的内容可以根据另一个rpl结构进行预测。当参数集中的预定义rpl结构划分成两个列表(例如列表0对应的rpl结构列表和列表1对应的rpl结构列表)时,只有列表0对应的列表中的rpl结构可以用作帧间rpl的参考。列表0对应的列表中的rpl结构只能参考同一列表中索引小于该rpl结构的索引的另一个rpl结构,而列表1对应的列表中的rpl结构可以参考列表0对应的列表中的任何rpl结构。在条带头中显式指示的rpl结构可以参考列表0对应的列表中的任何预定义rpl结构。或者,列表0或列表1对应的列表中的rpl结构只能参考列表0对应的列表中索引小于该rpl结构的索引的另一个rpl结构。在条带头中显式指示的rpl结构可以参考列表0对应的列表中的任何预定义rpl结构。在一个替代方案中,当参数集中的预定义rpl结构划分成两个列表(例如列表0对应的rpl结构列表和列表1对应的rpl结构列表)时,列表0对应的列表中的rpl结构只能参考列表0对应的列表中索引小于该rpl结构的索引的另一个rpl结构。类似地,列表1对应的列表中的rpl结构只能参考列表1对应的列表中索引小于该rpl结构的索引的另一个rpl结构。在rpl0的条带头中显式指示的rpl结构可以参考列表0对应的列表中的任何预定义rpl结构,而在rpl1的条带头中显式指示的rpl结构可以参考列表1对应的列表中的任何预定义rpl结构。在另一个替代方案中,当参数集中的预定义rpl结构没有划分成两个列表(例如列表0对应的rpl结构列表和列表1对应的rpl结构列表在一个列表中指示)时,rpl结构只能参考该列表中索引小于该rpl结构的索引的另一个rpl结构。在条带头中显式指示的rpl结构可以参考任何预定义rpl结构。对于帧间rpl,参考rpl结构的索引可以译码为当前rpl结构索引和参考rpl结构索引的增量减1,并使用ue(v)译码进行译码。在一个替代方案中,参考rpl索引直接使用u(v)译码进行译码。用于表示索引的比特数设置为列表中可用于参考的rpl结构的数量的对数(log2)。例如,当只有列表0对应的列表中的rpl结构可以用作参考时,表示参考rpl索引的比特数为列表0对应的列表中的rpl结构的数量的对数(log2)。在另一个替代方案中,参考rpl结构的索引可以根据帧间rpl的模式使用ue(v)或u(v)进行译码。为了支持帧间rpl,每个rpl结构使用下面描述的模式之一进行译码。注意,下面模式的顺序不一定表示模式的值的顺序。模式的指示信息可以如下进行译码。在一个实施例中,模式的指示信息可以简单地使用ue(v)进行译码。在一个实施例中,模式的指示信息可以使用u(v)进行译码,其中,表示该模式的比特数为所定义模式的总数量的对数(log2)。第一种rpl译码模式为帧内译码模式。该模式与其它机制一样,用于指示rpl结构的内容。例如,参见于2018年8月17日提交的申请号为62/719,360、发明名称为“视频译码中的参考图像管理(referencepicturemanagementinvideocoding)”的美国临时申请案中描述的方法。或者,可以为每个rpl结构指示大于0的整数值,称为granularity_val。granularity_val的值用于缩放或除表示rpl结构中的strp的poc增量值的每个值。第二种rpl译码模式为利用参考rpl结构和当前rpl结构中的strp具有相同或一致差值的增量poc值的帧间译码模式。为了使用这种模式对rpl进行译码,在码流中指示以下信息。首先,在码流中指示译码模式和参考索引。参考索引是参考rpl结构的索引。参考索引可以如上所述进行译码。然而,机制也可以将参考索引译码为当前rpl结构索引与参考rpl结构索引之间的增量减1,并译码为ue(v)。还在码流中指示偏移。该偏移为参考rpl结构中的strp的增量poc值与当前rpl结构中的strp的增量poc值之间的差值。可以约束该偏移的值仅为正值(例如,如果参考rpl结构中的strp的增量poc值小于当前rpl结构中的strp的增量poc值,则该模式不能用于对当前rpl结构进行译码),仅为负值,或者可以为正值或负值。如果该偏移被译码为ue(v),则该偏移可以用term_minus1来指示。还在码流中指示参考rpl结构中的每个表项的用来表示该表项是否用作当前rpl结构中的表项的一个标志。当一个表项是参考rpl结构中的strp表项并用作当前rpl结构中的表项时,该表项也是当前rpl结构中的strp表项,当前rpl结构中的strp表项的值为参考rpl结构中的表项值减去偏移(如果minus1term用于对偏移进行译码,则加1)。当一个表项为参考rpl结构中的长期参考图像(long-termreferencepicture,ltrp)表项并用作当前rpl结构中的表项时,该表项也是当前rpl结构中的ltrp表项,当前rpl结构中的ltrp表项的值只是从参考rpl结构中的表项复制而来。第三种rpl译码模式利用以下事实:当前rpl结构中的表项(例如strp和ltrp)是参考rpl结构中的表项的超集。也就是说,参考rpl结构中的所有表项与前x(将x替换为参考rpl结构中的表项的数量)个表项相同,还存在其它0个或多个表项。为了使用这种模式对rpl进行译码,在码流中指示以下信息。首先,在码流中指示译码模式和参考索引。参考索引是参考rpl结构的索引。参考索引可以如上所述进行译码。还在码流中指示其它表项的数量。其它表项的数量为当前rpl结构中的表项的数量与参考rpl结构中的表项的数量之间的差值。当一个表项为参考rpl结构中的strp表项时,该表项也是当前rpl结构中的strp表项,当前rpl结构中的strp表项的值只是从参考rpl结构中的表项复制而来。当一个表项为参考rpl结构中的ltrp表项时,该表项也是当前rpl结构中的ltrp表项,当前rpl结构中的ltrp表项只是从参考rpl结构中的表项复制而来。在参考rpl结构中的所有表项都复制到当前rpl结构中之后,对于每个其它表项,指示以下信息:如果码流中使用了长期参考图像(即通过同一参数集中的标志来指示),则指示一个标志来表示其它表项是ltrp表项还是strp表项。如果该表项是ltrp表项,则指示ltrp表项的poclsb。否则,指示strp表项的增量poc。增量poc的值可以指示为前一strp表项的增量,或者只是当前图像的poc的增量。第四种rpl译码模式利用以下事实:当前rpl结构中的表项(例如strp和ltrp)与参考rpl结构中的表项完全相同或者符号值翻转之后完全相同。为了使用这种模式对rpl进行译码,在码流中指示以下信息。首先,指示译码模式和参考索引。参考索引是参考rpl结构的索引。参考索引可以如上所述进行译码。可选地,还将表示符号值是否翻转的标志指示在码流中。当码流使用前向帧间预测(例如,参考poc值小于当前图像的poc值的图像的帧间预测)和后向帧间预测(例如,参考poc值大于当前图像的poc值的图像的帧间预测)进行译码时,对rpl中的参考图像应用以下约束条件。对于一个图像的每个rpl,该rpl中的所有参考图像都具有相同的帧间预测方向,例如,所有参考图像为用于前向帧间预测的参考图像,或者所有参考图像为用于后向帧间预测的参考图像。对于一个图像的一对rpl,rpl0和rpl1中都不包括参考图像,除非以下条件成立。条件就是rpl0和rpl1都包括具有相同顺序的相同参考图像。在这种条件下,从rpl1中删除除rpl1中的第一个参考图像(即索引最小的参考图像)之外的所有参考图像。或者,从rpl0中删除除rpl0中的第一个参考图像(即索引最小的参考图像)之外的所有参考图像。本文公开了视频编码技术,使用一个标志来表示是否可以推断第二参考图像列表结构的候选与第一参考图像列表结构的候选相同。也就是说,当所述标志具有第一值时,所述第二参考图像列表结构的候选不存在于经译码视频码流中并推断与所述第一参考图像列表结构的候选相同。另一方面,当所述标志具有第二值时,所述第二参考图像列表结构的候选存在于所述经译码视频码流中。以这种方式使用所述标志,视频译码中的编码器/解码器(还称为“编解码器”)相比于目前的编解码器有所改进(例如使用更少比特、需要更少带宽、效率更高等)。实际上,改进的视频译码过程在发送、接收和/或观看视频时提供了更好的用户体验。在一个实施例中,候选是可用于对相应块执行帧间预测的运动矢量列表中的一个。在编码过程中,编码器生成用于帧间预测的运动矢量候选列表,选择产生最佳压缩的候选,并通过rpl结构索引指示所选候选。图5为视频码流500的一个实施例的示意图。本文使用的视频码流500还可以称为经译码视频码流、码流或其变体。如图5所示,码流500包括序列参数集(sequenceparameterset,sps)510、图像参数集(pictureparameterset,pps)512、条带头514和图像数据520。sps510包括图像序列(sequenceofpicture,sop)中的所有图像共有的数据。相比之下,pps512包括整个图像共有的数据。条带头514包括当前条带的信息,例如条带类型、要使用的参考图像等。sps510和pps512可以统称为参数集。sps510、pps512和条带头514是网络抽象层(networkabstractionlayer,nal)单元的类型。图像数据520包括与正在编码或解码的图像或视频相关的数据。图像数据520可以简单地称为码流500中携带的载荷或数据。在一个实施例中,码流500中的sps510、pps512、条带头514或其它部分携带多个参考图像列表结构,每个参考图像列表结构包括多个参考图像表项。本领域技术人员将理解,码流500在实际应用中可以包括其它参数和信息。图6为由视频解码器(例如视频解码器30)实现的对经译码视频码流(例如码流500)进行解码的方法600的一个实施例。方法600可以在从视频编码器(例如视频编码器20)直接或间接地接收经解码码流之后执行。方法600改进了解码过程(例如,使得解码过程比传统解码过程更高效、更快等),因为当标志设置为某个值时,可以推断第二参考图像列表结构的候选与第一参考图像列表结构的候选相同。也就是说,与在hevc和avc中一样,不需要每个场景下都在经译码码流中指示所述第二参考图像列表结构。因此实际上提高了编解码器的性能,用户体验更好。在步骤602中,从经译码视频码流(例如视频码流500)中解析标志。在一个实施例中,所述标志表示为rpl1_copy_from_rpl0_flag。在一个实施例中,所述标志包括在所述经译码视频码流的sps(例如sps510)中。在一个实施例中,所述标志的第一值为1(1)。在一个实施例中,所述标志的第二值为0(0)。在一个实施例中,所述标志放置在所述经译码视频码流中的任何预定义参考图像列表结构之前。在步骤604中,从所述经译码视频码流中解析第一参考图像列表结构的候选。在一个实施例中,所述第一参考图像列表结构的候选包括在所述经译码视频码流的sps(例如sps510)中。在一个实施例中,所述标志和所述第一参考图像列表结构的候选单独解析。也就是说,首先解析所述标志,然后解析所述第一参考图像列表结构的候选,反之亦然。在步骤606中,当所述标志具有第一值时,确定第二参考图像列表结构的候选不存在于所述经译码视频码流中并推断所述第二参考图像列表结构的候选与所述第一参考图像列表结构的候选相同。在一个实施例中,当所述标志具有所述第一值时,所述第二参考图像列表结构的候选不存在于所述经译码视频码流的sps(例如sps510)中。在步骤608中,当所述标志具有第二值时,确定所述第二参考图像列表结构的候选存在于所述经译码视频码流中。在步骤610中,使用所述第一参考图像列表结构的候选、所述第二参考图像列表结构的候选或其某种组合来生成参考图像列表。所述参考图像列表可以标识一个或多个图像,例如结合图4所示和描述的图像。在步骤612中,根据所述参考图像列表执行帧间预测,以生成重建块。在一个实施例中,所述重建块可以用于生成或产生一个图像,以在电子设备(例如智能手机、平板电脑、膝上型电脑、个人计算机等)的显示器或屏幕上显示给用户。图7为由视频编码器(例如视频编码器20)实现的对视频码流(例如码流500)进行编码的方法700的一个实施例。方法700可以在(例如视频中的)图像要编码在视频码流中并接着发送给视频解码器(例如视频解码器30)时执行。方法700改进了编码过程(例如,使得编码过程比传统解码过程更高效、更快等),因为当标志设置为某个值时,可以推断第二参考图像列表结构的候选与第一参考图像列表结构的候选相同。也就是说,与在hevc和avc中一样,不需要每个场景下都在经译码码流中指示所述第二参考图像列表结构。因此实际上提高了编解码器的性能,用户体验更好。在步骤702中,当第二参考图像列表结构的候选未编码在视频码流中,且视频解码器推断所述第二参考图像列表结构的候选与第一参考图像列表结构的候选相同时,将具有第一值的标志编码在所述视频码流中。在一个实施例中,所述标志表示为rpl1_copy_from_rpl0_flag。在一个实施例中,所述标志的所述第一值为1(1)。在一个实施例中,所述标志编码在所述经译码视频码流(例如视频码流500)的sps(例如sps510)中。在一个实施例中,当所述标志具有所述第一值时,所述第二参考图像列表结构的候选不存在于所述经译码视频码流的sps中。在一个实施例中,所述标志编码在所述经译码视频码流中的任何预定义参考图像列表结构之前。在步骤704中,当所述第二参考图像列表结构的候选编码在所述视频码流中时,将具有第二值的标志编码在所述视频码流中。在一个实施例中,所述标志的所述第二值为0(0)。在一个实施例中,当所述标志具有所述第一值时,所述第二参考图像列表结构的候选存在于所述经译码视频码流的sps中。在步骤706中,当所述标志以所述第一值作为其值进行编码时,将所述第一参考图像列表结构编码在所述视频码流中。在步骤708中,当所述标志以所述第二值作为其值进行编码时,将所述第一参考图像列表结构和所述第二参考图像列表结构编码在所述视频码流中。在步骤710中,向所述视频解码器(例如视频解码器30)发送所述视频码流。所述视频解码器接收到经编码视频码流之后,就可以进行解码(例如,如上所述),以生成或产生一个图像,在电子设备(例如智能手机、平板电脑、膝上型电脑、个人计算机等)的显示器或屏幕上显示给用户。本文公开的技术的描述是相对于最新的vvcwd提供的。另外,还提供了适合于实现本文公开的技术的定义、语法和语义。首先,提供了几个定义。帧内随机接入点(intrarandomaccesspoint,irap)图像为每个视频编码层(videocodinglayer,vcl)nal单元的nal_unit_type等于irap_nut的经译码图像。长期参考图像(long-termreferencepicture,ltrp)是标识为“用于长期参考”的图像。非irap图像为每个vclnal单元的nal_unit_type等于non_irap_nut的经译码图像。参考图像列表为用于对p条带或b条带进行帧间预测的参考图像的列表。为非irap图像中的每个条带生成两个参考图像列表:参考图像列表0和参考图像列表1。由与一个图像相关的两个参考图像列表中的所有表项参考的唯一图像集包括可以用于相关图像或解码顺序在相关图像之后的任一图像的帧间预测的所有参考图像。在解码p条带的条带数据时,只有参考图像列表0用于帧间预测。在解码b条带的条带数据时,两个参考图像列表都用于帧间预测。在解码i条带的条带数据时,没有参考图像列表用于帧间预测。短期参考图像(short-termreferencepicture,strp)是标识为“用于短期参考”的图像。下面提供了一些缩略语。本文使用的ltrp表示长期参考图像,strp表示短期参考图像。本发明的以下部分提供了适合于实现本文公开的技术的语法和语义。nal单元头语法序列参数集rbsp语法图像参数集rbsp语法条带头语法参考图像列表结构语法nal单元头语义forbidden_zero_bit等于0。nal_unit_type表示nal单元中包括的rbsp数据结构的类型。表4-1:nal单元类型码和nal单元类型类别nuh_temporal_id_plus1减1表示nal单元的时间标识符。nuh_temporal_id_plus1的值不等于0。变量temporalid表示如下:temporalid=nuh_temporal_id_plus1–1。当nal_unit_type等于irap_nut时,经译码条带属于irap图像,temporalid等于0。接入单元中的所有vclnal单元具有相同的temporalid值。经译码图像或接入单元的temporalid值为该经译码图像或接入单元中的vclnal单元的temporalid值。非vclnal单元的temporalid值约束如下:如果nal_unit_type等于sps_nut,则temporalid等于0,且包括nal单元的接入单元的temporalid等于0。否则,如果nal_unit_type等于eos_nut或eob_nut,则temporalid等于0。否则,temporalid大于或等于包括nal单元的接入单元的temporalid。当nal单元为非vclnal单元时,temporalid值等于包括该非vclnal单元的所有接入单元的temporalid值中的最小值。当nal_unit_type等于pps_nut时,temporalid可以大于或等于包括nal单元的接入单元的temporalid,因为所有图像参数集(pictureparameterset,pps)都可以包括在码流的起始处,其中,第一个经译码图像的temporalid等于0。当nal_unit_type等于prefix_sei_nut或suffix_sei_nut时,temporalid可以大于或等于包括nal单元的接入单元的temporalid,因为seinal单元可以包括应用于包括接入单元的码流子集的信息,其中,这些接入单元的temporalid值大于包括seinal单元的接入单元的temporalid。nuh_reserved_zero_7bits等于‘0000000’。nuh_reserved_zero_7bits的其它值可以由itu-t或iso/iec在未来进行规定。解码器忽略(即从码流中删除并丢弃)nuh_reserved_zero_7bits的值不等于‘0000000’的nal单元。序列参数集rbsp语义log2_max_pic_order_cnt_lsb_minus4表示在用于图像顺序编号的解码过程中使用的变量maxpicordercntlsb的值,如下所示:maxpicordercntlsb=2(log2_max_pic_order_cnt_lsb_minus4+4)。log2_max_pic_order_cnt_lsb_minus4的取值范围为0~12(包括端值)。sps_max_dec_pic_buffering_minus1加1表示编码视频序列(codedvideosequence,cvs)所需的解码图像缓冲区的最大大小,以图像存储缓冲区为单位。sps_max_dec_pic_buffering_minus1的取值范围为0~maxdpbsize–1(包括端值),其中,maxdpbsize如其它地方所示。long_term_ref_pics_flag等于0表示没有ltrp用于cvs中的任何经译码图像的帧间预测。long_term_ref_pics_flag等于1表示ltrp可以用于cvs中的一个或多个经译码图像的帧间预测。additional_lt_poc_lsb表示在用于参考图像列表的解码过程中使用的变量maxltpicordercntlsb的值,如下所示:maxltpicordercntlsb=2(log2_max_pic_order_cnt_lsb_minus4+4+additional_lt_poc_lsb)。additional_lt_poc_lsb的取值范围为0~32–log2_max_pic_order_cnt_lsb_minus4–4(包括端值)。如果additional_lt_poc_lsb不存在,则推断additional_lt_poc_lsb的值等于0。all_rpl_entries_same_sign_flag等于1表示每个ref_pic_list_struct(listidx,rplsidx,ltrpflag)中的所有strp表项具有相同的符号值,其中,符号表示正值或负值。all_rpl_entries_same_sign_flag等于0表示每个ref_pic_list_struct(listidx,rplsidx,ltrpflag)中的strp表项可以具有相同的符号值,也可以不具有相同的符号值。rpl1_copy_from_rpl0_flag等于1表示num_ref_pic_lists_in_sps[1]和ref_pic_list_struct(1,rplsidx,ltrpflag)不存在,且以下情况适用:num_ref_pic_lists_in_sps[1]的值设置为num_ref_pic_lists_in_sps[0]的值。推断语法结构ref_pic_list_struct(1,rplsidx,ltrpflag)与ref_pic_list_struct(0,rplsidx,ltrpflag)的值相同。因此,推断ref_pic_list_struct(1,rplsidx,ltrpflag)中的语法元素分别等于ref_pic_list_struct(0,rplsidx,ltrpflag)中的语法元素。num_ref_pic_lists_in_sps[i]表示sps中包括的listidx等于i的语法结构ref_pic_list_struct(listidx,rplsidx,ltrpflag)的数量。num_ref_pic_lists_in_sps[i]的取值范围为0~64(包括端值)。对于listidx的每个值(等于0或1),解码器需要为num_ref_pic_lists_in_sps[i]+1个语法结构ref_pic_list_struct(listidx,rplsidx,ltrpflag)分配内存,因为在当前图像的条带头中可以直接指示一个语法结构ref_pic_list_struct(listidx,rplsidx,ltrpflag)。图像参数集rbsp语义当i等于0时,num_ref_idx_default_active_minus1[i]加1表示num_ref_idx_active_override_flag等于0的p条带或b条带的变量numrefidxactive[0]的推断值;当i等于1时,num_ref_idx_default_active_minus1[i]加1表示num_ref_idx_active_override_flag等于0的b条带的numrefidxactive[1]的推断值。num_ref_idx_default_active_minus1[i]的取值范围为0~14(包括端值)。rpl1_idx_present_flag等于0表示ref_pic_list_sps_flag[1]和ref_pic_list_idx[1]不存在于条带头中。rpl1_idx_present_flag等于1表示ref_pic_list_sps_flag[1]和ref_pic_list_idx[1]可以存在于条带头中。条带头语义如果语法元素slice_pic_parameter_set_id和slice_pic_order_cnt_lsb存在,则条带头语法元素slice_pic_parameter_set_id和slice_pic_order_cnt_lsb的值在经译码图像的所有条带头中都相同。slice_type表示条带的译码类型,如表7-3所示。表7-3:名称与slice_type的关联关系slice_typeslice_type的名称0b(b条带)1p(p条带)2i(i条带)当nal_unit_type等于irap_nut时,即当图像为irap图像时,slice_type等于2。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(包括端值)。如果slice_pic_order_cnt_lsb不存在,则推断slice_pic_order_cnt_lsb等于0。ref_pic_list_sps_flag[i]等于1表示当前图像的参考图像列表i是根据激活sps中的listidx等于i的其中一个语法结构ref_pic_list_struct(listidx,rplsidx,ltrpflag)推导的。ref_pic_list_sps_flag[i]等于0表示当前图像的参考图像列表i是根据当前图像的条带头中直接包括的listidx等于i的语法结构ref_pic_list_struct(listidx,rplsidx,ltrpflag)推导的。当num_ref_pic_lists_in_sps[i]等于0时,ref_pic_list_sps_flag[i]的值等于0。当rpl1_idx_present_flag等于0且ref_pic_list_sps_flag[0]存在时,推断ref_pic_list_sps_flag[1]的值等于ref_pic_list_sps_flag[0]的值。ref_pic_list_idx[i]表示listidx等于i的用于推导当前图像的参考图像列表i的语法结构ref_pic_list_struct(listidx,rplsidx,ltrpflag)在激活sps中包括的listidx等于i的语法结构ref_pic_list_struct(listidx,rplsidx,ltrpflag)列表中的索引。语法元素ref_pic_list_idx[i]由ceil(log2(num_ref_pic_lists_in_sps[i]))个比特表示。如果ref_pic_list_idx[i]不存在,则推断ref_pic_list_idx[i]的值等于0。ref_pic_list_idx[i]的取值范围为0~num_ref_pic_lists_in_sps[i]–1(包括端值)。当rpl1_idx_present_flag等于0且ref_pic_list_sps_flag[0]存在时,推断ref_pic_list_idx[1]的值等于ref_pic_list_idx[0]的值。num_ref_idx_active_override_flag等于1表示p条带和b条带存在语法元素num_ref_idx_active_minus1[0],而b条带存在语法元素num_ref_idx_active_minus1[1]。num_ref_idx_active_override_flag等于0表示语法元素num_ref_idx_active_minus1[0]和num_ref_idx_active_minus1[1]不存在。如果num_ref_idx_active_minus1[i]存在,则num_ref_idx_active_minus1[i]表示变量numrefidxactive[i]的值,如下所示:numrefidxactive[i]=num_ref_idx_active_minus1[i]+1。num_ref_idx_active_minus1[i]的取值范围为0~14(包括端值)。numrefidxactive[i]–1的值表示参考图像列表i中的可以用于解码条带的最大参考索引。当numrefidxactive[i]的值等于0时,参考图像列表i中没有参考索引可以用于解码条带。在i等于0或1的情况下,如果当前条带为b条带且num_ref_idx_active_override_flag等于0,则推断numrefidxactive[i]等于num_ref_idx_default_active_minus1[i]+1。如果当前条带为p条带且num_ref_idx_active_override_flag等于0,则推断numrefidxactive[0]等于num_ref_idx_default_active_minus1[0]+1。如果当前条带为p条带,则推断numrefidxactive[1]等于0。如果当前条带为i条带,则推断numrefidxactive[0]和numrefidxactive[1]都等于0。或者,在i等于0或1的情况下,假设将rplsidx1设置为ref_pic_list_sps_flag[i]?ref_pic_list_idx[i]:num_ref_pic_lists_in_sps[i],并将numrpentries[i]设置为num_strp_entries[i][rplsidx1]+num_ltrp_entries[i][rplsidx1]。当numrefidxactive[i]大于numrpentries[i]时,将numrefidxactive[i]的值设置为numrpentries[i]。参考图像列表结构语义语法结构ref_pic_list_struct(listidx,rplsidx,ltrpflag)可以存在于sps或条带头中。该语法结构的具体含义取决于是包括在条带头中还是包括在sps中:如果语法结构ref_pic_list_struct(listidx,rplsidx,ltrpflag)存在于条带头中,则语法结构ref_pic_list_struct(listidx,rplsidx,ltrpflag)指示当前图像(包括条带的图像)的参考图像列表listidx。否则(存在于sps中),语法结构ref_pic_list_struct(listidx,rplsidx,ltrpflag)表示参考图像列表listidx的候选,本部分剩下内容规定的语义中的术语“当前图像”是指:(1)包括一个或多个条带的每个图像,其中,一个或多个条带包括的ref_pic_list_idx[listidx]等于sps中包括的语法结构ref_pic_list_struct(listidx,rplsidx,ltrpflag)列表中的索引,(2)cvs中的每个图像,其中,cvs具有与激活sps一样的sps。rpl_mode[listidx][rplsidx]表示语法结构ref_pic_list_struct(listidx,rplsidx,ltrpflag)中的语法元素的译码模式。num_strp_entries[listidx][rplsidx]表示语法结构ref_pic_list_struct(listidx,rplsidx,ltrpflag)中的strp表项的数量。num_ltrp_entries[listidx][rplsidx]表示语法结构ref_pic_list_struct(listidx,rplsidx,ltrpflag)中的ltrp表项的数量。如果num_ltrp_entries[listidx][rplsidx]不存在,则推断num_ltrp_entries[listidx][rplsidx]的值等于0。变量numentriesinlist[listidx][rplsidx]的推导方式如下:numentriesinlist[listidx][rplsidx]=num_strp_entries[listidx][rplsidx]+num_ltrp_entries[listidx][rplsidx]。numentriesinlist[listidx][rplsidx]的取值范围为0~sps_max_dec_pic_buffering_minus1(包括端值)。strp_entries_sign_flag[listidx][rplsidx]等于1表示ref_pic_list_struct(listidx,rplsidx,ltrpflag)中的所有strp表项的值大于或等于0。strp_entries_sign_flag[listidx][rplsidx]等于0表示ref_pic_list_struct(listidx,rplsidx,ltrpflag)中的所有strp表项的值小于0。lt_ref_pic_flag[listidx][rplsidx][i]等于1表示语法结构ref_pic_list_struct(listidx,rplsidx,ltrpflag)中的第i个表项为ltrp表项。lt_ref_pic_flag[listidx][rplsidx][i]等于0表示语法结构ref_pic_list_struct(listidx,rplsidx,ltrpflag)中的第i个表项为strp表项。如果lt_ref_pic_flag[listidx][rplsidx][i]不存在,则推断lt_ref_pic_flag[listidx][rplsidx][i]的值等于0。码流一致性的要求为:lt_ref_pic_flag[listidx][rplsidx][i](i的所有值在范围0~numentriesinlist[listidx][rplsidx]–1(包括端值)内)的总和等于num_ltrp_entries[listidx][rplsidx]。strp_entry_sign_flag[listidx][rplsidx][i]等于1表示ref_pic_list_struct(listidx,rplsidx,ltrpflag)中的第i个表项的值大于或等于0。strp_entries_sign_flag[listidx][rplsidx]等于0表示ref_pic_list_struct(listidx,rplsidx,ltrpflag)中的第i个表项的值小于0。如果strp_entries_sign_flag[listidx][rplsidx][i]不存在,则推断strp_entries_sign_flag[listidx][rplsidx][i]的值等于strp_entries_sign_flag[listidx][rplsidx]的值。当第i个表项为语法结构ref_pic_list_struct(rplsidx,ltrpflag)中的第一个strp表项时,delta_poc_st[listidx][rplsidx][i]表示当前图像和由第i个表项参考的图像的图像顺序编号值之间的差值,或者,当第i个表项为语法结构ref_pic_list_struct(rplsidx,ltrpflag)中的strp表项但不是第一个strp表项时,delta_poc_st[listidx][rplsidx][i]表示由语法结构ref_pic_list_struct(listidx,rplsidx,ltrpflag)中的第i个表项和前一strp表项参考的图像的图像顺序编号值之间的差值。delta_poc_st[listidx][rplsidx][i]的取值范围为–215~215–1(包括端值)。poc_lsb_lt[listidx][rplsidx][i]表示由语法结构ref_pic_list_struct(listidx,rplsidx,ltrpflag)中的第i个表项参考的图像的图像顺序编号对maxltpicordercntlsb取模的值。语法元素poc_lsb_lt[listidx][rplsidx][i]的长度为log2(maxltpicordercntlsb)个比特。阵列deltapocst[listidx][rplsidx]的推导方式如下:mode1_ref_rpl_idx_delta_minus1[listidx][rplsidx]加1表示rplsidx的值与参考ref_pic_list_struct(listidx,rplsidx,ltrpflag)的索引之间的差值。当rpl_mode[listidx][rplsidx]等于1时,变量refrplidx的推导方式如下:refrplidx=rplsidx–(mode1_ref_rpl_idx_delta_minus1[listidx][rplsidx]+1)strp_offset_val_minus1[listidx][rplsidx]加1表示从参考ref_pic_list_struct(listidx,rplsidx,ltrpflag)中的每个strp表项中减去的值,以计算当前ref_pic_list_struct(listidx,rplsidx,ltrpflag)的delta_poc_st[listidx][rplsidx][i]的值。ref_entry_used_flag[listidx][rplsidx][i]等于1表示ref_pic_list_struct(0,refrplidx,ltrpflag)中的第i个表项用作ref_pic_list_struct(listidx,rplsidx,ltrpflag)中的表项。ref_entry_used_flag[listidx][rplsidx]等于0表示ref_pic_list_struct(0,refrplidx,ltrpflag)中的第i个表项不用作ref_pic_list_struct(listidx,rplsidx,ltrpflag)中的表项。当rpl_mode[listidx][rplsidx]等于1时,以下内容适用于推断语法元素lt_ref_pic_flag[listidx][rplsidx][i]的值;当lt_ref_pic_flag[listidx][rplsidx][i]等于1时,以下内容适用于推断poc_lsb_lt[listidx][rplsidx][i]的值,并且适用于推导变量deltapocst[listidx][rplsidx][i](当lt_ref_pic_flag[listidx][rplsidx][i]等于0时)和变量numentriesinlist[listidx][rplsidx]:mode2_ref_rpl_idx[listidx][rplsidx]表示参考ref_pic_list_struct(listidx,rplsidx,ltrpflag)的索引。语法元素mode2_ref_rpl_idx[listidx][rplsidx]由ceil(log2(num_ref_pic_lists_in_sps[0]))个比特表示。当rpl_mode[listidx][rplsidx]等于2时,变量refrplidx的推导方式如下:refrplidx=mode2_ref_rpl_idx[listidx][rplsidx]num_additional_entries[listidx][rplsidx]表示numentriesinlist[listidx][rplsidx]和numentriesinlist[0][refrplidx]之间的增量。add_lt_ref_pic_flag[listidx][rplsidx][i]用于推断lt_ref_pic_flag[listidx][rplsidx][numentriesinlist[0][refrplidx]+i]的值。如果add_lt_ref_pic_flag[listidx][rplsidx][i]不存在,则推断add_lt_ref_pic_flag[listidx][rplsidx][i]的值等于0。add_strp_entry_sign_flag[listidx][rplsidx][i]用于推断strp_entry_sign_flag[listidx][rplsidx][numentriesinlist[0][refrplidx]+i]的值。如果add_strp_entries_sign_flag[listidx][rplsidx][i]不存在,则将add_strp_entries_sign_flag[listidx][rplsidx][i]的值设置为strp_entries_sign_flag[listidx][rplsidx]的值。add_delta_poc_st[listidx][rplsidx][i]用于推断delta_poc_st[listidx][rplsidx][numentriesinlist[0][refrplidx]+i]的值。add_delta_poc_st[listidx][rplsidx][i]的取值范围为–215~215–1(包括端值)。add_poc_lsb_lt[listidx][rplsidx][i]用于推断poc_lsb_lt[listidx][rplsidx][numentriesinlist[0][refrplidx]+i]的值。语法元素add_poc_lsb_lt[listidx][rplsidx][i]的长度为log2(maxltpicordercntlsb)个比特。当rpl_mode[listidx][rplsidx]等于2时,以下内容适用于推断语法元素strp_entries_sign_flag[listidx][rplsidx]和lt_ref_pic_flag[listidx][rplsidx][i]的值;当lt_ref_pic_flag[listidx][rplsidx][i]等于1时,以下内容适用于推断poc_lsb_lt[listidx][rplsidx][i]的值,并且适用于推导变量deltapocst[listidx][rplsidx][i](当lt_ref_pic_flag[listidx][rplsidx][i]等于0时)和变量numentriesinlist[listidx][rplsidx]:mode3_ref_rpl_idx[listidx][rplsidx]表示参考ref_pic_list_struct(listidx,rplsidx,ltrpflag)的索引。语法元素mode3_ref_rpl_idx[listidx][rplsidx]由ceil(log2(num_ref_pic_lists_in_sps[0]))个比特表示。当rpl_mode[listidx][rplsidx]等于3时,变量refrplidx的推导方式如下:refrplidx=mode3_ref_rpl_idx[listidx][rplsidx]当rpl_mode[listidx][rplsidx]等于3时,以下内容适用于推断语法元素lt_ref_pic_flag[listidx][rplsidx][i]的值;当lt_ref_pic_flag[listidx][rplsidx][i]等于1时,以下内容适用于推断poc_lsb_lt[listidx][rplsidx][i]的值,并且适用于推导变量deltapocst[listidx][rplsidx][i](当lt_ref_pic_flag[listidx][rplsidx][i]等于0时)和变量numentriesinlist[listidx][rplsidx]:下面提供了通用解码过程。当前图像currpic的解码过程操作如下。下面详述nal单元的解码。以下过程使用条带头层和更高层的语法元素详述以下解码过程。推导与图像顺序编号相关的变量和函数。这只对图像的第一个条带调用。在非irap图像中的每个条带的解码过程开始时,调用用于参考图像列表构建的解码过程来推导参考图像列表0(refpiclist[0])和参考图像列表1(refpiclist[1)])。调用用于参考图像标识的解码过程,其中,参考图像可以被标识为“不用于参考”或“用于长期参考”。这只对图像的第一个条带调用。调用用于编码树单元、缩放、变换、环内滤波等的解码过程。在当前图像的所有条带都完成解码之后,将当前解码图像标识为“用于短期参考”。下面提供了nal单元解码过程。该过程的输入为当前图像的nal单元及其相关的非vclnal单元。该过程的输出为封装在nal单元内的解析出的rbsp语法结构。用于每个nal单元的解码过程从nal单元中提取rbsp语法结构,然后解析该rbsp语法结构。下面提供了条带解码过程。用于图像顺序编号的解码过程如下所示。该过程的输出为picordercntval,即当前图像的图像顺序编号。图像顺序编号用于标识图像、在融合(merge)模式下推导运动参数和运动矢量预测以及用于解码器一致性检查。每个经译码图像与图像顺序编号变量(表示为picordercntval)相关。如果当前图像不是irap图像,则变量prevpicordercntlsb和prevpicordercntmsb的推导方式如下:假设prevtid0pic为解码顺序中的temporalid等于0的前一图像。将变量prevpicordercntlsb设置为prevtid0pic的slice_pic_order_cnt_lsb。将变量prevpicordercntmsb设置为prevtid0pic的picordercntmsb。当前图像的变量picordercntmsb推导如下:如果当前图像为irap图像,则将picordercntmsb设置为0。否则,picordercntmsb的推导方式如下:picordercntval的推导方式如下:picordercntval=picordercntmsb+slice_pic_order_cnt_lsb。由于推断irap图像的slice_pic_order_cnt_lsb等于0,而且将prevpicordercntlsb和prevpicordercntmsb都设置为0,因此所有irap图像的picordercntval都等于0。picordercntval的取值范围为–231~231–1(包括端值)。在一个cvs中,任意两个经译码图像的picordercntval值不相同。在解码过程中的任何时刻,dpb中的任意两个参考图像的picordercntval&(maxrefpicordercntlsb–1)的值不相同。函数picordercnt(picx)表示如下:picordercnt(picx)=图像picx的picordercntval。函数diffpicordercnt(pica,picb)表示如下:diffpicordercnt(pica,picb)=picordercnt(pica)–picordercnt(picb)。码流不包括使解码过程中使用的diffpicordercnt(pica,picb)的值不在范围–215~215–1(包括端值)内的数据。假设x为当前图像,y和z为同一cvs中的另外两个图像,当diffpicordercnt(x,y)和diffpicordercnt(x,z)都为正或都为负时,认为y和z相对于x处于相同的输出顺序方向上。下面提供了用于参考图像列表构建的解码过程。在非irap图像中的每个条带的解码过程开始时,调用该过程。参考图像通过参考索引进行寻址。参考索引是在参考图像列表中的索引。在解码i条带时,不使用参考图像列表来解码条带数据。在解码p条带时,只使用参考图像列表0(即refpiclist[0])来解码条带数据。在解码b条带时,同时使用参考图像列表0和参考图像列表1(即refpiclist[1])来解码条带数据。在非irap图像中的每个条带的解码过程开始时,推导参考图像列表refpiclist[0]和refpiclist[1]。使用这两个参考图像列表来标识参考图像或解码条带数据。如果非irap图像中的i条带不是该图像中的第一个条带,则为了检查码流一致性,可以推导refpiclist[0]和refpiclist[1],但解码当前图像或解码顺序在当前图像之后的图像不一定需要推导refpiclist[0]和refpiclist[1]。如果p条带不是图像中的第一个条带,则为了检查码流一致性,可以推导refpiclist[1],但解码当前图像或解码顺序在当前图像之后的图像不一定需要推导refpiclist[1]。参考图像列表refpiclist[0]和refpiclist[1]的构建方式如下:在每个i等于0或1的情况下,refpiclist[i]中的前numrefidxactive[i]个表项称为refpiclist[i]中的激活表项,refpiclist[i]中的其它表项称为refpiclist[i]中的非激活表项。如果lt_ref_pic_flag[i][j]等于0,则refpiclist[i][j](j在范围0~numentriesinlist[i]–1(包括端值)内)中的每个表项称为strp表项,否则称为ltrp表项。某个图像有可能由refpiclist[0]中的表项和refpiclist[1]中的表项共同参考。某个图像还有可能由refpiclist[0]中的多个表项或refpiclist[1]中的多个表项参考。refpiclist[0]中的激活表项和refpiclist[1]中的激活表项共同参考所有可以用于当前图像和解码顺序在当前图像之后的一个或多个图像的帧间预测中的参考图像。refpiclist[0]中的非激活表项和refpiclist[1]中的非激活表项共同参考所有不用于当前图像的帧间预测中、但可以用于解码顺序在当前图像之后的一个或多个图像的帧间预测中的参考图像。refpiclist[0]或refpiclist[1]中可以存在一个或多个等于“无参考图像”的表项,因为dpb中不存在对应的图像。忽略refpiclist[0]或refpiclist[0]中等于“无参考图像”的每个非激活表项。为refpiclist[0]或refpiclist[1]中等于“无参考图像”的每个激活表项推断无意图像丢失。码流一致性的要求为使用以下约束条件:在每个i等于0或1的情况下,numentriesinlist[i][rplsidx[i]]不小于numrefidxactive[i]。由refpiclist[0]或refpiclist[1]中的每个激活表项参考的图像存在于dpb中,并且其temporalid小于或等于当前图像的temporalid。可选地,还可以指定以下约束条件:refpiclist[0]或refpiclist[1]中的任何非激活表项的表项索引不用作解码当前图像的参考索引。可选地,还可以指定以下约束条件:refpiclist[0]或refpiclist[1]中的非激活表项与refpiclist[0]或refpiclist[1]中的任何其它表项不参考同一个图像。图像中的条带的refpiclist[0]或refpiclist[1]中的strp表项与同一图像中的同一条带或不同条带的refpiclist[0]或refpiclist[1]中的ltrp表项不参考同一个图像。当前图像不由refpiclist[0]或refpiclist[1]中的任何表项参考。当前图像的picordercntval与由ltrp表项参考的图像的picordercntval之间的差值大于或等于224,refpiclist[0]或refpiclist[1]中不存在这种表项。假设setofrefpics为由refpiclist[0]中的所有表项和refpiclist[1]中的所有表项参考的唯一图像集。setofrefpics中的图像的数量小于或等于sps_max_dec_pic_buffering_minus1,而且一个图像中的所有条带具有相同的setofrefpics。下面提供了用于参考图像标识的解码过程。在解码条带头和用于条带的参考图像列表重建的解码过程之后,但在解码条带数据之前,每个图像调用一次该过程。该过程可能使得将dpb中的一个或多个参考图像标识为“不用于参考”或“用于长期参考”。dpb中的解码图像可以被标识为“不用于参考”、“用于短期参考”或“用于长期参考”,但在解码过程中的任何给定时刻,这三种标识状态只能存在一种。将其中一个标识状态指定给一个图像会隐式地删除其它标识状态(如果适用)。当一个图像被标识为“用于参考”时,这统一是指将该图像标识为“用于短期参考”或“用于长期参考”(但不是同时)。如果当前图像为irap图像,则将dpb中当前包括的所有参考图像(如果有)都标识为“不用于参考”。strp通过它们的picordercntval值标识。ltrp通过它们的picordercntval值的log2(maxltpicordercntlsb)个lsb标识。对于refpiclist[0]或refpiclist[1]中的每个ltrp表项,当被参考的图像为strp时,将该图像标识为“用于长期参考”。将dpb中的未由refpiclist[0]或refpiclist[1]中的任何表项参考的每个参考图像都标识为“不用于参考”。图8为本发明一个实施例提供的视频译码设备800(例如视频编码器20或视频解码器30)的示意图。视频译码设备800适用于实现本文描述的公开实施例。视频译码设备800包括:入端口810和接收单元(rx)820,用于接收数据;处理器、逻辑单元或中央处理器(centralprocessingunit,cpu)830,用于处理所述数据;发送单元(tx)840和出端口850,用于发送所述数据;存储器860,用于存储所述数据。视频译码设备800还可以包括包括与入端口810、接收单元820、发送单元840和出端口850耦合的光电(optical-to-electrical,oe)组件和电光(electrical-to-optical,eo)组件,用作光信号或电信号的出口或入口。处理器830通过硬件和软件实现。处理器830可以实现为一个或多个cpu芯片、一个或多个核(例如多核处理器)、一个或多个现场可编程门阵列(field-programmablegatearray,fpga)、一个或多个专用集成电路(applicationspecificintegratedcircuit,asic)以及一个或多个数字信号处理器(digitalsignalprocessor,dsp)。处理器830与入端口810、接收器单元820、发送单元840、出端口850和存储器860通信。处理器830包括译码模块870。译码模块870实现上文描述的公开实施例。例如,译码模块870执行、处理、准备或提供各种网络连接功能。因此,将译码模块870包含在内为视频译码设备800的功能提供了实质性的改进,并且影响了视频译码设备800到不同状态的转换。或者,以存储在存储器860中并由处理器830执行的指令来实现译码模块870。视频译码设备800还可以包括输入和/或输出(input/output,i/o)设备880,用于与用户进行数据通信。i/o设备880可以包括输出设备,例如显示视频数据的显示器、输出音频数据的扬声器等。i/o设备880还可以包括键盘、鼠标、轨迹球等输入设备和/或与上述输出设备进行交互的对应接口。存储器860包括一个或多个磁盘、一个或多个磁带机以及一个或多个固态硬盘,并且可以用作溢出数据存储设备,以在选择程序来执行时存储此类程序,并且存储在执行程序过程中读取的指令和数据。存储器860可以是易失性和/或非易失性,并且可以是只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、三态内容寻址存储器(ternarycontent-addressablememory,tcam)和/或静态随机存取存储器(staticrandom-accessmemory,sram)。图9为译码模块900的一个实施例的示意图。在本实施例中,译码模块900在视频译码设备902(例如视频编码器20或视频解码器30)中实现。视频译码设备902包括接收模块901。接收模块901用于接收图像进行编码或者接收码流进行解码。视频译码设备902包括与接收模块901耦合的发送模块907。发送模块907用于向解码器发送所述码流或者向显示模块(例如多个i/o设备880中的一个i/o设备)发送解码图像。视频译码设备902包括存储模块903。存储模块903与接收模块901或发送模块907中的至少一个耦合。存储模块903用于存储指令。视频译码设备902还包括处理模块905。处理模块905与存储模块903耦合。处理模块905用于执行存储在存储模块903中的指令,以执行本文公开的方法。还应理解,本文中阐述的示例性方法的步骤不一定需要按照所描述的顺序执行,并且这些方法的步骤的顺序应理解为仅仅是示例性的。同样地,在与本发明各种实施例相一致的方法中,这些方法可以包括其它步骤,并且某些步骤可以省略或组合。虽然本发明提供了若干个实施例,但应理解,在不脱离本发明的精神或范围的情况下,所公开的系统和方法可能通过其它多种具体形式体现。本发明示例应被视为说明性而非限制性的,且本发明并不限于本文所给出的细节。例如,各种元件或组件可以组合或集成在另一系统中,或者某些特征可以省略或不实施。另外,在不脱离本发明范围的情况下,各种实施例中描述及图示为独立或分离的技术、系统、子系统和方法可以与其它系统、模块、技术或方法组合或集成。展示或描述为彼此耦合或直接耦合或者通信的其它项也可以采用电方式、机械方式或其它方式经由某一接口、设备或中间组件间接地耦合或通信。变化、替换和变更的其它示例可由本领域技术人员确定,并可在不脱离本文公开的精神和范围的情况下举例。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1