Abstract:
A system for communicating data comprises a clock channel configured to transmit a clock signal at a predetermined rate and at least one data channel configured to transmit data as a sequence of blocks of multi-level symbols being sent at a fixed multiple of the clock rate. Each block of multi-level symbols comprises a sequence of at least three multi-level symbols. Each multi-level symbol has an analog voltage level selected from a predetermined number of possible values, the predetermined number being an integer greater than two. The fixed multiple of the clock rate is an integer greater than one.

Description:
BACKGROUND OF THE INVENTION 
       [0001]    1. Technical Field 
         [0002]    This invention relates to apparatus and methods for communicating data, and more specifically communicating data over at least one channel, such as a cable having a plurality of conductors (for example, four twisted pairs of wires), and for encoding and/or decoding data in connection with such communications. 
         [0003]    2. Background Art 
         [0004]      FIG. 1  illustrates the prior art transition minimized differential signaling (TMDS) physical layer that was developed by Silicon Image Inc. as a member of the Digital Display Working Group and is used in both the well-known Digital Visual Interface (DVI) and High Definition Multimedia Interface (HMDI). 
         [0005]    TMDS is a physical layer technology for transmitting high-speed serial data in a simplex mode from one transmitter to one receiver. A useful description of this TMDS interface is included in the background section of Hwang (U.S. Pat. No. 7,359,437). The TMDS transmitter incorporates a coding algorithm designed to minimize electromagnetic interference (EMI) over copper cables. The algorithm is a form of eight-bit binary to ten-bit binary (8B:10B) coding, similar to that described in Franaszek (U.S. Pat. No. 4,486,739) but using a different code-set that differs from the IBM originated form. Hwang describes yet another form of eight-bit binary to ten-bit binary (8B:10B) coding that may be more effective than the TMDS coding algorithm at reducing inter-symbol interference. Each TMDS ten-bit word can represent either an eight-bit data value, typically representing video pixel data, or alternatively a two-bit control value, typically used for horizontal and vertical sync during screen blanking. Such a TMDS coding algorithm can therefore be described as an eight-symbol, alternatively two-symbol, binary (base-two) to ten-symbol binary (base-two) coding algorithm and is represented herein in short hand form as ‘8/2B:10B’. 
         [0006]    In the TMDS coding scheme, four hundred sixty (460) combinations, out of the possible one thousand twenty four (1024) combinations, for a 10-bit binary word, are used for representing an 8-bit data value. Some of the two hundred fifty six (256) possible values, of each 8-bit binary word, are encoded using a single variant and other values have two encoded variants. Four combinations, of the 10-bit binary output word, are used for representing a 2-bit control word used for TMDS control signals, such as horizontal and vertical sync video signals. 
         [0007]      FIG. 1  depicts a typical TMDS interface configured to transmit red-green-blue (RGB) video data. TMDS uses four twisted wire pairs ( 120 ,  121 ,  122 , and  123 ) to transmit a clock channel  130  and three data channels ( 131 ,  132 , and  133 ). Red video data  131  is transmitted as a serial stream of ten, as described above, 2-level (binary) symbols per pixel into a first twisted pair  121  of wires at a rate of between 250 MHz and 3.4 GHz. Green video data  132  is transmitted as a serial stream of ten 2-level (binary) symbols per pixel into a second twisted pair  122  of wires at a rate of between 250 MHz and 3.4 GHz. Blue video data  133  is transmitted as a serial stream of ten 2-level (binary) symbols per pixel into a third twisted pair  123  of wires at a rate of between 250 MHz and 3.4 GHz. A pixel clock  100  transmits clock data  130  consisting of one 2-level (binary) symbol per pixel into a fourth twisted pair  120  of wires at a rate of between 25 MHz and 340 MHz, or one-tenth the symbol rate of the data channels. 
         [0008]    TMDS uses DC-coupled current mode logic (CML), terminated to 3.3 volts and DC balanced by the encoding algorithm. Each TMDS data channel includes an eight-symbol, alternatively two-symbol, binary (base-two) to ten-symbol binary (8/2/B:10B) encoder ( 11 R,  11 G, and  11 B), a twisted wire pair ( 121 ,  122 , and  123 ), and a ten-symbol binary to eight-symbol, alternatively two-symbol, binary decoder ( 17 R,  17 G, and  17 B). The clock channel  130  is used for inter-channel alignment  101 , such as between the three data channels ( 131 ,  132 , and  133 ), at the receiving side of the interface. Typical TMDS data channels ( 131 ,  132 , and  133 ) will also include pre-emphasis stages ( 12 R,  12 G, and  12 B) and equalization stages ( 16 R,  16 G, and  16 B). 
         [0009]    In a different area of the prior art, communication systems have been developed which use more than two voltage levels to represent digital data. For example, a four-level pulse amplitude modulated system (PAM-4) will encodes two binary bits at a time and map the resulting signal amplitude to one of four possible voltage levels, such as −3 volts, −1 volt, 1 volt, and 3 volts. Demodulation is performed by detecting the amplitude level of the carrier at every symbol period. Each of these prior art systems transmits data in two-directions (full-duplex) and derives a clock signal from its data channels, rather than having a dedicated clock channel. 
         [0010]    Phanse (U.S. Pat. No. 6,975,674) describes a PAM-5 (e.g. five voltage levels per symbol) interface that is suitable for transmitting 125 mega-symbols per second (125 MHz) per twisted wire pair on a four-pair Cat 5e cable resulting in an aggregate transmission of 500 mega-symbols per second (500 MHz) per direction in a full-duplex transmission configuration. According to Phanse, this allows for a (binary) data rate of one gigabit per second (1 Gbps). Phanse is not applicable as a replacement for TMDS because it does not have enough bandwidth for the highest video rates and because it relies on recovering the clock from the data stream, has a significant DC residual correction required, and requires echo cancellation circuitry due to the duplex nature of its anticipated communication path. 
         [0011]    Deliot (U.S. Pat. No. 6,052,390) describes a PAM-9 (e.g. nine voltage levels per symbol) interface and is instructive in the need to manage DC residual when using multi-level signals in a transformer coupled system as well as the effect of overall energy from a multi-level symbol group in terms of resultant electromagnetic interference (EMI). However, Deloit requires that delimiters be inserted between multi-level symbol groups, which introduces a significant processing overhead that is not desirable when associated with high speed video data transfer. 
         [0012]    There continues to be a long-felt need to extend the cabling length and/or bandwidth available for high-definition media interface (HDMI) television signals which is unanswered by the prior art. 
       SUMMARY OF THE INVENTION 
       [0013]    The following summary of the invention is provided to facilitate an understanding of some of the innovative features unique to the present invention. A full appreciation of the various aspects of the invention can only be gained by taking the entire specification, claims, drawings, and abstract as a whole. 
         [0014]    DISCLOSURE OF INVENTION 
         [0015]    In accordance with the present invention, the present TMDS physical layer used in a Digital Visual Interface (DVI) is replaced with a physical layer having multiple levels per symbol and a relatively low symbol clock rate. 
         [0016]    According to a first aspect of the present disclosure, a system comprises a clock channel configured to transmit a clock signal at a predetermined rate. The system further includes at least one data channel configured to transmit data as a sequence of blocks of multi-level symbols being sent at a fixed multiple of the clock rate. Each block of multi-level symbols comprises a sequence of at least three multi-level symbols. Each multi-level symbol has an analog voltage level selected from a predetermined number of possible values, the predetermined number being an integer greater than two. The fixed multiple of the clock rate is an integer greater than one. 
         [0017]    According to a second aspect of the present disclosure, a method comprises the steps of transmitting a clock signal at a predetermined rate by a clock channel and transmitting data as a sequence of blocks of multi-level symbols at a fixed multiple of the clock rate. Each block of multi-level symbols comprises a sequence of at least three multi-level symbols. Each multi-level symbol has an analog voltage level selected from a predetermined number of possible values, the predetermined number being an integer greater than two. The fixed multiple of the clock rate is an integer greater than one. 
         [0018]    According to a third aspect of the present disclosure, a method comprises the steps of deriving a code block for each respective data, control, and BIT signal in accordance with a predetermined code by an encoder. The method further includes accepting the code block from the encoder and generating, as an output, the group of multi-level symbols corresponding thereto by a digital to analog converter. The method further includes transmitting the group of multi-level symbols over at least one data channel, accepting, as an input, the group of multilevel symbols and generating the code block corresponding thereto by an analog to digital converter, and accepting the code block from the analog to digital converter and deriving each respective data, control, and BIT signal from the code block in accordance with the predetermined code by a decoder. 
         [0019]    According to a fourth aspect of the present disclosure, a method for transmitting data and controlling signals comprises encoding an eight symbol, alternatively two symbol, binary input data set and producing therefrom a three symbol undenary output data set. The binary input data set comprises a first binary word having two data bits, a second binary word having eight data bits, and a control bit indicating which one of the first and second binary word determines a resultant code. The method further includes decoding a three symbol undenary input data set and producing therefrom an eight symbol, alternatively two symbol, binary output data set. The binary output set comprises a first binary word having two data bits, a second binary word having eight data bits, and a control bit indicating which one of the first and second binary word was determined from the undenary input data set. 
         [0020]    According to a fifth aspect of the present disclosure, a method for transmitting data and controlling signals comprises providing a clock channel operating at a predetermined rate and transmitting a clock signal on a first one of the wire pairs and providing at least one data channel, each operating at a same fixed multiple of the clock rate. Each of the at least one data channel includes an encoder performing the steps of: (a) accepting, as an input set, a TMDS “Data Enable” signal, two TMDS control signals, “[C 1 :C 0 ]”, and eight TMDS data signals, “[D 7 :D 0 ]”, (b) producing, as an output set, a first sequence of three undenary symbols, and (c) computing a running digital sum of the undenary symbols of the produced sequence. A digital to analog converter performs the steps of (a) accepting the first sequence of three undenary symbols and producing therefrom an output varying level analog voltage in synchronization with the clock channel, (b) conditioning and transmitting the varying level analog voltage onto a corresponding further one of the four twisted wire pairs in a pre-emphasis stage, (c) receiving and conditioning the varying level analog voltage from the corresponding further one of the four twisted wire pairs in an equalization stage, and (d) accepting the varying level analog voltage and producing therefrom a second sequence of three undenary symbols in synchronization with the clock channel by an analog to digital converter. A decoder performs the steps of (a) accepting, as an input set, the second sequence of three undenary symbols, and (b) producing, as an output set, a TMDS “Data Enable” signal, two TMDS control signals, “[C 1 :C 0 ]”, and eight TMDS data signals, “[D 7 :D 0 ]”. 
         [0021]    The present invention seeks to overcome or at least ameliorate one or more of several problems, including but not limited to: extending the range available for high definition television cabling. 
     
    
     
       BRIEF DESCRIPTION OF DRAWINGS 
         [0022]    The accompanying figures further illustrate the present invention. 
         Brief Description of the Several Views of the Drawing 
         [0023]      FIG. 1  shows a TMDS physical layer as is known in the prior art. 
           [0024]      FIG. 2  shows a physical layer is accordance with the present invention. 
           [0025]      FIG. 3  is a timing comparison between the physical layer of the prior art and the present invention. 
           [0026]      FIG. 4  depicts the encoding of signals typically present at a TMDS interface using a new inventive encoding method in accordance with one illustrative embodiment of the present invention. 
           [0027]      FIG. 5  depicts the decoding of signals encoded by the method of  FIG. 4  into signals that are typically present at a TMDS in accordance with one illustrative embodiment of the present invention. 
       
    
    
     LIST OF REFERENCE NUMBERS FOR THE MAJOR ELEMENTS IN THE DRAWING 
       [0028]    The following is a list of the major elements in the drawings in numerical order. 
         [0029]      11 R 8/2B:10B encoder (TMDS) (red channel) 
         [0030]      11 G 8/2B:10B encoder (TMDS) (green channel) 
         [0031]      11 B 8/2B:10B encoder (TMDS) (blue channel) 
         [0032]      12 R pre-emphasis stage (red channel) 
         [0033]      12 G pre-emphasis stage (green channel) 
         [0034]      12 B pre-emphasis stage (blue channel) 
         [0035]      16 R equalization stage (red channel) 
         [0036]      16 G equalization stage (green channel) 
         [0037]      16 B equalization stage (blue channel) 
         [0038]      17 R 10B:8/2B decoder (TMDS) (red channel) 
         [0039]      17 G 10B:8/2B decoder (TMDS) (green channel) 
         [0040]      17 B 10B:8/2B decoder (TMDS) (blue channel) 
         [0041]      22 R 8/2/1 B:3U encoder (PAM-11) (red channel) 
         [0042]      21 G 8/2/1 B:3U encoder (PAM-11) (green channel) 
         [0043]      21 B 8/2/1B:3U encoder (PAM-11) (blue channel) 
         [0044]      22 R pre-emphasis stage (red channel) 
         [0045]      22 G pre-emphasis stage (green channel) 
         [0046]      22 B pre-emphasis stage (blue channel) 
         [0047]      23 R analog to digital converter (ADC) (red channel) 
         [0048]      23 G analog to digital converter (ADC) (green channel) 
         [0049]      23 B analog to digital converter (ADC) (blue channel) 
         [0050]      26 R equalization stage (red channel) 
         [0051]      26 G equalization stage (green channel) 
         [0052]      26 B equalization stage (blue channel) 
         [0053]      27 R 3U:8/2/1B decoder (red channel) 
         [0054]      27 G 3U:8/2/1B decoder (green channel) 
         [0055]      27 B 3U:8/2/1B decoder (blue channel) 
         [0056]      28 R digital to analog converter (DAC) (red channel) 
         [0057]      28 G digital to analog converter (DAC) (green channel) 
         [0058]      28 B digital to analog converter (DAC) (blue channel) 
         [0059]      31  TMDS data waveform (encoded data value 179) 
         [0060]      32  clock waveform (pixel clock) 
         [0061]      33  undenary data waveform (encoded data value 179) 
         [0062]      41  (step of) reading TMDS input set 
         [0063]      42  (step of) encoding TMDS input set into undenary three symbol block 
         [0064]      43  (step of) outputting synchronized analog voltage sequence 
         [0065]      44  (step of) selecting undenary three symbol block for BIT signal 
         [0066]      51  (step of) outputting synchronized analog voltage sequence 
         [0067]      52  (step of) decoding TMDS undenary three symbol block 
         [0068]      53  (step of) writing TMDS output set 
         [0069]      54  (step of) writing BIT output signal 
         [0070]      61  video source 
         [0071]      62  video sink 
         [0072]      64  undenary transmitter 
         [0073]      65  undenary receiver 
         [0074]      100  pixel clock 
         [0075]      101  inter-channel alignment stage 
         [0076]      120  fourth twisted pair of wires (clock channel) 
         [0077]      121  first twisted pair of wires (data channel 1—red) 
         [0078]      122  second twisted pair of wires (data channel 2—green) 
         [0079]      123  third twisted pair of wires (data channel 3—blue) 
         [0080]      131  TMDS data channel 1 (red) 
         [0081]      132  TMDS data channel 2 (green) 
         [0082]      133  TMDS data channel 3 (blue) 
         [0083]      150  clock channel 
         [0084]      151  PAM-11 data channel 1 (red) 
         [0085]      152  PAM-11 data channel 2 (green) 
         [0086]      153  PAM-11 data channel 3 (blue) 
         [0087]      601  pixel clock signal 
         [0088]      611  first red-value multilevel symbol (R UA ) 
         [0089]      612  second red-value multilevel symbol (R UB ) 
         [0090]      613  third red-value multilevel symbol (R UC ) 
         [0091]      621  first green-value multilevel symbol (G UA ) 
         [0092]      622  second green-value multilevel symbol (G UB ) 
         [0093]      623  third green-value multilevel symbol (G UC ) 
         [0094]      631  first blue-value multilevel symbol (B UA ) 
         [0095]      632  second blue-value multilevel symbol (B UB ) 
         [0096]      633  third blue-value multilevel symbol (R UC ) 
       DETAILED DESCRIPTION OF THE INVENTION 
       [0097]    The present invention is a digital interface physical layer suitable for use in high-speed digital communications. 
         [0098]    Unless the context clearly requires otherwise, throughout the description and the claims, the words ‘comprise’, ‘comprising’, and the like are to be construed in an inclusive sense as opposed to an exclusive or exhaustive sense; that is to say, in the sense of “including, but not limited to”. 
       MODE(S) FOR CARRYING OUT THE INVENTION 
       [0099]    The preferred embodiment of the present invention is described herein in the context of a an interface circuit and cabling that replaces the Transition Minimized Differential Signaling (TMDS) physical layer used in both the Digital Visual Interface (DVI) and High Definition Multimedia Interface (HMDI), which are widely used in consumer electronics. 
         [0100]    Refer now to  FIG. 2  and continue to refer to  FIG. 1 . One embodiment of the present invention is a ‘pin-compatible’ replacement for the well-known TMDS interfaces. For example, both the commercially available TMDS physical layer and the physical layer of the present invention are typically connected by four sets of unshielded twisted pairs (UTP), but not limited to such a connection. 
         [0101]    Table 1, below, compares the TMDS physical known in the prior art with the undenary (base-11) physical layer, as referred to as eleven-level pulse amplitude modulation (PAM-11), of the present invention. 
         [0000]    
       
         
               
               
               
             
           
               
                 TABLE 1 
               
               
                   
               
               
                   
                   
                 Present Invention 
               
               
                 Characteristic 
                 TMDS 
                 (PAM-11) 
               
               
                   
               
             
             
               
                 Cable: 
                 Special/Proprietary; Four 
                 Standard Cat-5e; Four 
               
               
                   
                 (4) unshielded twisted 
                 (4) unshielded twisted 
               
               
                   
                 wire pairs 
                 wire pairs 
               
               
                 Coupling: 
                 DC (current mode) 
                 AC (transformer) 
               
               
                 Transmission Mode: 
                 Simplex (one direction 
                 Simplex (one direction 
               
               
                   
                 only); Point-to-Point only 
                 only); Point-to-Point 
               
               
                   
                   
                 or Point-to-Multipoint. 
               
               
                 Maximum Video 
                 8.16 Gbit/s 
                 8.16 Gbit/s 
               
               
                 Bandwidth 
               
               
                 Maximum Audio 
                 36.86 Mbit/s 
                 36.86 Mbit/s 
               
               
                 Bandwidth 
               
               
                 Maximum Resolution 
                 2560 × 1600p75 
                 2560 × 1600p75 
               
               
                 over Single Link at 
               
               
                 24 bit/pixel 
               
               
                 Pixel Clock: 
                 25 MHz to 340 MHz 
                 25 MHz to 340 MHz 
               
               
                 Symbol Clock: 
                 75 MHz to 3.40 GHz 
                 75 MHz to 1.02 GHz 
               
               
                 Symbol Encoding: 
                 8/2B: 10B 
                 8/2/1B: 3U 
               
               
                 Valid Symbols: 
                 460 of 1024 possible 
                 432 of 1331 possible 
               
               
                 Symbol Encoding: 
                 8/2B: 10B 
                 8/2/1B: 3U 
               
               
                   
               
             
          
         
       
     
         [0102]    The three data channels ( 151 ,  152 , and  153 ) shown in  FIG. 2  are similar to one another. The discussion that follows addresses a single data channel  151 , such as ‘Data  1 ’, that may be used, for example, to carry red video information. 
         [0103]    At the transmitting end of the (red video) interface, signals normally present at a TMDS (red video) interface, the TMDS input set, consisting of a ‘data enable’ (DE) signal, two control bits [C 1 :C 0 ], eight data bits [D 7 :D 0 ], are fed into an eight-symbol, alternatively two-symbol, and alternatively one-symbol binary (base-two) to three-symbol undenary (base-eleven) (8/2/1B:3U) encoder  21 R. In addition, a special built-in-test (BIT) signal is also fed into the 8/2/1B:3U encoder  21 R. According to the present invention, there is a similar green video 8/2/1B:3U encoder  21 G and a similar blue video 8/2/1B:3U encoder  21 B. 
         [0104]    The two control bits can be considered as a first binary word (i.e. of two-bit length) and the eight data bits can be considered as a second binary word (i.e. of eight-bit length). The TMDS ‘data enable’ (DE) signal is used as a control bit that indicates which one of the first and second binary words determines the encoding result. 
         [0105]    When the TMDS ‘data enable’ (DE) signal is not set (e.g. logic ‘0’), the encoder  21 R uses the value of the two control bits [C 1 :C 0 ] to determine an output symbol triplet. When the TMDS ‘data enable’ (DE) signal is set (e.g. logic ‘1’), the encoder  21 R uses the value of the eight data bits [D 7 :D 0 ] to determine the output symbol triplet. When the BIT signal is set (e.g. logic ‘1’), the encoder  21 R outputs the special BIT symbol triplet. 
         [0106]    In a preferred embodiment, the 8/2/1B:3U encoder  21 R translates the 
         [0107]    TMDS input set into a corresponding block of three multi-level symbols (e.g. symbol triplet) in accordance with a 8/2/1B:3U block code, such as shown in Table 2 herein, where each symbol can have any one of eleven possible values. In other embodiments the symbol blocks can consist of other than three symbols and each multi-level symbol can have other than eleven values. 
         [0108]    The eleven possible symbol values will be represented on the first data channel  151  by eleven different voltage levels, measured between the two wires of the first twisted pair  141 , one level being zero, five being positive voltage levels, and five being negative voltage levels. For convenience, these symbols and the corresponding voltage levels are referenced herein by the arbitrary numerical values −5, −4, −3, −2, −1, 0, +1, +2, +3, +4, and +5; the actual voltages may be numerically different from these values, and may be chosen to satisfy practical requirements involving, for example, power dissipation and noise margins. In a further embodiment of the present invention, the voltage levels are dynamically adjusted for a particular installation, such as one using existing Cat-5e cabling. In a similar manner, the second data channel  152  uses the second twisted pair of wires  142  and the third data channel  153  uses the third twisted pair of wires  143 . 
         [0109]    In one embodiment of the present invention, the actual output of the 8/2/1B:3U encoder  21 R is a sequence of four-bit words or nibbles, each nibble having one of eleven possible values (e.g. 0000, 0001, 0010, 0011, 0100, 0101, 0110, 0111 and 1000, 1001, and 1010) representing the eleven possible undenary symbols, and successive triplets of nibbles defining the three symbols comprising the symbol triplet for the corresponding data/control/BIT word supplied to the encoder  21 R. This sequence of four-bit nibbles produced by the encoder  21 R is fed to a digital to analog converter (DAC)  28 R, which produces a respective voltage level for each different symbol value and applies this voltage level to the twisted wire pair  121 . Alternatively, further processing of the output of the DAC  28 R, for example analog filtering, is allowed before it is applied to the twisted wire pair. For example, some embodiments include a pre-emphasis stage  22 R. 
         [0110]    The receiving end of the (red video) interface receives these voltage levels as inputs to an equalizer  26 R, which compensates for the effects of different conductor lengths on distortion affecting the received signals. The compensated signal produced by the equalizer  26 R is supplied to an analog to digital converter (ADC)  23 R, which generates one of the eleven possible nibble values 0000 to 1010 corresponding to the voltage level closest to that present at the output of the equalizer  26 R for each successive symbol period, such as an a rate of three symbols per pixel clock  100 . In some embodiments a 16-level ADC with a 4-bit output is used to produce the nibbles. In other embodiments, higher resolution analog to digital converters are used where the outputs are then mapped to one of the eleven possible values. 
         [0111]    The sequence of nibbles generated by the ADC  23 R is passed to a 3U:8/2/1B decoder  27 R which checks that the received encoded symbols are valid, and reverses the encoding performed by the encoder  21 R. This decoder  27 R also recognizes the special BIT sequence, which advantageously can be used to synchronize all three data channels with the clock channel. Advantageously, the BIT signal can be used to synchronize the decoders ( 27 R,  27 G, and  27 B), within each data channel, with the pixel clock  100  by inter-channel alignment module  201 . 
         [0112]    An example of an 8/2/1B:3U code implemented in each of the encoders ( 21 R,  21 G, and  21 B) is shown in Table 2 below. 
         [0000]    
       
         
               
               
               
             
               
               
               
               
               
               
               
             
               
               
               
               
               
               
               
             
           
               
                   
                 TABLE 2 
               
             
             
               
                   
                   
               
               
                   
                 Symbol Block 
                   
               
             
          
           
               
                   
                 Value 
                 UA 
                 UB 
                 UC 
                 Energy 
                 Weight 
               
               
                   
                   
               
             
          
           
               
                   
                 data_000 
                 −1 
                 0 
                 1 
                 2 
                 0 
               
               
                   
                 data_001 
                 −1 
                 1 
                 0 
                 2 
                 0 
               
               
                   
                 data_002 
                 0 
                 −1 
                 1 
                 2 
                 0 
               
               
                   
                 data_003 
                 0 
                 1 
                 −1 
                 2 
                 0 
               
               
                   
                 data_004 
                 1 
                 −1 
                 0 
                 2 
                 0 
               
               
                   
                 data_005 
                 1 
                 0 
                 −1 
                 2 
                 0 
               
               
                   
                 data_006 
                 0 
                 0 
                 2 
                 2 
                 2 
               
               
                   
                 data_007 
                 0 
                 2 
                 0 
                 2 
                 2 
               
               
                   
                 data_008 
                 −1 
                 0 
                 2 
                 3 
                 1 
               
               
                   
                 data_009 
                 −1 
                 1 
                 1 
                 3 
                 1 
               
               
                   
                 data_010 
                 −1 
                 2 
                 0 
                 3 
                 1 
               
               
                   
                 data_011 
                 0 
                 −1 
                 2 
                 3 
                 1 
               
               
                   
                 data_012 
                 0 
                 2 
                 −1 
                 3 
                 1 
               
               
                   
                 data_013 
                 1 
                 −1 
                 1 
                 3 
                 1 
               
               
                   
                 data_014 
                 1 
                 1 
                 −1 
                 3 
                 1 
               
               
                   
                 data_015 
                 2 
                 −1 
                 0 
                 3 
                 1 
               
               
                   
                 data_016 
                 2 
                 0 
                 −1 
                 3 
                 1 
               
               
                   
                 data_017 
                 −2 
                 0 
                 2 
                 4 
                 0 
               
               
                   
                 data_018 
                 −2 
                 1 
                 1 
                 4 
                 0 
               
               
                   
                 data_019 
                 −2 
                 2 
                 0 
                 4 
                 0 
               
               
                   
                 data_020 
                 −1 
                 −1 
                 2 
                 4 
                 0 
               
               
                   
                 data_021 
                 −1 
                 2 
                 −1 
                 4 
                 0 
               
               
                   
                 data_022 
                 0 
                 −2 
                 2 
                 4 
                 0 
               
               
                   
                 data_023 
                 0 
                 2 
                 −2 
                 4 
                 0 
               
               
                   
                 data_024 
                 1 
                 −2 
                 1 
                 4 
                 0 
               
               
                   
                 data_025 
                 1 
                 1 
                 −2 
                 4 
                 0 
               
               
                   
                 data_026 
                 2 
                 −2 
                 0 
                 4 
                 0 
               
               
                   
                 data_027 
                 2 
                 −1 
                 −1 
                 4 
                 0 
               
               
                   
                 data_028 
                 2 
                 0 
                 −2 
                 4 
                 0 
               
               
                   
                 data_029 
                 −1 
                 0 
                 3 
                 4 
                 2 
               
               
                   
                 data_030 
                 −1 
                 1 
                 2 
                 4 
                 2 
               
               
                   
                 data_031 
                 −1 
                 2 
                 1 
                 4 
                 2 
               
               
                   
                 data_032 
                 −1 
                 3 
                 0 
                 4 
                 2 
               
               
                   
                 data_033 
                 0 
                 −1 
                 3 
                 4 
                 2 
               
               
                   
                 data_034 
                 0 
                 3 
                 −1 
                 4 
                 2 
               
               
                   
                 data_035 
                 1 
                 −1 
                 2 
                 4 
                 2 
               
               
                   
                 data_036 
                 1 
                 2 
                 −1 
                 4 
                 2 
               
               
                   
                 data_037 
                 2 
                 −1 
                 1 
                 4 
                 2 
               
               
                   
                 data_038 
                 2 
                 1 
                 −1 
                 4 
                 2 
               
               
                   
                 data_039 
                 3 
                 −1 
                 0 
                 4 
                 2 
               
               
                   
                 data_040 
                 3 
                 0 
                 −1 
                 4 
                 2 
               
               
                   
                 data_041 
                 −2 
                 0 
                 3 
                 5 
                 1 
               
               
                   
                 data_042 
                 −2 
                 1 
                 2 
                 5 
                 1 
               
               
                   
                 data_043 
                 −2 
                 2 
                 1 
                 5 
                 1 
               
               
                   
                 data_044 
                 −2 
                 3 
                 0 
                 5 
                 1 
               
               
                   
                 data_045 
                 −1 
                 −1 
                 3 
                 5 
                 1 
               
               
                   
                 data_046 
                 −1 
                 3 
                 −1 
                 5 
                 1 
               
               
                   
                 data_047 
                 0 
                 −2 
                 3 
                 5 
                 1 
               
               
                   
                 data_048 
                 0 
                 3 
                 −2 
                 5 
                 1 
               
               
                   
                 data_049 
                 1 
                 −2 
                 2 
                 5 
                 1 
               
               
                   
                 data_050 
                 1 
                 2 
                 −2 
                 5 
                 1 
               
               
                   
                 data_051 
                 2 
                 −2 
                 1 
                 5 
                 1 
               
               
                   
                 data_052 
                 2 
                 1 
                 −2 
                 5 
                 1 
               
               
                   
                 data_053 
                 3 
                 −2 
                 0 
                 5 
                 1 
               
               
                   
                 data_054 
                 3 
                 −1 
                 −1 
                 5 
                 1 
               
               
                   
                 data_055 
                 3 
                 0 
                 −2 
                 5 
                 1 
               
               
                   
                 data_056 
                 −3 
                 0 
                 3 
                 6 
                 0 
               
               
                   
                 data_057 
                 −3 
                 1 
                 2 
                 6 
                 0 
               
               
                   
                 data_058 
                 −3 
                 2 
                 1 
                 6 
                 0 
               
               
                   
                 data_059 
                 −3 
                 3 
                 0 
                 6 
                 0 
               
               
                   
                 data_060 
                 −2 
                 −1 
                 3 
                 6 
                 0 
               
               
                   
                 data_061 
                 −2 
                 3 
                 −1 
                 6 
                 0 
               
               
                   
                 data_062 
                 −1 
                 −2 
                 3 
                 6 
                 0 
               
               
                   
                 data_063 
                 −1 
                 3 
                 −2 
                 6 
                 0 
               
               
                   
                 data_064 
                 0 
                 −3 
                 3 
                 6 
                 0 
               
               
                   
                 data_065 
                 0 
                 3 
                 −3 
                 6 
                 0 
               
               
                   
                 data_066 
                 1 
                 −3 
                 2 
                 6 
                 0 
               
               
                   
                 data_067 
                 1 
                 2 
                 −3 
                 6 
                 0 
               
               
                   
                 data_068 
                 2 
                 −3 
                 1 
                 6 
                 0 
               
               
                   
                 data_069 
                 2 
                 1 
                 −3 
                 6 
                 0 
               
               
                   
                 data_070 
                 3 
                 −3 
                 0 
                 6 
                 0 
               
               
                   
                 data_071 
                 3 
                 −2 
                 −1 
                 6 
                 0 
               
               
                   
                 data_072 
                 3 
                 −1 
                 −2 
                 6 
                 0 
               
               
                   
                 data_073 
                 3 
                 0 
                 −3 
                 6 
                 0 
               
               
                   
                 data_074 
                 −2 
                 0 
                 4 
                 6 
                 2 
               
               
                   
                 data_075 
                 −2 
                 1 
                 3 
                 6 
                 2 
               
               
                   
                 data_076 
                 −2 
                 2 
                 2 
                 6 
                 2 
               
               
                   
                 data_077 
                 −2 
                 3 
                 1 
                 6 
                 2 
               
               
                   
                 data_078 
                 −2 
                 4 
                 0 
                 6 
                 2 
               
               
                   
                 data_079 
                 −1 
                 −1 
                 4 
                 6 
                 2 
               
               
                   
                 data_080 
                 −1 
                 4 
                 −1 
                 6 
                 2 
               
               
                   
                 data_081 
                 0 
                 −2 
                 4 
                 6 
                 2 
               
               
                   
                 data_082 
                 0 
                 4 
                 −2 
                 6 
                 2 
               
               
                   
                 data_083 
                 1 
                 −2 
                 3 
                 6 
                 2 
               
               
                   
                 data_084 
                 1 
                 3 
                 −2 
                 6 
                 2 
               
               
                   
                 data_085 
                 2 
                 −2 
                 2 
                 6 
                 2 
               
               
                   
                 data_086 
                 2 
                 2 
                 −2 
                 6 
                 2 
               
               
                   
                 data_087 
                 3 
                 −2 
                 1 
                 6 
                 2 
               
               
                   
                 data_088 
                 3 
                 1 
                 −2 
                 6 
                 2 
               
               
                   
                 data_089 
                 4 
                 −2 
                 0 
                 6 
                 2 
               
               
                   
                 data_090 
                 4 
                 −1 
                 −1 
                 6 
                 2 
               
               
                   
                 data_091 
                 4 
                 0 
                 −2 
                 6 
                 2 
               
               
                   
                 data_092 
                 −3 
                 0 
                 4 
                 7 
                 1 
               
               
                   
                 data_093 
                 −3 
                 1 
                 3 
                 7 
                 1 
               
               
                   
                 data_094 
                 −3 
                 2 
                 2 
                 7 
                 1 
               
               
                   
                 data_095 
                 −3 
                 3 
                 1 
                 7 
                 1 
               
               
                   
                 data_096 
                 −3 
                 4 
                 0 
                 7 
                 1 
               
               
                   
                 data_097 
                 −2 
                 −1 
                 4 
                 7 
                 1 
               
               
                   
                 data_098 
                 −2 
                 4 
                 −1 
                 7 
                 1 
               
               
                   
                 data_099 
                 −1 
                 −2 
                 4 
                 7 
                 1 
               
               
                   
                 data_100 
                 −1 
                 4 
                 −2 
                 7 
                 1 
               
               
                   
                 data_101 
                 0 
                 −3 
                 4 
                 7 
                 1 
               
               
                   
                 data_102 
                 0 
                 4 
                 −3 
                 7 
                 1 
               
               
                   
                 data_103 
                 1 
                 −3 
                 3 
                 7 
                 1 
               
               
                   
                 data_104 
                 1 
                 3 
                 −3 
                 7 
                 1 
               
               
                   
                 data_105 
                 2 
                 −3 
                 2 
                 7 
                 1 
               
               
                   
                 data_106 
                 2 
                 2 
                 −3 
                 7 
                 1 
               
               
                   
                 data_107 
                 3 
                 −3 
                 1 
                 7 
                 1 
               
               
                   
                 data_108 
                 3 
                 1 
                 −3 
                 7 
                 1 
               
               
                   
                 data_109 
                 4 
                 −3 
                 0 
                 7 
                 1 
               
               
                   
                 data_110 
                 4 
                 −2 
                 −1 
                 7 
                 1 
               
               
                   
                 data_111 
                 4 
                 −1 
                 −2 
                 7 
                 1 
               
               
                   
                 data_112 
                 4 
                 0 
                 −3 
                 7 
                 1 
               
               
                   
                 data_113 
                 −4 
                 0 
                 4 
                 8 
                 0 
               
               
                   
                 data_114 
                 −4 
                 1 
                 3 
                 8 
                 0 
               
               
                   
                 data_115 
                 −4 
                 2 
                 2 
                 8 
                 0 
               
               
                   
                 data_116 
                 −4 
                 3 
                 1 
                 8 
                 0 
               
               
                   
                 data_117 
                 −4 
                 4 
                 0 
                 8 
                 0 
               
               
                   
                 data_118 
                 −3 
                 −1 
                 4 
                 8 
                 0 
               
               
                   
                 data_119 
                 −3 
                 4 
                 −1 
                 8 
                 0 
               
               
                   
                 data_120 
                 −2 
                 −2 
                 4 
                 8 
                 0 
               
               
                   
                 data_121 
                 −2 
                 4 
                 −2 
                 8 
                 0 
               
               
                   
                 data_122 
                 −1 
                 −3 
                 4 
                 8 
                 0 
               
               
                   
                 data_123 
                 −1 
                 4 
                 −3 
                 8 
                 0 
               
               
                   
                 data_124 
                 0 
                 −4 
                 4 
                 8 
                 0 
               
               
                   
                 data_125 
                 0 
                 4 
                 −4 
                 8 
                 0 
               
               
                   
                 data_126 
                 1 
                 −4 
                 3 
                 8 
                 0 
               
               
                   
                 data_127 
                 1 
                 3 
                 −4 
                 8 
                 0 
               
               
                   
                 data_128 
                 2 
                 −4 
                 2 
                 8 
                 0 
               
               
                   
                 data_129 
                 2 
                 2 
                 −4 
                 8 
                 0 
               
               
                   
                 data_130 
                 3 
                 −4 
                 1 
                 8 
                 0 
               
               
                   
                 data_131 
                 3 
                 1 
                 −4 
                 8 
                 0 
               
               
                   
                 data_132 
                 4 
                 −4 
                 0 
                 8 
                 0 
               
               
                   
                 data_133 
                 4 
                 −3 
                 −1 
                 8 
                 0 
               
               
                   
                 data_134 
                 4 
                 −2 
                 −2 
                 8 
                 0 
               
               
                   
                 data_135 
                 4 
                 −1 
                 −3 
                 8 
                 0 
               
               
                   
                 data_136 
                 4 
                 0 
                 −4 
                 8 
                 0 
               
               
                   
                 data_137 
                 −3 
                 0 
                 5 
                 8 
                 2 
               
               
                   
                 data_138 
                 −3 
                 1 
                 4 
                 8 
                 2 
               
               
                   
                 data_139 
                 −3 
                 2 
                 3 
                 8 
                 2 
               
               
                   
                 data_140 
                 −3 
                 3 
                 2 
                 8 
                 2 
               
               
                   
                 data_141 
                 −3 
                 4 
                 1 
                 8 
                 2 
               
               
                   
                 data_142 
                 −3 
                 5 
                 0 
                 8 
                 2 
               
               
                   
                 data_143 
                 −2 
                 −1 
                 5 
                 8 
                 2 
               
               
                   
                 data_144 
                 −2 
                 5 
                 −1 
                 8 
                 2 
               
               
                   
                 data_145 
                 −1 
                 −2 
                 5 
                 8 
                 2 
               
               
                   
                 data_146 
                 −1 
                 5 
                 −2 
                 8 
                 2 
               
               
                   
                 data_147 
                 0 
                 −3 
                 5 
                 8 
                 2 
               
               
                   
                 data_148 
                 0 
                 5 
                 −3 
                 8 
                 2 
               
               
                   
                 data_149 
                 1 
                 −3 
                 4 
                 8 
                 2 
               
               
                   
                 data_150 
                 1 
                 4 
                 −3 
                 8 
                 2 
               
               
                   
                 data_151 
                 2 
                 −3 
                 3 
                 8 
                 2 
               
               
                   
                 data_152 
                 2 
                 3 
                 −3 
                 8 
                 2 
               
               
                   
                 data_153 
                 3 
                 −3 
                 2 
                 8 
                 2 
               
               
                   
                 data_154 
                 3 
                 2 
                 −3 
                 8 
                 2 
               
               
                   
                 data_155 
                 4 
                 −3 
                 1 
                 8 
                 2 
               
               
                   
                 data_156 
                 4 
                 1 
                 −3 
                 8 
                 2 
               
               
                   
                 data_157 
                 5 
                 −3 
                 0 
                 8 
                 2 
               
               
                   
                 data_158 
                 5 
                 −2 
                 −1 
                 8 
                 2 
               
               
                   
                 data_159 
                 5 
                 −1 
                 −2 
                 8 
                 2 
               
               
                   
                 data_160 
                 5 
                 0 
                 −3 
                 8 
                 2 
               
               
                   
                 data_161 
                 −4 
                 0 
                 5 
                 9 
                 1 
               
               
                   
                 data_162 
                 −4 
                 1 
                 4 
                 9 
                 1 
               
               
                   
                 data_163 
                 −4 
                 2 
                 3 
                 9 
                 1 
               
               
                   
                 data_164 
                 −4 
                 3 
                 2 
                 9 
                 1 
               
               
                   
                 data_165 
                 −4 
                 4 
                 1 
                 9 
                 1 
               
               
                   
                 data_166 
                 −4 
                 5 
                 0 
                 9 
                 1 
               
               
                   
                 data_167 
                 −3 
                 −1 
                 5 
                 9 
                 1 
               
               
                   
                 data_168 
                 −3 
                 5 
                 −1 
                 9 
                 1 
               
               
                   
                 data_169 
                 −2 
                 −2 
                 5 
                 9 
                 1 
               
               
                   
                 data_170 
                 −2 
                 5 
                 −2 
                 9 
                 1 
               
               
                   
                 data_171 
                 −1 
                 −3 
                 5 
                 9 
                 1 
               
               
                   
                 data_172 
                 −1 
                 5 
                 −3 
                 9 
                 1 
               
               
                   
                 data_173 
                 0 
                 −4 
                 5 
                 9 
                 1 
               
               
                   
                 data_174 
                 0 
                 5 
                 −4 
                 9 
                 1 
               
               
                   
                 data_175 
                 1 
                 −4 
                 4 
                 9 
                 1 
               
               
                   
                 data_176 
                 1 
                 4 
                 −4 
                 9 
                 1 
               
               
                   
                 data_177 
                 2 
                 −4 
                 3 
                 9 
                 1 
               
               
                   
                 data_178 
                 2 
                 3 
                 −4 
                 9 
                 1 
               
               
                   
                 data_179 
                 3 
                 −4 
                 2 
                 9 
                 1 
               
               
                   
                 data_180 
                 3 
                 2 
                 −4 
                 9 
                 1 
               
               
                   
                 data_181 
                 4 
                 −4 
                 1 
                 9 
                 1 
               
               
                   
                 data_182 
                 4 
                 1 
                 −4 
                 9 
                 1 
               
               
                   
                 data_183 
                 5 
                 −4 
                 0 
                 9 
                 1 
               
               
                   
                 data_184 
                 5 
                 −3 
                 −1 
                 9 
                 1 
               
               
                   
                 data_185 
                 5 
                 −2 
                 −2 
                 9 
                 1 
               
               
                   
                 data_186 
                 5 
                 −1 
                 −3 
                 9 
                 1 
               
               
                   
                 data_187 
                 5 
                 0 
                 −4 
                 9 
                 1 
               
               
                   
                 data_188 
                 −5 
                 0 
                 5 
                 10 
                 0 
               
               
                   
                 data_189 
                 −5 
                 1 
                 4 
                 10 
                 0 
               
               
                   
                 data_190 
                 −5 
                 2 
                 3 
                 10 
                 0 
               
               
                   
                 data_191 
                 −5 
                 3 
                 2 
                 10 
                 0 
               
               
                   
                 data_192 
                 −5 
                 4 
                 1 
                 10 
                 0 
               
               
                   
                 data_193 
                 −5 
                 5 
                 0 
                 10 
                 0 
               
               
                   
                 data_194 
                 −4 
                 −1 
                 5 
                 10 
                 0 
               
               
                   
                 data_195 
                 −4 
                 5 
                 −1 
                 10 
                 0 
               
               
                   
                 data_196 
                 −3 
                 −2 
                 5 
                 10 
                 0 
               
               
                   
                 data_197 
                 −3 
                 5 
                 −2 
                 10 
                 0 
               
               
                   
                 data_198 
                 −2 
                 −3 
                 5 
                 10 
                 0 
               
               
                   
                 data_199 
                 −2 
                 5 
                 −3 
                 10 
                 0 
               
               
                   
                 data_200 
                 −1 
                 −4 
                 5 
                 10 
                 0 
               
               
                   
                 data_201 
                 −1 
                 5 
                 −4 
                 10 
                 0 
               
               
                   
                 data_202 
                 0 
                 −5 
                 5 
                 10 
                 0 
               
               
                   
                 data_203 
                 0 
                 5 
                 −5 
                 10 
                 0 
               
               
                   
                 data_204 
                 1 
                 −5 
                 4 
                 10 
                 0 
               
               
                   
                 data_205 
                 1 
                 4 
                 −5 
                 10 
                 0 
               
               
                   
                 data_206 
                 2 
                 −5 
                 3 
                 10 
                 0 
               
               
                   
                 data_207 
                 2 
                 3 
                 −5 
                 10 
                 0 
               
               
                   
                 data_208 
                 3 
                 −5 
                 2 
                 10 
                 0 
               
               
                   
                 data_209 
                 3 
                 2 
                 −5 
                 10 
                 0 
               
               
                   
                 data_210 
                 4 
                 −5 
                 1 
                 10 
                 0 
               
               
                   
                 data_211 
                 4 
                 1 
                 −5 
                 10 
                 0 
               
               
                   
                 data_212 
                 5 
                 −5 
                 0 
                 10 
                 0 
               
               
                   
                 data_213 
                 5 
                 −4 
                 −1 
                 10 
                 0 
               
               
                   
                 data_214 
                 5 
                 −3 
                 −2 
                 10 
                 0 
               
               
                   
                 data_215 
                 5 
                 −2 
                 −3 
                 10 
                 0 
               
               
                   
                 data_216 
                 5 
                 −1 
                 −4 
                 10 
                 0 
               
               
                   
                 data_217 
                 5 
                 0 
                 −5 
                 10 
                 0 
               
               
                   
                 data_218 
                 −4 
                 1 
                 5 
                 10 
                 2 
               
               
                   
                 data_219 
                 −4 
                 2 
                 4 
                 10 
                 2 
               
               
                   
                 data_220 
                 −4 
                 3 
                 3 
                 10 
                 2 
               
               
                   
                 data_221 
                 −4 
                 4 
                 2 
                 10 
                 2 
               
               
                   
                 data_222 
                 −4 
                 5 
                 1 
                 10 
                 2 
               
               
                   
                 data_223 
                 1 
                 −4 
                 5 
                 10 
                 2 
               
               
                   
                 data_224 
                 1 
                 5 
                 −4 
                 10 
                 2 
               
               
                   
                 data_225 
                 2 
                 −4 
                 4 
                 10 
                 2 
               
               
                   
                 data_226 
                 2 
                 4 
                 −4 
                 10 
                 2 
               
               
                   
                 data_227 
                 3 
                 −4 
                 3 
                 10 
                 2 
               
               
                   
                 data_228 
                 3 
                 3 
                 −4 
                 10 
                 2 
               
               
                   
                 data_229 
                 4 
                 −4 
                 2 
                 10 
                 2 
               
               
                   
                 data_230 
                 4 
                 2 
                 −4 
                 10 
                 2 
               
               
                   
                 data_231 
                 5 
                 −4 
                 1 
                 10 
                 2 
               
               
                   
                 data_232 
                 5 
                 1 
                 −4 
                 10 
                 2 
               
               
                   
                 data_233 
                 −5 
                 1 
                 5 
                 11 
                 1 
               
               
                   
                 data_234 
                 −5 
                 2 
                 4 
                 11 
                 1 
               
               
                   
                 data_235 
                 −5 
                 3 
                 3 
                 11 
                 1 
               
               
                   
                 data_236 
                 −5 
                 4 
                 2 
                 11 
                 1 
               
               
                   
                 data_237 
                 −5 
                 5 
                 1 
                 11 
                 1 
               
               
                   
                 data_238 
                 1 
                 −5 
                 5 
                 11 
                 1 
               
               
                   
                 data_239 
                 1 
                 5 
                 −5 
                 11 
                 1 
               
               
                   
                 data_240 
                 2 
                 −5 
                 4 
                 11 
                 1 
               
               
                   
                 data_241 
                 2 
                 4 
                 −5 
                 11 
                 1 
               
               
                   
                 data_242 
                 3 
                 −5 
                 3 
                 11 
                 1 
               
               
                   
                 data_243 
                 3 
                 3 
                 −5 
                 11 
                 1 
               
               
                   
                 data_244 
                 4 
                 −5 
                 2 
                 11 
                 1 
               
               
                   
                 data_245 
                 4 
                 2 
                 −5 
                 11 
                 1 
               
               
                   
                 data_246 
                 5 
                 −5 
                 1 
                 11 
                 1 
               
               
                   
                 data_247 
                 5 
                 1 
                 −5 
                 11 
                 1 
               
               
                   
                 data_248 
                 −5 
                 2 
                 5 
                 12 
                 2 
               
               
                   
                 data_249 
                 −5 
                 3 
                 4 
                 12 
                 2 
               
               
                   
                 data_250 
                 −5 
                 4 
                 3 
                 12 
                 2 
               
               
                   
                 data_251 
                 −5 
                 5 
                 2 
                 12 
                 2 
               
               
                   
                 data_252 
                 2 
                 −5 
                 5 
                 12 
                 2 
               
               
                   
                 data_253 
                 2 
                 5 
                 −5 
                 12 
                 2 
               
               
                   
                 data_254 
                 3 
                 −5 
                 4 
                 12 
                 2 
               
               
                   
                 data_255 
                 3 
                 4 
                 −5 
                 12 
                 2 
               
               
                   
                 control_0 
                 4 
                 −5 
                 3 
                 12 
                 2 
               
               
                   
                 control_1 
                 4 
                 3 
                 −5 
                 12 
                 2 
               
               
                   
                 control_2 
                 5 
                 −5 
                 2 
                 12 
                 2 
               
               
                   
                 control_3 
                 5 
                 2 
                 −5 
                 12 
                 2 
               
               
                   
                 BIT 
                 2 
                 0 
                 0 
                 2 
                 2 
               
               
                   
                   
               
             
          
         
       
     
         [0113]    Each entry in Table 2 comprises four parts: the value of the data/control/BIT word in decimal; the values of the three undenary (base-eleven) symbols (UA, UB, and UC) which together form the symbol triplet for that data/control/BIT word; the ‘Energy’ of that encoded value, and the ‘Weight’ (DC residual) associated with that encoded value. The energy is derived for each encoded value by summing the absolute (unsigned) values of the individual undenary symbols making up that encoded value. The DC residual is derived for each encoded value by summing the unsigned values of the individual undenary symbols making up that encoded value. Thus, the undenary code word for the data word having decimal value 179 (data — 179) is the triplet of symbols (3, −4, 2), and the associated energy and weight (DC residual) is 9 and 1, respectively. 
         [0114]    The weight is significant in relation to the desirability of maintaining DC balance on a twisted-pair conductor, to avoid sustained presence of voltage offsets on the conductor. The presence of such offsets for extended periods causes difficulties in systems using transformer coupling and must therefore be avoided. The weight for each encoded value is used to keep such offsets within predetermined limits. 
         [0115]    Table 2 was constructed as follows. First, all 3-digit base-11 numbers are listed in a spreadsheet. Next, they are converted into voltage level triplets where ‘−5’ corresponds to digit ‘0’, ‘−4’ corresponds to digit ‘1’, etc. The DC residual is calculated by summing each value of the voltage level triplet. 
         [0116]    The voltage level triplets are then sorted by DC residual. Triplets having either a DC residual with a magnitude greater than two (&gt;2) are eliminated. Note that the negative residuals are not separately listed in Table 2, but are dependent upon the present value of a running digital sum (RDS) 
         [0117]    The triplet symbol energy is computed by summing the absolute values of each of voltage level triplet. The following seven low energy symbols that do not have a zero crossing: (0,0,0), (0,0,1), (0,1,0), (1,0,), (0,1,1), (1,0,1), and (1,1,0) are also eliminated from the Table. 
         [0118]    Advantageously, this leaves exactly two hundred sixty one (261) remaining symbols, where one hundred seven one (171) have two variants and ninety (90) have a single variant. Finally, reserve a built-in-test (BIT) symbol that aligns with the pixel frame (first variant is: 2,0,0), and is therefore reserved for that purpose. 
         [0119]    The remaining symbols are numbered in order with the lowest energy symbol corresponding to the lowest pixel intensity and with the control symbols following the data symbols. Higher energy symbols will create more undesirable electromagnetic interference than lower level symbols as taught in Deloit (U.S. Pat. No. 6,052,390) at column 12, lines 32-48. 
         [0120]    The 8/2/1B:3U encoder  21  contains a counter which maintains a running digital sum (RDS) of the weights of all transmitted code words. As each successive data/control/BIT word is encoded, it&#39;s associated weight as listed in Table 2 (and whether its weight is greater than zero or not) is compared with this cumulative sum. If the cumulative sum is positive and the weight of the code word is nonzero, the code word (and thus its weight) is inverted. For example, the code word for the data word having decimal value 179 (data — 179) would in this case become the triplet (−3, 4, −2), with a weight of −1. 
         [0121]    An advantageous property of the code defined by Table 2 is that the weight of any code word is constrained to be less than or equal to two (2). This constraint on code word weight further assists in minimizing voltage offsets on the conductor. 
         [0122]      FIG. 3  shows waveforms which would appear when the data word having a value of 179 (data — 179) is transmitted over the traditional TMDS physical layer  31  and the inventive undenary physical layer  33  of the present invention. As a reference, the clock signal  32  used with the present invention is the same as that used in the TMDS physical layer.  FIG. 3  clearly shows they lower symbol clock of the present invention (e.g. 3× the pixel clock) as compared with the TMDS data symbol clock (e.g. 10× the pixel clock). 
         [0123]    The encoder  21  and decoder  27  may be implemented, for example, using look-up tables held in read-only memory or using digital logic circuitry. Alternatively they may be implemented using stored program instructions to control the operation of a processor to derive the required values from logical formulae defining the required properties of the encoding. 
         [0124]      FIG. 4  illustrates the encoding method, for an 8/2/1B:3U encoder, in accordance with the present invention. First, the TMDS input set is read (step  41 ) into the encoder, where this input set includes: a TMDS “Data Enable” signal, two TMDS control signals, “[C 1 :C 0 ]”, and eight TMDS data signals, “[D 7 :D 0 ]”. Next, if the BIT signal is not set (e.g. logic ‘0’) then the input set is encoded (step  42 ) into a data block of three undenary (base-11) symbols, selected from a predetermined group of allowable data blocks in accordance with a code, such as that listed in Table 2. Finally, the data block of three undenary (base-11) symbols is output (step  43 ) as a sequence of analog voltage levels that are synchronized with the TMDS pixel clock  100  (shown in  FIG. 2 ). When the BIT signal is set (e.g. logic ‘1’), then a special data block of three undenary (base-11) symbols is output. 
         [0125]      FIG. 5  illustrates the decoding method, for a 3U:8/2/1B encoder, in accordance with the present invention. First, a sequence of analog voltage levels, that are synchronized with the TMDS pixel clock  100  (shown in  FIG. 2 ) and represent a data block of three undenary symbols, is accepted as an input (step  51 ). Next, the data block of three undenary (base-11) symbols is decoded (step  52 ), in accordance with a code such as that shown in Table 2, into a BIT output signal and a TMDS output set consisting of a TMDS “Data Enable” signal, two TMDS control signals, “[C 1 :C 0 ]”, and eight TMDS data signals, “[D 7 :D 0 ]”. Finally, the TMDS output set is written out (step  53 ). When the BIT data block is decoded, a BIT signal is written out (step  54 ). 
         [0126]    It will be obvious to a person skilled in the art, given the encodings defined by Table 2, that additional encodings having the same properties may be derived therefrom by simple invariance transformations. For example, an alternate encoding table can be created using the same set of ‘values’ and the same set of ‘symbol blocks’ as in Table 2, but where this alternate table has one-to-one matching between the ‘values’ and the ‘symbol blocks’ that differs from Table 2. 
         [0127]    Finally refer to  FIG. 6  which depicts a digital video interface in accordance with one illustrative embodiment of the present invention and summarizes the above description. As illustrated, a video source  61  is transmitting a single color pixel having an RGB value (0, 127, 255), which corresponds to a ‘dark sky blue’ color to a video sink  62 . The RGB pixel value is transmitted as three groups of three multilevel symbols per group. A pixel clock signal  601 , running at one-third the symbol rate, is transferred as a bi-level digital voltage between the undenary transmitter  64  and the undenary receiver  65 , such as by using a Cat-5e unshielded twisted wire pair. 
         [0128]    The Red video value for the dark sky blue pixel is ‘0’, which corresponds to the undenary symbol triplet (−1, 0, 1) according to Table 2. The first red-value multilevel symbol  611  (UA), the second red-value multilevel symbol  612  (UB), and the third first red-value multilevel symbol  613  (UA), are transferred as a vary-leveling analog voltage between the undenary transmitter  64  and the undenary receiver  65 , such as by using a Cat-5e unshielded twisted wire pair. 
         [0129]    The Green video value for the dark sky blue pixel is ‘127’, which corresponds to the undenary symbol triplet (1, 3, −4) according to Table 2. The first blue-value multilevel symbol  621  (UA), the second blue-value multilevel symbol  622  (UB), and the third first blue-value multilevel symbol  623  (UA), are transferred as a vary-leveling analog voltage between the undenary transmitter  64  and the undenary receiver  65 , such as by using a Cat-5e unshielded twisted wire pair. 
         [0130]    The Blue video value for the dark sky blue pixel is ‘255’, which corresponds to the undenary symbol triplet (3, 4, −5) according to Table 2. The first green-value multilevel symbol  621  (UA), the second green-value multilevel symbol  622  (UB), and the third first green-value multilevel symbol  623  (UA), are transferred as a vary-leveling analog voltage between the undenary transmitter  64  and the undenary receiver  65 , such as by using a Cat-5e unshielded twisted wire pair. 
         [0131]    In one embodiment, the video source  61  provides the same input data set that is used in a traditional TMDS interface to the undenary transmitter  64 . In this embodiment, the undenary receiver provides the same output data set to the video sink  62  as a traditional TMDS interface. Advantageously, the digital video can be built as a pin-compatible replacement for interfaces that are presently available and is compatible with high definition content protection (HDCP). 
       INDUSTRIAL APPLICABILITY 
       [0132]    To solve the aforementioned problems, the present invention is a unique system that allows for extending high-definition television cables by transmitting serial multi-level pixel data at a lower symbol rate than required for a bi-level (binary) symbol. 
       LIST OF ACRONYMS USED IN THE DETAILED DESCRIPTION OF THE INVENTION 
       [0133]    The following is a list of the acronyms used in the specification in alphabetical order. 
         [0134]    ADC analog to digital converter 
         [0135]    B blue 
         [0136]    BIT built-in-test 
         [0137]    C clock (frequency) 
         [0138]    C 1 :C 0  two control bits (C 1  is most significant) 
         [0139]    d data (value) 
         [0140]    DAC digital to analog converter 
         [0141]    DC direct current 
         [0142]    DE data enable (TMDS signal) 
         [0143]    DVI digital visual interface 
         [0144]    D 7 :D 0  eight bits of data (D 7  is most significant) 
         [0145]    EMI electromagnetic interference 
         [0146]    G green 
         [0147]    G bps gigabit per second 
         [0148]    GHz gigahertz 
         [0149]    HDCP high definition content protection 
         [0150]    HMDI high definition multimedia interface 
         [0151]    MHz megahertz 
         [0152]    PAM pulse amplitude modulation 
         [0153]    PAM-4 four-level pulse amplitude modulation 
         [0154]    PAM-5 five-level pulse amplitude modulation 
         [0155]    PAM-11 eleven-level pulse amplitude modulation 
         [0156]    R red 
         [0157]    RDS running digital sum 
         [0158]    RGB red-green-blue (video data) 
         [0159]    TMDS transition minimized differential signaling 
         [0160]    UA base-eleven symbol (most significant symbol in the group ABC) 
         [0161]    UB base-eleven symbol (middle symbol in the group ABC) 
         [0162]    UC base-eleven symbol (least significant symbol in the group ABC) 
         [0163]    UTP unshielded twisted pairs 
         [0164]    3U:8/2/1B three-symbol undenary (base-eleven) to eight-symbol, alternatively two-symbol, and alternatively one-symbol binary (base-two) 
         [0165]    8/2B:10B eight-symbol, alternatively two-symbol, binary (base-two) to ten-symbol binary (base-two) 
         [0166]    8/2/1B:3U eight-symbol, alternatively two-symbol, and alternatively one-symbol binary (base-two) to three-symbol undenary (base-eleven) 
         [0167]    10B:8/2B ten-symbol binary (base-two) to eight-symbol, alternatively two-symbol, binary (base-two) 
       ALTERNATE EMBODIMENTS 
       [0168]    Alternate embodiments may be devised without departing from the spirit or the scope of the invention. For example, a sixteen level symbol could be used to represent the eleven level data code shown herein to take advantage of commercially available flash 4-bit analog to digital converters as well as to allow for tuning energy and DC residual levels.