CN114586368B - 用于多层视频码流的编码方法、解码方法及装置 - Google Patents
用于多层视频码流的编码方法、解码方法及装置 Download PDFInfo
- Publication number
- CN114586368B CN114586368B CN202080065933.2A CN202080065933A CN114586368B CN 114586368 B CN114586368 B CN 114586368B CN 202080065933 A CN202080065933 A CN 202080065933A CN 114586368 B CN114586368 B CN 114586368B
- Authority
- CN
- China
- Prior art keywords
- layers
- video
- layer
- dpb
- parameter set
- 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
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/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/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
-
- 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/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/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/187—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 a scalable video layer
-
- 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
-
- 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/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/423—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
-
- 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/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
提供了一种解码方法。所述方法包括:接收视频码流,其中,所述视频码流包括:多个层、视频参数集(video parameter set,VPS)和序列参数集(sequence parameter set,SPS),所述VPS指定多个输出层集(output layer set,OLS),每个OLS包括所述多个层中的一个或多个层,当所述一个或多个层中的一个或多个层包括在所述多个OLS中的一个以上的OLS中时,所述SPS仅包括所述一个或多个层中的每个层的解码图像缓冲区(decoded picture buffer,DPB)参数集一次;对来自所述多个层中的一个层的图像进行解码以获得解码图像。还提供了对应的编码方法。
Description
相关申请案交叉申请
本专利申请要求由王业奎于2019年9月24日提交的、发明名称为“用于多层视频码流的DPB大小的指示(Signalling Of DPB Sizes For Multi-Layer Video Bitstreams)”的申请号为62/905,139的美国临时专利申请的权益,其内容通过引用的方式并入本申请中。
技术领域
本发明大体上描述了视频译码中多层视频码流的技术。更具体地,本发明描述了用于在视频译码中的多层码流中指示解码图像缓冲区(decoded picture buffer,DPB)参数的技术。
背景技术
即使视频较短,也需要大量的视频数据来描述,当数据要在带宽容量受限的通信网络中流式传输或以其它方式传输时,这样可能会造成困难。因此,视频数据通常要先压缩,然后通过现代电信网络进行传输。由于内存资源有限,当在存储设备中存储视频时,需要考虑该视频的大小。视频压缩设备通常在信源侧使用软件和/或硬件对视频数据进行编码,然后传输或存储视频数据,从而减少表示数字视频图像所需的数据量。然后,对视频数据进行解码的视频解压缩设备在目的地侧接收压缩数据。在网络资源有限以及对更高视频质量的需求不断增长的情况下,需要改进压缩和解压缩技术,这些改进的技术在几乎不影响图像质量的情况下能够提高压缩比。
发明内容
第一方面涉及一种视频解码器实现的解码方法,包括:所述视频解码器接收视频码流,其中,所述视频码流包括:多个层、视频参数集(video parameter set,VPS)和序列参数集(sequence parameter set,SPS),所述VPS指定多个输出层集(output layer set,OLS),每个OLS包括所述多个层中的一个或多个层,当所述一个或多个层中的一个或多个层包括在所述多个OLS中的一个以上的OLS中时,所述SPS仅包括所述一个或多个层中的每个层的解码图像缓冲区(decoded picture buffer,DPB)参数集一次;所述视频解码器对来自所述多个层中的一个层的图像进行解码,以获得解码图像。
所述方法提供了无论有多少输出层集(output layer set,OLS)包括在多层视频码流中,都确保解码图像缓冲区(decoded picture buffer,DPB)参数(例如,DPB大小等)和/或级别信息针对每个层或子层仅指示一次的技术。也就是说,DPB参数和级别信息每层或子层指示一次,而不是每次层或子层包括在OLS之一中时都指示。因此,相同的DPB参数和级别信息不会为同一层或子层重复指示,这减少了冗余,提高了多层视频码流的译码效率。因此,视频译码中的编码器/解码器(又称为编解码器)相对于现有的编解码器有所改进。实际上,改进的视频译码过程在发送、接收和/或观看视频时为用户提供更好的体验。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,在所述解码之前从所述一个或多个层中的一个层中选择输出层。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,在所述输出层被选择之后,从所述输出层中选择所述图像。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述DPB参数集包括第一DPB大小和第二DPB大小。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述第一DPB大小对应于所述一个或多个层中的输出层,所述第二DPB大小对应于所述一个或多个层中的非输出层。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,当所述一个或多个层中的一个或多个层包括在所述多个OLS中的一个以上的OLS中时,所述SPS仅包括所述一个或多个层中的每个层的级别信息一次。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,根据所述DPB参数集中包括的第一DPB大小推断第二DPB大小。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述多个层的所述一个或多个层中的一个层包括一个或多个子层。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,在电子设备的显示器上显示所述解码图像。
第二方面涉及一种视频编码器实现的编码方法,所述方法包括:所述视频编码器生成多个层、视频参数集(video parameter set,VPS)和序列参数集(sequence parameterset,SPS),所述VPS指定多个输出层集(output layer set,OLS),每个OLS包括所述多个层中的一个或多个层,当所述一个或多个层中的一个或多个层包括在所述多个OLS中的一个以上的OLS中时,所述SPS仅包括所述一个或多个层中的每个层的解码图像缓冲区(decodedpicture buffer,DPB)参数集一次;所述视频编码器将所述多个层、所述VPS和所述SPS编码到视频码流中;所述视频编码器存储所述视频码流,用于传输到视频解码器。
所述方法提供了无论有多少输出层集(output layer set,OLS)包括在多层视频码流中,都确保解码图像缓冲区(decoded picture buffer,DPB)参数(例如,DPB大小等)和/或级别信息针对每个层或子层仅指示一次的技术。也就是说,DPB参数和级别信息每层或子层指示一次,而不是每次层或子层包括在OLS之一中时都指示。因此,相同的DPB参数和级别信息不会为同一层或子层重复指示,这减少了冗余,提高了多层视频码流的译码效率。因此,视频译码中的编码器/解码器(又称为编解码器)相对于现有的编解码器有所改进。实际上,改进的视频译码过程在发送、接收和/或观看视频时为用户提供更好的体验。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,将所述一个或多个层中的一个层指定为输出层,并将所述一个或多个层中的另一个层指定为非输出层。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,当所述一个或多个层中的一个或多个层包括在所述多个OLS中的一个以上的OLS中时,所述SPS仅包括所述一个或多个层中的每个层的级别信息一次。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述DPB参数集包括单个DPB大小。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述多个层的所述一个或多个层中的一个层包括一个或多个子层。
第三方面涉及解码设备,包括:接收器,所述接收器用于接收视频码流,其中,所述视频码流包括:多个层、视频参数集(video parameter set,VPS)和序列参数集(sequenceparameter set,SPS),所述VPS指定多个输出层集(output layer set,OLS),每个OLS包括所述多个层中的一个或多个层,当所述一个或多个层中的一个或多个层包括在所述多个OLS中的一个以上的OLS中时,所述SPS仅包括所述一个或多个层中的每个层的解码图像缓冲区(decoded picture buffer,DPB)参数集一次;耦合到所述接收器的存储器,所述存储器存储指令;耦合到所述存储器的处理器,所述处理器用于执行所述指令,以使所述解码设备对来自所述多个层中的一个层的图像进行解码以获得解码图像。
所述解码设备提供了无论有多少输出层集(output layer set,OLS)包括在多层视频码流中,都确保解码图像缓冲区(decoded picture buffer,DPB)参数(例如,DPB大小等)和/或级别信息针对每个层或子层仅指示一次的技术。也就是说,DPB参数和级别信息每层或子层指示一次,而不是每次层或子层包括在OLS之一中时都指示。因此,相同的DPB参数和级别信息不会为同一层或子层重复指示,这减少了冗余,提高了多层视频码流的译码效率。因此,视频译码中的编码器/解码器(又称为编解码器)相对于现有的编解码器有所改进。实际上,改进的视频译码过程在发送、接收和/或观看视频时为用户提供更好的体验。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述处理器还用于:在所述解码之前从所述一个或多个层中的一个层中选择输出层;在所述输出层被选择之后从所述输出层中选择所述图像。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述DPB参数集包括第一DPB大小和第二DPB大小。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述第一DPB大小对应于所述一个或多个层中的输出层,所述第二DPB大小对应于所述一个或多个层中的非输出层。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,当所述一个或多个层中的输出层和所述一个或多个层中的非输出层都具有单个DPB大小时,所述DPB参数集包括所述单个DPB大小。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述处理器还用于根据所述DPB参数集中包括的第一DPB大小推断第二DPB大小。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述多个层的所述一个或多个层中的一个层包括一个或多个子层。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,包括用于显示所述解码图像的显示器。
第四方面涉及一种编码设备,包括:包括指令的存储器;耦合到所述存储器的处理器,所述处理器用于执行所述指令,以使所述编码设备执行以下操作:生成多个层、视频参数集(video parameter set,VPS)和序列参数集(sequence parameter set,SPS),所述VPS指定多个输出层集(output layer set,OLS),每个OLS包括所述多个层中的一个或多个层,当所述一个或多个层中的一个或多个层包括在所述多个OLS中的一个以上的OLS中时,所述SPS仅包括所述一个或多个层中的每个层的解码图像缓冲区(decoded picture buffer,DPB)参数集一次;将所述多个层、所述VPS和所述SPS编码到视频码流中;耦合到所述处理器的发送器,所述发送器用于向视频解码器发送所述视频码流。
所述编码设备提供了无论有多少输出层集(output layer set,OLS)包括在多层视频码流中,都确保解码图像缓冲区(decoded picture buffer,DPB)参数(例如,DPB大小等)和/或级别信息针对每个层或子层仅指示一次的技术。也就是说,DPB参数和级别信息每层或子层指示一次,而不是每次层或子层包括在OLS之一中时都指示。因此,相同的DPB参数和级别信息不会为同一层或子层重复指示,这减少了冗余,提高了多层视频码流的译码效率。因此,视频译码中的编码器/解码器(又称为编解码器)相对于现有的编解码器有所改进。实际上,改进的视频译码过程在发送、接收和/或观看视频时为用户提供更好的体验。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述处理器还用于使所述编码设备将所述一个或多个层中的一个层指定为输出层,并将所述一个或多个层中的另一个层指定为非输出层。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述DPB参数集包括第一DPB大小和第二DPB大小。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述DPB参数集包括单个DPB大小。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述多个层的所述一个或多个层中的一个层包括一个或多个子层。
第五方面涉及一种译码装置。所述译码装置包括:接收器,用于接收图像进行编码或接收码流进行解码;发送器,耦合到所述接收器并用于向解码器发送所述码流或向显示器发送经解码图像;存储器,耦合到所述接收器或所述发送器中的至少一个并用于存储指令;处理器,耦合到所述存储器并用于执行存储在所述存储器中的所述指令,以执行本文公开的任何一种方法。
所述编码装置提供了无论有多少输出层集(output layer set,OLS)包括在多层视频码流中,都确保解码图像缓冲区(decoded picture buffer,DPB)参数(例如,DPB大小等)和/或级别信息针对每个层或子层仅指示一次的技术。也就是说,DPB参数和级别信息每层或子层指示一次,而不是每次层或子层包括在OLS之一中时都指示。因此,相同的DPB参数和级别信息不会为同一层或子层重复指示,这减少了冗余,提高了多层视频码流的译码效率。因此,视频译码中的编码器/解码器(又称为编解码器)相对于现有的编解码器有所改进。实际上,改进的视频译码过程在发送、接收和/或观看视频时为用户提供更好的体验。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,包括用于显示所述解码图像的显示器。
第六方面涉及一种系统。所述系统包括编码器;与所述编码器通信的解码器,其中,所述编码器或所述解码器包括本文公开的解码设备、编码设备或译码装置。
所述系统提供了无论有多少输出层集(output layer set,OLS)包括在多层视频码流中,都确保解码图像缓冲区(decoded picture buffer,DPB)参数(例如,DPB大小等)和/或级别信息针对每个层或子层仅指示一次的技术。也就是说,DPB参数和级别信息每层或子层指示一次,而不是每次层或子层包括在OLS之一中时都指示。因此,相同的DPB参数和级别信息不会为同一层或子层重复指示,这减少了冗余,提高了多层视频码流的译码效率。因此,视频译码中的编码器/解码器(又称为编解码器)相对于现有的编解码器有所改进。实际上,改进的视频译码过程在发送、接收和/或观看视频时为用户提供更好的体验。
第七方面涉及一种译码模块。所述译码模块包括:接收模块,用于接收图像进行编码或接收码流进行解码;发送模块,耦合到所述接收模块并用于向解码模块发送所述码流或向显示模块发送经解码图像;存储模块,耦合到所述接收模块或所述发送模块中的至少一个并用于存储指令;处理模块,耦合到所述存储模块并用于执行存储在所述存储模块中的所述指令,以执行本文公开的任何一种方法。
所述译码模块提供了无论有多少输出层集(output layer set,OLS)包括在多层视频码流中,都确保解码图像缓冲区(decoded picture buffer,DPB)参数(例如,DPB大小等)和/或级别信息针对每个层或子层仅指示一次的技术。也就是说,DPB参数和级别信息每层或子层指示一次,而不是每次层或子层包括在OLS之一中时都指示。因此,相同的DPB参数和级别信息不会为同一层或子层重复指示,这减少了冗余,提高了多层视频码流的译码效率。因此,视频译码中的编码器/解码器(又称为编解码器)相对于现有的编解码器有所改进。实际上,改进的视频译码过程在发送、接收和/或观看视频时为用户提供更好的体验。
为了清楚起见,上述任一实施例可以与上述其它实施例中任何一个或多个组合以创建本发明范围内的新实施例。
从结合附图和权利要求书的以下详细描述中,将更清楚地理解这些和其它特征。
附图说明
为了更完整地理解本发明,结合附图和具体实施方式,参考以下简要描述,其中,相同的附图标记表示相同的部件。
图1为对视频信号进行译码的示例性方法的流程图。
图2为用于视频译码的示例性编码和解码(编解码)系统的示意图。
图3为示例性视频编码器的示意图。
图4为示例性视频解码器的示意图。
图5示出了一种用于空间可适性的多层译码的示例。
图6示出了使用输出层集(output layer set,OLS)的多层译码的示例。
图7示出了用于时间可适性的示例性多层视频序列。
图8示出了视频码流的实施例。
图9为对编码视频码流进行解码的方法的实施例。
图10为对编码视频码流进行编码的方法的实施例。
图11为视频译码设备的示意图。
图12为译码模块的一个实施例的示意图。
具体实施方式
首先应理解,尽管下文提供了一个或多个实施例的说明性实现方式,但所公开的系统和/或方法可以使用任何数量的技术来实现,无论该技术是当前已知的技术还是现有的技术。本发明不应限于下文所说明的说明性实现方式、附图和技术,包括本文所说明和描述的示例性设计和实现方式,而是可在所附权利要求书的范围以及其等效部分的完整范围内修改。
以下术语的定义如下所述,除非在本文相反的上下文中使用。具体地,以下定义旨在更加清晰地描述本发明。但是,术语在不同的上下文中可能会有不同的描述。因此,以下定义应当视为补充信息,不应当视为对此处为这些术语提供的描述的任何其它定义进行限制。
码流是包括视频数据的位序列,这些视频数据被压缩以在编码器和解码器之间传输。编码器是一种采用编码过程将视频数据压缩到码流中的设备。解码器是一种采用解码过程从码流中重建视频数据进行显示的设备。图像是创建帧或其场的亮度样本和/或色度样本组成的阵列。为了清楚论述,正在编码或解码的图像可以称为当前图像。参考图像是包括可以在根据帧间预测和/或层间预测通过参考对其它图像进行译码时使用的参考样本的图像。参考图像列表是用于帧间预测和/或层间预测的一列参考图像。一些视频译码系统使用两个参考图像列表,这两个参考图像列表可以表示为参考图像列表1和参考图像列表0。参考图像列表结构是包括多个参考图像列表的可寻址语法结构。帧间预测是通过参考与当前图像不同的参考图像中的指示样本对当前图像中的样本进行译码的机制,其中,参考图像和当前图像位于同一层中。参考图像列表结构条目是参考图像列表结构中的可寻址位置,该可寻址位置表示与参考图像列表相关联的参考图像。条带头是译码条带(slice)的一部分,该译码条带包括与条带中表示的分块(tile)中的所有视频数据相关的数据元素。图像参数集(picture parameter set,PPS)是包括与整个图像相关的数据的参数集。更具体地,PPS是一种包括语法元素的语法结构,这些语法元素应用于如由每个图像头中的语法元素确定的0个或0个以上完整的译码图像。序列参数集(sequence parameter set,SPS)是包括与图像序列相关的数据的参数集。接入单元(access unit,AU)是与相同显示时间(例如,相同图像顺序编号)相关联的一个或多个译码图像的集合,这些译码图像用于从解码图像缓冲区(decoded picture buffer,DPB)中输出(例如,显示给用户)。接入单元分隔符(access unit delimiter,AUD)是一种指示符或数据结构,用于指示AU的开始或AU之间的边界。解码视频序列是由解码器重建的准备向用户显示的图像序列。
网络抽象层(network abstraction layer,NAL)单元是一种语法结构,包括原始字节序列载荷(raw byte sequence payload,RBSP)形式的数据、数据类型的指示,并根据需要穿插预防混淆字节。视频译码层(video coding layer,VCL)NAL单元是译码为包括视频数据(例如图像的译码条带)的NAL单元。非VCL NAL单元是包括非视频数据(例如支持视频数据的解码、一致性检查的执行或其它操作的语法和/或参数)的NAL单元。层是VCL NAL单元和相关联的非VCL NAL单元的集合,这些VCL NAL单元共享指定的特征(例如,公共分辨率、帧率、图像大小等)。层的VCL NAL单元可以共享特定NAL单元头层标识符(nuh_layer_id)值。译码图像是图像的译码表示,该图像包括在接入单元(access unit,AU)内具有特定NAL单元头层标识符(nuh_layer_id)值的VCL NAL单元,并包括图像的所有编码树单元(coding tree unit,CTU)。解码图像是通过将解码过程应用于译码图像而产生的图像。
输出层集(output layer set,OLS)是层集合,其中,一个或多个层被指定为输出层。输出层是指定用于输出(例如,到显示器)的层。第零个(第0个)OLS是只包括最低层(具有最低层标识符的层)的OLS,因此只包括输出层。视频参数集(video parameter set,VPS)是一个数据单元,包括与整个视频相关的参数。层间预测是通过参考参考层中的参考图像对当前层中的当前图像进行译码的机制,其中,当前图像和参考图像包括在同一AU中,参考层包括的nuh_layer_id比当前层包括的nuh_layer_id小。
解码图像缓冲区(decoded picture buffer,DPB)是保存用于参考的解码图像、输出重排序或为假设参考解码器指定的输出延迟的缓冲区。DPB参数是一种语法结构,提供DPB大小以及(可选)最大图像重排序次数和最大延迟信息。子层是时间可适性码流的时间可适性层,由具有特定TemporalId变量值的VCL NAL单元和相关联的非VCL NAL单元组成。标志是一个变量或单比特语法元素,可以取两个可能的值(0和1)之一。
层次和级别是根据最大码率、最大亮度采样率、最大亮度图像大小、最小压缩比、允许的最大条带数和允许的最大分块数定义码流时的约束。较低层次比较高层次更受约束,较低级别比较高级别更受约束。
本文使用以下缩略语:编码树块(coding tree block,CTB)、编码树单元(codingtree unit,CTU)、编码单元(coding unit,CU)、编码视频序列(coded video sequence,CVS)、联合视频专家组(joint video experts team,JVET)、运动约束分块集(motion-constrained tile set,MCTS)、最大传输单元(maximum transfer unit,MTU)、网络抽象层(network abstraction layer,NAL)、图像顺序编号(picture order count,POC)、图像参数集(picture parameter set,PPS)、原始字节序列载荷(raw byte sequence payload,RBSP)、序列参数集(sequence parameter set,SPS)、通用视频编码(versatile videocoding,VVC)和工作草案(working draft,WD)。
图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 of absolute difference,SAD)、平方差和(sum of square difference,SSD)或其它差值度量来确定。HEVC使用几种译码对象,包括CTU、编码树块(coding tree block,CTB)和CU。例如,CTU可以划分为多个CTB,然后CTB可以划分为多个CB,多个CB用于包括在CU中。CU可以编码为包括预测数据的预测单元(prediction unit,PU)和/或包括CU的变换残差数据的变换单元(transform unit,TU)。运动估计组件221使用率失真分析作为率失真优化过程的一部分来生成运动矢量、PU和TU。例如,运动估计组件221可以确定当前块/帧的多个参考块、多个运动矢量等,并且可以选择具有最佳率失真特性的参考块、运动矢量等。最佳率失真特性平衡视频重建的质量(例如,压缩造成的数据丢失量)与译码效率(例如,最终编码的大小)。
在一些示例中,编解码系统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 arithmetic coding,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继续存储其它重建图像块,这些重建图像块可以通过分割信息重建成帧。这些帧还可以放置在一个序列中。该序列作为重建输出视频信号向显示器输出。
考虑到上述情况,视频压缩技术执行空间(帧内)预测和/或时间(帧间)预测以减少或去除视频序列中固有的冗余。对于基于块的视频译码,可以将视频条带(例如,视频图像或视频图像的一部分)分割为视频块,视频块也可以称为树块、编码树块(coding treeblock,CTB)、编码树单元(coding tree unit,CTU)、编码单元(coding unit,CU)和/或编码节点。参照同一图像的相邻块中的参考样本使用空间预测对图像内的帧内编码(I)条带中的视频块进行编码。图像内的帧间编码(P或B)条带中的视频块参照同一图像的相邻块中的参考样本使用空间预测,或者参照其它参考图像中的参考样本使用时间预测。图像可以称为帧,参考图像可以称为参考帧。POC是与每个图像相关联的变量,其唯一标识编码层视频序列(coded layer video sequence,CLVS)中的所有图像中的相关联的图像,指示何时从DPB输出相关联的图像,并指示相关联的图像相对于从DPB输出的同一CLVS的其他图像的输出顺序位置而言的输出顺序位置。标志是一个变量或单比特语法元素,可以取两个可能的值(0和1)之一。
通过空间预测或时间预测,产生待编码块的预测块。残差数据表示待编码的原始块与预测块之间的像素差。根据运动矢量和残差数据对帧间译码块进行编码,其中,运动矢量指向构成预测块的参考样本的块,残差数据表示编码块与预测块之间的差值。根据帧内编码模式和残差数据对帧内编码块进行编码。为了进一步压缩,可以将残差数据从像素域变换到变换域,从而产生接着进行量化的残差变换系数。可以扫描最初以二维阵列排列的量化变换系数以生成变换系数的一维矢量,并且可以应用熵编码以实现进一步压缩。
图像和视频压缩发展迅速,编码标准多样化。这些视频编码标准包括ITU-TH.261、国际标准化组织/国际电工委员会(international organization forstandardization/international electrotechnical commission,ISO/IEC)MPEG-1第2部分、ITU-T H.262或ISO/IEC MPEG-2第2部分、ITU-T H.263、ISO/IEC MPEG-4第2部分、高级视频编码(advanced video coding,AVC)(也称为ITU-T H.264或ISO/IEC MPEG-4第10部分),以及高效视频编码(high efficiency video coding,HEVC)(也称为ITU-T H.265或MPEG-H第2部分)。AVC包括可适性视频编码(scalable video coding,SVC)、多视点视频编码(multiview video coding,MVC)和多视图加深度视频编码(multiview video codingplus depth,MVC+D)以及3DAVC(3D-AVC)等扩展版。HEVC包括可适性HEVC(scalable HEVC,SHVC)、多视点HEVC(multiview HEVC,MV-HEVC)和3D HEVC(3D-HEVC)等扩展版。
通用视频编码(versatile video coding,VVC)是ITU-T和ISO/IEC联合视频专家组(joint video experts team,JVET)开发的一种新的视频编码标准。虽然VVC标准有几个工作草案(working draft,WD),但本文特别参考VVC中的一个工作草案,即B.Bross、J.Chen和S.Liu的“通用视频编码(草案5)(Versatile Video Coding(Draft 5))”JVET-N1001-v3,第13次JVET会议,2019年3月27日(VVC草案5)。
视频译码中的可适性通常通过多层译码技术来支持。多层码流包括基本层(baselayer,BL)和一个或多个增强层(enhancement layer,EL)。可适性的示例包括空间可适性、质量/信噪比(signal-to-noise,SNR)可适性、多视图可适性等。当使用的是多层译码技术时,图像或其一部分可以在以下情况下进行译码:(1)不使用参考图像,即,使用帧内预测,(2)参考同一层中的参考图像,即,使用帧间预测,或(3)参考其它层中的参考图像,即,使用层间预测。用于当前图像的层间预测的参考图像称为层间参考图像(inter-layerreference picture,ILRP)。
图5为基于层的预测500的示例的示意图。例如,在块压缩步骤105、块解码步骤113、运动估计组件221、运动补偿组件219、运动补偿组件321和/或运动补偿组件421处执行基于层的预测500来确定MV。基于层的预测500与单向帧间预测和/或双向帧间预测共存,但也在不同层中的图像之间执行。
基于层的预测500应用于不同层中的图像511、512、513和514与图像515、516、517和518之间。在所示示例中,图像511、512、513和514是层N+1 532的一部分,图像515、516、517和518是层N 531的一部分。层(例如层N 531和/或层N+1 532)是一组图像,这些图像都与类似的大小、质量、分辨率、信噪比、能力等类似的特征值相关联。在所示示例中,与层N531相比,层N+1 532与更大的图像大小相关联。因此,在本示例中,层N+1532中的图像511、512、513和514比层N 531中的图像515、516、517和518大(例如,高度和宽度大,因此样本更多)。但是,这些图像可以通过其它特征划分为层N+1 532和层N 531。虽然只示出了两层:层N+1 532和层N 531,但一组图像可以根据相关联的特征划分为任意数量的层。层N+1 532和层N 531也可以用层ID表示。层ID是与图像相关联的数据项,并表示该图像是表示的层的一部分。因此,图像511至518中的每个图像可以与对应的层ID相关联,以表示层N+1 532或层N531中的哪个层包括对应的图像。
不同的层531和532中的图像511至518交替显示。因此,不同层531和532中的图像511至518可以共享相同的时间标识符(identifier,ID),并且可以包括在同一AU中。本文所使用的AU是与用于从DPB输出的同一显示时间相关联的一个或多个译码图像的集合。例如,如果需要较小的图像,则解码器可以在当前显示时间对图像515进行解码并显示,或者如果需要较大的图像,则解码器可以在当前显示时间对图像511进行解码并显示。因此,高层N+1532中的图像511至514与低层N 531中的对应图像515至518包括基本上相同的图像数据(尽管图像大小不同)。具体地,图像511与图像515包括基本上相同的图像数据,图像512与图像516包括基本上相同的图像数据,以此类推。
图像511至518可以通过参考同一层(N 531或N+1 532)中的其它图像511至518进行译码。参考同一层中的一个图像对另一个图像进行译码即为帧间预测523,帧间预测523与单向帧间预测和/或双向帧间预测共存。帧间预测523由实线箭头表示。例如,图像513可以通过将层N+1 532中的图像511、512和/或514中的一个或两个图像用作参考的帧间预测523来译码,其中,单向帧间预测使用一个图像作为参考,和/或双向帧间预测使用两个图像作为参考。此外,图像517可以通过将层N 531中的图像515、516和/或518中的一个或两个图像用作参考的帧间预测523来译码,其中,单向帧间预测使用一个图像作为参考,和/或双向帧间预测使用两个图像作为参考。在执行帧间预测523时,当将一个图像用作同一层中另一个图像的参考时,该图像可以称为参考图像。例如,图像512可以是用于根据帧间预测523对图像513进行译码的参考图像。帧间预测523也可以称为多层上下文中的层内预测。因此,帧间预测523是通过参考与当前图像不同的参考图像中的指示样本对当前图像中的样本进行译码的机制,其中,参考图像和当前图像位于同一层中。
图像511至518也可以通过参考不同层中的其它图像511至518进行译码。这个过程称为层间预测521,由虚线箭头表示。层间预测521是通过参考参考图像中的指示样本对当前图像中的样本进行译码的机制,其中,当前图像和参考图像位于不同的层中,因此具有不同的层ID。例如,低层N 531中的图像可以用作对高层N+1 532中的对应图像进行译码的参考图像。在一个具体的示例中,图像511可以根据层间预测521通过参考图像515进行译码。在这种情况下,图像515被用作层间参考图像。层间参考图像是用于层间预测521的参考图像。在大多数情况下,对层间预测521进行约束,使得当前图像(例如图像511)只能使用同一AU中包括的且位于低层中的一个或多个层间参考图像,例如图像515。当多个层(例如,两层以上)可用时,层间预测521可以根据层级比当前图像低的多个层间参考图像对当前图像进行编码/解码。
视频编码器可以使用基于层的预测500来通过帧间预测523和层间预测521的许多不同组合和/或排列对图像511至518进行编码。例如,图像515可以根据帧内预测进行译码。然后,通过将图像515用作参考图像,图像516至518可以根据帧间预测523进行译码。此外,通过将图像515用作层间参考图像,图像511可以根据层间预测521进行译码。然后,通过将图像511用作参考图像,图像512至514可以根据帧间预测523进行译码。因此,参考图像可以作为不同译码机制的单层参考图像和层间参考图像。通过根据低层N 531图像对高层N+1532图像进行译码,高层N+1 532可以避免使用帧内预测,帧内预测的译码效率比帧间预测523和层间预测521的译码效率低得多。因此,帧内预测译码效率低下,只适用于最小/最低质量的图像,因此只适用于对最少量的视频数据进行译码。用作参考图像和/或层间参考图像的图像可以在参考图像列表结构中包括的一个或多个参考图像列表的条目中表示。
图5中的每个AU 506可以包括几个图像。例如,一个AU 506可以包括图像511和515。另一个AU 506可以包括图像512和516。事实上,每个AU 506是与相同显示时间(例如,相同时间ID)相关联的一个或多个译码图像的集合,这些译码图像用于从解码图像缓冲区(decoded picture buffer,DPB)中输出(例如,显示给用户)。每个AUD 508是用于指示AU(例如,AU 508)的开始或AU之间的边界的指示符或数据结构。
以前的H.26x视频编码系列支持根据用于单层译码的档次(profile)实现单独档次中的可适性。可适性视频编码(scalable video coding,SVC)是AVC/H.264的可扩展版,支持空间可适性、时间可适性和质量可适性。对于SVC,在EL图像的每个宏块(macroblock,MB)中指示了一个标志,用于表示EL MB是否使用较低层中的并置块进行预测。根据并置块进行的预测可以包括纹理、运动矢量和/或译码模式。SVC的实现方式不能在其设计中直接重用未经修改的H.264/AVC实现方式。SVC EL宏块语法和解码过程与H.264/AVC语法和解码过程不同。
可适性HEVC(scalable HEVC,SHVC)是HEVC/H.265标准的扩展版,支持空间可适性和质量可适性;多视图HEVC(multiview HEVC,MV-HEVC)是HEVC/H.265的扩展版,支持多视图可适性;3D HEVC(3D-HEVC)是HEVC/H.264的扩展版,支持比MV-HEVC更高级、更高效的三维(three dimensional,3D)视频译码。需要说明的是,时间可适性是单层HEVC编解码器的组成部分。HEVC的多层扩展的设计采用了如下理念:用于层间预测的经解码图像仅来自同一接入单元(access unit,AU),并当作长期参考图像(long-term reference picture,LTRP),并分配有一个或多个参考图像列表中的参考索引和当前层中的其它时间参考图像。层间预测(inter-layer prediction,ILP)是在预测单元(prediction unit,PU)级通过将参考索引的值设置为参考一个或多个参考图像列表中的一个或多个层间参考图像而实现的。
需要说明的是,参考图像重采样和空间可适性特征都需要对参考图像或其一部分进行重采样。参考图像重采样(reference picture resampling,RPR)可以在图像级或编码块级实现。但是,当RPR称为译码特征时,它是单层译码的特征。即便如此,从编解码器设计的角度来看,可以或甚至优选使用相同的重采样滤波器,以实现单层译码的RPR特征和多层译码的空间可适性特征。
图6示出了利用输出层集(output layer set,OLS)的基于层的预测600的示例,例如,在块压缩步骤105、块解码步骤113、运动估计组件221、运动补偿组件219、运动补偿组件321和/或运动补偿组件421处执行基于层的预测600来确定MV。基于层的预测600与单向帧间预测和/或双向帧间预测共存,但也在不同层中的图像之间执行。图6的基于层的预测类似于图5的预测。因此,为了简洁起见,不再重复对基于层的预测进行完整描述。
图6的编码视频序列(coded video sequence,CVS)690中的一些层包括在OLS中。OLS是层集合,其中,一个或多个层被指定为输出层。输出层是OLS的输出层。图6示出了三个不同的OLS,即OLS 1、OLS 2和OLS 3。如图所示,OLS 1包括层N 631和层N+1632。OLS 2包括层N 631、层N+1 632、层N+2 633和层N+1 634。OLS 3包括层N 631、层N+1 632和层N+2 633。尽管示出了三个OLS,但在实际应用中可以使用不同数量的OLS。
不同OLS中的每一个OLS可以包括任何数量的层。生成不同的OLS是为了适应具有不同译码能力的各种不同设备。例如,可以生成仅包括两层的OLS 1,以适应译码能力相对有限的移动电话。另一方面,可以生成包括四层的OLS 2,以适应大屏幕电视,与移动电话相比,能够对较高层进行解码。可以生成包括三层的OLS 3,以适应个人电脑、膝上型电脑或平板电脑,与移动电话相比,能够对较高层进行解码,但不能像大屏幕电视那样对最高层进行解码。
图6中的层可以彼此独立。也就是说,每个层都可以在不使用层间预测(inter-layer prediction,ILP)的情况下译码。在这种情况下,这些层被称为同播层。图6中的一个或多个层也可以使用ILP进行译码。这些层是否是同播层,或者一些层是否使用ILP进行译码,是通过视频参数集(video parameter set,VPS)中的标志进行指示的,这将在下面更全面地进行论述。当一些层使用ILP时,层之间的层依赖关系也会在VPS中进行指示。
在一个实施例中,当这些层是同播层时,仅选择一层用于解码和输出。在一个实施例中,当一些层使用ILP时,所有层(例如,整个码流)都被指定为解码,并且这些层中的一些层被指定为输出层。例如,一个或多个输出层可以是(1)仅最高层,(2)所有层,或(3)最高层加上指示的较低层集合。例如,当最高层加上指示的较低层集合被VPS中的标志指定为用于输出时,来自OLS 2的层N+3 634(其为最高层)以及层N 631和层N+1 632(它们是较低层)被输出。
图7是示出用于时间可适性的示例性多层视频序列700的示意图。多层视频序列700可以由编码器(例如编解码系统200和/或编码器300)编码,并由解码器(例如编解码系统200和/或解码器400)根据方法100等解码。多层视频序列700包括在内,以示出编码视频序列中层的另一个示例性应用。例如,多层视频序列700可以用作单独的实施例,或者可以与关于多层视频序列500或600描述的技术组合。
多层视频序列700包括子层710、720和730。子层是时间可适性码流的时间可适性层,时间可适性码流包括具有特定时间标识符值的VCL NAL单元(例如,图像)以及相关联的非VCL NAL单元(例如,支持参数)。子层710可以被称为基本层,子层720和730可以被称为增强层。如图所示,子层710包括第一帧率(例如每秒30帧)的图像711。子层710是基本层,因为子层710包括基本/最低帧率。子层720包括在时间上从子层710的图像711偏移的图像721。因此,子层710和子层720可以被组合,这导致总的帧率高于单独的子层710的帧率。例如,子层710和720可以具有每秒60帧的组合帧率。因此,子层720增强了子层710的帧率。此外,子层730包括图像731,图像731也在时间上偏移子层720和710的图像721和711。因此,子层730可以与子层720和710组合,以进一步增强子层710。例如,子层710、720和730可以具有每秒90帧的组合帧率。
子层表示740可以通过组合子层710、720和/或730来动态创建。子层表示740是包括特定子层和较低子层的NAL单元的码流的子集。在所示示例中,子层表示740包括图像741,图像741是子层710、720和730的组合图像711、721和731。因此,通过选择包括期望的子层710、720和/或730的集合的子层表示740,多层视频序列700可以在时间上缩放到期望的帧率。子层表示740可以通过采用包括子层710、720和/或730作为层的OLS来创建。在这种情况下,子层表示740被选择为输出层。因此,时间可适性是可以使用多层机制实现的几种机制之一。
HEVC、SHVC、MV-HEVC和VVC等视频编码标准指定并指示档次、层次和级别。档次、层次和级别指定了对码流的限制,从而限制了对码流进行解码所需的能力。档次、层次和级别也可用于指示各个解码器实现之间的互操作性点。档次是定义的一组译码工具,用于创建符合性码流。每个档次指定了算法特征和限制的子集,所有符合该档次的解码器都应支持这些算法特征和限制。
级别是码流的约束(例如,最大亮度采样速率、分辨率的最大码率等)的集合。也就是说,级别是约束的集合,指示播放指定档次的码流所需的解码器性能。
这些级别分为两个层次:主要层次和高层次。主要层次比高层次低。这些层次用于处理在最大码率方面不同的应用程序。主要层次是为大多数应用程序设计的,而高层次是为要求非常苛刻的应用程序设计的。对应于级别的约束和/或层次的集合在本文可以被称为级别信息。
层次的每个级别都指定了对特定标准(例如HEVC、VVC)语法元素可取的值的一组限制。所有档次都使用相同的层次和级别定义集,但各个实现可以支持不同的层次,在层次内,每个受支持的档次都支持不同的级别。对于任何给定的档次,层次的级别通常对应于特定的解码器处理负载和内存能力。
使用HEVC标准,以下表1提供了不同档次的级别和层次的代表性示例。
表1
解码图像缓冲区(decoded picture buffer,DPB)参数是一种语法结构,提供DPB大小以及(可选)最大图像重排序次数和最大延迟信息。最大图像重排序次数和最大延迟信息可以由缩略词MRML统一表示。在一个实施例中,上表中指出的一个或多个级别与DPB参数一起指示。
在一个实施例中,最大图像重排序次数被指定为dpb_max_num_reorder_pics[i],该dpb_max_num_reorder_pics[i]表示当Htid等于i时,在解码顺序上可以在OLS中的任何图像之前并且在输出顺序上在该图像之后的OLS的图像的最大允许数量。dpb_max_num_reorder_pics[i]的值应在0至dpb_max_dec_pic_buffering_minus1[i]的范围内(包括端值)。当i大于0时,dpb_max_num_reorder_pics[i]应大于或等于dpb_max_num_reorder_pics[i-1]。对于i在0至MaxSubLayersMinus1-1的范围内(包括端值),当dpb_max_num_reorder_pics[i]不存在时,由于subLayerInfoFlag等于0,因此推断dpb_max_num_reorder_pics[i]等于dpb_max_num_reorder_pics[MaxSubLayersMinus1]。Htid是一个变量,用于标识待解码的最高时间子层。
dpb_max_dec_pic_buffering_minus1[i]+1表示当Htid等于i时,所需的DPB最大大小,单位为图像存储缓冲区。dpb_max_dec_pic_buffering_minus1[i]的值应在0至MaxDpbSize-1的范围内(包括端值),其中,MaxDpbSize如VVC标准A.4.2子条款中规定。当i大于0时,dpb_max_dec_pic_buffering_minus1[i]应大于或等于dpb_max_dec_pic_buffering_minus1[i-1]。对于i在0至MaxSubLayersMinus1-1的范围内(包括端值),当dpb_max_dec_pic_buffering_minus1[i]不存在时,由于subLayerInfoFlag等于0,因此推断dpb_max_dec_pic_buffering_minus1[i]等于dpb_max_dec_pic_buffering_minus1[MaxSubLayersMinus1]。
在一个实施例中,最大延迟信息被指定为dpb_max_latency_increase_plus1[i]。不等于0的dpb_max_latency_increase_plus1[i]用于计算MaxLatencyPictures[i]的值。MaxLatencyPictures[i]表示当Htid等于i时,在输出顺序上可以在OLS中的任何图像之前并且在解码顺序上在该图像之后的OLS中的图像的最大数量。
MaxLatencyPictures[i]=dpb_max_num_reorder_pics[i]+dpb_max_latency_increase_plus1[i]–1。
例如,当如SHVC和MV-HEVC中指定OLS时,任何特定层都可以包括在多个OLS中。特定层可以是一些OLS中的输出层,同时也可以是一些其它OLS中的非输出层。给定一个层,该层是输出层与该层是非输出层之间的主要区别是DPB大小。因此,DPB只有两个选项可用。也就是说,层不会有第三个DPB大小。因此,为任何特定层指示最多两个DPB大小就足够了。但是,当存在三个以上的OLS时,每次特定层包括在OLS中时,指示该层的DPB大小和/或级别信息是不必要的,并且会浪费比特。
在SHVC和MV-HEVC中,DPB大小是为每个层(例如,层N 631和层N+1 632)或OLS(例如,OLS 1)中包括的每个子层指定和指示的。以图6为例,为层N 631和层N+1632指示DPB大小,因为这些层包括在OLS 1中。也为层N 631、层N+1 632、层N+2 633和层N+3 634指示DPB大小,因为这些层包括在OLS 2中。此外,为层N 631、层N+1 632和层N+2 633指示DPB大小,因为这些层包括在OLS 3中。因此,对应于层N 631的DPB大小最终被指示三次,因为该层包括在这三个OLS(即OLS 1、OLS 2和OLS 3)中。同样,对应于层N+1 632的DPB大小也最终被指示三次,因为该层包括在这三个OLS(即OLS 1、OLS 2和OLS 3)中。最后,对应于层N+2 633的DPB大小最终被指示两次,因为该层包括在两个OLS(即OLS 1和OLS 2)中。这种相同DPB大小(或DBP参数)的重复指示是冗余的,导致译码效率低下。
本文公开了无论有多少输出层集(output layer set,OLS)包括在多层视频码流中,都确保解码图像缓冲区(decoded picture buffer,DPB)参数(例如,DPB大小等)和/或级别信息针对每个层或子层仅指示一次的技术。也就是说,DPB参数和级别信息每层或子层指示一次,而不是每次层或子层包括在OLS之一中时都指示。因此,相同的DPB参数和级别信息不会为同一层或子层重复指示,这减少了冗余,提高了多层视频码流的译码效率。因此,视频译码中的编码器/解码器(又称为编解码器)相对于现有的编解码器有所改进。实际上,改进的视频译码过程在发送、接收和/或观看视频时为用户提供更好的体验。
图8示出了视频码流800的实施例。本文使用的视频码流800也可以称为编码视频码流、码流或其变体。如图8所示,码流800包括至少一个图像单元(picture unit,PU)801。虽然图8中示出了三个PU 801,但在实际应用中,码流800中可以存在不同数量的PU 801。每个PU 801是根据指定的分类规则彼此相关联的NAL单元的集合,按解码顺序连续,并且正好包括一个译码图像(例如,图像814)。
在一个实施例中,每个PU 801包括以下中的一个或多个:解码能力信息(decodingcapability information,DCI)802、视频参数集(video parameter set,VPS)804、序列参数集(sequence parameter set,SPS)806、图像参数集(picture parameter set,PPS)808、图像头(picture header,PH)812和图像814。DCI 802、VPS 804、SPS 806和PPS 808中的每一个都可以统称为参数集。在一个实施例中,图8中未示出的其它参数集(例如,自适应参数集(adaption parameter set,APS))也可以包括在码流800中,该参数集是一种包括语法元素的语法结构,这些语法元素应用于如由条带头中的0个或0个以上语法元素确定的0个或0个以上条带。
DCI 802也可以称为解码参数集(decoding parameter set或decoder parameterset,DPS),是包括应用于整个码流的语法元素的语法结构。DCI 802包括在视频码流(例如,码流800)的生存期内保持恒定的参数,该生存期可以转换为会话的生存期。DCI 802可以包括档次、级别和子档次信息,以确定保证永远不会被超过(即使会话中发生视频序列的拼接)的最大复杂性互操作点。该DCI还可选地包括约束标志,这些约束标志指示视频码流将受如这些标志的值所指示的某些特征的使用的约束。这样,码流可以被标记为不使用某些工具,这允许在解码器实现中分配资源。与所有参数集一样,DCI 802在第一次被参考,并由视频序列中的第一个图像参考时存在,这意味着DCI 802必须在码流中的第一NAL单元之间发送。虽然码流中可以有多个DCI 802,但其中的语法元素的值在被参考时不能不一致。
VPS 804包括用于增强层的参考图像集构建的解码依赖关系或信息。VPS 804提供了可扩展序列的整体视角或视图,包括提供了哪些类型的操作点、这些操作点的档次、层次和级别,以及码流的一些其它高级属性,这些属性可以用作会话协商和内容选择等的基础。
在一个实施例中,当指示一些层使用ILP时,VPS 804指示VPS指定的OLS总数等于层数,指示第i个OLS包括层索引从0到i(包括端值)的层,并指示对于每个OLS,仅OLS中的最高层被输出。
SPS 806包括对图像序列(sequence of picture,SOP)中所有图像通用的数据。SPS 806是包括语法元素的语法结构,这些语法元素应用于如由PPS中的语法元素的内容确定的0个或0个以上整个CLVS,PPS由每个图像头中的语法元素参考。相比之下,PPS 808包括对整个图像通用的数据。PPS 808是一种包括语法元素的语法结构,这些语法元素应用于如由每个图像头(例如,PH 812)中的语法元素确定的0个或0个以上完整的译码图像。
在一个实施例中,VPS 804和/或SPS 806包括以下SPS语法和语义,以实现本文公开的一个或多个实施例。
SPS语法包括以下内容。
SPS语义包括以下内容。
SPS RBSP在被参考之前应可用于解码过程,包括在TemporalId等于0的至少一个接入单元中,或通过外部模块提供。包括SPS RBSP的SPS NAL单元的nuh_layer_id应等于参考它的PPS NAL单元的最低nuh_layer_id值。
CVS中具有特定sps_seq_parameter_set_id值的所有SPS NAL单元应具有相同的内容。
sps_decoding_parameter_set_id大于0时,表示SPS参考的DPS的dps_decoding_parameter_set_id的值。当sps_decoding_parameter_set_id等于0时,SPS不参考DPS,在对参考SPS的每个CLVS进行解码时DPS也不被参考。sps_decoding_parameter_set_id的值在码流中译码图像参考的所有SPS中应相同。
sps_video_parameter_set_id大于0时,表示SPS参考的VPS的vps_video_parameter_set_id的值。当sps_video_parameter_set_id等于0时,SPS不参考VPS,在对参考SPS的每个CLVS进行解码时VPS也不被参考。
sps_max_sub_layers_minus1+1表示参考SPS的每个CLVS中可能存在的时间子层的最大数量。sps_max_sub_layers_minus1的值应在0至vps_max_sub_layers_minus1的范围内(包括端值)。
在符合本规范此版本的码流中,sps_reserved_zero_4bits应等于0。sps_reserved_zero_4bits的其它值被保留,供ITU-T|ISO/IEC将来使用。
same_nonoutput_level_and_dpb_size_flag等于1表示无论参考SPS的每个层是否是输出层,相同的级别和DPB大小参数集都应用于该层。same_nonoutput_level_and_dpb_size_flag等于0表示根据该层是否是输出层,将两个单独的级别和DPB大小参数集应用于参考SPS的每个层。
或者,使用两个单独的标志,一个标志表示无论参考SPS的每个层是否是输出层,相同的级别参数集是否应用于该层,另一个标志表示无论参考SPS的每个层是否是输出层,相同的DPB大小参数集是否应用于该层。
在一个实施例中,VPS 804和/或SPS 806包括以下DPB语法和语义,以实现本文公开的一个或多个实施例。
DPB语法包括以下内容。
DPB语义包括以下内容。
dpb_parameters()语法结构提供DPB大小信息,以及(可选)最大图像重排序次数和最大延迟信息(表示为MRML信息)。
每个SPS都包括一个或多个dpb_parameters()语法结构。SPS中的第一dpb_parameters()语法结构同时包括DPB大小信息和MRML信息。当存在时,SPS中的第二dpb_parameters()语法结构仅包括DPB大小信息。无论参考SPS的层是否是OLS中的输出层,SPS中第一dpb_parameters()语法结构中的MRML信息都应用于该层。当参考SPS的层是OLS的输出层时,SPS中第一dpb_parameters()语法结构中的DPB大小信息适用于该层。当参考SPS的层是OLS的非输出层时,SPS中的第二dpb_parameters()语法结构中包括的DPB大小信息(当存在时)适用于该层。当SPS只包括一个dpb_parameters()语法结构时,作为非输出层的层的DPB大小信息被推断为与作为输出层的层的DPB大小信息相同。
sps_max_dec_pic_buffering_minus1[i]+1表示当Htid等于i时,CLVS所需的解码图像缓冲区最大大小,单位为图像存储缓冲区。sps_max_dec_pic_buffering_minus1[i]的取值范围应在0至MaxDpbSize–1的范围内(包括端值),其中,MaxDpbSize与其它地方指定的值相同。当i大于0时,sps_max_dec_pic_buffering_minus1[i]应大于或等于sps_max_dec_pic_buffering_minus1[i-1]。对于i在0至sps_max_sub_layers_minus1-1的范围内(包括端值),当sps_max_dec_pic_buffering_minus1[i]不存在时,由于sps_sub_layer_ordering_info_present_flag等于0,因此推断sps_max_dec_pic_buffering_minus1[i]等于sps_max_dec_pic_buffering_minus1[sps_max_sub_layers_minus1]。
sps_max_num_reorder_pics[i]表示当Htid等于i时,在解码顺序上可以在CLVS中的任何图像之前并且在输出顺序上在该图像之后的图像的最大允许数量。sps_max_num_reorder_pics[i]的值应在0至sps_max_dec_pic_buffering_minus1[i]的范围内(包括端值)。当i大于0时,sps_max_num_reorder_pics[i]应大于或等于sps_max_num_reorder_pics[i-1]。对于i在0至sps_max_sub_layers_minus1-1的范围内(包括端值),当sps_max_num_reorder_pics[i]不存在时,由于sps_sub_layer_ordering_info_present_flag等于0,因此推断sps_max_num_reorder_pics[i]等于sps_max_num_reorder_pics[sps_max_sub_layers_minus1]。
不等于0的sps_max_latency_increase_plus1[i]用于计算SpsMaxLatencyPictures[i]的值。MaxLatencyPictures[i]表示当Htid等于i时,在输出顺序上可以在任何图像之前并且在解码顺序上在该图像之后的CLVS中的图像的最大数量。
当sps_max_latency_increase_plus1[i]不等于0时,SpsMaxLatencyPictures[i]的值如下指定。
SpsMaxLatencyPictures[i]=sps_max_num_reorder_pics[i]+
sps_max_latency_increase_plus1[i]–1 (7-14)
当sps_max_latency_increase_plus1[i]等于0时,无对应的限制表示。
sps_max_latency_increase_plus1[i]的值应在0至232-2的范围内(包括端值)。对于i在0至sps_max_sub_layers_minus1-1的范围内(包括端值),当sps_max_latency_increase_plus1[i]不存在时,由于sps_sub_layer_ordering_info_present_flag等于0,因此推断sps_max_latency_increase_plus1[i]等于sps_max_latency_increase_plus1[sps_max_sub_layers_minus1]。
DCI 802、VPS 804、SPS 806和PPS 808包括在不同类型的网络抽象层(networkabstraction layer,NAL)单元中。NAL单元是一种语法结构,包括待遵循的数据类型(例如,编码视频数据)的表示。NAL单元分为视频编码层(video coding layer,VCL)NAL单元和非VCL NAL单元。VCL NAL单元包括表示视频图像中样本值的数据,非VCL NAL单元包括任何关联的附加信息,如参数集(可应用于多个VCL NAL单元的重要数据)和补充增强信息(定时信息和其它补充数据,可用于增强解码视频信号的可用性,但不是解码视频图像中样本的值所必需的)。
在一个实施例中,DCI 802包括在指定为DCI NAL单元或DPS NAL单元的非VCL NAL单元中。也就是说,DCI NAL单元具有DCI NAL单元类型(NAL unit type,NUT),DPS NAL单元具有DPS NUT。在一个实施例中,VPS 804包括在指定为VPS NAL单元的非VCL NAL单元中。因此,VPS NAL单元具有一个VPS NUT。在一个实施例中,SPS 806是被指定为SPS NAL单元的非VCL NAL单元。因此,SPS NAL单元具有SPS NUT。在一个实施例中,PPS 808包括在指定为PPSNAL单元的非VCL NAL单元中。因此,PPS NAL单元具有一个PPS NUT。
PH 812是包括应用于译码图像(例如,图像814)的所有条带(例如,条带818)的语法元素的语法结构。在一个实施例中,PH 812是被指定为PH NAL单元的新型非VCL NAL单元。因此,PH NAL单元具有PH NUT(例如,PH_NUT)。在一个实施例中,每个PU 801中包括一个且仅一个PH 812。也就是说,PU 801包括单个或单独的PH 812。在一个实施例中,码流800中的每个图像801正好存在一个PH NAL单元。
在一个实施例中,与PH 812相关联的PH NAL单元具有时间ID和层ID。时间ID标识符指示PH NAL单元相对于码流(例如,码流801)中的其它PH NAL单元在时间上的位置。层ID指示包括PH NAL单元的层(例如,层531或层532)。在一个实施例中,时间ID类似于POC,但不同于POC。POC按顺序唯一标识每个图像。在单层码流中,时间ID和POC将是相同的。在多层码流中(例如,见图5),同一AU中的图像将具有不同的POC,但具有相同的时间ID。
在一个实施例中,PH NAL单元在包括相关联的图像814的第一条带818的VCL NAL单元之前。这建立了PH 812和与PH 812相关联的图像814的条带818之间的关联,而不需要在PH 812中指示并从条带头820中参考的图像头ID。因此,可以推断,两个PH 812之间的所有VCL NAL单元属于同一图像814,并且图像814与两个PH 812之间的第一PH 812相关联。在一个实施例中,PH 812之后的第一VCL NAL单元包括与PH 812相关联的图像814的第一条带818。
在一个实施例中,PH NAL单元遵循图像级别参数集(例如,PPS)或更高级别参数集,例如DCI(又称为DPS)、VPS、SPS、PPS等,这些参数集的时间ID和层ID分别小于PH NAL单元的时间ID和层ID。因此,这些参数集不会在图像或接入单元中重复。由于此顺序,PH 812可以立即解析。也就是说,包括与整个图像相关的参数的参数集位于PH NAL单元之前的码流中。任何包括部分图像的参数的部分都位于PH NAL单元之后。
在一个替代方案中,PH NAL单元遵循图像级别参数集和前缀补充增强信息(supplemental enhancement information,SEI)消息,或更高级别参数集,例如DCI(又称为DPS)、VPS、SPS、PPS、APS、SEI消息等。
例如,图像814为黑白格式的亮度样本阵列或4:2:0、4:2:2和4:4:4彩色格式的亮度样本阵列和两个对应的色度样本阵列。在一个实施例中,每个PU 801中包括一个且仅一个图像814。因此,在每个PU 801中只有一个PH 812,并且只有一个对应于该PH 812的图像814。也就是说,PU 801包括单个或单独的图像814。
图像814可以是帧或字段。但是,在一个CVS 816中,所有图像814都是帧,或所有图像814都是字段。CVS 816是视频码流800中的每个编码层视频序列(coded layer videosequence,CLVS)的编码视频序列。需要说明的是,当视频码流800包括单个层时,CVS 816和CLVS相同。CVS 816和CLVS仅在视频码流800包括多个层时才不同(例如,如图5和图6所示)。
每个图像814包括一个或多个条带818。条带818是图像(例如,图像814)的整数个完整分块或分块内的整数个连续完整的CTU行。每个条带818仅包括在单个NAL单元(例如,VCL NAL单元)中。分块(未示出)是图像(例如,图像814)中的特定分块列和特定分块行内的CTU的矩形区域。CTU(未示出)是具有三个样本阵列的图像中的亮度样本的CTB、色度样本的两个对应的CTB,或是黑白图像或使用三个单独的颜色平面和用于对样本进行译码的语法结构译码的图像中的样本的CTB。CTB(未示出)是N×N的样本块,其中,N可以设为某个值以将分量分割为CTB,这是一种分割。块(未示出)是M×N(M列×N行)个样本(例如,像素)阵列,或M×N个变换系数阵列等。
在一个实施例中,每个条带818包括条带头820。条带头820是译码条带818的一部分,包括与条带818中表示的所有分块或一个分块中的CTU行相关联的数据元素。也就是说,条带头820包括条带818的信息,例如条带类型、待使用的参考图像等。
图像814及其条带818包括与所编码或解码的图像或视频关联的数据。因此,图像814及其条带818可以简单地称为码流800中携带的载荷或数据。
本领域技术人员将理解,码流800在实际应用中可以包括其它参数和信息。
图9为视频解码器(例如视频解码器400)实现的解码方法900的一个实施例。方法900可以在直接或间接从视频编码器(例如,视频编码器300)接收到码流之后执行。方法900无论多层视频码流中包括多少OLS,通过确保DPB参数针对每层或子层仅指示一次来改进解码过程。也就是说,DPB参数每层或子层指示一次,而不是每次层或子层包括在OLS之一中时都指示。因此,相同的DPB参数不会为同一层或子层重复指示,这减少了冗余,提高了多层视频码流的译码效率。因此,视频译码中的编码器/解码器(又称为编解码器)相对于现有的编解码器有所改进。实际上,改进的视频译码过程在发送、接收和/或观看视频时为用户提供更好的体验。
在框902中,视频解码器接收视频码流。视频码流包括多个层(例如,层631至层635)。视频码流还包括视频参数集(例如,VPS 804),该视频参数集指定多个输出层集(例如,OLS 1、OLS 2和OLS 3),每个输出层集包括多个层(例如层631至层635)中的一个或多个层(例如,OLS 1包括层631和层632,OLS 2包括层631至层634,OLS 3包括层631至633)。此外,视频码流包括序列参数集(例如,SPS 806),当一个或多个层中的一个或多个层包括在多个OLS中的一个以上的OLS中时,该序列参数集仅包括一个或多个层中的每个层的解码图像缓冲区(decoded picture buffer,DPB)参数集一次。
以图6为例,SPS仅包括四(4)个DPB参数集,用于层631的DPB参数集、用于层632的DPB参数集、用于层633的DPB参数集,以及用于层634的DPB参数集,即使层(例如,层631)包括在一个以上的OLS中也是如此。因此,无论特定层是否包括在一个以上的OLS中,都不会为SPS中的任何特定层重复DPB参数集,这提高了译码效率。因此,以图6为例,SPS仅包括四个DPS大小、四个级别和/或四个MRML信息集。
在一个实施例中,SPS中指示的DPB参数集的数量等于总层数。例如,总共有5层可用,因此SPS只携带5个DPB参数集。
在框904中,视频解码器对来自多个层中的一个层的图像进行解码以获得解码图像。在一个实施例中,DPB参数用于分配DPB中的空间。DPB中的这种空间用于在解码过程中对图像进行解码。
在一个实施例中,方法900还包括在所述解码之前从所述一个或多个层中的一个层中选择输出层。在一个实施例中,方法900还包括在输出层被选择之后从输出层选择图像。
在一个实施例中,DPB参数集包括第一DPB大小和第二DPB大小。在一个实施例中,所述第一DPB大小对应于所述一个或多个层中的输出层,所述第二DPB大小对应于所述一个或多个层中的非输出层。在一个实施例中,当所述一个或多个层中的输出层和所述一个或多个层中的非输出层都具有单个DPB大小时,所述DPB参数集包括所述单个DPB大小。
在一个实施例中,方法900还包括根据所述DPB参数集中包括的第一DPB大小推断第二DPB大小。在一个实施例中,所述多个层中的所述一个或多个层中的一个层包括一个或多个子层(例如,子层710、720、730)。
在图像被解码之后,该图像可以用于生成或产生图像或视频序列,以便在电子设备(例如智能手机、平板电脑、膝上型电脑、个人电脑等)的显示器或屏幕上显示给用户。
图10为视频编码器(例如,视频编码器300)实现的对视频码流进行编码的方法1000的实施例。当图像(例如,视频中的图像)需要编码到视频码流中并且发送到视频解码器(例如,视频解码器400)时,可以执行方法900。方法900无论多层视频码流中包括多少OLS,通过确保DPB参数针对每层或子层仅指示一次来改进编码过程。也就是说,DPB参数每层或子层指示一次,而不是每次层或子层包括在OLS之一中时都指示。因此,相同的DPB参数不会为同一层或子层重复指示,这减少了冗余,提高了多层视频码流的译码效率。因此,视频译码中的编码器/解码器(又称为编解码器)相对于现有的编解码器有所改进。实际上,改进的视频译码过程在发送、接收和/或观看视频时为用户提供更好的体验。
在框1002中,视频编码器生成多个层(例如,层631至层635)。视频编码器还生成视频参数集(例如,VPS 804),该视频参数集指定多个输出层集(例如,OLS 1、OLS 2和OLS 3),每个输出层集包括多个层(例如层631至层635)中的一个或多个层(例如,OLS 1包括层631和层632,OLS 2包括层631至层634,OLS 3包括层631至633)。此外,视频编码器生成序列参数集(例如,SPS 806),当一个或多个层中的一个或多个层包括在多个OLS中的一个以上的OLS中时,该序列参数集仅包括一个或多个层中的每个层的解码图像缓冲区(decodedpicture buffer,DPB)参数集一次。
以图6为例,SPS仅包括四(4)个DPB参数集,用于层631的DPB参数集、用于层632的DPB参数集、用于层633的DPB参数集,以及用于层634的DPB参数集,即使层(例如,层631)包括在一个以上的OLS中也是如此。因此,无论特定层是否包括在一个以上的OLS中,都不会为SPS中的任何特定层重复DPB参数集,这提高了译码效率。因此,以图6为例,SPS仅包括四个DPS大小、四个级别和/或四个MRML信息集。
在一个实施例中,SPS中指示的DPB参数集的数量等于总层数。例如,总共有5层可用,因此SPS只携带5个DPB参数集。
在一个实施例中,视频编码器将所述一个或多个层中的一个层指定为输出层,并将所述一个或多个层中的另一个层指定为非输出层。在一个实施例中,DPB参数集包括第一DPB大小和第二DPB大小。在一个实施例中,DPB参数集包括单个DPB大小。在一个实施例中,所述多个层中的一个或多个层中的一个层包括一个或多个子层。
在框1004中,视频编码器将多个层、VPS和SPS编码到视频码流中。在步骤1006中,视频编码器存储视频码流,用于传输到视频解码器。视频码流传输到视频解码器之前,可以存储在存储器中。所述视频解码器接收到视频码流之后,可以对编码视频码流进行解码(例如,如以上所描述),以生成或产生用于在电子设备(例如,智能手机、平板电脑、膝上型电脑、个人电脑等)的显示器或屏幕上向用户显示的图像或视频序列。
图11为根据本发明实施例的视频译码设备1100(例如视频编码器300或视频解码器400)的示意图。视频译码设备1100适合于实现如本文所描述的公开实施例。视频译码设备1100包括:用于接收数据的入端口1110和接收单元(Rx)1120;用于处理数据的处理器、逻辑单元或中央处理单元(central processing unit,CPU)1130;用于发送数据的发送单元(Tx)1140和出端口1150;用于存储数据的存储器1160。视频译码设备1100还可以包括耦合到入端口1110、接收单元1120、发送单元1140和出端口1150的光电(optical-to-electrical,OE)组件和电光(electrical-to-optical,EO)组件,用作光信号或电信号的出口或入口。
处理器1130通过硬件和软件实现。处理器1130可以实现为一个或多个CPU芯片、核(例如,多核处理器)、现场可编程门阵列(field-programmable gate array,FPGA)、专用集成电路(application specific integrated circuit,ASIC)和数字信号处理器(digitalsignal processor,DSP)。处理器1130与入端口1110、接收单元1120、发送单元1140、出端口1150和存储器1160通信。处理器1130包括译码模块1170。译码模块1170实现以上所描述的公开实施例。例如,译码模块1170实现、处理、准备或提供各种编解码功能。因此,将译码模块1170包括在内,这为视频译码设备1100的功能提供了实质性的改进,并且影响了视频译码设备1100到不同状态的转换。或者,以存储在存储器1160中并由处理器1130执行的指令来实现译码模块1170。
视频译码设备1100还可以包括用于与用户进行数据通信的输入和/或输出(I/O)设备1180。I/O设备1180可以包括输出设备,例如用于显示视频数据的显示器、用于输出音频数据的扬声器等。I/O设备1180还可以包括键盘、鼠标、轨迹球等输入设备和/或用于与这些输出设备交互的对应接口。
存储器1160包括一个或多个磁盘、磁带机和固态硬盘,并且可以用作溢出数据存储设备,以在选择此类程序用于执行时存储程序,以及存储在程序执行期间读取的指令和数据。存储器1160可以是易失性和/或非易失性的,并且可以是只读存储器(read-onlymemory,ROM)、随机存取存储器(random access memory,RAM)、三态内容寻址存储器(ternary content-addressable memory,TCAM)和/或静态随机存取存储器(staticrandom-access memory,SRAM)。
图12为译码模块1200的一个实施例的示意图。在一个实施例中,译码模块1200在视频译码设备1202(例如,视频编码器300或视频解码器400)中实现。视频译码设备1202包括接收模块1201。接收模块1201用于接收用于进行编码的图像,或接收用于进行解码的码流。视频译码设备1202包括耦合到接收模块1201的发送模块1207。发送模块1207用于将码流发送到解码器或将解码图像发送到显示模块(例如,I/O设备1180中的一个)。
视频译码设备1202包括存储模块1203。存储模块1203耦合到接收模块1201或发送模块1207中的至少一个。存储模块1203用于存储指令。视频译码设备1202还包括处理模块1205。处理模块1205耦合到存储模块1203。处理模块1205用于执行存储在存储模块1203中的指令,以执行本文公开的方法。
还应理解,本文中阐述的示例性方法的步骤不一定需要按照所描述的顺序执行,并且这些方法的步骤的顺序应理解为仅仅是示例性的。同样地,在与本发明各种实施例相一致的方法中,这些方法可以包括其它步骤,并且某些步骤可以省略或组合。
尽管本发明中已经提供了几个实施例,但应理解的是,在不偏离本发明的精神或范围的情况下,所公开的系统和方法可以以许多其它特定形式实现。当前的这些示例被认为是说明性的而非限制性的,并且意图不限于本文给出的细节。例如,各种元件或组件可以组合或集成在另一个系统中,或者可以省略或不实现一些特征。
此外,在不偏离本发明范围的情况下,在各种实施例中描述和示出为分立的或独立的技术、系统、子系统和方法,可以与其它系统、模块、技术或方法组合或集成。示出或论述为相互耦合、直接耦合或通信的其它项目可以通过电、机械或其它方式通过一些接口、设备或中间组件间接耦合或通信。改变、替换和更改的其它示例可以由本领域技术人员确定,并且可以在不偏离本文所公开的精神和范围的情况下进行。
Claims (31)
1.一种视频解码器实现的解码方法,其特征在于,包括:
所述视频解码器接收视频码流,其中,所述视频码流包括:多个层、视频参数集(videoparameter set,VPS)和序列参数集(sequence parameter set,SPS),所述VPS指定多个输出层集(output layer set,OLS),每个OLS包括所述多个层中的一个或多个层,当所述一个或多个层中的一个或多个层包括在所述多个OLS中的一个以上的OLS中时,所述SPS仅包括所述一个或多个层中的每个层的解码图像缓冲区(decoded picture buffer,DPB)参数集一次;
所述视频解码器对来自所述多个层中的一个层的图像进行解码,以获得解码图像。
2.根据权利要求1所述的方法,其特征在于,还包括在所述解码之前从所述一个或多个层中的一个层中选择输出层。
3.根据权利要求1或2所述的方法,其特征在于,还包括在所述输出层被选择之后从所述输出层选择所述图像。
4.根据权利要求1或2所述的方法,其特征在于,所述DPB参数集包括第一DPB大小和第二DPB大小。
5.根据权利要求4所述的方法,其特征在于,所述第一DPB大小对应于所述一个或多个层中的输出层,所述第二DPB大小对应于所述一个或多个层中的非输出层。
6.根据权利要求1或2所述的方法,其特征在于,当所述一个或多个层中的一个或多个层包括在所述多个OLS中的一个以上的OLS中时,所述SPS仅包括所述一个或多个层中的每个层的级别信息一次。
7.根据权利要求1或2所述的方法,其特征在于,还包括根据所述DPB参数集中包括的第一DPB大小推断第二DPB大小。
8.根据权利要求1或2所述的方法,其特征在于,所述多个层中的所述一个或多个层中的一个层包括一个或多个子层。
9.根据权利要求1或2所述的方法,其特征在于,还包括在电子设备的显示器上显示所述解码图像。
10.一种视频编码器实现的编码方法,其特征在于,所述方法包括:
所述视频编码器生成多个层、视频参数集(video parameter set,VPS)和序列参数集(sequence parameter set,SPS),所述VPS指定多个输出层集(output layer set,OLS),每个OLS包括所述多个层中的一个或多个层,当所述一个或多个层中的一个或多个层包括在所述多个OLS中的一个以上的OLS中时,所述SPS仅包括所述一个或多个层中的每个层的解码图像缓冲区(decoded picture buffer,DPB)参数集一次;
所述视频编码器将所述多个层、所述VPS和所述SPS编码到视频码流中;
所述视频编码器存储所述视频码流,用于传输到视频解码器。
11.根据权利要求10所述的方法,其特征在于,还包括将所述一个或多个层中的一个层指定为输出层,并将所述一个或多个层中的另一个层指定为非输出层。
12.根据权利要求10或11所述的方法,其特征在于,当所述一个或多个层中的一个或多个层包括在所述多个OLS中的一个以上的OLS中时,所述SPS仅包括所述一个或多个层中的每个层的级别信息一次。
13.根据权利要求10或11所述的方法,其特征在于,所述DPB参数集包括单个DPB大小。
14.根据权利要求10或11所述的方法,其特征在于,所述多个层中的所述一个或多个层中的一个层包括一个或多个子层。
15.一种解码设备,其特征在于,包括:
接收器,所述接收器用于接收视频码流,其中,所述视频码流包括:多个层、视频参数集(video parameter set,VPS)和序列参数集(sequence parameter set,SPS),所述VPS指定多个输出层集(output layer set,OLS),每个OLS包括所述多个层中的一个或多个层,当所述一个或多个层中的一个或多个层包括在所述多个OLS中的一个以上的OLS中时,所述SPS仅包括所述一个或多个层中的每个层的解码图像缓冲区(decoded picture buffer,DPB)参数集一次;
耦合到所述接收器的存储器,所述存储器存储指令;
耦合到所述存储器的处理器,所述处理器用于执行所述指令,以使所述解码设备对来自所述多个层中的一个层的图像进行解码以获得解码图像。
16.根据权利要求15所述的解码设备,其特征在于,所述处理器还用于:
在所述解码之前从所述一个或多个层中的一个层中选择输出层;
在所述输出层被选择之后从所述输出层中选择所述图像。
17.根据权利要求15或16所述的解码设备,其特征在于,所述DPB参数集包括第一DPB大小和第二DPB大小。
18.根据权利要求17所述的解码设备,其特征在于,所述第一DPB大小对应于所述一个或多个层中的输出层,所述第二DPB大小对应于所述一个或多个层中的非输出层。
19.根据权利要求18所述的解码设备,其特征在于,当所述一个或多个层中的输出层和所述一个或多个层中的非输出层都具有单个DPB大小时,所述DPB参数集包括所述单个DPB大小。
20.根据权利要求15或16所述的解码设备,其特征在于,所述处理器还用于根据所述DPB参数集中包括的第一DPB大小推断第二DPB大小。
21.根据权利要求15或16所述的解码设备,其特征在于,所述多个层中的所述一个或多个层中的一个层包括一个或多个子层。
22.根据权利要求15或16所述的解码设备,其特征在于,还包括用于显示所述解码图像的显示器。
23.一种编码设备,其特征在于,包括:
包括指令的存储器;
耦合到所述存储器的处理器,所述处理器用于执行所述指令,以使所述编码设备执行以下操作:
生成多个层、视频参数集(video parameter set,VPS)和序列参数集(sequenceparameter set,SPS),所述VPS指定多个输出层集(output layer set,OLS),每个OLS包括所述多个层中的一个或多个层,当所述一个或多个层中的一个或多个层包括在所述多个OLS中的一个以上的OLS中时,所述SPS仅包括所述一个或多个层中的每个层的解码图像缓冲区(decoded picture buffer,DPB)参数集一次;
将所述多个层、所述VPS和所述SPS编码到视频码流中;
耦合到所述处理器的发送器,所述发送器用于向视频解码器发送所述视频码流。
24.根据权利要求23所述的编码设备,其特征在于,所述处理器还用于使所述编码设备将所述一个或多个层中的一个层指定为输出层,并将所述一个或多个层中的另一个层指定为非输出层。
25.根据权利要求23或24所述的编码设备,其特征在于,所述DPB参数集包括第一DPB大小和第二DPB大小。
26.根据权利要求23或24所述的编码设备,其特征在于,所述DPB参数集包括单个DPB大小。
27.根据权利要求23或24所述的编码设备,其特征在于,所述多个层中的所述一个或多个层中的一个层包括一个或多个子层。
28.一种译码装置,其特征在于,包括:
接收器,用于接收用于编码的图像或接收用于解码的码流;
耦合到所述接收器的发送器,所述发送器用于将所述码流发送到解码器或将解码图像发送到显示器;
耦合到所述接收器和所述发送器中的至少一个的存储器,所述存储器用于存储指令;
耦合到所述存储器的处理器,所述处理器用于执行存储在所述存储器中的所述指令,以执行根据权利要求1至9中任一项所述的方法以及根据权利要求10至14中任一项所述的方法。
29.根据权利要求28所述的译码装置,其特征在于,还包括用于显示解码图像的显示器。
30.一种系统,其特征在于,包括:
编码器;
与所述编码器通信的解码器,所述编码器包括根据权利要求23至27中任一项所述的编码设备,或者,所述编码器包括根据权利要求28或29所述的译码装置,所述解码器包括根据权利要求15至22中任一项所述的解码设备,或者,所述解码器包括根据权利要求23至27中任一项所述的编码设备、根据权利要求28或29所述的译码装置。
31.一种译码模块,其特征在于,包括:
接收模块,用于接收用于编码的图像或接收用于解码的码流;
耦合到所述接收模块的发送模块,其中,所述发送模块用于将所述码流发送到解码模块或将解码图像发送到显示模块;
耦合到所述接收模块或所述发送模块中的至少一个的存储模块,所述存储模块用于存储指令;
处理模块,耦合到所述存储模块并用于执行存储在所述存储模块中的所述指令,以执行根据权利要求1至9中任一项所述的方法以及根据权利要求10至14中任一项所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962905139P | 2019-09-24 | 2019-09-24 | |
US62/905,139 | 2019-09-24 | ||
PCT/US2020/051278 WO2021061489A1 (en) | 2019-09-24 | 2020-09-17 | Signaling of dpb parameters for multi-layer video bitstreams |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114586368A CN114586368A (zh) | 2022-06-03 |
CN114586368B true CN114586368B (zh) | 2023-09-12 |
Family
ID=75166348
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080065956.3A Active CN114424572B (zh) | 2019-09-24 | 2020-09-17 | 用于多层视频码流的dpb参数的指示 |
CN202080065933.2A Active CN114586368B (zh) | 2019-09-24 | 2020-09-17 | 用于多层视频码流的编码方法、解码方法及装置 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080065956.3A Active CN114424572B (zh) | 2019-09-24 | 2020-09-17 | 用于多层视频码流的dpb参数的指示 |
Country Status (8)
Country | Link |
---|---|
US (2) | US11849134B2 (zh) |
EP (2) | EP4022927A4 (zh) |
JP (2) | JP7323099B2 (zh) |
KR (2) | KR102665551B1 (zh) |
CN (2) | CN114424572B (zh) |
AU (2) | AU2020352913A1 (zh) |
BR (2) | BR112022005370A2 (zh) |
WO (2) | WO2021061490A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109587486A (zh) * | 2018-12-12 | 2019-04-05 | 深圳市网心科技有限公司 | 一种基于h.264的视频编码方法及相关装置 |
WO2021137597A1 (ko) * | 2019-12-30 | 2021-07-08 | 엘지전자 주식회사 | Ols에 대한 dpb 파라미터를 사용하는 영상 디코딩 방법 및 그 장치 |
KR20220156832A (ko) * | 2020-03-21 | 2022-11-28 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | 서브 픽처 및 스케일러빌러티 조합 |
CN115428464A (zh) | 2020-04-19 | 2022-12-02 | 抖音视界有限公司 | 视频编解码的缩放窗口 |
JP7518216B2 (ja) | 2020-06-20 | 2024-07-17 | 北京字節跳動網絡技術有限公司 | 異なるコーディングブロックサイズを有するインターレイヤ予測 |
CA3229953A1 (en) * | 2021-08-26 | 2023-03-02 | Yue Yu | Operation range extension for versatile video coding |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104969554A (zh) * | 2013-01-07 | 2015-10-07 | 韩国电子通信研究院 | 图像编码/解码方法和装置 |
CN105075262A (zh) * | 2013-04-08 | 2015-11-18 | 高通股份有限公司 | 对用于输出层集合的视频数据进行译码 |
CN105637878A (zh) * | 2013-10-10 | 2016-06-01 | 高通股份有限公司 | 在视频译码中用于基于子解码图片缓冲器(sub-dpb)的dpb操作的传信 |
US20170019673A1 (en) * | 2014-03-14 | 2017-01-19 | Sharp Kabushiki Kaisha | Image decoding device, image decoding method, recoding medium, image coding device, and image coding method |
Family Cites Families (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101912472B1 (ko) * | 2011-01-14 | 2018-10-26 | 선 페이턴트 트러스트 | 화상 부호화 방법, 화상 복호 방법, 메모리 관리 방법, 화상 부호화 장치, 화상 복호 장치, 메모리 관리 장치 및 화상 부호화 복호 장치 |
ES2844148T3 (es) * | 2011-09-19 | 2021-07-21 | Sun Patent Trust | Procedimiento de descodificación de imágenes, dispositivo de descodificación de imágenes |
US9204156B2 (en) * | 2011-11-03 | 2015-12-01 | Microsoft Technology Licensing, Llc | Adding temporal scalability to a non-scalable bitstream |
KR101561012B1 (ko) * | 2012-09-28 | 2015-10-15 | 텔레폰악티에볼라겟엘엠에릭슨(펍) | 비디오 시퀀스의 픽처의 디코딩 및 인코딩 |
US9661341B2 (en) * | 2013-01-07 | 2017-05-23 | Microsoft Technology Licensing, Llc | Syntax and semantics for buffering information to simplify video splicing |
US20140301477A1 (en) * | 2013-04-07 | 2014-10-09 | Sharp Laboratories Of America, Inc. | Signaling dpb parameters in vps extension and dpb operation |
US9591321B2 (en) * | 2013-04-07 | 2017-03-07 | Dolby International Ab | Signaling change in output layer sets |
SG10201913539SA (en) * | 2013-04-07 | 2020-02-27 | Dolby Int Ab | Signaling change in output layer sets |
CN105379273B (zh) * | 2013-07-14 | 2019-03-15 | 夏普株式会社 | 对来自比特流的视频进行解码的方法和设备 |
US9794579B2 (en) * | 2013-07-15 | 2017-10-17 | Qualcomm Incorporated | Decoded picture buffer operations for video coding |
US20150103912A1 (en) * | 2013-10-11 | 2015-04-16 | Electronics And Telecommunications Research Institute | Method and apparatus for video encoding/decoding based on multi-layer |
WO2015053596A1 (ko) * | 2013-10-12 | 2015-04-16 | 삼성전자 주식회사 | 멀티 레이어 비디오의 복호화 및 부호화를 위한 버퍼 관리 방법 및 장치 |
WO2015052943A1 (en) * | 2013-10-13 | 2015-04-16 | Sharp Kabushiki Kaisha | Signaling parameters in vps extension and dpb operation |
WO2015056182A2 (en) | 2013-10-15 | 2015-04-23 | Nokia Technologies Oy | Video encoding and decoding |
EP3078195A4 (en) * | 2013-12-02 | 2017-08-09 | Nokia Technologies OY | Video encoding and decoding |
US20170019666A1 (en) * | 2014-03-13 | 2017-01-19 | Sharp Kabushiki Kaisha | Constrained reference picture parameters |
US10250895B2 (en) * | 2014-03-14 | 2019-04-02 | Sharp Kabushiki Kaisha | DPB capacity limits |
CN106170981B (zh) * | 2014-03-14 | 2019-02-26 | 华为技术有限公司 | 图像解码装置 |
US9807406B2 (en) * | 2014-03-17 | 2017-10-31 | Qualcomm Incorporated | Picture flushing and decoded picture buffer parameter inference for multi-layer bitstreams |
US20150264404A1 (en) * | 2014-03-17 | 2015-09-17 | Nokia Technologies Oy | Method and apparatus for video coding and decoding |
US10178397B2 (en) * | 2014-03-24 | 2019-01-08 | Qualcomm Incorporated | Generic use of HEVC SEI messages for multi-layer codecs |
US10136152B2 (en) * | 2014-03-24 | 2018-11-20 | Qualcomm Incorporated | Use of specific HEVC SEI messages for multi-layer video codecs |
US9712871B2 (en) * | 2014-05-01 | 2017-07-18 | Qualcomm Incorporated | Determination bitstream decoding capability in video coding |
MX360655B (es) * | 2014-05-21 | 2018-11-12 | Arris Entpr Llc | Gestión individual de memorias intermedias en transporte de video escalable. |
US9756355B2 (en) * | 2014-06-20 | 2017-09-05 | Qualcomm Incorporated | Value ranges for syntax elements in video coding |
WO2015194869A1 (ko) * | 2014-06-20 | 2015-12-23 | 삼성전자 주식회사 | 스케일러블 비디오 데이터의 부호화 또는 복호화 하는 방법 및 장치 |
GB2538531A (en) * | 2015-05-20 | 2016-11-23 | Nokia Technologies Oy | An apparatus, a method and a computer program for video coding and decoding |
GB2538997A (en) * | 2015-06-03 | 2016-12-07 | Nokia Technologies Oy | A method, an apparatus, a computer program for video coding |
US10841577B2 (en) * | 2018-02-08 | 2020-11-17 | Electronics And Telecommunications Research Institute | Method and apparatus for video encoding and video decoding based on neural network |
KR20220065867A (ko) * | 2019-09-24 | 2022-05-20 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 레이어에 대한 hrd 파라미터 |
EP4128756A4 (en) * | 2020-03-26 | 2024-04-24 | Alibaba Group Holding Limited | METHODS OF ENCODING OR DECODING A SET OF VIDEO PARAMETERS OR A SET OF SEQUENCE PARAMETERS |
-
2020
- 2020-09-17 JP JP2022518821A patent/JP7323099B2/ja active Active
- 2020-09-17 KR KR1020227013594A patent/KR102665551B1/ko active IP Right Grant
- 2020-09-17 AU AU2020352913A patent/AU2020352913A1/en active Pending
- 2020-09-17 KR KR1020227013649A patent/KR20220063273A/ko not_active Application Discontinuation
- 2020-09-17 WO PCT/US2020/051279 patent/WO2021061490A1/en unknown
- 2020-09-17 CN CN202080065956.3A patent/CN114424572B/zh active Active
- 2020-09-17 EP EP20869379.6A patent/EP4022927A4/en active Pending
- 2020-09-17 BR BR112022005370A patent/BR112022005370A2/pt unknown
- 2020-09-17 EP EP20869483.6A patent/EP4022928A4/en active Pending
- 2020-09-17 JP JP2022518745A patent/JP7388612B2/ja active Active
- 2020-09-17 AU AU2020354925A patent/AU2020354925A1/en active Pending
- 2020-09-17 BR BR112022005265A patent/BR112022005265A2/pt unknown
- 2020-09-17 WO PCT/US2020/051278 patent/WO2021061489A1/en unknown
- 2020-09-17 CN CN202080065933.2A patent/CN114586368B/zh active Active
-
2022
- 2022-03-22 US US17/700,813 patent/US11849134B2/en active Active
- 2022-03-22 US US17/700,786 patent/US12075078B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104969554A (zh) * | 2013-01-07 | 2015-10-07 | 韩国电子通信研究院 | 图像编码/解码方法和装置 |
CN105075262A (zh) * | 2013-04-08 | 2015-11-18 | 高通股份有限公司 | 对用于输出层集合的视频数据进行译码 |
CN105637878A (zh) * | 2013-10-10 | 2016-06-01 | 高通股份有限公司 | 在视频译码中用于基于子解码图片缓冲器(sub-dpb)的dpb操作的传信 |
US20170019673A1 (en) * | 2014-03-14 | 2017-01-19 | Sharp Kabushiki Kaisha | Image decoding device, image decoding method, recoding medium, image coding device, and image coding method |
Also Published As
Publication number | Publication date |
---|---|
AU2020354925A1 (en) | 2022-04-21 |
JP7388612B2 (ja) | 2023-11-29 |
EP4022928A4 (en) | 2022-11-16 |
CN114424572A (zh) | 2022-04-29 |
WO2021061490A1 (en) | 2021-04-01 |
EP4022927A4 (en) | 2022-11-09 |
JP2022549651A (ja) | 2022-11-28 |
JP2022549004A (ja) | 2022-11-22 |
EP4022928A1 (en) | 2022-07-06 |
AU2020352913A1 (en) | 2022-04-21 |
KR20220063273A (ko) | 2022-05-17 |
US20220217385A1 (en) | 2022-07-07 |
EP4022927A1 (en) | 2022-07-06 |
JP7323099B2 (ja) | 2023-08-08 |
CN114424572B (zh) | 2023-08-22 |
KR20220063271A (ko) | 2022-05-17 |
US11849134B2 (en) | 2023-12-19 |
US20220217330A1 (en) | 2022-07-07 |
BR112022005370A2 (pt) | 2022-06-14 |
BR112022005265A2 (pt) | 2022-06-14 |
US12075078B2 (en) | 2024-08-27 |
KR102665551B1 (ko) | 2024-05-10 |
WO2021061489A1 (en) | 2021-04-01 |
CN114586368A (zh) | 2022-06-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114514749B (zh) | 避免多层视频码流中的冗余指示 | |
CN114586368B (zh) | 用于多层视频码流的编码方法、解码方法及装置 | |
CN114424561B (zh) | 不允许不必要的层包括在多层视频码流中 |
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 |