www.wikidata.de-de.nina.az
Asymmetric Numeral Systems ANS asymmetrische Zahlensysteme sind eine Familie von Entropiekodierungen die von Jaroslaw Jarek Duda an der Jagiellonen Universitat entwickelt wurden ANS kombiniert die Kompressionsrate der arithmetischen Kodierung die eine nahezu exakte Wahrscheinlichkeitsverteilung nutzt mit einem zur Huffman Kodierung vergleichbaren Rechenaufwand 1 ANS findet unter anderem Verwendung in den Kompressionsalgorithmen Zstandard 2 und LZFSE 3 bei der Kompression der Bildformate PIK 4 und JPEG XL 5 Inhaltsverzeichnis 1 Entropiekodierung 2 Grundkonzept von ANS 3 Uniforme binare Variante uABS 4 Range Variante rANS 5 Tabellarische Variante tANS 6 Anmerkungen 7 Weblinks 8 EinzelnachweiseEntropiekodierung BearbeitenDie Sequenz von 1000 Nullen und Einsen wurde bei direkter Speicherung 1000 Bits umfassen Wenn uber die Sequenz bekannt ist dass sie nur eine Eins und 999 Nullen enthalt ist es ausreichend nur die Stelle der Eins zu speichern wodurch nur noch log 2 1000 10 displaystyle lceil log 2 1000 rceil 10 nbsp Bits benotigt werden Die Anzahl von Kombinationen aus n displaystyle n nbsp Symbolen mit p n displaystyle pn nbsp Einsen und 1 p n displaystyle 1 p n nbsp Nullen entspricht bei einer Wahrscheinlichkeit von p 0 1 displaystyle p in 0 1 nbsp fur Einsen nach der Stirlingformel naherungsweise n p n 2 n h p fur grosse n und h p p log 2 p 1 p log 2 1 p displaystyle n choose pn approx 2 nh p text fur grosse n text und h p p log 2 p 1 p log 2 1 p nbsp Daher sind zur Speicherung einer solchen Sequenz ungefahr n h p displaystyle nh p nbsp Bits erforderlich wobei h p displaystyle h p nbsp der Entropie eines Symbols entspricht Im Falle von p 1 2 displaystyle p 1 2 nbsp sind also weiterhin n displaystyle n nbsp Bits erforderlich bei asymmetrischer Wahrscheinlichkeit allerdings weit weniger Beispielsweise werden bei p 0 11 displaystyle p 0 11 nbsp nur noch etwa n 2 displaystyle n 2 nbsp Bits benotigt Ein Entropiekodierer ermoglicht die Kodierung einer Symbolfolge mit einer ungefahr der Entropie entsprechenden Anzahl von Bits pro Symbol Grundkonzept von ANS BearbeitenDie grundlegende Idee ist Informationen in eine einzelne naturliche Zahl x displaystyle x nbsp zu kodieren Im ublichen Binarsystem kann ein Bit s 0 1 displaystyle s in 0 1 nbsp an Information mithilfe der Kodierfunktion C s x 2 x s displaystyle C s x 2x s nbsp zu x displaystyle x nbsp hinzugefugt werden sodass x C s x 2 x s displaystyle x C s x 2x s nbsp Durch Anwendung der Kodierfunktion verschieben sich alle Bits um eine Stelle und s displaystyle s nbsp wird an der niedrigstwertigen Stelle erganzt Die Dekodierfunktion D x x mod 2 x 2 displaystyle D x x bmod 2 lfloor x 2 rfloor nbsp ermoglicht die Extraktion der vorherigen Zahl x displaystyle x nbsp sowie des hinzugefugten Symbols s displaystyle s nbsp Durch mehrfache Anwendung der Kodierfunktion kann eine Sequenz kodiert und durch mehrfache Anwendung der Dekodierfunktion in umgekehrter Reihenfolge wieder dekodiert werden Das beschriebene Vorgehen ist optimal wenn die Wahrscheinlichkeitsverteilung der beiden moglichen Symbole symmetrisch ist also p 0 p 1 1 2 displaystyle p 0 p 1 1 2 nbsp Dieser Prozess wird von ANS fur beliebige Mengen von Symbolen s S displaystyle s in S nbsp mit einer zugehorigen oft asymmetrischen Wahrscheinlichkeitsverteilung p s s S displaystyle p s s in S nbsp generalisiert Nach dem Hinzufugen der Information von s displaystyle s nbsp zu x displaystyle x nbsp ist x C s x x p s displaystyle x C s x approx x p s nbsp bzw log 2 x log 2 C s x log 2 x log 2 1 p s displaystyle log 2 x log 2 C s x approx log 2 x log 2 1 p s nbsp wobei log 2 x displaystyle log 2 x nbsp der Anzahl von Bits an Information in der Zahl x displaystyle x nbsp und log 2 1 p s displaystyle log 2 1 p s nbsp der ungefahren Anzahl von Bits des Symbols s displaystyle s nbsp entsprechen Uniforme binare Variante uABS BearbeitenDie binare Variante mit ungefahr gleichverteilten Symbolen s 0 1 displaystyle s in 0 1 nbsp mit p 1 p displaystyle p 1 p nbsp und p 0 1 p displaystyle p 0 1 p nbsp Die Kodierfunktion C s x displaystyle C s x nbsp und die Dekodierfunktion D x displaystyle D x nbsp ergeben sich wie folgt 6 C s x x 1 1 p falls s 0 x p falls s 1 D x s x s s x 1 p x p x 1 x p x 0 x x 1 x x p displaystyle begin aligned C s x amp begin cases left lceil frac x 1 1 p right rceil amp textrm falls s 0 left lfloor frac x p right rfloor amp textrm falls s 1 end cases D x amp s x s s amp lceil x 1 p rceil lceil xp rceil x 1 amp lceil xp rceil x 0 amp x x 1 x lceil xp rceil end aligned nbsp Range Variante rANS BearbeitenDie Range Variante benutzt ebenfalls arithmetische Formeln erlaubt aber im Gegensatz zu uABS ein grosseres Alphabet Es kann als Modifikation eines Stellenwertsystems gesehen werden bei dem manche aufeinanderfolgenden Ziffern zu Bereichen vereinigt wurden Die Wahrscheinlichkeitsverteilung p s s S displaystyle p s s in S nbsp der Symbolmenge S 0 1 n 1 displaystyle S 0 1 dots n 1 nbsp wird naherungsweise durch Bruche der Form p s l s m displaystyle p s approx l s m nbsp mit l s N displaystyle l s in mathbb N nbsp und m s l s textstyle m sum s l s nbsp beschrieben Das Symbol s displaystyle s nbsp dem Bereich b s b s 1 1 displaystyle b s dots b s 1 1 nbsp mit b s i 0 s 1 textstyle b s sum i 0 s 1 nbsp eines Stellenwertsystems zur Basis m displaystyle m nbsp zugeordnet Aus Position y displaystyle y nbsp eines Symbols im Stellenwertsystem kann das Symbol durch s y min s y lt i 0 s l i textstyle s y min s y lt sum i 0 s l i nbsp bestimmt werden Die Kodierfunktion C s x displaystyle C s x nbsp und die Dekodierfunktion D x displaystyle D x nbsp ergeben sich wie folgt 6 C s x m x l s b s x mod l s D x s l s x m x mod m b s mit s s x mod m displaystyle begin aligned C s x amp m left lfloor frac x l s right rfloor b s x bmod l s D x amp left s l s left lfloor frac x m right rfloor x bmod m b s right textrm mit s s x bmod m end aligned nbsp Im Kodierer liegen ublicherweise l s displaystyle l s nbsp b s displaystyle b s nbsp und s y displaystyle s y nbsp tabellarisch vor idealerweise auch l y l s y displaystyle l y l s y nbsp und b y b s y displaystyle b y b s y nbsp um eine bessere Laufzeit zu erzielen Wenn m displaystyle m nbsp als Potenz von 2 gewahlt wird konnen die Multiplikationen und Divisionen durch schnellere bitweise Verschiebungen und x mod m displaystyle x bmod m nbsp durch bitweises UND ersetzt werden Dadurch ist bei der Dekodierung nur noch eine Multiplikation erforderlich Tabellarische Variante tANS BearbeitenDie tabellarische Variante verpackt den gesamten Ablauf fur x L 2 L 1 displaystyle x in L 2L 1 nbsp in eine Tabelle die einen endlichen Automaten beschreibt Dadurch ist es moglich ganzlich auf Multiplikationen zu verzichten Anmerkungen BearbeitenWie bei der Huffman Kodierung ist die Veranderung der Wahrscheinlichkeitsverteilung von tANS relativ teuer weshalb es hauptsachlich in statischen Anwendungsszenarien verwendet wird Im Gegensatz dazu stellt rANS eine schnellere Alternative zur Bereichskodierung dar Es benotigt Multiplikationen ist aber speichereffizienter und eignet sich fur dynamisch adaptierte Wahrscheinlichkeitsverteilungen Das Kodieren und Dekodieren von ANS erfolgt in entgegengesetzte Richtung Die Dekodierung verlauft in den kodierten Daten von hinten nach vorn Damit bei der Dekodierung auf einen Stack verzichtet werden kann wird in der Praxis oft ruckwarts kodiert Weblinks BearbeitenMicrosoft bekommt Patent auf freies Kodierverfahren golem de 18 Februar 2022Einzelnachweise Bearbeiten Timothy B Lee Inventor says Google is patenting work he put in the public domain In Ars Technica 10 Juni 2018 abgerufen am 24 Juni 2020 englisch Zstandard Compression Format In GitHub Abgerufen am 23 Juni 2020 englisch Sergio De Simone Apple Open Sources its New Compression Algorithm LZFSE In InfoQ 2 Juli 2016 abgerufen am 24 Juni 2020 englisch PIK In GitHub Abgerufen am 24 Juni 2020 englisch Alexander Rhatushnyak Jan Wassenberg Jon Sneyers Jyrki Alakuijala Lode Vandevenne Committee Draft of JPEG XL Image Coding System 13 August 2019 arxiv 1908 03565 Fehler in Vorlage Literatur Parameterproblem Dateiformat Grosse Abruf nur bei externem Link a b Jarek Duda Asymmetric numeral systems entropy coding combining speed of Huffman coding with compression rate of arithmetic coding 6 Januar 2014 arxiv 1311 2540 Fehler in Vorlage Literatur Parameterproblem Dateiformat Grosse Abruf nur bei externem Link Abgerufen von https de wikipedia org w index php title Asymmetric Numeral Systems amp oldid 225209699