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

📄 struct.h

📁 高通的cmda语音压缩算法is96a源代码. 针对自己的dsp将最耗时的c改成汇编就几乎是商用代码了.
💻 H
字号:
/**********************************************************************/
/* QCELP Variable Rate Speech Codec - Simulation of TIA IS96-A, service */
/*     option one for TIA IS95, North American Wideband CDMA Digital  */
/*     Cellular Telephony.                                            */
/*                                                                    */
/* (C) Copyright 1993, QUALCOMM Incorporated                          */
/* QUALCOMM Incorporated                                              */
/* 10555 Sorrento Valley Road                                         */
/* San Diego, CA 92121                                                */
/*                                                                    */
/* Note:  Reproduction and use of this software for the design and    */
/*     development of North American Wideband CDMA Digital            */
/*     Cellular Telephony Standards is authorized by                  */
/*     QUALCOMM Incorporated.  QUALCOMM Incorporated does not         */
/*     authorize the use of this software for any other purpose.      */
/*                                                                    */
/*     The availability of this software does not provide any license */
/*     by implication, estoppel, or otherwise under any patent rights */
/*     of QUALCOMM Incorporated or others covering any use of the     */
/*     contents herein.                                               */
/*                                                                    */
/*     Any copies of this software or derivative works must include   */
/*     this and all other proprietary notices.                        */
/**********************************************************************/
/* struct.h - basic structures for celp coder   */

#include"filter.h"
#include"coder.h"

struct DECODER_MEM {
    INTTYPE    type;   /* To tell whether this is the Tx or Rx decoder */
    INTTYPE    err_cnt;
    INTTYPE    low_rate_cnt;
    float  lsp_pred[LPCORDER];
    INTTYPE    G_pred[GORDER];
    float  last_qlsp[LPCORDER];
    float  last_b;
    INTTYPE    last_lag;
    float  last_G;
    INTTYPE    seed;
    struct POLE_FILTER_1_TAP pitch_filt;
    struct POLE_FILTER       lpc_filt;

    /* wghting filter used only in encoder's decoder */
    struct POLE_ZERO_FILTER  wghting_filt;

    /* these params and filters used only in decoder's decoder */
    struct ZERO_FILTER       post_filt_z;
    struct POLE_FILTER       post_filt_p;
    struct POLE_ZERO_FILTER  bright_filt;
    float  agc_factor;

};

struct ENCODER_MEM {
    float  dc_block_mem;
    float  noise_est;
    INTTYPE    last_rate;
    INTTYPE    seed;
    struct POLE_FILTER       wght_syn_filt;
    struct ZERO_FILTER       form_res_filt;
    struct DECODER_MEM       dec;
};

struct LPCPARAMS {
    float  lsp[LPCORDER];
    INTTYPE    qcode_lsp[LPCORDER];
};

struct PITCHPARAMS {
    float  b;
    INTTYPE    lag;
    INTTYPE    qcode_b;
    INTTYPE    qcode_lag;
};

struct CBPARAMS {
    float  G;
    INTTYPE    i;
    INTTYPE    qcode_G;
    INTTYPE    qcode_i;
    INTTYPE    qcode_Gsign;
    INTTYPE    seed;
};

struct PACKET {
    INTTYPE    data[WORDS_PER_PACKET];
    INTTYPE    rate;
    INTTYPE    lsp[LPCORDER];
    INTTYPE    b[MAX_PITCH_SF], lag[MAX_PITCH_SF];
    INTTYPE    G[2*MAX_PITCH_SF], i[2*MAX_PITCH_SF];
    INTTYPE    sd;
    INTTYPE    pcb;
};

struct SIGNAL_DATA {
    INTTYPE    frame_num;
    INTTYPE    max_rate;
    INTTYPE    min_rate;
    struct SIGNAL_DATA *next_sig;
};

struct CONTROL {
    INTTYPE    num_frames;
    INTTYPE    encode_only;
    INTTYPE    decode_only;
    INTTYPE    max_rate;
    INTTYPE    min_rate;
    INTTYPE    pf_flag;
    INTTYPE    signal_file;
};






⌨️ 快捷键说明

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