Add loop filtering for UV plane

On block boundary within a MB when 8x8 block boundary only is filtered
for Y.

Change-Id: Ie1c804c877d199e78e2fecd8c2d3f1e114ce9ec1
This commit is contained in:
Yaowu Xu 2013-01-11 15:53:32 -08:00
parent d27ae620bc
commit 9a1d73d036
2 changed files with 26 additions and 0 deletions

View File

@ -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,

View File

@ -609,6 +609,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 */
@ -629,6 +634,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 */