1cabdff1aSopenharmony_ci/*
2cabdff1aSopenharmony_ci * Indeo Video Interactive 4 compatible decoder
3cabdff1aSopenharmony_ci * Copyright (c) 2009-2010 Maxim Poliakovski
4cabdff1aSopenharmony_ci *
5cabdff1aSopenharmony_ci * This file is part of FFmpeg.
6cabdff1aSopenharmony_ci *
7cabdff1aSopenharmony_ci * FFmpeg is free software; you can redistribute it and/or
8cabdff1aSopenharmony_ci * modify it under the terms of the GNU Lesser General Public
9cabdff1aSopenharmony_ci * License as published by the Free Software Foundation; either
10cabdff1aSopenharmony_ci * version 2.1 of the License, or (at your option) any later version.
11cabdff1aSopenharmony_ci *
12cabdff1aSopenharmony_ci * FFmpeg is distributed in the hope that it will be useful,
13cabdff1aSopenharmony_ci * but WITHOUT ANY WARRANTY; without even the implied warranty of
14cabdff1aSopenharmony_ci * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15cabdff1aSopenharmony_ci * Lesser General Public License for more details.
16cabdff1aSopenharmony_ci *
17cabdff1aSopenharmony_ci * You should have received a copy of the GNU Lesser General Public
18cabdff1aSopenharmony_ci * License along with FFmpeg; if not, write to the Free Software
19cabdff1aSopenharmony_ci * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20cabdff1aSopenharmony_ci */
21cabdff1aSopenharmony_ci
22cabdff1aSopenharmony_ci/**
23cabdff1aSopenharmony_ci * @file
24cabdff1aSopenharmony_ci * This file contains data needed for the Indeo 4 decoder.
25cabdff1aSopenharmony_ci */
26cabdff1aSopenharmony_ci
27cabdff1aSopenharmony_ci#ifndef AVCODEC_INDEO4DATA_H
28cabdff1aSopenharmony_ci#define AVCODEC_INDEO4DATA_H
29cabdff1aSopenharmony_ci
30cabdff1aSopenharmony_ci#include <stdint.h>
31cabdff1aSopenharmony_ci
32cabdff1aSopenharmony_ci#include "ivi.h"
33cabdff1aSopenharmony_ci
34cabdff1aSopenharmony_ci/**
35cabdff1aSopenharmony_ci *  standard picture dimensions
36cabdff1aSopenharmony_ci */
37cabdff1aSopenharmony_cistatic const uint16_t ivi4_common_pic_sizes[14] = {
38cabdff1aSopenharmony_ci    640, 480, 320, 240, 160, 120, 704, 480, 352, 240, 352, 288, 176, 144
39cabdff1aSopenharmony_ci};
40cabdff1aSopenharmony_ci
41cabdff1aSopenharmony_ci/**
42cabdff1aSopenharmony_ci *  Indeo 4 8x8 scan (zigzag) patterns
43cabdff1aSopenharmony_ci */
44cabdff1aSopenharmony_cistatic const uint8_t ivi4_alternate_scan_8x8[64] = {
45cabdff1aSopenharmony_ci     0,  8,  1,  9, 16, 24,  2,  3, 17, 25, 10, 11, 32, 40, 48, 56,
46cabdff1aSopenharmony_ci     4,  5,  6,  7, 33, 41, 49, 57, 18, 19, 26, 27, 12, 13, 14, 15,
47cabdff1aSopenharmony_ci    34, 35, 43, 42, 50, 51, 59, 58, 20, 21, 22, 23, 31, 30, 29, 28,
48cabdff1aSopenharmony_ci    36, 37, 38, 39, 47, 46, 45, 44, 52, 53, 54, 55, 63, 62, 61, 60
49cabdff1aSopenharmony_ci};
50cabdff1aSopenharmony_ci
51cabdff1aSopenharmony_cistatic const uint8_t ivi4_alternate_scan_4x4[16] = {
52cabdff1aSopenharmony_ci    0, 1, 4, 5, 8, 12, 2, 3, 9, 13, 6, 7, 10, 11, 14, 15
53cabdff1aSopenharmony_ci};
54cabdff1aSopenharmony_ci
55cabdff1aSopenharmony_cistatic const uint8_t ivi4_vertical_scan_4x4[16] = {
56cabdff1aSopenharmony_ci    0, 4, 8, 12, 1, 5, 9, 13, 2, 6, 10, 14, 3, 7, 11, 15
57cabdff1aSopenharmony_ci};
58cabdff1aSopenharmony_ci
59cabdff1aSopenharmony_cistatic const uint8_t ivi4_horizontal_scan_4x4[16] = {
60cabdff1aSopenharmony_ci    0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
61cabdff1aSopenharmony_ci};
62cabdff1aSopenharmony_ci
63cabdff1aSopenharmony_cistatic const uint8_t * const scan_index_to_tab[15] = {
64cabdff1aSopenharmony_ci    // for 8x8 transforms
65cabdff1aSopenharmony_ci    ff_zigzag_direct,
66cabdff1aSopenharmony_ci    ivi4_alternate_scan_8x8,
67cabdff1aSopenharmony_ci    ff_ivi_horizontal_scan_8x8,
68cabdff1aSopenharmony_ci    ff_ivi_vertical_scan_8x8,
69cabdff1aSopenharmony_ci    ff_zigzag_direct,
70cabdff1aSopenharmony_ci
71cabdff1aSopenharmony_ci    // for 4x4 transforms
72cabdff1aSopenharmony_ci    ff_ivi_direct_scan_4x4,
73cabdff1aSopenharmony_ci    ivi4_alternate_scan_4x4,
74cabdff1aSopenharmony_ci    ivi4_vertical_scan_4x4,
75cabdff1aSopenharmony_ci    ivi4_horizontal_scan_4x4,
76cabdff1aSopenharmony_ci    ff_ivi_direct_scan_4x4,
77cabdff1aSopenharmony_ci
78cabdff1aSopenharmony_ci    // TODO: check if those are needed
79cabdff1aSopenharmony_ci    ff_ivi_horizontal_scan_8x8,
80cabdff1aSopenharmony_ci    ff_ivi_horizontal_scan_8x8,
81cabdff1aSopenharmony_ci    ff_ivi_horizontal_scan_8x8,
82cabdff1aSopenharmony_ci    ff_ivi_horizontal_scan_8x8,
83cabdff1aSopenharmony_ci    ff_ivi_horizontal_scan_8x8
84cabdff1aSopenharmony_ci};
85cabdff1aSopenharmony_ci
86cabdff1aSopenharmony_ci/**
87cabdff1aSopenharmony_ci *  Indeo 4 dequant tables
88cabdff1aSopenharmony_ci */
89cabdff1aSopenharmony_cistatic const uint16_t ivi4_quant_8x8_intra[9][64] = {
90cabdff1aSopenharmony_ci  {
91cabdff1aSopenharmony_ci      43,  342,  385,  470,  555,  555,  598,  726,
92cabdff1aSopenharmony_ci     342,  342,  470,  513,  555,  598,  726,  769,
93cabdff1aSopenharmony_ci     385,  470,  555,  555,  598,  726,  726,  811,
94cabdff1aSopenharmony_ci     470,  470,  555,  555,  598,  726,  769,  854,
95cabdff1aSopenharmony_ci     470,  555,  555,  598,  683,  726,  854, 1025,
96cabdff1aSopenharmony_ci     555,  555,  598,  683,  726,  854, 1025, 1153,
97cabdff1aSopenharmony_ci     555,  555,  598,  726,  811,  982, 1195, 1451,
98cabdff1aSopenharmony_ci     555,  598,  726,  811,  982, 1195, 1451, 1793
99cabdff1aSopenharmony_ci  },
100cabdff1aSopenharmony_ci  {
101cabdff1aSopenharmony_ci      86, 1195, 2390, 2390, 4865, 4865, 4865, 4865,
102cabdff1aSopenharmony_ci    1195, 1195, 2390, 2390, 4865, 4865, 4865, 4865,
103cabdff1aSopenharmony_ci    2390, 2390, 4865, 4865, 6827, 6827, 6827, 6827,
104cabdff1aSopenharmony_ci    2390, 2390, 4865, 4865, 6827, 6827, 6827, 6827,
105cabdff1aSopenharmony_ci    4865, 4865, 6827, 6827, 6827, 6827, 6827, 6827,
106cabdff1aSopenharmony_ci    4865, 4865, 6827, 6827, 6827, 6827, 6827, 6827,
107cabdff1aSopenharmony_ci    4865, 4865, 6827, 6827, 6827, 6827, 6827, 6827,
108cabdff1aSopenharmony_ci    4865, 4865, 6827, 6827, 6827, 6827, 6827, 6827
109cabdff1aSopenharmony_ci  },
110cabdff1aSopenharmony_ci  {
111cabdff1aSopenharmony_ci     235, 1067, 1195, 1323, 1451, 1579, 1707, 1835,
112cabdff1aSopenharmony_ci     235, 1067, 1195, 1323, 1451, 1579, 1707, 1835,
113cabdff1aSopenharmony_ci     235, 1067, 1195, 1323, 1451, 1579, 1707, 1835,
114cabdff1aSopenharmony_ci     235, 1067, 1195, 1323, 1451, 1579, 1707, 1835,
115cabdff1aSopenharmony_ci     235, 1067, 1195, 1323, 1451, 1579, 1707, 1835,
116cabdff1aSopenharmony_ci     235, 1067, 1195, 1323, 1451, 1579, 1707, 1835,
117cabdff1aSopenharmony_ci     235, 1067, 1195, 1323, 1451, 1579, 1707, 1835,
118cabdff1aSopenharmony_ci     235, 1067, 1195, 1323, 1451, 1579, 1707, 1835
119cabdff1aSopenharmony_ci  },
120cabdff1aSopenharmony_ci  {
121cabdff1aSopenharmony_ci    1707, 1707, 3414, 3414, 3414, 3414, 3414, 3414,
122cabdff1aSopenharmony_ci    1707, 1707, 3414, 3414, 3414, 3414, 3414, 3414,
123cabdff1aSopenharmony_ci    1707, 1707, 3414, 3414, 3414, 3414, 3414, 3414,
124cabdff1aSopenharmony_ci    1707, 1707, 3414, 3414, 3414, 3414, 3414, 3414,
125cabdff1aSopenharmony_ci    1707, 1707, 3414, 3414, 3414, 3414, 3414, 3414,
126cabdff1aSopenharmony_ci    1707, 1707, 3414, 3414, 3414, 3414, 3414, 3414,
127cabdff1aSopenharmony_ci    1707, 1707, 3414, 3414, 3414, 3414, 3414, 3414,
128cabdff1aSopenharmony_ci    1707, 1707, 3414, 3414, 3414, 3414, 3414, 3414
129cabdff1aSopenharmony_ci  },
130cabdff1aSopenharmony_ci  {
131cabdff1aSopenharmony_ci     897,  897,  897,  897,  897,  897,  897,  897,
132cabdff1aSopenharmony_ci    1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067,
133cabdff1aSopenharmony_ci    1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238,
134cabdff1aSopenharmony_ci    1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409,
135cabdff1aSopenharmony_ci    1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579,
136cabdff1aSopenharmony_ci    1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750,
137cabdff1aSopenharmony_ci    1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921,
138cabdff1aSopenharmony_ci    2091, 2091, 2091, 2091, 2091, 2091, 2091, 2091
139cabdff1aSopenharmony_ci  },
140cabdff1aSopenharmony_ci  {
141cabdff1aSopenharmony_ci    1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707,
142cabdff1aSopenharmony_ci    1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707,
143cabdff1aSopenharmony_ci    3414, 3414, 3414, 3414, 3414, 3414, 3414, 3414,
144cabdff1aSopenharmony_ci    3414, 3414, 3414, 3414, 3414, 3414, 3414, 3414,
145cabdff1aSopenharmony_ci    3414, 3414, 3414, 3414, 3414, 3414, 3414, 3414,
146cabdff1aSopenharmony_ci    3414, 3414, 3414, 3414, 3414, 3414, 3414, 3414,
147cabdff1aSopenharmony_ci    3414, 3414, 3414, 3414, 3414, 3414, 3414, 3414,
148cabdff1aSopenharmony_ci    3414, 3414, 3414, 3414, 3414, 3414, 3414, 3414
149cabdff1aSopenharmony_ci  },
150cabdff1aSopenharmony_ci  {
151cabdff1aSopenharmony_ci    2390, 2390, 2390, 2390, 2390, 2390, 2390, 2390,
152cabdff1aSopenharmony_ci    2390, 2390, 2390, 2390, 2390, 2390, 2390, 2390,
153cabdff1aSopenharmony_ci    2390, 2390, 2390, 2390, 2390, 2390, 2390, 2390,
154cabdff1aSopenharmony_ci    2390, 2390, 2390, 2390, 2390, 2390, 2390, 2390,
155cabdff1aSopenharmony_ci    2390, 2390, 2390, 2390, 2390, 2390, 2390, 2390,
156cabdff1aSopenharmony_ci    2390, 2390, 2390, 2390, 2390, 2390, 2390, 2390,
157cabdff1aSopenharmony_ci    2390, 2390, 2390, 2390, 2390, 2390, 2390, 2390,
158cabdff1aSopenharmony_ci    2390, 2390, 2390, 2390, 2390, 2390, 2390, 2390
159cabdff1aSopenharmony_ci  },
160cabdff1aSopenharmony_ci  {
161cabdff1aSopenharmony_ci      22,  171,  214,  257,  257,  299,  299,  342,
162cabdff1aSopenharmony_ci     171,  171,  257,  257,  299,  299,  342,  385,
163cabdff1aSopenharmony_ci     214,  257,  257,  299,  299,  342,  342,  385,
164cabdff1aSopenharmony_ci     257,  257,  257,  299,  299,  342,  385,  427,
165cabdff1aSopenharmony_ci     257,  257,  299,  299,  342,  385,  427,  513,
166cabdff1aSopenharmony_ci     257,  299,  299,  342,  385,  427,  513,  598,
167cabdff1aSopenharmony_ci     299,  299,  299,  385,  385,  470,  598,  726,
168cabdff1aSopenharmony_ci     299,  299,  385,  385,  470,  598,  726,  897
169cabdff1aSopenharmony_ci  },
170cabdff1aSopenharmony_ci  {
171cabdff1aSopenharmony_ci      86,  598, 1195, 1195, 2390, 2390, 2390, 2390,
172cabdff1aSopenharmony_ci     598,  598, 1195, 1195, 2390, 2390, 2390, 2390,
173cabdff1aSopenharmony_ci    1195, 1195, 2390, 2390, 3414, 3414, 3414, 3414,
174cabdff1aSopenharmony_ci    1195, 1195, 2390, 2390, 3414, 3414, 3414, 3414,
175cabdff1aSopenharmony_ci    2390, 2390, 3414, 3414, 3414, 3414, 3414, 3414,
176cabdff1aSopenharmony_ci    2390, 2390, 3414, 3414, 3414, 3414, 3414, 3414,
177cabdff1aSopenharmony_ci    2390, 2390, 3414, 3414, 3414, 3414, 3414, 3414,
178cabdff1aSopenharmony_ci    2390, 2390, 3414, 3414, 3414, 3414, 3414, 3414
179cabdff1aSopenharmony_ci  }
180cabdff1aSopenharmony_ci};
181cabdff1aSopenharmony_ci
182cabdff1aSopenharmony_cistatic const uint16_t ivi4_quant_8x8_inter[9][64] = {
183cabdff1aSopenharmony_ci  {
184cabdff1aSopenharmony_ci     427,  427,  470,  427,  427,  427,  470,  470,
185cabdff1aSopenharmony_ci     427,  427,  470,  427,  427,  427,  470,  470,
186cabdff1aSopenharmony_ci     470,  470,  470,  470,  470,  470,  470,  470,
187cabdff1aSopenharmony_ci     427,  427,  470,  470,  427,  427,  470,  470,
188cabdff1aSopenharmony_ci     427,  427,  470,  427,  427,  427,  470,  470,
189cabdff1aSopenharmony_ci     427,  427,  470,  427,  427,  427,  470,  470,
190cabdff1aSopenharmony_ci     470,  470,  470,  470,  470,  470,  470,  470,
191cabdff1aSopenharmony_ci     470,  470,  470,  470,  470,  470,  470,  470
192cabdff1aSopenharmony_ci  },
193cabdff1aSopenharmony_ci  {
194cabdff1aSopenharmony_ci    1707, 1707, 2433, 2433, 3414, 3414, 3414, 3414,
195cabdff1aSopenharmony_ci    1707, 1707, 2433, 2433, 3414, 3414, 3414, 3414,
196cabdff1aSopenharmony_ci    2433, 2433, 3414, 3414, 4822, 4822, 4822, 4822,
197cabdff1aSopenharmony_ci    2433, 2433, 3414, 3414, 4822, 4822, 4822, 4822,
198cabdff1aSopenharmony_ci    3414, 3414, 4822, 4822, 3414, 3414, 3414, 3414,
199cabdff1aSopenharmony_ci    3414, 3414, 4822, 4822, 3414, 3414, 3414, 3414,
200cabdff1aSopenharmony_ci    3414, 3414, 4822, 4822, 3414, 3414, 3414, 3414,
201cabdff1aSopenharmony_ci    3414, 3414, 4822, 4822, 3414, 3414, 3414, 3414
202cabdff1aSopenharmony_ci  },
203cabdff1aSopenharmony_ci  {
204cabdff1aSopenharmony_ci    1195, 1195, 1281, 1238, 1195, 1195, 1281, 1281,
205cabdff1aSopenharmony_ci    1195, 1195, 1281, 1238, 1195, 1195, 1281, 1281,
206cabdff1aSopenharmony_ci    1195, 1195, 1281, 1238, 1195, 1195, 1281, 1281,
207cabdff1aSopenharmony_ci    1195, 1195, 1281, 1238, 1195, 1195, 1281, 1281,
208cabdff1aSopenharmony_ci    1195, 1195, 1281, 1238, 1195, 1195, 1281, 1281,
209cabdff1aSopenharmony_ci    1195, 1195, 1281, 1238, 1195, 1195, 1281, 1281,
210cabdff1aSopenharmony_ci    1195, 1195, 1281, 1238, 1195, 1195, 1281, 1281,
211cabdff1aSopenharmony_ci    1195, 1195, 1281, 1238, 1195, 1195, 1281, 1281
212cabdff1aSopenharmony_ci  },
213cabdff1aSopenharmony_ci  {
214cabdff1aSopenharmony_ci    2433, 2433, 3414, 3414, 2433, 2433, 2433, 2433,
215cabdff1aSopenharmony_ci    2433, 2433, 3414, 3414, 2433, 2433, 2433, 2433,
216cabdff1aSopenharmony_ci    2433, 2433, 3414, 3414, 2433, 2433, 2433, 2433,
217cabdff1aSopenharmony_ci    2433, 2433, 3414, 3414, 2433, 2433, 2433, 2433,
218cabdff1aSopenharmony_ci    2433, 2433, 3414, 3414, 2433, 2433, 2433, 2433,
219cabdff1aSopenharmony_ci    2433, 2433, 3414, 3414, 2433, 2433, 2433, 2433,
220cabdff1aSopenharmony_ci    2433, 2433, 3414, 3414, 2433, 2433, 2433, 2433,
221cabdff1aSopenharmony_ci    2433, 2433, 3414, 3414, 2433, 2433, 2433, 2433
222cabdff1aSopenharmony_ci  },
223cabdff1aSopenharmony_ci  {
224cabdff1aSopenharmony_ci    1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195,
225cabdff1aSopenharmony_ci    1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195,
226cabdff1aSopenharmony_ci    1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281,
227cabdff1aSopenharmony_ci    1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238,
228cabdff1aSopenharmony_ci    1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195,
229cabdff1aSopenharmony_ci    1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195,
230cabdff1aSopenharmony_ci    1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281,
231cabdff1aSopenharmony_ci    1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281
232cabdff1aSopenharmony_ci  },
233cabdff1aSopenharmony_ci  {
234cabdff1aSopenharmony_ci    2433, 2433, 2433, 2433, 2433, 2433, 2433, 2433,
235cabdff1aSopenharmony_ci    2433, 2433, 2433, 2433, 2433, 2433, 2433, 2433,
236cabdff1aSopenharmony_ci    3414, 3414, 3414, 3414, 3414, 3414, 3414, 3414,
237cabdff1aSopenharmony_ci    3414, 3414, 3414, 3414, 3414, 3414, 3414, 3414,
238cabdff1aSopenharmony_ci    2433, 2433, 2433, 2433, 2433, 2433, 2433, 2433,
239cabdff1aSopenharmony_ci    2433, 2433, 2433, 2433, 2433, 2433, 2433, 2433,
240cabdff1aSopenharmony_ci    2433, 2433, 2433, 2433, 2433, 2433, 2433, 2433,
241cabdff1aSopenharmony_ci    2433, 2433, 2433, 2433, 2433, 2433, 2433, 2433
242cabdff1aSopenharmony_ci  },
243cabdff1aSopenharmony_ci  {
244cabdff1aSopenharmony_ci    1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707,
245cabdff1aSopenharmony_ci    1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707,
246cabdff1aSopenharmony_ci    1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707,
247cabdff1aSopenharmony_ci    1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707,
248cabdff1aSopenharmony_ci    1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707,
249cabdff1aSopenharmony_ci    1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707,
250cabdff1aSopenharmony_ci    1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707,
251cabdff1aSopenharmony_ci    1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707
252cabdff1aSopenharmony_ci  },
253cabdff1aSopenharmony_ci  {
254cabdff1aSopenharmony_ci      86,  171,  171,  214,  214,  214,  214,  257,
255cabdff1aSopenharmony_ci     171,  171,  214,  214,  214,  214,  257,  257,
256cabdff1aSopenharmony_ci     171,  214,  214,  214,  214,  257,  257,  257,
257cabdff1aSopenharmony_ci     214,  214,  214,  214,  257,  257,  257,  299,
258cabdff1aSopenharmony_ci     214,  214,  214,  257,  257,  257,  299,  299,
259cabdff1aSopenharmony_ci     214,  214,  257,  257,  257,  299,  299,  299,
260cabdff1aSopenharmony_ci     214,  257,  257,  257,  299,  299,  299,  342,
261cabdff1aSopenharmony_ci     257,  257,  257,  299,  299,  299,  342,  342
262cabdff1aSopenharmony_ci  },
263cabdff1aSopenharmony_ci  {
264cabdff1aSopenharmony_ci     854,  854, 1195, 1195, 1707, 1707, 1707, 1707,
265cabdff1aSopenharmony_ci     854,  854, 1195, 1195, 1707, 1707, 1707, 1707,
266cabdff1aSopenharmony_ci    1195, 1195, 1707, 1707, 2390, 2390, 2390, 2390,
267cabdff1aSopenharmony_ci    1195, 1195, 1707, 1707, 2390, 2390, 2390, 2390,
268cabdff1aSopenharmony_ci    1707, 1707, 2390, 2390, 1707, 1707, 1707, 1707,
269cabdff1aSopenharmony_ci    1707, 1707, 2390, 2390, 1707, 1707, 1707, 1707,
270cabdff1aSopenharmony_ci    1707, 1707, 2390, 2390, 1707, 1707, 1707, 1707,
271cabdff1aSopenharmony_ci    1707, 1707, 2390, 2390, 1707, 1707, 1707, 1707
272cabdff1aSopenharmony_ci  }
273cabdff1aSopenharmony_ci};
274cabdff1aSopenharmony_ci
275cabdff1aSopenharmony_cistatic const uint16_t ivi4_quant_4x4_intra[5][16] = {
276cabdff1aSopenharmony_ci  {
277cabdff1aSopenharmony_ci      22,  214,  257,  299,
278cabdff1aSopenharmony_ci     214,  257,  299,  342,
279cabdff1aSopenharmony_ci     257,  299,  342,  427,
280cabdff1aSopenharmony_ci     299,  342,  427,  513
281cabdff1aSopenharmony_ci  },
282cabdff1aSopenharmony_ci  {
283cabdff1aSopenharmony_ci     129, 1025, 1451, 1451,
284cabdff1aSopenharmony_ci    1025, 1025, 1451, 1451,
285cabdff1aSopenharmony_ci    1451, 1451, 2049, 2049,
286cabdff1aSopenharmony_ci    1451, 1451, 2049, 2049
287cabdff1aSopenharmony_ci  },
288cabdff1aSopenharmony_ci  {
289cabdff1aSopenharmony_ci      43,  171,  171,  171,
290cabdff1aSopenharmony_ci      43,  171,  171,  171,
291cabdff1aSopenharmony_ci      43,  171,  171,  171,
292cabdff1aSopenharmony_ci      43,  171,  171,  171
293cabdff1aSopenharmony_ci  },
294cabdff1aSopenharmony_ci  {
295cabdff1aSopenharmony_ci      43,   43,   43,   43,
296cabdff1aSopenharmony_ci     171,  171,  171,  171,
297cabdff1aSopenharmony_ci     171,  171,  171,  171,
298cabdff1aSopenharmony_ci     171,  171,  171,  171
299cabdff1aSopenharmony_ci  },
300cabdff1aSopenharmony_ci  {
301cabdff1aSopenharmony_ci      43,   43,   43,   43,
302cabdff1aSopenharmony_ci      43,   43,   43,   43,
303cabdff1aSopenharmony_ci      43,   43,   43,   43,
304cabdff1aSopenharmony_ci      43,   43,   43,   43
305cabdff1aSopenharmony_ci  }
306cabdff1aSopenharmony_ci};
307cabdff1aSopenharmony_ci
308cabdff1aSopenharmony_cistatic const uint16_t ivi4_quant_4x4_inter[5][16] = {
309cabdff1aSopenharmony_ci  {
310cabdff1aSopenharmony_ci     107,  214,  257,  299,
311cabdff1aSopenharmony_ci     214,  257,  299,  299,
312cabdff1aSopenharmony_ci     257,  299,  299,  342,
313cabdff1aSopenharmony_ci     299,  299,  342,  342
314cabdff1aSopenharmony_ci  },
315cabdff1aSopenharmony_ci  {
316cabdff1aSopenharmony_ci     513, 1025, 1238, 1238,
317cabdff1aSopenharmony_ci    1025, 1025, 1238, 1238,
318cabdff1aSopenharmony_ci    1238, 1238, 1451, 1451,
319cabdff1aSopenharmony_ci    1238, 1238, 1451, 1451
320cabdff1aSopenharmony_ci  },
321cabdff1aSopenharmony_ci  {
322cabdff1aSopenharmony_ci      43,  171,  171,  171,
323cabdff1aSopenharmony_ci      43,  171,  171,  171,
324cabdff1aSopenharmony_ci      43,  171,  171,  171,
325cabdff1aSopenharmony_ci      43,  171,  171,  171
326cabdff1aSopenharmony_ci  },
327cabdff1aSopenharmony_ci  {
328cabdff1aSopenharmony_ci      43,   43,   43,   43,
329cabdff1aSopenharmony_ci     171,  171,  171,  171,
330cabdff1aSopenharmony_ci     171,  171,  171,  171,
331cabdff1aSopenharmony_ci     171,  171,  171,  171
332cabdff1aSopenharmony_ci  },
333cabdff1aSopenharmony_ci  {
334cabdff1aSopenharmony_ci      43,   43,   43,   43,
335cabdff1aSopenharmony_ci      43,   43,   43,   43,
336cabdff1aSopenharmony_ci      43,   43,   43,   43,
337cabdff1aSopenharmony_ci      43,   43,   43,   43
338cabdff1aSopenharmony_ci  }
339cabdff1aSopenharmony_ci};
340cabdff1aSopenharmony_ci
341cabdff1aSopenharmony_ci/**
342cabdff1aSopenharmony_ci *  Table for mapping quant matrix index from the bitstream
343cabdff1aSopenharmony_ci *  into internal quant table number.
344cabdff1aSopenharmony_ci */
345cabdff1aSopenharmony_cistatic const uint8_t quant_index_to_tab[22] = {
346cabdff1aSopenharmony_ci    0, 1, 0, 2, 1, 3, 0, 4, 1, 5, 0, 1, 6, 7, 8, // for 8x8 quant matrixes
347cabdff1aSopenharmony_ci    0, 1, 2, 2, 3, 3, 4                          // for 4x4 quant matrixes
348cabdff1aSopenharmony_ci};
349cabdff1aSopenharmony_ci
350cabdff1aSopenharmony_ci#endif /* AVCODEC_INDEO4DATA_H */
351