US 7209056 B2 Abstract The average amplitude of the samples in a signal sample sequence X in a floating-point format is determined for each frame. If the average amplitude is greater than a predetermined value, an integer formatting part
12 converts the sequence X into a signal sample sequence Y in a 16-bit integer format by truncation, a compressing part 13 codes the sequence Y to output a code sequence Ca, a difference producing part 14 produces a difference signal Z that corresponds to the difference between the signal sample sequence X and a sequence Y′ in the floating-point format converted from the sequence Y, and a compressing part 17 performs entropy coding on the least significant (23−n) bits of a mantissa M of the difference signal Z, which is determined by the number of bits n following the most significant 1 in each sample in the sequence Y, and outputs a code sequence Cb. If the average amplitude is not greater than the predetermined value, the sequence X is directly losslessly coded by a compressing part 121. A code Cd, which indicates which coding is selected, is output.Claims(21) 1. A lossless coding method for a signal in a floating-point format, comprising:
(a) a step of converting a first signal sample sequence in the floating-point format into a second signal sample sequence in an integer format;
(b) a step of losslessly compressing said second signal sample sequence in the integer format to produce a first code sequence;
(c) a step of producing a difference signal in the floating-point format that corresponds to the difference between said second signal sample sequence in the integer format and said first signal sample sequence in the floating-point format;
(d) a step of determining which coding processing is of higher compression efficiency, a first coding processing that codes a range of bits capable of assuming non-zero in a sample of said difference signal in the floating-point format, the range of bits being determined by the bit position of the most significant 1 in the corresponding sample in said second signal sample sequence in the integer format, or a second coding processing that directly codes said difference signal; and
(e) a step of coding said difference signal by said first coding processing to produce a second code sequence if the result of said determination indicates said first coding processing, or coding said difference signal by said second coding processing to produce a second code sequence if the result of said determination indicates said second coding processing.
2. A lossless coding method for a signal in a floating-point format, comprising:
(a) a step of determining which compression is of higher compression efficiency, a direct lossless compression of a first signal sample sequence in the floating-point format on a frame basis or a dual-signal separate compression of an integer-value sample sequence and a difference signal derived from the first signal sample sequence;
(b) a step of performing the dual-signal separate compression if the result of said determination indicates the dual-signal separate compression, the step (b) comprising:
(b-1) a step of converting the first signal sample sequence into a second signal sample sequence in an integer format;
(b-2) a step of losslessly compressing said second signal sample sequence in the integer format to produce a first code sequence;
(b-3) a step of producing a difference signal in the floating-point format that corresponds to the difference between said second signal sample sequence in the integer format and said first signal sample sequence in the floating-point format;
(b-4) a step of producing a second code sequence from said difference signal in the floating-point format;
(c) a step of directly losslessly compressing said first signal sample sequence to produce a third code sequence if the result of said determination indicates the direct compression; and
(d) a step of producing an auxiliary code that indicates whether said direct lossless compression or said separate compression of two types of signals is performed.
3. A lossless coding method for a signal in a floating-point format according to
said step (b-4) comprises:
(b-4-1) a step of determining which coding processing is of higher compression efficiency, a first coding processing that codes a range of bits capable of assuming non-zero in a sample of said difference signal in the floating-point format, the range of bits being determined by the bit position of the most significant 1 in the corresponding sample in said second signal sample sequence in the integer format, or a second coding processing that directly codes said difference signal; and
(b-4-2) a step of coding said difference signal by said first coding processing to produce a second code sequence if the result of said determination indicates said first coding processing, or coding said difference signal by said second coding processing to produce a second code sequence if the result of said determination indicates said second coding processing.
4. A lossless coding method for a signal in a floating-point format according to
5. A lossless coding method for a signal in a floating-point format according to
6. A lossless coding method for a signal in a floating-point format according to
_{I }of one sample in said second signal sample sequence in the integer format is less than the number of bits b_{M }of a mantissa of said first signal sample sequence in the floating-point format, and in said first coding processing, said range of bits capable of assuming non-zero is separated into a higher-order sub-range containing a number of bits corresponding to the difference between the number of bits b_{M }of said mantissa and the number of bits b_{I }of said one sample and a lower-order sub-range containing the remaining bits, the sub-ranges are separately losslessly compressed to produce respective code sequences, and said code sequences are combined and output as said second code sequence.7. A lossless coding method for a signal in a floating-point format according to
8. A lossless coding method for a signal in a floating-point format according to
9. A lossless coding method for a signal in a floating-point format according to
10. A coding program that makes a computer execute each step of a lossless coding method for a digital signal in a floating-point format according to
11. A computer-readable recording medium that stores a program according to
12. A lossless decoding method for a signal in a floating-point format, comprising:
(a) a step of determining whether an input code is a code produced by a single-signal coding or a dual-signal coding, based on an input auxiliary code; and
(b) if the result of said determination indicates the single-signal coding, a step of decoding and expanding an input code sequence as one code sequence to reproduce an original signal sample sequence in the floating-point format;
(c) if the result of said determination indicates the dual-signal coding, a step of separating the input code sequence into a first code sequence and a second code sequence;
(d) a step of decoding and expanding said first code sequence to produce a first signal sample sequence in an integer format;
(e) a step of deriving a difference signal in the floating-point format from said second code sequence;
(f) a step of converting said first signal sample sequence in the integer format into a second signal sample sequence in the floating-point format; and
(g) a step of combining said second signal sample sequence in the floating-point format and said difference signal in the floating-point format to reproduce the original signal sample sequence in the floating-point format.
13. A lossless decoding method for a signal in a floating-point format according to
a step of determining which of a first expansion method and a second expansion method is used to decode and expand said second code sequence, based on said first signal sample sequence in the integer format or the input auxiliary code; and
a step of decoding and expanding said second code sequence into bit sequences each containing a number of bits capable of assuming non-zero, the number of bits being uniquely determined by the bit position of the most significant 1 in each sample of said first signal sample sequence, and assembling said difference signal from the bit sequences resulting from the decoding and expansion if the result of the determination indicates the first expansion method, or a step of directly decoding and expanding said second code sequence into said difference signal by the second expansion method if the result of the determination indicates the second expansion method.
14. A lossless decoding method for a signal in a floating-point format, comprising:
(a) a step of decoding and expanding a first code sequence to produce a first signal sample sequence in an integer format;
(b) a step of determining which of a first expansion method and a second expansion method is used to decode and expand a second code sequence, based on said first signal sample sequence or an auxiliary code;
(c) if the result of the determination indicates the first expansion method, a step of decoding and expanding said second code sequence into bit sequences each containing a number of bits capable of assuming non-zero, the number of bits being uniquely determined by the bit position of the most significant 1 in each sample of said first signal sample sequence, and assembling the bit sequences resulting from the decoding and expansion into a difference signal;
(d) if the result of the determination indicates the second expansion method, a step of directly producing a digital difference signal in the floating-point format from said second code sequence;
(e) a step of converting said first signal sample sequence in the integer format into a second signal sample sequence in the floating-point format; and
(f) a step of combining said second signal sample sequence in the floating-point format and said difference signal in the floating-point format to reproduce an original digital signal sequence in the floating-point format.
15. A lossless decoding method for a signal in a floating-point format according to
a step of decoding and expanding a first part of said second code sequence into a bit sequence containing a number of bits capable of assuming non-zero, the number of bits being uniquely determined by the bit position of the most significant 1 in each sample in said first signal sample sequence in the integer format;
a step of decoding and expanding a second part of said second code sequence into a bit sequence containing a number of bits capable of assuming non-zero, the number of bits being uniquely determined by the difference between the number of bits of a sample in said first signal sample sequence in the integer format and the number of bits of a mantissa of an original signal sample sequence in the floating-point format; and
a step of combining the bit sequence resulting from the decoding and expansion of the first part of the second code sequence and the bit sequence resulting from the decoding and expansion of the second part of the second code sequence to produce said difference signal.
16. A decoding program that makes a computer execute each step of a decoding method for a digital signal in a floating-point format according to
17. A computer-readable recording medium that stores a program according to
18. A decoder for a signal in a floating-point format, comprising:
a first expanding part that decodes and expands an input first code sequence to produce a first signal sample sequence in an integer format;
a second expanding part that decodes and expands an input second code sequence in a difference signal into a bit sequence containing a number of bits capable of assuming non-zero, the number of bits being determined by the bit position of the most significant 1 in the corresponding sample in said first signal sample sequence in the integer format, and assembles the bits sequences resulting from the decoding and expansion into a difference signal in the floating-point format;
a third expanding part that directly decodes and expands said input second code sequence into said difference signal in the floating-point format;
a selecting part that selects one of said second expanding part and said third expanding part based on said first signal sample sequence or an input auxiliary code; and
a combining part that combines said first signal sample sequence in the floating-point format and said difference signal in the floating-point format received from the selected one of said second expanding part and the third expanding part to produce a third signal sample sequence in the floating-point format.
19. A lossless coder for a signal in a floating-point format, comprising:
first coding means of separating an input first signal sample sequence in the floating-point format into an integer value and an error and losslessly compression-coding the integer value and the error;
second coding means of directly losslessly compression-coding said first signal sample sequence in the floating-point format; and
analyzing and selecting means of determining or estimating which of said first coding means and said second coding means provides higher compression efficiency, selecting the coding means determined or estimated to provide higher compression efficiency, and producing an auxiliary code carrying information about the selection result.
20. A lossless coder for a signal in a floating-point format, comprising:
a first coding part that converts an input first signal sample sequence in the floating-point format into a second signal sample sequence in an integer format and losslessly compresses the second signal sample sequence;
a difference producing part that produces a difference signal in the floating-point format that corresponds to the difference between said second signal sample sequence in the integer format and said first signal sample in the floating-point format;
a second coding part that directly codes said difference signal in the floating-point format;
a third coding part that codes a range of bits capable of assuming non-zero in each sample of said difference signal, the range of bits being determined by the bit position of the most significant 1 in the corresponding sample in said signal sample sequence in the integer format; and
means of determining or estimating which of said second coding part and said third coding part provides higher compression efficiency, and selecting and outputting the code from the coding part determined or estimated to provide higher compression efficiency.
21. A decoder for a signal in a floating-point format, comprising:
first decoding means of directly losslessly decoding and expanding an input code sequence into a signal sample sequence in the floating-point format;
second decoding means of separating the input code sequence into an integer value and an error and losslessly decoding and expanding the integer value and the error to produce a digital signal sequence in the floating-point format; and
selecting means of selecting one of said first decoding means and said second decoding means based on an input auxiliary code.
Description The present invention relates to a coding method for compressing a floating-point signal sample sequence carrying sound, music or image information into a code of smaller information quantity without distortion, a corresponding decoding method, a coding apparatus therefor, a decoding apparatus therefor, and programs therefor and a recording medium therefor. As a method for compressing sound or image information, there is known a lossless coding method that involves no distortion. Highly compressive lossless data compression can be achieved by combining a highly compressive lossy coding and a lossless compression of the difference between a reproduced signal of the lossy coding and the original signal. Such a combined compression method has been proposed in the patent literature 1. The method, which is described in detail in the patent literature, will be described briefly below. In a coder, a frame forming part successively separates digital input signals (referred to also as an input signal sample sequence) into frames, each of which is composed of 1024 input signal samples, for example, and the digital signals are lossily compression-coded on the frame basis. This coding can be based on any format that is suitable for the input digital signal and can reproduce the original digital input signal with a certain fidelity by decoding. For example, if the digital input signal is a sound signal, a speech coding recommended according to ITU-recommendation G.729 can be used. If the digital input signal is a music signal, a transform-domain weighted interleaved vector quantization (Twin VQ) coding used in MPEG-4 can be used. The code resulting from the lossy compression coding is locally decoded, and a difference signal that represents the difference between the locally decoded signal and the original digital signal is produced. Actually, however, there is no need of local decoding and, instead, it would suffice to obtain the difference between the original digital signal and a quantized signal resulting during the lossy compression coding. The amplitude of the difference signal is typically much smaller than that of the original digital signal. Thus, the quantity of information can be reduced by the lossless compression coding of the difference signal, compared with the lossless compression coding of the original digital signal. To enhance the efficiency of the lossless compression coding, for a sequence of all the samples of the difference signal in a frame each expressed by sign and magnitude notation (a binary number of sign and magnitude), bits of each position, that is, bits of each of the MSB, the second MSB, . . . , and the LSB are linked along the sample sequence (that is, the time series) to form a respective bit sequence. In other words, the bit arrangement is transformed. For convenience, the bit sequence composed of linked 1024 bits at the equal bit position is referred to as a coordinate bit sequence. On the other hand, a one-word bit sequence representing the amplitude value of each sample including its sign is referred to as an amplitude bit sequence, for convenience. The difference signal has a small amplitude, and therefore, the most significant bit is, or the most significant bit and the following plural bits are, often all 0. Thus, by representing the coordinate bit sequence formed by linking the bits at such a bit position, the efficiency of the lossless compression coding of the difference signal can be enhanced. The coordinate bit sequence is losslessly compression-coded. As the lossless compression coding, an entropy coding, such as Huffman coding and arithmetic coding, can be used which takes advantage of the occurrence or frequent occurrence of a sequence in which the same sign (1 or 0) successively appears. When decoding, the code resulting from the lossless compression coding is decoded, and the inverse transformation of bit arrangement is performed on the decoded signal. That is, the coordinate bit sequences are transformed into the amplitude bit sequences for each frame, and the resulting difference signals are reproduced sequentially. In addition, the code resulting from the lossy compression coding is decoded, the decoded signal and the reproduced difference signal are summed together, and then, the sum signals for each frame are linked together sequentially, thereby reproducing the original digital signal sequence. Besides, there are known a variety of lossless coding methods for audio or visual information that permit no distortion. For example, a lossless coding method for music information is disclosed in the non-patent literature 1. Any conventional methods are such one that performs compression coding on a PCM signal directly derived from a signal waveform. However, in music recording studios, a waveform is sometimes recorded and stored in the floating-point format. Any value in the floating-point format is separated into a sign, an exponent and a mantissa. For example, in the IEEE-754 standard floating-point format shown in According to the IEEE-754 standard, E In the case where sound, music or image information is represented by a digital signal sequence in the floating-point format, the bit sequence composed of 0s and 1s is likely to be random because of the characteristics of the floating-point format. Thus, even if the bit arrangement transformation described above is performed, the entropy compression coding or the like cannot be expected to provide a high compression ratio. Furthermore, the sample sequence in the floating-point format significantly differs from the original analog waveform, so that there is no redundancy resulting from correlation between samples. Therefore, even if the lossless predictive coding method disclosed in the non-patent literature 1 described above is applied, a higher compression ratio cannot be expected. Patent literature 1: JP Application Kokai Publication No. 2001-44847 Non-patent literature 1: Lossless Compression of Digital Audio by Mat Hans, Ronald W. Schafer et al., IEEE SIGNAL PROCESSING MAGAZINE, JULY 2001, pp. 2132 An object of the present invention is to provide a lossless coding method and a lossless decoding method for a signal sample sequence in a floating-point format, apparatus therefor, programs therefor, and a recording medium therefor. A lossless coding method for a signal in a floating-point format according to a first aspect of the present invention comprises: (a) a step of converting a first signal sample sequence in the floating-point format into a second signal sample sequence in an integer format; (b) a step of losslessly compressing the second signal sample sequence in the integer format to produce a first code sequence; (c) a step of producing a difference signal in the floating-point format that corresponds to the difference between the second signal sample sequence in the integer format and the first signal sample sequence in the floating-point format; (d) a step of determining which coding processing is of higher compression efficiency, a first coding processing that codes a range of bits capable of assuming non-zero in a sample of the difference signal in the floating-point format, the range of bits being determined by the bit position of the most significant 1 in the corresponding sample in the second signal sample sequence in the integer format, or a second coding processing that directly codes the difference signal; and (e) a step of coding the difference signal by the first coding processing to produce a second code sequence if the result of the determination indicates the first coding processing, or coding the difference signal by the second coding processing to produce a second code sequence if the result of the determination indicates the second coding processing. A lossless coding method for a signal in a floating-point format according to a second aspect of the present invention comprises: (a) a step of determining which compression is of higher compression efficiency, a direct compression of a first signal sample sequence in the floating-point format on a frame basis or a dual-signal separate compression of an integer-value sample sequence and a difference signal derived from the first signal sample sequence; (b) a step of performing the dual-signal separate compression if the result of the determination indicates the dual-signal separate compression, the step (b) comprising: (b-1) a step of converting the first signal sample sequence into a second signal sample sequence in an integer format; (b-2) a step of losslessly compressing the second signal sample sequence in the integer format to produce a first code sequence; (b-3) a step of producing a difference signal in the floating-point format that corresponds to the difference between the second signal sample sequence in the integer format and the first signal sample sequence in the floating-point format; and (b-4) a step of producing a second code sequence from the difference signal in the floating-point format; or (c) a step of directly losslessly compressing the first signal sample sequence to produce a third code sequence if the result of the determination indicates the direct compression; and (d) a step of producing an auxiliary code that indicates whether the direct lossless compression or the separate compression of two types of signals is performed. According to the first aspect of the present invention, if the average amplitude of the input signal sample sequence X in the floating-point format is greater than a predetermined value, the signal sample sequence X is directly losslessly coded, and if the average amplitude is equal to or smaller than the predetermined value, the input signal sample sequence X is separated into an integer-value sample sequence and a difference signal, and the integer-value sample sequence and the difference signal are coded separately. Thus, the coding efficiency can be improved. According to the second aspect of the present invention, in the case where the input signal sample sequence X in the floating-point format is separated into the integer-value sample sequence Y and the difference signal Z, which are separately coded, a case in which only the bits capable of assuming non-zero in the difference signal are coded and a case in which the difference signal is directly coded are compared in terms of compression efficiency, and one of the codes which is of higher compression efficiency is adopted. Thus, the coding efficiency can be further improved. While the present invention can be applied also to an image signal, a sound signal or the like, the following description will be made mainly with regard to embodiments in which the present invention is applied to a music signal. In addition, while various kinds of floating-point formats can be used, the following description will be made on the assumption that the 32-bit floating-point format according to the IEEE-754 standard is used. For example, a signal source The input signal sample sequence X is analyzed by the analyzing and selecting part For example, if the integer part of each sample in the input signal sample sequence X is represented by a 16-bit binary number, the predetermined value used as a criterion for the determination in the determination part In the dual-signal coding part As an example, truncation will be described with reference to To represent a waveform in the floating-point format, normalization may be performed so that an integer value of 32768 (=2 If the exponent value E is 147, for example, the bit adjacent the decimal point on its higher order side is the 20th (147−120=20) bit from the MSB in the mantissa. As shown in Furthermore, the resulting integer value is converted into a two's complement notation. That is, the sign bit S of each signal sample sequence X in the floating-point format is used as it is as the most significant bit, and as for the other 23 bits, if the sign S is 0 (positive), the 23 bits shown in The above description has been made generally on the assumption that the mantissa M contains 0 or more bits corresponding to the fractional part, and a 32-bit digital signal sample in the floating-point format is converted into a 24-bit digital signal sample in the integer format. However, for example, in the case where a plurality of raw signals in the 24-bit integer format are mixed for processing, one sample may have an amplitude value that is significantly greater than the maximum value that can be represented by 24 bits. In such a case where E≧150, as an exceptional processing, the value of the exponent E is fixed to 150 (E=127+23=150) in the example described above, an exception signal y is provided to the difference producing part The integer formatting part In the above description, the mantissa M is shifted by (23−n) bits to provide a 24-bit absolute value sample in the sign and magnitude binary notation. Alternatively, most significant n bits (n=E−E The integer-value signal sample sequence Y produced by the integer formatting part The difference producing part In the case where the digital signal sample in the integer format is composed of 24 bits, the floating-point formatting part The above description concerning the difference producing part The compressing part When the absolute value X When the absolute value X When the absolute value X When the absolute value X Since the difference signal Z is produced by subtracting the sample sequence Y′ in the 32-bit floating-point format converted from the integer-value signal sample sequence Y from the input sample sequence X in the 32-bit floating-point format, the difference signal Z is as shown in In the case where the absolute value X In the case where the integer value X Similarly, in the case where the integer value X Because of such a relationship, the compressing part As described above, when the value of E−E The sign S is contained in the code Ca as a result of coding of the signal sample sequence Y in the integer format, and therefore, there is no need of coding and transmitting the sign S when coding the difference signal Z. In addition, since the n (=E−E The difference signal Z sometimes has a large number of digits following the decimal point, and in such a case, the coding efficiency can be reduced. Thus, in the embodiment shown in As described above, in the exceptional case where the mantissa E of the signal sample sequence X in the floating-point format holds E≧150, the integer formatting part As shown in Code sequences are input at an input terminal The input code sequence Ca input to the dual-signal decoding part The expansion part Based on the number of digits n for the first sample in the frame provided from the expansion part The signal sample sequence Y in the 24-bit integer format from the expansion part The code sequence Cc input to the single-signal decoding part The signal sample sequences X in the floating-point format decoded by the dual-signal decoding part In the coder shown in There are sometimes cases where an original 24-bit or 16-bit integer-value PCM signal is converted into a floating-point number for the purpose of convenience to form a sequence to be coded instead of using an ordinary floating-point number signal to produce a sequence to be coded. In the case of such a special floating-point sequence, the bits that can be non-zero described above with reference to the first embodiment disappear. Thus, the sign S, the exponent E and the mantissa M of the difference (error) signal Z in the floating-point format from the difference producing part According to a second embodiment of the present invention, a signal sample sequence X in the floating-point format is always converted into a signal sample sequence Y in the integer format. However, the difference signal Z in the floating-point format is coded by one of two lossless compression coding processes which is expected to provide a higher compression efficiency. Specifically, one is a process of losslessly coding only the bits capable of assuming non-zero in the difference signal in the floating-point format according to the number of digits of each sample in the signal sample sequence Y in the integer format as described with reference to the first embodiment. The other is a process of directly losslessly compression-coding the difference signal in the floating-point format. If the number of digits n is large, that is, if the amplitude is large, the number of bits h (=23−n) capable of assuming non-zero in each difference signal sample Z is small as described above with reference to For example, the reference value used in the determination part Selection between the compressing parts The number of digits n following the most significant 1 in the digital signal sample in the integer format from the expansion part The expansion part As described above, in this embodiment, although the difference signal Z is in the floating-point format, all the bits of the exponent and sign of the difference signal Z in the floating-point format produced by the difference producing part The expansion part A decoder suitable for the coder shown in The analyzing and selecting part A third embodiment of the present invention is a combination of the first embodiment shown in Selection from among such three code sequence sets can be made by additionally providing the compressing part A decoder according to the third embodiment is shown in According to the first embodiment described above, there is provided a coder that converts the input signal sample X in the floating-point format into the integer format by truncating the fractional part thereof and codes only the bits capable of assuming non-zero in the difference signal Z taking advantage of the fact that all the bits of the integer part in the mantissa of the difference signal Z are 0, thereby improving the compression efficiency. In addition, according to the second embodiment, there is provided a coder that chooses the higher one of the compression efficiency in the case where only the bits capable of assuming non-zero are coded and the compression efficiency in the case where all the bits are coded. According to a fourth embodiment, in addition to truncating the part following the decimal point, a predetermined number of bits of the integer part are also truncated to produce an integer-value signal sample Y. In the example described below, there will be shown a case where, in the conversion into a 16-bit integer value through truncation of bits following the decimal point, 8 bits are further truncated. However, the present invention can be applied to any conversion into an integer value composed of 17 bits to 23 bits. According to the fourth embodiment, the input signal sample X in the floating-point format can be coded through the same process regardless of whether the original signal from which the input signal sample X has been derived is a floating-point signal, a 24-bit integer-value signal or a 16-bit integer-value signal. However, for convenience of explanation of the principle of operation, a case where the input signal sample X is derived from a floating-point signal, a case where the input signal sample X is derived from a 24-bit integer-value signal containing one sign bit, and a case where the input signal sample X is derived from a 16-bit integer-value signal containing one sign bit will be described in order. With reference to Each sample in the 16-bit integer-value signal sample Y is shifted toward the most significant bit position by 8 bits, that is, 8 bits of 0 are added at the bottom of the 16-bit integer-value signal sample Y, and then, the resulting signal sample sequence is converted into a signal sample sequence Y′ in the floating-point format. Thus, the exponent E of the resulting signal sample sequence Y′ in the floating-point format has been added with 8 and equals to the exponent E of the input signal sample sequence X. The mantissa My of the signal sample sequence Y′ is formed by setting, as the most significant bits, the bits of the integer part that follow the most significant 1 of the integer-value signal sample sequence Y having been shifted toward the most significant bit position by 8 bits, that is, the 2 bits xx in this example, and setting all the following bits at 0. For convenience, As for the difference signal Z, only the least significant 23−(n−8) bits of the mantissa M that can be non-zero have to be coded. The number of the most significant (n−8) bits of the mantissa M However, the mantissa M In As can be apparent from the above description, whether the input signal sample in the floating-point format is derived from a 24-bit integer-value signal, a 16-bit integer-value signal or a floating-point signal, the 16-bit integer-value signal sample Y can be produced through 8-bit truncation by shifting the decimal point toward the most significant bit position by 8 bits by reducing the exponent E of the input signal sample X to E−8, adding 1 at the top of the most significant (n−8) bits constituting the integer part of the mantissa M The 16-bit integer-value signal sample Y thus obtained can be compression-coded in the same manner as in the embodiment shown in In the examples described above, the 16-bit integer value is produced by shifting the decimal point in the 23-bit mantissa toward the most significant bit position by 8 bits and truncating the bits following the shifted decimal point. In general, m bits (m: any integer falling within a range 22≧m≧8) can be truncated by reducing the exponent E of the input signal sample to E-m and adopting the most significant (n-m) bits of the resulting mantissa M An inverse digit adjusting part The compressing part Therefore, the compressor As shown in A digit adjusting part In the above description, the signal sample sequence Y in the integer format is a 16-bit sample or a 24-bit sample. However, the number of bits contained in the signal sample Y may be any number m equal to or less than 24, and depending on the value of m, the number of digits capable of assuming non-zero in each signal sample Y in the integer format can be determined. Furthermore, in the example described above, a sequence of input signal samples X in the floating-point format may be divided into frames of 1024 samples, for example, or into blocks of consecutive samples, and compression coding may be performed for each of such divisional units. In the case where compression coding is performed on a divisional-unit basis, the number of bits converted into the integer format may be suitably determined for each divisional unit, and an auxiliary code that specifies that number of bits may be output. As the compressing part In the embodiments described above with reference to The bit length h (=23−n) of the fractional part varies with the sample. Thus, in scanning the bits at the bit position j(j=0 to h For example, in the scanning, in the time-axis direction, of bits at the bit position j=17 from the MSB, the sample i=0, whose bit length h of the fractional part is 23−6=17, has the least significant bit at the bit position j. However, the sample i=1, whose bit length of the fractional part is 23−8=15, has no bits following the 15th MSB (or bit position j=14). Thus, the sample i=1 is skipped. The extracted 15th bits are grouped for the frame to form a bit sequence E On the decoder side, the number of digits n of the integer part can be determined from the number of bits n following the most significant 1 in each decoded integer-value signal sample Y, and therefore, the bit length h (=23−n) of the fractional part of the mantissa of each difference signal Z in the frame can be determined. Thus, for each of the decoded bit sequences E In the coding of the mantissa of the difference signal shown in In the case where the input signal sample sequence X is a signal sample sequence in the floating-point format that is converted from the integer format, and the number of digits of the original integer value differs from the number of digits of the truncated integer value, that is, in the case where a signal sample sequence in the floating-point format directly converted from a 24-bit integer-value signal sample sequence is coded into a 16-bit integer-value signal sample sequence through truncation as described with reference to As is performed in the audio signal processing as required, for example, if a 24-bit integer-value signal sample is increased 1.5-fold (or 1.1-fold in binary notation), the resulting signal sample is converted into a signal in the floating-point format, and the resulting signal is coded into a 16-bit integer-value signal through truncation, increasing the 24-bit integer-value signal sample 1.5-fold makes at least the first decimal place be a bit that can be non-zero. Specifically, the first place following the decimal point P In any case, the numbers of digits capable of assuming non-zero in the fractional part of the mantissa of the difference signals counted from the side of the MSB are equal, so that efficient compression coding can be achieved. The mantissa coding methods shown in In addition, the samples can be rearranged for scanning based on the number of digits of the fractional part. For example, the samples whose fractional part is composed of 23 digits are grouped together, the samples whose fractional part is composed of 22 digits are then grouped together, and samples having fractional parts composed of less numbers of digits are grouped together in the same way. The reverse arrangement of the samples can be achieved in a unique manner without the need of any additional information, so that the number of samples to be scanned can be simply managed. In the example shown in This embodiment can be applied to the embodiment shown in As in the case shown in For each frame, the control part The entropy corresponding to the deviation of bits 1 in a frame is represented by the following formula:
Instead of the compressing parts In Thus, rounding is modified as described below. As shown in That is, the sign bit is added at the top of the bits capable of assuming non-zero in each difference signal sample Z, a code designating the number of bits h capable of assuming non-zero is added to the bits and the resulting bit sequence is compression-coded if the integer part M Using the modified rounding described above can make the error energy between the floating-point input and the integer part lower than that in the case of using truncation, and thus, the prediction efficiency for the integer part sequence can be improved. In addition, because only the bits capable of assuming non-zero have to be coded, the efficiency of compression of the difference signal Z by the compressing part For example, as shown by an alternate long and short dash line in In the second embodiment shown in For example, as a method of estimating the efficiency of universal coding on a byte (8-bit) basis, there is a method of calculating the entropy for each byte. An error signal, that is, a difference signal Z in the floating-point format is regarded as an integer value y ranging from 0 to 2 From this density function p(y), an average entropy H(p(y)) is determined.
The universal coding can possibly compress 1 byte of numeral value to about the size of the average entropy (bit). Thus, if the product of the average entropy value and the number of bytes B in the frame is smaller than the total number of bits in one frame resulting from compression coding of only the bits capable of assuming non-zero by the compressing part A configuration of a coder that allows for such selection between compressing parts is shown in If the efficiency of the universal coding is estimated as described above, the processing load can be reduced compared to the case where the difference signal Z is universal-coded, the total number of bits of the resulting code within one frame is determined, and the analyzing and selecting part In the above description, the samples in the signal sample sequence Y in the integer format have been 16-bit samples or 24-bit samples. However, the samples in the signal sample sequence Y may be composed of any number of bits equal to or less than 24, and based on the number of bits, the number of bits capable of assuming non-zero in each sample in the digital signal sample sequence Y in the integer format, which depends on the number of bits of each sample, can be determined. In this way, if the compression coding is performed on a divisional-unit basis, the number of bits to be converted into the integer format can be conveniently determined, and an auxiliary code that designates the number of bits can also be output. [Implementation by Computer] As shown in The ROM The signal sample sequence X in the floating-point format to be coded is externally received at the audio/video input/output part Similarly, in order to implement the decoder shown in The present invention can be applied not only to music signals but also to sound signals, image signals and the like. Patent Citations
Non-Patent Citations
Referenced by
Classifications
Legal Events
Rotate |