实验8.1
基本信息
- 实验名称:8.1 无失真信源编码的实现
- 实验类型:设计
- 实验地点:分散
目标
通过编写和操作一个接近实用的无失真信源编码器,加深对无失真信源编码的理论知识与实际应用的理解。
内容
-
学习教师提供的
exampleSourceCoder.py
- 为其中的
encode()
和decode()
函数,逐句添加注释。
- 为其中的
-
以
exampleSourceCoder.py
为蓝本,编写无失真信源编码程序(及其单元测试),程序API如下:byteSourceCoder.exe encode PMF INPUT OUTPUTPMF path to probability mass function CSV fileINPUT path to the encoder input fileOUTPUT path to the encoder output filebyteSourceCoder.exe decode INPUT OUTPUTINPUT path to the decoder input fileOUTPUT path to the decoder output file
encode
命令部分PMF
:与【实验2.4】中byteSource
程序的输入文件格式相同INPUT
:由byteSource
按给定的PMF生成OUTPUT
:编码后的文件,格式以exampleSourceCoder.py
的注释为准
decode
命令部分INPUT
:编码后的文件,格式与encode
命令的OUTPUT
文件一致OUTPUT
:解码后的文件,原则上应与encode
命令的INPUT
文件一致
-
操作
- 使用
byteSource
程序,生成三种不同概率分布下(其中一种是等概率分布),二元DMS分别发出的消息文件X。 - 使用
byteSourceCoder
程序,对这三个消息文件进行两组无失真信源编码- 对于每个输入X,使用对应的概率分布文件PMF
- 对于每个输入X,使用一个与它不对应的概率分布文件PMF
- 使用
7z
压缩工具,对这三个消息文件进行无失真信源编码 - 通过理论推导,计算这三个消息文件的无失真信源编码的理论极限(压缩文件的最小尺寸、最高压缩比)
- 对比理论推导的压缩极限和实验得到的压缩结果,并简要说明差距存在的原因
- 使用
提交
-
程序压缩包,包含
byteSourceCoder
程序源代码:代码文件本身,如.py
文件。不包含其他文件非源代码文件,如开发工具的工程文件等。- 可执行程序:
.exe
文件及其正常运行所需的文件,如.dll
等。 - 单元测试数据,以及数据的说明。
- 程序使用说明:如运行环境、调用形式、参数的含义等。(实验报告中不需要复述相关内容。)
-
实验压缩包(不需要包含任何程序相关文件)
- 实验数据,以及数据的说明。
- 实验报告:实验基本信息、目标、原理等标准内容。
- 其中有一小节,是展示
exampleSourceCoder.py
的encode()
和decode()
添加了注释的代码。(带语法高亮)粘贴到实验报告中即可。
- 其中有一小节,是展示