IPB

Welcome Guest ( Log In | Register )

Extract HDCD, How I Can extract HDCD by software?
SCIF
post Jan 27 2005, 08:34
Post #1





Group: Members
Posts: 5
Joined: 26-January 05
From: Vladivostok(RU)
Member No.: 19324



How I Can extract HDCD by software(EAC, WMP9...)?
Go to the top of the page
+Quote Post
 
Start new topic
Replies
SebastianG
post Jun 28 2007, 11:21
Post #2





Group: Developer
Posts: 1317
Joined: 20-March 04
From: Göttingen (DE)
Member No.: 12875



I reviewed the papers about HDCD you can find on the net again recently. Here's my current view on it:

The dithering/noise shaping part they were advocating is nothing special. In fact, it is inferior to what other programs do (like Foobar or my requant.jar tool) and not provably safe in the sense that it avoids nonlinear distortions. You can't even call it "noise shaping" because it only introduces a bit of colored dither which has more power above 16 kHz -- it doesn't shape quantization noise.

If you decode the peak compression thingy (assuming it has been used) you can restore the upper 5 dB of the dynamic range which is usually rarely used (only for the occasional peaks, that's the idea).

Then there's the reconstruction filter selection. The whole idea of this is at least questionable. (I seriously doubt that this constitutes any subjective improvement!)

HDCD also supports some kind of dynamic range compression for the lower levels. It works like this: Quiet signals can be amplified in steps of 0.5 dB (0.0-7.5 dB = 4 bit side information) smoothly before quantization.

The side informations (whether peak compression is used, which reconstruction filter to use and the compressor gain) is transmitted via the least significant bits with the help of a linear feedback shift register. The only information you can't find on the net is how they actually code this side information. So, you can't implement a proper decoder.

Since the "benefits" of HDCD seem rather small it's -- in my humble opinion -- not worth to decode the stream to something like 24/44 or 24/88. One should rather keep it like it is and/or use a HDCD capable post processing algorithm within your player of choice (which only is supported by Microsoft's Mediaplayer IIRC).

In terms of signal-to-noise ratio (I'm not referring to peak signal to noise ratio), proper HDCD decoding won't help you a thing. The only thing you can improve is restoring the slightly compressed dynamics.

Cheers!
SG

edit: fixed typos

This post has been edited by SebastianG: Jun 28 2007, 11:26
Go to the top of the page
+Quote Post
Christopher Key
post Aug 22 2007, 10:57
Post #3





Group: Members
Posts: 34
Joined: 21-March 07
Member No.: 41689



I've had a go at understanding hdcd; see,

http://forum.doom9.org/showthread.php?t=129136


QUOTE (SebastianG @ Jun 28 2007, 11:21) *
If you decode the peak compression thingy (assuming it has been used) you can restore the upper 5 dB of the dynamic range which is usually rarely used (only for the occasional peaks, that's the idea).


If range expansion is enabled then samples less than -3.11dBFS (<= 0x5980) are attenuated by 6dB, samples greater than -3.11dBFS are attentuation progressively less, giving the end mapping of 0dBFS to 0dBFS.

If range expansion is not enabled (including non hdcd's) all samples are simply attenuated by 6dB.

QUOTE (SebastianG @ Jun 28 2007, 11:21) *
Then there's the reconstruction filter selection. The whole idea of this is at least questionable. (I seriously doubt that this constitutes any subjective improvement!)


I'm not sure how this works exactly. There are 3 bits left that could be used for controlling the reconstruction filters, although there were always zero in all my test cds, and wmp didn't seem to respond to them at all.

QUOTE (SebastianG @ Jun 28 2007, 11:21) *
HDCD also supports some kind of dynamic range compression for the lower levels. It works like this: Quiet signals can be amplified in steps of 0.5 dB (0.0-7.5 dB = 4 bit side information) smoothly before quantization.


Exactly so.

QUOTE (SebastianG @ Jun 28 2007, 11:21) *
The side informations (whether peak compression is used, which reconstruction filter to use and the compressor gain) is transmitted via the least significant bits with the help of a linear feedback shift register. The only information you can't find on the net is how they actually code this side information. So, you can't implement a proper decoder.


Just needed a little bit of cryptanalysis.

On a candidate hdcd, during the silent intro at the start, the left and right channels matched exactly with a delay of a few hundred samples. This delay was rather fortunate, as it was hence, possible to identify where an hdcd code had been inserted by looking for a section where the correlation between the two channels stopped briefly. The locations of these sections were such that it was clear that the hdcd codes had been inserted into the left and right channels at the same time, and it was hence possible to assemble a set of encoded hdcd codes. Guessing that hdcd codes would contain some sort of magic number to mark them, and that a maximal length LFSR would have been used, it was simply a matter of trying all maximal length LFSRs on the data and looking for some correlation between them.

Hence, being able to extract hdcd codes, it was then fairly straighforward to use wmp as a reference to determine exactly what each bit of the code did.

Chris
Go to the top of the page
+Quote Post
gabeg
post Aug 24 2007, 01:15
Post #4





Group: Members
Posts: 3
Joined: 12-April 07
Member No.: 42416



QUOTE (Christopher Key @ Aug 22 2007, 03:57) *
Hence, being able to extract hdcd codes, it was then fairly straighforward to use wmp as a reference to determine exactly what each bit of the code did.

Chris



So is this literally replicating what an HDCD filter supposed to do??
Go to the top of the page
+Quote Post

Posts in this topic
- SCIF   Extract HDCD   Jan 27 2005, 08:34
- - Garf   HDCD just uses the standard 16 bit CD Audio encodi...   Jan 27 2005, 10:28
|- - PoisonDan   QUOTE (Garf @ Jan 27 2005, 11:28 AM)For playb...   Jan 27 2005, 10:50
|- - SCIF   QUOTE (PoisonDan @ Jan 27 2005, 07:50 PM)But ...   Jan 28 2005, 03:31
- - Garf   Perhaps it could work when you mount the ripped wa...   Jan 27 2005, 11:44
- - precisionist   QUOTE (SCIF @ Jan 28 2005, 03:31 AM)QUOTE (Po...   Jan 28 2005, 11:17
|- - SebastianG   QUOTE (precisionist @ Jan 28 2005, 02:17 AM)M...   Jan 28 2005, 17:02
- - adlai   I was always under the impression that HDCD was si...   Jan 28 2005, 18:00
|- - SebastianG   QUOTE (adlai @ Jan 28 2005, 09:00 AM)I was al...   Jan 28 2005, 18:59
|- - krabapple   QUOTE (SebastianG @ Jan 28 2005, 13:59) Q...   Jun 27 2007, 20:44
|- - ProtectYaNeck36   QUOTE (SebastianG @ Jan 28 2005, 11:59) Q...   Oct 20 2007, 17:41
- - user   QUOTE (SCIF @ Jan 27 2005, 08:34 AM)How I Can...   Feb 1 2005, 11:31
|- - Night Rain   QUOTE (user @ Feb 1 2005, 02:31) QUOTE (S...   Mar 21 2007, 12:38
- - ShowsOn   I just noticed this thread, and given that I fina...   Feb 1 2005, 13:10
|- - user   as written above, normally 24 bit playback of audi...   Feb 1 2005, 13:45
- - precisionist   QUOTE (ShowsOn @ Feb 1 2005, 01:10 PM)I resta...   Feb 2 2005, 13:26
|- - user   QUOTE (precisionist @ Feb 2 2005, 01:26 PM)My...   Feb 3 2005, 12:02
|- - Pio2001   QUOTE (user @ Feb 3 2005, 01:02 PM)QUOTE (pre...   Feb 3 2005, 21:25
- - precisionist   QUOTE (Pio2001 @ Feb 3 2005, 09:25 PM)QUOTE (...   Feb 4 2005, 14:23
|- - SebastianG   QUOTE (precisionist @ Feb 4 2005, 05:23 AM)Th...   Feb 4 2005, 16:34
- - Pio2001   No software, exept maybe the combination of Window...   Feb 4 2005, 23:29
|- - krabapple   QUOTE (Pio2001 @ Feb 4 2005, 17:29) No so...   Feb 8 2007, 19:15
- - precisionist   QUOTE (SebastianG @ Feb 4 2005, 04:34 PM)Does...   Feb 7 2005, 17:01
- - Eric Carroll   There has been a long running thread on the Slim D...   Feb 26 2007, 06:56
- - markanini   Wow, I wish I knew about this plugin before. Final...   Feb 27 2007, 01:40
|- - Eric Carroll   QUOTE (markanini @ Feb 26 2007, 19:40) Wo...   Feb 27 2007, 04:42
|- - markanini   QUOTE (Eric Carroll @ Feb 27 2007, 05:42)...   Feb 27 2007, 05:26
- - markanini   Since I got too excited about this, here are the w...   Feb 27 2007, 06:31
|- - Eric Carroll   Thanks for looking into this. QUOTE (markanini ...   Feb 27 2007, 06:57
- - markanini   For the sake of visual comparison I adjusted the w...   Feb 27 2007, 07:08
|- - Eric Carroll   Well your results sure look like what I expected t...   Feb 27 2007, 07:14
- - markanini   I used WMP 10.   Feb 27 2007, 07:17
- - SebastianG   I recall someone mentioning on the audioasylum for...   Feb 27 2007, 09:49
|- - user   I have an alternative idea to capture the 2 stream...   Mar 21 2007, 11:41
- - SebastianG   I reviewed the papers about HDCD you can find on t...   Jun 28 2007, 11:21
|- - Christopher Key   I've had a go at understanding hdcd; see, htt...   Aug 22 2007, 10:57
|- - M   QUOTE (Christopher Key @ Aug 22 2007, 04...   Aug 22 2007, 15:33
||- - Christopher Key   QUOTE (M @ Aug 22 2007, 15:33) QUOTE (Chr...   Aug 22 2007, 17:54
|- - gabeg   QUOTE (Christopher Key @ Aug 22 2007, 03...   Aug 24 2007, 01:15
||- - Christopher Key   QUOTE (gabeg @ Aug 24 2007, 01:15) QUOTE ...   Aug 24 2007, 11:03
|- - MRC01   QUOTE (Christopher Key @ Aug 22 2007, 01...   Oct 18 2007, 06:14
- - SebastianG   Nice work! ... The infos about the LFSR are av...   Aug 22 2007, 13:50
|- - Christopher Key   QUOTE (SebastianG @ Aug 22 2007, 13:50) N...   Aug 22 2007, 14:04
- - eevan   You can find this link at Wikipedia. Take a look...   Aug 22 2007, 15:29
|- - Christopher Key   QUOTE (eevan @ Aug 22 2007, 15:29) You ca...   Aug 22 2007, 16:28
- - eevan   I've just tried your command-line decoder on o...   Aug 22 2007, 17:12
- - eevan   Thanks! Cheers   Aug 22 2007, 17:58
- - SebastianG   I didn't try but I'd guess the answer is: ...   Aug 24 2007, 09:15
- - dmckean   It works for me. I think the real solution needs t...   Aug 25 2007, 01:24
|- - Christopher Key   QUOTE (dmckean @ Aug 25 2007, 01:24) It w...   Aug 25 2007, 16:42
- - SebastianG   QUOTE (Christopher Key @ Aug 24 2007, 12...   Aug 27 2007, 08:21
|- - Christopher Key   QUOTE (SebastianG @ Aug 27 2007, 08:21) Q...   Aug 27 2007, 23:17
|- - Christopher Key   QUOTE (Christopher Key @ Aug 27 2007, 23...   Aug 29 2007, 19:12
|- - krabapple   QUOTE (Christopher Key @ Aug 29 2007, 14...   Aug 30 2007, 20:20
- - Walrusbonzo   Interesting stuff, I have 20~ HDCDs around here. ...   Aug 27 2007, 09:45
|- - adamjk   QUOTE (Walrusbonzo @ Aug 27 2007, 10:45) ...   Aug 27 2007, 11:36
- - Raiden   hdcd.exe < 16bit.wav > 24bit.wav   Aug 27 2007, 12:02
- - Walrusbonzo   Thanks guys.... Got it working.   Aug 27 2007, 13:44
- - Walrusbonzo   I've started to run all my known HDCD encoded ...   Aug 27 2007, 15:20
|- - bryant   QUOTE (Walrusbonzo @ Aug 27 2007, 07:20) ...   Aug 31 2007, 05:36
|- - SebastianG   QUOTE (bryant @ Aug 31 2007, 06:36) I als...   Aug 31 2007, 08:27
||- - bryant   QUOTE (SebastianG @ Aug 31 2007, 00:27) Q...   Sep 1 2007, 05:49
|- - Christopher Key   QUOTE (bryant @ Aug 31 2007, 05:36) Chris...   Aug 31 2007, 11:55
|- - bryant   QUOTE (Christopher Key @ Aug 31 2007, 03...   Sep 1 2007, 06:14
|- - Christopher Key   QUOTE (bryant @ Sep 1 2007, 06:14) I had ...   Sep 13 2007, 13:19
- - skamp   FLAC seems to support 20 bit audio. I don't su...   Aug 27 2007, 16:38
|- - Walrusbonzo   QUOTE (skamp @ Aug 27 2007, 16:38) FLAC s...   Aug 27 2007, 17:43
- - SebastianG   One could modify the decoder to output 24 bit samp...   Aug 27 2007, 18:10
|- - Walrusbonzo   QUOTE (SebastianG @ Aug 27 2007, 18:10) S...   Aug 27 2007, 18:30
|- - skamp   QUOTE (SebastianG @ Aug 27 2007, 19:10) S...   Aug 27 2007, 18:42
||- - lucas1985   I'm with SebastianG. This decoder should be re...   Aug 27 2007, 20:09
|- - SiriusB   QUOTE (SebastianG @ Aug 27 2007, 11:10) O...   Aug 30 2007, 03:38
|- - eevan   QUOTE (SiriusB @ Aug 30 2007, 04:38) Rega...   Aug 30 2007, 11:39
||- - skelly831   QUOTE (eevan @ Aug 30 2007, 03:39) When I...   Aug 30 2007, 15:33
|- - Christopher Key   QUOTE (SiriusB @ Aug 30 2007, 03:38) Hi g...   Aug 30 2007, 16:33
|- - krabapple   QUOTE (Christopher Key @ Aug 30 2007, 11...   Aug 30 2007, 19:56
|- - Christopher Key   [quote name='krabapple' date='Aug 30 2...   Aug 31 2007, 11:37
|- - SiriusB   QUOTE (Christopher Key @ Aug 31 2007, 04...   Aug 31 2007, 12:14
||- - Christopher Key   QUOTE (SiriusB @ Aug 31 2007, 12:14) Rega...   Aug 31 2007, 12:50
|- - Christopher Key   QUOTE (Christopher Key @ Aug 31 2007, 11...   Aug 31 2007, 17:35
|- - Christopher Key   QUOTE (Christopher Key @ Aug 31 2007, 17...   Aug 31 2007, 21:52
||- - SebastianG   QUOTE (Christopher Key @ Aug 31 2007, 22...   Sep 3 2007, 12:27
||- - gabeg   QUOTE (SebastianG @ Sep 3 2007, 05:27) Pe...   Sep 4 2007, 17:31
||- - SebastianG   QUOTE (gabeg @ Sep 4 2007, 18:31) So does...   Sep 5 2007, 08:29
||- - Christopher Key   QUOTE (SebastianG @ Sep 5 2007, 08:29) QU...   Sep 13 2007, 14:13
|- - SiriusB   QUOTE If anyone has access to a hardware decoder w...   Sep 1 2007, 00:36
|- - Christopher Key   QUOTE (SiriusB @ Sep 1 2007, 00:36) QUOTE...   Sep 1 2007, 16:09
|- - skamp   QUOTE (Christopher Key @ Sep 1 2007, 17:0...   Sep 1 2007, 18:50
|- - Christopher Key   QUOTE (skamp @ Sep 1 2007, 18:50) QUOTE (...   Sep 13 2007, 14:02
- - edwardar   Can I just say I'm very excited about this too...   Aug 27 2007, 23:05
- - Dynamic   The older foobar v0.8 series do allow Playback/Bit...   Aug 28 2007, 10:06
- - SiriusB   Yes, piping makes more sense than the way I did it...   Aug 31 2007, 13:20
- - Egor   FLAC --best compression results, 1.2.0 ICL compile...   Aug 31 2007, 14:38
|- - Christopher Key   QUOTE (Egor @ Aug 31 2007, 14:38) FLAC --...   Aug 31 2007, 22:40
- - Fool_on_the_hill   I did ABX on track Wag The Dog from Mark Knopfler...   Aug 31 2007, 21:19
|- - Dynamic   QUOTE (Fool_on_the_hill @ Aug 31 2007, 21...   Sep 1 2007, 01:13
- - Triza   Excellent work. Christopher. Well done. Any chan...   Sep 1 2007, 00:34
- - Fool_on_the_hill   QUOTE Dynamic Posted Yesterday, 18:13 QUOTE(...   Sep 1 2007, 20:32
- - Dynamic   Thanks for the info, FotH. I hadn't noticed th...   Sep 2 2007, 18:37
- - Cavaille   for heavens sake!!! it´s finally happe...   Sep 6 2007, 18:55
2 Pages V   1 2 >


Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 



RSS Lo-Fi Version Time is now: 20th April 2014 - 10:46