1*15dc779aSAndroid Build Coastguard Worker /****************************************************************************** 2*15dc779aSAndroid Build Coastguard Worker * * 3*15dc779aSAndroid Build Coastguard Worker * Copyright (C) 2023 The Android Open Source Project 4*15dc779aSAndroid Build Coastguard Worker * 5*15dc779aSAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License"); 6*15dc779aSAndroid Build Coastguard Worker * you may not use this file except in compliance with the License. 7*15dc779aSAndroid Build Coastguard Worker * You may obtain a copy of the License at: 8*15dc779aSAndroid Build Coastguard Worker * 9*15dc779aSAndroid Build Coastguard Worker * http://www.apache.org/licenses/LICENSE-2.0 10*15dc779aSAndroid Build Coastguard Worker * 11*15dc779aSAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software 12*15dc779aSAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS, 13*15dc779aSAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14*15dc779aSAndroid Build Coastguard Worker * See the License for the specific language governing permissions and 15*15dc779aSAndroid Build Coastguard Worker * limitations under the License. 16*15dc779aSAndroid Build Coastguard Worker * 17*15dc779aSAndroid Build Coastguard Worker ***************************************************************************** 18*15dc779aSAndroid Build Coastguard Worker * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore 19*15dc779aSAndroid Build Coastguard Worker */ 20*15dc779aSAndroid Build Coastguard Worker 21*15dc779aSAndroid Build Coastguard Worker #pragma once 22*15dc779aSAndroid Build Coastguard Worker typedef struct { 23*15dc779aSAndroid Build Coastguard Worker UWORD32 value; 24*15dc779aSAndroid Build Coastguard Worker UWORD8 length; 25*15dc779aSAndroid Build Coastguard Worker } ixheaace_mps_huff_entry; 26*15dc779aSAndroid Build Coastguard Worker 27*15dc779aSAndroid Build Coastguard Worker typedef struct { 28*15dc779aSAndroid Build Coastguard Worker ixheaace_mps_huff_entry entry[2][2]; 29*15dc779aSAndroid Build Coastguard Worker ixheaace_mps_huff_entry escape; 30*15dc779aSAndroid Build Coastguard Worker 31*15dc779aSAndroid Build Coastguard Worker } ixheaace_mps_lav1_2d; 32*15dc779aSAndroid Build Coastguard Worker 33*15dc779aSAndroid Build Coastguard Worker typedef struct { 34*15dc779aSAndroid Build Coastguard Worker ixheaace_mps_huff_entry entry[4][4]; 35*15dc779aSAndroid Build Coastguard Worker ixheaace_mps_huff_entry escape; 36*15dc779aSAndroid Build Coastguard Worker 37*15dc779aSAndroid Build Coastguard Worker } ixheaace_mps_lav3_2d; 38*15dc779aSAndroid Build Coastguard Worker 39*15dc779aSAndroid Build Coastguard Worker typedef struct { 40*15dc779aSAndroid Build Coastguard Worker ixheaace_mps_huff_entry entry[6][6]; 41*15dc779aSAndroid Build Coastguard Worker ixheaace_mps_huff_entry escape; 42*15dc779aSAndroid Build Coastguard Worker 43*15dc779aSAndroid Build Coastguard Worker } ixheaace_mps_lav5_2d; 44*15dc779aSAndroid Build Coastguard Worker 45*15dc779aSAndroid Build Coastguard Worker typedef struct { 46*15dc779aSAndroid Build Coastguard Worker ixheaace_mps_huff_entry entry[7][7]; 47*15dc779aSAndroid Build Coastguard Worker ixheaace_mps_huff_entry escape; 48*15dc779aSAndroid Build Coastguard Worker 49*15dc779aSAndroid Build Coastguard Worker } ixheaace_mps_lav6_2d; 50*15dc779aSAndroid Build Coastguard Worker 51*15dc779aSAndroid Build Coastguard Worker typedef struct { 52*15dc779aSAndroid Build Coastguard Worker ixheaace_mps_huff_entry entry[8][8]; 53*15dc779aSAndroid Build Coastguard Worker ixheaace_mps_huff_entry escape; 54*15dc779aSAndroid Build Coastguard Worker 55*15dc779aSAndroid Build Coastguard Worker } ixheaace_mps_lav7_2d; 56*15dc779aSAndroid Build Coastguard Worker 57*15dc779aSAndroid Build Coastguard Worker typedef struct { 58*15dc779aSAndroid Build Coastguard Worker ixheaace_mps_huff_entry entry[10][10]; 59*15dc779aSAndroid Build Coastguard Worker ixheaace_mps_huff_entry escape; 60*15dc779aSAndroid Build Coastguard Worker 61*15dc779aSAndroid Build Coastguard Worker } ixheaace_mps_lav9_2d; 62*15dc779aSAndroid Build Coastguard Worker 63*15dc779aSAndroid Build Coastguard Worker typedef struct { 64*15dc779aSAndroid Build Coastguard Worker ixheaace_mps_huff_entry entry[13][13]; 65*15dc779aSAndroid Build Coastguard Worker ixheaace_mps_huff_entry escape; 66*15dc779aSAndroid Build Coastguard Worker 67*15dc779aSAndroid Build Coastguard Worker } ixheaace_mps_lav12_2d; 68*15dc779aSAndroid Build Coastguard Worker 69*15dc779aSAndroid Build Coastguard Worker typedef struct { 70*15dc779aSAndroid Build Coastguard Worker ixheaace_mps_lav3_2d lav3; 71*15dc779aSAndroid Build Coastguard Worker ixheaace_mps_lav5_2d lav5; 72*15dc779aSAndroid Build Coastguard Worker ixheaace_mps_lav7_2d lav7; 73*15dc779aSAndroid Build Coastguard Worker ixheaace_mps_lav9_2d lav9; 74*15dc779aSAndroid Build Coastguard Worker 75*15dc779aSAndroid Build Coastguard Worker } ixheaace_mps_huff_cld_tab_2d; 76*15dc779aSAndroid Build Coastguard Worker 77*15dc779aSAndroid Build Coastguard Worker typedef struct { 78*15dc779aSAndroid Build Coastguard Worker ixheaace_mps_lav1_2d lav1; 79*15dc779aSAndroid Build Coastguard Worker ixheaace_mps_lav3_2d lav3; 80*15dc779aSAndroid Build Coastguard Worker ixheaace_mps_lav5_2d lav5; 81*15dc779aSAndroid Build Coastguard Worker ixheaace_mps_lav7_2d lav7; 82*15dc779aSAndroid Build Coastguard Worker 83*15dc779aSAndroid Build Coastguard Worker } ixheaace_mps_huff_icc_tab_2d; 84*15dc779aSAndroid Build Coastguard Worker 85*15dc779aSAndroid Build Coastguard Worker typedef struct { 86*15dc779aSAndroid Build Coastguard Worker ixheaace_mps_huff_entry h1_d[2][31]; 87*15dc779aSAndroid Build Coastguard Worker ixheaace_mps_huff_cld_tab_2d h2_d[2][2]; 88*15dc779aSAndroid Build Coastguard Worker 89*15dc779aSAndroid Build Coastguard Worker } ixheaace_mps_huff_cld_table; 90*15dc779aSAndroid Build Coastguard Worker 91*15dc779aSAndroid Build Coastguard Worker typedef struct { 92*15dc779aSAndroid Build Coastguard Worker ixheaace_mps_huff_entry h1_d[2][8]; 93*15dc779aSAndroid Build Coastguard Worker ixheaace_mps_huff_icc_tab_2d h2_d[2][2]; 94*15dc779aSAndroid Build Coastguard Worker 95*15dc779aSAndroid Build Coastguard Worker } ixheaace_mps_huff_icc_table; 96*15dc779aSAndroid Build Coastguard Worker 97*15dc779aSAndroid Build Coastguard Worker typedef struct { 98*15dc779aSAndroid Build Coastguard Worker ixheaace_mps_huff_entry cld[31]; 99*15dc779aSAndroid Build Coastguard Worker ixheaace_mps_huff_entry icc[8]; 100*15dc779aSAndroid Build Coastguard Worker 101*15dc779aSAndroid Build Coastguard Worker } ixheaace_mps_huff_pt0_table; 102*15dc779aSAndroid Build Coastguard Worker 103*15dc779aSAndroid Build Coastguard Worker typedef struct { 104*15dc779aSAndroid Build Coastguard Worker UWORD32 value[31]; 105*15dc779aSAndroid Build Coastguard Worker UWORD8 length[31]; 106*15dc779aSAndroid Build Coastguard Worker } ixheaace_mps_sac_huff_cld_tab; 107*15dc779aSAndroid Build Coastguard Worker 108*15dc779aSAndroid Build Coastguard Worker typedef struct { 109*15dc779aSAndroid Build Coastguard Worker UWORD32 value[8]; 110*15dc779aSAndroid Build Coastguard Worker UWORD8 length[8]; 111*15dc779aSAndroid Build Coastguard Worker } ixheaace_mps_sac_huff_icc_tab; 112*15dc779aSAndroid Build Coastguard Worker 113*15dc779aSAndroid Build Coastguard Worker typedef struct { 114*15dc779aSAndroid Build Coastguard Worker UWORD32 value[26]; 115*15dc779aSAndroid Build Coastguard Worker UWORD8 length[26]; 116*15dc779aSAndroid Build Coastguard Worker } ixheaace_mps_sac_huff_cpc_tab; 117*15dc779aSAndroid Build Coastguard Worker 118*15dc779aSAndroid Build Coastguard Worker typedef struct { 119*15dc779aSAndroid Build Coastguard Worker ixheaace_mps_sac_huff_cld_tab huff_pt0; 120*15dc779aSAndroid Build Coastguard Worker ixheaace_mps_sac_huff_cld_tab huff_diff[2]; 121*15dc779aSAndroid Build Coastguard Worker 122*15dc779aSAndroid Build Coastguard Worker } ixheaace_mps_sac_huffman_cld_table; 123*15dc779aSAndroid Build Coastguard Worker 124*15dc779aSAndroid Build Coastguard Worker typedef struct { 125*15dc779aSAndroid Build Coastguard Worker ixheaace_mps_sac_huff_icc_tab huff_pt0; 126*15dc779aSAndroid Build Coastguard Worker ixheaace_mps_sac_huff_icc_tab huff_diff[2]; 127*15dc779aSAndroid Build Coastguard Worker 128*15dc779aSAndroid Build Coastguard Worker } ixheaace_mps_sac_huffman_icc_table; 129*15dc779aSAndroid Build Coastguard Worker 130*15dc779aSAndroid Build Coastguard Worker typedef struct { 131*15dc779aSAndroid Build Coastguard Worker ixheaace_mps_sac_huff_cpc_tab huff_pt0; 132*15dc779aSAndroid Build Coastguard Worker ixheaace_mps_sac_huff_cpc_tab huff_diff[2]; 133*15dc779aSAndroid Build Coastguard Worker 134*15dc779aSAndroid Build Coastguard Worker } ixheaace_mps_sac_huff_cpc_table; 135*15dc779aSAndroid Build Coastguard Worker 136*15dc779aSAndroid Build Coastguard Worker extern const ixheaace_mps_huff_cld_table ixheaace_mps_212_huff_cld_tab; 137*15dc779aSAndroid Build Coastguard Worker extern const ixheaace_mps_huff_icc_table ixheaace_mps_212_huff_icc_tab; 138*15dc779aSAndroid Build Coastguard Worker extern const ixheaace_mps_huff_pt0_table ixheaace_mps_212_huff_part_0_tab; 139*15dc779aSAndroid Build Coastguard Worker extern const ixheaace_mps_sac_huffman_cld_table ixheaace_mps_515_huff_cld_tab; 140*15dc779aSAndroid Build Coastguard Worker extern const ixheaace_mps_sac_huffman_icc_table ixheaace_mps_515_huff_icc_tab; 141*15dc779aSAndroid Build Coastguard Worker extern const ixheaace_mps_sac_huff_cpc_table ixheaace_mps_515_huff_cpc_tab; 142