Range Encoder. More...
#include "range_common.h"
#include "price.h"
Data Structures | |
struct | lzma_range_encoder |
Defines | |
#define | RC_SYMBOLS_MAX 58 |
Functions | |
static void | rc_reset (lzma_range_encoder *rc) |
static void | rc_bit (lzma_range_encoder *rc, probability *prob, uint32_t bit) |
static void | rc_bittree (lzma_range_encoder *rc, probability *probs, uint32_t bit_count, uint32_t symbol) |
static void | rc_bittree_reverse (lzma_range_encoder *rc, probability *probs, uint32_t bit_count, uint32_t symbol) |
static void | rc_direct (lzma_range_encoder *rc, uint32_t value, uint32_t bit_count) |
static void | rc_flush (lzma_range_encoder *rc) |
static bool | rc_shift_low (lzma_range_encoder *rc, uint8_t *out, size_t *out_pos, size_t out_size) |
static bool | rc_encode (lzma_range_encoder *rc, uint8_t *out, size_t *out_pos, size_t out_size) |
static uint64_t | rc_pending (const lzma_range_encoder *rc) |
Range Encoder.
#define RC_SYMBOLS_MAX 58 |
Maximum number of symbols that can be put pending into lzma_range_encoder structure between calls to lzma_rc_encode(). For LZMA, 52+5 is enough (match with big distance and length followed by range encoder flush).