CN104604236A - 用于视频编码的方法和装置 - Google Patents

用于视频编码的方法和装置 Download PDF

Info

Publication number
CN104604236A
CN104604236A CN201380044882.5A CN201380044882A CN104604236A CN 104604236 A CN104604236 A CN 104604236A CN 201380044882 A CN201380044882 A CN 201380044882A CN 104604236 A CN104604236 A CN 104604236A
Authority
CN
China
Prior art keywords
scalable layer
elementary cell
scalable
parameter set
value
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.)
Granted
Application number
CN201380044882.5A
Other languages
English (en)
Other versions
CN104604236B (zh
Inventor
M·汉努卡塞拉
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.)
Nokia Technologies Oy
Original Assignee
Nokia Oyj
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 Nokia Oyj filed Critical Nokia Oyj
Publication of CN104604236A publication Critical patent/CN104604236A/zh
Application granted granted Critical
Publication of CN104604236B publication Critical patent/CN104604236B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • 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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Abstract

提供了允许从语法结构,诸如序列参数集,获得某些参数或语法元素的值,诸如HRD参数和/或级别指示符,的方法、装置和计算机程序产品。在这点上,某些参数或语法元素的值,诸如HRD参数和/或级别指示符,可以从存在于访问单元中、编码的视频序列和/或比特流中的某一其它层(诸如最高层)的语法结构来获取,即使其它层,诸如最高层,没有被解码。来自其它层,诸如最高层,的语法元素值可以是语义上有效的,以及可以用于一致性检查,尽管来自其它各自语法结构,诸如序列参数集,的各自语法元素的值可以是活动的或以其他方式是有效的。

Description

用于视频编码的方法和装置
技术领域
本申请一般涉及用于视频编码和解码的装置、方法和计算机程序产品。
背景技术
这部分旨在提供在权利要求书中陈述的本发明的背景或上下文。此处的描述可以包含可以被追求的构思,但其不是必须是先前已设想或追求的构思。因此,除非此处另外指出,否则这部分所述的内容不是本申请中的说明书和权利要求书的现有技术,并且不通过包含在这部分中而承认其为现有技术。
典型的音频和视频编码标准指定“档次(profiles)”和“级别(levels)”。“档次”可以被定义为标准的算法特征的子集,以及“级别”可以被定义为针对在解码器资源消耗中强加的一组约束的编码参数的一组限制。指示的档次和级别能够用于通过信号传送媒体流的属性以及通过信号传送媒体解码器的能力。
在许多视频编码标准中,语法结构可以被布置在不同的层中,其中层可以被定义为在非分支层级关系中的一组语法结构中的一个语法结构。一般地,较高层可以含有较低层。编码层可以例如由编码的视频序列、图像、片和树块层组成。一些视频编码标准引入了参数集的构思。参数集的实例可以包含:所有图像、图像组(GOP)以及序列级别数据,诸如图像大小、显示窗口、使用的可选的编码模式、宏块分配图等。每个参数集实例可以包含:唯一的标识符。每个片头部可以包含:至参数集标识符的引用,以及当解码该片时,可以使用所引用的参数集的参数值。参数集可以用于使得不频繁变化的图像,GOP,以及来自序列、GOP和图像边界的序列级别的数据的传输和解码顺序解耦合。只要在参数集被引用之前它们被解码,则能够使用可靠的传输协议在带外来传送参数集。如果在带内来传送参数集,则与传统视频编码方案相比,它们能够被重复多次以改进容错。可以在会话建立时间来传送这些参数集。然而,在一些系统中,主要是广播系统,参数集的可靠的带外传输可能是不可行的,而是在参数集NAL单元中在带内来运送参数集。
发明内容
根据本发明的示例实施例提供了允许从语法结构,诸如序列参数集,获得某些参数或语法元素(诸如HRD参数和/或级别指示符)的值的方法、装置和计算机程序产品。在这点上,某些参数或语法元素的值,诸如HRD参数和/或级别指示符,可以从存在于访问单元、编码的视频序列和/或比特流中的某一其它层(诸如最高层)的语法结构来获取,即使其它层,诸如最高层,没有被解码。来自其它层,诸如最高层,的语法元素值在语义上可以是有效的,以及可以用于一致性检查,尽管来自其它各自语法结构,诸如序列参数集,的各自语法元素的值可以是活动的或以其他方式是有效的。
在一个实施例中,提供了一种方法,所述方法包含:使用处理器产生可伸缩数据流的两个或更多可伸缩层。两个或更多可伸缩层中的每个可伸缩层可以具有不同的编码属性,与可伸缩层标识符相关联,以及以包含至少档次的语法元素的第一集合和包含级别或假想参考解码器(HRD)参数中的至少一个的语法元素的第二集合为特征。这个实施例的所述方法还将第一可伸缩层标识符值插入到包含来自两个或更多可伸缩层的第一可伸缩层的数据的第一基本单元中。所述方法还可以使得所述两个或更多可伸缩层中的第一可伸缩层与在第一参数集基本单元中的语法元素的第一集合和第二集合一起通过信号被传送,使得所述第一参数集基本单元能够被解码器读取以在不解码可伸缩数据流的可伸缩层的情况下确定所述语法元素的第一集合和第二集合的值。这个实施例的所述方法还将第一可伸缩层标识符值插入到第一参数集基本单元中,以及将第二可扩展层标识符值插入到包含来自两个或更多可伸缩层的第一可伸缩层的数据的第二基本单元中。这个实施例的所述方法还使得两个或更多可伸缩层的第二可伸缩层与在第二参数集基本单元中的语法元素的第一集合和第二集合一起通过信号被传送,使得所述第二参数集基本单元能够被解码器读取以在不解码所述数据流的可伸缩层的情况下确定编码属性。所述方法还可以将第二可伸缩层标识符值插入在第二参数集基本单元中。
在这个实施例中,在第一基本单元被处理以及第二基本单元被忽略或移除的情况下,在第一参数集基本单元中的语法元素的第一集合的值是有效的。另外,在第一基本单元被处理以及第二基本单元被移除的情况下,在第一参数集基本单元中的语法元素的第二集合的值可以是有效的。在第二基本单元被处理的情况下,在第二参数集基本单元中的语法元素的第一集合的值可以是有效的,以及在第二基本单元被忽略或处理的情况下,在第二参数集基本单元中的语法元素的第二集合的值可以是有效的。
在另一个实施例中,提供了一种装置,所述装置包含至少一个处理器和包含计算机程序代码的至少一个存储器,所述存储器和所述计算机程序代码被配置为使用所述至少一个处理器使得所述装置产生可伸缩数据流的两个或更多可伸缩层。两个或更多可伸缩层中的每个可伸缩层可以具有不同的编码属性,与可伸缩层标识符相关联,以及以包含至少档次的语法元素的第一集合和包含级别或假想参考解码器(HRD)参数中的至少一个的语法元素的第二集合为特征。所述存储器和所述计算机程序代码还被配置为使用所述至少一个处理器使得所述装置将第一可伸缩层标识符值插入到包含来自两个或更多可伸缩层的第一可伸缩层的数据的第一基本单元中。所述存储器和所述计算机程序代码还可以被配置为使用所述至少一个处理器使得所述装置还使得所述两个或更多可伸缩层中的第一可伸缩层与在第一参数集基本单元中的语法元素的第一集合和第二集合一起通过信号被传送,使得所述第一参数集基本单元能够被解码器读取以在不解码可伸缩数据流的可伸缩层的情况下确定所述语法元素的第一集合和第二集合的值。所述存储器和所述计算机程序代码还可以被配置为使用所述至少一个处理器使得所述装置将第一可伸缩层标识符值插入到第一参数集基本单元中,以及将第二可扩展层标识符值插入到包含来自两个或更多可伸缩层的第一可伸缩层的数据的第二基本单元中。所述存储器和所述计算机程序代码还被配置为使用所述至少一个处理器使得所述装置使得两个或更多可伸缩层的第二可伸缩层与在第二参数集基本单元中的语法元素的第一集合和第二集合一起通过信号被传送,使得所述第二参数集基本单元能够被解码器读取以在不解码所述数据流的可伸缩层的情况下确定编码属性。所述存储器和所述计算机程序代码还可以被配置为使用所述至少一个处理器使得所述装置将第二可伸缩层标识符值插入在第二参数集基本单元中。
在这个实施例中,在第一基本单元被处理以及第二基本单元被忽略或移除的情况下,在第一参数集基本单元中的语法元素的第一集合的值是有效的。另外,在第一基本单元被处理以及第二基本单元被移除的情况下,在第一参数集基本单元中的语法元素的第二集合的值可以是有效的。在第二基本单元被处理的情况下,在第二参数集基本单元中的语法元素的第一集合的值可以是有效的,以及在第二基本单元被忽略或处理的情况下,在第二参数集基本单元中的语法元素的第二集合的值可以是有效的。
在另一个实施例中,提供了一种计算机程序产品,所述计算机程序产品包含至少一个非短暂性的计算机可读存储介质,所述至少一个非短暂性的计算机可读存储介质具有存储在其中的计算机可执行程序代码部分,所述计算机可执行程序代码部分包含程序代码指令,所述程序代码指令用于产生可伸缩数据流的两个或更多可伸缩层。两个或更多可伸缩层中的每个可伸缩层可以具有不同的编码属性,与可伸缩层标识符相关联,以及以包含至少档次的语法元素的第一集合和包含级别或假想参考解码器(HRD)参数中的至少一个的语法元素的第二集合为特征。一个实施例的所述计算机可执行程序代码部分还可以包含程序代码指令,所述程序代码指令用于将第一可伸缩层标识符值插入到包含来自两个或更多可伸缩层的第一可伸缩层的数据的第一基本单元中。一个实施例的所述计算机可执行程序代码部分还可以包含程序代码指令,所述程序代码指令用于使得所述两个或更多可伸缩层中的第一可伸缩层与在第一参数集基本单元中的语法元素的第一集合和第二集合一起通过信号被传送,使得所述第一参数集基本单元能够被解码器读取以在不解码可伸缩数据流的可伸缩层的情况下确定所述语法元素的第一集合和第二集合的值。一个实施例的所述计算机可执行程序代码部分还可以包含程序代码指令,所述程序代码指令用于将第一可伸缩层标识符值插入到第一参数集基本单元中,以及将第二可扩展层标识符值插入到包含来自两个或更多可伸缩层的第一可伸缩层的数据的第二基本单元中。一个实施例的所述计算机可执行程序代码部分还可以包含程序代码指令,所述程序代码指令用于使得两个或更多可伸缩层的第二可伸缩层与在第二参数集基本单元中的语法元素的第一集合和第二集合一起通过信号被传送,使得所述第二参数集基本单元能够被解码器读取以在不解码所述数据流的可伸缩层的情况下确定编码属性。一个实施例的所述计算机可执行程序代码部分还可以包含程序代码指令,所述程序代码指令用于将第二可伸缩层标识符值插入在第二参数集基本单元中。
在这个实施例中,在第一基本单元被处理以及第二基本单元被忽略或移除的情况下,在第一参数集基本单元中的语法元素的第一集合的值是有效的。另外,在第一基本单元被处理以及第二基本单元被移除的情况下,在第一参数集基本单元中的语法元素的第二集合的值可以是有效的。在第二基本单元被处理的情况下,在第二参数集基本单元中的语法元素的第一集合的值可以是有效的,以及在第二基本单元被忽略或处理的情况下,在第二参数集基本单元中的语法元素的第二集合的值可以是有效的。
在又一个实施例中,提供了一种装置,所述装置包含:用于产生可伸缩数据流的两个或更多可伸缩层的构件。两个或更多可伸缩层中的每个可伸缩层可以具有不同的编码属性,与可伸缩层标识符相关联,以及以包含至少档次的语法元素的第一集合和包含级别或假想参考解码器(HRD)参数中的至少一个的语法元素的第二集合为特征。这个实施例的所述装置还包含用于将第一可伸缩层标识符值插入到包含来自两个或更多可伸缩层的第一可伸缩层的数据的第一基本单元中的构件。所述装置还可以包含用于使得所述两个或更多可伸缩层中的第一可伸缩层与在第一参数集基本单元中的语法元素的第一集合和第二集合一起通过信号被传送,使得所述第一参数集基本单元能够被解码器读取以在不解码可伸缩数据流的可伸缩层的情况下确定所述语法元素的第一集合和第二集合的值的构件。这个实施例的所述装置还将第一可伸缩层标识符值插入到第一参数集基本单元中,以及将第二可扩展层标识符值插入到包含来自两个或更多可伸缩层的第一可伸缩层的数据的第二基本单元中。所述装置还可以包含用于使得两个或更多可伸缩层的第二可伸缩层与在第二参数集基本单元中的语法元素的第一集合和第二集合一起通过信号被传送,使得所述第二参数集基本单元能够被解码器读取以在不解码所述数据流的可伸缩层的情况下确定编码属性的构件。所述装置还可以包含用于将第二可伸缩层标识符值插入在第二参数集基本单元中的构件。
在这个实施例中,在第一基本单元被处理以及第二基本单元被忽略或移除的情况下,在第一参数集基本单元中的语法元素的第一集合的值是有效的。另外,在第一基本单元被处理以及第二基本单元被移除的情况下,在第一参数集基本单元中的语法元素的第二集合的值可以是有效的。在第二基本单元被处理的情况下,在第二参数集基本单元中的语法元素的第一集合的值可以是有效的,以及在第二基本单元被忽略或处理的情况下,在第二参数集基本单元中的语法元素的第二集合的值可以是有效的。
在一个实施例中,提供了一种方法,所述方法包含:接收包含具有不同编码属性的可伸缩层的第一可伸缩数据流。两个或更多可伸缩层中的每个可伸缩层与可伸缩层标识符相关联,以及以包括至少档次的语法元素的第一集合和包含级别或假想参考解码器(HRD)参数中的至少一个的语法元素的第二集合为特征。第一可伸缩层标识符值可以位于包含来自两个或更多可伸缩层的第一可伸缩层的数据的第一基本单元中。可以在针对两个或更多可伸缩层的第一可伸缩层的第一参数集基本单元中通过信号传送语法元素的第一集合和第二集合,使得第一参数集能够被解码器读取以在不解码可伸缩数据流的可伸缩层的情况下确定语法元素的第一集合和第二集合的值。第一可伸缩层标识符值可以位于第一参数集基本单元中。第二可伸缩层标识符值可以位于包含来自两个或更多可伸缩层的第二可伸缩层的数据的第二基本单元中。可以在针对两个或更多可伸缩层的第二可伸缩层的第二参数集基本单元中通过信号传送语法元素的第一集合和第二集合,使得第二参数集能够被解码器读取以在不解码可伸缩数据流的可伸缩层的情况下确定编码属性。第二可伸缩层标识符值可以位于第二参数集基本单元中。这个实施例的所述方法还可以包含:使用处理器,基于包含第二可伸缩层标识符值的第二基本单元和第二参数集基本单元,从第一可伸缩数据流移除第二基本单元和第二参数集基本单元。
在另一个实施例中,提供了一种装置,所述装置包含至少一个处理器和包含计算机程序代码的至少一个存储器,所述存储器和所述计算机程序代码被配置为使用所述至少一个处理器使得所述装置接收包含具有不同编码属性的可伸缩层的第一可伸缩数据流。两个或更多可伸缩层中的每个可伸缩层与可伸缩层标识符相关联,以及以包括至少档次的语法元素的第一集合和包含级别或假想参考解码器(HRD)参数中的至少一个的语法元素的第二集合为特征。第一可伸缩层标识符值可以位于包含来自两个或更多可伸缩层的第一可伸缩层的数据的第一基本单元中。可以在针对两个或更多可伸缩层的第一可伸缩层的第一参数集基本单元中通过信号传送语法元素的第一集合和第二集合,使得第一参数集能够被解码器读取以在不解码可伸缩数据流的可伸缩层的情况下确定语法元素的第一集合和第二集合的值。第一可伸缩层标识符值可以位于第一参数集基本单元中。第二可伸缩层标识符值可以位于包含来自两个或更多可伸缩层的第二可伸缩层的数据的第二基本单元中。可以在针对两个或更多可伸缩层的第二可伸缩层的第二参数集基本单元中通过信号传送语法元素的第一集合和第二集合,使得第二参数集能够被解码器读取以在不解码可伸缩数据流的可伸缩层的情况下确定编码属性。第二可伸缩层标识符值可以位于第二参数集基本单元中。这个实施例的所述装置还可以包含所述存储器和计算机程序代码,所述存储器和所述计算机程序代码被配置为使用所述至少一个处理器使得所述装置基于包含第二可伸缩层标识符值的第二基本单元和第二参数集基本单元,从第一可伸缩数据流移除第二基本单元和第二参数集基本单元。
在另一个实施例中,提供了一种计算机程序产品,所述计算机程序产品包含至少一个非短暂性的计算机可读存储介质,所述至少一个非短暂性的计算机可读存储介质具有存储在其中的计算机可执行程序代码部分,所述计算机可执行程序代码部分包含程序代码指令,所述程序代码指令用于接收包含具有不同编码属性的可伸缩层的第一可伸缩数据流。两个或更多可伸缩层中的每个可伸缩层与可伸缩层标识符相关联,以及以包括至少档次的语法元素的第一集合和包含级别或假想参考解码器(HRD)参数中的至少一个的语法元素的第二集合为特征。第一可伸缩层标识符值可以位于包含来自两个或更多可伸缩层的第一可伸缩层的数据的第一基本单元中。可以在针对两个或更多可伸缩层的第一可伸缩层的第一参数集基本单元中通过信号传送语法元素的第一集合和第二集合,使得第一参数集能够被解码器读取以在不解码可伸缩数据流的可伸缩层的情况下确定语法元素的第一集合和第二集合的值。第一可伸缩层标识符值可以位于第一参数集基本单元中。第二可伸缩层标识符值可以位于包含来自两个或更多可伸缩层的第二可伸缩层的数据的第二基本单元中。可以在针对两个或更多可伸缩层的第二可伸缩层的第二参数集基本单元中通过信号传送语法元素的第一集合和第二集合,使得第二参数集能够被解码器读取以在不解码可伸缩数据流的可伸缩层的情况下确定编码属性。第二可伸缩层标识符值可以位于第二参数集基本单元中。这个实施例的所述计算机可执行程序代码部分还包含程序代码指令,所述程序代码指令用于基于包含第二可伸缩层标识符值的第二基本单元和第二参数集基本单元,从第一可伸缩数据流移除第二基本单元和第二参数集基本单元。
在又一个实施例中,提供了一种装置,所述装置包含:用于接收包含具有不同编码属性的可伸缩层的第一可伸缩数据流的构件。两个或更多可伸缩层中的每个可伸缩层与可伸缩层标识符相关联,以及以包括至少档次的语法元素的第一集合和包含级别或假想参考解码器(HRD)参数中的至少一个的语法元素的第二集合为特征。第一可伸缩层标识符值可以位于包含来自两个或更多可伸缩层的第一可伸缩层的数据的第一基本单元中。可以在针对两个或更多可伸缩层的第一可伸缩层的第一参数集基本单元中通过信号传送语法元素的第一集合和第二集合,使得第一参数集能够被解码器读取以在不解码可伸缩数据流的可伸缩层的情况下确定语法元素的第一集合和第二集合的值。第一可伸缩层标识符值可以位于第一参数集基本单元中。第二可伸缩层标识符值可以位于包含来自两个或更多可伸缩层的第二可伸缩层的数据的第二基本单元中。可以在针对两个或更多可伸缩层的第二可伸缩层的第二参数集基本单元中通过信号传送语法元素的第一集合和第二集合,使得第二参数集能够被解码器读取以在不解码可伸缩数据流的可伸缩层的情况下确定编码属性。第二可伸缩层标识符值可以位于第二参数集基本单元中。这个实施例的所述装置还可以包含:用于基于包含第二可伸缩层标识符值的第二基本单元和第二参数集基本单元,从第一可伸缩数据流移除第二基本单元和第二参数集基本单元的构件。
在一个实施例中,提供了一种方法,所述方法包含:接收包含具有不同编码属性的可伸缩层的第一可伸缩数据流。两个或更多可伸缩层中的每个可伸缩层与可伸缩层标识符相关联,以及以编码属性为特征。第一可伸缩层标识符值可以位于包含来自两个或更多可伸缩层的第一可伸缩层的数据的第一基本单元中。在第一参数集基本单元中通过信号传送解码属性与所述两个或更多可伸缩层中的第一可伸缩层,使得该编码属性能够被解码器读取以在不解码可伸缩数据流的可伸缩层的情况下确定编码属性。第一可伸缩层标识符值可以位于第一参数集基本单元中。第二可伸缩层标识符值可以位于包含来自两个或更多可伸缩层的第二可伸缩层的数据的第二基本单元中。可以在针对两个或更多可伸缩层的第二可伸缩层的第二参数集基本单元中通过信号传送语法元素的第一集合和第二集合,使得第一参数集能够被解码器读取以在不解码可伸缩数据流的可伸缩层的情况下确定语法元素的第一集合和第二集合的值。第二可伸缩层标识符值可以位于第二参数集基本单元中。这个实施例的所述方法还可以接收指示将被解码的可伸缩层的可伸缩层标识符值的集合,以及可以使用处理器,基于包含没有位于可伸缩层标识符值的所述集合之中的第二可伸缩层标识符值的第二基本单元和第二参数集基本单元,从所接收的第一可伸缩数据流移除第二基本单元和第二参数集基本单元。
在另一个实施例中,提供了一种装置,所述装置包含至少一个处理器和包含计算机程序代码的至少一个存储器,所述存储器和所述计算机程序代码被配置为使用所述至少一个处理器使得所述装置接收包含具有不同编码属性的可伸缩层的第一可伸缩数据流。两个或更多可伸缩层中的每个可伸缩层与可伸缩层标识符相关联,以及以编码属性为特征。第一可伸缩层标识符值可以位于包含来自两个或更多可伸缩层的第一可伸缩层的数据的第一基本单元中。在第一参数集基本单元中通过信号传送解码属性的所述两个或更多可伸缩层中的第一可伸缩层,使得该编码属性能够被解码器读取以在不解码可伸缩数据流的可伸缩层的情况下确定编码属性。第一可伸缩层标识符值可以位于第一参数集基本单元中。第二可伸缩层标识符值可以位于包含来自两个或更多可伸缩层的第二可伸缩层的数据的第二基本单元中。可以在针对两个或更多可伸缩层的第二可伸缩层的第二参数集基本单元中通过信号传送语法元素的第一集合和第二集合,使得第一参数集能够被解码器读取以在不解码可伸缩数据流的可伸缩层的情况下确定语法元素的第一集合和第二集合的值。第二可伸缩层标识符值可以位于第二参数集基本单元中。所述存储器和所述计算机程序代码还可以被配置为使用所述至少一个处理器使得所述装置接收指示将被解码的可伸缩层的可伸缩层标识符值的集合,以及基于包含没有位于可伸缩层标识符值的所述集合之中的第二可伸缩层标识符值的第二基本单元和第二参数集基本单元,从所接收的第一可伸缩数据流移除第二基本单元和第二参数集基本单元。
在另一个实施例中,提供了一种计算机程序产品,所述计算机程序产品包含至少一个非短暂性的计算机可读存储介质,所述至少一个非短暂性的计算机可读存储介质具有存储在其中的计算机可执行程序代码部分,所述计算机可执行程序代码部分包含程序代码指令,所述程序代码指令用于接收包含具有不同编码属性的可伸缩层的第一可伸缩数据流。两个或更多可伸缩层中的每个可伸缩层与可伸缩层标识符相关联,以及以编码属性为特征。第一可伸缩层标识符值可以位于包含来自两个或更多可伸缩层的第一可伸缩层的数据的第一基本单元中。在第一参数集基本单元中通过信号传送解码属性与所述两个或更多可伸缩层中的第一可伸缩层,使得该编码属性能够被解码器读取以在不解码可伸缩数据流的可伸缩层的情况下确定编码属性。第一可伸缩层标识符值可以位于第一参数集基本单元中。第二可伸缩层标识符值可以位于包含来自两个或更多可伸缩层的第二可伸缩层的数据的第二基本单元中。可以在针对两个或更多可伸缩层的第二可伸缩层的第二参数集基本单元中通过信号传送语法元素的第一集合和第二集合,使得第一参数集能够被解码器读取以在不解码可伸缩数据流的可伸缩层的情况下确定语法元素的第一集合和第二集合的值。第二可伸缩层标识符值可以位于第二参数集基本单元中。所述计算机可执行程序代码部分还可以包含:用于接收指示将被解码的可伸缩层的可伸缩层标识符值的集合的程序代码指令,以及用于基于包含没有位于可伸缩层标识符值的所述集合之中的第二可伸缩层标识符值的第二基本单元和第二参数集基本单元,从所接收的第一可伸缩数据流移除第二基本单元和第二参数集基本单元的程序代码指令。
在又一个实施例中,提供了一种装置,所述装置包含:用于接收包含具有不同编码属性的可伸缩层的第一可伸缩数据流的构件。两个或更多可伸缩层中的每个可伸缩层与可伸缩层标识符相关联,以及以编码属性为特征。第一可伸缩层标识符值可以位于包含来自两个或更多可伸缩层的第一可伸缩层的数据的第一基本单元中。在第一参数集基本单元中通过信号传送解码属性与所述两个或更多可伸缩层中的第一可伸缩层,使得该编码属性能够被解码器读取以在不解码可伸缩数据流的可伸缩层的情况下确定编码属性。第一可伸缩层标识符值可以位于第一参数集基本单元中。第二可伸缩层标识符值可以位于包含来自两个或更多可伸缩层的第二可伸缩层的数据的第二基本单元中。可以在针对两个或更多可伸缩层的第二可伸缩层的第二参数集基本单元中通过信号传送语法元素的第一集合和第二集合,使得第一参数集能够被解码器读取以在不解码可伸缩数据流的可伸缩层的情况下确定语法元素的第一集合和第二集合的值。第二可伸缩层标识符值可以位于第二参数集基本单元中。这个实施例的所述装置还可以包含用于接收指示将被解码的可伸缩层的可伸缩层标识符值的集合的构件,以及用于基于包含没有位于可伸缩层标识符值的所述集合之中的第二可伸缩层标识符值的第二基本单元和第二参数集基本单元,从所接收的第一可伸缩数据流移除第二基本单元和第二参数集基本单元的构件。
附图说明
为了更完全理解本发明的示例实施例,现在参照结合附图的以下描述,在附图中:
图1示意性示出了利用本发明的一些实施例的电子设备;
图2示意性示出了适合于利用本发明的一些实施例的用户设备;
图3进一步示意性示出了使用无线和有线网络连接的利用本发明的实施例的电子设备;
图4a示意性地示出了如被并入在编码器内的本发明的实施例;
图4b示意性地示出了根据本发明的一些实施例的帧间预测器的实施例;
图5示出了基于DIBR的3DV系统的简化模型;
图6示出了立体相机设置的简化2D模型;
图7示出了访问单元的定义和编码顺序的示例;
图8示出了能够编码纹理视图和深度视图的编码器的实施例的高级流程图;
图9示出了能够解码纹理视图和深度视图的解码器的实施例的高级流程图;以及
图10-12是说明依照本发明的示例实施例执行的操作的流程图。
具体实施方式
现在,在下文将参照附图,更全面地描述本发明的一些实施例,在附图中示出了本发明的一些实施例而不是全部的实施例。实际上,本发明可以以许多不同形式来具体化,并且不应当被认为限制于本文所阐述的实施例;相反,提供这些实施例,以便本公开将满足可适用的法律要求。在全文中,相似的标记指相似的元素。如本文所使用的,术语“数据”、“内容”、“信息”以及类似的术语可交替地使用,以指依照本发明的实施例能够被传送、接收和/或存储的数据。因此,任何此类术语的使用不应当被认为是限制本发明的实施例的精神和范围。另外,如本文所使用的,术语‘电路’指的是:(a)仅硬件电路实现方式(例如,在模拟电路和/或数字电路中的实现方式);(b)电路和计算机程序产品(多个)的组合,该计算机程序产品(多个)包括:存储在一个或多个计算机可读存储器上的软件和/或固件指令,所述组合一起工作以使得装置执行本文描述的一个或多个功能;以及(c)要求用于操作的软件或固件的电路(诸如例如,微处理器(多个)或微处理器(多个)的一部分),即使软件或固件不是物理呈现的。‘电路’的这种定义应用于本文中(包括在任何权利要求中)的这个术语的所有使用。作为又一个示例,如本文所使用的,术语‘电路’还包含:包括一个或多个处理器和/或其部分(多个)并且伴随有软件和/或固件的实现方式。作为另一示例,如本文所使用的术语‘电路’还包含:例如,用于移动电话的基带集成电路或应用处理器集成电路,或在服务器、蜂窝网络设备、其它网络设备和/或其它计算设备中的类似集成电路。如本文定义的,“计算机可读存储介质”,其指能够与“计算机可读传输介质”(其指电磁信号)区分的非短暂性的、物理存储介质(例如,易失性或非易失性存储设备)。
在以下,将在一种视频编码布置的上下文中描述本发明的若干实施例。然而,注意的是,本发明不局限于这种特定布置。实际上,在要求改进参考图像处理的任何环境中,不同实施例具有广阔的应用。例如,本发明可以应用于视频编码系统,如流式传输系统、DVD播放器、数字电视接收器、个人视频记录器、在个人计算机上的系统和计算机程序、手持型计算机和通信设备以及网络单元,诸如处理视频数据的转码器和云计算布置。
H.264/AVC标准由国际电信联盟(ITU-T)的电信标准化部门的视频编码专家组(VCEG)的联合视频组(JVT)和国际标准化组织(ISO)/国际电工委员会(IEC)的运动图像专家组来开发。H.264/AVC标准由这两个母标准化组织来发布,以及它被称为ITU-T建议H.264和ISO/IEC国际标准14496-10,还被称为MPEG-4部分10高级视频编码(AVC)。已经有多种版本的H.264/AVC标准,每个版本的H.264/AVC标准将新的扩展或特征集成到规范中。这些扩展包含:可伸缩视频编码(SVC)和多视角视频编码(MVC)。
当前有由VCEG和MPEG的联合合作组-视频编码(JCT-VC)正在进行中的高效视频编码(HEVC)标准化项目。
在这个部分中,描述H.264/AVC和HEVC的一些关键定义、比特流和编码结构以及构思作为视频编码器、解码器、编码方法、解码方法以及比特流结构的示例,其中可以实现实施例。H.264/AVC的其中的一些关键定义、比特流和编码结构和构思与在草案HEVC标准中的是相同的-因此,在以下,联合地描述它们。本发明的多个方面不局限于H.264/AVC或HEVC,而是针对一种可能的基础而给出该描述,在该基础上可以部分地或完全地实施本发明。
类似于许多较早的视频编码标准,在H.264/AVC和HEVC中指定了比特流语法和语义以及针对无差错比特流的解码过程。没有指定编码过程,但是编码器必须生成一致性的比特流。能够使用假想参考解码器(HRD)来验证比特流和解码器的一致性。这些标准含有有助于处理传输错误和丢失的编码工具,但是在编码中这些工具的使用是可选的以及还没有针对错误的比特流指定解码过程。
可以使用例如如在H.264/AVC或草案HEVC中指定的针对算术运算符、逻辑运算符、关系运算符、比特式运算符、赋值运算符以及范围注释的常用注释。此外,可以使用例如在H.264/AVC或草案HEVC中指定的常用数学函数,以及可以使用例如如在H.264/AVC或草案HEVC中指定的优先级的常用顺序和运算符的执行顺序(从左到右或从右到左)。
在现有标准的描述中以及在示例实施例的描述中,语法元素可以被定义为在比特流中表示的数据的元素。语法结构可以被定义为以指定的顺序一起出现在比特流中的零个或多个语法元素。可以使用以下描述符以指定每个语法元素的解析过程。
-b(8):具有任何模式比特串的字节(8比特)。
-se(v):具有左位在先的有符号整数指数哥伦布编码的语法元素。
-U(n):使用n比特的无符号整数。当在语法表中n是“v”时,比特的数量以取决于其它语法元素的值的方式而变化。针对这个描述符的解析过程由来自比特流的被解释为具有最高位先写入的无符号整数的二进制表示的下n个比特来指定。
-ue(v):具有左位在先的无符号整数指数哥伦布编码语法元素。
例如使用下表可以将指数哥伦布比特串转变到码号(codeNum):
比特串 码号
1 0
010 1
011 2
00100 3
00101 4
00110 5
00111 6
0001000 7
0001001 8
0001010 9
例如可以使用下表将对应于指数哥伦布比特串的码号转变到se(v)。
码号 语法元素值
0 0
1 1
2 -1
3 2
4 -2
5 3
6 -3
可以如下指定语法结构、语法元素的语义和解码过程。在比特流中的语法元素被表示成粗体类型。每个语法元素由它的名称(具有下划线字符的所有小写字母),非必须地它的一个或两个语法类别以及针对编码表示的它的方法的一个或两个描述符,来描述。解码过程根据语法元素的值和先前解码的语法元素的值来进行行为。当在语法表或文本中使用语法元素的值时,它以规则(即,非粗体)类型出现。在一些情况下,语法表可以使用从语法元素值导出的其它变量的值。此类变量出现在语法表或文本中,由小写和大写字母的混合并且没有下划线字符来命名。针对当前语法结构和所有依赖的语法结构的解码而导出以大写字母开始的变量。以大写字母开始的变量可以在没有提及的变量的原始语法结构情况下在针对后来的语法结构的解码过程中使用。以小写字母开始的变量仅在它们被导出的情景内使用。在一些情况下,针对语法元素值或变量值的“助记”名字与它们的数值被交替地使用。有时,在没有任何相关联的数值的情况下,使用“助记”名字。在文本中指定了值和名字的关联。从由下划线字符分离的一组或多组字母来构建名字。每个组从大写字母开始以及可以含有更多的大写字母。
可以使用以下来指定语法结构。被封闭在波形括号中的一组语句是复合语句,以及功能上作为单个语句来对待。“while”结构指定条件是否为真的测试,以及如果真,则重复指定语句(或复合语句)的评估直到该条件不再为真。“do…while”结构指定一次的语句评估,跟随着条件是否为真的测试,以及如果真,则指定重复的语句评估直到该条件不再为真。“if…else”结构指定条件是否为真的测试,以及如果条件为真,则指定主要语句的评估,否则指定可替代语句的评估。如果不需要可替代语句的评估,则省略该结构的“else”部分和相关联的可替代语句。“for”结构指定初始语句的评估,跟随着条件的测试,以及如果该条件为真,则指定由随后语句跟随的主要语句的重复评估直到该条件不再为真。档次可以被定义为由解码/编码标准或规范指定的整个比特流语法的子集。在由给定档次的语法强加的界限内,取决于在比特流中的语法元素所采用的值,诸如解码图像的指定大小,仍然可能要求在编码器和解码器的性能中的非常大的变化。在许多应用中,实现能够处理在特定档次内的语法的所有假想使用的解码器可能既不实际也不经济。为了处理这个问题,可以使用级别。级别可以被定义为在比特流中的语法元素的值上强加的指定的一组约束和在解码/编码标准或规范中指定的变量。这些约束可以是在值上的简单限制。可替代地或另外,它们可以采用在值的算术组合上的约束的形式(例如,图像宽度乘以图像高度乘以每秒解码的图像数量)。也可以使用用于指定针对级别的约束的其它手段。在级别中指定的约束中的一些约束可以例如与每时间单位(诸如一秒)在编码单元(诸如宏块)方面的最大图像大小、最大比特率和最大数据速率有关。可以针对所有档次定义相同的级别集合。可以更可取的是例如增加实现不同档次的终端的互操作性,其中每个级别的定义的大多数或全部方面可以跨越不同档次是相同的。分别针对至H.264/AVC或HEVC编码器的输入以及H.264/AVC或HEVC解码器的输出的基本单元是图像。在H.264/AVC和HEVC中,图像可以是帧或场。帧包括:亮度样本和对应的色度样本的矩阵。当源信号是交错的时,场是帧的交替样本行的集合以及可以用作编码器输入。当与亮度图像比较时,色度图像可以被子样本。例如,在4:2:0采样模式中,沿着两个坐标轴,色度图像的空间分辨率是亮度图像的空间分辨率的一半。
在H.264/AVC中,宏块是16x16的亮度样本块和对应的色度样本块。例如,在4:2:0采样模式中,宏块含有每个色度成分的一个8x8的色度样本块。在H.264/AVC中,图像被分割到一个或多个片组,以及片组含有一个或多个片。在H.264/AVC中,片由在一个特定片组内在光栅扫描中连续地排序的整数数目的宏块组成。
在草案HEVC标准中,视频图像被分成覆盖图像的区域的编码单元(CU)。CU由一个或多个预测单元(PU)和一个或多个变换单元(TU)组成,预测单元(PU)定义针对在该CU内的样本的预测过程,变换单元(TU)定义针对在该CU中的样本的预测误差编码过程。典型地,CU由样本的方形块组成,该样本的方形块具有从可能的CU大小的预定集合能够选择的大小。具有最大允许大小的CU典型地被称为LCU(最大编码单元)或编码树单元(CTU),以及视频图像被分成不重叠的LCU。还能够将LCU分割到较小的CU的组合中,例如通过递归地分割LCU和生成的CU。每个生成的CU典型地具有与它相关联的至少一个PU和至少一个TU。还能够将每个PU和TU分割成更小的PU和TU,以便分别增加预测和预测误差编码过程的粒度。能够通过将CU分割成四个相同大小的方形PU或以对称或不对称的方式将CU垂直地或水平地分割成两个矩形PU,来实现PU切分。在比特流中典型地通过信号传送图像到CU中的切分以及CU到PU和TU中的划分,允许解码器重现这些单元的预期结构。
在草案HEVC标准中,图像能够被分割成图块(tile),图块是矩形以及含有整数数量的LCU。在草案HEVC标准中,至图块的分割形成规则网格,其中图块的高度和宽度彼此不同,最大为一个LCU。在草案HEVC中,片由整数数量的CU组成。以在图块内或如果图块不使用,则在图像内的LCU的光栅扫描顺序来扫描CU。在LCU内,CU具有特定的扫描顺序。
在HEVC的工作草案(WD)5中,针对图像分割的一些关键的定义和构思被定义如下。分割被定义为将集合分成子集合,使得该集合的每个元素精确地在子集合中的一个子集合中。
在HEVC WD 5中的基本编码单元是树块。树块是具有三个样本数组的图像的NxN的亮度样本块和两个对应的色度样本块,或黑白图像或使用三个分离的彩色平面编码的图像的NxN的样本块。可以针对不同的编码和界面过程来分割树块。树块分割是从针对具有三个样本数组的图像的树块分割所产生的亮度样本块和两个对应的色度样本块,或从针对黑白图像或使用三个分离的彩色平面编码的图像的树块分割所产生的亮度样本块。每个树块被指派分割信令以标识针对帧内或帧间预测以及针对变换编码的块大小。分割是递归四叉树分割。四叉树的根与树块相关联。四叉树被分裂直到到达叶子,其被成编码节点。编码节点是两个树(预测树和变换树)的根节点。预测树指定预测块的方位和大小。预测树和相关联的预测数据被称为预测单元。变换树指定变换块的方位和大小。变换树和相关联的变换数据被称为变换单元。针对亮度和色度的分裂信息针对预测树而言是相同的,以及针对变换树而言可以相同或可以不相同。编码节点和相关联的预测和变换单元一起形成编码单元。
在HEVC WD 5中,图像被分成片和图块。片可以是树块的序列但是(当提及所谓的细粒度片时)在树块内还可以具有它的边界,该边界位于变换单元和预测单元一致(coincide)的位置。在片内的树块以光栅扫描顺序被编码和解码。对于主编码图像,将每个图像分成片是分割。
在HEVC WD5中,图块被定义为同时出现在一列和一行中的、在该图块内以光栅扫描连续排序的整数树块。对于主编码图像,每个图像分成图块是分割。在图像内以光栅扫描连续排序图块。尽管片含有在图块内以光栅扫描连续的树块,但是这些树块在图像内不是必须以光栅扫描连续的。片和图块不需要含有相同的树块序列。图块可以包括被含有在超过一个片中的树块。类似地,片可以包括被含有在若干图块中的树块。
在H.264/AVC和HEVC中,跨域片边界可以禁用图像中预测(in-picture prediction)。因此,片能够被认为是将编码图像独立分裂成能够解码的片的方式,以及因此片常常被认为是用于传输的基本单元。在许多情况下,编码器可以在比特流中指示跨域片边界关闭哪些类型的图像中预测,以及解码器操作例如在推断哪些预测源是可以使用的时考虑这个信息。例如,如果邻居宏块或CU位于不同的片中,则对于帧内预测而言,来自邻居宏块或CU的样本可以被认为是不可以使用的。
分别针对H.264/AVC或HEVC编码器的输出和H.264/AVC或HEVC解码器的输入的基本单元是网络抽象层(NAL)单元。针对面向分组的网络的传输或在结构化文件中的存储,NAL单元可以被封装到分组或类似的结构中。在H.264/AVC和HEVC中,已经指定了针对不提供成帧结构的传输或存储环境的字节流格式。字节流格式通过在每个NAL单元的前面附着起始码使得NAL单元彼此分离。为了避免NAL单元边界的假检测,编码器可以运行面向字节的起始码歧义预防算法,如果起始码将以其他方式已经出现,则该算法将歧义预防字节添加到NAL单元有效载荷。为了在面向分组和面向流的系统之间启用简单的网关操作,可以总是执行起始码歧义预防,而不管字节流格式是否使用。NAL单元可以被定义为含有将遵从的数据类型的指示和含有以RBSP的形式的数据的字节并根据需要添加歧义预防字节的语法结构。原始字节序列有效载荷(RBSP)可以被定义为含有被封装在NAL单元中的整数字节的语法结构。RBSP是空的或具有含有语法元素的数据比特的串的形式,该语法元素由RBSP停止比特跟随以及由零或更多等于0的序列比特跟随。
NAL单元由头部和有效载荷组成。在H.264/AVC和HEVC中,NAL单元头部指示NAL单元的类型以及被含有在该NAL单元中的编码片是否是参考图像或非参考图像的一部分。
H.264/AVC NAL单元头部包含:2比特的nal_ref_idc语法元素,当nal_ref_idc语法元素等于零时,该nal_ref_idc语法元素指示的是,被含有在NAL单元中的编码片是非参考图像的一部分,当nal_ref_idc语法元素大于零时,该nal_ref_idc语法元素指示的是,被含有在NAL单元中的编码片是参考图像的一部分。草案HEVC包含:1比特的nal_ref_idc语法元素,还被称为nal_ref_flag,当nal_ref_idc语法元素等于零时,该nal_ref_idc语法元素指示的是,被含有在NAL单元中的编码片是非参考图像的一部分,当nal_ref_idc语法元素等于1时,该nal_ref_idc语法元素指示的是,被含有在NAL单元中的编码片是参考图像的一部分。针对SVC和MVCNAL单元的头部另外可以含有与可伸缩性和多视角层级有关的各种指示。
在草案HEVC标准中,两字节的NAL单元头部用于所有指定的NAL单元类型。NAL单元头部的第一字节含有一个保留比特,主要指示在这个访问单元中携带的图像是参考图像还是非参考图像的一个比特指示nal_ref_flag,以及六个比特的NAL单元类型指示。NAL单元头部的第二字节包含:用于时间级别的三个比特temporal_id指示以及在草案HEVC标准中要求具有等于1的值的5个比特的保留字段(被称为reserved_one_5bits)。temporal_id语法元素可以被认为是针对NAL单元的时间标识符。
在草案HEVC标准中,NAL单元语法被指定如下:
五比特保留字段被预期为由诸如将来的可伸缩和3D视频扩展的扩展使用。预期的是,如果从比特流移除大于特定标识符值的所有NAL单元,则这五个比特将携带关于可伸缩层级的信息,诸如quality_id或类似的,dependency_id或类似的,任何其它类型的层标识符,视图顺序索引或类似的,视图标识符,类似于指示有效子比特流提取的SVC的priority_id的标识符。不失一般性,在一些示例实施例中,从reserved_one_5bits的值导出变量LayerId,其还可以被称为layer_id_plus1,例如如下:LayerId=reserved_one_5bits-1。reserved_one_5bits可以表示在HEVC的可伸缩扩展中的层标识符,例如使用以下语法:
NAL单元能够被分类成视频编码层(VCL)NAL单元和非VCL NAL单元。VCL NAL单元典型地是编码片NAL单元。在H.264/AVC中,编码片NAL单元含有表示一个或多个编码宏块的语法元素,该编码宏块中的每个编码宏块对应于在未压缩的图像中的样本块。在HEVC中,编码片NAL单元含有表示一个或多个CU的语法元素。在H.264/AVC和HEVC中,编码片NAL单元能够被指示为是在瞬时解码刷新(IDR)图像中的编码片或在非IDR图像中的编码片。在HEVC中,编码片NAL单元能够被指示为是在完全(clean)解码刷新(CDR)图像(其还可以被称为完全随机访问图像或CRA图像)中的编码片。
非VCL NAL单元可以是例如以下类型中的一个类型:序列参数集、图像参数集、补充增强信息(SEI)NAL单元、访问单元定界符、序列结束NAL单元、流结束NAL单元或填充数据NAL单元。对于解码图像的重建而言,可以需要参数集,然而,针对解码样本值的重建而言,许多其它的非VCL NAL单元不是必须的。
通过编码视频序列而保持不变的参数可以被包含在序列参数集中。除了由解码过程可以需要的参数之外,序列参数集可以非必须地含有视频使用性信息(VUI),其包含对于缓冲、图像输出定时、渲染和资源预留而言是重要的参数。在H.264/AVC中指定了三种NAL单元以携带序列参数集:含有针对该序列中的H.264/AVC VCL NAL单元的所有数据的序列参数集NAL单元、含有针对辅助编码图像的数据的序列参数集扩展NAL单元以及针对MVC和SVC VCL NAL单元的子集序列参数集。在草案HEVC标准中,序列参数集RBSP包含:能够被一个或多个图像参数集RBSP或含有缓冲时间段SEI消息的一个或多个SEI NAL单元参考的参数。图像参数集含有此类参数,该参数在若干编码图像中有可能未变。图像参数集RBSP可以包含可以被一个或多个编码图像的编码片NAL单元参考的参数。
在草案HEVC中,还有第三类型的参数集,这里被称为自适应参数集(APS),其包含在若干编码片中有可能未变的参数,但是可以例如针对每个图像或每个新图像而改变。在草案HEVC中,APS语法结构包含:与量化度量(QM)、自适应样本偏移(SAO)、自适应环路过滤(ALF)以及去块过滤有关的参数或语法元素。在草案HEVC中,APS是NAL单元以及不使用来自任何其他NAL单元的参考或预测被编码。标识符(被称为aps_id语法元素)被包含在APS NAL单元中,以及被包含在片头部中以及在该片头部中使用以参考特定APS。在另一个草案HEVC标准中,APS语法结构仅含有ALF参数。在草案HEVC标准中,自适应参数集RBSP包含:当sample_adaptive_offset_enabled_flag或adaptive_loop_filter_enabled_flag中的至少一个等于1时,能够被一个或多个编码图像的编码片NAL单元参考的参数。
草案HEVC标准还包含第四类型的参数集,被称为视频参数集(VPS),其例如在文档JCTVC-H0388(http://phenix.int-evry.fr/jct/doc_end_user/documents/8_San%20Jose/wg11/JCTVC-H0388-v4.zip)中被建议。视频参数集RBSP可以包含:能够被一个或多个序列参数集RBSP参考的参数。
可以如下来描述VPS、SPS和PPS之间的关系和层级。在参数集层级中以及在伸缩性和/或3DV的上下文中,VPS位于在SPS之上的一个级别。VPS可以包含:在整个编码视频序列中,针对跨越所有(可伸缩或视图)层的所有片而言是共同的参数。SPS包含:在整个编码视频序列中在特定(可伸缩或视图)层中的所有片而言是共同的并且可以由多个(可伸缩或视图)层来共享的参数。PPS包含:在特定层表示(在一个访问单元中的一个可伸缩或视图层的表示)中针对所有片是共同的并且可能由多个层表示中的所有片共享的参数。
VPS可以提供关于比特流中的层的依赖性关系的信息,以及在整个编码视频序列中对于跨越所有(可伸缩或视图)层而言可以应用的许多其它信息。在HEVC的可伸缩扩展中,VPS可以例如包含:从NAL单元头部导出的LayerId值至一个或多个可伸缩维度值的映射,例如对应于类似于SVC和MVC定义的针对层的dependency_id,quality_id,view_id和depth_flag。VPS可以包含针对一个或更多层的档次和级别信息,以及针对层表示的一个或多个时间子层(由在某些temporal_id值处或在其下的VCL NAL单元组成)的档次和/或级别。
H.264/AVC和HEVC语法允许许多参数集实例,以及使用唯一的标识符来标识每个实例。为了限制针对参数集所需的存储器使用,已经限制了针对参数集标识符的值范围。在H.264/AVC和草案HEVC标准中,每个片头部包含图像参数集的标识符,对于含有该片的图像的解码而言该图像参数集是活动的,以及每个图像参数集含有活动的序列参数集的标识符。在HEVC标准中,片头部另外含有APS标识符。因此,图像和序列参数集的传输不是必须与片的传输精确地同步。相反,在活动的序列和图像参数集被参考之前在任何时刻接收它们是足够的,与用于片数据的协议相比,这允许使用更可靠的传输机制在“带外”传输参数集。例如,参数集能够被包含作为在针对实时传输协议(RTP)会话的会话描述中的参数。如果在带内传送参数集,则能够使它们重复以改进误差鲁棒性。
可以由来自片或来自另一个活动参数集或在一些情况下来自另一个语法结构(诸如缓冲时间段SEI消息)的参考来激活参数集。在以下,给出在草案HEVC标准中参数集的激活的非限制性示例。
在解码过程的操作的开始时,初始认为每个自适应参数集RBSP是不活动的。在解码过程的操作期间,在任何给定的时刻,至多一个自适应参数集RBSP被认为是活动的,以及任何特定的自适应参数集RBSP的激活导致先前活动的自适应参数集RBSP(如果有的话)的去激活。
当自适应参数集RBSP(具有特定值的aps_id)是不活动的,并且它被编码片NAL单元参考(使用该值的aps_id)时,它被激活。这个自适应参数集RBSP被称为活动的自适应参数集RBSP直到它被另一个自适应参数集RBSP的激活而被去激活。自适应参数集RBSP,具有特定值的aps_id,可以在它的激活之前用于解码过程,被包含在具有temporal_id等于或小于自适应参数集NAL单元的temporal_id的至少一个访问单元中。
在解码过程的操作的开始时,初始认为每个图像参数集RBSP是不活动的。在解码过程的操作期间,在任何给定的时刻,至多一个图像参数集RBSP被认为是活动的,以及任何特定的图像参数集RBSP的激活导致先前活动的图像参数集RBSP(如果有的话)的去激活。
当图像参数集RBSP(具有特定值的pic_parameter_set_id)是不活动的,并且它被编码片NAL单元或编码片数据分割A NAL单元(使用该pic_parameter_set_id的值)参考时,它被激活。这个图像参数集RBSP被称为活动的图像参数集RBSP直到它被另一个图像参数集RBSP的激活而被去激活。图像参数集RBSP,具有特定值的pic_parameter_set_id,可以在它的激活之前用于解码过程,被包含在具有temporal_id等于或小于图像参数集NAL单元的temporal_id的至少一个访问单元中,除非通过外部构件来提供该图像参数集。
在解码过程的操作的开始时,初始认为每个序列参数集RBSP是不活动的。在解码过程的操作期间,在任何给定的时刻,至多一个序列参数集RBSP被认为是活动的,以及任何特定的序列参数集RBSP的激活导致先前活动的序列参数集RBSP(如果有的话)的去激活。
当序列参数集RBSP(具有特定值的seq_parameter_set_id)还不是活动的,并且它被图像参数集RBSP的激活而被参考(使用该seq_parameter_set_id的值)或被含有缓冲时间段SEI消息的SEI NAL单元参考(使用该seq_parameter_set_id的值)时,它被激活。这个序列参数集RBSP被称为活动的序列参数集RBSP直到它被另一个序列参数集RBSP的激活而被去激活。序列参数集RBSP,具有该特定值的seq_parameter_set_id,可以在它的激活之前用于解码过程,被包含在具有temporal_id等于0的至少一个访问单元中,除非通过外部构件来提供该序列参数集。被激活的序列参数集RBSP针对整个编码视频序列保持是活动的。
在解码过程的操作的开始时,初始认为每个视频参数集RBSP是不活动的。在解码过程的操作期间,在任何给定的时刻,至多一个视频参数集RBSP被认为是活动的,以及任何特定的视频参数集RBSP的激活导致先前活动的视频参数集RBSP(如果有的话)的去激活。
当视频参数集RBSP(具有特定值的video_parameter_set_id)还不是活动的,并且它被序列参数集RBSP的激活而被参考(使用该video_parameter_set_id的值)时,它被激活。这个视频参数集RBSP被称为活动的视频参数集RBSP直到它被另一个视频参数集RBSP的激活而被去激活。视频参数集RBSP,具有该特定值的video_parameter_set_id,可以在它的激活之前用于解码过程,被包含在具有temporal_id等于0的至少一个访问单元中,除非通过外部构件来提供该视频参数集。被激活的视频参数集RBSP针对整个编码视频序列保持是活动的。
在草案HEVC标准的解码过程的操作期间,活动的视频参数集、活动的序列参数集、活动的图像参数集RBSP和活动的自适应参数集RBSP的参数的值被认为有效。对于SEI消息的解释,针对在相同访问单元中的编码图像的VCL NAL单元的解码过程的操作而言,活动的视频参数集、活动的序列参数集、活动的图像参数集RBSP和活动的自适应参数集RBSP的值被认为有效,除非以其它方式在SEI消息语义中指定。
SEI NAL单元可以含有一个或多个SEI消息,这些SEI参数对于输出图像的解码而言不是必须的,但是可以有助于有关过程,诸如图像输出定时、渲染、错误检测、错误消除以及资源预留。在H.264/AVC和HEVC中指定了若干SEI消息,以及用户数据SEI消息使得组织和公司能够指定针对他们自己使用的SEI消息。H.264/AVC和HEVC含有针对所指定的SEI消息的语法和语义但是没有定义针对在接收器中处理该消息的过程。因此,当编码器创建SEI消息时,要求编码器遵从H.264/AVC标准或HEVC标准,分别地不要求遵照H.264/AVC标准或HEVC标准的解码器处理针对输出顺序一致性的SEI消息。在H.264/AVC和HEVC中包含SEI消息的语法和语义的其中一个原因是允许不同的系统规范来同一地解释补充信息以及从而可以互操作。旨在的是,系统规范能够要求在编码端中和在解码端中都使用特定的SEI消息,以及另外能够指定在接收器中用于处理特定SEI消息的过程。
H.264/AVC中,已经指定以下NAL单元类型和至VCL和非-VCLNAL单元的它们的分类:
在草案HEVC标准中,已经指定以下NAL单元类型和至VCL和非-VCL NAL单元的它们的分类:
编码图像是图像的编码表示。在H.264/AVC中的编码图像包括对图像进行解码所要求的VCL NAL单元。在H.264/AVC中,编码图像可以是主编码图像或冗余编码图像。主编码图像在有效的比特流的解码过程中使用,而冗余编码图像是冗余表示,该冗余表示仅应当在主编码图像不能成功地被解码时被解码。在草案HEVC中,还没有指定冗余编码图像。
在H.264/AVC和HEVC中,访问单元包括主编码图像和与它相关联的那些NAL单元。在H.264/AVC中,在访问单元内的NAL单元的出现顺序被约束如下。非必需的访问访问单元定界符NAL单元可以指示访问单元的开始。它由零或更多SEI NAL单元跟随。接下来出现主编码图像的编码片。在H.264/AVC中,主编码图像的编码片可以由针对零个或更多冗余编码图像的编码片跟随。冗余编码图像是图像的编码表示或图像的一部分。如果例如由于传输中的丢失或物理存储介质中的破坏,主编码图像没有被解码器接收,则冗余编码图像可以被解码。
在H.264/AVC中,访问单元还可以包含:辅助编码图像,其是补充主编码图像的图像,以及可以在例如显示过程中使用。辅助编码图像可以例如用作指定在解码图像中的样本的透明水平的阿尔法通道或阿尔法平面。阿尔法通道或平面可以在分层构图(composition)或渲染系统中使用,其中通过在彼此上覆盖至少部分透明的图像来形成输出图像。辅助编码图像具有与黑白冗余编码图像相同的语法和语义限制。在H.264/AVC中,辅助编码图像含有与主编码图像相同数量的宏块。
编码的视频序列被定义为在从IDR访问单元(包含)到下一个IDR访问单元(不包含)或到比特流的结束(无论哪个最早出现)的解码顺序中的连续访问单元的序列。
图像组(GOP)和它的特点可以被定义如下。GOP能够被解码,而不管任何先前的图像是否被解码。开放GOP是这样的图像组,其中当解码从该开放GOP的初始帧内图像开始时,在输出顺序中的初始帧内图像之前的图像可能不能被正确地解码。也就是说,开放GOP的图像(在帧间预测中)可以参考属于先前GOP的图像。H.264/AVC解码器能够从H.264/AVC比特流中的恢复点SEI消息来识别起始开放GOP的帧内图像。HEVC解码器能够识别起始开放GOP的帧内图像,因为特定的NAL单元类型、CRA NAL单元类型用于它的编码片。封闭GOP是这样的图像组,其中当解码从封闭GOP的初始帧内图像开始时,所有的图像能够被正确地解码。也就是说,在封闭GOP中没有图像参考先前GOP中的任何图像。在H.264/AVC和HEVC中,封闭GOP从IDR访问单元开始。因此,与开放GOP结构相比,封闭GOP结构具有更多的容错潜力,然而,代价是压缩效率中的可能降低。开放GOP编码结构在压缩中潜在地更加高效,由于在参考图像的选择中的更大灵活性。
H.264/AVC和HEVC的比特流语法指示特定图像是否是针对任何其他图像的帧间预测的参考图像。在H.264/AVC和HEVC中,任何编码类型(I,P,B)的图像能够是参考图像或非参考图像。NAL单元头部指示NAL单元的类型以及被含有在NAL单元中的编码片是否是参考图像或非参考图像的一部分。
许多混合视频编解码器,包含H.264/AVC和HEVC,在两个阶段中对视频信息进行编码。在第一阶段中,在某一图像区域或“块”中的像素或样本值被预测。例如能够通过运动补偿机制来预测这些像素或样本值,运动补偿机制涉及找到和指示先前编码视频帧中的一个编码视频帧中的区域,该区域与正在被编码的块十分接近。另外,能够通过空间机制来预测像素或样本值,空间机制涉及找到和指示空间区域关系。
使用来自先前编码图像的图像信息的预测方法还能够被称为帧间预测方法,其还可以被称为时间预测和运动补偿。使用在相同图像内的图像信息的预测方法还能够被称为帧内预测方法。
第二阶段是对像素或样本的预测块与像素或样本的原始块之间的误差进行编码的阶段。这可以通过使用指定的变换来变换像素或样本值中的差异来完成。这种变换可以是离散余弦变换(DCT)或其变型。在变换该差异后,所变换的差异被量化和熵编码。
通过变化量化过程的保真度,编码器能够控制像素或样本表示的准确性(即,图像的视觉质量)与所生成的编码视频表示的大小(即,文件大小或传输比特率)之间的平衡。
解码器通过应用类似于由编码器使用的预测机制的预测机制来重建输出视频,以便形成该像素或样本块的预测表示(使用由编码器创建的并且被存储在图像的压缩表示中的运动或空间信息)和预测的误差解码(预测误差编码的反操作以恢复在空间域中的量化预测误差信号)。
在应用像素或样本预测和误差解码过程后,解码器将预测和预测误差信号(像素或样本值)组合以形成输出视频帧。
解码器(以及编码器)还可以应用另外过滤过程,以便在将输出视频传送以用于显示和/或存储作为针对视频序列中的即将到来的图像的预测参考之前,改进输出视频的质量。
在许多视频编解码器中,包含H.264/AVC和HEVC,由与每个运动补偿图像块相关联的运动向量来指示运动信息。这些运动补偿向量中的每个运动补偿向量表示将被编码(在编码器中)或被解码(在解码器处)的图像中的图像块与在先前的编码或解码影像(或图像)中的一个编码或解码影像中的预测源块的位移。H.264/AVC和HEVC,如许多其它视频压缩标准,将图像分成矩形网格,针对矩形中的每个矩形,在参考图像中的一个参考图像中的类似块被指示用于帧间预测。预测框的位置被编码为运动向量,该运动向量指示预测块相对于被编码的块的方位。
可以使用以下因素中的一个或多个因素来描述帧间预测过程的特点。
运动向量表示的准确性。例如,运动向量可以具有四分之一像素准确性,以及可以使用有限脉冲响应(FIR)过滤器来获得分数像素方位中的样本值。
针对帧间预测的块分割。许多编码标准,包含H.264/AVC和HEVC,允许选择块的大小和形状(针对该块的大小和形状,运动向量被应用于编码器中的运动补偿预测),以及在比特流中指示所选择的大小和形状,以便解码器能够重现在该编码器中进行的运动补偿预测。
针对帧间预测的参考图像的数量。帧间预测的源是先前解码图像。许多编码标准,包含H.264/AVC和HEVC,使得能够存储针对帧间预测的多个参考图像以及以块为基础选择所使用的参考图像。例如,在H.264/AVC中可以以宏块或宏块分割为基础来选择参考图像,以及在HEVC中以PU或CU为基础来选择参考图像。许多编码标准,诸如H.264/AVC和HEVC,在比特流中包含语法结构,该语法结构使得解码器能够创建一个或多个参考图像列表。针对参考图像列表的参考图像索引可以用于指示多个参考图像中的哪个参考图像用于针对特定块的帧间预测。在一些帧间编码模式中,可以由编码器将参考图像索引编码到比特流中,或在一些情况帧间编码模式中,可以例如使用邻居块(通过编码器和解码器)来导出参考图像索引。
运动向量预测。为了在比特流中高效地表示运动向量,可以关于块特定的预测运动向量来区分地对运动向量进行编码。在许多视频编解码器中,以预定义的方式,例如通过计算相邻的块的编码或解码运动向量的中间值,来创建预测的运动向量。创建运动向量预测的另一种方式是从时间参考图像中的相邻块和/或共位块生成候选预测列表以及通过信号传送所选择的候选作为运动向量预测器。除了预测运动向量值之外,能够预测先前编码/解码的图像的参考索引。典型地,可以例如从时间参考图像中的相邻块和/或共位块来预测参考索引。典型地,可以跨越片的边界禁用运动向量的区分编码。
多假设运动补偿预测。H.264/AVC和HEVC使得在P片(本申请中被称为单向预测片)中能够使用单个预测块,或针对双向预测片能够使用两个运动补偿预测块的线性组合,双向预测片还被称为B片。在B片中的个体块可以是双向预测的、单向预测的或帧内预测的,以及在P片中的个体块可以是单向预测的或帧内预测的。针对双向预测图像的参考图像可以不局限于是在输出顺序中的随后图像和先前图像,而是相反可以使用任何参考图像。在许多编码标准中,诸如H.264/AVC和HEVC,针对P片构建一个参考图像列表,还被称为参考图像列表0,以及针对B片构建两个参考图像列表,列表0和列表1。对于B片,在前向方向中的预测可以参考来自参考图像列表0中的参考图像的预测,以及在后向方向中的预测可以参考来自参考图像列表1中的参考图像的预测,即使用于预测的参考图像可以具有与彼此或与当前图像有关的任何解码或输出顺序。
加权预测。许多编码标准针对帧间(P)图像的预测块使用1的预测权重,以及针对B图像的每个预测块使用0.5的预测权重(导致取平均)。H.264/AVC允许针对P和B片两者的加权预测。在隐式的加权预测中,权重与图像顺序计数成比例,尽管在显式加权预测中,显式地指示预测权重。
在许多视频编解码器中,在运动补偿后的预测残差首先使用变换内核(如DCT)被变换以及接着被编码。针对此的原因在于在残差之间常常仍然存在一些相关,以及在许多情况下,变换能够有助于降低这种相关以及提供更高效的编码。
在草案HEVC中,每个PU具有与它相关联的预测信息,该预测信息定义什么类型的预测将被应用于该PU内的像素(例如,针对帧间预测的PU的运动向量信息,以及针对帧内预测的PU的帧内预测方向性信息)。类似地,每个TU与描述针对该TU内的样本的预测误差解码过程的信息(包含例如DCT系数信息)相关联。可以在CU级别通过信号传送预测误差编码是否应用于每个CU。在没有与该CU相关联的预测误差残差的情况下,能够认为没有针对该CU的TU。
在一些编码格式和编解码器中,在所谓的短期和长期参考图像之间进行区分。这个区分可以影响一些解码过程,诸如在时间直接模式中的运动向量伸缩或隐式加权预测。如果用于时间直接模式的参考图像中的两个参考图像是短期参考图像,则可以根据当前图像和参考图像中的每个参考图像之间的图像顺序计数(POC)差异,来伸缩在预测中使用的运动向量。然而,如果针对时间直接模式的至少一个参考图像是长期参考图像,则可以使用运动向量的默认伸缩,例如可以使用将该运动伸缩到一半。类似地,如果短期参考图像用于隐式加权预测,则可以根据当前图像的POC和参考图像的POC之间的POC差异来伸缩预测权重。然而,如果长期参考图像用于隐式加权预测,则可以使用默认的预测权重,诸如在针对双向预测块的隐式加权预测中的0.5。
一些视频编码格式,诸如H.264/AVC,包含frame_num语法元素,其用于与多个参考图像有关的各种解码过程。在H.264/AVC中,针对IDR图像的frame_num的值是0。针对非IDR图像的frame_num的值等于在解码顺序中先前参考图像的frame_num加1(在模运算中,即在frame_num的最大值后,frame_num的值绕回到0)。
H.264/AVC和HEVC包含图像顺序计数(POC)的构思。针对每个图像导出POC的值,以及该POC的值随着输出顺序中的图像方位的增加是非减的。因此,POC指示图像的输出顺序。POC可以在例如针对双向预测片的时间直接模式中的运动向量的隐式伸缩、针对加权预测中的隐式导出权重以及针对参考图像列表初始化的解码过程中使用。此外,POC可以在输出顺序一致性的验证中使用。在H.264/AVC中,相对于先前的IDR图像或含有将所有图像标记为“不用于参考”的存储器管理控制操作的图像,来指定POC。
H.264/AVC指定针对解码参考图像标记的过程,以便控制解码器中的存储器消耗。在序列参数集中确定用于帧间预测的参考图像的最大号码,还被称为M。当对参考图像进行解码时,它被标记为“用于参考”。如果参考图像的解码导致超过M个图像被标记为“用于参考”,则至少一个图像被标记为“不用于参考”。存在用于解码参考图像标记的两种类型的操作:自适应存储器控制和滑动窗口。以图像为基础来选择针对解码参考图像标记的操作模式。自适应存储器控制使得能够明确地通过信号传送哪些图像被标记为“不用于参考”,以及还可以将长期索引指配给短期参考图像。自适应存储器控制可以要求在比特流中存在存储器管理控制操作(MMCO)参数。可以将MMCO参数包含在解码参考图像标记语法结构中。如果滑动窗口操作模式处于使用中,以及有M个图像被标记为“用于参考”,则在被标记为“用于参考”的那些短期参考图像之中是第一解码图像的短期参考图像被标记为“不用于参考”。也就是说,滑动窗口操作模式导致在短期参考图像中的先进先出缓冲操作。
在H.264/AVC中的其中一种存储器管理控制操作使得所有参考图像(除了当前的图像之外)被标记为“不用于参考”。瞬时解码刷新(IDR)图像含有仅帧内编码片以及导致参考图像的类似“重置”。
在草案HEVC标准中,不使用参考图像标记语法结构和有关的解码过程,而是出于类似的目的,替代地使用参考图像集(RPS)语法结构和解码过程。针对图像有效或活动的参考图像集包含用作针对该图像的参考的所有参考图像,以及保持被标记为针对解码顺序中的任何随后图像的“用于参考”的所有参考图像。存在参考图像集的六个子集,它们被称为RefPicSetStCurr0、RefPicSetStCurr1、RefPicSetStFoll0、RefPicSetStFoll1、RefPicSetLtCurr和RefPicSetLtFoll。这六个子集的注释如下。“Curr”指的是被包含在当前图像的参考图像列表中的参考图像,以及因此可以用作针对当前图像的帧间预测参考。“Foll”指的是没有被包含在当前图像的参考图像列表中的参考图像,但是可以在解码顺序中在随后的图像中用作参考图像。“St”指的是短期参考图像,一般可以通过它们的POC值的最低有效位的某一数字来标识短期参考图像。“Lt”指的是长期参考图像,长期参考图像被特定的标识以及一般具有比能够由提及的最低有效位的某一数字所表示的POC值的差异更大的相对于当前图像的POC值的差异。“0”指的是具有比当前图像的POC值更小的POC值的那些参考图像。“1”指的是具有比当前图像的POC值更大的POC值的那些参考图像。RefPicSetStCurr0、RefPicSetStCurr1、RefPicSetStFoll0和RefPicSetStFoll1统称为参考图像集的短期子集。RefPicSetLtCurr和RefPicSetLtFoll统称为参考图像集的长期子集。
在草案HEVC标准中,参考图像集可以在序列参数集中被指定以及通过至参考图像集的索引在片头部中投入使用。参考图像集还可以在片头部中被指定。参考图像集的长期子集一般仅在片头部中被指定,而相同参考图像集的短期子集可以在图像参数集或片头部中被指定。参考图像集可以被独立地编码或可以从另一个参考图像集(被称为RPS间预测)来预测。当参考图像集被独立地编码时,语法结构包含:在三种类型的参考图像上迭代的至多三个环路;具有比当前图像低的POC值的短期参考图像,具有比当前图像高的POC值的短期参考图像,以及长期参考图像。每个环路条目指定将被标记为“用于参考”的图像。一般地,该图像被指定为具有不同的POC值。RPS间预测利用的事实是,当前图像的参考图像集能够从先前解码的图像的参考图像集来预测。这是因为当前图像的所有参考图像是先前图像的参考图像或是先前解码的图像本身。仅需要指示这些图像中的哪些图像应当是参考图像以及用于当前图像的预测。在两种类型的参考图像集编码中,针对每个参考图像另外地发送标志(used_by_curr_pic_X_flag),该标志指示该参考图像是由当前图像用于参考(被包含在*Curr列表中)还是不由当前图像用于参考(被包含在*Foll列表中)。被包含在由当前片使用的参考图像集的图像被标记为“用于参考”,以及没有在由当前片使用的参考图像集中的图像被标记为“不用于参考”。如果当前图像是IDR图像,则RefPicSetStCurr0、RefPicSetStCurr1、RefPicSetStFoll0、RefPicSetStFoll1、RefPicSetLtCurr和RefPicSetLtFoll全被设置为空。
解码图像缓冲器(DPB)可以在编码器中和/或在解码器中使用。有两个原因来缓冲解码的图像,用于在帧间预测中的参考以及用于将解码图像重新排序到输出顺序中。因为H.264/AVC和HEVC提供针对参考图像标记和输出重新排序两者的更大的灵活性,因此针对参考图像缓冲和输出图像缓冲的各自的缓冲器可能浪费存储器资源。因此,DPB可以包含:针对参考图像和输出重新排序的统一的解码图像缓冲过程。当解码图像不再用作参考以及对于输出而言不需要时,可以从DPB移除解码图像。
在H.264/AVC和HEVC的许多编码模式中,使用至参考图像列表的索引来指示针对帧间预测的参考图像。可以使用可变长度编码来编码该索引,这通常导致较小的索引以具有针对对应语法元素的更小值。在H.264/AVC和HEVC中,针对每个双向预测(B)片生成两个参考图像列表(参考图像列表0和参考图像列表1),以及针对每个帧间编码(P)片形成一个参考图像列表(参考图像列表0)。另外,针对在HEVC中的B片,在已经构建了最终的参考图像列表(列表0和列表1)之后可以构建组合列表(列表C)。该组合列表能够用于B片内的单向预测(还被称为单一方向预测)。
典型地,在两个步骤中构建参考图像列表,诸如参考图像列表0和参考图像列表1:首先,生成初始参考图像列表。可以例如以frame_num、POC、temporal_id或关于预测层级(诸如GOP结构)的信息或它们的任何组合为基础,来生成该初始参考图像列表。第二,可以通过图像列表重新排序(RPLR)命令(还被称为参考图像列表修改语法结构,其可以被含有在片头部中)来重新排序初始参考图像列表。RPLR命令指示被排序到各自参考图像列表的开始的图像。这个第二步骤还可以被称为参考图像列表修改过程,以及RPLR命令可以被包含在参考图像列表修改语法结构中。如果使用参考图像集,则参考图像列表0可以被初始化以首先含有RefPicSetStCurr0,由RefPicSetStCurr1跟随,由RefPicSetLtCurr跟随。参考图像列表1可以被初始化以首先含有RefPicSetStCurr1,由RefPicSetStCurr0跟随。可以通过参考图像列表修改语法结构来修改初始参考图像列表,其中可以通过至该列表的条目索引来标识在初始参考图像列表中的图像。
许多高效视频编解码器(诸如草案HEVC编解码器)使用另外的运动信息编码/解码机制,常常被称为合并/合并模式/过程/机制,其中不使用任何修改/校正来预测和使用块/PU的所有运动信息。针对PU的上述运动信息可以包括:1)‘PU是使用仅参考图像列表0单向预测的’还是‘PU是使用仅参考图像列表1单向预测的’还是‘PU是使用参考图像列表0和列表1两者双向预测的’的信息;2)对应于参考图像列表0的运动向量值;3)在参考图像列表0中的参考图像索引;4)对应于参考图像列表1的运动向量值;以及5)在参考图像列表1中的参考图像索引。类似地,使用在时间参考图像中的相邻块和/或共位块的运动信息来执行预测运动信息。可以通过包含与可以使用的相邻/共位块相关联的的运动预测候选来构建通常被称为合并列表的列表,以及通过信号传送在该列表中的选择的预定预测候选的索引,以及将所选择的候选的运动信息复制到当前PU的运动信息。当针对整个CU使用合并机制,以及针对该CU的预测信号用作重建信号,即不处理预测残差时,对CU进行这种类型的编码/解码典型地被称为跳过模式或基于合并的跳过模式。除了跳过模式之外,也可以针对个体PU(不必是如在跳过模式中的整个CU)使用合并机制,以及在这种情况下,预测残差能够用于改进预测质量。这种类型的预测模式典型地被称为合并间模式(inter-merge mode)。
可以例如使用被包含在片头部语法中的参考图像列表组合语法结构,基于参考图像列表0和/或参考图像列表1来生成合并列表。可以存在参考图像列表组合语法结构,由编码器将该图像列表组合语法结构创建到比特流中以及由解码器从该比特流将该图像列表组合语法结构进行解码,图像列表组合语法结构指示合并列表的内容。该语法结构可以指示的是,参考图像列表0和参考图像列表1被组合成用于正在被单一方向预测的预测单元的另外的参考图像列表组合。该语法结构可以包含标志,当该标志等于某一值时,该标志指示的是,参考图像列表0和参考图像列表1是相同的,因此参考图像列表0用作参考图像列表组合。该语法结构可以包含:条目的列表,每个条目指定参考图像列表(列表0或列表1)以及至指定的列表的参考索引,其中条目指定将被包含在合并列表中的参考图像。
针对解码的参考图像标记的语法结构可以存在于视频编码系统中。例如,当已经完成图像的解码时,解码的参考图像标记语法结构(如果存在)可以用于自适应地将图像标记为“不用于参考”或“用于长期参考”。如果解码的参考图像标记语法结构不存在,以及被标记为“用于参考”的图像的数量不能再增加,则可以使用滑动窗口参考图像标记,滑动窗口参考图像标记基本上将最早的(在解码顺序中)解码参考图像标记为不用于参考。
在可伸缩视频编码中,能够将视频信号编码到基础层和一个或多个增强层中。增强层可以增强由另一个层或其部分表示的视频内容的时间分辨率(例如,帧速率)、空间分辨率或仅质量。每个层连同所有它的依赖层是以某一空间分辨率、时间分辨率和质量等级的视频信号的一种表示。在这个文档中,本发明人将可伸缩层连同所有它的依赖层称为“可伸缩层表示”。对应于可伸缩层表示的可伸缩比特流的一部分能够被提取和解码以产生以某一保真度的原始信号的表示。
一些编码标准允许创建可伸缩的比特流。能够通过解码可伸缩比特流的仅某些部分来产生有意义的解码表示。可伸缩的比特流能够例如用于在流式传输服务器中的预编码的单播流的速率自适应,以及用于将单个比特流传输给具有不同能力和/或具有不同网络条件的终端。在第64次MPEG会议,2003年3月10日至14日,芭堤雅,泰国,ISO/IEC JTC1SC29WG11(MPEG)输出文档N5540,“Apphcations and Requirements for ScalableVideo Coding”中能够找到针对可伸缩视频编码的一些其它用例的列表。
在一些情况下,在某一位置或甚至在任意方位处能够将增强层中的数据截短,其中每个截短的方位可以包含表示逐渐增强的视觉质量的另外的数据。此类可伸缩性被称为细粒度(粒度)可伸缩性(FGS)。FGS被包含在SVC标准的一些草案版本中,但是最后将它从最终的SVC标准中排除。随后,在SVC标准的一些草案版本的上下文中论述FGS。由不能被截短的那些增强层提供的可伸缩性被称为粗粒度(颗粒度)可伸缩性(CGS)。它共同地包含传统的质量(SNR)可伸缩性和空间可伸缩性。SVC标准支持所谓的中间粒度可伸缩性(MGS),其中类似于SNR可伸缩层图像来编码质量增强图像,但是通过具有大于0的quality_id语法元素,类似于FGS层图像由高级语法元素来指示该质量增强图像。
SVC使用层间预测机制,其中能够从不同于当前重建层或下一个较低层之外的层来预测某些信息。能够被层间预测的信息包含:内部纹理、运动和残差数据。层间运动预测包含:块编码模式、头部信息等的预测,其中来自较低层的运动能够用于较高层的预测。在帧内编码的情况下,来自周围宏块或来自较低层的共位宏块的预测是可能的。这些预测技术不使用来自较早编码访问单元的信息,以及因此被称为帧内预测技术。此外,来自较低层的残差数据也能够用于当前层的预测。
SVC指定被称为单环路解码的构思。通过使用约束的内部纹理预测模式来启用它,从而层间内部纹理预测能够应用于宏块(MB),针对该宏块(MB),基础层的对应块位于MB内的内部。同时,在基础层中的那些MB内(intra-MB)使用约束帧内预测(例如,具有等于1的语法元素“constrained_intra_pred_flag”)。在单环路解码中,解码器仅针对期望回放的可伸缩层(被称为“期望层”或“目标层”)执行运动补偿和全图像重建,从而极大降低解码复杂性。不同于期望层的所有的其它层不需要被完全解码,因为不用于层间预测的MB的数据的全部或一部分(不管它是层间帧内纹理预测,层间运动预测或层间残差预测)对于期望层的重建而言是不需要的。
对于解码大多数图像而言,需要单解码环路,然而第二解码环路有选择地应用于重建基础表示,需要该基础表示作为预测参考但是不用于输出或显示,以及仅针对所谓的关键图像(对于关键图像而言,“store_ref_base_pic_flag”等于1)来重建基础表示。
在SVC草案中的可伸缩结构以三种语法元素为特征:“temporal_id”,“dependency_id”和“quality_id”。语法元素“temporal_id”用于指示时间可伸缩层级或,间接地,帧速率。包括较小的最大“temporal_id”值的图像的可伸缩层表示比包括较大的最大“temporal_id”的图像的可伸缩层表示具有较小帧速率。给定时间层典型地依赖于较低时间层(即,具有较小“temporal_id”值的时间层)而不是依赖于任何较高时间层。语法元素“dependency_id”用于指示CGS层间编码依赖层级(其,如前所述,包含SNR和空间可伸缩性两者)。在任何时间级别位置处,较小“dependency_id”值的图像可以用于针对编码具有较大“dependency_id”值的图像的编码的层间预测。语法元素“quality_id”用于指示FGS或MGS层的质量级别层级。在任何时间位置处,以及具有相同的“dependency_id”值,具有“quality_id”等于QL的图像使用具有“quality_id”等于QL-1的图像以用于层间预测。具有“quality_id”大于0的编码片可以被编码成能够截短的FGS片或不能截短的MGS片。
出于简化,在一个访问单元中具有相同“dependency_id”值的所有数据单元(例如,在SVC情景中,网络抽象层单元或NAL单元)被称为依赖单元或依赖表示。在一个依赖单元内,具有相同“quality_id”值的所有数据单元被称为质量单元或层表示。
基础表示,还被称为解码的基础图像,是从解码具有“quality_id”等于0的依赖单元的视频编码层(VCL)NAL单元所产生的解码图像,以及对于其而言,store_ref_base_pic_flag被设置等于1。增强表示,还被称为解码图像,从规则解码过程产生,在该规则解码过程中,将针对最高依赖表示而存在的所有层表示进行解码。
如前所述,CGS包含空间可伸缩性和SNR可伸缩性。空间可伸缩性最初被设计以支持具有不同分辨率的视频的表示。对于每个时刻,VCLNAL单元被编码在相同访问单元中,以及这些VCL NAL单元能够对应于不同的分辨率。在解码期间,低分辨率的VCL NAL单元提供运动场和残差,其能够可选择地被高分辨率图像的最终解码和重建继承。当与较旧的视频压缩标准相比时,SVC的空间可伸缩性已经被泛化为使得基础层能够是增强层的裁剪和缩放的版本。
与FCS质量层类似,使用“quality_id”来指示MGS质量层。对于每个依赖单元(具有相同的“dependency_id”)而言,存在“quality_id”等于0的层以及能够存在“quality_id”大于0的其它层。取决于片是否被编码成能够截短的片,具有“quality_id”大于0的这些层是MGS层或FGS层。
在FGS增强层的基本形式中,使用仅层间预测。因此,能够自由地截短FGS增强层而不导致在解码序列中的任何误差传播。然而,FGS的基础形式遭受低压缩效率之苦。出现这个问题是因为仅低质量图像用于帧间预测参考。因此已经建议的是,FGS增强图像用作帧间预测参考。然而,当丢弃一些FGS数据时,这可能导致编码-解码失配,还被称为漂移。
草案SVC标准的一个特征是,能够自由地扔掉或截短FGS NAL单元,以及SVCV标准的特征是,能够自由地扔掉(但是不能被截短)MGS NAL单元而不影响比特流的一致性。如上所述,当在编码期间,那些FGS或MGS数据已经用于帧间预测参考时,数据的扔掉或截短将导致在解码器层侧中和在编码器侧中的解码图像之间的失配。这种失配还被称为漂移。
为了控制由于FGS或MGS数据的扔掉或截短而产生的偏移,SVC应用以下解决方案:在某一依赖单元中,基础表示(通过解码仅具有“quality_id”等于0的CGS图像和所有依赖的较低层数据)被存储在解码的图像缓冲器中。当编码具有相同“dependency_id”值的随后的依赖单元时,所有NAL单元,包含FGS或MGS NAL单元,使用该基础表示以用于帧间预测参考。因此,在这个访问单元处,使由于在较早访问单元中的FGS或MGS NAL单元的扔掉或截短而产生的所有漂移停止。对于具有相同“dependency_id”值的其它依赖单元,所有NAL单元使用解码的图像以用于帧间预测参考,用于高编码效率。
每个NAL单元将语法元素“use_ref_base_pic_flag”包含在NAL单元头部中。当这个元素的值等于1时,在帧间预测过程期间,该NAL单元的解码使用参考图像的基础表示。语法元素“store_ref_base_pic_flag”指定是(当等于1时)否(当等于0时)存储当前图像的基础表示以用于将来图像用于帧间预测。
具有“quality_id”大于0的NAL单元不含有与参考图像列表构建和加权预测有关的语法元素,即语法元素“num_ref_active_1x_minus1”(x=0或1),参考图像列表重排序语法表,以及加权预测语法表不存在。因此,当需要时,MGS或FGS层必须从相同依赖单元的具有“quality_id”等于0的NAL单元来继承这些语法元素。
在SVC中,参考图像列表由仅基础表示(当“use_ref_base_pic_flag”等于1时)或仅没有被标记为“基础表示”的解码图像(当“use_ref_base_pic_flag”等于0时)组成,但是同时绝不能存在它们两个。
针对SVC的解码过程的变量DQId的值可以被设置为等于dependency_id x16+quality_id,或等同地(dependency_id<<4)+quality_id,其中<<是向左位移操作。在SVC中的变量DQIdMax的值可以被设置为等于在被解码的访问单元中针对任何VCL NAL单元的最大DQId值。变量DependencyIdMax可以被设置为等于(DQIdMax>>4),其中>>是向右位移操作。在一致性的SVC编码视频序列中,针对编码视频序列的所有访问单元而言DependencyIdMax是相同的。
在SVC中已经指定了可伸缩嵌套SEI消息。可伸缩嵌套SEI消息提供用于将SEI消息与比特流的子集相关联的机制。可伸缩嵌套SEI消息含有一个或多个SEI消息,该一个或多个SEI消息本身不是可伸缩嵌套SEI消息。被含有在可伸缩嵌套SEI消息中的SEI消息被称为嵌套SEI消息。没有被含有在可伸缩嵌套SEI消息中的SEI消息被称为非嵌套SEI消息。当存在于可伸缩嵌套SEI消息中时,嵌套SEI消息应用的范围由语法元素all_layer_representations_in_au_flag、num_layer_representations_minus1、sei_dependency_id[i]、sei_quality_id[i]和sei_temporal_id来指示。等于1的all_layer_representations_in_au_flag指定的是,嵌套的SEI消息应用于该访问单元的所有层表示。等于0的all_layer_representations_in_au_flag指定的是,嵌套的SEI消息的范围由语法元素num_layer_representations_minus1、sei_dependency_id[i]、sei_quality_id[i]和sei_temporal_id指定。当num_layer_representations_minus1存在时,num_layer_representations_minus1指定在可伸缩嵌套SEI消息中存在语法元素对sei_dependency_id[i]和sei_quality_id[i]的数目。当num_layer_representations_minus1不存在时,它被推断为等于(numSVCLayers-1),其中numSVCLayers是在访问单元的主编码图像中存在的层表示的数目。sei_dependency_id[i]和sei_quality_id[i]分别指示嵌套SEI消息应用于的层表示的dependency_id和quality_id值。访问单元可以含有或可以不含有具有dependency_id等于sei_dependency_id[i]和quality_id等于sei_quality_id[i]的层表示。当num_layer_representations_minus1不存在时,针对在0到num_layer_representations_minus1(其中num_layer_representations_minus1是推断值)(包含的)范围中的i的sei_dependency_id[i]和sei_quality_id[i]的值被推断为如在以下中被指定:
1.让setDQId是针对在访问单元的主编码图像中存在的所有层表示的值DQId的集合。
2.针对从0前进到num_layer_representations_minus1(包含)的i,以下应用:
a.sei_dependency_id[i]和sei_quality_id[i]被推断为分别等于(minDQId>>4)和(minDQId&15),其中minDQId是在集合setDQId中的最小值(DQId的最小值)。
b.从setDQId移除集合setDQId的最小值(DQId的最小值),以及因此在集合setDQId中的元素的数目递减1。
sei_temporal_id指示嵌套SEI消息应用于的比特流子集的temporal_id值。当sei_temporal_id不存在时,它应当被推断为等于访问单元的temporal_id。
在SVC中,除了活动图像参数集RBSP外,针对在解码目标层表示中通过层间预测可以参考的层表示(具有小于DQIdMax的特定值的DQId)而言,零个或更多个图像参数集RBSP可以特定是活动的。此类图像参数集RBSP被称为针对特定值的DQId(小于DQIdMax)的活动层图像参数集RBSP。在活动图像参数集RBSP上的限制还应用于具有特定值的DQId的活动层图像参数集RBSP。
在SVC中,当图像参数集RBSP(具有特定值的pic_parameter_set_id)不是活动图像参数集RBSP,以及它被具有等于DQIdMax的DQId的编码片NAL单元参考(使用该pic_parameter_set_id值)时,它被激活。这个图像参数集RBSP被称为活动图像参数集RBSP,直到当另一个图像参数集RBSP变成活动图像参数集RBSP时,它被去激活。图像参数集RBSP,具有特定值的pic_parameter_set_id,在它的激活之前能够用于解码过程。
在SVC中,当图像参数集RBSP(具有特定值的pic_parameter_set_id)不是针对小于DQIdMax的特定值的DQId的活动层图像参数集RBSP,以及它被具有特定值的DQId的编码片NAL单元参考(使用该pic_parameter_set_id值)时,针对具有特定值的DQId的层表示而言它被激活。这个图像参数集RBSP被称为针对特定值的DQId的活动层图像参数集RBSP,直到当另一个图像参数集RBSP变成针对特定值的DQId的活动层图像参数集RBSP时或当解码具有小于或等于特定值的DQId的DQIdMax的访问单元时,它被去激活。图像参数集RBSP,具有特定值的pic_parameter_set_id,在它的激活之前能够用于解码过程。
在SVC中,SVC序列参数集RBSP可以被定义针对序列参数集RBSP或子集序列参数集RBSP的集合性术语(collective term)。
在SVC中,当具有特定值的seq_parameter_set_id的SVC序列参数集RBSP还不是活动的SVC序列参数集RBSP,以及它被图像参数集RBSP的激活所参考(使用seq_parameter_set_id的值)作为活动图像参数集RBSP时,则SVC序列参数集RBSP被激活。活动的SVC序列参数集RBSP保持活动直到当另一个SVC序列参数集RBSP变成活动的SVC序列参数集RBSP时它被去激活。序列参数集RBSP,具有该特定值的seq_parameter_set_id,在它的激活之前可以用于解码过程。
在SVC中,在SVC序列参数集RBSP中的profile_idc和level_idc指示当SVC序列参数集RBSP是活动的SVC序列参数集RBSP时编码视频序列符合的档次和级别。
除了活动的SVC序列参数集RBSP外,针对在解码目标层表示中通过层间预测可以参考的层表示(具有小于DQIdMax的特定值的DQId)而言,零个或更多SVC序列参数集RBSP可以特定地是活动的。此类SVC序列参数集RBSP被称为针对特定值的DQId(小于DQIdMax)的活动层的SVC序列参数集RBSP。在活动的SVC序列参数集RBSP上的限制还应用于具有特定值的DQId的活动层SVC序列参数集RBSP。
在SVC中,当具有特定值的seq_parameter_set_id的序列参数集RBSP还不是针对等于0的DQId的活动层SVC序列参数集RBSP,以及它被图像参数集RBSP的激活所参考(使用该seq_parameter_set_id的值)以及图像参数集RBSP被基础层编码片NAL单元或缓冲的时间段SEI消息所激活以及DQIdMax大于0(针对等于0的DQId,图像参数集RBSP变成活动层图像参数集RBSP)时,针对具有等于0的DQId的层表示来激活序列参数集RBSP。这个序列参数集RBSP被称为针对等于0的DQId的活动层SVC序列参数集RBSP,直到当另一个SVC序列参数集RBSP变成针对等于0的DQId的活动层SVC序列参数集RBSP时或当解码具有DQIdMax等于0的访问单元时它被去激活。序列参数集RBSP,具有特定值的seq_parameter_set_id,在它的激活之前可以用于解码过程。
在SVC中,当具有特定值的seq_parameter_set_id的子集序列参数集RBSP还不是针对小于DQIdMax的特定值的DQId的活动层SVC序列参数集RBSP,以及它被激活针对被包含在可伸缩嵌套SEI消息中的针对特定值的DQId(使用seq_parameter_set_id的值)的层缓冲时间段SEI消息所参考时,针对具有该特定值的DQId的层表示,激活子集序列参数集RBSP。这个子集序列参数集RBSP被称为针对特定值的DQId的活动层SVC序列参数集RBSP,直到当另一个SVC序列参数集RBSP变成针对特定值的DQId的活动层SVC序列参数集RBSP时或当解码具有DQIdMax小于或等于特定值的DQId的访问单元时它被去激活。子集序列参数集RBSP,具有特定值的seq_parameter_set_id,在它的激活之前可以用于解码过程。
让spsA和spsB是具有以下属性中的一个属性的两个SVC序列参数集RBSP:
-spsA是被具有特定值dependency_id和等于0的quality_id的层表示的编码片NAL单元(经由图像参数集)所参考的SVC序列参数集RBSP,spsB是被在相同访问单元中的具有相同值的dependency_id和大于0的quality_id的另一个层表示的编码片NAL单元(经由图像参数集)所参考的SVC序列参数集RBSP,
-spsA是针对访问单元的活动SVC序列参数集RBSP以及spsB是被具有等于DQIdMax的DQId的层表示的编码片NAL单元(经由图像参数集)所参考的SVC序列参数集RBSP,
-spsA是针对IDR访问单元的活动SVC序列参数集RBSP,以及spsB是针对相同编码视频序列的任何非-IDR访问单元的活动SVC序列参数集RBSP。
SVC序列参数集RBSP spsA和spsB受关于在以下中指定的它们的内容所限制:
-在spsA和spsB的序列参数集数据语法结构中的语法元素的值可以仅针对以下语法元素而不同,以及在其他情况下是相同的:profile_idc,constraint_setX_flag(其中X等于0至5,包含),reserved_zero_2bits,level-idc,seq_parameter_set_id,timing_info_present_flag,num_units_in_tick,time_scale,fixed_frame_rate_flag,nal_hrd_parameters_present_flag,vcl_hrd_parameters_present_flag,low_delay_hrd_flag,pic_struct_present_flag,以及hrd_parameters()语法结构。总之,仅档次和级别有关的指示、档次兼容指示、HRD参数和图像定时有关的指示可以不同。
-当spsA是活动SVC序列参数集RBSP,以及spsB是被具有等于DQIdMax的DQId的层表示的编码片NAL单元所参考的SVC序列参数集RBSP时,在spsA中由level_idc(或level_idc和constraint_set3_flag)所指定的级别不小于spsB中由level_idc(或level_idc和constraint_set3_flag)所指定的级别。
-在spsA和spsB两者中存在seq_parameter_set_svc_extension()语法结构时,在seq_parameter_set_svc_extension()语法结构中的所有语法元素的值是相同的。
在SVC中,可伸缩信息SEI消息提供针对比特流的子集的可伸缩信息。可伸缩信息SEI消息没有被包含在可伸缩嵌套SEI消息中。可伸缩信息SEI消息可以存在于访问单元中,其中所有的依赖表示是IDR依赖表示。由与可伸缩信息SEI消息相关联的访问单元以及在解码顺序(直到(但是不包括)下一个访问单元,其中所有依赖表示是IDR依赖表示(如果存在),或比特流的结束(否则))中所有随后的访问单元组成的访问单元的集合被称为目标访问单元集合。可伸缩信息SEI消息应用于目标访问单元集合。可伸缩信息SEI消息提供针对目标访问单元集合的子集的信息。这些子集被称为可伸缩层。可伸缩层表示NAL单元的子集,在目标访问单元集合的内部,其由具有的相同值的dependency_id,quality_id和temporal_id的VCL NAL单元,如由可伸缩信息SEI消息指示的,以及相关联的非VCLNAL单元组成。特定可伸缩层的表示是表示特定可伸缩层和特定可伸缩层直接或间接依赖的所有可伸缩层的集合并的NAL单元的集合。可伸缩层的表示还被称为可伸缩层表示。术语可伸缩层的表示和可伸缩层表示还可以用于指代能够从可伸缩层表示的NAL单元重建的访问单元集合。能够独立于不属于可伸缩层表示的所有NAL单元来解码可伸缩层表示。可伸缩层表示的解码结果是通过解码可伸缩层表示的访问单元集合获得的解码图像的集合
除了其它方面外,在SVC中的可伸缩信息SEI消息可以通过dependency_id,quality_id和temporal_id值的集合来指定一个或多个可伸缩层。具体地,可伸缩信息SEI消息可以包含:针对每个可伸缩层i的语法元素dependency_id[i],quality_id[i]和temporal_id[i],它们等于可伸缩层的VCL NAL单元的各自的dependency_id,quality_id和temporal_id的值。所有可伸缩层的VCL NAL单元具有相同值的dependency_id,quality_id和temporal_id。
除了其它方面外,在SVC中的可伸缩信息SEI消息可以包含:针对可伸缩层i的layer_profile_level_idc[i],其指示可伸缩层的表示的一致性点。layer_profile_level_idc[i]是包括profile_idc,constraint_set0_flag,constraint_set1_flag,constraint_set2_flag,constraint_set3_flag,constraint_set4_flag,constraint_set5_flag,reserved_zero_2bits和level_idc的三个字节的精确副本,就好像这些语法元素用于指定当前可伸缩层的表示的档次和级别一致性。
如较早指出的,MVC是H.264/AVC的扩展。H.264/AVC的其中许多定义、构思、语法结构、语义和解码过程也同样地或具有某些一般化或约束也应用于MVC。在以下描述MVC的一些定义、构思、语法结构、语义和解码过程。
在MVC中的访问单元被定义为NAL单元的集合,该NAL单元在解码的顺序中是连续的以及含有恰好一个主编码图像,该主编码图像由一个或多个视图成分组成。除了主编码图像之外,访问单元还可以含有一个或多个冗余编码图像、一个辅助编码图像或不含有编码图像的片和片数据分割的其它NAL单元。访问单元的解码导致由一个或多个解码视图成分组成的一个解码图像,当解码误差时,可能影响该解码的比特流误差或其它误差不会出现。也就是说,在MVC中的访问单元含有针对一个输出时刻的多个视图的视图成分。
在MVC中的视图成分被称为在单个访问单元中的视图的编码表示。
视图间预测可以在MVC中使用以及指的是从相同访问单元的不同视图成分的解码样本的视图成分的预测。在MVC中,类似于帧间预测来实现视图间预测。例如,视图间参考图像被放置在相同的参考图像列表(多个)中作为针对帧间预测的参考图像,以及针对视图间和参考图像间来类似地编码或推断参考索引以及运动向量。
锚图像是编码图像,其中所有片可以参考仅相同访问单元内的片,即可以使用视图间预测(inter-view prediction),而不是使用帧间预测,以及在输出顺序中的所有跟随的编码图像不使用来自在解码顺序中的编码图像之前的任何图像的帧间预测。可以针对IDR视图成分使用视图间预测,该IDR视图成分是非基础视图的一部分。在MVC中的基础视图是在编码视频序列中具有最小值的视图顺序索引的视图。基础视图能够独立于其它视图被解码,以及不使用视图间预测。能够由支持仅单个视图档次(profile)(诸如H.264/AVC的基线档次或高级档次)的H2.64/AVC解码器来解码基础视图。
在MVC标准中,MVC解码过程的子过程中的许多子过程,通过分别由“视图成分”、“帧视图成分”和“场视图成分”来替换在H.264/AVC标准的子过程规范中的项目“图像”、“帧”和“场”,来使用H.264/AVC标准的各自子过程。同样地,在以下中,项目“图像”、“帧”和“场”常常分别用于意味着“视图成分”、“帧视图成分”和“场视图成分”。
在可伸缩多视角编码中,相同比特流可以含有多视图的编码的视图成分,以及可以使用质量和/或空间可伸缩性来编码至少一些编码视图成分。
纹理视图指定是表示普通视频内容的视图,例如使用普通相机已经捕获的视图,以及通常适用于在显示器上渲染的视图。纹理图典型地包括具有三种成分的图像,一个亮度成分和两个色度成分。在以下,纹理图像典型地包括所有它的成分图像或彩色成分,除非以其他方式例如使用术语亮度纹理图像和色度纹理图像来指示。
深度增强视频指的是具有与具有一个或多个深度视图的深度视频相关联的一个或多个视图的纹理视频。多种方法可以用于表示深度增强视频,包含视频加深度(V+D)、多视角视频加深度(MVD)和分层深度视频(LDV)的使用。在视频加深度(V+D)表示中,纹理的单个视图和深度的各自视图被分别表示为纹理图像和深度图像的序列。MVD表示含有多个纹理视图和各自深度视图。在LDV表示中,照惯例来表示中心视图的纹理和深度,然而其他视图的纹理和深度被部分地表示以及覆盖针对中间视图的正确视图合成所要求的仅非遮挡区域。
可以以彼此独立地编码纹理和深度的方式来编码深度增强视频。例如,纹理视图可以被编码成一个MVC比特流,以及深度视图可以被编码成另一个MVC比特流。可替代地,可以以联合编码纹理和深度的方式来编码深度增强视频。当联合编码纹理和深度视图被应用于深度增强视频表示时,针对解码纹理图像的纹理图像或数据元素的一些解码样本被预测或从在深度图像的解码过程中获得的深度图像或数据元素的一些解码样本导出。可替代地或另外,针对深度图像的解码的深度图像或数据元素的一些解码样本被预测或从在纹理图像的解码过程中获得的纹理图像或数据元素的一些解码样本导出。
已经发现的是,针对一些多视角3D视频(3DV)应用的解决方案是具有有限数量的输入视图,例如单一或立体视图加一些补充数据,以及在解码器侧本地地渲染(即合成)所有要求的视图。从针对视图渲染的若干可以使用的技术,基于深度图像渲染(DIBR)已经显示出是有竞争性的可替代方案。
在图5中示出了基于DIBR的3DV系统的简化模型。3D视频编解码器的输入包括立体视频和具有立体基线b0的对应的深度信息。接着,3D视频编解码器合成在具有基线的两个输入视图(bi<b0)之间的多个虚拟视图。DIBR算法还可以启用在这两个输入视图之外并且没有在它们之间的视图的外差法。类似地,DIBR算法还可以启用来自纹理的单个视图和各自深度视图的视图合成。然而,为了启用基于DIBR的多视角渲染,纹理数据连同对应的深度数据应当在解码器侧能够获得。
在此类3DV系统中,针对每个视频帧,在编码器侧以深度图像(还被称为深度图)的形式产生深度信息。深度图是具有每个像素深度信息的图像。在深度图中的每个样本表示各自纹理样本至相机所位于的平面的距离。也就是说,如果z轴是沿着相机的拍摄轴(以及因此垂直于该相机所位于的平面),则在深度图中的样本可以表示在z轴上的值。
能够通过各种手段来获得深度信息。例如,可以从通过捕获相机而注册的视差来计算3D场景的深度。深度估计算法采用立体视图作为输入以及计算视图的两个偏移图像之间的本地视差。在重叠块中逐像素处理每个图像,以及针对每个像素块,执行针对在偏移图像中的匹配块的水平本地搜索。一旦计算了逐像素视差,则通过方程式(1)来计算对应的深度值z:
z = f &CenterDot; b d + &Delta;d - - - ( 1 ) ,
其中f是相机的焦距,以及b是相机之间的基线距离,如图6中示出的。此外,d指的是两个相机之间观察到的视差,以及相机偏移Δd反映这两个相机的光学中心的可能的水平错位。然而,因为该算法基于块匹配,因此通过视差的深度估计(depth-through-disparity estimation)的质量是内容依赖的以及常常是非常不准确的。例如,针对以没有纹理的非常平滑区域或大级别噪声为特征的图像碎片,针对深度估计的简单解决方案是不可能的。
可以类似于深度图来处理视差或视觉差异图,诸如在ISO/IEC国际标准23002-3中指定的视差图。深度和视差具有简单的对应性,以及能够通过数学方程式从彼此来计算它们。
在访问单元内的纹理和深度视图成分的编码和解码顺序典型地是这样的,编码视图成分的数据不被任何其他编码视图成分交织,以及针对访问单元的数据不被在比特流/解码顺序中的任何其他访问单元交织。例如,在不同的访问单元(t,t+1,t+2)中,可以有两个纹理和深度视图(T0t,T1t,T0t+1,T1t+1,T0t+2,T1t+2,D0t,D1t,D0t+1,D1t+1,D0t+2,D1t+2),如图7中说明的,其中,在比特流和解码顺序中,由纹理和深度视图(T0t,T1t,D0t,D1t)组成的访问单元t在由纹理和深度视图(T0t+1,T1t+1,D0t+1,D1t+1,)组成的访问单元t+1的前面。
在访问单元内的视图成分的编码和解码顺序可以由编码格式支配,由编码器来确定。可以在相同视图的各自深度视图成分之间,对纹理视图成分进行编码,以及因此可以从相同视图的纹理视图成分来预测此类深度视图成分。此类纹理视图成分可以例如由MVC编码器来编码和由MVC解码器来解码。在本申请中,增强纹理视图成分指的是如下的纹理视图成分:该纹理视图成分可以在相同视图的各自深度视图成分之后被编码以及可以从各自深度视图成分被预测。典型地以视图依赖顺序来编码相同访问单元的纹理和深度视图成分。纹理和深度视图成分能够以相对于彼此的任何顺序被排序,只要该排序服从所提及的约束。
可以将纹理视图和深度视图编码到单个比特流中,其中纹理视图中的一些纹理视图可以与诸如H.264/AVC和/或MVC的一个或多个视频标准相兼容。也就是说,解码器能够解码此类比特流的纹理视图中的一些纹理视图,以及能够省略剩余的纹理视图和深度视图。
在这个上下文中,将一个或多个纹理和深度视图编码到单个H.264/AVC和/或MVC兼容比特流中的编码器还被称为3DV-ATM编码器。由此类编码器生成的比特流能够被称为3DV-ATM比特流。3DV-ATM比特流可以包含:H.264/AVC和/或MVC解码器不能解码的纹理视图中的一些纹理视图,以及深度视图。能够从3DV-ATM比特流解码所有视图的解码器还被称为3DV-ATM解码器。
3DV-ATM比特流能够包含:选择数量的AVC/MVC兼容的纹理视图。针对AVC/MVC兼容纹理视图的深度图可以从纹理视图来预测。剩余的纹理视图可以使用增强纹理编码以及深度视图可以使用深度编码。
许多视频编码标准指定针对比特流的缓冲模型和缓冲参数。此类缓冲模型可以被称为假想参考解码器(HRD)或视频缓冲器验证器(VBV)。顺从标准的比特流遵守具有在对应标准中指定的一组缓冲参数的缓冲模型。可以明确地或隐含地通过信号传送针对比特流的此类缓冲参数。‘隐含地通过信号传送’意味的是,根据档次和级别的默认的缓冲参数值应用。HRD/VBV参数用于(除了其它方面外)在顺从比特流的比特率变化上强加约束。
HRD一致性检查可以关注例如以下两种类型比特流:第一此种类型比特流,被称为类型I比特流,是含有针对在该比特流中的所有访问单元的仅VCL NAL单元和填充数据NAL单元的NAL单元流。第二类型的比特流,被称为类型II比特流,可以含有(除了针对在该比特流中的所有访问单元的VCL NAL单元和填充数据NAL单元之外)另外的与填充数据NAL单元不同的非VCL NAL单元和/或语法元素,诸如leading_zero_8bits,zero_byte,start_code_prefix_one_3bytes以及trailing_zero_8bits,它们从NAL单元流形成字节流。
可以使用两种类型的HRD参数(NAL HRD参数和VCL HRD参数)。可以通过被包含在序列参数集语法结构中的视频可用性信息来指示HRD参数。
在VCL NAL单元中被参考的序列参数集和图像参数集,以及对应的缓冲时间段和图像定时SEI消息可以以及时的方式,在比特流中(通过非VCL NAL单元),或通过在该比特流外的带外方式(例如,使用信令机制,诸如被包含在例如根据会话描述协议(SDP)格式化的会话描述的媒体行中的媒体参数),被传递给HRD。出于计数在HRD中的比特目的,可以计数实际上存在于该比特流中的仅占用的比特。当通过不同于在比特流内存在的一些方式,针对应用传递非VCL NAL单元的内容时,非VCLNAL单元的内容的表示可以使用或可以不使用与如果非VCL NAL单元在该比特流中将使用的语法相同的语法。
HRD可以含有编码图像缓冲器(CPB)、瞬时解码过程、解码图像缓冲器(DPB)和输出裁剪。
CPB可以基于解码单元进行操作。解码单元可以是访问单元或它可以是访问单元的子集,诸如整数的NAL单元。可以由编码器在比特流中指示解码单元的选择。
HRD可以如下进行操作。与根据指定的到达调度流入CPB中的解码单元相关联的数据可以由假想流调度器(HSS)来递送。到达调度可以由编码器来确定以及例如通过图像定时SEI消息来指示,并且/或可以例如基于比特率(该比特率可以被指示例如作为在视频使用性信息中的HRD参数的一部分)来导出到达调度。在视频使用性信息中的HRD参数可以含有许多参数集合,每个参数集合针对不同的比特率或递送调度。可以在CPB移除时间,通过瞬时解码过程来瞬时解码和移除与每个解码单元相关联的数据。可以例如使用初始CPB缓冲延时来确定CPB移除时间,初始CPB缓冲延时可以由编码器来确定并且例如通过缓冲时间段SEI消息来指示,以及例如通过图像定时SEI消息针对每个图像指示不同的移除延时。可以在DBP输出时间或针对帧间预测参考不再需要解码图像的时间稍后,从DPB移除该解码图像。因此,HRD的CPB的操作可以包括:比特流到达的定时,解码单元的移除和解码单元的解码的定时,而HRD的DPB的操作包括:从DPB移除图像,图像输出,以及当前解码图像标记和存储。
HRD可以用于检查比特流和解码器的一致性。
HRD的比特流一致性要求可以包括例如以下等。要求CPB不溢出(关于例如在视频使用性信息的HRD参数内指示的大小)或下溢(即解码单元的移除时间不能小于该解码单元的最后比特的到达时间)。可以要求在DPB中的图像数目小于或等于某一最大数目,例如可以在序列参数集中指示该某一最大数目。可以要求用作预测参考的所有图像存在于DPB中。可以要求的是,针对从DPB输出连续图像的时间间隔不小于某一最小值。
HRD的解码器一致性要求可以包括以下等。假如在VCL NAL单元中参考所有的序列参数集和图像参数集,可以要求声称符合特定档次和级别的解码器成功地解码针对解码器一致性指定的所有顺从的比特流,以及以及时的方式,将适当的缓冲时间段和图像定时SEI消息在比特流中(通过非VAL NAL单元)或通过外部方式传递给该解码器。可以有能够由解码器声称的两种类型的一致性:输出定时一致性和输出顺序一致性。
为了检查解码器的一致性,符合所声称的档次和级别的测试比特流可以由假想的流调度器(HSS)传递给HRD和传递给处于测试的解码器(DUT)。还可以要求由HRD输出的所有图像由DUT输出,以及针对由HRD输出的每个图像,还可以要求针对对应图像的由DUT输出的所有样本的值等于由HRD输出的样本的值。
针对输出定时解码器一致性,HSS可以例如使用从在视频使用性信息的HRD参数中指示的那些递送调度来选择的递送调度,或使用“内插的”递送调度,来进行操作。相同的递送调度可以用于HRD和DUT。针对输出定时解码器一致性,可以要求图像输出的定时(相对于第一比特的递送时间)针对HRD和DUT两者是相同的一直到固定时延。
针对输出顺序解码器一致性,HSS可以通过来自DUT的“需求”将比特流递送给DUT,意味的是,HSS仅当DUT要求更多的比特以继续进行它的处理时递送比特(以解码顺序)。HSS可以通过在比特流中指定的调度中的一个调度将比特流递送给HRD,使得限制比特率和CPB大小。可以要求图像输出的顺序针对HRD和DUT两者是相同的。
在SVC中,如下来选择指示HRD的缓冲时间段SEI消息。当访问单元含有被包含在可伸缩嵌套SEI消息中并且与在((DQIdMax>>4)<<4)至(((DQIdMax>>4)<<4)+15)(包含)的范围中的DQId的值相关联的一个或多个缓冲时间段SEI消息时,在解码顺序中的这些缓冲时间段SEI消息的最后一个缓冲时间段SEI消息是初始化HRD的缓冲时间段SEI消息。让hrdDQId是与含有初始化HRD的缓冲时间段SEI消息的可伸缩嵌套SEI消息相关联的16*sei_dependency_id[i]+sei_quality_id[i]的最大值,让hrdDId和hrdQId分别等于hrdDQId>>4和hrdDQId&15,以及让hrdTId是与含有初始化HRD的缓冲时间段SEI消息的可伸缩嵌套SEI消息相关联的sei_temporal_id的值。在SVC中,指定从CPB的访问单元的移除定时和从DPB的输出定时的图像定时SEI消息是被包含在与分别等于hrdDId,hrdQId,和hrdTId的值的sei_dependency_id[i],sei_quality_id[i],和sei_temporal_id的值相关联的可伸缩嵌套SEI消息中的图像定时SEI消息。在SVC中,用于一致性检查的HRD参数集是被包含在与分别等于hrdDId,hrdQId和hrdTId的vui_ext_dependency_id[i],vui_ext_quality_id[i]和vui_ext_temporal_id[i]的值相关联的活动SVC序列参数集的SVC视频使用性信息扩展中的HRD参数集。
在SVC中,视频使用性信息被扩展以选择性地包含定时信息、HRD参数集和存在针对编码视频序列(包含完整的编码视频序列)的比特流子集的图像结构信息的呈现。任何数量的比特流子集(针对该比特流子集,提供扩展的VUI)可以由编码器选择以及在VUI参数扩展中指示。每个此类比特流子集以dependency_id,quality_id和temporal_id值的为特征,这些值分别被包含在vui_ext_dependency_id[i],vui_ext_quality[i]和vui_ext_temporal_id[i]语法元素中,其中i是针对比特流子集的索引。具有索引i的比特流子集(针对该具有索引i的比特流子集,可以给出定时信息、HRD参数集和图像结构信息的呈现)能够通过应用使用vui_ext_dependency_id[i],vui_ext_quality[i]和vui_ext_temporal_id[i]作为输入的子比特流提取过程来获得。
在图8中呈现了能够编码纹理视图和深度视图的编码器200的实施例的高级流程图,以及在图9中呈现了能够解码纹理视图和深度视图的解码器210的实施例的高级流程图。在这些图上,实线描绘了一般数据流以及虚线示出了控制信息信令。编码器200可以接收将被纹理编码器202编码的纹理成分201以及将被深度编码器204编码的深度图成分203。当编码器200正在根据AVC/MVC来编码纹理成分时,第一开关205可以断开。当编码器200正在编码增强纹理成分时,可以闭合第一开关205,以便由深度编码器204生成的信息可以被提供给纹理编码器202。这个示例的编码器还包括:第二开关206,可以如下对第二开关206进行操作。当编码器正在编码AVC/MVC视图的深度信息时,闭合第二开关206,以及当编码器正在编码增强纹理视图的深度信息时,断开第二开关206。编码器200可以输出含有编码视频信息的比特流207。
解码器210可以以类似的方式进行操作,但是至少部分地以相反的顺序。解码器210可以接收含有编码视频信息的比特流207。解码器210包括:用于解码纹理信息的纹理解码器211和用于解码深度信息的深度解码器212。可以提供第三开关213以控制从深度解码器212至纹理解码器211的信息递送,以及可以提供第四开关以控制从纹理解码器211至深度解码器212的信息递送。当解码器210将解码AVC/MVC纹理视图时,可以断开第三开关213,以及当解码器210将解码增强纹理视图时,可以闭合第三开关213。当解码器210将解码AVC/MVC纹理视图的深度时,可以闭合第四开关214,以及当解码器210将解码增强纹理视图的深度时,可以断开第四开关214。解码器210可以输出重建纹理成分215和重建深度图成分216。
许多视频编码器使用拉格朗日代价函数以找到率失真最优编码模式,例如期望的宏块模式和相关联的运动向量。这种类型的代价函数使用加权因子或λ以将由于有损编码方法导致的精确或估计的图像失真与表示图像区域中的像素/样本值所要求的信息的精确或估计的数量绑在一起。拉格朗日代价函数可以由以下方程式来表示:
C=D+λR
其中C是将被最小化的拉格朗日代价,D是当前考虑了模式和运动向量的图像失真(例如,在原始图像块中和在编码图像块中的像素/样本值之间的均方误差),λ是拉格朗日系数,以及R是表示所要求的数据以在解码器中重建图像块(包含表示候选运动向量的数据数量)所需要的比特数量。
编码标准或规范可以包含子比特流提取过程,以及例如在SVC、MVC和HEVC中指定了子比特流提取过程。子比特流提取过程涉及通过移除NAL单元将比特流变换到子比特流。子比特流仍然保持符合标准。例如,在草案HEVC标准中,通过排除具有temporal_id大于或等于选择值的所有VCL NAL单元以及包含所有其他VCL NAL单元而创建的比特流保持一致性。因此,具有temporal_id等于TID的图像不使用具有temporal_id大于TID的任何图像作为帧间预测参考。
编码标准或规范的第一档次,诸如H.264/AVC的基线档次,可以被指定为包含仅某些类型的图像或编码模式,诸如帧内(I)和帧间(P)图像或编码模式。编码标准或规范的第二档次,诸如H.264/AVC的高档次,可以被指定为包含更多的各种类型的图像或编码模式,诸如帧内、帧间和双向预测(B)图像或编码模式。比特流符合第二档次,然而包括图像的子集的比特流还可以符合第一档次。例如,图像模式的普通组是IBBP,即在每个帧内(I)或帧间(P)参考帧之间,有两个非参考帧(B)帧。这这个实例中,基础层可以由参考帧组成。整个比特流可以遵守高档次(其包含B图像特征),然而基础层比特流还可以遵守基线档次(其排除B图像特征)。
子比特流提取过程可以用于多个目的,其中一些目的被描述成如下示例。在第一示例中,创建多媒体消息,针对该多媒体消息而言,整个比特流符合特定档次和级别,以及由该基础层组成的比特流子集遵守另一个档次和级别。在创建的时候,源终端不知道接收终端的能力。相比之下,多媒体消息传送服务中心(MMSC)等知道接收终端的能力以及负责相应地适应该消息。在这个示例中,接收终端能够解码由基础层组成的比特流子集而不是整个比特流。因此,使用本发明的适应过程要求根据子比特流提取过程仅剥除或移除具有指示比基础层更高的层的可伸缩层标识符的NAL单元。
在第二示例中,可伸缩比特流被编码并且被存储在流式传输服务器中。在所存储的文件中通过信号传送每个层的档次和级别以及可能还有HRD/VBV参数。当描述可以使用的会话时,服务器能够例如根据会话描述协议(SDP)或媒体呈现描述(MPD)或诸如此类在相同的文件中来创建针对每个层或可替代的可伸缩比特流的描述,使得流式传输客户端能够根据SDP描述或诸如此类来推断是否有理想层以及选择理想层以用于流式传输回放。如果服务器没有关于接收器能力的先验知识,则有利地是从相同的内容创建多个SDP描述或诸如此类,以及这些描述随后被交替调用。客户端于是能够挑选最适合它的能力的描述。如果服务器知道接收器的能力(例如,使用在3GPP TS 26.234中指定的UAProf机制),则该服务器在整个比特流和所有子比特流的档次和级别中优选地选择针对接收器的最合适的档次和级别。可以执行子比特流提取过程以推断将被传送的数据,使得它匹配所选择的SDP描述或诸如此类。
在第三示例中,诸如在第二示例中描述的流被组播或广播给多个终端。组播/广播服务器能够通告所有可以使用的层或解码和回放可选方案,它们中的每个以档次和级别以及可能还有HRD/VBV参数为特征。客户端于是能够从该广播/组播会话通告知道是否存在针对它的理想层以及选择理想层以用于回放。子比特流提取过程能够用于推断在每个组播组或诸如此类内将被传送的基本数据单元,诸如NAL单元。
在使用本发明的第四示例中,对于本地回放应用,即使不能解码整个通过信号传送的流,但是仍然能够解码和欣赏该流的一部分。典型地,如果播放器知道整个流具有它不能解码的档次和级别以及HRD/VBV参数的集合,则它就放弃解码和回放。可替代地或另外,用户可以具有选择快进或快速后退播放操作,以及播放器可以选择级别使得它能够比实时更快地解码数据。当播放器已经选择不是比特流的最高层的层时,可以执行子比特流提取过程。
图1将根据示例实施例的视频编码系统的框图示出为示例性的装置或电子设备50的示意性框图,该装置或电子设备50可以并入根据本发明的实施例的编解码器。图2示出了根据示例实施例的装置的布局。下面将介绍图1和图2的单元。
电子设备50例如可以是无线通信系统的移动终端或用户设备。然而,将理解的是,可以在可以要求编码和解码或编码或解码视频图像的任何电子设备或装置内实现本发明的实施例。例如,在一些实施例中,装置可以被具体化为芯片或芯片组(可以进而在以上提及的设备中的一个设备处使用该芯片或芯片组)。也就是说,装置可以包括:一个或多个物理封装(package)(例如,芯片),其包含材料、部件和/或在结构组件(例如,基板)上的线路。结构组件可以提供物理强度、尺寸节省和/或用于被包含在其上的部件电路的电气交互限制。因此,在一些情况下,装置可以被配置为在单个芯片上实现本发明的实施例,或将本发明的实施例实现成单个“片上系统”。照此,在一些情况下,芯片或芯片组可以构成用于执行用于提供本文所描述的功能的一个或多个操作的构件。
装置50可以包括:用于容纳和保护该设备的壳体30。装置50还可以包括以液晶显示器形式的显示器32。在本发明的其它实施例中,显示器可以是适合于显示图像或视频的任何合适的显示器技术。装置50还可以包括小键盘34。在本发明的其它实施例中,可以使用任何合适的数据或用户接口机构。例如,用户接口可以被实现成作为触摸敏感显示器的一部分的虚拟键盘或数据输入系统。装置可以包括麦克风36或任何合适的音频输入器,其可以是数字或模拟信号输入器。装置50还可以包括音频输出设备,在本发明的实施例中,所述音频输出设备可以是以下中的任何一个:耳机38、扬声器或模拟音频或数字音频输出连接件。装置50还可包括电池40(或者在本发明的其它实施例中,可以由任何合适的移动能量设备,诸如太阳能电池、燃料电池或发条发电机,向该设备提供电力)。装置还可以包括红外线端口42以用于至其它设备的短距视线通信。在其它实施例中,装置50还可以包括任何合适的短距通信解决方案,诸如例如蓝牙无线连接或USB/火线有线连接。
装置50可以包括用于控制装置50的控制器或处理器(其中在本申请中,同义地使用控制器和处理器,它们中的一者或两者被指代为56)。控制器56可以连接到存储器58,在本发明的实施例中,存储器58可以存储以图像和音频数据形式的数据,并且/或还可以存储用于在控制器56上实现的指令。控制器56还可以连接到编解码电路54,该编解码电路54适用于执行对音频和/或视频数据的编码和解码或帮助由控制器56执行的编码和解码。
可以以许多不同方式来具体化处理器56。例如,处理器可以被具体化成各种硬件处理构件中的一个或多个硬件处理构件,诸如协处理器、微处理器、控制器、数字信号处理器(DSP)、具有或不具有伴随的DSP的处理单元,或各种其它处理电路,包含集成电路(诸如例如,ASIC(专用集成电路)、FPGA(现场可编程门阵列)、微控制器单元(MCU)、硬件加速器、专用计算机芯片)或诸如此类。照此,在一些实施例中,处理器可以包含一个或多个处理器核心,该一个或多个处理器核心被配置为独立地执行。多核处理器可以启用单个物理封装内的多重处理。另外地或可替代地,处理器可以包含一个或多个处理器,该一个或多个处理器被配置为经由总线连接在一起,以使得能够独立执行指令、管线操作和/或多线程操作。
在示例实施例中,处理器56可以被配置为执行存储在存储设备58中或以其他方式处理器可以访问的指令。可替代地或另外地,处理器可以被配置为执行硬编码的功能。照此,不管是由硬件或软件方法或由其组合来配置,当相应地配置时,处理器可以表示能够根据本发明的实施例来执行操作的实体(例如,被物理具体化在电路中的)。因此,例如,当处理器被具体化为ASIC、FPGA或诸如此类时,处理器可以是用于执行本文所描述的操作的特定配置的硬件。可替代地,作为另一示例,当处理器被具体化为软件指令的执行器时,当执行该指令时,该指令可以特定地配置处理器以执行本文所描述的算法和/或操作。然而,在一些情况下,处理器可以是适用于通过用于执行本文所述的算法和/或操作的指令进一步配置处理器来使用本发明的实施例的特定设备(例如,计算设备)的处理器。处理器可以包括(除了其它之外)配置为支持处理器的操作的时钟、算术逻辑单元(ALU)或逻辑门。
存储器58可以包括例如非易失性存储器,诸如一个或多个易失性和/或非易失性存储器。也就是说,例如,存储设备可以是电子存储设备(例如,计算机可读存储介质),该电子存储设备包括门,该门被配置为存储由机器(例如,如处理器的计算设备)可以检索的数据(例如,比特)。存储设备可以被配置为存储信息、数据、应用、指令或诸如此类,以用于使得装置能够依照本发明的示例实施例来实现各种功能。例如,存储设备能够被配置为缓冲由处理器处理的输入数据。另外地或可替代地,存储设备能够被配置为存储用于由处理器56运行的指令。装置50还可以包括卡阅读器48和智能卡46,例如UICC和UICC阅读器以用于提供用户信息并且适用于提供用于在网络上对用户进行认证和授权的认证信息。
装置50可以包括:通信接口,其可以是任何构件,诸如具体化在硬件或硬件和软件的组合中的设备或电路,其被配置为接收和/或传送来自/去往装置的数据。在这点上,通信接口可以包括:例如无线电接口电路52,其连接到控制器56并且适用于生成例如用于与蜂窝通信网络、无线通信系统或无线局域网进行通信的无线通信信号。装置50的通信接口还可以包括:天线44,其连接到无线电接口电路52以用于将在无线电接口电路52处生成的射频信号传送给其它装置(多个)以及用于接收来自其它装置(多个)的射频信号。在一些环境中,通信接口可以替代地或还支持有线通信。照此,例如,通信接口可以包括通信调制解调器和/或其它硬件/软件以用于支持经由电缆、数字订户线(DSL)、USB或其它机构的通信。
在本发明的一些实施例中,装置50包括:相机,其能够记录或检测个体帧,该个体帧然后被运送给用于处理的编解码器54或控制器。在本发明的其它实施例中,装置可以在传输和/或存储之前接收来自另一个设备的用于处理的视频图像数据。在本发明的其它实施例中,装置50可以无线地或通过有线连接接收用于编码/解码的图像。
图3示出了根据示例实施例的针对视频编码的布置,该布置包括:多个装置,网络和网络单元。关于图3,示出了系统的示例,在该系统内能够使用本发明的实施例。系统10包括:多个通信设备,它们能够通过一个或多个网络进行通信。系统10可以包括有线网络或无线网络的任何组合,有线网络或无线网络包括但不限于:无线蜂窝电话网络(诸如GSM,UMTS,CDMA网络等),无线局域网(WLAN),诸如由IEEE 802.x标准中的任何标准定义的WLAN,蓝牙个域网,以太网局域网,令牌环局域网,广域网以及互联网。
系统10可以包含:适用于实现本发明的实施例的有线和无线通信设备两者或装置50。例如,在图3中示出的系统示出了移动电话网络11和互联网28的表示。至互联网28的连通性可以包含但不限于:长距无线连接,短距无线连接,以及各种有线连接,各种有线连接包括但不限于电话线,电缆线,电力线,和类似的通信路径。
在系统10中示出的示例性通信设备可以包含但不限于:电子设备或装置50,个人数字助理(PDA)和移动电话的组合14,PDA 16,集成消息发送设备(IMD)18,桌面计算机20,笔记本计算机22。装置50可以是固定的或当由移动中的个体携带时是移动的。装置50还可以位于任何模式的交通工具中,交通工具包含但不限于汽车、卡车、出租车、公交车、火车、船、飞机、自行车、摩托车或任何类似的合适模式的交通工具。
一些或其它装置可以发送和接收呼叫和消息,并且通过至基站24的无线连接25与服务提供者通信。基站24可以连接到网络服务器26,其允许移动电话网络11和互联网28之间的通信。该系统可以包含附加的通信设备和各种类型的通信设备。
通信设备可以使用各种传输技术来通信,各种传输技术包括但不限于:码分多址接入(CDMA),全球移动通信系统(GSM),通用移动通信系统(UMTS),时分多址接入(TDMA),频分多址接入(FDMA),传输控制协议-互联网协议(TCP-IP),短消息服务(SMS),多媒体消息服务(MMS),电子邮件,即时消息服务(IMS),蓝牙,IEEE 802.11和任何类似的无线通信技术。在实现本发明的各种实施例中涉及的通信设备可以使用各种介质进行通信,各种介质包含但不限于:无线电,红外线,激光,电缆连接,和任何合适的连接。
图4a和图4b示出了根据示例实施例的针对视频编码和解码的框图。
图4a将编码器示出为包括:像素预测器302、预测误差编码器303和预测误差解码器304。图4a还将像素预测器302的实施例示出为包括帧间预测器306、帧内预测器308、模式选择器310、过滤器316和参考帧存储器318。在这个实施例中,模式选择器310包括:块处理器381和代价评估器382。编码器还可以包括用于熵编码比特流的熵编码器330。
图4b描绘了帧间预测器306的实施例。帧间预测器306包括:用于选择参考帧或多个参考帧的参考帧选择器306、运动向量定义器361、预测列表形成器363和运动向量选择器364。这些单元或它们中的一些单元可以是预测处理器362的一部分,或可以通过使用其它构件来实现它们。
像素预测器302接收图像300,该图像300将在帧间预测器306(其确定该图像和运动补偿参考帧318之间的差异)和帧内预测器308(其仅基于当前帧或图像的已经处理的部分来确定针对图像块的预测)两者处被编码。帧间预测器和帧内预测器两者的输出被传递给模式选择器310。帧间预测器306和帧内预测器308两者可以具有超过一个帧内预测模式。因此,可以针对每个模式来执行帧间预测和帧内预测,以及可以将所预测的信号提供给模式选择器310。模式选择器310还接收图像300的副本。
模式选择器310确定哪个编码模式用于编码当前块。如果模式选择器310决定使用帧间预测模式,则它将帧间预测器306的输出传递给模式选择器310的输出。如果模式选择器310决定使用帧内预测模式,则它将帧内预测模式中的一个帧内预测模式的输出传递给模式选择器310的输出。
模式选择器310可以在代价评估器块382中使用例如拉格朗日代价函数以在编码模式和它们的参数值(诸如运动向量、参考索引和帧内预测方向,典型地以块为基础)之间进行选择。这种类型的代价函数使用加权因子lambda以将由于有损的编码方法导致的(精确的或估计的)图像失真和表示图像区域中的像素值所要求的信息量连接到一起:C=D+lambda×R,其中C是将被最小化的拉格朗日代价,D是具有模式和它们的参数的图像失真(例如,均方误差),以及R是表示所要求的数据以在解码器中重建图像块所需的比特数量(例如,包含表示候选运动向量的数据量)。
模式选择器的输出被传递给第一求和设备321。第一求和设备可以从图像300减去像素预测器302的输出以产生第一预测误差信号320,该第一预测误差信号320被输入给预测误差编码器303。
像素预测器302还从初步重建器339接收图像块312的预测表示和预测误差解码器304的输出338的组合。初步重建图像314可以被传递给帧内预测器308和过滤器316。接收初步表示的过滤器316可以过滤初步表示以及输出最后的重建图像340,该最后的重建图像340可以被存储在参考帧存储器318中。参考帧存储器318可以连接到帧间预测器316以用作参考图像,在帧间预测操作中针对该参考图像与将来图像300进行比较。在许多实施例中,参考帧存储器318能够存储超过一个解码的图像,以及它们中的一个或多个解码的图像可以由帧间预测器306用作参考图像,在帧间预测操作中针对该参考图像与将来图像300进行比较。在一些情况下,参考帧存储器318还可以被称为解码图像缓冲器。
像素预测器302的操作可以被配置为执行在本领域中已知的任何已知的像素预测算法。
像素预测器302还可以包括:过滤器385,其用于在从像素预测器302输出预测值之前过滤预测值。
下文将更详细地描述预测误差编码器302和预测误差解码器304的操作。在以下示例中,编码器依照16x16像素宏块(它们将形成整个影像或图像)来生成图像。然而,注意的是,图4a不局限于块大小16x16,而是一般能够使用任何块大小和形状,以及同样地,图4a不局限于将图像分割到宏块,而是可以使用分割到块(诸如编码单元)的任何其他图像。因此,对于以下示例,像素预测器302输出一连串的大小16x16像素的预测的宏块,以及第一求和设备321输出一连串的16x16像素残余数据宏块,其可以表示在图像300中的第一宏块针对预测宏块(像素预测器302的输出)之间的差异。
预测误差编码器303包括:变换块342和量化器344。变换块342将第一预测误差信号320变换到变换域。该变换是例如DCT变换或它的变型。量化器344量化变换域信号(例如,DCT系数)以形成量化的系数。
预测误差解码器304接收来自预测误差编码器303的输出,以及产生解码的预测误差信号338,该解码的预测误差信号338当与在第二求和设备339处的图像块312的预测表示组合时产生初步重建图像314。预测误差解码器可以被认为包括:反量化器346,其将量化的系数值(例如,DCT系数)反量化以近似重建变换信号,以及反变换块348,其针对所重建的变换信号执行反变换,其中反变换块348的输出含有重建块(多个)。预测误差解码器还可以包括:宏块过滤器(未示出),其可以根据另外的解码信息和过滤器参数来过滤所重建的宏块。
在以下中,将更详细地描述帧间预测器306的示例实施例的操作。帧间预测器306接收针对帧间预测的当前块。假设针对当前块,已经存在已经被编码的一个或多个邻居块,已经针对它们定义了运动向量。例如,在左侧上的块和/或在当前块之上的块可以是此类块。例如通过使用在相同片或帧中的编码的邻居块和/或非邻居块的运动向量,使用空间运动向量预测的线性或非线性函数,使用具有线性或非线性操作的各种空间运动向量预测器的组合,或通过不使用时间参考信息的任何其它适当的方式,能够形成针对当前块的空间运动向量预测。也可以是可能的是,通过将一个或多个编码块的空间和时间预测信息两者组合来获得运动向量预测器。这些类型的运动向量预测器还可以被称为时空运动向量预测器。
在编码中使用的参考帧可以被存储到参考帧存储器。每个参考帧可以被包含在参考图像列表中的一个或多个参考图像列表中,在参考图像列表内,每个条目具有标识参考帧的参考索引。当参考帧不再用作参考帧,则可以从参考帧存储器移除该参考帧,或将它标记为“不用于参考”或非参考帧,其中可以由新的参考帧来占据该参考帧的存储位置。
如上所述,访问单元可以含有不同视图以及不同可伸缩层的不同成分类型(例如,主纹理成分、冗余纹理成分、辅助纹理成分、深度/视差成分)的片。
已经建议的是,传统上已经被包含在片头部中的语法元素的至少子集由编码器包含在GOS(片组)参数集中。编码器可以将GOS参数集编码成NAL单元。GOS参数集NAL单元连同例如编码片NAL单元可以被包含在比特流中,但是还可以在带外被携带,如之前在其他参数集的上下文中描述的。
GOS参数集语法结构可以包含标识符,在参考例如来自片头部特定GOS参数集实例或另一个GOS参数集时,可以使用该标识符。可替代地,GOS参数集语法结构不包含标识符,但是可以例如使用GOS参数集语法结构的比特流顺序和预定义的编号方案,由编码器和解码器两者来推测标识符。
编码器和解码器可以从已经被编码或解码或存在于比特流中的其他语法结构来推测GOS参数集的内容或实例。例如,基础视图的纹理视图成分的片头部可以隐含地形成GOS参数集。编码器和解码器可以推测针对此类推测的GOS参数集的标识符值。例如,从基础视图的纹理视图成分的片头部形成的GOS参数集可以被推测为具有等于0的标识符值。
GOS参数集在与它相关联的特定访问单元内可以是有效的。例如,如果GOS参数集语法结构被包含在针对特定访问单元的NAL单元序列中,其中该序列是以解码或比特流顺序,则GOS参数集可以从它出现的位置直到访问单元的结束是有效的。可替代地,GOS参数集可以针对许多访问单元是有效的。
编码器可以编码针对访问单元的许多GOS参数集。如果已知、预期或估计的是将被编码的片头部中的语法元素值的至少子集在随后的片头部中将是相同的,则编码器可以确定对GOS参数集进行编码。
有限的编号空间可以用于GOS参数集标识符。例如,可以使用固定长度码,以及该固定长度码可以被解释为某一范围的无符号整数值。如果第一GOS参数集随后不被例如任何片头部或GOS参数集所参考,则编码器可以使用针对第一GOS参数集以及随后针对第二GOS参数集的GOS参数集标识符值。编码器可以在比特流内重复GOS参数集语法结构例如以获得对抗传输误差的更好的鲁棒性。
在许多实施例中,可以被包含在GOS参数集内的语法元素概念上被收集在语法元素集合中。可以以以下中的一个或多个为基础,来形成针对GOS参数集的语法元素集合:
-指示可伸缩层和/或其它可伸缩特征的语法元素
-指示视图和/或其它多视角特征的语法元素
-与特定成分类型(诸如深度/视差)有关的语法元素
-与访问单元标识、解码顺序和/或输出顺序和/或其它语法元素(其可以针对访问单元的所有片保持不变)有关的语法元素
-在视图成分的所有片中可以保持不变的语法元素
-与参考图像列表修改有关的语法元素
-与所使用的参考图像集有关的语法元素
-与解码参考图像标记有关的语法元素
-与针对加权预测的预测权重表有关的语法元素
-用于控制去块过滤的语法元素
-用于控制自适应环路过滤的语法元素
-用于控制样本自适应偏移的语法元素
-以上集合的任何组合
对于每个语法元素集,当编码GOS参数集时,编码器可以具有以下选项中的一个或多个选项:
-语法元素可以被编码到GOS参数集语法结构中,即语法元素集的编码语法元素值可以被包含在GOS参数集语法结构中
-可以通过参考到GOS参数集中来包含语法元素。可以作为至另一个GOS参数集的标识符来提供该参考。
编码器可以针对不同的语法元素集使用不同的参考GOS参数集。
-可以通过GOS参数集来指示语法元素集或推测语法元素集是不存在的。
选项(从该选项编码器能够在对GOS参数集进行编码时对特定语法元素集进行选择)可以依赖于语法元素集的类型。例如,与可伸缩层有关的语法元素集可以总是存在于GOS参数集,而在视图成分的所有片中可以保持不变的语法元素集通过引用来包含可能是不能获得的,但是可以可选地存在于GOS参数集中,以及与参考图像列表修改有关的语法元素可以通过引用被包含在在GOS参数集语法结构中,本身被包含在GOS参数集语法结构中,或从GOS参数集语法结构缺失。编码器可以在比特流中编码指示,例如在GOS参数集语法结构中,在编码中使用该选项。码表和/或熵编码可以依赖于语法元素集的类型。解码器可以基于被解码的语法元素集的类型,使用码表和/或与码表匹配的熵解码和/或由编码器使用的熵编码。
编码器可以具有多种手段以指示语法元素与用作针对该语法元素集的值的源的GOS参数集之间的关联。例如,编码器可以编码语法元素的环路,其中每个环路条目被编码成指示用作参考的GOS参数集标识符值以及标识从参考GOS参数集复制的语法元素集的语法元素。在另一个示例中,编码器可以编码多个语法元素,每个语法元素指示GOS参数集。在含有特定语法元素集的环路中的最后的GOS参数集是针对在GOS参数集中的该语法元素集的参考,编码器将GOS参数集当前编码到比特流中。解码器从比特流相应地解析编码的GOS参数集,以便重现与编码器一样的GOS参数集。
已经建议具有针对自适应参数集的部分更新机制,以便降低APS NAL单元的大小以及因此花费更小的比特率以用于传递APS NAL单元。尽管APS提供高效的方法共享在片级别处共同的图像自适应信息,但是当与一个或多个较早的自适应参数集相比仅一部分的APS参数改变时,独立地对APS NAL单元进行编码可能是次优的。
在文档JCTVC-H0069(http://phenix.int-evry.fr/jct/doc_end_user/documents/8_San%20Jose/wg11/JCTVC-H0069-v4.zip)中,APS语法结构被分成许多组的语法元素,每个组的语法元素与某一编码技术(诸如,自适应环路过滤器(ALF)或简单自适应偏移(SAO))相关联。在APS语法结构中的这些组中的每个组的前面可以有指示它们各自存在的标志。APS语法结构还包含针对另一个APS的条件引用。ref_aps_flag通过信号传送存在由当前APS引用的引用ref_aps_id。使用这种链路机制,能够创建多个APS的链表。在APS激活期间的解码过程使用在片头部中的引用以寻址链表的第一APS。从主体(subject)APS解码设置相关联标志(诸如,aps_adaptive_loop_fiher_data_present_flag)的那些语法元素组。在这种解码后,跟着链表到达下一个链接的APS(如果有的话,如由等于1的ref_aps_flag指示的)。从当前APS解码没有通过信号传送的如之前存在的,但是通过信号传送如存在于当前APS的仅那些组。该机制继续沿着链接的APS的列表直到满足三个条件中的一个条件:(1)以及从链接的APS链已经解码了所有要求的语法元素组(如由SPS、PPS或档次/级别指示的),(2)检测到该列表的结尾,以及(3)已经跟随了固定的,可能档次依赖的,的链路数量-该数量可以如一个一样小。如果存在没有通过信号传送如存在于链接的APS中的任何APS的任何组,则针对这个图像不使用相关的解码工具。条件(2)防止循环参考环路。参考机制的复杂性还受APS表的有限大小限制。在JCTVC-H0069中,解除参考,即解算针对每个语法元素组的源,被建议为每当激活APS时被执行,典型地,在解码片的开始时一次。
在文档JCTVC-H0255中还已经建议将多个APS标识符包含在片头部中,每个APS标识符指定针对语法元素的某些组的源APS,例如一个APS是针对量化矩阵的源,以及另一个APS是针对ALF参数的源。在文档JCTVC-H0381中,建议了针对每种类型的APS参数的“复制”标志,这允许从另一个APS来复制该类型的APS参数。在文档JCTVC-H0505中,引入了组参数集(GPS),其收集不同类型的参数集(SPS、PPS、APS)的参数集标识符,以及可以含有多个APS参数集标识符。此外,在JCTVC-H0505中建议:片头部含有用于片的解码的GPS标识符而不是个体PPS,和APS标识符。
还在文档JCTVC-10070中已经建议了APS部分更新机制,如在以下概述的。编码器使用序列参数集内的max_aps_id语法元素来指定aps_id值的值范围。也就是说,aps_id的值可以在0到max_aps_id(包含)的范围中。编码器还指定被认为“使用”的aps_id值的范围,并且在max_aps_id_diff中将该范围指示给解码器。该范围有关于最新接收的APSNAL单元以及因此指定一种类型的有效aps_id值的滑动窗口。具有在滑动窗口范围外的aps_id值的APS NAL单元被认为“未使用”以及可以传送具有相同的aps_id值的新的APS NAL单元。每个接收的APS NAL单元更新被认为“使用的”aps_id值的滑动窗口范围的方位。推荐的是,编码器相对于在解码顺序中的前一个APS NAL单元中的aps_id值使aps_id值递增1。因为aps_id值可以过顶绕回,因此在滑动窗口范围内确定aps_id值中使用模运算。由于受控制的标记(能够针对新的APS NAL单元重新使用aps_id值),因此APS的数量被限制为(max_aps_id_diff+1)以及例如在传输期间能够检测APS NAL单元的丢失。在JCTVC-I0070中已经建议的是,APS语法包含:从相同APS或从不同ASP来复制任何语法元素组(QM、去块过滤器、SAO、ALF)的可能性,由它们的aps_id值来指示,尽管要求被参考的APS被标记为“使用”。建议了在解码APS NAL单元的时候来解算部分更新参考,即通过将来自所指示的源APS的参考数据复制到被解码的APS中,来解码该APS。也就是说,仅解算一次至其它APS NAL单元的参考。
尽管例如当谈论到参数集激活、SEI消息HRD参数以及缓冲时间段和图像定时SEI消息时,以上关于SVC已经解释了背景,但是应当理解的是,可以针对MVC存在类似的过程和语法结构。
发明人已经发现在SVC和MVC的设计中的至少以下挑战和缺点:
1:在被基础层参考的序列参数集RBSP中,级别必须被设置以还覆盖由增强层NAL单元导致的比特率,因为没有SVC能力的H.264/AVC解码器将激活该序列参数集RBSP以及因此由该级别所推测的比特率应当覆盖整个比特流的比特率。类似地,在由基础视图参考的序列参数集RBSP中,级别必须被设置以还覆盖由非基础视图NAL单元导致的比特率,因为没有MVC能力的H.264/AVC解码器将激活该序列参数集RBSP。因此,针对能够足够快地访问比特流并且跳过增强层NAL单元或非基础视图NAL单元的解码器(例如,典型地,从文件读取比特流的解码器)而言,该级别可以不必要是高的。针对由仅基础层组成的比特流子集的级别可以通过可伸缩信息SEI消息(针对SVC)或视图可伸缩信息SEI消息(针对MVC)来指示,但是H.264/AVC解码器不大可能解码那些SEI消息,因为它们已经分别在SVC和MVC扩展中被指定。
2.如上所述,仅档次和级别相关的指示、档次兼容性指示、HRD参数和图像定时相关指示可以在活动SVC序列参数集RBSP和活动层SVC序列参数集RBSP中不同。类似地,当与活动序列参数集RBSP相比时,大多数但是不是所有的语法元素在活动视图序列参数集RBSP中保持不变。因此,序列参数集RBSP重复了信息,即具有针对各自语法元素的相同值。用于降低由序列参数集RBSP中的重复信息所导致的这种开销的一种方法可以是跨域层或视图来重用相同的序列参数集RBSP,即针对超过一个层或视图激活相同的序列参数集RBSP。然而,于是将次优地选择该级别,以及将次优地选择HRD参数,或HRD参数将缺失(以及于是将不能在缓冲器初始化、缓冲、图像定时等中帮助解码器)。
3.符合档次的解码器在以下场景中被限制为最多两个档次:基础层或视图可以符合在H.264/AVC标准的附录A中指定的档次,即针对非可伸缩(和非多视角)编码的档次中的一个档次。其它层可以符合在H.264/AVC标准的附录G中指定的档次,即针对可伸缩编码的档次中的一个档次。类似地,其它视图可以符合在H.264/AVC标准的附录H中指定的档次,即针对多视角编码的档次中的一个档次。在SVC序列参数集RBSP中的profile_idc和level_idc的值是哪些profile_idc和level_idc的值(如果SVC序列参数集RBSP是活动的SVC序列参数集,则哪些profile_idc和level_idc的值将是有效的)。类似地,在MVC序列参数集RBSP中的profile_idc和level_idc的值是哪些profile_idc和level_idc的值(如果MVC序列参数集RBSP是活动的MVC序列参数集,则哪些profile_idc和level_idc的值将是有效的)。然而,比特流一般可以含有另外类型的可伸缩性,诸如编码深度视图,符合附录G和附录H的解码器将不能解码该另外类型的可伸缩性。因为此类另外类型的可伸缩性的NAL单元将使用符合附录G或附录H的解码器将忽略的扩展机制,诸如先前保留的NAL单元类型值,因此符合附录G或附录H的解码器不知道此类另外类型的可伸缩性的NAL单元是否存在于该比特流中。然而,此类另外类型的可伸缩性的NAL单元将影响比特流的比特率以及潜在地影响HRD参数,诸如初始CPB缓冲时延或时间。即使该比特流含有此类另外类型的可伸缩性的NAL,符合附录G或附录H的解码器将仍然根据SVC或MVC标准激活该SVC或MVC序列参数集RBSP,以及假设根据SVC或MVC标准的一致性。因此,level_idc应当被次优地设置以还覆盖在比特流中的非SVC或非MVC数据的比特率。此外,HRD参数应当覆盖在比特流中的非SVC或非MVC数据。
4.如果针对含有符合H.264/AVC标准的附录G或附录H的解码器不能解码的另外类型的可伸缩性的比特流,根据在H.264/AVC标准中的附录G或附录H中指定的过程来进行子比特流提取,则在所生成的子比特流中使含有针对此类另外类型的可伸缩性的数据的NAL单元保持不变。然而,针对此类另外类型的可伸缩性的数据可以具有如存在于附录G或附录H中的相同可伸缩性维度中的一些相同可伸缩性维度。例如,在3DV-ATM中,如使用MVC编码的纹理视图,编码深度视图与temporal_id和view_id相关联。因此基于temporal_id和/或view_id的子比特流提取也应当涉及深度视图。然而,如果使用现有的可伸缩性维度(诸如temporal_id和/或view_id)的子比特流提取过程也用于含有此类另外类型的可伸缩性的NAL单元,诸如深度视图,则针对附录G或附录H而存在的级别指示符和HRD参数将是过时的,因为它们建设根据在附录G或附录H中指定的过程来进行子比特流提取,即,使得含有此类另外类型的可伸缩性的NAL单元,诸如深度视图,保持存在于所生成的子比特流中。
5.符合H.264/AVC标准的附录A中指定的档次的解码器,即针对非可伸缩性(和非多视角)编码的档次中的一个档次将SVC和MVC的编码片(即,等于20的nal_unit_type的NAL单元)认为是非VCL NAL单元,而符合附录H或附录H中指定的档次的解码器将它们认为是VCL NAL单元。因此,VCL和NAL HRD参数不同。例如,MVC视频使用性信息扩展和用于携带图像定时和缓冲时间段SEI消息的MVC可伸缩嵌套SEI消息的语义依赖在子条款H.8.5.3中指定的子比特流提取过程,其将等于21的nal_unit_type的NAL单元作为非VCL NAL单元来对待,以及针对它们不执行基于temporal_id和view_id的提取。因此,针对由仅纹理视图组成的子比特流,不能传递适当的HRD参数。
在3DV-ATM中,可以如下来避免以上提及的缺点中的一些缺点。建议的是,在一些实施例中,例如在例如在3DVC序列参数集内的mvc_vui_parameters_extension()的第二实例中来传递纹理子比特流HRD参数,以及在能够局限于针对含有仅纹理视图的子比特率是有效的或相关的特定数据结构中来传递在图像定时和缓冲时间段SEI消息内或在类似于图像定时和缓冲时间段SEI消息内的HRD参数,诸如3DVC纹理子比特流HRD嵌套SEI消息。如果使用子比特流提取过程来提取纹理子比特流,则这些嵌套的HRD参数和SEI消息可以替换各自的MVC HRD参数和SEI消息,如上所述,其假设存在nal_unit_type 21的NAL单元作为非VCL NAL单元。
例如,以下子集序列参数语法结构可以用于3DVC序列参数集RBSP。
在所呈现的示例语法结构中,可以如下来指定某些语法元素。等于0的3dvc_vui_parameters_present_flag指定的是,对应于3DVC VUI参数扩展的语法结构mvc_vui_parameters_extension()不存在。等于1的3dvc_vui_parameters_present_flag指定的是,语法结构mvc_vui_parameters_extension()存在并且被称为3DVC VUI参数扩展。等于0的texture_vui_parameters_present_flag指定的是,对应于3DVC纹理子比特流VUI参数扩展的语法结构mvc_vui_parameters_extension()不存在。等于1的texture_vui_parameters_present_flag指定的是,语法结构mvc_vui_parameters_extension()存在并且被称为3DVC纹理子比特流VUI参数扩展。
在针对3DV-ATM的HRD中,可以被指定的是,当编码视频序列符合在3DV-ATM中指定的档次中的一个或多个档次时,通过3DVC视频使用性信息扩展来通过信号传送HRD参数集,其是子集序列参数集语法结构的一部分。此外,可以指定的是,当编码视频序列符合3DV-ATM并且应用解码过程ADV-ATM时,针对3DV-ATM特定指示的HRD参数处于使用中。
可以如下来指定3DVC纹理子比特流HRD嵌套SEI消息的语法。
可以如下指定3DVC纹理子比特流HRD嵌套SEI消息的语义。3DVC纹理子比特流HRD嵌套SEI消息可以含有例如有效载荷类型0或1的一个SEI消息(即,缓冲时间段或图像定时SEI消息)或含有唯一的MVC可伸缩嵌套SEI消息(其含有有效载荷类型0或1的一个SEI消息)。在3DVC纹理子比特流HRD嵌套SEI消息中包含的并且在MVC可伸缩嵌套SEI消息中不包含的SEI消息被称为嵌套的SEI消息。针对使用3DV-ATM子比特流提取过程获得的子比特流来应用嵌套的SEI消息的语义,该3DV-ATM子比特流提取过程使用等于0的depthPresentPlagTarget,等于texture_subbitstream_temporal_id的tIdTarget,以及由针对在0至num_texture_subbitstream_view_components_minus1(包含)的范围中的i的所有值的texture_subbitstream_view_id[i]组成的viewIdTargetList作为输入。num_texture_subbitstream_view_components_minusl加1指定嵌套的SEI消息应用于的操作点的视图成分的数量。texture_subbitstream_view_id[i]指定嵌套的SEI消息应用于的第i个视图成分的view_id。texture_subbitstream_temporal_id指定嵌套的SEI消息应用于的比特流子集的最大temporal_id。sei_nesting_zero_bit等于0。
在一些实施例中,可以如下指定3DV-ATM子比特流提取过程。至这个过程的输入可以是:变量depthPresentPlagTarget(当存在时)、变量pIdTarget(当存在时)、变量tIdTarget(当存在时)、由一个或多个viewIdTarget值组成的列表viewIdTargetList(当存在时)。这个过程的输出可以是子比特流和VOIdx值的列表VOIdxList。当作为输入不存在depthPresentFlagTarget时,可以推测depthPresentFlagTarget等于0。当作为输入pIdTarget不存在时,可以推测pIdTarget等于63。当作为输入tIdTarget不存在时,可以推测tIdTarget等于7。当作为输入viewIdTargetList不存在时,可以有在viewIdTargetList中推测viewIdTarget的一个值,以及viewIdTarget的值可以被推测为等于基础视图的view_id。在子比特流提取过程中,如果depthPresentFlagTarget等于0或用于从所生成的子比特流移除深度视图的类似指示是输入,则针对纹理子比特流特定指示的HRD参数可以被变换到在H.264/AVC和/或MVC中指定的数据结构。例如,在子比特流提取过程内可以使用以下操作中的一个或多个操作以变换HRD相关的数据结构。
-使用具有由被嵌套在3DVC纹理子比特流HRD嵌套SEI消息内的SEI消息组成的有效载荷的SEI NAL单元来替换SEI NAL单元(在该SEINAL单元中,payloadType指示3DVC纹理子比特流HRD嵌套SEI消息)。
-使用3DVC纹理子比特流VUI参数扩展的mvc_vui_parameters_extension()语法结构来替换在活动纹理3DVC序列参数集RBSP中的mvc_vui_parameters_extension()语法结构。
例如,可以通过以序列顺序来应用以下操作来导出子比特流:
1.根据在活动序列参数集中指示的视图间视图依赖性来导出变量VOIdxList以包含针对解码被包含在viewIdTargetList中的所有视图所需的所有视图。如果depthPresentFlagTarget等于1,则当导出VOIdxList时,可以考虑深度视图的视图间依赖性。将针对没有在VOIdxList中的所有视图成分的所有NAL单元标记为“将从比特流被移除”。
2.将针对以下条件中的任何一个条件为真的所有VCL NAL单元和填充数据NAL单元标记为“将从比特流被移除”:
-priority_id大于pIdTarget,
-temporal_id大于tIdTarget,
-anchor_pic_flag等于1以及view_id没有被标记为"针对锚是需要的"。
-anchor_pic_flag等于0以及view_id没有被标记为"针对非锚是需要的"。
-nal_ref_idc等于0以及inter_view_flag等于0以及view_id不等于在列表viewIdTargetList中的任何值,
-NAL单元含有针对深度视图成分的编码片以及depthPresentFlagTarget等于0。
3.移除所有访问单元,针对该所有访问单元而言,所有VCL NAL单元被标记为“将从比特流被移除的”。
4.移除被标记为“将从比特流被移除的”的所有VCL NAL单元和填充数据NAL单元。
5.移除具有nal_unit_type等于6的所有NAL单元,其中第一SEI消息具有等于0或1的payloadType,或第一SEI消息具有等于37的payloadType(MVC可伸缩嵌套SEI消息)以及在第一SEI消息中的operation_point_flag等于1。
6.当depthPresentFlagTarget等于0时,以下应用。
-使用由被嵌套在3DVC纹理子比特流HRD嵌套SEI消息内的SEI消息组成的有效载荷来替换具有等于6的nal_unit_type的所有NAL单元,其中payloadType指示具有等于6的nal_unit_type的3DVC纹理子比特流HRD嵌套SEI消息。
-对于每个活动纹理3DVC序列参数集RBSP应用以下:如果两个mvc_vui_parameters_extension()语法结构应用于相同的视图,则使用3DVC纹理子比特流VUI参数扩展的mvc_vui_parameters_extension()语法结构来替换在活动纹理3DVC序列参数集RBSP中的mvc_vui_parameters_extension()语法结构。否则,移除在活动纹理3DVC序列参数集RBSP中的mvc_vui_parameters_extension()语法结构。
-移除具有在3DV-ATM中指定的并且不针对H.264/AVC或MVC应用的所有SEI NAL单元。
7.让maxTId是所有剩余VCL NAL单元的最大temporal_id。移除具有nal_unit_type等于6的所有NAL单元,该所有NAL单元仅含有是MVC可伸缩嵌套SEI消息或3DVC可伸缩嵌套SEI消息的一部分的SEI消息,该SEI消息具有以下特点中的任何特点:
-operation_point_flag等于0,以及all_view_components_in_au_flag等于0以及针对在0至num_view_components_minusl(包含)范围中的所有i的没有sei_view_id[i]对应于被包含在VOIdxList中的VOIdx值,
-operation_point_flag等于1,以及sei_op_temporal_id大于maxTId或针对在0至num_view_components_op_minusl(包含)的范围中的所有i的sei_op_view_id[i]的列表不是viewIdTargetList的子集(即,针对在0至num_view_components_op_minusl(包含)的范围中的所有i的sei_op_view_id[i]等于在viewIdTargetList中的值是不真的)。
8.让maxTId是所有剩余VCL NAL单元的最大temporal_id。移除具有仅含有是3DVC纹理子比特流HRD嵌套SEI消息的一部分的SEI消息的nal_unit_type等于6的所有NAL单元,该SEI消息具有以下特点中的任何特点:
-texture_subbitstream_temporal_id大于maxTId或针对在0至num_texture_subbitstream_view_components_minusl(包含)的范围中的所有i的texture_subbitstream_view_id[i]的列表不是viewIdTargetList的子集(即,针对在0至num_texture_subbitstream_view_components_minusl(包含)的范围中的任何i的texture_subbitstream_view_id[i]等于在viewIdTargetList中的值是不真的)。
9.当存在时,移除每个视图可伸缩信息SEI消息和不存在SEI消息的每个操作点。
10.当VOIdxList不含有等于minVOIdx的VOIdx的值时,具有被包含在VOIdxList中的最小VOIdx值的VOIdx的视图被变换到所提取的子比特流的基础视图。
在一些实施例中,针对缓冲时间段和图像定时SEI消息可以应用以下,即具有payloadType等于0或1的SEI消息。
如果缓冲时间段或图像定时SEI消息被包含在3DVC可伸缩嵌套SEI消息中并且不被包含在MVC可伸缩嵌套SEI消息或3FVC纹理子比特流HRD嵌套SEI消息中,则可以应用以下。当被包含在具有完全相同值的sei_op_temporal_id和针对在0到num_view_components_op_minusl(包含)范围中的所有i的sei_op_view_id[i]的3DVC可伸缩嵌套SEI消息中的具有payloadType等于0或1的SEI消息和所有其他SEI消息被用作缓冲时间段和图像定时SEI消息以用于根据HRD检查比特流一致性,则通过调用使用depthPresentTargetPlag等于1,tIdTarget等于sei_op_temporal_id和viewIdTargetList等于sei_op_view_id[i](针对在0到num_view_components_op_minusl(包含)范围中的所有i)的3DV-ATM比特流提取过程获得的比特流符合3DV-ATM。
如果缓冲时间段或图像定时SEI消息被包含在3DVC纹理子比特流HRD嵌套SEI消息中,则可以应用以下。当被包含在具有完全相同值的texture_subbitstream_temporal_id和针对在0到num_exture_subbitstream_view_components_minusl(包含)范围中的所有i的texture_subbitstream_view_id[i]的3DVC纹理子比特流HRD嵌套SEI消息中的SEI消息和所有其他SEI消息被用作缓冲定时和图像定时SEI消息以用于根据HRD检查比特流一致性,则通过调用使用depthPresentTargetPlag等于0,tIdTarget等于texture_subbitstream_temporal_id和viewIdTargetList等于texture_subbitstream_view_id[i](针对在0到num_exture_subbitstream_view_components_minusl(包含)范围中的所有i)的3DV-ATM比特流提取过程获得的比特流符合3DV-ATM。
如从以上描述能够判断,使用新的可伸缩类型(诸如深度视图)来扩展H.264/AVC、SVC和MVC可能是复杂的,这是由于以下原因:
1.新可伸缩类型的编码片NAL单元是根据新修订的VCL NAL单元,但是非VCL NAL单元根据“旧”版本标准。由于HRD在它的操作中在VCL和非VCL NAL单元之间有所区别,因此针对VCL或非VCL NAL单元,取决于NAL单元类型的解释,需要不同的HRD参数集合。
2.针对“旧”版本标准的NAL单元和可伸缩类型,例如针对在H.264/AVC的附录G中的dependency_id,quality_id,temporal_id和priority_id以及针对H.264/AVC的附录H中的temporal_id,priority_id和view_id,而指定子比特流提取过程。然而,新NAL单元类型是针对新类型的可伸缩性而引入的,诸如针对编码深度视图以及潜在地针对增强纹理视图的NAL单元类型21,如在3DV-ATM中指定的,以及SVC或MVC的现有的子比特流提取过程原封不动留下的那些新NAL单元类型,即使它们也将含有“旧”的可伸缩维度,诸如在深度视图的情况中的temporal_id和view_id。
尽管草案HEVC标准不包含除了时间可伸缩性之外的可伸缩性特征,但是本发明人已经确认的是,在草案HEVC标准中的设计(当被扩展以支持可伸缩扩展时)将具有与SVC和MVC设计类似的问题。更具体地,本发明人已经确认在草案HEVC标准的设计中的至少以下问题或挑战:
1.与不同层相关联的序列参数集很有可能是类似的,而不管可伸缩类型(例如,质量、空间、多视角或深度/视差扩展)。例如,在多视角编码中,在不同视图中的图像的空间分辨率可以是相同的。在另一个示例中,可以跨越层来使用相同的编码算法和参数,以及因此相同的编码算法和参数可以针对在序列参数集中的有关语法元素具有相同值。因此,在解码器中,针对序列参数集使用的比特率和针对序列参数集所要求的存储空间可以不必高。例如在广播应用中,每个IDR/CRA/BLA图像可以传送序列参数集一次。
2.针对从使用temporal_id值作为输入的子比特流提取过程所产生的每个比特流子集能够指示不是不同的档次和级别。这个问题也适用更一般的情况。例如,如果比特流含有与深度视图相关联的多视角视频,以及仅能够纹理视频解码的解码器正在处理该比特流,则它激活应用于该纹理视图的序列参数集。然而,这些序列参数集是由编码器在级别和HRD参数中考虑用于编码深度的比特率而生成的。一般地说,当比特流含有针对没有被活动序列参数集记载的层的NAL单元时,在活动序列参数集中指示的级别和HRD参数仍然覆盖整个比特流。这时没有机制以指示针对由仅某些层组成的比特流子集的级别。
3.当比特流含有针对非基础层的NAL单元(即,具有不等于1的reserved_one_5bits/layer_id_plus1NAL单元)时,针对基础层的SPS指示基础层的档次,然而级别和HRD参数针对包含非基础层NAL单元的整个比特流而言是有效的。这时没有机制来指示含有仅基础层NAL单元的比特流子集的级别。
在一些实施例中,某些参数或语法元素值,诸如HRD参数和/或级别指示符,可以从存在于访问单元,编码视频序列和/或比特流的最高层的语法结构(诸如序列参数集)来获得,即使不解码最高层。最高层可以被定义为例如在HEVC的可伸缩扩展中的最大值的reserved_one_5bits或layer_id_plus1,尽管最高层的其它定义也可以是可能的。来自最高层的这些语法元素值在语义上可以是有效的,以及可以用于一致性检查,例如使用HRD,尽管来自其它各自语法结构(诸如序列参数集)的各自语法元素的值可以是活动的或以其他方式是有效的。
在以下,针对草案HEVC标准或诸如此类来描述一些示例实施例。应当理解的是,针对其它编码标准和规范将应用类似的实施例。
语法结构,诸如序列参数集,可以被封装成NAL单元,该NAL单元可以包含可伸缩层标识符,诸如例如在NAL的头部中的temporal_id和/或layer_id_plus1。
在一些实施例中,相同的seq_parameter_set_id可以用于具有不同语法元素值的序列参数集RBSP。具有相同seq_parameter_set_id值的序列参数集RBSP可以彼此相关联,例如从相同访问单元的不同成分图像(诸如层表示或视图成分)来推测具有相同值seq_parameter_set_id的序列参数集RBSP的此类方式。
在一些实施例中,例如如下,可以在SPS语法结构中启用部分更新机制。针对每个语法元素组(例如,档次和级别指示、HRD参数、空间分辨率),编码器在编码SPS语法结构时可以例如具有以下选项中的一个或多个选项:
-语法元素组可以被编码到SPS语法结构中,即语法元素集的编码语法元素值可以被包含在序列参数集语法结构中。
-可以通过引用将语法元素组包含到SPS中。可以作为至另一个SPS的标识符来给出该引用,或它可以是隐含的。如果使用引用标识符,则在一些实施例中,编码器可以使用针对不同组语法元素的不同引用APS标识符。如果隐含地引用SPS,则所引用的SPS可以例如具有相同的seq_parameter_set_id或类似的标识符,以及具有刚好在成分图像或层或视图之间的依赖顺序中的前面的可伸缩标识符(诸如layer_id_plus1),或可以是针对层或视图的活动SPS,该层或视图依赖于该活动的SPS,针对该层或视图而言正被编码的SPS是活动的SPS。
-可以从SPS指示语法元素集的组或从SPS推断语法元素集的组是缺失的。
这些选项,编码器当编码SPS时能够针对特定组的语法元素从这些选项进行选择,可以依赖于语法元素组的类型。例如,可以要求的是,某一类型语法的语法元素总是存在于SPS语法结构中,而其它组的语法元素可以通过引用被包含在SPS语法结构中或存在于在SPS语法结构中。编码器可以在比特流中编码指示,例如在SPS语法结果中,在编码中使用哪个选项。码表和/或熵编码可以取决于语法元素组的类型。解码器可以基于被解码的语法元素组的类型,使用与由编码器使用的码表和/或熵编码匹配的码表和/或熵解码。
编码器可以具有多种方式来指示语法元素组与用作针对语法元素集的值的源的SPS之间的关联。例如,编码器可以编码语法元素环路,其中每个环路条目被编码为指示被用作引用的SPS标识符值以及标识从引用SPS复制的语法元素集的语法元素。在另一个示例中,编码器可以编码多个语法元素,每个语法元素指示SPS。在含有特定语法元素组的环路中的最后的SPS是针对在SPS中的该语法元素组的引用(编码器当前正在将该语法元素组到比特流中)。解码器相应地从该比特流解析编码的自适应参数集,以便重现与编码器相同的自适应参数集。
针对SPS的部分更新机制可以例如允许从相同seq_parameter_set_id的另一个序列参数集来复制不同于档次和级别指示和潜在的HRD参数的语法元素。在一些实施例中,具有temporal_id大于0的序列参数集RBSP可以从具有相同seq_parameter_set_id和reserved_one_5bits值的序列参数集RBSP继承不同于档次和级别指示和选择性地还有VUI参数的语法元素的值。在一些实施例中,具有reserved_one_5bits/layer_id_plus1大于1的序列参数集RBSP从相同的seq_parameter_set_id和等于指示的序列参数集(如由src_layer_id_plus1指示的)的reserved_one_5bits的序列参数集RBSP选择性地包含或继承(如例如由随后出现的short_sps_flag语法元素管理的)不同于档次和级别指示的语法元素值。
在一些实施例中,例如通过接收过程或接收器,可以将被解码的最大的temporal_id值以及reserved_one_5bits/layer_id_plus1的值的集合提供给解码过程。如果没有提供给解码过程,则所有temporal_id值以及等于1的reserved_one_5bits/layer_id_plus1的VCL NAL单元可以被解码,而其他VCL NAL单元可以被忽略。例如,变量TargetLayerIdPlus1Set可以包括针对将被解码的VCL NAL单元的reserved_one_5bits的值的集合。可以针对解码过程提供TargetLayerIdPlus1,或当针对解码过程不提供时,TargetLayerIdPlus1含有针对reserved_one_5bits的一个值,其等于1。可以针对解码过程提供变量TargetTemporalId,或当针对解码过程不提供时,TargetTemporalId等于7。使用TargetLayerIdPlus1Set和TargetTemporalId作为输入来应用子比特流提取过程,以及被指配给比特流的输出被称为BitstreamToDecode。解码过程针对BitstreamToDecode来操作。
在一些实施例中,可以使用利用temporal_id和reserved_one_5bits值的集合作为输入的子比特流提取过程。序列参数集NAL单元可以基于reserved_one_5bits/layer_id_plus1和temporal_id经受子比特流提取。例如,至子比特流提取过程的输入是变量tIdTarget和layerIdPlus1Set,以及该过程的输出是子比特流。例如,通过从该比特流移除所有NAL单元(对于该所有NAL单元而言,temporal_id大于tIdTarget,或对于该所有NAL单元而言,reserved_one_5bits没有在layerIdPlus1Set中的值之中)来导出子比特流。
在一些实施例中,可以使用针对序列参数集RBSP的以下语法:
在以上语法中,例如如下,short_sps_flag可以指定针对序列参数集RBSP的语法元素的值的存在和推测。当short_sps_flag不存在以及temporal_id大于0时,short_sps_flag被推测为等于1并且变量SrcLayerIdPlus1被设置为等于reserved_one_5bits。当short_sps_flag不存在以及temporal_id等于0时,short_sps_flag被推测为等于0。当short_sps_flag存在时,变量SrcLayerIdPlusl被设置为等于src_layer_id_plus1。当short_sps_flag是1或被推测为等于1以及序列参数集RBSP被激活时,在seq_parameter_set_rbsp()语法结构中的语法元素(除了profile_space,profile_idc,constraint_flags,level_idc,profile_compatibility_flag[i],seq_parameter_set_id,short_sps_flag和src_layer_id_plus1之外)的值被推测为与具有相同值的seq_parameter_set_id以及reserved_one_5bits的值等于src_layer_id_plus1的seq_parameter_set_rbsp()语法结构中的各自语法元素的值相同。当short_sps_flag是1或被推测为等于1以及序列参数集RBSP被激活或被假想参考解码器使用时,在序列参数集RBSP中不存在的在视频使用性信息中的那些语法元素的值被推测为与在具有相同值的seq_parameter_set_id以及reserved_one_5bits的值等于src_layer_id_plus1的seq_parameter_set_rbsp()语法结构中的各自语法元素的值(如果存在)相同。
在一些实施例中,例如当仅时间可伸缩性在使用中或被允许时,可以如下来激活序列参数集RBSP。当序列参数集RBSP(具有特定值的seq_parameter_set_id)还不是活动的以及它被图像参数集RBSP(使用该值的seq_parameter_set_id)的激活所参考或被含有缓冲时间段SEI消息的SEI NAL单元(使用该值的seq_parameter_set_id)所参考时,如下来激活序列参数集RBSP:
-让序列参数集RBSP的集合,potentialSPSSet,含有具有特定值的seq_parameter_set_id以及小于或等于TargetTemporalId的temporal_id的值以及等于1的reserved_one_5bits的值的那些序列参数集RBSP。
-如果在potentialSPSSet之中有仅一个序列参数集RBSP,则它被激活。
-否则,在potentialSPSSet中具有最大值的reserved_one_5bits的序列参数集RBSP的集合之中,激活具有最大值temporal_id的序列参数集RBSP。
在一些实施例中,例如当使用temporal_id指示的时间可伸缩性和使用layer_id_plus1指示的至少一个其他类型的可伸缩性两者在使用中或被允许时,可以如下来激活序列参数集RBSP。当序列参数集RBSP(具有特定值的seq_parameter_set_id)还不是活动的以及它被图像参数集RBSP(使用该值的seq_parameter_set_id)的激活所参考或被含有缓冲时间段SEI消息的SEI NAL单元(使用该值的seq_parameter_set_id)所参考时,如下,针对具有等于LIdPlus1的reserved_one_5bits的层,针对等于在TargetLayerIdPlus1Set中的每个值的LIdPlus1值,来激活序列参数集RBSP:
-让序列参数集RBSP的集合,potentialSPSSet,含有具有特定值的seq_parameter_set_id以及小于或等于TargetTemporalId的temporal_id的值以及reserved_one_5bits的值在TargetLayerIdPlus1Set中以及小于或等于LIdPlus1的那些序列参数集RBSP。
-如果在potentialSPSSet之中有仅一个序列参数集RBSP,则它被激活。
-否则,如果在potentialSPSSet之中有仅一个序列参数集RBSP,该序列参数集RBSP具有大于在potentialSPSSet之中的任何其他序列参数集RBSP的reserved_one_5bits的值的reserved_one_5bits的值,则激活该序列参数集RBSP。
-否则,在potentialSPSSet中具有最大值的reserved_one_5bits的序列参数集RBSP的集合之中,激活具有最大值temporal_id的序列参数集RBSP。
在一些实施例中,用于HRD参数集的序列参数集RBSP,conformanceSPS,可以如下来进行选择:
-让序列参数集RBSP的集合,potentialSPSSet,含有具有与活动序列参数集RBSP的seq_parameter_set_id值相同的seq_parameter_set_id值以及小于或等于在比特流的VCL NAL单元之中的最大temporal_id值的temporal_id值以及小于或等于在该比特流的VCL NAL单元之中的最大的reserved_one_5bits值的reserved_one_5bits值的那些序列参数集RBSP。
-如果在potentialSPSSet之中有仅一个序列参数集RBSP,则conformanceSPS是该序列参数集RBSP。
-否则,如果在potentialSPSSet之中有仅一个序列参数集RBSP,该序列参数集RBSP具有大于在potentialSPSSet中的任何其他序列参数集RBSP的reserved_one_5bits的值的reserved_one_5bits值,则conformanceSPS是该序列参数集RBSP。
-否则,在potentialSPSSet中具有最大值的reserved_one_5bits的序列参数集RBSP的集合之中,conformanceSPS是具有最大值temporal_id的序列参数集RBSP。
在一些实施例中,可以定义和使用术语成分序列和成分图像。成分序列能够是例如纹理视图、深度视图或空间/质量可伸缩性的增强层。每个成分序列可以参考各自的序列参数集,以及若干成分序列可以参考相同的序列参数集。每个成分序列可以由变量CPId或LayerId来唯一标识,在HEVC的上下文中,可以从在NAL单元头部的第二字节中的5个保留比特(reserved_one_5bits)导出变量CPId或LayerId。编码视频序列的时间子集可以不被认为是成分序列;反而,temporal_id可以被认为是正交属性。成分图像可以以CPId的递增顺序出现在访问单元内。一般地,视频编码序列可以包括一个或多个成分图像。访问单元可以包括一个或多个成分图像。在草案HEVC规范中,成分图像可以被定义为访问单元的编码图像,以及在将来可伸缩HEVC扩展中,它将是例如视图成分、深度图或层表示。
在一些实施例中,序列参数集或视频参数集或一些其他语法结构或多个结构可以含有指示成分序列之间的依赖性(诸如预测关系)的语法元素。例如,VPS语法可以包含:成分序列之间的依赖性以及CPId至特定可伸缩属性(例如,dependency_id,quality_id,视图顺序索引)的映射。
在一个示例中,被称为跨层VPS,在VPS中描述整个编码视频序列的层之间的依赖性和层的属性。单个VPS可以针对所有层是活动的。如果从比特流来提取层,则跨层VPS可以描述不再存在于该比特流中的层。跨层VPS可以如下扩展在草案HEVC标准中指定的VPS:
因为可能不知道可伸缩性的类型和用于表示它们的语法元素以及可能随后引入新类型的可伸缩性时,因此所提出的语法使得能够解析VPS,即使对于解码器而言可伸缩性类型是未知的。解码器能够解码它知道的含有那些可伸缩性类型的比特流的子集。
可以如下来指定跨层VPS的语义。num_ref_component_seq[i]指定具有等于i的CPId的成分序列依赖于的成分序列的数量。ref_component_seq_id[i][j]指定具有等于i的CPId的成分序列依赖于的成分序列的vps_id值。component_sequence_type[i]指定具有等于i的类型索引的成分序列的类型。component_sequence_type[0]被推测为指示HEVC基础成分序列。component_sequence_property_len[i]指定在component_sequence_property[]语法元素的比特中的大小,在该component_sequence_property[]语法元素之前是具有等于i的值的component_sequence_type_idx[]语法元素。component_sequence_type_idx[i]指定针对具有等于i的CPId的成分序列的类型索引。具有等于i的CPId的成分序列具有类型component_sequence_type[component_sequence_type_idx[i]]。component_sequence_property[i]指定以具有等于i的CPId成分序列为特征的值或多个值。根据component_sequence_type[component_sequence_type_idx[i]]来指定component_sequence_property[i]的语义。
在一个示例中,被称为分层VPS,VPS NAL单元描述单个层或成分序列的依赖性和属性。分层VPS NAL单元使用reserved_one_5bits,以及因此在子比特流提取中VPS NAL单元连同其它层特定的NAL单元一起被提取。不同的VPS可以针对每个层是活动的,尽管可以在所有活动VPS中使用相同的vps_id。可以要求在所有活动(层/视图)序列参数集中的vps_id是相同的。分层VPS可以如下来扩展在草案HEVC标准中指定的VPS:
可以如下指定分层VPS的语义。num_ref_component_seq指定成分序列依赖于的成分序列的数量。ref_component_seq_id[j]指定成分序列依赖于的成分序列的vps_id值。component_sequence_type指定成分序列的类型。component_sequence_type指定成分序列的类型。component_sequence_type的值被保留。component_sequence_property_len指定在component_sequence_property语法元素的比特中的大小。component_sequence_property指定以成分序列为特征的值或多个值。根据component_sequence_type来指定component_sequence_property的语义。
在一些实施例中,可以指定子比特流提取过程,其中提供输出层或成分序列的集合作为输入。子比特流提取过程可以例如使用在序列参数集(多个)或视频参数集(多个)中提供的依赖性信息来推断针对解码输出成分序列的所要求的成分序列。输出成分序列和针对解码所要求的成分序列可以被称为目标成分序列以及各自可伸缩层标识符值作为目标可伸缩层标识符值。子比特流提取过程可以移除所有NAL单元,包含参数集NAL单元,其中可伸缩层标识符值不在目标可伸缩层标识符值之中。
现在参照图10,说明可以由依照本发明的示例实施例特定配置的装置50执行的操作。在这点上,装置可以包含构件,诸如处理器56或诸如此类,以用于产生可伸缩数据流的两个或更多可伸缩层。所述构件,诸如处理器56或诸如此类,可以例如包含实现根据图4a或诸如此类的编码布置的块,潜在地还包含层间、视图间和/或视图合成预测或诸如此类(未在图4a中说明)。见图10的框400。两个或更多可伸缩层中的每个可伸缩层可以具有不同的编码属性,可以与可伸缩层标识符相关联以及可以以包含至少档次的语法元素的第一集合和包含级别或HRD参数中的至少一个的语法元素的第二集合为特征。如在图10的框402中示出的,这个实施例的装置还可以包含构件,诸如处理器或诸如此类,以用于将第一可伸缩层标识符值插入在包含来自两个或更多可伸缩层的第一可伸缩层的数据的第一基本单元中。这个实施例的装置还可以包含构件,诸如处理器、通信接口或诸如此类,以用于使得两个或更多可伸缩层的第一可伸缩层与语法元素的第一集合和第二集合和第一参数集基本单元一起通过信号传送,使得第一参数集基本单元能够由解码器读取以在不解码可伸缩数据流的可伸缩层的情况下确定语法元素的第一集合和第二集合。见图10的框404。语法元素的第一集合可以例如包括档次指示符,以及语法元素的第二集合可以例如包括级别指示符和HRD参数。一个实施例的装置还可以包含构件,诸如处理器或诸如此类,以用于将第一可伸缩层标识符值插入在第一参数集基本单元中,以及构件,诸如处理器或诸如此类,以用于将第二可伸缩层标识符值插入在包含来自两个或更多可伸缩层的第二可伸缩层的数据的第二基本单元中。见图10的框406和408。参数集基本单元可以例如是包含参数集的NAL单元。第一和第二可伸缩层标识符可以例如是被包含在NAL单元头部中的一个或多个语法元素,诸如在HEVC中的reserved_one_5bits。如在图10的框410中示出的,一个实施例的装置还可以包含构件,诸如处理器、通信接口或诸如此类,以用于使得两个或更多可伸缩层的第二可伸缩层与语法元素的第一集合和第二集合和第二参数集基本单元一起通过信号传送,使得第二参数集基本单元能够由解码器读取,以在不解码可伸缩数据流的可伸缩层的情况下确定编码属性。这个实施例的装置还可以包含构件,诸如处理或诸如此类,以用于将第二可伸缩层标识符值插入在第二参数集基本单元中。见图10的框412。
在这个实施例中,在第一基本单元被处理以及第二基本单元被忽略或移除的情况下,语法元素的第一集合和第一参数集基本单元的值可以是有效的。可以在子比特流提取过程中移除第二基本单元,例如子比特流提取过程可以移除含有第二基本单元的可伸缩层或成分序列。在缺失第二基本单元或整个成分序列(其含有第二基本单元)时,第一参数集的语法元素的第一集合的值(诸如档次指示符)可以是有效的。在第一基本单元被处理以及第二基本单元被移除的情况下,在第一参数集基本单元中的语法元素的第二集合的值可以是有效的。例如,被包含在语法元素的第二集合中的HRD参数和/或级别指示符可以针对含有第一基本单元的子比特流,以及在许多情况下含有第一基本单元但是不包含第二基本单元的成分序列以及在许多情况下含有第二基本单元的成分序列,是有效的。在第二基本单元被处理的情况下,在第二参数集基本单元中的语法元素的第一集合的值可以是有效的。例如,如果包含第二基本单元的比特流被解码,则语法元素的第一集合的值(诸如档次指示符)可以是有效的以及可以在解码中被使用。另外,在第二基本单元被忽略或移除的情况下,在第二参数集基本单元中的语法元素的第二集合的值可以是有效的。例如,如果含有第一基本单元的成分序列被解码,但是第二基本单元以及在许多情况下含有第二基本单元的成分序列被忽略,则第二参数集的HRD参数和/或level_idc可以以描述比特流的比特率和/或比特流的缓冲和/或等为特征,以及因此可以是有效的以及可以用于解码。在另一个示例中,如果含有第一和第二基本单元两者的比特流被解码,则第二参数集的HRD参数和/或level_idc可以以描述比特流的比特率和/或比特流的缓冲和/或等为特征,以及因此可以是有效的以及可以用于解码。
现在参照图11,说明可以由依照本发明的另一个示例实施例特定配置的装置50执行的操作。在这点上,装置可以包含构件,诸如处理器56、通信接口或诸如此类,以用于接收包含具有不同编码属性的可伸缩层的第一可伸缩数据流。见图11的框420。两个或更多可伸缩层中的每个可伸缩层可以与可伸缩层标识符相关联,以及可以以包含至少档次的语法元素的第一集合和包含级别或HRD参数中的至少一个的语法元素的第二集合为特征。第一可伸缩层标识符值可以位于包含来自两个或更多可伸缩层的第一可伸缩层的数据的第一基本单元中。可以在针对两个或更多可伸缩层的第一可伸缩层的第一参数集基本单元中通过信号传送语法元素的第一集合和第二集合,使得第一参数集能够被解码器读取以在不解码可伸缩数据流的可伸缩层的情况下确定语法元素的第一集合和第二集合的值。第一可伸缩层标识符值可以位于第一参数集基本单元中。第二可伸缩层标识符值可以位于包含来自两个或更多可伸缩层的第二可伸缩层的数据的第二基本单元中。可以在第二参数集基本单元中通过信号传送语法元素的第一集合和第二集合与两个或更多可伸缩层的第二可伸缩层,使得第二参数集能够被解码器读取以在不解码可伸缩数据流的可伸缩层的情况下确定解码属性。第二可伸缩层标识符值可以位于第二参数集基本单元中。如在图11的框422中示出的,这个实施例的所述装置还可以包含:构件,诸如处理器或诸如此类,以用于从所接收的第一可伸缩数据流移除第二基本单元和第二参数集基本单元。可以基于包含第二可伸缩层标识符值的第二基本单元和第二参数集基本单元,移除第二基本单元和第二参数集基本单元。
现在参照图12,说明可以由依照本发明的另一个示例实施例特定配置的装置50执行的操作。在这点上,装置可以包含构件,诸如处理器56、通信接口或诸如此类,以用于接收包含具有不同编码属性的可伸缩层的第一可伸缩数据流。两个或更多可伸缩层中的每个可伸缩层可以与可伸缩层标识符相关联,以及可以以编码属性为特征。第一可伸缩层标识符值可以位于包含来自两个或更多可伸缩层的第一可伸缩层的数据的第一基本单元中。在第一参数集基本单元中通过信号传送编码属性与两个或更多可伸缩层的第一可伸缩层,使得该编码属性能够被解码器读取以在不解码可伸缩数据流的可伸缩层的情况下确定编码属性。第一可伸缩层标识符值可以位于第一参数集基本单元中。第二可伸缩层标识符值可以位于包含来自两个或更多可伸缩层的第二可伸缩层的数据的第二基本单元中。可以在针对两个或更多可伸缩层的第二可伸缩层的第二参数集基本单元中通过信号传送语法元素的第一集合和第二集合,使得第一参数集能够被解码器读取以在不解码可伸缩数据流的可伸缩层的情况下确定语法元素的第一集合和第二集合的值。第二可伸缩层标识符值可以位于第二参数集基本单元中。如在框432中示出的,这个实施例的装置还可以包含构件,诸如处理器、通信接口或诸如此类,以用于接收指示将被解码的可伸缩层的可伸缩层标识符值的集合。这个实施例的装置还可以包含构件,诸如处理器或诸如此类,以用于从所接收的第一可伸缩数据流移除第二基本单元和第二参数集基本单元。例如,可以基于包含没有位于可伸缩层标识符值的集合之中的第二可伸缩层标识符值的第二基本单元和第二参数集基本单元,移除第二基本单元和第二参数集基本单元。见图12的框434。
在以上,已经借助于比特流的语法描述了示例实施例。然而,需要理解的是,对应的结构和/或计算机程序可以位于用于生成比特流的编码器处和/或位于用于解码比特流的解码器处。同样地,在已经参照编码器描述了示例实施例的地方,需要理解的是,所产生的比特流和解码器在它们之中具有对应的元素。同样,在已经参照解码器描述了示例实施例的地方,需要理解的是,编码器具有用于生成由该解码器解码的比特流的结构和/或计算机程序。
在以上中,已经关于序列参数集来描述了实施例。然而,需要理解的是,能够使用任何类型的参数集(诸如视频参数集、图像参数集、GOS参数集和自适应参数集)以及其它类型的语法结构(诸如SEI NAL单元和SEI消息)来实现这些实施例。
在多媒体应用中涉及的技术包含(除了其它外):媒体编码、存储和传输。媒体类型包含:语音、音频、图像、视频、图形和时间文本。尽管在本申请中将视频编码描述为针对本发明的示例性应用,但是本发明的实施例不受此限制。本领域的技术人员将认识到的是,本发明的实施例能够与所有媒体类型不仅是视频结合使用。
尽管以上示例描述了在电子设备内的编解码器内操作的本发明的实施例,但是将了解的是,如下描述的本发明的实施例可以被实现成任何视频编解码器的一部分。因此,例如,本发明的实施例可以在视频编解码器中实现,该视频编解码器可以实现在固定或有线通信路径上的视频编码。
因此,用户设备可以包括:视频编解码器,诸如以上在本发明的实施例中描述的那些视频编解码器。应当了解的是,术语用户设备旨在涵盖任何合适类型的无线用户设备,诸如移动电话、便携式数据处理设备或便携式网络浏览器。
此外,公共陆地移动网络(PLMN)的元素也可以包括如上所述的视频编解码器。
一般地,可以将本发明的各种实施例实现成硬件或专用电路、软件、逻辑和它们的任何组合。例如,一些方面可以被实现在硬件中,而其它方面可以被实现在固件或软件,该固件或软件可以由控制器、微处理器或其它计算设备来执行,尽管本发明不限制于此。虽然本发明的各种方面被说明和描述成框图、流程图或使用一些其它图形表示,但是很好理解的是,本文中所述的这些框、装置、系统、技术或方法可以被实现在,作为非限制性示例,硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其它计算设备或其一些组合中。
可以借助于计算机程序代码来实现本发明的各种实施例,该计算机程序代码驻留在存储器中以及使得相关装置实现本发明的实施例。例如,终端设备可以包括:用于处理、接收和传送数据的电路和电子产品,在存储器中的计算机程序代码以及处理器,当该处理器运行该计算机程序代码时,该处理器使得终端设备实现实施例的特征。此外,网络设备可以包括用于处理、接收和传送数据的电路和电子产品,在存储器中的计算机程序代码以及处理器,当该处理器运行该计算机程序代码时,该处理器使得网络设备实现实施例的特征。
如上所述,存储器可以具有适合于本地技术环境的任何类型,并且可以使用任何合适的数据存储技术来实现,诸如基于半导体的存储设备,磁存储设备和系统,光存储设备和系统,固定存储器和可移动存储器。数据处理器可以具有适合于本地技术环境的任何类型,并且可以包含作为非限制性示例的下列中的一个或多个:通用计算机、专用计算机、微处理器、数字信号处理器(DSP)和基于多核处理器架构的处理器,以及如以上进一步描述。
可以在各种组件中,诸如在集成电路模块中,实践本发明的实施例。一般而言,集成电路的设计基本上是高度自动化的过程。复杂和功能强大的软件工具可用于将逻辑级的设计转换成准备将要被蚀刻和形成在半导体衬底上的半导体电路设计。
程序,诸如由加利福尼亚的山景城的新思科技(Synopsys,Inc.ofMountain View,California)和加利福尼亚的圣何塞的凯登斯设计(Cadence Design,of San Jose,California)所提供的那些程序,使用良好建立的设计规则以及预存储的设计模块的库在半导体芯片上自动化路由导体和定位组件。一旦已经完成了针对半导体电路的设计,则所生成的设计可以以标准化电子形式(例如,Opus,GDSII等)传送给半导体制造厂或用于制造的简写的“fab”。
图10-12是根据本发明的示例实施例的方法、装置和计算机程序产品的流程图。将理解的是,可以通过各种构件(诸如硬件、固件、处理器、电路和/或与包含一个或多个计算机程序指令的软件的执行相关联的其它设备)来实现流程图的每个框,以及流程图中的框的组合。例如,可以通过计算机程序指令来具体化上述过程中的一个或多个过程。在这点上,计算机程序指令(其具体化上述过程)可以由使用本发明的实施例的装置50的存储设备58来存储,以及可以由装置中的处理器56来运行。如将了解的是,可以将任何此类计算机程序指令加载到计算机或其它可编程的装置(例如,硬件)上以产生机器,使得所产生的计算机或其它可编程装置具体化用于实现流程图框中指定的功能的机构。还可以将这些计算机程序指令存储在非短暂性的计算机可读存储器(与传输介质(诸如载波或电磁信号)相对)中,该计算机程序指令可以指导计算机或其它可编程装置以特定方式来执行功能,使得存储在计算机可读存储器中的指令产生制造品,该制造品的执行实现流程图框中指定的功能。还可以将计算机程序指令加载到计算机或其它可编程装置上以使得在该计算机或其它可编程装置上执行一系列的操作,以产生计算机实现的过程,使得在计算机或其它可编程装置上执行的指令提供用于实现流程图框(多个)中指定的功能的操作。照此,图10-12的操作,当被执行时,将计算机或处理电路转变成特定机器,该特定机器被配置为执行本发明的示例实施例。因此,图10-12的操作定义了用于配置计算机或处理电路(例如,处理器)以执行示例实施例的算法。在一些情况下,可以将通用计算机配置为执行图10-12中示出的功能(例如经由处理器的配置),从而将通用计算机变换成被配置为执行示例实施例的特定机器。
因此,流程图的框支持用于执行指定功能的构件的组合,用于执行指定功能的操作的组合以及用于指定功能的程序指令的组合。还将理解的是,流程图中的一个或多个框,以及流程图中的框的组合,可以由执行指定的功能的专用的基于硬件的计算机系统或专用硬件和计算机指令的组合来实现。
在一些实施例中,以上操作中的某些操作可以被修改或进一步扩充。此外,在一些实施例中,可以包含另外非必须的操作。可以以任何顺序以及以任何组合来执行针对以上操作的修改、增加或扩充。
本文所阐述的本发明的许多修改和其它实施例将进入到本发明相关领域的受益于在上述说明和相关联的附图中所呈现的教示的技术人员的脑海中。因此,应当理解的是,本发明的实施例不限制于所公开的特定实施例,并且所述修改和其它实施例旨在被包含在所附权利要求书的范围内。此外,虽然在单元和/或功能的某些示例组合的上下文中,上述描述和相关联的附图描述了示例实施例,但是应当了解的是,在不背离所附权利要求书的范围的情况下,可以由可替代的实施例来提供单元和/或功能的不同组合。在这点上,例如除了上述所明确描述的外,单元和/或功能的不同组合也被预期为可以由所附权利要求中的一些权力要求来阐述。虽然,本文中使用了特定术语,但是它们仅是用于通用和描述性意义,并且不是出于限制的目的。

Claims (26)

1.一种方法,包括:
使用处理器产生可伸缩数据流的两个或更多可伸缩层,其中所述两个或更多可伸缩层中的每个可伸缩层具有不同的编码属性,与可伸缩层标识符相关联,以及以包括至少档次的语法元素的第一集合和包括级别或假想参考解码器(HRD)参数中的至少一个的语法元素的第二集合为特征;
将第一可伸缩层标识符值插入到包含来自两个或更多可伸缩层的第一可伸缩层的数据的第一基本单元中;
使得所述两个或更多可伸缩层的所述第一可伸缩层与在第一参数集基本单元中的语法元素的所述第一集合和第二集合一起通过信号被传送,使得所述第一参数集基本单元能够被解码器读取以在不解码所述可伸缩数据流的可伸缩层的情况下确定语法元素的所述第一集合和第二集合的值;
将所述第一可伸缩层标识符值插入到所述第一参数集基本单元中;
将第二可扩展层标识符值插入到包含来自两个或更多可伸缩层的第二可伸缩层的数据的第二基本单元中;
使得所述两个或更多可伸缩层中的所述第二可伸缩层与在第二参数集基本单元中的语法元素的所述第一集合和第二集合一起通过信号被传送,使得所述第二参数集基本单元能够被所述解码器读取以在不解码所述可伸缩数据流的可伸缩层的情况下确定编码属性;
将所述第二可伸缩层标识符值插入到所述第二参数集基本单元中,
其中,在所述第一基本单元被处理以及所述第二基本单元被忽略或移除的情况下,在所述第一参数集基本单元中的语法元素的所述第一集合的值是有效的,
其中,在所述第一基本单元被处理以及所述第二基本单元被移除的情况下,在所述第一参数集基本单元中的语法元素的所述第二集合的值是有效的,
其中,在所述第二基本单元被处理的情况下,在所述第二参数集基本单元中的语法元素的所述第一集合的值是有效的,以及
其中,在所述第二基本单元被忽略或处理的情况下,在所述第二参数集基本单元中的语法元素的所述第二集合的值是有效的。
2.根据权利要求1所述的方法,其中语法元素的所述第一集合和第二集合被包含在存在于访问单元、编码视频序列或比特流中的最高层的语法结构中。
3.根据权利要求1所述的方法,其中所述级别包括级别指示符。
4.一种装置,所述装置包括至少一个处理器和包含计算机程序代码的至少一个存储器,所述存储器和所述计算机程序代码被配置为使用所述至少一个处理器使得所述装置:
产生可伸缩数据流的两个或更多可伸缩层,其中所述两个或更多可伸缩层中的每个可伸缩层具有不同的编码属性,与可伸缩层标识符相关联,以及以包括至少档次的语法元素的第一集合和包括级别或假想参考解码器(HRD)参数中的至少一个的语法元素的第二集合为特征;
将第一可伸缩层标识符值插入到包含来自两个或更多可伸缩层的第一可伸缩层的数据的第一基本单元中;
使得所述两个或更多可伸缩层中的所述第一可伸缩层与在第一参数集基本单元中的语法元素的所述第一集合和第二集合一起通过信号被传送,使得所述第一参数集基本单元能够被解码器读取以在不解码所述可伸缩数据流的可伸缩层的情况下确定语法元素的所述第一集合和第二集合的值;
将所述第一可伸缩层标识符值插入到所述第一参数集基本单元中;
将第二可扩展层标识符值插入到包含来自两个或更多可伸缩层的第二可伸缩层的数据的第二基本单元中;
使得所述两个或更多可伸缩层的所述第二可伸缩层与在第二参数集基本单元中的语法元素的所述第一集合和第二集合一起通过信号被传送,使得所述第二参数集基本单元能够被所述解码器读取以在不解码所述可伸缩数据流的可伸缩层的情况下确定编码属性;
将所述第二可伸缩层标识符值插入到所述第二参数集基本单元中,
其中,在所述第一基本单元被处理以及所述第二基本单元被忽略或移除的情况下,在所述第一参数集基本单元中的语法元素的所述第一集合的值是有效的,
其中,在所述第一基本单元被处理以及所述第二基本单元被移除的情况下,在所述第一参数集基本单元中的语法元素的所述第二集合的值是有效的,
其中,在所述第二基本单元被处理的情况下,在所述第二参数集基本单元中的语法元素的所述第一集合的值是有效的,以及
其中,在所述第二基本单元被忽略或处理的情况下,在所述第二参数集基本单元中的语法元素的所述第二集合的值是有效的。
5.根据权利要求4所述的装置,其中语法元素的所述第一集合和第二集合被包含在存在于访问单元、编码视频序列或比特流中的最高层的语法结构中。
6.根据权利要求4所述的装置,其中所述级别包括级别指示符。
7.一种计算机程序产品,所述计算机程序产品包含至少一个非短暂性的计算机可读存储介质,所述至少一个非短暂性的计算机可读存储介质具有存储在其中的计算机可执行程序代码部分,所述计算机可执行程序代码部分包含程序代码指令,所述程序代码指令用于:
产生可伸缩数据流的两个或更多可伸缩层,其中所述两个或更多可伸缩层中的每个可伸缩层具有不同的编码属性,与可伸缩层标识符相关联,以及以包括至少档次的语法元素的第一集合和包括级别或假想参考解码器(HRD)参数中的至少一个的语法元素的第二集合为特征;
将第一可伸缩层标识符值插入到包含来自两个或更多可伸缩层的第一可伸缩层的数据的第一基本单元中;
使得所述两个或更多可伸缩层中的所述第一可伸缩层与在第一参数集基本单元中的语法元素的所述第一集合和第二集合一起通过信号被传送,使得所述第一参数集基本单元能够被解码器读取以在不解码所述可伸缩数据流的可伸缩层的情况下确定语法元素的所述第一集合和第二集合的值;
将所述第一可伸缩层标识符值插入到所述第一参数集基本单元中;
将第二可扩展层标识符值插入到包含来自两个或更多可伸缩层的第二可伸缩层的数据的第二基本单元中;
使得所述两个或更多可伸缩层的所述第二可伸缩层与在第二参数集基本单元中的语法元素的所述第一集合和第二集合一起通过信号被传送,使得所述第二参数集基本单元能够被所述解码器读取以在不解码所述可伸缩数据流的可伸缩层的情况下确定编码属性;
将所述第二可伸缩层标识符值插入到所述第二参数集基本单元中,
其中,在所述第一基本单元被处理以及所述第二基本单元被忽略或移除的情况下,在所述第一参数集基本单元中的语法元素的所述第一集合的值是有效的,
其中,在所述第一基本单元被处理以及所述第二基本单元被移除的情况下,在所述第一参数集基本单元中的语法元素的所述第二集合的值是有效的,
其中,在所述第二基本单元被处理的情况下,在所述第二参数集基本单元中的语法元素的所述第一集合的值是有效的,以及
其中,在所述第二基本单元被忽略或处理的情况下,在所述第二参数集基本单元中的语法元素的所述第二集合的值是有效的。
8.一种装置,包括:
用于产生可伸缩数据流的两个或更多可伸缩层的构件,其中所述两个或更多可伸缩层中的每个可伸缩层具有不同的编码属性,与可伸缩层标识符相关联,以及以包括至少档次的语法元素的第一集合和包括级别或假想参考解码器(HRD)参数中的至少一个的语法元素的第二集合为特征;
用于将第一可伸缩层标识符值插入到包含来自两个或更多可伸缩层的第一可伸缩层的数据的第一基本单元中的构件;
用于使得所述两个或更多可伸缩层中的所述第一可伸缩层与在第一参数集基本单元中的语法元素的所述第一集合和第二集合一起通过信号被传送,使得所述第一参数集基本单元能够被解码器读取以在不解码所述可伸缩数据流的可伸缩层的情况下确定语法元素的所述第一集合和第二集合的值的构件;
用于将所述第一可伸缩层标识符值插入到所述第一参数集基本单元中的构件;
用于将第二可扩展层标识符值插入到包含来自两个或更多可伸缩层的第二可伸缩层的数据的第二基本单元中的构件;
用于使得所述两个或更多可伸缩层的所述第二可伸缩层与在第二参数集基本单元中的语法元素的所述第一集合和第二集合一起通过信号被传送,使得所述第二参数集基本单元能够被所述解码器读取以在不解码所述可伸缩数据流的可伸缩层的情况下确定编码属性的构件;
用于将所述第二可伸缩层标识符值插入到所述第二参数集基本单元中的构件,
其中,在所述第一基本单元被处理以及所述第二基本单元被忽略或移除的情况下,在所述第一参数集基本单元中的语法元素的所述第一集合的值是有效的,
其中,在所述第一基本单元被处理以及所述第二基本单元被移除的情况下,在所述第一参数集基本单元中的语法元素的所述第二集合的值是有效的,
其中,在所述第二基本单元被处理的情况下,在所述第二参数集基本单元中的语法元素的所述第一集合的值是有效的,以及
其中,在所述第二基本单元被忽略或处理的情况下,在所述第二参数集基本单元中的语法元素的所述第二集合的值是有效的。
9.一种方法,包括:
接收包括具有不同编码属性的可伸缩层的第一可伸缩数据流,其中
所述两个或更多可伸缩层中的每个可伸缩层与可伸缩层标识符相关联,以及以包括至少档次的语法元素的第一集合和包括级别或假想参考解码器(HRD)参数中的至少一个的语法元素的第二集合为特征;
第一可伸缩层标识符值位于包含来自两个或更多可伸缩层的第一可伸缩层的数据的第一基本单元中;
在针对所述两个或更多可伸缩层中的所述第一可伸缩层的第一参数集基本单元中通过信号传送语法元素的所述第一集合和第二集合,使得第一参数集能够被解码器读取以在不解码所述可伸缩数据流的可伸缩层的情况下确定语法元素的所述第一集合和第二集合的值;
所述第一可伸缩层标识符值位于第一参数集基本单元中;
第二可伸缩层标识符值位于包含来自两个或更多可伸缩层的第二可伸缩层的数据的第二基本单元中;
在针对所述两个或更多可伸缩层的所述第二可伸缩层的第二参数集基本单元中通过信号传送语法元素的所述第一集合和第二集合,使得第二参数集能够被所述解码器读取以在不解码所述可伸缩数据流的可伸缩层的情况下确定所述编码属性;
所述第二可伸缩层标识符值位于所述第二参数集基本单元中;以及
使用处理器,基于包含所述第二可伸缩层标识符值的所述第二基本单元和所述第二参数集基本单元,从所接收的第一可伸缩数据流移除所述第二基本单元和所述第二参数集基本单元。
10.根据权利要求9所述的方法,其中语法元素的所述第一集合和第二集合被包含在存在于访问单元、编码视频序列或比特流中的最高层的语法结构中。
11.根据权利要求9所述的方法,其中所述级别包括级别指示符。
12.一种装置,所述装置包含至少一个处理器和包含计算机程序代码的至少一个存储器,所述存储器和所述计算机程序代码被配置为使用所述至少一个处理器使得所述装置:
接收包括具有不同编码属性的可伸缩层的第一可伸缩数据流,其中
所述两个或更多可伸缩层中的每个可伸缩层与可伸缩层标识符相关联,以及以包括至少档次的语法元素的第一集合和包括级别或假想参考解码器(HRD)参数中的至少一个的语法元素的第二集合为特征;
第一可伸缩层标识符值位于包含来自两个或更多可伸缩层的第一可伸缩层的数据的第一基本单元中;
在针对所述两个或更多可伸缩层中的所述第一可伸缩层的第一参数集基本单元中通过信号传送语法元素的所述第一集合和第二集合,使得第一参数集能够被解码器读取以在不解码所述可伸缩数据流的可伸缩层的情况下确定语法元素的所述第一集合和第二集合的值;
所述第一可伸缩层标识符值位于第一参数集基本单元中;
第二可伸缩层标识符值位于包含来自两个或更多可伸缩层的第二可伸缩层的数据的第二基本单元中;
在针对所述两个或更多可伸缩层的所述第二可伸缩层的第二参数集基本单元中通过信号传送语法元素的所述第一集合和第二集合,使得第二参数集能够被所述解码器读取以在不解码所述可伸缩数据流的可伸缩层的情况下确定所述编码属性;
所述第二可伸缩层标识符值位于所述第二参数集基本单元中;以及
基于包含所述第二可伸缩层标识符值的所述第二基本单元和所述第二参数集基本单元,从所接收的第一可伸缩数据流移除所述第二基本单元和所述第二参数集基本单元。
13.根据权利要求12所述的装置,其中语法元素的所述第一集合和第二集合被包含在存在于访问单元、编码视频序列或比特流中的最高层的语法结构中。
14.根据权利要求12所述的装置,其中所述级别包括级别指示符。
15.一种计算机程序产品,所述计算机程序产品包含至少一个非短暂性的计算机可读存储介质,所述至少一个非短暂性的计算机可读存储介质具有存储在其中的计算机可执行程序代码部分,所述计算机可执行程序代码部分包含程序代码指令,所述程序代码指令用于:
接收包括具有不同编码属性的可伸缩层的第一可伸缩数据流,其中
所述两个或更多可伸缩层中的每个可伸缩层与可伸缩层标识符相关联,以及以包括至少档次的语法元素的第一集合和包括级别或假想参考解码器(HRD)参数中的至少一个的语法元素的第二集合为特征;
第一可伸缩层标识符值位于包含来自两个或更多可伸缩层的第一可伸缩层的数据的第一基本单元中;
在针对所述两个或更多可伸缩层中的所述第一可伸缩层的第一参数集基本单元中通过信号传送语法元素的所述第一集合和第二集合,使得第一参数集能够被解码器读取以在不解码所述可伸缩数据流的可伸缩层的情况下确定语法元素的所述第一集合和第二集合的值;
所述第一可伸缩层标识符值位于第一参数集基本单元中;
第二可伸缩层标识符值位于包含来自两个或更多可伸缩层的第二可伸缩层的数据的第二基本单元中;
在针对所述两个或更多可伸缩层的所述第二可伸缩层的第二参数集基本单元中通过信号传送语法元素的所述第一集合和第二集合,使得第二参数集能够被所述解码器读取以在不解码所述可伸缩数据流的可伸缩层的情况下确定所述编码属性;
所述第二可伸缩层标识符值位于所述第二参数集基本单元中;以及
基于包含所述第二可伸缩层标识符值的所述第二基本单元和所述第二参数集基本单元,从所接收的第一可伸缩数据流移除所述第二基本单元和所述第二参数集基本单元。
16.一种装置,包括:
用于接收包括具有不同编码属性的可伸缩层的第一可伸缩数据流的构件,其中
所述两个或更多可伸缩层中的每个可伸缩层与可伸缩层标识符相关联,以及以包括至少档次的语法元素的第一集合和包括级别或假想参考解码器(HRD)参数中的至少一个的语法元素的第二集合为特征;
第一可伸缩层标识符值位于包含来自两个或更多可伸缩层的第一可伸缩层的数据的第一基本单元中;
在针对所述两个或更多可伸缩层中的所述第一可伸缩层的第一参数集基本单元中通过信号传送语法元素的所述第一集合和第二集合,使得第一参数集能够被解码器读取以在不解码所述可伸缩数据流的可伸缩层的情况下确定语法元素的所述第一集合和第二集合的值;
所述第一可伸缩层标识符值位于第一参数集基本单元中;
第二可伸缩层标识符值位于包含来自两个或更多可伸缩层的第二可伸缩层的数据的第二基本单元中;
在针对所述两个或更多可伸缩层的所述第二可伸缩层的第二参数集基本单元中通过信号传送语法元素的所述第一集合和第二集合,使得第二参数集能够被所述解码器读取以在不解码所述可伸缩数据流的可伸缩层的情况下确定所述编码属性;
所述第二可伸缩层标识符值位于所述第二参数集基本单元中;以及
用于基于包含所述第二可伸缩层标识符值的所述第二基本单元和所述第二参数集基本单元,从所接收的第一可伸缩数据流移除所述第二基本单元和所述第二参数集基本单元的构件。
17.一种方法,包括:
接收包含具有不同编码属性的可伸缩层的第一可伸缩数据流,其中
所述两个或更多可伸缩层中的每个可伸缩层与可伸缩层标识符相关联,以及以编码属性为特征;
第一可伸缩层标识符值位于包含来自两个或更多可伸缩层的第一可伸缩层的数据的第一基本单元中;
在第一参数集基本单元中通过信号传送所述两个或更多可伸缩层中的第一可伸缩层与所述编码属性,使得所述编码属性能够被解码器读取以在不解码所述可伸缩数据流的可伸缩层的情况下确定所述编码属性;
所述第一可伸缩层标识符值位于所述第一参数集基本单元中;
第二可伸缩层标识符值位于包含来自两个或更多可伸缩层的第二可伸缩层的数据的第二基本单元中;
在针对所述两个或更多可伸缩层的第二可伸缩层的第二参数集基本单元中通过信号传送语法元素的第一集合和第二集合,使得第一参数集能够被解码器读取以在不解码所述可伸缩数据流的可伸缩层的情况下确定语法元素的所述第一集合和第二集合的值;
所述第二可伸缩层标识符值位于所述第二参数集基本单元中;
接收指示将被解码的可伸缩层的可伸缩层标识符值的集合;以及
使用处理器,基于包含没有位于所述可伸缩层标识符值的集合之中的所述第二可伸缩层标识符值的所述第二基本单元和所述第二参数集基本单元,从所接收的第一可伸缩数据流移除所述第二基本单元和所述第二参数集基本单元。
18.根据权利要求17所述的方法,其中语法元素的所述第一集合包括至少档次,以及语法元素的所述第二集合包括至少级别或假想参考解码器(HRD)参数中的至少一个。
19.根据权利要求18所述的方法,其中所述级别包括级别指示符。
20.根据权利要求17所述的方法,其中语法元素的所述第一集合和第二集合被包含在存在于访问单元、编码视频序列或比特流中的最高层的语法结构中。
21.一种装置,所述装置包含至少一个处理器和包含计算机程序代码的至少一个存储器,所述存储器和所述计算机程序代码被配置为使用所述至少一个处理器使得所述装置:
接收包含具有不同编码属性的可伸缩层的第一可伸缩数据流,其中
所述两个或更多可伸缩层中的每个可伸缩层与可伸缩层标识符相关联,以及以编码属性为特征;
第一可伸缩层标识符值位于包含来自两个或更多可伸缩层的第一可伸缩层的数据的第一基本单元中;
在第一参数集基本单元中通过信号传送所述两个或更多可伸缩层中的第一可伸缩层与所述编码属性,使得所述编码属性能够被解码器读取以在不解码所述可伸缩数据流的可伸缩层的情况下确定所述编码属性;
所述第一可伸缩层标识符值位于所述第一参数集基本单元中;
第二可伸缩层标识符值位于包含来自两个或更多可伸缩层的第二可伸缩层的数据的第二基本单元中;
在针对所述两个或更多可伸缩层的第二可伸缩层的第二参数集基本单元中通过信号传送语法元素的第一集合和第二集合,使得第一参数集能够被解码器读取以在不解码所述可伸缩数据流的可伸缩层的情况下确定语法元素的所述第一集合和第二集合的值;
所述第二可伸缩层标识符值位于所述第二参数集基本单元中;
接收指示将被解码的可伸缩层的可伸缩层标识符值的集合;以及
基于包含没有位于所述可伸缩层标识符值的集合之中的所述第二可伸缩层标识符值的所述第二基本单元和所述第二参数集基本单元,从所接收的第一可伸缩数据流移除所述第二基本单元和所述第二参数集基本单元。
22.根据权利要求21所述的装置,其中语法元素的所述第一集合包括至少档次以及语法元素的所述第二集合包括至少级别或假想参考解码器(HRD)参数中的至少一个。
23.根据权利要求22所述的装置,其中所述级别包括级别指示符。
24.根据权利要求21所述的装置,其中语法元素的所述第一集合和第二集合被包含在存在于访问单元、编码视频序列或比特流中的最高层的语法结构中。
25.一种计算机程序产品,所述计算机程序产品包含至少一个非短暂性的计算机可读存储介质,所述至少一个非短暂性的计算机可读存储介质具有存储在其中的计算机可执行程序代码部分,所述计算机可执行程序代码部分包含程序代码指令,所述程序代码指令用于:
接收包含具有不同编码属性的可伸缩层的第一可伸缩数据流,其中
所述两个或更多可伸缩层中的每个可伸缩层与可伸缩层标识符相关联,以及以编码属性为特征;
第一可伸缩层标识符值位于包含来自两个或更多可伸缩层的第一可伸缩层的数据的第一基本单元中;
在第一参数集基本单元中通过信号传送所述两个或更多可伸缩层中的第一可伸缩层与所述编码属性,使得所述编码属性能够被解码器读取以在不解码所述可伸缩数据流的可伸缩层的情况下确定所述编码属性;
所述第一可伸缩层标识符值位于所述第一参数集基本单元中;
第二可伸缩层标识符值位于包含来自两个或更多可伸缩层的第二可伸缩层的数据的第二基本单元中;
在针对所述两个或更多可伸缩层的第二可伸缩层的第二参数集基本单元中通过信号传送语法元素的第一集合和第二集合,使得第一参数集能够被解码器读取以在不解码所述可伸缩数据流的可伸缩层的情况下确定语法元素的所述第一集合和第二集合的值;
所述第二可伸缩层标识符值位于所述第二参数集基本单元中;
接收指示将被解码的可伸缩层的可伸缩层标识符值的集合;以及
基于包含没有位于所述可伸缩层标识符值的集合之中的所述第二可伸缩层标识符值的所述第二基本单元和所述第二参数集基本单元,从所接收的第一可伸缩数据流移除所述第二基本单元和所述第二参数集基本单元。
26.一种装置,包括:
用于接收包含具有不同编码属性的可伸缩层的第一可伸缩数据流的构件,其中
所述两个或更多可伸缩层中的每个可伸缩层与可伸缩层标识符相关联,以及以编码属性为特征;
第一可伸缩层标识符值位于包含来自两个或更多可伸缩层的第一可伸缩层的数据的第一基本单元中;
在第一参数集基本单元中通过信号传送所述两个或更多可伸缩层中的第一可伸缩层与所述编码属性,使得所述编码属性能够被解码器读取以在不解码所述可伸缩数据流的可伸缩层的情况下确定所述编码属性;
所述第一可伸缩层标识符值位于所述第一参数集基本单元中;
第二可伸缩层标识符值位于包含来自两个或更多可伸缩层的第二可伸缩层的数据的第二基本单元中;
在针对所述两个或更多可伸缩层的第二可伸缩层的第二参数集基本单元中通过信号传送语法元素的第一集合和第二集合,使得第一参数集能够被解码器读取以在不解码所述可伸缩数据流的可伸缩层的情况下确定语法元素的所述第一集合和第二集合的值;
所述第二可伸缩层标识符值位于所述第二参数集基本单元中;
用于接收指示将被解码的可伸缩层的可伸缩层标识符值的集合的构件;以及
用于基于包含没有位于所述可伸缩层标识符值的集合之中的所述第二可伸缩层标识符值的所述第二基本单元和所述第二参数集基本单元,从所接收的第一可伸缩数据流移除所述第二基本单元和所述第二参数集基本单元的构件。
CN201380044882.5A 2012-07-02 2013-06-17 用于视频编码的方法和装置 Active CN104604236B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201261667085P 2012-07-02 2012-07-02
US61/667,085 2012-07-02
PCT/FI2013/050661 WO2014006266A1 (en) 2012-07-02 2013-06-17 Method and apparatus for video coding

Publications (2)

Publication Number Publication Date
CN104604236A true CN104604236A (zh) 2015-05-06
CN104604236B CN104604236B (zh) 2017-12-15

Family

ID=49778129

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380044882.5A Active CN104604236B (zh) 2012-07-02 2013-06-17 用于视频编码的方法和装置

Country Status (7)

Country Link
US (1) US9270989B2 (zh)
EP (1) EP2868092A4 (zh)
KR (1) KR101678321B1 (zh)
CN (1) CN104604236B (zh)
AU (2) AU2013285333A1 (zh)
RU (1) RU2612577C2 (zh)
WO (1) WO2014006266A1 (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108605152A (zh) * 2016-02-09 2018-09-28 索尼公司 发送装置、发送方法、接收装置和接收方法
CN108702518A (zh) * 2016-02-17 2018-10-23 高通股份有限公司 在分层高效视频译码文件格式中的位流结尾网络抽象层单元的处理和对高效视频译码和分层高效视频译码频块播放轨的改善
CN108702534A (zh) * 2016-02-22 2018-10-23 索尼公司 文件生成装置、文件生成方法以及再现装置和再现方法
CN108769738A (zh) * 2018-06-15 2018-11-06 广州酷狗计算机科技有限公司 视频处理方法、装置、计算机设备和存储介质
CN112236995A (zh) * 2018-02-02 2021-01-15 苹果公司 多假设运动补偿技术
CN112292859A (zh) * 2018-09-13 2021-01-29 腾讯美国有限责任公司 在解码中使用带外流结尾nal单元的方法和装置
US11159805B2 (en) 2016-05-10 2021-10-26 Qualcomm Incorporated Methods and systems for generating regional nesting messages for video pictures
WO2021233424A1 (en) * 2020-05-22 2021-11-25 Beijing Bytedance Network Technology Co., Ltd. Handling of coded video in sub-bitstream extraction process
WO2021244419A1 (en) * 2020-05-31 2021-12-09 Beijing Bytedance Network Technology Co., Ltd. Constraint signaling using general constraint information syntax element
CN114097209A (zh) * 2019-06-06 2022-02-25 高通股份有限公司 视频译码中的存取单元中的适应性参数集
CN114175626A (zh) * 2019-11-06 2022-03-11 Oppo广东移动通信有限公司 信息处理方法、编码装置、解码装置、系统及存储介质
US11856235B2 (en) 2020-03-11 2023-12-26 Beijing Bytedance Network Technology Co., Ltd. Adaptive loop filtering

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3879832A1 (en) * 2011-05-31 2021-09-15 JVCKENWOOD Corporation Moving image encoding device, moving image encoding method and moving image encoding program, as well as moving image decoding device, moving image decoding method and moving image decoding program
JP6182718B2 (ja) 2012-06-29 2017-08-23 ヴェロス メディア インターナショナル リミテッドVelos Media International Limited 復号装置および復号方法
US9554146B2 (en) * 2012-09-21 2017-01-24 Qualcomm Incorporated Indication and activation of parameter sets for video coding
US9241158B2 (en) * 2012-09-24 2016-01-19 Qualcomm Incorporated Hypothetical reference decoder parameters in video coding
US9992490B2 (en) * 2012-09-26 2018-06-05 Sony Corporation Video parameter set (VPS) syntax re-ordering for easy access of extension parameters
US9432664B2 (en) * 2012-09-28 2016-08-30 Qualcomm Incorporated Signaling layer identifiers for operation points in video coding
EP2887663B1 (en) * 2012-09-29 2017-02-22 Huawei Technologies Co., Ltd. Method, apparatus and system for encoding and decoding video
US9521393B2 (en) * 2013-01-07 2016-12-13 Qualcomm Incorporated Non-nested SEI messages in video coding
KR102290421B1 (ko) * 2013-04-05 2021-08-17 삼성전자주식회사 랜덤 엑세스를 위한 멀티 레이어 비디오 부호화 방법 및 그 장치, 랜덤 엑세스를 위한 멀티 레이어 비디오 복호화 방법 및 그 장치
US9578328B2 (en) 2013-07-15 2017-02-21 Qualcomm Incorporated Cross-layer parallel processing and offset delay parameters for video coding
CN110225358B (zh) 2013-07-15 2021-10-12 Ge视频压缩有限责任公司 装置、方法、编码器和计算机程序
US9774879B2 (en) 2013-08-16 2017-09-26 Sony Corporation Intra-block copying enhancements for HEVC in-range-extension (RExt)
CN109905703B (zh) * 2013-10-11 2023-11-17 Vid拓展公司 Hevc扩展的高级句法
US10187662B2 (en) * 2013-10-13 2019-01-22 Sharp Kabushiki Kaisha Signaling parameters in video parameter set extension and decoder picture buffer operation
US10284858B2 (en) * 2013-10-15 2019-05-07 Qualcomm Incorporated Support of multi-mode extraction for multi-layer video codecs
WO2015060295A1 (ja) * 2013-10-22 2015-04-30 シャープ株式会社 画像復号装置、及び画像復号方法
EP3107299A4 (en) * 2014-03-14 2017-04-26 Huawei Technologies Co., Ltd. Image decoding device
US10645404B2 (en) * 2014-03-24 2020-05-05 Qualcomm Incorporated Generic use of HEVC SEI messages for multi-layer codecs
US9402083B2 (en) * 2014-04-24 2016-07-26 Vidyo, Inc. Signaling conformance points using profile space
US10063867B2 (en) 2014-06-18 2018-08-28 Qualcomm Incorporated Signaling HRD parameters for bitstream partitions
US9918091B2 (en) 2014-06-20 2018-03-13 Qualcomm Incorporated Systems and methods for assigning a minimum value to a syntax structure in a parameter set
US9716900B2 (en) * 2014-06-20 2017-07-25 Qualcomm Incorporated Extensible design of nesting supplemental enhancement information (SEI) messages
US10284867B2 (en) 2014-12-18 2019-05-07 Nokia Technologies Oy Apparatus, a method and a computer program for video coding and decoding
US9854261B2 (en) 2015-01-06 2017-12-26 Microsoft Technology Licensing, Llc. Detecting markers in an encoded video signal
US20170094288A1 (en) * 2015-09-25 2017-03-30 Nokia Technologies Oy Apparatus, a method and a computer program for video coding and decoding
US10623755B2 (en) * 2016-05-23 2020-04-14 Qualcomm Incorporated End of sequence and end of bitstream NAL units in separate file tracks
US10834153B2 (en) * 2016-08-24 2020-11-10 Qualcomm Incorporated System level signaling of SEI tracks for media data streaming
US10271069B2 (en) * 2016-08-31 2019-04-23 Microsoft Technology Licensing, Llc Selective use of start code emulation prevention
US10506230B2 (en) * 2017-01-04 2019-12-10 Qualcomm Incorporated Modified adaptive loop filter temporal prediction for temporal scalability support
US11924440B2 (en) 2018-02-05 2024-03-05 Apple Inc. Techniques of multi-hypothesis motion compensation
US11622358B2 (en) 2018-03-29 2023-04-04 Telefonaktiebolaget Lm Ericsson (Publ) Network node and method in a wireless communications network
US10924751B2 (en) * 2019-03-18 2021-02-16 Tencent America LLC Data unit and parameter set design for point cloud coding
US11683487B2 (en) 2019-03-26 2023-06-20 Qualcomm Incorporated Block-based adaptive loop filter (ALF) with adaptive parameter set (APS) in video coding
EP3981162A4 (en) * 2019-06-27 2022-07-06 Huawei Technologies Co., Ltd. HYPOTHETIC REFERENCE DECODER FOR V-PCC
WO2021006998A1 (en) 2019-07-05 2021-01-14 Futurewei Technologies, Inc. Video coding bitstream extraction with identifier signaling
WO2021061392A1 (en) * 2019-09-24 2021-04-01 Futurewei Technologies, Inc. Error mitigation for sublayers in video coding
AU2020352900A1 (en) * 2019-09-24 2022-04-14 Huawei Technologies Co., Ltd. Scalable Nesting SEI Messages For OLSs
KR20220115958A (ko) 2019-12-26 2022-08-19 바이트댄스 아이엔씨 코딩된 비트스트림들에서의 비디오 계층들의 시그널링에 대한 제약들
CN114868158A (zh) 2019-12-26 2022-08-05 字节跳动有限公司 层级视频中的解码图片缓冲区参数的信令通知
EP4066387A4 (en) 2019-12-27 2023-02-15 ByteDance Inc. SUBPICTURE SIGNALING IN PARAMETER SETS
JP7460774B2 (ja) 2020-01-09 2024-04-02 バイトダンス インコーポレイテッド ビデオストリームにおけるフィラーデータユニットの処理
EP4111693A4 (en) * 2020-04-02 2023-10-25 Beijing Bytedance Network Technology Co., Ltd. COEFFICIENT ENCODING IN TRANSFORMATION SKIP MODE
WO2021204251A1 (en) 2020-04-10 2021-10-14 Beijing Bytedance Network Technology Co., Ltd. Use of header syntax elements and adaptation parameter set
CN115868159A (zh) * 2020-04-17 2023-03-28 抖音视界有限公司 自适应参数集单元的存在
CN115552802A (zh) 2020-04-26 2022-12-30 字节跳动有限公司 加权预测信息的条件信令通知
CN115668929A (zh) 2020-05-22 2023-01-31 字节跳动有限公司 视频子比特流提取过程中的sei消息处理
PE20230675A1 (es) 2020-05-22 2023-04-21 Ge Video Compression Llc Codificador de video, decodificador de video, metodos para codificar y decodificar y flujo de datos de video para realizar conceptos avanzados de codificacion de video
WO2021252531A1 (en) * 2020-06-09 2021-12-16 Bytedance Inc. Handling different nal types in video sub-bitstream extraction
US11750843B2 (en) * 2021-06-28 2023-09-05 Tencent America LLC Multiview-related supplementary enhancement information messages

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1973545A (zh) * 2004-05-12 2007-05-30 诺基亚公司 用于可缩放媒体编码和传输的多个互操作性点
US20070230564A1 (en) * 2006-03-29 2007-10-04 Qualcomm Incorporated Video processing with scalability
US20080007438A1 (en) * 2006-07-10 2008-01-10 Sharp Laboratories Of America, Inc. Methods and Systems for Signaling Multi-Layer Bitstream Data

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1869891A4 (en) * 2005-04-13 2014-06-11 CODING, STORAGE AND SIGNALING OF SCALABILITY INFORMATION
RU2406254C2 (ru) * 2006-03-29 2010-12-10 Квэлкомм Инкорпорейтед Видеообработка с масштабируемостью
EP2057847A4 (en) * 2006-08-31 2011-12-21 Samsung Electronics Co Ltd VIDEO CODING ARRANGEMENT AND METHOD AND VIDEO ENCODING ARRANGEMENT AND METHOD
US8665942B2 (en) * 2007-01-23 2014-03-04 Sharp Laboratories Of America, Inc. Methods and systems for inter-layer image prediction signaling
ES2388799T3 (es) * 2007-04-18 2012-10-18 Thomson Licensing Sistemas de codificación
KR101365597B1 (ko) * 2007-10-24 2014-02-20 삼성전자주식회사 영상 부호화장치 및 방법과 그 영상 복호화장치 및 방법
WO2009130561A1 (en) * 2008-04-21 2009-10-29 Nokia Corporation Method and device for video coding and decoding
RU2011135321A (ru) * 2009-01-28 2013-03-10 Нокиа Корпорейшн Способ и устройство для кодирования и декодирования видеосигналов
US9451256B2 (en) 2012-07-20 2016-09-20 Qualcomm Incorporated Reusing parameter sets for video coding
US9380289B2 (en) 2012-07-20 2016-06-28 Qualcomm Incorporated Parameter sets in video coding
ES2708969T3 (es) * 2013-04-07 2019-04-12 Dolby Int Ab Cambio de señalización en conjuntos de capas de salida
US20140307803A1 (en) 2013-04-08 2014-10-16 Qualcomm Incorporated Non-entropy encoded layer dependency information

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1973545A (zh) * 2004-05-12 2007-05-30 诺基亚公司 用于可缩放媒体编码和传输的多个互操作性点
US20070230564A1 (en) * 2006-03-29 2007-10-04 Qualcomm Incorporated Video processing with scalability
US20080007438A1 (en) * 2006-07-10 2008-01-10 Sharp Laboratories Of America, Inc. Methods and Systems for Signaling Multi-Layer Bitstream Data

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JILL BOYCE等: "High level syntax hooks for future extensions", 《JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC) OF ITU-T SG16 WP3 AND ISO/IEC JTC1/SC29/WG11 8TH MEETING: SAN JOSÉ, CA, USA》 *
RICKARD SJöBERG等: "High-Level Syntax for Bitstream Extraction", 《JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC) OF ITU-T SG16 WP3 AND ISO/IEC JTC1/SC29/WG11 7TH MEETING: GENEVA, CH》 *

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108605152B (zh) * 2016-02-09 2021-07-16 索尼公司 发送装置、发送方法、接收装置和接收方法
CN108605152A (zh) * 2016-02-09 2018-09-28 索尼公司 发送装置、发送方法、接收装置和接收方法
CN108702518A (zh) * 2016-02-17 2018-10-23 高通股份有限公司 在分层高效视频译码文件格式中的位流结尾网络抽象层单元的处理和对高效视频译码和分层高效视频译码频块播放轨的改善
CN108702518B (zh) * 2016-02-17 2020-12-18 高通股份有限公司 用于处理视频数据的方法、设备及计算机可读媒体
CN108702534A (zh) * 2016-02-22 2018-10-23 索尼公司 文件生成装置、文件生成方法以及再现装置和再现方法
CN108702534B (zh) * 2016-02-22 2021-09-14 索尼公司 文件生成装置、文件生成方法以及再现装置和再现方法
US11159805B2 (en) 2016-05-10 2021-10-26 Qualcomm Incorporated Methods and systems for generating regional nesting messages for video pictures
CN112236995A (zh) * 2018-02-02 2021-01-15 苹果公司 多假设运动补偿技术
CN108769738B (zh) * 2018-06-15 2021-01-08 广州酷狗计算机科技有限公司 视频处理方法、装置、计算机设备和存储介质
CN108769738A (zh) * 2018-06-15 2018-11-06 广州酷狗计算机科技有限公司 视频处理方法、装置、计算机设备和存储介质
CN112292859B (zh) * 2018-09-13 2023-09-22 腾讯美国有限责任公司 一种用于解码至少一个视频流的方法和装置
CN112292859A (zh) * 2018-09-13 2021-01-29 腾讯美国有限责任公司 在解码中使用带外流结尾nal单元的方法和装置
CN114097209A (zh) * 2019-06-06 2022-02-25 高通股份有限公司 视频译码中的存取单元中的适应性参数集
CN114097209B (zh) * 2019-06-06 2023-09-19 高通股份有限公司 视频译码中的存取单元中的适应性参数集
CN114175626B (zh) * 2019-11-06 2024-04-02 Oppo广东移动通信有限公司 信息处理方法、编码装置、解码装置、系统及存储介质
CN114175626A (zh) * 2019-11-06 2022-03-11 Oppo广东移动通信有限公司 信息处理方法、编码装置、解码装置、系统及存储介质
US11856235B2 (en) 2020-03-11 2023-12-26 Beijing Bytedance Network Technology Co., Ltd. Adaptive loop filtering
US11930219B2 (en) 2020-03-11 2024-03-12 Beijing Bytedance Network Technology Co., Ltd. Adaptation parameter set signaling based on color format
US11968403B2 (en) 2020-03-11 2024-04-23 Beijing Bytedance Netwrok Technology Co., Ltd. Transform skip based residual coding
US11778204B2 (en) 2020-05-22 2023-10-03 Beijing Bytedance Network Technology Co., Ltd. Handling of coded video in sub-bitstream extraction process
WO2021233424A1 (en) * 2020-05-22 2021-11-25 Beijing Bytedance Network Technology Co., Ltd. Handling of coded video in sub-bitstream extraction process
US11968375B2 (en) 2020-05-22 2024-04-23 Beijing Bytedance Network Technology Co., Ltd. Scaling window in subpicture sub-bitstream extraction process
WO2021244419A1 (en) * 2020-05-31 2021-12-09 Beijing Bytedance Network Technology Co., Ltd. Constraint signaling using general constraint information syntax element

Also Published As

Publication number Publication date
CN104604236B (zh) 2017-12-15
AU2017204114A1 (en) 2017-07-06
US9270989B2 (en) 2016-02-23
AU2013285333A1 (en) 2015-02-05
RU2015101198A (ru) 2016-08-20
US20140003489A1 (en) 2014-01-02
AU2017204114B2 (en) 2019-01-31
KR20150024942A (ko) 2015-03-09
RU2612577C2 (ru) 2017-03-09
EP2868092A4 (en) 2016-05-04
EP2868092A1 (en) 2015-05-06
WO2014006266A1 (en) 2014-01-09
KR101678321B1 (ko) 2016-11-21

Similar Documents

Publication Publication Date Title
CN104604236B (zh) 用于视频编码的方法和装置
CN104205819B (zh) 用于视频编码的方法和装置
CN105556965B (zh) 用于视频编码和解码的方法、装置和计算机程序产品
CN104813669B (zh) 用于视频编码的方法和装置
CN105531999B (zh) 涉及用于信号传输运动信息的语法的视频编码方法及装置
KR101630564B1 (ko) 비디오 코딩을 위한 방법 및 장치
CN104813660B (zh) 用于视频编码和解码的装置和方法
CN104584549B (zh) 用于视频编码的方法和装置
CN105981387B (zh) 用于处理视频的方法、装置和计算机可读存储介质
CN104521238B (zh) 用于3d视频编码的装置和方法
CN104380749A (zh) 用于视频编码的方法和装置
US10681378B2 (en) Method for encoding and decoding video including plurality of layers
CN104247428B (zh) 解码装置和解码方法以及编码装置和编码方法
CN106664424A (zh) 参数集编码
CN104604223A (zh) 用于视频编码和解码的装置、方法和计算机程序
CN108293136A (zh) 用于编码360度全景视频的方法、装置和计算机程序产品
CN105027567A (zh) 用于视频编码和解码的方法和装置
CN105027569A (zh) 用于视频编码和解码的装置、方法和计算机程序
KR20170020793A (ko) 비디오 코딩에서 0 번째 출력 계층 세트를 위한 프로파일, 티어, 레벨
CN105519118A (zh) 用于视频编码和解码的装置、方法和计算机程序
CN105325003A (zh) 用于视频编码和解码的装置、方法和计算机程序
CN106105220A (zh) 用于视频编码和解码的方法和装置
CN104396244A (zh) 用于视频编码和解码的装置、方法和计算机程序
CN107105295A (zh) 用于高效视频译码(hevc)和扩展的视频参数集
CN105580373A (zh) 用于视频编码和解码的装置、方法和计算机程序

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20160106

Address after: Espoo, Finland

Applicant after: Technology Co., Ltd. of Nokia

Address before: Espoo, Finland

Applicant before: Nokia Oyj

GR01 Patent grant
GR01 Patent grant