📄 libqccpackwav.h
字号:
int subsample_pattern_frame, int subsample_pattern_row, int subsample_pattern_col);/* lifting_scheme.c */#define QCCWAVLIFTINGSCHEME_MAGICNUM "LFT"#define QCCWAVLIFTINGSCHEME_PATH_ENV "QCCPACK_WAVELET_PATH"#define QCCWAVLIFTINGSCHEME_LWT 0#define QCCWAVLIFTINGSCHEME_Daubechies4 1#define QCCWAVLIFTINGSCHEME_CohenDaubechiesFeauveau9_7 2#define QCCWAVLIFTINGSCHEME_CohenDaubechiesFeauveau5_3 3#define QCCWAVLIFTINGSCHEME_IntLWT 4#define QCCWAVLIFTINGSCHEME_IntCohenDaubechiesFeauveau9_7 5#define QCCWAVLIFTINGSCHEME_IntCohenDaubechiesFeauveau5_3 6typedef struct{ QccString filename; QccString magic_num; int major_version; int minor_version; int scheme;} QccWAVLiftingScheme;int QccWAVLiftingSchemeInitialize(QccWAVLiftingScheme *lifting_scheme);int QccWAVLiftingSchemePrint(const QccWAVLiftingScheme *lifting_scheme);int QccWAVLiftingSchemeRead(QccWAVLiftingScheme *lifting_scheme);int QccWAVLiftingSchemeBiorthogonal(const QccWAVLiftingScheme *lifting_scheme);int QccWAVLiftingSchemeInteger(const QccWAVLiftingScheme *lifting_scheme);/* lifting.c */int QccWAVLiftingAnalysis(QccVector signal, int signal_length, int phase, const QccWAVLiftingScheme *lifting_scheme, int boundary);int QccWAVLiftingSynthesis(QccVector signal, int signal_length, int phase, const QccWAVLiftingScheme *lifting_scheme, int boundary);int QccWAVLiftingRedundantAnalysis(const QccVector input_signal, QccVector output_signal_low, QccVector output_signal_high, int signal_length, const QccWAVLiftingScheme *lifting_scheme, int boundary);int QccWAVLiftingRedundantSynthesis(const QccVector input_signal_low, const QccVector input_signal_high, QccVector output_signal, int signal_length, const QccWAVLiftingScheme *lifting_scheme, int boundary);/* lifting_daubechies4.c */int QccWAVLiftingAnalysisDaubechies4(QccVector signal, int signal_length, int phase, int boundary);int QccWAVLiftingSynthesisDaubechies4(QccVector signal, int signal_length, int phase, int boundary);/* lifting_cdf9_7.c */int QccWAVLiftingAnalysisCohenDaubechiesFeauveau9_7(QccVector signal, int signal_length, int phase, int boundary);int QccWAVLiftingSynthesisCohenDaubechiesFeauveau9_7(QccVector signal, int signal_length, int phase, int boundary);/* lifting_cdf5_3.c */int QccWAVLiftingAnalysisCohenDaubechiesFeauveau5_3(QccVector signal, int signal_length, int phase, int boundary);int QccWAVLiftingSynthesisCohenDaubechiesFeauveau5_3(QccVector signal, int signal_length, int phase, int boundary);/* lifting_int.c */#define QccWAVLiftingIntRound(v, a, b) (((((a)*(v))>>(b))+1)>>1)int QccWAVLiftingAnalysisInt(QccVectorInt signal, int signal_length, int phase, const QccWAVLiftingScheme *lifting_scheme, int boundary);int QccWAVLiftingSynthesisInt(QccVectorInt signal, int signal_length, int phase, const QccWAVLiftingScheme *lifting_scheme, int boundary);/* lifting_int_cdf9_7.c */int QccWAVLiftingAnalysisIntCohenDaubechiesFeauveau9_7(QccVectorInt signal, int signal_length, int phase, int boundary);int QccWAVLiftingSynthesisIntCohenDaubechiesFeauveau9_7(QccVectorInt signal, int signal_length, int phase, int boundary);/* lifting_int_cdf5_3.c */int QccWAVLiftingAnalysisIntCohenDaubechiesFeauveau5_3(QccVectorInt signal, int signal_length, int phase, int boundary);int QccWAVLiftingSynthesisIntCohenDaubechiesFeauveau5_3(QccVectorInt signal, int signal_length, int phase, int boundary);/* wavelet.c */#define QCCWAVWAVELET_PATH_ENV "QCCPACK_WAVELET_PATH"#define QCCWAVWAVELET_DEFAULT_WAVELET "CohenDaubechiesFeauveau.9-7.lft"#define QCCWAVWAVELET_IMPLEMENTATION_FILTERBANK 0#define QCCWAVWAVELET_IMPLEMENTATION_LIFTED 1#define QCCWAVWAVELET_BOUNDARY_SYMMETRIC_EXTENSION \QCCFILTER_SYMMETRIC_EXTENSION#define QCCWAVWAVELET_BOUNDARY_PERIODIC_EXTENSION QCCFILTER_PERIODIC_EXTENSION#define QCCWAVWAVELET_BOUNDARY_BOUNDARY_WAVELET \(QCCWAVWAVELET_BOUNDARY_PERIODIC_EXTENSION + 1)#define QCCWAVWAVELET_PHASE_EVEN QCCWAVFILTERBANK_PHASE_EVEN#define QCCWAVWAVELET_PHASE_ODD QCCWAVFILTERBANK_PHASE_ODDtypedef struct{ int implementation; int boundary; QccWAVLiftingScheme lifting_scheme; QccWAVFilterBank filter_bank;} QccWAVWavelet;int QccWAVInit();int QccWAVWaveletInitialize(QccWAVWavelet *wavelet);int QccWAVWaveletAlloc(QccWAVWavelet *wavelet);void QccWAVWaveletFree(QccWAVWavelet *wavelet);void QccWAVWaveletPrint(const QccWAVWavelet *wavelet);int QccWAVWaveletCreate(QccWAVWavelet *wavelet, const QccString wavelet_filename, const QccString boundary);int QccWAVWaveletBiorthogonal(const QccWAVWavelet *wavelet);/* wavelet_analysis_synthesis.c */int QccWAVWaveletAnalysis1D(QccVector signal, int signal_length, int phase, const QccWAVWavelet *wavelet);int QccWAVWaveletSynthesis1D(QccVector signal, int signal_length, int phase, const QccWAVWavelet *wavelet);int QccWAVWaveletAnalysis2D(QccMatrix matrix, int num_rows, int num_cols, int phase_row, int phase_col, const QccWAVWavelet *wavelet);int QccWAVWaveletSynthesis2D(QccMatrix matrix, int num_rows, int num_cols, int phase_row, int phase_col, const QccWAVWavelet *wavelet);int QccWAVWaveletAnalysis3D(QccVolume volume, int num_frames, int num_rows, int num_cols, int phase_frame, int phase_row, int phase_col, const QccWAVWavelet *wavelet);int QccWAVWaveletSynthesis3D(QccVolume volume, int num_frames, int num_rows, int num_cols, int phase_frame, int phase_row, int phase_col, const QccWAVWavelet *wavelet);/* wavelet_analysis_synthesis_int.c */int QccWAVWaveletAnalysis1DInt(QccVectorInt signal, int signal_length, int phase, const QccWAVWavelet *wavelet);int QccWAVWaveletSynthesis1DInt(QccVectorInt signal, int signal_length, int phase, const QccWAVWavelet *wavelet);int QccWAVWaveletAnalysis2DInt(QccMatrixInt matrix, int num_rows, int num_cols, int phase_row, int phase_col, const QccWAVWavelet *wavelet);int QccWAVWaveletSynthesis2DInt(QccMatrixInt matrix, int num_rows, int num_cols, int phase_row, int phase_col, const QccWAVWavelet *wavelet);int QccWAVWaveletAnalysis3DInt(QccVolumeInt volume, int num_frames, int num_rows, int num_cols, int phase_frame, int phase_row, int phase_col, const QccWAVWavelet *wavelet);int QccWAVWaveletSynthesis3DInt(QccVolumeInt volume, int num_frames, int num_rows, int num_cols, int phase_frame, int phase_row, int phase_col, const QccWAVWavelet *wavelet);/* multiwavelet.c */#define QCCWAVWAVELET_DEFAULT_MULTIWAVELET "LebrunVetterli.Balanced.2x2.7.vfb"typedef struct{ QccWAVVectorFilterBank vector_filter_bank;} QccWAVMultiwavelet;int QccWAVMultiwaveletInitialize(QccWAVMultiwavelet *multiwavelet);int QccWAVMultiwaveletAlloc(QccWAVMultiwavelet *multiwavelet);void QccWAVMultiwaveletFree(QccWAVMultiwavelet *multiwavelet);int QccWAVMultiwaveletCreate(QccWAVMultiwavelet *multiwavelet, const QccString multiwavelet_filename);void QccWAVMultiwaveletPrint(const QccWAVMultiwavelet *multiwavelet);/* dwt.c */int QccWAVWaveletDWTSubbandLength(int original_length, int level, int highband, int signal_origin, int subsample_pattern);int QccWAVWaveletDWT1D(QccVector signal, int signal_length, int signal_origin, int subsample_pattern, int num_scales, const QccWAVWavelet *wavelet);int QccWAVWaveletInverseDWT1D(QccVector signal, int signal_length, int origin,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -