Coding of a plurality of binary input data words into one codeword
21 claims: 13 independent, 8 dependent
- 1Verfahren zur Codierung eines ersten Datenwertes, der durch ein erstes Datenwort (d1) repräsentiert ist, und wenigstens eines zweiten Datenwertes, der durch ein zweites Datenwort (d2) repräsentiert ist, in ein codiertes Datenwort (d3), das folgende Verfahrensschritte umfasst:- Ermitteln eines ersten Approximationswertes, dem ein erstes Codewort (c1) zugeordnet ist, für den ersten Datenwert, und eines zweiten Approximationswertes, dem ein zweites Codewort (c2) zugeordnet ist, für den zweiten Datenwert, wobei eine Anzahl Approximationswerte vorgegeben sind, und wobei als Approximationswert für einen Datenwert der Approximationswert aus der Anzahl der Approximationswerte ausgewählt wird, der kleiner als der Datenwert ist und der sich im Vergleich zu weiteren der Approximationswerte betragsmäßig am wenigsten von dem Datenwert unterscheidet, - Abbilden des ersten Codewortes (c1) auf einen ersten Datenabschnitt des codierten Datenwortes (d3) und Abbilden des zweiten Codewortes (c2) auf einen zweiten Datenabschnitt des codierten Datenwortes, - Ermitteln einer ersten Differenz zwischen dem ersten Datenwert und dem ersten Approximationswert und Ermitteln einer zweiten Differenz zwischen dem zweiten Datenwert und dem zweiten Approximationswert und wenigstens teilweises Abbilden eines den ersten Differenzwert repräsentierenden ersten Differenz-Datenwortes und/oder eines den zweiten Differenzwert repräsentierenden zweiten Differenz-Datenwortes auf wenigstens einen zusätzlichen Datenabschnitt des codierten Datenwortes (d3), und wobei jedem der Approximationswerte eine Rangfolgenummer zugeordnet ist, die abhängig ist vom Betrag der Differenz zwischen einem der Approximationswerte und dem betragsmäßig nächstgrößeren oder nächstkleineren der Approximationswerte, wobei die Rangfolgenummern der Approximationswerte verglichen werden und abhängig von diesem Vergleich ein Datenbit des ersten oder zweiten Datenwortes (d1, d2) auf den zusätzlichen Datenabschnitt abgebildet wird.
- 2Verfahren nach Anspruch 1, bei dem wenigstens einige der Approximationswerte keine Potenzen der Zahl 2 sind.
- 3Verfahren nach Anspruch 1 oder 2, bei dem sich ein Approximationswert von dem nächstgrößeren der Anzahl der Approximationswerte jeweils um eine Potenz der Zahl 2 unterscheidet.
- 4Verfahren nach einem der Ansprüche 1 bis 3, bei dem die Rangfolgenummer mit größer werdendem Betrag der Differenz größer wird.
- 5Verfahren nach Anspruch 4, bei dem die Rangfolgenummer der Anzahl der Bitpositionen entspricht, die erforderlich sind, um den Betrag der Differenz als binäres Datenwort darzustellen.
- 6Verfahren nach einem der Ansprüche 4 oder 5, bei dem in der Anzahl der Approximationswerte eine Gruppe von wenigstens zwei Approximationswerten existiert, von denen zwei benachbarte Approximationswerte jeweils einen Abstand besitzen, wobei dieser Abstand kleiner ist als der Abstand zwischen dem betragsmäßig kleinsten der Approximationswerte dieser Gruppe und dem nächstkleineren Approximationswert und kleiner ist als der Abstand zwischen dem betragsmäßig größten Approximationswert dieser Gruppe und dem nächstgrößeren Approximationswert.
- 7Verfahren nach einem der vorhergehenden Ansprüche, bei dem dem ersten Differenz-Datenwort die Rangfolgenummer des ersten Approximationswertes und dem zweiten Differenz-Datenwort die Rangfolgenummer des zweiten Approximationswertes zugeordnet wird und das folgende weitere Verfahrensschritte aufweist:a) Vergleichen der Rangfolgenummern des ersten und zweiten Differenz-Datenwortes, b) Auswählen eines Differenz-Datenworts aus dem ersten und dem wenigstens einen zweiten Differenz-Datenwort abhängig von diesem Vergleich, c) Abbilden des Datenbits der höchsten relevanten Bitposition des in Schritt b) ausgewählten Differenz-Datenworts auf eine Bitposition des zusätzlichen Datenabschnitts.
- 8Verfahren nach Anspruch 7, das folgende weitere Verfahrensschritte umfasst:d) Reduzieren der Rangfolgenummer des ausgewählten Differenz-Datenwortes um einen vorgegebenen Wert und Bilden eines neuen Differenz-Datenwortes aus dem ausgewählten Datenwort durch Streichen der höchsten relevanten Bitposition. e) Wiederholen der Verfahrensschritte a) bis d) bis eine vorgegebene Endbedingung erreicht ist.
- 9Verfahren nach einem der Ansprüche 7 oder 8, bei dem die Rangfolgenummer eine ganze Zahl ist und bei dem der vorgegebene Wert, um den die Rangfolgenummer reduziert wird, Eins ist.
- 10Verfahren nach Anspruch 8 oder 9, bei dem im Verfahrensschritt b) das Differenz-Datenwort mit der kleinsten Rangfolgenummer ausgewählt wird.
- 11Verfahren nach Anspruch 10, bei dem festgelegt ist, welches Differenz-Datenwort ausgewählt wird, wenn mehrere Differenz-Datenworte jeweils die kleinste Rangfolgenummer aufweisen.
- 12Verfahren nach Anspruch 8 oder 9, bei dem einem der Datenworte von dem ersten und dem wenigstens einen zweiten Datenwort eine Codierungspriorität zugewiesen ist, wobei im Verfahrensschritt b) stets das Datenwort mit der Codierungspriorität ausgewählt wird, wenn die Differenz zwischen der Rangfolgenummer des Differenz-Datenwortes mit der Codierungspriorität und der nächstkleineren Rangfolgenummer kleiner ist als ein vorgegebener Wert.
- 13Verfahren nach einem der Ansprüche 8 bis 12, bei dem die Endbedingung erfüllt ist, wenn alle zusätzlichen Datenbits des codierten Datenwortes besetzt sind.
- 14Verfahren einem der Ansprüche 8 bis 12, bei dem die Endbedingung erfüllt ist, wenn ein aus der Kodierung resultierender Kodierungsfehler für wenigstens eines der wenigstens zwei Datenworte (d1, d2) unterhalb einer vorgegebenen Schwelle liegt.
- 15Verfahren nach einem der Ansprüche 8 bis 12, bei dem die Endbedingung erfüllt ist, wenn von wenigstens einem der wenigstens zwei Datenworte (d1, d2) alle Datenbits auf das codierte Datenwort abgebildet sind.
- 16Verfahren nach einem der vorangehenden Ansprüche, bei dem die Datenworte differentielle Datenwerte repräsentieren.
- 17Verfahren nach einem der vorangehenden Ansprüche, bei dem die ersten und zweiten Datenwerte Bildinformationswerte eines Bildpunktes bei der Bildverarbeitung repräsentieren.
- 18Verfahren nach einem der vorangehenden Ansprüche, bei dem das erste Datenwort einen Luminanzwert oder einen differentiellen Luminanzwert und das zweite Datenwort einen Chrominanzwert oder einen differentiellen Chrominanzwert repräsentiert.
- 19Verfahren nach einem der vorangehenden Ansprüche, bei dem das ersten Datenwort und das zweite Datenwort unterschiedlich viele Datenbits umfassen.
- 20Verfahren nach einem der vorangehenden Ansprüche, bei dem alle ersten Codewörter eine gleiche Anzahl Codebits umfassen und/oder bei dem alle zweiten Codewörter eine gleiche Anzahl Codebits umfassen.
- 21Verfahren nach einem der vorangehenden Ansprüche, bei dem die Anzahl der Codebits der ersten Codewörter variiert und/oder bei dem Anzahl der Codebits der zweiten Codewörter variiert.
Independent claims21
108 paragraphs, as filed
0001The present invention relates to a method for coding a first and second data word in order to obtain an encoded third data word. The invention relates in particular to a method for coding two data words, each of which represents differential data values, for example differential luminance values and differential chrominance values.
0002In image processing, it is well known to define individual pixels of an image in each case by a plurality of image information values, for example a luminance value (brightness value) and two chrominance values (color values). Such images are transmitted or stored in that the image information values of the individual pixels of the image are mapped in a predetermined sequence to a serial data stream which is stored or transmitted. For images in the so-called YUV format, the individual pixels are assigned a Y value as a luminance value and a U value and a V value as chrominance values, the number of Y, U and V assigned to an image depending on the special format Values varied. In the so-called 4: 4: 4 format, the same number of Y, U and V values are available for displaying an image, so each pixel is assigned a Y value, a U value and a V value. In 4: 2: 2 format, there are twice as many Y values as U and V values. The values of an image are transmitted or stored as a serial data sequence in such a way that every second transmitted data value is a Y value, which is alternately followed by a U value and a V value (Y1-U1-Y2-V1-Y3-U2 ...).
0003In order to reduce the data transmission rate when transmitting image or sound data, various coding methods are known. Such a coding method for reducing the data rate in the transmission of image or sound data is the so-called DPCM method (DPCM = Differential Pulse Code Modulation), which, for example, in Ohm, Jens-Rainer: "Digital image coding: representation, compression and Transfer ", Springer, 1995, ISBN 3-540,58579-6, pages 246 to 261.
0004In the DPCM method, instead of absolute values, differences in successive values of a data sequence are quantized and encoded. Assuming that in the transmission of sound data or image data with successive values, ie with two successive sound data representing values, brightness data representing values or color data representing values, small signal jumps from value to value occur more frequently than large signal jumps and that the eye is more tolerant when quantizing the jumps with large jumps than with smaller signal jumps, with the DPCM- Large difference values are coarser quantized, while smaller difference values are more finely quantized. The reduction in the transmission rate can be adjusted via the accuracy of the quantization.
0005The DPCM method is subsequently used for coding a luminance difference value and a chrominance difference value using <figref idref="f0001">Figure 1</figref> explained. Using this method, luminance difference values and chrominance difference values are encoded, which can each have amplitudes between -255 and +255. For an error-free coding of these values, 9 bits, namely 1 sign bit and 8 data bits, would be required. In order to reduce the transmission rate, only 7 bits, 1 sign bit and 6 data bits are provided in the known method for the luminance difference values, and only 5 bits, 1 sign bit and 4 data bits are provided for the transmission of the chrominance difference values. This results in a reduction in the required transmission rate or the required transmission bandwidth, but inevitably also a loss of information or an error resulting from the coding.
0006The difference values are related to the in <figref idref="f0001">Figure 1b</figref> Coding tables shown non-linearly quantized, the quantization becomes coarser with increasing amplitude of the difference value to be coded. For the luminance difference values, the quantization for amplitude values between 0 and 10 takes place in steps of one, and thus without quantization errors. From an amplitude value of 10, quantization takes place in steps of two, from an amplitude value 44 in steps of four and from an amplitude value of 128 in steps of eight. Does it apply e.g. B. to transmit a luminance difference value with an amplitude of 247, the value 240 is coded and transmitted for this purpose, which results in a quantization error of 7. When using the in<figref idref="f0001">Figure 1b</figref> shown quantization or coding table for chrominance difference values, which provides only 4 data bits for the transmission of chrominance difference values, the maximum quantization error for amplitude values greater than 128 is even 63, since from an amplitude value 128 quantization takes place in steps of 64.
0007The conversion of a luminance difference value and a chrominance difference value to a data word of length 12 bits is for a luminance difference value dY = 60 and a chrominance difference value dC = 19 in <figref idref="f0001">Figure 1c</figref> shown. In addition to the two sign bits, namely the sign bit Sgn<sub>y</sub> of the luminance difference value dY and the sign bit Sgn<sub>c</sub> of the chrominance difference value, the code words dY 'and dC' to be taken from the coding table are mapped onto the code word to be transmitted. In the example, the luminance difference value dY is transmitted without a quantization error, since the luminance difference value dY = 60 happens to correspond to one of the interval limit values specified in the luminance coding table. For the chrominance difference value dC = 19, which lies between the limit values 16 and 20 specified in the chrominance coding table, the difference value dC '= 16 is transmitted, which results in a quantization error of 3 for the chrominance difference value dC.
0008A disadvantage of the known method, in which two image information values, namely a luminance difference value and a chrominance difference value, are mapped onto a common coded data word, is that the quantization accuracy depends on the coding tables used, as a result of which the method is rigid and inflexible.
0009The <patcit id="pcit0001" dnum="DE10007171"><text>DE 100 07 171</text></patcit> describes a method for coding several data words in a common coded data word. In this method, the number of significant digits is first determined for each data word and significance information, which is dependent on the number of these digits, is assigned to each data word. The significance information is then stored in a coded data word and the individual data bits of the data words are mapped onto the coded data word, taking into account the significance information.
0010The <patcit id="pcit0002" dnum="US5438635A"><text>US 5,438,635</text></patcit> describes a method for the differential coding of three data values, each representing color values of an image point of a video image.
0011The aim of the present invention is to provide a method for coding at least one first data word comprising a number of data bits and a second data word comprising a number of data bits into a coded data word comprising a number of data bits, which ensures more flexible coding, that ensures lower quantization errors in the coding, at least for some value pairs of the first and second data words, and that is easy to implement.
0012This object is achieved by a method according to claim 1. Advantageous embodiments of this method are the subject of the dependent claims.
0013The invention relates to a method for coding a first data value and at least one second data value into a coded data word, which comprises the following method steps:<ul id="ul0001" list-style="dash"><li>Determining a first approximation value to which a first code word is assigned for the first data value and a second approximation value to which a second code word is assigned for the second data value,</li><li>Mapping the first code word to a first data section of the coded data word and mapping the second code word to a second data section of the coded data word,</li><li>Determining a first difference between the first data value and the first approximation value and determining a second difference between the second data value and the second approximation value and at least partially mapping a first difference data word representing the first difference value and / or a second difference data word representing the second difference value to at least one additional data section of the coded data word.</li></ul>
0014The first data value is preferably represented by a first data word comprising a number of data bits and the second data value is represented by a second data word comprising a number of data bits. A first approximation value is then preferably formed by determining the position of the most relevant data bit for the value of the first data word and forming the power of two of this bit position. Accordingly, a second is preferably formed by determining the position of the data bit which is the most relevant for the value of the second data word and by forming the power of two of this bit position.
0015Each data bit position of the first data word is preferably assigned at least one first code word individual for this bit position and each data bit position of a second data word is assigned at least one second code word individual for this bit position and a first ranking number is assigned to each bit position of the first data word and a second ranking number is assigned to each bit position of the second data word . The process includes the following additional process steps:<ol id="ol0001"><li>a) determining the highest relevant bit position for the value of the first data word and mapping the first code word assigned to this bit position onto a first data section of the coded data word,</li><li>b) determining the highest relevant bit position for the value of the second data word and mapping the second code word assigned to this bit position onto a second data section of the coded data word,</li><li>c) mapping the data bit of at least one bit position of the first or second data word that is lower in relation to the highest relevant bit position to at least one additional data section of the coded data word.</li></ol>
0016The mapping of the data bit of at least one bit position that is lower with respect to the highest relevant bit position corresponds to the mapping of the first and / or second difference onto the additional data section of the coded data word.
0017In this method, the ranking numbers of the highest relevant bit positions of the first and second data word are preferably compared and, depending on this comparison, a data bit of the first or second data word is mapped onto the additional data section. The ranking numbers of the individual bit positions can in particular be selected depending on a fictitious quantization error that would exist if only the information about the highest relevant bit position were coded or transmitted for the first and second data word. The next relevant data bit of that of the first and second data words for which the quantization error would be greater is preferably coded next.
0018The first and / or second data word can of course also include a sign in addition to the data bits. In addition to the first and second code words, these sign bits can be mapped onto the coded data word. In addition, there is also the possibility of taking the sign bit into account when generating the first and second code words which are mapped onto the coded data word. Thus, each bit position of the first data word can be assigned two first code words and each bit position of the second data word two second code words, each of which takes into account the bit position and the sign.
0019In addition to the first and second code words and possibly the sign bits, the coded data word preferably comprises a plurality of additional data sections to which data bits of the first and / or second data word are assigned in accordance with the following method steps:<ol id="ol0002"><li>c1) determining the ranking number of the bit position of the data bit of the first data word last mapped onto the coded data word and determining the ranking number of the data bit of the second data word last mapped onto the coded data word,</li><li>c2) comparing the ranking numbers,</li><li>c3) selecting one of the first and second data words depending on the comparison of the ranking numbers and mapping a data bit from this selected data word onto the coded data word,</li><li>c4) repeating process steps c1) to c3) until all additional data bits of the coded data word are occupied.</li></ol>
0020In this method, the data word is preferably selected in each case, the data bit last mapped onto the coded data word or the most relevant data bit previously mapped onto the coded data word having the higher ranking number. If the ranking numbers are identical, a data bit of a predefined one of the two data words is mapped onto the additional data section of the coded data word. If the first and second data words to be coded are, for example, a data word representing a luminance value and a data word representing a chrominance value, a data bit of the luminance value is preferably mapped onto the coded data word with the same ranking numbers in order to reduce the coding error of the luminance value. This is based on the knowledge that coding errors of the luminance value are more important for the viewer than coding errors of the chrominance value and should therefore preferably be reduced.
0021In particular, there is the possibility of assigning a coding priority to one of the first and second data words, wherein in method step c3) the data word with the coding priority is always selected in order to code a further data bit of this data word if the difference between the ranking number of the last mapped from this data word Data bits and the data bit last mapped from the other data word is smaller than a predetermined value.
0022The ranking numbers of the bit positions of the individual data words are selected, for example, so that they depend on the number of the bit position and form an ascending number sequence starting with the least relevant bit (LSB = Least Significant Bit) of the respective data word.
0023The data words encoded according to the method according to the invention represent in particular differential data values, in particular a luminance difference value and a chrominance difference value.
0024The code words assigned to the individual bit positions of the first and second data words can be selected such that they each comprise an equal number of code bits. Of course, however, there is also the possibility of selecting the code words so that the individual code words are of different lengths, which means that depending on the highest relevant bit position of the individual data words to be coded, different numbers of additional data sections are available for coding further data bits.
0025The present method is explained in more detail below with reference to figures.<dl id="dl0001" compact="compact"><dt>Figure 1</dt><dd>illustrates a DPCM method for coding two differential data words onto one coded data word according to the prior art.</dd><dt>Figure 2</dt><dd>illustrates the data length of the first and second data words and the encoded data word.</dd><dt>Figure 3</dt><dd>illustrates a coding table with first code words, each of which is assigned to a bit position of the first data word.</dd><dt>Figure 4</dt><dd>illustrates a coding table with second code words, each associated with a bit position of the second data word.</dd><dt>Figure 5</dt><dd>illustrates the encoding of a first and second data word onto the encoded data word using the data in FIGS <figref idref="f0002">Figures 3</figref> and <figref idref="f0003">4</figref> Coding tables shown according to the inventive method.</dd><dt>Figure 6</dt><dd>explains the reconstruction of transmitted data words on the receiver side and the error resulting from the coding.</dd><dt>Figure 7</dt><dd>illustrates another example of coding two data words on one coded data word (<figref idref="f0005">Figure 7a</figref>) and the reconstruction on the receiver side (<figref idref="f0005">Figure 7b</figref>) .</dd><dt>Figure 8</dt><dd>illustrates the encoding of signed first and second data words to an encoded data word.</dd><dt>Figure 9</dt><dd>shows a data value sequence comprising several successive data values.</dd><dt>Figure 10</dt><dd>shows in summary a coding of two differential data words on a coded data word.</dd><dt>Figure 11</dt><dd>shows in summary a coding of two data words on a coded data word in a further embodiment of the method according to the invention.</dd><dt>Figure 12</dt><dd>shows another table with approximation values, their ranking number and their assigned code word.</dd></dl>
0026Unless otherwise stated, the same reference symbols in the figures denote the same signals and variables with the same meaning.
0027The aim of the present invention is to map a first and at least a second data value to an encoded data word in order to transmit the encoded data word.
0028In the example according to <figref idref="f0002">Figure 2</figref> the first data value is represented by a first data word d1 with a first number m1 data bits, and the second data value is represented by a second data word d2 with a second word length m2. The coded data word d3 has a word length n, the word length n of this coded data word d3 preferably being less than the sum of the first and second word lengths m1, m2, so that n <m1 + m2.
0029In the in <figref idref="f0002">Figure 2</figref> The selected example applies to the first and second word lengths m1 = m2 = 7, so that the first and second data words d1, d2 each have decimal values between 0 and 127 (= 2<sup>7</sup>-1) can represent. The word length of the coded data word d3 is n = 10 in the example.
0030Referring to <figref idref="f0002">Figure 3</figref> It is provided to assign a first code word c1 to each of the seven bit positions k1 of the first data word d1, which code word is stored in a first code table 11. <figref idref="f0002">Figure 3</figref> illustrates the assignment of the individual first code words c1 (1) to c1 (7) to the individual bit positions. The first bit position, which in the example comprises the least relevant data bit (LSB) of the first data word d1, is assigned the first code word c1 (1) = 001 in the example. The individual code words comprise three data bits and are selected in the exemplary embodiment such that the numerical value of the binary code word corresponds to the bit position k1. Of course, the binary code words 001 to 111 could also be assigned to the individual bit positions as desired. It is only essential here that each bit position k1 is assigned an individual, that is to say unambiguous, first code word c1 by the coding table 11. For a better understanding of the coding method explained below, in<figref idref="f0002">Figure 3</figref> In addition to the code table, it is also specified which decimal numerical value is represented by the respective bit position of the first data word D1.
0031Referring to <figref idref="f0003">Figure 4</figref> it is also provided in the method according to the invention to assign an individual code word c2 to each bit position k2 of the second data word d2, which code word is stored in a second coding table 12. In the example, the second code words assigned to the individual bit positions k2 of the second data word d2 correspond to the first code words c1 assigned to the respective bit positions of the first data word d1. Of course, the second code words c2 of the individual bit positions k2 of the second data word d2 can, however, be selected completely independently of the first code words c1 of the bit positions k1 of the first data word d1.
0032The inventive method for coding a first and second data word d1, d2 using the in the <figref idref="f0002">Figures 3</figref> and <figref idref="f0003">4</figref> Coding tables shown below is based on <figref idref="f0003">Figure 5</figref> explained for a first binary data word d1 = 0111100 and a second binary data word d2 = 0010011. In decimal representation, the first data word d1 corresponds to the value 60 and the second data word corresponds to the value 19.
0033The method provides that the data values represented by the data words are first approximated by approximation values. For this purpose, the data bits most relevant for the value of the first and second data words d1, d2 are first determined in the example.
0034In the example in which the data bits beginning with the least relevant data bit (LSB) of data words d1, d2 are numbered 1 to 7 and in which the most relevant data bit (MSB) of data words d1, d2 has bit position 7, these are the data bits k1 = 6 for the first data word d1 and k2 = 5 for the second data word d2. The higher-order data bits of these two data words d1, d2 are each 0 and therefore do not provide a relevant portion of the values of the two data words d1 = 0111100<sub>2</sub> = 60<sub>10</sub> and d2 = 0010011<sub>2</sub> = 19<sub>10</sub>.
0035The method also provides for the code words assigned to the bit positions of the highest relevant bit positions k1 = 6 and k2 = 5 to be mapped to first and second data sections of the coded data word d3. The first code word c1 (6) = 110 assigned to the bit position k1 = 6 of the first data word d1 can be found in the first code table 11 and is mapped in the example to the first data section of the coded data word d3, which has the three bit positions k3 = 8 to k3 = 10 of the encoded data word d3. The second code word c2 (5) = 101 assigned to the bit position k2 = 5 of the second data word d2 can be found in the second code table 12 and is mapped to a second data section of the coded data word d3, which comprises the bit positions k3 = 5 to k3 = 7 .
0036The information about the highest relevant bit position in the first and second data word d1, d2 contained in the coded data word enables a first approximation to the data values represented by the first and second data word d1, d2. The information contained in the first and second code words c1 (6), c2 (5) about the most relevant bit in the first and second data word d1, d2 shows that the first data word d1 has a value greater than or equal to 2<sup>5</sup>= 32 and that the second data word d2 has a value greater than or equal to 2<sup>4</sup>= 16 owns.
0037In general, the approximation values for the first and second data values in the example shown correspond to a power of two for the bit positions of the highest relevant data bits if the bit positions are numbered in such a way that bit position 0 is assigned to the LSB. In the example, the first approximation value for the first data value is 2<sup>k1-1</sup>=2<sup>5</sup>= 32 and the second approximation value for the second data value is 2<sup>k2-1</sup>=2<sup>4</sup>=16.
0038For a further approximation to the data words d1, d2 to be transmitted, additional bit positions, in the example the bit positions k3 = 1 to k3 = 4, of the coded data word d3 are available, which are used for the transmission of information components of the first and second data word that are less relevant than the information contained in the first and second data words c1 (6), c2 (5) about the position of the most relevant data bit. Each piece of information additionally mapped to the coded data word d3, in the example each additional data bit, of the first and second data word d1, d2 enables a more precise approximation to the respective data word d1, d2 on the receiver side and reduces the error resulting from the coding.
0039The mapping of further data bits of the first and second data word onto the coded data word corresponds to a coding of the differences between the respective data value and the approximation values represented by the first and second code word.
0040In the example shown, in which both the data words d1, d2 to be transmitted and the coded data word d3 are each binary data words, individual data bits of the data words d1, d2 are mapped directly to the additional bit positions k3 to k4 according to a predetermined scheme.
0041This mapping is done with the aim of keeping the coding error generated due to the data reduction from m1 + m2 = 14 bits to n = 10 bits as low as possible. Each bit position of the first and second data word is assigned a ranking number that is a measure of how large a maximum error would be if the values of all the next smaller positions were not coded based on this respective bit position. In the simplest case, these ranking numbers r1, r2 correspond to the number of the respective bit positions. The ranking number of a given bit position is greater, the greater the coding error would be if, starting from this specified bit position, all the smaller bit positions were not coded or set to zero. If only the highest relevant bit position k1 = 6 were transmitted from the first data word d1, which corresponds to the first approximation to the value of the first data word d1 explained above, then if the bit positions k1 = 5 to k1 = 1 were neglected or set to zero, the maximum Coding error Emaxl = 11111<sub>2</sub> = 31<sub>10</sub> be. If, in the example, only the bit position of the highest relevant bit k2 = 5 was transmitted from the second data word d2, which corresponds to the first approximation to the value of the second data word d2 explained above, the maximum error Emax2 = 1111<sub>2</sub> = 15<sub>10</sub> be.
0042To map further data bits of the first and second data word to the additional bit positions of the coded data word d3, it is now determined which is the highest bit position of the first and second data word d1, d2, the data bit of which is mapped to the coded data word d3. At the beginning of the method, these are the bit positions of the highest relevant data bits, namely the bit position k1 = 6 of the first data word d1, to which the ranking number r1 = 6 is assigned, and the bit position k2 = 5 of the second data word d2, which has the ranking number r2 = 5 assigned.
0043These ranking numbers r1 = 6 and r2 = 5 are compared in order to decide from which of the two data words d1, d2 the first additional data bit at the bit position k3 = 4 of the coded data word d3 should come. In the example, the selection is made in such a way that the data bit at the additional bit position of the coded data word d3 is selected from that of the first and second data words d1, d2, the highest bit position already mapped onto the coded data word having the greater ranking number. With the same ranking numbers of the last coded bit positions, in the example the data bit of the next smallest bit position of the first data word d1 is mapped onto the coded data word d3.
0044In the specific example, this means that after coding the bit positions k1 = 6 and k2 = 5 with the ranking numbers r1 = 6 and r2 = 5 on the first and second data section on the first additional bit position k3 = 4 of the coded data word d3, the data bit d1 (5) the bit position k1 = 5 of the first data word d1 is mapped. After this step, the ranking number of the highest bit position of the first data word d1 already mapped onto the coded data word d3 applies r1 = 5, while r2 = 5 still applies. Next, the data bit d1 (4) of the bit position k1 = 4 of the first data word d1 is mapped onto the second additional bit position k3 = 3 of the coded data word d3. After this step, r1 = 4 and r2 = 5, so that in a next step the data bit d2 (4) of the second data word d2 is mapped to the third additional bit position k3 (= 2) of the coded data word d3. After this method step, r1 = 4 and r2 = 4, so that in the next method step a data bit from the first data word is coded, namely the data bit of the bit position k1 = 3 that is relevant after the bit position k1 = 4, the data bit d1 (3).
0045The remaining data bits at the bit positions k1 = 2 and k1 = 1 of the first data word d1 and the remaining data bits at the bit positions k2 = 3 to k2 = 1 of the second data word d2 are no longer taken into account in the coding, so that the maximum error in the coding emax1 = 11<sub>2</sub> = 3<sub>10</sub> for the first data word d1 and emax2 = 111<sub>2</sub> = 7<sub>10</sub> for the second data word is d2.
0046Referring to <figref idref="f0003">Figure 5</figref> In the exemplary embodiment, data bits d1 (6), d1 (5), d1 (4) and d1 (3) are mapped and transmitted from the first data word d1 to the coded data word d3. On the receiver side, these transmitted data bits refer to<figref idref="f0004">Figure 6a</figref> a sent data bit d1 '= 111100<sub>2</sub> = 60<sub>10</sub> reconstructable. The data bits of the first data word d1, for which no information is transmitted, are set to 0, for example. In the example, d1 = d1 '= 60 applies, so that there is no coding error since the two data bits d1 (2), d1 (1) of the first data word d1 (which are not transmitted) happen to be 0.
0047The data bits d2 (5) and d2 (4) are transmitted from the second data word d2, the data bits d2 (3), d2 (2) and d2 (1) which have not been transmitted are each set to 0. From this the data word d2 '= 10000<sub>2</sub> = 16<sub>10</sub> reconstructable. The coding error is d2 to d2 '= 011<sub>2</sub> = 3<sub>10</sub>, since the data bits d2 '(2) and d2' (1) set to 0 during the reconstruction of the data word are not equal to the data bits d2 (2), d2 (1).
0048<figref idref="f0005">Figure 7a</figref> illustrates the coding method according to the invention using a further example for the transmission of a first data word d1 = 110<sub>2</sub> = 61<sub>0</sub> and a second data word d2 = 10011<sub>2</sub> = 19<sub>10</sub> .
0049The highest relevant data bit of the first data word d1 is the data bit at the bit position k1 = 3, which refers to the table in FIG <figref idref="f0002">Figure 3</figref> the first code word cl (3) = 011 is assigned, and is mapped to a first data section of the coded data word d3. The highest relevant data bit of the second data word d2 is the data bit of the bit position k2 = 5, referring to<figref idref="f0003">Figure 4</figref> the second code word c1 (5) = 101 is assigned, which is mapped to the second data section of the coded data word d3.
0050After these first method steps, the ranking number r1 = 3 for the bit position is compared to the highest relevant data bit of the first data word d1 and r2 = 5 of the highest relevant data bit of the second data word d2. In a next method step, the data bit of bit position k2 = 4 of the second data word d2 is mapped to the first additional bit position of the third data word d3. Since the ranking number r1 = 4 of this data bit d2 (4) last mapped from the second data word d2 (4) is still greater than the ranking number of the highest bit position of the first data word already mapped onto the coded data word, a data bit of the second is again in a next method step Coded data word, namely the data bit d2 (3) of the bit position k2 = 3 of the second data bit d2. Thereafter, r1 = 3 for the ranking number of the highest bit position already encoded from the first data word d1 and r2 = 3 for the ranking number of the highest bit position already encoded from the second data word d2, so that the ranking numbers of the last from the respective data words d1, d2 the coded data word d3 match mapped data bits. In a next method step, the data bit d1 (2) of the position k1 = 2 of the first data word d1 is therefore mapped onto the third additional data section of the coded data word d3. In a last method step, the data bit d2 (2) of the bit position k2 = 2 of the second data word d2 is mapped onto the fourth additional data section at the bit position k3 = 1 of the coded data word d3.
0051In this specific numerical example, the data bits d1 (3) and d1 (2) are encoded by the first data word d1, so that after the transmission the data word reconstructed from the encoded data word <figref idref="f0005">Figure 7b</figref> d1 '= 110<sub>2</sub> = 6<sub>10</sub> applies. In this example, the four data bits d2 (5) to d2 (1) are made from the second data word d2 - in contrast to the only three data bits in the example according to<figref idref="f0003">Figure 5</figref> and <figref idref="f0004">6</figref> - transmitted, with d2 '= 10010 for the reconstructed data word<sub>2</sub> = 18<sub>10</sub> applies. In this case, the coding error is only 1.
0052As with the concrete numerical examples in the <figref idref="f0003 f0004 f0005">Figures 5 to 7</figref> becomes clear, the coding method according to the invention does not use a rigid assignment of individual bit positions of the coded data word to individual bit positions of the two data words d1, d2 to be transmitted, but rather these bit positions are assigned adaptively, inter alia, depending on the specific values to be transmitted, always with the aim of achieving the maximum Keep coding errors as low as possible.
0053The case in which one of the two data words or both data words is 0 has not yet been taken into account. In this case, in which there is no highest relevant position, a special first or second code word is mapped onto the first or second data section of the coded data word, which takes this case into account. This code word is referring to the<figref idref="f0002">Figures 3</figref> and <figref idref="f0003">4</figref> denoted by c1 (0) or c2 (0) and has, for example, the value 000<sub>2</sub>. For example, this code word is assigned the ranking number 0, with the effect that only data bits of the respective other data word are mapped to the additional data sections of the coded data word. If both data words are equal to 0, then, for example, an encoded data word d3 is transmitted, which likewise only comprises zeros.
0054If, when the data bits of the first and second data words d1, d2 are mapped onto the coded data word, the case is reached that the LSB bits of the two data words d1, d2 are already mapped onto the coded data word d3, any data sections of the coded data word, for example, filled with zeros.
0055In a manner not shown, there is the <figref idref="f0002 f0003 f0004 f0005">Figures 2 to 7</figref> explained method of course also the possibility to transfer signed data words, ie data words that contain an amount and a sign. In addition to the data bits for the amount, additional bits are to be provided in the coded data word, on which the sign bits of the first and second data words are then mapped.
0056In addition, however, there is also the possibility of taking the sign into account in the first and second code words c1, c2 of the first and second data words d1, d2 assigned to the individual bit positions, as follows using FIG <figref idref="f0006">Figure 8</figref> is explained.
0057<figref idref="f0006">Figure 8a</figref> illustrates a first data word d1 with a word length of 8 bits, which includes a sign bit v1 and m1 = 7 data bits. Also shown is a second data word d2 with a length of 8 bits, which includes a sign bit v2 and m2 = 7 data bits. These two data words d1, d2 are to be mapped to a coded data word d3 with a word length of 12 bits according to the inventive method.
0058Referring to <figref idref="f0006">Figure 8b</figref> it is provided here to assign two code words to each bit position of the first and second data words d1, d2, that is to say to assign two first code words to each bit position of the first data word d1 and to assign two second code words to each bit position of the second data word d2. Without restricting generality, in the exemplary embodiment according to<figref idref="f0006">Figure 8b</figref> assume that corresponding bit positions of the first and second data words are each assigned the same code words.
0059The code words assigned to a bit position, for example code words 1001 and 0001, which are assigned to the first bit position, differ in at least one bit position, one of the code words standing for the respective bit position and a positive sign of the respective data word and the other one for a bit position assigned code words for the respective bit position and a negative sign of the respective data word. In the example according to<figref idref="f0006">Figure 8b</figref> the code words assigned to a bit position differ at exactly one bit position, in the example of the MSB position of the code words. Of course, the code words assigned to a bit position can differ as desired. It is essential that, as with any coding method, the coding rule, that is to say the code words assigned to the individual bit positions, are known to the receiver.
0060The table in <figref idref="f0006">Figure 8b</figref> shows not only the code words that are assigned to individual bit positions, but also the respective ranking numbers, which in the example correspond to the bit position minus 1.
0061Of the 2 that can be represented with 4 bits<sup>4</sup>= 16 code words are in the table according to <figref idref="f0006">Figure 8b</figref> 14 used to take into account the 7 bit positions and two different signs of the data word. In the example, code words 0000 and 1000 are not used for the bit positions. Code word 0000 is used here, for example, to code a data word which only comprises zeros at its seven data bit positions and possibly at its sign bit position.
0062The general rule is that a code word of length k is the sign of a data word and one of i = 2<sup>k</sup>-1 positions of the highest irrelevant data bit can be transmitted. The code word is thus suitable for coding the sign and the position of the highest relevant data bit for data values between - (2<sup>i</sup>-1)...2<sup>i</sup>-1.
0063Decimal data values between -127 and +127 can be represented by a data word d1, d2 comprising seven data bits and one sign bit. In order to transmit the position of the highest relevant data bit of the seven data bits and the sign information, code words with four code bits, one code bit for the sign and three code bits for the position of the highest relevant data bit are required.
0064In order to transmit the position of the highest relevant data bit and the sign for data values between -255 and +255, code words five code bits, namely one code bit for the sign and four code bits for the position of the highest relevant data bit, are required.
0065In one embodiment of the invention, it is provided that data values, the amount of which is above a predetermined value, are encoded without sign information, ie are mapped onto the encoded data word. This procedure is suitable if difference values between two successive data values of a data sequence are to be transmitted as data values, since for difference values which lie above a predetermined value, the sign information can be reconstructed on the basis of previously transmitted data, as will be explained below.
0066When using <figref idref="f0006">Figure 8</figref> The example explained, in which code words with 4 code bits are available, provides for difference values with amounts greater than or equal to 128 (= 2<sup>7</sup>) without sign. In the example, code word 1000 is used to transmit the information that the difference value to be transmitted is greater than or equal to 128 in terms of amount, ie lies in an interval [128.255]. The transmission of the code word corresponds to the transmission of a sign-independent approximation value of 128. In order to additionally transmit sign information, an additional bit of the code word would be required, which, however, can be saved for the reasons set out below.
0067If, in this embodiment of the method, the transmission of a difference amplitude value greater than or equal to 128 for one of the first and second data words is recognized on the receiver side, the sign information can be determined on the basis of the information already transmitted previously.
0068It is assumed that the data values transmitted by means of the method according to the invention, which can lie between -255 and +255, represent differences between two successive data values of a data value sequence, whereby absolute values of these data values lie between 0 and 255. For clarification is in<figref idref="f0007">Figure 9</figref> such a data sequence with data values Y-2 ... Y1 is shown schematically. A difference value between a data value Y0 and a previous data value Y-1 is shown in FIG<figref idref="f0007">Figure 9</figref> denoted by dY.
0069In order to transfer a jump from the value 0 of the first value Y-1 to a value 255 of the subsequent value Y0, a difference value +255 must be coded and transmitted, while for a jump from 255 to 0 a difference value -255 must be coded and transmitted. The absolute values of the values of the data sequence are reconstructed on the receiver side by adding a received difference value to the absolute value determined immediately before. The sum of the value Y-1 and the difference value dY is thus formed for the reconstruction of the data value Y0.
0070If, in the method according to the invention, a sign-independent difference value dY greater than or equal to 128 is received, it is determined what value the preceding absolute value Y-1 of the data sequence has. If this value lies in the interval [0, 128 [, the currently received difference value dY is assumed to be a positive difference value, since a negative difference value dY with an amount greater than or equal to 128 when added to the previous absolute value Y-1 of the interval [0, 128 [ would lead to an invalid current data value Y0 value less than zero. If, on the other hand, the previous value Y-1 lies in the interval [128.255] and a difference value greater than or equal to 128 is received, the difference value is assumed to be a negative difference value, since a positive difference value dY with an amount greater than or equal to 128 when added to the previous one Absolute value Y-1 of the interval [128.255] would lead to an invalid current data value Y0 value greater than 255.
0071In summary, difference values with an amount greater than 128 can be transmitted without a sign, since the sign information can be reconstructed on the receiver side on the basis of the respectively preceding value of the data sequence. Difference values with an amount greater than 128 are thus transmitted without sign information.
0072A coding method using one based on <figref idref="f0006">Figure 8b</figref> Coding table explained is summarized using <figref idref="f0008">Figure 10</figref> for coding two difference values dY, dC explained. These difference values dY, dC each represent a difference between a current data value and a previous data value of two data sequences Y-2 ... Y1 or C-2 ... C1. As numerical examples are in<figref idref="f0008">Figure 10</figref> dY = 60<sub>10</sub>=00111100<sub>2</sub> and dC = 19<sub>10</sub>=00010011<sub>2</sub> chosen.
0073In a first method step, a first approximation to the difference value dY, dC to be coded takes place using the coding table, in which approximation values for the difference values to be transmitted are stored. A code word, in the example a code word with a length of 4 bits, is stored for each approximation value. The approximation values are in the in<figref idref="f0008">Figure 10b</figref> Coding tables shown selected so that they are powers of two. On the basis of the coding table, the approximation value is selected that comes closest to the data value to be transmitted, but whose amount is smaller than the data value to be transmitted. In the example shown, the first approximation value dY '= 32, to which the code word 0110 is assigned, is selected from the coding table for the data value dY = 60 to be transmitted. For the data value dC = 19 to be transmitted, the first approximation value selected from the coding table is dC '= 16, to which the code word 0101 is assigned. In the example, approximation values with amounts between 1 and 64 are distinguished by sign, while for difference values to be transmitted with values greater than or equal to 128, the first approximation value is coded and transmitted regardless of the sign.
0074The code words assigned to the first approximation values dY 'and dC' are then mapped to the coded data word d3. The remaining data bits of the coded data word d3, four data bits in the example shown, are used to represent and transmit the difference between the data value to be transmitted and the first approximation value as precisely as possible. This difference is 28 for the data value dY = 60 and its first approximation value dY '= 32<sub>10</sub>=11100<sub>2,</sub> and for the data value dC = 19 and its first approximation value dC '= 16, this difference is 3<sub>10</sub>=0011<sub>2</sub>.
0075The coding of these differences, that is to say the mapping of the data bits of these differences to the additional data bits of the coded data word d3, takes place in the example with the aim of minimizing the absolute error for the transmission of each data word as far as possible. In the example, this takes place in that data bits of the binary data words 11100<sub>2</sub> or 0011<sub>2</sub>, which represent the difference values, are mapped to the available additional bits of the coded data word d3. The mapping is carried out with the aim of obtaining an equally large maximum coding error for both data values dY, dC. In the example, the highest data bits are Y<sub>4</sub>, Y<sub>3</sub>, Y<sub>2</sub> of the first difference value and the data bit C<sub>3</sub> of the second difference value is mapped onto the coded data word. The data bits Y are not taken into account by the first difference value<sub>1</sub> and Y<sub>0</sub> of the first difference value and the data bits C<sub>2</sub>, C<sub>1</sub> and C<sub>0</sub> of the second difference value, which results in a maximum coding error of 11 for the first data word<sub>2</sub>=3<sub>10</sub> and a maximum coding error of 111 for the second data value dC<sub>2</sub>=8<sub>10</sub> results.
0076In summary, in the transmission method according to the invention, a first approximation to the data value dY, dC to be transmitted takes place, the approximation value, possibly including sign information, being coded by a code word stored in a coding table. A further successive approximation to the data values dY, dC to be transmitted takes place by at least partially coding the remaining differences, the coding error being greater the more data bits of the difference value cannot be mapped onto the coded data word.
0077Although the method according to the invention was previously explained for mapping a first and second data word onto a coded data word, it should be pointed out that the method according to the invention is of course also suitable for mapping more than two data words onto a coded data word.
0078In the methods explained so far, the coded data word c3 each has a predetermined length. The possible coding error which arises when two data words are encoded onto the encoded data word is in particular dependent on the value of the first and second data word and, in the examples explained above, increases with increasing amplitude of the value represented by the respective data word.
0079To reduce the coding error, it is provided in a further embodiment to make the length of the coded data word variable, in that the number of additionally available data sections can vary. It is thus possible to provide so many additional data sections in the encoded data word that predetermined data bits of the first data word d1 and the second data word are reliably encoded. This is based on<figref idref="f0003">Figure 5</figref> explained.
0080As explained, the maximum coding error of the first data word d1 is based on <figref idref="f0003">Figure 5</figref> explained method 11<sub>2</sub> = 3<sub>10</sub>, while the maximum error of the second data word d2 111<sub>2</sub> = 7<sub>10</sub> is. With the aim of ensuring that the coding error for both data words d1, d2 is not greater than 11<sub>2</sub> = 3<sub>10</sub> In one embodiment of the method, it is therefore provided that the mapping of data bits of these data words is continued until the data bit at positions k1 = 3 and k2 = 3 is reliably coded by both data words. To do this for the numerical example in<figref idref="f0003">Figure 5</figref> To achieve an additional coding step is still necessary, in which the data bit d2 (3) of the second data word d2 is mapped onto the coded data word, which is shown in dashed lines in <figref idref="f0003">Figure 5</figref> is shown. The data word transmitted in this case then has a length of 11 bits in the example.
0081"Lossless coding" can be achieved by means of this method if the mapping of the data bits of the data words d1, d2 to the coded data word d3 is continued until the least relevant bit (LSB) of both data words, namely the bit d1 (1) and bit d2 (1) is mapped to the coded data word.
0082Of course, the maximum permitted coding errors for the first and second data words d1, d2 can also be selected differently.
0083In the exemplary embodiments explained above, the approximation values are each selected such that they are a power of two of the bit position of the highest relevant data bit, so it applies that dC '= 2<sup>MSB</sup> or dY '= 2<sup>MSB</sup>. MSB denotes the bit position of the highest relevant data bit, assuming that MSB = 0 applies to the lowest relevant data bit (LSB). However, the invention is not limited to powers of the number 2 as approximation values, but almost any approximation values can be provided, as follows with reference to FIG<figref idref="f0009">Figure 11</figref> is explained.
0084<figref idref="f0009">Figure 11a</figref> shows a coding table which comprises approximation values in the left column, ranking numbers of the individual approximation values in the middle column and the code words assigned to the individual approximation values in the right column. The approximation values contained in this table differ from those in the table in<figref idref="f0008">Figure 10b</figref> indicated approximation values in that there are approximation values such as ± 12, ± 24, ± 48 that are not integer powers of the number 2. The individual approximation values are preferably selected such that the differences between an approximation value and the next larger or next smaller approximation value are in each case integer powers of the number 2. For example, the difference between the approximation value 32 and the next larger approximation value 48 is: 48-32 = 16 = 2<sup>4</sup>. This procedure of choosing the differences between the individual approximation values as integer powers of the number 2 makes sense with regard to effective coding, but is not necessary with regard to the functionality of the coding method. It is also not necessary with regard to the functionality of the method that there are approximation values in the table that are integer powers of the number 2.
0085The implementation of the method according to the invention using the in <figref idref="f0009">Figure 11a</figref> shown table is explained below for coding the data values dY = 60 and dC = 19:
0086For each of the data values dY, dC to be encoded, the table is used to first determine the approximation value which corresponds to the respective data value or which is smaller in magnitude than the respective data value and which differs the least in amount in comparison to the other approximation values from the respective data value. For the data value dY = 60, this procedure leads to a first approximation value 48, to which the code word dY '= 11010 is assigned. The following applies to a first difference between the first data value and the first approximation value: 60-48 = 12 = 1100<sub>2</sub>. The binary representation 1100 of this difference is referred to below as the first difference data word.
0087A second approximation value 16 results for the data value dC = 19, to which the code word dC '= 10100 is assigned. The following applies to the difference between the second data value dC and the first approximation value: 19-16 = 3 = 011<sub>2</sub>. The binary representation 011 of this difference is referred to below as the second difference data word.
0088A ranking number is assigned to each of the approximation values in the coding table. In the example, these ranking numbers are each an integer and depend on the maximum size of an error that can occur when an approximation value approximates a data value. This maximum error corresponds to the amount of the difference between the respective approximation value and the next largest approximation value minus one. For the first approximation value 48, whose next larger approximation value is the approximation value 64, this maximum error is 15 (= 64-48-1). For the second approximation value 16, whose next larger approximation value in the table is the approximation value 24, this maximum error is 7 (= 24-16-1). This error is referred to below as the maximum error associated with an approximation value.
0089The ranking number for an approximation value can correspond to this maximum error. However, the ranking number is preferably dependent on the manner in which the difference between the determined approximation value and the data value is mapped onto the coded data word.
0090In one embodiment, the difference between the approximation value and the data value is represented as a binary data word in the manner already explained above, and individual data bits of this data word are mapped onto the coded data word starting with the data bit of the highest relevant bit position and taking into account conditions to be explained . The ranking number of an approximation value corresponds to the number of bit positions that are required in order to be able to represent the maximum error associated with the approximation value in binary form. For the first approximation value 48 with the maximum error 15 assigned to it, the ranking number 4 is obtained and for the second approximation value 16 with the maximum error 7 assigned to it the ranking number 3 is obtained. In general, the ranking number r can be represented as:<maths id="math0001" num="(1)"><math display="block"><mi mathvariant="normal">r</mi><mo>=</mo><mi>approx</mi><mfenced><mi>ld</mi><mfenced><mi>Emax</mi></mfenced></mfenced></math><img file="EP1631091B1_D0001.tif" /></maths> ld (.) designates the function of the base 2 logarithm, Emax designates the maximum error assigned to an approximation value, and rd (.) designates a rounding function that rounds up a numerical value to the next larger integer numerical value, i.e. an integer numerical value is increased by one and a non-integer value is rounded up to the next largest integer value.
0091In the example, the approximation values are selected such that the differences between several adjacent approximation values are each of the same size, so that the same ranking numbers r are assigned to some approximation values. The ranking number 7 of the approximation value ± 128 results from the amount of the difference (127) to the largest possible data value ± 255, the representation of which requires 7 bit positions.
0092The table of approximation values is preferably generated as a function of a signal statistic of the data values to be transmitted, by generating more approximation values or approximation values with smaller distances to neighboring approximation values for value ranges in which the data values to be transmitted are located particularly frequently than for other value ranges.
0093For a coding of signed values, the approximation values are referenced to <figref idref="f0009">Figure 11a</figref> preferably selected "symmetrical" to zero, so that there is a negative approximation value of the same amount for each positive approximation value.
0094The code words assigned to the first approximation value and the at least one second approximation value are mapped to the coded data word in the method. Then, taking into account the ranking numbers of the approximation values, the differences between the respective data value and the approximation value determined for the respective data value are encoded. This can be done by representing these differences as binary data words and by mapping individual data bits of these data words onto the coded data word. The number of bit positions of such a difference data word, which represents a difference between a data value and an approximation value, corresponds to the number of bit positions required to be able to represent the maximum error associated with the approximation value in binary form. When determining the ranking number according to equation (1), the number of bit positions of a data word that represents a difference between a data value and an approximation value corresponds to the ranking number of the approximation value.
0095The difference data words, which each represent a difference between a data value and an approximation value, are first assigned the ranking number of the associated approximation value. The data bits of these difference data words are then mapped depending on the ranking number. First of all, the highest relevant data bit of the difference data word, whose approximation value has the highest ranking number, is mapped onto the coded data word. The ranking number of the difference data word whose data bit was mapped is then reduced by a predetermined value, preferably 1. In the case of the same ranking numbers, it is determined in advance which difference data word is to be preferred, ie from which difference data word a data bit is mapped onto the coded data word.
0096To map a next data bit, the ranking numbers of the difference data words are determined again and the highest relevant data bit of the difference data word with the highest ranking number is mapped to the coded data word.
0097Based on coding the values dY = 60 and dC = 19 using the code table in <figref idref="f0009">Figure 11a</figref> this means that due to the larger ranking number of the first approximation value dY ', the highest relevant data bit Y is initially<sub>3</sub>= 1 of the first difference value or first difference data word 1100<sub>2</sub> is mapped. This difference data word has the ranking number 4, the highest relevant data bit shown has the bit position 4. The difference data word 100 remains after the illustration<sub>2</sub> with the ranking number 3 (= 4-1), which corresponds to the number of bit positions. Assuming that, given an equal number of bit positions of the difference data words still to be coded, the difference data word of the value dY to be coded is preferred, the data bit Y<sub>2</sub>= 1 of the difference value 1100<sub>2</sub>, which has bit position 3 mapped. The remaining difference data word 00<sub>2</sub> receives the ranking number 2. Now there is the difference data word 00<sub>2</sub> of dY with the ranking number 3 or with two bit positions and the difference data word 100<sub>2</sub> of dC with the ranking number 3 or with three bit positions opposite, so that next the bit at the highest bit position of this value 100<sub>2</sub> is encoded.
0098This procedure for coding the difference values between the data value to be coded and the respective approximation value is continued until one of the conditions explained above is reached, i.e. until all data bits of the differences have been mapped, or a predetermined number of data bits of the coded word has been reached or in each case a minimal coding error is reached for each data value. Assuming the end condition that all data bits of the first and second data values are encoded, the encoding method is in <figref idref="f0009">Figure 11b</figref> summarized.
0099Of course, this method also offers the option of one of the data words to be coded or Assign a coding priority to one of the difference data words to be coded after coding the approximation value and, when comparing the ranking numbers, select the prioritized difference data word and encode its respective data bit as long as its ranking number is less than a predetermined value the ranking number of the at least one other difference Data word exceeds.
0100The individual approximation values can be referenced to the table in <figref idref="f0009">Figure 11a</figref> chosen so that the maximum error assigned to them remains the same or increases with increasing amount of the approximation values, which is equivalent to the fact that the difference to the next larger approximation value remains the same or increases with increasing amounts of the approximation values.
0101However, there is also the possibility that the distances between individual approximation values become smaller as the approximation values become larger.
0102Furthermore, there is the possibility to choose the distance between individual approximation values of a group with at least two approximation values smaller than the distance between the smallest amount of the approximation values of this group and the next smaller approximation value and the distance between the largest amount of the approximation values of this group and the next largest approximation value . This procedure is particularly useful if it is to be expected that the data values to be coded will often assume values that are in the range of the approximation values of this group. In the method according to the invention, such values are approximated with a slight error in the first step, in which an approximation value is selected from the table.<figref idref="f0010">Figure 12</figref> shows an example of such a sequence with approximation values using a table. The approximation values (0, ± 32, ± 64, ± 80, ± 96, ± 112, ± 144) are shown in the left column, the assigned ranking numbers in the middle column and the code words assigned to the approximation values in the right column. which are unique for the individual approximation values.
0103The table contains a group of four approximation values ± 64, ± 72, ± 80, ± 88, of which two neighboring ones differ by 8 each and to which the ranking number 3 is assigned. The distance, ie the amount of the difference, between the smallest approximation value ± 64 in magnitude and the next smallest approximation value ± 32 in magnitude is 32, which is equivalent to the fact that this next smaller approximation value ± 32 has the ranking number 5. The distance between the closest approximation value ± 96 to this group and its approximation value ± 112, which is larger in terms of amount, is 16, which means that this approximation value ± 96 has the ranking number 4.
0104This choice of the approximation values is particularly useful if it can be expected that the amounts of the data values to be coded often assume values in the range between 64 and 88.
0105In the methods explained above, the first code words which are assigned to the bit positions of the first data word each have the same word length, and the first code words which are assigned to the bit positions of the second data word each have the same word length. In a further embodiment of the method, it is provided that the first and / or second code words are selected such that they have a different word length. The code words which are assigned to the individual bit positions are preferably selected as a function of the frequency with which the individual bit positions are occupied by the respectively highest relevant data bit of a data word. Bit positions which form the highest relevant bit position more frequently than other bit positions are assigned shorter code words than the other bit positions in order to obtain a shorter coded data word overall for the coding of frequently occurring data words. Such a procedure for using codewords of different lengths depending on the probability of occurrence of the information to be transmitted is known for a long time and is described, for example, in Proakis, John G.: "Digital Communications", 3rd edition, Mc Graw-Hill, ISBN 0 -07-051726-6, pages 95 to 103. This type of coding is called variable length coding.
0106Various coding tables for coding the most relevant signal component were explained in the previous explanation. It should be pointed out that it is also possible to provide different coding tables and to select one of the coding tables for the coding depending on the signal statistics, ie depending on the frequency of the occurrence of certain values to be coded in the signal sequence.
0107Furthermore, it should be pointed out that the method is not limited to the coding of two data values but can be applied to any number of data values to be coded. When coding the difference data words, it must be determined which of the difference data words is preferably coded with the same ranking numbers.
0108The method for decoding on the receiver side of an encoded data word generated by the method according to the invention, which has at least a first data section, a second data section and at least one additional data section in order to obtain a first and second decoded data word, results directly from the coding algorithm. In this case, data words decoded on the receiver side are reconstructed from the transmitted approximation values and the data bits of the difference data words.
11 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11
Every citation, both ways
| Document | Relation | Office |
|---|---|---|
| DE10007171A1 | Cites | Germany |
| US4682152A | Cites | United States of America |
| US4870685A | Cites | United States of America |
| US5438635A | Cites | United States of America |
| US5946652A | Cites | United States of America |
| US2003161278A1 | Cites | United States of America |
| USRE38279E1 | Cites | United States of America |
| KESHI CHEN ET AL: "NEAR-LOSSLESS COMPRESSION OF MEDICAL IMAGES THROUGH ENTROPY-CODED DPCM" IEEE TRANSACTIONS ON MEDICAL IMAGING, IEEE SERVICE CENTER, PISCATAWAY, NJ, US, Bd. 13, Nr. 3, 1. September 1994 (1994-09-01), Seiten 538-548, XP000474144 ISSN: 0278-0062 | Non-patent | – |
6 members in 3 offices; this record represents the family
Priority claims2
| Document | Office | Kind | Date |
|---|---|---|---|
| 102004041418 | Germany | – | |
| 102004041418 | Germany | A |
Members6
| Document | Office | Kind | |
|---|---|---|---|
| EP1631091A1 | European Patent Office (EPO) | A1 | |
| US2006045178A1 | United States of America | A1 | |
| DE102004041418A1 | Germany | A1 | |
| EP1631091B1This record | European Patent Office (EPO) | B1 | |
| DE502005009670D1 | Germany | D1 | |
| US8311090B2 | United States of America | B2 |
37 legal events, as 5 offices reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | Office | |
|---|---|---|---|
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Notification of lapseLapsedST | ST | FR | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal feeWithdrawnR119 | R119 | DE | |
| Gb: european patent ceased through non-payment of renewal feeCeasedGBPC | GBPC | EP | |
| Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal feeWithdrawnR119 | R119 | DE | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Amendments to the register in respect of changes of name or changes affecting rights (sect. 32/1977)REGISTERED BETWEEN 20140605 AND 20140611732E | 732E | GB | |
| Transmission of propertyTP | TP | FR | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Change of applicant/patenteeR081 | R081 | DE | |
| Change of applicant/patenteeR081 | R081 | DE | |
| Change of representativeR082 | R082 | DE | |
| Change of representativeR082 | R082 | DE | |
| Declaration of willingness to licenceR084 | R084 | DE | |
| No opposition filed against granted patent, or epo opposition proceedings concluded without decisionGrantedR097 | R097 | DE | |
| No opposition filedOpposition26N | 26N | EP | |
| No opposition filed within time limitOppositionORIGINAL CODE: 0009261PLBE | PLBE | EP | |
| Information on the status of an ep patent application or granted ep patentGrantedSTATUS: NO OPPOSITION FILED WITHIN TIME LIMITSTAA | STAA | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Discontinued in the netherlands as no translation has been filedVDEP | VDEP | NL | |
| Corresponds to:REF | REF | EP | |
| Party data changed (patent owner data changed or rights of a patent transferred)RAP2 | RAP2 | EP | |
| Designated contracting statesAK | AK | EP | |
| European patent grantedGrantedNOT ENGLISHFG4D | FG4D | GB | |
| (expected) grantORIGINAL CODE: 0009210GRAA | GRAA | EP | |
| Grant fee paidORIGINAL CODE: EPIDOSNIGR3GRAS | GRAS | EP | |
| Despatch of communication of intention to grant a patentORIGINAL CODE: EPIDOSNIGR1GRAP | GRAP | EP | |
| First examination report despatched17Q | 17Q | EP | |
| Designation fees paidAKX | AKX | EP | |
| Request for examination filed17P | 17P | EP | |
| Designated contracting statesAK | AK | EP | |
| Request for extension of the european patentAX | AX | EP | |
| Public reference made under article 153(3) epc to a published international application that has entered the european phaseORIGINAL CODE: 0009012PUAI | PUAI | EP |
Numbers
- Publication
- 1631091
- Application
- 50183920
Titles3
- German
- Kodierung mehrerer binärer Eingangsdatenworte in ein Ausgangskodewort
- English
- Coding of a plurality of binary input data words into one codeword
- French
- Codage d'une pluralité de mots binaires entrants à un mot binaire sortant
Classification
- CPC, 3
- H03M7/30
- H04N19/593
- H04N19/186
- IPC, 2
- H04N7 26
- H03M7 30
Designated states5
- Contracting states, 5
- Germany
- France
- United Kingdom
- Italy
- Netherlands (Kingdom of the)
