Esempio n. 1
0
        static void vp8_build_inter_predictors_b(BLOCKD d, int pitch, byte *base_pre,
                                                 int pre_stride, vp8_subpix_fn_t sppf)
        {
            int r;

            //byte* pred_ptr = d.predictor;

            fixed(byte *pPredictor = d.predictor.src())
            {
                byte *pred_ptr = pPredictor;
                byte *ptr;

                ptr = base_pre + d.offset + (d.bmi.mv.as_mv.row >> 3) * pre_stride +
                      (d.bmi.mv.as_mv.col >> 3);

                if ((d.bmi.mv.as_mv.row & 7) > 0 || (d.bmi.mv.as_mv.col & 7) > 0)
                {
                    sppf(ptr, pre_stride, d.bmi.mv.as_mv.col & 7, d.bmi.mv.as_mv.row & 7,
                         pred_ptr, pitch);
                }
                else
                {
                    for (r = 0; r < 4; ++r)
                    {
                        pred_ptr[0] = ptr[0];
                        pred_ptr[1] = ptr[1];
                        pred_ptr[2] = ptr[2];
                        pred_ptr[3] = ptr[3];
                        pred_ptr   += pitch;
                        ptr        += pre_stride;
                    }
                }
            }
        }
Esempio n. 2
0
        static void build_inter_predictors_b(BLOCKD d, byte *dst,
                                             int dst_stride, byte *base_pre,
                                             int pre_stride, vp8_subpix_fn_t sppf)
        {
            int   r;
            byte *ptr;

            ptr = base_pre + d.offset + (d.bmi.mv.as_mv.row >> 3) * pre_stride +
                  (d.bmi.mv.as_mv.col >> 3);

            if ((d.bmi.mv.as_mv.row & 7) > 0 || (d.bmi.mv.as_mv.col & 7) > 0)
            {
                sppf(ptr, pre_stride, d.bmi.mv.as_mv.col & 7, d.bmi.mv.as_mv.row & 7, dst,
                     dst_stride);
            }
            else
            {
                for (r = 0; r < 4; ++r)
                {
                    dst[0] = ptr[0];
                    dst[1] = ptr[1];
                    dst[2] = ptr[2];
                    dst[3] = ptr[3];
                    dst   += dst_stride;
                    ptr   += pre_stride;
                }
            }
        }