151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick/****************************************************************************** 251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick * * 351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick * Copyright (C) 2018 The Android Open Source Project 451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick * 551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick * Licensed under the Apache License, Version 2.0 (the "License"); 651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick * you may not use this file except in compliance with the License. 751aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick * You may obtain a copy of the License at: 851aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick * 951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick * http://www.apache.org/licenses/LICENSE-2.0 1051aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick * 1151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick * Unless required by applicable law or agreed to in writing, software 1251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick * distributed under the License is distributed on an "AS IS" BASIS, 1351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick * See the License for the specific language governing permissions and 1551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick * limitations under the License. 1651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick * 1751aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick ***************************************************************************** 1851aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore 1951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick*/ 2051aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick#ifndef IXHEAACD_MPS_HUFF_TAB_H 2151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick#define IXHEAACD_MPS_HUFF_TAB_H 2251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick 2351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essicktypedef struct { const WORD32 node_tab[39][2]; } ia_huff_res_nodes_struct; 2451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick 2551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essicktypedef struct { const WORD32 node_tab[30][2]; } ia_huff_cld_node_1d_struct; 2651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick 2751aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essicktypedef struct { const WORD32 node_tab[7][2]; } ia_huff_icc_node_1d_struct; 2851aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick 2951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essicktypedef struct { const WORD32 node_tab[50][2]; } HUFF_CPC_NOD_1D; 3051aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick 3151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essicktypedef struct { 3251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick const WORD32 lav3[15][2]; 3351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick const WORD32 lav5[35][2]; 3451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick const WORD32 lav7[63][2]; 3551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick const WORD32 lav9[99][2]; 3651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick} ia_huff_cld_node_2d_struct; 3751aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick 3851aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essicktypedef struct { 3951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick const WORD32 lav1[3][2]; 4051aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick const WORD32 lav3[15][2]; 4151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick const WORD32 lav5[35][2]; 4251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick const WORD32 lav7[63][2]; 4351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick} ia_huff_icc_node_2d_struct; 4451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick 4551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essicktypedef struct { 4651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick const WORD32 lav3[15][2]; 4751aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick const WORD32 lav6[48][2]; 4851aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick const WORD32 lav9[99][2]; 4951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick const WORD32 lav12[168][2]; 5051aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick} HUFF_CPC_NOD_2D; 5151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick 5251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essicktypedef struct { 5351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick ia_huff_cld_node_1d_struct h_1_dim[3]; 5451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick ia_huff_cld_node_2d_struct h_2_dim[3][2]; 5551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick 5651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick} ia_huff_cld_nodes_struct; 5751aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick 5851aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essicktypedef struct { 5951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick ia_huff_icc_node_1d_struct h_1_dim[3]; 6051aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick ia_huff_icc_node_2d_struct h_2_dim[3][2]; 6151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick 6251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick} ia_huff_icc_nodes_struct; 6351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick 6451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essicktypedef struct { 6551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick HUFF_CPC_NOD_1D h_1_dim[3]; 6651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick HUFF_CPC_NOD_2D h_2_dim[3][2]; 6751aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick 6851aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick} HUFF_CPC_NODES; 6951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick 7051aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essicktypedef struct { 7151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick const WORD32 cld[30][2]; 7251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick const WORD32 icc[7][2]; 7351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick const WORD32 cpc[25][2]; 7451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick 7551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick} ia_huff_pt0_nodes_struct; 7651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick 7751aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essicktypedef struct { const WORD32 node_tab[3][2]; } ia_huff_lav_nodes_struct; 7851aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick 7951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essicktypedef struct { const WORD32 node_tab[7][2]; } ia_huff_ipd_node_1d_struct; 8051aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick 8151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essicktypedef struct { 8251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick const WORD32 lav1[3][2]; 8351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick const WORD32 lav3[15][2]; 8451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick const WORD32 lav5[35][2]; 8551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick const WORD32 lav7[63][2]; 8651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick} ia_huff_ipd_node_2d_struct; 8751aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick 8851aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essicktypedef struct { 8951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick ia_huff_ipd_node_1d_struct hp0; 9051aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick ia_huff_ipd_node_1d_struct h_1_dim[3]; 9151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick ia_huff_ipd_node_2d_struct h_2_dim[3][2]; 9251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick 9351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick} ia_huff_ipd_nodes_struct; 9451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick 9551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick#endif 96