Go to the documentation of this file.
28 const uint8_t table_run[],
29 const uint8_t table_level[],
32 memset(index_run, n,
MAX_RUN + 1);
33 for (
int i = 0;
i < n;
i++) {
34 int run = table_run[
i];
35 int level = table_level[
i];
36 if (index_run[
run] == n)
49 for (last = 0; last < 2; last++) {
50 int8_t *max_level = static_store[last];
51 int8_t *max_run = static_store[last] +
MAX_RUN + 1;
61 memset(index_run, rl->
n,
MAX_RUN + 1);
62 for (
i = start;
i < end;
i++) {
65 if (index_run[
run] == rl->
n)
90 for (
int q = 32; --q >= 0;) {
92 int qadd = (q - 1) | 1;
101 for (
unsigned i = 0;
i < static_size;
i++) {
102 int idx = vlc[
i].
sym;
109 }
else if (
len < 0) {
119 if (idx >= rl->
last)
run += 192;
uint8_t * index_run[2]
encoding only
av_cold void ff_rl_init_level_run(uint8_t max_level[MAX_LEVEL+1], uint8_t index_run[MAX_RUN+1], const uint8_t table_run[], const uint8_t table_level[], int n)
Initialize max_level and index_run from table_run and table_level; this is equivalent to initializing...
av_cold void ff_rl_init_vlc(RLTable *rl, unsigned static_size)
Initialize rl_vlc from n, last, table_vlc, table_run and table_level.
int n
number of entries of table_vlc minus 1
int8_t * max_level[2]
encoding & decoding
av_cold void ff_rl_init(RLTable *rl, uint8_t static_store[2][2 *MAX_RUN+MAX_LEVEL+3])
Initialize index_run, max_level and max_run from n, last, table_vlc, table_run and table_level.
const uint16_t(* table_vlc)[2]
const int8_t * table_level
#define i(width, name, range_min, range_max)
int8_t * max_run[2]
encoding & decoding
int last
number of values for last = 0
av_cold void ff_vlc_init_table_sparse(VLCElem table[], int table_size, int nb_bits, int nb_codes, const void *bits, int bits_wrap, int bits_size, const void *codes, int codes_wrap, int codes_size, const void *symbols, int symbols_wrap, int symbols_size, int flags)
RL_VLC_ELEM * rl_vlc[32]
decoding only