一种用于高分辨率视频的h.264帧间编码存储管理方法

文档序号:7804961阅读:301来源:国知局
一种用于高分辨率视频的h.264帧间编码存储管理方法
【专利摘要】本发明公开了一种用于高分辨率视频的H.264帧间编码存储管理方法。H.264帧间编码会不断从SDRAM中取参考帧的数据,当视频分辨率增加时,所需带宽将线性增加。由于搜索窗有重叠,可以进行数据重用。本发明提出了一种基于局部参考帧缓冲区的存储管理方案,采用该方案,参考帧数据只需取一次,避免了重复存取,降低了外部存储器带宽,并且,缓冲区大小和图像分辨率无关,尤其适用于高分辨率视频的H.264帧间编码。本发明将输入的视频在水平方向平均分成2N列,根据不同的分辨率设定不同的N,大分辨率的视频设置大的N,小分辨率视频设置小的N,按照水平方向先左后右的顺序对视频进行逐行编码,采用小容量的缓冲区即可存放需要用到的参考帧数据。
【专利说明】—种用于高分辨率视频的H.264帧间编码存储管理方法
【技术领域】
[0001]本发明涉及视频编码【技术领域】,尤其涉及一种用于高分辨率视频的H.264帧间编
码存储管理方法。
【背景技术】
[0002]H.264 标准是 ITU-T(ITU-T for ITU Telecommunication StandardizationSector,国际电信联盟远程通信标准化组织)的VCEG(Video Coding Experts Group,视频专家组)和IS0/IEC(国际标准化组织/国际电工委员会)的MPEG(Moving PicturesExperts Group,活动图像专家组)的JVT (Joint Video Team,联合视频组)开发的视频编码标准。在相同的重建图像质量下,H.264比H.263节约一半的码率。它既保留了以往压缩技术的优点和精华,又具有其他压缩技术无法比拟的许多优点,既是ITU-T的H.264,又是IS0/IEC的MPEG-4的第10部分。
[0003]随着高清视频的发展和普及,视频编解码技术在大存储、大数据量、高带宽占用等方面,又面临着严峻的挑战。如果处理不好带宽的优化、编码器数据存取等问题,只是通过改进编码器内部的编码算法,也无法使整个编码器系统的性能,得到明显的提高。在H.264编码过程中,最基本的做法是将从图像传感器采集到的数据存放到外部的SDRAM中,然后从SDRAM中取得编码的原始数据进行编码,将编码后的最终数据再重新存入外部的SDRAM中,完成一帧图像的编码。在做帧间编码时,需要从外部的SDRAM中读取参考帧数据,对于当前帧的每个MB,在取参考帧数据时,除了要从SDRAM中读取参考帧对应位置的MB数据外,还需从参考帧中同时读取对应位置的MB上下左右4个MB的数据。因此参考帧中的每个MB都会被用到5次,对于一帧图像的帧间编码来讲,相当于需要从外部SDRAM中对参考帧数据重复读取5次,相当于5帧的数据量,占用了大量的SDRAM带宽资源。针对水平方向数据连续的特点,可以通过缓冲将连续几个MB的数据复用,这种方法无法复用垂直方向的数据,因此,还是需要从SDRAM中读取3帧的数据量。
[0004]进一步降低SDRAM带宽,可以采用3个整行MB (宽度等于图像宽度,高度为16个像素)大小的Line Buffer进行缓冲,来减少对外部SDRAM的访问次数。即从SDRAM中取出3个整行MB的参考帧数据,存入到Line Buffer中,在做帧间编码时,直接从Line Buffer中取得参考帧数据进行编码。这样,只需要从外部的SDRAM中取一次参考帧数据,对SDRAM的带宽占用减少到I帧的数据量。这种采用整个MB行做Line Buffer的缓冲策略,虽然减少了对SDRAM的带宽占用,但需要大量的内部存储器资源用于缓冲区。随着视频分辨率的不断提升,采用这种MB行Line Buffer做缓冲,需要的缓冲区大小随着分辨率的上升而线性增加,在高分辨率的应用中并不可取。因此,充分利用小容量存储器来降低SDRAM带宽,利用较少的内部存储资源,来实现带宽利用率的最优化,就成为本发明需要解决的问题。

【发明内容】

[0005]本发明提供一种用于高分辨率H.264帧间编码的存储管理方法,目的是基于有限容量的内部缓冲区,减少帧间编码对外部SDRAM访问的带宽开销。
[0006]该发明采用以下技术方案来实现:
[0007]将输入的图像等分成2N列,N根据分辨率来设定。按照从左向右的顺序,依次对每一列图像分别进行编码,每列图像按照自上而下的顺序依次编码。2N个图像列编码后产生2N个H.264码流,码流以链表的形式存入外部的SDRAM,最后由软件把2N个码流合并为一个完整的码流,完成H.264帧间编码。
[0008]H.264进行巾贞间编码时,米用Reference Buffer作为缓冲,进行巾贞间编码时,先从SDRAM中取出参考巾贞数据,存入到内部的Reference Buffer,然后直接从Reference Buffer中读取参考帧数据进行编码。针对每个MB取参考帧数据,除了要取参考帧对应位置的MB数据外,还要取对应MB相邻的上、下、左、右四个MB数据。为避免参考帧数据的重复读取,Reference Buffer 由 3 个 MB 行组成。
[0009]Reference Buffer每行的空间大小用BufMBLine表示,单位为一个MB的大小,其计算方法为:
[0010]BufMBLine = Width/(16x2N)+2 (I)
[0011]其中,Width是图像的宽度,加2是因为图像被分割后为多个图像列后,会产生了新的边界,而在新边界处的MB,并不是实际的图像行的开始或结束,实际上,参考帧对应MB的左边和右边都存在相邻的MB可用于编码。分割后图像列除了第一列和最后一列只有一个新边界,其他的图像列都有两个新边界,所以Reference Buffer行的大小需要加2以满足编码需求;
[0012]Reference Buffer 的大小用 BufArea 可以表不为:
[0013]BufArea = 3xBufMBLine ; (2)
[0014]分割后的图像列按照从左向右的顺序,依次对2N列图像分别进行编码,对每列分割后的图像,自上而下进行编码。当编码进行到第Width/(16x2N)个MB,即分割后的图像一行编码结束时,参考帧对应行的上一行数据后续不再需要,此时可以把缓冲区中上一行的数据清空,并从SDRAM中读取新的数据行用于后续的编码;
[0015]整个Reference Buffer的三行缓冲空间,是按照回卷方式重复使用的。分割后图像列的编码顺序自上而下,Reference Buffer按行填充的顺序是1->2->3->1->2->3,自上而下回卷填充,实现Reference Buffer的更新。
[0016]该发明具有以下有益效果:
[0017]内部Reference Buffer资源的计算。一个MB的数据量为16x16x1.5 = 384字节。对于分辨率为1920x1080的视频,采用本发明的存储管理方法,设置N为2,所需的Reference Buffer的大小计算如下:
[0018]BufArea = 3x[I (/ (2x2)x(1920/16)+2]x384 = 38016yte ; (3)
[0019]采用MB行Line Buffer的存储管理方法,缓冲区大小用BufArea’表示为:
[0020]BufArea,= 3x(1920/16) x384 = 138240Byte ; (4)
[0021 ] 即对于1920x1080的视频,采用本发明的存储管理方法,所需的ReferenceBuffer大小仅为37.1KB ;而以MB行的Line Buffer缓冲的方法,所需的Line Buffer为135KB,是本发明的内部存储器资源的3.6倍。
[0022]SDRAM带宽的开销计算。还是以1920x1080的视频为例,将图像分为4个列(N =2)进行编码,第一个图像列和最后一个图像列各多I个新边界,中间2个图像列各多2个新
边界,相比于MB行Line Buffer缓冲方法,一共需要从SDRAM多取(1+1+2χ2)xl080/16 =
405个MB,增加的SDRAM开销比例Delta计算如下:
【权利要求】
1.一种用于高分辨率视频的H.264帧间编码存储管理方法,其特征在于,该存储管理方法采用很小的Reference Buffer作为缓冲区,在做巾贞间编码时,直接从ReferenceBuffer中读取参考帧数据,减少对SDRAM的访问次数;将输入的图像等分成2N列,N根据分辨率来设定,按照从左向右的顺序,依次对每一列图像分别进行编码,每列图像按照自上而下的顺序依次编码,2N个图像列编码后产生2N个H.264码流,码流以链表的形式存入外部的SDRAM,最后把2N个码流合并为一个完整的码流,完成H.264帧间编码。
2.根据权利要求1所述的存储管理方法,其特征在于,采用ReferenceBuffer作为缓冲,进行帧间编码时,先从SDRAM中取出参考帧数据,存入到内部的Reference Buffer,然后直接从Reference Buffer中读取参考帧数据进行编码;针对每个16x16像素宏块MB取参考帧数据,除了要取参考帧对应位置的MB数据外,还要取该MB相邻的上、下、左、右四个MB数据,所述Reference Buffer由3个MB行组成。
3.根据权利要求2所述的存储管理方法,每个ReferenceBuffer行的大小用BufMBLine表示,单位为一个MB的大小,其计算方法为: BufMBLine = Width/(16x2N) + 2(I) 其中,Width是图像的宽度,所述Reference Buffer的大小用BufArea可以表示为: BufArea= 3 x BufMBLine ;(2) 根据权利要求1或2所述的存储管理方法,其特征在于,分割的图像列按照从左向右的顺序,依次对2N列图像分别进行编码,对每列分割后的图像,自上而下进行编码,当编码进行到第Width/(16x2N)个MB,即分割后的图像一行编码结束时,参考帧对应行的上一行数据后续不再需要,此时可以把缓冲区中上一行的数据清空,并从SDRAM中读取新的数据行用于后续的编码。
4.根据权利要求1、3、4中任一项所述的存储管理方法,其特征在于,整个ReferenceBuffer的三行缓冲空间,是按照回卷方式重复使用的,分割后图像列的编码顺序自上而下,Reference Buffer按行填充的顺序是1->2->3->1->2->3,自上而下回卷填充,实现Reference Buffer 的更新。
【文档编号】H04N19/50GK103986937SQ201410232742
【公开日】2014年8月13日 申请日期:2014年5月28日 优先权日:2014年5月28日
【发明者】谢震, 齐静瑞, 徐情生, 顾宇巍, 刘新宁, 杨军 申请人:东南大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1