summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYaowu Xu <yaowu@google.com>2013-01-11 16:56:39 -0800
committerGerrit Code Review <gerrit@gerrit.golo.chromium.org>2013-01-11 16:56:39 -0800
commitbbe1c9257f7e2535226cf394b58274822025e32f (patch)
treed96b4bca47f5f9b2db6067c1cbd9982fdeeb882f
parent9dc69dfb70dfbf48945a4ce297e92c493d37a4ef (diff)
parent9a1d73d036d06ef4332ec6d0ff18f771843cd22d (diff)
downloadlibvpx-bbe1c9257f7e2535226cf394b58274822025e32f.tar
libvpx-bbe1c9257f7e2535226cf394b58274822025e32f.tar.gz
libvpx-bbe1c9257f7e2535226cf394b58274822025e32f.tar.bz2
libvpx-bbe1c9257f7e2535226cf394b58274822025e32f.zip
Merge "Add loop filtering for UV plane" into experimental
-rw-r--r--vp9/common/vp9_loopfilter_filters.c16
-rw-r--r--vp9/common/x86/vp9_loopfilter_x86.c10
2 files changed, 26 insertions, 0 deletions
diff --git a/vp9/common/vp9_loopfilter_filters.c b/vp9/common/vp9_loopfilter_filters.c
index ed7b422df..1566abf9b 100644
--- a/vp9/common/vp9_loopfilter_filters.c
+++ b/vp9/common/vp9_loopfilter_filters.c
@@ -439,6 +439,14 @@ void vp9_loop_filter_bh8x8_c(uint8_t *y_ptr, uint8_t *u_ptr,
struct loop_filter_info *lfi) {
vp9_mbloop_filter_horizontal_edge_c(
y_ptr + 8 * y_stride, y_stride, lfi->blim, lfi->lim, lfi->hev_thr, 2);
+
+ if (u_ptr)
+ vp9_loop_filter_horizontal_edge_c(u_ptr + 4 * uv_stride, uv_stride,
+ lfi->blim, lfi->lim, lfi->hev_thr, 1);
+
+ if (v_ptr)
+ vp9_loop_filter_horizontal_edge_c(v_ptr + 4 * uv_stride, uv_stride,
+ lfi->blim, lfi->lim, lfi->hev_thr, 1);
}
void vp9_loop_filter_bhs_c(uint8_t *y_ptr, int y_stride,
@@ -456,6 +464,14 @@ void vp9_loop_filter_bv8x8_c(uint8_t *y_ptr, uint8_t *u_ptr,
struct loop_filter_info *lfi) {
vp9_mbloop_filter_vertical_edge_c(
y_ptr + 8, y_stride, lfi->blim, lfi->lim, lfi->hev_thr, 2);
+
+ if (u_ptr)
+ vp9_loop_filter_vertical_edge_c(u_ptr + 4, uv_stride,
+ lfi->blim, lfi->lim, lfi->hev_thr, 1);
+
+ if (v_ptr)
+ vp9_loop_filter_vertical_edge_c(v_ptr + 4, uv_stride,
+ lfi->blim, lfi->lim, lfi->hev_thr, 1);
}
void vp9_loop_filter_bvs_c(uint8_t *y_ptr, int y_stride,
diff --git a/vp9/common/x86/vp9_loopfilter_x86.c b/vp9/common/x86/vp9_loopfilter_x86.c
index 9f46eec4c..3e2091465 100644
--- a/vp9/common/x86/vp9_loopfilter_x86.c
+++ b/vp9/common/x86/vp9_loopfilter_x86.c
@@ -623,6 +623,11 @@ void vp9_loop_filter_bh8x8_sse2(unsigned char *y_ptr, unsigned char *u_ptr,
struct loop_filter_info *lfi) {
vp9_mbloop_filter_horizontal_edge_sse2(
y_ptr + 8 * y_stride, y_stride, lfi->blim, lfi->lim, lfi->hev_thr);
+
+ if (u_ptr)
+ vp9_loop_filter_horizontal_edge_uv_sse2(u_ptr + 4 * uv_stride, uv_stride,
+ lfi->blim, lfi->lim, lfi->hev_thr,
+ v_ptr + 4 * uv_stride);
}
/* Vertical MB Filtering */
@@ -657,6 +662,11 @@ void vp9_loop_filter_bv8x8_sse2(unsigned char *y_ptr, unsigned char *u_ptr,
struct loop_filter_info *lfi) {
vp9_mbloop_filter_vertical_edge_sse2(
y_ptr + 8, y_stride, lfi->blim, lfi->lim, lfi->hev_thr);
+
+ if (u_ptr)
+ vp9_loop_filter_vertical_edge_uv_sse2(u_ptr + 4, uv_stride,
+ lfi->blim, lfi->lim, lfi->hev_thr,
+ v_ptr + 4);
}
/* Horizontal B Filtering */