【文件属性】:
文件名称:matlab最简单的代码-Arithmetic_Encoding_-_Decoding_Using_MATLAB:Arithmetic_Enc
文件大小:3KB
文件格式:ZIP
更新时间:2021-05-22 13:27:28
系统开源
matlab最简单的代码Arithmetic_Encoding
_-_
Decoding_Using_MATLAB
引言算术编码是用于无损数据压缩的熵编码的一种形式。
通常,每个字符使用固定位数表示字符串,例如单词“
hello
there”。
均等概率在最简单的情况下,每个符号出现的概率是相等的。
例如,考虑三个符号A,B和C的集合,每个符号均可能出现。
简单的块编码每个符号需要2位,这很浪费:永远不会使用位变化之一。
也就是说,A
=
00,B
=
01,并且C
=
10,但是未使用11。
一种更有效的解决方案是将这三个符号的序列表示为以3为底的有理数,其中每个数字代表一个符号。
例如,序列“
ABBCAB”可能变为0.011201。在算术编码中,其间隔为[0,1)。
下一步是使用精度足够高的定点二进制数对该三进制数进行编码,例如0.00101100102,这只有10位;
与原始块编码相比,节省了2位。
这对于长序列是可行的,因为存在有效的,就地算法来转换任意精确数字的基数。
定义模型通常,算术编码器可以为任何给定的符号和概率集生成接近最佳的输出(对于概率P的每个符号,最佳值为−l
【文件预览】:
Arithmetic_Encoding_-_Decoding_Using_MATLAB-master
----LICENSE(1KB)
----arttest.m(1KB)
----README.md(3KB)