(19)
(11)EP 3 291 452 B1

(12)EUROPEAN PATENT SPECIFICATION

(45)Mention of the grant of the patent:
25.03.2020 Bulletin 2020/13

(21)Application number: 16306093.2

(22)Date of filing:  30.08.2016
(51)International Patent Classification (IPC): 
H04B 3/32(2006.01)

(54)

ENCODING AND DECODING OF VECTORING COEFFICIENTS WITH DIFFERENTIAL ENCODING SIZE

CODIERUNG UND DECODIERUNG VON VECTORING-KOEFFIZIENTEN MIT DIFFERENZIELLER CODIERUNGSGRÖSSE

CODEUR ET DECODEUR POUR DES COEFFICIENTS DE VECTORING A L'AIDE D'UNE TAILLE DE CODAGE DIFFERENTIELLE


(84)Designated Contracting States:
AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR

(43)Date of publication of application:
07.03.2018 Bulletin 2018/10

(73)Proprietor: Alcatel Lucent
91620 Nozay (FR)

(72)Inventor:
  • NUZMAN, Carl
    Murray Hill, NJ 07974-0636 (US)

(74)Representative: Nokia EPO representatives 
Nokia Technologies Oy Karakaari 7
02610 Espoo
02610 Espoo (FI)


(56)References cited: : 
WO-A1-2010/075559
US-A1- 2012 020 418
US-A- 6 014 095
US-A1- 2014 023 127
  
      
    Note: Within nine months from the publication of the mention of the grant of the European patent, any person may give notice to the European Patent Office of opposition to the European patent granted. Notice of opposition shall be filed in a written reasoned statement. It shall not be deemed to have been filed until the opposition fee has been paid. (Art. 99(1) European Patent Convention).


    Description

    Technical Field of the Invention



    [0001] The present invention relates to a compression and decompression method and apparatus for efficiently storing and retrieving vectoring coefficients in a Vectoring Processor (VP).

    Technical Background of the Invention



    [0002] Crosstalk is a major impairment for wired communication systems, such as Digital Subscriber Line (xDSL) communication systems.

    [0003] Crosstalk arise from Electro-Magnetic (EM) interference between neighboring transmission lines, that is to say transmission lines that are in close vicinity over part or whole of their length, such as twisted copper pairs in a cable binder. Far-End Crosstalk (FEXT) is caused by communication signals being transmitted in a given direction, and that interfere at far-end receivers with communications signals traveling along neighboring transmission lines in the same direction. Near-End Crosstalk (NEXT) is caused by communication signals being transmitted in a given direction, and that interfere at near-end receivers with communications signals traveling along neighboring transmission lines in the opposite direction.

    [0004] One easily gets rid of NEXT by adopting Frequency Division Duplexing (FDD) and/or Time Division Duplexing (FDD) schemes for downstream and upstream communications.

    [0005] Yet, FEXT remains a predominant source of noise for wired communication systems. This is especially true as systems are evolving toward higher frequency bands in order to meet the demand for higher data rates (the higher frequency, the more EM coupling). For instance, in the recommendation entitled "very High Speed Digital Subscriber Line Transceivers 2", ref. G.993.2, and adopted by the International Telecommunication Union (ITU) in April 2010 (VDSL2 hereinafter), the transmit spectrum has been broadened from 2,208MHz (ADSL2+) up to 17,664MHz or 35,328MHz with respective transmit profile 17a or 35b and 4,3125kHz tone spacing. In G.9701 ITU recommendation (G.fast hereinafter), the transmit spectrum goes up to 105,93225MHz or 211,8645MHz with respective transmit profiles 106a or 212a and 51.75kHz tone spacing.

    [0006] Different strategies have been developed to mitigate FEXT, and to maximize effective throughput, reach and line stability.

    [0007] Static or dynamic spectrum management techniques were initially proposed as a way to cope with the increased level of FEXT by proper transmit power shaping. For instance, Upstream Power Back-Off (USPBO), Optimal Spectrum Balancing (OSB) or water-filing power allocation schemes confine the induced level of FEXT within acceptable bounds while restoring some user fairness across the loop plant.

    [0008] Multi-user signal coordination (a.k.a. vectoring) goes one step further by annihilating the FEXT signals at the respective receivers. Vectoring assumes full channel and signal knowledge. This bleeding-edge technology paved the way for record-breaking transmission rates over copper pairs (as much as 1Gbps aggregate data rate over a 200m loop), closing the gap with optical transmission. Vectoring, which has been initially proposed as an amendment to G.993.5 VDSL2 recommendation, forms now an integral part of new G.9701 G.fast recommendation.

    [0009] vectoring encompasses two main techniques: joint signal pre-processing (a.k.a. precoding) and joint signal post-processing (a.k.a. postcoding).

    [0010] With signal precoding, the user data symbols are jointly passed through a precoder before being transmitted over the respective communication channels. The precoder is such that the concatenation of the precoder and the communication channels results in little or no FEXT at the receivers. Practically, and as a first order approximation, the precoder superimposes antiphase crosstalk pre-compensation signals over the victim line along with the direct signal that destructively interfere at the receiver with the actual FEXT signals from the respective disturber lines.

    [0011] With signal postcoding, the data symbols received from the respective communication channels are jointly passed through a postcoder (a.k.a. crosstalk cancellation filter) before being detected. The postcoder is such that the concatenation of the communication channels and the postcoder results in little or no FEXT at the detectors.

    [0012] Signal vectoring is typically performed at a traffic aggregation point as multi-user signal coordination between co-located transceivers is required: signal precoding is particularly appropriate for downstream communication (i.e., toward customer premises), while signal postcoding is particularly appropriate for upstream communication (i.e., from customer premises).

    [0013] More formally, an NxN Multiple Input Multiple Output (MIMO) channel can be described by the following linear model: yk = Hkxk + zk (1), wherein the N-component complex vector xk, respectively yk, is a discrete frequency representation, as a function of the frequency index k, of the symbols transmitted over, respectively received from, the N vectored channels,
    wherein the NxN complex matrix Hk is the channel matrix: the (i,j)-th component Hi,j of the channel matrix Hk describes how the communication system produces a signal on the i-th channel output in response to a signal being fed to the j-th channel input; the diagonal elements of the channel matrix describe direct channel coupling, and the off-diagonal elements of the channel matrix (a.k.a. crosstalk coefficients) describe interchannel coupling,
    and wherein the N-component complex vector zk denotes additive noise over the N channels, such as Radio Frequency Interference (RFI) or thermal noise.

    [0014] Signal precoding and postcoding are advantageously implemented by means of matrix products.

    [0015] In downstream, a linear precoder performs a matrix-product in the frequency domain of a data vector uk with a precoding matrix Pk before actual transmission over the respective communication channels, i.e. actual transmit vector is xk = PkUk. The precoding matrix Pk is such that the overall channel matrix HkPk is diagonalized, meaning the off-diagonal coefficients of the overall channel HkPk, and thus the interchannel interference, are substantially reduced.

    [0016] In upstream, a linear postcoder performs a matrix-product in the frequency domain of the receive vector yk with a postcoding matrix Qk to recover the data vector uk (after channel equalization), i.e. detection is performed on y'k = Qkyk. The postcoding matrix Pk is such that the overall channel matrix QkHk is diagonalized.

    [0017] The choice of the vectoring group, that is to say the set of communication lines, the signals of which are jointly processed, is rather critical for achieving good crosstalk mitigation performances. Ideally, the vectoring group should match the whole set of communication lines that physically and noticeably interact with each other. within a vectoring group, each communication line is considered as a disturber line inducing crosstalk into the other communication lines of the group, and the same communication line is considered as a victim line receiving crosstalk from the other communication lines of the group. Crosstalk from lines that do not belong to the vectoring group is treated as alien noise and is not canceled.

    [0018] The complex coefficients of the precoding and postcoding matrix (a.k.a. vectoring coefficients) need to be stored for all disturber-victim lines combinations, and for all tones used for downstream and upstream communications respectively. These coefficients are stored in the so-called on-chip VP memory for fast and easy retrieval, and are decoded on the fly as the tone data are being jointly processed. These complex coefficients nominally occupies 2N2K register memories, each register memories holding the real or imaginary part of a single vectoring coefficient. N denotes the size of the vectoring group, and is typically in the order of up to a few hundred vectored lines for VDSL2 and a few dozens vectored lines for G.fast, and K denotes the number of applicable tones, typically 4096 or 8192, meaning as many as 2,4.109 register memories for 384 vectored lines and 8192 tones. However, the amount of on-chip memory is constrained by cost and space considerations, and one has to come up with some lossless and/or lossy compression schemes for reducing the storage requirements of the VP while maintaining a desired level of fidelity for the decompressed coefficients.

    [0019] More specifically, an overall compression scheme typically includes lossy and lossless portions. The lossy portion may include sub-sampling and interpolation, as well as quantization. The lossless portion reduces the size of the stored coefficients at a further extent by proper encoding, while allowing the original coefficients to be perfectly reconstructed from the compressed coefficients.

    [0020] An example of lossless encoding is the so-called Golomb encoding, whereby unsigned integer coefficient values representing the real or imaginary part of the vectoring coefficients are divided by a modulus integer parameter 2m. The quotient value of the Euclidean division is encoded in unary code, i.e. with 0, 1, 2, 3, ... encoded as 0, 10, 110, 1110, ..., and the remainder of the Euclidean division is encoded as a binary word of length m. The modulus parameter m can be tailored on a per frequency band basis as described in the US patent application entitled "System and Method for Selecting Parameters for compressing coefficients for Nodescale vectoring", and published on January 23, 2014 with publication number US 2014/0023127 A1.

    [0021] This solution works well in many cases where the disturbers and tone groups are fairly homogeneous, so that the statistics of the vectoring coefficient values may be modeled as approximately independent and identical.

    [0022] The following background art, which may be regarded as useful for understanding the present invention and its relationship to the prior art, is further acknowledged and briefly discussed.

    [0023] The US patent application entitled "Reduced Memory vectored DSL" filed on July 22, 2011, and published on January 26, 2012 with publication number US 2012/0020418 A1, discloses a vectored DSL system wherein the memory storage, transmission and processing demands are reduced by sampling a subset of DSL tones in the DSL tone range used in the vectored system. This data is smoothed (denoised) to further reduce the data's size, sacrificing some fidelity or precision as a result. Finally, lossless entropy coding or the like is performed to encode the FEXT cancellation data for storage and use. The resulting data is less likely to cause transmission bottlenecks in the vectored system, can be stored and used more efficiently for both on-chip and off-chip vectoring implementations, and can be readily updated in various ways.

    [0024] The International patent application entitled "System and Method for Digital Subscriber Loop Crosstalk Cancellation" filed on December 23, 2009, and published on July 1, 2010 with publication number WO 2010/075559 A1, discloses a system and a method for crosstalk cancellation, the method includes: (i) generating estimated crosstalk cancellation matrices for each frequency bin of a group of adjacent frequency bins, wherein each estimated crosstalk cancellation matrix provides an estimation of a crosstalk cancellation that is expected to mitigate crosstalk that is generated at a single frequency bin by an array of transmitters that transmit information over different copper pairs that form a bonded digital subscriber line link; (ii) generating a group crosstalk cancellation matrix based on the estimated crosstalk cancellation matrices, wherein a size of the group crosstalk cancellation matrix is smaller that an aggregate size of the estimated crosstalk cancellation matrices; and (iii) cancelling crosstalk for each frequency bin of the group by utilizing the group crosstalk cancellation matrix.

    [0025] The US patent 6,014,095 entitled "variable Length Encoding system" filed on December 29, 1997 discloses a high speed variable length coding system having a small hardware scale. This variable length coding system includes a variable length code table, a memory for storing quantized DCT coefficients, a section for sequentially coding the read-out quantized DCT coefficients, so as to output a variable length code table address in the case of a variable length code, and a code word and a code length in the case of a fixed length code, a section for coding information to be coded other than the quantized DCT coefficients, so as to output a variable length code table address in the case of a variable length code and a code word and a code length in the case of a fixed length code, a selector for selecting an address for the variable length code, a selector for selecting a code of the fixed length code, a delay circuit for delaying the code of the fixed length code, a selector for selecting one of the variable length code and the fixed length code, and a unit for putting the selected codes in a string so as to form a code string.

    Summary of the Invention



    [0026] It is an object of the present invention to define an efficient compression scheme and apparatus, and related decompression scheme and apparatus, for encoding and decoding coupling coefficient values.

    [0027] In accordance with a first aspect of the invention, a method for encoding a first sequence of integer coefficient values indicative of coupling coefficient values comprises determining a second sequence of numbers of digits for encoding the respective integer coefficient values of the first sequence, the second sequence comprising, as first element, a first number of digits for encoding the first integer coefficient value of the first sequence, and as second and subsequent elements, constrained numbers of digits that are greater than or equal to respective minimum required numbers of digits for encoding the second and subsequent integer coefficient values of the first sequence, the constrained numbers of digits being such that any two successive elements of the second sequence do not differ from each other by more than a given threshold value; encoding difference values between the successive elements of the second sequence; and encoding the integer coefficient values of the first sequence using the respective numbers of digits of the second sequence. The coupling coefficient values are vectoring or channel coefficient values.

    [0028] In one embodiment of the invention, the method further comprises encoding a further first sequence of integer coefficient values using the respective numbers of digits of the second sequence. The constrained numbers of digits are greater than or equal to respective further minimum required numbers of digits for encoding the second and subsequent integer coefficient values of the further first sequence.

    [0029] In one embodiment of the invention, the first number of digits is a nominal number of digits preliminarily known.

    [0030] In one embodiment of the invention, the method further comprises adjusting the first number of digits of the second sequence; and encoding the so-adjusted first number of digits of the second sequence.

    [0031] In one embodiment of the invention, the method further comprises initializing the second and subsequent numbers of digits of the second sequence as being equal to the respective minimum required numbers of digits; and incrementing at least one of the second and subsequent numbers of digits of the second sequence till the successive elements of the second sequence do not differ from each other by more than the given threshold value.

    [0032] In one embodiment of the invention, the coupling coefficient values are vectoring coefficient values for use in a vectoring processor, the encoding is for the storage of the integer coefficient values in a memory area of the vectoring processor, and the first sequence corresponds to a particular disturber-victim combination.

    [0033] In one embodiment of the invention, the integer coefficient values are indicative of respective quantization intervals wherein the respective coupling coefficient values are enclosed.

    [0034] In one embodiment of the invention, the difference values are each encoded using ceil(LogM(2T+1)) digits. M denotes a radix of the numeral system that is used for representing integer values, T denotes the given threshold value, and ceil(x) denotes the lowest integer value that is greater than or equal to x.

    [0035] In one embodiment of the invention, the difference values are encoded using a variable-length code.

    [0036] In accordance with another aspect of the invention, an encoder for encoding a first sequence of integer coefficient values indicative of coupling coefficient values is configured to determine a second sequence of numbers of digits for encoding the respective integer coefficient values of the first sequence, the second sequence comprising, as first element, a first number of digits for encoding the first integer coefficient value of the first sequence, and as second and subsequent elements, constrained numbers of digits that are greater than or equal to respective minimum required numbers of digits for encoding the second and subsequent integer coefficient values of the first sequence, the constrained numbers of digits being such that any two successive elements of the second sequence do not differ from each other by more than a given threshold value; to encode difference values between the successive elements of the second sequence; and to encode the integer coefficient values of the first sequence using the respective numbers of digits of the second sequence. The coupling coefficient values are vectoring or channel coefficient values.

    [0037] Embodiments of an encoder according to the invention correspond with the aforementioned embodiments of a method for encoding according to the invention.

    [0038] Such an encoder typically forms part of a vectoring controller for controlling the operation of a vectoring processor, and configured to write the so-compressed integer coefficient values in a memory area of the vectoring processor.

    [0039] In accordance with still another aspect of the invention, a method for decoding a first sequence of encoded integer coefficient values indicative of coupling coefficient values comprises decoding a first integer coefficient value of the first sequence using a first number of digits; decoding difference values between successive elements of a second sequence of numbers of digits, the second sequence having the first number of digits as first element; determining second and subsequent numbers of digits of the second sequence from the difference values; and decoding second and subsequent integer coefficient values of the first sequence using the respective so-determined second and subsequent numbers of digits of the second sequence. The coupling coefficient values are vectoring or channel coefficient values.

    [0040] In one embodiment of the invention, the first number of digits is a nominal number of digits preliminarily known.

    [0041] In one embodiment of the invention, the method initially comprises decoding the first number of digits.

    [0042] In one embodiment of the invention, the coupling coefficient values are vectoring coefficient values for use in a vectoring processor, the decoding is for the reading of the encoded integer coefficient values from a memory area of the vectoring processor, and the first sequence corresponds to a particular disturber-victim combination.

    [0043] In accordance with still another aspect of the invention, a decoder for decoding a first sequence of encoded integer coefficient values indicative of coupling coefficient values is configured to decode a first integer coefficient value of the first sequence using a first number of digits; to decode difference values between successive elements of a second sequence of numbers of digits, the second sequence having the first number of digits as first element; to determine second and subsequent numbers of digits of the second sequence from the difference values; and to decode second and subsequent integer coefficient values of the first sequence using the respective so-determined second and subsequent numbers of digits of the second sequence. The coupling coefficient values are vectoring or channel coefficient values.

    [0044] Embodiments of a decoder according to the invention correspond with the aforementioned embodiments of a method for decoding according to the invention.

    [0045] Such a decoder typically forms part of a vectoring processor for jointly processing communication signals, and configured to read the so-compressed integer coefficient values from a memory area.

    [0046] The vectoring processor and vectoring controller typically forms part of an access node for providing broadband communication services to subscribers, such as a Digital Subscriber Line Access Multiplexer (DSLAM) or a Distribution Point Unit (DPU).

    [0047] In practice, there are often disturbers with very different properties, meaning that the best encoding may depend strongly on the considered disturber. Also there may be strong correlations across frequency in the size of the integer coefficient values. These characteristics provide opportunity to encode the vectoring coefficients with fewer bits.

    [0048] The idea is to use a variable length code that encodes each pair of real and imaginary components with the minimum number of bits required. Normally, significant additional overhead would be required to indicate to the decoder the number of bits used for encoding each integer value. With the proposed technique, this overhead is reduced by differentially encoding the new required number of bits used for encoding a new integer value with respect to a previously-determined number of bits used for encoding a previous integer value, after constraining the degree to which the number of bits can change from one tone group to the next. Encoding is carried out independently for each disturber.

    Brief Description of the Drawings



    [0049] The above and other objects and features of the invention will become more apparent and the invention itself will be best understood by referring to the following description of an embodiment taken in conjunction with the accompanying drawings wherein:
    • fig. 1 represents an overview of a copper plant;
    • fig. 2 represents further details about an access node; and
    • fig. 3 represents further details about a vectoring controller and processor.

    Detailed Description of the Invention



    [0050] There is seen in fig. 1 an access plant comprising a network unit 10 at a CO, an access node 20 coupled via one or more optical fibers to the network unit 10, and further coupled via a copper plant to Customer Premises Equipment (CPE) 30 at various subscriber locations. The transmission media of the copper plant is typically composed of copper Unshielded Twisted Pairs (UTP).

    [0051] As an illustrative example, the copper plant comprises four subscriber lines L1 to L4 sharing a common access segment 40, and then going through dedicated loop segments 50 for final connection to CPEs 301 to 304 respectively.

    [0052] Within the common access segment 40, the subscriber lines L1 to L4 are in close vicinity and thus induce FEXT into each other (see the arrows in fig. 1 between the respective subscriber lines).

    [0053] The access node 20 comprises a VP for jointly processing the data symbols that are being transmitted over, or received from, the copper plant in order to mitigate the FEXT and to increase the achievable data rates.

    [0054] There is seen in fig. 2 further details about an access node 100 and respective CPEs 200.

    [0055] The access node 100 comprises:
    • transceivers 110;
    • a Vectoring Processing Unit (VPU) 120; and
    • a vectoring Control Unit (VCU) 130 for controlling the operation of the VPU 120.


    [0056] The transceivers 110 are individually coupled to the VPU 120 and to the VCU 130. The VCU 130 is further coupled to the VPU 120.

    [0057] The transceivers 110 individually comprise:
    • a Digital Signal Processor (DSP) 111; and
    • an Analog Front End (AFE) 112.


    [0058] The transceivers 110 are coupled to respective transceivers 210 within the CPEs 200 through respective subscriber lines L1 to LN, which are assumed to form part of the same vectoring group.

    [0059] The transceivers 210 individually comprise:
    • a Digital Signal Processor (DSP) 211; and
    • an Analog Front End (AFE) 212.


    [0060] The AFEs 112 and 212 individually comprise a Digital-to-Analog Converter (DAC) and an Analog-to-Digital Converter (ADC), a transmit filter and a receive filter for confining the signal energy within the appropriate communication frequency bands while rejecting out-of-band interference, a line driver for amplifying the transmit signal and for driving the transmission line, and a Low Noise Amplifier (LNA) for amplifying the receive signal with as little noise as possible.

    [0061] In case of Frequency Division Duplexing (FDD) operation where downstream and upstream communications operate simultaneously over the same transmission medium in distinct and non-overlapping frequency bands, the AFEs 112 and 212 further comprise a hybrid for coupling the transmitter output to the transmission medium and the transmission medium to the receiver input while achieving low transmitter-receiver coupling ratio. The AFE may further accommodate echo cancellation filters to reduce the coupling ratio at a further extent.

    [0062] In case of Time Duplexing Division (TDD) operation where downstream and upstream communications operate over the same frequency band but in distinct and non-overlapping time slots, the hybrid can be advantageously omitted as the transmitter and receiver operate in alternate mode: the receive circuitry is switched OFF (or the receive signal is discarded) while the transmit circuitry is active, and the way around, the transmit circuitry is switched OFF while the receive circuitry is active.

    [0063] The AFEs 112 and 212 further comprise impedance-matching circuitry for adapting to the characteristic impedance of the transmission medium, clipping circuitry for clipping any voltage or current surge occurring over the transmission medium, and isolation circuitry (typically a transformer) for DC-isolating the transceiver from the transmission medium.

    [0064] The DSPs 111 and 211 are configured to operate downstream and upstream communication channels for conveying user traffic over the subscriber lines L1 to LN.

    [0065] The DSPs 111 and 211 are further configured to operate downstream and upstream control channels that are used to transport control traffic, such as diagnosis, management or On-Line Reconfiguration (OLR) commands and responses. Control traffic is multiplexed with user traffic over the transmission medium.

    [0066] More specifically, the DSPs 111 and 211 are for encoding and modulating user and control data into DMT symbols, and for de-modulating and decoding user and control data from DMT symbols.

    [0067] The following transmit steps are typically performed within the DSPs 111 and 211:
    • data encoding, such as data multiplexing, framing, scrambling, error correction encoding and interleaving;
    • signal modulation, comprising the steps of ordering the tones according to a tone ordering table, parsing the encoded bit stream according to the respective bit loadings of the ordered tones, and mapping each chunk of bits onto an appropriate transmit constellation point (with respective carrier amplitude and phase), possibly with Trellis coding;
    • signal scaling, such as power normalization, transmit PSD shaping and transmit gain scaling;
    • Inverse Fast Fourier Transform (IFFT);
    • Cyclic Prefix (CP) insertion; and
    • time-windowing.


    [0068] The following receive steps are typically performed within the DSPs 111 and 211:
    • time-windowing and CP removal;
    • Fast Fourier Transform (FFT);
    • Frequency EQualization (FEQ);
    • signal de-modulation and detection, comprising the steps of applying to each and every equalized frequency sample an appropriate constellation grid, the pattern of which depends on the respective bit loading, detecting the expected transmit constellation point and the corresponding transmit bit sequence, possibly with Trellis decoding, and re-ordering all the detected chunks of bits according to the tone ordering table; and
    • data decoding, such as data de-interleaving, error correction decoding, de-scrambling, frame delineation and demultiplexing.


    [0069] Some of these transmit or receive steps can be omitted, or some additional steps can be present, depending on the exact digital communication technology being used.

    [0070] The DSPs 111 are further configured to supply transmit frequency samples uk to the VPU 120 before Inverse Fast Fourier Transform (IFFT) for joint signal precoding, and to supply receive frequency samples yk to the VPU 120 after Fast Fourier Transform (FFT) for joint signal post-processing.

    [0071] The DSPs 111 are further configured to receive pre-compensated transmit samples xk from the VPU 120 for further transmission, and to receive post-compensated receive samples y'k from the VPU 120 for further detection. Alternatively, the DSPs 111 may receive correction samples to add to the initial frequency samples before further transmission or detection.

    [0072] The VPU 120 is configured to mitigate the FEXT induced over the subscriber lines. The VPU 120 comprises a linear precoder configured to multiply a vector uk of transmit frequency samples with a precoding matrix Pk in order to pre-compensate an estimate of the expected FEXT, and a linear postcoder configured to multiply a vector of receive frequency samples yk with a postcoding matrix Qk so as to post-compensate an estimate of the incurred FEXT.

    [0073] In the matrix Pk or Qk, a row i is associated with a particular victim line Li, while a column j is associated with a particular disturber line Lj.

    [0074] The VCU 130 is basically for controlling the operation of the VPU 120, and more specifically for estimating the crosstalk coefficients between the vectored lines, and for initializing and updating the coefficients of the precoding matrix Pk and of the postcoding Qk from the crosstalk estimates.

    [0075] The various channel couplings are estimated based on pilot signals (a.k.a crosstalk probing signals) transmitted over the vectored lines. The pilot signals are typically transmitted during dedicated time periods and/or over dedicated tones.

    [0076] For instance, in G.993.5 ITU recommendation (vectored VDSL2), the transceiver units send pilot signals on the so-called SYNC symbols. The SYNC symbols occur periodically after every super frame, and are transmitted synchronously over all the vectored lines (super frame alignment). A similar technique has been adopted in G.fast.

    [0077] On a given disturber line, a subset of the tones of a SYNC symbol (a.k.a. probe tones) are all 4-QAM modulated by the same pilot digit from a given pilot sequence, and transmit one of two complex constellation points, either '1 + j' corresponding to '+1' or '-1 - j' corresponding to '-1' (vectored VDSL2); or transmit one of three complex constellation points, either '1 + j' corresponding to '+1' or '-1 - j' corresponding to '-1' or '0 + 0j' corresponding to '0' (G.fast).

    [0078] On a given victim line, both the real and imaginary parts of the received DFT sample before equalization (G.fast), or of the normalized slicer error, which is the difference vector between the received and properly equalized DFT sample and the constellation point onto which this DFT sample is demapped (vectored VDSL2 and G.fast), are measured and reported to the VCU 130 for estimation of the various channel couplings.

    [0079] The successive error samples gathered over a given victim line are next correlated with the pilot sequence used over a given disturber line in order to obtain an estimate of the channel coupling from the given disturber line into the given victim line. To reject the crosstalk contributions from the other disturber lines, the pilot sequences used over the respective disturber lines are mutually orthogonal (e.g., walsh-Hadamard sequences).

    [0080] Presently, the VCU 130 starts first by configuring the transceivers 110 and 210 with the respective pilot sequences to use for modulation of the probe tones of the SYNC symbols. The pilot sequences comprises T pilot digits using {+1, -1} or {+1, 0, -1} as alphabet. The pilot digit that modulates a given tone k during SYNC symbol position t over line Li is denoted as



    [0081] The VCU 130 next gathers measurement samples as measured by the transceivers 110 and 210 while SYNC symbols are being transmitted. The measurement sample as measured by the transceiver 110i or 210i over a victim line Li at tone k during SYNC symbol position t is denoted as



    [0082] The VCU 130 correlates T measurement samples

    as measured over a given victim line Li during a complete acquisition cycle with the T pilot digits

    of the pilot sequence used over a given disturber line Lj so as to obtain an estimate of the channel coupling Hij,k from the disturber line Lj into the victim line Li at frequency index k. As the pilot sequences are mutually orthogonal, the contributions from the other disturber lines reduce to zero after this correlation step.

    [0083] The VCU 130 determines estimates of the channel matrix or of the normalized channel matrix at respective tones k based on these correlation results. The nominal channel matrix is derived from a measure of the raw receive signals before equalization, whereas the normalized channel matrix - normalization is with respect to the direct channel gains - is derived from a measure of the slicer errors after channel equalization. If the SYNC symbols are passed through the precoder or postcoder, then it is the matrix representing the concatenation of the channel matrix with the precoding or postcoding matrix, meaning the residual crosstalk channel matrix, that is measured and estimated.

    [0084] The channel estimates are eventually used for initializing or updating the coefficients of the precoding matrix Pk or of the postcoding matrix Qk. The VCU 130 writes the so-determined vectoring coefficients into the internal memory of the VPU 120 for easy and fast retrieval.

    [0085] There is seen in fig. 3 further details about the VPU 120 and the VCU 130.

    [0086] The VCU 130 is shown as comprising:
    • a processing unit 131 (or PROC);
    • a lossy encoder 132 (or LOSSY_ENC); and
    • a lossless encoder 133 (or LOSSLESS_ENC).


    [0087] The VPU 120 is shown as comprising:
    • on-chip fast-access memory 121 (or MEM);
    • a lossless decoder 122 (or LOSSLESS_DEC);
    • a lossy decoder 123 (or LOSSY_DEC);
    • an interpolator 124 (or INTERP); and
    • a Multiply & Accumulate (MAC) unit 125.


    [0088] An output of the processing unit 131 is coupled to an input of the lossy encoder 132. An output of the lossy encoder 132 is coupled to an input of the lossless encoder 133. An output of the lossless encoder 133 is coupled to an input of the VPU's internal memory 121. An input of the lossless decoder 122 is coupled to an output of the memory 121, and an output of the lossless decoder 122 is coupled to an input of the lossy decoder 123. An output of the lossy decoder 123 is coupled to an input of the interpolator 124. And an output of the interpolator 124 is coupled to an input of the MAC unit 125.

    [0089] A control output of the processing unit 131 is coupled to a control input of the interpolator 124. A further control output of the processing unit 131 is coupled to control inputs of the lossy encoder 132 and lossy decoder 123.

    [0090] An input of the processing unit 131 is coupled to outputs of the transceivers 110, through which error samples

    from the transceivers 110 (upstream) and 210 (downstream) are received. A further input of the MAC unit 125 is coupled to outputs of the transceivers 110, through which uncompensated transmit samples uk (downstream) and uncompensated receive samples yk (upstream) are received from the transceivers 110. And an output of the MAC unit 125 is coupled to further inputs of the transceivers 110, through which pre-compensated transmit samples xk (downstream) and post-compensated receive samples y'k (upstream) are sent to the transceivers 110.

    [0091] The processing unit 131 organizes the whole set of downstream or upstream tones into sub-bands. For each sub-band and victim line, the processing unit 131 selects a particular sub-sampling (or decimation) factor fsub for the compression algorithm. The selected sub-sampling factor fsub determines the position of the so-called reference tones in that sub-band, and the reference tones in turn delineate the sub-band into groups of tones. The vectoring coefficient values at the reference tones are explicitly stored into the VPU's memory, while the vectoring coefficient values at the remaining tones need to be inferred from the stored values at one or more reference tones.

    [0092] The selected sub-sampling factor fsub is chosen in order to optimize tradeoffs between coefficient accuracy and compressed data size. The selected sub-sampling factor fsub is written by the processing unit 131 into some register memory of the VPU 120 for further reading by the interpolator 124.

    [0093] Let kl denote the lth reference tone in a sub-band with l=1,2 ...: kl = kmin + (l-1)fsub, wherein kmin denotes the lowest tone index of the considered sub-band. Let Gl denotes the group of tones spanning from one reference tone kl up to the next (not included): Gl={kl; kl+1; ...; kl+1-1}={kmin+(l-1)fsub; kmin+(l-1)fsub+1; ...; kmin+lfsub-1}. Thus each tone group starts with one reference tone followed by fsub-1 non-reference tones. The reference tones can be at a different position in the tone groups, for instance at last or middle position.

    [0094] The processing unit 131 receives the error samples

    from the respective transceivers 110 and 210, and determines vectoring coefficient values at the reference tones kl from the error samples as aforementioned. The sub-sampling factor fsub used for data compression does not necessarily match the sub-sampling factor that is used by the transceivers 110 and 210 for error measurement and reporting in the corresponding sub-band. For instance, there might be twice or three times as many measured tones as reference tones, in which case the vectoring coefficient value at a reference tone can be derived from a weighted average of multiple vectoring coefficient values at multiple tones (not necessarily belonging to the same tone group).

    [0095] The real and imaginary parts of the vectoring coefficients are encoded as two signed integer values in fixed point representation using typically 8, 12 or 16 bits. These integer values represent the quantization intervals wherein the real or imaginary parts of the vectoring coefficients are enclosed. They should be multiplied by an implicit scaling factor to recover the actual coefficient values.

    [0096] The processing unit 131 supplies the lossy encoder 132 with sequences {X(i,j,n)}n=1,2,... of signed integer values indicative of the vectoring coefficient values. Each sequence {X(i,j,n)}n=1,2,... corresponds to a particular disturber line Lj - victim line Li combination, and to a particular sub-band. Within each sequence, the elements are organized by pairs: the two consecutive elements {X(i,j,2l-1); X(i,j,2l} represent the real and imaginary parts respectively of the precoding coefficient Pij,kl or postcoding coefficient Qij.kl, as estimated by the processing unit 131 at the reference tone kl of the respective tone group Gl, namely X(i,j,2l-1) = real(P/Qij,kl) and X(i,j,2l) = imag(P/Qij,kl).

    [0097] Alternatively, the supplied integer values can be indicative of difference values between the vectoring coefficient values Pij,kl or Qij,kl at the reference tones kl and the vectoring coefficient values Pij,kl±1 or Qij,kl±1 at the neighboring reference tones kl±1.

    [0098] For each sub-band and victim line Li, the processing unit 131 further selects a quantization level q, which is defined as the number of least significant bits from the vectoring coefficients that can be skipped. The quantization level q is typically chosen according to the expected path loss and expected crosstalk level for that particular sub-band and victim line in order to achieve a given crosstalk cancellation depth, and assuming a given cap on the bit loading.

    [0099] The chosen quantization parameter q is passed to the lossy encoder 132, and is further written by the processing unit 131 into some register memory of the VPU 120 for further reading by the lossy decoder 123.

    [0100] The lossy encoder 132 shifts the original signed binary words X(i,j,n) by q bits rightwards, or alternatively divides them by 2q. The lossy encoder 132 supplies the so-truncated sequences of signed integer values {X(i,j,n)}n=1,2,... to the lossless encoder 133. Let S1 denote the nominal number of bits used for encoding the respective integer values X(i,j,n) at the output of the lossy encoder 132, typically 8, 12 or 16 bits minus the quantization parameter q.

    [0101] The lossless encoder 133 should transform the sequence of integer values {X(i,j,l)}n=1,2,... into a stream of bits in such a way that the length of the stream of bits is typically small, and that the bits can be transformed back to the original sequence of integers with low complexity hardware. Each sequence of integer values {X(i,j,n)}n=1,2,... is encoded separately.

    [0102] The signed integers X(i,j,n) are first converted to unsigned integers U(i,j,n) as:



    meaning that 0, 1, -1, 2, -2, ... are respectively encoded as 0, 2, 1, 4, 3, ....

    [0103] The lossless encoder 133 encodes the first pair of unsigned integers {U(i,j,1); U(i,j,2)} (representing the real and imaginary part of the first vectoring coefficient) in normal binary notation using the nominal number of bits S(i,j,1) = S1.

    [0104] The lossless encoder 133 determines minimum required numbers of bits S(i,j,2), s(i,j,3), ... for respectively encoding the second and subsequent pairs of unsigned integers {U(i,j,3); U(i,j,4)}, {U(i,j,5); U(i,j,6)}, ... (representing the real and imaginary parts of the second and subsequent vectoring coefficients) as:



    [0105] The lossless encoder 133 adjusts the sequence of encoding sizes {S(i,j,l)}l=1,2,... to yield a new sequence of constrained encoding sizes {S(i,j,l)l=1,2,... that fulfills the following conditions:


    • meaning that the first encoding size is kept unchanged;


    • meaning that the second and subsequent encoding sizes are kept unchanged, or are incremented by one unit or more; and


    • meaning that any two successive elements of the adjusted sequence do not differ from each other by more than a given threshold T.


    [0106] For instance, if T=1, then any selected value in the adjusted sequence {S(i,j,l)}l=1,2,... cannot differ from the previous value by more than 1 unit, or equivalently S(i,j,l) = S(i,j,l-1) or S(i,j,l) = S(i,j,l-1) + 1 or S(i,j,l) = S(i,j,l-1) - 1.

    [0107] The adjustment is done in such a way that the incremented sizes S(i,j,2), S(i,j,3), ... are as close as possible to the respective minimum required sizes S(i,j,2), S(i,j,3), ... while fulfilling condition (6). This is easily achieved by a simple algorithm with a single forward and backward pass.

    [0108] The adjustment may also involve decrementing the nominal encoding sizes S(i,j,1) so as to lessen the amount of increments for the second and subsequent elements S(i,j,2), S(i,j,3), ..., in which case condition (4) is replaced by:



    [0109] The lossless encoder 133 derives a sequence of differences values {D(i,j,1)}l=1,2,... from the sequence of constrained encoding sizes {S(i,j,1)}l=1,2,... as:

    and writes the so-derived sequence of differences values {D(i,j,l)}l=1,2,... into the VPU's on-chip memory 121 as a first serial bit stream BS1.

    [0110] The sequence of differences values {D(i,j,l)}l=1,2,... comprises signed integer values whose absolute value is not greater than T. Each element of the sequence {D(i,j,l)}l=1,2,... is encoded in two's complement binary notation using S2 = ceil(Log2(2T+1)) bits. For instance, if T=1, then each difference value is encoded as a 2-bit value: '0' is encoded as '00', '+1' as '01', and '-1' as '11'.

    [0111] Alternatively, the lossless encoder 133 may use a variable-length code to encode the difference values D(i,j,l). For instance, and still assuming T=1, '0' is encoded as the single-digit value '0', '+1' is encoded as the double-digit value '10', and '-1' as '11'. The first bit value determines whether the difference value D(i,j,l) is encoded as a single-digit or double-digit word. This embodiment is particularly advantageous as the encoding sizes are likely to be identical across neighboring tones, and then the occurrence of the difference value '0' is likely to be considerably higher than the occurrence of the difference values '+1' and '-1'.

    [0112] Any other decodable assignment with 2T+1 codewords could be used as well.

    [0113] If the first encoding size S(i,j,1) is a variable size (i.e., not always made equal to S1), then the lossless encoder 133 prepends the value S(i,j,1) to the serial bit stream BS1. The value S(i,j,1) is encoded using a fixed number of bits S3 in normal binary notation (for instance 5 bits for encoding any integer size between 0 and 31).

    [0114] The lossless encoder 133 next encodes the pairs of unsigned integer values {U(i,j,2l-1); U(i,j,2l)}l=1,2,... using the respective constrained numbers of bits {S(i,j,l)l=1,2,... in normal binary notation, and writes the so-encoded unsigned integer values into the VPU's on-chip memory 121 as a second serial bit stream BS2.

    [0115] As an illustrative example, the table below gives the minimum required numbers of bits and corresponding codewords when encoding the unsigned integer values U(i,j,l).
    Original Integer valueunsigned codewordMinimum Number of Bits
    -4 111 3
    -3 101 3
    -2 11 2
    -1 1 1
    0   0
    1 10 2
    2 100 3
    3 110 3
    4 1000 4


    [0116] If a higher number of bits than the minimum required number of bits is used, then an appropriate number of '0' digits need to be prepended to the original codeword. For instance, '-4' would be encoded as '0111' if 4 bits were actually used (instead of 3).

    [0117] As one can notice, one does not need any payload to encode the null integer value '0' ('0' as encoding size is implicitly meant to be '0' as encoded value too). Alternatively, the null integer value could be encoded as the single-digit value '0', in which case equation (3) for the minimum required numbers of bits is to be slightly modified.

    [0118] The lossless decoder 122 reads the bit streams BS1 and BS2 from the on-chip memory 121, and performs the inverse decoding steps.

    [0119] The lossless decoder 122 first picks-up twice S1 = S(i,j,1) bits from the second bit stream BS2, S1 value being preliminarily known, and decodes the first pair of unsigned integer values {U(i,j,1); U(i,j,2)}.

    [0120] Next, the lossless decoder 122 picks-up the first S2 bits from the first bit stream BS1, S2 being also preliminarily known, and decodes them in two-complement notation to determine the first difference value D(i,j,1), yielding S(i,j,2) = S1 + D(i,j,1) as encoding size for the second pair of integer coefficients (i.e., by adding the first difference value D(i,j,1) to the nominal number of bits S1). The lossless decoder 122 picks-up twice S(i,j,2) bits from the second bit stream BS2, and decodes the second pair of unsigned integer values {U(i,j,3); U(i,j,4)}. The lossless decoder 122 prepends S1-S(i,j,2) most significant bits set to '0' to the decoded binary words so as their length conform to the nominal number of bits S1.

    [0121] The lossless decoder 122 picks-up the next S2 bits from the first bit stream BS1, and decodes them in two-complement notation to determine the second difference value D(i,j,2), yielding S(i,j,3) = S(i,j,2) + D(i,j,2) as encoding size for the third pair of integer coefficients (i.e., by adding the second difference value D(i,j,2) to the previously determined encoding size S(i,j,2)). The lossless decoder 122 picks-up twice S(i,j,3) bits from the second bit stream BS2, and decodes the third pair of unsigned integer values {U(i,j,5); U(i,j,6)}. The lossless decoder 122 prepends S1-S(i,j,3) most significant bits set to '0' to the decoded binary words so as their length conform to the nominal number of bits S1.

    [0122] And so forth with the remaining difference values and with the remaining pairs of unsigned integer coefficients, yielding a complete sequence of recovered pairs of unsigned integer coefficients {U(i,j,n)}n=1,2,..., each element of the sequence being encoded using the nominal number of bits S1.

    [0123] The unsigned integer coefficient u(i,j,n) are converted into respective signed integer coefficients X(i,j,n) in two's complement binary notation by reverting the previous assignment (2), whereby even integer values correspond to positive or null integers and odd integer values correspond to negative integers.

    [0124] The sequence of signed integers {X(i,j,n)}n=i,2,... is fed to the lossy decoder 123. The lossy decoder 123 appends q least significant bits preferably set to '0' to the signed integers to recover the default word size that is used in the MAC unit 125. The sequence of the so-stuffed binary words {X(i,j,n)}n=1,2,... is supplied to the interpolator 124.

    [0125] The interpolator 124 first assigns the odd-indexed coefficient values X(i,j,2l-1) as the real parts of the vectoring coefficients at the respective reference tones kl, namely real (P/Qij,kl) = X(i,j,2l-1), and the even-indexed coefficient values X(i,j,2l) as the imaginary parts of the vectoring coefficients at the respective reference tones kl, namely imag(P/Qij,kl) = X(i,j,2l). The interpolator 124 derives the position of the reference tones in that particular sub-band from the sub-sampling factor fsub read from the register memory. The interpolator 124 passes the complex vectoring coefficients P/Qij,kl at the reference tones kl to the MAC unit 125.

    [0126] Next, the interpolator 124 determines the vectoring coefficient values at the intermediary tones k with kl < k < kl+1 by constant (a.k.a. zero-hold), linear or polynomial interpolation from the vectoring coefficient values at one or more reference tones. The interpolated complex vectoring coefficients P/Qij,k at the intermediary tones k are passed to the MAC unit 125.

    [0127] If the vectoring coefficients are encoded and stored as difference values, then the interpolator 124 needs first to derive the correct vectoring coefficient values from the decoded difference values and the previously-determined coefficient values before proceeding further with coefficient interpolation.

    [0128] The MAC unit 125 is configured to multiply, for each victim line Li, a vectored of user downstream data samples uk with the precoding matrix row Pi.,k for generating a pre-compensated transmit sample xk. The pre-compensated transmit sample xi,k is returned to the transceiver 110i for further transmission over line Li.

    [0129] Similarly, the MAC unit 125 is configured to multiply, for each victim line Li, a vectored of received upstream data samples yk with the postcoding matrix row Qi.,k for generating a post-compensated receive sample y'i,k. The post-compensated receive sample y'i,k is returned to the transceiver 110i for further detection.

    [0130] In an alternative example not belonging to the invention, the real and imaginary parts of the vectoring coefficients are split into two distinct sequences to be encoded separately by the lossless encoder 133 using respective (and possibly different) encoding sizes. This could be the case for instance if the real and imaginary parts of the vectoring coefficients exhibit low-correlation between each other.

    [0131] In still an alternative example not belonging to the invention, the sequence of signed integers {X(i,j,n)}n=1,2,... are directly encoded in two-complement notation.

    [0132] The minimum required numbers of bits are determined as:

    wherein the function f is defined as:



    [0133] The sequence {S(i,j,l)}1=1,2,... is then adjusted as per equations (4), (5) and (6), or as per equations (7), (5) and (6), to yield a new sequence of constrained encoding sizes {S(i,j,l)}l=1,2,....

    [0134] As an illustrative example, the table below gives the minimum required numbers of bits and corresponding codewords when directly encoding the signed integer values X(i,j,l).
    Original Integer valuesigned codewordMinimum Number of Bits
    -4 100 3
    -3 101 3
    -2 10 2
    -1 1 1
    0   0
    1 01 2
    2 010 3
    3 011 3
    4 0100 4


    [0135] If a higher number of bits than the minimum required number of bits is used, then an appropriate number of '0' or '1' digits need to be prepended to the original codeword depending on the integer's sign. For instance, '-4' would be encoded as '1100' if 4 bits were actually used (instead of 3), and '+4' would be encoded as '00100' if 5 bits were actually used (instead of 4).

    [0136] Similarly, the lossless decoder 122 prepends S1 - S(i,j,l) most significant bits set to '0' to the decoded binary words if their most significant bit is equal to '0' (positive integer values), or prepends S1 - S(i,j,l) most significant bits set to '1' to the decoded binary words if their most significant bit is equal to '1' (negative integer values). The signed integer values are then stuffed with q least significant bits preferably set to '0'.

    [0137] In still an alternative example not belonging to the invention, the lossless decoder 133 determines the sequence of constrained sizes {S(i,j,l)}l=1,2,... by first initializing its elements to the nominal value S1, and then by decrementing its second and subsequent elements as much as possible while fulfilling both conditions (5) and (6).

    [0138] In still an alternative example not belonging to the invention, the coefficient integer values are represented in floating point representation. Typically, the exponent value is encoded as a single integer value valid for both the real and imaginary parts of the vectoring coefficients, and possibly as a single integer value further valid for all the tones of a tone group. The sequences of real and imaginary mantissa values for each and every disturber line - victim line combination and for each and everv sub-band are then differentially encoded as per the present invention.

    [0139] Another numeral system other than the binary system could be used as well, in which case the base-2 logarithm in the above formulas is to be replaced by the base-M logarithm, M denoting the radix (or base) of the considered numeral system.

    [0140] Last, the proposed compression and decompression schemes could also be used for storing and retrieving the coefficient values of the channel matrix or normalized channel matrix at the reference tones, or for storing the coefficient values of a matrix decomposition of the channel matrix or normalized channel matrix at the reference tones, such as LU matrix decomposition, QR matrix decomposition or singular value matrix decomposition.

    [0141] It is to be noticed that the term 'comprising' should not be interpreted as being restricted to the means listed thereafter. Thus, the scope of the expression 'a device comprising means A and B' should not be limited to devices consisting only of components A and B. It means that with respect to the present invention, the relevant components of the device are A and B.

    [0142] It is to be further noticed that the term 'coupled' should not be interpreted as being restricted to direct connections only. Thus, the scope of the expression 'a device A coupled to a device B' should not be limited to devices or systems wherein an output of device A is directly connected to an input of device B, and/or vice-versa. It means that there exists a path between an output of A and an input of B, and/or vice-versa, which may be a path including other devices or means.

    [0143] The description and drawings merely illustrate the principles of the invention. It will thus be appreciated that those skilled in the art will be able to devise various arrangements that, although not explicitly described or shown herein, embody the principles of the invention. Furthermore, all examples recited herein are principally intended expressly to be only for pedagogical purposes to aid the reader in understanding the principles of the invention and the concepts contributed by the inventor(s) to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions.

    [0144] The functions of the various elements shown in the figures may be provided through the use of dedicated hardware as well as hardware capable of executing software in association with appropriate software. When provided by a processor, the functions may be provided by a single dedicated processor, by a single shared processor, or by a plurality of individual processors, some of which may be shared. Moreover, a processor should not be construed to refer exclusively to hardware capable of executing software, and may implicitly include, without limitation, Digital Signal Processor (DSP) hardware, network processor, Application Specific Integrated Circuit (ASIC), Field Programmable Gate Array (FPGA), etc. Other hardware, conventional and/or custom, such as Read Only Memory (ROM), Random Access Memory (RAM), and non volatile storage, may also be included.


    Claims

    1. A method for encoding a first sequence of integer coefficient values ({X(i,j,2l-1)}l=1,2...; {X(i,j,2l)}l=1,2,...) indicative of coupling coefficient values,
    wherein the method comprises:

    - determining a second sequence of numbers of digits for encoding the respective integer coefficient values of the first sequence, the second sequence comprising, as first element, a first number of digits for encoding the first integer coefficient value of the first sequence, and as second and subsequent elements, constrained numbers of digits that are greater than or equal to respective minimum required numbers of digits for encoding the second and subsequent integer coefficient values of the first sequence, the constrained numbers of digits being such that any two successive elements of the second sequence do not differ from each other by more than a given threshold value;

    - encoding difference values between the successive elements of the second sequence; and

    - encoding the integer coefficient values of the first sequence using the respective numbers of digits of the second sequence,

    and wherein the coupling coefficient values are vectoring or channel coefficient values.
     
    2. A method according to claim 1, wherein the method further comprises encoding a further first sequence of integer coefficient values using the respective numbers of digits of the second sequence,
    and wherein the constrained numbers of digits are greater than or equal to respective further minimum required numbers of digits for encoding the second and subsequent integer coefficient values of the further first sequence.
     
    3. A method according to claim 1, wherein the first number of digits is a nominal number of digits preliminarily known.
     
    4. A method according to claim 1, wherein the method further comprises:

    - adjusting the first number of digits of the second sequence; and

    - encoding the so-adjusted first number of digits of the second sequence.


     
    5. A method according to claim 1, wherein the method further comprises:

    - initializing the second and subsequent numbers of digits of the second sequence as being equal to the respective minimum required numbers of digits; and

    - incrementing at least one of the second and subsequent numbers of digits of the second sequence till the successive elements of the second sequence do not differ from each other by more than the given threshold value.


     
    6. A method according to claim 1, wherein the coupling coefficient values are vectoring coefficient values (P/Qij,k) for use in a vectoring processor (120), the encoding is for the storage of the integer coefficient values in a memory area (121) of the vectoring processor, and the first sequence corresponds to a particular disturber-victim combination.
     
    7. A method according to claim 1, wherein the integer coefficient values are indicative of respective quantization intervals wherein the respective coupling coefficient values are enclosed.
     
    8. A method according to claim 1, wherein the difference values are each encoded using ceil(LogM(2T+1)) digits, M denoting a radix of the numeral system that is used for representing integer values, T denoting the given threshold value, and Ceil(x) denoting the lowest integer value that is greater than or equal to x.
     
    9. A method according to claim 1, wherein the difference values are encoded using a variable-length code.
     
    10. An encoder (133) for encoding a first sequence of integer coefficient values ({X(i,j,2l-1)}l=1,2,...; {X(i,j,2l)}l=1,2,...) indicative of coupling coefficient values,
    wherein the encoder is configured:

    - to determine a second sequence of constrained numbers of digits for encoding the respective integer coefficient values of the first sequence, the second sequence comprising, as first element, a first number of digits for encoding the first integer coefficient value of the first sequence, and as second and subsequent elements, constrained numbers of digits that are greater than or equal to respective minimum required numbers of digits for encoding the second and subsequent integer coefficient values of the first sequence, the constrained numbers of digits being such that any two successive elements of the second sequence do not differ from each other by more than a given threshold value;

    - to encode difference values between the successive elements of the second sequence; and

    - to encode the integer coefficient values of the first sequence using the respective numbers of digits of the second sequence,

    and wherein the coupling coefficient values are vectoring or channel coefficient values.
     
    11. A vectoring controller (130) comprising an encoder (133) according to claim 10.
     
    12. A method for decoding a first sequence of encoded integer coefficient values ({X(i,j,2l-1)}l=1,2,...; {X(i,j,2l)}l=1,2,...) indicative of coupling coefficient values, wherein the method comprises:

    - decoding a first integer coefficient value of the first sequence using a first number of digits;

    - decoding difference values between successive elements of a second sequence of numbers of digits, the second sequence having the first number of digits as first element;

    - determining second and subsequent numbers of digits of the second sequence from the difference values; and

    - decoding second and subsequent integer coefficient values of the first sequence using the respective so-determined second and subsequent numbers of digits of the second sequence,

    and wherein the coupling coefficient values are vectoring or channel coefficient values.
     
    13. A method according to claim 12, wherein the first number of digits is a nominal number of digits preliminarily known.
     
    14. A method according to claim 12, wherein the method initially comprises decoding the first number of digits.
     
    15. A method according to claim 12, wherein the coupling coefficient values are vectoring coefficient values (P/Qij,k) for use in a vectoring processor (120), the decoding is for the reading of the encoded integer coefficient values from a memory area (121) of the vectoring processor, and the first sequence corresponds to a particular disturber-victim combination.
     
    16. A decoder (122) for decoding a first sequence of encoded integer coefficient values ({X(i,j,2l-1)}l=1,2,...; {X(i,j,2l)}l=1,2,...) indicative of coupling coefficient values,
    wherein the decoder is configured:

    - to decode a first integer coefficient value of the first sequence using a first number of digits;

    - to decode difference values between successive elements of a second sequence of numbers of digits, the second sequence having the first number of digits as first element;

    - to determine second and subsequent numbers of digits of the second sequence from the difference values; and

    - to decode second and subsequent integer coefficient values of the first sequence using the respective so-determined second and subsequent numbers of digits of the second sequence,

    and wherein the coupling coefficient values are vectoring or channel coefficient values.
     
    17. A vectoring processor (120) comprising a decoder (122) according to claim 16.
     
    18. An access node (100) comprising a vectoring controller (130) according to claim 11, and a vectoring processor (120) according to claim 17.
     


    Ansprüche

    1. Verfahren zum Codieren einer ersten Abfolge von ganzzahligen Koeffizientenwerten ({x(i,j,2l-1)}l=1,2,...; {x(i,j,2l)}l=1,2,...), die Kopplungskoeffizientenwerte angeben,
    wobei das Verfahren umfasst:

    - Bestimmen einer zweiten Abfolge von Zahlen von Ziffern zum Codieren der jeweiligen ganzzahligen Koeffizientenwerte der ersten Abfolge, die zweite Abfolge umfassend, als erstes Element, eine erste Zahl von Ziffern zum Codieren der ersten ganzzahligen Koeffizientenwerte der ersten Abfolge, und, als zweite und nachfolgende Elemente, beschränkte Zahlen von Ziffern, die größer als oder gleich jeweiligen mindestens erforderlichen Zahlen von Ziffern zum Codieren der zweiten und nachfolgender ganzzahliger Koeffizientenwerte der ersten Abfolge sind, wobei die beschränkten Zahlen von Ziffern derart sind, dass beliebige zwei aufeinanderfolgende Elemente der zweiten Abfolgen sich um nicht mehr als einen gegebenen Schwellenwert voneinander unterscheiden;

    - Codieren von Differenzwerten zwischen den aufeinanderfolgenden Elementen der zweiten Abfolge; und

    - Codieren der ganzzahligen Koeffizientenwerte der ersten Abfolge unter Verwendung der jeweiligen Zahlen von Ziffern der zweiten Abfolge,

    und wobei die Kopplungskoeffizientenwerte Vectoring- oder Kanalkoeffizientenwerte sind.
     
    2. Verfahren nach Anspruch 1, wobei das Verfahren ferner umfasst, eine weitere erste Abfolge von ganzzahligen Koeffizientenwerten unter Verwendung der jeweiligen Zahlen von Ziffern der zweiten Abfolge zu codieren,
    und wobei die beschränkten Zahlen von Ziffern größer als oder gleich jeweiligen weiteren mindestens erforderlichen Zahlen von Ziffern zum Codieren der zweiten und nachfolgender ganzzahliger Koeffizientenwerte der weiteren ersten Abfolge sind.
     
    3. Verfahren nach Anspruch 1, wobei die erste Zahl von Ziffern eine nominale Zahl von Ziffern ist, die einleitend bekannt ist.
     
    4. Verfahren nach Anspruch 1, wobei das Verfahren ferner umfasst:

    - Anpassen der ersten Zahl von Ziffern der zweiten Abfolge; und

    - Codieren der derart angepassten ersten Zahl von Ziffern der zweiten Abfolge.


     
    5. Verfahren nach Anspruch 1, wobei das Verfahren ferner umfasst:

    - Initialisieren der zweiten und nachfolgender Zahlen von Ziffern der zweiten Abfolge, gleich den jeweiligen mindestens erforderlichen Zahlen von Ziffern zu sein; und

    - Inkrementieren mindestens einer der zweiten und nachfolgenden Zahlen von Ziffern der zweiten Abfolge, bis die aufeinanderfolgenden Elemente der zweiten Abfolge sich um nicht mehr als den gegebenen Schwellenwert voneinander unterscheiden.


     
    6. Verfahren nach Anspruch 1, wobei die Kopplungskoeffizientenwerte Vectoring-Koeffizientenwerte (P/Qij,k) zur Verwendung in einem Vectoring-Prozessor (120) sind, das Codieren zum Speichern der ganzzahligen Koeffizientenwerte in einem Speicherbereich (121) des Vectoring-Prozessors ist und die erste Abfolge mit einer besonderen Störer-Opfer-Kombination korrespondiert.
     
    7. Verfahren nach Anspruch 1, wobei die ganzzahligen Koeffizientenwerte jeweilige Quantisierungsintervalle angeben, wobei die jeweiligen Kopplungskoeffizientenwerte enthalten sind.
     
    8. Verfahren nach Anspruch 1, wobei die Differenzwerte jeweils unter Verwendung von Ceil(LogM(2T+1)) Ziffern codiert werden, M eine Basis des numerischen Systems, das zum Repräsentieren von ganzzahligen Werten verwendet wird, kennzeichnet, T den gegebenen Schwellenwert kennzeichnet und Ceil(x) den kleinsten ganzzahligen Wert kennzeichnet, der größer als oder gleich x ist.
     
    9. Verfahren nach Anspruch 1, wobei die Differenzwerte unter Verwendung eines Codes variabler Länge codiert werden.
     
    10. Codierer (133) zum Codieren einer ersten Abfolge von ganzzahligen Koeffizientenwerten ({x(i,j,2l-1)}l=1,2,...; {x(i,j,2l)}l=1,2,...), die Kopplungskoeffizientenwerte angeben,
    wobei der Codierer konfiguriert ist:

    - zum Bestimmen einer zweiten Abfolge von beschränkten Zahlen von Ziffern zum Codieren der jeweiligen ganzzahligen Koeffizientenwerte der ersten Abfolge, die zweite Abfolge umfassend, als erstes Element, eine erste Zahl von Ziffern zum Codieren der ersten ganzzahligen Koeffizientenwerte der ersten Abfolge, und, als zweite und nachfolgende Elemente, beschränkte Zahlen von Ziffern, die größer als oder gleich jeweiligen mindestens erforderlichen Zahlen von Ziffern zum Codieren der zweiten und nachfolgender ganzzahliger Koeffizientenwerte der ersten Abfolge sind, wobei die beschränkten Zahlen von Ziffern derart sind, dass beliebige zwei aufeinanderfolgende Elemente der zweiten Abfolgen sich um nicht mehr als einen gegebenen Schwellenwert voneinander unterscheiden;

    - zum Codieren von Differenzwerten zwischen den aufeinanderfolgenden Elementen der zweiten Abfolge; und

    - zum Codieren der ganzzahligen Koeffizientenwerte der ersten Abfolge unter Verwendung der jeweiligen Zahlen von Ziffern der zweiten Abfolge,

    und wobei die Kopplungskoeffizientenwerte Vectoring- oder Kanalkoeffizientenwerte sind.
     
    11. Vectoring-Steuerung (130), umfassend einen Codierer (133) nach Anspruch 10.
     
    12. Verfahren zum Decodieren einer ersten Abfolge von codierten ganzzahligen Koeffizientenwerten ({x(i,j,2l-1)}l-1,2,...; {x(i,j,2l)}l=1,2,...), die Kopplungskoeffizientenwerte angeben,
    wobei das Verfahren umfasst:

    - Decodieren eines ersten ganzzahligen Koeffizientenwerts der ersten Abfolge unter Verwendung einer ersten Zahl von Ziffern;

    - Decodieren von Differenzwerten zwischen aufeinanderfolgenden Elementen einer zweiten Abfolge von Zahlen von Ziffern, wobei die zweite Abfolge die erste Zahl von Ziffern als erstes Element aufweist;

    - Bestimmen zweiter und nachfolgender Zahlen von Ziffern der zweiten Abfolge aus den Differenzwerten; und

    - Decodieren zweiter und nachfolgender ganzzahliger Koeffizientenwerte der ersten Abfolge unter Verwendung der jeweiligen derart bestimmten zweiten und nachfolgenden Zahlen von Ziffern der zweiten Abfolge,

    und wobei die Kopplungskoeffizientenwerte Vectoring- oder Kanalkoeffizientenwerte sind.
     
    13. Verfahren nach Anspruch 12, wobei die erste Zahl von Ziffern eine nominale Zahl von Ziffern ist, die einleitend bekannt ist.
     
    14. Verfahren nach Anspruch 12, wobei das Verfahren anfangs umfasst, die erste Zahl von Ziffern zu decodieren.
     
    15. Verfahren nach Anspruch 12, wobei die Kopplungskoeffizientenwerte Vectoring-Koeffizientenwerte (P/Qij,k) zur Verwendung in einem Vectoring-Prozessor (120) sind, das Decodieren zum Lesen der codierten ganzzahligen Koeffizientenwerte aus einem Speicherbereich (121) des Vectoring-Prozessors ist und die erste Abfolge mit einer besonderen Störer-Opfer-Kombination korrespondiert.
     
    16. Decodierer (122) zum Decodieren einer ersten Abfolge von codierten ganzzahligen Koeffizientenwerten ({x(i,j,2l-1)}l=1,2,...; {x(i,j,2l)}l=1,2,...), die Kopplungskoeffizientenwerte angeben,
    wobei der Decodierer konfiguriert ist:

    - zum Decodieren eines ersten ganzzahligen Koeffizientenwerts der ersten Abfolge unter Verwendung einer ersten Zahl von Ziffern;

    - zum Decodieren von Differenzwerten zwischen aufeinanderfolgenden Elementen einer zweiten Abfolge von Zahlen von Ziffern, wobei die zweite Abfolge die erste Zahl von Ziffern als erstes Element aufweist;

    - zum Bestimmen zweiter und nachfolgender Zahlen von Ziffern der zweiten Abfolge aus den Differenzwerten; und

    - zum Decodieren zweiter und nachfolgender ganzzahliger Koeffizientenwerte der ersten Abfolge unter Verwendung der jeweiligen derart bestimmten zweiten und nachfolgenden Zahlen von Ziffern der zweiten Abfolge,

    und wobei die Kopplungskoeffizientenwerte Vectoring- oder Kanalkoeffizientenwerte sind.
     
    17. Vectoring-Prozessor (120), umfassend einen Decodierer (122) nach Anspruch 16.
     
    18. Zugangsknoten (100), umfassend eine Vectoring-Steuerung (130) nach Anspruch 11 und einen Vectoring-Prozessor (120) nach Anspruch 17.
     


    Revendications

    1. Procédé de codage d'une première séquence de valeurs de coefficient d'entier ({X*(i,j,2l-1)}l=1,2,... ; {X*(i,j, 2l)}l=1,2,...) indiquant des valeurs de coefficient de couplage,
    le procédé comprenant :

    - la détermination d'une deuxième séquence de nombres de chiffres pour coder les valeurs de coefficient d'entier respectives de la première séquence, la deuxième séquence comprenant, comme premier élément, un premier nombre de chiffres pour coder la première valeur de coefficient d'entier de la première séquence, et comme deuxième élément et éléments suivants, des nombres de chiffres contraints qui sont supérieurs ou égaux aux nombres de chiffres minimaux exigés et respectifs pour coder la deuxième valeur de coefficient d'entier et les valeurs de coefficient d'entier suivantes de la première séquence, les nombres de chiffres contraints étant tels que deux éléments successifs quelconques de la deuxième séquence ne diffèrent pas l'un de l'autre de plus d'une valeur seuil donnée ;

    - le codage des valeurs de différence entre les éléments successifs de la deuxième séquence ; et

    - le codage des valeurs de coefficients d'entier de la première séquence à l'aide des nombres de chiffres respectifs de la deuxième séquence, et les valeurs de coefficients de couplage étant des valeurs de coefficients de vectoring ou de canal.


     
    2. Procédé selon la revendication 1, le procédé comprenant en outre le codage d'une première séquence de valeurs de coefficients d'entier supplémentaire à l'aide des nombres de chiffres respectifs de la deuxième séquence,
    et les nombres de chiffres contraints étant supérieurs ou égaux aux nombres de chiffres minimaux exigés et respectifs pour le codage de la deuxième valeur de coefficient d'entier et des valeurs de coefficient d'entier suivantes de la première séquence.
     
    3. Procédé selon la revendication 1, le premier nombre de chiffres étant un nombre de chiffres nominal connu au préalable.
     
    4. Procédé selon la revendication 1, le procédé comprenant en outre :

    - l'ajustement du premier nombre de chiffres de la deuxième séquence ; et

    - le codage du premier nombre de chiffres ainsi ajusté de la deuxième séquence.


     
    5. Procédé selon la revendication 1, le procédé comprenant en outre :

    - l'initialisation du deuxième nombre et des nombres de chiffres suivants de la deuxième séquence comme étant égaux aux nombres de chiffres minimaux exigés et respectifs ; et

    - l'incrémentation d'au moins un du deuxième nombre de chiffres et des nombres de chiffres suivants de la deuxième séquence jusqu'à ce que les éléments successifs de la deuxième séquence ne diffèrent pas les uns des autres de plus de la valeur seuil donnée.


     
    6. Procédé selon la revendication 1, les valeurs de coefficient de couplage étant des valeurs de coefficient de vectoring (P/Qij,k) destinées à être utilisées dans un processeur de vectoring (120), le codage étant destiné au stockage des valeurs de coefficient d'entier dans une zone de mémoire (121) du processeur de vectoring, et la première séquence correspondant à une combinaison particulière perturbateur-victime.
     
    7. Procédé selon la revendication 1, les valeurs de coefficients d'entier étant indicatives d'intervalles de quantification respectifs, les valeurs de coefficients de couplage respectives étant incluses.
     
    8. Procédé selon la revendication 1, les valeurs de différence étant chacune codées à l'aide des chiffres Ceil(LogM(2T+1)), M désignant une base de numération du système numérique qui est utilisé pour représenter des valeurs d'entier, T désignant la valeur de seuil donnée, et Ceil(x) désignant la valeur d'entier la plus basse qui est supérieure ou égale à x.
     
    9. Procédé selon la revendication 1, les valeurs de différence étant codées à l'aide d'un code à longueur variable.
     
    10. Codeur (133) pour coder une première séquence de valeurs de coefficient d'entier ({X(i,j,2l-1)}l=1,2,... ; {X(i,j,2l)}l=1,2,...) indicatives de valeurs de coefficients de couplage, le codeur étant configuré :

    - pour déterminer une deuxième séquence de nombres de chiffres contraints pour coder les valeurs de coefficient d'entier respectives de la première séquence, la deuxième séquence comprenant, comme premier élément, un premier nombre de chiffres pour coder la première valeur de coefficient d'entier de la première séquence, et comme deuxième élément et éléments suivants, des nombres de chiffres contraints qui sont supérieurs ou égaux aux nombres de chiffres minimaux exigés et respectifs pour coder la deuxième valeur de coefficient d'entier et les valeurs de coefficient d'entier suivantes de la première séquence, les nombres de chiffres contraints étant tels que deux éléments successifs quelconques de la deuxième séquence ne diffèrent pas l'un de l'autre de plus d'une valeur seuil donnée ;

    - pour coder les valeurs de différence entre les éléments successifs de la deuxième séquence ; et

    - pour coder les valeurs de coefficient d'entier de la première séquence à l'aide des nombres de chiffres respectifs de la deuxième séquence,

    et les valeurs de coefficients de couplage étant des valeurs de coefficients de vectoring ou de canal.
     
    11. Dispositif de commande de vectoring (130) comprenant un codeur (133) selon la revendication 10.
     
    12. Procédé de décodage d'une première séquence de valeurs de coefficient d'entier codés ({X(i,j,2l-1)}l=1,2,... ; {X(i,j,2l)}l=1,2,...) indicatives de valeurs de coefficient de couplage, le procédé comprenant :

    - le décodage d'une première valeur de coefficient d'entier de la première séquence à l'aide d'un premier nombre de chiffres ;

    - le décodage de valeurs de différence entre des éléments successifs d'une deuxième séquence de nombres de chiffres, la deuxième séquence ayant le premier nombre de chiffres comme premier élément ;

    - la détermination du deuxième nombre de chiffres et des nombres de chiffres suivants de la deuxième séquence à partir des valeurs de différence ; et

    - le décodage de la deuxième valeur de coefficient d'entier et des valeurs de coefficient d'entier suivantes de la première séquence à l'aide du deuxième nombre de chiffres et des nombres de chiffres suivants respectifs ainsi déterminés,

    et les valeurs de coefficient de couplage étant des valeurs de coefficient de vectoring ou de canal.
     
    13. Procédé selon la revendication 12, le premier nombre de chiffres étant un nombre de chiffres nominal connu au préalable.
     
    14. Procédé selon la revendication 12, le procédé comprenant initialement le décodage du premier nombre de chiffres.
     
    15. Procédé selon la revendication 12, les valeurs de coefficient de couplage étant des valeurs de coefficient de vectoring (P/Qij,k) destinées à être utilisées dans un processeur de vectoring (120), le décodage étant destiné à la lecture des valeurs de coefficient d'entier codées à partir d'une zone de mémoire (121) du processeur de vectoring, et la première séquence correspondant à une combinaison perturbateur-victime particulière.
     
    16. Décodeur (122) pour décoder une première séquence de valeurs de coefficient d'entier codés ({X(i,j,2l-1)}l=1,2,... ; {X(i,j,2l)}l=1,2,...) indicatives de valeurs de coefficients de couplage,
    le décodeur étant configuré :

    - pour décoder une première valeur de coefficient d'entier de la première séquence à l'aide d'un premier nombre de chiffres ;

    - pour décoder des valeurs de différence entre des éléments successifs d'une deuxième séquence de nombres de chiffres, la deuxième séquence ayant le premier nombre de chiffres comme premier élément ;

    - pour déterminer le deuxième nombre de chiffres et les nombres de chiffres suivants de la deuxième séquence à partir des valeurs de différence ; et

    - pour décoder la deuxième valeur de coefficient d'entier et les valeurs de coefficient d'entier suivantes de la première séquence à l'aide du deuxième nombre de chiffres et des nombres de chiffres suivants respectifs ainsi déterminés de la deuxième séquence,

    et les valeurs de coefficient de couplage étant des valeurs de coefficient de vectoring ou de canal.
     
    17. Processeur de vectoring (120) comprenant un décodeur (122) selon la revendication 16.
     
    18. Nœud d'accès (100) comprenant un dispositif de commande de vectoring (130) selon la revendication 11, et un processeur de vectoring (120) selon la revendication 17.
     




    Drawing














    Cited references

    REFERENCES CITED IN THE DESCRIPTION



    This list of references cited by the applicant is for the reader's convenience only. It does not form part of the European patent document. Even though great care has been taken in compiling the references, errors or omissions cannot be excluded and the EPO disclaims all liability in this regard.

    Patent documents cited in the description