1 /*************************************************************
2 Copyright (C) 1990, 1991, 1993 Andy C. Hung, all rights reserved.
3 PUBLIC DOMAIN LICENSE: Stanford University Portable Video Research
4 Group. If you use this software, you agree to the following: This
5 program package is purely experimental, and is licensed "as is".
6 Permission is granted to use, modify, and distribute this program
7 without charge for any purpose, provided this license/ disclaimer
8 notice appears in the copies.  No warranty or maintenance is given,
9 either expressed or implied.  In no event shall the author(s) be
10 liable to you or a third party for any special, incidental,
11 consequential, or other damages, arising out of the use or inability
12 to use the program for any purpose (or the loss of data), even if we
13 have been advised of such possibilities.  Any public reference or
14 advertisement of this source code should refer to it as the Portable
15 Video Research Group (PVRG) code, and not by any author(s) (or
16 Stanford University) name.
17 *************************************************************/
18 
19 /*
20 ************************************************************
21 tables.h
22 
23 This file contains the default huffman and quantization tables.
24 
25 ************************************************************
26 */
27 
28 #ifndef TABLES_DONE
29 #define TABLES_DONE
30 
31 static int LuminanceQuantization[] = {
32 16, 11, 10, 16, 24, 40, 51, 61,
33 12, 12, 14, 19, 26, 58, 60, 55,
34 14, 13, 16, 24, 40, 57, 69, 56,
35 14, 17, 22, 29, 51, 87, 80, 62,
36 18, 22, 37, 56, 68, 109, 103, 77,
37 24, 35, 55, 64, 81, 104, 113, 92,
38 49, 64, 78, 87, 103, 121, 120, 101,
39 72, 92, 95, 98, 112, 100, 103, 99};
40 
41 static int ChrominanceQuantization[] = {
42 17, 18, 24, 47, 99, 99, 99, 99,
43 18, 21, 26, 66, 99, 99, 99, 99,
44 24, 26, 56, 99, 99, 99, 99, 99,
45 47, 66, 99, 99, 99, 99, 99, 99,
46 99, 99, 99, 99, 99, 99, 99, 99,
47 99, 99, 99, 99, 99, 99, 99, 99,
48 99, 99, 99, 99, 99, 99, 99, 99,
49 99, 99, 99, 99, 99, 99, 99, 99};
50 
51 static int LuminanceDCBits[] = {
52 0x00, 0x01, 0x05, 0x01, 0x01, 0x01, 0x01, 0x01,
53 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
54 
55 static int LuminanceDCValues[] = {
56 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b};
57 
58 static int ChrominanceDCBits[] = {
59 0x00, 0x03, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
60 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00};
61 
62 static int ChrominanceDCValues[] = {
63 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b};
64 
65 static int LuminanceACBits[] = {
66 0x00, 0x02, 0x01, 0x03, 0x03, 0x02, 0x04, 0x03,
67 0x05, 0x05, 0x04, 0x04, 0x00, 0x00, 0x01, 0x7d};
68 
69 static int LuminanceACValues[] = {
70 0x01, 0x02, 0x03, 0x00, 0x04, 0x11, 0x05, 0x12,
71 0x21, 0x31, 0x41, 0x06, 0x13, 0x51, 0x61, 0x07,
72 0x22, 0x71, 0x14, 0x32, 0x81, 0x91, 0xa1, 0x08,
73 0x23, 0x42, 0xb1, 0xc1, 0x15, 0x52, 0xd1, 0xf0,
74 0x24, 0x33, 0x62, 0x72, 0x82, 0x09, 0x0a, 0x16,
75 0x17, 0x18, 0x19, 0x1a, 0x25, 0x26, 0x27, 0x28,
76 0x29, 0x2a, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39,
77 0x3a, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49,
78 0x4a, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59,
79 0x5a, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69,
80 0x6a, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79,
81 0x7a, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89,
82 0x8a, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98,
83 0x99, 0x9a, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,
84 0xa8, 0xa9, 0xaa, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6,
85 0xb7, 0xb8, 0xb9, 0xba, 0xc2, 0xc3, 0xc4, 0xc5,
86 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xd2, 0xd3, 0xd4,
87 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xe1, 0xe2,
88 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea,
89 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8,
90 0xf9, 0xfa};
91 
92 static int ChrominanceACBits[] = {
93 0x00, 0x02, 0x01, 0x02, 0x04, 0x04, 0x03, 0x04,
94 0x07, 0x05, 0x04, 0x04, 0x00, 0x01, 0x02, 0x77};
95 
96 static int ChrominanceACValues[] = {
97 0x00, 0x01, 0x02, 0x03, 0x11, 0x04, 0x05, 0x21,
98 0x31, 0x06, 0x12, 0x41, 0x51, 0x07, 0x61, 0x71,
99 0x13, 0x22, 0x32, 0x81, 0x08, 0x14, 0x42, 0x91,
100 0xa1, 0xb1, 0xc1, 0x09, 0x23, 0x33, 0x52, 0xf0,
101 0x15, 0x62, 0x72, 0xd1, 0x0a, 0x16, 0x24, 0x34,
102 0xe1, 0x25, 0xf1, 0x17, 0x18, 0x19, 0x1a, 0x26,
103 0x27, 0x28, 0x29, 0x2a, 0x35, 0x36, 0x37, 0x38,
104 0x39, 0x3a, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48,
105 0x49, 0x4a, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58,
106 0x59, 0x5a, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68,
107 0x69, 0x6a, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78,
108 0x79, 0x7a, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
109 0x88, 0x89, 0x8a, 0x92, 0x93, 0x94, 0x95, 0x96,
110 0x97, 0x98, 0x99, 0x9a, 0xa2, 0xa3, 0xa4, 0xa5,
111 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xb2, 0xb3, 0xb4,
112 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xc2, 0xc3,
113 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xd2,
114 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda,
115 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9,
116 0xea, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8,
117 0xf9, 0xfa};
118 
119 #endif
120