基于权系数的无损编码方法
王杰林
摘要:本文构建一个基于系数的无损编码方法,是基于概率加权模型的基础上优化改进的,是一种全新的熵编码方法;具有并行和同步处理多个符号的能力。确保压缩能力时,成倍提高编码效率。
关键词:概率权系数,分布函数
引言
以二进制序列为例,本方法可同时针对多个符号进行编解码,适合并行处理。设二进制随机序列中,符号0的概率为
p(0),符号1的概率为
p(1)。以同时处理两个符号为例子,给出基于系数的编解码方法。实际应用中采用更大的符号个数编解码,使得本方法达到其最大效率。
本方法是应用了概率的分布函数特性得出的编解码算法,设随机序列为
x1,x2,…,xn,则随机序列的分布函数为
Hn(x1,x2,…,xn)则:
Hn(x1,x2,…,xn)=i=1∑nF(xi−1)j=1∏i−1p(xj)+i=1∏np(xi)
编码步骤
1)、构建系数区间表,两个二进制符号,总的有4种组合,分别为00,01,10,11。根据分布函数有:
L2(x1,x2)=ω1F(x1−1)+ω1ω2F(x2−1)p(x1)
然后将四种组合给出
L2(x1,x2)的系数区间下标为:
L2(0,0)=0ω1+0ω1ω2p(0)=0
L2(0,1)=0ω1+ω1ω2p(0)2=ω1ω2p(0)2
L2(1,0)=ω1p(0)+0ω1ω2p(1)=ω1p(0)
L2(1,1)=ω1p(0)+ω1ω2p(0)p(1)
于是系数区间表为:
00对应[0,ω1ω2p(0)2)
01对应[ω1ω2p(0)2,ω1p(0))
10对应[ω1p(0),ω1p(0)+ω1ω2p(0)p(1))
11对应[ω1p(0)+ω1ω2p(0)p(1),ω1p(0)+ω1ω2p(0)p(1)+ω1ω2p(1)p(1))
2)、定义前两位符号的系数区间下标为
l1,2(00∣01∣10∣11)。编码时,根据待编码的两个符号的形态查表,于是
l1,2(00∣01∣10∣11)=0 ∣∣∣ ω1ω2p(0)2 ∣∣∣ ω1p(0) ∣ (ω1p(0)+ω1ω2p(0)p(1))
3)、将查表得到系数区间下标累加到
ln中:
ln=ln+l1,2(00∣01∣10∣11)
4)、更新系数区间表,根据分布函数有:
H2(x3,x4)=ω1ω2p(x1)p(x2)H4(x1,x2,x3,x4)−H2(x1,x2)=ω3F(x3−1)+ω3ω4F(x4−1)p(x3)
若系数为静态系数,则有:
l3,4(00∣01∣10∣11)=ω1ω2p(x1)p(x2)l1,2(00∣01∣10∣11)
若系数为动态系数,且
ω1,ω2 ,ω3,ω4,p(x1),p(x2)均已知,且待编码的两位符号也已知,可由
H2(x3,x4)将系数区间表值进行更新。
5)、再获取两个符号,并循环步骤2)到步骤4),直到处理完所有符号,则
ln为编码结果。
解码步骤:
由编码过程得出编码的结果为
ln,通过比较
ln在系数区间表的区间,从而得出对应的组合形态,并输出该组合,实现同时解码多个符号。步骤如下:
1)、同编码过程的步骤1),根据符号0和1的概率,构建系数区间表。
2)、通过比较
ln所在系数区间,并输出对应的组合形态:
当
ln∈[0,ω1ω2p(0)2)时,输出00;
当
ln∈[ω1ω2p(0)2,ω1p(0))时,输出01;
当
ln∈[ω1p(0),ω1p(0)+ω1ω2p(0)p(1))时,输出10;
当
ln∈[ω1p(0)+ω1ω2p(0)p(1),ω1p(0)+ω1ω2p(0)p(1)+ω1ω2p(1)p(1))时,输出11。
3)、更新系数区间表,同编码步骤4)。
4)、并累减
ln,即
ln=ln−l1,2(00∣01∣10∣11)。并循环步骤2)到步骤4),直到所有符号解码完成。
复杂度分析:
本编解码方法,
ln的计算方式为累加或累减;系数区间表值的更新为乘法,且加法过程和乘法过程可以并行处理。由上面的编解码步骤可得出基于两个符号的系数编码的时间复杂度为
O(2n)。若基于
k个符号的系数编码时间复杂度为:
O(kn)。很明显,
k越大,本算法的时间复杂度越低;
k=1时系数区间就是概率区间。
说明:当
ω恒等于1时,则是一种全新的概率编码方案,可以对算术编码和区间编码进行提升;当
ω不等于1时,则属于泛过程编码。