# Dirac - A Video Codec

Created by the British Broadcasting Corporation.

# dirac::WaveletTransform::VHFilter Class Reference

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

Inheritance diagram for dirac::WaveletTransform::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, PicArray &pic_data)=0
    Split a subband into 4.
- virtual void Synth (const int xp, const int yp, const int xl, const int yl, PicArray &pic_data)=0
    Create a single band from 4 quadrant bands.
- virtual double GetLowFactor () const =0
    Return a correction factor to compensate for non-unity gain of low-pass filter.
- virtual double GetHighFactor () const =0
    Return a correction factor to compensate for non-unity gain of high-pass filter.
- 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, PicArray &pic_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, PicArray &pic_data)
    De-interleave data even and odd positions into separate subbands - called by Split.
- void ShiftRowLeft (ValueType *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 (ValueType *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::WaveletTransform::VHFilter::VHFilter | ( |  | ) | `[inline]`

virtual dirac::WaveletTransform::VHFilter::~VHFilter | ( |  | ) | `[inline, virtual]`

## Member Function Documentation

virtual void dirac::WaveletTransform::VHFilter::Split | ( | const int | xp,
|  | const int | yp,
|  | const int | xl,
|  | const int | yl,
|  | PicArray & | pic_data |
| ) |  |  | `[pure virtual]`

Implemented in dirac::WaveletTransform::VHFilterDAUB9_7, dirac::WaveletTransform::VHFilterLEGALL5_3, dirac::WaveletTransform::VHFilterDD9_3, dirac::WaveletTransform::VHFilterDD13_5, dirac::WaveletTransform::VHFilterHAAR0, dirac::WaveletTransform::VHFilterHAAR1, and dirac::WaveletTransform::VHFilterHAAR2.

virtual void dirac::WaveletTransform::VHFilter::Synth | ( | const int | xp,
|  | const int | yp,
|  | const int | xl,
|  | const int | yl,
|  | PicArray & | pic_data |
| ) |  |  | `[pure virtual]`

Implemented in dirac::WaveletTransform::VHFilterDAUB9_7, dirac::WaveletTransform::VHFilterLEGALL5_3, dirac::WaveletTransform::VHFilterDD9_3, dirac::WaveletTransform::VHFilterDD13_5, dirac::WaveletTransform::VHFilterHAAR0, dirac::WaveletTransform::VHFilterHAAR1, and dirac::WaveletTransform::VHFilterHAAR2.

virtual double dirac::WaveletTransform::VHFilter::GetLowFactor | ( |  | ) | const`[pure virtual]`

Implemented in dirac::WaveletTransform::VHFilterDAUB9_7, dirac::WaveletTransform::VHFilterLEGALL5_3, dirac::WaveletTransform::VHFilterDD9_3, dirac::WaveletTransform::VHFilterDD13_5, dirac::WaveletTransform::VHFilterHAAR0, dirac::WaveletTransform::VHFilterHAAR1, and dirac::WaveletTransform::VHFilterHAAR2.

virtual double dirac::WaveletTransform::VHFilter::GetHighFactor | ( |  | ) | const`[pure virtual]`

Implemented in dirac::WaveletTransform::VHFilterDAUB9_7, dirac::WaveletTransform::VHFilterLEGALL5_3, dirac::WaveletTransform::VHFilterDD9_3, dirac::WaveletTransform::VHFilterDD13_5, dirac::WaveletTransform::VHFilterHAAR0, dirac::WaveletTransform::VHFilterHAAR1, and dirac::WaveletTransform::VHFilterHAAR2.

virtual int dirac::WaveletTransform::VHFilter::GetShift | ( |  | ) | const`[pure virtual]`

Implemented in dirac::WaveletTransform::VHFilterDAUB9_7, dirac::WaveletTransform::VHFilterLEGALL5_3, dirac::WaveletTransform::VHFilterDD9_3, dirac::WaveletTransform::VHFilterDD13_5, dirac::WaveletTransform::VHFilterHAAR0, dirac::WaveletTransform::VHFilterHAAR1, and dirac::WaveletTransform::VHFilterHAAR2.

void dirac::WaveletTransform::VHFilter::Interleave | ( | const int | xp,
|  | const int | yp,
|  | const int | xl,
|  | const int | yl,
|  | PicArray & | pic_data |
| ) |  |  | `[inline, protected]`

void dirac::WaveletTransform::VHFilter::DeInterleave | ( | const int | xp,
|  | const int | yp,
|  | const int | xl,
|  | const int | yl,
|  | PicArray & | pic_data |
| ) |  |  | `[inline, protected]`

void dirac::WaveletTransform::VHFilter::ShiftRowLeft | ( | ValueType * | row,
|  | int | length,
|  | int | shift |
| ) |  |  | `[protected]`

void dirac::WaveletTransform::VHFilter::ShiftRowRight | ( | ValueType * | row,
|  | int | length,
|  | int | shift |
| ) |  |  | `[protected]`

The documentation for this class was generated from the following file:

- wavelet_utils.h

© 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.