Đăng ký Đăng nhập
Trang chủ ứng dụng công nghệ tính toán đa dụng trên các bộ xử lý đồ họa đa lõi của nvidia ...

Tài liệu ứng dụng công nghệ tính toán đa dụng trên các bộ xử lý đồ họa đa lõi của nvidia trong bài toán mã hóa âm thanh chuẩn aac

.PDF
68
102
81

Mô tả:

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI --------------------------------------PHẠM XUÂN TOÁI ỨNG DỤNG CÔNG NGHỆ TÍNH TOÁN ĐA DỤNG TRÊN CÁC BỘ XỬ LÝ ĐỒ HỌA ĐA LÕI CỦA NVIDIA TRONG BÀI TOÁN MÃ HÓA ÂM THANH CHUẨN AAC Chuyên ngành : Công Nghệ Thông Tin LUẬN VĂN THẠC SĨ KHOA HỌC Chuyên Ngành Công Nghệ Thông Tin NGƯỜI HƯỚNG DẪN KHOA HỌC : 1. TS.Nguyễn Hữu Đức Hà Nội –2011 Ứng dụng công nghệ tính toán đa dụng trên các bộ xử lý đồ họa đa lõi của Nvidia trong bài toán mã hóa âm thanh chuẩn AAC LỜI CAM ĐOAN. Tôi là Phạm Xuân Toái Sinh viên lớp cao học Công Nghệ Thông Tin Khóa 2009 Đại Học Bách Khao Hà Nội Mã số Học Viên: CB091354 Tôi cam kết Luận Văn Tốt Nghiệp là kết quả nghiên cứu của bản thân tôi dưới sự hướng dẫn của T.S.Nguyễn Hữu Đức. Các kết quả nêu trong Luận Văn Tốt Nghiệp là trung thực, không phải sao chép toàn văn của bất kì công trình nào khác. Phạm Xuân Toái – Cao Học CNTT - 2009- Đại Học Bách Khoa Hà Nội -2- Ứng dụng công nghệ tính toán đa dụng trên các bộ xử lý đồ họa đa lõi của Nvidia trong bài toán mã hóa âm thanh chuẩn AAC LỜI CẢM ƠN Trước tiên, em xin được gửi lời cảm ơn chân thành, sâu sắc tới thầy Nguyễn Hữu Đức, Phó Giám đốc Trung Tâm Tính toán Hiệu năng cao Đại Học Bách Khoa Hà Nội, là người trực tiếp hướng dẫn em thực hiện luận văn này. Trong suốt thời gian thực hiện luận văn, thầy đã rất nhiệt tình hướng dẫn, đưa ra những định hướng, lời khuyên quý báu cho bản luận văn tốt nghiệp của em. Em cũng xin gửi lời cảm ơn tới anh Lê Đức Tùng, bạn Lê Đức Hùng cùng tập thể cán bộ, sinh viên Trung tâm Tính Toán Hiệu năng cao Đại Học Bach Khoa Hà Nội đã giúp đỡ, tạo mọi điều kiện cho em trong suốt quá trình thực hiện luận văn. Tôi cũng gửi lời cảm ơn tới bạn Phạm Nguyễn Quang Anh cùng tập thể lớp Cao học Công Nghệ Thông Tin khóa 2009 Đại Học Bách Khoa Hà Nội vì đã có những đóng góp, chia sẻ rất kịp thời các thông tin rất hữu ích trong suốt quá trình học tập và thực hiện luận văn tốt nghiệp của tôi. Lời cuối cùng, tôi xin gửi lời cảm ơn tới người thân, gia đình, bạn bè đã luôn động viên, cổ vũ tôi trong suối thời gian tôi thực hiện bản luận văn này. Hà Nội, ngày 6 tháng 4 năm 2011 Phạm Xuân Toái Lớp Cao Học Công Nghệ Thông Tin 2009 Đại Học Bách Khoa Hà Nội Phạm Xuân Toái – Cao Học CNTT - 2009- Đại Học Bách Khoa Hà Nội -3- Ứng dụng công nghệ tính toán đa dụng trên các bộ xử lý đồ họa đa lõi của Nvidia trong bài toán mã hóa âm thanh chuẩn AAC MỤC LỤC DANH MỤC HÌNH VẼ. ........................................................................................... - 6 DANH MỤC CÁC BẢNG BIỂU. ............................................................................. - 7 DANH MỤC CÁC THUẬT NGỮ ............................................................................ - 8 MỞ ĐẦU. ................................................................................................................. - 9 CHƯƠNG I. ÂM THANH KĨ THUẬT SỐ. ............................................................ - 12 1.1.Âm Thanh Kỹ Thuật Số.................................................................................. - 12 1.1.1.PCM......................................................................................................... - 12 1.1.2.Lấy mẫu (Sampling). ................................................................................ - 13 1.1.3. Độ Phân Giải (Resolution). ..................................................................... - 13 1. 1.4.Nén.......................................................................................................... - 15 1.2..Định Dạng và Chuẩn Âm Thanh Số............................................................... - 17 1.2.1. Các Chuẩn Âm Thanh Số. ....................................................................... - 17 1.2.2.Mã hóa..................................................................................................... - 18 1.2.3.Kiểu Tệp và Định Dạng Tệp..................................................................... - 18 1.2.4.Header và Siêu dữ liệu. ............................................................................ - 19 1.3.Chuẩn MPEG-AAC........................................................................................ - 19 1.3.1.Tổng quan về MPEG-AAC ....................................................................... - 19 1.3.2.Mã Hóa Mô Đun. ..................................................................................... - 20 1.3.3.Các Định Dạng Chứa............................................................................... - 21 CHƯƠNG II. LẬP TRÌNH ĐA DỤNG TRÊN CÁC BỘ XỬ LÝ ĐỒ HỌA ĐA LÕI CỦA NVIDIA ......................................................................................................... - 22 2.1.Bộ Xử Lý Đồ Họa GPU. ................................................................................ - 22 2.2 Kiến Trúc Tính Toán trên GPU Tesla............................................................ - 24 Phạm Xuân Toái – Cao Học CNTT - 2009- Đại Học Bách Khoa Hà Nội -4- Ứng dụng công nghệ tính toán đa dụng trên các bộ xử lý đồ họa đa lõi của Nvidia trong bài toán mã hóa âm thanh chuẩn AAC 2.3. Mô Hình Lập Trình Song Song CUDA......................................................... - 28 2.4. Những mặt hạn chế của CUDA .................................................................... - 35 2.5. Thiết Lập Môi Trường Tính Toán CUDA...................................................... - 36 2.5.1. Môi trường phần cứng............................................................................. - 36 2.5.2.Bộ công cụ phát triển phần mềm .............................................................. - 37 CHƯƠNG III. PHÂN TÍCH GIẢI THUẬT MÃ HÓA AAC. .................................. - 38 3.1.Thuật Toán Mã Hóa AAC. ............................................................................. - 38 3.1.1.Mô hình âm thanh. ................................................................................... - 40 3.1.2.Điều chỉnh khuếch đại (Gain Control)...................................................... - 43 3.1.3.Filter Bank và Block Switching. ............................................................... - 43 3.1.4.Bộ Dự Đoán (Prediction). ........................................................................ - 44 3.1.5.Định dạng nhiễu thời gian(Temporal Noise Shaping(TNS)). .................... - 45 3.1.6.Mã hóa nối Stereo(Joint Stereo Coding)................................................... - 45 3.1.7.Lượng tử hóa và Mã Hóa ......................................................................... - 46 3.1.8.Mã hóa không mất mát thông tin. ............................................................. - 47 3.2.Khả Năng Song Song Hóa của quá trình mã hóa AAC. .................................. - 48 3.3.Phân Tích Thời Gian Mã Hóa AAC................................................................ - 51 CHƯƠNG IV. CẢI THIỆN HIỆU NĂNG MÃ HÓA ACC VỚI CÁC BỘ XỬ LÝ ĐỒ HỌA ĐA LÕI NVIDIA .................................................................................... - 58 4.1.Thực Hiện Biến Đổi Tuần FFT Trên Cuda. .................................................... - 58 4.2.Tăng Tộc Độ Mã Hóa AAC............................................................................ - 61 4.3.Kết Quả Thực Nghiệm. .................................................................................. - 64 CHƯƠNG V. KẾT LUẬN VÀ ĐỊNH HƯỚNG. ..................................................... - 67 TÀI LIỆU THAM KHẢO. ...................................................................................... - 68 Phạm Xuân Toái – Cao Học CNTT - 2009- Đại Học Bách Khoa Hà Nội -5- Ứng dụng công nghệ tính toán đa dụng trên các bộ xử lý đồ họa đa lõi của Nvidia trong bài toán mã hóa âm thanh chuẩn AAC DANH MỤC HÌNH VẼ. Hình 1.1. Chuyển đổi tương tự -thành số ................................................................. - 13 Hình 1.2. Tần số lấy mẫu và độ phân giải................................................................ - 15 Hình 1.3. Hình minh họa phương pháp mã hóa MP3............................................... - 16 Hình 1.4.Cấu trúc của một file âm thanh số............................................................. - 19 Hình 2.1: GPU dành nhiều transitor hơn để xử lý dữ liệu........................................ - 22 Hình 2.2.: Biểu đồ số phép tính dâu chấm động trên giâyvà băng thông bộ nhớ giữa CPU và GPU........................................................................................................... - 24 Hình 2.3: Kiến trúc Tesla ........................................................................................ - 25 Hình 2.4. Đối chiếu hai đoạn mã xử lý tuần tự và song song ................................... - 30 Hình 2.5: Phân cấp bộ nhớ...................................................................................... - 33 Hình 2.6. Mô hình các luông song song trên Cuda .................................................. - 34 Hình 2.7.Môi trường tính toán Cuda ....................................................................... - 36 Hình 3.1.Mô hình mã hóa AAC................................................................................ - 39 Hình 3.2.Giản đồ khối của mô hình âm thanh.......................................................... - 42 Hình 3.3.Công cụ Điều khiển khuếch đại................................................................. - 43 Hình 3.4.Sơ đồ Prediction. ...................................................................................... - 45 Hình 3.5.Mô hình mã hóa AAC với một file PCM. ................................................... - 48 Hình 3.6. Biểu đồ tỷ lệ thời gian thực hiện trong mã hóa AAC................................. - 57 Hình 4.1.Mô hình thực AAC Encoder song song...................................................... - 63 Hình 4.2.Biểu đồ tỉ lệ tăng tốc của biến đổi CudaFFT song song. ........................... - 66 - Phạm Xuân Toái – Cao Học CNTT - 2009- Đại Học Bách Khoa Hà Nội -6- Ứng dụng công nghệ tính toán đa dụng trên các bộ xử lý đồ họa đa lõi của Nvidia trong bài toán mã hóa âm thanh chuẩn AAC DANH MỤC CÁC BẢNG BIỂU. Bảng 1.1. Các tần số lấy mẫu âm thanh chính. ........................................................ - 14 Bảng 1.2. Một số chuẩn âm thanh phổ biến. ............................................................ - 17 Bảng 3.1.Kết quả phân tích thời gian thực hiện mã hóa với tệp 1. ........................... - 53 Bảng 3.2.Kết quả phân tích thời gian thực hiện mã hóa với tệp 2 ............................ - 54 Bảng 3.3.Kết quả phân tích thời gian thực hiện mã hóa với tệp 3. ........................... - 55 Bảng 3.4.Kết quả phân tích thời gian thực hiện mã hóa với tệp 4. ........................... - 55 Bảng 3.5.Kết quả phân tích thời gian thực hiện mã hóa với tệp5. ............................ - 56 Bảng 4.1.Số thời gian tính CudaFFT. ...................................................................... - 60 Bảng 4.2.Thời gian mã hóa file 1............................................................................. - 65 Bảng 4.3.Thời gian mã hóa file 2............................................................................. - 65 Bảng 4.4.Thời gian mã hóa file 3............................................................................. - 65 Bảng 4.5.Thời gian mã hóa file 4............................................................................. - 66 Bảng 4.6.Thời gian mã hóa file 5............................................................................. - 66 - Phạm Xuân Toái – Cao Học CNTT - 2009- Đại Học Bách Khoa Hà Nội -7- Ứng dụng công nghệ tính toán đa dụng trên các bộ xử lý đồ họa đa lõi của Nvidia trong bài toán mã hóa âm thanh chuẩn AAC DANH MỤC CÁC THUẬT NGỮ 1. MPEG – Moving Picture Experts Group: tên một nhóm phát triển . 2. AAC – Advanced Audio Coding: Tên của một chuẩn mã hóa âm thanh kĩ thuật số. 3. MP3 – MPEG Layer III: Tên của một chuẩn mã hóa âm thanh kĩ thuật số. 4. CPU –Centre Processing Unit: Bộ xử lý trung tâm của máy tính. 5. GPU- Graphic Processing Unit: Bộ xử lý đồ họa. 6. FFT – Fast Fourier Transform: Viết tắt của thuật toán biến đổi fourier nhanh. 7. MDCT – Modified Discrete Cosine Transform: Viết tắt của biến đổi phép biến đổi cô si rời rạc. 8. PCM - pulse-code modulation: Định dạng âm thanh kĩ thuật số không nén. 9. Bitrate – tỷ lệ bit: chỉ số tương ứng với số lượng bit dữ liệu cần để lưu trữ dữ liệu trong một đơn vị thời gian, thường được tính là kbit/s. Phạm Xuân Toái – Cao Học CNTT - 2009- Đại Học Bách Khoa Hà Nội -8- Ứng dụng công nghệ tính toán đa dụng trên các bộ xử lý đồ họa đa lõi của Nvidia trong bài toán mã hóa âm thanh chuẩn AAC MỞ ĐẦU. Sự phát triển của công nghệ thông tin và truyền thông đã và sẽ ảnh hưởng ngày càng sâu sắc đến mọi lĩnh vực, đời sống của con người. Ngày nay, tất cả các dữ liệu từ văn bản, hình ảnh, âm thanh, video đều đã được số hóa. Đặc biệt trong lĩnh vực âm thanh, đang có sự chuyển đổi mạnh mẽ về thiết bị, cách thức thưởng thức, cách thức phân phối của âm thanh đặc biệt làm âm nhạc. Với sự tiện dụng và chất lượng không ngừng được cải tiến thì các thiết bị âm thanh kĩ thuật số đang ngày các trở nên phổ biến. Cách thực hiện phân phối của âm thanh cũng có nhiều thay đổi, đặc biệt là trong lĩnh vực âm nhạc, nghe nhạc trực tuyến đang dần dần thay thế nhà hát và băng đĩa. Cùng với đó là các chuẩn âm thanh không ngừng được cải tiến để có được chất lượng tốt hơn, hiệu suất mã hóa, giải mã cao hơn và phù hợp với việc nghe trực tuyến hơn. Sự ra đời của chuẩn âm thanh MPEG AAC cũng không nằm ngoài mục đích trên. Bên cạnh việc cải tiến về chất lượng âm thanh thì việc cải tiến về tốc độ mã hóa, giải mã cũng là một vấn đề rất đáng để quan tâm. Hai yếu tố chính ảnh hưởng tới quá trình cải tiến này là: năng lực của các hệ thống phần cứng hỗ trợ mã hóa/giải mã; và giải thuật cũng như chương trình mã hóa giải mã trên các hệ thống phần cứng này. Xu hướng cho thấy các hệ thống vi xử lý đa lõi đi kèm với công nghệ tính toán song song đang dần dần được áp dụng vào công nghệ mã hóa/giải mã nói chung và cho bài toán mã hóa âm thanh nói riêng. Cùng với sự phát triển về mặt thuật toán, phần mềm thì lĩnh vực phần cứng cũng đã có những bước phát triển vượt bậc. Khi các mạch điện tử gần như đã đạt tới tới hạn về tốc độ thì việc xây dựng các bộ xử lý đa lõi (2, 4, 8 lõi) và nhiều lõi (hàng chục tới hàng trăm lõi) đang trở thành xu hướng phát triển để nâng cao sức mạnh tính toán của hệ thống. Sự ra đời của các bộ xử lý đồ họa (GPU) với hàm trăm bộ xử lý vô hướng có khả năng xử lý song song cao đã mang lại một phương thức mới để nâng cao tốc độ tính toán. Đặc biệt với sự ra đời của các bộ xử lý đồ họa theo Phạm Xuân Toái – Cao Học CNTT - 2009- Đại Học Bách Khoa Hà Nội -9- Ứng dụng công nghệ tính toán đa dụng trên các bộ xử lý đồ họa đa lõi của Nvidia trong bài toán mã hóa âm thanh chuẩn AAC kiến trúc Tesla chuyên dụng cho tính toán hiệu năng cao của NVIDIA và bộ công cụ lập trình Cuda đã làm cho việc lập trình tính toán trên các bộ xử lý đồ họa mạnh mẽ và tiện lợi hơn cho các ứng dụng đồ họa cũng như phi đồ họa. Vậy nên GPU đang là một lựa chọn mới để tăng tốc độ tính toán và giải quyết các bài toán tính toán hiệu năng cao. Xuất phát từ những nhu cầu trong mã hóa/giải mã âm thanh và xu thế tính toán hiệu năng cao trên các bộ xử lý đồ họa đa lõi, luận văn định hướng đến việc ứng dụng công nghệ tính toán đa dụng trên các bộ xử lý đồ họa của NVIDIA để áp dụng cho bài toán mã hóa, giải mã âm thanh chuẩn AAC nhằm tăng tốc độ cho quá trình mã hóa/giải mã này. Bằng phương pháp phân tích, thử nghiệm, luận văn đã đi vào phân tích các khả năng song song hóa trong quy trình mã hóa chuẩn âm thanh AAC, đo đạc thời gian thực hiện của từng bước trong quy trình để xác định những pha cần được song song, từ đó đưa ra các giải pháp ứng dụng GPU nhằm tăng tốc độ mã hóa chuẩn âm thanh AAC. Qua quá trình tìm hiểu các vấn đề lý thuyết liên quan, phân tích và thực nghiệm, tác giả đã tìm hiểu được về lý thuyết âm thanh kĩ thuật số, mô hình triến trúc Tesla, kỹ thuật lập trình Cuda, tìm hiểu thuật toán mã hóa AAC, phân tích các khả năng song song của thuật toán. Đóng góp chính của luận văn là :  đưa ra những kết quả phân tích về thời gian thực hiện của các bước trong quá trình mã hóa AAC trên giải thuật tuần tự;  đề xuất giải pháp song song hóa một phần trong quá trình mã hóa góp phần cải tiến tốc độ mã hóa lên gấp hơn hai lần (trên hệ thống thử nghiệm). Các phần tiếp của đồ án sẽ được tổ chức như sau: Chương I trình bày các vấn đề cơ bản về âm thanh kĩ thuật số. Chương II trình bày về kiến trúc Tesla và mô Phạm Xuân Toái – Cao Học CNTT - 2009- Đại Học Bách Khoa Hà Nội - 10 - Ứng dụng công nghệ tính toán đa dụng trên các bộ xử lý đồ họa đa lõi của Nvidia trong bài toán mã hóa âm thanh chuẩn AAC hình lập trình song song Cuda. Chương III đưa ra các phân tích về giải thuật mã hóa chuẩn âm thanh AAC. Chương IV trình bày về giải pháp sử dụng GPU để tăng tốc độ mã hóa AAC và kết quả thực nghiệm. Chương V là kết luận và định hướng công việc tương lai. Phạm Xuân Toái – Cao Học CNTT - 2009- Đại Học Bách Khoa Hà Nội - 11 - Ứng dụng công nghệ tính toán đa dụng trên các bộ xử lý đồ họa đa lõi của Nvidia trong bài toán mã hóa âm thanh chuẩn AAC CHƯƠNG I. ÂM THANH KĨ THUẬT SỐ. Chương này trình bày các vấn đề cơ bản của âm thanh kĩ thuật số nói chung và giới thiệu các đặc tính của chuẩn âm thanh MPEG-AAC 1.1.Âm Thanh Kỹ Thuật Số. Âm thanh tự nhiên có thể được thu lại như là tín hiệu tương tự bởi microphone. Để chuyển đổi tín hiệu tương tự này thành định dạng dữ liệu của các tệp âm thanh kĩ thuật số thì thường phải trải qua một số giai đoạn:  Tiền xử lý (pre-emphasis) (tùy chọn, có thể có hoặc không).  Lấy mẫu (sampling)  Chuyển đổi Tương tự sang Số (Analog to Digital Conversion).  Nén(Compression)  Đóng gói và bao bọc (Packetization and wrapping). Hệ thống âm thanh kĩ thuật số đầu tiên sử dụng mã hóa tuyến tính không nén, vì vậy chỉ cần thực hiện ba quá trình đầu tiên: tiền xử lý, lấy mẫu và chuyển đổi tương tự sang số. Dạng dữ liệu được sử dụng rộng dãi nhất là PCM (pulse-code modulation). 1.1.1.PCM. PCM (pulse-code mudulation) là dạng cơ bản của âm thanh kĩ thuật số. Các microphone sẽ sinh ra các điện áp tương ứng với áp suất (hoặc là tốc độ) của không khí. Các mẫu này được lấy trong các khoảng thời gian đều nhau. Giá trị của mẫu sẽ được chuyển thành dưới dạng số. Các tham số cơ bản của mã hóa là tần số lấy mẫu (sampling rate) và độ phân giải (resolution) hoặc là độ sâu bit. Bước tiền xử lý trong Phạm Xuân Toái – Cao Học CNTT - 2009- Đại Học Bách Khoa Hà Nội - 12 - Ứng dụng công nghệ tính toán đa dụng trên các bộ xử lý đồ họa đa lõi của Nvidia trong bài toán mã hóa âm thanh chuẩn AAC lược đồ lấy mẫu là để loại bỏ các âm thanh chói tai, hoặc là các nhiễu tần số cao, trong các mạch điện tử. Bằng cách nâng các nội dung tần số cao, tý lệ tín hiệu nhiễu có thể được cải thiện. Vì vậy tiền xử lý được sử dụng trong việc phát sóng FM, và là một tùy chọn trong mã hóa kỹ thuật số. Điều này làm giảm bớt năng lượng ở các tần số cao với các nội dung điển hình. Tuy nhiên giai đoạn này không thực sự cần thiết đối với quá trình chuyển đổi và mã hóa. Quá trình chuyển đổi từ sóng âm thành tương tự thành số có thể được thực hiện như hình minh họa 1.1. Hình 1.1. Chuyển đổi tương tự -thành số 1.1.2.Lấy mẫu (Sampling). Tần số lấy mẫu được thiết lập bởi bộ đáp ứng tần số. Lý thuyết lấy mẫu chỉ ra rằng tần số lấy mẫu nên lớn hơn hoặc bằng hai lần biên độ tín hiệu muốn thu. Tần số lấy mẫu là một giá trị thỏa hiệp: tần số cao hơn thì có nhiều mẫu được sinh ra. Con người có thể nghe được trong khoảng từ 20 đến 20000Hz, nhưng giọng nói của con người chỉ sử dụng trong khoảng giới hạn ở giữa là từ 500 đến 3000Hz. Đối với các ứng dụng có độ trung thực cao, tần số lấy mẫu phải lớn hơn hoặc bằng 40kHz, nhưng đối với các kênh tiếng nói thì tần số có thể được sử dụng ở tỷ lệ thấp là 6kHz. 1.1.3. Độ Phân Giải (Resolution). Quá trình mã hóa số sẽ chuyển các sóng tương tự (analog waveform), với các giá trị liên tục, thành một số cấp độ rời rạc – một quá trình lượng tử hóa. Số lượng cấp độ được sử dụng sẽ xác định độ phân giải. Phạm Xuân Toái – Cao Học CNTT - 2009- Đại Học Bách Khoa Hà Nội - 13 - Ứng dụng công nghệ tính toán đa dụng trên các bộ xử lý đồ họa đa lõi của Nvidia trong bài toán mã hóa âm thanh chuẩn AAC Tần số lấy mẫu Bộ đáp ứng tần số Ứng dụng 8 kHz 200 Hz–3.3 kHz Điện thoại 16 kHz 100 Hz–7 kHz Truyền giọng nói băng thông rộng 32 kHz 50 Hz–15 kHz Thông tin đại chúng 44.1 kHz 20 Hz–20 kHz Tiêu dung 48 kHz 20 Hz–20 kHz Hệ thống chuyên nghiệp Max. 192 kHz Lên tới 96 kHz DVD-A Lên tới 100 kHz SACD 2.8224 MHz Bảng 1.1. Các tần số lấy mẫu âm thanh chính. Giá trị bước tối thiểu thiết lập sàn tiếng ồn của tín hiệu được chuyển đổi. Trong phần lớn các biến đổi, mỗi bước có cùng một giá trị, được gọi là PCM tuyến tính. Các chương trình ứng dụng có yêu cầu thấp hơn thường sử dụng 16bit lấy mẫu. Những người dùng chuyên nghiệp sẽ yêu cầu độ phân giải cao hơn là 20 hoặc 24bit. Bảng 1.1 chỉ ra các khoảng lấy mẫu và ứng dụng. Trong thực thế, điều này không thể đạt được, vì vậy vẫn có một số tiếng ồn được thể hiện trong bộ chuyển đổi tương tự thành số và trong các giai đoạn trước giữa bộ chuyển đổi microphone và bộ chuyển đổi. Phạm Xuân Toái – Cao Học CNTT - 2009- Đại Học Bách Khoa Hà Nội - 14 - Ứng dụng công nghệ tính toán đa dụng trên các bộ xử lý đồ họa đa lõi của Nvidia trong bài toán mã hóa âm thanh chuẩn AAC Hình 1.2. Tần số lấy mẫu và độ phân giải. 1. 1.4.Nén. 1. 1.4.1.Nén không mất mát thông tin. Nhiều loại dữ liệu chứa các thông tin dư thừa mà có thể có cách thức biểu diễn khác hiệu quả hơn, đó chính là các phương pháp nén không mất mát thông tin. Một trong các phương pháp thường được sử dụng đó là phương pháp mã hóa Huffman. Ưu điểm chính của phương pháp này đó là khi giải nén thì có thể khôi phục lại toàn bộ thông tin được mã hóa mà không có lỗi. Tuy nhiên nhược điểm của phương pháp này là tỷ lên nén thấp dẫn tới dữ liệu phải lưu trữ lớn. 1. 1.4.2. Nén mất mát thông tin. Nén mất mát thông tin hoạt động bằng các bỏ qua các thông tin không cần thiết và các thông tin dư thừa (tức là các âm thanh mà phần lớn con người không thể Phạm Xuân Toái – Cao Học CNTT - 2009- Đại Học Bách Khoa Hà Nội - 15 - Ứng dụng công nghệ tính toán đa dụng trên các bộ xử lý đồ họa đa lõi của Nvidia trong bài toán mã hóa âm thanh chuẩn AAC nghe thấy được) và sau đó áp dụng các kỹ thuật nén không mất mát thông tin để giảm kích thước dữ liệu nhiều hơn. Với mã hóa mất mát thông tin, chất lượng âm thanh nhận được sẽ khác nhau tùy thuộc vào các yếu tố như là tỷ lệ bit, độ phức tạp của âm nhạc và kiểu phần mềm mã hóa. Hình 1.3. Hình minh họa phương pháp mã hóa MP3. Mã hóa mất dữ liệu là một quá trình chuyển đổi dữ liệu âm thanh dạng số chưa được nén, như là PCM, WAV, hoặc là AIFF, thành các định dạng được nén như là MP3, AAC. Các phần mềm được sử dụng trong các quá trình mã hóa (hoặc giải mã) được xem như là một bộ CODEC trong mã hóa và giải mã (hoặc là một bộ nén/ giải nén). Thường có nhiều hơn một CODEC cho một định dạng âm thanh, thậm chí cùng một định dạng âm thanh,các bộ CODEC khác nhau cũng có thể có chất lượng âm thanh và tốc độ mã hóa khác nhau. Ưu điểm chính của nén mất mát thông tin đó là tỉ lệ nén cao.Nhưng nhược điểm đó là sau khi giải nén thì không khôi phục lại được thông tin ban đầu và bộ giải mã, mã hóa phức tạp. Phạm Xuân Toái – Cao Học CNTT - 2009- Đại Học Bách Khoa Hà Nội - 16 - Ứng dụng công nghệ tính toán đa dụng trên các bộ xử lý đồ họa đa lõi của Nvidia trong bài toán mã hóa âm thanh chuẩn AAC 1.2..Định Dạng và Chuẩn Âm Thanh Số. Từ định dạng trong có một vài nghĩa, tùy thuộc vào ngữ cảnh. Khi nói về định dạng của âm thành là chúng ta nói đến cách thức nội dụng âm thanh được tổ chức để lưu trữ và phải hồi lại thông tin. 1.2.1. Các Chuẩn Âm Thanh Số. Các chuẩn của các định dạng âm thanh số có thể để chỉ ra các định dạng tệp, các phương pháp mã hóa, tỷ lệ lấy mẫu, độ phân giải, thiết bị vật lý và các đặc tính khác. Các tham số như là tỷ lệ lấy mẫu, độ phân giải và số lượng các kênh có được chỉ định các giá trị cố định hoặc là một khoảng giá trị. Các chuẩn âm thanh số là cần thiết để đảm bảo khá năng tương thích giữa các thiết bị và phương tiện từ các nguồn khác nhau. Ví dụ như một tệp dữ liệu MP3 bất kì được tạo theo đúng chuẩn MP3 thì có thể được chơi trên bất kì chương trình hay thiết bị chơi nhạc nào có hỗ trợ chuẩn MP3. Một số chuẩn, ví dụ như là chuẩn âm thanh CD, lại cung cấp chỉ một phương pháp mã hóa, kiểu phương tiện, độ phân giải và tỷ lệ mẫu, trong khi một số chuẩn khác, ví dụ như chuẩn âm thanh DVD, lại chỉ định một kiểu phương tiện nhưng có thể bao gồm các độ phân giải và tỷ lệ lấy mẫu khác nhau. Chuẩn Kiểu Phương pháp Phương mã hóa Tiện Số kênh Độ Hệ số lấy phân mẫu giải CD audio PCM CD 2 (stereo) 44.1 kHz 16-bit DVD-Audio PCM, MLP DVD 26 44.1192 kHz 16-, 20-, 24-bit MPEG Audio MPEG LayerBất kì Layer-III (MP3) III Đơn âm 1648 kHz hoặc stereo Bảng 1.2. Một số chuẩn âm thanh phổ biến. Phạm Xuân Toái – Cao Học CNTT - 2009- Đại Học Bách Khoa Hà Nội - 17 - N/A Ứng dụng công nghệ tính toán đa dụng trên các bộ xử lý đồ họa đa lõi của Nvidia trong bài toán mã hóa âm thanh chuẩn AAC 1.2.2.Mã hóa. Khi âm thanh tương tự được chuyển thành dữ liệu số, các mẫu (các đơn vị âm thanh rời rạc) được lưu trữ trong một tệp (hoặc luồng) không có bất kì một xử lý nào khác ngoại trừ việc sắp xếp chúng theo đúng thứ tự của một định dạng cụ thể. Việc nhận lại dữ liệu để chơi chỉ đơn giản là phép xử lý lấy lại dữ liệu theo đúng thứ tự. Kiểu âm thanh này thường được xem như là kiểu thô hoặc là kiểu chưa được nén. Mã hóa cung cấp thêm các xử lý ngoài việc lưu trữ một dữ liệu theo đúng thứ tự một cách đơn thuần. Các bộ mã hóa cung cấp các chương trình toán học phức tạp được gọi là các thuật toán tới một phần hoặc toàn bộ dữ liệu của tệp thay vì tới một mẫu âm thanh riêng lẻ. Điều này cho phép các bộ mã hóa phân tích tệp âm thanh một cách tổng thể để có thể đưa ra các quyết định xem thông tin nào không thể nghe được và thông tin nào có thể được loại bỏ. Các bộ mã hóa lưu trữ các kết quả âm thanh được mã hóa trong các tệp, hoặc gửi tới một máy chủ để được tạo luồng (stream) thông qua mạng máy tính. Trước khi được chơi, âm thanh cần phải được giải nén hoặc là giải mã. Các chương trình có thể thưc hiện toàn bộ quá trình, từ mã hóa/nén tới giải mã/giải nén thì được gọi là các bộ CODEC. Một định dạng thường có nhiều hơn một bộ mã hóa,vì vậy từ phương pháp mã hóa thường để chỉ một định dạng nén cụ thể. 1.2.3.Kiểu Tệp và Định Dạng Tệp. Từ định dạng có thể được sử dụng để mô tả một kiểu tệp âm thanh số cụ thể như là AIFF và WAV. Có một cách gọi chính xác hơn là kiểu tệp. Chúng ta có thể nhận biết kiểu tệp theo phần mới rộng của nó ví dụ như các tệp .wav và .aiff là các kiểu file WAV và AIFF. Phạm Xuân Toái – Cao Học CNTT - 2009- Đại Học Bách Khoa Hà Nội - 18 - Ứng dụng công nghệ tính toán đa dụng trên các bộ xử lý đồ họa đa lõi của Nvidia trong bài toán mã hóa âm thanh chuẩn AAC Định dạng tệp để chỉ cấu trúc của dữ liệu trong tệp. Ví dụ, dữ liệu bên trong một tệp âm thanh số bao gồm một chuỗi các bit theo thứ tự xác định. Đặc tả của một định dạng file có thể đơn giản chỉ là một tài liệu định nghĩa làm thể nào để lưu trữ và thể hiện được dữ liệu trong file. 1.2.4.Header và Siêu dữ liệu. Dữ liệu âm thanh trong file có thể có nhiều cấu trúc khác nhau. Ví dụ như một file AIFF hoặc WAV có thể chỉ một kênh hoặc hai kênh, hoặc có thể được ghi âm ở một số hệ số lấy mẫu, độ phân giải khác nhau. Trong nhiều kiểu tệp được sử dụng cho âm thanh số, ở đầu của các tệp chứa dữ liệu thêm vào được gọi là một header, phần này xác định cấu trúc phần dữ liệu dữ liệu âm thanh được lưu trong tệp. Khi một chương trình mở tệp đó, đầu tiên nó đọc header để xác định xem nào sẽ đọc phần dữ liệu còn lại như thế nào. Hình 1.4.Cấu trúc của một file âm thanh số. 1.3.Chuẩn MPEG-AAC 1.3.1.Tổng quan về MPEG-AAC AAC (Advanced Audio Coding) là một lược đồ mã hóa và nén mất mát thông tin được chuẩn hóa của âm thanh kĩ thuật số. Được thiết kế để với mục đích là phiên bản kế tiếp của định dạng MP3, nên một cách tổng quan thì định dạng AAC đạt được chất lượng tốt hơn nếu trong cùng tỉ lệ bít. Phạm Xuân Toái – Cao Học CNTT - 2009- Đại Học Bách Khoa Hà Nội - 19 - Ứng dụng công nghệ tính toán đa dụng trên các bộ xử lý đồ họa đa lõi của Nvidia trong bài toán mã hóa âm thanh chuẩn AAC AAC được hợp tác phát triển bởi các công ti AT&T Bell Laboratories, Fraunhofer IIS, Dolby Laboratories, Sony Corporation và Nokia. Và được công bố chính thức thành một chuẩn quốc tế bởi MPEG (Moving Picture Experts Group) vào tháng 4 năm 1997. AAC được đặc tả trong phần 7 của chuẩn MPEG-2 và trong phần 3 của MPEG-4.[3] AAC hỗ trợ tới 48 kênh âm thanh. Tỷ lệ mẫu được hỗ trợ bởi hệ thống AAC biến đổi trong khoảng từ 8kHz tới 96Khz. Tỷ lệ bit trên một kênh tối đa phụ thuộc vào tần số lấy mẫu và biến đổi từ 48kb/s đến 576kb/s. Có thể thỏa mãn các yêu cầu tối thiểu của chất lượng của âm thanh nổi (stereo) ở 96kbit/s, nhưng để đáp ứng được yêu cầu âm thanh hi-fi thì tỉ lệ bit tối thiểu là 128kbit/s. AAC cũng là định dạng chuẩn và mặc định của các thiết bị như là iPhone, iPod, iPad, Nintendo DSi, iTunes, DivX Plus Web Player và PlayStation 3. 1.3.2.Mã Hóa Mô Đun. ACC đưa ra một cách tiếp cận Mođun để mã hóa. Phụ thuộc vào độ phức tạp của luồng dữ liệu được mã hóa, hiệu năng mong muốn và yêu cầu đầu ra, các bộ thực thi có thể tạo ra một chuẩn mẫu (profile) để định nghĩa một tập các công cụ sẽ được sử dụng. Phần 7 của chuẩn MPEG-2 phát hành năm 1997 đã đưa ra ba chuẩn mẫu mặc định:  Low Complexity (LC) – Chuẩn đơn giản nhất và được sử dụng rộng rãi nhất  Main Profile (Main) – Chuẩn có chật lượng tốt nhất nhưng hiệu năng mã hóa thấp nhất  Scalable Sample Rate (SSR): Có độ phức tạp lớn hơn LC nhưng hiệu năng cao hơn Main. Phạm Xuân Toái – Cao Học CNTT - 2009- Đại Học Bách Khoa Hà Nội - 20 -
- Xem thêm -

Tài liệu liên quan

Tài liệu xem nhiều nhất