29 #ifndef PGF_WAVELETTRANSFORM_H 30 #define PGF_WAVELETTRANSFORM_H 38 #define FilterHeight 3 40 #ifdef __PGFROISUPPORT__ 59 void Destroy() {
delete[] m_indices; m_indices = 0; }
61 void ComputeIndices(UINT32 width, UINT32 height,
const PGFRect& rect);
62 const PGFRect& GetIndices(
int level)
const { ASSERT(m_indices); ASSERT(level >= 0 && level <
m_nLevels);
return m_indices[level]; }
63 void SetLevels(
int levels) { ASSERT(levels > 0);
m_nLevels = levels; }
64 void ComputeTileIndex(UINT32 width, UINT32 height, UINT32 pos,
bool horizontal,
bool isMin);
70 UINT32 GetNofTiles(
int level)
const { ASSERT(level >= 0 && level <
m_nLevels);
return 1 << (
m_nLevels - level - 1); }
77 #endif //__PGFROISUPPORT__ 106 OSError ForwardTransform(
int level,
int quant);
116 OSError InverseTransform(
int level, UINT32* width, UINT32* height,
DataT** data);
123 ASSERT(level >= 0 && level < m_nLevels);
124 return &m_subband[level][orientation];
127 #ifdef __PGFROISUPPORT__ 128 void SetROI(
const PGFRect& rect);
136 const PGFRect& GetTileIndices(
int level)
const {
return m_ROIindices.GetIndices(level); }
141 UINT32 GetNofTiles(
int level)
const {
return m_ROIindices.GetNofTiles(level); }
146 const PGFRect& GetROI(
int level)
const {
return m_subband[level][
LL].GetROI(); }
148 #endif // __PGFROISUPPORT__ 152 delete[] m_subband; m_subband = 0;
153 #ifdef __PGFROISUPPORT__ 154 m_ROIindices.Destroy();
157 void InitSubbands(UINT32 width, UINT32 height,
DataT* data);
158 void ForwardRow(
DataT* buff, UINT32 width);
159 void InverseRow(
DataT* buff, UINT32 width);
160 void LinearToMallat(
int destLevel,
DataT* loRow,
DataT* hiRow, UINT32 width);
161 void MallatToLinear(
int srcLevel,
DataT* loRow,
DataT* hiRow, UINT32 width);
163 #ifdef __PGFROISUPPORT__ 164 CRoiIndices m_ROIindices;
165 #endif //__PGFROISUPPORT__ 171 #endif //PGF_WAVELETTRANSFORM_H
CSubband()
Standard constructor.
PGF wavelet subband class.
friend class CWaveletTransform
#define NSubbands
number of subbands per level