summaryrefslogtreecommitdiffstats
path: root/libAACenc/src/band_nrg.h
blob: 23a207b844ea30bb4a65356adc6e6b18f8d29967 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
/******************************** MPEG Audio Encoder **************************

                       (C) Copyright Fraunhofer IIS (1999)
                               All Rights Reserved

    Please be advised that this software and/or program delivery is
    Confidential Information of Fraunhofer and subject to and covered by the

    Fraunhofer IIS Software Evaluation Agreement
    between Google Inc. and  Fraunhofer
    effective and in full force since March 1, 2012.

    You may use this software and/or program only under the terms and
    conditions described in the above mentioned Fraunhofer IIS Software
    Evaluation Agreement. Any other and/or further use requires a separate agreement.


   $Id$
   Author(s):   M. Werner
   Description: Band/Line energy calculation

   This software and/or program is protected by copyright law and international
   treaties. Any reproduction or distribution of this software and/or program,
   or any portion of it, may result in severe civil and criminal penalties, and
   will be prosecuted to the maximum extent possible under law.

******************************************************************************/
#ifndef _BAND_NRG_H
#define _BAND_NRG_H

#include "common_fix.h"


void
FDKaacEnc_CalcSfbMaxScaleSpec(
        const FIXP_DBL     *mdctSpectrum,
        const INT          *bandOffset,
        INT                *sfbMaxScaleSpec,
        const INT           numBands
        );

FIXP_DBL
FDKaacEnc_CheckBandEnergyOptim(
        const FIXP_DBL     *mdctSpectrum,
        INT                *sfbMaxScaleSpec,
        const INT          *bandOffset,
        const INT           numBands,
        FIXP_DBL           *bandEnergy,
        FIXP_DBL           *bandEnergyLdData,
        INT                 minSpecShift
        );

INT
FDKaacEnc_CalcBandEnergyOptimLong(
        const FIXP_DBL     *mdctSpectrum,
        INT                *sfbMaxScaleSpec,
        const INT          *bandOffset,
        const INT           numBands,
        FIXP_DBL           *bandEnergy,
        FIXP_DBL           *bandEnergyLdData
        );

void
FDKaacEnc_CalcBandEnergyOptimShort(
        const FIXP_DBL     *mdctSpectrum,
        INT                *sfbMaxScaleSpec,
        const INT          *bandOffset,
        const INT           numBands,
        FIXP_DBL           *bandEnergy
        );


void FDKaacEnc_CalcBandNrgMSOpt(
        const FIXP_DBL   *RESTRICT mdctSpectrumLeft,
        const FIXP_DBL   *RESTRICT mdctSpectrumRight,
        INT              *RESTRICT sfbMaxScaleSpecLeft,
        INT              *RESTRICT sfbMaxScaleSpecRight,
        const INT        *RESTRICT bandOffset,
        const INT         numBands,
        FIXP_DBL         *RESTRICT bandEnergyMid,
        FIXP_DBL         *RESTRICT bandEnergySide,
        INT               calcLdData,
        FIXP_DBL         *RESTRICT bandEnergyMidLdData,
        FIXP_DBL         *RESTRICT bandEnergySideLdData);

#endif