/******************************************************************************
* *
* Copyright (C) 2018 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at:
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*****************************************************************************
* Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore
*/
#include <limits.h>
#include <ixheaacd_type_def.h>
#include "ixheaacd_interface.h"
#include "ixheaacd_bitbuffer.h"
#include "ixheaacd_info.h"
ia_huff_code_word_struct ixheaacd_huff_book_scl[] = {
{0, 18, 262120}, {1, 18, 262118}, {2, 18, 262119}, {3, 18, 262117},
{4, 19, 524277}, {5, 19, 524273}, {6, 19, 524269}, {7, 19, 524278},
{8, 19, 524270}, {9, 19, 524271}, {10, 19, 524272}, {11, 19, 524284},
{12, 19, 524285}, {13, 19, 524287}, {14, 19, 524286}, {15, 19, 524279},
{16, 19, 524280}, {17, 19, 524283}, {18, 19, 524281}, {19, 18, 262116},
{20, 19, 524282}, {21, 18, 262115}, {22, 17, 131055}, {23, 17, 131056},
{24, 16, 65525}, {25, 17, 131054}, {26, 16, 65522}, {27, 16, 65523},
{28, 16, 65524}, {29, 16, 65521}, {30, 15, 32758}, {31, 15, 32759},
{32, 14, 16377}, {33, 14, 16373}, {34, 14, 16375}, {35, 14, 16371},
{36, 14, 16374}, {37, 14, 16370}, {38, 13, 8183}, {39, 13, 8181},
{40, 12, 4089}, {41, 12, 4087}, {42, 12, 4086}, {43, 11, 2041},
{44, 12, 4084}, {45, 11, 2040}, {46, 10, 1017}, {47, 10, 1015},
{48, 10, 1013}, {49, 9, 504}, {50, 9, 503}, {51, 8, 250},
{52, 8, 248}, {53, 8, 246}, {54, 7, 121}, {55, 6, 58},
{56, 6, 56}, {57, 5, 26}, {58, 4, 11}, {59, 3, 4},
{60, 1, 0}, {61, 4, 10}, {62, 4, 12}, {63, 5, 27},
{64, 6, 57}, {65, 6, 59}, {66, 7, 120}, {67, 7, 122},
{68, 8, 247}, {69, 8, 249}, {70, 9, 502}, {71, 9, 505},
{72, 10, 1012}, {73, 10, 1014}, {74, 10, 1016}, {75, 11, 2037},
{76, 11, 2036}, {77, 11, 2038}, {78, 11, 2039}, {79, 12, 4085},
{80, 12, 4088}, {81, 13, 8180}, {82, 13, 8182}, {83, 13, 8184},
{84, 14, 16376}, {85, 14, 16372}, {86, 16, 65520}, {87, 15, 32756},
{88, 16, 65526}, {89, 15, 32757}, {90, 18, 262114}, {91, 19, 524249},
{92, 19, 524250}, {93, 19, 524251}, {94, 19, 524252}, {95, 19, 524253},
{96, 19, 524254}, {97, 19, 524248}, {98, 19, 524242}, {99, 19, 524243},
{100, 19, 524244}, {101, 19, 524245}, {102, 19, 524246}, {103, 19, 524274},
{104, 19, 524255}, {105, 19, 524263}, {106, 19, 524264}, {107, 19, 524265},
{108, 19, 524266}, {109, 19, 524267}, {110, 19, 524262}, {111, 19, 524256},
{112, 19, 524257}, {113, 19, 524258}, {114, 19, 524259}, {115, 19, 524260},
{116, 19, 524261}, {117, 19, 524247}, {118, 19, 524268}, {119, 19, 524276},
{120, 19, 524275}};
WORD32 ixheaacd_book_scl_index[33] = {
0x00000000, 0x10100004, 0x2040000c, 0x00a0003b, 0x30d0007a, 0x412000fa,
0x516001f9, 0x61c003f9, 0x722007f9, 0x82800ff9, 0x92d01ff8, 0xa3503ff9,
0xb400fff6, 0xc431fff0, 0x0687ffef, 0x0707fff7, 0x0747fffb, 0x0767fffd,
0x0777fffe, 0x0787ffff, 0x0030000b, 0x0060001b, 0x00f000f7, 0x014001f7,
0x01a003f7, 0x020007f7, 0x02600ff7, 0x02c01ff7, 0x03303ff7, 0x03907ff7,
0x0421ffef, 0x14a3ffe8, 0x0587ffdf};
WORD16 ixheaacd_book_scl_code_book[122] = {
0x0013, 0x0781, 0x0763, 0x07a4, 0x0744, 0x07c4, 0x0725, 0x07e5, 0x0706,
0x0806, 0x06e6, 0x0826, 0x0847, 0x06c7, 0x0867, 0x06a8, 0x0888, 0x0688,
0x08a8, 0x0668, 0x08c9, 0x0649, 0x0629, 0x08e9, 0x090a, 0x060a, 0x092a,
0x05ea, 0x094a, 0x05ca, 0x098b, 0x096b, 0x09ab, 0x09cb, 0x05ab, 0x056b,
0x058c, 0x09ec, 0x054c, 0x052c, 0x0a0c, 0x050c, 0x0a2d, 0x04ed, 0x0a4d,
0x04cd, 0x0a6d, 0x04ae, 0x046e, 0x0aae, 0x042e, 0x048e, 0x044e, 0x0a8e,
0x040e, 0x0aef, 0x0b2f, 0x03cf, 0x03ef, 0x0ad0, 0x03b0, 0x0350, 0x0370,
0x0390, 0x0310, 0x0b10, 0x0331, 0x02d1, 0x02f1, 0x0b52, 0x02b2, 0x0272,
0x0072, 0x0032, 0x0052, 0x0012, 0x0c53, 0x0c73, 0x0c93, 0x0cb3, 0x0cd3,
0x0eb3, 0x0c33, 0x0b73, 0x0b93, 0x0bb3, 0x0bd3, 0x0bf3, 0x0c13, 0x0d13,
0x0df3, 0x0e13, 0x0e33, 0x0e53, 0x0e73, 0x0e93, 0x0dd3, 0x0d33, 0x0d53,
0x0d73, 0x0d93, 0x0db3, 0x0ed3, 0x00d3, 0x0113, 0x0133, 0x0153, 0x00b3,
0x0cf3, 0x0f13, 0x0ef3, 0x0093, 0x00f3, 0x01f3, 0x0213, 0x0253, 0x0293,
0x0233, 0x0173, 0x0193, 0x01d3, 0x01b3};