1. 程式人生 > >信源編碼第四次作業-基於LBG的向量量化演算法

信源編碼第四次作業-基於LBG的向量量化演算法

1、LBG演算法背景介紹

LBG演算法是由Linde,Buzo,Gray三人在1980年提出的。它其實相當於Lord-Max方法的多維推廣,但它並不需要知道輸入向量的概率分佈,LBG演算法通過訓練向量集和一定的迭代演算法來逼近最優的再生碼本。

2、LBG演算法的思想

1隨意選取n個影象塊作為碼向量
2
由這n個碼向量對所有的影象塊進行劃分,即分成n個集合,使每個集合中的影象塊,都是與各碼向量距離中,與對應的碼向量的距離最小的
3
由這n個集合的重心,得到n個新的碼向量
4
如果這些個碼向量與原來的碼向量變化不大(收斂),就完成碼書的訓練,否則重新進行2、3步

3、LBG演算法的侷限性

1)最優量化器是對於訓練向量集而言,對於實際的未經訓練的向量集是否最優還很難說,這要依賴於訓練向量的代表性到底真實到何種程度。
2
由於優化分割的過程沒有依據資料結構方面的規則或者限制,而是自由進行,這就使得對碼本進行有效組織時遇到極大的困難。
3
在有些時候根本無法找到真正有代表性的訓練向量集

4、演算法流程圖


4、實驗過程

該程式分為三個部分:trvqsp_img、vqimg_enc、vqimg_enc。trvqsp_img的作用是根據輸入影象得到碼書;vqimg_enc的作用是根據碼書對影象進行向量量化;vqimg_dec的作用是根據碼書檔案和壓縮後的檔案重構原始影象。

(備註:檔案開啟編譯時會出現unistd.h無法開啟的問題,參照一下這個方法解決http://blog.csdn.net/earbao/article/details/51757334)