一种视频码流传输处理方法

文档序号:7684524阅读:373来源:国知局
专利名称:一种视频码流传输处理方法
技术领域
本发明属于图像信息传输与处理领域,具体涉及一种高效的视频码流自适应打包方法。
传统的视频数据打包方法有两类一类是以帧或宏块组(GOB)为分割边界的模式A打包方法,另外就是以宏块(MB)为分割边界的模式B/C打包方法。在模式A打包方法中,负载头占4个字节,加上固定个数的GOB的码流封装后进入信道;在模式B/C打包方法中,负载头占8/12个字节,加上固定个数的MB的码流封装后进入信道。若采用Mode B/C打包方法,由于负载头占用过多的字节,会引起通讯开销的增大。另外,封装固定数目的GOB或MB,在低码率下会导致数据包中有效载荷偏低,浪费带宽资源,而在高码率下会导致数据包中有效载荷超过协议规定的数据包最大有效比特数,容易造成传输中的数据包丢失。美国专利6,154,780“Method and apparatus fortransmission of a flexible and error resilient video bit stream”提出以片(Slice)为打包单位,且Slice中宏块的数目可动态调整,但Slice结构在ITU-T H.263协议中是可选项,因而其应用价值不高;另外,该打包方法由于使用Slice结构,所以在每个数据包上增加Slice头结构,这无疑增加了通讯开销,降低了视频码流的传输效率。
本发明所提出的视频码流传输处理方法,包括以下步骤第一步、以协议规定的数据包最大有效比特数为基础,设定数据包有效载荷的门限1,并设置两个大小为门限1的缓存1、缓存2,对其进行初始化;第二步、将编码器输出的一宏块的码流存至缓存2中;第三步、判定该宏块的位置属性;第四步、判断缓存1中码流与缓存2中码流之和是否小于门限1;如果是则转向第六步,否则继续第五步;第五步、对大于等于门限1的情况进行码流的打包封装处理;该步骤又分为三个步骤1.根据当前数据包是否以宏块组为封装边界,将缓存1中码流以模式A或模式B/C封装成实时传输协议(RTP)包,并将缓存1清零;2.根据当前已编码宏块的位置属性,决定下一个实时传输协议包的封装模式模式A或模式B/C;3.将缓存2中码流移入缓存1中,并将缓存2清零;转入第七步;第六步、对小于门限1的情况进行码流的打包封装处理;该步骤又分为四个步骤1.将缓存2中码流移入缓存1中,并将缓存2清零;2.如果当前已编码宏块是第一个将码流从缓存2存入缓存1的宏块并且该宏块处于一帧或宏块组的起始位置,则当前实时传输协议包是以宏块组为封装边界的;
3.如果当前已编码宏块位置不在图像帧的结尾,则转向第二步;4.根据当前数据包是否以宏块组为封装边界,将缓存1中码流以模式A或模式B/C封装成实时传输协议包,并将缓存1清零;第七步、将实时传输协议包封装成用户数据报协议(UDP)包;第八步、将户数据报协议包封装成IP包,进入IP信道;返回第二步。
本发明是以协议规定的数据包最大有效比特数为基础,设定数据包有效载荷的上限,以宏块作为码流封装的子单元,当若干子单元的码流数达到有效载荷的上限,就将这些子单元封装成数据包,并且依据第一个子单元在图像中的位置加上相应的模式A或模式B/C负载头信息,然后送入信道;因此本发明可以自适应不同码率、不同视频场景,将数目可变的宏块码流以混合模式封装成数据包,从而降低了通讯开销、提高了码流传输效率;另外该发明方法运算复杂度低,满足实时性的需求,可广泛应用于无服务质量(QoS)保证的IP网上的视频通信,鲁棒性强,具有较高的实用价值。


图1是本发明所述方法的具体实施例流程图;图2是本发明所述方法中判定宏块位置属性的流程图;图3是缓存1中码流与缓存2中码流之和大于等于门限1时码流的打包封装处理流程图;图4是缓存1中码流与缓存2中码流之和小于门限1时码流的打包封装处理流程图;具体实施方式
下面结合附图对本发明作进一步的详细描述。
以IEEE 802.3协议为例,对本发明所述的视频码流传输处理方法具体说明如下。参见图1
第一步、以IEEE 802.3协议规定的数据包最大有效比特数为基础,设定数据包有效载荷的门限Th1,并设置两个大小为Th1的缓存Buf1、Buf2;对全局变量g_nMbPos(表示宏块的位置)、g_PacketFrmGob(表示数据包是否以GOB为封装边界)初始化;具体实施如下a.IEEE 802.3协议规定以太网包的大小为1.5kByte,而以太网包头大小为14Byte,IP包头大小为20Byte,UDP包头大小为8Byte,RTP包头大小为12Byte,Payload(负载)头大小为4Byte(Mode A)、8Byte(ModeB)、12Byte(Mode C)所以一个数据包中所能容纳最大有效载荷1.5k-14-20-8-12-12=1434据此及大量实验结果,我们将数据包有效载荷门限Th1设为1408 Byte;b.g_nMbPos=0;g_PacketFrmGob=1;其中g_nMbPos表示宏块的位置。
当宏块处于一帧或GOB的起始位置时,g_nMbPos=0;当宏块处于一帧的结尾位置时,g_nMbPos=1;其他位置时,g_nMbPos=2;g_PacketFrmGob表示RTP包是否以GOB为封装边界。
g_nPackFrmGob=1,代表RTP包是以GOB为封装边界;g_npackFrmGob=0,代表RTP包不是以GOB为封装边界;第二步、将编码器输出的一宏块的码流存至缓存Buf2中;第三步、判定该宏块的位置属性;参照图2,具体实施如下如果该宏块为一帧或GOB的起始宏块,执行如下操作g_nMbPos=0;否则,判断该宏块是否为一帧的结尾宏块是,则g_nMbPos=1;否,则g_nMbPos=2;
第四步、判断(Buf1中码流+Buf2中码流)是否大于等于Th1?小于Th1,则转向第六步;第五步、对大于等于Th1的情况进行码流的打包封装处理。该步又分为三个步骤1.根据当前数据包是否以GOB为封装边界的标识g_PacketFrmGob,将Buf1中码流以Mode A或Mode B/C封装成RTP包,并将Buf1清零;参照图3,具体实施如下如果g_PacketFrmGob=1,执行如下操作将Buf1中码流以Mode A封装成RTP包;将Buf1清零;否则将Buf1中码流以Mode B/C封装成RTP包;将Buf1清零;2.根据当前已编码宏块的位置属性标识g_nMbPos,决定下一个RTP包的封装模式Mode A或Mode B/C;参照图3,具体实施如下如果g_nMbPos=0,g_PacketFrmGob=1;否则,g_PacketFrmGob=0;3.将Buf2中码流移入Buf1中,并将Buf2清零;转入第七步;第六步、对小于Th1的情况进行码流的打包封装处理。该步又分为四个步骤1.将Buf2中码流移入Buf1中,并将Buf2清零;2.如果当前已编码宏块是第一个将码流从Buf2存入Buf1的宏块并且该宏块处于一帧或GOB的起始位置,则当前RTP包是以GOB为封装边界的;参照图4,具体实施如下如果g_nMbPos=0并且是第一个将码流从Buf2存入Buf1的宏块,则g_PacketFrmGob=1;3.如果当前已编码宏块位置不在图像帧的结尾,则转向第二步;参照图4,具体实施如下如果g_nMbPos≠1,转向第二步;4.根据当前数据包是否以GOB为封装边界的标识g_PacketFrmGob,将Buf1中码流以Mode A或Mode B/C封装成RTP包,并将Buf1清零;参照图4,具体实施如下如果g_PacketFrmGob=1,执行如下操作将Buf1中码流以Mode A封装成RTP包;将Buf1清零;否则,将Buf1中码流以Mode B/C封装成RTP包;将Buf1清零;第七步、将RTP包封装成UDP包;第八步、将UDP包封装成IP包,进入IP信道;返回第二步。
权利要求
1.一种视频码流传输处理方法,包括以下步骤第一步、以协议规定的数据包最大有效比特数为基础,设定数据包有效载荷的门限1,并设置两个大小为门限1的缓存1、缓存2,对其进行初始化;第二步、将编码器输出的一宏块的码流存至缓存2中;第三步、判定该宏块的位置属性;第四步、判断缓存1中码流与缓存2中码流之和是否小于门限1;如果是则转向第六步,否则继续第五步;第五步、对大于等于门限1的情况进行码流的打包封装处理;第六步、对小于门限1的情况进行码流的打包封装处理;第七步、将实时传输协议包封装成用户数据报协议包;第八步、将户数据报协议包封装成IP包,进入IP信道;返回第二步。
2.根据权利要求1所述的一种视频码流传输处理方法,其特征在于所述的第五步包括以下步骤1)、根据当前数据包是否以宏块组为封装边界,将缓存1中码流以模式A或模式B/C封装成实时传输协议包,并将缓存1清零;2)、根据当前已编码宏块的位置属性,决定下一个实时传输协议包的封装模式模式A或模式B/C;3)、将缓存2中码流移入缓存1中,并将缓存2清零。
3.根据权利要求1所述的一种视频码流传输处理方法,其特征在于所述的第六步包括以下步骤1)、将缓存2中码流移入缓存1中,并将缓存2清零;2)、如果当前已编码宏块是第一个将码流从缓存2存入缓存1的宏块并且该宏块处于一帧或宏块组的起始位置,则当前实时传输协议包是以宏块组为封装边界的;3)、如果当前已编码宏块位置不在图像帧的结尾,则转向第二步;4)、根据当前数据包是否以宏块组为封装边界,将缓存1中码流以模式A或模式B/C封装成实时传输协议包,并将缓存1清零。
4.根据权利要求1所述的一种视频码流传输处理方法,其特征在于所述有效载荷门限1在IEEE 802.3协议中设定为1408 Byte。
全文摘要
一种视频码流传输处理方法,属于图像信息传输与处理领域。包括步骤以协议规定的数据包最大有效比特数为基础,设定数据包有效载荷的门限1,并设置两个大小为门限1的缓存1、缓存2,对其进行初始化;将编码器输出的一宏块的码流存至缓存2中;判定该宏块的位置属性;判断缓存1中码流与缓存2中码流之和是否小于门限1;如果是则对小于门限1的情况进行码流的打包封装处理,否则继续对大于等于门限1的情况进行码流的打包封装处理;将实时传输协议包封装成用户数据报协议包;将户数据报协议包封装成IP包,进入IP信道;返回。本发明可以降低通讯开销并提高码流传输效率。
文档编号H04N7/00GK1466376SQ0211237
公开日2004年1月7日 申请日期2002年6月29日 优先权日2002年6月29日
发明者王宁, 周蓉, 林碧霞, 宁 王 申请人:深圳市中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1