# Dirac - A Video Codec

Created by the British Broadcasting Corporation.

Public Member Functions | Protected Member Functions | List of all members
dirac::GenericIntraDCBandCodec< EntropyCodec > Class Template Reference

A template class specially for coding the DC subband of Intra frames.

`#include <band_codec.h>`

Inheritance diagram for dirac::GenericIntraDCBandCodec< EntropyCodec >:
[legend]
Collaboration diagram for dirac::GenericIntraDCBandCodec< EntropyCodec >:
[legend]

## Public Member Functions
| GenericIntraDCBandCodec (SubbandByteIO *subband_byteio, size_t number_of_contexts, const SubbandList &band_list)
| Constructor. More...
Public Member Functions inherited from dirac::GenericBandCodec< EntropyCodec >
| GenericBandCodec (SubbandByteIO *subband_byteio, size_t number_of_contexts, const SubbandList &band_list, int band_num, const bool is_intra)
| Constructor. More...

## Protected Member Functions
void | ClearBlock (const CodeBlock &code_block, CoeffArray &coeff_data)
| When coding a skipped block, propegate the predicted values for future non skipped blocks. More...
CoeffType | GetPrediction (const CoeffArray &data, const int xpos, const int ypos) const
| Prediction of a DC value from its previously coded neighbours. More...
void | DecodeCoeffBlock (const CodeBlock &code_block, CoeffArray &out_data)
| Decode codeblock of coefficients and perform DC prediction. More...
Protected Member Functions inherited from dirac::GenericBandCodec< EntropyCodec >
void | CodeVal (CoeffArray &in_data, const int xpos, const int ypos, const CoeffType val)
| Code an individual quantised value and perform inverse-quantisation. More...
void | DecodeVal (CoeffArray &out_data, const int xpos, const int ypos)
| Decode an individual quantised value and perform inverse-quantisation. More...
void | CodeQuantIndexOffset (const int offset)
| Encode the offset for a code block quantiser. More...
int | DecodeQuantIndexOffset ()
| Decode the offset for a code block quantiser. More...
void | SetToVal (const CodeBlock &code_block, CoeffArray &coeff_data, const CoeffType val)
| Set a code block area to a given value. More...
virtual void | ClearBlock (const CodeBlock &code_block, CoeffArray &coeff_data)
| Set all block values to 0. More...
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)
virtual void | CodeCoeff (CoeffArray &in_data, const int xpos, const int ypos)
virtual void | DecodeCoeff (CoeffArray &in_data, const int xpos, const int ypos)
int | ChooseFollowContext (const int bin_number) const
| A function for choosing the context for "follow bits". More...
int | ChooseInfoContext () const
| A function for choosing the context for "information bits". More...
int | ChooseSignContext (const CoeffArray &data, const int xpos, const int ypos) const
| A function for choosing the context for sign bits. More...

## Additional Inherited Members
Protected Attributes inherited from dirac::GenericBandCodec< EntropyCodec >
bool | m_is_intra
| Flag indicating whether the band comes from an intra picture. More...
int | m_bnum
| variables More...
const Subband | m_node
| the subband being coded More...
int | m_last_qf_idx
| the quantisation index of the last codeblock More...
int | m_qf
| quantisation value More...
CoeffType | m_offset
| reconstruction point More...
bool | m_nhood_nonzero
| True if neighbours non-zero. More...
Subband | m_pnode
| the parent subband More...
int | m_pxpos
| position of the parent coefficient More...
int | m_pypos
bool | m_parent_notzero
| True if the parent of a coeff is not zero. More...

## Constructor & Destructor Documentation

## ◆ GenericIntraDCBandCodec()

template<typename EntropyCodec >

dirac::GenericIntraDCBandCodec< EntropyCodec >::GenericIntraDCBandCodec | ( | SubbandByteIO * | subband_byteio,
|  | size_t | number_of_contexts,
|  | const SubbandList & | band_list
| ) |  |
| inline

Creates a IntraDCBandCodec object to encode subband data

Parameters

  subband_byteio | input/output for the encoded bits
  number_of_contexts | the number of contexts used in the encoding process
  band_list | the set of all the subbands

## Member Function Documentation

## ◆ ClearBlock()

template<typename EntropyCodec >

void GenericIntraDCBandCodec::ClearBlock | ( | const CodeBlock & | code_block,
|  | CoeffArray & | coeff_data
| ) |  |
| protected virtual

Reimplemented from dirac::GenericBandCodec< EntropyCodec >.

References dirac::CodeBlock::Xend(), dirac::CodeBlock::Xstart(), dirac::CodeBlock::Yend(), and dirac::CodeBlock::Ystart().

## ◆ DecodeCoeffBlock()

template<typename EntropyCodec >

void GenericIntraDCBandCodec::DecodeCoeffBlock | ( | const CodeBlock & | code_block,
|  | CoeffArray & | out_data
| ) |  |
| protected virtual

Reimplemented from dirac::GenericBandCodec< EntropyCodec >.

References dirac::GenericBandCodec< EntropyCodec >::DecodeCoeffBlock(), dirac::CodeBlock::Xend(), dirac::CodeBlock::Xstart(), dirac::CodeBlock::Yend(), and dirac::CodeBlock::Ystart().

## ◆ GetPrediction()

template<typename EntropyCodec >

CoeffType GenericIntraDCBandCodec::GetPrediction | ( | const CoeffArray & | data,
|  | const int | xpos,
|  | const int | ypos
| ) |  | const
| protected

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

- band_codec.h
- band_codec_template.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.