-
Anwendungsbereich
-
Die Erfindung betrifft ein Verfahren zur speichereffizienten Umwandlung nichtbinärer Daten in Binärdaten und binärer Daten in nichtbinäre Daten in Computerprogrammen für Datenverarbeitungsanlagen, insbesondere zur Verwendung innerhalb von Computerprogrammen zur Datenverschlüsselung/Datenentschlüsselung und/oder Datenkompression/Datendekompression und/oder Datenspeicherung/Datenauslesens, mittels der Verwendung einer Zuordnungstabelle oder zweier durchnummerierter Tabellen, welche auch durch Arrays dargestellt sein können.
-
Stand der Technik
-
Innerhalb der unveröffentlichten Vorarbeiten des Erfinders existieren Datenkompressions- und Verschlüsselungsalgorithmen, die entweder als Ausgangswerte oder Endwerte nichtbinäre Datenwerte benutzen, nämlich ternäre, quinäre oder noch höherwertigere Daten ungleich der Form N = 2X mit X als Ganzzahl. Eine Vielzahl solcher Algorithmen ist auf der Grundlage mathematischer Kombinatorik denkbar. Um diese Nichtbinärwerte in eine binäre Form zu transformieren oder Nichtbinärwerte aus Binärwerten bilden zu können, damit diese in Computerprogrammen verwendet und digital gespeichert werden können, finden bislang unvollständig befüllte Bitstücke Anwendung, so dass als Referenzbitstück eine binäre Länge der Form N = 2X mit X als Ganzzahl gewählt wird, die die nicht binär darstellbaren Werte gerade erfassen kann (Dworatschek, S. 163). So wählt man für ternäre Werte, mit dem möglichen Inhalt 0, 1 oder 2, ein Bitstück der Länge 2 Bit, da dieses 4 Werte darstellen und speichern kann, und lässt einen der binären Werte einfach unbezogen und somit leer. Daraus ergibt sich dann eine Entscheidungsredundanz, das heißt eine unausgenutzte Informationskapazität, wie folgt:
(2 Bit ÷ 4 Werte) × 1 unausgenutzte Informationskapazität = 0.5 Bit, mithin 25 Prozent von 2 Bit Außerdem kann mit Hilfe dieser Vorgehensweise nicht uneingeschränkt von Binärwerten in Ternärwerte transformiert werden, da einer der 4 Fälle des 2 Bit großen Stücks unzugeordnet ist.
-
Ein weiteres Verfahren behilft sich vorangestellter signifikanter einzelner Bits als gesetzte Flags, so dass ein so genannter beblätterter Codebaum entsteht, der der Fano-Bedingung genügt (Bauer/Goos, S. 42). Hierfür wird im Falle ternärer Werte, mit dem möglichen Inhalt 0, 1 oder 2, beispielsweise das erste Bit gleich 0 gesetzt für den ternären Wert 0 und für die ternären Werte 1 und 2 das erste Bit gleich 1 gesetzt und ein weiteres Folgebit beiden verbliebenen Werte dann zugeordnet, so dass der ternäre Wert 1 dem Bitstück „1 0” und der ternäre Wert 2 dem Bitstück „1 1” entspricht. Für höherwertige Daten wird ähnlich verfahren. Als Folge dieser Vorgehensweise repräsentiert ein ternärer Wert dann entweder 1 Bit oder 2 Bit in binärer Form. Für höherwertige Fälle ist die Diskrepanz im Speichervolumen zwischen den einzelnen Werten noch signifikanter, so dass bei quinären Daten das erste Bit gleich 0 gesetzt den ersten quinären Fall abdeckt, während für die restlichen vier quinären Fälle bereits 2 weitere Bits benötigt werden, damit im Ergebnis die Darstellung eines Falles nur 1 Bit benötigt während die restlichen 4 Fälle bereits insgesamt 3 Bit benötigen.
-
Aufgabenstellung
-
Für Algorithmen der Datenkompression und der Datenverschlüsselung wie auch zur generellen Speicherung von Nichtbinärdaten ist allerdings eine generelle gleichgroße Transformationsrate zwischen binären und Nichtbinärdaten und umgekehrt von großem Vorteil, da dann das benötigte Speichervolumen präzise kalkulierbar ist. Außerdem stellen nicht gänzlich befüllte Bitstücke mit ihrer unausgenutzten Informationskapazität keine speicheroptimierte Transformation von nicht binären Daten in Binärdaten und umgekehrt dar. Diese können auch nicht verwendet werden, um aus binären Daten generell Nichtbinärdaten zu konstruieren, da einige Fälle des binären Bitstücks unzugeordnet sind.
-
Der Erfindung liegt deshalb die Aufgabe zugrunde speichereffizient Binärdaten in nichtbinäre Daten und Nichtbinärdaten in binäre Daten umzuwandeln mit gleich bleibender Transformationsrate und geringer unausgenutzter Informationskapazität.
-
Erfindungsgemäß wird die Aufgabe bei dem Verfahren der eingangs genannten Art durch die im kennzeichnenden Teil der Patentansprüche 1 bis 8 angegebenen Merkmale gelöst.
-
Das Verfahren gemäß der Erfindung hat den Vorteil, dass in Datenkompressions- und Verschlüsselungsalgorithmen oder zur Speicherung von Nichtbinärdaten immer mit gleich großen Repräsentationsdaten gearbeitet werden kann ohne signifikanten Bits als Flags zu benötigen und dadurch unterschiedlich große binäre Speichergrößen verwenden zu müssen. Außerdem wird eine systembedingte unausgenutzte Informationskapazität verringert.
-
Da das Erstellen und Nachschlagen dieser in den Patentansprüchen 1 bis 2 und 5 bis 6 genannten Tabellen auf direktem Wege sehr umständlich und langsam ist, vor allem wenn Tabellen größer als 210 Zeilen zu befüllen und nachzuschlagen sind, liegt der Erfindung weiterhin die Aufgabe zugrunde die eine Zuordnungstabellen oder die zwei durchnummerierten Tabellen aus den Patentansprüchen 1 bis 2 und 5 bis 6 durch die im gekennzeichneten Teil der Patentansprüche 3 bis 4 und 7 bis 8 angegeben Merkmale weiter zu verbessern und ein Vor- und Zurückwechseln zwischen binären und nichtbinären Daten oder umgekehrt effizienter ermöglichen zu können.
-
Dieses Verfahren gemäß der Erfindung hat den Vorteil, dass über die Verwendung mehrdimensionaler Arrays die Zuordnung automatisiert erfolgt und die Transformation beschleunigt wird, selbst bei Werten Y > 10 und Tabellen mit einer größeren Zeilenanzahl als 1024.
-
Detaillierte Beschreibung der Erfindung
-
1. Definitionen
-
Der verwendete Begriff „ganzzahlige Werte” bezieht sich auf eine Zahl aus der mathematischen Menge der natürlichen Zahlen.
-
Die verwendeten Begriffe „nichtbinäre Daten” und „Nichtbinärdaten” beziehen sich auf alle ganzzahligen Werte, die nicht in der Form 2Y mit Y als ganzzahligem Wert dargestellt werden können, wie die Zahlen 3, 5, 6, 7 und so weiter.
-
Die verwendeten Begriffe „binäre Daten” und „Binärdaten” beziehen sich auf alle ganzzahligen Werte der Form 2Y mit Y als ganzzahligem Wert, wie die Zahlen 2, 4, 8, 16 und so weiter.
-
Der verwendete Begriff „Array” ist ein Fachbegriff aus der Programmiersprache C und bezieht sich auf die Speicherung und Verarbeitung von geordneten Folgen von Datenwerten eines bestimmten Typs als zusammenhängende Folge oder Reihung.
-
Der verwendete Begriff „mehrdimensionales Array” bezieht sich auf ein Array, das eine räumliche Datenstruktur aufweist und somit eine geschachtelte Liste darstellt.
-
Die verwendete Formulierung „hart codiert” in Bezug auf Arrays meint das nicht automatisierte Beschreiben der Inhalte eines Arrays durch direkten Programmcode für jede einzelne Wertkombination.
-
Die verwendeten Begriffe „Bündel” und „gebündelte Werte” bezieht sich auf das Zusammenfassen mehrerer Werte gleichen Datentyps.
-
Der beispielhaft eingefügte Programmcode bezieht sich auf die Syntax der Programmiersprache C.
-
2. Allgemeine Beschreibung
-
Das Verfahren benutzt bei der Transformation von nichtbinären Daten mit ZN-Datenwerten in Binärdaten zunächst 2 ganzzahlige Werte X und Y, so dass gilt ZN X <= 2Y und verarbeitet die ZN-Datenwerte in Bündeln von X Werten zu binären Bündeln der Anzahl Y.
-
Bei der Transformation von binären Daten in Nichtbinärdaten mit ZN Datenwerten benötigt das Verfahren zunächst 2 ganzzahlige Werte X und Y, so dass gilt ZN X >= 2Y und verarbeitet binäre Bündel der Anzahl Y zu der Anzahl X resultierender ZN-Datenwerte.
-
Das Verfahren verwendet entweder eine zweispaltige Zuordnungstabelle oder 2 durchnummerierte Tabellen, wobei beide Möglichkeiten mittels mehrdimensionaler Array optimal verwendet und dargestellt werden können.
-
Bei der Verwendung von einer zweispaltigen Zuordnungstabelle wird die erste Spalte mit allen möglichen binären Einzelwertkombinationen der Bündelgröße Y befüllt und die zweite Spalte mit allen möglichen nichtbinären Einzelwertkombinationen der Bündelgröße X aus ZN-Werten befüllt. Bei der Transformation von Nichtbinärwerten in Binärwerte mit der Bedingung ZN X <= 2Y bleiben die Binärwertkombinationen, die höherwertiger als ZN X sind unzugeordnet. Bei der Transformation von Binärwerten in Nichtbinärwerte mit der Bedingung ZN X >= 2Y bleiben die Nichtbinärwertkombinationen, die höhenwertiger als 2Y sind unzugeordnet.
-
Das Verfahren transformiert die Ausgangswerte indem zunächst diese als Bündel eingelesen werden und die Einzelwertkombination dieses Bündels in der zugehörigen Spalte gesucht wird. In der gleichen Zeile in der anderen Spalte steht dann die repräsentative Anzahl an transformierten Einzelwerten als Bündel. Diese können von dort einzeln entnommen werden, um nun mittels des Datenkompressions- und/oder Verschlüsselungsalgorithmus Verwendung zu finden und/oder gespeichert werden zu können. Zur Rücktransformation der Werte werden diese in der jeweiligen Bündelgröße zusammengefasst, die Einzelwertkombinationen in der zugehörigen Spalte nachgeschlagen und die in der gleichen Zeile der anderen Spalte stehende Einzelwertkombination stellt als Bündel die zurück transformierten Werte dar.
-
Um das Verfahren der Transformation zu beschleunigen können anstelle der zweispaltigen Zuordnungstabelle zwei mehrdimensionale Arrays verwendet werden, von denen je eines zur Transformation und eines zur Rücktransformation benutzt wird. Zuerst wird ein (Y + 1)-dimensionales Array1 mit der Inhaltswertgröße 2 auf den beginnenden Y Dimensionen benötigt, während die Dimension (Y + 1) die Anzahl X Werte speichern können muss. Als Array2 wird ein (X + 1)-dimensionales Array mit der Inhaltswertgröße ZN auf den beginnenden X Dimensionen benötigt, während die Dimension (X + 1) die Anzahl Y Werte speichern können muss. Nach der Initialisierung der beiden Arrays müssen diese mit Werten gefüllt werden. Im Array1 wird die Kombination aus je einer möglichen Einzelwertkombination der Binärwerte der Bündelgröße Y auf den ersten Y Dimensionen und einer Durchnummerierung der Anzahl X auf der letzte Dimension (Y + 1) jeweils pro Durchnummerierung der letzten Dimension mit einem Einzelwert der möglichen Nichtbinärwertkombinationen aus einem X Bündel befüllt. Im Array2 wird die Kombination aus je einer möglichen Einzelwertkombination der Nichtbinärwerte der Bündelgröße X auf den ersten X Dimensionen und einer Durchnummerierung der Anzahl Y auf der letzten Dimension (X + 1) jeweils pro Durchnummerierung der letzten Dimension mit einem Einzelwert einer möglichen Binärwertkombination aus den Y Bündeln befüllt wird.
-
Die Transformation oder Rücktransformation von X Nichtbinärwerten N
1, N
2, ..., N
X in Y Binärwerte B
1, B
2, ..., B
Y erfolgt nun über den Arrayzugriff
-
Die Transformation oder Rücktransformation von Y Binärwerten B
1, B
2, ..., B
Y in X Nichtbinärwerte N
1, N
2, ..., N
X erfolgt nun über den Arrayzugriff
-
Bei der Verwendung von zwei Tabellen zur Transformation wird die erste Tabelle in der einen Spalte mit allen möglichen binären Wertkombinationen der Bündelgröße Y gefüllt und von Anfang bis Ende in der anderen Spalte durchnummeriert. Die zweite Tabelle wird in der einen Spalte mit allen möglichen nichtbinären Wertkombinationen der Bündelgröße X Datenwerte aus ZN befüllt und in der anderen Spalte ebenfalls durchnummeriert.
-
Das Verfahren transformiert die Ausgangswerte indem zunächst diese in der jeweiligen Bündelgröße eingelesen werden. Darauf folgend wird in der zugehörigen Tabelle die Kombination aus den Einzelwerten gesucht und die repräsentierende Durchnummerierung in der gleichen Zeile nachgeschlagen. Im nächsten Schritt wird nun die gefundene Nummer in der anderen Tabelle gesucht und die in der gleichen Zeile stehende Einzelwertkombination als Bündel stellt die transformierten Werte dar. Zur Rücktransformation werden die zurück zu transformierenden Werte als Bündel eingelesen und deren Einzelwertkombination in der zugehörigen Tabelle nachgeschlagen. In der gleichen Zeile dieser Tabelle wird die Durchnummerierung nachgeschlagen und in der anderen Tabelle gesucht. Die dort in der gleichen Zeile stehende Einzelwertkombination als Bündel stellt nun die zurück transformierten Werte dar.
-
Um das Verfahren der Transformation zu beschleunigen werden anstelle der zwei durchnummerierten Tabellen vier mehrdimensionale Arrays, je zwei zur Transformation und Rücktransformation, verwendet, deren Befüllung automatisiert sein kann. Es wird ein Y-dimensionales Array1 mit der Wertgröße 2 und ein 2-dimensionales Array2 mit der Wertgröße 2Y auf der ersten und der Wertgröße X auf der zweiten Dimension benötigt. Es wird weiterhin ein X-dimensionales Array3 mit der Wertgröße ZN und ein 2-dimensionales Array4 mit der Wertgröße ZN X auf der ersten und der Wertgröße Y auf der zweiten Dimension benötigt. Nach der Initialisierung der vier Arrays können diese automatisch befüllt werden.
-
Arrays1 und Array2 wird durch folgende Y-fach geschachtelten For-Schleifen automatisch mit Binärwerten beschrieben, mit den Hilfsvariablen a1, a2, ..., a
Y und dem Zähler Counter wie folgt:
-
Array3 und Array4 wird durch folgende X-fach geschachtelten For-Schleifen automatisch mit Z
N-Werten beschrieben, mit den Hilfsvariablen b1, b2, ..., b
Y und dem Zähler Counter wie folgt:
-
Um Binärwerte B
1, B
2, ..., B
Y in nichtbinäre Werte N
1, N
2, ..., N
X als Bündel transformieren oder zurück transformieren zu können benutzt man folgende Zugriffsfunktion mit der Hilfsvariablen Zahl:
-
Um nichtbinäre Werte N
1, N
2, ..., N
X in Binärwerte B
1, B
2, ..., B
Y als Bündel transformieren oder zurück transformieren zu können benutzt man folgende Zugriffsfunktion:
-
Gerade die Verwendung von vier Arrays, die wie zwei durchnummerierte Tabellen in beide Richtungen fungieren, ermöglicht innerhalb eines Computerprogramms das automatisierte Befüllen der Arrays und eine sehr schnelle Transformation der Werte. Bei der Verwendung von 2 Arrays, die wie eine Zuordnungstabelle in beide Richtungen fungiert, können die Arrays nicht automatisch mit Werten befüllt werden und müssen hart im Programmcode codiert werden.
-
Der aus den Verfahren resultierende durchschnittliche Speicherbedarf eines ZN-Wertes ergibt sich aus der Division der verwendeten Y Bit durch X.
-
3. Beispiel mit einer Zuordnungstabelle nach Fig. 1
-
Im Beispiel nach 1 werden nichtbinäre Ternärwerte mit ZN = 3 und den möglichen Wertinhalten 0, 1 oder 2 in Binärwerte mittels einer Zuordnungstabelle transformiert. Es werden die Werte X = 5 und Y = 8 gewählt, so dass mit 28 >= 35 somit 256 >= 243 die Grundbedingung für eine Transformation von Nichtbinärwerten in Binärwerte erfüllt ist. Die zweispaltige Zuordnungstabelle wird zeilenweise in der ersten Spalte mit allen Binärwertkombinationen der Länge 8 Bit und in die zweite Spalte zeilenweise mit allen Ternärwertkombinationen der Länge von 5 Werten befüllt. Es ergeben sich in der ersten Spalte binäre Wertbündel der Länge Y = 8 Bit und in der zweiten Spalte ternäre Wertbündel der Länge X = 5. Es ergibt sich eine Tabelle mit 256 Zeilen, von denen die letzten 13 Zeilen in der zweiten Spalte unbefüllt bleiben, somit nicht zugeordnet sind. Daraus ergibt sich eine unausgenutzte Informationskapazität von 0,08125 Bit pro Ternärwert wie in 1 berechnet. Im Gegensatz hierzu besitzt ein Ternärwert, der wie im Stand der Technik dargestellt mittels 2 Bit dargestellt wird, eine unausgenutzte Informationskapazität von 0,5 Bit pro Ternärwert.
-
Die Ternären Ausgangswerte werden aufgrund der Vorgabe X = 5 mit 5 Werten pro Transformation gebündelt eingelesen, so dass die erste gebündelte Ternärwertkombination „0 0 0 1 0” ist, die zweite „2 2 2 1 2” und so weiter. Die gebündelten Ternärwerte werden in der zweiten Spalte der Zuordnungstabelle gesucht, so dass die erste Ternärwertkombination in Zeile 4 und die zweite in Zeile 240 gefunden wird. Jeweils in der gleichen Zeile in der ersten Spalte finden sich nun die 8 Bit langen transformierten Binärwertkombinationen, also für das erste Beispiel „0 0 0 0 0 0 1 1” und das zweite Beispiel „1 1 1 0 1 1 1 1”.
-
Der Vorgang ist auf Grundlage desselben Prinzips umgekehrt ausführbar.
-
Aufgrund der Werte X = 5 und Y = 8 ergibt sich eine durchschnittliche Transformationsrate von 8 Bit = 5 Werte = 1,6 Bit pro Ternärwert, während die Verwendung eines beblätterten Codebaums, wie im Stand der Technik dargestellt, entweder 1 Bit oder 2 Bit für einen Ternärwert benötigen würde.
-
4. Beispiel mit zwei hart codierten Arrays auf der Grundlage einer Zuordnungstabelle nach Fig. 2
-
Im Beispiel nach 2 werden binäre Werte in Nichtbinärwerte mit ZN = 3 und den möglichen Wertinhalten 0, 1 oder 2 mittels zweier Arrays, die hart codiert werden, transformiert. Es werden die Werte X = 2 und Y = 3 gewählt, so dass mit 23 <= 32 somit 8 <= 9 die Grundbedingung für eine Transformation von Binärwerten in Nichtbinärwerte erfüllt ist. Es werden zwei Arrays benötigt um sowohl eine Transformation als auch eine spätere Rücktransformation zu ermöglichen.
-
Das Array1 benötigt 4 Dimensionen, bei denen die ersten 3 repräsentativ für die Y = 3, also 3 Bit Bündel, stehen, während die vierte Dimension zwei Inhaltsmöglichkeiten, die Fälle 0 und 1, bereitstellt, um die repräsentativen X = 2 gebündelten Ternärwerte einzeln aufnehmen zu können. Es werden nach der Initialisierung des Array1 die ersten 3 Dimensionen für jede Binärwertkombination der Länge 3 Bit nacheinander befüllt, so das die erste Dimension mit dem ersten Bit, die zweite Dimension mit dem zweiten Bit und die dritte Dimension mit dem dritten Bit beschrieben wird. Die Fälle 0 und 1 der jeweiligen vierten Dimension werden einzeln mit den möglichen Zweierbündeln der Nichtbinärkombinationen befüllt, so dass der Fall 0 mit dem ersten Nichtbinärwert und der Fall 1 mit dem zweiten Nichtbinärwert der Zweierbündel beschrieben wird.
-
Das Array2 benötigt 3 Dimensionen, bei denen die ersten 2 repräsentativ für die X = 2, also 2 Ternärwerte, Bündel stehen, während die dritte Dimension drei Inhaltsmöglichkeiten, die Fälle 0, 1 und 2, bereitstellt, um die repräsentativen Y = 3 gebündelten Binärwerte einzeln aufnehmen zu können. Es werden nach der Initialisierung des Array2 die ersten 2 Dimensionen für jede Nichtbinärwertkombination der Zweierbündel nacheinander befüllt, so dass die erste Dimension mit dem ersten Nichtbinärwert und die zweite Dimension mit dem zweiten Nichtbinärwert der Zweierbündel beschrieben wird. Die Fälle 0, 1 und 2 der jeweiligen dritten Dimension werden nacheinander mit den möglichen Einzelbinärwerten der Länge 3 Bit befüllt, so dass der Fall 0 mit dem ersten Bit, der Fall 1 mit dem zweiten Bit und der Fall 2 mit dem dritten Bit beschrieben wird.
-
Die binären Ausgangswerte werden nun zu je 3 Bit gebündelt eingelesen, so dass das erste Bündel den Binärwerten „0 1 1” und das Zweite „1 0 1” entspricht. Die Transformation zu Ternärwerten erfolgt nun indem in die ersten 3 Dimensionen des Array1 jeweils die einzelnen Bit eingesetzt werden. Im Unterfall 0 der vierten Dimension ist nun der erste Ternärwert = 1 gespeichert und im zweiten Unterfall 1 der vierten Dimension ist der zweite Ternärwert = 0 gespeichert, so dass auf die Transformationswerte einzeln zugegriffen werden kann. Für die zweiten 3 Bit langen Binärwerte „1 0 1” ergeben sich auf diese Weise die Ternärwerte 1 und 2.
-
Die Rücktransformation erfolgt mittels des Array2. In die ersten beiden Dimensionen werden dazu die zu 2 Ternärwerten gebündelten jeweiligen Einzelwerte eingefügt. Der Inhalt der dritten Dimension des Fall 0 entspricht dann dem ersten zurück transformierten Einzelbits, die Fälle 1 und 2 dem zweiten und dritten Einzelbit. Im Beispiel aus 2 ergeben sich dann für die Ternärwerte 1 und 0 die Binärwerte „0 1 1” und so weiter.
-
Aufgrund der Werte X = 2 und Y = 3 ergibt sich eine durchschnittliche Transformationsrate von 3 Bit – 2 Werte = 1,5 Bit pro Ternärwert.
-
5. Beispiel mit vier automatisch befüllten Array auf der Grundlage von zwei durchnummerierten Tabellen nach Fig. 3 und Fig. 4
-
3 zeigt den Programmcode für die automatisierte Befüllung von insgesamt vier Arrays für die Transformation und Rücktransformation von Sextärwerten mit ZN = 6 in Binärwerte mit X = 4 und Y = 10, mithin 210 <= 64 oder 1024 <= 1296. Es werden für die Transformation und Rücktransformation je zwei Arrays benötigt und das Grundprinzip beruht auf der Verwendung zweier durchnummerierter Tabellen. Benötigt hierfür werden die zwei Zähler counter1 und counter2, die zu Beginn den Wert 0 tragen.
-
Array1 und Array2 werden über Y = 10 geschachtelte For-Schleifen automatisiert in der Art befüllt, dass die Variablen a1 bis a10 alle möglichen Binärwertkombinationen aus den zu 10 Bit gebündeltem Binärwerten – je die Werte 0 und 1 – nacheinander durchlaufen. Diese werden nun im Array1 auf die Y = 10 Dimensionen einzeln geschrieben und mit dem jeweiligen Wert counter1 befüllt. Im Array2 wird die erste Dimension mit dem Wert counter1 beschrieben und die in der zweiten Dimension vorhandenen 10 Unterfälle mit je einer Variable aus a1 bis a10 befüllt. Damit wird automatisiert fortgefahren für alle möglichen Binärkombinationen und nach jedem Durchlauf der Wert des Zählers counter1 um 1 erhöht, bis alle 1024 Einzelfälle durchlaufen sind.
-
Array3 und Array4 werden über X = 4 geschachtelte For-Schleifen automatisiert in der Art befüllt, dass die Variablen b1 bis b4 alle möglichen Sextärwertkombinationen – die Werte 0, 1, 2, 3, 4 oder 5 – aus den zu 4 Werten gebündelten Nichtbinärwerten nacheinander durchlaufen. Diese werden nun im Array3 auf die X = 4 Dimensionen einzeln geschrieben und mit dem jeweiligen Wert counter2 befüllt. Im Array4 wird die erste Dimension mit dem Wert counter2 beschrieben und die in der zweiten Dimension vorhandenen 4 Unterfälle mit je einer Variable aus b1 bis b4 befüllt. Damit wird automatisiert fortgefahren für alle möglichen Nichtbinärkombinationen und nach jedem Durchlauf der Wert des Zählers counter2 um 1 erhöht, bis alle 1296 Einzelfälle durchlaufen sind.
-
Die in 4 dargestellte Transformation und Rücktransformation von Binärwerten in Nichtbinärwerten über die vier Arrays aus 3 erfolgt indem die Ausgangsbinärwerte zu 10 Bit gebündelt eingelesen werden. Mittels des Einfügens der 10 Einzelbinärwerte in das Array1 auf die 10 Dimensionen wird die Hilfsvariable Zahl mit der repräsentativen Nummer der Durchnummerierung des Array1 beschrieben. Im Falle der Verwendung von zwei durchnummerierten Tabellen ist das vergleichbar mit dem Nachschlagen der Zeilennummer, die der Durchnummerierung entspricht. Die Hilfsvariable Zahl wird anschließend in das Array4 auf der ersten Dimension eingefügt und die vier Unterfälle 0 bis 3 auf der zweiten Dimension enthalten die vier transformierten Nichtbinärwerte. Zur Rücktransformation der vier Nichtbinärwerte wird zunächst die Hilfsvariable Zahl dadurch beschrieben, dass vier Nichtbinärwerte in die ersten vier Dimensionen des Array3 eingesetzt werden, um Zugriff auf den dort gespeicherten Wert der Durchnummerierung zu erhalten. Anschließend wird die Hilfsvariable Zahl in die erste Dimension des Array2 eingefügt und die 10 Unterfälle 0 bis 9 der zweiten Dimension enthalten die zurück transformierten einzelnen Bit der ursprünglichen 10 Bit der Binärwertkombination.
-
Aufgrund der Werte X = 4 und Y = 10 ergibt sich eine durchschnittliche Transformationsrate von 10 Bit ÷ 4 Werte = 2,5 Bit pro Sextärwert.
-
Liste der verwendeten Variablen
-
-
- a1
- Durchnummerierte Variable a, die ganzzahlige Werte annehmen kann
- b1
- Durchnummerierte Variable b, die ganzzahlige Werte annehmen kann
- B1
- Durchnummerierter Binärwert B, der stellvertretend 1 Bit darstellt mit den möglichen Inhaltswerten 0 und 1
- BY
- Letzter Binärwert B des Y-fachen verwendeten Bündels, der stellvertretend 1 Bit darstellt mit den möglichen Inhaltswerten 0 und 1.
- N1
- Durchnummerierter Nichtbinärwert N, der stellvertretend einen Nichtbinärwert der Wertigkeit ZN darstellt mit den möglichen Inhaltswerten 0, 1, ..., (ZN – 1).
- NX
- Letzter Nichtbinärwert N des X-fachen verwendeten Bündels, der stellvertretend einen Nichtbinärwert der Wertigkeit ZN darstellt mit den möglichen Inhaltswerten 0, 1, ..., (ZN – 1).
- X
- Wert, der der Größe des verwendeten Bündels für Nichtbinärwerte entspricht
- Y
- Wert, der der Größe des verwendeten Bündels für Binärwerte entspricht, mithin die Anzahl der gebündelten Bit
- ZN
- Wertigkeit der verwendeten Nichtbinärwerte, beispielsweise ZN = 3 für Ternärwerte
-
Verwendete Quellen der Nichtpatentliteratur
-
-
Dworatschek, Sebastian – Grundlagen der Datenverarbeitung, 8. Auflage, de Gruyter 1989
-
Bauer, Friedrich und Goos, Gerhard – Informatik: eine einführende Übersicht, 4. Auflage, Springer 1991
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Nicht-Patentliteratur
-
- Dworatschek, S. 163 [0002]
- Bauer/Goos, S. 42 [0003]