嵌入式图像处理系统中JPEG技术分析

2014-10-21 12:55康婷婷
电子世界 2014年23期
关键词:嵌入式

康婷婷

【摘要】随着电子信息技术的发展,嵌入式系统在各行业都应用广泛起来。嵌入式图像处理系统作为嵌入式系统应用的一部分,在我们生活、工作中也越来越重要 。本文详细描述了Linux下图像采集模块中串口摄像头使用的JPEG技术的相关原理。

【关键词】JPEG;图片压缩;嵌入式;串口摄像头

1.引言

当搭建起嵌入式系统的软件平台,建立操作系统、文件系统,开发对应的应用程序,即可建立相应系统模块。摄像头的应用程序在操作系统平台上,要完成的是采集图像数据信息,并把采集到的数据进行打包。图像采集即向串口设备输入指令,进而读出数据,获得图像。但是嵌入式系统资源有限,有时受传输带宽及存贮容量的限制,常常需要使用圖像压缩技术[1]来将原始数据压缩后再存贮或传输,从而使嵌入系统的资源得到更好的利用。串口摄像头输出的文件数据是标准的16进制JPEG文件格式。JPEG是一种基本的图像压缩方式,JPEG 压缩充分利用了人类视觉对色彩空间中高频数据信息不敏感的特性,将图像压缩损失部分定位到了视觉不易察觉的位置,从而简化了需处理的数据信息。本文对串口摄像头的使用及JPEG编解码过程做了概述。

2.串口摄像头

串口摄像头作为图像采集处理设备具有采集图像、控制拍摄、红外补光、数据压缩、数据传输等功能。可以和标准的RS232接口进行通信,数据传输协议可以使摄像头与电脑及各种嵌入式设备进行连接。

本文选用JPEG串口相机LS-Y201,通过简单的串口指令控制图像的拍摄、获取。摄像头得到取图命令便开始采集图像,图像压缩为JPEG格式输出,摄像头传递方式采用分包传递,每传递一个数据包,在得到确认命令之后,再传递下一个包,直到图像传输完成。数据传输相关指令与摄像头建立了同步连接,可设置图像的大小,获取图像,并保存。 串口摄像头拍摄流程图如图1所示。

图1 串口摄像头拍摄流程

串口摄像头得到的数据中FF D8为图片开始标识,FF D9为图片结束标识,中间部分为标准JPEG文件数据。JPEG文件数据由头文件和图像数据两大部分组成,而头文件包含了图像大小,采样因子,量化表,Huffman表等重要信息。下面对JPEG 原理进行详细分析。

3.JPEG 原理详细分析

3.1 色彩空间

人类视觉特性,通常会将RGB 空间表变换到其他色彩空间中。计算机显示器的色彩空间是YCrCb。

YCrCb与RGB空间之间的转换公式:

(1)

色彩空间是图像采样中的问题,不在数据压缩部分。

图2 JPEG文件数据压缩流程

3.2 离散余弦变换(DCT)

DCT变换是将采集数据信息从色彩空间域转换到频率域,可将像素块能量集中到位于矩阵左上角低频域的低频直流系数,而变换后矩阵右下角高频系数系数趋于0[2].DCT变换将信息能量集中,减少了表示图像的数据量,压缩了数据冗余,进而减少了运算时间。

DCT变换的公式为:

(2)

f(i,j)经DCT变换之后,F(0,0) 是直流系数,其他为交流系数。

3.3 量化

量化的算法描述是把频域上各个元素,除以对应该元素的相应常数,得到的结果再四舍五入取最接近的整数。

量化实质是对DCT系数的一种优化,利用人眼对高频信息不敏感的特点来简化数据。量化在保证一定图像质量前提下,丢弃了图像中对视觉效果影响不大的数据信息。量化的多对一映射,使得DCT编码信息损失。量化是JPEG算法过程中主要的有损运算,是图像质量下降最主要的原因。

3.4 “Z”字形排列扫描

量化后,为了减少储存空间,可将低频部份零值放在一起,这样就用到了斜向扫描(Zigzag scan)。“Z”字扫描是对8*8数据块[3]沿着空间频率大小增加的方向进行重新排列,使许多的零可以被串接在一起。

3.5 直流系数(DC)用差分脉冲编码调制((DPCM)编码

DPCM是一种预测编码,直流系数即每个8*8块图进行DCT运算后的第(0,0)个元素。JPEG从0开始对DC编码,定义DC(0)=0,当前图块DC值减去前一个图块DC值等到差值,运用DPCM技术进行编码。

3.6 交流系数(AC)用行程长度编码(RLE)编码

因AC系数中有多个0值,且多数0是连续的,运用RLE进行编码。即JPEG将连续0的个数放置在第一字节高四位,将非0数的位数放置在第一字节后四位,将AC系数的数值放置在后面的第二字节。行程编码是连续且精确的编码,一位错误符号将影响整个编码序列,且无法还原回原始的数据。

3.7 熵编码

JPEG技术运用的熵编码是Huffman编码,这是一种变长编码,将出现概率高的符号分配较少码字,出现概率低的符号则分配较长的码字。Huffman编码表有亮度信号的DC,AC表,色度信号的DC,AC表共四张表。这四张表可以事先进行定义。

编码的最后一步是将标记代码和编码数据组成一帧帧数据,这便形成JPEG码流。

4.JPEG的解码显示

JPEG图像的解码就是图像压缩编码的逆过程。JPEG解码程序从JPEG文件中读出各种有用的压缩数据。检测到SOI标记开始读取数据,可通过熵解码对AC、DC系数的量化表进行还原,通过标记码中加权函数对DCT系数进行还原,做相应反离散余弦变换,将图像从频域转换到空间域,即可得到RGB色彩图像。

5.结束语

JPEG算法的解析对JPEG图片优化分析有重要作用,能有效提高图片压缩比,能有效的提高图片质量,改变图片大小,更便于传递,也对系统后续图像处理打下了坚实基础。

参考文献

[1]高国芳.数字图像压缩处理技术[J].重庆科技学院学报:自然科学版,2006,8(2):93-95.

[2]朱秀昌,刘峰,胡栋.数字图像处理与图像通信[M].北京:北京邮电大学出版社,2002.

[3]张旭东,卢国栋,冯健.图像编码基础和小波压缩技术——原理、算法和标准[M].清华大学出版社,2004:56-88.

猜你喜欢
嵌入式
慕课嵌入式翻转课堂在双语教学中的应用研究
嵌入式系统技术及其应用
嵌入式计算机技术及其应用研究
JG/T136—2016单层网壳嵌入式毂节点
嵌入式LINUX操作系统的研究
嵌入式的特点及发展机遇
嵌入式组件技术的研究及应用
基于嵌入式系统的游戏程序设计
“嵌入式系统概论”课程设计
AItera推出Nios II系列软核处理器