DATA INTERPOLATING CIRCUIT

Abstract: The circuit (21) implements a known interpolation algo­ rithm processing words flagged (F n , F n+1 ) as in error or cor­ rect. A correct word is passed on unchanged. An incorrect word is replaced by the means of the most recent correct word and the ensuing word, if that be correct, whereas it is replaced by the most recent correct word if the ensuing word is also in­ correct. In order to avoid the complexity of known circuits with multiple latches and a complex output multiplexer, the words are written selectively into two address locations (α, β) in a RAM 15 in such a way that an adder 16 is always able to furnish the desired result to an output latch (17).

Description: The present invention relates to a data interpolating circuit for interpolating any uncorrectable data in digital data in, for example, digital audio data strings. In general, digital data read out from a recording medium, such as a tape, disc, semiconductor memory device or the like, may have error bits caused by drop-out errors, start-stop errors, and data-read errors. The data-read errors occur due to the limitations of operational performance of a device for reading data from the medium or due to the existence of any memory defect in the medium itself. In order to detect the error bits, a check code such as a parity code, a cross word code, or a Hamming code, is added to each word of the digital data and is preliminarily stored in the recording medium together with the digital data. The check code has at least one check bit per word. The digital data and the check code read out of the medium are checked in every word As the result of this check operation, if an error is detected in a word data, an error correcting circuit is activated. However, when the word data includes a plurality of error bits, it is hard to correct all of the error bits. In practical use, at most two or three bits are a limit value capable of an error correction. Further, a high performance error correction requires a large number of check bits, so that a recording capacity of digital data is limited. Hence, there are many cases where error correction cannot be perfectly effected. It is, however, required to prevent any error data from being delivered, since in the case of, for example, a digital audio system any erroneous digital data results in an offensive noise to the ear when demodulated into an analog signal. Also in a sound processor, an image processor, etc., the error bits impossible to correct exert a harmful influence upon a sound or an image to be produced. In consequence, there is need for a data interpolating circuit which effects interpolation processing for replacing the data which cannot be corrected with data near the correct data. It is now assumed that when a checked data in which one word is constituted by M bits are obtained in order, i.e., A₁, A₂, A₃, ...., A n-1 , A n , A n+1 ...., every clock timing per word (W. CLOCK), from a signal encoder which feeds input data into the data interpolating circuit, an error flag bit F n is added to each word A n . The error flag bit designates whether an input data is a correct data, (or a corrected data) or a data which is uncorrectable due to the limitations of the error-correcting capacity. It is also assumed that when F n is "0", a data A n is a correct data, but when F n is "1", a data A n is an error data. A general data interpolation is effected according to Table 1 by employing a data previous to a data A n and a data A n+1 subsequent to the data A n , and an output data B n+1 is obtained in synchronism with the subsequent W. CLOCK. In the interpolation processing according to Table 1, the state 1 is the state where F n is "0". In this state, the present data A n is correct and is delivered as the output data B n+1 in synchronism with the subsequent W.CLOCK independently of contents of any error flag bits previous and subsequent thereto. The state 2 is the state where F n is "1". This state shows that the present data A n , is incorrect, and the subsequent data A n+1 is correct. In such the case, a correct data A j , which is temporally closest to the present data A n , is used to interpolate an output data B n+1 . Then, a mean value of the data A j and the data A n+1 , that is (A j + A n+1 )/2, is delivered as the output data B n+1 . Moreover, the state 3 is the state where F n is "1" and F n+1 is "1". In this state, error data have been consecutively generated. In such a case, the data A j is delivered as the output data B n+1 , but any error data is not delivered and interpolated by other data. A data interpolating circuit of the prior art has a complex hardware circuit to execute the processing shown in Table 1. That is, the circuit needs at least three independent latch circuits for temporarily storing a present data A n , a correct data A j which is temporally closest to the present data A n , and a next data A n+1 subsequent to the present data A n , respectively. Moreover, an arithmetic circuit, for example an adder, is needed to produce a mean value and a multiplexer circuit to select an output of the arithmetic circuit or outputs of the latch circuits. Particularly, a shift operation to sequentially set the three data above mentioned in the respective latch circuit is required, since these data are sequentially received to the interpolating circuit. Further, since the prior art interpolating circuit uses a sequential processing architecture, all bits of a data to be interpolated must be processed at the same time. Therefore, a large number of bit lines to transfer all the bits to the latch circuits, to the arithmetic circuits, and to the multiplexer circuit are required. Thus, the semiconductor chip size cannot be small. Another known circuit (JP-A 57 207 958) upon which the introductory part of claim 1 is based utilizes two latches in conjunction with a multiplexer to select between the outputs of a latch circuit and the arithmetic means. The data interpolating circuit of the present invention is defined in claim 1 below. In a preferred embodiment of the invention, described in more detail below with reference to the drawings, the memory means is a random access memory (RAM). Input data is firstly stored in the RAM, not in latch circuits, and thereafter transferred to an adder. At this time, since data to be read out of the RAM can be designated at random according to the contents of the error flag bits, the shift operation required in the prior art is unnecessary. A latch stores temporarily a lower portion data of an interpolated word. The output of this latch is applied to another latch as an output stage together with an upper portion data of the interpolated word stored in a latch which takes the output of the adder and provides one input to the adder. That is, a data word to be interpolated is divided into two data portion (a lower and an upper), and these two data portion are sequentially processed in this order. Therefore, an interpolation can be executed through a small number of bit lines. Further, since only the data required for the interpolation is selected by a memory access, the multiplexer of the prior art to inhibit unrequired data is not necessary in the present invention. Therefore, the circuit structure of an output stage is very simple and does not require many circuit elements. As described above, the preferred data interpolating circuit having a combination of a RAM with an adder is a very simple circuit and is readily implemented in a semiconductor integrated circuit. Particularly, the number of circuit elements and bit lines can be extremely reduced. Brief Description of the Drawings: Fig. 1 is a block diagram of a prior art data interpolating circuit; Fig. 2 is a schematic block diagram of a data interpolating circuit in accordance with an embodiment of the invention; Fig. 3 is a flowchart showing an algorithm for the operation of the circuit in accordance with the embodiment of the invention; Fig: 4 is a detailed block diagram of the data interpolating circuit in accordance with the embodiment of the invention; and Fig. 5 is a detailed flowchart of the operation of the circuit of Fig. 4. Fig. 1 is a block diagram of a prior art data interpolating circuit which executes interpolation processing of Table 1 and is constituted by an IC. In Fig. 1, a prior art circuit 14 is integrated on a semiconductor chip and comprises a first N-bit latch 1 for latching the high-order N-bit part (an upper portion) of an input data A n applied through an input terminal IN from a data encoder, a second N-bit latch 2 for latching the low-order N-bit part (a lower portion) of the input data A n , a first one-bit latch 7 for latching an error flag bit F n , first and second M-bit latches 3 and 4 for successively latching and shifting the outputs of the first and second N-bit latches 1 and 2 in synchronism with W.CLOCK, a third M-bit latch 5 for latching the output of the second M-bit latch 4 according to the states of first and second gates 12 and 13 in synchronism with W.CLOCK, a second one-bit latch 8 for successively latching and shifting the output of the first one-bit latch 7 in synchronism with W.CLOCK, an adder 6 connected to the first and third latches 3 and 5 for taking the outputs of the two M-bit latches 3 and 5, respectively. The adder 6 calculates a mean value of these outputs. Further, a multiplexer 10 is adapted to select any one of the outputs of the adder 6, the second M-bit latch 4 and the third M-bit latch 5. A decoder 9 is adapted to control the multiplexer 10 by means of the outputs of the first and second one-bit latches 7 and 8. An M-bit latch 11 is used as an output latch and is connected to the multiplexer 10 to latch the output of the selected data in synchronism with W.CLOCK. An interpolated data is outputted through an output terminal OUT. In this case, M=2N, and the data from the data encoder positioned at the previous stage of this prior art circuit 14 is divided into the high-order N bits and low-order N bit which are sequentially transferred to the input terminal IN. The operation of the prior art circuit will be explained hereinunder. M-bit data A₁, A₂, .... A n-1 , A n , A n+1 .... and error flag bits F₁, F₂, .... F n-1 , F n , F n+1 .... are successively latched and shifted by the M-bit latches 3, 4, 5 and the one-bit latches 7, 8 in synchronism with W.CLOCK. The M-bit latch 5 latches the output of the M-bit latch 4 only when the output of the one-bit latch 8 is "0" by the operations of the gates 12, 13. More specifically, at a certain point of time n , data A n+1 , A n , A j are stored in the M-bit latches 3, 4, 5, respectively, and the error flag bit F n+1 of the data A n+1 and the error flag bit F n of the data A n are stored in the one-bit latches 7, 8, respectively. According to the states of F n+1 , F n , the decoder 9 controls the multiplexer 10. This multiplexer 10 selects the output of the second M-bit latch 4 in the case of the state 1 in Table 1. On the other hand, in the case of the state 2, the output of the adder 6 is selected, while in the case of the state 3, the output of the third M-bit latch 5 is selected. It is thereby possible to obtain an interpolated output data B n+1 at the output terminal OUT in synchronism with W.CLOCK for each of the states shown in Table 1. Thus, the prior art circuit performs the desired operations shown in Table 1. In the prior art, however, three data A j , A n and A n+1 must be separately stored in the respective latches 3, 4 and 5. Further, the output of the adder 6, the output of the second latch 4, and the output of the third latch 5 must always be prepared in every word and be applied to the multiplexer 10. Therefore, many circuit elements and bit lines for transferring the three data independently are necessary. This is because the prior art interpolation processing uses a sequential architecture having a shift operation of the latches at an input stage. Moreover, in practical use, M (the number of bits of a word to be interpolated) is generally larger than 10, however, it is necessary to provide an exceedingly large number of wirings (bit lines) for M bits between the latches, and as elements a multiplexer, a decoder and many latches are also required. In consequence, it is extremely inconvenient and difficult to reduce a chip size of the prior art circuit. An embodiment of the invention will be described hereinunder with reference to the accompanying drawings. Fig. 2 is a schematic block diagram of a circuit in accordance with an embodiment of the invention, and Fig. 3 shows an algorithm for the circuit in accordance with the embodiment. Referring first to Fig. 2, the data interpolating circuit in accordance with the embodiment comprises an RAM 15 which stores at least two words, each of which is constituted by M bits, an adder 16, an M-bit latch 17, one-bit latches 18 and 19, and a timing circuit 20. The timing of each of these circuits is controlled by the timing circuit 20. However, a data input timing and a data output timing are in synchronism with W.CLOCK. It is now assumed that each of the circuits is in the first state at a point of time n . It is also assumed that in this case an address pointer for two words is set in the timing circuit 20 with respect to the RAM 15, and one of the addresses designated by this pointer is defined as α , while the other is defined as β, and a correct data, which is closest to the present point of time, is stored at the relative address β. The basic operation of the circuit in accordance with the embodiment shown in Fig. 2 is as follows: According to the states of the error flag bits F n and F n+1 , the data β dt stored at the relative address β in the RAM 15 or the data α dt stored at the relative address α is read out and fed into the adder 16 to perform an addition. Then, an output data is delivered from the M-bit latch 17 to the output terminal OUT in synchronism with W.CLOCK at the subsequent point of time (n+1). At this time, the error flag bits F n and F n+1 are stored in the one-bit latches 19 and 18, respectively. The circuit in accordance with the embodiment operates according to an algorithm shown in Fig. 3. The algorithm shown in Fig. 3 makes transitions according to timings obtained by subdividing W.ClOCK, as follows, step 1 ○, step 2 ○, step 3 ○ .... These timing signals are generated by the timing circuit 20. The operation in each of the states shown in Table 1 will be explained hereinunder with reference to Fig. 3. The state 1 shown in Table 1 is the state where F n =0 and F n+1 = X (X means a don't care value), and is divided into a state 1₁ where X=0 and a state 1₂ where x=1. First of all, in the state 1₁, F n = 0 and F n+1 = 0, i.e., this is a case where correct data are consecutively obtained. In this case, in the step 1 ○, the data applied to the input of the M-bit latch 17 at the previous point of time (n-1) is delivered as an output data B n from the M-bit latch 17 in synchronism with W.CLOCK. Then, in the step 2 ○, a judgement is made on whether F n+1 = 1 or not. Since F n+1 =0 is judged in the step 2 ○, the step 3 ○ is then selected, in which the data A n+1 applied to the input terminal IN is written at the relative address α in the RAM 15. Next, in the step 4 ○, whether F n =0 or F n+1 =1 is judged. Since F n =0 is judged in this step, the step 5 ○ is then selected, in which the data β dt at the relative address β in the RAM 15 is read out. Then, the adder 16 executes the following addition as described hereafter: (β dt + β dt ) / 2 = β dt The result of this addition is employed as an input data to be fed into the M-bit latch 17 and is delivered as an output data B n+1 from the M-bit latch 17 in synchronism with W.CLOCK at the subsequent point of time (n+1). At this time, since F n =0 the data β dt is nothing but the data A n written into the RAM 15 at the previous point of time (n-1). Therefore, as shown in Table 1, the output data Bn+1 is the data A n . Next, in the step 7 ○, whether F n+1 =1 or not is judged. Since F n+1 = 0 is judged in this step, the step 8 ○ is then selected, in which the address pointer is changed over. Thus, the data A n+1 written at the relative address in the step 3 ○ is stared at the relative address β. This is equivalent to the fact that the correct data, which is closest to the present point of time, is stored at the relative address β. On the other hand, in the state 1₂, F n = 0 and F n+1 = 1, i.e., this is a case where an error data A n+1 is generated Subsequently to a correct data A n . First of all, after an output data B n is delivered in the step 1 ○, F n+1 = 1 is judged in the step 2 ○. Therefore, the data A n+1 is not written at the relative address α in the RAM 15, and the Judgement in the subsequent step 4 ○ is selected. In consequence, the contents β dt at the relative address β, i.e., the data A n is applied to the input of the M-bit latch 17 so as to be delivered in synchronism with the subsequent W.CLOCK similarly to the case of the State 1₁. Moreover, since F n+1 = 1 is Judged in the Step 7 ○, the address pointer is not changed over, and the data A n is stored at the relative address β. Next, in the state 2, F n = 1 and F n+1 = 0, i.e., this is a case where a correct data A n+1 is obtained subsequently to an error data A n . First of all, in the step 1 ○ , the correct data A j , which is closest to the present point of time is delivered as an output data B n is synchronism with W.CLOcK. Since F n-1 = 0 is judged in the step 2 ○, the data A n+1 is written at the relative address a in the Step 3 ○. After the judgement in the step 4 ○, the step 6 ○ is selected, in which the arithmetic operation, (α dt + β dt ) / 2 is executed. The result of the operation is applied to the input of the M-bit latch 17 so as to be delivered as an output data B n+1 . Moreover, after F n+1 is judged in the step 7 ○, the address pointer is changed over. Thus, similarly to the case of the state 1₁, the data A n+1 written at the relative address in the step 3 ○ is stored at the relative address β as the correct data which is closest to the present point of time. In the state 3 ○ F n = 1 and F n+1 = 1, i.e., this is a case where error data are consecutively generated. In a manner similar to the above, after the data A j is delivered as an output data B n in the step 1 ○, F n+1 = 1 is judged in the step 2 ○. In consequence, the data A n+1 is not written at the relative address α , and the judgement in the step 4 ○ is selected. Further, the step 5 ○ is selected, in which the arithmetic operation in the step 5 ○ is performed. Thus, since β dt is the data A j , this data is delivered as an output data B n+1 from the M-bit latch 17 in synchronism with the subsequent W.CLOCK. Moreover, because of the judgement made in the step 7 ○ the address pointer is not changed over; therefore, the data A j is still stored at the relative address β as the data which is closest to the present point of time and correct. Thus, according to the algorithm in accordance with the invention shown in Fig. 3, it is possible to obtain the output data B n+1 in each of the states as shown in Table 1. Figs. 4, 5 are a block diagram and an operation flowchart of the circuit in accordance with the embodiment of the invention which is obtained by making the circuit and the algorithm therefor, shown in Figs. 2 and 3, more practical, respectively. In Fig. 4, the data interpolating circuit in accordance with the embodiment comprises an RAM 22 with a memory capacity of N bits x four symbols (two symbols means one word (M bits), and a symbol means upper of lower portion of a word), an adder 23 which performs an addition of an N-bit symbol (one symbol) and an N-bit symbol, an (N+1)-bit latch 24 for latching N bits as the result of the addition performed by the adder 23 and a carry CO of one bit, an N-bit latch 25 for latching N-1 bits except for the LSB of the output of the (N+1)-bit latch 24 and a carry CO of the low-order addition, a gate 27 inserted between a one-bit carry output terminal in the output of the N-bit latch 25 and a carry input terminal of the adder 23, an M-bit latch 26 for latching an upper portion addition result from the (N+1)-bit latch 24 and the (N-1) bits from the N-bit latch 25. Firstly, the adder 23, produces a result of a low-order addition. The result has a one bit carry for the upper portion and the added N bits carry for the upper portion and the added N bits data. However, since a mean value is required, the LSB of the added N bits data is omitted and the remainder (N-1) bits are latched to the N bit latch 25 with the carry. That is, the latch 25 is used to temporarily store the result of the mean value of the low-order calculation. Secondly, the adder 23 produces a result of a high-order addition. This result has a carry bit and the added value (N bits) of the high-order data, therefore, (N+1) bits are latched to the latch 24 as the result of the high-order calculation. Though the added value must be divided by 2 in order to get a mean value, this operation is executed by positioning the added value at an upper portion of the M bit latch 26, and by positioning the carry bit of the high-order addition at the MSB of the M bit latch 26. As the result,the data obtained by adding M bits with M bits is shifted rightward by one bit and is stored to the latch 26. It is well known that the shift operation of one bit rightward is equal to a division by 2. The circuit of Fig. 4 further includes one-bit latches 29 and 30 for latching an error flag bit, F n+1 and F n respectively, and a timing circuit 28 for controlling the timing of each of these elements. In this case, it is assumed that one word is constituted by two symbols. Signals ADRES.H, ADRES.L, WRITE and READ on their respective signal lines in Fig. 4 are high-order and low-order bits on two address lines for accessing four symbols in the RAM 22, a write signal and a read signal, respectively. Reference symbols RST, LAT 1 denote a reset signal and a latch signal for the (N+1)-bit latch 24, respectively. A reference symbol LAT 2 represents a latch signal for the N-bit latch 25, while a symbol CAEN denotes a signal for opening the gate 27 for applying the bit in the output of the N-bit latch 25 which corresponds to the carry output, to the carry input end of the adder 23. In addition, W.CLOCK serves as a latch signal for each of the one-bit latches 29, 30 and the M-bit latch 26 and also as a trigger pulse for the timing circuit 28. Moreover, this circuit differs from the circuit schematically shown in Fig. 2 in that an M-bit data is divided into high-order N bits and low-order N bits. The symbols of the high-order N bits in the data at the relative addresses α and β will be represented by symbols α dtH , β dtH , respectively, while the symbols of the low-order N bits will be denoted by α dtL , β dtL , respectively, hereinafter. In this case, the inversion of ADRES.H is equivalent to the replacement between the relative addresses α and β, while the inversion of ADRES.L is equivalent to the changeover between the high-order N-bit symbol and the low-order N-bit symbol at the same relative address. Referring now to Fig. 5 which is a flowchart, reference numerals (1), (2), (3) .... (8) represent steps generated by the timing circuit 28, respectively, while a reference symbol C denotes the logic represented by a logical expression, C = F n + F n+1 . The logic is true when "F n = 0 or F n+1 = 1". The relationship between the flowchart shown in Fig. 5 and the algorithm shown in Fig. 3 is as follows: The step (1) in Fig. 5 corresponds to the step 1 ○ in Fig. 3; the step (2) in Fig. 5 to the steps 2 ○, 3 ○ in Fig. 3; the steps (3), (4), (5), (6), (7) in Fig. 5 to the steps 4 ○, 5 ○, 6 ○ in Fig. 3; and the step (8) in Fig. 5 to the steps 7 ○, 8 ○ in Fig. 3. The flowchart shown in Fig. 5 will be described hereinunder. In the step (1), an output data B n at the point of time (n-1) is delivered in synchronism with W.CLOCK. In the step (2), when F n+1 = 0, i.e., when the data A n+1 applied to the input terminal IN is correct, first, the high-order part (A n+1 ) H of the data A n+1 is written in the high-order part of the relative address α in the RAM 22. Then, ADRES.L is inverted to write the low-order part (A n+1 ) L in the low-order part of the relative address . In this case, if F n+1 = 1, only ADRES.L is inverted to make the address designate the low-order part of the relative address α, and the data A n+1 is not written. Next, in the step (3), first, ADRES.H is inverted to make the address in the RAM 22 designate the low-order part of the relative address β, and this data β dtL is read out. and employed as one input of the adder 23. At the same time, the reset signal RST is applied to the (N+1)-bit latch 24 to reset the latter, thereby to apply a symbol, constituted by bits all of which are 0, to the other input of the adder 23. Thus, the data β dtL can be obtained at the output of the adder 23. At this point of time, the latch signal LAT 1 is applied to the (N+1)-bit latch 24 for latching. As a result, the data β dtL is applied to the other input of the adder 23 at the final point of time in the step (3). Next, in the step (4), first, when C = 1, i.e., when F n = 0 or F n+1 = 1, ADRES.H is not inverted, so that the address in the RAM 22 is not changed. In consequence, the symbol read out from the RAM 22 is β dtL , and (β dtL + β dtL ) can be obtained at the output of the adder 23. Further, the application of the latch signal LAT 1 causes both the result N bits and the carry output bit to be stored in the (N+1)-bit latch 24. On the other hand, when C = 0 is first judged in the step (4), ADRES.H is inverted, so that α dtL is read out from the RAM 22, and the addition result (β dtL + α dtL ) of the adder 23 is stored in the (N+1)-bit latch 24 as the sum of an N-bit result and a one-bit carry output. Next, in the step (5), both the high-order (N-1) bits in the N-bit addition result and the carry output one bit stored in the (N+1)-bit latch 24 are stored into the N-bit latch 25 by the application of LAT 2 thereto. In the subsequent steps (6), (7), the inversion of ADRES.L causes the high-order part of the data to be read out from the RAM 22. Therefore, a comparison similar to that in the step (4) is made in these steps. In the case where an addition, (β dtL + β dtL ), has been executed in the steps (4), (5), an addition, (β dtH + β dtH + CARRY) is performed in the steps (6), (7). In the case where an addition, (β dtL + α dtL ) has been carried out in the steps (4), (5), an addition, (β dtH + α dtH + CARRY), is performed in the steps (6), (7). In either case, both an N-bit addition result and a one-bit carry output are stored into the (N+1)-bit latch 24 by the application of LAT 1 thereto. More specifically, at the final point of time in the step (7), both the (N+1)-bit latch 24 and the N-bit latch 25 have stored therein the data obtained by shifting the result of (β dt + β dt ) in the LSB direction by one bit, i.e., (β dt + β dt ) / 2 = β dt , in the case of C = 1, and, similarly, (β dt + α dt ) / 2 in the case of C = 0. In addition, at this time, the address in the RAM 22 designates the relative address β H when C = 1, and the relative address α H when C = 0. Further, in the step (8), in the case of the above-mentioned state 1₁, i.e., if F n = 0 and F n+1 = 0, then C = 1. Therefore, the inversion of ADRES.H is not carried out. In consequence, the address maintains the state where it designates the relative address β H , and this address is regarded as the relative address α H In the processing of (n+1) which is initiated from the subsequent W.CLOCK. In other words, the address pointer has been changed over. On the other hand, in the case of the state 1₂, i.e., when F n = 0, F n+1 = 1 and C = 1, ADRES.H is inverted only once, so that the address is changed to the relative address α H . Accordingly, in the processing of (n+1) which is initiated from the subsequent W.CLOCK, this address is regarded as the relative address α H as it is; therefore, the changeover of the address pointer is not carried out. In the case of the state 2 in Table 1, i.e., when F n = 1, F n+1 = 0 and C = 0, ADRES,H is inverted only once. In consequence, the address designates the relative address β H , so that the changeover of the address pointer is effected. Further, in the case of the state 3 in Table 1, i.e., when F n = 1, F n+1 = 0 and C = 1, ADRES.H is inverted only once, so that the address is changed to the relative address α H . Therefore, the address pointer is not changed over. Table 2 below shows: whether the writing of the data A n+1 is done or not in each of the state 1, 2, 3 at the final point of time in the step (8) after a series of steps have been thus passed; the contents of the (N+1)-bit latch 24 and the N-bit latch 25; the designated address in the RAM 22; and whether the changeover of the address pointer is done or not. Thus, the flowchart shown in Fig. 5 obviously makes transition according to the algorithm shown in Table 2. Therefore, in the circuit in accordance with the embodiment shown in Fig. 4, the application of the subsequent W.CLOCK allows a desired data to be delivered as an output data B n+1 . As described above, the circuit in accordance with the embodiment shown in Fig.4 performs the desired operations shown in Table 1 due to the novel memory access architecture. The following is the remarkable effects offered by the circuit: I. Since the high-order part and low-order part of data are separately processed in a time-division manner, the number of data bit lines required for the circuit is reduced to a half of that for the prior art circuit. II. The delivery of a mean value interpolation output and the selection of data in the cases other than the delivery are effected by changing the symbols to be applied to the adder simply by the change of the addresses in the RAM, and executing an arithmetic operation, (α dt + β dt ) / 2 or (β dt + β dt )/ 2 in a single adder. Therefore, the processing step number sequence is the same in any state, so that the timing circuit, which generates timing pulses, can be constituted by a simple circuit which generates a single pulse train by the trigger of W.CLOCK. III. The number of required elements can be greatly reduced, since it is possible to omit the multiplexer for data selection. Moreover, when data in a plurality of channels are processed as in the case of an audio signal, if the number of channels is represented by m , the prior art circuit requires a circuit size m times as large as that in the case of one channel. According to the circuit of Fig.4, however, the adder, the (N+1)-bit latch and the (N-1)-bit latch used for a plurality of channels are the same as those in the case of one channel, and the circuit of Fig.4 can be easily adapted for a multiplicity of channels by increasing the number of latches for storing error flags m times as many as and the data capacity of the RAM m times as much as those in the case of one channel, and processing the data in a time-division multiplex manner for each channel. In this case, to increase the capacity of the RAM on an integrated circuit, it is only necessary to add the repetition of cells of the RAM; hence, it is, as a matter of course, possible to realize a circuit with an extremely reduced area as compared with an m -fold increase in circuit size. As has been shown, it is possible to provide a data interpolating circuit which performs a complete data interpolation processing and is best suitable for the formation by means of an integrated circuit, with an extremely simple circuit configuration.

Claims: A data interpolating circuit for interpolating an error data word contained in a succession of data words, each of the data words being accompanied by an error-flag which indicates whether or not the corresponding data word is correct, the circuit comprising error-flag latch means (18,19; 29,30) for latching two error-flags of two successive data words, memory means (15;22) including first and second storage regions (α,β), contol means (20;28) responsive to the contents of the error-flag latch means (18,19; 29,30) for so controlling the memory means (15; 22) that each of the first and second storage regions (α,β) stores a data word which is accompanied by an error-flag indicating no error, arithmetic means (16; 23) for forming the mean value of two data words supplied thereto, and output means (17; 24-26) temporarily storing the output of the arithmetic means (16; 23) and providing an output data word, characterised in that said memory means is addressable memory means (15; 22), in that the control means (20; 28) further so controls the addressable memory means (15; 22): that the latest stored data word (β) is read out sequentially twice from the addressable memory means (15; 22) when the error-flag latch means (18,19; 29,30) latches two error-flags both indicating an error, or the preceding one (Fn) indicating no error and the succeeding one (Fn+1) indicating an error, that the data word preceding the latest data word (β) is read out sequentially twice from the addressable memory means (15; 22) when the error-flag latch means (18,19); 29,30) latches two error-flags both indicating no error, and that the data words stored in both of the first and second storage regions (α,β) are read out sequentially when the error-flag latch means (18,19; 29,30) latches two error-flags of which the preceding one (Fn) indicates an error and the succeeding one (Fn+1) indicates no error, and in that the two data words thus read out of the addressable memory means (15; 22) are supplied to the arithmetic means (16; 23). A circuit as claimed in claim 1, characterized in that the output means includes an output register (26) from which the output data word is provided and an intermediate register (24) coupled between the arithmetic means (23) and the output register (26) for temporarily storing the output of the arithmetic means (23), and in that an output of the intermediate register (24) is fed back to the arithmetic means (23). A circuit as claimed in claim 2, characterized in that the control means (28) supplies the data word read out of one of the first and second storage regions (α,β) to the arithmetic means (23) with resetting of the intermediate register (24), thereafter instructs the intermediate register (24) to store the output of the arithmetic means (23), and thereafter supplies the data word read out of the one of the other of the first and second storage regions (α,β) to the arithmetic means (23).

Inventors: KANEKO, TAKASHI
Applicants: NEC CORPORATION
Application year: 1984
Main classification: G11B5
IPC codes: G11B20