能够对 JEG 图形压缩有一定感性的认识, 但其数学.doc

能够对 JEG 图形压缩有一定感性的认识, 但其数学.doc

ID:55613834

大小:40.00 KB

页数:13页

时间:2020-05-19

能够对 JEG 图形压缩有一定感性的认识, 但其数学.doc_第1页
能够对 JEG 图形压缩有一定感性的认识, 但其数学.doc_第2页
能够对 JEG 图形压缩有一定感性的认识, 但其数学.doc_第3页
能够对 JEG 图形压缩有一定感性的认识, 但其数学.doc_第4页
能够对 JEG 图形压缩有一定感性的认识, 但其数学.doc_第5页
资源描述:

《能够对 JEG 图形压缩有一定感性的认识, 但其数学.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、能够对JPEG图形压缩有一定感性的认识,但其数学原理不需要搞清.能够通过这,   开始写自己的编码/解码程序.或者看懂以有的代码.对有损图形压缩有进一步了解.   自己能够改良JPEG,比如增加透明色的支持,加快JPEG的解码速度.JPEG压缩简介-------------1.色彩模型   JPEG的图片使用的是YCrCb颜色模型,而不是计算机上最常用的RGB.关于色彩模型,这里不多阐述.只是说明,YCrCb模型更适合图形压缩.因为人眼对图片上的亮度Y的变化远比色度C的变化敏感.我们完全可以每个点保存一个8bit的亮度

2、值,每2x2个点保存一个CrCb值,而图象在肉眼中的感觉不会起太大的变化.所以,原来用RGB模型,4个点需要4x3=12字节.而现在仅需要4+2=6字节;平均每个点占12bit.当然JPEG格式里允许每个点的C值都记录下来;不过MPEG里都是按12bit一个点来存放的,我们简写为YUV12.[RGB]->[YCbCr]转换-------------------------(R,G,B都是8bitunsigned)       

3、Y 

4、    

5、 0.299      0.587      0.114

6、  

7、R

8、    

9、

10、0

11、       

12、Cb

13、 = 

14、-0.1687   -0.3313     0.5  

15、*

16、G

17、  +

18、128

19、       

20、Cr

21、    

22、 0.5      -0.4187   -0.0813

23、  

24、B

25、    

26、128

27、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=

28、Y                   +1.402 *(Cr-128)G=Y-0.34414*(Cb-128)-0.71414*(Cr-128)B=Y+1.772 *(Cb-128)   一般,C值(包括CbCr)应该是一个有符号的数字,但这里被处理过了,方法是加上了128.JPEG里的数据都是无符号8bit的.2.DCT(离散余弦变换)   JPEG里,要对数据压缩,先要做一次DCT变换.DCT变换的原理,涉及到数学知识,这里我们不必深究.反正和傅立叶变换(学过高数的都知道)是差不多了.经过这个变换,就把图片里点和

29、点间的规律呈现出来了,更方便压缩.JPEG里是对每8x8个点为一个单位处理的.所以如果原始图片的长宽不是8的倍数,都需要先补成8的倍数,好一块块的处理.另外,记得刚才我说的CrCb都是2x2记录一次吗?所以大多数情况,是要补成16x16的整数块.按从左到右,从上到下的次序排列(和我们写字的次序一样).JPEG里是对YCrCb分别做DCT变换的.这里进行DCT变换的Y,Cr,Cb值的范围都是-128~127.(Y被减去128)   JPEG编码时使用的是ForwardDCT(FDCT)解码时使用的InverseDCT(I

30、DCT)下面给出公式:FDCT:                            7  7                2*x+1               2*y+1F(u,v)=alpha(u)*alpha(v)*sumsumf(x,y)*cos(-------*u*PI)*cos(------*v*PI)                           x=0y=0                16                  16u,v=0,1,...,7          {1/sqrt

31、(8) (u==0)alpha(u)={          {1/2       (u!=0)IDCT:         7  7                                2*x+1               2*y+1f(x,y)=sumsumalpha(u)*alpha(v)*F(u,v)*cos(-------*u*PI)*cos(------*v*PI)        u=0v=0                                16                  16

32、x,y=0,1...7   这个步骤很花时间,另外有种AA&N优化算法,大家可以去inet自己找一下.在Intel主页上可以找到AA&NIDCT的MMX优化代码.(Intel主页上的代码,输入数据为12.4的定点数,输入矩阵需要转置90度)3.重排列DCT结果    DCT将一个8x8的数组变换成另一个8x8的数组.但是内存里所有

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。