Dirac - A Video Codec

Created by the British Broadcasting Corporation.


dirac::IntraDCBandVLC Class Reference

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

#include <band_vlc.h>

Inheritance diagram for dirac::IntraDCBandVLC:
Collaboration diagram for dirac::IntraDCBandVLC:

Public Member Functions

 IntraDCBandVLC (SubbandByteIO *subband_byteio, const SubbandList &band_list)
 Constructor.
Public Member Functions inherited from dirac::GenericIntraDCBandCodec< ArithCodecToVLCAdapter >
 GenericIntraDCBandCodec (SubbandByteIO *subband_byteio, size_t number_of_contexts, const SubbandList &band_list)
 Constructor.
Public Member Functions inherited from dirac::GenericBandCodec< ArithCodecToVLCAdapter >
 GenericBandCodec (SubbandByteIO *subband_byteio, size_t number_of_contexts, const SubbandList &band_list, int band_num, const bool is_intra)
 Constructor.
Public Member Functions inherited from dirac::ArithCodecToVLCAdapter
 ArithCodecToVLCAdapter (SubbandByteIO *subband_byteio, size_t number_of_contexts)
virtual ~ArithCodecToVLCAdapter ()
int Compress (CoeffArray &in_data)
void Decompress (CoeffArray &out_data, int num_bytes)
void EncodeSymbol (bool val, int)
bool DecodeSymbol (int)

Private Member Functions

void CodeCoeff (CoeffArray &in_data, const int xpos, const int ypos)
 Encode a single coefficient using error-feedback DC quantization.
 IntraDCBandVLC (const IntraDCBandVLC &cpy)
 Private, bodyless copy constructor: class should not be copied.
IntraDCBandVLCoperator= (const IntraDCBandVLC &rhs)
 Private, bodyless copy operator=: class should not be assigned.

Additional Inherited Members

Protected Member Functions inherited from dirac::GenericIntraDCBandCodec< ArithCodecToVLCAdapter >
void ClearBlock (const CodeBlock &code_block, CoeffArray &coeff_data)
 When coding a skipped block, propegate the predicted values for future non skipped blocks.
CoeffType GetPrediction (const CoeffArray &data, const int xpos, const int ypos) const
 Prediction of a DC value from its previously coded neighbours.
void DecodeCoeffBlock (const CodeBlock &code_block, CoeffArray &out_data)
 Decode codeblock of coefficients and perform DC prediction.
Protected Member Functions inherited from dirac::GenericBandCodec< ArithCodecToVLCAdapter >
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.
virtual void DoWorkCode (CoeffArray &in_data)
virtual void DoWorkDecode (CoeffArray &out_data)
virtual void CodeCoeffBlock (const CodeBlock &code_block, CoeffArray &in_data)
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".
int ChooseInfoContext () const
 A function for choosing the context for "information bits".
int ChooseSignContext (const CoeffArray &data, const int xpos, const int ypos) const
 A function for choosing the context for sign bits.
Protected Attributes inherited from dirac::GenericBandCodec< ArithCodecToVLCAdapter >
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
bool m_nhood_nonzero
 True if neighbours non-zero.
Subband m_pnode
 the parent subband
int m_pxpos
 position of the parent coefficient
int m_pypos
bool m_parent_notzero
 True if the parent of a coeff is not zero.
Protected Attributes inherited from dirac::ArithCodecToVLCAdapter
ByteIOm_byteio

Detailed Description

A class specially for coding the DC subband of Intra frames, using intra-band prediction of coefficients.

Constructor & Destructor Documentation

◆ IntraDCBandVLC() [1/2]

dirac::IntraDCBandVLC::IntraDCBandVLC ( SubbandByteIO * subband_byteio,
const SubbandList & band_list )

Creates a IntraDCBandVLC object to encode subband data, based on parameters

Parameters
subband_byteioinput/output for the encoded bits
band_listthe set of all the subbands

Referenced by IntraDCBandVLC(), and operator=().

◆ IntraDCBandVLC() [2/2]

dirac::IntraDCBandVLC::IntraDCBandVLC ( const IntraDCBandVLC & cpy)
private

References IntraDCBandVLC().

Member Function Documentation

◆ CodeCoeff()

void dirac::IntraDCBandVLC::CodeCoeff ( CoeffArray & in_data,
const int xpos,
const int ypos )
privatevirtual

◆ operator=()

IntraDCBandVLC & dirac::IntraDCBandVLC::operator= ( const IntraDCBandVLC & rhs)
private

References IntraDCBandVLC().


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.