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 PDF

Info

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
Application number
EP99944368A
Other languages
German (de)
French (fr)
Other versions
EP1112621A1 (en
Inventor
Martin Dietz
Ali Nowbakht-Irani
Ralph Sperschneider
Oliver Kunz
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
Original Assignee
Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV filed Critical Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
Publication of EP1112621A1 publication Critical patent/EP1112621A1/en
Application granted granted Critical
Publication of EP1112621B1 publication Critical patent/EP1112621B1/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion 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

A method and a device for entropy encoding and associated decoding make use of a code consisting on the one hand of a code table with reversible code words (12) and comprising on the other hand an escape region for information words to be coded which are located outside the region (14) defined by said code table. Said region can be selected in such a way that a major part of the information words is coded with symmetrical code words by the code table. On the one hand, it is thus possible to carry out, in addition to forward decoding, also backward decoding (24) and on the other hand, use of reversible code words allows for rapid recognition of errors in a code word stream transmitted over a non-ideal channel.

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 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. To such a high To achieve data rate reduction, an audio signal is sampled, resulting in a sequence of discrete-time samples is obtained. As is known in the art, 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. the timeline, given by the block of discrete-time samples is in the frequency domain. Usually will 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.

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-Layer 3 or with the standard MPEG-2 AAC (AAC = Advanced Audio coding).

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-Layer 3 is now that different Scale factor bands, d. H. different spectral values, too any number of spectral sections or "sections" grouped become. In 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.

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 MPEG Layer 3 process to achieve maximum redundancy reduction a so-called Huffman table from a plurality of such Assigned to tables. In 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.

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.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. The source symbols, by code words of variable length of the first code table can be coded, have a relatively high frequency of occurrence. 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. In addition, 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 creates a single data stream generated from reversible code words of variable length and consists of escape codes, always between two Escape codes is a fixed length code word. 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.

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 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.

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.
Preferred embodiments of the present invention are explained below with reference to the accompanying drawings. Show it:
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: Informationswort Codewort 3 110011 2 11011 1 111 0 0 -1 101 -2 1001 -3 10001 Instead of the 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. In addition, 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

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:

  • 10000
  • 11000
  • 110010
  • 11010
  • Code words that cannot appear in the code table shown are the following:
  • 10000
  • 11000
  • 110010
  • 11010
  • 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: Sequenz von Informationswörtern 1, -3, 1, 2, -1 Sequenz von Codewörtern 111 10001 111 11011 101 In the following, let us consider a sequence of numbers 1, -3, 1, 2, -1 as a fictitious example, which is to be transmitted via a faulty channel: Sequence of information words 1, -3, 1, 2, -1 Sequence of code words 111 10001 111 11011 101

    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, 101
    If 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, ie 1, -3, 1, 0, -1.

    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 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.

    Die zwei decodierten Zahlenreihen lauten folgendermaßen. Ein Fettdruck in der nachfolgenden Tabelle bedeutet, daß die Werte fehlerhaft sein können: vorwärts 1 -3 1 0 -1 rückwärts x x x x -1 The two decoded series of numbers are as follows. A bold print in the table below means that the values can be incorrect: forward 1 -3 1 0 -1 backward x x x x -1

    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 decision maker 10 information words to be coded are fed in. In the 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. B. scale factors, for example as There are eight bit values. The expression "information words" should therefore encompass every type of presentation, through which one coding information can be displayed.

    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 decision maker 10 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.

    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 reference numeral 14 is discussed in Fig. 3. 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.

    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 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. Of course, 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.

    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 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.

    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 code word 31, and 0 in the escape area, i.e. H. as the Escape value 33, can be encoded.

    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 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, however, 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 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 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, however, 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.

    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 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.

    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 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.

    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 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. It should be noted that 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.

    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 differential decoding 25 in the reverse direction from the other end of an information word sequence is possible must at the end of the sequence of information words an additional value is added in the encoder, such that the differential decoder knows from where a differential decoding should be started from behind. If a fixed start value is used for differential coding has become an additional value additional difference value at the end of the sequence of difference codes Informational words indicating the difference from that last information word for the specified or predetermined Indicates the starting value. The difference becomes self-evident also entropy-encoded and is preferably by means of a symmetrical information word entropy-coded, such that this value is well protected for backward decoding to allow. If as a starting value for the differential coding the first information word in the encoder Sequence of information words is taken, it offers the absolute value as an additional value at the end of the sequence of the last information word. This then last value will almost certainly not be in the range of information words lying with symmetrical code words be encoded.

    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 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".

    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 valid code word 3 bit is long and has the value "011". In contrast to Fig. 4A 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.

    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 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.

    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 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. In the preferred embodiment of the present invention in which 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.

    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 root 52, i. H. the According to the invention, 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. In contrast to the state of the art, here too see that by foregoing a code word with a length of 2 bit 2 code words can be obtained which are the same are long, d. H. 3 bits in Fig. 5. These are the code words 101 and 111. They 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.

    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 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.

    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 invalid code words 66a - 66h exist, while a reversible code according to the state of the art only ever one bad code word has or can have. A large number of invalid ones Code words and particularly relatively short invalid code words, such as. the code words 66e, 66f provide a high level of error resilience, such that a decoder as quickly as possible the decoding aborts after a disturbed information value, such that an error is narrowed as narrowly as possible can be.

    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)

    1. 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); and
      data 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.
    2. A device according to claim 1, wherein the reversible code words are symmetrical code words.
    3. 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.
    4. 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.
    5. 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.
    6. 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.
    7. 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).
    8. 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.
    9. 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.
    10. 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.
    11. A device according to claim 10, wherein the non-reversible variable length code words are Huffman code words.
    12. 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.
    13. 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.
    14. 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.
    15. 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.
    16. 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.
    17. 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.
    18. A device according to any of the preceding claims, wherein the information words are scale factors of a transformation-encoded audio signal.
    19. 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; and
      coding 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).
    20. 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; and
      ascertaining (23) an information word outside of the region of information words on the basis of the additional value.
    EP99944368A 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 Expired - Lifetime EP1112621B1 (en)

    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)

    * Cited by examiner, † Cited by third party
    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)

    * Cited by examiner, † Cited by third party
    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

    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