Friday, February 21, 2014

Các định dạng cho file âm thanh

Để tìm hiểu về cách biểu diễn âm thành âm thanh trong máy tính (âm thanh số), trước hết ta phải hiểu mô hình chuyển âm thanh từ dạng tương tự sang dạng số - mô hình PCM (Pulse code modulation).

mô hình PCM - nguồn internet
Dữ liệu trong tự nhiên (âm thanh, hình ảnh) là kiểu tương tự (hàm giá trị làm liên tục theo thời gian). Chúng ta không thể biểu diễn trực tiếp giá trị đó vào máy tính được do sự giới hạn về không gian bộ nhớ.

Trước hết dữ liệu sẽ được rời rạc hóa theo miền thời gian, cứ cách một khoảng thời gian T chúng ta lại lấy một giá trị của tín hiệu, số lượng mẫu lấy trong một giây sẽ là 1/T được gọi là sample rate - tần số lấy mẫu.

Sau khi lấy mẫu, chúng ta thu được một chuỗi giá trị của tín hiệu, để biểu diễn chuỗi này vào trong máy tính ta sẽ mã hóa bằng một số lượng bit nhất định, số lượng bit được dùng để mã hóa được gọi là bit depth.

Theo Nyquist và Shannon thì giữa tần số lẫy mẫu và bit depth có mỗi quan hệ mật thiết với nhau để cho tín hiệu thu được gần giống với tín hiệu ban đầu.

Nyquist ngày xưa làm việc cho graham bell lab trong quá trình chế tạo điện thoại nên phải nghiên cứu về truyền dẫn thông tin, sau này shannon dựa trên đấy mở rộng ra nên còn được gọi là nyquist-shannon. Lý thuyết đó chỉ đơn giản để tái tạo hoàn thiện 1 tín hiệu analogue thì sampling rate phải = ít nhất 2x frequency của tín hiệu đó. tai người nghe dc tối đa 20khz, tức là 20k lần rung giao động của không khí trong 1 giây, mà sau đó được biểu diễn dưới đồ thị sine với biên độ = voltage thì số lần lấy mẫu của cái đồ thị đó phải ít nhất 2 lần mới có thể tái tạo hoàn hảo lại cái sóng sine đó i.e. min 40khz.
Tuy nhiên thường ta chọn tần số lấy mẫu là  là 44.1khz thay vì chính xác 40khz vì trước khi dc lấy mẫu tín hiệu phải bị cắt đi đoạn <20hz và >20khz = phân tần (filter/crossover). ai có build crossover thì biết với 1st order roll off chỉ là 6db/octave. nói nôm na là khi bị cắt tín hiệu sẽ nhỏ dần chứ ko phải là cụt ngay ở cut off frequency (20hz và 20khz). muốn tăng độ roll off thì cái filter phải phức tạp -> tăng chi phí sản xuất tuy nhiên điều bắt buộc là từ 20hz-20khz sau khi qua phải được bảo toàn y chang như tín hiệu gốc, mà để giảm giá thành filter thường dc làm đơn giản nhất có thể => sampling rate phải tăng lên thành 44.1khz chứ ko còn là 40khz nữa.

Theo chuẩn thu âm quốc tế thì sample rate /bit depth cân đối phải là 44100Hz/24bit, đĩa CD thu âm ở 44100Hz/16bit.




Bit rate (Bit per second) là tốc độ truyền dữ liệu nhỏ nhất để cho file âm thanh (thường đo bằng kbps (kilo bit per second))

Với các loại mã hóa dùng CBR (Constant Bit Rate - số bit mã hóa là cố định) thì ta có thể tính được Bit rate, ví dụ như CD: 44.1kHz, 16-bit, 2 channel thì bitrate là 44100 * 16 * 2 = 1411200 bps ~ 1.35Mbps.

Như vậy âm thanh chất lượng càng cao thì băng thông mạng phải càng lớn mới có thể chuyển tải được dữ liệu.
  • 128kbps: Lúc này trong khoảng từ 0-128kbps này, chúng ta phải mã hóa hết được những gì mà chúng ta thu vào: Tiếng trống, guitar, tiếng vocal... và bởi vì khá chật hẹp nên chúng ta không thể mã hóa hết được. Các bản thu 128kbps do vậy không đạt được độ chi tiết cần thiết.
  • Nếu chúng ta chọn càng cao (tất nhiên càng tốn dung lượng), ví dụ: 1411kbps (1000 kilobit trên 1 giây) thì càng có nhiều thông tin được mã hóa hơn. Và do vậy bản thu chi tiết hơn, trung thực hơn.
Bitrate có thể nói lên được rằng âm thanh được mô tả trung thực đến đâu. (Càng cao càng trung thực. Với một bản nhạc cố định thì bit rate càng cao bao nhiêu thì âm thanh càng gần với thực tế phòng thu bấy nhiêu).

1. Các định dạng file âm thanh

File âm thanh khi lưu trữ sẽ được nén, có 2 loại thuật toán nén là nén có mất mát thông tin (lossy) và nén không mất mát thông tin (lossless)

  • Lossy: Loại lưu trữ này có đánh mất thông tin trong quá trình lưu trữ: Nếu nhạc chất lượng càng thấp, thì lượng thông tin bị đánh mất càng nhiều; tai thường cũng nhận ra. Nếu nhạc chất lượng càng cao thì lượng thông tin bị đánh mất càng ít, loại này tai dơi và thiết bị xịn mới phân biệt được.
    Những định dạng lossy phổ biến: mp3 ( MPEG-1 Audio Layer 3), m4a (advance Audio Coding), wma.
  • Lossless: đây là cách lưu trữ lại gần với âm thanh gốc nhất. Tại sao lại là "gần như tất cả" mà không phải là "tất cả"? ==> Những định dạng nhạc được coi là "lossless - Không mất thông tin" phải có tần số lấy mẫu gấp đôi ngưỡng nghe của người: >= 20kHz x 2 = 40kHz. Vậy nên tần số lấy mẫu ở các file lossless thường gặp là 44100Hz, 48kHz, 96kHz, 192kHz, 384kHz.
    Những định dạng lossless phổ biến: WAV (Windows Wave, audio file format for IBM-compatible personal computers), AIFF, FLAC (Free Lossless Audio Codec), ALAC (Apple Lossless Audio Codec).
2. Kỹ thuật phân tích phổ - Spectrum Analyzer

Để đánh giá chất lượng của một bản thu âm ta có thể dùng kỹ thuật phân tích phổ để xem bản lưu trữ có còn như bản gốc hay không. Có rất nhiều phần mềm chuyên nghiệp để phân tích phổ như Adobe Audition, hoặc đơn giản như Spek.

File nhạc làm mẫu nên có ở định dạng WAV. Định dạng này được các Audiophile coi là định dạng chuẩn mực nhất dành cho lossless. Điều này không cần phải bàn cãi. (Tuy nhiên dung lượng cao, không tags, đó là lý do mà flac, alac... ra đời).

Mẫu được chọn là bài Baby can I hold you - Marianna Leporace.wav, có tại link:
http://www.mediafire.com/?2idql3yhb1mg9w2

Phần mềm chuẩn mực dùng để convert các định dạng nhạc là dbPowerAmp. Các bạn có thể tìm hiểu tại: http://www.dbpoweramp.com/

Phổ của file gốc WAV 30,632KB

Phổ khi convert wav--> Flac 19,427KB

Phổ khi convert wav-->m4a (alac) 19,672KB
Chúng ta có thể thấy phổ của chúng là như nhau. Và giới kỹ thuật lẫn Audiophile từ lâu cũng đã công nhận là Lossless thì định dạng nào cũng được. Nhưng do WAV không hỗ trợ tags và dung lượng nặng hơn nhiều, nên bạn có thể chọn FLAC, ALAC.

Phổ khi convert wav-->mp3 (lame128) 2,725KB:
Bị cắt ở tầm 16kHz và cut-off hẳn ở tầm 17kHz

Phổ khi convert wav-->mp3 (lame256kbps) 5,474KB
Bị cắt ở tầm 19kHz và cut-off hẳn ở tầm 19.5kHz. Bởi vậy định dạng 256kbps vẫn phổ biến

Phổ khi convert wav-->mp3 (lame320) 6,835KB
Bị cut-off  ở 20kHz! Vừa với ngưỡng nghe của người, do vậy ngưỡng này là đủ tốt (cân bằng giữa chất lượng và dung lượng)

Phổ khi convert wav-->m4a (AAC256) 5,518KB:
Kém hơn cả mp3 256kbps
(Tuy nhiên khi dùng bộ convert của iTunes - của Apple)

Phổ khi convert wav-->m4a (AAC256 with iTunes encode) 5,964KB
Chất lượng gần như mp3 320Kbps

Vậy:
  • Nhạc lossless thì nên dùng flac hoặc alac
  • còn Lossy thì nên dùng m4a (nhưng dùng tool convert của Apple)


Tham khảo: http://vozforums.com/showthread.php?p=49796889

No comments:

Post a Comment