EP1112621B1 - Device and method for entropy encoding of information words and device and method for decoding entropy-encoded information words - Google Patents
Device and method for entropy encoding of information words and device and method for decoding entropy-encoded information words Download PDFInfo
- Publication number
- EP1112621B1 EP1112621B1 EP99944368A EP99944368A EP1112621B1 EP 1112621 B1 EP1112621 B1 EP 1112621B1 EP 99944368 A EP99944368 A EP 99944368A EP 99944368 A EP99944368 A EP 99944368A EP 1112621 B1 EP1112621 B1 EP 1112621B1
- Authority
- EP
- European Patent Office
- Prior art keywords
- words
- information
- code
- word
- region
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
Definitions
- the present invention relates to a concept for Entropy coding and a corresponding concept for decoding of entropy-encoding information words.
- the present invention relates to the fail-safe Entropy coding and corresponding decoding of audio signals.
- Modern audio coding processes or decoding processes that work according to the standard MPEG layer 3, for example able to control the data rate of audio signals for example to compress by a factor of 12 without sacrificing their quality deteriorate noticeably.
- an audio signal is sampled, resulting in a sequence of discrete-time samples is obtained.
- this becomes Sequence of discrete-time samples using suitable Window functions to windowed blocks of windows to obtain temporal samples.
- One block in time windowed samples are then by means of a filter bank, a modified discrete cosine transform (MDCT) or another suitable device in the frequency domain transformed to obtain spectral values that overall the audio signal, d. H.
- MDCT modified discrete cosine transform
- the timeline, given by the block of discrete-time samples is in the frequency domain.
- overlapping temporal blocks are generated to 50% and transformed into the frequency domain by means of an MDCT, whereby always due to the special properties of MDCT for example 1024 discrete-time samples for 1024 spectral values to lead.
- the quantization noise is said to be below the masking threshold lie and thus be inaudible.
- the process is therefore divided into spectral values So-called scale factor bands performed, the frequency groups of the human ear. spectral be in a scale factor group with a scale factor multiplied by spectral values of a scale factor band to scale overall. That by the scale factor scaled scale factor bands are then quantized, whereupon quantized spectral values arise.
- Huffman coding is used for entropy coding.
- d. H. the length of the code word for one to be encoded The value depends on its probability of occurrence. Logically you rank the most likely Character the shortest code, d. H. the shortest code word, too, so that with the Huffman coding a very good redundancy reduction can be achieved.
- An example of an all around well-known coding with general length is the Morse alphabet.
- Huffman codes are used to code the quantized spectral values used.
- a modern audio coder who works according to the MPEG-2 AAC standard, used to encode the quantized spectral values various Huffman code tables that match the spectrum assigned in sections according to certain criteria. There are always 2 or 4 spectral values in one code word coded together.
- a difference of the procedure according to MPEG-2 AAC compared to that Process MPEG-Layer 3 is now that different Scale factor bands, d. H. different spectral values, too any number of spectral sections or "sections" grouped become.
- AAC includes a spectral section or a "Section” but preferably at least four spectral values more than four spectral values. The entire frequency range of the Spectral values are therefore divided into neighboring sections, where a section represents a frequency band such that all sections together the entire frequency range, the by the spectral values after their transformation is covered.
- a section is now just like the MPEG Layer 3 process to achieve maximum redundancy reduction a so-called Huffman table from a plurality of such Assigned to tables.
- the bit stream of the AAC process which usually has 1024 spectral values the Huffman code words for the spectral values in ascending order Frequency order.
- the information about that in everyone Frequency section table is used in the page information transfer.
- the scale factors of one Huffman coding subjected to the amount of bits to be transmitted further reduce.
- the scale factors within a frame i.e. H. within an associated windowed and in the frequency domain transformed blocks of samples, difference encoded. Starting from a starting value, typically the first scale factor of a frame, the absolute is given, the difference is determined. This is special efficient for compression since small changes from one scale factor to the next are very likely.
- Huffman-encoded signal has an error Channel is transmitted, there is almost none in the decoder Possibility of still valid values after occurrence to save the error.
- Huffman coded Scale factors briefly explained.
- the Huffman code is a variable length code. This is the very essence of the Huffman code, such that very common values associated with very short code words get while rarer values tend to receive longer or very long code words.
- bitstream syntax of the audio encoder addressed are the Huffman code words in sequence for one frame in the bit stream written. The beginning of the code word for a scale factor can only be determined if the corresponding preceding one Code word correctly recognized, d. H. decoded is.
- the code words for the individual scale factors are simply in ascending order written in the bitstream. Carries out the transmission of the bit stream via a faulty channel, such as is a radio channel, to a bit error that is the length of the code word that changed the very first scale factor is assigned, it is impossible to measure the scale factors of the decode entire frames error-free because of the decoder has no way of beginning the code word for the to determine the second scale factor. Although under certain circumstances all other scale factors except the one at the beginning Scale factor that was disturbed in the example is correct have therefore been transmitted, there is no possibility in the encoder more, the correctly transferred scale factors decode.
- the one used Code is an unbalanced, fixed-length code in which a symmetrical code of variable length is mixed, such that on a certain number of bits of a code word fixed length with a bit of a symmetrical code word variable length follows.
- the symmetrical code words are more variable Length only serve for the robustness of errors and wear no useful information.
- the symmetrical variable length codewords are extracted and analyzed for transmission errors.
- a disadvantage of this mixed code is the fact that Errors cannot be found in the code words fixed length occur because only the symmetrical Code words of variable length are examined. on the other hand can undisturbed fixed-length code words as error-prone can be identified if the associated code words are more variable Length are disturbed.
- U.S. Patent No. 5,488,616 is concerned with a system for delivering reversible codes of variable length. For this is created from a non-reversible variable length code, the generated only provisionally, an asymmetrical reversible Code generated.
- the non-reversible code is more variable Length is also converted into a symmetric reversible code converted.
- a selector either selects the asymmetric reversible code or the symmetric reversible Code as output signal.
- the symmetrical reversible Code is represented by a full code tree, where all branches are either symmetrical Code words or are terminated by branch points, these branching points again by a symmetrical Codeword are completed or to further branch points to lead.
- the code tree contains only symmetrical code words.
- EP 0 732 855 A2 discloses a system for coding and / or decoding video images using Variable length code words.
- the encoder includes one first encoder with a code word table for source symbols in a range of source symbols, this first Code table Codewords ⁇ with variable length, the source symbols are assigned.
- a source symbol for which no code word from the first code table is present is in a second encoder entered a code table with code words has a codeword of fixed length around the source symbol Assign length.
- the code word becomes firmer Length preceded and followed by an escape code, whereby the escape code from the code table of the first encoder, which has variable length code words.
- the code words variable length of the first encoder are reversible Code words, the code words of the second encoder one have a fixed length.
- This Data stream can be in both forward and in Reverse direction are decoded using a decoder, when it encounters an escape code, the group of bits, that follow the escape code as a code word of fixed length, since the decoder for the number of bits in the Group, i.e. informed about the length of the code words of fixed length is.
- the object of the present invention is a Concept for entropy coding of information words and for decoding entropy-coded information words create that when transmitting the entropy-encoded Information words about a faulty channel enables better error detection and still one if possible provides good coding efficiency.
- This task is accomplished by an entropy coding device according to claim 1, a device for decoding according to claim 10, a method for entropy coding according to claim 19 and by a method for Decoding solved according to claim 20.
- the present invention is based on the finding that that only the information words are effectively transmitted in an error-proof manner can be created by reversible, e.g. B. symmetrical, Codewords are encoded. Allow only reversible code words forward and backward decoding of a sequence of code words that are a sequence of information words is clearly assigned.
- the has asymmetrical code words but from a data compression point of view hub is optimal, has a symmetrical Code a higher redundancy. This redundancy can be advantageous be used for error detection.
- Information words coded using symmetrical code words just the information words contained in one certain range of information words.
- Information words, that are out of range not coded using the symmetrical code but can according to a preferred embodiment of the present Invention Huffman encoded. So it becomes a Compromise between robustness on the one hand and Data compression done on the other hand.
- the error limitation is carried out by that a decoder is invalid, i. H. non-reversible, Recognizes code words and deduces from this that there is a transmission error exists because such a code word by definition was not generated in the encoder.
- the probability that a fault leading to an invalid code word is then on highest if there are only a small number of code words is. If there is a very large number of code words, so the probability that a Fault leads to an invalid code word, since the Length of the invalid code words increases more and more.
- the method according to the invention is particularly advantageous there where the information words to be encoded are essentially lie within a range, and only with a smaller one Probability information words out of range lie.
- a preferred application of the present invention is in entropy-coding scale factors of a transform-coded Audio signal, because in this application statistical seen 98% of the occurring scale factor values within of a manageable range, which is characterized by symmetrical Codewords can be encoded that do not yet have excessive length. Entropy-coded information word that is outside of this range, so an additional value is transmitted, called "Escape" becomes.
- the escape value is preferably Huffman encoded and separate from the symmetrically coded scale factors in the audio bit stream transfer.
- the application of the present invention to scale factors of a transform encoded audio signal is special therefore advantageous since there are already minor disturbances in the scale factors through a non-ideal channel too cause very audible interference, as is known to be a scale factor several spectral lines multiplicatively weighted.
- the scale factors compared to the coded Spectral values only a relatively small part of the total bit amount make protection of the scale factors a redundant code does not result in significant additional effort of bits. This low additional effort is due to the error security of scale factors compared to theirs Introduce a bit amount of disruptive interference into an audio signal can, more than justified.
- the present invention is not based on entropy coding or decoding of scale factors limited, but is advantageous wherever information words are to be coded, which are very likely to be in one Range are such that with no great loss of efficiency relatively short symmetrical code words can be managed can, values outside the range due to escape sequences can be encoded.
- the code according to the invention represents an entropy code, often similar to the widely used Huffman code short code words and rarely occurring values Assigns long code words to values.
- the code according to the invention however differs from the Huffman code in the following ways:
- the coding used in contrast to the Huffman coding a decoding from both sides (forward and backwards). This is also called in technology “Reversible Variable Length Coding" (RVLC).
- RVLC Reversible Variable Length Coding
- the Backward decoding is possible if reversible, e.g. B. symmetric code words, d. H. when a Code book or a code table with reversible code words is used.
- RVL code allows the effect that the code table, i.e. H. the amount of available Code words, does not form a "complete tree". It So there are code symbol sequences that are not a valid code word result, d. H. the codewords result in not being symmetrical are. The gaps that arise in the tree can be exploited to detect transmission errors as they indicate that a received code word is never indicated by a transmitter has been generated.
- the Huffman coding is optimal in terms of information theory it doesn't make sense to use a different code if the only goal is to increase data compression maximize. However, when it comes to an increase in insensitivity to errors with as little loss of compression efficiency as possible the Huffman code is not advantageous.
- By coding with variable length code words an error from the disturbed code word to all subsequent ones Propagate code words. So by a bit error falsifies the length of a code word, which leads to the fact that all subsequent code words in a code word sequence are not can be decoded more because the decoder has no knowledge of which has where the corresponding code words begin.
- variable length code e.g. B.
- the Huffman code now uses a reversible code of variable length, an error that changes the length of a code word can usually be diagnosed very quickly due to the presence of invalid code words. If an invalid code word becomes known, the decoding is aborted. This is not possible with Huffman coding because all code words are valid and therefore no invalid code words exist.
- the RVLC allows decoding from behind, which makes it easier to isolate the error. The following example shows this.
- a code table according to the invention could, for example, be as follows: information word code word 3 110011 2 11011 1 111 0 0 -1 101 -2 1001 -3 10001
- the area for information words through this code table be coded using only symmetrical code words can range from -2 to +2. Values outside of this There are limits, d. H. which are greater than 2 in amount, in addition to the symmetrical code word for -3 or Escape +3.
- Decoding five values from the front gives 111, 10001, 111, 0 , 101, ie 1, -3, 1, 0, -1.
- the decoding from behind gives the following sequence: 101, 11010, ie only -1 and an invalid code word. From this simple example it can be seen that the invalid code word 0 1011 is recognized very quickly by the decoding from the rear, ie by the reverse decoding. Furthermore, the error can be very quickly localized and identified by aborting the decoding process after the invalid code word. Reverse decoding therefore reports an error in the range from the last bit to the eighth bit from behind.
- error concealment techniques consist of simply replacing a faulty one Value by its neighboring intact value. on the other hand can, if both intact values that border on an error, weighted averages from the left and right margin used to the incorrect value to replace artificially, d. H. to disguise. Still others Error concealment techniques use interpolation using two adjacent values between which there is a mistake. Likewise, one-sided prediction be taken from the front or from behind to make a faulty one Value through a "possibly relatively intact" Value to replace.
- FIG. 1 shows an entropy encoder according to a preferred one Embodiment of the invention.
- a decision maker 10 information words to be coded are fed in.
- information words to be coded are fed in.
- the tables above consisted of information words of simplicity for the sake of integer numbers only.
- With an audio encoder are information words that are entropy-encoded should be such.
- the expression "information words” should therefore encompass every type of presentation, through which one coding information can be displayed.
- the decision maker 10 determines whether the information word in a range of information words or outside the Range of information words. The area will determined by the code table implemented in the encoder. If it is determined in the decision maker that a code to be coded Information word is within the range the same to a device 12 for assigning a symmetrical one Code words from a group of symmetrical code words, d. H. from the code table, transmitted such that a symmetrical code word is assigned to the information word becomes. On the other hand, the decision maker 10 decides that the Information word outside of the one determined by the code table Area, this information word is from Decision maker 10 for a device 14 for generating a added value, such that the facility 14 in a preferred embodiment of the present Invention determined the escape value.
- the facility 14 basically comprises two outputs, i. H. an exit to Writing the escape value into an escape area of the bit stream, and, on the other hand, an output connected to a bitstream formatter 16 which is connected to a current of Code words or a sequence of code words generated that the sequence of Information words is assigned.
- Fig. 3 shows one continuous stream 30 of "potentially" symmetrical code words, the term “potential" is intended to indicate that the stream 30 already over a non-ideal channel, e.g. B. a radio link has been transmitted, causing bit interference may have occurred.
- the stream consists of individual symmetric code words 30a, 30b, 30c, etc., all within of through the code table, the symmetrical code words includes, specified range.
- the electricity out however, potentially symmetric code words also includes symmetrical code words 31, 32 for information words stand at the edge of the area.
- the code words 30a-30c become generated by the allocation device 12 and in the Bitstream formatter 16 fed.
- the code words for Words of information at the edge of the area will appear at a preferred embodiment of the present invention generated by the device 14 and from there in the Bitstream formatter 16 is fed, the one shown in FIG Stream 30 forms.
- Codewords 30a-30c and 31 and 32 represent information words from -7 to +7, i. H.
- Information words to which symmetrical code words are assigned are. Has the information word to be coded a value of for example +12, the sum is the symmetric Code word 31 and the escape value the value +12.
- a decoder that encounters code word 31 immediately recognizes that this is a code word at the edge of the range acts, which is why the decoder for decoding the information word using link A in the escape area "goes" to find that an escape value of im present example 5 is present.
- the facility 14 leads to generation according to a preferred embodiment the present invention thus has two functions by. First, it provides the code word for the edge of the Range in the stream 30 from symmetric code words. To the others it is the difference between the one to be encoded Information word and the code word at the edge of the area and creates an escape value that represents the difference.
- the escape value can be changed using the coding methods according to the invention are entropy-coded. However, it is preferred for data compression reasons that To encode the escape value using a Huffman code. From Fig. 3 it can also be seen that the escape value is not in the Stream is written from symmetrical code words, but somewhere else in the bitstream.
- the decision maker becomes 10 find that this value is outside the range defined by the Code table with symmetrical code words defined area lies.
- the device 14 for generating an additional On the one hand, value becomes the code word for the value -7 output to bitstream formatter 16 and the other the difference, d. H. 5, write in the escape area.
- the Value -12 is then the result of the combination of the value -7, in FIG. 3, for example, the code word 32 and the escape value 34 via the link represented by arrow B.
- a value of +7 would be in the preferred embodiment of the present invention as a code word for +7, i.e. H. as the code word 31, and 0 in the escape area, i.e. H. as the Escape value 33, can be encoded.
- the device 14 for generating a additional value is the difference between the information word to be encoded and the information word at the edge of the area forms and on the one hand a symmetrical code word in the Stream 30 of symmetric code words writes and on the other hand writes the difference in the escape area. It is alternatively also possible that the entire information word in the escape area is written, and in the stream of symmetric Code words just a placeholder, a specific one Bit combination or the like either by the Device 14 or by the bit stream formatter 16 is inserted to a downstream decoder signal that it is at this point in the bit stream in the Escape area must go.
- the procedure shown has but the advantage that at least the part of the information word, which is in the range defined by symmetric Code words is covered by means of a symmetrical code word is encoded, leaving only the difference, for example is encoded using a Huffman code, less is strongly secured or error-proof.
- the alternative procedure would have the advantage, however, that no addition or Difference formation must be carried out, and that for a Information word out of range of less redundant Code is used.
- the disadvantage is that the information word out of range is not can be decoded backwards. However, it can either processes known in the prior art or the process according to the invention Coding method used to protect the escape area to create safe conditions here too.
- Fig. 2 shows a preferred embodiment of a decoder according to the present invention.
- a sequence Codewords or a stream of "potentially symmetrical Code words "30 are fed into a memory 20 which an analyzer 21 can access to one in memory Analyze 20 saved sequences.
- the analyzer 21 comprises a device for detecting a symmetrical code word from the sequence 30 of code words and on the other hand, means for detecting a predetermined one Codes in sequence 30 of code words. Detected the analyzer 21 an intact symmetrical code word, so it transmits this to a device 22 for assignment a certain information word based on the code word on a previously known code table, that of the encoder (Fig. 1) used code table must correspond.
- Detects the Analyzer 21 has a predetermined code that is present Example the code word for an edge of the area is, he gives this code word to a device 23 for Finding an additional information word outside of Range.
- the device 23 is in the preferred embodiment when a code word 31 occurs in the stream 30 access the escape area and there the corresponding Get the escape value and go to the information word that corresponds to code word 31, add or subtract.
- a predetermined code in the exemplary embodiment the code word for an information word on the edge, to a Code word in the escape area can be in different ways and wise things happen. The easiest is to use one consecutive pointer, being both the escape area as well as the stream 30 are synchronized. This synchronization is in the preferred embodiment of the present Invention in which scale factors are encoded entropy are given by the fact that always a block or frame of a Audio signal is processed. For each block the Escape area and stream 30 of symmetric code words initialized so that the use of a continuous Pointer provides correct results.
- the encoder according to the invention further comprises a device 24 to reverse the order of the decoder by the analyzer 21 is activated.
- the analyzer finds 21 an unsymmetrical code word in the stream 30, so it becomes the Activate device 24 for reversing the order, since an asymmetrical code word in the stream 30 from potentially symmetric code words cannot occur.
- the facility 22 to assign and the device 23 to determine then work in reverse order from the other end the sequence of code words to be decoded with narrow down the error in such a way that only possible few values can be replaced by an error concealment have to.
- the corresponding decoder further comprises one Differential decoder 25, which is the differential coding generated in the encoder undo again.
- the differential decoder 25 is according to the invention by the device for reversing order 24 also activated to a Reverse differential decoding to perform differential encoding Information words used by the institution 25 transmitted by the facilities 22 and 23, also in Backward direction again completely decoded information words manufacture.
- the Reverse differential decoder and the forward differential decoder may be separate facilities or the same are implemented by a single facility, with an addition in forward differential decoding is executed while in reverse differential decoding a subtraction is performed.
- differential coding with the coding method According to the present invention, it is particularly advantageous only suitable by a differential coding at selected starting value of the difference formation the absolute Information words, e.g. B. by a symmetrical to zero Area to be "moved".
- the area for information words runs be encoded symmetrically, from -7 to +7.
- the escape value is transferred.
- the same Huffman is encoded.
- the "Escape" table consists of 54 entries for values between 0 and 53. Every time the recipient receives a -7 or decodes a +7, it must have the associated escape value decode and add or subtract.
- the interval -7 to +7 covers 98% of the occurring scale factor values, such that escape values not particularly common. Should be more common escape values occur, or will fail safety one more time More attention is given to various known ones Process and also the inventive method used to make the escape values more error-proof.
- Fig. 4A In the a known symmetric code is shown, for example in the aforementioned specialist publication by Göran Bang and Göran Roth is revealed.
- This code is defined by a code tree that has a root 40 and a Has branch point 42. Are at the root of it is a binary code, two branches 43, 44 are attached, where branch 43 is root 40 with an end point connects that defines the valid code word "1".
- the branch 44 connects the root 40 to the branch point 42, from the two branches 45, 46 lead away.
- the branch 46 is with one Connected endpoint which is the second valid code word this Codes "00" defined while branch 45 is an invalid one Codeword of this code, i. H. "01" defined.
- the code word "01" is invalid because it is asymmetrical. In terms of the further notation it should be noted that in 4A and 4C and in Fig. 5 invalid code words are framed are.
- the code shown in Fig. 4A thus comprises only two valid code words, i. H. "1" and "00", and only one invalid code word, i. H. "01", the same long as the second valid code word is "00".
- FIG. 4B A slightly longer code is shown in Fig. 4B.
- the code in FIG. 4B contains another valid one Code word "010” and also an invalid code word, the now also like the additional valid code word 3 bit is long and has the value "011".
- branch 45 is not connected to an end point, but rather with another branch point 47, of which two branches going out, with the first outgoing branch for additional valid code word "010” is sufficient, while the other branch to only invalid code word "011” is sufficient.
- FIGS. 4A and 4B are the logical continuation of FIGS. 4A and 4B since the branch point 47 now has a further branch point 48 is connected, of which in turn two branches going out, one branch an additional symmetrical Codeword "0110" defined while the other's end point Branch defines the only invalid code word "0111" that has the same length (4 bits) as the longest code word of the Code tree, d. H. the code table.
- the code table according to the invention shown in FIG. 5 overcomes these disadvantages in that at least in the code tree there is a branch point, of which two branches go out, both with a branch point instead of are connected to an end point.
- these are branch points 50a, 50b, 50c and 50d.
- the code tree in Fig. 5 also includes a root 52, from which two branches 53 and 54 start, the branch 53 is connected to an end point through which the first and shortest code word 0 is defined, the preferred one Embodiment of information value "0" is assigned.
- the code word 0 has the shortest length and is therefore in the sense an entropy coding assigned the information value, the most common.
- the information values are differentially coded, it has been found that especially in the differential coding of scale factors the value 0 is most likely to occur.
- branch 54 does not end in a code word of length 2 bits but leads to branch point 50a, which in turn has two branches 55, 56 with further connection points 57, 58 is connected.
- the connection points 57 and 58 are in turn via corresponding branches 59, 60 with Endpoints that contain the valid code words 101 and 111 define.
- code words 101 and 111 are in the code table shown in FIG. 5 assigned to the information values "-1" and "1". Under the In terms of entropy coding, it is convenient for two Informational values that are very likely to be equally common occur to provide code words of the same length.
- Fig. 5 From Fig. 5 it can be seen that from the connection point 50c two branches 62, 63 go out, the branch 63 with one Connection point 64 is connected to one with branches Valid code word 110011 and with an invalid code word 110010 is connected. For example, a decoder now hits to the invalid code word 110010, it becomes the coding process cancel because such a code word is irreversible and has never been generated in an encoder.
- FIG. 5 The formation and assignment of further code words Information values can be seen from FIG. 5. However, it is pointed out another peculiarity.
- a preferred one Use of the code according to the invention shown in FIG. 5 consists in using the reversible code with escape values. As it has already been shown is an information value that is out of range from "-7" to "+7", by the code word for the corresponding one Information value at the edge of the area and the further difference in an escape table coded. Therefore, there is a higher possibility that in the encoded bitstream the value at the edge of the range, i.e. H. "-7" or "7" must be coded. Furthermore, the probability same size that "-7" or "+7" occurs.
Abstract
Description
Die vorliegende Erfindung bezieht sich auf ein Konzept zum Entropiecodieren und auf ein entsprechendes Konzept zum Decodieren von Entropie-codieren Informationswörtern. Insbesondere bezieht sich die vorliegende Erfindung auf die fehlersichere Entropie-Codierung und entsprechende Decodierung von Audiosignalen.The present invention relates to a concept for Entropy coding and a corresponding concept for decoding of entropy-encoding information words. In particular The present invention relates to the fail-safe Entropy coding and corresponding decoding of audio signals.
Moderne Audiocodierverfahren bzw. -decodierverfahren, die
beispielsweise nach dem Standard MPEG-Layer 3 arbeiten, sind
in der Lage, die Datenrate von Audiosignalen beispielsweise
um einen Faktor 12 zu komprimieren, ohne die Qualität derselben
merkbar zu verschlechtern. Um eine derartig hohe
Datenratenreduktion zu erreichen, wird ein Audiosignal abgetastet,
wodurch eine Folge von zeitdiskreten Abtastwerten
erhalten wird. Wie es in der Technik bekannt ist, wird diese
Folge von zeitdiskreten Abtastwerten mittels geeigneter
Fensterfunktionen gefenstert, um gefensterte Blöcke von
zeitlichen Abtastwerten zu erhalten. Ein Block zeitlich
gefensterter Abtastwerte wird dann mittels einer Filterbank,
einer modifizierten diskreten Cosinustransformation (MDCT)
oder einer anderen geeigneten Einrichtung in den Frequenzbereich
transformiert, um Spektralwerte zu erhalten, die
insgesamt das Audiosignal, d. h. den zeitlichen Ausschnitt,
der durch den Block von zeitdiskreten Abtastwerten gegeben
ist, im Frequenzbereich darstellen. Üblicherweise werden
sich zu 50% überlappende zeitliche Blöcke erzeugt und
mittels einer MDCT in den Frequenzbereich transformiert, wodurch
aufgrund der speziellen Eigenschaften der MDCT immer
beispielsweise 1024 zeitdiskrete Abtastwerte zu 1024 Spektralwerten
führen. Modern audio coding processes or decoding processes that
work according to the
Es ist bekannt, daß die Aufnahmefähigkeit des menschlichen
Ohrs vom Augenblicksspektrum des Audiosignals selbst abhängt.
Diese Abhängigkeit ist in dem sog. psychoakustischen
Modell erfaßt, mittels dem es seit längerem möglich ist,
abhängig vom augenblicklichen Spektrum Maskierungsschwellen
zu berechnen. Maskierung bedeutet, daß ein bestimmter Ton
bzw. Spektralanteil verdeckt wird, wenn beispielsweise ein
benachbarter Spektralbereich eine relativ hohe Energie besitzt.
Diese Tatsache der Maskierung wird ausgenutzt, um die
nach der Transformation vorhandenen Spektralwerte möglichst
grob zu quantisieren. Es wird daher angestrebt, einerseits
hörbare Störungen im wieder decodierten Audiosignal zu vermeiden
und andererseits möglichst wenig Bits zu verwenden,
um das Audiosignal zu codieren bzw. hier zu quantisieren.
Die durch die Quantisierung eingeführten Störungen, d. h.
das Quantisierungsrauschen, soll unter der Maskierungsschwelle
liegen und somit unhörbar sein. Gemäß bekannter
Verfahren wird daher eine Einteilung der Spektralwerte in
sog. Skalenfaktorbänder durchgeführt, die den Frequenzgruppen
des menschlichen Ohrs entsprechen sollten. Spektralwerte
in einer Skalenfaktorgruppe werden mit einem Skalenfaktor
multipliziert, um Spektralwerte eines Skalenfaktorbandes
insgesamt zu skalieren. Die durch den Skalenfaktor
skalierten Skalenfaktorbänder werden anschließend quantisiert,
woraufhin quantisierte Spektralwerte entstehen.
Selbstverständlich ist eine Gruppierung in Skalenfaktorbänder
nicht entscheidend. Sie wird jedoch bei den Standards
MPEG-Layer 3 bzw. bei dem Standard MPEG-2 AAC (AAC = Advanced
Audio Coding) verwendet.It is known that the human absorption capacity
Ear depends on the instantaneous spectrum of the audio signal itself.
This dependency is in the so-called psychoacoustic
Model, by means of which it has been possible for a long time,
depending on the current spectrum masking thresholds
to calculate. Masking means that a certain tone
or spectral component is hidden, for example, if
neighboring spectral range has a relatively high energy.
This fact of masking is exploited to the
spectral values available after the transformation, if possible
roughly quantize. It is therefore sought, on the one hand
Avoid audible interference in the decoded audio signal
and on the other hand to use as few bits as possible,
to encode or quantize the audio signal here.
The disturbances introduced by the quantization, i. H.
the quantization noise is said to be below the masking threshold
lie and thus be inaudible. According to known
The process is therefore divided into spectral values
So-called scale factor bands performed, the frequency groups
of the human ear. spectral
be in a scale factor group with a scale factor
multiplied by spectral values of a scale factor band
to scale overall. That by the scale factor
scaled scale factor bands are then quantized,
whereupon quantized spectral values arise.
Of course, a grouping in scale factor bands
not crucial. However, it is in the standards
MPEG-
Ein sehr wesentlicher Aspekt der Datenreduzierung besteht in der nach dem Quantisieren folgenden Entropie-Codierung der quantisierten Spektralwerte. Für die Entropiecodierung wird üblicherweise eine Huffman-Codierung verwendet. Unter einer Huffman-Codierung versteht man eine Codierung mit variabler Länge, d. h. die Länge des Codeworts für einen zu codierenden Wert ist abhängig von dessen Auftrittswahrscheinlichkeit. Logischerweise ordnet man dem wahrscheinlichsten Zeichen den kürzesten Code, d. h. das kürzeste Codewort, zu, so daß mit der Huffman-Codierung eine sehr gute Redundanzreduktion erreicht werden kann. Ein Beispiel für eine allseits bekannte Codierung mit allgemeiner Länge ist das Morse-Alphabet.A very important aspect of data reduction is in the entropy coding of the following after quantization quantized spectral values. For entropy coding usually Huffman coding is used. Under one Huffman coding is a coding with variable Length, d. H. the length of the code word for one to be encoded The value depends on its probability of occurrence. Logically you rank the most likely Character the shortest code, d. H. the shortest code word, too, so that with the Huffman coding a very good redundancy reduction can be achieved. An example of an all around well-known coding with general length is the Morse alphabet.
In der Audiocodierung werden Huffman-Codes zur Codierung der quantisierten Spektralwerte benutzt. Ein moderner Audio-Coder, der beispielsweise nach dem Standard MPEG-2 AAC arbeitet, verwendet zur Codierung der quantisierten Spektralwerte verschiedene Huffman-Codetabellen, die dem Spektrum nach bestimmten Kriterien abschnittsweise zugeordnet werden. Dabei werden immer 2 oder 4 Spektralwerte in einem Codewort gemeinsam codiert.In the audio coding, Huffman codes are used to code the quantized spectral values used. A modern audio coder, who works according to the MPEG-2 AAC standard, used to encode the quantized spectral values various Huffman code tables that match the spectrum assigned in sections according to certain criteria. There are always 2 or 4 spectral values in one code word coded together.
Ein Unterschied des Verfahrens nach MPEG-2 AAC gegenüber dem
Verfahren MPEG-Layer 3 besteht nun darin, daß verschiedene
Skalenfaktorbänder, d. h. verschiedene Spektralwerte, zu
beliebig vielen Spektralabschnitten oder "Sections" gruppiert
werden. Bei AAC umfaßt ein Spektralabschnitt oder eine
"Section" zumindest vier Spektralwerte aber vorzugsweise
mehr als vier Spektralwerte. Der gesamte Frequenzbereich der
Spektralwerte wird daher in benachbarte Sections aufgeteilt,
wobei eine Section ein Frequenzband darstellt, derart, daß
alle Sections zusammen den gesamten Frequenzbereich, der
durch die Spektralwerte nach der Transformation derselben
überdeckt wird, umfassen.A difference of the procedure according to MPEG-2 AAC compared to that
Process MPEG-
Einem Abschnitt wird nun ebenso wie beim MPEG-Layer-3-Verfahren
zum Erreichen einer maximalen Redundanzreduktion
eine sog. Huffman Tabelle aus einer Mehrzahl derartiger
Tabellen zugeordnet. Im Bitstrom des AAC-Verfahrens, welches
üblicherweise 1024 Spektralwerte aufweist, befinden sich nun
die Huffman-Codewörter für die Spektralwerte in aufsteigender
Frequenzreihenfolge. Die Information über die in jedem
Frequenzabschnitt verwendete Tabelle wird in den Seiteninformationen
übertragen. A section is now just like the
Neben den Spektralwerten werden beim Standard MPEG-2-AAC (ISO/IEC JTC1/SC29/WG11 IS 13818.7) die Skalenfaktoren einer Huffman-Codierung unterzogen, um die zu übertragende Bitmenge weiter zu reduzieren. Zur weiteren Erhöhung der Effizienz werden die Skalenfaktoren innerhalb eines Frames, d. h. innerhalb eines zugehörigen gefensterten und in den Frequenzbereich transformierten Blocks von Abtastwerten, Differenz-codiert. Dabei wird ausgehend von einem Startwert, typischerweise dem ersten Skalenfaktor eines frames, der absolut gegeben ist, die Differenz ermittelt. Dies ist besonders effizient für die Kompression, da kleine Änderungen von einem Skalenfaktor zum nächsten sehr wahrscheinlich sind.In addition to the spectral values, the standard MPEG-2-AAC (ISO / IEC JTC1 / SC29 / WG11 IS 13818.7) the scale factors of one Huffman coding subjected to the amount of bits to be transmitted further reduce. To further increase efficiency the scale factors within a frame, i.e. H. within an associated windowed and in the frequency domain transformed blocks of samples, difference encoded. Starting from a starting value, typically the first scale factor of a frame, the absolute is given, the difference is determined. This is special efficient for compression since small changes from one scale factor to the next are very likely.
Nachteilig an dem verwendeten Huffman-Code ist die Tatsache, daß er praktisch keine Redundanz besitzt. Obwohl dies aus Biteinsparungs- bzw. Datenkompressionsgründen absolut wünschenswert ist, führt es doch dazu, daß eben keine Redundanz verfügbar ist, um eine Fehlerrobustheit erhalten zu können.A disadvantage of the Huffman code used is the fact that it has practically no redundancy. Although this is from Bit saving or data compression reasons absolutely desirable it leads to the fact that there is no redundancy is available in order to be able to maintain a robustness against errors.
Wenn ein Huffman-codiertes Signal über einen fehlerbehafteten Kanal übertragen wird, besteht im Decodierer nahezu keine Möglichkeit, noch eventuell gültige Werte nach Auftreten des Fehlers zu "retten". Dies sei anhand der Huffman-codierten Skalenfaktoren kurz erläutert. Wie es bereits erwähnt wurde, ist der Huffman-Code ein Code mit variabler Länge. Dies ist gerade das Wesen des Huffman-Codes, derart, daß sehr häufig auftretende Werte sehr kurze Code-Wörter zugeordnet bekommen, während seltener auftretende Werte eher längere bzw. sehr lange Code-Wörter erhalten. In der Bitstrom-Syntax des angesprochenen Audiocodierers werden die Huffman-Codewörter nacheinander für einen Frame in den Bitstrom geschrieben. Der Beginn des Code-Worts für einen Skalenfaktor ist nur zu ermitteln, wenn das entsprechende vorausgehende Code-Wort korrekt erkannt, d. h. decodiert, worden ist.If a Huffman-encoded signal has an error Channel is transmitted, there is almost none in the decoder Possibility of still valid values after occurrence to save the error. This is based on the Huffman coded Scale factors briefly explained. As mentioned earlier the Huffman code is a variable length code. This is the very essence of the Huffman code, such that very common values associated with very short code words get while rarer values tend to receive longer or very long code words. In bitstream syntax of the audio encoder addressed are the Huffman code words in sequence for one frame in the bit stream written. The beginning of the code word for a scale factor can only be determined if the corresponding preceding one Code word correctly recognized, d. H. decoded is.
Beispielhaft bedeutet dies, daß zwischen 40 und 100 Skalenfaktoren in einem Frame vorkommen, je nach dem wieviel Skalenfaktorbänder erzeugt worden sind. Dies bedeutet auch, daß etwa 40 bis zu etwa 100 Skalenfaktoren pro Frame Huffman-codiert werden. Die Code-Wörter für die einzelnen Skalenfaktoren werden in aufsteigender Reihenfolge einfach nacheinander in den Bitstrom geschrieben. Führt die Übertragung des Bitstroms über einen fehlerbehafteten Kanal, wie es beispielsweise ein Funkkanal ist, zu einem Bitfehler, der die Länge des Code-Worts verändert, das dem allerersten Skalenfaktor zugeordnet ist, so ist es unmöglich, die Skalenfaktoren des gesamten Frames fehlerfrei zu decodieren, da der Decodierer keine Möglichkeit hat, den Beginn des Code-Worts für den zweiten Skalenfaktor zu ermitteln. Obwohl unter Umständen alle anderen Skalenfaktoren außer dem am Anfang stehenden Skalenfaktor, der beim Beispiel gestört worden ist, korrekt übertragen worden sind, besteht im Codierer daher keine Möglichkeit mehr, die korrekt übertragenen Skalenfaktoren zu decodieren.For example, this means that between 40 and 100 scale factors occur in a frame, depending on how many scale factor bands have been generated. This also means that about 40 to about 100 scale factors per frame Huffman encoded become. The code words for the individual scale factors are simply in ascending order written in the bitstream. Carries out the transmission of the bit stream via a faulty channel, such as is a radio channel, to a bit error that is the length of the code word that changed the very first scale factor is assigned, it is impossible to measure the scale factors of the decode entire frames error-free because of the decoder has no way of beginning the code word for the to determine the second scale factor. Although under certain circumstances all other scale factors except the one at the beginning Scale factor that was disturbed in the example is correct have therefore been transmitted, there is no possibility in the encoder more, the correctly transferred scale factors decode.
Die Fachveröffentlichung "A tool for generating bit error resilient VLC tables" von Göran Bang und von Göran Roth, Proposal für ISO/IEC JTC 1/SC29/WG11 vom Juli 1996 bezieht sich auf ein Konzept zum Codieren und Decodieren von Videoinformationen und Audioinformationen unter Verwendung eines Codes variabler Länge (VLC), das zur Verwendung in Verbindung mit fehleranfälligen Kanälen geeignet ist. Wenn ein Bitfehler in der Vorwärtsrichtung eines empfangenen Bitstroms erfaßt wird, wird in der umgekehrten Richtung decodiert. Wenn ein Bitfehler auch bei der Decodierung in der umgekehrten Richtung erfaßt wird, wird das Decodieren in der umgekehrten Richtung ebenfalls abgebrochen. Der verwendete Code ist ein unsymmetrischer Code mit fester Länge, in den ein symmetrischer Code mit variabler Länge gemischt wird, derart, daß auf eine bestimmte Anzahl von Bits eines Codeworts fester Länge ein Bit eines symmetrischen Codeworts mit variabler Länge folgt. Die symmetrischen Codewörter variabler Länge dienen lediglich der Fehlerrobustheit und tragen keine Nutzinformationen. Auf der Empfängerseite werden zunächst die symmetrischen Codewörter variabler Länge extrahiert und auf übertragungsfehler analysiert.The specialist publication "A tool for generating bit error resilient VLC tables "by Göran Bang and by Göran Roth, Proposal for ISO / IEC JTC 1 / SC29 / WG11 dated July 1996 on a concept for encoding and decoding video information and audio information using a Variable length codes (VLC) used in conjunction with channels prone to errors. When a Bit error in the forward direction of a received bit stream is detected is decoded in the reverse direction. If a bit error occurs even when decoding in the reverse direction is detected, the decoding in the reverse direction also canceled. The one used Code is an unbalanced, fixed-length code in which a symmetrical code of variable length is mixed, such that on a certain number of bits of a code word fixed length with a bit of a symmetrical code word variable length follows. The symmetrical code words are more variable Length only serve for the robustness of errors and wear no useful information. On the receiving end, first the symmetrical variable length codewords are extracted and analyzed for transmission errors.
Nachteilig an diesem gemischten Code ist die Tatsache, daß Fehler nicht festgestellt werden können, die in den Codewörtern fester Länge auftreten, da lediglich die symmetrischen Codewörter variabler Länge untersucht werden. Andererseits können ungestörte Codewörter fester Länge als fehlerbehaftet identifiziert werden, wenn die dazu gehörigen Codewörter variabler Länge gestört sind.A disadvantage of this mixed code is the fact that Errors cannot be found in the code words fixed length occur because only the symmetrical Code words of variable length are examined. on the other hand can undisturbed fixed-length code words as error-prone can be identified if the associated code words are more variable Length are disturbed.
Das U. S. Patent Nr. 5,488,616 befaßt sich mit einem System zum Liefern von umkehrbaren Codes variabler Länge. Hierzu wird aus einem nicht-reversiblen Code variabler Länge, der lediglich provisorisch erzeugt wird, ein asymmetrischer umkehrbarer Code erzeugt. Der nicht-reversible Code variabler Länge wird ferner in einen symmetrischen reversiblen Code umgewandelt. Eine Auswahleinrichtung wählt entweder den asymmetrischen reversiblen Code oder den symmetrischen reversiblen Code als Ausgangssignal. Der symmetrische reversible Code ist durch einen vollständigen Codebaum dargestellt, bei dem sämtliche Zweige entweder durch symmetrische Codewörter oder durch Verzweigungspunkte abgeschlossen sind, wobei diese Verzweigungspunkte wieder durch ein symmetrisches Codewort abgeschlossen sind oder zu weiteren Verzweigungspunkten führen. Der Codebaum enthält ausschließlich symmetrische Codewörter.U.S. Patent No. 5,488,616 is concerned with a system for delivering reversible codes of variable length. For this is created from a non-reversible variable length code, the generated only provisionally, an asymmetrical reversible Code generated. The non-reversible code is more variable Length is also converted into a symmetric reversible code converted. A selector either selects the asymmetric reversible code or the symmetric reversible Code as output signal. The symmetrical reversible Code is represented by a full code tree, where all branches are either symmetrical Code words or are terminated by branch points, these branching points again by a symmetrical Codeword are completed or to further branch points to lead. The code tree contains only symmetrical code words.
Die EP 0 732 855 A2 offenbart ein System zum Codieren
und/oder Decodieren von Videobildern unter Verwendung von
Codewörtern variabler Länge. Der Codierer umfaßt einen
ersten Codierer mit einer Codeworttabelle für Quellensymbole
in einem Bereich von Quellensymbolen, wobei diese erste
Codetabelle Codewörter · mit variabler Länge, die Quellensymbolen
zugeordnet sind, aufweist. Die Quellensymbole,
die durch Codewörter variabler Länge der ersten Codetabelle
codiert werden können, haben eine relative hohe Auftrittshäufigkeit.
Ein Quellensymbol, für das kein Codewort aus der
ersten Codetabelle vorhanden ist, wird in einen zweiten Codierer
eingegeben, der eine Codetabelle mit Codeworten
fester Länge hat, um dem Quellensymbol ein Codewort fester
Länge zuzuweisen. Darüber hinaus wird dem Codewort fester
Länge ein Escape-Code vorangestellt und nachgestellt, wobei
der Escape-Code aus der Codetabelle des ersten Codierers,
der Codewörter variabler Länge hat, entstammt. Die Codewörter
variabler Länge des ersten Codierers sind umkehrbare
Codewörter, wobei die Codewörter des zweiten Codierers eine
feste Länge haben. Damit wird ein einziger Datenstrom
erzeugt, der aus umkehrbaren Codewörtern variabler Länge und
aus Escape-Codes besteht, wobei immer zwischen zwei
Escape-Codes ein Codewort fester Länge steht. Dieser
Datenstrom kann sowohl in Vorwärts- als auch in
Rückwärtsrichtung decodiert werden, wobei ein Decodierer,
wenn er auf einen Escape-Code stößt, die Gruppe von Bits,
die dem Escape-Code folgen, als Codewort fester Länge erkennt,
da der Decodierer für die Anzahl der Bits in der
Gruppe, d.h. über die Länge der Codewörter fester Länge, informiert
ist.
Die Aufgabe der vorliegenden Erfindung besteht darin, ein Konzept zum Entropie-Codieren von Informationswörtern und zum Decodieren von Entropie-codierten Informationswörtern zu schaffen, das bei einer Übertragung der Entropie-codierten Informationswörter über einen fehlerbehafteten Kanal eine bessere Fehlererkennung ermöglicht und dennoch eine möglichst gute Codiereffizienz liefert.The object of the present invention is a Concept for entropy coding of information words and for decoding entropy-coded information words create that when transmitting the entropy-encoded Information words about a faulty channel enables better error detection and still one if possible provides good coding efficiency.
Diese Aufgabe wird durch eine Vorrichtung zum Entropie-Codieren
nach Patentanspruch 1, eine Vorrichtung zum Decodieren
nach Patentanspruch 10, ein Verfahren zum Entropie-Codieren
nach Patentanspruch 19 sowie durch ein Verfahren zum
Decodieren nach Patentanspruch 20 gelöst.This task is accomplished by an entropy coding device
according to
Der vorliegenden Erfindung liegt die Erkenntnis zugrunde, daß nur die Informationswörter effektiv fehlerrobust übertragen werden können, die durch umkehrbare, z. B. symmetrische, Codewörter codiert sind. Nur umkehrbare Codewörter erlauben ein Vorwärts- und Rückwärtsdecodieren einer Sequenz von Codewörtern, die einer Sequenz von Informationswörtern eindeutig zugeordnet ist. Im Gegensatz zum Huffman-Code, der unsymmetrische Codewörter aufweist, der jedoch aus Datenkompressionssicht nabezu optimal ist, besitzt ein symmetrischer Code eine höhere Redundanz. Diese Redundanz kann vorteilhaft zur Fehlererkennung ausgenutzt werden. Um jedoch im Sinne der Fehlersicherung nicht allzuviel Kompressionsgewinn zu opfern, werden gemäß der vorliegenden Erfindung nicht alle Informationswörter mittels symmetrischer Codewörter codiert, sondern lediglich die Informationswörter, die in einem bestimmten Bereich von Informationswörtern liegen. Informationswörter, die außerhalb des Bereichs liegen, werden nicht mittels des symmetrischen Codes codiert, sondern können gemäß einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung Huffman-codiert werden. Es wird somit ein Kompromiß zwischen Fehlerrobustheit auf der einen Seite und Datenkompression auf der anderen Seite gemacht.The present invention is based on the finding that that only the information words are effectively transmitted in an error-proof manner can be created by reversible, e.g. B. symmetrical, Codewords are encoded. Allow only reversible code words forward and backward decoding of a sequence of code words that are a sequence of information words is clearly assigned. In contrast to the Huffman code, the has asymmetrical code words, but from a data compression point of view hub is optimal, has a symmetrical Code a higher redundancy. This redundancy can be advantageous be used for error detection. However, in the sense not too much compression gain for error protection not all according to the present invention Information words coded using symmetrical code words, just the information words contained in one certain range of information words. Information words, that are out of range not coded using the symmetrical code, but can according to a preferred embodiment of the present Invention Huffman encoded. So it becomes a Compromise between robustness on the one hand and Data compression done on the other hand.
Ein weiterer wichtiger Aspekt für die Größe des Bereichs von Informationswörtern, die durch symmetrische Codewörter codiert werden, ist die Tatsache, daß zur Fehlereingrenzung ein kurzer Code, d. h. eine kleine Codetabelle, wünschenswert ist. Die Größe des Bereichs legt implizit die Länge des längsten Codeworts fest, da mit zunehmender Anzahl von Codewörtern in der Tabelle auch die Länge der gültigen Codewörter zunimmt.Another important aspect for the size of the range from Information words encoded by symmetrical code words become, is the fact that for error isolation a short code, d. H. a small code table, desirable is. The size of the area implicitly defines the length of the longest code word, because with increasing number of code words in the table also the length of the valid code words increases.
Die Fehlereingrenzung wird erfindungsgemäß dadurch vorgenommen, daß ein Decodierer ungültige, d. h. nicht-umkehrbare, Codewörter erkennt und daraus folgert, daß hier ein Übertragungsfehler vorliegt, da ein solches Codewort per Definition nicht im Codierer erzeugt wurde. Die Wahrscheinlichkeit, daß eine Störung zu einem ungültigen Codewort führt, ist dann am höchsten, wenn nur eine kleine Anzahl von Codewörtern vorhanden ist. Existiert eine sehr große Anzahl von Codewörtern, so wird die Wahrscheinlichkeit immer kleiner, daß eine Störung zu einem ungültigen Codewort führt, da auch die Länge der ungültigen Codewörter immer mehr zunimmt.According to the invention, the error limitation is carried out by that a decoder is invalid, i. H. non-reversible, Recognizes code words and deduces from this that there is a transmission error exists because such a code word by definition was not generated in the encoder. The probability that a fault leading to an invalid code word is then on highest if there are only a small number of code words is. If there is a very large number of code words, so the probability that a Fault leads to an invalid code word, since the Length of the invalid code words increases more and more.
Das erfindungsgemäße Verfahren ist besonders dort vorteilhaft, wo die zu codierenden Informationswörter im wesentlichen innerhalb eines Bereichs liegen, und nur mit kleiner Wahrscheinlichkeit Informationswörter außerhalb des Bereichs liegen. Je kleiner der Bereich ist, um so weniger symmetrische Codewörter sind erforderlich, und um so besser ist die Fehlerdetektion, die durch Hinzufügung künstlicher ungültiger Codewörter erhöht werden könnte. Es wird also versucht, den Bereich der Informationswörter, die mittels symmetrischer Codewörter codiert werden, im Sinne einer effektiven Fehlereingrenzung möglichst klein zu wählen, und doch so groß zu wählen, daß die Informationswörter mit großer Wahrscheinlichkeit innerhalb dieses Bereichs liegen und symmetrisch codiert werden, um insgesamt eine ausreichende Fehlerrobustheit zu schaffen.The method according to the invention is particularly advantageous there where the information words to be encoded are essentially lie within a range, and only with a smaller one Probability information words out of range lie. The smaller the area, the less symmetrical Code words are required, and so much the better Error detection by adding artificial invalid Code words could be increased. So it tries the area of information words using symmetric Codewords are encoded in the sense of an effective one To choose error containment as small as possible, and yet so large to choose that the information words with high probability lie within this range and symmetrical be coded to provide sufficient robustness overall to accomplish.
Eine bevorzugte Anwendung der vorliegenden Erfindung besteht im Entropie-Codieren von Skalenfaktoren eines Transformations-codierten Audiosignals, da bei dieser Anwendung statistisch gesehen 98% der auftretenden Skalenfaktorwerte innerhalb eines überschaubaren Bereichs liegen, der durch symmetrische Codewörter codiert werden kann, die noch keine übermäßige Länge haben. Soll ein Informationswort Entropie-codiert werden, das außerhalb dieses Bereiches liegt, so wird ein zusätzlicher Wert übertragen, der "Escape" genannt wird. Der Escape-Wert wird vorzugsweise Huffman-codiert und separat von den symmetrisch codierten Skalenfaktoren im Audiobitstrom übertragen. A preferred application of the present invention is in entropy-coding scale factors of a transform-coded Audio signal, because in this application statistical seen 98% of the occurring scale factor values within of a manageable range, which is characterized by symmetrical Codewords can be encoded that do not yet have excessive length. Entropy-coded information word that is outside of this range, so an additional value is transmitted, called "Escape" becomes. The escape value is preferably Huffman encoded and separate from the symmetrically coded scale factors in the audio bit stream transfer.
Der erfindungsgemäße Sinn der Escape-Codierung besteht also darin, trotz einer relativ kleinen RVLC-Tabelle mit guten Fehlererkennungseigenschaften einen großen Bereich von Codewörtern abdecken zu können. Die Codiereffizienz leidet in der besagte bevorzugten Anwendung kaum, da Escape-codierte Werte hier nur selten auftreten.The sense of escape coding according to the invention is therefore there in it, despite a relatively small RVLC table with good ones Error detection properties over a wide range of code words to be able to cover. The coding efficiency suffers from said preferred application hardly, since escape encoded Values rarely occur here.
Die Anwendung der vorliegenden Erfindung auf die Skalenfaktoren eines Transformations-codierten Audiosignals ist besonders deshalb vorteilhaft, da bereits kleinere Störungen in den Skalenfaktoren durch einen nicht-idealen Kanal zu stark hörbaren Störungen führen, da bekanntermaßen ein Skalenfaktor mehrere Spektrallinien multiplikativ gewichtet. Da ferner die Skalenfaktoren im Vergleich zu den codierten Spektralwerten nur einen relativ kleinen Teil der Gesamtbitmenge ausmachen, führt ein Schutz der Skalenfaktoren durch einen redundanten Code nicht zu einem wesentlichen Mehraufwand an Bits. Dieser geringe Mehraufwand wird durch die Fehlersicherheit der Skalenfaktoren, die im Vergleich zu ihrer Bitmenge ungleich stärkere Störungen in ein Audiosignal einführen können, mehr als gerechtfertigt.The application of the present invention to scale factors of a transform encoded audio signal is special therefore advantageous since there are already minor disturbances in the scale factors through a non-ideal channel too cause very audible interference, as is known to be a scale factor several spectral lines multiplicatively weighted. There also the scale factors compared to the coded Spectral values only a relatively small part of the total bit amount make protection of the scale factors a redundant code does not result in significant additional effort of bits. This low additional effort is due to the error security of scale factors compared to theirs Introduce a bit amount of disruptive interference into an audio signal can, more than justified.
Die vorliegende Erfindung ist jedoch nicht auf das Entropie-Codieren bzw. Decodieren von Skalenfaktoren begrenzt, sondern ist überall dort vorteilhaft, wo Informationswörter zu codieren sind, die mit hoher Wahrscheinlichkeit in einem Bereich liegen, derart, daß ohne großen Effizienzverlust mit relativ kurzen symmetrischen Codewörtern ausgekommen werden kann, wobei Werte außerhalb des Bereichs durch Escape-Sequenzen codiert werden können.However, the present invention is not based on entropy coding or decoding of scale factors limited, but is advantageous wherever information words are to be coded, which are very likely to be in one Range are such that with no great loss of efficiency relatively short symmetrical code words can be managed can, values outside the range due to escape sequences can be encoded.
Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend bezugnehmend auf die beiliegenden Zeichnungen erläutert. Es zeigen:
- Fig. 1
- ein schematisches Blockschaltbild für einen erfindungsgemäßen Codierer;
- Fig. 2
- ein schematisches Blockschaltbild für einen erfindungsgemäßen Decodierer;
- Fig. 3
- eine schematische Darstellung des durch den in Fig. 2 gezeigten Decodierer verarbeiteten Stroms aus Codewörtern;
- Fig. 4A
- bis 4C symmetrische Codes gemäß dem Stand der Technik; und
- Fig. 5
- einen umkehrbaren Code gemäß der vorliegenden Erfindung.
- Fig. 1
- a schematic block diagram for an encoder according to the invention;
- Fig. 2
- a schematic block diagram for a decoder according to the invention;
- Fig. 3
- a schematic representation of the stream of code words processed by the decoder shown in FIG. 2;
- Figure 4A
- to 4C symmetrical codes according to the prior art; and
- Fig. 5
- a reversible code according to the present invention.
Bevor jedoch detailliert auf die Fig. eingegangen wird, seien einige allgemeine Aspekte der Entropie-Codierung dargestellt. Insbesondere wird auf die Besonderheiten bei der Codierung differentiell codierter Werte eingegangen, die auf vorteilhafte Weise mit dem Codieren mittels symmetrischer Codewörter und Escape-Werte kombiniert werden kann.Before going into the figure in detail, however, some general aspects of entropy coding are presented. In particular, the special features of the Coding of differentially coded values received on advantageous way with the coding by means of symmetrical Code words and escape values can be combined.
Der erfindungsgemäße Code stellt einen Entropie-Code dar, der ähnlich dem vielfach verwendeten Huffman-Code häufig auftretenden Werten kurze Codewörter und selten auftretenden Werten lange Codewörter zuweist. Der erfindungsgemäße Code unterscheidet sich jedoch vom Huffman-Code folgendermaßen:The code according to the invention represents an entropy code, often similar to the widely used Huffman code short code words and rarely occurring values Assigns long code words to values. The code according to the invention however differs from the Huffman code in the following ways:
Zunächst erlaubt die verwendete Codierung im Gegensatz zur Huffman-Codierung eine Decodierung von beiden Seiten (vorwärts und rückwärts). Dies wird in der Technik auch als "Reversible Variable Length Coding" (RVLC) bezeichnet. Die Rückwärtsdecodierung ist dann möglich, wenn umkehrbare, z. B. symmetrische Codewörter, verwendet werden, d. h. wenn ein Codebuch oder eine Codetabelle mit umkehrbaren Codewörtern eingesetzt wird.First, the coding used, in contrast to the Huffman coding a decoding from both sides (forward and backwards). This is also called in technology "Reversible Variable Length Coding" (RVLC). The Backward decoding is possible if reversible, e.g. B. symmetric code words, d. H. when a Code book or a code table with reversible code words is used.
Weiterhin erlaubt die Verwendung eines RVL-Codes den Effekt, daß die Codetabelle, d. h. die Menge der zur Verfügung stehenden Codewörter, keinen "vollständigen Baum" bildet. Es gibt also Codesymbolsequenzen, die kein gültiges Codewort ergeben, d. h. die Codewörter ergeben, die nicht symmetrisch sind. Die Lücken, die in dem Baum entstehen, können ausgenutzt werden, um Übertragungsfehler zu detektieren, da sie darauf hinweisen, daß ein empfangenes Codewort niemals durch einen Sender erzeugt worden ist.Furthermore, the use of an RVL code allows the effect that the code table, i.e. H. the amount of available Code words, does not form a "complete tree". It So there are code symbol sequences that are not a valid code word result, d. H. the codewords result in not being symmetrical are. The gaps that arise in the tree can be exploited to detect transmission errors as they indicate that a received code word is never indicated by a transmitter has been generated.
Da die Huffman-Codierung informationstheoretisch optimal ist, macht es keinen Sinn, einen anderen Code zu benutzen, wenn das einzige Ziel darin besteht, die Datenkompression zu maximieren. Wenn es jedoch um eine Steigerung des Fehlerunempfindlichkeit bei möglichst geringem Verlust an Kompressionseffizienz geht, ist der Huffman-Code nicht vorteilhaft. Durch die Codierung mit Codewörtern variabler Länge kann sich ein Fehler vom gestörten Codewort auf alle nachfolgenden Codewörter fortpflanzen. Durch einen Bitfehler wird also die Länge eines Codeworts verfälscht, was dazu führt, daß alle nachfolgenden Codewörter in einer Codewortsequenz nicht mehr decodiert werden können, da der Decodierer keine Kenntnis davon besitzt, wo die entsprechenden Codewörter beginnen.Since the Huffman coding is optimal in terms of information theory it doesn't make sense to use a different code if the only goal is to increase data compression maximize. However, when it comes to an increase in insensitivity to errors with as little loss of compression efficiency as possible the Huffman code is not advantageous. By coding with variable length code words an error from the disturbed code word to all subsequent ones Propagate code words. So by a bit error falsifies the length of a code word, which leads to the fact that all subsequent code words in a code word sequence are not can be decoded more because the decoder has no knowledge of which has where the corresponding code words begin.
Wird anstatt des Codes mit variabler Länge, z. B. dem Huffman-Code,
nun ein umkehrbarer Code mit variabler Länge verwendet,
so kann aufgrund des Vorhandenseins ungültiger Codewörter
ein Fehler, der die Länge eines Codeworts ändert, in
der Regel sehr schnell diagnostiziert werden. Wird ein ungültiges
Codewort bekannt, so wird die Decodierung abgebrochen.
Dies ist bei einer Huffman-Codierung nicht möglich,
da alle Codewörter gültig sind, und daher keine ungültigen
Codewörter existieren. Darüberhinaus erlaubt der RVLC eine
Decodierung von hinten, wodurch der Fehler besser eingegrenzt
werden kann. Es sei an folgendem Beispiel dargelegt.
Eine erfindungsgemäße Codetabelle könnte beispielsweise folgendermaßen
lauten:
Der Bereich für Informationswörter, die durch diese Codetabelle allein mittels symmetrischer Codewörter codiert werden kann, reicht also von -2 bis +2. Werte, die außerhalb dieser Grenzen liegen, d. h. die betragsmäßig größer als 2 sind, werden zusätzlich zu dem symmetrischen Codewort für -3 bzw. +3 mit einem Escape-Wert versehen.The area for information words through this code table be coded using only symmetrical code words can range from -2 to +2. Values outside of this There are limits, d. H. which are greater than 2 in amount, in addition to the symmetrical code word for -3 or Escape +3.
Codewörter, die in der dargestellten Codetabelle nicht vorkommen
können, sind die folgenden:
Bezüglich einer detaillierteren Darstellung eines erfindungsgemäßen Codes sei auf Fig. 5 und die entsprechende Erörterung weiter hinten verwiesen.With regard to a more detailed representation of an inventive Codes are shown in Figure 5 and the corresponding discussion referenced later.
Es sei im nachfolgenden als fiktives Beispiel eine Zahlenfolge
1, -3, 1, 2, -1 betrachtet, die über einen fehlerbehafteten
Kanal übertragen werden soll:
Wenn der Fall betrachtet wird, daß durch einen durch den Kanal
erzeugten Fehler das zwölfte Bit gestört wird, ergibt
sich folgende Bitfolge:
gestörte Sequenz von Codewörtern:111, 10001, 111, 01011, 101If the case is considered that the twelfth bit is disturbed by an error generated by the channel, the following bit sequence results:
disturbed sequence of code words: 111, 10001, 111, 0 1011, 101
Die Decodierung von fünf Werten von vorn ergibt 111, 10001,
111, 0, 101, d. h. 1, -3, 1, 0, -1.Decoding five values from the front gives 111, 10001, 111, 0 , 101,
Die Decodierung von hinten ergibt jedoch folgende Sequenz:
101, 11010,
d. h. lediglich -1 sowie ein ungültiges Codewort. Aus diesem
einfachen Beispiel ist zu sehen, daß durch die Decodierung
von hinten, d. h. durch die Rückwärtsdecodierung, das ungültige
Codewort 01011 sehr schnell erkannt wird. Ferner kann
der Fehler durch den erfolgten Abbruch des Decodiervorgangs
nach dem ungültigen Codewort sehr schnell eingegrenzt und
identifiziert werden. Die Rückwärtsdecodierung meldet also
einen Fehler im Bereich vom letzten Bit bis zum achten Bit
von hinten.However, the decoding from behind gives the following sequence:
101, 11010,
ie only -1 and an invalid code word. From this simple example it can be seen that the
Die zwei decodierten Zahlenreihen lauten folgendermaßen. Ein
Fettdruck in der nachfolgenden Tabelle bedeutet, daß die
Werte fehlerhaft sein können:
Inwieweit hier eine Fehlereingrenzung möglich ist, hängt von der Art des Fehlers ab und von der implementierten Fehlerverschleierungstechnik. Bekannte Fehlerverschleierungstechniken bestehen im einfachen Ersetzen eines fehlerhaften Werts durch seinen benachbarten intakten Wert. Andererseits können, wenn beide intakten Werte, die an einen Fehler angrenzen, bekannt sind, gewichtete Mittelwerte aus linkem und rechtem Rand verwendet werden, um den fehlerhaften Wert künstlich zu ersetzen, d. h. zu verschleiern. Wieder andere Fehlerverschleierungstechniken verwenden eine Interpolation unter Verwendung zweier benachbarter Werte, zwischen denen ein Fehler liegt. Genauso kann eine einseitige Prädiktion von vorne oder von hinten genommen werden, um einen fehlerhaften Wert durch einen "möglicherweise relativ intakten" Wert zu ersetzen.The extent to which an error can be narrowed down depends on the type of error from and on the implemented error concealment technique. Known error concealment techniques consist of simply replacing a faulty one Value by its neighboring intact value. on the other hand can, if both intact values that border on an error, weighted averages from the left and right margin used to the incorrect value to replace artificially, d. H. to disguise. Still others Error concealment techniques use interpolation using two adjacent values between which there is a mistake. Likewise, one-sided prediction be taken from the front or from behind to make a faulty one Value through a "possibly relatively intact" Value to replace.
Fig. 1 zeigt einen Entropie-Codierer gemäß einem bevorzugten
Ausführungsbeispiel der Erfindung. In einen Entscheider 10
werden zu codierende Informationswörter eingespeist. In den
vorstehenden Tabellen bestanden Informationswörter der Einfachheit
halber lediglich aus ganzen Zahlen. Bei einem Audiocodierer
werden Informationswörter, die Entropie-codiert
werden sollen, wie z. B. Skalenfaktoren, beispielsweise als
Acht-Bit-Werte vorliegen. Der Ausdruck "Informationswörter"
soll somit jede Darstellungsart umfassen, durch die eine zu
codierende Information dargestellt werden kann.1 shows an entropy encoder according to a preferred one
Embodiment of the invention. In a
In dem Entscheider 10 wird bestimmt, ob das Informationswort
in einem Bereich von Informationswörtern oder außerhalb des
Bereichs von Informationswörtern liegt. Der Bereich wird
durch die in dem Codierer implementierte Codetabelle bestimmt.
Wird in dem Entscheider bestimmt, daß ein zu codierendes
Informationswort innerhalb des Bereichs liegt, wird
dasselbe zu einer Einrichtung 12 zum Zuweisen eines symmetrischen
Codeworts aus einer Gruppe von symmetrischen Codewörtern,
d. h. aus der Codetabelle, übermittelt, derart, daß
dem Informationswort ein symmetrisches Codewort zugewiesen
wird. Entscheidet der Entscheider 10 andererseits, daß das
Informationswort außerhalb des durch die Codetabelle bestimmten
Bereichs liegt, wird dieses Informationswort vom
Entscheider 10 zu einer Einrichtung 14 zum Erzeugen eines
zusätzlichen Werts übermittelt, derart, daß die Einrichtung
14 bei einem bevorzugten Ausführungsbeispiel der vorliegenden
Erfindung den Escape-Wert ermittelt. Die Einrichtung 14
umfaßt prinzipiell zwei Ausgänge, d. h. einen Ausgang zum
Schreiben des Escape-Werts in einen Escape-Bereich des Bitstroms,
und andererseits einen Ausgang, der mit einem Bitstromformatierer
16 verbunden ist, der einen Strom von
Codewörtern bzw. eine Sequenz von Codewörtern erzeugt, die
der am Eingang des Entscheiders 10 eingespeisten Sequenz von
Informationswörtern zugeordnet ist.It is determined in the
Zur detaillierteren Erläuterung der Funktionsweise der Einrichtung
zum Erzeugen eines zusätzlichen Werts oder Escape-Werts,
die in Fig. 1 durch das Bezugszeichen 14 gekennzeichnet
ist, sei auf Fig. 3 eingegangen. Fig. 3 zeigt einen
fortlaufenden Strom 30 aus "potentiell" symmetrischen Codewörtern,
wobei der Ausdruck "potentiell" andeuten soll, daß
der Strom 30 bereits über einen nicht-idealen Kanal, z. B.
eine Funkstrecke, übertragen worden ist, wodurch Bitstörungen
aufgetreten sein können. Der Strom besteht aus einzelnen
symmetrischen Codewörtern 30a, 30b, 30c, usw., die alle innerhalb
des durch die Codetabelle, die symmetrische Codewörter
umfaßt, festgelegten Bereichs liegen. Der Strom aus
potentiell symmetrischen Codewörtern umfaßt jedoch ferner
symmetrische Codewörter 31, 32, die für Informationswörter
am Rand des Bereichs stehen. Die Codewörter 30a - 30c werden
von der Einrichtung 12 zum Zuweisen erzeugt und in den
Bitstromformatierer 16 eingespeist. Die Codewörter, die für
Informationswörter am Rand des Bereichs bestehen, werden bei
einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung
durch die Einrichtung 14 erzeugt und von dort in den
Bitstromformatierer 16 eingespeist, der den in Fig. 3 dargestellten
Strom 30 bildet. Die Codewörter 30a - 30c und 31
und 32 stellen Informationswörter von -7 bis +7 dar, d. h.
Informationswörter, denen symmetrische Codewörter zugeordnet
sind. Hat das zu codierende Informationswort einen Wert von
beispielsweise +12, so ergibt die Summe aus dem symmetrischen
Codewort 31 und dem Escape-Wert den Wert +12.For a more detailed explanation of how the facility works
to generate an additional value or escape value,
that are identified in FIG. 1 by
Ein Decodierer, der auf das Codewort 31 stößt, erkennt sofort,
daß es sich hier um ein Codewort am Rand des Bereichs
handelt, weshalb der Decodierer zur Decodierung des Informationswortes
mittels der Verknüpfung A in den Escape-Bereich
"geht", um dort festzustellen, daß ein Escape-Wert von im
vorliegenden Beispiel 5 vorhanden ist. Die Einrichtung 14
zum Erzeugen führt gemäß einem bevorzugten Ausführungsbeispiel
der vorliegenden Erfindung somit zwei Funktionen
durch. Zum einen liefert sie das Codewort für den Rand des
Bereichs in den Strom 30 aus symmetrischen Codewörtern. Zum
anderen bildet sie die Differenz zwischen dem zu codierenden
Informationswort und dem Codewort am Rand des Bereichs und
erzeugt einen Escape-Wert, der die Differenz darstellt.
Selbstverständlich kann der Escape-Wert wiederum mittels des
erfindungsgemäßen Codierverfahren Entropie-codiert werden.
Es wird jedoch aus Datenkompressionsgründen bevorzugt, den
Escape-Wert mittels eines Huffmancodes zu codieren. Aus Fig.
3 ist ferner ersichtlich, daß der Escape-Wert nicht in den
Strom aus symmetrischen Codewörtern geschrieben wird, sondern
an eine andere Stelle im Bitstrom.A decoder that encounters
Soll nun der Wert -12 codiert werden, so wird der Entscheider
10 feststellen, daß dieser Wert außerhalb des durch die
Codetabelle mit symmetrischen Codewörtern definierten Bereichs
liegt. Die Einrichtung 14 zum Erzeugen eines zusätzlichen
Werts wird daher einerseits das Codewort für den Wert
-7 an den Bitstromformatierer 16 ausgeben und zum anderen
die Differenz, d. h. 5, in den Escape-Bereich schreiben. Der
Wert -12 ergibt sich dann durch die Kombination des Werts
-7, in Fig. 3 beispielsweise das Codewort 32, und des Escape-Werts
34 über die durch den Pfeil B dargestellte Verknüpfung.If the value -12 is now to be coded, the decision maker becomes
10 find that this value is outside the range defined by the
Code table with symmetrical code words defined area
lies. The
Ein Wert von +7 würde bei dem bevorzugten Ausführungsbeispiel
der vorliegenden Erfindung als Codewort für +7, d. h.
als das Codewort 31, und 0 im Escape-Bereich, d. h. als der
Escape-Wert 33, codiert werden.A value of +7 would be in the preferred embodiment
of the present invention as a code word for +7, i.e. H.
as the
In Abweichung vom beschriebenen Ausführungsbeispiel ist es
nicht zwingend, daß die Einrichtung 14 zum Erzeugen eines
zusätzlichen Werts die Differenz aus zu codierendem Informationswort
und dem Informationswort am Rand des Bereichs
bildet und einerseits ein symmetrisches Codewort in den
Strom 30 aus symmetrischen Codewörtern schreibt und andererseits
die Differenz in den Escape-Bereich schreibt. Es ist
alternativ auch möglich, daß das gesamte Informationswort in
den Escape-Bereich geschrieben wird, und im Strom aus symmetrischen
Codewörtern lediglich ein Platzhalter, eine bestimmte
Bitkombination oder ähnliches entweder durch die
Einrichtung 14 oder auch durch den Bitstromformatierer 16
eingefügt wird, um einem nachgeschalteten Decodierer zu
signalisieren, daß er an dieser Stelle im Bitstrom in den
Escape-Bereich gehen muß. Das dargestellte Verfahren hat
jedoch den Vorteil, daß zumindest der Teil des Informationsworts,
der in dem Bereich liegt, der durch symmetrische
Codewörter abgedeckt wird, mittels eines symmetrischen Codeworts
codiert wird, wodurch nur die Differenz, die beispielsweise
mittels eines Huffman-Codes codiert ist, weniger
stark gesichert oder fehlerrobust ist. Das Alternativverfahren
hätte dagegen den Vorteil, daß keine Addition bzw.
Differenzbildung durchgeführt werden muß, und daß für ein
Informationswort außerhalb des Bereichs der weniger redundante
Code verwendet wird. Nachteilig ist jedoch, daß dann
das außerhalb des Bereichs liegende Informationswort nicht
rückwärts decodiert werden kann. Es können jedoch entweder
im Stand der Technik bekannte Verfahren oder das erfindungsgemäße
Codierverfahren zum Schutz des Escape-Bereichs eingesetzt
werden, um auch hier sichere Verhältnisse zu schaffen.In deviation from the described embodiment, it is
not necessarily that the
Fig. 2 zeigt ein bevorzugtes Ausführungsbeispiel eines Decodierers
gemäß der vorliegenden Erfindung. Eine Sequenz aus
Codewörtern bzw. ein Strom aus "potentiell symmetrischen
Codewörtern" 30 wird in einen Speicher 20 eingespeist, auf
den ein Analysierer 21 zugreifen kann, um eine in dem Speicher
20 gespeicherte Sequenz zu analysieren. Der Analysierer
21 umfaßt zum einen eine Einrichtung zum Erfassen eines
symmetrischen Codeworts aus der Sequenz 30 von Codewörtern
und andererseits eine Einrichtung zum Erfassen eines vorbestimmten
Codes in der Sequenz 30 von Codewörtern. Erfaßt
der Analysierer 21 ein intaktes symmetrisches Codewort, so
übermittelt er dieses zu einer Einrichtung 22 zum Zuweisen
eines bestimmten Informationsworts zu dem Codewort basierend
auf einer vorbekannten Codetabelle, die der im Codierer
(Fig. 1) verwendeten Codetabelle entsprechen muß. Erfaßt der
Analysierer 21 jedoch einen vorbestimmten Code, der im vorliegenden
Beispiel das Codewort für einen Rand des Bereichs
ist, so gibt er dieses Codewort zu einer Einrichtung 23 zum
Ermitteln eines zusätzlichen Informationsworts außerhalb des
Bereichs. Die Einrichtung 23 wird bei dem bevorzugten Ausführungsbeispiel
beim Auftreten eines Codeworts 31 im Strom
30 auf den Escape-Bereich zugreifen und dort den entsprechenden
Escape-Wert abrufen und zu dem Informationswort, das
dem Codewort 31 entspricht, hinzuaddieren bzw. subtrahieren.Fig. 2 shows a preferred embodiment of a decoder
according to the present invention. A sequence
Codewords or a stream of "potentially symmetrical
Code words "30 are fed into a
Die Zuweisung eines vorbestimmten Codes, im Ausführungsbeispiel
des Codeworts für ein Informationswort am Rand, zu einem
Codewort im Escapebereich kann auf verschiedene Arten
und Weisen geschehen. Am einfachsten ist die Verwendung eines
fortlaufenden Zeigers, wobei sowohl der Escape-Bereich
als auch der Strom 30 synchronisiert sind. Diese Synchronisation
wird bei dem bevorzugten Ausführungsbeispiel der vorliegenden
Erfindung, bei dem Skalenfaktoren Entropie-codiert
werden, dadurch gegeben, daß immer ein Block oder Frame eines
Audiosignals verarbeitet wird. Für jeden Block wird der
Escape-Bereich und der Strom 30 aus symmetrischen Codewörtern
initialisiert, damit die Verwendung eines fortlaufenden
Zeigers korrekte Ergebnisse liefert.The assignment of a predetermined code, in the exemplary embodiment
the code word for an information word on the edge, to a
Code word in the escape area can be in different ways
and wise things happen. The easiest is to use one
consecutive pointer, being both the escape area
as well as the
Der erfindungsgemäße Codierer umfaßt ferner eine Einrichtung
24 zur Umkehrung der Reihenfolge des Decodierers, die durch
den Analysierer 21 aktiviert wird. Findet der Analysierer 21
in dem Strom 30 ein unsymmetrisches Codewort, so wird er die
Einrichtung 24 zur Umkehrung der Reihenfolge aktivieren, da
ein unsymmetrisches Codewort in dem Strom 30 aus potentiell
symmetrischen Codewörtern nicht auftreten kann. Die Einrichtung
22 zum Zuweisen und die Einrichtung 23 zum Ermitteln
arbeiten dann in der umgekehrten Reihenfolge vom anderen Ende
der Sequenz aus Codewörtern, um mit einer Decodierung von
hinten den Fehler einzugrenzen, derart, daß nur möglichst
wenig Werte durch eine Fehlerverschleierung ersetzt werden
müssen.The encoder according to the invention further comprises a
In der Realität kann es vorkommen, daß ein Entropie-Decodierer ein gestörtes Codewort nicht sofort erkennt, da die Störung nicht zu einem ungültigen Codewort geführt hat. Er decodiert also über den Fehler hinaus, bis er durch einen Folgefehler auf ein ungültiges Codewort stößt und die Codierung dann abbricht. Der Rückwärtsdecodierer decodiert dann vom anderen Ende aus unter Umständen ebenfalls über das gestörte Codewort hinweg und bricht irgendwann bei einem ungültigen Codewort ab. Damit ist ein Überlappungsbereich entstanden, in dem sowohl der Entropie-Vorwärts- als auch der Entropie-Rückwärtsdecodierer Ausgangswerte geliefert haben. Damit ist der Fehler auf den Überlappungsbereich eingegrenzt, und es kann festgestellt werden, daß die decodierten Werte außerhalb des Überlappungsbereichs korrekt sind.In reality it can happen that an entropy decoder a disturbed code word does not immediately recognize because of the disturbance did not result in an invalid code word. He decodes So beyond the error until it is caused by a subsequent error encounters an invalid code word and the coding then breaks off. The backward decoder then decodes from other end also possibly over the disturbed Code word and breaks at some point in the case of an invalid one Code word. This created an overlap area in which both the entropy forward and the entropy backward decoders Have delivered initial values. So that is the error is narrowed to the overlap area, and it it can be determined that the decoded values are outside of the overlap area are correct.
Wenn im Codierer eine Differenzcodierung durchgeführt worden
ist, so umfaßt der entsprechende Decodierer ferner einen
Differenz-Decodierer 25, der die im Codierer erzeugte Differenzcodierung
wieder rückgängig macht. Der Differenz-Decodierer
25 wird erfindungsgemäß durch die Einrichtung zur Umkehrung
der Reihenfolge 24 ebenfalls aktiviert, um eine
Rückwärts-Differenzdecodierung durchzuführen, um aus Differenz-codierten
Informationswörtern, die der Einrichtung 25
von den Einrichtungen 22 und 23 übermittelt werden, auch in
Rückwärtsrichtung wieder vollständig decodierte Informationswörter
herzustellen. Es sei darauf hingewiesen, daß der
Rückwärts-Differenzdecodierer und der Vorwärts-Differenzdecodierer
getrennte Einrichtungen sein können, oder daß dieselben
durch eine einzige Einrichtung implementiert sind,
wobei bei der Vorwärts-Differenzdecodierung eine Addition
ausgeführt wird, während bei der Rückwärts-Differenzdecodierung
eine Subtraktion ausgeführt wird.If differential coding has been carried out in the encoder
is, the corresponding decoder further comprises one
Die Kombination einer Differenz-Codierung mit dem Codierverfahren gemäß der vorliegenden Erfindung ist besonders vorteilhaft, da erst durch eine Differenz-Codierung bei geeignet gewähltem Ausgangswert der Differenzbildung die absoluten Informationswörter, z. B. um einen zu Null symmetrischen Bereich, "verschoben" werden.The combination of differential coding with the coding method According to the present invention, it is particularly advantageous only suitable by a differential coding at selected starting value of the difference formation the absolute Information words, e.g. B. by a symmetrical to zero Area to be "moved".
Damit jedoch eine Differenz-Decodierung 25 in Rückwärtsrichtung
vom anderen Ende einer Informationswörtersequenz aus
möglich ist, muß am Ende der Sequenz von Informationswörtern
im Codierer ein zusätzlicher Wert hinzugefügt werden, derart,
daß der Differenz-Decodierer weiß, von wo aus eine Differenz-Decodierung
von hinten gestartet werden soll. Wenn
bei der Differenz-Codierung ein festgelegter Startwert eingesetzt
worden ist, so bietet sich als zusätzlicher Wert ein
zusätzlicher Differenzwert am Ende der Folge von Differenzcodierten
Informationswörtern an, der die Differenz von dem
letzten Informationswort zum festgelegten oder vorbestimmten
Startwert angibt. Die Differenz wird selbstverständlich
ebenfalls Entropie-codiert und wird vorzugsweise mittels
eines symmetrischen Informationsworts Entropie-codiert, derart,
daß dieser Wert gut geschützt ist, um eine RückwärtsDecodierung
zu erlauben. Wenn als Startwert für die Differenz-Codierung
im Codierer das erste Informationswort einer
Sequenz von Informationswörtern genommen wird, so bietet es
sich an, als zusätzlichen Wert am Ende der Sequenz den Absolutwert
des letzten Informationsworts hinzuzufügen. Dieser
letzte Wert wird dann ziemlich sicher nicht in dem Bereich
von Informationswörtern liegen, die mit symmetrischen Codewörtern
codiert werden.However, this means a
Wie es bereits erwähnt wurde, besteht eine bevorzugte Anwendung der vorliegenden Erfindung bei der Codierung von Skalenfaktoren, die bisher zuerst differentiell und dann Huffman-codiert wurden. Im Stand der Technik wird eine Huffman-Tabelle mit 121 Codewörtern verwendet, um Werte im Bereich von -60 bis +60 codieren zu können. Da die Anzahl der zu codierenden Skalenfaktoren im Vergleich zur Anzahl der Spektralwerte sehr klein ist, ein typischer Wert liegt bei 40, ist eine relativ "schnelle" Detektion von Fehlern unbedingt notwendig, derart, daß der Decodierer nach dem Decodieren weniger Werte abbricht, damit ein Fehler relativ gut eingegrenzt werden kann. Deshalb wird eine "kleine" Codetabelle verwendet, was bedeutet, daß die Anzahl der symmetrischen RVLC-Codewörter klein sein soll.As previously mentioned, there is a preferred application of the present invention in the encoding of Scale factors that were previously differential first and then Huffman encoded. In the prior art, one Huffman table with 121 code words used to find values in Range from -60 to +60. Because the number the scale factors to be coded compared to the number the spectral values are very small, a typical value lies at 40, is a relatively "fast" detection of errors absolutely necessary, such that the decoder after the Decoding fewer values aborts so an error is relative can be narrowed down well. Therefore a "small" Code table used, which means that the number of symmetric RVLC code words should be small.
Je kleiner die Codetabelle bzw. das Codebuch ist, desto wahrscheinlicher ist eine frühzeitigere Erkennung von Fehlern. Daher läuft der Bereich für Informationswörter, die symmetrisch codiert werden, von -7 bis +7. Für Werte, die im Bereich von 7 bis 60 liegen, wird der Escape-Wert übertragen. Vorzugsweise wird derselbe Huffman-codiert. Die "Escape"-Tabelle besteht somit aus 54 Einträgen für Werte zwischen 0 und 53. Jedesmal, wenn der Empfänger somit eine -7 oder eine +7 decodiert, muß er den dazugehörigen Escape-Wert decodieren und addieren bzw. subtrahieren.The smaller the code table or code book, the more earlier detection of errors is more likely. Therefore, the area for information words runs be encoded symmetrically, from -7 to +7. For values that Range from 7 to 60, the escape value is transferred. Preferably the same Huffman is encoded. The "Escape" table consists of 54 entries for values between 0 and 53. Every time the recipient receives a -7 or decodes a +7, it must have the associated escape value decode and add or subtract.
Statistisch gesehen deckt das Intervall -7 bis +7 98% der auftretenden Skalenfaktorwerte ab, derart, daß Escape-Werte nicht besonders häufig vorkommen. Sollten häufigere Escape-Werte auftreten, oder wird der Fehlersicherheit ein noch größeres Augenmerk zuteil, so können verschiedene bekannte Verfahren und auch das erfindungsgemäße Verfahren eingesetzt werden, um auch die Escape-Werte fehlerrobuster zu machen.Statistically speaking, the interval -7 to +7 covers 98% of the occurring scale factor values, such that escape values not particularly common. Should be more common escape values occur, or will fail safety one more time More attention is given to various known ones Process and also the inventive method used to make the escape values more error-proof.
Zur Erläuterung des erfindungsgemäßen umkehrbaren Codes mit
variabler Länge sei zunächst auf Fig. 4A eingegangen, in der
ein bekannter symmetrischer Code gezeigt ist, der beispielsweise
in der eingangs erwähnten Fachveröffentlichung von
Göran Bang und Göran Roth offenbart ist. Dieser Code ist
durch einen Codebaum definiert, der eine Wurzel 40 und einen
Verzweigungspunkt 42 aufweist. An der Wurzel sind, da es
sich um einen binären Code handelt, zwei Zweige 43, 44 angebracht,
wobei der Zweig 43 die Wurzel 40 mit einem Endpunkt
verbindet, der das gültige Codewort "1" definiert. Der Zweig
44 verbindet die Wurzel 40 mit dem Verzweigungspunkt 42, von
dem zwei Zweige 45, 46 wegführen. Der Zweig 46 ist mit einem
Endpunkt verbunden, der das zweite gültige Codewort dieses
Codes "00" definiert, während der Zweig 45 ein ungültiges
Codewort dieses Codes, d. h. "01", definiert. Das Codewort
"01" ist deswegen ungültig, da es unsymmetrisch ist. Bezüglich
der weiteren Notation sei darauf hingewiesen, daß in
den Fig. 4A und 4C und in Fig. 5 ungültige Codewörter eingerahmt
sind. Der in Fig. 4A gezeigte Code umfaßt somit
lediglich zwei gültige Codewörter, d. h. "1" und "00", und
nur ein einziges ungültiges Codewort, d. h. "01", das genauso
lang wie das zweite gültige Codewort "00" ist.To explain the reversible code according to the invention with
variable length is first discussed in Fig. 4A, in the
a known symmetric code is shown, for example
in the aforementioned specialist publication by
Göran Bang and Göran Roth is revealed. This code is
defined by a code tree that has a
Ein etwas längerer Code ist in Fig. 4B gezeigt. Im Gegensatz
zu Fig. 4A enthält der Code in Fig. 4B ein weiteres gültiges
Codewort "010" und ebenfalls ein ungültiges Codewort, das
nun ebenfalls wie das zusätzliche gültige Codewort 3 Bit
lang ist und den Wert "011" hat. Im Unterschied zu Fig. 4A
ist der Zweig 45 nicht mit einem Endpunkt verbunden, sondern
mit einem weiteren Verzweigungspunkt 47, von dem zwei Zweige
ausgehen, wobei der erste ausgehende Zweig zum zusätzlichen
gültigen Codewort "010" reicht, während der andere Zweig zum
einzigen ungültigen Codewort "011" reicht.A slightly longer code is shown in Fig. 4B. In contrast
4A, the code in FIG. 4B contains another valid one
Code word "010" and also an invalid code word, the
now also like the additional
Fig. 4C ist die logische Fortsetzung der Fig. 4A und 4B, da
der Verzweigungspunkt 47 nun mit einem weiteren Verzweigungspunkt
48 verbunden ist, von dem wiederum zwei Zweige
ausgehen, wobei ein Zweig ein zusätzliches symmetrisches
Codewort "0110" definiert, während der Endpunkt des anderen
Zweiges das einzige ungültige Codewort "0111" definiert, das
die gleiche Länge (4 Bit) hat, wie das längste Codewort des
Codebaums, d. h. der Codetabelle.4C is the logical continuation of FIGS. 4A and 4B since
the
Aus Fig. 4C ist ferner zu sehen, daß keine gültigen Codewörter gleicher Länge existieren. Dies trifft ebenfalls auf die Codes in den Fig. 4A und 4B zu. From Figure 4C it can also be seen that there are no valid code words of equal length exist. This also applies the codes in Figs. 4A and 4B.
Die in den Fig. 4A bis 4C gezeigten Codes werden in der Fachveröffentlichung von Göran Bang und Göran Roth lediglich als Sicherheitsraster und nicht als Code zum Codieren von Informationen verwendet, da ein solcher Code, wie es ohne weiteres durch logische Fortsetzungen der in den Fig. gezeigten Codes ersichtlich ist, bei genügend hoher Anzahl von Codewörtern sehr lang wird. Außerdem ist die Fehlerrobustheit entsprechend längerer Codes sehr gering, da immer nur ein einziges ungültiges Codewort existiert und zudem dieses ungültige Codewort genauso lang wie das längste gültige Codewort ist. Ein Codieren von Informationen mit den bekannten Codes bietet sich daher nicht an, da die Codewörter sehr lang werden, wenn ein angemessener Bereich von Informationswerten codiert werden soll, und da immer nur ein ungültiges Codewort existiert, das darüberhinaus sehr lang ist. Ein Decodierer wird einen Fehler daher nicht sofort entdecken und eine große Anzahl von Folgefehlern begehen, bevor er auf ein ungültiges Codewort stößt und das Decodieren abbricht. Der Fehler wird also schlecht eingegrenzt.The codes shown in Figs. 4A to 4C are used in the Professional publication by Göran Bang and Göran Roth only as a security grid and not as a code for coding Information used as such code as it is without further by logical continuations of those shown in the figures Codes can be seen with a sufficiently high number of Code words becomes very long. In addition, the robustness of errors correspondingly longer codes very small, because only ever there is only one invalid code word and also this invalid code word as long as the longest valid one Is codeword. A coding of information with the known Codes are therefore not recommended because the code words are very become long when there is a reasonable range of information values should be encoded, and since only an invalid one Codeword exists, which is also very long. A decoder will therefore not immediately discover a mistake and commit a large number of consequential errors before going on one invalid code word occurs and decoding stops. The Errors are therefore poorly localized.
Die in Fig. 5 gezeigte erfindungsgemäße Codetabelle überwindet
diese Nachteile dadurch, daß im Codebaum wenigstens
ein Verzweigungspunkt vorhanden ist, von dem zwei Zweige
ausgehen, die beide mit einem Verzweigungspunkt statt mit
einem Endpunkt verbunden sind. Bei dem in Fig. 5 gezeigten
bevorzugten Ausführungsbeispiel für den umkehrbaren Code mit
variabler Länge sind dies Verzweigungspunkte 50a, 50b, 50c
und 50d. Der Codebaum in Fig. 5 umfaßt ferner eine Wurzel
52, von der zwei Zweige 53 und 54 ausgehen, wobei der Zweig
53 mit einem Endpunkt verbunden ist, durch den das erste und
kürzeste Codewort 0 definiert ist, dem bei dem bevorzugten
Ausführungsbeispiel der Informationswert "0" zugeordnet ist.
Das Codewort 0 hat die kürzeste Länge und ist daher im Sinne
einer Entropie-Codierung dem Informationswert zugeordnet,
der am häufigsten auftritt. Bei dem bevorzugten Ausführungsbeispiel
der vorliegenden Erfindung, bei dem die Informationswerte
differenzcodiert sind, hat sich herausgestellt, daß
insbesondere bei der Differenzcodierung von Skalenfaktoren
der Wert 0 am wahrscheinlichsten auftritt.The code table according to the invention shown in FIG. 5 overcomes
these disadvantages in that at least in the code tree
there is a branch point, of which two branches
go out, both with a branch point instead of
are connected to an end point. In the one shown in Fig. 5
preferred embodiment for the reversible code
Variable length, these are
Der andere Zweig, der von der Wurzel 52 ausgeht, d. h. der
Zweig 54, endet erfindungsgemäß nicht in einem Codewort mit
der Länge 2 Bit sondern führt zu dem Verzweigungspunkt 50a,
der wiederum über zwei Zweige 55, 56 mit weiteren Verbindungspunkten
57, 58 verbunden ist. Die Verbindungspunkte 57
und 58 sind ihrerseits über entsprechende Zweige 59, 60 mit
Endpunkten versehen, die die gültigen Codewörter 101 und 111
definieren. Im Gegensatz zum Stand der Technik ist hier zu
sehen, daß durch Verzicht auf ein Codewort mit einer Länge
von 2 Bit 2 Codewörter erhalten werden können, die gleich
lang sind, d. h. 3 Bit in Fig. 5. Dieses sind die Codewörter
101 und 111. Sie sind bei der in Fig. 5 gezeigten Codetabelle
den Informationswerten "-1" und "1" zugeordnet. Unter dem
Gesichtspunkt der Entropiecodierung ist es günstig, für zwei
Informationswerte, die sehr wahrscheinlich gleich häufig
auftreten, auch gleich lange Codewörter vorzusehen.The other branch, which starts from the
Aus Fig. 5 ist zu sehen, daß von dem Verbindungspunkt 50c
zwei Zweige 62, 63 ausgehen, wobei der Zweig 63 mit einem
Verbindungspunkt 64 verbunden ist, der über Zweige mit einem
gültigen Codewort 110011 und mit einem ungültigen Codewort
110010 verbunden ist. Trifft ein Decodierer nun beispielsweise
auf das ungültige Codewort 110010, so wird er den Codiervorgang
abbrechen, da ein solches Codewort nicht Umkehrbar
ist und nie in einem Codierer erzeugt worden ist.From Fig. 5 it can be seen that from the
Das Zustandekommen und die Zuordnung weiterer Codewörter zu Informationswerten ist aus Fig. 5 ersichtlich. Es sei jedoch auf eine weitere Besonderheit hingewiesen. Eine bevorzugte Anwendung des in Fig. 5 gezeigten erfindungsgemäßen Codes besteht in der Verwendung des umkehrbaren Codes in Verbindung mit Escape-Werten. Wie es bereits dargestellt worden ist, wird ein Informationswert, der außerhalb des Bereichs von "-7" bis "+7" liegt, durch das Codewort für den entsprechenden Informationswert am Rand des Bereichs und die darüber hinausgehende Differenz in einer Escape-Tabelle codiert. Daher besteht eine höhere Wahrscheinlichkeit, daß im codierten Bitstrom der Wert am Rand des Bereichs, d. h. "-7" bzw. "7" codiert werden muß. Ferner ist die Wahrscheinlichkeit gleich groß, daß "-7" oder "+7" auftritt. Gemäß einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung werden die Informationswerte "-7" und "+7" durch Codewörter gleicher Länge, d. h. 1000001 bzw. 1100011, codiert, wobei diese Codewörter zugleich kürzer als die längsten auftretenden Codewörter sind, die in diesem Fall die Codewörter für "-6" und "+6" sind, um eine Codetabelle zu schaffen, die unter Entropiegesichtspunkten möglichst gut ist.The formation and assignment of further code words Information values can be seen from FIG. 5. However, it is pointed out another peculiarity. A preferred one Use of the code according to the invention shown in FIG. 5 consists in using the reversible code with escape values. As it has already been shown is an information value that is out of range from "-7" to "+7", by the code word for the corresponding one Information value at the edge of the area and the further difference in an escape table coded. Therefore, there is a higher possibility that in the encoded bitstream the value at the edge of the range, i.e. H. "-7" or "7" must be coded. Furthermore, the probability same size that "-7" or "+7" occurs. According to a preferred embodiment of the present invention the information values "-7" and "+7" Code words of equal length, i. H. 1000001 or 1100011, coded, these code words being shorter than the longest occurring code words, which in this case are the Code words for "-6" and "+6" are used to create a code table create the best possible from an entropy point of view is.
Aus Fig. 5 ist ferner zu sehen, daß acht ungültige Codewörter
66a - 66h existieren, während ein umkehrbarer Code gemäß
dem Stand der Technik lediglich immer nur ein einziges ungüttiges Codewort
hat bzw. haben kann. Eine große Anzahl von ungültigen
Codewörtern und besonders relativ kurze ungültige Codewörter,
wie z.B. die Codewörter 66e, 66f liefern eine hohe Fehlerrobustheit,
derart, daß ein Decodierer möglichst schnell
nach einem gestörten Informationswert die Decodierung abbricht,
derart, daß ein Fehler möglichst eng eingegrenzt
werden kann.From Fig. 5 it can also be seen that eight
Schließlich sei zusammengefaßt, daß der in Fig. 5 dargestellte umkehrbare Code mit variabler Länge besonders gut für eine fehlerrobuste Entropie-Codierung von Informationswerten geeignet ist, da zum einen relativ viele relativ kurze ungültige Codewörter existieren, und da zum anderen für den Preis eines kürzeren Codewortes (im Beispiel das Codewort "11") zwei Codewörter (im Beispiel 101 und 111) erhalten werden, die zwar länger aber gleich wahrscheinlich sind. Obwohl der Verzicht eines gültigen kurzen Codeworts im Sinne der Entropie-Codierung eigentlich zu vermeiden ist, liefert derselbe erfindungsgemäß bei Anwendungen, bei denen eine fehlerrobuste Entropie-Codierung durchgeführt werden soll, und bei denen zusätzlich zwei Informationswerte mit relativ hoher Wahrscheinlichkeit und besonders mit annähernd gleicher Wahrscheinlichkeit vorhanden auftreten, eine gute Lösung. Bezüglich der Codetabellendarstellung in Baumform ist dieser Verzicht dadurch bewerkstelligt, daß besondere Verzweigungspunkte existieren, von denen zwei Zweige ausgehen, die jedoch beide statt mit einem Endpunkt mit weiteren Verzweigungspunkten verbunden sind.Finally, it should be summarized that the one shown in FIG. 5 reversible variable length code particularly good for a robust robust entropy coding of information values is suitable because, on the one hand, a relatively large number short invalid code words exist, and there is another for the price of a shorter code word (in the example, that Code word "11") two code words (in the example 101 and 111) can be obtained, which is longer but equally likely are. Although the waiver of a valid short code word in Entropy coding is actually to be avoided provides the same according to the invention in applications in which error-resistant entropy coding can be performed should, and for which two additional information values with relatively high probability and especially with approximately equal likelihood of occurring, a good one Solution. Regarding the code table representation in tree form this waiver is accomplished by the fact that special Branch points exist from which two branches start, but both with one endpoint instead of another Branch points are connected.
Claims (20)
- A device for entropy encoding of information words, comprising:means (12) for assigning a reversible code word from a group of reversible code words to an information word which is located within a region of information words, the group of reversible code words being designed such that, for each information word within the region, there is provided one specific reversible code word each;means (14) for producing a predetermined additional code word (31, 32) for an information word which is located outside the region of information words, for producing an additional value (33, 34) for the information word located outside the region of information words, and for assigning a non-reversible variable length code word from a group of non-reversible variable code words to said additional value (33, 34), with an escape region being produced that is separated from the data stream of reversible code words and consists of non-reversible variable length code words, there being always assigned one code word of the escape region to one of the predetermined code words (31, 32) of the data stream of reversible code words each (A, B); anddata stream formatting means (16) connected to the means (12) for assigning and to the means (14) for producing and being arranged to produce a data stream of reversible code words comprising only reversible code words for information words within said region and comprising predetermined reversible code words for information words outside said region.
- A device according to claim 1, wherein the reversible code words are symmetrical code words.
- A device according to claim 1 or 2,
wherein the means (14) for producing is arranged such that it produces an additional value also for an information word located on a boundary of said region of information words and such that it produces the predetermined code word for the information word located on the boundary of said region of information words. - A device according to any of the preceding claims, which is designed such that information words occurring with a probability of occurrence that is above a predetermined limit probability, are located in said region.
- A device according to any of the preceding claims, wherein the means (12) for assigning is arranged such that the size of the region is selected so that the length of the longest code word of the group of reversible code words is smaller than or equal to a predetermined length defined by error recognition aspects.
- A device according to any of the preceding claims, wherein the means (14) for producing is arranged so as to form as additional value the difference between the information word and the information word on a closest boundary of said region.
- A device according to any of the preceding claims,
wherein the information words each correspond to numerical values from a first to a second boundary and numerical values outside the boundaries, said first and second boundaries defining said region of information words,
wherein the means (12) for assigning is arranged to assign to an information word located on a boundary or outside said region, the predetermined reversible code word, the predetermined reversible code word corresponding to the reversible code word provided according to the code table for the information word corresponding to the boundary of the region which, on the basis of its numerical value, is closest to the numerical value of the information word; and
wherein the means (14) for producing produces the difference between the information word to be coded and the information word on the boundary of the region as an additional value, the sign of the difference being determined by the sign of the information word on the boundary of the region, such that the information word to be coded is represented by the predetermined reversible code word for the information word on the boundary of the region and by a sign-free difference as additional value (33, 34). - A device according to any of the preceding claims, further comprising:means for differential encoding of information which, on the basis of a starting value, produces differential-encoded information words, with successive differential-encoded information words representing a differential value sequence.
- A device according to claim 8, wherein the means for differential encoding further comprises:means for adding an additional element to the end of the differential value sequence, the additional element being defined such that backward decoding of the differential value sequence can be carried out.
- A device for decoding of information words that are entropy-encoded using reversible code words, said information words being present in the form of a data stream and an escape region, the data stream comprising only reversible code words for information words with a region of information words and the escape region comprising non-reversible code words for additional values representing information words outside the region of information words, there being always assigned one code word of the escape region to one predetermined code word (31, 32) of the data stream each (A, B), said device comprising:means (21) for detecting a reversible code word (30a, 30b, 30c) from the data stream;means (22) for assigning a specific information word to the code word detected from the data stream, on the basis of a code table;means (21) for detecting a predetermined reversible code word (31, 32) in the data stream;means (23) for ascertaining a non-reversible variable length code word in the escape region, which is assigned to the predetermined reversible code word detected from the data stream, for assigning an additional value to the non-reversible variable length code word on the basis of an escape table for the non-reversible variable length code words, and for ascertaining an information word outside of the region of information words on the basis of the additional value.
- A device according to claim 10, wherein the non-reversible variable length code words are Huffman code words.
- A device according to any of claims 10 or 11, wherein the means (21) for detecting a reversible code word is arranged such that a non-reversible code word in the first data stream (30) can be ascertained.
- A device according to claim 12, further comprising:means (24) for reversing a sequence in which said means (21) for detecting processes the code word sequence (30), said means (24) for reversing being responsive to a non-reversible code word being ascertained.
- A device according to any of claims 10 to 13, wherein the information words are differential-encoded and which further comprises:means (25) for differential-decoding the differential-encoded information words.
- A device according to claim 13 or 14, wherein the sequence of information words, starting from a starting value, is differential-encoded, the sequence furthermore having at the other end thereof an additional value which is selected such that backward differential decoding from the other end can be carried out, said means (25) for differential decoding being arranged to carry out differential decoding from the other end responsive to said means for reversing the sequence.
- A device according to any of claims 10 to 15, wherein the predetermined reversible code word (31, 32) is the code word assigned according to the code table to an information word on a boundary of the region of information words.
- A device according to claim 16, wherein the means (23) for ascertaining is arranged to form the sum of the information word on a boundary of the region and of the additional value, so as to obtain an information word located outside said region.
- A device according to any of the preceding claims, wherein the information words are scale factors of a transformation-encoded audio signal.
- A method for entropy encoding of information words, comprising:assigning (12) a reversible code word from a group of reversible code words to an information word which is located within a region of information words, the group of reversible code words being designed such that, for each information word within the region, there is provided one specific reversible code word each;producing (14) a predetermined reversible code word (31, 32) for an information word located outside said region of information words,producing (14) an additional value (33, 34) for the information word which is located outside said region of information words;producing a data stream of reversible code words comprising only reversible code words for information words within said region and comprising predetermined reversible code words for information words outside said region; andcoding the additional value (33, 34) by assigning a non-reversible variable length code word from a group of non-reversible variable length code words to the additional value (33, 34), with an escape region being produced which is separated from the data stream of reversible code words and consists of non-reversible variable length code words, there being always assigned one code word of the escape region to one of the predetermined code words (31, 32) of the data stream each (A, B).
- A method for decoding of information words that are entropy-encoded using reversible code words, said information words being present in the form of a data stream and an escape region, the data stream comprising only reversible code words for information words within a region of information words and the escape region comprising non-reversible code words for additional values representing information words outside the region of information words, there being always assigned one code word of the escape region to one predetermined code word (31, 329 of the data stream each (A, B), said method comprising the following steps:detecting (21) a reversible code word (30a, 30b, 30c) from the data stream;assigning (22) a specific information word to the code word detected from the data stream, on the basis of a code table;detecting (21) a predetermined reversible code word (31, 32) in the data stream;ascertaining a non-reversible variable length code word in the escape region, which is assigned to the predetermined reversible code word detected from the data stream;assigning an additional value to the non-reversible variable length code word on the basis of an escape table for the non-reversible variable length code words; andascertaining (23) an information word outside of the region of information words on the basis of the additional value.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE19840835A DE19840835C2 (en) | 1998-09-07 | 1998-09-07 | Apparatus and method for entropy coding information words and apparatus and method for decoding entropy coded information words |
DE19840835 | 1998-09-07 | ||
PCT/EP1999/005859 WO2000014886A1 (en) | 1998-09-07 | 1999-08-12 | Device and method for entropy encoding of information words and device and method for decoding entropy-encoded information words |
Publications (2)
Publication Number | Publication Date |
---|---|
EP1112621A1 EP1112621A1 (en) | 2001-07-04 |
EP1112621B1 true EP1112621B1 (en) | 2002-03-06 |
Family
ID=7880121
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP99944368A Expired - Lifetime EP1112621B1 (en) | 1998-09-07 | 1999-08-12 | Device and method for entropy encoding of information words and device and method for decoding entropy-encoded information words |
Country Status (11)
Country | Link |
---|---|
US (1) | US6441755B1 (en) |
EP (1) | EP1112621B1 (en) |
JP (1) | JP3417479B2 (en) |
KR (1) | KR100397806B1 (en) |
CN (1) | CN1185795C (en) |
AT (1) | ATE214211T1 (en) |
AU (1) | AU747694B2 (en) |
CA (1) | CA2341864C (en) |
DE (2) | DE19840835C2 (en) |
HK (1) | HK1040327B (en) |
WO (1) | WO2000014886A1 (en) |
Families Citing this family (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7133455B2 (en) * | 2000-12-29 | 2006-11-07 | Intel Corporation | Providing error resilience and concealment for video data |
US7240001B2 (en) | 2001-12-14 | 2007-07-03 | Microsoft Corporation | Quality improvement techniques in an audio encoder |
US6934677B2 (en) | 2001-12-14 | 2005-08-23 | Microsoft Corporation | Quantization matrices based on critical band pattern information for digital audio wherein quantization bands differ from critical bands |
JP3778087B2 (en) * | 2002-01-18 | 2006-05-24 | 富士ゼロックス株式会社 | Data encoding apparatus and data decoding apparatus |
DE10219133B4 (en) * | 2002-04-29 | 2007-02-22 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Apparatus and method for obscuring an error |
US7428684B2 (en) * | 2002-04-29 | 2008-09-23 | Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. | Device and method for concealing an error |
JP4728568B2 (en) * | 2002-09-04 | 2011-07-20 | マイクロソフト コーポレーション | Entropy coding to adapt coding between level mode and run length / level mode |
US7502743B2 (en) | 2002-09-04 | 2009-03-10 | Microsoft Corporation | Multi-channel audio encoding and decoding with multi-channel transform selection |
ES2334934T3 (en) | 2002-09-04 | 2010-03-17 | Microsoft Corporation | ENTROPY CODIFICATION BY ADAPTATION OF CODIFICATION BETWEEN LEVEL MODES AND SUCCESSION AND LEVEL LENGTH. |
US7433824B2 (en) * | 2002-09-04 | 2008-10-07 | Microsoft Corporation | Entropy coding by adapting coding between level and run-length/level modes |
JP4676140B2 (en) * | 2002-09-04 | 2011-04-27 | マイクロソフト コーポレーション | Audio quantization and inverse quantization |
WO2004112400A1 (en) * | 2003-06-16 | 2004-12-23 | Matsushita Electric Industrial Co., Ltd. | Coding apparatus, coding method, and codebook |
US7724827B2 (en) | 2003-09-07 | 2010-05-25 | Microsoft Corporation | Multi-layer run level encoding and decoding |
US7460990B2 (en) | 2004-01-23 | 2008-12-02 | Microsoft Corporation | Efficient coding of digital media spectral data using wide-sense perceptual similarity |
US7161507B2 (en) * | 2004-08-20 | 2007-01-09 | 1St Works Corporation | Fast, practically optimal entropy coding |
WO2007002468A2 (en) * | 2005-06-23 | 2007-01-04 | 1Stworks Corporation | Modeling for enumerative encoding |
JP4554451B2 (en) * | 2005-06-29 | 2010-09-29 | 京セラ株式会社 | COMMUNICATION DEVICE, COMMUNICATION SYSTEM, MODULATION METHOD, AND PROGRAM |
US7599840B2 (en) * | 2005-07-15 | 2009-10-06 | Microsoft Corporation | Selectively using multiple entropy models in adaptive coding and decoding |
KR100803205B1 (en) * | 2005-07-15 | 2008-02-14 | 삼성전자주식회사 | Method and apparatus for encoding/decoding audio signal |
US7684981B2 (en) | 2005-07-15 | 2010-03-23 | Microsoft Corporation | Prediction of spectral coefficients in waveform coding and decoding |
US7693709B2 (en) * | 2005-07-15 | 2010-04-06 | Microsoft Corporation | Reordering coefficients for waveform coding or decoding |
US7933337B2 (en) * | 2005-08-12 | 2011-04-26 | Microsoft Corporation | Prediction of transform coefficients for image compression |
US7565018B2 (en) * | 2005-08-12 | 2009-07-21 | Microsoft Corporation | Adaptive coding and decoding of wide-range coefficients |
US8599925B2 (en) * | 2005-08-12 | 2013-12-03 | Microsoft Corporation | Efficient coding and decoding of transform blocks |
US7831434B2 (en) | 2006-01-20 | 2010-11-09 | Microsoft Corporation | Complex-transform channel coding with extended-band frequency coding |
US8184710B2 (en) | 2007-02-21 | 2012-05-22 | Microsoft Corporation | Adaptive truncation of transform coefficient data in a transform-based digital media codec |
US7774205B2 (en) * | 2007-06-15 | 2010-08-10 | Microsoft Corporation | Coding of sparse digital media spectral data |
US7885819B2 (en) | 2007-06-29 | 2011-02-08 | Microsoft Corporation | Bitstream syntax for multi-process audio decoding |
KR101391601B1 (en) * | 2007-10-15 | 2014-05-07 | 삼성전자주식회사 | Method and apparatus for image encoding by exponential-Golomb code using optimal thresholds, and method and apparatus for image decoding by exponential-Golomb code using optimal threshold |
US8179974B2 (en) | 2008-05-02 | 2012-05-15 | Microsoft Corporation | Multi-level representation of reordered transform coefficients |
US8406307B2 (en) | 2008-08-22 | 2013-03-26 | Microsoft Corporation | Entropy coding/decoding of hierarchically organized data |
EP2182513B1 (en) * | 2008-11-04 | 2013-03-20 | Lg Electronics Inc. | An apparatus for processing an audio signal and method thereof |
BR112012009446B1 (en) | 2009-10-20 | 2023-03-21 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V | DATA STORAGE METHOD AND DEVICE |
PT2524371T (en) | 2010-01-12 | 2017-03-15 | Fraunhofer Ges Forschung | Audio encoder, audio decoder, method for encoding an audio information, method for decoding an audio information and computer program using a hash table describing both significant state values and interval boundaries |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3918027A (en) * | 1974-06-24 | 1975-11-04 | Honeywell Inf Systems | Scanning and error checking apparatus for address development utilizing symmetric difference encoded data structure |
JP2697479B2 (en) * | 1992-04-17 | 1998-01-14 | 国際電信電話株式会社 | Reversible variable length coding |
TW241361B (en) * | 1993-05-07 | 1995-02-21 | Philips Electronics Nv | |
US5581653A (en) * | 1993-08-31 | 1996-12-03 | Dolby Laboratories Licensing Corporation | Low bit-rate high-resolution spectral envelope coding for audio encoder and decoder |
EP1802133A3 (en) * | 1995-03-15 | 2008-11-12 | Kabushiki Kaisha Toshiba | Moving picture coding and/or decoding systems |
TW362305B (en) * | 1996-10-18 | 1999-06-21 | Koninkl Philips Electronics Nv | Apparatus and method for converting a sequence of m-bit information words into a modulated signal |
-
1998
- 1998-09-07 DE DE19840835A patent/DE19840835C2/en not_active Expired - Lifetime
-
1999
- 1999-08-12 WO PCT/EP1999/005859 patent/WO2000014886A1/en active IP Right Grant
- 1999-08-12 CN CNB998117749A patent/CN1185795C/en not_active Expired - Lifetime
- 1999-08-12 KR KR10-2001-7002938A patent/KR100397806B1/en not_active IP Right Cessation
- 1999-08-12 JP JP2000569517A patent/JP3417479B2/en not_active Expired - Lifetime
- 1999-08-12 CA CA002341864A patent/CA2341864C/en not_active Expired - Lifetime
- 1999-08-12 AT AT99944368T patent/ATE214211T1/en active
- 1999-08-12 AU AU57329/99A patent/AU747694B2/en not_active Expired
- 1999-08-12 EP EP99944368A patent/EP1112621B1/en not_active Expired - Lifetime
- 1999-08-12 US US09/786,614 patent/US6441755B1/en not_active Expired - Lifetime
- 1999-08-12 DE DE59900962T patent/DE59900962D1/en not_active Expired - Lifetime
-
2002
- 2002-03-15 HK HK02102020.8A patent/HK1040327B/en not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
DE59900962D1 (en) | 2002-04-11 |
AU747694B2 (en) | 2002-05-16 |
ATE214211T1 (en) | 2002-03-15 |
HK1040327B (en) | 2005-08-19 |
WO2000014886A1 (en) | 2000-03-16 |
HK1040327A1 (en) | 2002-05-31 |
AU5732999A (en) | 2000-03-27 |
DE19840835C2 (en) | 2003-01-09 |
JP2002524960A (en) | 2002-08-06 |
KR100397806B1 (en) | 2003-09-17 |
CN1185795C (en) | 2005-01-19 |
DE19840835A1 (en) | 2000-03-16 |
JP3417479B2 (en) | 2003-06-16 |
CA2341864A1 (en) | 2000-03-16 |
US6441755B1 (en) | 2002-08-27 |
EP1112621A1 (en) | 2001-07-04 |
KR20010073132A (en) | 2001-07-31 |
CA2341864C (en) | 2004-08-03 |
CN1322405A (en) | 2001-11-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1112621B1 (en) | Device and method for entropy encoding of information words and device and method for decoding entropy-encoded information words | |
EP0954909B1 (en) | Method for coding an audio signal | |
DE3943879B4 (en) | Digital coding method | |
DE69726661T2 (en) | METHOD AND DEVICE FOR CODING A DIGITAL INFORMATION SIGNAL | |
DE69628972T2 (en) | MPEG audio decoder | |
DE19628292B4 (en) | Method for coding and decoding stereo audio spectral values | |
DE602004005197T2 (en) | DEVICE AND METHOD FOR CODING AN AUDIO SIGNAL AND DEVICE AND METHOD FOR DECODING A CODED AUDIO SIGNAL | |
DE60015448T2 (en) | Sub-band audio coding | |
EP0978172A1 (en) | Method for masking defects in a stream of audio data | |
EP1155498B1 (en) | Device and method for generating a data flow and device and method for reading a data flow | |
EP1277346B1 (en) | Device and method for analysing a spectral representation of a decoded time-variable signal | |
EP1153481B1 (en) | Method and device for generating a data flow from variable-length code words and a method and device for reading a data flow from variable-length code words | |
EP0905918A2 (en) | Method and apparatus for encoding audio signals | |
DE19747119C2 (en) | Methods and devices for coding or decoding an audio signal or a bit stream | |
EP1458103B1 (en) | Method and device for coding/decoding an audio signal | |
DE19735675C2 (en) | Method for concealing errors in an audio data stream | |
DE10219133B4 (en) | Apparatus and method for obscuring an error | |
DE69734613T2 (en) | Coded information signal | |
EP1030290A2 (en) | Method for hidden transferring and/or storing of additional information within a signal, particularly an audio signal |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
17P | Request for examination filed |
Effective date: 20010307 |
|
AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LI LU MC NL PT SE |
|
GRAG | Despatch of communication of intention to grant |
Free format text: ORIGINAL CODE: EPIDOS AGRA |
|
GRAG | Despatch of communication of intention to grant |
Free format text: ORIGINAL CODE: EPIDOS AGRA |
|
GRAH | Despatch of communication of intention to grant a patent |
Free format text: ORIGINAL CODE: EPIDOS IGRA |
|
17Q | First examination report despatched |
Effective date: 20010801 |
|
GRAH | Despatch of communication of intention to grant a patent |
Free format text: ORIGINAL CODE: EPIDOS IGRA |
|
REG | Reference to a national code |
Ref country code: GB Ref legal event code: IF02 |
|
GRAA | (expected) grant |
Free format text: ORIGINAL CODE: 0009210 |
|
AK | Designated contracting states |
Kind code of ref document: B1 Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LI LU MC NL PT SE |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: GR Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20020306 |
|
REF | Corresponds to: |
Ref document number: 214211 Country of ref document: AT Date of ref document: 20020315 Kind code of ref document: T |
|
REG | Reference to a national code |
Ref country code: CH Ref legal event code: EP |
|
REF | Corresponds to: |
Ref document number: 59900962 Country of ref document: DE Date of ref document: 20020411 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: PT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20020606 Ref country code: DK Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20020606 |
|
GBT | Gb: translation of ep patent filed (gb section 77(6)(a)/1977) |
Effective date: 20020520 |
|
ET | Fr: translation filed | ||
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: CY Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20020831 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: ES Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20020925 |
|
PLBE | No opposition filed within time limit |
Free format text: ORIGINAL CODE: 0009261 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT |
|
26N | No opposition filed |
Effective date: 20021209 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: MC Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20030301 |
|
REG | Reference to a national code |
Ref country code: CH Ref legal event code: PFA Owner name: FRAUNHOFER-GESELLSCHAFT ZUR FOERDERUNG DER ANGEWA Free format text: FRAUNHOFER-GESELLSCHAFT ZUR FOERDERUNG DER ANGEWANDTEN FORSCHUNG E.V.#LEONRODSTRASSE 54#80636 MUENCHEN (DE) -TRANSFER TO- FRAUNHOFER-GESELLSCHAFT ZUR FOERDERUNG DER ANGEWANDTEN FORSCHUNG E.V.#HANSASTRASSE 27 C#80686 MUENCHEN (DE) |
|
REG | Reference to a national code |
Ref country code: FR Ref legal event code: PLFP Year of fee payment: 18 |
|
REG | Reference to a national code |
Ref country code: FR Ref legal event code: PLFP Year of fee payment: 19 |
|
REG | Reference to a national code |
Ref country code: FR Ref legal event code: PLFP Year of fee payment: 20 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: LU Payment date: 20180822 Year of fee payment: 20 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: IT Payment date: 20180823 Year of fee payment: 20 Ref country code: NL Payment date: 20180822 Year of fee payment: 20 Ref country code: IE Payment date: 20180823 Year of fee payment: 20 Ref country code: FR Payment date: 20180824 Year of fee payment: 20 Ref country code: DE Payment date: 20180827 Year of fee payment: 20 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: AT Payment date: 20180821 Year of fee payment: 20 Ref country code: BE Payment date: 20180822 Year of fee payment: 20 Ref country code: CH Payment date: 20180827 Year of fee payment: 20 Ref country code: FI Payment date: 20180821 Year of fee payment: 20 Ref country code: GB Payment date: 20180828 Year of fee payment: 20 Ref country code: SE Payment date: 20180827 Year of fee payment: 20 |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R071 Ref document number: 59900962 Country of ref document: DE |
|
REG | Reference to a national code |
Ref country code: NL Ref legal event code: MK Effective date: 20190811 |
|
REG | Reference to a national code |
Ref country code: CH Ref legal event code: PL |
|
REG | Reference to a national code |
Ref country code: GB Ref legal event code: PE20 Expiry date: 20190811 |
|
REG | Reference to a national code |
Ref country code: SE Ref legal event code: EUG |
|
REG | Reference to a national code |
Ref country code: IE Ref legal event code: MK9A |
|
REG | Reference to a national code |
Ref country code: BE Ref legal event code: MK Effective date: 20190812 |
|
REG | Reference to a national code |
Ref country code: AT Ref legal event code: MK07 Ref document number: 214211 Country of ref document: AT Kind code of ref document: T Effective date: 20190812 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: IE Free format text: LAPSE BECAUSE OF EXPIRATION OF PROTECTION Effective date: 20190812 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: GB Free format text: LAPSE BECAUSE OF EXPIRATION OF PROTECTION Effective date: 20190811 |