Help - Search - Members - Calendar
Full Version: Impulse Trigger Profile Question
Hydrogenaudio Forums > Lossy Audio Compression > Ogg Vorbis > Ogg Vorbis - General
Oggie-Ben-Doggie
Hi,

I have a question concerning the impulse trigger profile used when encoding OGG files. According to the default profile table listed in the bottom of the 'Recommended Ogg Vorbis' wiki page, a --quality value of '6' selects the '2.7' profile and a --quality value of 7 selects a '3' profile. If I select a --quality value of '6.5', does the '2.7' profile get used or is there some sort of hidden graduated scale like a '2.85' profile gets selected? I looked around for an answer for this in several forums and FAQs but couldn't find one. Any help is appreciated!
HotshotGG
QUOTE
I have a question concerning the impulse trigger profile used when encoding OGG files. According to the default profile table listed in the bottom of the 'Recommended Ogg Vorbis' wiki page, a --quality value of '6' selects the '2.7' profile and a --quality value of 7 selects a '3' profile. If I select a --quality value of '6.5', does the '2.7' profile get used or is there some sort of hidden graduated scale like a '2.85' profile gets selected? I looked around for an answer for this in several forums and FAQs but couldn't find one. Any help is appreciated!


Yes you probably won't find it anywhere else. I cowrote that wiki page. You really shouldn't touch the impulse trigger profile. It deals heavily with bitrate allocation and will alter the file size. Is there any particular reason why you need to use it? if anything you should just stick to the impulse_noisetune switch instead. That actually can make a difference in quality on samples as it retunes the ATH curves and reduces pre-echo with the most problamatic of samples. wink.gif

Explained in thorough: the impulse_trigger_profile switches back and forth between short and long blocks. Vorbis due to it's nature operates strictly in the frequency domain, therefore it has to use a quite sophisticated block switching algorithm on samples that are transient in nature. The switch will allocate more bits to short blocks to combat the problem. The default ones are the best ones. Feel free, but only for testing purposes really.
Oggie-Ben-Doggie
QUOTE (HotshotGG @ Dec 24 2008, 13:21) *
QUOTE
I have a question concerning the impulse trigger profile used when encoding OGG files. According to the default profile table listed in the bottom of the 'Recommended Ogg Vorbis' wiki page, a --quality value of '6' selects the '2.7' profile and a --quality value of 7 selects a '3' profile. If I select a --quality value of '6.5', does the '2.7' profile get used or is there some sort of hidden graduated scale like a '2.85' profile gets selected? I looked around for an answer for this in several forums and FAQs but couldn't find one. Any help is appreciated!


Yes you probably won't find it anywhere else. I cowrote that wiki page. You really shouldn't touch the impulse trigger profile. It deals heavily with bitrate allocation and will alter the file size. Is there any particular reason why you need to use it? if anything you should just stick to the impulse_noisetune switch instead. That actually can make a difference in quality on samples as it retunes the ATH curves and reduces pre-echo with the most problamatic of samples. wink.gif

Explained in thorough: the impulse_trigger_profile switches back and forth between short and long blocks. Vorbis due to it's nature operates strictly in the frequency domain, therefore it has to use a quite sophisticated block switching algorithm on samples that are transient in nature. The switch will allocate more bits to short blocks to combat the problem. The default ones are the best ones. Feel free to experiment just for testing purposes.


Thanks for the response. Actually I'm not interested in changing the impulse trigger profile (ITP). I was just curious as to which ITP is used when I select a quality setting that doesn't appear in the table....like 6.5. My goal is to find the best quality setting for me and I thought if the scale isn't graduated between the values in the table, maybe it would be worth it to me to go with a quality of 7 as opposed to choosing 6.75.

So what which ITP value corresponds to a quality setting of 6.5??
HotshotGG
QUOTE
Thanks for the response. Actually I'm not interested in changing the impulse trigger profile (ITP). I was just curious as to which ITP is used when I select a quality setting that doesn't appear in the table....like 6.5. My goal is to find the best quality setting for me and I thought if the scale isn't graduated between the values in the table, maybe it would be worth it to me to go with a quality of 7 as opposed to choosing 6.75.

So what which ITP value corresponds to a quality setting of 6.5??


Actually that's exactly what I use a -q 6.5 sometimes -q 7. It doesn't really matter to be honest with you. I would say don't bother with it. Changing the trigger profile is only going to affect output of the file size so it doesn't really matter what ITP profile is used. They are all tweaked with certain quality settings in mind that are really not meant to be touched. Higher ITP profiles allocate more bits to short blocks (which if abused is sometimes unecessary).

For example: It's probably not a good idea to use a ITP profile of 3.7 with a -q 2 switch. The bitrate allocation will be through the roof and the file size will increase two fold (well I am just exegerrating), but you get the point. Hope that helps.

Note: If you want to experiment feel free to do just that though and compare the output file sizes, watch how fast the bitrate allocation is in Foobar2000 for example.
Oggie-Ben-Doggie
QUOTE (HotshotGG @ Dec 24 2008, 15:29) *
QUOTE
Thanks for the response. Actually I'm not interested in changing the impulse trigger profile (ITP). I was just curious as to which ITP is used when I select a quality setting that doesn't appear in the table....like 6.5. My goal is to find the best quality setting for me and I thought if the scale isn't graduated between the values in the table, maybe it would be worth it to me to go with a quality of 7 as opposed to choosing 6.75.

So what which ITP value corresponds to a quality setting of 6.5??


Actually that's exactly what I use a -q 6.5 sometimes -q 7. It doesn't really matter to be honest with you. I would say don't bother with it. Changing the trigger profile is only going to affect output of the file size so it doesn't really matter what ITP profile is used. They are all tweaked with certain quality settings in mind that are really not meant to be touched. Higher ITP profiles allocate more bits to short blocks (which if abused is sometimes unecessary).

For example: It's probably not a good idea to use a ITP profile of 3.7 with a -q 2 switch. The bitrate allocation will be through the roof and the file size will increase two fold (well I am just exegerrating), but you get the point. Hope that helps.

Note: If you want to experiment feel free to do just that though and compare the output file sizes, watch how fast the bitrate allocation is in Foobar2000 for example.


Thanks...you've convinced me to leave it alone. I'm about to rip several hundred CDs (I'm excited the aotuv 5.61 was just released!! Thank you Aoyumi!!) and I want to do it right the first time!

BTW - Have you found the advanced-encode-option impulse_noistune option to be useful or would I just be inflating the output files?

BTW - Have you found it useful to tweak the impulse_noisetune advanced-encode-option setting?
HotshotGG
QUOTE
Thanks...you've convinced me to leave it alone. I'm about to rip several hundred CDs (I'm excited the aotuv 5.61 was just released!! Thank you Aoyumi!!) and I want to do it right the first time!

BTW - Have you found the advanced-encode-option impulse_noistune option to be useful or would I just be inflating the output files?

BTW - Have you found it useful to tweak the impulse_noisetune advanced-encode-option setting?


The impulse_noisetune option is more useful then the trigger profile. I recommend tweaking it if you are having problems with pre-echo or other transient issues (Note: these are vary rare). The most commonly cited artifact sometimes with Vorbis is distortion. This could be attributed to Noise Normalization, which add's noise back into the energy spectrum (Note: it should not be a problem with -q values over 4). If this is a problem even at -q 6.5 or -q 7 tweak the impulse_noisetune switch to somewhere between to -5 and -15. It is wrapped into the encoder control interface, which directly controls the low-level API libraries (ignore the terminology). Basically what it does is retune the ATH curves on impulse short blocks if my memory serves me correctly (I haven't looked at the source code in two years). Feel free to experiment only if you are having those kinds of problems though. It shouldn't inflate the file size too much.
Oggie-Ben-Doggie
QUOTE (HotshotGG @ Dec 25 2008, 13:17) *
QUOTE
Thanks...you've convinced me to leave it alone. I'm about to rip several hundred CDs (I'm excited the aotuv 5.61 was just released!! Thank you Aoyumi!!) and I want to do it right the first time!

BTW - Have you found the advanced-encode-option impulse_noistune option to be useful or would I just be inflating the output files?

BTW - Have you found it useful to tweak the impulse_noisetune advanced-encode-option setting?


The impulse_noisetune option is more useful then the trigger profile. I recommend tweaking it if you are having problems with pre-echo or other transient issues (Note: these are vary rare). The most commonly cited artifact sometimes with Vorbis is distortion. This could be attributed to Noise Normalization, which add's noise back into the energy spectrum (Note: it should not be a problem with -q values over 4). If this is a problem even at -q 6.5 or -q 7 tweak the impulse_noisetune switch to somewhere between to 5 and 15. It is wrapped into the encoder control interface, which directly controls the low-level API libraries (ignore the terminology). Basically what it does is retune the ATH curves on impulse short blocks if my memory serves me correctly (I haven't looked at the source code in two years). Feel free to experiment only if you are having those kinds of problems though. It shouldn't inflate the file size too much.


Thanks once more for all of the information. It's wonderful getting expert advice from someone as experienced and knowledgeable as yourself. I'm very close to "Letting the ripping begin!" smile.gif

I have one other quick question related to something you mentioned in your last reply. Is Noise Normalization tunable? (I haven't read of a switch to tweak this, so I'm guessing the answer is no.)
HotshotGG
QUOTE
Thanks once more for all of the information. It's wonderful getting expert advice from someone as experienced and knowledgeable as yourself. I'm very close to "Letting the ripping begin!" smile.gif

I have one other quick question related to something you mentioned in your last reply. Is Noise Normalization tunable? (I haven't read of a switch to tweak this, so I'm guessing the answer is no.)


No Noise Normalization is not tunable. It's used on all -q values less than 3. What it basically does it redistribute what's called by-band noise energy. When certain bands are "quantized" meaning the data redundency reduced on the lower -q values. The high frequency noise bands sometimes end up with less energy. This can sometimes lead to artifacts (Note: in the case of MP3 it usually leads to pre-echo in the corresponding subbands due to that annoying scale factor 21 problem). Anyway Noise Normalization uses a sorting algorithm written in C to redistribute the noise energy or the quantized bits from the lower frequency bands into the higher ones with whatever is left over (I hope you are following this somewhat). Due to the fact that this is all done through the MDCT routines it CANNOT be tweaked. Even if added to the encoder control interface. If you want to know what it sounds like encode with AoTuV Beta 5.61 using a -q 0. On certain difficult to encode parts it will sounds like "noise" has been added back into the high frequency region. Again why do we use noise? The answer is simple noise sounds better then any warbling metallic artifacts. I hope that helps.

If you want my opinion I would recommend you go with somewhere between q 6.5 and q 7. Anything over that is really over kill and probably un-abxable! happy ripping! What media device will you be ripping for? I am guessing perhaps a portable or is this just for your HD? Make sure you make lossless backups if you decide to go that route!
Oggie-Ben-Doggie
[quote name='HotshotGG' date='Dec 26 2008, 09:16' post='606411']
Thanks once more for all of the information. It's wonderful getting expert advice from someone as experienced and knowledgeable as yourself. I'm very close to "Letting the ripping begin!" smile.gif

[quote]
If you want my opinion I would recommend you go with somewhere between q 6.5 and q 7. Anything over that is really over kill and probably un-abxable! happy ripping! What media device will you be ripping for? I am guessing perhaps a portable or is this just for your HD? Make sure you make lossless backups if you decide to go that route!
[/quote]

Thanks again. I was leaning towards using these settings:

--quality 6.75 --advanced-encode-option impulse_noisetune=-7 --advanced-encode-option lowpass_frequency=21.8

I'm ripping about 300 CDs of pop/rap/rock music for an iRiver T30 and an iRiver E10.

I know this is a little off-topic, but my ultimate goal is to rip all 4000+ CDs I own using flac and then rip those (with John's oggenc, thanks John!) to ogg as needed. A friend of mine had this cool setup where he took a 300 CD Sony jukebox player, bought a box with a digital input and serial (USB?) output and found some software to control the box with his PC. (He said the software was a nicely documented C++ interface.) He wrote a small program to lookup the CD tagging information and to control the ripping process. He would then load up the CD jukebox with 300 discs and let it rip for some 11 days uninterrupted! Then he would load it up and start the process over. Now that TB drives are cheap, this project is becoming more feasible.
HotshotGG
QUOTE
Thanks again. I was leaning towards using these settings:

--quality 6.75 --advanced-encode-option impulse_noisetune=-7 --advanced-encode-option lowpass_frequency=21.8

I'm ripping about 300 CDs of pop/rap/rock music for an iRiver T30 and an iRiver E10.

I know this is a little off-topic, but my ultimate goal is to rip all 4000+ CDs I own using flac and then rip those (with John's oggenc, thanks John!) to ogg as needed. A friend of mine had this cool setup where he took a 300 CD Sony jukebox player, bought a box with a digital input and serial (USB?) output and found some software to control the box with his PC. (He said the software was a nicely documented C++ interface.) He wrote a small program to lookup the CD tagging information and to control the ripping process. He would then load up the CD jukebox with 300 discs and let it rip for some 11 days uninterrupted! Then he would load it up and start the process over. Now that TB drives are cheap, this project is becoming more feasible.


Your settings look ok. I wouldn't touch the lowpass filter though. I mean it's completely up to you though. Good choice to go with the IRiver T30 and IRiverE10 there are quite a few folks around here who use FLAC/Vorbis combination and use that player line. I don't really know the best way to automate a ripping process. Maybe it would be best to have a parrellel processor?. I would try to help you there, but my collection of CD's right now is less then 20 compared to the 100 or so that the average member who rips on here probably has I don't think it would do you much good. A "nicely documented C++ interface" is hard to find considering that people don't put enough effort into writing documentation (this is only true of some projects). I coded in C++ a long time ago. I don't even remember the language. I just remembed that the standard template library is a joke and I never actually was going to use it for anything large scale in terms of objected oriented design. C on the other hand I used a couple of years ago and found more useful, but that's just me. C++ does have some more data types though so I could see why it would be essential for a project like that. You know what would be even better with the CD tagging information? Maybe using some sort of XML/Schema type output like XSPF does? That would come in handy. Well I want to thank you for using Vorbis! A lot of people would just use LAME by default and never take a second look at it. If you have any other questions let me know! Happy ripping! Take care.
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-2009 Invision Power Services, Inc.