Secure ripping: Difference between revisions

From Hydrogenaudio Knowledgebase
 
(27 intermediate revisions by 5 users not shown)
Line 2: Line 2:
=Secure Ripping=
=Secure Ripping=
===What is Secure Ripping?===
===What is Secure Ripping?===
Secure ripping is the process of making sure there were no errors during the extraction of audio from a CD. It normally involves attempting to get consistent results from successive re-reads of the same sectors, and is sometimes combined with other strategies, such as
* using the drive's own error reporting (after its own error correction fails) to know which sectors to re-read
* defeating caches (some drives cache audio data during DAE)
* and comparing checksums of extracted audio with those obtained by others.


Secure ripping is the process of making sure there were no errors during the extraction of audio from a CD. Popular Windows CD rippers, such as [[CDex]] and [[EAC]] try to ensure a bit-perfect rip for every track by checking the results, and re-reading any bad areas (from scratches) as many times as needed using read offsets, etc. [[Max]] and [[Rubyripper]] provide similiar results as alternative secure rippers for Mac OS/X and Linux/BSD respectively using their own effective correction mechanisms.
The basic function of ripping software is to get the CD's table of contents (an index of track start positions), and then for each track to be ripped, it tells the CD drive to go to the beginning of each of the track's data blocks (sectors) and read them in, one at a time. On an ordinary audio CD, each block is 2352 bytes and corresponds to 1/75th of a second of sound. The software saves that incoming data into an audio file (WAV or AIFF format, usually, as those formats are almost identical to the data coming in from the drive), or the software streams the data into another audio encoder "on the fly", so the user doesn't have to convert it to another format like MP3 in a separate step.


A bit-perfect rip may not always be possible, and so these programs ([[EAC]] especially) will report on any errors that could not be corrected for various reasons, allowing you to examine or attempt to correct the problems by analyzing a log file, using [[AccurateRip]], or by looking at other [http://www.daefeatures.co.uk/search.php Drive Databases]
This sounds simple, but it becomes complicated when parts of the CD can't be read accurately, for example due to scratches. And there's actually a lot of variation in whether each drive can reliably and accurately go to the spot it's told to read, and in the way it detects, reports, and handles errors, such as those caused by scratches. That is, every CD drive will give the ripping software 2352 bytes of data for each block the drive is told to read, but that data might be different each time, due to physical problems with the disc or limitations of the drive's hardware. Or the data might be the same each time, but is different when obtained from a different drive.
 
Ripping software that claims to have "secure ripping" will take into account the capabilities and limitations of the drive, and will make the drive read each sector multiple times. Then it will use various methods of analysis and re-reading to ensure that the data was read as correctly as possible. A bit-perfect rip may not always be possible, and so these programs will report on any errors that could not be corrected, allowing you to examine or attempt to correct the problems, such as by generating a log of suspicious positions or doing some kind of automatic "glitch removal".
 
The term "secure ripping" is usually used in opposition to "burst mode", which implies the drive is simply told to read a range of blocks just once, and the incoming data is accepted without any extra error detection or correction by the software. Since it doesn't involve re-reading of data (other than what the drive might always do automatically), burst mode is naturally faster than secure ripping.


=Secure Ripping Comparison=
=Secure Ripping Comparison=
Line 12: Line 20:


===Accurate Stream===  
===Accurate Stream===  
Accurate Stream is the ability to avoid jitter. Each CD drive reads audio discs slightly out (a number of samples), if your CD drive supports 'Accurate Stream' it will be a constant value, this should be the same for each particular make and model of CD-ROM Drive
Accurate Stream is a CD drive's ability to avoid "jitter". A CD drive, when told to go to a particular point on an audio disc, will usually go to a certain number of samples ahead or behind that point, and all the data blocks it reads will be relative to that starting point. If your CD drive supports 'Accurate Stream', this offset will be a constant value, and should be the same for each particular make and model of drive. Usually the offset is not very large (around 1/250th of a second or less). Secure ripping software can take into account whether the drive has Accurate Stream, in order to know whether extra analysis needs to be done to compensate for jitter. It's still possible to do secure ripping with drives that don't have the Accurate Stream feature; it's just easier and faster when they do.


===Caching===  
===Caching===  
Caching is the ability of the CD-ROM drive to hold a certain amount of samples in a buffer. Every CD-ROM cache can be "flushed".
Caching is the ability of the CD-ROM drive to hold a certain amount of data in its buffer so that it can be readily available in the event that it is requested more than once. This can cause problems for ripping programs when they request the same data be extracted more than once in order to detect errors. When the drive is told to re-read something, it might just send the cached data instead of actually re-reading the disc.
 
In order to get around this problem, the ripping software will typically request additional data in order to flush the cache of the information it wants to re-read. FUA (force unit access) can be a more efficient method of defeating the caching of audio data, but doesn't have wide hardware support. Of the ripping software listed in the article, the only ones that use of this method are EAC and dBpoweramp.


===C2 error pointers (software)===
===C2 error pointers (software)===
CD-ROM's have differing levels or error recognition and correction. C2 error pointers are read errors by a compact disc that can usually be detected by error detecting and correction scheme. The entire process of detetecting C2 error pointers is a complicated one, which can be reduced down to include the drive/firmware/software combination. This category only discusses, whether or not the secure ripping software can detect and utilize C2 error pointers. It does not go into details about whether or not certain types of CD-ROM drives can be used to detect C2 errors. Please consult [[AccurateRip]] or another drive database for that.
Some drives have the ability to provide additional information about the audio data that has been extracted in order to alert the ripping program when there are uncorrectable errors. This category lists whether the secure ripping software is able to request and utilizes C2 pointers from drives that provide them.
 
===AccurateRip===
[[AccurateRip]] is a database that allows you to find out if your CD rips are the same as those ripped by other people; if they were, then it's likely the rips are truly error-free. The database stores checksums for ripped tracks in order to accomplish this.  The checksums are generated when ripping and can be submitted to the database through the ripping software if the user so chooses.


=Windows=
=Windows=
Line 44: Line 57:
Yes: EAC and dbPowerAMP current existing libraries do print out a log file   
Yes: EAC and dbPowerAMP current existing libraries do print out a log file   


===AccurateRip===  
===AccurateRip===
AccurateRip is a drive database that stores read offsets for a number of user submitted drives that allows you compare your CD rips to other people's. You can anaylze offset corrections on each drive and discover how it varies from drive to drive. AccurateRip database also lists what drives have AccurateStream, cache audio data, and use C2 error pointers.
EAC and dbPowerAMP support AccurateRip.


===Ripping Modes===
===Ripping Modes===
   
   
[[EAC]] has two additional modes that can be configured. One is known as "Secure Mode" and the other is known as "Burst Mode". Secure Mode is the recommended mode to use as it goes through the pain staking process of over-anaylzing CD's that may have scratches on them and correcting any bad sectors of audio data. Burst Mode is used for CD's that either have "copy protection" on them or are extremely scratched. It's considered a last ditch effort to recover the audio data from your CD's.
[[dbPowerAMP]] and [[EAC]] have two additional modes that can be configured. One is known as "Secure Mode" and the other is known as "Burst Mode". Secure Mode is the recommended mode to use as it goes through the pain staking process of over-anaylzing CD's that may have scratches on them and correcting any bad sectors of audio data. Burst Mode is used for CD's that either have "copy protection" on them or are extremely scratched. It's considered a last ditch effort to recover the audio data from your CD's.


* Secure Mode  
* Secure Mode  
* Burst Mode
* Burst Mode
[[dbPowerAMP]] offers an additional mode, known as "Defective by Design", specifically designed to rip discs with intentional errors, such as those found on many discs with "copy protection"
* Defective by Design


==CDex==
==CDex==
Line 80: Line 97:
* Overlap  
* Overlap  
* No Verify
* No Verify
* No Sratch Detection  
* No Scratch Detection  


It is best to use '''Full, Paranoia''' mode unless otherwise specified (this is the default mode). '''Overlap''' and '''No Verify''' will just check read boundaries of a buffer and are therefore not recommended. '''No Scratch''' detection skips any error correcting and interpolation (compensation for missing gaps in the audio data) and should therefore be used on CD's that are brand new or have minimal scratches.
It is best to use '''Full, Paranoia''' mode unless otherwise specified (this is the default mode). '''Overlap''' and '''No Verify''' will just check read boundaries of a buffer and are therefore not recommended. '''No Scratch''' detection skips any error correcting and interpolation (compensation for missing gaps in the audio data) and should therefore be used on CD's that are brand new or have minimal scratches.
Line 132: Line 149:


==Rubyripper==
==Rubyripper==
Rubyripper externally uses the [[cdparanoia]] libraries in conjunction with it's own secure ripping algorithm. Rubyripper correction mechanism goes beyond that of cdparanoia. Every track gets ripped at least twice and is byte compared with the Ruby cmp feature. If any differences are found, each of the 1,000 bytes of the two files is compared. The next trial run looks to see if differing positions or a match can be found. (1,000 bytes is about 0.006 seconds).
Rubyripper externally uses the [[cdparanoia]] libraries in conjunction with its own secure ripping algorithm. Rubyripper correction mechanism goes beyond that of cdparanoia. Every track gets ripped at least twice and is byte compared with the Ruby cmp feature. If any differences are found, each of the 1,000 bytes of the two files is compared. The next trial run looks to see if differing positions or a match can be found. (1,000 bytes is about 0.006 seconds).


Rubyripper won't guarantee a constant ''MD5-sum'' on tracks that needed correction. However it will repair any files so that it's impossible to successfully blind-test with the original. The log file will report any position that needed more than 3 trials, so you can check the position yourself.
Rubyripper won't guarantee a constant ''MD5-sum'' on tracks that needed correction. However it will repair any files so that it's impossible to successfully blind-test with the original. The log file will report any position that needed more than 3 trials, so you can check the position yourself.


===Accurate Stream===  
===Accurate Stream===  
Line 153: Line 169:
Question: Does the current existing secure ripper print out a log file? <br>
Question: Does the current existing secure ripper print out a log file? <br>
Yes: Rubyripper current existing libraries do print out a log file if specified
Yes: Rubyripper current existing libraries do print out a log file if specified
=Secure Ripping Recommendations=
===Hydrogenaudio User Recommendations===
The general consensus at Hydrogenaudio is that everyone taste's are different. One Secure ripper that works for one person might not be the right match for another, depending upon the users expectations and what features their CD-ROM drives have. It best to first determine what features your CD-ROM drives have before you proceed to decide, which ripper you may be considering using (see external links below). Linux users desiring EAC or dbPowerAMP might be hard pressed to find out that that the application cannot be ported to Linux, but can be run under [http://www.winhq.com/ Wine] an abstraction layer that allows you to run Win32 applications on Linux. Linux users seeking an alternative who cannot run EAC or dbPowerAMP under Wine may want to consider [[Rubyripper]]. One of the more popular rippers at Hydrogenaudio is [[EAC]] in which there are countless guides for. The only drawback is that it nightmare to configure for a new user inexperienced with secure CD ripping. Users desiring something simpler on Windows may want to settle for [[CDex]], which is painless to configure and can provide the same secure rip's without the extra features like C2 error pointers. Some who desire a secure alternative on Mac OS/X to the ITunes Ripper may want to go with [[Max]] or [[XLD]]. Ultimately what the decision comes down to is what one's drive features and expectations are. 
 
<b>Note: Any rippers not listed on this page are not considered "secure" and are therefore not recommended by the Hydrogenaudio community (i.e example such the Itunes Ripper). It is best to proceed with caution if one decides to use these, unless they are "frontends" for instance Grip is a cdparanoia frontend for Linux or they are considered "secure", but are not as popular and aren't listed on this wiki page. </b>


==External links==  
==External links==  
Line 168: Line 176:


[[Category:Guides]]
[[Category:Guides]]
[[Category:Comparison of CD ripping techniques]]

Latest revision as of 22:46, 20 August 2017

Secure Ripping

What is Secure Ripping?

Secure ripping is the process of making sure there were no errors during the extraction of audio from a CD. It normally involves attempting to get consistent results from successive re-reads of the same sectors, and is sometimes combined with other strategies, such as

  • using the drive's own error reporting (after its own error correction fails) to know which sectors to re-read
  • defeating caches (some drives cache audio data during DAE)
  • and comparing checksums of extracted audio with those obtained by others.

The basic function of ripping software is to get the CD's table of contents (an index of track start positions), and then for each track to be ripped, it tells the CD drive to go to the beginning of each of the track's data blocks (sectors) and read them in, one at a time. On an ordinary audio CD, each block is 2352 bytes and corresponds to 1/75th of a second of sound. The software saves that incoming data into an audio file (WAV or AIFF format, usually, as those formats are almost identical to the data coming in from the drive), or the software streams the data into another audio encoder "on the fly", so the user doesn't have to convert it to another format like MP3 in a separate step.

This sounds simple, but it becomes complicated when parts of the CD can't be read accurately, for example due to scratches. And there's actually a lot of variation in whether each drive can reliably and accurately go to the spot it's told to read, and in the way it detects, reports, and handles errors, such as those caused by scratches. That is, every CD drive will give the ripping software 2352 bytes of data for each block the drive is told to read, but that data might be different each time, due to physical problems with the disc or limitations of the drive's hardware. Or the data might be the same each time, but is different when obtained from a different drive.

Ripping software that claims to have "secure ripping" will take into account the capabilities and limitations of the drive, and will make the drive read each sector multiple times. Then it will use various methods of analysis and re-reading to ensure that the data was read as correctly as possible. A bit-perfect rip may not always be possible, and so these programs will report on any errors that could not be corrected, allowing you to examine or attempt to correct the problems, such as by generating a log of suspicious positions or doing some kind of automatic "glitch removal".

The term "secure ripping" is usually used in opposition to "burst mode", which implies the drive is simply told to read a range of blocks just once, and the incoming data is accepted without any extra error detection or correction by the software. Since it doesn't involve re-reading of data (other than what the drive might always do automatically), burst mode is naturally faster than secure ripping.

Secure Ripping Comparison

Definitions

Accurate Stream

Accurate Stream is a CD drive's ability to avoid "jitter". A CD drive, when told to go to a particular point on an audio disc, will usually go to a certain number of samples ahead or behind that point, and all the data blocks it reads will be relative to that starting point. If your CD drive supports 'Accurate Stream', this offset will be a constant value, and should be the same for each particular make and model of drive. Usually the offset is not very large (around 1/250th of a second or less). Secure ripping software can take into account whether the drive has Accurate Stream, in order to know whether extra analysis needs to be done to compensate for jitter. It's still possible to do secure ripping with drives that don't have the Accurate Stream feature; it's just easier and faster when they do.

Caching

Caching is the ability of the CD-ROM drive to hold a certain amount of data in its buffer so that it can be readily available in the event that it is requested more than once. This can cause problems for ripping programs when they request the same data be extracted more than once in order to detect errors. When the drive is told to re-read something, it might just send the cached data instead of actually re-reading the disc.

In order to get around this problem, the ripping software will typically request additional data in order to flush the cache of the information it wants to re-read. FUA (force unit access) can be a more efficient method of defeating the caching of audio data, but doesn't have wide hardware support. Of the ripping software listed in the article, the only ones that use of this method are EAC and dBpoweramp.

C2 error pointers (software)

Some drives have the ability to provide additional information about the audio data that has been extracted in order to alert the ripping program when there are uncorrectable errors. This category lists whether the secure ripping software is able to request and utilizes C2 pointers from drives that provide them.

AccurateRip

AccurateRip is a database that allows you to find out if your CD rips are the same as those ripped by other people; if they were, then it's likely the rips are truly error-free. The database stores checksums for ripped tracks in order to accomplish this. The checksums are generated when ripping and can be submitted to the database through the ripping software if the user so chooses.

Windows

EAC and dBPowerAMP

EAC and dbPowerAMP both feature powerful correction mechanisms that works with your CD-ROM drive. Some of these features include AccurateStream, Caching, C2 error pointers, and AccurateRip. For a description of the Exraction techology used on each of these consult their respective wiki pages above.

Accurate Stream

Question: Do EAC and dbPowerAMP work on drives that don't have AccurateStream?
Yes: EAC and dbPowerAMP work on drives that don't have AccurateStream

Caching

Question: Do EAC and dbPowerAMP work on drives that support caching?
Yes: EAC and dbPowerAMP work on drives that support caching

C2 Error pointers

Question: Do EAC and dbPowerAMP work on drives that utilize C2 error pointers?
Yes: EAC and dbPowerAMP work on drives that support C2 error pointers

Log file

Question: Does the current existing secure ripper print out a log file?
Yes: EAC and dbPowerAMP current existing libraries do print out a log file

AccurateRip

EAC and dbPowerAMP support AccurateRip.

Ripping Modes

dbPowerAMP and EAC have two additional modes that can be configured. One is known as "Secure Mode" and the other is known as "Burst Mode". Secure Mode is the recommended mode to use as it goes through the pain staking process of over-anaylzing CD's that may have scratches on them and correcting any bad sectors of audio data. Burst Mode is used for CD's that either have "copy protection" on them or are extremely scratched. It's considered a last ditch effort to recover the audio data from your CD's.

  • Secure Mode
  • Burst Mode

dbPowerAMP offers an additional mode, known as "Defective by Design", specifically designed to rip discs with intentional errors, such as those found on many discs with "copy protection"

  • Defective by Design

CDex

CDex externally uses the cdparanoia libraries. It is a bit different than most other CD-DA extration tools. It contains few-to-no extra features ("Too many features spoil the broth"), concentrating only on the ripping process and knowing as much as possible about the hardware performing it. cdparanoia will read correct, rock-solid audio data from inexpensive drives prone to misalignment, frame jitter, and loss of streaming during atomic reads. cdparanoia will also read and repair data from CDs that have been damaged in some way using interpolation and padding sectors with silence or 0 bytes.

Accurate Stream

Question: Does cdparanoia work on drives that don't have AccurateStream?
Yes: cdparanoia works on drives that don't have AccurateStream

Caching

Question: Does cdparanoia work on drives that support caching?
Yes/No: cdparanoia works best on drives that don't support caching, although recent libraries do work on drives that support caching.

C2 error pointers

Question: Does cdparanoia work on drives that utilize C2 error pointers?
No: The current existing philosophy in CDex is that not all drives support C2 error pointers so therefore the libraries do not support C2 error pointers.

Log file

Question: Does the current existing secure ripper print out a log file?
No: CDex current existing libraries do not print out a log file


Ripping Modes

There are several modes in cdparanoia that can be controlled by the user in CDex. These modes include:

  • Full, Paranoia
  • Overlap
  • No Verify
  • No Scratch Detection

It is best to use Full, Paranoia mode unless otherwise specified (this is the default mode). Overlap and No Verify will just check read boundaries of a buffer and are therefore not recommended. No Scratch detection skips any error correcting and interpolation (compensation for missing gaps in the audio data) and should therefore be used on CD's that are brand new or have minimal scratches.

Mac OS/X

XLD

XLD (X lossless Decoder) version 20080812 uses newest cdparanoia 10.2 libraries for secure ripping and error correcting, which includes AccurateStream and caching. In addition it's the only application for Mac OS/X that utilizes AccurateRip database used by both EAC and dbPowerAMP.

Accurate Stream

Question: Does XLD work on drives that don't have AccurateStream?
Yes: XLD works on drive that don't have AccurateStream

Caching

Question: Does XLD work on drives that support caching?
Yes: XLD works on drives that support caching

C2 error pointers

Question: Does XLD work on drives that utilize C2 error pointers?
Yes: XLD does work on drives that support C2 error pointers.

Log file

Question: Does the current existing secure ripper print out a log file?
Yes: XLD current existing libraries print out a log file

AccurateRip

XLD supports AccurateRip technology utilized by both EAC and dbPowerAMP.

Max

Max externally uses the cdparanoia libraries in conjunction with it's own secure ripping algorithm. Max correction mechanism is quite similiar to Rubyripper. The algorithm uses a comparison feature in order to determine how many times Max should rip and compare sections (maximum retries). It is done on a sector-by-sector basis, rather then byte-by-byte basis. Max can additionally generate a SHA-256 checksum for each additional section in order to more accuratly determine dissimiliarities in a rip. Max differs in that it does not have a direct reliance on cdparanoia for extraction, but instead uses C2 error pointers very similiar to EAC.

Accurate Stream

Question: Does Max work on drives that don't have AccurateStream?
Yes: Max works on drives that don't have AccurateStream

Caching

Question: Does Max work on drives that support caching?
No: Max works on drives that don't support caching

C2 error pointers

Question: Does Max work on drives that utilize C2 error pointers?
Yes: Max current existing libraries support C2 error pointers

Log file

Question: Does the current existing secure ripper print out a log file?
No: Max current existing libraries do not print out a log file

Linux

Rubyripper

Rubyripper externally uses the cdparanoia libraries in conjunction with its own secure ripping algorithm. Rubyripper correction mechanism goes beyond that of cdparanoia. Every track gets ripped at least twice and is byte compared with the Ruby cmp feature. If any differences are found, each of the 1,000 bytes of the two files is compared. The next trial run looks to see if differing positions or a match can be found. (1,000 bytes is about 0.006 seconds).

Rubyripper won't guarantee a constant MD5-sum on tracks that needed correction. However it will repair any files so that it's impossible to successfully blind-test with the original. The log file will report any position that needed more than 3 trials, so you can check the position yourself.

Accurate Stream

Question: Does Rubyripper work on drives that don't have AccurateStream?
Yes: Rubyripper works on drives that don't have AccurateStream

Caching

Question: Does Rubyripper work on drives that support caching?
No: Rubyripper works best on drives that don't support caching.

C2 error pointers

Question: Does Rubyripper work on drives that utilize C2 error pointers?
No: Rubyripper and the current existing libraries do not support C2 error pointers

Log file

Question: Does the current existing secure ripper print out a log file?
Yes: Rubyripper current existing libraries do print out a log file if specified

External links