XZ Utils  5.4.1
Data Structures | Macros | Functions
range_encoder.h File Reference

Range Encoder. More...

#include "range_common.h"
#include "price.h"

Data Structures

struct  lzma_range_encoder
 

Macros

#define RC_SYMBOLS_MAX   53
 

Functions

static void rc_reset (lzma_range_encoder *rc)
 
static void rc_forget (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_shift_low_dummy (uint64_t *low, uint64_t *cache_size, uint8_t *cache, uint64_t *out_pos, uint64_t out_size)
 
static bool rc_encode (lzma_range_encoder *rc, uint8_t *out, size_t *out_pos, size_t out_size)
 
static bool rc_encode_dummy (const lzma_range_encoder *rc, uint64_t out_limit)
 
static uint64_t rc_pending (const lzma_range_encoder *rc)
 

Detailed Description

Range Encoder.

Macro Definition Documentation

◆ RC_SYMBOLS_MAX

#define RC_SYMBOLS_MAX   53

Maximum number of symbols that can be put pending into lzma_range_encoder structure between calls to lzma_rc_encode(). For LZMA, 48+5 is enough (match with big distance and length followed by range encoder flush).