180a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar/****************************************************************************** 280a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar * 380a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar * Copyright (C) 2015 The Android Open Source Project 480a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar * 580a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar * Licensed under the Apache License, Version 2.0 (the "License"); 680a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar * you may not use this file except in compliance with the License. 780a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar * You may obtain a copy of the License at: 880a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar * 980a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar * http://www.apache.org/licenses/LICENSE-2.0 1080a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar * 1180a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar * Unless required by applicable law or agreed to in writing, software 1280a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar * distributed under the License is distributed on an "AS IS" BASIS, 1380a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1480a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar * See the License for the specific language governing permissions and 1580a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar * limitations under the License. 1680a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar * 1780a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar ***************************************************************************** 1880a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore 1980a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar*/ 2080a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar/** 2180a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar******************************************************************************* 2280a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar* @file 2380a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar* ideint_defs.h 2480a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar* 2580a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar* @brief 2680a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar* Contains deinterlacer definitions 2780a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar* 2880a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar* @author 2980a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar* Ittiam 3080a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar* 3180a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar* @par List of Functions: 3280a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar* 3380a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar* @remarks 3480a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar* None 3580a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar* 3680a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar******************************************************************************* 3780a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar*/ 3880a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar 3980a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar#ifndef __IDEINT_DEFS_H__ 4080a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar#define __IDEINT_DEFS_H__ 4180a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar 4280a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar#define ADJ_SAD_THRESH (6 * (FLD_BLK_SIZE * 2)) // *2 : 2 way collapsing (col+row) 4380a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar 4480a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar#define RSUM_CSUM_THRESH_PER_PEL 5//0 4580a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar 4680a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar/* Block dimensions. All the decisions (which method to be used) are */ 4780a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar/* made on block basis. The blk level decisions help us in */ 4880a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar/* reducing the time-complexity of the algorithm. */ 4980a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar#define BLK_WD_SHIFT 3 5080a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar#define BLK_HT_SHIFT 3 5180a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar 5280a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar#define BLK_WD (1 << BLK_WD_SHIFT ) 5380a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar#define BLK_HT (1 << BLK_HT_SHIFT) 5480a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar 5580a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar#define FLD_BLK_SIZE (BLK_WD * (BLK_HT >> 1)) 5680a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar 5780a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar 5880a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar/* Inside the algorithm, the block itself is divided amongst further */ 5980a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar/* smaller blocks. */ 6080a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar#define SUB_BLK_WD (BLK_WD >> 1) 6180a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar#define SUB_BLK_HT (BLK_HT >> 1) /* field dimensions. */ 6280a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar 6380a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar#define FLD_SUB_BLK_SIZE (SUB_BLK_WD * SUB_BLK_HT) 6480a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar 6580a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar 6680a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar/*****************************************************************************/ 6780a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar/* Stationarity check threshold, used in deciding when to weave. */ 6880a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar/*****************************************************************************/ 6980a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar#define ST_THRESH ((15 * FLD_BLK_SIZE) >> 1) 7080a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar 7180a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar#define MOD_IDX_ST_NUM 3 7280a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar#define MOD_IDX_ST_SHIFT 1 7380a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar 7480a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar#define VAR_AVG_LUMA 735 7580a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar#define VAR_AVG_CHROMA 38 7680a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar 7780a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar/*****************************************************************************/ 7880a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar/* Threshold to choose the fallback method out of Bob and 3-field Kernel */ 7980a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar/* method. */ 8080a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar/*****************************************************************************/ 8180a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar#define FB_THRESH (32 * FLD_BLK_SIZE) 8280a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar 8380a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar#define MOD_IDX_FB 4 8480a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar 8580a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar 8680a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar#define EDGE_BIAS_0 5 8780a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar#define EDGE_BIAS_1 7 8880a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar 8980a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar/*****************************************************************************/ 9080a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar/* Adjacent correlation bias, used in biasing the adjacent correlation over */ 9180a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar/* the alternate one, while comparing the two; in the combing-artifact-check */ 9280a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar/* function. */ 9380a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar/*****************************************************************************/ 9480a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar#define SAD_BIAS_ADDITIVE (FLD_SUB_BLK_SIZE >> 1) 9580a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar 9680a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar/*****************************************************************************/ 9780a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar/* Mult bias is 1.125 = 9/8. Multiplication by this number is done in two */ 9880a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar/* stpes, first multiplication by 9 and then shift by 3. */ 9980a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar/*****************************************************************************/ 10080a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar#define SAD_BIAS_MULT_SHIFT 3 10180a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar 10280a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar/*****************************************************************************/ 10380a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar/* row_sum threshold, used for making the combing artifact check more robust */ 10480a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar/* against the noise (e.g. ringing) by rejecting insignificant pixel */ 10580a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar/* difference across two adjacent rows; in the combing artifact check */ 10680a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar/* function. */ 10780a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar/*****************************************************************************/ 10880a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar#define RSUM_CSUM_THRESH (RSUM_CSUM_THRESH_PER_PEL * SUB_BLK_WD) 10980a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar 11080a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar/*****************************************************************************/ 11180a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar/* The 3-field filter is of type [-k 2k -k, 0.5 0.5, -k 2k -k], where k is */ 11280a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar/* the COEFF_THREE_FIELD defined below. */ 11380a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar/*****************************************************************************/ 11480a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar#define COEFF_THREE_FIELD 13 11580a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar 11680a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar/*****************************************************************************/ 11780a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar/* Definitions used by the variance calculations module. */ 11880a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar/*****************************************************************************/ 11980a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar#define SQR_SUB_BLK_SZ (FLD_BLK_SIZE * FLD_BLK_SIZE) 12080a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar#define SUB_BLK_SZ_SHIFT 5 /* 2^5 = 32 */ 12180a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar#define SQR_SUB_BLK_SZ_SHIFT (SUB_BLK_SZ_SHIFT << 1) /* 2^10 = 1024 = 32 * 32 */ 12280a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar 12380a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar 12480a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar 12580a14110036632549a272c812f92b791fb08e87aHarish Mahendrakar#endif /* __IDEINT_DEFS_H__ */ 126