mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2026-01-06 22:25:36 +01:00
use more bits on the encoder side
negligible increase in quality Originally committed as revision 10195 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
@@ -393,6 +393,7 @@ static const BlockNode null_block= { //FIXME add border maybe
|
||||
|
||||
#define LOG2_MB_SIZE 4
|
||||
#define MB_SIZE (1<<LOG2_MB_SIZE)
|
||||
#define ENCODER_EXTRA_BITS 4
|
||||
|
||||
typedef struct x_and_coeff{
|
||||
int16_t x;
|
||||
@@ -3402,7 +3403,7 @@ static void quantize(SnowContext *s, SubBand *b, DWTELEM *src, int stride, int b
|
||||
const int w= b->width;
|
||||
const int h= b->height;
|
||||
const int qlog= av_clip(s->qlog + b->qlog, 0, QROOT*16);
|
||||
const int qmul= qexp[qlog&(QROOT-1)]<<(qlog>>QSHIFT);
|
||||
const int qmul= qexp[qlog&(QROOT-1)]<<((qlog>>QSHIFT) + ENCODER_EXTRA_BITS);
|
||||
int x,y, thres1, thres2;
|
||||
// START_TIMER
|
||||
|
||||
@@ -4194,6 +4195,12 @@ redo_frame:
|
||||
s->spatial_dwt_buffer[y*w + x]= (s->spatial_dwt_buffer[y*w + x] + (1<<(FRAC_BITS-1))-1)>>FRAC_BITS;
|
||||
}
|
||||
}
|
||||
}else{
|
||||
for(y=0; y<h; y++){
|
||||
for(x=0; x<w; x++){
|
||||
s->spatial_dwt_buffer[y*w + x]<<=ENCODER_EXTRA_BITS;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ff_spatial_dwt(s->spatial_dwt_buffer, w, h, w, s->spatial_decomposition_type, s->spatial_decomposition_count);
|
||||
|
||||
Reference in New Issue
Block a user