102 uint16_t intra_matrix[64])
175 size = strlen(
"CS=ITU601")+3;
182 uint16_t intra_matrix[64])
184 int chroma_h_shift, chroma_v_shift;
186 int hsample[3], vsample[3];
193 vsample[0] = hsample[0] =
194 vsample[1] = hsample[1] =
195 vsample[2] = hsample[2] = 1;
198 vsample[1] = 2 >> chroma_v_shift;
199 vsample[2] = 2 >> chroma_v_shift;
201 hsample[1] = 2 >> chroma_h_shift;
202 hsample[2] = 2 >> chroma_h_shift;
280 int align= (-(size_t)(buf))&3;
282 assert((size&7) == 0);
286 for(i=0; i<size && i<align; i++){
287 if(buf[i]==0xFF) ff_count++;
289 for(; i<size-15; i+=16){
292 v= *(uint32_t*)(&buf[i]);
293 acc= (((v & (v>>4))&0x0F0F0F0F)+0x01010101)&0x10101010;
294 v= *(uint32_t*)(&buf[i+4]);
295 acc+=(((v & (v>>4))&0x0F0F0F0F)+0x01010101)&0x10101010;
296 v= *(uint32_t*)(&buf[i+8]);
297 acc+=(((v & (v>>4))&0x0F0F0F0F)+0x01010101)&0x10101010;
298 v= *(uint32_t*)(&buf[i+12]);
299 acc+=(((v & (v>>4))&0x0F0F0F0F)+0x01010101)&0x10101010;
307 if(buf[i]==0xFF) ff_count++;
310 if(ff_count==0)
return;
315 for(i=size-1; ff_count; i--){
331 if(length)
put_bits(pbc, length, (1<<length)-1);
339 assert((header_bits & 7) == 0);
347 uint8_t *huff_size, uint16_t *huff_code)
352 put_bits(pb, huff_size[0], huff_code[0]);
362 put_bits(pb, huff_size[nbits], huff_code[nbits]);
370 int mant, nbits, code, i, j;
371 int component,
dc,
run, last_index, val;
374 uint16_t *huff_code_ac;
377 component = (n <= 3 ? 0 : (n&1) + 1);
379 val = dc - s->
last_dc[component];
395 for(i=1;i<=last_index;i++) {
402 put_bits(&s->
pb, huff_size_ac[0xf0], huff_code_ac[0xf0]);
412 code = (run << 4) | nbits;
414 put_bits(&s->
pb, huff_size_ac[code], huff_code_ac[code]);
422 if (last_index < 63 || run != 0)
423 put_bits(&s->
pb, huff_size_ac[0], huff_code_ac[0]);