将一个灰度图像为8bit/像素中每个像素的第j个比特抽取出来,就得到一个称为比特平面的二值图像,于是图像完全可以用一组共8个比特平面来表示,对灰度图像的编码转为对比特平面的二值化方块编码。为此,将每个比特面分为不重叠的m×n个元素的子块。
将一个灰度图像为 8 bit/像素中每个像素的第 j 个比特抽取出来,就得到一个称为比特平面的二值图像,于是图像完全可以用一组共 8 个比特平面来表示,对灰度图像的编码转为对比特平面的二值化方块编码。为此,将每个比特面分为不重叠的 m×n 个元素的子块。
原理
次最佳方块编码
统计分析表明,比特平面中有两种结构的方块经常出现:m×n 个全“0”和全“1”,并且前者出现的概率多于后者,于是可得出如下的次最佳方块编码方案
全“0”子块:码字为“0”
全“1”子块:码字为“11”
其他情况:码字为“10”+“xxx…x”
“xxx…x”为将子块的比特内容直接输出,故又称为直接编码。
这种编码方案的平均码长 L 为:
L=P(0;n,m)+2P(1;n,m)+(2+nm)[1-P(0;n,m)-P(1;n,m)]=nm[1-P(0;n,m)-P(1;n,m)]+2- P(0;n,m) (41.77)
式中:P(0;n,m)和 P(1;n,m)分别为 m×n 个全“0”或全“1”子块出现的概率。
压缩比 Cr=nm/L,将 L 代入可得:
可见,Cr 是 P(0;n,m)和 P(1;n,m)的递增函数。
用格雷码表示像素亮度
通常,数字化后像素的电平值都是 PCM 自然二进制码,这种码的特点是高位最重要的比特平面图形简单,并适用于上述方块编码,但重要性稍差的比特面图形相当复杂,尤其低位最不重要的比特平面噪声为主要成份,因而不适宜用方块编码。这样,由高位 4 个最重要的比特面获得的压缩效益将被其他几个低位比特面所抵消,其原因在于对于 PCM 编码,若相邻像素的亮度值变化一个等级,其码字也可能相差好几个比特。改进的方法是用格雷码来表示像素的亮度。由于格雷码的特点是码距惟一,使得比特面上取值相同的面积增大,即 P(0;n,m)和 P(1;n,m)增大,因而增大了压缩比。
视觉心理编码
视觉心理编码是指,允许恢复图像有一定的失真,只要视觉感觉不出或可以容忍。具体做法是把子块内不超过 K 个“1”的子块视为全“0”子块,而把不超过 K 个“0”的子块视为全“1”子块,这样也等效于取值相同的面积增大,即 P(0;n,m)和 P(1;n,m)增大,因而也提高了压缩比。
据实验表明,若子块大小为 n=m=4,当 K=6 时引起的失真人眼尚可接受。
方块尺寸的选择
在压缩比 Cr 的表示式中,它与 n,m 的关系是复杂的。当 nm 增加时,1/nm 减少,但很可能导致 P(0;n,m)和 P(1;n,m)减少。因而 nm 不能盲目增大。实验表明,取 n=m=4 较为合适。