diff options
author | Yaowu Xu <yaowu@google.com> | 2013-01-11 16:56:39 -0800 |
---|---|---|
committer | Gerrit Code Review <gerrit@gerrit.golo.chromium.org> | 2013-01-11 16:56:39 -0800 |
commit | bbe1c9257f7e2535226cf394b58274822025e32f (patch) | |
tree | d96b4bca47f5f9b2db6067c1cbd9982fdeeb882f | |
parent | 9dc69dfb70dfbf48945a4ce297e92c493d37a4ef (diff) | |
parent | 9a1d73d036d06ef4332ec6d0ff18f771843cd22d (diff) | |
download | libvpx-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.c | 16 | ||||
-rw-r--r-- | vp9/common/x86/vp9_loopfilter_x86.c | 10 |
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 */ |