|
libUTL++
|
Statistical context for ArithmeticEncoder. More...
#include <ArithmeticEncoder.h>

Public Member Functions | |
| ArithContext (uint_t numSymbols, uint_t inc, uint_t incLimit) | |
| Constructor. More... | |
| virtual void | copy (const Object &rhs) |
| Copy another ArithContext. More... | |
| uint_t | freq (uint_t symbol) const |
| Get the frequency count for the given symbol. More... | |
| void | interval (uint_t *low, uint_t *high, uint_t symbol) const |
| Return the total frequency of all symbols before the given symbol. | |
| uint_t | numSymbols () const |
| Return the number of symbols. More... | |
| void | set (uint_t numSymbols, uint_t inc, uint_t incLimit) |
| Set a new configuration. More... | |
| uint_t | symbol (uint_t target) |
| Return the symbol whose cumulative frequency count is the least that exceeds the given target. | |
| uint_t | totFreq () const |
| Return the total frequency of all symbols. More... | |
| void | update (uint_t symbol) |
| Add inc to the frequency count for the given symbol. More... | |
Public Member Functions inherited from utl::Object | |
| void | clear () |
| Revert to initial state. More... | |
| virtual int | compare (const Object &rhs) const |
| Compare with another object. More... | |
| virtual void | vclone (const Object &rhs) |
| Make an exact copy of another instance. More... | |
| virtual void | steal (Object &rhs) |
| "Steal" the internal representation from another instance. More... | |
| virtual void | dump (Stream &os, uint_t level=uint_t_max) const |
| Dump a human-readable representation of self to the given output stream. More... | |
| void | dumpWithClassName (Stream &os, uint_t indent=4, uint_t level=uint_t_max) const |
| Front-end for dump() that prints the object's class name. More... | |
| virtual const Object & | getKey () const |
| Get the key for this object. More... | |
| bool | hasKey () const |
| Determine whether or not the object has a key. More... | |
| virtual const Object & | getProxiedObject () const |
| Get the proxied object (= self if none). More... | |
| virtual Object & | getProxiedObject () |
| Get the proxied object (= self if none). More... | |
| virtual size_t | hash (size_t size) const |
| Get the hash code for the object. More... | |
| bool | _isA (const RunTimeClass *runTimeClass) const |
| Determine whether self's class is a descendent of the given class. More... | |
| virtual String | toString () const |
| Return a string representation of self. More... | |
| operator String () const | |
| Conversion to String. More... | |
| size_t | allocatedSize () const |
| Get the total allocated size of this object. More... | |
| virtual size_t | innerAllocatedSize () const |
| Get the "inner" allocated size. More... | |
| virtual void | addOwnedIt (const class FwdIt *it) const |
| Notify self that it owns the given iterator. More... | |
| virtual void | removeOwnedIt (const class FwdIt *it) const |
| Notify self that the given owned iterator has been destroyed. More... | |
| bool | operator< (const Object &rhs) const |
| Less-than operator. More... | |
| bool | operator<= (const Object &rhs) const |
| Less-than-or-equal-to operator. More... | |
| bool | operator> (const Object &rhs) const |
| Greater-than operator. More... | |
| bool | operator>= (const Object &rhs) const |
| Greater-than-or-equal-to operator. More... | |
| bool | operator== (const Object &rhs) const |
| Equal-to operator. More... | |
| bool | operator!= (const Object &rhs) const |
| Unequal-to operator. More... | |
| void | serializeIn (Stream &is, uint_t mode=ser_default) |
| Serialize from an input stream. More... | |
| void | serializeOut (Stream &os, uint_t mode=ser_default) const |
| Serialize to an output stream. More... | |
| virtual void | serialize (Stream &stream, uint_t io, uint_t mode=ser_default) |
| Serialize to or from a stream. More... | |
| void | serializeOutBoxed (Stream &os, uint_t mode=ser_default) const |
| Serialize a boxed object to an output stream. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from utl::Object | |
| static Object * | serializeInNullable (Stream &is, uint_t mode=ser_default) |
| Serialize a nullptr-able object from an input stream. More... | |
| static void | serializeOutNullable (const Object *object, Stream &os, uint_t mode=ser_default) |
| Serialize a nullptr-able object to an output stream. More... | |
| static void | serializeNullable (Object *&object, Stream &stream, uint_t io, uint_t mode=ser_default) |
| Serialize a nullptr-able object to or from a stream. More... | |
| static Object * | serializeInBoxed (Stream &is, uint_t mode=ser_default) |
| Serialize a boxed object from an input stream. More... | |
| static void | serializeBoxed (Object *&object, Stream &stream, uint_t io, uint_t mode=ser_default) |
| Serialize a boxed object to or from a stream. More... | |
Statistical context for ArithmeticEncoder.
freq(), interval() and update() are all O(log n), thanks to the use of a Fenwick tree. Thanks go to Alistair Moffat who clued me into this elegant technique.
See Alistair's home page at: http://people.eng.unimelb.edu.au/ammoffat/
Definition at line 30 of file ArithmeticEncoder.h.
Constructor.
| numSymbols | alphabet size |
| inc | symbol frequency increment |
| incLimit | halve frequency counts when totFreq() exceeds incLimit |
Definition at line 42 of file ArithmeticEncoder.h.
References utl::copy().
|
virtual |
Copy another ArithContext.
Reimplemented from utl::Object.
Get the frequency count for the given symbol.
Definition at line 53 of file ArithmeticEncoder.h.
|
inline |
Return the number of symbols.
Definition at line 68 of file ArithmeticEncoder.h.
Set a new configuration.
| numSymbols | number of distinct symbols |
| inc | symbol frequency increment |
| incLimit | halve frequency counts when totFreq() exceeds incLimit |
|
inline |
Return the total frequency of all symbols.
Definition at line 90 of file ArithmeticEncoder.h.
References utl::deInit(), and utl::init().
Referenced by utl::ArithmeticEncoder::decode(), and utl::ArithmeticEncoder::encode().
| void utl::ArithContext::update | ( | uint_t | symbol | ) |
Add inc to the frequency count for the given symbol.
If totFreq() exceeds incLimit, all frequency counts are halved.
Referenced by utl::ArithmeticEncoder::decode(), and utl::ArithmeticEncoder::encode().