Use 8-tap interp filter in temporal filtering
Used 8-tap interp filter in temporal filtering to achieve more accurate
motion search result. AWCY result showed 0.0468% PSNR gain and 0.1019%
SSIM gain.
PSNR | PSNR Cb | PSNR Cr | PSNR HVS | SSIM | MS SSIM | CIEDE 2000
-0.0468 | -0.0342 | -0.0121 | -0.1053 | -0.1019 | -0.1479 | -0.0605
No encoder speed difference was seen.
STATS_CHANGED
Change-Id: I0e7ea528e716809f00c0b00bdf0e36986d297ebc
diff --git a/av1/common/filter.h b/av1/common/filter.h
index 44d8d20..d7ef5c9 100644
--- a/av1/common/filter.h
+++ b/av1/common/filter.h
@@ -218,12 +218,13 @@
static INLINE const InterpFilterParams *av1_get_filter(int subpel_search) {
assert(subpel_search >= USE_2_TAPS);
- return (subpel_search == USE_2_TAPS)
- ? get_4tap_interp_filter_params(BILINEAR)
- : ((subpel_search == USE_4_TAPS)
- ? get_4tap_interp_filter_params(EIGHTTAP_REGULAR)
- : av1_get_interp_filter_params_with_block_size(
- EIGHTTAP_REGULAR, 8));
+
+ switch (subpel_search) {
+ case USE_2_TAPS: return get_4tap_interp_filter_params(BILINEAR);
+ case USE_4_TAPS: return get_4tap_interp_filter_params(EIGHTTAP_REGULAR);
+ case USE_8_TAPS: return &av1_interp_filter_params_list[EIGHTTAP_REGULAR];
+ default: assert(0); return NULL;
+ }
}
#ifdef __cplusplus