《信息技术 先进音视频编码 第1部分:系统 GB/T 20090.1-2012》

《信息技术 先进音视频编码 第1部分:系统 GB/T 20090.1-2012》
仅供个人学习
反馈
标准编号:
文件类型:
资源大小:
标准类别:国家规范
资源ID:3695
免费资源

标准规范下载简介

在线阅读

中华人民共和国国家标准

信息技术 先进音视频编码 第1部分:系统


Information technology-Advanced coding of audio and video-Part 1:System
GB/T 20090.1-2012

发布日期:2012年12月31日
实施日期:2013年6月1日

中华人民共和国国家质量监督检验检疫总局
         中国国家标准化管理委员会                  发布

引言


0.1 综述
    GB/T 20090的本部分论述了如何将一路或多路音频、视频位流或其他基本数据流合成单路或多路复用流,用于存储和传送。系统编码遵循本部分指定的语法和语义规则,并提供了使解码器缓冲区能在一定范围的补偿和接收条件下进行同步解码的信息。
    系统编码包含两种形式:传输流和节目流,分别针对不同的应用加以优化。本部分中定义的传输流和节目流提供了编码语法,该语法对于同步解码及展现音频、视频信息是充分且必要的,同时保证了解码器中数据缓冲区不发生上溢和下溢。该语法中应至少包含以下两种信息之一:
    a) 有关展现编码的音频和视频数据的相对时间戳,以及有关数据流本身传送的比特率信息;
    b) 有关解码和展现编码的音频和视频数据的时间戳,以及有关数据流本身传送的时间戳信息。传输流和节目流都是面向分组包的多路复用流。
    单一音频和视频基本流的多路复用过程见图1。视频和音频数据可按包括GB/T 20090.2和GB/T 20090.3等部分进行编码,之后,压缩数据被打包以形成PES分组包。在形成PES分组包的过程中,当独立使用传输流或节目流的PES分组包时可能会加入所需的描述信息;而PES分组包需要进一步与系统层信息结合形成传输流或节目流时,不包含这一信息。本部分覆盖了图1中竖直虚线右边所示的处理过程。


4865127_c8bb7bfe7d38426d9b7bbb053a332aa2.jpg


图1 多路复用过程简图


    本部分定义的节目流是由具有共同时间基准的一个或多个PES分组包合并而成的单一流。有些应用中要求包含单个节目的基本流是未多路复用的分离流。对这些应用,基本流也可作为分离的节目流编码。每一基本流含一个节目流且具有共同时间基准。在这种情况下,不同流中SCR字段的编码值应一致。
    所有的基本流和单一节目流都可被同步解码。
    节目流被设计用于相对无差错环境中,且适用于诸如交互式多媒体等应用。节目流分组包长度可变。
    传输流是由一个或多个节目组成的单一流,且这些节目可包含一个或多个不同时钟基准。由同一个节目中的多个基本流所组成的多个PES分组包共享一个时钟基准。传输流是为用于可能出现差错的有损或有噪媒体中的存储或传输环境而设计的。传输流分组包长度为188字节。
    节目流和传输流是为不同应用设计的,它们的定义并不严格遵守分层模型,彼此之间可相互转换,但并不互为子集或超集。可以从一个传输流中抽取一个节目的内容并创建一个有效的节目流。该转换可利用PES分组包的公共互换格式完成,但并非节目流需要的所有字段都包含在传输流中,有一些需要导出。而在分层模型中,传输流可能横跨多个层,并易于在宽带应用中实现。
    本部分描述的语法规则和语义规则的范围是不同的:语法规则仅用于系统层编码,并不延伸到GB/T 20090.2和GB/T 20090.3中所描述的压缩层编码,而语义规则适用于复用流。
    本部分未规定编码器或解码器的体系结构或实现方法,也未对多路复用器或解复用器作相应的规定。然而,位流的性质对编码器、解码器、多路复用器和解复用器提出了功能和性能上的要求,如编码器应满足最小的时钟容差要求,但这些要求并不妨碍编码器、解码器、多路复用器和解复用器的设计与实现的灵活性。

0.2 传输流
    传输流是针对在那些可能会出现显著错误(往往表现为位差错或分组包丢失)的环境中进行节目传送和存储而定义的一种流。这些节目包含按照GB/T 20090.2和GB/T 20090.3等部分定义的编码数据以及其他数据。
    传输流的速率可以是恒定或可变的。在任何情况下,所包含的基本流的速率也可以是恒定或可变的。在每一种情况下,流的语法或语义限制是相同的,传输流速率由传输率(transport_rate)字段的值定义,这些传输率字段嵌入在每个流中。
    一个包含多个具有独立时间基准的节目传输流会造成总体比特率可变,这会给构造和传送这样的位流带来一定困难,见6.2.2。
    只要能够生成一个有效的流,包含一个或多个节目的传输流可以从基本编码数据流、节目流或其他可能包含一个或多个节目的传输流构造生成。
    传输流是按照在最小开销的情况下能对传输流执行某些操作的原则而设计的。这些操作包括:
    a) 从传输流的一个节目中获得编码数据、解码并展现,如图2所示;
    b) 从传输流的一个节目中抽取传输流分组包并生成一个仅包含该节目的新的传输流作为输出,如图3所示;
    c) 从一个或多个传输流中抽取一个或多个节目的传输流分组包并生成一个新的传输流;
    d) 从传输流中抽取一个节目内容并生成包含该节目的一个节目流,如图4所示;
    e) 把一个节目流转化为传输流,并在有损环境中传输。然后再重建一个有效的、在某些情况下完全相同的节目流。
    图2和图3描述了以一个传输流作为输入的解复用及解码系统原型。图2说明了第一种情况,即一个传输流被直接解复用和解码。传输流构造分为两层:系统层和压缩层。
    传输流解码器的输入流由一个包含压缩层的系统层组成。音频解码器及视频解码器的输入流只包含压缩层。
    接收传输流的解码器原型的操作既适用于整个传输流(复用流操作),也适用于单个基本流(特定流操作)。传输流系统层被分为两个子层,一个用于复用流操作(传输流分组包),另一个用于特定流操作(PES分组包层)。
    图2也给出了一个包括视频和音频的传输流解码器原型以说明解码器的功能,其结构并不是唯一的,但该图有助于理解。解码器时间控制等系统解码器功能可能被等价地实现在基本流解码器或信道特定解码器中。类似地,信道专用解码器测出的错误也可以用多种途径通知独立的音频和视频解码器。这些通信途径并未显示在图中,该解码器原型的设计并不意味着对传输流解码器的设计作出任何必达的要求。实际上,非音视频数据也是允许的,但并未在图2中画出。


4865128_9c783419361e403f8380c443ff1b7e1e.jpg


图2 传输流解复用和解码原型示例



    图3说明了另一种情况,即一个包含多个节目的传输流被转变为一个只含单个节目的传输流,这种情况下的再复用操作可能需要纠正transport_rate值以补偿位流中传输率的变化。



4865129_06883e0b03ec4a89b619000553f791d3.jpg


图3 传输多路复用原型示例




    图4说明了一个多节目传输流先被解复用再转变为节目流的情况。



4865130_c8f592f14e7f4dd6a08ff14a1cd62963.jpg


图4 传输流到节目流转换原型示例




    图3和图4指出,不同类型、不同构造的传输流之间的转换是可能且合理的。在传输流和节目流的语法中都定义了一些特定字段以方便上述转换过程,但并不要求解复用器或解码器的具体实现要包含以上所有功能。

0.3 节目流
    节目流是针对在那些出错率很低,且系统编码的处理过程作为主要考虑因素的环境中进行一个节目的传送和存储而定义的一种流,该节目流包含编码数据和其他数据。
    节目流的速率可以是恒定的或可变的。在任何情况下,所包含的基本流的速率也是恒定或可变的。在每一种情况下,节目流的语法或语义限制是相同的。节目流速率是由系统时钟参考(SCR)字段与mux_rate字段的值和位置所决定的。
    图5描述了一个音视频节目流解码系统原型。该图用于帮助理解,其结构并不是唯一的——包括解码器时间控制在内的系统解码器功能可能被等价地实现在基本流解码器或信道特定解码器中。该解码器原型的设计并不意味着对节目流解码器的设计作出任何必达的要求。实际上,非音视频数据也是允许的。
    图5所示的节目流解码器原型是由系统、视频和音频解码器三部分组成,它们分别符合GB/T 20090.1、GB/T 20090.2和GB/T 20090.3。在该解码器中,单路或多路音视频位流的复用编码表示假定以某种特定信道格式在特定信道中存储或传输。特定信道格式本部分不作规定,特定信道解码也不是本解码器原型的一部分。



4865131_c5d76acda5bb4d5a92f34fac6db2918f.jpg


图5 节目流解码器原型




    上述原型解码器接受节目流作为输入,并依靠节目流解码器从流中提取信息。节目流解码器分离复用流,并将由此产生的基本流作为音频和视频解码器的输入。音频和视频解码器的输出是已解码的音频和视频信号。节目流解码器、音频和视频解码器以及信道专用解码器之间的定时信息流应包含在设计中,但并未在图5中画出。利用定时信息,音频和视频解码器相互之间及与信道之间可以实现同步。
    节目流构造分为两层:系统层和压缩层。节目流解码器的输入流由一个包含压缩层的系统层组成。音频解码器及视频解码器的输入流只包含压缩层。
    解码器原型的操作既适用于整个节目流(复用流操作)。也适用于单个基本流(特定流操作)。节目流系统层被分为两个子层,一个用于复用流操作(节目流分组包层),另一个用于特定流操作(PES分组包层)。

0.4 传输流与节目流的转换
    利用PES分组包,传输流与节目流之间的转换是可能且合理的,这是由包含在本部分的6.1和7.1中的传输流和节目流规范得出的。在某些限制下,PES分组包可能直接从一个复用位流的有效数据对应到另一个复用位流的有效数据。如果在所有PES分组包中都有program_packet_sequence_counter,就可能标识出PES分组包的正确次序以帮助实现这一功能。
    在这两种流中,有关转换所需的其他信息包括基本流之间的关系以表和包头的形式出现。在任何流中这些数据如果出现,转换前后都应是正确的。

0.5 PES流
    正如6.3.6中的语法定义所指出,传输流和节目流是从PES分组包中逻辑地建立的。PES分组包被用于传输流与节目流之间的转换。在有些场合进行这种转换时,无需变动PES分组包。PES分组包的长度可能比传输流分组包的长度大得多。
    包含相同stream_id和基本流的一系列连续的PES分组包构成一个PES流。当PES流分组包用于形成PES流时,应在6.3.8中所定义的限制下,带有基本流时钟参考(ESCR)字段和基本流速率(ES_Rate)字段。PES流数据应是来自基本流且保持原次序的连续字节。PES流中不包含某些出现在节目流和传输流中的系统信息,包括在包头、系统头、节目流映射、节目流目录、节目映射表中出现的信息以及在传输流分组包语法中定义的元素。
    本部分的PES流未定义用于相互交换和交互操作。单个基本流也可打包成传输流或节目流,但应包含必要的系统信息。具有单个基本流的多个传输流或节目流可被构造成具有相同的时间基准以传送一个完整的音视频节目。

0.6 定时模型
    系统、视频和音频都有一个定时模型,其中从编码器的信号输入到解码器的信号输出之间的端到端延迟是恒定的,该延迟是编码、编码器缓冲、多路复用、传送或存储、解复用、解码器缓冲和展现过程中所有延迟的总和。作为该定时模型的一部分,所有视频图像和音频采样仅展现一次(除非经过特殊编码),且解码器中的视频帧率和音频采样速率与在编码器中保持一致。系统流编码包括了定时信息,以用于实现端到端延迟恒定的系统。实现不严格遵守该模型的解码器也是可能的。但此时的解码器需要负责以一种可接受方式完成以上要求。
    所有定时是由一个公共时钟来定义的,这个公共时钟被称为系统时钟。在节目流中,该时钟与视频或音频采样时钟之间可以有确定的比值,也可以有一个与比值略有偏差的工作频率,但仍提供精确的端到端定时和时钟补偿。
    在传输流中,为了简化解码器中的采样速率恢复,系统时钟被限制为在任何时刻均与音频和视频采样时钟保持确定比值。

0.7 条件接收
    本部分未规定条件接收机制,但AVS位流支持对节目流和传输流中的节目进行条件接收。

0.8 复用流操作
    复用流操作包括协调信道数据的获取、时钟的调整以及缓冲区的管理。这些操作是紧密相连的。当信道数据传输速率是可控时,可通过调节数据传输速率使解码缓冲区不发生上溢或下溢。否则,基本流解码器的定时应服从信道中接收的数据,以避免上溢或下溢。
    节目流由节目流分组包组成,其包头有助于以上任务的完成。包头指定了从信道中送来的每一字节进入节目流解码器的预定时间,这个预定到达时刻表作为时钟校正和缓冲区管理的参考。当解码器不能严格遵守该时刻表时,应对有关偏差作出相应补偿。
    类似地,传输流由传输流分组包构成。分组包头指定从信道中送来的每一字节进入传输流解码器的预定时间。该时刻表提供了与上述节目流中完全相同的功能。
    另一个复用流操作是确定解码器解码传输流或节目流时所需的资源。每个节目流的第一个包均包含一些参数,来协助解码器完成此功能,其中包括流的最大数据速率以及同步视频信道的最大数目。传输流也包含类似的全局适用的信息。
    每个传输流和节目流都包含一些信息,以标识组成一个节目的各基本流的相关特征以及基本流之间的相互关系。这些信息可包括声道中所使用的语言,以及在实现多层视频编码时各层之间的关系。

0.9 单个流操作(PES分组包层)
    基本的PES流的操作为:
    a) 解复用;
    b) 多个基本流的同步回放。

0.9.1 解复用
    编码时,节目流由基本流复用而成,而传输流则由基本流、节目流或其他传输流的内容复用而成。基本流除了音频和视频位流外,还可包括私有、保留和补充位流。基本流被临时性地分割为PES分组包,分组包被串行化。一个PES分组包仅包含来自一个基本流的编码字节。
    节目流中的分组包长度可以是固定的或可变的,但分组包长度应遵守8.1和8.2中的规定。传输流分组包长度是188字节,PES分组包的长度可以是固定的或可变的,在大多数的应用中相对较长。解码时需要对复用的节目流或传输流解复用,以重建基本流。这可以借助节目流分组包头中的stream_id和传输流分组包头中的PEID来完成。

0.9.2 多个基本流的同步回放
    多个基本流之间的同步通过节目流或传输流中的相对显示时间(relative_display_time)来完成。时间戳通常以90kHz时钟周期为单位。多个基本流解码的同步是通过调整每个流的解码至一个公共主控时钟基准,而不是通过调整一个流的解码以符合另一个流的解码。主控时钟基准可以是多个解码器时钟中的一个,也可以是数据源时钟或某个外部时钟。
    一个传输流可包含多个节目,其中的每一节目都可有自己的时钟基准。一个传输流中不同节目的时钟基准可能不同。
    relative_display_time用于单个基本流解码,它存在于传输流中相应的TS分组包中。编码器在捕获时记录时间戳,将该时间戳减去当前系统时间得到相对显示时间,并连同有关编码数据传输到解码器。解码器通过它们来调度节目展现,以实现端到端的同步。
    一个信道中解码系统的同步是通过使用传输流中的transport_rate来实现的。transport_rate是编码位流自身传输率的采样值。它们来自于同一个时间基准,该时间基准在同一个节目中也用作音频和视频的relative_display_time值的采样。因为每一节目可有自己的时间基准,所以一个包含多个节目的传输流中的每个节目可有独立的transport_rate字段。在某些场合下,节目共享transport_rate字段也是可能的。确定一个节目与哪个transport_rate字段相关联的方法可见6.5节目特定信息(PSI)。
    一个节目有且仅有一个相关的transport_rate基准。在易发生错误的环境中,为了在包丢失情况下仍能正确恢复时钟,传输流分组包中可以包含包计数值packet_count。

0.9.3 与压缩层的关系
    在有些情况下,PES分组包层是独立于压缩层的。考虑到PES分组包的有效负载不需像GB/T 20090.2、GB/T 20090.3所规定的那样以压缩层起始码开头,PES分组包层是独立的。
    示例:视频的起始码可出现在PES分组包有效负载的任何位置,并且可被PES分组包包头所分开。
    然而,在PES分组包包头中编码的时间戳用于决定压缩层结构(即显示单元)的显示时间。此外,当基本流数据符合GB/T 20090.2、GB/T 20090.3时,PES_packet_data_bytes应遵照本部分的字节数进行字节对齐。

0.10 系统参考解码器
    本部分使用了系统目标解码器(STD)来提供定时和缓冲之间关系的形式化表示。对传输流称作传输流系统目标解码器(T-STD),见6.2;对节目流,称作节目流系统目标解码器(P-STD),见7.2。因为STD是依据GB/T 20090中的字段(如缓冲区大小)参数化构造的,所以每一个基本流都有自己的STD参数。编码器产生的位流应符合适当的STD约束。物理解码器可以假定一个AVS位流能在其STD上正确播放。物理解码器应对其与STD在设计上的不同之处作出补偿。

下载地址

©版权声明
相关文章