一种移动终端的图像滤波方法
【技术领域】
本发明涉及一种移动终端的图像处理方法,特别是涉及一种移动终端的图像滤波方法。
【背景技术】
随着技术的发展移动终端性能的提高,用户对信息获取的要求越来越高。而屏幕作为视觉的载体,是信息获取的最主要手段,如何使得用户在使用移动终端设备时得到更好的用户体验是很多厂商努力的方向。而通过绚丽的屏幕显示来达到提高用户体验是一种最直接有效的方法。但是要实现绚丽的显示效果,通常需要软件人员进行大量的编程和对CPU资源和总线带宽大量的使用。如何才能在拥有绚丽显示效果的同时又减少软件人员的工作量并且节约CPU的计算资源和总线的带宽资源是一个很矛盾的问题。而纵向滤波作为一种重要的优化画质的方式,被广泛用于各种显示处理设备中。纵向滤波可以通过锐化图像边缘使图像更加锐丽,也可以通过平滑图像使图像更柔和,常用于普通视频后处理和去交错(deinterlace)后处理。但是在可旋转的屏幕越来越多,90度或者270度旋转后原来的纵向滤波变为了横向,如何同时实现两者并且尽量少地占用资源成为一个矛盾的问题。
【发明内容】
本发明要解决的技术问题,在于提供一种移动终端的关于图像滤波的方法,它能够同时支持图像纵向滤波和水平方向的滤波,以尽量少地占用资源。
本发明是这样实现的:一种移动终端的关于图像滤波的方法,具体包括如下步骤:
步骤10、cpu对配置寄存器进行配置,然后总线读取单元根据配置寄存器的配置信息读取图像数据;
步骤20、将不需要旋转的图像数据传送至图像缓存单元,将需要旋转的图像数据按照要求进行旋转处理后,再传送至图像缓存单元;
步骤30、将图像缓存单元中,不需要旋转的图像数据直接传送至滤波器,需要旋转的图像数据经延时单元处理后,再传送至滤波器;
步骤40、滤波器根据图像是否经过旋转进行滤波,滤波后输出图像。
进一步的,所述步骤20中不需旋转的图像数据在步骤40进行滤波的时候,每计算一个像素点的滤波需要同时读出该像素点和上下位置的像素点输送到单像素滤波器。
进一步的,所述延时单元将图像数据缓存一个时钟节拍和两个时钟节拍,并选择所需要的数据输送到滤波器,需要旋转的图像数据滤波的时候,每计算旋转后某一行一个像素点的滤波,需要同时读出该像素点和它同一行的前一像素点和后一像素点输送到单像素滤波器。
进一步的,所述延时单元缓存两个时钟节拍的时候只缓存一个像素点。
进一步的,步骤40的滤波方式根据需要,选择进行高通滤波或低通滤波。
本发明具有如下优点:
1.本发明可以同时支持水平和垂直方向的滤波,对旋转和不旋转图像的纵向滤波,不需要重复设计两个滤波器来实现;
2.本发明根据用户不同需求,灵活配置高通滤波还是低通滤波,如果配置为高通滤波则可以锐化图像边缘使图像更加锐丽,也可以配置成为低通滤波来平滑图像使图像更柔和;
3.本发明的每个时钟节拍可以并行处理4个8bit像素,流水线操作,过程中没有等待,每一拍都在进行运算,效率很高。
【附图说明】
下面参照附图结合实施例对本发明作进一步的说明。
图1是为实现本发明的一电路结构示意图。
图2为本发明方法的流程图。
图3是未旋转图像纵向滤波的示意图。
图4是延时单元的结构示意图。
图5是旋转后图像纵向滤波的示意图。
【具体实施方式】
请参阅图1至图5所示,对本发明的实施例进行详细的说明。
为实现本发明移动终端的图像滤波方法,本发明还提供一图像滤波处理电路,如图1所示,该图像滤波处理电路包括总线,和连接于总线上面的存储单元、CPU、配置寄存器、总线读取单元。所述配置寄存器连接到总线读取单元,所述总线读取单元、旋转单元、图像缓存单元、滤波单元、屏幕显示控制器、屏幕依次连接;所述总线读取单元还直接连接图像缓存单元,所述图像缓存单元还通过一延迟单元连接到所述滤波单元。上述图像滤波处理电路的各组成部分的功能如下:
所述配置寄存器负责存储整个滤波过程需要的所有信息,如图像的尺寸,图像是否旋转,滤波的方式,滤波的系数等,用户使用CPU通过总线对配置寄存器中的值进行配置;
所述总线读取单元根据配置信息,通过总线从存储单元读取图像数据,并把需要旋转的图像数据送到旋转单元,旋转单元对图像进行旋转处理,再将处理后的数据存放到图像缓存单元;把不需要旋转的图像数据直接送到图像缓存单元;
所述图像缓存单元将需要旋转的图像数据送到延时单元;
所述延时单元对旋转后图像进行延时后,再按一定顺序输入到滤波单元;将不需要旋转的图像数据直接送到滤波单元;
所述滤波单元对图像进行纵向滤波,并根据需要选择低通滤波还是高通滤波。滤波单元滤波后送至屏幕显示控制器然后送至屏幕输出图像。
结合图2,基于上述图像滤波处理电路,本发明移动终端的图像滤波方法的一流程包括:
步骤10、cpu对配置寄存器进行配置,然后总线读取单元根据配置寄存器的配置信息读取图像数据;
步骤20、将不需要旋转的图像数据传送至图像缓存单元,将需要旋转的图像数据按照要求进行旋转处理后,再传送至图像缓存单元;
步骤30、将图像缓存单元中,不需要旋转的图像数据直接传送至滤波器,需要旋转的图像数据经延时单元处理后,再传送至滤波器;
步骤40、滤波器根据图像是否经过旋转进行滤波,滤波后输出图像。
如图3,上述方法中,如果图像没有旋转,则纵向滤波需要上下两行和当前行的数据进行计算。比如需要对行缓存3中的行数据进行滤波,则需要将行缓存2和行缓存4中的行数据同时读出进行滤波处理。在滤波单元内包含低通和高通滤波选择器,该选择器通过用户配置的寄存器中使用高通还是使用低通滤波器的相关位进行选择,经过选通后,经过低通或者高通滤波单元,所述高通和低通滤波单元都含有4个可以处理8bit像素的单像素滤波器。该滤波器支持32bit位宽的处理带宽,每次处理4个像素。每计算一个像素的滤波需要该像素原始位置和上下位置的像素点,经过单像素滤波器(经过选通,可以是高通也可以是低通)滤波处理后,进行数据生成32bit完成滤波的像素。
如图4,所述延时单元的结构,它包括第一级寄存器和第二级寄存器,多路选择器。第一级寄存器将输入的数据缓存一个时钟节拍,第二级寄存器将输入的数据缓存两个时钟节拍。多路选择器将需要的数据选通输入到滤波单元。
结合图5,行缓存读入数据每个时钟节拍32bit,第一级寄存器缓存一个节拍,第二级寄存器再缓存一个节拍,这样可以连续存储3个32bit像素。但是实际上由于对第一级寄存器中的像素进行滤波时,只需要第二级寄存器中的一个像素,为了节省硬件损耗,所以第二级寄存器只有8bit来存储一个像素。
如图所示,假如每个时钟节拍传输4个连续的像素,现在正在读入的像素是当前行的第9到第12像素,第一级寄存器中存储的是第5到第8像素,第二级寄存器中存储的是第4像素,第二级寄存器中虚线框的像素为两拍前的没有存储在第二级寄存器中的像素;那么当前正在进行滤波计算的就是 像素5到像素8,进行滤波的像素将本身和前后一个像素送入单像素滤波器。最终经过单像素滤波器(经过选通,可以是高通也可以是低通)滤波处理后,生成32bit完成滤波的像素。
以上所述,仅为本发明较佳实施例而已,故不能依此限定本发明实施的范围,即依本发明专利范围及说明书内容所作的等效变化与修饰,皆应仍属本发明涵盖的范围内。