DE3238130A1 - CODING DEVICE - Google Patents

CODING DEVICE

Info

Publication number
DE3238130A1
DE3238130A1 DE19823238130 DE3238130A DE3238130A1 DE 3238130 A1 DE3238130 A1 DE 3238130A1 DE 19823238130 DE19823238130 DE 19823238130 DE 3238130 A DE3238130 A DE 3238130A DE 3238130 A1 DE3238130 A1 DE 3238130A1
Authority
DE
Germany
Prior art keywords
source
words
sub
stream
code
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.)
Ceased
Application number
DE19823238130
Other languages
German (de)
Inventor
Steven G. Framingham Mass. Finn
Pierre A. Cambridge Mass. Humblett
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.)
Motorola Solutions Inc
Original Assignee
Codex 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 Codex Corp filed Critical Codex Corp
Publication of DE3238130A1 publication Critical patent/DE3238130A1/en
Ceased 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

14. Oktober 1982October 14, 1982

CODEX - DE CompressCODEX - DE Compress

Codier-VorrichtungCoding device

Die Erfindung betrifft die Codierung eines Stroms von Quellenzeichen in einen kürzeren Strom von Code-Wörtern und die Decodierung der Code-Wörter.The invention relates to the coding of a stream of source characters into a shorter stream of code words and the decoding of the code words.

Verschiedene Quellenzeichen können verschieden häufig in einem Strom von Quellenzeichen vorkommen. Wenn häufiger vorkommende Quellenzeichen in kürzere Code-Wörter codiert werden, kann die Länge des Codewörter-Stroms reduziert werden. Die relativen Auftrittshäufigkeiten von verschiedenen Quellenzeichen können sich mit der Zeit ändern.Different source characters can occur with different frequencies in a stream of source characters. If more often Occurring source characters are encoded into shorter code words, the length of the code word stream can be reduced will. The relative frequencies of occurrence of different source characters can change over time.

Grundsätzlich gibt die Erfindung an eine Vorrichtung zur Codierung eines Stroms von Quellenzeichen in einen Strom von Code-Wörtern, wobei jedes Quellenzeichen eine zeitveränderliche Häufigkeit im Strom haben kann, wobei jedes Code-Wort zu einer Gruppe aus einer Menge von Codewörter-Gruppen gehört, wobei die Code-Wörter in den betreffenden Gruppen jeweils aus verschiedenen Anzahlen von Unterwörtern bestehen, wobei die Vorrichtung einen Codierer zur Codierung jedes Quellenzeichen in eines der Code-Wörter enthält, wobei häufiger vorkommende Quellenzeichen zu Code-Wörtern verschlüsselt werden, die aus weniger Unterwörtern bestehen, und einen Gruppengrößen-Wähler, der die Zahl von Code-Wörtern, die jeweils zu weniger als allen Gruppen gehören, in neue Zahlen abändert und dann auf der Basis der neuen Zahlen die Zahl von Code-Wörtern neu berechnet, die zu den anderenIn principle, the invention relates to an apparatus for coding a stream of source characters into a stream of code words, each source character being a time-varying Frequency in the stream, where each code word belongs to a group of a set of code word groups, where the code words in the respective groups consist of different numbers of sub-words, the apparatus including an encoder for encoding each source character into one of the code words, with more frequent occurring source characters are encoded to code words that consist of fewer sub-words, and a group size selector that converts the number of code words that belong to less than all groups into new Numbers and then recalculated on the basis of the new numbers the number of code words that correspond to the others

-12 --12 -

Gruppen gehören, wobei wenigstens ein Teil des Codewörter-Stroms verkürzt wird.Groups belong, with at least a part of the codeword stream being shortened.

Weitere erfindungsgemäße Merkmale sind ein Monitor, der im Strom der Quellenzeichen zählt, wie oft jedes Quellenzeichen in einem Satz von weniger als allen Quellenzeichen vorkommt, und ein Gruppengrößen-Wähler, der gemäß dem Monitor die Anzahl von Code-Wörtern ändert, die jeweils zu den Gruppen gehören, wobei wenigstens ein Teil des Codewörter-Stroms gekürzt wird.Further features of the invention are a monitor that counts in the stream of source characters how often each source character is occurs in a set of fewer than all source characters, and a group size selector that, according to the monitor changes the number of code words which each belong to the groups, with at least a part of the code word stream is shortened.

Weitere erfindungsgemäße Merkmale sind eine Vorrichtung, in der die Code-Wörter entweder zu einer ersten, einer zweiten oder einer dritten Gruppen von Code-Wörtern gehören, wobei die Code-Wörter in den ersten, zweiten und dritten Gruppen aus einem, zwei bzw. drei Ünterwörtern bestehen, wobei die Vorrichtung einen Codierer enthält zur Codierung eines ersten Satzes von Quellenzeichen in Code-Wörter aus der ersten Gruppe, eines zweiten Satzes von Quellenzeichen zu Code-Wörtern aus der zweiten Gruppe und eines dritten Satzes von Quellenzeichen zu Code-Wörtern aus der dritten Gruppe, wobei häufiger vorkommende Quellenzeichen zu Code-Wörtern mit weniger ünterwörtern verschlüsselt werden, und ein Gruppengrößen-Wähler zur Abänderung der Zahl von Code-Wörtern, die jeweils zur ersten, zweiten bzw. dritten Gruppe gehören, gemäß der Änderung der AWtritts'häufigkeit, wobei wenigstens ein Teil des Codewörter-Stroms verkürzt wird.Further inventive features are a device in which the code words either to a first, a second or a third group of code words, the code words in the first, second and third Groups consist of one, two or three sub-words, the device containing an encoder for coding a first set of source characters in code words from the first group, a second set of source characters to code words from the second group and a third set of source characters to code words from the third Group, where more frequently occurring source characters are encoded into code words with fewer sub-words, and a group size selector to change the number of code words, which each belong to the first, second or third group, according to the change in the frequency of occurrences, where at least part of the codeword stream is shortened.

In bevorzugten Ausführungsbeispielen ist der Gruppengrößen-Wähler so geschaltet, daß er die Anzahl von Code-Wörtern, die zu einer der Gruppen gehören, abändert und dann aus der neuen Zahl die Anzahlen der Code-Wörter in den anderen Gruppen direkt errechnet.In preferred embodiments, the group size selector is switched so that it changes the number of code words belonging to one of the groups and then out of the the number of code words in the other groups is calculated directly.

-13 --13 -

Weitere erfindungsgeraäße Merkmale sind ein Häufigkeits-Rangzuordner, der jedem Quellenzeichen jeweils einen Rang gemäß seiner gerade geschätzten Auftrittshäufigkeit im Quellenzeichenstrom zuordnet, ein Codierer, der - gemäß einem wählbaren Code - jedes Quellenzeichen mit einem Rang, der nicht höher als eine wählbare erste Zahl ist, in ein Code-Wort mit nur einem Unterwort, jedes Quellenzeichen mit einem höheren Rang als die erste Zahl, aber nicht höher als eine zweite Zahl in ein Code-Wort mit zwei ünterwörtern und jedes Quellenzeichen mit einem höheren Rang als die zweite Zahl in ein Code-Wort mit drei ünterwörtern verschlüsselt, wobei die zweite Zahl durch den Wert der ersten festgelegt ist, ein Wächter, der im Strom der Quellenzeichen zählt, wie oft jedes Quellenzeichen in einem Satz von weniger als allen Quellenzeichen vorkommt, und ein Wähler, der dem Wächter gemäß die erste Zahl neu festlegt, wenn der neue Wert wenigstens einen Teil des Codewort-Stroms verkürzt, und der die zweite Zahl aus der ersten neu berechnet.Further features according to the invention are a frequency rank allocator, which each source character has a rank according to its currently estimated frequency of occurrence in the Allocates source character stream, an encoder that - according to a selectable code - assigns each source character to a Rank not higher than an optional first number in a code word with only one sub-word, each source character with a higher rank than the first number but not higher than a second number in a code word with two Subwords and any source character with a higher rank than the second number in a three subword code word encrypted, the second number being determined by the value of the first, a guard who is in the stream the source symbol counts the number of times each source symbol occurs in a set of fewer than all source symbols, and a voter who, in accordance with the guardian, redefines the first number when the new value is at least part of the Codeword stream is shortened and the second number is recalculated from the first.

In bevorzugten Ausführungsbeispielen enthält der Satz von weniger als allen Quellenzeichen jene Quellenzeichen, bei denen die Zahl von Unterwörtern in den zugeordneten Code-Wörtern sich ändert, wenn die erste und die zweite Zahl geändert werden, also insbesondere die Quellenzeichen, die im Rang gleich der ersten Zahl, um Eins niederer und gleich einer beliebigen Zahl zwischen der zweiten Zahl minus der Anzahl von Unterwörtern im Unterwort-Alphabet und der zweiten Zahl plus die Anzahl der Unterwörter im Unterwort-Alphabet weniger Eins sind; der Wächter enthält einen Zähler, eier von einem mittleren Wert an bei jedem Auftreten von Quellenzeichen nach oben zählt, die im Rang gleich der ersten Zahl und um Eins niedriger als die erste Zahl sind, und nach unten bei jedem Auftreten von Quellenzeichen, die im Rang gleich einer Zahl zwischen der zweiten Zahl minus der Anzahl von Unterwörtern im Unterwort-Alphabet und der zweiten Zahl plusIn preferred embodiments, the set of less than all source characters includes those source characters for which the number of sub-words in the associated code words changes when the first and second numbers are changed especially the source symbols that are equal in rank to the first number, lower by one and equal to one any number between the second number minus the number of subwords in the subword alphabet and the second number plus the number of subwords in the subword alphabet are less than one; the guardian contains a counter, eggs from a mean value at each occurrence of source characters that are equal in rank to the first number and counts up lower by one than the first number, and down for each occurrence of source characters that are equal in rank a number between the second number minus the number of subwords in the subword alphabet and the second number plus

die Zahl von Unterwörtern im Unterwort-Alphabet weniger Eins sind. Dabei enthält der Wähler ein Addierwerk, das die erste Zahl um Eins erhöht, falls der Zähler einen Höchstwert erreicht, und das die erste Zahl um Eins vermindert, falls der Zähler einen Minimalwert erreicht. Der wählbare Code wird geändert, wenn die erste Zahl zu einer neuen Zahl umgeändert wird. Außerdem ist ein Decodierer vorhanden, um den Strom von Code-Wörtern in einen Strom von Quellenzeichen zu decodieren, wobei der Decodierer einen Decodier-Häufigkeits-Rangzuordner enthält zur Bestimmung des Rangs jedes Quellenzeichens im Quellenalphabet, der seiner gerade geschätzten relativen Auftrittshäufigkeit entspricht. Dabei bestimmt der Decodierer direkt aus den Code-Wörtern im Codewörter-Strom, welcher der wählbaren Codes zur Codierung verwendet wurde.the number of sub-words in the sub-word alphabet are less than one. The voter contains an adder, which is the first Number increased by one if the counter reaches a maximum value, and that decrements the first number by one if the counter reaches a minimum value. The selectable code is changed when the first number is changed to a new number. There is also a decoder to decode the stream of codewords into a stream of source characters, the decoder having a decoding frequency rank allocator Contains to determine the rank of each source character in the source alphabet, that of its currently estimated corresponds to the relative frequency of occurrence. The decoder determines directly from the code words in the code word stream, which of the selectable codes was used for coding.

Weitere erfindungsgemäße Merkmale sind eine Vorrichtung zur Codierung eines Quellenzeichen-Stroms in einem Codewörter-Strom, wobei jedes Quellenzeichen eine zeitlich veränderliehe Auftrittshäufigkeit im Quellenzeichen-Strom haben kann und wobei die Vorrichtung einen Rangspeicher zur Speicherung des Ranges besitzt, der der jeweils geschätzten relativen Auftrittshäufigkeit jedes Quellenzeichens im Quellenzeichen-Strom entspricht, und ein Rang-Fortschreiber, der den Rang eines jeden Quellenzeichens, das im Quellenzeichen-Strom erscheint, mit dem Rang des nächstnieder eingestuften Quellenzeichens vertauscht, wenn nicht das Quellenzeichen, das im Strom erscheint, schon den niederstmöglichen Rang hat.Further features of the invention are a device for Coding of a source character stream in a code word stream, each source character being time-varying Frequency of occurrence in the source character stream and wherein the device has a rank memory for storage of the rank of the estimated relative frequency of occurrence of each source character in the source character stream corresponds to, and a rank update, which the rank of each source character, which in the source character stream appears, swapped with the rank of the next lowest source symbol, if not the source symbol, the appears in the stream, already has the lowest possible rank.

Weitere erfindungsgemäße Merkmale sind ein Codierer, der jedes einzelne Quellenzeichen, das im Rang nicht höher als eine wählbare erste Zahl ist, in ein Codewort,bestehend aus einem Unterwort,codiert, der jedes Quellenzeichen, das im Rang höher als die erste Zahl ist, aber nicht höher als eine zweite Zahl, in ein Code-Wort aus zwei Unterwörtern codiert, und der jedes der besagten Quellenzeichen, das im Rang höherFurther features according to the invention are an encoder, which encodes every single source character that is not ranked higher than is a selectable first number, in a code word consisting of a subword, encoded, that contains each source character that appears in the Rank is higher than the first number, but not higher than a second number, encoded in a code word made up of two sub-words, and that of each of the said source characters, the higher in rank

-15 --15 -

als die zweite Zahl ist, zu einem Code-Wort aus drei Unterwörtern codiert, wobei die zweite Zahl durch denas the second number is, to a code word made up of three sub-words encoded, the second number being replaced by the

Wert derValue of

ersten Zahl festgelegt ist, ein Zwei^Unterwörter*-Recodierer, der jedes Code-Wort aus zwei Unterwörtern durch 16 dividiert, bei dem das letzte Unterwort Null ist, und der das Resultat zu 15 plus dem Produkt aus 15 mal die eiste Zahl addiert, um so ein revidiertes Code-Wort zu liefern, und ein Drei-Unterwörter-Recodierer, der jedes Code-Wort aus drei Unterwörtern durch 16 dividiert, dessen letztes Unterwort· Null ist, und der das Resultat zu 3573 plus der zweiten Zahl addiert, und, wenn das sich ergebende Code-Wort kleiner als 3856 ist, 16 vom sich ergebenden Code-Wort abzieht und so ein revidiertes Code-Wort liefert.first number is set to a two ^ subwords * -recoder, who divides each code word from two sub-words by 16, where the last sub-word is zero, and which the Result of 15 plus the product of 15 times the first number added to produce a revised code word, and a three-sub-word recoder that divides each code word from three sub-words by 16, whose last sub-word Is zero, and which adds the result to 3573 plus the second number, and if the resulting code word is smaller as is 3856, subtracts 16 from the resulting code word and thus provides a revised code word.

Die Erfindung erlaubt eine wirksame, schnelle und anpassungsfähige Codierung eines Quellenzeichen-Stroms in einen verdichteten Codewörter-Strom; der Code ändert sich, um sich an Änderungen in der relativen Auftrittshäufigkeit der Quellenzeichen anzupassen und so die Länge des Codewörter-Stroms zu minimalisieren; Code-Anpassungen werden ökonomisch und schnell durchgeführt, indem nur eine freie Variable geändert wird, aus der danir^d-ie anderen wichtigen Zahlen leicht neu errechnet werden können; der Decodierer kann sich an sich ändernde Codes automatisch aufgrund der erhaltenen Code-Wörter anpassen, ohne daß dabei besondere Code-Umschaltsignale vom Codierer zum Decodierer gesandt werden müssen.The invention allows an effective, fast and adaptable Encoding a source character stream into a compressed code word stream; the code changes in order to itself changes in the relative frequency of occurrence of the source characters adapt and thus minimize the length of the codeword stream; Code adjustments are economical and carried out quickly by changing only one free variable, from which thenir ^ d-ie other important numbers can be easily recreated can be calculated; the decoder can adapt to changing codes automatically on the basis of the code words received adapt without the need to send special code switching signals from the encoder to the decoder.

W w W w Ir ·· · · · ·W w W w Ir ·· · · · ·

-16 --16 -

Anhand der Zeichnung wird die Erfindung ausführungsbeispielsweise näher erläutert. Es zeigen:
5
The invention is explained in more detail by way of example with the aid of the drawing. Show it:
5

Fig. 1 ein Blockdiagramm eines Codier-Fig. 1 is a block diagram of a coding

Decodier-Systems;Decoding system;

Fig. 2 ein Diagramm, das eine typischeFig. 2 is a diagram showing a typical

Codier-Anordnung zeigt;Shows coding arrangement;

Fig. 3 ein Blockdiagramm des CodierersFigure 3 is a block diagram of the encoder

aus Fig. 1;from Fig. 1;

Fig. 4 ein Blockdiagramm des DecodierersFigure 4 is a block diagram of the decoder

aus Fig. 1;from Fig. 1;

Fig. 5A bis 5D Flußdiagramm für den Codier-Vorgang;Figs. 5A to 5D are flow charts for the coding process;

und
20
and
20th

Fig. 6A bis 6D Flußdiagramme für den Decodiervor-6A to 6D are flow charts for the decoding process

gang.corridor.

In Fig. 1 erzeugt das Terminal 10 einen Quellenzeichen-Strom auf der Leitung 12 in Form von Spannungen, Strömen, Frequenzen oder von anderen Parametern, die Binärziffern darstellen. Der Codierer 14 empfängt die Quellenzeichen bei seinem Anschluß 16 und codiert sie in einen Strom von binären Code-Wörtern, die über den Anschluß 18 zum Bindeglied 20 übermittelt werden. Die Zahl der Bits im Codewörter-Strom ist gewöhnlich kleiner als die Zahl der Bits im zugehörigen Quellenzeichen-Strom. Die Form der Code-Wörter erlaubt unabhängiges Decodieren, um den ursprünglichen Quellenzeichen-Strom zu bekommen.
.
In Fig. 1, terminal 10 generates a source character stream on line 12 in the form of voltages, currents, frequencies, or other parameters representing binary digits. The encoder 14 receives the source characters at its terminal 16 and encodes them into a stream of binary code words which are transmitted via the terminal 18 to the link 20. The number of bits in the code word stream is usually smaller than the number of bits in the associated source symbol stream. The shape of the code words allows independent decoding to get the original source character stream.
.

Bindeglied 20 kann eine Reihe von Funktionen ausführen, einschließlich Modulierung, Deraodulierung, Umschaltung, Speicherung und Kontrolle von Übertragungsfehlern, in jedem Fall aber liefert das Bindeglied 20 dieselbe Codewörter-Folge nach dem Anschluß 22 des Decodierers 24, die vom Codierer 14 empfangen wurde. Der Decodierer 24 decodiert die Code-Wörter in einen Quellenzeichen-Strom, der identisch mit dem bei Anschluß 16 empfangenen Strom ist, und gibt ihn über Anschluß 26 weiter an die Leitung 28, die ihn ihrerseits zum Terminal 30 überträgt.Link 20 can perform a number of functions, including modulation, deraodulation, switching, storage and control of transmission errors, but in each case the link 20 delivers the same code word sequence to terminal 22 of decoder 24 that was received by encoder 14. The decoder 24 decodes the code words into a source character stream which is identical to the stream received at connection 16, and forwards it via connection 26 to the line 28 , which in turn transmits it to the terminal 30.

Ein anderer Datenstrom kann dabei gleichzeitig in der entgegengesetzten Richtung durch das System fließen, wobei dann der Decodierer 24 als Codierer und der Codierer 14 als Decodierer arbeiten.Another data stream can be in the opposite one at the same time Direction to flow through the system, being then the decoder 24 operates as an encoder and the encoder 14 operates as a decoder.

Jedes Quellenzeichen ist eines von 256 möglichen 8-bit-Bytes. Jedes Code-Wort besteht aus einem, zwei oder drei Unterwörtern. Jedes Unterwort besteht seinerseits aus 4 Bits.Each source character is one of 256 possible 8-bit bytes. Each code word consists of one, two or three sub-words. Each sub-word in turn consists of 4 bits.

Im allgemeinen ist die erste Stufe beim Codierungsvorgang, die 256 Quellenzeichen nach abnehmender Häufigkeit des Auftretens im Quellenstrom anzuordnen. Der Codierer führt zwei Tabellen: eine Liste der Ränge (von 0 bis 255) für die Quellenzeichen-Anordnung, bei der der i-te Eintrag den Rang des i-ten Quellenzeichens angibt, und eine Liste der Quellenzeichen (von 0 bis 255) in der Rangordnung, wo der i-te Eintrag das Quellenzeichen von Rang i darstellt. Wenn ein Quellenzeichen vom Rang r im Quellenstrom erscheint, werden die beiden Tabellen derart fortgeschrieben, daß der Rang jenes Quellenzeichens r - 1 wird (wenn er nicht gerade schon Null ist), und dem Quellenzeichen, das den Rang r — 1 hatte, wird der Rang r gegeben. Demgemäß werden die beiden Tabellen laufend fortgeschrieben, um die relativen Auftrittshäufigkeiten der Quellenzeichen wiederzugeben. Der Rang (bevor die Tabellen auf dem neuesten Stand sind) jedes Quellenzeichens, das im Quellenstrom erscheint, bestimmt dasIn general, the first stage in the coding process is to arrange the 256 source characters according to decreasing frequency of occurrence in the source stream. The encoder leads two tables: a list of the ranks (from 0 to 255) for the source character arrangement in which the i-th entry has the rank of the i th source character, and a list of source characters (from 0 to 255) in order of precedence where the i th entry represents the source mark of rank i. If a source character of rank r appears in the source stream, the both tables are updated in such a way that the rank of that source code becomes r - 1 (if it is not already zero is), and the source character, which had the rank r - 1, is given the rank r. Accordingly, the two tables continuously updated to show the relative frequencies of occurrence of the source characters. The rank (before the tables are up-to-date) of each source code, that appears in the source stream determines that

Code-Wort, in das es codiert wird.Code word in which it is coded.

Zum Zwecke der Codierung werden die 256 möglichen Quellenzeichen in drei Gruppen eingeteilt. Quellenzeichen mit Rängen von Null bis zu einer ersten Zahl (N4E - 1) werden in Ein-Unterwort-Codewort, jene mit Rängen von N4E bis zu einer zweiten Zahl (N8E - 1) werden in Zwei-Unterwörter-Codewörter und jene mit Rängen von N8E bis zu einer dritten Zahl (NL) werden in Drei-Unterwörter-Codewörter codiert. 10For coding purposes, the 256 possible source characters are used divided into three groups. Source characters with ranks from zero to a first number (N4E - 1) are used into one-subword codewords, those with ranks from N4E to a second number (N8E - 1) become two-subword codewords and those with ranks from N8E to a third number (NL) are encoded into three-subword codewords. 10

Die Bestimmung von N4E, N8E und NL erfolgt über die nach Kraft benannte Gleichung:N4E, N8E and NL are determined using the equation named after Kraft:

N4E N8E - N4E NL - N8E _ 1 NS NS2 NS3 Ί ' 15 N4E N8E - N4E NL - N8E _ 1 NS NS 2 NS 3 Ί '15

wobei NS die Anzahl der verschiedenen verfügbaren Unterwörter und NL eine ausgewählte Zahl (hier 267) ist, die mindestens so groß ist wie die Zahl der möglichen Quellenzeichen. Im vorliegenden Fall hat jedes Unterwort 4 Bits, was normalerweise 16 verschiedene Unterwörter gestatten würde, aber das Unterwort 0000 ist als Unterwort nicht zugelassen, so daß NS =15; dann lautet die Kraft-Gleichung:where NS is the number of different sub-words available and NL is a selected number (here 267) that is at least as large as the number of possible source characters. In the present case, each sub-word has 4 bits, which is normally 16 different sub-words would allow, but the sub-word 0000 is not allowed as a sub-word, see above that NS = 15; then the force equation reads:

N4E N8E - N4E NL - N8E . 15 TP 153 ' · 25 N4E N8E - N4E NL - N8E . 15 TP 15 3 '25

Wenn N4E um Eins erhöht wird (d.h. wenn ein weiteres Quellenzeichen zu der Gruppe kommt, die in Ein-Unterwort-Codewörter codiert wird), so erfordert die Gleichung, daß NL - N8E um 15 vergrößert und N8E - N4E um 14 vermindert werden. Wenn umgekehrt N4E um Eins verkleinert wird, muß NL - N8E um 15 vermindert und N8E - N4E um 14 vergrößert werden. Deshalb sollte N4E um Eins erhöht werden (d.h. ein zusätzliches Quellenzeichen sollte zu der Gruppe hinzugefügt werden, die in Ein-Unterwort-Codewörter codiert wird), falls das Quellenzeichen vom Rang N4E öfter vorkommt als die Quellenzeichen mit Rängen zwischen N8E - 15 und N8E - 1. N4EIf N4E is increased by one (i.e. if another source symbol comes to the group encoded in one-sub-word codewords), the equation requires that NL - N8E increased by 15 and N8E - N4E decreased by 14 will. Conversely, if N4E is decremented by one, then must NL - N8E decreased by 15 and N8E - N4E increased by 14. Therefore N4E should be increased by one (i.e. one additional source character should be added to the group encoded in one-sub-word codewords, if the source code of rank N4E occurs more often than the source code with ranks between N8E - 15 and N8E - 1. N4E

sollte um Eins vermindert werden, wenn das Quellenzeichen vom Rang N4E - 1 weniger häufig vorkommt als die Quellenzeichen mit Rängen N8E bis N8E + 14, weil dadurch der codierte Strom verkürzt wird.
5
should be decreased by one if the source character of rank N4E - 1 occurs less frequently than the source character of rank N8E to N8E + 14, because this shortens the encoded stream.
5

Die Wahl von N4E und N8E erfolgt, indem man von einem mittleren Wert (z. B. 64) aus bei jedem Auftreten von Quellenzeichen mit den Rängen N4E - 1 und N4E nach oben zählt und nach unten beim Auftreten eines Quellenzeichens mit einem Rang zwischen N8E-15 bis N8E-14. Wenn bei dieser Zählung eine erste Schwelle überschritten wird (z. B. 128), wird N4E erhöht; wenn die betreffende Zahl unter eine zweite Schwelle (z. B-. 0) fällt, wird N4E vermindert. Wenn N4E so bestimmt ist, wird der Wert von N8E in Übereinstimmung mit der Kraft-Gleichung neu berechnet.The choice of N4E and N8E is made by going from a middle one Value (e.g. 64) counts up every time source characters with the ranks N4E - 1 and N4E occur and down when a source character occurs with a rank between N8E-15 to N8E-14. If at this count a first threshold is exceeded (e.g. 128) N4E increased; if the number in question falls below a second threshold (e.g. 0), N4E is decremented. If N4E so is determined, the value of N8E becomes in accordance with the force equation recalculated.

Im nächsten Schritt wird jedem Quellenzeichen ein Code-Wort zugeordnet. Dieser Vorgang ist in Fig. 2 dargestellt, die einen Baum mit einer Anzahl von Stufen (Spalten) 110 darstellt, die gleich der größten Anzahl von Unterwörtern ist, die ein Code-Wort bilden, in diesem Fall also drei. Die erste Stufe 115 enthält die Verzweigungen 112, deren Anzahl gleich der Zahl der möglichen Unterwörter ist (in diesem Fall 16); jede Verzweigung 112 der ersten Stufe 115 stellt entweder ein mögliches 4-Bit-Codewort oder einen möglichen Vorsatz für ein 8-Bit- oder ein 12-Bit-Codewort dar. Jeder Zweig 112 ist mit einer Zahl ohne Klammern versehen, die dezimal die Nummer des Unterwortes angibt, das auf diesem Zweig dargestellt wird; jeder Zweig 112, dem ein Quellenzeichen zugeordnet werden kann, enthält in Klammern dezimal den Rang jenes Quellenzeichens. Die zweite Stufe 116 enthält jeweils 16 Unterzweige 118 zu jedem Zweig 112, dessen Unterwort als Vorsatz dient. Jeder Unterzweig 118 ist in ähnlicher Weise mit einer Unterwort-Nummer ohne Klammern versehen und dem Rang in Klammern des zugeordneten Quellenzeichens. In ähnlicher Weise enthält die StufeIn the next step, each source character is assigned a code word assigned. This process is illustrated in FIG. 2, which shows a tree with a number of levels (columns) 110 which is equal to the largest number of sub-words that make up a code word, in this case three. The first stage 115 contains the branches 112, their number is equal to the number of possible sub-words (in this case 16); each branch 112 of the first stage 115 represents either a possible 4-bit code word or a possible prefix for an 8-bit or a 12-bit code word Each branch 112 is provided with a number without brackets that indicates in decimal the number of the sub-word that is represented on this branch; each branch 112 to which a source symbol can be assigned contains in Brackets decimal the rank of that source symbol. The second level 116 contains 16 sub-branches 118 for each Branch 112, the subword of which is used as a prefix. Each sub-branch 118 is similarly labeled with a sub-word number without brackets and the rank in brackets of the assigned source symbol. Similarly, the stage contains

122 16 Blätter 124 für jeden Unterzweig 118, dessen Unterwort als Vorsatz dient. Jedes Quellenzeichen, das einem Blatt 124 der dritten Stufe zugeordnet ist, würde in ein Drei-Unterwörter-Wort codiert werden einschließlich der Unter-Wörter, die durch den Zweig der ersten, den Unterzweig der zweiten und das Blatt der dritten Stufe dargestellt werden.122 16 leaves 124 for each sub-branch 118, its sub-word serves as an intent. Each source character associated with a third level leaf 124 would be converted into a three subword word are encoded including the sub-words that are separated by the branch of the first, the sub-branch of the second and the leaf of the third stage are displayed.

Jeder Zweig, Unterzweig oder jedes Blatt, die als gestrichelte Linie gekennzeichnet sind, stellen das nicht zugelassene Unterwort 0000 dar, so daß nur 15 verschiedene Unterwörter in Wirklichkeit auf jeder Stufe 110 verfügbar sind. Die Stufen 110 des Baums von Fig. 2 sind so eingerichtet, daß N4E Zweige 112 auf der ersten Stufe zur Codierung von N4E Quellenzeichen in Ein-Unterwort-Codewörter verfügbar sind, daß N8E - N4E Unterzweige 116 auf der zweiten Stufe zur Codierung von N8E - N4E Quellenzeichen in Zwei-Unterwörter-Codewörter verfügbar sind und daß NL - N8E Blätter 124 auf der dritten Stufe zur Codierung der restlichen Quellenzeichen in Drei-Unterwörter-Wörter verfügbar sind.Any branch, sub-branch or leaf that is marked as a dashed line represents what is not allowed Subword 0000 so that only 15 different subwords are actually available at each level 110 are. The stages 110 of the tree of FIG. 2 are arranged so that N4E branches 112 at the first stage for coding of N4E source characters are available in one-sub-word codewords that N8E-N4E sub-branches 116 on the second level for encoding N8E - N4E source characters in two-subword code words are available and that NL - N8E leaves 124 are available at the third level for encoding the remaining source characters into three-subword words.

Wie in Fig. 3 gezeigt, empfängt der Codierer beim Eingang 16 - möglicherweise nach einem unregelmäßigen Plan - den Strom von 8-Bit-Quellenzeichen.As shown in Figure 3, the encoder receives on input 16 - possibly on an irregular schedule - the stream of 8-bit source characters.

Speicher M1 42 enthält 256 Elemente, die die 256 möglichen Quellenzeichen darstellen. Die Elemente von Speicher M1 42 werden auf eindeutige Werte zwischen 0 und 255 gesetzt. Der Wert r im i-ten Element von Speicher M1 42 stellt den Rang r des i-ten Quellenzeichens gemäß seiner Auftrittshäufigkeit im Quellenstrom dar. Wenn z. B. das 10. Element des Speichers M1 42 den Wert 128 enthält, dann wird von dem Quellenzeichen, das durch das 10. Element dargestellt wird, angegenommen, daß es am 128-häufigsten von allen Zeichen im Quellenstrom vorkommt.Memory M1 42 contains 256 elements which represent the 256 possible source characters. The elements of memory M1 42 are set to unique values between 0 and 255. The value r in the i-th element of memory M1 42 represents the rank r of the i-th source character according to its frequency of occurrence in the source stream. B. the 10th element of the memory M1 42 contains the value 128, then the source code, that is represented by the 10th element, assuming that it is the 128th most frequent of all characters in the Source current occurs.

3238132381

Speicher Μ2 44 enthält 256 Plätze für die 256 möglichen Ränge der Quellenzeichen. Der Wert i im r-ten Element von M2 stallt das Quellenzeichen i dar, das den r-ten Rang bezüglich der Auftrittshäufigkeit innehat. Dementsprechend ist M1 eine Tabelle für die Rangfolge der Quellenzeichen, während M2 eine Tabelle der Quellenzeichen in der richtigen Rangordnung ist. Wenn das i-te Element von MT gleich r ist, dann ist das r-te Element von M2 gleich i. Es ist am zweckmäßigsten, die i-ten Elemente von M1 und M2 zu Beginn jeweils gleich i zu setzen.Memory Μ2 44 contains 256 locations for the 256 possible ranks of the source characters. The value i in the rth element of M2 represents the source character i, which is the r-th rank with respect to the frequency of occurrence. Accordingly, M1 is a table for the ranking of the source characters, while M2 is a table of the source characters in the correct ranking. If the i-th element of MT is equal to r, then the rth element of M2 is i. It is most convenient to start with the ith elements of M1 and M2 to set equal to i in each case.

Register N4E 46 enthält die Zahl N4E und Register N8E 48 die Zahl N8E. Anfangs werden N4E und Ν8Έ so als nicht-negative ganze Zahlen angesetzt, daß die Kraft-Gleichung, wenn NL als 267 gewählt wird, erfüllt ist gemäß:Register N4E 46 contains the number N4E and register N8E 48 the number N8E. Initially, N4E and Ν8Έ are so considered non-negative It is assumed that the force equation, if NL is chosen as 267, is fulfilled according to:

15 N4E + N8E = 222 .15 N4E + N8E = 222.

Das Register CE 64, das man zu Beginn gleich irgendeinem Wert setzen kann (z, B. 64), enthält die Zählung, die die Grundlage für eine Änderung von N4E bildet.The register CE 64, which you can find at the beginning like any Can set value (e.g. 64), contains the count which forms the basis for a change in N4E.

Das Rechenwerk 60 führt erforderliche Rechnungen aus. Der codierte Codewörter-Strom kommt bei dem Ausgabe-Anschluß 18 an. Das Register W 62 hält die Unterwörter von jedem Code-Wort vor der Weitergabe zum Anschluß 18 fest. Die Register R1 54, R2 56, A1 52 und A2 58 sind wie dargestellt geschaltet. Jedes Element des Codierers 14 ist an den Datenübertragungsweg 49 angeschlossen und verbunden mit und gesteuert durch das Datenverarbeitungs-Steuergerät 50, wie in Fig. 3 dargestellt. Die Elemente des Codierers 14 sind als herkömmliche Mikroprozessoren und Speicher ausgeführt.The arithmetic unit 60 carries out the necessary calculations. The encoded codeword stream arrives at the output port 18 at. The register W 62 holds the sub-words of each code word before being passed on to the terminal 18. The registers R1 54, R2 56, A1 52 and A2 58 are connected as shown. Each element of the encoder 14 is connected to the data transmission path 49 connected and connected to and controlled by the data processing control device 50, as in FIG Fig. 3 shown. The elements of encoder 14 are conventional microprocessors and memories.

Die Ergebnisse von allen unten beschriebenen numerischen Operationen werden zur nächsten ganzen Zahl hin abgerundet.The results of any of the numerical operations described below are rounded down to the nearest whole number.

- V2" -- V2 "-

Wenn ein Quellenzeichen-Byte bei Anschluß 16 empfangen wird, wird es vom Steuergerät 50 an das Register A1 52 weitergegeben (s. die Figuren 3, 5A, 5B, 5C und 5D). Das Quellenzeichen in Register A1 52 dient dann als Hinweisadresse*für Tabelle M1 42, die den Rang r des Quellenzeichens an das Register R1 54 gibt. Wenn Register R1 54 dann keine 0 enthält (d.h. wenn das Quellenzeichen nicht vom niedersten Rang ist, d.h. nicht die größte Auftrittshäufigkeit besitzt), wird der Wert (r) des Ranges von R1 54 an Register R2 56 weitergegeben, das dann um 1 auf (r-1) vermindert wird.When a source byte byte is received on port 16, it is passed from controller 50 to register A1 52 (See Figures 3, 5A, 5B, 5C and 5D). The source mark in register A1 52 then serves as the reference address * for table M1 42, which assigns the rank r of the source character to the Register R1 54 there. If register R1 54 then does not contain a 0 (i.e. if the source character is not of the lowest rank i.e. does not have the highest frequency of occurrence), the value (r) of the rank of R1 54 in register R2 is 56 passed on, which is then decreased by 1 to (r-1).

Register R2 56 dient als Hinweisadresse für Tabelle M2 44, und das Quellenzeichen vom Rang (r-1) wird in Register A2 gebracht, das als Hinweisadresse für Register M1 44 dient. Die Zahl in Register A1 52 (d.h. das Quellenzeichen) wird an die Stelle (r-1) von Tabelle M2 44 geladen. Register R2 56 wird dann um 1 zu r erhöht, und die Zahl in Register A1 52 wird auf den Platz r von M2 44 gespeichert. Platz A1 von Tabelle M1 42 wird vermindert, und Platz A2 von Tabelle M1 42 erhöht. *(address pointer)Register R2 56 serves as a pointer to table M2 44 and the source character of rank (r-1) is stored in register A2 which is used as a pointer for register M1 44. The number in register A1 becomes 52 (i.e. the source character) loaded in place (r-1) of table M2 44. Register R2 56 is then incremented by 1 to r, and the number in register A1 52 is stored in location r of M2 44. Place A1 from Table M1 42 is decreased and space A2 of table M1 42 is increased. * (address pointer)

Angenommen, das i-te Element von M1 42 enthalte den Rang des Quellenzeichens i und angenommen, das r-te Element der Tabelle M2 44 enthalte das Quellenzeichen vom Rang r, dann hat die vorhergehende Operation den Effekt, den Rang des ankommenden Quellenzeichens in Register R1 54 einzugeben, wobei der Rang von jenem Quellenzeichen mit dem Rang des nächstnieder rangierenden Quellenzeichens vertauscht wird und wobei entsprechend die Tabellen M1 42 und M2 44 fortgeschrieben werden.Assume that the i-th element of M1 42 contains the rank of the source code i and assuming that the r-th element of the table M2 44 contains the source code of rank r, then the previous operation has the effect of entering the rank of the incoming source character in register R1 54, wherein the rank of that source symbol is swapped with the rank of the next lower ranking source symbol and tables M1 42 and M2 44 updated accordingly will.

. . .. . .

Der Inhalt von R1 54 (der Rang r des ankommenden Quellenzeichens) wird mit dem Inhalt von N4E 46 und N8E 48 verglichen, und der Wert von CE wird wie folgt geändert. Wenn r gleich N4E oder N4E - 1 ist, wird CE erhöht. Wenn r kleiner als N8E + 15 und größer oder gleich N8E - 15 ist, wird CE vermindert. The content of R1 54 (the rank r of the incoming source character) is compared with the content of N4E 46 and N8E 48, and the value of CE is changed as follows. When r is equal to N4E or N4E-1, CE is increased. If r is less than N8E + 15 and greater than or equal to N8E - 15, CE is decreased.

.2,3..2.3.

Aufgrund der Resultate der folgenden Vergleiche zwischen den Inhalten von den Registern R1 54, N4E 46 und N8E 48 werden die folgenden Maßnahmen vorgenommen:Based on the results of the following comparisons between the contents of the registers R1 54, N4E 46 and N8E 48 are made took the following actions:

Wenn R1 kleiner als N4E ist (was anzeigt, daß das ankommende Quellenzeichen sich in der Gruppe derer befindet, die in Ein-Unterwort-Wörter codiert werden), wird R1 54 um 1 erhöht und weitergegeben an Register W 62 (d.h. jenes Quellenzeichen wird in ein Code-Wort codiert, das als Zahlenangabe um 1 größer als sein Rang ist - dies ist dargestellt in Fig. 2, wo N4E gleich 10 ist und wo das Quellenzeichen vom Rang 0 in Unterwort 1 codiert ist, während das Quellenzeichen vom Rang 1 in Unterwort 2 codiert ist).When R1 is less than N4E (indicating that the incoming Source character is in the group of those encoded in one-subword words), R1 54 is increased by 1 and passed on to register W 62 (i.e. that source character is encoded in a code word that is used as a numerical indication is greater than its rank by 1 - this is illustrated in Figure 2, where N4E equals 10 and where the source character is of rank 0 is encoded in sub-word 1, while the source character of rank 1 is encoded in sub-word 2).

Wenn R1 mindestens so groß wie N4E ist, aber kleiner als N8E (d.h. wenn das ankommende Quellenzeichen in ein Zwei-Unterworter-Wort zu codieren ist), dann wirdIf R1 is at least as large as N4E but smaller than N8E (i.e. if the incoming source character is in a two-subword word is to be coded), then

(N4E)15 + 17 + JN8E - N4E - 1) (N4E ) 15 + 17 + JN8E - N4E - 1)

15
20
15th
20th

zu Register R1 54 addiert und an W 62 weitergegeben (um das mögliche Zwei-Unterwörter-Codewort zu werden). Wenn die vier am wenigsten signifikanten Bits des Resultats 0 sind (d.h. das unzulässige Unterwort (0000) darstellen), wird der Wert54 added to register R1 and passed on to W 62 (to get the possible two-subwords code word to become). If the four least significant bits of the result are 0 (i.e. represent the impermissible sub-word (0000)), the value becomes

γ|· + 15 (N4E) +15γ | · + 15 (N4E) +15

berechnet und die Antwort an Register W 62 weitergegeben (um so das endgültige Zwei-Unterwörter-Codewort zu werden).is calculated and the response passed to register W 62 (so as to become the final two-subword codeword).

Wenn R1 mindestens so groß wie N8E ist (d.h. wenn das Codewort aus drei Unterwörtern bestehen wird), wird 3829 zu Register R1 54 addiert und das Resultat in Register. W62 eingesetzt. Wenn die vier am wenigsten signifikanten Bits des Resultats nicht 0 sind (d.h. wenn das dritte Unterwort züge-If R1 is at least as large as N8E (i.e. if the code word will consist of three sub-words), 3829 is added to register R1 54 and the result into register. W62 used. If the four least significant bits of the result are not 0 (i.e. if the third sub-word is

OO I OKJ L OO I OKJ

lassen ist), wird der Inhalt von Register W 62 durch 16 dividiert und das Resultat zu 3573 + N8E addiert. Wenn dieses Resultat kleiner als 3856 ist, wird 16 von ihm abgezogen. Das Resultat wird an Register W 62 weitergegeben. 5is let), the content of register W 62 becomes 16 divided and the result added to 3573 + N8E. If this result is less than 3856, 16 is deducted from it. The result is passed on to register W 62. 5

Durch die vorangehende Codierungsoperation werden je nach Rang des ankommenden Quellenworts ein, zwei oder drei von Null verschiedene ünterwörter in Register W 62 als Code-Wort geladen. Das Null-Unterwort wird in Register W 62 nicht permanent an eine weniger signifikante Stelle gesetzt als die Stelle eines Nicht-Null-Unterworts. Das Code-Wort wird dann vom Ausgabeanschluß 18 aus weitergegeben, beginnend mit dem signifikantesten Nicht-Null-Unterwort.By the preceding coding operation, depending on the rank of the incoming source word, one, two or three of Zero different sub-words in register W 62 as code word loaded. The zero sub-word is not permanently set to a less significant place in register W 62 as the place of a non-zero sub-word. The code word is then passed on from the output terminal 18, starting with the most significant non-zero sub-word.

Wenn schließlich CE den oberen (UPPER) oder unteren (LOWER) Schwellenwert erreicht hat, muß CE in die Stellung MIDDLE gebracht werden, und N4E und N8E müssen geändert werden, um die Zahl der Quellenzeichen, die in Ein-Unterwort-, Zwei-Unterwörter- oder Drei-Unterwörter-Codewörter codiert werden, einzustellen, so daß die Länge des codierten Stromes minimalisiert wird. Das wird wie folgt erreicht.Finally, when CE pushes the upper (UPPER) or lower (LOWER) CE must be set to MIDDLE and N4E and N8E must be changed to be the number of source characters contained in one-sub-word, two-sub-word, or three-sub-word code words are encoded, so that the length of the encoded stream is minimized. This is achieved as follows.

Wenn CE = UPPER und N8E größer als 15 ist, dann wird CE gleich MIDDLE gesetzt, N4E um 1 erhöht und N8E um 15 vermindert. If CE = UPPER and N8E is greater than 15, then CE is set equal to MIDDLE, N4E is increased by 1 and N8E is decreased by 15.

Wenn CE = LOWER und N4E ungleich Null ist, wird CE gleich MIDDLE gesetzt, N4E um 1 vermindert und N8E um 15 erhöht.If CE = LOWER and N4E is not equal to zero, CE is set equal to MIDDLE, N4E is decreased by 1 and N8E is increased by 15.

UPPER ist der vorher beschriebene obere Schwellenwert und LOWER der vorher beschriebene untere Schwellenwert. UPPER ist größer als MIDDLE, das seinerseits größer als LOWER ist; diese Werte steuern die Geschwindigkeit,mit der die Codierung geändert wird, falls sich die relative Auftrittshäufigkeit der Zeichen im Quellenstrom ändert. Werte von UPPER = 128, MIDDLE = 64 und LOWER = 0 werden bei 8-Bit-Quellenzeichen verwendet.UPPER is the previously described upper threshold and LOWER is the previously described lower threshold. UPPER is greater than MIDDLE, which in turn is greater than LOWER; these values control the speed at which the coding takes place is changed if the relative frequency of occurrence changes that changes characters in the source stream. Values of UPPER = 128, MIDDLE = 64 and LOWER = 0 are used for 8-bit source characters used.

BAD ORIGINALBATH ORIGINAL

- rs . ÄS-- rs. ÄS-

Wenn CE groß wird, wird N4E vergrößert, wobei mehr Quellenzeichen als Einzel-Unterwörter codiert werden; Umgekehrtes gilt, falls CE klein wird. Der Effekt ist, die Länge des Codewörter-Stroms zu minimalisieren, falls die relative Auftrittshäufigkeit der Quellenzeichen sich verschiebt.As CE becomes large, N4E is enlarged, encoding more source characters as single subwords; The other way around holds if CE becomes small. The effect is to minimize the length of the codeword stream, if the relative Frequency of occurrence of the source characters shifts.

An diesem Punkt erwartet dann der Codierer 14 die Ankunft des nächsten Quellenzeichens und der Prozeß wird wiederholt.At this point the encoder 14 then awaits arrival of the next source mark and the process is repeated.

Nach Verarbeitung jedes Quellenzeichens enthält der Codierer 14 Tabellen (M1 und M2) , die die Häufigkeitsrangordnung von allen möglichen Quellenzeichen wiederspiegeln, Zahlen (N4E und N8E), die die Gruppen von Quellenzeichen bestimmen, welche in Ein-, Zwei- oder Drei-Unterwörter-Codewörter codiert werden, eine Zahl CE, die angibt, wie wünschenswert Änderungen von N4E und N8E sind, und ein Programm zur eindeutigen Codierung des als nächstes empfangenen Quellenzeichens gemäß seinem Rang und gemäß der Werte von N4E und N8E.After processing each source character, the encoder contains 14 tables (M1 and M2) showing the order of frequency reflect of all possible source symbols, numbers (N4E and N8E) that determine the groups of source symbols, which are encoded in one, two or three sub-word codewords, a number CE indicating how desirable Changes to N4E and N8E are, and a program to uniquely encode the next source character received according to its rank and according to the values of N4E and N8E.

Wie in Fig. 4 gezeigt, hat der Decodierer 24 einen Eingabe-Anschluß 22, auf dem er einen Codewörter-Strom empfängt, wobei jedes aus einem, zwei oder drei 4-Bit-Unterwörtern besteht, einen Ausgabeanschluß 26, an den er den Strom der decodierten Quellenzeichen weitergibt, und ein Rechenwerk 78 zur Ausführung von Rechnungen. Die Tabelle M3 82 entspricht der Tabelle M2 des Codierers, die Register N4D 76 und N8D 66 entsprechen den Registern N4E und N8E des Codierers, das Register CD 80 entspricht dem Register CE des Codierers und das Register S 74 enthält einen Wert, der angibt, ob das erste, zweite oder dritte Unterwort des Codeworts gerade verarbeitet wird. Die Elemente des Deco1-dierers 24 sind an den Datenübertragungsweg 79 angeschlossen und werden durch das Datenverarbeitungs-Steuergerät 70 gesteuert. Die Elemente des Decodierers 24 werden als ein herkömmlicher Mikroprozessor und Speicher ausgeführt.As shown in Fig. 4 , the decoder 24 has an input port 22 on which it receives a stream of codewords, each consisting of one, two or three 4-bit sub-words, an output port 26 to which it receives the stream forwards the decoded source characters, and an arithmetic unit 78 for carrying out calculations. The table M3 82 corresponds to the table M2 of the encoder, the registers N4D 76 and N8D 66 correspond to the registers N4E and N8E of the encoder, the register CD 80 corresponds to the register CE of the encoder and the register S 74 contains a value which indicates whether the first, second or third sub-word of the code word is currently being processed. The elements of the decoder 1 -dierers 24 are connected to the data bus 79 and are controlled by the data processing control device 70th The elements of decoder 24 are implemented as a conventional microprocessor and memory.

- V6 -- V6 -

Vor Inbetriebnahme wird Tabelle M3 so vorbereitet, daß sie identisch mit Tabelle M2 des Codierers ist/ und die Register N4D, N8D und CD erhalten dieselben Werte wie die entsprechenden Register des Codierers. Anfangs wird Register S Null gesetzt als Vorbereitung zur Verarbeitung des ersten Unterwortes des ersten ankommenden Codewortes.Before commissioning, table M3 is prepared so that it is identical to table M2 of the encoder / and the registers N4D, N8D and CD receive the same values as the corresponding registers of the encoder. Initially there will be a register S set to zero in preparation for processing the first sub-word of the first incoming code word.

Wenn ein Unterwort bei Anschluß 22 empfangen wird, gibt das Steuergerät 70 es weiter zu Register R3 72 und führt - abhängig vom Wert, der in Register S 74 gespeichert ist - die im .folgenden beschriebenen Aktionen durch (siehe die Figuren 4, 6A, 6B, 6C und 6D). Der Wert in Register S gibt an, ob das erste, zweite oder dritte Unterwort eines Codeworts verarbeitet wird.When a sub-word is received at port 22, control unit 70 passes it on to register R3 72 and executes - dependently of the value stored in register S 74 - carry out the actions described below (see the figures 4, 6A, 6B, 6C and 6D). The value in register S indicates whether the first, second or third sub-word of a code word is processed.

Wenn S Null ist und so das erste Unterwort in einem Codewort anzeigt, dann wird Register R3 mit dem Wert in Register N4D 76 verglichen. Wenn R3 kleiner oder gleich N4D ist (d.h. wenn das Codewort nur ein Unterwort lang ist), dann wird R3 vermindert, um den Rang des Quellenzeichens zu erhalten; andernfalls wird R3 nach Register S übertragen. If S is zero and so is the first sub-word in a code word then register R3 is compared with the value in register N4D 76. If R3 is less than or equal to N4D (i.e. if the code word is only one sub-word long), then R3 is decreased by the rank of the source character to obtain; otherwise R3 is transferred to register S.

Wenn S größer als 0 ist, aber kleiner als 16, was das zweite Unterwort eines Codeworts anzeigt, dann wird der Inhalt von Register S 74 mit 16 multipliziert und das Resultat zu R3 hinzuaddiert. Wenn R3 kleiner alsIf S is greater than 0 but less than 16, which is the second Indicates sub-word of a code word, then the content of register S 74 is multiplied by 16 and the result becomes R3 added. If R3 is less than

16 N4D + 17 + i^8D - N4D) 16 N4D + 17 + i ^ 8D - N4D)

15
30
15th
30th

ist, dann wirdis then will

15 N4D +1515 N4D +15

von R3 abgezogen, das Resultat mit 16 multipliziert und an R3 zurückgegeben. Wenn dann R3 kleiner alssubtracted from R3, the result multiplied by 16 and returned to R3. Then if R3 is less than

BAD ORiGfNALBAD ORiGfNAL

{15N4D + 17
ist, dann wird
{15 N4D + 17
is then will

N4D + 17 + N4D + 17 +

von R3 abgezogen und S gelöscht, andernfalls wird R3 nach S gesandt.subtracted from R3 and deleted S, otherwise R3 is sent to S.

Wenn S größer oder gleich 16 ist, was das dritte Unterwort eines Codeworts anzeigt, dann wird der Inhalt von Register S 74 mit 16 multipliziert und das Resultat zu R3 hinzuaddiert. Wenn R3 kleiner als 3840 ist, dann wird 16 zu ihm addiert, und, falls das resultierende R3 kleiner als 3829 + N8D ist, dann wird 3573 + N8D von R3 abgezogen, das Resultat wird mit 16 multipliziert und dieses Ergebnis in R3 gespeichert. Dann wird 3829 von R3 abgezogen und S gelöscht. If S is greater than or equal to 16, which indicates the third sub-word of a code word, then the contents of Register Multiply S 74 by 16 and add the result to R3. If R3 is less than 3840 then 16 becomes adds it, and if the resulting R3 is less than 3829 + N8D then subtracts 3573 + N8D from R3, that Result is multiplied by 16 and this result is saved in R3. Then 3829 is subtracted from R3 and S is deleted.

Wenn nach Ausführung dieser Operationen der Wert von S 0 ist, was die Ankunft eines neuen Code-Wortes anzeigt, muß der Wert in CD zur Anpassung an den Wert in CE fortgeschrieben werden, damit Codierer und Decodierer mit den gleichen Codes arbeiten. Dies wird durch das Steuergerät "70 erreicht, das die folgenden Funktionen ausführt:If, after performing these operations, the value of S is 0, which indicates the arrival of a new code word, must the value in CD can be updated to match the value in CE so that the encoder and decoder use the same Codes work. This is achieved by the control unit "70", which performs the following functions:

Der Inhalt von R3 (das den Rang des Quellenzeichens enthält, dessen zugehöriges Code-Wort gerade decodiert wird) wird mit den Inhalten von N4D und N4E verglichen. Wenn R3 gleich N4D - 1 oder R3 gleich N4D ist, dann wird Register CD 80 erhöht. Wenn R3 größer oder gleich N8D - 15 und kleiner als N8D +15 ist, dann wird Register CD 80 vermindert.The content of R3 (which contains the rank of the source character whose associated code word is being decoded) is compared with the contents of N4D and N4E. If R3 is equal to N4D-1 or R3 is equal to N4D then register CD 80 increased. If R3 is greater than or equal to N8D - 15 and less when N8D is +15, then register CD 80 is decremented.

Das Steuergerät 70 bringt dann den Inhalt von Stelle R3 der Tabelle M3 82 (das ist das Quellenzeichen vom Rang R3) zum Ausgabe-Anschluß 26, und - falls R3 größer als Null istThe control unit 70 then brings the content of point R3 Table M3 82 (that is the source code of rank R3) to output port 26, and if R3 is greater than zero

(d.h. falls das Quellenzeichen nicht gerade vom niedersten Rang ist) - die Inhalte der Stellen R3 und R3 - 1 in Tabelle M3 werden vertauscht, was effektiv die Ränge des gerade verarbeiteten Quellenzeichens und des nächstniederen vertauscht; damit ist erreicht, daß Tabelle M3 der Tabelle M2 44 des Codierers 14 entspricht.(i.e. if the source mark is not from the lowest Rank is) - the contents of digits R3 and R3-1 in table M3 are swapped, which is effectively the ranks of the straight processed source characters and the next lower swapped; This means that table M3 corresponds to table M2 44 of encoder 14.

Als nächstes vergleicht das Steuergerät 70 den Wert in CD mit den gleichen Schwellenwerten UPPER und LOWER, die vom Codierer 14 verwendet werden, und führt folgendes aus:Next, the controller 70 compares the value in CD with the same threshold values UPPER and LOWER obtained from Encoder 14 can be used and does the following:

Wenn CD = UPPER und N8D größer als 15 ist, dann wird CD gleich MIDDLE gesetzt, N4D um 1 erhöht und N8D um 15 vermindert.
15
If CD = UPPER and N8D is greater than 15, then CD is set equal to MIDDLE, N4D is increased by 1 and N8D is decreased by 15.
15th

Wenn CD = LOWER und N4D größer als 0 ist, dann wird CD gleich MIDDLE gesetzt, N4D um 1 vermindert und N8D um 15 erhöht.If CD = LOWER and N4D is greater than 0, then CD becomes set equal to MIDDLE, N4D decreased by 1 and N8D increased by 15.

Diese Schritte bewirken ein internes Fortschreiben der Werte von CD, N4D und N8D, die so genau CE, N4E bzw. N8E im Codierer 14 entsprechen.These steps cause the values of CD, N4D and N8D to be updated internally, which are exactly CE, N4E and N8E im Encoder 14 correspond.

Schließlich wird das decodierte Quellenzeichen beim Ausgabe-Anschluß 26 auf die Leitung 28 gebracht. Das Steuergerät 70 wartet, bis das nächste Code-Wort beim Eingabe-Anschluß 22 ankommt und wiederholt dann den Vorgang.Eventually the source character is decoded at the output port 26 brought to line 28. The control unit 70 waits until the next code word at the input connection 22 arrives and then repeats the process.

Der Decodierer 24 decodiert daher jedes empfangene Code-Wort in das entsprechende Quellenzeichen, wobei er den Umkehrprozeß des Codierers anwendet, der sich auf die Deco-" dier-Parameter N4D und N8D und eine Liste M3 mit den nach Rängen geordneten Quellenzeichen gründet. N4D und N8D werden geändert, wenn ein Wert CD vorprogrammierte Schwellenwerte, UPPER und LOWER, überschreitet, die dieselben sind wie die im Codierer 14 programmierten. CD wird fortgeschrieben, umThe decoder 24 therefore decodes each received code word into the corresponding source character, with the Reverse process of the encoder applies, which applies to the decoding parameters N4D and N8D and a list M3 with the after Ranks based source symbols. N4D and N8D are changed when a value CD has pre-programmed thresholds, UPPER and LOWER, which are the same as those programmed in encoder 14. CD is updated to

BAD ORIGINAL BATH ORIGINAL

gleich dem Wert CE zu sein. M3 wird, um die jeweiligen Ränge der Quellenzeichen zu zeigen, mittels desselben Prozessors fortgeschrieben, der im Codierer 14 verwendet wird. Als Information braucht nur der Quellenzeichen-Strom vom Co dierer 14 zum Decodierer 24 zur Abstimmung ihrer jeweiligen Arbeit übertragen werden, da die erforderliche Codier-Information implizit in den Code-Wörtern selbst enthalten istto be equal to the value CE. M3 is made to the respective Show ranks of source characters using the same processor which is used in encoder 14. Only the source code stream from the Co The decoder 14 can be transmitted to the decoder 24 to coordinate their respective work, as the necessary coding information is implicit in the code words themselves

Andere Ausführungsbeispiele werden durch die Patentansprüehe erfaßt. Z. B. können die Code-Wörter eine Gruppe von Code-Wörtern mit mehr als drei Unterwörtern enthalten. Die Trennstellen zwischen den Codewort-Gruppen werden dann aufgrund der Kraft-Gleichung durch mehr als zwei beteiligte Werte bestimmt; dabei ist unter diesen Werten dann mehr als nur eine freie Variable, wobei die verbleibenden Werte bestimmt sind, falls jene freien Variablen einmal festgelegt sind.Other embodiments are defined by the claims recorded. For example, the code words can contain a group of code words with more than three sub-words. the Separation points between the code word groups are then involved due to the force equation by more than two Values determined; there is more than just one free variable among these values, with the remaining values are determined, provided that those free variables are defined once.

LeerseiteBlank page

Claims (1)

PATENTANWALT' & RECHTSANWALT DIPL-PHYS. DR.JUR. U. HEIDRICHPATENTANWALT '& LAWYER DIPL-PHYS. DR.JUR. U. HEIDRICH •ZUGELASSEN BEIM EUROPÄISCHEN PATENTAMT EUROPEAN PATENT ATTORNEY• APPROVED BY THE EUROPEAN PATENT OFFICE EUROPEAN PATENT ATTORNEY Franziskanerstr. 30 D-8000 MÜNCHEN 80Franziskanerstr. 30 D-8000 MUNICH 80 Tel. (089) 448 50 40 Telex 5 2l3 7IOeptodTel. (089) 448 50 40 Telex 5 2l3 7IOeptod 14. Oktober 1982October 14, 1982 CODEX - DE CompressCODEX - DE Compress PatentansprücheClaims 1. Vorrichtung zur Codierung eines Quellenzeichen-Stroms in einen Codewörter-Strom,1. Apparatus for coding a source character stream into a stream of codewords, dadurch gekennzeichnet,characterized, - daß jedes Quellenzeichen eine zeitveränderliche Auftrittshäufigkeit im Quellenzeichen-Strom haben kann,- that every source symbol has a time-varying frequency of occurrence can have in the source symbol stream, - daß jedes Code-Wort zu einer aus einer Anzahl von Codewörter-Gruppen gehört,- that each code word corresponds to one of a number of Codeword groups, - daß die Code-Wörter je nach Gruppe verschiedene Anzahlen von Unterwörtern haben, und- That the code words have different numbers of sub-words depending on the group, and - daß vorgesehen sind:- that the following are provided: - ein Codierer (14) zur Codierung jedes Quellenzeichens in eines der Code-Wörter,- an encoder (14) for encoding each source character in one of the code words, - wobei häufiger auftretende Quellenzeichen in Code-Wörter codiert werden, die weniger Unterwörter haben, und- where more frequently occurring source characters are encoded in code words that have fewer subwords, and - ein Gruppengrößen-Wähler (A1 52, A2 58, CE 64, M1 42, M2 44, N4E 46, N8E 48, R1 54, R2 56, W 62, 50, 60),- a group size selector (A1 52, A2 58, CE 64, M1 42, M2 44, N4E 46, N8E 48, R1 54, R2 56, W 62, 50, 60), - der die Anzahlen von Code-Wörtern, die jeweils zu weniger als allen Gruppen gehören, in neue Zahlen abändert und daraus dann die Anzahlen von Code-Wörtern neu berechnet, die zu den übrigen Gruppen gehören, wobei wenigstens ein Teil des Codewörter-- of the numbers of code words, each belonging to less than all groups, into new numbers and then recalculated the numbers of code words that belong to the other groups belong, with at least part of the code word Stroms verkürzt wird
(Fig. 1; 3).
Stroms is shortened
(Fig. 1; 3).
2. Vorrichtung zur Codierung eines Quellenzeichen-Stroms in einen Codewörter-Strom,
dadurch gekennzeichnet,
2. Device for coding a source character stream into a code word stream,
characterized,
- daß jedes Quellenzeichen aus einem Quellen-Alphabet stammt,- that every source symbol comes from a source alphabet, - daß die Quellenzeichen aus diesem Quellen-Alphabet eine zeitveränderliche Auftrittshäufigkeit im Quellenzeichen-Strom haben können,- that the source characters from this source alphabet have a time-varying frequency of occurrence in the source character stream can have, - daß jedes Code-Wort zu einer von mehreren Codewörter-Gruppen gehört,- that each code word belongs to one of several code word groups, - daß die Code-Wörter je nach Gruppe verschiedene Anzahlen von Unterwörtern haben, und- That the code words have different numbers of sub-words depending on the group, and - daß vorgesehen sind:- that the following are provided: - ein Codierer (14) zur Codierung von jedem Quellenzeichen in eines der Code-Wörter,- an encoder (14) for encoding each source character into one of the code words, - wobei häufiger auftretende Quellenzeichen in Code-Wörter mit weniger Unterwörtern codiert werden,- with frequently occurring source characters in code words are coded with fewer sub-words, - ein Wächter (CE 64),- a guard (CE 64), - der im Ομβίίθηζβίσηβη-ε^τοΐη zählt, wie oft jedes Quellenzeichen in einem Satz von weniger als- who in Ομβίίθηζβίσηβη-ε ^ τοΐη counts how often each Source characters in a sentence less than allen Quellenzeichen vorkommt, undoccurs in all source characters, and - ein Gruppengrößen-Wähler (A1 52, ..., 60), der abhängig vom wächter die Zahl von Code-Wörtern ändert, die jeweils zu den Gruppen gehören, wobei wenigstens ein Teil des Codewörter-Stroms verkürzt wird (Fig. 1; 3).- a group size selector (A1 52, ..., 60) that changes the number of code words depending on the guardian each belong to the groups, with at least part of the codeword stream being shortened (Fig. 1; 3). BAD ORIGiMALBATH ORIGiMAL 3. Vorrichtung zur Codierung eines Quellenzeichen-Stroms in einen Codewörter-Strom,
dadurch gekennzeichnet,
3. Device for coding a source character stream into a code word stream,
characterized,
- daß jedes Quellenzeichen eine zeitveränderliche Auftrittshäufigkeit im Quellenzeichen-Strom haben kann,- that every source symbol has a time-varying frequency of occurrence can have in the source symbol stream, - daß jedes Code-Wort entweder zu einer ersten, zweiten oder dritten Gruppe von Code-Wörtern gehört,- that each code word belongs to either a first, second or third group of code words, - daß die Code-Wörter in den ersten, zweiten und dritten Gruppen ein, zwei bzw. drei ünterwörter umfassen, und- that the code words in the first, second and third Groups contain one, two and three subwords, and - daß vorgesehen sind:- that the following are provided: - ein Codierer (14) zur Codierung eines ersten Satzes von Quellenzeichen in Code-Wörter, die zur ersten Gruppe gehören,- An encoder (14) for encoding a first set of source characters in code words that correspond to the first Belong to a group, - eines zweiten Satzes von Quellenzeichen in Code-Wörter, die zur zweiten Gruppe gehören, und- a second set of source characters in code words belonging to the second group, and - eines dritten Satzes von Quellenzeichen in Code-Wörter, die zur dritten Gruppe gehören, - wobei häufiger auftretende Quellenzeichen in Code-Wörter mit weniger Unterwörtern codiert- a third set of source characters in code words, which belong to the third group, - where more frequently occurring source characters are in Code words coded with fewer sub-words werden, undbe, and - ein Gruppengrößen-Wähler (A1 52, ..., 60),- a group size selector (A1 52, ..., 60), - der die Anzahlen von Code-Wörtern, die jeweils zu den ersten, zweiten und dritten Gruppen gehören, entsprechend den Veränderungen in den Auftrittshäufigkeiten abändert, wobei wenigstens ein Teil des Codewörter-Stroms verkürzt wird (Fig. 1; 3).- the number of code words belonging to the first, second and third groups, changes according to the changes in the frequency of occurrence, with at least a part of the codeword stream is shortened (Fig. 1; 3). Vorrichtung nach Anspruch 3, dadurch gekennzeichnet,Device according to claim 3, characterized in that - daß der Gruppengrößen-Wähler (A1 52, ..., 60) so geschaltet ist, daß er- That the group size selector (A1 52, ..., 60) is switched in this way is that he - die Zahl der Code-Wörter, die zu einer der Gruppen gehören, in eine neue Zahl abändert, und- changes the number of code words that belong to one of the groups to a new number, and - die Zahlen der Code-Wörter, die zu den übrigen Gruppen gehören, direkt aus der neuen Zahl neu berechnet.- the numbers of the code words that belong to the other groups, directly from the new number recalculated. BAD ORIGINALBATH ORIGINAL 5. Vorrichtung zum Codieren eines Quellenzeichen-Stroms in einen Codewörter-Strom,
dadurch gekennzeichnet,
5. Apparatus for coding a source character stream into a code word stream,
characterized,
- daß jedes Quellenzeichen aus einem Quellen-Alphabet stammt,- that every source symbol comes from a source alphabet, - daß jedes Quellenzeichen aus dem Quellen-Alphabet mit zeitveränderlicher Häufigkeit im Quellenstrom vorkommen kann,- that every source character from the source alphabet with time-varying frequency occur in the source stream can, - daß jedes Code-Wort entweder zu einer ersten, zweiten oder dritten Gruppe von Code-Wörtern gehört,- that each code word belongs to either a first, second or third group of code words, - daß die Code-Wörter in den jeweiligen Gruppen ein, zwei oder drei gleichlange Unterwörter besitzen,- that the code words in the respective groups, have two or three subwords of the same length, - daß jedes ünterwort aus einem Unterwort-Alphabet stammt, und- that each sub-word comes from a sub-word alphabet, and - daß vorgesehen sind:- that the following are provided: - ein Häufigkeits-Rangzuordner (A1 52, A2 58, CE 64, M1 42, M2 44, R1 54, R2 56),- a frequency rank allocator (A1 52, A2 58, CE 64, M1 42, M2 44, R1 54, R2 56), - der jedem Quellenzeichen einen Rang zuordnet, der seiner laufenden geschätzten relativen Auftrittshäufigkeit im Quellenzeichen-Strom entspricht,- which assigns a rank to each source character, which corresponds to its current estimated relative frequency of occurrence corresponds in the source symbol stream, - ein Codierer (14) ,- an encoder (14), - der - gemäß einem wählbaren Code - jedes Quellenzeichen, das einen Rang besitzt, der nicht höher als eine wählbare erste Zahl ist, in ein Code-Wort codiert, das aus einem Unterwort besteht,- the - according to a code that can be selected - every source symbol that has a rank that is not higher as a selectable first number, encoded in a code word consisting of a sub-word, - der jedes Quellenzeichen, das einen höheren Rang als die erste Zahl, aber keinen höheren als eine zweite besitzt, in ein Code-Wort codiert, das aus zwei Unterwörtern besteht, und - der jedes Quellenzeichen, das einen höheren Rang- of any source character that has a higher rank than the first number, but not higher than one second, encoded in a code word consisting of two sub-words, and - of any source mark that has a higher rank als die zweite Zahl hat, in ein Code-Wort codiert, das aus drei Unterwörtern besteht, wobei die zweite Zahl durch den Wert der ersten festgelegt ist,as the second number, encoded into a code word consisting of three sub-words, the second being Number is determined by the value of the first, - ein Wächter (CE 64), der zählt, wie oft - im Quellenzeichen-Strom - jedes Quellenzeichen in einem Satz von weniger als allen Quellenzeichen vorkommt, und- a guard (CE 64) who counts how often - in the source symbol stream - each source symbol occurs in a set of fewer than all source symbols, and - ein Wähler (A1 52, ..., 60)f - a voter (A1 52, ..., 60) f - der gemäß dem Wächter die erste Zahl zu einem neuen Wert fortschreibt, wenn der neue Wert wenigstens einen Teil des Codewörter-Stroms verkürzt, und- which according to the guard the first number to one updates new value if the new value shortens at least part of the codeword stream, and - der die zweite Zahl aus der ersten neu berechnet (Fig. 1; 3).- who recalculates the second number from the first (Fig. 1; 3). 6. Vorrichtung nach Anspruch 5,
dadurch gekennzeichnet,
6. Apparatus according to claim 5,
characterized,
- daß der Satz jene Quellenzeichen umfaßt, für die die Unterwörterzahl in den zugeordneten Code-Wörtern geändert würde, falls die erste und zweite Zahl sich ändern.- That the sentence includes those source characters for which the number of subwords in the assigned code words would be changed if the first and second numbers change. 7. Vorrichtung nach Anspruch 6,7. Apparatus according to claim 6, dadurch gekennzeichnet,
- daß der Satz die Quellenzeichen umfaßt, deren Ränge gleich der ersten Zahl, gleich Eins geringer als die erste Zahl und gleich jeder beliebigen Zahl zwischen der zweiten Zahl minus der Zahl von Unterwörtern im Unterwörter-Alphabet und der zweiten Zahl plus Eins weniger als die Zahl von Unterwörtern im Unterwörter-Alphabet sind.
characterized,
- That the sentence includes the source characters whose ranks are equal to the first number, equal to one less than the first number and equal to any number between the second number minus the number of subwords in the subword alphabet and the second number plus one less than the number of sub-words in the sub-word alphabet.
8. Vorrichtung nach Anspruch 5,
dadurch gekennzeichnet,
8. Apparatus according to claim 5,
characterized,
- daß der Wächter ein Zählwerk (CE 64) umfaßt,- that the guard includes a counter (CE 64), - das von einem mittleren Wert aus bei jedem Auftreten von Quellenzeichen mit Rängen gleich der ersten Zahl und Eins weniger als die erste Zahl nach oben zählt und nach unten bei jedem Auftreten von Quellenzeichen mit Rängen gleich einer Zahl zwischen der zweiten Zahl minus der Zahl von Unterwörtern in dem Unterwörter-Alphabet und der zweiten Zahl plus Eins weniger als die Zahl von Unterwörtern in dem Unterwörter-Alphabet, und- that from a mean value for each occurrence of source characters with ranks equal to the first Number and one less than the first number counts up and down each time source characters occur with ranks equal to a number between the second number minus the number of sub-words in the subword alphabet and the second number plus one less than the number of subwords in that Subwords alphabet, and - daß der Wähler ein Addierwerk (60) umfaßt,- That the selector includes an adder (60), - das die erste Zahl um Eins erhöht, wenn das Zählwerk einen oberen Wert erreicht hat, und der die erste- that increases the first number by one when the counter has reached an upper value, and the first Zahl um Eins vermindert, wenn das Zählwerk einen unteren Wert erreicht
(Fig. 3).
Number reduced by one when the counter reaches a lower value
(Fig. 3).
9. Vorrichtung nach Anspruch 5,
dadurch gekennzeichnet,
9. Apparatus according to claim 5,
characterized,
- daß der wählbare Code geändert wird, wenn die erste Zahl zu einem neuen Wert fortgeschrieben wird.- that the selectable code is changed when the first Number is updated to a new value. 10. Vorrichtung nach Anspruch 5,
dadurch gekennzeichnet,
10. Apparatus according to claim 5,
characterized,
- daß sie zudem einen Decodierer (24) umfaßt,- That it also includes a decoder (24), - der den Codewörter-Strom in den Quellenzeichen-Strom decodiert,- the codeword stream in the source character stream decoded, - wobei der Decodierer umfaßt:- the decoder comprising: - einen Decodierer-Häufigkeits-Rangzuordner (CD 80, M3 82, N4D 76, N8D 77, R3 72, S 74), - der zu jedem Quellenzeichen im Quellen-Alphabet- a decoder frequency rank allocator (CD 80, M3 82, N4D 76, N8D 77, R3 72, S 74), - the one for each source symbol in the source alphabet den Rang bestimmt, der seiner jeweiligen geschätzten relativen Auftrittshäufigkeit entspricht,the rank determined that of its respective esteemed corresponds to the relative frequency of occurrence, - wobei der Decodierer für die Code-Wörter im Codewörter-Strom direkt bestimmt, welcher der wählbaren Codes zur Codierung verwendet wurde (Fig. 1; 4).- The decoder for the code words in the code word stream directly determines which of the selectable codes was used for coding (Fig. 1; 4). 11. Vorrichtung zur Codierung eines Qüellenzeichen-Stroms in einem Codewörter-Strom,11. Device for coding a source character stream in a stream of codewords, dadurch gekennzeichnet, - daß jedes Quellenzeichen eine zeitveränderlichecharacterized in that - that each source symbol is a time-variable Auftrittshäufigkeit im Quellenzeichen-Strora hat, und - daß vorgesehen sind:Frequency of occurrence in the source symbol Strora has, and - that the following are provided: - ein Rang-Speicher (M1 42, M2 44) zum Speichern des Rangs, der der jeweiligen geschätzten relativen Aüftrittshäufigkeit eines jeden Quellenzeichens im Quellenzeichen-Strom entspricht, und- A rank memory (M1 42, M2 44) for storing the Rank, that of the respective estimated relative kicking frequency of each source character in the source character stream corresponds, and - ein Rang-Fortschreiber (CE 64, N4E 46, N8E 48, R1 54, R2 56, W 62), der den Rang eines jeden Quellenzeichens, das im Quellenzeichen-Strom erscheint, mit dem Rang des nächstnieder eingeordneten der Quellenzeichen vertauscht, außer das Quellenzeichen, das im Strom erscheint, hat schon den niederstmöglichen Rang (Fig. 3).- a rank update (CE 64, N4E 46, N8E 48, R1 54, R2 56, W 62), which shows the rank of each source symbol appearing in the source symbol stream swapped with the rank of the next lower ranking of the source symbols, except for the source symbol that appears in the Electricity appears, already has the lowest possible rank (Fig. 3). _ Q —_ Q - 12. Vorrichtung zur Codierung eines Quellenzeichen-Stroms in einen Codewörter-Strom,
dadurch gekennzeichnet,
12. Apparatus for coding a source character stream into a code word stream,
characterized,
- daß jedes Quellenzeichen aus einem Quellen-Alphabet stammt,- that every source symbol comes from a source alphabet, - daß jedes Quellenzeichen des Quell en-Alphabets eine zeitveränderliche Auftrittshäufigkeit im Quellenzeichen-Strom besitzt,- that every source character in the source alphabet is a time-varying one Frequency of occurrence in the source symbol stream, - daß die Quellenzeichen nach ihrer jeweiligen geschätzten Auftrittshäufigkeit geordnet werden,- that the source symbols are sorted according to their estimated frequency of occurrence, - daß jedes Code-Wort entweder zu einer ersten, zweiten oder dritten Gruppe von Code-Wörtern gehört,- that each code word belongs to either a first, second or third group of code words, - daß die Code-Wörter in den Gruppen ein, zwei bzw. drei gleichlange Unterwörter umfassen,- that the code words in the groups contain one, two or three sub-words of equal length, - wobei jedes Unterwort aus einem Unterwort-Alphabet stammt, und- where each sub-word comes from a sub-word alphabet, and - daß vorgesehen sind:
- ein Codierer (14),
- that the following are provided:
- an encoder (14),
- der jedes Quellenzeichen, das keinen Rang über einer wählbaren ersten Zahl besitzt, in ein Code-Wort mit einem Unterwort codiert,- the each source character, which has no rank above a selectable first number, in a code word coded with a sub-word, - der jedes Quellenzeichen, das einen Rang über der ersten Zahl, aber unter einer zweiten Zahl besitzt, in ein Code-Wort mit zwei Unterwörtern codiert, und- of any source mark that has a rank above the first number, but below a second number, encoded in a code word with two sub-words, and - der jedes Quellenzeichen mit einem Rang über der zweiten Zahl in ein Code-Wort mit drei Unterwörtern codiert, wobei die zweite Zahl durch den Wert der ersten Zahl festgelegt ist, - ein Zwei-Unterwörter-Umcodierer,- of each source character with a rank above the second number in a code word with three sub-words encoded, the second number being determined by the value of the first number, - a two-subword recoder, - der jedes Code-Wort mit zwei Ünterwörtern, wo das letzte Unterwort Null ist, durch 16 dividiert und das Ergebnis zu 15 plus dem 15-fachen der ersten Zahl addiert, um so ein revidiertes Code-Wort zu liefern, .und- which divides each code word with two sub-words, where the last sub-word is zero, by 16 and the result is added to 15 plus 15 times the first number to produce a revised code word deliver, .and - 10 -- 10 - - ein Drei-Unterwörter-Umcodierer,- a three-subword recoder, - der jedes Code-Wort mit drei Unterwörtern, wo das letzte Unterwort Null ist, durch 16 dividiert und das Ergebnis zu 3573 plus der zweiten Zahl 5 addiert und - wenn das sich ergebende Code-Wort- which divides each code word with three sub-words, where the last sub-word is zero, by 16 and the result is added to 3573 plus the second number 5 and - if the resulting code word kleiner als 3856 ist - vom sich ergebenden Code-Wort 16 abzieht, um so ein revidiertes Code-Wort zu liefern (Fig. 1 ; 3). 10is less than 3856 - subtracts 16 from the resulting code word to create a revised code word to deliver (Fig. 1; 3). 10
DE19823238130 1981-10-15 1982-10-14 CODING DEVICE Ceased DE3238130A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US31174481A 1981-10-15 1981-10-15
US31187781A 1981-10-15 1981-10-15

Publications (1)

Publication Number Publication Date
DE3238130A1 true DE3238130A1 (en) 1983-06-23

Family

ID=26978045

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19823238130 Ceased DE3238130A1 (en) 1981-10-15 1982-10-14 CODING DEVICE

Country Status (4)

Country Link
AU (4) AU555476B2 (en)
DE (1) DE3238130A1 (en)
FR (1) FR2514969B1 (en)
GB (3) GB2109204B (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5045853A (en) * 1987-06-17 1991-09-03 Intel Corporation Method and apparatus for statistically encoding digital data
US4926482A (en) * 1987-06-26 1990-05-15 Unisys Corp. Apparatus and method for real time data compressor
US4967196A (en) * 1988-03-31 1990-10-30 Intel Corporation Apparatus for decoding variable-length encoded data
US5371499A (en) * 1992-02-28 1994-12-06 Intersecting Concepts, Inc. Data compression using hashing
GB2321375B (en) * 1997-01-21 2002-02-27 Fujitsu Ltd Data encoding method and apparatus and data decoding method and apparatus
GB2367223B (en) * 1997-01-21 2002-05-15 Fujitsu Ltd Data encoding method and apparatus and data decoding method and apparatus

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4168513A (en) * 1977-09-12 1979-09-18 Xerox Corporation Regenerative decoding of binary data using minimum redundancy codes

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU503988B2 (en) * 1975-11-25 1979-09-27 Rudolf Hell Gmbh Digital programme length coding with redundancy reduction forthe transmission of binary coded image information
JPS5755669A (en) * 1980-09-05 1982-04-02 Ibm Dynamic data compressing system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4168513A (en) * 1977-09-12 1979-09-18 Xerox Corporation Regenerative decoding of binary data using minimum redundancy codes

Also Published As

Publication number Publication date
GB2152252A (en) 1985-07-31
AU575722B2 (en) 1988-08-04
GB8502324D0 (en) 1985-02-27
GB2109204A (en) 1983-05-25
AU575723B2 (en) 1988-08-04
AU8932882A (en) 1983-04-21
GB2152253B (en) 1986-05-21
AU5677786A (en) 1986-09-18
AU5677986A (en) 1986-09-18
GB8502325D0 (en) 1985-02-27
GB2152252B (en) 1986-05-21
AU555476B2 (en) 1986-09-25
AU5677886A (en) 1986-09-18
GB2152253A (en) 1985-07-31
FR2514969A1 (en) 1983-04-22
GB2109204B (en) 1986-05-29
FR2514969B1 (en) 1989-02-03

Similar Documents

Publication Publication Date Title
DE69026292T2 (en) Image data encoding method
DE69022705T2 (en) System for coding / decoding digital signals for transmission and / or storage.
EP0260748B1 (en) Bitrate reduction method and circuitry
DE3902313C2 (en) Analog / digital converter
DE2652459C2 (en) Converter for binary signals of variable length
DE2205422A1 (en) Process for processing compressed data
DE2139731A1 (en) Arrangement and procedure for code implementation with an associative memory
EP2068448B1 (en) Method and arrangement for arithmetic encoding and decoding with application of several tables
DE3853899T2 (en) Method and device for coding and decoding a signal.
DE69527883T2 (en) Decoding a Huffman code with MSB and LSB tables
DE2227148A1 (en) METHODS FOR PROCESSING DIGITAL DATA
DE69329092T2 (en) Huffman code decoding circuit
DE68926676T2 (en) METHOD AND DEVICE FOR STATISTICALLY ENCODING DIGITAL DATA
DE2735319A1 (en) CIRCUIT ARRANGEMENT FOR RELATED ENCODING OF CHARACTERS AND FOR CHARACTER DECODING OF SIGNS OF ORIGIN
DE3330845C2 (en)
DE68923012T2 (en) Variable length coding and decoding method, coding and decoding device for carrying out this method.
EP0117525A2 (en) Quantisizer for DPCM encoders
DE68918590T2 (en) DEVICE FOR DECODING DATA VARIABLE LENGTH.
DE2900586C2 (en) Arrangement for decoding code words of variable length
DE3303269C2 (en)
DE3238130A1 (en) CODING DEVICE
DE69428662T2 (en) System with low memory requirements for coding and decoding two-level symbols and associated method
DE2938984C2 (en)
EP0485022A2 (en) Circuit for removing stuff bits
DE69113072T2 (en) Method and device for data compression.

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8131 Rejection