]> git.sesse.net Git - ffmpeg/blob - libavcodec/a64tables.h
avformat/avio: Add Metacube support
[ffmpeg] / libavcodec / a64tables.h
1 /*
2  * a64 video encoder - tables used by a64 encoders
3  * Copyright (c) 2009 Tobias Bindhammer
4  *
5  * This file is part of FFmpeg.
6  *
7  * FFmpeg is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU Lesser General Public
9  * License as published by the Free Software Foundation; either
10  * version 2.1 of the License, or (at your option) any later version.
11  *
12  * FFmpeg is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15  * Lesser General Public License for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public
18  * License along with FFmpeg; if not, write to the Free Software
19  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20  */
21
22 /**
23  * @file
24  * a64 video encoder - tables used by a64 encoders
25  */
26
27 #ifndef AVCODEC_A64TABLES_H
28 #define AVCODEC_A64TABLES_H
29
30 #include <stdint.h>
31
32 /**
33  * dither patterns used vor rendering the multicolor charset
34  */
35
36 static const uint8_t multi_dither_patterns[9][4][4] = {
37     {
38      {0, 0, 0, 0},
39      {0, 0, 0, 0},
40      {0, 0, 0, 0},
41      {0, 0, 0, 0}
42      },
43     {
44      {1, 0, 0, 0},
45      {0, 0, 0, 0},
46      {0, 0, 1, 0},
47      {0, 0, 0, 0}
48      },
49     {
50      {1, 0, 0, 0},
51      {0, 0, 1, 0},
52      {0, 1, 0, 0},
53      {0, 0, 0, 1}
54      },
55     {
56      {1, 0, 0, 0},
57      {0, 1, 0, 1},
58      {0, 0, 1, 0},
59      {0, 1, 0, 1}
60      },
61     {
62      {1, 0, 1, 0},
63      {0, 1, 0, 1},
64      {1, 0, 1, 0},
65      {0, 1, 0, 1}
66      },
67     {
68      {1, 1, 1, 0},
69      {0, 1, 0, 1},
70      {1, 0, 1, 1},
71      {0, 1, 0, 1}
72      },
73     {
74      {0, 1, 1, 1},
75      {1, 1, 0, 1},
76      {1, 0, 1, 1},
77      {1, 1, 1, 0}
78      },
79     {
80      {0, 1, 1, 1},
81      {1, 1, 1, 1},
82      {1, 1, 0, 1},
83      {1, 1, 1, 1}
84      },
85     {
86      {1, 1, 1, 1},
87      {1, 1, 1, 1},
88      {1, 1, 1, 1},
89      {1, 1, 1, 1}
90      },
91 };
92
93 static const uint8_t interlaced_dither_patterns[9][8][4] = {
94     {
95      {0, 0, 0, 0}, {0, 0, 0, 0},
96      {0, 0, 0, 0}, {0, 0, 0, 0},
97      {0, 0, 0, 0}, {0, 0, 0, 0},
98      {0, 0, 0, 0}, {0, 0, 0, 0},
99      },
100     {
101      {1, 0, 1, 0}, {0, 0, 0, 0},
102      {0, 0, 0, 0}, {0, 0, 0, 0},
103      {1, 0, 1, 0}, {0, 0, 0, 0},
104      {0, 0, 0, 0}, {0, 0, 0, 0},
105      },
106     {
107      {1, 0, 1, 0}, {0, 0, 0, 0},
108      {0, 0, 0, 0}, {0, 1, 0, 1},
109      {1, 0, 1, 0}, {0, 0, 0, 0},
110      {0, 0, 0, 0}, {0, 1, 0, 1},
111      },
112     {
113      {1, 0, 1, 0}, {0, 1, 0, 1},
114      {0, 1, 0, 1}, {0, 0, 0, 0},
115      {1, 0, 1, 0}, {0, 1, 0, 1},
116      {0, 1, 0, 1}, {0, 0, 0, 0},
117      },
118     {
119      {1, 0, 1, 0}, {0, 1, 0, 1},
120      {0, 1, 0, 1}, {1, 0, 1, 0},
121      {1, 0, 1, 0}, {0, 1, 0, 1},
122      {0, 1, 0, 1}, {1, 0, 1, 0},
123      },
124     {
125      {1, 0, 1, 0}, {0, 1, 0, 1},
126      {1, 1, 1, 1}, {1, 0, 1, 0},
127      {1, 0, 1, 0}, {0, 1, 0, 1},
128      {1, 1, 1, 1}, {1, 0, 1, 0},
129      },
130     {
131      {1, 0, 1, 0}, {1, 1, 1, 1},
132      {1, 1, 1, 1}, {0, 1, 0, 1},
133      {1, 0, 1, 0}, {1, 1, 1, 1},
134      {1, 1, 1, 1}, {0, 1, 0, 1},
135      },
136     {
137      {1, 1, 1, 1}, {1, 1, 1, 1},
138      {1, 1, 1, 1}, {0, 1, 0, 1},
139      {1, 1, 1, 1}, {1, 1, 1, 1},
140      {1, 1, 1, 1}, {0, 1, 0, 1},
141      },
142     {
143      {1, 1, 1, 1}, {1, 1, 1, 1},
144      {1, 1, 1, 1}, {1, 1, 1, 1},
145      {1, 1, 1, 1}, {1, 1, 1, 1},
146      {1, 1, 1, 1}, {1, 1, 1, 1},
147      }
148 };
149
150 #endif /* AVCODEC_A64TABLES_H */