Dirac - A Video Codec

Created by the British Broadcasting Corporation.


dirac::ArithCodec< T > Class Template Reference

Abstract binary arithmetic coding class. More...

#include <arith_codec.h>

Inheritance diagram for dirac::ArithCodec< T >:

Inheritance graph
[legend]
Collaboration diagram for dirac::ArithCodec< T >:

Collaboration graph
[legend]

List of all members.

Public Member Functions

Protected Member Functions


Detailed Description

template<class T>
class dirac::ArithCodec< T >

This is an abtract binary arithmetic encoding class, used as the base for concrete classes that encode motion vectors and subband residues.
Parameters:
T a container (most probably, or array) type

Constructor & Destructor Documentation

template<class T>
dirac::ArithCodec< T >::ArithCodec ( ByteIO p_byteio,
size_t  number_of_contexts 
) [inline]

Creates an ArithCodec object to decode input based on a set of parameters.

Parameters:
p_byteio input/output for encoded bits
number_of_contexts the number of contexts used

template<class T>
virtual dirac::ArithCodec< T >::~ArithCodec (  )  [inline, virtual]

Destructor is virtual as this class is abstract.


Member Function Documentation

template<class T>
int dirac::ArithCodec< T >::Compress ( T &  in_data  )  [inline]

Compress takes a type T object (a container or array) and compresses it using the abstract function DoWorkCode() which is overridden in subclasses. It returns the number of bits written.

Parameters:
in_data the input to be compressed. Non-const, since the compression may be lossy.

References dirac::ArithCodecBase::ByteCount(), dirac::ArithCodec< T >::DoWorkCode(), dirac::ArithCodecBase::FlushEncoder(), and dirac::ArithCodecBase::InitEncoder().

template<class T>
void dirac::ArithCodec< T >::Decompress ( T &  out_data,
const int  num_bytes 
) [inline]

Decompresses the bitstream, up to the number of bytes specified and writes into the output subclasses.

Parameters:
out_data the output into which the decompressed data is written.
num_bytes the number of bytes to be read from the bitstream.

References dirac::ArithCodec< T >::DoWorkDecode(), and dirac::ArithCodecBase::InitDecoder().

template<class T>
virtual void dirac::ArithCodec< T >::DoWorkCode ( T &  in_data  )  [protected, pure virtual]

template<class T>
virtual void dirac::ArithCodec< T >::DoWorkDecode ( T &  out_data  )  [protected, 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.