From 56efb73be358d52119b170355888dd362bc5f903 Mon Sep 17 00:00:00 2001 From: John Koleszar Date: Tue, 14 May 2013 06:46:11 -0700 Subject: [PATCH] Revert "Preparing vp9_deblock and vp9_denoise to alpha support." This reverts commit a933311131bfc77ffd1c64b29f7e1688a1c4b192 Change-Id: I2321f88011178381adbcffeda1bcc6a430ab8f1d --- vp9/common/vp9_postproc.c | 76 ++++++++++++++++++++++++--------------------- vp9/common/vp9_postproc.h | 6 ++-- vp9/common/vp9_rtcd_defs.sh | 2 +- vp9/encoder/vp9_onyx_if.c | 4 +-- 4 files changed, 48 insertions(+), 40 deletions(-) diff --git a/vp9/common/vp9_postproc.c b/vp9/common/vp9_postproc.c index ca0c565..f81690a 100644 --- a/vp9/common/vp9_postproc.c +++ b/vp9/common/vp9_postproc.c @@ -132,15 +132,14 @@ const short vp9_rv[] = { /**************************************************************************** */ -void vp9_post_proc_down_and_across_c(const uint8_t *src_ptr, +void vp9_post_proc_down_and_across_c(uint8_t *src_ptr, uint8_t *dst_ptr, int src_pixels_per_line, int dst_pixels_per_line, int rows, int cols, int flimit) { - uint8_t const *p_src; - uint8_t *p_dst; + uint8_t *p_src, *p_dst; int row; int col; int i; @@ -314,44 +313,51 @@ static void deblock_and_de_macro_block(YV12_BUFFER_CONFIG *source, source->uv_height, source->uv_width, ppl); } -void vp9_deblock(const YV12_BUFFER_CONFIG *src, YV12_BUFFER_CONFIG *dst, - int q) { - const int ppl = (int)(6.0e-05 * q * q * q - 0.0067 * q * q + 0.306 * q - + 0.0065 + 0.5); - int i; +void vp9_deblock(YV12_BUFFER_CONFIG *source, + YV12_BUFFER_CONFIG *post, + int q, + int low_var_thresh, + 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; - const uint8_t *const srcs[3] = {src->y_buffer, src->u_buffer, src->v_buffer}; - uint8_t *const dsts[3] = {dst->y_buffer, dst->u_buffer, dst->v_buffer}; - const int strides[3] = {src->y_stride, src->uv_stride, src->uv_stride}; - const int widths[3] = {src->y_width, src->uv_width, src->uv_width}; - const int heights[3] = {src->y_height, src->uv_height, src->uv_height}; + 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); - for (i = 0; i < MAX_MB_PLANE; ++i) - vp9_post_proc_down_and_across(srcs[i], dsts[i], strides[i], strides[i], - heights[i], widths[i], 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_denoise(const YV12_BUFFER_CONFIG *src, YV12_BUFFER_CONFIG *dst, - int q) { - const int ppl = (int)(6.0e-05 * q * q * q - 0.0067 * q * q + 0.306 * q - + 0.0065 + 0.5); - int i; +void vp9_denoise(YV12_BUFFER_CONFIG *src, YV12_BUFFER_CONFIG *post, + int q, int low_var_thresh, 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; - const uint8_t *const srcs[3] = {src->y_buffer, src->u_buffer, src->v_buffer}; - uint8_t *const dsts[3] = {dst->y_buffer, dst->u_buffer, dst->v_buffer}; - const int strides[3] = {src->y_stride, src->uv_stride, src->uv_stride}; - const int widths[3] = {src->y_width, src->uv_width, src->uv_width}; - const int heights[3] = {src->y_height, src->uv_height, src->uv_height}; + 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); - for (i = 0; i < MAX_MB_PLANE; ++i) { - const int stride = strides[i]; - const int width = widths[i] - 4; - const int height = heights[i] - 4; - const uint8_t *const src = srcs[i] + 2 * stride + 2; - uint8_t *const dst = dsts[i] + 2 * stride + 2; + 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, dst, stride, stride, height, width, 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) { @@ -636,7 +642,7 @@ int vp9_post_proc_frame(VP9_COMMON *oci, YV12_BUFFER_CONFIG *dest, deblock_and_de_macro_block(oci->frame_to_show, &oci->post_proc_buffer, q + (deblock_level - 5) * 10, 1, 0); } else if (flags & VP9D_DEBLOCK) { - vp9_deblock(oci->frame_to_show, &oci->post_proc_buffer, q); + 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); } diff --git a/vp9/common/vp9_postproc.h b/vp9/common/vp9_postproc.h index 2c0d333..c2f556e 100644 --- a/vp9/common/vp9_postproc.h +++ b/vp9/common/vp9_postproc.h @@ -29,8 +29,10 @@ struct postproc_state { int vp9_post_proc_frame(struct VP9Common *oci, YV12_BUFFER_CONFIG *dest, vp9_ppflags_t *flags); -void vp9_denoise(const YV12_BUFFER_CONFIG *src, YV12_BUFFER_CONFIG *dst, int q); +void vp9_denoise(YV12_BUFFER_CONFIG *source, YV12_BUFFER_CONFIG *post, + int q, int low_var_thresh, int flag); -void vp9_deblock(const YV12_BUFFER_CONFIG *src, YV12_BUFFER_CONFIG *dst, int q); +void vp9_deblock(YV12_BUFFER_CONFIG *source, YV12_BUFFER_CONFIG *post, + int q, int low_var_thresh, int flag); #endif // VP9_COMMON_VP9_POSTPROC_H_ diff --git a/vp9/common/vp9_rtcd_defs.sh b/vp9/common/vp9_rtcd_defs.sh index 77b0a69..02d3253 100644 --- a/vp9/common/vp9_rtcd_defs.sh +++ b/vp9/common/vp9_rtcd_defs.sh @@ -146,7 +146,7 @@ prototype void vp9_mbpost_proc_across_ip "uint8_t *src, int pitch, int rows, int 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 "const uint8_t *src_ptr, uint8_t *dst_ptr, int src_pixels_per_line, int dst_pixels_per_line, int rows, int cols, int flimit" +prototype void vp9_post_proc_down_and_across "uint8_t *src_ptr, uint8_t *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 diff --git a/vp9/encoder/vp9_onyx_if.c b/vp9/encoder/vp9_onyx_if.c index 211f07e..610d733 100644 --- a/vp9/encoder/vp9_onyx_if.c +++ b/vp9/encoder/vp9_onyx_if.c @@ -2881,7 +2881,7 @@ static void encode_frame_to_data_rate(VP9_COMP *cpi, break; } - vp9_denoise(cpi->Source, cpi->Source, l); + vp9_denoise(cpi->Source, cpi->Source, l, 1, 0); } #endif @@ -3966,7 +3966,7 @@ int vp9_get_compressed_data(VP9_PTR ptr, unsigned int *frame_flags, double weight = 0; #if CONFIG_POSTPROC vp9_deblock(cm->frame_to_show, &cm->post_proc_buffer, - cm->filter_level * 10 / 6); + cm->filter_level * 10 / 6, 1, 0); #endif vp9_clear_system_state(); -- 2.7.4