没有合适的资源?快使用搜索试试~ 我知道了~
JPEG 原理详细实例分析及其在嵌入式中的应用.docx
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 42 浏览量
2023-04-05
20:16:56
上传
评论
收藏 3.76MB DOCX 举报
温馨提示
试读
23页
。。
资源推荐
资源详情
资源评论
JPEG 原理详细实例分析及其在嵌入式中的应用
一个较为详细的全局介绍 JGEG的原理和实现.
简介: 作为一个基本的图像压缩方式,JPEG 已经得到了广泛的运用,但 JPEG 相关的基本
原理,却经常被忽视,或解释得很不确切。这里我们详细讨论一下JPEG 的编码原理,并结
合实例来给出一个更加感性的认识。JPEG 编码的详细过程有着诸多的信息可以给我们巨大
的启发,我们在这里讨论的就是要对这些信息做一个具体细致的分析,通过我们的讨论,大
家会对 JPEG 编码过程中出现的内容有一个确切的了解,并且能了解到这些内容的来龙去
脉。
一、系统架构
本文以一个实际的产品为例,来说明 JPEG 在其中的应用。
本系统为一个嵌入式 Linux 网络播放器,主要的功能为播放家庭网络中的多媒体文件,在
家庭客厅等环境中有着大量的应用,它可以给用户提供更方便快捷的媒体文件的播放方式,
并能充分利用家庭音响系统的巨大功能,而非 PC 环境下有限的外部设备,大大改善了媒体
文件的播放体验。
本系统架构如下图:
本系统是基于嵌入式 Linux 的一个应用,使用的是 ucLinux 2.4.22,并使用了
microwindows 作为 GUI 界面,底层使用了 Linux kernel 的 FrameBuffer 作为显示输出。
此系统在两个方面使用到了 JPEG 库:
1、 UI 的显示,即各种人机交互界面,考虑到用户体验,所以大量使用了贴图来美化 UI
2、 JPEG 图片文件的全屏播放,包括用户手中的各种照片等
二、JPEG 概述
JPEG 是 Joint Photographic Experts Group 的缩写,即 ISO 和 IEC 联合图像专家组,
负责静态图像压缩标准的制定,这个专家组开发的算法就被称为 JPEG 算法,并且已经成为
了大家通用的标准,即 JPEG 标准。 JPEG 压缩是有损压缩,但这个损失的部分是人的视觉
不容易察觉到的部分,它充分利用了人眼对计算机色彩中的高频信息部分不敏感的特点,来
大大节省了需要处理的数据信息。
人眼对构成图像的不同频率成分具有不同的敏感度,这个是由人眼的视觉生理特性所决定
的。如人的眼睛含有对亮度敏感的柱状细胞 1.8亿个,含有对色彩敏感的椎状细胞 0.08亿
个,由于柱状细胞的数量远大于椎状细胞,所以眼睛对亮度的敏感程度要大于对色彩的敏感
程度。
总体来说,一个原始图像信息,要对其进行 JPEG 编码,过程分两大步:
1、 去除视觉上的多余信息,即空间冗余度
2、 去除数据本身的多余信息,即结构(静态)冗余度
1、去除视觉上的多余信息
当你拿到一个原始未经处理的图像,是由各种色彩组成的,即在一个平面上,有各种色彩,
而这个平面是由水平和垂直方向上的很多点组成的。实际上,每个点的色彩,也即计算机能
表示的每个像素点的色彩,能分解成红、绿、蓝,即 RGB 三元色来表示,即这三种颜色的
一定比例的混合就能得到一个实际的色彩值。
所以,实际上,这个平面的图像,可以理解为除了水平 X 和垂直 Y 以外,还有一个色彩值
的 Z 的三维的系统。Z 代表了三元色中各个分支 R/G/B 的混合时所占的具体数值大小,每
个像素的 RGB 的混合值可能都有所不同,各个值有大有小,但临近的两个点的 R/G/B 三个
值会比较接近。
由于这个原始图像是由很多个独立的像素点组成的,也就是说它们都是分散的,离散的。比
如有些图像的尺寸为 640X480,就表示水平有 640个像素点,垂直有 480个像素点。
从上面的内容,我们可以知道两个相邻的点,会有很多的色彩是很接近的,那么如何能在最
后得到的图片中,尽量少得记录这些不需要的数据,也即达到了压缩的效果。
这个就要涉及到图像信号的频谱特性了。
图像信号的频谱线一般在 0-6MHz范围内,而且一幅图像内,包含了各种频率的分量。但包
含的大多数为低频频谱线,只在占图像区域比例很低的图像边缘的信号中才含有高频的谱
线。这个是对 JPEG 图像压缩的理论依据。
因此具体的方法就是,在对图像做数字处理时,可根据频谱因素分配比特数:对包含信息量
大的低频谱区域分配较多的比特数,对包含信息量低的高频谱区域分配较少的比特数,而图
像质量并没有可察觉的损伤,达到数据压缩的目的。
将原始图像这个色彩空间域,转换为频谱域,怎么转呢,这个就用到了数学上的离散余弦变
换,即 DCT(Discrete Cosine Transform) 变换。
DCT 是可逆的、离散的正交变换。变换过程本身虽然并不产生压缩作用,但是变换后的频率
系数却非常有利于码率压缩。即这个变换过程得到一个 DCT 变换系数,而对这个系数可以
再进行更进一步的处理,即所谓的量化。经过量化,就能达到数据压缩的作用了。
总体说来,这第一步,对图像进行编码,去除多余的信息,要用到 DCT 变换中的正向 DCT
(FDCT),然后再对变换的系数做量化(Quantization),这个过程就是依据的经验值,来
处理人眼视觉系统所不敏感的高频数据,从而极大地减少了需要处理的数据量,这个是结合
数学方法与经验值而做的处理。
2、去除数据本身的多余信息
利用 Huffman 编码,来将最后的数据用无损的方式做压缩,这个是纯数学上的处理方式。
总体来说,上面的两步即:
如果处理的是彩色图像,JPEG 算法首先将 RGB 分量转化成亮度分量和色差分量,同时丢失
一半的色彩信息(空间分辨率减半)。然后,用DCT 来进行块变换编码,舍弃高频的系数,
并对余下的系数进行量化以进一步减小数据量。最后,使用 RLE 行程编码和 Huffman 编码
来完成压缩任务。
三、JPEG 原理详细分析
下面将更加详细地介绍这两步中的各个细节。
JPEG 编码中主要涉及到的内容主要包括:
1. Color Model Conversion (色彩模型)
2. DCT (Discrete Cosine Transform 离散余弦变换)
3. 重排列 DCT 结果
4. 量化
5. RLE 编码
6. 范式 Huffman 编码
7. DC 的编码
1、色彩空间 color space
在图像处理中,为了利用人的视角特性,从而降低数据量,通常把 RGB 空间表示的彩色图
像变换到其他色彩空间。
现在采用的色彩空间变换有三种:YIQ,YUV 和 YCrCb。
每一种色彩空间都产生一种亮度分量信号和两种色度分量信号,而每一种变换使用的参数都
是为了适应某种类型的显示设备。
YUV 不是哪个英文单词的缩写,而只是符号,Y 表示亮度,UV 用来表示色差,U、V 是构成
彩色的两个分量;
YUV 表示法的重要性是它的亮度信号(Y)和色度信号(U、V)是相互独立的,也就是 Y 信号分
量构成的黑白灰度图与用 U、V 信号构成的另外两幅单色图是相互独立的。由于 Y、U、V 是
独立的,所以可以对这些单色图分别进行编码。此外,黑白电视能接收彩色电视信号也就是
利用了 YUV 分量之间的独立性。
举例来说明一下:
要存储 RGB 8∶8∶8 的彩色图像,即 R、G 和 B 分量都用8 位二进制数(1 个字节)表示,
图像的大小为 640×480 像素,那么所需要的存储容量为 640×480×(1+1+1)=921 600 字节,
即 900KB,其中(1+1+1)表示 RGB 各占一个字节。
如果用 YUV 来表示同一幅彩色图像,Y 分量仍然为 640×480,并且 Y 分量仍然用8 位表
示,而对每四个相邻像素(2×2)的 U、V 值分别用相同的一个值表示,那么存储同样的一幅
图像所需的存储空间就减少到640×480×(1+1/(2*2)+1/(2*2))=460 800 字节,即450KB。
也就是把数据压缩了一半。
无论是用 YIQ、YUV 和 YCrCb 还是其他模型来表示的彩色图像,由于现在所有的显示器都
采用 RGB 值来驱动,这就要求在显示每个像素之前,须要把彩色分量值转换成 RGB 值。
对电视机,在考虑人的视觉系统和电视阴极射线管(CRT)的非线性特性之后,RGB 和 YUV 的
对应关系可以近似地用下面的方程式表示:
即:
Y=0.3R+0.59G+0.11B
U=B-Y
V=R-Y
对计算机而言,计算机用的数字域的色彩空间变换与电视模拟域的色彩空间变换不同,它们
的分量使用 Y、Cr 和 Cb 来表示,与 RGB 空间的转换关系如下:
剩余22页未读,继续阅读
资源评论
apple_51426592
- 粉丝: 9584
- 资源: 9658
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功