WO2000014886A1 - 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
WO2000014886A1
WO2000014886A1 PCT/EP1999/005859 EP9905859W WO0014886A1 WO 2000014886 A1 WO2000014886 A1 WO 2000014886A1 EP 9905859 W EP9905859 W EP 9905859W WO 0014886 A1 WO0014886 A1 WO 0014886A1
Authority
WO
WIPO (PCT)
Prior art keywords
code
information
words
word
area
Prior art date
Application number
PCT/EP1999/005859
Other languages
German (de)
French (fr)
Inventor
Martin Dietz
Ali Nowbakht-Irani
Ralph Sperschneider
Oliver Kunz
Original Assignee
Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V.
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 Förderung der angewandten Forschung e.V. filed Critical Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V.
Priority to AT99944368T priority Critical patent/ATE214211T1/en
Priority to JP2000569517A priority patent/JP3417479B2/en
Priority to AU57329/99A priority patent/AU747694B2/en
Priority to EP99944368A priority patent/EP1112621B1/en
Priority to DE59900962T priority patent/DE59900962D1/en
Priority to CA002341864A priority patent/CA2341864C/en
Priority to US09/786,614 priority patent/US6441755B1/en
Publication of WO2000014886A1 publication Critical patent/WO2000014886A1/en
Priority to HK02102020.8A priority patent/HK1040327B/en

Links

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 entropy-coded information words.
  • the present invention relates to the error-proof entropy coding and corresponding decoding of audio signals.
  • Modern audio coding methods or decoding methods which operate for example according to the MPEG layer 3 standard, are able to compress the data rate of audio signals by a factor of 12, for example, without noticeably deteriorating the quality thereof.
  • an audio signal is sampled, whereby a sequence of discrete-time samples is obtained.
  • this sequence of discrete-time samples is windowed using suitable window functions to obtain windowed blocks of temporal samples.
  • a block of time-windowed samples is then transformed into the frequency domain by means of a filter bank, a modified discrete cosine transform (MDCT) or other suitable device in order to obtain spectral values that collectively contain the audio signal, that is to say the temporal segment that passes through the block of time-discrete samples is given in the frequency domain.
  • MDCT modified discrete cosine transform
  • the spectral values are therefore divided into so-called scale factor bands, which should correspond to the frequency groups of the human ear.
  • Spectral values in a scale factor group are multiplied by a scale factor in order to scale spectral values of a scale factor band as a whole.
  • the scale factor bands scaled by the scale factor are then quantized, whereupon quantized spectral values arise.
  • Huffman coding is usually used for entropy coding.
  • Huffman coding is a coding of variable length, ie the length of the code word for a value to be coded depends on its probability of occurrence. Logically you rank the most likely Sign the shortest code, ie the shortest code word, so that a very good redundancy reduction can be achieved with the Huffman coding.
  • An example of a well-known coding with general length is the Morse alphabet.
  • Huffman codes are used to code the quantized spectral values.
  • a modern audio coder which works for example according to the MPEG-2 AAC standard, uses various Huffman code tables for coding the quantized spectral values, which are assigned to the spectrum in sections according to certain criteria. 2 or 4 spectral values are always coded together in one code word.
  • a difference between the MPEG-2 AAC method and the MPEG-Layer 3 method is that different scale factor bands, i. H.
  • Different spectral values can be grouped into any number of spectral sections or "sections".
  • a spectral section or section includes at least four spectral values, but preferably more than four spectral values.
  • the entire frequency range of the spectral values is therefore divided into adjacent sections, with one section representing a frequency band, such that all sections together comprise the entire frequency range which is covered by the spectral values after the transformation thereof.
  • a section is now assigned a so-called Huffman table from a plurality of such tables, as is the case with the MPEG Layer 3 method, in order to achieve maximum redundancy reduction.
  • the Huffman code words for the spectral values in the ascending frequency sequence are now in the bit stream of the AAC method, which usually has 1024 spectral values.
  • the information about the table used in each frequency section is transmitted in the page information.
  • the scale factors of the MPEG-2-AAC (ISO / IEC JTC1 / SC29 / WG11 IS 13818.7) are also subjected to Huffman coding in order to further reduce the amount of bits to be transmitted.
  • the scale factors are difference-coded within a frame, ie within an associated windowed block of samples, which is transformed into the frequency range.
  • the difference is determined on the basis of a starting value, typically the first scale factor of a frame, which is absolutely given. This is particularly efficient for compression because small changes from one scale factor to the next are very likely.
  • the Huffman code is a variable length code. This is precisely the essence of the Huffman code, such that very frequently occurring values are assigned very short code words, while values that occur less frequently are given rather long or very long code words.
  • the Huffman code words are written in succession for one frame in the bit stream. The beginning of the code word for a scale factor can only be determined if the corresponding preceding code word is correctly recognized, i. H. has been decoded.
  • the code words for the individual scale factors are simply written one after the other in ascending order in the bit stream. If the transmission of the bit stream over a faulty channel, such as a radio channel, leads to a bit error that changes the length of the code word that is assigned to the very first scale factor, it is impossible to decode the scale factors of the entire frame without errors , since the decoder has no way of determining the start of the code word for the second scale factor. Therefore, although under certain circumstances all other scale factors apart from the scale factor at the beginning, which was disturbed in the example, have been correctly transmitted, there is no longer any possibility in the encoder to decode the correctly transmitted scale factors.
  • the U.S. Patent No. 5,488,616 A is concerned with a system for supplying reversible codes of variable length.
  • an asymmetrical reversible code is generated from a non-reversible code of variable length, which is only generated provisionally.
  • the non-reversible variable length code is also converted to a symmetric reversible code.
  • a selection device selects either the asymmetrical reversible code or the symmetrical reversible code as the output signal.
  • the symmetric reversible code is represented by a complete code tree, in which all branches are terminated either by symmetrical code words or by branch points, these branch points again being terminated by a symmetrical code word or leading to further branch points.
  • the code tree therefore contains only valid, i.e. H. symmetrical, code words.
  • the code used is an unbalanced, fixed-length code into which a symmetrical, variable-length code is mixed such that a certain number of bits of a fixed-length code word is followed by a bit of a symmetrical, variable-length code word.
  • the symmetrical code words of variable length serve only for the robustness of the error and do not carry any useful information.
  • the symmetrical code words of variable length are first extracted and analyzed for transmission errors.
  • a disadvantage of this mixed code is the fact that errors which occur in the fixed length code words cannot be determined, since only the symmetrical variable length code words are examined. On the other hand, undisturbed code words of fixed length can be identified as faulty if the associated code words of variable length are disturbed.
  • the object of the present invention is to provide a concept for entropy-coding information words and for decoding entropy-coded information words, which enables better error detection when the entropy-coded information words are transmitted over a faulty channel.
  • This object is achieved by a device for entropy coding according to claim 1 or 36, by a device for decoding entropy-coded information words according to claim 10, by a method for entropy coding according to Claim 24 and solved by a method for decoding according to claim 33.
  • the present invention is based on the finding that only the information words can be effectively transmitted in an error-resistant manner, which can be achieved by reversible, e.g. B. symmetrical, codewords are encoded. Only reversible code words allow forward and backward decoding of a sequence of code words that is uniquely assigned to a sequence of information words. In contrast to the Huffman code, which has asymmetrical code words, but which is almost optimal for data compression reasons, a symmetrical code has a higher redundancy. This redundancy can advantageously be used for error detection.
  • a short code i.e. H. a small code table
  • the size of the area implicitly defines the length of the longest code word, since with an increasing number of code words in the table, the length of the valid code words also increases.
  • the error limitation is carried out according to the invention in that a decoder recognizes invalid, ie non-reversible, codewords and concludes that a transmission There is a supply error because such a code word was not generated in the encoder by definition.
  • the probability that a disturbance leads to an invalid code word is greatest when there are only a small number of code words. If there is a very large number of code words, the probability that a fault leads to an invalid code word becomes smaller and smaller since the length of the invalid code words also increases more and more.
  • the method according to the invention is particularly advantageous where the information words to be coded are essentially within a range and information words are only outside the range with a low probability.
  • the smaller the range the less symmetrical code words are required and the better the error detection, which could be increased by adding artificial invalid code words.
  • An attempt is therefore made to keep the area of the information words which are coded by means of symmetrical code words as small as possible in the sense of an effective error limitation, and yet to be so large that the information words are very likely to be within this area and are encoded symmetrically in order to to create sufficient overall robustness for errors.
  • a preferred application of the present invention is entropy coding of scale factors of a transformation-coded audio signal, since in this application 98% of the scale factor values occurring lie statistically within a manageable range which can be coded by symmetrical code words which are not yet excessive Have length. If an information word entropy is to be encoded that lies outside this range, an additional value is transmitted, which is called "escape".
  • the escape value is preferably Huffman-coded and transmitted separately from the symmetrically coded scale factors in the audio bit stream.
  • the purpose of the escape coding according to the invention is therefore to be able to cover a large range of code words despite a relatively small RVLC table with good error detection properties. The coding efficiency hardly suffers in said preferred application, since escape-coded values occur only rarely here.
  • the application of the present invention to the scale factors of a transform-coded audio signal is particularly advantageous because even minor disturbances in the scale factors due to a non-ideal channel lead to highly audible disturbances, since it is known that a scale factor weights several spectral lines ultiplicatively. Furthermore, since the scale factors only make up a relatively small part of the total bit quantity compared to the coded spectral values, protection of the scale factors by means of a redundant code does not lead to any significant additional expenditure of bits. This low additional effort is more than justified by the error-proofness of the scale factors, which can introduce disruptive interference into an audio signal in comparison to their bit quantity.
  • the present invention is not limited to the entropy coding or decoding of scale factors, but is advantageous wherever information words are to be coded which are very likely to be in a range such that without relatively great loss of efficiency with relatively short symmetrical code words can be used, values outside the range can be encoded by escape sequences.
  • 1 shows a schematic block diagram for an encoder according to the invention
  • 2 shows a schematic block diagram for a decoder according to the invention
  • Fig. 3 is a schematic representation of the stream of code words processed by the decoder shown in Fig. 2;
  • the code according to the invention represents an entropy code which, like the frequently used Huffman code, assigns short code words to frequently occurring values and long code words to rarely occurring values.
  • the code according to the invention differs from the Huffman code as follows:
  • the coding used allows decoding from both sides (forward and backward). This is also referred to in technology as "Reversible Variable Length Coding" (RVLC).
  • RVLC Reversible Variable Length Coding
  • Backward decoding is possible if reversible, e.g. B. symmetric code words, d. H. if a code book or a code table with reversible code words is used.
  • RVL code allows the effect that the code table, ie the set of available code words, does not form a "complete tree". It there are code symbol sequences that do not result in a valid code word, ie result in code words that are not symmetrical. The gaps that arise in the tree can be used to detect transmission errors since they indicate that a received code word has never been generated by a transmitter.
  • Huffman coding is optimal in terms of information theory, it makes no sense to use a different code if the only goal is to maximize data compression. However, the Huffman code is not advantageous when it comes to increasing error sensitivity with as little loss of compression efficiency as possible.
  • By coding with code words of variable length an error can propagate from the disturbed code word to all subsequent code words. A bit error thus falsifies the length of a code word, which means that all subsequent code words in a code word sequence can no longer be decoded, since the decoder has no knowledge of where the corresponding code words begin.
  • variable length code e.g. B.
  • 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:
  • Decoding five values from the front gives 111, 10001, 111, 0, 101, i.e. H. 1, -3, 1, 0, -1.
  • FIG. 1 shows an entropy encoder according to a preferred embodiment of the invention.
  • Information words to be coded are fed into a decision maker 10.
  • information words in the tables above consisted only of integers.
  • information words that are to be entropy-encoded such as B. scale factors, for example as eight-bit values.
  • the expression "information words" is thus intended to encompass any type of representation by which information to be coded can be represented.
  • the decision maker 10 determines whether the information word is in a range of information words or outside the range of information words.
  • the range is determined by the code table implemented in the encoder. If it is determined in the decision maker that an information word to be encoded lies within the range, the same is transmitted to a device 12 for assigning a symmetrical code word from a group of symmetrical code words, ie from the code table, in such a way that a symmetrical code word is assigned to the information word becomes.
  • this information word is transmitted by the decision maker 10 to a device 14 for generating an additional value, such that the device 14 in a preferred exemplary embodiment of the present the invention determined the escape value.
  • the device 14 principally comprises two outputs, ie an output for writing the escape value into an escape area of the bit stream, and on the other hand an output which is connected to a bit stream formatter 16 which has a stream of code words or a sequence of Generates code words which is assigned to the sequence of information words fed in at the input of the decision maker 10.
  • FIG. 3 shows a continuous stream 30 of "potentially" symmetrical code words, the term “potentially” is intended to indicate that the stream 30 is already over a non-ideal channel, e.g. B. a radio link has been transmitted, which may have caused bit interference.
  • the stream consists of individual symmetrical code words 30a, 30b, 30c, etc., all of which are within the range defined by the code table comprising symmetrical code words.
  • the stream of potentially symmetrical code words also includes symmetrical code words 31, 32 which stand for information words at the edge of the range.
  • the code words 30a-30c are generated by the assignment device 12 and fed into the bitstream formatter 16.
  • the code words which exist for information words at the edge of the region are generated by the device 14 and from there are fed into the bit stream formatter 16, which forms the stream 30 shown in FIG. 3.
  • 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. If the information word to be coded has a value of, for example, +12, the sum of the symmetrical code word 31 and the escape value gives the value +12.
  • the device 14 for generating thus performs two functions in accordance with a preferred exemplary embodiment of the present invention.
  • the escape value can again be entropy-encoded using the coding method according to the invention.
  • the decision maker 10 will determine that this value lies outside the range defined by the code table with symmetrical code words.
  • the device 14 for generating an additional value will therefore on the one hand output the code word for the value -7 to the bit stream formatter 16 and on the other hand the difference, i. H. 5, write in the escape area.
  • the value -12 then results from the combination of the value -7, for example the code word 32 in FIG. 3, and the escape value 34 via the link represented by the 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.
  • the device 14 for generating an additional value forms the difference between the information word to be coded and the information word at the edge of the area and, on the one hand, writes a symmetrical code word in the stream 30 of symmetrical code words and, on the other hand, writes the difference in the escape area. It is alternatively also possible that the entire information word is written into the escape area, and in the stream of symmetrical code words only a placeholder, a specific bit combination or the like is inserted either by the device 14 or by the bit stream formatter 16 in order to be connected downstream To signal the decoder that it must go into the escape area at this point in the bit stream.
  • the method illustrated has the advantage that at least the part of the information word that lies in the area covered by symmetrical code words is coded using a symmetrical code word, whereby only the difference, which is coded using a Huffman code, for example, less secure or less error-prone.
  • alternative driving would have the advantage that no addition or difference formation has to be carried out and that the less redundant code is used for an information word outside the range.
  • the information word lying outside the range cannot then be decoded backwards.
  • either methods known in the prior art or the coding method according to the invention can be used to protect the escape area in order to create secure conditions here as well.
  • a sequence of code words or a stream of “potentially symmetrical code words” 30 is fed into a memory 20, which an analyzer 21 can access to analyze a sequence stored in the memory 20.
  • the analyzer 21 comprises a device for detecting a symmetrical code words from the sequence 30 of code words and, on the other hand, means for detecting a predetermined code in the sequence 30 of code words. If the analyzer 21 detects an intact symmetrical code word, it transmits this to a device 22 for assigning a specific information word to the code word based on a previously known code table which must correspond to the code table used in the encoder (FIG. 1).
  • the analyzer 21 detects a predetermined code, which in the present example is the code word for an edge of the area, it sends this code word to a device 23 for determining an additional information word outside the area.
  • the device 23 will access the escape area when a code word 31 occurs in the stream 30 and retrieve the corresponding escape value there and add or subtract it to the information word that corresponds to the code word 31.
  • the assignment of a predetermined code, in the exemplary embodiment of the code word for an information word on the edge, to a code word in the escape area can be done in various ways.
  • the simplest is to use a continuous pointer, with both the escape area and stream 30 being synchronized.
  • This synchronization is provided in the preferred embodiment of the present invention, in which scale factors are entropy-coded, by always processing a block or frame of an audio signal.
  • the escape area and stream 30 of symmetric code words are initialized so that the use of a continuous pointer gives correct results.
  • the encoder according to the invention further comprises means 24 for reversing the order of the decoder, which is activated by the analyzer 21. If the analyzer 21 finds an asymmetrical code word in the stream 30, it will activate the device 24 for reversing the order, since an asymmetrical code word in the stream 30 potentially has symmetric code words cannot occur.
  • the means 22 for assigning and the means 23 for determining then work in the reverse order from the other end of the sequence of code words in order to limit the error with a decoding from the rear, in such a way that as few values as possible have to be replaced by an error concealment.
  • the corresponding decoder furthermore comprises a differential decoder 25 which cancels the differential coding generated in the encoder.
  • the difference decoder 25 is also activated by the device for reversing the sequence 24 in order to carry out a backward difference decoding in order to also use reverse-coded information words transmitted by the devices 22 and 23 to the device 25 to produce completely decoded information words again.
  • the reverse differential decoder and the forward differential decoder may be separate devices, or may be implemented by a single device, with an addition in forward differential decoding is performed while subtraction is being performed in reverse differential decoding.
  • the combination of a differential coding with the coding method according to the present invention is particularly advantageous, since only through a differential coding with a suitably chosen output value of the difference formation does the absolute information words, e.g. B. "shifted" by a symmetrical area to zero.
  • an additional value must be added at the end of the sequence of information words in the encoder, such that the differential decoder knows from where a difference Decoding should be started from behind. If a defined start value has been used in the difference coding, an additional value is an additional value at the end of the sequence of difference-coded information words, which indicates the difference from the last information word to the defined or predetermined start value.
  • the difference is of course also entropy-encoded and is preferably entropy-encoded using a symmetrical information word, such that this value is well protected to allow reverse decoding.
  • the first information word of a sequence of information words is taken as the starting value for the differential coding in the encoder, then it makes sense to add the absolute value of the last information word as an additional value at the end of the sequence. This last value will then almost certainly not be in the range of information words which are coded with symmetrical code words.
  • a preferred application of the present invention is in the coding of scale factors, which were previously differentially coded and then Huffman coded.
  • the escape value is transmitted for values in the range from 7 to 60. Preferably the same Huffman is encoded.
  • the "escape" table thus consists of 54 entries for values between 0 and 53. Every time the receiver decodes a -7 or a +7, it must decode and add or subtract the associated escape value.
  • the interval -7 to +7 covers 98% of the scale factor values that occur, such that escape values are not particularly common. If more frequent escape values occur, or if even greater attention is paid to error safety, various known methods and the method according to the invention can be used in order to make the escape values more error-proof.
  • FIG. 4A a known symmetrical code is shown, which is disclosed, for example, in the above-mentioned specialist publication by Göran Bang and Göran Roth.
  • This code is defined by a code tree that has a root 40 and a branch point 42. Since it is a binary code, two branches 43, 44 are at the root. brings, the branch 43 connects the root 40 with an end point that defines the valid code word "1".
  • the branch 44 connects the root 40 to the branching point 42, from which two branches 45, 46 lead away.
  • Branch 46 is connected to an endpoint which defines the second valid code word of this code "00", while branch 45 defines an invalid code word of this code, ie "01".
  • the code word "01" is invalid because it is asymmetrical. With regard to the further notation, it should be pointed out that invalid code words are framed in FIGS. 4A and 4C and in FIG. 5.
  • the code shown in Fig. 4A thus comprises only two valid code words, ie "1" and "00", and only one invalid code word, ie "01", which is the same length as the second valid code word "00".
  • FIG. 4B A slightly longer code is shown in Fig. 4B.
  • the code in FIG. 4B contains a further valid code word "010” and also an invalid code word which, like the additional valid code word, is now 3 bits long and has the value "011".
  • branch 45 is not connected to an end point, but rather to a further branch point 47, from which two branches start, the first outgoing branch reaching for the additional valid code word "010", while the other branch is invalid for the only one Code word "011" is sufficient.
  • FIG. 4C is the logical continuation of FIGS. 4A and 4B, since branch point 47 is now connected to a further branch point 48, from which in turn two branches start, one branch defining an additional symmetrical code word "0110", while the end point of the other branch defines the only invalid code word "Olli" that has the same length (4 bits) as the longest code word of the code tree, i. H. the code table.
  • FIG. 4C It can also be seen from FIG. 4C that no valid code words of the same length exist. This also applies to the codes in Figures 4A and 4B.
  • the codes shown in FIGS. 4A to 4C are used in the specialist publication by Göran Bang and Göran Roth only as a security grid and not as a code for coding information, since such a code, as is readily achieved by logical continuations of the data in FIGS. shown codes can be seen, with a sufficiently high number of code words becomes very long.
  • the robustness of errors corresponding to longer codes is very low, since there is always only one invalid code word and, moreover, this invalid code word is as long as the longest valid code word.
  • Coding information with the known codes is therefore not appropriate since the code words become very long if an appropriate range of information values is to be coded, and because there is always only one invalid code word which is also very long.
  • a decoder will therefore not immediately detect an error and commit a large number of subsequent errors before it encounters an invalid code word and aborts the decoding. So the error is narrowed down badly.
  • the code table according to the invention shown in FIG. 5 overcomes these disadvantages in that there is at least one branch point in the code tree from which two branches start, both of which are connected to a branch point instead of an end point.
  • 5 further comprises a root 52 from which two branches 53 and 54 originate, branch 53 being connected to an end point which defines the first and shortest code word 0, which in the preferred exemplary embodiment has the information value " 0 "is assigned.
  • the code word 0 has the shortest length and is therefore associated with the information value that occurs most frequently in the sense of entropy coding.
  • the information values are differently encoded, it has been found that the value 0 is most likely to occur, particularly in the differential coding of scale factors.
  • the other branch starting from the root 52, i.e. H. branch 54, according to the invention, does not end in a code word with the length of 2 bits but leads to branch point 50a, which in turn is connected to further connection points 57, 58 via two branches 55, 56.
  • the connection points 57 and 58 are in turn provided with corresponding branches 59, 60 with end points which define the valid code words 101 and 111.
  • 2 code words can be obtained which are of the same length, i. H. 3 bits in FIG. 5.
  • they are assigned the information values "-1" and "1". From the point of view of entropy coding, it is expedient to provide code words of the same length for two information values which are very likely to occur with the same frequency.
  • two branches 62, 63 start from the connection point 50c, the branch 63 being connected to a connection point 64 which is connected via branches to a valid code word 110011 and to an invalid code word 110010. If a decoder encounters the invalid code word 110010, for example, it will abort the coding process since such a code word is irreversible and has never been generated in an encoder.
  • FIG. 5 A preferred application of the code according to the invention shown in FIG. 5 is the use of the reversible code in connection with escape values.
  • an information value outside the range from "-7" to "+7” is replaced by the code word for the corresponding information value at the edge of the range and further difference encoded in an escape table. Therefore, there is a higher probability that the value at the edge of the range, ie "-7" or "7” must be encoded in the encoded bit stream. Furthermore, there is an equal probability that "-7" or "+7” will occur.
  • the information values "-7" and "+7” are encoded by code words of the same length, ie 1000001 and 1100011, respectively, these code words being at the same time shorter than the longest occurring code words, which in this case are the code words for "-6" and "+6" to create a code table that is as good as possible from an entropy point of view.
  • the reversible, variable-length code shown in FIG. 5 is particularly well suited for error-resistant entropy coding of information values, since on the one hand there are a relatively large number of relatively short invalid code words, and on the other hand for the price of a shorter code word (in the example the code word "11") two code words (in the example 101 and 111) are obtained, which are longer but equally likely.
  • a shorter code word in the example the code word "11”
  • two code words in the example 101 and 111
  • this waiver is accomplished by the fact that special branch points exist, from which two branches originate, but which are both connected to further branch points instead of one end point.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

The invention relates to a device and method for entropy encoding and associated decoding. The inventive code comprises a code table with reversible code words (12) and 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 means of the code table. On the one hand, it is possible to carry out forward decoding and 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

Vorrichtung und Verfahren zum Entropiecodieren von Informationswörtern und Vorrichtung und Verfahren zum Decodieren von Entropie-codierten Informationswörtern Device and method for entropy-coding information words and device and method for decoding entropy-coded information words
Beschreibungdescription
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 feh- lersichere Entropie-Codierung und entsprechende Decodierung von Audiosignalen.The present invention relates to a concept for entropy coding and a corresponding concept for decoding entropy-coded information words. In particular, the present invention relates to the error-proof 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. 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 Skalenfaktor- bandes insgesamt zu skalieren. Die durch den Skalenfaktor skalierten Skalenfaktorbänder werden anschließend quanti- siert, 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.Modern audio coding methods or decoding methods, which operate for example according to the MPEG layer 3 standard, are able to compress the data rate of audio signals by a factor of 12, for example, without noticeably deteriorating the quality thereof. In order to achieve such a high data rate reduction, an audio signal is sampled, whereby a sequence of discrete-time samples is obtained. As is known in the art, this sequence of discrete-time samples is windowed using suitable window functions to obtain windowed blocks of temporal samples. A block of time-windowed samples is then transformed into the frequency domain by means of a filter bank, a modified discrete cosine transform (MDCT) or other suitable device in order to obtain spectral values that collectively contain the audio signal, that is to say the temporal segment that passes through the block of time-discrete samples is given in the frequency domain. Usually 50% overlapping temporal blocks are generated and transformed into the frequency range by means of an MDCT, so that due to the special properties of the MDCT, for example, 1024 time-discrete samples lead to 1024 spectral values. It is known that the receptivity of the human ear depends on the instantaneous spectrum of the audio signal itself. This dependence is recorded in the so-called psychoacoustic model, by means of which it has long been possible to calculate masking thresholds depending on the current spectrum. Masking means that a certain tone or spectral component is masked if, for example, an adjacent spectral range has a relatively high energy. This fact of masking is used to quantify the spectral values after the transformation as roughly as possible. The aim is therefore on the one hand to avoid audible interference in the decoded audio signal and on the other hand to use as few bits as possible in order to encode or quantize the audio signal here. The interference introduced by the quantization, ie the quantization noise, should be below the masking threshold and should therefore be inaudible. According to known methods, the spectral values are therefore divided into so-called scale factor bands, which should correspond to the frequency groups of the human ear. Spectral values in a scale factor group are multiplied by a scale factor in order to scale spectral values of a scale factor band as a whole. The scale factor bands scaled by the scale factor are then quantized, whereupon quantized spectral values arise. Of course, grouping into scale factor bands is not critical. However, it is used in the standards MPEG-Layer 3 and 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 Mor- se-Alphabet .A very important aspect of data reduction is the entropy coding of the quantized spectral values that follows after quantization. Huffman coding is usually used for entropy coding. Huffman coding is a coding of variable length, ie the length of the code word for a value to be coded depends on its probability of occurrence. Logically you rank the most likely Sign the shortest code, ie the shortest code word, so that a very good redundancy reduction can be achieved with the Huffman coding. An example of a 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 audio coding, Huffman codes are used to code the quantized spectral values. A modern audio coder, which works for example according to the MPEG-2 AAC standard, uses various Huffman code tables for coding the quantized spectral values, which are assigned to the spectrum in sections according to certain criteria. 2 or 4 spectral values are always coded together in one code word.
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" umfaßt 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 between the MPEG-2 AAC method and the MPEG-Layer 3 method is that different scale factor bands, i. H. Different spectral values can be grouped into any number of spectral sections or "sections". In AAC, a spectral section or section includes at least four spectral values, but preferably more than four spectral values. The entire frequency range of the spectral values is therefore divided into adjacent sections, with one section representing a frequency band, such that all sections together comprise the entire frequency range which is covered by the spectral values after the transformation thereof.
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 Bitεtro 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. 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, Dif- ferenz-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.A section is now assigned a so-called Huffman table from a plurality of such tables, as is the case with the MPEG Layer 3 method, in order to achieve maximum redundancy reduction. The Huffman code words for the spectral values in the ascending frequency sequence are now in the bit stream of the AAC method, which usually has 1024 spectral values. The information about the table used in each frequency section is transmitted in the page information. In addition to the spectral values, the scale factors of the MPEG-2-AAC (ISO / IEC JTC1 / SC29 / WG11 IS 13818.7) are also subjected to Huffman coding in order to further reduce the amount of bits to be transmitted. To further increase the efficiency, the scale factors are difference-coded within a frame, ie within an associated windowed block of samples, which is transformed into the frequency range. The difference is determined on the basis of a starting value, typically the first scale factor of a frame, which is absolutely given. This is particularly efficient for compression because 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 absolutely desirable for reasons of bit saving or data compression, it nevertheless leads to the fact that no redundancy is available in order to be able to maintain an error resilience.
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-codier- ten 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-coded signal is transmitted over a faulty channel, there is almost no possibility in the decoder to "save" any valid values after the error has occurred. This is briefly explained using the Huffman-coded scale factors. As previously mentioned, the Huffman code is a variable length code. This is precisely the essence of the Huffman code, such that very frequently occurring values are assigned very short code words, while values that occur less frequently are given rather long or very long code words. In the bit stream syntax of the audio encoder addressed, the Huffman code words are written in succession for one frame in the bit stream. The beginning of the code word for a scale factor can only be determined if the corresponding preceding code word is correctly recognized, i. H. has been decoded.
Beispielhaft bedeutet dies, daß zwischen 40 und 100 Skalenfaktoren in einem Frame vorkommen, je nach dem wieviel Ska- lenfaktorbänder erzeugt worden sind. Dies bedeutet auch, daß etwa 40 bis zu etwa 100 Skalenfaktoren pro Band Huffman-co- diert 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 one frame, depending on how many scale len factor bands have been generated. This also means that about 40 to about 100 scale factors per band are Huffman encoded. The code words for the individual scale factors are simply written one after the other in ascending order in the bit stream. If the transmission of the bit stream over a faulty channel, such as a radio channel, leads to a bit error that changes the length of the code word that is assigned to the very first scale factor, it is impossible to decode the scale factors of the entire frame without errors , since the decoder has no way of determining the start of the code word for the second scale factor. Therefore, although under certain circumstances all other scale factors apart from the scale factor at the beginning, which was disturbed in the example, have been correctly transmitted, there is no longer any possibility in the encoder to decode the correctly transmitted scale factors.
Das U.S. -Patent Nr. 5,488,616 A 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 somit ausschließlich gültige, d. h. symmetrische, Codewörter.The U.S. Patent No. 5,488,616 A is concerned with a system for supplying reversible codes of variable length. For this purpose, an asymmetrical reversible code is generated from a non-reversible code of variable length, which is only generated provisionally. The non-reversible variable length code is also converted to a symmetric reversible code. A selection device selects either the asymmetrical reversible code or the symmetrical reversible code as the output signal. The symmetric reversible code is represented by a complete code tree, in which all branches are terminated either by symmetrical code words or by branch points, these branch points again being terminated by a symmetrical code word or leading to further branch points. The code tree therefore contains only valid, i.e. H. symmetrical, code words.
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 outlines a concept for encoding and decoding video information and audio information using a variable length code (VLC) suitable for use in connection with error prone channels. When a bit error is detected in the forward direction of a received bit stream, decoding is carried out in the reverse direction. If a bit error is also detected in the reverse direction decoding, the reverse direction decoding is also canceled. The code used is an unbalanced, fixed-length code into which a symmetrical, variable-length code is mixed such that a certain number of bits of a fixed-length code word is followed by a bit of a symmetrical, variable-length code word. The symmetrical code words of variable length serve only for the robustness of the error and do not carry any useful information. On the receiver side, the symmetrical code words of variable length are first 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 which occur in the fixed length code words cannot be determined, since only the symmetrical variable length code words are examined. On the other hand, undisturbed code words of fixed length can be identified as faulty if the associated code words of variable length are disturbed.
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.The object of the present invention is to provide a concept for entropy-coding information words and for decoding entropy-coded information words, which enables better error detection when the entropy-coded information words are transmitted over a faulty channel.
Diese Aufgabe wird durch eine Vorrichtung zum Entropiecodieren nach Anspruch 1 oder 36, durch eine Vorrichtung zum Decodieren von Entropie-codierten Informationswörtern nach Anspruch 10 , durch eine Verfahren zum Entropiecodieren nach Anspruch 24 und durch ein Verfahren zum Decodieren nach Anspruch 33 gelöst.This object is achieved by a device for entropy coding according to claim 1 or 36, by a device for decoding entropy-coded information words according to claim 10, by a method for entropy coding according to Claim 24 and solved by a method for decoding according to claim 33.
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 Datenkom- pressionsgründen nahezu 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 Informationswortern 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 only the information words can be effectively transmitted in an error-resistant manner, which can be achieved by reversible, e.g. B. symmetrical, codewords are encoded. Only reversible code words allow forward and backward decoding of a sequence of code words that is uniquely assigned to a sequence of information words. In contrast to the Huffman code, which has asymmetrical code words, but which is almost optimal for data compression reasons, a symmetrical code has a higher redundancy. This redundancy can advantageously be used for error detection. However, in order not to sacrifice too much compression gain in the sense of error protection, according to the present invention not all information words are encoded by means of symmetrical code words, but rather only the information words which lie in a certain range of information words. Information words that are out of range are not encoded using the symmetric code, but can be Huffman encoded according to a preferred embodiment of the present invention. A compromise is thus made between robustness on the one hand and data compression on the other.
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 of information words encoded by symmetrical code words is the fact that a short code, i.e. H. a small code table, is desirable. The size of the area implicitly defines the length of the longest code word, since with an increasing number of code words in the table, the length of the valid code words also 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 Übertra- gungsfehler 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.The error limitation is carried out according to the invention in that a decoder recognizes invalid, ie non-reversible, codewords and concludes that a transmission There is a supply error because such a code word was not generated in the encoder by definition. The probability that a disturbance leads to an invalid code word is greatest when there are only a small number of code words. If there is a very large number of code words, the probability that a fault leads to an invalid code word becomes smaller and smaller since the length of the invalid code words also 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 where the information words to be coded are essentially within a range and information words are only outside the range with a low probability. The smaller the range, the less symmetrical code words are required and the better the error detection, which could be increased by adding artificial invalid code words. An attempt is therefore made to keep the area of the information words which are coded by means of symmetrical code words as small as possible in the sense of an effective error limitation, and yet to be so large that the information words are very likely to be within this area and are encoded symmetrically in order to to create sufficient overall robustness for errors.
Eine bevorzugte Anwendung der vorliegenden Erfindung besteht im Entropie-Codieren von Skalenfaktoren eines Transformati- ons-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 Entropiecodiert 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. 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.A preferred application of the present invention is entropy coding of scale factors of a transformation-coded audio signal, since in this application 98% of the scale factor values occurring lie statistically within a manageable range which can be coded by symmetrical code words which are not yet excessive Have length. If an information word entropy is to be encoded that lies outside this range, an additional value is transmitted, which is called "escape". The escape value is preferably Huffman-coded and transmitted separately from the symmetrically coded scale factors in the audio bit stream. The purpose of the escape coding according to the invention is therefore to be able to cover a large range of code words despite a relatively small RVLC table with good error detection properties. The coding efficiency hardly suffers in said preferred application, since escape-coded values occur only rarely 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 ultiplikativ 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 the scale factors of a transform-coded audio signal is particularly advantageous because even minor disturbances in the scale factors due to a non-ideal channel lead to highly audible disturbances, since it is known that a scale factor weights several spectral lines ultiplicatively. Furthermore, since the scale factors only make up a relatively small part of the total bit quantity compared to the coded spectral values, protection of the scale factors by means of a redundant code does not lead to any significant additional expenditure of bits. This low additional effort is more than justified by the error-proofness of the scale factors, which can introduce disruptive interference into an audio signal in comparison to their bit quantity.
Die vorliegende Erfindung ist jedoch nicht auf das Entro- pie-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 limited to the entropy coding or decoding of scale factors, but is advantageous wherever information words are to be coded which are very likely to be in a range such that without relatively great loss of efficiency with relatively short symmetrical code words can be used, values outside the range can be encoded by escape sequences.
Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend bezugnehmend auf die beiliegenden Zeichnungen erläutert. Es zeigen:Preferred embodiments of the present invention are explained below with reference to the accompanying drawings. Show it:
Fig. 1 ein schematisches Blockschaltbild für einen erfindungsgemäßen Codierer; Fig. 2 ein schematisches Blockschaltbild für einen erfindungsgemäßen Decodierer;1 shows a schematic block diagram for an encoder according to the invention; 2 shows a schematic block diagram for a decoder according to the invention;
Fig. 3 eine schematische Darstellung des durch den in Fig. 2 gezeigten Decodierer verarbeiteten Stroms aus Codewörtern;Fig. 3 is a schematic representation of the stream of code words processed by the decoder shown in Fig. 2;
Fig. 4A bis 4C symmetrische Codes gemäß dem Stand der Technik; und4A to 4C symmetrical codes according to the prior art; and
Fig. 5 einen umkehrbaren Code gemäß der vorliegenden Erfindung.5 shows 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 are dealt with, which can advantageously be combined with coding by means of symmetrical code words and escape values.
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 which, like the frequently used Huffman code, assigns short code words to frequently occurring values and long code words to rarely occurring values. However, the code according to the invention differs from the Huffman code as follows:
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 of all, in contrast to the Huffman coding, the coding used allows decoding from both sides (forward and backward). This is also referred to in technology as "Reversible Variable Length Coding" (RVLC). Backward decoding is possible if reversible, e.g. B. symmetric code words, d. H. if 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, ie the set of available code words, does not form a "complete tree". It there are code symbol sequences that do not result in a valid code word, ie result in code words that are not symmetrical. The gaps that arise in the tree can be used to detect transmission errors since they indicate that a received code word has never been generated by a transmitter.
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 Fehlerun- empfindlichkeit 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 Huffman coding is optimal in terms of information theory, it makes no sense to use a different code if the only goal is to maximize data compression. However, the Huffman code is not advantageous when it comes to increasing error sensitivity with as little loss of compression efficiency as possible. By coding with code words of variable length, an error can propagate from the disturbed code word to all subsequent code words. A bit error thus falsifies the length of a code word, which means that all subsequent code words in a code word sequence can no longer be decoded, since the decoder has no knowledge of 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: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:
Informationswort Codewort 3 110011Information word codeword 3 110011
2 110112 11011
1 1111 111
0 00 0
-1 101-1 101
-2 1001-2 1001
-3 10001-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 range for information words that can be encoded by means of symmetrical code words using this code table thus ranges from -2 to +2. Values outside these limits, i. H. which are greater than 2 in amount, are given an escape value in addition to the symmetrical code word for -3 or +3.
Codewörter, die in der dargestellten Codetabelle nicht vorkommen können, sind die folgenden:Code words that cannot appear in the code table shown are the following:
10000 11000 110010 1101010000 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 a code according to the invention, reference is made to FIG. 5 and the corresponding discussion further below.
Es sei im nachfolgenden als fiktives Beispiel eine Zahlenfolge 1, -3, 1, 2, -1 betrachtet, die über einen fehlerbehafteten Kanal übertragen werden soll:In the following, a numerical sequence 1, -3, 1, 2, -1 is to be considered as a fictitious example, which is to be transmitted via a faulty channel:
Tabelle 2Table 2
Sequenz von Informationswörtern: 1, -3, 1, 2, -1 Sequenz von Codewörtern: 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:Sequence of information words: 1, -3, 1, 2, -1 Sequence of code words: 111 10001 111 11011 101 If the case is considered that the twelfth bit is disturbed by an error generated by the channel, the following bit sequence results:
gestörte Sequenz von Codewörtern: 111, 10001, 111, 01011, 101disturbed sequence of code words: 111, 10001, 111, 01011, 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, i.e. H. 1, -3, 1, 0, -1.
Die Decodierung von hinten ergibt jedoch folgende Sequenz:However, the decoding from behind gives the following sequence:
101, 11010,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.d. H. only -1 and an invalid code word. From this simple example it can be seen that by decoding from the back, i. H. due to the backward decoding, the invalid code word 01011 is recognized very quickly. 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:The two decoded series of numbers are as follows. A bold print in the table below means that the values can be incorrect:
vorwärts: 1 -3 1 0 -1 rückwärts: x x x x -1forward: 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 a fault can be narrowed down depends on the type of fault and on the fault concealment technology implemented. Known error concealment techniques consist of simply replacing an incorrect value with its neighboring intact value. on the other hand If both intact values bordering on an error are known, weighted average values from the left and right margins can be used to artificially replace the incorrect value, ie to obscure them. Still other error concealment techniques use interpolation using two adjacent values between which there is an error. Likewise, one-sided prediction can be taken from the front or from the back to replace an incorrect value with a "possibly relatively intact" value.
Fig. 1 zeigt einen Entropie-Codierer gemäß einem bevorzugten Ausführungsbeispiel der Erfindung. In einen Entscheider 10 werden zu codierende Infor ationswörter eingespeist. In den vorstehenden Tabellen bestanden Informationswörter der Einfachheit halber lediglich aus ganzen Zahlen. Bei einem Au- diocodierer 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 embodiment of the invention. Information words to be coded are fed into a decision maker 10. For the sake of simplicity, information words in the tables above consisted only of integers. In an audio encoder, information words that are to be entropy-encoded, such as B. scale factors, for example as eight-bit values. The expression "information words" is thus intended to encompass any type of representation by which information to be coded can be represented.
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 vorliegen- den Erfindung den Escape-Wert ermittelt. Die Einrichtung 14 umfaßt prizipiell 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 Bit- stromformatierer 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 is in a range of information words or outside the range of information words. The range is determined by the code table implemented in the encoder. If it is determined in the decision maker that an information word to be encoded lies within the range, the same is transmitted to a device 12 for assigning a symmetrical code word from a group of symmetrical code words, ie from the code table, in such a way that a symmetrical code word is assigned to the information word becomes. On the other hand, if the decision maker 10 decides that the information word lies outside the area determined by the code table, this information word is transmitted by the decision maker 10 to a device 14 for generating an additional value, such that the device 14 in a preferred exemplary embodiment of the present the invention determined the escape value. The device 14 principally comprises two outputs, ie an output for writing the escape value into an escape area of the bit stream, and on the other hand an output which is connected to a bit stream formatter 16 which has a stream of code words or a sequence of Generates code words which is assigned to the sequence of information words fed in at the input of the decision maker 10.
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 the functioning of the device for generating an additional value or escape value, which is identified in FIG. 1 by reference numeral 14, refer to FIG. 3. Fig. 3 shows a continuous stream 30 of "potentially" symmetrical code words, the term "potentially" is intended to indicate that the stream 30 is already over a non-ideal channel, e.g. B. a radio link has been transmitted, which may have caused bit interference. The stream consists of individual symmetrical code words 30a, 30b, 30c, etc., all of which are within the range defined by the code table comprising symmetrical code words. However, the stream of potentially symmetrical code words also includes symmetrical code words 31, 32 which stand for information words at the edge of the range. The code words 30a-30c are generated by the assignment device 12 and fed into the bitstream formatter 16. In a preferred exemplary embodiment of the present invention, the code words which exist for information words at the edge of the region are generated by the device 14 and from there are fed into the bit stream formatter 16, which forms the stream 30 shown in FIG. 3. 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. If the information word to be coded has a value of, for example, +12, the sum of the symmetrical code word 31 and the escape value gives the value +12.
Ein Decodierer, der auf das Codewort 31 stößt, erkennt so- fort, 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 thus recognizes continues that this is a code word at the edge of the area, which is why the decoder for decoding the information word "goes" into the escape area by means of the link A in order to determine that there is an escape value of 5 in the present example is. The device 14 for generating thus performs two functions in accordance with a preferred exemplary embodiment of the present invention. First, it supplies the code word for the edge of the area in the stream 30 from symmetrical code words. On the other hand, it forms the difference between the information word to be coded and the code word at the edge of the area and generates an escape value which represents the difference. Of course, the escape value can again be entropy-encoded using the coding method according to the invention. For data compression reasons, however, it is preferred to encode the escape value using a Huffman code. From Fig. 3 it can also be seen that the escape value is not written into the stream of symmetrical code words, but at another location in the bit stream.
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 10 will determine that this value lies outside the range defined by the code table with symmetrical code words. The device 14 for generating an additional value will therefore on the one hand output the code word for the value -7 to the bit stream formatter 16 and on the other hand the difference, i. H. 5, write in the escape area. The value -12 then results from the combination of the value -7, for example the code word 32 in FIG. 3, and the escape value 34 via the link represented by the arrow B.
Ein Wert von +7 würde bei dem bevorzugten Ausführungsbei- spiel 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.
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 Alternatiwer- fahren 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 Infor ationswort 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 it is not essential that the device 14 for generating an additional value forms the difference between the information word to be coded and the information word at the edge of the area and, on the one hand, writes a symmetrical code word in the stream 30 of symmetrical code words and, on the other hand, writes the difference in the escape area. It is alternatively also possible that the entire information word is written into the escape area, and in the stream of symmetrical code words only a placeholder, a specific bit combination or the like is inserted either by the device 14 or by the bit stream formatter 16 in order to be connected downstream To signal the decoder that it must go into the escape area at this point in the bit stream. However, the method illustrated has the advantage that at least the part of the information word that lies in the area covered by symmetrical code words is coded using a symmetrical code word, whereby only the difference, which is coded using a Huffman code, for example, less secure or less error-prone. On the other hand, alternative driving would have the advantage that no addition or difference formation has to be carried out and that the less redundant code is used for an information word outside the range. However, it is disadvantageous that the information word lying outside the range cannot then be decoded backwards. However, either methods known in the prior art or the coding method according to the invention can be used to protect the escape area in order to create secure conditions here as well.
Fig. 2 zeigt ein bevorzugtes Ausführungsbeispiel eines De- codierers 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.2 shows a preferred exemplary embodiment of a decoder according to the present invention. A sequence of code words or a stream of “potentially symmetrical code words” 30 is fed into a memory 20, which an analyzer 21 can access to analyze a sequence stored in the memory 20. On the one hand, the analyzer 21 comprises a device for detecting a symmetrical code words from the sequence 30 of code words and, on the other hand, means for detecting a predetermined code in the sequence 30 of code words. If the analyzer 21 detects an intact symmetrical code word, it transmits this to a device 22 for assigning a specific information word to the code word based on a previously known code table which must correspond to the code table used in the encoder (FIG. 1). However, if the analyzer 21 detects a predetermined code, which in the present example is the code word for an edge of the area, it sends this code word to a device 23 for determining an additional information word outside the area. In the preferred exemplary embodiment, the device 23 will access the escape area when a code word 31 occurs in the stream 30 and retrieve the corresponding escape value there and add or subtract it to the information word that corresponds to the code word 31.
Die Zuweisung eines vorbestimmten Codes, im Ausführungsbei- spiel 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 of the code word for an information word on the edge, to a code word in the escape area can be done in various ways. The simplest is to use a continuous pointer, with both the escape area and stream 30 being synchronized. This synchronization is provided in the preferred embodiment of the present invention, in which scale factors are entropy-coded, by always processing a block or frame of an audio signal. For each block, the escape area and stream 30 of symmetric code words are initialized so that the use of a continuous pointer gives 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 means 24 for reversing the order of the decoder, which is activated by the analyzer 21. If the analyzer 21 finds an asymmetrical code word in the stream 30, it will activate the device 24 for reversing the order, since an asymmetrical code word in the stream 30 potentially has symmetric code words cannot occur. The means 22 for assigning and the means 23 for determining then work in the reverse order from the other end of the sequence of code words in order to limit the error with a decoding from the rear, in such a way that as few values as possible have to be replaced by an error concealment.
In der Realität kann es vorkommen, daß ein Entropie-Decodie- rer 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 does not immediately recognize a disturbed code word, since the disturbance did not lead to an invalid code word. It therefore decodes beyond the error until it encounters an invalid code word as a result of a subsequent error and the coding then stops. The backward decoder may then also decode from the other end, possibly also beyond the disturbed code word, and terminate at some point if the code word is invalid. This creates an overlap area in which both the entropy forward and the entropy backward decoders have provided output values. The error is thus limited to the overlap area and it can be determined that the decoded values outside 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 Dif- ferenz-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-Differenzde- codierer 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, the corresponding decoder furthermore comprises a differential decoder 25 which cancels the differential coding generated in the encoder. According to the invention, the difference decoder 25 is also activated by the device for reversing the sequence 24 in order to carry out a backward difference decoding in order to also use reverse-coded information words transmitted by the devices 22 and 23 to the device 25 to produce completely decoded information words again. It should be noted that the reverse differential decoder and the forward differential decoder may be separate devices, or may be implemented by a single device, with an addition in forward differential decoding is performed while subtraction is being performed in reverse differential decoding.
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 a differential coding with the coding method according to the present invention is particularly advantageous, since only through a differential coding with a suitably chosen output value of the difference formation does the absolute information words, e.g. B. "shifted" by a symmetrical area to zero.
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 Dif- ferenz-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 Ruckwarts- Decodierung 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, in order for differential decoding 25 in the reverse direction to be possible from the other end of an information word sequence, an additional value must be added at the end of the sequence of information words in the encoder, such that the differential decoder knows from where a difference Decoding should be started from behind. If a defined start value has been used in the difference coding, an additional value is an additional value at the end of the sequence of difference-coded information words, which indicates the difference from the last information word to the defined or predetermined start value. The difference is of course also entropy-encoded and is preferably entropy-encoded using a symmetrical information word, such that this value is well protected to allow reverse decoding. If the first information word of a sequence of information words is taken as the starting value for the differential coding in the encoder, then it makes sense to add the absolute value of the last information word as an additional value at the end of the sequence. This last value will then almost certainly not be in the range of information words which are coded with symmetrical code words.
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 has already been mentioned, a preferred application of the present invention is in the coding of scale factors, which were previously differentially coded and then Huffman coded. In the prior art, one Huffman table with 121 code words used to code values in the range from -60 to +60. Since the number of scale factors to be encoded is very small compared to the number of spectral values, a typical value is 40, a relatively "fast" detection of errors is absolutely necessary, such that the decoder aborts fewer values after decoding, so that a Errors can be localized relatively well. A "small" code table is therefore used, which means that the number of symmetrical 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 "Es- cape"-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 likely it is that errors will be detected earlier. Therefore, the range for information words that are encoded symmetrically runs from -7 to +7. The escape value is transmitted for values in the range from 7 to 60. Preferably the same Huffman is encoded. The "escape" table thus consists of 54 entries for values between 0 and 53. Every time the receiver decodes a -7 or a +7, it must decode and add or subtract the associated escape value.
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 scale factor values that occur, such that escape values are not particularly common. If more frequent escape values occur, or if even greater attention is paid to error safety, various known methods and the method according to the invention can be used in order 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 ange- bracht, 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 variable-length code according to the invention, reference is first made to FIG. 4A, in which a known symmetrical code is shown, which is disclosed, for example, in the above-mentioned specialist publication by Göran Bang and Göran Roth. This code is defined by a code tree that has a root 40 and a branch point 42. Since it is a binary code, two branches 43, 44 are at the root. brings, the branch 43 connects the root 40 with an end point that defines the valid code word "1". The branch 44 connects the root 40 to the branching point 42, from which two branches 45, 46 lead away. Branch 46 is connected to an endpoint which defines the second valid code word of this code "00", while branch 45 defines an invalid code word of this code, ie "01". The code word "01" is invalid because it is asymmetrical. With regard to the further notation, it should be pointed out that invalid code words are framed in FIGS. 4A and 4C and in FIG. 5. The code shown in Fig. 4A thus comprises only two valid code words, ie "1" and "00", and only one invalid code word, ie "01", which is the same length as the second valid code word "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 to FIG. 4A, the code in FIG. 4B contains a further valid code word "010" and also an invalid code word which, like the additional valid code word, is now 3 bits long and has the value "011". In contrast to FIG. 4A, branch 45 is not connected to an end point, but rather to a further branch point 47, from which two branches start, the first outgoing branch reaching for the additional valid code word "010", while the other branch is invalid for the only one 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 "Olli" definiert, das die gleiche Länge (4 Bit) hat, wie das längste Codewort des Codebaums, d. h. der Codetabelle.FIG. 4C is the logical continuation of FIGS. 4A and 4B, since branch point 47 is now connected to a further branch point 48, from which in turn two branches start, one branch defining an additional symmetrical code word "0110", while the end point of the other branch defines the only invalid code word "Olli" that has the same length (4 bits) as the longest code word of the code tree, i. 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. 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.It can also be seen from FIG. 4C that no valid code words of the same length exist. This also applies to the codes in Figures 4A and 4B. The codes shown in FIGS. 4A to 4C are used in the specialist publication by Göran Bang and Göran Roth only as a security grid and not as a code for coding information, since such a code, as is readily achieved by logical continuations of the data in FIGS. shown codes can be seen, with a sufficiently high number of code words becomes very long. In addition, the robustness of errors corresponding to longer codes is very low, since there is always only one invalid code word and, moreover, this invalid code word is as long as the longest valid code word. Coding information with the known codes is therefore not appropriate since the code words become very long if an appropriate range of information values is to be coded, and because there is always only one invalid code word which is also very long. A decoder will therefore not immediately detect an error and commit a large number of subsequent errors before it encounters an invalid code word and aborts the decoding. So the error is narrowed down badly.
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 there is at least one branch point in the code tree from which two branches start, both of which are connected to a branch point instead of an end point. In the preferred exemplary embodiment for the reversible code with variable length shown in FIG. 5, these are branch points 50a, 50b, 50c and 50d. 5 further comprises a root 52 from which two branches 53 and 54 originate, branch 53 being connected to an end point which defines the first and shortest code word 0, which in the preferred exemplary embodiment has the information value " 0 "is assigned. The code word 0 has the shortest length and is therefore associated with the information value that occurs most frequently in the sense of entropy coding. In the preferred embodiment of the present invention, in which the information values are differently encoded, it has been found that the value 0 is most likely to occur, particularly in the differential coding of scale factors.
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, starting from the root 52, i.e. H. branch 54, according to the invention, does not end in a code word with the length of 2 bits but leads to branch point 50a, which in turn is connected to further connection points 57, 58 via two branches 55, 56. The connection points 57 and 58 are in turn provided with corresponding branches 59, 60 with end points which define the valid code words 101 and 111. In contrast to the prior art, it can be seen here that by dispensing with a code word with a length of 2 bits, 2 code words can be obtained which are of the same length, i. H. 3 bits in FIG. 5. These are code words 101 and 111. In the code table shown in FIG. 5, they are assigned the information values "-1" and "1". From the point of view of entropy coding, it is expedient to provide code words of the same length for two information values which are very likely to occur with the same frequency.
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.It can be seen from FIG. 5 that two branches 62, 63 start from the connection point 50c, the branch 63 being connected to a connection point 64 which is connected via branches to a valid code word 110011 and to an invalid code word 110010. If a decoder encounters the invalid code word 110010, for example, it will abort the coding process since 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 to information values can be seen in FIG. 5. However, another special feature should be pointed out. A preferred application of the code according to the invention shown in FIG. 5 is the use of the reversible code in connection with escape values. As has already been shown, an information value outside the range from "-7" to "+7" is replaced by the code word for the corresponding information value at the edge of the range and further difference encoded in an escape table. Therefore, there is a higher probability that the value at the edge of the range, ie "-7" or "7" must be encoded in the encoded bit stream. Furthermore, there is an equal probability that "-7" or "+7" will occur. According to a preferred embodiment of the present invention, the information values "-7" and "+7" are encoded by code words of the same length, ie 1000001 and 1100011, respectively, these code words being at the same time shorter than the longest occurring code words, which in this case are the code words for "-6" and "+6" to create a code table that is as good as possible from an entropy point of view.
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 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.It can also be seen from FIG. 5 that eight invalid code words 66a-66h exist, whereas a reversible code according to the prior art only ever has or can have one code word. A large number of invalid code words and particularly relatively short invalid code words, e.g. the code words 66e, 66f provide a high level of error resilience, such that a decoder aborts the decoding as quickly as possible after a disturbed information value, in such a way that an error can be narrowed down as narrowly as possible.
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 reversible, variable-length code shown in FIG. 5 is particularly well suited for error-resistant entropy coding of information values, since on the one hand there are a relatively large number of relatively short invalid code words, and on the other hand for the price of a shorter code word (in the example the code word "11") two code words (in the example 101 and 111) are obtained, which are longer but equally likely. Although the omission of a valid short code word in the sense of entropy coding can actually be avoided, the same delivers according to the invention in applications in which error-resistant entropy coding is to be carried out and in which two information values are also included a relatively high probability and particularly with approximately the same probability of occurring, a good solution. With regard to the code table representation in tree form, this waiver is accomplished by the fact that special branch points exist, from which two branches originate, but which are both connected to further branch points instead of one end point.

Claims

Patentansprüche claims
1. Vorrichtung zum Entropie-Codieren von Informationswörtern, mit folgenden Merkmalen:1. Device for the entropy coding of information words, with the following features:
einer Einrichtung (12) zum Zuweisen eines umkehrbaren Codeworts aus einer Gruppe von umkehrbaren Codewörtern zu einem Informationswort, das in einem Bereich von Informationswörtern liegt, wobei die Gruppe von umkehrbaren Codewörtern derart ausgestaltet ist, daß für jedes Informationswort in dem Bereich ein eigenes umkehrbares Codewort vorgesehen ist; undmeans (12) for assigning a reversible code word from a group of reversible code words to an information word which is in a range of information words, the group of reversible code words being designed such that a separate reversible code word is provided for each information word in the range is; and
einer Einrichtung (14) zum Erzeugen eines zusätzlichen Werts (33, 34) für ein Informationswort, das außerhalb des Bereichs von Informationswörtern liegt.means (14) for generating an additional value (33, 34) for an information word which is outside the range of information words.
2. Vorrichtung nach Anspruch 1, bei der die umkehrbaren Codewörter symmetrische Codewörter sind.2. The apparatus of claim 1, wherein the reversible code words are symmetrical code words.
3. Vorrichtung nach Anspruch 1 oder 2 , bei der die Einrichtung (14) zum Erzeugen derart angeordnet ist, daß sie ebenfalls für ein Informationswort, das auf einer Grenze des Bereichs von Informationswortern liegt, einen zusätzlichen Wert erzeugt.3. Apparatus according to claim 1 or 2, wherein the means (14) for generating is arranged such that it also generates an additional value for an information word which lies on a limit of the range of information words.
4. Vorrichtung nach einem der vorhergehenden Ansprüche, die derart ausgestaltet ist, daß mit hoher Wahrscheinlichkeit auftretende Informationswörter in dem Bereich liegen.4. Device according to one of the preceding claims, which is designed such that information words occurring with a high probability lie in the area.
5. Vorrichtung nach einem der vorhergehenden Ansprüche, bei der die Einrichtung zum Zuweisen derart angeordnet ist, daß die Größe des Bereichs abhängig von den zu codierenden Informationswörtern derart bestimmt ist, daß eine Störung eines Codeworts mit hoher Wahrscheinlichkeit dazu dührt, daß dieses Codewort durch die Störung zu einem nicht umkehrbaren Codewort wird. 5. Device according to one of the preceding claims, wherein the means for assigning is arranged such that the size of the area is determined depending on the information words to be coded such that a disturbance of a code word with a high probability that this code word by the Disturbance becomes an irreversible code word.
Vorrichtung nach einem der vorhergehenden Ansprüche, bei der die Einrichtung (14) zum Erzeugen eines zusätzlichen Werts derart angeordnet ist, daß sie als zusätzlichen Wert die Differenz zwischen dem Informationswort und dem Informationswort auf einer nachstliegenden Grenze des Bereichs bildet. Apparatus according to one of the preceding claims, in which the device (14) for generating an additional value is arranged such that it forms, as an additional value, the difference between the information word and the information word on a next boundary of the area.
Vorrichtung nach einem der vorhergehenden Ansprüche, die ferner folgendes Merkmal aufweist:Device according to one of the preceding claims, further comprising:
eine Einrichtung zum Zuweisen eines Codeworts aus einer weiteren Gruppe von Codewörtern zu dem zusätzlichen Wert (33, 34).means for assigning a code word from a further group of code words to the additional value (33, 34).
Vorrichtung nach Anspruch 7, die derart angeordnet ist, daß zum Entropie-Codieren eines Informationsworts, das auf der Grenze des Bereichs oder außerhalb des Bereichs liegt, die Einrichtung (12) zum Zuweisen diesem Informationswort das Codewort zuweist, das dem Informationswort auf der nachstliegenden Grenze des Bereichs entspricht; undApparatus according to claim 7, which is arranged such that, for entropy coding an information word lying on the boundary of the area or outside the area, the means (12) for assigning this information word assigns the code word which corresponds to the information word on the next boundary corresponds to the range; and
die Einrichtung (14) zum Erzeugen die Differenz zwischen dem zu codierenden Informationswort und dem Informationswort auf der Grenze des Bereichs erzeugt, wobei das Vorzeichen der Differenz durch das Vorzeichen des Informationsworts auf der Grenze des Bereichs bestimmt ist, derart, daß das zu codierende Informationswort durch das umkehrbare Codewort für das Informationswort auf der Grenze des Bereichs und eine vorzeichenlose Differenz als zusätzlicher Wert (33, 34) dargestellt wird.the means (14) for generating generates the difference between the information word to be encoded and the information word on the boundary of the area, the sign of the difference being determined by the sign of the information word on the boundary of the area, such that the information word to be encoded by the reversible code word for the information word on the boundary of the range and an unsigned difference is represented as an additional value (33, 34).
Vorrichtung nach einem der vorhergehenden Ansprüche, die ferner folgendes Merkmal aufweist:Device according to one of the preceding claims, further comprising:
eine Bitstromformatiereinrichtung (16) zum Schreiben der umkehrbaren Codewörter in einen ersten Bereich (30) des Bitstroms und zum Schreiben der zusätzlichen Werte in einen zweiten Bereich (33, 34) des Bitstroms.a bit stream formatter (16) for writing the reversible code words in a first area (30) of the bit stream and for writing the additional values in a second area (33, 34) of the bit stream.
10. Vorrichtung nach einem der vorhergehenden Ansprüche, die ferner folgendes Merkmal aufweist:10. Device according to one of the preceding claims, further comprising the following feature:
eine Einrichtung zum Differenz-Codieren von Informationen, die ausgehend von einem Startwert Differenz-co- dierte Informationswörter erzeugt, wobei aufeinanderfolgende Differenz-codierte Informationswörter eine Differenzwertsequenz darstellen.a device for difference coding of information, which generates difference-coded information words on the basis of a starting value, successive difference-coded information words representing a difference value sequence.
11. Vorrichtung nach Anspruch 10, bei der die Einrichtung zum Differenz-Codieren ferner folgendes Merkmal aufweist:11. The apparatus of claim 10, wherein the means for differential coding further comprises:
eine Einrichtung zum Hinzufügen eines zusätzlichen Elements an das Ende der Differenzwertsequenz , wobei das zusätzliche Element derart bestimmt ist, daß eine Ruckwarts-Decodierung der Differenzwertsequenz durchführbar ist.means for adding an additional element to the end of the difference value sequence, the additional element being determined in such a way that a backward decoding of the difference value sequence can be carried out.
12. Vorrichtung zum Decodieren von unter Verwendung von umkehrbaren Codewörtern Entropie-codierten Informationswörtern, wobei einem Bereich der Informationswörter umkehrbare Codewörter zugeordnet sind, während ein außerhalb des Bereichs liegendes Informationswort durch einen zusätzlichen Wert dargestellt ist, mit folgenden Merkmalen:12. Device for decoding entropy-coded information words using reversible code words, wherein reversible code words are assigned to an area of the information words, while an information word outside the area is represented by an additional value, having the following features:
einer Einrichtung (21) zum Erfassen eines umkehrbaren Codeworts (30a, 30b, 30c) aus einer Sequenz (30) von Codewörtern;means (21) for detecting a reversible code word (30a, 30b, 30c) from a sequence (30) of code words;
einer Einrichtung (22) zum Zuweisen eines bestimmten Informationsworts zu dem erfaßten Codewort, basierend auf einer Codetabelle; einer Einrichtung (21) zum Erfassen eines vorbestimmten Codes (31, 32) in der Sequenz (30) von Codewörtern; undmeans (22) for assigning a particular information word to the detected code word based on a code table; means (21) for detecting a predetermined code (31, 32) in the sequence (30) of code words; and
einer Einrichtung (23) zum Ermitteln eines zusätzlichen Informationsworts (33, 34) außerhalb des Bereichs aufgrund des vorbestimmten Codes (31, 32) .means (23) for determining an additional information word (33, 34) outside the range on the basis of the predetermined code (31, 32).
13. Vorrichtung nach Anspruch 12 , bei der die umkehrbaren Codewörter symmetrische Codewörter sind.13. The apparatus of claim 12, wherein the reversible code words are symmetrical code words.
14. Vorrichtung nach Anspruch 12 oder 13, die derart angeordnet ist, daß das zusätzliche Element (33, 34) ein nicht-symmetrisches Codewort ist.14. The apparatus of claim 12 or 13, which is arranged such that the additional element (33, 34) is a non-symmetrical code word.
15. Vorrichtung nach Anspruch 14, bei der das nicht-symmetrische Codewort ein Huffman-Codewort ist.15. The apparatus of claim 14, wherein the non-symmetric code word is a Huffman code word.
16. Vorrichtung nach einem der Ansprüche 13 bis 15, bei der die Einrichtung (21) zum Erfassen eines umkehrbaren Codeworts derart angeordnet ist, daß ein nicht-umkehrbares Codewort in der Codewortsequenz (30) feststellbar ist.16. The device according to one of claims 13 to 15, wherein the means (21) for detecting a reversible code word is arranged such that a non-reversible code word in the code word sequence (30) can be determined.
17. Vorrichtung nach Anspruch 16, die ferner folgendes Merkmal aufweist:17. The apparatus of claim 16, further comprising:
eine Einrichtung (24) zum Umkehren einer Reihenfolge, in der die Einrichtung (21) zum Erfassen die Codewortsequenz (30) bearbeitet, wobei die Einrichtung (24) zum Umkehren auf die Feststellung eines nicht-umkehrbaren Codeworts anspricht.means (24) for reversing an order in which the means (21) for detecting processes the code word sequence (30), the means (24) for reversing being responsive to the detection of a non-reversible code word.
18. Vorrichtung nach einem der Ansprüche 13 bis 17, bei der die Informationswörter Differenz-codiert sind, die ferner folgendes Merkmal aufweist:18. Device according to one of claims 13 to 17, in which the information words are difference-coded, further comprising:
eine Einrichtung (25) zum Differenz-Decodieren der Dif- ferenz-codierten Informationswörter .means (25) for differential decoding of the dif- reference-coded information words.
19. Vorrichtung nach Anspruch 17 oder 18, bei der die Sequenz von Informationswörtern ausgehend von einem Startwert Differenz-codiert ist, wobei die Sequenz ferner an ihrem anderen Ende einen zusätzlichen Wert hat, der derart gewählt ist, daß eine Rückwärts-Diffe- renz-Decodierung von dem anderen Ende aus durchführbar ist, wobei die Einrichtung (25) zum Differenz-Decodieren angeordnet ist, um ansprechend auf die Einrichtung zum Umkehren der Reihenfolge eine Differenz-Decodierung von dem anderen Ende aus durchzuführen.19. Apparatus according to claim 17 or 18, in which the sequence of information words is difference-coded starting from a start value, the sequence further having at its other end an additional value which is chosen such that a backward difference Decoding is feasible from the other end, the differential decoding means (25) being arranged to perform differential decoding from the other end in response to the reverse order means.
20. Vorrichtung nach einem der Ansprüche 13 bis 19, bei der der vorbestimmte Code (31, 32) das Codewort ist, das einem Informationswort auf einer Grenze des Bereichs von Informationswörtern zugeordnet ist.20. Device according to one of claims 13 to 19, wherein the predetermined code (31, 32) is the code word which is assigned to an information word on a boundary of the range of information words.
21. Vorrichtung nach einem der Ansprüche 13 bis 20, bei der der vorbestimmte Code (31, 32) ein umkehrbarer Code ist.21. Device according to one of claims 13 to 20, wherein the predetermined code (31, 32) is a reversible code.
22. Vorrichtung nach Anspruch 20 oder 21, bei der die Einrichtung (23) zum Ermitteln derart angeordnet ist, daß sie die Summe des Informationsworts auf einer Grenze des Bereichs und des zusätzlichen Informationsworts außerhalb des Bereichs bildet, um ein Informationswort zu erhalten, das außerhalb des Bereichs liegt.22. The apparatus of claim 20 or 21, wherein the means (23) for determining is arranged such that it forms the sum of the information word on a boundary of the area and the additional information word outside the area to obtain an information word that is outside of the range.
23. Vorrichtung nach einem der vorhergehenden Ansprüche, bei der die Informationswörter Skalenfaktoren eines Transformations-codierten Audiosignals sind.23. Device according to one of the preceding claims, in which the information words are scale factors of a transform-coded audio signal.
24. Verfahren zum Entropie-Codieren von Informationswörtern, mit folgenden Schritten:24. A method for entropy coding information words, comprising the following steps:
Zuweisen (12) eines umkehrbaren Codeworts aus einer Gruppe von umkehrbaren Codewörtern zu einem Informati- onswort, das in einem Bereich von Informationswörtern liegt, wobei die Gruppe von umkehrbaren Codewörtern derart ausgestaltet ist, daß für jedes Informationswort in dem Bereich ein eigenes umkehrbares Codewort vorgesehen ist; undAssigning (12) a reversible code word from a group of reversible code words to an information onsword, which is in a range of information words, the group of reversible code words being designed such that a separate reversible code word is provided for each information word in the range; and
Erzeugen (14) eines zusätzlichen Werts (33, 34) für ein Informationswort, das außerhalb des Bereichs von Informationswörtern liegt.Generating (14) an additional value (33, 34) for an information word which is outside the range of information words.
25. Verfahren nach Anspruch 24, bei dem die umkehrbaren Codewörter symmetrische Codewörter sind.25. The method of claim 24, wherein the reversible code words are symmetrical code words.
26. Verfahren nach Anspruch 24 oder 25, bei dem der Bereich die mit hoher Wahrscheinlichkeit auftretenden Informationswörter umfaßt.26. The method of claim 24 or 25, wherein the area comprises the information words occurring with a high probability.
27. Verfahren nach einem der Ansprüche 24 bis 26, bei dem der Schritt des Erzeugens (14) eines zusätzlichen Werts folgenden Schritt aufweist:27. The method according to any one of claims 24 to 26, wherein the step of generating (14) an additional value comprises the following step:
Bilden einer Differenz zwischen dem Informationswort und dem Informationswort auf einer nachstliegenden Grenze des Bereichs als zusätzlichen Wert.Forming a difference between the information word and the information word on a next boundary of the area as an additional value.
28. Verfahren nach einem der Ansprüche 24 bis 27, das ferner folgenden Schritt aufweist:28. The method according to any one of claims 24 to 27, further comprising the step of:
Zuweisen eines Codeworts aus einer weiteren Gruppe von Codewörtern zu dem zusätzlichen Wert (33, 34).Assigning a code word from a further group of code words to the additional value (33, 34).
29. Verfahren nach Anspruch 28, bei dem der Schritt des Zu- weisens folgenden Schritt aufweist:29. The method of claim 28, wherein the assigning step comprises the following step:
Entropie-Codieren eines Informationsworts, das auf der Grenze des Bereichs oder außerhalb des Bereichs liegt, Zuweisen (12) des Codeworts zu diesem Informationswort, das dem Informationswort auf der nachstliegenden Grenze des Bereichs entspricht; undEntropy encoding an information word that is on or outside the area boundary, assigning (12) the code word to that information word that is the information word on the next boundary corresponds to the range; and
bei dem der Schritt des Erzeugens folgenden Schritt aufweist:in which the step of creating comprises the following step:
Erzeugen (14) der Differenz zwischen dem zu codierenden Informationswort und dem Informationswort auf der Grenze des Bereichs, wobei das Vorzeichen der Differenz durch das Vorzeichen des Informationsworts auf der Grenze des Bereichs bestimmt ist, derart, daß das zu codierende Informationswort durch das umkehrbare Codewort für das Informationswort auf der Grenze des Bereichs und eine vorzeichenlose Differenz als zusätzlicher Wert (33, 34) dargestellt wird.Generating (14) the difference between the information word to be encoded and the information word on the boundary of the area, the sign of the difference being determined by the sign of the information word on the boundary of the area, such that the information word to be encoded is by the reversible code word for the information word on the boundary of the range and an unsigned difference is shown as an additional value (33, 34).
30. Verfahren nach einem der Ansprüche 24 bis 29, das ferner folgenden Schritt aufweist:30. The method according to any one of claims 24 to 29, further comprising the step of:
Schreiben der umkehrbaren Codewörter in einen ersten Bereich (30) des Bitstroms und Schreiben der zusätzlichen Werte in einen zweiten Bereich (33, 34) des Bitstroms .Writing the reversible code words in a first area (30) of the bit stream and writing the additional values in a second area (33, 34) of the bit stream.
31. Verfahren nach einem der Ansprüche 24 bis 30, das ferner folgenden Schritt aufweist:31. The method according to any one of claims 24 to 30, further comprising the step of:
Differenz-Codieren von Informationen, wodurch ausgehend von einem Startwert Differenz-codierte Informationswörter erzeugt werden, wobei aufeinanderfolgende Differenz-codierte Informationswörter eine Differenzwertsequenz darstellen.Differential coding of information, whereby difference-coded information words are generated starting from a starting value, successive difference-coded information words representing a difference value sequence.
32. Verfahren nach Anspruch 31, das ferner folgenden Schritt aufweist:32. The method of claim 31, further comprising the step of:
Hinzufügen eines zusätzlichen Elements an das Ende der Differenzwertsequenz, wobei das zusätzliche Element derart bestimmt ist, daß eine Ruckwarts-Decodierung der Differenzwertsequenz durchführbar ist.Adding an additional element to the end of the difference value sequence, the additional element being determined such that a reverse decoding of the Differential value sequence is feasible.
33. Verfahren zum Decodieren von unter Verwendung von umkehrbaren Codewörtern Entropie-codierten Informationswörtern, wobei einem Bereich der Informationswörter umkehrbare Codewörter zugeordnet sind, während ein außerhalb des Bereichs liegendes Informationswort durch einen zusätzlichen Wert dargestellt ist, mit folgenden Schritten:33. A method for decoding entropy-coded information words using reversible code words, wherein reversible code words are assigned to an area of the information words, while an information word outside the area is represented by an additional value, with the following steps:
Erfassen (21) eines umkehrbaren Codeworts (30a, 30b, 30c) aus einer Sequenz (30) von Codewörtern;Detecting (21) a reversible code word (30a, 30b, 30c) from a sequence (30) of code words;
Zuweisen (22) eines bestimmten Informationsworts zu dem Codewort, basierend auf einer Codetabelle;Assigning (22) a particular information word to the code word based on a code table;
Erfassen (21) eines vorbestimmten Codes (31, 32) in der Sequenz (30) von Codewörtern; undDetecting (21) a predetermined code (31, 32) in the sequence (30) of code words; and
Ermitteln (23) eines zusätzlichen Informationsworts (33, 34) außerhalb des Bereichs aufgrund des vorbestimmten Codes (31, 32).Determining (23) an additional information word (33, 34) outside the area on the basis of the predetermined code (31, 32).
34. Verfahren nach Anspruch 33, das ferner folgende Schritte aufweist:34. The method of claim 33, further comprising the steps of:
Umkehren (24) einer Reihenfolge, in der die Einrichtung (21) zum Erfassen die Codewortsequenz (30) bearbeitet, als Reaktion auf ein nicht-umkehrbares Codewort.Reversing (24) an order in which the means (21) for detecting processes the code word sequence (30) in response to a non-reversible code word.
35. Verfahren nach einem der Ansprüche 24 bis 35, bei der die Informationswörter Skalenfaktoren eines Transforma- tions-codierten Audiosignals sind.35. The method as claimed in one of claims 24 to 35, in which the information words are scale factors of a transformation-coded audio signal.
36. Vorrichtung zum Entropie-Codieren von Informationswerten, mit folgenden Merkmalen:36. Device for entropy coding of information values, with the following features:
einer Einrichtung (12) zum Zuweisen eines Codewortes aus einer Codetabelle mit einer Mehrzahl von voneinander unterschiedlichen umkehrbaren Codewörtern mit variabler Länge zu einem Informationswert, wobei die Codewörter der Codetabelle durch einen Codebaum (Fig. 5) definiert sind, der folgende Merkmale aufweist:a device (12) for assigning a code word from a code table with a plurality of mutually different reversible code words of variable length to an information value, the code words of the code table being defined by a code tree (FIG. 5) which has the following features:
eine Wurzel (52) ;a root (52);
eine Vielzahl von Zweigen (53, 54, 55, 56, 59, 60, 62, 63);a plurality of branches (53, 54, 55, 56, 59, 60, 62, 63);
eine Vielzahl von Verzweigungspunkten (50 a - 50 d, 57, 58), wobei zu jedem Verzweigungspunkt ein Zweig führt, und wobei von jedem Verzweigungspunkt zwei Zweige ausgehen; unda plurality of branch points (50 a - 50 d, 57, 58), one branch leading to each branch point and two branches starting from each branch point; and
eine Vielzahl von Endpunkten von Zweigen, die gültige Codewörter oder ungültige Codewörter (66 a - 66 h) definieren, wobei die gültigen Codewörter umkehrbar sind und die ungültigen Codewörter nicht umkehrbar sind,a plurality of end points of branches which define valid code words or invalid code words (66 a - 66 h), the valid code words being reversible and the invalid code words not being reversible,
wobei von der Wurzel (52) zwei Zweige (53, 54) ausgehen, undtwo branches (53, 54) originating from the root (52), and
wobei von wenigstens einem Verzweigungspunkt (50a, 50d) des Codebaums zwei Zweige (55, 56) ausgehen, die beide mit einem Verzweigungspunkt (57, 58) statt mit einem Endpunkt eines Zweiges verbunden sind.two branches (55, 56) starting from at least one branch point (50a, 50d) of the code tree, both branches being connected to a branch point (57, 58) instead of to an end point of a branch.
37. Vorrichtung nach Anspruch 36, bei der ein Zweig (53), der mit der Wurzel (52) verbunden ist, zugleich mit einem Endpunkt erster Ordnung verbunden ist, wobei der Endpunkt erster Ordnung das kürzeste gültige Codewort definiert, das dem Informationswert, der am wahrscheinlichsten ist, zugeordnet ist.37. The apparatus of claim 36, wherein a branch (53) connected to the root (52) is also connected to a first order end point, the first order end point defining the shortest valid code word that corresponds to the information value that is most likely assigned.
38. Vorrichtung nach Anspruch 37, bei der der Verzweigungs- punkt (50a) , der mit dem anderen Zweig (54) verbunden ist, der von der Wurzel (52) ausgeht, mit zwei weiteren Verzweigungspunkten (57, 58) verbunden ist.38. The apparatus of claim 37, wherein the branching point (50a), which is connected to the other branch (54), which starts from the root (52), is connected to two further branch points (57, 58).
39. Vorrichtung nach Anspruch 38, bei der je einer der zwei Zweige (59, 60), die mit den zwei weiteren Verzweigungspunkten (57, 58) verbunden sind, mit je einem Endpunkt zweiter Ordnung verbunden sind, derart, daß zwei gültige gleich lange Codewörter definiert sind, deren Länge das dreifache der Länge des kürzesten Codeworts beträgt, und die jeweils Informationswerten zugeordnet sind, die am zweitwahrscheinlichsten auftreten, und die annähernd gleich wahrscheinlich sind.39. Apparatus according to claim 38, in which one of the two branches (59, 60), which are connected to the two further branch points (57, 58), are each connected to a second-order end point, such that two valid ones have the same length Code words are defined, the length of which is three times the length of the shortest code word, and each of which is associated with information values that are most likely to occur and are approximately equally likely.
40. Vorrichtung nach einem der Ansprüche 36 bis 39, bei der zumindest ein ungültiges Codewort (66e, 66f) existiert, das kürzer als das längste gültige Codewort ist.40. Device according to one of claims 36 to 39, in which there is at least one invalid code word (66e, 66f) which is shorter than the longest valid code word.
41. Vorrichtung nach einem der Ansprüche 36 bis 40, bei der die gültigen Codewörter symmetrisch sind.41. Device according to one of claims 36 to 40, wherein the valid code words are symmetrical.
42. Vorrichtung nach einem der Ansprüche 36 bis 41, bei der die Codewörter Binärworte sind, wobei das kürzeste Codewort ein Bit lang ist, und wobei zwei zweitkürzeste Codewörter existieren, die drei Bit lang sind.42. Apparatus according to any one of claims 36 to 41, wherein the code words are binary words, the shortest code word is one bit long, and there are two second shortest code words that are three bits long.
43. Vorrichtung nach einem der Ansprüche ^6 bis 42, bei der mehr als ein ungültiges Codewort (66a - 66h) existiert.43. Device according to one of claims ^ 6 to 42, in which more than one invalid code word (66a-66h) exists.
44. Vorrichtung nach einem der Ansprüche 36 bis 43, bei der die Codetabelle folgendermaßen definiert ist: Informationswort Codewort44. Device according to one of claims 36 to 43, in which the code table is defined as follows: Information word codeword
0 00 0
-1 101 -2 1001 -3 10001 -4 100001 -5 10000001 -6 100000001 -7 1000001 +1 111 +2 11011 +3 110011 +4 1101011 +5 11000011 +6 110101011 +7 1100011-1 101 -2 1001 -3 10001 -4 100001 -5 10000001 -6 100000001 -7 1000001 +1 111 +2 11011 +3 110011 +4 1101011 +5 11000011 +6 110101011 +7 1100011
45. Vorrichtung nach einem der Ansprüche 36 bis 44, bei der die Codetabelle Informationswörter in einem Bereich Codewörtern zuweist, wobei die Codewörter, die Informationswortern auf einer Grenze des Bereichs zugeordnet sind, kürzer als andere Codewörter der Codetabelle sind.45. Apparatus according to one of claims 36 to 44, in which the code table assigns information words in an area to code words, the code words which are assigned to information words on a boundary of the area being shorter than other code words in the code table.
46. Vorrichtung nach Anspruch 45, bei der die Informationswerte außerhalb des Bereichs durch die Codewörter auf einer Grenze des Bereichs und durch einen zusätzlichen Escape-Wert Entropie-codiert werden. 46. The apparatus of claim 45, wherein the information values outside the area are entropy-encoded by the code words on a border of the area and by an additional escape value.
PCT/EP1999/005859 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 WO2000014886A1 (en)

Priority Applications (8)

Application Number Priority Date Filing Date Title
AT99944368T ATE214211T1 (en) 1998-09-07 1999-08-12 APPARATUS AND METHOD FOR ENTROPY CODING INFORMATION WORDS AND APPARATUS AND METHOD FOR DECODING ENTROPY CODED INFORMATION WORDS
JP2000569517A JP3417479B2 (en) 1998-09-07 1999-08-12 Apparatus and method for entropy coding of information words and apparatus and method for decoding entropy coded information words
AU57329/99A AU747694B2 (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
EP99944368A 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
DE59900962T DE59900962D1 (en) 1998-09-07 1999-08-12 DEVICE AND METHOD FOR ENTROPY-CODING INFORMATION WORDS AND DEVICE AND METHOD FOR DECODING ENTROPY-CODED INFORMATION WORDS
CA002341864A CA2341864C (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
US09/786,614 US6441755B1 (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
HK02102020.8A HK1040327B (en) 1998-09-07 2002-03-15 Device and method for entropy encoding of information words and device and method for decoding entropy-encoded information words

Applications Claiming Priority (2)

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.8 1998-09-07

Publications (1)

Publication Number Publication Date
WO2000014886A1 true WO2000014886A1 (en) 2000-03-16

Family

ID=7880121

Family Applications (1)

Application Number Title Priority Date Filing Date
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

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)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8301439B2 (en) 2005-07-15 2012-10-30 Samsung Electronics Co., Ltd Method and apparatus to encode/decode low bit-rate audio signal by approximiating high frequency envelope with strongly correlated low frequency codevectors

Families Citing this family (33)

* 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
US7433824B2 (en) * 2002-09-04 2008-10-07 Microsoft Corporation Entropy coding by adapting coding between level and run-length/level modes
EP1734511B1 (en) 2002-09-04 2009-11-18 Microsoft Corporation Entropy coding by adapting coding between level and run-length/level modes
US7502743B2 (en) 2002-09-04 2009-03-10 Microsoft Corporation Multi-channel audio encoding and decoding with multi-channel transform selection
JP4676140B2 (en) 2002-09-04 2011-04-27 マイクロソフト コーポレーション Audio quantization and inverse quantization
JP4728568B2 (en) * 2002-09-04 2011-07-20 マイクロソフト コーポレーション Entropy coding to adapt coding between level mode and run length / level mode
US7657429B2 (en) * 2003-06-16 2010-02-02 Panasonic Corporation Coding apparatus and coding method for coding with reference to a 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
US7684981B2 (en) 2005-07-15 2010-03-23 Microsoft Corporation Prediction of spectral coefficients in waveform coding and decoding
US7599840B2 (en) * 2005-07-15 2009-10-06 Microsoft Corporation Selectively using multiple entropy models in adaptive coding and decoding
US7693709B2 (en) * 2005-07-15 2010-04-06 Microsoft Corporation Reordering coefficients for waveform coding or decoding
US8599925B2 (en) * 2005-08-12 2013-12-03 Microsoft Corporation Efficient coding and decoding of transform blocks
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
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
US8364471B2 (en) * 2008-11-04 2013-01-29 Lg Electronics Inc. Apparatus and method for processing a time domain audio signal with a noise filling flag
CA2778325C (en) 2009-10-20 2015-10-06 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Audio encoder, audio decoder, method for encoding an audio information, method for decoding an audio information and computer program using a region-dependent arithmetic coding mapping rule
BR122021008581B1 (en) 2010-01-12 2022-08-16 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. AUDIO ENCODER, AUDIO DECODER, AUDIO INFORMATION AND ENCODING METHOD, AND AUDIO INFORMATION DECODING METHOD USING A HASH TABLE THAT DESCRIBES BOTH SIGNIFICANT STATE VALUES AND RANGE BOUNDARIES

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0732855A2 (en) * 1995-03-15 1996-09-18 Kabushiki Kaisha Toshiba Moving picture coding and/or decoding system, and variable-length coding system

Family Cites Families (5)

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

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0732855A2 (en) * 1995-03-15 1996-09-18 Kabushiki Kaisha Toshiba Moving picture coding and/or decoding system, and variable-length coding system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
FRAENKEL A S ET AL: "Bidirectional Huffman coding", COMPUTER JOURNAL,GB,OXFORD UNIVERSITY PRESS, SURREY, vol. 33, no. 4, pages 296-307, XP002080409, ISSN: 0010-4620 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8301439B2 (en) 2005-07-15 2012-10-30 Samsung Electronics Co., Ltd Method and apparatus to encode/decode low bit-rate audio signal by approximiating high frequency envelope with strongly correlated low frequency codevectors

Also Published As

Publication number Publication date
US6441755B1 (en) 2002-08-27
AU747694B2 (en) 2002-05-16
KR20010073132A (en) 2001-07-31
JP2002524960A (en) 2002-08-06
ATE214211T1 (en) 2002-03-15
CA2341864A1 (en) 2000-03-16
DE59900962D1 (en) 2002-04-11
CN1322405A (en) 2001-11-14
KR100397806B1 (en) 2003-09-17
CN1185795C (en) 2005-01-19
DE19840835C2 (en) 2003-01-09
AU5732999A (en) 2000-03-27
JP3417479B2 (en) 2003-06-16
HK1040327A1 (en) 2002-05-31
EP1112621A1 (en) 2001-07-04
CA2341864C (en) 2004-08-03
DE19840835A1 (en) 2000-03-16
EP1112621B1 (en) 2002-03-06
HK1040327B (en) 2005-08-19

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
EP1145227B1 (en) Method and device for error concealment in an encoded audio-signal and method and device for decoding an encoded audio signal
DE69726661T2 (en) METHOD AND DEVICE FOR CODING A DIGITAL INFORMATION SIGNAL
EP0393526B2 (en) Digital encoding method
DE602004005197T2 (en) DEVICE AND METHOD FOR CODING AN AUDIO SIGNAL AND DEVICE AND METHOD FOR DECODING A CODED AUDIO SIGNAL
WO1999004505A1 (en) Method for signalling a noise substitution during audio signal coding
EP1382038A2 (en) Device and method for embedding a watermark in an audio signal
DE19959156A1 (en) Method and device for processing a stereo audio signal
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
EP0905918A2 (en) Method and apparatus for encoding audio signals
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
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
DE10065363B4 (en) Apparatus and method for decoding a coded data signal

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 99811774.9

Country of ref document: CN

AK Designated states

Kind code of ref document: A1

Designated state(s): AU CA CN JP KR US

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE

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

Ref document number: 2341864

Country of ref document: CA

Ref document number: 2341864

Country of ref document: CA

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 57329/99

Country of ref document: AU

ENP Entry into the national phase

Ref document number: 2000 569517

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 1020017002938

Country of ref document: KR

Ref document number: 1999944368

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 09786614

Country of ref document: US

WWP Wipo information: published in national office

Ref document number: 1999944368

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 1020017002938

Country of ref document: KR

WWG Wipo information: grant in national office

Ref document number: 1999944368

Country of ref document: EP

WWG Wipo information: grant in national office

Ref document number: 57329/99

Country of ref document: AU

WWG Wipo information: grant in national office

Ref document number: 1020017002938

Country of ref document: KR