Merge "Remove plane_block_idx."
This commit is contained in:
commit
f63c75de84
@ -137,45 +137,18 @@ void vp9_quantize_b_32x32_c(const int16_t *coeff_ptr, intptr_t n_coeffs,
|
|||||||
*eob_ptr = eob + 1;
|
*eob_ptr = eob + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct plane_block_idx {
|
void vp9_regular_quantize_b_4x4(MACROBLOCK *x, int plane, int block,
|
||||||
int plane;
|
|
||||||
int block;
|
|
||||||
};
|
|
||||||
|
|
||||||
// TODO(jkoleszar): returning a struct so it can be used in a const context,
|
|
||||||
// expect to refactor this further later.
|
|
||||||
static INLINE struct plane_block_idx plane_block_idx(int y_blocks,
|
|
||||||
int b_idx) {
|
|
||||||
const int v_offset = y_blocks * 5 / 4;
|
|
||||||
struct plane_block_idx res;
|
|
||||||
|
|
||||||
if (b_idx < y_blocks) {
|
|
||||||
res.plane = 0;
|
|
||||||
res.block = b_idx;
|
|
||||||
} else if (b_idx < v_offset) {
|
|
||||||
res.plane = 1;
|
|
||||||
res.block = b_idx - y_blocks;
|
|
||||||
} else {
|
|
||||||
assert(b_idx < y_blocks * 3 / 2);
|
|
||||||
res.plane = 2;
|
|
||||||
res.block = b_idx - v_offset;
|
|
||||||
}
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
|
|
||||||
void vp9_regular_quantize_b_4x4(MACROBLOCK *x, int y_blocks, int b_idx,
|
|
||||||
const int16_t *scan, const int16_t *iscan) {
|
const int16_t *scan, const int16_t *iscan) {
|
||||||
MACROBLOCKD *const xd = &x->e_mbd;
|
MACROBLOCKD *const xd = &x->e_mbd;
|
||||||
const struct plane_block_idx pb_idx = plane_block_idx(y_blocks, b_idx);
|
struct macroblock_plane* p = &x->plane[plane];
|
||||||
struct macroblock_plane* p = &x->plane[pb_idx.plane];
|
struct macroblockd_plane* pd = &xd->plane[plane];
|
||||||
struct macroblockd_plane* pd = &xd->plane[pb_idx.plane];
|
|
||||||
|
|
||||||
vp9_quantize_b(BLOCK_OFFSET(p->coeff, pb_idx.block),
|
vp9_quantize_b(BLOCK_OFFSET(p->coeff, block),
|
||||||
16, x->skip_block,
|
16, x->skip_block,
|
||||||
p->zbin, p->round, p->quant, p->quant_shift,
|
p->zbin, p->round, p->quant, p->quant_shift,
|
||||||
BLOCK_OFFSET(p->qcoeff, pb_idx.block),
|
BLOCK_OFFSET(p->qcoeff, block),
|
||||||
BLOCK_OFFSET(pd->dqcoeff, pb_idx.block),
|
BLOCK_OFFSET(pd->dqcoeff, block),
|
||||||
pd->dequant, p->zbin_extra, &pd->eobs[pb_idx.block], scan, iscan);
|
pd->dequant, p->zbin_extra, &pd->eobs[block], scan, iscan);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void invert_quant(int16_t *quant, int16_t *shift, int d) {
|
static void invert_quant(int16_t *quant, int16_t *shift, int d) {
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
|
|
||||||
#include "vp9/encoder/vp9_block.h"
|
#include "vp9/encoder/vp9_block.h"
|
||||||
|
|
||||||
void vp9_regular_quantize_b_4x4(MACROBLOCK *x, int y_blocks, int b_idx,
|
void vp9_regular_quantize_b_4x4(MACROBLOCK *x, int plane, int block,
|
||||||
const int16_t *scan, const int16_t *iscan);
|
const int16_t *scan, const int16_t *iscan);
|
||||||
|
|
||||||
struct VP9_COMP;
|
struct VP9_COMP;
|
||||||
|
@ -1055,7 +1055,7 @@ static int64_t rd_pick_intra4x4block(VP9_COMP *cpi, MACROBLOCK *x, int ib,
|
|||||||
else
|
else
|
||||||
x->fwd_txm4x4(src_diff, coeff, 8);
|
x->fwd_txm4x4(src_diff, coeff, 8);
|
||||||
|
|
||||||
vp9_regular_quantize_b_4x4(x, 4, block, so->scan, so->iscan);
|
vp9_regular_quantize_b_4x4(x, 0, block, so->scan, so->iscan);
|
||||||
|
|
||||||
ratey += cost_coeffs(x, 0, block, tempa + idx, templ + idy, TX_4X4,
|
ratey += cost_coeffs(x, 0, block, tempa + idx, templ + idy, TX_4X4,
|
||||||
so->scan, so->neighbors);
|
so->scan, so->neighbors);
|
||||||
@ -1541,7 +1541,7 @@ static int64_t encode_inter_mb_segment(VP9_COMP *cpi,
|
|||||||
coeff = BLOCK_OFFSET(p->coeff, k);
|
coeff = BLOCK_OFFSET(p->coeff, k);
|
||||||
x->fwd_txm4x4(raster_block_offset_int16(BLOCK_8X8, k, p->src_diff),
|
x->fwd_txm4x4(raster_block_offset_int16(BLOCK_8X8, k, p->src_diff),
|
||||||
coeff, 8);
|
coeff, 8);
|
||||||
vp9_regular_quantize_b_4x4(x, 4, k, so->scan, so->iscan);
|
vp9_regular_quantize_b_4x4(x, 0, k, so->scan, so->iscan);
|
||||||
thisdistortion += vp9_block_error(coeff, BLOCK_OFFSET(pd->dqcoeff, k),
|
thisdistortion += vp9_block_error(coeff, BLOCK_OFFSET(pd->dqcoeff, k),
|
||||||
16, &ssz);
|
16, &ssz);
|
||||||
thissse += ssz;
|
thissse += ssz;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user