XZ Utils  5.2.7
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   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)
 

Detailed Description

Range Encoder.

Macro Definition Documentation

◆ RC_SYMBOLS_MAX

#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).