jpeg_tables.h

00001 #pragma once
00002 
00003 /* Tables */
00004 
00005 static unsigned char quanttbl[2][64] = 
00006 {
00007         {
00008                 16, 
00009                 11, 12, 
00010                 14, 12, 10, 
00011                 16, 14, 13, 14, 
00012                 18, 17, 16, 19, 24,
00013                 40, 26, 24, 22, 22, 24,
00014                 49, 35, 37, 29, 40, 58, 51,
00015                 61, 30, 57, 51, 56, 55, 64, 72, 
00016                 92, 78, 64, 68, 87, 69, 55,
00017                 56, 80, 109, 81, 87, 95,
00018                 98, 103, 104, 103, 62,
00019                 77, 113, 121, 112,
00020                 100, 120, 92, 
00021                 101, 103,
00022                 99
00023         },
00024         {
00025                 17,
00026                 18, 18,
00027                 24, 21, 24,
00028                 47, 26, 26, 47, 
00029                 99, 66, 56, 66, 99, 
00030                 99, 99, 99, 99, 99, 99,
00031                 99, 99, 99, 99, 99, 99, 99,
00032                 99, 99, 99, 99, 99, 99, 99, 99,
00033                 99, 99, 99, 99, 99, 99, 99,
00034                 99, 99, 99, 99, 99, 99,
00035                 99, 99, 99, 99, 99,
00036                 99, 99, 99, 99,
00037                 99, 99, 99,
00038                 99, 99,
00039                 99
00040         }
00041 };
00042 
00043 static unsigned char zigzagU[64] = 
00044 {
00045         0, 
00046         1, 0, 
00047         0, 1, 2, 
00048         3, 2, 1, 0, 
00049         0, 1, 2, 3, 4, 
00050         5, 4, 3, 2, 1, 0, 
00051         0, 1, 2, 3, 4, 5, 6,
00052         7, 6, 5, 4, 3, 2, 1, 0, 
00053         1, 2, 3, 4, 5, 6, 7,
00054         7, 6, 5, 4, 3, 2,
00055         3, 4, 5, 6, 7,
00056         7, 6, 5, 4,
00057         5, 6, 7,
00058         7, 6, 
00059         7,
00060 };
00061 
00062 static unsigned char zigzagV[64] = 
00063 {
00064         0, 
00065         0, 1,
00066         2, 1, 0,
00067         0, 1, 2, 3,
00068         4, 3, 2, 1, 0,
00069         0, 1, 2, 3, 4, 5,
00070         6, 5, 4, 3, 2, 1, 0,
00071         0, 1, 2, 3, 4, 5, 6, 7,
00072         7, 6, 5, 4, 3, 2, 1,
00073         2, 3, 4, 5, 6, 7,
00074         7, 6, 5, 4, 3,
00075         4, 5, 6, 7,
00076         7, 6, 5,
00077         6, 7,
00078         7,
00079 };
00080 
00081 static unsigned short DCVLC[2][12] = 
00082 {
00083         {0, 2, 3, 4, 5, 6, 14, 30, 62, 126, 254, 510},
00084         {0, 1, 2, 6, 14, 30, 62, 126, 254, 510, 1022, 2046}
00085 };
00086 
00087 static unsigned char DCVLC_Size[2][12] = 
00088 {
00089         {2, 3, 3, 3, 3, 3, 4, 5, 6, 7, 8, 9},
00090         {2, 2, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}
00091 };
00092 
00093 static unsigned char DCVLC_NumByLength[2][16] = 
00094 {
00095         {0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0},
00096         {0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0}
00097 };
00098 
00099 static unsigned short ACVLC[2][16][11] = 
00100 {
00101         {
00102                 {10, 0, 1, 4, 11, 26, 120, 248, 1014, 65410, 65410},
00103                 {0, 12, 27, 121, 502, 2038, 65412, 65413, 65414, 65415, 65416},
00104                 {0, 28, 249, 1015, 4084, 65417, 65418, 65419, 65420, 65421, 65422},
00105                 {0, 58, 503, 8181, 65423, 65424, 65425, 65426, 65427, 65428, 65429},
00106                 {0, 59, 1016, 65430, 65431, 65432, 65433, 65434, 65435, 65436, 65437},
00107                 {0, 122, 2039, 65438, 65439, 65440, 65441, 65442, 65443, 65444, 65445},
00108                 {0, 123, 4086, 65446, 65447, 65448, 65449, 65450, 65451, 65452, 65453},
00109                 {0, 250, 4087, 65454, 65455, 65456, 65457, 65458, 65459, 65460, 65461},
00110                 {0, 504, 32704, 65462, 65463, 65464, 65465, 65466, 65467, 65468, 65469},
00111                 {0, 505, 65470, 65471, 65472, 65473, 65474, 65475, 65476, 65477, 65478},
00112                 {0, 506, 65479, 65480, 65481, 65482, 65483, 65484, 65485, 65486, 65487},
00113                 {0, 1017, 65488, 65489, 65490, 65491, 65492, 65493, 65494, 65495, 65496},
00114                 {0, 1018, 65497, 65498, 65499, 65500, 65501, 65502, 65503, 65504, 65505},
00115                 {0, 2040, 65506, 65507, 65508, 65509, 65510, 65511, 65512, 65513, 65514},
00116                 {0, 65515, 65516, 65517, 65518, 65519, 65520, 65521, 65522, 65523, 65524},
00117                 {2041, 65525, 65526, 65527, 65528, 65529, 65530, 65531, 65532, 65533, 65534}
00118         },
00119         {
00120                 {0, 1, 4, 10, 24, 25, 56, 120, 500, 1014, 4084},
00121                 {0, 11, 57, 246, 501, 2038, 4085, 65416, 65417, 65418, 65419},
00122                 {0, 26, 247, 1015, 4086, 32706, 65420, 65421, 65422, 65423, 65424},
00123                 {0, 27, 248, 1016, 4087, 65425, 65426, 65427, 65428, 65429, 65430},
00124                 {0, 58, 502, 65431, 65432, 65433, 65434, 65435, 65436, 65437, 65438},
00125                 {0, 59, 1017, 65439, 65440, 65441, 65442, 65443, 65444, 65445, 65446},
00126                 {0, 121, 2039, 65447, 65448, 65449, 65450, 65451, 65452, 65453, 65454},
00127                 {0, 122, 2040, 65455, 65456, 65457, 65458, 65459, 65460, 65461, 65462},
00128                 {0, 249, 65463, 65464, 65465, 65466, 65467, 65468, 65469, 65470, 65471},
00129                 {0, 503, 65472, 65473, 65474, 65475, 65476, 65477, 65478, 65479, 65480},
00130                 {0, 504, 65481, 65482, 65483, 65484, 65485, 65486, 65487, 65488, 65489},
00131                 {0, 505, 65490, 65491, 65492, 65493, 65494, 65495, 65496, 65497, 65498},
00132                 {0, 506, 65499, 65500, 65501, 65502, 65503, 65504, 65505, 65506, 65507},
00133                 {0, 2041, 65508, 65509, 65510, 65511, 65512, 65513, 65514, 65515, 65516},
00134                 {0, 16352, 65517, 65518, 65519, 65520, 65521, 65522, 65523, 65524, 65525},
00135                 {1018, 32707, 65526, 65527, 65528, 65529, 65530, 65531, 65532, 65533, 65534}
00136         }
00137 };
00138 
00139 static unsigned char ACVLC_Size[2][16][11] = 
00140 {
00141         {
00142                 {4, 2, 2, 3, 4, 5, 7, 8, 10, 16, 16},
00143                 {0, 4, 5, 7, 9, 11, 16, 16, 16, 16, 16},
00144                 {0, 5, 8, 10, 12, 16, 16, 16, 16, 16, 16},
00145                 {0, 6, 9, 12, 16, 16, 16, 16, 16, 16, 16},
00146                 {0, 6, 10, 16, 16, 16, 16, 16, 16, 16, 16},
00147                 {0, 7, 11, 16, 16, 16, 16, 16, 16, 16, 16},
00148                 {0, 7, 12, 16, 16, 16, 16, 16, 16, 16, 16},
00149                 {0, 8, 12, 16, 16, 16, 16, 16, 16, 16, 16},
00150                 {0, 9, 15, 16, 16, 16, 16, 16, 16, 16, 16},
00151                 {0, 9, 16, 16, 16, 16, 16, 16, 16, 16, 16},
00152                 {0, 9, 16, 16, 16, 16, 16, 16, 16, 16, 16},
00153                 {0, 10, 16, 16, 16, 16, 16, 16, 16, 16, 16},
00154                 {0, 10, 16, 16, 16, 16, 16, 16, 16, 16, 16},
00155                 {0, 11, 16, 16, 16, 16, 16, 16, 16, 16, 16},
00156                 {0, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16},
00157                 {11, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16}
00158         },
00159         {
00160                 {2, 2, 3, 4, 5, 5, 6, 7, 9, 10, 12},
00161                 {0, 4, 6, 8, 9, 11, 12, 16, 16, 16, 16},
00162                 {0, 5, 8, 10, 12, 15, 16, 16, 16, 16, 16},
00163                 {0, 5, 8, 10, 12, 16, 16, 16, 16, 16, 16},
00164                 {0, 6, 9, 16, 16, 16, 16, 16, 16, 16, 16},
00165                 {0, 6, 10, 16, 16, 16, 16, 16, 16, 16, 16},
00166                 {0, 7, 11, 16, 16, 16, 16, 16, 16, 16, 16},
00167                 {0, 7, 11, 16, 16, 16, 16, 16, 16, 16, 16},
00168                 {0, 8, 16, 16, 16, 16, 16, 16, 16, 16, 16},
00169                 {0, 9, 16, 16, 16, 16, 16, 16, 16, 16, 16},
00170                 {0, 9, 16, 16, 16, 16, 16, 16, 16, 16, 16},
00171                 {0, 9, 16, 16, 16, 16, 16, 16, 16, 16, 16},
00172                 {0, 9, 16, 16, 16, 16, 16, 16, 16, 16, 16},
00173                 {0, 11, 16, 16, 16, 16, 16, 16, 16, 16, 16},
00174                 {0, 14, 16, 16, 16, 16, 16, 16, 16, 16, 16},
00175                 {10, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16}
00176         }
00177 };
00178 
00179 static unsigned char ACVLC_NumByLength[2][16] = 
00180 {
00181         {0, 2, 1, 3, 3, 2, 4, 3, 5, 5, 4, 4, 0, 0, 1, 125},
00182         {0, 2, 1, 2, 4, 4, 3, 4, 7, 5, 4, 4, 0, 1, 2, 119}
00183 };
00184 
00185 static unsigned char ACVLC_Data[2][162] = 
00186 {
00187         {
00188                 0x01, 0x02, 0x03, 0x00, 0x04, 0x11, 0x05, 0x12, 
00189                 0x21, 0x31, 0x41, 0x06, 0x13, 0x51, 0x61, 0x07,
00190                 0x22, 0x71, 0x14, 0x32, 0x81, 0x91, 0xA1, 0x08,
00191                 0x23, 0x42, 0xB1, 0xC1, 0x15, 0x52, 0xD1, 0xF0,
00192                 0x24, 0x33, 0x62, 0x72, 0x82, 0x09, 0x0A, 0x16, 
00193                 0x17, 0x18, 0x19, 0x1A, 0x25, 0x26, 0x27, 0x28,
00194                 0x29, 0x2A, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39,
00195                 0x3A, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49,
00196                 0x4A, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59,
00197                 0x5A, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69,
00198                 0x6A, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79,
00199                 0x7A, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89,
00200                 0x8A, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98,
00201                 0x99, 0x9A, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7,
00202                 0xA8, 0xA9, 0xAA, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6,
00203                 0xB7, 0xB8, 0xB9, 0xBA, 0xC2, 0xC3, 0xC4, 0xC5,
00204                 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xD2, 0xD3, 0xD4,
00205                 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xE1, 0xE2,
00206                 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA,
00207                 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8,
00208                 0xF9, 0xFA
00209         },
00210         {
00211                 0x00, 0x01, 0x02, 0x03, 0x11, 0x04, 0x05, 0x21, 
00212                 0x31, 0x06, 0x12, 0x41, 0x51, 0x07, 0x61, 0x71,
00213                 0x13, 0x22, 0x32, 0x81, 0x08, 0x14, 0x42, 0x91, 
00214                 0xA1, 0xB1, 0xC1, 0x09, 0x23, 0x33, 0x52, 0xF0,
00215                 0x15, 0x62, 0x72, 0xD1, 0x0A, 0x16, 0x24, 0x34,
00216                 0xE1, 0x25, 0xF1, 0x17, 0x18, 0x19, 0x1A, 0x26,
00217                 0x27, 0x28, 0x29, 0x2A, 0x35, 0x36, 0x37, 0x38, 
00218                 0x39, 0x3A, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48,
00219                 0x49, 0x4A, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58,
00220                 0x59, 0x5A, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68,
00221                 0x69, 0x6A, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78,
00222                 0x79, 0x7A, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
00223                 0x88, 0x89, 0x8A, 0x92, 0x93, 0x94, 0x95, 0x96,
00224                 0x97, 0x98, 0x99, 0x9A, 0xA2, 0xA3, 0xA4, 0xA5,
00225                 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xB2, 0xB3, 0xB4,
00226                 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xC2, 0xC3,
00227                 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xD2,
00228                 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA,
00229                 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9,
00230                 0xEA, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8,
00231                 0xF9, 0xFA
00232         }
00233 };

Generated on Tue Dec 13 14:46:51 2005 for guliverkli by  doxygen 1.4.5