XZ Utils  5.4.0
Macros | Functions
lzma_encoder_optimum_normal.c File Reference
#include "lzma_encoder_private.h"
#include "fastpos.h"
#include "memcmplen.h"

Macros

#define is_short_rep(optimal)    ((optimal).back_prev == 0)
 

Functions

static uint32_t get_literal_price (const lzma_lzma1_encoder *const coder, const uint32_t pos, const uint32_t prev_byte, const bool match_mode, uint32_t match_byte, uint32_t symbol)
 
static uint32_t get_len_price (const lzma_length_encoder *const lencoder, const uint32_t len, const uint32_t pos_state)
 
static uint32_t get_short_rep_price (const lzma_lzma1_encoder *const coder, const lzma_lzma_state state, const uint32_t pos_state)
 
static uint32_t get_pure_rep_price (const lzma_lzma1_encoder *const coder, const uint32_t rep_index, const lzma_lzma_state state, uint32_t pos_state)
 
static uint32_t get_rep_price (const lzma_lzma1_encoder *const coder, const uint32_t rep_index, const uint32_t len, const lzma_lzma_state state, const uint32_t pos_state)
 
static uint32_t get_dist_len_price (const lzma_lzma1_encoder *const coder, const uint32_t dist, const uint32_t len, const uint32_t pos_state)
 
static void fill_dist_prices (lzma_lzma1_encoder *coder)
 
static void fill_align_prices (lzma_lzma1_encoder *coder)
 
static void make_literal (lzma_optimal *optimal)
 
static void make_short_rep (lzma_optimal *optimal)
 
static void backward (lzma_lzma1_encoder *restrict coder, uint32_t *restrict len_res, uint32_t *restrict back_res, uint32_t cur)
 
static uint32_t helper1 (lzma_lzma1_encoder *restrict coder, lzma_mf *restrict mf, uint32_t *restrict back_res, uint32_t *restrict len_res, uint32_t position)
 
static uint32_t helper2 (lzma_lzma1_encoder *coder, uint32_t *reps, const uint8_t *buf, uint32_t len_end, uint32_t position, const uint32_t cur, const uint32_t nice_len, const uint32_t buf_avail_full)
 
void lzma_lzma_optimum_normal (lzma_lzma1_encoder *restrict coder, lzma_mf *restrict mf, uint32_t *restrict back_res, uint32_t *restrict len_res, uint32_t position)