冯娟的第二次作业

参考书题目:

2、利用程序huff_enc和huff_dec进行以下操作(在每种情况下,利用由被压缩图像生成的码本)。

    (a)对Sena、Sensin和Omaha图像进行编码。

    (b)编写一段程序,得到相邻之差,然后利用huffman对差值图像进行编码。

      给出以上每一次实验得出的文件大小,并解释其差别。

解:(a)

       文件名         压缩前         压缩后          压缩比
      Sena         64K        57K          1.14
      Sensin         64K        61K          1.06
      omaha         64K        58K          1.12

4、一个信源从符号集A={a1,a2,a3,a4,a5}中选择字母,概率为P(a1)=0.15,P(a2)=0.04,P(a3)=0.26,P(a4)=0.05,P(a5)=0.50。

    (a)计算这个信源的熵。

    (b)求这个信源的霍夫曼编码。

    (c)求(b)中代码的平均长度及其冗余度。

    解:

        (a)H(A) = -0.15*log20.15-0.04*log20.04-0.26*log20.26-0.05*log20.05-0.50*log20.50

                       =0.15* 2.737+0.04*4.644+0.26*1.943+0.05*4.322+0.5*1

                       =0.411+0.186+0.505+0.216+0.5

                       =1.818(bits/symbol)         

        (b)a1:001

               a2:0000

               a3:01

               a4:0001

              a5:1

       (c)平均长度:L=0.15*3+0.04*4+0.26*2+0.05*4+0.5*1

                             =0.45+0.16+0.52+0.2+0.5

                             =1.83(bits/symbol)

              冗余度:L-H(A)=1.83-1.818=0.012(bits/symbol)

 

5.一个符号集A={a1,a2,a3,a4},其概率为P(a1)=0.1,P(a2)=0.3,P(a3)=0.25,P(a4)=0.35,使用以下过程找出一种霍夫曼码:

 (a)本章概述的第一种过程;

 (b)最小方差过程。

 解释这两种霍夫曼码的区别。

解:

     (a)第一种霍夫曼码


符号


概率



a1


0.1


000


a2


0.3


01


a3


0.25


001


a4


0.35


1

 

           第二种霍夫曼码


            符号


              码


            a1


            11


            a2


            01


           a3


            10


           a4


            00

      (b)平均码长:

                  第一种霍夫曼码: L=3*0.1+2*0.3+3*0.25+1*0.35=2

                  第二种霍夫曼码 :L=2*0.1+2*0.3+2*0.25+2*0.35=2

           方差:

                  第一种:S2=0.1(3-2)2+0.3(2-2)2+0.25(3-2)2+0.35(1-2)2=0.70

                  第二种:S2=0.1(2-2)2+0.3(2-2)2+0.25(2-2)2+0.35(2-2)2 =0

                  第二种霍夫曼码较优

6、 参考书《数据压缩导论(第4版)》   Page 30

     6. 在本书配套的数据集中有几个图像和语音文件。

       (a)编写一段程序,计算其中一些图像和语音文件的一阶熵。

      (b)选择一个图像文件,并计算其二阶熵。试解释一阶熵和二阶熵之间的差别。

      (c)对于(b)中所用的图像文件,计算其相邻像素之差的熵。试解释你的发现。

      答:

                 

 

(b)图像文件为EARTH.IMG的一阶熵为:4.770801,二阶熵为:2.568358

从上图可知,图像的一阶熵比二阶熵要大很多。文件经过二阶压缩处理可以增大压缩度,减少存储空间。

(c)图像文件为EARTH.IMG的一阶熵为:4.770801,二阶熵为:2.568358 ,差分熵为3.962699

经过比较差分熵介于一阶熵和二阶熵之间。对一阶熵来说,差分熵还算比较理想的压缩算法。

时间: 2024-10-02 07:25:46

冯娟的第二次作业的相关文章

【助教】第二次作业成绩

1.代码的提交规范依然有人不遵守: 1班: 19陈俊金     http://www.cnblogs.com/cjj19/ 20李新             http://www.cnblogs.com/lixin20/ 21林德麟 http://www.cnblogs.com/l201306114321/ 下次如果还有不按照规范的童鞋,一律0分处理 2.有些人至今没有提交过作业: 二班: 201306000000 杨洁华 www.cnblogs.com/wutong2515/ 20130611

解题报告——2018级2016第二学期第二周作业

解题报告——2018级2016第二学期第二周作业 D:迷宫问题 题目描述: 定义一个二维数组: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, }; 它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线. 输入 一个5 × 5的二维数组,表示一个迷宫.数据保证有唯一解. 输出 左上角到右

马哥linux 培训第二周作业

注意:第二周作业,请将以下题目整理在51cto博客当中,完成后请将对应的博文链接地址提交在答案栏中,提交格式如下:学号+姓名+博文链接地址eg:1+张三+http://mageedu.blog.51cto.com/4265610/1794420 本周作业内容:1.Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示. 文件管理的命令有cp.mv.rm 复制命令:cp 用法: cp [-adfilprsu] 来源文件(source) 目标文件(destination) cp [o

第二次作业 孙榜婷

2.9 设有如下语句,请用相应的谓词公式分别把它们表示出来: (1) 有的人喜欢梅花,有的人喜欢菊花,有的人既喜欢梅花又喜欢菊花 . 解:定义谓词 P(x):x是人 L(x,y):x喜欢y 其中,y的个体域是{梅花,菊花}. 将知识用谓词表示为: (∃x )(P(x)→L(x, 梅花)∨L(x, 菊花)∨L(x, 梅花)∧L(x, 菊花)) (2) 有人每天下午都去打篮 解:定义谓词 P(x):x是人 B(x):x打篮球 A(y):y是下午 将知识用谓词表示为: (∃x )(∀y) (A(y)→

牛老师第二次作业

namespace 第二次作业{    class RandomNumber    {        public int Add(int x, int y)        {            return x + y;        }        public int Sub(int x, int y)        {            return x - y;        }        public int Mul(int x, int y)        {    

Linux+Python高端运维班第二次作业

Linux+Python高端运维班第二次作业 1.列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可. [[email protected] ~]# who |cut -d" " -f1|uniq (unknown) root test1 [[email protected] ~]# who |cut -d" " -f1|sort -u root (unknown) wangyanglin 2.取出当前系统上被用户当作其默认shel

第二周作业补交(请老师看一下)

#include<stdio.h> #include<math.h> int main(void) { int money,year; double rate,sum; printf("Enter money:"); scanf("%d",&money); printf("Enter year:"); scanf("%d",&year); printf("Enter rate:

耿丹16-1第二次作业

-- Deadline: 2016-09-23 23:00 pm -- 作业内容:https://edu.cnblogs.com/campus/bjgygd/Sixteen-One/homework/85 -- 第二次作业总结: 1. 总共5位同学未按时提交,且目前未交. 2. 大部分同学都注意了代码的缩进格式,希望继续保持! 3. 希望同学们下节课作业可以使用博客中自带的代码编辑器,养成良好的代码编写风格! 周刘晋源同学已经开始使用了,特此提出表扬! 4. 大家学习了变量类型的定义,以后会遇到

第二次作业: 二维数组

高级语言程序设计报告   实习题目 第二次作业: 二维数组 P228计算机双学位第8章实验题:学生成绩管理系统 l 在上次作业的基础上,改为每学生2门课,用二维数组编程实现相应功能,相应功能所有涉及分数的均需可以处理每门课程分数及每个学生课程总分. l 涉及到排序的,均需提供冒泡及选择两种排序方法,可增加菜单项. l 功能5中按学号查询学生排名及成绩,要求用折半法,为此你的学生数据可以多一点. l 数组中可以事先有数据(省却每次输入数据浪费时间),为此输入数据菜单可以改造为增加数据菜单. l 在