WO2006041165A1 - 情報符号化方法、復号化方法、共通乗数推定方法、これらの方法を利用した装置、プログラム及び記録媒体 - Google Patents

情報符号化方法、復号化方法、共通乗数推定方法、これらの方法を利用した装置、プログラム及び記録媒体 Download PDF

Info

Publication number
WO2006041165A1
WO2006041165A1 PCT/JP2005/018978 JP2005018978W WO2006041165A1 WO 2006041165 A1 WO2006041165 A1 WO 2006041165A1 JP 2005018978 W JP2005018978 W JP 2005018978W WO 2006041165 A1 WO2006041165 A1 WO 2006041165A1
Authority
WO
WIPO (PCT)
Prior art keywords
quotient
signal sequence
signal
error
multiplier
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/JP2005/018978
Other languages
English (en)
French (fr)
Inventor
Noboru Harada
Hiroshi Sekigawa
Takehiro Moriya
Kiyoshi Shirayanagi
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NTT Inc
Original Assignee
Nippon Telegraph and Telephone Corp
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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to US11/576,496 priority Critical patent/US7408481B2/en
Priority to JP2006540987A priority patent/JP4324200B2/ja
Priority to EP05793612.2A priority patent/EP1801691B1/en
Priority to CN2005800335269A priority patent/CN101036113B/zh
Publication of WO2006041165A1 publication Critical patent/WO2006041165A1/ja
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/26Pre-filtering or post-filtering
    • G10L19/265Pre-filtering, e.g. high frequency emphasis prior to encoding
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • G10L19/032Quantisation or dequantisation of spectral components
    • G10L19/035Scalar quantisation
    • 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/14Conversion to or from non-weighted codes
    • H03M7/24Conversion to or from floating-point codes
    • 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

Definitions

  • the present invention transmits a plurality of sample values of sound signals such as voice and music and image signals (hereinafter referred to as information signals) via a communication channel or when recording them on an information recording medium.
  • Information compression coding method used to increase efficiency or reduce recording capacity, decompression decoding method thereof, method for estimating a common multiplier for a plurality of information sets used for the information compression code,
  • the present invention relates to an apparatus, a program, and a recording medium using the method.
  • the acoustic signal picked up by a microphone or the like is sampled at a sampling frequency f and the number of quantization bits q, and each sample value is input as a digital sample converted into a digital value.
  • gain adjustment is often performed by multiplying each analog sample by a common constant! ,.
  • constants are multiplied in the analog domain before analog-to-digital conversion is performed, and then analog-to-digital conversion is performed!
  • errors may be included in the analog signal domain.
  • a two-dimensional image signal is raster-scanned to obtain a one-dimensional sample sequence, and each sample is obtained when acquiring the original image signal.
  • the gain is adjusted by multiplying the common constant by the same number.
  • Each sample sO (i) in the original sample sequence is multiplied by the real number G as a gain.
  • the sample si (i) obtained by multiplying this real number G is often expressed in binary representation or binary floating-point representation in IEEE754 format, and these digital sample sequences are often encoded.
  • the floating-point format is 32 bits as shown in Figure 1. It consists of high-order bits, polarity 1 bit, exponent 8 bits, mantissa 23 bits. If the polarity is S, the value represented by the 8-bit exponent part is E in decimal, and the binary number in the mantissa is M, this floating-point number is expressed in absolute value as a binary number.
  • a conventional compression coding method for example, the method shown in Document 1, mainly reduces the amount of information by removing the redundancy of the original input waveform (eg, music signal waveform) of the input sample sequence. Met. Also, the amplitude (bit length) of the input waveform that can be encoded by the encoding device is determined to be 16 bits, for example. Therefore, for example, when the bit length is 24 bits, the upper 16 bits are encoded, and the lower 8 bits are output as they are, or are separately compressed and output.
  • Non-Patent Document 2 Dai Yang and Takehiro Moriya: Lossless Compression for Audio Data in the IEEE Floating-Point Format, AES Convention Paper 5987, AES 115th Convention, New York, NY, USA, 2003 OCTOBER 10-13. Disclosure of the invention
  • each sample of the sample string is viewed as a bit string.
  • the sign S can be encoded with a high compression rate.
  • the conventional Euclidean algorithm is relatively easy to process, but when a numerical value is rounded off or includes an error, the greatest common divisor is calculated in consideration of the error. I could't do it.
  • An object of the present invention is to perform coding without increasing the amount of information even when the amplitude (bit length) of the input waveform is larger than the amplitude (bit length) that the compression coding method allows. It is possible to provide sign key technology.
  • a code multiplier that can efficiently compress a sample string regardless of the degree of mixture of bits 0 and 1 constituting an input sample, a decoding technique, and a common multiplier used for the code technique Is to provide technology.
  • the number of sample train forces common to each sample (common multiplier A) is estimated.
  • Each sample is divided by a common multiplier A, the result of the division is compressed, and the compressed encoded code C and at least the estimated multiplier A are output.
  • Multiplier A is a compression mark
  • Decoding is performed by separating code C and multiplier A and decoding code C corresponding to the encoding.
  • the original sample is obtained by multiplying the result of decryption by the common multiplier A. I will.
  • a representative number value is determined from the numerical set. Dividing the positive value of each numerical value by the representative value of positive and negative values (not including error) between the maximum positive error and the maximum negative error by dividing each numerical value by the representative numerical value. Find the irreducible fraction by rational approximation. Then, the smallest denominator in the determined irreducible denominator is obtained for each value, and the common denominator is corrected with the representative value to be a common multiplier.
  • the common redundancy of the original sample sequence can be removed.
  • the entropy of the quotient set can be greatly reduced. As a result, the overall information compression rate can be improved.
  • the present invention when the present invention is applied to an acoustic signal expressed in floating point, the amount of information can be compressed on average from 1Z2 to: LZ3 as compared with the conventional method.
  • FIG. 2 is a diagram illustrating an example of a functional configuration of the first embodiment of the sign key device.
  • FIG. 3 is a flowchart showing an example of the processing procedure.
  • FIG. 4 is a diagram illustrating a functional configuration example of the first embodiment of the decoding device.
  • FIG. 5 is a flowchart showing an example of the processing procedure.
  • FIG. 6A is a diagram showing a specific numerical example for explaining the effect of the present invention, and is a diagram showing an example of a sample row.
  • Figure 6B shows specific numerical values for explaining the effect of the present invention. It is a figure which shows an example, Comprising: The figure which shows the example which divided the sample row
  • FIG. 6C is a diagram showing a specific numerical example for explaining the effect of the present invention, and is a diagram showing an example of a divided sample sequence.
  • FIG. 7A is a diagram showing another specific numerical example for explaining the effect of the present invention, and is a diagram showing an example of a sample string.
  • FIG. 7B is a diagram showing another specific numerical example for explaining the effect of the present invention, and is a diagram showing an example of a divided sample sequence.
  • FIG. 8 A diagram illustrating an example of a functional configuration of a main part of the second embodiment of the sign key device.
  • FIG. 9 is a flowchart showing an example of the processing procedure.
  • Fig. 10 is a diagram illustrating an example of a functional configuration of a main part of the decoding device according to the second embodiment.
  • FIG. 11 is a diagram illustrating an exemplary functional configuration of a third embodiment of the encoding device.
  • FIG. 12 is a flowchart showing an example of the processing procedure.
  • FIG. 13 is a diagram illustrating an exemplary functional configuration of a fourth embodiment of the encoding device.
  • FIG. 14 is a flowchart showing an example of the processing procedure.
  • FIG. 15 is a diagram illustrating an exemplary functional configuration of a fifth embodiment of the encoding device.
  • FIG. 16 is a diagram illustrating an exemplary functional configuration of a sixth embodiment of the encoding device.
  • Fig. 17 is a diagram illustrating an example of a functional configuration of main parts of Embodiment 7 of the encoding device.
  • FIG. 18 is a diagram illustrating an exemplary functional configuration of a decrypting apparatus according to a seventh embodiment.
  • FIG. 20 is a diagram showing a functional configuration example of an embodiment of a decoding device corresponding to FIG.
  • FIG. 21 is a diagram illustrating a functional configuration example of an eighth embodiment of the encoding device.
  • FIG. 22 is a diagram illustrating a functional configuration example of an encoding apparatus according to a ninth embodiment.
  • FIG. 23 is a flowchart illustrating an example of a processing procedure of the tenth embodiment of the encoding device.
  • FIG. 24 is a diagram illustrating a functional configuration example of the eleventh embodiment of the decryption device.
  • FIG. 25 is a flowchart showing an example of a processing procedure of the twelfth embodiment of the decoding apparatus.
  • FIG. 26A is a diagram illustrating a functional configuration example of an encoding apparatus according to a thirteenth embodiment.
  • FIG. 26B is a diagram illustrating a functional configuration example of an embodiment of the decoding apparatus.
  • FIG. 27 is a diagram illustrating a functional configuration example of main parts of Embodiment 14 of the encoding device.
  • FIG. 29 is a diagram showing an example of a functional configuration of Embodiment 16 of the decoding device.
  • FIG. 30 is a diagram illustrating a functional configuration example of an embodiment 17 of the sign key device.
  • FIG. 31 is a diagram showing a functional configuration example of an embodiment 18 of a decoding device.
  • FIG. 32 is a flowchart showing an example of a common multiplier search procedure in the nineteenth embodiment.
  • FIG. 33 is a flowchart showing a modification of the common multiplier check and the quotient signal.
  • FIG. 34 is a flowchart showing an example of performing quotient signal transformation on a floating-point format.
  • FIG. 35 is a flowchart showing an example of processing for converting a floating-point format to an integer format.
  • FIG. 36 is a flowchart showing a processing example of a modification procedure when the quotient signal is positive.
  • FIG. 37 is a flowchart showing a processing example of a modification procedure when the quotient signal is negative.
  • FIG. 38 is a diagram illustrating a functional configuration example for obtaining a common multiplier by rational approximation.
  • FIG. 39 is a diagram showing another example.
  • FIG. 40 is a diagram showing still another example.
  • FIG. 41 is a diagram showing another example of a functional configuration for obtaining a common multiplier by rational approximation.
  • FIG. 42A is a diagram showing a numerical example for obtaining a common multiplier by autocorrelation, and showing autocorrelation results shifted by 1 bit.
  • FIG. 42B is a diagram showing a numerical example for obtaining a common multiplier by autocorrelation, and showing an example in which the number of autocorrelation bits is 1.
  • FIG. 2 shows an example of a functional configuration of Embodiment 1 of the encoding device of the present invention
  • FIG. 3 shows an example of the processing procedure.
  • the input signal sequence X (x (l), x (2), ⁇ ⁇ ⁇ ) from the input terminal 11 is a digitized sample sequence, and when this is input (step S1), the interval
  • the (frame) dividing unit 12 divides the sample into a predetermined number N (eg, 1024) sample strings, which are not shown in the figure and stored in the storage unit.
  • N eg, 1024
  • the sample sequence may be an integer sample sequence quantized with a 24-bit quantization bit number or a 32-bit single-precision floating-point format sample sequence.
  • a color image signal there is a digitized sample sequence of pixel information which is decomposed into each color information element and raster scanned.
  • the remainder (error) z (i) obtained by dividing x (i) by A is also separated.
  • the input signal sequence X is passed to the multiplier estimation unit 110 for each divided frame.
  • ACF approximate common factor
  • the multiplier A determined by the multiplier estimation unit 110 is passed to the division processing unit 120, the multiplication unit 130, and the A code unit 15.
  • y (i) may be in integer format, floating point format, or fixed point format.
  • rounding such as rounding up, rounding up, rounding off, nearest tie to even may be performed.
  • X (i) is converted into a double-precision floating point number (here, 64-bit floating point number) and divided by the multiplier A.
  • the obtained double-precision quotient is rounded to the nearest single-precision (32-bit) floating point number to obtain the quotient signal y (i).
  • the quotient signal sequence Y (y (0), y (l), ..., y ( ⁇ —1)) consisting of N quotient signals y (i) obtained by the division processing unit 120 is expressed as To the multiplication unit 130 in this example.
  • the multiplication unit 130 multiplies each of the N signals y (i) of the quotient signal sequence Y passed from the division processing unit 120 by the multiplier ⁇ passed from the multiplier estimation unit 110 to restore the restored N number of signals. Sump X, (i) is obtained (step S5).
  • the restored sample x ′ (i) is rounded to a range of values that can be expressed in 32-bit floating-point representation.
  • the result of multiplying y (i) and A is stored as a double-precision (64-bit) floating-point number, and the resulting double-precision multiplication result is the closest single-precision (32-bit) floating point. Rounded to a number, let x '(i).
  • the obtained sample sequence X ′ ( ⁇ ′ (0), ⁇ , (1),..., ⁇ , (N ⁇ 1)) is passed to the error calculation unit 140.
  • the error calculation unit 140 subtracts the N restored samples x ′ (i) passed from the power multiplication unit 130 from each of the ⁇ ⁇ ⁇ ⁇ samples x (i) taken from the input signal to obtain N error signals z (
  • An error signal sequence Z (z (0), z (l),..., z (N—1)) is obtained (step S6).
  • an exclusive OR operation (xor) in units of bits of x (i), x, and (i) may be performed as they are. In short, it is only necessary to perform the difference operation between x (i) and x '(i).
  • the obtained error signal sequence Z is passed to the Z code key unit 14 in this example.
  • the multiplier A from the multiplier estimation unit 110 is also input to the A sign key unit 15.
  • the Y encoding unit 13, the Z encoding unit 14, and the A encoding unit 15 encode the codes obtained by compressing and encoding the respective input signal sequences Y, Z, and A using the existing information compression method.
  • the Y code key 13 includes a high compression rate encoding method using the correlation of waveform values, for example, various lossless compression codes shown in Non-Patent Document 1, or lossy compression codes such as MPEG4, AAC, and TwinVQ. You may use the ⁇ method.
  • the A code key unit 15 uses a reversible compression code key method.
  • the multiplier A is small enough to ignore the amount of information compared to the quotient signal sequence Y and the error signal sequence Z. In this case, as shown by the broken line 21, the multiplier A is calculated without providing the A encoding unit 15. The data may be input to the synthesis unit 16 as it is.
  • the error signal sequence Z may not have sufficient compression gain depending on the nature of the input signal x (i), and the influence of an increase in the computation amount may become large.
  • the Z encoding unit 14 may be omitted, and the error signal sequence Z may be directly input to the combining unit 16 as indicated by a broken line 22.
  • the Z code key unit 14 uses, for example, the entropy code key method, but it is also possible to perform the entropy code using only the upper bits in the error signal z (i) and perform lossy compression coding.
  • the error signal z (i) can always be zero, or that z (i) does not substantially affect the playback quality.
  • the error signal sequence Z may be discarded as indicated by a dashed line X23. In this case, the Z encoding unit 14 is omitted, and the encoded data C does not include the code C.
  • FIG. 4 shows an example of the functional configuration of the decoding apparatus according to the first embodiment
  • FIG. 5 shows an example of the decoding method (processing procedure).
  • Code key data C from the input terminal 51 has the same number of samples as that of the key key device as one frame.
  • the unit 52 separates the encoded data C into code C, code C, and code C for each frame.
  • Y decoding unit 53, Z decoding unit 54, and A decoding unit 55 correspond to the compression encoding methods of Y encoding unit 13, Z encoding unit 14 and A encoding unit 15, respectively.
  • the decompression decoding method is used.
  • Each decoding unit 53 to 55 decodes the input code, respectively, so that a quotient signal sequence Y, an error signal sequence ⁇ ⁇ , a common multiplier corresponding to each input of the encoding units 13 to 15 Seek out (Step S13).
  • each code part 13 to 15 uses a lossless encoding method.
  • Residue combination processing section 200 combines these decoded signals.
  • the multiplier 210 performs the multiplication A passed from the A decoder 55 on the N quotient signals y (i) passed from the Y decoder 53 by the multiplier 130 of the encoder. Multiply in the same way to obtain N signals x, (i) (step S14). At this time, x and (i) are rounded to the range of values that can be expressed in 32-bit floating-point representation. For example, the result of multiplying y (i) and A is stored as a double-precision (64-bit) floating-point number, and the resulting double-precision multiplication result is the closest single-precision (32-bit) floating-point number. Rounded to a number, let x '(i).
  • the error correction unit 220 corrects the N samples x and (i) from the multiplication unit 210 using an error signal z (i) of 54 Z decoding units, respectively, to obtain the original signal x Restore (i). In other words, when the x (i) force x ′ (i) is subtracted by the sign ⁇ device, the error signal z (i) corresponding to each x ′ (i) is added.
  • bitwise exclusive OR (xor) of x (i) and x '(i) is performed in the sign unit, refer to each bit of the corresponding error signal z (i) z Invert the bit of x and (i) where (i) becomes 1 to obtain X (i).
  • the multiplier A separated by the separation unit 52 is directly input to the multiplication unit 210 as indicated by a broken line 61 in FIG.
  • the encoder error signal z (i) is not signed
  • z (i) separated by the separation unit 52 is directly input to the error correction unit 220 as indicated by a broken line 62.
  • the encoding device can further reduce the amount of information if the multiplier A is the same as the multiplier A obtained in the previous frame.
  • a register 15a and a determination unit 15b are provided in the code device.
  • the register 15a stores the multiplier A of the previous frame
  • the determination unit 15b compares the multiplier A of the current frame with the multiplier A of the previous frame. If they are the same, only one bit indicating that is output as code C. to this
  • the register 55a for storing the multiplier A of the previous frame in the decoding unit 55 and the code C
  • a determination unit 55b for outputting the multiplier A in the register 55a to the multiplication unit 210 without performing the decryption process is required.
  • code C indicates whether multiplier A is the same as the previous frame.
  • the amount of information can be reduced compared to the case where the multiplier A is not coded with the 1 bit shown.
  • FIG. Fig. 6 shows an example when the input signal x (i) is expressed in binary.
  • Each representation is a relatively random arrangement of “0” and “1”.
  • Figure 7 shows an example applied to a sample sequence of IEEE-754 floating point numbers.
  • Decimal numbers 478.4, 95.68, and 669.76 floating / J decimal points the representation of the mantissa's 23-bit “1” and “0” arrays are fairly random, as shown in Figure 7A. Then, when these are divided by the common multiplier 2.99, the quotient signal becomes 160, 32, 224 in decimal notation as shown in Fig. 7B. If these are expressed as floating point numbers, the 23-bit array of “1” and “0” in the mantissa part is “1” only for the upper 2nd bit, “0” for the second, and the second is all zero. Is “1” only in the first and second bits. Therefore, it is possible to compress significantly higher than when compressing as shown in FIG. 7A.
  • x (i) varies depending on what significant digits and rounding means the input signal is generated.
  • rounding process when performing a floating-point operation, it is possible to perform the operation with single precision or to round the result of multiplication with double precision to single precision.
  • Rounding processing includes rounding off to a predetermined significant digit, rounding off, nearest tie to even, and rounding up. Therefore, when multiplying the quotient signal y (i) by the multiplier A to generate x '(i), the same method as that used when the input signal x (i) was generated should be estimated and used. To minimize the error z (i). Specifically, the calculation accuracy (significant digit) and the rounding methods are considered, and the method with the smallest error z (i) is selected. select. Specific examples will be described below.
  • the multiplication unit 130 of the remainder separation processing unit 100 includes a digit setting unit 130a and a rounding setting unit 130b.
  • Effective digit / rounding control unit 150 sets the number of effective digits and the rounding method in digit setting unit 130a and rounding setting unit 130b (step L1).
  • the multiplication unit 130 multiplies the quotient signal y (i) and the multiplier A by the double precision of the set effective number of digits, and performs the single precision rounding on the multiplication result by the set rounding method ( Step L2).
  • the difference between x ′ (i) and the input signal x (i) is obtained by the error calculation unit 140, and the error signal z (i) is stored in the storage unit 150a in the significant digit rounding control unit 150. (Step L3).
  • the significant digit / rounding control unit 150 checks whether or not the processing in the multiplying unit 130 has been performed for all of the assumed various rounding methods for each assumed number of significant digits (step S110). (L4). If no, return to step L1. If Yes, the significant digit / rounding control unit 150 sets the number of significant digits and the rounding method corresponding to the smallest one in the error signal z (i) in the storage unit 150a in the multiplication unit 130 (step L5). Then, a process for obtaining the error signal z (i) for all the samples of the frame is performed. Also, information indicating the set number of significant digits and the rounding method is input to the synthesizer 16 with the auxiliary code C (step L6).
  • the residue combination processing unit 200 of the decoding apparatus in this case includes a multiplication unit 210 having a B decoding unit 58, a digit setting unit 210a, and a rounding setting unit 210b as shown in FIG.
  • the B decoding unit 58 decodes the code C separated by the separation unit 52. The number of significant digits and the rounding method
  • Multiplying section 210 multiplies decoded quotient signal y (i) and decoded multiplier A based on these setting information.
  • the error signal z (i) output from the error calculation unit 140 on the sign side is minimized.
  • the part for modifying the quotient signal y (i) obtained by the division processing unit 120 is different from that in the first embodiment (FIG. 2).
  • y (i) when y (i) is calculated up to a specified significant digit by the division processing unit 120, if rounding is performed or rounded off at a digit lower than the significant digit, y (i) includes a rounding error. .
  • a rounding error may occur when multiplying y (i) decoded by the multiplier 210 and the decoding multiplier A in the decoding key procedure of the decoding key device (FIG. 4). This two rounding process may accumulate errors and increase the error signal z (i).
  • y (i) is transformed into y '(i) in consideration of rounding errors caused by multiplication processing at the time of decoding, whereby the information amount of the error signal z (i) is reduced. Try to reduce.
  • the quotient signal y (i) is transformed independently for each input sample X (i), and the transformation error signal that minimizes the error signal z (i) is y '(i).
  • the division processing unit 120 divides x (i) by A, and passes the rounded quotient signal y (i) to the transformation processing unit 160.
  • the transformation processing unit 160 transforms y (i) passed from the division processing unit 120 and determines y ′ (i) transformed so that z (i) is minimized.
  • the procedure for determining y '(i) is briefly described with reference to FIG. (Details will be described later.) It is checked whether the absolute value of the input signal sample x (i) is larger than the absolute value I Ay ′ (i) I of the multiplication result of the multiplier 130 (step LI 1). If larger, 1 is added to the least significant bit of y, (i) (step L12). For example, y '(i) is expressed in binary number
  • step L11 If I x (i) I is not greater than I Ay, (i) I in step L11, 1 is subtracted from the least significant bit of y, (i) (step L13). After step L12 or L13, the modified y, (i ) And multiplier A are multiplied by multiplication section 130 (step L14). It is checked whether the absolute value I Ay, (i) I of the multiplication processing result is equal to the absolute value I x (i) I of the input sample (step L15). If they are not equal, it is checked whether or not the determination in step L11 has changed (step L16).
  • the previous error signal z (i ) is output to the Z code part 14, and the corresponding y '(i) is output to the Y code part 13 (step L17). Therefore, the error signal z (i) from the error calculation unit 140 is always held for the previous time so that it can be compared and output in step L17. Note that y (i) is used as the initial value of y '(i).
  • the deformation processing unit 160 includes a determination unit 160a that performs the determination of steps Ll l, L15, L16, and L17, a modification to the previous y ′ (i) in steps L12 and L13, and an increase / decrease unit 160b that holds the same, and step L An error signal storage unit 160c required for 17 is provided.
  • z (i) is fed back to the deformation processing unit 160 so that the same deformation processing as in step L12 or L13 is performed based on the polarity (sign) of the output z (i) from the error calculation unit 140, and the error signal z ( y '(i) may be determined such that i) is minimized.
  • y ′ (i) is determined by increasing / decreasing the minimum significant digit of y (i) by the smallest unit so that the error signal z (i) is minimized.
  • y ′ (i) with the smallest 1 may be selected from the bits of the component.
  • y ′ (i) obtained by transforming y (i) is input to the Y code key section 13.
  • the division processing unit 120 does not perform rounding, calculates the division result with a precision of more significant digits than the desired significant digit of y (i), and calculates an error based on rounding with respect to the multiplication result in the multiplication unit 130.
  • Y '(i) can be obtained by transforming y (i) so that the entire error signal z (i) including is minimized! ,.
  • the modification process may be performed even if the rounding process is performed in the division processing unit 120. You can go with part 160 at the same time as the deformation.
  • the quotient signal y (i) is also transformed, but the evaluation scale for determining y ′ (i) is different from that in the third embodiment.
  • the deformation processing unit 170 when the lossless encoding is used in the Y encoding unit 13 and the Z encoding unit 14, the total code amount of the code C and the code C is the smallest.
  • y (i) is transformed into y '(i). For example, by changing the significant digits of y ′ (i) within a predetermined range, a search is made for y ′ (i) that minimizes the total sum of output code sizes.
  • FIG. 13 shows an example of the functional configuration of the main part
  • FIG. 14 shows an example of the processing procedure.
  • the quotient signal y (i) from the division processing unit 120 is input to the transformation processing unit 170.
  • y (i) and the corresponding error signal z (i) are encoded (step L21).
  • the added code amount (number of bits) V + V between V and the code amount V of code C is obtained (step L22).
  • the least significant bit of y (i) is modified in advance by a minimum unit, for example, 1 is added (step L23).
  • the modified quotient signal y ′ (i) and the error signal z (i) obtained based on this y ′ (i) are encoded by the Y code unit 13 and the Z code unit 14 ( Step L24).
  • the sum (number of bits) of codes C and C is obtained (step L25).
  • step L26 It is checked whether this code amount has increased from the previous time (step L26). If it has increased, the transformation for y (i) is reversed, that is, if 1 is added to the least significant bit in step L23, 1 is subtracted from the least significant bit.
  • This deformation y, (i) and corresponding z (i) are signed (step L28), and the added code amount is obtained (step L29), and the change in the code amount is reduced and increased. (Step L30)
  • step L31 If not increased, y ′ (i) is further transformed in the same direction as before, and the process returns to step L28 (step L31). If the code amount has not increased in step L26, the process proceeds to step L31. If it is determined in step L30 that the change in the code amount has changed to an increase, the code C binding corresponding to the lesser of the immediately preceding code amount and the current code amount is output to the synthesizing unit 16 (step S30).
  • the code amount of the code C binding is added in steps L22, L25, and L29.
  • Code amount addition unit 170a determination of steps L26 and L30, determination unit 170b for performing size determination in step L32, etc., increase / decrease unit 170c for modifying L (y) of steps L24, L27 and L31, step L32 This is used to determine the amount of code and output the previous C and C.
  • a storage unit 170d is provided.
  • the error signal z (i) increases by multiplying the added 1 by A, but the code efficiency of y '(i) improves, so the code amount decreases as a whole.
  • the switch 180b is switched to and connected to the division processing unit 120, and y (i) is directly used as y '(i). Output from 180.
  • the sixth embodiment is an example in which the quotient signal y (i) is encoded by the irreversible encoding method.
  • Figure 16 shows an example of the functional configuration.
  • the quotient signal y (i) from the division processing unit 120 is encoded by the irreversible Y encoding unit 31 of the irreversible compression encoding method.
  • the encoded code C is decoded.
  • the decoded signal y (i) is multiplied by a multiplier A, and an error signal z (i) between x ′ (i) and X (i) is obtained.
  • the processing in the decoding device may be performed in the same manner as the processing shown in FIG.
  • the Y decoding unit 53 uses the lossy decompression decoding method corresponding to the lossy compression encoding method of the lossy Y encoding unit 31.
  • the processing of the code key units 14 and 15 and the decoding key units 54 and 55 is performed.
  • a lossless encoding method and a corresponding lossless decompression decoding key it is possible to perform lossless coding as a whole.
  • irreversible codes are used for the Z encoding unit 14 and the Z decoding unit 54, irreversible encoding is performed as a whole.
  • a transformation processing unit 35 is inserted between the division processing unit 120 and the irreversible Y code unit 31 and an error signal z (i ) May be input to the transformation processing unit 35, and y (i) may be transformed so as to minimize the error signal z (i) and input to the irreversible Y code key unit 31.
  • the overall coding size that is, the coding amount of coded data C
  • the irreversible Y code key unit 31 may be supplied.
  • the quotient signal y (i), error signal z (i), and multiplier A are encoded separately and compared to the case where x (i) is directly compressed. If compression efficiency is good, separate encoding is performed, and if it is better to compress x (i) as it is, the example of compressing x (i) as it is is implemented. Form 4 is shown, and an example of this is shown in FIG. 17 and in FIG. 18, a decoding device is shown.
  • the separation encoding unit 300 in FIG. 17 includes a residue separation processing unit 310, a Y encoding unit 320 using a lossless encoding method, a Z encoding unit 330 using a lossless encoding method, and an A code provided as necessary.
  • the combination unit 340 and the synthesis unit 350 are provided, and these sets correspond to any of the examples 1 to 5.
  • the direct code key unit 360 directly codes the input signal x (i). Data amount (information amount, number of bits) V of the encoded data C encoded by the separate encoding unit 300 and directly The data amount V of the encoded data C encoded by the encoding unit 360 is the compression rate comparison unit 37.
  • the selection unit 380 selects the code data having the smaller data amount.
  • the synthesizing unit 390 synthesizes the selected encoded data and the selected code (1 bit) C indicating which is selected, and outputs it as encoded data C.
  • the code data C is encoded by the separation unit 400.
  • the switching unit 410 is controlled, and the encoded data C is input to the demultiplexing / decoding unit 420.
  • switching unit 410 If code C indicates directly encoded data C, switching unit 410
  • the directly encoded data C is input to the direct decoding unit 430.
  • the combination of the multiplication unit 480 and the error correction unit 490 corresponds to one of the decoding devices in the first to fifth embodiments.
  • the switching unit 510 selects the decoded signal or the signal from the demultiplexing unit 420 according to the selection code C.
  • the direct code portion 360 may not be provided independently, and the selection code C may be omitted. Illustration
  • a multiplier A is input to the Y code input section 321 only with the quotient signal y (i) from the remainder separation processing section 310.
  • the switching unit 321b is controlled to input the quotient signal y (i), that is, the input signal x (i), directly to the encoding unit 323.
  • selection unit 380 and the synthesis unit 390 are also omitted, which is simpler than the configuration shown in FIG.
  • FIG. 20 shows a corresponding decoding device.
  • the code C separated by the separation unit 440 is Y-decoded.
  • Multiplier A (or code C) Y decoding unit 451 Entered.
  • switching unit 451 b inputs code C to quotient decoding unit 452.
  • the quotient decoding part 452 then recovers the code suitable for code C.
  • the switching unit 451b directly recovers the code C.
  • the direct decoding unit 453 performs decoding suitable for the code C.
  • Decoding key output y (i) from Y decoding key unit 451 is input to multiplication unit 480, and multiplication processing with multiplier A is performed. This is simpler than the configuration shown in FIG.
  • Example 8 is another example of separate encoding and direct encoding, and an outline thereof is shown in FIG.
  • the separation code key unit 301 used here is a case where an irreversible compression code key is used as the irreversible Y code key unit 31. In this case, when considering from the decoding side, it is important that the code waveform distortion is smaller than the encoding size (code amount).
  • the encoded data C is decoded by the local decoding unit 302, and the decoded signal sequence X ′ is
  • the code key data C from the direct key code part 360 is decoded by the local decoding key part 303.
  • the distortion calculation unit 304 calculates the waveform distortion between the local decoded signal sequence X ′ and the original input signal sequence X.
  • the distortion calculation unit 305 is a local decoded signal. Calculate the waveform distortion between column X "and original input signal sequence X. A small one of the calculated distortions is determined by the determination unit 320. Based on the determination result, the selection unit 380 selects the code data having the smaller distortion.
  • the synthesizing unit 390 synthesizes the encoded data from the selection unit 380 and the selection code C indicating which one of the determination units 306 has been selected, and outputs the encoded data C.
  • the quotient signal sequences Y and Z or the error signal sequence Z obtained by the residue separation process are recursively separated.
  • Figure 22 shows an example of the functional configuration.
  • the input signal sequence X is input to the residue separation processing unit 100 and separated into a quotient signal sequence Y, an error signal sequence Z, and a multiplier A.
  • the quotient signal sequence Y is further separated into a quotient signal sequence Y, an error signal sequence Z, and a multiplier A by the remainder separation processing unit 101Y. That
  • the quotient signal sequence Y is divided into the quotient signal sequence Y, the error signal sequence Z, and the multiplier A by the remainder separation processing unit 102Y. To be released.
  • Each of the Z encoders 103Z, 103Z, and 103Z is losslessly compressed and encoded with codes C, C, C
  • Multipliers A, A, A are either unchanged or reversible
  • the synthesizing unit 16 has a code C, C, C, C, A (or C
  • a (or C), A (or C) are synthesized and output as encoded data C.
  • the error signal sequence Z may be recursively signed. An example of this is shown by a broken line in FIG.
  • the error signal sequence Z is separated into a quotient signal sequence Y (Z), an error signal sequence ⁇ ( ⁇ ), and a multiplier A ( ⁇ ) by the remainder separation processing unit 101Z.
  • This error signal sequence Z (Z) is separated into a quotient signal sequence Y (ZZ), an error signal sequence Z (ZZ), and a multiplier A (ZZ) by the remainder separation processing unit 102ZZ.
  • Codes C and C that have been losslessly encoded by the encoders 104Z and 104Z and a multiplier ⁇ ( ⁇ ) (or its code C), ⁇ ( ⁇ ) (or its code C) are synthesized and encoded data As C
  • both the quotient signal and the error signal separated by the remainder separation processing unit may be recursively separated and coded. In that case, as shown by the broken line in the example of FIG.
  • the separation processing unit 102Z separates the quotient signal sequence ⁇ ( ⁇ ), the error signal sequence ⁇ ( ⁇ ), and the multiplier A ( ⁇ ).
  • ⁇ ( ⁇ ) and Z (Z) are losslessly encoded by the encoding units 105Y and 105Z, respectively, and the codes C and
  • the remainder separation processing unit 102YZ separates the quotient signal sequence ⁇ ( ⁇ ), error signal sequence ⁇ ( ⁇ ), and multiplier ⁇ ( ⁇ ).
  • the quotient signal sequence ⁇ ( ⁇ ) and the error signal sequence ⁇ ( ⁇ ) are encoded by the code unit 106Y and 106Z, respectively, and lossless codes C and C are output.
  • the synthesizing unit 16 generates codes C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C
  • a multiplier A A (Z), A, A (YZ), A (ZZ), A (Z), A
  • the tenth embodiment shows a case where the quotient signal sequence Y is recursively divided.
  • Figure 23 shows the processing procedure. First, a residue separation process is performed on the input signal sequence X to separate and encode C, C,
  • encoded data C is obtained (step si). Compare size of sign data C
  • the separated quotient signal sequence Y is subjected to residue separation processing, separated and coded, and a code consisting of quotient code C, error code C, and multiplier A (or its code C).
  • Measured data C is obtained (step s3).
  • step s5 Check that the encoded data volume is less than V (step s5). If this condition is met,
  • step s6 Store C and A obtained in the above process in the storage unit and return to step s3 (step s6).
  • step s5 the force is smaller than V but larger than V.
  • step s7 If the amount of data V is smaller in step s2, directly encoded data
  • the code C from the separation unit 52 is decoded by the quotient decoding unit 71, and Y is output.
  • the unit 72 decodes the error code C to obtain an error signal sequence Z.
  • the correction unit 220 is a multiplication unit 2
  • the output of 10 is corrected with the decoded error signal sequence Z, and the quotient signal sequence Y is obtained.
  • Multiplier 210 performs multiplication processing of Y and multiplier A from separator 52.
  • Error decoding unit 7 2 decodes the error code C from the separator 52 to obtain an error signal sequence Z.
  • Correction unit 220
  • the output of the multiplier 210 is corrected with the error signal sequence Z, and the original signal sequence X is output.
  • step si 1 An example of a general decoding process procedure for this recursive code will be described with reference to FIG.
  • the input encoded data C is separated into each code and stored in the storage unit (step si 1).
  • each code obtained at the last stage in the undecoded code ⁇ in the storage unit is selected (step sl2).
  • Each of these codes is decoded (step sl3).
  • the quotient signal, the error signal, and the multiplier are obtained. From the next time, for example, in the example shown in FIG. 24, the error signal and the multiplier are obtained.
  • Residue combining processing is performed using these decoded signals (step s14). That is, the decoded quotient signal (or the quotient signal obtained in the previous process) is multiplied. The result is corrected by the decoded error signal.
  • step si 5 the original input signal sequence X is decoded.
  • the frame is input to the residue separation processing unit 100 in units of frames.
  • x (i) is inspected by the input determination unit 41 as shown in FIG.26A to determine whether or not to input to the residue separation processing unit 100. do.
  • the input sample is represented by a single-precision floating-point number, it may be an infinite value or a value of NaN that cannot be represented as a number.
  • the input determination unit 41 outputs 0 to the remainder separation processing unit 100 when the sample x (i) is 0. At the same time, 0 is also output to the X code key 42.
  • the X code key unit 42 outputs the code obtained by signing x (i) to the synthesizing unit 16.
  • the decoding apparatus restores y (i) by the Y decoding key unit 57 as shown in FIG. 26B.
  • the determination unit 57a notifies the X decoding unit 58.
  • the X decoding unit 58 decodes the code separated from the separating unit 52 corresponding to the y (i), and outputs x (i). This x (i) is input to the error correction unit 220.
  • the input sample x (i) is a value that cannot be divided in the first place, or that the error becomes too large when divided by the multiplier A.
  • the input sample is represented by a single-precision floating point number, it may be an infinite value or a NaN! Value that cannot be represented as a number.
  • the encoding apparatus includes a deformation processing unit 161 in FIG. 27 instead of the deformation processing unit 160 in FIG.
  • the decoding apparatus performs the X decoding on the code C separated by the separation unit 52 as shown in FIG. 26B.
  • the decoding result of the X decoding unit 58 may be output as decoded x (i) by controlling the switch 262.
  • the Z code key unit 14 for example, the Rice code key method, the algebraic coding method or the like is suitable.
  • the X code key unit 272 the Huffman coding method, the LZ code key method, and the like are suitable.
  • the Z decoding unit 54 and the X decoding unit 26B1 are for the encoding method of the corresponding encoding unit. In floating-point representation, normalized to 1 ...., and the 23 bits after this decimal point are used as the mantissa. The minimum exponent is -127. If the exponent is -127, it represents 0 or a denormalized number.
  • the exponent is -126 and only the least significant bit of the mantissa is 1, it is the minimum absolute value that can be expressed normally by floating point. Numbers with absolute values below this cannot be used for normalization for floating point representation.
  • the input signal x (i) is a sample sequence expressed in floating point, in addition to NaN, x (i) may be a subnormal number. In other words, if the exponent is — 127 and the one most significant bit of the mantissa is not 1, the minimum value that can be expressed in a format normalized by the binary floating-point representation in IEEE-754 format. If small).
  • x (i) is a subnormal power, if x (i) is further divided by the multiplier A, information is lost due to underflow.
  • x (i) can also determine a non-normal number.
  • the decoded signal X (i) is used as it is.
  • FIG. 28 shows an example of the functional configuration of the sign key device of the fifteenth embodiment.
  • the output y (i) from the division processing unit 120 is input to the integer key unit 281.
  • the integer part 281 converts y (i) into an integer signal yl (i). Since y (i) is directly converted into an integer format, the force conversion may be performed by a deformation process performed by a deformation processing unit.
  • the integer format signal yl (i) may have a maximum amplitude of 24 bits or 16 bits.
  • the integer signal yl (i) is rounded to its least significant digit.
  • the rounded integer format signal yl (i) is output to the Y encoding unit 13 as in the various embodiments described above.
  • the floating point conversion unit 282 converts yl (i) into a floating point representation and outputs it to the multiplication unit 130.
  • the integer in this floating-point representation is multiplied by the multiplier A .
  • the error calculation unit 140 performs error signal generation processing based on the multiplication result in the same manner as described above.
  • the digit number calculation unit 281b provided in the integer key unit 281 counts the number n of digits of the integer format signal.
  • This number of digits n is also input to the difference generation unit 285.
  • the difference generation unit 285 does not change the polarity S, the exponent E, and the lower (23 ⁇ n) bits of the mantissa part M of the floating-point input signal x (i), and all the upper n bits in the mantissa part. Generate an output signal z '(i) with zero.
  • the difference signal z ′ (i) is losslessly encoded by the Z ′ encoding unit 286.
  • FIG. 29 shows a decoding apparatus corresponding to the encoding apparatus shown in FIG.
  • the code C separated by the separation unit 52 is decoded by the Y decoding unit 291 to obtain an integer format signal yl (i).
  • the integer format signal yl (i) is converted into a floating point signal by the floating point conversion unit 292.
  • the number of digits n of the integer format signal calculated by the digit number calculating unit 29 la in the Y decoding key unit 291 is also input to the Z ′ decoding key unit 295.
  • the Z ′ decoding unit 295 embeds “0” in the upper n bits of the mantissa part of 23 bits in the floating-point representation and decodes the code C in the lower 23—n bits.
  • the assembling unit 295a assembles a floating-point difference signal (error signal) z (i) from the mantissa part, the decoded sign bit S, and the decoded exponent part E-E.
  • the difference signal z (i) is input to the correction processing unit 220.
  • the switch 294, the Z decoding unit 54, and the Z ′ decoding unit may be integrated into a Z decoding unit 54 ′.
  • the multiplier determination unit 293 may be an independent component as shown in FIG. 29, or may be a part of the Y decoding unit 291 and the value of the multiplier A together with the number of digits n of the integer format signal Z You may supply to decoding part 54 '.
  • the switch 288 may be controlled so that the input signal x (i) is directly encoded by the X encoding unit 272 and the encoding result is supplied to the combining unit 16 as C.
  • FIG. 30 shows an example of the functional configuration of the sign key device of this embodiment.
  • the remainder estimation unit 301 in the remainder separation processing unit 600 estimates the multiplier A.
  • the division processing unit 120 performs division processing on the input signal.
  • the transformation processing unit 302 transforms the division result y (i) and outputs a processing result y ′ (i).
  • Multiplier 130 multiplies y (i) by multiplier A.
  • the error calculation unit 140 performs an error calculation process between the multiplication result and the input signal, and outputs an error signal z (i).
  • the integerization unit 303a in the integer error separation unit 303 converts the transformed y '(i) into an integer format signal yl (i) whose maximum amplitude is determined in advance as necessary.
  • the part of y '(i) that is less than the integer value (below the decimal point) is output as the floating-point error signal y2 (i).
  • the Y code part 13 encodes the integer format signal yl (i) into the code C.
  • Error code key part 304 is
  • Floating point error signal y2 (i) is reversibly signed and output as sign C. Remainder separation processing
  • the error signal sequence Z from the processing unit 600 is input to the Z code key unit 14.
  • the multiplier A is encoded as necessary and input to the synthesis unit 16.
  • FIG. 31 shows a functional configuration example of a decoding key device corresponding to the coding key device of the seventeenth embodiment.
  • the Y decoding unit 53 outputs the decoded signal yl (i), which is an integer signal, to the floating point conversion unit 312.
  • the error decoding unit 311 converts the code C from the separation unit 52 into a floating-point format.
  • the signal y2 is decoded into a signal y2 (i) and output to the floating point unit 312.
  • the floating point converting unit 312 combines yl (i) and y2 (i) to generate the floating point signal y ′ (i) whose maximum amplitude is determined in advance.
  • the residue combination processing unit 200 multiplies y ′ (i) by the multiplier A, and adds the error signal decoded by the Z decoding unit 54. Other processes are the same as in the previous embodiment.
  • the miscalculation signal y2 (i) and the error signal z (i) in FIG. 30 are both signals having a small amplitude and relatively similar characteristics.
  • the key section 14 may be encoded by one entropy encoder as shown by being surrounded by a broken line. For example, there is a method of encoding z (i) after encoding all y2 (i) in the frame. When one encoder is used in this way, even a decoding device may decode with one corresponding decoder as shown by being surrounded by a broken line in FIG.
  • any one of the various deformation methods described in the embodiments 2 to 7 and 9 to 14 and / or a deviation thereof are simultaneously used. It may be used.
  • Examples 15 to 18 the lossless code ⁇ has been described.
  • the lossy codes ⁇ described in the sixth embodiment (Fig. 16) and 8 (Fig. 21) can also be applied to the fifteenth to eighteenth embodiments.
  • the recursive processing of Examples 9 to 12 (FIGS. 22 to 25) can also be applied to Examples 15 to 18.
  • the sign Z 'and the sign Z are the difference signal and error signal without sign sign, respectively. May be output as is. In other words, the compression effect may be hardly obtained even if the sign is entered.
  • FIG. 32 shows a processing procedure for obtaining a common multiplier of a set of a plurality of numerical values.
  • First, it is decided whether to newly estimate the multiplier A for each frame. Input all input signals x (i) for the current frame (step 32-1). Check if the multiplier A of the previous frame is 1.0 (step 32-2). 1. If it is not 0, the current frame is assumed as a candidate for multiplier A (step 32-3). Check that the multiplier A is valid for all input signals x (i). If not, change the multiplier to A l. 0 (step 32-4). Check if multiplier A is not 1.0 (steps 32-5). 1. If it is not 0, the multiplier candidate of the current frame is set as the multiplier A of the current frame (steps 32-6).
  • step 32-2 the multiplier A of the previous frame is 1.0, or in step 32-5, the multiplier A is 1.
  • step 32-7 If 0, the multiplier A is estimated by rational approximation using each input signal (step 32-7). Check that the multiplier A is not 1.0. If it is not 1.0, go to step 32-4 (step 32-4).
  • Step 33— 2 If Yes, set y (i) to 0 and return to Step 33-1 (Step 33-3).
  • step 33-2 If the above condition is not satisfied in step 33-2 (if it is not an exceptional value), the signal X (i) is divided by the estimated multiplier A to obtain yl (step 33-4). Mask the least significant bit (LS B) of yl's mantissa with 0 to make y2 (step 33-5). Multiply y2 by the multiplier A and set the result to xl (step 33-6). The signal x (i) force is also subtracted from xl, and the result is z (step 337).
  • LS B least significant bit
  • step 33-8 It is checked whether the remainder z of this subtraction is not 0 (step 33-8). If not 0, xl Check whether the pair value is smaller than the absolute value of the signal x (i)! (Step 33-9).
  • the absolute value of xl in other words, add 1 to the mantissa least significant bit (LSB) of yl to give the value ⁇ yl (steps 33-10).
  • the mantissa least significant bit of yl is masked with 0 to give y2 (step 33—1 Do, then y2 is multiplied by multiplier A to give xl, and the process returns to step 33-9 (step 3 3-12) ).
  • step 33-9 If the absolute value of xl is not smaller in step 33-9, it is checked whether it is larger than the absolute value of the absolute value force (i) of xl (step 33-13). If the absolute value of xl is larger, subtract 1 from the least significant bit of yl and set the result to yl (step 33-14). The value obtained by masking the least significant bit of yl with 0 is 3 ⁇ 4y2 (step 33-15). Multiply y2 by the multiplier A and set the result as xl (step 33-16). Next, the signal x (i) force is also subtracted from xl, and the result is z (step 33-17). Check if the result of subtraction z is 0 (step 33-18). If z ⁇ 0, the multiplier A at that time is set to 1.0 and the processing is terminated (step 33-19). If the absolute value of xl is not large in Step 33-13, go to Step 33-17.
  • Step 33-20 it is checked whether all the 8 least significant bits of the mantissa part of signal x (i) are 0 and the least significant bit of yl is not 0 (step 33-20). If both conditions are satisfied, it is checked whether the least significant bit of yl is 0 and the number of samples (signal X (i)) exceeds the value (for example, 10) (step 33-21). If the threshold is exceeded, go to Step 33-19, otherwise go to Step 33-22. In step 33-22, it is checked whether all the least significant bits of the mantissa part of signal X (i) are 0 and the least significant bit of yl is 0! / ⁇ (step 33-22).
  • Step 33—22 If both conditions in Steps 33—22 are met, the least significant bit of yl is 0! /, And the number of samples (signal X (i)) is determined to check if it exceeds a value (eg 100) ( Step 33—23). If it exceeds the threshold, go to Step 33-19.
  • step 33-22 If any of the conditions is not satisfied in step 33-22, y (i) is set as yl and the process proceeds to step 33-1 (step 33-24). In step 33-8, if z is 0, go to step 33-20.
  • Steps 33-9 to 33-16 are transformation processes for y. Steps 33-9 to 33-12 and steps 33-13 to 33-16 are processes in which the dynamic range of y (i) is minimized.
  • FIG. 34 shows the basic process of deformation of y. Only the differences from Figure 33 are described. If z is 0 in step 33-8, proceed immediately to step 33-24. Similarly, in step 33-18, if z is 0, the process immediately proceeds to step 33-24. In step 33-18, if z is not 0, it is checked whether z can be expressed with a predetermined number of bits (for example, 23 bits) or less (step 34-1). If it can be expressed, it moves immediately to step 33-24, and if it cannot be expressed, it moves to step 34-2. In step 34-2, y (i) is set to 0 and the process proceeds to step 33-1 (step 34-2). Step 33—When all the signals X (i) are completed, the process of transforming y (i) is completed.
  • the signal x (i), and the division processing result y (i), the one transformed in FIG. 34 (also described as y (i)) is input (step 35-1).
  • the shift factor S c is also determined for the maximum value of the absolute value of y (i) (step 35-2).
  • the number of quantization bits assumed by the encoder is assumed to be BMA, and the scale coefficient S is obtained from the following equation (step 35-3).
  • step 36-2). Multiply y 1 by multiplier A and set the result to 1 (step 36-3).
  • the signal x (i) force is also subtracted from xl to obtain z (step 36-4).
  • step 36-5 Check if z is not 0 (Step 36-5). If Z is not 0, check whether xl is smaller than x (i) (Step 36-6) If o xl is smaller, add 1 to y, (i) to get y, (i) (Steps 36-7). Divide y and (i) by scale S to obtain yl (step 36-8). Multiply the yl by the multiplier A xl
  • step 36-6 If xl is not smaller in step 36-6, it is checked whether xl is larger than x (i) (steps 36-10). If xl is larger, 1 is subtracted from y '(i) and the result is y' (i) (Steps 36-11). The y and (i) are divided by the scale S, and the result is yl (step 3
  • step 36-13 Multiply the yl by the multiplier A and set the result to xl (step 36-13).
  • the x 1 is subtracted from the signal x (i), and the result is z (step 36-14).
  • step 36-15 Check if z is not 0 (steps 36-15). If z is not 0, check whether z can be expressed with a predetermined number of bits (eg, 23 bits) or less (steps 36-16). If not representable, y '(i) is set to 0 and the process goes to Step 36-18 (Step 36-17). If z is 0 in step 36-5, then y, (i) is the desired y, (i). Step 36 - If there is no greater in the xl at 10, proceeds to Step 3 6 18. If z is 0 in step 36-15, go to step 36-18. If step 3-6-16 can express z with a predetermined bit N or less, go to step 36-18.
  • step 36-16 z cannot be expressed with N bits or less (23 bits in this example)! /
  • step 36-16 instead of setting y and (i) to 0, set multiplier A to 1.0. Also good.
  • y and (i) are obtained again from x (i) by the method used in Example 16 or Example 17.
  • Step 37-2 Multiply yl by multiplier A to obtain xl (step 37-3).
  • the signal x (i) force is also subtracted from xl, and the result is z (step 37-4).
  • Step 37-9 Multiply A, set the result as xl, and return to Step 37-6 (Step 37-9).
  • step 37-6 If xl is not larger in step 37-6, it is checked whether xl is smaller than x (i) (step 37-10). If xl is smaller, add 1 to y '(i) to get y' (i) (step 37-11). Divide y '(i) by scale S to obtain the division result yl (Step 37—12
  • step 37-13 Multiply the yl by the multiplier A and set the result to xl (step 37-13). xl is subtracted from x (i) and the result is z (steps 37-14). Check whether z is not 0 (step 37-15) o If z is not 0, check whether z can be expressed with a predetermined value (23 in this example) or less (step 37-16). If it cannot be expressed, set y '(i) to 0 and go to Step 37-18 (Step 37-17). If z is 0 in step 37-5, go to step 37-18. Similarly, if z is 0 in step 37-15, go to step 37-18. Let y and (i) obtained at that time be y and (i), respectively. If in step 37-10 xl is not smaller, go to step 37-18. If z can be expressed with N bits or less in Step 37-16, go to Step 37-7-18. In this way, the process of transforming y ′ (i) is completed.
  • MSB most significant bit
  • the denominator selection unit 383 selects the maximum value in mx (i) and sets that value as X.
  • Step 2 If nlow / dlow ⁇ Knhigh / dhigh, output 1/1.
  • i is an even number, find the smallest integer k that satisfies (nm (i-2) + kXnm (i— 1)) bar dn (i— 2) + kXdn (i— 1))> nlow / dl ow , (Nm (i ⁇ 2) + kXnm (i ⁇ l)) / (dn (i ⁇ 2) + kXdn (i 1)).
  • Non-Patent Document 3 Chinese Object Application Document 3
  • Sadaharu Takagi “Primary Integer Logic Lecture” 2nd edition, September 15, 2003, published by Kyoritsu Shuppan Co., Ltd., pp. 124-145 (hereinafter referred to as Non-Patent Document 3)
  • pp. 124-145 (hereinafter referred to as Non-Patent Document 3)
  • the smallest denominator aZb is the odd-numbered (or even-numbered) main or middle of ⁇ Approximate fraction. This is a phrasing of the proof (just 4 lines in total) immediately below Theorem 2.7, and the latter 3 lines starting from “M”.
  • ⁇ of the above claim is nm / dn of the rational approximation calculation unit 384,
  • N will have a value of 70%.
  • the point power that can reduce the code amount may be about 20%. If you want to improve the accuracy of A, set it to about 80%. The validity of A will be examined later.
  • Yi can be selected from a wider range than before.
  • M randomly determined number
  • the denominator selection unit 3 91 divides each mx (i) by gcdAO obtained by the GCD calculation unit 382. This is because the denominator selection unit 391 does not obtain gcd obtained by the GCD calculation unit 382 again in a later process, that is, it reduces wasteful processes.
  • the rational approximation calculation unit 392 performs processing in which mx (i) ZAO is handled in the same manner as mx (i) in the rational approximation calculation unit 384.
  • the common factor calculation unit 386 multiplies the obtained multiplier candidate by AO to obtain a multiplier A.
  • the process shown in FIG. 38 may be changed as follows.
  • the denominator selection unit 391 should select another denominator X as described in FIG. May be. In the denominator selection part 391, X is selected one by one, not M.
  • the rational approximation calculation unit 411 obtains my (i) ZYi corresponding to each mx (i).
  • the multiplier A is preferably such that the division processing result y (i) becomes as small as possible. Therefore, the common denominator confirmation unit 412 selects one with the smallest denominator Y and confirms whether it can be a common denominator. If it cannot be the common denominator, the rational approximation calculation unit 411 selects the next largest pair of Y and y (i). The common denominator confirmation unit 412 confirms whether it can be a common denominator for this set.
  • ⁇ , ⁇ , xn are added together by a predetermined number to reduce the error relatively.
  • the GCD calculation unit 382 cannot obtain a correct value if the input signal x (i) includes an error.
  • mx (i) ZX is Find yiZ Y within the maximum error range, including negative or positive error with respect to the correct value.
  • 1Z2 was calculated. However, if the error is a, the minimum irreducible fraction yiZYi that satisfies the following equation is obtained.
  • the common denominator checking unit 385 calculates a common value for each mx (i) in Yi. In this case, if the number of the same Yi is more than the number determined in advance, the Yi is set as a common Y, and the common factor calculation unit 386 divides X by the Yi to obtain a common multiplier. Output as A.
  • FIG. 42A shows an example of mx (i), 1 bit shifted mx (i) (1), and autocorrelation results thereof.
  • the common multiplier A for these determination result forces x (0) to x (4) is used. Note that the number of bits that become 1 in the correlation value decreases as j increases, so the common multiplier A may be decreased as the threshold value increases.
  • an acoustic signal for example, a signal material converted into a 24-bit integer format, which has undergone editing processing such as transformation, amplitude adjustment, effect addition, and mixing, is converted to a floating-point format and the input signal x (i ) May be entered.
  • the addition / subtraction / division / division processing performed on the original 24-bit integer signal may be recorded, and the addition / subtraction / division / division processing may be known.
  • the addition / subtraction / multiplication / division calculation sequence and coefficients are given to the sign unit together with the input signal x (i).
  • the multiplier estimator determines the multiplier A based on the input addition / subtraction / division information. For example, when the constant A is multiplied by the original signal, the input constant A may be output as the multiplier A.
  • each process of the program for causing the computer to function as the target device (the device having the functional configuration shown in the drawings in various embodiments) or the processing procedure (shown in each embodiment) is processed by the computer.
  • a program to be executed by the computer may be downloaded from a recording medium such as a CD-ROM, a magnetic disk, or a semiconductor recording device or into the computer via a communication line, and the program may be executed.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

 本発明は、オーディオ信号の圧縮効率を向上させるため、信号を共通の乗数を用いて分離して符号化する方法、および誤差を含む数値集団に共通の乗数を求める方法を提供することを目的とする。  入力信号サンプルx(i)をフレーム毎に各サンプルに共通の乗数Aを推定する。Aで各サンプルx(i)を除算し、有効桁数で丸め処理し、商信号y(i)を符号化する。y(i)にAを乗算し、その乗算結果をx(i)から減算処理して誤差信号z(i)を求め、z(i)を符号化する。Aを符号化し、y(i)の符号、z(i)の符号、Aの符号を合成して出力する。  共通乗数の推定では、決定した代表数値で各数値を割算する。正側誤差の最大と負側誤差の最大との間に、正しい値の代表値で各数値を割った既約分数を有理近似で求める。この求めた既約分数値中の分母が各数値に対して共通となる最小のものを求め、その共通の分母を前記代表値で修正して共通乗数とする。

Description

明 細 書
情報符号化方法、復号化方法、共通乗数推定方法、これらの方法を利用 した装置、プログラム及び記録媒体
技術分野
[0001] この発明は、音声、音楽などの音響信号や画像信号 (以下これらを含めて情報信 号という)の複数のサンプル値を通信路により伝送したり、情報記録媒体に記録する 場合に伝送効率を高めたり、記録容量を少なくするためなどに用いる情報圧縮符号 化方法、その伸張復号化方法、前記情報圧縮符号ィ匕に用いる複数の情報集合に対 する共通の乗数を推定する方法、これらの方法を利用した装置、プログラム及び記録 媒体に関する。
背景技術
[0002] 音響信号データ (サンプル値)に対し歪を許す圧縮符号化方式として MP3、 AAC 、 TwinVQ等がある。また、画像情報データ (サンプル値)の圧縮符号化方式として JP EG等がある。また歪を許さな ヽ可逆な符号化 (ロスレス符号化)技術がある (例えば 非特許文献 1参照)。また編集加工が容易な浮動小数点形式のデータの可逆圧縮も 重要である (例えば非特許文献 2参照)。また、従来、複数の数値に対し、共通の最 大公約数、つまり共通の乗数を求める方法としてユークリッド互除法が知られて 、る。 音響信号の場合には、マイクロホン等で収音した音響信号をサンプリング周波数 f、 量子化ビット数 qでサンプリングし、各サンプル値をディジタル値に変換されたデイジ タルサンプルとして入力される。この場合、各アナログのサンプルに共通の定数を掛 け合わせてゲイン調整を行う場合が多!、。アナログ ディジタル変換が行われる前に アナログ領域で定数が掛け合わされ、その後にアナログ ディジタル変換が行われ て!、るような場合には、アナログ信号領域で誤差を含む場合もある。
[0003] 同様に、画像情報信号を圧縮符号化する際に、 2次元の画像信号をラスタ走査し て 1次元のサンプル列として得る場合にも、元の画像信号を取得する際に、各サンプ ルに共通の定数を掛け合わせてゲイン調整がなされている場合がある。
元のサンプル列の各サンプル sO (i)に、ゲインとして実数 Gを共通に掛け合わせて 得られたサンプノレ s l (i)は、 s i (i) = sO (i) X Gとなる。
この実数 Gを掛け合わせて得られたサンプル si (i)を、 2進表現や IEEE754形式 の 2進浮動小数点表現で表現し、これらディジタルサンプル列を符号化する場合が 多 、。 IEEE— 754として標準化されて 、る浮動小数点形式は図 1に示すように 32ビ ットである。上位ビットから極性 1ビット、指数部 8ビット、仮数部 23ビットで構成される。 極性を S、指数部 8ビットで表す値を 10進数で E、仮数部の 2進数を Mとすると、この 浮動小数点形式の数値は絶対値表現 2進数で表わすと式(1)となる。
[0004] [数 1]
{- \)S x l .M x 2E-E° ( 1 ) IEEE— 754によれば、 E = 27— 1 = 127と決められており、これにより、式(1)中の
0
E -Eは
0
- 127≤E -E ≤128
0
の範囲の任意の値を取ることができる。ただし、 E -E = 127の場合は all"0"、 E -E o
= 128の場合は all" l "と定義されている。 E -E =nは式(1)で表される値の整数
0 0
部分の桁数 (ビット数)から 1を減算した値、即ち、最上位の" 1"より下位ビット数を表 わしている。
[0005] 従来の圧縮符号化方法、例えば文献 1に示す方法は、入力サンプル列の原入力 波形 (例えば音楽信号波形)の冗長性をなるベく除去して、情報量を減少させるもの が主であった。また符号ィ匕装置で符号ィ匕可能な入力波形の振幅 (ビット長)は、例え ば 16ビットと決められている。したがって、例えばビット長が 24ビットの場合は上位 16 ビットを符号ィ匕し、下位の 8ビットはそのまま出力するか、別個に圧縮符号ィ匕して出力 している。
特干文献 1: Hans M. and b chafer R.W. : Losslessし ompression of Digital Audio, IE EE Signal Processing Magazine, Vol.18, No.4, pp.21— 32(2001).
非特許文献 2 : Dai Yang and Takehiro Moriya : Lossless Compression for Audio Data in the IEEE Floating-Point Format, AES Convention Paper 5987, AES 115th Conven tion, New York, NY, USA, 2003 OCTOBER 10-13. 発明の開示
発明が解決しょうとする課題
[0006] 従来の符号化方法 (装置)では、予め決められた振幅 (ビット長)より大きな入力サン プル列は、符号ィ匕できない。符号ィ匕可能な振幅 (ビット長)に変換して符号化する場 合は、符号化品質が劣化する。または符号化できない部分を更に別の情報 (符号)と する場合は、情報量が増加するという課題があった。
例えば、このサンプル列を歪を許さな 、ユニバーサル符号ィ匕方法で符号ィ匕するとし 、サンプル列の各サンプルをビット列として見る。ここでサンプル列 (1)〜 (3)カ X (1) = 10100000 (10進数 160) , X (2) = 100000 (10進数 32) , x (3) = 111000 00 (10進数 224)のように 0が連続して存在するような場合は、高い圧縮率で符号ィ匕 すること力 Sできる。これに対し、 X (1) = 11111010 (10進数 250) , x (2) = l 10010 ( 10進数 50) , X (3) = 101011110 (10進数 350)のように 0と 1力 S混在した複雑な場 合は、高い圧縮率で符号ィ匕することは困難である。
[0007] さらに、従来のユークリッドの互除法は比較的処理が簡単であるが、数値が四捨五 入される場合、あるいは誤差を含むような場合は、その誤差を考慮して最大公約数を 求めることはできな力つた。
この発明の目的は、入力波形の振幅 (ビット長)が、圧縮符号化法が可能とする振 幅 (ビット長)より大き 、場合でも、情報量を増カロさせることなく符号ィ匕することができる 符号ィ匕技術を提供することである。また、入力サンプルを構成するビットの 0と 1の混 在度合いに関わらず効率良くサンプル列を圧縮することができる符号ィ匕技術、復号 化技術、前記符号ィ匕技術に利用する共通乗数を求める技術を提供することである。 課題を解決するための手段
[0008] この発明では、サンプル列力 各サンプルに共通する数(共通の乗数 A)を推定す る。各サンプルをそれぞれ共通乗数 Aで割算し、その割算結果を圧縮符号ィ匕し、そ の圧縮符号化符号 Cと、上記推定乗数 Aとを少なくとも出力する。乗数 Aは圧縮符
Y
号ィ匕してもしなくてもよい。
復号化は、符号 Cと乗数 Aとを分離し、符号 Cをその符号化と対応する復号化方
Y Y
法により復号化し、その復号ィ匕結果に対し共通乗数 Aを掛け算して、原サンプルを求 める。
また、前記圧縮符号化で共通乗数を求める処理では、まず数値集合中から代表数 値を決定する。その代表数値で各数値割算した値で正側誤差の最大と負側誤差の 最大との間に、正 、値の代表値 (誤差を含まな ヽ)で各数値の正 ヽ値を割った既 約分数を有理近似で求める。そして、この求めた既約分数値中の分母が各数値に対 して共通となる最小のものを求め、その共通の分母を前記代表値で修正して共通乗 数とする。
発明の効果
[0009] 例えば、アナログレベルで共通のゲインが乗算された圧縮符号化処理対象のサン プル列の場合は、その共通のゲインが共通の乗数と推定され、この乗算により各サン プルが割算される。したがって、振幅が小さくなり、従来の符号ィ匕法 (例えば非特許 文献 1)に示す方法をそのまま適用できる場合が多ぐかつ品質劣化が少なぐ情報 量の増加もほとんどない。
また前記割算の結果、元のサンプル列の共通の冗長性を取り除くことができるため
、商の集合のエントロピーを大きく減少させることができる。したがって、結果として全 体の情報圧縮率を向上することができる。
[0010] 例えば、浮動小数点表現された音響信号にこの発明を適用した場合、従来方式と 比較して、情報量を平均で 1Z2〜: LZ3に圧縮することが出来る。
さらに、共通乗数を求める処理では、誤差を含む数値の集合に対し、誤差を考慮し た共通乗数を求めることができる。
図面の簡単な説明
[0011] [図 1]IEEE— 754規格の浮動小数点表現説明図。
[図 2]符号ィ匕装置の実施例 1の機能構成例を示す図。
[図 3]その処理手順の例を示す流れ図。
圆 4]復号ィ匕装置の実施例 1の機能構成例を示す図。
[図 5]その処理手順の例を示す流れ図。
[図 6]図 6Aは、この発明の効果を説明するための具体的数値例を示す図であって、 サンプル列の例を示す図。図 6Bは、この発明の効果を説明するための具体的数値 例を示す図であって、サンプル列を共通乗数で除算した例を示す図。図 6Cは、この 発明の効果を説明するための具体的数値例を示す図であって、除算されたサンプル 列の例を示す図。
[図 7]図 7Aは、この発明の効果を説明するための他の具体的数値例を示す図であつ て、サンプル列の例を示す図。図 7Bは、この発明の効果を説明するための他の具体 的数値例を示す図であって、除算されたサンプル列の例を示す図。
圆 8]符号ィ匕装置の実施例 2の要部機能構成例を示す図。
[図 9]その処理手順の例を示す流れ図。
[図 10]復号化装置の実施例 2の要部機能構成例を示す図。
[図 11]符号化装置の実施例 3の要部機能構成例を示す図。
[図 12]その処理手順の例を示す流れ図。
[図 13]符号化装置の実施例 4の要部機能構成例を示す図。
[図 14]その処理手順の例を示す流れ図。
[図 15]符号化装置の実施例 5の要部機能構成例を示す図。
[図 16]符号化装置の実施例 6の要部機能構成例を示す図。
[図 17]符号化装置の実施例 7の要部機能構成例を示す図。
[図 18]復号化装置の実施例 7の要部機能構成例を示す図。
圆 19]符号化装置の実施例 7の変形例要部機能構成例を示す図。
圆 20]図 19と対応した復号ィ匕装置の実施例の機能構成例を示す図。
[図 21]符号化装置の実施例 8の機能構成例を示す図。
[図 22]符号化装置の実施例 9の機能構成例を示す図。
[図 23]符号化装置の実施例 10の処理手順の例を示す流れ図。
圆 24]復号ィ匕装置の実施例 11の機能構成例を示す図。
[図 25]復号化装置の実施例 12の処理手順の例を示す流れ図。
[図 26]図 26Aは、符号化装置の実施例 13の機能構成例を示す図。図 26Bは、その 復号化装置の実施例の機能構成例を示す図である。
[図 27]符号化装置の実施例 14の要部機能構成例を示す図。
圆 28]符号ィ匕装置の実施例 15の機能構成例を示す図。 [図 29]復号ィ匕装置の実施例 16の機能構成例を示す図。
[図 30]符号ィ匕装置の実施例 17の機能構成例を示す図。
[図 31]復号ィ匕装置の実施例 18の機能構成例を示す図。
[図 32]実施例 19における共通乗数の探索手順の例を示す流れ図。
[図 33]その共通乗数のチェックと商信号の変形例を示す流れ図。
[図 34]商信号変形を浮動小数点形式に対し行う例を示す流れ図。
[図 35]浮動小数点形式を整数形式に変換する処理例を示す流れ図。
[図 36]商信号が正の場合における変形手順の処理例を示す流れ図。
[図 37]商信号が負の場合における変形手順の処理例を示す流れ図。
[図 38]有理近似により共通乗数を求める機能構成例を示す図。
[図 39]その他の例を示す図。
[図 40]更にその他の例を示す図。
[図 41]有理近似により共通乗数を求める機能構成の他の例を示す図。
[図 42]図 42Aは、自己相関により共通乗数を求める数値例を示す図であって、 1ビッ トシフトした自己相関結果を示す図。図 42Bは、自己相関により共通乗数を求める数 値例を示す図であって、自己相関のビットが 1の数の例を示す図。
発明を実施するための最良の形態
[0012] 以下この発明の実施形態を図面を参照して説明する。各図において、他の図と対 応する部分には同一参照番号を付けて重複説明を省略する。またこの発明を、 32ビ ットの浮動小数点数で表現された音響信号列に対して適用する場合を例とする。
[実施形態 1]
実施例 1 図 2にこの発明の符号ィ匕装置の実施形態 1の機能的構成例を、図 3にその処理手 順例をそれぞれ示す。
[0013] 入力端子 11よりの入力信号列 X= (x (l) , x (2) , · · ·)はディジタル化されたサンプ ル列であり、これが入力されると (ステップ S1)、区間(フレーム)分割部 12で所定数 N 個(例えば 1024個)のサンプル列に分割され、図に示していないがー且記憶部に記 憶される (ステップ S2)。サンプル列は、音響信号の場合は、 24ビットの量子化ビット 数で量子化された整数サンプル列や 32bit単精度浮動小数点形式サンプル列など が考えられる。カラー画像信号の場合は各色情報要素に分解してラスタ走査したピク セル情報のディジタル化されたサンプル列がある。
[0014] 分割区間ごとの入力信号としてのサンプル x (i) (i=0, 1, · ··, N—l)の集合は、剰 余分離処理部 100で乗数 Aと、 X (i)を乗数 Aで割った商 y (i)とに少なくとも分離され る。この例では x (i)を Aで割った余り(誤差) z (i)も分離される。
例えば入力信号列 Xは、分割された 1フレームごとに乗数推定部 110に渡される。 乗数推定部 110では、全てのサンプル x (i) (i=0, 1, · ··, N—l)に対して、共通の 乗数 Aを推定する(ステップ S3)。例えば、全てのサンプル x(i)が共通の値 99. 0で 割り切れる場合には、共通の乗数 A= 99. 0とする。この共通の乗数 Aを推定する方 法については、複数種類の方法が考えられる力 例えば近似共通ファクタ (ACF :Ap proximate Common Factor)の有理近似を用いる。ここでは、適切な乗数 Aが与えら れるものとする。
[0015] 乗数推定部 110で決定された乗数 Aは、除算処理部 120、乗算部 130、 A符号ィ匕 部 15に渡される。
除算処理部 120では、乗数推定部 110より渡された乗数 Aと、 N個のサンプル x (i) を入力とし、 n個の商信号 y(i) =x (i) ZAを算出する (ステップ S4)。このとき、 y(i)は 整数形式、浮動小数点形式、固定小数点形式のいずれでもよい。その決められた表 現形式に変換するときに、切り捨、切り上げ、四捨五入、 nearest tie to even (二アレス トタイツウィーブン)などの丸め処理を行ってもよい。
[0016] 例えば、 X (i)を倍精度の浮動小数点数 (ここでは 64ビットの浮動小数点数)に変換 して乗数 Aで除算する。得られた倍精度の商を、最も近い単精度 (32ビット)の浮動 小数点数に丸めて商信号 y(i)とする。
除算処理部 120で得られた N個の商信号 y(i)から成る商信号列 Y= (y(0) , y(l) , · ··, y (Ν—1) )は、 Υ符号ィ匕部 13と、この例では乗算部 130に渡される。
乗算部 130では、乗数推定部 110から渡された乗数 Αを除算処理部 120から渡さ れた商信号列 Yの N個の各信号 y(i)にそれぞれ乗算して、復元された N個のサンプ ル x, (i)を得る (ステップ S 5)。
[0017] このとき、復元サンプル x' (i)は 32ビットの浮動小数点表現で表現可能な値の範囲 に丸められる。例えば、 y(i)と Aを掛け合わせた結果を倍精度(64ビット)の浮動小数 点数として保持し、得られた倍精度の乗算結果を、最も近い単精度 (32ビット)の浮 動小数点数に丸めて x' (i)とする。得られたサンプル列 X' = (χ' (0) , χ, (1) , · ··, χ, (N—1) )は、誤差算出部 140に渡される。
誤差算出部 140は、入力信号から取り出した Ν個のサンプル x(i)それぞれ力 乗 算部 130から渡された N個の復元サンプル x' (i)を差し引いて、 N個の誤差信号 z (i) から成る誤差信号列 Z= (z (0) , z (l) , · ··, z (N— 1) )を得る (ステップ S6)。この誤 差信号の算出は減算を用いる代わりに x(i)と x,(i)の 32ビットをそのままビット単位の 排他的論理和演算 (xor)を行ってもよい。要するに x (i)と x' (i)との差分演算を行え ばよい。
[0018] 得られた誤差信号列 Zはこの例では Z符号ィ匕部 14に渡される。
乗数推定部 110よりの乗数 Aは A符号ィ匕部 15にも入力される。
Y符号化部 13、 Z符号化部 14、 A符号化部 15は、既存の情報圧縮手法を用いて それぞれの入力信号列 Y, Z, Aを圧縮符号化して得られた符号を符号 C、符号 C
Y Z
、符号 Cとして出力する (ステップ S7)。これら符号 C , C , Cは合成部 16で 1フレ
A Y Z A
ームごとのビット列として合成され、符号化データ Cとして出力される (ステップ S8)。
X
Y符号ィ匕部 13には、波形値の相関を利用した高圧縮率の符号化方法、例えば非特 許文献 1に示す各種の可逆圧縮符号化、もしくは MPEG4, AAC, TwinVQなど非 可逆の圧縮符号ィ匕法を用いてもよい。 A符号ィ匕部 15は可逆の圧縮符号ィ匕方式を用 いる。
[0019] 乗数 Aは、商信号列 Yや誤差信号列 Zと比較して情報量が無視できる程度に小さ V、場合は破線 21で示すように A符号化部 15を設けることなく乗数 Aをそのまま合成 部 16へ入力してもよい。
誤差信号列 Zは、入力信号 x (i)の性質によっては十分な圧縮利得が得られず、演 算量増加の影響が大きくなる場合がある。そのような場合は、 Z符号化部 14を省略し て破線 22で示すように誤差信号列 Zをそのまま合成部 16へ入力してもよい。 Z符号ィ匕部 14は例えばエントロピィ符号ィ匕法を用いるが、誤差信号 z (i)中の上位 ビットのみを用いてエントロピィ符号ィ匕し、非可逆圧縮符号化としてもよい。更に入力 信号 x (i)の性質によっては、誤差信号 z (i)を必ず 0にできると判っている場合や、 z (i )が再生品質に実質的に影響を与えない程度に非常に小さくなることが判っている場 合は、破線の掛け印 X 23で示すように誤差信号列 Zを破棄してもよい。この場合は Z 符号化部 14は省略され、符号化データ Cには符号 Cは含まれない。
X Z
号化擴
実施形態 1の復号化装置機能構成例を図 4に、復号化方法 (処理手順)の例を図 5 にそれぞれ示す。
[0020] 入力端子 51からの符号ィ匕データ Cは符号ィ匕装置と同じサンプル数を 1フレームと
X
し、フレームごとに処理される。符号化データ Cが入力されると (ステップ S11)、分離
X
部 52は符号化データ Cを、フレームごとに符号 Cと符号 Cと符号 Cとに分離し、対
X Y Z A
応する Y復号化部 53、 Z復号化部 54、 A復号化部 55に渡す (ステップ S 12)。 Y復号 化部 53、 Z復号化部 54、 A復号ィ匕部 55には、それぞれ Y符号化部 13、 Z符号化部 1 4、 A符号ィ匕部 15の各圧縮符号ィ匕方法と対応する伸張復号ィ匕方法が用いられる。
[0021] 各復号ィ匕部 53〜55は、それぞれ入力された符号を復号化処理して、符号化部 13 〜 15の各入力に対応した商信号列 Y、誤差信号列 Ζ、共通の乗数 Αを求める (ステツ プ S 13)。なおこの例では各符号ィ匕部 13〜 15が可逆符号化方法を用 、て 、るものと している。
剰余結合処理部 200は、それらの復号化信号を結合処理する。
乗算部 210は、 A復号化部 55から渡された乗数 Aを、 Y復号化部 53から渡された N個の商信号 y (i)に対し、符号ィ匕装置の乗算部 130で行われたのと同じやり方で乗 算して N個の信号 x,(i)を得る (ステップ S 14)。このとき、 x, (i)は 32ビットの浮動小 数点表現で表現可能な値の範囲に丸められる。例えば、 y(i)と Aを掛け合わせた結 果を倍精度 (64ビット)の浮動小数点数として保持し、得られた倍精度の乗算結果を 、最も近い単精度(32ビット)の浮動小数点数に丸めて x' (i)とする。この丸めの処理 は、符号ィ匕装置の乗算部 130で行われた処理と同じやり方で行う。このようにして所 定の有効桁までの x' (i)を求める。 [0022] 誤差補正部 220は、乗算部 210からの N個のサンプル x, (i)を、それぞれ Z復号化 部 54力もの誤差信号 z (i)により補正処理をして、元の信号 x (i)を復元する。つまり符 号ィ匕装置で x(i)力 x' (i)を減算した場合は、各 x' (i)に対応する誤差信号 z (i)を加 算する。符号ィ匕装置で x (i)と x' (i)とのビット単位の排他的論理和演算 (xor)をした 場合には、対応する誤差信号 z (i)の各ビットを参照して z (i)が 1となった位置にあた る x, (i)のビットを反転して X (i)を得る。
フレーム連結部 56は、誤差補正部 220からの復元された N個のサンプル x (i) (i= 0, 1, · ··, N— 1)を連結させて出力する (ステップ S16)。
[0023] 符号化装置が乗数 Aを符号化して ヽな ヽ場合は、分離部 52で分離された乗数 A は図 4中に破線 61で示すように乗算部 210に直接入力される。同様に、符号化装置 力 誤差信号 z (i)を符号ィ匕していない場合は、分離部 52で分離された z (i)は破線 6 2で示すように誤差補正部 220に直接入力される。符号化装置で z (i)が破棄された 場合は、分離部 52で符号 Cと対応するものが得られず、誤差補正部 220にはなにも
Z
入力されな 、。言 、換えると 0が入力されることになる。
なお、符号化装置は、乗数 Aが前フレームで得られた乗数 Aと同一であれば、さら に情報量を少なく出来る。具体的には、図 2の A符号ィ匕部 15に示すように、符号ィ匕 装置にレジスタ 15aと判定部 15bを設ける。レジスタ 15aには、前フレームの乗数 Aを 格納しておき、判定部 15bで現フレームの乗数 Aと前フレームの乗数 Aとを比較する 。そして、同一であればそのことを示す 1ビットのみを符号 Cとして出力する。これに
A
より符号化データ Cの情報量を減少することができる。復号化装置では、図 4中の A
X
復号化部 55内の前フレームの乗数 Aを格納するレジスタ 55aと、符号 Cが前フレー
A
ムと同一乗数であることを示すビットである力否かを判定し、同一であれば、符号 C
A
の復号ィ匕処理を行うことなぐレジスタ 55a内の乗数 Aを乗算部 210に出力する判定 部 55bを設ければよい。この場合は、符号 Cは乗数 Aが前フレームと同一か否かを
A
示す 1ビットでよぐ乗数 Aを符号ィ匕しない場合よりも、情報量を減少させることができ る。
[0024] この発明を適用すると圧縮効率を高くすることができることを、図 6を参照して説明 する。図 6は、入力信号 x (i)が 2進数表現の場合の 1例である。入力信号サンプル列 x(l), x(2), x(3)力 図6八に示すょぅに10進数表現で (1)=250、 (2)=50、 (3) =350の場合、その 2進数表現はそれぞれ、「0」と「1」が比較的ランダムに配列 されている。
これらサンプル x(l), x(2), (3)を共通の数八=1.5625で割算すると、その商 信号 y(l), y(2), y(3)は図 6Bに示すようにそれぞれ 10進数表現で y(l) = 160、 y (2) =32、 y (3) =224となる。
[0025] これら商信号 y(l), y(2), y (3)の 2進数表現はそれぞれ図 6Cに示すように、「0」 が連続して存在する部分が多い「1」と「0」の配列である。この y(l), y(2), y(3)は 高圧縮符号ィ匕が可能である。乗算 Aも送出する必要があるが、サンプル数が多ぐか つ、その大部分が高圧縮可能な商信号の場合は、全体としての圧縮符号化量を大き く減少、させることができる。
図 7に IEEE— 754浮動小数点数のサンプル列に適用した例を示す。 10進数表現 の数値 478.4, 95.68, 669.76の浮動/ Jヽ数点、表現は、それぞれ図 7Aに示すよう にその仮数部の 23ビットの「1」、 「0」の配列はかなりランダムである。し力し、これらを 共通乗数 2.99で割算すると、その商信号は図 7Bに示すように 10進数表現が 160, 32, 224になる。これらを浮動小数点表現にすると、仮数部の 23ビットの「1」と「0」の 配列は、 1つ目が上位の 2ビット目のみ「1」、 2つ目はすべてゼロと、 3つ目は上位の 1 ビット目と 2ビット目のみ「1」となる。したがって、図 7Aのまま圧縮するよりも、著しく高 く圧縮することがでさる。
実窗列 2 (有効桁'丸め選択)
入力信号がどのような有効桁、丸め手段によって生成されたかによって、 x(i)の性 質は異なる。一般に浮動小数点の演算を行う場合の丸め処理としては、単精度のま ま演算を行ったり、倍精度で乗算を行った結果を単精度に丸めたりできる。
[0026] 丸めの処理としては、所定の有効桁で切り捨てたり、四捨五入したり、二ァレストタイ ッゥイーブン(nearest tie to even)や切り上げがある。そこで商信号 y(i)に乗数 Aを 乗じて x' (i)を生成する際に、入力信号 x(i)が生成された際に用いられたのと同じ方 法を推定して用いることで、誤差 z(i)を最小化する。具体的には、演算精度 (有効桁 )、丸めの方法として考えられるものを複数ためし、最も誤差 z(i)が小さくなる方法を 選択する。以下にその具体例を説明する。
図 2中の乗算部 130において、商信号 y(i)の有効桁 (演算精度)及び丸め方法を 選択する例を説明する。その要部の機能構成例を図 8に、その処理手順例を図 9に 示す。剰余分離処理部 100の乗算部 130は、桁設定部 130aと丸め設定部 130bと が設けられる。有効桁 ·丸め制御部 150は、有効桁数と丸め方法とを桁設定部 130a と丸め設定部 130bに設定する (ステップ L 1)。乗算部 130では商信号 y (i)と乗数 A との乗算が設定された有効桁数の倍精度で行われ、その乗算結果に対し、設定され た丸め方式により単精度の丸めが行われる (ステップ L2)。その結果 x' (i)と入力信 号 x (i)との差分が誤差算出部 140でとられ、その誤差信号 z (i)が有効桁'丸め制御 部 150内の記憶部 150aに格納される(ステップ L3)。
[0027] 次に有効桁 ·丸め制御部 150は、予め想定した各有効桁数について、想定した各 種の丸め方法の全てにつ 、て乗算部 130における処理が行われたかを調べる(ステ ップ L4)。 Noならば、ステップ L1に戻る。 Yesならば、有効桁 ·丸め制御部 150は、 記憶部 150a内の誤差信号 z (i)中の最小のものと対応する有効桁数と丸め方法とを 、乗算部 130内に設定する(ステップ L5)。そして、フレームの全てのサンプルについ ての誤差信号 z (i)を求める処理を行う。またその設定した有効桁数と丸め方法とを示 す情報が補助符号 Cを合成部 16へ入力する (ステップ L6)。
B
[0028] この場合の復号ィ匕装置の剰余結合処理部 200は、図 10に簡単に示すように B復 号化部 58と桁設定部 210aと丸め設定部 210bを有する乗算部 210を備える。 B復号 化部 58は、分離部 52で分離された符号 Cを復号化する。その有効桁数と丸め方法
B
とは、乗算部 210内の桁設定部 210a、丸め設定部 210bにそれぞれ設定される。乗 算部 210は、これら設定情報に基づいて、復号化商信号 y(i)と復号化乗数 Aとの乗 算を行う。
[実施形態 2]
実施 f列 3 ( 开 言 )
次に商信号 y (i)を変形処理することにより、誤差信号 z (i)の情報量を減少する他の 例を説明する。その要部の機能構成例を図 11に、処理手順例を図 12に示す。
[0029] 本実施例は、符号ィ匕側の誤差算出部 140から出力される誤差信号 z (i)が最小とな るように、除算処理部 120で得た商信号 y (i)を変形処理する部分が実施例 1 (図 2)と 異なる。
例えば、除算処理部 120で、 y(i)を所定の有効桁まで算出する場合に、有効桁より 下位の桁で切り捨て、あるいは四捨五入などを行った場合には、 y (i)は丸め誤差を 含む。同様に復号ィ匕装置 (図 4)の復号ィ匕手順で、乗算部 210で復号化した y(i)と復 号乗数 Aを掛け合わせる際にも、丸め誤差が生じる場合がある。この 2度の丸め処理 によって、誤差が累積され、誤差信号 z (i)が大きくなる場合がある。
[0030] 本実施例では、復号化時の乗算処理によって生じる丸め誤差を予め考慮して y(i) を y' (i)に変形しておくことによって、誤差信号 z (i)の情報量が低減するようにする。 各入力サンプル X (i)に対して独立に商信号 y (i)を変形し、最も誤差信号 z (i)が小 さくなるような変形誤差信号を y' (i)とする。このこと〖こより、乗数推定部 110において 推定された乗数 Aが誤差を含むような場合にも、乗数 Aの推定誤差の影響を低減す ることが出来る。例えば、 1フレームの 1024サンプル x (i)のほとんど力 有効桁の範 囲内で乗数 Aで割り切れ、一部のサンプル X (i)だけが乗数 Aで割り切れな ヽような場 合に、 y(i)に対する前記変形操作を行うことで誤差信号 z (i)の情報量を低減出来る
[0031] 除算処理部 120は、 x (i)を Aで割算し、丸め処理した商信号 y(i)を、変形処理部 1 60に渡す。
変形処理部 160は、除算処理部 120から渡された y (i)を変形して、 z (i)が最小とな るように変形した y' (i)を決定する。 y' (i)を決定する手順を図 12により簡略に説明す る。(詳細は後で示す。)入力信号サンプル x (i)の絶対値が乗算部 130の乗算結果 の絶対値 I Ay' (i) Iより大きいかを調べる (ステップ LI 1)。大きければ、 y,(i)の最 下位ビットに 1を加算する (ステップ L12)。たとえば、 y' (i)が 2進数表現で
+ 1. 00000000000000000111111 X 2"0
の場合には、最下位ビットに 1を加算することで y' (i)の値は、
+ 1. 00000000000000001000000 X 2"0
となる。ステップ L11で I x(i) Iが I Ay, (i) Iより大きくなければ、 y,(i)の最下位ビ ットから 1を減算する(ステップ L13)。ステップ L12又は L13の後に、変更された y, (i )と乗数 Aとを乗算部 130で乗算処理する (ステップ L14)。乗算処理結果の絶対値 I Ay,(i) Iが入力サンプルの絶対値 I x (i) Iと等しいかを調べる (ステップ L 15)。 等しくなければ、ステップ L11の判定に変化があつたかを調べる (ステップ L16)。例 えば前回の判定が (i) I > I Ay' (i) Iであったが、今回は (i) I < I Ay' (i ) Iに変化した場合は、前回の誤差信号 z (i)と今回の誤差信号 z (i)との小さい方を Z 符号ィ匕部 14へ出力し、また対応する y' (i)を Y符号ィ匕部 13へ出力する (ステップ L1 7)。従って、誤差算出部 140からの誤差信号 z (i)はステップ L17で比較し、出力でき るように、前回の分は常に保持しておく。なお y' (i)の初期値は y (i)を用いる。
[0032] ステップ L16でステップ LI 1の判定に変化がなければステップ LI 1に戻る。またス テツプ L15で両者が等しければ誤差信号 z (i) =0とし、その入力サンプル x (i)に対 する y(i)の変形処理を終了する。変形処理部 160にはステップ Ll l, L15, L16, L 17の判定を行う判定部 160a、ステップ L12, L13における前回の y' (i)に対する変 形とその保持を行う増減部 160b、ステップ L 17で必要とする誤差信号の記憶部 160 cなどが設けられている。
なお誤差算出部 140からの出力 z (i)の極性 (符号)に基づきステップ L 12又は L13 と同様の変形処理を行うように z (i)を変形処理部 160に帰還して誤差信号 z (i)が最 小になるような y' (i)を決定してもよい。要は変形処理部 140の処理としては、誤差信 号 z (i)が最小になるように y(i)の有効桁の最小桁を最小単位ずつ増減させて y' (i) を決定する。
[0033] ここで、誤差信号 z (i)が最小となる y, (i)の候補が複数存在する場合には、 y, (i)の 最も LSB (最下位ビット)側の 0でな 、ビットが最も MSB (最上位)側にあるものを選択 する (y, (i)の構成ビットのうち 0でないビットの数を少なくすることによって符号ィ匕装置 の圧縮効率が向上する場合がある。 ) o
ここで、誤差が最小となる y' (i)が複数存在する場合に、構成要素のビットで、 1が 最も少ない y' (i)を選択するようにしてもよい。
以上のようにして y(i)が変形された y' (i)が Y符号ィ匕部 13へ入力される。なお、除 算処理部 120では丸めを行わず、 y (i)の所望の有効桁よりも多い有効桁の精度で 除算結果を算出しておき、乗算部 130における乗算結果に対する丸めに基づく誤差 を含む全体の誤差信号 z (i)が最小となるように y (i)を変形した y' (i)を求めてもよ!、。 つまり、符号ィ匕装置における乗算部 130の乗算処理が、復号化装置で行われる乗算 部 210の乗算処理と同じ結果となっていれば、丸め処理を除算処理部 120で行って も、変形処理部 160で変形と同時に行つてもどちらでもよ 、。 この実施例 4も商信号 y(i)に対し変形処理を行うが、 y' (i)を決定する際の評価尺 度が実施例 3と異なる。変形処理部 170の処理として、 Y符号化部 13、 Z符号化部 1 4で可逆符号化を用いる場合に、符号 Cと、符号 Cの合計の符号量が最も小さくな
Y Z
るように、 y(i)を変形して y' (i)とする。例えば、 y' (i)の有効桁を所定の範囲で変化 させ、出力符号サイズの総和が最も小さくなるような y' (i)を探索する。
[0034] 具体的には、その要部の機能構成例を図 13に、処理手順例を図 14にそれぞれ示 す。除算処理部 120からの商信号 y(i)は、変形処理部 170に入力される。まず y(i) と対応する誤差信号 z (i)とをそれぞれ符号化する (ステップ L21)。符号 Cの符号量
Y
Vと符号 Cの符号量 Vとの加算符号量 (ビット数) V +Vを求める (ステップ L22)。
Y Z Z Y Z
次に y(i)の有効桁の最下位ビットに対し、最小単位だけ予め決めた変形、例えば 1 の加算を行う(ステップ L23)。この変形商信号 y' (i)と、この y' (i)に基づき求めた誤 差信号 z (i)とをそれぞれ Y符号ィ匕部 13、 Z符号ィ匕部 14で符号ィ匕する (ステップ L24) 。符号 C , Cの符号量の和(ビット数)を求める (ステップ L25)。
Y Z
[0035] この符号量が前回より増加したかを調べる (ステップ L26)。増加していれば、 y (i) に対する変形を逆にする、つまりステップ L23で最下位ビットに 1を加算した場合は、 最下位ビットから 1の減算を行う。この変形 y,(i)と対応 z (i)を符号ィ匕し (ステップ L28 )、これらの加算符号量を求め(ステップ L29)、符号量の変化が減少していた力、増 加に変化したかを調べる (ステップ L30)。
増加しなければ、 y' (i)をそれまでと同一方向に更に変形してステップ L28に戻る( ステップ L31)。ステップ L26で符号量が増加していなければ、ステップ L31に移る。 ステップ L30で符号量の変化が増加に変化したと判定されると、その直前の符号量と 今回の符号量との少ない方と対応する符号 Cとじを合成部 16へ出力する (ステップ
Y Z
L32)。 [0036] 変形処理部 170内には、ステップ L22, L25, L29で符号 Cとじの符号量を加算
Y Z
する符号量加算部 170a、ステップ L26, L30の判定、ステップ L32内の大小判定な どを行う判定部 170b、ステップ L24, L27, L31の y (i)に対する変形を行う増減部 1 70c、ステップ L32の符号量の判定と、前回の C , Cを出力するためなどに利用され
Y Z
る記憶部 170dなどが設けられる。
例えば y (i)のビット列に 1が連続しているような場合に、あえて 1を加えると順次桁上 りにより 0の連続に変換することが出来る。この場合には、加えた 1を A倍しただけ誤 差信号 z (i)は増加するが、 y' (i)の符号ィ匕効率が良くなるので、全体として符号量は 減少する。 この実施例では、例えば図 15に要部を示すように x (i)を Aで割った商信号 y(i)を 変形処理部 180内の圧縮判定部 180aで観測し、例えば Y符号化部 13においてうま ぐつまり効率的に圧縮できるか条件に合っているかを判定し、条件に合っていなか つたサンプルについては y, (i) =0とする。つまり条件に合っていなければ圧縮判定 部 180aの出力によりスィッチ 180bが 0信号源 180c側に切替えられ、 y' (i) =0に変 形される。 y(i), =0の場合は乗算部 130の出力が 0となり、誤差算出部 140からは z ( i) =x (i)が出力される。 y(i)が条件に合っていると圧縮判定部 180aで判定されると 、スィッチ 180bは除算処理部 120に切替えられ接続され、 y(i)がそのまま y' (i)とし て変形処理部 180から出力される。
[0037] このようにして、あるサンプルについては y(i)を圧縮するよりも x(i)を圧縮した方が 効率よく圧縮することができる場合に、全体の圧縮率を向上させることができる。
なお、実施例 4も 5も、 x (i)力も X (i)を差し引いた誤差が最小になるように y(i)を変 形しているともいえる。
[実施形態 3]
実施例 6 (非可逆符号化)
実施例 6は、商信号 y(i)に対し非可逆符号ィ匕方法により符号ィ匕する例である。その 機能構成例を図 16に示す。除算処理部 120よりの商信号 y(i)は非可逆圧縮符号ィ匕 方法の非可逆 Y符号化部 31で符号化される。その符号化された符号 Cを復号化部 32で、復号化し、その復号化された信号 y(i)に対し、乗数 Aを乗算処理し、その結 果 x' (i)と X (i)との誤差信号 z (i)を得る。
[0038] 復号化装置での処理は、図 4に示した処理と同様に行えばよい。ただし、 Y復号ィ匕 部 53は、非可逆 Y符号化部 31の非可逆圧縮符号化方法と対応する非可逆伸張復 号ィ匕方法のものを用いる。
このように、非可逆 Y符号化部 31、 Y復号化部として、既知の非可逆符号化方式を 用いた場合にも、符号ィ匕部 14, 15、復号ィ匕部 54, 55の処理にそれぞれ可逆符号化 方法とこれと対応する可逆伸張復号ィ匕を用いることによって、全体として可逆符号ィ匕 を行うことが出来る。 Z符号化部 14、 Z復号ィ匕部 54にも非可逆符号ィ匕を用いた場合 には、全体としても非可逆符号化となる。
[0039] 図 16中に破線で示すように、除算処理部 120と非可逆 Y符号ィ匕部 31との間に変 形処理部 35を挿入し、誤差算出部 34からの誤差信号 z (i)を変形処理部 35に入力 して、誤差信号 z (i)が最小になるように y(i)を変形して非可逆 Y符号ィ匕部 31へ入力 するよう〖こしてもよい。同様に全体の符号化サイズ、つまり符号化データ Cの符号量
X
が最小化するように変形処理部で y(i)を、符号化データ Cの
X サイズに応じて変形し
、非可逆 Y符号ィ匕部 31へ供給するようにしてもよい。
[実施形態 4]
例 7
先に述べたように、商信号 y(i)と誤差信号 z (i)、乗数 Aに分離してそれぞれを符号 化したほうが、x (i)をそのまま圧縮符号ィ匕する場合と比較して圧縮効率が良い場合 には、分離して符号化を行い、 x (i)をそのまま符号ィ匕したほうが圧縮効率が良い場 合には、 x(i)をそのまま圧縮符号ィ匕する例を実施形態 4とし、その 1例を図 17に符号 化装置を、図 18に復号ィ匕装置をそれぞれ示す。
[0040] 図 17の分離符号化部 300は、剰余分離処理部 310、可逆符号化方式の Y符号ィ匕 部 320、可逆符号化方式の Z符号化部 330、必要に応じて設けられる A符号化部 34 0、合成部 350を備え、これらの組は実施例 1〜5に示したいずれかと対応するもので ある。直接符号ィ匕部 360は、入力信号 x (i)を直接符号ィ匕するものである。分離符号 化部 300で符号化された符号化データ C のデータ量 (情報量、ビット数) Vと、直接 符号化部 360で符号化された符号化データ C のデータ量 Vとが圧縮率比較部 37
DX D
0で比較される。そして選択部 380は、データ量が少ない方の符号ィ匕データを選択 する。合成部 390は、選択された符号化データと、いずれを選択したかを示す選択 符号(1ビット) Cとを合成して、符号化データ Cとして出力する。
C X
[0041] 復号ィ匕装置においては図 18に示すように、符号ィ匕データ Cは分離部 400で符号
X
化データと選択符号 Cとに分離される。符号 Cが分離符号化データ C であることを
C C SX
示していれば、切替部 410が制御され、符号化データ C が分離復号化部 420に入
SX
力される。符号 Cが直接符号化データ C であることを示していれば、切替部 410が
C DX
制御され、直接符号化データ C が直接復号ィ匕部 430に入力される。
DX
分離復号化部 420内の分離部 440、可逆復号ィ匕方式の Y復号ィ匕部 450、可逆復 号ィ匕方式の Z復号ィ匕部 460、必要に応じて設けられる A復号化部 470、乗算部 480 、誤差補正部 490の組は、実施例 1〜5の復号ィ匕装置のいずれかと対応するもので ある。切替部 510は、選択符号 Cに応じて、分離復号化部 420からの復号信号また
C
は直接復号ィ匕部 430からの復号信号を出力する。なお、切替部 510は省略し、両復 号ィ匕部 420、 430の両出力端を接続して、復号化処理がなされた信号が出力される ようにしてもよい。
[0042] 直接符号ィ匕部 360を独立に設けることなくまた選択符号 Cを省略してもよい。例え
C
ば、図 19に示すように Y符号ィ匕部 321に剰余分離処理部 310からの商信号 y (i)だ けでなぐ乗数 Aも入力する。この場合、 Y符号ィ匕部 321の判定部 321aは、乗数 Aが 1. 0か否かを判定する。乗数 Aが 1. 0でなければ切替部 321bが制御され、商信号 y (i)が商符号ィ匕部 322に入力され、商信号 y(i)に適した符号ィ匕が行われる。判定部 3 21aが乗数 A= l. 0と判定すると、切替部 321bが制御されて商信号 y(i)、つまり入 力信号 x (i)が直接符号化部 323に入力される。この場合の商信号 y (i)は除算処理 部 120の処理出力は Aが 1. 0であるから y(i) =x(i)であり、 x (i)の符号化に適する 符号ィ匕が直接符号ィ匕部 323で行われることになる。選択符号 Cは出力されない。ま
C
た、選択部 380、合成部 390も省略され、図 17に示した構成より簡単になる。
[0043] 対応する復号化装置を図 20に示す。分離部 440で分離された符号 Cは、 Y復号
Y
化部 451に入力されると共に、分離された乗数 A (又は符号 C ) Y復号化部 451〖こ 入力される。判定部 45 laで乗数 Aが 1. 0でないと判定されると、切替部 451bは、符 号 Cを商復号ィ匕部 452に入力する。そして、商復号ィ匕部 452が符号 C に適した復
Y Y
号を行う。判定部 451aが A= l. 0と判定されると、切替部 451bは、符号 Cを直接復
Y
号ィ匕部 453に入力する。そして、直接復号ィ匕部 453が符号 Cに適する復号を行う。
Y
Y復号ィ匕部 451からの復号ィ匕出力 y (i)は、乗算部 480に入力され、乗数 Aとの乗算 処理が行われる。図 18に示した構成より簡単となっている。
実施例 8
実施例 8は分離符号化と、直接符号化の他の例であってその概略を図 21にて示す 。ここで用いられる分離符号ィ匕部 301は、非可逆 Y符号ィ匕部 31として非可逆圧縮符 号ィ匕を用いる場合である。この場合は、復号側から考えると、符号化サイズ (符号ィ匕 量)よりも符号ィ匕波形歪が小さいことが重要である。
分離符号化部 301からの Y符号 C、誤差符号 C及び乗数 A (又はその符号 C )か
Y Z A
らなる符号化データ C とは、局部復号ィ匕部 302で復号ィ匕され、復号化信号列 X'が
SX
得られる。直接符号ィ匕部 360からの符号ィ匕データ C は、局部復号ィ匕部 303で復号
DX
化され、復号化信号列 X"が得られる。歪計算部 304は、局部復号化信号列 X'と原 入力信号列 Xとの波形歪を計算する。歪計算部 305は、局部復号化信号列 X"と原 入力信号列 Xとの波形歪を計算する。これら計算された歪中の小さいものが判定部 3 06で判定される。選択部 380は、その判定結果に基づき、歪が小さい方の符号ィ匕デ ータを選択する。合成部 390は、選択部 380からの符号化データと、判定部 306から のいずれを選択したかを示す選択符号 Cとを合成し、符号化データ Cを出力する。
C X
[実施形態 5]
実施形態 5は剰余分離処理により得られた、商信号列 Y及び Z又は誤差信号列 Z を再帰的に剰余分離処理する。
実施例 9 (符号化 1)
図 22にその機能構成例を示す。入力信号列 Xは、剰余分離処理部 100に入力さ れて、商信号列 Y、誤差信号列 Z、乗数 Aに分離される。その商信号列 Yは剰余 分離処理部 101Yで更に商信号列 Y、誤差信号列 Z、乗数 Aに分離される。その
2 2 2
商信号列 Yは剰余分離処理部 102Yで商信号列 Y、誤差信号列 Z、乗数 Aに分 離される。
[0045] この例では 3回の再帰的分離を行った。最後の商信号列 Yは、 Y符号ィ匕部 103Y
3
で可逆圧縮符号化され、符号 c として出力される。誤差信号列 Z , Z , Zは、それ
Y3 1 2 3
ぞれ Z符号化部 103Z, 103Z, 103Zで可逆圧縮符号化され、符号 C , C , C
1 2 3 Zl Z2 Z3 としてそれぞれ出力される。乗数 A , A , Aは、そのまま、あるいは可逆符号ィ匕され
1 2 3
て C , C , C として出力される。合成部 16は、符号 C , C , C , C , A (又は C
Al A2 A3 Y3 Zl Z2 Z3 1
), A (又は C ), A (又は C )を合成し、符号化データ Cとして出力する。
A1 2 A2 3 A3 X
[0046] 誤差信号列 Zについて同様に再帰的に符号ィ匕してもよい。その例を図 22中に破 線で示す。誤差信号列 Zは、剰余分離処理部 101Zで商信号列 Y(Z )、誤差信号 列 Ζ(Ζ )、乗数 A (Ζ )に分離される。この誤差信号列 Z(Z )は、剰余分離処理部 10 2ZZで商信号列 Y (ZZ )、誤差信号列 Z (ZZ )、乗数 A (ZZ )に分離される。この場 合は、合成部 16は、商信号 Yの可逆符号化符号 C と、商信号列 Y(ZZ )の可逆符
1 Y1 1
号ィ匕部 104Yにより符号化された符号 C と、誤差信号列 Ζ (Ζ ), Ζ(ΖΖ )をそれぞ
YZZ1 1 1
れ符号化部 104Z , 104Zで可逆符号化された符号 C , C と、乗数 Α(Ζ ) (又 はその符号 C ), Α(ΖΖ ) (又はその符号 C )とを合成し、符号化データ Cとして
AZ1 1 AZZ1 X 出力する。
[0047] 更に、剰余分離処理部で分離された商信号と誤差信号との両者を、再帰的に分離 符号ィ匕してもよい。その場合図 22の例では破線で示すように、誤差信号 Ζは剰余分
2
離処理部 102Zで商信号列 Υ(Ζ )、誤差信号列 Ζ(Ζ )、乗数 A (Ζ )に分離される。
2 2 1
Υ(Ζ ) , Z(Z )は、それぞれ符号化部 105Y, 105Zで可逆符号化され、符号 C ,
2 2 YZ2
C が出力される。また、剰余分離処理部 101Zで分離された商信号列 Y(Z )は、剰
ΖΖ2 1 余分離処理部 102YZで商信号列 Υ(ΥΖ )、誤差信号列 Ζ(ΥΖ )、乗数 Α(ΥΖ )に 分離される。商信号列 Υ(ΥΖ )、誤差信号列 Ζ(ΥΖ )は、それぞれ符号ィ匕部 106Y, 106Zで符号化されて、可逆符号 C , C が出力される。
YYZ1 ZYZ1
[0048] 結局、合成部 16は、符号 C , C , C , C , C , C , C , C , C , C
Y3 Z3 YZ2 ZZ2 Z2 YYZ1 ZYZ1 YZZ1 ZZZ1 Z の他に乗数 A, A(Z ), A, A(YZ ), A(ZZ ), A(Z ), A又はこれらの符号を
Zl 3 1 2 1 1 1 1
合成して、符号化データ cとする。
X
実窗列 10 (符畀化 2) このように再帰的分離符号化は、対象とする商信号又は誤差信号が分割できなくな るまで繰り返す。あるいは分割による符号のサイズ (符号ィ匕データ Cのビット数)が減
X
少する効果が得られなくなるまで行う。
[0049] 実施例 10では、商信号列 Yを再帰的に分割する場合を示す。図 23にその処理手 順を示す。まず、入力信号列 Xに対し剰余分離処理をして分離符号化して C , C ,
Y Z
A (又は C )よりなる符号化データ C を求める。また、入力信号 X列を直接符号ィ匕し
A SX
て、符号化データ C を求める (ステップ si)。符号ィ匕データ C とじ のサイズを比較
DX SX DX
して、分離符号ィ匕を選択するかを判定する (ステップ s2)。 C の方が、データ量が少
SX
なぐ分離符号化が選択されると、その分離された商信号列 Yに対し剰余分離処理を して分離符号化し商符号 C 、誤差符号 C、乗数 A (又はその符号 C )からなる符号
Yi Zi i Ai
化データ C を求める(ステップ s3)。
Xi
[0050] この状態での出力符号化データ Cのデータ量として、現在の処理で求めた C と今
X Yi までの処理で求めた全ての誤差符号 Cと全ての乗数 Aとの合計のビット数 V (符号
Zi i Si 化データのデータ量)を計算する (ステップ s4)。データ量 Vと直接符号化の符号ィ匕
Si
データ C のデータ量 Vとを比較し、データ量 Vの方が小さい、かつ前回の分離符
DX D Si
号化データ量 V より小さ ヽことを調べる (ステップ s5)。この条件を満たせば、現在
Si-1
の処理で求めた Cと Aを記憶部に記憶してステップ s3に戻る(ステップ s6)。
Zi
ステップ s5で Vより小さいが V より大である力、 Vより小でなければ、直前処理で
D Si-1 D
得られた C と、直前処理までに得られた全ての Cと Aを符号化データ Cとして出力
Yi Zi i X する (ステップ s7)。ステップ s2でデータ量 Vの方が小さければ、直接符号化データ
D
C を符号ィ匕データ Cとして出力する (ステップ s8)。
DX X
実窗列 11 (街 化: 0
図 22中に示した商信号列 Yを再帰符号ィ匕した符号ィ匕データ Cを復号する例を図 2
X
4に示す。分離部 52からの符号 C は、商復号化部 71で復号化され、 Yが出力され
Y3 3 る。乗算部 210は、この Yに分離部 52からの乗数 Aを乗算処理する。誤差復号ィ匕
1 3 3
部 72は、誤差符号 C を復号化し、誤差信号列 Zを得る。補正部 220は、乗算部 2
1 Z3 3 1
10の出力を復号化された誤差信号列 Zで補正し、商信号列 Yが得られる。
1 3 2
[0051] 乗算部 210は、 Yと分離部 52からの乗数 Aとの乗算処理を行う。誤差復号化部 7 2は、分離部 52からの誤差符号 C を復号化し、誤差信号列 Zを得る。補正部 220
2 Z2 2 2 は、乗算部 210からの出力を、誤差信号 Zで補正し、商信号列 Yを得る。この Yに
2 2 1 1 対し、分離部 52よりの乗数 Aが乗算部 210で乗算処理される。誤差復号化部 72
1 3 3 は、分離部 52よりの誤差符号 C を復号化し、誤差信号列 Zを得る。補正部 220は
Z1 1 3
、乗算部 210の出力を誤差信号列 Zで補正し、原信号列 Xを出力する。
3 1
実窗列 12 (街 化 2)
この再帰符号に対する一般的な復号ィ匕処理手順の例を、図 25を参照して説明す る。まず入力符号化データ Cを各符号に分離して記憶部に記憶する (ステップ si 1)
X
。次にその記憶部中の未復号中の符号ィ匕における最も後段で得られた各符号を選 択する (ステップ sl2)。これら各符号を復号化する (ステップ sl3)。最初は商信号と 誤差信号と乗数が得られ、次回からは、例えば図 24に示した例では誤差信号と乗数 が得られる。
[0052] これら復号化された信号を用いて剰余結合処理を行う(ステップ s 14)。つまり復号 ィ匕された商信号 (又は前回の処理で得られた商信号)は乗算処理される。また、その 結果は、復号化された誤差信号により補正される。
次に記憶部中に未選択の符号があるかを調べ、あれば、ステップ sl2に戻り、なけ れば処理を終了する (ステップ si 5)。このようにして元入力信号列 Xが復号ィ匕される
[実施形態 6]
実施例 13
先に示した各実施例では、フレーム単位で剰余分離処理部 100へ入力した。本実 施例では、剰余分離処理部 100に入力する前に、図 26Aに示すように入力判定部 4 1で x(i)を検査し、剰余分離処理部 100へ入力するか否かの判定をする。例えば、 入力サンプルが単精度の浮動小数点数で表される場合には、無限大の値や、数値 として表すことが出来ない NaNという値であることがある。入力判定部 41では、その 判断部 41aが x(i) =NaNであると判断すると、切替部 41bを制御して、 0源 41cから 剰余処理部 100に X (i)の代わりに 0を出力し、 X (i)を X符号ィ匕部 42に出力する。
[0053] 入力判定部 41は、サンプル x (i)が 0の場合には、剰余分離処理部 100に 0を出力 し、同時に X符号ィ匕部 42にも 0を出力する。
X符号ィ匕部 42は、 x (i)を符号ィ匕して得られた符号を合成部 16に出力する。 復号化装置は、図 26Bに示すように Y復号ィ匕部 57で y(i)を復元する。判定部 57a は、 y(i) =0と判定すると、 X復号ィ匕部 58に通知する。 X復号ィ匕部 58は、その y(i)に 対応し、分離部 52から分離された符号を復号して x (i)を出力する。この x (i)は誤差 補正部 220に入力される。誤差補正部 220は、入力された y(i) =0と対応する x' (i) =0に対し、前記復号した x (i)を加算する。
実施例 14
その実施例 3 (図 11)では、最も誤差 z (i)が小さくなるように y(i)の変形 y' (i)を求め る例を示した。
[0054] 入力されたサンプル x (i)が、そもそも割り算が出来ないような値であったり、乗数 A で割ると誤差が大きくなりすぎるような場合がある。例えば、入力サンプルが単精度の 浮動小数点数で表される場合には、無限大の値や、数値として表すことが出来ない NaNと!、う値であることがある。
入力信号 X (i)が NaNであった場合には、 X (i)を乗数 Aで除算した結果得られた y ( i)も NaNとなる。本実施例では、符号化装置は、図 11中の変形処理部 160に代り図 27に変形処理部 161を備える。変形処理部 161は、判定部 161aが、除算処理部 1 20から渡された y(i) 1S NaNであったと判定すると、切替部 161bを制御して、 0源 1 61cからの y' (i) =0を、 Y符号化部 13および乗算部 130に出力する。
[0055] 乗算部 130では、 y' (i)に乗数 Aを乗じて x' (i)を算出する。よって、 y' (i) =0であ ることから乗算部 130の出力は、 x' (i) =0となり、誤差算出部 140の出力 z (i)は x (i) = NaNとなる。この場合、誤差算出部 140では、誤差を算出する。実施例 3では、誤 差算出に当たって x (i)と x' (i)の減算処理を行うこととしていたが、 x(i) =NaNの場 合には減算は未定義であるため、正しく減算を行うことが出来ない。
そこで、本実施例では、 y' (i) =0の場合には、誤差信号 z (i)として x(i)をそのまま 設定する。なお、図 27の変形処理部 161中の処理部 161dは図 11中の変形処理部 160と同様な機能をもつ。
[0056] 復号化処理装置の誤差補正部 220では、上記と逆の処理を行う必要がある。 すなわち、復元した y' (i) =0であった場合には、 y' (i)に乗数 Aを乗じて得られた x ' (i)も 0となる。誤差補正部 220は、 x' (i)が 0であるから、 Z復号化部 54で復号化さ れた z (i) =x (i)をそのまま出力する。
この場合も、図 26B中に示すように判定部 57aが、 y (i) =0と判定すると、スィッチ 2 61を制御して Z復号ィ匕部 54からの復号ィ匕出力 z (i) =x (i)が x (i)として出力するよう に設定してもよい。この場合、乗算部 130及び誤差算出部 140における処理を行う 必要がなぐ処理が簡単になる。
[0057] なお、図 27では、判定部 161aが y (i)は NaNであると判定すると、 y' (i) =0とする 。また、スィッチ 271はオンとなり、 X符号ィ匕部 272が入力信号 x (i)を符号ィ匕する。そ の符号化出力 Cとスィッチ 273を通じて合成部 16に入力することとしてもよい。この
Z
場合、復号化装置は、図 26B中に示すように、分離部 52で分離された符号 Cを X復
Z
号ィ匕部 58にも入力する。そして、判定部 57aが復号した y (i)が 0であると判定すると 、スィッチ 262を制御して X復号ィ匕部 58の復号結果を復号した x (i)として出力しても よい。
[0058] Z符号ィ匕部 14としては、例えば Rice符号ィ匕法、代数符号化法などが適して!/、る。 X 符号ィ匕部 272としては、ハフマン符号化法、 LZ符号ィ匕法などが適している。 Z復号化 部 54、 X復号化部 26B1は、対応する符号化部の符号化法に対するものである。 浮動小数点表現では、正規化して 1.……となり、この小数点以下の 23ビットが仮 数部とされている。また指数の最小値は— 127であり、指数が— 127の場合は 0か非 正規化数を表す。指数が— 126で、仮数部の最下位ビットのみが 1の場合は浮動小 数点で正規ィ匕表現できる絶対値の最小値である。絶対値がこれ以下の数値は、浮 動小数点表現のための正規ィ匕を行うことができない。入力信号 x (i)が浮動小数点表 現されたサンプル列であった場合には、 NaNの他に、 x (i)が非正規ィ匕数である場合 がある。つまり指数が— 127であり、かつ仮数部の最上位ビットの 1つ上位ビットが 1 でな 、場合 (IEEE— 754形式の 2進浮動小数点表現で正規化された形式により表 わせる最小値より小さい場合)がある。 x (i)が非正規ィ匕数であるような場合に、さらに x (i)を乗数 Aで割るとアンダーフローにより情報が失われる。したがって、 y (i)として 符号ィ匕する際に効率よく圧縮符号化が出来ない場合がある。 [0059] これを避けるために、変形処理部 161中の判定部 161aとして、 x (i)が非正規ィ匕数 も判定できるようにする方法がある。この方法では、 x (i)が非正規ィ匕数であつたと判 定されると、変形処理部 161は y(i)を y' (i) =0に変形して Y符号ィ匕部 13および乗算 部 130に出力する。
乗算部 130は、 y' (i)に乗数 Aを乗じて x' (i)を算出する。したがって、 x' (i) =0と なり、復号ィ匕した z (i) =x(i)力 ¾符号ィ匕部 14に入力される。先の場合と同様に、非正 規ィ匕数であつたと判定して y, (i) =0にした場合には、スィッチ 271, 273を制御して 復号化された z (i) =x (i)をそのまま復号化 x (i)として設定してもよい。この場合の復 号化装置の処理は、図 26Bを参照して述べたと同様である。
[0060] また、入力信号 X (i)が整数で、乗数が Aく 1である場合に、 X (i)を乗数 Aで割って 得られた商信号 y(i)が、表現可能な範囲を超えてしまい、オーバーフロー状態となつ てしまう場合がある。従って、例えば図 27中の変形処理部 161の判定部 161aは、 y( i)のオーバーフローが検出された場合にも、 y, (i) =0とする。この場合、復号化装置 で復号した商信号 y' (i)が 0であれば、前述と同様に、符号 Cの復号化信号 z (i)を
Z
そのまま復号化信号 X (i)とする。
[実施形態 7]
この発明と非特許文献 2に示した技術とを組み合わせた実施形態 7を説明する。 纏列 1 5 化細
図 28に実施例 15の符号ィ匕装置の機能構成例を示す。この実施例 15では、除算 処理部 120からの出力 y(i)が整数ィ匕部 281に入力される。整数ィ匕部 281は、 y(i)を 整数形式の信号 yl (i)に変換する。なお、 y (i)をそのまま整数形式に変換するので はなぐ変形処理部で変形処理して力 変換してもよい。整数形式信号は yl (i)は、 出力する最大振幅の桁数が 24ビット、あるいは 16ビットと定められている場合もある。 その整数形式信号 yl (i)は、その最下位桁に対し丸め処理がなされる。
[0061] この丸め処理された整数形式信号 yl (i)が、前述した各種実施例と同様に Y符号 化部 13に出力される。
この実施例では、浮動小数点化部 282は yl (i)を浮動小数点表現に変換し、乗算 部 130へ出力する。そして、この浮動小数点表現の整数に対し、乗数 Aが乗算される 。誤差算出部 140は、その乗算結果によって誤差信号生成処理を前述と同様に行う 本実施例では、剰数判定部 283は、乗数 Aが 1. 0であるかの判定を行う。 A= l. 0 であればスィッチ 284が切替えられて、入力信号 x (i)が誤差算出部 140ではなぐ差 分生成部 285に入力される。整数ィ匕部 281内に設けられた桁数計算部 281bは、整 数形式信号の桁数 nを計数する。この桁数 nも差分生成部 285に入力される。差分生 成部 285は、浮動小数点入力信号 x (i)の極性 Sと指数部 E、仮数部 Mの下位(23— n)ビットはそのままとして、仮数部中の上位 nビット分をすベて 0とした出力信号 z' (i) を生成する。なお仮数部の整数部分の桁数 n=E— Eは整数形式信号 yl (i)の最上
0
位の " 1 "より下位の桁数と等し!/、。
[0062] この差分信号 z' (i)は、 Z'符号化部 286で可逆符号化される。
従って、合成部 16には、符号 Cと、符号 C (又は A)と、符号 C (A= 1. 0であれ
Y A Z
ば Z'符号ィ匕部 286の出力、 A= l. 0でなければ Z符号ィ匕部 14の出力)が入力される ことになる。 図 28に示した符号化装置と対応する復号化装置を図 29に示す。分離部 52で分離 された符号 Cは、 Y復号化部 291で復号化され、整数形式信号 yl (i)が得られる。
Y
整数形式信号 yl (i)は、浮動小数点化部 292で浮動小数点信号とされる。 A復号ィ匕 部 55からの乗数 Aは、剰数判定部 293で A= l. 0か否かが判定される。 Aが 1. 0で なければ、スィッチ 294が Z復号化部 54側に切替えられ、この Z復号化部 54で復号 された誤差信号 z (i)が補正部 220に供給される。
[0063] Aが 1. 0の場合は、スィッチ 294は Z'復号ィ匕部 295側に切替えられ、符号 Cが復
Z
号化される。 Z'復号ィ匕部 295には、 Y復号ィ匕部 291内の桁数計算部 29 laで計算さ れた整数形式信号の桁数 nも入力される。 Z'復号化部 295は、浮動小数点表現に おける 23ビットの仮数部の上位 nビットに" 0"を埋め、下位 23— nビットに符号 Cの復
Z
号信号を設定する。組立部 295aは、前記仮数部と、復号された符号ビット Sと、復号 された指数部 E— Eから、浮動小数点形式の差分信号 (誤差信号) z (i)を組立てる。
0
この差分信号 z (i)が補正処理部 220に入力される。 [0064] なお、スィッチ 294、 Z復号化部 54、 Z'復号ィ匕部を一体として、 Z復号化部 54'とし ても良い。この場合は、乗数判定部 293は図 29のように独立した構成部としても良い し、 Y復号ィ匕部 291の一部とし、整数形式信号の桁数 nと一緒に乗数 Aの値を Z復号 化部 54'に供給しても良い。
図 28の変形処理部 281aにより y(i) =0に変形処理される場合は、図 28に破線で 示すように、 y変形判定部 287で yl (i) =0に変形したことが判定されると、スィッチ 28 8を制御して、入力信号 x (i)を X符号ィ匕部 272で直接符号ィ匕し、その符号化結果を Cとして合成部 16へ供給してもよい。
Z
[0065] 図 29中に破線で示すように、変形判定部 296が、復号化された yl (i)が 0かを判定 する。 yl (i) =0と判定された場合は、スィッチ 297が、補正処理部 220側から X'復 号ィ匕部 26B1側に切替えられる。そして、 X'復号化部 26B1で復号化された符号 z (i )が復号化信号 x (i)として出力される。
纏列 1 7 化細
この実施例は、剰余分離処理部 600の出力に対して非特許文献 2に示した方法を 適用した例である。図 30にこの実施例の符号ィ匕装置の機能構成例を示す。剰余分 離処理部 600内の (入力判定)剰数推定部 301で乗数 Aを推定する。除算処理部 1 20は、入力信号を除算処理する。変形処理部 302は、除算結果 y(i)を変形処理し、 処理結果 y' (i)を出力する。乗算部 130は、 y (i)と乗数 Aとを乗算する。更に、誤差 算出部 140は、その乗算結果と入力信号との誤差算出処理を行い、誤差信号 z (i)を 出力する。
[0066] 整数誤差分離部 303内の整数化部 303aは、変形処理された y' (i)を、必要に応じ て最大振幅が予め決められた整数形式信号 yl (i)に変換する。また、 y' (i)中の整 数値未満 (小数点以下)の部分が浮動小数点誤差信号 y2 (i)として出力される。 Y符 号ィ匕部 13は、整数形式信号 yl (i)を符号 Cに符号化する。誤差符号ィ匕部 304は、
Y
浮動小数点誤差信号 y2 (i)を可逆符号ィ匕し、符号 C として出力する。剰余分離処
2Z
理部 600からの誤差信号列 Zは、 Z符号ィ匕部 14へ入力される。また、乗数 Aは必要 に応じて符号化されて合成部 16に入力される。
実施例 18 (複号化処理) 実施例 17の符号ィ匕装置に対応する復号ィ匕装置の機能構成例を、図 31に示す。 Y 復号ィ匕部 53は、整数形式信号である復号化信号 yl (i)を、浮動小数点化部 312〖こ 出力する。誤差復号化部 311は、分離部 52からの符号 C を、浮動小数点形式の復
2Z
号ィ匕信号 y2 (i)に復号化し、浮動小数点化部 312に出力する。浮動小数点化部 31 2は、 yl (i)と y2 (i)とを組み合わせ、最大振幅が前記予め決められた浮動小数点信 号 y' (i)を生成する。剰余結合処理部 200は、 y' (i)に乗数 Aを乗算し、 Z復号化部 5 4で復号化された誤差信号を加算する。その他の処理は先の実施例と同じである。
[0067] 図 30の誤算信号 y2 (i)と誤差信号 z (i)とは、いずれも小さい振幅の信号であり、比 較的似た性質があるため、誤差符号ィ匕部 304と Z符号ィ匕部 14は破線で囲んで示す ように 1つのエントロピィ符号器で符号ィ匕してもよい。例えば、フレーム中の y2 (i)を全 て符号化した後、 z (i)を符号化する方法がある。このように 1つの符号化器を用いる 場合は、復号ィ匕装置でも、図 31中に破線で囲んで示しているように、 1つの対応する 復号化器で復号してもよい。
図 28の変形処理部 281aや図 30の変形処理部 302としては、実施例 2〜7、 9〜1 4に説明した各種変形方法の!/、ずれか 1つ又はその中のいくつかを同時に用いるも のであってもよい。更に、(入力判定)乗数推定部 301では、実施例 13 (図 26A)の 入力判定部 41と同様に、入力信号 x (i)が無限大の値や NaNの場合、これを判定し て、 x(i) =0とし、乗数推定を行う。つまり、剰余分離処理部 600からは、 y' (i) =0を 出力する。また、スィッチ 305をオンにしてその時の x (i)を X符号ィ匕部 42で直接符号 化し、合成部 16へ出力する。復号化装置では、図 26Bと同様に、判定部 57aが復号 化した y(i)が 0であると判定すると、スィッチ 313をオンにする。 X復号ィ匕部 58は、分 離部 52からの分離符号を復号ィ匕して、 x(i)を出力する。また、剰余分離処理部 600 内の変形処理部 302でも実施例 2〜7、 9〜14で説明した処理と同様のことがなされ 、これと対応する処理が復号化装置においても、図 29に示したと同様に行われる。
[0068] 実施例 15〜18では、可逆符号ィ匕について説明した。実施例 6 (図 16)、 8 (図 21) でそれぞれ説明した非可逆符号ィ匕についても、実施例 15〜18に適用することもでき る。また、実施例 9〜12 (図 22〜図 25)の再帰処理も、実施例 15〜 18に適用するこ ともできる。符号 Z'、符号 Zはそれぞれ符号ィ匕することなく上記差分信号、誤差信号 をそのまま出力してもよい。つまり符号ィ匕しても圧縮効果がほとんど得られない場合も ある。
[実施形態 8]
乗数 Aを有理近似で決定する手法の実施形態を以下に説明する。
実施例 19
図 32に、複数の数値の集合の共通乗数を求める処理手順を示す。まずフレームご とに乗数 Aを新たに推定するか否かを決定する。現フレームの全入力信号 x (i)を入 力する(ステップ 32—1)。前フレームの乗数 Aが 1. 0でないかを調べる(ステップ 32 — 2)。 1. 0でなければその現フレームの乗数 Aの候補とする(ステップ 32— 3)。全て の入力信号 x (i)についてその乗数 Aが妥当であるかを調べ、妥当でなければその乗 数を A= l . 0に変更する(ステップ 32— 4)。乗数 Aが 1. 0でないかを調べる(ステツ プ 32— 5)。 1. 0でなければそのフレームの乗数候補を現フレームの乗数 Aとする(ス テツプ 32— 6)。
[0069] ステップ 32— 2で前フレームの乗数 Aが 1. 0、またはステップ 32— 5で乗数 Aが 1.
0であれば、各入力信号を用いて有理近似で乗数 Aを推定する (ステップ 32— 7)。 その乗数 Aが 1. 0でないかを調べ、 1. 0でなければステップ 32— 4に移る(ステップ
32— 8)。
次に図 32中のステップ 32— 7で推定した乗数 Aについて調べ、かつ除算処理結果 y (i)を変形する手順の例を、図 33を参照して説明する。全ての x (i)のチェックを完 了したかを調べる (ステップ 33 - 1)。調べてな 、ものがあればその入力信号 X (i)が NaNである力 無限大であるか、 0であるか、非正規化数であるかを調べる(ステップ
33— 2)。 Yesであれば y(i)を 0にし、ステップ 33— 1に戻る(ステップ 33— 3)。
[0070] ステップ 33— 2で前記条件外であれば (例外の値でなければ)、その信号 X (i)を推 定した乗数 Aで割算して ylとする (ステップ 33— 4)。 ylの仮数部の最下位ビット (LS B)を 0でマスクして y2とする(ステップ 33— 5)。 y2に乗数 Aを掛算し、その結果を xl とする (ステップ 33— 6)。信号 x(i)力も xlを引算し、その結果を zとする (ステップ 33 7)。
この引算の余り zが 0でないかを調べる(ステップ 33— 8)。 0でないならば、 xlの絶 対値が信号 x (i)の絶対値より小さ!、かを調べる (ステップ 33— 9)。 xlの絶対値の方 力 、さければ ylの仮数部最下位ビット (LSB)に 1を足してその値^ ylとおく(ステツ プ 33— 10)。その ylの仮数部最下位ビットを 0でマスクして y2とする(ステップ 33— 1 Doその y2に乗数 Aを掛算してその結果を xlとし、ステップ 33— 9に戻る(ステップ 3 3— 12)。
[0071] ステップ 33— 9で、 xlの絶対値の方が小さくなければ、 xlの絶対値力 (i)の絶対 値よりも大きいかを調べる(ステップ 33— 13)。 xlの絶対値の方が大きければ、 ylの 仮数部最下位ビットから 1を引算し、その結果を ylとする (ステップ 33— 14)。その yl の最下位ビットを 0でマスクした値 ¾y2とする(ステップ 33— 15)。その y2に乗数 Aを 掛算して、その結果を xlとする (ステップ 33— 16)。次に信号 x(i)力も xlを引算し、 結果を zとする (ステップ 33— 17)。その引算した結果 zが 0かを確認する (ステップ 33 — 18)。 z≠0ならば、その時の乗数 Aを 1.0として終了する(ステップ 33— 19)。ステ ップ 33— 13で、 xlの絶対値が大きくなければステップ 33— 17に移る。
[0072] ステップ 33— 8及びステップ 33— 18のいずれかで、 z = 0ならば、ステップ 33— 20 に移る。ステップ 33— 20では、信号 x (i)の仮数部の最下位ビットの 8ビットがすべて 0であり、かつ ylの最下位ビットが 0でないかを調べる(ステップ 33— 20)。この両条 件を満たせば、 ylの最下位ビットが 0でな 、サンプル (信号 X (i) )の数がしき 、値 (例 えば 10)を超えたかを調べる(ステップ 33— 21)。しきい値を超えていれば、ステップ 33— 19に移り、超えていなければステップ 33— 22に移る。ステップ 33— 22では信 号 X (i)の仮数部の最下位ビットがすべて 0であり、かつ ylの最下位ビットが 0でな!/ヽ かを調べる(ステップ 33— 22)。
[0073] ステップ 33— 22の両条件を満たせば、 ylの最下位ビットが 0でな!/、サンプル (信号 X (i) )の数がしき 、値 (例えば 100)を超えたかを調べる(ステップ 33— 23)。しき 、値 を超えていれば、ステップ 33— 19に移る。
ステップ 33— 22でいずれかの条件を満たしていなければ、 y (i)を ylとしてステップ 33— 1に移る(ステップ 33— 24)。ステップ 33— 8で、 zが 0であればステップ 33— 20 に移る。ステップ 33— 1ですベての信号 x(i)についての乗数のチェックを完了すれ ばその当該乗数 Aを正 、と決定する (ステップ 33— 25)。この際 y (i)も求まって!/、る ことになる。ステップ 33— 9ないしステップ 33— 16は、 yに対する変形処理である。ス テップ33— 9〜33— 12、ステップ33— 13〜33— 16は、各々 y(i)のダイナミックレン ジがなるベく小さくなるような処理である。
[0074] yの変形の基本処理を図 34に示す。図 33と異なるところのみを説明する。ステップ 33— 8で、 zが 0であれば、直ちにステップ 33— 24に移る。同様にステップ 33— 18で 、 zが 0であれば、直ちにステップ 33— 24に移る。ステップ 33— 18で、 zが 0でなけれ ば、 zが所定ビット数 (例えば 23ビット)以下で表現できるかを調べる (ステップ 34— 1) 。表現できれば、ステップ 33— 24に直ちに移り、表現できなければステップ 34— 2に 移る。ステップ 34 - 2では、 y (i)を 0としステップ 33— 1に移る(ステップ 34— 2)。ステ ップ 33— 1ですベての信号 X (i)につ 、て処理を完了すれば、この y (i)を変形する処 理は終了する。
[0075] 次に浮動小数点を整数に変換する処理手順の例を、図 35を参照して説明する。実 施例 15 (図 28)の整数化部 281や、実施例 17 (図 30)の整数化部 303aにこの処理 は適用できる。
乗数 A、信号 x (i)、除算処理結果 y(i)に対し、図 34で変形処理したもの (これも y (i )と記載する)を入力する (ステップ 35— 1)。 y(i)の絶対値の最大値力もシフト係数 S cを求める(ステップ 35— 2)。符号ィ匕装置が想定する量子化ビット数を BMAとし、ス ケール係数 Sを次式により求める(ステップ 35— 3)。
F
[0076] S = 2(BMA"1+Sc)
F
すべての x (i)について処理が完了したかを調べる(ステップ 35— 4)。完了していな ければ、 y(i)が 0であるかを調べる(ステップ 35— 5)。 0であれば、 y, (i) =0としてス テツプ 35— 4に戻る(ステップ 35— 6)。ステップ 35— 5で、 y (i)力^)でなければ、 y (i) が正であるかを調べる (ステップ 35— 7)。 y(i)が正であれば、 y (i)が正の場合の整 数化処理を行って y,(i)を求め、ステップ 35— 4に戻る(ステップ 35— 8)。ステップ 3 5— 7で y (i)が正でなければ、 y (i)が負の場合の整数ィ匕処理を行って y, (i)を求め、 ステップ 35— 4に戻る(ステップ 35— 9)。ステップ 35—4ですべての ( について処 理が完了すれば、 y' (i)を求める処理は終了する。
[0077] 図 35のステップ 35— 8の y(i)が正の場合の整数化処理の手順例を、図 36を参照 して説明する。 y(i)にスケール Sをかけた値に対して小数点以下を切り捨てて y' (i)
F
を求める(ステップ 36— 1)。なお
[数 2]
M
は Aの小数点以下の切捨てを表わす。 y' (i)をスケール Sで割算し、その結果を y
F
1とする (ステップ 36— 2)。 y 1に乗数 Aを掛算してその結果を 1とする (ステップ 36 - 3)。信号 x(i)力も xlを引算し、 zを求める (ステップ 36— 4)。 zが 0でないかを調べる( ステップ 36— 5)。 Zが 0でなければ、 xlが x (i)より小さいかを調べる(ステップ 36— 6 ) o xlの方が小さければ、 y, (i)に 1を加算して y, (i)とする (ステップ 36— 7)。その y, (i)をスケール Sで割算して ylとする (ステップ 36— 8)。その ylに乗数 Aを掛算し xl
F
としてステップ 36— 6に戻る(ステップ 36— 9)。
[0078] ステップ 36— 6で xlの方が小さくなければ、 xlが x (i)より大きいかを調べる(ステツ プ 36— 10)。 xlの方が大きければ、 y' (i)から 1を減算しその結果を y' (i)とする (ス テツプ 36— 11)。その y,(i)をスケール Sで割算し、その結果を ylとする (ステップ 3
F
6— 12)。その ylに乗数 Aを掛算し、その結果を xlとする(ステップ 36— 13)。その x 1を信号 x (i)から引算し、その結果を zとする (ステップ 36— 14)。その zが 0でないか を調べる(ステップ 36— 15)。 zが 0でなければ zが所定ビット数 (例えば 23ビット)以下 で表現可能かを調べる (ステップ 36— 16)。表現可能でなければ、 y' (i)を 0としてス テツプ 36— 18に移る(ステップ 36— 17)。ステップ 36— 5で zが 0であれば、その時の y, (i)が求める y,(i)である。ステップ36— 10で xlの方が大きくなければ、ステップ 3 6— 18に移る。ステップ 36— 15で zが 0であれば、ステップ 36— 18に移る。ステップ 3 6— 16で zを所定ビット N以下で表現できれば、ステップ 36— 18に移る。
[0079] なおステップ 36 - 16で、 zが Nビット(この例では 23ビット)以下で表現できな!/、場 合は y,(i)を 0とするかわりに乗数 Aを 1. 0としてもよい。この場合は y,(i)は x (i)から 実施例 16又は実施例 17で行っている手法によって再度求め直す。
次に y(i)が負の場合の y(i)の変形手順の例を、図 37を参照して説明する。 y(i)に スケール Sをかけた値の小数点以上を切り上げて整数 y,(i)とする(ステップ 37—1) ここで
[数 3]
は Aの少数点以下を切り上げることを表わす。 y' (i)をスケール Sで割算し、 ylとする
F
(ステップ 37— 2)。その ylに乗数 Aを乗算して xlとする (ステップ 37— 3)。信号 x (i) 力も xlを引算し、結果を zとする (ステップ 37— 4)。 zが 0でないかを調べる (ステップ 3 7— 5)。 zが 0でなければ xlが x(i)よりも大きいかを調べる(ステップ 37— 6)。 xlの方 が大きければ、 y' (i)から 1を減算し、その結果を y, (i)とする (ステップ 37— 7)。その y' (i)をスケール Sで割算し、その結果を ylとする (ステップ 37— 8)。その ylに乗数
F
Aを掛算し、その結果を xlとして、ステップ 37— 6に戻る (ステップ 37— 9)。
[0080] ステップ 37— 6で xlの方が大きくなければ、 xlが x (i)より小さいかを調べる(ステツ プ 37— 10)。 xlの方が小さければ、 y' (i)に 1を加算して、 y' (i)とする(ステップ 37 — 11)。その y' (i)をスケール Sで割算して、割算結果 ylを求める (ステップ 37— 12
F
)。その ylに乗数 Aを掛算し、結果を xlとする (ステップ 37— 13)。 xlを x (i)から引 算して、結果を zとする(ステップ 37— 14)。 zが 0でないかを調べる(ステップ 37— 15 ) o zが 0でなければ、その zが所定値 (この例では 23)ビット以下で表現できるかを調 ベる(ステップ 37— 16)。表現できなければ、 y' (i)を 0としてステップ 37— 18に移る( ステップ 37— 17)。ステップ 37— 5で zが 0であれば、ステップ 37— 18に移る。同様 にステップ 37— 15で zが 0であれば、ステップ 37— 18に移る。それぞれその時得ら れている y,(i)を、求める y, (i)とする。ステップ 37— 10で xlの方が小さくなければス テツプ 37— 18に移る。ステップ 37— 16で zが Nビット以下で表現できればステップ 3 7—18に移る。このようにして y' (i)を変形する処理が終了する。
[0081] なおステップ 37— 16で zが Nビット以下で表現できな!/ヽ場合は、 y ' (i)を 0とする代 わりに A= l. 0としてもよい。この場合は、 y' (i)は実施例 15又は実施例 17で説明し た手法によって X (i)力 再度求め直す。
入力信号 x(i)が浮動小数点形式ではなく整数形式表現の場合に共通の乗数を求 めるには、その入力信号 x (i)の極性をまず判断する。正であれば y (i)に対する変形 処理を図 36に示した手法で行い、負であれば x (i)が y (i)に対する変形処理は図 37 に示した手法で行えばょ 、。
[実施形態 9]
以下に前述の乗数推定部 110における乗数 Aの決定について説明する。 実施例 20 (有理沂似)
有理近似による乗数 Aを推定する方法を、図 38を参照して説明する。仮数部変換 部 381は、入力された浮動小数点数 x (i)の各仮数部の最上位ビット(MSB)の 1ビッ ト上位に、 1を配して符号なし 24ビット整数 mx (i) (i=0, 1, · · · , N)とする。ただし x ( i)力 NaNや非正規ィ匕数の場合は mx (i) =0に変換する。この場合、全入力信号を 入力することなぐ例えば x (i)を絶対値表現で小さい順に配列し、 1フレーム(例えば 2048サンプル)中の 0以外の複数個(例えば 512個)をソート部 380で選出して仮数 部変換部 381に入力しても良 、。
[0082] GCD計算部 382では、必要に応じて、通常用いられているユークリッドの互除法を 用いて最大公約数 gcdを計算する。 gcdが判定部 382aの基準値よりも大きければ、 その値を乗数として出力しても良い。しかし、この例ではその gcdを AOとし、分母選定 部 383が、例外値 (mx (i) =0)以外の mx (i)を AOで割算し、この結果 my (i)を出力 する。そして、以下のアルゴリズムを使い、乗数 Aの推定値を計算する。その際に AO 分の調整を加える場合もある。
このような乗数 Aの推定方法はいくつか考えられる。
第一の方法 (最初の方法. 某本)
前述したように例外値を mx (i)とした mx (i)を求めることは同様である。
(1)分母選定部 383は、 mx (i)中の最大値を選択し、その値を Xとする。
(2)例外値 (mx (i) =0)以外の mx (i)を一つずつ取り、下記式(1)を有理近似計算 部 384で計算する。
(mx (i) - 1/2) / (X+ 1/2) < my (i) /Ύ (i)
< (mx (i) + 1/2) / (X— 1/2) (2)
この式 (2)を満たす分母最小の既約分数 my (i) /Ύ (i)を求める。
[0083] ここで連分数展開を利用する。 有理近似計算部 384における処理手順を以下に示す。
ステップ 1. (mx(i)- l/2)/(X + l/2)=nlow/dlow,(mx(i)+l/2)/(X- l/2)=nhigh/dhigh と既約分数で書く。
ステップ 2. nlow/dlow< Knhigh/dhighならば 1/1を出力する。
ステップ 3. dn=max{dlow,dhigh}とし、 dnに対応する分子を nmとする。
ステップ 4. nO = dl = 0, nl = dO=l, i=0とおく。
[0084] ステップ 5. k=[nm/dn] (nm/dnを超えな!/、最大の整数) , r= (nmを dnで割ったあまり )、 nm=dn, dn=rとお \。
ステップ 6. s=nO+nlXk, t=dO + dlXk, nO=nl, dO = dlとおく。 ステップ 7. nm(i)=nl=s, dn(i) =dl=tとおく。 dn>0ならば iを 1増やしステップ 5へ戻り、 dn=0ならばステップ 8へ移る。
ステップ 8. nlow/dlowく nm (i) /dn (i) < nhigh/dhighとなる最小の iを求める(dn=dlo wの場合は奇数のみ、 dn=dhighの場合は 2以上の偶数のみ調べれば十分)。
[0085] ステップ 9. i=lのときは、(l+kXnm(0))/k< nhigh/dhighを満たす最小の整数 kを求め、(l+kXnm(0))/kを出力する。
iが 1より大きい奇数のときは、 (nm(i-2) +kXnm(i—l))/(dn(i—2) +kXdn(i— 1 ) ) < nhigh/dhighを満たす最小の整数 kを求め、(nm (i— 2) + k X nm (i— 1 ) ) / (dn (i— 2)+1^ ^1(卜1))を返す。
iが偶数のときは、 (nm(i-2) +kXnm(i— 1))バ dn(i— 2) +kXdn(i— 1)) >nlow/dl owを満たす最小の整数 kを求め、(nm(i— 2) +kXnm(i—l))/(dn(i— 2) +kXdn(i 1))を返す。
[0086] 以上の処理が可能なことは高木貞治著「初等整数論理講義」第 2版、 2003年 9月 1 5日共立出版株式会社発行、 124〜145頁参照(以下非特許文献 3という)から次の ように理解される。この非特許文献 3の 140頁の定理 2.7から以下が成立つ。
実数 ωに対して誤差範囲 ε >0を指定したとき、
ω— ε ^a/b< ω
(または co<aZbく ω+ ε )
となる分母最小の分数 aZbは、 ωの奇数番目(または偶数番目)の主あるいは中間 近似分数である。これは、定理 2. 7のすぐ下にある証明(全体で 4行)の、「また」から 始まる後半 3行を言 、換えたものである。
[0087] 上記主張の ωが前記有理近似計算部 384の nm/dn,
ε力 nm/ dn― nlow/ dlow、 たは nhigh/ dnigh― nm/ dn)である。
定理 2. 7のある第 2章では ωを無理数としている力 140頁中程の [注意]にある通 り、場合分けなどに注意すれば、結論は有理数の場合にも成立する。今の場合、有 理近似計算部 384のステップ 3の、
「dn=max{dlow,dhigh}とし、 dnに対応する分子を nmとする。」
がその注意にあたる (分母が大きい方を ωとして連分数展開)。
(3)共通分母確認部 385で例外値以外の mx (i)の数だけ得られた Yiの最大値 Yを 求め、
(4)この Υの約数となる Yiの数 Νが、あら力じめ決めてある条件(下記に示す)を満た せば、共通因数計算部 386で乗数 Aの推定値として、 Yをシフトして 1く =XZYく 2 となるようにしたときの XZYを、浮動小数点表現で計算したものを出力する。
[0088] 条件を満たさなければ乗数 Aとして 1を出力する。
前記あら力じめ決めてある条件の具体例は、例外値 (mx (i) =0)を除いたデータ数 を、 mとすると下記の通りである。
N≥C (あらかじめ決めた数)
N≥cm (0< c< 1はあらかじめ決めておく)
入力信号によっては桁上りが生じる確率が知られており、 1フレーム中で例えば 20 %程度が桁上りとなる場合は、 Nは 70%の値とする。また乗数 Aをなるベく利用した ほうが符号量を小さくできる点力も Nは 20%程度でも良い。また Aの精度をよくしたい 場合は 80%程度とする。なお Aの正当性は後で調べる。
前記 (4)で、条件を満たすとき、 Yの約数となる Yiについて、 mxiZYi (Yiは条件を 満たすようにシフトした上で)の平均を Aとして出力する。この平均により Aの誤差が少 なくなることが期待できる。条件を満たさないときは上記と同じ様に A= l. 0を出力す る。 [0089] 前記 (4)で、 Yiの最小公倍数 Yを求め、それが X以下なら、 Χ/Υ (Υをシフトした上 で)を浮動小数点表現で計算した値を出力する。つまり Yiは、必ず最大公約数となる か不明であるが、 Yiの最小公倍数を求めれば、必ず全体に対する最大公約数にな る。あるいは、 Yの約数となる Yi力 計算したものの平均を用いる。条件を満たさない ときは上記と同様に A= l. 0を出力する。
このようにしてこれまでよりも広 、範囲から Yiを選択できる。
前記(1)で、最大値 Xの代わりに、大きい方力も M個(あら力じめ決めた数、 2以上、 好ましくは、 3〜50内の数)を取り、それぞれについて Aを推定し、多数決で勝ったも のつまり mxi中に最も多く共通に使用できるものを出力する。
[0090] この場合は、一個だけで求めると、たまたま素姓の悪 、データ(例えば桁上りしたも のとしないものが混在した場合に対する X)を回避する。
前記(1)でランダムに M個(あら力じめ決めた数)を取り、以下同様に各 Aを推定し 、多数決で決める。
この理由は大き 、方力も M個とる理由と同様である。
前記(1)で最大値の代わりに、大きい方力 順に取り、それぞれについて Aを推定 する。
[0091] 1以外の推定値 Aが M個(あら力じめ定められた数)集まったところで、それを出力 する。 M個集まる前にデータがなくなれば、足りない分は A= lとして出力する。これ ら複数候補でいずれがよいかは検算ルーチンにま力せた方がよい。例えば、前記実 施例 3 (図 11、図 12)で説明した変形処理、あるいは実施例 4 (図 13、図 14)で説明 した変形処理を各乗数 Aごとに処理して、最も好ま ヽ Aを選択する。
図 39に示すように、図 38に示した処理を次のように変更してもよい。分母選定部 3 91は、 GCD計算部 382で得られた gcdAOで各 mx (i)を割算する。これは、分母選 定部 391で、 GCD計算部 382で得られた gcdを後の処理で再び求めないため、つま り無駄な処理を少なくするためである。有理近似計算部 392は、 mx (i) ZAOを、有 理近似計算部 384での mx (i)と同様に扱った処理を行う。また mx (i) ZAOとして処 理をしているため、共通因数計算部 386は、得られた乗数候補を AO倍して乗数 Aと する。 [0092] 図 40に示すように、図 38に示した処理を次のように変更してもよい。共通分母確認 部 402は、 Yiが見つ力もないと判定部 402aで判定すると、分母選定部 401で他の 1 個の分母 Xを選定させる。この選定は、 mx (i)の大きい順、あるいはランダムに行う。 分母 Xの選定をあら力じめ決めた回数、例えば 5回行っても Yiがみつからない場合 は A= l. 0を出力する。
図 39中に破線 394で示すように、共通分母確認部 385で Yiが求まらな ヽ場合は、 図 40で説明したと同様に、分母選定部 391で他の分母 Xを選択するようにしてもよい 。分母選定部 391では Xを M個ではなぐ 1個ずつ選定する。
[0093] 図 41の変形例では、有理近似計算部 411は、各 mx (i)と対応した my (i) ZYiを求 める。ここで、乗数 Aは、除算処理結果 y (i)がなるベく小さいくなるものがよい。従って 共通分母確認部 412では、分母 Yの最も小さい 1個を選択し、共通分母となり得るか を確認する。共通分母となり得ない場合は、有理近似計算部 411が、次に大きい Yと y (i)の組を選択する。共通分母確認部 412は、この組に対して共通分母となり得るか を確認する。このようなことを繰り返し、最も好ましい y(i) , Y(i)の組を決定する。図 4 1中に破線で示すように、最も大きい共通分母が得られなければ、最初に入力された Yi, yiをそれぞれ 1単位ずつ増加させて、共通分母を求めるようにしてもよい。
第二の 法 (いくつか ffiしてグループ作成)
この方法は、 χθ, · ··, xnをあら力じめ定めた数ずつ足して、相対的に誤差を減らす 方法である。
[0094] 最初に仮数部を符号なしの 24ビット整数形式 mx (i)に変換し、例外値は mx (i) = 0とする。そして、
(1) mx (i)を大き 、順に配列し、大き 、方から M個ずつ(Mはあらかじめ決めておく) 加えたものを XIとする(仮数部変換部 381で)。
(2) Xiの最大値を取り Xとする(分母選定部 383で)。
(3) Xiを一つずつ取り、
(Xi— 1/ (2 M) ) / (X+ 1/ (2 M) ) <yi/Yi
< (Xi+ 1/ (2 M) ) / (X- 1/ (2 M) )
を満たす分母最小の既約分数 yiZYiを求める (有理近似計算部 384で)。 [0095] 以下は第一の方法の (4)以下の処理と、その変形処理を行う。
このようにすると、第一の方法よりも相対的にデータの誤差が減るので、正しい Yを 求める確率が上がる。
第三の方法 (全探索その 1. Vベース)
この方法も、 mx(i)を求める処理は同じである。
(1) mx (i)の最大値を取り、 Xとする。
(2) mx (i) <Xとなる i最小の例外値 (mx (i) =0)ではな 、xiを用い、
(xi— 1/2) / (X+ 1/2) <yi/Yi< (xi+ 1/2) / (X- 1/2)を満たす分母最 小の既約分数 yiZYを求める。
(3)例外値 (mx (i) = 0)以外のすべての xjに対し、
(xi- 1/2) / (X+ 1/2) <yj/Y< (xi+ 1/2) / (X— 1/2)
を満たす分母が Yとなる分数 yjZYが、存在するかどうか調べる。
(4)すべての場合に存在すれば、 Aの推定値として XZYを出力する。あるいは、 xj Zyjの平均を出力する。
[0096] 存在しな!、jがあれば、
(xi— 1/2) / (X+ 1/2) <yi/Yi< (xi+ 1/2) / (X— 1/2)
を満たす分母であって、 Yのつぎに小さい分数を求め、その分母を改めて Yとする。 もし、 Yく Xなら(3)へ戻り、もし、 Y=Xなら 1を出力する。
第 Wの方法 (全 索その 2. Αベース)
この方法では、 Aについての全探索を行う。
まず、前述の有理近似を用いた共通乗数を求める考え方を、図 38を参照して説明 する。前述したように、 GCD計算部 382では、入力信号 x (i)に誤差が含まれていると 正しい値を求めることができない。分母選定部 383で、 1フレーム中の mx(i) =0以外 の適当な代表値を X(分母)として選ぶ。この場合、最大公約数という点力もなるベく 情報量が多 、信号 (前記では最大値)が好まし!/、。
[0097] 有理近似計算部 384では、代表値 Xとそのフレーム中の全ての mx (i) (前述したよ うに、 mx(i) =0を処理力も除くことは、以後の説明では省略する。)を分子とする分 数 mx (i) ZXにおいて、 mx (i)中に含まれている誤差を考慮した時に、 mx (i) ZXが 、正しい値に対して負の誤差か正の誤差を含むが、その最大誤差範囲内にある yiZ Yを求める。前述では四捨五入による誤差としたため、 1Z2を士したが、誤差が士 a であるとすれば、次式を満たす分母最小の既約分数 yiZYiを求めることになる。
[0098] (mx (i)- α)/ (Χ+ a ) <yi/Yi< (mx (i) + α)/ (X— a )
例えば mx(i)に ±2の誤差があるとすれば a =2とする。正負の誤差が非対称の場 合は + a、 一 j8を用いればよい。
この既約分数 yiZYiは、先に示した非特許文献 3中の連分数展開を利用した定理 力 必ず求まる。
このようにして求めた yiZYiは、フレーム中の mx(i)の数だけある。従って、共通分 母確認部 385で Yi中の各 mx(i)に共通な値を求める。この場合、同一の Yiの数があ らカじめ決めた数以上であれば、その Yiを共通の Yとし、共通因数計算部 386で、そ の Yiで Xを割算して、共通乗数 Aとして出力する。
¾脑21 (白 P,棚删)
乗数 Aを求める他の例を、図 42を参照して説明する。
[0099] 各信号 x(i)の仮数部の最上位ビット(MSB)の 1ビット上位に、 "1"を配して 24ビット したものを mx(i)とする。これと mx(i)を jビット (j = l, 2, ···, 23)下位にシフトしたも のとの自己相関を求める。図 42Aは、 mx(i)と、これを 1ビットシフトしたもの mx(i) (1 )とこれらの自己相関結果の例を示す。図 42Aは、 z(i)が 12ビット構成を例としている この自己相関値中の 1のビット数を計数する。このことを j = l, ···, 23について行う。 jごとに全ての z(i)についての相関値中の 1のビット数を合計する。この合計値がしき い値を超えた jについての合計値を 1とし、しきい値以下の場合を 0とする。この判定 結果のビット列が求める乗数 Aである。
[0100] 例として、 z(i)のビット数が 8の場合の信号 x(0)〜x(4)について、 j = l, 2, ···, 9 での各自己相関のビットが" 1"の数を、図 42Bに示す。図 42Bで、 j =lとした場合の 自己相関値におけるビットが" 1"の数は、 x(O)は 5、 x(l)は 3、 x(2)は 2···である。 j =2の場合は、 x(O)〜x (4)の自己相関値のビットが" 1"の数は、全て 0である。 j = 3 の場合は、 χ(0), χ(1), χ(2)···に対する自己相関値のビットが" 1"の数は、 2, 4, 1 …である。これら自己相関値のビットが" 1"の数を各 j = l, 2, 3…ごとに合計した値が 、 23, 0, 15,…である。しきい値を 10とした場合、しきい値を超えたか否かの判定結 果が、 j = l, 2, 3· ··に対し 1, 0, 1,…となる。この判定結果力 x (0)〜x (4)に対す る共通乗数 Aとされる。なお jが大きくなるに従って、相関値中で 1となるビット数が減 少するから、しきい値 が大きくなる程、共通乗数 Aを小さくしてもよい。
実施例 22
音響信号としては、例えば 24ビット整数形式で信号化された信号素材を変形、振 幅調整、効果付加、混合などの編集処理したものを浮動小数点形式に変換されたも のが入力信号 x (i)として入力されることがある。このような場合、元の 24ビット整数形 式信号に対して行った加減乗除処理が記録されて、その加減乗除処理を知ることが できる場合がある。この場合、その入力信号 x (i)と共に加減乗除の演算順序と係数 を符号ィ匕装置に与えられる。乗数推定部では、その入力された加減乗除情報をもと に乗数 Aを決定する。例えば定数 Aを元信号に乗算した場合は乗数 Aとしてその入 力された定数 Aを出力すればよい。
上述した符号化装置、復号化装置、有理近似共通乗数計算装置は、それぞれコン ピュータにより機能させることもできる。この場合はコンピュータに、目的とする装置( 各種実施例で図に示した機能構成をもつ装置)として機能させるためのプログラム、 又はその処理手順 (各実施例で示したもの)の各過程をコンピュータに実行させるた めのプログラムを、 CD-ROM,磁気ディスク、半導体記録装置などの記録媒体から 、あるいは通信回線を介してそのコンピュータ内にダウンロードし、そのプログラムを 実行させればよい。

Claims

請求の範囲
[1] 所定区間ごとに複数の入力信号をまとめた列を、共通の乗数とその乗数で各入力 信号を除算処理した商信号の列とその残りの誤差信号の列とに分解する分解ステツ プと、
前記商信号の列を圧縮符号化して商符号を求める商符号化ステップと、 前記商符号と前記乗数と前記誤差信号の列とを出力する出力ステップと を有する情報符号化方法。
[2] 請求項 1記載の情報符号化方法であって、
前記分解ステップは、整数形式の前記商信号の列と浮動小数点形式の前記誤差 信号の列とに分解するステップであり、
前記誤差信号の列を圧縮符号化して誤差符号を求める誤差符号化ステップも有し 前記出力ステップが、前記商符号と前記乗数と前記誤差符号とを出力するステップ である
ことを特徴とする情報符号化方法。
[3] 請求項 1記載の情報符号化方法であって、
前記分解ステップは、浮動小数点形式の前記商信号の列と浮動小数点形式の前 記誤差信号の列とに分解するステップであり、
前記浮動小数点形式の各商信号を、整数形式の商信号と浮動小数点形式の差分 信号とに分離し、整数形式の商信号の列と浮動小数点形式の差分信号の列とを求 める商信号分離ステップも有し、
前記商符号化ステップは、前記整数形式の商信号の列を圧縮符号化するステップ であり、
前記差分信号の列を圧縮符号化して差分符号を求める差分符号化ステップも有し 前記誤差信号の列を圧縮符号化して誤差符号を求める誤差符号化ステップも有し 前記出力ステップが、前記商符号と前記差分符号と前記乗数と前記誤差符号とを 出力するステップである
ことを特徴とする情報符号化方法。
[4] 所定の区間ごとに複数の浮動小数点形式の入力信号をまとめた列を符号ィ匕する情 報符号化方法であって、
共通乗数推定部で、前記入力信号列を構成する入力信号に共通する乗数 (共通 乗数)を推定する共通乗数推定ステップと、
除算処理部で、当該乗数で前記入力信号列を構成する各入力信号を除算処理し た商信号の列を求める除算処理ステップと、
変形処理部で、前記商信号の列を構成する各商信号に丸め処理を行った整数形 式の列 (整数形式商信号列)を求める変形処理ステップと、
商信号符号化部で、前記整数形式商信号列を符号化する商符号化ステップと、 乗算部で、前記整数形式商信号列の各信号に前記共通乗数を乗算した浮動小数 点形式の信号の列 (浮動小数点形式信号列)を求める乗算ステップと、
誤差符号化部で、前記浮動小数点形式信号列の各信号と入力信号列の各信号と の差である誤差信号の列を符号ィ匕する誤差符号化ステップと
を有する情報符号化方法。
[5] 所定の区間ごとに複数の浮動小数点形式の入力信号をまとめた列 (入力信号列) を符号化する情報符号化方法であって、
共通乗数推定部で、前記入力信号列を構成する入力信号に共通する乗数 (共通 乗数)を推定する共通乗数推定ステップと、
除算処理部で、当該乗数で前記入力信号列を構成する各入力信号を除算処理し た商信号の列を求める除算処理ステップと、
整数化部で、前記商信号の列を構成する各商信号を整数形式に変換した商信号 の列 (整数形式商信号列)に変換する整数化ステップと、
商信号符号化部で、前記整数形式商信号列を符号化する商符号化ステップと、 浮動小数点化部で、前記整数形式商信号列を構成する各商信号に基づく浮動小 数点形式の商信号の列 (浮動小数点形式商信号列)を求める浮動小数点化ステップ と、 乗算部で、前記浮動小数点形式商信号列の各信号に前記共通乗数を乗算した浮 動小数点形式の信号の列 (浮動小数点形式信号列)を求める乗算ステップと、 誤差符号化部で、前記浮動小数点形式信号列の各信号と入力信号列の各信号と の差である誤差信号の列を符号ィ匕する誤差符号化ステップと
を有する情報符号化方法。
[6] 請求項 4記載の情報符号化方法であって、
前記共通乗数推定ステップが、
前記入力信号列を構成する入力信号の値から代表値を選定し、
その代表値を分母とし、前記入力信号列を構成する各入力信号の値を分子とし、こ れら分数の中の、前記各数値の誤差に基づく正側誤差と負側誤差間に存在する分 母最小の既約分数を有理近似計算により求め、
これら求めた既約分数中の共通分母を求め、
その共通分母と前記代表値とから前記入力信号列を構成する各入力信号の値に 対する共通の乗数を求める
ことを特徴とする情報符号化方法。
[7] 請求項 4または 6記載の情報符号ィ匕方法であって、
前記変形処理ステップが、
前記各商信号に丸め処理を行った後の各商信号に、
あらかじめ定めた範囲で
最下位ビットに 1ずつの加算または減算を行い、
入力信号から、前記の加算または減算された商信号と前記共通乗数の積を減算し た結果が 0となる商信号を探索する探索サブステップと
前記探索サブステップの結果、全ての商信号に対して前記探索が成功した場合に は、当該商信号の集合を前記整数形式商信号列とし、
前記探索の一部が失敗した場合には、共通乗数を 1として前記入力信号そのもの を商信号とする商信号変更サブステップと
を有する
こと特徴とする情報符号化方法。 [8] 入力符号から商符号と乗数と誤差信号列とを分離する分離ステップと、 前記商符号を復号して商信号列を生成する商信号列復号ステップと、 前記商信号列を構成する各商信号に前記乗数を乗算する乗算ステップと、 前記乗算ステップで生成した信号列の各信号を、前記誤差信号列を構成する各誤 差信号で補正して、復号ィ匕信号の列を得る補正ステップと
を有する情報復号化方法。
[9] 請求項 8記載の方法において、
前記分離ステップは、入力符号から商符号と乗数と誤差符号を分離するステップで あり、
前記商信号列復号ステップは、整数形式の商信号列を生成するステップであり、 前記誤差符号を復号して浮動小数点形式の誤差信号列を生成する誤差信号列復 号ステップも有し、
前記乗算ステップは、前記整数形式の商信号列の各商信号に前記乗数を乗算し て浮動小数点形式の信号列を生成するステップである、
ことを特徴とする情報復号化方法。
[10] 前記請求項 8の方法において、
前記分離ステップは、入力符号から商符号と差分符号と乗数と誤差符号を分離す るステップであり、
前記商信号列復号ステップは、整数形式の商信号列を生成するステップであり、 前記差分符号を復号して浮動小数点形式の差分信号列を生成する差分信号列復 号ステップも有し、
前記整数形式の商信号列の各商信号と前記差分信号列の対応する差分信号とを 加算して浮動小数点形式の商信号の列を求める加算ステップも有し、
前記誤差符号を復号して浮動小数点形式の誤差信号列を生成する誤差信号列復 号ステップも有し、
前記乗算ステップは、前記浮動小数点形式の商信号の列の各商信号に前記乗数 を乗算して浮動小数点形式の信号列を生成するステップである、
ことを特徴とする情報復号化方法。 [11] 商復号化部で、商符号を整数形式の商信号列 (整数形式商信号列)に復号する商 復号化ステップと、
誤差復号化部で、誤差符号に基づ!/ヽて誤差信号列を得る誤差復号化ステップと、 乗算部で、前記整数形式商信号列を構成する各信号に共通乗数を乗算して、浮 動小数点形式の信号列を得る乗算ステップと、
前記乗算ステップで生成した信号列の各信号に、前記誤差信号列を構成する各信 号を加算する加算ステップと
を有する情報復号化方法。
[12] 商復号化部で、商符号を整数形式の商信号列 (整数形式商信号列)に復号する商 復号化ステップと、
誤差復号化部で、誤差符号に基づ!ヽて誤差信号列を得る誤差復号化ステップと、 浮動小数点化部で、前記整数形式商信号列を構成する各信号に基づく浮動小数 点形式の商信号の列 (浮動小数点形式商信号列)を生成する浮動小数点化ステップ と、
乗算部で、前記浮動小数点形式商信号列を構成する各信号に共通乗数を乗算し て、浮動小数点形式の信号列を得る乗算ステップと、
前記乗算ステップで生成した信号列の各信号に、前記誤差信号列を構成する各信 号を加算する加算ステップと
を有する情報復号化方法。
[13] 請求項 11または 12記載の情報復号化方法であって、
前記誤差復号化ステップが、
共通乗数が 1の場合には、各誤差信号の仮数部として、前記整数形式商信号列の 対応する商信号の桁数を仮数部の総桁数カゝら減算した数分の下位側のビットに、誤 差符号を復号して得られた信号を設定し、残りの上位側のビットに" 0"を設定して、 浮動小数点表現の誤差信号列を求め、
共通乗数が 1以外の場合には、誤差符号から求めた各信号を、浮動小数点表現の 各誤差信号の仮数部として、浮動小数点表現の誤差信号列を求める
処理を含む ことを特徴とする情報復号化方法。
[14] 所定区間ごとに複数の入力信号をまとめた入力信号列を生成する分割部と、 前記入力信号列が入力され、その入力信号列の各入力信号に共通の乗数と、そ の乗数で各入力信号を除算処理した商信号の列とその残りの誤差信号の列とに分 解する剰余分離処理部と、
前記商信号の列を圧縮符号化して商符号を求める商符号化部と、
前記商符号と前記乗数と前記誤差信号の列とを出力する出力部と
を具備する情報符号化装置。
[15] 請求項 14に記載の装置において、
前記剰余分離処理部は、整数形式の前記商信号の列と浮動小数点形式の前記誤 差信号の列とに分解する構成部であり、
前記誤差信号の列を圧縮符号化して誤差符号を求める誤差符号化部も有し、 前記出力部は、前記商符号と前記乗数と前記誤差符号とを出力する構成部である ことを特徴とする情報符号ィヒ装置。
[16] 請求項 14に記載の装置において、
前記剰余分離処理部は、浮動小数点形式の前記商信号の列と浮動小数点形式の 前記誤差信号の列とに分解する構成部であり、
前記浮動小数点形式の各商信号を、整数形式の商信号と浮動小数点形式の差分 信号とに分離し、整数形式の商信号の列と浮動小数点形式の差分信号の列とを求 める整数化部も有し、
前記商符号化部は、前記整数形式の商信号の列を圧縮符号化する構成部であり 前記差分信号の列を圧縮符号化して差分符号を求める差分符号化部も有し、 前記誤差信号の列を圧縮符号化して誤差符号を求める誤差符号化部も有し、 前記出力部が、前記商符号と前記差分符号と前記乗数と前記誤差符号とを出力す る構成部である
ことを特徴とする情報符号ィヒ装置。
[17] 所定の区間ごとに複数の浮動小数点形式の入力信号をまとめた列を符号ィヒする情 報符号化装置であって、
前記入力信号列を構成する入力信号に共通する乗数 (共通乗数)を推定する共通 乗数推定部と、
当該乗数で前記入力信号列を構成する各入力信号を除算処理した商信号の列を 求める除算処理部と、
前記商信号の列を構成する各商信号に丸め処理を行った整数形式の列 (整数形 式商信号列)を求める変形処理部と、
前記整数形式商信号列を符号化する商符号化部と、
前記整数形式商信号列の各信号に前記共通乗数を乗算した浮動小数点形式の 信号の列 (浮動小数点形式信号列)を求める乗算部と、
前記浮動小数点形式信号列の各信号と入力信号列の各信号との差である誤差信 号の列を符号ィ匕する誤差符号ィ匕部と
を備える情報符号化装置。
所定の区間ごとに複数の浮動小数点形式の入力信号をまとめた列 (入力信号列) を符号化する情報符号化装置であって、
前記入力信号列を構成する入力信号に共通する乗数 (共通乗数)を推定する共通 乗数推定部と、
当該乗数で前記入力信号列を構成する各入力信号を除算処理した商信号の列を 求める除算処理部と、
前記商信号の列を構成する各商信号を整数形式に変換した商信号の列 (整数形 式商信号列)に変換する整数化部と、
前記整数形式商信号列を符号化する商符号化部と、
前記整数形式商信号列を構成する各商信号に基づく浮動小数点形式の商信号の 列 (浮動小数点形式商信号列)を求める浮動小数点化部と、
前記浮動小数点形式商信号列の各信号に前記共通乗数を乗算した浮動小数点 形式の信号の列 (浮動小数点形式信号列)を求める乗算部と、
前記浮動小数点形式信号列の各信号と入力信号列の各信号との差である誤差信 号の列を符号ィ匕する誤差符号ィ匕部と を備える情報符号化装置。
[19] 請求項 17記載の情報符号化装置であって、
前記共通乗数推定部が、
前記入力信号列を構成する入力信号の値から代表値を選定し、
その代表値を分母とし、前記入力信号列を構成する各入力信号の値を分子とし、こ れら分数の中の、前記各数値の誤差に基づく正側誤差と負側誤差間に存在する分 母最小の既約分数を有理近似計算により求め、
これら求めた既約分数中の共通分母を求め、
その共通分母と前記代表値とから前記入力信号列を構成する各入力信号の値に 対する共通の乗数を求める
ことを特徴とする情報符号ィヒ装置。
[20] 請求項 17または 19記載の情報符号化装置であって、
前記変形処理部が、
前記各商信号に丸め処理を行った後の各商信号に、
あらかじめ定めた範囲で
最下位ビットに 1ずつの加算または減算を行い、
入力信号から、前記の加算または減算された商信号と前記共通乗数の積を減算し た結果が 0となる商信号を探索する探索手段と
前記探索サブステップの結果、全ての商信号に対して前記探索が成功した場合に は、当該商信号の集合を前記整数形式商信号列とし、
前記探索の一部が失敗した場合には、共通乗数を 1として前記入力信号そのもの を商信号とする商信号変更手段と
を有する
こと特徴とする情報符号化装置。
[21] 入力符号から商符号と乗数と誤差信号列とを分離する分離部と、
前記商符号を復号して商信号列を生成する商復号化部と、
前記商信号列を構成する各商信号に前記乗数を乗算する乗算部と、
前記乗算部で生成した信号列の各信号を、前記誤差信号列を構成する各誤差信 号で補正して、復号化信号の列を得る補正処理部と
を備えることを特徴とする情報復号ィヒ装置。
[22] 請求項 21記載の装置において、
前記分離部は、入力符号から商符号と乗数と誤差符号を分離する構成部であり、 前記商復号化部は、整数形式の商信号列を生成する構成部であり、
前記誤差符号を復号して浮動小数点形式の誤差信号列を生成する誤差復号化部 も有し、
前記乗算部は、前記整数形式の商信号列の各商信号に前記乗数を乗算して浮動 小数点形式の信号列を生成する構成部である
ことを特徴とする情報復号ィヒ装置。
[23] 前記請求項 21の装置において、
前記分離部は、入力符号から商符号と差分符号と乗数と誤差符号を分離する構成 部であり、
前記商復号化部は、整数形式の商信号列を生成する構成部であり、
前記差分符号を復号して浮動小数点形式の差分信号列を生成する差分復号化部 も有し、
前記整数形式の商信号列の各商信号と前記差分信号列の対応する差分信号とを 加算して浮動小数点形式の商信号の列を求める加算部も有し、
前記誤差符号を復号して浮動小数点形式の誤差信号列を生成する誤差復号化部 も有し、
前記乗算部は、前記浮動小数点形式の商信号の列の各商信号に前記乗数を乗算 して浮動小数点形式の信号列を生成する構成部である
ことを特徴とする情報復号ィヒ装置。
[24] 商符号を整数形式の商信号列 (整数形式商信号列)に復号する商復号化部と、 誤差符号に基づいて誤差信号列を得る誤差復号化部と、
前記整数形式商信号列を構成する各信号に共通乗数を乗算して、浮動小数点形 式の信号列を得る乗算部と、
前記乗算部で生成した信号列の各信号に、前記誤差信号列を構成する各信号を 加算する加算部と
を備える情報復号化装置。
[25] 商符号を整数形式の商信号列 (整数形式商信号列)に復号する商復号化部と、 誤差符号に基づいて誤差信号列を得る誤差復号化部と、
前記整数形式商信号列を構成する各信号に基づく浮動小数点形式の商信号の列 (浮動小数点形式商信号列)を生成する浮動小数点化部と、
前記浮動小数点形式商信号列を構成する各信号に共通乗数を乗算して、浮動小 数点形式の信号列を得る乗算部と、
前記乗算部で生成した信号列の各信号に、前記誤差信号列を構成する各信号を 加算する加算部と
を備える情報復号化装置。
[26] 請求項 24または 25記載の情報復号化装置であって、
前記誤差復号化部が、
共通乗数が 1の場合には、各誤差信号の仮数部として、前記整数形式商信号列の 対応する商信号の桁数を仮数部の総桁数カゝら減算した数分の下位側のビットに、誤 差符号を復号して得られた信号を設定し、残りの上位側のビットに" 0"を設定して、 浮動小数点表現の誤差信号列を求める手段、
共通乗数が 1以外の場合には、誤差符号から求めた各信号を、浮動小数点表現の 各誤差信号の仮数部として、浮動小数点表現の誤差信号列を求める手段
を有することを特徴とする情報復号化装置。
[27] 複数の数値の集団から代表値を選定し、
その代表値を分母とし、前記集団の各数値を分子とし、これら分数の中の、前記各 数値の誤差に基づく正側誤差と負側誤差間に存在する分母最小の既約分数を有理 近似計算により求め、
これら求めた既約分数中の共通分母を求め、
その共通分母と前記代表値とから前記複数の数値に対し共通の乗数を求めること を特徴とする共通乗数推定方法。
[28] 複数の数値の集団から代表値を選定する分母選定部と、 前記代表値、前記数値の集団、前記数値の誤差が入力され、前記代表値を分母と し、前記各数値を分子とし、これら分数中の、前記誤差に基づく正側誤差と負側誤差 との間に存在する分母最小の既約分数を有理近似計算により求める有理近似計算 部と、
前記各既約分数が入力され、共通の分母を求める共通分母確認部と、 前記共通の分母と前記代表値が入力され、共通の分母に対し補正を行って前記数 値の集団に対する共通乗数を出力する共通因数計算部と
を具備する共通乗数推定装置。
[29] 請求項 1〜13、 27のいずれかに記載した方法の各過程をコンピュータに実行させ るプログラム。
[30] 請求項 29記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
PCT/JP2005/018978 2004-10-15 2005-10-14 情報符号化方法、復号化方法、共通乗数推定方法、これらの方法を利用した装置、プログラム及び記録媒体 Ceased WO2006041165A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US11/576,496 US7408481B2 (en) 2004-10-15 2005-10-14 Information encoding method, decoding method, common multiplier estimating method, and apparatus, program, and recording medium using these methods
JP2006540987A JP4324200B2 (ja) 2004-10-15 2005-10-14 情報符号化方法、復号化方法、共通乗数推定方法、これらの方法を利用した装置、プログラム及び記録媒体
EP05793612.2A EP1801691B1 (en) 2004-10-15 2005-10-14 Information encoding method, decoding method, common multiplier estimation method, device using these methods, program, and recording medium
CN2005800335269A CN101036113B (zh) 2004-10-15 2005-10-14 信息编码方法、解码方法、利用这些方法的装置

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2004329736 2004-10-15
JP2004-329735 2004-10-15
JP2004-329736 2004-10-15
JP2004329735 2004-10-15

Publications (1)

Publication Number Publication Date
WO2006041165A1 true WO2006041165A1 (ja) 2006-04-20

Family

ID=36148451

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2005/018978 Ceased WO2006041165A1 (ja) 2004-10-15 2005-10-14 情報符号化方法、復号化方法、共通乗数推定方法、これらの方法を利用した装置、プログラム及び記録媒体

Country Status (5)

Country Link
US (1) US7408481B2 (ja)
EP (1) EP1801691B1 (ja)
JP (1) JP4324200B2 (ja)
CN (1) CN101036113B (ja)
WO (1) WO2006041165A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014071401A (ja) * 2012-10-01 2014-04-21 Nippon Telegr & Teleph Corp <Ntt> 符号化方法、符号化装置、復号方法、復号装置、プログラム及び記録媒体

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7392195B2 (en) * 2004-03-25 2008-06-24 Dts, Inc. Lossless multi-channel audio codec
KR100996704B1 (ko) * 2006-11-06 2010-11-25 삼성전자주식회사 버퍼 크기 정보의 전송 방법
CN101355688A (zh) * 2007-07-26 2009-01-28 华为技术有限公司 用于iptv的频道选择方法、合成编码装置和机顶盒
US8301803B2 (en) * 2009-10-23 2012-10-30 Samplify Systems, Inc. Block floating point compression of signal data
JP5997480B2 (ja) * 2012-03-30 2016-09-28 キヤノン株式会社 画像処理装置、画像処理方法およびプログラム
US9087398B2 (en) * 2012-12-06 2015-07-21 Nvidia Corporation System and method for compressing bounding box data and processor incorporating the same
US9608664B2 (en) * 2013-12-30 2017-03-28 International Business Machines Corporation Compression of integer data using a common divisor
US9628107B2 (en) 2014-04-07 2017-04-18 International Business Machines Corporation Compression of floating-point data by identifying a previous loss of precision
US9350384B2 (en) 2014-09-30 2016-05-24 International Business Machines Corporation Hierarchical data compression and computation
US9959299B2 (en) 2014-12-02 2018-05-01 International Business Machines Corporation Compression-aware partial sort of streaming columnar data
US10909078B2 (en) 2015-02-25 2021-02-02 International Business Machines Corporation Query predicate evaluation and computation for hierarchically compressed data
US20180145701A1 (en) * 2016-09-01 2018-05-24 Anthony Ben Benavides Sonic Boom: System For Reducing The Digital Footprint Of Data Streams Through Lossless Scalable Binary Substitution
CN110992672B (zh) * 2019-09-25 2021-06-29 广州广日电气设备有限公司 红外遥控器学习及编码方法、红外遥控器系统及存储介质
US11301247B2 (en) * 2019-12-19 2022-04-12 Marvell Asia Pte Ltd System and method for handling floating point hardware exception
CN117335810A (zh) * 2022-06-23 2024-01-02 加特兰微电子科技(上海)有限公司 数据压缩、解压缩方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1078863A (ja) * 1996-07-25 1998-03-24 Motorola Inc 浮動小数点式ハードウェアを用いたマイクロプロセッサ整数除法演算を実行するための方法および装置
JPH11145843A (ja) * 1997-11-05 1999-05-28 Sharp Corp ディジタルデータの復号化方法および復号化装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5839100A (en) * 1996-04-22 1998-11-17 Wegener; Albert William Lossless and loss-limited compression of sampled data signals
US6043763A (en) * 1998-03-12 2000-03-28 Liquid Audio, Inc. Lossless data compression with low complexity
CN1762099B (zh) * 2003-04-28 2010-10-13 日本电信电话株式会社 浮点数字信号的可逆编码方法、解码方法及其装置
US7230551B2 (en) * 2003-06-20 2007-06-12 Nippon Telegraph And Telephone Corporation Floating-point type digital signal reversible encoding method, decoding method, apparatuses therefor, and programs therefor
CN101494460B (zh) * 2003-09-02 2012-07-11 日本电信电话株式会社 浮点信号的编码方法、解码方法及其编码器、解码器

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1078863A (ja) * 1996-07-25 1998-03-24 Motorola Inc 浮動小数点式ハードウェアを用いたマイクロプロセッサ整数除法演算を実行するための方法および装置
JPH11145843A (ja) * 1997-11-05 1999-05-28 Sharp Corp ディジタルデータの復号化方法および復号化装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP1801691A4 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014071401A (ja) * 2012-10-01 2014-04-21 Nippon Telegr & Teleph Corp <Ntt> 符号化方法、符号化装置、復号方法、復号装置、プログラム及び記録媒体

Also Published As

Publication number Publication date
US20070257824A1 (en) 2007-11-08
CN101036113A (zh) 2007-09-12
EP1801691A4 (en) 2008-05-14
US7408481B2 (en) 2008-08-05
EP1801691B1 (en) 2019-04-10
EP1801691A1 (en) 2007-06-27
CN101036113B (zh) 2010-11-03
JP4324200B2 (ja) 2009-09-02
JPWO2006041165A1 (ja) 2008-05-22

Similar Documents

Publication Publication Date Title
EP1638209B1 (en) Lossless coding method for digital signal in floating-point, decoding method, apparatus therefor, and programs therefor
JP4328358B2 (ja) 情報圧縮符号化装置、その復号化装置、これらの方法、およびこれらのプログラムとその記録媒体
JP4324200B2 (ja) 情報符号化方法、復号化方法、共通乗数推定方法、これらの方法を利用した装置、プログラム及び記録媒体
JP4049791B2 (ja) 浮動小数点形式ディジタル信号可逆符号化方法、及び復号化方法と、その各装置、その各プログラム
CN101494460B (zh) 浮点信号的编码方法、解码方法及其编码器、解码器
KR101390051B1 (ko) 벡터 양자화 장치, 벡터 역양자화 장치, 및 이러한 방법
US6593872B2 (en) Signal processing apparatus and method, signal coding apparatus and method, and signal decoding apparatus and method
TW201126514A (en) Conversion of synthesized spectral components for encoding and low-complexity transcoding
CN101040323B (zh) 音响信号编解码装置和音响信号编码方法
EP2557566B1 (en) Method and apparatus for processing an audio signal
US8493244B2 (en) Vector quantization device, vector inverse-quantization device, and methods of same
JPWO2006003993A1 (ja) 多チャネル信号符号化方法、その復号化方法、これらの装置、プログラム及びその記録媒体
JPH0722957A (ja) 副バンドコーディングシステムの信号処理装置
CN101061638B (zh) 信号编码器、信号解码器、信号编码方法、信号解码方法和信号编解码方法
JP3811110B2 (ja) ディジタル信号符号化方法、復号化方法、これらの装置、プログラム及び記録媒体
CN108028045A (zh) 用于音频信号解码器的位错误检测器
JP4351684B2 (ja) ディジタル信号復号化方法、装置、プログラム及び記録媒体
JP2005018606A (ja) 浮動小数点形式信号系列の線形予測分析方法、その装置、プログラムおよびその記録媒体
KR100322702B1 (ko) 스펙트럼피크패턴을이용한음성신호의양자화및복호화방법

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KM KP KR KZ LC LK LR LS LT LU LV LY MA MD MG MK MN MW MX MZ NA NG NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SM SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU LV MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2006540987

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 2005793612

Country of ref document: EP

Ref document number: 200580033526.9

Country of ref document: CN

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 11576496

Country of ref document: US

WWP Wipo information: published in national office

Ref document number: 2005793612

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 11576496

Country of ref document: US