資料壓縮實驗四 DPCM 壓縮系統的實現和分析

2021-10-05 17:51:27 字數 2428 閱讀 1971

dpcm 是差分**編碼調製的縮寫,是比較典型的**編碼系統。

在 dpcm 系統中,需要注意的是**器的輸入是已經解碼以後的樣本。之所以不用原始樣本來做**,是因為在解碼端無法得到原始樣本,只能得到存在誤差的樣本。因此,在 dpcm 編碼器中實際內嵌了乙個解碼器,如編碼器中虛線框中所示。

在乙個 dpcm 系統中,有兩個因素需要設計:**器和量化器。理想情況下,**器

和量化器應進行聯合優化。實際中,採用一種次優的設計方法:分別進行線性**器和量化器的優化設計 。

在本次實驗中,我們採用固定**器和均勻量化器。 **器採用左側**。量化器採用8位元均勻量化。

1.讀取bmp檔案,轉化為yuv格式,提取y分量

2. 對該灰度影象進行**,**器的輸入為上乙個樣點的重建值,計算**誤差

3. 對**誤差進行8bit均勻量化

4. 對量化後的**誤差進行反量化,求重建值

5. 將**誤差影象和原始灰度影象輸入huffman編碼器,得到碼字必要資訊並比較兩種系統(dpcm+熵編碼和僅進行熵編碼)之間的編碼效率。

在bmp2yuv的**中新增如下部分

double psnr =0;

int16_t

* qbuf =

null

//量化

int16_t

* iqbuf =

null

;//反量化

unsigned

char

* pbuf =

null

;unsigned

char

* rebuf =

null

;//重建

qbuf =

(int16_t*)

malloc

(framewidth * frameheight*

sizeof

(int16_t))

; iqbuf =

(int16_t*)

malloc

(framewidth * frameheight*

sizeof

(int16_t))

; pbuf =

(unsigned

char*)

malloc

(framewidth * frameheight*

sizeof

(unsigned

char))

; rebuf =

(unsigned

char*)

malloc

(framewidth * frameheight*

sizeof

(unsigned

char))

;for

(j=0

;j)else}}

//寫**誤差檔案

for(i=

0;i<

(framewidth * frameheight)/4

;i++

)for

(i=0

;i)fwrite

(pbuf,

1,framewidth * frameheight,qfile)

;fwrite

(uubuf,1,

(framewidth * frameheight)/4

,qfile)

;fwrite

(vvbuf,1,

(framewidth * frameheight)/4

,qfile)

;//寫重建影象檔案

fwrite

(rebuf,

1,framewidth * frameheight,refile)

;fwrite

(ubuf,1,

(framewidth * frameheight)/4

,refile)

;fwrite

(vbuf,1,

(framewidth * frameheight)/4

,refile)

;//計算psnr

double er =0;

double mse =

0.0;

psnr =

0.0;

for(j=

0;jmse =

(1.0

/(framewidth*frameheight)

)*mse;

psnr =10*

log10((

255*

255)

/mse)

;printf

("psnr = %f"

, psnr)

;

但是每次開啟都顯示get to end of file,連bmp檔案都是,還沒找到原因。

資料壓縮實驗 DPCM壓縮系統的實現和分析

1.dpcm編譯碼原理 dpcm是差分 編碼調製的縮寫,是比較典型的 編碼系統。在dpcm系統中,需要注意的是 器的輸入是已經解碼以後的樣本。之所以不用原始樣本來做 是因為在解碼端無法得到原始樣本,只能得到存在誤差的樣本。因此,在dpcm編碼器中實際內嵌了乙個解碼器,如編碼器中虛線框中所示。在乙個d...

資料壓縮實驗二bmp to yuv

bmp 全稱bitmap 是windows作業系統中標準影象檔案格式 裝置相關位圖 ddb 和裝置無關位圖 dib 使用非常廣。它採用位對映儲存格式,除了影象深度可選以外,在絕大多數應用中不採用其他任何壓縮。bmp當中資料的色彩空間是rgb。典型的bmp影象由以下四部分組成 1.位圖標頭檔案資料結構...

ASIHTTPRequest 資料壓縮

從0.9版本開始,asihttprequest會提示伺服器它可以接收gzip壓縮過的資料。apache 2.x以上版本已經配備了mod deflate擴充套件,這使得apache可以透明地壓縮特定種類的資料。要開啟這個特性,你需要在apache的配置檔案中啟用mod deflate。並將mod de...