Created by the British Broadcasting Corporation.
#include <arith_codec.h>
Public Member Functions | |
ArithCodecBase (ByteIO *p_byteio, size_t number_of_contexts) | |
Constructor. More... | |
virtual | ~ArithCodecBase () |
Destructor. More... | |
Protected Member Functions | |
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) |
Protected Attributes | |
std::vector< Context > | m_context_list |
List of contexts. More... | |
Private Member Functions | |
ArithCodecBase (const ArithCodecBase &cpy) | |
private, bodyless copy constructor: class should not be copied More... | |
ArithCodecBase & | operator= (const ArithCodecBase &rhs) |
private, bodyless copy operator=: class should not be assigned More... | |
void | ReadAllData (int num_bytes) |
Read all the data in. More... | |
bool | InputBit () |
Read in a bit of data. More... | |
Private Attributes | |
unsigned int | m_scount |
unsigned int | m_low_code |
Start of the current code range. More... | |
unsigned int | m_range |
Length of the current code range. More... | |
ByteIO * | m_byteio |
Input/output stream of Dirac-format bytes. More... | |
int | m_underflow |
Number of underflow bits. More... | |
char * | m_decode_data_ptr |
A pointer to the data for reading in. More... | |
char * | m_data_ptr |
A point to the byte currently being read. More... | |
int | m_input_bits_left |
The index of the bit of the byte being read. More... | |
unsigned int | m_code |
The present input code. More... | |
dirac::ArithCodecBase::ArithCodecBase | ( | 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 |
|
virtual |
Destructor is virtual as this class is abstract.
|
private |
|
protected |
|
inlineprotected |
References DecodeSymbol(), and DecodeUInt().
|
inlineprotected |
References dirac::Context::GetScaledProb0(), InputBit(), m_code, m_context_list, m_low_code, m_range, and dirac::Context::Update().
Referenced by DecodeSInt(), and DecodeUInt().
|
inlineprotected |
References DecodeSymbol().
Referenced by DecodeSInt().
|
inlineprotected |
References EncodeSymbol(), and EncodeUInt().
|
inlineprotected |
References dirac::Context::GetScaledProb0(), m_byteio, m_context_list, m_low_code, m_range, m_underflow, dirac::Context::Update(), and dirac::ByteIO::WriteBit().
Referenced by EncodeSInt(), and EncodeUInt().
|
inlineprotected |
References EncodeSymbol().
Referenced by EncodeSInt().
|
protected |
|
protected |
|
protected |
|
inlineprivate |
References m_data_ptr, and m_input_bits_left.
Referenced by DecodeSymbol().
|
private |
|
private |
|
private |
Referenced by EncodeSymbol().
|
private |
Referenced by DecodeSymbol().
|
protected |
Referenced by DecodeSymbol(), and EncodeSymbol().
|
private |
Referenced by InputBit().
|
private |
|
private |
Referenced by InputBit().
|
private |
Referenced by DecodeSymbol(), and EncodeSymbol().
|
private |
Referenced by DecodeSymbol(), and EncodeSymbol().
|
private |
|
private |
Referenced by EncodeSymbol().
© 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.