CD Data Sectors
To understand what ECM does and how it works, you must first understand the sectors in a CD and what they're made of.
A typical data CD consists of thousands of 2352-byte sectors. Each sector looks like this (drawings not to scale):
Only 2048 bytes in each sector are used for actual data. The rest are:
- Sync - A special code used by the drive to tell where the sector begins
- Address - This tells the drive which sector it's looking at
- EDC - Error Detection Code, used to detect if the data is corrupt
- ECC - Error Correction Code, used to correct the data if it is corrupt
When you create BIN/CUE files from a data CD, the BIN contains all of this data - all 2352 bytes from each sector.
The light-colored areas in the diagram (sync, address, data) are usually easy to compress. However, the dark areas (EDC, ECC) look like noise, and are nearly impossible to compress with conventional tools such as WinRAR
. When you compress a BIN file in WinRAR
, each sector ends up looking something like this:
Sync, address, and data compress okay, but EDC and ECC just sit there like bricks taking up space. And they usually don't even need to be there!
Filtering Sectors Through ECM First
ECM selectively strips the sync, EDC and ECC codes from each sector, whenever possible. Once a BIN file has been run through ECM, the resulting sectors look like this:
That process, in itself, doesn't reduce the BIN size very much. But notice how the only parts left are the light-colored (easy to compress) parts! Now, when you run the ECM file through WinRAR
, you'll get much better results than before:
But wait a minute, don't I need those ECC codes? Doesn't that make it less reliable?
You get the EDC/ECC codes back when you convert from ECM back to BIN (which is required before burning - you can't currently burn a ECM file directly).
When you're archiving or transmitting files in a format such as RAR, you already have error detection built in. WinRAR
doesn't particularly care about the CD sector EDC/ECC codes, and just handles BIN files like any other file.
So no, you're not losing any reliability by converting BIN files to ECM, as long as you make sure to convert them back before burning.
What about copy protection? Don't they use bogus ECC data? Wouldn't ECM ruin that?
ECM only eliminates EDC/ECC data for sectors where it's verifiably possible to recreate that data. If the ECC is bogus, ECM will preserve that bogus data.
You won't lose any data by converting a file to ECM and back again. The process is completely lossless.