Quá trình mã hóa MP3

Một phần của tài liệu Thiết kế và thực hiện chương trình đọc file âm thanh định dạng MP3 (Trang 41 - 48)

I. MÃ HÓA MP3 (MP3 ENCODING)

I.2.Quá trình mã hóa MP3

Hình 11:Sơđồ khối quá trình mã hóa MP3

Tín hiệu đầu vào bộ mã hóa là tín hiệu âm thanh không nén mã hóa PCM được phân chia thành các khung có 1152 mẫu. Khung này được chia làm hai “grannule”, mỗi “grannule”có 576 mẫu. Khung được gởi đến cả hai khối biến đổi Fourier nhanh (FFT) và dải lọc phân tích.

Dải lọc băng phân tích phân chia và sắp xếp 576 mẫu đầu vào thành 32 dải tần số khác nhau. Song song với quá trình này, khối biến đổi Fourier nhanh FFT biến

đổi các mẫu đầu vào sang dạng phổ tần số. Mô hình cảm nhận âm học sử dụng các thông tin về tần số từ khối biến đối FFT để bỏđi các thông tin không liên quan đến mô hình cảm nhận của tai người và quyết định ngưỡng mặt nạ cho tất cả các tần số. Sau đó, quá trình làm giảm hiệu ứng Alias được thực hiện để bù lại sự không lý tưởng của các bộ lọc băng con. Khối biến đổi cosin rời rạc (MDCT) chuyển đổi 32 băng con từ miền thời gian sang miền tần số. Bộ lượng tử hóa sử dụng ngưỡng che

để quyết định số lượng bit cần thiết để mã hóa cho mỗi mẫu. Tiếp theo, khối mã Huffman thực hiện việc nén dữ liệu. Các thông tin về quá trình mã hóa dữ liệu không bị nén và được lưu lại trong phần thông tin, đây là phần rất quan trọng khi giải mã dòng dữ liệu MP3. Dữ liệu đã được mã hóa Huffman, các hệ số tỷ lệ và phần thông tin được kết hợp và đưa vào trong dòng dữ liệu bit.

Dải lọc băng phân tích Biến đổi Cosin rời rạc MDCT Lượng tử hóa và các hệ số tỷ lệ Mã hóa Huffman Biến đổi Fourier FFT Ngưỡng che Mã hóa phần thông tin M U X Tín hiệu đầu ra Tín hiệu đầu vào PCM

Lun văn thc s Trn Th Bích Hng

1. Dải lọc phân tích (Analysis Filterbank)

Dải lọc băng con phân tích về cơ bản là một bộ lọc đa pha. Nó được thiết lập là các bộ lọc băng bao gồm toàn bộ dải tần số âm thanh. Dải lọc băng con phân tích

được sử dụng để phân chia tín hiệu PCM đầu vào với tần số lấy mẫu fs thành các băng con. Kết quả sẽ là 32 băng con cách đều nhau với tần số lấy mẫu fs/32.

Dải lọc phân tích chia 576 mẫu của “grannule”vào 32 băng con bằng nhau. Nghĩa là, có 18 mẫu/1băng thông với tổng số 32 băng thông, đưa ra tổng cộng là 576 mẫu. Dải lọc phân tích sẽ sắp xếp các tần số trong 32 băng thông.

2. Khối phân tích phép biến đổi Fourier nhanh (FFT analysis)

Song song với quá trình trên, tín hiệu PCM đầu vào đi qua khối phân tích biến

đổi Fourier nhanh FFT. Bộ phân tích FFT dịch mẫu đầu vào thành phổ tần số. Chuyển 576 mẫu đến miền tần số sử dụng phép biến đổi Fourier.

Khối FFT bù lại quang phổở tần số thấp bị thiếu do khối lọc băng con sinh ra. Kỹ thuật này cung cấp cả độ phân giải thời gian đầy đủ cho tín hiệu âm thanh đã

được mã hóa (bộ lọc đa pha với cửa sổ đã được tối ưu hóa để tối thiểu hiện tượng tiền tạo vang) và độ phân giải quang phổđầy đủ cho quá trình tính toán các ngưỡng che.

3. Ngưỡng che (Masking Threshold)

Thông tin tần số từ khối phân tích biến đổi Fourier nhanh FFT được sử dụng để

liên kết mô hình cảm nhận để xác định ngưỡng che cho tất cả các tần số.

Tại đây, việc xác định và tính toán các tần số và độ méo Alias được thực hiện.

Điều này là cần thiết để tính tốc độ bit tối thiểu cho các băng con, qua đó cho biết số

lượng bit cần thiết để bỏđi các thành phần méo Alias khi giải mã.

Việc phân bổ số bit trong 32 băng con được tính toán trên cơ sở tỷ số tín hiệu trên ngưỡng che của tất cả các băng con. Tỷ số SMR xác định mức tín hiệu tối đa và ngưỡng che tối thiểu cho mỗi băng con. Tỷ số tín hiệu trên ngưỡng che sẽ được tính toán theo các bước sau:

•Tính toán quá trình chuyển đổi từ thời gian sang tần số của FFT.

Lun văn thc s Trn Th Bích Hng

•Xác định ngưỡng lặng (ngưỡng tuyệt đối).

•Tìm kiếm các các thành phần âm (giống như hình sin) và không âm (giống như tạp âm) của tín hiệu âm thanh.

•Xác định các điểm che.

•Xác định ngưỡng che từng phần.

•Xác định ngưỡng che toàn bộ.

•Tính toán của các ngưỡng che nhỏ nhất trong mỗi băng.

•Tính toán tỷ số SMR trong mỗi băng con.

Ngưỡng che được áp dụng vào bộ lượng tử hóa để xác định số bit cần thiết mã hóa cho mỗi mẫu. Chúng thường xem xét liệu sự chuyển đổi cửa sổ có cần thiết trong khối biến đổi cosin rời rạc (MDCT).

4. Biến đổi Cosin rời rạc (MDCT) với cửa sổđộng

Sau dải lọc phân tích, 32 băng con được đưa tới khối biến đổi cosin rời rạc MDCT. MDCT thực hiện lấy mẫu các băng con nhằm đạt độ phân giải tốt hơn trong miền tần số, lấy 18 mẫu đối với khối dài, lấy 6 mẫu đối với khối ngắn. Chiều dài của khối ngắn bằng 1/3 khối dài. Trong chế độ khối ngắn, 3 khối ngắn thay thế 1 khối dài, số dòng MDCT còn lại không đổi Do có sự chồng cửa sổ lên nhau 50%, nên kích thước cửa sổ là 36 mẫu cho khối dài và 12 mẫu cho khối ngắn. Khối ngắn cải thiện độ phân giải thời gian tốt hơn để dùng cho các tín hiệu chuyển tiếp và làm nhỏ tiếng vang lại. Khối dài cho phép độ phân giải tần số tốt hơn. Lớp 3 có 3 chếđộ

chọn khối : 2 chếđộ khi tất cả các lối ra của băng lọc đều qua được biến đổi MDCT, và 1 chế độ hỗn hợp khi 2 băng tần thấp sử dụng khối dài và 30 băng tần cao sử

dụng khối ngắn. Chế độ hỗn hợp cung cấp độ phân giải tần số tốt hơn cho tần số

thấp hơn trong khi duy trì độ phân giải thời gian cao hơn.

5. Chia tỉ lệ và lượng tử hóa (Scaling và Quantization)

Tín hiệu âm thanh sau khi được chuyển từ miền thời gian sang miền tần số, chia thành các băng nhỏ, qua phân tích ngưỡng che, thì các tần số âm thanh được tính toán sao cho phù hợp với mô hình cảm nhận âm học của tai người. Bộ chia tỉ lệ

Lun văn thc s Trn Th Bích Hng

lượng tử hóa dựa trên các kết quả để tính toán hệ số tỷ lệ và số bit cần thiết trong mỗi băng tới hạn để thực hiện việc mã hóa các mẫu, sao cho tạp âm lượng tử hóa không thể nghe được. Bộ mã hóa thường sử dụng tốc độ bit phù hợp với yêu cầu.

6. Mã hóa Huffman

Mã hóa Huffman là phương pháp mã hóa không mất dữ liệu dùng từ mã (codeword) để lưu trữ bit nhị phân của các ký tự (symbol). Các line tần số sau khi lượng tử hóa được tiến hành mã hóa Huffman. Ví dụ các ký tự A, B, C, D được mã hóa thông qua các từ mã như sau:

Ký tự Từ mã A B C D 0 10 110 111

Ký tự A và B được phân biệt thông qua chiều dài của từ mã tương ứng là “0” và “10”. Thế mạnh của của mã hóa Huffman là tất cả từ mã có khả năng giải mã đồng nhất (uniquely decodable). Vì vậy trình tự mã hóa của các bit là:

01101110100

tương ứng với chuỗi dữ liệu: “ACDABA”

Giải thuật mã hóa Huffman dựa trên mô hình cây mã hóa dùng để phân biệt các ký tự thông qua từ mã. Ký tự nào có xác suất cao thì từ mã ngắn, ngược lại ký tự có xác suất thấp thì code dài hơn. Trình tự thực hiện theo các bước sau:

- Sắp xếp số lần xuất hiện (xác suất) các ký tự theo thứ tự giảm dần. - Nối 2 ký tự lại với nhau theo thứ tự từ trên xuống để tạo ký tự mới. - Tiếp tục bước 2 cho đến khi còn lại 1 ký tự với xác suất là 1.

- Tiến hành đánh số cho cây mã hóa, bắt đầu từ gốc (ký tự có xác suất là1) trở lên phía trên thì đánh số “0” ngược lại từ gốc đi xuống ta đánh số “1”.

Lun văn thc s Trn Th Bích Hng

Ví dụ ta có chuỗi cần mã hóa là “ EXAMPLE OF HUFFMAN CODING”. Đầu tiên ta tính xác suất của từng ký tự trong chuỗi ký tự.

Ký tự Xác suất E X A M P L O F H U C D I N G space 2/25 1/25 2/25 2/25 1/25 1/25 2/25 3/25 1/25 1/25 1/25 1/25 1/25 2/25 1/25 3/25 Tiếp tục sắp xếp các ký tự theo xác xuất giảm dần.

Lun văn thc s Trn Th Bích Hng

7. Mã hóa thông tin (Coding of Side Information)

Tiếp theo, các thông tin về quá trình mã hóa huffman (sự lựa chọn bảng Huffman, chuyển đổi cửa sổ, điều khiển độ lợi …), lấy hệ số tỷ lệ và lượng tử hóa

được mã hóa và là một phần của tâp tin MP3. Các thông tin đó rất quan trọng, là cơ

sở để tái tạo lại tín hiệu gốc trong quá trình giải mã MP3. Chúng không bị nén và

được lưu vào phần thông tin (side information) của tập tin. Dữ liệu tập tin sau khi mã hóa Huffman, hệ số tỷ lệ và phần thông tin kết hợp lại và được đưa vào dòng dữ liệu.

8. Dòng dữ liệu (Bitstream)

Dòng dữ liệu (bitstream) bao gồm nhiều khung âm thanh. Mỗi khung chứa thông tin của 1152 mẫu. Khung âm thanh gồm có năm thành phần chính:

• Phần tiêu đề (header) - đồng bộ hóa dòng dữ liệu và chứa các thông tin trạng thái.

Lun văn thc s Trn Th Bích Hng

• Phần thông tin – mang các thông tin về các mẫu âm thanh của dòng dữ liệu • Phần dữ liệu chính: cung cấp các hệ số tỷ lệ scalefactors đã được mã hóa và nguyên mẫu mã Huffman

Lun văn thc s Trn Th Bích Hng

Một phần của tài liệu Thiết kế và thực hiện chương trình đọc file âm thanh định dạng MP3 (Trang 41 - 48)