Vì sao bắt buộc dùng EAC (Exact Audio Copy) hoặc dBpoweramp để rip CD nhạc gốc

Uchiha_Madara

Nghỉ hưu
Đầu tiên, ta phải đi từ các khái niệm tin học cơ bản như sau.
- CRC là gì ?
Nó là 1 loại hàm băm, người ta dùng để dò lỗi khi dữ liệu được truyền hay lưu vào thiết bị lưu trữ.
Giá trị của CRC sẽ được tính toán và đính kèm vào dữ liệu trước khi dữ liệu được truyền đi hay lưu trữ.
Khi dữ liệu được sử dụng, nó sẽ được kiểm thử bằng cách sinh ra mã CRC và so khớp với mã CRC trong dữ liệu.
CRC rất phổ biến vì nó dễ dàng phân tích và rất phù hợp để dò các lỗi gây ra bởi nhiễu trong khi truyền dữ liệu.
Tất cả các phần mềm nén file hay giải nén (không mất dữ liệu) như WINZIP/WINRAR hay 7Z đều dùng CRC để dò lỗi và tham chiếu.

* Vậy, ta cứ hiểu đại khái là mỗi 1 file chỉ có 1 mã CRC duy nhất, và người ta kiểm tra mã CRC đó để biết file được copy ra có bị sai sót gì hay không. Nếu khớp với file gốc thì là 1:1, nếu kiểm tra ra mã CRC khác file gốc thì là file bị lỗi, không còn toàn vẹn nữa.
- Accuraterip là gì ?
Nó là 1 mạng lưới, 1 hệ thống cơ sở dữ liệu cực khủng, lưu trữ dữ liệu tham chiếu từ hàng triệu bản rip của nhiều đĩa CD trên toàn thế giới.
Cơ sở dữ liệu (database) này được xây dựng bởi người dùng đưa lên thông qua các phần mềm rip file chuyên nghiệp có hỗ trợ Accuraterip (như EAC hay dBpoweramp)

- Vậy cơ sở dữ liệu AccurateRip được tạo ra như nào?
Mỗi 1 lần rip xong, khi đó mỗi file được extract từ đĩa CD sẽ có 1 mã CRC duy nhất và một Disc ID (tạm hiểu là 1 dãy số nhận dạng cho CD).
Khi hoàn tất, phần mềm rip file như EAC sẽ tạo ra 1 file log, trong đó lưu tất cả những thông tin của bản rip, từ các lỗi hay chất lượng của bản rip, mã CRC của file đến các cài đặt, thiết lập, hay cấu hình, tên của các loại thiết bị dùng để rip ra file đó.
Phần mềm rip có hỗ trợ Accuraterip sẽ tự động upload file log đó, hoặc do người dùng họ chủ động upload lên máy chủ của Accuraterip để lưu trữ, dùng vào việc tham chiếu cho các bản rip sau.
Theo thời gian, mỗi lần rip như vậy sẽ làm cơ sở dữ liệu của Accuraterip nhiều hơn, đầy đủ hơn, chính xác hơn.

- Cơ chế làm việc của Accuraterip ra sao ?
Đầu tiên, khi cho đĩa CD vào, phần mềm rip file nó sẽ tính toán các track được ghi trên đĩa để cho ra các mã CRC, mỗi track có 1 CRC riêng biệt.
Sau đó nó sẽ so sánh Disc ID đó và các mã CRC với kết quả từ server trả về, nếu khớp nó sẽ báo trước đĩa đó có trên cơ sở dữ liệu Accuraterip. Nếu không nó sẽ không hiển thị biểu tượng AccurateRip.
Lúc ta rip thì phần mềm sẽ extract các file LPCM được khi trên đĩa CD và đóng gói lại thành WAV/AIFF/FLAC/ALAC để máy tính có thể chơi đc thay vì để nguyên LPCM như trên CD.

Mỗi một file được đóng gói đều có mã CRC riêng biệt, thế nhưng mỗi định dạng đóng gói file (container format) lại có các thuộc tính riêng, VD như có thể có tag, có ảnh cover, có thông tin ca sĩ, lời bài hát,...v.v.
Khi các phần mềm này tính toán CRC, nó bắt buộc phải loại bỏ tất cả các thuộc tính từ các định dạng đóng gói trên, nó chỉ tính toàn CRC cho cái core LPCM, tức cái nhân audio của file, tạm hiểu là phần "kêu ra tiếng" của file.
Tất nhiên nếu cái CRC được tính toán ra khớp với CRC trả về từ server của AccurateRip thì nó sẽ báo luôn trong file log của mỗi bản rip.

Accuraterip làm việc bằng cách so sánh đối chiếu từ hàng triệu bản rip khác nhau trên mạng lưới của họ, theo logic sau:
Nếu CD rip chuẩn, chính xác, không lỗi lầm gì thì 100 cái như 1, tức kết quả trả về là như nhau.
(vì CD họ sx công nghiệp theo lô, phôi đĩa khi xuất xưởng thì 100 cái như 1, nếu lỗi thì tất cả đều lỗi, nếu chuẩn thì tất cả đều chuẩn. Xác suất lỗi trên các lô CD xuất xưởng là cực kì thấp)

Ngược lại, nếu rip lỗi thì không có sai sót nào giống sai sót nào. Không có lỗi nào giống lỗi nào. Bởi vì đĩa CD nếu hư hỏng hay có lỗi lầm gì đa số đều do người dùng tác động, VÍ DỤ đĩa xước, trầy, gãy, hỏng do ngoại cảnh, đọc lỗi do mắt ổ quang bị kém, ...v..v.

Có rất nhiều trường hợp dẫn đến lỗi trên các CD tác động đến kết quả của những bản rip, vậy nên gần như không thể có các lỗi giống nhau và cũng gần như không thể có CRC giống y chang nhau nếu rip bị lỗi.

Accuraterip chỉ thu nhận các kết quả tham chiếu trong trường hợp mỗi bản rip phải dùng thiết bị khác nhau, nghĩa là dù người A rip CD đó 1000 lần trên thiết bị B cũng chỉ được tính là 1 lần. Và khi có 1 người khác dùng thiết bị khác rip cùng 1 CD như người A mà ra kết quả như nhau thì mới được tính là 1 lần tham chiếu thành công. Tức 2 ông rip cùng 1 CD trên 2 hệ thống thiết bị khác nhau nhưng ra cùng 1 kết quả mới được tính là 1 lần tham chiếu ok.

- Các trường hợp có thể xảy ra khi tham chiếu AccurateRip:
Nếu không thể xác minh bản rip, tức không có Accuraterip thì:
Có thể bản rip này từ 1 đĩa CD mà chưa bao giờ được rip và upload lên cơ sở dữ liệu của AccurateRip.
Có thể bản rip này từ 1 CD fake, tất nhiên là file không toàn vẹn nên không thể tham chiếu với Accuraterip và cũng đương nhiên là CD này chưa bao giờ có mặt trên Accuraterip.
Có thể bản rip này từ 1 CD xịn, nhưng rip lỗi do các yếu tố đã nêu ở trên tác động vào phôi đĩa khiến mắt đọc của ổ quang không còn chính xác nữa, file thu được bị sai lệch hoàn toàn so với CD gốc nên cũng không thể tham chiếu CRC với accuraterip.

- Vì sao ta nên xài EAC hoặc dBpoweramp để rip CD thay vì các phần mềm phổ thông?
Đơn giản là các phần mềm chuyên nghiệp này không sử dụng cơ chế tự động nội suy.
VÍ DỤ: Bình thường, các phần mềm có cơ chế nội suy để tự bù trừ các dữ liệu bị mất trong quá trình đọc file.
10100101___01010101, nếu khi bị lỗi, tức khoảng trống __ sẽ được các phần mềm phổ thông dự đoán dựa trên các thuật toán phân tích và tự bù các dữ liệu vào chỗ trống, đôi khi nó làm vậy kết quả đúng, nhưng đa số là sai. Vậy nên không được toàn vẹn dữ liệu trong trường hợp này.

Còn EAC/dBpoweramp nó dùng cơ chế "Error Corection" để rip, có nghĩa là không tự bù trừ dữ liệu như cách trên mà nó lại đọc đi đọc lại các frames, các sectors trên CD để có thể lấy được chính xác những dữ liệu bị mất trong quá trình đọc.
Nếu nó đọc mãi mà không thể lấy được dữ liệu khớp với kết quả CRC tham chiếu từ CD thì nó sẽ đánh dấu vào log là bản rip bị lỗi.

EAC có cơ chế đọc file an toàn bằng cách đọc thật chậm (khoảng 1-6X), để giảm thiểu sai lệch. Khi rip đến đâu phát hiện bị lỗi từ các frames/sector nó sẽ tự giảm tốc độ xuống rất chậm để đọc thật kĩ các chỗ đó, đọc đến lúc nó không thể đọc đc nữa sẽ tự động báo lỗi file.

dBpoweramp lại có cơ chế đọc khác 1 tẹo, nó sẽ đọc lần đầu tiên khá nhanh. VÍ DỤ 10X, ngay khi lần 1 đọc xong nếu tham chiếu được CRC với Accuraterip trả về từ server nó sẽ báo OK luôn và ngừng rip lại. Nếu không khớp Accuraterip nó sẽ rip lại tối thiểu là 4 lần nữa, mỗi lần đều đọc đĩa với tốc độ nhanh-chậm khác nhau rồi lại so sánh với Accuraterip, nếu vẫn không khớp nó sẽ bắt đầu đọc lại các frames/sectors bị lỗi với tốc độ rất chậm, khoảng trên dưới 1X. Tất nhiên là nếu không đọc được chính xác nó cũng báo lỗi như EAC.

Đó là toàn bộ cơ chế cũng như cách thức vận hành của các phần mềm rip CD chuyên nghiệp và công nghệ Accuraterip.
Cũng do những đặc điểm này mà các cộng đồng Audiophile lớn trên toàn thế giới họ đều bắt buộc các bản rip phải xài EAC, do nó miễn phí nhưng hoạt động cực kì tốt, tính năng chuyên sâu, mạnh mẽ.

Còn dBpoweramp lại là phần mềm trả phí, giá khá cao. Trên thực tế thì người viết ra phần mềm dBpoweramp lại dựa trên EAC để xây dựng lên dBpoweramp và cơ sở dữ liệu tham chiếu AccurateRip.

Bài viết của anh Tùng Nguyễn
 
Bên trên