/****************************************************************************** * * Copyright (C) 2015 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at: * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ***************************************************************************** * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore */ /** ******************************************************************************* * @file * ideint_defs.h * * @brief * Contains deinterlacer definitions * * @author * Ittiam * * @par List of Functions: * * @remarks * None * ******************************************************************************* */ #ifndef __IDEINT_DEFS_H__ #define __IDEINT_DEFS_H__ #define ADJ_SAD_THRESH (6 * (FLD_BLK_SIZE * 2)) // *2 : 2 way collapsing (col+row) #define RSUM_CSUM_THRESH_PER_PEL 5//0 /* Block dimensions. All the decisions (which method to be used) are */ /* made on block basis. The blk level decisions help us in */ /* reducing the time-complexity of the algorithm. */ #define BLK_WD_SHIFT 3 #define BLK_HT_SHIFT 3 #define BLK_WD (1 << BLK_WD_SHIFT ) #define BLK_HT (1 << BLK_HT_SHIFT) #define FLD_BLK_SIZE (BLK_WD * (BLK_HT >> 1)) /* Inside the algorithm, the block itself is divided amongst further */ /* smaller blocks. */ #define SUB_BLK_WD (BLK_WD >> 1) #define SUB_BLK_HT (BLK_HT >> 1) /* field dimensions. */ #define FLD_SUB_BLK_SIZE (SUB_BLK_WD * SUB_BLK_HT) /*****************************************************************************/ /* Stationarity check threshold, used in deciding when to weave. */ /*****************************************************************************/ #define ST_THRESH ((15 * FLD_BLK_SIZE) >> 1) #define MOD_IDX_ST_NUM 3 #define MOD_IDX_ST_SHIFT 1 #define VAR_AVG_LUMA 735 #define VAR_AVG_CHROMA 38 /*****************************************************************************/ /* Threshold to choose the fallback method out of Bob and 3-field Kernel */ /* method. */ /*****************************************************************************/ #define FB_THRESH (32 * FLD_BLK_SIZE) #define MOD_IDX_FB 4 #define EDGE_BIAS_0 5 #define EDGE_BIAS_1 7 /*****************************************************************************/ /* Adjacent correlation bias, used in biasing the adjacent correlation over */ /* the alternate one, while comparing the two; in the combing-artifact-check */ /* function. */ /*****************************************************************************/ #define SAD_BIAS_ADDITIVE (FLD_SUB_BLK_SIZE >> 1) /*****************************************************************************/ /* Mult bias is 1.125 = 9/8. Multiplication by this number is done in two */ /* stpes, first multiplication by 9 and then shift by 3. */ /*****************************************************************************/ #define SAD_BIAS_MULT_SHIFT 3 /*****************************************************************************/ /* row_sum threshold, used for making the combing artifact check more robust */ /* against the noise (e.g. ringing) by rejecting insignificant pixel */ /* difference across two adjacent rows; in the combing artifact check */ /* function. */ /*****************************************************************************/ #define RSUM_CSUM_THRESH (RSUM_CSUM_THRESH_PER_PEL * SUB_BLK_WD) /*****************************************************************************/ /* The 3-field filter is of type [-k 2k -k, 0.5 0.5, -k 2k -k], where k is */ /* the COEFF_THREE_FIELD defined below. */ /*****************************************************************************/ #define COEFF_THREE_FIELD 13 /*****************************************************************************/ /* Definitions used by the variance calculations module. */ /*****************************************************************************/ #define SQR_SUB_BLK_SZ (FLD_BLK_SIZE * FLD_BLK_SIZE) #define SUB_BLK_SZ_SHIFT 5 /* 2^5 = 32 */ #define SQR_SUB_BLK_SZ_SHIFT (SUB_BLK_SZ_SHIFT << 1) /* 2^10 = 1024 = 32 * 32 */ #endif /* __IDEINT_DEFS_H__ */