mirror of https://git.ffmpeg.org/ffmpeg.git
avcodec/proresenc_anatoliy: reduce DC encoding function prototype differences with Kostya encoder
This commit is contained in:
parent
8e42d3aba0
commit
dadc5ac24a
|
@ -267,20 +267,20 @@ static av_always_inline int get_level(int val)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void encode_dc_coeffs(PutBitContext *pb, int16_t *in,
|
static void encode_dcs(PutBitContext *pb, int16_t *blocks,
|
||||||
int blocks_per_slice, int *qmat)
|
int blocks_per_slice, int *qmat)
|
||||||
{
|
{
|
||||||
int prev_dc, codebook;
|
int prev_dc, codebook;
|
||||||
int i, sign, idx;
|
int i, sign, idx;
|
||||||
int new_dc, delta, diff_sign, code;
|
int new_dc, delta, diff_sign, code;
|
||||||
|
|
||||||
prev_dc = (in[0] - 0x4000) / qmat[0];
|
prev_dc = (blocks[0] - 0x4000) / qmat[0];
|
||||||
codebook = TO_GOLOMB(prev_dc);
|
codebook = TO_GOLOMB(prev_dc);
|
||||||
encode_vlc_codeword(pb, FIRST_DC_CB, codebook);
|
encode_vlc_codeword(pb, FIRST_DC_CB, codebook);
|
||||||
|
|
||||||
codebook = 5; sign = 0; idx = 64;
|
codebook = 5; sign = 0; idx = 64;
|
||||||
for (i = 1; i < blocks_per_slice; i++, idx += 64) {
|
for (i = 1; i < blocks_per_slice; i++, idx += 64) {
|
||||||
new_dc = (in[idx] - 0x4000) / qmat[0];
|
new_dc = (blocks[idx] - 0x4000) / qmat[0];
|
||||||
delta = new_dc - prev_dc;
|
delta = new_dc - prev_dc;
|
||||||
diff_sign = DIFF_SIGN(delta, sign);
|
diff_sign = DIFF_SIGN(delta, sign);
|
||||||
code = TO_GOLOMB2(get_level(delta), diff_sign);
|
code = TO_GOLOMB2(get_level(delta), diff_sign);
|
||||||
|
@ -388,7 +388,7 @@ static int encode_slice_plane(int16_t *blocks, int mb_count, uint8_t *buf, unsig
|
||||||
blocks_per_slice = mb_count << (2 - sub_sample_chroma);
|
blocks_per_slice = mb_count << (2 - sub_sample_chroma);
|
||||||
init_put_bits(&pb, buf, buf_size);
|
init_put_bits(&pb, buf, buf_size);
|
||||||
|
|
||||||
encode_dc_coeffs(&pb, blocks, blocks_per_slice, qmat);
|
encode_dcs(&pb, blocks, blocks_per_slice, qmat);
|
||||||
encode_ac_coeffs(&pb, blocks, blocks_per_slice, qmat, ff_prores_scan);
|
encode_ac_coeffs(&pb, blocks, blocks_per_slice, qmat, ff_prores_scan);
|
||||||
|
|
||||||
flush_put_bits(&pb);
|
flush_put_bits(&pb);
|
||||||
|
|
Loading…
Reference in New Issue