Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 96 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
96
Dung lượng
2,29 MB
Nội dung
TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN NGUYỄN THỊ NAM MỘT SỐ PHƯƠNG PHÁP NÉN ÂM THANH VÀ XÂY DỰNG CHƯƠNG TRÌNH THỬ NGHIỆM KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC Chuyên ngành: Tin học Người hướng dẫn khoa học ThS LƯU THỊ BÍCH HƯƠNG HÀ NỘI – 2014 LỜI CẢM ƠN Lời em xin chân thành cảm ơn hướng dẫn tận tình giáo Th.S Lưu Thị Bích Hương, khoa Công nghệ thông tin, trường Đại học Sư phạm Hà Nội Trong suốt thời gian thực khóa luận, bận rộn công việc cô dành nhiều thời gian tâm huyết việc hướng dẫn em Cô cung cấp cho em nhiều hiểu biết lĩnh vực em bắt đầu bước vào thực khóa luận Em xin chân thành cảm ơn thầy, cô giáo khoa Công nghệ thông tin, thầy, cô giáo trường giảng dạy giúp đỡ em năm học vừa qua Chính thầy, cô giáo xây dựng cho chúng em kiến thức tảng kiến thức chuyên môn để em hồn thành khóa luận tốt nghiệp chuẩn bị cho cơng việc sau Cuối em xin bày tỏ lòng biết ơn tới gia đình bạn bè giúp đỡ động viên em nhiều suốt trình học tập để em thực tốt khóa luận Tuy có cố gắng định thời gian trình độ có hạn nên chắn khóa luận nhiều thiếu sót hạn chế Kính mong nhận góp ý thầy, giáo bạn Hà Nội, tháng 05 năm 2014 Sinh viên Nguyễn Thị Nam LỜI CAM ĐOAN Tên em là: NGUYỄN THỊ NAM Sinh viên lớp: K36 – Tin học, khoa Công nghệ thông tin, trường Đại học Sư phạm Hà Nội Em xin cam đoan: Đề tài “Một số phương pháp nén âm xây dựng chương trình thử nghiệm” nghiên cứu riêng em, hướng dẫn cô giáo Th.S Lưu Thị Bích Hương Khóa luận hồn tồn khơng chép tác giả khác Nếu sai em xin hoàn toàn chiu trách nhiệm Hà Nội, tháng 05 năm 2014 Người cam đoan Nguyễn Thị Nam MỤC LỤC MỞ ĐẦU CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1.1 Lý thuyết xử lý tín hiệu số 1.1.1 Tín hiệu hệ thống rời rạc 1.1.2 Phép biến đổi Fourier rời rạc 1.2 Các khái niệm âm 11 1.2.1 Sóng 11 1.2.2 Sóng âm 14 1.3 Nén âm 21 CHƯƠNG 2: MỘT SỐ PHƯƠNG PHÁP NÉN ÂM THANH 23 2.1 Các phương pháp nén khơng có tổn thất 23 2.1.1 Mã hóa Huffman 25 2.1.2 Mã Huffman sửa đổi 27 2.1.3 Mã hóa số học 28 2.1.4 Giải thuật Lempel-Ziv-Welch (LZW) 28 2.2 Các phương pháp nén có tổn thất 31 2.2.1 Các phương pháp nén âm đơn giản 33 2.2.2 Nén âm dùng mơ hình âm - tâm lý 33 2.2.3 Nén âm MPEG 34 2.3 Nén âm file *.WAV theo chuẩn MPEG 36 2.3.1 Tập tin dạng sóng (WAVE FILE) 36 2.3.2 MPEG 43 CHƯƠNG 3: XÂY DỰNG CHƯƠNG TRÌNH THỬ NGHIỆM 59 3.1 Bài toán 59 3.2 Xây dựng chương trình 59 3.2.1 Giới thiệu chương trình 59 3.2.2 Thiết kế giao diện 59 3.2.3 Kết thực nghiệm 63 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 65 Kết luận 65 Hướng phát triển 65 TÀI LIỆU THAM KHẢO 67 DANH MỤC CÁC HÌNH Hình 2.1: Định dạng dòng liệu bit 26 Hình 2.2: Ngưỡng che thước đo băng giới hạn 34 Hình 2.3: Định dạng dòng liệu bit 35 Hình 2.4: Khả âm MPEG ứng với tần số lấy mẫu bit khác 45 Hình 2.5: Hiệu ứng che (Masking) 46 Hình 2.6: Đồ thị ngưỡng nghe với tần số khác 46 Hình 2.7: Đồ thị thí nghiệm che tần số với âm thử có tần số 1KHz 47 Hình 2.8: Đồ thị thí nghiệm che tần số với âm thử có tần số 1KHz 48 Hình 2.9: Đồ thị thí nghiệm che thời cho mức to khác âm thử 48 Hình 2.10: Đồ thị thí nghiệm che thời cho âm thử với tần số khác 49 Hình 2.11: Lược đồ mã hóa âm theo Perceptual Subband 50 Hình 2.12: Tỉ số nén cần phải đạt tới 100% chất lượng CD với mã hóa giải mã khác 53 Hình 3.1: Form giao diện chương trình 60 Hình 3.2: Form chọn tệp tin cần nén 60 Hình 3.3: Form tệp tin âm cần nén 61 Hình 3.4: Form chọn địa cần lưu file nén 61 Hình 3.5: Form định số tốc độ bit tập tin đích 62 Hình 3.6: Form chọn tần số lấy mẫu tập tin đích 62 Hình 3.7: Giao diện q trình nén thành cơng 63 Hình 3.8: Thơng tin tập tin trước nén 63 Hình 3.9: Thơng tin tập tin sau nén 64 DANH MỤC CÁC BẢNG Bảng 2.1: Cấu trúc WAVE FILE 40 Bảng 2.2: Chi tiết lớp 54 Bảng 2.3: Độ phân giải lớp 57 DANH MỤC CÁC TỪ VIẾT TẮT Từ viết tắt Ý nghĩa DFT Discrete Fourier Transform DFS Discrete Fourier Series DCT Discrete Cosine Transform FFT Fast Fourier Transform PCM Pulse Code Modulation WAV WAVE: WAVE Form Audio File Format FLAC Free Lossless Audio Codec ALAC Apple Lossless Audio Codec APE Monkey‟s Audio MP3 Moving Picture Experts Group Layer ACC Advanced Audio Coding WMA Windows Media Audio LZW Lempel Ziv Welch DRM Digita Rights Management LPC Linear Predictive Coding CELP Code Excited Linear Predictor API Applycation Program Interface RIFF Resource Interchange File Format DVD Digital Versatile Disc MDK Multimedia Development Kit SDK Software Development Kit MỞ ĐẦU Lý chọn đề tài Công nghệ thông tin ngành công nghiệp mũi nhọn giới nói chung Việt Nam nói riêng, phát triển mạnh mẽ không ngừng năm gần Khi đời sống nâng lên, khoa học kỹ thuật phát triển, nhu cầu giải trí đa dạng lên, loại hình giải trí khơng ngừng gia tăng ngày phong phú, đa dạng loại hình giải trí như: Trò chơi điện tử, nghe nhạc, xem phim đặc biệt trò chơi dạng không gian ba chiều Sự phát triển ạt dẫn tới ngành công nghệ phần cứng khơng thể đáp ứng đòi hỏi lưu trữ, đồng hành với phát triển mạng Internet với số lượng người tham gia truy cập ngày lớn, nhu cầu họ ngày phong phú đa dạng tất loại hình nói Do tốc độ truy cập, tốc độ truyền tải mạng quan tâm để người dùng sốt ruột ngồi chờ tải trang web mà truy cập, khơng phải cảm thấy khó chịu tải xuống tập tin âm hát mà họ ưa thích đường truyền chậm công nghệ phần cứng phát triển mạnh Chính nhà nghiên cứu phần mềm ý đến việc phát triển phần mềm để hỗ trợ phần cứng Họ tạo chương trình, phần mềm hỗ trợ tích cực cho phần cứng, từ đời phần mềm nén âm thanh, nén hình ảnh, nén video, tách âm từ tệp tin video… để tạo dạng âm thanh, hình ảnh, video như: MINDI, MPEG, MP3, MP4…; tệp tin ảnh dạng: GIF, JPEG… với dung lượng lưu trữ vô nhỏ chất lượng có giảm đơi chút khơng đáng kể so với đạt để truyền tải, truy cập nhanh Trong nghiên cứu nén âm thanh, người ta biết đến chuẩn nén phổ biến như: MPEG, MP3, JPEG Hiện nay, người nghiên cứu đưa nhiều thuật toán nén nhằm đáp ứng yêu cầu khác tạp Để lọc đỡ phức tạp, người ta thêm FFT (Fast Fourie Transform) vào song song với lọc sử dụng thành phần phổ từ FFT thông tin thêm vào mã hóa Như vậy, lấy mật độ bit cao tần số thấp mà tai người nhạy cảm Các lớp âm MPEG Có nhiều nhầm lẫn lớp âm MPEG Tất lớp dựa lược đồ mã hóa (mã hóa theo nhận thức) Mức độ phức tạp mã hóa giải mã tuỳ thuộc vào lớp Dưới hình ảnh cho thấy tỉ số nén mà ta cần phải đạt tới 100% chất lượng CD với mã hóa giải mã khác Hình 2.12: Tỉ số nén cần phải đạt tới 100% chất lượng CD với mã hóa giải mã khác Chi tiết lớp Lớp I (Layer I) Đây lớp đơn giản phù hợp cho ứng dụng người dùng Mơ hình âm học tâm lý lớp sử dụng tần số che Có nghĩa, bỏ qua tần số bị khuất sau tần số khác Phạm vi tốc độ bit từ 32 kbit/s (mono) đến 448 kbit/s (stereo) Tùy thuộc vào mức độ phức tạp mã hóa, âm chất lượng cao (gần với âm CD) yêu cầu tốc độ bit khoảng 256 - 384 kb/s chương trình stereo Khơng nên mã hóa với mức nén cao 384 kb/s Độ phức tạp giải mã thấp, độ phức tạp mã hóa cao 1.5 - lần Lớp I dùng nhiều DDC Solid State Audio Lớp II (Layer II) Lớp II đề nghị mức độ nén cao lớp I mức độ lọc sâu Nó có ứng dụng số cho âm chuyên nghiệp qua đài phát thanh, Tivi Phạm vi tốc độ bit từ 32 - 192 kb/s cho âm mono từ 64 - 384 kb/s cho âm stereo Tùy thuộc vào mức độ phức tạp mã hóa, âm chất lượng cao (gần với âm CD) yêu cầu tốc độ bit khoảng 256 - 384 kb/s chương trình stereo Mức độ phức tạp giải mã 25% cao so với lớp I mã hóa có mức phức tạp cao - lần Lớp III (Layer III) Lớp III đưa mức độ nén lọc cao lớp II sử dụng mã hóa Huffman Layer Complexity Encoder Decoder I 1.5 – II –4 1.25 III 7.5 2.5 Bảng 2.2: Chi tiết lớp Trong bảng trên, độ phức tạp giải mã lớp I dùng để so sánh c Các thông số dùng MPEG Chuẩn MPEG cho phép chọn lựa thông số cho việc nén âm tốt phù hợp với ứng dụng sử dụng Lược đồ mã hóa cho loại tổng qt Các thơng số chọn lựa mã hóa MPEG bao gồm: Mode, Sampling frequency, Bitrate Layer Mode Chuẩn MPEG có chế độ: o Mono o Dual channel o Stereo o Intensity Stereo (còn gọi Joint Stereo) Chế độ Mono rõ ràng dùng cho âm kênh Để chọn chế độ cho ứng dụng kênh, phải xác định đâu tín hiệu trái đâu tín hiệu phải để chia chúng thành files khác nhau, để làm việc độc lập kênh trái phải Khi đó, chọn chế độ Mono Nếu kênh khơng cần hoạt động độc lập chọn chế độ Stereo, Dual hay Intensity Stereo để tạo file Chế độ Stereo hay kênh Dual hoàn toàn đồng chúng sinh file cho tín hiệu stereo Tuy nhiên, bit thị nhận dạng xem file chế độ dùng cho áp dụng Chế độ Intensity Stereo xem xét dư thừa kênh trái phải nhằm tối ưu mã Chất lượng chủ quan Intensity Stereo thay đổi theo hình ảnh stereo tín hiệu mã hóa Tuy nhiên đặc biệt thích hợp cho tốc độ truyền bit thấp Sampling Frequency (tốc độ lấy mẫu) Một số tốc độ lấy mẫu: + 32KHz, 44.1KHz 48KHz MPEG1 (Tiêu chuẩn ISO/IEC 11172-3) + 16KHz, 22.05KHz 24KHz MPEG2 (Tiêu chuẩn ISO/IEC13818-3) Khi chọn lựa tốc độ lấy mẫu cần xem xét vấn đề: + Tần số lấy mẫu lớn chất lượng âm cao (độ dài frame nhỏ hơn) + Băng thơng tín hiệu giới hạn mức 15 KHz lấy mẫu tốc độ 32 KHz KHz tốc độ 16 KHz + Tần số lấy mẫu (KHz) tốc độ âm mã hóa (kbps) chọn độc lập + Tần số lấy mẫu 44.1 KHz hay 22.05 KHz khơng thiết thực cho việc chọn lọc độ dài frame (byte) thay đổi + Những file lấy mẫu tần số khác khó khăn hòa trộn + Khi dùng đường nhập số AES/EBU, tần số lấy mẫu bị cố định tín hiệu nhập Nếu khơng bắt buộc, Digigram u cầu lấy mẫu 48 KHz 44.1 KHz cho phát hay ứng dụng multimedia Nếu phải sử dụng tốc độ bit thấp cho truyền có hiệu tốc độ 24 KHz thích hợp Bit Rate Mỗi Layer chế độ có nhiều cách chọn lựa tốc độ bit (bit rate) Việc chọn tốc độ bit tùy thuộc trước tiên vào chất lượng âm yêu cầu Băng thơng tín hiệu hẹp tốc độ bit thấp, khiến cho khơng thực tế số ứng dụng Tốc độ bit đo theo kilobits/sec (kbps) Khi chọn lựa tốc độ bit cần xem xét vấn đề: + Tại 128 kbps kênh (hay 256 kbps stereo), chất lượng âm CD đạt với Layer I hay Layer II + Tại 192 kbps kênh, chất lượng âm hoàn toàn suốt Tốc độ 128 kbps/kênh dùng phổ biến phát Nó tương ứng với tỉ số nén 1:6 tốc độ lấy mẫu 48 KHz Tốc độ thấp 128 kbps/kênh dùng ứng dụng yêu cầu tỉ số nén lớn giới hạn băng thông truyền hay thiết bị lưu trữ Một số tốc độ bit cung cấp chuẩn âm MPEG: + MPEG 1: 32 KHz, 44.1 KHz 48 KHz - Layer I: 32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352, 384, 416, 448 kbps Những tốc độ chế độ Mono hay Stereo - Layer II: 32, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 384 kbps Trong đó: 32, 48, 56, 80 kbps chế độ Mono; 64, 96, 112, 128, 160, 192 kbps hai chế độ Mono Stereo; 224, 256, 320, 384 kbps chế độ Stereo + MPEG 2: 16 KHz, 22.05 KHz 24 KHz - Layer I: 32, 48, 56, 64, 80, 96, 112, 128, 144, 160, 176, 192, 224, 256 kbps Những tốc độ chế độ Mono hay Stereo - Layer II: 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160 kbps Những tốc độ chế độ Mono hay Stereo Layers Chuẩn MPEG có ba layer, chọn lựa tốc độ bit cần xét vấn đề: Dùng Layer I việc chọn lọc xác Layer II độ phân giải Layer I gấp ba lần Layer II Sampling frequency Layer I (384 samples) Layer II (1152 samples) 32 KHz 12 ms 36 ms 44.1 KHz # 8.71 ms # 26.12 ms 48 KHz ms 24 ms 16 KHz 24 ms 72 ms 22.05 KHz # 17.42 ms # 52.24 ms 24 KHz 16 ms 48 ms Bảng 2.3: Độ phân giải lớp Chuẩn mã hóa âm MPEG định việc ghi số cố định mẫu (384 cho Layer I 1152 cho Layer II) để tạo chuỗi bytes gọi “frame” “Frame” thực thể nhỏ điều khiển ứng dụng Việc chọn tốc độ bit (kbps) thiết lập nên kích thước frame theo byte Ví dụ: Ở 48 KHz, 128 kbps, chế độ Mono, Layer II: 48000 mẫu tương ứng 1000 ms hay 1s, 1152 mẫu tương ứng 24 ms Ở tốc độ bit 128000 bits/s, 3072 bits (384 bytes) cần cho 24 ms Vì vậy, chiều dài frame 384 byte Để lưu phút, cần 960000 byte (hay khoảng Megabyte) đĩa trống CHƯƠNG XÂY DỰNG CHƯƠNG TRÌNH THỬ NGHIỆM 3.1 Bài toán Trong chương trước đề cập đến toán nén âm phương pháp nén âm file *.WAV theo chuẩn MPEG Trong chương tìm hiểu, xây dựng chương trình demo cho tốn nén âm thanh, đó: Đầu vào: file nhạc cần nén với phần mở rộng mặc định WAV Đầu ra: file nén với phần mở rộng mặc định MP3 Để áp dụng phương pháp nén này, trước tiên cần có tập file nhạc với định dạng mặc định WAV Sau đó, tiến hành trình nén từ tập tin nguồn sang tập tin đích Bản chất q trình giảm kích thước file nhạc cần nén trình nén khơng có có số mát không đáng kể chất lượng âm 3.2 Xây dựng chương trình 3.2.1 Giới thiệu chương trình Chương trình “Nén âm file *.WAV theo chuẩn MPEG” chương trình viết Framework Net với ngơn ngữ lập trình C# 3.2.2 Thiết kế giao diện Chương trình có hộp thoại WAV COMPRESSOR hiển thị phím nhấn cho người sử dụng chạy ứng dụng Hình 3.1: Form giao diện chương trình Hình 3.2: Form chọn tệp tin cần nén Hình 3.3: Form tệp tin âm cần nén Hình 3.4: Form chọn địa cần lưu file nén Hình 3.5: Form định số tốc độ bit tập tin đích Hình 3.6: Form chọn tần số lấy mẫu tập tin đích Hình 3.7: Giao diện q trình nén thành cơng 3.2.3 Kết thực nghiệm Hình 3.8: Thơng tin tập tin trước nén Hình 3.9: Thơng tin tập tin sau nén 64 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Kết luận Nén âm lĩnh vực tổ chức nhà nghiên cứu quan tâm, phát triển nhằm đem lại ứng dụng thực tế Trong trình thực khóa luận em tìm hiểu, nghiên cứu cài đặt thử nghiệm chương trình nén âm file *.WAV theo chuẩn MPEG, đáp ứng yêu cầu đề Khóa luận đạt số kết sau: - Tìm hiểu khái quát lý thuyết xử lý tín hiệu số, khái niệm âm nén âm - Một số phương pháp nén âm - Triển khai ứng dụng nén âm file *.WAV theo chuẩn MPEG NET Đó kết sơ tìm hiểu trình nghiên cứu lý thuyết xây dựng chương trình ứng dụng Do thời gian, tài liệu nghiên cứu kiến thức hạn chế, nên khóa luận số thiếu sót định, em mong nhận thơng cảm đóng góp q báu thầy, giáo bạn để khóa luận hoàn thiện Một lần em xin chân thành cảm ơn ThS Lưu Thị Bích Hương tận tình hướng dẫn em thời gian qua để em hồn thành khóa luận tốt nghiệp Hướng phát triển Chương trình thử nghiệm đạt số chức để phục vụ cho nén âm Nhưng đáp ứng phần nhỏ yêu cầu Chương trình cài đặt thử nghiệm thuật toán nén âm file WAVE với chuẩn nén MPEG Vì vậy, cần tiếp tục nghiên cứu cài đặt thêm nhiều thuật toán khác, xây dựng phát triển chương trình để nén tập tin âm có định dạng tùy ý với nhiều chuẩn nén khác nhau, thích hợp với nhu cầu người sử dụng, cho hiệu nén cao 65 Ngoài ra, cần tìm hiểu nghiên cứu thêm phương pháp nén âm khác để mở rộng kiến thức, hiểu biết nén âm Đó tảng để xây dựng chương trình nén âm nhằm phát triển, đẩy mạnh ngành cơng nghệ thơng tin nói chung ngành cơng nghệ phần mềm nói riêng 66 TÀI LIỆU THAM KHẢO Tiếng Việt [1] – Đặng Văn Chuyết, Nguyễn Tuấn Anh, “ Cơ sở lý thuyết truyền tin”, Nhà xuất Giáo dục, 2007 [2] – KTS Việt Hà, Nguyễn Ngọc Giả, “Giáo trình âm học kiến trúc”, Trường Đại học Kiến trúc, 1993 [3] – Quách Tuấn Ngọc, “Xử lý tín hiệu số”, Nhà xuất giáo dục, 1997 Tiếng Anh [4] – John G.Proakis, Dimitris G.Manolakis, “Digital Signal Processing”, Prentice Hall [5] – Paul M.Embree, Bruce Kimble, “C Language Algorithms for Digital Signal Process”, Prentice Hall Địa Internet: [6] http://www.MPEG.org [7] http://en.wikipedia.org/wiki/Main_Page 67 ... suốt trình học tập trường, em xin chọn đề tài Một số phương pháp nén âm xây dựng chương trình thử nghiệm Mục tiêu nghiên cứu Mục tiêu luận văn tìm hiểu phương pháp mã hóa nén âm Đồng thời xây dựng. .. cứu số phương pháp nén âm bản, đồng thời xây dựng chương trình nén nhằm giảm dung lượng tập tin âm có phần mở rộng WAV thu tập tin khác sau nén có phần mở rộng MP3 Phương pháp nghiên cứu a Phương. .. dựng chương trình nén âm file *.WAV theo chuẩn MPEG Framework.Net với ngơn ngữ lập trình C# Nhiệm vụ nghiên cứu Nghiên cứu, tìm hiểu số phương pháp nén âm Đi sâu nghiên cứu phương pháp nén âm theo