首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 平面设计 > 图形图像 >

有懂lzw算法的,了解GIF编码的请进,

2012-07-29 
有懂lzw算法的,了解GIF编码的请进,求救!!!!!该段光栅数据为非交织的,全局颜色列表尺寸为400 是黑色01 是图

有懂lzw算法的,了解GIF编码的请进,求救!!!!!
该段光栅数据为非交织的,全局颜色列表尺寸为4  
00 是黑色  
01 是图形白色  
02 是背景白色  
03 是黑色  

其中透明色是02

00001100:00000000 宽度12pix
00001100:00000000 长度12pix
00000000:00000010 不用局部颜色表,非交织,不按频率排序,初始lzw码表大小为2
00010001 数据块长度为17
====光栅数据开始====
  10010100  
10001111:10101001
11001011:11101101
00010111:10011110
01001100:00000000
00110100:00101011
10110000:11000010
01111010:11110111
01101001:00010100
====光栅数据结束====
00000000:00111011 块终结符,图形终结符3B



请大家帮帮忙,我在解析时遇到困难,100是CLEAR ,可是紧接着怎么是101 eof呢?? 百思不得其解

我倒推00101为终止EOF 可是得到的字符和我自己对图形进行压缩的结果又是不一样的
纠结了4、5天了 拜托大家帮帮忙,摆脱了。。。。。


这是我根据图像按照LZW压缩得到的数据
a:00  
b:01
c:10
d:11
clear:100
eof:101

输入字符串 前缀 后缀 entry output string code
c c 
c c c cc c cc 6
c c c 
c cc c 6c 6 ccc 7
c c c 
c cc c 
c ccc c 7c 7 cccc 8
c c c 
c cc c 
c ccc c 
c cccc c 8c 8 ccccc 9
c c c 
c cc c 
c ccc c 
c cccc c 
c ccccc c 9c 9 cccccc 10





c cccccc c 10c 10 ccccccc 11






c ccccccc c 11c 11 cccccccc 12







c cccccccc 12c 12 ccccccccc 13








c 13 c 13c 13 cccccccccc 14









c 14 c 14c 14 ccccccccccc 15
c c c 
c cc c 
b ccc b 7b 7 cccb 16
c b c bc b bc 17
c c 









c 15 c 15c 15 cccccccccccc 18











c 18 c 18c 18 ccccccccccccc 19
c c c 
c cc c 
c ccc c 
c cccc c 
a ccccc a 9a 9 ccccca 20
a a a aa a aa 21
c a c ac a ac 22
c c c 
c cc c 
c ccc 
c cccc 
c ccccc 



a 12 a 12a 12 cccccccca 23
c a c 
c ac a 22a 22 aca 24
a a a 
c 21 c 21c 21 aac 25
c c 






a 12 a 
c 23 c 23c 23 ccccccccac 26
c c c 
a cc a 6a 6 cca 27
c a c 
c ac c 22c 22 acc 28
c c 






a 12 a 
a 23 a 23a 23 ccccccccaa 29
c a c 
c ac c 
c 28 c 28c 28 accc 30
c c c 
c cc c 










c 19 c 19c 19 cccccccccccccc 31
c c c 
c cc c 
c ccc c 8 8 
EOF 


[解决办法]
在网上可以找到的资料 都没有讲 如和将得到的变长压缩码如何以byte打包 问题就出在 打包上了
我最后参考 英文的维基百科 才发现问题的
维基百科中讲的实例是 9位压缩码开始的数据的打包
由此结合 已知的图像压缩码 和图像GIF编码 推测出 3位压缩码开始的数据的打包规则
BUILD 8-BIT BYTES

Because the LZW compression used for GIF creates a series of variable length
codes, of between 3 and 12 bits each, these codes must be reformed into a
series of 8-bit bytes that will be the characters actually stored or
transmitted. This provides additional compression of the image. The codes are


formed into a stream of bits as if they were packed right to left and then



参考:
http://en.wikipedia.org/wiki/Graphics_Interchange_Format
[解决办法]
GIF的位流是左侧连接的。

例如——

引用====光栅数据开始====
10010100
10001111:10101001

热点排行