GIF数据存储规范问题

时间:2011-09-02 12:55:59

标签: gif animated-gif

在GIF规范中,这里:

http://www.w3.org/Graphics/GIF/spec-gif89a.txt

我无法理解它的两个部分:

它指定'LZW最小代码大小':

  

该字节确定图像数据中用于LZW代码的初始位数,如附录F中所述。

  1. 用于LZW代码的初始位数是什么意思?
  2. LZW代码如何在GIF环境中运行? (据我所知,这是指Lempel-Ziv-Welch)。
  3. 它所指的难以捉摸的'appexdix F'在哪里? (它不在体内)。
  4. 它还指定在“LZW最小代码大小”的单字节之后,有一个名为“图像数据”的块,其实际大小未指定,并且只称为“数据子块”。 / p>

    • “数据子块”是什么意思?
    • 如何计算数据子块的大小?
    • 这与LZW代码有关吗?如果是这样,我该如何解释呢?

    对不起所有问题。谢谢你的时间。

    作为附注:非常感谢即使是部分答案或对任何问题的回答。

1 个答案:

答案 0 :(得分:2)

  1. GIF将LZW算法应用于代码的可变(增加)大小 在Wikipedia LZW中描述。 “初始位数”是初始值 代码的大小。

  2. 这在您参考的文档中有所描述。的颜色代码列表 像素是LZW压缩的(段落“a”就在您引用的部分的上方)。

  3. 它在文件中(第30页;-)接近结尾,只是搜索 “可变长度代码LZW压缩”)

  4. “数据子块”是255个块(或更少字节)的实际图像数据。 也许是

  5.   

    图像数据和扩展块使用的链表由一系列子块组成,每个子块以一个字节开头,给出子块(1到255)中后续数据字节的数量,系列由空子块(0字节)终止。   [Wikipedia GIF]

    1. “我如何计算出数据子块的大小?”往上看。这是第一个字节 每个街区。

    2. 见上文。