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