DPCM 壓縮系統的實現和分析

2021-10-06 05:39:35 字數 2557 閱讀 7107

dpcm編譯碼原理

pcm是差分**編碼調製的縮寫,是比較典型的**編碼系統。在dpcm系統中,需要注意的是**器的輸入是已經解碼以後的樣本。之所以不用原始樣本來做**,是因為在解碼端無法得到原始樣本,只能得到存在誤差的樣本。因此,在dpcm編碼器中實際內嵌了乙個解碼器,如編碼器中虛線框中所示。在乙個dpcm系統中,有兩個因素需要設計:**器和量化器。理想情況下,**器和量化器應進行聯合優化。實際中,採用一種次優的設計方法:分別進行線性**器和量化器的優化設計。

程式設計實現的演算法

#include

#include

#include

using

namespace std;

intmain

(int argc,

char

* ar**)

else

file* rnoise =

null;if

((fopen_s

(&rnoise,

"e://study//test1"

,"wb"))

!=0)else

file* pnoise =

null;if

((fopen_s

(&pnoise,

"e://study//test1"

,"wb"))

!=0)else

int size;

fseek

(noise,0l,

seek_end);

size =

ftell

(noise)

;fseek

(noise,0l,

seek_set);

unsigned

char

* noise_buffer =

newunsigned

char

[size]

;unsigned

char

* rnoise_buffer =

newunsigned

char

[size]

;unsigned

char

* pnoise_buffer =

newunsigned

char

[size]

;unsigned

char

* y_buffer =

newunsigned

char

[size /3]

;fread

(noise_buffer,

sizeof

(unsigned

char

), size, noise)

;for

(int i =

0; i < size /

3; i++

)unsigned

char

* y_rebuild =

newunsigned

char

[size *1/

3];unsigned

char

* e_buffer =

newunsigned

char

[size *1/

3];for

(int i =

0; i <

500; i++)if

(j !=0)

if(e_buffer[j + i *

500]

>

255)

if(e_buffer[j + i *

500]

<0)

if(y_rebuild[j + i *

500]

>

255)

if(y_rebuild[j + i *

500]

<0)

}}for(

int i =

0; i < size /

3; i++

)for

(int i =

0; i < size /

3; i++

)fwrite

(rnoise_buffer,

sizeof

(unsigned

char

), size, rnoise)

;fwrite

(pnoise_buffer,

sizeof

(unsigned

char

), size, pnoise)

;fclose

(noise)

;fclose

(rnoise)

;fclose

(pnoise)

;system

("pause");

}

執行結果:

(分別為原影象,**誤差影象,重建影象)

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

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

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

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

Huffman霍夫曼壓縮編碼演算法實現分析

哈夫曼編碼huffman方法於1952年問世,迄今為止仍經久不衰,廣泛應用於各種資料壓縮技術中,且仍不失為熵編碼中的最佳編碼方法,deflate等壓縮演算法也是結合了huffman演算法的。採用霍夫曼編碼時有兩個問題值得注意 霍夫曼碼沒有錯誤保護功能,在解碼時,如果碼串中沒有錯誤,那麼就能乙個接乙個...