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