1cabdff1aSopenharmony_ci/*
2cabdff1aSopenharmony_ci * BitJazz SheerVideo decoder
3cabdff1aSopenharmony_ci * Copyright (c) 2016 Paul B Mahol
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#ifndef AVCODEC_SHEERVIDEODATA_H
23cabdff1aSopenharmony_ci#define AVCODEC_SHEERVIDEODATA_H
24cabdff1aSopenharmony_ci
25cabdff1aSopenharmony_ci#include "libavutil/common.h"
26cabdff1aSopenharmony_ci
27cabdff1aSopenharmony_citypedef struct SheerTable {
28cabdff1aSopenharmony_ci    uint8_t  lens[2 * 15];
29cabdff1aSopenharmony_ci    uint16_t nb_16s;
30cabdff1aSopenharmony_ci} SheerTable;
31cabdff1aSopenharmony_ci
32cabdff1aSopenharmony_cistatic const SheerTable rgb[2] = {
33cabdff1aSopenharmony_ci    {
34cabdff1aSopenharmony_ci        {  0,  0,  2,  2,  3,  3,  5,  5,  8,  8, 10,  9, 14, 15, 18,
35cabdff1aSopenharmony_ci          17, 16, 13, 10, 10,  8,  7,  6,  5,  3,  2,  3,  0,  0,  0 }, 54
36cabdff1aSopenharmony_ci    },
37cabdff1aSopenharmony_ci    {
38cabdff1aSopenharmony_ci        {  0,  2,  0,  2,  0,  1,  1,  0,  2,  1,  3,  3,  4,  7, 13,
39cabdff1aSopenharmony_ci          11,  8,  4,  3,  3,  1,  2,  1,  0,  1,  0,  1,  2,  0,  0 }, 180
40cabdff1aSopenharmony_ci    }
41cabdff1aSopenharmony_ci};
42cabdff1aSopenharmony_ci
43cabdff1aSopenharmony_cistatic const SheerTable rgbi[2] = {
44cabdff1aSopenharmony_ci    {
45cabdff1aSopenharmony_ci        {  0,  0,  1,  3,  3,  3,  6,  8,  8, 11, 12, 15, 18, 21, 38,
46cabdff1aSopenharmony_ci           0, 22, 19, 15, 12, 11,  7,  8,  6,  4,  2,  3,  0,  0,  0 }, 0
47cabdff1aSopenharmony_ci    },
48cabdff1aSopenharmony_ci    {
49cabdff1aSopenharmony_ci        {  1,  0,  1,  1,  1,  1,  2,  1,  2,  4,  3,  5,  5,  6, 12,
50cabdff1aSopenharmony_ci          14,  6,  6,  5,  3,  3,  3,  2,  1,  1,  2,  0,  1,  0,  0 }, 164
51cabdff1aSopenharmony_ci    }
52cabdff1aSopenharmony_ci};
53cabdff1aSopenharmony_ci
54cabdff1aSopenharmony_cistatic const SheerTable ybr[2] = {
55cabdff1aSopenharmony_ci    {
56cabdff1aSopenharmony_ci        {  0,  0,  2,  2,  2,  3,  5,  5,  7,  7,  8,  9, 13, 13, 19,
57cabdff1aSopenharmony_ci          16, 14, 12,  9,  9,  7,  6,  6,  4,  4,  1,  2,  1,  0,  0 }, 70
58cabdff1aSopenharmony_ci    },
59cabdff1aSopenharmony_ci    {
60cabdff1aSopenharmony_ci        {  1,  1,  0,  1,  0,  1,  0,  0,  1,  1,  2,  2,  3,  5,  5,
61cabdff1aSopenharmony_ci           5,  5,  3,  2,  2,  1,  0,  1,  0,  0,  1,  0,  1,  0,  0 }, 212
62cabdff1aSopenharmony_ci    }
63cabdff1aSopenharmony_ci};
64cabdff1aSopenharmony_ci
65cabdff1aSopenharmony_cistatic const SheerTable ybyr[2] = {
66cabdff1aSopenharmony_ci    {
67cabdff1aSopenharmony_ci        {  0,  0,  2,  2,  3,  3,  5,  5,  8,  8, 10, 10, 13, 15, 19,
68cabdff1aSopenharmony_ci          18, 15, 12, 10, 10,  8,  7,  6,  5,  3,  2,  3,  0,  0,  0 }, 54
69cabdff1aSopenharmony_ci    },
70cabdff1aSopenharmony_ci    {
71cabdff1aSopenharmony_ci        {  1,  1,  0,  1,  0,  1,  0,  1,  1,  2,  2,  3,  2,  5,  5,
72cabdff1aSopenharmony_ci           5,  4,  3,  2,  2,  2,  1,  1,  1,  1,  0,  0,  1,  0,  0 }, 208
73cabdff1aSopenharmony_ci    }
74cabdff1aSopenharmony_ci};
75cabdff1aSopenharmony_ci
76cabdff1aSopenharmony_cistatic const SheerTable byry[2] = {
77cabdff1aSopenharmony_ci    {
78cabdff1aSopenharmony_ci        {  0,  0,  2,  2,  2,  3,  5,  5,  7,  7,  8, 11, 10, 14, 19,
79cabdff1aSopenharmony_ci          14, 16, 12, 10,  8,  7,  6,  6,  4,  4,  1,  2,  1,  0,  0 }, 70
80cabdff1aSopenharmony_ci    },
81cabdff1aSopenharmony_ci    {
82cabdff1aSopenharmony_ci        {  1,  1,  0,  1,  0,  1,  0,  1,  2,  1,  2,  2,  3,  4,  6,
83cabdff1aSopenharmony_ci           6,  4,  2,  3,  2,  1,  1,  1,  1,  1,  0,  0,  1,  0,  0 }, 208
84cabdff1aSopenharmony_ci    }
85cabdff1aSopenharmony_ci};
86cabdff1aSopenharmony_ci
87cabdff1aSopenharmony_cistatic const SheerTable ybr10i[2] = {
88cabdff1aSopenharmony_ci    {
89cabdff1aSopenharmony_ci        {  0,  0,  1,  0,  3,  8,  9, 12, 19, 27, 27, 39, 50, 63, 93,
90cabdff1aSopenharmony_ci          89, 64, 50, 38, 26, 26, 20, 12,  9,  8,  3,  0,  0,  0,  0 }, 328
91cabdff1aSopenharmony_ci    },
92cabdff1aSopenharmony_ci    {
93cabdff1aSopenharmony_ci        {  0,  1,  1,  2,  2,  1,  2,  2,  4,  4,  6,  7,  9, 13, 28,
94cabdff1aSopenharmony_ci          28, 12, 11,  6,  7,  5,  3,  3,  1,  1,  2,  2,  1,  0,  0 }, 860
95cabdff1aSopenharmony_ci    }
96cabdff1aSopenharmony_ci};
97cabdff1aSopenharmony_ci
98cabdff1aSopenharmony_cistatic const SheerTable ybr10[2] = {
99cabdff1aSopenharmony_ci    {
100cabdff1aSopenharmony_ci        {  0,  0,  0,  1,  6,  6,  8, 12, 18, 21, 27, 29, 36, 47, 71,
101cabdff1aSopenharmony_ci          72, 46, 36, 29, 27, 21, 17, 13,  7,  7,  5,  0,  0,  0,  0 }, 462
102cabdff1aSopenharmony_ci    },
103cabdff1aSopenharmony_ci    {
104cabdff1aSopenharmony_ci        {  0,  1,  2,  1,  2,  1,  1,  1,  2,  3,  2,  5,  6, 10, 20,
105cabdff1aSopenharmony_ci          20, 10,  6,  4,  3,  2,  2,  2,  1,  1,  1,  2,  1,  0,  0 }, 912
106cabdff1aSopenharmony_ci    }
107cabdff1aSopenharmony_ci};
108cabdff1aSopenharmony_ci
109cabdff1aSopenharmony_cistatic const SheerTable rgbx[2] = {
110cabdff1aSopenharmony_ci    {
111cabdff1aSopenharmony_ci        {  0,  0,  0,  1,  3,  9, 10, 13, 19, 26, 28, 35, 40, 53, 77,
112cabdff1aSopenharmony_ci          77, 50, 42, 34, 28, 25, 19, 13, 10,  8,  4,  0,  0,  0,  0 }, 400
113cabdff1aSopenharmony_ci    },
114cabdff1aSopenharmony_ci    {
115cabdff1aSopenharmony_ci        {  0,  0,  1,  2,  6,  4,  3,  2,  3,  4,  6,  8, 10, 18, 39,
116cabdff1aSopenharmony_ci          39, 18, 11,  8,  6,  4,  4,  1,  3,  5,  4,  3,  0,  0,  0 }, 812
117cabdff1aSopenharmony_ci    }
118cabdff1aSopenharmony_ci};
119cabdff1aSopenharmony_ci
120cabdff1aSopenharmony_cistatic const SheerTable yry10[2] = {
121cabdff1aSopenharmony_ci    {
122cabdff1aSopenharmony_ci        {  0,  0,  0,  1,  6,  6,  8, 12, 18, 21, 27, 29, 36, 47, 71,
123cabdff1aSopenharmony_ci          72, 46, 36, 29, 27, 21, 17, 13,  7,  7,  5,  0,  0,  0,  0 }, 462
124cabdff1aSopenharmony_ci    },
125cabdff1aSopenharmony_ci    {
126cabdff1aSopenharmony_ci        {  0,  1,  2,  1,  1,  1,  2,  3,  2,  4,  5,  5,  8, 14, 16,
127cabdff1aSopenharmony_ci          18, 11,  7,  7,  4,  4,  3,  2,  2,  1,  1,  2,  1,  0,  0 }, 896
128cabdff1aSopenharmony_ci    }
129cabdff1aSopenharmony_ci};
130cabdff1aSopenharmony_ci
131cabdff1aSopenharmony_cistatic const SheerTable yry10i[2] = {
132cabdff1aSopenharmony_ci    {
133cabdff1aSopenharmony_ci        {  0,  0,  1,  0,  3,  8,  9, 12, 19, 27, 27, 40, 48, 64, 93,
134cabdff1aSopenharmony_ci          89, 65, 49, 38, 26, 26, 20, 12,  9,  8,  3,  0,  0,  0,  0 }, 328
135cabdff1aSopenharmony_ci    },
136cabdff1aSopenharmony_ci    {
137cabdff1aSopenharmony_ci        {  0,  1,  0,  3,  1,  3,  3,  3,  6,  7,  7, 12, 11, 19, 23,
138cabdff1aSopenharmony_ci          20, 18, 12, 12,  8,  6,  5,  4,  3,  2,  2,  2,  1,  0,  0 }, 830
139cabdff1aSopenharmony_ci    }
140cabdff1aSopenharmony_ci};
141cabdff1aSopenharmony_ci
142cabdff1aSopenharmony_cistatic const SheerTable ybri[2] = {
143cabdff1aSopenharmony_ci    {
144cabdff1aSopenharmony_ci        {  0,  0,  2,  2,  2,  3,  5,  5,  7, 10, 11, 13, 15, 13, 26,
145cabdff1aSopenharmony_ci          20, 16, 17, 12, 11,  9,  7,  5,  5,  3,  3,  1,  1,  0,  0 }, 32
146cabdff1aSopenharmony_ci    },
147cabdff1aSopenharmony_ci    {
148cabdff1aSopenharmony_ci        {  1,  0,  1,  0,  1,  1,  0,  2,  1,  2,  2,  2,  3,  6,  6,
149cabdff1aSopenharmony_ci           5,  6,  3,  2,  2,  2,  1,  2,  0,  1,  1,  0,  0,  1,  0 }, 202
150cabdff1aSopenharmony_ci    }
151cabdff1aSopenharmony_ci};
152cabdff1aSopenharmony_ci
153cabdff1aSopenharmony_cistatic const SheerTable byryi[2] = {
154cabdff1aSopenharmony_ci    {
155cabdff1aSopenharmony_ci        {  0,  0,  2,  2,  2,  2,  6,  5,  8,  8, 12, 12, 16, 14, 24,
156cabdff1aSopenharmony_ci          20, 16, 18, 12, 12,  8,  7,  5,  6,  3,  1,  2,  1,  0,  0 }, 32
157cabdff1aSopenharmony_ci    },
158cabdff1aSopenharmony_ci    {
159cabdff1aSopenharmony_ci        {  1,  0,  1,  1,  0,  2,  1,  2,  2,  3,  3,  4,  5,  4,  6,
160cabdff1aSopenharmony_ci           7,  5,  4,  4,  3,  3,  2,  2,  2,  0,  1,  1,  1,  0,  0 }, 186
161cabdff1aSopenharmony_ci    }
162cabdff1aSopenharmony_ci};
163cabdff1aSopenharmony_ci
164cabdff1aSopenharmony_cistatic const SheerTable rgbxi[2] = {
165cabdff1aSopenharmony_ci    {
166cabdff1aSopenharmony_ci        {  0,  0,  1,  3,  2,  3,  4,  6, 16, 23, 27, 29, 24, 29, 76,
167cabdff1aSopenharmony_ci          78, 29, 21, 29, 27, 23, 15,  7,  4,  3,  2,  3,  0,  0,  0 }, 540
168cabdff1aSopenharmony_ci    },
169cabdff1aSopenharmony_ci    {
170cabdff1aSopenharmony_ci        {  0,  1,  1,  2,  0,  2,  6,  4,  3,  9,  7, 12, 13, 16, 29,
171cabdff1aSopenharmony_ci          32, 17, 14, 12,  7,  8,  4,  4,  6,  2,  0,  2,  1,  0,  0 }, 810
172cabdff1aSopenharmony_ci    }
173cabdff1aSopenharmony_ci};
174cabdff1aSopenharmony_ci
175cabdff1aSopenharmony_ci#endif /* AVCODEC_SHEERVIDEODATA_H */
176