Help - Search - Members - Calendar
Full Version: TNS vs. short blocks
Hydrogenaudio Forums > Lossy Audio Compression > AAC > AAC - Tech
dand
Is there a known way of somehow balancing TNS usage with the block switch in AAC? Where should TNS be used, where short blocks and where both? Sampling rate dependable? Bitrate dependable?

Daniel
wkwai
QUOTE(dand @ Oct 27 2004, 12:25 AM)
Is there a known way of somehow balancing TNS usage with the block switch in AAC? Where should TNS be used, where short blocks and where both? Sampling rate dependable? Bitrate dependable?

Daniel
*



Actually, I am still in the midst of figuring out the TNS tool.. for example in the 3GPP He- aac source code, the mdct spectrals are pre- process first before the Levinson Durbin routine????.. blink.gif

Then the autocorrelation function is weighted by a gaussian distribution which parameters can effect the stability of the All Poles filter at the decoder significantly.. I am still in the midst of trying to understand this implementation..

Then I don't understand why when the Prediction gains of L & R channels are almost identical, and TNS enabled, the reflection coefficients of L channel is used in R channel blink.gif ?? Perhaps something to do with MS stereo ?? blink.gif

Actually TNS should always be used if whenever there is a prediction gain.. For transients, there is a high level of correlation between adjacent spectral components and thus highly predictable.. The prediction gain in freq domain is the equalavent to "SFM" time domain value which indicates "spiky" time domain signals..

No.. TNS usage is not related to block switch.. but somehow TNS can be artifically activated even when there is no transient.. something I have yet to study...

There is a theory that states that transients can actually be modelled as a summation of many closely spaced tones.. Perhaps that is why sometimes TNS is falsely activated ???



wkwai
dand
QUOTE
Actually, I am still in the midst of figuring out the TNS tool.. for example in the 3GPP He- aac source code, the mdct spectrals are pre- process first before the Levinson Durbin routine????.. 

Then the autocorrelation function is weighted by a gaussian distribution which parameters can effect the stability of the All Poles filter at the decoder significantly.. I am still in the midst of trying to understand this implementation..

Then I don't understand why when the Prediction gains of L & R channels are almost identical, and TNS enabled, the reflection coefficients of L channel is used in R channel  ?? Perhaps something to do with MS stereo ?? 

Your questions related to 3gpp source direct to Andreas Ehret (ehrATcodingtechnologiesDOTcom). However, don't expect too much...

QUOTE
No.. TNS usage is not related to block switch..

TNS and block switch both aim to supress the pre-echo - they must be related. If short block kills pre-echo in a frame, why would we use TNS in the same block?

As I see it, block switch is not reliable for low sampling rates since 128 samples short block length becomes too long in the time domain.

QUOTE
Actually TNS should always be used if whenever there is a prediction gain.. For transients, there is a high level of correlation between adjacent spectral components and thus highly predictable.. The prediction gain in freq domain is the equalavent to "SFM" time domain value which indicates "spiky" time domain signals..

Take a look at the paper "The efficient temporal noise shaping method" from NCTU team. They suggest TNS decision can be based not only on prediction gain but also on perceptual entropy (used for block switch).

Daniel
wkwai
QUOTE(dand @ Oct 28 2004, 06:18 AM)
TNS and block switch both aim to supress the pre-echo - they must be related. If short block kills pre-echo in a frame, why would we use TNS in the same block? 

As I see it, block switch is not reliable for low sampling rates since 128 samples short block length becomes too long in the time domain.

Take a look at the paper "The efficient temporal noise shaping method" from NCTU team. They suggest TNS decision can be based not only on prediction gain but also on perceptual entropy (used for block switch).

*



It is NOT true that pre-echo doesn't exists in short block ! It is just that the pre-echo duration has been shortened by the shorter block size.. As a result, in order
to further eliminate Pre-echo withing the short blocks, TNS or gain control can be used..

Yes, at very low sampling rate, TNS becomes more important than block switching..

This PE based switching method will just give back the block switching conditions! Usually, when transients occurred, there is a sudden change in band energy.. either increase or decrease.. which gives a sudden change in measured PE..
but we all know how unrealiable PE switching can be.. It depends a lot on the distance between adjacent attacks.. If they are too close, PE switching will fail..

Anyway, I am looking into some very serious limitation of the TNS tools.. It seemed to me that there is a limit to the number of attacks it can modelled.. For example, for a 12 th order TNS filter, there are only 12 poles in the decoder All Poles filter and thus can compensate at most 12 time domain attacks / impulses..

Then there is this uncancelled aliasing artifacts of the Time Domain Cancellation filter.. in which the 2 overlapping halves of the 2 adjacent decoded frames be multiplied by the SAME gain function which TNS didn't provide.. As a result, the aliasing is not completely cancel out.. in fact it might even be amplified !!
Such problem doesn't exists with the SSR Gain Control.. in which the same gain function is applied to the 2 overlapping halves..

wkwai
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2008 Invision Power Services, Inc.