void vp8_remove_common(VP8_COMMON *oci);
void vp8_de_alloc_frame_buffers(VP8_COMMON *oci);
int vp8_alloc_frame_buffers(VP8_COMMON *oci, int width, int height);
-void vp8_setup_version(VP8_COMMON *oci);
+void vp8_setup_version(VP8_COMMON *cm);
#ifdef __cplusplus
} // extern "C"
}
void vp8_dequant_idct_add_uv_block_neon(short *q, short *dq,
- unsigned char *dstu,
- unsigned char *dstv, int stride,
+ unsigned char *dst_u,
+ unsigned char *dst_v, int stride,
char *eobs) {
if (((short *)(eobs))[0]) {
if (((short *)eobs)[0] & 0xfefe)
- idct_dequant_full_2x_neon(q, dq, dstu, stride);
+ idct_dequant_full_2x_neon(q, dq, dst_u, stride);
else
- idct_dequant_0_2x_neon(q, dq[0], dstu, stride);
+ idct_dequant_0_2x_neon(q, dq[0], dst_u, stride);
}
q += 32;
- dstu += 4 * stride;
+ dst_u += 4 * stride;
if (((short *)(eobs))[1]) {
if (((short *)eobs)[1] & 0xfefe)
- idct_dequant_full_2x_neon(q, dq, dstu, stride);
+ idct_dequant_full_2x_neon(q, dq, dst_u, stride);
else
- idct_dequant_0_2x_neon(q, dq[0], dstu, stride);
+ idct_dequant_0_2x_neon(q, dq[0], dst_u, stride);
}
q += 32;
if (((short *)(eobs))[2]) {
if (((short *)eobs)[2] & 0xfefe)
- idct_dequant_full_2x_neon(q, dq, dstv, stride);
+ idct_dequant_full_2x_neon(q, dq, dst_v, stride);
else
- idct_dequant_0_2x_neon(q, dq[0], dstv, stride);
+ idct_dequant_0_2x_neon(q, dq[0], dst_v, stride);
}
q += 32;
- dstv += 4 * stride;
+ dst_v += 4 * stride;
if (((short *)(eobs))[3]) {
if (((short *)eobs)[3] & 0xfefe)
- idct_dequant_full_2x_neon(q, dq, dstv, stride);
+ idct_dequant_full_2x_neon(q, dq, dst_v, stride);
else
- idct_dequant_0_2x_neon(q, dq[0], dstv, stride);
+ idct_dequant_0_2x_neon(q, dq[0], dst_v, stride);
}
}
union b_mode_info bmi;
} BLOCKD;
-typedef void (*vp8_subpix_fn_t)(unsigned char *src, int src_pitch, int xofst,
- int yofst, unsigned char *dst, int dst_pitch);
+typedef void (*vp8_subpix_fn_t)(unsigned char *src_ptr, int src_pixels_per_line,
+ int xoffset, int yoffset,
+ unsigned char *dst_ptr, int dst_pitch);
typedef struct macroblockd {
DECLARE_ALIGNED(16, unsigned char, predictor[384]);
memcpy(x->fc.sub_mv_ref_prob, sub_mv_ref_prob, sizeof(sub_mv_ref_prob));
}
-void vp8_default_bmode_probs(vp8_prob p[VP8_BINTRAMODES - 1]) {
- memcpy(p, vp8_bmode_prob, sizeof(vp8_bmode_prob));
+void vp8_default_bmode_probs(vp8_prob dest[VP8_BINTRAMODES - 1]) {
+ memcpy(dest, vp8_bmode_prob, sizeof(vp8_bmode_prob));
}
Note that we only consider one 4x4 subblock from each candidate 16x16
macroblock. */
void vp8_find_near_mvs(MACROBLOCKD *xd, const MODE_INFO *here, int_mv *nearest,
- int_mv *nearby, int_mv *best_mv, int cnt[4],
+ int_mv *nearby, int_mv *best_mv, int near_mv_ref_cnts[4],
int refframe, int *ref_frame_sign_bias) {
const MODE_INFO *above = here - xd->mode_info_stride;
const MODE_INFO *left = here - 1;
const MODE_INFO *aboveleft = above - 1;
int_mv near_mvs[4];
int_mv *mv = near_mvs;
- int *cntx = cnt;
+ int *cntx = near_mv_ref_cnts;
enum { CNT_INTRA, CNT_NEAREST, CNT_NEAR, CNT_SPLITMV };
/* Zero accumulators */
mv[0].as_int = mv[1].as_int = mv[2].as_int = 0;
- cnt[0] = cnt[1] = cnt[2] = cnt[3] = 0;
+ near_mv_ref_cnts[0] = near_mv_ref_cnts[1] = near_mv_ref_cnts[2] =
+ near_mv_ref_cnts[3] = 0;
/* Process above */
if (above->mbmi.ref_frame != INTRA_FRAME) {
*cntx += 2;
} else {
- cnt[CNT_INTRA] += 2;
+ near_mv_ref_cnts[CNT_INTRA] += 2;
}
}
*cntx += 1;
} else {
- cnt[CNT_INTRA] += 1;
+ near_mv_ref_cnts[CNT_INTRA] += 1;
}
}
/* If we have three distinct MV's ... */
- if (cnt[CNT_SPLITMV]) {
+ if (near_mv_ref_cnts[CNT_SPLITMV]) {
/* See if above-left MV can be merged with NEAREST */
- if (mv->as_int == near_mvs[CNT_NEAREST].as_int) cnt[CNT_NEAREST] += 1;
+ if (mv->as_int == near_mvs[CNT_NEAREST].as_int)
+ near_mv_ref_cnts[CNT_NEAREST] += 1;
}
- cnt[CNT_SPLITMV] =
+ near_mv_ref_cnts[CNT_SPLITMV] =
((above->mbmi.mode == SPLITMV) + (left->mbmi.mode == SPLITMV)) * 2 +
(aboveleft->mbmi.mode == SPLITMV);
/* Swap near and nearest if necessary */
- if (cnt[CNT_NEAR] > cnt[CNT_NEAREST]) {
+ if (near_mv_ref_cnts[CNT_NEAR] > near_mv_ref_cnts[CNT_NEAREST]) {
int tmp;
- tmp = cnt[CNT_NEAREST];
- cnt[CNT_NEAREST] = cnt[CNT_NEAR];
- cnt[CNT_NEAR] = tmp;
+ tmp = near_mv_ref_cnts[CNT_NEAREST];
+ near_mv_ref_cnts[CNT_NEAREST] = near_mv_ref_cnts[CNT_NEAR];
+ near_mv_ref_cnts[CNT_NEAR] = tmp;
tmp = near_mvs[CNT_NEAREST].as_int;
near_mvs[CNT_NEAREST].as_int = near_mvs[CNT_NEAR].as_int;
near_mvs[CNT_NEAR].as_int = tmp;
}
/* Use near_mvs[0] to store the "best" MV */
- if (cnt[CNT_NEAREST] >= cnt[CNT_INTRA]) {
+ if (near_mv_ref_cnts[CNT_NEAREST] >= near_mv_ref_cnts[CNT_INTRA]) {
near_mvs[CNT_INTRA] = near_mvs[CNT_NEAREST];
}
}
void vp8_find_near_mvs(MACROBLOCKD *xd, const MODE_INFO *here, int_mv *nearest,
- int_mv *nearby, int_mv *best, int near_mv_ref_cts[4],
+ int_mv *nearby, int_mv *best_mv, int near_mv_ref_cnts[4],
int refframe, int *ref_frame_sign_bias);
int vp8_find_near_mvs_bias(MACROBLOCKD *xd, const MODE_INFO *here,
#include "vp8_rtcd.h"
#include "vpx_mem/vpx_mem.h"
-void vp8_dequant_idct_add_c(short *input, short *dq, unsigned char *dest,
- int stride);
-void vp8_dc_only_idct_add_c(short input_dc, unsigned char *pred,
- int pred_stride, unsigned char *dst_ptr,
- int dst_stride);
-
void vp8_dequant_idct_add_y_block_c(short *q, short *dq, unsigned char *dst,
int stride, char *eobs) {
int i, j;
}
}
-void vp8_dequant_idct_add_uv_block_c(short *q, short *dq, unsigned char *dstu,
- unsigned char *dstv, int stride,
+void vp8_dequant_idct_add_uv_block_c(short *q, short *dq, unsigned char *dst_u,
+ unsigned char *dst_v, int stride,
char *eobs) {
int i, j;
for (i = 0; i < 2; ++i) {
for (j = 0; j < 2; ++j) {
if (*eobs++ > 1) {
- vp8_dequant_idct_add_c(q, dq, dstu, stride);
+ vp8_dequant_idct_add_c(q, dq, dst_u, stride);
} else {
- vp8_dc_only_idct_add_c(q[0] * dq[0], dstu, stride, dstu, stride);
+ vp8_dc_only_idct_add_c(q[0] * dq[0], dst_u, stride, dst_u, stride);
memset(q, 0, 2 * sizeof(q[0]));
}
q += 16;
- dstu += 4;
+ dst_u += 4;
}
- dstu += 4 * stride - 8;
+ dst_u += 4 * stride - 8;
}
for (i = 0; i < 2; ++i) {
for (j = 0; j < 2; ++j) {
if (*eobs++ > 1) {
- vp8_dequant_idct_add_c(q, dq, dstv, stride);
+ vp8_dequant_idct_add_c(q, dq, dst_v, stride);
} else {
- vp8_dc_only_idct_add_c(q[0] * dq[0], dstv, stride, dstv, stride);
+ vp8_dc_only_idct_add_c(q[0] * dq[0], dst_v, stride, dst_v, stride);
memset(q, 0, 2 * sizeof(q[0]));
}
q += 16;
- dstv += 4;
+ dst_v += 4;
}
- dstv += 4 * stride - 8;
+ dst_v += 4 * stride - 8;
}
}
*op0 = u ^ 0x80;
}
-void vp8_loop_filter_simple_horizontal_edge_c(unsigned char *s, int p,
+void vp8_loop_filter_simple_horizontal_edge_c(unsigned char *y_ptr,
+ int y_stride,
const unsigned char *blimit) {
signed char mask = 0;
int i = 0;
do {
- mask = vp8_simple_filter_mask(blimit[0], s[-2 * p], s[-1 * p], s[0 * p],
- s[1 * p]);
- vp8_simple_filter(mask, s - 2 * p, s - 1 * p, s, s + 1 * p);
- ++s;
+ mask = vp8_simple_filter_mask(blimit[0], y_ptr[-2 * y_stride],
+ y_ptr[-1 * y_stride], y_ptr[0 * y_stride],
+ y_ptr[1 * y_stride]);
+ vp8_simple_filter(mask, y_ptr - 2 * y_stride, y_ptr - 1 * y_stride, y_ptr,
+ y_ptr + 1 * y_stride);
+ ++y_ptr;
} while (++i < 16);
}
-void vp8_loop_filter_simple_vertical_edge_c(unsigned char *s, int p,
+void vp8_loop_filter_simple_vertical_edge_c(unsigned char *y_ptr, int y_stride,
const unsigned char *blimit) {
signed char mask = 0;
int i = 0;
do {
- mask = vp8_simple_filter_mask(blimit[0], s[-2], s[-1], s[0], s[1]);
- vp8_simple_filter(mask, s - 2, s - 1, s, s + 1);
- s += p;
+ mask = vp8_simple_filter_mask(blimit[0], y_ptr[-2], y_ptr[-1], y_ptr[0],
+ y_ptr[1]);
+ vp8_simple_filter(mask, y_ptr - 2, y_ptr - 1, y_ptr, y_ptr + 1);
+ y_ptr += y_stride;
} while (++i < 16);
}
}
void vp8_dequant_idct_add_uv_block_dspr2(short *q, short *dq,
- unsigned char *dstu,
- unsigned char *dstv, int stride,
+ unsigned char *dst_u,
+ unsigned char *dst_v, int stride,
char *eobs) {
int i, j;
for (i = 0; i < 2; ++i) {
for (j = 0; j < 2; ++j) {
if (*eobs++ > 1)
- vp8_dequant_idct_add_dspr2(q, dq, dstu, stride);
+ vp8_dequant_idct_add_dspr2(q, dq, dst_u, stride);
else {
- vp8_dc_only_idct_add_dspr2(q[0] * dq[0], dstu, stride, dstu, stride);
+ vp8_dc_only_idct_add_dspr2(q[0] * dq[0], dst_u, stride, dst_u, stride);
((int *)q)[0] = 0;
}
q += 16;
- dstu += 4;
+ dst_u += 4;
}
- dstu += 4 * stride - 8;
+ dst_u += 4 * stride - 8;
}
for (i = 0; i < 2; ++i) {
for (j = 0; j < 2; ++j) {
if (*eobs++ > 1)
- vp8_dequant_idct_add_dspr2(q, dq, dstv, stride);
+ vp8_dequant_idct_add_dspr2(q, dq, dst_v, stride);
else {
- vp8_dc_only_idct_add_dspr2(q[0] * dq[0], dstv, stride, dstv, stride);
+ vp8_dc_only_idct_add_dspr2(q[0] * dq[0], dst_v, stride, dst_v, stride);
((int *)q)[0] = 0;
}
q += 16;
- dstv += 4;
+ dst_v += 4;
}
- dstv += 4 * stride - 8;
+ dst_v += 4 * stride - 8;
}
}
}
}
-void vp8_dequant_idct_add_uv_block_mmi(int16_t *q, int16_t *dq, uint8_t *dstu,
- uint8_t *dstv, int stride, char *eobs) {
+void vp8_dequant_idct_add_uv_block_mmi(int16_t *q, int16_t *dq, uint8_t *dst_u,
+ uint8_t *dst_v, int stride, char *eobs) {
int i, j;
for (i = 0; i < 2; i++) {
for (j = 0; j < 2; j++) {
if (*eobs++ > 1) {
- vp8_dequant_idct_add_mmi(q, dq, dstu, stride);
+ vp8_dequant_idct_add_mmi(q, dq, dst_u, stride);
} else {
- vp8_dc_only_idct_add_mmi(q[0] * dq[0], dstu, stride, dstu, stride);
+ vp8_dc_only_idct_add_mmi(q[0] * dq[0], dst_u, stride, dst_u, stride);
memset(q, 0, 2 * sizeof(q[0]));
}
q += 16;
- dstu += 4;
+ dst_u += 4;
}
- dstu += 4 * stride - 8;
+ dst_u += 4 * stride - 8;
}
for (i = 0; i < 2; i++) {
for (j = 0; j < 2; j++) {
if (*eobs++ > 1) {
- vp8_dequant_idct_add_mmi(q, dq, dstv, stride);
+ vp8_dequant_idct_add_mmi(q, dq, dst_v, stride);
} else {
- vp8_dc_only_idct_add_mmi(q[0] * dq[0], dstv, stride, dstv, stride);
+ vp8_dc_only_idct_add_mmi(q[0] * dq[0], dst_v, stride, dst_v, stride);
memset(q, 0, 2 * sizeof(q[0]));
}
q += 16;
- dstv += 4;
+ dst_v += 4;
}
- dstv += 4 * stride - 8;
+ dst_v += 4 * stride - 8;
}
}
ST4x4_UB(dst0, dst0, 0, 1, 2, 3, dest, dest_stride);
}
-void vp8_short_inv_walsh4x4_msa(int16_t *input, int16_t *mb_dq_coeff) {
+void vp8_short_inv_walsh4x4_msa(int16_t *input, int16_t *mb_dqcoeff) {
v8i16 input0, input1, tmp0, tmp1, tmp2, tmp3, out0, out1;
const v8i16 mask0 = { 0, 1, 2, 3, 8, 9, 10, 11 };
const v8i16 mask1 = { 4, 5, 6, 7, 12, 13, 14, 15 };
ADD2(tmp0, 3, tmp1, 3, out0, out1);
out0 >>= 3;
out1 >>= 3;
- mb_dq_coeff[0] = __msa_copy_s_h(out0, 0);
- mb_dq_coeff[16] = __msa_copy_s_h(out0, 4);
- mb_dq_coeff[32] = __msa_copy_s_h(out1, 0);
- mb_dq_coeff[48] = __msa_copy_s_h(out1, 4);
- mb_dq_coeff[64] = __msa_copy_s_h(out0, 1);
- mb_dq_coeff[80] = __msa_copy_s_h(out0, 5);
- mb_dq_coeff[96] = __msa_copy_s_h(out1, 1);
- mb_dq_coeff[112] = __msa_copy_s_h(out1, 5);
- mb_dq_coeff[128] = __msa_copy_s_h(out0, 2);
- mb_dq_coeff[144] = __msa_copy_s_h(out0, 6);
- mb_dq_coeff[160] = __msa_copy_s_h(out1, 2);
- mb_dq_coeff[176] = __msa_copy_s_h(out1, 6);
- mb_dq_coeff[192] = __msa_copy_s_h(out0, 3);
- mb_dq_coeff[208] = __msa_copy_s_h(out0, 7);
- mb_dq_coeff[224] = __msa_copy_s_h(out1, 3);
- mb_dq_coeff[240] = __msa_copy_s_h(out1, 7);
+ mb_dqcoeff[0] = __msa_copy_s_h(out0, 0);
+ mb_dqcoeff[16] = __msa_copy_s_h(out0, 4);
+ mb_dqcoeff[32] = __msa_copy_s_h(out1, 0);
+ mb_dqcoeff[48] = __msa_copy_s_h(out1, 4);
+ mb_dqcoeff[64] = __msa_copy_s_h(out0, 1);
+ mb_dqcoeff[80] = __msa_copy_s_h(out0, 5);
+ mb_dqcoeff[96] = __msa_copy_s_h(out1, 1);
+ mb_dqcoeff[112] = __msa_copy_s_h(out1, 5);
+ mb_dqcoeff[128] = __msa_copy_s_h(out0, 2);
+ mb_dqcoeff[144] = __msa_copy_s_h(out0, 6);
+ mb_dqcoeff[160] = __msa_copy_s_h(out1, 2);
+ mb_dqcoeff[176] = __msa_copy_s_h(out1, 6);
+ mb_dqcoeff[192] = __msa_copy_s_h(out0, 3);
+ mb_dqcoeff[208] = __msa_copy_s_h(out0, 7);
+ mb_dqcoeff[224] = __msa_copy_s_h(out1, 3);
+ mb_dqcoeff[240] = __msa_copy_s_h(out1, 7);
}
static void dequant_idct4x4_addblk_msa(int16_t *input, int16_t *dequant_input,
}
}
-void vp8_dequant_idct_add_uv_block_msa(int16_t *q, int16_t *dq, uint8_t *dstu,
- uint8_t *dstv, int32_t stride,
+void vp8_dequant_idct_add_uv_block_msa(int16_t *q, int16_t *dq, uint8_t *dst_u,
+ uint8_t *dst_v, int32_t stride,
char *eobs) {
int16_t *eobs_h = (int16_t *)eobs;
if (eobs_h[0]) {
if (eobs_h[0] & 0xfefe) {
- dequant_idct4x4_addblk_2x_msa(q, dq, dstu, stride);
+ dequant_idct4x4_addblk_2x_msa(q, dq, dst_u, stride);
} else {
- dequant_idct_addconst_2x_msa(q, dq, dstu, stride);
+ dequant_idct_addconst_2x_msa(q, dq, dst_u, stride);
}
}
q += 32;
- dstu += (stride * 4);
+ dst_u += (stride * 4);
if (eobs_h[1]) {
if (eobs_h[1] & 0xfefe) {
- dequant_idct4x4_addblk_2x_msa(q, dq, dstu, stride);
+ dequant_idct4x4_addblk_2x_msa(q, dq, dst_u, stride);
} else {
- dequant_idct_addconst_2x_msa(q, dq, dstu, stride);
+ dequant_idct_addconst_2x_msa(q, dq, dst_u, stride);
}
}
if (eobs_h[2]) {
if (eobs_h[2] & 0xfefe) {
- dequant_idct4x4_addblk_2x_msa(q, dq, dstv, stride);
+ dequant_idct4x4_addblk_2x_msa(q, dq, dst_v, stride);
} else {
- dequant_idct_addconst_2x_msa(q, dq, dstv, stride);
+ dequant_idct_addconst_2x_msa(q, dq, dst_v, stride);
}
}
q += 32;
- dstv += (stride * 4);
+ dst_v += (stride * 4);
if (eobs_h[3]) {
if (eobs_h[3] & 0xfefe) {
- dequant_idct4x4_addblk_2x_msa(q, dq, dstv, stride);
+ dequant_idct4x4_addblk_2x_msa(q, dq, dst_v, stride);
} else {
- dequant_idct_addconst_2x_msa(q, dq, dstv, stride);
+ dequant_idct_addconst_2x_msa(q, dq, dst_v, stride);
}
}
}
extern "C" {
#endif
int vp8_post_proc_frame(struct VP8Common *oci, YV12_BUFFER_CONFIG *dest,
- vp8_ppflags_t *flags);
+ vp8_ppflags_t *ppflags);
-void vp8_de_noise(struct VP8Common *oci, YV12_BUFFER_CONFIG *source,
+void vp8_de_noise(struct VP8Common *cm, YV12_BUFFER_CONFIG *source,
YV12_BUFFER_CONFIG *post, int q, int low_var_thresh, int flag,
int uvfilter);
-void vp8_deblock(struct VP8Common *oci, YV12_BUFFER_CONFIG *source,
+void vp8_deblock(struct VP8Common *cm, YV12_BUFFER_CONFIG *source,
YV12_BUFFER_CONFIG *post, int q, int low_var_thresh, int flag);
#define MFQE_PRECISION 4
extern "C" {
#endif
-extern void vp8_build_inter_predictors_mb(MACROBLOCKD *x);
-extern void vp8_build_inter16x16_predictors_mb(
- MACROBLOCKD *x, unsigned char *dst_y, unsigned char *dst_u,
- unsigned char *dst_v, int dst_ystride, int dst_uvstride);
+void vp8_build_inter_predictors_mb(MACROBLOCKD *xd);
+void vp8_build_inter16x16_predictors_mb(MACROBLOCKD *x, unsigned char *dst_y,
+ unsigned char *dst_u,
+ unsigned char *dst_v, int dst_ystride,
+ int dst_uvstride);
-extern void vp8_build_inter16x16_predictors_mby(MACROBLOCKD *x,
- unsigned char *dst_y,
- int dst_ystride);
-extern void vp8_build_inter_predictors_b(BLOCKD *d, int pitch,
- unsigned char *base_pre,
- int pre_stride, vp8_subpix_fn_t sppf);
+void vp8_build_inter16x16_predictors_mby(MACROBLOCKD *x, unsigned char *dst_y,
+ int dst_ystride);
+void vp8_build_inter_predictors_b(BLOCKD *d, int pitch, unsigned char *base_pre,
+ int pre_stride, vp8_subpix_fn_t sppf);
-extern void vp8_build_inter16x16_predictors_mbuv(MACROBLOCKD *x);
-extern void vp8_build_inter4x4_predictors_mbuv(MACROBLOCKD *x);
+void vp8_build_inter16x16_predictors_mbuv(MACROBLOCKD *x);
+void vp8_build_inter4x4_predictors_mbuv(MACROBLOCKD *x);
#ifdef __cplusplus
} // extern "C"
*dst_ptr2 = *src_ptr;
}
-void vp8_intra4x4_predict(unsigned char *Above, unsigned char *yleft,
+void vp8_intra4x4_predict(unsigned char *above, unsigned char *yleft,
int left_stride, B_PREDICTION_MODE b_mode,
unsigned char *dst, int dst_stride,
unsigned char top_left);
#
# Dequant
#
-add_proto qw/void vp8_dequantize_b/, "struct blockd*, short *dqc";
+add_proto qw/void vp8_dequantize_b/, "struct blockd*, short *DQC";
specialize qw/vp8_dequantize_b mmx neon msa mmi/;
-add_proto qw/void vp8_dequant_idct_add/, "short *input, short *dq, unsigned char *output, int stride";
+add_proto qw/void vp8_dequant_idct_add/, "short *input, short *dq, unsigned char *dest, int stride";
specialize qw/vp8_dequant_idct_add mmx neon dspr2 msa mmi/;
add_proto qw/void vp8_dequant_idct_add_y_block/, "short *q, short *dq, unsigned char *dst, int stride, char *eobs";
#
# Loopfilter
#
-add_proto qw/void vp8_loop_filter_mbv/, "unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi";
+add_proto qw/void vp8_loop_filter_mbv/, "unsigned char *y_ptr, unsigned char *u_ptr, unsigned char *v_ptr, int y_stride, int uv_stride, struct loop_filter_info *lfi";
specialize qw/vp8_loop_filter_mbv sse2 neon dspr2 msa mmi/;
-add_proto qw/void vp8_loop_filter_bv/, "unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi";
+add_proto qw/void vp8_loop_filter_bv/, "unsigned char *y_ptr, unsigned char *u_ptr, unsigned char *v_ptr, int y_stride, int uv_stride, struct loop_filter_info *lfi";
specialize qw/vp8_loop_filter_bv sse2 neon dspr2 msa mmi/;
-add_proto qw/void vp8_loop_filter_mbh/, "unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi";
+add_proto qw/void vp8_loop_filter_mbh/, "unsigned char *y_ptr, unsigned char *u_ptr, unsigned char *v_ptr, int y_stride, int uv_stride, struct loop_filter_info *lfi";
specialize qw/vp8_loop_filter_mbh sse2 neon dspr2 msa mmi/;
-add_proto qw/void vp8_loop_filter_bh/, "unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi";
+add_proto qw/void vp8_loop_filter_bh/, "unsigned char *y_ptr, unsigned char *u_ptr, unsigned char *v_ptr, int y_stride, int uv_stride, struct loop_filter_info *lfi";
specialize qw/vp8_loop_filter_bh sse2 neon dspr2 msa mmi/;
-add_proto qw/void vp8_loop_filter_simple_mbv/, "unsigned char *y, int ystride, const unsigned char *blimit";
+add_proto qw/void vp8_loop_filter_simple_mbv/, "unsigned char *y_ptr, int y_stride, const unsigned char *blimit";
specialize qw/vp8_loop_filter_simple_mbv sse2 neon msa mmi/;
$vp8_loop_filter_simple_mbv_c=vp8_loop_filter_simple_vertical_edge_c;
$vp8_loop_filter_simple_mbv_sse2=vp8_loop_filter_simple_vertical_edge_sse2;
$vp8_loop_filter_simple_mbv_msa=vp8_loop_filter_simple_vertical_edge_msa;
$vp8_loop_filter_simple_mbv_mmi=vp8_loop_filter_simple_vertical_edge_mmi;
-add_proto qw/void vp8_loop_filter_simple_mbh/, "unsigned char *y, int ystride, const unsigned char *blimit";
+add_proto qw/void vp8_loop_filter_simple_mbh/, "unsigned char *y_ptr, int y_stride, const unsigned char *blimit";
specialize qw/vp8_loop_filter_simple_mbh sse2 neon msa mmi/;
$vp8_loop_filter_simple_mbh_c=vp8_loop_filter_simple_horizontal_edge_c;
$vp8_loop_filter_simple_mbh_sse2=vp8_loop_filter_simple_horizontal_edge_sse2;
$vp8_loop_filter_simple_mbh_msa=vp8_loop_filter_simple_horizontal_edge_msa;
$vp8_loop_filter_simple_mbh_mmi=vp8_loop_filter_simple_horizontal_edge_mmi;
-add_proto qw/void vp8_loop_filter_simple_bv/, "unsigned char *y, int ystride, const unsigned char *blimit";
+add_proto qw/void vp8_loop_filter_simple_bv/, "unsigned char *y_ptr, int y_stride, const unsigned char *blimit";
specialize qw/vp8_loop_filter_simple_bv sse2 neon msa mmi/;
$vp8_loop_filter_simple_bv_c=vp8_loop_filter_bvs_c;
$vp8_loop_filter_simple_bv_sse2=vp8_loop_filter_bvs_sse2;
$vp8_loop_filter_simple_bv_msa=vp8_loop_filter_bvs_msa;
$vp8_loop_filter_simple_bv_mmi=vp8_loop_filter_bvs_mmi;
-add_proto qw/void vp8_loop_filter_simple_bh/, "unsigned char *y, int ystride, const unsigned char *blimit";
+add_proto qw/void vp8_loop_filter_simple_bh/, "unsigned char *y_ptr, int y_stride, const unsigned char *blimit";
specialize qw/vp8_loop_filter_simple_bh sse2 neon msa mmi/;
$vp8_loop_filter_simple_bh_c=vp8_loop_filter_bhs_c;
$vp8_loop_filter_simple_bh_sse2=vp8_loop_filter_bhs_sse2;
# IDCT
#
#idct16
-add_proto qw/void vp8_short_idct4x4llm/, "short *input, unsigned char *pred, int pitch, unsigned char *dst, int dst_stride";
+add_proto qw/void vp8_short_idct4x4llm/, "short *input, unsigned char *pred_ptr, int pred_stride, unsigned char *dst_ptr, int dst_stride";
specialize qw/vp8_short_idct4x4llm mmx neon dspr2 msa mmi/;
#iwalsh1
-add_proto qw/void vp8_short_inv_walsh4x4_1/, "short *input, short *output";
+add_proto qw/void vp8_short_inv_walsh4x4_1/, "short *input, short *mb_dqcoeff";
specialize qw/vp8_short_inv_walsh4x4_1 dspr2/;
#iwalsh16
-add_proto qw/void vp8_short_inv_walsh4x4/, "short *input, short *output";
+add_proto qw/void vp8_short_inv_walsh4x4/, "short *input, short *mb_dqcoeff";
specialize qw/vp8_short_inv_walsh4x4 sse2 neon dspr2 msa mmi/;
#idct1_scalar_add
-add_proto qw/void vp8_dc_only_idct_add/, "short input, unsigned char *pred, int pred_stride, unsigned char *dst, int dst_stride";
+add_proto qw/void vp8_dc_only_idct_add/, "short input_dc, unsigned char *pred_ptr, int pred_stride, unsigned char *dst_ptr, int dst_stride";
specialize qw/vp8_dc_only_idct_add mmx neon dspr2 msa mmi/;
#
# RECON
#
-add_proto qw/void vp8_copy_mem16x16/, "unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch";
+add_proto qw/void vp8_copy_mem16x16/, "unsigned char *src, int src_stride, unsigned char *dst, int dst_stride";
specialize qw/vp8_copy_mem16x16 sse2 neon dspr2 msa mmi/;
-add_proto qw/void vp8_copy_mem8x8/, "unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch";
+add_proto qw/void vp8_copy_mem8x8/, "unsigned char *src, int src_stride, unsigned char *dst, int dst_stride";
specialize qw/vp8_copy_mem8x8 mmx neon dspr2 msa mmi/;
-add_proto qw/void vp8_copy_mem8x4/, "unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch";
+add_proto qw/void vp8_copy_mem8x4/, "unsigned char *src, int src_stride, unsigned char *dst, int dst_stride";
specialize qw/vp8_copy_mem8x4 mmx neon dspr2 msa mmi/;
#
#
if (vpx_config("CONFIG_POSTPROC") eq "yes") {
- add_proto qw/void vp8_blend_mb_inner/, "unsigned char *y, unsigned char *u, unsigned char *v, int y1, int u1, int v1, int alpha, int stride";
+ add_proto qw/void vp8_blend_mb_inner/, "unsigned char *y, unsigned char *u, unsigned char *v, int y_1, int u_1, int v_1, int alpha, int stride";
- add_proto qw/void vp8_blend_mb_outer/, "unsigned char *y, unsigned char *u, unsigned char *v, int y1, int u1, int v1, int alpha, int stride";
+ add_proto qw/void vp8_blend_mb_outer/, "unsigned char *y, unsigned char *u, unsigned char *v, int y_1, int u_1, int v_1, int alpha, int stride";
- add_proto qw/void vp8_blend_b/, "unsigned char *y, unsigned char *u, unsigned char *v, int y1, int u1, int v1, int alpha, int stride";
+ add_proto qw/void vp8_blend_b/, "unsigned char *y, unsigned char *u, unsigned char *v, int y_1, int u_1, int v_1, int alpha, int stride";
add_proto qw/void vp8_filter_by_weight16x16/, "unsigned char *src, int src_stride, unsigned char *dst, int dst_stride, int src_weight";
specialize qw/vp8_filter_by_weight16x16 sse2 msa/;
#
# Subpixel
#
-add_proto qw/void vp8_sixtap_predict16x16/, "unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch";
+add_proto qw/void vp8_sixtap_predict16x16/, "unsigned char *src_ptr, int src_pixels_per_line, int xoffset, int yoffset, unsigned char *dst_ptr, int dst_pitch";
specialize qw/vp8_sixtap_predict16x16 sse2 ssse3 neon dspr2 msa mmi/;
-add_proto qw/void vp8_sixtap_predict8x8/, "unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch";
+add_proto qw/void vp8_sixtap_predict8x8/, "unsigned char *src_ptr, int src_pixels_per_line, int xoffset, int yoffset, unsigned char *dst_ptr, int dst_pitch";
specialize qw/vp8_sixtap_predict8x8 sse2 ssse3 neon dspr2 msa mmi/;
-add_proto qw/void vp8_sixtap_predict8x4/, "unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch";
+add_proto qw/void vp8_sixtap_predict8x4/, "unsigned char *src_ptr, int src_pixels_per_line, int xoffset, int yoffset, unsigned char *dst_ptr, int dst_pitch";
specialize qw/vp8_sixtap_predict8x4 sse2 ssse3 neon dspr2 msa mmi/;
-add_proto qw/void vp8_sixtap_predict4x4/, "unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch";
+add_proto qw/void vp8_sixtap_predict4x4/, "unsigned char *src_ptr, int src_pixels_per_line, int xoffset, int yoffset, unsigned char *dst_ptr, int dst_pitch";
specialize qw/vp8_sixtap_predict4x4 mmx ssse3 neon dspr2 msa mmi/;
-add_proto qw/void vp8_bilinear_predict16x16/, "unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch";
+add_proto qw/void vp8_bilinear_predict16x16/, "unsigned char *src_ptr, int src_pixels_per_line, int xoffset, int yoffset, unsigned char *dst_ptr, int dst_pitch";
specialize qw/vp8_bilinear_predict16x16 sse2 ssse3 neon msa/;
-add_proto qw/void vp8_bilinear_predict8x8/, "unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch";
+add_proto qw/void vp8_bilinear_predict8x8/, "unsigned char *src_ptr, int src_pixels_per_line, int xoffset, int yoffset, unsigned char *dst_ptr, int dst_pitch";
specialize qw/vp8_bilinear_predict8x8 sse2 ssse3 neon msa/;
-add_proto qw/void vp8_bilinear_predict8x4/, "unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch";
+add_proto qw/void vp8_bilinear_predict8x4/, "unsigned char *src_ptr, int src_pixels_per_line, int xoffset, int yoffset, unsigned char *dst_ptr, int dst_pitch";
specialize qw/vp8_bilinear_predict8x4 sse2 neon msa/;
-add_proto qw/void vp8_bilinear_predict4x4/, "unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch";
+add_proto qw/void vp8_bilinear_predict4x4/, "unsigned char *src_ptr, int src_pixels_per_line, int xoffset, int yoffset, unsigned char *dst_ptr, int dst_pitch";
specialize qw/vp8_bilinear_predict4x4 sse2 neon msa/;
#
# Block copy
#
if ($opts{arch} =~ /x86/) {
- add_proto qw/void vp8_copy32xn/, "const unsigned char *src_ptr, int source_stride, unsigned char *dst_ptr, int dst_stride, int n";
+ add_proto qw/void vp8_copy32xn/, "const unsigned char *src_ptr, int src_stride, unsigned char *dst_ptr, int dst_stride, int height";
specialize qw/vp8_copy32xn sse2 sse3/;
}
vp8_prob probs[/* n-1 */],
unsigned int branch_ct[/* n-1 */][2],
const unsigned int num_events[/* n */],
- unsigned int Pfac, int rd) {
+ unsigned int Pfactor, int Round) {
const int tree_len = n - 1;
int t = 0;
if (tot) {
const unsigned int p =
- (unsigned int)(((uint64_t)c[0] * Pfac) + (rd ? tot >> 1 : 0)) / tot;
+ (unsigned int)(((uint64_t)c[0] * Pfactor) + (Round ? tot >> 1 : 0)) /
+ tot;
probs[t] = p < 256 ? (p ? p : 1) : 255; /* agree w/old version for now */
} else {
probs[t] = vp8_prob_half;
}
void vp8_dequant_idct_add_uv_block_sse2(short *q, short *dq,
- unsigned char *dstu,
- unsigned char *dstv, int stride,
+ unsigned char *dst_u,
+ unsigned char *dst_v, int stride,
char *eobs) {
if (((short *)(eobs))[0]) {
if (((short *)(eobs))[0] & 0xfefe) {
- vp8_idct_dequant_full_2x_sse2(q, dq, dstu, stride);
+ vp8_idct_dequant_full_2x_sse2(q, dq, dst_u, stride);
} else {
- vp8_idct_dequant_0_2x_sse2(q, dq, dstu, stride);
+ vp8_idct_dequant_0_2x_sse2(q, dq, dst_u, stride);
}
}
q += 32;
- dstu += stride * 4;
+ dst_u += stride * 4;
if (((short *)(eobs))[1]) {
if (((short *)(eobs))[1] & 0xfefe) {
- vp8_idct_dequant_full_2x_sse2(q, dq, dstu, stride);
+ vp8_idct_dequant_full_2x_sse2(q, dq, dst_u, stride);
} else {
- vp8_idct_dequant_0_2x_sse2(q, dq, dstu, stride);
+ vp8_idct_dequant_0_2x_sse2(q, dq, dst_u, stride);
}
}
q += 32;
if (((short *)(eobs))[2]) {
if (((short *)(eobs))[2] & 0xfefe) {
- vp8_idct_dequant_full_2x_sse2(q, dq, dstv, stride);
+ vp8_idct_dequant_full_2x_sse2(q, dq, dst_v, stride);
} else {
- vp8_idct_dequant_0_2x_sse2(q, dq, dstv, stride);
+ vp8_idct_dequant_0_2x_sse2(q, dq, dst_v, stride);
}
}
q += 32;
- dstv += stride * 4;
+ dst_v += stride * 4;
if (((short *)(eobs))[3]) {
if (((short *)(eobs))[3] & 0xfefe) {
- vp8_idct_dequant_full_2x_sse2(q, dq, dstv, stride);
+ vp8_idct_dequant_full_2x_sse2(q, dq, dst_v, stride);
} else {
- vp8_idct_dequant_0_2x_sse2(q, dq, dstv, stride);
+ vp8_idct_dequant_0_2x_sse2(q, dq, dst_v, stride);
}
}
}
SECTION .text
-;void vp8_short_inv_walsh4x4_sse2(short *input, short *output)
+;void vp8_short_inv_walsh4x4_sse2(short *input, short *mb_dqcoeff)
global sym(vp8_short_inv_walsh4x4_sse2) PRIVATE
sym(vp8_short_inv_walsh4x4_sse2):
push rbp