資源描述:
《JPEG圖像壓縮實驗》由會員上傳分享,免費在線閱讀,更多相關內容在行業(yè)資料-天天文庫。
1、通信技術綜合實驗指導書JPEG靜態(tài)圖像壓縮實驗指導書一、實驗目的1.了解多媒體通信中圖像壓縮技術2.熟悉JPEG圖像壓縮編碼過程3.掌握二維DCT變換算法二、實驗原理JPEG(JointPhotographicExpertsGroup)是一個由ISO和ITU-T兩個組織機構聯(lián)合組成的一個圖像專家小組,負責制定靜態(tài)的數(shù)字圖像數(shù)據(jù)壓縮編碼標準,這個專家組開發(fā)的算法稱為JPEG算法,并且成為國際上通用的標準。JPEG是一個適用范圍很廣的靜態(tài)圖像數(shù)據(jù)壓縮標準,既可用于灰度圖像又可用于彩色圖像。JPEG不僅適于靜止圖像的壓縮,電視圖像的幀內圖像的壓縮編碼,也常采用此
2、算法。JPEG標準定義了多種工作模式,其中最基本的是基于8×8塊的DCT順序編碼,將一幀圖像分為8×8的塊,然后按照從左至右、自上而下的順序,對塊進行DCT、量化和熵編碼。其編、解碼框圖如下:FDCT熵編碼器量化表熵編碼表壓縮圖像數(shù)據(jù)源圖像數(shù)據(jù)基于DCT的編碼器圖像子塊量化器圖1基于DCT的順序編碼框圖DCT解碼器IDCT逆量化器熵解碼器量化表熵編碼表壓縮圖像數(shù)據(jù)重構圖像數(shù)據(jù)圖2基于DCT的順序解壓縮框圖10西南科技大學信息工程學院通信技術綜合實驗指導書JPEG壓縮編碼算法的主要計算步驟:1)正向離散余弦變換(FDCT)。2)量化(quantization
3、)。3)Z字形編碼(zigzagscan)。4)使用差分脈沖編碼調制(differentialpulsecodemodulation,DPCM)對直流系數(shù)(DC)進行編碼。5)使用行程長度編碼(run-lengthencoding,RLE)對交流系數(shù)(AC)進行編碼。6)熵編碼(entropycoding)。一、實驗內容按照上述壓縮過程實現(xiàn)一幅圖像的壓縮,生成符合JPEG標準的圖像文件JPEG圖像編碼流程如下:輸入原圖像8×8二維FDCT變換量化DC系數(shù)差分編碼AC系數(shù)游程編碼熵編碼生成JPEG壓縮文件文件保存輸入原圖像8×8二維IDCT變換逆量化DC系數(shù)
4、解碼AC系數(shù)解碼碼熵解碼讀取JEPG文件JIEPEIGJPEGWENJIAN表說明量化表圖3JPEG圖像編碼流程1.DCT變換對8×8的圖像數(shù)據(jù)塊進行二維DCT10西南科技大學信息工程學院通信技術綜合實驗指導書的變換,把能量集中在少數(shù)幾個系數(shù)上,從而達到數(shù)據(jù)壓縮的目的。:DCT變換公式:DCT反變換公式:其中:二維DCT變換可以分解為行和列的一維DCT變換的組合運算,也可將8×8的塊分為更小的子塊,直接對二維數(shù)據(jù)進行2維快速余弦變換。1.量化量化表達式為:其中T(u,v)是推薦的量化矩陣,詳見附錄1量化矩陣表2.熵編碼JPEG標準中熵編碼對直流DC系數(shù)和交
5、流AC系數(shù)分別采用不同的壓縮編碼算法1)DC系數(shù)編碼:JEPG把所有子塊的DC系數(shù)集合在一起,采用差分編碼的方法表示。編碼步驟為:a)將初始值設為128,對相鄰塊的DC系數(shù)F(0,0)進行差分運算b)將差分值改寫為[size,value](尺寸,幅值)的符號對。尺寸取2的對數(shù)加1c)按照表2、3對該符號對進行編碼2)AC系數(shù)編碼AC系數(shù)編碼步驟為:a)以塊為單位,從AC01開始對塊內的量化數(shù)據(jù)進行Z形行程掃描,記錄兩個非零值的大小和其間連續(xù)零的個數(shù)b)將掃描結果改寫為[RunLength,level](行程、幅度)的符號對,10西南科技大學信息工程學院通信
6、技術綜合實驗指導書其中RunLength代表該非零值和它前一個值之間0的個數(shù),以(EOB)表示塊結束。a)按照表3對上述的符號對進行編碼。若符號在表中查不到對應碼字,用ESC碼表示,然后按表4,5對RunLength和level進行編碼。2.對編碼后的圖像數(shù)據(jù)進行解碼,與原始圖像數(shù)據(jù)進行比較。二、實驗要求1.根據(jù)實驗內容要求編寫編解碼程序,所用編程語言自選??梢詤⒖紝嶒炇姨峁┑姆独绦?,并充分發(fā)揮你的創(chuàng)造性,寫出有自己特色的程序。2.生成JPEG格式的壓縮文件,可用第三方軟件打開,由指導教師驗證通過3.實驗完成后提交完整源程序,并在關鍵處加上詳細批注。4.
7、撰寫實驗報告,實驗報告要求詳細介紹你實現(xiàn)的功能,設計思想,并根據(jù)思考題進行分析。三、樣本程序說明實驗室提供一個BC編寫的樣本程序,供大家參考。見“JPEG實驗”文件夾,各文件功能說明如下:1)JPEG壓縮程序:gendat.exe2)為壓縮后的數(shù)據(jù)加上JPEG文件頭的程序genjpg.exe3)解JEPG壓縮程序extrdat.exe其中:(1)的輸入參量是需要生成的壓縮文件的名字。主程序流程為:a)程序初始化,讀取文件名稱、原始圖像數(shù)據(jù)等基本數(shù)據(jù);b)從AC.TAB和DC.TAB兩個文件生成AC表和DC表,存入數(shù)組c)以8×8為樣本單位進行DCT變換d)
8、以8×8為樣本單位進行量化e)以8×8為樣本單位進行Z形掃描f)以