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

正文內(nèi)容

jpeg編碼解碼流程-文庫(kù)吧在線文庫(kù)

  

【正文】 則代表了后面數(shù)據(jù)的位數(shù)。 ( 4) DC 系數(shù)的 Huffman 解碼 JPEG 編碼階段 我們講到, DC 系數(shù)是以( A,B)的中間形式進(jìn)行編碼的。 ( c) 編碼內(nèi)容;該字段記錄了 Huffman 樹中各個(gè)葉子節(jié)點(diǎn)的權(quán)重,上一個(gè)字段(不同位數(shù)的碼字?jǐn)?shù)量)的 16 個(gè)數(shù)值之和,就是本字段的長(zhǎng)度,也就是 Huffman 樹中葉子節(jié)點(diǎn)的個(gè)數(shù)。 return lowBits * 256 + highBits。這種字節(jié)順序問(wèn)題的起 因在于早期的硬件發(fā)展上。需要提醒的是,連續(xù)的多個(gè) 0XFF 可以理解為一個(gè) 0XFF,并表示一個(gè)標(biāo)記 碼的開始。 因此 ,需要 4張 Huffman編碼表 才能完成熵 編碼的工作 。 (2,1) 。 (0,8) 。例如,( 4,6)就代表字符串“ 6666”。對(duì)差值進(jìn)行編碼所需要的位數(shù)會(huì)比對(duì)原值進(jìn)行編碼所需要的位數(shù)少了很多。 下圖給出 JPEG 的亮度量化表和色度量化表, 該量化 表 是從廣泛的實(shí)驗(yàn)中得出的。 這樣數(shù)列里的相鄰點(diǎn)在圖片上也是相鄰的了 。 可見(jiàn)圖像信號(hào)被分解為直流成分和一些從低頻到高頻的各種余弦成分。 正向離散余弦變換計(jì)算公式: 反向離散余弦變換計(jì)算公式: 這里的 N 是水平、垂直方向的像素?cái)?shù)目,一般取值為 8。注意,編碼時(shí),程序從源數(shù)據(jù)中讀取一個(gè) 8x8 的數(shù)據(jù)塊后,進(jìn)行 DCT 變換,量化,編碼,然后再讀取、處理下 一個(gè) 8*8 的 數(shù)據(jù)塊。 R = Y+(Cr128) G = (Cb128)(Cr128) B = Y+(Cb128) ( 2) 采樣 研究發(fā)現(xiàn),人眼對(duì)亮度變換的敏感度要比對(duì)色彩變換的敏感度高出很多。如下所示: 壓縮算法: ( 1) 有損的離散余弦變換 DCT( Discrete Cosine Transform) ( 2) 無(wú)損的預(yù)測(cè)壓縮技術(shù); 熵編碼方法: ( 1) Huffman 編碼; ( 2) 算術(shù)編碼; 編碼模式: ( 1) 基 于 DCT 的順序模式:編碼、解碼通過(guò)一次掃描完成; ( 2) 基于 DCT 的漸進(jìn)模式:編碼、解碼需要多次掃描完成,掃描效果由粗到精,逐級(jí)遞增; ( 3) 無(wú)損模式:基于 DPCM,保證解碼后完全精確恢復(fù)到原圖像采樣值; ( 4) 層次模式:圖像在多個(gè)空間分辨率中進(jìn)行編碼,可以根據(jù)需要只對(duì)低分辨率數(shù)據(jù)做解碼,放棄高分辨率信息; 在實(shí)際應(yīng)用中, JPEG 圖像編碼算法使用的大多是離散余弦變換、 Huffman 編碼、順序編碼模式。這樣的方式,被人們稱為 JPEG的基本系統(tǒng)。因此,我們可以認(rèn)為 Y 分量要比 Cb,Cr 分量重要的多。 JPEG 編碼 是 以每 8x8 個(gè)點(diǎn)為一個(gè)單位 進(jìn)行 處理的 . 所以如果原始圖片的長(zhǎng)寬不是 8 的倍數(shù) , 都需要先補(bǔ)成 8 的倍數(shù) , 使其可以進(jìn)行 一塊塊的處理 。 8*8 的二維像素塊經(jīng)過(guò) DCT 操作之后,就得到了 8*8的變換系數(shù)矩陣。而 DCT系數(shù)只表示了該種成分所占原圖像信號(hào)的份額大小。不難發(fā)現(xiàn),這種數(shù)據(jù)的掃描、保存、讀取方式,是從 8*8 矩陣的左上角開始,按照英文字母 Z 的形狀進(jìn)行掃描的,一般將其稱之為Zigzag掃描排序。當(dāng)然,你也可以自定義量化表。假設(shè)某一個(gè) 8*8 圖像塊的 DC 系數(shù)值為 15,而上一個(gè) 8*8 圖像塊的 DC 系數(shù)為 12,則兩者之間的差值為 3。但是,在 JPEG編碼中, RLC 的含義就同其原有的意義略有不同。 (2,1) 。 (0,0) 只處理每對(duì)數(shù)右邊的那個(gè)數(shù)據(jù),對(duì)其進(jìn)行 VLI 編碼 : 查找上面的 VLI 編碼表格,可以發(fā)現(xiàn), 57 在第 6組當(dāng)中,因此,可以將其寫成 (0,6),57 的形式,該形式,稱之為 AC系數(shù)的中間格式。具體的 Huffman 編碼采用查表的方式來(lái)高效地完成。另外,標(biāo)記碼在文件中一般是以標(biāo)記代碼的形式出現(xiàn)的。在 8 位 CPU 的時(shí)代,許多 8 位 CPU 都可以處理 16 位的數(shù)據(jù),但它們顯然是分兩次進(jìn)行處理的。 } JPEG 解碼算法流程詳解 薛曉利 ( 1) 讀入 JPEG/JFIF 文件的相關(guān)信息 按照 JFIF文件格式,將 JPEG文件相關(guān)的字段信息一一讀取出來(lái),并進(jìn)行相應(yīng)的解 析。 這里,我們不 妨以下面一段 Huffman 表的數(shù)據(jù)為例來(lái)說(shuō)明情況(均以 16 進(jìn)制表示): 11 00 02 02 00 05 01 06 01 00 00 00 00 00 00 00 00 00 01 11 02 21 03 31 41 12 51 61 71 81 91 22 13 32 以上數(shù)據(jù)串中第一行代表了 Huffman 表 ID、表類型、不同位數(shù)的碼字?jǐn)?shù)量信息; 第一行的第一個(gè)字節(jié) 0X11 代表了表的 ID 和類型是 AC 交流 1 號(hào)表; 第一行的第 2 到第 17 字節(jié)代表了不同位數(shù)碼字的數(shù)量。其中的 A代表了 B 的二進(jìn)制編碼位數(shù), B則利用 VLI 進(jìn)行編碼。例 如,( 2,3)就代表了當(dāng)前 AC系數(shù)之前有 2 個(gè) 0,下一個(gè)需要讀取的二進(jìn)制數(shù)據(jù)是 3 位。 ( 8) DCT 逆變換 DCT 變換,將原始圖像變換到頻域,而 DCT 逆變換,就是要將數(shù)據(jù)從頻域變換回時(shí)域。 轉(zhuǎn)秩就是對(duì) 64個(gè)數(shù)據(jù)進(jìn)行重新排列 ,例如 ,對(duì)于矩陣 M而言,將其第一行第二列的數(shù)據(jù)M( 1,2)跟其第一列第二行的數(shù)據(jù) M( 2,1)進(jìn)行互換, 如下圖 所示 : 左邊為未轉(zhuǎn)秩的數(shù)據(jù)順序,右邊為轉(zhuǎn)秩之后的數(shù)據(jù)順序。另外,由于 DCT 要求的定義域?qū)ΨQ,所以,在編碼的時(shí)候?qū)?RGB 的數(shù)值范圍從 [0,255]統(tǒng)一減去 128,將數(shù)值范圍轉(zhuǎn)換到 [128,127]的范圍內(nèi)。 經(jīng)分析可知,完成一次 DCT逆變換需要 4步: 1:壓縮數(shù)據(jù)塊( 88 ) F矩陣與矩陣 A( 88 )相乘,得到矩陣 Y( 88 ) ; 2:對(duì)矩陣 Y進(jìn)行轉(zhuǎn)秩得到( 88 ) YT 3: YT再與矩陣 A相乘得到 88 的矩陣 ft 4:對(duì) ft 進(jìn)行轉(zhuǎn)秩得到 f,這里的 f即為經(jīng)過(guò) DCT逆變換之后得到的時(shí)域的原始圖像 ; DCT逆變換的流程圖 如下 所示 : A矩陣乘法器的作用是實(shí)現(xiàn)輸入矩陣和 A矩陣的相乘。接著,讀取 B 位二進(jìn)制數(shù)據(jù),進(jìn)行譯碼,我們就得到了 AC 系數(shù)的值。因此,解碼的時(shí)候, DC系數(shù)也是最先被讀取出來(lái),假設(shè),我們一次性讀入了若干個(gè)字節(jié)長(zhǎng)度的數(shù)據(jù)。此外,通過(guò)這些數(shù)據(jù)我們發(fā)現(xiàn),此 Huffman樹有 0+2+2+0+5+1+6+1=17 個(gè)葉子節(jié)點(diǎn)。一般而言, JFIF格式文件的讀取順序依次為: SOI 字段; APP0 字段; APPn 字段; DQT 字段; SOFO 字段; DHT 字段; SOS 字段; 壓縮數(shù)據(jù)字段; EOI 字段; 讀取 JPEG 文件相關(guān)信息的時(shí)候,有兩點(diǎn)需要特別注意: ( a) 由于 JPEG中以 0XFF 來(lái)做為特殊標(biāo)記符,因此,如果某個(gè)像素的取值為 0XFF,那么實(shí)際在保存的時(shí)候,是以 0XFF00 來(lái)保存的,從而避免其跟特殊標(biāo)記符 0XFF之間產(chǎn)生混淆。以Intel 為代表的廠家生產(chǎn)的 CPU 采用先低字節(jié)后高字節(jié)的方式;而以 Motorola,IBM為代表的廠家生產(chǎn)的 CPU則采用了先高字節(jié)后低字節(jié)的方式。 ( 2) 壓縮數(shù)據(jù);一個(gè)完整的兩字節(jié)標(biāo)記碼的后面,就是該標(biāo)記碼對(duì)應(yīng)的壓縮數(shù)據(jù)了,它記錄了關(guān)于文件的若干信息。或者預(yù)先定義一個(gè)通用的 Huffman 表,也可以針對(duì)一副特定的圖像,在壓縮編碼前通過(guò)搜集其統(tǒng)計(jì)特征來(lái)計(jì)算 Huffman 表的值。 JPEG 標(biāo)準(zhǔn)具體規(guī)定了 兩種熵編碼方式: Huffman 編碼和算術(shù)編碼。 ( 10) AC 系數(shù)的中間格式 根據(jù)前面提到的 VLI 表格,對(duì)于前面的字符串: (0,57) 。采用這樣的方式進(jìn)行表示,是因?yàn)?AC 系數(shù)當(dāng)中有大量的 0,而采用 Zigzag掃描也會(huì)使得 AC 系數(shù)中有很多連續(xù)的 0 的存在,如此 一來(lái),便非常適合于用 RLC 進(jìn)行編碼。這也就是所謂的變長(zhǎng)整數(shù)編碼 VLI。 量化表是控制 JPEG 壓縮比的關(guān)鍵 , 這個(gè)步驟除掉了一些高頻量 , 損失了很 多 細(xì)節(jié) 信息。量化階段需要兩個(gè) 8*8 量化矩陣數(shù)據(jù),一個(gè)是專門處理亮度的頻率系數(shù),另一個(gè)則是針對(duì)色度的頻率系數(shù),將頻率系數(shù)除以量化矩陣的值之后取整,即完成了量化過(guò)程。大學(xué)里面的信號(hào)處理,傅里葉變換等課程上也講過(guò),任何信號(hào)都可以被分解為基波和不同幅度的諧波的組合,而 DCT變換的物理意義也正是如此。隨著 U, V的增加,相另外的 63個(gè)系數(shù)則代表了水平空間頻率和垂直空間頻率分量(高頻分量)的大小, 多半是一些接近于 0 的正負(fù)浮點(diǎn)數(shù),我們 稱 之 為交流系數(shù) AC。圖像的數(shù)據(jù)值必須減去 128,是因?yàn)?DCT 公式所接受的數(shù)字范圍是 128到 127 之間 。 經(jīng)過(guò) 4:1:1采樣處理后,每個(gè)單元中的值分別有 4 個(gè) Y、 1 個(gè) U、1 個(gè) V,只要用 6 個(gè)字節(jié) 就可以存儲(chǔ)了 )。 基本 系統(tǒng)的 JPEG 壓縮編碼 算法 一共分為 11 個(gè)步驟:顏色模式轉(zhuǎn)換 、 采樣、 分塊、 離散余弦變換 ( DCT) 、 Zigzag 掃描排序、 量化、 DC 系數(shù)的差分脈沖調(diào)制編碼 、 DC 系數(shù)的中間格式計(jì)算 、 AC 系數(shù)的游程長(zhǎng)度編碼 、 AC 系數(shù)的中間格式計(jì)算、 熵編碼 。該小組隸屬于 ISO國(guó)際標(biāo)準(zhǔn)化組織,主要負(fù)責(zé)定制靜態(tài)數(shù)字圖像的編碼方法,即所謂的 JPEG算法。 YCrCb顏色空間中, Y代表亮度, Cr,Cb 則代表色度和飽和度 (也有人將 Cb,Cr 兩者 統(tǒng)稱為色度 ),三者通常以 Y,U,V 來(lái)表示,即用 U 代表Cb,用 V代表 Cr。源圖象中每點(diǎn)的 3個(gè)分量是交替出現(xiàn)的,先要把這 3個(gè)分量分開,存放到 3張表中去。 DCT 是先將整體圖像分成 N*N 的像素塊,然后針對(duì) N*N 的像素塊逐一進(jìn)行 DCT 操作。 這里,我們暫時(shí)先只考慮水平方向上一行數(shù)據(jù)( 8個(gè)像素)的情況時(shí)的 DCT變換,從而來(lái)說(shuō)明其物理意 義。到達(dá)接收端之后通過(guò)反離散余弦變換就可以得到原來(lái)的數(shù)據(jù),雖然這么做存在一定的失真,但人眼是可接受的,而且對(duì)這種微小的變換是不敏感的。 在 JPEG算法中,由于 對(duì)亮度和色度的精度要求 不同,分別對(duì)亮度和色度采用不同的量化表。 另一個(gè)重要原因是所有的圖片的點(diǎn)與點(diǎn)之間會(huì)有一個(gè)色彩過(guò)渡的過(guò)程 ,而 大量的圖象信息被包含在低頻率 空間 中 , 經(jīng)過(guò) DCT 處理后 , 在高頻率 部分 , 將出現(xiàn)大量連續(xù)的零 。因此,可以采用行程編碼 RLC( Run Length Coding)來(lái)更進(jìn)一步降低數(shù)據(jù)的傳輸量。 (4,23) 。 (1,30) 。 Huffman 編碼的原理請(qǐng)參考數(shù)據(jù)結(jié)構(gòu)中的 Huffman 樹或者最優(yōu)二叉樹。 JPEG 推薦的 DC和 AC系數(shù)的 huffman(哈夫曼 )碼表 Table – Table for luminance DC coefficient differences Category Code length Code word 0 2 000 1 3 010 2 3 011 3 3 100 4 3 101 5 3 110 6 4 1110 7 5 11110 8 6
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1