Senior Fitness - Exercise and Nutrition for Aging Men and Women
FREE Article Feed for your website.
Bio-Medical Research Article Database
Informative Articles on Life, Love and Happiness
Tutorials on Business to Writing
Famous Quotes from Famous People
Song Lyric Information
New US Patent Information
Comprehensive List of Content by Category
Online Auctions and Shopping Related Articles
Article Search
Most Recent Articles

Compressed data structure and apparatus and method related thereto Number:7,521,621 from the United States Patent and Trademark Office (PTO) owispatent

Home    Author Login    Submit Article    Article Search    Add Your Link    Edit Your Link    Contact Us    Advertising    Disclaimer

   

Google
 

Top Breaking News
     Singer Whitney Houston Memorialized at Pre-Grammy Awards Gala by VOA News
     Greek Parliament to Vote on Austerity Measures by Diaa Bekheet
     Fans Mourn Singer Whitney Houston by Mike O'Sullivan

Title: Compressed data structure and apparatus and method related thereto

Abstract: Compressed waveform data structure is proposed which is suited for segmentation of a plurality of samples of compressed waveform data into a plurality of frames and subsequent storage of each of the frames. The number of bits per sample of the compressed waveform data is variable between the frames, but uniform, i.e. the same among all of the samples, within each of the frames. Each of the frames has a same data storage size. Each of the frames includes, in a predetermined layout, an auxiliary information area for storing auxiliary information that includes compression-related information to be used for decompressing the compressed waveform data, and a data area for storing a plurality of samples of the compressed waveform data of the frame with each of the samples comprising a same number of bits.

Patent Number: 7,521,621 Issued on 04/21/2009 to Okazaki,   et al.


Inventors: Okazaki; Masatsugu (Hamamatsu, JP), Shirakawa; Tokio (Hamamatsu, JP)
Assignee: Yamaha Corporation (Hamamatsu-Shi, JP)
Appl. No.: 11/860,484
Filed: September 24, 2007


Related U.S. Patent Documents

Application NumberFiling DatePatent NumberIssue Date
10676205Sep., 20037378586

Foreign Application Priority Data

Oct 01, 2002 [JP] 2002-288783
Mar 25, 2003 [JP] 2003-082922
Mar 27, 2003 [JP] 2003-087299

Current U.S. Class: 84/604 ; 704/500
Current International Class: G10H 7/00 (20060101)
Field of Search: 84/604,602,605-607 704/500


References Cited [Referenced By]

U.S. Patent Documents
5086475 February 1992 Kutaragi et al.
5438535 August 1995 Lattibeaudiere
5489746 February 1996 Suzuki et al.
5831193 November 1998 Suzuki et al.
5978492 November 1999 Furuhashi
6081783 June 2000 Divine et al.
6255576 July 2001 Suzuki et al.
6300552 October 2001 Sato
6931370 August 2005 McDowell
Primary Examiner: Donels; Jeffrey
Assistant Examiner: Qin; Jianchun
Attorney, Agent or Firm: Morrison & Foerster LLP

Parent Case Text



CROSS REFERENCE TO RELATED APPLICATION

This application is a division of U.S. patent application Ser. No. 10/676,205 filed on Sep. 30, 2003, the entire contents of which are incorporated herein by reference.
Claims



What is claimed is:

1. A waveform storage processing apparatus comprising: a storage section having a storage area specified with a plurality of addresses each having a data width of n bits; a segmentation section that segments input waveform data into a plurality of frames; a compression section that, for each of the frames, performs a compression process on the waveform data to thereby generate compressed waveform data of m divided by bits; an auxiliary information generation section that, for each of the frames, generates auxiliary information including compression information indicative of a form of the compression process performed on the frame; a to-be-written data formation section that, for each of the frames, forms a predetermined number j of to-be-written data of n bits on the basis of data of m bits formed by retrieving samples of the compressed waveform data, k samples at a time, and data of n-m bits from of the auxiliary information of a next frame; and a writing section that sequentially writes the j to-be-written data, formed for each of the frames, to the storage area specified with the predetermined number j of successive addresses of said storage section.

2. A waveform storage processing apparatus as claimed in claim 1 wherein the n-m bits data of the n bit data of one frame stored at the j successive addresses in said storage section comprises an auxiliary information area of the next frame for storing the auxiliary information and the m bit data of the n bit of one frame stored at the j successive addresses in said storage section comprises a data area of the frame for storing the compressed waveform data.

3. A waveform storage processing apparatus as claimed in claim 1 wherein the bit-number m divided by k of the compressed waveform is variable between the frames and a particular number i*k of samples of the waveform data, corresponding to the bit-number m divided by k for one frame, are segmented into the frame by said segmentation section.
Description



BACKGROUND OF THE INVENTION

The present invention relates to a structure of memory-stored compressed waveform data for use in tone generation apparatus etc., a tone generation apparatus for generating tones by reading out the compressed waveform data, and a waveform storage processing apparatus for writing compressed waveform data into a memory. The present invention also relates to a waveform data compression method, tone signal generation method and tone signal processing apparatus and program which are suitable for use in tone generation apparatus that store waveform data after compressing the waveform data on a frame-by-frame basis and reproduce the stored waveform data on the basis of performance information.

Among the conventionally-known tone signal generation methods for use in electronic musical instruments is the PCM method which prestores, in a memory, digital waveform sample data obtained by successively sampling and digitizing instantaneous values of tone waveforms of a natural musical instrument and then, at the time of tone reproduction, generates tone signals by reading out the prestored waveform sample data. The PCM method can advantageously generate tones very close to those of a natural musical instrument, but disadvantageous in that the memory for storing the waveform sample data must have an enormous storage capacity. To avoid such a problem presented by the PCM method, there have been proposed a tone signal generation apparatus which compresses samples of waveform data, stores the compressed waveform data in a memory and then, at the time of tone reproduction, forms tone signals by decompressing the stored compressed waveform data (e.g., Japanese Patent No. 2605434).

In the proposed tone signal generation apparatus, the storage capacity of the memory can be used efficiently because the memory stores the compressed waveform sample data. Specifically, the waveform sample data to be stored in the memory are compressed into a variable length, divided or segmented into frames each composed of a fixed number (e.g., 16 samples) of the compressed waveform data, and then stored in the memory on a frame-by-frame basis. Therefore, the total number of bits in each of the frames is variable depending on the number of bits per sample of the compressed waveform data. In this case, where each of the frames has a variable length, respective start positions, in the memory, of the frames differ considerably. Thus, there arises a need for a circuit to calculate the respective leading addresses of the frames, which would greatly complicate the construction of circuitry for decompressing the compressed waveform data.

According to the frame-by-frame compression scheme, the waveform data are segmented into predetermined frame sections and compressed on the frame-by-frame basis, in order to reduce the storage capacity for storing the waveform data in a waveform-memory tone generator apparatus. Various waveform data coding schemes or techniques have been known, of which the "linear prediction technique" is used extensively today because it can achieve a high compression efficiency and reduce processing loads at the time of tone reproduction. Note that the linear prediction technique is a technique for determining a predicted value of each sample of interest on the basis of several sample values preceding the sample of interest and predetermined generating polynomial expression and then recording, as difference data, a difference between the predicted value and a corresponding actual value.

In reproduction of waveform data, it is conventional to reproduce a leading portion, i.e. attach portion, of the waveform data only once and then repeatedly reproduce the remaining portion, i.e. loop portion of the waveform data (loop reproduction). Therefore, it is necessary to identify in advance loop start and end points of a loop portion in a succession of frames which are the first and last sampling points of the loop portion. In the past, the frame-by-frame compression scheme would present the problem that the loop start and end points are restricted to boundary positions of the frames because of the necessity to reproduce the waveform data on the frame-by-frame basis. Namely, because the loop start point and loop end point can not be set at appropriate sampling points, there would arise the problem that undesired noise is produced due to discontinuity in signal level and phase when the waveform data reproduction shifts from the loop end point back to the loop start point.

Japanese Patent No. 2674155 discloses a technique designed to prevent such undesired noise, which, once given points of waveform data are designated as loop start and loop end points, performs time-axial adjustment (compression, expansion or shift in the time-axial direction) on the entire waveform data so as to allow the loop start and loop end points to coincide with frame boundaries.

However, with the technique disclosed in the No. 2674155 patent, there would be encountered the problems that the quality of the waveform data deteriorates during the time-axial compression or expansion and the necessary amount of processing becomes enormous because the processing is performed on all of the waveform data. Further, in the disclosed conventional technique, where header information for decompression compression codes is stored at the beginning of each frame, it is necessary to read out all of the header information of the frames before initiation of the decompression process. Therefore, during the course of the decompression process on a given frame, a sufficient time has to be secured for reading out in advance the header information of the next frame. Because the disclosed conventional technique is based on decompression of all of the compression codes per frame, it may readily secure such a time. However, if the data structure disclosed in the patent is employed in an "apparatus capable of setting a loop start point or loop end point partway through a frame (i.e., at an enroute point of the frame)", in other words "apparatus where a reproducing time of a proportion of the frames can be extremely short", there can not be secured a sufficient time for reading out in advance the header information.

SUMMARY OF THE INVENTION

In view of the foregoing, it is an object of the present invention to provide an improved compression data structure, waveform generation apparatus and waveform storage processing apparatus which permit a data expansion process on waveform data with a simple construction.

It is another object of the present invention to provide an improved waveform data compression method, tone signal generation method and tone signal processing apparatus and program which achieve enhanced flexibility in designating a loop portion of waveform data and yet can perform high-quality loop reproduction with simple processing.

According to a first aspect of the present invention, there is provided a compressed data structure for segmentation of a plurality of samples of compressed waveform data into a plurality of frames and subsequent storage of the frames. In the compressed data structure of the present invention, the number of bits per sample of the compressed waveform data is variable between the frames, but uniform (i.e., the same among all the samples) within each of the frames, each of the frames has a same data storage size, and each of the frames includes, in a predetermined layout, an auxiliary information area for storing auxiliary information that includes compression-related information to be used for decompressing the compressed waveform data, and a data area for storing a plurality of samples of the compressed waveform data of the frame, each of the samples in the frame comprising a same number of bits.

There is also provided a tone generation apparatus using such an inventive compressed data structure, which comprises: a storage section that stores a plurality of samples of compressed waveform data segmented into a plurality of frames. Here, the number of bits per sample of the compressed waveform data is variable between the frames, but uniform (i.e., the same among all of the samples) within each of the frames, each of the frames having a same data storage size, each of the frames including, in a predetermined layout, an auxiliary information area for storing auxiliary information that includes compression-related information to be used for decompressing the compressed waveform data and a data area for storing a plurality of samples of the compressed waveform data of the frame, each of the samples comprising a same number of bits. The tone generation apparatus further comprises: a number-of-bits designation section that designates the number of bits per sample of the compressed waveform data for each of the frames stored in the storage section; a readout section that designates any one of the frames to be read out and reads out stored data of the designated frame from the storage section; a retrieval section that, of the data of the frame read out by the readout section, retrieves the auxiliary information from the auxiliary information area and retrieves the samples of the compressed waveform data from the data area in accordance with the number of bits per sample designated by the number-of-bits designation section; a decoding section that decompresses each of the samples of the retrieved compressed waveform data, using the compression-related information included in the retrieved auxiliary information; and a tone generation section that generates a tone on the basis of the waveform data decompressed by the decoding section.

According to the first aspect of the invention, the total number of bits in each of the frames is fixed uniformly. Thus, the respective start positions of the frames can be set at fixed positions spaced from each other at uniform intervals, so that the first or leading address of any one of the frames can be acquired with ease. As a consequence, the waveform data can be stored with an increased efficiency, and the circuit for performing the decompression process can be significantly simplified in construction. Also, the auxiliary information, constituting the frame along with the compressed waveform data, includes compression-related information, so that the compressed waveform data can be decompressed using the compression-related information. Note that the number of bits per sample of the compressed waveform data is uniform within the frame. By setting the number of bits per sample to an integer multiple of a prime number of the number of bits present in the fixed-length data area storing the compressed waveform data, the compressed waveform data can be stored efficiently with no waste bit.

According to a second aspect of the present invention, there is provided a compressed data structure suited for segmentation of a plurality of samples of compressed waveform data into a plurality of frames and subsequent storage of each of the frames into a memory capable of storing n bits per address. Here, the number of bits per sample of the compressed waveform data is variable between the frames but uniform within each of the frames, each of the frames of the compressed waveform data is stored over a predetermined number j of successive addresses of the memory, and k samples of the compressed waveform data of the frame are stored at m bits of the n bits (where m<n) in each of the j addresses, and an auxiliary information area storing auxiliary information that includes compression-related information to be used for decompressing the compressed waveform data is stored at the remaining (n-m) bits in the address.

The present invention also provides a waveform generation apparatus using such an inventive compressed data structure, which comprises: a storage device storing a plurality of frames of compressed waveform data having the above-mentioned compressed data structure; an address generation section that generates, every sampling cycle, a readout address varying at a predetermined rate corresponding to a designated tone pitch; a readout section that generates a memory address incrementing by one each time the readout address increments by a value, and accesses the storage device with the memory address to thereby read out data of n bits from the storage device; an auxiliary information retrieval section that retrieves the data of (n-m) bits from the data of the n bits, read out by the read out section, to thereby output auxiliary information including compression information; a temporary storage section that retrieves the data of the m bits from the read-out data of the n bits and stores the retrieved data of the m bits; and a waveform generation section that accesses the temporary storage section with the readout address to thereby sequentially read out k samples of compressed waveform data, performs a decompression process, on the basis of the compression information outputted by the auxiliary information retrieval section and the sequentially-read-out samples of compressed waveform data, to thereby restore samples of original waveform data, and generates a tone waveform on the basis of the restored samples of original waveform data.

According to the second aspect of the present invention, each of the frames of the compressed waveform data is stored over a predetermined number j of successive addresses of the memory, and k samples of the compressed waveform data of the frame are located at m bits of the n bits storable in each of the j addresses, and the auxiliary information is located at the remaining (n-m) bits in the address. In this way, respective start positions of the frames of a fixed length can be set at fixed positions spaced from each other at uniform intervals, and also respective start positions of the compressed waveform data and auxiliary information can be set at fixed positions spaced from each other at uniform intervals. Also, respective start positions of the k samples of the compressed waveform data can be set at fixed positions spaced from each other at uniform intervals. As a result, the construction for reading out samples of the compressed waveform data and performing the decompression process on the read-out samples can be simplified significantly. Namely, the compressed waveform data read out with the simplified construction can be decompressed using the auxiliary information indicative of a form of the compression process and read out with the simplified construction. Further, preferably, the number of bits i for each of the k samples of the compressed waveform data is set to an integer multiple of a prime number of the m bits allocated as a fixed length, so that the compressed waveform data can be stored in memory efficiently with no waste bit.

According to a third aspect of the present invention, there is provided a waveform data compression method, which comprises: a step of segmenting waveform data comprising a plurality of sample value into a plurality of portions; a step of setting a loop start point and loop end point in the waveform data in such a manner that at least one of the loop start point and loop end point is set at an enroute (i.e., intermediate) point of the portion to which the start point or end point belongs; and a step of forming frame data of each of the portions by compressing the waveform data for each of the portions, wherein the portion having the loop start point or loop end point set at the enroute point thereof is compressed so as to have same decompression parameters as another portion preceding or following said portion.

According to an embodiment of the third aspect of the present invention, the step of setting a loop start point and loop end point in the waveform data may includes: a step of setting a provisional loop start point and provisional loop end point in the waveform data; a step of setting the loop end point at a last sampling point in the portion to which the provisional loop end point belongs; a step of setting the loop start point at a sampling point located behind and spaced apart from the provisional loop start point by a distance equivalent to a total number of samples present between the provisional loop end point and the loop end point; and a step of copying the sample values from the provisional loop start point to a sampling point immediately preceding the loop start point, as sample values from a sampling point immediately following the provisional loop end point to the loop end point.

According to the embodiment of the third aspect of the present invention, the step of forming frame data of each of the portions may includes: a first determination step of applying same decompression parameters to two particular portions that comprise a loop start portion including the loop start point and either a loop end portion including the loop end point or a portion to be reproduced following the loop start portion, and determining, for each of the two particular portions, compression codes capable of being decompressed with the same decompression parameters; a second determination step of, on the basis of the waveform data of each of other portions than the two particular portions, determining decompression parameters for the other portion and compression codes for the other portion which are capable of being decompressed with the decompression parameters determined for the other portion; and a frame formation step of forming data of a frame on the basis of the compression codes of the sample values in a corresponding one of the portions and the decompression parameters for decompressing the compression codes of the portion to be reproduced following the one portion.

According to another embodiment of the third aspect of the present invention, the step of setting a loop start point and loop end point in the waveform data may includes: a step of setting a provisional loop start point and provisional loop end point in the waveform data; a step of setting the loop start point at a leading sampling point of the portion following the portion to which the provisional loop start point belongs; a step of setting the loop end point at a sampling point located behind and spaced apart from the provisional loop end point by a distance equivalent to a total number of samples present between the provisional loop start point and the loop start point; and a step of copying the sample values from the provisional loop start point to a sampling point immediately preceding the loop start point, as sample values from a sampling point immediately following the provisional loop end point to the loop end point.

According to the other embodiment of the third aspect of the present invention, the step of forming frame data of each of the portions may includes: a first determination step of applying same decompression parameters to two particular portions that comprise a loop end portion including the loop end point and either a loop start portion including the loop start point or a portion to be reproduced before the loop start portion, and determining, for each of the two particular portions, compression codes capable of being decompressed with the same decompression parameters; a second determination step of, on the basis of the waveform data of each of other portions than the two particular portions, determining decompression parameters for the other portion and compression codes for the other portion which are capable of being decompressed with the decompression parameters determined for the other portion; and a frame formation step of forming data of a frame on the basis of the compression codes of the sample values in a corresponding one of the portions and the decompression parameters for decompressing the compression codes of the portion to be reproduced following the one portion.

According to a fourth of the present invention, there is also provided a tone signal generation method for generating a tone signal by use of a memory storing a plurality of frames each including compression codes obtained by compressing waveform data over a portion thereof and decompression parameters for decompressing the compression codes of a next portion, which comprises: a step of generating readout addresses in such a manner that the readout addresses vary at a rate corresponding to a pitch of a tone signal to be generated; a readout step of reading out data of the frames from said memory on the basis of the readout addresses generated by said step of generating; a decompression step of decompressing the compression codes of a particular portion included in any one of the frames read out by said readout step, on the basis the decompression parameters of said particular portion having been included in a previously-read-out frame, to thereby reproduce a tone signal; and a loop control step of, on condition that the readout address has reached a loop end point, setting the readout address at a loop start point, wherein at least one of a loop start point and loop end point is set at an enroute point of the portion to which the start point or end point belongs, and the portion having the loop start point or loop end point set at the enroute point thereof has same decompression parameters as another portion preceding or following said portion.

According to an embodiment of the fourth aspect of the present invention, on condition that the readout address has reached the loop end point that is a last sampling point of a predetermined loop end frame, the loop control step may perform to set the readout address at the loop start point that is an enroute sampling point in a predetermined loop start frame.

According to the embodiment of the fourth aspect of the present invention, the decompression step may include: a step of, when the loop start frame is read out for the first time by the readout step, decompressing the compression codes of the loop start frame on the basis of the decompression parameters included in the frame read out immediately before the loop start frame; a step of, when the loop start frame is read out for the second time or at a later time by the readout step, decompressing the compression codes of the loop start frame on the basis of the decompression parameters applied to decompression of the compression codes of the loop end frame; a step of, when the frame following the loop start frame is read out for the first time by the readout step, decompressing the compression codes of the frame following the loop start frame on the basis of the decompression parameters included in the loop start frame; a step of, when the frame following the loop start frame is read out for the second time or at a later time by the readout step, decompressing the compression codes of the frame following the loop start frame on the basis of the decompression parameters included in the loop end frame; and a step of, when another of the frames is read out by the readout step, decompressing the compression codes of the other frame on the basis of the decompression parameters included in the frame read out immediately before the other frame.

The decompression step may include: a step of, when the frame following the loop start frame is read out for the first time by the readout step, decompressing the compression codes of the frame following the loop start frame on the basis of the decompression parameters included in the loop start frame; a step of, when the frame following the loop start frame is read out for the second time or at a later time by the readout step, decompressing the compression codes of the frame following the loop start frame on the basis of the decompression parameters included in the loop end frame; and a step of, when another of the frames is read out by the readout step, decompressing the compression codes of the other frame on the basis of the decompression parameters included in the frame read out immediately before the other frame.

According to another embodiment of the fourth aspect of the present invention, on condition that the readout address has reached the loop end point that is an enroute point of a predetermined loop end frame, the loop control step may perform to set the readout address at the loop start point that is a leading sampling point in a predetermined loop start frame.

The present invention may be constructed and implemented not only as the apparatus (or method) invention as discussed above but also as a method (or apparatus) invention. Also, the present invention may be arranged and implemented as a software program for execution by a processor such as a computer or DSP, as well as a storage medium storing such a software program. Further, the processor used in the present invention may comprise a dedicated processor with dedicated logic built in hardware, not to mention a computer or other general-purpose type processor capable of running a desired software program.

The following will describe embodiments of the present invention, but it should be appreciated that the present invention is not limited to the described embodiments and various modifications of the invention are possible without departing from the basic principles. The scope of the present invention is therefore to be determined solely by the appended claims.

BRIEF DESCRIPTION OF THE DRAWINGS

For better understanding of the object and other features of the present invention, its preferred embodiments will be described hereinbelow in greater detail with reference to the accompanying drawings, in which:

FIG. 1 is a block diagram showing a general setup of a waveform storage processing apparatus in accordance with an embodiment of the present invention;

FIG. 2 is a block diagram showing an example setup of a compression processing section of the waveform storage processing apparatus which performs a compression process using the ADPCM scheme;

FIG. 3 is a block diagram showing an example setup of an ADPCM decoder that decompresses compressed waveform data segmented into frames;

FIG. 4 is a block diagram showing an example setup of a compression processing section of the waveform storage processing apparatus which performs a compression process using the LPC scheme;

FIG. 5 is a block diagram showing an example setup of an LPC decoder that decompresses compressed waveform data segmented into frames;

FIG. 6 is a block diagram showing a tone generation apparatus including a storage section where are stored frames of compressed waveform data having a data structure of the present invention;

FIG. 7 is a block diagram showing a detailed construction of a tone generator section in the tone generation apparatus;

FIG. 8 is a diagram showing examples of data structures in accordance with an embodiment embodying a first aspect of the present invention;

FIG. 9 is a diagram showing an example of a data structure in accordance with an embodiment embodying a second aspect of the present invention;

FIG. 10 is a diagram showing another example of the data structure in accordance with the embodiment embodying the second aspect of the present invention;

FIG. 11 is a diagram showing still another example of the data structure in accordance with the embodiment embodying the second aspect of the present invention;

FIG. 12 is a block diagram showing a general hardware setup of an electronic musical instrument in accordance with an embodiment embodying a third aspect of the present invention;

FIG. 13 is a diagram showing an example format of a waveform data file handled in the embodiment of FIG. 12;

FIG. 14 is a diagram showing an example data format of various frames;

FIG. 15 is a block diagram showing an example setup of an address generation section;

FIG. 16 is a block diagram showing an example setup of a difference information cache section;

FIG. 17 is a flow chart of a compression process routine;

FIG. 18 is a diagram explanatory of an operation for setting loop start/end points;

FIG. 19 is a diagram explanatory of an operation for determining decompression parameters;

FIG. 20 is a diagram explanatory of an operation for determining decompression parameters to be shared between different frames;

FIG. 21 is a diagram explanatory of operations during loop reproduction; and

FIG. 22 is another diagram explanatory of operations during the loop reproduction.

DETAILED DESCRIPTION OF THE EMBODIMENTS

FIG. 1 is a block diagram showing a general setup of a waveform storage processing apparatus in accordance with an embodiment of the present invention.

As shown, the waveform storage processing apparatus includes a waveform storage processing section 10 and a control section 4. The waveform storage processing section 10 includes a compression processing section 1 for compressing input original waveform data into compressed waveform data of a variable length, framing (i.e., frame formation) section 2 for segmenting the compressed waveform data into a plurality of frames and classifying the segmented compressed waveform data of each of the frames as frame data along with auxiliary information, and a storage section 3 in which the data of each of the frames classified by the framing section 2 are written and stored. The control section 4 controls waveform storage processing, performed by the waveform storage processing section 10, to variably control, for each of the frames, the number of bits per sample of the compressed waveform data, and also controls a waveform data compression process so that the number of bits per sample of the compressed waveform data is uniform within each of the frames. The compression processing section 1 is capable of performing the compression process using either the adaptive differential pulse code modulation (ADPCM) scheme or the linear predictive coding (LPC) scheme.

FIG. 2 is a block diagram showing an example setup of the compression processing section 1 which performs the compression process using the ADPCM scheme.

In FIG. 2, original waveform data Sn is input to a subtractor 11 so that the value of a prediction signal .alpha.Sn output from an ADPCM prediction section 17 is subtracted from the value of the original waveform data Sn, and the subtractor 11 outputs a difference signal dn indicative of the difference (dn=Sn-.alpha.Sn). The difference signal dn is passed to a quantization section 12, where a specific number of bits k is determined while the level of the difference signal dn is being quantized (normalized) on the basis of a quantization width signal .DELTA.n and the difference signal dn is converted into compressed waveform data Ln having the determined number of bits k by being coded in accordance with the number of bits k. Quantization width determination section 13 determines a quantization width on the basis of the current compressed waveform data Ln and previous compressed waveform data, so as to output a quantization width signal .DELTA.n indicative of an optimal quantization width. The quantization width signal .DELTA.n is supplied, as a weight, to the quantization section 12. The compressed waveform data Ln is also supplied to an inverse quantization section 15, which performs inverse quantization (including inverse normalization) on the supplied compressed waveform data Ln on the basis of the quantization width signal .DELTA.n and then outputs a decoded signal qn of the compressed waveform data Ln. The decoded signal qn is delivered to an adder 16, where a prediction signal .alpha.Sn output from the ADPCM prediction section 17 is added to the decoded signal qn to generate reproduced waveform data .alpha.Xn and the resultant sum is supplied to the prediction section 17. The ADPCM prediction section 17 generates a prediction signal .alpha.Sn for the current sample using p (which is an integral number) previous reproduced waveform data .alpha.Xn-p, .alpha.Xn-p+1, . . . , .alpha.Xn-1.

The compression process is performed in the above-described manner per sample of the original waveform data, so that compressed waveform data are output and supplied sequentially from the quantization section 12 to a framing (frame formation) section 14. The framing section 14 forms a frame, having a fixed length with a fixed total number of bits, using the compressed waveform data sequentially supplied from the quantization section 12 to the framing section 14 and the auxiliary information including information indicative of the number of bits k and other information. In this case, the frame has a fixed auxiliary information area allocated to the auxiliary information and a remaining data area allocated to the compressed waveform data. Specifically, the compressed waveform data are sequentially packed into the allocated data area, to constitute the frame together with the auxiliary information. The frames thus formed by the framing section 14 are output and written into the storage section, one by one, i.e. on a frame-by-frame basis. Note that the number of bits per sample of the compressed waveform data is uniform (i.e., the same for all the samples) within the frame, but variable among the frames.

FIG. 3 is a block diagram showing an example setup of a decoder that decompresses the compressed waveform data formed into frames in the above-described manner.

In FIG. 3, a data retrieval section 21, to which each frame read out from the storage section is supplied, retrieves the auxiliary information from the fixed auxiliary information area of the frame and determines the number of bits of the compressed waveform data of the frame on the basis of the number-of-bits information included in the retrieved auxiliary information. Then, the data retrieval section 21 sequentially extracts the compressed waveform data Ln from the data area of the frame on the basis of the determined number of bits and supplies the thus-extracted compressed waveform data to an inverse quantization section 22. Each of the compressed waveform data Ln is also supplied to a quantization width determination section 23, which determines a quantization width on the basis of the current compressed waveform data Ln and previous compressed waveform data, and it outputs a quantization width signal .DELTA.n indicative of an optimal quantization width. The quantization width signal .DELTA.n is supplied, as a weight, to the inverse quantization section 22, which performs inverse quantization (including inverse normalization) on the supplied compressed waveform data Ln on the basis of the quantization width signal .DELTA.n output from the quantization width determination section 23 and then outputs a decoded signal qn of the compressed waveform data Ln. The decoded signal qn is delivered to an adder 24, where a prediction signal .alpha.Sn output from an ADPCM prediction section 25 is added to the decoded signal qn to generate reproduced waveform data .alpha.Xn that is supplied as decoded waveform data. The reproduced waveform data .alpha.Xn is also sent to an ADPCM prediction section 25, which generates a prediction signal .alpha.Sn to be used for reproducing the current sample using p (which is an integral number) previous reproduced waveform data .alpha.Xn-p, .alpha.Xn-p+1, .alpha.Xn-1.

Thus, a reproduced sound can be acquired by generating a sound signal on the basis of the decoded waveform data output from the decoder. In the case where the original data are tone waveform data, there can be generated a tone on the basis of the output decoded waveform data. Note that the data retrieval section 21 also outputs other auxiliary information; thus, if the output auxiliary information is used as loop addresses for tone volume information and waveform data, there can be generated a tone using the loop addresses.

FIG. 4 is a block diagram showing an example setup of the compression processing section 1.

In FIG. 4, original waveform data Sn are input to a prediction coefficient calculation section 33, which calculates prediction coefficients Pn (p (which is an integral number) prediction coefficients or index indicative of the p prediction coefficients) on the basis of samples of the original waveform data for a predetermined time period corresponding to a frame and using linear prediction coefficient calculations such as auto-correlation. The prediction coefficient calculation section 33 outputs the thus-calculated prediction coefficients Pn to a frame determination section 34. Further, a linear prediction signal .alpha.Sn output from a linear prediction section 38 is subtracted from the original waveform data Sn input to a subtractor 31, so that the subtractor 31 outputs a difference signal dn indicative of the difference (dn=Sn-.alpha.Sn). The difference signal dn is passed to a quantization section 32, where it is coded while its level is being quantized (normalized) on the basis of a designated quantization width signal and designated number of bits, and then it is converted into compressed waveform data Ln having the designated number of bits. The compressed waveform data Ln is supplied to an inverse quantization section 36, where inverse quantization (including inverse normalization) is performed on the supplied compressed waveform data Ln on the basis of a designated quantization width signal and designated number of bits so that a decoded signal qn of the compressed waveform data Ln is output. The decoded signal qn is delivered to an adder 37, where a linear prediction signal .alpha.Sn output from the linear prediction section 38 is added to the decoded signal qn to generate reproduced waveform data .alpha.Xn that is sent back to the linear prediction section 38. The linear prediction section 38 performs linear prediction calculations on the basis of p (which is an integral number) previous reproduced waveform data .alpha.Xn-p, .alpha.Xn-p+1, . . . , .alpha.Xn-1, to generate a linear prediction signal .alpha.Xn of the current sample.

For each frame of the original waveform data, the compression processing section 1 performs linear prediction compression in a plurality of different ways each using a different number of bits, different coefficients or different quantization width, and the frame determination section 34 determines a specific number of bits, prediction coefficients and quantization width to be used for compression of the frame on the basis of the results of the compression processes performed. The quantization section 32 performs quantization on the basis of the thus-determined number of bits, prediction coefficients and quantization width, to thereby generate compressed waveform data Ln. In this case, the frame determination section 34 provisionally determines a specific number of bits on the basis of previous numbers of bits, and then the prediction coefficient calculation section 33 supplies prediction coefficients Pn corresponding to one frame of the original waveform data that are to be compressed in accordance with the provisionally-determined number of bits. Then, the frame determination section 34 provisionally determines a quantization width on the basis of previous quantization widths, the linear prediction section 38 performs linear prediction based on the prediction coefficients Pn and the quantization section 32 performs quantization based on the provisionally-determined number of bits and quantization width, so as to generate compressed waveform data Ln. Then, a comparison is made between reproduced waveform data generated by the above provisional linear prediction compression process (i.e., reproduced waveform data output from the adder 37) and the original waveform data, so as to calculate a distortion rate of the reproduced waveform data. Then, on the basis of the results of the provisional linear prediction compression process having been performed in a plurality of different ways, a combination of the number of bits, prediction coefficients and quantization width is determined, for each frame, which achieves an optimal compression rate with the distortion rate falling within a predetermined permissible range.

Then, using the number of bits, prediction coefficients and quantization width having been determined per frame in the above-described manner, the compression process is performed, sample by sample, on the frame of the original waveform data, and resultant compressed waveform data are sequentially output from the quantization section 32 to a framing section 35. The framing section 35 forms frames, each having a fixed length with a fixed total number of bits, using the compressed waveform data sequentially supplied from the quantization section 32 to the framing section 35, auxiliary information including information indicative of determined prediction coefficients, number of bits and quantization width and other auxiliary information. In this case, the frame has a fixed auxiliary information area allocated to the auxiliary information and the remaining data area allocated to the compressed waveform data. Specifically, the compressed waveform data are sequentially packed into the allocated data area, to constitute the frame together with the auxiliary information. The frames thus formed by the framing section 35 are output and written into the storage section on the frame-by-frame basis. Note that the prediction coefficients, number of bits and quantization width of the compressed waveform data may be made variable on the frame-by-frame basis.

FIG. 5 is a block diagram showing an example setup of a decoder that decompresses the compressed waveform data formed into frames in the above-described manner.

In FIG. 5, a data retrieval section 41, to which each frame read out from the storage section is supplied, retrieves the auxiliary information from the fixed auxiliary information area of the frame and also sequentially retrieves the compressed waveform data from the fixed data area of the frame on the basis of the number-of-bits information included in the auxiliary information, so as to supply the retrieved information and waveform data to an inverse quantization section 42. Further, the data retrieval section 41 extracts prediction coefficient information Pn from the auxiliary information to supply the extracted prediction coefficient information Pn to a linear prediction section 44, and it also extracts quantization width information from the auxiliary information to supply the extracted quantization width information to the inverse quantization section 42. The inverse quantization section 42, which performs inverse quantization (including inverse normalization) on the supplied compressed waveform data Ln on the basis of the quantization width information supplied from the data retrieval section 41 and then outputs a decoded signal qn of the compressed waveform data Ln. The decoded signal qn is delivered to an adder 43, where a prediction signal .alpha.Sn output from the linear prediction section 44 is added to the decoded signal qn to generate reproduced waveform data .alpha.Xn that is supplied as decoded waveform data. The reproduced waveform data .alpha.Xn is also sent to the linear prediction section 44, which generates a prediction signal .alpha.Sn for the current sample by performing linear prediction calculations based on p (which is an integral number) previous reproduced waveform data .alpha.Xn-p, .alpha.Xn-p+1, . . . , .alpha.Xn-1.

Thus, a reproduced sound can be acquired by generating a sound signal on the basis of the decoded waveform data output from the decoder. In the case where the original data are tone waveform data, there can be generated a tone on the basis of the output decoded waveform data. Note that the data retrieval section 41 also outputs other auxiliary information; thus, if the output auxiliary information is set as loop addresses for tone volume information and waveform data, there can be generated a tone using the loop addresses.

FIG. 8 is a diagram showing examples of inventive data structures of frames each comprising compressed waveform data and auxiliary information stored in the storage section 3.

Specifically, FIG. 8 shows example data structures of frames where each sample of compressed waveform data consists of two bits, three bits, four bits, five bits, six bits and ten bits, respectively. Referring to the example where each sample of compressed waveform data consists of two bits, each frame has a data size corresponding to five addresses from "00" to "04" with a data length (sometimes referred to as data width) corresponding to one address being 16 bits, and thus the total number of bits in the frame is 80 bits; the total number of bits in the frame is fixed to provide a fixed length. The frame is composed of an auxiliary information area having a fixed length of 20 bits from the beginning of the frame, and a data area of a fixed length where compressed waveform data of the remaining 60 bits are stored. In this case, 11-bit prediction coefficient information, 5-bit quantization width information and 4-bit number-of-bits information is stored in the auxiliary information area, and 30 samples of compressed waveform data, having sample numbers "1"-"30", are stored in the data area with each sample compressed into two bits. In the frame, the number of bits per sample of the compressed waveform data is fixed.

Namely, because the total number of bits in the frame is fixed with the data length corresponding to one address as a minimum unit, the frame can start at a same fixed position. In the case where each frame has a data length corresponding to five addresses, the start addresses of the individual frames are located regularly, i.e. every five addresses; for example, if the first or start address of a given frame is "00", the last or end address of the given frame is "04", and the next frame starts at address "05". Further, because the auxiliary information area has a fixed length, the compressed waveform data also start at a same fixed position. Therefore, in performing the decompression process, addresses for reading out the frames can be generated with a simple construction. In each of the other examples of FIG. 8 too, the total number of bits in each frame is fixed with the data length corresponding to one address as a minimum unit,

Thus, in the case where the frame has a data length corresponding to five addresses and each sample of the compressed waveform data consists of three bits as illustrated in the second block from the top of FIG. 8, 20 samples of the compressed waveform data are stored in the frame. In the case where the frame has a data length corresponding to five addresses and each sample of the compressed waveform data consists of four bits as illustrated in the third block of FIG. 8, 15 samples of the compressed waveform data are stored in the frame. Similarly, in the case where the frame has five data lengths and each sample of the compressed waveform data consists of five bits as illustrated in the fourth block of FIG. 8, 12 samples of the compressed waveform data are stored in the frame. In the case where the frame has five data lengths and each sample of the compressed waveform data consists of six bits as illustrated in the fifth block of FIG. 8, 10 samples of the compressed waveform data are stored in the frame. Further, in the case where the frame has five data lengths and each sample of the compressed waveform data consists of 10 bits as illustrated in the bottom block of FIG. 8, six samples of the compressed waveform data are stored in the frame. By thus setting the number of bits to an integer multiple of a prime number, "2", "3" or "5", of the 60 bits allocated to the compressed waveform data, the compressed waveform data can be packed into the frame with no waste.

Note that, where waveform data compressed by the ADPCM scheme are stored, there is no need to store information of prediction coefficients and quantization width, and, therefore, the region of address "00" in the data structure of FIG. 8 is unnecessary. Thus, in this case, it suffices to store, for each frame, only data corresponding to addresses "01"-"04".

FIG. 6 is a block diagram showing an embodiment of a tone generation apparatus constructed using a storage section 3 where are stored frames of compressed waveform data having the data structure of the present invention.

In the tone generation apparatus 50 of FIG. 6, a CPU (Central Processing Unit) 61 executes various tone generating programs to control tone generation processes to be performed by the apparatus 50. Timer 64 counts and indicates elapsed times during the processes, generates timer interrupt signals at specific time intervals, etc., and the outputs from the timer 64 are used for time management for an automatic performance etc. Flash ROM 62 is a rewritable read-only memory where are stored tone generation processing programs to be executed by the CPU 61 and various data such as framed compressed waveform data of the inventive data structure. ROM/RAM 63 is a main memory in the tone generation apparatus 50, which includes a RAM (Random Access Memory) having a working area set for use by the CPU 61 etc. and a ROM where are stored data such as framed compressed waveform data of the inventive data structure.

Further, in the tone generation apparatus 50 of FIG. 6, a performance operator unit 65 is, for example, in the form of a keyboard, and a MIDI interface 66 is an interface for transmitting a MIDI message, created within the tone generation apparatus 50, to the outside and receiving a MIDI message from the outside. Panel switch unit 67 includes various switches provided on a panel of the tone generation apparatus 50, and the user can give various instructions to the apparatus 50 by operating the panel switch unit 67. Display device 68 visually displays various information at the time of generation of tones. Further, the user can give various instructions to the tone generation apparatus 50 by operating display switches SW9 provided near the display device 68. Hard disk 70 is a large-capacity storage medium capable of storing framed compressed waveform data of the inventive data structure, as well as performance data, user-set data, etc.

Tone generator section 71 includes decoders constructed as shown in FIGS. 3 and 5 for decompressing framed compressed waveform data of the inventive structure, which, under control of the CPU 61, reads out, from the ROM/RAM 63, the framed compressed waveform data necessary for tone generation and then performs the decompression process on the read-out compressed waveform data. After that, the tone generator section 71 performs various processes, such as interpolation, envelope impartment, channel accumulation (mixing) and effect impartment, on the decoded waveform data, and outputs the thus-processed waveform data as tone waveform data. The tone waveform data output from the tone generator section 71 are supplied to a sound system 72, where they are converted into analog representation and audibly reproduced or sounded. The above-mentioned various components of the tone generation apparatus 50 are interconnected via a bus 73.

FIG. 7 is a block diagram showing a detailed construction of the tone generator section 71 in the tone generation apparatus 50.

When a tone is to be generated in response to a note-on event, the CPU 61 of the tone generation apparatus 50 selects, from among a plurality of tone generating channels, a channel to be used for (to be assigned to) generation of the tone corresponding to the note-on event, sets various tone generator parameters in a storage area of a control register 80 corresponding to the assigned tone generating channel, and issues an instruction for starting generation of the tone in the assigned tone generating channel. The tone generator parameters to be supplied to the control register 80 along with the tone generation start instruction include parameters of a waveform memory readout rate (corresponding to the pitch of the tone to be generated), particular portion of the waveform memory to be read, envelope parameters, setting information to be supplied to a mixer section 87, effect coefficient, etc. Of these, the parameters of the portion of the waveform memory to be read include a start address and data length of the compressed waveform data to be read out.

On the basis of pitch information and readout start address of each tone generating channel supplied from the control register 80, an address generation section 82 forms a frame address (FAD) to be used for reading out a frame of compressed waveform data to be read out from a waveform storage section 63a of the ROM/RAM 63. Specifically, pitch information in the form of an F number is accumulated every waveform data generation timing (sampling cycle) to calculate a readout address, and the frame address (FAD) is generated on the basis of the integral portion of the calculated readout address and readout start address. This frame address is supplied to a frame readout section 81, and the frame corresponding to the frame address is read out by the frame readout section 81 from the waveform storage section 63a of the ROM/RAM 63 and cached into a frame cache section 83. In this case, the construction of the address generation section 82 can be simplified significantly because, as illustrated in FIG. 8, the frame has a fixed length having the data length corresponding to one address as a minimum unit and the leading address of the frame is at a same fixed position. Once a frame of waveform data is newly cached into the frame cache section 83, the auxiliary information is read out from the frame cache section 83, and compression-related information necessary for the decompression process, included in the auxiliary information, is set into a decoder 84. For example, in the case where the compressed waveform data are waveform data compressed by the ADPCM scheme, information indicative of the number of bits in the compressed waveform data is set into the decoder 84; in the case where the compressed waveform data are waveform data compressed by the LPC (Linear Predictive Coding) scheme, information indicative of the number of bits in the compressed waveform data, linear prediction coefficients and quantization width is set into the decoder 84. Further, other auxiliary information than the compression-related information is sent to the control register 80 for storage therein.

Further, the integral portion of the readout address calculated by the address generation section 82 is supplied to the frame cache section 83, while the decimal fraction portion of the readout address is supplied, as interpolation information, to an interpolation section 85. The compressed waveform data read out from the frame cache section 83 in accordance with the integral portion of the readout address is supplied to the decoder 84. In an interpolation process by the interpolation section 85, the address generation section 82 generates addresses to be used for reading out, from the frame cache section 83, a particular number of samples of the compressed waveform data corresponding to an increment in the integral portion of the readout address in the current sampling cycle, and the corresponding compressed waveform data are read out to the decoder 84. The decoder 84 reproduces original waveform data by sequentially performing the decompression process on a plurality of the compressed waveform data, read out from the frame cache section 83, on the basis of the set compression-related information and p (which is an integral number) samples of decompressed waveform da


Free Web Sudoku Puzzles.
Solve with your browser.
  6   5 8        
5 9     6   7 2  
  1     7       6
    4 9          
    5       4    
          3 1    
6       3     1  
  4 2   9     8 7
        5 4   9  
What is it?



Add Your Site · Terms Of Service · Privacy Policy


DISCLAIMER
Linkgrinder is a free service that searches the Internet and indexes all files found so that you may search quickly and easily for shared files. These files are created and made available individually by users whose identity we are not aware of and who we have no control over. In essence we function like a search engine tool; these files ARE NOT STORED OR SERVED BY OUR NETWORK. We are not responsible for any materials obtained by using our service. We do not monitor any of the contents of these files. These files may contain viruses, illegal materials, materials inappropriate for minors, offensive files and the like. BY USING OUR SERVICE, YOU ASSUME FULL RESPONSIBILITY FOR DOWNLOADING THESE MATERIALS AND WILL INDEMNIFY US FOR ANY DAMAGES THAT MAY BE INCURRED.

For More Specific Information VIEW OUR TERMS OF SERVICE.

Thank you and Enjoy!