嵌入式图像采集系统的JPEG算法改进
首先离散余弦变换可以通过离散傅里叶变换来实现,其公式如下:
其中Re()为求实部,u,v的取值范围是0~7。并且对于二维的离散傅里叶变换可使用连续的一维的傅里叶变换来实现,即将傅里叶变换核
写成
其中在8×8的图像子块中M,N均为8。在用离散傅里叶变换计算离散余弦变换时需要将序列扩展为偶序列,而对于偶序列的函数可以表示为傅里叶级数:
令cosx=t,由三角函数的恒等变换得:
cos2x=2cos2x-1
cos3x=4cos3x-3cosx
……
从而可得:
由此可知,括弧中的因式恰好满足Chebychev多项式T(n,t)=2xT(n-1,t)-T(n-2,t)。该多项式具有良好的递归性和正交性,并且其展开式的收敛性良好,可以通过一般性的幂函数
来说明。因为函数e-x在(-∞,+∞)内收敛,所以对于x在任意区间[a,b],均可以通过公式y=(2x-b- a)/(b-a)将其映射到[-1,1]。当我们取前4项时使用Cheby2chev多项式展开的最大误差为0。0073444,上式的最大误差为0。 0516152,因此用它来表示函数可以使用较少的数据项,达到较高的精度,从而在变换域可以选择更少的系数构成量化码表的编制,减少数据的传输量,提高图像的压缩比。
实验结果及分析
图2中的a)和b)分别是算法改进前后的图像的比较。改进前对一幅230456字节320×240的BMP图像,进行压缩后得到一幅26951字节的 JPEG图像,压缩比约为8.5∶1;而改进后得到的一幅8107字节的图像,压缩比约为28∶1,可见压缩比大大提高。
a) 算法改进前的压缩图像 b) 算法改进后的压缩图像
图2 改进前后压缩图像的比较
结论
对于32 位的嵌入式系统,在应用于图像采集,特别是远程的图像采集时,因处理器足以完成复杂的运算,可以使用改进的JPEG算法,以获取更高的图像压缩比,从而提高图像数据在网络上的传输速度。
linux操作系统文章专题:linux操作系统详解(linux不再难懂)
评论