XÂY DỰNG CHƯƠNG TRÌNH CHƠI NHẠC FLAC TRÊN T-ENGINE BOARD

đang tải dữ liệu....

Nội dung tài liệu: XÂY DỰNG CHƯƠNG TRÌNH CHƠI NHẠC FLAC TRÊN T-ENGINE BOARD

ĐẠI HỌC QUỐC GIA TP. HCM TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA KHOA HỌC & KĨ THUẬT MÁY TÍNH LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC XÂY DỰNG CHƯƠNG TRÌNH CHƠI NHẠC FLAC TRÊN T-ENGINE BOARD HỘI ĐỒNG: KỸ THUẬT MÁY TÍNH GVHD:ThS. PHAN ĐÌNH KHÔI GVPB: ThS. BÙI VĂN HIẾU ---o0o--- SVTH 1: VÕ NGUYÊN TRUNG (5060..) SVTH 2: LÊ THỊ THANH HÀ (50600572) TP.HỒ CHÍ MINH, THÁNG 1 NĂM 2011 LỜI CAM ĐOAN ------------------ o0o ------------------ Chúng em xin cam đoan rằng, ngoại trừ các kết quả tham khảo từ các công trình khác như đã ghi rõ trong luận văn, nội dung trình bày trong luận văn này là do chính chúng em thực hiện và chưa có phần nào của luận văn này được nộp để lấy một bằng cấp ở trường Bách Khoa hoặc trường khác. Tp. Hồ Chí Minh, ngày 07 tháng 01 năm 2011 Nhóm sinh viên Võ Nguyên Trung – Lê Thị Thanh Hà LỜI CẢM ƠN ------------------ o0o ------------------ Lời đầu tiên, chúng em xin chân thành cảm ơn thầy Phan Đình Khôi đã hướng dẫn và tận tình giúp đỡ chúng em hoàn thành đề tài luận văn này. Đồng thời, chúng em cũng xin gửi lời cảm ơn đến quý thầy cô trong khoa đã tạo điều kiện giúp đỡ trong suốt quá trình hoàn thành. Ngoài ra, chúng em cũng gửi lời cảm ơn đến các nhóm bạn cũng trao đổi, chia sẻ kiến thức giúp chúng em hoàn thành luận này một cách tốt đẹp nhất. Cuối cùng, chúng em xin cảm ơn Công ty Renesas đã hỗ trợ cho khoa Khoa Học và Kỹ Thuật Máy Tính cũng như Câu lạc bộ Phần Cứng board và tài liệu T- Engine tạo điều kiện cho chúng em nghiên cứu và thực hiện đề tài. TÓM TẮT LUẬN VĂN ------------------ o0o ------------------ Nội dung của đề tài là tìm hiểu về định dạng file FLAC, thực hiện giải mã file này và xuất ra cổng audio của T Engine board. Sau đó, tìm hiểu và phát triển driver âm thanh trên T Engine board để điều khiển trình chơi nhạc. Vì file FLAC có dung lượng khá lớn nên phải nghiên cứu giải thuật đồng bộ giữa các quá trình đọc file, giải mã, đẩy dữ liệu ra buffer driver và điều khiển driver phát nhạc để đảm bảo chất lượng âm thanh là tốt nhất với những đáp ứng của phần cứng. Trên cơ sở đó, xây dựng giao diện chương trình chơi nhạc định dạng file FLAC và các file khác như MP3, WAV trên T Engine board. Giao diện này sẽ có đầy đủ các tính năng của một trình nghe nhạc thông dụng. MỤC LỤC LỜI CAM ĐOAN .......................................................................................................... ii LỜI CẢM ƠN............................................................................................................... iii TÓM TẮT LUẬN VĂN............................................................................................... iv MỤC LỤC ..................................................................................................................... v MỤC LỤC HÌNH ....................................................................................................... viii MỤC LỤC BẢNG ........................................................................................................ ix CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI ........................................................................... 1 1.1Giới thiệu ........................................................................................................................... 1 1.2Ứng dụng ........................................................................................................................... 2 1.3Các vấn đề của đề tài ......................................................................................................... 2 1.4Hướng giải quyết .............................................................................................................. 3 1.4.1Cấu trúc của file FLAC ............................................................................................... 3 1.4.2Giải mã file FLAC ..................................................................................................... 3 1.4.3Driver âm thanh ......................................................................................................... 3 1.4.4Xây dựng giao diện đồ hoạ ......................................................................................... 3 1.4.5Bổ sung các loại file khác ........................................................................................... 3 1.5Nội dung báo cáo ............................................................................................................... 4 CHƯƠNG 2: KIẾN THỨC NỀN TẢNG.................................................................... 5 2.1 Dự đoán tuyến tính LPC(Linear predictive coding) ......................................................... 5 2.2 Mã Huffman ...................................................................................................................... 6 2.2.1Biểu diễn mã tiền tố trên cây nhị phân ...................................................................... 7 2.2.2Xây dựng bộ mã tiền tố tối ưu .................................................................................... 7 2.2.3 Hàng đợi ưu tiên: ...................................................................................................... 8 2.2.4Xây dựng cây Huffman: ............................................................................................. 8 2.2.5Xây dựng bộ mã .......................................................................................................... 8 2.2.6Nén file bằng mã Huffman ......................................................................................... 9 2.3Rice Coding ..................................................................................................................... 10 2.3.1Mã Golomb .............................................................................................................. 10 2.3.2Mã Rice: ................................................................................................................... 11 2.3.3Ứng dụng: ................................................................................................................. 13 2.4Sơ lược về bộ tổng hợp âm thanh của T-Engine.............................................................. 13 2.4.1Sơ đồ khối ................................................................................................................. 13 2.4.2Các chân kết nối (Connector pins) ............................................................................ 15 2.4.3 Audio codec UDA1342TS ....................................................................................... 16 2.5Giao tiếp I2C Hitachi ....................................................................................................... 18 2.5.1Module giao diện âm thanh nối tiếp ......................................................................... 19 2.5.2Các chân output/input ............................................................................................... 21 2.6Driver âm thanh ............................................................................................................... 21 2.6.1Sơ đồ hoạt động ........................................................................................................ 21 2.6.2Cấu trúc dữ liệu......................................................................................................... 21 CHƯƠNG 3: TỔNG QUAN VỀ FILE FLAC (FREE LOSSLESS AUDIO CODEC) ....................................................................................................................... 27 3.1Một vài chuẩn lossless ..................................................................................................... 27 3.1.1APE (Monkey’s Audio) ............................................................................................ 27 3.1.2WV(WavPack) : ....................................................................................................... 27 3.1.3FLAC (Free Lossless Audio Codec) ......................................................................... 28 3.2Giới thiệu về file FLAC - Free Lossless Audio Codec ................................................... 28 3.2.1Metadata.................................................................................................................... 29 3.2.2Audio data ................................................................................................................. 29 3.2.3Frame ....................................................................................................................... 29 3.3Quá trình mã hóa file FLAC ............................................................................................ 29 3.3.1Định nghĩa................................................................................................................. 30 3.3.2Blocking .................................................................................................................... 30 3.3.3INTER CHANNEL DECORRELATION ................................................................ 31 3.3.4 Prediction ................................................................................................................. 32 3.3.5Residual Coding ........................................................................................................ 33 3.4Cấu trúc file FLAC .......................................................................................................... 35 CHƯƠNG 4: XÂY DỰNG CHƯƠNG TRÌNH NGHE NHẠC .............................. 41 4.1Giải mã file FLAC ........................................................................................................... 41 4.1.1 Đọc thông tin của file............................................................................................... 41 4.1.2Đọc frame, giải mã file FLAC .................................................................................. 41 4.1.3Residual coding......................................................................................................... 48 4.1.4Mã Rice ..................................................................................................................... 49 4.2Thiết kế chương trình nghe nhạc ..................................................................................... 51 4.2.1Phân tích vấn đề ........................................................................................................ 51 4.2.2Hoạt động của chương trình ..................................................................................... 52 4.2.3Hiện thực chương trình ............................................................................................. 56 CHƯƠNG 5:TỔNG KẾT........................................................................................... 69 5.1Kết quả thực hiện ............................................................................................................. 69 5.2Thuận lợi và khó khăn ..................................................................................................... 69 5.2.1Thuận lợi: .................................................................................................................. 69 5.2.2Khó khăn: .................................................................................................................. 70 5.3Hướng phát triển .............................................................................................................. 70 TÀI LIỆU THAM KHẢO .......................................................................................... 71 MỤC LỤC HÌNH LỜI CAM ĐOAN .......................................................................................................... ii LỜI CẢM ƠN............................................................................................................... iii TÓM TẮT LUẬN VĂN............................................................................................... iv MỤC LỤC ..................................................................................................................... v MỤC LỤC HÌNH ....................................................................................................... viii MỤC LỤC BẢNG ........................................................................................................ ix CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI ........................................................................... 1 1.1Giới thiệu ........................................................................................................................... 1 1.2Ứng dụng ........................................................................................................................... 2 1.3Các vấn đề của đề tài ......................................................................................................... 2 1.4Hướng giải quyết .............................................................................................................. 3 1.4.1Cấu trúc của file FLAC ............................................................................................... 3 1.4.2Giải mã file FLAC ..................................................................................................... 3 1.4.3Driver âm thanh ......................................................................................................... 3 1.4.4Xây dựng giao diện đồ hoạ ......................................................................................... 3 1.4.5Bổ sung các loại file khác ........................................................................................... 3 1.5Nội dung báo cáo ............................................................................................................... 4 CHƯƠNG 2: KIẾN THỨC NỀN TẢNG.................................................................... 5 2.1 Dự đoán tuyến tính LPC(Linear predictive coding) ......................................................... 5 2.2 Mã Huffman ...................................................................................................................... 6 2.2.1Biểu diễn mã tiền tố trên cây nhị phân ...................................................................... 7 2.2.2Xây dựng bộ mã tiền tố tối ưu .................................................................................... 7 2.2.3 Hàng đợi ưu tiên: ...................................................................................................... 8 2.2.4Xây dựng cây Huffman: ............................................................................................. 8 2.2.5Xây dựng bộ mã .......................................................................................................... 8 2.2.6Nén file bằng mã Huffman ......................................................................................... 9 Hình 2.1: sơ đồ mã hóa các kí tự bằng mã Huffman .................................................... 9 2.3Rice Coding ..................................................................................................................... 10 2.3.1Mã Golomb .............................................................................................................. 10 Hình 2.2 Mã Golomb .................................................................................................... 11 2.3.2Mã Rice: ................................................................................................................... 11 2.3.3Ứng dụng: ................................................................................................................. 13 2.4Sơ lược về bộ tổng hợp âm thanh của T-Engine.............................................................. 13 2.4.1Sơ đồ khối ................................................................................................................. 13 Hình 2.3 Sơ đồ kết nối .................................................................................................. 14 Hình 2.4 Khối điều khiển tổng hợp âm thanh ............................................................... 15 2.4.2Các chân kết nối (Connector pins) ............................................................................ 15 Hình 2.5 Sơ đồ chân của bộ tổng hợp âm thanh ........................................................... 15 2.4.3 Audio codec UDA1342TS ....................................................................................... 16 Hình 2.6: Sơ đồ khối UDA1342TS............................................................................... 18 2.5Giao tiếp I2C Hitachi ....................................................................................................... 18 Hình 2.7: Sơ đồ kết nối giao tiếp I2C ........................................................................... 19 2.5.1Module giao diện âm thanh nối tiếp ......................................................................... 19 Hình 2.8: Sơ đồ khối SSI .............................................................................................. 20 2.5.2Các chân output/input ............................................................................................... 21 2.6Driver âm thanh ............................................................................................................... 21 2.6.1Sơ đồ hoạt động ........................................................................................................ 21 Hình 2.9: Hoạt động của driver âm thanh ..................................................................... 21 2.6.2Cấu trúc dữ liệu......................................................................................................... 21 DN_AUDIO_SETTINGFMTS: Thuộc tính này có thể đọc hoặc thiết lập định dạng audio hoạt đông cho driver với 2 hàm tk_rea_dev() và tk_swri_dev()......................... 23 DN_AUDIO_PLAYAUDIO: Thuộc tính cho phép ghi dữ liệu lên vào buffer driver với hàm tk_swri_dev(). ................................................................................................. 24 DN_AUDIO_MIXEROUTPUTVOL: Thuộc tính cho phép điều chỉnh và lấy dữ liệu của loa. .......................................................................................................................... 24 CHƯƠNG 3: TỔNG QUAN VỀ FILE FLAC (FREE LOSSLESS AUDIO CODEC) ....................................................................................................................... 27 3.1Một vài chuẩn lossless ..................................................................................................... 27 3.1.1APE (Monkey’s Audio) ............................................................................................ 27 3.1.2WV(WavPack) : ....................................................................................................... 27 3.1.3FLAC (Free Lossless Audio Codec) ......................................................................... 28 3.2Giới thiệu về file FLAC - Free Lossless Audio Codec ................................................... 28 3.2.1Metadata.................................................................................................................... 29 3.2.2Audio data ................................................................................................................. 29 3.2.3Frame ....................................................................................................................... 29 3.3Quá trình mã hóa file FLAC ............................................................................................ 29 3.3.1Định nghĩa................................................................................................................. 30 3.3.2Blocking .................................................................................................................... 30 3.3.3INTER CHANNEL DECORRELATION ................................................................ 31 3.3.4 Prediction ................................................................................................................. 32 a.Verbatim..................................................................................................................... 32 c.Fixed linear predictor ................................................................................................. 33 d.FIR linear prediction .................................................................................................. 33 3.3.5Residual Coding ........................................................................................................ 33 3.4Cấu trúc file FLAC .......................................................................................................... 35 Hình 3.1: Cấu trúc của file FLAC............................................................................... 35 Hình 3.2: Cấu trúc của Streaminfo metadata ................................................................ 36 Hình 3.3: Cấu trúc của Application metadata ............................................................... 36 Hình 3.4: Cấu trúc của Seektable metadata .................................................................. 37 Hình 3.5: Cấu trúc của Vorbis_comment metadata ...................................................... 37 Hình 3.6: Cấu trúc của Picture metadata ...................................................................... 38 CHƯƠNG 4: XÂY DỰNG CHƯƠNG TRÌNH NGHE NHẠC .............................. 41 4.1Giải mã file FLAC ........................................................................................................... 41 4.1.1 Đọc thông tin của file............................................................................................... 41 4.1.2Đọc frame, giải mã file FLAC .................................................................................. 41 Hình 4.1: Cấu trúc của frame ........................................................................................ 42 Hình 4.2 : Cấu trúc của Verbatim subframe ................................................................. 45 Hình 4.1 : Cấu trúc của Fixed subframe ....................................................................... 45 Hình 4.2: Cấu trúc của LPC subframe .......................................................................... 46 4.1.3Residual coding......................................................................................................... 48 Hinh 4.5: Cấu trúc của Residual (phần dư)................................................................... 48 4.1.4Mã Rice ..................................................................................................................... 49 Hình 4.63 Giải mã residual với tham số Rice là 16 ...................................................... 50 Hình 4.4 Giải mã residual với tham số Rice là 4 .......................................................... 50 Hình 4.5 Cách lưu dữ liệu với 2 kênh ........................................................................... 51 4.2Thiết kế chương trình nghe nhạc ..................................................................................... 51 4.2.1Phân tích vấn đề ........................................................................................................ 51 4.2.2Hoạt động của chương trình ..................................................................................... 52 Hình 4.6: Đường đi dữ liệu của chương trình ............................................................... 52 4.2.3Hiện thực chương trình ............................................................................................. 56 Hình 4.70: Hoạt động của main task............................................................................. 56 Hình 4.81: Cấu trúc tổng quát của chương trình .......................................................... 57 a.Usb_task ..................................................................................................................... 58 Hình 4.91: Hoạt động của usb_task .............................................................................. 58 CHƯƠNG 5:TỔNG KẾT........................................................................................... 69 5.1Kết quả thực hiện ............................................................................................................. 69 5.2Thuận lợi và khó khăn ..................................................................................................... 69 5.2.1Thuận lợi: .................................................................................................................. 69 5.2.2Khó khăn: .................................................................................................................. 70 5.3Hướng phát triển .............................................................................................................. 70 TÀI LIỆU THAM KHẢO .......................................................................................... 71 MỤC LỤC BẢNG LỜI CAM ĐOAN .......................................................................................................... ii LỜI CẢM ƠN............................................................................................................... iii TÓM TẮT LUẬN VĂN............................................................................................... iv MỤC LỤC ..................................................................................................................... v MỤC LỤC HÌNH ....................................................................................................... viii MỤC LỤC BẢNG ........................................................................................................ ix CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI ........................................................................... 1 1.1Giới thiệu ........................................................................................................................... 1 1.2Ứng dụng ........................................................................................................................... 2 1.3Các vấn đề của đề tài ......................................................................................................... 2 1.4Hướng giải quyết .............................................................................................................. 3 1.4.1Cấu trúc của file FLAC ............................................................................................... 3 1.4.2Giải mã file FLAC ..................................................................................................... 3 1.4.3Driver âm thanh ......................................................................................................... 3 1.4.4Xây dựng giao diện đồ hoạ ......................................................................................... 3 1.4.5Bổ sung các loại file khác ........................................................................................... 3 1.5Nội dung báo cáo ............................................................................................................... 4 CHƯƠNG 2: KIẾN THỨC NỀN TẢNG.................................................................... 5 2.1 Dự đoán tuyến tính LPC(Linear predictive coding) ......................................................... 5 2.2 Mã Huffman ...................................................................................................................... 6 2.2.1Biểu diễn mã tiền tố trên cây nhị phân ...................................................................... 7 2.2.2Xây dựng bộ mã tiền tố tối ưu .................................................................................... 7 2.2.3 Hàng đợi ưu tiên: ...................................................................................................... 8 2.2.4Xây dựng cây Huffman: ............................................................................................. 8 2.2.5Xây dựng bộ mã .......................................................................................................... 8 2.2.6Nén file bằng mã Huffman ......................................................................................... 9 Hình 2.1: sơ đồ mã hóa các kí tự bằng mã Huffman .................................................... 9 Bảng 2.1 Kết quả mã hóa các kí tự bằng mã Huffman ............................................................................ 9 2.3Rice Coding ..................................................................................................................... 10 2.3.1Mã Golomb .............................................................................................................. 10 Hình 2.2 Mã Golomb .................................................................................................... 11 2.3.2Mã Rice: ................................................................................................................... 11 Bảng 2.2 Bảng mã hóa của q ................................................................................................................. 12 Bảng 2.3 Bảng mã hóa r ......................................................................................................................... 13 2.3.3Ứng dụng: ................................................................................................................. 13 2.4Sơ lược về bộ tổng hợp âm thanh của T-Engine.............................................................. 13 2.4.1Sơ đồ khối ................................................................................................................. 13 Hình 2.3 Sơ đồ kết nối .................................................................................................. 14 Hình 2.4 Khối điều khiển tổng hợp âm thanh ............................................................... 15 2.4.2Các chân kết nối (Connector pins) ............................................................................ 15 Hình 2.5 Sơ đồ chân của bộ tổng hợp âm thanh ........................................................... 15 Bảng 2.3 Chức năng các chân của jack CN9........................................................................................... 16 Bảng 2.1 Chức năng các chân của jack CN10......................................................................................... 16 2.4.3 Audio codec UDA1342TS ....................................................................................... 16 Hình 2.6: Sơ đồ khối UDA1342TS............................................................................... 18 2.5Giao tiếp I2C Hitachi ....................................................................................................... 18 Hình 2.7: Sơ đồ kết nối giao tiếp I2C ........................................................................... 19 Bảng 2.2 Mô tả chân I2C bus ................................................................................................................. 19 2.5.1Module giao diện âm thanh nối tiếp ......................................................................... 19 Hình 2.8: Sơ đồ khối SSI .............................................................................................. 20 2.5.2Các chân output/input ............................................................................................... 21 Bảng 2.3 Mô tả chân SSI bus.................................................................................................................. 21 2.6Driver âm thanh ............................................................................................................... 21 2.6.1Sơ đồ hoạt động ........................................................................................................ 21 Hình 2.9: Hoạt động của driver âm thanh ..................................................................... 21 2.6.2Cấu trúc dữ liệu......................................................................................................... 21 DN_AUDIO_SETTINGFMTS: Thuộc tính này có thể đọc hoặc thiết lập định dạng audio hoạt đông cho driver với 2 hàm tk_rea_dev() và tk_swri_dev()......................... 23 DN_AUDIO_PLAYAUDIO: Thuộc tính cho phép ghi dữ liệu lên vào buffer driver với hàm tk_swri_dev(). ................................................................................................. 24 DN_AUDIO_MIXEROUTPUTVOL: Thuộc tính cho phép điều chỉnh và lấy dữ liệu của loa. .......................................................................................................................... 24 CHƯƠNG 3: TỔNG QUAN VỀ FILE FLAC (FREE LOSSLESS AUDIO CODEC) ....................................................................................................................... 27 3.1Một vài chuẩn lossless ..................................................................................................... 27 3.1.1APE (Monkey’s Audio) ............................................................................................ 27 3.1.2WV(WavPack) : ....................................................................................................... 27 3.1.3FLAC (Free Lossless Audio Codec) ......................................................................... 28 3.2Giới thiệu về file FLAC - Free Lossless Audio Codec ................................................... 28 3.2.1Metadata.................................................................................................................... 29 3.2.2Audio data ................................................................................................................. 29 3.2.3Frame ....................................................................................................................... 29 3.3Quá trình mã hóa file FLAC ............................................................................................ 29 3.3.1Định nghĩa................................................................................................................. 30 3.3.2Blocking .................................................................................................................... 30 3.3.3INTER CHANNEL DECORRELATION ................................................................ 31 3.3.4 Prediction ................................................................................................................. 32 a.Verbatim..................................................................................................................... 32 c.Fixed linear predictor ................................................................................................. 33 d.FIR linear prediction .................................................................................................. 33 3.3.5Residual Coding ........................................................................................................ 33 3.4Cấu trúc file FLAC .......................................................................................................... 35 Hình 3.1: Cấu trúc của file FLAC............................................................................... 35 Bảng 3.1: Các loại metadata block......................................................................................................... 35 Hình 3.2: Cấu trúc của Streaminfo metadata ................................................................ 36 Hình 3.3: Cấu trúc của Application metadata ............................................................... 36 Hình 3.4: Cấu trúc của Seektable metadata .................................................................. 37 Hình 3.5: Cấu trúc của Vorbis_comment metadata ...................................................... 37 Bảng 3.2: Bảng thông tin chứa trong Vorbis_comment metadata ....................................................... 37 Hình 3.6: Cấu trúc của Picture metadata ...................................................................... 38 Bảng 3.3: Các loại dữ liệu trong Picture metadata ................................................................................ 38 CHƯƠNG 4: XÂY DỰNG CHƯƠNG TRÌNH NGHE NHẠC .............................. 41 4.1Giải mã file FLAC ........................................................................................................... 41 4.1.1 Đọc thông tin của file............................................................................................... 41 4.1.2Đọc frame, giải mã file FLAC .................................................................................. 41 Hình 4.1: Cấu trúc của frame ........................................................................................ 42 Bảng 4.1: Thông tin chi tiết của file từ frame header............................................................................ 42 Bảng 4.2: số bit trên một mẫu tương ứng trong trường “bit persample” ............................................ 43 Bảng 4.3: Các loại subframe .................................................................................................................. 44 Hình 4.2 : Cấu trúc của Verbatim subframe ................................................................. 45 Hình 4.1 : Cấu trúc của Fixed subframe ....................................................................... 45 Bảng 4.4 Công thức tính giá trị mẫu trong Fixed subframe .................................................................. 45 Bảng 4.5 Ví dụ đơn giản về cách tính mẫu ............................................................................................ 45 Hình 4.2: Cấu trúc của LPC subframe .......................................................................... 46 Bảng 4.6 Ví dụ tính giá trị mẫu trong LPC subframe ............................................................................. 47 4.1.3Residual coding......................................................................................................... 48 Hinh 4.5: Cấu trúc của Residual (phần dư)................................................................... 48 4.1.4Mã Rice ..................................................................................................................... 49 Hình 4.63 Giải mã residual với tham số Rice là 16 ...................................................... 50 Hình 4.4 Giải mã residual với tham số Rice là 4 .......................................................... 50 Hình 4.5 Cách lưu dữ liệu với 2 kênh ........................................................................... 51 Bảng 4.7 Tái tạo kênh ............................................................................................................................ 51 4.2Thiết kế chương trình nghe nhạc ..................................................................................... 51 4.2.1Phân tích vấn đề ........................................................................................................ 51 4.2.2Hoạt động của chương trình ..................................................................................... 52 Hình 4.6: Đường đi dữ liệu của chương trình ............................................................... 52 4.2.3Hiện thực chương trình ............................................................................................. 56 Hình 4.70: Hoạt động của main task............................................................................. 56 Hình 4.81: Cấu trúc tổng quát của chương trình .......................................................... 57 a.Usb_task ..................................................................................................................... 58 Hình 4.91: Hoạt động của usb_task .............................................................................. 58 CHƯƠNG 5:TỔNG KẾT........................................................................................... 69 5.1Kết quả thực hiện ............................................................................................................. 69 5.2Thuận lợi và khó khăn ..................................................................................................... 69 5.2.1Thuận lợi: .................................................................................................................. 69 5.2.2Khó khăn: .................................................................................................................. 70 5.3Hướng phát triển .............................................................................................................. 70 TÀI LIỆU THAM KHẢO .......................................................................................... 71 CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI 1.1 Giới thiệu Hiện nay, sự phát triển của công nghệ và mạng internet, nhu cầu chia sẻ thông tin và dữ liệu ngày càng cao. Âm nhạc và phim ảnh là một trong số những dữ liệu được quan tâm chia sẻ nhiều nhất. Đường truyền internet hiện nay mặc dù đã được cải thiện và phát triển rất nhiều so với trước nhưng vẫn không thể đáp ứng được với khối lượng đồ sộ của dữ liệu gốc. Vấn đề đặt ra với các nhà nghiên cứu công nghệ là tạo được những dữ liệu tương đương nhưng với một dung lượng vừa đủ để có thể chia sẻ qua mạng. Nén dữ liệu là giải pháp được sử dụng phổ biến. Với nhiều thuật toán nén khác nhau, ta có thể tạo ra được nhiều loại nhạc nén với chất lượng và dung lượng đa dạng, tùy vào mục đích sử dụng. Trong một số trường hợp, với một số dạng âm thanh, sẽ rất khó để có thể phân biệt được chất lượng giữa âm thanh gốc và các định dạng nén mất dữ liệu như MP3. Mặc dù thuật toán nén của MP3 đang dần được cải thiện, nhưng những gì mất đi khó mà lấy lại được, âm thanh lại càng khó. Với một số loại nhạc sử dụng nhiều loại nhạc cụ hay nhạc cổ điển thì tần số âm thanh có thể rất cao hoặc rất trầm, cắt xén quá nhiều dẫn đến suy giảm nghiêm trọng chất lượng của nó. Theo sự phát triển của công nghệ, nhu cầu con người cũng dần được nâng cao. Ngày xưa người ta dễ dàng chấp nhận một file nén định dạng mp3 có dung lượng gần bằng 1/11 file âm thanh gốc, với một lượng lớn mẫu bị cắt xén. Nhưng ngày nay với một dàn loa được đầu tư tốt, thì yêu cầu về chất lượng âm nhạc cũng được nâng lên. Bài toán đặt ra là làm sao để có thể giữ được chất lượng của âm thanh gốc mà dung lượng của dữ liệu vẫn có thể được giảm xuống. Thế hệ của nhạc nén không mất dữ liệu ra đời nhằm thỏa mãn yêu cầu trên. Theo xu hướng trên, tương lai không xa, những yêu cầu về chất lượng âm thanh gốc trên các thiết bị di động, cầm tay sẽ là một trong những nhu cầu bức thiết, khi mà phần cứng của chúng được cải thiện để đáp ứng yêu cầu của những người yêu nhạc khó tính. Do đó, nhóm em quyết định chọn đề tài xây dựng chương trình nghe nhạc định dạng file FLAC (Free Lossless Audio Codec) là một định dạng file nén không mất dữ liệu (lossless) trên T Engine board, nhằm giải quyết một phần nhỏ của vấn đề trên. 1.2 Ứng dụng Chương trình sẽ đóng góp một phần vào các ứng dụng nghe nhạc hiện nay trên các thiết bị di động như mp3, điện thoại di động, mp4 hay các thiết bị gia dụng nhằm làm phong phú thêm các loại định dạng có thể chơi được trên các thiết bị ấy, giải quyết được phần nào các yêu cầu nghe nhạc chất lượng cao của những người yêu nhạc khó tính. 1.3 Các vấn đề của đề tài Yêu cầu của đề tài là xây dựng được chương trình chơi file FLAC trên board T- Engine. Vì thế vấn đề đầu tiên cần giải quyết chính là phải tìm hiểu về định dạng file FLAC, sau đó tìm hiểu các giải thuật dùng để mã hóa file FLAC và hiện thực giải mã file FLAC trên nền linux. Vấn đề tiếp theo là tìm hiểu driver âm thanh của board T Engine, xuất được file FLAC ra cổng audio sao cho chất lượng âm thanh được đảm bảo là tốt nhất với những gì phần cứng hỗ trợ. Vấn đề cuối cùng là xây dựng giao diện đồ họa cho chương trình, giao diện đồ họa phải gồm các chức năng cơ bản của một trình nghe nhạc thông thường. Ngoài file FLAC, chương trình còn hỗ trợ chơi một số file khác như MP3, WAV. Chương trình có thể tìm và chơi tất cả các file nhạc nằm trong PC card hay USB. 1.4 Hướng giải quyết 1.4.1 Cấu trúc của file FLAC Trước khi nghiên cứu về giải thuật giải mã file FLAC, cần phải nắm rõ cấu trúc của file, để có thể dễ dàng định hướng được các bước giãi mã sau này. Cấu trúc file FLAC đã được giới thiệu khá chi tiết trong một số tài liệu trên mạng. 1.4.2 Giải mã file FLAC Tìm hiểu về một số giải thuật nén không mất dữ liệu như dự đoán tuyến tính (Linear predictive coding - LPC) và một số thuật toán mã hóa như mã hóa Rice, mã Huffman... trước khi tìm hiểu và giải mã file FLAC. 1.4.3 Driver âm thanh Driver âm thanh trên T Engine đã được các nhóm trước đây nghiên cứu và xây dựng. Vấn đề của nhóm chỉ là tìm hiểu quá trình hoạt động của driver, cách truyền dữ liệu và cách sử dụng. Tuy nhiên vì dung lượng của file FLAC là khá lớn nên vấn đề đặt ra là phải cải thiện driver để nâng cao tốc độ đọc và đồng bộ giữa quá trình đọc dữ liệu, quá trình giải mã và quá trình ghi vào driver sao cho hợp lí để chất lượng âm thanh đầu ra là tốt nhất. 1.4.4 Xây dựng giao diện đồ hoạ Phần giao diện của chương trình nghe nhạc sẽ gồm 2 phần chính là playlist để hiển thị các file nhạc được tìm thấy trong USB hay trong PC Card và giao diện chương trình chơi gồm các nút điều khiển để điều khiển các trạng thái. Vì màn hình của T Engine board không lớn nên giao diện sẽ được cắt ra thành 2 hình tương ứng với 2 phần trên. 1.4.5 Bổ sung các loại file khác Tìm hiểu thêm về thư viện của file MP3, tìm hiểu về đề tài chơi nhạc MP3 trên T Engine của các nhóm trước để bổ sung vào, làm cho chương trình phong phú hơn. Tìm hiểu về file WAV là một file âm thanh gốc, không nén và chơi file này bằng chương trình trên. 1.5 Nội dung báo cáo Báo cáo gồm 5 phần: ¾ Chương 1: giới thiệu về đề tài, các vấn đề cần giải quyết, hướng giải quyết. ¾ Chương 2: giới thiệu một số phương pháp mã hóa được sử dụng trong mã hóa file FLAC và driver âm thanh trên T Engine board. ¾ Chương 3: giới thiệu về file FLAC và phương pháp giải mã file FLAC ¾ Chương 4: xây dựng chương trình chơi nhạc file FLAC trên T Engine board. ¾ Chương 5: tổng kết đánh giá kết quả đạt được. CHƯƠNG 2: KIẾN THỨC NỀN TẢNG 2.1 Dự đoán tuyến tính LPC(Linear predictive coding) Dự đoán tuyến tính là một bước không thể thiếu của hầu hết các giải thuật mã hóa âm thanh không mất dữ liệu hiện đại ngày nay. Đây là phép toán xác định giá trị tương lai của một tín hiệu rời rạc theo thời gian bằng hàm tuyến tính của các tín hiệu trước đó. Trong xử lí tín hiệu số, dự đoán tuyến tính thường được gọi là mã hóa dự đoán tuyến tính (LPC) và có thể xem là một phần của lí thuyết lọc. Trong phân tích hệ thống, dự đoán tuyến tính có thể được xem là một phần của mô hình toán học hay tối ưu hóa. p Mô hình dự đoán: x'(n) = ∑ i=1 ai*x(n-1) Trong đó x'(n) là tín hiệu được dự đoán, x(n-i) là giá trị các tín hiệu trước đó và ai là hệ số dự đoán. N là chỉ số về thời gian của tín hiệu, p là bậc của dự đoán tuyến tính hay là bậc của LPC. Các lỗi hay còn gọi là sự sai biệt (residual) tạo ra bởi phương pháp này là e(n)=x(n)-x'(n). Với x(n) là tín hiệu gốc, x'(n) là tín hiệu dự đoán. Theo nguyên tắc, khi đã có thông tin về quá khứ thì việc dự đoán cho tương lai là có cơ sở và dễ dàng hơn rất nhiều, do đó độ chính xác của dự đoán cũng cao. Vì vậy, sự sai biệt hay còn gọi là lỗi (residual) e(n) được tạo ra bởi phương pháp này là khá nhỏ. Số bit cần dùng để lưu trữ residual vì vậy cũng nhỏ. Lúc đó, việc truyền dữ liệu cũng như lưu trữ dữ liệu gốc có thể là không cần thiết nếu như có thể dự đoán được dữ liệu ấy. Khi ấy, chỉ cần truyền hay lưu trữ sự sai biệt (residual), sau đó kết hợp giữa sự sai biệt (residual) với tín hiệu dự đoán để khôi phục lại tín hiệu gốc ban đầu. Như vậy, sẽ giảm được một lượng lớn số bit cần dùng để lưu tín hiệu gốc mà vẫn đảm bảo được độ chính xác của tín hiệu gốc.

Tìm luận văn, tài liệu, khoá luận - 2024 © Timluanvan.net