📄 lazy_wavlet.c
字号:
#include "spiht.h"
#include "spihtdecode.h"
int QccWAVWaveletLWT(const QccVector input_signal,
QccVector output_signal,
int signal_length,
int signal_origin,
int subsample_pattern)
{
int index;
int midpoint;
int phase = (signal_origin % 2) ^ (subsample_pattern & 1);
if (input_signal == NULL)
return(0);
if (output_signal == NULL)
return(0);
if (signal_length < 2)
{
QccVectorCopy(output_signal, input_signal, signal_length);
return(0);
}
midpoint =
QccWAVWaveletDWTSubbandLength(signal_length, 1, 0,
signal_origin, subsample_pattern);
if (!phase)
{
for (index = 0; index < signal_length; index += 2)
output_signal[index >> 1] = input_signal[index];
for (index = 1; index < signal_length; index += 2)
output_signal[midpoint + (index >> 1)] = input_signal[index];
}
else
{
for (index = 1; index < signal_length; index += 2)
output_signal[index >> 1] = input_signal[index];
for (index = 0; index < signal_length; index += 2)
output_signal[midpoint + (index >> 1)] = input_signal[index];
}
return(0);
}
int QccWAVWaveletInverseLWT(const QccVector input_signal,
QccVector output_signal,
int signal_length,
int signal_origin,
int subsample_pattern)
{
int index;
int midpoint;
int phase = (signal_origin % 2) ^ (subsample_pattern & 1);
if (input_signal == NULL)
return(0);
if (output_signal == NULL)
return(0);
if (signal_length < 2)
{
QccVectorCopy(output_signal, input_signal, signal_length);
return(0);
}
midpoint =
QccWAVWaveletDWTSubbandLength(signal_length, 1, 0,
signal_origin, subsample_pattern);
if (!phase)
{
for (index = 0; index < signal_length; index += 2)
output_signal[index] = input_signal[index >> 1];
for (index = 1; index < signal_length; index += 2)
output_signal[index] = input_signal[midpoint + (index >> 1)];
}
else
{
for (index = 1; index < signal_length; index += 2)
output_signal[index] = input_signal[index >> 1];
for (index = 0; index < signal_length; index += 2)
output_signal[index] = input_signal[midpoint + (index >> 1)];
}
return(0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -