向量量化程式除錯結果

2021-08-04 12:06:53 字數 2316 閱讀 8880

向量量化編碼也是在影象、語音頻號編碼技術中研究得較多的新型量化編碼方法,它的出現並不僅僅是作為量化器設計而提出的,更多的是將它作為壓縮編碼方法來研究的。在傳統的**和變換編碼中,首先將訊號經某種對映變換變成乙個數的序列,然後對其乙個乙個地進行標量量化編碼。而在向量量化編碼中,則是把輸入資料幾個一組地分成許多組,成組地量化編碼,即將這些數看成乙個k維向量,然後以向量為單位逐個向量進行量化。向量量化是一種限失真編碼,其原理仍可用資訊理論中的率失真函式理論來分析。而率失真理論指出,即使對無記憶信源,向量量化編碼也總是優於標量量化。

向量量化可以充分利用各分量間的統計依賴性,包括線性的和非線性的依賴關係,並可以充分利用訊號概率分布密度函式形狀中存在的剩餘度。它還可以充分利用訊號空間維數增加所帶來的好處。在維數足夠高時,可以任意接近率失真理論所給出的極限,而這在標量量化時是做不到的。

1 除錯前準備

1)利用matlab生成 .img 影象檔案

[plain]view plain

copy

clear variables;  

filename='**';  

im=imread(filename);  

im=rgb2gray(im);  

f=fopen([filename(1:end-4) '.img'],'wb');  

for i=1:size(im,2)  

for j=1:size(im,1)  

fwrite(f,im(j,i),'uint8');  

end  

end  

fclose(f);  

2) 利用matlab檢視 .img 影象檔案

[plain]view plain

copy

clear variables;  

f=fopen('**.img','rb');  

%haha=fread(f,inf,'uint8');  

haha=fread(f);  

haha1=reshape(haha,800,1280);  

haha2=zeros(800,1280);  

for i=1:800  

for j=1:1280  

haha2(i,j)=haha((j-1)*800+i);  

end  

end  

fclose(f);  

2 輸入引數格式

1)trvqsp_img:獲得影象向量量化的碼書

呼叫引數格式:

trvqsp_img ts_img codefile [-b cb_size] [ -t block_height] [-w block_width] [-x row_size][-y col_size] [-h]

ts_img:是訓練影象,也即待量化壓縮的影象,假定為8位灰度級,使用光柵掃瞄順序儲存。

codefile:以二進位制格式存放碼書的檔案,有乙個包含12個位元組的檔案頭記錄:向量的維度,以及碼書的大小。

-b cb_size:碼書的大小

-t block_height:塊的高度(以畫素為單位)

-w block_width:塊的寬度(以畫素為單位)

實際上由block_width 、block_height決定著碼書向量的大小,也即每個輸出塊的大小。因此向量的維數是block_height *block_width

-x row_size:輸入影象的寬

-y col_size:輸入影象的高

-h 幫助

此處引數輸入可採用.bat檔案:

2)vqimg_enc:根據碼書對影象進行向量量化

呼叫格式:

vqimg_enc [-i imagein] [-o cmpfile] [-c codebook] [-x row_size] [-y col_size] [-h]

-i imagein:輸入的待編碼的影象檔名

-o cmpfile:輸出的量化壓縮後的檔名

-c cmpfile:碼書檔案

-x row_size:輸入影象的寬

-y col_size:輸入影象的高

-h 幫助

此處引數輸入可採用.bat檔案:

3)vqimg_dec:根據碼書檔案和壓縮後的檔案重構原始影象

呼叫格式:

vqimg_dec [-i cmpfile] [-o imageout] [-h]

-i cmpfile:壓縮檔案名

-o imageout:重建影象檔名

-h 幫助

此處引數輸入可採用.bat檔案:

向量量化程式除錯結果

1 除錯前準備 1 利用matlab生成 img 影象檔案 plain view plain copy clear variables filename im imread filename im rgb2gray im f fopen filename 1 end 4 img wb for i 1...

學習向量量化

與 k 均值演算法類似,學習向量量化 learning vector quantization,簡 稱 lvq 也是試圖找到一組原型向量來刻畫聚類結構,但與一般聚類演算法不同 的是,lvq 假設資料樣本帶有類別標記,學習過程利用樣本的這些監督資訊來 輔助聚類.可看作通過聚類來形成 類別 子類 結構,...

LVQ學習向量量化

現在已經2011年五月份了,今年的兩個多月幾乎沒什麼成果,想到水樣年華這個詞,額!總結過往,翹首未來,心中不免些許迷茫,程式設計師之路在何方?靡靡之音,不絕於耳,然何時我也能奏一首陽春白雪,不為流傳於世,只求一心靈安靜之所!lvq原理不再贅述,其本質可以看成是最近鄰分類,所謂競爭性神經網路,即把歐氏...