CN117478899A - 用于实现时间可适性的图像时序和解码单元信息 - Google Patents

用于实现时间可适性的图像时序和解码单元信息 Download PDF

Info

Publication number
CN117478899A
CN117478899A CN202311427865.1A CN202311427865A CN117478899A CN 117478899 A CN117478899 A CN 117478899A CN 202311427865 A CN202311427865 A CN 202311427865A CN 117478899 A CN117478899 A CN 117478899A
Authority
CN
China
Prior art keywords
sei message
decoding
cpb
sei
video
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.)
Pending
Application number
CN202311427865.1A
Other languages
English (en)
Inventor
王业奎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN117478899A publication Critical patent/CN117478899A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/33Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the spatial domain
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/31Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the temporal domain
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/187Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods 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/423Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods 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)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

提供了一种解码方法。所述方法包括:接收包括编码图像和补充增强信息(supplemental enhancement information,SEI)消息的码流,其中,所述SEI消息包括与对子层进行的基于解码单元(decoding unit,DU)的假设参考解码器(hypothetical reference decoder,HRD)操作相对应的编码图像缓冲区(coded picture buffer,CPB)参数;对来自所述码流的所述编码图像进行解码,以获得解码图像。还提供了对应的编码方法。

Description

用于实现时间可适性的图像时序和解码单元信息
本申请是分案申请,原申请的申请号是202080066242.4,原申请日是2020年09月21日,原申请的全部内容通过引用结合在本申请中。
相关申请交叉引用
本专利申请要求王业奎于2019年9月24日提交的、标题为“用于实现时间可适性的图像时序和解码单元信息(Picture Timing and Decoding Unit Information forTemporal Scalability)”的美国临时专利申请第62/905,147号的权益,该美国临时专利申请通过引用的方式并入本文中。
技术领域
本发明大体上涉及一种视频译码,并且具体涉及假设参考解码器(hypotheticalreference decoder,HRD)参数变化,以支持多层码流的高效编码和/或符合性测试。
背景技术
即使视频相对较短,也需要大量的视频数据来描述,当数据要在带宽容量有限的通信网络中流式传输或以其它方式传输时,这样可能会造成困难。因此,视频数据通常要先压缩,然后通过现代电信网络进行传输。由于内存资源可能有限,当在存储设备中存储视频时,该视频的大小也可能是一个问题。视频压缩设备通常在源侧使用软件和/或硬件对视频数据进行编码,然后进行传输或存储,从而减少表示数字视频图像所需的数据量。然后,由对视频数据进行解码的视频解压缩设备在目的地侧接收压缩数据。在有限的网络资源以及对更高视频质量的需求不断增长的情况下,需要改进压缩和解压缩技术,这些改进的技术在几乎不影响图像质量的情况下能够提高压缩比。
发明内容
第一方面涉及一种由视频解码器实现的方法,所述方法包括:所述视频解码器接收包括编码图像和补充增强信息(supplemental enhancement information,SEI)消息的码流,其中,所述SEI消息包括与对子层进行的基于解码单元(decoding unit,DU)的假设参考解码器(hypothetical reference decoder,HRD)操作相对应的编码图像缓冲区(codedpicture buffer,CPB)参数;所述视频解码器对来自所述码流的所述编码图像进行解码,以获得解码图像。
所述方法提供的技术确保了与对子层进行的基于解码单元(decoding unit,DU)的HRD操作相对应的图像级编码图像缓冲区(coded picture buffer,CPB)参数包括在补充增强信息(supplemental enhancement information,SEI)消息中。由于图像级CPB参数包括在SEI消息中,HRD可以使用基于DU的HRD操作来测试码流中的子层的码流符合性,从而确保子层被正确编码和/或可以被正确解码。因此,视频译码中的编码器/解码器(又称为编解码器,codec)相对于现有的编解码器有所改进。实际上,当视频被发送、接收和/或观看时,改进的视频译码过程为用户提供了更好的用户体验。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述CPB参数表示两个解码单元的CPB删除时间之间的持续时间。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述SEI消息是图像时序(picture timing,PT)SEI消息。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述CPB参数包括与所述PT SEI消息相关联的接入单元(access unit,AU)的公共CPB删除延迟增量和CPB删除延迟增量。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述SEI消息是PTSEI消息,所述PT SEI消息表示与所述PT SEI消息相关联的所述AU中的解码单元的数量。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述SEI消息是PTSEI消息,所述PT SEI消息表示与所述PT SEI消息相关联的所述AU的解码单元(decodingunit,DU)中的网络抽象层(network abstraction layer,NAL)单元的数量。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述SEI消息是解码单元信息(decoding unit information,DUI)SEI消息,所述DUI SEI消息提供包括所述DUI SEI消息的SEI NAL单元的时间标识符(identifier,ID)。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述时间ID表示所述DUI SEI消息中包括CPB删除延迟信息的最高子层。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,在电子设备的显示器上显示所述解码图像。
第二方面涉及一种由视频编码器实现的方法,所述方法包括:所述视频编码器生成包括编码图像和补充增强信息(supplemental enhancement information,SEI)消息的码流,其中,所述SEI消息包括与对子层进行的基于解码单元(decoding unit,DU)的假设参考解码器(hypothetical reference decoder,HRD)操作相对应的编码图像缓冲区(codedpicture buffer,CPB)参数;所述视频编码器使用所述CPB参数对所述子层执行所述基于DU的HRD操作,以确定所述码流是否是符合的;当根据所述基于DU的HRD操作的执行,所述码流是符合的时,所述视频编码器存储所述码流,以发送给视频解码器。
所述方法提供的技术确保了与对子层进行的基于解码单元(decoding unit,DU)的HRD操作相对应的图像级编码图像缓冲区(coded picture buffer,CPB)参数包括在补充增强信息(supplemental enhancement information,SEI)消息中。由于图像级CPB参数包括在SEI消息中,HRD可以使用基于DU的HRD操作来测试码流中的子层的码流符合性,从而确保子层被正确编码和/或可以被正确解码。因此,视频译码中的编码器/解码器(又称为编解码器,codec)相对于现有的编解码器有所改进。实际上,当视频被发送、接收和/或观看时,改进的视频译码过程为用户提供了更好的用户体验。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述CPB参数表示两个解码单元的CPB删除时间之间的持续时间,并且当不超过所述CPB删除时间之间的所述持续时间时,所述码流是符合的。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述SEI消息是图像时序(picture timing,PT)SEI消息。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述CPB参数包括与所述PT SEI消息相关联的接入单元(access unit,AU)的公共CPB删除延迟和CPB删除延迟。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述PT SEI消息表示与所述PT SEI消息相关联的所述AU中的解码单元的数量和与所述PT SEI消息相关联的所述AU的解码单元(decoding unit,DU)中的网络抽象层(network abstraction layer,NAL)单元的数量。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述SEI消息是解码单元信息(decoding unit information,DUI)SEI消息,所述DUI SEI消息提供包括所述DUI SEI消息的SEI NAL单元的时间标识符(identifier,ID)。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述DUI SEI消息表示所述DUI SEI消息中包括CPB删除延迟信息的最高子层的所述时间ID。
第三方面涉及一种解码设备,所述解码设备包括:接收器,用于接收包括编码图像和补充增强信息(supplemental enhancement information,SEI)消息的码流,其中,所述SEI消息包括与对子层进行的基于解码单元(decoding unit,DU)的假设参考解码器(hypothetical reference decoder,HRD)操作相对应的编码图像缓冲区(coded picturebuffer,CPB)参数;存储器,耦合到所述接收器,所述存储器存储指令;处理器,耦合到所述存储器,所述处理器用于执行所述指令,以使所述解码设备对来自所述码流的所述编码图像进行解码,以获得解码图像。
所述解码设备提供的技术确保了与对子层进行的基于解码单元(decoding unit,DU)的HRD操作相对应的图像级编码图像缓冲区(coded picture buffer,CPB)参数包括在补充增强信息(supplemental enhancement information,SEI)消息中。由于图像级CPB参数包括在SEI消息中,HRD可以使用基于DU的HRD操作来测试码流中的子层的码流符合性,从而确保子层被正确编码和/或可以被正确解码。因此,视频译码中的编码器/解码器(又称为编解码器,codec)相对于现有的编解码器有所改进。实际上,当视频被发送、接收和/或观看时,改进的视频译码过程为用户提供了更好的用户体验。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述CPB参数表示两个解码单元的CPB删除时间之间的持续时间。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述SEI消息是PTSEI消息,所述PT SEI消息表示与所述PT SEI消息相关联的接入单元(access unit,AU)中的解码单元的数量,并且所述CPB参数包括与所述PT SEI消息相关联的所述AU的公共CPB删除延迟和CPB删除延迟。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述SEI消息是解码单元信息(decoding unit information,DUI)SEI消息,所述DUI SEI消息提供包括所述DUI SEI消息的SEI NAL单元的时间标识符(identifier,ID)。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述时间ID表示所述DUI SEI消息中包括CPB删除延迟信息的最高子层。
第四方面涉及一种编码设备,所述编码设备包括:存储器,包括指令;处理器,耦合到所述存储器,所述处理器用于实现所述指令,以使得所述编码设备:生成包括编码图像和补充增强信息(supplemental enhancement information,SEI)消息的码流,其中,所述SEI消息包括与对子层进行的基于解码单元(decoding unit,DU)的HRD操作相对应的编码图像缓冲区(coded picture buffer,CPB)参数;使用所述CPB参数对所述子层执行所述基于DU的HRD操作,以确定所述码流是否是符合的;发送器,耦合到所述处理器,所述发送器用于当根据所述基于DU的HRD操作的执行,所述码流是符合的时,向视频解码器发送所述视频码流。
所述编码设备提供的技术确保了与对子层进行的基于解码单元(decoding unit,DU)的HRD操作相对应的图像级编码图像缓冲区(coded picture buffer,CPB)参数包括在补充增强信息(supplemental enhancement information,SEI)消息中。由于图像级CPB参数包括在SEI消息中,HRD可以使用基于DU的HRD操作来测试码流中的子层的码流符合性,从而确保子层被正确编码和/或可以被正确解码。因此,视频译码中的编码器/解码器(又称为编解码器,codec)相对于现有的编解码器有所改进。实际上,当视频被发送、接收和/或观看时,改进的视频译码过程为用户提供了更好的用户体验。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述CPB参数表示两个解码单元的CPB删除时间之间的持续时间,并且当不超过所述CPB删除时间之间的所述持续时间时,所述码流是符合的。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述SEI消息是图像时序(picture timing,PT)SEI消息。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述CPB参数包括与所述PT SEI消息相关联的接入单元(access unit,AU)的公共CPB删除延迟和CPB删除延迟。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述PT SEI消息表示与所述PT SEI消息相关联的所述AU中的解码单元的数量和与所述PT SEI消息相关联的所述AU的解码单元(decoding unit,DU)中的网络抽象层(network abstraction layer,NAL)单元的数量。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述SEI消息是解码单元信息(decoding unit information,DUI)SEI消息,所述DUI SEI消息提供包括所述DUI SEI消息的SEI网络抽象层(network abstraction layer,NAL)单元的时间标识符(identifier,ID)。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述DUI SEI消息表示所述DUI SEI消息中包括CPB删除延迟信息的最高子层的时间标识符(identifier,ID)。
第五方面涉及一种译码装置。所述译码装置包括:接收器,用于接收图像进行编码或接收码流进行解码;发送器,耦合到所述接收器,所述发送器用于向解码器发送所述码流或向显示器发送解码图像;存储器,耦合到所述接收器或所述发送器中的至少一个,所述存储器用于存储指令;处理器,耦合到所述存储器,所述处理器用于执行存储在所述存储器中的所述指令,以执行本文公开的任何一种方法。
所述译码装置提供的技术确保了与对子层进行的基于解码单元(decoding unit,DU)的HRD操作相对应的图像级编码图像缓冲区(coded picture buffer,CPB)参数包括在补充增强信息(supplemental enhancement information,SEI)消息中。由于图像级CPB参数包括在SEI消息中,HRD可以使用基于DU的HRD操作来测试码流中的子层的码流符合性,从而确保子层被正确编码和/或可以被正确解码。因此,视频译码中的编码器/解码器(又称为编解码器,codec)相对于现有的编解码器有所改进。实际上,当视频被发送、接收和/或观看时,改进的视频译码过程为用户提供了更好的用户体验。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述译码装置还包括用于显示解码图像的显示器。
第六方面涉及一种系统。所述系统包括:编码器;与所述编码器通信的解码器,其中,所述编码器或所述解码器包括本文公开的所述解码设备、所述编码设备或所述译码装置。
所述系统提供的技术确保了与对子层进行的基于解码单元(decoding unit,DU)的HRD操作相对应的图像级编码图像缓冲区(coded picture buffer,CPB)参数包括在补充增强信息(supplemental enhancement information,SEI)消息中。由于图像级CPB参数包括在SEI消息中,HRD可以使用基于DU的HRD操作来测试码流中的子层的码流符合性,从而确保子层被正确编码和/或可以被正确解码。因此,视频译码中的编码器/解码器(又称为编解码器,codec)相对于现有的编解码器有所改进。实际上,当视频被发送、接收和/或观看时,改进的视频译码过程为用户提供了更好的用户体验。
第七方面涉及一种译码模块。所述译码模块包括:接收模块,用于接收图像进行编码或接收码流进行解码;发送模块,耦合到所述接收模块,所述发送模块用于向解码模块发送所述码流或向显示模块发送解码图像;存储模块,耦合到所述接收模块或所述发送模块中的至少一个,所述存储模块用于存储指令;处理模块,耦合到所述存储模块,所述处理模块用于执行存储在所述存储模块中的所述指令,以执行本文公开的任何一种方法。
所述译码模块提供的技术确保了与对子层进行的基于解码单元(decoding unit,DU)的HRD操作相对应的图像级编码图像缓冲区(coded picture buffer,CPB)参数包括在补充增强信息(supplemental enhancement information,SEI)消息中。由于图像级CPB参数包括在SEI消息中,HRD可以使用基于DU的HRD操作来测试码流中的子层的码流符合性,从而确保子层被正确编码和/或可以被正确解码。因此,视频译码中的编码器/解码器(又称为编解码器,codec)相对于现有的编解码器有所改进。实际上,当视频被发送、接收和/或观看时,改进的视频译码过程为用户提供了更好的用户体验。
为了清楚起见,上述任一实施例可以与上述其它实施例中任何一个或多个组合以创建本发明范围内的新实施例。
从结合附图和权利要求书的以下详细描述中,将更清楚地理解这些和其它特征。
附图说明
为了更全面地理解本发明,现在参考以下结合附图和具体实施方式进行的简要描述,其中,相似的附图标记表示相似的部件。
图1是对视频信号进行译码的示例性方法的流程图。
图2是用于视频译码的示例性编码和解码(编解码)系统的示意图。
图3是示例性视频编码器的示意图。
图4是示例性视频解码器的示意图。
图5是示例性假设参考解码器(hypothetical reference decoder,HRD)的示意图。
图6是用于层间预测的示例性多层视频序列的示意图。
图7是用于实现时间可适性的示例性多层视频序列的示意图。
图8是示例性码流的示意图。
图9是对编码视频码流进行解码的方法的一个实施例。
图10是对视频码流进行编码的方法的一个实施例。
图11是视频译码设备的示意图。
图12是译码模块的一个实施例的示意图。
具体实施方式
首先应当理解,尽管下文提供一个或多个实施例的说明性实现方式,但所公开的系统和/或方法可以使用任意数量的技术来实现,无论这些技术是当前已知的还是现有的。本发明决不应限于下文所说明的所述说明性实施方案、图式和技术,包括本文所说明并描述的示范性设计和实施方案,而是可以在所附权利要求书的范围以及其均等物的完整范围内修改。
以下术语的定义如下所述,除非在本文相反的上下文中使用。具体地,以下定义旨在更加清晰地描述本发明。但是,术语在不同的上下文中可能会有不同的描述。因此,以下定义应当视为补充信息,而不应当视为对此处为这些术语提供的描述的任何其它定义进行限制。
码流是包括视频数据的一系列比特,这些视频数据会被压缩以在编码器与解码器之间传输。编码器是一种用于通过编码过程将视频数据压缩为码流的设备。解码器是一种用于通过解码过程从码流中重建视频数据进行显示的设备。图像是创建帧或帧场的亮度样本的阵列和/或色度样本的阵列。为了清楚讨论,正在被编码或解码的图像可以称为当前图像。网络抽象层(network abstraction layer,NAL)单元是一种语法结构,包括原始字节序列载荷(raw byte sequence payload,RBSP)(表示数据类型)形式的数据,以及根据需要散布的预防混淆字节。视频编码层(video coding layer,VCL)NAL单元是编码为包括视频数据的NAL单元,视频数据例如图像的编码条带。非VCL NAL单元是包括非视频数据的NAL单元,非视频数据例如支持解码视频数据、执行符合性检查或其它操作的语法和/或参数。接入单元(access unit,AU)是根据指定的分类规则彼此相关联并且与一个特定输出时间相关的NAL单元集合。解码单元(decoding unit,DU)是AU或AU的子集以及相关联的非VCL NAL单元。层是共享指定特性(例如,共同分辨率、帧率、图像大小等)的VCL NAL单元和相关联的非VCL NAL单元的集合。解码顺序是通过解码过程处理语法元素的顺序。视频参数集(videoparameter set,VPS)是包括与整个视频相关的参数的数据单元。
时间可适性码流是在多个层中编码的码流,提供不同的时间分辨率/帧率(例如,每个层被编码以支持不同的帧率)。子层是时间可适性码流的时间可适性层,包括具有特定时间标识符值的VCL NAL单元和相关联的非VCL NAL单元。例如,时间子层是包括与指定帧率相关联的视频数据的层。子层表示是包括特定子层和较低子层的NAL单元的码流的子集。因此,可以组合一个或多个时间子层以实现子层表示,该子层表示可以被解码,以产生具有指定帧率的视频序列。输出层集(output layer set,OLS)是层集合,其中一个或多个层被指定为一个或多个输出层。输出层是指定用于输出(例如,输出到显示器)的层。OLS索引是唯一标识对应OLS的索引。第零个(第0个)OLS是仅包括最低层(具有最低层标识符的层),因此仅包括输出层的OLS。时间标识符(identifier,ID)是一个数据元素,表示数据对应于视频序列中的时间位置。子码流提取过程是从码流中删除不属于目标OLS索引和目标最高时间ID确定的目标集的NAL单元的过程。子码流提取过程产生输出子码流,其中包括来自码流的作为目标集的一部分的NAL单元。
HRD是在编码器上运行的解码器模型。HRD检查编码过程产生的码流的可变性,以验证是否符合指定的约束条件。码流符合性测试是确定经编码码流是否符合标准(如通用视频编码(versatile video coding,VVC))的测试。HRD参数是初始化和/或定义HRD运行条件的语法元素。序列级HRD参数是应用于整个编码视频序列的HRD参数,而图像级HRD参数是应用于编码视频序列中的图像的HRD参数。最大HRD时间ID(HRD temporal ID,Htid)表示HRD参数包括在OLS HRD参数的第i集中的最高子层表示的时间ID。操作点(operationpoint,OP)是由OLS索引和最高时间ID标识的OLS的时间子集。编码图像缓冲区(codedpicture buffer,CPB)是HRD中的先进先出缓冲区,它包括按解码顺序的编码图像,以便在码流符合性验证期间使用。解码图像缓冲区(decoded picture buffer,DPB)是用于保存解码图像以供参考、输出重排序和/或输出延迟的缓冲区。
补充增强信息(supplemental enhancement information,SEI)消息是一种语法结构,具有传达解码过程不需要的信息的指定语义,以便确定解码图像中的样本的值。缓冲周期(buffering period,BP)SEI消息是一种SEI消息,包括用于初始化HRD以管理CPB的HRD参数。图像时序(picture timing,PT)SEI消息是一种SEI消息,包括用于管理CPB和/或DPB处的AU的传输信息的HRD参数。解码单元信息(decoding unit information,DUI)SEI消息是一种SEI消息,包括用于管理CPB和/或DPB处的DU的传输信息的HRD参数。
CPB删除延迟是对应的当前AU在删除并输出到DPB之前可以保留在CPB中的时间段。初始CPB删除延迟是码流、OLS和/或层中每个图像、AU和/或DU的默认CPB删除延迟。CPB删除偏移是CPB中用于确定CPB中对应的AU的边界的位置。初始CPB删除偏移是与码流、OLS和/或层中的每个图像、AU和/或DU相关联的默认CPB删除偏移。解码图像缓冲区(decodedpicture buffer,DPB)输出延迟信息是对应的AU在输出之前可以保留在DPB中的时间段。CPB删除延迟信息是与从CPB中删除对应的DU相关的信息。传输机制指定了向和/或从存储器位置(例如CPB和/或DPB)传输视频数据的时序。
时间子层的最大数量是指BP SEI消息中指示初始CPB删除延迟和初始CPB删除偏移的子层的最大数量。公共CPB删除延迟增量表示与图像时序SEI消息相关联的AU中按解码顺序的任意两个连续DU的标称CPB删除时间之间的持续时间,以时钟子计时周期为单位。公共CPB删除延迟增量还用于计算解码单元数据到达假设流调度器(hypothetical streamscheduler,HSS)的CPB的最早可能时间。
解码单元的数量表示与图像时序SEI消息相关联的AU中DU的数量。NAL单元的数量表示与PT SEI消息相关联的AU的第i个DU中的NAL单元的数量。公共CPB删除延迟标志表示PT SEI消息中是否存在语法元素公共CPB删除延迟增量。
CPB删除延迟增量表示与PT SEI消息相关联的AU中按解码顺序的第(i+1)个DU的标称CPB删除时间与第i个DU的标称CPB删除时间之间的持续时间,以时钟子计时周期为单位。
VPS最大子层减1(vps_max_sublayers_minus1)语法元素是一个语法元素,用于表示VPS指定的层中可以存在的时间子层的最大数量。
本文中使用以下首字母缩略词,接入单元(access unit,AU)、编码树块(codingtree block,CTB)、编码树单元(coding tree unit,CTU)、编码单元(coding unit,CU)、编码层视频序列(coded layer video sequence,CLVS)、编码层视频序列开始(coded layervideo sequence start,CLVSS)、编码视频序列(coded video sequence,CVS)、编码视频序列开始(coded video sequence start,CVSS)、联合视频专家组(joint video expertsteam,JVET)、假设参考解码器(hypothetical reference decoder,HRD)、运动约束分块集(motion constrained tile set,MCTS)、最大传输单元(maximum transfer unit,MTU)、网络抽象层(network abstraction layer,NAL)、输出层集(output layer set,OLS)、图像顺序编号(picture order count,POC)、随机接入点(random access point,RAP)、原始字节序列载荷(raw byte sequence payload,RBSP)、序列参数集(sequence parameter set,SPS)、视频参数集(video parameter set,VPS)、通用视频编码(versatile video coding,VVC)。
许多视频压缩技术可以用来减小视频文件的大小,同时最大限度地减少数据丢失。例如,视频压缩技术可以包括执行空间(例如,帧内)预测和/或时间(例如,帧间)预测来减少或去除视频序列中的数据冗余。对于基于块的视频译码,视频条带(例如,视频图像或视频图像的一部分)可以被分割成视频块,这些视频块还可以称为树块(treeblock)、编码树块(coding tree block,CTB)、编码树单元(coding tree unit,CTU)、编码单元(codingunit,CU)和/或编码节点。图像中的经帧内编码(I)条带中的视频块是针对同一图像中的相邻块中的参考样本使用空间预测进行编码的。图像中的经帧间编码的单向预测(P)或双向预测(B)条带中的视频块可以是针对同一图像中的相邻块中的参考样本使用空间预测进行译码的,也可以是针对其它参考图像中的参考样本使用时间预测进行编码的。图像(picture/image)可以称为帧(frame),参考图像可以称为参考帧。空间预测或时间预测会产生表示图像块的预测块。残差数据表示原始图像块与预测块之间的像素差。因此,根据指向构成预测块的参考样本的块的运动矢量和表示编码块与预测块之间的差的残差数据,对经帧间编码块进行编码。经帧内编码块是根据帧内编码模式和所述残差数据进行编码的。为了进一步压缩,残差数据可以从像素域变换到变换域。这些产生可以量化的残差变换系数。量化变换系数最初可以排列为二维阵列。可以扫描量化变换系数,以产生变换系数的一维矢量。熵编码可以用于实现进一步压缩。下文更详细地论述了这些视频压缩技术。
为了确保经编码视频能够被准确地解码,视频根据对应的视频编码标准进行编码和解码。视频编码标准包括国际电信联盟(international telecommunication union,ITU)标准化部门(ITU standardization sector,ITU-T)H.261、国际标准化组织/国际电工委员会(international organization for standardization/internationalelectrotechnical commission,ISO/IEC)运动图像专家组(motion picture expertsgroup,MPEG)-1第2部分、ITU-T H.262或ISO/IEC MPEG-2第2部分、ITU-T H.263、ISO/IECMPEG-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)和多视图视频编码加深度(multiviewvideo coding plus depth,MVC+D)、三维(three dimension,3D)AVC(three dimensionalAVC,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)的视频编码标准。VVC包括在工作草案(working draft,WD)中,该WD包括JVET-O2001-v14。
最新的VVC草案规定了图像时序(picture timing,PT)SEI消息、解码单元信息(decoding unit information,DUI)SEI消息、基于AU的HRD操作(例如,应用于整个AU的HRD操作),以及基于解码单元(decoding unit,DU)的HRD操作(例如,应用于AU中的一个解码单元或图像的HRD操作)。
对层和子层两者进行基于AU的HRD操作所需的图像级编码图像缓冲区(codedpicture buffer,CPB)参数在PT SEI消息中指示。对层进行基于DU的HRD操作所需的图像级CPB参数在PT SEI消息或DUI SEI消息中指示。但是,对子层进行的基于DU的HRD操作所需的图像级CPB参数在PT SEI消息和DUI SEI消息中缺失。
本文公开的技术确保了与对子层进行的基于DU的HRD操作相对应的图像级CPB参数包括在SEI消息中。由于图像级CPB参数包括在SEI消息中,HRD可以使用基于DU的HRD操作来测试码流中的子层的码流符合性,从而确保子层被正确编码和/或可以被正确解码。因此,视频译码中的编码器/解码器(又称为编解码器,codec)相对于现有的编解码器有所改进。实际上,当视频被发送、接收和/或观看时,改进的视频译码过程为用户提供了更好的用户体验。
图1是对视频信号进行译码的示例性操作方法100的流程图。具体地,视频信号是在编码器侧编码的。编码过程通过使用各种机制来压缩视频信号,以减小视频文件大小。文件较小使得压缩视频文件可以发送给用户,同时降低相关带宽开销。然后,解码器对压缩视频文件进行解码,以重建原始视频信号,用于向终端用户显示。解码过程通常与编码过程对应,便于解码器一致地重建视频信号。
在步骤101中,将视频信号输入到编码器中。例如,视频信号可以是存储在存储器中的未压缩视频文件。又例如,视频文件可以由视频捕获设备(例如,摄像机)捕获,并且进行编码以支持视频的直播流传输。视频文件可以包括音频分量和视频分量。视频分量包括一系列图像帧。这些图像帧按顺序观看时,给人以运动的视觉效果。这些帧包括以光表示的像素,在本文中称为亮度分量(或亮度样本),还包括以颜色表示的像素,称为色度分量(或色度样本)。在一些示例中,这些帧还可以包括深度值,以支持三维观看。
在步骤103中,将视频分割成块。分割包括将每一帧中的像素细分成正方形块和/或矩形块进行压缩。例如,在高效视频编码(high efficiency video coding,HEVC)(还称为H.265和MPEG-H第2部分)中,可以先将帧划分成编码树单元(coding tree unit,CTU),这些CTU是预定义大小(例如64×64个像素)的块。这些CTU包括亮度样本和色度样本。编码树可以用于将CTU划分成块,然后重复细分这些块,直到获得支持进一步编码的配置。例如,帧的亮度分量可以被细分,直到各个块包括相对均匀的亮度值。此外,帧的色度分量可以被细分,直到各个块包括相对均匀的色值。因此,分割机制因视频帧的内容而异。
在步骤105中,使用各种压缩机制对在步骤103中分割得到的图像块进行压缩。例如,可以使用帧间预测和/或帧内预测。帧间预测是为了利用一般场景中的对象往往出现在连续帧中这一事实而设计的。因此,描述参考帧中的对象的块不需要在相邻帧中进行重复描述。具体地,一个对象(例如一张桌子)可以在多个帧中保持在固定位置上。因此,该桌子被描述一次,而且相邻帧可以重新参考该参考帧。模式匹配机制可以用于在多个帧上匹配对象。此外,由于对象移动或相机移动等原因,移动对象可以跨多个帧表示。在一个具体示例中,视频可以在多个帧上显示跨屏幕移动的汽车。运动矢量可以用于描述这种移动。运动矢量是一个二维矢量,提供对象在一个帧中的坐标到该对象在参考帧中的坐标的偏移。因此,帧间预测可以将当前帧中的图像块编码为运动矢量集,表示当前帧中的图像块与参考帧中的对应块的偏移。
帧内预测对公共帧中的块进行编码。帧内预测利用亮度分量和色度分量往往聚集在一个帧中这一事实。例如,一棵树某个部分的一片绿色往往与类似的几片绿色相邻。帧内预测使用多种方向性预测模式(例如,HEVC中有33种)、平面模式和直流(direct current,DC)模式。这些方向性模式表示当前块的样本与对应方向上的相邻块的样本相似/相同。平面模式表示一行/列(例如平面)上的一系列块可以根据该行的边缘上的相邻块进行插值。平面模式实际上通过使用变化值的相对恒定的斜率表示光/颜色跨行/列的平稳过渡。DC模式用于边界平滑,并表示块与所有相邻块的样本的平均值相似/相同,这些相邻块与方向性预测模式的角度方向相关。因此,帧内预测块可以将图像块表示为各种关系预测模式值而不是表示为实际值。此外,帧间预测块可以将图像块表示为运动矢量值而不是表示为实际值。在任一种情况下,预测块在一些情况下可能都无法准确表示图像块。所有差值都存储在残差块中。变换可以应用于残差块以进一步压缩文件。
在步骤107中,可以应用各种滤波技术。在HEVC中,滤波器是根据环内滤波方案应用的。上文描述的基于块的预测可能会在解码器侧产生块状图像。此外,基于块的预测方案可以对块进行编码,然后重建经编码块,以便后续用作参考块。环内滤波方案迭代地将噪声抑制滤波器、去块效应滤波器、自适应环路滤波器和样本自适应偏移(sample adaptiveoffset,SAO)滤波器应用于块/帧。这些滤波器减少了块伪影,从而可以准确地重建经编码文件。此外,这些滤波器减少了重建参考块中的伪影,使得伪影不太可能在根据重建参考块编码的后续块中产生其它伪影。
一旦视频信号完成分割、压缩和滤波,则在步骤109中,将所得数据编码到码流中。码流包括上文描述的数据以及支持在解码器侧进行适当的视频信号重建所需要的任何指示数据。例如,这些数据可以包括分割数据、预测数据、残差块和提供译码指令给解码器的各种标志。码流可以存储在存储器中,以便在请求时发送给解码器。码流还可以广播和/或组播到多个解码器。创建码流是一个迭代过程。因此,步骤101、步骤103、步骤105、步骤107和步骤109可以在多个帧和块中连续和/或同时执行。图1所示的顺序是为了清楚和便于描述而呈现的,并非旨在将视频译码过程限制于特定顺序。
在步骤111中,解码器接收码流并开始解码过程。具体地,解码器使用熵解码方案将码流转换为对应的语法数据和视频数据。在步骤111中,解码器使用码流中的语法数据来确定帧的分割部分。分割应该与步骤103中的块分割的结果匹配。下面描述在步骤111中使用的熵编码/解码。编码器在压缩过程中做出许多选择,例如,根据一个或多个输入图像中的值的空间定位从几个可能选择中选择块分割方案。指示确切的选择可能会使用大量的位元(bin)。本文所使用的“位元”是一个作为变量的二进制值(例如,可能因内容而异的比特值)。熵编码使得编码器丢弃任何明显不适合特定情况的选项,从而留后一组可用选项。然后,为每个可用选项分配一个码字。码字的长度取决于可用选项的数量(例如,一个二元符号对应两个选项,两个二元符号对应三到四个选项,以此类推)。然后,编码器对所选选项的码字进行编码。这种方案减小了码字,这是因为码字与预期的一样大,从而唯一地指示从可允许选项的小子集中进行选择,而不是唯一地指示从所有可能选项的可能大集合中进行选择。然后,解码器通过以与编码器类似的方式确定可允许选项集对该选择进行解码。通过确定可允许选项集,解码器可以读取码字并确定编码器做出的选择。
在步骤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的子部分,包括亮度块、一个或多个红色差色度(Cr)块和一个或多个蓝色差色度(Cb)块以及CU的对应语法指令。划分模式可以包括二叉树(binary tree,BT)、三叉树(triple tree,TT)和四叉树(quad tree,QT),它们用于根据所使用的划分模式将节点分别分割成不同形状的2个、3个或4个子节点。将分割后的视频信号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 squaredifference,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),使用深度建模模式(depthmodeling mode,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-adaptivebinary arithmetic coding,SBAC)、概率区间分割熵(probability intervalpartitioning entropy,PIPE)编码或另一熵编码技术来编码。在熵编码之后,可以将经编码码流发送给另一设备(例如,视频解码器)或存档以供后续发送或检索。
图3是示例性视频编码器300的框图。视频编码器300可以用于实现编解码系统200的编码功能和/或实现操作方法100中的步骤101、步骤103、步骤105、步骤107和/或步骤109。编码器300对输入视频信号进行分割,得到分割后的视频信号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。环内滤波器组件325可以包括多个滤波器,如结合环内滤波器组件225所述。然后,将经滤波的块存储在解码图像缓冲区组件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是示例性HRD 500的示意图。HRD 500可用于编码器中,例如编解码系统200和/或编码器300中。HRD 500可以在码流被转发到解码器(例如解码器400)之前检查在方法100的步骤109中创建的码流。在一些示例中,当对码流进行编码时,码流可以不断地通过HRD500转发。如果码流的一部分不符合相关约束条件,则HRD 500会向编码器指示这种不符合情况,从而使编码器使用不同的机制对码流的对应部分进行重新编码。
HRD 500包括假设流调度器(hypothetical stream scheduler,HSS)541。HSS 541是用于执行假设传输机制的组件。假设传输机制用于检查码流或解码器在输入到HRD 500中的码流551的时序和数据流方面的符合性。例如,HSS 541可以接收从编码器输出的码流551,并管理对码流551的符合性测试过程。在特定示例中,HSS 541可以控制编码图像移动通过HRD 500的速率,并验证码流551不包括不符合标准的数据。
HSS 541可以按预定义的速率将码流551转发给CPB 543。HRD 500可以管理解码单元(decoding unit,DU)553中的数据。DU 553是AU或AU的子集以及相关联的非视频编码层(video coding layer,VCL)网络抽象层(network abstraction layer,NAL)单元。具体地,AU包括与输出时间相关联的一个或多个图像。例如,AU可以包括单层码流中的单个图像,并且可以包括多层码流中每个层的图像。AU的每个图像可以被划分为条带,每个条带包括在对应的VCLNAL单元中。因此,DU 553可以包括一个或多个图像、图像的一个或多个条带或其组合。此外,用于解码AU、图像和/或条带的参数可以包括在非VCL NAL单元中。因此,DU 553包括非VCL NAL单元,非VCL NAL单元包括支持解码DU 553中的VCL NAL单元所需的数据。CPB 543是HRD 500中的先入先出缓冲区。CPB 543包括DU 553,DU 553包括按解码顺序的视频数据。CPB 543存储视频数据,以供在码流符合性验证期间使用。
CPB 543将DU 553转发到解码过程组件545。解码过程组件545是符合VVC标准的组件。例如,解码过程组件545可以模拟终端用户使用的解码器400。解码过程组件545以可由示例性终端用户解码器实现的速率对DU 553进行解码。如果解码过程组件545不能足够快地对DU 553进行解码以防止CPB 543溢出,则码流551不符合标准,应对该码流进行重新编码。
解码过程组件545对DU 553进行解码,以创建解码DU 555。解码DU 555包括解码图像。解码DU 555被转发到DPB 547。DPB 547可以基本上类似于解码图像缓冲区组件223、323和/或423。为了支持帧间预测,将经标识以用作从解码DU 555中获得的参考图像556的图像返回到解码过程组件545,以支持进一步解码。DPB 547将解码视频序列输出为一系列图像557。图像557是重建图像,通常与由编码器编码到码流551中的图像是镜像图像。
图像557被转发到输出裁剪(cropping)组件549。输出裁剪组件549用于将符合性裁剪窗口应用于图像557。这样得到输出裁剪图像559。输出裁剪图像559是完全重建图像。因此,输出裁剪图像559模拟终端用户在对码流551进行解码时将看到的内容。因此,编码器可以检查输出裁剪图像559,以确保编码是令人满意的。
根据码流551中的HRD参数初始化HRD 500。例如,HRD 500可以从VPS、SPS和/或SEI消息中读取HRD参数。然后,HRD 500可以根据这些HRD参数中的信息对码流551执行符合性测试操作。在具体示例中,HRD 500可以根据HRD参数确定一个或多个CPB传输机制561。传输机制指定了向和/或从存储器位置(例如CPB和/或DPB)传输视频数据的时序。因此,CPB传输机制561指定了向/从CPB 543传输AU、DU 553和/或图像的时序。需要说明的是,HRD 500可以针对DPB 547使用类似于CPB传输机制561的DPB传输机制。
视频可以被编码到不同的层和/或OLS中,以供具有不同硬件能力级别的解码器以及针对不同的网络条件使用。选择CPB传输机制561以反映这些问题。因此,高层子码流被指定用于最佳硬件和网络条件,因此,高层可以接收在向DPB 547传输DU 553时在CPB 543中使用大量内存但具有短延迟的一个或多个CPB传输机制561。同样,低层子码流被指定用于有限的解码器硬件能力和/或不良的网络条件。因此,低层可以接收在向DPB 547传输DU553时在CPB 543中使用少量内存但具有较长延迟的一个或多个CPB传输机制561。然后,可以根据对应的传输机制561测试OLS、层、子层或其组合,以确保得到的子码流可以在针对子码流预期的条件下被正确解码。CPB传输机制561各自与调度索引(ScIdx)563相关联。ScIdx563是标识传输机制的索引。因此,码流551中的HRD参数可以表示由ScIdx 563标识的CPB传输机制561,并且包括足够的数据,以使HRD 500能够确定CPB传输机制561,并将CPB传输机制561与对应的OLS、层,和/或子层相关联。
图6是用于层间预测621的示例性多层视频序列600的示意图。例如根据方法100,多层视频序列600可以由编码器(例如编解码系统200和/或编码器300)编码,并由解码器(例如编解码系统200和/或解码器400)解码。此外,多层视频序列600可以由HRD(例如HRD500)检查标准符合性。包括多层视频序列600以描述编码视频序列中的层的示例性应用。多层视频序列600是使用多个层(例如层N 631和层N+1 632)的任何视频序列。
在一个示例中,多层视频序列600可以使用层间预测621。层间预测621应用于不同层中的图像611、612、613和614与图像615、616、617和618之间。在所示的示例中,图像611、612、613和614是层N+1 632的一部分,图像615、616、617和618是层N 631的一部分。层(例如层N 631和/或层N+1 632)是一组图像,这些图像都与类似的特性值(例如类似的大小、质量、分辨率、信噪比、能力等)相关联。层可以正式定义为VCL NAL单元和相关联的非VCL NAL单元的集合。VCL NAL单元是编码为包括视频数据的NAL单元,视频数据例如图像的编码条带。非VCL NAL单元是包括非视频数据的NAL单元,非视频数据例如支持解码视频数据、执行符合性检查或其它操作的语法和/或参数。
在示例性图示中,层N+1 632与比层N 631更大的图像大小相关联。因此,在本示例中,层N+1 632中的图像611、612、613和614的图像大小比层N 631中的图像615、616、617和618的图像大小大(例如,高度和宽度更大,因此样本更多)。但是,这些图像可以通过其它特性划分为层N+1 632和层N 631。虽然仅示出两个层:层N+1 632和层N 631,但一组图像可以根据相关联的特性划分为任意数量的层。层N+1 632和层N 631也可以用层ID表示。层ID是与图像相关联的数据项,并表示图像是所指示层的一部分。因此,图像611至618中的每个图像可以与对应的层ID相关联,以表示层N+1 632或层N 631中的哪个层包括对应的图像。例如,层ID可以包括NAL单元头层标识符(nuh_layer_id),该NAL单元头层标识符是一个语法元素,表示包括NAL单元(例如,包括层中图像的条带和/或参数)的层的标识符。与较低质量/码流大小相关联的层(例如层N 631)通常被分配低层ID,并被称为低层。此外,与较高质量/码流大小相关联的层(例如层N+1 632)通常被分配高层ID,并被称为高层。
不同层631和632中的图像611至618用于交替显示。因此,只要图像包括在同一AU中,不同层631至632中的图像就可以共享时间ID 622。时间ID 622是一个数据元素,表示数据对应于视频序列中的时间位置。AU可以是根据指定的分类规则彼此相关联并且与一个特定输出时间相关的NAL单元集合。例如,当图像与相同的时间ID 622相关联时,AU可以包括不同层中的一个或多个图像,例如图像611和图像615。在具体示例中,如果需要较小的图像,则解码器可以在当前显示时间解码并显示图像615,或者如果需要较大的图像,则解码器可以在当前显示时间解码并显示图像611。因此,高层N+1 632中的图像611至614包括与低层N 631中的对应图像615至618包括基本上相同的图像数据(尽管图像大小不同)。具体地,图像611与图像615包括基本上相同的图像数据,图像612与图像616包括基本上相同的图像数据,以此类推。
图像611至618可以参考同一层N 631或N+1 632中的其它图像611至618进行译码。参考同一层中的另一个图像对图像进行译码会产生帧间预测623。帧间预测623由实线箭头表示。例如,图像613可以通过将层N+1 632中的图像611、612和/或614中的一个或两个图像作为参考的帧间预测623来译码,其中,单向帧间预测使用一个图像作为参考,和/或双向帧间预测使用两个图像作为参考。此外,图像617可以通过将层N 631中的图像615、616和/或618中的一个或两个图像作为参考的帧间预测623来译码,其中,单向帧间预测使用一个图像作为参考,和/或双向帧间预测使用两个图像作为参考。当在执行帧间预测623时,将一个图像作为同一层中另一个图像的参考时,该图像可以被称为参考图像。例如,图像612可以是用于根据帧间预测623对图像613进行译码的参考图像。在多层上下文中,帧间预测623也可以被称为层内预测。因此,帧间预测623是通过参考与当前图像不同的参考图像中的指示样本对当前图像的样本进行译码的机制,其中,参考图像和当前图像位于同一层中。
图像611至618也可以通过参考不同层中的其它图像611至618进行译码。这个过程称为层间预测621,由虚线箭头表示。层间预测621是通过参考一个参考图像中的指示样本对当前图像的样本进行译码的机制,其中,当前图像和参考图像在不同的层中,因此具有不同的层ID。例如,低层N 631中的图像可以作为对高层N+1 632中的对应图像进行译码的参考图像。在具体示例中,图像611可以根据层间预测621通过参考图像615进行译码。在这种情况下,图像615被用作层间参考图像。层间参考图像是用于层间预测621的参考图像。在大多数情况下,对层间预测621进行了约束,使得当前图像(例如,图像611)只能使用同一AU中包括的且位于低层的一个或多个层间参考图像,例如,图像615。当多个层(例如,多于两个层)可用时,层间预测621可以根据层级比当前图像低的多个层间参考图像对当前图像进行编码/解码。
视频编码器可以使用多层视频序列600来通过帧间预测623和层间预测621的许多不同组合和/或排列对图像611至618进行编码。例如,图像615可以根据帧内预测进行译码。然后,通过将图像615作为参考图像,图像616至618可以根据帧间预测623进行译码。此外,通过将图像615作为层间参考图像,图像611可以根据层间预测621进行译码。然后,通过将图像611作为参考图像,图像612至614可以根据帧间预测623进行译码。因此,参考图像可以作为不同译码机制的单层参考图像和层间参考图像。通过根据低层N 631图像对高层N+1632图像进行译码,高层N+1 632可以避免使用帧内预测,帧内预测的译码效率比帧间预测623和层间预测621的译码效率低得多。因此,译码效率低的帧内预测只限于最小/最低质量的图像,因此只限于对最少量的视频数据进行译码。用作参考图像和/或层间参考图像的图像可以在参考图像列表结构中包括的一个或多个参考图像列表的条目中指示。
为了执行这类操作,层(例如层N 631和层N+1 632)可以包括在OLS 625中。OLS625是层集合,其中,一个或多个层被指定为输出层。输出层是指定用于输出(例如,输出到显示器)的层。例如,层N 631可以仅被包括用于支持层间预测621,并且可能永远不会被输出。在这种情况下,N+1 632基于层N 631进行解码层并输出。在这种情况下,OLS 625包括层N+1 632作为输出层。当OLS 625仅包括输出层时,OLS 625被称为第0个OLS。第0个OLS是仅包括最低层(具有最低层标识符的层),因此仅包括输出层的OLS。在其它情况下,OLS 625可以包括许多不同组合的层。例如,OLS 625中的输出层可以根据基于一个、两个或多个低层的层间预测621进行译码。此外,OLS 625可以包括多于一个输出层。因此,OLS 625可以包括一个或多个输出层和重建输出层所需的任何支持层。多层视频序列600可以通过使用许多不同的OLS 625来译码,其中,每个OLS 625使用不同组合的层。OLS 625各自与OLS索引629相关联,OLS索引629是唯一标识对应OLS 625的索引。
根据层631至632和OLS 625的数量,在HRD 500处检查多层视频序列600的标准符合性可能变得复杂。HRD 500可以将多层视频序列600分离成一系列操作点627进行测试。操作点627是由OLS索引629和最高时间ID 622标识的OLS 625的时间子集。在具体示例中,第一操作点627可以包括第一OLS 625中从时间ID 0到时间ID 200的所有图像,第二操作点627可以包括第一OLS 625中从时间ID 201到时间ID 400的所有图像,等等。在指定时刻被选择用于测试的操作点627被称为被测OP(targetOp)。因此,targetOp是被选择用于在HRD500处进行符合性测试的操作点627。
图7是用于实现时间可适性的示例性多层视频序列700的示意图。例如根据方法100,多层视频序列700可以由编码器(例如编解码系统200和/或编码器300)编码,并由解码器(例如编解码系统200和/或解码器400)解码。此外,多层视频序列700可以由HRD(例如HRD500)检查标准符合性。包括多层视频序列700以描述编码视频序列中的层的另一个示例性应用。例如,多层视频序列700可以用作单独的实施例,或者可以与关于多层视频序列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包括也与子层720和710的图像721和711在时间上偏移的图像731。因此,子层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被选择为输出层。因此,时间可适性是可以使用多层机制实现的几种机制之一。
图8是示例性码流800的示意图。例如,码流800可以由编解码系统200和/或编码器300生成,以供编解码系统200和/或解码器400根据方法100进行解码。此外,码流800可以包括多层视频序列600和/或700。此外,码流800可以包括用于控制HRD(例如HRD 500)的操作的各种参数。基于这些参数,HRD可以在向解码器传输码流800用于解码之前检查码流800的标准符合性。
码流800包括VPS 811、一个或多个SPS 813、多个图像参数集(picture parameterset,PPS)815、多个条带头817、图像数据820、BP SEI消息819、PT SEI消息818和DUI SEI消息816。VPS 811包括与整个码流800相关的数据。例如,VPS 811可以包括码流800中使用的数据相关的OLS、层和/或子层。SPS 813包括码流800中包括的编码视频序列中的所有图像共有的序列数据。例如,每个层可以包括一个或多个编码视频序列,并且每个编码视频序列可以参考SPS 813以获取对应的参数。SPS 813中的参数可以包括图像大小、位深度、编码工具参数、码率限制等。需要说明的是,虽然每个序列参考SPS 813,但是在一些示例中,单个SPS 813可以包括用于多个序列的数据。PPS 815包括应用于整个图像的参数。因此,视频序列中的每个图像可以参考PPS 815。需要说明的是,虽然每个图像参考PPS 815,但是在一些示例中,单个PPS 815可以包括用于多个图像的数据。例如,可以根据类似的参数对多个类似的图像进行译码。在这种情况下,单个PPS 815可以包括用于这些类似图像的数据。PPS815可以表示可用于对应图像中的条带的编码工具、量化参数、偏移等。
条带头817包括图像中每个条带的特定参数。因此,视频序列中的每个条带可以有一个条带头817。条带头817可以包括条带类型信息、POC、参考图像列表、预测权重、分块入口点、去块效应滤波参数等。需要说明的是,在一些示例中,码流800还可以包括图像头,图像头是一个语法结构,包括应用于单个图像中所有条带的参数。因此,图像头和条带头817可以在某些上下文中互换使用。例如,某些参数可以在条带头817与图像头之间移动,这取决于这些参数是否对图像中的所有条带是共有的。
图像数据820包括根据帧间预测和/或帧内预测编码的视频数据以及对应的经变换和量化的残差数据。例如,图像数据820可以包括AU 821、DU 822和/或图像823。AU 821是根据指定的分类规则彼此相关联并且与一个特定输出时间相关的NAL单元集合。DU 822是AU或AU的子集以及相关联的非VCL NAL单元。图像823是创建帧或帧场的亮度样本的阵列和/或色度样本的阵列。简单来说,AU 821包括可以在视频序列中指定时刻显示的各种视频数据以及支持语法数据。因此,AU 821可以包括单层码流中的单个图像823或来自多个层中与多层码流中的同一时刻相关联的多个图像。同时,图像823是编码图像,可以被输出以用于显示或用于支持一个或多个其它图像823的编码以用于输出。DU 822可以包括一个或多个图像823和解码所需的任何支持语法数据。例如,DU 822和AU 821可以在简单的码流(例如,当AU包括单个图像时)中互换使用。但是,在更复杂的多层码流(例如,包括多层视频序列600的码流)中,DU 822可以仅包括来自AU 821的视频数据的一部分。例如,AU 821可以在一些图像823与不同的OLS相关联的几个层(例如,层631、632)和/或子层(例如,子层710、720、730)处包括图像823。在这种情况下,DU 822可以仅包括来自指定OLS和/或指定层/子层的一个或多个图像823。
图像823包括一个或多个条带825。条带825可以被定义为图像823的独占地包括在单个NAL单元829中的整数个完整分块或整数个连续完整的编码树单元(coding treeunit,CTU)行(例如,在一个分块内)。条带825被进一步划分为CTU和/或编码树块(codingtree block,CTB)。CTU是一组预定义大小的样本,可以通过编码树进行分割。CTB是CTU的子集,并且包括CTU的亮度分量或色度分量。CTU/CTB根据编码树被进一步划分为编码块。然后可以根据预测机制对编码块进行编码/解码。
码流800是NAL单元829的序列。NAL单元829是视频数据和/或支持语法的容器。NAL单元829可以是VCL NAL单元或非VCL NAL单元。VCL NAL单元是编码为包括视频数据(例如编码条带825和相关联的条带头817)的NAL单元829。非VCL NAL单元是包括非视频数据的NAL单元829,非视频数据例如支持解码视频数据、执行符合性检查或其它操作的语法和/或参数。例如,非VCL NAL单元可以包括VPS 811、SPS 813、PPS 815、BP SEI消息819、PT SEI消息818、DUI SEI消息816,或其它支持语法。
码流800可以包括支持HRD(例如HRD 500)的符合性测试的一个或多个SEI消息。SEI消息是一种语法结构,具有传达解码过程不需要的信息的指定语义,以便确定解码图像中的样本的值。例如,SEI消息可以包括支持HRD过程的数据或与在解码器处解码码流800不直接相关的其它支持数据。例如,码流800可以包括BP SEI消息819、PT SEI消息818和DUISEI消息816。
BP SEI消息819是一种SEI消息,包括用于初始化HRD以管理CPB的HRD参数870。例如,BP SEI消息819可以包括描述CPB传输机制(例如CPB传输机制561)的数据,该数据可以在对码流800执行符合性测试时使用。传输机制可以由描述传输机制的时序(例如,删除数据的频率)和描述待传输的数据量(例如,每次传输时要删除的数据量)的一对值来描述。BPSEI消息819指示应该作为符合性检查的起点的AU或DU(例如,AU 821或DU 822)和指示用于每个数据单元的默认机制的数据对。在具体示例中,BP SEI消息819可以包括初始CPB删除延迟837和初始CPB删除偏移839。初始CPB删除延迟837是码流、OLS和/或层中每个图像、AU和/或DU的默认CPB删除延迟。初始CPB删除偏移839是与码流、OLS和/或层中的每个图像、AU和/或DU相关联的默认CPB删除偏移。通过使用初始CPB删除延迟837和初始CPB删除偏移839对,HRD可以确定在符合性测试期间从CPB删除数据单元(AU或DU)时使用的CPB传输机制。
在一个实施例中,BP SEI消息819包括在BP SEI消息819中指示初始CPB删除延迟837和初始CPB删除偏移839的时间子层的最大数量841。时间子层的最大数量841表示为bp_max_sublayers_minus1。bp_max_sublayers_minus1的值应在0到VPS 811中指定的子层的最大数量843(表示为vps_max_sublayers_minus1)的范围内,包括端值。vps_max_sublayers_minus1加1表示VPS 811指定的层中可以存在的时间子层的最大数量。vps_max_sublayers_minus1的值应在0到6的范围内,包括端值。
PT SEI消息818是一种SEI消息,包括用于管理CPB和/或DPB处的AU的传输信息的HRD参数880(又称为图像级CPB参数)。例如,PT SEI消息818可以包括用于对对应的AU执行HRD符合性测试的附加参数。在具体示例中,PT SEI消息818可以包括CPB删除延迟835和DPB输出延迟833。CPB删除延迟835是对应的当前AU在删除并输出到DPB之前可以保留在CPB中的时间段。例如,CPB删除延迟835可用于计算删除当前AU与删除按解码顺序的前一AU之间的时钟计时周期数,其中,前一AU与BP SEI消息819相关联。因此,CPB删除延迟835表示当前AU的删除延迟不同于BP SEI消息819中的初始CPB删除延迟837所描述的默认删除延迟。此外,CPB删除延迟835包括当前AU的删除延迟与默认值的差值。DPB输出延迟833是描述对应的AU在输出之前可以保留在DPB中的时间段的信息。具体地,DPB输出延迟833可以用于确定来自DPB的图像的输出时间,因此可以确定图像/AU在从CPB中删除后可以保留在DPB中的时间量。HRD处的输出时间与在解码器处显示的图像的预期输出相符合。
在一个实施例中,PT SEI消息818包括公共CPB删除延迟增量845,表示为pt_du_common_cpb_removal_delay_increment_minus1。当Htid等于i,其中,Htid标识待解码的最高时间子层时,公共CPB删除延迟增量845加1表示与图像时序SEI消息818相关联的AU(例如,AU 821)中按解码顺序的任意两个连续DU(例如,DU 822)的标称CPB删除时间之间的持续时间,以时钟子计时周期为单位。该值还用于计算解码单元数据到达假设流调度器(hypothetical stream scheduler,HSS)的CPB的最早可能时间。该语法元素的长度为du_cpb_removal_delay_increment_length_minus1+1位。
在一个实施例中,PT SEI消息818包括解码单元的数量847,表示为pt_num_decoding_units_minus1。解码单元的数量847加1表示与图像时序SEI消息818相关联的AU(例如,AU 821)中的DU(例如,DU 822)的数量。num_decoding_units_minus1的值应在0到PicSizeInCtbsY-1的范围内,包括端值。在一个实施例中,PicSizeInCtbsY语法元素表示以CTB测量的图像的大小(例如,以CTB测量的图像的宽度×以CTB测量的图像的高度)。
在一个实施例中,PT SEI消息818包括与PT SEI消息818相关联的AU的第i个DU中的NAL单元的数量849。NAL单元的数量849表示为pt_num_nalus_in_du_minus1[i]。pt_num_nalus_in_du_minus1[i]的值应在0到PicSizeInCtbsY-1的范围内,包括端值。
在一个实施例中,PT SEI消息818包括公共CPB删除延迟标志851,表示为pt_du_common_cpb_removal_delay_flag。公共CPB删除延迟标志851等于1表示语法元素公共CPB删除延迟增量845(表示为pt_du_common_cpb_removal_delay_increment_minus1[i])在PTSEI消息818中存在。DU公共CPB删除延迟标志851等于0表示语法元素公共CPB删除延迟增量845不存在。当公共CPB删除延迟标志851在PT SEI消息818中不存在时,公共CPB删除延迟标志851被推断为等于0。
在一个实施例中,AU的第一个DU是AU中按解码顺序的前pt_num_nalus_in_du_minus1[0]+1个连续NAL单元。AU的第i个(i大于0)DU是紧接在AU的前一DU(按解码顺序)中的最后一个NAL单元之后的pt_num_nalus_in_du_minus1[i]+1个连续NAL单元。在一个实施例中,每个DU中至少有一个VCL NAL单元,并且与VCL NAL单元相关联的所有非VCL NAL单元都包括在与VCLNAL单元相同的DU中。
在一个实施例中,PT SEI消息818包括CPB删除延迟增量853,表示为pt_du_cpb_removal_delay_increment_minus1。当Htid等于j时,CPB删除延迟增量853加1表示与PTSEI消息818相关联的AU中按解码顺序的第(i+1)个DU的标称CPB删除时间与第i个DU的标称CPB删除时间之间的持续时间,以时钟子计时周期为单位。该值还用于计算DU数据到达HSS的CPB的最早可能时间。该语法元素的长度为bp_du_cpb_removal_delay_increment_length_minus1+1位。
在一个实施例中,PT SEI消息818包括子层的最大数量843,而非VPS 811,或者除了VPS 811之外还包括子层的最大数量843。
DUI SEI消息816是一种SEI消息,包括用于管理CPB和/或DPB处的DU的传输信息的HRD参数890(又称为图像级CPB参数)。例如,DUI SEI消息816可以包括用于对对应的DU执行HRD符合性测试的附加参数。如上所述,AU可以包括一个或多个DU。因此,用于检查DU的信息可以与用于检查AU的信息不同。在具体示例中,DUI SEI消息816可以包括CPB删除延迟信息831。CPB删除延迟信息831是与从CPB中删除对应的DU相关的信息。例如,CPB删除延迟信息831可以用于计算删除当前DU与删除按解码顺序的前一DU之间的时钟计时周期数。
在一个实施例中,DUI SEI消息816包括在BP SEI消息819中指示初始CPB删除延迟837和初始CPB删除偏移839的时间子层的最大数量841。时间子层的最大数量841表示为bp_max_sublayers_minus1。bp_max_sublayers_minus1的值应在0到VPS 811中指定的子层的最大数量843(表示为vps_max_sublayers_minus1)的范围内,包括端值。vps_max_sublayers_minus1加1表示VPS 811指定的层中可以存在的时间子层的最大数量。vps_max_sublayers_minus1的值应在0到6的范围内,包括端值。
在一个实施例中,DUI SEI消息816包括子层的最大数量843,而非VPS 811,或者除了VPS 811之外还包括子层的最大数量843。
如通过前面的描述可以理解,BP SEI消息819、PT SEI消息818和DUI SEI消息816包括大量的信息。在一个实施例中,PT SEI消息818和/或DUI SEI消息816中的HRD参数880和/或890(又称为图像级CPB参数)用于对子层执行基于DU的HRD操作,以测试码流符合性。
例如,对于每个层,HRD确定是否超过PT SEI消息818和/或DUI SEI消息816中指定的、与图像时序SEI消息相关联的接入单元中按解码顺序的任意两个连续解码单元的标称CPB删除时间之间的持续时间。当超过持续时间时,码流不符合,并且具有修改的CPB参数的新码流生成并通过编码器进行测试。该过程可以重复,直到不超过持续时间,这意味着码流符合标准(例如,VVC标准)。
对于每个层,HRD还可以确定是否超过PT SEI消息818和/或DUI SEI消息816中指定的、与图像时序SEI消息相关联的接入单元中按解码顺序的第(i+1)个解码单元的标称CPB删除时间与第i个解码单元的标称CPB删除时间之间的持续时间。当超过持续时间时,码流不符合,并且具有修改的CPB参数的新码流生成并通过编码器进行测试。该过程可以重复,直到不超过持续时间,这意味着码流符合标准(例如,VVC标准)。
在获得符合性码流后,该码流可以被存储并发送给解码器。在一个实施例中,BPSEI消息819、PT SEI消息818和DUI SEI消息816仍然包括在码流中,即使解码器可能不会使用该信息来解码包括在码流中的任何图像。
以下语法和语义提供了HRD使用基于DU的HRD操作来测试码流中的子层的码流符合性的示例性实现方式。
图像时序SEI消息语法如下。
图像时序SEI消息语义的示例如下。
图像时序SEI消息为与SEI消息相关联的接入单元提供CPB删除延迟和DPB输出延迟信息。
num_decoding_units_minus1加1表示与图像时序SEI消息相关联的接入单元中的解码单元的数量。num_decoding_units_minus1的值应在0到PicSizeInCtbsY-1的范围内,包括端值。
du_common_cpb_removal_delay_flag等于1表示语法元素du_common_cpb_removal_delay_increment_minus1[i]存在。du_common_cpb_removal_delay_flag等于0表示语法元素du_common_cpb_removal_delay_increment_minus1[i]不存在。
当Htid等于i时,du_common_cpb_removal_delay_increment_minus1[i]加1表示与图像时序SEI消息相关联的接入单元中按解码顺序的任意两个连续解码单元的标称CPB删除时间之间的持续时间,以时钟子计时周期为单位(参见第C.1条)。该值还用于计算解码单元数据到达HSS的CPB的最早可能时间,如VVC标准的附录C中规定。该语法元素的长度为du_cpb_removal_delay_increment_length_minus1+1位。
num_nalus_in_du_minus1[i]加1表示与图像时序SEI消息相关联的接入单元的第i个解码单元中的NAL单元的数量。num_nalus_in_du_minus1[i]的值应在0到PicSizeInCtbsY-1的范围内,包括端值。
接入单元的第一个解码单元由接入单元中按解码顺序的前num_nalus_in_du_minus1[0]+1个连续NAL单元组成。接入单元的第i个(i大于0)解码单元由紧接在接入单元的前一解码单元(按解码顺序)中的最后一个NAL单元之后的num_nalus_in_du_minus1[i]+1个连续NAL单元组成。每个解码单元中至少应有一个VCL NAL单元。与VCL NAL单元相关联的所有非VCL NAL单元应包括在与VCL NAL单元相同的解码单元中。
当Htid等于j时,du_cpb_removal_delay_increment_minus1[i][j]加1表示与图像时序SEI消息相关联的接入单元中按解码顺序的第(i+1)个解码单元的标称CPB删除时间与第i个解码单元的标称CPB删除时间之间的持续时间,以时钟子计时周期为单位。该值还用于计算解码单元数据到达HSS的CPB的最早可能时间,如VVC标准的附录C中规定。该语法元素的长度为du_cpb_removal_delay_increment_length_minus1+1位。
示例性解码单元信息SEI消息语法如下。
图像时序SEI消息语义的示例如下。
解码单元信息SEI消息为与SEI消息相关联的解码单元提供CPB删除延迟信息。
以下适用于解码单元信息SEI消息语法和语义。
-语法元素decoding_unit_hrd_params_present_flag、decoding_unit_cpb_params_in_pic_timing_sei_flag和dpb_output_delay_du_length_minus1以及变量CpbDpbDelaysPresentFlag在general_hrd_parameters()语法结构中的语法元素中提供或从general_hrd_parameters()
语法结构中的语法元素推导,该语法结构适用于解码单元信息SEI消息应用于的至少一个操作点。
-码流(或其部分)是指与解码单元信息SEI消息应用于的任何操作点相关联的码流子集(或其部分)。
操作点的解码单元信息SEI消息的存在如下指定。
-如果CpbDpbDelaysPresentFlag等于1,decoding_unit_hrd_params_present_flag等于1,并且decoding_unit_cpb_params_in_pic_timing_sei_flag等于0,则适用于操作点的一个或多个解码单元信息SEI消息应与CVS中的每个解码单元相关联。
一否则,如果CpbDpbDelaysPresentFlag等于1,decoding_unit_hrd_params_present_flag等于1,并且decoding_unit_cpb_params_in_pic_timing_sei_flag等于1,则适用于操作点的一个或多个解码单元信息SEI消息可以或可以不与CVS中的每个解码单元相关联。
-否则(CpbDpbDelaysPresentFlag等于0或decoding_unit_hrd_params_present_flag等于0),在CVS中,不应存在与适用于操作点的解码单元信息SEI消息相关联的解码单元。
与解码单元信息SEI消息相关联的NAL单元集合按解码顺序由包括解码单元信息SEI消息的SEI NAL单元和接入单元中直到(但不包括)包括具有不同decoding_unit_idx值的解码单元信息SEI消息的任何后续SEI NAL单元的所有后续NAL单元组成。每个解码单元应包括至少一个VCL NAL单元。与VCL NAL单元相关联的所有非VCL NAL单元应包括在包括VCLNAL单元的解码单元中。
解码单元信息SEI消息语法中的TemporalId是包括解码单元信息SEI消息的SEINAL单元的TemporalId。
decoding_unit_idx表示与解码单元信息SEI消息相关联的解码单元的、当前接入单元中解码单元列表的从0开始的索引。decoding_unit_idx的值应在0到PicSizeInCtbsY-1的范围内,包括端值。
由duIdx的特定值标识的解码单元包括并且仅包括与decoding_unit_idx等于duIdx的所有解码单元信息SEI消息相关联的所有NAL单元。这种解码单元也被称为与decoding_unit_idx等于duIdx的解码单元信息SEI消息相关联。
对于一个接入单元中decoding_unit_idx分别等于duIdxA和duIdxB的任意两个解码单元duA和duB,其中,duIdxA小于duIdxB,duA按解码顺序应在duB之前。
一个解码单元的NAL单元按解码顺序不应存在于另一个解码单元的任何两个NAL单元之间。
dui_max_sub_layers_minus1加1表示解码单元信息SEI消息中包括CPB删除延迟信息的最高子层表示的TemporalId。dui_max_sub_layers_minus1的值应在0到vps_max_sub_layers_minus1的范围内,包括端值。
当Htid等于i时,du_spt_cpb_removal_delay_increment[i]表示当前接入单元中按解码顺序的最后一个解码单元的标称CPB时间与和解码单元信息SEI消息相关联的解码单元的标称CPB时间之间的持续时间,以时钟子计时周期为单位。该值还用于计算解码单元数据到达HSS的CPB的最早可能时间,如附录C中规定。该语法元素的长度为du_cpb_removal_delay_increment_length_minus1+1。当与解码单元信息SEI消息相关联的解码单元是当前接入单元中的最后一个解码单元时,du_spt_cpb_removal_delay_increment[i]的值应等于0。
dpb_output_du_delay_present_flag等于1表示解码单元信息SEI消息中存在pic_spt_dpb_output_du_delay语法元素。dpb_output_du_delay_present_flag等于0表示解码单元信息SEI消息中不存在pic_spt_dpb_output_du_delay语法元素。
当DecodingUnitHrdFlag等于1时,pic_spt_dpb_output_du_delay用于计算图像的DPB输出时间。该语法元素表示在从CPB中删除接入单元中的最后一个解码单元之后,在从DPB输出解码图像之前等待的子时钟计时周期数。当pic_spt_dpb_output_du_delay不存在时,pic_spt_dpb_output_du_delay的值被推断为等于pic_dpb_output_du_delay。语法元素pic_spt_dpb_output_du_delay的长度由dpb_output_delay_du_length_minus1+1提供,单位为位。
码流符合性的要求是,与同一接入单元相关联、应用于同一操作点并且dpb_output_du_delay_present_flag等于1的所有解码单元信息SEI消息都应具有相同的pic_spt_dpb_output_du_delay值。
从输出时序符合性解码器输出的任何图像的pic_spt_dpb_output_du_delay推导的输出时间按解码顺序应在从任何后续CVS中的所有图像的pic_spt_dpb_output_du_delay推导的输出时间之前。
由该语法元素的值建立的图像输出顺序应与由PicOrderCntVal的值建立的顺序相同。
对于不是通过“碰撞”过程输出的图像,由于它们按解码顺序在no_output_of_prior_pics_flag等于1或被推断为等于1的CLVSS图像之前,因此从pic_spt_dpb_output_du_delay推断的输出时间应随同一CVS内的所有图像的PicOrderCntVal的值的增大而增加。
对于CVS中的任何两个图像,当DecodingUnitHrdFlag等于1时两个图像的输出时间的差值应与当DecodingUnitHrdFlag等于0时两个图像的输出时间的差值相同。
图9是由视频解码器(例如,视频解码器400)实现的解码方法900的实施例。方法900可以在从视频编码器(例如,视频编码器300)直接或间接接收到码流之后执行。方法900确保用于对子层执行基于DU的HRD操作的图像级编码图像缓冲区(coded picture buffer,CPB)参数包括在补充增强信息(supplemental enhancement information,SEI)消息中,从而改进了解码过程。由于图像级CPB参数包括在SEI消息中,HRD可以使用基于DU的HRD操作来测试码流中的子层的码流符合性,从而确保子层被正确编码和/或可以被正确解码。因此,视频译码中的编码器/解码器(又称为编解码器,codec)相对于现有的编解码器有所改进。实际上,当视频被发送、接收和/或观看时,改进的视频译码过程为用户提供了更好的用户体验。
在框902中,视频解码器接收包括编码图像和SEI消息的码流。SEI消息包括用于对子层(例如,子层710、720、730)执行基于DU的HRD操作的CPB参数(例如,HRD参数880和/或890,称为图像级CPB参数)。对应于DU(例如,DU 822)的基于DU的HRD操作与对应于AU(例如,AU 821)的基于AU的HRD操作不同。如上所述,基于DU的HRD操作由HRD(例如,HRD 500)实现,以用于测试包括多层视频序列600和/或多层视频序列700的码流(例如,码流800)的码流符合性。
在一个实施例中,CPB参数表示两个解码单元的CPB删除时间之间的持续时间。在一个实施例中,SEI消息是图像时序(picture timing,PT)SEI消息。在一个实施例中,CPB参数包括与PT SEI消息相关联的AU的公共CPB删除延迟和CPB删除延迟。
在一个实施例中,SEI消息是PT SEI消息,该PT SEI消息表示与PT SEI消息相关联的AU中的解码单元的数量。在一个实施例中,SEI消息是PT SEI消息,该PT SEI消息表示与PT SEI消息相关联的AU的DU中的NAL单元的数量。如本文所使用,最高子层是离基本层(例如,子层730)最远的增强层(例如,子层710)。
在一个实施例中,SEI消息是解码单元信息(decoding unit information,DUI)SEI消息,该DUI SEI消息提供包括DUI SEI消息的SEI NAL单元的时间ID。在一个实施例中,时间ID表示DUI SEI消息中包括CPB删除延迟信息的最高子层。
在框904中,视频解码器对来自码流的编码图像进行解码,以获得解码图像。此后,解码图像可以用于生成或产生图像或视频序列,以在电子设备(例如,智能手机、平板电脑、笔记本电脑、个人计算机等)的显示器或屏幕上显示给用户。在一个实施例中,PT SEI消息818和/或DUI SEI消息816中包括的图像级CPB参数不用于解码编码图像。
图10是对视频编码器(例如,视频编码器300)实现的视频码流进行编码的方法1000的实施例。方法1000可以在(例如,视频中的)图像要编码在视频码流中并接着向视频解码器(例如,视频解码器400)发送时执行。方法1000确保用于对子层执行基于DU的HRD操作的图像级编码图像缓冲区(coded picture buffer,CPB)参数包括在补充增强信息(supplemental enhancement information,SEI)消息中,从而改进了编码过程。由于图像级CPB参数包括在SEI消息中,HRD可以使用基于DU的HRD操作来测试码流中的子层的码流符合性,从而确保子层被正确编码和/或可以被正确解码。因此,视频译码中的编码器/解码器(又称为编解码器,codec)相对于现有的编解码器有所改进。实际上,当视频被发送、接收和/或观看时,改进的视频译码过程为用户提供了更好的用户体验。
在框1002中,视频编码器生成包括编码图像和SEI消息的码流。SEI消息包括用于对子层(例如,子层710、720、730)执行基于DU的HRD操作的CPB参数(例如,HRD参数880和/或890,称为图像级CPB参数)。对应于DU(例如,DU 822)的基于DU的HRD操作与对应于AU(例如,AU 821)的基于AU的HRD操作不同。如上所述,基于DU的HRD操作由HRD(例如,HRD 500)实现,以用于测试包括多层视频序列600和/或多层视频序列700的码流(例如,码流800)的码流符合性。
在一个实施例中,CPB参数表示两个解码单元的CPB删除时间之间的持续时间。在一个实施例中,SEI消息是图像时序(picture timing,PT)SEI消息。在一个实施例中,CPB参数包括与PT SEI消息相关联的接入单元(access unit,AU)的公共CPB删除延迟和CPB删除延迟。在一个实施例中,PT SEI消息表示与PT SEI消息相关联的AU中的解码单元的数量和与PT SEI消息相关联的AU的解码单元(decoding unit,DU)中的网络抽象层(networkabstraction layer,NAL)单元的数量。
在一个实施例中,SEI消息是解码单元信息(decoding unit information,DUI)SEI消息,该DUI SEI消息提供包括DUI SEI消息的SEI NAL单元的时间标识符(identifier,ID)。在一个实施例中,DUI SEI消息表示DUI SEI消息中包括CPB删除延迟信息的最高子层的时间标识符(identifier,ID)。
在框1004中,视频编码器使用CPB参数对子层执行基于DU的HRD操作,以确定码流是否是符合的。
在一个实施例中,当不超过CPB删除时间之间的持续时间时,码流是符合的。
在框1006中,当根据基于DU的HRD操作的执行,码流是符合的时,视频编码器存储码流,以发送给视频解码器。码流可以存储在存储器中,直到码流被发送给视频解码器。视频解码器接收到经编码码流之后,就可以进行解码(例如,如上所述),以生成或产生图像或视频序列,在电子设备(例如,智能手机、平板电脑、笔记本电脑、个人计算机等)的显示器或屏幕上显示给用户。
图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)以及数字信号处理器(digital signal processor,DSP)。处理器1130与入端口1110、接收单元1120、发送单元1140、出端口1150和存储器1160通信。处理器1130包括译码模块1170。译码模块1170实现上文描述的公开实施例。例如,译码模块1170实现、处理、准备或提供各种编解码功能。因此,将译码模块1170包括在内为视频译码设备1100的功能提供了实质性的改进,并且影响了视频译码设备1100到不同状态的转换。可选地,以存储在存储器1160中并由处理器1130执行的指令来实现译码模块1170。
视频译码设备1100还可以包括输入和/或输出(input/output,I/O)设备1180,用于与用户进行数据通信。I/O设备1180可以包括输出设备,如用于显示视频数据的显示器、用于输出音频数据的扬声器等。I/O设备1180还可以包括输入设备,如键盘、鼠标、轨迹球等,和/或用于与此类输出设备交互的对应接口。
存储器1160包括一个或多个磁盘、磁带机和固态硬盘,可以用作溢出数据存储设备,用于在选择执行程序时存储此类程序,并且存储在程序执行过程中读取的指令和数据。例如,存储器1160可以是易失性和/或非易失性的,并且可以是只读存储器(read-onlymemory,ROM)、随机存取存储器(random access memory,RAM)、三态内容寻址存储器(temary 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 (30)

1.一种视频解码器实现的方法,其特征在于,所述方法包括:
所述视频解码器接收包括补充增强信息(supplemental enhancement information,SEI)消息的码流,其中,所述SEI消息是PT SEI消息,所述PT SEI消息表示与所述PT SEI消息相关联的所述AU的解码单元(decoding unit,DU)中的网络抽象层(networkabstraction layer,NAL)单元的数量;
所述视频解码器对所述码流进行解码,以获得解码图像。
2.根据权利要求1所述的方法,其特征在于,所述CPB参数表示两个解码单元的CPB删除时间之间的持续时间。
3.根据权利要求1或2所述的方法,其特征在于,所述SEI消息是图像时序(picturetiming,PT)SEI消息。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述CPB参数包括与所述PTSEI消息相关联的接入单元(access unit,AU)的公共CPB删除延迟增量和CPB删除延迟增量。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述SEI消息是PT SEI消息,所述PT SEI消息表示与所述PT SEI消息相关联的所述AU中的解码单元的数量。
6.根据权利要求1所述的方法,其特征在于,所述SEI消息是解码单元信息(decodingunit information,DUI)SEI消息,所述DUI SEI消息提供包括所述DUI SEI消息的SEI NAL单元的时间标识符(identifier,ID)。
7.根据权利要求6所述的方法,其特征在于,所述时间ID表示所述DUI SEI消息中包括CPB删除延迟信息的最高子层。
8.根据权利要求1至7中任一项所述的方法,其特征在于,还包括在电子设备的显示器上显示所述解码图像。
9.一种视频编码器实现的方法,其特征在于,所述方法包括:
所述视频编码器生成包括补充增强信息(supplemental enhancement information,SEI)消息的码流,其中,所述SEI消息是PT SEI消息,所述PT SEI消息表示与所述PT SEI消息相关联的所述AU的解码单元(decoding unit,DU)中的网络抽象层(networkabstraction layer,NAL)单元的数量。
10.根据权利要求10所述的方法,其特征在于,所述CPB参数表示两个解码单元的CPB删除时间之间的持续时间,并且当不超过所述CPB删除时间之间的所述持续时间时,所述码流是符合的。
11.根据权利要求9或10所述的方法,其特征在于,所述SEI消息是图像时序(picturetiming,PT)SEI消息。
12.根据权利要求9至11中任一项所述的方法,其特征在于,所述CPB参数包括与所述PTSEI消息相关联的接入单元(access unit,AU)的公共CPB删除延迟和CPB删除延迟。
13.根据权利要求9所述的方法,其特征在于,所述SEI消息是解码单元信息(decodingunit information,DUI)SEI消息,所述DUI SEI消息提供包括所述DUI SEI消息的SEI NAL单元的时间标识符(identifier,ID)。
14.根据权利要求13所述的方法,其特征在于,所述DUI SEI消息表示所述DUI SEI消息中包括CPB删除延迟信息的最高子层的所述时间ID。
15.一种解码设备,其特征在于,包括:
接收器,用于接收包括补充增强信息(supplemental enhancement information,SEI)消息的码流,其中,所述SEI消息是PT SEI消息,所述PT SEI消息表示与所述PT SEI消息相关联的所述AU的解码单元(decoding unit,DU)中的网络抽象层(network abstractionlayer,NAL)单元的数量;
存储器,耦合到所述接收器,所述存储器存储指令;
处理器,耦合到所述存储器,所述处理器用于执行所述指令,以使所述解码设备对所述码流进行解码,以获得解码图像。
16.根据权利要求15所述的解码设备,其特征在于,所述CPB参数表示两个解码单元的CPB删除时间之间的持续时间。
17.根据权利要求15或16所述的解码设备,其特征在于,所述SEI消息是PT SEI消息,所述PT SEI消息表示与所述PT SEI消息相关联的接入单元(access unit,AU)中的解码单元的数量,并且所述CPB参数包括与所述PT SEI消息相关联的所述AU的公共CPB删除延迟和CPB删除延迟。
18.根据权利要求15所述的解码设备,其特征在于,所述SEI消息是解码单元信息(decoding unit information,DUI)SEI消息,所述DUI SEI消息提供包括所述DUI SEI消息的SEI NAL单元的时间标识符(identifier,ID)。
19.根据权利要求18所述的解码设备,其特征在于,所述时间ID表示所述DUI SEI消息中包括CPB删除延迟信息的最高子层。
20.一种编码设备,其特征在于,包括:
存储器,包括指令;
处理器,耦合到所述存储器,所述处理器用于实现所述指令,以使得所述编码设备:
生成包括补充增强信息(supplemental enhancement information,SEI)消息的码流,其中,所述SEI消息是PT SEI消息,所述PT SEI消息表示与所述PT SEI消息相关联的所述AU的解码单元(decoding unit,DU)中的网络抽象层(network abstraction layer,
NAL)单元的数量。
21.根据权利要求20所述的编码设备,其特征在于,所述CPB参数表示两个解码单元的CPB删除时间之间的持续时间,并且当不超过所述CPB删除时间之间的所述持续时间时,所述码流是符合的。
22.根据权利要求20或21所述的编码设备,其特征在于,所述SEI消息是图像时序(picture timing,PT)SEI消息。
23.根据权利要求20至22中任一项所述的编码设备,其特征在于,所述CPB参数包括与所述PT SEI消息相关联的接入单元(access unit,AU)的公共CPB删除延迟和CPB删除延迟。
24.根据权利要求20所述的编码设备,其特征在于,所述SEI消息是解码单元信息(decoding unit information,DUI)SEI消息,所述DUI SEI消息提供包括所述DUI SEI消息的SEI网络抽象层(network abstraction layer,NAL)单元的时间标识符(identifier,ID)。
25.根据权利要求24所述的编码设备,其特征在于,所述DUI SEI消息表示所述DUI SEI消息中包括CPB删除延迟信息的最高子层的时间标识符(identifier,ID)。
26.一种译码装置,其特征在于,包括:
接收器,用于接收图像进行编码或接收码流进行解码;
发送器,耦合到所述接收器,所述发送器用于向解码器发送所述码流或向显示器发送解码图像;
存储器,耦合到所述接收器或所述发送器中的至少一个,所述存储器用于存储指令;
处理器,耦合到所述存储器,所述处理器用于执行存储在所述存储器中的所述指令,以执行根据权利要求1至8中任一项和根据权利要求9至14中任一项所述的方法。
27.根据权利要求26所述的译码装置,其特征在于,还包括用于显示解码图像的显示器。
28.一种系统,其特征在于,包括:
编码器;
解码器,与所述编码器通信,其中,所述编码器或所述解码器包括根据权利要求17至29中任一项所述的所述解码设备、所述编码设备或所述译码装置。
29.一种译码模块,其特征在于,包括:
接收模块,用于接收图像进行编码或接收码流进行解码;
发送模块,耦合到所述接收模块,所述发送模块用于向解码模块发送所述码流或向显示模块发送解码图像;
存储模块,耦合到所述接收模块或所述发送模块中的至少一个,所述存储模块用于存储指令;
处理模块,耦合到所述存储模块,所述处理模块用于执行存储在所述存储模块中的所述指令,以执行根据权利要求1至8中任一项和根据权利要求9至14中任一项所述的方法。
30.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有由一个或多个处理器执行的如权利要求9至14中的任一项所述方法得到的视频码流。
CN202311427865.1A 2019-09-24 2020-09-21 用于实现时间可适性的图像时序和解码单元信息 Pending CN117478899A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201962905147P 2019-09-24 2019-09-24
US62/905,147 2019-09-24
CN202080066242.4A CN114430906B (zh) 2019-09-24 2020-09-21 用于实现时间可适性的图像时序和解码单元信息
PCT/US2020/051826 WO2021061571A1 (en) 2019-09-24 2020-09-21 Picture timing and decoding unit information for temporal scalability

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN202080066242.4A Division CN114430906B (zh) 2019-09-24 2020-09-21 用于实现时间可适性的图像时序和解码单元信息

Publications (1)

Publication Number Publication Date
CN117478899A true CN117478899A (zh) 2024-01-30

Family

ID=75166394

Family Applications (6)

Application Number Title Priority Date Filing Date
CN202311427964.XA Pending CN117478900A (zh) 2019-09-24 2020-09-21 用于实现时间可适性的图像时序和解码单元信息
CN202311423109.1A Pending CN117440165A (zh) 2019-09-24 2020-09-21 用于实现时间可适性的图像时序和解码单元信息
CN202080066242.4A Active CN114430906B (zh) 2019-09-24 2020-09-21 用于实现时间可适性的图像时序和解码单元信息
CN202311423076.0A Pending CN117478898A (zh) 2019-09-24 2020-09-21 用于实现时间可适性的图像时序和解码单元信息
CN202311428127.9A Pending CN117615149A (zh) 2019-09-24 2020-09-21 用于实现时间可适性的图像时序和解码单元信息
CN202311427865.1A Pending CN117478899A (zh) 2019-09-24 2020-09-21 用于实现时间可适性的图像时序和解码单元信息

Family Applications Before (5)

Application Number Title Priority Date Filing Date
CN202311427964.XA Pending CN117478900A (zh) 2019-09-24 2020-09-21 用于实现时间可适性的图像时序和解码单元信息
CN202311423109.1A Pending CN117440165A (zh) 2019-09-24 2020-09-21 用于实现时间可适性的图像时序和解码单元信息
CN202080066242.4A Active CN114430906B (zh) 2019-09-24 2020-09-21 用于实现时间可适性的图像时序和解码单元信息
CN202311423076.0A Pending CN117478898A (zh) 2019-09-24 2020-09-21 用于实现时间可适性的图像时序和解码单元信息
CN202311428127.9A Pending CN117615149A (zh) 2019-09-24 2020-09-21 用于实现时间可适性的图像时序和解码单元信息

Country Status (11)

Country Link
US (1) US20220217376A1 (zh)
EP (1) EP4026050A4 (zh)
JP (2) JP7436641B2 (zh)
KR (1) KR20220063260A (zh)
CN (6) CN117478900A (zh)
AU (1) AU2020352918A1 (zh)
BR (1) BR112022005603A2 (zh)
CA (1) CA3155882A1 (zh)
CL (1) CL2022000711A1 (zh)
MX (1) MX2022003552A (zh)
WO (1) WO2021061571A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220115958A (ko) 2019-12-26 2022-08-19 바이트댄스 아이엔씨 코딩된 비트스트림들에서의 비디오 계층들의 시그널링에 대한 제약들
WO2021134018A1 (en) 2019-12-26 2021-07-01 Bytedance Inc. Signaling of decoded picture buffer parameters in layered video
JP2023508680A (ja) 2019-12-27 2023-03-03 バイトダンス インコーポレイテッド ビデオコーディングにおけるサブピクチャシグナリング
WO2021142369A1 (en) 2020-01-09 2021-07-15 Bytedance Inc. Signalling of the wavefront parallel processing
JP2023526955A (ja) * 2020-05-22 2023-06-26 ジーイー ビデオ コンプレッション エルエルシー ビデオエンコーダ、ビデオデコーダ、符号化及び復号のための方法、並びに高度なビデオ符号化概念を実現するためのビデオデータストリーム
US11695965B1 (en) * 2022-10-13 2023-07-04 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Video coding using a coded picture buffer

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3263807B2 (ja) * 1996-09-09 2002-03-11 ソニー株式会社 画像符号化装置および画像符号化方法
US8699583B2 (en) * 2006-07-11 2014-04-15 Nokia Corporation Scalable video coding and decoding
US9912941B2 (en) 2012-07-02 2018-03-06 Sony Corporation Video coding system with temporal layers and method of operation thereof
US9479774B2 (en) * 2012-09-24 2016-10-25 Qualcomm Incorporated Buffering period and recovery point supplemental enhancement information messages
US8989508B2 (en) 2012-09-28 2015-03-24 Sharp Kabushiki Kaisha Electronic device for signaling a sub-picture buffer parameter
US9154785B2 (en) 2012-10-08 2015-10-06 Qualcomm Incorporated Sub-bitstream applicability to nested SEI messages in video coding
US20140301477A1 (en) * 2013-04-07 2014-10-09 Sharp Laboratories Of America, Inc. Signaling dpb parameters in vps extension and dpb operation
US10003815B2 (en) * 2013-06-03 2018-06-19 Qualcomm Incorporated Hypothetical reference decoder model and conformance for cross-layer random access skipped pictures
WO2015009693A1 (en) * 2013-07-15 2015-01-22 Sony Corporation Layer based hrd buffer management for scalable hevc
US10432951B2 (en) * 2014-06-24 2019-10-01 Qualcomm Incorporated Conformance and inoperability improvements in multi-layer video coding

Also Published As

Publication number Publication date
CN117478900A (zh) 2024-01-30
US20220217376A1 (en) 2022-07-07
AU2020352918A1 (en) 2022-04-21
CN117440165A (zh) 2024-01-23
CN117478898A (zh) 2024-01-30
CL2022000711A1 (es) 2022-11-18
BR112022005603A2 (pt) 2022-07-19
JP2022551415A (ja) 2022-12-09
EP4026050A4 (en) 2022-11-23
KR20220063260A (ko) 2022-05-17
JP2024056805A (ja) 2024-04-23
EP4026050A1 (en) 2022-07-13
CN117615149A (zh) 2024-02-27
CN114430906B (zh) 2023-11-10
MX2022003552A (es) 2022-06-02
CN114430906A (zh) 2022-05-03
JP7436641B2 (ja) 2024-02-21
WO2021061571A1 (en) 2021-04-01
CA3155882A1 (en) 2021-04-01

Similar Documents

Publication Publication Date Title
CN114979663B (zh) 解码器、编码器及其实现的方法
CN114430906B (zh) 用于实现时间可适性的图像时序和解码单元信息
CN114514741A (zh) 用于基于层的一致性测试的hrd参数
CN114900697B (zh) 由编码器/解码器实现的方法、视频译码设备及计算机可读介质
CN114424526B (zh) 用于指定层的可伸缩嵌套式sei消息的编解码方法和装置

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