Lines Matching refs:td
32 static av_always_inline int check_intra_mode(VP9TileData *td, int mode, uint8_t **a,
39 VP9Context *s = td->s;
41 int have_left = col > td->tile_col_start || x > 0;
218 static av_always_inline void intra_recon(VP9TileData *td, ptrdiff_t y_off,
221 VP9Context *s = td->s;
222 VP9Block *b = td->b;
223 int row = td->row, col = td->col;
230 uint8_t *dst = td->dst[0], *dst_r = s->s.frames[CUR_FRAME].tf.f->data[0] + y_off;
242 int eob = b->skip ? 0 : b->tx > TX_8X8 ? AV_RN16A(&td->eob[n]) : td->eob[n];
244 mode = check_intra_mode(td, mode, &a, ptr_r,
246 ptr, td->y_stride, l,
248 s->dsp.intra_pred[b->tx][mode](ptr, td->y_stride, l, a);
250 s->dsp.itxfm_add[tx][txtp](ptr, td->y_stride,
251 td->block + 16 * n * bytesperpixel, eob);
254 dst += 4 * step1d * td->y_stride;
263 dst = td->dst[1 + p];
271 int eob = b->skip ? 0 : b->uvtx > TX_8X8 ? AV_RN16A(&td->uveob[p][n]) : td->uveob[p][n];
273 mode = check_intra_mode(td, mode, &a, ptr_r,
275 ptr, td->uv_stride, l, col, x, w4, row, y,
277 s->dsp.intra_pred[b->uvtx][mode](ptr, td->uv_stride, l, a);
279 s->dsp.itxfm_add[uvtx][DCT_DCT](ptr, td->uv_stride,
280 td->uvblock[p] + 16 * n * bytesperpixel, eob);
283 dst += 4 * uvstep1d * td->uv_stride;
288 void ff_vp9_intra_recon_8bpp(VP9TileData *td, ptrdiff_t y_off, ptrdiff_t uv_off)
290 intra_recon(td, y_off, uv_off, 1);
293 void ff_vp9_intra_recon_16bpp(VP9TileData *td, ptrdiff_t y_off, ptrdiff_t uv_off)
295 intra_recon(td, y_off, uv_off, 2);
298 static av_always_inline void mc_luma_unscaled(VP9TileData *td, vp9_mc_func (*mc)[2],
305 VP9Context *s = td->s;
323 s->vdsp.emulated_edge_mc(td->edge_emu_buffer,
328 ref = td->edge_emu_buffer + !!my * 3 * 160 + !!mx * 3 * bytesperpixel;
334 static av_always_inline void mc_chroma_unscaled(VP9TileData *td, vp9_mc_func (*mc)[2],
343 VP9Context *s = td->s;
362 s->vdsp.emulated_edge_mc(td->edge_emu_buffer,
367 ref_u = td->edge_emu_buffer + !!my * 3 * 160 + !!mx * 3 * bytesperpixel;
370 s->vdsp.emulated_edge_mc(td->edge_emu_buffer,
375 ref_v = td->edge_emu_buffer + !!my * 3 * 160 + !!mx * 3 * bytesperpixel;
383 #define mc_luma_dir(td, mc, dst, dst_ls, src, src_ls, tref, row, col, mv, \
385 mc_luma_unscaled(td, s->dsp.mc, dst, dst_ls, src, src_ls, tref, row, col, \
387 #define mc_chroma_dir(td, mc, dstu, dstv, dst_ls, srcu, srcu_ls, srcv, srcv_ls, tref, \
389 mc_chroma_unscaled(td, s->dsp.mc, dstu, dstv, dst_ls, srcu, srcu_ls, srcv, srcv_ls, tref, \
406 static av_always_inline void mc_luma_scaled(VP9TileData *td, vp9_scaled_mc_func smc,
416 VP9Context *s = td->s;
419 mc_luma_unscaled(td, mc, dst, dst_stride, ref, ref_stride, ref_frame,
452 s->vdsp.emulated_edge_mc(td->edge_emu_buffer,
457 ref = td->edge_emu_buffer + 3 * 288 + 3 * bytesperpixel;
464 static av_always_inline void mc_chroma_scaled(VP9TileData *td, vp9_scaled_mc_func smc,
476 VP9Context *s = td->s;
479 mc_chroma_unscaled(td, mc, dst_u, dst_v, dst_stride, ref_u, src_stride_u,
522 s->vdsp.emulated_edge_mc(td->edge_emu_buffer,
527 ref_u = td->edge_emu_buffer + 3 * 288 + 3 * bytesperpixel;
530 s->vdsp.emulated_edge_mc(td->edge_emu_buffer,
535 ref_v = td->edge_emu_buffer + 3 * 288 + 3 * bytesperpixel;
544 #define mc_luma_dir(td, mc, dst, dst_ls, src, src_ls, tref, row, col, mv, \
546 mc_luma_scaled(td, s->dsp.s##mc, s->dsp.mc, dst, dst_ls, src, src_ls, tref, row, col, \
549 #define mc_chroma_dir(td, mc, dstu, dstv, dst_ls, srcu, srcu_ls, srcv, srcv_ls, tref, \
551 mc_chroma_scaled(td, s->dsp.s##mc, s->dsp.mc, dstu, dstv, dst_ls, srcu, srcu_ls, srcv, srcv_ls, tref, \
569 static av_always_inline void inter_recon(VP9TileData *td, int bytesperpixel)
571 VP9Context *s = td->s;
572 VP9Block *b = td->b;
573 int row = td->row, col = td->col;
577 if (!s->td->error_info) {
578 s->td->error_info = AVERROR_INVALIDDATA;
587 inter_pred_scaled_8bpp(td);
589 inter_pred_scaled_16bpp(td);
593 inter_pred_8bpp(td);
595 inter_pred_16bpp(td);
608 uint8_t *dst = td->dst[0];
615 int eob = b->tx > TX_8X8 ? AV_RN16A(&td->eob[n]) : td->eob[n];
618 s->dsp.itxfm_add[tx][DCT_DCT](ptr, td->y_stride,
619 td->block + 16 * n * bytesperpixel, eob);
621 dst += 4 * td->y_stride * step1d;
629 dst = td->dst[p + 1];
634 int eob = b->uvtx > TX_8X8 ? AV_RN16A(&td->uveob[p][n]) : td->uveob[p][n];
637 s->dsp.itxfm_add[uvtx][DCT_DCT](ptr, td->uv_stride,
638 td->uvblock[p] + 16 * n * bytesperpixel, eob);
640 dst += 4 * uvstep1d * td->uv_stride;
646 void ff_vp9_inter_recon_8bpp(VP9TileData *td)
648 inter_recon(td, 1);
651 void ff_vp9_inter_recon_16bpp(VP9TileData *td)
653 inter_recon(td, 2);