WO1998027699A1 - Multilevel coding - Google Patents

Multilevel coding Download PDF

Info

Publication number
WO1998027699A1
WO1998027699A1 PCT/US1997/022645 US9722645W WO9827699A1 WO 1998027699 A1 WO1998027699 A1 WO 1998027699A1 US 9722645 W US9722645 W US 9722645W WO 9827699 A1 WO9827699 A1 WO 9827699A1
Authority
WO
WIPO (PCT)
Prior art keywords
input value
encoded
output levels
output
levels
Prior art date
Application number
PCT/US1997/022645
Other languages
French (fr)
Inventor
Glenn A. Emelko
Original Assignee
Vidicast, Ltd.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Vidicast, Ltd. filed Critical Vidicast, Ltd.
Priority to MXPA99005610A priority Critical patent/MXPA99005610A/en
Priority to AU55212/98A priority patent/AU5521298A/en
Priority to CA002275185A priority patent/CA2275185A1/en
Priority to BR9713729-4A priority patent/BR9713729A/en
Priority to JP52780498A priority patent/JP2001506448A/en
Priority to EP97951619A priority patent/EP1018251A1/en
Publication of WO1998027699A1 publication Critical patent/WO1998027699A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/08Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/38Synchronous or start-stop systems, e.g. for Baudot code
    • H04L25/40Transmitting circuits; Receiving circuits
    • H04L25/49Transmitting circuits; Receiving circuits using code conversion at the transmitter; using predistortion; using insertion of idle bits for obtaining a desired frequency spectrum; using three or more amplitude levels ; Baseband coding techniques specific to data transmission systems
    • H04L25/4917Transmitting circuits; Receiving circuits using code conversion at the transmitter; using predistortion; using insertion of idle bits for obtaining a desired frequency spectrum; using three or more amplitude levels ; Baseband coding techniques specific to data transmission systems using multilevel codes
    • H04L25/4919Transmitting circuits; Receiving circuits using code conversion at the transmitter; using predistortion; using insertion of idle bits for obtaining a desired frequency spectrum; using three or more amplitude levels ; Baseband coding techniques specific to data transmission systems using multilevel codes using balanced multilevel codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L27/00Modulated-carrier systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/025Systems for the transmission of digital non-picture data, e.g. of text during the active part of a television frame

Definitions

  • the present invention relates generally to a system for encoding data. More particularly, the present invention relates to a system for encoding data which allows higher data transmission rates and conserves bandwidth, and provides self-synchronization.
  • UARTs convert parallel data (usually eight-bit words) to a serial data stream for transmission over a single wire cable and simultaneously convert a received serial bit stream to parallel words.
  • the serial data stream is comprised of a signal having two voltage levels, one representing a digital "0,” the other representing a digital "1.”
  • data has been encoded into complex waveforms such as tones, which are then phase, frequency and amplitude modulated.
  • data has been encoded using RF (Radio Frequency) modulation, QAM (Quadrature Amplitude Modulation), ASK (Amplitude Shift Keying), PSK (Phase Shift Keying), FSK (Frequency Shift Keying), TCM (Trellis Coded Modulation) and QPSK (Quadrature Phase Shift Keying). All of the foregoing methods encode data into AC waveforms for transmission.
  • the present invention overcomes the data transfer rate limitations of the prior art encoding systems, and provides a system for encoding multiple data bits in parallel as transitions between discrete levels. This encoding system will substantially increase the data transfer rate and conserve bandwidth within a medium which is capable of supporting discrete levels.
  • a method for encoding data that includes the steps of receiving a plurality of input values to be encoded, wherein each input value may be one of N different input values; establishing at least N+ 1 output levels, and transitioning from one of said at least N+ 1 output levels to another of said at least N+ l output levels, each transition representing one of the N different input values.
  • a system for encoding data which comprises means for establishing at least N+ l output levels, wherein each transition from one output level to another output level represents an encoded input value; means for receiving a plurality of input values to be encoded, wherein each of the input values may be one of N different input values; and means for transitioning from one of the at least N+ l output levels to another of the at least N+ l output levels for each consecutively received input value.
  • a method for encoding and decoding data that includes the steps of establishing N+ l voltage levels, wherein each transition from one voltage level to another voltage level represents an encoded input value; receiving a plurality of input values to be encoded, wherein each input value is one of N different input values, which represent log 2 (N) bits; transitioning from one of the N+ l voltage levels to another of the N+ l voltage levels for each consecutively received input value; and decoding the output level into an input value according to a set of rules determined by both the output level currently being decoded and one or more output levels previously decoded.
  • a system for decoding data comprised of transition detection means for detecting a transition from a first of N + 1 output levels to a second of N+ l output levels; decoding means for decoding an output level to an input value in response to the detection of a transition from the first of N+ 1 output levels to the second of N + 1 output levels, which decodes the output level to the input value in accordance with the output level currently being decoded and at least one of the output levels previously decoded; and storage means for storing the input value decoded by the decoding means. It is an object of the present invention to provide a data encoding system which achieves greater data transfer rates, without using higher clocking rates to carry the data.
  • FIG. 1 is a state diagram for encoding two different input values into three output levels, according to a preferred embodiment of the present invention
  • FIG. 2 is a state diagram for encoding three different input values into four output levels, according to a preferred embodiment of the present invention
  • FIG. 3 is a state diagram for encoding four different input values into five output levels, according to a preferred embodiment of the present invention
  • FIG. 4 is a timing diagram illustrating the encoding of four different input values according to the state diagram shown in FIG. 3;
  • FIG. 5 is a flow chart illustrating a preferred embodiment of the algorithm for encoding the input values according to the state diagram shown in FIG. 3;
  • FIG. 6 is a flow chart illustrating a preferred embodiment of the algorithm for decoding output levels into input values;
  • FIG. 7 is a timing diagram illustrating the encoding of four different input values
  • FIG. 8 is a block diagram of the hardware arrangement for implementing the encoding algorithm according to a preferred embodiment of the present invention.
  • FIG. 9 is a block diagram of the hardware arrangement for implementing the decoding algorithm according to a preferred embodiment of the present invention.
  • FIG. 1 shows a state diagram 20 illustrating the transition between states for encoding two different input values (i.e., "0" and "1") into three output levels (i.e., output levels A, B and C), according to a preferred embodiment of the present invention.
  • FIG. 2 shows a state diagram 30 illustrating the transition between states for encoding three input values (i.e., "0,” “1” and “2") into four output levels (i.e., output levels A, B, C and D), according to a preferred embodiment of the present invention.
  • FIG. 3 shows a state diagram 40 illustrating the transitions between states for the encoding of four input values (i.e., "0,” “1,” “2” and “3") into five output levels (i.e., output levels A, B, C, D and E), according to a preferred embodiment of the present invention. It should be appreciated that since there are four input values, each input value may represent a bit pair (i.e., "00,” “01,” “10,” and “11”).
  • each output level will represent two bits, rather than one bit, as in conventional encoding systems.
  • each input value can represent log 2 (N) bits.
  • the input values encode base 2 data (i.e., log 2 (N) bits) the input values may also encode base X data. Therefore, the input values may represent values O through X-l in base X with the encoded output having at least X different output levels. It should also be understood that there may be more than N+ l output levels and transitions thereof for encoding N different input values. This allows for simplified implementation of various error detection and correction methods.
  • FIG. 4 provides a timing diagram 50 which shows the transition of the output levels as each input value is encoded.
  • each input value represents a bit pair.
  • input value "0" represents bit pair “00”
  • input value "1” represents bit pair “01”
  • input value "2” represents bit pair “10”
  • input value "3” represents bit pair "11.”
  • each consecutive output level will be different.
  • Each output level A thru E is a discreet voltage level. For instance, output levels A thru E may correspond to voltages in the range of 0 to 5 volts.
  • the input values shown in FIG. 4 are encoded into output levels A thru E according to the algorithm shown in flow chart 60 of FIG. 5. Beginning with step
  • a FIRST flag is set to TRUE. This will indicate that this is the first input value to be encoded.
  • an input value will be read in.
  • step 66 it is determined whether the input value is the first input value to be encoded, by determining the status of the FIRST flag. If the input value is the first input value to be encoded, a first set of rules (steps 70-76) will be applied. If the input value is not the first input value to be encoded, it will be determined whether a second set of rules (steps 80-86) should be applied, as will be discussed below. For instance, in FIG. 4, the first input value is a "0" (corresponding to bit pair "00").
  • step 70 will be executed.
  • the output level will be set to A and the
  • LAST variable will be set to "0."
  • the LAST variable is used as a reference value to determine the appropriate set of rules to be applied following the first input value, as will be described below in connection with step 68.
  • step 90 sets the FIRST flag to FALSE for the subsequent input values.
  • the algorithm then returns to step 64 to read in the next input value. In FIG. 4, the next consecutive input value is a "1.” Since the FIRST flag is now set to FALSE, the algorithm will proceed from step 66 to step 68.
  • step 68 it is determined whether the input value is less than the LAST variable. This step determines whether the first set of rules (steps 70-76) should be applied or whether the second set of rules (steps 80-86) should be applied.
  • the algorithm will apply the second set of rules (steps 80-86). Since the input value is "1," step 82 will be executed. Step 82 sets the output level to C and the LAST variable to 2. The algorithm then proceeds to step 90 and returns again to step 64 for reading in the next consecutive input value. The algorithm will continue in this manner until all of the input values have been encoded as output levels.
  • the output level of the preceding encoded input value will determine the output level for the next consecutive encoded input value.
  • the next consecutive input value will be encoded as one of the four remaining output levels.
  • each of the 3's will be encoded as different output levels.
  • the output level is E
  • the second 3 is encoded as output level D. Since no consecutive output level will be the same, the output levels will transition for each consecutive encoded input value.
  • step 102 the FIRST flag is set to TRUE indicating that this is the first output level to be decoded.
  • the output level is read in.
  • step 120 the LAST variable will be set to the input value.
  • the LAST variable is used to determine if an input value needs to be modified, as will be explained in connection with step 118. Proceeding next to step 122, the FIRST flag is set to FALSE for reading subsequent output levels. At step 124, the input value is stored. The algorithm now returns to step 104, to read in the next consecutive output level. After evaluating the output level at steps 106-114, if the FIRST flag is no longer true (step 116), the algorithm proceeds to step 1.18. At step 118, it is determined whether the input value (obtained at one of the steps 106-114) is greater than the LAST variable.
  • the input value is modified by decrementing it by one. If the input value is not greater than the LAST variable, then the input value is not modified. The algorithm then proceeds to step 120, where the LAST variable is set equal to the present input value, and step 122. At step 124, the input value is stored. The algorithm then returns to step 104 to read in the next consecutive output level. The algorithm will continue in this manner until all of the output levels have been decoded back to the original input values. As noted above, each consecutive output level in the encoded waveform will be different, and thus necessitate a transition. As a result, the decoding system will not require an external clocking signal to synchronize with th 2 encoded waveform.
  • the decoding system is self-synchronizing with the encoded waveform by using the transition of each consecutive output level as the indicator that a new output level has been received for decoding.
  • the decoder can be easily synchronized with an encoded waveform having a variable transmission speed.
  • FIGS. 4-6 show the implementation of only five output levels, the number of output levels may be significantly greater. As a result, the number of different input values may also be significantly greater. By increasing the number of output levels and input values, the number of bits represented by each input value can also be increased. Accordingly, as noted above, the present invention can be used to substantially increase the data transfer rate and conserve bandwidth.
  • FIGS. 4-6 illustrate a fixed timing relationship between one output level and the next solely for the purpose of illustrating the present invention.
  • the time scale itself is completely arbitrary, and the time required to transition from one output level to another is also completely arbitrary. Accordingly, it should be understood that the present invention can maximize the use of available bandwidth by varying the timing relationship from one transition to another. For example, in a bandwidth limited transmission medium, a change from one output level to a nearby output level, such as from A to B, will stabilize quickly, whereas a change from one output level to a distant output level, such as from A to E, will take longer to stabilize.
  • FIG. 7 provides a timing diagram 160 which shows the timing where stabilization of the transitions varies depending upon the relative difference between consecutive output levels.
  • the time for a single level change takes approximately half the time needed for a change of two levels (e.g., B to D).
  • Arrangement 130 is generally comprised of a buffer 132, encoding logic 134, and a digital-to-analog converter 136.
  • buffer 132 is a FIFO chip for buffering the received data.
  • buffer 132 may take the form of a Cyprus Semiconductor CY7C464.
  • Encoding logic 134 is programmed to implement the algorithm in the manner as described in connection with FIG. 5.
  • encoding logic 134 takes the form of an EPLD device, such as the Altera
  • Digital-to-analog converter 136 may take the form of an 8-bit video
  • Arrangement 130 operates in the following manner. Unencoded data is stored in buffer 132. The unencoded data are input values which may represent one or more bits. Encoding logic 134 reads out the unencoded data and encodes it into output levels transitions which are sent to digital-to-analog converter 136. It should be appreciated that the analog coded data may be transmitted using a variety of different mediums, including a television signal. For instance, encoded data may be transmitted during the active video portion of the television signal. Accordingly, large quantities of data can be quickly and conveniently transferred. Referring now to FIG. 7, there is shown a block diagram of hardware arrangement 150 for decoding output levels transitions into input values.
  • Arrangement 150 is generally comprised of an analog- to-digital converter 152, a buffer 154 and decoding logic 156.
  • Analog-to-digital converter 152 is preferably an 8-bit video ADC, such as Phillips TDA8708B.
  • buffer 154 is a FIFO chip for buffering the digital data.
  • buffer 154 may take the form of a Cyprus Semiconductor CY7C464.
  • Decoding logic 156 is programmed to implement the algorithm in the manner as described in connection with FIG. 6.
  • decoding logic 156 takes the form of an EPLD device, such as the Altera EPM7096S.
  • Arrangement 150 operates in the following manner.
  • Analog-to-digital converter 152 receives the encoded output levels and converts them to digital data.
  • Buffer 154 stores the digital data.
  • Decoding logic 156 reads out the digital data from buffer 154 and decodes the encoded output level transitions into input values. These input values in turn may be converted to one or more bits.
  • an encoder having ten output levels might produce a step of one of four levels per each transition, encoding two bits at a time, but reducing the needed bandwidth of the channel. It is intended that all such modifications and alterations be included insofar as they come within the scope of the invention as claimed or the equivalents thereof.

Abstract

A multilevel to multilevel conversion system in which a N-level symbol (0, 1) is converted into a N+1-level (A, B, C) such that a transition between two of the N+1-level output symbols represents one of the N-level input symbols. The multilevel encoding system allows for increased data transfer rates and provides self synchronization for decoding.

Description

MULΗLEVEL CODING
Field of the Invention The present invention relates generally to a system for encoding data. More particularly, the present invention relates to a system for encoding data which allows higher data transmission rates and conserves bandwidth, and provides self-synchronization.
Background of the Invention Prior art data encoding methods for encoding digital information have used two voltage levels, where each voltage level represents a single bit. In this respect, a first voltage level represents a digital value "0," while a second voltage level represents a digital value "1." As a result, a set of eight of these voltage levels is needed to encode one byte of digital data. Data bytes are encoded into changing voltages and decoded back into bytes. This is done by using a commonly available electronic device which is generically referred to as a UART (Universal Asyncronous Receiver Transmitter) or an ACIA (Asyncronous Communications Interface Adapter). UARTs convert parallel data (usually eight-bit words) to a serial data stream for transmission over a single wire cable and simultaneously convert a received serial bit stream to parallel words. The serial data stream is comprised of a signal having two voltage levels, one representing a digital "0," the other representing a digital "1."
In many cases, the data rate achievable by UARTs and ACIAs is insufficient for the desired application. In order to achieve greater data rates for high-speed communications, data has been encoded into complex waveforms such as tones, which are then phase, frequency and amplitude modulated. For instance, data has been encoded using RF (Radio Frequency) modulation, QAM (Quadrature Amplitude Modulation), ASK (Amplitude Shift Keying), PSK (Phase Shift Keying), FSK (Frequency Shift Keying), TCM (Trellis Coded Modulation) and QPSK (Quadrature Phase Shift Keying). All of the foregoing methods encode data into AC waveforms for transmission. The present invention overcomes the data transfer rate limitations of the prior art encoding systems, and provides a system for encoding multiple data bits in parallel as transitions between discrete levels. This encoding system will substantially increase the data transfer rate and conserve bandwidth within a medium which is capable of supporting discrete levels.
Summary of the Invention According to the present invention, there is provided a method for encoding data that includes the steps of receiving a plurality of input values to be encoded, wherein each input value may be one of N different input values; establishing at least N+ 1 output levels, and transitioning from one of said at least N+ 1 output levels to another of said at least N+ l output levels, each transition representing one of the N different input values. According to another aspect of the present invention, there is provided a system for encoding data which comprises means for establishing at least N+ l output levels, wherein each transition from one output level to another output level represents an encoded input value; means for receiving a plurality of input values to be encoded, wherein each of the input values may be one of N different input values; and means for transitioning from one of the at least N+ l output levels to another of the at least N+ l output levels for each consecutively received input value.
According to another aspect of the present invention, there is provided a method for encoding and decoding data that includes the steps of establishing N+ l voltage levels, wherein each transition from one voltage level to another voltage level represents an encoded input value; receiving a plurality of input values to be encoded, wherein each input value is one of N different input values, which represent log2(N) bits; transitioning from one of the N+ l voltage levels to another of the N+ l voltage levels for each consecutively received input value; and decoding the output level into an input value according to a set of rules determined by both the output level currently being decoded and one or more output levels previously decoded.
According to another aspect of the present invention, there is provided a system for decoding data comprised of transition detection means for detecting a transition from a first of N + 1 output levels to a second of N+ l output levels; decoding means for decoding an output level to an input value in response to the detection of a transition from the first of N+ 1 output levels to the second of N + 1 output levels, which decodes the output level to the input value in accordance with the output level currently being decoded and at least one of the output levels previously decoded; and storage means for storing the input value decoded by the decoding means. It is an object of the present invention to provide a data encoding system which achieves greater data transfer rates, without using higher clocking rates to carry the data.
It is another object of the present invention to provide a data encoding system which uses bandwidth more efficiently. It is yet another object of the present invention to provide a data encoding system which encodes a series of multiple data bits into a series of voltage levels. It is still another object of the present invention to provide a data encoding system which encodes a series of N input values (base N+ l) into a series of transitions between one of N+ 1 or more voltage levels. It is still another object of the present invention to provide a data encoding system which transmits the encoded data using a waveform which is inherently self-synchronizing, where transitions from one level to another level indicate that there is data to be decoded.
It is yet another object of the present invention to provide a system for decoding multi-level encoded data.
It is yet another object of the present invention to provide a data decoding system which decodes a series of N+ 1 or more voltage levels into N possible data values equaling the original N input values prior to encoding.
It is yet another object of the present invention to provide a data decoding system which does not require an external clocking signal for synchronization with an encoded waveform.
It is yet another object of the present invention to provide a data decoding system which self-synchronizes a decoder with an encoded waveform by reference to state transitions within a waveform, such as changes from one voltage level to another.
It is still another object of the present invention that allows for easy implementation of various error detection and correction methods by using more than N+ l output levels, and transitions thereof.
These and other objects will become apparent from the following description of a preferred embodiment taken together with the accompanying drawings and the appended claims. Brief Description of the Drawings
The above-mentioned and other features and objects of the invention and the manner of attaining them will become more apparent and the invention will be best understood by reference to the following description of an embodiment of the invention taken in conjunction with the accompanying drawings and appended claims, wherein:
FIG. 1 is a state diagram for encoding two different input values into three output levels, according to a preferred embodiment of the present invention;
FIG. 2 is a state diagram for encoding three different input values into four output levels, according to a preferred embodiment of the present invention; FIG. 3 is a state diagram for encoding four different input values into five output levels, according to a preferred embodiment of the present invention;
FIG. 4 is a timing diagram illustrating the encoding of four different input values according to the state diagram shown in FIG. 3;
FIG. 5 is a flow chart illustrating a preferred embodiment of the algorithm for encoding the input values according to the state diagram shown in FIG. 3; FIG. 6 is a flow chart illustrating a preferred embodiment of the algorithm for decoding output levels into input values;
FIG. 7 is a timing diagram illustrating the encoding of four different input values; FIG. 8 is a block diagram of the hardware arrangement for implementing the encoding algorithm according to a preferred embodiment of the present invention; and
FIG. 9 is a block diagram of the hardware arrangement for implementing the decoding algorithm according to a preferred embodiment of the present invention.
Detailed Description of the Preferred Embodiment The present invention is directed to a system for encoding N input values into at least N+ l output levels. In a preferred embodiment of the present invention, each output level is represented by a different voltage. However, it should be appreciated that each output level may also be represented by a different frequency, phase, or amplitude. Referring now to the drawings wherein the showings are for the purpose of illustrating a preferred embodiment of the invention only, and not for the purpose of limiting same, FIG. 1 shows a state diagram 20 illustrating the transition between states for encoding two different input values (i.e., "0" and "1") into three output levels (i.e., output levels A, B and C), according to a preferred embodiment of the present invention. For instance, beginning at state 22 (output level A), if the next input value is a "0," the system transitions to state 24 (output level B). In contrast, if the next input value is a "1," the system transitions to state 26 (output level C). The system will transition from one state to one of the other two remaining states as each consecutive input value is encoded. Importantly, it should be noted that no two consecutive input values will be encoded as the same output level.
FIG. 2 shows a state diagram 30 illustrating the transition between states for encoding three input values (i.e., "0," "1" and "2") into four output levels (i.e., output levels A, B, C and D), according to a preferred embodiment of the present invention. FIG. 3 shows a state diagram 40 illustrating the transitions between states for the encoding of four input values (i.e., "0," "1," "2" and "3") into five output levels (i.e., output levels A, B, C, D and E), according to a preferred embodiment of the present invention. It should be appreciated that since there are four input values, each input value may represent a bit pair (i.e., "00," "01," "10," and "11"). Therefore, each output level will represent two bits, rather than one bit, as in conventional encoding systems. Moreover, where N different input values are encoded into at least N+ l output levels, each input value can represent log2(N) bits. As a result of using a single input value to represent a plurality of bits, higher data transfer rates are achievable, and bandwidth can be conserved. It should be appreciated that while in a preferred embodiment of the present invention the input values encode base 2 data (i.e., log2(N) bits) the input values may also encode base X data. Therefore, the input values may represent values O through X-l in base X with the encoded output having at least X different output levels. It should also be understood that there may be more than N+ l output levels and transitions thereof for encoding N different input values. This allows for simplified implementation of various error detection and correction methods.
A detailed description of the present invention as applied to the encoding of four input values into five output levels, will now be described with reference to FIGS. 4 and 5. FIG. 4 provides a timing diagram 50 which shows the transition of the output levels as each input value is encoded. It should be appreciated that in the embodiment shown in FIG. 4, each input value represents a bit pair. For the purpose of illustration, input value "0" represents bit pair "00," input value "1" represents bit pair "01," input value "2" represents bit pair "10" and input value "3" represents bit pair "11." As can be seen from FIG. 4, each consecutive output level will be different. Each output level A thru E is a discreet voltage level. For instance, output levels A thru E may correspond to voltages in the range of 0 to 5 volts.
The input values shown in FIG. 4 are encoded into output levels A thru E according to the algorithm shown in flow chart 60 of FIG. 5. Beginning with step
62, a FIRST flag is set to TRUE. This will indicate that this is the first input value to be encoded. At step 64, an input value will be read in. Next, at step 66, it is determined whether the input value is the first input value to be encoded, by determining the status of the FIRST flag. If the input value is the first input value to be encoded, a first set of rules (steps 70-76) will be applied. If the input value is not the first input value to be encoded, it will be determined whether a second set of rules (steps 80-86) should be applied, as will be discussed below. For instance, in FIG. 4, the first input value is a "0" (corresponding to bit pair "00").
Accordingly, the conditions exist for applying the first set of rules. In particular, step 70 will be executed. In this respect, the output level will be set to A and the
LAST variable will be set to "0." The LAST variable is used as a reference value to determine the appropriate set of rules to be applied following the first input value, as will be described below in connection with step 68.
It should be understood that only one of the steps 70-76 will be valid when applying the first set of rules. Accordingly, step 90 will follow step 70. Step 90 sets the FIRST flag to FALSE for the subsequent input values. The algorithm then returns to step 64 to read in the next input value. In FIG. 4, the next consecutive input value is a "1." Since the FIRST flag is now set to FALSE, the algorithm will proceed from step 66 to step 68. At step 68, it is determined whether the input value is less than the LAST variable. This step determines whether the first set of rules (steps 70-76) should be applied or whether the second set of rules (steps 80-86) should be applied. In the present example, the input value of "1" is greater than the LAST variable, which has been previously set to "0" at step 70. Therefore, the algorithm will apply the second set of rules (steps 80-86). Since the input value is "1," step 82 will be executed. Step 82 sets the output level to C and the LAST variable to 2. The algorithm then proceeds to step 90 and returns again to step 64 for reading in the next consecutive input value. The algorithm will continue in this manner until all of the input values have been encoded as output levels.
With reference to FIG. 4, it should be appreciated that the output level of the preceding encoded input value will determine the output level for the next consecutive encoded input value. In particular, the next consecutive input value will be encoded as one of the four remaining output levels. As a result, when two consecutive input values are the same, such as the consecutive 3's following the first three input values in FIG. 4, each of the 3's will be encoded as different output levels. In the case of the first "3," the output level is E, whereas the second 3 is encoded as output level D. Since no consecutive output level will be the same, the output levels will transition for each consecutive encoded input value. Referring now to FIG. 6, there is shown a flow chart 100 which illustrates an algorithm for decoding output levels back into input values, according to a preferred embodiment of the present invention. Beginning with step 102, the FIRST flag is set to TRUE indicating that this is the first output level to be decoded. At step 104, the output level is read in. For steps 106-114, an input value is determined based upon the output level read in. However, in some cases this input value will be modified, as will be explained below in connection with step 118. Therefore, the decoded input value will be determined based upon a set of rules determined by both the current output level and one or more prior output levels. If the output level is the first output level read in (i.e., FIRST = TRUE), then the input value is not modified. In this respect, the algorithm will proceed from step 116 to step 120 where the LAST variable will be set to the input value. It should be appreciated that the LAST variable is used to determine if an input value needs to be modified, as will be explained in connection with step 118. Proceeding next to step 122, the FIRST flag is set to FALSE for reading subsequent output levels. At step 124, the input value is stored. The algorithm now returns to step 104, to read in the next consecutive output level. After evaluating the output level at steps 106-114, if the FIRST flag is no longer true (step 116), the algorithm proceeds to step 1.18. At step 118, it is determined whether the input value (obtained at one of the steps 106-114) is greater than the LAST variable. If so, the input value is modified by decrementing it by one. If the input value is not greater than the LAST variable, then the input value is not modified. The algorithm then proceeds to step 120, where the LAST variable is set equal to the present input value, and step 122. At step 124, the input value is stored. The algorithm then returns to step 104 to read in the next consecutive output level. The algorithm will continue in this manner until all of the output levels have been decoded back to the original input values. As noted above, each consecutive output level in the encoded waveform will be different, and thus necessitate a transition. As a result, the decoding system will not require an external clocking signal to synchronize with th 2 encoded waveform. In this regard, the decoding system is self-synchronizing with the encoded waveform by using the transition of each consecutive output level as the indicator that a new output level has been received for decoding. Thus, the decoder can be easily synchronized with an encoded waveform having a variable transmission speed.
It should be understood that while FIGS. 4-6 show the implementation of only five output levels, the number of output levels may be significantly greater. As a result, the number of different input values may also be significantly greater. By increasing the number of output levels and input values, the number of bits represented by each input value can also be increased. Accordingly, as noted above, the present invention can be used to substantially increase the data transfer rate and conserve bandwidth.
It should also be appreciated that FIGS. 4-6 illustrate a fixed timing relationship between one output level and the next solely for the purpose of illustrating the present invention. In this regard, the time scale itself is completely arbitrary, and the time required to transition from one output level to another is also completely arbitrary. Accordingly, it should be understood that the present invention can maximize the use of available bandwidth by varying the timing relationship from one transition to another. For example, in a bandwidth limited transmission medium, a change from one output level to a nearby output level, such as from A to B, will stabilize quickly, whereas a change from one output level to a distant output level, such as from A to E, will take longer to stabilize.
Therefore, small changes can be transmitted more quickly. FIG. 7 provides a timing diagram 160 which shows the timing where stabilization of the transitions varies depending upon the relative difference between consecutive output levels.
As can be seen from the diagram, the time for a single level change (e.g., A to B) takes approximately half the time needed for a change of two levels (e.g., B to D).
Referring now to FIG. 8, there is shown a block diagram of a hardware arrangement 130 for encoding input values into output level transitions. Arrangement 130 is generally comprised of a buffer 132, encoding logic 134, and a digital-to-analog converter 136. In a preferred embodiment of the present invention, buffer 132 is a FIFO chip for buffering the received data. For instance, buffer 132 may take the form of a Cyprus Semiconductor CY7C464. Encoding logic 134 is programmed to implement the algorithm in the manner as described in connection with FIG. 5. In a preferred embodiment of the present invention, encoding logic 134 takes the form of an EPLD device, such as the Altera
EPM7096S. Digital-to-analog converter 136 may take the form of an 8-bit video
DAC, such as the Phillips TDA8702.
Arrangement 130 operates in the following manner. Unencoded data is stored in buffer 132. The unencoded data are input values which may represent one or more bits. Encoding logic 134 reads out the unencoded data and encodes it into output levels transitions which are sent to digital-to-analog converter 136. It should be appreciated that the analog coded data may be transmitted using a variety of different mediums, including a television signal. For instance, encoded data may be transmitted during the active video portion of the television signal. Accordingly, large quantities of data can be quickly and conveniently transferred. Referring now to FIG. 7, there is shown a block diagram of hardware arrangement 150 for decoding output levels transitions into input values. Arrangement 150 is generally comprised of an analog- to-digital converter 152, a buffer 154 and decoding logic 156. Analog-to-digital converter 152 is preferably an 8-bit video ADC, such as Phillips TDA8708B. In a preferred embodiment of the present invention, buffer 154 is a FIFO chip for buffering the digital data. For instance, buffer 154 may take the form of a Cyprus Semiconductor CY7C464. Decoding logic 156 is programmed to implement the algorithm in the manner as described in connection with FIG. 6. In a preferred embodiment of the present invention, decoding logic 156 takes the form of an EPLD device, such as the Altera EPM7096S.
Arrangement 150 operates in the following manner. Analog-to-digital converter 152 receives the encoded output levels and converts them to digital data.
Buffer 154 stores the digital data. Decoding logic 156 reads out the digital data from buffer 154 and decodes the encoded output level transitions into input values. These input values in turn may be converted to one or more bits.
It should be appreciated that arrangements 130 and 150, as described above, are provided solely for the purpose of illustrating a preferred embodiment of the present invention and that numerous other arrangements are suitable as well. The foregoing description is a specific embodiment of the present invention. It should be appreciated that this embodiment is described for purposes of illustration only, and that numerous alterations and modifications may be practiced by those skilled in the art without departing from the spirit and scope of the invention. In this regard, it is known that large changes between consecutive output levels may generate significant noise, and thus require increased bandwidth. As a result, it might be necessary in some cases to limit the changes between consecutive output levels to the nearest 50 percent of the available output levels. Therefore, there may be more than N+ l output levels for encoding N input values. For instance, an encoder having ten output levels might produce a step of one of four levels per each transition, encoding two bits at a time, but reducing the needed bandwidth of the channel. It is intended that all such modifications and alterations be included insofar as they come within the scope of the invention as claimed or the equivalents thereof.

Claims

The invention claimed is:
1. A method for encoding data comprising: receiving a plurality of input values to be encoded, wherein each said input value may be one of N different input values; establishing at least N+ 1 output levels, each said transition in output level representing an encoded input value; and transitioning from one of said at least N+ l output levels to another of said at least N+ 1 output levels for each consecutively received input value.
2. A method according to claim 1, wherein each said N different input values represent log2(N) bits.
3. A method according to claim 1, wherein each said N different input values represent one of the values 0 through N in base N + l.
4. A method according to claim 1, wherein said output levels are one of the following: voltage levels, frequencies, phases or amplitudes.
5. A method according to claim 1, wherein each of said input values is associated with a reference value during encoding thereof.
6. A method according to claim 5, wherein if said input value is the first input value to be encoded or if said input value is less than said reference value associated with the previously encoded input value, then said input value is encoded according to a first set of rules, otherwise said input value is encoded according to a second set of rules, said first and second set of rules establishing the appropriate transition among said output levels.
7. A system for encoding data comprising: means for establishing at least N+ l output levels, each transition in said output level representing an encoded input value; means for receiving a plurality of input values to be encoded, wherein each said input value may be one of N different input values; means for transitioning from one of said at least N+ l output levels to another of said at least N+ 1 output levels for each consecutively received input value.
8. A system according to claim 7, wherein each said N different input value represents log2(N) bits.
9. A method according to claim 7, wherein each said N different input values represent one of the values 0 through N in base N+ l.
10. A system according to claim 7, wherein said system further comprises means for decoding each of said output levels into an input value according to a set of rules determined by both the output level currently being decoded and one or more output levels previously decoded.
11. A method for encoding and decoding data comprising: establishing N+ l voltage levels, each transition between said voltage levels representing an encoded input value; receiving a plurality of input values to be encoded, wherein each said input value is one of N different input values, said N different input values representing log2(N) bits; transitioning from one of said N+ l voltage levels to another of said N+ l voltage levels for each consecutively received input value; and decoding said output level into an input value according to a set of rules determined by both the output level currently being decoded and one or more output levels previously decoded.
12. A system for decoding data comprising: transition detection means for detecting a transition from a first of N+ l output levels to a second of N+ 1 output levels; decoding means for decoding an output level to an input value in response to the detection of a transition from the first of N+ 1 output levels to the second of N+ l output levels, said decoding means decoding the output level to the input value in accordance with the output level currently being decoded and at least one of the output levels previously decoded; and storage means for storing the input value decoded by said decoding means.
PCT/US1997/022645 1996-12-11 1997-12-11 Multilevel coding WO1998027699A1 (en)

Priority Applications (6)

Application Number Priority Date Filing Date Title
MXPA99005610A MXPA99005610A (en) 1996-12-16 1997-12-11 Multilevel coding.
AU55212/98A AU5521298A (en) 1996-12-16 1997-12-11 Multilevel coding
CA002275185A CA2275185A1 (en) 1996-12-11 1997-12-11 Multilevel coding
BR9713729-4A BR9713729A (en) 1996-12-16 1997-12-11 Multi-level encoding
JP52780498A JP2001506448A (en) 1996-12-16 1997-12-11 Multi-level coding
EP97951619A EP1018251A1 (en) 1996-12-16 1997-12-11 Multilevel coding

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/767,371 US5903231A (en) 1996-12-16 1996-12-16 System for encoding base N data using a multi-level coding scheme
US08/767,371 1996-12-16

Publications (1)

Publication Number Publication Date
WO1998027699A1 true WO1998027699A1 (en) 1998-06-25

Family

ID=25079276

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1997/022645 WO1998027699A1 (en) 1996-12-11 1997-12-11 Multilevel coding

Country Status (8)

Country Link
US (1) US5903231A (en)
EP (1) EP1018251A1 (en)
JP (1) JP2001506448A (en)
AU (1) AU5521298A (en)
BR (1) BR9713729A (en)
CA (1) CA2275185A1 (en)
MX (1) MXPA99005610A (en)
WO (1) WO1998027699A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999005866A1 (en) * 1997-07-22 1999-02-04 Emelko Glenn A Television signal data transmission system
EP1573992A2 (en) * 2002-12-10 2005-09-14 Rambus, Inc. Technique for improving the quality of digital signals in a multi-level signaling system

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6961314B1 (en) 1998-10-30 2005-11-01 Broadcom Corporation Burst receiver for cable modem system
US7103065B1 (en) * 1998-10-30 2006-09-05 Broadcom Corporation Data packet fragmentation in a cable modem system
ATE412289T1 (en) 1998-10-30 2008-11-15 Broadcom Corp CABLE MODEM SYSTEM
US7561808B2 (en) * 2000-03-21 2009-07-14 Lightwaves Systems, Inc. System and method of using variable pulses for symbology
US7142612B2 (en) * 2001-11-16 2006-11-28 Rambus, Inc. Method and apparatus for multi-level signaling
US20030235415A1 (en) * 2002-06-21 2003-12-25 Peters Frank H. Optical communication devices and optical communication methods
DE60330198D1 (en) 2002-09-04 2009-12-31 Microsoft Corp Entropic coding by adapting the coding mode between level and run length level mode
JP5106757B2 (en) * 2004-06-24 2012-12-26 三星電子株式会社 Voltage level coding system and method
US7302631B2 (en) * 2004-07-16 2007-11-27 Rambus Inc. Low overhead coding techniques
US20060126751A1 (en) * 2004-12-10 2006-06-15 Anthony Bessios Technique for disparity bounding coding in a multi-level signaling system
US7656321B2 (en) * 2005-06-02 2010-02-02 Rambus Inc. Signaling system
US8100929B2 (en) 2007-06-29 2012-01-24 Ethicon Endo-Surgery, Inc. Duckbill seal with fluid drainage feature
US8179974B2 (en) 2008-05-02 2012-05-15 Microsoft Corporation Multi-level representation of reordered transform coefficients
US8406307B2 (en) 2008-08-22 2013-03-26 Microsoft Corporation Entropy coding/decoding of hierarchically organized data
TWI752898B (en) 2014-03-25 2022-01-21 日商新力股份有限公司 Signaling devices and communication systems

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL7310645A (en) * 1973-08-01 1975-02-04 Nederlanden Staat Coding of binary signals into ternary signals - permits illegal codes to economise on check bits
WO1994009578A1 (en) * 1992-10-16 1994-04-28 Universitet I Linköping An apparatus for transferring information from a first to a second electronic unit

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3634855A (en) * 1969-05-05 1972-01-11 Wendell S Miller Self-clocking multilevel data coding system
US3743767A (en) * 1971-10-04 1973-07-03 Univ Illinois Transmitter and receiver for the transmission of digital data over standard television channels
US3984624A (en) * 1974-07-25 1976-10-05 Weston Instruments, Inc. Video system for conveying digital and analog information
US4183054A (en) * 1977-09-30 1980-01-08 Harris Corporation Digital, frequency-translated, plural-channel, vestigial sideband television communication system
JPS5831136B2 (en) * 1978-01-20 1983-07-04 株式会社日立製作所 Digital signal transmission method
US4484328A (en) * 1981-08-03 1984-11-20 Schlafly Hubert J Television line multiplexed data communication system
EP0094794B1 (en) * 1982-05-14 1992-04-22 Communications Patents Limited Communications system
US4665431A (en) * 1982-06-24 1987-05-12 Cooper J Carl Apparatus and method for receiving audio signals transmitted as part of a television video signal
JPS5986386A (en) * 1982-11-09 1984-05-18 Pioneer Electronic Corp Frequency division multiplex system
US4805020A (en) * 1983-03-21 1989-02-14 Greenberg Burton L Television program transmission verification method and apparatus
US4626913A (en) * 1984-06-26 1986-12-02 Rca Corporation Chroma burst derived clock regenerator for teletext decoder
GB2183971B (en) * 1985-12-05 1989-10-04 Stc Plc Data transmission system
US4750036A (en) * 1986-05-14 1988-06-07 Radio Telcom & Technology, Inc. Interactive television and data transmission system
US5177604A (en) * 1986-05-14 1993-01-05 Radio Telcom & Technology, Inc. Interactive television and data transmission system
DE3617251A1 (en) * 1986-05-22 1987-11-26 Philips Patentverwaltung CIRCUIT ARRANGEMENT FOR A TELEVISION RECEIVER WITH A VIDEO TEXT DECODER
US4789895A (en) * 1987-04-30 1988-12-06 Gte Government Systems Corporation System for synchronizing digital bit stream for telecommunication system
US4807031A (en) * 1987-10-20 1989-02-21 Interactive Systems, Incorporated Interactive video method and apparatus
WO1989005555A1 (en) * 1987-12-07 1989-06-15 British Broadcasting Corporation Data transmission in active picture period
US5251301A (en) * 1988-05-27 1993-10-05 Pc Connection, Inc. Computer remote control through a video signal
US4920503A (en) * 1988-05-27 1990-04-24 Pc Connection, Inc. Computer remote control through a video signal
US4969041A (en) * 1988-09-23 1990-11-06 Dubner Computer Systems, Inc. Embedment of data in a video signal
US5014125A (en) * 1989-05-05 1991-05-07 Cableshare, Inc. Television system for the interactive distribution of selectable video presentations
US4958230A (en) * 1989-08-11 1990-09-18 General Electric Company Method of transmitting auxiliary information in a television signal
US5063446A (en) * 1989-08-11 1991-11-05 General Electric Company Apparatus for transmitting auxiliary signal in a TV channel
GB2250898A (en) * 1990-12-12 1992-06-17 Stc Plc Line coding scheme.
US5200822A (en) * 1991-04-23 1993-04-06 National Broadcasting Company, Inc. Arrangement for and method of processing data, especially for identifying and verifying airing of television broadcast programs
US5410360A (en) * 1991-06-14 1995-04-25 Wavephore, Inc. Timing control for injecting a burst and data into a video signal
US5387941A (en) * 1991-06-14 1995-02-07 Wavephore, Inc. Data with video transmitter
US5327237A (en) * 1991-06-14 1994-07-05 Wavephore, Inc. Transmitting data with video
US5243423A (en) * 1991-12-20 1993-09-07 A. C. Nielsen Company Spread spectrum digital data transmission over TV video
US5452009A (en) * 1993-12-29 1995-09-19 Zenith Electronics Corp. Digital transmission system with data rate optimized for noise in transmission medium
IT1277858B1 (en) * 1995-02-22 1997-11-12 Hs Cast S R L SYSTEM FOR THE TRANSMISSION OF DATA ON A TELEVISION CHANNEL.

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL7310645A (en) * 1973-08-01 1975-02-04 Nederlanden Staat Coding of binary signals into ternary signals - permits illegal codes to economise on check bits
WO1994009578A1 (en) * 1992-10-16 1994-04-28 Universitet I Linköping An apparatus for transferring information from a first to a second electronic unit

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
DATABASE WPI Section EI Week 7508, Derwent World Patents Index; Class W01, AN 75-C1074W, XP002062883 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999005866A1 (en) * 1997-07-22 1999-02-04 Emelko Glenn A Television signal data transmission system
EP1573992A2 (en) * 2002-12-10 2005-09-14 Rambus, Inc. Technique for improving the quality of digital signals in a multi-level signaling system
EP1573992A4 (en) * 2002-12-10 2007-12-05 Rambus Inc Technique for improving the quality of digital signals in a multi-level signaling system

Also Published As

Publication number Publication date
US5903231A (en) 1999-05-11
CA2275185A1 (en) 1998-06-25
AU5521298A (en) 1998-07-15
BR9713729A (en) 2002-01-15
EP1018251A1 (en) 2000-07-12
MXPA99005610A (en) 2002-07-02
JP2001506448A (en) 2001-05-15

Similar Documents

Publication Publication Date Title
US5903231A (en) System for encoding base N data using a multi-level coding scheme
KR100303581B1 (en) Data coding and decoding system
US5461379A (en) Digital coding technique which avoids loss of synchronization
US7653165B2 (en) Pulse amplitude modulated system with reduced intersymbol interference
US20060126751A1 (en) Technique for disparity bounding coding in a multi-level signaling system
US6084915A (en) Signaling method having mixed-base shell map indices
US5113401A (en) Block coding scheme for fractional-bit transmission
US6621426B1 (en) Method and apparatus for modulating a signal
EP3306821B1 (en) Methods of converting or reconverting a data signal and method and system for data transmission and/or data reception
JPH04233347A (en) Method and apparatus for generating signal
US6487244B1 (en) System and method for transmitting special marker symbol
JP2654321B2 (en) Trellis coding method and apparatus
JP2003324491A (en) Multilevel fsk modulation system
CN100586139C (en) Integrated modulator and demodulator
US5642380A (en) Data communication system and modem therefor
US6754282B1 (en) DC-free run length constrained line coding with channel gain
US5995548A (en) Signaling method using multiple modulus shell mapping
US5418819A (en) Transmitting apparatus and receiving apparatus based on phase modulation method
US7469022B2 (en) Methods and apparatus for symmetrical phase-shift keying
WO1998039883A1 (en) Signalling method using multiple modulus conversion and shell mapping
KR100390582B1 (en) Line code transmission using pulse width bit inversion
JP2001069181A (en) Digital data transmitting method and device to carry out the same
JPS63219252A (en) Multilevel qam communication system
JP2751632B2 (en) Multi-level modulation / demodulation communication system and method
JP6537321B2 (en) Transmitter and receiver

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AL AM AT AT AU AZ BA BB BG BR BY CA CH CN CU CZ CZ DE DE DK DK EE EE ES FI FI GB GE GH GM HU ID IL IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SK SL TJ TM TR TT UA UG UZ VN YU ZW AM AZ BY KG KZ MD RU TJ TM

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW SD SZ UG ZW AT BE CH DE DK ES

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application
ENP Entry into the national phase

Ref document number: 2275185

Country of ref document: CA

Ref country code: CA

Ref document number: 2275185

Kind code of ref document: A

Format of ref document f/p: F

WWE Wipo information: entry into national phase

Ref document number: 1997951619

Country of ref document: EP

ENP Entry into the national phase

Ref country code: JP

Ref document number: 1998 527804

Kind code of ref document: A

Format of ref document f/p: F

WWE Wipo information: entry into national phase

Ref document number: PA/a/1999/005610

Country of ref document: MX

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

WWP Wipo information: published in national office

Ref document number: 1997951619

Country of ref document: EP

WWW Wipo information: withdrawn in national office

Ref document number: 1997951619

Country of ref document: EP