Sunday, March 04, 2007

thoughts on bandwidth and coupling

While it's fresh on my mind, I want to get some ideas down in print regarding adaptive coupling and variable bandwidth.

First of all, I just added a completely reworked variable bandwidth algorithm. Basically, it works by doing exponent encoding at full bandwidth, then doing 1 bit allocation pass at q=240 (snroffset=0). The data from these 2 are used to estimate the bits required at each bandwidth setting. So a good guess can be made as to which bandwidth code can be chosen to give quality near 240.

I want to extend this idea to adaptive coupling. Instead of continuous adjustment like in variable bandwidth mode, I want to have a few bandwidth threshold points. The first would be a high-frequency threshold, probably around 16kHz. Above those frequencies, it would work like the variable bandwidth mode. If encoding at the threshold value at q=240 will fit in the frame, the bandwidth would be increased incrementally until it does not fit, and no coupling would be used. Below that threshold, a light coupling strategy would be tried. If that still doesn't give adequate quality, then heavy coupling strategy would be tried. If still too low, then no coupling would be used and normal variable bandwidth mode would be used instead.

Of course, I may change all this later, but I wanted to do some rambling while I still have the idea pretty well-formed in my head.