CN1466376A - 一种视频码流传输处理方法 - Google Patents
一种视频码流传输处理方法 Download PDFInfo
- Publication number
- CN1466376A CN1466376A CNA021123713A CN02112371A CN1466376A CN 1466376 A CN1466376 A CN 1466376A CN A021123713 A CNA021123713 A CN A021123713A CN 02112371 A CN02112371 A CN 02112371A CN 1466376 A CN1466376 A CN 1466376A
- Authority
- CN
- China
- Prior art keywords
- code stream
- buffer memory
- macro block
- mode
- thresholding
- 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
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
一种视频码流传输处理方法,属于图像信息传输与处理领域。包括步骤:以协议规定的数据包最大有效比特数为基础,设定数据包有效载荷的门限1,并设置两个大小为门限1的缓存1、缓存2,对其进行初始化;将编码器输出的一宏块的码流存至缓存2中;判定该宏块的位置属性;判断缓存1中码流与缓存2中码流之和是否小于门限1;如果是则对小于门限1的情况进行码流的打包封装处理,否则继续对大于等于门限1的情况进行码流的打包封装处理;将实时传输协议包封装成用户数据报协议包;将户数据报协议包封装成IP包,进入IP信道;返回。本发明可以降低通讯开销并提高码流传输效率。
Description
技术领域
本发明属于图像信息传输与处理领域,具体涉及一种高效的视频码流自适应打包方法。
背景技术
在Internet上传输实时视频码流已成为互联网多媒体应用的一项重要组成部分,而进入信道前的视频码流打包正是这一部分的关键问题,它直接影响到网络资源的充分利用以及传输效率。如果视频数据封装模式选择不当,就会引起通讯开销的增加;如果视频数据包有效载荷过大,这样当网络出现拥塞时,就容易造成视频数据包的丢失,进而损伤图像质量;如果视频数据包的有效载荷过小,就会浪费宝贵的网络带宽。
传统的视频数据打包方法有两类:一类是以帧或宏块组(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信道;返回第二步。
Claims (4)
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。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB021123713A CN100369476C (zh) | 2002-06-29 | 2002-06-29 | 一种视频码流传输处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB021123713A CN100369476C (zh) | 2002-06-29 | 2002-06-29 | 一种视频码流传输处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1466376A true CN1466376A (zh) | 2004-01-07 |
CN100369476C CN100369476C (zh) | 2008-02-13 |
Family
ID=34141894
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB021123713A Expired - Fee Related CN100369476C (zh) | 2002-06-29 | 2002-06-29 | 一种视频码流传输处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100369476C (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101141375B (zh) * | 2006-09-05 | 2010-12-22 | 华为技术有限公司 | 一种局域网内部的报文传输方法、传输装置及*** |
CN101998141B (zh) * | 2008-06-19 | 2013-06-05 | 华为技术有限公司 | 视频数据的打包、编解码方法及装置及*** |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6154780A (en) * | 1996-12-18 | 2000-11-28 | Intel Corporation | Method and apparatus for transmission of a flexible and error resilient video bitstream |
KR100235617B1 (ko) * | 1996-12-31 | 1999-12-15 | 전주범 | 디지털-vhs 인코딩 방법 및 인코더 |
KR100363162B1 (ko) * | 1998-11-02 | 2003-01-24 | 삼성전자 주식회사 | 영상신호의전송/복원방법및장치 |
AU2001285225A1 (en) * | 2000-08-25 | 2002-03-13 | Hamid Gharavi | Dual priority video transmission for mobile applications |
-
2002
- 2002-06-29 CN CNB021123713A patent/CN100369476C/zh not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101141375B (zh) * | 2006-09-05 | 2010-12-22 | 华为技术有限公司 | 一种局域网内部的报文传输方法、传输装置及*** |
CN101998141B (zh) * | 2008-06-19 | 2013-06-05 | 华为技术有限公司 | 视频数据的打包、编解码方法及装置及*** |
Also Published As
Publication number | Publication date |
---|---|
CN100369476C (zh) | 2008-02-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1906906A (zh) | 用于ip语音的最优无线承载电路配置 | |
CN1196339C (zh) | 流式传输可缩放视频的方法和设备 | |
CN1303796C (zh) | 通过通用分组无线服务无线网络传输数据 | |
CN1339878A (zh) | 数据传送装置及数据传送方法 | |
CN101057461A (zh) | 宽带无线通信***中用于压缩首标的装置和方法 | |
CN1615618A (zh) | 双向分包数据传输***和方法 | |
WO2007047158A1 (en) | Rtp payload format for vc-1 | |
CN1330359A (zh) | 以网际协议数据报传输不同业务质量数据的方法和装置 | |
CN1148931C (zh) | 基于实时传输协议和传输控制协议的流媒体传输实现方法 | |
CN1859206A (zh) | 一种剩余带宽复用的方法及网络设备 | |
CN1299479C (zh) | 一种隧道包的分片发送方法 | |
CN101137060A (zh) | 一种视频传输方法、***及设备 | |
CN101047476A (zh) | 一种选择调制方式的方法和装置 | |
CN1248465C (zh) | 网络通信中数据发送/接收缓冲区的管理方法 | |
CN1339212A (zh) | 重构媒体的方法和装置 | |
Altonen et al. | Open-source RTP library for high-speed 4K HEVC video streaming | |
CN1466376A (zh) | 一种视频码流传输处理方法 | |
CN1543104A (zh) | 一种移动分组网络的数据传输方法 | |
CN1812368A (zh) | Ip传真网关传输报文数据的方法 | |
CN1842080A (zh) | 一种调整传输控制协议接收窗口的方法 | |
CN1885830A (zh) | 在无线分组网中传输基于网络承载的语音流的方法及网关 | |
CN1694455A (zh) | 跨平台的端到端rtp协议栈设计方法 | |
CN1337810A (zh) | 用无线电通信***传送ip通信量的方法与*** | |
CN1968350A (zh) | 数字电视网络中的单播寻址***及方法 | |
CN1219373C (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20080213 Termination date: 20140629 |
|
EXPY | Termination of patent right or utility model |