版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
JPEG文件編/詳解JPEG(JointPhotographicExpertsGroup)是聯(lián)合圖像專家小組的英文縮寫。 CCITT(TheInternational egraphandephoneConsultativeCommittee)與國際標(biāo)準(zhǔn)化組織ISO1986年聯(lián)合成立小組一直致力于標(biāo)準(zhǔn)化工作,開發(fā)研制出連續(xù)色調(diào)、多級(jí)灰度、靜止圖像的數(shù)字圖像壓縮編碼方法,即PEG算法。PEG算法被確定為國際通用標(biāo)準(zhǔn)其適用范圍廣泛,除用于靜態(tài)圖像編碼外,還推廣到電視圖像序列的幀內(nèi)圖像壓縮。而用PEG算法壓縮出來的靜態(tài) 文件稱為PEG文件,擴(kuò)展名通常為*.jpg、*.jpe.jpeg。JPEG專家組開發(fā)了兩種基本的壓縮算法、兩種數(shù)據(jù)編碼方法、四種編碼模有損的離散余弦變換(DiscreteCosine基于DCT順序模式:編 通過一次掃描完成基于DCT遞進(jìn)模式:編/ 無損模式:基于DPCM,保 后完全精確恢復(fù)到原圖像采樣值 在實(shí)際應(yīng)用中,JPEGJPEG8*8分塊正向離散余弦變換(FDCT)量化 zation)Z字形編碼(zigzagscan)使用差分脈沖編碼調(diào)制(DPCM)對(duì)直流系數(shù)(DC)進(jìn)行編碼使用行程長(zhǎng)度編碼(RLE)對(duì)交流系數(shù)(AC)進(jìn)行編碼熵編碼是從編碼角度分析JPEG的編/ 角度詳細(xì)分析JPEG的編/ 不過,介 過程之前,首先要了解JPEG文件中數(shù)據(jù) 格式一、JPEG文件格式介JPEGJPEG文件交換格式(JPEGFileInterchangeFormat,JFIF)。而JPEG文件大體上可以分成兩0xFF,后一個(gè)字節(jié)則根據(jù)0xFF0xFF0xFF,并表示一個(gè)標(biāo)記碼的常用的標(biāo)記有SOI、APP0、DQT、SOF0、DHT、DRI、SOS、EOI注意,SOI等都是標(biāo)記的名稱。在文件中,標(biāo)記碼是以標(biāo)記代碼形式出現(xiàn)。例如SOI0xFFD8JPEG0xFFD8,則表示此處為一個(gè)SOI標(biāo)記。本文附錄列出一張完整的JPEG定義的標(biāo)記表,供讀者查閱。這里僅列出幾SOI,StartofImage,圖像開標(biāo)記代 2字 APP0,Application標(biāo)記代 2字 9①數(shù)據(jù)長(zhǎng) 2字 ②標(biāo)識(shí)符 5字節(jié) 固定值0x4A ③版本號(hào) 2字節(jié) 一般是0x0102,表示JFIF的版本號(hào)1.2④X和Y的密度單 1字 /⑤X方向像素密 2字 ⑥Y方向像素密 2字 ⑦縮略圖水平像素?cái)?shù) 1字 ⑧縮略圖垂直像素?cái)?shù) 1字 ⑨縮略圖RGB位 長(zhǎng)度可能是3的倍 縮略圖24位的RGB像素。如字段⑧“縮略圖垂直像素?cái)?shù)目”0。APPn,Application,應(yīng)用程序保留標(biāo)記n,其中n=1~15(任選標(biāo)記代 2字 2①數(shù)據(jù)長(zhǎng) 2字 ②詳細(xì)信 數(shù)據(jù)長(zhǎng)度-2字節(jié)內(nèi)容不例如,AdobePhotoshop生成的JPEG圖像中就用了APP1和兩個(gè)標(biāo)記段分 了一幅圖像的副本 zationTable,定義量化標(biāo)記代 2字 9①數(shù)據(jù)長(zhǎng) 2字 ②量化 數(shù)據(jù)長(zhǎng)度-2字 精度及量化表ID 1字節(jié) 高4位:精度,只有兩個(gè)可選0:8位;1:164位:量化表ID表 (64×(精度+1))字 例如8位精度的量化64×(0+1)=644SOF0,StartofFrame,幀圖像開標(biāo)記代 2字 固定值9①數(shù)據(jù)長(zhǎng) 2字 ②精 1字 8位,一般軟件都不支持12位③圖像高 2字 DNL④圖像寬 2字 DNL⑤顏色分量 1字 只有3個(gè)數(shù)值可1:灰度圖;3:YCrCb或而JFIF中使用YCrCb⑥顏色分量信 顏色分量數(shù)×3字節(jié)(通常為9字節(jié)顏色分量 1字水平/垂直采樣因 1字 高4位:水平采樣因4量化 1字 當(dāng)前分量使用的量化表的就出現(xiàn)多少次(3)。DHT,DifineHuffmanTable標(biāo)記代 2字 固定值2 2字節(jié) ②哈夫曼 數(shù)據(jù)長(zhǎng)度-2字 表ID和表類型 1字節(jié) 高4位:類型,只有兩個(gè)不同位數(shù)的碼字?jǐn)?shù) 16字
0:DC4位:哈夫曼表注意,DCAC編碼內(nèi) 16個(gè)不同位數(shù)的碼字?jǐn)?shù)量之和(字節(jié)本標(biāo)記段中,字段②可以重復(fù)出現(xiàn)(4),次。例如,AdobePhotoshop生成的JPEG 文件中只有1個(gè)DHT標(biāo)記段,里邊包含了4個(gè)哈夫曼表;而MacromediaFireworks生成的JPEG圖片文件則有4個(gè)DHT標(biāo)記段,每個(gè)DHT標(biāo)記段只有一個(gè)哈夫曼表。DRI,DefineRestartInterval,定義差分編碼累計(jì)復(fù)位的間222②MCU2字 設(shè)其值為n,則表示每n個(gè)
RSTn標(biāo)記。第一個(gè)標(biāo)記是RST0,第RST1等,RST7后再從RST00SOS,StartofScan12標(biāo)記代 2字 固定值2①數(shù)據(jù)長(zhǎng) 2字 1字節(jié) CMYK
1:灰度圖是;3:YCrCbYIQ;4:而JFIF中使用YCrCb顏色分量 1字直流/交流系數(shù)表號(hào)1字 高4位:直流分量使用的哈夫曼4譜選擇開 1字 固定值譜選擇結(jié) 1字 固定值譜選 1字 在基本JPEG中總為就出現(xiàn)多少次(3)。本段結(jié)束后,緊接著就是真正的圖像信息EOIEOI,EndofImage,圖像結(jié)束2標(biāo)記代 2字 固定值這里補(bǔ)充說明一下,由于在JPEG0xFF具有標(biāo)志性的意思,所以在壓縮數(shù)據(jù)流(真正的圖像信息)0xFF,就需要作特別處理。具體0xFF0x00。換句話說,如果在圖像數(shù)據(jù)流中遇到0xFF,應(yīng)該檢測(cè)其緊接著的字符,如果是1)0x000xFF是圖像流的組成部分,需要進(jìn)行譯碼;2)0xD90xFF組成標(biāo)記EOI3)0xD0~0xD7,則組成RSTn標(biāo)記,則要忽視整個(gè)RSTn標(biāo)記,即不對(duì)當(dāng)0xFF0xDn兩個(gè)字節(jié)進(jìn)行譯碼,并按RST標(biāo)記的規(guī)則調(diào)整3)0xFF0xFF0xFF4)其他數(shù)值,則忽視當(dāng)前0xFF,并保留緊接的此數(shù)值用于譯碼二、 過程詳下面來詳細(xì)講述JPEG文件 過程讀入文件的相關(guān)信按照上述的JPEG文件數(shù)據(jù) 出,為接下來 應(yīng)個(gè)標(biāo)記, 和哈夫曼表水平/垂直采樣因子等多項(xiàng)信息比較重要。以下給 過程中的兩個(gè)問題JFIFJPEG(*.jpg)JPEG文件格式中,一個(gè)字(16位)的 使用的是Motorola格式,而不是In 格式。也就是說,一個(gè)字的高字節(jié)(高8位)在數(shù)據(jù)流的前面,低字節(jié)(低8位)在數(shù)據(jù)流的后面,與平時(shí)習(xí)慣的 格式不一樣。DHT內(nèi),包含了一個(gè)或者多個(gè)的哈夫曼表。對(duì)于單一個(gè)哈夫曼哈夫曼表ID0x00表示DC0號(hào)表;0x01表示DC10x10表示AC00x11表示AC1JPEG1~1616個(gè)字節(jié)分別1~16位的編碼碼字在哈夫曼樹中的個(gè)數(shù)。(不同位數(shù)的碼字?jǐn)?shù)量)16個(gè)數(shù)值之和就應(yīng)該是本字段的長(zhǎng)度,也b)以下面一段哈夫曼表數(shù)據(jù)舉例說明(16進(jìn)制表示22617181紅色部分(1字節(jié))為哈夫曼表ID0x11表示此部分?jǐn)?shù)AC1號(hào)表。藍(lán)色部分(2~17字節(jié))16個(gè)數(shù)值實(shí)際意義14位的哈夫曼碼字;232個(gè);55個(gè);681個(gè);79綠色部分(18~34字節(jié))為編碼內(nèi)容。由藍(lán)色部分?jǐn)?shù)據(jù)知道,此哈夫曼樹0+2+2+0+5+1+6+1=1717個(gè)字17個(gè)葉子結(jié)點(diǎn)按從小到大排列,其權(quán)值依次0、1、11、2、21、3、31、41……010;0,直至滿足位數(shù)長(zhǎng)度為止。122233435565758595677 12,即碼字為 12,即碼字為 22,即碼字為3101+1=101個(gè)“0431后,添加“0055數(shù)據(jù)流→最小編碼單元→數(shù)據(jù)單元與顏色分量在像素?cái)?shù)據(jù)流中,信息可以被分為一段接一段的最小編碼單(MinimumCodedUnit,MCU)MCU,是圖像中一個(gè)正方查閱標(biāo)記SOF0,可以得到圖像不同顏色分量的采樣因子,即Y、Cr、Cb三個(gè)分量各自的水平采樣因子和垂直采樣因子。大多的采樣因子4:1:11:1:1。其中,4:1:1即(2*2):(1*1):(1*1));1:1:1即(1*1):(1*1):(1*1)。記三個(gè)分量中水平采樣因子最大值為Hmax,垂直采樣因子最大值為VmaxMCU矩陣的寬就是Hmax*8像素,高就是Vmax*8像素。如果,整幅圖像的寬度和高度不是MCU寬度和高度的整數(shù)倍,那么編碼時(shí)會(huì)用某些數(shù)值填充進(jìn)去,保證過程中MCU的完整性(完成在數(shù)據(jù)流中,MCU 每個(gè)MCU8*8,所以每個(gè)MCU的數(shù)據(jù)單元個(gè)數(shù)為Hmax*Vmax。另外JPEGBMP文件有所不同,它不是把每個(gè)像素的顏色分量連續(xù)在一起的,而是把分成Y,Cr,Cb三張子圖,然1:1:1)也可能不一樣(4:1:1)。每個(gè)MCU內(nèi)部,數(shù)據(jù)的順序是Y、Cr、Cb。如果一個(gè)顏色分量有多個(gè)數(shù)據(jù)32*35的圖像,對(duì)上面兩個(gè)問題列出兩種采樣因子的具體說圖1整張完整的圖像 圖2將圖像的MCU1放13中灰色部分為實(shí)際圖像大?。?2px*35px);MCU的分界;細(xì)虛線表示MCUMCU的寬為Hmax*8=16像素,高為Vmax*8=16像素。圖像實(shí)際的寬剛2MCU2個(gè)MCU3行在數(shù)據(jù)流中,MCUMCU1→MCU2→MCU3→MCU4→MCU5→MCU6每個(gè)MCU又分為Hmax*Vmax=2*2=4個(gè)數(shù)據(jù)單元。由于采樣因子是4:1:1,即(2*2):(1*1):(1*1),所以Y分量的水平和垂直方向22次;Cr分量和Cb21MCU來里邊,Y256個(gè)采樣點(diǎn),4個(gè)完整的數(shù)據(jù)單元;Cr分量和Cb64個(gè)采樣點(diǎn)。如果以MCU1MCU數(shù)據(jù)的次序,則依次為Y1、Y2、Y5Y6、Cr1256、Cb12562256個(gè)點(diǎn)均是YCr分量和Cr分量的采樣點(diǎn)換句話說,對(duì)于整張來說,數(shù)據(jù)流的數(shù)據(jù)依次是[Y1、Y2、Y5、Y6、Cr1256、Cb1256]、[Y3、Y4、Y7、Y8、Cr3478Cb3478]、[Y9、Y10、Y13、Y14、 ]、3整張完整的圖像3。Hmax=max(1,1,1)=1,Vmax=max(1,1,1)=2。所以,MCU的寬為Hmax*8=8像素,高為Vmax*8=8像素。圖像實(shí)際的寬4MCU4個(gè)MCU5行在數(shù)據(jù)流中,MCUMCU1→MCU2→MCU3→MCU4→→MCU18→MCU19→MCU20每個(gè)MCU又分為Hmax*Vmax=1*1=1個(gè)數(shù)據(jù)單元,也就是一個(gè)數(shù)據(jù)單元就是一個(gè)MCU1:1:1,即(1*1):(1*1):(1*1),所以Y分量、Cr分量和Cb1個(gè)1次,也就是圖象的每一個(gè)像素都是采樣點(diǎn)。因此,在一個(gè)MCU來里邊,Y分量、Cr分量和Cb64個(gè)采樣點(diǎn)。有因此,對(duì)于整張來說,數(shù)據(jù)流的數(shù)據(jù)依次是[Y1、Cr1、Cb1]、[Y2、Cr2、Cb2]、[Y3、Cr3、Cb3]、[Y19、Cr19、Cb19]、[Y20、Cr20、Cb20]顏色分量單元MCU中某8*8數(shù)據(jù)塊,例如上面提到的Y1、Cr1、Cb1都是一圖像數(shù)據(jù)流是以位(bit)為單位信息的。并且內(nèi)部的數(shù)據(jù)都是在的結(jié)果,所以對(duì)于每個(gè)顏色分量單元都應(yīng)該由兩部分組成:1個(gè)直流分量63個(gè)交流分量。首先查閱標(biāo)記段SOS中的顏色分量信息,可以得出各個(gè)顏色分量對(duì)應(yīng)Y00Cr分量:直流分量:直流1號(hào)哈夫曼樹,交流分量:交流1號(hào)哈夫曼Cb11號(hào)哈夫曼顏色分量單元內(nèi)部綜合運(yùn)用了RLE行程編碼和哈夫曼編碼來壓縮數(shù)據(jù)。每子結(jié)點(diǎn))4不斷重復(fù)步驟b,直到滿流分量數(shù)據(jù)結(jié)束的條件。而結(jié)束條件有兩6300-1-3,-2-7,-6,-5,-3-15,……,-4-31,……,-5-63,……,-6-127,……,-7-255,……,-8-511,……,-9-1023,……,-D35E6E4D35f51101001101011110011011100100110100110101111101011000 01111001101110010011010011010 11直流哈夫曼 交流哈夫曼122232435465序號(hào)序號(hào)度122233435565758595677個(gè)哈夫曼編碼為110,其權(quán)值為6,所以往后讀入6位數(shù)據(jù)“ 為77。因?yàn)槊總€(gè)顏色分量單元只有一個(gè)直011,所以它1位數(shù)據(jù)“1”,1。如此往復(fù),最后讀到哈夫曼編碼“000,所以滿流變量結(jié)束條件(最后剩余的18*8的矩陣中應(yīng)15-00000100300000000000000000000000000000000000000000000000000JPEG文件編/詳解直流系數(shù)的差分編說,通過步驟3 其中Diff為差分校正變量,也就是直接 再次提醒的是,3個(gè)顏色分量的直流變量是分開進(jìn)行差分編碼的。也就是說,為1張 時(shí)應(yīng)設(shè)置3個(gè)獨(dú)立的直流校正變量。另一個(gè)問題是,當(dāng)數(shù)據(jù)流中出現(xiàn)標(biāo)記RSTn,則3個(gè)顏色分量的直流差分校正變量Diff都需要重新復(fù)位到0。反量分量信息字段查得。一般是Y0Cr、Cb兩個(gè)分量共1。反量化的過程比較簡(jiǎn)單。只需要對(duì)8*8的顏色分量單元的64個(gè)值逐一Zig-zag編8*84,那么各反Zig-zag5圖4將顏色分量單元元素編 圖5反Zig-zag編關(guān)于量化和反Zig-zag編碼的先后順序,筆者查閱的幾份資料有不同的見解。經(jīng)過實(shí)踐試驗(yàn),的過程中,是應(yīng)該直接用文件提供的量化表反量化矩陣數(shù)據(jù),再將其反Zig-zag編碼才能正確。隔行的正負(fù)糾問題。而是筆者通過對(duì)已知圖像進(jìn)行JPEG編碼壓縮,然后和該圖的JPEG文件數(shù)據(jù)對(duì)比發(fā)現(xiàn)的問題。具體原因不明。80、1、……、6、7編出行號(hào)),1、3、5、7行,反離散余弦變之前提到,文件中的數(shù)據(jù)是在編碼時(shí)通過正向離散余弦變換進(jìn)行時(shí)空域向頻率域變換而得到的結(jié)果,所以現(xiàn)在 就必須將其反向離散余弦變換(IDT),就是把顏色分量單元陣中的頻率域數(shù)值向時(shí)空域轉(zhuǎn)換。并且,原來的頻率域的矩陣大小為8*8,則經(jīng)過反向離散余弦變換后,時(shí)空域的矩陣仍然是8*8。設(shè)正負(fù)糾正后的頻率域矩陣為F[u][v],而反向離散余弦變換后的矩陣為f[i][j],其中0≤u,v,i,j≤7。具體使用的 C(u)=(當(dāng)u=0),C(u)=1(u≠0);C(v)=(當(dāng)v=0),C(u)=1(另外補(bǔ)充一下正向離散余弦變換 ,用于編碼YCrCbRGB轉(zhuǎn)要在屏幕上顯示圖像,就必須以RGB模式表示圖像的顏色。所以,解碼時(shí)需要把YCrCb模式向RGB模式轉(zhuǎn)換。1:1:13個(gè)顏色分量都4:1:1的采樣因子就不一樣了。由“初步了4:1:1的采樣因子的分析,可以知道一個(gè)MCU4YCrCb1個(gè)分量單2Cr分量單元(64個(gè)采樣點(diǎn))應(yīng)該平4Y16Y116個(gè)值用于Y216Y516Y6
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《火龍果栽培技術(shù)》課件
- 2024屆河北省高三上學(xué)期期末考試歷史試題(解析版)
- 《研究生前沿講座》課件
- 單位管理制度集合大合集人事管理篇
- 單位管理制度合并選集【職工管理篇】十篇
- 單位管理制度分享匯編職工管理篇
- 單位管理制度呈現(xiàn)合集員工管理篇十篇
- 單位管理制度呈現(xiàn)大合集人員管理篇十篇
- (高頻選擇題60題)第3單元 中國特色社會(huì)主義道路(解析版)
- 阿拉斯加犬行業(yè)銷售工作總結(jié)
- GB 3452.1-1992液壓氣動(dòng)用O形橡膠密封圈尺寸系列及公差
- 保潔人員院感培訓(xùn)完整版課件
- 基于PLC的燃油鍋爐控制系統(tǒng)設(shè)計(jì)
- DB13T 2974-2019 信息系統(tǒng)集成服務(wù)資費(fèi)評(píng)估指南
- 春節(jié)期間施工現(xiàn)場(chǎng)安全方案
- 黑龍江省建筑工程施工質(zhì)量驗(yàn)收標(biāo)準(zhǔn)DB23-2017
- 自貢鴻鶴化工股份有限公司20萬噸離子膜燒堿等量搬遷升級(jí)改造項(xiàng)目
- 醫(yī)院關(guān)于成立安全生產(chǎn)領(lǐng)導(dǎo)小組的通知
- 【施工方案】空調(diào)百葉施工方案
- ppt模板熱烈歡迎領(lǐng)導(dǎo)蒞臨指導(dǎo)模板課件(15頁P(yáng)PT)
- 領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)1
評(píng)論
0/150
提交評(píng)論