Đồ án Nén âm thanh file .wav theo chuẩn MPEG
Sóng âm.
Sóng âm là một loại sóng cơ có biên độ dao động nhỏ mà thính giác nhận biết được. Thí dụ dao động phát ra từ dây đàn, mặt trống. đang rung động.
Trong không khí cũng như trong mọi chất khí khác, những dao động truyền đi dưới dạng sóng dọc, khi đến tai người những dao động có tần số từ 16 đến 20000 Hz sẽ gây cảm giác đặc biệt về âm.
Các dao động đàn hồi có tần số f>20.000 Hz là sóng siêu âm.
Các dao động đàn hồi có tần số f<16 hz="" là="" sóng="" hạ="">16>
Mỗi âm có một tần số riêng, đơn vị của tần số là héc (Hz) với định nghĩa:”Héc là tần số của một qúa trình dao động âm trong đó mỗi giây thực hiện được một dao động”.
1 Héc (Hz) = 1 dao động / 1 giây.
Các khái niệm trong âm thanh MPEG.
Hiệu ứng che (masking): nói đơn giản là âm lớn át âm bé, âm mạnh át âm yếu.
Ngưỡng nghe và mức nhạy cảm. “Ngưỡng nghe” là mức mà dưới nó 1 âm thanh không thể nghe được. Hầu hết mọi người đều nhạy cảm ở mức 2 đến 5 kHz. 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ố đó. Tai nhạy cảm ở mức 2 đến 5 kHz .
Che tần số (Frequency Masking)
Che nhất thời. (che thời gian)
Trang 1
Trang 2
Trang 3
Trang 4
Trang 5
Trang 6
Trang 7
Trang 8
Trang 9
Trang 10
Tải về để xem bản đầy đủ
Tóm tắt nội dung tài liệu: Đồ án Nén âm thanh file .wav theo chuẩn MPEG
ĐỒ ÁN TỐT NGHIỆP Đề tài: NÉN ÂM THANH FILE *.WAV THEO CHUẨN MPEG Giáo viên h ư ớng dẫn : TS D ư Thanh Bình Sinh viên thực hiện : Đỗ V ă n Tuấn TR Ư ỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI TR Ư ỜNG ĐẠI HỌC THUỶ SẢN KHOA CÔNG NGHỆ THÔNG TIN PHẦN I LÝ THUYẾT CH ƯƠ NG1 CÁC KIẾN THỨC C Ơ BẢN VỀ ÂM THANH I SÓNG ÂM CH ƯƠ NG 2 WAVE FILE I CẤU TRÚC WAVE FILE CH ƯƠ NG 3 LÝ THUYẾT XỬ LÝ TÍN HIỆU SỐ I PHÉP BIẾN ĐỔI FOURIER RỜI RẠC CH ƯƠ NG 4 GIỚI THIỆU VỀ MPEG I CÁC KHÁI NIỆM TRONG ÂM THANH MPEG II CÁC THÔNG S Ố CH ƯƠ NG 5 CÁC GIẢI THUẬT NÉN ÂM THANH I CÁC GIẢI THUẬT NÉN KHÔNG CÓ TỔN THẤT II CÁC GIẢI THUẬT NÉN CÓ TỔN THẤT PHẦN II THIẾT KẾ CH ƯƠ NG TRÌNH CH ƯƠ NG 6 S Ơ ĐỒ KHỐI CỦA GIẢI THUẬT I S Ơ ĐỒ KHỐI CH ƯƠ NG 7 GIAO DIỆN VÀ THUYẾT MINH CH ƯƠ NG TRÌNH I GIAO DIỆN II KẾT LUẬN VÀ H Ư ỚNG PHÁT TRIỂN ĐỀ TÀI Sóng âm . Sóng âm là một loại sóng c ơ có biên đ ộ dao đ ộng nhỏ mà thính giác nhận biết đư ợc. Thí dụ dao đ ộng phát ra từ dây đ àn, mặt trống.. đ ang rung đ ộng. Trong không khí cũng nh ư trong mọi chất khí khác, những dao đ ộng truyền đ i d ư ới dạng sóng dọc, khi đ ến tai ng ư ời những dao đ ộng có tần số từ 16 đ ến 20000 Hz sẽ gây cảm giác đ ặc biệt về âm. Các dao đ ộng đ àn hồi có tần số f>20.000 Hz là sóng siêu âm. Các dao đ ộng đ àn hồi có tần số f<16 Hz là sóng hạ âm. Mỗi âm có một tần số riêng, đơ n vị của tần số là héc (Hz) với đ ịnh nghĩa:”Héc là tần số của một qúa trình dao đ ộng âm trong đ ó mỗi giây thực hiện đư ợc một dao đ ộng”. 1 Héc (Hz) = 1 dao đ ộng / 1 giây. Cấu trúc của Wave File nh ư sau typedef struct { WORD wFormatTag; WORD nChannels; DWORD nSamplesPerSec; DWORD nAvgBytesPerSec; WORD nBlockAlign; } WAVEFORMAT; Biến đ ổi Fourier của tín hiệu rời rạc: Biến đ ổi Fourier của dãy rời rạc. Đối với tín hiệu tuần hoàn. Phép biến đ ổi Fourier thuận. Phép biến đ ổi Fourier nghịch. Phép biến đ ổi nhanh Fourier(FFT). Các khái niệm trong âm thanh MPEG . Hiệu ứng che (masking): nói đơ n giản là âm lớn át âm bé, âm mạnh át âm yếu. Ng ư ỡng nghe và mức nhạy cảm . “ Ng ư ỡng nghe” là mức mà d ư ới nó 1 âm thanh không thể nghe đư ợc. Hầu hết mọi ng ư ời đ ều nhạy cảm ở mức 2 đ ến 5 kHz. 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ố đ ó. Tai nhạy cảm ở mức 2 đ ến 5 kHz . Che tần số (Frequency Masking) Che nhất thời . (che thời gian) L ư ợc đ ồ mã hóa Perceptual Subband . Các thông số : Chuẩn MPEG cho phép ta chọn lựa các thông số cho việc nén âm thanh tốt nhất phù hợp với ứng dụng mà ta sử dụng. L ư ợc đ ồ mã hóa cho các loại là tổng quát. Các thông số có thể chọn lựa trong bộ mã hóa MPEG bao gồm: Mode, Sampling frequency, bitrate, và Layer. Các giải thuật nén không có tổn thất 1. Mã hóa Huffman . Khởi tạo: đư a tất cả các node vào danh sách OPEN theo thứ tự tại mọi thời đ iểm. Lặp lại cho đ ến khi danh sách OPEN chỉ còn một node bên trái nh ư sau: Từ danh sách OPEN, chọn hai node có xác suất thấp nhất, tạo node cha cho chúng. Gán tổng các xác suất cho node cha và đư a node cha vào danh sách OPEN. Gán các mã 0,1 vào các nhánh của cây, xóa các node con khỏi danh sách OPEN. 2. Mã Huffman sửa đ ổi . Bộ mã hóa Initialize_model(); while ((c = getc (input)) != eof) { encode(c, output); update_model(c); } Bộ giải mã Initialize_model(); while ((c = decode (input)) != eof) { putc(c, output); update_model(c); } 3. Mã hóa số học . Ý t ư ởng: giả sử mẫu tự là [X,Y] và P(X) = 2/3 P(Y) = 1/3. 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] Để mã hóa thông đ iệp, chỉ dùng vừa đ ủ số bit cần thiết cho mỗi đ oạn. T ươ ng tự, ta có thể ánh xạ tất cả chiều dài 3 thông đ iệp vào các đ oạn trong [0..1]. Nói chung, số bit đư ợc xác đ ịnh bằng kích th ư ớc của đ oạn. 4. Giải thuật Lempel-Ziv-Welch(LZW). Giả sử chúng ta muốn mã hóa cho một cuốn từ đ iển Tiếng Anh 159,000 từ. Nh ư vậy mỗi từ cần 18 bit đ ể mã hóa. Nh ư ợc:Dùng qúa nhiều bit. Chỉ làm việc cho ký tự tiếng Anh. Giải pháp:Cần phải tìm một cách mã hóa cuốn từ đ iển cho thích hợp. Giải thuật: w = NIL; while (read a character k) { if wk exists in the dictionary w = wk; else add wk to the dictionary; output the code for w; w = k; } Các giải thuật nén có tổn thất. 1. Các ph ươ ng pháp nén âm thanh đơ n giản: Nén “silence”: dò các khoảng “yên lặng”, giống nh ư mã hoá run-length. LPC (Linear Predictive Coding). CELP (Code Excited Linear Predictor). 2. Nén âm thanh dùng mô hình ââm - tâm lý . a. Hệ thống nghe và phát âm của con ng ư ời . Phạm vi nghe đư ợc từ 20 Hz đ ến 20 kHz, nhạy cảm ở 2- 5kHz. Phạm vi phát âm bình th ư ờng từ 500 Hz đ ến 2 kHz.b. Che tần số (Frequency masking) “Ng ư ỡng che” (Threshold masking):sinh ra từ hiệu ứng che, mỗi âm với một tần số và mức to (dB) xác đ ịnh sẽ có một “ng ư ỡng che” c. B ă ng giới hạn B ă ng giới hạn có đ ộ rộng là 100Hz đ ối với các tần số che 500Hz.d. Che nhất thời (Temporal masking): che theo thời gian. 3. Giải thuật Nén âm thanh MPEG. Dùng bộ lọc thông đ ể chia tín hiệu âm thanh thành các sub-band theo tần số, t ươ ng ứng với 32 b ă ng giới hạn lọc sub-band. Xác đ ịnh số l ư ợng che của mỗi band gây bởi các band lân cận bằng các kết qủa b ư ớc 1 mô hình âm - tâm lý. Nếu mức to của một b ă ng mà nhỏ h ơ n ng ư ỡng che thì không mã hóa nó. Ng ư ợc lại, xác đ ịnh số bit cần thiết đ ể mã hóa sao cho nhiễu sinh ra bởi việc l ư ợng tử hóa này thấp h ơ n đư ờng cong che. Định dạng dòng dữ liệu bit : S Ơ ĐỒ KHỐI. Thay đ ổi hay giữ nguyên cấu hình Đặt input và output file; Mở input file và kiểm tra; Wave_open(); Open_bit_stream_w(); Memset(); Dùng mô hình âm-tâm lý đ ể phân tích dữ liệu L3_psycho_analise(); Chuẩn bị Frame dữ liệu L3_psycho_initialise(); L3_subband_initialise(); L3_mdct_initialise(); L3_loop_initialise(); Dùng bộ lọc nhiều pha đ ể xử lý dữ liệu L3_window_subband(); L3_filter_subband(); Tính MDCT cho các đư ờng ra nhiều pha L3_mdct_sub(); Xác đ ịnh số bit đ ể mã hoá một mẫu dữ liệu L3_interation_loop(); Ghi frame vào dòng bit L3_format_bitstream(); Làm sạch buffer L3_FlushBitstream() Đóng thiết bị ghi Close_bit_stream_w(); Đóng file nguồn Wave_close(); Chuẩn bị vùng đ ệm 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 () Đ S wave_get(buffer)0 Cấu hình mặc đ ịnh Set_default() Kết thúc Giao diện ch ươ ng trình KẾT QUẢ ĐẠT Đ Ư ỢC Đồ án tốt nghiệp đ ã hoàn thành các nhiệm vụ đ ề ra trong phạm vi cho phép. Do đ iều kiện về thời gian cũng nh ư trình đ ộ còn hạn chế nên đ ồ án này dừng lại ở mức nghiên cứu một số ph ươ ng pháp nén âm thanh. Trên c ơ sở đ ó xây dựng phần mềm thử nghiệm nén âm thanh theo chuẩn MPEG_I layer3. Mặt khác, do mới chỉ đ ánh giá âm thanh theo ph ươ ng pháp chủ quan nên chất l ư ợng âm thanh sau khi nén ch ư a đư ợc nh ư mong muốn. Thế nh ư ng những gì đ ạt đư ợc trong đ ồ án này chủ yếu là nhằm giúp em có thể nắm bắt đư ợc vững h ơ n về mặt lý thuyết.Các kết quả này rất quan trọng và hữu ích cho mọi hoạt đ ộng nghiên cứu sau này. H ư ớng phát triển Từ những kết quả đ ạt đư ợc là c ơ sở đ ể em nghiên cứu tiếp và áp dụng không chỉ nén âm thanh mà còn ứng dụng đ ể nén nhiều dạng dữ liệu khác. Cuối cùng em xin bày tỏ lòng biết ơ n sâu sắc đ ến Thầy giáo: TS D ư Thanh Bình và các thầy cô trong khoa CNTT-ĐHBKHN và ĐHTS đ ã h ư ớng dẫn và giúp đ ỡ tận tình đ ể em hoàn thành đ ề tài này.
File đính kèm:
- do_an_nen_am_thanh_file_wav_theo_chuan_mpeg.ppt