| /*
|
| ** 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: psy_data.h
|
|
|
| Content: Psychoacoustic data and structures
|
|
|
| *******************************************************************************/ |
| |
| #ifndef _PSY_DATA_H |
| #define _PSY_DATA_H |
| |
| #include "block_switch.h" |
| #include "tns.h" |
| |
| /* |
| the structs can be implemented as unions |
| */ |
| |
| typedef struct{ |
| Word32 sfbLong[MAX_GROUPED_SFB]; |
| Word32 sfbShort[TRANS_FAC][MAX_SFB_SHORT]; |
| }SFB_THRESHOLD; /* Word16 size: 260 */ |
| |
| typedef struct{ |
| Word32 sfbLong[MAX_GROUPED_SFB]; |
| Word32 sfbShort[TRANS_FAC][MAX_SFB_SHORT]; |
| }SFB_ENERGY; /* Word16 size: 260 */ |
| |
| typedef struct{ |
| Word32 sfbLong; |
| Word32 sfbShort[TRANS_FAC]; |
| }SFB_ENERGY_SUM; /* Word16 size: 18 */ |
| |
| |
| typedef struct{ |
| BLOCK_SWITCHING_CONTROL blockSwitchingControl; /* block switching */ |
| Word16 *mdctDelayBuffer; /* mdct delay buffer [BLOCK_SWITCHING_OFFSET]*/ |
| Word32 sfbThresholdnm1[MAX_SFB]; /* PreEchoControl */ |
| Word16 mdctScalenm1; /* scale of last block's mdct (PreEchoControl) */ |
| |
| SFB_THRESHOLD sfbThreshold; /* adapt */ |
| SFB_ENERGY sfbEnergy; /* sfb Energy */ |
| SFB_ENERGY sfbEnergyMS; |
| SFB_ENERGY_SUM sfbEnergySum; |
| SFB_ENERGY_SUM sfbEnergySumMS; |
| SFB_ENERGY sfbSpreadedEnergy; |
| |
| Word32 *mdctSpectrum; /* mdct spectrum [FRAME_LEN_LONG] */ |
| Word16 mdctScale; /* scale of mdct */ |
| }PSY_DATA; /* Word16 size: 4 + 87 + 102 + 360 + 360 + 360 + 18 + 18 + 360 = 1669 */ |
| |
| #endif /* _PSY_DATA_H */ |