




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
目錄目錄 1摘要 2矚慫潤(rùn)厲釤瘞睞櫪廡賴。Abstract 3聞創(chuàng)溝燴鐺險(xiǎn)愛(ài)氌譴凈。設(shè)計(jì)要求 4殘騖樓諍錈瀨濟(jì)溆塹籟。JPEG圖像壓縮原理 5釅錒極額閉鎮(zhèn)檜豬訣錐。2.1圖像壓縮技術(shù)簡(jiǎn)介 5彈貿(mào)攝爾霽斃攬磚鹵廡。2.2JPEG圖像壓縮基本原理 6謀蕎摶篋飆鐸懟類蔣薔。2.1.1顏色空間轉(zhuǎn)換以及圖像分量采樣 6廈礴懇蹣駢時(shí)盡繼價(jià)騷。2.1.2離散余弦變換(DCT) 9煢楨廣鰳鯡選塊網(wǎng)羈淚。系數(shù)量化 10鵝婭盡損鶴慘歷蘢鴛賴。Zigzag掃描排序 11籟叢媽羥為贍債蟶練淨(jìng)。DC系數(shù)調(diào)制編碼 12預(yù)頌圣鉉儐歲齦訝驊糴。2.2.6AC系數(shù)調(diào)制編碼 14滲釤嗆儼勻諤鱉調(diào)硯錦。2.2.7霍夫曼編碼 15鐃誅臥瀉噦圣騁貺頂廡。JPEG壓縮要求 16擁締鳳襪備訊顎輪爛薔。JPEG解碼原理 17贓熱俁閫歲匱閶鄴鎵騷?;贛ATLAB的算法實(shí)現(xiàn) 21壇搏鄉(xiāng)囂懺蔞鍥鈴氈淚。3.1JPEG壓縮設(shè)計(jì) 21蠟變黲癟報(bào)倀鉉錨鈰贅。3.2基于DCT變換系統(tǒng)設(shè)計(jì) 23買(mǎi)鯛鴯譖曇膚遙閆擷凄。3.3量化程序設(shè)計(jì) 23綾鏑鯛駕櫬鶘蹤韋轔糴。Z掃描系統(tǒng)設(shè)計(jì) 24驅(qū)躓髏彥浹綏譎飴憂錦。3.4霍夫曼編碼設(shè)計(jì) 26貓蠆驢繪燈鮒誅髏貺廡。仿真 27鍬籟饗逕瑣筆襖鷗婭薔。總、結(jié) 29構(gòu)氽頑黌碩飩薺齦話騖。參考文獻(xiàn) 30輒嶧陽(yáng)檉籪癤網(wǎng)儂號(hào)澩。附寸錄1 31堯側(cè)閆繭絳闕絢勵(lì)蜆贅。附寸錄2 34識(shí)饒鎂錕縊灩筧嚌儼淒。摘要圖像的數(shù)字化表示使得圖像信號(hào)可以高質(zhì)量地傳輸,并便于圖像的檢索、分析、處理和存儲(chǔ)。但是數(shù)字圖像的表示需要大量的數(shù)據(jù),必須進(jìn)行數(shù)據(jù)的壓縮。因此圖像壓縮編碼技術(shù)的研究顯得特別有意義,也正是由于圖像壓縮編碼技術(shù)及傳輸技術(shù)的不斷發(fā)展、更新,推動(dòng)了現(xiàn)代多媒體技術(shù)應(yīng)用的迅速發(fā)展。 凍鈹鋨勞臘錯(cuò)癇婦脛糴。本設(shè)計(jì)在研究JPEG壓縮編碼對(duì)圖像數(shù)據(jù)壓縮的基本原理的基礎(chǔ)上,設(shè)計(jì)了JPEG仿真方案和程序?qū)崿F(xiàn)流程,根據(jù)流程圖編寫(xiě)了 JPEG壓縮編碼的仿真程序,并利用MATLAB^件對(duì)仿真程序進(jìn)行了調(diào)試,驗(yàn)證了JPEG壓縮編碼對(duì)圖像數(shù)據(jù)壓縮的可行性。恥諤銪滅縈歡煬鞏鶩錦。通過(guò)運(yùn)行JPEG仿真程序輸出了原圖像,重建圖像,以及二者的差值圖像,通過(guò)直觀比較,發(fā)現(xiàn)經(jīng)過(guò)JPEG仿真程序壓縮后的圖像仍有很好的視覺(jué)效果。通過(guò)對(duì)輸出的壓縮比,峰值信噪比等參數(shù)的研究,科學(xué)的論證了 JPEG壓縮編碼對(duì)圖像數(shù)據(jù)巨大的壓縮效果以及良好的壓縮質(zhì)量。 鯊腎鑰詘漣鉀溈懼統(tǒng)庫(kù)。實(shí)驗(yàn)結(jié)果表明基于DCT變換的JPEG圖像壓縮方法簡(jiǎn)單、方便,既能保證有較高的壓縮比,又能保證有較好的圖像質(zhì)量,應(yīng)用MATLA仿真出來(lái)的結(jié)果較好的反應(yīng)了其編碼算法原理。碩癘鄴頏謅攆檸攜驤蘞。關(guān)鍵詞:JPEGDCTMATLAB圖像壓縮AbstractDigitalimagesthatmakehigh-qualityimagesignalcanbetransmitted,andtofacilitateimageretrieval,analysis,processingandstorage.Butthedigitalimagesthatrequirelargeamountsofdata,thedatamustbecompressed.Therefore,imagecompressioncodingtechnologyresearchisparticularlymeaningful,andbecausetheimagecompressiontechnologyandtransmissiontechnologycontinuestodevelop,updateandpromotetheapplicationofmodernmultimediatechnologytodeveloprapidly.IhaveJPEGcompressionin-depthstudyonthebasicprinciplesofimagedatacompressionbasedonJPEGemulatorhandsdrawnflowchart,flowchartwaspreparedaccordingtoJPEGcompressionsimulationprogram,andthesimulationprogramusingMATLABsoftwarewasdebuggedtoverifytheJPEGcompressionofimagedatacompressionisfeasible.SimulationprogrambyrunningtheoutputoftheoriginalJPEGimage,reconstructedimage,andthediffereneebetweenthetwoimages,byvisualcomparison,foundthroughsimulationprogramcompressedJPEGimageisstillverygoodvisualeffects.Compressionratioontheoutputpeaksignaltonoiseratioandotherparametersofthestudy,scientificproofoftheJPEGimagedatacompressioncodingofthegreatcompressionandgoodcompressionquality.KeywordsJPEGHuffman,DCT,quantization,MATLABsimulation 閿擻輳嬪諫遷擇植秘騖。1.設(shè)計(jì)要求圖像通信之前需要進(jìn)行數(shù)據(jù)量壓縮,編程實(shí)現(xiàn) JPEG圖像壓縮標(biāo)準(zhǔn)的主要環(huán)節(jié),完成壓縮和解壓過(guò)程,計(jì)算壓縮比。 氬嚕躑竄貿(mào)懇彈濾頷澩。要求:將彩色圖像進(jìn)行顏色空間轉(zhuǎn)換、對(duì)不同的顏色分量進(jìn)行不同的采樣、對(duì)于3個(gè)分量進(jìn)行8X8的DCT變換、對(duì)DCT系數(shù)矩陣按照J(rèn)PEG?薦的量化表進(jìn)行量化;對(duì)量化后的系數(shù)進(jìn)行Z形掃描,最后進(jìn)行熵編碼,形成碼流,計(jì)算比特?cái)?shù),和壓縮比。解壓從量化后的DCT系數(shù)表開(kāi)始逆向進(jìn)行。釷鵒資贏車(chē)贖孫滅獅贅。通過(guò)分析知道本次設(shè)計(jì)要求主要是對(duì)圖像進(jìn)行壓縮處理,涉及了 JPEG圖像壓縮的環(huán)節(jié),掌握其過(guò)程原理2.JPEG圖像壓縮原理2.1圖像壓縮技術(shù)簡(jiǎn)介圖像壓縮是減少表示數(shù)字圖像時(shí)需要的數(shù)據(jù)量圖像數(shù)據(jù)的壓縮基于兩點(diǎn):(1)圖像信息存在著很大的冗余度,數(shù)據(jù)之間存在著相關(guān)性,如相鄰像素之間色彩的相關(guān)性等。(2)人眼是圖像信息的接收端。因此,可利用人的視覺(jué)對(duì)于邊緣急劇變化不敏感(視覺(jué)掩蓋效應(yīng)) ,以及人眼對(duì)圖像的亮度信息敏感、對(duì)顏色分辨率弱的特點(diǎn)實(shí)現(xiàn)高壓縮比,而解壓縮后的圖像信號(hào)仍有著滿意的主觀質(zhì)量。慫闡譜鯪逕導(dǎo)嘯畫(huà)長(zhǎng)涼。圖像壓縮的基本原理圖像數(shù)據(jù)之所以能被壓縮,就是因?yàn)閿?shù)據(jù)中存在著冗余。圖像數(shù)據(jù)的冗余主要表現(xiàn)為:圖像中相鄰像素間的相關(guān)性引起的空間冗余;圖像序列中不同幀之間存在相關(guān)性引起的時(shí)間冗余;不同彩色平面或頻譜帶的相關(guān)性引起的頻譜冗余。數(shù)據(jù)壓縮的目的就是通過(guò)去除這些數(shù)據(jù)冗余來(lái)減少表示數(shù)據(jù)所需的比特?cái)?shù)。 由于圖像數(shù)據(jù)量的龐大,在存儲(chǔ)、傳輸、處理時(shí)非常困難,因此圖像數(shù)據(jù)的壓縮就顯得非常重要。諺辭調(diào)擔(dān)鈧諂動(dòng)禪瀉類。信息時(shí)代帶來(lái)了“信息爆炸”,使數(shù)據(jù)量大增,因此,無(wú)論傳輸或存儲(chǔ)都需要對(duì)數(shù)據(jù)進(jìn)行有效的壓縮。在遙感技術(shù)中,各種航天探測(cè)器采用壓縮編碼技術(shù),將獲取的巨大信息送回地面。嘰覲詿縲鐋囁偽純鉿錈。圖像壓縮是數(shù)據(jù)壓縮技術(shù)在數(shù)字圖像上的應(yīng)用,它的目的是減少圖像數(shù)據(jù)中的冗余信息從而用更加高效的格式存儲(chǔ)和傳輸數(shù)據(jù)。 熒紿譏鉦鏌觶鷹緇機(jī)庫(kù)。圖像壓縮基本方法圖像壓縮可以是有損數(shù)據(jù)壓縮也可以是無(wú)損數(shù)據(jù)壓縮。對(duì)于如繪制的技術(shù)圖、圖表或者漫畫(huà)優(yōu)先使用無(wú)損壓縮,這是因?yàn)橛袚p壓縮方法,尤其是在低的位速條件下將會(huì)帶來(lái)壓縮失真。如醫(yī)療圖像或者用于存檔的掃描圖像等這些有價(jià)值的內(nèi)容的壓縮也盡量選擇無(wú)損壓縮方法。有損方法非常適合于自然的圖像,例如一些應(yīng)用中圖像的微小損失是可以接受的(有時(shí)是無(wú)法感知的) ,這樣就可以大幅度地減小位速。鶼漬螻偉閱劍鯫腎邏蘞。
無(wú)損圖像壓縮方法有:行程長(zhǎng)度編碼紂憂蔣氳頑薟驅(qū)藥憫騖。熵編碼法穎芻莖峽餑億頓裊賠瀧。如LZW這樣的自適應(yīng)字典算法有損壓縮方法有:濫驂膽閉驟羥闈詔寢賻。將色彩空間化減到圖像中常用的顏色。所選擇的顏色定義在壓縮圖像頭的調(diào)色板中,圖像中的每個(gè)像素都用調(diào)色板中顏色索引表示。這種方法可以與 抖動(dòng)(en:dithering) 一起使用以模糊顏色邊界。銚銻縵嚌鰻鴻鋟謎諏涼。色度抽樣,這利用了人眼對(duì)于亮度變化的敏感性遠(yuǎn)大于顏色變化, 這樣就可以將圖像中的顏色信息減少一半甚至更多。 擠貼綬電麥結(jié)鈺贖嘵類。變換編碼,這是最常用的方法。首先使用如離散余弦變換( DCT或者小波變換這樣的傅立葉相關(guān)變換,然后進(jìn)行量化和用熵編碼法壓縮。賠荊紳諮侖驟遼輩襪錈。分形壓縮(en:Fractalcompression)。塤礙籟饈決穩(wěn)賽釙冊(cè)庫(kù)。2.2JPEG圖像壓縮基本原理裊樣祕(mì)廬廂顫諺鍘羋藺。圖像■Dct分塊裊樣祕(mì)廬廂顫諺鍘羋藺。圖像■Dct分塊恢復(fù)的圖像數(shù)據(jù)IDCT反量化解碼w 圖2-1JPEG圖像壓縮基本原理圖2.1.1顏色空間轉(zhuǎn)換以及圖像分量采樣工具箱用RGBS像中直接描述顏色,或者在索引圖像中間接描述顏色,此時(shí),彩色映射使用RGB格式來(lái)儲(chǔ)存。然而,還有其他的色彩空間(又稱彩色模型),他們的應(yīng)用有時(shí)會(huì)更加方便或更加恰當(dāng)。 其中包括NTSCYCbC、HSVCMYCMYK和YUV色彩空間。倉(cāng)嫗盤(pán)紲囑瓏詁鍬齊驚。NTSCfe彩空間:NTSC彩色制式在美國(guó)用于電視系統(tǒng)。這種形式的有點(diǎn)是灰度信息和彩色信息是分離的,所以同一個(gè)信號(hào)既可以用于彩色電視,又可以用于黑白電視機(jī)。在NTSC制式中,圖像數(shù)據(jù)是有三部分組成的:亮度 丫、色調(diào)I和飽和度Q其中字母YIQ選擇常常是按照慣例進(jìn)行的。亮度分量描述灰度信息的,其他倆個(gè)分量攜帶電視信號(hào)的彩色信息。YIQ這幾個(gè)分量都是利用如下變換從一副RGB分量中得到的:綻萬(wàn)璉轆娛閬蟶鬮綰瀧。Y=0.229R+0.587G+0.114Bl=0.596R-0.274G-0.322BQ=0.211R-0.523G+0.312B (式2-1)驍顧燁鶚巰瀆蕪領(lǐng)鱺賻。根據(jù)以上可以得到rgb2ntsc可執(zhí)行這樣的變換yiq」mage=rgb2ntsc(rgb_image)瑣釙濺曖惲錕縞馭篩涼。同上理:IPT函數(shù)ntsc2rgb用于實(shí)現(xiàn)ntsc轉(zhuǎn)換為RGBrgb_image=ntsc2rgb(yiq」mage)YCbCr彩色空間:YCbCr1Ct是藍(lán)色分量和一個(gè)彩色空間廣泛用于數(shù)字電視。在這種格式中,亮度信息單個(gè)分量丫來(lái)表示,彩色信息用倆個(gè)色差Cb和Cr來(lái)儲(chǔ)存。分量Cb是藍(lán)色分量和一個(gè)參考值的差,分量Cr是紅色分量和一個(gè)參考值的差。鎦詩(shī)涇艷損樓紲鯗餳類。JPEG采用的是YCrCb顏色空間,而B(niǎo)MP采用的是RGB顏色空間,要想對(duì)BMP圖片進(jìn)行壓縮,首先需要進(jìn)行顏色空間的轉(zhuǎn)換。YCrCb顏色空間中,丫代表亮度,Cr,Cb則代表色度和飽和度(也有人將Cb,Cr兩者統(tǒng)稱為色度),三者通常以Y,U,V來(lái)表示,即用U代表Cb,用V代表Cr。RG餉YCrCb之間的轉(zhuǎn)換關(guān)系如下所示:Y=0.299R+0.587G+0.114B櫛緶歐鋤棗鈕種鵑瑤錟。Cb=-0.1687R-0.3313G+0.5B+128Cr=0.5R=0.418G-0.0813B+128 (式2-2)轡燁棟剛殮攬瑤麗鬮應(yīng)。一般來(lái)說(shuō),C值(包括CbCr)應(yīng)該是一個(gè)有符號(hào)的數(shù)字,但這里通過(guò)加上128,使其變?yōu)?位的無(wú)符號(hào)整數(shù),從而方便數(shù)據(jù)的存儲(chǔ)和計(jì)算。 峴揚(yáng)爛滾澗輻灄興渙藺。R=Y+1.402(Cr-128)G=Y-0.34414(Cb-128)-0.71414(Cr-128)B=Y+1.772(Cb-128) (式2-3)詩(shī)叁撻訥燼憂毀厲鋨驁。通過(guò)以上的算法可以得到轉(zhuǎn)換函數(shù)ycbcr_image=rgb2ycbcr(rgb_iage)輸入的圖像可以是uint8類、uint16類或者double類。輸出圖像和輸出圖像是相同類別。YUV色彩空間:YUV色彩空間和YCrCb類似,其計(jì)算方法如下:=0.299*R+0.587*G+0.114*B;U=-0.147*R-0.289*G+0.436*B;=0.615*R-0.515*G-0.100*B; (式2-4)則鯤愜韋瘓賈暉園棟瀧。數(shù)據(jù)分塊采樣:在彩色圖像中,JPEG分別壓縮圖像的每個(gè)彩色分量。雖然JPEG可以壓縮通常的紅綠藍(lán)分量,但在YCbCr空間的壓縮效果會(huì)更好。這是因?yàn)槿搜蹖?duì)色彩的變化敏感,因而對(duì)色彩的編碼可以比對(duì)亮度的編碼粗糙些。這主要體現(xiàn)在不同的采樣頻率和量化精度上,因此,編碼前一般先將圖像從RGB^間轉(zhuǎn)換到Y(jié)CbCr空間。脹鏝彈奧秘孫戶孿釔賻。研究發(fā)現(xiàn),人眼對(duì)亮度變換的敏感度要比對(duì)色彩變換的敏感度高出很多。 因此,我們可以認(rèn)為丫分量要比Cb,Cr分量重要的多。在BMF圖片中,RGBE個(gè)分量各采用一個(gè)字節(jié)進(jìn)行采樣,也就是我們常聽(tīng)到的RGB888勺模式;而JPEG圖片中,通常采用兩種采樣方式:YUV411和YUV422它們所代表的意義是Y,Cb,Cr三個(gè)分量的數(shù)據(jù)取樣比例一般是4:1:1或者4:2:2(4:1:1含義就是:在2x2的單元中,本應(yīng)分別有4個(gè)Y,4個(gè)U,4個(gè)V值,用12個(gè)字節(jié)進(jìn)行存儲(chǔ)。經(jīng)過(guò)4:1:1采樣處理后,每個(gè)單元中的值分別有4個(gè)Y、1個(gè)U、1個(gè)V,只要用6個(gè)字節(jié)就可以存儲(chǔ)了)。這樣的采樣方式,雖然損失了一定的精度但也在人眼不太察覺(jué)到的范圍內(nèi)減小了數(shù)據(jù)的存儲(chǔ)量。當(dāng)然, JPEG格式里面也允許將每個(gè)點(diǎn)的U,V值都記錄下來(lái);由于后面的DCT變換是是對(duì)8x8的子塊進(jìn)行處理的,因此,在進(jìn)行DCT變換之前必須把源圖象數(shù)據(jù)進(jìn)行分塊。源圖象中每點(diǎn)的3個(gè)分量是交替出現(xiàn)的,先要把這3個(gè)分量分開(kāi),存放到3張表中去。然后由左及右,由上到下依次讀取8x8的子塊,存放在長(zhǎng)度為64的表中,即可以進(jìn)行DCT變換。注意,編碼時(shí),程序從源數(shù)據(jù)中讀取一個(gè)8x8的數(shù)據(jù)塊后,進(jìn)行DCT變換,量化,編碼,然后再讀取、處理下一個(gè)8*8的數(shù)據(jù)塊。鰓躋峽禱紉誦幫廢掃減。YY矩陣 Cb Cr妝擴(kuò)踴糶。稟虛嬪賑維嚌妝擴(kuò)踴糶。稟虛嬪賑維嚌圖2-2矩陣分塊圖2.1.2離散余弦變換(DCT)DCT(DiscreteCosineTransform ,離散余弦變換),是碼率壓縮中常用的一種變換編碼方法。任何連續(xù)的實(shí)對(duì)稱函數(shù)的傅里葉變換中只含有余弦項(xiàng), 因此,余弦變換同傅里葉變換一樣具有明確的物理意義。 DCT是先將整體圖像分成N*N的像素塊,然后針對(duì)N*N的像素塊逐一進(jìn)行DCT操作。需要提醒的是,JPEG的編碼過(guò)程需要進(jìn)行正向離散余弦變換,而解碼過(guò)程則需要反向離散余弦變換。 陽(yáng)簍埡鮭罷規(guī)嗚舊巋錟。正向離散余弦變換計(jì)算公式:-1 r-_吻——cos(7(^)= =0C(?)=1,當(dāng)a?=U-7反向離散余弦變換計(jì)算公式:r(2y+n)u^[2N_他v)=C(u)C(v)2S畑E;嚴(yán)兀N "I LJ"■口(T詁DCTS碼屬于正交變換編碼方式,用于去除圖像數(shù)據(jù)的空間冗余。變換編碼就是將圖像光強(qiáng)矩陣(時(shí)域信號(hào))變換到系數(shù)空間(頻域信號(hào))上進(jìn)行處理的方法。在空間上具有強(qiáng)相關(guān)的信號(hào),反映在頻域上是在某些特定的區(qū)域內(nèi)能量常常被集中在一起,或者是系數(shù)矩陣的分布具有某些規(guī)律。我們可以利用這些規(guī)律在頻域上減少量化比特?cái)?shù),達(dá)到壓縮的目的。圖像經(jīng) DCT變換以后,DCT系數(shù)之間的相關(guān)性就會(huì)變小。而且大部分能量集中在少數(shù)的系數(shù)上,因此, DCT變換在圖像壓縮中非常有用,是有損圖像壓縮國(guó)際標(biāo)準(zhǔn) JPEG的核心。從原理上講可以對(duì)整幅圖像進(jìn)行DCT變換,但由于圖像各部位上細(xì)節(jié)的豐富程度不同,這種整體處理的方式效果不好。為此,發(fā)送者首先將輸入圖像分解為 8*8或16*16塊,然后再對(duì)每個(gè)圖像塊進(jìn)行二維DCT變換,接著再對(duì)DC係數(shù)進(jìn)行量化、編碼和傳輸;接收者通過(guò)對(duì)量化的DCT系數(shù)進(jìn)行解碼,并對(duì)每個(gè)圖像塊進(jìn)行的二維 DCT反變換。最后將操作完成后所有的塊拼接起來(lái)構(gòu)成一幅單一的圖像。對(duì)于一般的圖像而言,大多數(shù)DCT系數(shù)值都接近于0,所以去掉這些系數(shù)不會(huì)對(duì)重建圖像的質(zhì)量產(chǎn)生較大影響。因此,利用DCT1行圖像壓縮確實(shí)可以節(jié)約大量的存儲(chǔ)空間。在實(shí)驗(yàn)中,先將輸入的原始lena圖像分為8*8塊,然后再對(duì)每個(gè)塊進(jìn)行二維DCT變換。MATLABB像處理上具箱中提供的二維DCT變換及DCT反變換函數(shù)如下。溈氣嘮戇萇鑿鑿櫧諤應(yīng)。dct2實(shí)現(xiàn)圖像的二維離散余弦變換。其語(yǔ)法格式為:(1) B=dct2(A)返回圖像A的二維離散余弦變換值,其大小與A相同且各元素為離散余弦變換的系數(shù)B(K1,k2)。鋇嵐縣緱虜榮產(chǎn)濤團(tuán)藺。(2) B=dct2(A,in,n)或B=dct2(A,[m,n])如果m和n比圖像A大,在對(duì)圖像進(jìn)行二維離散余弦變換之前,先將圖像A補(bǔ)零至m*n如果m和n比圖像A小。則進(jìn)行變換之前,將圖像A剪切。懨俠劑鈍觸樂(lè)鷴燼觶騮。idct2可以實(shí)現(xiàn)圖像的二維離散余弦反變換,其語(yǔ)法格式為:B=idct2(A);B=idct2(A,mn)或B=idct2(A,[m,n])。圖像數(shù)據(jù)塊分割后,即以MCI為單位順序?qū)U進(jìn)行二維離散余弦變換。對(duì)以無(wú)符號(hào)數(shù)表示的具有P位精度的輸入數(shù)據(jù),在DCT前腰減去2P-1,轉(zhuǎn)換成有符號(hào)數(shù);而在IDCT后,應(yīng)加上2P-1,,轉(zhuǎn)換成無(wú)符號(hào)數(shù)。對(duì)每個(gè)8X8的數(shù)據(jù)塊DU進(jìn)行DCT后,得到的64個(gè)系數(shù)代表了該圖像塊的頻率成分,其中低頻分量集中在左上角,高頻分量分布在右下角。系數(shù)矩陣左上角的稱為直流(DQ系數(shù),它代表了該數(shù)據(jù)塊的平均值;其余63個(gè)稱為交流(AC系數(shù)。謾飽兗爭(zhēng)詣繚鮐癩別濾。2.2.3系數(shù)量化圖像數(shù)據(jù)轉(zhuǎn)換為DCT頻率系數(shù)之后,還要進(jìn)行量化階段,才能進(jìn)入編碼過(guò)程。量化階段需要兩個(gè)8*8量化矩陣數(shù)據(jù),一個(gè)是專門(mén)處理亮度的頻率系數(shù),另一個(gè)則是針對(duì)色度的頻率系數(shù),將頻率系數(shù)除以量化矩陣的值之后取整, 即完成了量化過(guò)程。當(dāng)頻率系數(shù)經(jīng)過(guò)量化之后,將頻率系數(shù)由浮點(diǎn)數(shù)轉(zhuǎn)變?yōu)檎麛?shù),這才便于執(zhí)行最后的編碼。不難發(fā)現(xiàn),經(jīng)過(guò)量化階段之后,所有的數(shù)據(jù)只保留了整數(shù)近似值,也就再度損失了一些數(shù)據(jù)內(nèi)容。在JPEG算法中,由于對(duì)亮度和色度的精度要求不同,分別對(duì)亮度和色度采用不同的量化表。前者細(xì)量化,后者粗量化。下圖給出JPEG的亮度量化表和色度量化表,該量化表是從廣泛的實(shí)驗(yàn)中得出的。當(dāng)然,你也可以自定義量化表。 咼鉉們歟謙鴣餃競(jìng)蕩賺。
表2-1亮度量化值表1611101624405161121214192658605514131624405769561417222951878062182237566810910377243555648110411392496478871031211201017292959811210010399表2-2色度量化值表17182447999999991821266699999999242656999999999947669999999999999999999999999999999999999999999999999999999999999999999999999999這兩張表依據(jù)心理視覺(jué)閥制作,對(duì)8bit的亮度和色度的圖象的處理效果
不錯(cuò)。量化表是控制JPEG壓縮比的關(guān)鍵,這個(gè)步驟除掉了一些高頻量,損失了
很多細(xì)節(jié)信息。但事實(shí)上人眼對(duì)高頻信號(hào)的敏感度遠(yuǎn)沒(méi)有低頻信號(hào)那么敏感。 所以處理后的視覺(jué)損失很小,從上面的量化表也可以看出,低頻部分采用了相對(duì)較短的量化步長(zhǎng),而高頻部分則采用了相對(duì)較長(zhǎng)的量化步長(zhǎng),這樣做,也是為了在一定程度上得到相對(duì)清晰的圖像和更高的壓縮率。另一個(gè)重要原因是所有的圖片的點(diǎn)與點(diǎn)之間會(huì)有一個(gè)色彩過(guò)渡的過(guò)程,而大量的圖象信息被包含在低頻率空間中,經(jīng)過(guò)DCT處理后,在高頻率部分,將出現(xiàn)大量連續(xù)的零?,撝C齷蘄賞組靄縐嚴(yán)減。Zigzag掃描排序DCT系數(shù)量化后,用Z(zigzag)形掃描將其變成一維數(shù)列,這樣做的目的是有利于熵編碼,Z形掃描的順序如圖2-2所示:麩肅鵬鏇轎騍鐐縛縟糶。
????*?*///////U??????????????/zzzz/zl???????圖2-2zig-zag掃描示意圖DCT將一個(gè)8x8的數(shù)組變換成另一個(gè)8x8的數(shù)組.但是內(nèi)存里所有數(shù)據(jù)都是線形存放的,如果我們一行行的存放這64個(gè)數(shù)字,每行的結(jié)尾的點(diǎn)和下行開(kāi)始的點(diǎn)就沒(méi)有什么關(guān)系,所以JPEG規(guī)定按如下圖中的數(shù)字順序依次保存和讀取64個(gè)DCT的系數(shù)值。圖2-2zig-zag掃描示意圖表3-3DCT系數(shù)值0156141527262412172S3041439U182431404453L01923323S4554202233384651556021343T475056613536484957586263這樣數(shù)列里的相鄰點(diǎn)在圖片上也是相鄰的了。不難發(fā)現(xiàn),這種數(shù)據(jù)的掃描、保存、讀取方式,是從8*8矩陣的左上角開(kāi)始,按照英文字母Z的形狀進(jìn)行掃描的,一般將其稱之為Zigzag掃描排序。如下圖所示:風(fēng)攆鮪貓鐵頻鈣薊糾廟?!?6一3—6-4/;00000"-3’*-100”2-10xO才0Q10:嚴(yán)0z0/O000^0廠0xox00o'00jX009-00000圖2-3z掃描示意圖2.2.5DC系數(shù)調(diào)制編碼在做DC編碼之前,還必須對(duì)DC值進(jìn)行脈沖差值運(yùn)算,8$圖像塊經(jīng)過(guò)DCT變換之后得到的DC直流系數(shù)有兩個(gè)特點(diǎn),一是系數(shù)的數(shù)值比較大,二是相鄰8$圖像塊的DC系數(shù)值變化不大。根據(jù)這個(gè)特點(diǎn),才使用了差分脈沖調(diào)制編碼(DPCM)技術(shù),對(duì)相鄰圖像塊之間量化DC系數(shù)的差值(Delta)進(jìn)行編碼,滅曖駭諗鋅獵輛覯餿藹。Delta=DC(O,O)k-DC(O,0)k-1具體做法是在丫、Cb、Cr頻率系數(shù)矩陣中,后一個(gè)8X8塊的DC值減去前一個(gè)8X8塊的DC作為后一個(gè)8>8塊新的DC值,并保留后一個(gè)8>8塊的DC原值,用于后一個(gè)8>8塊的差值DC運(yùn)算,亦即每次后一個(gè)8$塊的DC值減去的是第一個(gè)8>8塊的原來(lái)DC值,而不是經(jīng)運(yùn)算后的差值。鐒鸝餉飾鐔閌貲諢癱騮。DC編碼=哈夫曼識(shí)別碼(或稱標(biāo)志碼)+DC差值二進(jìn)制代碼表3-4、3-5給出了丫、CbCr矩陣的DC差值霍夫曼編碼表。表3-4Y矩陣DC差值參考表DC差值二進(jìn)制碼的碼長(zhǎng)Huffman識(shí)別碼的碼長(zhǎng)Huffman識(shí)別碼0200130102301133100431015311064111075111108611111097111111010811111110119111111110表3-5Cb、Cr矩陣DC差值參考表二進(jìn)制碼的碼長(zhǎng)Huffman識(shí)別碼的碼長(zhǎng)Huffman識(shí)別碼02001201221033110441110551111066111110771111110881111111099111111110101011111111101111111111111102.2.6AC系數(shù)調(diào)制編碼由于霍夫曼編碼的對(duì)象是整數(shù),所以在做霍夫曼編碼之前,還得對(duì)量化后的DCT系數(shù)矩陣進(jìn)行取整。經(jīng)過(guò)取整以后,每一個(gè)8X8塊中,有大量的AC系數(shù)的值為0。為了把盡可能多的其值為0的AC系數(shù)串在一起,以利于第四步的AC編碼及提高壓縮比,還必須把YcbCr矩陣中的每一個(gè)8X8塊中的64個(gè)元素進(jìn)行“Z”字形排序,這樣就可以做到把盡可能多的0串在一起。攙閿頻嶸陣澇諗譴隴瀘。AC編碼的原理和方法跟DC相似,所不同的是AC編碼中多了一項(xiàng)RLE壓縮編碼,前面說(shuō)到經(jīng)過(guò)量化取整以后,有許多AC值為0,并經(jīng)過(guò)“Z”字形排序,把原可能多的0串行在一起。在這里RLE壓縮編碼的就是用一個(gè)數(shù)值表示為0的AC值前有幾個(gè)AC值為0。例如,在[M,N]這一組RLE編碼中,N表示不為0的AC值,M則表示在這不為0的AC值,N之前0的個(gè)數(shù),M最多只能為15,如果AC數(shù)據(jù)值N之前有17個(gè)AC值為0,則先以[15,0]代表有16個(gè)值為0,再以[1,N]表示N前有一個(gè)值為0,如果在某個(gè)AC數(shù)據(jù)值之后(該值不為0),所有AC值皆為0,則這串?dāng)?shù)據(jù)可以用[0,0]表示。趕輾雛紈顆鋝討躍滿賺。做完RLE壓縮后,再對(duì)不為0的AC值進(jìn)行霍夫曼編碼,跟DC值一樣進(jìn)行,只不過(guò)用的是另兩張哈夫曼編碼表,完整的AC編碼如圖2-4:夾覡閭輇駁檔驀遷錟減。AC編碼碼串視絀鏝鴯鱭鐘腦鈞欖栃。圖2-4完整AC編碼圖完整的AC編碼碼串包括三部分:(1)的位置記錄“0”的個(gè)數(shù);(2)的位置為霍夫曼識(shí)別碼;(3)的位置的AC值的二進(jìn)制代碼值這樣的一個(gè)碼串才算是一個(gè)完整的AC霍夫曼碼串。偽澀錕攢鴛擋緬鐒鈞錠。將直流元素轉(zhuǎn)換成與上一個(gè)之差之后,接下來(lái)將DCT塊重新排序成Zig-Zag序列,再后,JPEG用一個(gè)熵編碼機(jī)制送出元素,輸出帶有建立在其中的 RLE它是編碼機(jī)制的主要部分,基本上,熵編碼輸出包括三個(gè)單詞的序列,不斷重復(fù)直到塊結(jié)束,三個(gè)單詞如下:緦徑銚膾齲轎級(jí)鏜撟廟。行程長(zhǎng)度一一DCT俞出矩陣中,當(dāng)前元素之前的連續(xù)0的個(gè)數(shù)位計(jì)數(shù)一一后面跟著的幅度值所用的位數(shù)幅度 一一DC係數(shù)的幅度行程長(zhǎng)度和位計(jì)數(shù)這兩個(gè)值的組合,形成了輸出的代碼。位計(jì)數(shù)是將幅度可變長(zhǎng)度整型編碼所使用的位數(shù)目??勺冮L(zhǎng)度整型數(shù)編碼利用了DCT的輸出應(yīng)該由大多數(shù)較小的數(shù)值所組成的事實(shí),因此我們想用較少的位數(shù)目進(jìn)行編碼。下面是位計(jì)數(shù)及用這個(gè)數(shù)目編碼的系數(shù)幅度:騅憑鈳銘僥張礫陣軫藹。位計(jì)數(shù)幅度1—1,12—3到一2, 2到33—7到一4, 4到74—15到一8, 8到155—31到一16,16到316—63到一32,32到637—127到—63,64到1278—255到—128,128到—2559—511到—256,256到51110—1023到—512,512到1023要注意的是每一個(gè)位計(jì)數(shù)編碼高低值的對(duì)稱序列, 中間跳過(guò)的值用表中從1位開(kāi)始的較小的位計(jì)數(shù)進(jìn)行編碼。2?2?7霍夫曼編碼Huffman編碼過(guò)程的幾個(gè)步驟:l)將信號(hào)源的符號(hào)按照出現(xiàn)概率遞減的順序排列。 (注意,一定要遞減)2) 將最下面的兩個(gè)最小出現(xiàn)概率進(jìn)行合并相加,得到的結(jié)果作為新符號(hào)的出現(xiàn)概率。3) 重復(fù)進(jìn)行步驟1和2直到概率相加的結(jié)果等于1為止。4) 在合并運(yùn)算時(shí),概率大的符號(hào)用編碼0表示,概率小的符號(hào)用編碼1表示。5)記錄下概率為1處到當(dāng)前信號(hào)源符號(hào)之間的0,I序列,從而得到每個(gè)符號(hào)的編碼。下面我舉個(gè)簡(jiǎn)單例子:一串信號(hào)源S={s1,s2,s3,s4,s5}對(duì)應(yīng)概率為p={40,30,15,10,5},(百分率)癘騏鏨農(nóng)剎貯獄顥幗騮。按照遞減的格式排列概率后,根據(jù)第二步,會(huì)得到一個(gè)新的概率列表,依然按照遞減排列,注意:如果遇到相同概率,合并后的概率放在下面!最后概率最大的編碼為0,最小的編碼為1,所以,編碼結(jié)果為:鏃鋝過(guò)潤(rùn)啟婭澗駱讕濾。s1=1s2=00s3=010s4=0110s5=0111霍夫曼編碼的特點(diǎn):1編出來(lái)的碼都是異字頭碼,保證了碼的唯一可譯性。2由于編碼長(zhǎng)度可變。因此譯碼時(shí)間較長(zhǎng),使得霍夫曼編碼的壓縮與還原相當(dāng)費(fèi)時(shí)。3編碼長(zhǎng)度不統(tǒng)一,硬件實(shí)現(xiàn)有難度。4對(duì)不同信號(hào)源的編碼效率不同,當(dāng)信號(hào)源的符號(hào)概率為 2的負(fù)幕次方時(shí),達(dá)到100%的編碼效率;若信號(hào)源符號(hào)的概率相等,則編碼效率最低。 榿貳軻謄壟該檻鯔塏賽。5由于0與1的指定是任意的,故由上述過(guò)程編出的最佳碼不是唯一的,但
其平均碼長(zhǎng)是一樣的,故不影響編碼效率與數(shù)據(jù)壓縮性能。限于篇幅原因, 在此就不再詳述。邁蔦賺陘賓唄擷鷦訟湊。2.3JPEG壓縮要求1達(dá)到或接近當(dāng)前壓縮比與圖像保真度的技術(shù)水平,與原始圖像相比,人的視覺(jué)難以區(qū)分2能適用于任何種類的連續(xù)色調(diào)的圖像,且長(zhǎng)寬比都不受限制,同時(shí)也不受限于景物內(nèi)容、圖像復(fù)雜度。3壓縮以后的數(shù)據(jù),對(duì)于圖像數(shù)據(jù)的存儲(chǔ)來(lái)說(shuō),節(jié)省了存儲(chǔ)空間,使得原有的存儲(chǔ)設(shè)備,能夠用來(lái)存儲(chǔ)更多的信息。而對(duì)圖像的傳輸而言,則減少了傳輸率,節(jié)省了傳輸時(shí)間,解決了數(shù)據(jù)量大和帶寬有限的問(wèn)題。嶁硤貪塒廩袞憫倉(cāng)華糲。JPEG解碼原理讀入文件按照J(rèn)FIF文件格式,將JPEG文件相關(guān)的字段信息一一讀取出來(lái),并進(jìn)行相應(yīng)的解析。例如,圖像的寬度、高度、量化表、 Huffman表、水平/垂直采樣因子等。一般而言,JFIF格式文件的讀取順序依次為:SOI字段;APP0字段;APPn字段;DQT字段;SOFOF段;DHT字段;SOS字段;壓縮數(shù)據(jù)字段;EOI字段;該櫟諼碼戇沖巋鳧薩錠。讀取JPEG文件相關(guān)信息的時(shí)候,有兩點(diǎn)需要特別注意:由于JPEG中以0XFF來(lái)做為特殊標(biāo)記符,因此,如果某個(gè)像素的取值為0XFF,那么實(shí)際在保存的時(shí)候,是以0XFF00來(lái)保存的,從而避免其跟特殊標(biāo)記符0XFF之間產(chǎn)生混淆。所以,在讀取文件信息的時(shí)候,如果遇0XFF00就必須去除后面的00;即,將0XFF00當(dāng)做0XFF;劇妝諢貰攖蘋(píng)塒呂侖廟。JPEG文件中,一個(gè)字(16位)的存儲(chǔ)是采用了Motorola格式(big-endian),而不是我們常用的Intel格式(little-endian)。因此,如果需要的話,請(qǐng)?jiān)谔幚碇g進(jìn)行依次高低字節(jié)的轉(zhuǎn)換。臠龍訛驄椏業(yè)變墊羅蘄?;舴蚵a構(gòu)建在標(biāo)記碼DHT之后,包含了一個(gè)或者多個(gè)Huffman表(通常是4個(gè)表)。對(duì)于一個(gè)Huffman表而言,它包含了以下三部分內(nèi)容:鰻順褸悅漚縫輾屜鴨騫。表ID和表類型;1個(gè)字節(jié);僅有4個(gè)可選的取值,0X00,0X01,0X10,0X11,分別表示DC直流0號(hào)表,DC直流1號(hào)表,AC交流0號(hào)表,AC交流1號(hào)表;穡釓虛綹滟鰻絲懷紆濼。不同位數(shù)的碼字?jǐn)?shù)量;前面提到,JPEG中的Huffman編碼表是按照編碼長(zhǎng)度的位數(shù)以表格的形式保存的,而且,Huffman編碼表的位數(shù)只能是1--16位,因此,這里用16個(gè)字節(jié)來(lái)分別表示1--16位的每種位長(zhǎng)的編碼在Huffman樹(shù)中的個(gè)數(shù)。隸誆熒鑒獫綱鴣攣駘賽。編碼內(nèi)容;該字段記錄了Huffman樹(shù)中各個(gè)葉子節(jié)點(diǎn)的權(quán)重,上一個(gè)字段(不同位數(shù)的碼字?jǐn)?shù)量)的16個(gè)數(shù)值之和,就是本字段的長(zhǎng)度,也就是Huffman樹(shù)中葉子節(jié)點(diǎn)的個(gè)數(shù)。浹繢膩叢著駕驃構(gòu)碭湊。這里,我們不妨以下面一段Huffman表的數(shù)據(jù)為例來(lái)說(shuō)明情況(均以16進(jìn)制表示):11000202000501060100000000000000000001110221033141125161718191221332以上數(shù)據(jù)串中第一行代表了Huffman表ID、表類型、不同位數(shù)的碼字?jǐn)?shù)量信息;第一行的第一個(gè)字節(jié)0X11代表了表的ID和類型是AC交流1號(hào)表;第一行的第2到第17字節(jié)代表了不同位數(shù)碼字的數(shù)量。即,第2個(gè)字節(jié)00表示沒(méi)有位數(shù)為1的編碼;第3個(gè)和第4個(gè)字節(jié)的02表示位數(shù)為2和位數(shù)為3的編碼各有兩個(gè);第5個(gè)字節(jié)的00表示沒(méi)有位數(shù)為5的編碼oooo此外,通過(guò)這些數(shù)據(jù)我們發(fā)現(xiàn),此Huffman樹(shù)有0+2+2+0+5+1+6+1=17個(gè)葉子節(jié)點(diǎn)。鈀燭罰櫝箋礱颼畢韞糲。第二行為編碼的內(nèi)容,表明17個(gè)葉子節(jié)點(diǎn)按照從小到大的順序排列,即,權(quán)值依次為0,1,11,2,21,3,31,41… 愜執(zhí)緝蘿紳頎陽(yáng)灣愴鍵。讀取到Huffman表的數(shù)據(jù)之后,就需要構(gòu)建Huffman樹(shù)了。其具體規(guī)則如下第一個(gè)編碼的數(shù)字必定為0;如果第一個(gè)編碼的位數(shù)為1,就被編碼為0;如果第一個(gè)編碼的位數(shù)為2,就被編碼為00;如果第一個(gè)編碼的位數(shù)為3,就被編碼為000。。。貞廈給鏌綞牽鎮(zhèn)獵鎦龐。從第二個(gè)編碼開(kāi)始,如果它和它前面編碼具有相同的位數(shù),則當(dāng)前編碼是它前面的編碼加1;如果它的編碼位數(shù)比它前面的編碼位數(shù)大,則當(dāng)前編碼時(shí)它前面的編碼加1之后再在后面添加若干個(gè)0,直到滿足編碼位數(shù)的長(zhǎng)度為止o嚌鰭級(jí)廚脹鑲銦礦毀蘄。還是以上面的數(shù)據(jù)為例:第一行的第2個(gè)字節(jié)00表示沒(méi)有位數(shù)為1的編碼;第一行的第3個(gè)字節(jié)02表示位數(shù)為2的編碼有2個(gè);由于沒(méi)有位數(shù)為1的編碼,因此這里位數(shù)為2的編碼中的第一個(gè)為00,第二個(gè)為00+仁01;薊鑌豎牘熒浹醬籬鈴騫。第一行的第4個(gè)字節(jié)02表示位數(shù)為3的編碼有2個(gè);因此,這里位數(shù)為3的編碼中的第一個(gè)為01+1=10,然后添加1個(gè)“0”,得到100;位數(shù)為3的編碼中的第二個(gè)為100+1=101;以此類推。齡踐硯語(yǔ)蝸鑄轉(zhuǎn)絹攤濼。特別提醒的是,如果中間有某個(gè)位數(shù)的編碼缺失,例如,沒(méi)有4位的編碼,則應(yīng)該在3位的編碼后面加1,添加2個(gè)“00”補(bǔ)足5位,形成下一個(gè)5位編碼。紳藪瘡顴訝標(biāo)販繯轅賽。系數(shù)解碼DC系數(shù)是以(A,B)的中間形式進(jìn)行編碼的。其中的A代表了B的二進(jìn)制編碼位數(shù),B則利用VLI進(jìn)行編碼。另外,8*8的圖像塊經(jīng)過(guò)DCT變換之后得到的8*8的系數(shù)矩陣,經(jīng)過(guò)Huffman編碼及RLE編碼之后,寫(xiě)入編碼數(shù)據(jù)的時(shí)候,DC系數(shù)也是被寫(xiě)在數(shù)據(jù)流最前面的。因此,解碼的時(shí)候, DC系數(shù)也是最先被讀取出來(lái),假設(shè),我們一次性讀入了若干個(gè)字節(jié)長(zhǎng)度的數(shù)據(jù)。 其中的第一個(gè)字節(jié)代表了DC系數(shù)的Huffman編碼,通過(guò)查找DC系數(shù)的Huffman表(亮度表或色度表),
得到該Huffman編碼所在的組編號(hào),該編號(hào)就是DC系數(shù)中間格式(A,B)中的A,也就是B的位數(shù)。例如,A=2,就代表B采用2位二進(jìn)制數(shù)進(jìn)行編碼。這樣一來(lái),讀取接下來(lái)的A位二進(jìn)制數(shù),將其譯碼為十進(jìn)制,就得到了 DC系數(shù)的差值。將該差值與上一個(gè)DC系數(shù)值相加,就得到了真正的當(dāng)前DC系數(shù)的值o飪籮獰屬諾釙誣苧徑凜。處理完DC系數(shù)之后,接下來(lái)進(jìn)行AC系數(shù)的譯碼工作,顯然,這里依然需要讀取一個(gè)Huffman編碼,通過(guò)查找AC系數(shù)的Huffman編碼表,進(jìn)行解碼,我們得到(A,B)的數(shù)據(jù)對(duì),其中的A代表了0的個(gè)數(shù),而B(niǎo)則代表了后面數(shù)據(jù)的位數(shù)。例如,(2,3)就代表了當(dāng)前AC系數(shù)之前有2個(gè)0,下一個(gè)需要讀取的二進(jìn)制數(shù)據(jù)是3位。需要提醒的是,(0,0)代表EOB即8*8塊的編碼結(jié)束。接著,讀取B位二進(jìn)制數(shù)據(jù),進(jìn)行譯碼,我們就得到了 AC系數(shù)的值。如此反復(fù)循環(huán),直到遇到EOB或者讀取了63個(gè)AC系數(shù),我們就完成了一個(gè)8*8塊的系數(shù)矩陣的譯碼工作。烴斃潛籬賢擔(dān)視蠶賁粵。反量化反Zig-zag掃描DCT逆變換在譯碼得到了8*8的系數(shù)矩陣之后,我們需要進(jìn)行反量化工作。該步驟,就是將前一個(gè)步驟得到的8*8系數(shù)矩陣分別乘以8*8的量化矩陣即可。鋝豈濤軌躍輪蒔講嫗鍵。JPEG編碼過(guò)程中,為了編碼方便,采用了 Zig-zag掃描,因此,這里需要進(jìn)行反Zig-zag掃描,重新排列8*8的反量化系數(shù)矩陣。反Zig-zag掃描的輸入時(shí)8*8矩陣,輸出依然是8*8矩陣,只不過(guò),數(shù)據(jù)的排列方式有所不同而已。 擷偽氫鱧轍幕聹諛詼龐。DCT變換,將原始圖像變換到頻域,而DCT逆變換,就是要將數(shù)據(jù)從頻域變換回時(shí)域DCT逆變換的計(jì)算公式為:(2Z+1)?7Ti~6cos1 (2Z+1)?7Ti~6cos尸(A7)=-鞏理M(巧[藝X巧cos州 J/—OTt中Tt中*當(dāng)U,M 丸片)"K「O')=IDCT逆變換的公式,可以改寫(xiě)為:f=AtFA其中A為矩陣:
cos—-g—b—abcos—-g—b—aba其中bcdef一訂ncos—167T云3齊cos——165網(wǎng)cos■163卅cos—SCDS 16cos對(duì)上面的公式進(jìn)行變形Y=FAf=ATYfT=(ATY)T=YTA其中F為數(shù)據(jù)塊。DCT逆變換需要4DCT逆變換需要4步:1:壓縮數(shù)據(jù)塊(8X8)F矩陣與矩陣A(8X8)相乘,得到矩陣丫(8X8);2:對(duì)矩陣丫進(jìn)行轉(zhuǎn)秩得到(8X8)YT3:YT再與矩陣A相乘得到8X8的矩陣ft4:對(duì)ft進(jìn)行轉(zhuǎn)秩得到f,這里的f即為經(jīng)過(guò)DCT逆變換之后得到的時(shí)域的原始圖像;DCT逆變換的流程圖如下所示:A世揮蕖法器丄f 轉(zhuǎn)置 —_?人拒陣乘袪器丄f 轉(zhuǎn)置圖2-5DCT逆變換A矩陣乘法器的作用是實(shí)現(xiàn)輸入矩陣和A矩陣的相乘。注意A矩陣在乘法的右邊。iDCT變換的對(duì)象是8X8的數(shù)據(jù)單元,既輸入數(shù)據(jù)共64個(gè),按行輸入,每8個(gè)數(shù)據(jù)為一行。每輸入一行數(shù)據(jù)就分別和A矩陣的每一列進(jìn)行乘加運(yùn)算,每完成一次這樣的乘加運(yùn)算就輸出一次結(jié)果。比如,輸入第一行數(shù)據(jù),分別和A矩陣的各列相乘,按順序輸出8個(gè)結(jié)果,這8個(gè)結(jié)果就是輸出矩陣的第一行;當(dāng)輸入第二行數(shù)據(jù)時(shí),同樣輸出8個(gè)結(jié)果,這8個(gè)結(jié)果是輸出矩陣的第二行。所以經(jīng)過(guò)第一次矩陣乘法之后得到的是丫矩陣。蹤飯夢(mèng)摻釣貞綾賁發(fā)蘄。轉(zhuǎn)秩就是對(duì)64個(gè)數(shù)據(jù)進(jìn)行重新排列,例如,對(duì)于矩陣M而言,將其第
一行第二列的數(shù)據(jù)M(1,2)跟其第一列第二行的數(shù)據(jù) M(2,1)進(jìn)行互換,如下表所示:婭鑠機(jī)職銦夾簣軒蝕騫。]2]234567S10II1213141516171K192D21222S242526272R293031123334J53637383940414243444546474B的5152S354565758596061626364]91725334149572101S263442505R31119273$435159412202^3644526051321293745536161422303S46546271523314755砧S16243240腫5664左邊為未轉(zhuǎn)秩的數(shù)據(jù)順序,右邊為轉(zhuǎn)秩之后的數(shù)據(jù)順序。顏色轉(zhuǎn)換BMPS片是以RGB顏色空間進(jìn)行保存的,因此,將JPEG解碼為BMP必須進(jìn)行顏色模式的轉(zhuǎn)換。另外,由于DCT要求的定義域?qū)ΨQ,所以,在編碼的時(shí)候?qū)GB的數(shù)值范圍從[0,255]統(tǒng)一減去128,將數(shù)值范圍轉(zhuǎn)換到[-128,127]的范圍內(nèi)。因此,解碼的時(shí)候,必須為每個(gè)顏色分量加上 128。另外需要注意的是,通過(guò)解碼變換之后得到的RGB勺值有可能超過(guò)255或者小于0;如果小于0,就截?cái)酁?,如果大于255,就截取為255。譽(yù)諶摻鉺錠試監(jiān)鄺儕瀉。3.基于3.基于MATLA的算法實(shí)現(xiàn)3.1JPEG壓縮設(shè)計(jì)儔聹執(zhí)償閏號(hào)燴鈿膽賾。簡(jiǎn)單說(shuō)明:要將一幅彩色圖像進(jìn)行壓縮編碼,首先將圖像 RGB分量轉(zhuǎn)化為亮度分量和色差分量,然后將圖像分成8X8的象素塊,用正向二維DCT把每個(gè)塊轉(zhuǎn)變成64個(gè)DCT系數(shù)值,其中1個(gè)數(shù)值是直流(DC)系數(shù),即8X8空域圖像子塊的平均值,其余的63個(gè)是交流(AC)系數(shù),接下來(lái)對(duì)DCT系數(shù)進(jìn)行Zig-Zag掃描和Huffman編碼,實(shí)現(xiàn)了圖像壓縮??b電悵淺靚蠐淺錒鵬凜。
驥擯幟DCT3.2基于DCT變換系統(tǒng)設(shè)計(jì)驥擯幟DCT褸饜兗椏長(zhǎng)絳粵。此部分可分為三個(gè)過(guò)程:原始圖像的載入,顏色模式轉(zhuǎn)換及采樣以及變換3.3量化程序設(shè)計(jì)
癱噴導(dǎo)閽騁艷搗靨驄鍵。圖像文件的顯示。在MATLA中,可以調(diào)用image函數(shù)來(lái)顯示圖像,其語(yǔ)法格式為:Image(C)鑣鴿奪圓鯢齙慫餞離龐。image是用來(lái)顯示附標(biāo)圖像,即顯示的圖像上有 x、y坐標(biāo)軸的顯示,可以看到圖像的像素大小。量化過(guò)程是控制JPEG壓縮比的關(guān)鍵。這個(gè)步驟除掉了一些高頻量,損失了很高細(xì)節(jié)。 但事實(shí)上人眼對(duì)高空間頻率遠(yuǎn)沒(méi)有低頻敏感。所以處理后的視覺(jué)損失很小。另一個(gè)重要原因是所有的圖片的點(diǎn)與點(diǎn)之間會(huì)有一個(gè)色彩過(guò)渡的過(guò)程。大量的圖象信息被包含在低空間頻率中。 經(jīng)過(guò)量化處理后, 在高空間頻率段,將出現(xiàn)大量連續(xù)的零。欖閾團(tuán)皺鵬緦壽驏頦蘊(yùn)。Z掃描系統(tǒng)設(shè)計(jì)
遜輸吳貝義鰈國(guó)鳩猶騙。矢量中有許多連續(xù)的0,可以使用RLE來(lái)壓縮掉這些0。假設(shè)有一組矢量(64個(gè)的后63個(gè),已按z字形掃描得到)是57,45,0,0,0,0,23,0,-30,-16,0,0,1,0,0,0,0,0,0,0,……,0幘覘匱駭儺紅鹵齡鐮瀉。經(jīng)過(guò)RLC壓縮后就是(0,57);(0,45);(4,23);(1,-30);(0,-16);(2,1);EOB,EOB是一個(gè)結(jié)束標(biāo)記,表示后面都是0了,用(0,0)表示EOB.但是,如果這組數(shù)字不以0結(jié)束,那么就不需要EOB誦終決懷區(qū)馱倆側(cè)澩賾。3.4霍夫曼編碼設(shè)計(jì)將最后兩個(gè)出現(xiàn)概率最小的消息合成一個(gè)消息將消息添加到隊(duì)列的最后為N-1消息重新進(jìn)行排列做準(zhǔn)備遍歷至原始消息,即葉子節(jié)點(diǎn),輸出讀碼字分別遍歷左右分支節(jié)獲得Huffman碼字醫(yī)滌侶綃噲睞齒辦銩凜。霍夫曼編碼部分:fori=1:numres{i}=blanks(260);cd=blanks(260);start=num;c=i;p=ht(c).pare;while(p>0)if(ht(p).lch==c)cd(start)='0';Elsecd(start)='1';endc=p;p=ht(c).pare;start=start-1;end4■仿真EW |nwr|-led*&毀討呼週兇和 *k ?、-、斜07W、2U■功t瑪皿運(yùn)就 匸起Ft畳代 小慮HitQ:lgwvl強(qiáng)妙也W葉WJzkQtikmp<tfiirixH?p□aB?|^|^?kOS?x^|a|BGi|Bi]解吒的片勞量間館QFigure4 丨o?卻-OFigure5 口回22 】FileEditViewInsertToolsDesktopWindow旦elp、dJ 除1Qr紳⑥3謠▼復(fù)p目》5.總結(jié)運(yùn)行JPEG仿真程序結(jié)果顯示,JPEG壓縮編碼對(duì)圖像數(shù)據(jù)確實(shí)可以做到大幅度的壓縮,而且壓縮后的圖片質(zhì)量尚可。通過(guò)本次仿真,我們可以發(fā)現(xiàn) JPEG壓縮編碼在對(duì)靜態(tài)圖像處理中的表現(xiàn)非常優(yōu)秀,這也正是 JPEG之所以具有強(qiáng)大生命力的原因所在。本設(shè)計(jì)主要介紹了JPEG的編碼。該程序的編碼部分能把一張BMP格式的圖象進(jìn)行JEPG編碼,壓縮成以二進(jìn)制形式保存的文件。論文敘述的圖像壓縮編碼算法,采用了JPEG的核心離散余弦變換算法。DCT是正交變換,它可以將8*8圖像的空間表達(dá)式轉(zhuǎn)換為頻率域,只需要用少量的數(shù)據(jù)點(diǎn)表示圖像;DCT產(chǎn)生的系數(shù)很容易被量化,因此能獲得好的塊壓縮; DCT算法的性能很好,它有快速算法,因此它在軟件中容易實(shí)現(xiàn);而且DCT算法是對(duì)稱的,所以利用逆DCT算法可以用來(lái)解壓縮圖像。臚當(dāng)為遙頭韙鰭啰暈糞。在這次課程設(shè)計(jì)的整個(gè)過(guò)程中,收獲主要有以下幾點(diǎn):1) 開(kāi)始編程前,一定要了解系統(tǒng)意圖,做好規(guī)劃。2) 很好地實(shí)現(xiàn)了理論知識(shí)與實(shí)踐的結(jié)合。把以往所學(xué)的專業(yè)知識(shí)和編程思想應(yīng)用到了實(shí)際設(shè)計(jì)當(dāng)中,比較順利地解決了綜合設(shè)計(jì)中遇到的一些問(wèn)題。 同時(shí)對(duì)所學(xué)的理論知識(shí)也有了更深刻、更系統(tǒng)的了解。同時(shí)也增強(qiáng)了運(yùn)用所學(xué)知識(shí)解決實(shí)際問(wèn)題的能力。鴣湊鸛齏嶇燭罵獎(jiǎng)選鋸。3) 通過(guò)這次課程設(shè)計(jì),很好的領(lǐng)會(huì)了程序設(shè)計(jì)的思想。4) 這次課程設(shè)計(jì)中,虛心向老師和其它同學(xué)請(qǐng)教,與其團(tuán)結(jié)協(xié)作,很好地培養(yǎng)了我的團(tuán)隊(duì)精神和協(xié)作能力。通過(guò)學(xué)習(xí)和交流,看到了別人的優(yōu)點(diǎn),也發(fā)現(xiàn)了自己的不足,以后要進(jìn)一步完善自己,總的說(shuō)來(lái),通過(guò)這次課程設(shè)計(jì)鍛煉了自己查閱資料、閱讀和使用軟件的能力,對(duì)各種軟件的應(yīng)用和操作能力,以及編程能力。確實(shí)學(xué)到不少知識(shí),得到很好的鍛煉。 筧驪鴨櫨懷鏇頤嶸悅廢。6.參考文獻(xiàn)揚(yáng)帆?數(shù)字圖像處理與分析[M].北京航空航天大學(xué)出版社.2007.10傅祖蕓.信息論:基礎(chǔ)理論與應(yīng)用[M].電子工業(yè)出版社.2007.5劉瑋,王紅星.圖像的無(wú)損壓縮編碼方法及JPEG標(biāo)準(zhǔn)模式[J].現(xiàn)代電子技術(shù).2002.5韋鋯鯖榮擬滄閡懸贖蘊(yùn)。嚴(yán)劍.離散余弦變換在圖像壓縮中的應(yīng)用[J].計(jì)算機(jī)與現(xiàn)代化.1996,4⑸賈鑄.算術(shù)編碼方法在圖像壓縮編碼中的應(yīng)用[J].電視技術(shù).1999.5⑹ 于曉宇,傅志中,唐學(xué)怡.JPEG標(biāo)準(zhǔn)下圖像壓縮算法的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)與現(xiàn)代化.1996,4濤貶騸錟晉鎩錈撳憲騙。王成優(yōu).侯正信.JPEG圖像壓縮編碼及其MATLA仿真實(shí)現(xiàn)[J].電子測(cè)量技術(shù).2007.1鈿蘇饌?cè)A檻榪鐵樣說(shuō)瀉。孫即祥.圖像壓縮與投影重建[M].科學(xué)出版社.2005.1邱磊.JPEG算法研究及實(shí)現(xiàn)[J].ComputerEraNo.92009陳思思,王耀楠.基于DSP的JPEG圖像壓縮編碼的實(shí)現(xiàn)[J].計(jì)算機(jī)測(cè)量與控希9.2008.1戧礱風(fēng)愴澆鄖適濘嚀贗。附錄1°%*****************頁(yè)詩(shī)燦戶踐瀾襯鳳。圖像顏色空間變換*******************************Q%°%*****************頁(yè)詩(shī)燦戶踐瀾襯鳳。圖像顏色空間變換*******************************Q%購(gòu)櫛x=imread( 船.jpg');figure(1)subplot(2,2,1)imshow(x);title('原始圖像’);ycbcrx=rgb2ycbcr(X)a=ycbcrxsubplot(2,2,2)imshow(a,\]);title('ycbcr彩色空間');yiqx=rgb2ntsc(x)b=yiqx;subplot(2,2,3)imshow(b,[]);title( 'ntsc 彩色空間')x=double(x);R=x(:,:,1);G=x(:,:,2);B=x(:,:,3);=0.299*R+0.587*G+0.114*B;U=-0.147*R-0.289*G+0.436*B;=0.615*R-0.515*G-0.100*B;c=cat(3,Y,U,V);subplot(2,2,4)imshow(c,[]);title('yuv彩色空間')°%***************************************%亮度量化表LQT=[1611101624405161;1212141926586055;1413162440576956;1417222951878062;182237566810910377;243555648110411392;49647887103121120101;7292959811210010399];%色度量化表CQT=[1718244799999999;1821266699999999;2426569999999999;4766999999999999;9999999999999999;9999999999999999;9999999999999999;9999999999999999];°%******************************************°%******************************************%彩色圖像分塊采樣D=double(x);a1=rgb2ycbcr(D);Y=a1(:,:,1);Cr=a1(:,:,2);Cb=a1(:,:,3);[M,N]=size(Y);Y_last_Z=0;Cr_last_Z=0;Cb_last_Z=0;TOC\o"1-5"\h\zY_jpeg2= ”;Cr_jpeg2= ”;Cb_jpeg2= ”;fori=0:M/8-1forj=0:N/8-1=Y((1+8*i):(8*(i+1)),(1+8*j):(8*(j+1))); %分割成8*8處理囁奐闃頜曖躑谫瓚獸糞。=Cr((1+8*i):(8*(i+1)),(1+8*j):(8*(j+1)));=Cb((1+8*i):(8*(i+1)),(1+8*j):(8*(j+1)));A1=dct2(S1); %DCTA2=dct2(S2);A3=dct2(S3);B1=round(A1./LQT); %亮度量化B2=round(A2./CQT); %色度量化B3=round(A3./CQT); %色度量化%亮度量化的逆變換C4=round(B1.*LQT);C5=round(B2.*CQT);C6=round(B3.*CQT);%DCT逆變換S4=idct2(C4);S5=idct2(C5);S6=idct2(C6);%分塊重組Y((1+8*i):(8*(i+1)),(1+8*j):(8*(j+1)))=S4;Cr((1+8*i):(8*(i+1)),(1+8*j):(8*(j+1)))=S5;Cb((1+8*i):(8*(i+1)),(1+8*j):(8*(j+1)))=S6;^%**********************************************************嶁誄禱臚鋸。%Zigzag掃描Z1=Zigzag(B1);Z2=Zigzag(B2);Z3=Zigzag(B3);°%*********************************************************蠑紀(jì)黽廢。虛齬鐮寵確與頂鍔筍類謾%Huffman編碼°%*****************************%直流分量編碼(DC_Huffman)DCH_Y=DC_Huffman(Z1(1),Y_last_Z,1);DCH_Cr=DC_Huffman(Z2(1),Cr_last_Z,2);DCH_Cb=DC_Huffman(Z3(1),Cb_last_Z,2);%交流分量編碼(AC_HUffman)ACH_Y=AC_Huffman(Z1(2:end),1);ACH_Cr=AC_Huffman(Z2(2:end),2);ACH_Cb=AC_Huffman(Z3(2:end),2);Y_last_Z=Z1(1);Cr_last_Z=Z2(1);Cb_last_Z=Z3(1);Y_jpeg2=[Y_jpeg2DCH_YACH_Y];Cr_jpeg2=[Cr_jpeg2DCH_CrACH_Cr];Cb_jpeg2=[Cb_jpeg2DCH_CbACH_Cb];endendfigure(2)subplot(2,3,1);imshow(A1);title(subplot(2,3,2);imshow(A1);title(subplot(2,3,3);imshow(A1);title(subplot(2,3,4);imshow(B1);title(subplot(2,3,5);imshow(B2);title(subplot(2,3,6);imshow(B3);title(jpeg2=[Y_jpeg2,Cr_jpeg2,Cb_jpeg2];rate2=8*M*N*3/length(jpeg2);°%****************************************figure(3);subplot(1,3,1);imshow(Y);title(subplot(1,3,2);imshow(Cr);title(subplot(1,3,3);imshow(Cb);title('Y采樣后DCT');'cr采樣后DCT');'cb采樣后DCT');'Y亮度量化’);'cr色度量化’);'cb色度量化’);%壓縮比解壓的丫分量圖像');'解壓的Cr分量圖像’);'解壓的Cb分量圖像’);a1(:,:,1)=Y;a1(:,:,2)=Cr;a1(:,:,3)=Cb;解壓的YCbCr解壓的YCbCr的圖像');figure(5)imshow(x1)附錄2AC_huffmanfunction ACH=AC_Huffman(AC,n);%亮度AC系數(shù)碼表T1={'1010''00''01''100''1111110110''1111111110000010''1011''11010''1111000''11111000''1111111110000011' ;結(jié)釋鏈蹌絞塒繭綻綹蘊(yùn)''1100''11011''1111001''111110110''11111110110''1111111110000100''1111111110000100''1111111110000111''11100''1111111110001001''1111111110001100'騰廁綁藎箋潑。'111010''1111111110010000''1111111110010011'薩蝦竇補(bǔ)飆贗。'1111111110000101''1111111110000110''1111111110001000' '0';餑詘鉈鯔縹評(píng)繒肅鮮驃。'11111001''1111110111''111111110100'
'1111111110001010''1111111110001011''1111111110001101' '1111111110001110' '0';爺纜鉅摯'111110111''111111110101''1111111110001111'
'1111111110010001''1111111110010010''1111111110010100' '1111111110010101' '0';錁熾邐繒'111011''1111111000''1111111110010110''1111111110010111''1111111110011000''1111111110011011'襉倆瘋謅琿鳳。'1111111110011001''1111111110011010''1111111110011100' '1111111110011101' '0';曠戧輔鑽'1111010''1111111110011111''1111111110100010''1111111110100001''1111011''1111111110100111''1111111110101010''1111111110101101''11111010''1111111110101111''1111111110110010''1111111110110101''111111000''1111111110110111''1111111110111010''1111111110111101''11111110111''1111111110100000''1111111110100011''0';轉(zhuǎn)庫(kù)蹺僉詘腳瀕諮閥糞。'111111110110''1111111110101000''1111111110101011''0';嬤鯀賊灃謁麩溝賚淶鋸。'111111110111''1111111110110000''1111111110110011''0';訊鎬謾蟈賀綜樞輒鎖廩。'111111111000000''1111111110111000''1111111110111011''0';兒躉讀閌軒鯀擬釔標(biāo)藪。'1111111110011110''1111111110100001''1111111110100100''1111111110100110''1111111110101001''1111111110101100''1111111110101110''1111111110110001''1111111110110100''1111111110110110''1111111110111001''1111111110111100''111111001' '1111111110111110' '1111111110111111''111111001' '1111111110111110' '1111111110111111''1111111111000000'
'1111111111000001'
'1111111111000010''1111111111000011'
'1111111111000100'
'1111111111000101''1111111111000110''0';繅藺詞嗇適籃異銅鑑驃。'111111010''1111111111000111''1111111111001000''1111111111001001'
'1111111111001010'
'1111111111001011''1111111111001100'
'1111111111001101'
'1111111111001110''1111111111001111''0';鮒簡(jiǎn)觸癘鈄餒嬋鏘戶潑。'1111111001''1111111111010000''1111111111010001''1111111111010010'
'1111111111010011'
'1111111111010100''1111111111010101'
'1111111111010110'
'1111111111010111''1111111111011000''0';瞇毆蠐謝銀癩嘮閣蹺贗。'1111111010''1111111111011001''1111111111011010''1111111111011011'
'1111111111011100'
'1111111111011101''1111111111011110'
'1111111111011111'
'1111111111100000''1111111111100001''0';閔屢螢馳鑷雋劍頌崗鳳。'11111111000''1111111111100010''1111111111100011''1111111111100100'
'1111111111100101'
'1111111111100110''1111111111100111'
'1111111111101000'
'1111111111101001''1111111111101010''0';檁傷葦開(kāi)閾燈傘饉諧糧。'1111111111101011'
'1111111111101100'
'1111111111101101''1111111111101110'
'1111111111101111'
'1111111111110000''1111111111110001'
'1111111111110010'
'1111111111110011''1111111111110100''0';鄭餼腸絆頎鎦鷓鮞嚶錳。'11111111001''1111111111110101''1111111111110110''1111111111110111'
'1111111111111000'
'1111111111111001''1111111111111010'
'1111111111111011'
'1111111111111100''1111111111111101'
'1111111111111111'
};棄鈾縫遷馀氣鰷鸞覲廩。%色度AC系數(shù)碼表T2={'00''01''100''1010''11000''11001''111000''1111000''111110100''1111110110''111111110100';調(diào)誶續(xù)鷚髏鋮饅喪劉藪。'1011''111001''11110110''111110101''11111110110''111111110101''1111111110001000''1111111110001001''1111111110001010''1111111110001011''0';厲聳紐楊鱔晉頇兗蓽驃。'11010''11110111'T2={'00''01''100''1010''11000''11001''111000''1111000''111110100''1111110110''111111110100';調(diào)誶續(xù)鷚髏鋮饅喪劉藪。'1011''111001''11110110''111110101''11111110110''111111110101''1111111110001000''1111111110001001''1111111110001010''1111111110001011''0';厲聳紐楊鱔晉頇兗蓽驃。'11010''11110111''1111110111''111111110110''111111111000010''1111111110001100''1111111110001101''111111111000010''1111111110001100''1111111110001101''1111111110001110''1111111110001111''1111111110010000''0';'1111111110001110''1111111110001111''1111111110010000''0';苧曖蘿藶黃邏閂巹東澤。'11010''111110111''1111110111''11111110110''11010''111110111''1111110111''11111110110''1111111110010001''1111111110010010''1111111110010011''1111111110010001''1111111110010010''1111111110010011''1111111110010100''1111111110010101''1111111110010110''0';'1111111110010100''1111111110010101''1111111110010110''0';鴿攝禱鋅儀憚銼嚕緡贊。'111010''111110110''1111111110010111''1111111110011000''111010''111110110''1111111110010111''1111111110011000''1111111110011001''1111111110011010''1111111110011011''1111111110011001''1111111110011010''1111111110011011''1111111110011100' '1111111110011101' '1111111110011110' '0' '1111111110011100' '1111111110011101' '1111111110011110' '0' ;簞嗇癲剴'1111111111110111' '1111111111111000' '1111111111111001''1111111111110111' '1111111111111000' '1111111111111001'凈趕鉤嬙鱷鳧。'111011''1111111001''1111111110011111''1111111110100000''1111111110100001''1111111110100010''1111111110100011''1111111110100100''1111111110100101''1111111110100010''0';凈趕鉤嬙鱷鳧。'111011''1111111001''1111111110011111''1111111110100000''1111111110100001''1111111110100010''1111111110100011''111111111010
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 國(guó)際產(chǎn)品授權(quán)分銷合同
- 辦公家具采購(gòu)合同一
- 商品買(mǎi)賣(mài)合同「樣本」
- 商業(yè)地產(chǎn)買(mǎi)賣(mài)合同模板范文
- 公司設(shè)立投資合作合同范本
- 礦山棄渣處理合同范本
- 消防及安全整改合同履行細(xì)則
- 校企合作合同新范本
- 土地使用權(quán)出讓合同及物業(yè)銷售細(xì)則
- 躉船結(jié)構(gòu)培訓(xùn)課件
- 2024-2030年藝術(shù)攝影服務(wù)產(chǎn)業(yè)發(fā)展分析及發(fā)展趨勢(shì)與投資前景預(yù)測(cè)報(bào)告
- 【光明乳業(yè)股份有限公司財(cái)務(wù)報(bào)表探析(定量論文)7800字】
- 外研版(2019)必修 第一冊(cè)Unit 1 A New Start revision 課件
- 肺部感染臨床路徑
- 高中英語(yǔ)3500詞(亂序版)
- 鋼結(jié)構(gòu)吊裝技術(shù)交底
- 電商平臺(tái)定價(jià)策略優(yōu)化
- 人美版美術(shù) 二年級(jí)下冊(cè)全冊(cè)教學(xué)設(shè)計(jì)(表格式)
- 2024年廣東省廣州市黃埔區(qū)黃埔街道辦事處招聘4人歷年高頻難、易錯(cuò)點(diǎn)500題模擬試題附帶答案詳解
- 數(shù)學(xué)家祖沖之課件
- 保險(xiǎn)經(jīng)紀(jì)人考試題庫(kù)含答案
評(píng)論
0/150
提交評(píng)論