您当前的位置:五五电子网电子知识电子知识资料计算机应用算术编码方法在图像压缩编码中的应用 正文
算术编码方法在图像压缩编码中的应用

算术编码方法在图像压缩编码中的应用

点击数:7617 次   录入时间:03-04 11:59:32   整理:http://www.55dianzi.com   计算机应用

  本文在简要介绍了图像信源统计特性的基础上,分别以H.263和JPEG标准中的算术编码器为例,阐述了算术编码方法在活动图像和静止图像压缩编码领域内的应用,最后对其发展前景作了展望。

  算术编码是一种无失真的编码方法,能有效地压缩信源冗余度,使编成的码率趋于信源的熵。其基本思想就是根据信源发出不同符号的概率。把[0,1]区间进行不断地划分,使得信源发出的不同符号序列对应[0,1]区间上不同的子区间。每个子区间都可以用其中的一个实数表示,只要它足够精确,也就是它的比特数足够多,总可以和其他子区间区分开来。这个数就是该符号序列所对应的码字。显然,如果一串符号序列发生的概率越大,对应的子区间就越宽,要表达它所用的比特数就越少,因而相应的码字就越短。

  算术编码的一个重要特点就是不需要事先知道信源发出各符号的概率,即不依赖于各符号的先验概率。它可以根据恰当的概率估计模型和当前符号序列中各符号出现的频率,自适应地调整对各符号的概率的估计值。因此,与HufFMan编码方法相比,算术编码显得更加灵活,适应性更强,压缩效果也更好。

  另一方面,传统的算术编码方法实现起来有两个难点,首先是只有当信源完整地把一段符号序列发送完之后,编码器才能确定一段子区间与之对应,编出相应的码字。这不但要占用相当大的存储空间,还增加了编码延时,这对实时系统是十分不利的。其次,随着序列长度的增加,相应子区间的宽度也不断缩小,要表示这段子区间所需的精度,直观地说就是比特数也不断增加。对于有限字长的运算器来说,是难以实现的。

  为了解决这些难点,针对不同的应用方向,人们对传统的算术编码方法进行了改进。在保证足够精度的前提下,提高了编码速度。

  图像压缩编码是算术编码的重要应用领域。本文将简单描述图像信源的统计特性。在此基础上,分别以H. 263和JPEG标准所用的算术编码器为例,介绍算术编码在活动图像和静止图像压缩编码领域的应用。最后对算术编码在图像编码领域内的应用前景进行展望。

  1  图像信号的统计特性

  图像的统计特性一般是指其各像素的亮度值或对图像取某种模型作处理后的输出值的统计特性。

  这是进行图像压缩编码的依据。在算术编码过程中,只有了解图像的统计特性,才能建立恰当的概率估计模型,对图像信源发出的各符号的概率作出较为准确的估计。

  但是,一个实际的图像信源可能产生的图像总数是很大的,以256×256的图像为例,如果每个像素用8bit表示,则共有256×256×8=254 288 bit,这时共有2256 288≈10157 000种可能的图像。对于种类如此之多的可能图像,要测量出对应的各种概率是不实际的。要解决这个问题,必须利用合适的数学模型。45

  事实上,图像的相邻像素点之间有很强的相关性。上表是对一组符合CCIR601建议的电视图像和ITU-T建议的8幅传真测试图像进行实际概率测量得到的平均熵值。表中

45

    论中的结论一致。说明图像信源发出的相邻符号,即相邻像素之间有较强的相关性。因此,可以把图像信号看成二维随机场中的马尔可夫信源,用N阶马尔可夫链来近似描述这种概率分布。

  2  算术编码在活动图像压缩编码中的应用

  活动图像的重要特性在于不仅一帧图像内部相邻像素间有较强的相关性,而且相邻帧的图像也有较强的相关性。即既有空间冗余度,又有时间冗余度。一般来说,都是先用运动位移估值来去除时间冗余度和用离散余弦变换( DCT)来去除空间冗余度,再对量化的运动位移矢量和DCT系数进行算术编码。本节着重介绍H. 263建议中采用的算术编码器。

  H.263建议是用于可视电话的低码率图像压缩编码方案。建议中提供了一整套关于各种运动位移矢量和DCT系数的累积概率表,这是从大量实验中得到的。算术编码器以此为依据进行子区间的划分迭代,而不必进行概率估计。这主要是基于两方面的考虑:一是可视电话中的图像一般是人的头肩像、变化范围较小,因此不同图像中各参数的概率分布变化不大;二是进行概率估计需花费较多的计算量,不利于进行实时的编解码。

  H.263建议所用的算术编码器采用固定精度,根据一定的条件将子区间宽度加倍,从而将子区间宽度始终保持在一定范围内,并即时输出编码得到的码流。这样就解决了第一节所提到的传统的算术编码所面临的两个难点,使之实用化。具体地说,就是设置四个全局静态变量:length,high,low和op-posite- bits,分别表示子区间的宽度,上、下界以及输出相反比特的个数。当输入一个新符号时,通过查表的方法得到相应的累积分布概率Cummul-freq[index],其中index是这个新符号所对应的标号,则新的子区间上下界可通过下面两式计算更新:

67

  根据high和low的值分三种情况作出不同的处理:

67

  重复以上三步,直到新的子区间不在[0,1/2),[1/4,3/4)或[1/2,1)三个区间范围内为止。

  从编码过程可以看出,由于设置了length,high,low和opposite- bits四个全局变量,从而把信源各符号联系起来,对下一符号的子区间划分总是在上一符号的基础上进行的。因此,实质上算术编码是对信源的输出符号序列进行编码,而不是像Huffman编码那样对单个符号进行编码。根据第二节的分析可知,HN<Hi,所以尽管H.263所用的算术编码器没有进行自适应的概率调整,其编码效率仍比Huffman编码高5%~7%。

  3.算术编码在静止图像压缩编码中的应用

  静止图像压缩编码一般没有实时性的要求。为了获得较高的压缩比,一般所用的算术编码器都有概率估计功能,能根据信源发出的符号序列,自适应地调整对各符号的概率估计。下面就以JPEG标准所用的算术编码器为例进行介绍。

  其编码过程采用定点整数运算,小数也用十六进制定点整数表示。设置两个寄存器:一是区间宽度寄存器A,用于存放子区间的宽度。为了保证固定精度,防止子区间宽度过小,一旦A值小于0.75,就将A值加倍,这样就能保证子区间宽度始终在[0.75,1.5),在JPEG标准中,这个过程称为重归一化( renormalization);另一个是代码寄存器C,用于存放流码的尾数,当A值加倍时,C值也加倍。

  为了避免C的上溢,周期性地把一个字节的数据从寄存器C的高位移走,这就是编好的码字。把A保持在0.75到1.5之间的另一个好处是允许在子区间的划分中使用简单的近似。正常情况下,如果所处状态对应的小概率符号(LPS)发生概率的估计值为Qf( S),那么要精确计算子区间,必须有:56

  由于A的范围固定,故可用下面的公式计算来近似:54

  这样就避开了乘法运算。

  需要指出的是,JPEG标准所用的算术编码器是一种二元编码器,也就是其输入符号只可能是1或O,如果需要对多符号的描述子进行编码,就得通过二元判决树将其转化成二元判决序列。每个二进制符号(0或1)代表二元判决值的一种可能结果。

  由于使用了判决树,自然而然地引入了条件概率。

  每个二进制符号的取值和它在判决树中所处的位置有关,受它以前各判决值的影响。换句话说,就是和它所处的状态S有关,这个状态S取决于已经编码的判决值(上下文)。根据这一特性,JPEG标准使用了概率估计状态机,提供不同状态下概率的估计值以及不同状态的相互转换关系。具体地说,每个状态S对应一个Q,(S),Next-index-MPS(S)和Next-index-LPS(S)。Q,(S)表示在该状态时,小概率符号( LPS)发生的概率。Next-index-MPS(S)表示如果输入符号是MPS,状态机将要迁移到的新状态的索引值。Next.index-LPS(S)的含义类似。

  JPEG标准规定,并不是输入每一个新符号都会发生状态的迁移,只有当重归一化时,才进行状态的迁移。下图为连续输入多个大概率符号MPS后发生的状态迁移示意图。


54

  当连续发出若干个大概率符号后,概率子区间宽度小于0. 75,进行MPS重归一化。此时,按照Next-index-MPS( S1)的指示,状态机迁移到新状态S2。S2对应的小概率符号发生概率Q。(S2)小于Q。(Sl),从而实现了概率估计的自适应调整。相反,如果连续出现多次小概率事件,那么状态机将迁移到Q,(S)较大的状态中去。当Q,(S)增加超过0.5时,也即LPS的概率大于MPS的概率时,将LPS和MPS所对应的符号互换。这样,Q,虽然还是对应LPS,但它所代表的符号已发生了变化。

[1] [2]  下一页


本文关键字:暂无联系方式计算机应用电子知识资料 - 计算机应用

《算术编码方法在图像压缩编码中的应用》相关文章>>>