33 #define AIC_HDR_SIZE 24
34 #define AIC_BAND_COEFFS (64 + 32 + 192 + 96)
49 8, 16, 19, 22, 22, 26, 26, 27,
50 16, 16, 22, 22, 26, 27, 27, 29,
51 19, 22, 26, 26, 27, 29, 29, 35,
52 22, 24, 27, 27, 29, 32, 34, 38,
53 26, 27, 29, 29, 32, 35, 38, 46,
54 27, 29, 34, 34, 35, 40, 46, 56,
55 29, 34, 34, 37, 40, 48, 56, 69,
56 34, 37, 38, 40, 48, 58, 69, 83,
60 0, 4, 1, 2, 5, 8, 12, 9,
61 6, 3, 7, 10, 13, 14, 11, 15,
62 47, 43, 46, 45, 42, 39, 35, 38,
63 41, 44, 40, 37, 34, 33, 36, 32,
64 16, 20, 17, 18, 21, 24, 28, 25,
65 22, 19, 23, 26, 29, 30, 27, 31,
66 63, 59, 62, 61, 58, 55, 51, 54,
67 57, 60, 56, 53, 50, 49, 52, 48,
71 64, 72, 65, 66, 73, 80, 88, 81,
72 74, 67, 75, 82, 89, 90, 83, 91,
73 0, 4, 1, 2, 5, 8, 12, 9,
74 6, 3, 7, 10, 13, 14, 11, 15,
75 16, 20, 17, 18, 21, 24, 28, 25,
76 22, 19, 23, 26, 29, 30, 27, 31,
77 155, 147, 154, 153, 146, 139, 131, 138,
78 145, 152, 144, 137, 130, 129, 136, 128,
79 47, 43, 46, 45, 42, 39, 35, 38,
80 41, 44, 40, 37, 34, 33, 36, 32,
81 63, 59, 62, 61, 58, 55, 51, 54,
82 57, 60, 56, 53, 50, 49, 52, 48,
83 96, 104, 97, 98, 105, 112, 120, 113,
84 106, 99, 107, 114, 121, 122, 115, 123,
85 68, 76, 69, 70, 77, 84, 92, 85,
86 78, 71, 79, 86, 93, 94, 87, 95,
87 100, 108, 101, 102, 109, 116, 124, 117,
88 110, 103, 111, 118, 125, 126, 119, 127,
89 187, 179, 186, 185, 178, 171, 163, 170,
90 177, 184, 176, 169, 162, 161, 168, 160,
91 159, 151, 158, 157, 150, 143, 135, 142,
92 149, 156, 148, 141, 134, 133, 140, 132,
93 191, 183, 190, 189, 182, 175, 167, 174,
94 181, 188, 180, 173, 166, 165, 172, 164,
98 0, 4, 1, 2, 5, 8, 12, 9,
99 6, 3, 7, 10, 13, 14, 11, 15,
100 31, 27, 30, 29, 26, 23, 19, 22,
101 25, 28, 24, 21, 18, 17, 20, 16,
102 32, 36, 33, 34, 37, 40, 44, 41,
103 38, 35, 39, 42, 45, 46, 43, 47,
104 63, 59, 62, 61, 58, 55, 51, 54,
105 57, 60, 56, 53, 50, 49, 52, 48,
109 16, 24, 17, 18, 25, 32, 40, 33,
110 26, 19, 27, 34, 41, 42, 35, 43,
111 0, 4, 1, 2, 5, 8, 12, 9,
112 6, 3, 7, 10, 13, 14, 11, 15,
113 20, 28, 21, 22, 29, 36, 44, 37,
114 30, 23, 31, 38, 45, 46, 39, 47,
115 95, 87, 94, 93, 86, 79, 71, 78,
116 85, 92, 84, 77, 70, 69, 76, 68,
117 63, 59, 62, 61, 58, 55, 51, 54,
118 57, 60, 56, 53, 50, 49, 52, 48,
119 91, 83, 90, 89, 82, 75, 67, 74,
120 81, 88, 80, 73, 66, 65, 72, 64,
121 112, 120, 113, 114, 121, 128, 136, 129,
122 122, 115, 123, 130, 137, 138, 131, 139,
123 96, 100, 97, 98, 101, 104, 108, 105,
124 102, 99, 103, 106, 109, 110, 107, 111,
125 116, 124, 117, 118, 125, 132, 140, 133,
126 126, 119, 127, 134, 141, 142, 135, 143,
127 191, 183, 190, 189, 182, 175, 167, 174,
128 181, 188, 180, 173, 166, 165, 172, 164,
129 159, 155, 158, 157, 154, 151, 147, 150,
130 153, 156, 152, 149, 146, 145, 148, 144,
131 187, 179, 186, 185, 178, 171, 163, 170,
132 177, 184, 176, 169, 162, 161, 168, 160,
174 if (frame_size > size) {
181 "Picture dimension changed: old: %d x %d, new: %d x %d\n",
185 ctx->
quant = src[15];
191 #define GET_CODE(val, type, add_bits) \
194 val = get_ue_golomb(gb); \
196 val = get_unary(gb, 1, 31); \
198 val = (val << add_bits) + get_bits(gb, add_bits); \
202 int band,
int slice_width,
int force_chroma)
204 int has_skips, coeff_type, coeff_bits, skip_type,
skip_bits;
218 for (mb = 0; mb < slice_width; mb++) {
221 GET_CODE(val, skip_type, skip_bits);
225 if (idx >= num_coeffs)
227 GET_CODE(val, coeff_type, coeff_bits);
231 dst[scan[idx]] =
val;
232 }
while (idx < num_coeffs - 1);
236 for (mb = 0; mb < slice_width; mb++) {
237 for (idx = 0; idx < num_coeffs; idx++) {
238 GET_CODE(val, coeff_type, coeff_bits);
241 dst[scan[idx]] =
val;
250 int16_t **base, int16_t **ext)
254 for (i = 0; i < 4; i++) {
255 for (j = 0; j < 4; j++)
256 dst[scan[i * 8 + j]] = (*base)[j];
257 for (j = 0; j < 4; j++)
258 dst[scan[i * 8 + j + 4]] = (*ext)[j];
263 for (j = 0; j < 8; j++)
264 dst[scan[i * 8 + j]] = (*ext)[j];
270 int16_t **base, int16_t **ext,
276 for (i = 0; i < 8; i++) {
277 for (j = 0; j < 4; j++)
278 dst[scan[i * 8 + j]] = (*base)[j];
279 for (j = 0; j < 4; j++)
280 dst[scan[i * 8 + j + 4]] = (*ext)[j];
285 for (i = 0; i < 64; i++)
286 dst[scan[i]] = (*ext)[i];
295 for (i = 0; i < 64; i++) {
296 int val = (uint16_t)block[i];
299 block[i] = (((val >> 1) ^ -sign) * q * quant_matrix[i] >> 4)
318 Y = ctx->
frame->
data[0] + mb_x * 16 + mb_y * 16 * ystride;
319 for (i = 0; i < 2; i++)
320 C[i] = ctx->
frame->
data[i + 1] + mb_x * 8
332 for (mb = 0; mb < slice_width; mb++) {
333 for (blk = 0; blk < 4; blk++) {
339 &base_y, &ext_y, blk);
344 dst = Y + (blk >> 1) * 8 * ystride + (blk & 1) * 8;
347 dst = Y + (blk & 1) * 8 + (blk >> 1) * ystride;
354 for (blk = 0; blk < 2; blk++) {
373 int buf_size = avpkt->
size;
385 if (buf_size < off) {
401 slice_size = bytestream2_get_le16(&gb) * 4;
402 if (slice_size + off > buf_size || !slice_size) {
408 buf + off, slice_size)) < 0)
432 for (i = 0; i < 64; i++)
435 for (i = 0; i < 64; i++)
443 for (i = 1; i < 32; i++) {