previous - next - up - title - contents - index

4.13.4 Notes and examples to the error correction

Error correction can be expensive, even if it does not get active at all. If c2errs is set to a value below 2.352, the server also reads information about the errors received from the drive for each block. Thus the data are no longer kept coherently in the buffer; they must be copied once more on their way to the client. With a single CD this does not matter too much, but if a large installation reads 32 CDs at the same time with a speed rate of 32x, it results in copying an additional 150 MB in the memory per second. If the error correction gets active, the server needs to read a block more than once with lower speed rates. This results in a drastic reduction in throughput, which might even fall below the data rate of 72 blocks per second, which is necessary for listening to audio tracks in real time.
When good quality is important it is enough to set c2errs to 0 and ignore all the other parameters. If necessary, the server reads the same blocks a couple of times, which can be quite time-consuming for bad audio CDs. Therefore, this setting will not be suitable for listening to music in real time. With higher values of c2errs, e. g. 100, the server accepts moderately bad blocks, with not as much time spent on corrections. For very bad CDs this can also last a long time. She who wants to listen to CDs in real time, and not doing without error correction, can set the minimum speed rate c2mins to 2 (4x speed) and the number of repetitions (c2loop) to 1. This allows for listening to CDs in real time in most cases.
To check the quality of a CD in the log file, c2logm should be set to 1. Then each block, which has more than c2loge errors in the first attempt, will cause a line in the log file. To check the quality of the result, c2logm should be set to 0x100. This causes the server to log, if even the last attempt to read a block in the required quality failed. In this case c2loge should be set to the same value as c2errs. To find out exactly how the drive behaves at different speed rates, c2logm should be set to 0xffffffff and c2logs should be set to 1.
The lowest speed rate does not always supply the best data. Often a drive at speed level 1 (2x) supplies better data than with level 0 (1x). Therefore the default value for c2mins is 1, not 0.


previous - next - up - title - contents - index