Nén âm thanh (tiếng Anh Audio Compression) là một dạng nén dữ liệu được thiết kế để làm giảm kích thước dữ liệu âm thanh. Quá trình nén thực hiện loại bỏ đi những thông tin dư thừa hay thông tin không liên quan từ tín hiệu âm thanh, do vậy có thể tiết kiệm bộ nhớ lưu trữ hoặc giảm thời gian truyền tải.
Tín hiệu âm thanh dạng sóng âm liên tục được chuyển đổi thành tín hiệu điện liên tục bằng micro. Tín hiệu điện này thường được đo bằng vôn và được gọi là tín hiệu âm thanh tương tự. Để máy tính có thể xử lý và truyền tải tín hiệu âm thanh thì tín hiệu điện liên tục phải được chuyển đổi sang tín hiệu số (cg. ADC). Các bước chuyển đổi tín hiệu tương tự sang tín hiệu số bao gồm lấy mẫu, lượng tử hóa và mã hóa. Lấy mẫu là quá trình chuyển đổi thời gian liên tục sang các giá trị rời rạc (cg. mẫu); lượng tử hóa là quá trình chuyển đổi các giá trị mẫu liên tục thành giá trị rời rạc; mã hóa là tiến trình biểu diễn các giá trị lượng tử hóa dưới dạng số (0 và 1). Hai nhiệm vụ quan trọng trong tiến trình này là xác định tốc độ lấy mẫu và tổng số bước lượng tử hóa sao cho phù hợp. Nếu tốc độ lấy mẫu và mức lượng tử hóa đủ cao thì tín hiệu âm thanh số có thể biểu diễn gần với tín hiệu âm thanh tương tự. So sánh chất lượng của tín hiệu âm thanh số với tín hiệu âm thanh tương tự ban đầu bằng độ đo tín hiệu trên tạp âm (cg. nhiễu) như sau:
SNR = 20log10(S/N)
trong đó, SNR (Signal-to-Noise Ratio) tính bằng đề-xi-ben (dB), S là biên độ tín hiệu cực đại, N là nhiễu lượng tử hóa (xt. Thu thập và biểu diễn âm thanh). Chuyển đổi tín hiệu âm thanh liên tục sang dạng số đòi hỏi tần số lấy mẫu phải thỏa mãn định lý Nyquist. Nếu tín hiệu tiếng nói có tần số từ 15Hz đến 10kHz thì tốc độ lấy mẫu tối thiểu là 20 ksps; nếu sử dụng 12 bít biểu diễn một mẫu thì tốc độ bit (bit rate) sẽ là 240 kbps. Với tín hiệu âm thanh nghe được từ 50Hz đến 20kHz và sử dụng 16bit/mẫu thì tốc độ bít sẽ là 1,28 Mbps. Thực tế, không phải tất cả các kênh truyền tin có thể hỗ trợ bit rate cao như vậy. Hơn nữa, dữ liệu âm thanh số được sinh ra sẽ rất lớn, tốn kém không gian lưu trữ. Do vậy, cần phải nén âm thanh.
Lượng tử hoá phi tuyến[sửa]
Phương pháp lượng tử hóa trong quy trình ADC là lượng tử hóa tuyến tính (c.g lượng tử hóa đều). Trong lượng tử hóa đều, bước lượng tử hóa cùng kích thước được sử dụng không quan tâm đến độ lớn biên độ tín hiệu. Tiến trình ADC sử dụng lượng tử hóa đều còn được gọi là điều chế mã xung (PCM-Pulse Code Modulation). PCM là dạng chuẩn của âm thanh số trong máy tính, đĩa Compact, điện thoại số, v.v. Tuy rằng kỹ thuật PCM đơn giản nhưng nó không hiệu quả. Lượng tử hóa tuyến tính dẫn đến SNR cao hơn ở vùng có biên độ tín hiệu cao so với vùng có biên độ tín hiệu thấp hơn, nhưng SNR tăng ở biên độ tín hiệu cao không làm tăng chất lượng âm thanh cảm nhận được vì con người nhạy cảm hơn với các thành phần biên độ thấp. Khai thác tính chất này, kích thước bước lượng tử hóa tăng theo hàm loga cùng với biên độ tín hiệu (cg. lượng tử hóa phi tuyến) được sử dụng trong việc lượng tử hóa tín hiệu tiếng nói. Lược đồ lượng tử hóa phi tuyến chọn các bước lượng tử hóa nhỏ hơn khi biên độ tín hiệu thấp và chọn bước lượng tử hóa lớn hơn khi biên độ tín hiệu cao hơn. Lượng tử hóa phi tuyến làm giảm lượng dữ liệu cần thiết để biểu diễn âm thanh số có cùng chất lượng hoặc sử dụng cùng một lượng dữ liệu để biểu diễn âm thanh chất lượng cao hơn. Vậy, lượng tử hóa phi tuyến được xem như một kỹ thuật nén dữ liệu âm thanh số. Trong thực tế, lượng tử hóa đều được áp dụng trên tín hiệu âm thanh biến đổi phi tuyến thay cho lượng tử hóa không đều trên tín hiệu tuyến tính. Ví dụ, các hàm biến đổi phi tuyến tín hiệu thoại hay được sử dụng là A-law (theo tiêu chuẩn châu Âu) và I-law (theo tiêu chuẩn Mỹ). Quá trình chuyển đổi tín hiệu tuyến tính sang tín hiệu phi tuyến là thực hiện nén, bởi vì tín hiệu tương tự được “nén” trước ADC và “giải nén” sau DAC. Với kỹ thuật nén này thì tín hiệu biểu diễn bởi 8 bit sẽ cho chất lượng tương đương tín hiệu mã hóa PCM 12 bit.
Mã hoá dự đoán[sửa]
Thay vì mã hóa giá trị của mẫu được truyền, kỹ thuật mã hóa dự đoán sẽ mã hóa sự khác biệt giữa giá trị dự đoán của mẫu đó và giá trị mẫu thực tế. Nếu sự khác biệt hoặc lỗi dự đoán này được lượng tử hóa và mã hóa thì lược đồ mã hóa dự đoán được gọi là điều chế mã hóa xung vi sai (DPCM - Differential Pulse Coded Modulation). Thông thường, sử dụng các từ mã có độ dài cố định để mã hóa các lỗi dự đoán đã lượng tử hóa. Để tái tạo lại mẫu tín hiệu tại bộ giải mã, lỗi dự đoán tương ứng được thêm vào giá trị dự đoán của mẫu đó. Lược đồ DPCM được xem như nén tín hiệu âm thanh vì thực tế là các giá trị mẫu lân cận có tương quan và lỗi dự đoán thường sẽ nhỏ hơn giá trị mẫu ban đầu. Do lỗi dự đoán có phạm vi biên độ nhỏ, nên có thể sử dụng ít bít hơn để mã hóa chúng.
Để nâng cao hiệu suất của DPCM, kỹ thuật điều chế mã xung vi sai thích nghi ADPCM (Adaptive Differential Pulse Code Modulation) được sử dụng. Kỹ thuật này xử lý cả tín hiệu thay đổi nhanh và tín hiệu thay đổi chậm, kích thước bước lượng tử hóa giữa các mẫu liền kề thay đổi tùy theo tín hiệu. Nếu dạng sóng âm thanh thay đổi nhanh chóng thì các bước lượng tử hóa lớn hơn được sử dụng và ngược lại.
Kỹ thuật nén MPEG-Audio[sửa]
Các kỹ thuật nén trên đây được áp dụng với tín hiệu tiếng nói (băng thông trong khoảng từ 3,4 KHz đến 7 KHz). Một âm thanh nói chung mà con người có thể nghe thấy có băng thông đến 20 KHz.
Thực tế chỉ ra rằng một âm thanh có thể làm cho không thể nghe thấy âm thanh khác, hoặc một âm thanh có thể thay đổi âm lượng của âm thanh khác. Hiện tượng này được gọi là mặt nạ (masking). Mặt nạ của âm thanh có thể là toàn bộ hoặc một phần. Một phần của một âm thanh này có thể che lấp một phần âm thanh khác. Ví dụ, khi bản nhạc phát ra với âm lượng lớn thì ta không thể nghe thấy những âm thanh nhỏ hơn khác xung quanh mình. Vì các âm thanh bị che lấp là không nghe thấy cho nên ta có thể loại bỏ đi mà không ảnh hưởng đến chất lượng âm thanh. Đó là chiến lược nén âm thanh được sử dụng trong tiêu chuẩn quốc tế MPEG-Audio. Không giống như nhiều bộ mã hóa khác được sử dụng riêng cho tín hiệu giọng nói, bộ mã hóa MPEG-Audio nén âm thanh mà không đưa ra các giả định về bản chất của nguồn âm thanh mà nó sẽ khai thác những hạn chế về nhận thức của hệ thống thính giác của con người. Âm thanh nén là đã loại bỏ các phần không liên quan đến tín hiệu, do vậy không gây ra các biến dạng âm thanh. MPEG-Audio có thể nén bất kỳ tín hiệu nào có thể nghe được bằng tai người. Tùy thuộc vào tốc độ lấy mẫu âm thanh, MPEG-Audio Có tỷ lệ nén trong khoảng từ 2,7 đến 24. MPEG-Audio có ba lược đồ nén âm thanh, đó là MPEG-Audio lớp 1 (layer 1), lớp 2 và lớp 3. MPEG-Audio lớp 3 có độ phức tạp lớn nhất nhưng cũng có tỷ lệ nén cao nhất.
Năm 1938, kỹ sư người Anh tên là Alec Reeves đã nhận bằng sáng chế của Pháp về lý thuyết mã hóa PCM (chưa có kết quả ứng dụng) để truyền tải tiếng nói khi làm việc cho International Telephone and Telegraph.
National Inventors Hall of Fame (Mỹ) đã vinh danh Bernard M. Oliver và Claude Shannon như những người phát minh ra PCM, họ đã nhận được các bằng sáng chế của Mỹ vào các năm 1946, 1952 và 1956.
Năm 1973, các kỹ sư người Mỹ P. Cummiskey, Nikil Jayant và James L. Flanagan đã phát triển kỹ thuật ADPCM.
Năm 1967, máy ghi âm số đầu tiên sử dụng kỹ thuật PCM được phát triển tại NHK (Nhật).
Năm 1970, điện thoại số đầu tiên sử dụng kỹ thuật PCM. Hodges and W. C. Black phát triển chuẩn công nghiệp cho điện thoại số vào năm 1980.
Hiệp hội truyền thông quốc tế - Phân ban truyền thông ITU-TS (The International Telecommunication Union-Telecommunications Sector) đã khuyến cáo nhiều lược đồ nén tiếng nói trên cơ sở các kỹ thuật PCM, DPCM và ADPCM, bao gồm G.711 (vd. sử dụng trong phần mềm Ekiga, FFmpeg và Asterisk), G.711.1 (vd. sử dụng trong VOIP), G.721, G.722 (vd. sử dụng trong phần mềm QuickTime và RealPlayer) và G.723. Lược đồ G.722 sử dụng kỹ thuật ADPCM băng con (subband), trong đó tín hiệu tiếng nói được chia làm hai băng thông con (băng thông tần số cao và băng thông tần số thấp) trước khi áp dụng kỹ thuật ADPCM cho chúng. Tín hiệu băng thông với tần số thấp quan trọng hơn nên nó được mã hóa với độ chính xác cao hơn. ITU-TS còn đề xuất lược đồ mã hóa tiếng nói G.728 trên cơ sở kỹ thuật nén lượng tử hóa véc tơ. Nguyên lý của kỹ thuật nén này tương tự như nén LZW (xt. Nén văn bản).
Nén âm thanh còn được hiểu là nén dải động âm thanh hay nén mức âm thanh, trong đó làm giảm âm lượng âm thanh lớn và khuếch đại tín hiệu im lặng của sóng âm thanh để làm giảm sự khác biệt giữa chúng.
Mã hóa âm thanh có thể được chia thành hai loại: không tổn hao và tổn hao. Mã hóa âm thanh không tổn hao dựa trên mô hình thống kê về biên độ tín hiệu và mã hóa tín hiệu âm thanh. Việc tái tạo tín hiệu âm thanh ở bên thu để tổng hợp lại các biên độ của tín hiệu âm thanh gốc. Các khuôn mẫu tệp WAV (Waveform Audio Format) và AIFF (Audio Interchange File Format) là ví dụ của loại mã hóa này. Mặt khác, mã hóa âm thanh tổn hao sử dụng mô hình nhận thức âm thanh của con người để định lượng và mã hóa tín hiệu âm thanh. Trong trường hợp này, chỉ các phần tín hiệu liên quan đến âm thanh được mã hóa và tái tạo tại bên thu. Các mẫu của tín hiệu âm thanh gốc không được tái tạo chính xác. Các tệp với khuôn mẫu AAC (Advanced Audio Coding) và MP3 là ví dụ loại nén này. Mục tiêu của cả hai phương pháp mã hóa âm thanh là nén dữ liệu để truyền hoặc lưu trữ hiệu quả hơn so với tín hiệu PCM ban đầu.
Tài liệu tham khảo[sửa]
- Andreas Spanias, Ted Painter, Venkatraman Atti, Audio Signal Processing and Coding, John Wiley & Sons, Inc., 2007
- Guojun Lu, Multimedia Database Management Systems, Artech House, 1999
- John Watkinson, Compression in Video and Audio, Focal Press, 1997
- Udo Zölzer, Digital Audio Signal Processing, John Wiley & Sons Ltd., 2008