IPB

Welcome Guest ( Log In | Register )

The MP3 Polyphase Filter Bank, About the filter, and a possible GPU speedup
JacobG
post Feb 4 2012, 14:31
Post #1





Group: Members
Posts: 2
Joined: 4-February 12
Member No.: 96926



Hello!

For a completely different application, I designed a 32-sub band filter bank in matlab,
And implemented it in CUDA for a GPU.
It currently uses 64 filters, a single 64 point FFT, and the decimation\interpolation is by 32.
But this isn't really important since the CUDA implementation can easily be changed.

Since I read that the MP3 filter bank also divides the signals into 32 sub-bands,
I was wondering if my GPU filterbank can be used for MP3 decoding.

My questions are:
1. Is the total number of taps in the MP3 filter 512, or is it 512 taps in the filter in every branch (512*32 total)?
2. How good is the isolation between the different sub-bands? Do they overlap (One input frequency may have a response in more than one band)? Are "holes", which by I mean dead areas between the sub-bands, allowed?
3. Is this filtering considered an expensive operation in MP3 decoding? What are the time constants it operates in for lets say 512 samples-
mili seconds? micro seconds?
4. Does the format use a specific filter for the decoding? Is there freedom to implement the filter bank with a different structure?

Thanks for reading,
Jacob
Go to the top of the page
+Quote Post
 
Start new topic
Replies
saratoga
post Feb 4 2012, 21:01
Post #2





Group: Members
Posts: 4718
Joined: 2-September 02
Member No.: 3264



The filterbank (including the DFT) is the slowest part of the decode process, using roughly half the total time. However, for decoding at least, the filterbank only uses 10-20 MHz (or perhaps lower with SIMD), so I'm not sure CUDA makes sense.

If you're interested, I've been working little by little on improving filterbank performance for various embedded devices, where performance can make quite a difference due to battery limitations.
Go to the top of the page
+Quote Post
JacobG
post Feb 4 2012, 23:09
Post #3





Group: Members
Posts: 2
Joined: 4-February 12
Member No.: 96926



QUOTE (saratoga @ Feb 4 2012, 22:01) *
The filterbank (including the DFT) is the slowest part of the decode process, using roughly half the total time. However, for decoding at least, the filterbank only uses 10-20 MHz (or perhaps lower with SIMD), so I'm not sure CUDA makes sense.

If you're interested, I've been working little by little on improving filterbank performance for various embedded devices, where performance can make quite a difference due to battery limitations.


Hi,
If I understand right, you mean that there isn't much of a gain in speeding up the filter bank, since it operates in a slow rate anyway?

In your work in improving the filterbank performance, are you modifying the design itself (changing the prototype filter, structure, etc.),
or are you making the filter bank code smarter?
I am curious to know weather there is a point in experimenting MP3 decoding with a different filter-bank. For example, maybe a different prototype filter can give better sound quality?
Go to the top of the page
+Quote Post
saratoga
post Feb 4 2012, 23:33
Post #4





Group: Members
Posts: 4718
Joined: 2-September 02
Member No.: 3264



QUOTE (JacobG @ Feb 4 2012, 17:09) *
If I understand right, you mean that there isn't much of a gain in speeding up the filter bank, since it operates in a slow rate anyway?


Speeding up the filterbank is generally useful, but I don't see much point in using a GPU. It happens fast enough that the CPU is sufficient. Not sure the overhead and synchronization with another processor is worthwhile.

QUOTE (JacobG @ Feb 4 2012, 17:09) *
In your work in improving the filterbank performance, are you modifying the design itself (changing the prototype filter, structure, etc.),
or are you making the filter bank code smarter?


Just better implementations for various CPUs. We've come up with different variations for different CPUs:

http://git.rockbox.org/?p=rockbox.git;a=bl...c920f3b;hb=HEAD
http://git.rockbox.org/?p=rockbox.git;a=bl...7d540b9;hb=HEAD

Haven't updated it much, but a work in progress ARMv5 version:

http://www.rockbox.org/tracker/task/11759

QUOTE (JacobG @ Feb 4 2012, 17:09) *
I am curious to know weather there is a point in experimenting MP3 decoding with a different filter-bank. For example, maybe a different prototype filter can give better sound quality?


You can cheat a little to improve speed at the expense of accuracy, but usually its not a good idea.
Go to the top of the page
+Quote Post

Posts in this topic


Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 



RSS Lo-Fi Version Time is now: 19th April 2014 - 04:11