VC-1 Tables: Difference between revisions

From MultimediaWiki
Jump to navigation Jump to search
m (mention Norm-6 VLC table)
(added transform tables)
Line 66: Line 66:


== Norm-6 VLC Table ==
== Norm-6 VLC Table ==
== Transform Tables ==
These tables pertain to [[Understanding VC-1#vc1ITRANS_InverseTransform_AnnexA1|vc1ITRANS_InverseTransform_AnnexA1]].
=== Transform Matrix 8x8 ===
  int transform_matrix_8x8[8][8] =
  {
    {  12,  12,  12,  12,  12,  12,  12,  12 },
    {  16,  15,  9,  4,  -4,  -9, -15, -16 },
    {  16,  6,  -6, -16, -16,  -6,  6,  16 },
    {  15,  -4, -16,  -9,  9,  16,  4, -15 },
    {  12, -12, -12,  12,  12, -12, -12,  12 },
    {  9, -16,  4,  15, -15,  -4,  16,  -9 },
    {  6, -16,  16,  -6,  -6,  16, -16,  6 },
    {  4,  -9,  15, -16,  16, -15,  9,  -4 }
  };
=== Transform Matrix 8x8 ===
  int transform_matrix_4x4[4][4] =
  {
    {  17,  17,  17,  17 },
    {  22,  10, -10, -22 },
    {  17, -17, -17,  17 },
    {  10, -22,  22, -10 }
  };
=== Constants 8 ===
  int constants_8 = { 0,  0,  0,  0,  1,  1,  1,  1 };
=== Constants 4 ===
  int constants_4 = { 0,  0,  0,  0 };

Revision as of 18:18, 16 April 2006

(Part of Understanding VC-1)

Block Transform Types

  • 0: 8x8 transform
  • 1: 8x4 transform
  • 2: 4x8 transform
  • 3: 4x4 transform

Scaling Modes

  • 0: 1x1 = no scaling
  • 1: 2x1 = horizontal scaling
  • 2: 1x2 = vertical scaling
  • 3: 2x2 = horizontal and vertical scaling

Motion Vector Ranges

  • Range #0:
    • x component range = -64..63
    • y component range = -32..31
  • Range #1:
    • x component range = -128..127
    • y component range = -64..63
  • Range #2:
    • x component range = -512..511
    • y component range = -128..127
  • Range #3:
    • x component range = -1024..1023
    • y component range = -256..255

Motion Vector Range VLC Table

code length   VLC    range #
    1          0        0
    2          2        1
    3          6        2
    3          7        3

B Fraction VLC Table

P-Frame Low Rate Motion Vector Mode Table

P-Frame High Rate Motion Vector Mode Table

Motion Vector Diff VLC Tables

Table 0

Table 1

Table 2

Table 3

Coded Block Pattern VLC Tables

Table 0

Table 1

Table 2

Table 3

Bitplane I-mode VLC Table

Norm-2 VLC Table

Norm-6 VLC Table

Transform Tables

These tables pertain to vc1ITRANS_InverseTransform_AnnexA1.

Transform Matrix 8x8

 int transform_matrix_8x8[8][8] = 
 {
   {  12,  12,  12,  12,  12,  12,  12,  12 },
   {  16,  15,   9,   4,  -4,  -9, -15, -16 },
   {  16,   6,  -6, -16, -16,  -6,   6,  16 },
   {  15,  -4, -16,  -9,   9,  16,   4, -15 },
   {  12, -12, -12,  12,  12, -12, -12,  12 },
   {   9, -16,   4,  15, -15,  -4,  16,  -9 },
   {   6, -16,  16,  -6,  -6,  16, -16,   6 },
   {   4,  -9,  15, -16,  16, -15,   9,  -4 }
 };

Transform Matrix 8x8

 int transform_matrix_4x4[4][4] = 
 {
   {  17,  17,  17,  17 },
   {  22,  10, -10, -22 },
   {  17, -17, -17,  17 },
   {  10, -22,  22, -10 }
 };

Constants 8

 int constants_8 = { 0,   0,   0,   0,   1,   1,   1,   1 };

Constants 4

 int constants_4 = { 0,   0,   0,   0 };