📄 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_7chextern 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);#endifextern 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_7chextern void II_encode_bit_alloc_aug (unsigned int (*bit_alloc)[SBLIMIT], frame_params *fr_ps, Bit_stream_struc *bs);#endifextern 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_7chextern void II_sample_encoding_aug (unsigned int (*sbband)[3][12][SBLIMIT], unsigned int (*bit_alloc)[SBLIMIT], frame_params *fr_ps, Bit_stream_struc *bs);#endifextern 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_7chextern void matricing_aug_fft (double (*buffer)[1152], double (*buffer_matr)[1152], frame_params *fr_ps);#endifextern 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_7chvoid 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_7chvoid 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_7chvoid 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_7chvoid dyn_bal_aug ( unsigned int scfsi[CHANMAX3][SBLIMIT], int sbgr, frame_params *fr_ps, int min_ch, int min_sb, int *seli, int *scale );#endifvoid choose_dyn ( frame_params *fr_ps, int min_ch, int min_sb, int sbgr, unsigned int bit_alloc[CHANMAX3][SBLIMIT] ); #ifdef Augmentation_7chvoid 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 + -