Definition
The class RLE0Coder is designed for compressing inputs which contain many
runs of the character 0x00. This coder is useful as a preprocessing stage
for a Move-To-Front coder.
(This stage was suggested by D.J. Wheeler and described by P. Fenwick
[32].)
The following combinations of coders often yield very good compression results:
#include < LEDA/coding/RLE0.h >
Creation
RLE0Coder | C(streambuf* src_stream = 0, streambuf* tgt_stream = 0, bool own_streams = false) | |
creates an instance C which uses the given source and target streams. If own_streams is set, then C is responsible for the destruction of the streams, otherwise the pointers src_stream and tgt_stream must be valid during the life-time of C. | ||
RLE0Coder | C(const char* src_file_name, const char* tgt_file_name) | |
creates an instance C which uses file-streams for input and output. |
Operations
Standard Operations
void | C.encode() | encodes the source stream and writes the output to the target stream. |
void | C.decode() | decodes the source stream and writes the output to the target stream. |
uint32 | C.encode_memory_chunk(const char* in_buf, uint32 in_len, char* out_buf, uint32 out_len) | |
encodes the memory chunk starting at in_buf with size in_len into the buffer starting at out_buf with size out_len. The function returns actual length of the encoded chunk which may be smaller than out_len. If the output buffer is too small for the encoded data the failure flag will be set (see below). | ||
uint32 | C.decode_memory_chunk(const char* in_buf, uint32 in_len, char* out_buf, uint32 out_len) | |
decodes a memory chunk. The meaning of the parameters and the return value is the same as in the previous function. | ||
streambuf* | C.get_src_stream() | returns the current source stream. |
void | C.set_src_stream(streambuf* src_stream, bool own_stream = false) | |
sets the source stream (cf. constructor). | ||
void | C.set_src_file(const char* file_name) | |
sets a file as source stream. | ||
streambuf* | C.get_tgt_stream() | returns the current target stream. |
void | C.set_tgt_stream(streambuf* tgt_stream, bool own_Stream = false) | |
sets the target stream (cf. constructor). | ||
void | C.set_tgt_file(const char* file_name) | |
sets a file as target stream. | ||
void | C.reset() | puts C in exactly the same state as the default constructor. |
bool | C.failed() | returns true if an error occured. |
bool | C.finished() | returns true if the coding is finished. |
string | C.get_description() | provides a description for C. |