Merge "remove postproc invokes" into experimental
This commit is contained in:
commit
926d95cd84
@ -15,7 +15,7 @@
|
||||
|
||||
extern void vp8_recon16x16mb_neon(unsigned char *pred_ptr, short *diff_ptr, unsigned char *dst_ptr, int ystride, unsigned char *udst_ptr, unsigned char *vdst_ptr);
|
||||
|
||||
void vp8_recon_mb_neon(const vp8_recon_rtcd_vtable_t *rtcd, MACROBLOCKD *xd) {
|
||||
void vp8_recon_mb_neon(MACROBLOCKD *xd) {
|
||||
unsigned char *pred_ptr = &xd->predictor[0];
|
||||
short *diff_ptr = &xd->diff[0];
|
||||
unsigned char *dst_ptr = xd->dst.y_buffer;
|
||||
|
@ -22,16 +22,6 @@ void vp9_machine_specific_config(VP9_COMMON *ctx) {
|
||||
#if CONFIG_RUNTIME_CPU_DETECT
|
||||
VP9_COMMON_RTCD *rtcd = &ctx->rtcd;
|
||||
|
||||
#if CONFIG_POSTPROC || (CONFIG_VP9_ENCODER && CONFIG_INTERNAL_STATS)
|
||||
rtcd->postproc.down = vp9_mbpost_proc_down_c;
|
||||
rtcd->postproc.across = vp9_mbpost_proc_across_ip_c;
|
||||
rtcd->postproc.downacross = vp9_post_proc_down_and_across_c;
|
||||
rtcd->postproc.addnoise = vp9_plane_add_noise_c;
|
||||
rtcd->postproc.blend_mb_inner = vp9_blend_mb_inner_c;
|
||||
rtcd->postproc.blend_mb_outer = vp9_blend_mb_outer_c;
|
||||
rtcd->postproc.blend_b = vp9_blend_b_c;
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
#if ARCH_X86 || ARCH_X86_64
|
||||
|
@ -145,9 +145,6 @@ typedef enum {
|
||||
|
||||
typedef struct VP9_COMMON_RTCD {
|
||||
#if CONFIG_RUNTIME_CPU_DETECT
|
||||
#if CONFIG_POSTPROC
|
||||
vp9_postproc_rtcd_vtable_t postproc;
|
||||
#endif
|
||||
int flags;
|
||||
#else
|
||||
int unused;
|
||||
|
@ -15,6 +15,8 @@
|
||||
#include "vp9/common/vp9_textblit.h"
|
||||
#include "vpx_scale/vpxscale.h"
|
||||
#include "vp9_systemdependent.h"
|
||||
#include "./vp9_rtcd.h"
|
||||
|
||||
|
||||
#include <math.h>
|
||||
#include <stdlib.h>
|
||||
@ -286,82 +288,78 @@ static void deblock_and_de_macro_block(YV12_BUFFER_CONFIG *source,
|
||||
YV12_BUFFER_CONFIG *post,
|
||||
int q,
|
||||
int low_var_thresh,
|
||||
int flag,
|
||||
vp9_postproc_rtcd_vtable_t *rtcd) {
|
||||
int flag) {
|
||||
double level = 6.0e-05 * q * q * q - .0067 * q * q + .306 * q + .0065;
|
||||
int ppl = (int)(level + .5);
|
||||
(void) low_var_thresh;
|
||||
(void) flag;
|
||||
|
||||
POSTPROC_INVOKE(rtcd, downacross)(source->y_buffer, post->y_buffer,
|
||||
source->y_stride, post->y_stride,
|
||||
source->y_height, source->y_width, ppl);
|
||||
POSTPROC_INVOKE(rtcd, across)(post->y_buffer, post->y_stride,
|
||||
post->y_height, post->y_width, q2mbl(q));
|
||||
POSTPROC_INVOKE(rtcd, down)(post->y_buffer, post->y_stride,
|
||||
post->y_height, post->y_width, q2mbl(q));
|
||||
vp9_post_proc_down_and_across(source->y_buffer, post->y_buffer,
|
||||
source->y_stride, post->y_stride,
|
||||
source->y_height, source->y_width, ppl);
|
||||
|
||||
POSTPROC_INVOKE(rtcd, downacross)(source->u_buffer, post->u_buffer,
|
||||
source->uv_stride, post->uv_stride,
|
||||
source->uv_height, source->uv_width, ppl);
|
||||
POSTPROC_INVOKE(rtcd, downacross)(source->v_buffer, post->v_buffer,
|
||||
source->uv_stride, post->uv_stride,
|
||||
source->uv_height, source->uv_width, ppl);
|
||||
vp9_mbpost_proc_across_ip(post->y_buffer, post->y_stride, post->y_height,
|
||||
post->y_width, q2mbl(q));
|
||||
|
||||
vp9_mbpost_proc_down(post->y_buffer, post->y_stride, post->y_height,
|
||||
post->y_width, q2mbl(q));
|
||||
|
||||
vp9_post_proc_down_and_across(source->u_buffer, post->u_buffer,
|
||||
source->uv_stride, post->uv_stride,
|
||||
source->uv_height, source->uv_width, ppl);
|
||||
vp9_post_proc_down_and_across(source->v_buffer, post->v_buffer,
|
||||
source->uv_stride, post->uv_stride,
|
||||
source->uv_height, source->uv_width, ppl);
|
||||
}
|
||||
|
||||
void vp9_deblock(YV12_BUFFER_CONFIG *source,
|
||||
YV12_BUFFER_CONFIG *post,
|
||||
int q,
|
||||
int low_var_thresh,
|
||||
int flag,
|
||||
vp9_postproc_rtcd_vtable_t *rtcd) {
|
||||
int flag) {
|
||||
double level = 6.0e-05 * q * q * q - .0067 * q * q + .306 * q + .0065;
|
||||
int ppl = (int)(level + .5);
|
||||
(void) low_var_thresh;
|
||||
(void) flag;
|
||||
|
||||
POSTPROC_INVOKE(rtcd, downacross)(source->y_buffer, post->y_buffer,
|
||||
source->y_stride, post->y_stride,
|
||||
source->y_height, source->y_width, ppl);
|
||||
POSTPROC_INVOKE(rtcd, downacross)(source->u_buffer, post->u_buffer,
|
||||
source->uv_stride, post->uv_stride,
|
||||
source->uv_height, source->uv_width, ppl);
|
||||
POSTPROC_INVOKE(rtcd, downacross)(source->v_buffer, post->v_buffer,
|
||||
source->uv_stride, post->uv_stride,
|
||||
source->uv_height, source->uv_width, ppl);
|
||||
vp9_post_proc_down_and_across(source->y_buffer, post->y_buffer,
|
||||
source->y_stride, post->y_stride,
|
||||
source->y_height, source->y_width, ppl);
|
||||
|
||||
vp9_post_proc_down_and_across(source->u_buffer, post->u_buffer,
|
||||
source->uv_stride, post->uv_stride,
|
||||
source->uv_height, source->uv_width, ppl);
|
||||
|
||||
vp9_post_proc_down_and_across(source->v_buffer, post->v_buffer,
|
||||
source->uv_stride, post->uv_stride,
|
||||
source->uv_height, source->uv_width, ppl);
|
||||
}
|
||||
|
||||
void vp9_de_noise(YV12_BUFFER_CONFIG *src,
|
||||
YV12_BUFFER_CONFIG *post,
|
||||
int q,
|
||||
int low_var_thresh,
|
||||
int flag,
|
||||
vp9_postproc_rtcd_vtable_t *rtcd) {
|
||||
int flag) {
|
||||
double level = 6.0e-05 * q * q * q - .0067 * q * q + .306 * q + .0065;
|
||||
int ppl = (int)(level + .5);
|
||||
(void) post;
|
||||
(void) low_var_thresh;
|
||||
(void) flag;
|
||||
|
||||
POSTPROC_INVOKE(rtcd, downacross)(src->y_buffer + 2 * src->y_stride + 2,
|
||||
src->y_buffer + 2 * src->y_stride + 2,
|
||||
src->y_stride,
|
||||
src->y_stride,
|
||||
src->y_height - 4,
|
||||
src->y_width - 4,
|
||||
ppl);
|
||||
POSTPROC_INVOKE(rtcd, downacross)(src->u_buffer + 2 * src->uv_stride + 2,
|
||||
src->u_buffer + 2 * src->uv_stride + 2,
|
||||
src->uv_stride,
|
||||
src->uv_stride,
|
||||
src->uv_height - 4,
|
||||
src->uv_width - 4, ppl);
|
||||
POSTPROC_INVOKE(rtcd, downacross)(src->v_buffer + 2 * src->uv_stride + 2,
|
||||
src->v_buffer + 2 * src->uv_stride + 2,
|
||||
src->uv_stride,
|
||||
src->uv_stride,
|
||||
src->uv_height - 4,
|
||||
src->uv_width - 4, ppl);
|
||||
vp9_post_proc_down_and_across(src->y_buffer + 2 * src->y_stride + 2,
|
||||
src->y_buffer + 2 * src->y_stride + 2,
|
||||
src->y_stride, src->y_stride, src->y_height - 4,
|
||||
src->y_width - 4, ppl);
|
||||
|
||||
vp9_post_proc_down_and_across(src->u_buffer + 2 * src->uv_stride + 2,
|
||||
src->u_buffer + 2 * src->uv_stride + 2,
|
||||
src->uv_stride, src->uv_stride,
|
||||
src->uv_height - 4, src->uv_width - 4, ppl);
|
||||
|
||||
vp9_post_proc_down_and_across(src->v_buffer + 2 * src->uv_stride + 2,
|
||||
src->v_buffer + 2 * src->uv_stride + 2,
|
||||
src->uv_stride, src->uv_stride,
|
||||
src->uv_height - 4, src->uv_width - 4, ppl);
|
||||
}
|
||||
|
||||
double vp9_gaussian(double sigma, double mu, double x) {
|
||||
@ -620,13 +618,6 @@ static void constrain_line(int x0, int *x1, int y0, int *y1,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#if CONFIG_RUNTIME_CPU_DETECT
|
||||
#define RTCD_VTABLE(oci) (&(oci)->rtcd.postproc)
|
||||
#else
|
||||
#define RTCD_VTABLE(oci) NULL
|
||||
#endif
|
||||
|
||||
int vp9_post_proc_frame(VP9_COMMON *oci, YV12_BUFFER_CONFIG *dest,
|
||||
vp9_ppflags_t *ppflags) {
|
||||
int q = oci->filter_level * 10 / 6;
|
||||
@ -657,11 +648,9 @@ int vp9_post_proc_frame(VP9_COMMON *oci, YV12_BUFFER_CONFIG *dest,
|
||||
|
||||
if (flags & VP9D_DEMACROBLOCK) {
|
||||
deblock_and_de_macro_block(oci->frame_to_show, &oci->post_proc_buffer,
|
||||
q + (deblock_level - 5) * 10, 1, 0,
|
||||
RTCD_VTABLE(oci));
|
||||
q + (deblock_level - 5) * 10, 1, 0);
|
||||
} else if (flags & VP9D_DEBLOCK) {
|
||||
vp9_deblock(oci->frame_to_show, &oci->post_proc_buffer,
|
||||
q, 1, 0, RTCD_VTABLE(oci));
|
||||
vp9_deblock(oci->frame_to_show, &oci->post_proc_buffer, q, 1, 0);
|
||||
} else {
|
||||
vp8_yv12_copy_frame(oci->frame_to_show, &oci->post_proc_buffer);
|
||||
}
|
||||
@ -672,14 +661,14 @@ int vp9_post_proc_frame(VP9_COMMON *oci, YV12_BUFFER_CONFIG *dest,
|
||||
fillrd(&oci->postproc_state, 63 - q, noise_level);
|
||||
}
|
||||
|
||||
POSTPROC_INVOKE(RTCD_VTABLE(oci), addnoise)(oci->post_proc_buffer.y_buffer,
|
||||
oci->postproc_state.noise,
|
||||
oci->postproc_state.blackclamp,
|
||||
oci->postproc_state.whiteclamp,
|
||||
oci->postproc_state.bothclamp,
|
||||
oci->post_proc_buffer.y_width,
|
||||
oci->post_proc_buffer.y_height,
|
||||
oci->post_proc_buffer.y_stride);
|
||||
vp9_plane_add_noise(oci->post_proc_buffer.y_buffer,
|
||||
oci->postproc_state.noise,
|
||||
oci->postproc_state.blackclamp,
|
||||
oci->postproc_state.whiteclamp,
|
||||
oci->postproc_state.bothclamp,
|
||||
oci->post_proc_buffer.y_width,
|
||||
oci->post_proc_buffer.y_height,
|
||||
oci->post_proc_buffer.y_stride);
|
||||
}
|
||||
|
||||
#if CONFIG_POSTPROC_VISUALIZER
|
||||
@ -945,11 +934,8 @@ int vp9_post_proc_frame(VP9_COMMON *oci, YV12_BUFFER_CONFIG *dest,
|
||||
U = B_PREDICTION_MODE_colors[bmi->as_mode.first][1];
|
||||
V = B_PREDICTION_MODE_colors[bmi->as_mode.first][2];
|
||||
|
||||
POSTPROC_INVOKE(RTCD_VTABLE(oci), blend_b)(yl + bx,
|
||||
ul + (bx >> 1),
|
||||
vl + (bx >> 1),
|
||||
Y, U, V,
|
||||
0xc000, y_stride);
|
||||
vp9_blend_b(yl + bx, ul + (bx >> 1), vl + (bx >> 1), Y, U, V,
|
||||
0xc000, y_stride);
|
||||
}
|
||||
bmi++;
|
||||
}
|
||||
@ -963,11 +949,8 @@ int vp9_post_proc_frame(VP9_COMMON *oci, YV12_BUFFER_CONFIG *dest,
|
||||
U = MB_PREDICTION_MODE_colors[mi->mbmi.mode][1];
|
||||
V = MB_PREDICTION_MODE_colors[mi->mbmi.mode][2];
|
||||
|
||||
POSTPROC_INVOKE(RTCD_VTABLE(oci), blend_mb_inner)(y_ptr + x,
|
||||
u_ptr + (x >> 1),
|
||||
v_ptr + (x >> 1),
|
||||
Y, U, V,
|
||||
0xc000, y_stride);
|
||||
vp9_blend_mb_inner(y_ptr + x, u_ptr + (x >> 1), v_ptr + (x >> 1),
|
||||
Y, U, V, 0xc000, y_stride);
|
||||
}
|
||||
|
||||
mi++;
|
||||
@ -1002,11 +985,8 @@ int vp9_post_proc_frame(VP9_COMMON *oci, YV12_BUFFER_CONFIG *dest,
|
||||
U = MV_REFERENCE_FRAME_colors[mi->mbmi.ref_frame][1];
|
||||
V = MV_REFERENCE_FRAME_colors[mi->mbmi.ref_frame][2];
|
||||
|
||||
POSTPROC_INVOKE(RTCD_VTABLE(oci), blend_mb_outer)(y_ptr + x,
|
||||
u_ptr + (x >> 1),
|
||||
v_ptr + (x >> 1),
|
||||
Y, U, V,
|
||||
0xc000, y_stride);
|
||||
vp9_blend_mb_outer(y_ptr + x, u_ptr + (x >> 1), v_ptr + (x >> 1),
|
||||
Y, U, V, 0xc000, y_stride);
|
||||
}
|
||||
|
||||
mi++;
|
||||
|
@ -12,91 +12,6 @@
|
||||
#ifndef POSTPROC_H
|
||||
#define POSTPROC_H
|
||||
|
||||
#define prototype_postproc_inplace(sym)\
|
||||
void sym(unsigned char *dst, int pitch, int rows, int cols, int flimit)
|
||||
|
||||
#define prototype_postproc(sym)\
|
||||
void sym(unsigned char *src, unsigned char *dst, int src_pitch, \
|
||||
int dst_pitch, int rows, int cols, int flimit)
|
||||
|
||||
#define prototype_postproc_addnoise(sym) \
|
||||
void sym(unsigned char *s, char *noise, char blackclamp[16], \
|
||||
char whiteclamp[16], char bothclamp[16], \
|
||||
unsigned int w, unsigned int h, int pitch)
|
||||
|
||||
#define prototype_postproc_blend_mb_inner(sym)\
|
||||
void sym(unsigned char *y, unsigned char *u, unsigned char *v, \
|
||||
int y1, int u1, int v1, int alpha, int stride)
|
||||
|
||||
#define prototype_postproc_blend_mb_outer(sym)\
|
||||
void sym(unsigned char *y, unsigned char *u, unsigned char *v, \
|
||||
int y1, int u1, int v1, int alpha, int stride)
|
||||
|
||||
#define prototype_postproc_blend_b(sym)\
|
||||
void sym(unsigned char *y, unsigned char *u, unsigned char *v, \
|
||||
int y1, int u1, int v1, int alpha, int stride)
|
||||
|
||||
#if ARCH_X86 || ARCH_X86_64
|
||||
#include "x86/vp9_postproc_x86.h"
|
||||
#endif
|
||||
|
||||
#ifndef vp9_postproc_down
|
||||
#define vp9_postproc_down vp9_mbpost_proc_down_c
|
||||
#endif
|
||||
extern prototype_postproc_inplace(vp9_postproc_down);
|
||||
|
||||
#ifndef vp9_postproc_across
|
||||
#define vp9_postproc_across vp9_mbpost_proc_across_ip_c
|
||||
#endif
|
||||
extern prototype_postproc_inplace(vp9_postproc_across);
|
||||
|
||||
#ifndef vp9_postproc_downacross
|
||||
#define vp9_postproc_downacross vp9_post_proc_down_and_across_c
|
||||
#endif
|
||||
extern prototype_postproc(vp9_postproc_downacross);
|
||||
|
||||
#ifndef vp9_postproc_addnoise
|
||||
#define vp9_postproc_addnoise vp9_plane_add_noise_c
|
||||
#endif
|
||||
extern prototype_postproc_addnoise(vp9_postproc_addnoise);
|
||||
|
||||
#ifndef vp9_postproc_blend_mb_inner
|
||||
#define vp9_postproc_blend_mb_inner vp9_blend_mb_inner_c
|
||||
#endif
|
||||
extern prototype_postproc_blend_mb_inner(vp9_postproc_blend_mb_inner);
|
||||
|
||||
#ifndef vp9_postproc_blend_mb_outer
|
||||
#define vp9_postproc_blend_mb_outer vp9_blend_mb_outer_c
|
||||
#endif
|
||||
extern prototype_postproc_blend_mb_outer(vp9_postproc_blend_mb_outer);
|
||||
|
||||
#ifndef vp9_postproc_blend_b
|
||||
#define vp9_postproc_blend_b vp9_blend_b_c
|
||||
#endif
|
||||
extern prototype_postproc_blend_b(vp9_postproc_blend_b);
|
||||
|
||||
typedef prototype_postproc((*vp9_postproc_fn_t));
|
||||
typedef prototype_postproc_inplace((*vp9_postproc_inplace_fn_t));
|
||||
typedef prototype_postproc_addnoise((*vp9_postproc_addnoise_fn_t));
|
||||
typedef prototype_postproc_blend_mb_inner((*vp9_postproc_blend_mb_inner_fn_t));
|
||||
typedef prototype_postproc_blend_mb_outer((*vp9_postproc_blend_mb_outer_fn_t));
|
||||
typedef prototype_postproc_blend_b((*vp9_postproc_blend_b_fn_t));
|
||||
typedef struct {
|
||||
vp9_postproc_inplace_fn_t down;
|
||||
vp9_postproc_inplace_fn_t across;
|
||||
vp9_postproc_fn_t downacross;
|
||||
vp9_postproc_addnoise_fn_t addnoise;
|
||||
vp9_postproc_blend_mb_inner_fn_t blend_mb_inner;
|
||||
vp9_postproc_blend_mb_outer_fn_t blend_mb_outer;
|
||||
vp9_postproc_blend_b_fn_t blend_b;
|
||||
} vp9_postproc_rtcd_vtable_t;
|
||||
|
||||
#if CONFIG_RUNTIME_CPU_DETECT
|
||||
#define POSTPROC_INVOKE(ctx,fn) (ctx)->fn
|
||||
#else
|
||||
#define POSTPROC_INVOKE(ctx,fn) vp9_postproc_##fn
|
||||
#endif
|
||||
|
||||
#include "vpx_ports/mem.h"
|
||||
struct postproc_state {
|
||||
int last_q;
|
||||
@ -116,13 +31,11 @@ void vp9_de_noise(YV12_BUFFER_CONFIG *source,
|
||||
YV12_BUFFER_CONFIG *post,
|
||||
int q,
|
||||
int low_var_thresh,
|
||||
int flag,
|
||||
vp9_postproc_rtcd_vtable_t *rtcd);
|
||||
int flag);
|
||||
|
||||
void vp9_deblock(YV12_BUFFER_CONFIG *source,
|
||||
YV12_BUFFER_CONFIG *post,
|
||||
int q,
|
||||
int low_var_thresh,
|
||||
int flag,
|
||||
vp9_postproc_rtcd_vtable_t *rtcd);
|
||||
int flag);
|
||||
#endif
|
||||
|
@ -218,6 +218,34 @@ vp9_loop_filter_simple_bh_sse2=vp9_loop_filter_bhs_sse2
|
||||
vp9_loop_filter_simple_bh_media=vp9_loop_filter_bhs_armv6
|
||||
vp9_loop_filter_simple_bh_neon=vp9_loop_filter_bhs_neon
|
||||
|
||||
#
|
||||
# post proc
|
||||
#
|
||||
prototype void vp9_mbpost_proc_down "unsigned char *dst, int pitch, int rows, int cols, int flimit"
|
||||
specialize vp9_mbpost_proc_down mmx sse2
|
||||
vp9_mbpost_proc_down_sse2=vp9_mbpost_proc_down_xmm
|
||||
|
||||
prototype void vp9_mbpost_proc_across_ip "unsigned char *src, int pitch, int rows, int cols, int flimit"
|
||||
specialize vp9_mbpost_proc_across_ip sse2
|
||||
vp9_mbpost_proc_across_ip_sse2=vp9_mbpost_proc_across_ip_xmm
|
||||
|
||||
prototype void vp9_post_proc_down_and_across "unsigned char *src_ptr, unsigned char *dst_ptr, int src_pixels_per_line, int dst_pixels_per_line, int rows, int cols, int flimit"
|
||||
specialize vp9_post_proc_down_and_across mmx sse2
|
||||
vp9_post_proc_down_and_across_sse2=vp9_post_proc_down_and_across_xmm
|
||||
|
||||
prototype void vp9_plane_add_noise "unsigned char *Start, char *noise, char blackclamp[16], char whiteclamp[16], char bothclamp[16], unsigned int Width, unsigned int Height, int Pitch"
|
||||
specialize vp9_plane_add_noise mmx sse2
|
||||
vp9_plane_add_noise_sse2=vp9_plane_add_noise_wmt
|
||||
|
||||
prototype void vp9_blend_mb_inner "unsigned char *y, unsigned char *u, unsigned char *v, int y1, int u1, int v1, int alpha, int stride"
|
||||
specialize vp9_blend_mb_inner
|
||||
|
||||
prototype void vp9_blend_mb_outer "unsigned char *y, unsigned char *u, unsigned char *v, int y1, int u1, int v1, int alpha, int stride"
|
||||
specialize vp9_blend_mb_outer
|
||||
|
||||
prototype void vp9_blend_b "unsigned char *y, unsigned char *u, unsigned char *v, int y1, int u1, int v1, int alpha, int stride"
|
||||
specialize vp9_blend_b
|
||||
|
||||
#
|
||||
# sad 16x3, 3x16
|
||||
#
|
||||
|
@ -31,12 +31,6 @@ void vp9_arch_x86_common_init(VP9_COMMON *ctx) {
|
||||
// The commented functions need to be re-written for vpx.
|
||||
if (flags & HAS_MMX) {
|
||||
|
||||
#if CONFIG_POSTPROC
|
||||
rtcd->postproc.down = vp9_mbpost_proc_down_mmx;
|
||||
/*rtcd->postproc.across = vp9_mbpost_proc_across_ip_c;*/
|
||||
rtcd->postproc.downacross = vp9_post_proc_down_and_across_mmx;
|
||||
rtcd->postproc.addnoise = vp9_plane_add_noise_mmx;
|
||||
#endif
|
||||
}
|
||||
|
||||
#endif
|
||||
@ -47,12 +41,6 @@ void vp9_arch_x86_common_init(VP9_COMMON *ctx) {
|
||||
|
||||
// rtcd->idct.iwalsh16 = vp9_short_inv_walsh4x4_sse2;
|
||||
|
||||
#if CONFIG_POSTPROC
|
||||
rtcd->postproc.down = vp9_mbpost_proc_down_xmm;
|
||||
rtcd->postproc.across = vp9_mbpost_proc_across_ip_xmm;
|
||||
rtcd->postproc.downacross = vp9_post_proc_down_and_across_xmm;
|
||||
rtcd->postproc.addnoise = vp9_plane_add_noise_wmt;
|
||||
#endif
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -25,14 +25,6 @@ typedef struct {
|
||||
} MODE_DEFINITION;
|
||||
|
||||
|
||||
#if CONFIG_RUNTIME_CPU_DETECT
|
||||
#define ENCODEMB_INVOKE(ctx,fn) (ctx)->fn
|
||||
#else
|
||||
#define ENCODEMB_INVOKE(ctx,fn) vp9_encodemb_##fn
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
#include "vp9_onyx_int.h"
|
||||
struct VP9_ENCODER_RTCD;
|
||||
void vp9_encode_inter16x16(MACROBLOCK *x);
|
||||
|
@ -184,7 +184,6 @@ static int do_16x16_zerozero_search
|
||||
// FIXME should really use something like near/nearest MV and/or MV prediction
|
||||
xd->pre.y_buffer = ref->y_buffer + mb_y_offset;
|
||||
xd->pre.y_stride = ref->y_stride;
|
||||
// VARIANCE_INVOKE(&cpi->rtcd.variance, satd16x16)
|
||||
err = vp9_sad16x16(ref->y_buffer + mb_y_offset, ref->y_stride,
|
||||
xd->dst.y_buffer, xd->dst.y_stride, INT_MAX);
|
||||
|
||||
|
@ -82,10 +82,4 @@ typedef int (*vp9_diamond_search_fn_t)(MACROBLOCK *x, BLOCK *b, BLOCKD *d,
|
||||
int_mv *center_mv);
|
||||
|
||||
|
||||
#if CONFIG_RUNTIME_CPU_DETECT
|
||||
#define SEARCH_INVOKE(ctx,fn) (ctx)->fn
|
||||
#else
|
||||
#define SEARCH_INVOKE(ctx,fn) vp9_search_##fn
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
@ -30,7 +30,6 @@
|
||||
#include "vpx_mem/vpx_mem.h"
|
||||
#include "vp9/common/vp9_swapyv12buffer.h"
|
||||
#include "vpx_ports/vpx_timer.h"
|
||||
#include "vp9_temporal_filter.h"
|
||||
|
||||
#include "vp9/common/vp9_seg_common.h"
|
||||
#include "vp9_mbgraph.h"
|
||||
@ -3272,9 +3271,9 @@ static void encode_frame_to_data_rate
|
||||
|
||||
|
||||
if (cm->frame_type == KEY_FRAME) {
|
||||
vp9_de_noise(cpi->Source, cpi->Source, l, 1, 0, RTCD(postproc));
|
||||
vp9_de_noise(cpi->Source, cpi->Source, l, 1, 0);
|
||||
} else {
|
||||
vp9_de_noise(cpi->Source, cpi->Source, l, 1, 0, RTCD(postproc));
|
||||
vp9_de_noise(cpi->Source, cpi->Source, l, 1, 0);
|
||||
|
||||
src = cpi->Source->y_buffer;
|
||||
|
||||
@ -4384,7 +4383,8 @@ int vp9_get_compressed_data(VP9_PTR ptr, unsigned int *frame_flags,
|
||||
double frame_psnr2, frame_ssim2 = 0;
|
||||
double weight = 0;
|
||||
#if CONFIG_POSTPROC
|
||||
vp9_deblock(cm->frame_to_show, &cm->post_proc_buffer, cm->filter_level * 10 / 6, 1, 0, IF_RTCD(&cm->rtcd.postproc));
|
||||
vp9_deblock(cm->frame_to_show, &cm->post_proc_buffer,
|
||||
cm->filter_level * 10 / 6, 1, 0);
|
||||
#endif
|
||||
vp9_clear_system_state();
|
||||
|
||||
|
@ -26,7 +26,6 @@
|
||||
#include "vpx_ports/mem.h"
|
||||
#include "vpx/internal/vpx_codec_internal.h"
|
||||
#include "vp9_mcomp.h"
|
||||
#include "vp9_temporal_filter.h"
|
||||
#include "vp9/common/vp9_findnearmv.h"
|
||||
#include "vp9_lookahead.h"
|
||||
|
||||
@ -393,7 +392,6 @@ typedef struct {
|
||||
|
||||
typedef struct VP9_ENCODER_RTCD {
|
||||
VP9_COMMON_RTCD *common;
|
||||
vp9_temporal_rtcd_vtable_t temporal;
|
||||
} VP9_ENCODER_RTCD;
|
||||
|
||||
enum BlockSize {
|
||||
|
@ -1,51 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2010 The WebM project authors. All Rights Reserved.
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license
|
||||
* that can be found in the LICENSE file in the root of the source
|
||||
* tree. An additional intellectual property rights grant can be found
|
||||
* in the file PATENTS. All contributing project authors may
|
||||
* be found in the AUTHORS file in the root of the source tree.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef __INC_TEMPORAL_FILTER_H
|
||||
#define __INC_TEMPORAL_FILTER_H
|
||||
|
||||
#define prototype_apply(sym)\
|
||||
void (sym) \
|
||||
( \
|
||||
unsigned char *frame1, \
|
||||
unsigned int stride, \
|
||||
unsigned char *frame2, \
|
||||
unsigned int block_size, \
|
||||
int strength, \
|
||||
int filter_weight, \
|
||||
unsigned int *accumulator, \
|
||||
unsigned short *count \
|
||||
)
|
||||
|
||||
#if ARCH_X86 || ARCH_X86_64
|
||||
#include "x86/vp9_temporal_filter_x86.h"
|
||||
#endif
|
||||
|
||||
#ifndef vp9_temporal_filter_apply
|
||||
#define vp9_temporal_filter_apply vp9_temporal_filter_apply_c
|
||||
#endif
|
||||
extern prototype_apply(vp9_temporal_filter_apply);
|
||||
|
||||
typedef struct {
|
||||
prototype_apply(*apply);
|
||||
} vp9_temporal_rtcd_vtable_t;
|
||||
|
||||
#if CONFIG_RUNTIME_CPU_DETECT
|
||||
#define TEMPORAL_INVOKE(ctx,fn) (ctx)->fn
|
||||
#else
|
||||
#define TEMPORAL_INVOKE(ctx,fn) vp9_temporal_filter_##fn
|
||||
#endif
|
||||
|
||||
struct VP9_COMP;
|
||||
|
||||
extern void vp9_temporal_filter_prepare_c(struct VP9_COMP *cpi, int distance);
|
||||
|
||||
#endif // __INC_TEMPORAL_FILTER_H
|
@ -1,27 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2010 The WebM project authors. All Rights Reserved.
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license
|
||||
* that can be found in the LICENSE file in the root of the source
|
||||
* tree. An additional intellectual property rights grant can be found
|
||||
* in the file PATENTS. All contributing project authors may
|
||||
* be found in the AUTHORS file in the root of the source tree.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef __INC_TEMPORAL_FILTER_X86_H
|
||||
#define __INC_TEMPORAL_FILTER_X86_H
|
||||
|
||||
#if HAVE_SSE2
|
||||
extern prototype_apply(vp9_temporal_filter_apply_sse2);
|
||||
|
||||
#if !CONFIG_RUNTIME_CPU_DETECT
|
||||
|
||||
#undef vp9_temporal_filter_apply
|
||||
#define vp9_temporal_filter_apply vp9_temporal_filter_apply_sse2
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
#endif // __INC_TEMPORAL_FILTER_X86_H
|
Loading…
Reference in New Issue
Block a user