一种低延迟的实时复用传输流的方法

文档序号:7664389阅读:112来源:国知局
专利名称:一种低延迟的实时复用传输流的方法
技术领域
本发明属于信号处理中的音视频编解码技术领域,尤其涉及一种低延迟的实 时复用传输流的方法。
背景技术
数字音视频编解码标准发展很快,已经成熟应用的有MPEG-2;近年又出现 的一批具有代表性的音视频标准国际标准如MPEG-4、 H.264/MPEG-4 AVC, 以及我国自主制定的标准AVS等。这些标准中都有一个系统部分,称系统层, 该系统层主要规定了如何将单路或多路基本音频和视频流以及其他数据组合成 适合于存储和传输的单路和多路复合流。传输流就是系统层定义的一种数据流, 它将具有一个或者多个不同时钟基准的一个或多个节目组成一个单一流,其速率可以是恒定的也可以是可变的。目前,已经有一些软件能够完成传输流的复用的功能,即可以将单路或多路 基本音频和视频流合成为一个符合系统层规定的传输流语法的码流。但是,由 于视频的ES (Elementary Stream,基本码流)具有多种类型,不同类型帧的码 率大小相差很大,如I帧码率远大于B和P帧码率,而P帧码率又要大于B帧 的码率。因此在将视频ES流复用成为传输流的过程中,如果按最大峰值(I帧 码率)分配带宽,则传输流中多数时间码率小于峰值,导致信道资源的浪费; 而如果以平均码率分配信道带宽,则在复用前需利用緩沖器吸收最大峰值超出 平均值的部分,当多路节目复用时緩冲器的容量必须很大,如图1所示,从而 增加传输延时。而且'峰值码率,即I帧的码率出现的时间-很短,平均码率分配 降低了緩沖器的使用效率。目前也有一些算法解决该问题,例如,帧平移法就 是一种对于含多路节目的传输流复用的简单有效的解决该问题的方法,但是, 帧平移法不能解决单路节目的传输流复用问题
发明内容
本发明所要解决的技术问M提供一种低延迟的实时复用传输流的方法, 该方法不仅可以很好地实现单路节目的传输流复用,而且可降低延时,减小緩 冲区的容量,码率控制精度高。为了解决上述技术问题,本发明采用如下技术手段 一种低延迟的实时复用 传输流的方法,用于将单路或多路基本音频和视频流复合成为传输流,所述方 法通过以下步骤具体实现步骤l、将音频基本数据打包成音频打包基本流PES;将视频基本数据打包 成牙见频打包基本流PES;步骤2、将音频PES打包成音频传输流TS包;将视频PES打包成视频传输 流TS包;步骤3、生成节目特定信息PSI数据;步骤4、判断是否完成一帧视频ES数据和相应的时间的音频ES数据的PES 打包和TS打包,如果已完成,则跳到步骤5;如果尚未完成,则循环步骤1~ 步骤3;步骤5、将音频TS包和视频TS包均匀的放入传输流输出緩冲区中;同时更 新节目时钟参考PCR信息;步骤6、判断当前图像组GOP的视频帧是否复用完毕,如果尚未复用完毕, 则跳到步骤4,继续复用下一帧音频和视频数据;否则继续步骤7;步骤7、当完成一个图像组GOP的视频ES流的复用时,根据传输流的传输 率和该GOP的数据量的大小,在输出緩沖区中填入空包,以输出恒定码率的传 输流;步骤8、判断当前图像的所有图像组GOP是否复用完毕,如果尚未复用完 毕,则跳到步骤6,否则结束。以上步骤1所述的音频PES由音频PES分组包的数据部分和首部组成,数 据部分是根据一帧视频数据所对应的音频数据来分组的,首部包含用于解码器 同步重放的显示时间标签PTS,在实时复用传输流的过程中,所述的PTS是釆 集卡实时采集得到的;步骤1所述的视频PES由视频PES分组包的数据部分和 首部组成,数据部分是每一个I帧、P帧或B帧数据作为一个一见频PES分组包
的数据部分,首部包含用于解码器同步重放的PTS,在实时复用传输流的过程 中,所述的PTS是采集卡实时采集得到的。以上步骤2所述的音频TS包是根据标准中规定的传输流的TS包的语法格 式,按照PES包的数据顺序写入的;步骤2所述的视频TS包将PCR信息包含 在预留的含有视频帧帧头的TS包中。以上步骤3所述的PSI信息通过以下方法生成(1 )根据给定的TS中的节 目号和节目映射表PMT表的节目标识PID生成节目关联束PAT表;(2 )根据给 定的每路节目的视频TS包的PID、音频TS包的PID和含有PCR信息的TS包 的PID生成PMT表。在步骤5中,在将视频TS包写入输出緩冲区时,根据该携带PCR信息的包 在整个传输流中的位置重新计算PCR,并写入预留位置。进一步的,所述PCR的计算方法如下Timestampll = (nOutTsBufyacketnum*188*8)/( nTransB画OO) PCR = timestampll * 90.0 其中,nOutTsBufyacketnum表示已经输出的TS包的个数,nTransBit表示该传 输流的传输率。以上步骤7所述空包的填入数量Npadding计算如下 Packet—salframe = (nTransBit/ (188* 1000*8/ps->pict—duration) ) * frame—of—GOP Npadding = Packet_salframe - TS一Nvideo - TS—Naudio - TS一Npsi 其中,nTransBit表示该传输流的传输率;ps->pict—duration为传输流中节目的帧 速率的倒数;frame—of_GOP为视频ES流的一个GOP中包含的帧的个数; TS_Nvideo为该GOP中已经发送的视频TS包的个数;TS—Naudio为该GOP中 已经发送的音频TS包的个数;TS—Npsi为该GOP中已经发送的PSI信息TS包 的个数。本发明所述的低延时的实时复用传输流的方法,与现有技术相比具有以下 优点(l)可降低传输延时,减小所需的緩冲区容量;(2)传输流的传输率能够 精确的恒定,在播放时,视音频也能够很好的同步。


本发明的 一种低延迟的实时复用传输流的方法的具体实现由以下的实施例 及附图给出。图1为现有技术中多路节目统计复用实现过程示意图; 图2为本发明具体实施例实现的流程示意图。
具体实施方式
以下将结合附图对本发明的一种低延迟的实时复用传输流的方法作进一步 的详细描述。本实施例需将输入的一路AVS格式的码率为1.5Mbps的视频基本流和一路 MPEG-l layer 2格式的码率为128kbps的音频基本流复用成一个传输速率 Trans—rate恒等于2Mbps的传输流(TS ),如图2所示,其具体过程如下首先执行打包步骤,即Sll、将视频数据打包成视频打包基本流PES; S12、 将音频数据打包成音频打包基本流PES;接着,对上述的打包基本流PES进行复用并生成传输流包,具体为S21、 将视频PES打包成视频传输流TS包;S22、将音频PES打包成音频传输流TS 包;然后执行步骤S30、生成节目特定信息(PSI)数据;步骤S40、判断是否完成一帧视频基本流(ES)数据和相应的时间的音频 ES数据的PES打包和TS打包,如果已完成,则跳到步骤S50;如果尚未完成, 则循环上述各步骤。步骤S50、将音频TS包和视频TS包均匀地放入传输流输出緩沖区中;同 时更新节目时钟参考(PCR, Program Clock Reference )信息;步骤S60、判断当前图像组GOP的视频帧是否复用完毕,如果尚未复用完 毕,则跳到步骤S40,继续复用下一帧音频和—见频数据;否则继续步骤S70;步骤S70、每当完成一个图像组GOP的视频ES流的复用时,根据传输流的 传输率和该GOP的数据量的大小,在输出緩冲区中填入空包,以输出恒定码率 的传输流;步骤S80、判断当前图像的所有图像组GOP是否复用完毕,如果尚未复用 完毕,则跳到步骤S60,否则结束。
以上步骤S12所述的音频PES由音频PES分组包的数据部分和首部组成, 数据部分是根据一帧^L频数据所对应的音频数据来分组的,首部包含用于解码 器同步重放的显示时间标签(PTS, Presentation Time Stamp ),在实时复用传输 流的过程中,所述的PTS是采集卡实时釆集得到的;步骤Sll所述的视频PES 由视频PES分组包的数据部分和首部组成,数据部分是每一个I帧、P帧或B 帧数据作为一个视频PES分组包的数据部分,首部包含用于解码器同步重放的 PTS,在实时复用传输流的过程中,所述的PTS是采集卡实时采集得到的。以上步骤S22所述的音频TS包是根据标准中规定的传输流的TS包的语法 格式,按照PES包的数据顺序写入的;步骤S21所述的视频TS包将PCR信息 包含在预留的含有i见频帧帧头的TS包中。以上步骤S30所述的PSI信息通过以下方法生成(1)根据给定的TS中的根据给定的每路节目的视频TS包的PID、音频TS包的PID和含有PCR信息的 TS包的PID生成PMT表。在步骤S50中,在将视频TS包写入输出緩沖区时,根据该携带PCR信息的 包在整个传输流中的位置重新计算PCR,并写入预留位置。 进一步的,所述PCR的计算方法如下timestampll = (nOutTsBufyacketnum*188*8)/(nTransBit/1000) PCR = timestampll * 90.0 其中,nOutTsB143acketnum表示已经输出的TS包的个数,nTransBit表示该传输 流的传输率。以上步骤S70所述空包的填入数量Npadding计算如下 Packet_salframe = (nTransBit/(188* 1000*8/ps->pict—duration) ) * frame—of—GOP Npadding = Packet_salframe - TS_Nvideo - TS_Naudio _ TS一Npsi 其中,nTransBit为本实施例的传输流的传输率;ps->pict—duration为传输流 中节目的帧速率的倒数;frame_of_GOP为视频ES流的一个GOP中包含的帧的 个数;TS—Nvideo为该GOP中已经发送的^L频TS包的个数;TS—Naudio为该 GOP中已经发送的音频TS包的个数;TS—Npsi为该GOP中已经发送的PSI信 息TS包的个数,以上数据通过计算机软件循环运算实现。
实验证明,使用本发明的方法实时复用传输流的延迟明显低于现有的复用算法的延迟,最低可降低到40ms,需要的緩沖区的容量大量降低;同时该传输 流的传输率能够精确的恒定,并且在机顶盒和播放软件播放时,视音频也能够 很好的同步。
权利要求
1、一种低延迟的实时复用传输流的方法,用于将单路或多路基本音频和视频流复合成为传输流,其特征在于,所述方法通过以下步骤具体实现步骤1、将音频基本数据打包成音频打包基本流PES;将视频基本数据打包成视频打包基本流PES;步骤2、将音频PES打包成音频传输流TS包;将视频PES打包成视频传输流TS包;步骤3、生成节目特定信息PSI数据;步骤4、判断是否完成一帧视频ES数据和相应的时间的音频ES数据的PES打包和TS打包,如果已完成,则跳到步骤5;如果尚未完成,则循环步骤1~步骤3;步骤5、将音频TS包和视频TS包均匀的放入传输流输出缓冲区中;同时更新节目时钟参考PCR信息;步骤6、判断当前图像组GOP的视频帧是否复用完毕,如果尚未复用完毕,则跳到步骤4,继续复用下一帧音频和视频数据;否则继续步骤7;步骤7、当完成一个图像组GOP的视频ES流的复用时,根据传输流的传输率和该GOP的数据量的大小,在输出缓冲区中填入空包,以输出恒定码率的传输流;步骤8、判断当前图像的所有图像组GOP是否复用完毕,如果尚未复用完毕,则跳到步骤6,否则结束。
2、 如权利要求1所述的低延迟的实时复用传输流的方法,其特征在于,步 骤1所述的音频PES由音频PES分组包的数据部分和首部组成,数据部分是才艮 据一帧视频数据所对应的音频数据来分组的,首部包含用于解码器同步重放的 显示时间标签PTS,在实时复用传输流的过程中,所述的PTS是采集得到的。
3、 如权利要求1所述的低延迟的实时复用传输流的方法,其特征在于,步 骤1所述的视频PES由视频PES分组包的数据部分和首部组成,数据部分是每 一个I帧、P帧或B帧数据作为一个视频PES分组包的数据部分,首部包含用 于解码器同步重放的PTS,在实时复用传输流的过程中,所述的PTS是釆集卡2实时采集得到的。
4、 如权利要求1所述的低延迟的实时复用传输流的方法,其特征在于,步 骤2所述的音频TS包是根据标准中规定的传输流的TS包的语法格式,按照PES 包的数据顺序写入的。
5、 如权利要求1所述的低延迟的实时复用传输流的方法,其特征在于,步 骤2所述的视频TS包将PCR信息包含在预留的含有视频帧帧头的TS包中。
6、 如权利要求1所述的低延迟的实时复用传输流的方法,其特征在于,步 骤3所述的PSI信息通过以下方法生成(1)根据给定的TS中的节目号和节目 映射表PMT表的节目标识PID生成节目关联表PAT表;(2 )根据给定的每路节 目的视频TS包的PID、音频TS包的PID和含有PCR信息的TS包的PID生成 PMT表。
7、 如权利要求1所述的低延迟的实时复用传输流的方法,其特征在于,在 步骤5中,在将视频TS包写入输出緩冲区时,根据该携带PCR信息的包在整个 传输流中的位置重新计算PCR,并写入预留位置。
8、 如权利要求7所迷的低延迟的实时复用传输流的方法,其特征在于,所 述PCR的计算方法如下Timestampll = (nOutTsBufyacketnum*188*8)/( nTransBit/1000) PCR = timestampll * 90.0 其中,nOutTsBuQmcketnum表示已经输出的TS包的个数,nTransBit表示该传 输流的传输率。
9、 如权利要求1所迷的低延迟的实时复用传输流的方法,其特征在于,步 骤7所述空包的填入数量Npadding计算如下Packet_salframe = (nTransBit/ (188* 1000*8/ps->pict—duration)) * frame—of—GOP Npadding = Packet—salframe - TS—Nvideo - TS一Naudio - TS一NpsiJt士 nT"。n。R;t志壬1、古接4备-:右.1^/去左备鱼-nS_>n;pt H',f。t;rm ^I估產^i"凉.咖嗜目站i)"l5i速率的倒数;frame—of一GOP为视频ES流的一个GOP中包含的帧的个数; TS—Nvideo为该GOP中已经发送的视频TS包的个数;TS—Naudio为该GOP中 已经发送的音频TS包的个数;TS_Npsi为该GOP中已经发送的PSI信息TS包 的个数。
全文摘要
本发明提出了一种低延迟的实时复用传输流的方法,所述方法先将音视频基本数据打包成打包基本流PES;接着将PES打包成TS包;然后生成节目特定信息PSI数据;当完成一帧视频ES数据和相应的时间的音频ES数据的PES打包和TS打包后,将音频TS包和视频TS包均匀的放入传输流输出缓冲区中,同时更新节目时钟参考PCR信息;当完成一个图像组GOP的视频ES流的复用时,根据传输流的传输率和该GOP的数据量的大小,在输出缓冲区中填入空包,以输出恒定码率的传输流。所述方法可降低延迟,减小缓冲区的容量,传输率恒定。
文档编号H04N7/24GK101212671SQ200710172808
公开日2008年7月2日 申请日期2007年12月21日 优先权日2007年12月21日
发明者萍 李, 李国平 申请人:上海广电(集团)有限公司中央研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1