Ejemplo n.º 1
0
void vp8_encode_intra16x16mbuv(const VP8_ENCODER_RTCD *rtcd, MACROBLOCK *x)
{
    RECON_INVOKE(&rtcd->common->recon, build_intra_predictors_mbuv)(&x->e_mbd);

    ENCODEMB_INVOKE(&rtcd->encodemb, submbuv)(x->src_diff, x->src.u_buffer, x->src.v_buffer, x->e_mbd.predictor, x->src.uv_stride);

    vp8_transform_mbuv(x);

    vp8_quantize_mbuv(x);

    if (x->optimize)
        vp8_optimize_mbuv(x, rtcd);

    vp8_inverse_transform_mbuv(IF_RTCD(&rtcd->common->idct), &x->e_mbd);

    vp8_recon_intra_mbuv(IF_RTCD(&rtcd->common->recon), &x->e_mbd);
}
Ejemplo n.º 2
0
void vp8_recon_intra4x4mb(const vp8_recon_rtcd_vtable_t *rtcd, MACROBLOCKD *x)
{
    int i;

    vp8_intra_prediction_down_copy(x);

#if ARCH_ARM
    {
        BLOCKD *b = &x->block[0];

        vp8_predict_intra4x4(b, b->bmi.mode, b->predictor);
        RECON_INVOKE(rtcd, recon)(b->predictor, b->diff, *(b->base_dst) + b->dst, b->dst_stride);
        b += 1;

        vp8_predict_intra4x4(b, b->bmi.mode, b->predictor);
        RECON_INVOKE(rtcd, recon)(b->predictor, b->diff, *(b->base_dst) + b->dst, b->dst_stride);
        b += 1;

        vp8_predict_intra4x4(b, b->bmi.mode, b->predictor);
        RECON_INVOKE(rtcd, recon)(b->predictor, b->diff, *(b->base_dst) + b->dst, b->dst_stride);
        b += 1;

        vp8_predict_intra4x4(b, b->bmi.mode, b->predictor);
        RECON_INVOKE(rtcd, recon)(b->predictor, b->diff, *(b->base_dst) + b->dst, b->dst_stride);
        b += 1;

        vp8_predict_intra4x4(b, b->bmi.mode, b->predictor);
        RECON_INVOKE(rtcd, recon)(b->predictor, b->diff, *(b->base_dst) + b->dst, b->dst_stride);
        b += 1;

        vp8_predict_intra4x4(b, b->bmi.mode, b->predictor);
        RECON_INVOKE(rtcd, recon)(b->predictor, b->diff, *(b->base_dst) + b->dst, b->dst_stride);
        b += 1;

        vp8_predict_intra4x4(b, b->bmi.mode, b->predictor);
        RECON_INVOKE(rtcd, recon)(b->predictor, b->diff, *(b->base_dst) + b->dst, b->dst_stride);
        b += 1;

        vp8_predict_intra4x4(b, b->bmi.mode, b->predictor);
        RECON_INVOKE(rtcd, recon)(b->predictor, b->diff, *(b->base_dst) + b->dst, b->dst_stride);
        b += 1;

        vp8_predict_intra4x4(b, b->bmi.mode, b->predictor);
        RECON_INVOKE(rtcd, recon)(b->predictor, b->diff, *(b->base_dst) + b->dst, b->dst_stride);
        b += 1;

        vp8_predict_intra4x4(b, b->bmi.mode, b->predictor);
        RECON_INVOKE(rtcd, recon)(b->predictor, b->diff, *(b->base_dst) + b->dst, b->dst_stride);
        b += 1;

        vp8_predict_intra4x4(b, b->bmi.mode, b->predictor);
        RECON_INVOKE(rtcd, recon)(b->predictor, b->diff, *(b->base_dst) + b->dst, b->dst_stride);
        b += 1;

        vp8_predict_intra4x4(b, b->bmi.mode, b->predictor);
        RECON_INVOKE(rtcd, recon)(b->predictor, b->diff, *(b->base_dst) + b->dst, b->dst_stride);
        b += 1;

        vp8_predict_intra4x4(b, b->bmi.mode, b->predictor);
        RECON_INVOKE(rtcd, recon)(b->predictor, b->diff, *(b->base_dst) + b->dst, b->dst_stride);
        b += 1;

        vp8_predict_intra4x4(b, b->bmi.mode, b->predictor);
        RECON_INVOKE(rtcd, recon)(b->predictor, b->diff, *(b->base_dst) + b->dst, b->dst_stride);
        b += 1;

        vp8_predict_intra4x4(b, b->bmi.mode, b->predictor);
        RECON_INVOKE(rtcd, recon)(b->predictor, b->diff, *(b->base_dst) + b->dst, b->dst_stride);
        b += 1;

        vp8_predict_intra4x4(b, b->bmi.mode, b->predictor);
        RECON_INVOKE(rtcd, recon)(b->predictor, b->diff, *(b->base_dst) + b->dst, b->dst_stride);
    }
#else
    for (i = 0; i < 16; i++)
    {
        BLOCKD *b = &x->block[i];

        vp8_predict_intra4x4(b, x->block[i].bmi.mode, x->block[i].predictor);
        RECON_INVOKE(rtcd, recon)(b->predictor, b->diff, *(b->base_dst) + b->dst, b->dst_stride);
    }
#endif

    vp8_recon_intra_mbuv(rtcd, x);

}