Commit 9bc5f3e3 authored by Ronald S. Bultje's avatar Ronald S. Bultje

Change common vp8_ public symbol prefixes to vp9_.

Change-Id: Ic5a5f60e1ff9d9ccae4174160d36529466eeb509
parent 5ddcbeeb
......@@ -48,7 +48,7 @@ void vp9_update_mode_info_in_image(VP8_COMMON *cpi, MODE_INFO *mi) {
}
}
void vp8_de_alloc_frame_buffers(VP8_COMMON *oci) {
void vp9_de_alloc_frame_buffers(VP8_COMMON *oci) {
int i;
for (i = 0; i < NUM_YV12_BUFFERS; i++)
......@@ -67,10 +67,10 @@ void vp8_de_alloc_frame_buffers(VP8_COMMON *oci) {
}
int vp8_alloc_frame_buffers(VP8_COMMON *oci, int width, int height) {
int vp9_alloc_frame_buffers(VP8_COMMON *oci, int width, int height) {
int i;
vp8_de_alloc_frame_buffers(oci);
vp9_de_alloc_frame_buffers(oci);
/* our internal buffers are always multiples of 16 */
if ((width & 0xf) != 0)
......@@ -84,7 +84,7 @@ int vp8_alloc_frame_buffers(VP8_COMMON *oci, int width, int height) {
oci->fb_idx_ref_cnt[i] = 0;
oci->yv12_fb[i].flags = 0;
if (vp8_yv12_alloc_frame_buffer(&oci->yv12_fb[i], width, height, VP8BORDERINPIXELS) < 0) {
vp8_de_alloc_frame_buffers(oci);
vp9_de_alloc_frame_buffers(oci);
return 1;
}
}
......@@ -100,12 +100,12 @@ int vp8_alloc_frame_buffers(VP8_COMMON *oci, int width, int height) {
oci->fb_idx_ref_cnt[3] = 1;
if (vp8_yv12_alloc_frame_buffer(&oci->temp_scale_frame, width, 16, VP8BORDERINPIXELS) < 0) {
vp8_de_alloc_frame_buffers(oci);
vp9_de_alloc_frame_buffers(oci);
return 1;
}
if (vp8_yv12_alloc_frame_buffer(&oci->post_proc_buffer, width, height, VP8BORDERINPIXELS) < 0) {
vp8_de_alloc_frame_buffers(oci);
vp9_de_alloc_frame_buffers(oci);
return 1;
}
......@@ -116,7 +116,7 @@ int vp8_alloc_frame_buffers(VP8_COMMON *oci, int width, int height) {
oci->mip = vpx_calloc((oci->mb_cols + 1) * (oci->mb_rows + 1), sizeof(MODE_INFO));
if (!oci->mip) {
vp8_de_alloc_frame_buffers(oci);
vp9_de_alloc_frame_buffers(oci);
return 1;
}
......@@ -127,7 +127,7 @@ int vp8_alloc_frame_buffers(VP8_COMMON *oci, int width, int height) {
oci->prev_mip = vpx_calloc((oci->mb_cols + 1) * (oci->mb_rows + 1), sizeof(MODE_INFO));
if (!oci->prev_mip) {
vp8_de_alloc_frame_buffers(oci);
vp9_de_alloc_frame_buffers(oci);
return 1;
}
......@@ -136,7 +136,7 @@ int vp8_alloc_frame_buffers(VP8_COMMON *oci, int width, int height) {
oci->above_context = vpx_calloc(sizeof(ENTROPY_CONTEXT_PLANES) * oci->mb_cols, 1);
if (!oci->above_context) {
vp8_de_alloc_frame_buffers(oci);
vp9_de_alloc_frame_buffers(oci);
return 1;
}
......@@ -145,7 +145,7 @@ int vp8_alloc_frame_buffers(VP8_COMMON *oci, int width, int height) {
return 0;
}
void vp8_setup_version(VP8_COMMON *cm) {
void vp9_setup_version(VP8_COMMON *cm) {
if (cm->version & 0x4) {
if (!CONFIG_EXPERIMENTAL)
vpx_internal_error(&cm->error, VPX_CODEC_UNSUP_BITSTREAM,
......@@ -183,12 +183,12 @@ void vp8_setup_version(VP8_COMMON *cm) {
// break;
}
}
void vp8_create_common(VP8_COMMON *oci) {
vp8_machine_specific_config(oci);
void vp9_create_common(VP8_COMMON *oci) {
vp9_machine_specific_config(oci);
vp8_init_mbmode_probs(oci);
vp9_init_mbmode_probs(oci);
vp8_default_bmode_probs(oci->fc.bmode_prob);
vp9_default_bmode_probs(oci->fc.bmode_prob);
oci->txfm_mode = ONLY_4X4;
oci->mb_no_coeff_skip = 1;
......@@ -209,14 +209,14 @@ void vp8_create_common(VP8_COMMON *oci) {
oci->kf_ymode_probs_update = 0;
}
void vp8_remove_common(VP8_COMMON *oci) {
vp8_de_alloc_frame_buffers(oci);
void vp9_remove_common(VP8_COMMON *oci) {
vp9_de_alloc_frame_buffers(oci);
}
void vp8_initialize_common() {
vp8_coef_tree_initialize();
void vp9_initialize_common() {
vp9_coef_tree_initialize();
vp8_entropy_mode_init();
vp9_entropy_mode_init();
vp8_entropy_mv_init();
vp9_entropy_mv_init();
}
......@@ -14,11 +14,11 @@
#include "onyxc_int.h"
void vp8_create_common(VP8_COMMON *oci);
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 vp9_create_common(VP8_COMMON *oci);
void vp9_remove_common(VP8_COMMON *oci);
void vp9_de_alloc_frame_buffers(VP8_COMMON *oci);
int vp9_alloc_frame_buffers(VP8_COMMON *oci, int width, int height);
void vp9_setup_version(VP8_COMMON *oci);
void vp9_update_mode_info_border(VP8_COMMON *cpi, MODE_INFO *mi_base);
void vp9_update_mode_info_in_image(VP8_COMMON *cpi, MODE_INFO *mi);
......
......@@ -34,58 +34,58 @@ void vp8_arch_arm_common_init(VP8_COMMON *ctx) {
// The commented functions need to be re-written for vpx.
#if HAVE_ARMV6
if (flags & HAS_MEDIA) {
rtcd->subpix.sixtap16x16 = vp8_sixtap_predict16x16_armv6;
rtcd->subpix.sixtap8x8 = vp8_sixtap_predict8x8_armv6;
rtcd->subpix.sixtap8x4 = vp8_sixtap_predict8x4_armv6;
rtcd->subpix.sixtap4x4 = vp8_sixtap_predict_armv6;
rtcd->subpix.sixtap16x16 = vp9_sixtap_predict16x16_armv6;
rtcd->subpix.sixtap8x8 = vp9_sixtap_predict8x8_armv6;
rtcd->subpix.sixtap8x4 = vp9_sixtap_predict8x4_armv6;
rtcd->subpix.sixtap4x4 = vp9_sixtap_predict_armv6;
rtcd->subpix.bilinear16x16 = vp8_bilinear_predict16x16_armv6;
rtcd->subpix.bilinear8x8 = vp8_bilinear_predict8x8_armv6;
rtcd->subpix.bilinear8x4 = vp8_bilinear_predict8x4_armv6;
rtcd->subpix.bilinear4x4 = vp8_bilinear_predict4x4_armv6;
rtcd->subpix.bilinear16x16 = vp9_bilinear_predict16x16_armv6;
rtcd->subpix.bilinear8x8 = vp9_bilinear_predict8x8_armv6;
rtcd->subpix.bilinear8x4 = vp9_bilinear_predict8x4_armv6;
rtcd->subpix.bilinear4x4 = vp9_bilinear_predict4x4_armv6;
// rtcd->idct.idct1 = vp8_short_idct4x4llm_1_v6;
// rtcd->idct.idct16 = vp8_short_idct4x4llm_v6_dual;
// rtcd->idct.iwalsh1 = vp8_short_inv_walsh4x4_1_v6;
// rtcd->idct.iwalsh16 = vp8_short_inv_walsh4x4_v6;
// rtcd->idct.idct1 = vp9_short_idct4x4llm_1_v6;
// rtcd->idct.idct16 = vp9_short_idct4x4llm_v6_dual;
// rtcd->idct.iwalsh1 = vp9_short_inv_walsh4x4_1_v6;
// rtcd->idct.iwalsh16 = vp9_short_inv_walsh4x4_v6;
rtcd->recon.copy16x16 = vp8_copy_mem16x16_v6;
rtcd->recon.copy8x8 = vp8_copy_mem8x8_v6;
rtcd->recon.copy8x4 = vp8_copy_mem8x4_v6;
rtcd->recon.recon = vp8_recon_b_armv6;
rtcd->recon.recon2 = vp8_recon2b_armv6;
rtcd->recon.recon4 = vp8_recon4b_armv6;
rtcd->recon.copy16x16 = vp9_copy_mem16x16_v6;
rtcd->recon.copy8x8 = vp9_copy_mem8x8_v6;
rtcd->recon.copy8x4 = vp9_copy_mem8x4_v6;
rtcd->recon.recon = vp9_recon_b_armv6;
rtcd->recon.recon2 = vp9_recon2b_armv6;
rtcd->recon.recon4 = vp9_recon4b_armv6;
}
#endif
#if HAVE_ARMV7
if (flags & HAS_NEON) {
rtcd->subpix.sixtap16x16 = vp8_sixtap_predict16x16_neon;
rtcd->subpix.sixtap8x8 = vp8_sixtap_predict8x8_neon;
rtcd->subpix.sixtap8x4 = vp8_sixtap_predict8x4_neon;
rtcd->subpix.sixtap4x4 = vp8_sixtap_predict_neon;
rtcd->subpix.sixtap16x16 = vp9_sixtap_predict16x16_neon;
rtcd->subpix.sixtap8x8 = vp9_sixtap_predict8x8_neon;
rtcd->subpix.sixtap8x4 = vp9_sixtap_predict8x4_neon;
rtcd->subpix.sixtap4x4 = vp9_sixtap_predict_neon;
rtcd->subpix.bilinear16x16 = vp8_bilinear_predict16x16_neon;
rtcd->subpix.bilinear8x8 = vp8_bilinear_predict8x8_neon;
rtcd->subpix.bilinear8x4 = vp8_bilinear_predict8x4_neon;
rtcd->subpix.bilinear4x4 = vp8_bilinear_predict4x4_neon;
rtcd->subpix.bilinear16x16 = vp9_bilinear_predict16x16_neon;
rtcd->subpix.bilinear8x8 = vp9_bilinear_predict8x8_neon;
rtcd->subpix.bilinear8x4 = vp9_bilinear_predict8x4_neon;
rtcd->subpix.bilinear4x4 = vp9_bilinear_predict4x4_neon;
// rtcd->idct.idct1 = vp8_short_idct4x4llm_1_neon;
// rtcd->idct.idct16 = vp8_short_idct4x4llm_neon;
// rtcd->idct.iwalsh1 = vp8_short_inv_walsh4x4_1_neon;
// rtcd->idct.iwalsh16 = vp8_short_inv_walsh4x4_neon;
// rtcd->idct.idct1 = vp9_short_idct4x4llm_1_neon;
// rtcd->idct.idct16 = vp9_short_idct4x4llm_neon;
// rtcd->idct.iwalsh1 = vp9_short_inv_walsh4x4_1_neon;
// rtcd->idct.iwalsh16 = vp9_short_inv_walsh4x4_neon;
rtcd->recon.copy16x16 = vp8_copy_mem16x16_neon;
rtcd->recon.copy8x8 = vp8_copy_mem8x8_neon;
rtcd->recon.copy8x4 = vp8_copy_mem8x4_neon;
rtcd->recon.recon = vp8_recon_b_neon;
rtcd->recon.recon2 = vp8_recon2b_neon;
rtcd->recon.recon4 = vp8_recon4b_neon;
rtcd->recon.recon_mb = vp8_recon_mb_neon;
rtcd->recon.copy16x16 = vp9_copy_mem16x16_neon;
rtcd->recon.copy8x8 = vp9_copy_mem8x8_neon;
rtcd->recon.copy8x4 = vp9_copy_mem8x4_neon;
rtcd->recon.recon = vp9_recon_b_neon;
rtcd->recon.recon2 = vp9_recon2b_neon;
rtcd->recon.recon4 = vp9_recon4b_neon;
rtcd->recon.recon_mb = vp9_recon_mb_neon;
rtcd->recon.build_intra_predictors_mby =
vp8_build_intra_predictors_mby_neon;
vp9_build_intra_predictors_mby_neon;
rtcd->recon.build_intra_predictors_mby_s =
vp8_build_intra_predictors_mby_s_neon;
vp9_build_intra_predictors_mby_s_neon;
}
#endif
......
......@@ -35,7 +35,7 @@ void vp8_filter_block2d_bil_armv6
}
void vp8_bilinear_predict4x4_armv6
void vp9_bilinear_predict4x4_armv6
(
unsigned char *src_ptr,
int src_pixels_per_line,
......@@ -53,7 +53,7 @@ void vp8_bilinear_predict4x4_armv6
vp8_filter_block2d_bil_armv6(src_ptr, dst_ptr, src_pixels_per_line, dst_pitch, HFilter, VFilter, 4, 4);
}
void vp8_bilinear_predict8x8_armv6
void vp9_bilinear_predict8x8_armv6
(
unsigned char *src_ptr,
int src_pixels_per_line,
......@@ -71,7 +71,7 @@ void vp8_bilinear_predict8x8_armv6
vp8_filter_block2d_bil_armv6(src_ptr, dst_ptr, src_pixels_per_line, dst_pitch, HFilter, VFilter, 8, 8);
}
void vp8_bilinear_predict8x4_armv6
void vp9_bilinear_predict8x4_armv6
(
unsigned char *src_ptr,
int src_pixels_per_line,
......@@ -89,7 +89,7 @@ void vp8_bilinear_predict8x4_armv6
vp8_filter_block2d_bil_armv6(src_ptr, dst_ptr, src_pixels_per_line, dst_pitch, HFilter, VFilter, 8, 4);
}
void vp8_bilinear_predict16x16_armv6
void vp9_bilinear_predict16x16_armv6
(
unsigned char *src_ptr,
int src_pixels_per_line,
......
......@@ -87,7 +87,7 @@ extern void vp8_filter_block2d_second_pass_only_armv6
);
#if HAVE_ARMV6
void vp8_sixtap_predict_armv6
void vp9_sixtap_predict_armv6
(
unsigned char *src_ptr,
int src_pixels_per_line,
......@@ -128,7 +128,7 @@ void vp8_sixtap_predict_armv6
}
}
void vp8_sixtap_predict8x8_armv6
void vp9_sixtap_predict8x8_armv6
(
unsigned char *src_ptr,
int src_pixels_per_line,
......@@ -162,7 +162,7 @@ void vp8_sixtap_predict8x8_armv6
}
void vp8_sixtap_predict16x16_armv6
void vp9_sixtap_predict16x16_armv6
(
unsigned char *src_ptr,
int src_pixels_per_line,
......
......@@ -13,52 +13,52 @@
#define IDCT_ARM_H
#if HAVE_ARMV6
extern prototype_idct(vp8_short_idct4x4llm_1_v6);
extern prototype_idct(vp8_short_idct4x4llm_v6_dual);
extern prototype_idct_scalar_add(vp8_dc_only_idct_add_v6);
extern prototype_second_order(vp8_short_inv_walsh4x4_1_v6);
extern prototype_second_order(vp8_short_inv_walsh4x4_v6);
extern prototype_idct(vp9_short_idct4x4llm_1_v6);
extern prototype_idct(vp9_short_idct4x4llm_v6_dual);
extern prototype_idct_scalar_add(vp9_dc_only_idct_add_v6);
extern prototype_second_order(vp9_short_inv_walsh4x4_1_v6);
extern prototype_second_order(vp9_short_inv_walsh4x4_v6);
#if !CONFIG_RUNTIME_CPU_DETECT
#undef vp8_idct_idct1
#define vp8_idct_idct1 vp8_short_idct4x4llm_1_v6
#define vp8_idct_idct1 vp9_short_idct4x4llm_1_v6
#undef vp8_idct_idct16
#define vp8_idct_idct16 vp8_short_idct4x4llm_v6_dual
#define vp8_idct_idct16 vp9_short_idct4x4llm_v6_dual
#undef vp8_idct_idct1_scalar_add
#define vp8_idct_idct1_scalar_add vp8_dc_only_idct_add_v6
#define vp8_idct_idct1_scalar_add vp9_dc_only_idct_add_v6
#undef vp8_idct_iwalsh1
#define vp8_idct_iwalsh1 vp8_short_inv_walsh4x4_1_v6
#define vp8_idct_iwalsh1 vp9_short_inv_walsh4x4_1_v6
#undef vp8_idct_iwalsh16
#define vp8_idct_iwalsh16 vp8_short_inv_walsh4x4_v6
#define vp8_idct_iwalsh16 vp9_short_inv_walsh4x4_v6
#endif
#endif
#if HAVE_ARMV7
extern prototype_idct(vp8_short_idct4x4llm_1_neon);
extern prototype_idct(vp8_short_idct4x4llm_neon);
extern prototype_idct_scalar_add(vp8_dc_only_idct_add_neon);
extern prototype_second_order(vp8_short_inv_walsh4x4_1_neon);
extern prototype_second_order(vp8_short_inv_walsh4x4_neon);
extern prototype_idct(vp9_short_idct4x4llm_1_neon);
extern prototype_idct(vp9_short_idct4x4llm_neon);
extern prototype_idct_scalar_add(vp9_dc_only_idct_add_neon);
extern prototype_second_order(vp9_short_inv_walsh4x4_1_neon);
extern prototype_second_order(vp9_short_inv_walsh4x4_neon);
#if !CONFIG_RUNTIME_CPU_DETECT
#undef vp8_idct_idct1
#define vp8_idct_idct1 vp8_short_idct4x4llm_1_neon
#define vp8_idct_idct1 vp9_short_idct4x4llm_1_neon
#undef vp8_idct_idct16
#define vp8_idct_idct16 vp8_short_idct4x4llm_neon
#define vp8_idct_idct16 vp9_short_idct4x4llm_neon
#undef vp8_idct_idct1_scalar_add
#define vp8_idct_idct1_scalar_add vp8_dc_only_idct_add_neon
#define vp8_idct_idct1_scalar_add vp9_dc_only_idct_add_neon
#undef vp8_idct_iwalsh1
#define vp8_idct_iwalsh1 vp8_short_inv_walsh4x4_1_neon
#define vp8_idct_iwalsh1 vp9_short_inv_walsh4x4_1_neon
#undef vp8_idct_iwalsh16
#define vp8_idct_iwalsh16 vp8_short_inv_walsh4x4_neon
#define vp8_idct_iwalsh16 vp9_short_inv_walsh4x4_neon
#endif
#endif
......
......@@ -14,10 +14,10 @@
#include "vp8/common/onyxc_int.h"
#if HAVE_ARMV6
extern prototype_loopfilter(vp8_loop_filter_horizontal_edge_armv6);
extern prototype_loopfilter(vp8_loop_filter_vertical_edge_armv6);
extern prototype_loopfilter(vp8_mbloop_filter_horizontal_edge_armv6);
extern prototype_loopfilter(vp8_mbloop_filter_vertical_edge_armv6);
extern prototype_loopfilter(vp9_loop_filter_horizontal_edge_armv6);
extern prototype_loopfilter(vp9_loop_filter_vertical_edge_armv6);
extern prototype_loopfilter(vp9_mbloop_filter_horizontal_edge_armv6);
extern prototype_loopfilter(vp9_mbloop_filter_vertical_edge_armv6);
#endif
#if HAVE_ARMV7
......@@ -27,140 +27,140 @@ typedef void loopfilter_uv_neon(unsigned char *u, int pitch,
unsigned char blimit, unsigned char limit, unsigned char thresh,
unsigned char *v);
extern loopfilter_y_neon vp8_loop_filter_horizontal_edge_y_neon;
extern loopfilter_y_neon vp8_loop_filter_vertical_edge_y_neon;
extern loopfilter_y_neon vp8_mbloop_filter_horizontal_edge_y_neon;
extern loopfilter_y_neon vp8_mbloop_filter_vertical_edge_y_neon;
extern loopfilter_y_neon vp9_loop_filter_horizontal_edge_y_neon;
extern loopfilter_y_neon vp9_loop_filter_vertical_edge_y_neon;
extern loopfilter_y_neon vp9_mbloop_filter_horizontal_edge_y_neon;
extern loopfilter_y_neon vp9_mbloop_filter_vertical_edge_y_neon;
extern loopfilter_uv_neon vp8_loop_filter_horizontal_edge_uv_neon;
extern loopfilter_uv_neon vp8_loop_filter_vertical_edge_uv_neon;
extern loopfilter_uv_neon vp8_mbloop_filter_horizontal_edge_uv_neon;
extern loopfilter_uv_neon vp8_mbloop_filter_vertical_edge_uv_neon;
extern loopfilter_uv_neon vp9_loop_filter_horizontal_edge_uv_neon;
extern loopfilter_uv_neon vp9_loop_filter_vertical_edge_uv_neon;
extern loopfilter_uv_neon vp9_mbloop_filter_horizontal_edge_uv_neon;
extern loopfilter_uv_neon vp9_mbloop_filter_vertical_edge_uv_neon;
#endif
#if HAVE_ARMV6
/*ARMV6 loopfilter functions*/
/* Horizontal MB filtering */
void vp8_loop_filter_mbh_armv6(unsigned char *y_ptr, unsigned char *u_ptr, unsigned char *v_ptr,
void vp9_loop_filter_mbh_armv6(unsigned char *y_ptr, unsigned char *u_ptr, unsigned char *v_ptr,
int y_stride, int uv_stride, loop_filter_info *lfi) {
vp8_mbloop_filter_horizontal_edge_armv6(y_ptr, y_stride, lfi->mblim, lfi->lim, lfi->hev_thr, 2);
vp9_mbloop_filter_horizontal_edge_armv6(y_ptr, y_stride, lfi->mblim, lfi->lim, lfi->hev_thr, 2);
if (u_ptr)
vp8_mbloop_filter_horizontal_edge_armv6(u_ptr, uv_stride, lfi->mblim, lfi->lim, lfi->hev_thr, 1);
vp9_mbloop_filter_horizontal_edge_armv6(u_ptr, uv_stride, lfi->mblim, lfi->lim, lfi->hev_thr, 1);
if (v_ptr)
vp8_mbloop_filter_horizontal_edge_armv6(v_ptr, uv_stride, lfi->mblim, lfi->lim, lfi->hev_thr, 1);
vp9_mbloop_filter_horizontal_edge_armv6(v_ptr, uv_stride, lfi->mblim, lfi->lim, lfi->hev_thr, 1);
}
/* Vertical MB Filtering */
void vp8_loop_filter_mbv_armv6(unsigned char *y_ptr, unsigned char *u_ptr, unsigned char *v_ptr,
void vp9_loop_filter_mbv_armv6(unsigned char *y_ptr, unsigned char *u_ptr, unsigned char *v_ptr,
int y_stride, int uv_stride, loop_filter_info *lfi) {
vp8_mbloop_filter_vertical_edge_armv6(y_ptr, y_stride, lfi->mblim, lfi->lim, lfi->hev_thr, 2);
vp9_mbloop_filter_vertical_edge_armv6(y_ptr, y_stride, lfi->mblim, lfi->lim, lfi->hev_thr, 2);
if (u_ptr)
vp8_mbloop_filter_vertical_edge_armv6(u_ptr, uv_stride, lfi->mblim, lfi->lim, lfi->hev_thr, 1);
vp9_mbloop_filter_vertical_edge_armv6(u_ptr, uv_stride, lfi->mblim, lfi->lim, lfi->hev_thr, 1);
if (v_ptr)
vp8_mbloop_filter_vertical_edge_armv6(v_ptr, uv_stride, lfi->mblim, lfi->lim, lfi->hev_thr, 1);
vp9_mbloop_filter_vertical_edge_armv6(v_ptr, uv_stride, lfi->mblim, lfi->lim, lfi->hev_thr, 1);
}
/* Horizontal B Filtering */
void vp8_loop_filter_bh_armv6(unsigned char *y_ptr, unsigned char *u_ptr, unsigned char *v_ptr,
void vp9_loop_filter_bh_armv6(unsigned char *y_ptr, unsigned char *u_ptr, unsigned char *v_ptr,
int y_stride, int uv_stride, loop_filter_info *lfi) {
vp8_loop_filter_horizontal_edge_armv6(y_ptr + 4 * y_stride, y_stride, lfi->blim, lfi->lim, lfi->hev_thr, 2);
vp8_loop_filter_horizontal_edge_armv6(y_ptr + 8 * y_stride, y_stride, lfi->blim, lfi->lim, lfi->hev_thr, 2);
vp8_loop_filter_horizontal_edge_armv6(y_ptr + 12 * y_stride, y_stride, lfi->blim, lfi->lim, lfi->hev_thr, 2);
vp9_loop_filter_horizontal_edge_armv6(y_ptr + 4 * y_stride, y_stride, lfi->blim, lfi->lim, lfi->hev_thr, 2);
vp9_loop_filter_horizontal_edge_armv6(y_ptr + 8 * y_stride, y_stride, lfi->blim, lfi->lim, lfi->hev_thr, 2);
vp9_loop_filter_horizontal_edge_armv6(y_ptr + 12 * y_stride, y_stride, lfi->blim, lfi->lim, lfi->hev_thr, 2);
if (u_ptr)
vp8_loop_filter_horizontal_edge_armv6(u_ptr + 4 * uv_stride, uv_stride, lfi->blim, lfi->lim, lfi->hev_thr, 1);
vp9_loop_filter_horizontal_edge_armv6(u_ptr + 4 * uv_stride, uv_stride, lfi->blim, lfi->lim, lfi->hev_thr, 1);
if (v_ptr)
vp8_loop_filter_horizontal_edge_armv6(v_ptr + 4 * uv_stride, uv_stride, lfi->blim, lfi->lim, lfi->hev_thr, 1);
vp9_loop_filter_horizontal_edge_armv6(v_ptr + 4 * uv_stride, uv_stride, lfi->blim, lfi->lim, lfi->hev_thr, 1);
}
void vp8_loop_filter_bhs_armv6(unsigned char *y_ptr, int y_stride,
void vp9_loop_filter_bhs_armv6(unsigned char *y_ptr, int y_stride,
const unsigned char *blimit) {
vp8_loop_filter_simple_horizontal_edge_armv6(y_ptr + 4 * y_stride, y_stride, blimit);
vp8_loop_filter_simple_horizontal_edge_armv6(y_ptr + 8 * y_stride, y_stride, blimit);
vp8_loop_filter_simple_horizontal_edge_armv6(y_ptr + 12 * y_stride, y_stride, blimit);
vp9_loop_filter_simple_horizontal_edge_armv6(y_ptr + 4 * y_stride, y_stride, blimit);
vp9_loop_filter_simple_horizontal_edge_armv6(y_ptr + 8 * y_stride, y_stride, blimit);
vp9_loop_filter_simple_horizontal_edge_armv6(y_ptr + 12 * y_stride, y_stride, blimit);
}
/* Vertical B Filtering */
void vp8_loop_filter_bv_armv6(unsigned char *y_ptr, unsigned char *u_ptr, unsigned char *v_ptr,
void vp9_loop_filter_bv_armv6(unsigned char *y_ptr, unsigned char *u_ptr, unsigned char *v_ptr,
int y_stride, int uv_stride, loop_filter_info *lfi) {
vp8_loop_filter_vertical_edge_armv6(y_ptr + 4, y_stride, lfi->blim, lfi->lim, lfi->hev_thr, 2);
vp8_loop_filter_vertical_edge_armv6(y_ptr + 8, y_stride, lfi->blim, lfi->lim, lfi->hev_thr, 2);
vp8_loop_filter_vertical_edge_armv6(y_ptr + 12, y_stride, lfi->blim, lfi->lim, lfi->hev_thr, 2);
vp9_loop_filter_vertical_edge_armv6(y_ptr + 4, y_stride, lfi->blim, lfi->lim, lfi->hev_thr, 2);
vp9_loop_filter_vertical_edge_armv6(y_ptr + 8, y_stride, lfi->blim, lfi->lim, lfi->hev_thr, 2);
vp9_loop_filter_vertical_edge_armv6(y_ptr + 12, y_stride, lfi->blim, lfi->lim, lfi->hev_thr, 2);
if (u_ptr)
vp8_loop_filter_vertical_edge_armv6(u_ptr + 4, uv_stride, lfi->blim, lfi->lim, lfi->hev_thr, 1);
vp9_loop_filter_vertical_edge_armv6(u_ptr + 4, uv_stride, lfi->blim, lfi->lim, lfi->hev_thr, 1);
if (v_ptr)
vp8_loop_filter_vertical_edge_armv6(v_ptr + 4, uv_stride, lfi->blim, lfi->lim, lfi->hev_thr, 1);
vp9_loop_filter_vertical_edge_armv6(v_ptr + 4, uv_stride, lfi->blim, lfi->lim, lfi->hev_thr, 1);
}
void vp8_loop_filter_bvs_armv6(unsigned char *y_ptr, int y_stride,
void vp9_loop_filter_bvs_armv6(unsigned char *y_ptr, int y_stride,
const unsigned char *blimit) {
vp8_loop_filter_simple_vertical_edge_armv6(y_ptr + 4, y_stride, blimit);
vp8_loop_filter_simple_vertical_edge_armv6(y_ptr + 8, y_stride, blimit);
vp8_loop_filter_simple_vertical_edge_armv6(y_ptr + 12, y_stride, blimit);
vp9_loop_filter_simple_vertical_edge_armv6(y_ptr + 4, y_stride, blimit);
vp9_loop_filter_simple_vertical_edge_armv6(y_ptr + 8, y_stride, blimit);
vp9_loop_filter_simple_vertical_edge_armv6(y_ptr + 12, y_stride, blimit);
}
#endif
#if HAVE_ARMV7
/* NEON loopfilter functions */
/* Horizontal MB filtering */
void vp8_loop_filter_mbh_neon(unsigned char *y_ptr, unsigned char *u_ptr, unsigned char *v_ptr,
void vp9_loop_filter_mbh_neon(unsigned char *y_ptr, unsigned char *u_ptr, unsigned char *v_ptr,
int y_stride, int uv_stride, loop_filter_info *lfi) {
unsigned char mblim = *lfi->mblim;
unsigned char lim = *lfi->lim;
unsigned char hev_thr = *lfi->hev_thr;
vp8_mbloop_filter_horizontal_edge_y_neon(y_ptr, y_stride, mblim, lim, hev_thr);
vp9_mbloop_filter_horizontal_edge_y_neon(y_ptr, y_stride, mblim, lim, hev_thr);
if (u_ptr)
vp8_mbloop_filter_horizontal_edge_uv_neon(u_ptr, uv_stride, mblim, lim, hev_thr, v_ptr);
vp9_mbloop_filter_horizontal_edge_uv_neon(u_ptr, uv_stride, mblim, lim, hev_thr, v_ptr);
}
/* Vertical MB Filtering */
void vp8_loop_filter_mbv_neon(unsigned char *y_ptr, unsigned char *u_ptr, unsigned char *v_ptr,
void vp9_loop_filter_mbv_neon(unsigned char *y_ptr, unsigned char *u_ptr, unsigned char *v_ptr,
int y_stride, int uv_stride, loop_filter_info *lfi) {
unsigned char mblim = *lfi->mblim;
unsigned char lim = *lfi->lim;
unsigned char hev_thr = *lfi->hev_thr;
vp8_mbloop_filter_vertical_edge_y_neon(y_ptr, y_stride, mblim, lim, hev_thr);
vp9_mbloop_filter_vertical_edge_y_neon(y_ptr, y_stride, mblim, lim, hev_thr);
if (u_ptr)
vp8_mbloop_filter_vertical_edge_uv_neon(u_ptr, uv_stride, mblim, lim, hev_thr, v_ptr);
vp9_mbloop_filter_vertical_edge_uv_neon(u_ptr, uv_stride, mblim, lim, hev_thr, v_ptr);
}
/* Horizontal B Filtering */
void vp8_loop_filter_bh_neon(unsigned char *y_ptr, unsigned char *u_ptr, unsigned char *v_ptr,
void vp9_loop_filter_bh_neon(unsigned char *y_ptr, unsigned char *u_ptr, unsigned char *v_ptr,
int y_stride, int uv_stride, loop_filter_info *lfi) {
unsigned char blim = *lfi->blim;
unsigned char lim = *lfi->lim;
unsigned char hev_thr = *lfi->hev_thr;
vp8_loop_filter_horizontal_edge_y_neon(y_ptr + 4 * y_stride, y_stride, blim, lim, hev_thr);
vp8_loop_filter_horizontal_edge_y_neon(y_ptr + 8 * y_stride, y_stride, blim, lim, hev_thr);
vp8_loop_filter_horizontal_edge_y_neon(y_ptr + 12 * y_stride, y_stride, blim, lim, hev_thr);
vp9_loop_filter_horizontal_edge_y_neon(y_ptr + 4 * y_stride, y_stride, blim, lim, hev_thr);
vp9_loop_filter_horizontal_edge_y_neon(y_ptr + 8 * y_stride, y_stride, blim, lim, hev_thr);
vp9_loop_filter_horizontal_edge_y_neon(y_ptr + 12 * y_stride, y_stride, blim, lim, hev_thr);
if (u_ptr)
vp8_loop_filter_horizontal_edge_uv_neon(u_ptr + 4 * uv_stride, uv_stride, blim, lim, hev_thr, v_ptr + 4 * uv_stride);
vp9_loop_filter_horizontal_edge_uv_neon(u_ptr + 4 * uv_stride, uv_stride, blim, lim, hev_thr, v_ptr + 4 * uv_stride);
}
/* Vertical B Filtering */
void vp8_loop_filter_bv_neon(unsigned char *y_ptr, unsigned char *u_ptr, unsigned char *v_ptr,
void vp9_loop_filter_bv_neon(unsigned char *y_ptr, unsigned char *u_ptr, unsigned char *v_ptr,
int y_stride, int uv_stride, loop_filter_info *lfi) {
unsigned char blim = *lfi->blim;
unsigned char lim = *lfi->lim;
unsigned char hev_thr = *lfi->hev_thr;
vp8_loop_filter_vertical_edge_y_neon(y_ptr + 4, y_stride, blim, lim, hev_thr);
vp8_loop_filter_vertical_edge_y_neon(y_ptr + 8, y_stride, blim, lim, hev_thr);
vp8_loop_filter_vertical_edge_y_neon(y_ptr + 12, y_stride, blim, lim, hev_thr);
vp9_loop_filter_vertical_edge_y_neon(y_ptr + 4, y_stride, blim, lim, hev_thr);
vp9_loop_filter_vertical_edge_y_neon(y_ptr + 8, y_stride, blim, lim, hev_thr);
vp9_loop_filter_vertical_edge_y_neon(y_ptr + 12, y_stride, blim, lim, hev_thr);
if (u_ptr)
vp8_loop_filter_vertical_edge_uv_neon(u_ptr + 4, uv_stride, blim, lim, hev_thr, v_ptr + 4);
vp9_loop_filter_vertical_edge_uv_neon(u_ptr + 4, uv_stride, blim, lim, hev_thr, v_ptr + 4);
}
#endif
......@@ -15,26 +15,26 @@
#include "vpx_config.h"
#if HAVE_ARMV6
extern prototype_loopfilter_block(vp8_loop_filter_mbv_armv6);
extern prototype_loopfilter_block(vp8_loop_filter_bv_armv6);