CN115314709B - 编解码器、译码设备及对应的方法和介质 - Google Patents
编解码器、译码设备及对应的方法和介质 Download PDFInfo
- Publication number
- CN115314709B CN115314709B CN202210734828.4A CN202210734828A CN115314709B CN 115314709 B CN115314709 B CN 115314709B CN 202210734828 A CN202210734828 A CN 202210734828A CN 115314709 B CN115314709 B CN 115314709B
- Authority
- CN
- China
- Prior art keywords
- layer
- inter
- picture
- entry
- reference picture
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
- H04N19/159—Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/172—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/184—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
- H04N19/33—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the spatial domain
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明公开了一种视频译码机制。所述机制包括:接收码流,其中,所述码流包括当前图像和参考图像列表结构,所述参考图像列表结构包括层间参考图像标志;根据所述层间参考图像标志确定与所述当前图像相关联的所述参考图像列表结构中的条目是层间参考图像(inter‑layer reference picture,ILRP)条目;当所述条目是所述ILRP条目时,根据所述参考图像列表结构中的所述条目表示的层间参考图像对所述当前图像进行解码;转发所述当前图像,以作为解码视频序列的一部分显示。
Description
本申请是分案申请,原申请的申请号是202080039118.9,原申请日是2020年5月19日,原申请的全部内容通过引用结合在本申请中。
技术领域
本发明大体上涉及视频译码,具体涉及在视频译码中使用层间预测时的参考图像管理。
背景技术
即使视频较短,也需要大量的视频数据来描述,当数据要在带宽容量受限的通信网络中流式传输或以其它方式传输时,这样可能会造成困难。因此,视频数据通常要先压缩,然后通过现代电信网络进行传输。由于内存资源有限,当在存储设备中存储视频时,需要考虑该视频的大小。视频压缩设备通常在信源侧使用软件和/或硬件对视频数据进行编码,然后传输或存储视频数据,从而减少表示数字视频图像所需的数据量。然后,对视频数据进行解码的视频解压缩设备在目的地侧接收压缩数据。在网络资源有限以及对更高视频质量的需求不断增长的情况下,需要改进压缩和解压缩技术,这些改进的技术在几乎不影响图像质量的情况下能够提高压缩比。
发明内容
在一个实施例中,本发明包括在解码器中实现的方法,所述方法包括:解码器的接收器接收码流,其中,所述码流包括当前图像和参考图像列表结构,所述参考图像列表结构包括层间参考图像标志;所述解码器的处理器根据所述层间参考图像标志确定与所述当前图像相关联的所述参考图像列表结构中的条目是层间参考图像(inter-layer referencepicture,ILRP)条目;当所述条目是所述ILRP条目时,所述处理器根据所述参考图像列表结构中的所述条目表示的层间参考图像对所述当前图像进行解码。
视频译码***可以根据帧间预测对图像进行编码。在帧间预测中,一个图像是参考另一个图像进行译码的。正在被译码的图像称为当前图像,用作参考的图像称为参考图像。一些视频译码***通过使用参考图像列表来跟踪参考图像。一些视频译码***使用可分级视频编码。在可分级视频编码中,视频序列被译码为基础层和一个或多个增强层。在这种情况下,一个图像可以划分为多个部分,这些部分存在于不同的层中。例如,图像的低层版本可以比图像的高层版本的质量低。此外,图像的低层版本可以比图像的高层版本小(例如,低层版本具有较小的宽度和/或高度)。当使用层时,当前层中的图像可以:根据帧内预测(没有参考图像)译码;通过参考同一层中的参考图像,根据帧间预测译码;或者通过参考不同层中的参考图像,根据层间预测译码。一些参考图像管理***可以不用于管理层间预测中使用的参考图像。本示例包括在使用层间预测时管理参考图像列表的机制。参考图像列表可以包括译码视频使用的每个参考图像的条目。然后,标志可以用于表示每个条目包含帧间预测参考图像或层间参考图像。在一个示例中,包含参考图像列表的语法结构的一组参考图像标志可以表示为inter_layer_ref_pic_flag[listIdx][rplsIdx][i]。此外,ILRP层指示符可用于表示哪一层包含表示的层间参考图像。然后,解码器可以使用参考图像标志和ILRP层指示符来选择正确的层间参考图像,以便执行层间预测。因此,所公开的机制使得编码器和/或解码器具有附加的功能。此外,所公开的机制可以提高译码效率,这可以减少编码器和/或解码器侧处理器、存储器和/或网络资源的使用率。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述参考图像列表结构还包括ILRP层指示符,所述方法还包括:当所述条目是所述ILRP条目时,所述处理器根据所述ILRP层指示符确定所述层间参考图像所在的层。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述参考图像列表结构表示为ref_pic_list_struct(listIdx,rplsIdx),其中,listIdx标识参考图像列表,rplsIdx标识所述参考图像列表中的条目,ref_pic_list_struct是语法结构。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述层间参考图像标志表示为inter_layer_ref_pic_flag[listIdx][rplsIdx][i],其中,当ref_pic_list_struct(listIdx,rplsIdx)中的第i个条目是所述ILRP条目时,inter_layer_ref_pic_flag[listIdx][rplsIdx][i]等于1,当ref_pic_list_struct(listIdx,rplsIdx)中的第i个条目不是所述ILRP条目时,inter_layer_ref_pic_flag[listIdx][rplsIdx][i]等于0。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,还包括:当所述条目不是所述ILRP条目时,所述处理器根据基于所述参考图像列表结构中的所述条目指示的层内参考图像的层内预测,对所述当前图像进行解码。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,ref_pic_list_struct(listIdx,rplsIdx)和inter_layer_ref_pic_flag[listIdx][rplsIdx][i]包含在所述码流中的序列参数集(sequence parameter set,SPS)中。
可选地,根据上述任一方面,在该方面的另一种实现方式中,所述层间参考图像与所述当前图像位于同一接入单元(access unit,AU)中,所述层间参考图像与比所述当前图像的层标识符小的层标识符相关联。
在一个实施例中,本发明包括一种在编码器中实现的方法,所述方法包括:所述编码器的处理器将当前图像编码到码流中,其中,所述当前图像是根据基于层间参考图像的层间预测而编码的;所述处理器将参考图像列表结构编码到所述码流中,其中,所述参考图像列表结构包括多个参考图像的多个条目,所述多个参考条目包括与所述当前图像相关联的条目,所述条目表示所述层间参考图像;所述处理器将层间参考图像标志编码到所述码流中,其中,所述层间参考图像标志表示与所述当前图像相关联的所述条目是ILRP条目;耦合到所述处理器的存储器存储所述码流,其中,所述码流用于与解码器通信。
视频译码***可以根据帧间预测对图像进行编码。在帧间预测中,一个图像是参考另一个图像进行译码的。正在被译码的图像称为当前图像,用作参考的图像称为参考图像。一些视频译码***通过使用参考图像列表来跟踪参考图像。一些视频译码***使用可分级视频编码。在可分级视频编码中,视频序列被译码为基础层和一个或多个增强层。在这种情况下,一个图像可以划分为多个部分,这些部分存在于不同的层中。例如,图像的低层版本可以比图像的高层版本的质量低。此外,图像的低层版本可以比图像的高层版本小(例如,低层版本具有较小的宽度和/或高度)。当使用层时,当前层中的图像可以:根据帧内预测(没有参考图像)译码;通过参考同一层中的参考图像,根据帧间预测译码;或者通过参考不同层中的参考图像,根据层间预测译码。一些参考图像管理***可以不用于管理层间预测中使用的参考图像。本示例包括在使用层间预测时管理参考图像列表的机制。参考图像列表可以包括译码视频使用的每个参考图像的条目。然后,标志可以用于表示每个条目包含帧间预测参考图像或层间参考图像。在一个示例中,包含参考图像列表的语法结构的一组参考图像标志可以表示为inter_layer_ref_pic_flag[listIdx][rplsIdx][i]。此外,ILRP层指示符可用于表示哪一层包含表示的层间参考图像。然后,解码器可以使用参考图像标志和ILRP层指示符来选择正确的层间参考图像,以便执行层间预测。因此,所公开的机制使得编码器和/或解码器具有附加的功能。此外,所公开的机制可以提高译码效率,这可以减少编码器和/或解码器侧处理器、存储器和/或网络资源的使用率。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,还包括:所述处理器将ILRP层指示符编码到所述码流中,其中,所述ILRP层指示符表示所述层间参考图像所在的层。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述参考图像列表结构表示为ref_pic_list_struct(listIdx,rplsIdx),其中,listIdx标识参考图像列表,rplsIdx标识所述参考图像列表中的条目,ref_pic_list_struct是根据listIdx和rplsIdx返回所述条目的语法结构。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述层间参考图像标志表示为inter_layer_ref_pic_flag[listIdx][rplsIdx][i],其中,当ref_pic_list_struct(listIdx,rplsIdx)中的第i个条目是所述ILRP条目时,inter_layer_ref_pic_flag[listIdx][rplsIdx][i]等于1,当ref_pic_list_struct(listIdx,rplsIdx)中的第i个条目不是所述ILRP条目时,inter_layer_ref_pic_flag[listIdx][rplsIdx][i]等于0。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,将ref_pic_list_struct(listIdx,rplsIdx)和inter_layer_ref_pic_flag[listIdx][rplsIdx][i]被编码在所述码流中的SPS中。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,ref_pic_list_struct(listIdx,rplsIdx)和inter_layer_ref_pic_flag[1istIdx][rplsIdx][i]被编码到与所述当前图像相关联的标头中。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述层间参考图像与所述当前图像位于同一AU中,所述层间参考图像与比所述当前图像的层标识符小的层标识符相关联。
在一个实施例中,本发明包括视频译码设备,所述视频译码设备包括:处理器、耦合到所述处理器的接收器、耦合到所述处理器的存储器和耦合到所述处理器的发送器,其中,所述处理器、所述接收器、所述存储器和所述发送器用于执行上述任一方面所述的方法。
在一个实施例中,本发明包括一种非瞬时性计算机可读介质,所述非瞬时性计算机可读介质包括供视频译码设备使用的计算机程序产品,其中,所述计算机程序产品包括存储在所述非瞬时性计算机可读介质中的计算机可执行指令,当所述计算机可执行指令由处理器执行时,使得所述视频译码设备执行根据上述任一方面所述的方法。
在一个实施例中,本发明包括一种解码器,所述解码器包括:接收模块,其中,所述接收模块用于接收码流,所述码流包括当前图像、参考图像列表结构和层间参考图像标志;确定模块,其中,所述确定模块用于根据所述层间参考图像标志确定与所述当前图像相关联的所述参考图像列表结构中的条目是否是ILRP条目;解码模块,其中,所述解码模块用于当所述参考图像列表结构中的所述条目是所述ILRP条目时,根据基于所述参考图像列表结构中的所述条目表示的层间参考图像的层间预测,对所述当前图像进行解码;转发模块,其中,所述转发模块用于转发所述当前图像,以作为解码视频序列的一部分显示。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述解码器还用于执行根据上述任一方面所述的方法。
在一个实施例中,本发明包括编码器,所述编码器包括:编码模块,其中,所述编码模块用于:将当前图像编码到码流中,其中,所述当前图像是根据基于层间参考图像的层间预测而编码的;将参考图像列表结构编码到所述码流中,其中,所述参考图像列表结构包括多个参考图像的多个条目,所述多个参考条目包括与所述当前图像相关联的条目,所述条目表示所述层间参考图像;将层间参考图像标志编码到所述码流中,其中,所述层间参考图像标志表示与所述当前图像相关联的所述条目是ILRP条目;存储模块,用于存储所述码流,其中,所述码流用于与解码器通信。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述编码器还用于执行根据上述任一方面所述的方法。
为了清楚起见,上述任一实施例可以与上述其它实施例中任何一个或多个组合以创建本发明范围内的新实施例。
从结合附图和权利要求书的以下详细描述中,将更清楚地理解这些和其它特征。
附图说明
为了更完整地理解本发明,结合附图和具体实施方式,参考以下简要描述,其中,相同的附图标记表示相同的部件。
图1为对视频信号进行译码的示例性方法的流程图。
图2为用于视频译码的示例性编码和解码(编解码)***的示意图。
图3为示例性视频编码器的示意图。
图4为示例性视频解码器的示意图。
图5为单向帧间预测的示例的示意图。
图6为双向帧间预测的示例的示意图。
图7为基于层的预测的示例的示意图。
图8为示例性参考图像列表结构的示意图。
图9为包含译码工具参数以支持层间预测的示例性码流的示意图。
图10为示例性视频译码设备的示意图。
图11为根据层间预测将视频序列编码到码流中的示例性方法的流程图。
图12为当使用层间预测时从码流中解码视频序列的示例性方法的流程图。
图13为当使用层间预测时对码流中的图像的视频序列进行译码的示例性***的示意图。
具体实施方式
首先应理解,尽管下文提供了一个或多个实施例的说明性实现方式,但所公开的***和/或方法可以使用任何数量的技术来实现,无论该技术是当前已知的技术还是现有的技术。本发明不应限于下文所说明的说明性实现方式、附图和技术,包括本文所说明和描述的示例性设计和实现方式,而是可在所附权利要求书的范围以及其等效部分的完整范围内修改。
以下术语定义如下,除非在本文相反的上下文中使用。具体地,下述定义旨在更加清楚地描述本发明。但是,术语在不同的上下文中可能具有不同的描述。因此,下述定义应被视为补充信息,而不应被视为对此处为这些术语提供的描述的任何其它定义进行限制。
码流是包括视频数据的一系列比特,这些视频数据经过压缩后在编码器与解码器之间传输。编码器是一种使用编码过程将视频数据压缩到码流中的设备。解码器是一种使用解码过程从码流中重建视频数据进行显示的设备。图像(picture/image)是创建帧(frame)或帧场的亮度样本阵列和/或色度样本阵列。为了清楚描述,正在被编码或解码的图像可以称为当前图像。参考图像是包含可以在根据帧间预测和/或层间预测通过参考对其它图像进行译码时使用的参考样本的图像。参考图像列表是用于帧间预测和/或层间预测的一列参考图像。一些视频译码***参考两个图像列表,这两个图像列表可以表示为参考图像列表1和参考图像列表0。参考图像列表结构是包含多个参考图像列表的可寻址语法结构。层为一组图像,这些图像都与类似的大小、质量、分辨率、信噪比、能力等类似的特征值相关联。层标识符(layer identifier,ID)是与图像相关联的数据项,并表示该图像是表示的层的一部分。帧间预测是通过参考与当前图像不同的参考图像中的指示样本对当前图像中的样本进行译码的机制,其中,参考图像和当前图像位于同一层中。在层间上下文中,帧间预测也可以称为层内预测,因为当前图像和参考图像位于同一层中。层间预测是通过参考参考图像中的指示样本对当前图像中的样本进行译码的机制,其中,当前图像和参考图像位于不同的层中,因此具有不同的层ID。层间参考图像是用于层间预测的参考图像。一些视频译码***可能要求当前图像和相关联层间参考图像包括在同一接入单元(accessunit,AU)中。参考图像列表结构条目是参考图像列表结构中的可寻址位置,该可寻址位置表示与参考图像列表相关联的参考图像。层间参考图像(inter-layer referencepicture,ILRP)条目是包含用于层间预测的参考图像的条目。层间参考图像标志是表示参考图像列表结构的条目中的参考图像为层间参考图像的数据。ILRP层指示符是表示与当前图像参考的层间参考图像相关联的层的数据。条带头是译码条带(slice)的一部分,该译码条带包含与条带中表示的分块(tile)中的所有视频数据相关的数据元素。序列参数集(sequence parameter set,SPS)是包含与图像序列相关的数据的参数集。AU是与相同显示时间(例如,相同图像顺序编号)相关联的一个或多个译码图像的集合,该AU用于从解码图像缓冲区(decoded picture buffer,DPB)中输出(例如,以便该AU显示给用户)。解码视频序列是由解码器重建的准备向用户显示的图像序列。
本文使用以下缩略语:编码树块(coding tree block,CTB)、编码树单元(codingtree unit,CTU)、编码单元(coding unit,CU)、编码视频序列(coded video sequence,CVS)、解码图像缓冲区(decoded picture buffer,DPB)、联合视频专家组(joint videoexperts team,JVET)、运动约束分块集(motion-constrained tile set,MCTS)、最大传输单元(maximum transfer unit,MTU)、网络抽象层(network abstraction layer,NAL)、图像顺序编号(picture order count,POC)、可解码随机接入前置(random accessdecodable leading,RADL)图像、跳过随机接入前置(random access skipped leading,RASL)图像、原始字节序列载荷(raw byte sequence payload,RBSP)、参考图像列表(reference picture list,RPL)、序列参数集(sequence parameter set,SPS)、视频编码层(video coding layer,VCL)、通用视频编码(versatile video coding,VVC)和工作草稿(working draft,WD)。
许多视频压缩技术可以用来减小视频文件的大小,同时尽量减少数据丢失。例如,视频压缩技术可以包括执行空间(例如,帧内)预测和/或时间(例如,帧间)预测以减少或去除视频序列中的数据冗余。对于基于块的视频译码,可以将视频条带(例如,视频图像或视频图像的一部分)分割为视频块,视频块也可以称为树块、编码树块(coding tree block,CTB)、编码树单元(coding tree unit,CTU)、编码单元(coding unit,CU)和/或编码节点。图像的帧内编码(I)条带中的视频块针对同一图像中邻块中的参考样本、使用空间预测进行编码。图像的帧间单向预测(P)条带或双向预测(B)条带中的视频块可以针对同一图像中邻块中的参考样本使用空间预测,或者针对其它参考图像中的参考样本使用时间预测。图像可以称为帧,参考图像可以称为参考帧。空间或时间预测产生表示图像块的预测块。残差数据表示原始图像块与预测块之间的像素差。因此,根据指向构成预测块的参考样本的块的运动矢量和表示编码块与预测块之间的差的残差数据,对帧间编码块进行编码。根据帧内编码模式和残差数据对帧内编码块进行编码。为了进一步压缩,残差数据可以从像素域变换到变换域,从而产生残差变换系数,该残差变换系数可以量化。量化变换系数最初以二维阵列排列。量化变换系数可以扫描,以生成变换系数的一维矢量。可以应用熵编码以实现进一步压缩。下面详细描述这种视频压缩技术。
为了确保编码视频能够正确解码,视频根据对应的视频编码标准进行编码和解码。视频编码标准包括国际电信联盟(International Telecommunication Union,ITU)标准化部门(ITU-T)H.261、国际标准化组织/国际电工委员会(international organizationfor standardization/international electrotechnical commission,ISO/IEC)运动图像专家组(motion picture experts group,MPEG)-1第2部分、ITU-T H.262或ISO/IECMPEG-2第2部分、ITU-T H.263、ISO/IEC MPEG-4第2部分、高级视频编码(advanced videocoding,AVC)(也称为ITU-T H.264或ISO/IEC MPEG-4第10部分),以及高效视频编码(highefficiency 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),以及三维AVC(three dimensional AVC,3D-AVC)等扩展版。HEVC包括可分级HEVC(scalable HEVC,SHVC)、多视点HEVC(multiview HEVC,MV-HEVC)和3D HEVC(3D-HEVC)等扩展版。ITU-T和ISO/IEC的联合视频专家组(joint video experts team,JVET)已开始开发一种称为通用视频编码(versatile video coding,VVC)的视频编码标准。工作草案(working draft,WD)中包括VVC,该WD包括JVET-N1001-v6。
视频译码***可以根据帧间预测对图像进行编码。在帧间预测中,一个图像是通过参考另一个图像进行译码的。正在被译码的图像称为当前图像,用作参考的图像称为参考图像。一些视频译码***通过使用参考图像列表来跟踪参考图像。此外,一些视频译码***使用可分级视频编码。在可分级视频编码中,视频序列被译码为基础层和一个或多个增强层。在这种情况下,一个图像可以划分为多个图像,这些图像存在于不同的层中。例如,图像的低层版本可以比图像的高层版本的质量低。此外,图像的低层版本可以比图像的高层版本小(例如,低层版本具有较小的宽度和/或高度)。当使用层时,当前层中的图像可以:根据帧内预测(没有参考图像)译码;通过参考同一层中的参考图像,根据帧间预测译码;或者通过参考不同层中的参考图像,根据层间预测译码。但是,参考图像列表不能设计成描述跨多层的参考图像。
本文公开了当使用层间预测时用于管理参考图像列表的示例性机制。例如,参考图像列表可以包括译码视频使用的每个参考图像的条目。然后,可以使用标志来表示每个条目是包含帧间预测参考图像(用于在同一级别中参考)或层间参考图像(用于在层之间参考)。在一个示例中,包含参考图像列表的语法结构的一组参考图像标志可以表示为inter_layer_ref_pic_flag[listIdx][rplsIdx][i]。当参考图像结构中的第i个条目是ILRP条目时,可以将inter_layer_ref_pic_flag[listIdx][rplsIdx][i]标志设置为1,或者当参考图像结构中的第i个条目不是ILRP条目时,可以将inter_layer_ref_pic_flag[listIdx][rplsIdx][i]标志设置为0。此外,ILRP层指示符可用于表示哪一层包含由参考图像结构的条目表示的层间参考图像。然后,解码器可以使用参考图像标志和ILRP层指示符来选择正确的层间参考图像,以便执行层间预测。因此,所公开的机制使得编码器和/或解码器具有附加的功能。此外,所公开的机制可以提高译码效率,这可以减少编码器和/或解码器侧处理器、存储器和/或网络资源的使用率。
图1为对视频信号进行译码的示例性操作方法100的流程图。具体地,在编码器侧对视频信号进行编码。编码过程通过使用各种机制对视频信号进行压缩,以减小视频文件大小。较小的文件大小有利于在减少相关的带宽开销的同时,将压缩的视频文件发送给用户。然后,解码器对压缩的视频文件进行解码,以重建原始视频信号,用于向终端用户显示。解码过程通常与编码过程对应,便于解码器一致地重建视频信号。
在步骤101中,将视频信号输入编码器。例如,视频信号可以是存储在存储器中的未压缩的视频文件。在另一示例中,视频文件可以由视频捕获设备(例如摄像机)捕获,并进行编码以支持视频的直播。视频文件可以包括音频分量和视频分量。视频分量包含一系列图像帧,当按顺序观看时,这些图像帧会产生运动的视觉效果。这些帧包含根据光(本文称为亮度分量(或亮度样本))和颜色(称为色度分量(或色度样本))表示的像素。在一些示例中,这些帧还可以包含深度值以支持三维观看。
在步骤103中,将视频分割为块。分割包括将每个帧中的像素细分为方块和/或矩形块,用于进行压缩。例如,在高效视频编码(high efficiency video coding,HEVC)(也称为H.265和MPEG-H第2部分)中,可以首先将帧划分为编码树单元(coding tree unit,CTU),这些编码树单元是预定义大小(例如,64×64像素)的块。CTU包含亮度样本和色度样本。可以使用编码树将CTU划分为块,然后递归细分这些块,直到获得支持进一步编码的配置。例如,帧的亮度分量可以细分,直到各个块包含相对均匀的亮度值。此外,帧的色度分量可以细分,直到各个块包含相对均匀的颜色值。因此,分割机制根据视频帧的内容而不同。
在步骤105中,使用各种压缩机制来压缩在步骤103中分割的图像块。例如,可以使用帧间预测和/或帧内预测。帧间预测旨在利用公共场景中的对象往往出现在连续帧中这一事实。因此,无需在相邻帧中对参考帧中描绘对象的块进行重复描述。具体地,一个对象(如一张桌子)可以在多个帧中保持在恒定的位置。因此,只描述一次桌子,相邻帧可以重新参考参考帧。模式匹配机制可以用于匹配多个帧中的对象。此外,由于对象移动或摄像机移动等,移动对象可以通过多个帧表示。在一个具体的示例中,视频可以通过多个帧显示在屏幕上移动的汽车。运动矢量可以用于描述这种移动。运动矢量是一个二维矢量,提供从帧中对象的坐标到参考帧中该对象的坐标的偏移。因此,帧间预测可以将当前帧中的图像块编码为运动矢量集,表示相对于参考帧中对应块的偏移。
帧内预测对公共帧中的块进行编码。帧内预测利用亮度分量和色度分量往往在帧中聚集这一事实。例如,一棵树的一部分中的一片绿色往往与几片类似的绿色相邻。帧内预测使用多种方向预测模式(例如,HEVC中有33种模式)、平面模式和直流(direct current,DC)模式。方向模式表示当前块与对应方向的邻块的样本类似/相同。平面模式表示可以根据行边缘处的邻块对行/列(例如平面)上的一系列块进行插值。实际上,平面模式通过使用变化值的相对恒定的斜率来表示光/颜色在行/列上的平滑转变。DC模式用于边界平滑,表示块和与所有邻块的样本相关联的平均值类似/相同,所述邻块与方向预测模式的角方向相关联。因此,帧内预测块可以将图像块表示为各种关系预测模式值而非实际值。此外,帧间预测块可以将图像块表示为运动矢量值而非实际值。在任一种情况下,预测块在一些情况下可能无法精确地表示图像块。所有差值都存储在残差块中。可以对残差块进行变换以进一步压缩文件。
在步骤107中,可以应用各种滤波技术。在HEVC中,根据环内滤波方案应用滤波器。上文描述的基于块的预测可能使得在解码器侧创建块状图像。此外,基于块的预测方案可以对块进行编码,然后重建编码块,以供以后用作参考块。环内滤波方案迭代地将噪声抑制滤波器、去块效应滤波器、自适应环路滤波器和样本自适应偏移(sample adaptiveoffset,SAO)滤波器用于块/帧。这些滤波器减少了此类块伪影,从而可以准确地重建编码文件。此外,这些滤波器减少了重建参考块中的伪影,使得伪影不太可能在根据重建参考块编码的后续块中产生其它伪影。
在步骤109中,一旦对视频信号进行了分割、压缩和滤波,则将所得数据编码到码流中。所述码流包括上述数据以及支持在解码器侧进行适当的视频信号重建所需要的任何指示(signal)数据。例如,此类数据可以包括分割数据、预测数据、残差块和向解码器提供译码指令的各种标志。码流可以存储在存储器中,以便在请求时向解码器发送。还可以向多个解码器广播和/或组播所述码流。创建码流是一个迭代过程。因此,步骤101、103、105、107和109可以在多个帧和块中连续和/或同时执行。图1所示的顺序是为了清楚和便于描述而呈现的,并非旨在将视频译码过程限制于特定顺序。
在步骤111中,解码器接收码流并开始解码过程。具体地,解码器使用熵解码方案将码流转换为对应的语法数据和视频数据。在步骤111中,解码器使用码流中的语法数据来确定帧的分割部分。分割应与步骤103中的块分割结果匹配。这里描述了步骤111中使用的熵编码/熵解码。编码器在压缩过程中进行许多选择,例如根据一个或多个输入图像中值的空间定位从多个可能选择中选择块分割方案。指示确切的选择可能会使用大量的位元。本文所使用的位元是被视为变量的二进制值(例如,可以根据上下文变化的位值)。熵编码使得编码器可以丢弃任何明显不适合特定情况的选项,从而留下一组可使用的选项。然后,为每个可使用的选项分配码字。码字的长度取决于可使用的选项的数量(例如,一个位元对应两个选项,两个位元对应三个或四个选项等)。然后,编码器对所选选项的码字进行编码。该方案减小了码字的大小,因为码字的大小与唯一表示从可使用的选项的小子集中的一个选项,而非唯一指示从所有可能选项的潜在大集中的选项所需要的码字一样大。然后,解码器通过以与编码器类似的方式确定可使用的选项集来对该选择进行解码。通过确定可使用的选项集,解码器可以读取码字并确定编码器做出的选择。
在步骤113中,解码器执行块解码。具体地,解码器进行逆变换来生成残差块。然后,解码器使用残差块和对应的预测块,根据分割重建图像块。预测块可以包括在步骤105中编码器侧生成的帧内预测块和帧间预测块。然后,根据在步骤111中确定的分割数据将重建图像块定位到重建视频信号的帧中。步骤113的语法还可以通过上文描述的熵编码在码流中指示。
在步骤115中,以类似于步骤107的方式在编码器侧对重建视频信号的帧进行滤波。例如,可以对帧应用噪声抑制滤波器、去块效应滤波器、自适应环路滤波器和SAO滤波器以去除块伪影。一旦对帧进行滤波,在步骤117中,可以将视频信号输出到显示器以供终端用户观看。
图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。这里对这些组件进行描述。
分割视频信号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进行压缩。
通用译码器控制组件211用于根据应用约束做出与将视频序列的图像编码到码流中相关的决策。例如,通用译码器控制组件211管理码率/码流大小相对于重建质量的优化。此类决策可以根据存储空间/带宽可用性和图像分辨率请求做出。通用译码器控制组件211还根据传输速度管理缓冲区使用率,以缓解缓冲区欠载和超载问题。为了解决这些问题,通用译码器控制组件211管理由其它组件进行的分割、预测和滤波。例如,通用译码器控制组件211可以动态地提高压缩复杂度以提高分辨率和提高带宽使用率,或者降低压缩复杂度以降低分辨率和带宽使用率。因此,通用译码器控制组件211控制编解码***200的其它组件,以平衡视频信号重建质量与码率问题。通用译码器控制组件211创建控制数据,这些控制数据控制其它组件的操作。控制数据还被转发到标头格式化和CABAC组件231,以编码到码流中,从而指示用于在解码器中进行解码的参数。
分割视频信号201还被发送至运动估计组件221和运动补偿组件219,用于进行帧间预测。分割视频信号201的帧或条带可以划分为多个视频块。运动估计组件221和运动补偿组件219相对于一个或多个参考帧中的一个或多个块对接收到的视频块进行帧间预测译码以提供时间预测。编解码***200可以执行多个译码过程,以便为每个视频数据块选择适当的译码模式等等。
运动估计组件221和运动补偿组件219可以高度集成,但出于概念目的分开示出。运动估计组件221执行的运动估计是生成运动矢量的过程,其中,这些运动矢量用于估计视频块的运动。例如,运动矢量可以表示译码对象相对于预测块的位移。预测块是被发现在像素差方面与待译码块高度匹配的块。预测块也可以称为参考块。此类像素差可以通过绝对差和(sum ofabsolute 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可以确定当前块/帧的多个参考块、多个运动矢量等,并且可以选择具有最佳率失真特性的参考块、运动矢量等。最佳率失真特性平衡视频重建的质量(例如,压缩造成的数据丢失量)与译码效率(例如,最终编码的大小)。
在一些示例中,编解码***200可以计算存储在解码图像缓冲区组件223中的参考图像的子整数像素位置的值。例如,视频编解码***200可以对参考图像的四分之一像素位置、八分之一像素位置或其它分数像素位置的值进行插值。因此,运动估计组件221可以执行相对于全像素位置和分数像素位置的运动搜索,并输出具有分数像素精度的运动矢量。运动估计组件221通过将PU的位置与参考图像的预测块的位置进行比较来计算帧间译码条带中视频块的PU的运动矢量。运动估计组件221将计算的运动矢量作为运动数据输出到标头格式化和CABAC组件231以进行编码,并将运动输出到运动补偿组件219。
运动补偿组件219执行的运动补偿可以涉及根据运动估计组件221所确定的运动矢量获取或生成预测块。另外,在一些示例中,运动估计组件221和运动补偿组件219可以在功能上集成。在接收到当前视频块的PU的运动矢量之后,运动补偿组件219可以定位运动矢量指向的预测块。然后,通过从正在被译码的当前视频块的像素值中减去预测块的像素值,形成像素差值,从而形成残差视频块。通常,运动估计组件221相对于亮度分量执行运动估计,运动补偿组件219将根据亮度分量计算的运动矢量用于色度分量和亮度分量。将预测块和残差块转发到变换缩放和量化组件213。
分割视频信号201也被发送到帧内估计组件215和帧内预测组件217。如同运动估计组件221和运动补偿组件219,帧内估计组件215和帧内预测组件217可以高度集成,但出于概念目的分开示出。帧内估计组件215和帧内预测组件217相对于当前帧中的块对当前块进行帧内预测,以替代如上所述的由运动估计组件221和运动补偿组件219在各帧之间执行的帧间预测。具体地,帧内估计组件215确定帧内预测模式,用于对当前块进行编码。在一些示例中,帧内估计组件215从多个测试的帧内预测模式中选择适当的帧内预测模式来对当前块进行编码。然后,将所选择的帧内预测模式转发到标头格式化和CABAC组件231用于进行编码。
例如,帧内估计组件215使用对各种测试的帧内预测模式的率失真分析来计算率失真值,并在测试的模式中选择具有最佳率失真特性的帧内预测模式。率失真分析通常确定编码块与经编码以产生编码块的原始未编码块之间的失真(或误差)量,以及用于生成编码块的码率(例如,位数)。帧内估计组件215根据各种编码块的失真和速率计算比率,以确定哪种帧内预测模式表现出块的最佳率失真值。此外,帧内估计组件215可以用于根据率失真优化(rate-distortion optimization,RDO),使用深度建模模式(depth modelingmode,DMM)对深度图的深度块进行译码。
当在编码器上实现时,帧内预测组件217可以根据由帧内估计组件215确定的所选帧内预测模式从预测块生成残差块,或者当在解码器上实现时,从码流读取残差块。残差块包括预测块与原始块之间的值差,表示为矩阵。然后,残差块被转发到变换缩放和量化组件213。帧内估计组件215和帧内预测组件217可以对亮度分量和色度分量进行操作。
变换缩放和量化组件213用于进一步压缩残差块。变换缩放和量化组件213对残差块应用变换,如离散余弦变换(discrete cosine transform,DCT)、离散正弦变换(discrete sine transform,DST)或概念上类似的变换,从而产生包括残差变换系数值的视频块。还可以使用小波变换、整数变换、子带变换或其它类型的变换。变换可以将残差信息从像素值域转换到变换域,如频域。变换缩放和量化组件213还用于根据频率等对变换的残差信息进行缩放。这种缩放涉及对残差信息应用缩放因子,以便在不同粒度下量化不同的频率信息,这可能会影响重建视频的最终视觉质量。变换缩放和量化组件213还用于对变换系数进行量化以进一步降低码率。量化过程可以降低与一些或全部系数相关的位深度。量化程度可以通过调整量化参数来修改。在一些示例中,变换缩放和量化组件213随后可以对包括量化变换系数的矩阵进行扫描。量化变换系数被转发到标头格式化和CABAC组件231,以编码到码流中。
缩放和逆变换组件229应用变换缩放和量化组件213的逆操作以支持运动估计。缩放和逆变换组件229应用逆缩放、逆变换和/或反量化以重建像素域中的残差块,例如,以供以后用作参考块,参考块可成为另一当前块的预测块。运动估计组件221和/或运动补偿组件219可以通过将残差块添加回对应的预测块来计算参考块,以用于后续块/帧的运动估计。滤波器用于重建参考块,以减少在缩放、量化和变换期间产生的伪影。当对后续块进行预测时,此类伪影可能导致预测不准确(并产生其它伪影)。
滤波器控制分析组件227和环内滤波器组件225将滤波器用于残差块和/或重建图像块。例如,缩放和逆变换组件229的变换残差块可以与帧内预测组件217和/或运动补偿组件219的对应的预测块合并以重建原始图像块。然后,滤波器可以用于重建图像块。在一些示例中,滤波器可以转而用于残差块。如同图2中的其它组件,滤波器控制分析组件227和环内滤波器组件225高度集成,可以一起实现,但出于概念目的分开示出。用于重建参考块的滤波器用于特定空间区域,包括多个参数以调整应用此类滤波器的方式。滤波器控制分析组件227对重建参考块进行分析,以确定应应用此类滤波器的位置并设置对应的参数。此类数据作为滤波器控制数据被转发到标头格式化和CABAC组件231用于进行编码。环内滤波器组件225根据滤波器控制数据应用此类滤波器。滤波器可以包括去块效应滤波器、噪声抑制滤波器、SAO滤波器和自适应环路滤波器。此类滤波器可以根据示例用于空域/像素域(例如,针对重建像素块)或频域中。
当作为编码器时,将滤波重建图像块、残差块和/或预测块存储在解码图像缓冲区组件223中,以供以后用于运动估计,如上所述。当作为解码器时,解码图像缓冲区组件223存储经重建和滤波的块并将其作为输出视频信号的一部分向显示器转发。解码图像缓冲区组件223可以是能够存储预测块、残差块和/或重建图像块的任何存储设备。
标头格式化和CABAC组件231从编解码***200的各组件接收数据并将此类数据编码到编码码流中用于向解码器发送。具体地,标头格式化和CABAC组件231生成各种标头以对控制数据(如通用控制数据和滤波器控制数据)进行编码。此外,预测数据(包括帧内预测)和运动数据,以及量化变换系数数据形式的残差数据均编码在码流中。最终码流包括解码器重建原始的分割视频信号201所需要的所有信息。此类信息还可以包括帧内预测模式索引表(也称为码字映射表)、各种块的编码上下文的定义、最可能的帧内预测模式的表示、分割信息的表示等。此类数据可以使用熵编码进行编码。例如,可以使用上下文自适应可变长度编码(context adaptive variable length coding,CAVLC)、CABAC、基于语法的上下文自适应二进制算术编码(syntax-based context-adaptive binary arithmeticcoding,SBAC)、概率区间分割熵(probability interval partitioning entropy,PIPE)编码或其它熵编码技术对信息进行编码。在熵编码之后,可以将编码码流发送到另一设备(例如,视频解码器)或存档以供后续发送或检索。
图3为示例性视频编码器300的框图。视频编码器300可以用于实现编解码***200的编码功能和/或实现操作方法100的步骤101、103、105、107和/或109。编码器300对输入视频信号进行分割,从而产生分割视频信号301,其中,分割视频信号301实质上类似于分割视频信号201。然后,通过编码器300的组件压缩分割视频信号301并将其编码到码流中。
具体地,分割视频信号301被转发到帧内预测组件317用于进行帧内预测。帧内预测组件317实质上可以类似于帧内估计组件215和帧内预测组件217。分割视频信号301还被转发到运动补偿组件321,用于根据解码图像缓冲区组件323中的参考块进行帧间预测。运动补偿组件321实质上可以类似于运动估计组件221和运动补偿组件219。帧内预测组件317和运动补偿组件321的预测块和残差块被转发到变换和量化组件313以用于对残差块进行变换和量化。变换和量化组件313实质上可以类似于变换缩放和量化组件213。变换和量化残差块和对应的预测块(连同相关控制数据)被转发到熵编码组件331用于编码到码流中。熵编码组件331可以实质上类似于标头格式化和CABAC组件231。
变换和量化残差块和/或对应的预测块也从变换和量化组件313转发到逆变换和量化组件329以重建成参考块供运动补偿组件321使用。逆变换和量化组件329实质上可以类似于缩放和逆变换组件229。根据示例,环内滤波器组件325中的环内滤波器还用于残差块和/或重建参考块。环内滤波器组件325实质上可以类似于滤波器控制分析组件227和环内滤波器组件225。如关于环内滤波器组件225所描述,环内滤波器组件325可以包括多个滤波器。然后,滤波块存储在解码图像缓冲区组件323中,以供运动补偿组件321用作参考块。解码图像缓冲区组件323实质上可以类似于解码图像缓冲区组件223。
图4为示例性视频解码器400的框图。视频解码器400可以用于实现编解码***200的解码功能和/或实现操作方法100的步骤111、113、115和/或117。例如,解码器400从编码器300接收码流,并根据该码流生成重建输出视频信号,用于向终端用户显示。
该码流由熵解码组件433接收。熵解码组件433用于实现熵解码方案,如CAVLC、CABAC、SBAC、PIPE译码或其它熵译码技术。例如,熵解码组件433可以使用标头信息来提供上下文以解释在码流中编码为码字的其它数据。解码信息包括对视频信号进行解码所需的任何信息,如通用控制数据、滤波器控制数据、分割信息、运动数据、预测数据和残差块中的量化变换系数。量化变换系数被转发到逆变换和量化组件429以重建成残差块。逆变换和量化组件429可以类似于逆变换和量化组件329。
重建残差块和/或预测块被转发到帧内预测组件417,以根据帧内预测操作重建成图像块。帧内预测组件417可以类似于帧内估计组件215和帧内预测组件217。具体地,帧内预测组件417使用预测模式来定位帧中的参考块,并将残差块用于结果以重建帧内预测图像块。重建帧内预测图像块和/或残差块以及对应的帧间预测数据通过环内滤波器组件425转发到解码图像缓冲区组件423。解码图像缓冲区组件423和环内滤波器组件425实质上可以分别类似于解码图像缓冲区组件223和环内滤波器组件225。环内滤波器组件425对重建图像块、残差块和/或预测块进行滤波,并且此类信息存储在解码图像缓冲区组件423中。解码图像缓冲区组件423的重建图像块被转发到运动补偿组件421进行帧间预测。运动补偿组件421实质上可以类似于运动估计组件221和/或运动补偿组件219。具体地,运动补偿组件421使用参考块的运动矢量来生成预测块,并将残差块用于结果以重建图像块。所得重建块还可以通过环内滤波器组件425转发到解码图像缓冲区组件423。解码图像缓冲区组件423继续存储其它重建图像块,这些重建图像块可以通过分割信息重建成帧。此类帧也可以位于序列中。该序列作为重建输出视频信号向显示器输出。
图5为单向帧间预测500的示例的示意图。例如,在块压缩步骤105、块解码步骤113、运动估计组件221、运动补偿组件219、运动补偿组件321和/或运动补偿组件421处执行单向帧间预测500来确定运动矢量(motion vector,MV)。
单向帧间预测500使用包括参考块531的参考图像530来预测当前图像510中的当前块511。如图所示,参考图像530可以在时间上位于当前图像510之后(例如,作为后一个参考图像),但在一些示例中,也可以在时间上位于当前图像510之前(例如,作为前一个参考图像)。当前图像510是在特定时间正在被编码/解码的示例性帧/图像。当前图像510包含当前块511中的一个对象,该对象与参考图像530的参考块531中的一个对象匹配。参考图像530是对当前图像510进行编码时用作参考的图像,参考块531是参考图像530中的一个块,该块包含的对象也包含在当前图像510的当前块511中。
当前块511是译码过程中在指定时间点正在被编码/解码的任何译码单元。当使用仿射帧间预测模式时,当前块511可以是整个分割块,也可以是子块。当前图像510与参考图像530间隔一定时间距离(temporal distance,TD)533。TD 533表示视频序列中的当前图像510与参考图像530之间的时间量,并且可以以图像为单位进行测量。当前块511的预测信息可以通过表示各图像之间的方向和时间距离的参考索引对参考图像530和/或参考块531进行参考。在TD 533表示的时间段内,当前块511中的对象从当前图像510中的一个位置移动到参考图像530中的另一个位置(例如,参考块531的位置)。例如,该对象可以沿着运动路径(motion trajectory)513移动,运动轨迹513表示对象随时间移动的方向。运动矢量535描述该对象在TD 533内沿着运动路径513移动的方向和幅度。因此,编码运动矢量535、参考块531以及包括当前块511与参考块531之间的差值的残差这些信息足以重建当前块511并且在当前图像510中定位当前块511。
图6为双向帧间预测600的示例的示意图。例如,在块压缩步骤105、块解码步骤113、运动估计组件221、运动补偿组件219、运动补偿组件321和/或运动补偿组件421处执行双向帧间预测600来确定MV。
双向帧间预测600类似于单向帧间预测500,但双向帧间预测600使用一对参考图像来预测当前图像610中的当前块611。因此,当前图像610和当前块611分别基本上类似于当前图像510和当前块511。当前图像610在时间上位于前一个参考图像620与后一个参考图像630之间,其中,前一个参考图像620在视频序列中出现在当前图像610之前,后一个参考图像630在视频序列中出现在当前图像610之后。前一个参考图像620和后一个参考图像630在其它方面基本上类似于参考图像530。
当前块611与前一个参考图像620中的前一个参考块621和后一个参考图像630中的后一个参考块631匹配。这种匹配表示在播放视频序列的过程中,一个对象沿着运动路径613从前一个参考块621的位置经过当前块611移动到后一个参考块631的位置。当前图像610与前一个参考图像620间隔一定的前一个时间距离(TD0)623,与后一个参考图像630间隔一定的后一个时间距离(TD1)633。TD0623表示视频序列中的前一个参考图像620与当前图像610之间的时间量,以图像为单位。TD1 633表示视频序列中的当前图像610与后一个参考图像630之间的时间量,以图像为单位。因此,该对象在由TD0623表示的时间段内沿着运动路径613从前一个参考块621移动到当前块611。该对象还在由TD1 633表示的时间段内沿着运动路径613从当前块611移动到后一个参考块631。当前块611的预测信息可以通过表示各图像之间的方向和时间距离的一对参考索引对前一个参考图像620和/或前一个参考块621以及后一个参考图像630和/或后一个参考块631进行参考。
前一个运动矢量(MV0)625描述该对象在TD0623内(例如,在前一个参考图像620与当前图像610之间)沿着运动路径613移动的方向和幅度。后一个运动矢量(MV1)635描述该对象在TD1 633内(例如,在当前图像610与后一个参考图像630之间)沿着运动路径613移动的方向和幅度。因此,在双向帧间预测600中,当前块611可以通过使用前一个参考块621和/或后一个参考块631、MV0625和MV1 635进行译码和重建。
图7为基于层的预测700的示例的示意图。例如,在块压缩步骤105、块解码步骤113、运动估计组件221、运动补偿组件219、运动补偿组件321和/或运动补偿组件421处执行基于层的预测700来确定MV。基于层的预测700类似于单向帧间预测500和/或双向帧间预测600,但基于层的预测700还在不同层中的图像之间执行。
基于层的预测700应用于不同层中的图像711、712、713和714与图像715、716、717和718之间。在所示的示例中,图像711、712、713和714是层N+1 732的一部分,图像715、716、717和718是层N 731的一部分。层(例如层N 731和/或层N+1 732)是一组图像,这些图像都与类似的大小、质量、分辨率、信噪比、能力等类似的特征值相关联。在所示的示例中,与层N731相比,层N+1 732与更大的图像大小相关联。因此,在本示例中,层N+1 732中的图像711、712、713和714比层N 731中的图像715、716、717和718大(例如,高度和宽度大,因此样本更多)。但是,这些图像可以通过其它特征划分为层N+1732和层N 731。虽然只示出了两层:层N+1 732和层N 731,但一组图像可以根据相关联的特征划分为任意数量的层。层N+1 732和层N 731也可以用层ID表示。层ID是与图像相关联的数据项,并表示该图像是表示的层的一部分。因此,图像711至718中的每个图像可以与对应的层ID相关联,以表示层N+1 732或层N731中的哪个层包括对应的图像。
不同的层731和732中的图像711至718交替显示。因此,不同的层731和732中的图像711至718可以共享相同的图像顺序编号,并且可以包括在同一AU中。本文所使用的AU是与用于从DPB输出的同一显示时间相关联的一组一个或多个译码图像。例如,如果需要较小的图像,则解码器可以在当前显示时间对图像715进行解码并显示,或者如果需要较大的图像,则解码器可以在当前显示时间对图像711进行解码并显示。因此,高层N+1 732中的图像711至714与低层N 731中的对应图像715至718包含基本上相同的图像数据(尽管图像大小不同)。具体地,图像711与图像715包含基本上相同的图像数据,图像712与图像716包含基本上相同的图像数据,以此类推。
图像711至718可以通过参考同一层(N 731或N+1 732)中的其它图像711至718进行译码。参考同一层中的一个图像对另一个图像进行译码即为帧间预测723,帧间预测723基本上类似于单向帧间预测500和/或双向帧间预测600。帧间预测723由实线箭头表示。例如,图像713可以通过将层N+1 732中的图像711、712和/或714中的一个或两个图像用作参考的帧间预测723来译码,其中,单向帧间预测使用一个图像作为参考,和/或双向帧间预测使用两个图像作为参考。此外,图像717可以通过将层N 731中的图像715、716和/或718中的一个或两个图像用作参考的帧间预测723来译码,其中,单向帧间预测使用一个图像作为参考,和/或双向帧间预测使用两个图像作为参考。在执行帧间预测723时,当将一个图像用作同一层中另一个图像的参考时,该图像可以称为参考图像。例如,图像712可以是用于根据帧间预测723对图像713进行译码的参考图像。帧间预测723也可以称为多层上下文中的层内预测。因此,帧间预测723是通过参考与当前图像不同的参考图像中的指示样本对当前图像中的样本进行译码的机制,其中,参考图像和当前图像位于同一层中。
图像711至718也可以通过参考不同层中的其它图像711至718进行译码。这个过程称为层间预测721,由虚线箭头表示。层间预测721是通过参考参考图像中的指示样本对当前图像中的样本进行译码的机制,其中,当前图像和参考图像位于不同的层中,因此具有不同的层ID。例如,低层N 731中的图像可以用作对高层N+1 732中的对应图像进行译码的参考图像。在一个具体的示例中,图像711可以根据层间预测721通过参考图像715进行译码。在这种情况下,图像715被用作层间参考图像。层间参考图像是用于层间预测721的参考图像。在大多数情况下,对层间预测721进行约束,使得当前图像(例如图像711)只能使用同一AU中包含的且位于低层中的一个或多个层间参考图像,例如图像715。当多个层(例如,两层以上)可用时,层间预测721可以根据层级比当前图像低的多个层间参考图像对当前图像进行编码/解码。
视频编码器可以使用基于层的预测700来通过帧间预测723和层间预测721的许多不同组合和/或排列对图像711至718进行编码。例如,图像715可以根据帧内预测进行译码。然后,通过将图像715用作参考图像,图像716至718可以根据帧间预测723进行译码。此外,通过将图像715用作层间参考图像,图像711可以根据层间预测721进行译码。然后,通过将图像711用作参考图像,图像712至714可以根据帧间预测723进行译码。因此,参考图像可以作为不同译码机制的单层参考图像和层间参考图像。通过根据低层N 731图像对高层N+1732图像进行译码,高层N+1 732可以避免使用帧内预测,帧内预测的译码效率比帧间预测723和层间预测721的译码效率低得多。因此,帧内预测译码效率低下,只适用于最小/最低质量的图像,因此只适用于对最少量的视频数据进行译码。用作参考图像和/或层间参考图像的图像可以在参考图像列表结构中包含的一个或多个参考图像列表的条目中表示。
图8为示例性参考图像列表结构(RPL结构)800的示意图。RPL结构800可用于存储在单向帧间预测500、双向帧间预测600和/或基于层的预测700中使用的参考图像和/或层间参考图像的指示。因此,RPL结构800可以由编解码***200、编码器300和/或解码器400在执行方法100时使用。
RPL结构800是包含RPL 0811和RPL 1 812等多个参考图像列表的可寻址语法结构。根据示例,RPL结构800可以存储在码流的SPS和/或条带头中。参考图像列表(例如RPL0811和RPL 1 812)是用于帧间预测和/或层间预测的一列参考图像。RPL 0811和RPL1812都可以包括多个条目815。参考图像列表结构条目815是RPL结构800中的可寻址位置,表示与参考图像列表(例如RPL 0811和/或RPL 1812)相关联的参考图像。每个条目815可以包含参考用于帧间预测的图像的图像顺序编号(picture order count,POC)值(或其它指针(pointer)值)。具体地,单向帧间预测500使用的图像的参考图像存储在RPL 0811中,参考双向帧间预测600使用的图像的参考图像存储在RPL 0811和RPL 1812中。例如,双向帧间预测600可以使用通过RPL 0811表示的一个参考图像和通过RPL 1 812表示的一个参考图像。
在一个具体示例中,RPL结构800可以表示为ref_pic_list_struct(listIdx,rplsIdx),其中,listIdx 821标识参考图像列表RPL 0811和/或RPL 1812,rplsIdx 825标识参考图像列表中的条目815。因此,ref_pic_list_struct是根据listIdx 821和rplsIdx825返回条目815的语法结构。编码器可以对用于视频序列中的每个非帧内译码条带的RPL结构800的一部分进行编码。然后,解码器可以在对编码视频序列中的每个非帧内译码条带进行解码之前解析RPL结构800的对应部分。
如上所述,帧间预测可以使用参考图像作为参考。此外,参考图像可以用作层间预测的层间参考图像。因此,通过包括ILRP标志833和ILRP层指示符835来修改RPL结构800,以支持层间预测。ILRP标志833是表示由RPL结构800中的对应条目815参考的图像是否为用于层间预测的层间参考图像的数据。因此,编码器可以使用ILRP标志833来表示每个条目815是否可以被当作ILRP条目处理。ILRP条目是参考用于层间预测的层间参考图像的任何条目815。此外,解码器可以使用ILRP标志833来确定RPL结构800中的每个条目815是否是ILRP条目。在一个具体示例中,ILRP标志833表示为inter_layer_ref_pic_flag[listIdx][rplsIdx][i],其中,i是计数器变量,该变量的每个值表示对应的条目815。当ref_pic_list_struct(listIdx,rplsIdx)中的第i个条目是ILRP条目时,inter_layer_ref_pic_flag[1istIdx][rplsIdx][i]可以被设置为1。此外,当ref_pic_list_struct( listIdx,rplsIdx)中的第i个条目不是ILRP条目时,inter_layer_ref_pic_flag[listIdx][rplsIdx][i]可以被设置为0。
如上所述,层间参考图像可以位于同一AU中,并且与正在被编码/解码的当前图像具有相同的POC值。因此,可以不修改RPL结构800来添加对应的层间参考图像的POC值。但是,解码器可能无法推断AU的哪一层或哪些层包括适当的一个或多个层间参考图像来对当前图像进行解码。为此目的,将ILRP层指示符835包括在内。ILRP层指示符835是表示与当前图像参考的层间参考图像相关联的层的数据。具体地,ILRP层指示符835可以表示作为ILRP条目(如ILRP标志833所示)的每个条目815的一个或多个层。因此,编码器可以将ILRP层指示符835编码到码流中,以表示与条目815相关联的一个或多个层间参考图像所在的层。另外,当条目815是ILRP标志833表示的ILRP条目时,解码器可以根据ILRP层指示符835确定一个或多个层间参考图像所在的层。因此,将ILRP标志833和ILRP层指示符835添加到RPL结构800中提供了足够的信息,从而支持RPL结构800管理用于层间预测的参考图像。
图9为包含译码工具参数以支持层间预测的示例性码流900的示意图。例如,码流900可以由编解码***200和/或编码器300生成,以供编解码***200和/或解码器400解码。又如,码流900可以由编码器在方法100的步骤109中生成,以供解码器在步骤111中使用。此外,码流900可以为编码视频序列,编码视频序列可以根据单向帧间预测500、双向帧间预测600和/或基于层的预测700进行译码。另外,码流900可用于传输RPL结构800。
码流900包括序列参数集(sequence parameter set,SPS)910、多个图像参数集(picture parameter set,PPS)911、多个条带头915和图像数据920。SPS 910包含码流900中包含的视频序列中所有图像共用的序列数据。这些数据可以包括图像大小、位深度、译码工具参数、码率限制等。PPS 911包含应用于整个图像的参数。因此,视频序列中的每个图像都可以参考PPS 911。需要说明的是,虽然每个图像都参考PPS 911,但在一些示例中,单个PPS 911可以包含多个图像的数据。例如,多个类似图像可以根据类似的参数进行编码。在这种情况下,单个PPS 911可以包含这些类似图像的数据。PPS 911可以表示量化参数、偏移、可用于对应图像中的条带的译码工具等。条带头915包含图像中每个条带特有的参数。因此,视频序列中的每个条带都可以存在一个条带头915。条带头915可以包含条带类型信息、图像顺序编号(picture order count,POC)、参考图像列表、预测权重、分块入口点(tile entry point)、去块效应滤波参数等。需要说明的是,在一些上下文中,条带头915也可以称为分块组头。需要说明的是,在一些示例中,码流900还可以包括图像头,图像头是包含应用于单个图像中所有条带的参数的语法结构。因此,在一些上下文中,图像头和条带头915可以互换使用。例如,条带头915和图像头可以使用一些相同的参数,这取决于这些参数是否是图像中所有条带共用的。
图像数据920包含根据帧间预测、帧内预测和/或层间预测编码的视频数据以及对应的变换和量化残差数据。例如,视频序列包括多个图像923。图像923是创建帧或帧场的亮度样本阵列和/或色度样本阵列。帧是视频序列中的预期在对应时刻向用户完整或部分显示的完整图像。图像923可以包含在单个AU 921中。AU 921是译码单元,用于存储具有相同图像顺序编号的所有译码图像923,并且可选地存储一个或多个标头,例如条带头915,标头包含描述用于对一个或多个译码图像923进行译码的译码机制的参数。因此,对于码流900中包含的每个图像级别,AU 921可以包含单个图像923。图像923包含一个或多个条带925。条带925可以被定义为图像923中的整数个完整分块或图像923中的(例如分块内的)整数个连续完整CTU行,这些分块或CTU行只包含在单个NAL单元中。条带925还被划分为CTU和/或编码树块(coding tree block,CTB)。CTU是一组预定义大小的样本,可以通过译码树(coding tree)进行分割。CTB是CTU的子集,并且包含CTU的亮度分量或色度分量。CTU/CTB根据译码树进一步被划分为译码块(coding block)。然后,译码块可以根据预测机制进行编码/解码。
码流900包含各种译码工具参数,以支持层间预测。具体地,码流包括参考图像列表结构931、ILRP标志933和ILRP层指示符935,它们可以分别基本上类似于RPL结构800、ILRP标志833和ILRP层指示符835。参考图像列表结构931、ILRP标志933和ILRP层指示符935可以被译码到SPS 910、条带头915和/或对应的图像头中。因此,编码器可以根据参考图像列表结构931中的条目列出参考图像,使用ILRP标志933表示哪些参考图像是层间参考图像,并使用ILRP层指示符935表示哪一层包含相关层间参考图像。此外,解码器可以对SPS910、条带头915和/或对应的图像头进行解码,以获得参考图像列表结构931、ILRP标志933和ILRP层指示符935。然后,解码器可以根据参考图像列表结构931中的条目确定当前图像的参考图像。解码器还可以使用ILRP标志933来确定哪些参考图像是层间参考图像。此外,解码器可以使用ILRP层指示符935来确定与层间参考图像相关联的一个或多个层级。因此,码流900用于在执行帧内预测、帧间预测和/或层间预测的组合以对视频序列进行译码时提供足够的信息来管理参考图像。
下面详细描述上述信息。参考图像重采样(reference picture resampling,RPR)机制可用于改变码流中间的译码图像的空间分辨率。即使当前图像尚未进行帧内译码,也可以在当前图像上完成这种分辨率改变。为了实现这一特征,当前图像可以参考一个或多个参考图像,以实现帧间预测目的,其中,参考图像使用与当前图像的空间分辨率不同的空间分辨率。因此,当前图像的编码和解码可能涉及对这种参考图像或其部分进行重采样。这一特征也可以称为自适应分辨率变化(adaptive resolution change,ARC)。参考图像的重采样可以在图像级或译码块(coding block)级实现。
RPR可能对一些实现方式有益。例如,视频电话和会议可以使用速率自适应。译码视频的速率可以适应不断变化的网络条件。当网络条件恶化和可用带宽变低时,编码器可以通过以较小分辨率对图像进行编码来适应。又如,RPR可能对多方视频会议中的主动发言者变化有益。在多方视频会议中,主动发言者的视频大小可能大于其余会议参与者的视频大小。当主动发言者变化时,也可以调整每个参与者的图像分辨率。当主动发言者变化越频繁时,RPR/ARC机制就越有益。又如,RPR可能有利于快速开始流式传输。流式应用在开始显示之前可以缓冲一定长度的解码图像。以较小的分辨率启动码流可以使得应用缓冲足够的图像,以更快地开始显示。然后,一旦显示开始,分辨率就可以提高。又如,RPR对流式传输中的自适应流切换有益。HTTP动态自适应流媒体(Dynamic Adaptive Streaming over HTTP,DASH)使用了名为@mediaStreamStructureId的特征。此特征支持在具有不可解码前置图像的开放图像组(group of picture,GOP)随机接入点上的不同表示之间切换,在HEVC中,不可解码前置图像可称为伴随相关联的RASL图像的清理随机接入(clean random access,CRA)图像。例如,同一视频的两个不同表示可能具有不同的码率和相同的空间分辨率,但它们具有相同的@mediaStreamStructureId值。在这种情况下,可以在伴随相关联的RASL图像的CRA图像上的两个表示之间执行切换。与CRA图像相关联的RASL图像可以以可接受的质量解码,这样可以实现无缝切换。在具有不同空间分辨率的DASH表示之间切换时,ARC/RPR可以使用特征@mediaStreamStructureId。
ARC/RPR可以通过使用分层视频编码来实现,分层视频编码也可以称为可分级视频编码和/或具有可分级性的视频译码。视频译码中的可分级性可以由多层译码技术支持。多层码流包括基础层(base layer,BL)和一个或多个增强层(enhancement layer,EL)。可分级性可以包括空间可分级性、质量/信噪比(signal to noise ratio,SNR)可分级性、多视点可分级性等。当使用多层译码技术时,图像(或其部分)可以:(1)在不使用参考图像(帧内预测)的情况下译码;(2)通过参考位于同一层中的一个或多个参考图像(帧间预测)进行译码;或(3)通过参考位于其它层中的一个或多个参考图像(层间预测)进行译码。用于当前图像的层间预测的参考图像称为层间参考图像(inter-layer reference picture,ILRP)。
H.26x视频编标准系列可以支持从用于单层译码的档次(profile)中分离出来的一个或多个档次中的可分级性。可分级视频编码(scalable video coding,SVC)是AVC/H.264的可扩展版,支持空间、时间和质量可分级性。在SVC中,标志是在图像的每个宏块(macroblock,MB)中指示的,以表示是否使用低层中的并置块对该MB进行预测。根据并置块进行的预测可以包括纹理、运动矢量和/或译码模式。
可分级HEVC(scalable HEVC,SHVC)是HEVC/H.265的扩展版,支持空间和质量可分级性。多视点HEVC(multiview HEVC,MV-HEVC)是HEVC/H.265的扩展版,支持多视点可分级性。三维HEVC(three dimensional HEVC,3D-HEVC)是HEVC/H.264的扩展版,支持3D视频译码。在单层HEVC编解码器中可以使用时间可分级性。HEVC的多层扩展版使用了一种机制,在该机制中,用于层间预测的经解码图像仅来自同一AU,并被当作长期参考图像(long-termreference picture,LTRP)处理。这些图像与当前层中的其它时间参考图像一起被分配参考图像列表中的参考索引。层间预测(inter-layer prediction,ILP)是在预测单元(prediction unit,PU)级通过将参考索引的值设置为参考一个或多个参考图像列表中的一个或多个层间参考图像而实现的。
当ILRP与正在被编码或解码的当前图像具有不同的空间分辨率时,空间可分级性可以使用参考图像或其部分的重采样。参考图像重采样可以在图像级或译码块级实现。
在视频编解码规范中,图像可以用于多种目的。例如,图像可以用作帧间预测中的参考图像、用于从DPB输出、用于运动矢量的缩放、用于加权预测等。在一些视频译码***中,图像可以通过图像顺序编号(picture order count,POC)标识。此外,DPB中的图像可以被标识为“用于短期参考”、“用于长期参考”或“不用于参考”。一旦图像被标识为“不用于参考”,该图像就不能再用于预测。当图像不再需要输出时,该图像可以从DPB中移除。
AVC可以使用短期参考图像和长期参考图像。当参考图像不再用于预测参考时,该参考图像可以被标识为“不用于参考”。短期参考、长期参考、不用于参考这三种状态之间的转换是通过解码参考图像标识过程控制的。在这些***中,隐式滑动窗口过程和/或显式内存管理控制操作(memory management control operation,MMCO)过程可以用于参考图像标识。当参考帧的数量等于SPS中的最大数量(max_num_ref_frames)时,滑动窗口过程将短期参考图像标识为“不用于参考”。短期参考图像以先入先出的方式存储,使得最近解码的短期图像保存在DPB中。显式MMCO过程可以包括多个MMCO命令。MMCO命令可以将一个或多个短期或长期参考图像标识为“不用于参考”,将所有图像标识为“不用于参考”,或者将当前参考图像或现有的短期参考图像标识为长期参考图像,然后将长期图像索引分配给该长期参考图像。在AVC中,参考图像标识操作以及从DPB中输出和移除图像的过程是在对图像进行解码之后执行的。
HEVC使用参考图像集(reference picture set,RPS)进行参考图像标识。当使用RPS时,为每个条带提供当前图像或任何后一个图像使用的完整参考图像集。因此,在RPS中指示需要保存在DPB中以供当前图像或未来图像使用的所有图像的完整集合。这与AVC方案不同,AVC方案中只指示DPB的相对变化。在保持DPB中参考图像的正确状态时,RPS可能不会存储解码顺序在前面的图像的信息。
在AVC中,可以在对当前图像进行解码之后进行图像标识和缓冲操作(都从DPB中输出和删除解码图像)。在HEVC中,首先从当前图像的条带头中解码RPS。然后,在对当前图像进行解码之前,可以应用图像标识和缓冲操作。
VVC使用参考图像列表0和参考图像列表1来进行参考图像管理。通过这种方法,直接构建图像的参考图像列表,而不使用参考图像列表初始化过程和参考图像列表修改过程。此外,直接根据两个参考图像列表执行参考图像标识。
上述***存在一些问题。VVC解码器应能够推导层间参考图像,以利用层间预测实现多层视频编解码器。为了实现这种机制,编解码器应使用一种机制来指示RPL、推导RPL和在多层上下文中执行参考图像标识。
本发明包括用于分层视频编码中参考图像管理的一些方法。这包括指示RPL、推导RPL和执行参考图像标识。这些技术的描述基于VVC,但适用于其它分层视频编码规范。例如,本发明包括用于基于VVC利用层间预测在多层视频编解码器中指示RPL的机制。以下约束可适用于以下描述的示例。具有相同层ID且与相同呈现时间相关联的所有VCL NAL单元都可以包括一个图像。此外,图像中的所有VCL NAL单元都可以具有相同的POC值。这种POC值也可以称为图像的POC值。
第一示例总结如下。与相同呈现时间相关联的所有图像都属于一个接入单元。不同层中位于同一接入单元内的图像具有相同的POC值。可以向SPS中添加第一个标志,例如inter_layer_ref_pics_flag,以表示ILRP是否用于CVS中任何译码图像的帧间预测。当第一标志表示ILRP可用于CVS中一个或多个译码图像的帧间预测时,可以为RPL结构中的每个条目指示第二标志,以表示该条目是否是ILRP条目。当条目的第二标志表示该条目是ILRP条目时,可以指示表示当前图像的层ID与该条目参考的图像的层ID之间的差值减1的第一增量值。在一些示例中,第一增量值表示包含当前图像的层的层索引与包含条目参考的图像的层的层索引之间的差值减1。在开始对当前条带进行解码时,解码器可以根据码流中的RPL指示构建RPL。当条目是ILRP条目时,推导该条目以参考PicOrderCntVal与当前图像的PicOrderCntVal相同且层ID等于当前图像的层ID减去第一增量值减1的图像。在开始对当前图像进行解码时,每个ILRP(如果存在)都被标识为“用于长期参考”。在结束对当前图像进行解码时,每个ILRP(如果存在)都被标识为“用于短期参考”。解码图像只能被标识为在对同一层中的图像进行解码时“不用于参考”。
执行上述示例的一种方法如下。在一个示例中,公开了一种对视频码流进行解码的方法。码流包括多个层,每个层包括多个图像。一个或多个图像属于不同的层,具有相同的呈现时间,因此形成一个接入单元。该方法包括推导每个图像的POC值。一个接入单元内所有图像的POC值相同。为当前条带推导多个RPL。每个条目都与一个标志相关联,该标志表示该条目是否是ILRP条目。根据推导的RPL对当前条带进行解码。在一个示例性方面,码流包括SPS标志,该SPS标志表示ILRP条目是否用于CVS中任何译码图像的帧间预测。在一个示例性方面中,当RPL中的条目被表示为ILRP条目时,码流包括第一增量值,该第一增量值表示包含当前条带的当前图像的层ID与该条目参考的图像的层ID之间的差值减1。在一个示例性方面中,ILRP条目参考PicOrderCntVal与当前图像的PicOrderCntVal相同且层ID等于当前图像的层ID减去第一增量值减1的图像。在一个示例性方面中,在开始对当前图像进行解码时,每个ILRP(如果存在)都被标识为“用于长期参考”。在结束对当前图像进行解码时,每个ILRP(如果存在)都被标识为“用于短期参考”。
执行上述示例的第二种方法如下。在一个示例中,与相同呈现时间相关联的所有图像都属于一个接入单元。每个图像可以与层内POC值和跨层POC值相关联。一个CVS中的图像可以具有不同的跨层POC值。不同层中位于同一接入单元内的图像可以具有相同的层内POC值,但可以具有不同的跨层POC值。任何图像都可以不参考高层中的图像,因此也可以不参考层ID值较大的图像。解码图像只能被标识为在对同一层中的图像进行解码时“不用于参考”。
执行上述示例的第三种方法如下。在一个示例中,与相同呈现时间相关联的所有图像都属于一个接入单元。一个CVS中的图像可以具有不同的POC值。一个CVS中的图像只能通过POC值标识。任何图像都可以不参考高层中的图像,因此也可以不参考层ID值较大的图像。解码图像只能被标识为在对同一层中的图像进行解码时“不用于参考”。
执行上述示例的第四种方法如下。每个接入单元可以只包含一个图像。因此,与相同呈现时间相关联但属于不同层的任意两个图像可以属于两个不同的接入单元。一个CVS中的图像可能具有不同的POC值。一个CVS中的图像只能通过POC值标识。任何图像都可以不参考高层中的图像,因此也可以不参考层ID值较大的图像。无论当前图像和参考图像是否属于同一层,参考图像都可以被标识为“不用于参考”。
下面描述上述方法的第一示例性实现方式。示例性定义如下。ILRP是与当前图像位于同一接入单元中的图像,其nuh_layer_id小于当前图像的nuh_layer_id,并被标识为“用于长期参考”。长期参考图像(long-term reference picture,LTRP)是nuh_layer_id等于当前图像的nuh_layer_id且被标识为“用于长期参考”的图像。参考图像是短期参考图像或长期参考图像,或层间参考图像。参考图像包含可用于解码顺序在后面的图像的解码过程中进行帧间预测的样本。短期参考图像(short-term reference picture,STRP)是nuh_layer_id等于当前图像的nuh_layer_id且被标识为“用于短期参考”的图像。
示例性序列参数集RBSP语法如下。
示例性参考图像列表结构语法如下。
示例性图像参数集RBSP语义如下。long_term_ref_pics_flag可以设置为0,以表示LTRP不用于CVS中任何译码图像的帧间预测。long_term_ref_pics_flag可以设置为1,以表示LTRP可用于CVS中一个或多个译码图像的帧间预测。inter_layer_ref_pics_flag可以设置为0,以表示ILRP不用于CVS中任何译码图像的帧间预测。inter_layer_ref_pics_flag可以设置为1,以表示ILRP可用于CVS中一个或多个译码图像的帧间预测。
示例性通用条带头语义如下。slice_type根据下表表示条带的译码类型。
表7-4:slice_type与名称的关联关系
slice_type | slice_type的名称 |
0 | B(B条带) |
1 | P(P条带) |
2 | I(I条带) |
当NalUnitType的取值范围为IDR_W_RADL到CRA_NUT(包括端值),且当前图像是接入单元中的第一个图像时,slice_type应等于2。
示例性参考图像列表结构语义如下。inter_layer_ref_pic_flag[listIdx][rplsIdx][i]可以设置为1,以表示语法结构ref_pic_list_struct(listIdx,rplsIdx)中的第i个条目是ILRP条目。inter_layer_ref_pic_flag[listIdx][rplsIdx][i]可以设置为0,以表示语法结构ref_pic_list_struct(listIdx,rplsIdx)中的第i个条目不是ILRP条目。当inter_layer_ref_pic_flag[listIdx][rplsIdx][i]不存在时,则inter_layer_ref_pic_flag[listIdx][rplsIdx][i]的值推断为0。st_ref_pic_flag[listIdx][rplsIdx][i]可以设置为1,以表示语法结构ref_pic_list_struct(listIdx,rplsIdx)中的第i个条目是STRP条目。st_ref_pic_flag[listIdx][rplsIdx][i]可以设置为0,以表示语法结构ref_pic_list_struct(listIdx,rplsIdx)中的第i个条目是LTRP条目。当inter_layer_ref_pic_flag[listIdx][rplsIdx][i]等于0,且st_ref_pic_flag[listIdx][rplsIdx][i]不存在时,st_ref_pic_flag[listIdx][rplsIdx][i]的值可以推断为1。
变量NumLtrpEntries[listIdx][rplsIdx]可以如下推导:
列表DeltaPocSt[listIdx][rplsIdx]可以如下推导:
rpls_entry_layer_id_delta_minus1[listIdx][rplsIdx][i]+1表示当前图像的nuh_layer_id与第i个条目参考的图像的nuh_layer_id之间的差值。rpls_entry_layer_id_delta_minus1[listIdx][rplsIdx][i]的取值范围可以为0到125(包括端值)。
译码图像的示例性解码过程如下。当前图像CurrPic的解码过程如下。NAL单元被解码。以下解码过程可以使用条带头层及其上层中的以下元素的语法。推导与图像顺序编号相关的变量和函数。这一过程只可以对图像的第一个条带调用。在开始非即时解码刷新(instantaneous decoding refresh,IDR)图像的每个条带的解码过程时,可以调用参考图像列表构建的解码过程,来推导参考图像列表0(RefPicList[0])和参考图像列表1(RefPicList[1])。调用用于参考图像标识的解码过程,其中参考图像可以被标识为“不用于参考”或“用于长期参考”。这一过程只可以对图像的第一个条带调用。在当前图像是NoIncorrectPicOutputFlag等于1的CRA图像或NoIncorrectPicOutputFlag等于1的逐步随机接入(gradual random access,GRA)图像时,调用生成不可用参考图像的解码过程,这一过程只可以对图像的第一个条带调用。PictureOutputFlag可以设置如下。如果以下条件之一为真,则PictureOutputFlag可以设置为0。在当前图像是RASL图像,且相关联的IRAP图像的NoIncorrectPicOutputFlag等于1时,PictureOutputFlag可以设置为0。当gra_enabled_flag等于1,且当前图像是NoIncorrectPicOutputFlag等于1的GRA图像时,PictureOutputFlag可以设置为0。当gra_enabled_flag等于1时,当前图像与NoIncorrectPicOutputFlag等于1的GRA图像相关联,且当前图像的PicOrderCntVal小于相关联的GRA图像的RpPicOrderCntVal,则PictureOutputFlag可以设置为0。否则,PictureOutputFlag设置为1。在对当前图像的所有条带进行解码之后,当前解码图像被标识为“用于短期参考”,并且RefPicList[0]或RefPicList[1]中的每个ILRP条目被标识为“用于短期参考”。
用于参考图像列表构建的示例性解码过程如下。这一过程在开始非IDR图像的每个条带的解码过程时调用。参考图像通过参考索引进行寻址。参考索引是参考图像列表中的索引。当对帧内译码(I)条带进行解码时,参考图像列表不用于条带数据的解码。当对单向帧间预测(P)条带进行解码时,只有参考图像列表0(RefPicList[0])用于条带数据的解码。当对双向帧间预测(B)条带进行解码时,参考图像列表0和参考图像列表1(RefPicList[1])都用于条带数据的解码。在开始非IDR图像中的每个条带的解码过程时,推导出参考图像列表RefPicList[0]和RefPicList[1]。这两个参考图像列表用于参考图像标识或条带数据解码中。对于非IDR图像的I条带,其中,I条带不是该图像的第一个条带,为了检查码流一致性,可以推导RefPicList[0]和RefPicList[1],但对当前图像或解码顺序在当前图像之后的图像进行解码不一定需要推导RefPicList[0]和RefPicList[1]。对于P条带,其中,P条带不是图像的第一个条带,为了检查码流一致性,可以推导RefPicList[1],但对当前图像或解码顺序在当前图像之后的图像进行解码不一定需要推导RefPicList[1]。
参考图像列表RefPicList[0]和RefPicList[1]可以如下构建:
在每个i等于0或1的情况下,RefPicList[i]中的前NumRefIdxActive[i]个条目称为RefPicList[i]中的激活条目,RefPicList[i]中的其它条目称为RefPicList[i]中的非激活条目。特定图像可以由RefPicList[0]中的条目和RefPicList[1]中的条目共同参考。特定图像还可以由RefPicList[0]中的一个以上的条目或RefPicList[1]中的一个以上的条目参考。RefPicList[0]中的激活条目和RefPicList[1]中的激活条目共同参考所有可以用于当前图像和解码顺序在当前图像之后的一个或多个图像的帧间预测的参考图像。RefPicList[0]中的非激活条目和RefPicList[1]中的非激活条目共同参考所有不用于当前图像的帧间预测但可以用于解码顺序在当前图像之后的一个或多个图像的帧间预测的参考图像。RefPicList[0]或RefPicList[1]中可以存在一个或多个等于“无参考图像”的条目,因为DPB中不存在对应的图像。应忽略RefPicList[0]或RefPicList[1]中等于“无参考图像”的每个非激活条目。应为RefPicList[0]或RefPicList[1]中等于“无参考图像”的每个激活条目推断无意图像丢失。
为了码流一致性,应应用以下约束。在每个i等于0或1的情况下,num_ref_entries[i][RplsIdx[i]]应不小于NumRefIdxActive[i]。由RefPicList[0]或RefPicList[1]中的每个激活条目参考的图像存在于DPB中,并且其TemporalId应小于或等于当前图像的TemporalId。RefPicList[0]或RefPicList[1]中的每个条目参考的图像不应是当前图像。图像中的条带的RefPicList[0]或RefPicList[1]中的STRP条目与同一图像中的同一条带或不同条带的RefPicList[0]或RefPicList[1]中的LTRP条目不应参考同一图像。在当前图像的PicOrderCntVal与由LTRP条目参考的图像的PicOrderCntVal之间的差值大于或等于224时,RefPicList[0]或RefPicList[1]中不应存在这种条目。假设setOfRefPics是RefPicList[0]中与当前图像具有相同nuh_layer_id的所有条目以及RefPicList[1]中与当前图像具有相同nuh_layer_id的所有条目参考的唯一图像集。setOfRefPics中的图像数量小于或等于sps_max_dec_pic_buffering_minus1,而且一个图像中的所有条带应具有相同的setOfRefPics。当前图像中的条带的RefPicList[0]或RefPicList[1]中的每个ILRP条目参考的图像应与当前图像位于同一接入单元中。当前图像中的条带的RefPicList[0]或RefPicList[1]中的每个ILRP条目参考的图像应存在于DPB中,并且其nuh_layer_id应小于当前图像的nuh_layer_id。条带的RefPicList[0]或RefPicList[1]中的每个ILRP条目都应为激活条目。
参考图像标识的示例性解码过程如下。在条带头解码和用于条带的参考图像列表构建的解码过程完成之后,但在条带数据解码开始之前,每个图像调用一次该过程。该过程可能导致DPB中的一个或多个参考图像被标识为“不用于参考”或“用于长期参考”。DPB中的解码图像可以被标识为“不用于参考”、“用于短期参考”或“用于长期参考”。但是,在解码过程的操作期间的任何给定时刻,解码图像只能被标识为这三种状态中的一种状态。将其中一种标识状态指定给图像会隐式地删除其它标识状态(如果适用)。当图像称为被标识为“用于参考”时,这统一是指图像被标识为“用于短期参考”或“用于长期参考”(但不是同时)。STRP和ILRP可以通过其nuh_layer_id和PicOrderCntVal值来标识。LTRP可以通过其nuh_layer_id值和其PicOrderCntVal值的Log2(MaxLtPicOrderCntLsb)个最低有效位(least significant bit,LSB)来标识。如果当前图像是编码层视频序列开始(codedlayer video sequence start,CLVSS)图像,则DPB中当前与当前图像具有相同nuh_layer_id的所有参考图像(如果有)都被标识为“不用于参考”。否则,以下情况适用。对于RefPicList[0]或RefPicList[1]中的每个LTRP条目,当参考的图像是与当前图像具有相同nuh_layer_id的STRP时,该图像被标识为“用于长期参考”。DPB中与当前图像具有相同nuh_layer_id的每个参考图像,如果没有被RefPicList[0]或RefPicList[1]中的任何条目参考,则被标识为“不用于参考”。对于RefPicList[0]或RefPicList[1]中的每个ILRP条目,参考的图像被标识为“用于长期参考”。
下面描述上述方法的第二示例性实现方式。示例性定义如下。ILRP是与当前图像位于同一接入单元中的图像,其nuh_layer_id小于当前图像的nuh_layer_id,并被标识为“用于长期参考”。LTRP是nuh_layer_id等于当前图像的nuh_layer_id的图像,并被标识为“用于长期参考”。参考图像是短期参考图像或长期参考图像,或层间参考图像。参考图像包含可用于解码顺序在后面的图像的解码过程中进行帧间预测的样本。STRP是nuh_layer_id等于当前图像的nuh_layer_id的图像,并被标识为“用于短期参考”。
示例性视频参数集语法如下。
示例性视频参数集RBSP语义如下。vps_video_parameter_set_id为VPS提供了一个标识符,以供其它语法元素参考。vps_max_layer_id表示每个CVS中参考视频参数集(video parameter set,VPS)的nuh_layer_id的最大允许值。一旦在生成原始码流时被确定,vps_max_layer_id的值将保持不变。这包括当原始码流被重写或重写码流被进一步重写时。否则,图像顺序编号值可能会被中断,并可能发生意外行为。或者,在SPS中指示nuh_layer_id的最大允许值,并命名为sps_max_layer_id。
示例性通用条带头语义如下。slice_type根据下表表示条带的译码类型。
表7-4:slice_type与名称的关联关系
slice_type | slice_type的名称 |
0 | B(B条带) |
1 | P(P条带) |
2 | I(I条带) |
当NalUnitType的取值范围为IDR_W_RADL到CRA_NUT(包括端值),且当前图像是接入单元中的第一个图像时,slice_type应等于2。slice_pic_order_cnt_lsb表示当前图像的PicOrderCntVal对MaxPicOrderCntLsb取模的值。语法元素slice_pic_order_cnt_lsb的长度为log2_max_pic_order_cnt_lsb_minus4+4个比特。slice_pic_order_cnt_lsb的取值范围应为0到MaxPicOrderCntLsb-1(包括端值)。slice_poc_lsb_lt[i][j]表示第i个参考图像列表中的第j个LTRP条目的PicOrderCntVal对MaxPicOrderCntLsb取模的值。语法元素slice_poc_lsb_lt[i][j]的长度为log2_max_pic_order_cnt_lsb_minus4+4个比特。st_ref_pic_flag[listIdx][rplsIdx][i]可以设置为1,以表示语法结构ref_pic_list_struct(listIdx,rplsIdx)中的第i个条目是非LTRP条目(STRP条目或ILRP条目)。st_ref_pic_flag[listIdx][rplsIdx][i]可以设置为0,以表示语法结构ref_pic_list_struct(listIdx,rplsIdx)中的第i个条目是LTRP条目。当st_ref_pic_flag[listIdx][rplsIdx][i]不存在时,st_ref_pic_flag[listIdx][rplsIdx][i]的值推断为1。
变量NumLtrpEntries[listIdx][rplsIdx]可以如下推导:
当第i个条目是语法结构ref_pic_list_struct(listIdx,rplsIdx)中的第一个非LTRP条目时,abs_delta_poc_st[1istIdx][rplsIdx][i]表示当前图像的CrossLayerPoc值与第i个条目参考的图像的CrossLayerPoc值之间的绝对差值。当第i个条目是非LTRP条目但不是语法结构ref_pic_list_struct(listIdx,rplsIdx)中的第一个非LTRP条目时,abs_delta_poc_st[listIdx][rplsIdx][i]表示第i个条目参考的图像的CrossLayerPoc值与语法结构ref_pic_list_struct( listIdx,rplsIdx)中的前一个非LTRP条目参考的图像的CrossLayerPoc值之间的绝对差值。abs_delta_poc_st[listIdx][rplsIdx][i]的取值范围可以为0到(215-1)*(vps_max_layer_id+1)(包括端值)。entry_sign_flag[listIdx][rplsIdx][i]可以设置为1,以表示语法结构ref_pic_list_struct(listIdx,rplsIdx)中的第i个条目的值大于或等于0。entry_sign_flag[listIdx][rplsIdx]可以设置为0,以表示语法结构ref_pic_list_struct(listIdx,rplsIdx)中的第i个条目的值小于0。如果entry_sign_flag[i][j]不存在,则entry_sign_flag[i][j]的值推断为1。
列表DeltaPoc[1istIdx][rplsIdx]可以如下推导:
rpls_poc_lsb_lt[listIdx][rplsIdx][i]表示语法结构ref_pic_list_struct(listIdx,rplsIdx)中的第i个条目参考的图像的PicOrderCntVal对MaxPicOrderCntLsb取模的值。rpls_poc_lsb_lt[1istIdx][rplsIdx][i]语法元素的长度为log2_max_pic_order_cnt_lsb_minus4+4个比特。
译码图像的示例性解码过程如下。当前图像CurrPic的解码过程如下。本文规定了NAL单元的解码。以下解码过程使用分块组头层及其上层的语法元素。推导与图像顺序编号相关的变量和函数。这一推导过程只可以对图像的第一个条带调用。在非IDR图像的每个条带的解码过程开始时,调用参考图像列表构建的解码过程,来推导参考图像列表0(RefPicList[0])和参考图像列表1(RefPicList[1])。调用用于参考图像标识的解码过程。参考图像可以被标识为“不用于参考”或“用于长期参考”。仅图像的第一个条带可调用该机制。当当前图像是NoIncorrectPicOutputFlag等于1的CRA图像或NoIncorrectPicOutputFlag等于1的GRA图像时,调用生成不可用参考图像的解码过程。仅图像的第一个条带可调用该过程。
PictureOutputFlag可以设置如下。如果以下条件之一为真,则将PictureOutputFlag设置为0。当当前图像是RASL图像,且相关联的IRAP图像的NoIncorrectPicOutputFlag等于1时,PictureOutputFlag设置为0。当gra_enabled_flag等于1,且当前图像是NoIncorrectPicOutputFlag等于1的GRA图像时,PictureOutputFlag设置为0。当gra_enabled_flag等于1时,当前图像与NoIncorrectPicOutputFlag等于1的GRA图像相关联,且当前图像的PicOrderCntVal小于相关联的GRA图像的RpPicOrderCntVal,则PictureOutputFlag设置为0。否则,PictureOutputFlag设置为1。在对当前图像的所有条带进行解码之后,当前解码图像可以被标识为“用于短期参考”,并且RefPicList[0]或RefPicList[1]中的每个ILRP条目可以被标识为“用于短期参考”。
图像顺序编号的示例性解码过程如下。该过程的输出是CrossLayerPoc,其为当前图像的图像顺序编号。每个译码图像与图像顺序编号变量(表示为CrossLayerPoc)有关。在当前图像不是CLVSS图像时,变量prevPicOrderCntLsb和prevPicOrderCntMsb可以如下推导:假设prevTid0Pic是解码顺序中的前一个图像,该图像的nuh_layer_id等于当前图像的nuh_layer_id、该图像的TemporalId等于0,并且该图像不是RASL图像或RADL图像。变量prevPicOrderCntLsb可以设置为prevTid0Pic的slice_pic_order_cnt_lsb。变量prevPicOrderCntMsb可以设置为prevTid0Pic的PicOrderCntMsb。当前图像的变量PicOrderCntMsb的可以如下推导:如果当前图像是CLVSS图像,则PicOrderCntMsb可以设置为0。否则,PicOrderCntMsb可以如下推导:
PicOrderCntVal可以如下推导:
PicOrderCntVal=PicOrderCntMsb+slice_pic_order_cnt_lsb
所有CLVSS图像的PicOrderCntVal都可以设置为slice_pic_order_cnt_lsb,因为对于CLVSS图像,PicOrderCntMsb设置为0。PicOrderCntVal的取值范围可以为-231到231-1(包括端值)。在一个CVS中,任意两个具有相同nuh_layer_id值的译码图像的PicOrderCntVal值可以不相同。任何特定接入单元中的所有图像都可以具有相同的PicOrderCntVal值。
变量CrossLayerPoc可以如下推导:
CrossLayerPoc=PicOrderCntVal*(vps_max_layer_id+1)+nuh_layer_id
函数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可以处于相同的输出顺序方向上。
用于参考图像列表构建的示例性解码过程如下。这一过程可以在开始非IDR图像的每个条带的解码过程时调用。参考图像通过参考索引进行寻址。参考索引是参考图像列表中的索引。当对I条带进行解码时,在对条带数据进行解码时不使用参考图像列表。当对P条带进行解码时,仅使用参考图像列表0(RefPicList[0])来对条带数据进行解码。当对B条带进行解码时,参考图像列表0和参考图像列表1(RefPicList[1])都用于对条带数据进行解码。在开始非IDR图像中的每个条带的解码过程时,推导出参考图像列表RefPicList[0]和RefPicList[1]。可以使用这两个参考图像列表来标识参考图像或对条带数据进行解码。对于非IDR图像的I条带,如果I条带不是图像的第一个条带,则可以推导RefPicList[0]和RefPicList[1],以用于码流一致性检查。但是,对当前图像或码顺序在当前图像之后的图像进行解码不一定需要这些推导过程。对于P条带,如果P条带不是图像的第一个条带,则可以推导RefPicList[1],以用于码流一致性检查。但是,对当前图像或解码顺序在当前图像之后的图像进行解码可以不需要推导RefPicList[1]。参考图像列表RefPicList[0]和RefPicList[1]可以如下构建:
在每个i等于0或1的情况下,RefPicList[i]中的前NumRefIdxActive[i]个条目称为RefPicList[i]中的激活条目,RefPicList[i]中的其它条目称为RefPicList[i]中的非激活条目。当参考图像列表中的条目参考的图像具有与当前图像不同的nuh_layer_id值时,该条目可以称为ILRP条目。特定图像可以由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的情况下,num_ref_entries[i][RplsIdx[i]]可以不小于NumRefIdxActive[i]。由RefPicList[0]或RefPicList[1]中的每个激活条目参考的图像可以存在于DPB中,并且其TemporalId可以小于或等于当前图像的TemporalId。RefPicList[0]或RefPicList[1]中的每个条目参考的图像可以不是当前图像。图像中的条带的RefPicList[0]或RefPicList[1]中的STRP条目与同一图像中的同一条带或不同条带的RefPicList[0]或RefPicList[1]中的LTRP条目可以不参考同一图像。当前图像的PicOrderCntVal与由LTRP条目参考的图像的PicOrderCntVal之间的差值大于或等于224,RefPicList[0]或RefPicList[1]中可以不存在这种条目。假设setOfRefPics是RefPicList[0]中与当前图像具有相同nuh_layer_id的所有条目以及RefPicList[1]中与当前图像具有相同nuh_layer_id的所有条目参考的唯一图像集。setOfRefPics中的图像数量可以小于或等于sps_max_dec_pic_buffering_minus1,而且一个图像中的所有条带可以具有相同的setOfRefPics。当前图像中的条带的RefPicList[0]或RefPicList[1]中的每个ILRP条目参考的图像可以存在于DPB中,并且可以与当前图像位于同一接入单元中。当前图像中的条带的RefPicList[0]或RefPicList[1]中的每个ILRP条目参考的图像的nuh_layer_id可以小于当前图像的nuh_layer_id。条带的RefPicList[0]或RefPicList[1]中的每个ILRP条目都可以是激活条目。
参考图像标识的示例性解码过程如下。每个图像可以调用一次该过程。在对条带头进行解码和用于条带的参考图像列表构建的解码过程之后,但在对条带数据进行解码之前,可以进行该过程。该过程可能导致DPB中的一个或多个参考图像被标识为“不用于参考”或“用于长期参考”。DPB中的解码图像可以被标识为“不用于参考”、“用于短期参考”或“用于长期参考”。在解码过程的操作期间的任何给定时刻,DPB中的解码图像只能被标识为这三个图像中的一个。将其中一种标识状态指定给图像会隐式地删除其它标识状态(如果适用)。当图像称为被标识为“用于参考”时,这统一是指图像被标识为“用于短期参考”或“用于长期参考”(但不是同时)。STRP通过其nuh_layer_id和PicOrderCntVal值来标识。LTRP通过其nuh_layer_id值和其PicOrderCntVal值的Log2(MaxLtPicOrderCntLsb)个LSB来标识。如果当前图像是CLVSS图像,则DPB中当前具有与当前图像相同nuh_layer_id的所有参考图像(如果有)都可以被标识为“不用于参考”。否则,以下情况适用。对于RefPicList[0]或RefPicList[1]中的每个LTRP条目,当参考的图像是与当前图像具有相同nuh_layer_id的STRP时,参考的图像被标识为“用于长期参考”。DPB中与当前图像具有相同nuh_layer_id的每个参考图像,如果没有被RefPicList[0]或RefPicList[1]中的任何条目参考,则可以被标识为“不用于参考”。对于RefPicList[0]或RefPicList[1]中的每个ILRP条目,参考的图像可以被标识为“用于长期参考”。
下面描述上述方法的第三示例性实现方式。定义的示例如下。ILRP是与当前图像位于同一接入单元中的图像,其nuh_layer_id小于当前图像的nuh_layer_id,并被标识为“用于长期参考”。LTRP是nuh_layer_id等于当前图像的nuh_layer_id的图像,并被标识为“用于长期参考”。参考图像是短期参考图像或长期参考图像,或层间参考图像。参考图像包含可用于解码顺序在后面的图像的解码过程中进行帧间预测的样本。STRP是nuh_layer_id等于当前图像的nuh_layer_id的图像,并被标识为“用于短期参考”。
示例性通用条带头语义如下。slice_type可以根据下表表示条带的译码类型。
表7-4:slice_type与名称的关联关系
slice_type | slice_type的名称 |
0 | B(B条带) |
1 | P(P条带) |
2 | I(I条带) |
当NalUnitType的取值范围为IDR_W_RADL到CRA_NUT(包括端值),且当前图像是接入单元中的第一个图像时,slice_type可以设置为2。
译码图像的示例性解码过程如下。当前图像CurrPic的解码过程如下。本文规定了NAL单元的解码。以下解码过程使用分块组头层及其上层的语法元素。推导与图像顺序编号相关的变量和函数。这一推导过程只可以对图像的第一个条带调用。在非IDR图像的每个条带的解码过程开始时,调用参考图像列表构建的解码过程,来推导参考图像列表0(RefPicList[0])和参考图像列表1(RefPicList[1])。调用用于参考图像标识的解码过程。参考图像可以被标识为“不用于参考”或“用于长期参考”。仅图像的第一个条带可调用该机制。当当前图像是NoIncorrectPicOutputFlag等于1的CRA图像或NoIncorrectPicOutputFlag等于1的GRA图像时,调用生成不可用参考图像的解码过程。仅图像的第一个条带可调用该过程。
PictureOutputFlag可以设置如下。如果以下条件之一为真,则将PictureOutputFlag设置为0。当当前图像是RASL图像,且相关联的IRAP图像的NoIncorrectPicOutputFlag等于1时,PictureOutputFlag设置为0。当gra_enabled_flag等于1,且当前图像是NoIncorrectPicOutputFlag等于1的GRA图像时,PictureOutputFlag设置为0。当gra_enabled_flag等于1时,当前图像与NoIncorrectPicOutputFlag等于1的GRA图像相关联,且当前图像的PicOrderCntVal小于相关联的GRA图像的RpPicOrderCntVal,则PictureOutputFlag设置为0。否则,PictureOutputFlag设置为1。在对当前图像的所有条带进行解码之后,当前解码图像可以被标识为“用于短期参考”,并且RefPicList[0]或RefPicList[1]中的每个ILRP条目可以被标识为“用于短期参考”。
图像顺序编号的示例性解码过程如下。该过程的输出是PicOrderCntVal,其为当前图像的图像顺序编号。每个译码图像可以与图像顺序编号变量(表示为PicOrderCntVal)有关。当当前图像不是CLVSS图像(CLVSS图像是解码顺序中接入单元中的第一个图像)时,变量prevPicOrderCntLsb和prevPicOrderCntMsb可以如下推导:假设prevTid0Pic是解码顺序中的前一个图像,该图像的nuh_layer_id小于或等于当前图像的nuh_layer_id、该图像的TemporalId等于0,并且该图像不是RASL或RADL图像。变量prevPicOrderCntLsb可以设置为prevTid0Pic的slice_pic_order_cnt_lsb。变量prevPicOrderCntMsb可以设置为prevTid0Pic的PicOrderCntMsb。当前图像的变量PicOrderCntMsb的可以如下推导:如果当前图像是CLVSS图像(CLVSS图像是解码顺序中接入单元中的第一个图像),则PicOrderCntMsb可以设置为0。否则,PicOrderCntMsb如下推导:
PicOrderCntVal可以如下推导:
PicOrderCntVal=PicOrderCntMsb+slice_pic_order_cnt_lsb
作为解码顺序中接入单元中的第一个图像的每个CLVSS图像可以具有设置为slice_pic_order_cnt_lsb的PicOrderCntVal,因为PicOrderCntMsb设置0。PicOrderCntVal的取值范围可以为-231到231-1(包括端值)。在一个CVS中,任意两个译码图像的PicOrderCntVal值可以不相同。函数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可以处于相同的输出顺序方向上。
用于参考图像列表构建的示例性解码过程如下。这一过程可以在开始非IDR图像的每个条带的解码过程时调用。参考图像通过参考索引进行寻址。参考索引是参考图像列表中的索引。当对I条带进行解码时,在对条带数据进行解码时不使用参考图像列表。当对P条带进行解码时,仅使用参考图像列表0(RefPicList[0])来对条带数据进行解码。当对B条带进行解码时,参考图像列表0和参考图像列表1(RefPicList[1])都用于对条带数据进行解码。在开始非IDR图像中的每个条带的解码过程时,推导出参考图像列表RefPicList[0]和RefPicList[1]。这两个参考图像列表用于参考图像标识或条带数据解码中。对于非IDR图像的I条带,如果I条带不是图像的第一个条带,则可以推导RefPicList[0]和RefPicList[1],以用于码流一致性检查。对当前图像或解码顺序在当前图像之后的图像进行解码不一定需要这些推导过程。对于P条带,如果P条带不是图像的第一个条带,则可以推导RefPicList[1],以用于码流一致性检查。但是,对当前图像或解码顺序在当前图像之后的图像进行解码不一定需要这一推导过程。参考图像列表RefPicList[0]和RefPicList[1]可以如下构建:
在每个i等于0或1的情况下,RefPicList[i]中的前NumRefIdxActive[i]个条目称为RefPicList[i]中的激活条目,RefPicList[i]中的其它条目称为RefPicList[i]中的非激活条目。当参考图像列表中的条目参考的图像具有与当前图像不同的nuh_layer_id值时,该条目可以称为ILRP条目。特定图像可以由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的情况下,num_ref_entries[i][RplsIdx[i]]可以不小于NumRefIdxActive[i]。由RefPicList[0]或RefPicList[1]中的每个激活条目参考的图像可以存在于DPB中,并且其TemporalId可以小于或等于当前图像的TemporalId。RefPicList[0]或RefPicList[1]中的每个条目参考的图像可以不是当前图像。图像中的条带的RefPicList[0]或RefPicList[1]中的STRP条目与同一图像中的同一条带或不同条带的RefPicList[0]或RefPicList[1]中的LTRP条目可以不参考同一图像。当前图像的PicOrderCntVal与由LTRP条目参考的图像的PicOrderCntVal之间的差值大于或等于224,RefPicList[0]或RefPicList[1]中可以不存在这种条目。假设setOfRefPics是RefPicList[0]中与当前图像具有相同nuh_layer_id的所有条目以及RefPicList[1]中与当前图像具有相同nuh_layer_id的所有条目参考的唯一图像集。setOfRefPics中的图像数量可以小于或等于sps_max_dec_pic_buffering_minus1,而且一个图像中的所有条带可以具有相同的setOfRefPics。当前图像中的条带的RefPicList[0]或RefPicList[1]中的每个ILRP条目参考的图像应与当前图像可以位于同一接入单元中。当前图像中的条带的RefPicList[0]或RefPicList[1]中的每个ILRP条目参考的图像可以存在于DPB中,并且其nuh_layer_id可以小于当前图像的nuh_layer_id。条带的RefPicList[0]或RefPicList[1]中的每个ILRP条目都可以是激活条目。
参考图像标识的示例性解码过程如下。在对条带头进行解码和用于条带的参考图像列表构建的解码过程之后,每个图像调用一次该过程。该过程也可以在对条带数进行解码据之前调用。该过程可能导致DPB中的一个或多个参考图像被标识为“不用于参考”或“用于长期参考”。DPB中的解码图像可以被标识为“不用于参考”、“用于短期参考”或“用于长期参考”。在解码过程的操作期间的任何给定时刻,DPB中的解码图像只能被标识为这三个图像中的一个。将其中一种标识状态指定给图像会隐式地删除其它标识状态(如果适用)。当图像称为被标识为“用于参考”时,这统一是指图像被标识为“用于短期参考”或“用于长期参考”(但不是同时)。STRP和ILRP可以通过其nuh_layer_id和PicOrderCntVal值来标识。LTRP可以通过其nuh_layer_id值和其PicOrderCntVal值的Log2( MaxLtPicOrderCntLsb)个LSB来标识。如果当前图像是CLVSS图像,则DPB中当前具有与当前图像相同nuh_layer_id的所有参考图像(如果有)都可以被标识为“不用于参考”。否则,以下情况适用。对于RefPicList[0]或RefPicList[1]中的每个LTRP条目,当参考的图像是与当前图像具有相同nuh_layer_id的STRP时,该图像被标识为“用于长期参考”。与DPB中当前图像具有相同nuh_layer_id的每个参考图像,如果没有被RefPicList[0]或RefPicList[1]中的任何条目参考,则可以被标识为“不用于参考”。对于RefPicList[0]或RefPicList[1]中的每个ILRP条目,参考的图像可以被标识为“用于长期参考”。
下面描述上述方法的第四示例性实现方式。图像顺序编号的示例性解码过程如下。该过程的输出是PicOrderCntVal,其为当前图像的图像顺序编号。每个译码图像与图像顺序编号变量(表示为PicOrderCntVal)有关。当当前图像不是CLVSS图像时,变量prevPicOrderCntLsb和prevPicOrderCntMsb可以如下推导:假设prevTid0Pic是解码顺序中的前一个图像,该图像的nuh_layer_id小于或等于当前图像的nuh_layer_id、该图像的TemporalId等于0,并且该图像不是RASL或RADL图像。变量prevPicOrderCntLsb可以设置为prevTid0Pic的slice_pic_order_cnt_lsb。变量prevPicOrderCntMsb可以设置为prevTid0Pic的PicOrderCntMsb。当前图像的变量PicOrderCntMsb的可以如下推导:如果当前图像是CLVSS图像,则PicOrderCntMsb可以设置为0。否则,PicOrderCntMsb可以如下推导:
PicOrderCntVal可以如下推导:
PicOrderCntVal=PicOrderCntMsb+slice_pic_order_cnt_lsb
所有CLVSS图像的PicOrderCntVal可以等于slice_pic_order_cnt_lsb,因为对于CLVSS图像,PicOrderCntMsb设置为0。PicOrderCntVal的取值范围可以为-231到231-1(包括端值)。在一个CVS中,任意两个译码图像的PicOrderCntVal值可以不相同。函数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处于相同的输出顺序方向上。
用于参考图像列表构建的示例性解码过程如下。这一过程可以在开始非IDR图像的每个条带的解码过程时调用。参考图像通过参考索引进行寻址。参考索引是参考图像列表中的索引。当对I条带进行解码时,在对条带数据进行解码时不使用参考图像列表。当对P条带进行解码时,仅使用参考图像列表0(RefPicList[0])来对条带数据进行解码。当对B条带进行解码时,参考图像列表0和参考图像列表1(RefPicList[1])都用于对条带数据进行解码。在非IDR图像中的每个条带的解码过程开始时,可以推导参考图像列表RefPicList[0]和RefPicList[1]。可以使用这两个参考图像列表来标识参考图像或对条带数据进行解码。对于非IDR图像的I条带,如果I条带不是图像的第一个条带,则可以推导RefPicList[0]和RefPicList[1],以用于码流一致性检查。对当前图像或解码顺序在当前图像之后的图像进行解码可以不需要这一推导过程。对于P条带,如果P条带不是图像的第一个条带,则可以推导RefPicList[1],以用于码流一致性检查。但是,对当前图像或解码顺序在当前图像之后的图像进行解码可以不需要这一推导过程。
参考图像列表RefPicList[0]和RefPicList[1]可以如下构建:
在每个i等于0或1的情况下,RefPicList[i]中的前NumRefIdxActive[i]个条目称为RefPicList[i]中的激活条目,RefPicList[i]中的其它条目称为RefPicList[i]中的非激活条目。特定图像可以由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的情况下,num_ref_entries[i][RplsIdx[i]]可以不小于NumRefIdxActive[i]。由RefPicList[0]或RefPicList[1]中的每个激活条目参考的图像可以存在于DPB中,并且其TemporalId可以小于或等于当前图像的TemporalId。RefPicList[0]或RefPicList[1]中的每个条目参考的图像可以不是当前图像。图像中的条带的RefPicList[0]或RefPicList[1]中的STRP条目与同一图像中的同一条带或不同条带的RefPicList[0]或RefPicList[1]中的LTRP条目可以不参考同一图像。当前图像的PicOrderCntVal与由LTRP条目参考的图像的PicOrderCntVal之间的差值大于或等于224,RefPicList[0]或RefPicList[1]中可以不存在这种条目。假设setOfRefPics为由RefPicList[0]中的所有条目和RefPicList[1]中的所有条目参考的独特图像集。setOfRefPics中的图像数量可以小于或等于sps_max_dec_pic_buffering_minus1,而且一个图像中的所有条带可以具有相同的setOfRefPics。由RefPicList[0]或RefPicList[1]中的每个激活条目参考的图像可以存在于DPB中,并且其nuh_layer_id可以小于或等于当前图像的nuh_layer_id。
参考图像标识的示例性解码过程如下。在对条带头进行解码和用于条带的参考图像列表构建的解码过程之后,每个图像调用一次该过程。该过程可以在对条带数进行解码据之前调用。该过程可能导致DPB中的一个或多个参考图像被标识为“不用于参考”或“用于长期参考”。DPB中的解码图像可以被标识为“不用于参考”、“用于短期参考”或“用于长期参考”。在解码过程的操作期间的任何给定时刻,DPB中的解码图像只能被标识为这三个图像中的一个。将其中一种标识状态指定给图像会隐式地删除其它标识状态(如果适用)。当图像称为被标识为“用于参考”时,这统一是指图像被标识为“用于短期参考”或“用于长期参考”(但不是同时)。STRP可以通过其PicOrderCntVal值标识。LTRP可以通过其PicOrderCntVal值的Log2(MaxLtPicOrderCntLsb)个LSB标识。如果当前图像为CLVSS图像,则DPB中当前包括的所有参考图像(如果有)都可以被标识为“不用于参考”。否则,以下情况适用。对于RefPicList[0]或RefPicList[1]中的每个LTRP条目,当参考的图像是STRP时,参考的图像将标识为“用于长期参考”。DPB中的未被RefPicList[0]或RefPicList[1]中的任何条目参考的每个参考图像被标识为“不用于参考”。
图10为示例性视频译码设备1000的示意图。视频译码设备1000适合于实现本文描述的公开示例/实施例。视频译码设备1000包括下行端口1020、上行端口1050和/或收发单元(Tx/Rx)1010。收发单元(Tx/Rx)1010包括用于通过网络向上游和/或下游传送数据的发送器和/或接收器。视频译码设备1000还包括:用于处理数据的包括逻辑单元和/或中央处理单元(central processing unit,CPU)的处理器1030;用于存储数据的存储器1032。视频译码设备1000还可以包括耦合到上行端口1050和/或下行端口1020的电组件、光电(optical-to-electrical,OE)组件、电光(electrical-to-optical,EO)组件和/或无线通信组件,以用于通过电、光或无线通信网络进行数据传输。视频译码设备1000还可以包括用于与用户进行数据通信的输入和/或输出(I/O)设备1060。I/O设备1060可以包括输出设备,例如用于显示视频数据的显示器、用于输出音频数据的扬声器等。I/O设备1060还可以包括键盘、鼠标、轨迹球等输入设备和/或用于与这些输出设备交互的对应接口。
处理器1030通过硬件和软件实现。处理器1030可以实现为一个或多个CPU芯片、核(例如,多核处理器)、现场可编程门阵列(field-programmable gate array,FPGA)、专用集成电路(application specific integrated circuit,ASIC)和数字信号处理器(digitalsignal processor,DSP)。处理器1030与下行端口1020、Tx/Rx 1010、上行端口1050和存储器1032通信。处理器1030包括译码模块1014。译码模块1014实现本文描述的公开实施例,例如方法100、1100和/或1200,这些方法可以使用包括RPL结构800和可以根据单向帧间预测500、双向帧间预测600和/或基于层的预测700译码的图像的码流900。译码模块1014还可以实现本文描述的任何其它方法/机制。此外,译码模块1014可以实现编解码***200、编码器300和/或解码器400。例如,译码模块1014可用于对参考图像结构中的ILRP标志和/或ILRP层指示符进行译码,以管理参考图像来支持如上描述的层间预测。因此,译码模块1014使得视频译码设备1000在译码视频数据时提供其它功能和/或提高译码效率。因此,译码模块1014改进了视频译码设备1000的功能,并解决了视频编码领域特有的问题。此外,译码模块1014影响了视频译码设备1000到不同状态的转换。或者,译码模块1014可以实现为存储在存储器1032中并由处理器1030执行的指令(例如,存储在非瞬时性介质中的计算机程序产品)。
存储器1032包括一个或多个存储器类型,如磁盘、磁带机、固态驱动器、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、闪存、三态内容寻址存储器(ternary content-addressable memory,TCAM)、静态随机存取存储器(static random-access memory,SRAM)等。存储器1032可以用作溢出数据存储设备,以在选择程序用于执行时存储此类程序,并存储在程序执行过程中读取的指令和数据。
图11为根据层间预测将视频序列编码到码流(例如码流900)中的示例性方法1100的流程图。方法1100可以由编码器(例如编解码器***200、编码器300和/或视频译码设备1000)在执行方法100以通过使用RPL结构800根据单向帧间预测500、双向帧间预测600和/或基于层的预测700对图像进行编码时执行。
方法1100可以开始于:编码器接收到包括多个图像的视频序列,并且根据用户输入等确定将该视频序列编码到码流中。在步骤1101中,编码器将当前图像编码到码流中。例如,当前图像可以根据基于层间参考图像的层间预测而编码。例如,这种层间预测可以根据层间预测721执行。如上所述,层间参考图像可以与当前图像位于同一AU中。因此,层间参考图像可以与当前图像包含相同的POC。此外,层间参考图像与当前图像位于不同的层中。例如,层间参考图像可以与比当前图像所在的层低的层相关联。因此,层间参考图像可以与比当前图像的层ID小的层ID相关联。
在步骤1103中,编码器可以将参考图像列表结构(例如RPL结构800)编码到码流中。参考图像列表结构包括多个参考图像的多个条目。这些条目包括与当前图像相关联的条目。该条目表示层间参考图像。例如,参考图像列表结构可以表示为ref_pic_list_struct(listIdx,rplsIdx),其中,listIdx标识参考图像列表,rplsIdx标识参考图像列表中的条目,ref_pic_list_struct是根据listIdx和rplsIdx返回条目的语法结构。
在步骤1105中,编码器可以将层间参考图像标志编码到码流中。层间参考图像标志表示与当前图像相关联的条目是ILRP条目。例如,层间参考图像标志可以表示为inter_layer_ref_pic_flag[listIdx][rplsIdx][i]。具体地,当ref_pic_list_struct(listIdx,rplsIdx)中的第i个条目是ILRP条目时,inter_layer_ref_pic_flag[listIdx][rplsIdx][i]可以设置为1。此外,当ref_pic_list_struct( listIdx,rplsIdx)中的第i个条目不是ILRP条目时,inter_layer_ref_pic_flag[listIdx][rplsIdx][i]可以设置为0。例如,ref_pic_list_struct(listIdx,rplsIdx)和inter_layer_ref_pic_flag[listIdx][rplsIdx][i]可以编码到码流中的SPS中。在另一个示例中,ref_pic_list_struct(listIdx,rplsIdx)和inter_layer_ref_pic_flag[1istIdx][rplsIdx][i]可以编码到码流中与当前图像相关联的标头中,例如条带头和/或图像头中。
在步骤1107,编码器可以将ILRP层指示符编码到码流中。ILRP层指示符表示层间参考图像所在的层。例如,ILRP层指示符可以表示与层间参考图像标志表示的层间参考图像相关联的参考图像列表结构的每个条目的一个或多个层。
在步骤1109中,编码器可以存储码流。该码流用于与解码器通信,例如用于在请求时进行通信。
图12为当使用层间预测时从码流(例如码流900)中解码视频序列的示例性方法的流程图。方法1200可以由解码器(例如编解码器***200、解码器400和/或视频译码设备1000)在执行方法100以通过使用RPL结构800根据单向帧间预测500、双向帧间预测600和/或基于层的预测700对图像进行解码时执行。
例如,方法1200可以开始于:接收表示视频序列(例如,作为方法1100的结果)的译码数据的码流。在步骤1201中,解码器接收码流。码流可以包括当前图像、参考图像列表结构、层间参考图像标志和/或ILRP层指示符。例如,参考图像列表结构可以包括层间参考图像标志和/或ILRP层指示符。
在步骤1203中,解码器可以根据层间参考图像标志确定与当前图像相关联的参考图像列表结构中的条目是ILRP条目。例如,参考图像列表结构包括多个参考图像的多个条目。这些条目包括与当前图像相关联的条目。该条目表示参考图像。例如,参考图像列表结构可以表示为ref_pic_list_struct( listIdx,rplsIdx),其中,listIdx标识参考图像列表,rplsIdx标识参考图像列表中的条目,ref_pic_list_struct是根据listIdx和rplsIdx返回条目的语法结构。此外,层间参考图像标志表示与当前图像相关联的条目是否为ILRP条目。例如,层间参考图像标志可以表示为inter_layer_ref_pic_flag[listIdx][rplsIdx][i]。具体地,当ref_pic_list_struct( listIdx,rplsIdx)中的第i个条目是ILRP条目时,inter_layer_ref_pic_flag[listIdx][rplsIdx][i]可以设置为1。此外,当ref_pic_list_struct( listIdx,rplsIdx)中的第i个条目不是ILRP条目时,inter_layer_ref_pic_flag[listIdx][rplsIdx][i]可以设置为0。例如,ref_pic_list_struct(listIdx,rplsIdx)和inter_layer_ref_pic_flag[listIdx][rplsIdx][i]可以编码到码流中的SPS中。在另一个示例中,ref_pic_list_struct(listIdx,rplsIdx)和inter_layer_ref_pic_flag[listIdx][rplsIdx][i]可以编码到码流中与当前图像相关联的标头中,例如条带头和/或图像头中。
在步骤1205中,当条目是ILRP条目时,解码器可以根据ILRP层指示符确定层间参考图像所在的层。例如,ILRP层指示符可以表示与层间参考图像标志表示的层间参考图像相关联的参考图像列表结构的每个条目的一个或多个层。例如,层间参考图像可以与当前图像包括在同一AU中。因此,层间参考图像可以与当前图像包含相同的POC。此外,层间参考图像与当前图像位于不同的层中。例如,层间参考图像可以与比当前图像所在的层低的层相关联。因此,层间参考图像可以与比当前图像的层ID小的层ID相关联。
在步骤1207中,当参考图像列表结构中的条目是ILRP条目时,解码器可以在由ILRP层指示符表示的级别根据基于所述参考图像列表结构中的所述条目表示的层间参考图像的层间预测,对当前图像进行解码。
在步骤1209中,当参考图像列表结构中的条目不是ILRP条目时,解码器可以根据基于参考图像列表结构中的所述条目指示的层内参考图像的层内预测,对当前图像进行解码。层内参考图像简单地称为单层上下文中的参考图像。此外,根据上下文,层内预测可以包括帧内预测和/或单层帧间预测。当使用参考图像时,层内预测表示单层帧间预测。
在步骤1211中,解码器转发解码/重建的当前图像,以作为解码视频序列的一部分显示。
图13为当使用层间预测时对码流(例如码流900)中的图像的视频序列进行译码的示例性***1300的示意图。***1300可以通过编码器和解码器(例如编解码***200、编码器300、解码器400和/或视频译码设备1000)实现。此外,***1300可以在执行方法100、1100和/或1200以通过使用RPL结构800根据单向帧间预测500、双向帧间预测600和/或基于层的预测700对图像进行解码时使用。
***1300包括视频编码器1302。视频编码器1302包括编码模块1301,编码模块1301用于将当前图像编码到码流中,当前图像是根据基于层间参考图像的层间预测而编码的。编码模块1301还用于将参考图像列表结构编码到码流中,参考图像列表结构包括多个参考图像的多个条目,多个参考条目包括与当前图像相关联的条目,该条目表示层间参考图像。编码模块1301还用于将层间参考图像标志编码到码流中,层间参考图像标志表示与当前图像相关联的条目是ILRP条目。视频编码器1302还包括存储模块1303,存储模块1303用于存储码流,其中,该码流用于与解码器通信。视频编码器1302还包括发送模块1305,用于将码流发送到视频解码器1310。视频编码器1302还可以用于执行方法1100中的任一步骤。
***1300还包括视频解码器1310。视频解码器1310包括接收模块1311,接收模块1311用于接收包括当前图像、参考图像列表结构和层间参考图像标志的码流。视频解码器1310还包括确定模块1313,确定模块1313用于根据层间参考图像标志确定与当前图像相关联的参考图像列表结构中的条目是否为ILRP条目。视频解码器1310还包括解码模块1315,解码模块1315用于当参考图像列表结构中的条目是ILRP条目时,根据基于所述参考图像列表结构中的所述条目表示的层间参考图像的层间预测,对当前图像进行解码。视频解码器1310还包括转发模块1317,转发模块1317用于转发当前图像,以便当前图像作为解码视频序列的一部分显示。视频解码器1310还可以用于执行方法1200中的任一步骤。
当第一组件与第二组件之间除线、迹线或其它介质之外,没有中间组件时,第一组件与第二组件直接耦合。当第一组件与第二组件之间除了线、迹线或其它介质之外还有中间组件时,第一组件与第二组件间接耦合。术语“耦合”及其同义词包括直接耦合和间接耦合。除非另有说明,否则术语“大约”是指包括其后数量的±10%的范围。
还应理解,本文中阐述的示例性方法的步骤不一定需要按照所描述的顺序执行,并且这些方法的步骤的顺序应理解为仅仅是示例性的。同样地,在与本发明各种实施例相一致的方法中,这些方法可以包括其它步骤,并且某些步骤可以省略或组合。
虽然本发明中已提供若干实施例,但可以理解,在不背离本发明的精神和范围的情况下,所公开的***和方法可以以许多其它特定形式来体现。当前的这些示例被认为是说明性的而非限制性的,并且意图不限于本文给出的细节。例如,各种元件或组件可以组合或集成在另一个***中,或者可以省略或不实现一些特征。
此外,在各种实施例中描述和示出为分立的或单独的技术、***、子***和方法,在不背离本发明的范围的情况下,可以与其它***、组件、技术或方法组合或集成。本领域技术人员可以确定改变、替换和更改的其它示例,并在不背离本发明的精神和范围的情况下作出改变、替换和更改。
Claims (20)
1.一种对视频码流进行解码的方法,其特征在于,所述方法包括:
接收码流,其中,所述码流包括当前图像和参考图像列表结构,所述参考图像列表结构包括层间参考图像标志;所述参考图像列表结构表示为ref_pic_list_struct( listIdx,rplsIdx ),所述层间参考图像标志表示为inter_layer_ref_pic_flag[ listIdx ][rplsIdx ][ i ];
根据所述inter_layer_ref_pic_flag[ listIdx ][ rplsIdx ][ i ]确定与所述当前图像相关联的所述ref_pic_list_struct( listIdx, rplsIdx )中的第i个条目是层间参考图像ILRP条目;其中,当ref_pic_list_struct( listIdx, rplsIdx )中的第i个条目是所述ILRP条目时,inter_layer_ref_pic_flag[ listIdx ][ rplsIdx ][ i ]等于1,当ref_pic_list_struct( listIdx, rplsIdx )中的第i个条目不是所述ILRP条目时,inter_layer_ref_pic_flag[ listIdx ][ rplsIdx ][ i ]等于0;
当所述第i个条目是所述ILRP条目时,根据所述ref_pic_list_struct( listIdx,rplsIdx )中的所述第i个条目表示的层间参考图像对所述当前图像进行解码。
2.根据权利要求1所述的方法,其特征在于,所述参考图像列表结构还包括ILRP层指示符,所述方法还包括:根据所述ILRP层指示符确定所述层间参考图像所在的层。
3.根据权利要求1或2所述的方法,其特征在于,listIdx标识参考图像列表,rplsIdx标识所述参考图像列表中的条目,ref_pic_list_struct是语法结构。
4.根据权利要求1或2所述的方法,其特征在于,还包括:当所述条目不是所述ILRP条目时,根据基于所述参考图像列表结构中的所述条目指示的层内参考图像的层内预测,对所述当前图像进行解码。
5.根据权利要求1或2所述的方法,其特征在于,ref_pic_list_struct( listIdx,rplsIdx )和inter_layer_ref_pic_flag[ listIdx ][ rplsIdx ][ i ]包含在所述码流中的序列参数集SPS中。
6.根据权利要求1或2所述的方法,其特征在于,所述层间参考图像与所述当前图像位于同一接入单元AU中,所述层间参考图像与比所述当前图像的层标识符小的层标识符相关联。
7.一种对视频码流进行编码的方法,其特征在于,所述方法包括:
将当前图像编码到码流中,其中,所述当前图像是根据基于层间参考图像的层间预测而编码的;
将参考图像列表结构编码到所述码流中,其中,所述参考图像列表结构包括多个参考图像的多个条目,所述多个条目包括与所述当前图像相关联的条目;所述参考图像列表结构表示为ref_pic_list_struct( listIdx, rplsIdx );
将层间参考图像标志编码到所述码流中,所述层间参考图像标志表示为inter_layer_ref_pic_flag[ listIdx ][ rplsIdx ][ i ],其中,当ref_pic_list_struct( listIdx,rplsIdx )中的第i个条目是层间参考图像ILRP条目时,inter_layer_ref_pic_flag[listIdx ][ rplsIdx ][ i ]等于1,当ref_pic_list_struct( listIdx, rplsIdx )中的第i个条目不是所述ILRP条目时,inter_layer_ref_pic_flag[ listIdx ][ rplsIdx ][ i]等于0。
8.根据权利要求7所述的方法,其特征在于,还包括:将ILRP层指示符编码到所述码流中,其中,所述ILRP层指示符表示所述层间参考图像所在的层。
9.根据权利要求7或8所述的方法,其特征在于, listIdx标识参考图像列表,rplsIdx标识所述参考图像列表中的条目,ref_pic_list_struct是根据listIdx和rplsIdx返回所述条目的语法结构。
10.根据权利要求7或8所述的方法,其特征在于,ref_pic_list_struct( listIdx,rplsIdx )和inter_layer_ref_pic_flag[ listIdx ][ rplsIdx ][ i ]被编码到所述码流中的序列参数集SPS中。
11.根据权利要求7或8所述的方法,其特征在于,ref_pic_list_struct( listIdx,rplsIdx )和inter_layer_ref_pic_flag[ listIdx ][ rplsIdx ][ i ]被编码到与所述当前图像相关联的标头中。
12.根据权利要求7或8所述的方法,其特征在于,所述层间参考图像与所述当前图像位于同一接入单元AU中,所述层间参考图像与比所述当前图像的层标识符小的层标识符相关联。
13.一种视频译码设备,其特征在于,包括:
处理器、耦合到所述处理器的接收器、耦合到所述处理器的存储器和耦合到所述处理器的发送器,其中,所述处理器、所述接收器、所述存储器和所述发送器用于执行根据权利要求1至12中任一项所述的方法。
14.一种非瞬时性计算机可读介质,其特征在于,包括供视频译码设备使用的计算机程序产品,其中,所述计算机程序产品包括存储在所述非瞬时性计算机可读介质中的计算机可执行指令,当所述计算机可执行指令由处理器执行时,使得所述视频译码设备执行根据权利要求1至12中任一项所述的方法。
15.一种解码器,其特征在于,包括:
接收模块,其中,所述接收模块用于接收码流,所述码流包括当前图像和参考图像列表结构,所述参考图像列表结构包括层间参考图像标志;所述参考图像列表结构表示为ref_pic_list_struct( listIdx, rplsIdx ),所述层间参考图像标志表示为inter_layer_ref_pic_flag[ listIdx ][ rplsIdx ][ i ];
确定模块,其中,所述确定模块用于根据所述inter_layer_ref_pic_flag[ listIdx ][ rplsIdx ][ i ]确定与所述当前图像相关联的所述ref_pic_list_struct( listIdx,rplsIdx )中的第i个条目是层间参考图像ILRP条目;其中,当ref_pic_list_struct(listIdx, rplsIdx )中的第i个条目是所述ILRP条目时,inter_layer_ref_pic_flag[listIdx ][ rplsIdx ][ i ]等于1,当ref_pic_list_struct( listIdx, rplsIdx )中的第i个条目不是所述ILRP条目时,inter_layer_ref_pic_flag[ listIdx ][ rplsIdx ][ i]等于0;
解码模块,其中,所述解码模块用于当所述第i个条目是所述ILRP条目时,根据所述ref_pic_list_struct( listIdx, rplsIdx )中的所述第i个条目表示的层间参考图像对所述当前图像进行解码。
16.根据权利要求15所述的解码器,其特征在于,所述解码器还用于执行根据权利要求2至6中任一项所述的方法。
17.一种编码器,其特征在于,包括:
编码模块,其中,所述编码模块用于:
将当前图像编码到码流中,其中,所述当前图像是根据基于层间参考图像的层间预测而编码的;
将参考图像列表结构编码到所述码流中,其中,所述参考图像列表结构包括多个参考图像的多个条目,所述多个条目包括与所述当前图像相关联的条目;所述参考图像列表结构表示为ref_pic_list_struct( listIdx, rplsIdx );
将层间参考图像标志编码到所述码流中,所述层间参考图像标志表示为inter_layer_ref_pic_flag[ listIdx ][ rplsIdx ][ i ],其中,当ref_pic_list_struct( listIdx,rplsIdx )中的第i个条目是层间参考图像ILRP条目时,inter_layer_ref_pic_flag[listIdx ][ rplsIdx ][ i ]等于1,当ref_pic_list_struct( listIdx, rplsIdx )中的第i个条目不是所述ILRP条目时,inter_layer_ref_pic_flag[ listIdx ][ rplsIdx ][ i]等于0。
18.根据权利要求17所述的编码器,其特征在于,所述编码器还用于执行根据权利要求8至12中任一项所述的方法。
19.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有由一个或多个处理器执行的如权利要求7至12中的任一项所述方法得到的视频码流。
20.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有视频码流,所述码流中包括当前图像、参考图像列表结构和层间参考图像标志;所述参考图像列表结构表示为ref_pic_list_struct( listIdx, rplsIdx ),所述层间参考图像标志表示为inter_layer_ref_pic_flag[ listIdx ][ rplsIdx ][ i ];其中,所述当前图像是根据基于层间参考图像的层间预测而编码的,所述参考图像列表结构包括多个参考图像的多个条目;当ref_pic_list_struct( listIdx, rplsIdx )中的第i个条目是层间参考图像ILRP条目时,inter_layer_ref_pic_flag[ listIdx ][ rplsIdx ][ i ]等于1,当ref_pic_list_struct( listIdx, rplsIdx )中的第i个条目不是所述ILRP条目时,inter_layer_ref_pic_flag[ listIdx ][ rplsIdx ][ i ]等于0。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962854827P | 2019-05-30 | 2019-05-30 | |
US62/854,827 | 2019-05-30 | ||
CN202080039118.9A CN113892266A (zh) | 2019-05-30 | 2020-05-19 | 分层视频译码中的参考图像管理 |
PCT/US2020/033595 WO2020242827A1 (en) | 2019-05-30 | 2020-05-19 | Reference picture management in layered video coding |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080039118.9A Division CN113892266A (zh) | 2019-05-30 | 2020-05-19 | 分层视频译码中的参考图像管理 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115314709A CN115314709A (zh) | 2022-11-08 |
CN115314709B true CN115314709B (zh) | 2023-04-28 |
Family
ID=73552602
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080039118.9A Pending CN113892266A (zh) | 2019-05-30 | 2020-05-19 | 分层视频译码中的参考图像管理 |
CN202210734828.4A Active CN115314709B (zh) | 2019-05-30 | 2020-05-19 | 编解码器、译码设备及对应的方法和介质 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080039118.9A Pending CN113892266A (zh) | 2019-05-30 | 2020-05-19 | 分层视频译码中的参考图像管理 |
Country Status (13)
Country | Link |
---|---|
US (1) | US12003700B2 (zh) |
EP (2) | EP3967038B1 (zh) |
JP (2) | JP7417637B2 (zh) |
KR (1) | KR20220012352A (zh) |
CN (2) | CN113892266A (zh) |
BR (1) | BR112021023866A8 (zh) |
DK (1) | DK3967038T3 (zh) |
ES (1) | ES2974230T3 (zh) |
FI (1) | FI3967038T3 (zh) |
HU (1) | HUE065599T2 (zh) |
PL (1) | PL3967038T3 (zh) |
PT (1) | PT3967038T (zh) |
WO (1) | WO2020242827A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP4107956A4 (en) | 2020-03-21 | 2023-06-21 | Beijing Bytedance Network Technology Co., Ltd. | COMBINATION OF SUBIMAGES AND EXTENSIBILITY |
WO2021213307A1 (en) | 2020-04-19 | 2021-10-28 | Beijing Bytedance Network Technology Co., Ltd. | Scaling window for video coding |
EP4154533A4 (en) | 2020-06-20 | 2023-11-01 | Beijing Bytedance Network Technology Co., Ltd. | CROSS-LAYER PREDICTION WITH DIFFERENT CODING BLOCK SIZE |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9584825B2 (en) * | 2012-09-27 | 2017-02-28 | Qualcomm Incorporated | Long-term reference picture signaling in video coding |
EP2934010A4 (en) * | 2012-12-14 | 2016-05-25 | Lg Electronics Inc | METHOD OF VIDEO CODING, METHOD OF VIDEO DECODING AND DEVICE THEREFOR |
US10419776B2 (en) * | 2013-07-09 | 2019-09-17 | Sony Corporation | High level syntax improvement on inter-layer prediction for SHVC/MV-HEVC |
JPWO2015005331A1 (ja) * | 2013-07-10 | 2017-03-02 | シャープ株式会社 | 画像復号装置および画像符号化装置 |
KR20150026927A (ko) * | 2013-09-03 | 2015-03-11 | 주식회사 케이티 | 스케일러블 비디오 신호 인코딩/디코딩 방법 및 장치 |
KR102246545B1 (ko) * | 2013-10-12 | 2021-04-30 | 삼성전자주식회사 | 멀티 레이어 비디오 부호화 방법 및 장치, 멀티 레이어 비디오 복호화 방법 및 장치 |
US9681145B2 (en) | 2013-10-14 | 2017-06-13 | Qualcomm Incorporated | Systems and methods for inter-layer RPS derivation based on sub-layer reference prediction dependency |
US10368097B2 (en) * | 2014-01-07 | 2019-07-30 | Nokia Technologies Oy | Apparatus, a method and a computer program product for coding and decoding chroma components of texture pictures for sample prediction of depth pictures |
-
2020
- 2020-05-19 DK DK20814022.8T patent/DK3967038T3/da active
- 2020-05-19 WO PCT/US2020/033595 patent/WO2020242827A1/en unknown
- 2020-05-19 PT PT208140228T patent/PT3967038T/pt unknown
- 2020-05-19 EP EP20814022.8A patent/EP3967038B1/en active Active
- 2020-05-19 KR KR1020217042531A patent/KR20220012352A/ko active Search and Examination
- 2020-05-19 PL PL20814022.8T patent/PL3967038T3/pl unknown
- 2020-05-19 ES ES20814022T patent/ES2974230T3/es active Active
- 2020-05-19 CN CN202080039118.9A patent/CN113892266A/zh active Pending
- 2020-05-19 JP JP2021570948A patent/JP7417637B2/ja active Active
- 2020-05-19 FI FIEP20814022.8T patent/FI3967038T3/fi active
- 2020-05-19 HU HUE20814022A patent/HUE065599T2/hu unknown
- 2020-05-19 CN CN202210734828.4A patent/CN115314709B/zh active Active
- 2020-05-19 BR BR112021023866A patent/BR112021023866A8/pt unknown
- 2020-05-19 EP EP23211038.7A patent/EP4300962A3/en active Pending
-
2021
- 2021-11-29 US US17/536,621 patent/US12003700B2/en active Active
-
2023
- 2023-11-06 JP JP2023189273A patent/JP2024014898A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
JP7417637B2 (ja) | 2024-01-18 |
CN115314709A (zh) | 2022-11-08 |
PT3967038T (pt) | 2024-03-15 |
EP3967038A4 (en) | 2022-07-27 |
WO2020242827A1 (en) | 2020-12-03 |
BR112021023866A2 (pt) | 2022-01-11 |
ES2974230T3 (es) | 2024-06-26 |
JP2022534755A (ja) | 2022-08-03 |
EP3967038B1 (en) | 2024-01-03 |
PL3967038T3 (pl) | 2024-05-27 |
EP4300962A2 (en) | 2024-01-03 |
DK3967038T3 (da) | 2024-03-18 |
US12003700B2 (en) | 2024-06-04 |
FI3967038T3 (fi) | 2024-03-19 |
EP4300962A3 (en) | 2024-03-06 |
US20220086432A1 (en) | 2022-03-17 |
EP3967038A1 (en) | 2022-03-16 |
JP2024014898A (ja) | 2024-02-01 |
BR112021023866A8 (pt) | 2022-06-21 |
KR20220012352A (ko) | 2022-02-03 |
HUE065599T2 (hu) | 2024-06-28 |
CN113892266A (zh) | 2022-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115361558B (zh) | 视频译码方法、设备及计算机可读介质 | |
CN115002467B (zh) | 用于分辨率改变的解码图像缓冲区操作的方法和设备 | |
JP7477248B2 (ja) | 映像符号化における参照ピクチャリサンプリング用の複数のピクチャサイズおよびコンフォーマンスウインドウの処理 | |
CN113940062A (zh) | 具有混合nal单元类型的图像 | |
CN117319674A (zh) | 减少视频译码中子层的错误 | |
US12003700B2 (en) | Reference picture management in layered video coding | |
KR20220063261A (ko) | 비디오 코딩에서 멀티뷰를 위한 동시 송출 레이어 | |
CN114845117A (zh) | 在多层视频码流中支持在接入单元内包括混合irap图像和非irap图像 | |
CN113632478A (zh) | 利用前置图像的交错视频译码 | |
JP2023129442A (ja) | 参照ピクチャリスト内の参照ピクチャの種類 | |
JP2024102105A (ja) | 映像符号化における参照ピクチャリサンプリング用の複数のピクチャサイズおよびコンフォーマンスウインドウの処理 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |