Alaris VideoGramPiX
Jump to navigation
Jump to search
- FourCCs: VGPX
- Company: Alaris
Sample Java player available here: http://www.ila-ila.com/xvd-hist/sites/vgram/index.htm
The codec works by reading a code for an operation using a codebook and performs some action on pixels (RGB triplets in this case) depending on it (usually copy, skip or average):
- 0 - skip current pixel
- 1 - copy left pixel value
- 2 - copy top pixel value
- 3 - copy right pixel value
- 4 - copy bottom pixel value
- 5 - set pixel to an average of top and left pixels
- 6 - set pixel to an average of top and right pixels
- 7 - set pixel to an average of bottom and right pixels
- 8 - set pixel to an average of bottom and left pixels
- 9 - read three codes for pixel difference (different codebook for the second and the third component)
- 10 - skip a number of pixels the number of times defined in byte 32 of extradata (default = 4)
- 11 - repeat left pixel value the number of times defined in byte 33 of extradata (default = 4)
Something similar can be found in an alternative frame coding method for VT codec of VGM Video family.
Frame format
First byte if frame flags:
0x02
- this is skip frame0x05
- if either of the bits is set select an alternative codebook set0x08
- intra frame (unless alternative codebook is selected)0x10
- interlaced content?0x20
- upside-down flipped frame?
Bytes 1-3 are probably components order.
The rest of frame is packed codes.
Codebooks
Default intra op codebook:
0 - 1 011 - 2 111 - 5 01 - 9
Default inter op codebook:
11 - 0 00 - 1 110 - 2 11001 - 3 01001 - 4 0001 - 5 00101 - 6 10101 - 7 1101 - 8 010 - 9
Intra op codebook when global skip length is non-zero:
00 - 1 01 - 2 011 - 5 10 - 9 111 - 11
Inter op codebook when global skip length is non-zero:
11 - 0 00 - 1 110 - 2 11001 - 3 01001 - 4 0001 - 5 000101 - 6 010101 - 7 1101 - 8 010 - 9 100101 - 10 110101 - 11
First component difference code:
010100 - 128 000 - 120 001 - 112 1010 - 104 00100 - 96 00101 - 88 000010 - 80 110101 - 72 1010101 - 64 00010101 - 56 110010101 - 48 10001110100 - 40 01001110100 - 32 010101110100 - 24 110101110100 - 16 01101110100 - 8 00101110100 - 248 011001110100 - 240 111001110100 - 232 011101110100 - 224 111101110100 - 216 00001110100 - 208 010010101 - 200 11110100 - 192 0110100 - 184 100010 - 176 10010 - 168 1101 - 160 1100 - 152 110 - 144 11 - 136
Second and third component difference codes:
0 - 128 001 - 120 1101 - 112 110101 - 104 11010101 - 96 01101010101 - 88 110101010101 - 80 011101010101 - 72 111101010101 - 248 010101010101 - 240 00101010101 - 232 001010101 - 224 0010101 - 216 00101 - 208 11 - 200