提交 27fc5352 编写于 作者: M Michael Niedermayer

merge U and V statistics, 33% reduction in memory requirement, compression...

merge U and V statistics, 33% reduction in memory requirement, compression rate better for some files worse for others, worst compression rate loss 0.05%

Originally committed as revision 2015 to svn://svn.ffmpeg.org/ffmpeg/trunk
上级 147e5200
......@@ -487,7 +487,7 @@ static int encode_init(AVCodecContext *avctx)
s->version=0;
s->ac= avctx->coder_type;
s->plane_count=3;
s->plane_count=2;
for(i=0; i<256; i++){
s->quant_table[0][i]= quant11[i];
s->quant_table[1][i]= 11*quant11[i];
......@@ -606,7 +606,7 @@ static int encode_frame(AVCodecContext *avctx, unsigned char *buf, int buf_size,
encode_plane(f, p->data[0], width, height, p->linesize[0], 0);
encode_plane(f, p->data[1], chroma_width, chroma_height, p->linesize[1], 1);
encode_plane(f, p->data[2], chroma_width, chroma_height, p->linesize[2], 2);
encode_plane(f, p->data[2], chroma_width, chroma_height, p->linesize[2], 1);
}
emms_c();
......@@ -751,7 +751,7 @@ static int read_header(FFV1Context *f){
f->chroma_h_shift= get_symbol(c, state, 0, 7);
f->chroma_v_shift= get_symbol(c, state, 0, 7);
get_cabac(c, state); //transparency plane
f->plane_count= 3;
f->plane_count= 2;
switch(16*f->chroma_h_shift + f->chroma_v_shift){
case 0x00: f->avctx->pix_fmt= PIX_FMT_YUV444P; break;
......@@ -870,7 +870,7 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *data_size, uint8
decode_plane(f, p->data[0], width, height, p->linesize[0], 0);
decode_plane(f, p->data[1], chroma_width, chroma_height, p->linesize[1], 1);
decode_plane(f, p->data[2], chroma_width, chroma_height, p->linesize[2], 2);
decode_plane(f, p->data[2], chroma_width, chroma_height, p->linesize[2], 1);
}
emms_c();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册