Merge "Use macro for filter extension length" into experimental
This commit is contained in:
commit
505784eecd
@ -461,14 +461,9 @@ void vp8_build_inter16x16_predictors_mbuv(MACROBLOCKD *xd) {
|
|||||||
#if CONFIG_PRED_FILTER
|
#if CONFIG_PRED_FILTER
|
||||||
if (xd->mode_info_context->mbmi.pred_filter_enabled) {
|
if (xd->mode_info_context->mbmi.pred_filter_enabled) {
|
||||||
int i;
|
int i;
|
||||||
#if CONFIG_ENHANCED_INTERP
|
int len = 7 + (INTERP_EXTEND << 1);
|
||||||
int Interp_Extend = 4; // 8-tap filter needs 3+4 pels extension
|
|
||||||
#else
|
|
||||||
int Interp_Extend = 3; // 6-tap filter needs 2+3 pels extension
|
|
||||||
#endif
|
|
||||||
int len = 7 + (Interp_Extend << 1);
|
|
||||||
unsigned char Temp[32 * 32]; // Input data required by sub-pel filter
|
unsigned char Temp[32 * 32]; // Input data required by sub-pel filter
|
||||||
unsigned char *pTemp = Temp + (Interp_Extend - 1) * (len + 1);
|
unsigned char *pTemp = Temp + (INTERP_EXTEND - 1) * (len + 1);
|
||||||
unsigned char *pSrc = uptr;
|
unsigned char *pSrc = uptr;
|
||||||
unsigned char *pDst = upred_ptr;
|
unsigned char *pDst = upred_ptr;
|
||||||
|
|
||||||
@ -477,7 +472,7 @@ void vp8_build_inter16x16_predictors_mbuv(MACROBLOCKD *xd) {
|
|||||||
#if CONFIG_SIXTEENTH_SUBPEL_UV
|
#if CONFIG_SIXTEENTH_SUBPEL_UV
|
||||||
if ((omv_row | omv_col) & 15) {
|
if ((omv_row | omv_col) & 15) {
|
||||||
// Copy extended MB into Temp array, applying the spatial filter
|
// Copy extended MB into Temp array, applying the spatial filter
|
||||||
filter_mb(pSrc - (Interp_Extend - 1) * (pre_stride + 1), pre_stride,
|
filter_mb(pSrc - (INTERP_EXTEND - 1) * (pre_stride + 1), pre_stride,
|
||||||
Temp, len, len, len);
|
Temp, len, len, len);
|
||||||
|
|
||||||
// Sub-pel interpolation
|
// Sub-pel interpolation
|
||||||
@ -487,7 +482,7 @@ void vp8_build_inter16x16_predictors_mbuv(MACROBLOCKD *xd) {
|
|||||||
#else /* CONFIG_SIXTEENTH_SUBPEL_UV */
|
#else /* CONFIG_SIXTEENTH_SUBPEL_UV */
|
||||||
if ((mv_row | mv_col) & 7) {
|
if ((mv_row | mv_col) & 7) {
|
||||||
// Copy extended MB into Temp array, applying the spatial filter
|
// Copy extended MB into Temp array, applying the spatial filter
|
||||||
filter_mb(pSrc - (Interp_Extend - 1) * (pre_stride + 1), pre_stride,
|
filter_mb(pSrc - (INTERP_EXTEND - 1) * (pre_stride + 1), pre_stride,
|
||||||
Temp, len, len, len);
|
Temp, len, len, len);
|
||||||
|
|
||||||
// Sub-pel interpolation
|
// Sub-pel interpolation
|
||||||
@ -631,17 +626,12 @@ void vp8_build_inter16x16_predictors_mby(MACROBLOCKD *xd) {
|
|||||||
// Produce predictor from the filtered source
|
// Produce predictor from the filtered source
|
||||||
if ((mv_row | mv_col) & 7) {
|
if ((mv_row | mv_col) & 7) {
|
||||||
// Sub-pel filter needs extended input
|
// Sub-pel filter needs extended input
|
||||||
#if CONFIG_ENHANCED_INTERP
|
int len = 15 + (INTERP_EXTEND << 1);
|
||||||
int Interp_Extend = 4; // 8-tap filter needs 3+4 pels extension
|
|
||||||
#else
|
|
||||||
int Interp_Extend = 3; // 6-tap filter needs 2+3 pels extension
|
|
||||||
#endif
|
|
||||||
int len = 15 + (Interp_Extend << 1);
|
|
||||||
unsigned char Temp[32 * 32]; // Data required by sub-pel filter
|
unsigned char Temp[32 * 32]; // Data required by sub-pel filter
|
||||||
unsigned char *pTemp = Temp + (Interp_Extend - 1) * (len + 1);
|
unsigned char *pTemp = Temp + (INTERP_EXTEND - 1) * (len + 1);
|
||||||
|
|
||||||
// Copy extended MB into Temp array, applying the spatial filter
|
// Copy extended MB into Temp array, applying the spatial filter
|
||||||
filter_mb(ptr - (Interp_Extend - 1) * (pre_stride + 1), pre_stride,
|
filter_mb(ptr - (INTERP_EXTEND - 1) * (pre_stride + 1), pre_stride,
|
||||||
Temp, len, len, len);
|
Temp, len, len, len);
|
||||||
|
|
||||||
// Sub-pel interpolation
|
// Sub-pel interpolation
|
||||||
@ -736,17 +726,12 @@ void vp8_build_inter16x16_predictors_mb(MACROBLOCKD *x,
|
|||||||
if (x->mode_info_context->mbmi.pred_filter_enabled) {
|
if (x->mode_info_context->mbmi.pred_filter_enabled) {
|
||||||
if (_16x16mv.as_int & 0x00070007) {
|
if (_16x16mv.as_int & 0x00070007) {
|
||||||
// Sub-pel filter needs extended input
|
// Sub-pel filter needs extended input
|
||||||
#if CONFIG_ENHANCED_INTERP
|
int len = 15 + (INTERP_EXTEND << 1);
|
||||||
int Interp_Extend = 4; // 8-tap filter needs 3+4 pels extension
|
|
||||||
#else
|
|
||||||
int Interp_Extend = 3; // 6-tap filter needs 2+3 pels extension
|
|
||||||
#endif
|
|
||||||
int len = 15 + (Interp_Extend << 1);
|
|
||||||
unsigned char Temp[32 * 32]; // Data required by the sub-pel filter
|
unsigned char Temp[32 * 32]; // Data required by the sub-pel filter
|
||||||
unsigned char *pTemp = Temp + (Interp_Extend - 1) * (len + 1);
|
unsigned char *pTemp = Temp + (INTERP_EXTEND - 1) * (len + 1);
|
||||||
|
|
||||||
// Copy extended MB into Temp array, applying the spatial filter
|
// Copy extended MB into Temp array, applying the spatial filter
|
||||||
filter_mb(ptr - (Interp_Extend - 1) * (pre_stride + 1), pre_stride,
|
filter_mb(ptr - (INTERP_EXTEND - 1) * (pre_stride + 1), pre_stride,
|
||||||
Temp, len, len, len);
|
Temp, len, len, len);
|
||||||
|
|
||||||
// Sub-pel filter
|
// Sub-pel filter
|
||||||
@ -809,21 +794,16 @@ void vp8_build_inter16x16_predictors_mb(MACROBLOCKD *x,
|
|||||||
int i;
|
int i;
|
||||||
unsigned char *pSrc = uptr;
|
unsigned char *pSrc = uptr;
|
||||||
unsigned char *pDst = dst_u;
|
unsigned char *pDst = dst_u;
|
||||||
#if CONFIG_ENHANCED_INTERP
|
int len = 7 + (INTERP_EXTEND << 1);
|
||||||
int Interp_Extend = 4; // 8-tap filter needs 3+4 pels extension
|
|
||||||
#else
|
|
||||||
int Interp_Extend = 3; // 6-tap filter needs 2+3 pels extension
|
|
||||||
#endif
|
|
||||||
int len = 7 + (Interp_Extend << 1);
|
|
||||||
unsigned char Temp[32 * 32]; // Data required by the sub-pel filter
|
unsigned char Temp[32 * 32]; // Data required by the sub-pel filter
|
||||||
unsigned char *pTemp = Temp + (Interp_Extend - 1) * (len + 1);
|
unsigned char *pTemp = Temp + (INTERP_EXTEND - 1) * (len + 1);
|
||||||
|
|
||||||
// U & V
|
// U & V
|
||||||
for (i = 0; i < 2; i++) {
|
for (i = 0; i < 2; i++) {
|
||||||
#if CONFIG_SIXTEENTH_SUBPEL_UV
|
#if CONFIG_SIXTEENTH_SUBPEL_UV
|
||||||
if (_o16x16mv.as_int & 0x000f000f) {
|
if (_o16x16mv.as_int & 0x000f000f) {
|
||||||
// Copy extended MB into Temp array, applying the spatial filter
|
// Copy extended MB into Temp array, applying the spatial filter
|
||||||
filter_mb(pSrc - (Interp_Extend - 1) * (pre_stride + 1), pre_stride,
|
filter_mb(pSrc - (INTERP_EXTEND - 1) * (pre_stride + 1), pre_stride,
|
||||||
Temp, len, len, len);
|
Temp, len, len, len);
|
||||||
|
|
||||||
// Sub-pel filter
|
// Sub-pel filter
|
||||||
@ -835,7 +815,7 @@ void vp8_build_inter16x16_predictors_mb(MACROBLOCKD *x,
|
|||||||
#else /* CONFIG_SIXTEENTH_SUBPEL_UV */
|
#else /* CONFIG_SIXTEENTH_SUBPEL_UV */
|
||||||
if (_16x16mv.as_int & 0x00070007) {
|
if (_16x16mv.as_int & 0x00070007) {
|
||||||
// Copy extended MB into Temp array, applying the spatial filter
|
// Copy extended MB into Temp array, applying the spatial filter
|
||||||
filter_mb(pSrc - (Interp_Extend - 1) * (pre_stride + 1), pre_stride,
|
filter_mb(pSrc - (INTERP_EXTEND - 1) * (pre_stride + 1), pre_stride,
|
||||||
Temp, len, len, len);
|
Temp, len, len, len);
|
||||||
|
|
||||||
// Sub-pel filter
|
// Sub-pel filter
|
||||||
@ -921,17 +901,12 @@ void vp8_build_2nd_inter16x16_predictors_mb(MACROBLOCKD *x,
|
|||||||
if (x->mode_info_context->mbmi.pred_filter_enabled) {
|
if (x->mode_info_context->mbmi.pred_filter_enabled) {
|
||||||
if ((mv_row | mv_col) & 7) {
|
if ((mv_row | mv_col) & 7) {
|
||||||
// Sub-pel filter needs extended input
|
// Sub-pel filter needs extended input
|
||||||
#if CONFIG_ENHANCED_INTERP
|
int len = 15 + (INTERP_EXTEND << 1);
|
||||||
int Interp_Extend = 4; // 8-tap filter needs 3+4 pels extension
|
|
||||||
#else
|
|
||||||
int Interp_Extend = 3; // 6-tap filter needs 2+3 pels extension
|
|
||||||
#endif
|
|
||||||
int len = 15 + (Interp_Extend << 1);
|
|
||||||
unsigned char Temp[32 * 32]; // Data required by sub-pel filter
|
unsigned char Temp[32 * 32]; // Data required by sub-pel filter
|
||||||
unsigned char *pTemp = Temp + (Interp_Extend - 1) * (len + 1);
|
unsigned char *pTemp = Temp + (INTERP_EXTEND - 1) * (len + 1);
|
||||||
|
|
||||||
// Copy extended MB into Temp array, applying the spatial filter
|
// Copy extended MB into Temp array, applying the spatial filter
|
||||||
filter_mb(ptr - (Interp_Extend - 1) * (pre_stride + 1), pre_stride,
|
filter_mb(ptr - (INTERP_EXTEND - 1) * (pre_stride + 1), pre_stride,
|
||||||
Temp, len, len, len);
|
Temp, len, len, len);
|
||||||
|
|
||||||
// Sub-pel filter
|
// Sub-pel filter
|
||||||
@ -982,14 +957,9 @@ void vp8_build_2nd_inter16x16_predictors_mb(MACROBLOCKD *x,
|
|||||||
#if CONFIG_PRED_FILTER
|
#if CONFIG_PRED_FILTER
|
||||||
if (x->mode_info_context->mbmi.pred_filter_enabled) {
|
if (x->mode_info_context->mbmi.pred_filter_enabled) {
|
||||||
int i;
|
int i;
|
||||||
#if CONFIG_ENHANCED_INTERP
|
int len = 7 + (INTERP_EXTEND << 1);
|
||||||
int Interp_Extend = 4; // 8-tap filter needs 3+4 pels extension
|
|
||||||
#else
|
|
||||||
int Interp_Extend = 3; // 6-tap filter needs 2+3 pels extension
|
|
||||||
#endif
|
|
||||||
int len = 7 + (Interp_Extend << 1);
|
|
||||||
unsigned char Temp[32 * 32]; // Data required by sub-pel filter
|
unsigned char Temp[32 * 32]; // Data required by sub-pel filter
|
||||||
unsigned char *pTemp = Temp + (Interp_Extend - 1) * (len + 1);
|
unsigned char *pTemp = Temp + (INTERP_EXTEND - 1) * (len + 1);
|
||||||
unsigned char *pSrc = uptr;
|
unsigned char *pSrc = uptr;
|
||||||
unsigned char *pDst = dst_u;
|
unsigned char *pDst = dst_u;
|
||||||
|
|
||||||
@ -998,7 +968,7 @@ void vp8_build_2nd_inter16x16_predictors_mb(MACROBLOCKD *x,
|
|||||||
#if CONFIG_SIXTEENTH_SUBPEL_UV
|
#if CONFIG_SIXTEENTH_SUBPEL_UV
|
||||||
if ((omv_row | omv_col) & 15) {
|
if ((omv_row | omv_col) & 15) {
|
||||||
// Copy extended MB into Temp array, applying the spatial filter
|
// Copy extended MB into Temp array, applying the spatial filter
|
||||||
filter_mb(pSrc - (Interp_Extend - 1) * (pre_stride + 1), pre_stride,
|
filter_mb(pSrc - (INTERP_EXTEND - 1) * (pre_stride + 1), pre_stride,
|
||||||
Temp, len, len, len);
|
Temp, len, len, len);
|
||||||
|
|
||||||
// Sub-pel filter
|
// Sub-pel filter
|
||||||
@ -1008,7 +978,7 @@ void vp8_build_2nd_inter16x16_predictors_mb(MACROBLOCKD *x,
|
|||||||
#else /* CONFIG_SIXTEENTH_SUBPEL_UV */
|
#else /* CONFIG_SIXTEENTH_SUBPEL_UV */
|
||||||
if ((mv_row | mv_col) & 7) {
|
if ((mv_row | mv_col) & 7) {
|
||||||
// Copy extended MB into Temp array, applying the spatial filter
|
// Copy extended MB into Temp array, applying the spatial filter
|
||||||
filter_mb(pSrc - (Interp_Extend - 1) * (pre_stride + 1), pre_stride,
|
filter_mb(pSrc - (INTERP_EXTEND - 1) * (pre_stride + 1), pre_stride,
|
||||||
Temp, len, len, len);
|
Temp, len, len, len);
|
||||||
|
|
||||||
// Sub-pel filter
|
// Sub-pel filter
|
||||||
|
Loading…
Reference in New Issue
Block a user