第五章 数字图像与视频压缩编码原理

算术编码

【例5-5】请编写算术编码的MATLAB程序。
算术编码程序,输出为码率
format long e;
symbol='abcd';%字符行向量
pr=[0.4 0.2 0.1 0.3];%字符出现的概率
seqin=('dacab');%待编码字符串
codeword=arenc(symbol,pr,seqin)
codeword =
7.739200000000001e-01
算术解码
outseq=ardec(symbol,pr,codeword,length(seqin))
outseq = 'dacab'
注:算术编码输出实际上是一个左闭右开区间,区间内的数据编码都可以得到想要的结果,上课时,老师讲解的编码输出方法为取区间中用二进制表示需要位数最短的数