Device for processing digital data, and digital video system comprising the device

Abstract: A device for processing digital data comprises a memory, error detection means and control means which selects addresses for the writing of the data in the memory on the basis of errors detected in the data, and which selects further addresses for the reading of data from the memory. Thus, only reliable data is read so that a high picture quality is achieved in a digital video system, despite the presence of errors in the data.

Description: The invention relates to device for processing a first sequence of write data frames, each frame having a uniform configuration of a plurality of digital data items, and data items in corresponding places in said configuration among successive frames constituting a part of a second sequence of data items, so that each second sequence has one digital data item in each frame, and there are as many second sequences as there are data items in a frame, said device comprising: a) receiving means (1.1, 1.3) for receiving said first sequence of frames; b) memory means (1.12) capable of storing two of said frames at respective locations, each location having one sub-address for one item of each second sequence; c) error detection means for detecting errors in said stored data, and for thereupon controlling error remedial means. A device and a digital video system of the kind set forth are known from European Patent Application 0 398 651 A2, which describes a device in which digital data is written into a memory, after which an error correction and detection circuit corrects errors, if possible, and supplies a detection signal on the basis of which the data stored in the memory is read, or not, for supply to a frame memory. The write operation in the frame memory is interrupted when the number of errors detected per frame exceeds a given threshold value. The same data is then read again from the frame memory. Drawbacks of such a device reside in the fact that the data is to be transferred from one memory to the other memory, requiring numerous addressing operations, and that the memories comprise a multitude of connection pins which impedes integration of the device on an IC. In another embodiment of the device described in said Application, the data is applied to the frame memory via a series-parallel converter, the write operation in the frame memory again being interrupted when an excessive number of errors has been detected. The circuit used therein is very complex. A further reference D2 Matsushita (EP 401,855) regards storage in a memory and has an error detector that may detect that a particular memory row has not been renewed and in consequence may contain old data; the error in this case is caused by an erroneous identifier of the data in question. In similar manner, col.8, 1.30 ff. D1 recite that a wrong row may have been overwritten. Also here, the cause of the error is the identifier of the data, not the content of the data. After the write operation has been performed, the reading is always in the normal addressing sequence, thus causing the appearance of incorrect data at the output. It is inter alia an object of the present invention to provide a device for the processing of digital data which does not have the drawbacks of the first reference and moreover has a more compact construction. In relation to the art D2 , the invention has as its object to cope with erroneous or low reliability data, rather than with erroneous addresses. To achieve this, the device according to the invention is characterized in that said error detection means (1.18) are arranged for identifying high-error items, whose errors exceed a given threshold, and low error items whose errors are at or below the given threshold; d) in that said device comprises read control means (1.19) connected to the error detecting means for reading the memory means and for outputting a read frame, that contains one item for each said second sequence of items, said read control means being operative in response to the most recently stored low error item in its respective second sequence of items, to be included in said read frame; e) in that said device comprises write control means (1.19) connected to the error detecting means and for writing the write frame into the memory means whilst being operative in response to the most recently stored low-error items in their respective second sequences of data items, and writing the data item into the alternative sub-address pertaining to the same second sequence of items. In contradistinction to reference D2 , the present invention amends the addressing sequence, so that always high reliability data will appear at the user output. A single memory thus suffices. The device delivers only data deemed to be reliable by the detection means (for example, data containing a number of errors below a given threshold value or data corrected by means of an error correction code). An embodiment of the device in accordance with the invention is characterized in that the control means writes the incoming data at those addresses of the memory where the last reliable data read is not stored. As a result, the memory will contain an adequate amount of reliable data at any instant. A further embodiment of the device in accordance with the invention is characterized in that the digital data contains a video signal with an error-correction code, the memory comprising a first and a second sub-memory, each of which is suitable to store an amount of data equal to one frame of the video signal, the control means distributing the incoming data line-wise per frame among the sub-memories by writing the data at those addresses at which the data representing the last frame read is not stored. Thus, the memory will always store a frame of lines consisting of reliable data. It is to be noted that the selection of the addresses in the two sub-memories, of course, can also be performed on the basis of several lines simultaneously. A further embodiment of the device in accordance with the invention is characterized in that the control means extracts the outgoing data line-wise per frame from one of the sub-memories by reading the data at those addresses at which the last reliable data written is stored. The device thus supplies frames of the video signal which are composed of lines containing reliable data. A suitable picture quality is thus ensured, even when the incoming video signal contains errors. A further embodiment of the device in accordance with the invention is characterized in that the memory comprises two parallel-connected standard 1-Mbit SRAMs. This is a simple and inexpensive implementation. Fig. 1 shows a digital video system in accordance with the invention; Fig. 2 shows a device in accordance with the invention; Fig. 3 illustrates the operation of the device in accordance with the invention. Fig. 1 shows a digital video system which is suitable for use of a device in accordance with the invention. A system of this kind comprises a video input 1.1 for the supply of digital video data to a video processor 1.5 in the recording mode. The video data may originate, for example from a digital picture pick-up unit such as a CCD camera generating 25 pictures (50 fields) per second, each containing approximately 420,000 pixels. In the video processor 1.5 each time two fields presented are combined so as to form one frame which is stored in a memory 1.7, for example a 5-Mbit DRAM. The video data per pixel contains 8 bits of luminance information (thus suitable to represent 256 grey values) and chrominance information in a coarser raster, for example one chrominance value for each block of 2 x 2 pixels, determined by 2 8-bit values. In the video processor 1.5 there are also formed blocks of 8 x 8 bytes (1 byte = 8 bits), so-called DCT blocks, which are to be distinguished as luminance DCT blocks and chrominance DCT blocks. Four luminance DCT blocks (each associated with 8 x 8 pixels) and their two associated chrominance DCT blocks together form a so-called DCT unit. Each time five DCT units, determined by shuffle in the video processor 1.5, form a so-called segment. The shuffle has an averaging effect, which is advantageous for the data reduction to be subsequently performed. Each DCT block is transformed in a known Discrete Cosine Transformation (and inverse DCT) circuit 1.9. Subsequently, per segment ( i.e. per 30 DCT blocks) data reduction is performed in a known variable-length encoder-decoder circuit 1.10. Therein, for example the 30*64*8 = 15,360 bits of each segment are reduced to 3072 bits, using known techniques such as quantization and variable-length encoding. Quantization can be performed, if desired in parallel in various ways, each time the most suitable way being chosen. Such a system may also comprise an audio input 1.3 for the supply of digital audio data to an audio processor 1.6 in the recording mode. The audio data may originate, for example from one or more microphones which supply the audio processor 1.6 with digital data via an analog-to-digital converter 1.16, which audio processor is connected to a memory 1.8, for example a 256-Kbit SRAM. Generally speaking, the audio data is far less numerous than the video data, so that data reduction is not required for the audio data. The audio data of the processor 1.6 (in which blocks are also formed) and the reduced video data of the circuit 1.10 is applied to a device 1.11 (see Fig. 2) which comprises a memory 1.12, an error-correction encoder-decoder circuit 1.18 (referred to hereinafter as erco circuit for the sake of brevity), and control means 1.19. In the recording mode, the data is provided with a known error-correction code, for example a Reed-Solomon product code, in the erco circuit 1.18. Such a code is described in United States Patent Specification 4,802,173. In the stream of digital data data words are formed, each data word being encoded in conformity with the error-correction code so as to be stored as code words on a storage medium (in the recording mode). Should the code words, after acquisition from the storage medium (in the reproduction mode) no longer fully correspond to the original code words due to disturbances or damage of any kind, the error-correction code enables error correction during decoding. A number of bytes (or other data symbols) to be protected by the error-correction code is arranged in a rectangular array, after which so-called parity symbols are assigned to each horizontal row and each vertical column ( i.e. to each horizontal and each vertical data word) in conformity with the rules of the relevant code. The data words with added parity symbols are referred to as code words. The parity symbols represent redundant information and enable correction of errors in the array of bytes which occur during transport of the data or due to damaging of the storage medium. The generation and operation of these codes is described, for example in Richard E. Blahut: "Theory and practice of error control codes", 1983, Addison-Wesley Publ. Comp. Inc., and also in N. Glover & T. Dudley: "Practical error correction design for engineers", 1982, Data Systems Technology Corp., Broomfield Colorado. The number of luminance DCT blocks per frame amounts to 720/8*576/8 = 6480. There are 3240 chrominance DCT blocks per frame. Thus, there are 1620 DCT units or 324 segments per frame. For a field frequency of 50 Hz, a frame is subdivided into 12 so-called tracks (in the case of a frequency of 60 Hz, a frame is subdivided into 10 tracks). In addition to the data symbols and the parity symbols, such a track also contains inter alia identification and synchronization information. The data symbols and the parity symbols of a track will be referred to hereinafter as an RS video block. Thus, per RS video block there are 27 segments. Each segment of 3072 bits (= 384 bytes) in an RS video block constitutes 3 lines of 128 bytes, including 1 byte of auxiliary data AUX per line, for example data concerning the elapsed time or the frame number. An RS video block thus comprises 81 lines of 128 bytes which form 81 horizontal and 128 vertical data words. For each RS block, in the erco circuit 1.18 the parity symbols associated with the constituent data symbols are determined according to a Reed-Solomon product code so as to be added. For example, first an outer code can be applied to the vertical data words and subsequently an inner code can be applied to the horizontal data words. The standard notation for such a Reed-Solomon code is RS(k+p,k,p+1), k being the number of data symbols of the code to be protected and p being the number of parity symbols. For the outer code use can be made of: RS(88,81,8) code over GF(256), derived from the primitive polynomial x 8 +x 4 +x 3 +x 2 +1. For the inner code use can be made of: RS(136,128,9) code over GF(256), derived from the primitive polynomial x 8 +x 4 +x 3 +x 2 +1. For the encoding in the recording mode and the decoding in the reproduction mode it is necessary to store the digital data temporarily in a memory 1.12. This is realised as follows. The variable-length encoder-decoder circuit 1.10 applies non-encoded video data to the circuit 1.11 in which it is row-wise written into the memory 1.12 under the control of the control means 1.19. The address at which the data is written is dependent on the locations where the last reliable frame has been stored, as will be described hereinafter. Per RS video block there are 81 rows and 128 columns of bytes, forming 81 horizontal data words of 128 bytes and 128 vertical data words of 81 bytes. The erco circuit 1.18 provides the vertical data words with the associated parity symbols of the outer code which are also written into the memory. Subsequently, the horizontal data words of the memory 1.12 are provided with parity symbols in conformity with the inner code. The previously determined vertical parity symbols of the outer code then also form horizontal data words. In alternation with the processing of the video data, the audio data is also processed (for example, in a multiplexed fashion), which audio data can be encoded, for example exclusively in conformity with the inner code. The data thus encoded in the recording mode (the code words) is applied to a known modulator-demodulator circuit 1.13 which modulates the data for supply to two read/write heads 1.14 and 1.15 whereby the data can be recorded on a storage medium, for example a magnetic tape. For the reconstruction of the video and audio signals, the two read/write heads 1.14 and 1.15 read the code words stored on the storage medium and apply these code words to the modulator/demodulator circuit 1.13, after which the demodulated data is corrected in the circuit 1.11 by the erco circuit 1.18, if possible, by means of the parity symbols added on the basis of the Reed-Solomon product code. First the inner code (applied to the horizontal video and audio code words) is then decoded, after which the corrected data is separated into audio data, to be applied to the audio processor 1.6, and video data which is subsequently decoded in conformity with the outer code, after which it is applied to the variable-length encoder-decoder circuit 1.10. Via a digital-to-analog converter 1.17, the audio processor 1.6 applies the audio data to an audio output 1.4. The variable-length encoder-decoder circuit 1.10 decodes the variable-length code and supplements the amount of data thus obtained to 15,360 bits per segment. This data is then applied to the DCT circuit 1.9 in which the inverse Discrete Cosine Transformation takes place. The data thus produced is applied to the video processor 1.5 which renders the data suitable for and applies it to the video output 1.2. When the number of errors detected in the data exceeds the number that can be corrected by the error correction code in the reproduction mode, concealment is performed as follows. For a given amount of data (for example, per frame, or per track, or per segment, or per line), the erco circuit 1.18 detects whether this data is reliable or not. The part of the data which is not reliable is replaced by previous, reliable data. To this end, use is advantageously made of a 2-Mbit memory formed by, for example two standard 1-Mbit SRAMs connected in parallel and having the same address control. By writing incoming digital data in the memory at addresses selected in dependence on the errors detected by the erco circuit 1.18 and by reading outgoing digital data from further selected addresses of the memory, the control means 1.19 ensures that the data which has been applied to the variable-length encoder/decoder circuit 1.10 as the last frame deemed to be reliable are saved in the memory until more recent data has been stored which has also been deemed to be reliable by the erco circuit 1.18, and that only reliable data is despatched. This is illustrated in Fig. 3. The memory 1.12 comprises two sections, each of which is operative to store an amount of data equal to one frame of the video signal. A control bit C (per segment or per line, depending on the data unit on the basis of which concealment takes place), memorizes how the data representing the last reliable frame is distributed between the two halves of the memory 1.12. In the recording mode, one of the two sub-memories suffices for the temporary storage of the video data. In that case the control bit C can be dispensed with. In the reproduction mode, an entire frame having a rank number N-1 is written into the left-hand half of the memory if the previous frame ( i.e . the frame having the rank number N-2) did not contain an excessive number of errors, was deemed to be reliable by the erco circuit 1.18, and is suitable for supply as an output frame to the variable-length encoder-decoder circuit 1.10 (referred to hereinafter as VLCD for the sake of brevity), see Fig. 3A. Prior to the writing of the frame N-1, the control bit C had the value 1 throughout. For the sake of simplicity, concealment on a line basis will be assumed hereinafter, even though other data units can be realised equally well. The frame N-1, for example contains a major burst error which cannot be corrected by the erco circuit 1.18, but which can be detected thereby. The control bit C is then inverted to the value 0 for all lines which are reliable. The unreliable lines, containing the burst, keep the control bit C having the value 1. On the basis of the control bit C, the control means 1.19 then reads the following data from the memory for supply to the VLCD: for the control bit having the value 0, it reads the lines from the left-hand memory section, and for the control bit having the value 1 it reads the lines from the right-hand section of the memory. Actually, the damaged part of the data of the frame N-1 is replaced by the previous, reliable, corresponding data of the frame N-2. A subsequent frame N (see Fig. 3B) is then written, under the control of the control means 1.19 at the locations in the memory 1.12 which store the data not applied to the VLCD as the previous output frame, so in the case of the control bit having the value 0 the lines from the right-hand memory section are concerned, and for the control bit having the value 1 the lines from the left-hand memory section are concerned. Subsequently, the erco circuit 1.18 again detects whether the frame N contains non-correctable errors. All control bits C are inverted again, except for the control bits associated with the lines found to be unreliable. The control means 1.19 again reads the data indicated by the control bits for supply to the VLCD: for the control bit 0, the lines from the left-hand half are concerned and for the control bit 1 the lines from the right-hand are concerned. Fig. 3C shows a next step of this process: the frame N+1 does not contain non-correctable errors and is written in the memory at the addresses determined by the control means as shown. The control means thus selects suitable addresses for the writing of the incoming digital data on the basis of non-correctable errors (in the preceding frame) detected by the erco circuit. The control means also selects further suitable addresses for reading out the outgoing digital data, again on the basis of non-correctable errors (in the current frame) detected by the erco circuit. Data originating from a storage medium is first processed by the horizontal error decoder (the inner code). In an internal RAM, it is memorized for each line whether the line has been corrected. In dependence on the relevant control bits C, the data is stored in the memory 1.12. Per RS video block, the data is subsequently processed by the vertical error decoder (the outer code), a vertical code word being read out under the control of the control means and in dependence on the relevant control bits. Subsequently, the erco circuit 1.18 can decide whether or not the data of the RS video block is reliable. The following cases can be distinguished in this respect. The data may have been completely corrected, after which all associated control bits are inverted. If the outer decoder did not succeed in correcting the data, it may be because there were too many erasures, after which the control bit of the lines which have been corrected by the horizontal decoder is inverted (as indicated in the internal RAM). It may also be that the erasure correction reveals that too many miscorrections have been made by the inner decoder, which miscorrections can be detected but not corrected by the vertical decoder, after which the relevant control bits remain the same for the entire RS video block (concealment of the entire RS video block). The invention also offer advantages for the so-called trick modes (slow motion, picture search and the like). In the slow motion mode, the data of an RS video block arrives from the storage medium in bursts. For example, when the slow motion has a deceleration factor 3, the data enters in 3 bursts, so that an entire frame is assembled only after three normal frame periods. During these three frame periods, reliable data of the preceding frame is continuously applied to the VLCD. When substantially a completely new frame has been assembled in the memory (evidently, again at the locations where no reliable data of the previous frame is present), the control bits C are adapted again as described above. This is not a very time-consuming process, because the decoding by the erco circuit 1.18 can be performed per RS video block. Subsequently, the data deemed reliable by the erco circuit and indicated as such in the memory by the control bits C is read during the next three frame periods and applied to the VLCD. A high-quality slow motion is thus obtained. During picture search, a fixed value may be assigned to the control bits C, because outer correction is then impossible (no complete RS video blocks arrive).

Claims: A device for processing a first sequence of write data frames, each frame having a uniform configuration of a plurality of digital data items, and data items in corresponding places in said configuration among successive frames constituting a part of a second sequence of data items, so that each second sequence has one digital data item in each frame, and there are as many second sequences as there are data items in a frame, said device comprising: a) receiving means (1.1, 1.3) for receiving said first sequence of frames; b) memory means (1.12) capable of storing two of said frames at respective locations, each location having one sub-address for one item of each second sequence; c) error detection means for detecting errors in said stored data, and for thereupon controlling error remedial means; characterized in that said error detection means (1.18) are arranged for identifying high-error items, whose errors exceed a given threshold, and low error items whose errors are at or below the given threshold; d) in that said device comprises read control means (1.19) connected to the error detecting means for reading the memory means and for outputting a read frame, that contains one item for each said second sequence of items, said read control means being operative in response to the most recently stored low error item in its respective second sequence of items, to be included in said read frame; e) in that said device comprises write control means (1.19) connected to the error detecting means and for writing the write frame into the memory means whilst being operative in response to the most recently stored low-error items in their respective second sequences of data items, and writing the data item into the alternative sub-address pertaining to the same second sequence of items. A device as claimed in Claim 1, wherein the digital data represents a video signal, characterized in that the memory comprises a first and a second sub-memory, each of which is suitable for storing an amount of data equal to one frame of the video signal, the control means distributing the incoming data line-wise per frame among the sub-memories by writing the data at those addresses at which the data representing the last frame read is not stored. A device as claimed in Claim 2, characterized in that the control means collects the outgoing data line-wise per frame from one of the sub-memories by reading the data at those addresses at which the last reliable data written is stored. A device as claimed in Claim 1 to 3, wherein the digital data represents a video signal, characterized in that the memory comprises a first and a second sub-memory, each of which is suitable for storing an amount of data equal to one frame of the video signal, the control means being suitable for: a) writing a first frame of incoming data into a sub-memory, the constituent lines of said fram having been qualified as being reliable by the detection means, b) determining, after the writing of a frame into the memory, an output frame whose constituent lines are formed by each time one of the corresponding lines in the sub-memories, said constituent lines having been qualified as being reliable by the detection means, c) reading out periodically the output frame from the memory, d) writing a next frame of incoming data periodically into the memory by writing each of the constituent lines of the frame into one of the corresponding lines in the sub-memories, i.e. each time in that sub-memory whose corresponding line does not form part of the output frame. A device as claimed in any of Claims 1 to 4, for processing digital video data, and comprising a video input, a video output, a video processor, A DCT circuit a variable-length encoder-decoder circuit, a modulator-demodulator circuit, and at least one read/write head.

Inventors: DENISSEN ADRIANUS JOHANNES M, ZWAANS BERNARDUS ANTONIUS M, DENISSEN, ADRIANUS JOHANNES MARIA, ZWAANS, BERNARDUS ANTONIUS MARIA
Applicants: KONINKL PHILIPS ELECTRONICS NV, KONINKLIJKE PHILIPS ELECTRONICS N.V.
Application year: 1992
Main classification: H04N5
IPC codes: H04N5, H04N7, G11B27, G11B20, H04N9