FredericV Posted January 21, 2020 Share Posted January 21, 2020 1 hour ago, abrxx said: Coming from my background as a software developer, and from reading the MQA patents, I would imagine a process whereby an internal 32-bit coding space is used to perform the "fold". Then, using subtractive dither (their words), the 32-bit coding space is transformed into a 24-bit one. If the dither can be reversed (which MQA claim), then the process can be reversed to construct a 32-bit/48Khz dataset, from which something resembling the input signal can be constructed. This is probably never going to happen. They cannot reconstruct the original audio above 44.1 or 48 Khz. All there is, is a first unfold + upsampling with a leaky filter causing aliasing. Otherwise if there was a third unfold, and this data was buried and recovered, the plot would not be like this: Designer of the 432 EVO music server and Linux specialist Discoverer of the independent open source sox based mqa playback method with optional one cycle postringing. Link to comment
Popular Post mansr Posted January 21, 2020 Popular Post Share Posted January 21, 2020 1 hour ago, abrxx said: Coming from my background as a software developer, and from reading the MQA patents, I would imagine a process whereby an internal 32-bit coding space is used to perform the "fold". Then, using subtractive dither (their words), the 32-bit coding space is transformed into a 24-bit one. If the dither can be reversed (which MQA claim), then the process can be reversed to construct a 32-bit/48Khz dataset, from which something resembling the input signal can be constructed. You can't turn 32 bits into 24 without losing something. FredericV, esldude and MikeyFresh 3 Link to comment
Popular Post FredericV Posted January 21, 2020 Popular Post Share Posted January 21, 2020 They clearly do not read this topic, since when is DXD a multiple of 48 Khz? lucretius, MikeyFresh, esldude and 1 other 1 3 Designer of the 432 EVO music server and Linux specialist Discoverer of the independent open source sox based mqa playback method with optional one cycle postringing. Link to comment
abrxx Posted January 22, 2020 Share Posted January 22, 2020 5 hours ago, mansr said: You can't turn 32 bits into 24 without losing something. Yeah, I thought about this a little more and realized my theory doesn't really work. The first part, converting 32 bits (or perhaps 30 bits) to 24 bits, is the easy bit, and we know MQA does this, and how: subtractive dither and noise shaping. This adds the extra 6 bits of perceptual resolution. But this is perceptual resolution, not coding space. The engineer within me is trying to crack this! The Computer Audiophile 1 Link to comment
Popular Post Thuaveta Posted January 22, 2020 Popular Post Share Posted January 22, 2020 3 hours ago, abrxx said: The engineer within me is trying to crack this! The engineer in you is possibly using the wrong tools: what's behind MQA likely has little to do with hard science, and much to do with marketing (let's not insult psychologists by calling it anything else). Trying to make BS's and followers' science claims make sense in reality is assuming the solution to changing a lightbulb necessarily includes the use of a hammer. Ralf11, MrMoM and The Computer Audiophile 2 1 Link to comment
Popular Post mansr Posted January 22, 2020 Popular Post Share Posted January 22, 2020 9 hours ago, abrxx said: Yeah, I thought about this a little more and realized my theory doesn't really work. The first part, converting 32 bits (or perhaps 30 bits) to 24 bits, is the easy bit, and we know MQA does this, and how: subtractive dither and noise shaping. This adds the extra 6 bits of perceptual resolution. But this is perceptual resolution, not coding space. The engineer within me is trying to crack this! Reverse engineering the decoder, I have found that the bits in an MQA file are used like this (with LSB as bit 0): 9–15: Uncompressed audio data, 0-24 kHz with shaped pseudo-random dither. 8: Various low-rate data, including: MQA identifier Original sample rate Desired "rendering" filter Authentication signatures Touch-up data for audio baseband (Optional) Metadata (artist, title, etc) 0-7: Compressed audio data, 24-48 kHz The decoding process works roughly like this: Locate MQA identifier in bit 8 and initialise dither generator. Subtract generated dither. This has two effects: Unmask compressed data in bits 0-7 Reduce noise level in baseband Extract compressed data (bits 0-7) into separate buffer. Apply touch-up data (bit 8) to audio samples. Decode compressed high band. Join baseband and high band. Encode render instructions (filter, etc) into LSB of 24-bit samples. The rendering works like this: Locate identifier in LSB. Extract parameters: Original sample rate (mainly used to lie on display) Upsampling filter number Dither level and shape Gain Apply gain if requested. Upsample to device-specific rate using indicated filter. This typically the highest rate supported by the DAC chip and is not related to the original rate of the file. Apply dither using parameters from step 2: Bit depth is one of 15, 16, 18, or 20. Only 16 and 18 have been seen in the wild. Shape is flat or one of two options with noised pushed towards high frequencies. In devices like the Dragonfly that rely on the DAC chip for upsampling (with programmable coefficients), steps 4 and 5 are reversed. Most of the things BS talks about are nowhere to be found in the actual product. You're wasting your time looking for them. oPossum, The Computer Audiophile, Kyhl and 14 others 8 1 8 Link to comment
Popular Post mansr Posted January 22, 2020 Popular Post Share Posted January 22, 2020 7 hours ago, Thuaveta said: The engineer in you is possibly using the wrong tools: Here's a very useful tool: https://ghidra-sre.org/ 7 hours ago, Thuaveta said: what's behind MQA likely has little to do with hard science, and much to do with marketing (let's not insult psychologists by calling it anything else). BS calls it neuroscience. MikeyFresh, Thuaveta and Sonicularity 3 Link to comment
Popular Post The Computer Audiophile Posted January 22, 2020 Popular Post Share Posted January 22, 2020 5 minutes ago, mansr said: BS calls it neuroscience. Many others call is pseudoscience. Shadders, FredericV, daverich4 and 1 other 1 3 Founder of Audiophile Style | My Audio Systems Link to comment
rickca Posted January 22, 2020 Share Posted January 22, 2020 1 hour ago, mansr said: 8: Various low-rate data, including: MQA identifier Original sample rate Desired "rendering" filter Authentication signatures Touch-up data for audio baseband (Optional) Metadata (artist, title, etc) How can MQA do all that with just one bit? Pareto Audio AMD 7700 Server --> Berkeley Alpha USB --> Jeff Rowland Aeris --> Jeff Rowland 625 S2 --> Focal Utopia 3 Diablos with 2 x Focal Electra SW 1000 BE subs i7-6700K/Windows 10 --> EVGA Nu Audio Card --> Focal CMS50's Link to comment
Popular Post The Computer Audiophile Posted January 22, 2020 Popular Post Share Posted January 22, 2020 2 minutes ago, rickca said: How can MQA do all that with just one bit? When it comes to MQA, be careful asking question to which you don't already know the answer :~) lucretius and Iving 2 Founder of Audiophile Style | My Audio Systems Link to comment
abrxx Posted January 22, 2020 Share Posted January 22, 2020 2 minutes ago, rickca said: How can MQA do all that with just one bit? It's two dimension remember: one bit over time. Its just a block of data encoded. It could be binary data, although perhaps there is another way of doing it. Link to comment
rickca Posted January 22, 2020 Share Posted January 22, 2020 Just now, The Computer Audiophile said: When it comes to MQA, be careful asking question to which you don't already know the answer :~) I don't get your point, sorry. Am I being dense? Pareto Audio AMD 7700 Server --> Berkeley Alpha USB --> Jeff Rowland Aeris --> Jeff Rowland 625 S2 --> Focal Utopia 3 Diablos with 2 x Focal Electra SW 1000 BE subs i7-6700K/Windows 10 --> EVGA Nu Audio Card --> Focal CMS50's Link to comment
Iving Posted January 22, 2020 Share Posted January 22, 2020 5 minutes ago, The Computer Audiophile said: When it comes to MQA, be careful asking question to which you don't already know the answer :~) 3 minutes ago, rickca said: I don't get your point, sorry. Am I being dense? Old adage to trainee lawyers ... 😉 Allan F 1 Link to comment
abrxx Posted January 22, 2020 Share Posted January 22, 2020 1 hour ago, mansr said: Most of the things BS talks about are nowhere to be found in the actual product. You're wasting your time looking for them. Curious, what are you thinking of? Link to comment
rickca Posted January 22, 2020 Share Posted January 22, 2020 Just now, Iving said: Old adage to trainee lawyers ... 😉 Sure I'm familiar with the risk to lawyers, but I'm sure that Mans can answer my question. Iving 1 Pareto Audio AMD 7700 Server --> Berkeley Alpha USB --> Jeff Rowland Aeris --> Jeff Rowland 625 S2 --> Focal Utopia 3 Diablos with 2 x Focal Electra SW 1000 BE subs i7-6700K/Windows 10 --> EVGA Nu Audio Card --> Focal CMS50's Link to comment
Popular Post mansr Posted January 22, 2020 Popular Post Share Posted January 22, 2020 1 minute ago, abrxx said: It's two dimension remember: one bit over time. Its just a block of data encoded. It could be binary data, although perhaps there is another way of doing it. Right, it's a sequence of data blocks serialised into one bit per sample. The format, to the extent I have deduced it, is documented here: https://code.videolan.org/mansr/mqa/blob/master/mqa.rst rickca, Iving, MikeyFresh and 1 other 2 2 Link to comment
Popular Post The Computer Audiophile Posted January 22, 2020 Popular Post Share Posted January 22, 2020 9 minutes ago, rickca said: I don't get your point, sorry. Am I being dense? I meant it more with respect to asking questions to MQA ltd. Ask a simple question and the answer will be a roundabout containing half-truths and fodder for the believers. Iving, MikeyFresh and esldude 1 1 1 Founder of Audiophile Style | My Audio Systems Link to comment
rickca Posted January 22, 2020 Share Posted January 22, 2020 Just now, The Computer Audiophile said: I meant it more with respect to asking questions to MQA ltd. Ask a simple question and the answer will be a roundabout containing half-truths and fodder for the believers. OK that's what I figured you must have meant. I'm done with MQA technobabble. I wouldn't even bother asking them questions. Pareto Audio AMD 7700 Server --> Berkeley Alpha USB --> Jeff Rowland Aeris --> Jeff Rowland 625 S2 --> Focal Utopia 3 Diablos with 2 x Focal Electra SW 1000 BE subs i7-6700K/Windows 10 --> EVGA Nu Audio Card --> Focal CMS50's Link to comment
Allan F Posted January 22, 2020 Share Posted January 22, 2020 19 minutes ago, Iving said: Old adage to trainee lawyers ... 😉 With the exception that there are rare occasions when you can ask a question that, regardless of the answer works for you, a "Have you stopped beating your wife?" type of question. Iving 1 "Relax, it's only hi-fi. There's never been a hi-fi emergency." - Roy Hall "Not everything that can be counted counts, and not everything that counts can be counted." - William Bruce Cameron Link to comment
FredericV Posted January 22, 2020 Share Posted January 22, 2020 2 hours ago, mansr said: Here's a very useful tool: https://ghidra-sre.org/ - strace - running code in a chroot jail - transprant proxy intercepting files from streaming CDN's and in flight firmware images for vendors who do not offer download links - readelf - objdump - binwalk .... Designer of the 432 EVO music server and Linux specialist Discoverer of the independent open source sox based mqa playback method with optional one cycle postringing. Link to comment
Iving Posted January 22, 2020 Share Posted January 22, 2020 5 minutes ago, Allan F said: With the exception that there are rare occasions when you can ask a question that, regardless of the answer works for you, a "Have you stopped beating your wife?" type of question. Oh yeah I would never have made a good lawyer 😉 Link to comment
Cebolla Posted January 22, 2020 Share Posted January 22, 2020 3 hours ago, mansr said: Reverse engineering the decoder, I have found that the bits in an MQA file are used like this (with LSB as bit 0): 9–15: Uncompressed audio data, 0-24 kHz with shaped pseudo-random dither. This is a typo, presumably, so the range should be the high15 bits, ie, bits 9-23, rather than ending at bit 15. Mind you, may be the high 7 bits 9-15 are actually the uncompressed 0-22kHz audio data in the MQA-CD file - yuck! We are far more united and have far more in common with each other than things that divide us. -- Jo Cox Link to comment
mansr Posted January 22, 2020 Share Posted January 22, 2020 38 minutes ago, Cebolla said: This is a typo, presumably, so the range should be the high15 bits, ie, bits 9-23, rather than ending at bit 15. Yes, obviously. Thanks for noticing. 38 minutes ago, Cebolla said: Mind you, may be the high 7 bits 9-15 are actually the uncompressed 0-22kHz audio data in the MQA-CD file - yuck! MQA-CD simply lacks the low 8 bits of compressed high-frequency information. The remaining 16 bits are used the same way as in regular MQA. Link to comment
FredericV Posted January 22, 2020 Share Posted January 22, 2020 38 minutes ago, mansr said: MQA-CD simply lacks the low 8 bits of compressed high-frequency information. The remaining 16 bits are used the same way as in regular MQA. Bob claims MQA CD can produce content up to 36 kHz while also claiming the following: Quote When the transmission channel is limited to 16 bits, the decoder maintains good temporal performance, as the comparison between the olive and black curves show. Audio below 20 kHz is maintained at full resolution, while some precision is lost in the next octave. Notice the part in bold, with 8 bits gone, there is no data to do the first unfold. All MQA can do is upsample with their leaky filter, to generate a fake octave above redbook: We can generate the same fake content with SOX. And Bob describes this as "some precision is lost in the next octave". What precision???? MikeyFresh 1 Designer of the 432 EVO music server and Linux specialist Discoverer of the independent open source sox based mqa playback method with optional one cycle postringing. Link to comment
abrxx Posted January 22, 2020 Share Posted January 22, 2020 I think you misunderstand MQA, either that or it has changed since I last read about it. With only 16 bits of coding space to play with, I would imagine 13 bits dedicated (on the MSB side) dedicated to 0-24Khz, and the remaining 2-3 bits holding the approximation stream for the hi-rez section (24-48Hz). Also, the MSB side will not be identical to the original master, but will be noise-shaped and dithered, so as to get say 15.9 bits of perceptual resolution from 13 bits. The MQA decoder can then take all of this and render the high resolution section, not bit perfect, but as an approximation (since the touch-up stream, located beyond bit 15, is missing). This has been described over and over again in various literature from MQA and Bob, as well as appearing in their patents. @mansr do you see something quite different in the code you reverse-engineered? 17 minutes ago, FredericV said: Notice the part in bold, with 8 bits gone, there is no data to do the first unfold. All MQA can do is upsample with their leaky filter, to generate a fake octave above redbook: We can generate the same fake content with SOX. And Bob describes this as "some precision is lost in the next octave". What precision???? Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now