Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: The -fir factor (Read 5475 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

The -fir factor

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.
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?
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.

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!

 

The -fir factor

Reply #1
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.

The -fir factor

Reply #2
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".

The -fir factor

Reply #3
Quote
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
The FIR filtering is not part of the encoder, it's something specific to this frontend.

I thought so too.

Quote
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
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?

The -fir factor

Reply #4
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
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?
[a href="index.php?act=findpost&pid=304523"][{POST_SNAPBACK}][/a]


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

The -fir factor

Reply #5
Quote
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
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.

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

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

Sweet.

The -fir factor

Reply #6
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.