const
{$IFDEF PAIDVERS}
SDLVersionInfo = 'wavelet_r1210_full';
IsLightEd = false;
{$ELSE}
SDLVersionInfo = 'wavelet_r1210_lighted';
IsLightEd = true;
{$ENDIF}
Release = 1210;
type
ESDLWaveletError = class(ESDLError); // exception type to indicate errors
TWLSigExtMode = (wseWrap, wseZeroPad, wseSymmetric); { signal extension
modes at boundaries }
TWaveletFamily = (wlfDaubechies);
{$IFDEF GE_LEV29}
[ComponentPlatformsAttribute(pidWin32 or pidWin64 or pidWin64x)]
{$ENDIF}
TWavelet1D = class (TComponent)
private
FNumData : longint; // size of data array, must be 2^n
FData : array of extended;
FOrder : integer; // order of Daubechies wavelet
FCoeffsLP : array of extended; // Daubechies wavelet coeff. (low pass)
FCoeffsHP : array of extended; // Daubechies wavelet coeff. (high pass)
FWLSigExtMode : TWLSigExtMode;
FWaveletFam : TWaveletFamily;
procedure DoWLT (Level: integer; inverse: boolean);
function GetDataVal(ix: integer): double;
procedure SetDataVal (ix: integer; v: double);
procedure SetNumData (ndata: longint);
procedure SetOrder (order: integer);
procedure SetSigExtMode (sext: TWLSigExtMode);
procedure SetWaveletFam (fam: TWaveletFamily);
procedure PartialWLT (nData, offset: integer; inverse: boolean);
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
property Data[ix: integer]: double read GetDataVal write SetDataVal;
procedure Clear;
procedure InverseTransform (Level: integer);
procedure Transform (Level: integer);
{$IFDEF DEVELOPVERS}
// {$I intf_wavelet_futurevers.pas}
{$ENDIF}
published
property WaveletFamily: TWaveletFamily read FWaveletFam write SetWaveletFam;
property Order: integer read FOrder write SetOrder;
property Size: integer read FNumData write SetNumData;
property SignalExtMode: TWLSigExtMode read FWLSigExtMode write SetSigExtMode;
procedure SingleStep (inverse: boolean);
end;
|