Help - Search - Members - Calendar
Full Version: The -fir factor
Hydrogenaudio Forums > Lossy Audio Compression > AAC > AAC - Tech
sh1leshk4
Sorry for the corny title... ^^;

I'm currently using Nero's AAC encoder to make some MP4 wrapped AACs.
First, I'm using the frontend (aacenc32) and using -quality high -profile LC at 64kbps (CBR).

Anyway, by default -fir is set to 128 taps (or 'switched on'), right?
It seems that whenever I use FIR filtering, some samples can't be decoded properly on my mobile phone (a K700i).
When I use -nofir, all the samples are played back perfectly on my K700i.
FYI, it only occurs on certain songs (I've found one apparently).
And when using the decoder plugin (for Winamp) from AudioCoding, the song's played back flawlessly. blink.gif
So, rather than 'missing', it was more like 'undecoded' samples on my K700i.
(I haven't tried Winamp's own MP4 decoder, and fb2k didn't seem to be bothered by the file too)
Btw, other songs that I encoded didn't seem to be affected whether -fir is enabled or not (when played back on my K700i, that is).

Is there any technical explanations for this aside from the 'your decoder is fux0red!' response? smile.gif
What could've made the decoder on my K700i didn't decode the few samples of the song?
(in case u missed it, I did use the LC profile)

I'll post a portion of the song that's "undecodable" later, when time permits.

I've tried encoding w/ the Nero suite too.
The 'advanced' options include enabling PNS for very low bitrates.
What constitutes 'very low bitrates'?
From which kbps to which kbps is the range of 'very low bitrates'?
Anyway, what does the PNS switch do?

Next, is there anyway to turn off FIR filtering when using the Nero suite to encode?
Using Batchenc w/ aacenc32 isn't a problem, but if it's possible it'd be great. smile.gif

Btw, w/ the aacenc32 frontend, what does the FIR filter actually do?
Does it have any effect on the resulting encodes whether it's turned on or off in terms of quality?

Sorry if I asked too much, and thx b4!
Defsac
A finite impulse response filter is any filter which has no feedback. You can't say what the filter does knowing only that it's a FIR filter, it's like asking the output of an engine only knowing that it's in a car.
Garf
The FIR filtering is not part of the encoder, it's something specific to this frontend. Does it happen when you encode with Nero?

PNS allows the encoder to replace noisy parts of the source by just a description "there is noise there and it is this strong".
sh1leshk4
QUOTE(Defsac)
You can't say what the filter does knowing only that it's a FIR filter, it's like asking the output of an engine only knowing that it's in a car.

I'm pretty much aware of that.
Like an engine on a car, I know it's used to make the car move (well, roughly like that).
So, what's a FIR filter doing on a frontend?

QUOTE(Garf)
The FIR filtering is not part of the encoder, it's something specific to this frontend.

I thought so too.

QUOTE(Garf)
Does it happen when you encode with Nero?

If u meant the undecodability of the few samples in the K700i, yes.
The K700i couldn't decode the very same (AFAIR; I'll check back later) samples (frames?) when it's encoded w/ aacenc32 (the frontend) w/ the defaults (-fir turned on) and when it's encoded via Nero Digital interface.
That's why I thought Nero is using a FIR filtering by default too.
(though I can be entirely mistaken and it actually caused by something else)

Using aacenc32.exe w/ -nofir fixes it though; I just want to know why did it behave that way.

QUOTE(Garf)
PNS allows the encoder to replace noisy parts of the source by just a description "there is noise there and it is this strong".

So, in a playback, when the decoder reaches that description, what'd we hear?
Garf
QUOTE
So, what's a FIR filter doing on a frontend?


I'm guessing it's lowpass filtering or something?

QUOTE
If u meant the undecodability of the few samples in the K700i, yes.
The K700i couldn't decode the very same (AFAIR; I'll check back later) samples (frames?) when it's encoded w/ aacenc32 (the frontend) w/ the defaults (-fir turned on) and when it's encoded via Nero Digital interface.


Can you convert it to an .AAC and try with Winamp (with it's own decoder, not with the audiocoding plugin)?

QUOTE
QUOTE(Garf)
PNS allows the encoder to replace noisy parts of the source by just a description "there is noise there and it is this strong".

So, in a playback, when the decoder reaches that description, what'd we hear?
*



If the encoder is doing it's job well, you won't hear anything out of the ordinary.
sh1leshk4
QUOTE(Garf)
I'm guessing it's lowpass filtering or something?

Dunno, since there's already a -lowpass switch on the frontend.
Reading the Readme.txt that's included in the .zip I got from Rarewares.org :

"added FIR pre-filtering of signal. Default active if lowpass filter present."

Doesn't really explain anything about its use though...still don't know what the FIR filter filters...
All I know for now is that if it's not explicitly told to stop using -nofir, it'd run whenever I encode at low bitrates since that's when lowpass filtering automatically kicks in.

QUOTE(Garf)
Can you convert it to an .AAC and try with Winamp (with it's own decoder, not with the audiocoding plugin)?

Have to reinstall Winamp first.
I overwrote the original one. rolleyes.gif

Yes, people, I do use fb2k too in case anyone's wondering. smile.gif

QUOTE(Garf)
If the encoder is doing it's job well, you won't hear anything out of the ordinary.

Sweet. biggrin.gif
dand

A few more words about PNS (Perceptual Noise Substitution):

Encoder finds a noisy band and instaed of coding one-by-one frequency in that band, it just calculates power of all freqs and sends it to decoder. Decoder than generates random components, but all must have the given power when sumed. The reason for this is: fine structure of the noise is not important for its perception, only power matters. Noise itself is random, so we don't really care if it's 3,7,1,2 or 4,1,5,3 as long as the sum is 13.

The main problem of PNS usage is how to recognize the noise bands...

PNS should not be used in bitrates higher than 40-50 kb/ch.

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.