WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Adaptive transform coding by selecting optimum block lengths according to variatons between successive blocks    
United States Patent5235623   
Link to this pagehttp://www.wikipatents.com/5235623.html
Inventor(s)Sugiyama; Akihiko (Tokyo, JP); Iwadare; Masahiro (Tokyo, JP); Nishitani; Takao (Tokyo, JP)
AbstractSubblocks of input digital samples are stored into a buffer at frame intervals and segmented into blocks having an integral multiple of the length of the subblock. Each block is encoded into transform coefficients and stored into a memory. Each coefficient is squared and those of the squared transform coefficients which correspond to high-frequency components of the input digital samples are summed and a minimum value is detected therefrom as corresponding to an optimum block length. Those transform coefficients which correspond to the optimum block length are selected from the memory and multiplexed with a signal representative of the optimum block length. In a modification, interblock differences are detected between successive transform coefficients of equal block length and squared. Those of the squared interblock differences which correspond to equal block length are summed, producing a set of squared sums for each block length. A variation is detected between a representative squared sum of a given set and a representative squared sum of a successive set to identify a block length which corresponds to the variation as an optimum block length.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Inventor     Sugiyama; Akihiko (Tokyo, JP); Iwadare; Masahiro (Tokyo, JP); Nishitani; Takao (Tokyo, JP)
Owner/Assignee     NEC Corporation (JP)
Patent assignment
All assignments
Publication Date     August 10, 1993
Application Number     07/613,122
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     November 14, 1990
US Classification    
Int'l Classification    
Examiner     Kuntz; Curtis
Assistant Examiner     Ghebretinsae; T.
Attorney/Law Firm     Ostrolenk, Faber, Gerb & Soffen
Address
Parent Case    
Priority Data     Nov 14, 1989 [JP] 1-297010 Nov 30, 1989 [JP] 1-312333 Dec 13, 1989 [JP] 1-324333 Dec 13, 1989 [JP] 1-324334 Dec 13, 1989 [JP] 1-324335
USPTO Field of Search    
Patent Tags     adaptive transform coding selecting optimum block lengths according variatons between successive blocks
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
5109417
Fielder
704/205
Apr,1992

[0 after 0 votes]
4860313
Shpiro
375/245
Aug,1989

[0 after 0 votes]
4394774
Widergren
382/250
Dec,1969

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


What is claimed is:

1. An adaptive transform coding method comprising:

a) storing subblocks of input digital samples representing an audio-frequency signal in a buffer at predetermined intervals, reading the stored samples from the buffer and segmenting the samples from the buffer into a plurality of blocks each having an integral multiple of length of said subblock;

b) encoding each of said blocks into corresponding transform coefficients and storing said transform coefficients in a memory;

c) squaring each of said transform coefficients;

d) summing those of said squared transform coefficients which correspond to high-frequency components of said input digital samples to produce squared sums;

e) detecting a minimum of said squared sums as corresponding to an optimum block length;

g) selecting those of said transform coefficients which correspond to said optimum block length from said memory; and

h) multiplexing the selected transform coefficients with a block length signal representative of said optimum block length.

2. An adaptive transform coding method as claimed in claim 1, further comprising the steps of determining a step size from the transform coefficients selected by the step (g) and quantizing the selected transform coefficients according to said step size, and wherein the step (h) comprises multiplexing the quantized transform coefficients with a signal representative of said step size.

3. An adaptive transform coding method as claimed in claim 2, wherein the selected step size is determined by squaring said transform coefficients, taking an average value of a group of the squared transform coefficients of neighboring occurrences as a representative value of said group, providing interpolations between successive ones of said squared transform coefficients, and deriving said step size from the interpolated squared transform coefficients.

4. An adaptive transform coding method as claimed in claim 1, wherein the step (a) comprises organizing 2.sup.a+b N samples read out of said buffer into (m+1) groups of 2.sup.a blocks of 2.sup.b N samples each, where a+b=m, and a is a variable in a range from m to 0 and b is a variable in a range from 0 to m, and where m is equal to or greater than 2, and N is an integer, each of said groups containing an equal number of samples of same arrivals.

5. An adaptive transform coding method as claimed in claim 1, further comprising deriving respective variances of said blocks, scaling said blocks according to the respective variances, storing said variances into a second memory, and selecting those variances corresponding to said optimum block length from said second memory, wherein the step (h) comprises multiplexing the selected transform coefficients with a signal representative of the selected variances.

6. An adaptive transform coding method as claimed in claim 1, further comprising generating a signal specifying a predetermined block length, wherein the step (g) comprises selecting those of said transform coefficients which correspond to said predetermined block length and the step (h) comprises multiplexing the transform coefficients selected as corresponding to said predetermined block length with a signal representative of said predetermined block length instead of with the signal representative of the optimum block length.

7. An adaptive transform coding method comprising:

a) storing subblocks of input digital samples representing an audio-frequency signal into a buffer at frame intervals, reading the stored samples from the buffer and segmenting the samples from the buffer into a plurality of blocks each having an integral multiple of the length of said subblock;

b) encoding each of said blocks into corresponding transform coefficients and storing said transform coefficients into a memory;

c) detecting interblock differences between successive transform coefficients of equal block length;

d) squaring each of said interblock differences;

e) summing those of said squared interblock differences which correspond to equal block length to produce a set of squared sums of said interblock differences for each block length;

f) detecting representative values of the squared sums from successive ones of said sets, detecting a variation between said representative values and identifying a block length corresponding to said variation as an optimum block length;

g) selecting those of said transform coefficients which correspond to said optimum block length from said memory; and

h) multiplexing the selected transform coefficients with a block length signal representative of said optimum block length.

8. An adaptive transform coding method as claimed in claim 7, wherein the step (f) comprises the steps of:

detecting a maximum value of the squared sums from each set; and

comparing said maximum values detected from a successive pair of said sets so that said compared values correspond respectively to longer and shorter block lengths and selecting one of the compared values as corresponding to said variation if the maximum value of the longer block length has a smaller maximum value than the maximum value of a shorter block length.

9. An adaptive transform coding method as claimed in claim 8, wherein the step (f) further comprises the steps of:

detecting those of said squared sums from each frame interval which correspond to a minimum block length;

dividing each of the detected squared sums with the detected squared sum of an adjacent occurrence to produce a plurality of ratios from each frame interval; and

detecting one of said ratios as corresponding to said variation if said ratio exceeds a prescribed value.

10. An adaptive transform coding method as claimed in claim 7, wherein the step (f) comprises the steps of:

detecting a maximum value of the squared sums from each set;

dividing one of the maximum values of a successive pair by the other maximum value of the pair and deriving a plurality of ratios from a plurality of said pairs; and

detecting a minimum value from said ratios as corresponding to said variation.

11. An adaptive transform coding method as claimed in claim 10, wherein the step (f) further comprises the steps of:

detecting those of said squared sums from each frame interval which correspond to a minimum block length;

dividing each of the detected squared sums with the detected squared sum of an adjacent occurrence to produce a plurality of ratios from each frame interval; and

detecting one of said ratios as corresponding to said variation if said ratio exceeds a prescribed value.

12. An adaptive transform coding method as claimed in claim 7, further comprising the steps of determining a step size from the transform coefficients selected by the step (g) and quantizing the selected transform coefficients according to said step size, and the step (h) comprises multiplexing the quantized transform coefficients with a signal representative of said step size.

13. An adaptive transform coding method as claimed in claim 12, wherein said selected step size is determined by squaring said transform coefficients, taking an average value of a group of the squared transform coefficients of neighboring occurrences as a representative value of said group, providing interpolations between successive ones of said squared transform coefficients, and deriving said step size from the interpolated squared transform coefficients.

14. An adaptive transform coding method as claimed in claim 7, wherein the step (a) comprises organizing 2.sup.a+b N samples read out of said buffer into (m+1) groups of 2.sup.a blocks of 2.sup.b N samples each, where a+b=m, and a is a variable in a range from m to 0 and b is a variable in a range from 0 to m, and where m is equal to or greater than 2, and N is an integer, each of said groups containing an equal number of samples of same arrivals.

15. An adaptive transform coding method as claimed in claim 7, further comprising deriving respective variances of said blocks, scaling said blocks according to the respective variances, storing said variances into a second memory, and selecting those of said variances which correspond to said optimum block length from said second memory, wherein the step (h) comprising multiplexes multiplexing the selected transform coefficients with a signal representative of the selected variances.

16. An adaptive transform coding method as claimed in claim 7, further comprising generating a signal specifying a predetermined block length, wherein the step (g) comprises selecting those of said transform coefficients which correspond to said predetermined block length and the step (h) comprises multiplexing the transform coefficients selected as corresponding to said predetermined block length with a signal representative of the predetermined block length instead of with the signal representative of the optimum block length.

17. An adaptive transform coding method comprising:

a) storing subblocks of input digital samples representing an audio-frequency signal in a buffer at frame intervals, reading the stored samples from the buffer and segmenting the samples from the buffer into a plurality of blocks each having an integral multiple of the length of said subblock;

b) storing said blocks in a memory and detecting interblock differences between successive blocks of equal length;

c) squaring each of said interblock differences;

d) summing those of said squared interblock differences which correspond to equal block length to produce a set of squared sums of said interblock differences for each block length;

e) detecting representative values of the squared sums from successive ones of said sets, detecting a variation between said representative values and identifying a block length corresponding to said variation as an optimum block length;

f) selecting those of said blocks having said optimum block length from said memory;

g) linearly encoding the selected blocks into corresponding transform coefficients; and

h) multiplexing said transform coefficients with a block length signal representative of said optimum block length.

18. An adaptive transform coding method as claimed in claim 17, wherein the step (e) comprises the steps of:

detecting a maximum value of the squared sums from each set; and

comparing said maximum values detected from a successive pair of said sets so that said compared values correspond respectively to longer and shorter block lengths and selecting one of the compared values as corresponding to said variation if the maximum value of the longer block length has a smaller maximum value than the maximum value of a shorter block length.

19. An adaptive transform coding method as claimed in claim 18, wherein the step (e) further comprises the steps of:

detecting those of said squared sums from each frame interval which corresponds to a minimum block length;

dividing each of the detected squared sums with the detected squared sum of an adjacent occurrence to produce a plurality of ratios from each frame interval; and

detecting one of said ratios as corresponding to said variation if said ratio exceeds a prescribed value.

20. An adaptive transform coding method as claimed in claim 17, wherein the step (e) comprises the steps of:

detecting a maximum value of the squared sums from each set;

dividing one of the maximum values of a successive pair by the other maximum value of the pair and deriving a plurality of ratios from a plurality of said pairs; and

detecting a minimum value from said ratios as corresponding to said variation.

21. An adaptive transform coding method as claimed in claim 20, wherein the step (e) further comprises the steps of:

detecting those of said squared sums from each frame interval which correspond to a minimum block length;

dividing each of the detected squared sums with the detected squared sum of an adjacent occurrence to produce a plurality of ratios from each frame interval; and

detecting one of said ratios as corresponding to said variation if said ratio exceeds a prescribed value.

22. An adaptive transform coding method as claimed in claim 17, further comprising the steps of determining a step size from the selected transform coefficients and quantizing said transform coefficients according to said step size, and wherein the step (h) comprises multiplexing quantized transform coefficients with a signal representative of said step size.

23. An adaptive transform coding method as claimed in claim 22, wherein said step size is determined by squaring the selected transform coefficients, taking an average value of a group of the squared transform coefficients of neighboring occurrences as a representative value of said group, providing interpolations between successive ones of said squared transform coefficients, and deriving said step size from the interpolated squared transform coefficients.

24. An adaptive transform coding method as claimed in claim 17, wherein the step (a) comprises reading samples out of said buffer and organizing 2.sup.a+b N samples read out of said buffer into (m+1) groups of 2.sup.a blocks of 2.sup.b N samples each, where a+b=m, and a is a variable in a range from m to O and b is a variable in a range from O to m, and where m is equal to or greater than 2, and N is an integer, each of said groups containing an equal number of samples of same arrivals.

25. An adaptive transform coding method as claimed in claim 17, further comprising deriving respective variances of said blocks, scaling said blocks according to the respective variances, storing said variances into a second memory, and selecting those of said variances which correspond to said optimum block length from said second memory, wherein the step (h) comprises multiplexing the selected transform coefficients with a signal representative of the selected variances.

26. An adaptive transform coding method as claimed in claim 17, further comprising generating a signal specifying a predetermined block length, wherein the step (f) comprises selecting those blocks having said predetermined block length and the step (h) comprises multiplexing the transform coefficients selected as corresponding to said predetermined block length with a signal representative of the predetermined block length instead of with the signal representative of the optimum block length.

27. A data compression system comprising:

a buffer;

buffer control means for storing subblocks of input digital samples representing an audio-frequency signal in said buffer at predetermined intervals, reading the stored samples from the buffer and segmenting the samples from the buffer into a plurality of blocks each having an integral multiple of the length of said subblock;

a transform encoder for encoding each of said blocks into corresponding transform coefficients;

a memory for storing said transform coefficients therein;

optimum block length determination means for squaring each of said transform coefficients, summing those of said squared transform coefficients which correspond to high-frequency components of said input digital samples to produce squared sums, detecting a minimum of said squared sums as corresponding to an optimum block length, and selecting those of said transform coefficients which correspond to said optimum block length from said memory;

multiplexer means for multiplexing the selected transform coefficients with a signal representative of said optimum block length into a multiplex signal;

demultiplexer means for demultiplexing the multiplex signal into said transform coefficients and said block length signal; and

a transform decoder coupled to said demultiplexer means for decoding said demultiplexed transform coefficients in a process inverse to said transform encoder at intervals corresponding to the block length indicated by said demultiplexed block length signal.

28. A data compression system as claimed in claim 27, further comprising:

means for deriving variances of said blocks respectively and scaling the blocks with the respective variances; and

a second memory for storing said variances,

wherein said optimum block length determination means selects those of said variances which correspond to said optimum block length, and said multiplexer means multiplexes a signal representative of the selected variance with said selected transform coefficients.

29. A data compression system as claimed in claim 27, further comprising means for determining a step size from the selected transform coefficients and means for quantizing said selected transform coefficients according to said step size and causing said multiplexer means to multiplex a signal representative of said step size with the quantized transform coefficients.

30. A data compression system as claimed in claim 29, wherein said step size determination means comprises means for squaring said selected transform coefficients and taking an average value of a group of the squared transform coefficients of neighboring occurrences as a representative value of said group and causing said multiplexer means to multiplex the selected transform coefficients with a signal representative of said average value as said step size representative signal, means for providing interpolations between successive ones of said squared transform coefficients, deriving said step size from the interpolated squared transform coefficients and applying a signal representative of the derived step size to said quantizer means.

31. A data compression system as claimed in claim 27, wherein said buffer control means organizes 2.sup.a+b N samples read out of said buffer into (m+1) groups of 2.sup.a blocks of 2.sup.b N samples each, where a+b=m, and a is a variable in a range from m to 0 and b is a variable in a range from 0 to m, and where m is equal to or greater than 2, and N is an integer, each of said groups containing an equal number of samples of same arrivals.

32. A data compression system as claimed in claim 31, further comprising a normalizer for deriving respective variances of said blocks, and scaling said blocks according to the respective variances, a second memory for storing said variances therein, wherein said optimum block length determination means selects those variances corresponding to said optimum block length from said second memory, and wherein said multiplexer means multiplexes the selected transform coefficients with a signal representative of the selected variances.

33. A data compression system as claimed in claim 27, further comprising means for generating a signal specifying a predetermined block length and means for selecting those of said transform coefficients which correspond to said predetermined block length from said memory and causing said multiplexer means to multiplex the transform coefficients selected as corresponding to said predetermined block length with a signal representative of said predetermined block length instead of with the signal representative of the optimum block length.

34. A data compression system comprising:

a buffer;

buffer control means for storing subblocks of input digital samples representing an audio-frequency signal in said buffer at frame intervals, reading the stored samples from the buffer and segmenting the samples from the buffer into a plurality of blocks each having an integral multiple of the length of said subblock;

a transform encoder for encoding said blocks into respective transform coefficients;

a memory for storing said transform coefficients therein;

optimum block length determination means for detecting interblock differences between successive transform coefficients of equal block length, squaring each of said interblock differences, summing those squared interblock differences corresponding to equal block length to produce a set of said squared sums for each block length, detecting representative values of the squared sums from successive ones of said sets, detecting a variation between said representative values and identifying a block length corresponding to said variation as an optimum block length, and selecting those of the transform coefficients having said optimum block length from said memory;

multiplexer means for multiplexing the selected transform coefficients with a signal representative of said optimum block length into a multiplex signal;

demultiplexer means for demultiplexing the multiplex signal into said transform coefficients and said block length signal; and

a transform decoder coupled to said demultiplexer means for decoding said demultiplexed transform coefficients in a process inverse to said transform encoder at intervals corresponding to the block length indicated by said demultiplexed block length signal.

35. A data compression system as claimed in claim 34, wherein the optimum block length determination means comprises:

means for detecting a maximum value of the squared sums from each set; and

means for comparing said maximum values detected from a successive pair of said sets so that said compared values correspond respectively to longer and shorter block lengths and selecting one of the compared values as corresponding to said variation if the maximum value of the longer block length has a smaller maximum value than the maximum value of a shorter block length.

36. A data compression system as claimed in claim 35, wherein the optimum block length determination means further comprises:

means for detecting those of said squared sums from each frame interval which correspond to a minimum block length;

means for dividing each of the detected squared sums with the detected squared sum of an adjacent occurrence to produce a plurality of ratios from each frame interval; and

means for detecting one of said ratios as corresponding to said variation if said ratio exceeds a prescribed value.

37. A data compression system as claimed in claim 34, wherein the optimum block length determination means comprises:

means for detecting a maximum value of the squared sums from the different sets of each frame interval and deriving a plurality of said maximum values during each frame interval; and

means for forming the maximum value derived from each set with the maximum value of an adjacent set into a pair and deriving a plurality of successive pairs from successive frame intervals;

means for dividing one of the maximum values of each of said pairs by the other maximum value of the pair and deriving a plurality of ratios from said pairs; and

means for detecting a minimum value from said ratios as corresponding to said variation.

38. A data compression system as claimed in claim 37, wherein the optimum block length determination means further comprises:

means for detecting those of said squared sums from each frame interval which correspond to a minimum block length;

means for dividing each of the detected squared sums with the detected squared sum of an adjacent occurrence to produce a plurality of ratios from each frame interval; and

means for detecting one of said ratios as corresponding to said variation if said ratio exceeds a prescribed value.

39. A data compression system as claimed in claim 34, further comprising a normalizer for deriving respective variances of said blocks, and scaling said blocks according to the respective variances, a second memory for storing said variances therein, wherein said optimum block length determination means selects those variances corresponding to said optimum block length from said second memory, and wherein said multiplexer means multiplexes the selected transform coefficients with a signal representative of the selected variances.

40. A data compression system as claimed in claim 34, further comprising means for determining a step size from the selected transform coefficients and means for quantizing said selected transform coefficients according to said step size and causing said multiplexer means to multiplex a signal representative of said step size with the quantized transform coefficients.

41. A data compression system as claimed in claim 40, wherein said step size determination means comprises means for squaring said selected transform coefficients and taking an average value of a group of the squared transform coefficients of neighboring occurrences as a representative value of said group and causing said multiplexer means to multiplex the selected transform coefficients with a signal representative of said average value as said step size representative signal, means for providing interpolations between successive ones of said squared transform coefficients, deriving said step size from the interpolated squared transform coefficients and applying a signal representative of the derived step size to said quantizer means.

42. A data compression system as claimed in claim 34, wherein said buffer control means reads out the samples stored in said buffer and organizes 2.sup.a+b N samples read out of said buffer into (m+1) groups of 2.sup.a blocks of 2.sup.b N samples each, where a+b=m, and a is a variable in a range from m to 0 and b is a variable in a range from 0 to m, and where m is equal to or greater than 2, and N is an integer, each of said groups containing an equal number of samples of same arrivals.

43. A data compression system as claimed in claim 34, further comprising means for generating a signal specifying a predetermined block length and means for selecting those of said transform coefficients which correspond to said predetermined block length from said memory and causing said multiplexer means to multiplex the transform coefficients selected as corresponding to said predetermined block length with a signal representative of said predetermined block length instead of with the signal representative of the optimum block length.

44. A data compression system comprising:

a buffer;

buffer control means for storing subblocks of input digital samples representing an audio-frequency signal into said buffer at predetermined intervals, reading the stored samples from the buffer and segmenting the samples from the buffer into a plurality of blocks each having an integral multiple of the length of said subblock;

a memory for storing said blocks therein;

optimum block length determination means for detecting interblock differences between successive blocks of equal block length, squaring each of said interblock differences, summing those squared interblock differences corresponding to equal block length to produce a set of said squared sums for each block length, detecting representative values of the squared sums from successive ones of said sets, detecting a variation between said representative values and identifying a block length corresponding to said variation as an optimum block length, and selecting those of the blocks having said optimum block length from said memory;

a transform encoder for encoding said selected blocks into respective transform coefficients;

multiplexer means for multiplexing the transform coefficients with a signal representative of said optimum block length into a multiplex signal;

demultiplexer means for demultiplexing the multiplex signal into said transform coefficients and said block length signal; and

a transform decoder coupled to said demultiplexer means for decoding said demultiplexed transform coefficients in a process inverse to said transform encoder at intervals corresponding to the block length indicated by said demultiplexed block length signal.

45. A data compression system as claimed in claim 44, wherein the optimum block length determination means comprises:

means for detecting a maximum value of the squared sums from the different sets of each frame interval; and

means for comparing between said maximum values detected from a successive pair of said sets so that said compared values correspond respectively to longer and shorter block lengths and selecting one of the compared values as corresponding to said variation if the maximum value of the longer block length has a smaller maximum value than the maximum value of a shorter block length.

46. A data compression system as claimed in claim 45, wherein the optimum block length determination means further comprises:

means for detecting those of said squared sums from each frame interval which correspond to a minimum block length;

means for dividing each of the detected squared sums with the detected squared sum of an adjacent occurrence to produce a plurality of ratios from each frame interval; and

means for detecting one of said ratios as corresponding to said variation if said ratio exceeds a prescribed value.

47. A data compression system as claimed in claim 44, wherein the optimum block length determination means comprises:

means for detecting a maximum value of the squared sums from the different sets of each frame interval and deriving a plurality of said maximum values during each frame interval; and

means for forming the maximum value derived from each set with the maximum value of an adjacent set into a pair and deriving a plurality of successive pairs from successive frame intervals;

means for dividing one of the maximum values of each of said pairs by the other maximum value of the pair and deriving a plurality of ratios from said pairs; and

means for detecting a minimum value from said ratios as corresponding to said variation.

48. A data compression system as claimed in claim 47, wherein the optimum block length determination means further comprises:

means for detecting those of said squared sums from each frame interval which correspond to a minimum block length;

means for dividing each of the detected squared sums with the detected squared sum of an adjacent occurrence to produce a plurality of ratios from each frame interval; and

means for detecting one of said ratios as corresponding to said variation if said ratio exceeds a prescribed value.

49. A data compression system as claimed in claim 44, further comprising a normalizer for deriving respective variances of said blocks, and scaling said blocks according to the respective variances, a second memory for storing said variances therein, wherein said optimum block length determination means selects those variances corresponding to said optimum block length from said second memory, and wherein said multiplexer means multiplexes the selected transform coefficients with a signal representative of the selected variances.

50. A data compression system as claimed in claim 44, further comprising means for determining a step size from the transform coefficients derived from said selected blocks and means for quantizing said transform coefficients according to said step size and causing said multiplexer means to multiplex a signal representative of said step size with the quantized transform coefficients.

51. A data compression system as claimed in claim 50, wherein said step size determination means comprises means for squaring said transform coefficients derived from said selected blocks and taking an average value of a group of the squared transform coefficients of neighboring occurrences as a representative value of said group and causing said multiplexer means to multiplex the transform coefficients derived from said selected blocks with a signal representative of said average value as said step size representative signal, means for providing interpolations between successive ones of said squared transform coefficients, deriving said step size from the interpolated squared transform coefficients and applying a signal representative of the derived step size to said quantizer means.

52. A data compression system as claimed in claim 44, wherein said buffer control means organizes 2.sup.a+b N samples read out of said buffer into (m+1) groups of 2.sup.a blocks of 2.sup.b N samples each, where a+b=m, and a is a variable in a range from m to 0 and b is a variable in a range from 0 to m, and where m is equal to or greater than 2, and N is an integer, each of said groups containing an equal number of samples of same arrivals.

53. A data compression system as claimed in claim 44, further comprising means for generating a signal specifying a predetermined block length and means for selecting those of said transform coefficients which correspond to said predetermined block length from said memory and causing said multiplexer means to multiplex the transform coefficients selected as corresponding to said predetermined block length with a signal representative of said predetermined block length instead of with the signal representative of the optimum block length.
 Description Submit all comments and votes
 


RELATED APPLICATION

The present invention is related to U.S. Pat. No. 5,166,686, filed Jun. 29, 1990 and assigned to the same assignee as this application.

BACKGROUND OF THE INVENTION

The present invention relates to a bandwidth compression techniques for digital audio signals using an adaptive transform coding and decoding method.

Adaptive differential pulse-code modulation (ADPCM) technique is known as a practical way of bandwidth compression and has been extensively used in digital communications. Another bandwidth compression technique that is attractive for audio frequency signals is adaptive transform coding scheme (ATC). As described in "Adaptive Transform coding of Speech Signals", IEEE Transactions on ASSP, Vol. 25, No. 4, 1977, pages 299-309, and "Approaches to Adaptive Transform Speech Coding at Low Bit Rates", IEEE Transactions on ASSP, Vol. 27, No. 1, 1979, pages 89-95, input discrete speech samples are buffered to form a block of N speech samples each. The N samples of each block are linearly transformed into a group of transform coefficients based on a linear transform. These transform coefficients are then adaptively quantized independently and transmitted. The adaptation is controlled by a short-term basis spectrum that is derived from the transform coefficients prior to quantization and transmission, and that is transmitted as a supplementary signal to the receiver. Specifically, the short-term basis spectrum is obtained by a bit assignment process in which quantization bits are assigned corresponding to the amplitude of the transform coefficients. At the receiver, the quantized signals are adaptively dequantized in response to the supplementary signal, and an inverse transform is taken to obtain the corresponding block of reconstructed speech samples.

With an increasing value of block length N, the linear transform coding and decoding processes have increasing power of resolution with a resultant decrease in errors, and the amount of information contained in the supplementary signal decreases with the increase in block length N. This implies that for a given transmission rate a greater amount of data can be transmitted, and hence, it can lead to a quality improvement of coded signals. This is true for speech samples which can be considered as being steady for an interval corresponding to block length N. However, with samples having a rapidly changing characteristic in amplitude, phase and/or frequency, a larger value of block length does not necessarily result in small errors. Thus, it is desirable that block length N be as large as possible for signals of more stable nature to increase resolution, but as small as possible for less stable signals keep track of their changing characteristics. These conflicting requirements cannot be satisfied simultaneously by the prior art uniform block length approach.

SUMMARY OF THE INVENTION

It is therefore an object of the present invention to provide variable length block, adaptive transform coding of digital samples representing an underlying audio-frequency analog waveform such as speech and music signals.

According to a first aspect of the present invention, subblocks of input digital samples representing an audio-frequency signal are stored in a buffer at predetermined intervals and the stored samples are segmented into a plurality of blocks each having an integral multiple of length of the subblock. Each of the blocks is encoded into corresponding transform coefficients, which are stored into a memory. Each of the stored transform coefficients is squared and those of the squared transform coefficients which correspond to high-frequency components of the input digital samples are summed to produce squared sums. A minimum value is detected from the squared sums as corresponding to an optimum block length. Those of the transform coefficients which correspond to the optimum block length are selected from the memory and multiplexed with a block length signal representative of the optimum block length.

According to a second aspect, interblock differences are detected between successive transform coefficients of equal block length and squared. Those of the squared interblock differences which correspond to equal block length are summed to produce a set of squared sums for each block length. Representative values of the squared sums are detected from successive ones of the sets and a variation is detected between the representative values to identify a block length which corresponds to the detected variation as an optimum block length.

According to a third aspect, subblocks of input digital samples representing an audio-frequency signal are stored in a buffer at frame intervals, segmented into blocks each having an integral multiple of the length of the subblock. These blocks are stored into a memory and interblock differences are detected between successive blocks of equal length. Each interblock difference is squared and those of the squared interblock differences which correspond to equal block length are summed, producing sets of squared sums for each frame interval. Representative values of the squared sums are detected from successive ones of the sets and a variation is detected between the representative values to identify a block length which corresponds to the detected variation as an optimum block length. Those of the blocks having the optimum block length are selected from the memory and encoded into corresponding transform coefficients, which are multiplexed with a block length signal representative of the optimum block length.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention will be described in further detail with reference to the accompanying drawings, in which:

FIG. 1 shows in block form a digital communications system incorporating a variable block length, adaptive linear transform coding/decoding scheme according to a first embodiment of the present invention;

FIG. 2 shows in block form details of the buffer controller of FIG. 1;

FIGS. 3A and 3B show a sequence of input and output digital samples;

FIG. 4 shows details of the normalizer of FIG. 1;

FIG. 5 shows details of the bit assignment circuit at the transmitter;

FIG. 6 shows details of the high-frequency power detector of FIG. 1;

FIG. 7 shows details of signals appearing in the detector of FIG. 6;

FIG. 8 shows details of the bit assignment circuit at the receiver of FIG. 1;

FIG. 9 shows details of the denormalizer at the receiver of FIG. 1;

FIG. 10 shows in block form a second embodiment of the present invention;

FIG. 11 shows in block form details of the interblock difference detector of FIG. 10;

FIG. 12 shows in block form details of the optimum block length detector of FIG. 10;

FIG. 13 shows in block form a modification of the optimum block length detector of FIG. 12; and

FIG. 14 shows in block form a third embodiment of the present invention.

DETAILED DESCRIPTION

Referring now to FIG. 1, there is shown a data compression system employing an adaptive linear transform coding and decoding method according to a first embodiment of the present invention for telecommunication or storage applications. In the illustrated embodiment, the system is shown as a communications system. At the transmit end of the communications system, an analog audio-frequency signal, either speech or music, is applied through an input terminal 1 to an A/D converter 2 in which it is sampled at the Nyquist rate and quantized into digital samples and fed to a buffer 3. In a manner as will be fully described, a buffer controller 10 is provided to continuously write input digital samples into buffer 3 and read stored samples at such intervals that digital samples are formed into a series of different block lengths which are an integral multiple of N samples, i.e. N, 2N, . . . 2.sup.l N, (where l=1,2. . . m). In the illustrated embodiment, each successive group of 4N input samples is sequentially divided into blocks of N, 2N and 4N output samples.

Details of buffer controller 10 are illustrated in FIG. 2. A successive group of 4N input samples each is stored into buffer 3 which is implemented by a dual-port random access memory. Buffer controller 10 includes a write address generator 30 and a read address generator 31 for generating write and read addresses for RAM 3. A subtracter 32 is connected to the outputs of address generators 30 and 31 to detect the amount of samples stored in RAM 3 by making a comparison between the write and read addresses. Subtracter 32 generates four output signals on respective leads N, 2N, 3N and 4N when the stored sample count reaches N, 2N, 3N and 4N, respectively. The outputs of subtracter 32 are fed to a controller 33 having output terminals designated N, 2N, 2N+.DELTA., 3N, 4N, 4n+.DELTA., and 4N+2.DELTA.. The output terminals N, 2N 3N and 4N of controller 33 are coupled together to a clock generator 36 which generates N clock pulses in burst form, and the output terminals 2N+.DELTA. and 4N+.DELTA. are coupled through an OR gate 35 to a clock generator 37 which generates 2N clock pulses. The output terminal 4N+2.DELTA. of controller 33 is connected to a clock generator 38 which generates 4N clock pulses. The outputs of clock generators 36, 37 and 38 are coupled to the count input of the read address generator 31. The read address generator 31 is reset to zero count in response to a signal from the output terminal 2N+.DELTA. and 4N+2.DELTA. which are connected through an OR gate 34. Address generator 31 is further reset to a 2N count in response to a signal from the 4N+.DELTA. output terminal of controller 33. At periodic intervals, controller 33 supplies a clear pulse to write address generator 30 to discard all samples in RAM 3 to refill it with new input samples. This clear pulse is also applied to the read address generator 31 via OR gate 34.

The operation of buffer controller 10 will be understood with reference to FIGS. 3A and 3B. At Nt intervals, N input samples are periodically supplied from A/D converter 2 to RAM 3 as a unit called a "subblock" and stored samples are read out of RAM 3 as a unit called a variable-length block, or simply "block" which is an integral multiple of the length of subblock. At 4Nt, or "frame" intervals, a clear pulse is applied to both address generators to clear all samples stored in RAM 3. At time t.sub.0, a clear pulse is supplied to both address generators, and at time Nt, N input samples are stored as a first subblock n.sub.1 into RAM 3. Subtracter 32 supplies an output on lead N to controller 33 to cause it to apply an output to its output terminal N. Clock generator 36 is enabled by controller 33 to supply N clock pulses to the read address generator 31 to read the first subblock N.sub.1(1) from RAM 3 as a unit called "block", i.e., a first block N.sub.1(1) of N output samples (i.e., one subblock length).

At time 2Nt, input samples are stored as a second subblock n.sub.2 into RAM 3 and subtracter 32 generates an output signal on lead 2N. In response to this signal, controller 33 enables clock generator 36 through its output terminal 2N so that the read address generator 31 is incremented further by a 2N count value to read the stored second subblock n.sub.2 as a second block N.sub.1(2) of N output samples. Subsequently at time (2N+.DELTA.)t, controller 33 enables clock generator 37 through its 2N+.DELTA. output terminal and OR gate 35 to supply 2N clock pulses to the read address generator 31 in order to read first subblock n.sub.1 and second subblock n.sub.2 simultaneously as a first block N.sub.2(1) of two-subblock length.

At time 3Nt, a third subblock n.sub.3 is stored in RAM 3 and subtracter 32 produces an output signal on lead 3N. Controller 33 applies a signal to the 3N output terminal to enable clock generator 36. The read address generator 31 is thus incremented by N count from the previous 2N count value and the third subblock N.sub.1(3) is read out of RAM 3 as a third block N.sub.1(3) of N output samples.

At time 4Nt, a fourth subblock N.sub.1(4) is stored in RAM 3 and subtracter 32 produces an output signal on lead 4N. Controller 33 applies a signal to the 4N output terminal to enable clock pulse generator 36. The read address generator 31 is thus incremented further by N count from the previous 3N count value and the fourth subblock n.sub.4 is read out of RAM 3 as a fourth block N.sub.1(4) of N output samples. In succession to this, controller 33 sequentially applies a signal to its 4N+.DELTA. output terminal to cause clock generator 37 to supply 2N clock pulses to the read address generator 31 as well as to its reset-to-2N input terminal. Thus, the address generator 31 is incremented by a 2N count from the previous 2N address count to read the third and fourth subblocks N.sub.1(3) and N.sub.1(4) as a second block N.sub.2 (2) of 2N output samples. Controller 33 then applies a signal to its 4N+2.DELTA. output terminal. This signal resets the address generator 31 to zero and causes clock generator 38 to increment the read address generator 31 by a 4N count from zero. As a result, the first through fourth subblocks n.sub.1, n.sub.2, n.sub.3 and n.sub.4 are read out of RAM 3 as a block N.sub.3 of four-subblock length.

Controller 33 then clears the write and read address generators to repeat the above process to successively store next four subblocks of input samples and read seven variable length blocks. It is seen from FIG. 3A that each sequence of seven blocks of different lengths contains an equal number of subblocks of successive arrivals, i.e., three subblocks of first arrivals, three subblocks of second arrivals, three subblocks of third arrivals and finally three subblocks of fourth arrivals. The stored samples are therefore divided into seven blocks of N, N, 2N, N, N, 2N and 4N output samples, and are cleared at frame intervals when a total of twelve output subblocks are derived from every four input subblocks. In other words, each 4N input sample sequence is converted to a first set of four blocks of single-subblock length each, a second set of two blocks of two-subblock length, and a third set, or a single block of four-subblock length as illustrated in FIG. 3B. Thus, at frame intervals, a series of sets of blocks of different block lengths N.sub.i (1.ltoreq.i<n, where n is the longest block length) appears at the output of buffer 3 and same subblocks repeatedly appear in each set.

The output of buffer 3 is applied to a normalizer