CN100455017C - 一种解码图像缓冲区管理方法 - Google Patents
一种解码图像缓冲区管理方法 Download PDFInfo
- Publication number
- CN100455017C CN100455017C CNB2006100208058A CN200610020805A CN100455017C CN 100455017 C CN100455017 C CN 100455017C CN B2006100208058 A CNB2006100208058 A CN B2006100208058A CN 200610020805 A CN200610020805 A CN 200610020805A CN 100455017 C CN100455017 C CN 100455017C
- Authority
- CN
- China
- Prior art keywords
- frame
- buffering area
- sequence number
- cyclic buffer
- chain
- 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.)
- Active
Links
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
一种解码图像缓冲区管理方法,涉及图像通信技术,特别涉及图像解码技术。本发明所解决的技术问题是:简化解码图像帧管理中对P帧的处理过程,使视频的显示同步容易控制。采用的技术方案包括以下步骤:a、确定循环缓冲区链长度n;b、根据循环缓冲区链长度n,创建循环缓冲区链,循环缓冲区链为BF0,BF1,……,BFn-1;c、根据当前解码图像帧的显示序号,将该图像帧输入到对应的缓冲区中;d、解码图像缓冲区延时2帧将缓冲区中的图像帧顺序输出。本发明的有益效果是:解决了P帧解码图像的两次存取的问题,优化了解码图像的显示流程,使得视频的显示同步与音唇同步可以较容易地实现,同时提高了解码效率。
Description
技术领域
本发明涉及图像通信技术,特别涉及图像解码技术。
背景技术
为了在高效压缩编码的条件下,获得可随机存取的高压缩比、高质量图像,MPEG(动态图像专家组)定义了I、P、B三种图像格式,编码图像被分为三类,分别称为I帧,P帧和B帧。I帧图像采用帧内编码方式;P帧和B帧图像采用帧间编码方式。P帧图像采用前向时间预测,B帧图像采用双向时间预测,可以大大提高压缩倍数。但是,由于B帧的后向预测特性,使得图像帧的解码顺序和显示顺序产生了不一致,增加了解码图像帧管理的复杂度。目前通用的处理方法是:当解码图像帧为P帧时,暂不输出该P帧到显示缓冲区,而是将该P帧暂存到另外的存储区;等到该P帧其后直至下一个P帧之前的所有B帧都已经解码完毕后,才将该P帧从另外的存储区中取出并输出到显示缓冲区。
现有的这种解码图像帧管理方法对P帧的处理多了两次存取操作,而且,由于P帧和B帧采用了不同的处理方法,使得视频的显示同步变得较难控制。
发明内容
本发明所解决的技术问题是:简化解码图像帧管理中对P帧的处理过程,使视频的显示同步容易控制。
本发明为解决上述技术问题所采用的技术方案是:一种解码图像缓冲区管理方法,包括以下步骤:
a、确定循环缓冲区链长度n;
b、根据循环缓冲区链长度n,创建循环缓冲区链,循环缓冲区链为BF0,BF1,……,BFn-1;
c、根据当前解码图像帧的显示序号,将该图像帧输入到对应的缓冲区中;
d、解码图像缓冲区延时2帧将缓冲区中的图像帧顺序输出。
所述循环缓冲区链为显示缓冲区链。
所述解码图像帧的显示序号从编码流的图像头信息或条带信息中获得。
所述步骤a中,根据编码流连续B帧个数信息动态确定循环缓冲区链长度n,n等于或大于连续B帧的个数加上3。
所述步骤c包括以下步骤;
c1、判断当前图像帧的显示序号是否小于n,若是进入步骤c3;若否进入步骤c2;
c2、对此显示序号取n的余数,将结果作为新的序号,将该新序号作为对应循环缓冲区的下标,进入步骤c4;
c3、直接使用此显示序号作为对应循环缓冲区的下标,进入步骤c4;
c4、将该图像帧输入对应下标的循环缓冲区。
本发明的有益效果是:解决了P帧解码图像的两次存取的问题,优化了解码图像的显示流程,使得视频的显示同步与音唇同步可以较容易地实现,同时提高了解码效率。
以下结合具体实施例对本发明做进一步说明。
具体实施方式
该方法使用了一个长度为n(n一般大于5)的循环解码缓冲区链BF0,BF1,…,BFn-1,该缓冲区链同时也做为显示缓冲区链:完成解码的一帧图像根据其实际的显示顺序而不是解码顺序填充到相应的缓冲区中,显示模块则顺序显示循环缓冲区链中存储的图像。
创建一个长度为n的循环解码缓冲区链BF0,BF1,…,BFn-1,该缓冲区链同时也做为循环显示缓冲区链。根据当前解码图像的显示序号(即原始序号,该序号通常可以从编码流的图像头信息或条带信息中获得),将该图像填充到对应的缓冲区中:如果该图像的显示序号小于n,则直接使用此显示序号对应循环缓冲区的下标;否则对此显示序号取n的余数得到一个新的序号,使用新序号对应循环缓冲区的下标。显示模块则顺序显示循环缓冲区链中存储的图像。
关于循环解码缓冲区链的长度n,当n等于5时,可支持IPBBPBBP的编码格式,即连续2个B帧;当n等于6时,则可支持连续3个B帧,依次类推。在一般的应用场合,n值取6即可满足要求。因为编码流的连续B帧个数可以从图像头信息或条带信息中获得,所以循环缓冲区链的长度n也可以在程序中根据编码流的连续B帧个数信息来动态确定,并依此来动态创建循环缓冲区链。
显示模块从BF0缓冲区提取像素值开始显示第一帧,然后显示BF1缓冲区的图像,依次类推。当显示完BFn-1缓冲区中的图像后,显示模块又回到BF0缓冲区开始显示。如此循环过程直至视频解码程序结束。显示模块在时间顺序上必须比解码模块落后两帧,才能保证解码和显示的同步:解码出来的P帧不能马上显示,这里即产生一帧延时,再加上解码一帧本身的延时,共两帧延时。在第一个B帧刚开始解码时即可启动显示模块,此时显示的是I帧;在第二个B帧开始解码时显示第一个B帧;在第三个B帧开始解码时显示第二个B帧,依此类推。
实施例
视频码流中每一帧都有一个原始序号(即显示序号)。编码流中:第一帧是I帧,I帧的序号一般为0,该序号可通过解析该I帧帧头得到;紧接着是一个P帧,解析该P帧帧头会得到一个序号,用这个序号减去I帧的序号0再减去1即为连续B帧的个数,连续B帧的个数加上3就得到了循环链区长度n值。然后程序就可以根据n值来动态分配循环缓冲链区,因为之前已解码了I帧,因此I帧的解码图像数据需要复制到该循环缓冲链区的第一个缓冲区BF0中。
编码流格式为IPBBPBBP,编码流解码后得到的图像帧序号为:I0P3B1B2P6B4B5P7。解析紧随I帧的P帧序号为3,3减去I帧的序号0再减去1为该编码流连续B帧的个数2,连续B帧的个数2加上3得到了循环链区长度n值,即n=5。
创建一个长度为5的循环解码缓冲区链BF0,BF1,BF2,BF3,BF4。(1)解码第一个I帧,得到显示序号为0,填入到缓冲区BF0中;(2)解码第一个P帧,得到显示序号为3,填入到缓冲区BF3中;(3)解码第一个B帧,得到该B帧的显示序号为1,填入到缓冲区BF1中;与此同时启动显示模块,输出显示缓冲区BF0中的图像帧到显示模块中显示图像;(4)解码第二个B帧,得到该B帧的显示序号为2,填入到缓冲区BF2中;同时显示缓冲区BF1中的图像;(5)解码第二个P帧,得到显示序号为6,取5的余数得到新序号1,将此P帧填入到缓冲区BF1中;同时显示缓冲区BF2中的图像;(6)解码第三个B帧,得到显示序号为4,填入到缓冲区BF4中;同时显示缓冲区BF3中的图像。(7)解码第4个B帧,得到显示序号为5,取5的余数得到新序号0,将此B帧填入到缓冲区BF0中;同时显示缓冲区BF4中的图像;(8)解码第3个P帧,得到显示序号为7,取5的余数得到新序号2,将此P帧填入到缓冲区BF2中;同时显示缓冲区BF0中的图像;按上述规律直至视频解码程序结束。
Claims (3)
1、一种解码图像缓冲区管理方法,其特征在于,包括以下步骤:
a、根据编码流连续B帧个数信息动态确定循环缓冲区链长度n,n等于或大于连续B帧的个数加上3;
b、根据循环缓冲区链长度n,创建循环缓冲区链,循环缓冲区链为BF0,BF1,……,BFn-1;
c、根据当前解码图像帧的显示序号,将该图像帧输入到对应的缓冲区中;
d、解码图像缓冲区延时2帧将缓冲区中的图像帧顺序输出;
所述步骤c具体包括以下步骤:
c1、判断当前图像帧的显示序号是否小于n,若是进入步骤c3;若否进入步骤c2;
c2、对此显示序号取n的余数,将结果作为新的序号,将该新序号作为对应循环缓冲区的下标,进入步骤c4;
c3、直接使用此显示序号作为对应循环缓冲区的下标,进入步骤c4;
c4、将该图像帧输入对应下标的循环缓冲区。。
2、如权利要求1所述的一种解码图像缓冲区管理方法,其特征在于,所述循环缓冲区链为显示缓冲区链。
3、如权利要求1所述的一种解码图像缓冲区管理方法,其特征在于,所述解码图像帧的显示序号从编码流的图像头信息或条带信息中获得。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100208058A CN100455017C (zh) | 2006-05-12 | 2006-05-12 | 一种解码图像缓冲区管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100208058A CN100455017C (zh) | 2006-05-12 | 2006-05-12 | 一种解码图像缓冲区管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1852433A CN1852433A (zh) | 2006-10-25 |
CN100455017C true CN100455017C (zh) | 2009-01-21 |
Family
ID=37133900
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006100208058A Active CN100455017C (zh) | 2006-05-12 | 2006-05-12 | 一种解码图像缓冲区管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100455017C (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103108256A (zh) * | 2013-03-08 | 2013-05-15 | 苏州工业园区云视信息技术有限公司 | 一种接收rtp包时消除抖动乱序重包的方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07115627A (ja) * | 1993-10-18 | 1995-05-02 | Canon Inc | 画像通信端末装置 |
CN1164166A (zh) * | 1996-03-29 | 1997-11-05 | 大宇电子株式会社 | 在运动图象专家组编/解码器中重排序图象帧的方法和装置 |
KR20000072928A (ko) * | 1999-05-03 | 2000-12-05 | 김영환 | 영상 복호화기의 프레임 재배치 방법 |
CN1535029A (zh) * | 2003-12-31 | 2004-10-06 | 中国科学院计算技术研究所 | 一种参考图像缓冲区管理方法 |
US20060026492A1 (en) * | 2004-07-29 | 2006-02-02 | Samsung Electronics Co., Ltd. | Method and apparatus for managing a deinterleaving buffer in a mobile communication system using block interleaving |
-
2006
- 2006-05-12 CN CNB2006100208058A patent/CN100455017C/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07115627A (ja) * | 1993-10-18 | 1995-05-02 | Canon Inc | 画像通信端末装置 |
CN1164166A (zh) * | 1996-03-29 | 1997-11-05 | 大宇电子株式会社 | 在运动图象专家组编/解码器中重排序图象帧的方法和装置 |
KR20000072928A (ko) * | 1999-05-03 | 2000-12-05 | 김영환 | 영상 복호화기의 프레임 재배치 방법 |
CN1535029A (zh) * | 2003-12-31 | 2004-10-06 | 中国科学院计算技术研究所 | 一种参考图像缓冲区管理方法 |
US20060026492A1 (en) * | 2004-07-29 | 2006-02-02 | Samsung Electronics Co., Ltd. | Method and apparatus for managing a deinterleaving buffer in a mobile communication system using block interleaving |
Also Published As
Publication number | Publication date |
---|---|
CN1852433A (zh) | 2006-10-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103310820B (zh) | 一种对多媒体播放器进行优化的方法 | |
CN101682762B (zh) | 多参考图像压缩码流实现随机访问的解码方法及解码器 | |
CN103929657B (zh) | 视频复用设备和方法、复用视频解码设备和方法 | |
US7460599B2 (en) | Video decoding device and method, and program product therefor | |
CN103475927B (zh) | 在线视频实时变速播放方法及系统 | |
CN102802039B (zh) | 多路视频混合解码输出方法及装置 | |
CN101341757A (zh) | 本地宏块信息缓冲器 | |
CN109660805B (zh) | 解码播放中音视频同步优化方法、存储介质、设备及系统 | |
CN106303379A (zh) | 一种视频文件逆序播放方法及系统 | |
CN103458271A (zh) | 音视频文件拼接方法和装置 | |
CN101557512A (zh) | 视频终端接收视频数据延时的处理方法 | |
CN102939766B (zh) | 接收器和接收器侧使用单个解码器使能信道变化的方法 | |
EP1119206A1 (en) | MPEG decoding device | |
US6141383A (en) | Method for controlling timing between video decoding and displaying and apparatus therefor | |
US20040103446A1 (en) | Audio-video multiplexed data generating apparatus, reproducing apparatus and moving video decoding apparatus | |
CN100455017C (zh) | 一种解码图像缓冲区管理方法 | |
CN109587431A (zh) | 一种多路视频码流合并方法、装置、设备和存储介质 | |
CN103780908A (zh) | 一种高效的h264解码方法 | |
US8085853B2 (en) | Video decoding and transcoding method and system | |
CN103945221A (zh) | 视频编解码方法、装置及生成的视频码流 | |
CN1867048A (zh) | 一种视频节目中字幕的显示方法及系统 | |
CN113132756B (zh) | 视频编转码方法 | |
CN112511768B (zh) | 多画面合成方法、装置、设备及存储介质 | |
CN104935923A (zh) | 信号编码方法及系统、信号解码方法及系统 | |
CN105657448A (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 |