Tìm hiểu về phương pháp mã hố và nén âm thanh theo chuẩn Mpeg trong hệ điều hành Windows

MỤC LỤC

MULTIMEDIA WINDOWS

Các nhà cung cấp phần cứng chỉ cần cung cấp một bộ điều khiển thiết bị (device driver) cho Windows, nhờ đó một ứng dụng trên Windows có thể điều khiển phần cứng thông qua Windows API. Loại thứ nhất microsoft gọi là “Wave Form Audio” (Aâm thanh dạng sóng), dựa trên nguyên tắc số hóa sóng âm, MPC lưu chúng trên bộ nhớ hay tập tin .WAV trên đĩa.

CẤU TRÚC WAVE FILE

Điều này không có nghĩa là file wave 16 bits sẽ nghe to hơn 256 lần file wave 8 bits, mà nó có nghĩa là âm thanh được lượng tử hóa chính xác hơn, nghe trung thực hơn. Với stereo 8 bits, mỗi mẫu gồm 2 bytes, dữ liệu sẽ được sắp xếp xen kẽ (interleave), với byte đầu (byte chẵn) là mẫu âm thanh của kênh bên trái, byte sau (byte lẻ) là của kênh bên phải.

ĐỌC RIFF FILES

Nếu định vị thành công, hàm này trả về zero và đối tượng MMCKINFO truyền cho hàm sẽ được điền vào các thông tin về chunk. Chú ý rằng giá trị cksize trả về bởi mmioDescend được sử dụng để xác định kích thước vùng đệm cần cấp phát để chứa dữ liệu.

LÝ THUYẾT XỬ LÝ TÍN HIỆU SỐ

PHÉP BIẾN ĐỔI FOURIER RỜI RẠC

Trong đó hlp(t) là đáp ứng xung của mạch lọc thông thấp lý tưởng có biên độ dải thông là Ts. Nếu N ≥ M thì không xảy ra hiện tượng trùm thời gian giữa các phần của xp(n). Do xp(n) chỉ có duy nhất một cách biểu diễn chuỗi Fourier rời rạc nên x(n) cũng vậy.

GIỚI THIỆU VỀ MPEG

GIỚI THIỆU

Đặc biệt nó định nghĩa tiêu chuẩn truyền cho dòng phức tạp các hình ảnh, âm thanh và dữ liệu đồ hoạ và việc tái hợp chúng trên thiết bị thu. Chuẩn MPEG-4 định nghĩa các đối tượng hình ảnh mà trong đó các phần của một cảnh có thể được thao tác trong khi những phần khác vẫn không đổi. Nếu đổi cách lưu trữ âm thanh từ 16 bit sang 8 bit chúng ta có thể giảm kích thước lưu trữ đi 1 nửa, tuy nhiên như thế chất lượng âm thanh cũng sẽ giảm đi 1 nửa.

Một người có nghe được âm thanh hay không tùy thuộc vào tần số của âm và độ to của âm đó ở trên hay dưới ngưỡng nghe tại tần số đó. Tuy nhiờn, cũng cuộc trũ chuyện đó nằm trong vùng lân cận của những tiếng ồn lớn, như là tiếng ồn do một chiếc phản lực bay ngang bên trên, là hồn tồn không thể nghe được do lúc này ngưỡng nghe đã bị sai lệch. Dựa trên nghiên cứu về nhận thức âm thanh của con người, bộ mã hóa sẽ quyết định những thông tin nào là căn bản và những thông tin nào có thể bỏ qua.

Nhưng máy thâu âm vẫn ghi lại đầy đủ tất cả tần số của tất cả nhạc cụ, nghĩa là thiết bị thâu âm hồn tồn không có khả năng thích nghi động như con người.

Hình 4.1     4. Các khái niệm trong âm thanh MPEG.
Hình 4.1 4. Các khái niệm trong âm thanh MPEG.

CÁC KHÁI NIỆM CƠ BẢN VỀ MPEG

“subband” được lượng tử hóa theo cách mà sự lượng tử hóa tiếng ồn được bắt đầu bởi việc mã hóa sẽ không vượt qúa đường cong che của subband đó. Sự lượng tử hóa phổ tiếng ồn vì thế thích nghi động với phổ của tín hiệu.Thông tin trên bộ số hóa được dùng trong mỗi subband được truyền dọc theo các mẫu subband được mã hóa. Điều này cho phép bộ mã hóa hoạt động với những mức độ khác nhau về chất lượng và độ phức tạp, và cũng cho phép sự phát triển trong tương lai của bộ mã hóa.

Hiệu qủa che có ý nghĩa rằng ta có thể gia tăng mức ồn nền xung quanh một âm mạnh mà vẫn không nghe được tiếng ồn vì chúng sẽ bị che hồn tồn. Để các bộ lọc đỡ phức tạp, người ta thêm FFT (Fast Fourie Transform) vào song song với bộ lọc và sử dụng các thành phần phổ từ FFT như là các thông tin thêm vào bộ mã hóa. Tùy thuộc vào mức độ phức tạp của bộ mã hóa, một âm thanh chất lượng cao (gần với âm thanh CD) yêu cầu tốc độ bit khoảng 256 - 384 kb/s trên một chương trình stereo.

Tùy thuộc vào mức độ phức tạp của bộ mã hóa, một âm thanh chất lượng cao (gần với âm thanh CD) yêu cầu tốc độ bit khoảng 256 - 384 kb/s trên một chương trình stereo.

Hình 4.8 Sau đây là chi tiết về các lớp.
Hình 4.8 Sau đây là chi tiết về các lớp.

CÁC THÔNG SỐ DÙNG TRONG MPEG

Để chọn chế độ cho các ứng dụng 2 kênh, đầu tiên ta phải xác định đâu là tín hiệu trái và đâu là tín hiệu phải để chia chúng ra thành 2 files khác nhau, nhằm sau này ta có thể làm việc độc lập trên kênh trái hoặc phải. Chế độ Stereo hay kênh Dual là hồn tồn đồng nhất khi chúng cùng sinh ra một file duy nhất cho tín hiệu stereo. Tuy nhiên một bit chỉ thị sẽ nhận dạng xem một file là ở chế độ nào và có thể được dùng cho những áp dụng nào.

Nếu không bắt buộc, Digigram yêu cầu lấy mẫu ở 48 kHz hoặc 44.1 kHz cho phát thanh hay ứng dụng multimedia. Tốc độ thấp hơn 128 kbps/kênh được dùng trong các ứng dụng yêu cầu tỉ số nén lớn hơn do giới hạn của băng thông truyền hay thiết bị lưu trữ. • Dùng Layer I thì việc chọn lọc chính xác hơn Layer II bởi vì độ phân giải của Layer I gấp ba lần Layer II.

Chuẩn mã hóa âm thanh MPEG chỉ định việc ghi một số cố định các mẫu (384 cho Layer I và 1152 cho Layer II) để tạo ra một chuỗi các bytes gọi là.

CÁC GIẢI THUẬT NÉN ÂM THANH

NỀN TẢNG LÝ THUYẾT THÔNG TIN

• Tính chất tiền tố duy nhất: không có mã nào là tiền tố cho một mã khác (tất cả cỏc ký hiệu đều là node lỏ) → rừ ràng là lớn đối với bộ giải mó. (b) Ngay cả khi nếu điều đó là có thể làm được thì chi phí cho nó khá nặng, đặc biệt khi có nhiều bảng phải được truyền mà mô hình non-order() được sử dụng, nghĩa là việc đưa vào tính tốn sự ảnh hưởng của các ký hiệu trước đó với xác suất của ký hiệu hiện hành (ví dụ: “qu” thường đi với nhau,.). Như ví dụ, việc mã hóa Huffman sửa đổi được khảo sát sau đây với ý tưởng là làm thế nào có thể áp dụng vào các giải thuật nén thích hợp khác.

- Trong suốt qúa trình cập nhật, cây Huffman sẽ được duy trì tính kế thừa, các nodes (node trong và lá) được sắp xếp theo thứ tự tăng dần của trọng lượng. - Khi cần thiết trao đổi (swapping), node xa nhất với trọng lượng W được trao đổi với node mà trọng lượng của nó tăng lên 1 đơn vị W+1. • Nếu ta chỉ quan tâm với chiều dài mã hóa là 2 thông điệp, thì ta có thể ánh xạ tất cả thông điệp có thể có vào những đoạn trong phạm vi [0.1].

• Layer III: dùng bộ lọc băng giới hạn tốt hơn, mô hình âm-tâm lý có sử dụng hiệu quả che nhất thời, và có dùng bộ mã hố Huffman.

Hình 5.4 Ví dụ:
Hình 5.4 Ví dụ:

THIẾT KẾ CHƯƠNG TRÌNH

LƯU ĐỒ GIẢI THUẬT VÀ CẤU TRÚC DỮ LIỆU

    Khởi tạo mô hình âm-tâm lý Tính các hệ số của bộ lọc tần số Khởi tạo dữ liệu tính MDCT Khởi tạo mảng pow43[I].0<I<1024 Start compress. Trong chương trình, các cấu trúc này sử dụng ở các giai đoạn mở file, đọc cấu hình file, truy xuất các thông tin về cấu hình file. - Sử dụng: dùng trong quá trình đọc hoặc ghi dữ liệu từ file lên vùng đệm và ngược lại.

    Mỗi BitstreamElement sẽ được ghi vào dòng bit theo thứ tự mà nó xuất hiện trong dãy 'element'. Cấu trúc này chứa đựng tất cả những thông tin cần thiết cho bộ định dạng dòng bit để mã hố một frame dữ liệu. Ta có thể sử dụng nó để kiểm tra và xem thử bộ mã của ta có chấp nhận các kết quả của việc gọi bộ định dạng hay không.

    - Sử dụng : trong tính tốn MDCT, định dạng dòng bit, tính tốn mô hình tâm lý, mã hố dữ liệu.

    GIAO DIỆN VÀ THUYẾT MINH CHƯƠNG TRÌNH I. Giới thiệu

      Khi đã chọn được tập tin nguồn trong phần 2 hoặc 3 thì trong ô này sẽ tự động xuất hiện đường dẫn và tên tập tin đích. Phím này được nhấn sau khi đã chọn các tập tin nguồn và đích để cập nhật các thông số chuẩn bị cho quá trình nén và kích hoạt phím Compress. Chương trình có nền là hộp thoại MP3 COMPRESSOR hiển thị các phím nhấn cho người sử dụng lựa chọn và chạy ứng dụng.

      Hàm này khởi tạo một số giá trị mặc định cho hộp thoại, nhằm giúp cho người sử dụng có một cái nhìn tồn cục và hiểu được ngay ứng dụng, để từ đó có thể chọn lựa các thông số thích hợp cho ứng dụng. Hàm mở hộp thoại Open của Windows để chọn file nguồn có phần mở rộng mặc định là .wav, gán cho biến m_file_in đường dẫn và tên file đã chọn. Hàm mở hộp thoại Save của Windows để chọn đường dẫn và tên tập tin đích trong trường hợp không muốn đường dẫn và tên file mặc định do hàm OnFileOpen( ) tạo ra, và gán nó cho biến m_file_out.

      Hàm mở file nguồn và kiểm tra xem định dạng file có hợp lệ không, nếu không thì sẽ hiện thông bào và chọn lại file khác.