DE19732626C2 - Verfahren zum Verarbeiten eines komprimierten Datenstromes - Google Patents

Verfahren zum Verarbeiten eines komprimierten Datenstromes

Info

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
Application number
DE19732626A
Other languages
English (en)
Other versions
DE19732626A1 (de
Inventor
Patrick E Welborn
David Hall
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Co
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of DE19732626A1 publication Critical patent/DE19732626A1/de
Application granted granted Critical
Publication of DE19732626C2 publication Critical patent/DE19732626C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/41Bandwidth or redundancy reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/005Statistical coding, e.g. Huffman, run length coding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; 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.
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.
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.
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.
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.
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.
DE19732626A 1996-12-02 1997-07-29 Verfahren zum Verarbeiten eines komprimierten Datenstromes Expired - Fee Related DE19732626C2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (10)

* Cited by examiner, † Cited by third party
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