|
|
|
基于DSP的图像旋转算法数据调度策略
时间:2014-12-16 06:02:12
图像旋转是一种应用广泛的数字图像处理技术,随着应用水平的不断提高,对在嵌入式系统中实现高分辨率大图像旋转的需求也越来越高。如在航空领域的高分辨率数字地图图像的显示处理过程中,由于现有的显示芯片均不能支持图像旋转功能,就需要在资源有限的嵌入式平台上实现大幅面地图图像的实时旋转。采用DSP平台是一种实现方式,具体实现时需仔细考虑两个方面的问题,一是选用计算量小的旋转算法,二是充分发挥DSP平台强大的并行计算能力。
目前,已经有很多有效降低计算量的图像旋转算法,基于图像线性存储结构的旋转方法[1]就是其中之一。然而,在DSP平台上,有限的高速存储资源限制了这些算法效率的直接发挥,需要针对算法及DSP平台的性能结构特点进行高效的数据调度电感器的原理。对于图像旋转问题而言,数据调度还需要克服由于存在大量非连续图像像素地址访问而严重影响DSP数据存取及CPU效率发挥的问题。这是图像旋转本身的特殊性,在其他图像处理技术中是不存在的。本文主要讨论如何利用TI公司TMS320DM642芯片的资源特点,进行高效图像旋转的大规模数据调度,从而实现适用于大图像的DSP实时图像旋转。 1 基于图插件电感像线性存储结构的旋转方法介绍 目前,图像旋转大多采用基于视口映射的处理。视口是指屏幕上的显示区域范围,方法是先计算出旋转后视口图像像素在源图像中的坐标地址值,再依据该地址在源图像中对应读取像素值,最后利用读取的像素值进行插值,得到最终旋转后视口图像。实际上,由于存在对称性,一幅图像任意角度的旋转可分解为一次90°或180°或270°的旋转,再加上一次±45°以内的旋转。 传统的图像旋转一般通过矩阵乘法实现: 其中,α为旋转角度。
所以,对图像作旋转变换,只需对第一行和第一列的像素用式(1)作矩阵乘法运算,对除第一行和第一列以外的像素,用式(2)进行简单的加减运算即可。这样避免了对整幅图像的每个像素作矩阵乘法运算,可节省5~6倍的CPU周期。
|