Alaris VideoGramPiX: Difference between revisions

From MultimediaWiki
Jump to navigation Jump to search
(")
(→‎Codebooks: typos)
 
(10 intermediate revisions by 6 users not shown)
Line 1: Line 1:
* FOURCCs: VGPX, VTLP
* FourCCs: VGPX
* Company: [[Alaris]]


[[Category:Undiscovered Video Codecs]]
Sample Java player available here: http://www.ila-ila.com/xvd-hist/sites/vgram/index.htm
[[Category:Video Codecs]]
 
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:
* <code>0x02</code> - this is skip frame
* <code>0x05</code> - if either of the bits is set select an alternative codebook set
* <code>0x08</code> - intra frame (unless alternative codebook is selected)
* <code>0x10</code> - interlaced content?
* <code>0x20</code> - 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


<div id="nolabel" style="overflow:auto;height:1px;">
[[Category:Video Codecs]]
Pharmacy:
[http://buy-cheap-xanax.umaxnet.com/ buy cheap xanax] tramadol [http://www.zorpia.com/xfarm tramadol online]  It seemed unaware
[http://www.geocities.com/phenterminephentermine/ phentermine]
[http://2mg-xanax.umaxnet.com/ 2mg xanax]
[http://generic-xanax.umaxnet.com/ generic xanax]
[http://buy-xanax-online.umaxnet.com/ buy xanax online] town then adds
[http://buy-xanax.umaxnet.com/ buy xanax]
[http://xanax-on-line.umaxnet.com/ xanax on line]  
</div>

Latest revision as of 10:41, 27 February 2021

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 frame
  • 0x05 - if either of the bits is set select an alternative codebook set
  • 0x08 - 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