diff options
Diffstat (limited to 'SPECIFICATION')
-rw-r--r-- | SPECIFICATION | 56 |
1 files changed, 0 insertions, 56 deletions
diff --git a/SPECIFICATION b/SPECIFICATION deleted file mode 100644 index 837fe0e..0000000 --- a/SPECIFICATION +++ /dev/null @@ -1,56 +0,0 @@ -The farbfeld-format is meant to be parsed easily -and used to pipe images losslessly. - -# WHY FARBFELD? - -Most current image-formats have their compression -incorporated in their format itself. -This has some advantages, but reaches its limits -with lossless formats (e.g. PNG). -The basic idea of the farbfeld-format is to separate -these to and having a completely transparent image-format. - -Pattern resolution is done while compressing, not while -converting the image. -For example, farbfeld always stores an alpha-channel, -even if the image doesn't have alpha-variation. -This may sound like a big waste, but as soon as you -compress an image of this kind, the bzip2-algorithm -takes care of the easy pattern, that each 4th character -has the same value. -This leads to almost no overhead while keeping parsing -really simple. -Same applies to the idea of having 64 bits per channel. -It sounds excessive, but if you only have 8 bits of -entropy, the compression will take care of it, while -you only need to do the endian-handling for 64 bit -chunks. - -# FORMAT: - -Bytes Description -8 farbfeld -4 32 bit BE Unsigned Integer (width) -4 32 bit BE Unsigned Integer (height) -[2222] RGBA-row-aligned-pixel-array - 16 bit BE Unsigned Integers (per channel) - -# EXAMPLES: - -encoding: -png2ff < example.png > example.ff -png2ff < example.png | bzip2 > example.ff.bz2 - -decoding: -ff2png < example.ff > example.png -bzcat example.ff.bz2 | ff2png > example.png - -# WHY BZ2? - -Using BZ2, you can get smaller filesizes than with PNG, -especially with line-drawings. -For normal pictures, the bz2-compression yields roughly -the same sizes as png does. -Always keep in mind that using PNG involves having to -rely on libpng to decode the image for you, whereas -farbfeld is a completely transparent format. |