ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
Loading...
Searching...
No Matches
ra8_rar5_dtab_t Struct Reference

One canonical Huffman decode table (shared by all five RAR5 alphabets). More...

#include <ra8_rar5.h>

Data Fields

uint32_t len [16]
 Left-aligned upper-limit code per bit length.
uint32_t pos [16]
 First num index per bit length.
uint16_t num [k_ra8_rar5_nc]
 Symbol per canonical code slot.
uint16_t max
 Alphabet size (populated slot count).

Detailed Description

One canonical Huffman decode table (shared by all five RAR5 alphabets).

Built by the decoder from a per-symbol bit-length vector. len holds the left-aligned upper-limit code for each bit length 1..15; pos the start index in num for each length; num the symbol assigned to each canonical code slot, in the RAR canonical order. max is the alphabet size and the clamp used when a (possibly hostile) code lands past the populated slots.

Invariant
max <= k_ra8_rar5_nc.
len[i] <= len[i + 1] for every bit length (non-decreasing).
See also
ra8_rar5_state_t
Since
Version 0.1.0

Definition at line 105 of file ra8_rar5.h.

Field Documentation

◆ len

uint32_t ra8_rar5_dtab_t::len[16]

Left-aligned upper-limit code per bit length.

Definition at line 106 of file ra8_rar5.h.

Referenced by internal_tab_limits(), and priv_rar5_decode_num().

◆ max

uint16_t ra8_rar5_dtab_t::max

Alphabet size (populated slot count).

Definition at line 109 of file ra8_rar5.h.

Referenced by internal_make_tables(), and priv_rar5_decode_num().

◆ num

uint16_t ra8_rar5_dtab_t::num[k_ra8_rar5_nc]

Symbol per canonical code slot.

Definition at line 108 of file ra8_rar5.h.

Referenced by internal_make_tables(), and priv_rar5_decode_num().

◆ pos

uint32_t ra8_rar5_dtab_t::pos[16]

First num index per bit length.

Definition at line 107 of file ra8_rar5.h.

Referenced by internal_make_tables(), internal_tab_limits(), and priv_rar5_decode_num().


The documentation for this struct was generated from the following file: