mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-21 10:55:51 +02:00
avcodec/proresenc_anatoliy: move run/lev to codebook LUT to shared proresdata
This is going to be shared with proresenc_kostya in the upcoming commit.
This commit is contained in:
parent
e940baa65b
commit
3ba52f18e4
@ -43,3 +43,9 @@ const uint8_t ff_prores_interlaced_scan[64] = {
|
||||
30, 23, 31, 38, 45, 52, 60, 53,
|
||||
46, 39, 47, 54, 61, 62, 55, 63
|
||||
};
|
||||
|
||||
const uint8_t ff_prores_run_to_cb[16] = { 0x06, 0x06, 0x05, 0x05, 0x04, 0x29,
|
||||
0x29, 0x29, 0x29, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x4C };
|
||||
|
||||
const uint8_t ff_prores_level_to_cb[10] = { 0x04, 0x0A, 0x05, 0x06, 0x04, 0x28,
|
||||
0x28, 0x28, 0x28, 0x4C };
|
||||
|
@ -29,6 +29,8 @@
|
||||
|
||||
extern const uint8_t ff_prores_progressive_scan[64];
|
||||
extern const uint8_t ff_prores_interlaced_scan[64];
|
||||
extern const uint8_t ff_prores_run_to_cb[16];
|
||||
extern const uint8_t ff_prores_level_to_cb[10];
|
||||
|
||||
#define FIRST_DC_CB 0xB8 // rice_order = 5, exp_golomb_order = 6, switch_bits = 0
|
||||
|
||||
|
@ -296,11 +296,6 @@ static void encode_dc_coeffs(PutBitContext *pb, int16_t *in,
|
||||
}
|
||||
}
|
||||
|
||||
static const uint8_t run_to_cb[16] = { 0x06, 0x06, 0x05, 0x05, 0x04, 0x29,
|
||||
0x29, 0x29, 0x29, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x4C };
|
||||
static const uint8_t lev_to_cb[10] = { 0x04, 0x0A, 0x05, 0x06, 0x04, 0x28,
|
||||
0x28, 0x28, 0x28, 0x4C };
|
||||
|
||||
static void encode_ac_coeffs(PutBitContext *pb,
|
||||
int16_t *in, int blocks_per_slice, int *qmat, const uint8_t ff_prores_scan[64])
|
||||
{
|
||||
@ -313,14 +308,14 @@ static void encode_ac_coeffs(PutBitContext *pb,
|
||||
for (j = 0; j < blocks_per_slice; j++) {
|
||||
int val = QSCALE(qmat, indp, in[(j << 6) + indp]);
|
||||
if (val) {
|
||||
encode_codeword(pb, run, run_to_cb[FFMIN(prev_run, 15)]);
|
||||
encode_codeword(pb, run, ff_prores_run_to_cb[FFMIN(prev_run, 15)]);
|
||||
|
||||
prev_run = run;
|
||||
run = 0;
|
||||
level = get_level(val);
|
||||
code = level - 1;
|
||||
|
||||
encode_codeword(pb, code, lev_to_cb[FFMIN(prev_level, 9)]);
|
||||
encode_codeword(pb, code, ff_prores_level_to_cb[FFMIN(prev_level, 9)]);
|
||||
|
||||
prev_level = level;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user