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

正文內容

jpeg標準研究及算法實現(xiàn)-資料下載頁

2024-12-07 10:19本頁面

【導讀】個流程,進一步了解JPEG標準壓縮模塊?;疽螅?.了解圖像壓縮的意義和圖像壓縮編碼技術的發(fā)展。[1]吳樂南.數據壓縮的原理與應用[M].北京:電子工業(yè)出版社,1995:127~143.[2]王匯源.數字圖像原理與技術[M].北京:國防工業(yè)出版社,2021:75~124.[3]胡國榮.數字視頻壓縮及標準[M].北京:北京廣播學院出版社,1999:83~110.[4]馮玉珉,邵玉明,張星.數據圖像壓縮編碼[M].中國鐵道出版社.19939~15.[5]嚴劍.Huffman算法及在數據壓縮應用[J].計算機與現(xiàn)代化.1996,48:15~20.

  

【正文】 9 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 JPEG 標準研究及算法實現(xiàn) 18 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 圖 31 Z 字形掃描圖 熵編碼 (Entropy Encode) 在經過 DCT 編碼以及量化之后, 已 大大降低了圖像信息的相關性。熵編碼器的作用是進一步降低表達信息所需的數據量。熵編碼器的這個作用是通過三種方式來實現(xiàn)的:差分脈沖編碼 (Differential Pulse Code Modulation, DPCM),游程長度編碼和哈夫曼 (Huffman)編碼。 (1) 游程長度編碼和差分脈沖編碼 變換系數經量化后,大多數低頻部分的系數非零,而大多數高頻部分的系數變?yōu)榱?。相?8x8塊之間的直流分量 (DC系數 )一般有很強的相 關性,即 JPEG標準對 DC系數采用差分脈沖編碼方法,對相鄰像素塊之間的 DC系數的差值進行編碼。其余 63個交流分量 (AC系數 )使用游程長度編碼,從左上角開始沿對角線方向,以 Z字形進行掃描直至結束。 ① 直流系數的編碼 直流系數可由公式得到: )]0c o s ()0c o s (),()[0,0(41)0,0( 7070jixCZji ?? ??? ( 32) 其中 C(0, 0)=1/2, Z(0, 0)就是直流系數,即一塊圖像樣本的平均值,包含了原始 8x8圖像塊里的很多能量。 8x8圖像塊經過 DCT變 換和量化之后得到的直流系數有 兩個特點,一是系數的數值比較大;二是相鄰圖像塊的 DC系數值變化不大。根據這兩JPEG 標準研究及算法實現(xiàn) 19 個特點, JPEG算法使用了差分脈沖編碼技術,對相鄰圖像塊之間量化 DC系數的差(Diff)進行編碼。 Diff=DC(i)DC (i1) JPEG從 i=1開始對 DC編碼,所以 DC(0)=0。將當前 Diff值加在上一個 DC(i1)值上得到當前值 DC(i)。 ② 交流系數的編碼 游程長度編碼是壓縮一個文件最簡單的方法之一。它的做法就是把一系列的重復值 (例如圖像象素的灰度值 )用一個單獨的值再加上一個計數值來取代 。比如有這樣一個字母序列 aabbbeccccddd它的游程長度編碼就是 2a3b5c3d。這種方法實現(xiàn)起來很容易,而且對于具有長重復值的串的壓縮編碼很有效。 在 JPEG編碼中,使用游程長度編碼對交流系數進行編碼:量化 AC系數的特點是1x64矢量中包含有許多 “0”系數,并且許多 “0”是連續(xù)的,因此,使用非常簡單和直觀的游程長度編碼對它們進行編碼。 JPEG使用了 2個字節(jié)表示 AC系數的中間格式符號: 符號 1(游程,尺寸 ) 符號 2 其中, 1個字節(jié)符號 1的高 4位來表示連續(xù) “0”的個數,而使用它的低 4位來 表示編碼下一 個非 “0”系數所需要的位數,跟在它后面的符號 2是量化 AC系數 的數值。假設有一組矢量 (64個的后 63個 )是: 23, 44, 0, 0, 0, 0, 19, 0, 20, 8, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 經過 RLE壓縮后如下: (0, 23); (0, 44); (4, 19); (1, 20); (0, 8); (2, 1); EOB EOB是一個結束標記,表示后面都是 “0”了。實際上,我們用 (0, 0)表示 EOB。但是,如果這組數字不以 “0”結束,那么就不需要 EOB。注意 (15, 0)表示了 16個連續(xù)的 “0”。 (2) 哈夫曼編碼 為了 對 DPCM 編碼后的直流 (DC)系數和游程長度編碼后的交流 (AC)系數作進一步的壓縮,需要對數據進行哈夫曼編碼。 哈夫曼編碼是 1952 年由 Huffman 提出的編碼方法,基本思想是可變長最佳編碼定理,即根據源數據符號出現(xiàn)的概率大小進行編碼,出現(xiàn)概率大的符號分配越短的碼字,出現(xiàn)概率越小的符號分配越長的碼字,從而達到用盡量少的比特數表示數據源。 JPEG 標準研究及算法實現(xiàn) 20 哈夫曼編碼的具體步驟如下: 第一 統(tǒng)計數據源符號出現(xiàn)的概率,得到不同概率的信息符號: 第二 將數據源符號按概率從大到小排列; 第三 把兩個最小概率相加作為新符號的概率,并按第二重 排; 第四 重復第一、第二,直到概率為 1; 第五 在每次合并信源時,將合并的信源分別賦 0 和 1; 第六 尋找從每一信源符號到概率為 1 處的路徑,記錄路徑上的 0 和 1; 第七 從樹根開始寫出每一符號的 0、 l。 第八 哈夫曼編碼器可以使用很簡單的查表方法進行編碼。這種可變長度的哈夫曼表可以事先進行定義。編碼時,每個矩陣數據的 DC 值與 63 個 AC 值,將分別使用不同的 Huffman 編碼表,而亮度與色度也需要不同的 Huffman 編碼表,所以一共需要 4 個編碼表,才能順利地完成 JPEG 編碼工作。 ① DC 編碼 JPEG 指出連續(xù)塊的 DC 系數之間 有很緊密的聯(lián)系,因此可對 8x8 塊的 DC 值的差別進行編碼 (Y, Cb, Cr 分別有自己的 DC)。由于 Diff=DC(i)DC(i1),所以這一塊的DC(i)就是: DC(i)=DC(i1)+Diff。 Diff 轉換成中間符號 VLC(SSSS)和 VLI(VVVV),VVVV 就等于 Diff, SSSS 表示 Diff 的值所需的位數,這可從 DC 系數的 VLI 編碼表得到。 DC 是采用差分脈沖編碼調制的差值編碼法,也就是在同一個圖像分量中取得每個 DC 值與前一個 DC 值的差值來編碼。 DC 采用差分脈沖編碼的主要原因是由于在連續(xù)色調的圖 像中,其差值多半比原值小,對差值進行編碼所需的位數,會比對原值進行編碼所需的位數少許多。例如差值為 5,他的二進制表示為 101,如果差值為. 5,則先改正為正整數 5,再將其二進制轉換成 1 的補數即可。所謂 l 的補數,就是將每位轉換;若值為 0,便改成 l;值為 l,則變成 0。差值 5 應保留的位數為 3,表 33即列出差值所應保留的位數與差值內容及 VLI 編碼。 JPEG 標準研究及算法實現(xiàn) 21 表 33 DC 系數的 VLI 編碼表 SSSS DIFF 值 VLI 編碼 0 0 1 1,1 0,1 2 3,2,2,3 00,01,10,11 3 7… 4,4…7 000… 011,100… 111 4 15… 8,8…15 0000… 0111,1000… 1111 5 31… 16,16…31 00000… 01111,10000… 1111 6 63… 32,32…63 000000… 011111,100000… 11111 7 127… 64,64…127 0000000… 0111111,1000000… 111111 8 255… 128,128…255 00000000… 01111111,10000000… 1111111 9 511… 256,256…5 11 000000000… 011111111,100000000… 11111111 10 1023… 512,512… 1023 0000000000… 0111111111,1000000000… 111111111 11 2047… 1024,1024… 2047 00000000000… 01111111111,10000000000… 1111111111 在差值前端另外加入一些差值的哈夫曼碼值,例如亮度差值為 5(101)的位數為 3,則哈夫曼碼值應該是 100,兩者連接 在一起即 為 100101。下列兩份表格分別是亮度和色度 DC 差值的編碼表。根據這兩份表格內容,即可為 DC 差值加上哈夫曼碼值,完成 DC 的編碼工作。 表 34 亮度 DC 差值的 Huffman 編碼表 SSSS 編碼位數 Huffman 編碼 0 2 0 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 JPEG 標準研究及算法實現(xiàn) 22 表 35 色度 DC 差值的 Huffman 編碼表 SSSS 編碼位數 Huffman 編碼 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 JPEG 從 0 開始對 DC 編碼,所以 DC(0)=0, 然后再將當前 Diff 值加在上一個值上得到當前值。 例如 Y 矩陣中的一個 8x8 塊的 DC 值 為 10,二進制為 1010,碼長為 4,查表亮度DC 差值的 Huffman 編碼表的哈夫曼識別碼長為 3,識別碼為 101,則其對哈夫曼編碼為 1011010,負數的編碼是取其絕對值的反碼進行編碼,如 DC 為 10,則其絕對值為 10,二進制仍為 1010,反碼 為 0101,哈夫曼編碼為 1010101。 ② AC 編碼 AC 編碼方式與 DC 略有不同,在 AC 編碼之前,首先得將 63 個 AC 值按 Z 字形排序,將 AC系數轉換成中間符號,中間符號表示為 VLC(RRRR/SSSS)和 VLI(VVVV),其中 VVVV 等于各個 AC 值, SSSS 表示 AC 值所需 的位數, RRRR 是指在非零的 AC之前,其值為零的 AC 個數, AC 系數的范圍與 SSSS 的對應關系與 DC 差值位數與差值內容對照表相似。 如果連續(xù) 0 的 AC 個數大于 15 時,則用 (15/0)來表示連續(xù) 16 個系數全為零,輸出 ZRL(Zero Run Length);而 (0/0)稱為 EOB(end of block),用來表示其后所剩余的AC 系數皆等于 0,以中間符號值作為索引值,從相應的 AC 編碼表中找出適當的哈夫曼碼值,再與 AC 值相連即可。為了提高存儲效率, JPEG 里并不直接保存數值,而是將數值按實際值所需要的位數分成 10 組,如表 36 所示。 JPEG 標準研究及算法實現(xiàn) 23 表 36 AC 系數的 VLI編碼 SSSS DIFF 值 VLI 編碼 1 1,1 0,1 2 3,2,2,3 00,01,10,11 3 7… 4,4…7 000… 011,100… 111 4 15… 8,8…15 0000… 0111,1000… 1111 5 31… 16,16…31 00000… 01111,10000… 1111 6 63… 32,32…63 000000… 011111,100000… 11111 7 127… 64,64…127 0000000… 0111111,1000000… 111111 8 255… 128,128…255 00000000… 01111111,10000000… 1111111 9 511… 256,256…5 11 000000000… 011111111,100000000… 11111111 10 1023… 512,512… 1023 0000000000… 0111111111,1000000000… 111111111 符號 SSSS 用于表達實際值所需要的位數,例如色度信號: (0, 31); (0, 45): (4, 23); (1, 30); (0, 8); (2, 1); (0, 0) 只處理每對數右邊的那個: 31 實際值所需要的位數為 5,實際保存值為 11111, 所以被編碼為 (5, 11111); 45 同樣的操作,編碼為 (6, 101101); 23 同樣的操作,編碼為 (5, 10111); 30 同樣的操作,編碼為 (5, 00001); 8 同樣的操作,編碼為 (4, 0111); 1 同樣的操作,編碼為 (1, 1)。 前面的那串數字就變成了: (0, 5), 11111, (0, 6), 101101; (4, 5), 10111: (1, 5), 00001; (0, 4), 0111;(2
點擊復制文檔內容
研究報告相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1