Data transmission method
BACKGROUND OF THE INVENTION 
     The present invention relates to a data transmission method for transmitting (including recording and reproducing) digital signals representing audio information or the like. 
     Conventionally, a reproducing apparatus as shown in FIG. 1 has been used at a reception side of a data transmission system of this type. In FIG. 1, a data input carrying, for example, audio information transmitted and demodulated by a suitable demodulator is compared with a reference voltage by a comparator 1, shaped into a digital signal having steep leading and trailing edges, and then supplied to a memory control circuit 2. Employing synchronization derived from a clock component extracted from the supplied digital signal, the memory control circuit 2 successively writes the information data and check word (parity bit) in the digital signal into a buffer memory 3. Upon completion of the writing operation, the data is successively read out of the buffer memory 3 and supplied to an error detection correction circuit 4 where, if there is an error bit in the information data, the location of the error bit is detected and the error corrected. The thus-corrected data is successively read out and converted into the original audio signal by a D/A converter 5. In the data reproducing apparatus as described above, the coding method in which the check word added at the transmitter side is based is fixed, and error detection correction operations are performed corresponding to the coding method. 
     In such a data transmission system, in the case where a single type of information is to be transmitted, it is sufficient to employ a coding method having necessary redundancy and capability of error correction in accordance with the type of the information, and therefore there are no particular problems. However, where a plurality of types of information, for example, such as audio information having a relatively high self correlation and computer program information having a low self correlation, are to be transmitted, the coding method should be different for the two different types of data. For instance, in the case of transmitting by way of the same tranceiver both computer programs and audio signals digitized by an ADM (Adaptive Delta Modulation) system, the coding method is chosen such that the probability of data error correction for the computer programs is acceptably high, the coding method becomes nonoptimum when applied to the audio signals because the data correction is performed with an unnecessarily high quality. 
     SUMMARY OF THE INVENTION 
     The present invention has been attained in view of the above-mentioned circumstances. Specifically, an object of the present invention is to provide a data transmission method in which it is possible to transmit data carrying various kinds of information more efficiently and correctly by way of a single transmitting/receiving apparatus. 
     In the data transmission method according to the present invention, at the transmission side, an optimum coding method on which a data group including information data and a check word is based is selected in accordance with the contents or type of the information carried thereby, and a control code representing the thus-selected coding method is inserted into a data signal. At the reception side, the control code inserted in the data signal is extracted so as to determine the coding method on which the data group is based, and the data group is subjected to error detection/correction processing on the basis of the determined coding method to thereby recover the original information from the data group after error correction. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a block diagram showing a conventional received data signal processing circuit; 
     FIG. 2 is a block diagram showing a transmission data processing circuit of a data transmission system according to the present invention; 
     FIG. 3 is a diagram showing an example of an information data arrangement in the data transmission system according to the present invention; 
     FIG. 4. is a diagram showing a signal pattern when a video format signal is formed in the data transmission system according to the present invention; 
     FIGS. 5A to 5D are diagrams showing examples of data arrangements used in the data transmission system according to the present invention; 
     FIG. 6 is a block diagram showing the received data signal processing circuit in the data transmission system according to the present invention; 
     FIG. 7 is a block diagram showing a part of FIG. 6; 
     FIG. 8 is a diagram showing an example of the code length in the data transmission system according to the present invention; and 
     FIGS. 9A to 9D show examples of other data arrangements which can be used in the data transmission system according to the present invention. 
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     Referring to FIGS. 2 to 9, a data transmission system according to the present invention will be described in detail hereunder. 
     FIG. 2 shows a transmitter apparatus embodying a data transmission system according to the present invention, which is supplied with an audio signal or computer data as an input signal thereto, the audio signal being digitized by, for example, an A/D converter 10 in accordance with the ADM system. The thus-obtained audio information data and the computer data are supplied to a changeover circuit 11 and the changeover circuit 11 supplies the computer data or the audio information data to a memory control circuit 12 in accordance with a selection instruction. The selection instruction is supplied also to a control code generating circuit 13 which in turn generates a control code in synchronism with a timing signal from a timing-signal generating circuit 14. The control code may be produced, for example, in the form of a two-bit binary code. 
     The memory control circuit 12 successively transfers the data supplied thereto to a buffer memory 15 to cause the buffer memory 15 to store the data therein, and the memory control circuit 12 reads the stored data out of the buffer memory 15 and supplies it to a check word operation circuit 16. The check word operation circuit 16 produces a check word in accordance with the coding method corresponding to the control code supplied by the control code generating circuit 13, and the check word operation circuit 16 cooperates with the memory control circuit 12 to store the check word at a proper address in the buffer memory 15 so that a desired data arrangement containing the check word is formed in the buffer memory 15. The information data arrangement formed in the buffer memory 15 may be, for example, a three-dimensional arrangement (hereinafter referred to as an information block) in which information data is composed of twelve words in the X direction, six words in the Y direction and eleven words in the Z direction, as illustrated in FIG. 3. 
     In this case, a control code is constituted by a two-bit binary code so that four different control codes, &#34;00&#34;, &#34;01&#34;, &#34;10&#34; and &#34;11&#34; are obtained, and four coding methods corresponding to the respective two-bit binary codes are made to respectively correspond to four error correction capability levels, that is, &#34;level 0&#34;, &#34;level 1&#34;, &#34;level 2&#34; and &#34;level 3&#34;. Error correction processing is performed for each data group including a check word for error detection, hereinafter referred to as &#34;a code block&#34;. In the case of transmitting a code block as a video format signal, the video format signal is arranged within the area 30 following the twenty-seventh horizontal scanning period. In each field, as shown in FIG. 4, although control data for the hardware at the reproducing side and instruction data designating control for the reproducing mode of a picture and an audio signal may be included in the area 31 from the twenty-third horizontal line to the twenty-sixth horizontal line, the control code 32 representing the two-bit coding method is inserted in a portion of the area 31. 
     A code block is formed by adding a redundancy bit, that is a check word, in one, two or all of the three, X, Y, and Z directions of an information block. This state is shown in FIGS. 5A to 5D. FIG. 5A shows the case of a single information block 40 (A 0 ), FIG. 5B shows a code block A 1  in which a group of check words 41, each constituted by two words, is added to the information block 40 only in the Z direction, FIG. 5C shows a code block A 2  in which a group of check words 42 is added in the X and Z directions, and FIG. 5D shows a code block A 3  in which a group of check words 43 are added in the X, Y and Z directions. Referring to an information block having no check word as a code block A 0 , the code blocks A 0  to A 3  correspond to the respective error detection capability levels 0, 1, 2 and 3, and the above-mentioned control codes &#34;00&#34;, &#34;01&#34;, &#34;10&#34; and &#34;11&#34; correspond to the code blocks A 0  to A 3  to represent the same. 
     After forming such a code block A 0 , A 1 , A 2  or A 3  as described above in the buffer memory 15 in accordance with a control code, control data and code block data produced as a one-dimensional arrangement from the memory control circuit 12 in accordance with a predetermined readout order in response to a timing signal are mixed with various timing signals such as a vertical and a horizontal synchronizing signal, a blanking signal, etc., in a synthesizing circuit 17 to form a video format signal which is then transmitted or recorded after it has been subjected to modulation. 
     The thus-transmitted or recorded video format signal or data signal is reproduced by a reproducing apparatus as shown in FIG. 6. A video format signal or a data signal, which is received or read from a recording medium, is demodulated, supplied to a comparator 1 to be shaped into a digital signal having a waveform with steep leading and trailing edges, supplied to a memory control circuit, and then succesively stored in a buffer memory 3 in the same manner as in the prior art. However, the digital signal obtained from the comparator 1 is supplied also to a control code separation circuit 50. A control code separated and extracted in the control code separation circuit 50 is supplied to an error correction control circuit 51, which in turn supplies a correction level indicating signal to an error detection/correction circuit 52 in accordance with the control code. The error detection/correction circuit 52 achieves an error detection/correction operation in accordance with the correction level indicating signal. Thus, an error detection/correction operation is performed corresponding to the coding method at the transmission side so that the error detection/correction operation is performed efficiently. The error-corrected data is successively read out of the buffer 3 and outputted directly in the case of computer data or D/A converted in the case of audio data or the like. 
     FIG. 7 shows an embodiment of the error correction control circuit 51 and the error detection/correction circuit 52 of FIG. 6. In FIG. 7, reference numeral 60 designates an error correction control gate which is connected with the output of the control code separation circuit 50 and the output of a read number counter 61 and which produces an output to an address controller 74 and a Reed-Solomon code error correction circuit 75. The read-out number counter 61, connected with one output of the address controller 74, produces an output to the error correction control gate 60. Reference numeral 70 designates a small capacity RAM for error correction, including an error pointer memory 70A and a data memory 70B. The address of the RAM 70 is assigned by an X address counter 71, a Y address counter 72 and a Z address counter 73. An enabling signal for each address counter is produced by an address controller 74 which is connected with one output of the error control gate 60 and which has outputs connected to the X address counter 71, the Y address counter 72, the Z address counter 73 and the readout number counter 61. Reference numeral 75 designates a Reed-Solomon code error correction circuit which is controlled by one of the outputs of the error control gate 60 and which exchanges data and error pointers with the small capacity RAM. The error correction control gate 60 and the correction number counter 61 shown in FIG. 7 are included in the error correction control circuit 51 of FIG. 6, and the small capacity RAM 70, the X address counter 71, the Y address counter 72, the Z address counter 73, the address controller 74 and the Reed-Solomon error correction circuit 75 are included in the error detection/correction circuit 52, the operational one of which can be selected. 
     The operation at the reproducing side will be described more in detail. The code block A 1  shown in FIG. 5B has two check words only in one direction (hereinafter this error correction is referred to as &#34;error correction at level 1&#34;, and more briefly referred to as &#34;level 1&#34;), and is mainly used for ADM audio data or the like. FIG. 5C shows the case of two check words in each of two directions (hereinafter this error correction is referred to as &#34;error correction at level 2&#34;, and more briefly referred to as &#34;level 2&#34;), in which the correction capability is higher than that of level 1 and which is used for character information data or the like. FIG. 5D illustrates the case of two check words in each of three directions (hereinafter this error correction is referred to as &#34;error correction at level 3&#34;, and more briefly referred to as &#34;level 3&#34;), which is used, for example, for computer programs or the like, that is, mainly in the case where a higher correction capability is required than for level 2 and which is suitable for computer programs and the like. In this case, one row in each direction in which the check words are added is regarded as one code word in the error correction code. The case where no check word is added in any direction as shown in FIG. 5A is hereinafter referred to as &#34;error correction at level 0&#34;, and more briefly referred to as &#34;level 0&#34;. The &#34;level 0&#34; is mainly used for the case where data is outputted without correcting errors. 
     As described above, &#34;level 0&#34;, &#34;level 1&#34;, &#34;level 2&#34;, and &#34;level 3&#34; are selected by the coding selection control codes &#34;00&#34;, &#34;01&#34;, &#34;10&#34; and &#34;11&#34;. Assuming the number of words including the check word in each direction in each error correction is represented by (x, y, z), it is further assumed that (x, y, z)=(12, 6, 13) at level 1, (x, y, z)=(14, 6, 13) at level 2, and (x, y, z)=(14, 8, 13) at level 3. Further, assuming that the redundancy is defined as Redundancy=(number of check words/total number of words)×100%, the redundancy is about 15% at level 1, about 30% at level 2, and about 45% at level 3. It is thus apparent that the redundancy increases in the order from level 1 to level 3 while the correction capability increases in the same order. In this example, assuming that all the error detection and error correction are effected by an eight-bit word unit in a Reed-Solomon code format on a Galois field GF(2 8 ), the respective primitive element α is a root of a polynominal P(m)=m 8  +m 4  +m 3  +m 2  +1 and is represented in eight bits as α=(00000010). Further, a check matrix H for syndrome checking is expressed by: ##EQU1## where n represents the code length. This matrix H is used for syndrome calculation, which will be described later. This matrix is expressed as follows using a matrix T for each bit: ##EQU2## where I is a unit matrix of eight-rows and eight-columns and T is a matrix of eight rows and eight columns as follows: ##EQU3## To detect the error position or the error contents, a syndrome S which is defined as follows is obtained: 
     
         S=[S.sub.p,S.sub.Q ].sup.t =H·[W.sub.n-1 W.sub.n-2. . . W.sub.2 PQ].sup.t, 
    
     where W n-1 , W n-2  . . . , W 2  represent words of information and it is assumed that the words are arranged in the descending order of the suffices of the coded words. P and Q represent a check word composed of two words determined so as to satisfy the equation S P  =S Q  =0. It is stored together with information words. 
     At the reproducing side, the equation S P  =S Q  =0 is satisfied if there is no error in the reproduced data. In other cases, it is possible to determine the error pattern or error position from the respective values of S P  and S Q . On the basis of the above-mentioned equation for S and the definition of the check matrix H, the respective values of S P  and S Q  are expressed as follows: ##EQU4## where i=n-1, n-2, . . . , 2; ##EQU5## represents the total sum by exclusive ORing, and ⊕ designates an exclusive-OR operation. In the case where an information word has an error pattern e i , the information word W i  &#39; including an error is expressed by: 
     
         W.sub.i &#39;=W.sub.i ⊕ei, 
    
     and if this value is substituted into W i  in the above-mentioned equations for S P  and S Q , the following equations are obtained: ##EQU6## Assuming now that W L  &#39; represents an information word W L  (2≦L≦n-1)when an error occurs therein, the following equations are obtained: ##EQU7## Thus, an error pattern e L  can be obtained from the value of S P . Further, an equation S P  =α -L  S Q  can be derived from the above equations and an error position can be obtained on the basis of this equation. The error correction is achieved on the basis of the following equation: 
     
         W.sub.L &#39;⊕e.sub.L =(W.sub.L ⊕e.sub.L)⊕e.sub.L =W.sub.L. 
    
     That is, the error correction is performed by exclusively ORing the error word W L  &#39; and the error pattern e L . Such error correction, which is achieved by using only the syndrome S (that is, [S P  ·S Q  ] t ), is hereinafter referred to as &#34;syndrome correction&#34;. 
     It is possible to perform error correction for one word using this syndrome correction. In the case where errors are included in two words, to the contrary, error detection is performed by effecting syndrome calculation in one direction, for example, in the X direction, (that is no error correction is performed), to thereby obtain an error position (that is by using the error pointer) to calculate syndromes in the Y or Z direction, and then error correction is performed on the basis of the relation as described under. This correction is referred to as &#34;erasure correction&#34;. Description will be made hereunder as to the case where errors occur in two words such that the information word W h  (2≦h≦n-1) is erroneously changed into W&#39; h  by an error pattern e h  and the information word W j  (2≦j≦n-1) is changed into W&#39; j  by an error pattern e j . As described above, ##EQU8## and therefore: ##EQU9## so that the error positions h and j already found by means of the error pointer and e h  and e j  can be obtained from S P  and S Q  obtained from the above equations. Accordingly, error words W h  &#39; and W j  &#39; can be corrected into the correct original words W h  and W j  as follows: 
     
         W.sub.h &#39;⊕e.sub.h =(W.sub.h ⊕e.sub.h)⊕e.sub.h =W.sub.h, and 
    
     
         W.sub.j &#39;⊕e.sub.j =(W.sub.j ⊕e.sub.j)⊕e.sub.j =W.sub.j. 
    
     The processing in this manner is performed such that one-word syndrome correction only in the Z direction is achieved in &#34;level 1&#34;, error detection is effected in the X direction to provide error pointers by which two-word erasure in the Z direction and one-word syndrome correction in the Z direction are performed in level 2, and error detection is performed in the X direction and two-word erasure correction and one-word syndrome correction are effected in the Y and Z directions, respectively, in level 3. 
     The operation of the apparatus shown in FIG. 7 will now be described hereunder. The buffer memory 3 in FIG. 6 has a large capacity sufficient for storing a plurality of code blocks and control codes. The data is transferred from the memory 3 by one code block through the terminal 6 to the small capacity RAM 70 to be temporarily stored therein, and thereafter corrected in the Reed-Solomon code error correction circuit 75. 
     The control for reading out the data from the small capacity RAM 70 to the Reed-Solomon code error correction circuit 75 is performed as follows: The control code separation circuit 50 produces one of the control codes &#34;00&#34;, &#34;01&#34;, &#34;10&#34; or &#34;11&#34; corresponding to the correction level. Referring to the control code and the output signal R of the read-out number counter 61, the error correction control gate 60 transmits a direction changeover signal for error detection/correction in the X, Y and Z directions to the address controller 74, and at the same time transmits a changeover signal for the code length n in each direction to the Reed-Solomon code correction circuit 75. The read-out number counter 61 is such a counter in which one is added every time the address count has reached the last word of the code block in error detection/error correction in each of the X, Y and Z directions. In this circuit, the maximum value of the output R of the counter 61 is obtained at the level 3 and is set to two. The output R is reset to zero by a timing signal derived from the data prior to the start of code block error correction (including error detection). Upon reception of a direction changeover signal for error detection/correction, the address controller 74 determines the sequence of operations of the X direction address counter 71, the Y direction address counter 72 and the Z direction address counter 73 and enables the respective counters in accordance with the determined operating sequence. For instance, for error detection in the X direction (X detection), the address is advanced in the order of the X address, Y addess and Z address; in the case of error correction in the Y direction (Y correction), the address is advanced in the order of the Y address , Z address and X address; and in the case of error correction in the Z direction (Z correction), the address is advanced in the order of the Z address, X address and Y address. The correspondence among the X detection, Y correction, Z correction, the correction levels, and the output signal R of the read-out number counter 61 is as shown in the columns labelled &#34;Correction Level&#34; and &#34;Operations&#34; in the Table below. At level zero, neither error detection nor error correction is conducted when R=0; at level 1, Z correction is conducted when R=0; at level 2, X detection and Z correction are conducted when R=0 and R=1, respectively; at level 3, X detection, Y correction, and Z correction are conducted when R=0, R=1 and R=2, respectively. The data corresponding to the addresses of the small capacity RAM 70 designated by the three counters 71, 72 and 73 is read out and supplied to the Reed-Solomon code correction circuit 75. In the Reed-Solomon code correction circuit 75, at level 1, since X detection is not conducted and no error pointer can be found, syndrome correction is conducted and only the corrected data is written again in the data memory 70B in the small capacity RAM 70. At level 2 and level 3, the error detection is made for every code word in the X direction to establish an error pointer corresponding to every code word, and the thus-established error pointer is written in the error pointer memory 70A in the small capacity RAM 70. Thereafter, the error pointer is read out of the small capacity RAM 70 together with the data into the Reed-Solomon code correction circuit 75 in which data correction is performed in the Y or Z direction on the basis of the error pointer. The corrected data is written again into the data memory 70B in the small capacity RAM 70. Upon completion of error correction, the code blocks are transferred from the data memory 70B to the terminal 6. 
     If the Reed-Solomon code error correction circuit 75 is arranged such that a code word having a maximum code length as shown in FIG. 8 (for example, the code length n=14  in the X direction in this embodiment) can be processed, it is of course a code word having a code length smaller than the maximum code length that can be processed therein. Accordingly, error detection/correction in each of the X, Y and Z directions is performed by assigning the value of n. In the case of the minimum code length as shown in the same drawing (for example, the code length n=8 in the Y-direction in this embodiment), a normal error correcting operation can be performed without modifying the correction circuit 75 at all by performing code word processing by substituting zero into the remainder words (for example, six words in this embodiment). A changeover signal for use in assigning the code length n is obtained from the error correction control gate 60 as described above, and the code length n in each of the X, Y and Z directions at each correction level is such that n=13 in the Z direction at level 1; n=14 in the X direction and n=13 in the Z direction at level 1; and n=14 in the X direction, n=8 in the Y direction and n=13 in the Z direction at level 3; as shown in the Table, except the case at level 0. 
     
                       TABLE                                                       
______________________________________                                    
CON-  CORREC-                     CODE                                    
TROL  TION                        LENGTH                                  
CODE  LEVEL     OPERATIONS        (n)                                     
______________________________________                                    
11    LEVEL 3   R=0  R=1  R=2     X dir. n=14                             
                X det.→Y Corr.→Z Corr.                      
                                  Y dir. n=8                              
                                  Z dir. n=13                             
10    LEVEL 2   R=0  R=1          X dir. n=14                             
                X det.→Z Corr.                                     
                                  Z dir. n=13                             
01    LEVEL 1   R=0               Z dir. n=13                             
                Z corr.                                                   
00    LEVEL 0   R=0                                                       
                Neither detection nor                                     
                correction is performed.                                  
______________________________________                                    
 NOTE:                                                                    
 R represents the output signal of the readout number counter.            
 
    
     In the described embodiment, description has been made regarding the case of a data group coding method in which check words are added to an information block of a fixed size as shown in FIGS. 3 and 5 so that a code block is changed in size. However, such a coding method as shown in FIG. 9 may be employed in which the size (X, Y, Z) of a code block is fixed and check words are added in accordance with the error correction level so that an information block is varied in size with the same effect as in the previously described embodiment. 
     In the described preferred embodiment, although two check words are employed in each direction, the number of these check words is not restricted to two, but the same applies to other cases with the same effect. 
     In the above embodiment, although description has been made as to the case where a video signal was partly replaced by digital data and transmitted as a video format signal, it is apparent that the present transmission system can be applied to other cases of ordinary data transmission. 
     As described above, according to the present invention, the system is arranged such that the operation of an error correction circuit is automatically changed over by a control code included in a control data region in accordance with a correction level required for digital data so that optimization of the redundancy and correction capability in the error correction is attained. That is, it is possible to select a coding method suitable for computer programs, character information data, audio data or the like so that various operations can be continuously and automatically performed such that, for example, the correction capability may be increased for computer programs by setting the redundancy to a large value, while in the case of audio data, a low correction level may be applied to reduce the redundancy as much as possible by applying to make it possible to extend the audio reproduction period. Further, the error correction circuit is arranged such that a conventional Reed-Solomon code error correction circuit can be commonly used at various correction levels without extensive modifications or increased costs merely by adding peripheral circuits.