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 */ 151