基于LPC2292的手持JPEG图像显示器设计.pdf

基于LPC2292的手持JPEG图像显示器设计.pdf

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于LPC2292 的手持JPEG 图像显示器设计 摘要:文章介绍了基于32 位ARM7 芯片LPC2292 实现的软件JPEG 解码算法及应用了此算法的手持JPEG 图像显示 器的设计。文章从JPEG 的编码原理入手,针对LPC2292 的资源和性能特点,进行了可行性分析。重点论述了Huffman 解码和IDCT 解码的优化算法的实现,很大程度上提高了解码算法的效率,使得算法在ARM7 芯片上的移植成为可能。 关键字:JPEG 解码;Huffman 解码;IDCT 解码 1 概述 在数字图像处理过程中,JPEG 编码是一种经常运用的压缩算法,目的是有效地压缩数字图像大小,便于存储和传输。 其具有压缩比例高、失真小等特点。目前对应的JPEG 解码方式有两种:硬件解码和软件解码。硬件解码是利用硬件解 码芯片来完成对JPEG 数据的解码;软件解码则是通过编写程序来完成对数据的还原。由于软件解码需要大量的浮点运 算,目前较多的由PC 及DSP 来实现。 本文主要介绍了一种基于Philips 公司的ARM 芯片LPC2292 来实现JPEG 图像软件解码的方法及基于此算法实现的手 持式JPEG 图像显示器。 2 JPEG 解码可行性分析 2.1 LPC2292 的特点 LPC2292 是一款基于32 位ARM7TDMI-S ,并支持实时仿真和跟踪的CPU,带有256 k 字节(kB)嵌入的高速Flash 存 储器。128 位宽度的存储器接口和独特的加速结构使32 位代码能够在最大时钟速率下运行。对代码规模有严格控制的 应用可使用16 位Thumb 模式将代码 规模降低超过30%,而性能的损失却很小。 2.2 存储器容量计算 JPEG 解码涉及到大量的数据计算,因此需要大量的数据缓存器。手持JPEG 显示器的缓存主要包括原始JPEG 图像数 据缓存、JPEG 解码缓存以及RGB 数据显示缓存等。原始JPEG 图像数据缓存用于存放需要解码的JPEG 图像数据, 根据JPEG 图像的复杂度及压缩比不同,一般一帧320×240 的彩色JPEG 图像的大小在2k~20k 字节。JPEG 解码缓 存主要用于存放一些JPEG 解码过程中的中间数据,主要包括MCU 解码中Huffman 解码的临时结果,IDCT 解码的临 时结果等。RGB 数据显示缓存用来存放JPEG 解码完后的RGB 原始数据,用于LCD 液晶显示,一帧320×240 的彩色 16 位RGB 图像,共需要320×240×16÷8 =57600 字节。 LPC2292 内部带有16k 的SRAM 。如果采用整张图像缓存、解码完再显示的话,根据上面的分析,仅显示缓存区一项 就不能满足需要。因此,设计采用一边读取数据、一边解码、一边显示的策略,来减少对存储器的需求。 3 具体实现 3.1 硬件实现 JPEG 图像显示器的硬件实现框图如下图所示: 图1 JPEG 图像显示器硬件框图 系统以LPC2292 为控制核心,采用CAN 总线来从外界读取原始JPEG 数据,彩色LCD 显示模块则选用TFT6758 彩 色LCD 液晶显示模块。LPC2292 内部自带的CAN 接口及32 位宽度的数据总线,可以很方便的与CAN 总线及LCD 液 晶显示模块实现连接。 3.2 软件实现: JPEG 编码技术主要包括颜色转换、DCT 变换、量化、熵编码及Huffman 编码等部分,其数据格式在文献[1]中进行了 详尽的阐述。 JPEG 解码主要包括Huffman 解码、反量化及IDCT 变换、色彩变换等模块,其流程框图如下: 图2 JPEG 图像解码软件流程框图 3.2.1 Hffman 解码的实现: Huffman 解码主要通过反向查找Huffman 表来实现。由于查找过程需要大量的移位及循环,效率很低。为了提高效率, 软件事先构造了一张预查找表,该表的维数由宏定义HUFF_LOOKAHEAD 来决定。位数低于HUFF_LOOKAHEAD 的 Huffman 编码,解码结果都可以从该预查找表中直接读出,而对于位数大于HUFF_LOOKAHEAD 的则再通过移位循环 来遍历Huffman 表实现解码。可以看出,预查找表维数越高,则整个Huffman 解码所需的循环移位次数越少,解码效 率越高,但同时,需要存放预查找表的空间也越高,其占用字节数为2 的HUFF_LOOKAHEAD 次方字节。 预查表分两部分,其构造思想如下: 假设某个亮度的DC 系数的Huffman 编码表如下,HUFF_LOOKAHEAD 的值为4 : 表1 亮度DC Huffman 编码表 则构造2

文档评论(0)

lhp020 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档