作者nightspirit (鞭策自己社清流夜灵)
看板DC
标题Re: [问题] 请问各位摄影家
时间Mon Jul 16 11:13:20 2007
JPEG实作原理跟原PO所说的有些出入
首先要从我们熟悉的RGB转换成YUV
由於人眼对Y像素亮度反应比较敏锐
对於U色调与V饱和比较迟钝
所以接着要用缩减取样来减少UV的部份
(这边是类似tookouw的说法)
针对影像内的每一个8x8小区块
先Shift 128 使原本数值 0~255 换成 -128~127
接着做Discrete cosine transform得到一个矩阵
我们可以把这视做从
空间域转成频率域的步骤
由於人类对於高频亮度的变动较不敏锐,
所以我们用量化矩阵来对DCT矩阵做运算,
将高频处尽可能舍位为零或-1。
此量化是JPEG最主要的破坏性失真肇因,
当然也大幅的减少资讯量,主要数值会集中在左上角的低频处,
最後使用Zig-Zag将矩阵转为一维数列,再使用霍夫曼编码,
我们熟悉的JPEG档案就被压缩完成了,
如果照T版友所说的压缩取样方式(空间域)
最终的结果会变成一个又一个的大面积色块,
实际上JPEG并不是这样的作法,大家不妨把BMP转成Jpg试试,
有些纯色区块会产生一些不同亮度的pixel,
是因为做量化是在频域做,反转回空间域会造成这样的失真。
相关技术请参考Wiki
http://0rz.tw/c12Qf
※ 引述《tookouw (乡民)》之铭言:
: 那不就跟原本照片不一样了吗? 是阿 这就是破坏性压缩
: 反正又不是在玩大家来找碴 人眼也看不出来阿~
: 所以 jpg可以把图缩小 并且损失一些细节 原因就在这里
: 而jpg的压缩品质 只是在决定有多少细节要被乎略掉~
: 这就是 jpg基本原理...以上
--
┌─┐ ┌─── 断 面 ──┐
│ └Continu┐ 续 └┐ │
Dis┐ 连┤┌┤ ┌Mind┐ └ 因为想法是那麽不连续
不 └┘Ous┤ └ 解 构
┌──┘ 思考 ──────┐
└ §
http://nightspirit622.blogspot.com §
└ 所以书写‧解构
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.56.195.20
1F:→ kiroru:嗯,这才是我所认知的JPG压缩原理 @@ 07/16 11:14
2F:推 andyjaw:不过....我想一般网友对这个解释会看不懂吧....^^" 07/16 11:47
3F:→ andyjaw:tookouw版友的解释虽然不尽正确, 却比较容易理解 XD 07/16 11:48
4F:推 odgbb:哈 真怀念 当初我seminar的时候就有做这相关的研究XD 07/16 12:11
5F:→ odgbb:不过这对一般人真的难懂 DCT还有Zig-Zag scan都是专有名词 07/16 12:12
6F:推 nightspirit:真相总是难以让人接受... 07/16 14:10
7F:推 LiloHuang:好险我是做DWT无失真的 07/16 19:20
8F:推 LiloHuang:但是基本上RGB->YUV 再把YUV->RGB就会有误差了 07/16 19:21