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
- buffer
- sdram
- reference frame
- 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
- 238000007726 management method Methods 0.000 title claims abstract description 17
- 239000000872 buffer Substances 0.000 claims abstract description 54
- 230000003139 buffering effect Effects 0.000 claims description 11
- 238000000205 computational method Methods 0.000 claims 1
- 239000000203 mixture Substances 0.000 claims 1
- 238000000034 method Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 3
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 230000008520 organization Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000003709 image segmentation Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
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 |
---|---|---|
CN101389021B (zh) | 视频编解码方法及装置 | |
CN103650496B (zh) | 用于在hevc中编码的基于像素的帧内预测 | |
CN105745926A (zh) | 定宽度变长度像素样值串匹配增强的图像压缩方法和装置 | |
CN105027566B (zh) | 视频处理方法及视频处理装置 | |
CN105491376B (zh) | 图像编码、解码方法及装置 | |
US8498342B1 (en) | Deblocking filtering | |
CN102790884B (zh) | 一种基于分层运动估计的搜索方法及其实现系统 | |
CN103414895A (zh) | 一种适用于hevc标准的编码器帧内预测装置及方法 | |
CN103947211B (zh) | 产生已分区比特流的视频编码装置及方法 | |
KR20090100279A (ko) | 이미지 데이터 스트림의 생성을 위한 방법 및 디바이스, 현재의 이미지를 이미지 데이터 스트림으로부터 재구성하기위한 방법 및 디바이스, 이미지 데이터 스트림 및 이미지 데이터 스트림을 지니는 저장 매체 | |
CN105933708A (zh) | 一种数据压缩和解压缩的方法和装置 | |
CN101212674A (zh) | 图像在存储器中的地址映射方法 | |
CN102497545B (zh) | 内容自适应和艺术可引导可缩放视频编码 | |
CN101115195B (zh) | 视频码流的宏块级耦合的解码和环路滤波方法和装置 | |
CN116868570A (zh) | 特征数据的编码方法、解码方法、设备及存储介质 | |
CN101426139B (zh) | 图像压缩装置 | |
CN102647592B (zh) | 一种高清编码器的运动估计搜索窗数据复用方法 | |
CN104796706A (zh) | 一种视频编码方法及装置 | |
CN101360236A (zh) | 一种Wyner-ziv视频编解码方法 | |
CN100356780C (zh) | 用于压缩视频信号解码的图像存储方法 | |
CN103986937A (zh) | 一种用于高分辨率视频的h.264帧间编码存储管理方法 | |
CN1113638A (zh) | 用于运动补偿视像解码器的存储系统 | |
CN102595117B (zh) | 一种编解码方法和装置 | |
KR101331093B1 (ko) | 프레임 메모리의 단일뱅크 내 참조 영상의 픽셀 인터리빙 방법 및 장치, 이를 포함하는 영상코덱 시스템 | |
CN112468826B (zh) | 一种基于多层gan的vvc环路滤波方法及系统 |
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 |
Application publication date: 20140813 |
|
WD01 | Invention patent application deemed withdrawn after publication |