16cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK/* -----------------------------------------------------------------------------
26cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKSoftware License for The Fraunhofer FDK AAC Codec Library for Android
36cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
46cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK© Copyright  1995 - 2018 Fraunhofer-Gesellschaft zur Förderung der angewandten
56cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKForschung e.V. All rights reserved.
66cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
76cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK 1.    INTRODUCTION
86cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKThe Fraunhofer FDK AAC Codec Library for Android ("FDK AAC Codec") is software
96cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKthat implements the MPEG Advanced Audio Coding ("AAC") encoding and decoding
106cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKscheme for digital audio. This FDK AAC Codec software is intended to be used on
116cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKa wide variety of Android devices.
126cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
136cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKAAC's HE-AAC and HE-AAC v2 versions are regarded as today's most efficient
146cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKgeneral perceptual audio codecs. AAC-ELD is considered the best-performing
156cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKfull-bandwidth communications codec by independent studies and is widely
166cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKdeployed. AAC has been standardized by ISO and IEC as part of the MPEG
176cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKspecifications.
186cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
196cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKPatent licenses for necessary patent claims for the FDK AAC Codec (including
206cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKthose of Fraunhofer) may be obtained through Via Licensing
216cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK(www.vialicensing.com) or through the respective patent owners individually for
226cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKthe purpose of encoding or decoding bit streams in products that are compliant
236cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKwith the ISO/IEC MPEG audio standards. Please note that most manufacturers of
246cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKAndroid devices already license these patent claims through Via Licensing or
256cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKdirectly from the patent owners, and therefore FDK AAC Codec software may
266cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKalready be covered under those patent licenses when it is used for those
276cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKlicensed purposes only.
286cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
296cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKCommercially-licensed AAC software libraries, including floating-point versions
306cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKwith enhanced sound quality, are also available from Fraunhofer. Users are
316cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKencouraged to check the Fraunhofer website for additional applications
326cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKinformation and documentation.
336cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
346cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK2.    COPYRIGHT LICENSE
356cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
366cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKRedistribution and use in source and binary forms, with or without modification,
376cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKare permitted without payment of copyright license fees provided that you
386cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKsatisfy the following conditions:
396cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
406cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKYou must retain the complete text of this software license in redistributions of
416cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKthe FDK AAC Codec or your modifications thereto in source code form.
426cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
436cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKYou must retain the complete text of this software license in the documentation
446cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKand/or other materials provided with redistributions of the FDK AAC Codec or
456cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKyour modifications thereto in binary form. You must make available free of
466cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKcharge copies of the complete source code of the FDK AAC Codec and your
476cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKmodifications thereto to recipients of copies in binary form.
486cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
496cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKThe name of Fraunhofer may not be used to endorse or promote products derived
506cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKfrom this library without prior written permission.
516cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
526cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKYou may not charge copyright license fees for anyone to use, copy or distribute
536cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKthe FDK AAC Codec software or your modifications thereto.
546cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
556cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKYour modified versions of the FDK AAC Codec must carry prominent notices stating
566cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKthat you changed the software and the date of any change. For modified versions
576cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKof the FDK AAC Codec, the term "Fraunhofer FDK AAC Codec Library for Android"
586cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKmust be replaced by the term "Third-Party Modified Version of the Fraunhofer FDK
596cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKAAC Codec Library for Android."
606cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
616cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK3.    NO PATENT LICENSE
626cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
636cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKNO EXPRESS OR IMPLIED LICENSES TO ANY PATENT CLAIMS, including without
646cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKlimitation the patents of Fraunhofer, ARE GRANTED BY THIS SOFTWARE LICENSE.
656cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKFraunhofer provides no warranty of patent non-infringement with respect to this
666cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKsoftware.
676cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
686cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKYou may use this FDK AAC Codec software or modifications thereto only for
696cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKpurposes that are authorized by appropriate patent licenses.
706cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
716cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK4.    DISCLAIMER
726cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
736cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKThis FDK AAC Codec software is provided by Fraunhofer on behalf of the copyright
746cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKholders and contributors "AS IS" and WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES,
756cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKincluding but not limited to the implied warranties of merchantability and
766cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKfitness for a particular purpose. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
776cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKCONTRIBUTORS BE LIABLE for any direct, indirect, incidental, special, exemplary,
786cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKor consequential damages, including but not limited to procurement of substitute
796cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKgoods or services; loss of use, data, or profits, or business interruption,
806cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKhowever caused and on any theory of liability, whether in contract, strict
816cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKliability, or tort (including negligence), arising in any way out of the use of
826cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKthis software, even if advised of the possibility of such damage.
836cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
846cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK5.    CONTACT INFORMATION
856cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
866cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKFraunhofer Institute for Integrated Circuits IIS
876cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKAttention: Audio and Multimedia Departments - FDK AAC LL
886cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKAm Wolfsmantel 33
896cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK91058 Erlangen, Germany
906cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
916cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKwww.iis.fraunhofer.de/amm
926cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKamm-info@iis.fraunhofer.de
936cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK----------------------------------------------------------------------------- */
946cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
956cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK/******************* Library for basic calculation routines ********************
966cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
976cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK   Author(s):   Omer Osman
986cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
996cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK   Description: MPEG-D SAC/USAC/SAOC Huffman Part0 Tables
1006cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
1016cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK*******************************************************************************/
1026cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
1036cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK#ifndef HUFF_NODES_H
1046cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK#define HUFF_NODES_H
1056cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
1066cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK#include "genericStds.h"
1076cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
1086cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKtypedef struct {
1096cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK  SHORT nodeTab[39][2];
1106cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
1116cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK} HUFF_RES_NODES;
1126cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
1136cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK/* 1D Nodes */
1146cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKtypedef struct {
1156cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK  SHORT nodeTab[30][2];
1166cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
1176cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK} HUFF_CLD_NOD_1D;
1186cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
1196cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKtypedef struct {
1206cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK  SHORT nodeTab[7][2];
1216cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
1226cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK} HUFF_ICC_NOD_1D;
1236cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
1246cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKtypedef struct {
1256cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK  SHORT nodeTab[50][2];
1266cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
1276cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK} HUFF_CPC_NOD_1D;
1286cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
1296cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKtypedef struct {
1306cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK  SHORT nodeTab[15][2];
1316cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
1326cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK} HUFF_OLD_NOD_1D;
1336cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
1346cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKtypedef struct {
1356cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK  SHORT nodeTab[63][2];
1366cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
1376cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK} HUFF_NRG_NOD_1D;
1386cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
1396cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK/* 2D Nodes */
1406cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKtypedef struct {
1416cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK  SHORT lav3[15][2];
1426cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK  SHORT lav5[35][2];
1436cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK  SHORT lav7[63][2];
1446cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK  SHORT lav9[99][2];
1456cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
1466cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK} HUFF_CLD_NOD_2D;
1476cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
1486cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKtypedef struct {
1496cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK  SHORT lav1[3][2];
1506cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK  SHORT lav3[15][2];
1516cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK  SHORT lav5[35][2];
1526cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK  SHORT lav7[63][2];
1536cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
1546cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK} HUFF_ICC_NOD_2D;
1556cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
1566cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKtypedef struct {
1576cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK  SHORT lav3[15][2];
1586cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK  SHORT lav6[48][2];
1596cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK  SHORT lav9[99][2];
1606cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK  SHORT lav12[168][2];
1616cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
1626cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK} HUFF_OLD_NOD_2D;
1636cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
1646cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKtypedef struct {
1656cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK  SHORT lav3[15][2];
1666cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK  SHORT lav5[35][2];
1676cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK  SHORT lav7[63][2];
1686cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK  SHORT lav9[99][2];
1696cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
1706cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK} HUFF_NRG_NOD_2D_df;
1716cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
1726cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKtypedef struct {
1736cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK  SHORT lav3[15][2];
1746cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK  SHORT lav6[48][2];
1756cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK  SHORT lav9[99][2];
1766cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK  SHORT lav12[168][2];
1776cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
1786cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK} HUFF_NRG_NOD_2D_dt;
1796cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
1806cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKtypedef struct {
1816cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK  HUFF_NRG_NOD_2D_df df[2];
1826cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK  HUFF_NRG_NOD_2D_dt dt[2];
1836cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK  HUFF_NRG_NOD_2D_df dp[2];
1846cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
1856cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK} HUFF_NRG_NOD_2D;
1866cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
1876cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK/* Complete bs Parameter Nodes */
1886cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKtypedef struct {
1896cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK  const HUFF_CLD_NOD_1D *h1D[3];
1906cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK  const HUFF_CLD_NOD_2D *h2D[3][2];
1916cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
1926cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK} HUFF_CLD_NODES;
1936cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
1946cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKtypedef struct {
1956cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK  const HUFF_ICC_NOD_1D *h1D[3];
1966cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK  const HUFF_ICC_NOD_2D *h2D[3][2];
1976cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
1986cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK} HUFF_ICC_NODES;
1996cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
2006cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKtypedef struct {
2016cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK  const HUFF_OLD_NOD_1D *h1D[3];
2026cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK  const HUFF_OLD_NOD_2D *h2D[3][2];
2036cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
2046cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK} HUFF_OLD_NODES;
2056cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
2066cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKtypedef struct {
2076cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK  const HUFF_NRG_NOD_1D *h1D[3];
2086cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK  const HUFF_NRG_NOD_2D *h2D;
2096cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
2106cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK} HUFF_NRG_NODES;
2116cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
2126cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK/* parameter instance */
2136cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKtypedef struct {
2146cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK  SHORT cld[30][2];
2156cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK  SHORT icc[7][2];
2166cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK  SHORT ipd[7][2];
2176cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK  SHORT old[15][2];
2186cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK  SHORT nrg[63][2];
2196cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK} HUFF_PT0_NODES;
2206cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
2216cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKtypedef struct {
2226cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK  SHORT nodeTab[3][2];
2236cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
2246cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK} HUFF_LAV_NODES;
2256cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
2266cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK/* USAC specific */
2276cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKtypedef struct {
2286cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK  SHORT nodeTab[7][2];
2296cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
2306cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK} HUFF_IPD_NOD_1D;
2316cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
2326cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKtypedef struct {
2336cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK  SHORT lav1[3][2];
2346cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK  SHORT lav3[15][2];
2356cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK  SHORT lav5[35][2];
2366cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK  SHORT lav7[63][2];
2376cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
2386cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK} HUFF_IPD_NOD_2D;
2396cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
2406cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKtypedef struct {
2416cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK  HUFF_IPD_NOD_1D h1D[3];
2426cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK  HUFF_IPD_NOD_2D h2D[3][2];
2436cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
2446cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK} HUFF_IPD_NODES;
2456cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
2466cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK/* non-lossy coding decoder */
2476cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKextern const HUFF_PT0_NODES FDK_huffPart0Nodes;
2486cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKextern const HUFF_LAV_NODES FDK_huffLavIdxNodes;
2496cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
2506cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKextern const HUFF_ICC_NODES FDK_huffICCNodes;
2516cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKextern const HUFF_CLD_NODES FDK_huffCLDNodes;
2526cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKextern const HUFF_RES_NODES FDK_huffReshapeNodes;
2536cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
2546cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKextern const HUFF_OLD_NODES huffOLDNodes;
2556cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
2566cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDKextern const HUFF_IPD_NODES FDK_huffIPDNodes;
2576cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK
2586cfabd35363c3ef5e3b209b867169a500b3ccc3cFraunhofer IIS FDK#endif /* HUFF_NODES_H */
259