基于ARM的JPEG图像处理技术研究与应用

2010-06-23 16:27吴嘉彦
梧州学院学报 2010年6期
关键词:余弦首饰内核

吴嘉彦

(广东省人民广播电台,广东广州510012)

基于ARM的JPEG图像处理技术研究与应用

吴嘉彦

(广东省人民广播电台,广东广州510012)

首饰镶嵌工人长期工作在显微镜环境下,容易形成眼睛职业病,研究首饰工件的USB显微图像采集、利用VC++工具进行首饰显微图像JPEG格式压缩、编码、解码,通过移植Samsung公司的嵌入式ARM系统S3C2440A,实现首饰显微图像的LCD显示、JPEG及BMP格式存储、网络传输,可以改善首饰镶嵌工人的工作环境。

首饰镶嵌;图像JPEG编解码;嵌入式

1 引言

随着内地珠宝首饰业的发展,居民的消费习惯也发生了很大的变化:从1982-1993年,人们对金银珠宝的消费还仅仅停留在24K黄金上,而到了1993年,随着跨国珠宝行业巨头渗入中国,珠宝首饰行业也逐渐从保值增值的功能向时尚和多元化过渡。宝石镶嵌[1]首饰市场的迅速发展引起了珠宝首饰业内外人士的注意,尤其是晶石镶嵌首饰,挥舞着悦人的色彩,在国内大有兴起之势。宝石镶嵌首饰市场造就了大量的就业岗位,长期以来,宝石镶嵌工作人员都是长时间在显微镜环境下进行首饰的宝石镶嵌工作,由于长时间使用显微镜等放大工具会导致视觉疲劳,对视力造成了很大的损害,引起眼涩、眼胀、视物模糊、近视、弱视等眼部疾病的发生。研究具有高质量图像放大、图像信息存贮、多媒体及网上交流系统势在必行,利用Samsung公司的嵌入式[2]ARM系统芯片S3C2440A具有价格便宜、[3]资源丰富的优势,实施基于ARM的JPEG图像处理技术研究与系统实现具有一定的实用价值。

2 系统总体方案设计

系统以解决宝石镶嵌静态图像采集、放大、首饰数字图像的存储、网上交流为目的。通过智能自动连续调焦的物镜组,将宝石镶嵌托架静态图像聚集于MB86S02的CMOS图像传感器芯片上,经ARM为核心的图像处理系统对静态首饰图像读取、按JPEG标准进行压缩编码,实现首饰图像的JPEG文件格式,可对图像进行存储、交流;ARM系统对已压缩编码的JPEG格式图像文件进行解码,实现首饰加工现场大屏幕LCD数字图像的显示。

如下页图1所示,系统采用Samsung公司的ARM CPU处理器:S3C2440A,该处理品主频400MHz,最高533Mhz,SDRAM内存为64M,32bit数据总线,时钟频率高达100MHz,带LCD控制器、RAM控制器、NAND闪存控制器、FLASH存储器采用256M的掉电非易失Nand Flash,Nor Flash均为2M,掉电非易失;SDRAM内存为64M SDRAM,32bit数据总线SDRAM时钟频率高达100MHz,LCD显示屏为带电阻式触摸屏,支持黑白、4级灰度、16级灰度、256色、64K色、真彩色TFT液晶屏分辨率为1024x768;1个10M以太网RJ-45接口(采用CS8900网络芯片),实现互联网资源交流,2个串行口USART,1个USB Host型接口,1个用于程序下载的标准JTAG接口,1个扩展系统用总线I2C接口,移植操作系统为Linux。[4]A/D,D/A为模数、数模转换,实现旋转平台的控制。

图 1

MB86S02是Fujitsu(富士通)公司生产的一款式10万像素CIF格式的CMOS图像传感器,片内集成了色彩信号处理模块,图像传感功能与色彩处理功能合二为一。MB86S02集成了CMOS图像传感器阵列、AGC自动增益控制放大器、AD模数转换器、色彩信号处理及数字视频信号输出等功能。图像采集镜头配一组由步进电机同轴连续变焦控制[5]的镜头组,实现首饰图像采集的自动对焦控制。[6]

3 首饰图像的JPEG格式处理

相对而言,首饰镶嵌实际加工环境中所采集的是静态图像。为兼容于广泛应用的互联网、数码相机、手机摄像等对图像的应用领域,首饰宝石镶嵌图像处理采用JPEG格式。[6]JPEG(Joint Photographic Experts Group联合照片专家组)由国际标准化组织ISO和国际电话电报咨询委员会CCITT建立并开发第一套国际静态图像压缩标准。

另一方面,考虑到采用JPEG标准压缩图像,实际上是一种利用人的眼睛对图像的感知信息中的亮度成分特别敏感,而对图像信息的色差成分相对迟钝的特点,进行的“打折压缩”处理,即保留图像上每个像素点的亮度成分,合并相邻像素点的色差成分,实现了图片文件大比例的压缩。虽然难以察觉视觉上的损失,但由于实际上已将相邻像素点的色差信号值进行了合并,图像的实际色彩失真是客观存在的,压缩比越大,合并度越高,色彩损失也就越多,这对首饰宝石镶嵌加工操作不利。为确保首饰宝石镶嵌的高清晰图像质量,研究首饰宝石镶嵌静态图像的JPEG标准压缩编码、解码技术与系统实现具有一定的实用价值。

3.1 首饰图像的JPEG压缩编码

如下页图2所示,对MB86S02图像传感器的静态图像进行JPEG格式编码,首先要对首饰图像矩阵进行分块操作,从左到右,从上到下的次序排列,连续分为8×8数据单位块(若图像长度非8的倍数,先补成8的倍数),在每个单位块内的每个像素取亮度Y值,每个2×2个像素只取一个色差CrCb值,再对数据进行一次离散余弦变换,而离散余弦变换是图像空间域的低通滤波器,表示出经过离散余弦变换的首饰图像点和点之间的规律,图像中的低频分量都集中在左上角,首饰图像的高频分量相对集中在右下角,由离散余弦变换后的低频分量体现图像的主要信息,忽略高频分量实现首饰图像的压缩目的。

图 2

使用Forward DCT(FDCT)对首饰图像进行离散余弦变换,针对8X8图像,FDCT的变换公式如下:

通过量化处理滤除首饰图像的高频分量,进行图像的JPEG编码量化处理即产生了首饰图像高频成分信息的损失。对经FDCT变换后的频率系数进行量化,将每个变换后的值除以量化表中对应的值,为保证首饰图像的人眼视觉效果,即保持图像的低频分量,抑制图像的高频分量,实际安排亮度Y的量化表左上角的值较小,右下角的值较大,实现图像亮度Y的细量化,而对色差信号CrCb采用粗量化,量化表中大数值密度较大,提高密度图像高频部分的压缩比,如图3所示。

图 3

由如下表达式计算量化值:

进行Z字形编排,[6]离散余弦变换之后,图像中低频分量集中在矩阵的左上角,即直流(DC)系数,即8X8子块的平均值,进行单独编码,对相邻图像之间的量化DC系数的差值(Delta)进行编码,Delta=DC(0,0)κ-DC(0,0)κ-1,对剩余的63个交流(AC)系数进行行程编码,如图4所示。采取Z字形编排方法,先低频后高频分量的先后顺序,Z字形行程中连续“0”的个数将增加。

图 4

经Z字形排列后,二维的8X8矩阵降到一维的1x64的低频在头高频在后的矢量。依JPEG算法格式,对编码后的直流系数和行程编码后的交流系数使用熵编码压缩,按JPEG标准,使用范式Huffman编码(Canonical Huffman Code)来减少熵,由码表查表方法实现首饰图像压缩编码。

3.2 首饰图像的JPEG解码显示

当对JPEG图像进行解码时,即是图像压缩编码的逆过程,如图五所示。通过熵解码将数据还原成直流DC值及交流AC值的量化图,由量化区块与加权函数进行计算,利用存于JPEG文件中(标记码部分)的加权函数还原成DCT系数,应用Inverse DCT(IDCT)二维反离散余弦变换,实现反离散余弦转换IDCT,把频率域DCT分量系数转换为空间域表示的首饰数字图像,如f(x,y)所表示,考虑到许多图像文件格式仍然是BMP格式,在实现JPEG格式显示的同时可将图像转换成为RGB色彩的BMP格式文件。[7]

图 5

3.3 基于PC机的JPEG解码器的实现部分程序

typedef void(JpegDecoder::*decode_MCU_func)(DWORD);//Z字形排列后的DCT系数序号矩阵

//数值幅度编码表数组

3.4 嵌入式Linux移植

内核移植[8]的时候有两个地方需要注意,一是文件系统,二是控制台。文件系统所涉及的内容较多,一般在默认配置的基础上进行修改。在调试阶段需要使用网络文件系统(NFS),必须加上对NFS的支持。为了将JPEG解压缩文件从开发调试计算机中移植到Samsung公司的ARM CPU处理器S3C2440A处理器平台,须考虑两开发工具系统的数据类型,而VC和ADS的数据类型完全相同,只是由不同的编译器生成不同的目标代码,在不同的硬件平台上运行,而本系统无操作系统,所以不支持文件系统格式,移植之前屏蔽源程序中的读、写JPEG文件和BMP文件的语句后完全可以进行移植。

内核配置[8]对应控制台驱动,控制台驱动与图像显示关联,首饰图像显示须使用FrameBuffer,在完成对Linux内核配置后,内核仍以源码形式[9]存在,未能直接下载至嵌入系统运行,需要对内核进行编译,生成嵌入式系统上可执行代码。首先,修改内核根目录下的Makefile文件,指明所用的编译器为arm-linux-交叉编译器,使用的体系结构为ARM;然后,设置NAND Flash分区,由于系统所用的是64MB NAND Flash作为Flash存储器,首先必须建立一个NAND Flash分区表,定义各分区的起始地址及分区大小;配置内核选项,将默认的配置文件复制到内核代码的根目录下,可通过make config或make oldconfig或make menuconfig及make xconfig四种方法配置内核。在交叉编译环境ADS下建立工程,将Bootloader代码、UART代码、初始化代码、LCD驱动代码、色彩转换代码、主程序代码等添加进工程文件,设置好运行环境。生成二进制文件并将此文件烧写入NAND FLASH中(一般以0x50000为起始地址),解码程序将自动运行,LCD屏幕上可显示解压缩之后的首饰数字图像。

4 结语

实验结果表明,基于上述处理方法,显微镜头CCD采集的图像经JPEG格式压缩、编码、解码前后图像质量比较如下页图6所示,可以满足首饰显微图像的LCD显示、JPEG及BMP格式存储、网络传输的基本要求。

目前的JPEG图像压缩标准,具有中端和高端比特速率的良好的速率畸变特性,但在低比特率范围内,将会出现很明显的方块效应,其质量变得不可接受。JPEG不能在单一码流中提供有损和无损压缩,当碰到比特差错时图像质量将受到严重的损坏。虽然新的JPEG-2000算法在这有了不少改进,也允许进行无损压缩,但压缩比与图像质量之间永远是难以两全的对立面,要想获得大的压缩比,势必造成图像质量的下降。本文在亮度与色差量化表中进行调整,在首饰图像压缩与图像质量下降矛盾中取一相对值,实现设计目的。

图 6

[1]周汉利.宝石琢型设计及加工工艺学[M].北京:中国地质大学出版社,2007.

[2]三恒星科技.ARM9原理及应用[M].北京:电子工业出版社,2008.

[3]王黎明.ARM9嵌入式系统开发与实践[M].北京:北京航空航天大学出版社,2008.

[4]杨水清,张剑.ARM嵌入式Linux系统开发技术详解[M].北京:电子工业出版社,2010.

[5]王洪辉.嵌入式系统Linux内核开发指南[M].北京:电子工业出版社,2010.

[6]杨旭强,等.基于ARM电动机控制技术[M].北京:中国电力出版社,2008.

[7]宋坤.Visual C++视频技术方案宝典[M].北京:人民邮电出版社,2008.

[8]左飞,刘航.Visual C++数字图像处理[M].北京:电子工业出版社,2009.

[9]李亚锋,欧文盛.ARM嵌入式Linux系统开发[M].北京:清华大学出版社,2007.

TN912

A

1673-8535(2010)06-0067-06

吴嘉彦(1985-),男,广西梧州市人,广东省人民广播电台技术部工程师,研究方向:信息处理、信号传输等。

(责任编辑:覃华巧)

2010-10-09

猜你喜欢
余弦首饰内核
多内核操作系统综述①
强化『高新』内核 打造农业『硅谷』
首饰,是身体的告白
《互生》首饰系列
宝石首饰系列
宝石首饰系列
基于嵌入式Linux内核的自恢复设计
Linux内核mmap保护机制研究
两个含余弦函数的三角母不等式及其推论
实施正、余弦函数代换破解一类代数问题