一种基于DSP的EDMA在图像旋转中的实现方法与流程

文档序号:13676678阅读:402来源:国知局
技术领域本发明涉及一种数字信息技术中的图像旋转算法的实现,具体的说是一种基于DSP的EDMA在图像旋转中的实现方法。

背景技术:
相机在安装过程中因安装位置或者实际场景的需求,需要将相机旋转90、180、270度的角度进行安装,消除由于相机安装角度引起的图像旋转恢复图像的正常状态,使视频以正常的视角播放,便于人眼观看及算法对目标图像分析。图像原数据与旋转后的图像数据在存储位置有规整的对应关系,所以完成图像的旋转,就是更换图像数据的地址位置,可以直接对图像数据的复制来实现图像旋转。图像旋转应用较为广泛,可恢复因相机安装角度导致的视角。图像的旋转通常实现方法主要通过循环拷贝的方式完成图像旋转后的图像数据重组,需要CPU的直接参与,因图像处理中数据拷贝量极大,对实时性能要求高的系统,影响整体效率。目前采用CPU直接进行图像的放大,极大的降低了CPU的利用率,影响系统处理数据的实时性。

技术实现要素:
针对现有技术中在图像旋转时采用CPU直接进行图像的放大,使CPU的利用率降低影响系统处理数据的实时性等不足,本发明要解决的技术问题是提供一种可提高CPU利用率的基于DSP的EDMA在图像旋转中的实现方法。为解决上述技术问题,本发明采用的技术方案是:本发明一种基于DSP的EDMA在图像旋转中的实现方法,其特征在于包括以下步骤:申请两个图像旋转后的图像缓存区buffer1和buffer2,构建乒乓结构;根据设定的图像旋转角度,计算旋转后的图像数据对应的位置,通过配置EDMA将原始图像数据搬移到buffer1的相应位置中;完成搬移后,对buffer1中的旋转后图像进行后续处理,同时,将下一帧图像数据按同样的方式向buffer2中搬移,实现图像旋转的乒乓架构。配置EDMA的方法为:根据图像旋转角度设定EDMA搬移目的地址的起始地址;设定图像的像素点为EDMA搬移的数据单元;根据旋转的角度设定EDMA图像数据搬移时的数据偏移;设定图像数据的行为EDMA搬移的帧;设定图像的行数为EDMA搬移的帧数。计算旋转后的图像数据对应的位置为:1)旋转90度时:a[i][j]=b[j][H-1-i]2)旋转180度时:a[i][j]=b[W-1-i][H-1-j]3)旋转270度时:a[i][j]=b[W-1-j][i]其中,a为图像旋转前的数据矩阵,i为矩阵中像素横坐标,j为矩阵中像素纵坐标,b为图像旋转后的图像数据矩阵,H为图像的像素高度值,W为图像的像素宽度值。实时性满足200万像素25帧每秒的系统;当分辨率超过200万像素,25帧每秒时,结合DSP的EDMA的多通道特性,通过EDMA的多通道进行配置,每个通道处理一帧图像的一块,实现一帧图像的并行处理。本发明具有以下有益效果及优点:1.本发明结合图像旋转90、180、270度时数据地址变换的规律性,利用DSP的硬件设备EDMA的数据搬移及复制功能,实现图像的整数旋转,避免DSP处理大量数据时CPU访问外部存储器慢的缺点,且EDMA在进行图像旋转时的数据搬移过程中,CPU可进行其它操作,达到图像旋转方法在DSP内部的并行操作,该方法基本没有用到CPU运算及数据拷贝,提高了CPU的利用率。2.本发明在DSP的硬件上实现了图像90、180、270度旋转方法,可与CPU并行执行,提高DPS的运行效率。附图说明图1为本发明涉及的原始图像数据矩阵图示;图2为应用末发明方法将原始图像旋转90度后的数据矩阵图示;图3为应用末发明方法将原始图像旋转180度后的数据矩阵图示;图4为应用末发明方法将原始图像旋转270度后的数据矩阵图示。具体实施方式下面结合说明书附图对本发明作进一步阐述。图像的旋转通常实现方法主要通过循环拷贝的方式完成图像旋转后的图像数据重组,需要CPU的直接参与,因图像数据大,对实时性能要求高的系统,影响整体效率。TI公司推出的DSP可采用EDMA可直接访问DDR进行数据读写,对大数据块的拷贝时不仅比CPU效率高且可与CPU并行执行。所以采用EDMA进行图像旋转的实现,不仅可以与CPU并行进行,还能很快的提高图像旋转的效率。EDMA进行非连续数据的搬移比连续数据的搬移慢,但相对CPU来说,还是有很大优势。所以本发明的目的在于提过一种实现图像90、180、270度旋转的快速实现方法,经分析,上述三个角度旋转后的图像与原图像相比有宽高的变换及数据位置的变换,数据变换前后都是规整数据,这种数据地址位置的变换;结合EDMA进行数据搬移的特点,将图像旋转的过程符合EDMA的搬移过程,实现EDMA完成图像旋转的方法,提高系统的整体运行效率。本发明一种基于DSP的EDMA在图像旋转中的实现方法,包括以下步骤:申请两个图像旋转后的图像缓存区buffer1和buffer2,构建乒乓结构;根据设定的图像旋转角度,计算旋转后的图像数据对应的位置,通过配置EDMA将原始图像数据搬移到buffer1的相应位置中;完成搬移后,对buffer1中的旋转后图像进行后续处理(包括图像编解码或者视频分析等),同时,将下一帧图像数据按同样的方式向buffer2中搬移,实现图像的不同角度的旋转。本发明是基于DSP平台,利用其EDMA的数据搬移能力实现图像90、180、270度旋转的系统。系统工作过程中,利用对图像的旋转消除由于相机安装角度引起的图像旋转,恢复图像的正常状态,使视频以正常的视角播放,便于人眼观看及算法对目标图像分析。图像的旋转工程由EDMA独立完成,CPU主要负责对图像的分析,极大的提高了CPU的利用率及系统的实时性。该系统采用多线程,这里只对操作图像旋转的线程的内部原理进行描述。系统创建两个图像缓存区,构建一个乒乓结构。在EDMA向其中一个缓存区按图像旋转搬移数据时,CPU可对另一块完成旋转的图像数据进行后续处理分析,达到EDMA与CPU的并行执行效果。因EDMA进行数据搬移时需要地址32字节对齐的要求,缓存区在创建时要满足地址对齐。该线程在收到图像数据后,根据设定的图像旋转角度进行EDMA配置。根据图像旋转的特性,原图像数据矩阵与旋转后的图像数据矩阵比较,从图1、图2、图3、图4分析可知,原图像数据矩阵a与旋转后的图像数据矩阵b的对应关系如下:1)旋转90度时:a[i][j]=b[j][H-1-i]2)旋转180度时:a[i][j]=b[W-1-i][H-1-j]3)旋转270度时:a[i][j]=b[W-1-j][i]其中,a为图像旋转前的数据矩阵,i为矩阵中像素横坐标,j为矩阵中像素纵坐标,b为图像旋转后的图像数据矩阵,H为图像的像素高度值,W为图像的像素宽度值。根据对应关系及图像数据的图示可知,原始图像旋转后,数据的变化形式遵循的规律如下:1)原数据的行变成了旋转后的列;2)原数据的列变成了旋转后的行;3)行数据倒序。上述规律符合EDMA的数据搬移形式。所以可以通过EDMA对原始图像数据进行搬移,在搬移过程中对数据设定起对应的目的地址及后续图像数据的位置跨度,即可完成图像的旋转变换。整理上述思路,对原始图像的90、180、270度旋转时的EDMA配置方法如下:1)根据图像旋转角度设定EDMA搬移目的地址的起始地址;2)设定图像的像素点为EDMA搬移的数据单元;3)根据旋转的角度设定EDMA图像数据搬移时的数据偏移;4)设定图像数据的行为EDMA搬移的帧;5)设定图像的行数为EDMA搬移的帧数。通过上述步骤,完成EDMA进行一次数据搬移的配置,使EDMA按图像的旋转模式进行数据搬移。同时,EDMA在对图像进行旋转的过程中可与CPU并行工作,且专职进行数据拷贝,对于大数据量而言,其拷贝数据速度快于CPU。以下为具体实例:根据原始图像大小及旋转角度,申请两个图像缓存区buffer1和buffer2。如果旋转角度为90、270度,buffer1和buffer2的大小为H*W;如果旋转角度是180度,buffer1和buffer2的大小与原始图像一样,为W*H。设原始图像数据矩阵为a,旋转后的图像数据矩阵为b,旋转后的图像数据与原始图像数据对应关系为:1)旋转90度时:a[i][j]=b[j][H-1-i]2)旋转180度时:a[i][j]=b[W-1-i][H-1-j]3)旋转270度时:a[i][j]=b[W-1-j][i]其中,a为图像旋转前的数据矩阵,i为矩阵中像素横坐标,j为矩阵中像素纵坐标,b为图像旋转后的图像数据矩阵,H为图像的像素高度值,W为图像的像素宽度值。从上述公式及图1~4各不同旋转角度的图像矩阵数据示意图可以看出,原始图像数据的某一行,在旋转90、270度时变成旋转后图像数据的某一列,在旋转180度时,行的顺序倒置;原始图像数据的某一列,在旋转90、270度时变成旋转后图像数据的某一行,在旋转180度时,列的顺序倒置。根据旋转角度的不同,结合上述数据对应关系,配置EDMA,完成图像数据的行列关系排序,即可完成一帧图像数据的旋转。重复上述过程,通过EDMA的乒乓架构,达到对图像旋转的实时性调度。以上对本发明所涉及的基于DSP的EDMA完成图像旋转的操作进行了详细介绍,对本发明的原理及具体实施方式进行了阐述,以上的实施方式从总体上说明了整个算法设计的原理,有助于帮助理解本发明的方法及核心思想;同时,对于DSP开发的一般技术人员,可以依据本发明的思想,在实施方式及应用范围上,对其算法设计及硬件安排均会有一定更改之处。因图像分辨率越大,数据搬移量越大,每帧消耗的时间越多,针对200万像素25帧每秒的系统,该发明可以满足实时性要求。当分辨率过大时,利用EDMA的多通道特性和图像数据的独立性,将图像从纵向划分为几个图像子块,每个子块由EDMA的一个通道进行处理,达到一帧图像数据的并行处理,以此提高其旋转效率。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1