www.wikidata.de-de.nina.az
Unter der Bezeichnung Base85 werden verschiedene zueinander inkompatible Kodierungsverfahren zusammengefasst die 8 bit Binardaten in eine Folge von druckbaren ASCII Zeichen umwandelt Sie haben gemeinsam dass sie Blocke von jeweils vier Bytes in funf ASCII Zeichen kodieren Hierfur sind mindestens 85 verschiedene Zeichen notig was diesem Verfahren seinen Namen gab Der Vorteil ist der mit 25 etwas geringere Kodierungsoverhead im Vergleich zu 33 der bei der standardisierten Base64 Kodierung auftritt Die grosste Verbreitung hat diese Kodierung im PostScript Dateiformat von Adobe diese Kodierungsversion wird auch Ascii85 genannt Inhaltsverzeichnis 1 Grundidee 2 PostScript 3 IPv6 Adressenkodierung nach RFC 1924 4 Z85 5 Sonstige Verwendung 6 Siehe auch 7 Weblinks 8 EinzelnachweiseGrundidee BearbeitenVier Bytes konnen 2564 4 294 967 296 verschiedene mogliche Zustande annehmen Um diese mit moglichst geringem Overhead zu kodieren wahlt man eine geeignete Teilmenge aus den druckbaren ASCII Zeichen aus die es ermoglicht mit 5 Zeichen auszukommen Hierfur ist ein Alphabet von mindestens 85 Zeichen notig da 855 4 437 053 125 4 294 967 296 ist 84 Zeichen reichen nicht denn 845 4 182 119 424 lt 4 294 967 296 Wenn die vier Bytes mit b 1 b 2 b 3 displaystyle b 1 b 2 b 3 nbsp und b 4 displaystyle b 4 nbsp bezeichnet werden und die funf kodierten Zeichen c 1 c 5 displaystyle c 1 c 5 nbsp so ergibt sich folgende Umrechnungsformel b 1 256 3 b 2 256 2 b 3 256 b 4 c 1 85 4 c 2 85 3 c 3 85 2 c 4 85 c 5 displaystyle b 1 cdot 256 3 b 2 cdot 256 2 b 3 cdot 256 b 4 c 1 cdot 85 4 c 2 cdot 85 3 c 3 cdot 85 2 c 4 cdot 85 c 5 nbsp Mit anderen Worten Die vier Bytes werden als vierstellige Zahl zur Basis 256 aufgefasst und in eine funfstellige Zahl zur Basis 85 umgewandelt Die Codes c 1 c 5 displaystyle c 1 c 5 nbsp werden nun durch bestimmte druckbare ASCII Zeichen reprasentiert PostScript BearbeitenDie Base85 Kodierung in PostScript addiert auf die Werte c 1 c 5 displaystyle c 1 c 5 nbsp den Wert 33 und benutzt somit die ASCII Werte 33 bis 117 welche den ASCII Zeichen bis u entsprechen Einzige Ausnahme dabei vier aufeinander folgende Nullbytes werden nicht durch kodiert sondern mit einem einzelnen z Durch diese einfache Art der Datenkomprimierung wird der Kodierungsoverhead von Base85 je nach Dateninhalt verringert oder sogar kompensiert zumal insbesondere bei in PostScript eingebetteten Rastergrafiken langere Folgen von Nullbytes recht haufig vorkommen konnen Bei der Kodierung konnen nach Belieben Leerzeichen und Zeilenumbruche eingefugt werden etwa um eine bestimmte maximale Zeilenlange zu erreichen Diese Zeichen werden bei der Dekodierung ignoriert Alle anderen Zeichen stellen einen Fehler dar worauf die Dekodierung abbricht IPv6 Adressenkodierung nach RFC 1924 BearbeitenEine etwas andere Kodierung wurde im RFC 1924 fur IPv6 Adressen vorgeschlagen man beachte den Tag der Veroffentlichung dieses RFCs 1 Die zu kodierende 128 bit IPv6 Adresse wird nicht in vier Blocke zu je 32 Bit zerteilt sondern als eine 128 Bit Zahl aufgefasst Diese wird sukzessive durch 85 geteilt die dabei auftretenden Reste sind die Ziffern der Base85 Kodierung Jede IPv6 Adresse lasst sich so in 20 Zahlen aus dem Bereich 0 84 kodieren Die Zuordnung dieser Zahlen zu ASCII Zeichen erfolgt uber eine Look up Tabelle da man bei der Kodierung bestimmte ASCII Zeichen vermeiden wollte die in bestimmten Umgebungen problematisch sein konnten Die verwendete Look up Tabelle ist wie folgt Wert Zeichen Wert Zeichen Wert Zeichen Wert Zeichen Wert Zeichen0 0 17 H 34 Y 51 p 68 1 1 18 I 35 Z 52 q 69 2 2 19 J 36 a 53 r 70 3 3 20 K 37 b 54 s 71 4 4 21 L 38 c 55 t 72 5 5 22 M 39 d 56 u 73 lt 6 6 23 N 40 e 57 v 74 7 7 24 O 41 f 58 w 75 gt 8 8 25 P 42 g 59 x 76 9 9 26 Q 43 h 60 y 77 10 A 27 R 44 i 61 z 78 11 B 28 S 45 j 62 79 12 C 29 T 46 k 63 80 13 D 30 U 47 l 64 81 14 E 31 V 48 m 65 82 15 F 32 W 49 n 66 amp 83 16 G 33 X 50 o 67 84 Nicht verwendet werden die ASCII Zeichen sowie das Leerzeichen und die 33 Steuerzeichen Z85 BearbeitenDa die Ascii85 Kodierung die in PostScript und PDF benutzt wird Zeichen verwendet die in XML JSON und String Literalen vieler Programmiersprachen nicht verwendet werden konnen wurde fur ZeroMQ ein anderes Kodierungsformat namens Z85 entwickelt 2 Es verwendet die nebenstehende Kodierungstabelle und kodiert ausserdem Binardaten nur in vollstandigen 4 Byte Blocken Falls Binardaten verarbeitet werden mussen deren Lange kein ganzzahliges Vielfaches von 4 ist muss ein anwendungsspezifisches Padding verwendet werden Nicht verwendet werden folgende druckbaren ASCII Zeichen Es verwendet jedoch auch die Zeichen amp lt und gt die in HTML XML als Tag Begrenzer und Entitaten Markierung dienen und somit nicht uneingeschrankt im HTML XML Quelltext verwendbar sind Wert Zeichen Wert Zeichen Wert Zeichen Wert Zeichen Wert Zeichen0 0 17 h 34 y 51 P 68 1 1 18 i 35 z 52 Q 69 2 2 19 j 36 A 53 R 70 3 3 20 k 37 B 54 S 71 4 4 21 l 38 C 55 T 72 amp 5 5 22 m 39 D 56 U 73 lt 6 6 23 n 40 E 57 V 74 gt 7 7 24 o 41 F 58 W 75 8 8 25 p 42 G 59 X 76 9 9 26 q 43 H 60 Y 77 10 a 27 r 44 I 61 Z 78 11 b 28 s 45 J 62 79 12 c 29 t 46 K 63 80 13 d 30 u 47 L 64 81 14 e 31 v 48 M 65 82 15 f 32 w 49 N 66 83 16 g 33 x 50 O 67 84 Sonstige Verwendung BearbeitenTrotz des etwas geringeren Overheads hat sich die Base85 Kodierung ausser in Spezialgebieten nicht durchsetzen konnen Mittlerweile existiert mit Base91 3 ein noch effizienteres Verfahren Fur die ASCII Kodierung von Binardaten in E Mails und Usenet Artikeln ist nur die Base64 Kodierung nach dem MIME Standard vorgesehen Siehe auch BearbeitenBase32 Base64 yEncWeblinks BearbeitenOnline De und Encoder webutils plEinzelnachweise Bearbeiten RFC 1924 A Compact Representation of IPv6 Addresses 1 April 1996 englisch rfc zeromq org basE91 sourceforge net Abgerufen von https de wikipedia org w index php title Base85 amp oldid 238829111