3const std::array<const std::array<const uint8_t,16>,1+8+8>
lang_chars
5 { 0, 0x23,0x24,0x40,0x5b,0x5c,0x5d,0x5e,0x5f,0x60,0x7b,0x7c,0x7d,0x7e },
9 { 0, 0xa3,0x24,0x40,0xab,0xbd,0xbb,0xac,0x23,0xad,0xbc,0xa6,0xbe,0xf7 },
11 { 0, 0x23,0x24,0xa7,0xc4,0xd6,0xdc,0x5e,0x5f,0xb0,0xe4,0xf6,0xfc,0xdf },
13 { 0, 0x23,0xa4,0xc9,0xc4,0xd6,0xc5,0xdc,0x5f,0xe9,0xe4,0xf6,0xe5,0xfc },
15 { 0, 0xa3,0x24,0xe9,0xb0,0xe7,0xbb,0xac,0x23,0xf9,0xe0,0xf2,0xe8,0xec },
17 { 0, 0xe9,0xef,0xe0,0xeb,0xea,0xf9,0xee,0x23,0xe8,0xe2,0xf4,0xfb,0xe7 },
19 { 0, 0xe7,0x24,0xa1,0xe1,0xe9,0xed,0xf3,0xfa,0xbf,0xfc,0xf1,0xe8,0xe0 },
21 { 0, 0x23,0x75,0x63,0x74,0x7a,0xfd,0xed,0x72,0xe9,0xe1,0x65,0xfa,0x73 },
23 { 0, 0xa3,0x24,0x40,0xab,0xbd,0xbb,0xac,0x23,0xad,0xbc,0xa6,0xbe,0xf7 },
27 { 0, 0x23,0xf1,0xb1,0xaf,0xa6,0xa3,0xe6,0xf3,0xea,0xbf,0xb6,0xb3,0xbc },
29 { 0, 0x23,0x24,0xa7,0xc4,0xd6,0xdc,0x5e,0x5f,0xb0,0xe4,0xf6,0xfc,0xdf },
31 { 0, 0x23,0xf5,0xa9,0xc4,0xd6,0xae,0xdc,0xd5,0xb9,0xe4,0xf6,0xbe,0xfc },
33 { 0, 0x23,0x24,0xa9,0xeb,0xea,0xae,0xe8,0xfc,0xb9,0xb1,0x75,0xbe,0x69 },
35 { 0, 0xe9,0x69,0x61,0xeb,0xec,0x75,0xee,0x23,0x65,0xe2,0xf4,0x75,0xe7 },
37 { 0, 0x23,0xcb,0xc8,0xc6,0xae,0xd0,0xa9,0xeb,0xe8,0xe6,0xae,0xf0,0xb9 },
39 { 0, 0x23,0xf9,0xe8,0xbb,0xbe,0xfd,0xed,0xf8,0xe9,0xe1,0xec,0xfa,0xb9 },
41 { 0, 0x23,0xa2,0xde,0xc2,0xaa,0xc3,0xce,0x69,0xfe,0xe2,0xba,0xe3,0xee },
47 0x23,0xa4,0x40,0x5b,0x5c,0x5d,0x5e,0x5f,0x27,0x7b,0x7c,0x7d,0x7e
50const std::array<const uint16_t,256>
hammtab
52 0x0101, 0x100f, 0x0001, 0x0101, 0x100f, 0x0100, 0x0101, 0x100f,
53 0x100f, 0x0102, 0x0101, 0x100f, 0x010a, 0x100f, 0x100f, 0x0107,
54 0x100f, 0x0100, 0x0101, 0x100f, 0x0100, 0x0000, 0x100f, 0x0100,
55 0x0106, 0x100f, 0x100f, 0x010b, 0x100f, 0x0100, 0x0103, 0x100f,
56 0x100f, 0x010c, 0x0101, 0x100f, 0x0104, 0x100f, 0x100f, 0x0107,
57 0x0106, 0x100f, 0x100f, 0x0107, 0x100f, 0x0107, 0x0107, 0x0007,
58 0x0106, 0x100f, 0x100f, 0x0105, 0x100f, 0x0100, 0x010d, 0x100f,
59 0x0006, 0x0106, 0x0106, 0x100f, 0x0106, 0x100f, 0x100f, 0x0107,
60 0x100f, 0x0102, 0x0101, 0x100f, 0x0104, 0x100f, 0x100f, 0x0109,
61 0x0102, 0x0002, 0x100f, 0x0102, 0x100f, 0x0102, 0x0103, 0x100f,
62 0x0108, 0x100f, 0x100f, 0x0105, 0x100f, 0x0100, 0x0103, 0x100f,
63 0x100f, 0x0102, 0x0103, 0x100f, 0x0103, 0x100f, 0x0003, 0x0103,
64 0x0104, 0x100f, 0x100f, 0x0105, 0x0004, 0x0104, 0x0104, 0x100f,
65 0x100f, 0x0102, 0x010f, 0x100f, 0x0104, 0x100f, 0x100f, 0x0107,
66 0x100f, 0x0105, 0x0105, 0x0005, 0x0104, 0x100f, 0x100f, 0x0105,
67 0x0106, 0x100f, 0x100f, 0x0105, 0x100f, 0x010e, 0x0103, 0x100f,
68 0x100f, 0x010c, 0x0101, 0x100f, 0x010a, 0x100f, 0x100f, 0x0109,
69 0x010a, 0x100f, 0x100f, 0x010b, 0x000a, 0x010a, 0x010a, 0x100f,
70 0x0108, 0x100f, 0x100f, 0x010b, 0x100f, 0x0100, 0x010d, 0x100f,
71 0x100f, 0x010b, 0x010b, 0x000b, 0x010a, 0x100f, 0x100f, 0x010b,
72 0x010c, 0x000c, 0x100f, 0x010c, 0x100f, 0x010c, 0x010d, 0x100f,
73 0x100f, 0x010c, 0x010f, 0x100f, 0x010a, 0x100f, 0x100f, 0x0107,
74 0x100f, 0x010c, 0x010d, 0x100f, 0x010d, 0x100f, 0x000d, 0x010d,
75 0x0106, 0x100f, 0x100f, 0x010b, 0x100f, 0x010e, 0x010d, 0x100f,
76 0x0108, 0x100f, 0x100f, 0x0109, 0x100f, 0x0109, 0x0109, 0x0009,
77 0x100f, 0x0102, 0x010f, 0x100f, 0x010a, 0x100f, 0x100f, 0x0109,
78 0x0008, 0x0108, 0x0108, 0x100f, 0x0108, 0x100f, 0x100f, 0x0109,
79 0x0108, 0x100f, 0x100f, 0x010b, 0x100f, 0x010e, 0x0103, 0x100f,
80 0x100f, 0x010c, 0x010f, 0x100f, 0x0104, 0x100f, 0x100f, 0x0109,
81 0x010f, 0x100f, 0x000f, 0x010f, 0x100f, 0x010e, 0x010f, 0x100f,
82 0x0108, 0x100f, 0x100f, 0x0105, 0x100f, 0x010e, 0x010d, 0x100f,
83 0x100f, 0x010e, 0x010f, 0x100f, 0x010e, 0x000e, 0x100f, 0x010e,
88 255,255,255,255,255,255,255,255,255, 0,
89 255, 8,255,255,255,255,255,255,255,255,
90 255,255,255,255,255,255,255,255, 6,255,
91 14,255,255,255,255,255, 12,255, 4,255,
92 255,255,255,255,255,255,255,255,255, 10,
93 255, 2,255,255,255,255,255,255,255,255,
94 255,255,255,255, 1,255, 9,255,255,255,
95 255,255,255,255,255,255,255,255,255,255,
96 255,255,255,255,255, 7,255, 15,255,255,
97 255,255,255,255,255,255,255,255,255,255,
98 255,255,255,255,255,255,255,255,255, 13,
99 255, 5,255,255,255,255,255,255,255,255,
100 11,255, 3,255,255,255,255,255,255,255,
101 255,255,255, 12,255, 4,255,255,255,255,
102 255,255,255,255, 10,255, 2,255,255,255,
103 255,255,255,255,255,255,255,255,255,255,
104 255,255,255,255,255,255,255,255, 0,255,
105 8,255,255,255,255,255,255,255,255,255,
106 255,255,255,255,255,255,255,255,255, 6,
107 255, 14,255,255,255,255,255,255,255,255,
108 255,255,255,255, 13,255, 5,255,255,255,
109 255,255,255,255,255,255,255, 11,255, 3,
110 255,255,255,255,255, 1,255, 9,255,255,
111 255,255,255,255,255,255,255,255,255,255,
112 255,255,255,255, 7,255, 15,255,255,255,
113 255,255,255,255,255,255 };
118 0x01, 0xff, 0x81, 0x01, 0xff, 0x00, 0x01, 0xff,
119 0xff, 0x02, 0x01, 0xff, 0x0a, 0xff, 0xff, 0x07,
120 0xff, 0x00, 0x01, 0xff, 0x00, 0x80, 0xff, 0x00,
121 0x06, 0xff, 0xff, 0x0b, 0xff, 0x00, 0x03, 0xff,
122 0xff, 0x0c, 0x01, 0xff, 0x04, 0xff, 0xff, 0x07,
123 0x06, 0xff, 0xff, 0x07, 0xff, 0x07, 0x07, 0x87,
124 0x06, 0xff, 0xff, 0x05, 0xff, 0x00, 0x0d, 0xff,
125 0x86, 0x06, 0x06, 0xff, 0x06, 0xff, 0xff, 0x07,
126 0xff, 0x02, 0x01, 0xff, 0x04, 0xff, 0xff, 0x09,
127 0x02, 0x82, 0xff, 0x02, 0xff, 0x02, 0x03, 0xff,
128 0x08, 0xff, 0xff, 0x05, 0xff, 0x00, 0x03, 0xff,
129 0xff, 0x02, 0x03, 0xff, 0x03, 0xff, 0x83, 0x03,
130 0x04, 0xff, 0xff, 0x05, 0x84, 0x04, 0x04, 0xff,
131 0xff, 0x02, 0x0f, 0xff, 0x04, 0xff, 0xff, 0x07,
132 0xff, 0x05, 0x05, 0x85, 0x04, 0xff, 0xff, 0x05,
133 0x06, 0xff, 0xff, 0x05, 0xff, 0x0e, 0x03, 0xff,
134 0xff, 0x0c, 0x01, 0xff, 0x0a, 0xff, 0xff, 0x09,
135 0x0a, 0xff, 0xff, 0x0b, 0x8a, 0x0a, 0x0a, 0xff,
136 0x08, 0xff, 0xff, 0x0b, 0xff, 0x00, 0x0d, 0xff,
137 0xff, 0x0b, 0x0b, 0x8b, 0x0a, 0xff, 0xff, 0x0b,
138 0x0c, 0x8c, 0xff, 0x0c, 0xff, 0x0c, 0x0d, 0xff,
139 0xff, 0x0c, 0x0f, 0xff, 0x0a, 0xff, 0xff, 0x07,
140 0xff, 0x0c, 0x0d, 0xff, 0x0d, 0xff, 0x8d, 0x0d,
141 0x06, 0xff, 0xff, 0x0b, 0xff, 0x0e, 0x0d, 0xff,
142 0x08, 0xff, 0xff, 0x09, 0xff, 0x09, 0x09, 0x89,
143 0xff, 0x02, 0x0f, 0xff, 0x0a, 0xff, 0xff, 0x09,
144 0x88, 0x08, 0x08, 0xff, 0x08, 0xff, 0xff, 0x09,
145 0x08, 0xff, 0xff, 0x0b, 0xff, 0x0e, 0x03, 0xff,
146 0xff, 0x0c, 0x0f, 0xff, 0x04, 0xff, 0xff, 0x09,
147 0x0f, 0xff, 0x8f, 0x0f, 0xff, 0x0e, 0x0f, 0xff,
148 0x08, 0xff, 0xff, 0x05, 0xff, 0x0e, 0x0d, 0xff,
149 0xff, 0x0e, 0x0f, 0xff, 0x0e, 0x8e, 0xff, 0x0e,
154 0x00, 0x80, 0x40, 0xc0, 0x20, 0xa0, 0x60, 0xe0,
155 0x10, 0x90, 0x50, 0xd0, 0x30, 0xb0, 0x70, 0xf0,
156 0x08, 0x88, 0x48, 0xc8, 0x28, 0xa8, 0x68, 0xe8,
157 0x18, 0x98, 0x58, 0xd8, 0x38, 0xb8, 0x78, 0xf8,
158 0x04, 0x84, 0x44, 0xc4, 0x24, 0xa4, 0x64, 0xe4,
159 0x14, 0x94, 0x54, 0xd4, 0x34, 0xb4, 0x74, 0xf4,
160 0x0c, 0x8c, 0x4c, 0xcc, 0x2c, 0xac, 0x6c, 0xec,
161 0x1c, 0x9c, 0x5c, 0xdc, 0x3c, 0xbc, 0x7c, 0xfc,
162 0x02, 0x82, 0x42, 0xc2, 0x22, 0xa2, 0x62, 0xe2,
163 0x12, 0x92, 0x52, 0xd2, 0x32, 0xb2, 0x72, 0xf2,
164 0x0a, 0x8a, 0x4a, 0xca, 0x2a, 0xaa, 0x6a, 0xea,
165 0x1a, 0x9a, 0x5a, 0xda, 0x3a, 0xba, 0x7a, 0xfa,
166 0x06, 0x86, 0x46, 0xc6, 0x26, 0xa6, 0x66, 0xe6,
167 0x16, 0x96, 0x56, 0xd6, 0x36, 0xb6, 0x76, 0xf6,
168 0x0e, 0x8e, 0x4e, 0xce, 0x2e, 0xae, 0x6e, 0xee,
169 0x1e, 0x9e, 0x5e, 0xde, 0x3e, 0xbe, 0x7e, 0xfe,
170 0x01, 0x81, 0x41, 0xc1, 0x21, 0xa1, 0x61, 0xe1,
171 0x11, 0x91, 0x51, 0xd1, 0x31, 0xb1, 0x71, 0xf1,
172 0x09, 0x89, 0x49, 0xc9, 0x29, 0xa9, 0x69, 0xe9,
173 0x19, 0x99, 0x59, 0xd9, 0x39, 0xb9, 0x79, 0xf9,
174 0x05, 0x85, 0x45, 0xc5, 0x25, 0xa5, 0x65, 0xe5,
175 0x15, 0x95, 0x55, 0xd5, 0x35, 0xb5, 0x75, 0xf5,
176 0x0d, 0x8d, 0x4d, 0xcd, 0x2d, 0xad, 0x6d, 0xed,
177 0x1d, 0x9d, 0x5d, 0xdd, 0x3d, 0xbd, 0x7d, 0xfd,
178 0x03, 0x83, 0x43, 0xc3, 0x23, 0xa3, 0x63, 0xe3,
179 0x13, 0x93, 0x53, 0xd3, 0x33, 0xb3, 0x73, 0xf3,
180 0x0b, 0x8b, 0x4b, 0xcb, 0x2b, 0xab, 0x6b, 0xeb,
181 0x1b, 0x9b, 0x5b, 0xdb, 0x3b, 0xbb, 0x7b, 0xfb,
182 0x07, 0x87, 0x47, 0xc7, 0x27, 0xa7, 0x67, 0xe7,
183 0x17, 0x97, 0x57, 0xd7, 0x37, 0xb7, 0x77, 0xf7,
184 0x0f, 0x8f, 0x4f, 0xcf, 0x2f, 0xaf, 0x6f, 0xef,
185 0x1f, 0x9f, 0x5f, 0xdf, 0x3f, 0xbf, 0x7f, 0xff
190 "Full format 4:3, 576 lines",
191 "Letterbox 14:9 centre, 504 lines",
192 "Letterbox 14:9 top, 504 lines",
193 "Letterbox 16:9 centre, 430 lines",
194 "Letterbox 16:9 top, 430 lines",
195 "Letterbox > 16:9 centre",
196 "Full format 14:9 centre, 576 lines",
197 "Anamorphic 16:9, 576 lines"
203 "in active image area",
204 "out of active image area",
212const std::array<const std::array<const uint8_t,256>,3>
hamm24par
215 0, 33, 34, 3, 35, 2, 1, 32, 36, 5, 6, 39, 7, 38, 37, 4,
216 37, 4, 7, 38, 6, 39, 36, 5, 1, 32, 35, 2, 34, 3, 0, 33,
217 38, 7, 4, 37, 5, 36, 39, 6, 2, 35, 32, 1, 33, 0, 3, 34,
218 3, 34, 33, 0, 32, 1, 2, 35, 39, 6, 5, 36, 4, 37, 38, 7,
219 39, 6, 5, 36, 4, 37, 38, 7, 3, 34, 33, 0, 32, 1, 2, 35,
220 2, 35, 32, 1, 33, 0, 3, 34, 38, 7, 4, 37, 5, 36, 39, 6,
221 1, 32, 35, 2, 34, 3, 0, 33, 37, 4, 7, 38, 6, 39, 36, 5,
222 36, 5, 6, 39, 7, 38, 37, 4, 0, 33, 34, 3, 35, 2, 1, 32,
223 40, 9, 10, 43, 11, 42, 41, 8, 12, 45, 46, 15, 47, 14, 13, 44,
224 13, 44, 47, 14, 46, 15, 12, 45, 41, 8, 11, 42, 10, 43, 40, 9,
225 14, 47, 44, 13, 45, 12, 15, 46, 42, 11, 8, 41, 9, 40, 43, 10,
226 43, 10, 9, 40, 8, 41, 42, 11, 15, 46, 45, 12, 44, 13, 14, 47,
227 15, 46, 45, 12, 44, 13, 14, 47, 43, 10, 9, 40, 8, 41, 42, 11,
228 42, 11, 8, 41, 9, 40, 43, 10, 14, 47, 44, 13, 45, 12, 15, 46,
229 41, 8, 11, 42, 10, 43, 40, 9, 13, 44, 47, 14, 46, 15, 12, 45,
230 12, 45, 46, 15, 47, 14, 13, 44, 40, 9, 10, 43, 11, 42, 41, 8
233 0, 41, 42, 3, 43, 2, 1, 40, 44, 5, 6, 47, 7, 46, 45, 4,
234 45, 4, 7, 46, 6, 47, 44, 5, 1, 40, 43, 2, 42, 3, 0, 41,
235 46, 7, 4, 45, 5, 44, 47, 6, 2, 43, 40, 1, 41, 0, 3, 42,
236 3, 42, 41, 0, 40, 1, 2, 43, 47, 6, 5, 44, 4, 45, 46, 7,
237 47, 6, 5, 44, 4, 45, 46, 7, 3, 42, 41, 0, 40, 1, 2, 43,
238 2, 43, 40, 1, 41, 0, 3, 42, 46, 7, 4, 45, 5, 44, 47, 6,
239 1, 40, 43, 2, 42, 3, 0, 41, 45, 4, 7, 46, 6, 47, 44, 5,
240 44, 5, 6, 47, 7, 46, 45, 4, 0, 41, 42, 3, 43, 2, 1, 40,
241 48, 25, 26, 51, 27, 50, 49, 24, 28, 53, 54, 31, 55, 30, 29, 52,
242 29, 52, 55, 30, 54, 31, 28, 53, 49, 24, 27, 50, 26, 51, 48, 25,
243 30, 55, 52, 29, 53, 28, 31, 54, 50, 27, 24, 49, 25, 48, 51, 26,
244 51, 26, 25, 48, 24, 49, 50, 27, 31, 54, 53, 28, 52, 29, 30, 55,
245 31, 54, 53, 28, 52, 29, 30, 55, 51, 26, 25, 48, 24, 49, 50, 27,
246 50, 27, 24, 49, 25, 48, 51, 26, 30, 55, 52, 29, 53, 28, 31, 54,
247 49, 24, 27, 50, 26, 51, 48, 25, 29, 52, 55, 30, 54, 31, 28, 53,
248 28, 53, 54, 31, 55, 30, 29, 52, 48, 25, 26, 51, 27, 50, 49, 24
251 63, 14, 13, 60, 12, 61, 62, 15, 11, 58, 57, 8, 56, 9, 10, 59,
252 10, 59, 56, 9, 57, 8, 11, 58, 62, 15, 12, 61, 13, 60, 63, 14,
253 9, 56, 59, 10, 58, 11, 8, 57, 61, 12, 15, 62, 14, 63, 60, 13,
254 60, 13, 14, 63, 15, 62, 61, 12, 8, 57, 58, 11, 59, 10, 9, 56,
255 8, 57, 58, 11, 59, 10, 9, 56, 60, 13, 14, 63, 15, 62, 61, 12,
256 61, 12, 15, 62, 14, 63, 60, 13, 9, 56, 59, 10, 58, 11, 8, 57,
257 62, 15, 12, 61, 13, 60, 63, 14, 10, 59, 56, 9, 57, 8, 11, 58,
258 11, 58, 57, 8, 56, 9, 10, 59, 63, 14, 13, 60, 12, 61, 62, 15,
259 31, 46, 45, 28, 44, 29, 30, 47, 43, 26, 25, 40, 24, 41, 42, 27,
260 42, 27, 24, 41, 25, 40, 43, 26, 30, 47, 44, 29, 45, 28, 31, 46,
261 41, 24, 27, 42, 26, 43, 40, 25, 29, 44, 47, 30, 46, 31, 28, 45,
262 28, 45, 46, 31, 47, 30, 29, 44, 40, 25, 26, 43, 27, 42, 41, 24,
263 40, 25, 26, 43, 27, 42, 41, 24, 28, 45, 46, 31, 47, 30, 29, 44,
264 29, 44, 47, 30, 46, 31, 28, 45, 41, 24, 27, 42, 26, 43, 40, 25,
265 30, 47, 44, 29, 45, 28, 31, 46, 42, 27, 24, 41, 25, 40, 43, 26,
266 43, 26, 25, 40, 24, 41, 42, 27, 31, 46, 45, 28, 44, 29, 30, 47
274 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
275 2, 2, 2, 2, 3, 3, 3, 3, 2, 2, 2, 2, 3, 3, 3, 3,
276 4, 4, 4, 4, 5, 5, 5, 5, 4, 4, 4, 4, 5, 5, 5, 5,
277 6, 6, 6, 6, 7, 7, 7, 7, 6, 6, 6, 6, 7, 7, 7, 7,
278 8, 8, 8, 8, 9, 9, 9, 9, 8, 8, 8, 8, 9, 9, 9, 9,
279 10, 10, 10, 10, 11, 11, 11, 11, 10, 10, 10, 10, 11, 11, 11, 11,
280 12, 12, 12, 12, 13, 13, 13, 13, 12, 12, 12, 12, 13, 13, 13, 13,
281 14, 14, 14, 14, 15, 15, 15, 15, 14, 14, 14, 14, 15, 15, 15, 15,
282 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
283 2, 2, 2, 2, 3, 3, 3, 3, 2, 2, 2, 2, 3, 3, 3, 3,
284 4, 4, 4, 4, 5, 5, 5, 5, 4, 4, 4, 4, 5, 5, 5, 5,
285 6, 6, 6, 6, 7, 7, 7, 7, 6, 6, 6, 6, 7, 7, 7, 7,
286 8, 8, 8, 8, 9, 9, 9, 9, 8, 8, 8, 8, 9, 9, 9, 9,
287 10, 10, 10, 10, 11, 11, 11, 11, 10, 10, 10, 10, 11, 11, 11, 11,
288 12, 12, 12, 12, 13, 13, 13, 13, 12, 12, 12, 12, 13, 13, 13, 13,
289 14, 14, 14, 14, 15, 15, 15, 15, 14, 14, 14, 14, 15, 15, 15, 15
300 0x0000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000,
301 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000,
302 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000,
303 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000,
304 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100,
305 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100,
306 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100,
307 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000,
316 0x00000, 0x00000, 0x00000, 0x00000, 0x00000, 0x00000, 0x00000, 0x00000,
317 0x00000, 0x00000, 0x00000, 0x00000, 0x00000, 0x00000, 0x00000, 0x00000,
318 0x00000, 0x00000, 0x00000, 0x00000, 0x00000, 0x00000, 0x00000, 0x00000,
319 0x00000, 0x00000, 0x00000, 0x00000, 0x00000, 0x00000, 0x00000, 0x00000,
320 0x00000, 0x00000, 0x00000, 0x00001, 0x00000, 0x00002, 0x00004, 0x00008,
321 0x00000, 0x00010, 0x00020, 0x00040, 0x00080, 0x00100, 0x00200, 0x00400,
322 0x00000, 0x00800, 0x01000, 0x02000, 0x04000, 0x08000, 0x10000, 0x20000,
323 0x00000, 0x00000, 0x00000, 0x00000, 0x00000, 0x00000, 0x00000, 0x00000,
349 return (a & 15) | ((b & 15) * 16);
355 int x =
hamm24val[
p[0]] + (
p[1] % 128 * 16) + (
p[2] % 128 * 2048);
int hamm24(const uint8_t *p, int *err)
const std::array< const int32_t, 64 > hamm24cor
Mapping from parity checks made by table hamm24par to faulty bit in the decoded 18 bit word.
const std::array< const uint16_t, 256 > hammtab
const std::array< const uint8_t, 256 > vbi_bit_reverse
const std::array< const uint8_t, 256 > hamm24val
Table to extract the lower 4 bit from hamm24/18 encoded bytes.
int hamm8(const uint8_t *p, int *err)
const std::array< const std::string, 4 > subtitles
const std::array< const uint16_t, 64 > hamm24err
Mapping from parity checks made by table hamm24par to error results return by hamm24.
const std::array< const std::array< const uint8_t, 256 >, 3 > hamm24par
This table generates the parity checks for hamm24/18 decoding.
const std::array< const std::string, 8 > formats
const std::array< const uint8_t, 256 > hamm84tab
const std::array< const uint8_t, 256 > unham84tab
const std::array< const std::array< const uint8_t, 16 >, 1+8+8 > lang_chars
const std::array< const uint8_t, 13 > chartab_original
int hamm84(const uint8_t *p, int *err)
int hamm16(const uint8_t *p, int *err)