Created by the British Broadcasting Corporation.
Abstract binary arithmetic coding class. More...
#include <arith_codec.h>
Public Member Functions | |
ArithCodec (ByteIO *p_byteio, size_t number_of_contexts) | |
Constructor for encoding. | |
virtual | ~ArithCodec () |
Destructor. | |
int | Compress (T &in_data) |
Compresses the input and returns the number of bits written. | |
void | Decompress (T &out_data, const int num_bytes) |
Decompresses the bitstream and writes into the output. | |
![]() | |
ArithCodecBase (ByteIO *p_byteio, size_t number_of_contexts) | |
Constructor. | |
virtual | ~ArithCodecBase () |
Destructor. |
Protected Member Functions | |
virtual void | DoWorkCode (T &in_data)=0 |
Does the work of actually coding the data. | |
virtual void | DoWorkDecode (T &out_data)=0 |
virtual decode-only functions //////////////////////////// | |
![]() | |
void | InitEncoder () |
Initialises the Encoder. | |
void | EncodeSymbol (const bool symbol, const int context_num) |
encodes a symbol and writes to output | |
void | EncodeUInt (const unsigned int value, const int bin1, const int max_bin) |
void | EncodeSInt (const int value, const int bin1, const int max_bin) |
void | FlushEncoder () |
flushes the output of the encoder. | |
int | ByteCount () const |
void | InitDecoder (int num_bytes) |
Initialise the Decoder. | |
bool | DecodeSymbol (int context_num) |
Decodes a symbol given a context number. | |
unsigned int | DecodeUInt (const int bin1, const int max_bin) |
int | DecodeSInt (const int bin1, const int max_bin) |
Additional Inherited Members | |
![]() | |
std::vector< Context > | m_context_list |
List of contexts. |
This is an abtract binary arithmetic encoding class, used as the base for concrete classes that encode motion vectors and subband residues.
T | a container (most probably, or array) type |
dirac::ArithCodec< T >::ArithCodec | ( | ByteIO * | p_byteio, |
size_t | number_of_contexts | ||
) |
Creates an ArithCodec object to decode input based on a set of parameters.
p_byteio | input/output for encoded bits |
number_of_contexts | the number of contexts used |
|
inlinevirtual |
Destructor is virtual as this class is abstract.
int dirac::ArithCodec< T >::Compress | ( | T & | in_data | ) |
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.
in_data | the input to be compressed. Non-const, since the compression may be lossy. |
void dirac::ArithCodec< T >::Decompress | ( | T & | out_data, |
const int | num_bytes | ||
) |
Decompresses the bitstream, up to the number of bytes specified and writes into the output subclasses.
out_data | the output into which the decompressed data is written. |
num_bytes | the number of bytes to be read from the bitstream. |
|
protectedpure virtual |
|
protectedpure virtual |
© 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.