国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于JPEG標(biāo)準(zhǔn)的圖像壓縮技術(shù)的研究

2012-03-12 13:39:52戴微微楊銘
中國新技術(shù)新產(chǎn)品 2012年11期
關(guān)鍵詞:數(shù)組像素點(diǎn)像素

戴微微 楊銘

(吉林電子信息職業(yè)技術(shù)學(xué)院,吉林 吉林 132021)

1 研究的背景與目的

隨著多媒體技術(shù)的快速發(fā)展,靜止圖像的應(yīng)用越來越廣泛。它的應(yīng)用主要集中在圖像的存儲(chǔ)和圖像的傳輸兩方面,從具體應(yīng)用中我們可以發(fā)現(xiàn)靜止圖像占用了越來越多的資源。在這樣的背景條件下,靜止圖像的壓縮成為了一個(gè)研究的熱點(diǎn)。目前靜止圖像的壓縮算法以JPEG(Joint Photographic Experts Group)和JPE G2000為主。JPEG壓縮格式是目前圖像處理領(lǐng)域里面用得最廣泛的一種圖像壓縮方式,本文主要就JPEG標(biāo)準(zhǔn)對圖像進(jìn)行編、解碼的研究。主要應(yīng)用是圖像信息的傳輸和存儲(chǔ),可廣泛地應(yīng)用于廣播電視、電視會(huì)議、計(jì)算機(jī)通訊、傳真、多媒體系統(tǒng)、醫(yī)學(xué)圖像、衛(wèi)星圖像等領(lǐng)域。壓縮編碼的方法有很多,主要分成以下四大類:(1)象素編碼;(2)預(yù)測編碼;(3)變換編碼;(4)其它方法。

2 系統(tǒng)功能模塊設(shè)計(jì)

根據(jù)系統(tǒng)功能的要求,可將系統(tǒng)分解成幾個(gè)功能模塊來分別設(shè)計(jì)。JPEG的壓縮原理其實(shí)上面介紹的那些原理的綜合,博采眾家之長,這也正是JPEG有高壓縮比的原因。其編碼器的流程如下。

圖JPEG編碼器流程

3 系統(tǒng)總體設(shè)計(jì)

本系統(tǒng)采用VC++來實(shí)現(xiàn)。系統(tǒng)實(shí)現(xiàn)的各個(gè)步驟如下。

3.1 讀取BMP圖像信息,獲取圖像行像素和列像素?cái)?shù)值,在BMP圖像中,圖像數(shù)據(jù)是以倒序存放的。亦即實(shí)際圖像第一行資料存放在BMP圖像數(shù)據(jù)矩陣的最后一行,依次類推,所以取資料的時(shí)候要從BMP圖像數(shù)據(jù)矩陣的最后一行開始讀起,把數(shù)據(jù)存放在新建數(shù)組(或稱矩陣)的第一行,一直取完。BMP圖像行像素和列像素的數(shù)值分別存于文件頭信息的第18和22字節(jié)。從Cimage類中可得到Width(圖像寬度)和hight(圖像高度)的數(shù)值。

3.2 得到Pwidth*Phight后便得知BMP圖像的像素點(diǎn)大小,而數(shù)據(jù)矩陣(三基色,RGB矩陣)的大小是Pwidth*Phight*3,因?yàn)槊恳粋€(gè)像素點(diǎn)都含有RGB三個(gè)數(shù)據(jù),我們要處理的是數(shù)據(jù)矩陣而不是像素點(diǎn)矩陣。所以,新建數(shù)組的大小是(Pwidth*3)*Phight。

3.3 接下來,把這一個(gè)矩陣(包含BGR)拆分成三個(gè)獨(dú)立的B、G、R矩陣,得到三個(gè)新的矩陣(只包含B的矩陣,只包含G的矩陣,只包含R的矩陣),簡稱為B矩陣、G矩陣、R矩陣(大小為Pwidth*Phight),用程序?qū)崿F(xiàn)拆分,只要依次取原矩陣的第1、4、7、10、13......個(gè)資料即得到B矩陣,依次讀取第2、5、8、11......個(gè)數(shù)據(jù)即得到G矩陣,依次讀第3、6、9、12......個(gè)資料即得到R矩陣。得到B、G、R矩陣后再利用顏色轉(zhuǎn)換公式很容易就可得到Y(jié)CbCr矩陣。

Y(n)=0.114B(n)+0.587G(n)+0.299R(n)

Cb(n)=0.5B(n)-0.3313G(n)-0.1687R(n)

Cr(n)=0.0813B(n)-0.14187G(n)+0.5R(n)

(For n=1 To PW*PH),其中PW為Pwidth的簡寫,PH為Phight的簡寫。

3.4 二維DCT變換

由于VC中無法實(shí)現(xiàn)二維DCT計(jì)算公式,所以只有把二維的變換變成先做一維,再做另一維的變換,俗稱快速DCT變換??焖貲CT變換方法如下:設(shè)一個(gè)大小為8的數(shù)組SL(8),先讀取一個(gè)8*8塊的第一行資料值,賦給SL(8),對SL (8)進(jìn)行一維DCT變換后得到一個(gè)新的SL(8)數(shù)組,再把SL(8)數(shù)組覆蓋到原來的8*8塊中相應(yīng)的地方去。做完第一行后再做第二行,一直做完8行,一個(gè)8*8塊的一維DC即告完成,然后再做列方向的第二維DCT變換,變換公式一樣,只是由SL(8)取8*8塊的行資料變成取列數(shù)值。做完后覆蓋回原值,即得到一個(gè)8*8塊的DFT系數(shù)塊,再重復(fù)這兩個(gè)過程做第二個(gè)8*8塊......一直到做完全部8*8塊(Y,Cb,Cr)。這樣就得到Y(jié)、Cb、Cr的DFT系數(shù)矩陣。

3.5 量化

讀取Y矩陣中第一個(gè)8*8塊,與量化系數(shù)矩陣中對應(yīng)的相乘,得到的值覆蓋回原矩陣,然后做第二個(gè)8*8塊,一直到做完全部8*8塊,然后做CbCr矩陣的量化,用另外一個(gè)系數(shù)矩陣。

3.6 “之”字形掃描

3.7 哈夫曼編碼

哈夫曼編碼時(shí)必須判斷一個(gè)個(gè)DC(AC)的值,以及轉(zhuǎn)換成二進(jìn)制代碼后的碼長,再去對照哈夫曼編碼表進(jìn)行編碼,比如對一個(gè)DC值編碼,首先得先判斷該DC的值在哪段范圍內(nèi),在某一段范圍內(nèi)的數(shù)值,其二進(jìn)制代碼長相等。并要讓程序知道該DC的值到底為多少,然后才能進(jìn)行編碼。

壓縮過程完成以后,接下去要做的工作便是碼串存貯,存貯時(shí)需要注意的——點(diǎn)是在抽樣過程中得到1個(gè)Y塊對應(yīng)1個(gè)Cb塊合一個(gè)Cr塊的對應(yīng)關(guān)系,在存貯時(shí)也要按這種對應(yīng)關(guān)系存貯,即1個(gè)Y塊的碼串后面緊接著存放與其對應(yīng)的一個(gè)Cb塊的碼串及一個(gè)Cr塊的碼串,循環(huán)往復(fù),存完所有串。這樣的1個(gè)Y8*8塊+1個(gè)Cb塊+1個(gè)Cr簡稱為MCU,是JPEG格式的最小存貯處理單元。

[1]張旭東,盧國棟,馮健.圖像編碼基礎(chǔ)和小波壓縮技術(shù)——原理、算法和標(biāo)準(zhǔn)[M].北京:清華大學(xué)出版社,2004。

[2]鐘玉琢.多媒體技術(shù)[M].北京:清華大學(xué)出版社,1999.

[3]黎洪松.數(shù)字圖象壓縮編碼技術(shù)及其C語言程序范例[M].北京:學(xué)苑出版社,1998.

[4]林福宗.圖象文件格式大全[M].北京:清華大學(xué)出版社,1998.

[5]郎銳.數(shù)字圖像處理的Vc++實(shí)現(xiàn)[M].北京:北京希望電子出版社,1996.

猜你喜歡
數(shù)組像素點(diǎn)像素
趙運(yùn)哲作品
藝術(shù)家(2023年8期)2023-11-02 02:05:28
像素前線之“幻影”2000
JAVA稀疏矩陣算法
JAVA玩轉(zhuǎn)數(shù)學(xué)之二維數(shù)組排序
“像素”仙人掌
基于canvas的前端數(shù)據(jù)加密
基于逐像素點(diǎn)深度卷積網(wǎng)絡(luò)分割模型的上皮和間質(zhì)組織分割
高像素不是全部
CHIP新電腦(2016年3期)2016-03-10 14:22:03
尋找勾股數(shù)組的歷程
基于Node-Cell結(jié)構(gòu)的HEVC幀內(nèi)編碼
眉山市| 和静县| 司法| 青铜峡市| 铁岭县| 贵德县| 鹤山市| 临高县| 闽清县| 隆林| 永福县| 伊金霍洛旗| 连南| 南宫市| 乐至县| 苗栗市| 汤原县| 永德县| 乌鲁木齐市| 达拉特旗| 正镶白旗| 肥乡县| 水富县| 南川市| 桦川县| 阿勒泰市| 蒙山县| 青冈县| 十堰市| 永宁县| 上栗县| 宜兰县| 黎川县| 印江| 科技| 河津市| 宁陕县| 汉源县| 成武县| 祁门县| 桦甸市|