Mercurial > libavcodec.hg
comparison huffyuv.c @ 1080:a150aba978de libavcodec
huffyuv v1 tables, as they are essential and the only possible way for decding of v1 files they very likely cant be copyrighted ...
author | michaelni |
---|---|
date | Mon, 24 Feb 2003 09:49:37 +0000 |
parents | c55bffc3b84e |
children | 82c3ba139e51 |
comparison
equal
deleted
inserted
replaced
1079:89e233c2ef45 | 1080:a150aba978de |
---|---|
60 AVFrame picture; | 60 AVFrame picture; |
61 uint8_t __align8 bitstream_buffer[1024*1024*3]; //FIXME dynamic alloc or some other solution | 61 uint8_t __align8 bitstream_buffer[1024*1024*3]; //FIXME dynamic alloc or some other solution |
62 DSPContext dsp; | 62 DSPContext dsp; |
63 }HYuvContext; | 63 }HYuvContext; |
64 | 64 |
65 static unsigned char classic_shift_luma[] = { | |
66 34,36,35,69,135,232,9,16,10,24,11,23,12,16,13,10,14,8,15,8, | |
67 16,8,17,20,16,10,207,206,205,236,11,8,10,21,9,23,8,8,199,70, | |
68 69,68, 0 | |
69 }; | |
70 | |
71 static unsigned char classic_shift_chroma[] = { | |
72 66,36,37,38,39,40,41,75,76,77,110,239,144,81,82,83,84,85,118,183, | |
73 56,57,88,89,56,89,154,57,58,57,26,141,57,56,58,57,58,57,184,119, | |
74 214,245,116,83,82,49,80,79,78,77,44,75,41,40,39,38,37,36,34, 0 | |
75 }; | |
76 | |
77 static unsigned char classic_add_luma[256] = { | |
78 3, 9, 5, 12, 10, 35, 32, 29, 27, 50, 48, 45, 44, 41, 39, 37, | |
79 73, 70, 68, 65, 64, 61, 58, 56, 53, 50, 49, 46, 44, 41, 38, 36, | |
80 68, 65, 63, 61, 58, 55, 53, 51, 48, 46, 45, 43, 41, 39, 38, 36, | |
81 35, 33, 32, 30, 29, 27, 26, 25, 48, 47, 46, 44, 43, 41, 40, 39, | |
82 37, 36, 35, 34, 32, 31, 30, 28, 27, 26, 24, 23, 22, 20, 19, 37, | |
83 35, 34, 33, 31, 30, 29, 27, 26, 24, 23, 21, 20, 18, 17, 15, 29, | |
84 27, 26, 24, 22, 21, 19, 17, 16, 14, 26, 25, 23, 21, 19, 18, 16, | |
85 15, 27, 25, 23, 21, 19, 17, 16, 14, 26, 25, 23, 21, 18, 17, 14, | |
86 12, 17, 19, 13, 4, 9, 2, 11, 1, 7, 8, 0, 16, 3, 14, 6, | |
87 12, 10, 5, 15, 18, 11, 10, 13, 15, 16, 19, 20, 22, 24, 27, 15, | |
88 18, 20, 22, 24, 26, 14, 17, 20, 22, 24, 27, 15, 18, 20, 23, 25, | |
89 28, 16, 19, 22, 25, 28, 32, 36, 21, 25, 29, 33, 38, 42, 45, 49, | |
90 28, 31, 34, 37, 40, 42, 44, 47, 49, 50, 52, 54, 56, 57, 59, 60, | |
91 62, 64, 66, 67, 69, 35, 37, 39, 40, 42, 43, 45, 47, 48, 51, 52, | |
92 54, 55, 57, 59, 60, 62, 63, 66, 67, 69, 71, 72, 38, 40, 42, 43, | |
93 46, 47, 49, 51, 26, 28, 30, 31, 33, 34, 18, 19, 11, 13, 7, 8, | |
94 }; | |
95 | |
96 static unsigned char classic_add_chroma[256] = { | |
97 3, 1, 2, 2, 2, 2, 3, 3, 7, 5, 7, 5, 8, 6, 11, 9, | |
98 7, 13, 11, 10, 9, 8, 7, 5, 9, 7, 6, 4, 7, 5, 8, 7, | |
99 11, 8, 13, 11, 19, 15, 22, 23, 20, 33, 32, 28, 27, 29, 51, 77, | |
100 43, 45, 76, 81, 46, 82, 75, 55, 56,144, 58, 80, 60, 74,147, 63, | |
101 143, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, | |
102 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 27, 30, 21, 22, | |
103 17, 14, 5, 6,100, 54, 47, 50, 51, 53,106,107,108,109,110,111, | |
104 112,113,114,115, 4,117,118, 92, 94,121,122, 3,124,103, 2, 1, | |
105 0,129,130,131,120,119,126,125,136,137,138,139,140,141,142,134, | |
106 135,132,133,104, 64,101, 62, 57,102, 95, 93, 59, 61, 28, 97, 96, | |
107 52, 49, 48, 29, 32, 25, 24, 46, 23, 98, 45, 44, 43, 20, 42, 41, | |
108 19, 18, 99, 40, 15, 39, 38, 16, 13, 12, 11, 37, 10, 9, 8, 36, | |
109 7,128,127,105,123,116, 35, 34, 33,145, 31, 79, 42,146, 78, 26, | |
110 83, 48, 49, 50, 44, 47, 26, 31, 30, 18, 17, 19, 21, 24, 25, 13, | |
111 14, 16, 17, 18, 20, 21, 12, 14, 15, 9, 10, 6, 9, 6, 5, 8, | |
112 6, 12, 8, 10, 7, 9, 6, 4, 6, 2, 2, 3, 3, 3, 3, 2, | |
113 }; | |
114 | |
65 static inline void bswap_buf(uint32_t *dst, uint32_t *src, int w){ | 115 static inline void bswap_buf(uint32_t *dst, uint32_t *src, int w){ |
66 int i; | 116 int i; |
67 | 117 |
68 for(i=0; i+8<=w; i+=8){ | 118 for(i=0; i+8<=w; i+=8){ |
69 dst[i+0]= bswap_32(src[i+0]); | 119 dst[i+0]= bswap_32(src[i+0]); |
289 | 339 |
290 return 0; | 340 return 0; |
291 } | 341 } |
292 | 342 |
293 static int read_old_huffman_tables(HYuvContext *s){ | 343 static int read_old_huffman_tables(HYuvContext *s){ |
294 #if 0 | 344 #if 1 |
295 GetBitContext gb; | 345 GetBitContext gb; |
296 int i; | 346 int i; |
297 | 347 |
298 init_get_bits(&gb, classic_shift_luma, sizeof(classic_shift_luma)*8); | 348 init_get_bits(&gb, classic_shift_luma, sizeof(classic_shift_luma)*8); |
299 read_len_table(s->len[0], &gb); | 349 read_len_table(s->len[0], &gb); |