DE2948770A1 - Datenpackungsschaltkreis - Google Patents

Datenpackungsschaltkreis

Info

Publication number
DE2948770A1
DE2948770A1 DE19792948770 DE2948770A DE2948770A1 DE 2948770 A1 DE2948770 A1 DE 2948770A1 DE 19792948770 DE19792948770 DE 19792948770 DE 2948770 A DE2948770 A DE 2948770A DE 2948770 A1 DE2948770 A1 DE 2948770A1
Authority
DE
Germany
Prior art keywords
bit
memory
data
word
shift register
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.)
Withdrawn
Application number
DE19792948770
Other languages
English (en)
Inventor
Frank A Betron
Guillermo F Luzio
Amitabh Saran
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.)
Xerox Corp
Original Assignee
Xerox Corp
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 Xerox Corp filed Critical Xerox Corp
Publication of DE2948770A1 publication Critical patent/DE2948770A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • 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
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/42Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

  • BESCHREIBUNG
  • Die Ereindung betrifft einen Schaltkreis zum Packen von Daten variabler Länge in ein festes Wortlängenformat, sowie ein Verfahren zum Umsetzen von aus einer ersten Liste zufällig ausgewählten Eingabeworten in die entsprechenden Datenwörter in einer zweiten Liste, bei dem die Datenwörter der zweiten Liste von variabler Länge sind, und zum Packen der Datenwörter variabler Länge in feste Ausgabedatenworte mit n-Bits. Insbesondere bezieht sich die Erfindung auf einen Schaltkreis, der zu einem System zur Handhabung von Daten mit fester Wortlänge hinzugefügt werden kann, um Datenwörter variabler Länge in ein festes Wortlängenformat zu komprimieren bzw. zu packen.
  • In Computer-Systemen, die zur Datenübertragung verwendet werden, ist es häufig wünschenswert, variable Längenformate zu packen.
  • wenn diese Operation mit Software erzielt wird, vermindert die durch die Anwendung von Schiebe- und askiertechniken verbrauchte Menge Rechenzeit dieses Vorgangs ernsthaft die Gesamtsystemleistung und ist ein signifikanter Faktor bei der Reduzierung der Geschwindigkeit, mit der der Rechner Information senden oder empfangen kann.
  • Das Patent 4 109 310 mit dem Titel "Feldadressiersystem" beschreibt ein System mit einem Rechner, das Mikrocode-Programrnierung und spezielle Hardware. bzw. Vorrichtungen zum Ermöglichen des Schreibens oder Lesens von Daten variabler Länge in einen Rechner fester Wortlänge verwendet. Die Arbeitsweise in diesem Patent und in der jetzigen Erfindung sind darin verschieden, daß das bekannte Feldadressiers'st em jedes Wort mit variabler Größe irgendwo in den Speicher lad-!l kann, während die raomentane Erfindung auf das serielle Packen von Worten beim Empfang in ein festes Wortlängenformat begrenzt ist. Jedoch zeigt das angcführte Patent in seiner Beschreibung des verbesserten Mikrocodes die zahlreichen Stufen, die zum Schieben und maskieren variabler Datenwörter in ein festes Wortformat und zur Rettung von Pestwerten, falls es welche gibt, um Einschluß in den nächsten Schicbe- und Maskierschritt, benötigt werden.
  • Ein Verfahren zur Reduzierung der zum Senden von digitaler Information benötigten Zeit ist die Codierung der unbearbeiteten bzw. Rohdaten durch die Anwendung einer Strom- bzw. Lauflängencodierung. Um ein numerisches Beispiel aufzuzeigen, anstatt des Sendens 32 aufeinanderfolgenden Bits würde das System die Binärzahl 100.000 , die binare Zahl für 32 senden. So können 32 Bit Information bei Verwendung eines Sechs-Bit-Wortes gesendet bzw. übertragen werden.
  • Die Anwendung einer Lauflängeneodierung ermöglicht eine beträchtliche Datenkompression.
  • Dic Grundtechnik der Lauflängencodierung wurde verschiedentlich verbessert. Im Patent Nr. 3 560 639 mit dem Titel Kaskadenlauflängen-Codiertechnik ist die grundlegende Lauflängencodierung so modifiziert, daß den ar meisten gezählte Lauflängen die kürzesten Codes zugeordnet werden. Auf diese Weise ist eine weitere Xompression bzw. Packung über die grundlegende Lauflängencodierungskompression hinaus erzielbar. Das genannte Patent beschreibt auch einen Schaltkreis, der Zähler und Schleberegister zur Codierung und Decodierung der Rohdaten in und aus diesem Code aufweist.
  • Eine noch größere Datenkompression kann durch die Verwendung von Huffman-Codes erzielt werden. Die Vorteile bei der Verwendung von Iluffman-Codes sind: 1. daß der Bais-Huffman-Code abhängig von den Charakteristika der speziell zu sendenden Daten zur Erzielung der größtmöglichen Kompression modifiziert werden kann und 2. daß die Codes an der Sendeseite des Systems seriell ohne zusätzliche Daten zur Angabe der Grenzen zwischen den Codes gesendet werden können, und so noch einheitlich decodierbar an der Empfangsseite sind. Ein cntsprechender Nachteil des lsuffman-Codes ist, daß keine Korrelation zwischen der ?nzahl der Bits in den Rohdaten und der Anzahl der Bits im Huffman-Code besteht, und Huffman-Codes variierender Länge willkürlich Datenwörtern zugeordnet werden. Daher sind die Schiebc- und Zählschaltkreise, wie die in dem US Patent Nr.
  • 3 560 G39 beschriebenen nicht für die Generierung und Interpretation von Huffman-Codes geeignet. Was daher in J1ochgcschwindigkeitsdatenübertragungsverbindungen benötigt wird, ist ein Schaltkreis, der zur Codierung von Rohdaten in die Form eines Huffman-Codes oder zur Decodierung von Huffman-Codes in Rohdaten mit hohen Geschwindigkeiten angewandt werden kann. Eine besonders nützliche Ausführungsfori dieses Schaltkreises wäre ein solcher, der zu einem Rechnersystem hinzugefügt werden könnte, das Huffman-Code-Daten oder allgemeiner jede Sequenz Wörter variabler Länge in einen Rechnerspeicher fester Wortlänge oder Äquivalentes packen könnte, wobei dieser Schaltkreis mit hohen Geschwindigkeiten arbeitet und gleichzeitig sehr wenig Rechnerzeit zur Ausführung dieser Funktion benötigt.
  • Aufgabe der Erfindung ist es, einen Schaltkreis und ein Verfahren zur Hochgeschwindigkeitsumsetzung fester Wortlängen in variable Wort längen und zum Packen dieser variablen Wortlängen in ein festes langenformat zu schaffen.
  • Diese Aufgabe wird durch einen Schaltkreis der eingangs beschriebenen Art gelöst, der gemäß der Erfindung gekennzeichnet ist durch einen m-Bit-pro-Wort-Speicher zur Speicherung und Ausgabe von Datenwörtern variabler Länge, wobei die m Bits ein Datenwort variabler Länge, unbenutzte Bits und ein Begrenzungsbit zur Markierung der Grenze zwischen dem Datenwort und den unbenutzten Bits aufweisen, ein m-Bit-Scieberegister, das zur parallelen Aufnahme der m-Bit-Speicherausgabe eingerichtet ist, ein n-Bit-Schieberegister zur seriel1.on Aufnahme der Inhalte des m-Bit-Schieberegisters, eine Logik zum Verhindern des Ladens der unbenutzten Bits und des Begrenzungsbits in das n-Bit-Schieberegister beim Herausschieben der Bits aus dem m-Bit-Register, einen auf die Zählung der in dem m-flit-Schieberegister verbleibenden Bits ansprechender Zähler zum Freigeben des Speichers zum Laden eines nächsten m-Bit-Wortes in das m-Bit-Schieberegister, nachdem der vorausgehende Inhalt des m-Bit-Registers vollständig herausgeschoben worden ist, und einen auf die Zählung der in das n-Bit-Register geladenen Bits ansprechenden Zähler zum Freigeben des n-Bit-Registers zur Ausgabe seines Inhaltes parallel nach der seriellen Aufnahme von n Datenbits.
  • Das erfindungsgemäße Verfahren zum Umsetzen von aus einer ersten Liste zufällig ausgewählten Eingabeworten in die entsprechenden Datenwörter in einer zweiten Liste, bei dem die Datenwörter der zweiten Liste von variabler Länge sind, und zum Packen der Datenwörter variabler Länge in feste Ausgabedatenworte mit n Bits, ist gekennzeichnet durch: das anfängliche Laden aller Datenworte variabler Länge in den Speicher, und ferner das Laden eines Begrenzungsbits zum Markieren der Grenzc zwischen jedem Datenwort variabler Länge und den unbenutzten Bits jedes Speicherpltzes, das Gebrauchen eincs Eingabewortes zum Aufbau einer Adresse mit der der Speicher adressiert wird, wodurch auf das entsprechende Wort variabler Länge zugegriffen und es in ein erstes Schieberegister ausgegeben wird, und das Verschieben des Datenwortes variabler Länge zum Abtrennen der unbenutzten Bits, das Verschieben der verbleibenden Bits, die das Datenwort variabler Länge bilden, in ein zweites Schieberegister, das parallele Ausgeben der Bits jedes Ausgabewortes gepackte Daten aus dem zweiten Schieberegister, wenn dieses voll wird, und das Gebrauchen des nächsten Eingabedatenwortes zum Zugriff und zur .Ausgabe des nächsten Datenwortes variabler Länge aus den Speicher, wenn das vorausgehende Wort varlabler Länge vollständig aus dem ersten Schieberegister hinausgeschoben ist.
  • Es schließt sich die Beschreibung eines Schaltkreises zum Packen von Datenwörter variabler Länge in ein festes Wortlängenformat an.
  • Jedes Datenwort variabler Länge und seine zugeordneten führenden O'en werden durch ein Begrenzungsbit getrennt und im Speicher gespeichert. Wenn auf den Speicher zugegriffen wird, wird das Ausgabewort.paraìlel in ein erstes Schieberegister geladen und zum Abspalten der führenden O'en und des Begrenzungsbits geschiftet.
  • Die verblibenden Datenbits werden dann seriell in ein zweites Schieberegister geschiftet bzw. geschoben. Wenn das zweite Schieberegister voll ist, wird das resultierende Datenwort fester Länge verriegelt. Wenn das erste Schieberegister leer ist, wird das nächste ort von Speicher hereingeladen. Auf diese Weise kann eine Serie von Datenwörtern variabler Länge in eine Serie Wörter fester Länge gepackt werden. Der Schaltkreis dient zum Packen vo Huffman-Codes variabler Länge, da die Grenzen zwischen den Codes selbst offensichtlich sind. Der Schaltkreis kann auch als Zeichengenerator angewandt werden, wobei die Datenausgabe variabler Länge die zur Generierung eines Zeichenbildes auf einer Rasterabtastanzeigevorrichtung benötigten Bits umfaßt.
  • Der hier beschriebene Datenpackungsschaltkreis weist eine Vielzahl von Anwendungen auf, und kann leicht mit Begriffen bei seiner Anwendung in einem rechner-gesteuerten Eaksimile- bzw. Biidübertragungssystem zur Ubertragung von Biiddaten erklärt werden. Am Faksimilesender wird ein Bild abgetastet und digitalisiert und die resultierenden Rohdaten werden durch irgendeine bekannte Einrichtung lauflängencodiert. In diesem Zahlenbeispiel wird angenor,.len, daß eine komplette Abtastzeile 1.024 Bits umfaßt, so daß jede Lauflänge irgendeine Zahl von 1 bis 1.024 ist. Ferner wird angenommen, daß diese Lauflängen in Huffman-Codes von 3 bis 23 Bits übertragen werden müssen. Schließlich müssen diese Huffman-Codes feste Wortlängen von 8 Bits zur lokalen Speich vor der Ubertragung zu dem Faksimileempfänger gepackt werden.
  • Um diese Funktion mit hoher Geschwindigkeit und einem minimum vom Rechner benötigter Zeit erzielt wird, wird ein Schaltkreis mit einem Nur-Lese-Speicher, der 2.000 Worte mit je 24 BitBreite enthält, benötigt. Dieser Nur-Lese-Speicher ist so programmiert, daß er alle benötigten Huffman-Codes und Begrenzungsbits enthält. Diese PROMS liegen im Adreßraum des Prozessorspeichers so, czaß in diesen spezifischen Beispiel, bei Adressierung des Speichers der entsprechende Huffman-Code von bis zu 23 Bits erzeugt wird. Im allgemeinen Fall kann die Ausgabe auf jede Länge ausgedehnt werden. Diese 24 Bits werden parallel in ein 24-Bit-Schieberegisters geladen, so daß der gültige Huffman-Code in den niederwertigsten Bits des 24-Bit-Schieberegisters angeordnet ist, und der Rest des 24-Bit-Registers wird mit führenden O'en geladen. Um dem Rest des Systems den Start des gültigen Huffman-Codes anzuzeigen, wird ein begrenzendes 1-Bit zwischen die führenden O'en und den gültigen Huffman-Coue zur Kennzeichnung des Beginns cAes Huffman-Code-Wortes angeordnet.
  • Nachdem das 24-Bit-Schieberegister parallel aus dem Nur-Lese-Speiciier (read only memory) geladen ist, werden die Bits seriell zu eine: Begrenzungsschaltkreis geschiftet bzw. geschoben, der die führtenden O'en und das Begrenzungsbit trennt. Danach, wenn die Bits aus dem 24-Bit-Schieberegister herausgeschiftet werden, können sie seriell in ein 8-Bit-Schieberegister geladen erden.
  • Wenn das 8-Bit-Schieberegister voll ist, kann das resultierende 8-Bit-wort parallel zum Rechnerspeicher oder irgendeinem anderen Pufferspeicher zur nachfolgenden Übertragung hinausgeschoben werdcn. Wenn immer das 24-Bit-Schieberegister leer wird, kann ein neuer lauflängencode zur Adressierung des ROM zur Erzeugung des nächsten Huffman-Codes, der wiederum parallel in das 24-Bit-Schieberegister geladen wird, verwendet werden. Auf diese Weise wird der ganze Prozess des Formattierens der Huffman-Codes, de in diesem Zahlenbeispiel zwischen 3 und 23 Bits variieren, in feste Wortlängen von ó Bits r.it hoher Geschwindigkeit und kleiner Systemverwaltungszeit ausgeführt werden.
  • Der gleiche Schaltkreis kann auch zur Datenkompression bzw.
  • Entpackung verwendet werden. In diesem fall wird der Huffman-Code zur Erzeugung einer PROM-Adresse verwendet und die Ausgabe des PROMS ist eine Reihe bzw. String Video Bits.
  • Für lange Lauf längen muß ein PROM-Speicherplatz eventuell wiederholt zur Erzeugung der benötigten Anzahl Video-Bits adressiert werden. Als Zanlenbeispiel, wenn 100 Bits zu erzeugen sind, kann ein Speicherplatz, der 23 Bits enthält, viermal adressicrt werden und ein Speicherplatz, der 8 Bits enthält, dann einmal acircssiert werden. Die Prozessor-Software bzw. Programmierung wird zur Steucrung dieses Verfahrens verwendet.
  • Falls aic 8-Bit-Schieberegisterausgabe in einen Rechnerspelcher geladen werden muß, kann ein existierendes Rechner-E/A (in/Ausgabe)-Tor für diesen Zweck verwendet werden.
  • Jedoch wird für Anwendungen riit höherer Geschwindigkeit ein Kanal für direkten Speicherzugriff (DMA) verwendet.
  • Der gleiche Schaltkreis mit einem Nur-Lese-Speicher, einem 24-Bit-Schieberegister, einen Begrenzer zum Trennen führender O'en und Begrenuzungsbits, und 8-Bit-Schieberegister zur Ausgabe der festen Wortlänge kann auch als Zeichengenerator verwendet werden. In dieser Anwendung kann der Nur-Lese-S;eicher zur Speicherung einer ganzen Quelle verwendet werden, in der jedes alphanumerischc Zeichen typischerweise durch eine 20 nal 22 Bit-Matrix definiert ist. Hierbei können 11 Bits Information zur Spezifikation des besonueren alphanumerischen Zeichens und der Zeile dieses Zeichens verwendet werden, wobei die ausgewhlte Zeile von 22 Bits in ein 22-Bit-Schieberegister parallel geladen wird. Danach wird diese Information seriell in ein 8-Bit-Schieberegister wie oben zur zeitweiligen Speiciierung unc zur endgültigen Verwendung als Einrichtung zum Generieren von Zeichenbildern durch die Verwendung irgendeiner Rasterausgabeabtastvorrichtng geschiftet. In jedem Fall wird durch Verwendung eines Nur-Lese-Speichers ein grcßes Schieberegister zur Aufnahme der ROM-Inhalte parallel und ein kleineres Schieberegister zur Aufnahme von orten fester Lange für den jeweiligen Reci1ner benötigt, und Daten variabler Länge koniicn in feste Wortlängen zur Verwendung in einem System mit festen Wortlängen gepackt werden. In bciaen Fällen können die Schaltkreiskonponenten so variiert werden, daß die vom Nur-Lese-Speicher ausgegebenen Worte und die Worte fester Länge jeder Größe angepaßt werden können.
  • Weitere Merkmale und Zweckmäßigkeiten der Erfindung ergeben sicn aus der Beschreibung eines Ausführungsbeispieles anhand der Figuren. Von den Figurcn zeigen: Fig. 1A einen hypothetischen Satz dezimaler Lauflängen und entsprechende Huffman-Codes; Fig. 1B die Anordnung dieser Codes in einem ROM, (Nur-Lese-Speich Fig. 1C das Verfahren zu Packen dieser Codes in ein 8-Bitbis 1G Ausgabewort und Reste; Fig. 2A ein vereinfachtes Schema des ROM's und 24-Bit-Schieberegisters; Fig. 2B ein Flußdiacrramia einer Endpackungsunterroutine zur Erzeugung von Lauflängen, die die Speicherwortlänge übersteigen; Fig. 2C einen Bereich eines PROM's, das in Verbindung mit der Unterroutine aus Figur 2B verwendet wird; Fig. 3 die Anordnung der ROM-Daten bei der Verwendung als Quel lengenerator; Fig. 4 ein Blockschaltbild des Systems mit CPU (Zentralprozessor), Hauptspeicher, DMA-Kanal und Datenpackungsschaltkreis; Fig. 5 ein Schema der Vorrichtung zum Zerlegen von führender o und Begrenzungsbit.
  • Die offenbarte Ausführungsform nicht reine Huffman-Codes, aber die Un-23 Bit Länge in einer NO.i mit 3 Moduln, jeder mit einer Kapazität von 1025 Worten mal 8 Bit. Tatsächlich sind die Codes in der bevorzugten Ausführungsform nicht reine Huffman-Codes, aber die Unterschiede sind in Bezug auf die beschriebene Vorrichtung und Verfahren nicht von Bedeutung. Zur Beschreibung wird angenommen, daß die Huffman-Äquivalente der dezimalen Lauflängen 9, 40 und 130, die in Figur 1A gezeigt sind, in dem ROM gespeichert sind, wie es in Figur 1B gezeigt ist, und der Schaltkreis arbeitet dann wie folgt: Das ROM wird zuerst durch eine relative Adresse entsprechend dem Huffman-Code der Lauflänge adressiert, was zu 24 Bits führt, die parallel in ein Schieberegister eingeschoben werden. Danach wird dieses Wort seriell in einen Begrenzerschaltkreis geschoben, der die führenden 0'en und das Begrenzungsbit zerlegt. Wenn das erste zugegriffene Wort der der Dezimalzahl 9 äquivalente Huffman-Code ist, bleibt nach dem Abspalten der Rest 1011, wie gezeigt.
  • Dieser wird seriell in die ersten fünf Bit eines 8-Bit-Schieberegisters wie in Figur 1C gezeigt, geschoben.
  • Es wird dann auf die ncste Zahl aus dem ROM zugegriffen. In diesem Fall wird angenommen, es sei die Dezimalzahl 40. Nach dem Zerlegen wird die Binärzahl 1011011 in das 8-Bit-Schieberegister geschoben. In diesen Fall ist das 3-Bit-Schieberegister nach dem Einschiften der ersten drei Bit voll und das darin enthaltene Wort kann parallel zu einem Pufferspeicher übertragen werden, wie es in Figur 1D gezeigt ist.
  • Die verbleibenden Bits werden dann in das 8-Bit-Schieberegister geschoben, was zu dem Bitmuster in Figur 1E führt.
  • Das dritte Codewort, das der Dezlntalzahl 130 entspricht, wird als nächstes verarbeitet, und die ersten 4 Bit ergeben ein zweites Ausgabewort, wie in Figur 1F und einen Rest wie in Figur 1G gezeigt.
  • Auf diese Weise werden Worte variabler Länge in feste Wortsegmente gepackt.
  • Figur 2 ist ein Blockschaltbild des Adreßbusses, des ROM's und dc 2-Bit-Schiebercgisters. Eine 11-Bit-Adresse wird von den ROM-Moduln 15 parallel empfangen und eine 24-Bit-Parallelausgabe wird an das 24-Bit-Schiebero'gister 14 angelegt. Die Schieberichtung kann jede Richtung sein, in Figur 2 werden die Bits nach rechts in den 24-Bit-Schieberegister 14 geschoben. Wie gezeigt, besteht jedes Wort aus führenden 0'en, einem 1-Begrenzungsbit und das Muster, was jede Kombination von 1'en und 0'en annehmen kann, ist hier mit X angogcbell. Der Inhalt des ROM 15 kann entweder ein Videomuster wie gezeigt sein, das in der Art eines Zeichengenerators verwendet wird, oder kann aus Huffman-Codes oder ähnlichem zur oben beschriebenen Verwendung bestehen Im Fall, daß eine Lauflänge langer als 23 Bits erzeugt werden muß, kann ein 24-Wort-Bereich des PROM-Speichers, wie es in Figur 2C gezeigt ist, und ein Prozessorprogramm wie es in Figur 2B gezeigt ist, in Verbindung mit diesem Schaltkreis verwendet werden. Zuerst teilt das Programm die Anzahl der Bits in der gewünsichten Lauflänge durch die maximale Anzahl von Bits, die in einem PROM-Speicherplatz enthalten sein können. Für ein numerisches Beispiel wird angenommen, daß die Lauflänge 100 (N=100) ist, und die maximale Anzahl von Bits pro Speicherplatz 23 ist. Dann ist der Quotient 4 (Q=4) und der Rest ist 8 (R=8). Der Prozessor schleift dann durch die Schritte # 4, # 5 und # 6 viermal zur Erzeugung von 92 Bits, und geht schließlich durch Schritt # 7 zur Addition der letzten 8 Bits. Durch Anwendung diesesDekompressions- bzw. InL-packungsverfahrens können Lauflängen größer als die Speicherwortlänge erzeugt werden.
  • Die angegebenen Adressen der zwei Worte in Figur 2, auf die zugegriffen wird, sind 4016 und 4017, oktal. Dies sind typische Adressen in einem Rechner mit 2K-Hauptspeicher, in dem der 4XXX Adreßblock für dieses Datenpackungsschaltkreis-ROM reserviert ist.
  • 3 zeigt die typischen Inhalte eines ROM, wenn der Schaltkreis im. Zeichengenerierungsmodus verwendet wird. Üf der Höhe des Systemes wird der geeignete Zeichenkennzeichner und die Rasterabtastzeilnummer als Adreßkomponenten verwendet. Die adressierte Datenzeile wird dann in das 24-Bit-Schieberegister wie vorher geladen.
  • Für den Buchstaben "R" ist das Bit 21 das Begrcnzungsbit, und läßt 20 Bits zur Ausgabe als Zeichendaten übrig. Für einen schmäleren Buchstaben kann das Begrenzungsbit eine Position weitcr links einnehmen und das Zeichen in dem verbleibenden Raum zur Schaffung eines variabel breiten BuchsLabenabstands zentriert werden . in dieser Figur sind alle leeren Bitpositionen 0, außer der ersten Reihe, diese Bits wurden zur größeren Klarheit weggelassen.
  • Das Gesamtblockschaltbild dieses Systems ist in Figur 4 gezeigt.
  • Die CPU (Zentralprozessor) 10 und der Speicher 11 können auf bekannte Weise verbunden werden. Hier treibt die CPU 10 den AdreB-bus 12 und die CPU 10 und der Speicher 11 kommunizieren bidirektional mit dem Datenbus 13. Auch ist eine diskrete Speicherleseleitung 24 zum Ermöglichen des Auslesens des Hauptspeichers 11 oder des ROM's 15 vorgesehen.
  • Wenn das ROM 15 adressiert wird, werden 24 Bit Daten parallel in das 24-ß'it-Schieberegister 14 geladen. Danach wird unter Steuerung der Schicbesteuerlogik 17 dieses 24-Bit-Datenwortes nach rechts geschoben, bis daß alle führenden O'en und das Begrenzungsbit zerlegt bzw. davon abgespalten worden sind. Dann werden die gültigen Datenbits seriell in das 8-Bit-Schieberegister 16 geschoben.
  • Jeder zurn Schieben des 24-Bit-Schieberegisters 14 verwendeter Taktimpuls wird durch den Zähler 20 gezählt. Wenn das 24-Bit-Schieberegister leer ist, wird ein "Zählfolgekomplett" - Signal vom Zähler 20 zur Schiebesteuerlogik 17 wie gezeigt geschickt und auch zur CPU 10. Die CPU 10 adressiert dann ein anderes ROM-Datenwort und beginnt einen neuen Zyklus.
  • Jeder zum Schieben des 8-Bit-Schieberegisters 16 verwendete Taktimpuls wird durch den Zähler 18 gezählt. wenn der Zähler 18 voll ist, wird ein "Zälllfolse ksmplett"-Signal vom Zähler 18 zur Schiebesteuerlogik 17, der Zustands-Steuerlogik 26, dem Verriegelungsglied bzw. Latch 22 und der. DMA-Anforderungs-Flip-Flop 21 geschickt. Als Folge davon wird das Datenwort im 8-Bit-Schiebregister 16 im 8-Bit-Verriegelungsglied 22 verriegelt bzw. festgelegt, und das 8-Bit- Schicberegister 1G zum Beginn des Packens des nächsten Wortes freigesetzt. Das 8-Bit-Datenwort in dem Verriegelungsglied bz.
  • Register ]unn dann auf den DMA bzw. den Kanal für direkten Speicherzugriff 27 zum Stehlen eines Speicherzyklusses warten, während dessen das 8-Bit-Wort vom Verriege-lungsglied 22 in den Speicher Treiber 11 durch den Bus-23 und den Datenbus 13 geladen wird.
  • Während jedes SlDeicher-Lese-Zyklusses macht die Speicherleseleitung 24 sowohl den Hauptspeicher 11 als auch das ROM 15 ansteuerbar. Jedoch lädt das 24-Bit-Schieberegister 14 die ihm angebotenen Daten nur, wenn eine ROM-Adresse durch die CPU 10 spezifiziert ist. Die Entscheidung wird durch die Adreßdekodierlogik 24 getroffen, deren Ausgabe ermöglicht, daß ein Ladesignal von der Zustandssteuerlogik durch das Gatter 25 hindurchgeht.
  • Die gepackten Daten können in ein Pufferregister oder in eine CPU durch jedes Standard-E/A-Tor oder DMA-Kanal geladen werden. In der beschriebenen Ausführungsform wird das Laden durch einen Schaltkreis 27 zum direkten Speicherzugriff erzielt. Wenn das DMA-Anforderungs-Flip-Flop 21 eine vom Zähler 18 stammende Anzeige erhält, daß ein 8-Bit-Wort zum Speichern fertig ist, schickt es eine Kanalanforderung auf Leitung 28 zu dem DMA-Zugriffschaltkreis 27, der ein Kanalquittungssignal auf Leitung 30 zurückgibt, und das DMA-Anforderungs-Flip-Flop 21 zurücksetzt. Gleichzeitig sendet der DMA 27 ein Halt-Anforderungssiognal auf Leitung 31 zur sCPU, das die CPU 10 zur Freigabe des Speichers 11, lang genug für einen Ladezyklus, auffordert. Wenn ein Halt-Quittungssignal von der CPU 10 auf Leitung 36 durch den DMA 27 gefangen wird, wird ein E/A-Lesebefehl auf Leitung 32 zum Bus-Treiber23 gesandt. Auch ein Speicherschreibbefehl wird zum Speicher 11 auf Leitung 33 gesandt, und ermöglicht so dem Bus-z-eiber 23 das Laden eines Wortes vom Verriegelungsglied 22 durch den Datenbus 13 in den Speicher 11.
  • Alternativ kann das E/A-Tor zum Laden des Speichers verwendet werden. In dieser Fall, wenn das Zählfolge komplett-Signal von der CPU 10 auf Leitung 37 empfangen wird, sendet die CPU ein E/A-Lesesignal auf leitung 32, um den Bus-Treiber 23 um Treiben des Datenbusses verfügbar zu machen. ein gewöhnlicher Speicherlosezyklus lädt dann die Daten in Speicher 11.
  • Figur 5 ist ein Schema eines Schaltkreises zum Trennen der führenden O'en und des Begrenzungsbits. Die Bits werden aus dem 24-Bit-Schieberegisters 14 herausgeschoben aber in dem 8-Bit-Schicberegister 16 wegen eines Taktsperrsignals vom Flip-Flop 35 an das Gatter 34 blockiert. Nach einem anfänglichen Abtrennen der führenden O'en setzt ein 1-Begrenzungsbit das Flip-Flop 35, macht Gatter 34 ansteuerbar und ermöglicht, daß die verbleibenden gültigen Datenbits in das 8-Bit-Schieberegister 16 geladen werden Schließlich, wenn das 24-Bit-Schieberegister 14 leer ist, setzt der Zähler 20 das 24-Bit-Schieberegister 14 und das Flip-Flop 35 zum Starten eines neuen Zyklusses zurück.
  • Der Schaltkreis wurde mit Begriffen bei der Anwendung eines ROM's zur Speicherung von Quellen, Datenbitlauflängcn und Huffman-Codes beschrieben. Jedoch ist klar, daß nichtpermanente RAM's (Speicher mit wahlfreiem Zugriff) auch verwendet werden können. In diesem Fal kann die Codierung zur Erhöhung der Leistungsfähigkeit geändert werden, wenn ein unterschiedlicher Operationsmodus begonnen wird (beispielsweise Ilaibtonbilder und Text). Ähnlich kann eine änderung der Quelle erzielt werden, in-dem ein unterschiedlicher Datensatz in den Zeichengenerator geladen wird. Diese Beschreibung beruht auf einem Beispiel, in der die RoM-Wortlänge länger ist, als die Festwortlänge. Dies ist keine notwendige Begrenzung, kurze variable Wörter können in längere Wörter fester Länge mit diesem Datenpackungsschaltkreis gepackt werden. Auch können auch andere Codes als !iuffman-Codes in den beschriebenen Kompressicns- und Dekompressionsmoden verwendet werden.
  • L e e r s e i t e

Claims (16)

  1. Datenpackungsschaltkreis PATENTANSPRÜCHE 1. Schaltkreis ?urt Packen von Daten variabler Länge in ein festes Wortlängenformat, gekennzeichnet durch einen rn-Bit-pro-Wort-Speicher (15) zur Speicherung und Ausgabe von Datenwörtern variabler Länge, wobei die m Bits ein Datenwort variabler Lnge, unbenutzte Bits und ein Begrenzungsbit zur Markierung der Grenze zwischen dem Datenwort und den unbenutzten Bits aufweisen, ein m-Bit-Schieberregister (14) das zur parallelen Aufnahme der m-Bit-Spei-cherausgabe eingerichtet ist ein n-Bit-Schieberregister (16) zur seriellen Aufnahme der Inhalte des m-Bit-Schieberregister (14), einen Logik (17) zum Verbindern des Ladens der unbenutzten Bits Ui!d des Regrenzungsbits iìl das n-Bits-Schieberegister (16) beim Herausschieben der Bits aus dem m-Bit-Register (14), einen auf die Zählung der in dem m-Bit-Schieberegister (14) verbleibenden Bits ansprechender Zähler (20) zum Freigeben des Speichers (15) zum Laden einer nächsten m-Bit-Wortes in das m-Bit-Schieberegister (14) nachdem der vorausgehende Inhalt des m-Bit-Prozessor (14) vollständig herausgeschoben worden ist, und einen auf die Zählung der in das n-Bit-Recister (16) geladenen Bits ansprechenden Zähler (18) zum Freigeben des n-Bit-Registers (16) zur Ausgabe seines Inhaltes parallel nach der seriellen aufnahme von n Datenbits.
  2. 2. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß der m-Bit-pro-Wort-Speicher ein Festwertsp-eicher ist.
  3. 3. Vorrichtung nach Anspruch 1, gekennzeichnet durch: einen n-Bit-Prozessor (10) und zugehörigen Speicher (11), in welchen die n-Bit-Worte geladen werden, und einen DMA-Kanal (27) zum Speichern der Ausgabe des n-Bit-Schieberegistcrs (16) in den n-Bit-Speicher (11).
  4. 4. Vorrichtung nach Anspruch 1, gekennzeichnet durch: einen n-Bit-Prozessor (1C) und einen zugeordneten Speicher (11), in den die n-Bit-Worte geladen werden, und ein E/A-Tor (13) zum Speichern der Ausgabe des n-Bit-Schieberegisters (151 in den n-Bit-Speicher.
  5. 5. Vorrichtung nach Anspruch 1, gekennzeichnet durch einen Pufferspeicher (22) zur temporären Speicherung der n-Bit-Wort-Ausgabe aus dem n-Bit-Schieberegister (16).
  6. 6. Vorrichtng nach Anspruch 1, dadurch gekennzeichnet, daß der m-bit-pro-Wort-Speicher (159 ein nichtpermanenter Speicher mit wahlfriem Zugriff (RA!'1) ist.
  7. 7. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Daten variabler Länge Codes sind, die den Eingabestromlängendaten entsprechen und daß ein Prozessor (10) zum Erzeugen der Speicherplatzadresse ifl dem m-Bit-pro-Wort-Speicher (15), in die der der Stromlänge entsprechende Code geladen ist, und zur Adressierung des m-Bit-pro-Wort-Speichers (15) mit dieser Adresse vorgesehen ist.
  8. 8. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Daten variabler Länge Datenbitströme variabler Länge sind, und daß ein Prozessor (10) zum Erzeugen der Speicherplatzadresse in dem m-Bit-pro-Wort-Speicher (159, in der einem von der Vorrichtung empfangenen Stromlängencode entsprechende Datenbitstrom abgelegt ist, und zum Adressieren des m-Bit-pro-Wort-Speichers (15) mit dieser Adresse vorgesehen ist.
  9. 9. Vorrichtung nach Anspruch 8, gekennzeichnet durch einen Prozessor (10) und einen zugeordneten Speicher (11) und eine Unterroutine (Figur 2B) in dem Speicher (11), die zur Ausführung durch den Prozessor (10) zum iterativen Zugriff auf einen oder eine Mehrzahl von m-Bit-pro-Wort-Speicher-Plätzen eingerichtot ist, so daß ein Ausgabedatenbitstrom, der m Bits übersteigt, ausgegeben werden kann
  10. 10. Vorrichtung g nach Anspruch 8, dadurch gekennzeichnet, daß die erzeugte Adresse eie Funktion einer Rasterabtastzeilenzahl und eines Zeichencoden ist, und daß die Datenbitströme variable LJngc die entsprechenden Videosignale, die zur Erzeugung des Zeichens notwendig sind, sind.
  11. 11. Verfahren zum freisetzen von aus einer ersten Liste zufällig ausgewählten Eingabeworten in die entsprechenden Datenwörter in einer zweiten Liste, bei dem die Datenwörter der zweiten Liste von variabler Länge sind, und zum Packen der Datenwörter variabler Länge in feste Ausgabedatenworte mit n Bits, gekennzeichnet durch: das anfängliche Laden aller Datenworte variabler Länge in den Speicher (1 !, und ferncr eas Laden eines Begrenzungsbits zum Markieren der Grenze zwischen jedem Datenwort variabler Länge und den unbenutzten Bits jedes Speicherplatzes, das Gebrauchen eines Eingabewortes zum Aufbau einer Adresse mit der der Speicher (15) adressiert wird wodurch auf das ensprechende Wort variabler Länge zugegriffen und es in ein erstes Schieberegister (14) ausgegeben wird, und das Verschieben des Datenwortes variabler Lanze zum Abtrennen der unbenutzten nits, das Verschieben der verbleibenden Bits, die das Datenwort variabler Länge bilden, in ein zweites Schieberegister (16), das pilrallele Ausgeben der Bits jedes Ausgabewortes gepackter Daten aus dem zweiten Schieberegister (16), wenn dieses voll wird, und das Gebrauchen des nächsten Eingabedatenwortes zum Zugriff und zur Ausgabe des nächsten Datenwortes variabler Länge aus dem Speicher (15), wenn das vorausgehende Wort variabler Länge vollständig aus dem ersten Schieberegister (14) hinausgeschoben ist.
  12. 12. Verfahren nach Anspruch 11, dadurch gekennzeichnet, daß die Werte auf der ersten Liste Stromlängen und die zweite Liste eine Liste entsprechender Codes variabler Länge ist.
  13. 13. Verfahren nach Anspruch 11, dadurch gekennzeichnet, daß jedes Datenwort in der ersten Liste eine Funktion einer Rasterabtastzeilennunmier und eines Zeichencodes und jedes Datenwort in der zweiten Liste das entsprechende zur Generierung des Zeichens benötigte Videosignal ist.
  14. 14. Verfahren nach Anspruch 11, dadurch gekennzeichnet, daß die Werte in der ersten Liste Codes und die Datenworte der zweiten Liste Datenbitströme variabler Längen sind.
  15. 15. erfahren zum Umsetzen eines Codewortes entsprechend einer Datenbitstromlänge in die tatsächliche Datenbitstromlänge und zum Packen der variablen Datenbitstromlänge in Datenworte fester Länge mit n Bits, wobei die Stromlänge größer als n ist, gekennzeichnet durch: a) das anfängliche Laden von m Speicherplatzen eines Speichers (15) mit einer Anzahl von Datenbits gleich der Speicherplatzadrcsse, b) als erstes das Bestimmen der Bitanzahl n in der Stromlänge aus dem Codewort, c) a3s zweites das Bestimmten des Quotienten Q und des Restes R durch Dividieren n durch m, die d) das Zugreifen auf / und Ausgeben der Inhalte eines Speicherplatzes m aus dem Speicher (15) in ein erstes Schieberegister (14), e) das Verschieben des Inhalts des ersten Schieberegisters (14) in ein zweites Schieberegister (16) mit n Bits, f) die parallele Ausgabe der Bits jedes Ausgabewortes gepackter Daten aus den zweiten Schieberegister (16) , wenn dieses voll wird, g) das arten auf das Leerwerden des ersten Schieberegisters (14), h) das Wiederholen der Schritte d) bis g), 2-mal, den i) das Zugreifen auf und Ausgeben des Inhaltes des Speicherplatzes R des Speichers (15) in das erste Schieberegister, j) das Verschieben der Daten des Speicherplatzes R zum Abtrennen der unbenutzten Bits, und k) das Wiederholen der Schritte e) und f.
  16. 16. Sciialtkreis zur umsetzung von Stromlängencode in Code variab-1er Länge und zum Packen des Codes variabler Länge in auf n festgelegte Wortlängen in einem Faksimilesender, gekennzeichnet durch einen Speicher (15), in dem Codes variabler Länge, unbenutzte Bits und Begrenzungsbits gespeichert sind, und der Speicher (15) so angeordnet ist, daß bei Empfang einer Adresse, die eine Funktion der Stromlänge ist, der zugeordnete Code variabler Länge erzeugt wird, ein erstes Schieberegister (14), das zur parallelen Aufnahme der Ausgabebits aus den Speicher (15) eingerichtet ist, eine Logik (17) zum Abtrennen der unbenutzten Bits und des Begrenzungsbits aus der Ausgabe des crsten Registers (14), ein zweites Schieberegister (16), das zur seriellen Aufnahme des Codes variabler Länge aus de ersten Schieberegister (14) eingerichtet ist, einen Zähler (18) zum Freigeben des zweiten Schieberegisters (16) zur parallelen Ausgabe dessen Inhalts, wenn das zweite Schieberegister (16) voll i stf end einen Prozessor (10) zur Erzeugung einer nächsten Adresse fiir den Speicher (15), wenn das erste Schieberegister (14) leer wird.
DE19792948770 1979-02-22 1979-12-04 Datenpackungsschaltkreis Withdrawn DE2948770A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US900279A 1979-02-23 1979-02-23

Publications (1)

Publication Number Publication Date
DE2948770A1 true DE2948770A1 (de) 1980-08-28

Family

ID=21734997

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19792948770 Withdrawn DE2948770A1 (de) 1979-02-22 1979-12-04 Datenpackungsschaltkreis

Country Status (3)

Country Link
JP (1) JPS55115144A (de)
CA (1) CA1156764A (de)
DE (1) DE2948770A1 (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0098153A3 (en) * 1982-06-30 1986-10-01 Nippon Telegraph And Telephone Corporation Digital data code conversion circuit for variable-word-length data code
EP0233096A1 (de) * 1986-01-13 1987-08-19 General Electric Cgr S.A. Verfahren zum Formatieren und Deformatieren von Daten, resultierend aus der Kodierung numerischer Informationen mittels eines Kodes variabler Länge und Einrichtung zur Durchführung des Verfahrens

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106788451B (zh) * 2016-11-30 2021-03-09 苏州浪潮智能科技有限公司 一种哈夫曼解码方法及其装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0098153A3 (en) * 1982-06-30 1986-10-01 Nippon Telegraph And Telephone Corporation Digital data code conversion circuit for variable-word-length data code
EP0233096A1 (de) * 1986-01-13 1987-08-19 General Electric Cgr S.A. Verfahren zum Formatieren und Deformatieren von Daten, resultierend aus der Kodierung numerischer Informationen mittels eines Kodes variabler Länge und Einrichtung zur Durchführung des Verfahrens
FR2600223A1 (fr) * 1986-01-13 1987-12-18 Thomson Cgr Procede de formattage et de deformattage de donnees resultant du codage d'informations numeriques a l'aide d'un code a longueur variable, et dispositif de mise en oeuvre
US4739308A (en) * 1986-01-13 1988-04-19 Thomson-Cgr Method for the formatting and unformatting of data resulting from the encoding of digital information using a variable length code and a device for using this method

Also Published As

Publication number Publication date
CA1156764A (en) 1983-11-08
JPS55115144A (en) 1980-09-04

Similar Documents

Publication Publication Date Title
DE2725395C3 (de) Einrichtung zur Echtzeittransformation von m in Zeilen angeordneten Wörtern der Bitlänge n in n in Spalten angeordneten Wörter der Bitlänge n
DE19742417B4 (de) Vorrichtung und Verfahren zur Durchführung von M-fachem Maschinenendzustands-Entropiekodieren bzw. Entropiekodieren mit einer Maschine mit finitem Zustand
DE2264090C3 (de) Datenverdichtung
DE3606869C2 (de) Vorrichtung zur Datenkompression
DE2139731C2 (de) Anordnung zur Code-Umsetzung
DE4217009C1 (de) Hochgeschwindigkeitsdekodierer für Codes veränderlicher Länge
DE19536401B4 (de) Verfahren und Einrichtung zum Codieren und Decodieren von Daten
EP0230437B1 (de) Verfahren zum komprimieren und dekomprimieren mehrerer strukturverwandter datenfolgen sowie einrichtungen zur durchführung des verfahrens
DE2801611A1 (de) Verfahren und anordnung zum adressieren und speichern von daten in speichern mit wahlfreiem zugriff
DE1296182B (de) Verfahren zur UEbertragung binaerkodierter Informationssignale sowie Kodierer zur Abgabe solcher Signale und mit diesem betreibbarer Dekodierer
DE4217008C2 (de) HDTV-Dekodierer
DE19900150B4 (de) Apparat und Verfahren zum Kodieren von Information mit einem finiten Automaten
DE3406624C2 (de)
DE60011795T2 (de) Vorrichtung und verfahren zur verringerung der zur datendekompression benötigten zeit
DE2948770A1 (de) Datenpackungsschaltkreis
DE1280592B (de) Schaltungsanordnung zur Ansteuerung eines Speichers
DE1233627B (de) Anordnung zur Datenuebertragung durch Impulse unter Verwendung von Datenkompression und Datenexpansion
DE2042596A1 (de) Schaltungsanordnung zur Umsetzung eines einzigen kodierten Eingangszeichens in eine Mehrzahl kodierter Ausgangszei chen
DE2748859A1 (de) Schaltungsanordnung zum speichern eines textes
DE19758853B4 (de) Dekoder und Verfahren zum Dekodieren sowie System mit Kodierer und Dekodierer
DE2259887C3 (de) Umsetzer zur Erzeugung codierter Signale, beispielsweise für Buchstaben
WO1986001660A1 (en) Data compression and expansion system for the transfer or storage of data
DE1172453B (de) Codewandler zur Umsetzung von Informationszeichen binaer-dezimaler Darstellung in Informationszeichen binaerer Darstellung
DE3732045C2 (de)
DE2144113C3 (de) Verfahren zur Codeumsetzung und Assozjathr-Speichereinrlchtung zur Durchführung dieses Verfahrens

Legal Events

Date Code Title Description
8139 Disposal/non-payment of the annual fee