Dirac Video Codec

# Dirac - A Video Codec

Created by the British Broadcasting Corporation.

# dirac::BandVLC Class Reference

A general class for coding and decoding wavelet subband data using variable length coding. More...

`#include <band_vlc.h>`

Inheritance diagram for dirac::BandVLC:
[legend]
Collaboration diagram for dirac::BandVLC:
[legend]

List of all members.

## Public Member Functions

- BandVLC (SubbandByteIO *subband_byteio, const SubbandList &band_list, int band_num, const bool is_intra)
    Constructor.
- void Decompress (CoeffArray &out_data, int num_bytes)
- int Compress (CoeffArray &in_data)
- virtual ~BandVLC ()

## Protected Member Functions

- void CodeVal (CoeffArray &in_data, const int xpos, const int ypos, const CoeffType val)
    Code an individual quantised value and perform inverse-quantisation.
- void DecodeVal (CoeffArray &out_data, const int xpos, const int ypos)
    Decode an individual quantised value and perform inverse-quantisation.
- void CodeQuantIndexOffset (const int offset)
    Encode the offset for a code block quantiser.
- int DecodeQuantIndexOffset ()
    Decode the offset for a code block quantiser.
- void SetToVal (const CodeBlock &code_block, CoeffArray &coeff_data, const CoeffType val)
    Set a code block area to a given value.
- void ClearBlock (const CodeBlock &code_block, CoeffArray &coeff_data)
    Set all block values to 0.

## Protected Attributes

- bool m_is_intra
    Flag indicating whether the band comes from an intra picture.
- int m_bnum
    variables
- const Subband m_node
    the subband being coded
- int m_last_qf_idx
    the quantisation index of the last codeblock
- int m_qf
    quantisation value
- CoeffType m_offset
    reconstruction point
- ByteIO * m_byteio
    Input/output stream of Dirac-format bytes.

## Private Member Functions

- virtual void DoWorkCode (CoeffArray &in_data)
- virtual void DoWorkDecode (CoeffArray &out_data)
- virtual void CodeCoeffBlock (const CodeBlock &code_block, CoeffArray &in_data)
- virtual void DecodeCoeffBlock (const CodeBlock &code_block, CoeffArray &out_data)
- BandVLC (const BandVLC &cpy)
    Private, bodyless copy constructor: class should not be copied.
- BandVLC & operator= (const BandVLC &rhs)
    Private, bodyless copy operator=: class should not be assigned.

## Detailed Description

A general class for coding and decoding wavelet subband data using variable length coding,

## Constructor & Destructor Documentation

dirac::BandVLC::BandVLC | ( | SubbandByteIO * | subband_byteio,
|  | const SubbandList & | band_list,
|  | int | band_num,
|  | const bool | is_intra |
| ) |  |  |

Creates a BandVLC object to encode subband data

Parameters:

  | subband_byteio | input/output for the encoded bits
  | band_list | the set of all the subbands
  | band_num | the number of the subband being coded
  | is_intra | Flag indicating whether the band comes from an intra picture

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

dirac::BandVLC::BandVLC | ( | const BandVLC & | cpy | ) | `[private]`

## Member Function Documentation

void dirac::BandVLC::Decompress | ( | CoeffArray & | out_data,
|  | int | num_bytes |
| ) |  |  |

int dirac::BandVLC::Compress | ( | CoeffArray & | in_data | ) |

void dirac::BandVLC::CodeVal | ( | CoeffArray & | in_data,
|  | const int | xpos,
|  | const int | ypos,
|  | const CoeffType | val |
| ) |  |  | `[inline, protected]`

void dirac::BandVLC::DecodeVal | ( | CoeffArray & | out_data,
|  | const int | xpos,
|  | const int | ypos |
| ) |  |  | `[inline, protected]`

void dirac::BandVLC::CodeQuantIndexOffset | ( | const int | offset | ) | `[protected]`

int dirac::BandVLC::DecodeQuantIndexOffset | ( |  | ) | `[protected]`

void dirac::BandVLC::SetToVal | ( | const CodeBlock & | code_block,
|  | CoeffArray & | coeff_data,
|  | const CoeffType | val |
| ) |  |  | `[inline, protected]`

void dirac::BandVLC::ClearBlock | ( | const CodeBlock & | code_block,
|  | CoeffArray & | coeff_data |
| ) |  |  | `[inline, protected]`

virtual void dirac::BandVLC::DoWorkCode | ( | CoeffArray & | in_data | ) | `[private, virtual]`

Reimplemented in dirac::IntraDCBandVLC.

virtual void dirac::BandVLC::DoWorkDecode | ( | CoeffArray & | out_data | ) | `[private, virtual]`

Reimplemented in dirac::IntraDCBandVLC.

virtual void dirac::BandVLC::CodeCoeffBlock | ( | const CodeBlock & | code_block,
|  | CoeffArray & | in_data |
| ) |  |  | `[private, virtual]`

Reimplemented in dirac::IntraDCBandVLC.

virtual void dirac::BandVLC::DecodeCoeffBlock | ( | const CodeBlock & | code_block,
|  | CoeffArray & | out_data |
| ) |  |  | `[private, virtual]`

Reimplemented in dirac::IntraDCBandVLC.

BandVLC& dirac::BandVLC::operator= | ( | const BandVLC & | rhs | ) | `[private]`

## Member Data Documentation

bool dirac::BandVLC::m_is_intra`[protected]`

int dirac::BandVLC::m_bnum`[protected]`

const Subband dirac::BandVLC::m_node`[protected]`

int dirac::BandVLC::m_last_qf_idx`[protected]`

int dirac::BandVLC::m_qf`[protected]`

CoeffType dirac::BandVLC::m_offset`[protected]`

ByteIO* dirac::BandVLC::m_byteio`[protected]`

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

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