⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uncompressed_gif

📁 在EM85XX
💻
字号:
Why uncompressed gifs?----------------------Normal gif files use an LZW (Lempel-Ziv-Welsh) compression algorithmto save space.  This algorithm is patented by UniSys.  Because of this,software which creates normal, compressed gifs are subject to licensingfees by UniSys.What are uncompressed gifs?---------------------------Uncompressed gifs are image files that do not use LZW compression tocompress their image data but are still recognizable as gif files bydecoders which expect normal gifs.  Here is an explanation of how toimplement an algorithm to do this:From: Graphics File Formats FAQ: General Graphics Format Questionshttp://www.ora.com/infocenters/gff/gff-faq/  Subject: 7. Is there an uncompressed GIF format?    Realizing that the heart of the GIF patent controversy is the LZW   data compression algorithm itself, you may ask if there is a raw or  uncompressed version of GIF that can be read and written without  using the LZW alogrithm. Officially, the answer is no.    The GIF specification does not defined a way to store uncompressed  bitmap data. All bitmap data stored in a GIF file is compressed using  the LZW algorithm. If you did write a program that stored  uncompressed data using the GIF format, no other GIF reader would be  able to decode the GIF files it created.    So is there a way to modify the compressed data in a GIF file so it is   no longer in a format described by the LZW patent, but still readable  by GIF decoders? They answer to this is yes!    When a GIF file is compressed, an initial LZW code table is created  based on the bit-depth of the raw image data being LZW-encoded. For  example, a bitmap with 4-bit pixels will be encoded with an LZW code  table initially containing 18 entries: 16 color indicies ranging from  00000 to 01111, a clear code (10000), and a end-of-data code (10001).    As LZW encoding proceedes, color codes from the data are used to form  new table entries, and its the formation of these new entries that is  the heart of LZW encoding. If an encoder only used the initial table  and did not create any new table entry codes, then all of the  resulting encoded data will be codes representing the indicies of the  colors stored the in the GIF file's active color table.    This process is explained in a post made to comp.graphics.misc by  Dr. Tom Lane on 05 Dec 1996:        ...the idea is to emit only single-symbol string codes, plus a Clear      code every so often to keep the decoder from jacking up the code      width. In this mode your encoder is simply packing N-bit pixel      values into N+1-bit fields and keeping count; nothing patentable      there. Note that the data is not merely not compressed, it's      *expanded*: you need 9 bits per pixel for an 8-bit GIF. I wouldn't      care to use this trick for low-depth data. The worst case is for      1-bit (black and white) data; not only do you need 2 bits/pixel, but      every other symbol has to be a Clear to keep the code width down to 2      bits ... net result, 4:1 expansion.    Because this encoder ends up storing N+1 bits for every N bits of  data, plus a clear code every 2^N-2 codes, an 8-bit "non-compressed"  GIF image will be 1/8th larger than the same bitmap stored as an  LZW-compressed GIF.    Tom explained this a few days later:        Note, however, that you have to insert "clear" codes often enough to      prevent the decoder from ratcheting up the symbol width, or else      keep track of what the current symbol width should be.  It's been a      while since I looked at this in detail, but I think you need a clear      every 2^N-2 codes, where N is the underlying data depth, if you want      the symbol width to stay at N+1 bits.    [Note: Thanks to Tom Lane of the Independant JPEG Group and Neil  Aggarwal of Bellcore for provising the Usenet discussion that  contained this material]Since gif reading software must use an LZW decoder, is it legal?----------------------------------------------------------------After a bit of online investigation, I was sent the following letter:  From rms@santafe.edu  Sun Sep  6 18:39:17 1998  Date: Sun, 6 Sep 1998 19:37:52 -0600  From: Richard Stallman <rms@santafe.edu>  To: badger@prtr-13.ucsc.edu  Subject: Re: Decoding LZW okay:: Source?        I am looking for someone who can explain why decoding LZW is not      patented under either the IBM or the UniSys patents.    Because the wording of the claims that mention decompression describes  a system which can do both compression and decompression.    This is evident in the words of the patent.  I asked a lawyer to  confirm that the words mean what they appear to mean; he said that  they do.(Note: in the past, Unisys has made statements that seem to imply theydon't agree with this interpretation.)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -