freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

基于matlab的jpeg基本系統(tǒng)編碼-資料下載頁

2024-11-07 21:56本頁面

【導讀】本文介紹了基于MATLAB的JPEG基本系統(tǒng)編碼。在圖像傳送過程中,經常采用JPEG. 格式對靜止圖像進行壓縮編碼。其次,對量化后的變換系數采用Z形掃描,得到直。接著,對直流系數采用預測編碼,對交流系數采用可變長編碼。根據標準的Huffman編碼進行熵編碼,輸出壓縮圖像的比特序列,從而實現圖像壓縮。另外,數據壓縮比在10倍左右且峰值信噪比均在30dB以上。

  

【正文】 圖 亮度信號的量化表 XX 大學學士學位論文 16 99999999999999999999999999999999999999999999999999999999999999999999999999996647999999999956262499999999662621189999999947241817 圖 色差信號的量化表 編碼 Huffman編碼無專利權問題,成為 JPEG 最常用的編碼方式, Huffman編碼通常是以完整的 MCU 來進行的。編碼時,每個矩陣數據的 DC 值與 63 個 AC值,將分別使用不同的Huffman編碼表,而亮度與色度也需要不同的 Huffman編碼表,所以一共需要 4 個編碼表,才能順利地完成 JPEG 編 碼工作。 DC 編碼是采用差值脈沖編碼調制的差值編碼法,也就是在同一個圖像分量中取得每個 DC 值與前一個 DC 值的差值來編碼,同時,由于其后的附加位用以唯一的規(guī)定該類中一個具體的差值幅度。亮度分量和灰度分量的統(tǒng)計特性不同,其碼字結構為: C=(SSSS,附加位 ),其中 4bits 二進制碼 “SSSS”用來將 DC 差值的幅度范圍分為 255。 DC 采用差值脈沖編碼的主要原因是由于在連續(xù)色調的圖像中,其差值多半比原值小,對差值進行編碼所需的位數,會比對原值進行編碼所需的位數少許多,具體可看表 ——差值 Bits 數與差值內容對照 表。 表 差值 Bits 數與差值內容對照表 差值 Bits DC 差值內容 0 0 1 1,1 2 3,2,2,3 3 7,… 4,4,…7 4 15,…, 8,8…,15 5 31,…, 16,16,…,31 6 61,…, 32,32,…63 7 127,… 64,64,…,127 8 255,… 128,128,…,255 18 511,…, 256,256,…511 10 1023,…, 512,512, …,1023 11 2047,…, 1024,1024,…,2047 在差值前端另外加入一些差值的 Huffman 碼值,例如亮度差值為 5(101)的位數為 3,基于 MATLAB 的 JPEG 基本系統(tǒng)編碼 17 在 Huffman 碼值應該是 100,兩者連接在一起即為 100101。表 和表 分別是亮度和色度 DC 差值的編碼表。根據這兩份表格內容,即可為 DC差值加上 Huffman碼值,完成DC 的編碼工作。 表 亮度 DC 差值的 Huffman 編碼表 差值 Bits 數 編碼 Bits 數 編碼內容 0 2 00 1 3 010 2 3 011 3 3 100 4 3 101 5 3 110 6 4 1110 7 5 11110 8 6 111110 9 7 1111110 10 8 11111110 11 9 111111110 表 色度 DC 差值的 Huffman 編碼表 差值 Bits 數 編碼 Bits 數 編碼內容 0 2 00 1 2 01 2 2 10 3 3 110 4 4 1110 5 5 11110 6 6 111110 7 7 1111110 8 8 11111110 9 9 111111110 10 10 1111111110 11 11 11111111110 在量化之后, DCT 系數還要經過兩種數據變換,以適應于用熵編碼進一步壓縮數據的目的,如表 所示。從 DCT 變換的公式可以看出,直流 (DC)系數反映了 88 子塊內 64個像素均值的度量,它包含了整個圖像總能量的重要部分,因此將 DC 系數和其余 63 個交流 (AC)系數分別編碼。由于相鄰的 88 子塊的 DC系數通常具有很強的相關性,對 DC 系 XX 大學學士學位論文 18 數使用一維前值預測,即用前一個子塊的 DC 系數預測當前子塊的 DC 系數,而后將預測誤差進行熵編碼,如圖 (a)所示。其余 63 個交流系數則用 Zig_Zag之字形掃 描轉換成一維序列,如圖 (b)所示,編碼順序為箭頭所示的方向。 Zig_Zag掃描可以使低頻系數出現在高頻系數前面,有利于熵編碼的進行。 AC 和 DC 均為二進制補碼表示的整數。 1?iBl ock iBl oc k1?iDC iDC1??? ii DCDCD IF F1)( ??? ii DCDCD I F Fa 77767574737271706766656463626160575655545352515047464544434241403736353433323130272625242322212017161514`131211100706050403020200DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD( b ) Z i g _ Z a g 掃 描 順 序 圖 Zig_Zag掃描 AC 編碼方式與 DC 略有不同,在 AC 編碼之前,首先得將 AC 值按 Zig_Zag排序,即按照圖 (b) Zig_Zag掃描順序箭頭所指示的順序串聯(lián) 起來。 AC 值排列之后,將 AC 系數轉換成中間符號,中間符號表示為 RRRR/SSSS, RRRR 表示非零的 AC 之前其值為 0 的AC 個數, SSSS 表示 AC 值所需的位數, AC 系數的范圍與 SSSS 的對應關系與 DC 差值Bits 數與差值內容對照表相似。如果連續(xù)為 0 的 AC 個數大于 15,則用 15/0 來表示連續(xù)的16 個 0, 15/0 稱為 ZRL(Zero Rum Length),而 (0/0)稱為 EOB(Engel of Block)用來表示其后所剩余的 AC 系數皆等于 0,以中間符號值作為索引值,從相應的 AC 編碼表中找出適當的 Huffman碼值,再與 AC 值相連即可。例如某一組亮度的中間符為 5/3,AC 值為 4,首先以 5/3 為索引值,從亮度 AC 的 Huffman編碼表中找到 1111111110011110Huffman 碼值,于是加上原來 100(4)即是用來取 [5,4]的 Huffman編碼 1111111110011110100, [5,4]表示 AC 值為 4 的前面有 5 個零。由于亮度 AC,色調 AC Huffman編碼表比較長,在此不作闡述。 實現上述四個步驟,即完成一幅圖像的 JPEG 壓縮。 JPEG 壓縮是采用以 DCT 為基礎基于 MATLAB 的 JPEG 基本系統(tǒng)編碼 19 的有損壓縮算法,即使壓縮比為 25:1 的情況下,壓縮后還原得到的圖像與原始圖像相比較,非圖像專家難以找到它們之間的區(qū)別,這正是 JPEG 壓縮算法得到了廣泛應用的原因 [9]。 JPEG 圖像數據壓縮發(fā)展 JPEG 是一個適用范圍很廣的靜態(tài)圖像數據壓縮標準,既可用于灰度圖像又可用于彩色圖像。 JPEG 壓縮算法可以用失真的壓縮方式來處理圖像,但失真的程度卻是肉眼所無法辨認的,可以實現很高的壓縮比。最近發(fā)布的 JPEG2020 標準提供了一些新的壓縮算法,支持 Inter 應用等特點。 XX 大學學士學位論文 20 基于 MATLAB 的 JPEG 基本系統(tǒng)編碼 21 第 5章 MATLAB仿真 系統(tǒng)模塊圖 系統(tǒng)的模塊圖如圖 所示,原始數據經過緩沖再進行 DCT 編碼,編碼結果進行 ZZ掃描,然后進行量化,經碼流脈沖后進行霍夫曼編碼,最后輸出壓縮編碼。 輸 入緩 沖D C TZ Z 掃描量 化碼 流脈 沖量 化 表霍 夫 曼編 碼輸 出脈 沖編 碼 表 圖 JPEG 系統(tǒng)模塊圖 它對彩色圖像采用分量編碼。 RGB——YUV變換并不包括在編碼器內。 首先將整個圖像分為小的重疊的 88 像素子塊 (共有 Y, U, V三幅數字圖像 ),接著對各個子塊進行 DCT 變換,然后對所有的系數進行線性量化。量化的過程是對系數值 的量化間距劃分后的歸整運算,量化步長取決于一個 “視覺閾值矩陣 ”并隨系數的位置而變化,并且對 Y 和 UV分量也不同。量化步長矩陣,它們是根據視覺心理實驗得到的。每個系數的量化步長設置是在通常的視覺距離下的 “正好可注意到的幅值 ”。利用這些閾值,在編碼率小于 1bit/像素的條件下依然獲得非常好的圖像質量。當把量化步長乘以一個公共因數后,一般可以調整比特率,由此可以實現自適應編碼。 其次,對 DCT 量化系數進行熵編碼,進一步壓縮碼率。這里可以采用 Huffman 編碼VLC(Variable Length Code,可變長編 碼 )。對于當前子塊 DC 系數與上一塊的 DC 系數之差值進行 VLC 編碼壓縮數據;這是由于 DC分量是子塊的平均值,相鄰子塊間的相關性很強,同時,視覺上要求各子塊的平均灰度無明顯的跳躍,因此對 DC 的差值作無失真的熵編碼是合適的。對于 AC 系數,由于量化后的系數為稀疏的,僅少數 AC 系數不為零,因此采用 “之 ”字形方式進行一維掃描,然后將非零系數前面的 “0”的游程長度 (個數 )與該系數值一起作為統(tǒng)計事件進行 VLC 編碼。在基本系統(tǒng)中共推薦了兩組 Huffman 碼表,一組用于亮度信號 Y,另一組用于色度信號 U, V。每一組表又包括兩張表 ,一個用于 DC 分量,一個用于 AC 分量。 JPEG壓縮編碼的設計流程 DCT 部分程序流程圖利用 DCT 變換進行圖像壓縮,首先要將輸入圖像分解為 88 的塊,然后對每個塊進行二維 DCT 變換,最后將變換得到的 DCT 系數進行編碼和傳送,解碼時對每個 88 的圖像塊進二維 DCT 反變換,最后將反變換后的塊組合成一幅圖像。對 XX 大學學士學位論文 22 于通常的圖像來說,大多數的 DCT 系數的值非常接近于 0。如果舍棄這些接近于 0 的 DCT系數值,在重構圖像時并不會帶來畫面質量的顯著下降,所以利用 DCT 進行圖像壓縮編碼可以節(jié)約大量的存儲空間。壓縮應該在最 合理的近似原圖像情況下使用最少的系數,使用系數的多少決定了壓縮比的大小。具體程序流程圖如圖 所示。 掃描順序變換 基于 DCT 需要按設定的有損壓縮以 88 的數據矩陣為基本處理單元稱為數據單元(DU),因此 JPEG 工作模式,重新排序,即掃描變換。圖像預處理所得到的數據是按逐列逐行掃描得到的。 數據掃描順序有下面幾個層次:分量間,采用 YCbCr 的順序,按 Y:Cb:Cr=4:2:2 格式組成 MCU(最小編碼單元 )交織掃描; MCU 間采用先逐列從左到右再逐行從上到下的自然掃描順序 (如圖 所示 )。一 個 MCU的某組成分量的 DU間采用自然掃描順序; DU內的各矩陣元素間也采用自然掃描順序。 Zig_Zag 掃描的過程主要有兩塊,一塊是產生順序遞增的地址,一塊是由掃描地址表輸出符合 Zig_Zag順序的地址數據,最后按照 Zig_Zag順序對數據進行輸出,完成 zz掃描部分,如圖 所示。 量化部分程序流程圖 對圖像進行量化時,要選擇碼字的尺寸和碼字的大小。這些都會影響圖像壓縮的效果。任意一幅圖像同樣分割成 88 的子塊圖像,可以按照碼字的索引編號進行編碼。即每個圖像經過編碼之后僅用一個索引號表示,從而實 現了數據的壓縮。解碼就是按照索引代表的碼字將圖像重建出來。重建圖像和原圖像之間會存在一定程度的失真,但只要失真限制在一定范圍內,我們認為該圖像壓縮是有效的,如圖 所示。 霍夫曼編碼部分程序流程圖 霍夫曼編碼的過程較一般編碼方法更為繁瑣,主要包括霍夫曼編碼部分和先序遍歷霍夫曼樹函數兩部分?;舴蚵幋a部分步驟主要有初始化碼字、排列列表,對 n個消息進行排序,將最后兩個出現概率最小的消息合成一個消息,重復上述步驟主要完成對霍夫曼完成的代碼以二叉樹的方式生成霍夫曼壓縮編碼,如圖 所示 [10]。 基于 MATLAB 的 JPEG 基本系統(tǒng)編碼 23 開 始結 束輸 入 一 幅 原 始 圖 像分 成 8 8 像 素 塊 , 分 別 做 D C T 變 換根 據 量 化 表 , 對 變 換 系 數 進 行 量 化對 量 化 后 的 變 換 系 數 進 行 Z i g Z a g 掃 描對 經 掃 描 得 到 的 D C 系 數 和 A C 系 數 分 別 進 行 H u f f m a n 熵 編 碼得 到 整 個 圖 像 編 碼 后 的 比 特 序 列 , 并 計 算 壓 縮 比 特 率對 D C 系 數 和 A C 系 數 分 別 進 行 H u f f m a n 熵 編 碼反 掃 描 、 反 量 化反 D C T 變 換計 算 重 建 圖 像 的 峰 值 信 噪 比 圖 JPEG 編解碼 Matlab 程序流程圖 Y 0 Y 1 Y 2 Y 3YC h 0 C h 1
點擊復制文檔內容
高考資料相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1