void vp8_subtract_mbuv(short *diff, unsigned char *usrc, unsigned char *vsrc, int src_stride, unsigned char *upred, unsigned char *vpred, int pred_stride) { short *udiff = diff + 256; short *vdiff = diff + 320; vpx_subtract_block(8, 8, udiff, 8, usrc, src_stride, upred, pred_stride); vpx_subtract_block(8, 8, vdiff, 8, vsrc, src_stride, vpred, pred_stride); }
void vp8_subtract_b(BLOCK *be, BLOCKD *bd, int pitch) { unsigned char *src_ptr = (*(be->base_src) + be->src); short *diff_ptr = be->src_diff; unsigned char *pred_ptr = bd->predictor; int src_stride = be->src_stride; vpx_subtract_block(4, 4, diff_ptr, pitch, src_ptr, src_stride, pred_ptr, pitch); }
void vp9_subtract_plane(MACROBLOCK *x, BLOCK_SIZE bsize, int plane) { struct macroblock_plane *const p = &x->plane[plane]; const struct macroblockd_plane *const pd = &x->e_mbd.plane[plane]; const BLOCK_SIZE plane_bsize = get_plane_block_size(bsize, pd); const int bw = 4 * num_4x4_blocks_wide_lookup[plane_bsize]; const int bh = 4 * num_4x4_blocks_high_lookup[plane_bsize]; #if CONFIG_VP9_HIGHBITDEPTH if (x->e_mbd.cur_buf->flags & YV12_FLAG_HIGHBITDEPTH) { vpx_highbd_subtract_block(bh, bw, p->src_diff, bw, p->src.buf, p->src.stride, pd->dst.buf, pd->dst.stride, x->e_mbd.bd); return; } #endif // CONFIG_VP9_HIGHBITDEPTH vpx_subtract_block(bh, bw, p->src_diff, bw, p->src.buf, p->src.stride, pd->dst.buf, pd->dst.stride); }
void vp8_subtract_mby(short *diff, unsigned char *src, int src_stride, unsigned char *pred, int pred_stride) { vpx_subtract_block(16, 16, diff, 16, src, src_stride, pred, pred_stride); }