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