WO1987000714A1 - Process for compressing and expanding structurally associated multiple-data sequences, and arrangements for implementing the process - Google Patents

Process for compressing and expanding structurally associated multiple-data sequences, and arrangements for implementing the process Download PDF

Info

Publication number
WO1987000714A1
WO1987000714A1 PCT/DE1986/000289 DE8600289W WO8700714A1 WO 1987000714 A1 WO1987000714 A1 WO 1987000714A1 DE 8600289 W DE8600289 W DE 8600289W WO 8700714 A1 WO8700714 A1 WO 8700714A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
memory
column
code
address
Prior art date
Application number
PCT/DE1986/000289
Other languages
English (en)
French (fr)
Inventor
Reinhard Lidzba
Heinz-Ulrich Wiebach
Original Assignee
Reinhard Lidzba
Wiebach Heinz Ulrich
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 Reinhard Lidzba, Wiebach Heinz Ulrich filed Critical Reinhard Lidzba
Priority to DE8686904098T priority Critical patent/DE3682182D1/de
Publication of WO1987000714A1 publication Critical patent/WO1987000714A1/de

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/41Bandwidth or redundancy reduction
    • H04N1/411Bandwidth or redundancy reduction for the transmission or storage or reproduction of two-tone pictures, e.g. black and white pictures
    • H04N1/413Systems or arrangements allowing the picture to be reproduced without loss or modification of picture-information
    • H04N1/417Systems or arrangements allowing the picture to be reproduced without loss or modification of picture-information using predictive or differential encoding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0207Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
    • 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
    • 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/46Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind

Definitions

  • the invention relates to a method for compressing and decompressing a plurality of structure-related data sequences, in particular data records, in which the data sequences to be compressed are stored in parallel in a memory matrix, taking into account their structure relationships, in order to obtain a number of data elements
  • Characteristics connecting data sequences for a plurality of data sequences a structural analysis of data elements with a matching ordinal number is carried out, a code is used instead of these data elements and when decompressing the data elements obtained by decoding the code in data sequences taking into account the data element ordinal number in each case be ordered.
  • the invention further relates to data processing devices for carrying out the method.
  • Data sequences are often highly redundant, ie they contain a much larger number of data elements or characters than would be required to display the information contained in each case.
  • An example of this is the regularly structured data sets of files from business and administration.
  • Another example of this is the transmission of television pictures in which the pictures taken one after the other and then as data the stored or transmitted partial images with respect to individual areas of a scene are identical because they have not undergone any change with regard to the position, brightness or color of the pixels. This is the case for most pixels without changing the scene.
  • it is necessary to compress them and to decompress them again at the end of the transmission link.
  • a coding scheme of this type has the effect that bit rows of a predetermined length are transcoded into bit rows of variable length, the more frequently occurring code words being represented by bit rows which are shorter than those of the code words of a predetermined length.
  • This conversion of code words of fixed length into code words of variable length is known as Huffman "coding. With meaningful assignment of code words of variable length, given data, the length of such code words is considerably shorter than the corresponding code words of a fixed, predetermined length, although many code words variable length is significantly longer than the corresponding fixed length code words.
  • Methods for compressing and decompressing data sequences are also known, in which a structural analysis is carried out in order to recognize a characteristic connecting these with a predetermined number of data elements of the data sequences.
  • a characteristic can occur, for example, in the repeated occurrence of the same Character or be given with an ascending numeric sequence of numbers of the types 1, 2 ... n.
  • the predetermined number of data elements is then converted into a code.
  • a character string of n identical characters such a code would have to contain at least one separator, the character concerned and the number of times it occurs in order to be able to restore the original character string by decoding the code during decompression.
  • a method for compressing and decompressing data sequences is also known, in which two logically related data sequences are EXCLUSIV-OR linked prior to the actual compression of a conventional type. This logical combination causes zeros to be generated at the positions where the same characters are present. Since the data strings are logically related, as assumed, the EXCLUSIVE-OR operation creates a data string that often contains zeros as data elements. The data sequence heavily interspersed with zeros is then compressed in a conventional manner.
  • the structural relationship, in particular the logical relationship, of at least two data sequences is used for the purpose of compression in order to improve the compression result, but even in this method the compression result is still highly redundant.
  • a high level of circuitry complexity is required for implementation, since high-performance universal computers are required.
  • this object is achieved according to the invention by examining the length of the stored data sequences prior to the structural analysis, forming data sequence groups with data sequences of the same length, and arranging the data sequence groups according to increasing or decreasing length.
  • the special method step carried out according to the invention before the structural analysis makes it possible to take into account only the part of the respective matrix column in the structural analysis and compression of the data elements to be carried out in which information is available as a result of the proposed order of the data sequence groups.
  • This allows the processing time and thus the circuitry to be significantly increased reduce, and at the same time the compression result is further improved because the order of the data sequence groups carried out prior to the structure analysis enables a summarized consideration of adjacent matrix columns of the same or almost the same length according to their length, whereby individual matrix columns characterizing such a group Code characters can be saved when compressing. It has been shown that with such an order of the data sequence groups, other common features of adjacent matrix columns are easier to evaluate and can lead to a shortening of the code words in the compression result.
  • the compression result can be further improved.
  • the effective data sequence length, at least one data sequence characteristic and the memory matrix line number can advantageously be identified by an attribute field which supplements each data sequence. These order criteria can then be easily accessed.
  • the individual data sequences are serially pre-compressed in order to take advantage of the structural relationship of the data elements of the individual data sequences given when viewed in series.
  • the structural reference points for the actual column-wise compression should not be destroyed if possible. This is achieved by replacing the compressed character strings in the data sequence with filler characters that are not taken into account in the actual column-wise compression. In this way, the structure of the individual data sequences is preserved.
  • the last data element of at least one data sequence and possibly the number of such data elements, that is to say their repetition factor, are taken over into the attribute field as a possibility of serial precompression. Furthermore, the last data element and its immediate predecessors that match it are eliminated in the data sequence for shortening.
  • This type of serial pre-compression proves to be particularly advantageous since the last data elements of a data sequence often match. Think, for example, of blanks at the end of the data sequences. If the type of a data sequence is not explicitly specified, it has proven to be advantageous to adopt the last and the penultimate data element of the unabridged data sequence as a data sequence characteristic in the attribute field and to eliminate it in the data sequence. This is based above all on the knowledge that structure-like data sequences often match in their data elements at the end of the data sequence.
  • the compression result can be further improved if, in the course of serial pre-compression of the data sequences, at least the longest character string of a data sequence consisting of the same data elements is eliminated and replaced by filler characters, and if this character string in a descriptor field which is provided separately for each data sequence The pointer marking the beginning of the character string is described by the character string length and by the replaced character.
  • At least one column descriptor field is provided for each data element column, which at least partially describes the data element column. It is thereby possible, for example, according to one development of the invention is that composed of the same characters element ⁇ cleave eliminated, replaced by fill characters and are described in the relevant Deskriptorfeidern by specifying the replaced respectively • character '. By inserting the filler characters instead of the eliminated data column, the structure of the individual data sequences is preserved because the filler characters are ignored during the actual column-wise compression.
  • At least the longest character string of a data element column consisting of the same data elements is eliminated and replaced by filler characters. Furthermore, this character string is described in the respective column descriptor field by a pointer marking the beginning of the character string, by the character string length and by the replaced character. This description of the character string makes it possible to restore it during decompression and to arrange it in the correct place in the data element column.
  • at least the longest character string of a data element column consisting of the same data elements is transcoded into a code word which is shorter in comparison with the character string in question and replaced by this, and the data element spaces which are freed up in this way are filled with filler characters.
  • two adjacent character strings of a data element column are interchanged and a pointer marking the touch parts of the character strings in their original position and the lengths of the character strings are stored in the descriptor field of the data element column concerned.
  • This exchange of two adjacent character chains causes a homogenization of the data of the relevant data element column.
  • Data elements are encoded into a less redundant code specific to this column in question, as a result of which the compression result can be further improved.
  • Condition B ⁇ W, where W is any repeat character, for example the zero character.
  • W is any repeat character, for example the zero character.
  • the application of this logical function to the data elements of a data element column 1 " serves to homogenize these data elements. If the equality of B and A is found when comparing data element B with data element A, data element B is replaced by the repetition symbol W. If, on the other hand, 5 is compared when comparing data element B. with data element A determining the inequality of B and A, data element B remains unchanged. If one applies this logical function to the data elements in succession, for example in the data element column from bottom to top
  • each data element of a data element column is converted into an evaluation or indicator code word
  • the indicator code words of the individual data elements of a data element column are added bit by bit
  • immediately adjacent indicator code words are linked bit by bit EXCLUSIVE OR 5
  • the linking results likewise added and the two addition results evaluated for the classification of the data structure.
  • the individual bit positions of the evaluation or indicator code words are meaningful about the type of the respective data element. For example, 0 means a 1 at the fifth bit position of a rating or indicator code word that the first half character of the data element in question is 0.
  • Individual data elements of a data element column receive information about how many data elements are present in the data element column, the first half-character of which is 0.
  • the bit-wise EXCLUSIVE-OR combination of immediately adjacent indicator code words and the addition of the combination results provide information about the frequency of the character changes between adjacent data elements. Since the two addition results are both a measure of the frequency of the occurrence of the individual data element types and a measure of the frequency of the data element type changes, they are particularly well suited as a basis for the evaluation for classifying the data structure.
  • the compression result can be improved if each data element column is converted half-character-wise into a type of code word defined by the classification result.
  • the classification result is expressed by m bits, that an (m + n) bit address for addressing a code memory containing the code words is combined with an n bit half-character from the m bit classification result is formed and that the addressed code words are successively read out of the code memory.
  • a memory area of the code memory is selected by the m-bit classification result, which forms the higher-order address part, which is intended for the relevant result expressed data structure of the data element column contains favorable code words for the half characters that occur.
  • the two code words last read out of the code memory are checked for equality after each read cycle of the code memory. This makes it possible to combine the same code words that follow one another in a further method step and thus compress them.
  • this is done by counting the number of immediately successive read cycles of the code memory, according to which the two code words last read from the code memory match. The counting result then indicates how often the type of the code word last read from the code memory has occurred in succession.
  • a further development of the method according to the invention is characterized in that the counting result is encrypted in dependence on the type of code words in such a way that the encrypted counting result can be distinguished from the relevant code words.
  • This encryption is used to reliably differentiate the counting result from the code words occurring in the code memory.
  • the half-characters predominantly occurring in a data element column are displayed once and each of the remaining half-characters and a pointer indicating the respective position of these remaining half-characters are shown separately in the compression code.
  • This type of compression is particularly suitable for largely homogeneous data element columns, which are only interspersed with a few interference signs.
  • a data processing device for carrying out the method is constructed in such a way that a memory matrix at its address inputs is provided with a first switching device with which the row and column addresses of the data element memory locations are dependent on a first switching signal are interchangeable.
  • an index memory is also provided, the number of rows of which corresponds to that of the memory matrix and which contains the row addresses of the memory matrix in a sorted order, it is possible to access the data element memory locations of a data element column of the memory matrix in accordance with the sequence of the row addresses contained in the index memory to access them in a sorted manner without the need for a previous, complex re-sorting of the data element rows of the memory matrix.
  • the loading of the row address inputs of the memory matrix the output signals of the index memory are advantageously carried out by a second switching device which is controlled by a second switching signal.
  • an attribute and descriptor memory is provided with a third switching device at its address inputs, with which the row and column addresses of the memory locations can be interchanged depending on a third switching signal.
  • a separate attribute and Deskriptor ⁇ store next to the memory array for the actual data elements has the advantage that the data sequences is carried out at the developments of the method according to the invention, in which a Sortie ⁇ tion, 'these are not in their entirety, but only the contents of the Rows of the attribute and descriptor memory have to be sorted depending on the sort criteria.
  • the index memory is then loaded as a function of the re-sorting carried out in the attribute and descriptor memory, so that the actual memory matrix can be addressed in a sorted manner.
  • a third switching device is provided for interchanging the row and column addresses to the address inputs of the attribute and Deskriptor notess.
  • At least one decoder is advantageously provided which, for example, generates the respective switchover signal from the higher-order address bit or bits by decoding.
  • a commercially available multiplexer is provided as the switching device.
  • the data processing device for carrying out the method can also be constructed in such a way that a read memory which contains the indicator code words is provided and can be addressed by the data elements. In this way, a specific indicator or evaluation code word can be assigned to each data element type in a simple manner.
  • the indicator code words is then double number of individual counters to the data output of the Lesespei- ⁇ Chers connected and half of the Einzel mecanicerEXKLUSIV- OR gates are connected upstream of the inputs of which respectively one bit position of directly adjacent in the read only memory indicator code words, is fed.
  • Such an indicator system makes it possible to determine how often the data elements of a data element column match in a bit position and how many bit changes between adjacent data elements of a data element column can be recorded for each individual bit position.
  • two registers are advantageously provided between the data output of the read memory and the inputs of the EXCLUSIVE-OR elements, which registers for the temporary storage of the indicator code word that was read last or immediately before from the read memory serve. If the contents of the two registers match, this means that the respectively last and the penultimate indicator code word read from the read memory match. At the exits of the EXCLUSIVE-OR elements for the individual bit positions then the value 0 appears. However, if the contents of the two registers do not match in individual bit positions, this means that in these bit positions between the most recent and immediately before that from the read memory a change has taken place in the read indicator code word. The value 1 then appears at the outputs of the EXCLUSIVE-OR elements of these bit positions.
  • the data processing device can also be constructed in such a way that a read-only memory is provided as a code memory which can be addressed by the data structure classification result of the data column to be compressed and by the respective half-character of the relevant data column, the data structure classification - Result forms the higher-order address part and the respective half character forms the lower-order address part.
  • the data structure classification result addresses the memory area of the code memory relevant for the relevant data structure, which contains the code words for the relevant data structure for the half-characters to be compressed.
  • the code memory is followed by a first and a second register, the first register buffering the code word that was last read out and the second register temporarily storing the code word that was read out immediately before.
  • a comparison circuit connected to the outputs of the first and the second register is advantageously provided, in order to be able to determine the correspondence between the two code words last read from the code memory.
  • a counter controlled by the comparison circuit is provided, with which the number of the consecutive corresponding code words read out from the code memory can be counted.
  • a multiplexer circuit containing the encoding code words is advantageously provided.
  • the data processing device is constructed in such a way that an A register and a B register are provided which also serve as the result register so that the outputs of the two registers are bit-by-bit with the inputs of EXCLUSIVE-OR Gates are connected and that the outputs of the EXCLUSIVE OR gates are connected to the inputs of a disjunctive logic element, the output signal of which controls the reset input of the B register.
  • This circuit arrangement is characterized by its simple structure.
  • the invention is described below using an example of a typical data file and using exemplary embodiments of a storage system, an indicator system, a half-character compression device and a circuit arrangement for the logical linking of data elements in a data processing device,
  • 1 is a file consisting of 37 data records
  • FIG. 2 shows a basic diagram of the control of a memory matrix via an index memory
  • FIG. 3 shows a schematic representation of a memory matrix with two data elements arranged in a matrix line
  • FIG. 4 shows the memory matrix of FIG. 3 with two data elements arranged in a matrix column
  • FIG. 6 shows the addressing scheme of the memory system of FIG. 5,
  • Fig. 8 shows a detail of the in Fig. 7 as
  • FIG. 10 shows a circuit arrangement for the logical linking of data elements.
  • a typical file consisting of hexadecimal data elements is shown in FIG.
  • the 37 data records it contains are sorted in length.
  • On the basis of this data file it is to be shown that the individual data elements, when viewing the data records column by column, have greater similarities due to their structural relationship than if they were viewed in rows or records.
  • the data element F0 occurs as the only data element on the one hand four times and on the other hand five times in succession. If the same characters were compressed, only three data elements could therefore be saved with this data line, since only the four and five data element chains can be represented by three characters each during compression.
  • the individual data records of a file are generally not sorted in length according to the length of the file, and because it is useful for the columnar compression of the data elements, the individual data records are arranged in the memory matrix from top to bottom in order to avoid data element gaps with decreasing length , it is necessary either to reorder the individual data lines of the memory matrix containing the data records or, in order to save processing time, to sort the memory matrix in order. As shown schematically in FIG. 2, this is possible by means of row addressing by means of an index memory 20. For this purpose, only the row addresses contained in the index memory 20 of the memory matrix 22 containing the individual data elements must be rearranged so that the row 0 of the index memory 22 contains the address of the row of the memory matrix 22 which comprises the largest number of data elements.
  • Line 1 of the index memory 20 must then contain the address of the line of the memory matrix 22 which contains the second largest number of data elements, etc. Now the index memory 20 successively controlled and read from line 0 to line 9, the individual lines of the memory matrix 22 containing the data records are addressed in a sorted manner depending on the length of the data records via the line addresses of the memory matrix 22 contained in the index memory 20 .
  • FIG. 3 shows a memory matrix consisting of 10 rows and 16 columns, which can be addressed with decimal addresses, and its addressing scheme.
  • the data element X is addressed by the address 509, the higher-order address part, ie the number 5, being the row address and the low-order address part, ie the number sequence 09, being the column address .
  • the number 0 preceding the address 509 only serves as a switch and is not required for the actual addressing of the data element X.
  • the next data element is the data element Y which has the same row address as the data element X and its column address compared to the column address of the Data element X has a value 1 higher.
  • the fact that the data element Y is addressed in the successive memory addressing after the data element X in the same row and not the data element Z in the same column is due to the fact that usually the row address the higher-order address part and the column address the lower-order address part forms, which is initially counted up.
  • This exchange of the row address with the column address can take place by means of a further address point, which is not required for addressing, the so-called switch. If, for example, the changeover switch has the value 0, as shown in FIG. 3, this means that the row address should not be interchanged with the column address, with the result that the memory matrix is addressed row by row during successive memory addressing. If, on the other hand, the changeover switch has the value 1, as shown in FIG. 4 ', this means that the row address is to be exchanged with the column address for addressing the memory matrix, with the result that when the memory matrix is successively addressed, it is addressed column by column .
  • FIG. 5 shows a block diagram of a memory system which is particularly suitable for carrying out the method according to the invention.
  • This memory system essentially contains a matrix memory 24, a memory matrix 26, an index memory 28 connected to a data buffer 30, a program memory 32, a 1 out of 16 decoder 34, a first multiplexer 36, a second multiplexer 38 and a third multiplexer 40 the structure and functioning of this storage system To be able to understand, it is first necessary to specify the memory allocation of this storage system. It will be explained below with reference to FIG. 6 in conjunction with FIG. 5.
  • the address range 00000 to 0FFFF is assigned to the 64kByte program memory 32.
  • the address range ' 10000 to 100FF is used to address the 256 bytes of the index memory 28.
  • the addresses 10100 to 1FFFF are not used in this memory system.
  • the address area 20000 to 3FFFF is used to address the 64 kbyte matrix memory 24, which can be addressed row by row via the address area 20000 to 2FFFF and column-wise via the address area 30000 to 3FFFF.
  • the memory area 40000 to FFFFF is finally the
  • Memory matrix 26 assigned.
  • the 256 kbytes of this memory matrix 26 can be addressed line by line via the addresses 40000 to 7FFFF. They can also be addressed column by column via the address range 80000 to BFFFF. In addition, they are indexed in columns via the address area COOOO to FFFFF, that is, they can be addressed in a sorted manner. Since in this memory system the matrix memory 24 and the memory matrix 26 can be addressed multiple times in different ways, the virtual memory area of the memory system is significantly larger than the physical one
  • Storage area While the latter is shown without hatching in FIG. 6, the only virtual memory area is shown with simple hatching. The cross-hatched area is not used in this storage system.
  • the memory system shown in FIG. 5 thus has, including the switch for the different addressing type an address area of 1 MByte.
  • 20 bits ie 20 address lines A0 to A19, are required for the address selection in order to be able to address a byte as the smallest memory unit with a write or read access.
  • the data lines are so-called bidirectional lines, that is to say the information comes from the storage system during read operations, but is fed to the storage system on these lines during write operations.
  • the WR signal controls the READ and WRITE memory operations. While this signal is logic 0 when the WRITE operation is to be performed, the signals without a slash are logic 1 when they are active.
  • Commercial memory modules can be used to construct this memory system.
  • the program memory 32 is selected when the addresses A16 to A19 are logic 0. This is determined by the 1 out of 16 decoder 34. Its outputs are logic 1 in the inactive state, while they are logic 0 in the active state. Thus, if the address bits A16 to A19, which are present at the input of the decoder 34, are logic 0, the signal logic 0 appears at the output "0" of the decoder 34 and controls the select input 44 of the program memory 32. Since the select input 44 is a negative input, the program memory 32 is selected when this signal is logic 0. As already mentioned above, the same applies to input WRITE 46, ie if the signal WR is logic 0, writing is carried out in this memory area.
  • this signal is logic 1
  • the memory area is read and the information is switched to the data bus. Since the memory matrix 26 (address range 40000 to FFFFF) With the address bits A18 and A19 can be clearly selected, the outputs 4 to 15 are not used in the decoder 34.
  • the index memory 28 is in the address range 10000 to
  • 100FF is selected both in read and write mode and for the indexed addressing of memory matrix 26 in the address area COOOO to FFFFF only in read mode.
  • writing into the index memory 28 is prevented by the logic combination of the signal WR with the address signals A18 and A19 by an AND gate 48, an inverter 50 and a NAND gate 52.
  • the signal of the output "1" of the decoder 34 is fed via an inverter 54 to a NOR gate 56, the
  • Output signal controls the select input 58 of the index memory 28.
  • this index memory 28 is not selected directly by the decoder 34, but rather by the address signals A18 and A19.
  • the index memory 28 must have a very short access time, since the data of this memory are required for the address of the memory matrix 26 within a memory cycle.
  • the data buffer 30 is provided which allows the information flow from the data lines 42 to the index memory 28 only in the address area 10000 to 100FF.
  • This data buffer 30 is controlled by the signal appearing at output 1 of decoder 34 and by signal WR.
  • the memory matrix 26 consists of 256 rows i. 1024 bytes, which results in a memory area of 256 kbytes. A row address of 8 bits in length is required for addressing the 256 rows and a column address of 10 bits in length is required for addressing the 1024 columns. This results in an 18 bit address for this memory matrix 26.
  • the most significant address signal A19 can be used to control the first multiplexer 36. If the address signal A19 is zero, the O inputs of the multiplexer 36 are used. In this case there is no exchange of row and column addresses, so that the memory area is addressed row by row. If the address signal A19 is 1, on the other hand, the 1 inputs of the multiplexer 36 are connected to the address inputs of the memory matrix 26, with the result that row and column addresses are interchanged. The address signals A8 to A17 then become the column address and the signals X0 to X7 the row address. This memory matrix 26 is selected when at least one of the two address signals A18 and A19 is active. You will therefore be through a
  • OR gate 60 whose output signal controls the select input 62 'of the memory matrix 26, is linked in a disjunctive manner.
  • the signals X0 to X7 originate from the second multiplexer 38. This can be used to switch from the address signals AO to A7 to the output signals 10 to 17 of the index memory 28. This switchover is necessary if the memory matrix 26 is to be addressed in columns indicated. Since this is to be done for the memory area COOOO to FFFFF, the switchover must take place if the two most significant address signals A19 and A18 are simultaneously 1, ie if the signal SE at the output of the AND gate 48 is 1.
  • Address inputs A ⁇ to A15 are applied to O inputs in ascending order of the normal address order.
  • the column and row address bits of the matrix memory 24 are interchanged.
  • the address A8 to A15 is the column address
  • the address AO to A7 represents the row address.
  • the matrix memory 24, which serves as an attribute and descriptor memory when carrying out the method described above can be addressed both row by row and column by column.
  • FIG. 7 shows an indicator system for classifying the data structure of a row of data elements. It consists of one Interface control circuit 74, which regulates the bidirectional data traffic, an ONLY read memory 76, which is followed by a register E and a register F, a counter arrangement 78 connected to the outputs of these registers, which comprises (8x2) 8-bit individual counters, one of a further counter 80 with a 4-bit output controlled 1 out of 16 selection circuit 82 and a control unit 84 for controlling these components.
  • Interface control circuit 74 which regulates the bidirectional data traffic
  • an ONLY read memory 76 which is followed by a register E and a register F
  • a counter arrangement 78 connected to the outputs of these registers, which comprises (8x2) 8-bit individual counters, one of a further counter 80 with a 4-bit output controlled 1 out of 16 selection circuit 82 and a control unit 84 for controlling these components.
  • the data elements are supplied to a data element column of the interface control circuit 74, for example.
  • the control unit 84 activated by the signal RD emits a takeover signal R to the interface control circuit 74, as a result of which the takeover of the data elements is effected.
  • These are used for addressing the single-column, consisting of 256 lines, 'the indicator code words included- the read only memory 76.
  • NORM gur ⁇ At the beginning of the first cycle to acquire the first indicator codeword in the registers E and F, all counters are set by the signal NORM gur ⁇ .
  • an indicator code word corresponding to a data element is first transferred to register E with clock T1.
  • clock T3 which follows the clock T1 with a time interval
  • the same indicator code word is transferred to the register F.
  • FIG. 8 which shows a 2x8 bit counter combination of the counter arrangement 78 from FIG. 7 in detail
  • two 8 bit counters are provided for each bit of the registers E and F. For example, counter 86 counts how often bit 0 of register E is logic 1 and counter 88 counts the changes from 0 to 1 or vice versa.
  • the counter 86 In the case of the counter 86, this is achieved in that the counter input is preceded by an AND gate 90, at the inputs of which the signal E0 of the register E and the clock T2, which lie in time between the clock T1 and the clock T3, are present. If the bit E0 of the register E has the value 1, the counter 86 is increased by 1 with the clock T2.
  • Output signal of the exclusive OR gate 94 logically 1. In 'this case is increased upon occurrence of the clock counter 88 to the T2A. 1 Since an indicator code word present at the output of the ONLY read memory 76 is transferred into the register E at the clock T1 and only into the register F when the clock T3 occurs, at the time T2A, the time between T1 and T3 is located, the indicator code word present at the output of the ONLY read memory 76 is only stored in the register E, while the register F word also contains the indicator code word that was read from the ONLY read memory 76 during the immediately preceding cycle. In this way, counter 88 can be used to determine how often adjacent indicator code words of a data sequence differ from one another at bit position 0. It is important in this counter arrangement that the clock T2A in the first
  • the signals SELECTION 0 to SELECTION 16 are generated in succession, the signals SELECTION 0 and SELECTION 1 controlling the two line drivers 92 and 100.
  • the counter reading of the counter 86 is transferred to the data bus via the line driver 92 and via the interface control circuit 74.
  • the counter 80 is incremented by 1 by a signal C generated by the control unit 84.
  • the counter reading of counter 80 increased by 1 is used to select the next individual counter of counter arrangement 78.
  • FIG. 9 shows the block diagram of a half-character compression device for data words of 8 bits in length. It includes an interface circuit 102 through which the data transfer and data control is carried out. It is followed by a MODUS register 104 on the one hand and a multiplexer 106 with subsequent character register 108 on the other hand.
  • the outputs of the character register 108 are connected to the inputs of a recognition circuit 110 for a filler character, for example X'F '. They are also connected to the low-order part of the address inputs of a read-only memory 112, abbreviated to ROM.
  • the higher order address inputs of this ROM 112 are connected to the four low-order outputs of the MODUS register 104.
  • the ROM 112 can be addressed with an 8 bit address and therefore comprises a maximum of 256 lines. 14 bits are stored in ROM 112 for each address. While a maximum of 9 bits are provided for the representation of the character itself, the number of valid left-justified character bits is encoded in a further 4 bits. One bit is provided for the event of an error. It then sets bit M6 of MODE register 104. The remaining outputs of ROM 112, which comprise 13 bits, are connected to a G register 114 and to an H register 116, the G register 114 the data currently present at the output of the ROM 112 and the H register 116 contains the data which were last read out of the ROM 112.
  • the outputs of both registers 114 and 116 are connected to a 13 bit comparator 118.
  • a counter 120 is also provided which is incremented as a function of the comparison result of the comparator 118.
  • the outputs of this counter 120 like the outputs of the H register 116, are connected to the inputs of a 13-bit multiplexer circuit 122. This is followed by a 9-bit shift register 124 and a shift counter 126.
  • the serial output of shift register 124 is connected to the input of a buffer memory 127.
  • a character counter 128 is also provided, which is incremented by 1 when 8 bits are transferred from the shift register 124 into the buffer memory 127.
  • the functional interaction of the above-mentioned components of the half-character compression device is controlled by a microprocessor 130.
  • this half-character compression device will be explained in more detail below. Should one Sequence of 8-bit data words, for example a data element column of a memory matrix is compressed, the classification result generated by the above-described indicator system for the data column in question is first adopted by the interface circuit 102 and written into the MODE register 104.
  • This MODE register 104 comprises 8 bits, of which 6 bits are loaded by the signals DO to D5. The remaining bits are error messages.
  • Bits MO.to M3 are used to store the classification result obtained by the indicator system, by means of which the type of compression is determined.
  • Bit M4 indicates whether a filler character, in this case the half character X'F ', is to be suppressed.
  • Bit M5 is used to switch over the data selection, ie bit M5 determines whether bits DO in the data words to be subsequently transferred to D3 or D4 to D7 are to be used as half characters to be compressed. Bit M6 is used for error display and is taken over by ROM 112. It indicates when data could not be compressed correctly. Bit M7 remains free.
  • the data words of the data element column to be compressed are successively taken over by the interface circuit 102 and fed to the multiplexer 106.
  • the data bits DO to D3 or the data bits D4 to D7 are selected and fed to the character register 108.
  • the data bits taken over from the character register 108 are then checked by the recognition circuit 110 for the filler character, in this case for the half character X'F 1 .
  • the adopted 4 bit half character is suppressed if it is overwritten with the half character X'F 1. agrees.
  • the ROM 112 is addressed by the bits MO to M3 of the MODE register 104 as a higher-value address part and with the adopted half character as a low-value address part from the character register 108.
  • the 4 bits MO to M3 indicate how the respective half character is to be converted.
  • the G register 114 and the H register 116 are loaded by the ROM 112 in such a way that the G register 114 each contains the last read value of the ROM 112 and the H register 116 contains the value read immediately before.
  • the comparators 118 compare the two registers 114 and 116 after each code word transfer.
  • the counter 120 is used to count how often the two registers 114 and 116 match one after the other after the adoption of a new code word.
  • the multiplexer circuit 122 either the content of the H register 116 or the counter state of the counter 120 is output to the shift register 124 and to the shift counter 126.
  • the multiplexer circuit 122 is controlled by the microprocessor 130.
  • registers 114 and 116 do not match several times in succession, the content of the H registers 116 are fed to the shift register 124 and the shift counter 126, respectively.
  • the shift register 124 receives the maximum of 9 bits of the compression code word and the shift counter 126 the code word for the number of valid left-justified code word bits of the shift register 124.
  • the registers 114 and 116 match n times in succession, for example the content of the H register 116 is first output to the shift register 124 or to the shift counter 126 using the multiplexer circuit 122.
  • the counting result of the counter 120 is fed to the multiplexer circuit 122 and, depending on the type of compression determined by the classification result of the indicator system, it is recoded and in this form to the shift register 124 and output to the shift counter 126.
  • the shift counter 126 contains the number of valid left-justified bits of the shift register 124. These are controlled by the shift counter 126 and output to the buffer memory 127. The bits taken over by it are counted. When 8 bits are accepted, the character counter 128 is increased by 1 in each case. After all data elements in the data element column have been compressed, the buffer memory 127 is filled with zeros until the number of bits stored is an integer multiple of 8 bits. The content of the buffer memory 127, which now contains the data elements of the data element column as compression code words, is then fed to the interface circuit 102 and then output.
  • the selection signals of the entire compressor consisting of two half-character compression devices are such stipulated that the two half-character compression devices can work in parallel 4-bitwise, the mode setting and the reading of the results can, however, take place separately.
  • a x B B if A ⁇ B
  • This circuit consists of an A-register 132, a B-register 134, 8 exclusive-OR gates 136, by "the A register 132 and the B-register 134 bit ⁇ be attached to one another, in.
  • a OR gate .138 which disjunctively links the outputs of the 8 EXCLUSIVE-OR gates 136, and from an inverter 140, via which the output signal of the OR gate 138 is fed to an input of an AND gate 142.
  • the second input of the AND gate 142 is acted on by the clock T2.
  • the B register 134 can be reset by the output signal RES B of the AND gate 142.

Description

Verfahren zum Komprimieren und Dekomprimieren mehrerer strukturverwandter Datenfolgen sowie Einrichtungen zur Durchführung des Verfahrens
Die Erfindung betrifft ein Verfahren zum Komprimieren und Dekomprimieren mehrerer strukturverwandter Datenfolgen, insbesondere Datensätze, bei dem die zu komprimierenden Datenfolgen in einer Speichermatrix unter Berücksichtigung ihrer Strukturverwandtschaft parallel gespeichert werden, zur Gewinnung einer eine 'Anzahl von Datenelementen der
Datenfolgen verbindenden Charakteristik für mehrere Daten¬ folgen eine Strukturanalyse von Datenelementen überein¬ stimmender Ordnungszahl vorgenommen wird, anstelle dieser Datenelemente ein Code verwendet wird und beim Dekompri- mieren die durch Decodieren des Codes gewonnenen Daten¬ elemente in Datenfolgen unter Berücksichtigung der jeweils betreffenden Datenelement-Ordnungszahl geordnet werden. Ferner betrifft die Erfindung Datenverarbeitungseinrich¬ tungen zur Durchführung des Verfahrens.
Datenfolgen sind häufig in hohem Maße redundant, d.h. sie enthalten eine wesentlich größere Zahl von Datenelementen oder Zeichen, als sie zur Darstellung der jeweils ent¬ haltenen Information erforderlich wäre. Ein Beispiel hier- für sind die regelmäßig aufgebauten Datensätze von Dateien aus Wirtschaft und Verwaltung. Ein weiteres Beispiel hier¬ für ist die Übertragung von Fernsehbildern, bei denen die nacheinander aufgenommenen und dann als Daten- folgen gespeicherten oder übertragenen Teilbilder bezüg¬ lich einzelner Bereiche einer Szene identisch sind, weil sie dort keine Änderung hinsichtlich der Lage, Helligkeit oder Farbe der Bildpunkte erfahren haben. Das ist ohne Szenenwechsel für die meisten Bildpunkte der Fall. Um die Übertragung von Datenfolgen wirtschaftlich vornehmen zu können, ist es erforderlich, diese zu komprimieren und am Ende der Ubertragungsstrecke wieder zu dekomprimie¬ ren.
Es sind bereits Verfahren bekannt, bei denen die Verdich¬ tung der Datenfolgen über eine Codierung veränderlicher Länge vorgenommen wird. Ein Codierschema dieses Typs be¬ wirkt, daß Bitreihen fest vorgegebener Länge in Bitreihen veränderlicher Länge umcodiert werden, wobei die häufi¬ ger vorkommenden Codeworte von Bitreihen dargestellt wer¬ den, die kürzer sind als die der Codeworte fest vorge¬ gebener Länge. Diese Umwandlung von Codeworten fester Länge in Codeworte veränderlicher Länge ist als Huffman- " Codierung bekannt. Bei sinnvoller Zuordnung von Codewor¬ ten veränderlicher Länge ergibt sich bei gegebenen Daten dann eine wesentlich geringere Länge derartiger Codeworte gegenüber den entsprechenden Codeworten fest vorgegebener Länge, obwohl viele Codeworte veränderlicher Länge wesent- lieh länger als die entsprechenden Codeworte fester Länge sind.
Es sind ferner Verfahren zum Komprimieren und Dekomprimie¬ ren von Datenfolgen bekannt, bei denen eine Strukturana- lyse vorgenommen wird, um bei einer vorgegebenen Zahl von Datenelementen der Datenfolgen eine diese verbindende Charakteristik zu erkennen. Eine solche Charakteristik kann beispielsweise im mehrmaligen Auftreten desselben Zeichens liegen oder auch bei einer aufsteigenden nume¬ rischen Ziffernfolge der Art 1, 2 ... n gegeben sein. Die vorgegebene Zahl von Datenelementen wird dann in einen Code umgesetzt. Bei einer Zeichenkette von n gleichen Zeichen müßte ein solcher Code mindestens ein Trennzeichen, das betreffende Zeichen und die Anzahl seines Auftretens ent¬ halten, um beim Dekomprimieren die ursprüngliche Zeichen¬ kette durch Decodieren des Codes wieder herstellen zu können.
Es ist ferner ein Verfahren zum Komprimieren und Dekompri¬ mieren von Datenfolgen bekannt, bei dem zwei logisch ver¬ wandte Datenfolgen vor dem eigentlichen Komprimieren her¬ kömmlicher Art EXKLUSIV-ODER verknüpft werden. Diese lo- gische Verknüpfung bewirkt, daß an den Stellen, an denen gleiche Zeichen vorhanden sind, Nullen erzeugt werden. Da die Datenfolgen, wie vorausgesetzt, logisch verwandt sind, wird durch die EXKLUSIV-ODER-Verknüpfung eine Datenfolge erzeugt, die als Datenelemente häufig Nullen enthält. Die mit Nullen stark durchsetzte Datenfolge wird dann nach herkömmlicher Art komprimiert.
Bei diesem Verfahren wird die Strukturverwandtschaft, ins¬ besondere die logische Verwandtschaft, zumindest zweier Datenfolgen zum Zwecke des Komprimierens genützt, um das Komprimierungsergebnis zu verbessern, aber auch bei die¬ sem Verfahren ist das Komprimierungsergebnis noch stark redundant. Außerdem benötigt man zur Durchführung einen hohen schaltungstechnischen Aufwand, da Universalrechner hoher Leistung erforderlich sind.
Gleiches gilt für ein Verfahren der eingangs genannten Art, das aus dem Aufsatz "Data Compaction for Improved Transmission Efficiency" von Dirk R. Klose in IEEE National Telecommunications Conference, 26.-28. November 1973, Seiten 35C-1 bis 35C-6, bekannt ist. Bei diesem Verfahren werden mehrere Datenfolgen vorbestimmter Länge, die zusam¬ men einen Datensatz bilden, zeilenweise in einer Matrix angeordnet und durch spaltenweises Umschlüsseln in weniger redundante Codefolgen komprimiert, indem ihre Strukturver¬ wandtschaft in Spaltenrichtung festgestellt und ausgewertet wird. Hierdurch läßt sich zwar das Komprimierungsergebnis verbessern, jedoch bleibt der schaltungstechnische Aufwand insbesondere für die spaltenweise Betrachtung der matrix- artig angeordneten Datenfolgen hoch.
Es ist daher Aufgabe der Erfindung, eine Möglichkeit des Einwirkens auf die Datenfolgen anzugeben, durch die das Komprimieren und Dekomprimieren mehrerer strukturverwandter Datenfolgen, insbesondere Datensätze, auch im Ergebnis gegenüber bisherigen Verfahren so deutlich verbessert wird, daß es durch einen weit geringeren schaltungstechnischen Aufwand realisiert werden kann als es bisher unumgänglich war.
Diese Aufgabe wird ausgehend von einem Verfahren eingangs genannter Art erfindungsgemäß dadurch gelöst, daß vor der Strukturanalyse die gespeicherten Datenfolgen auf ihre Länge untersucht, mit Datenfolgen gleicher Länge Daten- folgengruppen gebildet und die Datenfolgengruppen nach zu¬ nehmender oder abnehmender Länge geordnet werden.
Durch den gemäß der Erfindung vor der Strukturanalyse durchgeführten besonderen Verfahrensschritt wird es möglich, bei der spaltenweise durchzuführenden Struktur¬ analyse und Komprimierung der Datenelemente nur denjenigen Teil der jeweiligen Matrixspalte zu berücksichtigen, in dem infolge der vorgesehenen Ordnung der Datenfolgengruppen Informationen vorhanden sind. Dadurch läßt sich der Aufwand an Verarbeitungszeit und damit Schaltungstechnik wesentlich verringern, und gleichzeitig wird das Komprimierungs- ergebnis weiter verbessert, weil die vor der Struktur¬ analyse durchgeführte Ordnung der Datenfolgengruppen nach ihrer Länge ein zusammenfassendes Betrachten be- nachbarter Matrixspalten gleicher oder auch nahezu gleicher Länge ermöglicht, wodurch einzelne Matrix¬ spalten einer derartigen Gruppe kennzeichnende Code¬ zeichen beim Komprimieren eingespart werden. Es hat sich gezeigt, daß bei einer derartigen Ordnung der Da- tenfolgengruppen auch andere gemeinsame Merkmale ein¬ ander benachbarter Matrixspalten leichter auswertbar sind und zu einer Verkürzung der Codeworte im Kom¬ primierungsergebnis führen können.
Werden geordnete Datenfolgen gleicher effektiver Länge auf übereinstimmende Datenfolgecharakteristik, bei¬ spielsweise Satzart, letztes Zeichen einer Datenfolge oder Anzahl der Datenelemente einer Datenfolge unter¬ sucht, und entsprechend geordnet, so werden Daten- folgen mit gleicher oder auch ähnlicher Charakteristik und damit großer Strukturähnlichkeit näher zusammen¬ gebracht, wodurch das Komprimierungsergebnis weiter verbessert werden kann.
Werden geordnete Datenfolgen gleicher effektiver Länge und gleicher Charakteristik noch nach zunehmender oder abnehmender Speichermatrix-Zeilennummer geordnet, um die Strukturverwandtschaft der nacheinander zeilen¬ weise in die Speichermatrix eingelesenen Datenfolgen möglichst zu erhalten, so kann das Komprimierungser¬ gebnis dadurch weiter verbessert werden. Vorteilhaft können dabei die effektive Datenfolgelänge, mindestens eine Datenfolgecharakteristik und die Spei¬ chermatrix-Zeilennummer durch ein Attributfeld gekenn¬ zeichnet werden, das jede Datenfolge ergänzt. Es kann dann auf diese Ordnungskriterien leicht zugegriffen werden.
In einer weiteren Ausbildung des erfindungsgemäßen Ver¬ fahrens werden die einzelnen Datenfolgen seriell vor- komprimiert, um die bei serieller Betrachtung gegebene Strukturverwandtschaft der Datenelemente der einzelnen Datenfolgen zu nützen. Dabei sollten die strukturellen Bezugspunkte für die eigentliche spaltenweise Kom¬ primierung möglichst nicht zerstört werden. Dies wird dadurch erreicht, daß die verdichteten Zeichenketten in der Datenfolge durch Füllzeichen ersetzt werden, die bei der eigentlichen spaltenweisen Komprimierung nicht beachtet werden. Auf diese Weise bleibt die Struktur der einzelnen Datenfolgen erhalten.
Als eine Möglichkeit der seriellen Vorkomprimierung wird das jeweils letzte Datenelement mindestens einer Datenfolge sowie ggf. die Zahl solcher Datenelemente, also ihr Wiederholungsfaktor, in das Attributfeld übernommen. Ferner werden das letzte Datenelement so¬ wie seine mit ihm übereinstimmenden unmittelbaren Vorgänger in der Datenfolge zur Verkürzung eliminiert. Diese Art der seriellen Vorkomprimierung erweist sich als besonders vorteilhaft, da die letzten Datenelemente einer Datenfolge häufig übereinstimmen. Man denke da¬ bei z.B. an Leerzeichen, sogenannten Blanks, am Ende der Datenfolgen. Wenn die Art einer Datenfolge nicht explizit angegeben ist, so hat es sich als vorteilhaft erwiesen, das letzte und das vorletzte Datenelement der unverkürzten Daten¬ folge als Datenfolgecharakteristik in das Attributfeld zu übernehmen und in der Datenfolge zu eliminieren. Dies beruht vor allem auf der Erkenntnis, daß Strukturähn¬ liche Datenfolgen häufig in ihren Datenelementen am Da¬ tenfolgeende übereinstimmen.
Das Komprimierungsergebnis kann weiter verbessert werden, wenn im Rahmen der seriellen Vorkomprimierung der Daten¬ folgen mindestens die längste aus gleichen Datenelementen bestehende Zeichenkette einer Datenfolge eliminiert und durch Füllzeichen ersetzt wird und wenn diese Zeichen- kette in einem für jede Datenfolge separat vorgesehenen Deskriptorfeld durch einen den Zeichenkettenanfang mar¬ kierenden Zeiger, durch die Zeichenkettenlänge und durch das ersetzte Zeichen beschrieben wird. Mit dieser Maßnahme können lange Zeichenketten übereinstimmender Datenelemente höchst effektiv komprimiert werden, ohne daß dadurch die Struktur der einzelnen Datensätze zerstört wird, da die eliminierten Zeichenketten durch Füllzeichen ersetzt wer¬ den, die bei der eigentlichen spaltenweisen Komprimierung nicht berücksichtigt werden.
Da sich die Flatterung (fließsatzartige Anordnung) von bei¬ spielsweise Leerzeichen oder Nullzeichen auf das Komprimie¬ rungsergebnis bei der spaltenweisen Komprimierung negativ auswirkt, wird im Rahmen der seriellen Vorkomprimierung mindestens die größte Flatterung solcher Störzeichen bei den zu komprimierenden Datenfolgen festgestellt, werden die Stö.rzeichen durch Füllzeichen ersetzt und wird das Stör¬ zeichen selbst durch einen den Störzeichenfeldanfang arkie- renden Flatterungszeiger, durch die Feldlänge und durch das ersetzte Störzeichen beschrieben.
Da sämtliche im Rahmen der seriellen Vorkomprimierung be- schriebenen Maßnahmen ebenso wie die Sortierung der Daten¬ folgen aufgrund verschiedener Kriterien eineindeutige Vorgänge sind, können sie im Rahmen der Dekomprimierung wieder rückgängig gemacht werden.
In einer weiteren Ausbildung des erfindungsgemäßen Verfah¬ rens wird für jede Datenelementspalte jeweils mindestens ein Spalte deskriptorfeld vorgesehen, das die Datenele¬ mentspalte zumindest teilweise beschreibt. Es ist dadurch gemäß einer Weiterbildung der Erfindung beispielsweise möglich, daß aus gleichen Zeichen bestehende Datenelement¬ spalten eliminiert, durch Füllzeichen ersetzt und in den betreffenden Deskriptorfeidern durch Angabe des jeweils ersetzten Zeichens'beschrieben werden. Durch das Einfügen der Füllzeichen anstelle der eliminierten Datenspalte bleibt die Struktur der einzelnen Datenfolgen erhalten, weil die Füllzeichen bei der eigentlichen spaltenweisen Komprimierung übergangen werden.
Gemäß einer anderen Weiterbildung der Erfindung wird zumindest die längste aus gleichen Datenelementen bestehen¬ de Zeichenkette einer Datenelementspalte eliminiert und durch Füllzeichen ersetzt. Ferner wird diese Zeichenkette im jeweiligen Spaltendeskriptorfeld durch einen den Zeichen¬ kettenanfang markierenden Zeiger, durch die Zeichenketten- länge und durch das ersetzte Zeichen beschrieben. Durch diese Beschreibung der Zeichenkette ist es möglich, sie im Rahmen der Dekomprimierung wiederherzustellen und an richtiger Stelle in der Datenelementspalte anzuordnen. Bei einer anderen Weiterbildung des erfindungsgemäßen Ver¬ fahrens wird zumindest die längste aus gleichen Datenele¬ menten bestehende Zeichenkette einer Datenelementspalte in ein- im Vergleich zur betreffenden Zeichenkette kürze- res Codewort umcodiert und durch dieses ersetzt und werden die dabei freiwerdenden Datenelementplätze mit Füllzeichen aufgefüllt.
In einer weiteren vorteilhaften Ausbildung des -erfindungs- gemäßen Verfahrens werden zwei benachbarte Zeichenketten einer Datenelementspalte vertauscht und werden ein die Berührungssteile der Zeichenketten in ihrer ursprünglichen Lage markierender Zeiger und die Längen der Zeichenketten im Deskriptorfeld der betreffenden Datenelementspalte gespeichert. Diese Vertauschung zweier benachbarter Zei¬ chenketten bewirkt eine Homogenisierung der Daten der be- " treffenden Datenelementspalte.
In einer Weiterbildung des erfindungsgemäßen Verfahrens werden die Datenelemente mindestens eines Teils einer
Datenelemen s alte in einen für diese betreffende Spalte spezifischen, weniger redundanten Code umgeschlüsselt, wodurch das Komprimierungsergebnis weiter verbessert wer¬ den kann.
Als weitere Maßnahme zur Verbesserung des Komprimier ngs- ergebnisses dient die Verknüpfung der einzelnen Datenele¬ mente einer Datenelementspalte durch die logische Funktion mit der Wahrheitstabelle "A verknüpft mit B = W", falls A = B und "A verknüpft mit B = B", falls A f B unter der
Bedingung B ≠ W, wobei W ein beliebiges Wiederholungszeichen, z.B. das Nullzeichen, ist. Die Anwendung dieser logischen Funktion auf die Datenelemente einer Datenelementspalte 1". dient der Homogenisierung dieser Datenelemente. Wird bei einem Vergleich des Datenelements B mit dem Datenelement A die Gleichheit von B und A festgestellt, so wird das Da¬ tenelement B durch das Wiederholungszeichen W ersetzt. Wird 5 dagegen bei einem Vergleich des Datenelements B mit dem Datenelement A die Ungleichheit von B und A festgestellt, so bleibt das Datenelement B unverändert. Wenn man diese logische Funktion auf die Datenelemente nacheinander, bei- ' spielsweise in der Datenelementspalte von unten nach oben
10. angewendet hat, so kann wegen der Eineindeutigkeit der logischen Funktion, die für die Bedingung B W gilt, beim Dekomprimieren die Datenelementspalte mit den ursprüng¬ lichen Datenelementen wiederhergestellt werden. Nach An¬ wendung dieser logischen Funktion auf die Datenelemente
15 aller Datenelementspalten können die Verknüpfungsergeb¬ nisse zweier Datenfolgen jeweils erneut seriell vorkompri¬ miert werden.
In einer weiteren Ausgestaltung des erfindungsgemäßen Ver- 20 fahrens wird jedes Datenelement einer Datenelementspalte in ein Bewertungs- oder Indikatorcodewort umgeschlüsselt, werden die Indikatorcodeworte der einzelnen Datenelemente einer Datenelementspalte bitweise addiert, unmittelbar be¬ nachbarte Indikatorcodeworte bitweise EXKLUSIV-ODER ver- 5 knüpft, die Verknüpfungsergebnisse ebenfalls addiert und die beiden Additionsergebnisse zur Klassifikation der Da¬ tenstruktur ausgewertet. Dabei haben die einzelnen Bit¬ positionen der Bewertungs- oder Indikatorcodeworte Aussage¬ kraft über den Typ des jeweiligen Datenelementes. So kann 0 beispielsweise eine 1 an der fünften Bitposition eines Bewertungs- oder Indikatorcodewortes bedeuten, daß das erste Halbzeichen des betreffenden Datenelements 0 ist. Durch die bitweise Addition der Indikatorcodeworte der
5 einzelnen Datenelemente einer Datenelementspalte erhält man die Aussage, wieviele Datenelemente in der Datenele¬ mentspalte vorhanden sind, deren erstes Halbzeichen 0 ist. Durch die bitweise EXKLUSIV-ODER-Verknüpfung unmittelbar benachbarter Indikatorcodeworte und durch die Addition der Verknüpfungsergebnisse erhält man eine Aussage über die Häufigkeit der Zeichenwechsel zwischen benachbarten Daten¬ elementen. Da die beiden Additionsergebnisse sowohl ein Maß für die Häufigkeit des Auftretens der einzelnen Da- tenelementtypen als auch ein Maß für die Häufigkeit der Datenelementtypwechsel sind, sind sie als Grundlage für die Auswertung zur Klassifikation der Datenstruktur be¬ sonders gut geeignet.
Da die Wahrscheinlichkeit eines halbzeichenweisen überein- stimmens oder zumindest einer gemeinsamen Charakteristik der Halbzeichen der Datenelemente einer Datenelementspalte größer ist als bei den vollständigen Datenelementen, kann das Komprimierungsergebnis verbessert werden, wenn jede Datenelementspalte halbzeichenweise in eine durch das Klassifikationsergebnis festgelegte Art von Codeworten umgesetzt wird.
Dies geschieht in einfacher Weise dadurch, daß das Klassi- fikationsergebnis durch m Bits ausgedrückt wird, daß aus dem m Bit-Klassifikationsergebnis zusammen mit einem n Bit-Halbzeichen eine (m+n) Bit-Adresse zur Adressie¬ rung eines die Codeworte enthaltenden Codespeichers gebil¬ det wird und daß die adressierten Codeworte nacheinander aus dem Codespeicher ausgelesen werden. Dabei wird durch das m Bit-Klassifikationsergebnis, das den höherwertigen Adreßteil bildet, ein Speicherbereich des Codespeichers aus¬ gewählt, der für die betreffende, durch das Klassifikations- ergebnis ausgedrückte Datenstruktur der Datenelement¬ spalte günstige Codeworte für die auftretenden Halbzei¬ chen enthält.
In einer Weiterbildung des Verfahrens werden jeweils die beiden zuletzt aus dem Codespeicher ausgelesenen Codeworte nach jedem Lesezyklus des Codespeichers auf Gleichheit überprüft. Es besteht dadurch die Möglichkeit, aufeinan¬ derfolgende gleiche Codeworte in einem weiteren Verfah- rensschritt zusammenzufassen und somit zu komprimieren.
Dies geschieht in einer Weiterbildung der Erfindung dadurch, daß die Anzahl der unmittelbar aufeinanderfolgenden Lese¬ zyklen des CodeSpeichers, nach denen jeweils die beiden zuletzt aus dem Codespeicher ausgelesenen Codeworte über¬ einstimmen, gezählt wird. Das Zählergebnis gibt dann an, wie oft der Typ des zuletzt aus dem Codespeicher ausgelesenen Codewortes hintereinander aufgetreten ist.
Eine Weiterbildung des erfindungsgemäßen Verfahrens zeich¬ net sich dadurch aus, daß das Zählergebnis in Abhängigkeit von der Art der Codeworte derart verschlüsselt wird, daß das verschlüsselte Zählergebnis von den betreffenden Code¬ worten unterscheidbar ist. Diese Verschlüsselung dient zur sicheren Unterscheidung des Zählergebnisses von den im Codespeicher auftretenden Codeworten.
Bei einer Weiterbildung des erfindungsge äßen Verfahrens werden das in einer Datenelementspalte überwiegend auftre- tende Halbzeichen ein einziges Mal und jedes der verbleibenden Halbzeichen sowie ein die jeweilige Stelle dieser verbleibenden Halbzeichen anzeigen¬ der Zeiger separat im Komprimierungscode dargestellt. Diese Art der Komprimierung eignet sich besonders gut für weitgehend homogene Datenelementspalten, die nur mit wenigen Störzeichen durchsetzt sind.
Eine Datenverarbeitungseinrichtung zur Durchfüh¬ rung des Verfahrens, ist in weiterer Ausbildung des Erfin- dungsgedankens derart aufgebaut, daß eine Speichermatrix an ihren Adreßeingängen mit einer ersten Umschalteinrichtung versehen ist, mit der in Abhängigkeit von einem ersten Umschaltsignal die Zeilen- und Spaltenadressen der Daten¬ elementspeicherplätze vertauschbar sind. Durch diese Ver- tauschbarkeit von Zeilen- und. Spaltenadressen wird es erst möglich, daß die Speichermatrix sowohl zeilenweise als auch spaltenweise ausgelesen bzw. neu beschrieben werden kann, ohne daß dazu aufwendige Adreßumrechnungen erforderlich sind, die einer hohen Rechnerleistung bedür- fen. Da bei den Befehlssätzen üblicher Datenverarbei¬ tungsanlagen die Adressierung einer Speichermatrix nur - zeilenweise vorgesehen ist, mußte bisher bei einer spal¬ tenweisen Bearbeitung der Speichermatrix immer zuerst die Adresse des nächstfolgenden Datenelementes in der Datenelementspalte berechnet werden, bevor die gewünsch¬ te Rechenoperation ausgeführt werden konnte.
Wenn ferner ein Indexspeicher vorgesehen ist, dessen Zeilenanzahl mit derjenigen der Speichermatrix übereinstimmt und der die Zeilenadressen der Speichermatrix in sortierter Reihen¬ folge enthält, ist es möglich, auf die Datenelementspei¬ cherplätze einer Datenelementspalte der Speichermatrix entsprechend der Reihenfolge der im Indexspeicher ent- haltenen Zeilenadressen sortiert zuzugreifen, ohne daß dazu eine vorangehende aufwendige Umsortierung der Daten¬ elementzeilen der Speichermatrix erforderlich ist. Die Beaufschlagung der Zeilenadreßeingänge der Speichermatrix mit den Ausgangssignalen des Indexspeichers erfolgt vor¬ teilhaft durch eine zweite Umschalteinrichtung, die von einem zweiten Umschaltsignal gesteuert wird.
In einer weiteren Ausbildung ist ein Attribut- und Deskriptorspeicher mit einer dritten Um¬ schalteinrichtung an dessen Adreßeingängen vorgesehen, mit der in Abhängigkeit von einem dritten Umschaltsignal die Zeilen- und Spaltenadressen der Speicherplätze ver- tauschbar sind. Ein separater Attribut- und Deskriptor¬ speicher neben der Speichermatrix für die eigentlichen Datenelemente hat den Vorteil, daß bei den Weiterbildungen des erfindungsgemäßen Verfahrens, bei denen eine Sortie¬ rung der Datenfolgen vorgenommen wird,'diese nicht in ihrer Gesamtheit, sondern lediglich die Inhalte der Zeilen des Attribut- und Deskriptorspeichers in Abhängigkeit von den Sortierkriterien umsortiert werden müssen. In Abhängigkeit von der im Attribut- und Deskriptorspeicher vorgenommenen Umsortierung wird dann der Indexspeicher geladen, so daß die eigentliche Speichermatrix über diesen sortiert adressiert werden kann. Um die Speicherplätze des Attri¬ but- und Deskriptorspeichers sowohl zeilenweise als auch spaltenweise adressieren zu können, ohne rechenzeitauf- wendige AdreßUmrechnungen vornehmen zu müssen, ist an den Adreßeingängen des Attribut- und Deskriptorspeichers eine dritte Umschalteinrichtung zum Vertauschen der Zeilen- und Spaltenadressen vorgesehen.
Zur Gewinnung des jeweiligen Umschaltsignals aus der Spei- cheradresse ist vorteilhaft mindestens ein Decoder vor¬ gesehen, der beispielsweise aus der oder den höherwertigen Adreßbits durch Decodierung das jeweilige Umschaltsignal erzeugt. Gemäß einer Weiterbildung der Erfindung ist als Umschalt¬ einrichtung jeweils ein handelsüblicher Multiplexer vor¬ gesehen.
Die Datenverarbeitungseinrichtung zur Durchführung des Ver¬ fahrens kann auch derart aufgebaut sein, daß ein die In¬ dikatorcodeworte enthaltender Lesespeicher vorgesehen ist, der durch die Datenelemente adressierbar ist. Auf diese Weise kann jedem Datenelementtyp ein bestimmtes Indikator- oder Bewertungscodewort auf einfache Weise zugeordnet wer¬ den.
In einer Weiterbildung ist dann eine Zähleranordnung mit gegenüber der Bit-Zahl der Indikatorcodeworte doppelter Zahl von Einzelzählern mit dem Datenausgang des Lesespei- chers verbunden und sind der Hälfte der EinzelzählerEXKLUSIV- ODER-Glieder vorgeschaltet, deren Eingängenjeweils eine Bitposition von im Lesespeicher unmittelbar benachbarten Indikatorcodeworten zugeführt wird. Durch ein derartiges Indikatorsystem ist es möglich festzustellen, wie oft die Datenelemente einer Datenelementspalte in einer Bitposition übereinstimmen und wieviele Bitwechsel zwischen benach¬ barten Datenelementen einer Datenelementspalte bei jeder einzelnen Bitposition zu verzeichnen sind. Zur Fest- Stellung der Wechsel bei den einzelnen Bitpostionen sind vorteilhaft zwischen dem Datenausgang des Lesespeichers und den Eingängen der EXKLUSIV-ODER-Glieder zwei Register vorgesehen, welche zur Zwischenspeicherung des jeweils zu¬ letzt bzw. des unmittelbar davor aus dem Lesespeicher aus- gelesenen Indikatorcodewortes dienen. Stimmen die Inhalte der beiden Register überein, so bedeutet dies, daß das je¬ weils letzte und das jeweils vorletzte aus dem Lesespeicher ausgelesene Indikatorcodewort ubereinstinmen. An den Ausgängen der EXKLUSIV-ODER-Glieder für die einzelnen Bitpositionen erscheint dann jeweils der Wert 0. Stimmen die Inhalte der beiden Register jedoch in einzelnen Bitpositionen nicht überein, so bedeutet dies, daß bei diesen Bitposi¬ tionen zwischen dem jeweils zuletzt und dem unmittelbar davor aus dem Lesespeicher ausgelesenen Indikatorcodewort ein Wechsel stattgefunden hat. An den Ausgängen der EXKLUSIV-ODER-Glieder dieser Bitpositionen erscheint dann jeweils der Wert 1.
Die Datenverarbeitungseinrichtung kann auch derart aufge¬ baut sein, daß ein Festwertspeicher als Codespeicher vor¬ gesehen ist, der vom Datenstruktur-Klassifikationser¬ gebnis der zu komprimierenden Datenspalte und vom je- weiligen Halbzeichen der betreffenden Datenspalte adres¬ sierbar ist, wobei das Datenstruktur-Klassifikations- ergebnis den höherwertigen Adreßteil und das jeweilige Halbzeichen den niederwertigen Adreßteil bildet. Auf diese Weise wird durch das Datenstruktur-Klassifikationsergebnis der für die betreffende Datenstruktur relevante Speicher¬ bereich des Codespeichers adressiert, in dem die für die betreffende Datenstruktur günstigen Codeworte für die zu komprimierenden Halbzeichen enthalten sind.
In einer Weiterbildung sind dem Codespeicher ein erstes und ein zweites Register nachgeschaltet, wobei das erste Register das jeweils zuletzt ausgelesene Codewort und das zweite Register das unmittelbar davor ausgelesene Codewort zwischenspeichert. Auf diese Weise kann auf die beiden je- weils zuletzt aus dem Codespeicher ausgelesenen Codeworte jederzeit in einfacher Weise zugegriffen werden. Vorteilhaft ist in einer weiteren Ausbildung der Datenver¬ arbeitungseinrichtung eine mit den Ausgängen des ersten und des zweiten Registers verbundene Vergleichsschaltung vorgesehen, um mit ihr die Übereinstimmung der beiden je- weils zuletzt aus dem Codespeicher ausgelesenen Codeworte feststellen zu können. Ferner ist ein von der Vergleichs¬ schaltung gesteuerter Zähler vorgesehen, mit dem die An¬ zahl der unmittelbar aufeinanderfolgenden aus dem Code¬ speicher ausgelesenen übereinstimmenden Codeworte gezählt werden kann.
Um den auszugebenden Zählerstand des Zählers in Abhängig¬ keit von der Art der Codeworte in einfacher Weise ver¬ schlüsseln zu können, ist vorteilhaft eine die Ver- schlüsselungscodeworte enthaltende Multiplexerschaltung vorgesehen.
Zur vorstehend beschriebenen logischen Verknüpfung von Datenelementen ist die Datenverarbeitungseinrichtung der- art aufgebaut, daß ein A-Register und ein B-Register vor¬ gesehen sind, das auch als Ergebnisregister dient, daß die Ausgänge der beiden Register bitweise mit den Eingängen von EXKLUSIV-ODER-Gliedern verbunden sind und daß die Ausgänge der EXKLUSIV-ODER-Glieder mit den Eingängen eines disjunktiven Verknüpfungsgliedes verbunden sind, dessen Ausgangssignal den Rücksetzeingang des B-Registers steuert. Diese Schaltungsanordnung zeichnet sich durch ihren einfachen Aufbau aus.
Die Erfindung wird im folgenden anhand eines Beispiels einer typischen Datendatei und anhand von Ausführungsbei¬ spielen eines Speichersystems, eines Indikatorsystems, einer Halbzeichenkomprimiereinrichtung und einer Schal¬ tungsanordnung zur logischen Verknüpfung von Datenele¬ menten in einer Datenverarbeitungseinrichtung näher erläutert,
Es zeigen:
Fig. 1 eine aus 37 Datensätzen bestehende Datei,
Fig. 2 ein Prinzipschaubild der Ansteuerung einer Speichermatrix über einen IndexSpeicher,
Fig. 3 eine schematische Darstellung einer Speicher¬ matrix mit zwei in einer Matrixzeile angeord¬ neten Datenelementen,
Fig. 4 die Speichermatrix von Fig. 3 mit zwei in einer Matrixspalte angeordneten Datenelementen,
Fig. 5 den Schaltplan eines Speichersystems,
Fig. 6 das Adressierschema des SpeicherSystems von Fig. 5,
Fig. 7 ein IndikatorSystem zur Klassifikation der Datenstruktur einer Datenelementfolge,
Fig. 8 einen Detailausschnitt der in Fig. 7 als
Blockschaltbild gezeigten Zähleranordnung,
Fig. 9 eine Halbzeichenkomprimiereinrichtung und
Fig. 10 eine Schaltungsanordnung zur logischen Ver¬ knüpfung von Datenelementen. In Fig. 1 ist eine typische, aus hexadezimal darge¬ stellten Datenelementen bestehende Datei gezeigt. Die in ihr enthaltenen 37 Datensätze sind der Länge nach sortiert angeordnet. Anhand dieser Datendatei soll ge¬ zeigt werden, daß die einzelnen Datenelemente bei spal¬ tenweiser Betrachtung der Datensätze aufgrund deren Strukturverwandtschaft größere Gemeinsamkeiten unter¬ einander aufweisen, als wenn man sie datensatz- oder zeilenweise betrachtet.
Es sei ferner erwähnt, daß beispielsweise ein Komprimieren von gleichen Zeichen nur dann sinnvoll ist, wenn diese mindestens viermal hintereinander auftreten, da der Kom¬ primierungscode ein eine komprimierte Zeichenfolge an- zeigendes Trennzeichen, das komprimierte Zeichen und die Anzahl seines Auftretens enthalten muß.
Betrachtet man beispielsweise in Fig. 1 die zweite Da¬ tenzeile, so kann man erkennen, daß das Datenelement F0 als einziges Datenelement einerseits viermal und anderer¬ seits fünfmal hintereinander auftritt. Bei einer Kompri¬ mierung gleicher Zeichen könnten daher bei dieser Daten¬ zeile lediglich drei Datenelemente eingespart werden, da lediglich die Vierer- und die Fünferdatenelementkette beim Komprimieren jeweils durch drei Zeichen dargestellt werden kann. Betrachtet man dagegen beispielsweise die zweite Datenspalte dieser Datendatei, so kann man erkennen, daß das Datenelement 1C zwanzigmal und das Datenelement 1B achtmal hintereinander auftritt. Bei der spaltenweisen datenelementweisen Komprimierung gleicher Zeichen können hier somit zweiundzwanzig (= '20+8-2x3) Datenelemente ein¬ gespart werden. Wenn man sich weitere Datenzeilen bzw. Datenspalten heraussucht und deren Komprimierungsergebnis vergleicht, so zeigt sich,- daß eine spaltenweise daten¬ elementweise Komprimierung gegenüber einer zeilenweisen datenelementweisen Komprimierung in der Regel zu einem deutlich besseren Ergebnis führt. Wenn man die spalten- weise Komprimierung der Datenelemente gar halbzeichen¬ weise vornimmt, so kann das Komprimierungsergebnis wei¬ ter verbessert werden. Betrachtet man wieder die zweite Datenspalte, so zeigt sich, daß das Halbzeichen oder Halb-Byte "1" insgesamt sechsunddreißigmal hintereinander auftritt. Ein mit einer derartigen Häufigkeit hintereinan¬ der auftretendes Halbzeichen kann höchst effektiv kompri¬ miert werden.
Da die Datensätze einer Datei in dieser in der Regel nicht der Länge nach sortiert angeordnet sind und da es für das spaltenweise Komprimieren der Datenelemente zweckmäßig ist, wenn die einzelnen Datensätze zur Ver¬ meidung von Datenelementlücken mit absteigender Länge von oben nach unten in der Speichermatrix angeordnet sind, ist es erforderlich, entweder die einzelnen die Daten¬ sätze enthaltenen Datenzeilen der Speichermatrix umzuord¬ nen oder aber, um Verarbeitungszeit zu sparen, die Spei¬ chermatrix sortiert zu adressieren. Dies ist, wie in Fig. 2 schematisch gezeigt, durch eine Zeilenadressierung mittels eines Indexspeichers 20 möglich. Dazu müssen lediglich die im Indexspeicher 20 enthaltenen Zeilenadressen der die einzelnen Datenelemente .enthaltenden Speichermatrix 22 so umsortiert werden, daß die Zeile 0 des Indexspeichers 22 die Adresse der Zeile der Speichermatrix 22 enthält, die die größte Anzahl von Datenelementen umfaßt. Die Zeile 1 des Indexspeichers 20 muß dann die Adresse der Zeile der Speichermatrix 22 enthalten, die die zweitgrößte Anzahl von Datenelementen enthält usw. Wird nun der IndexSpeicher 20 nacheinander von Zeile 0 bis Zeile 9 sukzessive ange¬ steuert und ausgelesen, so werden über die im Indexspei¬ cher 20 enthaltenen Zeilenadressen der Speichermatrix 22 die einzelnen, die Datensätze enthaltenden Zeilen der Speichermatrix 22 in Abhängigkeit von der 'Länge der Daten¬ sätze sortiert adressiert.
In Fig. 3 ist eine aus 10 Zeilen und 16 Spalten bestehen¬ de, mit dezimalen Adressen adressierbare Speichermatrix sowie ihr Adressierschema gezeigt. Wie aus der Fig. 3 zu entnehmen ist, wird das Datenelement X durch die Adresse 509 adressiert, wobei der höherwertige Adreßteil, also die Ziffer 5, die Zeilenadresse ist und der niederwerti- ge Adreßteil, also die Ziffernfolge 09, die Spalten- adresse ist. Die der Adresse 509 vorangestellte Ziffer 0 dient lediglich als Umschalter und wird zur eigentlichen Adressierung des Datenelements X nicht benötigt. Da bei der üblichen sukzessiven Speicheradressierung die Adresse des nächsten Datenelementes lediglich durch Hochzählen der Speicheradresse um 1 erfolgt, wird als nächstes Daten¬ element das Datenelement Y adressiert, das die selbe Zeilenadresse hat wie das Datenelement X und dessen Spalten¬ adresse im Vergleich zur Spaltenadresse des Datenelements X einen um 1 höheren Wert hat. Die Tatsache, daß bei der sukzessiven Speicheradressierung nach dem Datenelement X das Datenelement Y in der gleichen Zeile und nicht das Da¬ tenelement Z in der gleichen Spalte adressiert wird, ist darauf zurückzuführen, daß üblicherweise die Zeilenadresse den höherwertigen Adreßteil und die Spaltenadresse den niederwertigen Adreßteil bildet, der zunächst hochge¬ zählt wird.
Will man dagegen bei der sukzessiven Speicheradressierung nach dem Datenelement X als nächstes Datenelement Z, also zunächst die Datenelemente einer Spalte adressieren, so ist es erforderlich, daß die Speichermatrix mit einer Adresse adressiert wird, bei der, wie in Fig. 4 gezeigt ist, die Zeilenadresse mit der Spaltenadresse vertauscht ist. Wenn die Spaltenadresse 09 den höherwertigen Adreßteil und die Zeilenadresse 5 den niederwertigen Adreßteil bildet, dann wird beim Hochzählen der Adresse um 1 die Zeilen¬ adresse vom Wert 5 auf den Wert 6 bei gleichbleibender Spaltenadresse hochgezählt, so daß nach dem Datenelement X das Datenelement Z als nächstes Zeichen adressiert wird.
Diese Vertauschung der Zeilenadresse mit der Spaltenadresse kann durch eine weitere, für die Adressierung unmittelbar nicht benötigte Adreßstelle, den sogenannten Umschalter, erfolgen. Hat der Umschalter, wie in Fig. 3 gezeigt, bei- spielsweise den Wert 0, so bedeutet dies, daß die Zeilen¬ adresse mit der Spaltenadresse nicht vertauscht werden soll, mit der Folge, daß beim sukzessiven Speicheradressieren die Speichermatrix zeilenweise adressiert wird. Hat dagegen der Umschalter den Wert 1, wie in Fig. 4 'gezeigt, so bedeutet dies, daß die Zeilenadresse mit der Spaltenadresse zur Adressierung der Speichermatrix vertauscht werden soll, mit der Folge, daß beim sukzessiven Adressieren der Spei¬ chermatrix diese spaltenweise adressiert wird.
In Fig. 5 ist ein Blockschaltbild eines SpeicherSystems dargestellt, das sich vorzüglich zur Durchführung des er¬ findungsgemäßen Verfahrens eignet. Dieses Speichersystem enthält im wesentlichen einen Matrixspeicher 24, eine Speichermatrix 26, einen Indexspeicher 28, verbunden mit einem Datenpuffer 30, einen Programmspeicher 32, einen 1 aus 16 Decoder 34, einen ersten Multiplexer 36, einen zweiten Multiplexer 38 und einen dritten Multiplexer 40. Um den Aufbau und die Funktionsweise dieses Speichersystems verstehen zu können,ist es zunächst erforderlich, die Speicherbelegung dieses SpeicherSystems anzugeben. Sie soll im folgenden anhand von Fig. 6 in Verbindung mit Fig. 5 erläutert werden.
Der Adressenbereich 00000 bis 0FFFF ist dem 64kByte-Pro- grammspeicher 32 zugeordnet. Der Adreßbereich' 10000 bis 100FF dient zur Adressierung der 256 Bytes des Index¬ speichers 28. Die Adressen 10100 bis 1FFFF werden bei diesem Speichersystem nicht benutzt. Der Adreßbereich 20000 bis 3FFFF dient zur Adressierung des 64kBytes um¬ fassenden Matrixspeichers 24, wobei dieser über den Adre߬ bereich 20000 bis 2FFFF zeilenweise und über den Adre߬ bereich 30000 bis 3FFFF spaltenweise adressierbar ist. Der Speicherbereich 40000 bis FFFFF schließlich ist der
Speichermatrix 26 zugeordnet. Die 256kBytes dieser Speicher¬ matrix 26 sind über die Adressen 40000 bis 7FFFF zeilen¬ weise adressierbar. Ferner sind sie über den Adreßbereich 80000 bis BFFFF spaltenweise adressierbar. Über den Adreß- bereich COOOO bis FFFFF sind sie darüber hinaus noch spal¬ tenweise indiziert, also sortiert adressierbar. Da bei diesem Speichersystem der Matrixspeicher 24 und die Spei¬ chermatrix 26 mehrfach, auf verschiedene Weise adressier- bar sind, ist der virtuelle Speicherbereich des Speicher- Systems deutlich größer als der körperlich vorhandene
Speicherbereich. Während letzterer in Fig. 6 unschraffiert dargestellt ist, ist der nur virtuelle Speicherbereich einfach schraffiert gezeigt. Der kreuzweise schraffierte Speicherbereich wird bei diesem Speichersystem nicht be- nutzt.
Das in Fig. 5 gezeigte Speichersystem hat also einschlie߬ lich der Umschalter für die verschiedenen Adressierungs- arten einen Adreßbereich von 1 MByte. Dazu sind 20 Bits, also 20 Adreßleitungen A0 bis A19 für die Adreßauswahl er¬ forderlich, um mit einem Schreib- oder Lesezugriff ein Byte als kleinste Speichereinheit adressieren zu können. Die Datenleitungen sind sogenannte bidirektionale Leitungen, d.h. die Information kommt bei Leseoperationen vom Spei¬ chersystem, bei Schreiboperationen dagegen wird sie dem Speichersystem auf diesen Leitungen zugeführt. Das Signal WR steuert die Speicheroperationen LESEN und SCHREIBEN. Während dieses Signal logisch 0 ist, wenn die Operation SCHREIBEN durchgeführt werden soll, sind die Signale ohne Querstrich logisch 1 , wenn sie aktiv sind. Zum Aufbau dieses Speichersystems können handelsübliche Speicherbau¬ steine verwendet werden.
Im folgenden soll die Funktion dieses Speichersystems näher erläutert werden. Die Auswahl des Programmspeichers 32 erfolgt, wenn die Adressen A16 bis A19 logisch 0 sind. Dies wird durch den 1 aus 16 Decoder 34 festgestellt. Seine Ausgänge sind im inaktiven Zustand logisch 1 , während sie im aktiven Zustand logisch 0 sind. Wenn also die Adreßbits A16 bis A19, die am Eingang des Decoders 34 anliegen, lo¬ gisch 0 sind, so erscheint am Ausgang "0" des Decoders 34 das Signal logisch 0, das den Select-Eingang 44 des Pro- grammspeichers 32 steuert. Da der Select-Eingang 44 ein negativer Eingang ist, wird der Programmspeicher 32 aus¬ gewählt, wenn dieses Signal logisch 0 ist. Wie bereits vorstehend erwähnt, gilt für den Eingang WRITE 46 das gleiche, d.h. wenn das Signal WR logisch 0 ist, wird in diesen Speicherbereich geschrieben. Wenn dieses Signal dagegen logisch 1 ist, wird aus diesem Speicherbereich ge¬ lesen und die Informationen auf den Datenbus geschaltet. Da die Speichermatrix 26 (Adreßbereich 40000 bis FFFFF) mit den Adreßbits A18 und A19 eindeutig ausgewählt wer¬ den kann, werden beim Decoder 34 die Ausgänge 4 bis 15 nicht genutzt.
Der Indexspeicher 28 wird im Adreßbereich 10000 bis
100FF sowohl im Lese- als auch im Schreibbetrieb, sowie für die indizierte Adressierung der Speichermatrix 26 ■ im Adreßbereich COOOO bis FFFFF nur im Lesebetrieb aus¬ gewählt. Bei letzterem Adreßbereich wird ein Einschreiben in den Indexspeicher 28 durch die logische Verknüpfung des Signals WR mit den Adreßsignalen A18 und A19 durch ein UND-Glied 48, einen Invertierer 50 und ein NAND-Glied 52 verhindert. Zur Auswahl des Indexspeichers 28 wird das Signal des Ausgangs "1" des Decoders 34 über einen Invertierer 54 einem NOR-Glied 56 zugeführt, dessen
Ausgangssignal den Select-Eingang 58 des Indexspeichers 28 steuert. Die Auswahl dieses IndexSpeichers 28 erfolgt für den Adreßbereich COOOO bis FFFFF nicht durch den Decoder 34, sondern durch die AdreßSignale A18 und A19 unmittelbar.
Diese beiden Signale werden durch das UND-Glied 48 ver¬ knüpft, dessen Ausgang mit dem Eingang 60 des NOR-Glie¬ des 56 verbunden ist. Der Indexspeicher 28 muß eine sehr kurze Zugriffszeit haben, da die Daten dieses Speichers innerhalb eines Speicherzyklus für die Adresse der Spei¬ chermatrix 26 benötigt werden.
Da der Indexspeicher 28 nur im Adreßbereich 10000 bis 100FF und nicht auch im Adreßbereich COOOO bis FFFFF beschrie- ben werden darf, ist der Datenpuffer 30 vorgesehen, der den Informationsfluß von den Datenleitungen 42 zum Index¬ speicher 28 nur im Adreßbereich 10000 bis 100FF erlaubt. Die Steuerung dieses Datenpuffers 30 erfolgt durch das am Ausgang 1 des Decoders 34 erscheinende Signal sowie durch das Signal WR. Die Speichermatrix 26 besteht aus 256 Zeilen i. 1024 Bytes, was einen Speicherbereich von 256 kByte ergibt. Zur Adressierung der 256 Zeilen ist eine Zeilenadresse von 8 Bit Länge und zur Adressierung der 1024 Spalten eine Spaltenadresse von 10 Bit Länge erforderlich. Das ergibt für diese Speichermatrix 26 eine 18 Bit-Adresse. Da diese Speichermatrix 26 für den Adreßbereich 40000 bis 7FFFF zeilenweise und für den Adreßbereich 80000 bis FFFFF spaltenweise bzw. spaltenweise indiziert adressiert wird, kann das höchstwertige Adreßsignal A19 zur Steue¬ rung des ersten Multiplexers 36 verwendet werden. Wenn das Adreßsignal A19 Null ist, so werden die O-Eingänge des Multiplexers 36 benutzt. In diesem Falle findet keine Vertauschung von Zeilen- und Spaltenadressen statt, so daß der Speicherbereich zeilenweise adressiert wird. Ist das Adreßsignal A19 dagegen 1, so werden die 1-Eingänge des Multiplexers 36 an die Adreßeingänge der Speichermatrix 26 geschaltet, mit der Folge, daß eine Vertauschung von Zeilen- und Spaltenadressen stattfindet. Die AdreßSignale A8 bis A17 werden dann zur Spaltenadresse und die Signale X0 bis X7 zur Zeilenadresse. Die Auswahl dieser Speicher¬ matrix 26 erfolgt, wenn zumindest eines der beiden Adreß- signale A18 und A19 aktiv ist. Sie werden daher durch ein
OR-Glied 60, dessen Ausgangssignal den Select-Eingang 62 'der Speichermatrix 26 steuert, disjunktiv verknüpft.
Die Signale X0 bis X7 stammen vom zweiten Multiplexer 38. Mit diesem kann eine Umschaltung von den Adreßsignalen AO bis A7 auf die Ausgangssignale 10 bis 17 des Indexspei- chers 28 erfolgen. Diese Umschaltung ist erforderlich, wenn die Speichermatrix 26 spaltenweise indiziert adressiert werden soll. Da dies für den Speicherbereich COOOO bis FFFFF erfolgen soll, muß die Umschaltung erfolgen, wenn die beiden höchstwertigen AdreßSignale A19 und A18 gleich¬ zeitig 1 sind, d.h. wenn das Signal SE am Ausgang des UND-Gliedes 48 1 ist.
Da dem MatrixSpeicher 24 der Speicherbereich 20000 bis 3FFFF zugeordnet ist, erfolgt die Auswahl dieses Matrix¬ speichers 24 mit den Signalen S2" und S3" des Decoders 34. Diese Signale werden durch Invertierer 64 bzw. 66 in¬ vertiert und anschließend durch ein NOR-Glied 68 ver- knüpft, dessen Ausgang 70 mit dem Select-Eingang 72 des Matrixspeichers 24 verbunden ist. Dieser umfaßt einen Speicherbereich von 256x256 Byte = 64kByte. Zu seiner Adressierung ist daher nur eine 16 Bit-Adresse, bestehend aus einer 8 Bit-Zeilen- und einer 8 Bit-Spaltenadresse, erforderlich. Diese 16 Bit-Adresse wird dem Matrixspei¬ cher 24 vom dritten Multiplexer 40 zugeführt. Die Steue¬ rung dieses Multiplexers 40 erfolgt durch das Signal s vom Decoder 34. Ist dieses Signal logisch 0, so werden die O-Eingänge des Multiplexers 40 für die Bildung der 16 Bit-Adresse des Matrixspeichers 24 verwendet. Diese •
O-Eingänge sind mit den Adreßbits Aθ bis A15 in aufsteigen¬ der normaler Adreßreihenfolge beaufschlagt. Bei den 1-Ein¬ gängen des Multiplexers 40 sind die Spalten- und Zeilen- adreßbits des Matrixspeichers 24 vertauscht angeordnet. Die Adresse A8 bis A15 ist in diesem Falle die Spalten¬ adresse, während die Adresse AO bis A7 die Zeilenadresse darstellt. Durch diese Adreßumschaltung durch den Multi¬ plexer 40 kann der Matrixspeicher 24, der bei der Durch¬ führung des vorstehend beschriebenen Verfahrens als Attri- but- und DeskriptorSpeicher dient, sowohl zeilenweise als auch spaltenweise adressiert werden.
Fig. 7 zeigt ein Indikatorsystem zur Klassifikation der Da¬ tenstruktur einer Datenelementreihe. Es besteht aus einer Schnittstellenkontrollschaltung 74, die den bidirektio¬ nalen Datenverkehr regelt, einem NUR-Lesespeicher 76, dem ein Register E und ein Register F nachgeschaltet sind, einer mit den Ausgängen dieser Register verbundenen Zähleranordnung 78, welche (8x2) 8 Bit-EinzelZähler umfaßt, einer von einem weiteren Zähler 80 mit 4 Bit-Ausgang ge¬ steuerten 1 aus 16 Auswahlschaltung 82 und einer Steuer¬ einheit 84 zur Steuerung dieser Komponenten.
Nachdem vorstehend der Aufbau dieses Indikatorsystems be¬ schrieben wurde, wird im folgenden seine Funktionsweise anhand von Fig. 7 in Verbindung mit Fig. 8 näher erläu¬ tert. Zunächst werden die Datenelemente z.B. einer Daten¬ elementspalte der Schnittstellenkontrollschaltung 74 zuge- führt. Die durch das Signal RD aktivierte Steuereinheit 84 gibt ein ÜbernahmeSignal R an die Schnittstellenkontroll- schaltung 74 ab, wodurch die Übernahme der Datenelemente bewirkt wird. Diese dienen zur Adressierung des einspaltigen, aus 256 Zeilen bestehenden, 'die Indikatorcodeworte enthalten- den NUR-Lesespeichers 76. Zu Beginn des ersten Zyklus zur Übernahme des ersten Indikatorcodewortes in die Register E bzw. F werden sämtliche Zähler durch das Signal NORM rück¬ gesetzt. Während jeweils eines Zyklus wird ein einem Datenelement entsprechendes Indikatorcodewort zunächst mit dem Takt T1 in das Register E übernommen. Mit dem Takt T3, der mit zeitlichem Abstand auf den Takt T1 folgt, wird dasselbe Indikatorcodewort in das Register F übernommen. Wie aus Fig. 8 zu entnehmen ist, die eine 2x8 Bit-Zähler¬ kombination der Zähleranordnung 78 von Fig. 7 im Detail zeigt, sind für jedes Bit der Register E und F zwei 8 Bit- Zähler vorgesehen. Dabei zählt beispielsweise der Zähler 86 wie oft das Bit 0 des Registers E logisch 1 ist und der Zähler 88 zählt die Wechsel von 0 nach 1 oder umgekehrt. Beim Zähler 86 wird dies dadurch realisiert, daß dem Zählereingang ein UND-Glied 90 vorgeschaltet ist, an dessen Eingängen das Signal E0 des Registers E und der Takt T2, der zeitlich zwischen dem Takt T1 und dem Takt T3 liegt, anliegen. Hat also das Bit E0 des Re¬ gisters E den Wert 1, so wird der Zähler 86 mit dem Takt T2 um 1 erhöht.
Die Wechsel von 0 nach 1 oder umgekehrt werden beispiels- weise bei der Bitposition 0 dadurch festgestellt, daß die Signale E0 und FO der Register E und F einem EXKLUSIV- ODER-Glied 94 zugeführt werden, dessen Ausgang mit dem einen Eingang 96 eines UND-Gliedes 98 verbunden ist. Das AusgangsSignal dieses UND-Gliedes 98 steuert den Zähler 88. Stimmen die Signale E0 und FO nicht überein, so ist das
Ausgangssignal des EXKLUSIV-ODER-Gliedes 94 logisch 1. In ' diesem Falle wird bei Auftreten des Taktes T2A der Zähler 88 um 1 erhöht. Da ein am Ausgang des NUR-Lesespeichers 76 vorliegendes Indikatorcodewort beim Takt T1 in das Regi- ster E und erst beim Auftreten des Taktes T3 in das Regi¬ ster F übernommen wird, ist zum Zeitpunkt T2A, der z-wischen dem Zeitpunkt T1 und T3 liegt, das am Ausgang des NUR-Lese- speichers 76 vorhandene Indikatorcodewort nur im Register E gespeichert, während im Register F noch das Indikatorcode- wort enthalten ist, das beim unmittelbar vorausgehenden Zyklus aus dem NUR-Lesespeicher 76 ausgelesen wurde. Auf diese Weise kann mit dem Zähler 88 festgestellt werden, wie oft benachbarte Indikatorcodeworte einer Datenfolge bei der Bitposition 0 voneinander abweichen. Wichtig ist bei dieser Zähleranordnung, daß der Takt T2A im ersten
Taktzyklus unterdrückt wird, da sonst die Anzahl der Bit¬ wechsel falsch gezählt wird.
Nach der Übernahme sämtlicher Datenelemente einer Datenele- mentreihe durch die Schnittstellenkontrollschaltung 74 werden von der 1 aus 16-AuswahlSchaltung 82 nacheinander die Signale AUSWAHL 0 bis AUSWAHL 16 erzeugt, wobei die Sig¬ nale AUSWAHL 0 und AUSWAHL 1 die beiden Leitungstreiber 92 und 100 steuern. Zuerst wird der Zählerstand des Zäh- lers 86 über den Leitungstreiber 92 und über die Schnitt- stellenkontrollschaltung 74 auf den Datenbus gegeben. Nach jeder Zählerstandausgabe wird der Zähler 80 durch ein von der-Steuereinheit 84 erzeugtes Signal C um 1 hochgezählt. Der um 1 erhöhte Zählerstand des Zählers 80 dient zur Auswahl des nächsten Einzelzählers der Zähler¬ anordnung 78.
Da für jedes Bit der Indikatorcodeworte zwei in Fig. 8 ge¬ zeigte Einzelzähler vorhanden sind, kann für jede Bit- position der Indikatorcodeworte einer Datenfolge fest¬ gestellt werden, wie oft die entsprechende Bitposition 1 ist fczw. wie oft Wechsel von 0 nach 1 oder umgekehrt stattfinden. Insgesamt sind also 8x2 = 16 8 Bit-Einzel¬ zähler vorgesehen. Die Auswertung der Zählergebnisse kann beispielsweise per Software erfolgen.
In Fig. 9 ist das Blockschaltbild einer Halbzeichenkompri- miereinrichtung für Datenworte von 8 Bit Länge gezeigt. Sie umfaßt eine Schnittstellenschaltung 102, durch die der Datentransfer und die Datenkontrolle vorgenommen wird. Ihr sind ein MODUS-Register 104 einerseits und ein Multi¬ plexer 106 mit nachfolgendem Zeichenregister 108 anderer¬ seits nachgeschaltet. Die Ausgänge des Zeichenregisters 108 sind mit den Eingängen einer ErkennungsSchaltung 110 für ein Füllzeichen, beispielsweise X'F', verbunden. Sie sind ferner mit dem niederwertigen Teil der Adreßein¬ gänge eines Festwertspeichers 112, kurz ROM genannt, verbunden. Die höherwertigen Adreßeingänge dieses ROM 112 sind mit den vier niederwertigen Ausgängen des MODUS-Re- gisters 104 verbunden. Insgesamt ist der ROM 112 mit einer 8 Bit-Adresse adressierbar und umfaßt daher maximal 256 Zeilen. Für jede Adresse sind 14 Bits im ROM 112 ge- speichert. Während maximal 9 Bits für die Darstellung des Zeichens selbst vorgesehen sind, ist in weiteren 4 Bits die Anzahl der gültigen linksbündigen Zeichenbits codiert. Ein Bit ist für den Fehlerfall vorgesehen. Es setzt dann das Bit M6 des MODUS-Registers 104. Die übri- gen Ausgänge des ROM 112, die 13 Bits umfassen, sind mit einem G-Register 114 und mit einem H-Register 116 ver¬ bunden, wobei das G-Register 114 die gerade am Ausgang des ROM 112 vorliegenden Daten und das H-Register 116 die Daten enthält, die zuletzt aus dem ROM 112 ausgelesen wurden. Die Ausgänge beider Register 114 und 116 sind mit einem 13 Bit-Vergleicher 118 verbunden. Es ist ferner ein Zähler 120 vorgesehen, der in Abhängigkeit vom Ver¬ gleichsergebnis des Vergleichers 118 hochgezählt wird. Die Ausgänge dieses Zählers 120 sind ebenso wie die Aus- gänge des H-Registers 116 mit den Eingängen einer 13 Bit- Multiplexerschaltung 122 verbunden. Dieser sind ein 9 Bit- Schieberegister 124 sowie ein Schiebezähler 126 nachge¬ schaltet. Der serielle Ausgang des Schieberegisters 124 ist mit dem Eingang eines Pufferspeichers 127 verbunden. Es ist ferner ein Zeichenzähler 128 vorgesehen, der bei der Übernahme von jeweils 8 Bits vom Schieberegister 124 in den Pufferspeicher 127 um 1 hochgezählt wird. Das funktionsgerechte Zusammenwirken der vorstehend genann¬ ten Komponenten der Halbzeichenkomprimiereinrichtung wird durch einen Mikroprozessor 130 gesteuert.
Im folgenden soll die Funktionsweise dieser Halbzeichen- komprimiereinrichtung näher erläutert werden. Soll eine Folge von 8 Bit-Datenworten, beispielsweise eine Daten¬ elementspalte einer Speichermatrix komprimiert werden, so wird zunächst das vom vorstehend beschriebenen Indika¬ torsystem für die betreffende Datenspalte erzeugte Klassi- fikationsergebnis von der Schnittstellenschaltung 102 übernommen und in das MODUS-Register 104 eingeschrieben. Dieses MODUS-Register 104 umfaßt 8 Bits, wovon 6 Bits durch die Signale DO bis D5 geladen werden. Die restlichen Bits sind Fehleranzeigen. Dabei dienen die Bits MO.bis M3 zur Speicherung des vom Indikatorsystem erhaltenen Klassi¬ fikationsergebnisses, durch das die Art des Komprimierens festgelegt wird. Das Bit M4 gibt an, ob ein Füllzeichen, in diesem Falle das Halbzeichen X'F' unterdrückt werden soll, Das Bit M5 dient zur Umschaltung der Datenauswahl, d.h. durch das Bit M5 wird festgelegt, ob bei den anschließend zu übernehmenden Datenworten die Bits DO bis D3 oder D4 bis D7 als zu komprimierende Halbzeichen herangezogen werden sollen. Das Bit M6 dient zur Fehleranzeige und wird vom ROM 112 übernommen. Es zeigt an, wenn Daten nicht korrekt komprimiert werden konnten. Das Bit M7 bleibt frei.
Nach dem Laden des MODUS-Registers werden die Datenworte der zu komprimierenden Datenelementspalte nacheinander von der Schnittstellenschaltung 102 übernommen und dem Multiplexer 106 zugeführt. Von diesem werden in Abhängig¬ keit vom MODUS-Register-Bit M5 entweder die Datenbits DO bis D3 oder die Datenbits D4 bis D7 ausgewählt und dem Zeichenregister 108 zugeführt. Anschließend werden die vom Zeichenregister 108 übernommenen Datenbits durch die Erkennungsschaltung 110 für das Füllzeichen, in diesem Falle für das Halbzeichen X'F1, überprüft. In Abhängigkeit vom MODUS-Register-Bit M4 wird dann das übernommene 4 Bit Halb¬ zeichen unterdrückt, wenn es mit dem Halbzeichen X'F1 über- einstimmt. Anschließend wird der ROM 112 durch die Bits MO bis M3 des MODUS-Registers 104 als höherwertiger Adreßteil und mit dem übernommenen Halbzeichen als nieder- wertiger Adreßteil vom Zeichenregister 108 adressiert. Dabei geben die 4 Bits MO bis M3 an, auf welche Weise das jeweilige Halbzeichen konvertiert werden soll. Da aufgrund der 4 Bit Länge der Halbzeichen nur maximal 16 verschie¬ dene Halbzeichen auftreten können, sind für jede durch die höherwertigen 4 Bits der ROM-Adresse festgelegte Komprimierungsart 16 Zeilen im ROM 112 vorgesehen, in denen die Komprimierungscodeworte der Halbzeichen für die betreffende Komprimierungsart enthalten sind..Neben den maximal 9 Bits für die Darstellung der Halbzeichen sind im ROM 112 in jeder Zeile jeweils weitere 4 Bits vorgesehen, die die Anzahl der gültigen linksbündigen Codewortbits wiedergeben. Das 14. Bit ist, wie bereits vorstehend erwähnt, für den Fehlerfäll vorgesehen und setzt das MODUS-Register- Bit M6. Das G-Register 114 und das H-Register 116 werden vom ROM 112 derart geladen, daß das G-Register 114 je- weils den zuletzt ausgelesenen Wert des ROM 112 und das H-Register 116 den unmittelbar davor ausgelesenen Wert enthält. Durch den Vergleicher 118 werden die beiden Re¬ gister 114 und 116 nach jeder Codewortübernahme mit¬ einander verglichen. Mit dem Zähler 120 wird gezählt, wie oft die beiden Register 114 und 116 nach Übernahme eines neuen Codewortes unmittelbar hintereinander überein¬ stimmen. Mit Hilfe der Multiplexerschaltung 122 wird ent¬ weder der Inhalt des H-Registers 116 oder der Zähler¬ stand des Zählers 120 an das Schieberegister.124 und an den Schiebezähler 126 ausgegeben. Die Steuerung der Multi¬ plexerschaltung 122 wird dabei durch den Mikroprozessor 130 vorgenommen. Stimmen die Register 114 und 116 mehrfach hintereinander nicht überein, so wird der Inhalt des H-Registers 116 jeweils dem Schieberegister 124 und dem Schiebezähler 126 zugeführt. Dabei erhält das Schiebere¬ gister 124 die maximal 9 Bits des Komprimierungscodewor¬ tes und der Schiebezähler 126 das Codewort für die Anzahl der gültigen linksbündigen Codewortbits des Schieberegi¬ sters 124. Stimmen dagegen die Register 114 und 116 bei¬ spielsweise n mal hintereinander überein, so wird zunächst der Inhalt des H-Registers 116 mit Hilfe der MultiplexerSchal¬ tung 122 an das Schieberegister 124 bzw. an den Schiebezähler 126 ausgegeben. Anschließend wird, gesteuert durch den Mikro¬ prozessor 130, das Zählergebnis des Zählers 120 der Mul- tiplexerschaltung 122 zugeführt und durch diese in Abhängig¬ keit von der durch das Klassifikationsergebnis des Indi¬ katorsystems festgelegten Art der Komprimierung umcodiert und in dieser Form an das Schieberegister 124 und an den Schiebezähler 126 ausgegeben. Auch in diesem Falle ent¬ hält der Schiebezähler 126 die Anzahl der gültigen links¬ bündigen Bits des Schieberegisters 124. Diese werden, ge¬ steuert durch den Schiebezähler 126, an den Pufferspei- eher 127 ausgegeben. Die von diesem übernommenen Bits wer¬ den gezählt. Bei der Übernahme von je 8 Bits wird der Zeichenzähler 128 jeweils um 1 erhöht. Nach der Komprimie¬ rung sämtlicher Datenelemente der Datenelementspalte wird der Pufferspeicher 127 solange mit Nullen aufgefüllt, bis die gespeicherte Bitanzahl ein ganzzahliges Vielfaches von 8 Bits ist. Anschließend wird der Inhalt des Puffer¬ speichers 127, der nun die Datenelemente der Datenele¬ mentspalte als Komprimierungscodeworte enthält, der Schnitt¬ stellenschaltung 102 zugeführt und dann ausgegeben.
Die AuswahlSignale des gesamten aus zwei Halbzeichenkom- primiereinrichtungen bestehenden Komprimierers sind derart festgelegt, daß die beiden Halbzeichenkomprimiereinrich- tungen 4-bitweise parallel arbeiten können, die Modus¬ einstellung und das Auslesen der Ergebnisse jedoch ge¬ trennt erfolgen kann.
In Fig. 10 ist eine Schaltungsanordnung zur logischen Ver¬ knüpfung von Datenelementen gemäß folgender Wahrheits¬ tabelle gezeigt:
A x B = 0 falls A = B A x B = B falls A ≠ B
unter der Bedingung B ≠ 0, mit 0 als Wiederholungszeichen.
Diese Schaltungsanordnung besteht aus einem A-Register 132, aus einem B-Register 134, aus 8 EXKLUSIV-ODER-Gliedern 136, durch" die das A-Register 132 und das B-Register 134 bit¬ weise miteinander verknüpft werden, aus.einem ODER-Glied .138, das die Ausgänge der 8 EXKLUSIV-ODER-Glieder 136 disjunk- tiv verknüpft, und aus einem Invertierer 140, über den das Ausgangssignal des ODER-Gliedes 138 einem Eingang eines UND-Gliedes 142 zugeführt wird. Der zweite Eingang des UND-Gliedes 142 wird mit dem Takt T2 beaufschlagt. Durch das AusgangsSignal RES B des UND-Gliedes 142 kann das B- Register 134 rückgesetzt werden.
Sollen zwei 8 Bit Datenelemente A und B gemäß obiger Funktion logisch verknüpft werden, so werden sie mit dem Takt T1 in das A-REgister 132 bzw. in das B-Register 134 geladen. Durch die bitweise EXKLUSIV-ODER-Verknüpfung der Inhalte der beiden Register 132 und 134 erhält man an den Ausgän¬ gen derjenigen EXKLUSIV-ODER-Glieder 136 ein Signal logisch 0, deren Eingänge übereinstimmen. Stimmen die Inhalte der beiden Register 132 und 134 in allen Bitpositionen überein, so erscheint an sämtlichen Ausgängen der EXKLUSIV-ODER- Glieder 136 das Signal logisch 0, so daß am Ausgang des ODER-Gliedes 135 ebenfalls das Signal logisch 0 und am Ausgang des Invertierers 140 folglich das Signal logisch 1 anliegt. Die UND-Verknüpfung des logisch 1 Signales am Ausgang des Invertierers 140 mit dem Taktsignal T2 durch das UND-Glied 142 bewirkt, daß an dessen Ausgang bei einem Takt T2 = logisch 1 das Signal RES B = logisch 1 auftritt, das das B-Register 134 rücksetzt, so daß dieses an allen Bitpositionεn Nullen enthält.
Ist dagegen das AusgangsSignal wenigstens eines der 8 EXKLUSIV-ODER-Glieder 136 logisch 1, was dann der Fall ist, wenn die Inhalte der beiden Register 132 und 134 zumindest an einer Bitposition nicht übereinstimmen, so erscheint am Ausgang des ODER-Gliedes 138 das Signal lo¬ gisch 1 , welches nach Invertierung durch den Invertierer 140 dem UND-Glied 142 zugeführt wird. In diesem Falle bleibt der Signalpegel logisch 0 am Ausgang des UND-Glie¬ des 142 bei Auftreten des Taktsignals T2 = logisch 1 erhalten, mit der Folge, daß das B-Register 134 nicht rückgesetzt wird und seinen Inhalt beibehält.

Claims

Patentansprüche
1. Verfahren zum Komprimieren und Dekomprimieren mehrerer strukturverwandter Datenfolgen, insbesondere Datensätze, bei dem die zu komprimierenden Datenfolgen in einer Spei¬ chermatrix unter Berücksichtigung ihrer Strukturverwandt¬ schaft parallel gespeichert werden, zur Gewinnung einer eine Anzahl von Datenelementen der Da.tenfolgen verbinden- den Charakteristik für mehrere Datenfolgen eine Struk¬ turanalyse von Datenelementen übereinstimmender Ordnungs¬ zahl vorgenommen wird, anstelle dieser Datenelemente ein Code verwendet wird und beim Dekomprimieren die durch De¬ codieren, des Codes gewonnenen Datenelemente in Datenfol- gen unter Berücksichtigung der jeweils betreffenden Daten¬ element-Ordnungszahl geordnet werden, dadurch g e ¬ k e n n z e i c h n e t , daß vor der Strukturanalyse die gespeicherten Datenfolgen auf ihre Länge untersucht, mit Datenfolgen gleicher Länge Datenfolgengruppen gebil- det und die Datenfolgengruppen nach zunehmender oder abnehmender Länge geordnet werden.
2. Verfahren nach Anspruch 1, dadurch g e k e n n ¬ z e i c h n e t , daß geordnete Datenfolgen gleicher effektiver Länge auf übereinstimmende Datenfolge-- Charakteristik untersucht und entsprechend geordnet wer¬ den.
3. Verfahren nach Anspruch 2, dadurch g e k e n n ¬ z e i c h n e t , daß bei geordneten Datenfolgen glei- eher effektiver Länge und gleicher Charakteristik die Speichermatrix-Zeilennummer festgestellt wird und daß diese Datenfolgen nach zunehmender oder abnehmender Speichermatrix-Zeilennummer geordnet werden.
4. Verfahren nach einem der vorhergehenden Ansprüche, da¬ durch g e k e n n z e i c h n e t , daß jede Daten¬ folge durch ein mindestens die effektive Datenfolgelänge, mindestens eine Datenfolgecharakteristik und die Spei- chermatrix-Zeilennummer enthaltendes Attributfeld er¬ gänzt wird.
5. Verfahren nach einem der vorhergehenden Ansprüche, da¬ durch g e k e n n z e i c h n e t , daß die einzel- nen Datenfolgen seriell vorkomprimiert werden.
6. Verfahren nach Anspruch 4 und 5, dadurch g e k e n n ¬ z e i c h n e t , daß das jeweils letzte Datenelement mindestens einer Datenfolge sowie ggf. die Zahl solcher Datenelemente (Wiederholungsfaktor) in das Attributfeld übernommen wird und daß dieses letzte Datenelement sowie seine mit ihm übereinstimmenden unmittelbaren Vorgänger zur Verkürzung in der Datenfolge eliminiert werden.
7. Verfahren nach Anspruch 6, dadurch g e k e n n ¬ z e i c h n e t , daß das letzte und das vorletzte Datenelement der unverkürzten Datenfolge als Datenfolge¬ charakteristik in das Attributfeld übernommen und in der Datenfolge eliminiert werden.
8. Verfahren nach einem der Ansprüche 5 bis 7, dadurch g e k e n n z e i c h n e t , daß mindestens die läng¬ ste aus gleichen Datenelementen bestehende Zeichenkette einer Datenfolge eliminiert und durch Füllzeichen er- setzt wird und daß diese Zeichenkette in einem für jede Datenfolge separat vorgesehenen Deskriptorfeld durch einen den Zeichenkettenanfang markierenden Zeiger, durch die Zeichenkettenlänge und durch das ersetzte Zeichen beschrieben wird.
9. Verfahren nach einem der Ansprüche 5 bis 8, dadurch g e k e n n z e i c h n e t , daß zumindest die größte Flatterung von Störzeichen, beispielsweise von Leerzei¬ chen, Nullzeichen und dgl. bei den zu komprimierenden Datenfolgen festgestellt wird, daß die Storzeichen durch Füllzeichen ersetzt werden und daß das Störzeichenfeld durch einen den Stδrzeichenfeldanfang markierenden Flatterungszeiger, durch die Feldlänge und durch das ersetzte Störzeichen beschrieben wird.
10. Verfahren nach einem der vorhergehenden Ansprüche, da¬ durch g e k e n n z e i c h n e t , daß für jede Datenelementspalte jeweils mindestens ein Spaltendeskrip¬ torfeld vorgesehen wird, das die Datenelementspalte zu- mindest teilweise beschreibt.
11. Verfahren nach Anspruch 10, dadurch g e k e n n ¬ z e i c h n e t , daß aus gleichen Zeichen bestehende Datenelementspalten eliminiert, durch Füllzeichen er- setzt und in denbetreffenden Deskriptorfeldern durch
Angabe des jeweils ersetzten Zeichens beschrieben wer¬ den.
12. Verfahren nach Anspruch 11, dadurch g e k e n n - z e i c h n e t , daß zumindest die längste aus glei¬ chen Datenelementen bestehende Zeichenkette einer Daten¬ elementspalte eliminiert und durch Füllzeichen ersetzt wird und daß diese Zeichenkette im jeweiligen Spalten¬ deskriptor durch einen den Zeichenkettenanfang markie- renden Zeiger, durch die Zeichenkettenlänge und durch das ersetzte Zeichen beschrieben wird.
13. Verfahren nach Anspruch 11, dadurch g e k e n n ¬ z e i c h n e t , daß zumindest die längste aus glei¬ chen Datenelementen bestehende Zeichenkette einer Daten¬ elementspalte in ein im Vergleich zur betreffenden Zei- chenkette kürzeres Codewort umcodiert und durch dieses ersetzt wird und daß die dabei freiwerdenden Datenele¬ mentplätze mit Füllzeichen aufgefüllt werden.
14. Verfahren nach Anspruch 10, 12 oder 13, dadurch g e - k e n n z e i c h n e t , daß zwei benachbarte Zeichen¬ ketten einer Datenelementspalte vertauscht werden und daß ein die Berührungsstelle der Zeichenketten in ihrer ursprünglichen Lage markierender Zeiger und die Längen der Zeichenketten im Deskriptorfeld der betreffenden Datenelementspalte gespeichert werden.
15. Verfahren nach Anspruch 10, 12, 13 oder 14, dadurch g e k e n n z e i c h n e t , daß die Datenelemente mindestens eines Teiles einer Datenelementspalte in ei- nen für diese spezifischen, weniger redundanten Code umgeschlüsselt werden.
16. Verfahren nach Anspruch 10, 12, 13, 14 oder 15, dadurch g e k e n n z e i c h n e t , daß die Datenelemente einer Datenelementspalte durch die logische Funktion mit der -Wahrheitstabelle
A x B = W, falls A = B und A x B = B, falls A ≠ B
unter der Bedingung B ≠ W, wobei W ein beliebiges Wie¬ derholungszeichen ist, verknüpft werden.
17. Verfahren nach einem der vorhergehenden Ansprüche, da¬ durch g e k e n n z e i c h n e t , daß jedes Daten¬ element einer Datenelementspalte in ein Bewertungs- oder Indikatorcodewort umgeschlüsselt wird, daß die Iπdika- torcodeworte der einzelnen Datenelemente einer Datenele¬ mentspalte bitweise addiert werden, daß unmittelbar benachbarte Indikatorcodeworte bitweise EXKLUSIV-ODER- verknüpft werden, daß die Verknüpfungsergebnisse addiert werden und daß die beiden Additionsergebnisse zur Klassi- fikation der Datenstruktur ausgewertet werden.
18. Verfahren nach Anspruch 17, dadurch g e k e n n ¬ z e i c h n e t , daß jede Datenelementspalte halbzei¬ chenweise in eine durch das Klassifikationsergebnis festgelegte Art von Codeworten umgesetzt wird.
19. Verfahren nach Arispruch 18, dadurch g e k e n n ¬ z e i c h n e t , daß das Klassifikationsergebnis durch m Bits ausgedrückt wird, daß aus dem m Bit- Klassifikationsergebnis zusammenmit einem n Bit-Halbzei¬ chen eine (m+n) Bit-Adresse zur Adressierung eines die Codeworte enthaltenden Codespeichers (112) gebildet wird und daß die adressierten Codeworte nacheinander aus dem Codespeicher (112) ausgelesen werden.
20. Verfahren nach Anspruch 19, dadurch g e k e n n ¬ z e i c h n e t , daß jeweils die beiden zuletzt aus dem Codespeicher (112) ausgelesenen Codeworte nach je¬ dem Lesezyklus des Codespeichers (112) auf Gleichheit überprüft werden.
21. Verfahren nach Anspruch 20, dadurch g e k e n n ¬ z e i c h n e t , daß die Anzahl der unmittelbar auf¬ einanderfolgenden Lesezyklen des Codespeichers (112), nach denen jeweils die beiden zuletzt aus dem Codespei- eher (112) ausgelesenen Codeworte übereinstimmen, ge¬ zählt wird.
22. Verfahren nach Anspruch 21, dadurch g e k e n n ¬ z e i c h n e t , daß das Zählergebnis in Abhängigkeit von der Art der Codeworte derart verschlüsselt wird, daß das verschlüsselte Zählergebnis von den betreffenden Codeworten unterscheidbar ist..
23. Verfahren nach einem der Ansprüche 18 bis 22, dadurch g e k e n n z e i c h n e t , daß das in einer Daten¬ elementspalte überwiegend auftretende Halbzeichen ein einziges Mal und-jedes der verbleibenden Halbzeichen sowie ein die jeweilige Stelle dieser verbleibenden Halb¬ zeichen anzeigender Zeiger separat im Komprimierungscode dargestellt werden.
24. Datenverarbeitungseinrichtung zur Durchführung des Ver¬ fahrens nach einem der vorhergehenden Ansprüche, dadurch g e k e n n z e i c h n e t , daß eine Speichermatrix (26) an ihren Adreßeingängen mit einer ersten Umschalt¬ einrichtung (36) versehen ist, mit der in Abhängigkeit von einem ersten Umschaltsignal die Zeilen- und Spalten¬ adressen der Datenelementspeicherplätze vertauschbar sind.
25. DatenverarbeitungseinrichtungnachAnspruch 24, dadurch g e k e n n z e i c h n e t , daß ein Indexspeicher (28) vorgesehen ist, dessen Zeilenanzahl mit derjenigen der Speichermatrix (26) übereinstimmt und der die Zei- lenadressen der Speichermatrix (26) in sortierter Reihen¬ folge enthält.
26. Datenverarbeitungseinrichtung nach Anspruch 25, dadurch g e k e n n z e i c h n e t , daß eine zweite Umschalt- einrichtung (38) vorgesehen ist, mit der die Zeilen- adreßeingänge der Speichermatrix (26) in Abhängigkeit von einem zweiten Umschaltsignal mit den Ausgängen des Indexspeichers (28) beaufschlagbar sind.
27. Datenverarbeitungseinrichtung nach einem der Ansprüche 24 bis 26, dadurch g e k e n n z e i c h n e t , daß ein Attribut- und Deskriptorspeicher (24) an seinen Adreßeingängen mit einer dritten Umschalteinrichtung (40) verbunden ist, mit der in Abhängigkeit von einem dritten Umschaltsignal die Zeilen- und Spaltenadressen der Speicherplätze vertauschbar sind.
28. Datenverarbeitungseinrichtung nach einem der Ansprüche 24 bis 27, dadurch g e k e n n z e i c h n e t , daß mindestens ein Decoder (34) zur Gewinnung des jewei¬ ligen Umschaltsignals aus der Speicheradresse vorgesehen ist.
29. Datenverarbeitungseinrichtung nach einem der Ansprüche 24 bis 28, dadurch g e k e n n z e i c h n e t , daß die jeweilige Umschalteinrichtung (36, 38, 40) ein Multiplexer ist.
30. Datenverarbeitungseinrichtung zur Durchführung des Ver¬ fahrens nach einem der Ansprüche 17 bis 23, dadurch g e k e n n z e i c h n e t , daß ein die Indikator¬ codeworte enthaltender Lesespeicher (76) vorgesehen ist, der durch die Datenelemente adressierbar ist.
31. Datenverarbeitungseinrichtung nach Anspruch 30, dadurch g e k e n n z e i c h n e t , daß eine Zähleranordnung (78) mit gegenüber der Bit-Zahl der Indikatorcodeworte doppelten Zahl von Einzelzählern (86, 88) mit dem Daten¬ ausgang des Lesespeichers- (76) verbunden ist und ddß der Hälfte der Einzelzähler (86, 88) EXKLUSIV-ODER-Glieder (94) vorgeschaltet sind, deren Eingängen jeweils eine Bitposition von im Lesespeicher (76) unmittelbar benach- ' harten Indikatorcodeworten zugeführt ist.
32. Datenverarbeitungseinriehtung nach Anspruch 31, dadurch g e k e n n z e i c h n e t , daß zwischen dem Daten¬ ausgang des Lesespeichers (76) und den Eingängen der EXKLUSIV-ODER-Glieder (94) zwei Register (E, F) vorge¬ sehen sind, welche zur Zwischenspeicherung des jeweils zuletzt bzw. des unmittelbar davor aus dem Lesespeicher (76) ausgelesenen Indikatorcodewortes dienen.
33. Datenverarbeitungseinriehtung zur Durchführung des Ver- fahrens nach einem der Ansprüche 18 bis 23, dadurch g e k e n n z e i c h n e t , daß ein Festwertspeicher (112) als Codespeicher vorgesehen ist, der vom Daten¬ struktur-Klassifikationsergebnis der zu komprimierenden Datenspalte und vom jeweiligen Halbzeichen der betreffen- den Datenspalte adressierbar ist, wobei das Datenstruktur- klassifikationsergebnis den höherwertigen Adreßteil und das jeweilige Halbzeichen den niederwertigen Adreßteil bildet.
34. Datenverarbeitungseinriehtung nach Anspruch 33, dadurch g e k e n n z e i c h n e t , daß dem Codespeicher (112) ein erstes und ein zweites Register (114, 116) zur Zwischenspeicherung des jeweils zuletzt und des unmittel- bar davor ausgelesenen Codewortes nachgeschaltet sind.
35. Datenverarbeitungseinriehtung nach Anspruch 34, dadurch g e k e n n z e i c h n e t , daß eine Vergleichs¬ schaltung (118) mit den Ausgängen des ersten (114) und des zweiten Registers (116) verbunden ist, die einen Zähler (120) steuert.
36. Datenverarbeitungseinriehtung nach Anspruch 35, dadurch g e k e n n z e i c h n e t , daß zum von der Art der Codeworte abhängigen Verschlüsseln des auszugebenden Zählerstandes des Zählers (120) eine die Verschlüsse¬ lungscodeworte enthaltende -Multiplexerschaltung (122) vorgesehen ist.
37. Datenverarbeitungseinriehtung zur Durchführung des Ver¬ fahrens nach einem der Ansprüche 16 bis 23, dadurch g e k e n n z e i c h n e t , daß ein A-Register (132) und ein B-Register (134) vorgesehen sind, das auch als Ergebnisregister dient, daß die Ausgänge der beiden Register (132, 134) bitweise mit den Eingängen von
EXKLUSIV-ODER-Gliedern (136) verbunden sind und daß die Ausgänge der EXKLUSIV-ODER-Glieder (136) mit den Ein¬ gängen eines disjunktiven Verknüpfungsgliedes (138) verbunden sind, dessen Ausgangssignal den Rücksetzein- gang des B-Registers (134) steuert.
PCT/DE1986/000289 1985-07-19 1986-07-16 Process for compressing and expanding structurally associated multiple-data sequences, and arrangements for implementing the process WO1987000714A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE8686904098T DE3682182D1 (de) 1985-07-19 1986-07-16 Verfahren zum komprimieren und dekomprimieren mehrerer strukturverwandter datenfolgen sowie einrichtungen zur durchfuehrung des verfahrens.

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE19853525898 DE3525898A1 (de) 1985-07-19 1985-07-19 Verfahren zum komprimieren und dekomprimieren mehrerer strukturverwandter datenfolgen sowie einrichtungen zur durchfuehrung des verfahrens
DEP3525898.5 1985-07-19

Publications (1)

Publication Number Publication Date
WO1987000714A1 true WO1987000714A1 (en) 1987-01-29

Family

ID=6276250

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/DE1986/000289 WO1987000714A1 (en) 1985-07-19 1986-07-16 Process for compressing and expanding structurally associated multiple-data sequences, and arrangements for implementing the process

Country Status (4)

Country Link
US (1) US4903018A (de)
EP (1) EP0230437B1 (de)
DE (2) DE3525898A1 (de)
WO (1) WO1987000714A1 (de)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0576749B1 (de) * 1992-06-30 1999-06-02 Discovision Associates Datenpipelinesystem
GB9405914D0 (en) * 1994-03-24 1994-05-11 Discovision Ass Video decompression
JP2527458B2 (ja) * 1988-03-04 1996-08-21 富士通株式会社 デ―タ転送制御装置
WO1991004527A1 (en) * 1989-09-14 1991-04-04 Megaword International Pty. Ltd. A search method and circuit
SE467856B (sv) * 1991-01-31 1992-09-21 Ericsson Telefon Ab L M Transcoder foer ett mobilradiosystem
US5455943A (en) * 1992-10-08 1995-10-03 Salient Software, Inc. Method and apparatus for finding longest and closest matching string in history buffer prior to current string
US5426779A (en) * 1991-09-13 1995-06-20 Salient Software, Inc. Method and apparatus for locating longest prior target string matching current string in buffer
US6067417A (en) * 1992-06-30 2000-05-23 Discovision Associates Picture start token
US6079009A (en) * 1992-06-30 2000-06-20 Discovision Associates Coding standard token in a system compromising a plurality of pipeline stages
US5809270A (en) * 1992-06-30 1998-09-15 Discovision Associates Inverse quantizer
US6047112A (en) * 1992-06-30 2000-04-04 Discovision Associates Technique for initiating processing of a data stream of encoded video information
US6417859B1 (en) 1992-06-30 2002-07-09 Discovision Associates Method and apparatus for displaying video data
US6112017A (en) * 1992-06-30 2000-08-29 Discovision Associates Pipeline processing machine having a plurality of reconfigurable processing stages interconnected by a two-wire interface bus
US6034674A (en) * 1992-06-30 2000-03-07 Discovision Associates Buffer manager
US5603012A (en) * 1992-06-30 1997-02-11 Discovision Associates Start code detector
US6435737B1 (en) * 1992-06-30 2002-08-20 Discovision Associates Data pipeline system and data encoding method
US7095783B1 (en) 1992-06-30 2006-08-22 Discovision Associates Multistandard video decoder and decompression system for processing encoded bit streams including start codes and methods relating thereto
US5768561A (en) * 1992-06-30 1998-06-16 Discovision Associates Tokens-based adaptive video processing arrangement
US6330665B1 (en) 1992-06-30 2001-12-11 Discovision Associates Video parser
US6009200A (en) * 1992-12-17 1999-12-28 Sony Corporation Dynamic image processing apparatus and method
US5805914A (en) * 1993-06-24 1998-09-08 Discovision Associates Data pipeline system and data encoding method
US5828836A (en) * 1993-10-08 1998-10-27 International Business Machines Corporation Networked information communication system
CA2145365C (en) * 1994-03-24 1999-04-27 Anthony M. Jones Method for accessing banks of dram
CA2145379C (en) * 1994-03-24 1999-06-08 William P. Robbins Method and apparatus for addressing memory
CA2145361C (en) * 1994-03-24 1999-09-07 Martin William Sotheran Buffer manager
US6217234B1 (en) * 1994-07-29 2001-04-17 Discovision Associates Apparatus and method for processing data with an arithmetic unit
GB9417138D0 (en) 1994-08-23 1994-10-12 Discovision Ass Data rate conversion
EP1423975A1 (de) * 2001-07-11 2004-06-02 Daniel Kilbank System und verfahren zum komprimieren von daten
US7365661B2 (en) * 2002-11-14 2008-04-29 Fyre Storm, Inc. Power converter circuitry and method
US7202872B2 (en) * 2003-10-29 2007-04-10 Via Technologies, Inc. Apparatus for compressing data in a bit stream or bit pattern

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3394354A (en) * 1965-11-30 1968-07-23 Ibm Multiple word random access memory
US3504112A (en) * 1966-01-20 1970-03-31 Ibm Two-dimensional image data encoding and decoding
US3521241A (en) * 1967-01-03 1970-07-21 Ibm Two-dimensional data compression
FR2298834A1 (fr) * 1975-01-27 1976-08-20 Ibm Procede et dispositif pour minimiser l'espac

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4319225A (en) * 1974-05-17 1982-03-09 The United States Of America As Represented By The Secretary Of The Army Methods and apparatus for compacting digital data
US4077034A (en) * 1974-11-04 1978-02-28 Dell Harold R Data compression

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3394354A (en) * 1965-11-30 1968-07-23 Ibm Multiple word random access memory
US3504112A (en) * 1966-01-20 1970-03-31 Ibm Two-dimensional image data encoding and decoding
US3521241A (en) * 1967-01-03 1970-07-21 Ibm Two-dimensional data compression
FR2298834A1 (fr) * 1975-01-27 1976-08-20 Ibm Procede et dispositif pour minimiser l'espac

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
IBM Technical Disclosure Bulletin, Volume 14, No. 7, December 1971, New York (US) E.T. EISELEN; "Raster Memory Scannable by row or by column" pages 1984-1985, see figures; pages 1984-1985 *
IEEE National Telecommunications Conference, 26-28 November 1973, IEEE, New York (US) D.R. KLOSE: "Data Compaction for Improved Transmission Efficiency", pages 35C-1-35C-6, see figure 1; page 35C-1, right column, line 1 - page 35C-2, right column, line 35 *
IEEE Transactions on Aerospace and Electronic Systems, Volume AES-2, No. 4, July 1966, IEEE, New York (US) J.W. SCHWARTZ et al.: "Bit-Plante Encoding a Technique for Source Encoding" pages 385-392, see figure 1; tables I,II,III; page 385, right column, line 35 - page 389, right column, line 21 *

Also Published As

Publication number Publication date
EP0230437B1 (de) 1991-10-23
DE3525898C2 (de) 1988-11-24
DE3682182D1 (de) 1991-11-28
DE3525898A1 (de) 1987-01-29
EP0230437A1 (de) 1987-08-05
US4903018A (en) 1990-02-20

Similar Documents

Publication Publication Date Title
EP0230437B1 (de) Verfahren zum komprimieren und dekomprimieren mehrerer strukturverwandter datenfolgen sowie einrichtungen zur durchführung des verfahrens
DE3606869C2 (de) Vorrichtung zur Datenkompression
DE4314741C2 (de) Dekodierer für Einheiten von Huffman-kodierten Daten
DE2723523A1 (de) Kompression und dekompression von gespeicherten digitaldaten
DE2264090A1 (de) Datenverdichtungssystem
DE2208664A1 (de) Verfahren zur Decodierung eines vorsatzfreien Verdichtungscodes veränderlicher Länge
DE2400064A1 (de) Speicherpruefanordnung und diese verwendendes endgeraetsystem in einem datenverarbeitungssystem
DE19625157A1 (de) Datenkompressions- und -expansionsverfahren
DE2703559A1 (de) Rechnersystem
DE2900586C2 (de) Anordnung zum Decodieren von Codewörtern variabler Länge
DE3742142A1 (de) Verfahren und vorrichtung zur kompression und rekonstruktion von datenfolgen
DE2440390C3 (de)
WO2000038049A1 (de) Verfahren und anordnung zur erzeugung und ausführung von komprimierten programmen eines vliw-prozessors
DE10012127B4 (de) Dekodiervorrichtung und Dekodierverfahren zum Entschachteln von Daten
EP0427884B1 (de) Verfahren und Anordnung zum Komprimieren und Dekomprimieren von Daten
DE2233164B2 (de) Schaltungsanordnung zur uebertragung von aufeinanderfolgenden bitstellen zwischen zwei registern
DE3105503A1 (de) Assoziativer zugriffsspeicher
EP1186175B1 (de) Verfahren und vorrichtung zur komprimierung und dekomprimierung von daten
DE3432837A1 (de) Datenkompressions- und datenexpandiereinrichtung zum uebertragen bzw. speichern von daten
DE3633227A1 (de) Anordnung zur umwandlung einer virtuellen adresse in eine physikalische adresse fuer einen in seiten organisierten arbeitsspeicher einer datenverarbeitungsanlage
DE2042596A1 (de) Schaltungsanordnung zur Umsetzung eines einzigen kodierten Eingangszeichens in eine Mehrzahl kodierter Ausgangszei chen
DE4432436C2 (de) Datenkompressionsverfahren und Vorrichtung zum Komprimieren von Daten
DE2144113C3 (de) Verfahren zur Codeumsetzung und Assozjathr-Speichereinrlchtung zur Durchführung dieses Verfahrens
DE2136536B2 (de) Verfahren und Anordnung zur Korn pnmierung und Dekompnmierung binarer Daten
EP0783815B1 (de) Bildverarbeitungsvorrichtung zur sequentiellen kodierung und dekodierung von bildinformationen

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): JP US

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH DE FR GB IT LU NL SE

WWE Wipo information: entry into national phase

Ref document number: 1986904098

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 1986904098

Country of ref document: EP

WWG Wipo information: grant in national office

Ref document number: 1986904098

Country of ref document: EP