IP Library Granted Patent US 10,984,808
Granted Patent B2
US 10,984,808 · App. 16/506,545 · Granted Apr 20, 2021

Method for multi-stage compression in sub-band processing

Inventor: Mohammad Aamir Husain (Surrey, CA)
Assignee: BlackBerry Limited
G10L19/0204G10L25/15G10L25/18
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,984,808
App. No.
16/506,545
Granted
Apr 20, 2021
Kind
B2
Abstract

A sub-band processing system for reducing computational complexity and memory requirements is disclosed. The sub-band processing system includes: a first logic that partitions and stores a frequency spectrum of bins of real and imaginary data into a smaller number of sub-bands; a second logic that executes a first lossy compression for a first set of the sub-bands, wherein the first set includes those sub-bands having indices that are greater than or equal to a first index; and a third logic that executes, subsequent to a frequency spectrum processing of the lossy compressed data rendered by the second logic, a second lossy compression for a second set of the sub-bands, wherein the second set includes those sub-bands having indices that are less than the first index and greater than or equal to a second index.

Claims (39)

1. A compression system comprising:

a processor; and

a non-transitory, computer readable medium storing instructions executable by the processor, the instructions comprising:

first computer program code that partitions and stores a frequency spectrum of bins of real and imaginary data into a smaller number of sub-bands;

second computer program code that executes a first lossy compression for a first set of the sub-bands, the first lossy compression compressing a designated magnitude of at least one bin in each sub-band of the first set that is representative of that sub-band and a designated phase of at least one bin in each sub-band of the first set that is representative of that sub-band, wherein the first set includes those sub-bands having indices that are greater than or equal to a first index; and

third computer program code that executes, subsequent to a frequency spectrum processing of the lossy compressed data rendered by the second computer program code, a second lossy compression for a second set of the sub-bands, the second lossy compression compressing a designated magnitude of at least one bin in each sub-band of the second set that is representative of that sub-band and a designated phase of at least one bin in each sub-band of the second set that is representative of that sub-band, wherein the second set includes those sub-bands having indices that are less than the first index and greater than or equal to a second index.

2. The compression system of claim 1 , wherein the first index is determined based on a total number of bins in the frequency spectrum and a compression ratio of the first lossy compression.

3. The compression system of claim 1 , further comprising a fourth computer program code that renders a lossless compression by decompressing lossy compressed data rendered by the third computer program code and providing magnitude data and phase data not maintained by the first and second lossy compressions based on original spectral relationships contained within the frequency spectrum.

4. The compression system of claim 3 , wherein the frequency spectrum processing is performed by an acoustic echo canceller after the first lossy compression and before the fourth computer program code provides the magnitude and phase data.

5. The compression system of claim 3 , wherein the frequency spectrum processing is performed by a noise canceller after the first lossy compression and before the fourth computer program code provides the magnitude and phase data.

6. The compression system of claim 3 , wherein the frequency spectrum processing is performed by a beam former after the first lossy compression and before the fourth computer program code provides the magnitude and phase data.

7. The compression system of claim 3 , wherein the fourth computer program code comprises:

computer program code that rotates each designated magnitude in each sub-band of the first and second sets to an original phase position; and

computer program code that restores the bins that comprise the sub-bands rendered by the first computer program code by reconstructing and substantially maintaining relative magnitudes and relative phases of the frequency spectrum partitioned by the first computer program code.

8. The compression system of claim 1 , wherein the real and imaginary data comprise magnitude and phase spectra.

9. The compression system of claim 1 , wherein the second computer program code processes a plurality of frames of data and designates a first bin in each sub-band as representative phase and magnitude for each frame of data the compression system processes.

10. The compression system of claim 1 , wherein the third computer program code processes a plurality of frames of data and designates a common bin in each sub-band as representative phase and magnitude for each frame of data the compression system processes.

11. The compression system of claim 10 , wherein respective designated magnitudes comprise a designated peak magnitude.

12. The compression system of claim 1 , where each of the sub-bands of the first and second sets comprises a single bin and a plurality of successive bins of real and imaginary data.

13. The compression system of claim 1 , further comprising a multiplier device that multiplies the frequency spectrum by a window function before the frequency spectrum is partitioned.

14. The compression system of claim 1 , further comprising a time-to-frequency transform device that decomposes a time-based signal into the frequency spectrum before the frequency spectrum is partitioned.

15. The compression system of claim 1 , further comprising a Discrete Fourier Transform device that decomposes a time-based signal into the frequency spectrum before the frequency spectrum is partitioned.

16. The compression system of claim 1 , further comprising a Fast Fourier Transform device that decomposes a time-based signal into the frequency spectrum before the frequency spectrum is partitioned.

17. The compression system of claim 1 , wherein the first computer program code partitions the frequency spectrum of bins of real and imaginary data into sub-bands that match a frequency sensitivity of a human auditory system.

18. A non-transitory, computer readable medium storing instructions which, when executed by a processor, configure the processor to:

partition and store a frequency spectrum of bins of real and imaginary data into a smaller number of sub-bands;

execute a first lossy compression for a first set of the sub-bands, the first lossy compression compressing a designated magnitude of at least one bin in each sub-band of the first set that is representative of that sub-band and a designated phase of at least one bin in each sub-band of the first set that is representative of that sub-band, wherein the first set includes those sub-bands having indices that are greater than or equal to a first index; and

execute, subsequent to a frequency spectrum processing of the lossy compressed data rendered by the first lossy compression, a second lossy compression for a second set of the sub-bands, the second lossy compression compressing a designated magnitude of at least one bin in each sub-band of the second set that is representative of that sub-band and a designated phase of at least one bin in each sub-band of the second set that is representative of that sub-band, wherein the second set includes those sub-bands having indices that are less than the first index and greater than or equal to a second index.

19. An echo cancellation system for processing a plurality of frames of data, the system comprising:

a processor; and

a non-transitory, computer readable medium storing instructions that, when executed by the processor, configure the processor to:

partition and store a frequency spectrum of bins of real and imaginary data into a smaller number of sub-bands;

execute a first lossy compression for a first set of the sub-bands, the first lossy compression compressing a designated magnitude of at least one bin in each sub-band of the first set that is representative of that sub-band and a designated phase of at least one bin in each sub-band of the first set that is representative of that sub-band, wherein the first set includes those sub-bands having indices that are greater than or equal to a first index;

execute, subsequent to a frequency spectrum processing of the lossy compressed data rendered by the first lossy compression, a second lossy compression for a second set of the sub-bands, the second lossy compression compressing a designated magnitude of at least one bin in each sub-band of the second set that is representative of that sub-band and a designated phase of at least one bin in each sub-band of the second set that is representative of that sub-band, wherein the second set includes those sub-bands having indices that are less than the first index and greater than or equal to a second index; and

perform processing of the plurality of frames of data based on sub-sampling of parameters for select subsets of sub-bands.

20. The echo cancellation system of claim 19 , wherein the instructions, when executed by the processor, further configure the processor to determine a first number of sub-bands for a module of the echo cancellation system to process for a first set of the plurality of frames and a second number of sub-bands for the module to process for a second set of the plurality of frames, such that a sub-band count alternates between the first number and the second number during processing of each pair of sequential frames.

21. The echo cancellation system of claim 19 , wherein the instructions, when executed by the processor, further configure the processor to, for each sub-band of the first and second sets of sub-bands:

determine a bin within the sub-band having a maximum magnitude; and

index the bin within the sub-band having the maximum magnitude.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 6, 2020
From: 2236008 ONTARIO INC.
To: BLACKBERRY LIMITED
Reel/Frame 052583/0489 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 29, 2019
From: QNX SOFTWARE SYSTEMS LIMITED
To: 2236008 ONTARIO INC.
Reel/Frame 049887/0233 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 24, 2019
From: HUSAIN, MOHAMMAD AAMIR
To: QNX SOFTWARE SYSTEMS LIMITED
Reel/Frame 049849/0777 →
Continuity (1)
Related Publication 20210012785A1 · Jan 14, 2021