コード例 #1
0
ファイル: reconintra.cs プロジェクト: sipsorcery-org/VP8.Net
        public static void vp8_build_intra_predictors_mby_s(MACROBLOCKD x, byte *yabove_row,
                                                            byte *yleft, int left_stride,
                                                            byte *ypred_ptr, int y_stride)
        {
            MB_PREDICTION_MODE mode = (MB_PREDICTION_MODE)x.mode_info_context.get().mbmi.mode;
            //DECLARE_ALIGNED(16, uint8_t, yleft_col[16]);
            byte *        yleft_col = stackalloc byte[16];
            int           i;
            intra_pred_fn fn;

            for (i = 0; i < 16; ++i)
            {
                yleft_col[i] = yleft[i * left_stride];
            }

            if (mode == MB_PREDICTION_MODE.DC_PRED)
            {
                fn = dc_pred[x.left_available, x.up_available, (int)PredictionSizes.SIZE_16];
            }
            else
            {
                fn = pred[(int)mode, (int)PredictionSizes.SIZE_16];
            }

            fn(ypred_ptr, y_stride, yabove_row, yleft_col);
        }
コード例 #2
0
ファイル: reconintra.cs プロジェクト: sipsorcery-org/VP8.Net
        public static void vp8_build_intra_predictors_mbuv_s(
            MACROBLOCKD x, byte *uabove_row, byte *vabove_row,
            byte *uleft, byte *vleft, int left_stride,
            byte *upred_ptr, byte *vpred_ptr, int pred_stride)
        {
            MB_PREDICTION_MODE uvmode = (MB_PREDICTION_MODE)x.mode_info_context.get().mbmi.uv_mode;

            byte *uleft_col = stackalloc byte[8];
            byte *vleft_col = stackalloc byte[8];

            int           i;
            intra_pred_fn fn;

            for (i = 0; i < 8; ++i)
            {
                uleft_col[i] = uleft[i * left_stride];
                vleft_col[i] = vleft[i * left_stride];
            }

            if (uvmode == MB_PREDICTION_MODE.DC_PRED)
            {
                fn = dc_pred[x.left_available, x.up_available, (int)PredictionSizes.SIZE_8];
            }
            else
            {
                fn = pred[(int)uvmode, (int)PredictionSizes.SIZE_8];
            }

            fn(upred_ptr, pred_stride, uabove_row, uleft_col);
            fn(vpred_ptr, pred_stride, vabove_row, vleft_col);
        }