📄 encoder.h
字号:
extern void II_scale_factor_calc1 (double (*sb_sample)[3][12][SBLIMIT], unsigned int (*scalar)[3][SBLIMIT],
int sblimit, int dim);
extern void pick_scale (unsigned int (*scalar)[3][SBLIMIT], frame_params *fr_ps, double (*max_sc)[SBLIMIT],
int cha_sw, int aug_cha_sw, int aiff);
extern void put_scale (unsigned int (*scalar)[3][SBLIMIT], frame_params *fr_ps, double (*max_sc)[SBLIMIT]);
extern void II_transmission_pattern (unsigned int (*scalar)[3][SBLIMIT], unsigned int (*scfsi)[SBLIMIT],
frame_params *fr_ps);
extern void II_encode_scale (unsigned int (*bit_alloc)[SBLIMIT],
unsigned int (*scfsi)[SBLIMIT],
unsigned int (*scalar)[3][SBLIMIT],
unsigned int lfe_alloc,
unsigned int lfe_scalar,
frame_params *fr_ps,
Bit_stream_struc *bs,
int *l,
int *z);
extern void I_encode_scale (unsigned int (*scalar)[3][SBLIMIT], unsigned int (*bit_alloc)[SBLIMIT],
frame_params *fr_ps, Bit_stream_struc *bs);
extern int II_bits_for_nonoise (double (*perm_smr)[SBLIMIT], unsigned int (*scfsi)[SBLIMIT],
frame_params *fr_ps, int a, int b, int *aiff);
extern void II_main_bit_allocation (double (*perm_smr)[SBLIMIT],
double (*ltmin)[SBLIMIT],
unsigned int (*scfsi)[SBLIMIT],
unsigned int (*bit_alloc)[SBLIMIT],
int *adb,
frame_params *fr_ps,
int *aiff,
double (*sb_sample)[3][12][SBLIMIT],
unsigned int (*scalar)[3][SBLIMIT],
double (*max_sc)[SBLIMIT],
double (*buffer)[1152],
double (*spiki)[SBLIMIT],
double (*joint_sample)[3][12][SBLIMIT],
unsigned int (*j_scale)[3][SBLIMIT],
int dyn_cr,
int aug_dyn_cr,
unsigned int (*scfsi_dyn)[SBLIMIT],
unsigned int (*scalar_dyn)[3][SBLIMIT]);
extern int II_a_bit_allocation (double (*perm_smr)[SBLIMIT],
unsigned int (*scfsi)[SBLIMIT],
unsigned int (*bit_alloc)[SBLIMIT],
int *adb,
frame_params *fr_ps,
int *aiff);
extern int I_bits_for_nonoise (double (*perm_smr)[SBLIMIT], frame_params *fr_ps);
extern void I_main_bit_allocation (double (*perm_smr)[SBLIMIT], unsigned int (*bit_alloc)[SBLIMIT],
int *adb, frame_params *fr_ps);
extern int I_a_bit_allocation (double (*perm_smr)[SBLIMIT], unsigned int (*bit_alloc)[SBLIMIT],
int *adb, frame_params *fr_ps);
extern void I_subband_quantization (unsigned int (*scalar)[3][SBLIMIT],
double (*sb_samples)[3][12][SBLIMIT],
unsigned int (*j_scale)[3][SBLIMIT],
double (*j_samps)[3][12][SBLIMIT],
unsigned int (*bit_alloc)[SBLIMIT],
unsigned int (*sbband)[3][12][SBLIMIT],
frame_params *fr_ps);
extern void II_subband_quantization (unsigned int (*scalar)[3][SBLIMIT],
double (*sb_samples)[3][12][SBLIMIT],
unsigned int (*j_scale)[3][SBLIMIT],
double (*j_samps)[3][12][SBLIMIT],
unsigned int (*bit_alloc)[SBLIMIT],
unsigned int (*sbband)[3][12][SBLIMIT],
frame_params *fr_ps);
extern void II_subband_quantization_mc (unsigned int (*scalar)[3][SBLIMIT],
double (*sb_samples)[3][12][SBLIMIT],
unsigned int (*j_scale)[3][SBLIMIT],
double (*j_samps)[3][12][SBLIMIT],
unsigned int (*bit_alloc)[SBLIMIT],
unsigned int (*sbband)[3][12][SBLIMIT],
frame_params *fr_ps);
#ifdef Augmentation_7ch
extern void II_subband_quantization_aug (unsigned int (*scalar)[3][SBLIMIT],
double (*sb_samples)[3][12][SBLIMIT],
unsigned int (*j_scale)[3][SBLIMIT],
double (*j_samps)[3][12][SBLIMIT],
unsigned int (*bit_alloc)[SBLIMIT],
unsigned int (*sbband)[3][12][SBLIMIT],
frame_params *fr_ps);
#endif
extern void I_encode_bit_alloc (unsigned int (*bit_alloc)[SBLIMIT], frame_params *fr_ps, Bit_stream_struc *bs);
extern void II_encode_bit_alloc (unsigned int (*bit_alloc)[SBLIMIT], frame_params *fr_ps, Bit_stream_struc *bs);
extern void II_encode_bit_alloc_mc (unsigned int (*bit_alloc)[SBLIMIT], frame_params *fr_ps, Bit_stream_struc *bs);
#ifdef Augmentation_7ch
extern void II_encode_bit_alloc_aug (unsigned int (*bit_alloc)[SBLIMIT], frame_params *fr_ps, Bit_stream_struc *bs);
#endif
extern void I_sample_encoding (unsigned int (*sbband)[3][12][SBLIMIT],
unsigned int (*bit_alloc)[SBLIMIT],
frame_params *fr_ps,
Bit_stream_struc *bs);
extern void II_sample_encoding (unsigned int (*sbband)[3][12][SBLIMIT],
unsigned int (*bit_alloc)[SBLIMIT],
frame_params *fr_ps,
Bit_stream_struc *bs);
extern void II_sample_encoding_mc (unsigned int (*sbband)[3][12][SBLIMIT],
unsigned int lfe_sbband[12],
unsigned int (*bit_alloc)[SBLIMIT],
unsigned int lfe_alloc,
frame_params *fr_ps,
Bit_stream_struc *bs);
#ifdef Augmentation_7ch
extern void II_sample_encoding_aug (unsigned int (*sbband)[3][12][SBLIMIT],
unsigned int (*bit_alloc)[SBLIMIT],
frame_params *fr_ps,
Bit_stream_struc *bs);
#endif
extern void encode_CRC (unsigned int crc, Bit_stream_struc *bs);
extern void ancillary_encode (frame_params*,Bit_stream_struc*,int);
extern void matricing_fft (double (*buffer)[1152], double (*buffer_matr)[1152], frame_params *fr_ps);
#ifdef Augmentation_7ch
extern void matricing_aug_fft (double (*buffer)[1152], double (*buffer_matr)[1152], frame_params *fr_ps);
#endif
extern void tc_alloc (frame_params *fr_ps, double (*max_sc)[SBLIMIT]);
extern int II_bits_for_indi (double (*perm_smr)[SBLIMIT], unsigned int (*scfsi)[SBLIMIT], frame_params *fr_ps, int *a, int *b, int *aiff);
extern int required_bits ();
extern int max_alloc ();
/* The following functions are in the file "tonal.c" */
extern void read_cbound(int lay, int freq, int crit_band, int *cbound);
extern void read_freq_band(int *sub_size, g_ptr *ltg, int lay, int freq);
extern void make_map(int sub_size, mask *power, g_thres *ltg);
extern double add_db(double a, double b);
extern void II_f_f_t(double *sample, mask *power);
extern void II_hann_win(double *sample);
extern void II_pick_max(mask *power, double *spike);
extern void II_tonal_label(mask *power, int *tone);
extern void noise_label(int crit_band, int *cbound, mask *power, int *noise, g_thres *ltg);
extern void subsampling(mask *power, g_thres *ltg, int *tone, int *noise);
extern void threshold(int sub_size, mask *power, g_thres *ltg, int *tone, int *noise, int bit_rate);
extern void II_minimum_mask(int sub_size, g_thres *ltg, double *ltmin, int sblimit);
extern void II_smr(double *ltmin, double *smr, double *spike, double *scale, int sblimit, int l, int m);
extern void II_Psycho_One(double (*buffer)[1152], double (*scale)[SBLIMIT], double (*ltmin)[SBLIMIT], frame_params *fr_ps, double (*smr)[SBLIMIT], double (*spiki)[SBLIMIT], int aiff);
extern void I_f_f_t(double *sample, mask *power);
extern void I_hann_win(double *sample);
extern void I_pick_max(mask *power, double *spike);
extern void I_tonal_label(mask *power, int *tone);
extern void I_minimum_mask(int sub_size, g_thres *ltg, double *ltmin);
extern void I_smr(double *ltmin, double *spike, double *scale);
extern void I_Psycho_One(double (*buffer)[1152], double (*scale)[SBLIMIT], double (*ltmin)[SBLIMIT], frame_params *fr_ps);
extern double non_lin_add(double a, double b, double c);
/* The following functions are in the file "psy.c" */
extern void psycho_anal(double *buffer, short int *savebuf, int chn, int lay, float *snrSBLIMIT, double sfreq);
extern void read_absthr(float *absthr, long int table);
/* The following functions are in the file "subs.c" */
extern void fft(float *x_real, float *x_imag, float *energy, float *phi);
/* The following functions are in the file "predisto.c" */
void matri (
double (*sbs_sample)[3][12][SBLIMIT],
frame_params *fr_ps,
double (*sb_sample)[3][12][SBLIMIT],
unsigned int (*scalar)[3][SBLIMIT],
int sblimit,
unsigned int (*scfsi)[SBLIMIT],
unsigned int (*scfsi_dyn)[SBLIMIT],
unsigned int (*bit_alloc)[SBLIMIT],
unsigned int (*subband)[3][12][SBLIMIT]
);
void trans_pattern (
unsigned int (*scalar)[3][SBLIMIT],
unsigned int (*scfsi)[SBLIMIT],
frame_params *fr_ps,
unsigned int (*scfsi_dyn)[SBLIMIT]
);
void pre_quant (
double (*sbs_sample)[3][12][SBLIMIT],
int l,
int m,
double (*sb_sample)[3][12][SBLIMIT],
unsigned int (*scalar)[3][SBLIMIT],
unsigned int (*bit_alloc)[SBLIMIT],
unsigned int (*subband)[3][12][SBLIMIT],
frame_params *fr_ps
);
void II_dequantize_sample (
unsigned int (*sample)[3][SBLIMIT],
unsigned int (*bit_alloc)[SBLIMIT],
double (*fraction)[3][12][SBLIMIT],
frame_params *fr_ps,
int l,
int m,
int z
);
void II_denormalize_sample (
double (*fraction)[3][12][SBLIMIT],
unsigned int (*scale_index)[3][SBLIMIT],
frame_params *fr_ps,
int x,
int l,
int m,
int z
);
void scale_factor_calc (
unsigned int (*scalar)[3][SBLIMIT],
int sblimit,
int l,
int m,
int z,
double (*sb_sample)[3][12][SBLIMIT]
);
void predistortion (
double (*sb_sample)[3][12][32],
unsigned int (*scalar)[3][32],
unsigned int (*bit_alloc)[32],
unsigned int (*subband)[3][12][32],
frame_params *fr_ps,
double (*perm_smr)[32],
unsigned int (*scfsi)[32],
int *adb,
unsigned int (*scfsi_dyn)[32]
);
/* The following functions are in the file "dyn_cross.c" */
void take_dyn_cross (
int dyn_cr,
frame_params *fr_ps,
double sb_sample_sum[5][3][SCALE_BLOCK][SBLIMIT],
unsigned int scalar_sum[][3][SBLIMIT],
unsigned int scfsi_sum[][SBLIMIT],
unsigned int scfsi_dyn[][SBLIMIT],
double sb_sample[CHANMAX3][3][SCALE_BLOCK][SBLIMIT],
unsigned int scalar[][3][SBLIMIT],
unsigned int scfsi[][SBLIMIT]
);
#ifdef Augmentation_7ch
void take_dyn_cross_aug (
int aug_dyn_cr,
frame_params *fr_ps,
double sb_sample_sum[5][3][SCALE_BLOCK][SBLIMIT],
unsigned int scalar_sum[][3][SBLIMIT],
unsigned int scfsi_sum[][SBLIMIT],
unsigned int scfsi_dyn[][SBLIMIT],
double sb_sample[CHANMAX3][3][SCALE_BLOCK][SBLIMIT],
unsigned int scalar[][3][SBLIMIT],
unsigned int scfsi[][SBLIMIT]
);
#endif
void trans_chan (frame_params *fr_ps);
#ifdef Augmentation_7ch
void trans_chan_aug (frame_params *fr_ps);
#endif
void combine (frame_params *fr_ps, double sb_sample[CHANMAX3][3][SCALE_BLOCK][SBLIMIT],
double sb_sample_sum[5][3][SCALE_BLOCK][SBLIMIT]);
#ifdef Augmentation_7ch
void combine_aug (frame_params *fr_ps, double sb_sample[CHANMAX3][3][SCALE_BLOCK][SBLIMIT],
double sb_sample_sum[5][3][SCALE_BLOCK][SBLIMIT]);
#endif
void dyn_bal (
unsigned int scfsi[CHANMAX3][SBLIMIT],
int sbgr,
frame_params *fr_ps,
int min_ch,
int min_sb,
int *seli,
int *scale
);
#ifdef Augmentation_7ch
void dyn_bal_aug (
unsigned int scfsi[CHANMAX3][SBLIMIT],
int sbgr,
frame_params *fr_ps,
int min_ch,
int min_sb,
int *seli,
int *scale
);
#endif
void choose_dyn (
frame_params *fr_ps,
int min_ch,
int min_sb,
int sbgr,
unsigned int bit_alloc[CHANMAX3][SBLIMIT]
);
#ifdef Augmentation_7ch
void choose_dyn_aug (
frame_params *fr_ps,
int min_ch,
int min_sb,
int sbgr,
unsigned int bit_alloc[CHANMAX3][SBLIMIT]
);
#endif
void scfsi_calc_dyn (
unsigned int scalar_dyn[][3][SBLIMIT],
int ch,
int sblimit,
unsigned int scfsi_dyn[][SBLIMIT]
);
void scfsi_calc (
unsigned int scalar[][3][SBLIMIT],
int ch,
int sblimit,
unsigned int scfsi[][SBLIMIT]
);
void scf_calc (
double sample[][3][SCALE_BLOCK][SBLIMIT],
int sblimit,
int ch,
unsigned int scf[][3][SBLIMIT]
);
/* The following functions are in the file "lfe.c" */
extern void lfe_filter(double**,double[12]);
extern void lf_scalefactor(double[12],unsigned int*);
extern void II_encode_lfe_scale(unsigned int, Bit_stream_struc*);
extern void lfe_allocation(unsigned int*,int*);
extern void II_lfe_quantisation(unsigned int,double[12],
unsigned int, unsigned int[12],
frame_params*);
extern void II_encode_lfe_alloc(unsigned int, frame_params*, Bit_stream_struc*);
extern void II_lfe_sample_encoding(unsigned int[12],
unsigned int, frame_params*,
Bit_stream_struc*);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -