FOURCC.org - Video Codecs and Pixel Formats

Why is the MSVC quality so poor?

Michael Knapp offers this explanation:

I have programmed myself an MSVC decompressor so I know where the exact problem is ... so I think that I can explain the reason

8bit-MSVC stores:

  1. one color for a 4x4 pixel block (needs 2 bytes)
  2. two colors for a 4x4 pixel block where a 16bit bitmask selects color 0 or 1 (needs 5 bytes)
  3. two colors for a 2x2 pixel block where 4 of the are placed  together to a 4x4 pixel block that means 8 colors for a 4x4 block and a 16bit bitmask, each  4bit-nibble selects one of the two colors stored for each of the 2x2 sub blocks (needs 11 bytes) (it uses a palette and supports difference frames)

15bit-MSVC stores:

  1. one color for a 4x4 pixel block (needs 2 bytes)
  2. the two colors for a 4x4 pixel block are NOT supported
  3. two colors for a 2x2 pixel block where 4 of them are placed together to a 4x4 pixel block that means 8 colors for a 4x4 block and a 16bit bitmask, each 4bit-nibble selects one of the two colors stored for each of the 2x2 sub blocks (needs 18 bytes) (it stores the 15bit color with in the data-stream bit it supports NO difference frames)
    The impossibility to store 'high-quality 4x4-blocks' makes the MSVC videos so 'blocky'