JPEG 图像格式详解JPEG 压缩简介-------------1
色彩模型JPEG 的图片使用的是YCrCb 颜色模型, 而不是计算机上最常用的RGB
关于色彩模型, 这里不多阐述
只是说明, YCrCb 模型更适合图形压缩
因为人眼对图片上的亮度Y 的变化远比色度C 的变化敏感
我们完全可以每个点保存一个8bit 的亮度值, 每2x2 个点保存一个Cr Cb 值, 而图象在肉眼中的感觉不会起太大的变化
所以, 原来用RGB 模型, 4 个点需要 4x3=12 字节
而现在仅需要 4+2=6 字节; 平均每个点占 12bit
当然 JPEG 格式里允许每个点的C 值都记录下来; 不过 MPEG 里都是按 12bit 一个点来存放的, 我们简写为YUV12
[R G B] -> [Y Cb Cr] 转换-------------------------(R,G,B 都是8bit unsigned)| Y||0
114 || R || 0 || Cb |=|- 0
1687- 0
5| * | G |+ |128|| Cr ||0
4187- 0
0813|| B ||128|Y = 0
299*R + 0
587*G + 0
114*B(亮度)Cb =- 0
1687*R - 0
3313*G + 0
5*B + 128Cr =0
5*R - 0
4187*G - 0
0813*B + 128[Y,Cb,Cr] -> [R,G,B] 转换-------------------------R = Y+ 1
402*(Cr-128)G = Y - 0
34414*(Cb-128) - 0
71414*(Cr-128)B = Y + 1
772*(Cb-128)一般, C 值 (包括 Cb Cr) 应该是一个有符号的数字,