mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-04-24 17:12:34 +02:00
alacenc: add a fixed LPC coefficient mode as compression level 1. old
compression level 1 is now compression level 2 and is still the default. Originally committed as revision 20173 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
1fe4abf397
commit
d6eee9f3e9
@ -132,12 +132,23 @@ static void calc_predictor_params(AlacEncodeContext *s, int ch)
|
|||||||
int shift[MAX_LPC_ORDER];
|
int shift[MAX_LPC_ORDER];
|
||||||
int opt_order;
|
int opt_order;
|
||||||
|
|
||||||
|
if (s->avctx->compression_level > 1) {
|
||||||
opt_order = ff_lpc_calc_coefs(&s->dspctx, s->sample_buf[ch], s->avctx->frame_size, s->min_prediction_order, s->max_prediction_order,
|
opt_order = ff_lpc_calc_coefs(&s->dspctx, s->sample_buf[ch], s->avctx->frame_size, s->min_prediction_order, s->max_prediction_order,
|
||||||
ALAC_MAX_LPC_PRECISION, coefs, shift, 1, ORDER_METHOD_EST, ALAC_MAX_LPC_SHIFT, 1);
|
ALAC_MAX_LPC_PRECISION, coefs, shift, 1, ORDER_METHOD_EST, ALAC_MAX_LPC_SHIFT, 1);
|
||||||
|
|
||||||
s->lpc[ch].lpc_order = opt_order;
|
s->lpc[ch].lpc_order = opt_order;
|
||||||
s->lpc[ch].lpc_quant = shift[opt_order-1];
|
s->lpc[ch].lpc_quant = shift[opt_order-1];
|
||||||
memcpy(s->lpc[ch].lpc_coeff, coefs[opt_order-1], opt_order*sizeof(int));
|
memcpy(s->lpc[ch].lpc_coeff, coefs[opt_order-1], opt_order*sizeof(int));
|
||||||
|
} else {
|
||||||
|
s->lpc[ch].lpc_order = 6;
|
||||||
|
s->lpc[ch].lpc_quant = 6;
|
||||||
|
s->lpc[ch].lpc_coeff[0] = 160;
|
||||||
|
s->lpc[ch].lpc_coeff[1] = -190;
|
||||||
|
s->lpc[ch].lpc_coeff[2] = 170;
|
||||||
|
s->lpc[ch].lpc_coeff[3] = -130;
|
||||||
|
s->lpc[ch].lpc_coeff[4] = 80;
|
||||||
|
s->lpc[ch].lpc_coeff[5] = -25;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static int estimate_stereo_mode(int32_t *left_ch, int32_t *right_ch, int n)
|
static int estimate_stereo_mode(int32_t *left_ch, int32_t *right_ch, int n)
|
||||||
@ -375,9 +386,9 @@ static av_cold int alac_encode_init(AVCodecContext *avctx)
|
|||||||
|
|
||||||
// Set default compression level
|
// Set default compression level
|
||||||
if(avctx->compression_level == FF_COMPRESSION_DEFAULT)
|
if(avctx->compression_level == FF_COMPRESSION_DEFAULT)
|
||||||
s->compression_level = 1;
|
s->compression_level = 2;
|
||||||
else
|
else
|
||||||
s->compression_level = av_clip(avctx->compression_level, 0, 1);
|
s->compression_level = av_clip(avctx->compression_level, 0, 2);
|
||||||
|
|
||||||
// Initialize default Rice parameters
|
// Initialize default Rice parameters
|
||||||
s->rc.history_mult = 40;
|
s->rc.history_mult = 40;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user