xref: /aosp_15_r20/external/libhevc/decoder/ihevcd_profile.h (revision c83a76b084498d55f252f48b2e3786804cdf24b7)
1*c83a76b0SSuyog Pawar /******************************************************************************
2*c83a76b0SSuyog Pawar *
3*c83a76b0SSuyog Pawar * Copyright (C) 2012 Ittiam Systems Pvt Ltd, Bangalore
4*c83a76b0SSuyog Pawar *
5*c83a76b0SSuyog Pawar * Licensed under the Apache License, Version 2.0 (the "License");
6*c83a76b0SSuyog Pawar * you may not use this file except in compliance with the License.
7*c83a76b0SSuyog Pawar * You may obtain a copy of the License at:
8*c83a76b0SSuyog Pawar *
9*c83a76b0SSuyog Pawar * http://www.apache.org/licenses/LICENSE-2.0
10*c83a76b0SSuyog Pawar *
11*c83a76b0SSuyog Pawar * Unless required by applicable law or agreed to in writing, software
12*c83a76b0SSuyog Pawar * distributed under the License is distributed on an "AS IS" BASIS,
13*c83a76b0SSuyog Pawar * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14*c83a76b0SSuyog Pawar * See the License for the specific language governing permissions and
15*c83a76b0SSuyog Pawar * limitations under the License.
16*c83a76b0SSuyog Pawar *
17*c83a76b0SSuyog Pawar ******************************************************************************/
18*c83a76b0SSuyog Pawar /**
19*c83a76b0SSuyog Pawar *******************************************************************************
20*c83a76b0SSuyog Pawar * @file
21*c83a76b0SSuyog Pawar *  ihevcd_profile.h
22*c83a76b0SSuyog Pawar *
23*c83a76b0SSuyog Pawar * @brief
24*c83a76b0SSuyog Pawar *  Contains macros for profiling individual modules of decoder
25*c83a76b0SSuyog Pawar *
26*c83a76b0SSuyog Pawar * @author
27*c83a76b0SSuyog Pawar *  Naveen SR
28*c83a76b0SSuyog Pawar *
29*c83a76b0SSuyog Pawar * @par List of Functions:
30*c83a76b0SSuyog Pawar *
31*c83a76b0SSuyog Pawar * @remarks
32*c83a76b0SSuyog Pawar *  None
33*c83a76b0SSuyog Pawar *
34*c83a76b0SSuyog Pawar *******************************************************************************
35*c83a76b0SSuyog Pawar */
36*c83a76b0SSuyog Pawar 
37*c83a76b0SSuyog Pawar #ifndef _IHEVCD_PROFILE_H_
38*c83a76b0SSuyog Pawar #define _IHEVCD_PROFILE_H_
39*c83a76b0SSuyog Pawar 
40*c83a76b0SSuyog Pawar #include "ihevc_defs.h"
41*c83a76b0SSuyog Pawar /* Define return; to disable individual module */
42*c83a76b0SSuyog Pawar #ifdef PROFILE_DIS_SAO_LEAF_LEVEL
43*c83a76b0SSuyog Pawar #define PROFILE_DISABLE_SAO_LEAF_LEVEL() return;
44*c83a76b0SSuyog Pawar #else
45*c83a76b0SSuyog Pawar #define PROFILE_DISABLE_SAO_LEAF_LEVEL() ;
46*c83a76b0SSuyog Pawar #endif
47*c83a76b0SSuyog Pawar 
48*c83a76b0SSuyog Pawar #ifdef PROFILE_DIS_SAO
49*c83a76b0SSuyog Pawar #define PROFILE_DISABLE_SAO() return;
50*c83a76b0SSuyog Pawar #else
51*c83a76b0SSuyog Pawar #define PROFILE_DISABLE_SAO() ;
52*c83a76b0SSuyog Pawar #endif
53*c83a76b0SSuyog Pawar 
54*c83a76b0SSuyog Pawar #ifdef PROFILE_DIS_DEBLK
55*c83a76b0SSuyog Pawar #define PROFILE_DISABLE_DEBLK() return;
56*c83a76b0SSuyog Pawar #else
57*c83a76b0SSuyog Pawar #define PROFILE_DISABLE_DEBLK() ;
58*c83a76b0SSuyog Pawar #endif
59*c83a76b0SSuyog Pawar 
60*c83a76b0SSuyog Pawar #ifdef PROFILE_DIS_IQ_IT_RECON_INTRA_PRED
61*c83a76b0SSuyog Pawar #define PROFILE_DISABLE_IQ_IT_RECON_INTRA_PRED() return;
62*c83a76b0SSuyog Pawar #else
63*c83a76b0SSuyog Pawar #define PROFILE_DISABLE_IQ_IT_RECON_INTRA_PRED() ;
64*c83a76b0SSuyog Pawar #endif
65*c83a76b0SSuyog Pawar 
66*c83a76b0SSuyog Pawar #ifdef PROFILE_DIS_INTER_PRED
67*c83a76b0SSuyog Pawar #define PROFILE_DISABLE_INTER_PRED() return;
68*c83a76b0SSuyog Pawar #else
69*c83a76b0SSuyog Pawar #define PROFILE_DISABLE_INTER_PRED() ;
70*c83a76b0SSuyog Pawar #endif
71*c83a76b0SSuyog Pawar 
72*c83a76b0SSuyog Pawar #ifdef PROFILE_DIS_PROCESS_CTB
73*c83a76b0SSuyog Pawar #define PROFILE_DISABLE_PROCESS_CTB() return;
74*c83a76b0SSuyog Pawar /* When processing is disabled, no point in format converion as well */
75*c83a76b0SSuyog Pawar #define PROFILE_DISABLE_FMT_CONV() return 0;
76*c83a76b0SSuyog Pawar #else
77*c83a76b0SSuyog Pawar #define PROFILE_DISABLE_PROCESS_CTB() ;
78*c83a76b0SSuyog Pawar #define PROFILE_DISABLE_FMT_CONV();
79*c83a76b0SSuyog Pawar #endif
80*c83a76b0SSuyog Pawar 
81*c83a76b0SSuyog Pawar #ifdef PROFILE_DIS_BOUNDARY_STRENGTH
82*c83a76b0SSuyog Pawar #define PROFILE_DISABLE_BOUNDARY_STRENGTH() return;
83*c83a76b0SSuyog Pawar #else
84*c83a76b0SSuyog Pawar #define PROFILE_DISABLE_BOUNDARY_STRENGTH() ;
85*c83a76b0SSuyog Pawar #endif
86*c83a76b0SSuyog Pawar 
87*c83a76b0SSuyog Pawar #ifdef PROFILE_DIS_MV_PREDICTION
88*c83a76b0SSuyog Pawar #define PROFILE_DISABLE_MV_PREDICTION() return;
89*c83a76b0SSuyog Pawar #else
90*c83a76b0SSuyog Pawar #define PROFILE_DISABLE_MV_PREDICTION() ;
91*c83a76b0SSuyog Pawar #endif
92*c83a76b0SSuyog Pawar 
93*c83a76b0SSuyog Pawar //#define PROFILE_DISABLE_INTER_PRED_LUMA(clr_indx) {if(clr_indx == 0) continue;}
94*c83a76b0SSuyog Pawar //#define PROFILE_DISABLE_INTER_PRED_CHROMA(clr_indx) {if(clr_indx == 1) continue;}
95*c83a76b0SSuyog Pawar //#define PROFILE_DISABLE_INTER_PRED_LUMA_AVERAGING(clr_indx) {if(clr_indx == 0) continue;}
96*c83a76b0SSuyog Pawar //#define PROFILE_DISABLE_INTER_PRED_CHROMA_AVERAGING(clr_indx) {if(clr_indx == 1) continue;}
97*c83a76b0SSuyog Pawar 
98*c83a76b0SSuyog Pawar #define PROFILE_DISABLE_INTER_PRED_LUMA(clr_indx) ;
99*c83a76b0SSuyog Pawar #define PROFILE_DISABLE_INTER_PRED_CHROMA(clr_indx) ;
100*c83a76b0SSuyog Pawar #define PROFILE_DISABLE_INTER_PRED_LUMA_AVERAGING(clr_indx) ;
101*c83a76b0SSuyog Pawar #define PROFILE_DISABLE_INTER_PRED_CHROMA_AVERAGING(clr_indx) ;
102*c83a76b0SSuyog Pawar 
103*c83a76b0SSuyog Pawar #endif /* _IHEVCD_PROFILE_H_ */
104