GLAST/LAT > DAQ and FSW > FSW > Doxygen Index > LDT / V0-2-0
Constituent: encdec     Tag: rad750
#include "LDT/BA.h"
Include dependency graph for APE.h:
This graph shows which files directly or indirectly include this file:
Data Structures | |
struct | _APE_cv_ui |
Defines the limits of the condition value as two 32-bit integers. More... | |
struct | _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_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_blencode (APE_etx *etx, const unsigned int **tables, unsigned char const *syms, int nsyms) |
Encodes an array of unsigned char symbols. | |
int | APE_slencode (APE_etx *etx, const unsigned int **tables, unsigned short const *syms, int nsyms) |
Encodes an array of unsigned short integer symbols each with their own table. | |
int | APE_finish (APE_etx *etx) |
Finishes the encoding by flushing out any currently buffered bits. |
CVS $Id: APE.h,v 1.3 2006/09/13 17:58:40 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.
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 symbols of different widths. All that the user needs to do is provide a probability table that can be indexed by a symbol to give the cumulative probability of that symbol occuring. It is the width of the symbol (or more appropriately, the range of the symbol), that determines the number of elements in the table.
The choice of using 32-bit wide probability tables is a trade-off between two performance metrics, CPU vs compress efficiency. Smaller width tables will give slightly better CPU performance on certain machines, while wider width tables will come closer to achieving the maximum compression possible. It was found, that with careful coding, the CPU performance differences where small. Most this difference can be traced to the increased memory access (read cache misses) intrinsic in accessing a wider table. Thus it was decided to offer only the 32-bit width table as a one-size-fits-all solution.
|
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.
|
|
Encodes an array of unsigned char symbols.
|
|
Encodes an array of unsigned char symbols.
|
|
Encodes one symbol.
|
|
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.
|
|
Encodes an array of unsigned char symbols.
|
|
Encodes an array of unsigned short integer symbols each with their own table.
|
|
Initializes the encoding context.
|