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);