IP Library Granted Patent US 10,002,618
Granted Patent B2
US 10,002,618 · App. 14/963,228 · Granted Jun 19, 2018

Sample rate converter with automatic anti-aliasing filter

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,002,618
App. No.
14/963,228
Granted
Jun 19, 2018
Kind
B2
Abstract

The subject disclosure is directed towards dynamically computing anti-aliasing filter coefficients for sample rate conversion in digital audio. In one aspect, for each input-to-output sampling rate ratio (pitch) obtained, anti-aliasing filter coefficients are interpolated based upon the pitch (e.g., using the fractional part of the ratio) from two filters (coefficient sets) selected based upon the pitch (e.g., using the integer part of the ratio). The interpolation provides for fine-grained cutoff frequencies, and by re-computation for each pitch, smooth anti-aliasing with dynamically changing ratios.

Claims (58)

1. A method comprising:

obtaining a pitch corresponding to an input audio sampling rate of an input sample and an output audio rate for a sample rate converted sample;

selecting a filter comprising a set of coefficient values based upon the pitch;

performing one subphase interpolation between a subphase identified from a phase and a subphase adjacent thereto to obtain one subphase interpolation result;

performing another subphase interpolation between a second subphase identified from the phase and a second subphase adjacent thereto to obtain another subphase interpolation result; and

performing an interpolation between the one subphase interpolation result and the other subphase interpolation result to obtain a resultant set of pitch-based coefficient values.

2. The method of claim 1 , further comprising:

selecting another filter comprising another set of coefficient values based upon the pitch; and

obtaining a resultant set of pitch-based coefficient values by interpolating between the set of coefficient values corresponding to the filter and the other set of coefficient values corresponding to the other filter.

3. The method of claim 2 , further comprising filtering data corresponding to the input sample to provide for anti-aliasing of the sampling rate converted sample for output using the resultant set of pitch-based coefficient values.

4. The method of claim 3 , wherein filtering the sample rate converted sample for output using the resultant set of pitch-based coefficient values comprises:

providing the data corresponding to the input sample to a plurality of parallel filtering paths, respective ones of the plurality of parallel filtering paths corresponding to a subset of filter taps;

filtering using the resultant set of pitch-based coefficient values for the respective ones of the plurality of filtering paths; and

combining the filtering results of the parallel filtering paths for the output.

5. The method of claim 3 , further comprising:

upsampling the sample before filtering the data corresponding to the input sample, the filtering the data corresponding to the input sample further comprising filtering into a filtered upsampled sample comprising the data corresponding to the input sample; and

downsampling the filtered upsampled sample before the output.

6. The method of claim 1 , wherein selecting the filter based upon the pitch comprises using part of the pitch represented by one or more most significant bits to select the filter from among a plurality of available filters.

7. The method of claim 1 , wherein the input sample corresponds to interleaved stereo channel data, and wherein the method further comprises de-interleaving the interleaved stereo channel data into the input sample.

8. A system comprising:

a memory; and

a processor programmed to:

obtain a pitch corresponding to an input audio sampling rate of an input sample and an output audio rate for a sample rate converted sample;

select a filter comprising a set of coefficient values based upon the pitch;

perform one subphase interpolation between a subphase identified from a phase and a subphase adjacent thereto to obtain one subphase interpolation result;

perform another subphase interpolation between a second subphase identified from the phase and a second subphase adjacent thereto to obtain another subphase interpolation result; and

perform an interpolation between the one subphase interpolation result and the other subphase interpolation result to obtain a resultant set of pitch-based coefficient values.

9. The system of claim 8 , further comprising:

selecting another filter comprising another set of coefficient values based upon the pitch; and

obtaining a resultant set of pitch-based coefficient values by interpolating between the set of coefficient values corresponding to the filter and the other set of coefficient values corresponding to the other filter.

10. The system of claim 9 , wherein the processor is further programmed to filter data corresponding to the input sample to provide for anti-aliasing of the sampling rate converted sample for output using the resultant set of pitch-based coefficient values.

11. The system of claim 10 , wherein filtering the sample rate converted sample for output using the resultant set of pitch-based coefficient values comprises:

providing the data corresponding to the input sample to a plurality of parallel filtering paths, respective ones of the plurality of parallel filtering paths corresponding to a subset of filter taps;

filtering using the resultant set of pitch-based coefficient values for the respective ones of the plurality of filtering paths; and

combining the filtering results of the parallel filtering paths for the output.

12. The system of claim 10 , wherein the processor is further programmed to:

upsample the sample before filtering the data corresponding to the input sample, the filtering the data corresponding to the input sample further comprising filtering into a filtered upsampled sample comprising the data corresponding to the input sample; and

downsample the filtered upsampled sample before the output.

13. The system of claim 8 , wherein selecting the filter based upon the pitch comprises using part of the pitch represented by one or more most significant bits to select the filter from among a plurality of available filters.

14. The system of claim 8 , wherein the input sample corresponds to interleaved stereo channel data, and wherein the method further comprises de-interleaving the interleaved stereo channel data into the input sample.

15. One or more computer-readable hardware storage devices having computer-executable instructions that cause the one or more processor to perform operations comprising:

obtaining a pitch corresponding to an input audio sampling rate of an input sample and an output audio rate for a sample rate converted sample;

selecting a filter comprising a set of coefficient values based upon the pitch;

performing one subphase interpolation between a subphase identified from a phase and a subphase adjacent thereto to obtain one subphase interpolation result;

performing another subphase interpolation between a second subphase identified from the phase and a second subphase adjacent thereto to obtain another subphase interpolation result; and

performing an interpolation between the one subphase interpolation result and the other subphase interpolation result to obtain a resultant set of pitch-based coefficient values.

16. The one or more computer-readable hardware storage devices of claim 15 having further computer-executable instructions that cause the one or more processor to perform further operations comprising:

selecting another filter comprising another set of coefficient values based upon the pitch; and

obtaining a resultant set of pitch-based coefficient values by interpolating between the set of coefficient values corresponding to the filter and the other set of coefficient values corresponding to the other filter.

17. The one or more computer-readable hardware storage devices of claim 16 having further computer-executable instructions that cause the one or more processor to perform further operations comprising filtering data corresponding to the input sample to provide for anti-aliasing of the sampling rate converted sample for output using the resultant set of pitch-based coefficient values.

18. The one or more computer-readable hardware storage devices of claim 17 , wherein filtering the sample rate converted sample for output using the resultant set of pitch-based coefficient values comprises:

providing the data corresponding to the input sample to a plurality of parallel filtering paths, respective ones of the plurality of parallel filtering paths corresponding to a subset of filter taps;

filtering using the resultant set of pitch-based coefficient values for the respective ones of the plurality of filtering paths; and

combining the filtering results of the parallel filtering paths for the output.

19. The one or more computer-readable hardware storage devices of claim 17 having further computer-executable instructions that cause the one or more processor to perform further operations comprising

upsampling the sample before filtering the data corresponding to the input sample, the filtering the data corresponding to the input sample further comprising filtering into a filtered upsampled sample comprising the data corresponding to the input sample; and

downsampling the filtered upsampled sample before the output.

20. The one or more computer-readable hardware storage devices of claim 15 , wherein selecting the filter based upon the pitch comprises using part of the pitch represented by one or more most significant bits to select the filter from among a plurality of available filters.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 27, 2016
From: SAVELL, THOMAS CRAIG
To: MICROSOFT CORPORATION
Reel/Frame 038389/0014 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 27, 2016
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 038389/0017 →