(信号与信息处理专业论文)基于arm9的车载图像记录仪的设计.pdf_第1页
(信号与信息处理专业论文)基于arm9的车载图像记录仪的设计.pdf_第2页
(信号与信息处理专业论文)基于arm9的车载图像记录仪的设计.pdf_第3页
(信号与信息处理专业论文)基于arm9的车载图像记录仪的设计.pdf_第4页
(信号与信息处理专业论文)基于arm9的车载图像记录仪的设计.pdf_第5页
已阅读5页,还剩66页未读 继续免费阅读

(信号与信息处理专业论文)基于arm9的车载图像记录仪的设计.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 随着我国经济的快速发展,人们的生活水平不断提高,汽车的数量也在急剧 增加。汽车数量的剧增以及各种不安全因素,导致了我国交通事故率居高不下, 交通事故的责任认定已成为重要问题。目前,交通事故的责任认定是依靠事故现 场遗留痕迹和状况来分析、判断、认定事故的责任,不能再现发生事故时的状况, 造成交通事故责任的误判或者不能判定交通事故的责任。另外,为了保证汽车驾 驶员规范操作和公共汽车人身、财产安全,需要实时监测和记录车内状况。因此, 需要一种可以记录汽车内外状况的图像的记录仪。 本文研制了一种车载图像记录仪。在总体方案设计的基础上,采用嵌入式 a r m 9 微处理器设计了车载图像记录仪的硬件;实现并优化了j p e g 图像压缩编 码的算法;在a r m 9 微处理器硬件平台上移植了嵌入式l i n u x 操作系统;在 a d s 软件平台下设计了车载图像记录仪的软件,并进行了试验和调试。 该记录仪能够循环存储汽车运行的图像数据,记录汽车行驶过程中车内外的 状况,为交通事故责任认定提供依据,提醒、督促驾驶员安全驾驶,保证公共汽 车人身、财产安全,提高交通运营部门的管理水平。另外它还可以用于在汽车碰 撞试验中的数据采集进行科学研究。该仪器在汽车交通领域具有重要的应用价 值。 关键词:a r m 9 ;车载图像记录仪;j p e g ;l i n u x a b s t r a c t w i t hc h i n a sr a p i de c o n o m i cd e v e l o p m e n t ,p e o p l e sl i v i n gs t a n d a r d sc o n t i n u et o i m p r o v e t h e r ei sa l s oad r a m a t i ci n c r e a s ei nt h en u m b e ro fa u t o m o b i l e s ,w h i c h ,a l o n 2 w i t hm a n yu n s a f ef a c t o r s ,h a sl e a dt oah i 曲t r a f f i ca c c i d e n tr a t e t h ea u t h e n t i c a t i o n f o rm er e s p o n s i b i l i t yo ft r a f f i ca c c i d e n t si sb e c o m i n gm o r ea n d m o r ei m p o r t a n t a t p r e s e n t ,t h ea u t h e n t i c a t i o nr e l i e sm o s t l yo nt h et r a c ea tt h es p o ta n di su n a b l et o r e p r o d u c et h ea c c i d e n t ,w h i c hw i l lr e s u l ti na ne r r o n e o u sj u d g m e n to ft h ea c c i d e n t i n a d d i t i o n ,t oe n s u r et h a td r i v e r sc a nd r i v es a f e l y , r e a l t i m em o n i t o r i n ga n dr e c o r d i n g a r en e c e s s a r y t h e r e f o r e ,a ni m a g er e c o r d e ri sn e e d e dt or e c o r dt h ei n s i d ea n do u t s i d e s i t u a t i o no ft h ec a r a na u t o si m a g er e c o r d e ri sd e v e l o p e di nt h i sp a p e r b a s e do l lt h eo v e r a l lp l a n , t h er e c o r d e r sh a r d w a r ei s d e s i g n e du s i n ga r m 9m i c r o p r o c e s s o r t h ej p e gi m a g e c o m p r e s s i o na l g o r i t h mi sr e a l i z e da n do p t i m i z e d t h ee m b e d d e dl i n u x o p e r a t i n g s y s t e mi st r a n s p l a n t e do na r m 9m i c r o p r o c e s s o rh a r d w a r ep l a t f o r m t h er e c o r d e r ,s s o f t w a r ei sd e s i g n e do l la d ss o f t w a r ep l a t f o r m ,a n dt e s t i n ga n dd e b u g g i n gf o rt h e s o f t w a r ea r ea l s oe x e c u t e d t h er e c o r d e rc a ns t o r et h ei m a g ed a t ao fv e h i c l e sd r i v i n gp r o c e s si nc y c l e , r e c o r dt h ed r i v i n ge n v i r o n m e n t ,g i v ea s s i s t a n c et ot r a f f i cm a n a g e m e n td e p a r t m e n t f o ra u t h e n t i c a t i n gt h er e s p o n s i b i l i t yo ft r a f f i ca c c i d e n t s ,s u p e r v i s ea n du r g et l l e “v e l t od r i v es a f e l y , g u a r a n t e et h ep e r s o n a la n d p r o p e r t y , s a f e t y0 1 1t h eb u s ,a n di m p r o v et h e m a n a g e m e n tl e v e lo ft r a f f i co p e r a t i o nd e p a r t m e n t i tc a na l s ob eu s e df o rd a t a a c q u i s i t i o ni n s c i e n t i f i c e x p e r i m e n t ss u c ha sv e h i c l ec r a s h t h er e c o r d c rh 觞 s i g n i f i c a n ta p p l i c a t i o nv a l u e si nv e h i c l et r a f f i cf i e l d k e yw o r d s :a r m 9 ;a u t o si m a g er e c o r d e r ;j p e g ;l i n u x 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作和取得的 研究成果,除了文中特别加以标注和致谢之处外,论文中不包含其他人已经发表或 撰写过的研究成果,也不包含为获得丞洼王些太堂或其他教育机构的学位或证 书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中 作了明确的说明并表示了谢意。 学位论文作者签名: 罗邃 签字日期:d 8 年2 月芍e l 学位论文版权使用授权书 本学位论文作者完全了解丞洼王些太堂有关保留、使用学位论文的规定。 特授权云洼王些太堂可以将学位论文的全部或部分内容编入有关数据库进行 检索,并采用影印、缩印或扫描等复制手段保存、汇编以供查阅和借阅。同意学 校向国家有关部门或机构送交论文的复印件和磁盘。 ( 保密的学位论文在解密后适用本授权说明) 学位论文作者签名:i 罗逮 签字日期:08 年2 月垮日 导师签名:) 迈五易二= 入 签字日期:d 8 年2 , 92 5 日 学位论文的主要创新点 一、研制了基于a r m 9 微处理器的车载图像记录仪,设计了记录仪 的硬件,开发了系统的软件,实现了汽车运行状况图像的采集和记录。 二、在对j p e g 图像压缩编码算法进行理论分析的基础上,编写了本 记录仪的图像压缩算法程序,并针对本记录仪的硬件对算法程序进行 了优化。 三、在车载图像记录仪中移植了嵌入式l i n u x 操作系统,使记录仪 具有良好的多任务进程管理能力和功能可扩展性。 第一章引言 1 1 国内外的研究现状 第一章引言 随着我国经济的快速发展,人们的生活水平不断提高,汽车的数量也在急剧 增加。汽车数量的剧增以及各种不安全因素,导致了我国交通事故率居高不下, 交通事故的责任认定已成为重要问题。目前,交通事故的责任认定是依靠事故现 场遗留痕迹和状况来分析、判断、认定事故的责任,不能再现发生事故时的状况, 造成交通事故责任的误判或者不能判定交通事故的责任。另外,为了保证汽车驾 驶员规范操作和公共汽车人身、财产安全,需要实时监测和记录车内状况。因此, 新型汽车行驶记录仪的研究、开发与应用,日渐成为人们所关注的焦点。 图像技术在汽车上的应用在国内外尚处于起步阶段,目前国内外图像技术在 汽车上的运用的研究主要有如下几个方面:( 1 ) 辅助驾驶方面,具体应用包括: 倒车雷达,红灯提醒及危险状态提醒装置等。( 2 ) 交通事故的辅助处理方面,记 录仪以图像方式记录交通事故的发生过程,为事故责任认定的公正合理提供帮 助。( 3 ) 汽车安全方面,如车内乘员探测装置,汽车防盗装置等。 在具体产品方面,目前在国内主要应用在特种车辆的安全方面,在普通汽车 上基本没有实现产业化的产品。国外有些汽车制造公司已经开发出各种相关产 品,有些已经投入实际的应用。美国f 0 r d 公司9 7 年开始为自己公司的汽车安装 汽车行驶记录仪,不久又为其公司的汽车安装控制安全气囊和座位安全带的 r e s t r a i n i n g 控制模块,f o r d 公司把此设备改善为可以记录冲撞前5 秒的前方和侧 面加速度、驾驶员和乘客的安全气囊启动状态、安全带使用与否等信息。日本汽 车研究所开发小组研制出能记录交通事故发生时段车辆行驶数据的记录仪。它通 过传感器记录速度、方向盘角度、刹车板及油门情况,当急刹车或急转弯使汽车 达到一定的加速度以上时,便判断为“事故 ,并将“事故”发生前五十五秒和 后五秒间的各种数据自动记录入磁盘中。同时采用图像处理技术,利用相机自动 收录“事故一发生前十秒和后五秒间从驾驶席上能看到的场面。就本课题所研制 的车载图像记录仪,美国和日本已经有了同类产品,国内尚无同类产品。总之图 像技术在汽车上的应用的具体产品目前大多在研究阶段,实际应用的只有少数几 种国外产品。 由上叙述可见,图像技术在汽车上的应用正在加速发展,同时也是汽车电子 行业的一个新的突破点。从研究方面来说,还有许多课题有待进行,从具体产品 第一章引言 来说,未来的使用市场很大,因此开展此方面的研究有很重大的现实意义。 1 2 课题目的和意义 本课题的目的是利用a r m 9 硬件平台和l i n u x 操作系统设计一个完整的车 载图像记录仪,它能够实现快捷有效的图像采集、压缩、传输、存储功能,主要 应用于交通管理、乘员安全保障以及事故责任认定等领域。另外,该记录仪作为 一个可以继续开发的平台,具有功能可扩展的特性,可以进而为智能驾驶等装置 的开发打下基础。本设计是图像技术在汽车电子上应用的一次新的尝试。 本课题为中国汽车技术研究中心承担的国家8 6 3 计划课题x l 纯电动轿车 ( 2 0 0 2 a a 5 0 1 6 1 3 ) 的子课题。x l 纯电动轿车课题的目的是开发适合不同运行模 式和各种运行场景的电动轿车,为我国居民提供清洁、安静、舒适、便利的交通 工具,改变城市空气质量,优化能源利用结构。 x l 纯电动轿车是一个由多个电子系统构成的复杂的系统,包括电池、电机、 变速箱、制动等动力系统,以及附件,如空调、助力转向等,各个子系统由各自 控制单元( e c u ) 来完成功能和目标,各个部分通过c a n 总线组成整车分布式 网络控制系统,其结构框图如图1 1 所示。 卜裂甲r 裂甲甲 l 高速c a n 总线 主控制器 l 低速c a n 总线 嚣嚣j 嚣西 l 前鞠i 卜哆li 后鞠ll 驾背车i 卜节点i 图1 1 整车分布式网络控制系统结构 车载记录仪作为其中的重要的子系统,其功能是由单片机通过各种传感器来 采集汽车的运行状态数据,经过加工处理,然后存储。其作用是可以通过记录的 信息来分析汽车的运行状况,及早发现故障,在交通事故发生后可以提供事故责 任的判定依据。本课题所研制的车载图像记录仪只是车载记录仪的一部分,改变 了传统记录仪只能记录文本格式的信息,缺乏直观性的不足。 2 第一章引言 1 3 本课题主要研究内容 本课题的主要工作包括记录仪硬件及软件方面的具体设计和调试。本文的组 织结构按照图像压缩算法、记录仪硬件、记录仪软件的顺序逐步展开加以介绍。 文章的主要内容如下: 1 图像压缩算法研究部分主要包括: ( 1 ) p e g 图像压缩算法概述以及i p e g 图像的数据组织方式; ( 2 ) 基于a r m 9 微处理器以及p e g 压缩算法的图像编解码的主要步骤; ( 3 ) 本设计所采用的p e g 压缩算法的改进方法以及程序代码实现。 2 记录仪硬件设计部分主要包括: ( 1 ) 核心处理器芯片s 3 c 2 4 4 0 a 及其外围电路设计,如存储器、电源、晶 振等; ( 2 ) 图像传感器o v 7 6 2 0 介绍以及传感器电路的设计; ( 3 ) 永久存储器s d 卡介绍以及s d 卡电路的设计; ( 4 ) c a n 总线设计概要。 3 记录仪软件设计部分主要包括: ( 1 ) a r m b o o t 程序的设计; ( 2 ) 各部分硬件的驱动程序的设计; ( 3 ) f a t l 6 文件系统的介绍及建立; ( 4 ) 嵌入式l i n u x 操作系统的应用。 3 第二章j p e g 图像压缩算法及实现 第二章j p e g 图像压缩算法及实现 众所周知,图像文件的数据量是比较大的,如果直接存储,需要比较大的存 储器空间,传输也会耗费较多的时间。以本课题为例,从图像传感器采集的图像 符合c c i p 6 0 1 标准,分辨率为6 4 0 x 4 8 0 ,y :c t :c b 为4 :2 :2 。每个y 、c r 、 c b 为8 b i t ,则每个像素为1 6 b i t ,每幅图像的大小为6 1 4 4 0 0 b y t e 。如此大的数据 量是不方便存储和传输的,因此需要对图像进行压缩。目前关于多媒体文件压缩 编码的公认标准有j p e g 、m p e g 、c c i t th 2 6 1 三种,本课题即选择适用于静 态数据的j p e g 标准对图像进行压缩编码。 2 1j p e g 图像压缩算法概述 j p e g ( j o i n tp i c t u r ee x p e r tg r o u p ,联合图像专家组) 是由国际标准化组织 ( i s o ) 和国际电话电报委员会( c c i t t ) 为静态图像所建立的第一个国际数字 图像压缩标准。和相同图像质量的其他常用图像文件格式( 如g i f ,t 矸,p c x ) 相比,j p e g 是目前静态图像中压缩比最高的。它采用有损压缩方式来进行图像 压缩,但失真程度非常小,肉眼几乎无法辨认。当然j p e g 也支持无损压缩,但 是压缩比例没有那么高。由于其高压缩比,j p e g 目前被广泛应用。 j - p e g 编码可以分为几种模式,按编码次序,可以分为顺序式编码( s e q u e n t i a l e n c o d i n g ) 和递增式编码( p r o g r e s s i v ee n c o d i n g ) 。前者,将图像从左到右,从上 到下,顺序编码。后者,将图像分次处理,从模糊到清晰来传输图像。按有无失 真可以分为基于离散余弦变换( d c t ) 的有失真模式和使用预测器的无失真模式。 基于d c t 的j p e g 有可以分为只能接受每像素点以8 位表示的基本图像处理模 式和接受每像素点以8 位或1 2 位表示的扩展图像处理模式。基于d c t 变换的顺 序基本图像处理模式( 又称基线系统,b a s e l i n e ) 为最常用,本课题即采用此种 模式。 2 2j p e g 图像压缩算法的主要编码步骤 基于d c t 变换的基本j p e g 编码器和解码器的结构如图2 1 所示,这种基 本系统是有损的。它的算法流程大致如下:d c t 函数通过把数据从空间域变换 到频率域,从而去除数据的冗余度;量化器用加权函数来产生对人眼优化的量化 4 第二章j p e g 图像压缩算法及实现 d c t 系数,同时熵编码器将量化d c t 系数的熵最小化。简单地说,这种方发的 目的在于:把大量的数据简化为较小的、真正有意义的数据,删除只带有极少视 觉效果的信息,并且利用数据的空间特征性进一步压缩数据。 压缩图像数据 编码表ii 量化表 解压的图像 敦据 ( b ) 肫g 解码器 图2 - 1 基于d c t 变换的基本j p e g 编码器和解码器的结构 基本i p e g 的编码方法为顺序编码。其主要算法可由如下几个步骤实现: ( 1 ) 图像预处理 c 2 ) 正向离散余弦变换( f d c t ) ( 3 ) 量化 ( 4 ) z 字形编码 ( 5 ) 使用差分脉冲编码调制( d p c m ) 对直流系数( d c ) 进行编码 ( 6 ) 使用行程长度编码( 对正) 对交流系数( a c ) 进行编码 ( 7 ) 熵编码 接下来的内容将对j - p e g 中的关键技术进行说明。 2 2 1 图像数据的预处理 在j p e g 压缩彩色图像之前存在预处理的问题,预处理步骤主要包括色彩空 间转换、图像分块处理和下采样。 j p e g 可以压缩连续色调的灰度图像或彩色图像。对于灰度图像,每个像素 可以是8 - b i t 或1 2 - b i t 的灰度值。b a s e l i n e 模式只要求处理8 - b i t 图像( 某些医学 5 第二章 p e g 图像压缩算法及实现 y:=-:0:2:言9言9弓0:吕0:三5:8:7;001140jc0 5 0 0 0 量g c 00 8 1 3 + 1 三2 8 c 2 一, i bi = i - o 1 6 8 7 o 3 3 1 3 i li + l 1 2 8 l ( 2 1 ) i1l 0 5 0 0 0 - 0 4 1 8 7 iiblli 图2 - 2 将图像分成8 x8 的像素块 6 第二章j p e g 图像压缩算法及实现 下采样处理是针对彩色图像而言的。所谓下采样就是由于人眼对c r 、c b 所 代表的色差分量不敏感,所以不必要每个像素都提取c ,、c b 信息,可以部分采 样。本课题的j p e g 处理的y c r c b 下采样格式为4 :2 :2 ,即只对c r 、c b 的水平 方向的像素进行1 2 划分,由两块亮度分量和两块色差分量构成的m c u 。其采 样的示意图如图2 3 所示。 圆圆 圆圆 q 圆 q q 图2 3 图像下采样格式4 :2 :2 2 2 2 前向离散余弦变换 离散余弦变换( d i s c r e t ec o s i n et r a n s f o r m ,简称d c t ) 是一种与傅立叶变换 紧密相关的数学运算。在傅立叶级数展开式中,如果被展开的函数是实偶函数, 那么其傅立叶级数中只包含余弦项,再将其离散化可导出余弦变换,因此称之为 离散余弦变换。空间域中信号需要许多数据点来表示:在x 轴表示时间,在y 轴表示幅度。信号一旦用傅立叶变换转换到频率域,就只需要几个点就可表示这 个相同的信号。 这一技术可以应用到图像上。通过d c t ,图像数据的空间域表达式就转化 为频谱表达式或者频率域表达式,从而达到了数据压缩的目的。其示意图如图 2 - 4 所示。 f a j ) i _ f ( e , | , _ 图2 _ 4d c t 变换示意图 适合图像压缩的变换主要有k l t ,d f t ,d c t 。j p e g 标准采用的是d c t , 7 第二章j p e g 图像压缩算法及实现 原因是它具有很多的优点。d c t 是正交变换,它可以将8 8 图像的空间表达式 转换为频率域,只需要用少量的数据点表示图像:d c t 产生的系数很容易被量 化,因此能获得很好的块压缩;d c t 算法的性能很好,而且有快速算法,如采 用快速傅立叶变换可以进行高效的运算,因此它在硬件和软件中都很容易实现; d c t 算法是对称的,所以利用逆d c t 算法可以用来解压缩图像。 n 个一维序列x i ( o ) 的d c t 变换公式o i n 1 ) 如下: ,一i y o = x ; i = 0 n - i y k = 2 x ic o s 7 r ( 2 i + 1 ) k 2 i i = o 其逆变换公式如下: n - i x i = ( 1 1 , 0 y kc o s z r ( 2 i + 1 ) k 2 n ,0 i n - 1 七一o ( 2 - 8 ) ( 2 - 9 ) ( 2 - 1 0 ) 图像压缩的质量与所用的变换有关,也与分块的大小有关。为了兼顾压缩的 效果和复杂度,j p e g 采用了8 8 的二维d c t ,编码时使用f o r w a r dd c t ( f d c t ) , 解码时使用了i n v e r s ed c t ( d c t ) 。下面分别给出公式: f d c t : 77 f ( u ,v ) = 口( u ) 口( v ) f ( i ,j ) c o s 【万( 2 i + 1 ) 1 6 】c o s t t ( 2 j + 1 ) v 1 6 i f f i o j = o u ,v = 0 ,l ,7 9 ( 2 1 1 ) ) c t : 77 f ( i ,j ) = 口( u ) a ( v ) f ( u ,v ) c o s n ( 2 i + 1 ) u 1 6 c o s t r ( 2 j + 1 ) v 1 6 u - - o 脚 i ,j = 0 ,l ,7( 2 1 2 ) 其中: 当u = 0 时,口( u ) = 1 虿 当u 0 时,口( u ) = 1 2 当v = o 时,口( v ) = 1 压 当v g :0 时,口( v ) = 1 2 f ( i ,j ) 为输入的像素值,- 1 2 8 _ f ( i ,j ) 1 2 7 第二章j p e g 图像压缩算法及实现 f ( u ,v ) 为d c t 系数,一1 0 2 4 _ f ( u ,v ) 1 0 2 3 由公式可以看出,直接用程序实现d c t 算法的运算量非常大,压缩时间将 很长,所以很多d c t 算法的优化方法被研究,这些将在具体的程序实现章节进 行论述。 2 2 3 重排及量化 d c t 将将一个8 8 的数组变换成为另一个8 8 的数组,但是内存里所有数 据都是线形存放的,如果我们一行行的存放这6 4 个数字,每行的结尾的点和下 行开始的点就没有什么关系,所以口e g 规定将d c t 变换后的数据块按“z 字 型扫描方式进行重排,如图2 5 所示。这样数列里相邻的点在图片上也是相邻的 了。 7 、 , 、 , 7 工上 7 _ 一- 一 图2 - 5 “z ”字型排序 图像矩阵经过d c t 变换后,可以发现能量主要集中在低频分量,也就是信 息主要包含在低频分量中,因此可以通过量化将高频部分精度降低,从而达到压 缩的目的。 量化( q u a n t i z a t i o n ) 是j p e g 压缩过程中唯一会大幅损失信息的步骤,也是 用户唯一能参与控制压缩质量的步骤。6 4 个d c t 系数会用8 8 的量化表进行均 匀量化,量化标中的每个元素是1 到2 5 5 之间的整数,表示对应的d c t 系数的 量化步长。 量化的过程是将每个d c t 系数除以对应的量化步长,并将结果四舍五入为 整数: 脚川= r o u a ( 器) 9 ( 2 1 3 ) 第二章j p e g 图像压缩算法及实现 反量化( d e q u a n t i z a t i o n ) 是把量化后的系数乘以对应的量化步长: a f ( u ,v ) = f v ( u ,v ) q ( u ,v )( 2 - 1 4 ) 量化表理论上应该根据输入图像确定,目标是在基本不影响图像的视觉效果 的前提下,尽量提高压缩率。量化步长越大,压缩率越大,图像质量越低。j p e g 标准的正文中并没有规定或者推荐使用哪个量化表,不过在a n n e xk 中有一份 量化表的例子( 如表2 1 所示) ,适用于大多数中等质量的图片。通常亮度分量 和色差分量各有一张量化表,而且对于色差分量将忽略更多的高频成分。实际的 j p e g 实现都采用这一份量化表。 表2 - 1 缺省量化表 1 6l ll o1 62 44 05 l6 11 71 82 44 79 9 9 99 99 9 1 21 21 41 92 65 86 05 51 82 l2 6 6 69 99 99 99 9 1 41 31 6 2 44 05 7 6 9 5 62 42 65 69 99 99 99 99 9 1 41 72 22 95 l8 78 06 24 76 69 ( 99 ( 29 ( 99 ( 99 99 9 1 82 23 7s 66 81 0 91 0 37 79 99 99 99 9 9 9 9 9 9 99 9 2 43 55 5 6 4 8 1 1 0 41 1 39 2 9 9 9 99 99 99 99 99 99 9 4 96 47 8 8 7 1 0 31 2 l1 2 0l o l9 99 99 99 99 99 99 99 9 7 29 29 59 81 1 21 0 01 0 39 99 99 99 99 99 99 99 99 9 ( a ) 亮度量化表( b ) 色差量化表 每个分块有6 4 个系数需要量化,需用“次除法和取整操作,因此每个分块的计 算复杂度为0 ( 1 ) 。对于n x m 的图像,共有【8 x 阻8 】个分块,因此量化这 一步的计算复杂度为o ( m n ) 。 2 2 4 行程编码与熵编码 j p e g 压缩的最后一步是对量化后的系数进行熵编码。熵是信息量的度量, 是信源概率分布的泛函。当信息源各事件服从等概率分布时,熵达到最大。信源 熵与最大熵的差值为信源冗余,去掉冗余度,使熵达到或者接近最大熵即为熵编 码。这一步采用通用的无损数据压缩技术,对图像质量没有影响。 p e g 标准具体规定了两种熵编码方式:h u m n a n 编码和算术编码。j p e g 基 本顺序编解码器具体规定了使用h u f f m a n 编码。在熵编码之前,需要把6 4 个d c t 系数转换为一串中间符号。其中直流系数( d c ) 和交流系数( a c ) 的编码方式 不同。 l o 第二章j p e g 图像压缩算法及实现 下面将用一个简单的例子来说明行程编码和熵编码的过程。 1 赳正编码 假设有一组矢量( 6 4 个的后6 3 个) 是: 5 7 ,4 5 ,0 ,0 ,0 ,0 ,2 3 ,0 ,- 3 0 ,- 1 6 ,0 ,0 ,1 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 经过r l e 压缩掉这些连续的0 后就是: ( o ,5 7 ) ;( o ,4 5 ) ;( 4 ,2 3 ) ;( 1 ,一3 0 ) ;( 0 ,一1 6 ) ;( 2 ,1 ) ;e o b e o b 是一个结束标记,表示后面都是0 了。实际上,用( 0 ,0 ) 表示e o b 。 但是,如果这组数字不以0 结束,那么就不需要e o b 。另外需要注意的是,由 于后面h u f f m a n 编码的要求,每组数字前一个表示0 的数量的必须是4 b i t ,就 是说只能是o 1 5 ,所以,如果有这么一组数字: 5 7 ,( 1 8 个o ) ,3 ,0 ,0 ,0 ,0 ,2 ,( 3 3 个o ) ,8 9 5 ,e o b 实际这样编码: ( 0 ,5 7 ) ;( 1 5 ,o ) ;( 2 ,3 ) ;( 4 ,2 ) ;( 1 5 ,o ) ;( 1 5 ,0 ) ;( 1 ,8 9 5 ) ;( o ,o ) 注意:( 1 5 ,o ) 表示了1 6 个连续的0 。 2 范式h u f f m a n 编码 为了提高储存效率,j p e g 里并不直接保存数值,而是将数值按位数分成1 6 组: 数值组 实际保存值 0o - 1 ,1 l 0 ,1 3 ,- 2 ,2 ,3 2 0 0 ,0 1 ,1 0 ,1 1 f 7 ,- 6 ,一5 ,- 4 ,4 ,5 ,6 ,7 3 0 0 0 ,0 0 1 ,0 1 0 ,0 1 1 ,1 0 0 ,1 0 1 ,1 1 0 ,1 1 1 - 1 5 ,一8 ,8 ,1 5 4 0 0 0 0 ,0 1 1 1 ,1 0 0 0 ,1 1 1 1 3 l ,- 1 6 ,1 6 ,3 l 5 0 0 0 0 0 ,0 1 1 1 1 ,1 0 0 0 0 ,1 1 1 1 1 - 6 3 ,- 3 2 ,3 2 ,6 3 6 1 2 7 ,- 6 4 ,6 4 ,1 2 7 7 - 2 5 5 ,一1 2 8 ,1 2 8 ,2 5 5 8 - 5 1 1 ,- 2 5 6 ,2 5 6 ,5 1 1 9 - 1 0 2 3 ,一5 1 2 ,5 1 2 ,1 0 2 3 1 0 - 2 0 4 7 ,- 1 0 2 4 ,1 0 2 4 ,2 0 4 7 1 1 - 4 0 9 5 ,- 2 0 4 8 ,2 0 4 8 ,4 0 9 5 1 2 - 8 1 9 1 ,- 4 0 9 6 ,4 0 9 6 ,8 1 9 1 1 3 - 1 6 3 8 3 ,8 1 9 2 ,8 1 9 2 ,1 6 3 8 3 1 4 - 3 2 7 6 7 ,一1 6 3 8 4 ,1 6 3 8 4 ,3 2 7 6 7 1 5 第二章i p e g 图像压缩算法及实现 还是前面的例子: ( 0 ,5 7 ) ;( o ,4 5 ) ;( 4 ,2 3 ) ;( 1 ,- 3 0 ) ;( o ,一1 6 ) ;( 2 ,1 ) ;( 0 ,o ) 只处理每对数右边的那个: 5 7 是第6 组的,实际保存值为1 1 1 0 0 1 ,所以编码为( 6 ,1 1 1 0 0 1 ) ;4 5 ,同样 的操作,编码为( 6 ,1 0 1 1 0 1 ) ;2 3 哼( 5 ,1 0 1 1 1 ) ;3 0 专( 5 ,0 0 0 0 1 ) ;一8 _ ( 4 ,0 1 1 1 ) ; lo ( 1 ,1 ) 。 前面的那串数字就变成: ( 0 ,6 ) ,1 1 1 0 0 1 ;( o ,6 ) ,1 0 1 1 0 1 ;( 4 ,5 ) ,1 0 1 1 1 ;( 1 ,5 ) ,0 0 0 0 1 ;( o ,4 ) ,0 1 1 1 ;( 2 ,1 ) ,1 ; ( 0 ,0 ) 括号里的数值正好合成一个字节。后面编码的数字表示范围是 3 2 7 6 7 3 2 7 6 7 。合成的字节里,高4 位是前续0 的个数,低4 位描述了后面数字 的位数。 继续上例,0 6 的h u f f r n a n 编码为1 1 1 0 0 0 ,( 0 6 对应1 1 1 0 0 0 为查表所得。j p e g 文件里保存了压缩时所产生的h u f f m a n 表,将0 - - 2 5 5 这2 5 6 个8 b i t 定长数字, 对应成1 1 6 b i t 的不定长数值。出现频率高的数字小于8 b i t ,频率低的大于8 b i t , 从而使整个的数据长度降低) 。同样,6 9 = ( 4 ,5 ) _ i i i i i l l l l 0 0 1 1 0 0 1 ( 注:6 9 = 4 x1 6 + 5 = 0 x 4 5 ) ;2 1 = ( 1 ,5 ) 1 1 1 1 1 1 1 0 1 1 0 ;4 = ( 0 ,4 ) 专1 0 1 1 ;3 3 = ( 2 ,1 ) 专1 1 0 1 l ; 0 = e o b = ( o ,o ) 专1 0 1 0 。那么最后对于前面的例子表示的6 3 个系数按位流写入 口e g 文件中就是这样的: 1 1 1 0 0 01 1 1 0 0 1 1 1 1 0 0 01 0 1 1 0 11 1 1 1 l l l l l 0 0 1 1 0 0 11 0 1 1 l1 1 1 1 1 1 1 0 1 1 0 0 0 0 0 11 0 1 10 1 1 11 1 0 1 l11 0 1 0 3 d c 的编码 直流系数( d c ) 表示当前分块中6 4 个像素的平均值,相邻分块的直流系数 具有很强的相关性,因此只需记录与前一分块的直流系数的差值,即直流系数的 “中间符号”采用差分脉冲编码( d p c m ) 。 d f = d c ( i ) 一d c ( i 1 ) p e g 从0 开始对d c 编码,所以d c ( o ) = 0 。然后再将当前d i f f 值加在 上一个值上得到当前值。 以下继续上例: d i f f 是一5 1 1 ,就编码成:( 9 ,0 0 0 0 0 0 0 0 0 ) 。 如果9 的h u f f m a n 编码是1 1 1 1 1 1 0 ( 在j p e g 文件中,一般有两个h u f f r n a n 表,一个是d c 用,一个是a c 用) 那么在j p e g 文件中,d c 的二进制表示为: 1 1 1 1 1 1 00 0 0 0 0 0 0 0 0 。 将它放在6 3 个a c 的前面,上面的例子的最终b i t 流如下: 1 2 第二章 p e g 图像压缩算法及实现 1 1 1 1 1 1 00 0 0 0 0 0 0 0 01 1 1 0 0 01 1 1 0 0 11 1 1 0 0 01 0 1 1 0 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 00 0 0 0 11 0 1 10 1 1 l1 1 0 1 111 0 1 0 2 3j p e g 图像解码过程简述 简单地说,j p e g 图像的解码过程就是其编码过程的逆过程。下面简要介绍 一下一个数据单元的的解码过程( 其余相同) 。 在整个图片解码的开始,你需要先初始化d c 值为0 。 1 先解码d c : ( 1 ) 取得一个h u f f m a n 码( 使用h u f f m a nd c 表) ; ( 2 ) h u f f i n a n 解码,看看后面的数据位数n ; ( 3 ) 取得n 位,计算d i f f 值; ( 4 ) d c + = d i f f ; ( 5 ) 写入d c 值:”v e c t o r 0 = d c ”。 2 解码6 3 个a c :循环处理每个a c 直到e o b 或者处理到6 4 个a c 。 ( 1 ) 取得一个h u f f m a n 码( 使用h u f f m a n a c 表) ; ( 2 ) h u t s n a n 解码,得到( 前面0 数量,组号) 注意:如果是( o ,o ) 就 是e o b 了 ; ( 3 ) 取得n 位( 组号) 计算a c ; ( 4 ) 写入相应数量的0 ; ( 5 ) 接下来写入a c 。 通过以上工作得到了6 4 个矢量。下面还需要做一些解码工作: ( 1 ) 反量化6 4 个矢量:”f o r ( i = 0 ;i - 6 3 ;i 抖) v e c t o r i 木= q u a n t i 】”( 注意防止 溢出) : ( 2 ) 重排列6 4 个矢量到8 x 8 的块中; ( 3 ) 对8 8 的块作i d c t ;对8 x 8 块的y 、c r 、c b 重复上面的操作 h u f f m a n 解码,步骤( 1 ) ( 2 ) ( 3 ) ; ( 4 ) 将所有的8 b i t 数加上1 2 8 ; ( 5 ) 转换y g c b 到r ( 疆。 2 4j p e g 文件格式和数据组织 j p e g 委员会在制定j p e g 标准时,定义了许多标记用来区分和识别图像数 据及其相关信息,目前,使用比较广泛的是j p e g 文件交换格式腰( j p e gf i l e 1 3 第二章j p e g 图像压缩算法及实现 i n t e r c h a n g ef o r m a t ) 1 0 2 版本。j p e g j f i f 文件格式使用m o t o r o l a 格式而不是i n t e l 格式,即文件中的字节是按照正序排列的,高位字节存放在前,低位字节存放在 后。 j p e g 文件在b y t e 级上大体上可以分成两个部分:标记码( t a g ) 和加压缩 数据。标记码由两个字节构成,其前一个字节是固定值0 ) 【f f ,每个标记之前还 可以添加数目不限的0 ) 【f f 填充字节( f i l lb y t e ) 。标记码部分给出了j p e g 图像的 所有信息( 类似于b m p 文件中的头信息,但要复杂的多) ,如图像的宽、高、 h u f f x n a n 表、量化表等。标记码有很多,但绝大多数的j p e g 文件都由下面的8 个部分组成: 1 图像开始s o i ( s t a r to f i m a g e ) 标记 2 a p p o 标记 ( 1 ) a p p o 长度 7 2 字节,表示a p p o 标记码长度,不包括前两个字节o ) 【f f 与0 x e 0 ; ( 2 ) 标识符 5 字节,巧识别码0 x 4 a ,0 x 4 6 ,0 x 4 9 ,0 x 4 6 ,0 x 0 0 ; ( 3 ) 版本号 2 字节,为腰版本号,可为0 x 0 1 0 1 或者0 x 0 1 0 2 ; ( 4 ) x 和y 的密度单位 1 字节,u n i t s = 0 :无单位;t m i t s = l :点数英寸;u n i t s = 2 :点数厘米; ( 5 ) x 方向像素密度 2 字节,表示水平分辨率; ( 6 ) y 方向像素密度 2 字节,表示垂直分辨率; ( 7 ) 缩略图水平像素数目 l 字节,表示缩略图水平像素数目; ( 8 ) 缩略图垂直像素数目 l 字节,表示缩略图垂直像素数目; ( 9 ) 缩略图r g b 位图 3 字节,表示缩略图r g b 位图: 3 a p p n 标记,其中n = l - 1 5 ( 任选) ( 1 ) a p p n 长度 ( 2 ) 应用详细信息 4 一个或多个量化表d q t ( d e f i n eq u a n t i z a t i o nt a b l e ) ( 1 ) 量化表长度 1 4 第二章j p e g 图像压缩算法及实现 2 字节,d q t 标记码长度,不包括前两个字节0 x f f 与0 x d b ; ( 2 ) 量化表数目 ( p q ,t q ) 1 字节,它的高4 位p q 为量化表的数据精度。p q = 0 时, 的值为8 b i t ,p q = l 时,q n 的值为1 6 b i t ;t q 表示量化表的编号,为肚3 。在基本 系统中p q - - 0 ,t q = 1 ,也就是说最多有两个量化表; ( 3 ) 量化表 q o 共1 或2 字节,为量化表的值。p q = 0 时,为l 字节:p q = l 时,为2 字节; q l 共l 或2 字节,为量化表的值。p q = 0 时,为1 字节;p q = l 时,为2 字节; q n 共1 或2 字节,为量化表的值。p q = 0 时,为1 字节;p q = l 时,为2 字节; n 的值为晰3 ,表示量化表中的6 4 个值( z 字型排列) : 5 帧图像开始s o f ( s t a r to f f r a m e ) ( 1 ) 帧开始长度 2 字节,s o f 标记码长度,不包括前两个字节o ) 【阡与0 x c 0 ; ( 2 ) 精度,每个颜色分量每个像素的位数 1 字节,基本系统中,为0 x 0 8 ; ( 3 ) 图像高度 2 字节; ( 4 ) 图像宽度 2 字节; ( 5 ) 颜色分量数 1 字节,f r a m e 中的成分个数,一般为1 或3 ,1 代表灰

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论