Abstract:
A block of picture elements is DCT transformed and coded to produce a corresponding data block of variable length codewords having an average length. The data blocks are apportioned among fixed length transport blocks as needed to produce full transport blocks. The transport blocks include a direct (DC) component and alternating components at prescribed locations, as well as an address information flag indicating whether or not block data is longer or shorter than the average length, and an address pointer, to facilitate recovery and synchronization of apportioned data blocks at a decoder.

Description:
This is a continuation of PCT application PCT/EP 91/01954 filed Oct. 15, 1991 by Heinz-Werner Keesen et al., titled &#34;Method, Coder and Decoder for Data Transmission and/or Storage&#34;. 
     FIELD OF THE INVENTION 
     The invention concerns coder/decoder method and apparatus for data transmission. 
     BACKGROUND OF THE INVENTION 
     In German Patent DE 37 02 490, a data transmission method is described in which data from picture element (pixel) blocks is converted from a DCT (discrete cosine transformation) into digital signals which are coded with variable word lengths. In doing this, the digital signals are recorded in blocks with an average length. Blocks which are not completely full are filled up with data from other blocks. In order to improve (i.e., reduce) interference susceptibility, direct DC components and significant alternating AC components are recorded at fixed intervals. If faults occur in the transmission channel or in the storage medium, block data which is distributed over other blocks cannot be decoded. 
     SUMMARY OF THE INVENTION 
     The method and apparatus according to the present invention permits data transmission and/or storage such that, in the case of transmission faults for example, the decoding of block data which is distributed over other blocks is possible. 
     In accordance with the principles of the invention, data at the coder is converted into variable length data blocks and are assigned to transport blocks of constant, average word length using memory devices, for example. Selected data components from the digital signal segments, in particular a DC component and significant AC components with their associated addresses, are arranged in each of the transport blocks. Transport blocks containing data blocks with a shorter than average word length are filled with data from data blocks with a longer than average word length. At a decoder, the data blocks are retrieved in their original, differing word lengths using memory devices, for example. Every transport block contains an address information flag and address pointer information. In the presence of faults in transmission and/or reading in the decoding process, the flags and pointers indicate from which addresses the data from data blocks with a longer than average word length can be retrieved and utilized for decoding. 
     By this process, digital signals can contain coded DCT coefficients, and transport blocks with constant, average word length can contain information indicating which type of DCT coefficients are included in the digital signals for the respective block. Blocks with or without AC components from other blocks are marked accordingly using the address information flag. 
     A preferred embodiment of coding apparatus according to the present invention shown in FIG. 4 comprises a coding circuit (1) which converts input data into digital signals with variable word lengths (ln), and a downstream multiplexer (2) which forms transport blocks with constant, average word length (m) together with downstream first storage devices (3, 4). Selected data components from digital signal segments, in particular a direct DC component and significant AC components (ACn) with their associated addresses, are stored in the first memories for each of these blocks. Transport blocks containing data from data blocks with a shorter than average word length are filled with data segments (ACx) partitioned from data blocks with a longer than average word length. A demultiplexer (5) downstream from the storage devices bundles data belonging to a particular data block and transmits it to an output path (6). A circuit for address pointer calculation (13) which receives data from the first storage devices controls the multiplexer, and the demultiplexer and provides an address information flag (FL) and address pointer information (POI) for each block to the first storage devices. 
     Decoding apparatus comprises an address pointer decoder (7) downstream of output path (6) for separating and transmitting address pointer information and address information flags to a circuit for address pointer calculation (14). A multiplexer (8) downstream from the address pointer decoder, together with downstream second storage network (9, 10), retrieves data blocks in their original varying word lengths. A downstream demultiplexer (11) bundles data belonging to a particular data block and transmits the data block to a variable length decoder (12), at whose output data corresponding to the source data is available. The circuit for address pointer calculation (14) controls the multiplexer and the demultiplexer, and provides address pointer information for each block to the second storage network. 
     Transport blocks of picture element data can maintain an average length of &#34;m&#34; bits by means of known methods of adaptive quantization. This average number of m bits is called the average block length. Upon transmission or recording, the blocks are arranged so that the start of each block is positioned at a fixed distance (raster) from the average block length. 
     Every transport block is provided with an address information flag, address pointer information, and a direct voltage component at a predetermined point. Using this supplementary information, improved resynchronization can be achieved in the event of a fault in that alternating components distributed over other transport blocks can be properly decoded. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 depicts data and transport blocks provided by block DCT coding with variable word length. 
     FIG. 2 depicts a transport block according to the invention. 
     FIG. 3 illustrates another form of transport block according to the invention. 
     FIG. 4 is a block diagram of coder and decoder apparatus according to the invention. 
     FIG. 5 illustrates DCT data blocks provided as input data for coding circuit 1 in FIG. 4. 
     FIG. 6 depicts data in dual port RAMF I X 3 in FIG. 4. 
     FIG. 7 depicts data in dual port RAMV A R 4 in FIG. 4. 
     FIG. 8 depicts data in dual port RAMV A R 10 in FIG. 4. 
     FIG. 9 depicts data channel information. 
     FIG. 10 depicts data channel information in the presence of faults. 
     FIG. 11 depicts data in dual port RAMV A R 4 (FIG. 4) in the case of faults. 
     FIG. 12 depicts data in dual port RAMV A R 10 (FIG. 4) in the case of faults. 
     FIG. 13 depicts DCT data blocks as input data to coding circuit 1 of FIG. 4 in the case of faults. 
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     Restricting data transmission or recording capacity to an average information density through temporal data compression/expansion, i.e., through variable word lengths for data segments depending on the data information density, is generally advantageous. However, a problem of re-identifying the variable length data segments after transmission or recording may arise. This re-identification may be especially difficult if interference removes or obscures information needed for re-identification. It may happen that, even after the interference has passed, proper recognition of following data segments is difficult or impossible to achieve. 
     Accordingly, temporal compression and expansion of data segments is combined with a fixed time-slot raster whereby transport blocks whose full capacity is not used by the allocated data segments are filled by other data segments, for more efficient utilization. Thus data completeness is provided, and the time-slot raster enables the data segments to be subsequently re-identified through the allocation to the blocks. Consequently, the influence of interference is reduced. 
     Block data is represented pictorially in FIG. 1. In the upper part of the FIGURE a series of data blocks of different lengths is illustrated. The lower part of FIG. 1 shows that the transport blocks have a predetermined word length, and each contains a DC voltage component (`DC value`) at the beginning of the block, an address for the largest AC component (`address of highest energy AC coefficient`) within the associated block, and the largest AC component itself (`value of highest energy AC coefficient`). Each transport block also contains further significant AC components and their associated addresses. The numbers illustrated specify, respectively, from which data block (in the upper half of FIG. 1) the residual AC components in the transport blocks originate. 
     Several blocks can be combined into a frame and, within this frame, the total word length of the data segments prior to filling up the blocks can be made to coincide with the total word length of the blocks. This coinciding can consist of an enlargement of or a reduction in the original word lengths of the data segments. In doing this, the sum of the word lengths of the data segments is, at the most, equal to the sum of the word lengths of the blocks. Thus the word lengths of available blocks can be used optimally, without loss of important information. For example, every eight transport blocks may form a group. The AC x  data is then inserted between the end of the eighth block and the end of the group. That is, the corresponding AC x  data of all of these eight blocks are arranged together at the end of the group. Within each group, the value &#34;m&#34; can be modified so as to fill the group in an optimum manner. 
     With the inventive approach according to FIG. 2 and FIG. 3, supplementary information is added to each transport block in order to be able to decode the encoded block structure in the case of faults. Apart from the DC component and information about associated AC components ACn, each transport block n also contains an address information flag FL and an address pointer information POI. In addition, an identification flag &#34;I&#34; can specify whether the block was coded with an 8×8 DCT or with a doubled 4×8 DCT. An 8×8 DCT may be advantageously used for coding static image information, and a 2×(4×8) DCT for coding dynamic image information in interlace picture signals. 
     FIG. 2 pertains to a transport block configuration in which the amount of data required exceeds the average data block length. In these transport blocks, address information flag FL is set to `0`. The address pointer information POIi for the current block is calculated from the address pointer information POIi-1 of the preceding block with FL=0 in that the length of the block to be coded (n) is added on and the average block length (m) is subtracted. Following this, index i is incremented by &#34;1&#34;. 
     Transport blocks containing data blocks which are shorter than or equal to average block length m, or which contain AC components ACx from one or more other blocks, have a structure according to FIG. 3. With these transport blocks, address information flag FL is set to `1`. The address pointer information POIj for the current transport block is calculated from the address pointer information POIj-1 of the preceding transport block with FL=1, in that the average data block length m is added on and the length In of the coded data block &#34;n&#34; is subtracted. Following this, index j is incremented by `1`. 
     The average block length &#34;m&#34; depends on the capacity of the channel. For example, in the case of processing picture elements (pixels) in a television signal processing system, if the channel video capacity is 30 Mb/s, the field frequency is 60 Hz and the number of 8×8 pixel blocks is 2700, &#34;m&#34; is equal to 185 bits (30÷60÷2700). In this example FL, POI, DC and `I` all have a fixed bit length. The following bit lengths can be used, for example: 
     
         FL: 1, POI: 9, DC: 9, I: 1. 
    
     FIG. 4 is a block diagram of a coder and decoder system in which data transmission or storage can be realized according to the invention. In a coding circuit 1, for example, DCT-transformed picture data is quantized, Huffman-coded and provided with addresses for AC components. Depending on the resulting data block lengths, a downstream multiplexer 2 apportions the block data between dual port RAMs 3 and 4. Address information flag FL and address pointer information POI are written into a dual port RAMF I X 3 as data information for every block, by means of an address pointer calculation circuit 13. Address pointer information POI can also be regarded as address information for dual port RAMV A R 4. The index FIX designates fixed data, and the index VAR designates the residual AC components. Address information flag FL indicates whether the data block is longer or shorter than the average block length m. For data blocks which are longer than m, POIi specifies up to which address has been written with data at dual port RAMV A R 4. For data blocks which are shorter than m, POIj specifies up to which address data, belonging to other data blocks, is read out from dual port RAMV A R 4. Afterwards, a demultiplexer 5 recombines block data from the dual port RAMs, and the data is provided to output path 6, e.g., a transmission channel or storage medium. 
     Decoder apparatus which receives the data from path 6 performs the inverse of the operation performed by encoder elements 1-5 and 13. Using information decoded by an address pointer decoding circuit 7, a circuit for the address pointer calculation 14 provides the address information required by a dual port RAMV A R 10. Address information flag FL indicates whether the current transport block contains a data block which is longer or shorter than average data block length m. At the decoder, pointer POIi specifies the addresses up to which data is read out from dual port RAMV A R 10 toward a variable length decoder 12, which provides the inverse of the function provided by coding circuit 1 at the encoder. Pointer POIj indicates up to which address data is written into dual port RAMV A R 10. 
     As in the encoder, a dual port RAMF I X 9 is arranged between multiplexer 8 and demultiplexer 11 in the decoder. A corresponding multiplexer 8 is situated between RAMs 9 and 20 and address pointer decoder 7, and a corresponding demultiplexer 11 is situated between RAMs 9 and 10 and variable length decoder 12. 
     Other storage (memory) devices can be used instead of dual port RAMs. 
     FIG. 5 shows 48 DCT data blocks as input data for coding circuit 2. The actual word length is shown numerically, and the average data block word length m is indicated. 
     FIG. 6 shows the resulting data contents of dual port RAMF I X 3 with the respective values of n, FL and POI. 
     FIG. 7 shows the contents of dual port RAMV A R 4 in the coder section. POIj for reading, block number n and POIj for writing, are indicated above the RAM addresses. 
     FIG. 8 shows the contents of dual port RAMV A R 10 in the decoder section. POIj for reading, block number n and POIj for writing, are indicated above the RAM addresses. 
     FIG. 9 shows the resulting information of output path 6 with the values for FL, POIj, POIi and lengths of ACn and ACx components. 
     FIG. 13 shows the 48 DCT data blocks from FIG. 5, but in the presence of a fault. Again, the actual word length is shown numerically, and the average word length m is indicated. Blocks incorrectly transmitted or read are shown hatched (e.g., blocks 9, 13, etc.). 
     FIG. 10 shows the illustration corresponding to FIG. 9 in the presence of a fault. Correspondingly altered values are written alongside the values for the fault-free case which are crossed out. 
     FIG. 11 and FIG. 12 illustrate the values for the fault case corresponding to the relationships in FIG. 7 and FIG. 8, respectively. Fault locations are crossed through. As faults first appear after coding, FIG. 7 and FIG. 11 contain the same values.