一种适用于视频编码的图像前处理装置的制作方法

文档序号:16319226发布日期:2018-12-19 05:36阅读:317来源:国知局
一种适用于视频编码的图像前处理装置的制作方法

本发明涉及视频编码领域,具体涉及一种对视频编码源的进行前处理的装置。



背景技术:

随着用户对高清视频的需求越来越高,图像处理过程所耗费的带宽资源以及实时性成为系统瓶颈。

在现有技术中,二维图像缩放滤波器可以在水平和垂直两个方向对原始图像进行缩放,传统的缩放方法,一种是先水平,中间结果写入片外内存,然后从片外内存读取水平缩放结果,进行第垂直缩放处理。这种方法实现比较简单,但是它需要多次的读写片外内存操作会消耗更多的系统带宽,降低系统处理性能。一种是一步实现二维缩放操作,这种方法需要很多的行缓冲器来存储滤波器所需要的原始图像像素信息,这样会使用大量片上内存,尤其是在视频编码领域,图像处理是按宏块格式输出,为了满足一个宏块中数据快速输出,如果采用传统的方法,比如2阶垂直滤波器,最差情况下需要缓存32条线,这就需要消耗大量的硬件资源,而且这种按整行缩放的方式不能满足视频编码实时性要求。



技术实现要素:

在视频编码领域,为了解决现有图像处理技术存在的问题,本发明提供了一种适用于视频编码的前处理装置,可以克服现有技术存在的问题。

本发明解决其技术问题所采用的技术方案是:提出了一种适用于视频编码的前处理装置,包括数据源管理模块,用于产生当前编码输出宏块行所需要的源图像读指令然后读出数据并缓存;二维缩放模块,用于当前目标宏块16x16像素的二维缩放输出;图像混合层模块,根据每个图像层的宏块叠加坐标关系读取当前及预读下个所需要的图像层数据,然后叠加输出;输出模块,根据视频编码宏块数据输出格式及缩略图尺寸,完成编码目标宏块及缩略图的输出;这些模块均采用在线流水的方式完成处理。其中,所述数据源管理模块中的读指令产生器会根据缩放因子提前计算好当前宏块行中16条线所需要源数据对于的读数据指令并存入读指令缓冲器中,直到当前宏块行缩放所需源数据读取完成,更新读指令缓冲器中读指令用于下一个宏块行缩放;数据缓存模块将源图像水平方向按每32个像素点进行切割,然后采用3片sram轮转方式,根据sram空满状态,硬件动态从左到右读取相应的块数据(数据量=总行数x32)。所述二维缩放模块缩放时将宏块分为4个16x4的块,块的顺序从左到右,块内从上到下进行缩放,采用水平2个点并行缩放,然后进行垂直缩放,中间结果存储仅需少量内部寄存器即可。所述图像层叠加模块能实现4图像层叠加,一方面根据当前宏块坐标判断下个宏块是否有图层叠加,来决定是否预读相应的图像叠加层源存入sram,另一方面从sram中读出当前宏块需要叠加的图像,同上一级缩放输出的结果逐一叠加。所述输出模块将上一流水级输出的像素按444转420输出给视频编码级,按缩放比例(4,8,16)进行长宽等比例缩小输出缩略图,缩小过程利用一个寄存器和累加器对像素值进行累加,直到输出有效缩放值才复位。

本发明的有益效果是:提出了一种适用于视频编码的图像前处理装置,其能完成编码输入源的在线实时滤波操作,中间结果无需访问片外内存,直接在线的方式送给视频编码输入级,能有效降低了带宽消耗,且相比于传统缩放方法,该装置减少了缓存资源。

附图说明

图1是一种用于视频编码的图像前处理装置的框图。

图2是该装置采用的视频源分块读取顺序及存储方式示意图。

图3是宏块内部数据二维缩放输出顺序图。

图4是图层叠加模块示意图。

具体实施方式

下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。

如图1所示,是本发明一个实施例的前处理图像框图,图中数据源管理模块101完成源图像的读取与存储操作,二维缩放模块102完成一个16x16宏块内部数据的缩放输出,图像层叠加模块103完成4个图层与上一级的缩放输出视频层进行叠加,输出模块104完成上一级叠加结果的444转420输出给视频编码级和进行(2,4,8)等比例缩小的缩略图输出。

本发明实施例具体过程如下:以1920x1080缩小到1280x720,采用2阶垂直滤波,缩放因子scale为384,4个图像层叠加,缩略图按4倍缩小为例。数据源管理模块101首先根据当前输出宏块坐标得到16条线在目标图像中的坐标位置yoi=mby+i(y0,y1,y2……y15),然后根据公式ysrci=yoi*scale取整,求出每条线所需的源图像线位置坐标,汇总整个宏块行需要的所有源图像线坐标(最大32条线);将源图像坐标转换为从外部内存ddr读取数据的控制指令,每一条指令包括对应线的ddr地址、数据突发长度,将这些指令存入指令存储器。图2中给出了源图像分块格式及数据sram的存储格式。数据分块示意201是将源图像水平方向固定32像素切割(可扩展),垂直方向根据缩放因子求得每个目标宏块行所需源数据区间即(ysrc0,ysrc15+1),这些数据块从左到右的顺序被读取。sram存储示意图202使用了3块sram来做存储的轮转,可以有效抗击ddr的数据延时。数据源管理模块101中的缓存控制器根据缓存器空满状态,向片外内存控制器发出连续的读指令,以快速获得所需源数据,直到整个目标宏块行输出完成,重新更新指令存储器。

在一实施例中二维缩放模块102在缩放输出一个宏块时,按照图3方式输出,即将宏块分为4个16x4的块,块的顺序从左到右,块内每4个点从上到下,这种分割方式可以确保较少的源数据就可以进行部分缩放处理,提高处理性能,同时可以很好的配合下一级图像层叠加模块103和输出模块104的数据处理。该模块每条线按水平2点并行缩放,然后用8个寄存器来存储2条线(一条线对应水平方向缩放的4个点输出),最后进行垂直缩放并行输出4个点。整个宏块缩放所需最大时间是264个时钟周期,能够满足高清视频实时编码要求。

在一实施例中图像层叠加模块103,完成了图4所示的4个图像层(不重叠)的混合叠加。预取模块根据当前装置所处理的宏块坐标位置,一方面检索是否需要叠加,另一方面根据这4个图像层在视频层的宏块坐标位置来判断下个宏块位置是否有叠加,进行相应的叠加层源读取,整个过程采用当前叠加块同下一个叠加块的乒乓操作。

在一实施例中输出模块104,将上一级输出的结果进行4倍缩小,整个过程利用一个的寄存器及累加器,采用流水的方式,4个时钟周期即可完成一个有效点缩略图点输出,无需存储所有的一个4x4数据后才开始进行运算。

以上结合实施例作了说明,上述实施例并不构成对本发明的限制,对本领域技术人员来说,可以对上述实施所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而所有这些修改和替换都视为本发明的保护范围。



技术特征:

技术总结
本发明涉及图像处理技术领域,提出了一种适用于视频编码的图像前处理装置。该装置采用在线方式实现源图像的宏块缩放,图像层叠加,缩略图输出等功能,其包括:数据源管理模块、二维缩放模块、图像层叠加模块、输出模块等。数据源管理模块预产生当前目标宏块行输出所需要的源数据读指令及缓存源数据;图像层叠加模块根据每个图像层的坐标位置读出及预读所需相应叠加层宏块数据;输出模块根据固定缩小倍数得到相应尺寸图像数据,然后输出给视频编码模块以及写入片外内存。该装置通过数据源的块状分割及乒乓存储,协同各个模块的流水处理,在减少带宽消耗的同时,满足高清视频编码实时性要求。

技术研发人员:不公告发明人
受保护的技术使用者:珠海亿智电子科技有限公司
技术研发日:2018.09.17
技术公布日:2018.12.18
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1