summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/codecs/aacenc/inc/line_pe.h
blob: 038d5a3b3e8e971301ef96fe7a5d40305da71fd1 (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
/*
 ** Copyright 2003-2010, VisualOn, Inc.
 **
 ** 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.
 */
/*******************************************************************************
	File:		line_pe.h

	Content:	Perceptual entropie module structure and functions

*******************************************************************************/

#ifndef __LINE_PE_H
#define __LINE_PE_H


#include "psy_const.h" 
#include "interface.h" 


typedef struct {
   Word16 sfbLdEnergy[MAX_GROUPED_SFB];     /* 4*log(sfbEnergy)/log(2) */
   Word16 sfbNLines4[MAX_GROUPED_SFB];      /* 4*number of relevant lines in sfb */
   Word16 sfbPe[MAX_GROUPED_SFB];           /* pe for each sfb */
   Word16 sfbConstPart[MAX_GROUPED_SFB];    /* constant part for each sfb */
   Word16 sfbNActiveLines[MAX_GROUPED_SFB]; /* number of active lines in sfb */
   Word16 pe;                               /* sum of sfbPe */
   Word16 constPart;                        /* sum of sfbConstPart */
   Word16 nActiveLines;                     /* sum of sfbNActiveLines */
} PE_CHANNEL_DATA; /* size Word16: 303 */


typedef struct {
   PE_CHANNEL_DATA peChannelData[MAX_CHANNELS];
   Word16 pe;
   Word16 constPart;
   Word16 nActiveLines;
   Word16 offset;
   Word16 ahFlag[MAX_CHANNELS][MAX_GROUPED_SFB];
   Word32 thrExp[MAX_CHANNELS][MAX_GROUPED_SFB];
   Word32 sfbPeFactors[MAX_CHANNELS][MAX_GROUPED_SFB];
} PE_DATA; /* size Word16: 303 + 4 + 120 + 240 = 667 */




void prepareSfbPe(PE_DATA *peData,
                  PSY_OUT_CHANNEL  psyOutChannel[MAX_CHANNELS],
                  Word16 logSfbEnergy[MAX_CHANNELS][MAX_GROUPED_SFB],
                  Word16 sfbNRelevantLines[MAX_CHANNELS][MAX_GROUPED_SFB],
                  const Word16 nChannels,
                  const Word16 peOffset);





void calcSfbPe(PE_DATA *peData,
               PSY_OUT_CHANNEL psyOutChannel[MAX_CHANNELS],
               const Word16 nChannels);




#endif