summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/codecs/aacenc/inc/tns.h
diff options
context:
space:
mode:
Diffstat (limited to 'media/libstagefright/codecs/aacenc/inc/tns.h')
-rw-r--r--media/libstagefright/codecs/aacenc/inc/tns.h108
1 files changed, 108 insertions, 0 deletions
diff --git a/media/libstagefright/codecs/aacenc/inc/tns.h b/media/libstagefright/codecs/aacenc/inc/tns.h
new file mode 100644
index 0000000..9ffcce9
--- /dev/null
+++ b/media/libstagefright/codecs/aacenc/inc/tns.h
@@ -0,0 +1,108 @@
+/*
+ ** 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: tns.h
+
+ Content: TNS structures
+
+*******************************************************************************/
+
+#ifndef _TNS_H
+#define _TNS_H
+
+#include "typedef.h"
+#include "psy_const.h"
+
+
+
+#define TNS_MAX_ORDER 12
+#define TNS_MAX_ORDER_SHORT 5
+
+#define FILTER_DIRECTION 0
+
+typedef struct{ /*stuff that is tabulated dependent on bitrate etc. */
+ Word16 threshOn; /* min. prediction gain for using tns TABUL * 100*/
+ Word32 lpcStartFreq; /* lowest freq for lpc TABUL*/
+ Word32 lpcStopFreq; /* TABUL */
+ Word32 tnsTimeResolution;
+}TNS_CONFIG_TABULATED;
+
+
+typedef struct { /*assigned at InitTime*/
+ Word16 tnsActive;
+ Word16 tnsMaxSfb;
+
+ Word16 maxOrder; /* max. order of tns filter */
+ Word16 tnsStartFreq; /* lowest freq. for tns filtering */
+ Word16 coefRes;
+
+ TNS_CONFIG_TABULATED confTab;
+
+ Word32 acfWindow[TNS_MAX_ORDER+1];
+
+ Word16 tnsStartBand;
+ Word16 tnsStartLine;
+
+ Word16 tnsStopBand;
+ Word16 tnsStopLine;
+
+ Word16 lpcStartBand;
+ Word16 lpcStartLine;
+
+ Word16 lpcStopBand;
+ Word16 lpcStopLine;
+
+ Word16 tnsRatioPatchLowestCb;
+ Word16 tnsModifyBeginCb;
+
+ Word16 threshold; /* min. prediction gain for using tns TABUL * 100 */
+
+}TNS_CONFIG;
+
+
+typedef struct {
+ Word16 tnsActive;
+ Word32 parcor[TNS_MAX_ORDER];
+ Word16 predictionGain;
+} TNS_SUBBLOCK_INFO; /* Word16 size: 26 */
+
+typedef struct{
+ TNS_SUBBLOCK_INFO subBlockInfo[TRANS_FAC];
+} TNS_DATA_SHORT;
+
+typedef struct{
+ TNS_SUBBLOCK_INFO subBlockInfo;
+} TNS_DATA_LONG;
+
+typedef struct{
+ TNS_DATA_LONG tnsLong;
+ TNS_DATA_SHORT tnsShort;
+}TNS_DATA_RAW;
+
+typedef struct{
+ Word16 numOfSubblocks;
+ TNS_DATA_RAW dataRaw;
+}TNS_DATA; /* Word16 size: 1 + 8*26 + 26 = 235 */
+
+typedef struct{
+ Word16 tnsActive[TRANS_FAC];
+ Word16 coefRes[TRANS_FAC];
+ Word16 length[TRANS_FAC];
+ Word16 order[TRANS_FAC];
+ Word16 coef[TRANS_FAC*TNS_MAX_ORDER_SHORT];
+}TNS_INFO; /* Word16 size: 72 */
+
+#endif /* _TNS_H */