图像通信第三章课后知识题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.设有离散无记忆信源{a0,a1,a2,a3,a4,a5,a6},包含每个字符ai的概率P(ai)如下表所示:

(1)计算该信源的熵;

(2)用霍夫曼编码方法对此信源进行编码;

(3)计算平均码长,并讨论霍夫曼编码性能。

2.有4个符号a1,a2,a3,a4,概率分别为P1=0.4,P2=0.25,P3=0.25,P4=0.1,试对由以上四个符号组成的符号序列“a2a1a3a4”进行算术编码及解码。

3.设有4个一位的符号序列在LPS和MPS中交替变化且Qe=0.1,如下表:

对上表中的符号序列进行QM编码和解码。

4.DCT变换本身能不能压缩数据,为什么?请说明DCT变换编码的原理。

5.请说明预测编码的原理,并画出DPCM编、解码的原理框图。

6.设有如下图所示的8x8图像块f(m,n)

(1)计算该图像的熵;

>>f=[4,4,4,4,4,4,4,4;4,5,5,5,5,5,4,3;4,5,6,6,6,5,4,3;4,5,6,7,6,5,4,3;4,5,6,6,6,5, 4,3;4,5,5,5,5,5,4,3;4,4,4,4,4,4,4,3;4,4,4,4,4,4,4,3]

f =

4 4 4 4 4 4 4 4

4 5 5 5 5 5 4 3

4 5 6 6 6 5 4 3

4 5 6 7 6 5 4 3

4 5 6 6 6 5 4 3

4 5 5 5 5 5 4 3

4 4 4 4 4 4 4 3

4 4 4 4 4 4 4 3

>> temp=zeros(1,256);

>> for m=1:8;

for n=1:8;

if f(m,n)==0;

i=1;

else

i=f(m,n);

end

temp(i)=temp(i)+1;

end

end

temp=temp./(8*8);

>> H=0;

for i=1:length(temp)

if temp(i)==0;

H=H;

else

H=H-temp(i)*log2(temp(i)); end

end

>> H

H =

1.8179

Matlab实现截图:

(2)对该图像作前值预测(即列差值,区域外像素值取零):,试给出误差图像及其熵值;

>>f=[4,4,4,4,4,4,4,4;4,5,5,5,5,5,4,3;4,5,6,6,6,5,4,3;4,5,6,7,6,5,4,3;4,5,6,6,6,5, 4,3;4,5,5,5,5,5,4,3;4,4,4,4,4,4,4,3;4,4,4,4,4,4,4,3]

f =

4 4 4 4 4 4 4 4

4 5 5 5 5 5 4 3

4 5 6 6 6 5 4 3

4 5 6 7 6 5 4 3

4 5 6 6 6 5 4 3

4 5 5 5 5 5 4 3

4 4 4 4 4 4 4 3

4 4 4 4 4 4 4 3

>> m=1:8;

. >> n=2:8;

>> f1(m,1)=0;

>> f1(m,n)=f(m,n-1)

f1 =

0 4 4 4 4 4 4 4

0 4 5 5 5 5 5 4

0 4 5 6 6 6 5 4

0 4 5 6 7 6 5 4

0 4 5 6 6 6 5 4

0 4 5 5 5 5 5 4

0 4 4 4 4 4 4 4

0 4 4 4 4 4 4 4

>> temp1=zeros(1,256);

>> for m=1:8;

for n=1:8;

if f1(m,n)==0;

i=1;

else

i=f1(m,n);

end

.

temp1(i)=temp1(i)+1;

end

end

temp1=temp1./(8*8);

>> H1=0;

for i=1:length(temp1)

if temp1(i)==0;

H1=H1;

else

H1=H1-temp1(i)*log2(temp1(i));

end

end

>> H1

H1 =

1.8503

Matlab截图:

(3)对该图像块再作行差值;,再给出误差图像及其熵值;>> m=2:8;

>> n=1:8;

>> e(1,n)=0;

>> e(m,n)=f1(m-1,n)

e =

0 0 0 0 0 0 0 0

0 4 4 4 4 4 4 4

0 4 5 5 5 5 5 4

0 4 5 6 6 6 5 4

0 4 5 6 7 6 5 4

0 4 5 6 6 6 5 4

0 4 5 5 5 5 5 4

0 4 4 4 4 4 4 4 >> temp2=zeros(1,256);

>> for m=1:8;

for n=1:8;

if e(m,n)==0;

i=1;

else

i=e(m,n);

end

temp2(i)=temp2(i)+1;

end

end

temp2=temp2./(8*8);

>> H2=0;

for i=1:length(temp2)

if temp2(i)==0;

H2=H2;

相关文档
最新文档