Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion.

Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules.

 

Go Back   Doom9's Forum > General > Audio encoding
Register FAQ Calendar Today's Posts Search

Reply
 
Thread Tools Search this Thread Display Modes
Old 5th December 2011, 02:49   #1  |  Link
eheart144
Registered User
 
Join Date: Nov 2011
Posts: 1
TrueHD bitdepth

The Haali Media Splitter doesn't "export" the TrueHD track. And even if it did, we'd still need the Nero Audio Decoder for TrueHD decoding. Haali's Media Splitter isn't decoding, of course, it's only splitting.

One thing I just found out is confusing me quite a lot:

The TrueHD track I was testing (Vendetta) is supposed to be 48kHz 16bit. The Nero Audio Decoder always outputs 24bit. Ok, so I thought I could simply convert that to 16bit without any loss. However, I've just checked: If I convert the 24bit Nero output to 16bit and then back to 24bit, the result is different to the original. It seems that there's more than 16bit real information in the Nero output. But the TrueHD track is only 16bit! I don't quite understand this. My only explanation would be that the Nero audio decoder does some processing on the decoded data, e.g. volume adjustment or something like that. That's kind of bad, though, since that means that converting to 16bit may end up harming the audio quality. But keeping 24bit *significantly* increases the final FLAC file size. Arghh.......
eheart144 is offline   Reply With Quote
Old 7th December 2011, 11:43   #2  |  Link
tebasuna51
Moderator
 
tebasuna51's Avatar
 
Join Date: Feb 2005
Location: Spain
Posts: 6,915
Quote:
Originally Posted by eheart144 View Post
The TrueHD track I was testing (Vendetta) is supposed to be 48kHz 16bit.
How do you know than the track bitdepth is 16 bit?

Quote:
The Nero Audio Decoder always outputs 24bit. Ok, so I thought I could simply convert that to 16bit without any loss. However, I've just checked: If I convert the 24bit Nero output to 16bit and then back to 24bit, the result is different to the original.
How do you convert 16 bit to 24 bit?
Some conversors can include noise in less significant bits.

Use eac3to to decode TrueHD, the decoders libav/nero always output 24 bits, but eac3to check the less significant bits and, when these bits are always 0, convert 24 -> 16 bits without losse quality.
__________________
BeHappy, AviSynth audio transcoder.
tebasuna51 is offline   Reply With Quote
Old 8th December 2011, 03:47   #3  |  Link
doom-nine
Registered User
 
doom-nine's Avatar
 
Join Date: Dec 2011
Posts: 22
Quote:
Originally Posted by tebasuna51 View Post
Use eac3to to decode TrueHD, the decoders libav/nero always output 24 bits, but eac3to check the less significant bits and, when these bits are always 0, convert 24 -> 16 bits without losse quality.
Is there any way that eac3to can decode the orginal audio file to the original depth, say, decode the 16bits TrueHD or ac3 to 16bits wav files?
I know there's an option for eac3to like "-down16" that defines the output depth. I think this option is not lossless, is it?
doom-nine is offline   Reply With Quote
Old 8th December 2011, 10:20   #4  |  Link
TDiTP_
Registered User
 
Join Date: Jul 2010
Location: Siberia
Posts: 50
Quote:
Originally Posted by doom-nine
Is there any way that eac3to can decode the orginal audio file to the original depth, say, decode the 16bits TrueHD
You need only:
Code:
eac3to input.thd output.wavs
it's all. And that's madshi says:
Quote:
Originally Posted by madshi
The bitdepth is simply not known before the processing. The information about the bitdepth is not contained anywhere in the TrueHD track. eac3to has no other choice than to fully decode the full track and check the bitdepth of every single audio sample (of which there are usually 48000 for every second of the runtime). If all 24bit audio samples have 8bits zeroed out, eac3to will state that it's a 16bit track only and will remove the 24bit file. There's nothing else I can do.

...
All TrueHD tracks are stored in 24bit. Some of those may be zero. eac3to shows the true bitdepth after having decoded a TrueHD track.
BTW, real bitdepth you can find out by using -analyzebitdepth in eac3to: eac3to input -analyzebitdepth
BDInfo can measure bitdepth incorrectly:
Quote:
Originally Posted by http://www.cinemasquid.com/blu-ray/tools/bdinfo
Known Issues:
* Occasionally inaccurate bit-depth measurement on Dolby TrueHD and DTS-HD Master audio streams.
Quote:
Originally Posted by doom-nine
I know there's an option for eac3to like "-down16" that defines the output depth. I think this option is not lossless, is it?
yes, it isn't lossless.
TDiTP_ is offline   Reply With Quote
Old 8th December 2011, 12:03   #5  |  Link
tebasuna51
Moderator
 
tebasuna51's Avatar
 
Join Date: Feb 2005
Location: Spain
Posts: 6,915
Quote:
Originally Posted by doom-nine View Post
Is there any way that eac3to can decode the orginal audio file to the original depth, say, decode the 16bits TrueHD or ac3 to 16bits wav files?
I know there's an option for eac3to like "-down16" that defines the output depth. I think this option is not lossless, is it?
About TrueHD read the TDiTP_ answer.

About ac3:
A standard ac3 file don't have bitdepth and don't preserve the data about the original bitdepth of the source.
Then always is recommended decode a ac3 file to, at least, 24 bits in order to preserve the max quality.

Of course "-down16" with ac3 input is not lossless.
__________________
BeHappy, AviSynth audio transcoder.
tebasuna51 is offline   Reply With Quote
Old 9th December 2011, 02:21   #6  |  Link
doom-nine
Registered User
 
doom-nine's Avatar
 
Join Date: Dec 2011
Posts: 22
to TDiTP_ and tebasuna51:
Got it, thank you. ;-)
doom-nine is offline   Reply With Quote
Old 9th December 2011, 08:15   #7  |  Link
nevcairiel
Registered Developer
 
Join Date: Mar 2010
Location: Hamburg/Germany
Posts: 10,348
Quote:
Originally Posted by madshi
The bitdepth is simply not known before the processing. The information about the bitdepth is not contained anywhere in the TrueHD track.
FWIW, this is not entirely true. There is a bitdepth field in the TrueHD major sync header, and libav/ffmpeg does read it and output 16 or 24 bit PCM accordingly.
__________________
LAV Filters - open source ffmpeg based media splitter and decoders
nevcairiel is offline   Reply With Quote
Old 9th December 2011, 08:34   #8  |  Link
TDiTP_
Registered User
 
Join Date: Jul 2010
Location: Siberia
Posts: 50
Quote:
Originally Posted by nevcairiel
There is a bitdepth field in the TrueHD major sync header, and libav/ffmpeg does read it and output 16 or 24 bit PCM accordingly.
FFmpeg Win32 build can do it? Could you put command line, please?
TDiTP_ is offline   Reply With Quote
Old 17th December 2011, 01:59   #9  |  Link
Asmodian
Registered User
 
Join Date: Feb 2002
Location: San Jose, California
Posts: 4,407
Quote:
Originally Posted by nevcairiel View Post
FWIW, this is not entirely true. There is a bitdepth field in the TrueHD major sync header, and libav/ffmpeg does read it and output 16 or 24 bit PCM accordingly.
But this could be just randomly set, I understand it isn't really connected to the source and is often set incorrectly.
Asmodian is offline   Reply With Quote
Old 17th December 2011, 08:12   #10  |  Link
nevcairiel
Registered Developer
 
Join Date: Mar 2010
Location: Hamburg/Germany
Posts: 10,348
Quote:
Originally Posted by Asmodian View Post
But this could be just randomly set, I understand it isn't really connected to the source and is often set incorrectly.
Sure, if its set to 24 bit it could still mean its 16-bit audio just padded with zeros, but if its set to 16 there is no chance its 24-bit audio.
If it doesn't match the actual audio, the file is just broken. I don't consider broken files something to worry about.
__________________
LAV Filters - open source ffmpeg based media splitter and decoders
nevcairiel is offline   Reply With Quote
Old 23rd April 2012, 19:16   #11  |  Link
Cudo
pixelmouse
 
Join Date: Nov 2010
Posts: 16
If a .thd file is 24-bit and eac3to reports it as broken but ffmpeg can still decode it to .wav using the -acodec pcm_s24le option, and if the decoded .wav can be played just fine, then if eac3to using the -analyzebitdepth option reports the decoded .wav is padded with zeros, does this mean the .thd is also padded with zeros?
Cudo is offline   Reply With Quote
Old 23rd April 2012, 19:33   #12  |  Link
Asmodian
Registered User
 
Join Date: Feb 2002
Location: San Jose, California
Posts: 4,407
Yes
Asmodian is offline   Reply With Quote
Old 23rd April 2012, 19:47   #13  |  Link
Cudo
pixelmouse
 
Join Date: Nov 2010
Posts: 16
Quote:
Originally Posted by Asmodian View Post
Yes
Aww.. lol Thanks alot for your fast reply!
Cudo is offline   Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 00:54.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.