Dirac - A Video Codec

Created by the British Broadcasting Corporation.


dirac::VHFilter Class Referenceabstract

A virtual parent class to do vertical and horizontal splitting with wavelet filters.

#include <wavelet_utils.h>

Inheritance diagram for dirac::VHFilter:

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

◆ VHFilter()

dirac::VHFilter::VHFilter ( )
inline

◆ ~VHFilter()

virtual dirac::VHFilter::~VHFilter ( )
inlinevirtual

Member Function Documentation

◆ DeInterleave()

void dirac::VHFilter::DeInterleave ( const int xp,
const int yp,
const int xl,
const int yl,
CoeffArray & coeff_data )
inlineprotected

◆ GetShift()

◆ Interleave()

void dirac::VHFilter::Interleave ( const int xp,
const int yp,
const int xl,
const int yl,
CoeffArray & coeff_data )
inlineprotected

◆ ShiftRowLeft()

void dirac::VHFilter::ShiftRowLeft ( CoeffType * row,
int length,
int shift )
protected

◆ ShiftRowRight()

void dirac::VHFilter::ShiftRowRight ( CoeffType * row,
int length,
int shift )
protected

◆ Split()

virtual void dirac::VHFilter::Split ( const int xp,
const int yp,
const int xl,
const int yl,
CoeffArray & coeff_data )
pure virtual

◆ Synth()

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.