libpgf
7.21.2
PGF - Progressive Graphics File
Toggle main menu visibility
Loading...
Searching...
No Matches
Subband.h
Go to the documentation of this file.
1
/*
2
* The Progressive Graphics File; http://www.libpgf.org
3
*
4
* $Date: 2006-06-04 22:05:59 +0200 (So, 04 Jun 2006) $
5
* $Revision: 229 $
6
*
7
* This file Copyright (C) 2006 xeraina GmbH, Switzerland
8
*
9
* This program is free software; you can redistribute it and/or
10
* modify it under the terms of the GNU LESSER GENERAL PUBLIC LICENSE
11
* as published by the Free Software Foundation; either version 2.1
12
* of the License, or (at your option) any later version.
13
*
14
* This program is distributed in the hope that it will be useful,
15
* but WITHOUT ANY WARRANTY; without even the implied warranty of
16
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
* GNU General Public License for more details.
18
*
19
* You should have received a copy of the GNU General Public License
20
* along with this program; if not, write to the Free Software
21
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
22
*/
23
28
29
#ifndef PGF_SUBBAND_H
30
#define PGF_SUBBAND_H
31
32
#include "
PGFtypes.h
"
33
34
class
CEncoder
;
35
class
CDecoder
;
36
class
CRoiIndices;
37
42
class
CSubband
{
43
friend
class
CWaveletTransform
;
44
friend
class
CRoiIndices
;
45
46
public
:
49
CSubband
();
50
53
~CSubband
();
54
58
bool
AllocMemory
();
59
62
void
FreeMemory
();
63
72
void
ExtractTile
(
CEncoder
& encoder,
bool
tile =
false
, UINT32 tileX = 0, UINT32 tileY = 0);
73
82
void
PlaceTile
(
CDecoder
& decoder,
int
quantParam,
bool
tile =
false
, UINT32 tileX = 0, UINT32 tileY = 0);
83
89
void
Quantize
(
int
quantParam);
90
96
void
Dequantize
(
int
quantParam);
97
102
void
SetData
(UINT32 pos,
DataT
v) { ASSERT(pos <
m_size
);
m_data
[pos] = v; }
103
107
DataT
*
GetBuffer
() {
return
m_data
; }
108
113
DataT
GetData
(UINT32 pos)
const
{ ASSERT(pos <
m_size
);
return
m_data
[pos]; }
114
118
int
GetLevel
()
const
{
return
m_level
; }
119
123
int
GetHeight
()
const
{
return
m_height
; }
124
128
int
GetWidth
()
const
{
return
m_width
; }
129
135
Orientation
GetOrientation
()
const
{
return
m_orientation
; }
136
137
#ifdef __PGFROISUPPORT__
141
void
IncBuffRow(UINT32 pos) {
m_dataPos
= pos + BufferWidth(); }
142
143
#endif
144
145
private
:
146
void
Initialize
(UINT32 width, UINT32 height,
int
level,
Orientation
orient);
147
void
WriteBuffer
(
DataT
val) { ASSERT(
m_dataPos
<
m_size
);
m_data
[
m_dataPos
++] = val; }
148
void
SetBuffer
(
DataT
* b) { ASSERT(b);
m_data
= b; }
149
DataT
ReadBuffer
() { ASSERT(
m_dataPos
<
m_size
);
return
m_data
[
m_dataPos
++]; }
150
151
UINT32
GetBuffPos
()
const
{
return
m_dataPos
; }
152
153
#ifdef __PGFROISUPPORT__
154
UINT32 BufferWidth()
const
{
return
m_ROI.Width(); }
155
void
TilePosition(UINT32 tileX, UINT32 tileY, UINT32& left, UINT32& top, UINT32& w, UINT32& h)
const
;
156
void
TileIndex(
bool
topLeft, UINT32 xPos, UINT32 yPos, UINT32& tileX, UINT32& tileY, UINT32& x, UINT32& y)
const
;
157
const
PGFRect& GetAlignedROI()
const
{
return
m_ROI; }
158
void
SetNTiles(UINT32 nTiles) { m_nTiles = nTiles; }
159
void
SetAlignedROI(
const
PGFRect& roi);
160
void
InitBuffPos
(UINT32 left = 0, UINT32 top = 0) {
m_dataPos
= top*BufferWidth() + left; ASSERT(
m_dataPos
<
m_size
); }
161
#else
162
void
InitBuffPos
() {
m_dataPos
= 0; }
163
#endif
164
165
private
:
166
UINT32
m_width
;
167
UINT32
m_height
;
168
UINT32
m_size
;
169
int
m_level
;
170
Orientation
m_orientation
;
171
UINT32
m_dataPos
;
172
DataT
*
m_data
;
173
174
#ifdef __PGFROISUPPORT__
175
PGFRect
m_ROI;
176
UINT32 m_nTiles;
177
#endif
178
};
179
180
#endif
//PGF_SUBBAND_H
PGFtypes.h
PGF definitions.
Orientation
Orientation
Definition
PGFtypes.h:99
DataT
INT32 DataT
Definition
PGFtypes.h:269
CDecoder
PGF decoder.
Definition
Decoder.h:46
CEncoder
PGF encoder.
Definition
Encoder.h:46
CSubband::CRoiIndices
friend class CRoiIndices
Definition
Subband.h:44
CSubband::InitBuffPos
void InitBuffPos()
Definition
Subband.h:162
CSubband::m_size
UINT32 m_size
size of data buffer m_data
Definition
Subband.h:168
CSubband::SetData
void SetData(UINT32 pos, DataT v)
Definition
Subband.h:102
CSubband::GetBuffer
DataT * GetBuffer()
Definition
Subband.h:107
CSubband::m_dataPos
UINT32 m_dataPos
current position in m_data
Definition
Subband.h:171
CSubband::AllocMemory
bool AllocMemory()
Definition
Subband.cpp:77
CSubband::SetBuffer
void SetBuffer(DataT *b)
Definition
Subband.h:148
CSubband::CWaveletTransform
friend class CWaveletTransform
Definition
Subband.h:43
CSubband::WriteBuffer
void WriteBuffer(DataT val)
Definition
Subband.h:147
CSubband::GetWidth
int GetWidth() const
Definition
Subband.h:128
CSubband::GetLevel
int GetLevel() const
Definition
Subband.h:118
CSubband::Dequantize
void Dequantize(int quantParam)
Definition
Subband.cpp:154
CSubband::GetOrientation
Orientation GetOrientation() const
Definition
Subband.h:135
CSubband::Initialize
void Initialize(UINT32 width, UINT32 height, int level, Orientation orient)
Definition
Subband.cpp:57
CSubband::Quantize
void Quantize(int quantParam)
Definition
Subband.cpp:112
CSubband::FreeMemory
void FreeMemory()
Delete the memory buffer of this subband.
Definition
Subband.cpp:101
CSubband::GetBuffPos
UINT32 GetBuffPos() const
Definition
Subband.h:151
CSubband::m_height
UINT32 m_height
height in pixels
Definition
Subband.h:167
CSubband::m_orientation
Orientation m_orientation
0=LL, 1=HL, 2=LH, 3=HH L=lowpass filtered, H=highpass filterd
Definition
Subband.h:170
CSubband::m_data
DataT * m_data
buffer
Definition
Subband.h:172
CSubband::ExtractTile
void ExtractTile(CEncoder &encoder, bool tile=false, UINT32 tileX=0, UINT32 tileY=0)
Definition
Subband.cpp:177
CSubband::m_level
int m_level
recursion level
Definition
Subband.h:169
CSubband::GetHeight
int GetHeight() const
Definition
Subband.h:123
CSubband::ReadBuffer
DataT ReadBuffer()
Definition
Subband.h:149
CSubband::~CSubband
~CSubband()
Destructor.
Definition
Subband.cpp:51
CSubband::PlaceTile
void PlaceTile(CDecoder &decoder, int quantParam, bool tile=false, UINT32 tileX=0, UINT32 tileY=0)
Definition
Subband.cpp:203
CSubband::GetData
DataT GetData(UINT32 pos) const
Definition
Subband.h:113
CSubband::m_width
UINT32 m_width
width in pixels
Definition
Subband.h:166
CSubband::CSubband
CSubband()
Standard constructor.
Definition
Subband.cpp:35
PGFRect
Rectangle.
Definition
PGFtypes.h:225
src
Subband.h
Generated by
1.17.0