⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sbr_struct.h

📁 audio-video-codecs.rar语音编解码器
💻 H
字号:
/*//////////////////////////////////////////////////////////////////////////////
//     This software is supplied under the terms of a license agreement or
//     nondisclosure agreement with Intel Corporation and may not be copied
//     or disclosed except in accordance with the terms of that agreement.
//          Copyright(c) 2005-2006 Intel Corporation. All Rights Reserved.
//
*/

#ifndef __SBR_STRUCT_H__
#define __SBR_STRUCT_H__

#include "ipps.h"
#include "sbr_settings.h"

typedef struct
{
  // time depend: only encoder
  Ipp32s nSendSBRHeader;
  Ipp32s cntSentSBRHeader;
  Ipp32s flag_SBRHeaderActive;

  // tuning
  Ipp32s bs_start_freq; /* enc: from tuning tabs */
  Ipp32s bs_stop_freq;  /* enc: from tuning tabs */

  Ipp32s bs_freq_scale; /* enc: from tuning tabs */
  Ipp32s bs_alter_scale;

  Ipp32s bs_xover_band;
  Ipp32s bs_noise_bands;/* enc: from tuning tabs */

  Ipp32s bs_amp_res;

  //extra
  Ipp32s bs_extra_1;
  Ipp32s bs_extra_2;

  Ipp32s bs_limiter_bands;
  Ipp32s bs_limiter_gains;
  Ipp32s bs_interpol_freq;
  Ipp32s bs_smoothing_mode;

  Ipp32s  Reset;

} sSBRHeader;

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

typedef struct
{
  /* freq tables */
  Ipp32s fMasterBandTab[MAX_SIZE_FREQ_TABS];
  Ipp32s fHiBandTab[MAX_SIZE_FREQ_TABS];
  Ipp32s fLoBandTab[MAX_SIZE_FREQ_TABS];
  Ipp32s fNoiseBandTab[MAX_SIZE_FREQ_TABS];
  /* decoder only */
  Ipp32s fLimBandTab[MAX_SIZE_FREQ_TABS];

  /* actual size of freq tables */
  Ipp32s nMasterBand;
  Ipp32s nHiBand; /* N_High */
  Ipp32s nLoBand; /* N_Low */
  Ipp32s nNoiseBand; /* NQ */
  Ipp32s nNoiseBandPrev; /* NQ_prev */
  /* decoder only */
  Ipp32s nLimBand;

  /* decoder only */
  Ipp32s numPatches;
  Ipp32s patchNumSubbandsTab[MAX_NUM_PATCHES];
  Ipp32s patchStartSubbandTab[MAX_NUM_PATCHES];

} sSBRFeqTabsState;

/********************************************************************/
/* sequence of this structure is important         */
/* for SBR encoder, see file <sbr_enc_frame_gen.c> */
/* *********************************************** */
typedef struct
{
  Ipp32s nEnv; /* bs_num_env = LE  */

  Ipp32s bordersEnv[MAX_NUM_ENV+1]; /* tE[] */

  Ipp32s freqRes[MAX_NUM_ENV];

  Ipp32s shortEnv; /* lA */

  Ipp32s nNoiseEnv; /* bs_num_noise = LQ */

  Ipp32s bordersNoise[MAX_NUM_NOISE_ENV+1]; /* tQ[] */

  /* prev data */
  Ipp32s nEnvPrev;

  Ipp32s freqResPrev[MAX_NUM_ENV];

  Ipp32s nNoiseEnvPrev;

} sSBRFrameInfoState;

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

typedef struct
{
  Ipp32s  bs_add_harmonic_flag;
  Ipp32s  bs_add_harmonic_flag_prev;
  Ipp32s  bs_add_harmonic[MAX_NUM_ENV_VAL];
  Ipp32s  bs_add_harmonic_prev[MAX_NUM_ENV_VAL];

  Ipp32s  bs_df_env[MAX_NUM_ENV];
  Ipp32s  bs_df_noise[MAX_NUM_ENV];

  Ipp32s vSizeEnv[MAX_NUM_ENV+1];
  Ipp16s bufEnvQuant[MAX_NUM_ENV*64];
  Ipp16s bufEnvQuantPrev[MAX_NUM_ENV_VAL];

  Ipp32s vSizeNoise[2+1];
  Ipp16s bufNoiseQuant[2*5];
  Ipp16s bufNoiseQuantPrev[MAX_NUM_ENV_VAL];

  /* encoder only */
  Ipp32s flagEnvUpDate;
  Ipp32s flagNoiseUpDate;

  Ipp32s env_dF_edge_incr_fac;

}sSBREnvDataState;

#endif             /* __SBR_STRUCT_H__ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -