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. More... | |
| virtual | ~ArithCodec () |
| Destructor. More... | |
| int | Compress (T &in_data) |
| Compresses the input and returns the number of bits written. More... | |
| void | Decompress (T &out_data, const int num_bytes) |
| Decompresses the bitstream and writes into the output. More... | |
Public Member Functions inherited from dirac::ArithCodecBase | |
| ArithCodecBase (ByteIO *p_byteio, size_t number_of_contexts) | |
| Constructor. More... | |
| virtual | ~ArithCodecBase () |
| Destructor. More... | |
Protected Member Functions | |
| virtual void | DoWorkCode (T &in_data)=0 |
| Does the work of actually coding the data. More... | |
| virtual void | DoWorkDecode (T &out_data)=0 |
| virtual decode-only functions More... | |
Protected Member Functions inherited from dirac::ArithCodecBase | |
| void | InitEncoder () |
| Initialises the Encoder. More... | |
| void | EncodeSymbol (const bool symbol, const int context_num) |
| encodes a symbol and writes to output More... | |
| 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. More... | |
| int | ByteCount () const |
| void | InitDecoder (int num_bytes) |
| Initialise the Decoder. More... | |
| bool | DecodeSymbol (int context_num) |
| Decodes a symbol given a context number. More... | |
| unsigned int | DecodeUInt (const int bin1, const int max_bin) |
| int | DecodeSInt (const int bin1, const int max_bin) |
Additional Inherited Members | |
Protected Attributes inherited from dirac::ArithCodecBase | |
| std::vector< Context > | m_context_list |
| List of contexts. More... | |
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.