GLAST/LAT > DAQ and FSW > FSW > Doxygen Index > LDT / V0-0-0
Constituent: encdec     Tag: rad750
This graph shows which files directly or indirectly include this file:
Data Structures | |
union | _APE_cv |
Defines the limits of the condition value as union between the field definition two 32-bit integers and an interpretted 64-bit number. More... | |
struct | _APE_cv_ui |
Defines the limits of the condition value as two 32-bit integers. More... | |
struct | _APE_etx |
Encoding context. More... | |
Typedefs | |
typedef _APE_cv_ui | APE_cv_ui |
Typedef for APE_cv_ui. | |
typedef _APE_cv | APE_cv |
Typedef for APE_cv. | |
typedef _APE_etx | APE_etx |
Typedef for struct _APE_etx. | |
Functions | |
unsigned int | APE_bcompress (unsigned char *out, unsigned int boff, unsigned char *max, const unsigned int *table, const unsigned char *in, int cnt, int *unencoded) |
Convenience routine to compress a byte stream. | |
int | APE_reset (APE_etx *etx, unsigned char *out, unsigned int boff, const unsigned char *max) |
Resets the output context. | |
int | APE_start (APE_etx *etx, unsigned char *out, unsigned int boff, const unsigned char *max) |
Initializes the encoding context. | |
int | APE_encode (APE_etx *etx, const unsigned int *table, unsigned int sym) |
Encodes one symbol. | |
int | APE_bencode (APE_etx *etx, const unsigned int *table, const unsigned char *syms, int nsyms) |
Encodes an array of unsigned char symbols. | |
int | APE_sencode (APE_etx *etx, const unsigned int *table, const unsigned short *syms, int nsyms) |
Encodes an array of unsigned char symbols. | |
int | APE_finish (APE_etx *etx) |
Finishes the encoding by flushing out any currently buffered bits. |
CVS $Id: APE.h,v 1.1.1.1 2005/09/23 06:41:07 russell Exp $
Interface specification for routines to encode symbols using an arithmetic encoding technique. The encoding tables are 32-bits wide. This allows probabilities to (in principle) hold a range of 1/2**32. Contrast this with the ABx routines which only use a range of 1/2**16.
Do not confuse the width of the symbol being encoded with the width of the probability tables. The width of the symbol being encoded is not a fundamental property of these routines. That is, these routines can be used to encode all different symbol widths. All that the user needs to do is provide an appropriately sized probability tables. In essence, the symbol is used to index the probability table, giving the probability of that symbol.
The choice of using the ABx or AWx routines is driven by the range of the relative probabilities. If the range is large, then the AWx routines should be used. If the range is small, then the ABx routines should be used. In general the ABx routines have better runtime performance and the AWx routines come closer to achieving the theorical maximum compression.
|
Typedef for struct _APE_etx. While this is defined in the public interface, this structure should be treated like a C++ private member. All manipulation of this structure should be through the APE routines. |
|
Convenience routine to compress a byte stream.
|
Here is the call graph for this function:
|
Encodes an array of unsigned char symbols.
|
Here is the call graph for this function:
|
Encodes one symbol.
|
Here is the call graph for this function:
|
Finishes the encoding by flushing out any currently buffered bits.
If there is enough room, the number of encoded bits is returned as a positive number. |
|
Resets the output context.
|
Here is the call graph for this function:
|
Encodes an array of unsigned char symbols.
|
Here is the call graph for this function:
|
Initializes the encoding context.
|
Here is the call graph for this function: