Dirac - A Video Codec

Created by the British Broadcasting Corporation.


Public Member Functions | Protected Member Functions
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:
Inheritance graph
[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 ( )
inlinevirtual

Member Function Documentation

void dirac::VHFilter::DeInterleave ( const int  xp,
const int  yp,
const int  xl,
const int  yl,
CoeffArray coeff_data 
)
inlineprotected
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 
)
inlineprotected
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.