CN103986937A - 一种用于高分辨率视频的h.264帧间编码存储管理方法 - Google Patents
一种用于高分辨率视频的h.264帧间编码存储管理方法 Download PDFInfo
- Publication number
- CN103986937A CN103986937A CN201410232742.7A CN201410232742A CN103986937A CN 103986937 A CN103986937 A CN 103986937A CN 201410232742 A CN201410232742 A CN 201410232742A CN 103986937 A CN103986937 A CN 103986937A
- Authority
- CN
- China
- Prior art keywords
- data
- image
- reference frame
- sdram
- reference buffer
- 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.)
- Pending
Links
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明公开了一种用于高分辨率视频的H.264帧间编码存储管理方法。H.264帧间编码会不断从SDRAM中取参考帧的数据,当视频分辨率增加时,所需带宽将线性增加。由于搜索窗有重叠,可以进行数据重用。本发明提出了一种基于局部参考帧缓冲区的存储管理方案,采用该方案,参考帧数据只需取一次,避免了重复存取,降低了外部存储器带宽,并且,缓冲区大小和图像分辨率无关,尤其适用于高分辨率视频的H.264帧间编码。本发明将输入的视频在水平方向平均分成2N列,根据不同的分辨率设定不同的N,大分辨率的视频设置大的N,小分辨率视频设置小的N,按照水平方向先左后右的顺序对视频进行逐行编码,采用小容量的缓冲区即可存放需要用到的参考帧数据。
Description
技术领域
本发明涉及视频编码技术领域,尤其涉及一种用于高分辨率视频的H.264帧间编码存储管理方法。
背景技术
H.264标准是ITU-T(ITU-T for ITU Telecommunication Standardization Sector,国际电信联盟远程通信标准化组织)的VCEG(Video Coding Experts Group,视频专家组)和ISO/IEC(国际标准化组织/国际电工委员会)的MPEG(Moving Pictures Experts Group,活动图像专家组)的JVT(Joint Video Team,联合视频组)开发的视频编码标准。在相同的重建图像质量下,H.264比H.263节约一半的码率。它既保留了以往压缩技术的优点和精华,又具有其他压缩技术无法比拟的许多优点,既是ITU-T的H.264,又是ISO/IEC的MPEG-4的第10部分。
随着高清视频的发展和普及,视频编解码技术在大存储、大数据量、高带宽占用等方面,又面临着严峻的挑战。如果处理不好带宽的优化、编码器数据存取等问题,只是通过改进编码器内部的编码算法,也无法使整个编码器系统的性能,得到明显的提高。在H.264编码过程中,最基本的做法是将从图像传感器采集到的数据存放到外部的SDRAM中,然后从SDRAM中取得编码的原始数据进行编码,将编码后的最终数据再重新存入外部的SDRAM中,完成一帧图像的编码。在做帧间编码时,需要从外部的SDRAM中读取参考帧数据,对于当前帧的每个MB,在取参考帧数据时,除了要从SDRAM中读取参考帧对应位置的MB数据外,还需从参考帧中同时读取对应位置的MB上下左右4个MB的数据。因此参考帧中的每个MB都会被用到5次,对于一帧图像的帧间编码来讲,相当于需要从外部SDRAM中对参考帧数据重复读取5次,相当于5帧的数据量,占用了大量的SDRAM带宽资源。针对水平方向数据连续的特点,可以通过缓冲将连续几个MB的数据复用,这种方法无法复用垂直方向的数据,因此,还是需要从SDRAM中读取3帧的数据量。
进一步降低SDRAM带宽,可以采用3个整行MB(宽度等于图像宽度,高度为16个像素)大小的Line Buffer进行缓冲,来减少对外部SDRAM的访问次数。即从SDRAM中取出3个整行MB的参考帧数据,存入到Line Buffer中,在做帧间编码时,直接从Line Buffer中取得参考帧数据进行编码。这样,只需要从外部的SDRAM中取一次参考帧数据,对SDRAM的带宽占用减少到1帧的数据量。这种采用整个MB行做Line Buffer的缓冲策略,虽然减少了对SDRAM的带宽占用,但需要大量的内部存储器资源用于缓冲区。随着视频分辨率的不断提升,采用这种MB行Line Buffer做缓冲,需要的缓冲区大小随着分辨率的上升而线性增加,在高分辨率的应用中并不可取。因此,充分利用小容量存储器来降低SDRAM带宽,利用较少的内部存储资源,来实现带宽利用率的最优化,就成为本发明需要解决的问题。
发明内容
本发明提供一种用于高分辨率H.264帧间编码的存储管理方法,目的是基于有限容量的内部缓冲区,减少帧间编码对外部SDRAM访问的带宽开销。
该发明采用以下技术方案来实现:
将输入的图像等分成2N列,N根据分辨率来设定。按照从左向右的顺序,依次对每一列图像分别进行编码,每列图像按照自上而下的顺序依次编码。2N个图像列编码后产生2N个H.264码流,码流以链表的形式存入外部的SDRAM,最后由软件把2N个码流合并为一个完整的码流,完成H.264帧间编码。
H.264进行帧间编码时,采用Reference Buffer作为缓冲,进行帧间编码时,先从SDRAM中取出参考帧数据,存入到内部的Reference Buffer,然后直接从Reference Buffer中读取参考帧数据进行编码。针对每个MB取参考帧数据,除了要取参考帧对应位置的MB数据外,还要取对应MB相邻的上、下、左、右四个MB数据。为避免参考帧数据的重复读取,ReferenceBuffer由3个MB行组成。
Reference Buffer每行的空间大小用BufMBLine表示,单位为一个MB的大小,其计算方法为:
BufMBLine=Width/(16x2N)+2 (1)
其中,Width是图像的宽度,加2是因为图像被分割后为多个图像列后,会产生了新的边界,而在新边界处的MB,并不是实际的图像行的开始或结束,实际上,参考帧对应MB的左边和右边都存在相邻的MB可用于编码。分割后图像列除了第一列和最后一列只有一个新边界,其他的图像列都有两个新边界,所以Reference Buffer行的大小需要加2以满足编码需求;
Reference Buffer的大小用BufArea可以表示为:
BufArea=3xBufMBLine; (2)
分割后的图像列按照从左向右的顺序,依次对2N列图像分别进行编码,对每列分割后的图像,自上而下进行编码。当编码进行到第Width/(16x2N)个MB,即分割后的图像一行编码结束时,参考帧对应行的上一行数据后续不再需要,此时可以把缓冲区中上一行的数据清空,并从SDRAM中读取新的数据行用于后续的编码;
整个Reference Buffer的三行缓冲空间,是按照回卷方式重复使用的。分割后图像列的编码顺序自上而下,Reference Buffer按行填充的顺序是1->2->3->1->2->3,自上而下回卷填充,实现Reference Buffer的更新。
该发明具有以下有益效果:
内部Reference Buffer资源的计算。一个MB的数据量为16x16x1.5=384字节。对于分辨率为1920x1080的视频,采用本发明的存储管理方法,设置N为2,所需的Reference Buffer的大小计算如下:
BufArea=3x[1(/(2x2)x(1920/16)+2]x384=38016yte; (3)
采用MB行Line Buffer的存储管理方法,缓冲区大小用BufArea’表示为:
BufArea’=3x(1920/16)x384=138240Byte; (4)
即对于1920x1080的视频,采用本发明的存储管理方法,所需的Reference Buffer大小仅为37.1KB;而以MB行的Line Buffer缓冲的方法,所需的Line Buffer为135KB,是本发明的内部存储器资源的3.6倍。
SDRAM带宽的开销计算。还是以1920x1080的视频为例,将图像分为4个列(N=2)进行编码,第一个图像列和最后一个图像列各多1个新边界,中间2个图像列各多2个新边界,相比于MB行Line Buffer缓冲方法,一共需要从SDRAM多取(1+1+2x2)x1080/16=405个MB,增加的SDRAM开销比例Delta计算如下:
即相比于MB行Line Buffer缓冲的存储管理方法,本发明仅增加5%SDRAM带宽,可以将缓冲区降低为3.6倍,对编码性能没有影响。
按照本发明提供的方法,还可以通过设置不同的N来匹配不同的分辨率大小,比如,针对720x480分辨率的视频,可以讲N设为1,针对4096x2048的视频,可以将N设为4,从而用一种缓冲区大小,即可满足不同分辨率的需要。
由此可见,本发明提出的存储管理方法,相对于直接采用SDRAM的存储方案,大大降低的SDRAM带宽,相对于整行MB缓冲的方法,仅增加了很小的SDRAM带宽,需要的内部缓冲区资源大小明显降低。
附图说明
图1是只采用外部SDRAM作为存储方案的H.264编码器方案图;
图2是采用整行MB作为Line Buffer的H.264编码器存储方案示意图;
图3是本发明提出的Reference Buffer工作示意图;
图4是本发明的编码顺序示意图;
图5是进行第M行编码时,Reference Buffer中相应存放的数据;
图6是进行第M+1行编码时,Reference Buffer中相应存放的数据;
图7是进行第M+2行编码时,Reference Buffer中相应存放的数据;
图8是进行第M+3行编码时,Reference Buffer中相应存放的数据;
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施方案,对本发明的一种用于高分辨率H.264帧间编码的存储管理方法,进行进一步详细说明。应当理解,此处所描述的具体实施案例仅用于解释本发明,并不限定于本发明,说明中采用的视频分辨率大小选择1920x1080大小。
本发明针对的H.264编码整体工作过程如下:
(1)CAMERA将采集数据后作为原始数据存入SDRAM中。
(2)编码器从SDRAM中读出原始数据;
(3)从SDRAM读出3个BufMBLine大小的数据到内部Reference Buffer,作为参考
帧数据,开始编码;
(4)将编码结果去块滤波后写入SDRAM,作为下一帧编码的参考帧;
(5)将最终编码后生成的比特流数据,通过NAL单元输出到SDRAM。
图1是只采用外部SDRAM作为存储方案的H.264编码方案图,如图1所示,其中CAMERA表示图像传感器,H.264Encoder表示编码器。其编码按如下步骤进行:
步骤101:CAMERA采集数据后作为原始数据写入SDRAM,需要1帧数据量;
步骤102:编码器从SDRAM读出原始数据进行编码,需要1帧数据量;
步骤103:从SDRAM读取参考帧数据,需要3帧数据量;
步骤104:编码数据去块滤波后输出,需要1.25帧数据量;
步骤105:NAL输出,由于H.264的压缩率很高,数据量可以忽略不计;
总计,从CAMERA输入到H.264码流输出,总带宽需求为一帧数据的6.25倍。
图2是在内部增加Line Buffer后的H.264编码存储方案示意图。其编码过程按如下步骤进行:
步骤201、202分别和图1中的101、102处理过程相同,不再赘述;
步骤203:在做帧间编码时,从SDRAM一次缓冲3个整MB行大小的数据到Line Buffer,
对SDRAM的带宽开销降低为1帧;
步骤204:编码器直接从Line Buffer中读取参考帧数据,进行帧间编码。
步骤205:编码器后的数据进行去块滤波后写入SDRAM;
步骤206:NAL输出,数据量忽略不计;
重复步骤202到206,直到一帧图像编码结束。增加Line Buffer后的总带宽需求为1帧数据的4.25倍,Line Buffer大小约为135KB。
图3是在本发明采用Reference Buffer后的H.264编码存储方案示意图。其编码步骤从301到306,与图2中的步骤201到206完全相同。由于图像被分割为4个图像列,所以步骤302到306要不断重复,直到4个图像(即一帧图像)列全部编码结束。
图4是本发明对图像分割后进行编码的顺序图和相应的缓冲区。设置N=2,即分割为4个图像列,按照自左向右自上而下的顺序逐行编码,1/4MB行=Width/(16x2N)。由于将图像分成了4列,缓冲区的大小为(Width/16x2N+2)个MB。对于1920x1080分辨率的图像。图4是针对1920x1080分辨率编码,如果分辨率提高或降低,N可以相应的增大或缩小,从而保持缓冲区大小不变。
图5、图6、图7、图8是本发明提出的Reference Buffer工作示意图,Reference Buffer由1/4MB行+2个MB构成,图5表示当前编码的MB在图像中位于第M行,需要参考帧的第M-1行、第M行和第M+1行的数据,图6表示进行第M+1行编码,此时Reference Buffer中原来的第M-1行数据不再需要,换入了第M+2行数据,图7表示进行第M+2行编码,Reference Buffer中原来的第M行数据不再需要,换入的第M+3行数据,图8表示进行第M+3行编码,Reference Buffer中原来的第M+1行数据不再需要,换入的第M+4行数据。从这个过程可以看出,Reference Buffer采用回卷的方式替换新的数据。
Claims (4)
1.一种用于高分辨率视频的H.264帧间编码存储管理方法,其特征在于,该存储管理方法采用很小的Reference Buffer作为缓冲区,在做帧间编码时,直接从Reference Buffer中读取参考帧数据,减少对SDRAM的访问次数;将输入的图像等分成2N列,N根据分辨率来设定,按照从左向右的顺序,依次对每一列图像分别进行编码,每列图像按照自上而下的顺序依次编码,2N个图像列编码后产生2N个H.264码流,码流以链表的形式存入外部的SDRAM,最后把2N个码流合并为一个完整的码流,完成H.264帧间编码。
2.根据权利要求1所述的存储管理方法,其特征在于,采用Reference Buffer作为缓冲,进行帧间编码时,先从SDRAM中取出参考帧数据,存入到内部的Reference Buffer,然后直接从Reference Buffer中读取参考帧数据进行编码;针对每个16x16像素宏块MB取参考帧数据,除了要取参考帧对应位置的MB数据外,还要取该MB相邻的上、下、左、右四个MB数据,所述Reference Buffer由3个MB行组成。
3.根据权利要求2所述的存储管理方法, 每个Reference Buffer行的大小用BufMBLine表示,单位为一个MB的大小,其计算方法为:
BufMBLine = Width/(16x2N) + 2 (1)
其中,Width是图像的宽度,所述Reference Buffer的大小用BufArea可以表示为:
BufArea= 3 x BufMBLine; (2)
根据权利要求1或2所述的存储管理方法,其特征在于,分割的图像列按照从左向右的顺序,依次对2N列图像分别进行编码,对每列分割后的图像,自上而下进行编码,当编码进行到第Width/(16x2N)个MB,即分割后的图像一行编码结束时,参考帧对应行的上一行数据后续不再需要,此时可以把缓冲区中上一行的数据清空,并从SDRAM中读取新的数据行用于后续的编码。
4.根据权利要求1、3、4中任一项所述的存储管理方法,其特征在于,整个Reference Buffer的三行缓冲空间,是按照回卷方式重复使用的,分割后图像列的编码顺序自上而下,Reference Buffer按行填充的顺序是1->2->3->1->2->3,自上而下回卷填充,实现Reference Buffer的更新。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410232742.7A CN103986937A (zh) | 2014-05-28 | 2014-05-28 | 一种用于高分辨率视频的h.264帧间编码存储管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410232742.7A CN103986937A (zh) | 2014-05-28 | 2014-05-28 | 一种用于高分辨率视频的h.264帧间编码存储管理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103986937A true CN103986937A (zh) | 2014-08-13 |
Family
ID=51278748
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410232742.7A Pending CN103986937A (zh) | 2014-05-28 | 2014-05-28 | 一种用于高分辨率视频的h.264帧间编码存储管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103986937A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070195882A1 (en) * | 2004-03-08 | 2007-08-23 | Koninklijke Philips Electronics N.V. A Corporation | Video decoder with scalable compression and buffer for storing and retrieving reference frame data |
CN101031052A (zh) * | 2006-02-28 | 2007-09-05 | 上海奇码数字信息有限公司 | 图像在存储器中的地址映射方法 |
CN101052128A (zh) * | 2006-04-03 | 2007-10-10 | 松下电器产业株式会社 | 运动检测装置和方法、运动检测集成电路和图像编码装置 |
CN101969560A (zh) * | 2010-11-01 | 2011-02-09 | 北京中科大洋科技发展股份有限公司 | 一种多核平台下Mpeg2高清编码器的Slice码率分配方法 |
-
2014
- 2014-05-28 CN CN201410232742.7A patent/CN103986937A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070195882A1 (en) * | 2004-03-08 | 2007-08-23 | Koninklijke Philips Electronics N.V. A Corporation | Video decoder with scalable compression and buffer for storing and retrieving reference frame data |
CN101031052A (zh) * | 2006-02-28 | 2007-09-05 | 上海奇码数字信息有限公司 | 图像在存储器中的地址映射方法 |
CN101052128A (zh) * | 2006-04-03 | 2007-10-10 | 松下电器产业株式会社 | 运动检测装置和方法、运动检测集成电路和图像编码装置 |
CN101969560A (zh) * | 2010-11-01 | 2011-02-09 | 北京中科大洋科技发展股份有限公司 | 一种多核平台下Mpeg2高清编码器的Slice码率分配方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103650496B (zh) | 用于在hevc中编码的基于像素的帧内预测 | |
CN103220528B (zh) | 通过使用大型变换单元编码和解码图像的方法和设备 | |
CN1136736C (zh) | 具有简缩装置的mpeg译码器和处理mpeg编码数据流的方法 | |
CN101282479B (zh) | 基于感兴趣区域的空域分辨率可调整编解码方法 | |
AU2012391251B2 (en) | Method, apparatus and system for encoding and decoding video | |
TWI382769B (zh) | 減少記憶體之h264/mpeg-4進階影像編碼編解碼器 | |
CN1122414C (zh) | 将图象数据存入存储器前按显示装置分辨率对图象数据去压缩和再压缩的mpeg系统和方法 | |
CN105027566B (zh) | 视频处理方法及视频处理装置 | |
CN101783957B (zh) | 一种视频预测编码方法和装置 | |
KR20200033331A (ko) | 비디오 이미지 인코딩 및 디코딩 방법, 장치 및 디바이스 | |
CN104919798A (zh) | 量化矩阵编码的方法和装置 | |
CN110225354A (zh) | 用于高性能视频编码中的无损编码模式的环内滤波的装置 | |
CN1523893A (zh) | 视频编码和解码方法、设备及程序 | |
CN101584220B (zh) | 对视频信号进行编码的方法和系统、编码的视频信号、对视频信号进行解码的方法和系统 | |
CN101960858A (zh) | 运动图像编码装置、摄像装置以及运动图像编码方法 | |
CN105306957A (zh) | 自适应环路滤波方法和设备 | |
CN101873490B (zh) | 图像处理方法和使用该方法的图像信息编码设备 | |
CN101316366A (zh) | 图像编/解码方法和图像编/解码装置 | |
KR20150017350A (ko) | 폐색 맵의 이용에 기초한 3차원 비디오 스트림의 생성 및 복원 방법, 및 그 대응 생성 및 복원 디바이스 | |
JP6019520B2 (ja) | 立体画像を生成、送信、および、受信するための方法、および関連するデバイス | |
CN110495178A (zh) | 3d视频编码的装置和方法 | |
CN111464812A (zh) | 编码解码的方法、系统、装置、存储介质及处理器 | |
US20080310515A1 (en) | MPEG-2 2-Slice Coding for Simple Implementation of H.264 MBAFF Transcoder | |
CN110225344A (zh) | 一种适用于hevc标准中的有损压缩方法 | |
CN103220507A (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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20140813 |