DE19732626C2 - Verfahren zum Verarbeiten eines komprimierten Datenstromes - Google Patents
Verfahren zum Verarbeiten eines komprimierten DatenstromesInfo
- Publication number
- DE19732626C2 DE19732626C2 DE19732626A DE19732626A DE19732626C2 DE 19732626 C2 DE19732626 C2 DE 19732626C2 DE 19732626 A DE19732626 A DE 19732626A DE 19732626 A DE19732626 A DE 19732626A DE 19732626 C2 DE19732626 C2 DE 19732626C2
- Authority
- DE
- Germany
- Prior art keywords
- data
- segment
- buffer
- reading
- elements
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 25
- 230000006835 compression Effects 0.000 description 7
- 238000007906 compression Methods 0.000 description 7
- 230000006837 decompression Effects 0.000 description 4
- 230000002457 bidirectional effect Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 241000282320 Panthera leo Species 0.000 description 1
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 108090000623 proteins and genes Proteins 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/41—Bandwidth or redundancy reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/005—Statistical coding, e.g. Huffman, run length coding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Record Information Processing For Printing (AREA)
- Dot-Matrix Printers And Others (AREA)
Description
Diese Erfindung bezieht sich auf ein Verfahren zum Verar
beiten eines komprimierten Datenstromes und insbesondere auf
ein Verfahren zum bidirektionalen Dekomprimieren von Daten
von einem eindirektional komprimierten Datenstrom.
Komprimierte Daten werden häufig als kontinuierlicher Strom
mit diskreten Segmenten ausgelesen oder empfangen, die de
komprimiert werden müssen, sowie dieselben ausgelesen wer
den. Bei vielen Komprimierungsschemata weisen die Segmente
variable Längen auf. Jedes Segment beginnt mit einem Steuer
wort, das die Länge des Segments oder die Anzahl von Daten
bytes oder Elementen, die dem Steuerwort folgen, anzeigt.
Fig. 1 zeigt ein Beispiel eines Datenstroms 10, der mehrere
diskrete Segmente 11 aufweist, die als Segmente A bis N be
zeichnet werden. Jedes Segment weist ein Steuerwort oder
Steuerelement 12 auf, dem eine variable Anzahl von Datenele
menten 13 folgt: Bei dem Beispiel sind die Steuerelemente
mit "STEUERELEMENT A" bis "STEUERELEMENT N" beschriftet. Die
Datenelemente werden entsprechend beschriftet, um ihren
Steuerelementen zu entsprechen. Beispielsweise werden die
Datenelemente, die dem Steuerelement STEUERELEMENT A ent
sprechen, mit "DATEN A1" bis "DATEN A2" beschriftet.
Jedes Steuerwort enthält einen Wert, der u. a. die Anzahl
und/oder Länge der folgenden Datenelemente in dem Segment
anzeigt. Das nächste Steuerwort ist nach der angezeigten An
zahl von Datenelementen angeordnet.
Es gibt verschiedene unterschiedliche Typen von Komprimie
rungsschemata, die Steuerelemente verwenden, denen eine va
riable Anzahl von Datenelementen folgt.
Zwei spezifische Beispiele sind in den US-Patenten Nr.
5,060,286 A und Nr. 5,452,405 A zu finden. Es ist zu beachten,
daß die Steuerelemente zusätzlich zu der Länge der darauf
folgenden Datenelemente verschiedene Dinge bezüglich
derselben, wie beispielsweise einen Versatz bezüglich
früherer Datenwerte, anzeigen können.
Eine Eigenschaft von komprimierten Datenströmen, wie sie in
Fig. 1 gezeigt sind, besteht darin, daß dieselben in ihrer
natürlichen Vorwärtsreihenfolge gelesen werden müssen, bei
welcher die Steuerelemente den Datenelementen voranstehen.
Ein Lesen des Datenstroms in einer umgekehrten Reihenfolge
ist nicht möglich. Nun sei beispielsweise angenommen, daß
mit dem Lesen am Ende eines Datenstroms 10 an dem mit DATEN
N2 beschrifteten Datenelement begonnen wurde. Das Problem
besteht dabei darin, daß es keinen Weg gibt, um die Anzahl
der Datenelemente, die dem mit 12 beschrifteten Steuerele
ment vorangehen, zu erfahren. Folglich wäre es unmöglich,
das Steuerelement zu lokalisieren oder dasselbe von den Da
tenelementen zu unterscheiden.
Trotz der Schwierigkeiten ist es manchmal erforderlich, ei
nen komprimierten Datenstrom in einer umgekehrten Reihenfol
ge zu verarbeiten. Bidirektionale Rastertypdrucker stellen
den Bedarf für eine solche umgekehrte Verarbeitung dar. Bei
Druckern wie diesen sind häufig mehrere Druckkopfdurchläufe
über eine einzige Rasterreihe erforderlich. Die Daten, die
der Rasterreihe entsprechen, werden zuerst in ihrer ur
sprünglichen Reihenfolge für einen ersten Durchlauf des
Druckkopfs in einer Vorwärtsrichtung und daraufhin in einer
umgekehrten Reihenfolge für einen zweiten Durchlauf des
Druckkopfs in einer umgekehrten Richtung benötigt.
Es gibt zwei Hauptlösungen für dieses Problem. Die erste Lö
sung besteht darin, das Komprimierungsschema zu modifizie
ren, indem ein entsprechendes Steuerelement sowohl vor als
auch nach den Datenelementen eines bestimmten Segments pla
ziert wird. Der Nachteil dieser Lösung besteht darin, daß
dies die Anzahl der erforderlichen Steuerwörter verdoppelt,
wodurch die Wirksamkeit des Komprimierungsschemas verringert
wird.
Die zweite Hauptlösung besteht darin, eine Kopie der dekom
primierten Daten während einer ersten Vorwärtsdekomprimie
rung des Datenstroms zu erzeugen und zu halten, und sich
nachfolgend auf die dekomprimierten Daten und nicht auf den
ursprünglichen komprimierten Datenstrom zu beziehen. Der
Nachteil dieser Lösung besteht darin, daß dieselbe eine be
trächtliche Speichermenge erfordert, um die dekomprimierten
Daten zu speichern.
Die US-Patentschrift 4,463,444 befaßt sich mit einem Wort
verarbeitungssystem, welches eine bi-direktionale Verar
beitung sequenzieller Daten unterstützt. Bei diesen Daten
handelt es sich jedoch nicht um komprimierte Daten. Bei den
hier erörterten Daten handelt es sich um Zeichencodes,
zwischen denen Steuerdaten liegen. Jeder Block von Steuer
daten hat einen unmittelbar vorhergehenden Steuerblock-
Identifizierer. Durch diesen Identifizierer ist es einem
Drucker möglich, den Steuerblock von normalen, die Zeichen
betreffenden Daten zu unterscheiden. Wenn ein derartiger
Datenstrom rückwärts verarbeitet wird, gibt es keinen
einfachen Weg, den Steuerdatenblock zu erfassen und von dem
Buchstaben- oder Zeichen-Datensatz zu unterscheiden. Die von
der US-Patentschrift 4,463,444 zur Lösung dieses Problems
vorgeschlagene Technik besteht in dem Einfügen eines
zusätzlichen Steuerblock-Identifizierers nach jedem Steuer
datenblock, so daß der Steuerdatenblock durch ein Paar von
identischen Identifizierern umgeben ist. Den Steuerdaten
wiederum folgen die die Zeichen betreffenden Daten. Dieser
Lösungsansatz wurde in der Fachwelt bislang beschritten,
wenn ein Datenstrom mit einem Steuerdatensatz, der sich auf
bestimmte nachfolgende Datenelemente bezieht, derart umge
staltet werden sollte, daß eine bi-direktionale Lesbarkeit
des Datenstromes ermöglicht wird.
Über diese Lehre geht auch nicht die EP 0540350 A2 hinaus,
die sich nicht allgemein mit dem Verarbeiten eines bestimm
ten Datenstromes befaßt, sondern damit, wie eine Mehrzahl
von unabhängigen Signalen, wie beispielsweise die trans
formations-codierten Datensignale von Helligkeitssignalen
und Farbwertsignalen eines Farbvideosignals, auf der
Zeitbasis miteinander gemischt werden und unter Verwendung
einer veränderlichen Lauflängencodierung verarbeitet werden,
wobei die codierten Ergebnisse nicht eine bestimmte relative
Position oder Sequenz auf der Zeitbasis beibehalten. Für die
gemeinsame Lauflängencodierung werden die genannten Hellig
keits- und Farbsignale einer Mischschaltung für die Signal
folgen zugeführt und einer einen Rückwärtslauf erzeugenden
Schaltung zugeführt, innerhalb der ein Verarbeitungslauf in
der Rückwärtsrichtung bezüglich der Codierungsrichtung
vorgenommen wird. Das Ergebnis dieses Rückwärtsverarbei
tungslaufes wird einer Codierschaltung für die Codierung mit
variabler Länge zugeführt, so daß die Codierung ausgeführt
wird, während die Relation der Signale bezogen auf die
Zeitbasis aufrechterhalten wird. Die Technik nach dieser
Schrift wird man also nur dann einsetzen, wenn eine Lauflän
gencodierung von Datensignalen aus unterschiedlichen
Quellen, die gemeinsam verarbeitet werden sollen, in
Betracht kommt. Typischerweise haben, die miteinander zu
kombinierenden Datenströme jeweils eine Reihe von anfäng
lichen Nullen, einen nachfolgenden Dateninhalt und eine
Reihe von nachfolgenden Nullen. Durch die beschriebene Art
der vorwärtsgerichteten und rückwärtsgerichteten Verar
beitung der Datenströme soll erreicht werden, daß die
anfänglichen und nachfolgenden "Nullen" beseitigt werden.
Bei der Codierung muß also eine Lauflänge vor den Daten und
eine Lauflänge hinter den Daten erfaßt und codierungsmäßig
bei der Lauflängencodierung berücksichtigt werden.
Die Aufgabe der vorliegenden Erfindung besteht darin, ein
Verfahren zu schaffen, das eine bidirektionale Verarbeitung
von komprimierten Daten ermöglicht, ohne die Wirksamkeit der
Komprimierung zu verringern und ohne einen zusätzlichen
Speicher zu benötigen.
Diese Aufgabe wird durch ein Verfahren zum Verarbeiten eines
komprimierten Datenstromes gemäß Anspruch 1 gelöst.
Die Erfinder haben einen Weg entwickelt, um komprimierte Da
ten bidirektional zu verarbeiten, ohne die Komprimierungs
wirksamkeit zu verringern und ohne einen zusätzlichen Spei
cher zu benötigen.
Gemäß einem Aspekt der Erfindung wird ein Verfahren zum
Dekomprimieren eines komprimierten Datenstroms mit diskreten
komprimierten Segmenten geschaffen, die in einer natürlichen
Sequenz auftreten, wobei die Steuerelemente den Datenelemen
ten vorausgehen. Zu Anfang wird der Datenstrom in seiner
natürlichen Sequenz von einem Datenpuffer verarbeitet. Nach
dem Lesen jedes Segments werden jedoch die Positionen der
Steuerelemente und der Datenelemente in dem Datenpuffer
umgekehrt. Daraus ergibt sich, daß jedes Segment modifiziert
wird, nachdem dasselbe in der Vorwärtsrichtung verarbeitet
ist, derart, daß dessen Datenelemente dem zugeordneten
Steuerelement vorausgehen. Anschließend werden die
Steuerelemente vor den zugeordneten Datenelementen
ausgelesen, wenn dieselben in einer umgekehrten Reihenfolge
aus dem Datenpuffer gelesen werden, wodurch eine De
komprimierung des Datenpuffers möglich wird.
Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung
werden nachfolgend unter Bezugnahme auf die beiliegenden
Zeichnungen näher erläutert. Es zeigen:
Fig. 1 ein Blockdiagramm eines Datenpuffers, der eindirek
tional komprimierte Daten hält, gemäß dem Stand der
Technik.
Fig. 2 ein Ablaufdiagramm, das ein Verfahren gemäß der Er
findung zeigt.
Fig. 3-7 Blockdiagramme, die einen beispielhaften Datenpuf
fer an unterschiedlichen Punkten in dem Verfahren
von Fig. 2 zeigen.
Fig. 2 zeigt bevorzugte Schritte gemäß einem Ausführungsbei
spiel der Erfindung. Diese Schritte werden durch einen pro
grammierbaren Computer oder einen Mikroprozessor, der bei
spielsweise in der Steuerungseinrichtung eines Druckers vor
zufinden ist, oder durch eine äquivalente festverdrahtete
Logik implementiert.
Ein erster Schritt 100 weist das Empfangen eines komprimier
ten Datenstroms auf. Der komprimierte Datenstrom weist eine
Mehrzahl von komprimierten Segmenten in einer natürlichen
Sequenz auf. Jedes Segment weist ein Steuerelement gefolgt
von zugeordneten Datenelementen auf. In den meisten Fällen
spezifiziert das Steuerelement die Länge der folgenden Da
tenelemente.
Der nachfolgende Schritt 102 weist das Speichern einer Grup
pe von komprimierten Segmenten in einem Datenpuffer in der
selben Reihenfolge auf, mit der dieselben empfangen wurden.
Jede Gruppe entspricht derselben logischen Anzahl von Seg
menten, welche als Ganzes gehandhabt werden müssen. Bei ei
nem Drucker kann beispielsweise eine Gruppe von Segmenten
entweder die Segmente, die Daten für eine bestimmte gedruck
te Reihe halten, oder vielleicht die Segmente umfassen, die
Daten halten, die für mehrere Reihen eines Druckkopfdurch
laufs benötigt werden.
Die Fig. 3-7 stellen einen Datenpuffer 30 dar, der kompri
mierte Datensegmente 31 mit Steuerelementen 32 und folgenden
Datenelementen 33 aufweist. Bei dem bevorzugten Ausführungs
beispiel der Erfindung wird der Datenpuffer bidirektional
durchquert, wobei an seinem Anfang begonnen wird. Die kom
primierten Daten werden Element für Element ausgelesen. Ein
momentane Pufferzeiger, der durch das Bezugszeichen 34 ange
zeigt ist, zeigt den momentanen Fortschritt des Lesens des
Datenpuffers an. Wenn entweder in der Vorwärts- oder umge
kehrten Richtung ausgelesen wird, wird der Zeiger 34 beibe
halten, derart, daß derselbe auf das nächste zu lesende Ele
ment verweist. Insbesondere wenn der Datenpuffer in der Vor
wärtsrichtung durchquert wird, wird der momentane Datenpuf
fer nach dem Auslesen jedes Elements in der Vorwärtsrichtung
weitergerückt. Wenn der Datenpuffer in der umgekehrten Rich
tung durchquert wird, wird der gegenwärtige Pufferzeiger
nach dem Lesen jedes Elements in der umgekehrten Richtung
weitergerückt.
In Fig. 3 befindet sich der gegenwärtige Datenzeiger 34 am
Anfang des Datenpuffers, wobei derselbe anzeigt, daß ein er
stes Element (STEUERELEMENT A) das nächste in der Vorwärts
richtung auszulesende Element ist. Ein Lesen in der umge
kehrten Richtung ist an diesem Punkt nicht möglich, da sich
der gegenwärtige Datenzeiger bereits an dem Anfang des Da
tenpuffers befindet.
Die Segmente werden eines nach dem anderen in ihrer
natürlichen Vorwärtssequenz aus dem Datenpuffer gelesen und
dekomprimiert. Nun wird wieder auf Fig. 2 Bezug genommen.
Ein Schritt 104 umfaßt das Lesen und Dekomprimieren eines
bestimmten Segments aus dem Datenpuffer. Während des Lesens
wird der gegenwärtige Pufferzeiger beibehalten, derart, daß
derselbe immer die Position des nächsten zu lesenden Ele
ments in dem Datenpuffer anzeigt. Folglich wird der gegen
wärtige Pufferzeiger während der Vorwärtsdurchquerung des
Datenpuffers nach dem Lesen jedes Elements weitergerückt.
Fig. 4 zeigt die Position des gegenwärtigen Pufferzeigers
nach dem Lesen des ersten komprimierten Segments des Daten
puffers 30. Derselbe ist vor dem Segment B positioniert, wo
durch angezeigt wird, daß das Segment B das nächste in der
Vorwärtsrichtung auszulesende Segment ist.
Nun wird nochmals auf Fig. 2 Bezug genommen. Ein Schritt 106
des Umkehrens der Reihenfolge des Steuerelements und der zugeordneten
Datenelemente von dem komprimierten Segment, das
gerade aus dem Datenpuffer gelesen wurde, wird nun durchge
führt. Daraufhin wird ein Schritt 108 des Schreibens des
komprimierten Segments zurück an seine ursprüngliche Posi
tion in dem Datenpuffer durchgeführt, wobei das Steuerele
ment und die zugeordneten Datenelemente umgekehrt sind. Das
heißt, daß das Steuerelement derart neu positioniert ist,
daß dasselbe den Datenelementen folgt und die Datenelemente
bezüglich der Reihenfolge umgekehrt sind. In einigen Fällen
kann es sogar erwünscht sein, die Bitreihenfolge der Daten
elemente umzukehren, bevor dieselben zurück in den Datenpuf
fer geschrieben werden.
In der Praxis werden die Schritte 106 und 108 durch Beibe
halten eines nacheilenden Pufferzeigers 35 und eines tempo
rären Speicherstapels 36 (Fig. 4) durchgeführt. Der nachei
lende Pufferzeiger 35 wird verwendet, um die ursprüngliche
Position eines Segments in dem Datenpuffer aufzuzeichnen.
Derselbe wird beibehalten, derart, daß derselbe die Position
des nächsten komprimierten Segments anzeigt, dessen Steuer
element und zugeordnete Datenelemente in den Datenpuffer
wiedereingeschrieben werden sollen. Insbesondere wird der
nacheilende Datenzeiger Segment für Segment in der Vorwärts
richtung während des Durchquerens des Datenpuffers in der
Vorwärtsrichtung weitergerückt. Derselbe wird jedoch nur
über ein bestimmtes Segment weitergerückt, nachdem der
Schreibschritt hinsichtlich dieses Segments ausgeführt wor
den ist. Nach einem solchen Schreibschritt wird der nachei
lende Datenzeiger zu dem nächsten komprimierten Segment, d. h.
zu derselben Position wie der gegenwärtige Pufferzeiger,
weitergerückt.
Der temporäre Speicherstapel 36 wird verwendet, um die von
dem Datenpuffer ausgelesenen Elemente zu speichern, derart,
daß dieselben erneut angeordnet und zurück in den Datenpuf
fer geschrieben werden können. Sowie die Datenelemente aus
dem Puffer 30 gelesen werden, werden dieselben auf den tem
porären Speicherstapel 36 geschoben. Folglich wird das Steuerelement
A als erstes geschrieben, gefolgt von dem Daten
element A1 und daraufhin dem Datenelement A2. Dies ist der
in Fig. 4 gezeigte Zustand. Der dargestellte nacheilende
Pufferzeiger 35 ist vor dem ersten komprimierten Datenseg
ment positioniert, während der gegenwärtige Pufferzeiger vor
dem zweiten komprimierten Segment positioniert ist. Dies
zeigt an, daß das gesamte Segment A ausgelesen worden ist,
jedoch noch wiedereingeschrieben werden muß.
Um die Elemente zurück in den Datenpuffer wiedereinzuschrei
ben, werden dieselben einfach in einer LIFO-Reihenfolge (LI
FO = last-in-first-out = zuletzt hinein, zuerst heraus) von
dem Stapel zu folgenden Positionen in dem Datenpuffer abge
hoben, wobei bei der Position begonnen wird, auf die von dem
nacheilenden Datenzeiger 35 verwiesen wird. Folglich wird
das Datenelement A2 als erstes geschrieben, gefolgt von dem
Datenelement A1 und daraufhin von dem Steuerelement A. Der
nacheilende Datenzeiger wird daraufhin zu dem nächsten Seg
ment weitergerückt. Das Ergebnis ist in Fig. 5 dargestellt.
Fig. 6 zeigt den sich ergebenden Inhalt des Datenpuffers 30
nach dem Durchqueren des gesamten Datenpuffers in der Vor
wärtsrichtung. Die Schritte 110 und 112 von Fig. 2 sind Ent
scheidungsschritte, die anzeigen, daß das Verfahren für je
des Segment und für die nachfolgenden Gruppen von Segmenten
wiederholt wird.
Unter Verwendung des im vorhergehenden beschriebenen Schemas
ist es möglich, nach dem Lesen und Wiedereinschreiben einer
Mehrzahl von Segmenten in ihrer natürlichen Reihenfolge von
dem Datenpuffer, die Richtung der Pufferdurchquerung umzu
kehren. Die Erfindung umfaßt somit einen Schritt des Lesens
von Segmenten in einer umgekehrten Reihenfolge aus dem
Datenpuffer, wobei bei dem letzten Segment begonnen wird,
sammentreffen. Das Leseverfahren kann mehrere Male umgekehrt
werden, wenn es erforderlich ist, die Daten mehrere Male in
unterschiedlichen Richtungen zu verarbeiten.
Das Lesen des Datenpuffers in der umgekehrten Reihenfolge
wird auf ähnliche Weise zu dem Lesen in der Vorwärtsrichtung
durchgeführt. Insbesondere wird der Schritt des Umkehrens
der Steuer- und Datenelemente fortgesetzt, sogar wenn der
Datenpuffer in der umgekehrten Richtung ausgelesen wird. Die
Daten werden Element für Element ausgelesen, wobei mit einem
Steuerelement begonnen wird. Der gegenwärtige Pufferzeiger
wird in der umgekehrten Richtung weitergerückt, sowie jedes
Element ausgelesen ist. Die Elemente werden auf den temporä
ren Speicherstapel geschoben, sowie dieselben ausgelesen
sind, und werden nach dem Lesen eines gesamten Segments zu
rück zu dem Datenpuffer geholt. Der nacheilende Datenzeiger
wird Segment für Segment in der umgekehrten Richtung wei
tergerückt, nachdem jedes Segment erneut angeordnet und in
den Datenpuffer wiedereingeschrieben ist. Fig. 7 zeigt den
resultierenden Datenpuffer, nachdem ein komprimiertes Seg
ment N in der umgekehrten Richtung ausgelesen worden ist.
Nachdem ein Segment in der umgekehrten Richtung ausgelesen
ist, werden dessen Elemente positioniert, wie dieselben in
dem ursprünglichen Datenstrom positioniert waren. Von dem in
Fig. 7 gezeigten Punkt kann die Dekomprimierung entweder in
der Vorwärts- oder umgekehrten Richtung von dem gegenwärti
gen Pufferzeiger fortschreiten, da ein Steuerelement dem ge
genwärtigen Pufferzeiger sowohl unmittelbar voranstehend als
auch unmittelbar folgend positioniert ist.
Die Erfindung liefert eine benötigte Verbesserung bei den
Dekomprimierungstechniken, indem es ermöglicht wird, daß
eindirektional komprimierte Datenströme ohne einen signifi
kanten hinzugefügten Zusatz bidirektional verarbeitet werden
können.
Claims (8)
1. Verfahren zum Verarbeiten eines komprimierten Daten
stroms, wobei der komprimierte Datenstrom eine Mehrzahl
von in natürlicher Reihenfolge aufeinander folgenden
Segmenten (31) aufweist, wobei jedes Segment (31) ein
Steuerelement (32) gefolgt von zugeordneten Datenele
menten (33) aufweist, wobei das Verfahren folgende
Schritte aufweist:
Lesen der Segmente (31) in ihrer natürlichen Abfolge aus einem Datenpuffer;
nach dem Lesen eines speziellen Segmentes (31), Umkeh ren der Reihenfolge der Elemente in diesem Segment, so daß das ursprünglich letzte Datenelement an erster Stelle, das ursprünglich vorletzte Datenelement an zweiter Stelle usw. und das Steuerelement zuletzt folgt; und
Zurückschreiben der in ihrer Reihenfolge veränderten Steuer- und Datenelemente in den Datenpuffer an den Ort des speziellen Segmentes.
Lesen der Segmente (31) in ihrer natürlichen Abfolge aus einem Datenpuffer;
nach dem Lesen eines speziellen Segmentes (31), Umkeh ren der Reihenfolge der Elemente in diesem Segment, so daß das ursprünglich letzte Datenelement an erster Stelle, das ursprünglich vorletzte Datenelement an zweiter Stelle usw. und das Steuerelement zuletzt folgt; und
Zurückschreiben der in ihrer Reihenfolge veränderten Steuer- und Datenelemente in den Datenpuffer an den Ort des speziellen Segmentes.
2. Verfahren gemäß Anspruch 1, das ferner einen zusätzli
chen Schritt des Dekomprimierens der Segmente (31) nach
dem Durchführen des Leseschritts aufweist.
3. Verfahren gemäß Anspruch 1, das ferner die folgenden
zusätzlichen Schritte aufweist, die nach dem Lesen und
Zurückschreiben einer Mehrzahl der Segmente (31) in
ihrer üblichen Reihenfolge durchgeführt werden:
Lesen der Segmente (31) in umgekehrter Reihenfolge, wo bei bei dem letzten Segment (31) begonnen wird, in wel chem die Positionen der Elemente umgedreht wurden; und
nach Lesen eines Segmentes (31) in der umgekehrten Rei henfolge, Umkehren der Positionen der Elemente in die sem Element, wie im Umkehrschritt des Patentanspruchs 1 beschrieben, und Zurückschreiben des modifizierten Seg mentes in den Datenpuffer an dem Ort des Segmentes.
Lesen der Segmente (31) in umgekehrter Reihenfolge, wo bei bei dem letzten Segment (31) begonnen wird, in wel chem die Positionen der Elemente umgedreht wurden; und
nach Lesen eines Segmentes (31) in der umgekehrten Rei henfolge, Umkehren der Positionen der Elemente in die sem Element, wie im Umkehrschritt des Patentanspruchs 1 beschrieben, und Zurückschreiben des modifizierten Seg mentes in den Datenpuffer an dem Ort des Segmentes.
4. Verfahren gemäß Anspruch 2, das ferner einen zusätzli
chen Schritt des Verwendens eines Speicherstapels (36)
aufweist, um das Steuerelement (32) und die zugeordne
ten Datenelemente (33) des speziellen Segments (31)
temporär zu speichern, bevor das Steuerelement (32) und
die zugeordneten Datenelemente (33) zurück in den Da
tenpuffer (30) geschrieben werden.
5. Verfahren gemäß Anspruch 2, das ferner folgenden zu
sätzlichen Schritt aufweist:
Bereitstellen eines ersten Pufferzeigers (34), der die Position des nächsten aus dem Datenpuffer (30) auszule senden Elements anzeigt.
Bereitstellen eines ersten Pufferzeigers (34), der die Position des nächsten aus dem Datenpuffer (30) auszule senden Elements anzeigt.
6. Verfahren gemäß Anspruch 4, das ferner folgende zusätz
liche Schritte aufweist:
Bereitstellen eines ersten Pufferzeigers (34), der die Position des nächsten aus dem Datenpuffer (30) auszule senden Elements anzeigt;
Bereitstellen eines zweiten Pufferzeigers (35), der die Position des nächsten komprimierten Segments (31) an zeigt, dessen Steuerelement (32) und zugeordnete Daten elemente (33) in einer umgekehrten Reihenfolge ge schrieben werden sollen.
Bereitstellen eines ersten Pufferzeigers (34), der die Position des nächsten aus dem Datenpuffer (30) auszule senden Elements anzeigt;
Bereitstellen eines zweiten Pufferzeigers (35), der die Position des nächsten komprimierten Segments (31) an zeigt, dessen Steuerelement (32) und zugeordnete Daten elemente (33) in einer umgekehrten Reihenfolge ge schrieben werden sollen.
7. Verfahren gemäß Anspruch 6, das ferner folgende zusätz
liche Schritte aufweist:
Weiterrücken des ersten Pufferzeigers (34) nach dem Lesen jedes Elements; und
Weiterrücken des zweiten Pufferzeigers (35) nach dem Zurückschreiben jedes komprimierten Segments (31) in dessen selbe Position.
Weiterrücken des ersten Pufferzeigers (34) nach dem Lesen jedes Elements; und
Weiterrücken des zweiten Pufferzeigers (35) nach dem Zurückschreiben jedes komprimierten Segments (31) in dessen selbe Position.
8. Verfahren gemäß Anspruch 1, wobei die Datenelemente
(33) eine Bitreihenfolge aufweisen, wobei das Verfahren
ferner einen zusätzlichen Schritt des Umkehrens der
Bitreihenfolge der Datenelemente (33) vor dem Zurück
schreiben derselben in den Datenpuffer (30) aufweist.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/758,984 US5963716A (en) | 1996-12-02 | 1996-12-02 | Bi-directional data stream decompression |
Publications (2)
Publication Number | Publication Date |
---|---|
DE19732626A1 DE19732626A1 (de) | 1998-06-04 |
DE19732626C2 true DE19732626C2 (de) | 2002-08-01 |
Family
ID=25053928
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19732626A Expired - Fee Related DE19732626C2 (de) | 1996-12-02 | 1997-07-29 | Verfahren zum Verarbeiten eines komprimierten Datenstromes |
Country Status (4)
Country | Link |
---|---|
US (1) | US5963716A (de) |
JP (1) | JP3692225B2 (de) |
DE (1) | DE19732626C2 (de) |
GB (1) | GB2321327B (de) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3604795B2 (ja) * | 1995-11-30 | 2004-12-22 | キヤノン株式会社 | 印字制御装置と印字制御方法 |
FI106758B (fi) | 1999-04-16 | 2001-03-30 | Nokia Networks Oy | Segmentointimekanismi lohkoenkooderia varten |
US7739335B2 (en) * | 2000-06-22 | 2010-06-15 | Sony Corporation | Method and apparatus for providing a customized selection of audio content over the internet |
US6487102B1 (en) * | 2000-09-18 | 2002-11-26 | Intel Corporation | Memory module having buffer for isolating stacked memory devices |
EP1322117A1 (de) * | 2001-12-06 | 2003-06-25 | Koninklijke Philips Electronics N.V. | Arithmetischer Kodierer und Dekodierer |
US7158255B2 (en) * | 2002-06-18 | 2007-01-02 | Lexmark International, Inc. | Method for printing shingling print data |
US8598990B2 (en) * | 2008-06-30 | 2013-12-03 | Symbol Technologies, Inc. | Delimited read command for efficient data access from radio frequency identification (RFID) tags |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4463444A (en) * | 1981-10-26 | 1984-07-31 | International Business Machines Corporation | Word processing system having a formatting bidirectional printer |
US5045925A (en) * | 1989-02-16 | 1991-09-03 | Fuji Photo Film Co., Ltd. | Apparatus for achieving compression encoding on components of image signal |
EP0445727A2 (de) * | 1990-03-05 | 1991-09-11 | Mitsubishi Denki Kabushiki Kaisha | Verfahren zur variablen Längenkodierung |
US5060286A (en) * | 1989-01-19 | 1991-10-22 | Hewlett-Packard Company | Raster row and byte group graphics images data compression method |
EP0453229A2 (de) * | 1990-04-17 | 1991-10-23 | Matsushita Electric Industrial Co., Ltd. | Verfahren zur Übertragung von Kodes mit variabler Länge |
EP0540350A2 (de) * | 1991-10-31 | 1993-05-05 | Sony Corporation | Verfahren und Vorrichtung zur variablen Längenkodierung |
US5452405A (en) * | 1993-01-25 | 1995-09-19 | Hewlett-Packard Company | Method and apparatus for delta row decompression |
DE3751514T2 (de) * | 1986-03-06 | 1996-03-28 | Advanced Micro Devices Inc | Adressieranordnung für RAM-Puffer-Steuereinrichtung. |
DE19536401A1 (de) * | 1994-09-30 | 1996-04-04 | Ricoh Kk | Verfahren und Einrichtung zum Codieren und Decodieren von Daten |
US5555321A (en) * | 1993-11-19 | 1996-09-10 | Fujitsu Limited | Image data binary coding method and apparatus |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0337715A (ja) * | 1989-07-05 | 1991-02-19 | Fujitsu Ltd | ビット順反転回路 |
US5471207A (en) * | 1994-02-23 | 1995-11-28 | Ricoh Company Ltd. | Compression of palettized images and binarization for bitwise coding of M-ary alphabets therefor |
US5649189A (en) * | 1995-11-29 | 1997-07-15 | 3Com Corporation | Method and apparatus for single pass data encoding of binary words using a stack for writing in reverse order |
-
1996
- 1996-12-02 US US08/758,984 patent/US5963716A/en not_active Expired - Lifetime
-
1997
- 1997-07-29 DE DE19732626A patent/DE19732626C2/de not_active Expired - Fee Related
- 1997-11-18 GB GB9724417A patent/GB2321327B/en not_active Expired - Fee Related
- 1997-12-01 JP JP32937097A patent/JP3692225B2/ja not_active Expired - Fee Related
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4463444A (en) * | 1981-10-26 | 1984-07-31 | International Business Machines Corporation | Word processing system having a formatting bidirectional printer |
DE3751514T2 (de) * | 1986-03-06 | 1996-03-28 | Advanced Micro Devices Inc | Adressieranordnung für RAM-Puffer-Steuereinrichtung. |
US5060286A (en) * | 1989-01-19 | 1991-10-22 | Hewlett-Packard Company | Raster row and byte group graphics images data compression method |
US5045925A (en) * | 1989-02-16 | 1991-09-03 | Fuji Photo Film Co., Ltd. | Apparatus for achieving compression encoding on components of image signal |
EP0445727A2 (de) * | 1990-03-05 | 1991-09-11 | Mitsubishi Denki Kabushiki Kaisha | Verfahren zur variablen Längenkodierung |
EP0453229A2 (de) * | 1990-04-17 | 1991-10-23 | Matsushita Electric Industrial Co., Ltd. | Verfahren zur Übertragung von Kodes mit variabler Länge |
EP0540350A2 (de) * | 1991-10-31 | 1993-05-05 | Sony Corporation | Verfahren und Vorrichtung zur variablen Längenkodierung |
US5452405A (en) * | 1993-01-25 | 1995-09-19 | Hewlett-Packard Company | Method and apparatus for delta row decompression |
US5555321A (en) * | 1993-11-19 | 1996-09-10 | Fujitsu Limited | Image data binary coding method and apparatus |
DE19536401A1 (de) * | 1994-09-30 | 1996-04-04 | Ricoh Kk | Verfahren und Einrichtung zum Codieren und Decodieren von Daten |
Also Published As
Publication number | Publication date |
---|---|
GB2321327A (en) | 1998-07-22 |
JP3692225B2 (ja) | 2005-09-07 |
DE19732626A1 (de) | 1998-06-04 |
US5963716A (en) | 1999-10-05 |
GB2321327B (en) | 2001-05-23 |
GB9724417D0 (en) | 1998-01-14 |
JPH10229341A (ja) | 1998-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3440377C2 (de) | ||
EP0096079B1 (de) | Verfahren zur Aufbereitung von Punktrasterdaten für Zeichen- und/oder Bilddarstellungen | |
DE2558498C2 (de) | Vorrichtung zur Darstellung von aus Bildpunkten zusammengesetzten Zeichen | |
DE3121503C2 (de) | Dokumenten-Verarbeitungssystem | |
DE69125549T2 (de) | Komprimierten Bildspeicher für hoch-auflösenden Rechnergraphik | |
DE2144596A1 (de) | Video-Anzeigevorrichtung | |
DE2814084A1 (de) | Sichtanzeigeeinrichtung | |
DE3625390A1 (de) | Graphisches anzeigesystem mit beliebiger rberlappung von bildausschnitten | |
DE2550268A1 (de) | Schnelldrucker fuer datenverarbeitungssysteme | |
DE2438202B2 (de) | Vorrichtung zur Erzeugung eines vorbestimmten Textes von Zeicheninformation, welche auf dem Bildschirm einer Videowiedergabeeinheit darstellbar ist | |
DE3416795C2 (de) | Bilddaten-Kompressionssystem | |
DE3882063T2 (de) | Verfahren zur Erzeugung von Buchstaben beim Punktdruck. | |
DE2548719A1 (de) | Drucker mit pufferspeicher | |
DE68919669T2 (de) | Graphikbilddatenkompressionsverfahren. | |
EP0132456A1 (de) | Verfahren und Vorrichtung zur Prüfung der Satzqualität von Druckerzeugnissen, insbesondere Zeitungen | |
DE68927008T2 (de) | Verfahren zum komprimieren und dekomprimieren von punktmatrixzeichen | |
DE2906883C2 (de) | ||
DE3248978C2 (de) | ||
DE3716752C2 (de) | ||
DE2906923C2 (de) | Speichergesteuerte, kraftangetriebene Schreibmaschine | |
DE2900586C2 (de) | Anordnung zum Decodieren von Codewörtern variabler Länge | |
DE1913502A1 (de) | Datengesteuerter Schriftzeichengenerator | |
DE2423817A1 (de) | Verfahren und schaltungsanordnungen zur codierung zweidimensionaler bildinformationen | |
DE19732626C2 (de) | Verfahren zum Verarbeiten eines komprimierten Datenstromes | |
DE69709695T3 (de) | Verfahren zur seitenzusammensetzung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8127 | New person/name/address of the applicant |
Owner name: HEWLETT-PACKARD CO. (N.D.GES.D.STAATES DELAWARE), |
|
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8327 | Change in the person/name/address of the patent owner |
Owner name: HEWLETT-PACKARD DEVELOPMENT CO., L.P., HOUSTON, TE |
|
8339 | Ceased/non-payment of the annual fee |