CI130X SDK API手册  2.2.0
本手册用于描述CI130X SDK各个组件和驱动API
结构体 | 宏定义 | 类型定义 | 枚举 | 函数
aacsbr.h 文件参考
#include "aaccommon.h"
#include "aacbitstream.h"

浏览源代码.

结构体

struct  _HuffInfo
 
struct  _SBRHeader
 
struct  _SBRGrid
 
struct  _SBRFreq
 
struct  _SBRChan
 
struct  _PSInfoSBR
 

宏定义

#define ASSERT(x)   /* do nothing */
 
#define MAX(a, b)   ((a) > (b) ? (a) : (b))
 
#define MIN(a, b)   ((a) < (b) ? (a) : (b))
 
#define NUM_TIME_SLOTS   16
 
#define SAMPLES_PER_SLOT   2 /* RATE in spec */
 
#define NUM_SAMPLE_RATES_SBR   9 /* downsampled (single-rate) mode unsupported, so only use Fs_sbr >= 16 kHz */
 
#define MAX_NUM_ENV   5
 
#define MAX_NUM_NOISE_FLOORS   2
 
#define MAX_NUM_NOISE_FLOOR_BANDS   5 /* max Nq, see 4.6.18.3.6 */
 
#define MAX_NUM_PATCHES   5
 
#define MAX_NUM_SMOOTH_COEFS   5
 
#define HF_GEN   8
 
#define HF_ADJ   2
 
#define MAX_QMF_BANDS   48 /* max QMF subbands covered by SBR (4.6.18.3.6) */
 
#define FBITS_IN_QMFA   14
 
#define FBITS_LOST_QMFA   (1 + 2 + 3 + 2 + 1) /* 1 from cTab, 2 in premul, 3 in FFT, 2 in postmul, 1 for implicit scaling by 2.0 */
 
#define FBITS_OUT_QMFA   (FBITS_IN_QMFA - FBITS_LOST_QMFA)
 
#define MIN_GBITS_IN_QMFS   2
 
#define FBITS_IN_QMFS   FBITS_OUT_QMFA
 
#define FBITS_LOST_DCT4_64   (2 + 3 + 2) /* 2 in premul, 3 in FFT, 2 in postmul */
 
#define FBITS_OUT_DQ_ENV   29 /* dequantized env scalefactors are Q(29 - envDataDequantScale) */
 
#define FBITS_OUT_DQ_NOISE   24 /* range of Q_orig = [2^-24, 2^6] */
 
#define NOISE_FLOOR_OFFSET   6
 
#define FBITS_GLIM_BOOST   24
 
#define FBITS_QLIM_BOOST   14
 
#define MAX_HUFF_BITS   20
 
#define NUM_QMF_DELAY_BUFS   10
 
#define DELAY_SAMPS_QMFA   (NUM_QMF_DELAY_BUFS * 32)
 
#define DELAY_SAMPS_QMFS   (NUM_QMF_DELAY_BUFS * 128)
 
#define FFT32C   STATNAME(FFT32C)
 
#define CalcFreqTables   STATNAME(CalcFreqTables)
 
#define AdjustHighFreq   STATNAME(AdjustHighFreq)
 
#define GenerateHighFreq   STATNAME(GenerateHighFreq)
 
#define DecodeSBREnvelope   STATNAME(DecodeSBREnvelope)
 
#define DecodeSBRNoise   STATNAME(DecodeSBRNoise)
 
#define UncoupleSBREnvelope   STATNAME(UncoupleSBREnvelope)
 
#define UncoupleSBRNoise   STATNAME(UncoupleSBRNoise)
 
#define InvRNormalized   STATNAME(InvRNormalized)
 
#define RatioPowInv   STATNAME(RatioPowInv)
 
#define SqrtFix   STATNAME(SqrtFix)
 
#define QMFAnalysis   STATNAME(QMFAnalysis)
 
#define QMFSynthesis   STATNAME(QMFSynthesis)
 
#define GetSampRateIdx   STATNAME(GetSampRateIdx)
 
#define UnpackSBRHeader   STATNAME(UnpackSBRHeader)
 
#define UnpackSBRSingleChannel   STATNAME(UnpackSBRSingleChannel)
 
#define UnpackSBRChannelPair   STATNAME(UnpackSBRChannelPair)
 
#define CVKernel1   STATNAME(CVKernel1)
 
#define CVKernel2   STATNAME(CVKernel2)
 
#define QMFAnalysisConv   STATNAME(QMFAnalysisConv)
 
#define QMFSynthesisConv   STATNAME(QMFSynthesisConv)
 
#define k0Tab   STATNAME(k0Tab)
 
#define k2Tab   STATNAME(k2Tab)
 
#define goalSBTab   STATNAME(goalSBTab)
 
#define huffTabSBR   STATNAME(huffTabSBR)
 
#define huffTabSBRInfo   STATNAME(huffTabSBRInfo)
 
#define log2Tab   STATNAME(log2Tab)
 
#define noiseTab   STATNAME(noiseTab)
 
#define cTabA   STATNAME(cTabA)
 
#define cTabS   STATNAME(cTabS)
 
#define CLIP_2N_SHIFT30(y, n)
 
#define CLIP_2N(y, n)
 

类型定义

typedef struct _HuffInfo HuffInfo
 
typedef struct _SBRHeader SBRHeader
 
typedef struct _SBRGrid SBRGrid
 
typedef struct _SBRFreq SBRFreq
 
typedef struct _SBRChan SBRChan
 
typedef struct _PSInfoSBR PSInfoSBR
 

枚举

enum  {
  SBR_GRID_FIXFIX = 0,
  SBR_GRID_FIXVAR = 1,
  SBR_GRID_VARFIX = 2,
  SBR_GRID_VARVAR = 3
}
 
enum  {
  HuffTabSBR_tEnv15 = 0,
  HuffTabSBR_fEnv15 = 1,
  HuffTabSBR_tEnv15b = 2,
  HuffTabSBR_fEnv15b = 3,
  HuffTabSBR_tEnv30 = 4,
  HuffTabSBR_fEnv30 = 5,
  HuffTabSBR_tEnv30b = 6,
  HuffTabSBR_fEnv30b = 7,
  HuffTabSBR_tNoise30 = 8,
  HuffTabSBR_fNoise30 = 5,
  HuffTabSBR_tNoise30b = 9,
  HuffTabSBR_fNoise30b = 7
}
 

函数

void STATNAME() FFT32C (int *x)
 
int STATNAME() CalcFreqTables (SBRHeader *sbrHdr, SBRFreq *sbrFreq, int sampRateIdx)
 
void STATNAME() AdjustHighFreq (PSInfoSBR *psi, SBRHeader *sbrHdr, SBRGrid *sbrGrid, SBRFreq *sbrFreq, SBRChan *sbrChan, int ch)
 
void STATNAME() GenerateHighFreq (PSInfoSBR *psi, SBRGrid *sbrGrid, SBRFreq *sbrFreq, SBRChan *sbrChan, int ch)
 
void STATNAME() DecodeSBREnvelope (BitStreamInfo *bsi, PSInfoSBR *psi, SBRGrid *sbrGrid, SBRFreq *sbrFreq, SBRChan *sbrChan, int ch)
 
void STATNAME() DecodeSBRNoise (BitStreamInfo *bsi, PSInfoSBR *psi, SBRGrid *sbrGrid, SBRFreq *sbrFreq, SBRChan *sbrChan, int ch)
 
void STATNAME() UncoupleSBREnvelope (PSInfoSBR *psi, SBRGrid *sbrGrid, SBRFreq *sbrFreq, SBRChan *sbrChanR)
 
void STATNAME() UncoupleSBRNoise (PSInfoSBR *psi, SBRGrid *sbrGrid, SBRFreq *sbrFreq, SBRChan *sbrChanR)
 
int STATNAME() InvRNormalized (int r)
 
int STATNAME() RatioPowInv (int a, int b, int c)
 
int STATNAME() SqrtFix (int x, int fBitsIn, int *fBitsOut)
 
int STATNAME() QMFAnalysis (int *inbuf, int *delay, int *XBuf, int fBitsIn, int *delayIdx, int qmfaBands)
 
void STATNAME() QMFSynthesis (int *inbuf, int *delay, int *delayIdx, int qmfsBands, short *outbuf, int nChans)
 
int STATNAME() GetSampRateIdx (int sampRate)
 
int STATNAME() UnpackSBRHeader (BitStreamInfo *bsi, SBRHeader *sbrHdr)
 
void STATNAME() UnpackSBRSingleChannel (BitStreamInfo *bsi, PSInfoSBR *psi, int chOut)
 
void STATNAME() UnpackSBRChannelPair (BitStreamInfo *bsi, PSInfoSBR *psi, int chOut)
 
const unsigned char STATNAME (k0Tab) [9][16]
 
const unsigned char STATNAME (k2Tab) [9][14]
 
const unsigned char STATNAME (goalSBTab) [9]
 
const HuffInfo STATNAME (huffTabSBRInfo) [10]
 
const signed short STATNAME (huffTabSBR) [604]
 
const int STATNAME (log2Tab) [65]
 
const int STATNAME (noiseTab) [512 *2]
 
const int STATNAME (cTabA) [165]
 
const int STATNAME (cTabS) [640]
 

结构体说明

◆ _HuffInfo

struct _HuffInfo
成员变量
unsigned char count[20]
int maxBits
int offset

◆ _SBRHeader

struct _SBRHeader
成员变量
unsigned char alterScale
unsigned char ampRes
int count
unsigned char crossOverBand
unsigned char freqScale
unsigned char hdrExtra1
unsigned char hdrExtra2
unsigned char interpFreq
unsigned char limiterBands
unsigned char limiterGains
unsigned char noiseBands
unsigned char resBitsHdr
unsigned char smoothMode
unsigned char startFreq
unsigned char stopFreq

◆ _SBRGrid

struct _SBRGrid
成员变量
unsigned char ampResFrame
unsigned char envTimeBorder[5+1]
unsigned char frameClass
unsigned char freqRes[5]
unsigned char freqResPrev
unsigned char noiseTimeBorder[2+1]
unsigned char numEnv
unsigned char numEnvPrev
unsigned char numNoiseFloors
unsigned char numNoiseFloorsPrev
unsigned char pointer

◆ _SBRFreq

struct _SBRFreq
成员变量
unsigned char freqHigh[48+1]
unsigned char freqLimiter[48/2+5]
unsigned char freqLow[48/2+1]
unsigned char freqMaster[48+1]
unsigned char freqNoise[5+1]
int kStart
int kStartPrev
int nHigh
int nLimiter
int nLow
int nMaster
int numNoiseFloorBands
unsigned char numPatches
int numQMFBands
int numQMFBandsPrev
unsigned char patchNumSubbands[5+1]
unsigned char patchStartSubband[5+1]

◆ _SBRChan

struct _SBRChan
成员变量
unsigned char addHarmonic[2][64]
unsigned char addHarmonicFlag[2]
int chirpFact[5]
unsigned char deltaFlagEnv[5]
unsigned char deltaFlagNoise[2]
signed char envDataQuant[5][48]
int gainNoiseIndex
int gbMask[2]
int gTemp[5][48]
unsigned char invfMode[2][5]
signed char laPrev
signed char noiseDataQuant[2][5]
int noiseTabIndex
int qTemp[5][48]
int reset
int sinIndex

◆ _PSInfoSBR

struct _PSInfoSBR
成员变量
int couplingFlag
int crcCheckWord
unsigned char dataExtra
int delayIdxQMFA[AAC_MAX_NCHANS]
int delayIdxQMFS[AAC_MAX_NCHANS]
int delayQMFA[AAC_MAX_NCHANS][(10 *32)]
int delayQMFS[AAC_MAX_NCHANS][(10 *128)]
int eCurr[48]
unsigned char eCurrExp[48]
unsigned char eCurrExpMax
int envBand
int envDataDequant[MAX_NCHANS_ELEM][5][48]
signed char envDataDequantScale[MAX_NCHANS_ELEM][5]
int eOMGainMax
unsigned char extendedDataPresent
int extendedDataSize
int frameCount
int gainMax
int gainMaxFBits
int gFiltLast[48]
int gLimBoost[48]
int gLimBuf[48]
int gLimFbits[48]
int highBand
signed char la
int noiseDataDequant[MAX_NCHANS_ELEM][2][5]
int noiseFloorBand
int qFiltLast[48]
int qmLimBoost[48]
int qmLimBuf[48]
int qp1Inv
int qqp1Inv
unsigned char resBitsData
int sampRateIdx
int sBand
SBRChan sbrChan[AAC_MAX_NCHANS]
SBRFreq sbrFreq[AAC_MAX_NCHANS]
SBRGrid sbrGrid[AAC_MAX_NCHANS]
SBRHeader sbrHdr[AAC_MAX_NCHANS]
int sMapped
int smBoost[48]
int smBuf[48]
int sumECurrGLim
int sumEOrigMapped
int sumQM
int sumSM
int XBuf[32+8][64][2]
int XBufDelay[AAC_MAX_NCHANS][8][64][2]

宏定义说明

◆ AdjustHighFreq

#define AdjustHighFreq   STATNAME(AdjustHighFreq)

◆ ASSERT

#define ASSERT (   x)    /* do nothing */

◆ CalcFreqTables

#define CalcFreqTables   STATNAME(CalcFreqTables)

◆ CLIP_2N

#define CLIP_2N (   y,
 
)
值:
{ \
int sign = (y) >> 31; \
if (sign != ((y) >> (n))) { \
(y) = sign ^ ((1 << (n)) - 1); \
} \
}

◆ CLIP_2N_SHIFT30

#define CLIP_2N_SHIFT30 (   y,
 
)
值:
{ \
int sign = (y) >> 31; \
if (sign != (y) >> (30 - (n))) { \
(y) = sign ^ (0x3fffffff); \
} else { \
(y) = (y) << (n); \
} \
}

◆ cTabA

#define cTabA   STATNAME(cTabA)

◆ cTabS

#define cTabS   STATNAME(cTabS)

◆ CVKernel1

#define CVKernel1   STATNAME(CVKernel1)

◆ CVKernel2

#define CVKernel2   STATNAME(CVKernel2)

◆ DecodeSBREnvelope

#define DecodeSBREnvelope   STATNAME(DecodeSBREnvelope)

◆ DecodeSBRNoise

#define DecodeSBRNoise   STATNAME(DecodeSBRNoise)

◆ DELAY_SAMPS_QMFA

#define DELAY_SAMPS_QMFA   (NUM_QMF_DELAY_BUFS * 32)

◆ DELAY_SAMPS_QMFS

#define DELAY_SAMPS_QMFS   (NUM_QMF_DELAY_BUFS * 128)

◆ FBITS_GLIM_BOOST

#define FBITS_GLIM_BOOST   24

◆ FBITS_IN_QMFA

#define FBITS_IN_QMFA   14

◆ FBITS_IN_QMFS

#define FBITS_IN_QMFS   FBITS_OUT_QMFA

◆ FBITS_LOST_DCT4_64

#define FBITS_LOST_DCT4_64   (2 + 3 + 2) /* 2 in premul, 3 in FFT, 2 in postmul */

◆ FBITS_LOST_QMFA

#define FBITS_LOST_QMFA   (1 + 2 + 3 + 2 + 1) /* 1 from cTab, 2 in premul, 3 in FFT, 2 in postmul, 1 for implicit scaling by 2.0 */

◆ FBITS_OUT_DQ_ENV

#define FBITS_OUT_DQ_ENV   29 /* dequantized env scalefactors are Q(29 - envDataDequantScale) */

◆ FBITS_OUT_DQ_NOISE

#define FBITS_OUT_DQ_NOISE   24 /* range of Q_orig = [2^-24, 2^6] */

◆ FBITS_OUT_QMFA

#define FBITS_OUT_QMFA   (FBITS_IN_QMFA - FBITS_LOST_QMFA)

◆ FBITS_QLIM_BOOST

#define FBITS_QLIM_BOOST   14

◆ FFT32C

#define FFT32C   STATNAME(FFT32C)

◆ GenerateHighFreq

#define GenerateHighFreq   STATNAME(GenerateHighFreq)

◆ GetSampRateIdx

#define GetSampRateIdx   STATNAME(GetSampRateIdx)

◆ goalSBTab

#define goalSBTab   STATNAME(goalSBTab)

◆ HF_ADJ

#define HF_ADJ   2

◆ HF_GEN

#define HF_GEN   8

◆ huffTabSBR

#define huffTabSBR   STATNAME(huffTabSBR)

◆ huffTabSBRInfo

#define huffTabSBRInfo   STATNAME(huffTabSBRInfo)

◆ InvRNormalized

#define InvRNormalized   STATNAME(InvRNormalized)

◆ k0Tab

#define k0Tab   STATNAME(k0Tab)

◆ k2Tab

#define k2Tab   STATNAME(k2Tab)

◆ log2Tab

#define log2Tab   STATNAME(log2Tab)

◆ MAX

#define MAX (   a,
 
)    ((a) > (b) ? (a) : (b))

◆ MAX_HUFF_BITS

#define MAX_HUFF_BITS   20

◆ MAX_NUM_ENV

#define MAX_NUM_ENV   5

◆ MAX_NUM_NOISE_FLOOR_BANDS

#define MAX_NUM_NOISE_FLOOR_BANDS   5 /* max Nq, see 4.6.18.3.6 */

◆ MAX_NUM_NOISE_FLOORS

#define MAX_NUM_NOISE_FLOORS   2

◆ MAX_NUM_PATCHES

#define MAX_NUM_PATCHES   5

◆ MAX_NUM_SMOOTH_COEFS

#define MAX_NUM_SMOOTH_COEFS   5

◆ MAX_QMF_BANDS

#define MAX_QMF_BANDS   48 /* max QMF subbands covered by SBR (4.6.18.3.6) */

◆ MIN

#define MIN (   a,
 
)    ((a) < (b) ? (a) : (b))

◆ MIN_GBITS_IN_QMFS

#define MIN_GBITS_IN_QMFS   2

◆ NOISE_FLOOR_OFFSET

#define NOISE_FLOOR_OFFSET   6

◆ noiseTab

#define noiseTab   STATNAME(noiseTab)

◆ NUM_QMF_DELAY_BUFS

#define NUM_QMF_DELAY_BUFS   10

◆ NUM_SAMPLE_RATES_SBR

#define NUM_SAMPLE_RATES_SBR   9 /* downsampled (single-rate) mode unsupported, so only use Fs_sbr >= 16 kHz */

◆ NUM_TIME_SLOTS

#define NUM_TIME_SLOTS   16

◆ QMFAnalysis

#define QMFAnalysis   STATNAME(QMFAnalysis)

◆ QMFAnalysisConv

#define QMFAnalysisConv   STATNAME(QMFAnalysisConv)

◆ QMFSynthesis

#define QMFSynthesis   STATNAME(QMFSynthesis)

◆ QMFSynthesisConv

#define QMFSynthesisConv   STATNAME(QMFSynthesisConv)

◆ RatioPowInv

#define RatioPowInv   STATNAME(RatioPowInv)

◆ SAMPLES_PER_SLOT

#define SAMPLES_PER_SLOT   2 /* RATE in spec */

◆ SqrtFix

#define SqrtFix   STATNAME(SqrtFix)

◆ UncoupleSBREnvelope

#define UncoupleSBREnvelope   STATNAME(UncoupleSBREnvelope)

◆ UncoupleSBRNoise

#define UncoupleSBRNoise   STATNAME(UncoupleSBRNoise)

◆ UnpackSBRChannelPair

#define UnpackSBRChannelPair   STATNAME(UnpackSBRChannelPair)

◆ UnpackSBRHeader

#define UnpackSBRHeader   STATNAME(UnpackSBRHeader)

◆ UnpackSBRSingleChannel

#define UnpackSBRSingleChannel   STATNAME(UnpackSBRSingleChannel)

类型定义说明

◆ HuffInfo

typedef struct _HuffInfo HuffInfo

◆ PSInfoSBR

typedef struct _PSInfoSBR PSInfoSBR

◆ SBRChan

typedef struct _SBRChan SBRChan

◆ SBRFreq

typedef struct _SBRFreq SBRFreq

◆ SBRGrid

typedef struct _SBRGrid SBRGrid

◆ SBRHeader

typedef struct _SBRHeader SBRHeader

枚举类型说明

◆ anonymous enum

anonymous enum
枚举值
HuffTabSBR_tEnv15 
HuffTabSBR_fEnv15 
HuffTabSBR_tEnv15b 
HuffTabSBR_fEnv15b 
HuffTabSBR_tEnv30 
HuffTabSBR_fEnv30 
HuffTabSBR_tEnv30b 
HuffTabSBR_fEnv30b 
HuffTabSBR_tNoise30 
HuffTabSBR_fNoise30 
HuffTabSBR_tNoise30b 
HuffTabSBR_fNoise30b 

◆ anonymous enum

anonymous enum
枚举值
SBR_GRID_FIXFIX 
SBR_GRID_FIXVAR 
SBR_GRID_VARFIX 
SBR_GRID_VARVAR 

函数说明

◆ AdjustHighFreq()

void STATNAME() AdjustHighFreq ( PSInfoSBR psi,
SBRHeader sbrHdr,
SBRGrid sbrGrid,
SBRFreq sbrFreq,
SBRChan sbrChan,
int  ch 
)

◆ CalcFreqTables()

int STATNAME() CalcFreqTables ( SBRHeader sbrHdr,
SBRFreq sbrFreq,
int  sampRateIdx 
)

◆ DecodeSBREnvelope()

void STATNAME() DecodeSBREnvelope ( BitStreamInfo bsi,
PSInfoSBR psi,
SBRGrid sbrGrid,
SBRFreq sbrFreq,
SBRChan sbrChan,
int  ch 
)

◆ DecodeSBRNoise()

void STATNAME() DecodeSBRNoise ( BitStreamInfo bsi,
PSInfoSBR psi,
SBRGrid sbrGrid,
SBRFreq sbrFreq,
SBRChan sbrChan,
int  ch 
)

◆ FFT32C()

void STATNAME() FFT32C ( int *  x)

◆ GenerateHighFreq()

void STATNAME() GenerateHighFreq ( PSInfoSBR psi,
SBRGrid sbrGrid,
SBRFreq sbrFreq,
SBRChan sbrChan,
int  ch 
)

◆ GetSampRateIdx()

int STATNAME() GetSampRateIdx ( int  sampRate)

◆ InvRNormalized()

int STATNAME() InvRNormalized ( int  r)

◆ QMFAnalysis()

int STATNAME() QMFAnalysis ( int *  inbuf,
int *  delay,
int *  XBuf,
int  fBitsIn,
int *  delayIdx,
int  qmfaBands 
)

◆ QMFSynthesis()

void STATNAME() QMFSynthesis ( int *  inbuf,
int *  delay,
int *  delayIdx,
int  qmfsBands,
short *  outbuf,
int  nChans 
)

◆ RatioPowInv()

int STATNAME() RatioPowInv ( int  a,
int  b,
int  c 
)

◆ SqrtFix()

int STATNAME() SqrtFix ( int  x,
int  fBitsIn,
int *  fBitsOut 
)

◆ STATNAME() [1/9]

const unsigned char STATNAME ( k0Tab  )

◆ STATNAME() [2/9]

const unsigned char STATNAME ( k2Tab  )

◆ STATNAME() [3/9]

const unsigned char STATNAME ( goalSBTab  )

◆ STATNAME() [4/9]

const HuffInfo STATNAME ( huffTabSBRInfo  )

◆ STATNAME() [5/9]

const signed short STATNAME ( huffTabSBR  )

◆ STATNAME() [6/9]

const int STATNAME ( log2Tab  )

◆ STATNAME() [7/9]

const int STATNAME ( noiseTab  )

◆ STATNAME() [8/9]

const int STATNAME ( cTabA  )

◆ STATNAME() [9/9]

const int STATNAME ( cTabS  )

◆ UncoupleSBREnvelope()

void STATNAME() UncoupleSBREnvelope ( PSInfoSBR psi,
SBRGrid sbrGrid,
SBRFreq sbrFreq,
SBRChan sbrChanR 
)

◆ UncoupleSBRNoise()

void STATNAME() UncoupleSBRNoise ( PSInfoSBR psi,
SBRGrid sbrGrid,
SBRFreq sbrFreq,
SBRChan sbrChanR 
)

◆ UnpackSBRChannelPair()

void STATNAME() UnpackSBRChannelPair ( BitStreamInfo bsi,
PSInfoSBR psi,
int  chOut 
)

◆ UnpackSBRHeader()

int STATNAME() UnpackSBRHeader ( BitStreamInfo bsi,
SBRHeader sbrHdr 
)

◆ UnpackSBRSingleChannel()

void STATNAME() UnpackSBRSingleChannel ( BitStreamInfo bsi,
PSInfoSBR psi,
int  chOut 
)