From: Deb Mukherjee Date: Wed, 24 Sep 2014 00:26:32 +0000 (-0700) Subject: Merge "High bit-depth loop/arf/postproc filter functions" X-Git-Tag: v1.4.0~732 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e2a90c0b21c50219db39f8de08eb7a70843a6a5b;p=libvpx Merge "High bit-depth loop/arf/postproc filter functions" --- e2a90c0b21c50219db39f8de08eb7a70843a6a5b diff --cc vp9/common/vp9_loopfilter.c index 102eb71a5,a23cefab4..b6597ff8a --- a/vp9/common/vp9_loopfilter.c +++ b/vp9/common/vp9_loopfilter.c @@@ -903,9 -1110,48 +1110,48 @@@ static void filter_selectively_vert(uin } } + #if CONFIG_VP9_HIGHBITDEPTH + static void high_filter_selectively_vert(uint16_t *s, int pitch, + unsigned int mask_16x16, + unsigned int mask_8x8, + unsigned int mask_4x4, + unsigned int mask_4x4_int, + const loop_filter_info_n *lfi_n, + const uint8_t *lfl, int bd) { + unsigned int mask; + + for (mask = mask_16x16 | mask_8x8 | mask_4x4 | mask_4x4_int; + mask; mask >>= 1) { + const loop_filter_thresh *lfi = lfi_n->lfthr + *lfl; + + if (mask & 1) { + if (mask_16x16 & 1) { + vp9_highbd_lpf_vertical_16(s, pitch, lfi->mblim, lfi->lim, + lfi->hev_thr, bd); + } else if (mask_8x8 & 1) { + vp9_highbd_lpf_vertical_8(s, pitch, lfi->mblim, lfi->lim, + lfi->hev_thr, 1, bd); + } else if (mask_4x4 & 1) { + vp9_highbd_lpf_vertical_4(s, pitch, lfi->mblim, lfi->lim, + lfi->hev_thr, 1, bd); + } + } + if (mask_4x4_int & 1) + vp9_highbd_lpf_vertical_4(s + 4, pitch, lfi->mblim, lfi->lim, + lfi->hev_thr, 1, bd); + s += 8; + lfl += 1; + mask_16x16 >>= 1; + mask_8x8 >>= 1; + mask_4x4 >>= 1; + mask_4x4_int >>= 1; + } + } + #endif // CONFIG_VP9_HIGHBITDEPTH + static void filter_block_plane_non420(VP9_COMMON *cm, struct macroblockd_plane *plane, - MODE_INFO **mi_8x8, + MODE_INFO *mi_8x8, int mi_row, int mi_col) { const int ss_x = plane->subsampling_x; const int ss_y = plane->subsampling_y;