實驗四 dpcm編碼

2021-07-31 14:41:46 字數 1722 閱讀 2076

一、實驗原理

dpcm編碼,是差分**編碼調製的縮寫,是典型的**編碼系統。這種方式是用已經過去的抽樣值來**當前的抽樣值,對它們的差值進行編碼。之所以不用原始樣本做**是因為在解碼端無法得到原始樣本資料,只能得到存在誤差的樣本。差值編碼可以提高編碼頻率,這種技術已應用於模擬訊號的數字通訊之中。

二、實驗步驟

三、關鍵**分析

1)dpcm函式

void dpcm(unsigned char *srcbuffer,int width,int height,unsigned char *rebuidbuffer,unsigned char *msebuffer)}}

2)將bmp資料做dpcm編碼

readrgb(input,file_h,info_h,rgbdataout);//從bmp檔案中提取rgb資料

//read y

unsigned

char *srcbuffer=(unsigned

char*)malloc(info_h.biwidth*info_h.biheight);

unsigned

char *rebuidbuffer=(unsigned

char*)malloc(info_h.biwidth*info_h.biheight);

unsigned

char *msebuffer=(unsigned

char*)malloc(info_h.biwidth*info_h.biheight);

if(!(srcbuffer && rebuidbuffer && msebuffer))

rgb2yuv (info_h.biwidth,info_h.biheight,rgbdataout,0,srcbuffer);

/*將rgb資料轉化為yuv*/ dpcm(srcbuffer,info_h.biwidth,info_h.biheight,rebuidbuffer,msebuffer);

fwrite(msebuffer,sizeof(unsigned

char),info_h.biwidth*info_h.biheight,output);//將誤差資料寫入輸出檔案

四、實驗結果

1)dpcm輸出的重建影象

2)原始影象

3)**誤差影象和原始影象huffman編碼比較

4)**誤差影象和原始影象的符號概率分布

五、結論

在dpcm編碼之後,信源符號的分布更加集中,huffman編碼的效率提高了。

標準DPCM編碼(Matlab實現)

以下 中,f代表原始碼,f1代表 碼,e代表 碼與原始碼差值,en代表變換後的差分值 通過含e的公式計算得到,因為有特定對應值,也可以通過查表實現 f2是通過變換後的差分值得到的 碼。最終輸出的結果是en,也就是變換後的差分值。function en my dpcm f n size f f1 ze...

實驗四 編碼裁剪演算法

一 實驗目的和要求 1.了解二維圖形裁剪的原理 點的裁剪 直線的裁剪 多邊形的裁剪 利用vc opengl實現直線的裁剪演算法。二 實驗內容及主要步驟 1 理解直線裁剪的原理 cohen surtherland演算法 梁友棟演算法 2 利用vc opengl實現直線的編碼裁剪演算法,在螢幕上用乙個封...

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

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