




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、淺談JPEG圖像壓縮演算法餘科亮 本文僅討論靜止圖像的壓縮基本演算法,圖像壓縮的目的在於以較少的資料來表示圖像以節約存儲費用,或者傳輸時間和費用。 JPEG壓縮演算法可以用失真的壓縮方式來處理圖像,但失真的程度卻是肉眼所無法辯認的。這也就是爲什麽JPEG會有如此滿意的壓縮比例的原因。 下面主要討論,JPEG基本壓縮法。 一.JPEG壓縮過程 JPEG壓縮分四個步驟實現: 1.顔色模式轉換及採樣; 2.DCT變換; 3.量化; 4.編碼。二.1顔色模式轉換及採樣 RGB色彩系統是我們最常用的表示顔色的方式。JPEG採用的是YCbCr色彩系統。想要用JPEG基本壓縮法處理全彩色圖像,得先把RGB顔
2、色模式圖像資料,轉換爲YCbCr顔色模式的資料。Y代表亮度,Cb和Cr則代表色度、飽和度。通過下列計算公式可完成資料轉換。 Y=0.2990R+0.5870G+0.1140B Cb=-0.1687R-0.3313G+0.5000B+128 Cr=0.5000R-0.4187G-0.0813B128 人類的眼晴對低頻的資料比對高頻的資料具有更高的敏感度,事實上,人類的眼睛對亮度的改變也比對色彩的改變要敏感得多,也就是說Y成份的資料是比較重要的。既然Cb成份和Cr成份的資料比較相對不重要,就可以只取部分資料來處理。以增加壓縮的比例。JPEG通常有兩種採樣方式:YUV411和YUV422,它們所代表
3、的意義是Y、Cb和Cr三個成份的資料取樣比例。 2.DCT變換 DCT變換的全稱是離散余弦變換(Discrete Cosine Transform),是指將一組光強資料轉換成頻率資料,以便得知強度變化的情形。若對高頻的資料做些修飾,再轉回原來形式的資料時,顯然與原始資料有些差異,但是人類的眼睛卻是不容易辨認出來。 壓縮時,將原始圖像資料分成8*8資料單元矩陣,例如亮度值的第一個矩陣內容如下: JPEG將整個亮度矩陣與色度Cb矩陣,飽和度Cr矩陣,視爲一個基本單元稱作MCU。每個MCU所包含的矩陣數量不得超過10個。例如,行和列採樣的比例皆爲4:2:2,則每個MCU將包含四個亮度矩陣,一個色度矩
4、陣及一個飽和度矩陣。 當圖像資料分成一個8*8矩陣後,還必須將每個數值減去128,然後一一代入DCT變換公式中,即可達到DCT變換的目的。圖像資料值必須減去128,是因爲DCT轉換公式所接受的數位範圍是在-128到+127之間。 DCT變換公式:x,y代表圖像資料矩陣內某個數值的座標位置f(x,y)代表圖像資料矩陣內的數個數值u,v代表DCT變換後矩陣內某個數值的座標位置F(u,v)代表DCT變換後矩陣內的某個數值 u=0 且 v=0 c(u)c(v)=1/1.414 u>0 或 v>0 c(u)c(v)=1 經過DCT變換後的矩陣資料自然數爲頻率係數,這些係數以F(0,0)的值最
5、大,稱爲DC,其餘的63個頻率係數則多半是一些接近於0的正負浮點數,一概稱之爲AC。 3、量化 圖像資料轉換爲頻率係數後,還得接受一項量化程式,才能進入編碼階段。量化階段需要兩個8*8矩陣資料,一個是專門處理亮度的頻率係數,另一個則是針對色度的頻率係數,將頻率係數除以量化矩陣的值,取得與商數最近的整數,即完成量化。 當頻率係數經過量化後,將頻率係數由浮點數轉變爲整數,這才便於執行最後的編碼。不過,經過量化階段後,所有資料只保留整數近似值,也就再度損失了一些資料內容,JPEG提供的量化表如下:4、編碼 Huffman編碼無專利權問題,成爲JPEG最常用的編碼方式,Huffman編碼通常是以完整的
6、MCU來進行的。 編碼時,每個矩陣資料的DC值與63個AC值,將分別使用不同的Huffman編碼表,而亮度與色度也需要不同的Huffman編碼表,所以一共需要四個編碼表,才能順利地完成JPEG編碼工作。 DC編碼 DC是彩採用差值脈衝編碼調製的差值編碼法,也就是在同一個圖像分量中取得每個DC值與前一個DC值的差值來編碼。DC採用差值脈衝編碼的主要原因是由於在連續色調的圖像中,其差值多半比原值小,對差值進行編碼所需的位元數,會比對原值進行編碼所需的位元數少許多。例如差值爲5,它的二進位表示值爲101,如果差值爲-5,則先改爲正整數5,再將其二進位轉換成1的補數即可。所謂1的補數,就是將每個Bit
7、若值爲0,便改成1;Bit爲1,則變成0。差值5應保留的位數爲3,下表即列出差值所應保留的Bit數與差值內容的對照。 在差值前端另外加入一些差值的霍夫曼碼值,例如亮度差值爲5(101)的位數爲3,則霍夫曼碼值應該是100,兩者連接在一起即爲100101。下列兩份表格分別是亮度和色度DC差值的編碼表。根據這兩份表格內容,即可爲DC差值加上霍夫曼碼值,完成DC的編碼工作。 AC編碼 AC編碼方式與DC略有不同,在AC編碼之前,首先得將63個AC值按Zig-zag排序,即按照下圖箭頭所指示的順序串聯起來。 63個AC值排列好的,將AC係數轉換成中間符號,中間符號表示爲RRRR/SSSS,RRRR是指
8、第非零的AC之前,其值爲0的AC個數,SSSS是指AC值所需的位數,AC系數的範圍與SSSS的對應關係與DC差值Bits數與差值內容對照表相似。 如果連續爲0的AC個數大於15,則用15/0來表示連續的16個0,15/0稱爲ZRL(Zero Rum Length),而(0/0)稱爲EOB(Enel of Block)用來表示其後所剩餘的AC係數皆等於0,以中間符號值作爲索引值,從相應的AC編碼表中找出適當的霍夫曼碼值,再與AC值相連即可。 例如某一組亮度的中間符爲5/3,AC值爲4,首先以5/3爲索引值,從亮度AC的Huffman編碼表中找到霍夫曼碼值,於是加上原來100(4)即是用來取5,4的Huffman編碼,5,4表示AC值爲4的前面有5個零。 由於亮度AC,色度AC霍夫曼編碼表比較長,在此省略去,有興趣者可參閱相關書籍。 實現上述四個步
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 实操型执业护士考试备考试题及答案
- 药师考试常见问题及试题及答案
- 2025年执业医师考试听说提升法试题及答案
- 2025年行政管理语文考试的全方位试题与答案
- 行政法学辅导材料试题及答案
- 行政管理发展趋势与试题及答案讲解
- 备考自考行政管理专科的试题与答案
- 2025年执业医师考试试题及答案全解析
- 行政管理专科考前冲刺试题及答案
- 2025年执业医师考试复习竞争策略试题及答案
- 国网北京市电力公司授权委托书(用电)
- 边坡支护之锚杆施工技术ppt版(共35页)
- 黄芩常见的病虫害症状及防治措施
- 中小学教育惩戒规则(试行)全文解读ppt课件
- 思政课社会实践报告1500字6篇
- GB∕T 25119-2021 轨道交通 机车车辆电子装置
- 电池PCBA规格书
- 机械零件加工验收检验记录(共2页)
- 机械加工切削全参数推荐表
- 终端塔基础预偏值(抬高值)计算表格
- 海外医疗服务委托合同协议书范本模板
评论
0/150
提交评论