(Excerpts From) A Vernacular of File Formats

Editor's note: The following text and images are selected excerpts from Rosa's recent self-published PDF A Vernacular of File Formats: A Guide to Databend Compression Design. Be sure to check out the entire document and/or Rosa's workshops at the upcoming In/Out and GLI.TC/H events in New York City and Chicago in September.

'Glitches are hot; proof can be found on MTV, Flickr, in the club and in the bookstore. While the coffee table book Glitch: Designing Imperfection (2009) has introduced the glitch design aesthetic to the world of latte drinking designers, and Kanye West used glitches to sing about his imperfect love life, the awkward, shy and physically ugly celebrate under the header "Glitched: Nerdcore for life".'

Glitch has transformed from cool to hot. Its no more then a brightly colored bubblegum wrapper that doesn't ask for any involvement, or offers any stimulus. Inside I find gum that I keep chewing, hoping for some new explosion of good taste. But the more I chew, the less tasty / rubbery it gets. Glitch design fulfills an average, imperfect stereotype, a filter or commodity that echoes a "medium is the message" standard.

Above: Joint Photographic Experts Group (.JPG) (lossy), severely downsampled so that the 8x8 macroblocks (and quantization error) are apparent. (irreversible databend)

A JPG compression consists of 6 subsequent steps:

  1. Color space transformation
  2. Downsampling
  3. Block splitting
  4. Discrete cosine transform
  5. Quantization
  6. Entropy coding

Rosa Menkman Glitch 2

Above: 8 × 8 DCT basis patterns of a JPG.

1. Initially, images have to be transformed from the RGB color space to another color space (called Y′CbCr), that consists of three components that are handled separately; the Y (luma or brightness) and the Cb and Cr values (chroma or color values, which are divided into hue and saturation).

2. Because the human eye doesnʼt perceives small differences within the Cb and Cr space very well, these elements are downsampled.

3. After the color space transformation, the image is split into tiles or macroblocks. Rectangular regions of the image that are transformed and encoded separately.

Rosa Menkman Glitch 3

4. Next, a Discrete Cosine Transform (which works similar to the Fourier Transform function, exploited in datamoshing and macroblock studies) is used to create a frequency spectrum, to transform the 8×8 blocks to a combination of the 64 two-dimensional DCT basis functions or patterns (as differentiated by the red lines).

Rosa Menkman glitch 3.5

Above: high frequency mapping from which basic values are derived.

5. During the Quantization step, the highest brightness frequency variations become a base line (or 0-value), while small positive and negative frequency differentiations get a value, which take many fewer bits to represent.

Rosa Menkman Glitch 4

Above: low res JPG, Baseline standard. (irreversible databend)

6. finally, entropy coding is applied. Entropy coding is a special form of lossless data compression that involves arranging the image components in a "zigzag" order. This allows the quantized coefficient table to be rewritten in a zigzag order to a sequence of frequencies. A run-length encoding (RLE) algorithm groups similar frequencies together and after that, via "Huffman coding" organizes what is left.

Because the RGB color values are described in such a complex algorithms, some random data replacement often results into dramatic discoloration and other effects.