xref: /aosp_15_r20/external/libmpeg2/common/impeg2_globals.c (revision a97c2a1f0a796dc32bed80d3353c69c5fc07c750)
1*a97c2a1fSXin Li /******************************************************************************
2*a97c2a1fSXin Li  *
3*a97c2a1fSXin Li  * Copyright (C) 2015 The Android Open Source Project
4*a97c2a1fSXin Li  *
5*a97c2a1fSXin Li  * Licensed under the Apache License, Version 2.0 (the "License");
6*a97c2a1fSXin Li  * you may not use this file except in compliance with the License.
7*a97c2a1fSXin Li  * You may obtain a copy of the License at:
8*a97c2a1fSXin Li  *
9*a97c2a1fSXin Li  * http://www.apache.org/licenses/LICENSE-2.0
10*a97c2a1fSXin Li  *
11*a97c2a1fSXin Li  * Unless required by applicable law or agreed to in writing, software
12*a97c2a1fSXin Li  * distributed under the License is distributed on an "AS IS" BASIS,
13*a97c2a1fSXin Li  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14*a97c2a1fSXin Li  * See the License for the specific language governing permissions and
15*a97c2a1fSXin Li  * limitations under the License.
16*a97c2a1fSXin Li  *
17*a97c2a1fSXin Li  *****************************************************************************
18*a97c2a1fSXin Li  * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore
19*a97c2a1fSXin Li */
20*a97c2a1fSXin Li #include <stdio.h>
21*a97c2a1fSXin Li #include "iv_datatypedef.h"
22*a97c2a1fSXin Li #include "iv.h"
23*a97c2a1fSXin Li #include "impeg2_buf_mgr.h"
24*a97c2a1fSXin Li #include "impeg2_disp_mgr.h"
25*a97c2a1fSXin Li #include "impeg2_defs.h"
26*a97c2a1fSXin Li #include "impeg2_platform_macros.h"
27*a97c2a1fSXin Li #include "impeg2_globals.h"
28*a97c2a1fSXin Li 
29*a97c2a1fSXin Li /* Table for converting the quantizer_scale_code to quantizer_scale */
30*a97c2a1fSXin Li const UWORD8 gau1_impeg2_non_linear_quant_scale[] =
31*a97c2a1fSXin Li {
32*a97c2a1fSXin Li     0, 1, 2, 3, 4, 5, 6, 7,
33*a97c2a1fSXin Li     8,10,12,14,16,18,20,22,
34*a97c2a1fSXin Li     24,28,32,36,40,44,48,52,
35*a97c2a1fSXin Li     56,64,72,80,88,96,104,112
36*a97c2a1fSXin Li };
37*a97c2a1fSXin Li 
38*a97c2a1fSXin Li 
39*a97c2a1fSXin Li /* Default quantizer matrix to be used for intra blocks */
40*a97c2a1fSXin Li const UWORD8 gau1_impeg2_intra_quant_matrix_default[] =
41*a97c2a1fSXin Li {
42*a97c2a1fSXin Li     8, 16, 19, 22, 26, 27, 29, 34,
43*a97c2a1fSXin Li     16, 16, 22, 24, 27, 29, 34, 37,
44*a97c2a1fSXin Li     19, 22, 26, 27, 29, 34, 34, 38,
45*a97c2a1fSXin Li     22, 22, 26, 27, 29, 34, 37, 40,
46*a97c2a1fSXin Li     22, 26, 27, 29, 32, 35, 40, 48,
47*a97c2a1fSXin Li     26, 27, 29, 32, 35, 40, 48, 58,
48*a97c2a1fSXin Li     26, 27, 29, 34, 38, 46, 56, 69,
49*a97c2a1fSXin Li     27, 29, 35, 38, 46, 56, 69, 83
50*a97c2a1fSXin Li };
51*a97c2a1fSXin Li 
52*a97c2a1fSXin Li /* Default quantizer matrix to be used for inter blocks */
53*a97c2a1fSXin Li const UWORD8 gau1_impeg2_inter_quant_matrix_default[] =
54*a97c2a1fSXin Li {
55*a97c2a1fSXin Li     16,16,16,16,16,16,16,16,
56*a97c2a1fSXin Li     16,16,16,16,16,16,16,16,
57*a97c2a1fSXin Li     16,16,16,16,16,16,16,16,
58*a97c2a1fSXin Li     16,16,16,16,16,16,16,16,
59*a97c2a1fSXin Li     16,16,16,16,16,16,16,16,
60*a97c2a1fSXin Li     16,16,16,16,16,16,16,16,
61*a97c2a1fSXin Li     16,16,16,16,16,16,16,16,
62*a97c2a1fSXin Li     16,16,16,16,16,16,16,16
63*a97c2a1fSXin Li };
64*a97c2a1fSXin Li 
65*a97c2a1fSXin Li /* Table to perform inverse scan when the scan direction is zigzag */
66*a97c2a1fSXin Li const UWORD8 gau1_impeg2_inv_scan_zig_zag[] =
67*a97c2a1fSXin Li {
68*a97c2a1fSXin Li      0,  1,  8, 16,  9,  2,  3, 10,
69*a97c2a1fSXin Li     17, 24, 32, 25, 18, 11,  4,  5,
70*a97c2a1fSXin Li     12, 19, 26, 33, 40, 48, 41, 34,
71*a97c2a1fSXin Li     27, 20, 13,  6,  7, 14, 21, 28,
72*a97c2a1fSXin Li     35, 42, 49, 56, 57, 50, 43, 36,
73*a97c2a1fSXin Li     29, 22, 15, 23, 30, 37, 44, 51,
74*a97c2a1fSXin Li     58, 59, 52, 45, 38, 31, 39, 46,
75*a97c2a1fSXin Li     53, 60, 61, 54, 47, 55, 62, 63
76*a97c2a1fSXin Li };
77*a97c2a1fSXin Li 
78*a97c2a1fSXin Li /*  Table to perform inverse scan when the direction of scanning is vertical */
79*a97c2a1fSXin Li const UWORD8 gau1_impeg2_inv_scan_vertical[] =
80*a97c2a1fSXin Li {
81*a97c2a1fSXin Li     0, 8, 16, 24, 1, 9, 2, 10,
82*a97c2a1fSXin Li     17, 25, 32, 40, 48, 56, 57, 49,
83*a97c2a1fSXin Li     41, 33, 26, 18, 3, 11, 4, 12,
84*a97c2a1fSXin Li     19, 27, 34, 42, 50, 58, 35, 43,
85*a97c2a1fSXin Li     51, 59, 20, 28, 5, 13, 6, 14,
86*a97c2a1fSXin Li     21, 29, 36, 44, 52, 60, 37, 45,
87*a97c2a1fSXin Li     53, 61, 22, 30, 7, 15, 23, 31,
88*a97c2a1fSXin Li     38, 46, 54, 62, 39, 47, 55, 63
89*a97c2a1fSXin Li };
90*a97c2a1fSXin Li 
91*a97c2a1fSXin Li /*****************************************************************************/
92*a97c2a1fSXin Li /* Table that indicate which interpolation  type is to used                  */
93*a97c2a1fSXin Li /*****************************************************************************/
94*a97c2a1fSXin Li /* Chroma when motion vector is positive */
95*a97c2a1fSXin Li const UWORD16 gau2_impeg2_chroma_interp_mv[][16] =
96*a97c2a1fSXin Li {
97*a97c2a1fSXin Li     /* Pos X Pos Y */
98*a97c2a1fSXin Li     {
99*a97c2a1fSXin Li         0,  0,  1,  1,
100*a97c2a1fSXin Li         0,  0,  1,  1,
101*a97c2a1fSXin Li         2,  2,  3,  3,
102*a97c2a1fSXin Li         2,  2,  3,  3
103*a97c2a1fSXin Li     },
104*a97c2a1fSXin Li     /* Neg X Pos Y */
105*a97c2a1fSXin Li     {
106*a97c2a1fSXin Li         0,  1,  1,  0,
107*a97c2a1fSXin Li         0,  1,  1,  0,
108*a97c2a1fSXin Li         2,  3,  3,  2,
109*a97c2a1fSXin Li         2,  3,  3,  2
110*a97c2a1fSXin Li     },
111*a97c2a1fSXin Li     /* Pos X Neg Y */
112*a97c2a1fSXin Li     {
113*a97c2a1fSXin Li         0,  0,  1,  1,
114*a97c2a1fSXin Li         2,  2,  3,  3,
115*a97c2a1fSXin Li         2,  2,  3,  3,
116*a97c2a1fSXin Li         0,  0,  1,  1
117*a97c2a1fSXin Li     },
118*a97c2a1fSXin Li     /* Neg X Neg Y */
119*a97c2a1fSXin Li     {
120*a97c2a1fSXin Li         0,  1,  1, 0,
121*a97c2a1fSXin Li         2,  3,  3, 2,
122*a97c2a1fSXin Li         2,  3,  3, 2,
123*a97c2a1fSXin Li         0,  1,  1, 0
124*a97c2a1fSXin Li     }
125*a97c2a1fSXin Li };
126*a97c2a1fSXin Li /*****************************************************************************/
127*a97c2a1fSXin Li /* Input #1 Offset in bytes                                                  */
128*a97c2a1fSXin Li /*****************************************************************************/
129*a97c2a1fSXin Li /* Chroma */
130*a97c2a1fSXin Li const UWORD16 gau2_impeg2_chroma_interp_inp1[][16] =
131*a97c2a1fSXin Li {
132*a97c2a1fSXin Li     /* Pos X Pos Y */
133*a97c2a1fSXin Li     {
134*a97c2a1fSXin Li         0,  0,  0,  0,
135*a97c2a1fSXin Li         0,  0,  0,  0,
136*a97c2a1fSXin Li         0,  0,  0,  0,
137*a97c2a1fSXin Li         0,  0,  0,  0
138*a97c2a1fSXin Li     },
139*a97c2a1fSXin Li     /* Neg X Pos Y */
140*a97c2a1fSXin Li     {
141*a97c2a1fSXin Li         0,  0,  0,  4,
142*a97c2a1fSXin Li         0,  0,  0,  4,
143*a97c2a1fSXin Li         0,  0,  0,  4,
144*a97c2a1fSXin Li         0,  0,  0,  4
145*a97c2a1fSXin Li     },
146*a97c2a1fSXin Li     /* Pos X Neg Y */
147*a97c2a1fSXin Li     {
148*a97c2a1fSXin Li         0,  0,  0,  0,
149*a97c2a1fSXin Li         0,  0,  0,  0,
150*a97c2a1fSXin Li         0,  0,  0,  0,
151*a97c2a1fSXin Li         72, 72, 72, 72
152*a97c2a1fSXin Li     },
153*a97c2a1fSXin Li     /* Neg X Neg Y */
154*a97c2a1fSXin Li     {
155*a97c2a1fSXin Li         0,  0,  0,  4,
156*a97c2a1fSXin Li         0,  0,  0,  4,
157*a97c2a1fSXin Li         0,  0,  0,  4,
158*a97c2a1fSXin Li         72, 72, 72, 76
159*a97c2a1fSXin Li     }
160*a97c2a1fSXin Li };
161*a97c2a1fSXin Li /* Luma */
162*a97c2a1fSXin Li const UWORD16 gau2_impeg2_luma_interp_inp1[] =
163*a97c2a1fSXin Li {
164*a97c2a1fSXin Li     1,  1,  3,  3,
165*a97c2a1fSXin Li     1,  1,  3,  3,
166*a97c2a1fSXin Li     37, 37, 39, 39,
167*a97c2a1fSXin Li     37, 37, 39, 39
168*a97c2a1fSXin Li };
169*a97c2a1fSXin Li /*****************************************************************************/
170*a97c2a1fSXin Li /* Input #2 Offset from Input #1 in bytes                                    */
171*a97c2a1fSXin Li /*****************************************************************************/
172*a97c2a1fSXin Li /*
173*a97c2a1fSXin Li     FXFY  0,
174*a97c2a1fSXin Li     HXFY  2,
175*a97c2a1fSXin Li     FXHY 36,
176*a97c2a1fSXin Li     HXHY 36
177*a97c2a1fSXin Li */
178*a97c2a1fSXin Li const UWORD16 gau2_impeg2_luma_interp_inp2[] =
179*a97c2a1fSXin Li {
180*a97c2a1fSXin Li       0,  2,  0,  2,
181*a97c2a1fSXin Li      36, 36, 36, 36,
182*a97c2a1fSXin Li       0,  2,  0,  2,
183*a97c2a1fSXin Li      36, 36, 36, 36
184*a97c2a1fSXin Li };
185*a97c2a1fSXin Li const UWORD16 gau2_impeg2_chroma_interp_inp2[] =
186*a97c2a1fSXin Li {
187*a97c2a1fSXin Li     /* FXFY */
188*a97c2a1fSXin Li     0,
189*a97c2a1fSXin Li     /* HXFY */
190*a97c2a1fSXin Li     4,
191*a97c2a1fSXin Li     /* FXHY */
192*a97c2a1fSXin Li     72,
193*a97c2a1fSXin Li     /* HXHY */
194*a97c2a1fSXin Li     72
195*a97c2a1fSXin Li };
196*a97c2a1fSXin Li 
197*a97c2a1fSXin Li /*****************************************************************************/
198*a97c2a1fSXin Li /* Corresponds to Table 6-4 frame_rate_value  of the standard                */
199*a97c2a1fSXin Li /*****************************************************************************/
200*a97c2a1fSXin Li /*
201*a97c2a1fSXin Li     frame_rate_code frame_rate_value
202*a97c2a1fSXin Li 
203*a97c2a1fSXin Li     0000            Forbidden
204*a97c2a1fSXin Li     0001            24 000 � 1001
205*a97c2a1fSXin Li     0010            24
206*a97c2a1fSXin Li     0011            25
207*a97c2a1fSXin Li     0100            30 000 � 1001
208*a97c2a1fSXin Li     0101            30
209*a97c2a1fSXin Li     0110            50
210*a97c2a1fSXin Li     0111            60 000 � 1001
211*a97c2a1fSXin Li     1000            60
212*a97c2a1fSXin Li     1001            Reserved
213*a97c2a1fSXin Li     ....
214*a97c2a1fSXin Li     1111            Reserved
215*a97c2a1fSXin Li */
216*a97c2a1fSXin Li const UWORD16 gau2_impeg2_frm_rate_code[][2] =
217*a97c2a1fSXin Li {
218*a97c2a1fSXin Li     {1    ,    1}, /* Forbidden */
219*a97c2a1fSXin Li     {24000, 1001},
220*a97c2a1fSXin Li     {24000, 1000},
221*a97c2a1fSXin Li     {25000, 1000},
222*a97c2a1fSXin Li     {30000, 1001},
223*a97c2a1fSXin Li     {30000, 1000},
224*a97c2a1fSXin Li     {50000, 1000},
225*a97c2a1fSXin Li     {60000, 1001},
226*a97c2a1fSXin Li     {60000, 1000}
227*a97c2a1fSXin Li     /* Rest reserved */
228*a97c2a1fSXin Li };
229*a97c2a1fSXin Li 
230*a97c2a1fSXin Li const WORD16 gai2_impeg2_idct_q15[] =
231*a97c2a1fSXin Li {
232*a97c2a1fSXin Li     23170,    23170,    23170,    23170,    23170,    23170,    23170,    23170,
233*a97c2a1fSXin Li     32138,    27246,    18205,     6393,    -6393,   -18205,   -27246,   -32138,
234*a97c2a1fSXin Li     30274,    12540,   -12540,   -30274,   -30274,   -12540,    12540,    30274,
235*a97c2a1fSXin Li     27246,    -6393,   -32138,   -18205,    18205,    32138,     6393,   -27246,
236*a97c2a1fSXin Li     23170,   -23170,   -23170,    23170,    23170,   -23170,   -23170,    23170,
237*a97c2a1fSXin Li     18205,   -32138,     6393,    27246,   -27246,    -6393,    32138,   -18205,
238*a97c2a1fSXin Li     12540,   -30274,    30274,   -12540,   -12540,    30274,   -30274,    12540,
239*a97c2a1fSXin Li      6393,   -18205,    27246,   -32138,    32138,   -27246,    18205,    -6393,
240*a97c2a1fSXin Li };
241*a97c2a1fSXin Li 
242*a97c2a1fSXin Li const WORD16 gai2_impeg2_idct_q11[] =
243*a97c2a1fSXin Li {
244*a97c2a1fSXin Li     1448,     1448,     1448,     1448,     1448,     1448,     1448,     1448,
245*a97c2a1fSXin Li     2009,     1703,     1138,      400,     -400,    -1138,    -1703,    -2009,
246*a97c2a1fSXin Li     1892,      784,     -784,    -1892,    -1892,     -784,      784,     1892,
247*a97c2a1fSXin Li     1703,     -400,    -2009,    -1138,     1138,     2009,      400,    -1703,
248*a97c2a1fSXin Li     1448,    -1448,    -1448,     1448,     1448,    -1448,    -1448,     1448,
249*a97c2a1fSXin Li     1138,    -2009,      400,     1703,    -1703,     -400,     2009,    -1138,
250*a97c2a1fSXin Li      784,    -1892,     1892,     -784,     -784,     1892,    -1892,      784,
251*a97c2a1fSXin Li      400,    -1138,     1703,    -2009,     2009,    -1703,     1138,     -400,
252*a97c2a1fSXin Li };
253*a97c2a1fSXin Li 
254*a97c2a1fSXin Li const WORD16 gai2_impeg2_idct_even_8_q15[][8] =
255*a97c2a1fSXin Li {
256*a97c2a1fSXin Li     {  23170,  23170,  23170,  23170,  23170,  23170,  23170,  23170  },
257*a97c2a1fSXin Li     {  12540, -30274,  12540, -30274,  12540, -30274,  12540, -30274  },
258*a97c2a1fSXin Li     {  30274,  12540,  30274,  12540,  30274,  12540,  30274,  12540  },
259*a97c2a1fSXin Li     {  23170, -23170,  23170, -23170,  23170, -23170,  23170, -23170  }
260*a97c2a1fSXin Li };
261*a97c2a1fSXin Li const WORD16 gai2_impeg2_idct_odd_8_q15[][8] =
262*a97c2a1fSXin Li {
263*a97c2a1fSXin Li     {  32138,  27246,  32138,  27246,  32138,  27246,  32138,  27246 },
264*a97c2a1fSXin Li     {  18205,   6393,  18205,   6393,  18205,   6393,  18205,   6393 },
265*a97c2a1fSXin Li     {  27246,  -6393,  27246,  -6393,  27246,  -6393,  27246,  -6393 },
266*a97c2a1fSXin Li     {  32138,  18205,  32138,  18205,  32138,  18205,  32138,  18205 },
267*a97c2a1fSXin Li     {  18205, -32138,  18205, -32138,  18205, -32138,  18205, -32138 },
268*a97c2a1fSXin Li     {  6393,   27246,   6393,  27246,   6393,  27246,   6393,  27246 },
269*a97c2a1fSXin Li     {  6393,  -18205,   6393, -18205,   6393, -18205,   6393, -18205 },
270*a97c2a1fSXin Li     {  27246, -32138,  27246, -32138,  27246, -32138,  27246, -32138 },
271*a97c2a1fSXin Li };
272*a97c2a1fSXin Li 
273*a97c2a1fSXin Li const WORD16 gai2_impeg2_idct_even_8_q11[][8] =
274*a97c2a1fSXin Li {
275*a97c2a1fSXin Li     {   1448,   1448,   1448,   1448,   1448,   1448,   1448,   1448 },
276*a97c2a1fSXin Li     {    784,  -1892,    784,  -1892,    784,  -1892,    784,  -1892 },
277*a97c2a1fSXin Li     {   1892,    784,   1892,    784,   1892,    784,   1892,    784 },
278*a97c2a1fSXin Li     {   1448,  -1448,   1448,  -1448,   1448,  -1448,   1448,  -1448 }
279*a97c2a1fSXin Li };
280*a97c2a1fSXin Li const WORD16 gai2_impeg2_idct_odd_8_q11[][8] =
281*a97c2a1fSXin Li {
282*a97c2a1fSXin Li     {   2009,   1703,   2009,   1703,   2009,   1703,   2009,   1703 },
283*a97c2a1fSXin Li     {   1138,    400,   1138,    400,   1138,    400,   1138,    400 },
284*a97c2a1fSXin Li     {   1703,   -400,   1703,   -400,   1703,   -400,   1703,   -400 },
285*a97c2a1fSXin Li     {   2009,   1138,   2009,   1138,   2009,   1138,   2009,   1138 },
286*a97c2a1fSXin Li     {   1138,  -2009,   1138,  -2009,   1138,  -2009,   1138,  -2009 },
287*a97c2a1fSXin Li     {    400,   1703,    400,   1703,    400,   1703,    400,   1703 },
288*a97c2a1fSXin Li     {    400,  -1138,    400,  -1138,    400,  -1138,    400,  -1138 },
289*a97c2a1fSXin Li     {   1703,  -2009,   1703,  -2009,   1703,  -2009,   1703,  -2009 },
290*a97c2a1fSXin Li };
291*a97c2a1fSXin Li 
292*a97c2a1fSXin Li 
293*a97c2a1fSXin Li 
294*a97c2a1fSXin Li /*****************************************************************************/
295*a97c2a1fSXin Li /* Last row IDCT Coefficients in Q11 format                                           */
296*a97c2a1fSXin Li /*****************************************************************************/
297*a97c2a1fSXin Li const WORD16 gai2_impeg2_idct_last_row_q11[] =
298*a97c2a1fSXin Li {
299*a97c2a1fSXin Li      400,    -1138,     1703,    -2009,     2009,    -1703,     1138,     -400,
300*a97c2a1fSXin Li };
301*a97c2a1fSXin Li 
302*a97c2a1fSXin Li const WORD16 gai2_impeg2_idct_first_col_q15[] =
303*a97c2a1fSXin Li {
304*a97c2a1fSXin Li    23170,    32138,    30274,    27246,    23170,    18205,    12540,     6393,
305*a97c2a1fSXin Li };
306*a97c2a1fSXin Li 
307*a97c2a1fSXin Li const WORD16 gai2_impeg2_idct_first_col_q11[] =
308*a97c2a1fSXin Li {
309*a97c2a1fSXin Li      1448,    2009,     1892,     1703,     1448,     1138,      784,      400,
310*a97c2a1fSXin Li };
311*a97c2a1fSXin Li 
312*a97c2a1fSXin Li /*****************************************************************************/
313*a97c2a1fSXin Li /* Output of first stage dct (using gai2_impeg2_idct_q15 as coeffs)          */
314*a97c2a1fSXin Li /* for a 1D data (0, 0, 0, 0, 0, 0, 0, 1)                                    */
315*a97c2a1fSXin Li /*****************************************************************************/
316*a97c2a1fSXin Li 
317*a97c2a1fSXin Li const WORD16 gai2_impeg2_mismatch_stg1_outp[] =
318*a97c2a1fSXin Li {
319*a97c2a1fSXin Li     2, -4, 7, -8, 8, -7, 4, -2
320*a97c2a1fSXin Li };
321*a97c2a1fSXin Li 
322*a97c2a1fSXin Li const WORD16 gai2_impeg2_mismatch_stg2_additive[] =
323*a97c2a1fSXin Li {
324*a97c2a1fSXin Li      800,   -2276,  3406,   -4018,  4018,   -3406,  2276,   -800,
325*a97c2a1fSXin Li      -1600, 4552,   -6812,  8036,   -8036,  6812,   -4552,  1600,
326*a97c2a1fSXin Li      2800,  -7966,  11921,  -14063, 14063,  -11921, 7966,   -2800,
327*a97c2a1fSXin Li      -3200, 9104,   -13624, 16072,  -16072, 13624,  -9104,  3200,
328*a97c2a1fSXin Li      3200,  -9104,  13624,  -16072, 16072,  -13624, 9104,   -3200,
329*a97c2a1fSXin Li      -2800, 7966,   -11921, 14063,  -14063, 11921,  -7966,  2800,
330*a97c2a1fSXin Li      1600,  -4552,  6812,   -8036,  8036,   -6812,  4552,   -1600,
331*a97c2a1fSXin Li      -800,  2276,   -3406,  4018,   -4018,  3406,   -2276,  800,
332*a97c2a1fSXin Li };
333*a97c2a1fSXin Li 
334*a97c2a1fSXin Li 
335*a97c2a1fSXin Li const UWORD8 gau1_impeg2_zerobuf[] =
336*a97c2a1fSXin Li {
337*a97c2a1fSXin Li     0, 0, 0, 0, 0, 0, 0, 0,
338*a97c2a1fSXin Li     0, 0, 0, 0, 0, 0, 0, 0,
339*a97c2a1fSXin Li     0, 0, 0, 0, 0, 0, 0, 0,
340*a97c2a1fSXin Li     0, 0, 0, 0, 0, 0, 0, 0,
341*a97c2a1fSXin Li     0, 0, 0, 0, 0, 0, 0, 0,
342*a97c2a1fSXin Li     0, 0, 0, 0, 0, 0, 0, 0,
343*a97c2a1fSXin Li     0, 0, 0, 0, 0, 0, 0, 0,
344*a97c2a1fSXin Li     0, 0, 0, 0, 0, 0, 0, 0,
345*a97c2a1fSXin Li };
346*a97c2a1fSXin Li /*****************************************************************************/
347*a97c2a1fSXin Li /* Tables of offset needed to address block in an MB                         */
348*a97c2a1fSXin Li /*****************************************************************************/
349*a97c2a1fSXin Li const WORD16  gai2_impeg2_blk_y_off_fld[]  = {0,0,1,1};
350*a97c2a1fSXin Li const WORD16  gai2_impeg2_blk_y_off_frm[]  = {0,0,8,8};
351*a97c2a1fSXin Li const WORD16  gai2_impeg2_blk_x_off[]      = {0,8,0,8};
352