Bachelor's Thesis

FPGA implementation of ANS compression algorithm

Final Thesis 2.59 MB Appendix 2.22 MB

Author of thesis: Bc. Lukáš Ruman

Acad. year: 2025/2026

Supervisor: Ing. Petr Petyovský, Ph.D.

Reviewer: Ing. Soběslav Valach

Abstract:

This bachelor thesis deals with the analysis, software modeling, and subsequent hardware implementation of lossless entropy compression methods based on Asymmetric Numeral Systems (ANS). In the introductory part, the thesis provides a detailed comparison of the theoretical principles, memory requirements, and computational complexity of the Range variant (rANS) and the Tabled variant (tANS). Based on the results of software implementation in the C language, the tANS variant was selected for acceleration in field-programmable gate arrays (FPGA), transferring the computational complexity into the table generation phase, thus enabling real-time decompression with low latency. The designed modular architecture of the decompression system in VHDL was successfully synthesized and verified on the Nexys A7 development board featuring an Artix-7 chip. The implemented hardware decompressor demonstrated high data throughput, deterministic speed, and low logic resource utilization, confirming its suitability for deployment in embedded applications, the Internet of Things (IoT), and for the efficient storage of compressed firmware. Hardware implementation offers the possibility of integrating inherent data encryption directly into the tANS decompression process at the hardware level, providing a higher level of data protection compared to software encryption. The thesis successfully bridges theoretical knowledge from information sciences with practical engineering design while establishing a direction for future research in the hardware allocation of dedicated DSP blocks for the alternative rANS method.

Keywords:

compression algorithm, asymmetric numeral systems, ANS, tANS, rANS, FPGA, VHDL, implementation, decompressor, embedded systems, cyber security, DSP blocks

Date of defence

16.06.2026

Result of the defence

Defended (thesis was successfully defended)

znamkaAznamka

Grading

A

Process of defence

Student odprezentoval připravenou prezentaci a následně odpovídal na dva dotazy položené oponentem závěrečné práce. V následné rozpravě o bakalářské práci byla diskutována determiničnost algoritmu. Student obhájil bakalářskou práci. Komise neměla žádné námitky k řešené práci. V průběhu odborné rozpravy student odpověděl na dotazy.

Language of thesis

Slovak

Faculty

Department

Study programme

Automation and Measurement (BPC-AMT)

Composition of Committee

prof. Ing. Michal Prauzek, Ph.D. (předseda)
doc. Ing. Petr Beneš, Ph.D. (místopředseda)
doc. Ing. Jakub Arm, Ph.D. (člen)
Ing. Jiří Fialka, Ph.D. (člen)
Ing. Petr Petyovský, Ph.D. (člen)
Ing. Lukáš Pohl, Ph.D. (člen)

Supervisor’s report
Ing. Petr Petyovský, Ph.D.

Zadání bakalářské práce studenta Lukáše Rumana bylo zadáním, na jehož tvorbě se student již od počátku aktivně podílel. Student také navštěvoval konzultace Mgr. Jiřího Vítovce, Ph.D. na VUT FEKT ústavu matematiky, se kterým konzultoval některé aspekty ohledně matematiky dané kompresní metody a její formální prezentaci v textu práce.

Úkolem studenta bylo pro rodinu moderních entropických kompresních metod označovaných ANS (Asymmetric Numeral Systems) nalézt vhodnou implementaci pro hradlové pole FPGA, která zajistí časovou efektivitu a také bezpečnost metody dekomprese v rámci využití doplňkové bezpečnostní vrstvy v rámci dekompresní metody.

Cílů práce bylo dosaženo. Student implementoval kompresní i dekompresní algoritmus jako softwarové řešení v prostředí OS Linux. Navrhl architekturu modulu výsledného dekompresního akcelerátoru pro FPGA. A akcelerátor implementoval ve zvoleném FPGA rodiny Artix 7 a to včetně jednotkových testů. Student následně zrealizoval ukázkové řešení demonstrující spolupráci mezi FPGA a aplikací na straně PC.

Student věnoval řešení práce dostatek času, jednotlivé úkoly si už v počátcích řešení práce vhodně rozvrhl. Konzultace navštěvoval pravidelně a byl iniciativní. Průběžné výsledky své práce přihlásil také do studentské soutěže EEICT 2026.

Dosažené výsledky i formální zpracování práce jednoznačně svědčí o bakalářských schopnostech studenta. Díky dosaženým výsledkům, úrovni zpracování textu i práci s literaturou lze na práci pohlížet jako na velmi kvalitně zpracované dílo, které by svým teoretickým záběrem tvořilo i pěkný základ pro práci magisterskou. Předložené práci proto navrhuji hodnocení: Výborně – A (98). Points proposed by supervisor: 98

Grade proposed by supervisor: A

Reviewer’s report
Ing. Soběslav Valach

Předložená bakalářská práce se zabývá problematikou bezeztrátových kompresních metod založených na asymetrických číselných systémech (ANS) a jejich implementací v programovatelných hradlových polích FPGA. Cílem práce bylo analyzovat jednotlivé varianty kompresních metod ANS, navrhnout a vytvořit jejich softwarové modely, experimentálně je porovnat a následně realizovat vhodnou část algoritmu pomocí FPGA.

Vlastní text práce je logicky rozdělen do několika kapitol. Úvodní část se věnuje teoretickému rozboru kompresních metod ANS, jejich vlastnostem a porovnání variant rANS a tANS. Další kapitoly se zabývají problematikou tvorby frekvenčního rozdělení a jeho kódováním. Významná část práce je věnována vytvoření modelů v jazyce C, které slouží k ověření správnosti jednotlivých algoritmů, volbě vhodných parametrů a vzájemnému porovnání dosažených výsledků. Závěrečná část práce se zabývá návrhem hardwarové architektury dekompresoru tANS a její implementací v jazyce VHDL včetně syntézy a experimentálního ověření na platformě FPGA.

Zadání práce svým rozsahem i odbornou náročností patří mezi obtížnější. Student musel samostatně nastudovat problematiku entropického kódování, principy asymetrických číselných systémů a jejich matematický aparát. Současně bylo nutné zvládnout návrh algoritmů, jejich implementaci v jazyce C, vytvoření testovacího prostředí a vyhodnocení dosažených výsledků. Neméně náročná byla následná implementace vybraného řešení v jazyce VHDL, návrh jednotlivých funkčních bloků, stavových automatů a jejich syntéza pro FPGA. Součástí řešení byla rovněž tvorba pomocných skriptů pro generování tabulek a ověřování správné funkce navrženého systému.

Za velmi přínosné považuji skutečnost, že autor nezůstal pouze u teoretického rozboru problematiky, ale vytvořil kompletní funkční řešení. Práce zahrnuje návrh algoritmů, jejich softwarové modelování, experimentální porovnání jednotlivých variant a následně také vlastní hardwarovou implementaci. Student tak prokázal schopnost propojit teoretické znalosti z oblasti teorie informace, algoritmizace a návrhu číslicových systémů s praktickou realizací pro FPGA. Rozsahem i technickou úrovní se předložená práce blíží spíše práci diplomové.

Po technické stránce mám pouze několik drobných připomínek, které však nijak nesnižují celkově vysokou úroveň práce. Autor při určování maximální pracovní frekvence vychází z výsledků časové analýzy a parametrů WNS. Domnívám se však, že tento přístup nemusí vést k přesnému určení maximální dosažitelné pracovní frekvence výsledného návrhu. Za vhodnější považuji definovat požadovanou periodu hodin již v souboru constraints a následně ověřovat splnění časových požadavků. Z vlastních experimentů s dodaným návrhem vyplývá, že dosažitelná perioda hodin se pohybuje přibližně kolem 6,8 ns. Dalšího zlepšení by bylo možné dosáhnout vhodnější pipeline architekturou, zejména registrací výstupů blokových pamětí BRAM a úpravou kritických cest. Lze předpokládat, že takto optimalizovaný návrh by mohl dosahovat periody přibližně 5 ns. Uvedené skutečnosti je však třeba chápat spíše jako možnosti další optimalizace, než jako nedostatky navrženého řešení.

Po formální stránce je práce zpracována pečlivě a obsahuje dostatečné množství obrázků, blokových schémat a výsledků testování. Za poněkud nadbytečné považuji zařazení kompletních RTL schémat generovaných syntetizačním nástrojem do příloh práce. Jejich analýza je bezesporu přínosná a dává informace o fyzické implementaci navrženého řešení včetně kritických cest.

Přes uvedené připomínky hodnotím předloženou práci velmi kladně. Oceňuji zejména vysoký podíl vlastní tvůrčí práce, systematický přístup k řešení a skutečnost, že student dokázal samostatně zvládnout poměrně široký rozsah problematiky od matematických principů entropického kódování, přes vytvoření softwarových modelů a testovacích nástrojů, až po praktickou implementaci v FPGA. Rozsahem i úrovní zpracování odpovídá práce spíše kvalitní diplomové práci než běžné práci bakalářské.

Předložená bakalářská práce splňuje všechny body zadání a doporučuji ji k obhajobě.
Klasifikace: 99 bodů. Topics for thesis defence:
  1. V práci byla pro hardwarovou implementaci zvolena metoda tANS. Jaké hlavní výhody a nevýhody by přinesla implementace varianty rANS z hlediska využití prostředků FPGA a dosažitelné propustnosti?
  2. Které části navrženého systému považujete za kritické z hlediska dosažitelné pracovní frekvence a jakým způsobem by bylo možné architekturu dále optimalizovat pomocí pipeliningu?
Points proposed by reviewer: 99

Grade proposed by reviewer: A

Responsibility: Mgr. et Mgr. Hana Odstrčilová