图像编码
—?/p>
图像处理?/p>
G
?/p>
LZW
编码?/p>
LZW
编码对信源输出的不同的长度的符号序列分解固定的长度的码字,且不需
要有关符号出现的概率的知识?/p>
LZW
编码方法是一种字典方法,在编码的开?/p>
阶段要构造一个对信源符号进行编码的码本(字典?/p>
?/p>
方法?/p>
对于一个固定灰度的图像,开始时字典储存图像所要表示的灰度范围。比?/p>
8
比特灰度,那么字典初始化就有
0-255
灰度条目。对于编码后的字典条目,直接
在后面添加?/p>
在编码时?/p>
当前识别序列和字典条目,
我们采取了数组的储存方式?/p>
但也尝试?/p>
采取使用
MATLAB
中的元胞类型,但编码的效率很低速度很慢。这是由于在?/p>
找字典匹配序列时?/p>
使用元胞类型时在电脑的运行内部要经常进行指针的大范围
的跳转,
查找效率很低?/p>
采用了数组储存后指针指在小范围内移动效率得到明显
的提高?/p>
编码的规则很简单。对图像从行列进行像素扫描,对于第一个像素不进行输出?/p>
只当作下一次的当前识别序列?/p>
而对其它的有当前事变序列连接上当前处理的?/p>
素值组成一个序列,
如果该序列能在字典里找到对应的序列,
那么该序列作为下
一个的当前序列其它什么也不做?/p>
如果不能找到?/p>
则编码输出当前识别序列的?/p>
典中的索引值?/p>
这样一直到最后,
把最后一个当前的识别序列的字典的索引值直
接作为编码接在编码输出序列后面?/p>
对于解码来说?/p>
也采用上面的数组的储存结构?/p>
我们只要以编码值在对应建立?/p>
字典中去找到对应的字典条目输出就可以的?/p>
但这里存在着一个问题,
对一些连
续的出现相同的像素的编码值,在解码时不能在字典里面找到字典条目?/p>
难点
:正确的解码?/p>
解决方法
?/p>
对于不能在字典中找到的条目,
采用条件判断?/p>
之后取前面的识别序列连接上识
别序列的第一个像素值作为像素序列的输出和字典输出,
当结束后再把当前处理
的编码值赋给识别序列。一切就很正常的进行?/p>
由于
LZW
编码,在编码时运算量特别大,所以编码的效率很低。主要有几个?/p>
因:
1
、对算有像素都要进行一次扫?/p>
2
、对于很少出现相似的像素,字典会非常?/p>
3
、每一次都要去查找一下字?/p>
改进方法?/p>
1
、选取图像像素的最大值(如果少于
255
,那么可以减少字典大小,同时减少
一些计算量?/p>
2
、采用向后查找方?/p>
3
、对于字典储存方式上的数组改进方式?/p>