Dirac - A Video Codec
Created by the British Broadcasting Corporation.
dirac::VHFilter Class Reference
A virtual parent class to do vertical and horizontal splitting with wavelet filters.
#include <wavelet_utils.h>
Inheritance diagram for dirac::VHFilter:
[legend]List of all members.Public Member Functions
- VHFilter ()
- virtual ~VHFilter ()
- virtual void Split (const int xp, const int yp, const int xl, const int yl, CoeffArray &coeff_data)=0
- Split a subband into 4.
- virtual void Synth (const int xp, const int yp, const int xl, const int yl, CoeffArray &coeff_data)=0
- Create a single band from 4 quadrant bands.
- virtual int GetShift () const=0
- Return the value of the additional bitshift.
Protected Member Functions
- void Interleave (const int xp, const int yp, const int xl, const int yl, CoeffArray &coeff_data)
- Interleave data from separate subbands into even and odd positions for in-place calculation - called by Synth.
- void DeInterleave (const int xp, const int yp, const int xl, const int yl, CoeffArray &coeff_data)
- De-interleave data even and odd positions into separate subbands - called by Split.
- void ShiftRowLeft (CoeffType *row, int length, int shift)
- Shift all vals in Row by 'shift' bits to the left to increase accuracy by 'shift' bits. Used in Analysis stage of filter.
- void ShiftRowRight (CoeffType *row, int length, int shift)
- Shift all vals in Row by 'shift' bits to the right to counter the shift in the Analysis stage. This function is used in the Synthesis stage.
Constructor & Destructor Documentation
dirac::VHFilter::VHFilter |
( |
|
) |
[inline] |
|
virtual dirac::VHFilter::~VHFilter |
( |
|
) |
[inline, virtual] |
|
Member Function Documentation
void dirac::VHFilter::DeInterleave |
( |
const int |
xp, |
|
|
const int |
yp, |
|
|
const int |
xl, |
|
|
const int |
yl, |
|
|
CoeffArray & |
coeff_data |
|
) |
[inline, protected] |
|
virtual int dirac::VHFilter::GetShift |
( |
|
) |
const [pure virtual] |
|
void dirac::VHFilter::Interleave |
( |
const int |
xp, |
|
|
const int |
yp, |
|
|
const int |
xl, |
|
|
const int |
yl, |
|
|
CoeffArray & |
coeff_data |
|
) |
[inline, protected] |
|
void dirac::VHFilter::ShiftRowLeft |
( |
CoeffType * |
row, |
|
|
int |
length, |
|
|
int |
shift |
|
) |
[protected] |
|
void dirac::VHFilter::ShiftRowRight |
( |
CoeffType * |
row, |
|
|
int |
length, |
|
|
int |
shift |
|
) |
[protected] |
|
virtual void dirac::VHFilter::Split |
( |
const int |
xp, |
|
|
const int |
yp, |
|
|
const int |
xl, |
|
|
const int |
yl, |
|
|
CoeffArray & |
coeff_data |
|
) |
[pure virtual] |
|
virtual void dirac::VHFilter::Synth |
( |
const int |
xp, |
|
|
const int |
yp, |
|
|
const int |
xl, |
|
|
const int |
yl, |
|
|
CoeffArray & |
coeff_data |
|
) |
[pure virtual] |
|
The documentation for this class was generated from the following file:
© 2004 British Broadcasting Corporation.
Dirac code licensed under the Mozilla Public License (MPL) Version 1.1.
HTML documentation generated by Dimitri van Heesch's
excellent Doxygen tool.