用于约束参数集的表示格式参数的系统和方法与流程

文档序号:12143639阅读:414来源:国知局
用于约束参数集的表示格式参数的系统和方法与流程

本发明大体上涉及视频译码,且更具体来说,涉及用于约束参数集的表示格式参数的技术和系统。



背景技术:

许多装置和系统允许处理和输出视频数据以用于消费。数字视频数据包含大量数据以满足消费者和视频供应商的需求。举例来说,视频数据的消费者希望视频具有最佳的质量以及高保真度、分辨率、帧速率以及类似者。因此,需要满足这些需求的大量视频数据给处理和存储视频数据的通信网络和装置造成了负担。

各种视频译码技术可用以压缩视频数据。根据一或多个视频译码标准执行视频译码。举例来说,视频译码标准包含高效视频译码(HEVC)、高级视频译码(AVC)、移动图片专家组(MPEG)译码或类似者。视频译码通常使用预测方法(例如,帧间预测、帧内预测、或类似物),这些预测方法利用存在于视频图像或序列中的冗余。视频译码技术的重要目标是将视频数据压缩成使用较低位率的形式,同时避免或最小化对视频质量的降级。随着不断演进的视频服务变得可供使用,需要具有更佳译码效率的编码技术。



技术实现要素:

在一些实施例中,描述用于选择性地执行位流符合性检查的技术和系统。在一些实例中,可从位流提取一或多个子位流。举例来说,可从位流移除一或多个层或子层以获得子位流。因此,子位流与位流相比可具有较少层或子层。可执行位流符合性检查以确定位流或子位流是否符合特定视频译码标准。如本文中所描述,位流符合性检查可包含使用假想参考解码器参数执行规范性测试。

当从位流移除层或子层以提取子位流时,可存在描述不再存在于位流中且因此不包含任何数据的经移除层或子层的特征和参数的信息(例如,在一或多个参数集中)。在本文中所揭示的一些实施例中,可基于子位流的至少一个层是否包含视频数据而对子位流选择性地执行位流符合性检查。举例来说,可仅对在子位流的一个或所有层或子层中包含视频数据的子位流执行位流符合性检查。

根据选择性地执行位流符合性检查的至少一个实例,提供一种对视频数据进行编码的方法,其包含产生包括多个层的经编码视频位流。所述经编码视频位流包含定义所述经编码视频位流的参数的参数集。所述方法进一步包含确定所述参数集的包含描述所述经编码视频位流的第一子位流的信息和描述所述经编码视频位流的第二子位流的信息的一或多个参数,所述第一子位流包含具有视频数据的一或多个层,且所述第二子位流包含不具有视频数据的一或多个层。所述方法进一步包含基于所述第一子位流或所述第二子位流的至少一个层是否包含视频数据,对所述第一子位流或所述第二子位流执行位流符合性检查。

在另一实例中,提供一种设备,其包含经配置以存储视频数据的存储器,以及处理器。所述处理器经配置以且可从从所述视频数据产生包括多个层的经编码视频位流。所述经编码视频位流包含定义所述经编码视频位流的参数的参数集。所述处理器经进一步配置以且可确定所述参数集的包含描述所述经编码视频位流的第一子位流的信息和描述所述经编码视频位流的第二子位流的信息的一或多个参数,所述第一子位流包含具有视频数据的一或多个层,且所述第二子位流包含不具有视频数据的一或多个层。所述处理器经进一步配置以且可基于所述第一子位流或所述第二子位流的至少一个层是否包含视频数据而对所述第一子位流或所述第二子位流执行位流符合性检查。

在另一实例中,提供一种其上存储有在由处理器执行时执行一方法的计算机可读媒体,所述方法包含:产生包括多个层的经编码视频位流,所述经编码视频位流包含定义所述经编码视频位流的参数的参数集;确定所述参数集的包含描述所述经编码视频位流的第一子位流的信息和描述所述经编码视频位流的第二子位流的信息的一或多个参数,所述第一子位流包含具有视频数据的一或多个层,且所述第二子位流包含不具有视频数据的一或多个层;和基于所述第一子位流或所述第二子位流的至少一个层是否包含视频数据,对所述第一子位流或所述第二子位流执行位流符合性检查。

在另一实例中,提供一种设备,其包含:用于产生包括多个层的经编码视频位流的装置。所述经编码视频位流包含定义所述经编码视频位流的参数的参数集。所述设备进一步包含用于确定所述参数集的包含描述所述经编码视频位流的第一子位流的信息和描述所述经编码视频位流的第二子位流的信息的一或多个参数的装置,所述第一子位流包含具有视频数据的一或多个层,且所述第二子位流包含不具有视频数据的一或多个层。所述设备进一步包含用于基于所述第一子位流或所述第二子位流的至少一个层是否包含视频数据而对所述第一子位流或所述第二子位流执行位流符合性检查的装置。

上文所描述的用于选择性地执行位流符合性检查的方法、设备和计算机可读媒体可进一步包含基于所述第一子位流的所述一或多个层具有视频数据,对所述第一子位流执行所述位流符合性检查,其中基于所述第二子位流的所述一或多个层不具有视频数据,不对所述第二子位流执行位流符合性检查。在一些实施例中,当所述第一子位流的所述一或多个层全部具有视频数据时,对所述第一子位流执行所述位流符合性检查。在一些实施例中,当所述第一子位流的所述一或多个层中的至少一个具有视频数据时,对所述第一子位流执行所述位流符合性检查。

在一些方面,所述位流符合性检查包含对所述第一子位流执行规范性测试,以确保所述第一子位流符合解码所述第一子位流所需的译码要求。在一些情况下,使用假想参考解码器参数执行所述规范性测试。

上文所描述的用于选择性地执行位流符合性检查的方法、设备和计算机可读媒体可进一步包含基于所述第一子位流中的所述视频数据的时间标识符的最高值是否等于或大于所述第一子位流的对应时间标识符的值,对所述第一子位流执行所述位流符合性检查。

在一些方面,所述第一子位流的所述一或多个层的所述视频数据存在于所述第一子位流中或从外部源而非用以产生所述经编码视频位流的编码器提供。

在一些方面,所述视频数据包含一或多个视频译码层网络抽象层单元。

在一些方面,通过从所述经编码视频位流移除至少一个层,从所述经编码视频位流产生所述第二子位流。

在一些方面,所述参数集包含视频参数集。在一些实施例中,所述参数集包含序列参数集。

在一些实施例中,描述用于将最小值分配给参数集中的语法结构的技术和系统。语法结构包含多个语法元素。在一些实例中,根据第一译码协议对视频数据进行编码的编码器可产生经编码视频位流。所述编码器可将所述经编码视频位流提供到接收装置中的解码器。可通过外部源而非使用所述第一译码协议的编码器将视频数据的基础层提供到所述解码器(或相同接收装置中的另一解码器)。举例来说,可根据不同于所述第一译码协议的第二译码协议对所述基础层进行编码。在此实例中,使用所述第二译码协议对视频数据进行编码的编码器可将所述基础层提供到所述接收装置。可提供一参数集,例如视频参数集,其具有根据第一译码协议经编码的视频位流。视频参数集可包含与经编码视频位流中的视频数据有关的信息。包含关于经编码视频位流的基础层的信息的语法结构可存在于视频参数集中,即使在基础层是从外部的情况下仍如此(不提供第一译码协议的基础层)。如本文中所描述,当确定基础层将由外部源而非用以产生经编码视频位流的编码器提供到接收装置时,可将最小值分配给语法结构中的语法元素。

根据将最小值分配给参数集中的语法结构的至少一个实例,提供一种对视频数据进行编码的方法,其包含通过编码器根据第一译码协议产生经编码视频位流。所述经编码视频位流包含一或多个增强层和定义所述经编码视频位流的参数的视频参数集。所述方法进一步包含确定基础层将由外部源而非所述编码器提供到接收装置。所述方法进一步包含当确定所述基础层将由外部源提供到接收装置时,将最小值分配给所述视频参数集中的语法结构。所述语法结构定义基础层的简档、层次和层级参数。

在另一实例中,提供一种编码器,其包含经配置以存储视频数据的存储器以及处理器。所述处理器经配置以且可根据第一译码协议从视频数据产生经编码视频位流。所述经编码视频位流包含一或多个增强层和定义所述经编码视频位流的参数的视频参数集。所述处理器经进一步配置以且可确定基础层将由外部源而非所述编码器提供到接收装置。所述处理器经进一步配置以且可以当确定所述基础层将由外部源提供到接收装置时,将最小值分配给所述视频参数集中的语法结构。所述语法结构定义基础层的简档、层次和层级参数。

在另一实例中,提供一种其上存储有在由处理器执行时执行一方法的编码器的计算机可读媒体,所述方法包含:根据第一译码协议产生经编码视频位流,所述经编码视频位流包含一或多个增强层和定义所述经编码视频位流的参数的视频参数集;确定基础层将由外部源而非所述编码器提供到接收装置;和当确定所述基础层将由外部源提供到接收装置时,将最小值分配给所述视频参数集中的语法结构,所述语法结构定义基础层的简档、层次和层级参数。

在另一实例中,提供一种编码器,其包含用于根据第一译码协议产生经编码视频位流的装置,所述经编码视频位流包含一或多个增强层和定义所述经编码视频位流的参数的视频参数集。所述编码器进一步包含用于确定基础层将由外部源而非所述编码器提供到接收装置的装置。所述编码器进一步包含用于当确定所述基础层将由外部源提供到接收装置时,将最小值分配给所述视频参数集中的语法结构的装置,所述语法结构定义基础层的简档、层次和层级参数。

在一些方面,最小值包含语法结构中的所有语法元素的所有位的值0。在一些方面,确定所述基础层将由外部源提供到接收装置包含确定旗标被设置为指示基础层是由外部源提供的值。

在一些方面,根据第二译码协议对外部源所提供的基础层进行编码,所述第二译码协议不同于所述第一译码协议。所述第一译码协议包含高效视频译码协议,且所述第二译码协议包含高级视频译码协议。

在一些方面,所述简档、层次和层级参数规定对译码工具、位流特性、解码装置解码基础层所需的缓冲器特性或其它参数的约束条件。

在一些实施例中,描述用于约束参数集的表示格式参数的技术和系统。在一些实例中,可在序列参数集中和/或在视频参数集中用信号发送描述视频数据特性(例如,分辨率参数、位深度、图片宽度、颜色格式或其它表示格式参数)的表示格式参数。举例来说,在视频参数集中用信号发送的表示格式参数可提供参数的最大值,而在序列参数集中用信号发送的表示格式参数可提供经更新参数值。如本文中所描述,可规定需要在所述序列参数集中用信号发送的所述表示格式参数值小于或等于在视频参数集中用信号发送的所述表示格式参数值的约束条件。在一些实施例中,所述约束条件适用于分配给经编码视频位流的基础层的序列参数集。举例来说,所述约束条件可限制编码器产生序列参数集中的一或多个表示格式参数的值小于或等于分配给视频参数集中的基础层的对应表示格式参数的值。

根据约束参数集的表示格式参数的至少一个实例,提供一种对视频数据进行编码的方法,其包含产生包括多个层的经编码视频位流。所述经编码视频位流包含一或多个序列参数集和视频参数集。所述方法进一步包含根据约束条件产生序列参数集的分配给经编码视频位流的基础层的一或多个表示格式参数。所述约束条件限制所述序列参数集中的所述一或多个表示格式参数的值小于或等于分配给所述视频参数集中的所述基础层的对应表示格式参数的值。

在另一实例中,提供一种设备,其包含经配置以存储视频数据的存储器以及处理器。所述处理器经配置以和可从所述视频数据产生包括多个层的经编码视频位流。所述经编码视频位流包含一或多个序列参数集和视频参数集。所述处理器经进一步配置以且可根据约束条件产生序列参数集的分配给所述经编码视频位流的基础层的一或多个表示格式参数。所述约束条件限制所述序列参数集中的所述一或多个表示格式参数的值小于或等于分配给所述视频参数集中的所述基础层的对应表示格式参数的值。

在另一实例中,提供一种其上存储有在由处理器执行时执行一方法的计算机可读媒体,所述方法包含:产生包括多个层的经编码视频位流,所述经编码视频位流包含一或多个序列参数集和视频参数集;和根据约束条件产生序列参数集的分配给所述经编码视频位流的基础层的一或多个表示格式参数,所述约束条件限制所述序列参数集中的所述一或多个表示格式参数的值小于或等于分配给所述视频参数集中的所述基础层的对应表示格式参数的值。

在另一实例中,提供一种设备,其包括用于产生包括多个层的经编码视频位流的装置,所述经编码视频位流包含一或多个序列参数集和视频参数集。所述设备进一步包含用于根据约束条件产生序列参数集的分配给所述经编码视频位流的基础层的一或多个表示格式参数的装置,所述约束条件限制所述序列参数集中的所述一或多个表示格式参数的值小于或等于分配给所述视频参数集中的所述基础层的对应表示格式参数的值。

在一些方面,所述一或多个表示格式参数包含分辨率、位深度、图片宽度或颜色格式中的一或多个。在一些方面,在所述视频参数集中用信号发送的所述表示格式参数用于与一或多个解码器的会话协商。在一些方面,在一或多个高效视频译码语法元素中用信号发送所述序列参数集中的所述一或多个表示格式参数。

上文所描述的用于约束参数集的表示格式参数的方法、设备和计算机可读媒体可进一步包含根据所述约束条件更新所述一或多个序列参数集。

本发明内容并不意欲标识所主张的标的物的关键或基本特征,也并非意图单独用于确定所主张的标的物的范围。应参考此专利的整个说明书的适当部分、任何或所有图式以及每一权利要求来理解标的物。

在参考以下说明书、权利要求书以及附图之后,前述内容连同其它特征和实施例将变得更显而易见。

附图说明

下文参考以下图式详细描述本发明的说明性实施例:

图1是说明根据一些实施例的编码装置和解码装置的实例的框图。

图2是说明根据一些实施例的层集合的实例的框图。

图3是说明根据一些实施例的不完整层集合的实例的框图。

图4是说明根据一些实施例的编码用于选择性地执行位流符合性检查的视频数据的过程的实施例的流程图。

图5是说明根据一些实施例的具有用于提供经编码视频数据的多个编码装置的环境的框图。

图6是说明根据一些实施例的编码用于将最小值分配给参数集中的语法结构的视频数据的过程的实施例的流程图。

图7是说明根据一些实施例的具有表示格式参数的视频参数集和序列参数集的实例的框图。

图8是说明根据一些实施例的编码用于约束参数集的表示格式参数的视频数据的过程的实施例的流程图。

图9是说明根据一些实施例的实例视频编码装置的框图。

图10是说明根据一些实施例的实例视频解码装置的框图。

具体实施方式

下文提供本发明的某些方面和实施例。如对于所属领域的技术人员来说将显而易见的是,这些方面和实施例中的一些可以独立地应用并且它们中的一些可以组合应用。在以下描述中,出于解释的目的,阐述具体细节以便提供对本发明的实施例的透彻理解。然而,将显而易见的是,可在无这些具体细节的情况下实践各种实施例。图式和描述并不意图为限定性的。

以下描述仅提供示范性实施例,且并不意图限制本发明的范围、适用性或配置。实际上,示范性实施例的以下描述将为所属领域的技术人员提供用于实施示范性实施例的启发性描述。应理解,在不脱离如在所附权利要求书中所阐述的本发明的精神和范围的情况下,可对元件的功能和布置进行各种改变。

在以下描述中给出具体细节以提供对实施例的透彻理解。然而,所属领域的技术人员应理解,所述实施例可以在没有这些具体细节的情况下实践。举例来说,电路、系统、网络、过程和其它组件可以框图形式展示为组件以免以不必要的细节混淆实施例。在其它情况下,在没有不必要的细节的情况下展示熟知的电路、过程、算法、结构以及技术以便避免混淆实施例。

此外,应注意,个别实施例可描述为经描绘为流程图、作业图、数据流图、结构图或框图的过程。尽管流程图可将操作描述为顺序过程,但许多操作可并行或同时执行。另外,可以重新布置操作的次序。过程在其操作完成时终止,但是可以具有不包含在图中的额外步骤。过程可以对应于方法、函数、程序、子例程、子程序等。当过程对应于函数时,过程的终止可对应于函数返回到调用函数或主函数。

术语“计算机可读媒体”包含(但不限于)便携式或非便携式存储装置、光学存储装置以及能够存储、包含或运载指令和/或数据的各种其它媒体。计算机可读媒体可包含非暂时性媒体,在非暂时性媒体中可以存储数据,并且非暂时性媒体并不包含以无线方式或经由有线连接传播的载波和/或暂时性电子信号。非暂时性媒体的实例可包含(但不限于)磁盘或磁带、光学存储媒体(例如光盘(CD)或数字通用光盘(DVD))、快闪存储器、存储器或存储器装置。计算机可读媒体可具有存储在其上的可表示过程、函数、子程序、程序、例程、子例程、模块、软件包、类别的代码和/或机器可执行指令,或指令、数据结构或程序语句的任何组合。代码段可以通过传递和/或接收信息、数据、自变量、参数或存储器内容而耦合到另一代码段或硬件电路。信息、自变量、参数、数据等可经由包含存储器共享、消息传递、令牌传递、网络传输或类似者的任何合适的装置传递、转发或传输。

此外,实施例可以由硬件、软件、固件、中间件、微码、硬件描述语言或其任何组合来实施。当以软件、固件、中间件或微码实施时,用以执行必要任务的程序代码或代码段(例如,计算机程序产品)可存储在计算机可读或机器可读媒体中。处理器可以执行必要任务。

本文中描述了使用视频编码器和解码器的视频译码的若干系统和方法。举例来说,一或多个系统和方法涉及不可用层、层集合和操作点的处理,以及对多层视频译码中的表示格式参数的限制。

随着越来越多的装置和系统为消费者提供消费数字视频数据的能力,对于高效视频译码技术的需要变得越来越重要。需要视频译码以减少处理存在于数字视频数据中的大量数据所必需的存储和传输需要。各种视频译码技术可用以在维持高视频质量的同时将视频数据压缩成使用较低位率的形式。

图1是说明包含编码装置104和解码装置112的系统100的实例的框图。编码装置104可为源装置的一部分,且解码装置112可为接收装置的一部分。源装置和/或接收装置可包含电子装置,例如移动或静止电话手持机(例如,智能电话、蜂窝式电话或类似者)、桌上型计算机、膝上型计算机或笔记本计算机、平板计算机、机顶盒、电视、相机、显示装置、数字媒体播放器、视频游戏控制台、视频流式传输装置或任何其它合适的电子装置。在一些实例中,源装置和接收装置可包含一或多个无线收发器以用于无线通信。本文中描述的译码技术适用于各种多媒体应用中的视频译码,所述多媒体应用包含流式视频传输(例如,经由互联网)、电视广播或传输、数字视频的编码以用于存储在数据存储媒体上、存储在数据存储媒体上的数字视频的解码,或其它应用。在一些实例中,系统100可支持单向或双向视频传输,以支持例如视频会议、视频流式传输、视频重放、视频广播、游戏和/或视频电话的应用。

编码装置104(或编码器)可用以使用视频译码标准或协议对视频数据进行编码以产生经编码视频位流。视频译码标准包含ITU-T H.261、ISO/IEC MPEG-1Visual、ITU-T H.262或ISO/IEC MPEG-2Visual、ITU-T H.263、ISO/IEC MPEG-4Visual和ITU-T H.264(也被称为ISO/IEC MPEG-4AVC),包含其可缩放视频译码(SVC)和多视图视频译码(MVC)扩展。ITU-T视频译码专家组(VCEG)和ISO/IEC动画专家组(MPEG)的视频译码联合协作小组(JCT-VC)已经完成更为新近的视频译码标准,高效视频译码(HEVC)。HEVC的各种扩展涉及多层视频译码并且也是由JCT-VC研发出来的,所述扩展包含HEVC的多视图扩展(被称作MV-HEVC)以及HEVC的可缩放扩展(被称作SHVC),或任何其它合适的译码协议。HEVC草案规范可从http://phenix.it-sudparis.eu/jct/doc_end_user/documents/17_Valencia/wg11/JCTVC-Q1003-v1.zip得到。MV-HEVC的工作草案可从http://phenix.it-sudparis.eu/jct2/doc_end_user/documents/8_Valencia/wg11/JCT3V-H1002v5.zip得到。SHVC的工作草案可从http://phenix.it-sudparis.eu/jct/doc_end_user/documents/17_Valencia/wg11/JCTVC-Q1008-v2.zip得到。

本文中描述的许多实施例使用HEVC标准或其扩展来描述实例。然而,本文中描述的技术和系统也可以适用于其它译码标准,例如AVC、MPEG、其扩展,或其它合适的译码标准。因此,虽然本文中描述的技术和系统可以参考特定视频译码标准描述,但是所属领域的一般技术人员将理解所述描述不应解释为仅适用于所述特定标准。

视频源102可将视频数据提供到编码装置104。视频源102可为源装置的一部分,或可为不同于源装置的装置的一部分。视频源102可包含视频捕获装置(例如,摄像机、相机电话、视频电话或类似者)、含有所存储的视频的视频存档、提供视频数据的视频服务器或内容提供商、从视频服务器或内容提供商接收视频的视频馈送接口、用于产生计算机图形视频数据的计算机图形系统、此类来源的组合,或任何其它合适的视频源。

来自视频源102的视频数据可包含一或多个输入图片或帧。图片或帧是静态图像,其为视频的一部分。编码装置104的编码器引擎106(或编码器)对视频数据进行编码以产生经编码视频位流。举例来说,HEVC位流可包含一序列被称作网络抽象层(NAL)单元的数据单元。在HEVC标准中存在两类NAL单元,包含视频译码层(VCL)NAL单元和非VCL NAL单元。VCL NAL单元包含经译码图片数据的一个切片或切片段(下文描述),且非VCL NAL单元包含与多个经译码图片有关的控制信息。经译码图片和对应于经译码图片的非VCL NAL单元(如果存在)被称作存取单元(AU)。

NAL单元可含有形成视频数据的经译码表示(例如视频中的图片的经译码表示)(经编码视频位流)的位序列。编码器引擎106通过将每一图片分割成多个切片来产生图片的经译码表示。切片不依赖于其它切片,以使得所述切片中的信息得到译码而无需依赖于来自相同图片内的其它切片的数据。切片包含一或多个切片段,其包含非依赖性切片段,并且如果存在的话,包含依赖于先前切片段的一或多个依赖性切片段。切片随后被分割成明度样本和色度样本的译码树块(CTB)。明度样本的CTB和色度样本的一或多个CTB连同所述样本的语法一起被称作译码树单元(CTU)。CTU是用于HEVC编码的基础处理单元。CTU可拆分成不同大小的多个译码单元(CU)。CU含有被称作译码块(CB)的明度和色度样本阵列。

明度和色度CB可进一步拆分成预测块(PB)。PB是将相同运动参数用于帧间预测的明度或色度分量的样本的块。明度PB和一或多个色度PB连同相关联的语法一起形成预测单元(PU)。在位流中针对每一PU用信号发送运动参数集,并且所述运动参数集用于亮度PB和一或多个色度PB的帧间预测。CB也可分割成一或多个变换块(TB)。TB表示色彩分量的样本的正方形块,对所述色彩分量的相同二维变换应用于对预测残余信号进行译码。变换单元(TU)表示明度和色度样本的TB以及对应的语法元素。

CU的大小对应于译码节点的大小,且形状为正方形。举例来说,CU的大小可为8×8个样本、16×16个样本、32×32个样本、64×64个样本,或高达对应的CTU的大小的任何其它适当大小。本文中使用短语“N×N”指代就垂直和水平尺寸来说的视频块的像素尺寸(例如,8像素×8像素)。块中的像素可布置成行和列。在一些实施例中,块可在水平方向上不具有与在垂直方向上相同数目的像素。举例来说,与CU相关联的语法数据可描述CU分割成一或多个PU。分割模式可在CU经帧内预测模式编码或是经帧间预测模式编码之间有所不同。PU可分割成非正方形形状。举例来说,与CU相关联的语法数据还可描述例如CU根据CTU分割成一或多个TU。TU可为正方形或非正方形形状。

根据HEVC标准,使用变换单元(TU)执行变换。TU对于不同CU可以变化。TU可以基于给定CU内的PU的大小而经大小设定。TU可与PU大小相同或小于PU。在一些实例中,对应于CU的残余样本可使用被称为残余四叉树(RQT)的四叉树结构细分成更小单元。RQT的叶节点可对应于TU。可以对与TU相关联的像素差值进行变换以产生变换系数。接着可通过编码器引擎106量化变换系数。

一旦视频数据的图片被分割成CU,则编码器引擎106使用预测模式预测每一PU。随后从原始视频数据中减去预测以获得残余(下文描述)。对于每一CU,可以在位流内部使用语法数据用信号发送预测模式。预测模式可以包含帧内预测(或图片内预测)或帧间预测(或图片间预测)。使用帧内预测,从相同图片中的相邻图像数据使用例如DC预测以寻找PU的平均值、使用平面预测以将平面表面配合到PU、使用方向预测以从相邻数据中进行推断,或者使用任何其它合适类型的预测来预测每一PU。使用帧间预测,通过使用运动补偿预测从一或多个参考图片(按输出次序在当前图片之前或之后)中的图像数据预测每一PU。举例来说,可以在CU层级作出是使用图片间还是图片内预测对图片区域进行译码的决策。

PU可包含与预测过程有关的数据。举例来说,当使用帧内预测对PU进行编码时,PU可包含描述用于PU的帧内预测模式的数据。作为另一实例,当使用帧间预测对PU进行编码时,PU可包含定义PU的运动向量的数据。定义PU的运动向量的数据可以描述例如运动向量的水平分量、运动向量的垂直分量、运动向量的分辨率(例如,四分之一像素精度或八分之一像素精度)、运动向量指向的参考图片,以及/或运动向量的参考图片列表(例如,列表0、列表1或列表C)。

编码器104接着可执行变换和量化。举例来说,在预测之后,编码器引擎106可计算对应于PU的残余值。残余值可包括像素差值。使用可基于离散余弦变换、离散正弦变换、整数变换、小波变换或其它合适的变换功能的块变换对在执行预测之后可能剩余的任何残余数据进行变换。在一些情况下,一或多个块变换(例如,大小为32×32、16×16、8×8、4×4或类似者)可应用于每一CU中的残余数据。在一些实施例中,TU可用于由编码器引擎106实施的变换和量化过程。给定的具有一或多个PU的CU还可包含一或多个TU。如下文中进一步描述,可使用块变换将残余值变换成变换系数,且接着可使用TU对其进行量化和扫描以产生用于熵译码的串行化变换系数。

在一些实施例中,在使用CU的PU进行帧内预测或帧间预测译码之后,编码器引擎106可以计算CU的TU的残余数据。PU可以包括空间域(或像素域)中的像素数据。TU可包括在应用块变换之后的变换域中的系数。如前文所述,残余数据可以对应于未经编码图片的像素与对应于PU的预测值之间的像素差值。编码器引擎106可以形成包含CU的残余数据的TU,并且接着可对TU进行变换以产生CU的变换系数。

编码器引擎106可以执行变换系数的量化。量化通过对变换系数进行量化以减小用于表示系数的数据的量来提供进一步压缩。举例来说,量化可以减小与系数中的一些或全部相关联的位深度。在一个实例中,可在量化期间将具有n位值的系数向下舍入到m位值,其中n大于m。

一旦执行量化,经译码位流便包含经量化变换系数、预测信息(例如,预测模式、运动向量或类似者)、分割信息,以及任何其它合适的数据,例如其它语法数据。编码器引擎106接着可对经译码位流的不同元素进行熵编码。在一些实例中,编码器引擎106可使用预定义扫描次序扫描经量化变换系数以产生可经熵编码的串行化向量。在一些实例中,编码器引擎106可以执行自适应扫描。在扫描经量化变换系数以形成一维向量之后,编码器引擎106可对一维向量进行熵编码。举例来说,编码器引擎106可以使用上下文自适应可变长度译码、上下文自适应二进制算术译码、基于语法的上下文自适应二进制算术译码、概率区间分割熵译码,或另一合适的熵编码技术。

如先前描述,HEVC位流包含NAL单元群组。形成经译码视频位流的位的序列存在于VCL NAL单元中。除其它信息之外,非VCL NAL单元还可含有具有与经编码视频位流有关的高层级信息的参数集。举例来说,参数集可包含视频参数集(VPS)、序列参数集(SPS)和图片参数集(PPS)。参数集的目标是位率效率、错误恢复性,且提供系统层接口。每一切片参考单一活动的PPS、SPS和VPS以存取解码装置112为解码切片可使用的信息。可译码用于每一参数集的标识符(ID),包含VPS ID、SPS ID和PPS ID。SPS包含SPS ID和VPS ID。PPS包含PPS ID和SPS ID。每一切片标头包含PPS ID。使用ID,可标识针对给定切片的活动的参数集。

PPS包含适用于给定图片中的全部切片的信息。因为这一点,图片中的全部切片引用相同PPS。不同图片中的切片也可以引用相同PPS。SPS包含适用于相同经译码视频序列或位流中的所有图片的信息。经译码视频序列是一系列存取单元,这些存取单元开始于随机存取点图片(例如,瞬时解码刷新(IDR)图片或断链存取(BLA)图片,或其它适当的随机存取点图片)并且包含多达所有存取单元,但不包含下一随机存取点图片(或位流的端部)。SPS中的信息通常不会在经译码视频序列内在图片之间发生改变。经译码视频序列中的所有图片使用相同SPS。VPS包含适用于经译码视频序列或位流中的所有层的信息。VPS包含具有适用于整个经译码视频序列的语法元素的语法结构。在一些实施例中,VPS、SPS或PPS可以与经编码位流一起带内传输。在一些实施例中,VPS、SPS或PPS与含有经译码视频数据的NAL单元相比可以在单独传输中带外传输。

编码装置104的输出110可以经由通信链路120将构成经编码视频数据的NAL单元发送到接收装置的解码装置112。解码装置112的输入114可以接收NAL单元。通信链路120可以包含使用无线网络、有线网络或有线和无线网络的组合所传输的信号。无线网络可以包含任何无线接口或无线接口的组合并且可以包含任何合适的无线网络(例如,互联网或其它广域网、分组网络、WiFiTM、射频(RF)、UWB、WiFi-Direct、蜂窝、长期演进(LTE)、WiMaxTM或类似者)。有线网络可以包含任何有线接口(例如,光纤、以太网、电力线以太网、经由同轴电缆的以太网、数字信号线(DSL)或类似者)。有线和/或无线网络可以使用各种设备(例如基站、路由器、接入点、网桥、网关、交换机或类似者)实施。经编码视频数据可根据通信标准(例如,无线通信协议)加以调制,且传输到接收装置。

在一些实例中,编码装置104可将经编码视频数据存储于存储装置108中。输出110可以从编码器引擎106或从存储装置108检索经编码视频数据。存储装置108可以包含多种分布式或本地存取的数据存储媒体中的任何一种。举例来说,存储装置108可以包含硬盘驱动器、存储盘、快闪存储器、易失性或非易失性存储器,或用于存储经编码视频数据的任何其它合适的数字存储媒体。

输入114接收经编码视频数据并且可以将视频数据提供到解码器引擎116或存储装置118以供解码器引擎116稍后使用。解码器引擎116可以通过熵解码(例如,使用熵解码器)对经编码视频数据进行解码并且提取构成经编码视频数据的经译码视频序列的元素。解码器引擎116接着可重新按比例缩放并且对经编码视频数据执行逆变换。接着将残余传递到解码器引擎116的预测级。解码器引擎116接着预测像素块(例如,PU)。在一些实例中,预测被添加到逆变换的输出。

解码装置112可将经解码视频输出到视频目的地装置122,所述视频目的地装置可以包含显示器或其它输出装置以用于将经解码视频数据显示给内容的消费者。在一些方面,视频目的地装置122可以是包含解码装置112的接收装置的一部分。在一些方面,视频目的地装置122可为不同于接收装置的单独装置的一部分。

在一些实施例中,视频编码装置104和/或视频解码装置112可分别与音频编码装置和音频解码装置集成。视频编码装置104和/或视频解码装置112还可以包含实施上文所描述的译码技术所必需的其它硬件或软件,例如一或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑、软件、硬件、固件或其任何组合。视频编码装置104和视频解码装置112可以集成为相应的装置中的组合编码器/解码器(编解码器)的一部分。下文参考图9描述编码装置104的具体细节的实例。下文参考图10描述解码装置112的具体细节的实例。

如上文所指出,HEVC标准的扩展包含多视图视频译码扩展(被称作MV-HEVC)和可缩放视频译码扩展(被称作SHVC)。MV-HEVC和SHVC扩展共享分层译码的概念,分层译码具有包含于经编码视频位流中的不同层。经译码视频序列中的每一层通过唯一层标识符(ID)寻址。层ID可以存在于NAL单元的标头中以标识NAL单元相关联的层。在MV-HEVC中,不同层通常表示视频位流中的同一场景的不同视图。在SHVC中,提供表示不同空间分辨率(或图象分辨率)或不同重构保真度的视频位流的不同可缩放层。可缩放层可以包含基础层(具有层ID=0)和一或多个增强层(具有层ID=1、2……n)。基础层可以符合HEVC的第一版本的简档,并且表示在位流中可供使用的最低层。与基础层相比,增强层具有增加的空间分辨率、时间分辨率或帧速率和/或重构保真度(或质量)。增强层是阶层式组织的并且可(或可不)依赖于较低层。在一些实例中,可使用单标准编解码器对不同层进行译码(例如,使用HEVC、SHVC或其它译码标准对所有层进行编码)。在一些实例中,可使用多标准编解码器对不同层进行译码。举例来说,可使用AVC对基础层进行译码,而可使用HEVC标准的SHVC和/或MV-HEVC扩展对一或多个增强层进行译码。

一般来说,层包含VCL NAL单元集和对应的非VCL NAL单元集。NAL单元被分配特定层ID值。在层可依赖于较低层的意义上,层可为阶层式的。层集合是指在位流内表示的独立的层集,意指层集合内的层可能在解码过程中依赖于层集合中的其它层,但并不依赖于任何其它层来进行解码。因此,层集合中的层可形成可表示视频内容的非依赖性位流。层集合中的层集可通过子位流提取过程的操作(下文描述)从另一位流获得。层集合可对应于在解码器希望根据某些参数进行操作时将被解码的层集。

提供假想参考解码器参数集(例如,在视频参数序列或集中,或在其它信息传送中)以允许多层功能性,其中每一参数集对应于操作点。操作点定义用于子位流提取的参数,且包含目标层列表(用于所述操作点的层集合)和目标最高时间层。多个操作点可适用于给定位流。操作点可包含层集合中的所有层或可为形成为层集合的子集的位流。举例来说,位流的操作点可与层标识符集和时间标识符相关联。层标识符列表可用以标识将包含在操作点中的层。层标识符列表可包含在参数集(例如,VPS)中。层标识符列表可包含层标识符(ID)值(例如,由语法元素nuh_layer_id指示)列表。在一些情况下,层ID值可包含非负整数,且每一层可与唯一层ID值相关联,以使得每一层ID值标识特定层。最高时间ID(例如,由变量TemporalId标识)可用以定义时间子集。在一些实施例中,层标识符列表和目标最高时间ID可用作输入以从位流提取操作点。举例来说,当NAL单元具有包含在与操作点相关联的层标识符集中的层标识符,且NAL单元的时间标识符小于或等于操作点的时间标识符时,NAL单元与所述操作点相关联。目标输出层是将被输出的层,且输出层集合是与目标输出层集相关联的层集合。举例来说,输出层集合是包含规定的层集合的层的层集,其中所述层集中的一或多个层被指示为输出层。输出操作点对应于特定输出层集合。举例来说,输出操作点可包含通过其中输入位流、目标最高时间标识符(TemporalId)和目标层标识符列表作为输入的子位流提取过程的操作从输入位流产生且与输出层集相关联的位流。

图2是说明层集合(包含层集合0、层集合1、层集合2和层集合3)的实例的框图。不同操作点可与层集合0、1、2和3中的每一个相关联。层集合0包含层0。层集合1包含层0和层1。层集合2包含层0、层1和层2。层集合3包含层0、层1、层2和层3。层0可为基础层,且层1、2和3可为增强层。举例来说,层0可具有7.5Hz的帧速率和64千字节/秒的位率,层1可具有15Hz的帧速率和128千字节/秒的位率,层2可具有15Hz的帧速率和256千字节/秒的位率,层3可具有30Hz的帧速率和512千字节/秒的位率,且层4(在图中未示出)可具有30Hz的帧速率和1兆字节/秒的位率。所属领域的一般技术人员将理解,这些数值仅作为一实例提供,且所述层可根据特定实施方案具有其它帧速率和位率。

译码技术中的可缩放性允许移除位流的经译码数据单元(例如,NAL单元)以获得形成用于目标解码器的另一有效位流的所得子位流。子位流表示位流的源内容,但与原始位流相比具有更小帧速率(或时间分辨率)、空间分辨率和/或视频保真度时间可缩放性允许位流和对应的子位流具有可缩放帧速率,其中运动补偿依赖性经结构化以使得可从位流丢弃完整图片。空间可缩放性允许位流和相关联子位流具有可缩放空间分辨率或图片大小,在此情况下,可在多个空间分辨率下对视频进行译码。在一些情况下,较低分辨率的数据可用以预测较高分辨率的数据或样本,以便减少位率以对较高分辨率进行译码。也可基于视频质量实现可缩放性,其中在单一空间分辨率和不同质量下对视频进行译码。在一些情况下,较低质量的数据可用以预测较高质量的数据,以便减少位率以对较高质量进行译码。也可使用不同可缩放性的组合。

在一些实例中,可从位流移除一或多个层或时间子层以获得具有不同特性(例如,帧速率、空间分辨率、视频保真度或其它适合特性)的子位流。举例来说,可使用子位流提取过程从位流移除层或子层。可出于各种原因而移除层或子层。举例来说,可通过移除层以便降低将数据传输到解码装置所需的数据的量来编辑位流。由于从位流移除层或子层,子位流与原始位流相比具有更少层或子层。每一子位流与层集合和对应的操作点相关联。在一些情况下,不完整层集合和(完全或部分地)不可用操作点可由从位流移除一或多个层而引起。

图3是说明层集合3在移除层后变成不完整层集合的框图。不完整层集合可在从位流提取或移除层或时间子层以产生子位流时发生。当移除层或子层时,包含经提取层的层集合将由于缺失层而为不完整的。在图3中,从位流移除层3,引起层集合3变成不完整层集合且用于所述层集合的对应操作点变成不完全可用的。子位流因此可对应于被视为不完全可用或至少部分地不可用的操作点,如下文更详细地描述。剩余的层集合0、1和2保持完整,且对应操作点保持完全或至少部分地可用。

当从位流移除层或子层以获得子位流时,可(例如,在一或多个参数集中)存在描述不再存在于位流中且因此不包含任何数据的经移除层或子层的特征和参数的信息。举例来说,HEVC中的VPS经设计以使得当从位流移除某些层或子层时,VPS本身不需要改变。换句话说,VPS可含有描述在子位流提取过程之后不再存在于位流中的层、子层、层集合、输出层集合、操作点和输出操作点的信息。不管所述VPS的此特征如何,当子位流满足某些特性时,每一子位流需要符合视频译码标准。为测试符合性,当产生可缩放位流或多层位流时,通过编码器执行位流符合性检查以确保对应于特定操作点的每一层集合是相符子位流。位流符合性检查可包含使用假想参考解码器参数执行规范性测试。规范性测试使用假想参考解码器参数检查:可通过在概念上连接到编码器的输出且包含经译码图片缓冲器、解码器和经解码图片缓冲器的假想参考解码器解码位流或子位流。编码器必须确保在产生满足符合性的位流时满足各种约束条件,包含确保在位流中使用的工具匹配在参数集中用信号发送的工具,确保假想参考解码器的经译码图片缓冲器不溢出或下溢,确保标记为用于参考的图片之后不用作参考,或其它要求。当存在用于解码器缓冲器的太多经译码数据单元时发生缓冲器溢出。当对于解码器来说是时候处理一些经译码数据单元但缓冲器为空时发生下溢。

根据HEVC标准,当子位流对应于与层集合相关联的操作点或输出操作点且TemporalId的目标最高值OpTid小于或等于VPS为层集合所规定的6时,子位流应为相符位流。需要对应于不可用(例如,归因于不完整层集合)的操作点的子位流将致使对于具有不完整层集合的子位流的不符合性判定,从而导致可能不必要的处理和开销。在一个实例中,如在JCTVC-R0010v1的规范文本中,可允许从层集合排除基础层,且此类子位流可含有零层(不存在非VCL NAL单元)。在此实例中,基础层可由外部源而非用以产生经编码位流的编码器提供(例如,基础层是经AVC译码,且经编码位流是经HEVC译码)。可从经编码位流提取子位流以获得仅包含基础层的层集合0。因此,从经编码位流提取子位流以仅获得基础层,在子位流中不留下视频数据(这是因为基础层是从外部提供的)。需要空或部分为空的子位流为相符位流导致低效率译码过程。此外,在位流符合性测试中,测试对应于在HEVC中的VPS中规定的层集合的每一操作点,且测试对应于在SHVC/MV-HEVC中的VPS中规定的输出层集合的每一输出操作点。然而,当操作点(在HEVC中)或输出操作点(在SHVC/MV-HEVC中)的并非所有子层或所有层可用时,不应执行位流符合性测试。

在本文中所揭示的一些实施例中,可基于子位流的至少一个层是否包含视频数据而对子位流选择性地执行位流符合性检查。在此类实施例中,可仅对在子位流的一个或所有层或子层中包含视频数据的子位流执行位流符合性检查。

举例来说,在一些实施例中,仅需对应于完全可用的操作点(或输出操作点)的子位流为相符位流。在此类实施例中,编码装置104可确定完全可用的操作点(例如,基于参数集中的信息、存在于子位流中的数据,或可用以编码装置104的其它适合信息)。编码装置104可仅对对应于完全可用的操作点的子位流执行位流符合性检查。在(存在于位流中或由外部装置提供的)VCL NAL单元可用于包含在对应于操作点的层集合中的每一层的情况下,操作点可被视为完全可用的。在一些实例中,在VCL NAL单元可用于包含在层集合中的每一层的情况下,且在位流中的所有VCL NAL单元的时间ID的最高值等于或大于操作点的对应时间ID OpTid的情况下,操作点可被视为完全可用的。在图3中所说明的实例中,层集合3将不被视为完全可用的,这是因为VCL NAL单元不可用于层集合1的层3。在一些情况下,当基础层是由外部装置提供时,可对其对应层集合是层集合0(仅包含基础层)的操作点实施例外,在此情况下,此类操作点可被视为不完全可用的。

在一些实施例中,仅需对应于至少部分可用的操作点(或输出操作点)的子位流为相符位流。在此类实施例中,编码装置104可确定至少部分可用的操作点(例如,基于参数集中的信息、存在于子位流中的数据,或可用以编码装置104的其它适合信息)。编码装置104可仅对对应于至少部分可用的操作点的子位流执行位流符合性检查。在(存在于位流中或由外部装置提供的)VCL NAL单元可用于包含在对应于操作点的层集合中的至少一个层的情况下,操作点可被视为至少部分可用的。在图3中所说明的实例中,在VCL NAL单元可用于层0、1、2中的一个的情况下,层集合3可被视为至少部分可用的。在一些实例中,当基础层是由外部装置提供时,可对其层集合是层集合0(仅包含基础层)的操作点实施例外,在此情况下,此类操作点可被视为至少部分不可用的。

图4说明对视频数据进行编码的过程400的实施例。实施过程400以选择性地执行位流符合性检查。在一些方面,可由例如在图1中展示的编码装置104或在图9中展示的编码器20的计算装置或设备来执行过程400。举例来说,所述计算装置或设备可包含编码器,或处理器、微处理器、微型计算机,或经配置以执行过程400的步骤的编码器的其它组件。

过程400说明为逻辑流程图,其中的操作表示可在硬件、计算机指令或其组合中实施的操作序列。在计算机指令的情形下,操作表示存储在一或多个计算机可读存储媒体上的计算机可执行指令,这些计算机可执行指令在由一或多个处理器执行时执行所叙述的操作。一般来说,计算机可执行指令包含例程、程序、对象、组件、数据结构以及执行特定功能或实施特定数据类型的类似者。描述操作的次序并不意图解释为限制,且任何数目的所描述操作可以任何次序组合和/或并行以实施所述过程。

另外,过程400可以在配置有可执行指令的一或多个计算机系统的控制下执行并且可以实施为在一或多个处理器上、通过硬件或其组合共同地执行的代码(例如,可执行指令、一或多个计算机程序或一或多个应用程序)。如上文所指出,代码可例如以包括可由一或多个处理器执行的多个指令的计算机程序的形式存储在计算机可读或机器可读存储媒体上。计算机可读或机器可读存储媒体可为非暂时性的。

在402处,对视频数据进行编码的过程400包含产生包括多个层的经编码视频位流,所述经编码视频位流包含定义经编码视频位流的参数的参数集。在一些实施例中,视频数据包含一或多个视频译码层网络抽象层单元(VCL NAL单元)或含于所述VCL NAL单元中。在一个实例中,VCL NAL单元可构成图2中所说明的层0、1、2和3。所述参数集可包含视频参数集或序列参数集。

在404处,过程400包含确定参数集的包含描述经编码视频位流的第一子位流的信息和描述经编码视频位流的第二子位流的信息的一或多个参数,所述第一子位流包含具有视频数据的一或多个层,且所述第二子位流包含不具有视频数据的一或多个层。所述第一子位流可对应于第一层集合和对应的第一操作点,例如图2中所说明的层集合0、1或2。所述第二子位流可对应于第二层集合和对应的第二操作点,例如图2中所说明的层集合3。在一些实施例中,第一子位流的一或多个层的视频数据存在于第一子位流中。在一些实施例中,从外部源而非用以产生经编码视频位流的编码器提供第一子位流的一或多个层的视频数据。举例来说,第一子位流可对应于仅包含基础层的层集合0。在一些实例中,基础层可从外部源提供到解码器。可通过从经编码视频位流移除至少一个层从经编码视频位流产生第二子位流。举例来说,子位流提取过程可用以产生第二子位流。

在406处,过程400包含基于是第一子位流或第二子位流的至少一个层是否包含视频数据,对第一子位流或第二子位流执行位流符合性检查。举例来说,过程400可包含基于第一子位流的一或多个层具有视频数据,对第一子位流执行位流符合性检查。基于第二子位流的一或多个层不具有视频数据,不对第二子位流执行位流符合性检查。因此,对第一子位流执行位流符合性检查是因为第一子位流的一或多个层具有视频数据,且不对第二子位流执行位流性能检查是因为第二子位流的一或多个层不具有视频数据。

在一些实施例中,过程400包含在第一子位流的一或多个层全部具有视频数据时,对第一子位流执行位流符合性检查。在此类情况下,如上文所描述,当子位流对应于完全可用的操作点时,仅对子位流执行位流符合性检查。

在一些实施例中,过程400包含在第一子位流的一或多个层中的至少一个具有视频数据时,对第一子位流执行位流符合性检查。在此类情况下,如上文所描述,当子位流对应于部分可用的操作点时,仅对子位流执行位流符合性检查。

在一些实施例中,过程400包含基于第一子位流中的视频数据的时间标识符的最高值是否等于或大于第一子位流的对应时间标识符的值,对第一子位流执行位流符合性检查。在此类实施例中,当VCL NAL单元对于包含在对应于操作点的层集合中的每一层是可用的(存在于位流中或由外部装置提供)时,并且还当位流中的所有VCL NAL单元的TemporalId的最高值等于或大于操作点的对应时间ID OpTid时,执行所述位流符合性测试。

在一些实施例中,位流符合性检查包含对第一子位流执行规范性测试,以确保第一子位流符合解码第一子位流所需的译码要求。如先前所描述,可使用假想参考解码器参数执行规范性测试。

使用上文所描述的技术,位流符合性检查可受限于对应于完全或至少部分可用的操作点的子位流。此类技术允许避免对空或部分为空的子位流的不必要的符合性测试。

在进一步实施例中,描述用于将最小值分配给参数集中的语法结构的技术和系统。如先前所描述,经编码位流中的NAL单元可包含具有与经编码视频位流有关的高层级信息以及其它信息的参数集。可包含在参数集中的一个信息集包含简档、层次和层级参数或约束条件。简档、层次和层级参数可包含在参数集(例如,VPS或SPS)的语法结构中,且可包含profile_tier_level()语法结构。简档、层次和层级包含对位流的限定以及对解码位流所需的能力的限制。简档、层次和层级也可用以指示个别解码器实施方案之间的互操作性点。简档、层次和层级参数的实例包含对译码工具、位流特性、接收装置解码基础层所需的缓冲器特性或其它参数的约束条件。

简档定义由符合所述简档的所有解码器支持的特征和限制的子集。在HEVC标准中定义的简档包含主简档、主10简档、主静止图片简档、格式范围扩展简档,以及格式范围扩展高输贯量简档。

层级和层次可规定简档必须遵循的额外约束条件。举例来说,层次的层级可规定对给定译码规范(例如,HEVC)的语法元素可能采用的值的限制集。层次和层级定义的同一集合与所有简档一起使用,但个别实施方案可支持不同层次和在一层次内用于每一所支持简档的不同层级。对于任何给定简档,层次的层级大体上对应于特定解码器处理负载和存储器能力。由层级和层次定义的约束条件的实例可包含对所允许的切片的最大数目、所允许的图块的最大数目、最大位率、最大取样率、最大图片大小、最小压缩比、经解码图片缓冲器的能力的约束条件,或其它适合的约束条件。较低层次和层级与较高层次和层级相比受到更多约束。根据HEVC标准,定义两个层次。所述层次包含主层次和高层次,其中主层次与高层次相比为较低的层次。高层次可用于需要较高位率的应用。符合给定层次/层级的解码器必须能够解码针对所述层次/层级以及针对所有较低层次/层级进行编码的所有位流。简档、层次和层级限制的具体实例可发现于HEVC译码标准中,其可从http://phenix.it-sudparis.eu/jct/doc_end_user/documents/17_Valencia/wg11/JCTVC-Q1003-v1.zip得到。

在一些实施例中,描述用于将最小值分配给参数集中的简档、层次、层级语法结构的技术和系统。可在发生某些情境时分配所述最小值。举例来说,根据第一译码协议对视频数据进行编码的编码器(例如,编码装置104、编码器20,或类似者)可产生经编码视频位流。编码器可将经编码视频位流提供到接收装置中的解码器(例如,解码装置112、解码器30,或类似者)。在一些实例中,接收装置可直接从编码器接收经编码视频位流。在一些实例中,接收装置可从网络实体(例如服务器、媒体感知网络元件(MANE)、视频编辑器/剪接器,或其它此类装置)接收经编码视频位流。可根据不同于第一译码协议的第二译码协议对视频数据的基础层进行编码。在一个实例中,第一译码协议可基于HEVC标准,且第二译码协议可基于AVC标准。可通过外部源而非使用第一译码协议产生第一经编码视频位流的编码器将基础层提供到解码器或同一接收装置中的另一解码器。在一个实例中,多标准编解码器可接收经编码位流(使用第一译码协议经编码)和基础层(使用第二译码协议经编码)。在另一实例中,第一编解码器可接收并解码经编码位流,且第二编解码器可接收并解码基础层。使用第二译码协议对视频数据进行编码的编码器可将基础层提供到接收装置(例如,直接或经由网络实体发送到接收装置)。

可提供针对根据第一译码协议经编码的视频位流的参数集(例如,VPS)。视频参数集可包含与经编码视频位流中的视频数据有关的信息。包含关于经编码视频位流的基础层的信息的语法结构可存在于VPS中,即使在基础层是从外部由外部源提供的情况下仍如此(在此情况下,可不提供使用第一译码协议经编码的基础层)。语法结构可包含上文所描述的简档、层次和层级语法元素。当基础层是从外部提供时,VPS中分配给基础层的第一profile_tier_level()语法结构是无意义且被解码器忽略。然而,移除所述语法结构不是任选方案,这是因为在HEVC版本1中规定所述语法,且移除将致使向后兼容性问题。出于这些原因,用于基础层的简档、层次、层级语法结构必须保持在VPS中。因此,当确定基础层将由外部源而非用以产生经编码视频位流的编码器提供到解码器时,编码器(例如,编码装置104、编码器20,或类似者)可将最小值分配给用于基础层的简档、层次、层级语法结构,VPS中的语法元素可包含用信号传送到到编码器以分配最小值的约束条件。通过分配最小值,将语法结构所使用的位数减到最小。在一个实例中,可需要语法结构具有全部等于0的位,因此确保所述语法结构使用最小位数。

图5说明可将最小值分配给简档、层次、层级语法结构的实例环境500。环境500包含使用不同视频译码标准产生经编码视频位流的HEVC编码装置502和AVC编码装置506。所属领域的一般技术人员将理解,本文中所描述的技术适用于可使用不同于HEVC或AVC的译码标准的其它编码装置。HEVC编码装置502可产生包含一或多个增强层但不包含基础层的HEVC兼容视频位流。AVC编码装置506可产生仅包含基础层的AVC兼容视频位流。当HEVC编码装置502产生一或多个增强层时,由AVC编码装置506产生的基础层可用于层间预测参考。

在一个实例中,HEVC解码装置504可从HEVC编码装置502接收增强层,且AVC解码装置508可从AVC编码装置506接收基础层。在另一实例中,第一网络实体(例如,编辑器或剪接器)可将来自HEVC编码装置502的增强层与来自AVC编码装置506的基础层剪接在一起。第一网络实体可以与(例如,以根据ISO基础媒体文件格式的文件格式)所添加的系统时间信息在时间上同步的方式执行所述剪接。第二网络实体(例如,接收器(例如接收装置510)、文件格式解析器,或其它网络实体)可将一或多个增强层的位流传递到HEVC解码装置504并且将基础层的位流传递到AVC解码装置506。在任一实例中,基础层的位流不提供到HEVC解码装置504。替代地,基础层的经解码图片提供到HEVC解码装置504(从AVC解码装置508)以用于层间预测参考。从HEVC解码装置504的视角,基础层是从外部由外部源提供。在一些实施例中,HEVC解码装置504和AVC解码装置508是单独的解码器。在一些实施例中,HEVC解码装置504和AVC解码装置508是可解码HEVC和AVC位流的多标准解码器的一部分。

HEVC编码装置502可提供针对经编码位流的视频参数集(VPS)512(例如,在一或多个非VCL NAL单元中)。HEVC编码装置502可确定基础层将由外部源而非HEVC编码装置502提供。举例来说,HEVC编码装置502可确定VPS 512中的一或多个旗标设置为指示基础层是由外部源提供的值。在一些实施例中,一或多个旗标可包含vps_base_layer_internal_flag。在一些实施例中,一或多个旗标可包含vps_base_layer_available_flag。在一些实施例中,一或多个旗标包含vps_base_layer_internal_flag和vps_base_layer_available_flag两者。在一个实例中,如果vps_base_layer_internal_flag等于1且vps_base_layer_available_flag等于1,那么基础层存在于HEVC位流中。在另一实例中,如果vps_base_layer_internal_flag等于0且vps_base_layer_available_flag等于1,那么基础层是由在HEVC规范中未规定的外部装置提供。在又另一实例中,如果vps_base_layer_internal_flag等于1且vps_base_layer_available_flag等于0,那么基础层不可用(既不存在于HEVC位流中也不由外部装置提供),但VPS包含基础层的信息,就像基础层存在于HEVC位流中的情况一样。在又另一实例中,如果vps_base_layer_internal_flag等于0且vps_base_layer_available_flag等于0,那么基础层不可用(既不存在于HEVC位流中也不由外部装置提供),但VPS包含基础层的信息,就像基础层是由在HEVC规范中未规定的外部装置提供的情况一样。

基于对基础层将由外部源提供(例如,vps_base_layer_internal_flag等于0且vps_base_layer_available_flag等于1)的确定,HEVC编码装置502将最小值分配给存在于VPS 512中的简档、层次、层级语法结构514。简档、层次、层级语法结构514描述用于HEVC位流的基础层的一或多个简档、层级和层次。分配最小值可包含将所有0值分配给简档、层次、层级语法结构514的位。HEVC编码装置502接着可将针对经编码位流的VPS 512发送到HEVC解码装置504。

图6说明对视频数据进行编码的过程600的实施例。实施过程600以将最小值分配给参数集中的语法结构。在一些方面,可由例如在图1中展示的编码装置104或在图9中展示的编码器20的计算装置或设备来执行过程600。举例来说,所述计算装置或设备可包含编码器,或处理器、微处理器、微型计算机,或经配置以执行过程600的步骤的编码器的其它组件。

过程600说明为逻辑流程图,其中的操作表示可在硬件、计算机指令或其组合中实施的操作序列。在计算机指令的情形下,操作表示存储在一或多个计算机可读存储媒体上的计算机可执行指令,这些计算机可执行指令在由一或多个处理器执行时执行所叙述的操作。一般来说,计算机可执行指令包含例程、程序、对象、组件、数据结构以及执行特定功能或实施特定数据类型的类似者。描述操作的次序并不意图解释为限制,且任何数目的所描述操作可以任何次序组合和/或并行以实施所述过程。

另外,过程600可以在配置有可执行指令的一或多个计算机系统的控制下执行并且可以实施为在一或多个处理器上、通过硬件或其组合共同地执行的代码(例如,可执行指令、一或多个计算机程序或一或多个应用程序)。如上文所指出,代码可例如以包括可由一或多个处理器执行的多个指令的计算机程序的形式存储在计算机可读或机器可读存储媒体上。计算机可读或机器可读存储媒体可为非暂时性的。

在602处,对视频数据进行编码的过程600包含通过编码器根据第一译码协议产生经编码视频位流,所述经编码视频位流包含一或多个增强层和定义经编码视频位流的参数的视频参数集。在一些实施例中,编码装置可产生经编码视频位流以包含基础层和一或多个增强层。

在604处,过程600包含确定基础层将通过外部源提供到解码装置且不提供为经编码视频位流的一部分。外部源是不同于根据第一译码协议产生经编码视频位流的编码器的源。解码装置可根据第一译码协议操作。在一些实施例中,根据不同于第一译码协议的第二译码协议对由外部源提供的基础层进行编码。举例来说,第一译码协议可包含高效视频译码协议,且第二译码协议可包含高级视频译码协议。在一个实例中,经配置以根据第二译码协议产生位流的编码器可产生将提供到解码装置的基础层。根据第二译码协议操作的解码装置可从根据第二译码协议操作的编码器接收基础层,且可将基础层提供到根据第一译码协议操作的解码装置。在另一实例中,第一网络实体(例如,编辑器或剪接器)可将来自根据第一协议操作的编码器的一或多个增强层与来根据第二协议操作的编码器的基础层剪接在一起。第二网络实体(例如,接收器或文件格式解析器)可将一或多个增强层的位流传递到根据第一译码协议操作的解码装置,并且可将基础层的位流传递到根据第二译码协议操作的解码装置。在一些实施例中,确定基础层将由外部源提供包含确定旗标被设置为指示基础层是由外部源提供的值。举例来说,如上文所描述,所述旗标可包含vps_base_layer_internal_flag、vps_base_layer_available_flag,或这两个旗标可用以指示基础层将由外部源提供。

在606处,过程600包含在确定基础层将由外部源提供时,将最小值分配给视频参数集中的语法结构,所述语法结构定义用于基础层的简档、层次和层级参数。在一些实施例中,所述最小值包含语法结构的所有位的值0。在一些实施例中,简档、层次和层级参数包含对经编码视频位流的限定以及对解码经编码视频位流所需的能力的限制。举例来说,简档、层次和层级参数可规定对译码工具、位流特性、或解码装置解码基础层所需的缓冲器特性、或其它参数的约束条件。简档、层次和层级参数可包含在参数集(例如,VPS或SPS)的语法结构中,且可包含profile_tier_level()语法结构。

使用上文所描述的技术,通过在某些情境下需要分配给不必要语法结构的最小位数来减少带宽和其它传输以及处理开销。此类技术将例如简档、层次、层级语法结构所使用的位数减到最小。

在进一步实施例中,描述用于约束用于参数集的表示格式参数的技术和系统。图7说明视频参数集(VPS)706和序列参数集(SPS)702的实例。SPS 702可为用于经编码视频位流中的一或多个层的活动的SPS。SPS 702包含表示格式参数704。SPS 702可适用于多于一个层,且表示格式参数704适用于SPS 702所适用的所有层。在一些实施例中,SPS适用于仅一个层,且因此可在特定时间存在用于多个层的多个活动的SPS。VPS可包含多个表示格式参数集,且这些集中的每一个可分配给一或多个层。举例来说,VPS 706包含适用于其中层ID=0的基础层的表示格式参数708、适用于其中层ID=1的增强层的表示格式参数710,以及适用于其中层ID=n的增强层的表示格式参数712,其指示任何数目个层和对应的表示格式参数可存在于经编码位流中。

表示格式参数704、708、710、712描述各种视频数据特性(例如,分辨率参数、位深度、图片宽度、颜色格式,或其它表示格式参数)。在VPS 706中用信号发送的表示格式参数708、710、712可提供参数的最大值,且可在一个装置的编码器与另一装置的解码器之间的会话协商中使用,还有其它用途。会话协商可在不同装置的编码器与解码器之间执行以协定操作点(或输出操作点),确定最大分辨率、位率,或协定包含在经编码位流中的其它特性。在SPS 706中用信号发送的表示格式参数704(或在其它SPS中用信号发送的其它表示格式参数)可将经更新参数值提供给在VPS中提供的那些参数值。

可提供约束条件以指示当更新SPS中的用于层的表示格式参数时,经更新表示格式参数不应大于在VPS中分配的用于所述层的对应表示格式参数。以上约束条件的目标是确保在VPS中用信号发送的用于每一层的表示格式参数的值是解码器应预计用于所述层的那些参数的最大值。这通知解码器应分配多少存储器来处置每一层的图片,且这可在会话协商中用以确定解码器是否可解码位流。然而,在一些实施例中,约束条件仅适用于具有大于0的层ID(例如,nuh_layer_id)的层(仅除基础层以外的层)。对于基础层(层ID=0),可不存在约束在活动的SPS中用信号发送的用于基础层的表示格式参数的值的约束条件。在活动的SPS中用信号发送的用于基础层的表示格式参数的值因此可大于在VPS中分配的用于基础层的对应表示格式参数的值。可在约束条件不应用于基础层的情况下出现问题。举例来说,VPS 706中的表示格式参数708可在与解码器的会话协商期间使用,且稍后,SPS 702可包含更新到高达较大分辨率、位率或基础层的其它特性的表示格式参数。在此类情况下,较早协商的结果将不保持且解码过程可能失败。此还可阻止约束其它层的表示格式更新的目的。此外,当VPS而非SPS中的图片大小信息用于层级定义时,允许图片大小更新为大于VPS中的图片大小将引起不保证相符解码器能够解码位流的情境。

因此,描述用于约束在参数集中用信号发送的用于基础层的表示格式参数的技术和系统。举例来说,可规定需要在SPS 702中用信号发送的表示格式参数704(或在其它SPS中用信号发送的其它表示格式参数)的值小于或等于在VPS 706中用信号发送的表示格式参数708、710、712的值的约束条件。所述约束条件可限制编码器产生SPS 702中的分配给基础层的表示格式参数704的值小于或等于VPS 706中的分配给基础层的表示格式参数708中的对应值。举例来说,编码器可提供在一或多个SPS中的一或多个表示格式参数集(例如,SPS 702中的表示格式参数704)的参数更新,但可根据约束条件限制参数的值。用于SPS中的基础层表示格式参数的约束条件的实例可包含:

当具有等于0的nuh_layer_id的SPS是具有等于0的nuh_layer_id的层的活动的SPS时,位流符合性的要求为,存在于SPS中的语法元素chroma_format_idc、separate_colour_plane_flag、pic_width_in_luma_samples、pic_height_in_luma_samples、bit_depth_luma_minus8或bit_depth_chroma_minus8的值应分别小于或等于活动的VPS中的vps_rep_format_idx[0]-th rep_format()语法结构的chroma_format_vps_idc、separate_colour_plane_vps_flag、pic_width_vps_in_luma_samples、pic_height_vps_in_luma_samples、bit_depth_vps_luma_minus8或bit_depth_vps_chroma_minus8。

语法元素chroma_format_idc、separate_colour_plane_flag、pic_width_in_luma_samples、pic_height_in_luma_samples、bit_depth_luma_minus8或bit_depth_chroma_minus8包含用于SPS的表示格式参数集中的各种参数。语法元素chroma_format_vps_idc、separate_colour_plane_vps_flag、pic_width_vps_in_luma_samples、pic_height_vps_in_luma_samples、bit_depth_vps_luma_minus8或bit_depth_vps_chroma_minus8包含用于VPS的表示格式参数集中的各种参数。

图8说明对视频数据进行编码的过程800的实施例。实施过程800以约束用于参数集的表示格式参数。在一些方面,可由例如在图1中展示的编码装置104或在图9中展示的编码器20的计算装置或设备来执行过程800。举例来说,所述计算装置或设备可包含编码器,或处理器、微处理器、微型计算机,或经配置以执行过程800的步骤的编码器的其它组件。

过程800说明为逻辑流程图,其中的操作表示可在硬件、计算机指令或其组合中实施的操作序列。在计算机指令的情形下,操作表示存储在一或多个计算机可读存储媒体上的计算机可执行指令,这些计算机可执行指令在由一或多个处理器执行时执行所叙述的操作。一般来说,计算机可执行指令包含例程、程序、对象、组件、数据结构以及执行特定功能或实施特定数据类型的类似者。描述操作的次序并不意图解释为限制,且任何数目的所描述操作可以任何次序组合和/或并行以实施所述过程。

另外,过程800可以在配置有可执行指令的一或多个计算机系统的控制下执行并且可以实施为在一或多个处理器上、通过硬件或其组合共同地执行的代码(例如,可执行指令、一或多个计算机程序或一或多个应用程序)。如上文所指出,代码可例如以包括可由一或多个处理器执行的多个指令的计算机程序的形式存储在计算机可读或机器可读存储媒体上。计算机可读或机器可读存储媒体可为非暂时性的。

在802处,对视频数据进行编码的过程800包含产生包括多个层的经编码视频位流,所述经编码视频位流包含一或多个序列参数集和视频参数集。在一个实例中,一或多个序列参数集包含在图7中展示的SPS 702,且视频参数集包含VPS 706。

在804处,过程800包含根据约束条件产生序列参数集的分配给经编码视频位流的基础层的一或多个表示格式参数,所述约束条件限制序列参数集中的一或多个表示格式参数的值小于或等于分配给视频参数集中的基础层的对应表示格式参数的值。可在一或多个HEVC语法元素中用信号发送序列参数集中的一或多个表示格式参数。在一些实施例中,一或多个表示格式参数包含分辨率、位深度、图片宽度、颜色格式或其它格式参数中的一或多个。在一些实施例中,如先前所描述,在视频参数集中用信号发送的一或多个表示格式参数用于与一或多个解码器的会话协商。

在一些实施例中,所述过程包含根据约束条件更新一或多个序列参数集。举例来说,例如编码器的设备可提供序列参数集中的表示格式参数更新,但可根据约束条件限制参数的值。

使用上文所描述的技术,可根据VPS中的表示格式参数约束在SPS中用信号发送的用于基础层的表示格式参数。此类技术允许保持会话协商的结果,从而产生可靠的译码过程。此外,当VPS而非SPS中的图片大小信息用于层级定义时,避免其中不保证相符解码器能够解码位流的情境,这是因为不允许图片大小更新为大于VPS中的图片大小。

在进一步实施例中,描述本文中的其它技术和系统。举例来说,如先前所描述,其信息包含在VPS中的某些层可不存在于位流中且可能在VPS中不被指示(例如,所述层的层ID可能不存在于VPS中)。在一个实例中,HEVC基础层可为不可用的(例如,既不在HEVC经编码视频位流中也不由外部装置提供)。VPS可使用例如vps_base_layer_internal_flag、vps_base_layer_available_flag或这两个旗标指示不存在基础层。然而,因为其信息包含在VPS中的某些层可不存在于位流中且在VPS中不以任何方式被指示,所以不存在在VPS中指示基础层不可用的充分理由。在一些实施例中,在HEVC规范中可仅使用vps_base_layer_available_flag和/或vps_base_layer_internal_flag指示对提供TargetOlsIdx的值的外部装置的要求。然而,规定对外部装置的此类要求超出视频译码规范的范围,且存在未在HEVC、SVC(或SHVC)以及MVC(或MV-HEVC)中规定的对于外部装置的很多其它类似要求。旧版HEVC解码器可使用旗标以忽略其中此旗标等于0的位流。此外,当VPS中的信息用于会话协商以协定(输出)操作点时,知道哪些(输出)操作点实际上完全可用将是有用的。此类信息原本也可用于位流符合性检查器以仅测试那些完全可用的(输出)操作点(如先前所描述)。然而,用信号发送此类信息的机制在HEVC标准中不可用。

在一些实施例中,解决以上问题的技术可包含从VPS移除vps_base_layer_available_flag,指定用于将保留的vps_base_layer_available_flag或用于其它用途的当前位,以及将补充增强信息(SEI)消息添加到VPS以指示哪些操作点为完全可用的(在此情况下,可确定哪些为不完全可用的)或哪些操作点为不完全可用的(在此情况下,可确定哪些为可用的)。从所添加的SEI消息,可确定基础层是否可用。在其它实施例中,vps_base_layer_available_flag可包含在SEI消息中。在其它实施例中,SEI消息可在位流中或通过外部装置提供,与对于参数集和HRD相关SEI消息的情况下类似。包含在SEI消息中的信息可在位流符合性测试的规范中用以仅测试那些完全可用的(输出)操作点。在其它实施例中,SEI消息可指示哪些操作点为至少部分可用的或哪些操作点为至少部分不可用的。

在进一步实施例中,描述本文中的其它技术和系统。举例来说,HEVC的SVC(或SHVC)和MVC(或MV-HEVC)扩展允许输出层集合包含既不为输出层也不是解码输出层所直接或间接需要的层,且用于符合性定义的参数考虑此类不必要层。为确保发送到解码器的位流是相符的,此类不必要层将需要发送到解码器,这导致很大带宽浪费。在一些实施例中,用以解决此问题的技术包含不允许输出层集合包含既不为输出层集合的输出层也不是解码输出层集合的输出层所直接或间接需要的层。

在一些实施例中,可对HEVC译码标准进行修改。举例来说,可修改HEVC语法以规定general_reserved_zero_44bits中的一位用于vps_base_layer_available_flag的用途,指定用于将保留的vps_base_layer_available_flag或用于其它用途的当前位,以及改变HEVC规范中的general_reserved_zero_44bits的语义以需要解码器在general_reserved_zero_44bits不等于0时忽略经译码视频序列。

本文中所论述的译码技术可以在实例视频编码和解码系统(例如,系统100)中实施。系统包含提供待在稍后时间由目的地装置解码的经编码视频数据的源装置。特定来说,源装置经由计算机可读媒体将视频数据提供到目的地装置。源装置和目的地装置可包括各种各样裝置中的任一个,包含桌上型计算机、笔记本型(即,膝上型)计算机、平板计算机、机顶盒、电话手持机(例如所谓的“智能”电话)、所谓的“智能”板、电视机、相机、显示装置、数字媒体播放器、视频游戏控制台、视频流式传输装置或类似者。在一些情况下,源装置和目的地装置可经装备以用于无线通信。

目的地装置可经由计算机可读媒体接收待解码的经编码视频数据。计算机可读媒体可包括能够将经编码视频数据从源装置移动到目的地装置的任何类型的媒体或装置。在一个实例中,计算机可读媒体可包括使源装置能够实时将经编码视频数据直接传输到目的地装置的通信媒体。经编码视频数据可根据通信标准(例如,无线通信协议)调制,且传输到目的地装置。通信媒体可以包括任何无线或有线通信媒体,例如射频(RF)频谱或一或多个物理发射线。通信媒体可形成分组网络(例如,局域网、广域网或全球网络,例如因特网)的一部分。通信媒体可包含可用于促进从源装置到目的地装置的通信的路由器、交换机、基站或任何其它设备。

在一些实例中,经编码数据可从输出接口输出到存储装置。类似地,经编码数据可通过输入接口从存储装置存取。存储装置可包含多种分布式或本地存取的数据存储媒体中的任一个,例如硬盘驱动器、蓝光光盘、DVD、CD-ROM、快闪存储器、易失性或非易失性存储器,或任何其它用于存储经编码视频数据的合适数字存储媒体。在另一实例中,存储装置可对应于文件服务器或可存储由源装置产生的经编码视频的另一中间存储装置。目的地装置可经由流式传输或下载从存储装置存取所存储的视频数据。文件服务器可为能够存储经编码视频数据和将所述经编码视频数据传输到目的地装置的任何类型的服务器。实例文件服务器包含网络服务器(例如,用于网站)、FTP服务器、网络附接式存储(NAS)装置或本地磁盘驱动器。目的地装置可通过任何标准数据连接(包含因特网连接)来存取经编码视频数据。此可包含无线信道(例如,Wi-Fi连接)、有线连接(例如,DSL、电缆调制解调器等),或适合于存取存储在文件服务器上的经编码视频数据的两者的组合。经编码视频数据从存储装置的传输可为流式传输、下载传输或其组合。

本发明的技术未必限于无线应用或设定。所述技术可适用于支持多种多媒体应用中的任一个的视频译码,所述多媒体应用例如空中协议电视广播、有线电视传输、卫星电视传输、因特网流式视频传输(例如经由HTTP的动态自适应流式传输(DASH))、经编码到数据存储媒体上的数字视频,存储在数据存储媒体上的数字视频的解码,或其它应用。在一些实例中,系统可经配置以支持单向或双向视频传输,以支持例如视频流式传输、视频重放、视频广播和/或视频电话等应用。

在一个实例中,源装置包含视频源、视频编码器和输出接口。目的地装置可包含输入接口、视频解码器和显示装置。源装置的视频编码器可经配置以应用本文所揭示的技术。在其它实例中,源装置和目的地装置可包含其它组件或布置。举例来说,源装置可从外部视频源(例如,外部摄像机)接收视频数据。同样,目的地装置可与外部显示装置介接,而非包含集成显示装置。

以上实例系统仅为一个实例。用于并行处理视频数据的技术可由任何数字视频编码和/或解码装置来执行。尽管本发明的技术一般通过视频编码装置来执行,但是所述技术还可通过视频编码器/解码器(通常被称作“编解码器”)来执行。此外,本发明的技术还可由视频预处理器执行。源装置和目的地装置仅为源装置在其中产生经译码视频数据以供传输到目的地装置的此类译码装置的实例。在一些实例中,源装置和目的地装置可以基本上对称的方式操作以使得所述装置中的每一个包含视频编码和解码组件。因此,实例系统可支持视频装置之间的单向或双向视频传输,例如用于视频流式传输、视频重放、视频广播或视频电话。

视频源可包含视频俘获装置,例如摄像机、含有先前所俘获视频的视频存档及/或用以从视频内容提供者接收视频的视频馈入接口。作为又一替代方案,视频源可产生基于计算机图形的数据作为源视频,或实况视频、存档视频与计算机产生的视频的组合。在一些情况下,如果视频源为摄像机,那么源装置和目的地装置可形成所谓的相机电话或视频电话。然而,如上文所提及,本发明中所描述的技术可大体上适用于视频译码,且可应用于无线和/或有线应用。在每一情况下,可由视频编码器编码所俘获、预先俘获或计算机产生的视频。经编码视频信息接着可由输出接口输出到计算机可读媒体上。

如所提到,计算机可读媒体可包含暂时性媒体,例如无线广播或有线网络传输,或存储媒体(即,非暂时性存储媒体),例如硬盘、快闪驱动器、压缩光盘、数字视频光盘、蓝光光盘,或其它计算机可读媒体。在一些实例中,网络服务器(未示出)可从源装置接收经编码视频数据,且(例如)经由网络传输将经编码视频数据提供到目的地装置。类似地,媒体生产设施(例如,光盘冲压设施)的计算装置可从源装置接收经编码视频数据且生产含有经编码视频数据的光盘。因此,在各种实例中,计算机可读媒体可理解为包含各种形式的一或多个计算机可读媒体。

目的地装置的输入接口从计算机可读媒体接收信息。计算机可读媒体的信息可包含由视频编码器定义的也供视频解码器使用的语法信息,所述语法信息包含描述块和其它经译码单元(例如,图片群组(GOP))的特性和/或处理的语法元素。显示装置向用户显示经解码视频数据,且可包括多种显示装置中的任一个,例如阴极射线管(CRT)、液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器或另一类型的显示装置。已描述本发明的各种实施例。

在图9和图10中分别展示编码装置104和解码装置112的具体细节。图9是说明可实施本发明中描述的技术中的一或多个的实例编码装置104的框图。举例来说,编码装置104可以产生本文中描述的语法结构(例如,VPS、SPS、PPS的语法结构,或其它语法元素)。编码装置104可以在视频切片内执行视频块的帧内预测和帧间预测译码。如先前描述,帧内译码至少部分依赖于空间预测来减少或去除给定视频帧或图片内的空间冗余。帧间译码至少部分依赖于时间预测来减少或去除视频序列的邻近或周围帧内的时间冗余。帧内模式(I模式)可指若干基于空间的压缩模式中的任一个。例如单向预测(P模式)或双向预测(B模式)的帧间模式可指代若干基于时间的压缩模式中的任一个。

编码装置104包含分割单元35、预测处理单元41、滤波器单元63、图片存储器64、求和器50、变换处理单元52、量化单元54以及熵编码单元56。预测处理单元41包含运动估计单元42、运动补偿单元44和帧内预测处理单元46。对于视频块重构,编码装置104还包含逆量化单元58、逆变换处理单元60以及求和器62。滤波器单元63意在表示一或多个环路滤波器,例如解块滤波器、自适应环路滤波器(ALF)以及样本自适应偏移(SAO)滤波器。尽管在图9中将滤波器单元63展示为环路内滤波器,但在其它配置中,可将滤波器单元63实施为环路后滤波器。后处理装置57可对由编码装置104产生的经编码视频数据执行额外处理。本发明的技术在一些情况下可以通过编码装置104实施。然而,在其它情况下,本发明的技术中的一或多个可以通过后处理装置57实施。

如图9中所示,编码装置104接收视频数据,且分割单元35将所述数据分割成视频块。所述分割还可包含分隔成切片、切片段、图块或其它较大单元,以及例如根据LCU和CU的四叉树结构的视频块分割。编码装置104大体上说明编码视频切片内的待编码的视频块的组件。所述切片可以分成多个视频块(并且可能分成被称作图块的视频块的集合)。预测处理单元41可以选择多个可能的译码模式中的一个,例如多个帧内预测译码模式中的一个或多个帧间预测译码模式中的一个,以用于基于错误结果的当前视频块(例如,译码速率和失真的层级,或类似者)。预测处理单元41可将所得的经帧内或帧间译码块提供到求和器50以产生残余块数据,并提供到求和器62以重构经编码块以用作参考图片。

预测处理单元41内的帧内预测处理单元46可相对于与待译码的当前块在相同帧或切片中的一或多个相邻块执行当前视频块的帧内预测译码,以提供空间压缩。预测处理单元41内的运动估计单元42和运动补偿单元44相对于一或多个参考图片中的一或多个预测性块执行当前视频块的帧间预测性译码,以提供时间压缩。

运动估计单元42可经配置以根据用于视频序列的预定模式来确定用于视频切片的帧间预测模式。预定模式可将序列中的视频切片指定为P切片、B切片或GPB切片。运动估计单元42和运动补偿单元44可高度集成,但出于概念性目的分别加以说明。运动估计单元42执行的运动估计是产生运动向量的过程,所述过程估计视频块的运动。运动向量例如可指示当前视频帧或图片内的视频块的预测单元(PU)相对于参考图片内的预测性块的位移。

预测块是被发现在像素差方面与待译码视频块的PU紧密匹配的块,所述像素差可通过绝对差总和(SAD)、平方差总和(SSD)或其它差度量来确定。在一些实例中,编码装置104可计算存储在图片存储器64中的参考图片的子整数像素位置的值。举例来说,编码装置104可内插四分之一像素位置、八分之一像素位置或参考图片的其它分数像素位置的值。因此,运动估计单元42可相对于全像素位置和分数像素位置执行运动搜索并且输出具有分数像素精确度的运动向量。

运动估计单元42通过比较PU的位置与参考图片的预测性块的位置来计算用于经帧间译码切片中的视频块的PU的运动向量。参考图片可以选自第一参考图片列表(列表0)或第二参考图片列表(列表1),其中的每一个标识存储在参考帧存储器64中的一或多个参考图片。运动估计单元42向熵编码单元56和运动补偿单元44发送计算出的运动向量。

通过运动补偿单元44执行的运动补偿可以涉及基于通过运动估计(可能执行对子像素精确度的内插)确定的运动向量获取或产生预测性块。在接收到当前视频块的PU的运动向量后,运动补偿单元44即刻可以在参考图片列表中定位所述运动向量指向的预测性块。编码装置104通过从正被译码的当前视频块的像素值减去预测性块的像素值从而形成像素差值来形成残余视频块。像素差值形成用于所述块的残余数据,且可包含明度及色度差分量两者。求和器50表示执行此减法运算的一或多个组件。运动补偿单元44还可产生与视频块和视频切片相关联的语法元素以供解码装置112在对视频切片的视频块进行解码时使用。

作为如上文所描述由运动估计单元42和运动补偿单元44执行的帧间预测的替代方案,帧内预测处理单元46可以对当前块进行帧内预测。特定来说,帧内预测处理单元46可确定用以对当前块进行编码的帧内预测模式。在一些实例中,帧内预测处理单元46可(例如)在单独的编码遍次期间使用各种帧内预测模式对当前块进行编码,且帧内预测处理单元46可从经测试模式中选择使用适当的帧内预测模式。举例来说,帧内预测处理单元46可使用速率-失真分析计算各种经测试帧内预测模式的速率-失真值,并在所述经测试模式当中选择具有最佳速率-失真特性的帧内预测模式。速率-失真分析通常确定经编码块与经编码以产生所述经编码块的原始的未经编码块之间的失真(或误差)的量,以及用于产生经编码块的位率(也就是说,位数)。帧内预测处理单元46可根据用于各种经编码块的失真和速率来计算比率,以确定哪个帧内预测模式对于所述块展现最佳速率失真值。

在任何情况下,在选择了用于块的帧内预测模式之后,帧内预测处理单元46可以将指示用于所述块的选定帧内预测模式的信息提供到熵编码单元56。熵编码单元56可对指示选定帧内预测模式的信息进行编码。编码装置104可以在所传输的位流中包含用于各种块的编码上下文的配置数据定义以及最可能帧内预测模式的指示、帧内预测模式索引表和经修改帧内预测模式索引表以供每种上下文使用。位流配置数据可包含多个帧内预测模式索引表和多个经修改帧内预测模式索引表(也被称作码字映射表)。

在预测处理单元41经由帧间预测或帧内预测产生用于当前视频块的预测性块之后,编码装置104通过从当前视频块减去预测性块来形成残余视频块。残余块中的残余视频数据可包含在一或多个TU中并应用于变换处理单元52。变换处理单元52使用例如离散余弦变换(DCT)或概念上类似的变换的变换来将残余视频数据变换成残余变换系数。变换处理单元52可将残余视频数据从像素域转换到变换域,例如频域。

变换处理单元52可将所得的变换系数发送到量化单元54。量化单元54可量化所述变换系数以进一步减小位率。量化过程可以减少与系数中的一些或全部相关联的位深度。可通过调整量化参数来修改量化的程度。在一些实例中,量化单元54接着可执行对包含经量化变换系数的矩阵的扫描。替代地,熵编码单元56可执行扫描。

在量化之后,熵编码单元56对经量化变换系数进行熵编码。举例来说,熵编码单元56可执行上下文自适应可变长度译码(CAVLC)、上下文自适应二进制算术译码(CABAC)、基于语法的上下文自适应二进制算术译码(SBAC)、概率区间分割熵(PIPE)译码或另一熵编码技术。在熵编码单元56进行的熵编码之后,可将经编码位流传输到解码装置112,或将经编码位流存档以供稍后传输或由解码装置112检索。熵编码单元56还可对正被译码的当前视频切片的运动向量和其它语法元素进行熵编码。

逆量化单元58和逆变换处理单元60分别应用逆量化和逆变换以在像素域中重构残余块以供稍后用作参考图片的参考块。运动补偿单元44可通过将残余块添加到参考图片列表内的参考图片中的一个的预测性块来计算参考块。运动补偿单元44还可将一或多个内插滤波器应用于所重构的残余块以计算子整数像素值以用于运动估计。求和器62将经重构残余块加到由运动补偿单元44产生的经运动补偿的预测块以产生参考块以用于存储在图片存储器64中。参考块可由运动估计单元42和运动补偿单元44使用作为用以对后续视频帧或图片中的块进行帧间预测的参考块。

以此方式,图9的编码装置104表示经配置以产生用于经编码视频位流的语法的视频编码器的实例。举例来说,如上文所描述,编码装置104可产生VPS、SPS和PPS参数集。编码装置104可以执行本文中描述的任何技术,包含上文关于图4、6和8所述的过程。已关于编码装置104总体上描述了本发明的技术,但是如上文所提及,本发明的技术中的一些也可以通过后处理装置57实施。

图10是说明实例解码装置112的框图。解码装置112包含熵解码单元80、预测处理单元81、逆量化单元86、逆变换处理单元88、求和器90、滤波器单元91和图片存储器92。预测处理单元81包含运动补偿单元82和帧内预测处理单元84。在一些实例中,解码装置112可执行与关于图9的编码装置104描述的编码遍次大体上互逆的解码遍次。

在解码过程期间,解码装置112接收表示经编码视频切片的视频块和由编码装置104发送的相关联语法元素的经编码视频位流。在一些实施例中,解码装置112可以从编码装置104接收经编码视频位流。在一些实施例中,解码装置112可从网络实体79(例如,服务器、媒体感知网络元件(MANE)、视频编辑器/剪接器,或经配置以实施上文所描述的技术中的一或多个的其它此类装置)接收经编码视频位流。网络实体79可包含或可不包含编码装置104。本发明中描述的技术中的一些可以在网络实体79将经编码视频位流传输到解码装置112之前由网络实体79实施。在一些视频解码系统中,网络实体79和解码装置112可为单独的装置的部分,而在其它情况下,关于网络实体79描述的功能性可由包括解码装置112的相同装置执行。

解码装置112的熵解码单元80对位流进行熵解码以产生经量化系数、运动向量和其它语法元素。熵解码单元80将运动向量和其它语法元素转发到预测处理单元81。解码装置112可接收视频切片层级和/或视频块层级的语法元素。熵解码单元80可以处理和解析在例如VPS、SPS和PPS中的一或多个参数集中的固定长度语法元素和可变长度语法元素两者。

当视频切片经译码为经帧内译码(I)切片时,预测处理单元81的帧内预测处理单元84可基于用信号发送的帧内预测模式和来自当前帧或图片的先前经解码块的数据产生用于当前视频切片的视频块的预测数据。当视频帧经译码为经帧间译码(即,B、P或GPB)切片时,预测处理单元81的运动补偿单元82基于从熵解码单元80接收的运动向量和其它语法元素而产生当前视频切片的视频块的预测性块。可从参考图片列表内的参考图片中的一个产生预测性块。解码装置112可基于存储在图片存储器92中的参考图片使用默认建构技术建构参考帧列表,即列表0和列表1。

运动补偿单元82通过解析运动向量和其它语法元素确定用于当前视频切片的视频块的预测信息,并且使用所述预测信息产生用于正被解码的当前视频块的预测性块。举例来说,运动补偿单元82可使用参数集中的一或多个语法元素确定用于对视频切片的视频块进行译码的预测模式(例如,帧内预测或帧间预测)、帧间预测切片类型(例如,B切片、P切片或GPB切片)、用于切片的一或多个参考图片列表的建构信息、切片的每一经帧间编码的视频块的运动向量、切片的每一经帧间译码视频块的帧间预测状态,以及用于对当前视频切片中的视频块进行解码的其它信息。

运动补偿单元82还可基于内插滤波器执行内插。运动补偿单元82可使用如由编码装置104在视频块的编码期间所使用的内插滤波器来计算参考块的子整数像素的内插值。在此情况下,运动补偿单元82可从所接收的语法元素确定编码装置104所使用的内插滤波器,且可使用所述内插滤波器来产生预测性块。

逆量化单元86对在位流中提供且由熵解码单元80解码的经量化变换系数进行逆量化或解量化。逆量化过程可包含使用针对视频切片中的每一视频块由编码装置104计算的量化参数,以确定应施加的量化程度以及同样地逆量化程度。逆变换处理单元88将逆变换(例如,逆DCT或其它合适的逆变换)、逆整数变换或概念上类似的逆变换过程应用到所述变换系数,以便产生像素域中的残余块。

在运动补偿单元82基于运动向量和其它语法元素产生用于当前视频块的预测性块之后,解码装置112通过将来自逆变换处理单元88的残余块与由运动补偿单元82产生的对应预测性块求和来形成经解码视频块。求和器90表示执行此求和操作的一或多个组件。在需要时,还可使用环路滤波器(在译码环路中或在译码环路之后)来使像素转变变平滑或者以其它方式改善视频质量。滤波器单元91既定表示一或多个环路滤波器,例如解块滤波器、自适应环路滤波器(ALF)和样本自适应偏移(SAO)滤波器。尽管在图10中将滤波器单元91展示为环内滤波器,但在其它配置中,可将滤波器单元91实施为环路后滤波器。接着将给定帧或图片中的经解码视频块存储在图片存储器92中,所述图片存储器存储用于后续运动补偿的参考图片。图片存储器92还存储经解码视频以供稍后在显示装置(例如,图1中展示的视频目的地装置122)上呈现。

在以上描述中,参考具体实施例描述应用的方面,但是所属领域的技术人员将认识到本发明不限于此。因此,虽然已经在本文中详细地描述了应用的说明性实施例,但是应理解,本发明概念可以其它方式不同地实施和采用,并且除了现有技术所限制的之外,所附权利要求书意图解释为包含此类变化。上文描述的本发明的各种特征和方面可以单独或联合使用。此外,实施例可以在本文中描述的那些环境和应用之外的任何数目的环境和应用中使用而不脱离本说明书的广泛的精神和范围。应将本说明书和图式相应地视为说明性的而非限制性的。出于说明的目的,方法是以特定次序描述的。应了解,在替代实施例中,方法可以与所描述的次序不同的次序执行。

在组件被描述为“经配置以”执行特定操作的情况下,可例如通过设计电子电路或其它硬件以执行所述操作、通过编程可编程电子电路(例如,微处理器或其它适合电子电路)以执行所述操作或其任何组合来实现此类配置。

结合本文中所揭示的实施例描述的各种说明性逻辑块、模块、电路和算法步骤可实施为电子硬件、计算机软件、固件或其组合。为清晰地说明硬件与软件的此可互换性,上文已大体就其功能性描述了各种说明性组件、块、模块、电路和步骤。此功能性是实施为硬件还是软件取决于特定应用及施加于整个系统的设计约束。熟练的技术人员可针对每一特定应用以不同方式来实施所描述的功能性,但此类实施方案决策不应被解释为会引起脱离本发明的范围。

本文中描述的技术也可以在电子硬件、计算机软件、固件或其任何组合中实施。此类技术可实施于多种装置中的任一个中,所述装置例如通用计算机、无线通信装置手持机,或具有包含在无线通信装置手持机和其它装置中的应用的多种用途的集成电路装置。被描述为模块或组件的任何特征可一起实施于集成逻辑装置中或分开来实施为离散但可互操作的逻辑装置。如果在软件中实施,那么所述技术可至少部分地由包括程序代码的计算机可读数据存储媒体来实现,所述程序代码包括在被执行时执行上文所描述的方法中的一或多个的指令。计算机可读数据存储媒体可形成计算机程序产品的一部分,所述计算机程序产品可包含封装材料。计算机可读媒体可包括存储器或数据存储媒体,例如随机存取存储器(RAM)(例如,同步动态随机存取存储器(SDRAM))、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、闪存器、磁性或光学数据存储媒体等等。另外或作为替代,所述技术可至少部分地由计算机可读通信媒体来实现,所述计算机可读通信媒体以指令或数据结构的形式载运或传达程序代码且可由计算机存取、读取和/或执行(例如,传播的信号或波)。

程序代码可由处理器执行,所述处理器可包含一或多个处理器,例如一或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效集成或离散逻辑电路。此处理器可经配置以执行本发明中所描述的技术中的任一个。通用处理器可为微处理器;但在替代方案中,处理器可为任何常规处理器、控制器、微控制器或状态机。处理器还可实施为计算装置的组合,例如DSP与微处理器的组合、多个微处理器、一或多个微处理器结合DSP核心,或任何其它此类配置。因此,如本文中所使用的术语“处理器”可指前述结构中的任一个、前述结构的任何组合,或适合于实施本文中所描述的技术的任何其它结构或设备。另外,在一些方面,可将本文中所描述的功能性提供于经配置以用于编码和解码的专用软件模块或硬件模块内或并入于组合的视频编码器-解码器(编解码器)中。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1