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

?

方塊編碼算法之改進

2009-06-05 03:59:50王曉明
新媒體研究 2009年9期
關鍵詞:方塊像素編碼

[摘要]利用傳統(tǒng)方塊編碼算法編碼壓縮灰度圖像,算法簡單、失真率不大,卻因為其方法比較固定而導致了其壓縮比較小,伸縮度往往不大,在一些情況下不適合被利用來壓縮圖像。為了改變傳統(tǒng)方塊編碼算法編碼壓縮灰度圖像壓縮比之不足,對傳統(tǒng)方塊編碼算法作出改進以提高壓縮比。實驗證明在對一般圖像進行方塊編碼的時候,改進以后所獲得的算法有效。

[關鍵詞]方塊編碼 編碼 像素 圖像 方塊

中圖分類號:TP3文獻標識碼:A文章編號:1671-7597(2009)0510034-02

一、引言

方塊編碼算法是一種傳統(tǒng)的編碼壓縮算法,它簡單、有效,失真率較小,其基本思想是將圖像分成n×n的子塊(通常是4×4的子塊),并為每個子塊設計兩個電平量化器,量化門限和兩個重建電平隨子塊局部統(tǒng)計特征而變化,量化后用一個n×n位的映像矩陣表示,這n×n位代表了有關各個像素的重建電平和確定兩個重建電平的附加信息(分辨力分量)。譯碼時在各個像素點的映像位置選擇一個合適的重建電平完成譯碼。

傳統(tǒng)方塊編碼算法利用分辨力分量和兩個重建電平來進行編碼壓縮,當子塊的大小和原圖像大小確定以后,壓縮比就已經確定了,由于傳統(tǒng)方塊編碼算法兩個重建電平的編碼沒有充分考慮到相鄰子塊之間的關系和視覺冗余,因此其所需的編碼就較多,方塊編碼所實現(xiàn)的壓縮比也因此受到了限制,往往不大。

二、改進的方塊編碼算法

(一)傳統(tǒng)方塊編碼算法的改進思路

使用傳統(tǒng)方塊編碼算法編碼時所選的方塊區(qū)域的大小固定,利用固定的位數(shù)來記錄重建電平和分辨力分量,絲毫沒有考慮到相鄰方塊區(qū)域的聯(lián)系,絲毫沒有考慮到灰度值相差不多而且分布極其不均勻的現(xiàn)象,一切都導致了傳統(tǒng)方塊編碼算法所實現(xiàn)的壓縮比小而且固定,雖然我們不容易找到更好的記錄方式來記錄分辨力分量從而增大壓縮比,但是如果能夠充分考慮到相鄰方塊的相關性利用可變位數(shù)的方式記錄重建電平使記錄時使用的代碼更少則必然可以提高壓縮比。同時通過對經過傳統(tǒng)方塊編碼算法編碼壓縮后的數(shù)據進行分析和研究,我們可以發(fā)現(xiàn)即使經過傳統(tǒng)方塊編碼算法編碼壓縮以后圖像數(shù)據依然存在一定程度的像素間冗余和心理視覺冗余,那么我們完全可以利用灰度值序列編碼壓縮灰度值信息,也可以使用相鄰方塊重建電平替代相應子塊重建電平的方式來編碼灰度值從而減少編碼時所需要的數(shù)據量,只要失真率不大不至于影響視覺感受即可。

我們按照圖1所示設A、B、C、D、E、F、G、H、I為一副圖像中將要進行方塊編碼的相鄰區(qū)域局部各子塊,因為方塊編碼算法的子塊往往不大(一般情況下小于4×4),其各子塊之間的重建電平往往存在一定的相關性。則在很多情況下我們可以利用A、B、D三個子塊的重建電平來推測E子塊的重建電平,可以用A、B、D三個子塊的重建電平來替代E子塊的重建電平,同理其余子塊的重建電平也可以用其周圍的三個相鄰子塊的重建電平來替代。鑒于每個子塊的編碼要記錄兩個重建電平而且圖像本身也有自身的規(guī)律,相應子塊的重建電平可能與周圍三個相鄰子塊的六個重建電平(每個子塊都有兩個重建電平)中的一個重建電平相關,也可能與這六個重建電平都不相關,另外對應子塊的兩個重建電平都要與周圍三個子塊的六個重建電平依次對比,并且按照灰度值高和灰度值低的順序依次對子塊的重建電平進行編碼。考慮到在圖像中普遍存在的像素間冗余和心理視覺冗余以及方塊編碼的特點,可以在編碼端與解碼端事前規(guī)定好一組灰度值序列,當編碼端遇到重建電平的灰度值的時候如果不能利用相鄰子塊的重建電平替代則可以利用灰度序列中的值替代,解碼時再在解碼端解碼灰度值即可。

使用灰度值序列編碼灰度值的算法可以按照如下的思路進行:

假設通過圖像獲得的灰度值序列為COlOR,COLOR為一個256位的二進制數(shù)序列,每一位對應一個灰度值,例如第一位對應的灰度值為0,如果圖像中存在灰度值為0的像素,則第一位編碼為1否則編碼為0;第二位對應的灰度值為1,如果存在灰度值為1的像素則該位編碼為1否則為0,……以此類推。編碼的時候不按照實際的灰度值進行編碼而是按照灰度值在圖像中存在像素的灰度值的位置進行編碼,例如假設COLOR=000001111100000111110 0000111110000011111000001111100000111110000011111000001111100000111110000011111 000001111100000111110000011111000001111100000111110000011111000001111 10000011111000001111100000111110000011111000001111100000111110000011 1110000011111111111,灰度值為6則首先找到代表灰度值為6的數(shù)據位上的“1”是灰度值序列COLOR中的第幾個“1”,因為是第2個“1”,所以該灰度值按照2進行編碼。同理假設解碼端獲得的對應于灰度值的數(shù)據是6,則需要按照灰度值序列COLOR查找第6個“1”在灰度值序列COLOR中的相應位置,因為第6個“1”在第16個位置上,因此其實際灰度值是15。

在具體操作上,按照灰度值序列編碼灰度值的編碼算法可以按照如下方法進行操作:

1.首先獲得灰度值序列;

2.根據灰度值找到灰度值在灰度值序列中的實際存在像素的相對位置;

3.按照灰度值在灰度值序列中的實際存在像素的相對位置編碼灰度值。

在具體操作上,按照灰度值序列編碼灰度值的解碼算法可以按照如下方法進行操作:

1.首先獲得灰度值序列;

2.按照灰度值在灰度值序列中的實際存在像素的相對位置找到相應的灰度值位置;

3.按照絕對的灰度值位置-1解碼灰度值。

按照圖像獲得灰度值序列的方法要求在編碼端與解碼端之間有一個長達256位的編碼頭來表達圖像中存在的灰度值。而使用相鄰區(qū)域方塊重建電平替代相應方塊重建電平的方法編碼重建電平以后再用灰度值序列替代的方法來記錄灰度值所獲得的壓縮比往往不會大幅度提高卻會提高解碼算法的復雜度,因此利用灰度值序列編碼灰度值的算法只是在一些特定情況下使用,本文主要探討使用相鄰方塊重建電平替代的方式,灰度值序列編碼只是作為補充和輔助。

因為改進的方塊編碼算法只是對記錄方法進行了改進,同時即使應該記錄的灰度值有了改變也是在灰度值相差不大的前提下進行的,其失真率實際上不大,也不至于影響視覺效果,所以傳統(tǒng)方塊編碼算法原有的優(yōu)點得以保留,同時由于減少了重建電平平均占有的位數(shù)則必然可以提高壓縮比。

(二)改進的方塊編碼算法算法描述

改進的方塊編碼算法可以描述如下:

SC={Ci|i=0~n}

Ci=(Pi,Li)

Pi=(Ai,Bi,Ci,Di)

其中SC為某個數(shù)據流的所有編碼集合,Ci為第i個編碼,對應于圖像中第i個子塊的編碼數(shù)據。Pi為表示第i個子塊重建電平的數(shù)據,位寬根據實際的需要而定。Ai為表示圖像中第i個子塊的重建電平中灰度值較高的重建電平與第i個子塊周圍的三個子塊的重建電平的替代關系,Bi為表示第i個子塊的重建電平中灰度值較低的重建電平與第i個子塊周圍的三個子塊的重建電平的替代關系,Ci為當?shù)趇個子塊的重建電平中灰度值較高的重建電平不能從周圍子塊的重建電平推測時記錄的灰度值較高的重建電平數(shù)據,Di為當?shù)趇個子塊的重建電平中灰度值較低的重建電平不能從周圍子塊的重建電平推測時記錄的灰度值較低的重建電平數(shù)據。每個Pi都有一個Ai 和一個Bi與之對應,當?shù)趇個子塊的重建電平中灰度值較高的重建電平可以從周圍子塊的重建電平推測時沒有Ci,當?shù)趇個子塊的重建電平中灰度值較低的重建電平可以從周圍子塊的重建電平推測時沒有Di。Li為表示第i個子塊分辨力分量的數(shù)據,位寬固定。

在不考慮灰度級深度壓縮和灰度值序列編碼灰度值的編碼過程中,記錄改進方塊編碼算法的重建電平的數(shù)據量由表示替代的信息總量和不能替代時所需要記錄的重建電平的數(shù)據總量決定,記錄傳統(tǒng)方塊編碼算法重建電平的數(shù)據量由實際記錄重建電平的數(shù)據量決定,則設L改進為改進的方塊編碼算法記錄重建電平所需要的總數(shù)據量,L傳統(tǒng)為傳統(tǒng)的方塊編碼算法記錄重建電平所需要的總數(shù)據量,A改進和B改進為表示子塊重建電平與周圍子塊重建電平關系的總數(shù)據量,C改進和D改進為表示無法通過相鄰子塊重建電平推測子塊重建電平時所需要記錄的數(shù)據量,C傳統(tǒng)和D傳統(tǒng)為傳統(tǒng)方塊編碼算法記錄重建電平的總數(shù)據量,則

L改進=A改進+B改進+C改進+D改進

L傳統(tǒng)=C傳統(tǒng)+D傳統(tǒng)

鑒于方塊編碼算法記錄分辨力分量的數(shù)據量是固定的,通過L改進和L傳統(tǒng)的對比可以知道A改進+B改進>C傳統(tǒng)+D傳統(tǒng)-C改進-D改進時改進方塊編碼算法必然憂于傳統(tǒng)方塊編碼算法。

(三)改進的方塊編碼算法的編碼過程

對圖像利用改進的方塊編碼算法進行編碼與利用傳統(tǒng)方塊編碼算法編碼圖像非常類似,區(qū)別主要是在重建電平的編碼上,改進的方塊編碼可以事前約定采用的灰度值,需要參考各相鄰子塊的重建電平編碼重建電平。設有將要進行改進的方塊編碼算法編碼的二進制流SC,SC={Bi|i=0~n},SC為圖像中各個像素點的數(shù)據集合,Bi對應于單個像素點的灰度值,SR={Wi,Ci,Di| i=0~n }/{Wi,Ci,Di,Ei| i=0~n },SR為一個子塊進行改進的方塊編碼算法編碼后獲得的對應于單個子塊的編碼集合,Wi為對應子塊的分辨力分量的數(shù)據,Ci為對應子塊重建電平中灰度值高的重建電平與相鄰子塊重建電平的對比結果編碼,Di為對應子塊重建電平中灰度值低的重建電平與相鄰子塊重建電平的對比結果編碼,Ei為對比不符時所需要記錄的重建電平的編碼,一個對應子塊只對應SR中的一個元素。

改進的方塊編碼算法的編碼過程如下:

1.按照傳統(tǒng)方塊編碼算法的方式獲得子塊的兩個重建電平和分辨力分量;

2.將非邊緣子塊的兩個重建電平與其各緊鄰子塊的兩個重建電平進行比較,并按照表1相鄰方塊區(qū)域重建電平關系表所表示的各種情況得出Ci、Di(以圖1中的E塊為例,具體請參考圖1);

3.如果對應于Ci或Di的編碼為000即E子塊的重建電平與各子塊的重建電平均不相同則將需要編碼的重建電平灰度值編碼;

4.將Wi、Ci、Di(或者Wi、Ci、Di、Ei)進行編碼,當需要對Ei進行編碼的時候需要按照特定的編碼方式編碼Ei;

5.重復1~4;

6.最后添加000作為碼流結束標志;

7.對二進制位流按照8位寬度進行切割,形成編碼數(shù)據流。

(四)改進的方塊編碼算法的解碼過程

對經過改進的方塊編碼算法編碼壓縮以后的數(shù)據進行解碼,首先要解碼重建電平和分辨力分量,然后按照子塊對應的位置來進行解碼,如果事前約定了灰度值序列還需要解碼成真正的灰度值。

改進的方塊編碼算法的解碼過程如下:

1.首先進行碼流分解,獲得SR、Wi、Ci、Di(或者SR、Wi、Ci、Di、Ei);

2.根據Ci、Di(或Ci、Di、Ei)的值和表1求對應子塊的兩個重建電平,當需要使用Ei的時候需;

要按照特定的解碼方法,結合Ci、Di的值和表1來獲取兩個重建電平;

3.按照對應的兩個重建電平和Wi進行解碼,得到解壓圖像對應子塊各個像素點的灰度值;

4.重復進行1~3直到數(shù)據流結束。

三、編碼試驗

為了檢驗改進的方塊編碼算法的效果,對國際標準圖LENA圖基于4×4子塊進行了試驗,其壓縮比為4.2(大于傳統(tǒng)方塊編碼算法的壓縮比4),其效果圖像對比如圖2改進的方塊編碼算法實驗圖所示:

四、結論

實驗證明改進的方塊編碼算法所獲得的壓縮比大于傳統(tǒng)方塊編碼算法所獲得的壓縮比,保留了傳統(tǒng)方塊編碼算法的優(yōu)點,算法簡單、有效,失真率較小。

參考文獻:

[1](美)Rafael C.Gonzalez和Richard E.Woods著,阮秋琦、阮宇智等譯,數(shù)字圖像處理(第二版)[M].北京:電子工業(yè)出版社,2002:15-18.

[2](美)David Salomon(編著),吳樂南等(譯),數(shù)據壓縮原理與應用[M].北京:電子工業(yè)出版社,2003:15-18.

[3]劉國強、錢建生、曹國清編著,多媒體圖像技術及應用[M].北京:人民郵電出版社,2000:15-18.

[4]霍宏濤,數(shù)字圖像處理[M].北京:北京理工大學出版社,2002:117.

作者簡介:

王曉明,男,遼寧省錦州市人,碩士研究生,研究方向為圖形圖像。

猜你喜歡
方塊像素編碼
方塊村(1)
旋轉吧!方塊!
趙運哲作品
藝術家(2023年8期)2023-11-02 02:05:28
有多少個方塊
像素前線之“幻影”2000
不一樣的方塊橋
基于SAR-SIFT和快速稀疏編碼的合成孔徑雷達圖像配準
《全元詩》未編碼疑難字考辨十五則
子帶編碼在圖像壓縮編碼中的應用
電子制作(2019年22期)2020-01-14 03:16:24
“像素”仙人掌
皮山县| 北碚区| 进贤县| 吴堡县| 鞍山市| 黄石市| 阳城县| 承德市| 手游| 菏泽市| 永登县| 响水县| 辰溪县| 西盟| 界首市| 云浮市| 曲松县| 普洱| 格尔木市| 洛南县| 汤阴县| 保康县| 南召县| 德安县| 孝感市| 石家庄市| 平塘县| 富阳市| 沧州市| 醴陵市| 邢台县| 东明县| 临桂县| 综艺| 金阳县| 商都县| 古蔺县| 洮南市| 郸城县| 泰安市| 肥东县|