KẾT QUẢ VÀ ĐÁNH GIÁ

Một phần của tài liệu Thiết kế và thực hiện chương trình đọc file âm thanh định dạng MP3 (Trang 76 - 88)

IV.1. Dự kiến đầu vào và đầu ra của quá trình giải mã Huffman

Đầu vào của quá trình giải mã Huffman chính là đầu vào khối đồng bộ. Đầu ra của quá trình giải mã Huffman chính là đầu ra của khối giải mã Huffman.

1. Khối đồng bộ (synchronizer)

- Đầu vào khối đồng bộ: dòng bit dữ liệu tập tin mp3

- Đầu ra của đồng bộ: dòng bit dữ liệu chính (main data) của tập tin mp3 và các thông tin cần thiết trong quá trình giải mã như sau:

Stt Tên Kiểu Khoảng

giá trị

Mô tả

1 ID Số nguyên 0:3 Phiên bản chuẩn nén audio theo chuẩn ISO

2 Lớp (Layer) Số nguyên 1:3 Lớp trong 1 phiên bản chuẩn nén audio 3 Tốc độ bit (Bit_rate) Số nguyên 32:448kbp

s Tốc độ bit 4 Tần số lấy mẫu (sampling) Số nguyên 32:44,1 Khz Tần số lấy mẫu 5 Kênh (Channel) String Chếđộ kênh 6 Bắt đầu dữ liệu chính (Main_data_begin) Số nguyên 0:511 Số byte sử dụng của frame trước 7 Dải các hệ số tỷ lệ (Scfsi)

Bit 0000:1111 Thông báo việc sử

dụng chung các hệ

số tỷ lệ của các kênh 8 Chiều dài của dữ liệu

Huffman

(Part2_3_length)

Số nguyên 0:4096 Chiều dài (tính theo bit) của phần dữ liệu huffman

9 Giá trị trong vùng Big_values

Số nguyên 0:288 Số cặp giá trị line tần số trong miền big_values

10 Hệ số khuếch đại chung (Global_gain)

Số nguyên 0:128 Hệ số khuếch đại cho quá trình lượng tử hóa ngược

Lun văn thc s Trn Th Bích Hng

11 Nén hệ số tỷ lệ

(Scalefactor_compres s)

Số nguyên 0:15 Số bit mã hóa hệ số

tỷ lệ

12 Cờ chia khối (Blocksplit_flag)

Bit 0:1 Cho biết frame có bị

chia nhỏ hay không 13 Loại khối (Block_type) Số nguyên 0:3 Loại cửa sổ sử dụng 14 Điểm chuyển mạch (Switch_point) Bit 0:1 Cho biết có sử dụng lẫn các loại cửa sổ hay không 15 Bảng lựa chọn (Table_select) Số nguyên 0:31 Cho biết bảng mã huffman được sử dụng trong việc mã hóa huffman 16 Khuếch đại khối (Subblock_gain) Số nguyên 0:7 Hệ số khuếch đại cho từng miền khi khung bị chia nhỏ 17 Địa chỉ vùng 1 (Region_address1) Số nguyên 0:15 Số dải hệ số tỷ lệ trong miền số 0 18 Địa chỉ vùng 2 (Region_address2)

Số nguyên 0:7 Số scalefactor band trong miền số 1 19 Preflag Bit 0:1 Hệ số cộng với các line tần số biên độ lớn 20 Lượng tử hóa các hệ số tỷ lệ (Scalefac_scale)

Bit 0:1 Bước lượng tử hóa hệ số tỷ lệ

21 Bảng lựa chọn vùng count 1

(Count1table_select)

String A:B Bảng Huffman mã hóa phần count1

Bảng 15:Dự kiến đầu ra của khối đồng bộ 2. Khối giải mã Huffman:

- Đầu vào: chính là đầu ra của khối đồng bộ

- Đầu ra:

Lun văn thc s Trn Th Bích Hng

+ Các line tần số dạng số nguyên, nằm trong khoảng -8207 :8207

được cung cấp cho phần lượng tử hóa ngược (requantizer)

IV.2.Giao diện phần mềm

Sau đây là giao diện phần mềm giải mã huffman. Để giải mã huffman phải qua nhiều bước. Trên giao diện các nút được đưa ra tương ứng với các bước thực hiện trong quá trình giải mã Huffman. Giúp ta kiểm tra từng bước thực hiện.

Giao diện được bố trí theo các tab, dưới mỗi tab là cửa sổ hiển thị kết quả của quá trình giải mã tương ứng với các phần trong cấu trúc tập tin MP3.

2

3 1

Lun văn thc s Trn Th Bích Hng

1. Cấu trúc

Giao diện được cấu trúc đơn giản, nhưng đầy đủ các chức năng, thể hiện rõ khả

năng thực hiện của phần mềm.

Cấu trúc giao diện gồm 3 phần chính:

• Phần 1: cửa sổ hiển thị tập tin đầu vào (file MP3)

• Phần 2: các tab hiển thị kết quả giải mã: Bao gồm 4 tab:

−Header (phần tiêu đề)

−Side Information (phần thông tin) −Scalefactor (phần các hệ số tỷ lệ) −Line (các line tần số) • Phần 3: các nút chức năng −Brown −Header −Side infor −Scalefactor −Huffman −Save −Exit 2. Chức năng của các phần

Phần 1: Cửa sổ hiển thị tên, đường dẫn tập tin đầu vào MP3

Phần 2: Hiển thị kết quả giải mã của các phần

−Header: hiển thị thông tin trong phần tiêu đề của tất cả các khung tập tin âm thanh

Lun văn thc s Trn Th Bích Hng

−Side Information: hiển thị thông tin trong phần thông tin của tất cả

các khung tập tin âm thanh

−Scalefactor: hiển thị thông tin trong phần thông tin của tất cả các khung tập tin âm thanh

−Line: hiển thị thông tin trong phần line tần số của tất cả các khung tập tin âm thanh

Phần 3: Các nút chức năng ¾ Brown

Liên kết đến tập tin thực hiện giải mã ¾ Header:

Giải mã thông tin phần tiêu đề của khung dữ liệu ¾ Side Info

Giải mã phần thông tin của khung dữ liệu ¾ Huffman

Giải mã huffman. Giải mã từ các từ mã huffman sang line tần số ¾ Save

Lưu lại tập tin kết quả mã bảng mã huffman ¾ Scale factor

Giải mã phần các hệ số tỷ lệ (scalefactor) ¾ Nút Minimize

Nút này có tác dụng thu nhỏ cửa sổ chương trình và hiển thị trên thanh Toolbars. Khi cần phóng to cửa sổ lên chỉ cần nhấp chuột vào phần thu nhỏ trên thanh Toolbars

¾ Exit

Lun văn thc s Trn Th Bích Hng

IV.3. Kết quả và đánh giá

Nguồn dữ liệu đầu vào là tập tin MP3 có tên là “pong. mp3”, tần số lấy mẫu 44,1KHz, tốc độ bit là 128Kb/s. Từ nút “brown”, nguồn dữ liệu được đưa vào bộ giải mã. Đây là bộ giải mã Huffman, ta nhận được dòng dữ liệu ởđầu ra bộ giải mã là các hệ số tỷ lệ, các thông tin trong phần tiêu đề và phần thông tin.

Phần tiêu đề và phần thông tin là những phần quan trọng cung cấp các thông tin chi tiết của một tập tin âm thanh. Từ các thông tin đó, phần mềm giải mã tái tạo lại

được dòng dữ liệu ban đầu.

Các giá trị thực tế cho phần tiêu đề như bit đồng bộ, tốc độ bit, tần số lấy mẫu, bit lựa chọn chếđộ, …được đưa ra ở các phần tiêu đề của tất cả các khung.

Các giá trị thực tế cho phần thông tin như lựa chọn bảng Huffman, hệ số tỉ lệ, các thông số lượng tử hoá lại và sự lựa chọn cửa sổ … được đưa ra đầy đủ trong phần thông tin của các khung.

1. Đầu vào bộ giải mã

Đầu vào bộ giải mã là tập tin MP3 có tên là “pong. mp3”. Thông qua nút Brown ta tìm kiếm đến vị trí để tập tin MP3 cần giải mã.

Lun văn thc s Trn Th Bích Hng

2. Kết quả

Dòng dữ liệu đầu vào sau khi qua bộ giải mã Huffman, các phần tiêu đề, phần thông tin, các hệ số tỷ lệđược giải mã.

¾ Giải mã phần tiêu đề của khung dữ liệu

Lun văn thc s Trn Th Bích Hng

Từ tập tin đầu vào MP3, qua phần mềm giải mã các thông tin trong phần tiêu

đề khung được giải mã cung cấp các thông tin như tổng số khung, chiều dài mỗi khung…. Từ mã đầu mỗi khung là FFF (1111 1111 1111) có nghĩa là khung đồng bộ. Khi xác nhận xong sựđồng bộ của dòng dữ liệu, các bit còn lại trong phần tiêu

đềđược kiểm tra theo các thông số kỹ thuật của chuẩn ISO. Kết quả phân tích cho thấy tập tin MP3 đầu vào là một tập tin ở chếđộ mono, tần số lấy mẫu 44,1KHz, tốc

độ bit rate biến đổi. Các trường thông tin cơ bản trong phần tiêu đề:

Các trường của phần tiêu đề Khung 0 Khung 1 Khung 2

Header of frame 0 FFFB90C4 FFFB10C4 FFFB50C4 Frame Length 417 104 208 ID 1 1 1 Layer 3 3 3 Bitrate 128000 320000 64000 Sampling 44100 44100 44100 Pađing 0 0 0

Channel mono mono mono

Mode extension 00 00 00

Lun văn thc s Trn Th Bích Hng

¾ Kết quả giải mã phần thông tin của khung dữ liệu

Trong quá trình giải mã, bộ giải mã bao giờ cũng kiểm tra ba khung đầu tiên trước khi xác nhận tập tin này là mã hóa MP3. Vì vậy lấy khung đầu tiên để kiểm tra chi tiết các trường thông tin trong phần thông tin. Từ vị trí con chỏ xác định phần bắt

đầu của dữ liệu chính. Dữ liệu chính của khung 0 bắt đầu ở giá trị 0, đối với khung 1 thì dữ liệu chính của khung bắt đầu ở giá trị 0, đối với khung 2 dữ liệu chính bắt đầu

ở giá trị 83 nghĩa là phần thông tin theo ngay cùng với phần tiêu đề . Vì vậy điều này khẳng định một thực tế là các dữ liệu chính không cần phải luôn luôn theo ngay sau phần thông tin và phần dữ liệu chính có thểở bất cứ vị trí nào trong khung phía

Lun văn thc s Trn Th Bích Hng

trước bằng cách sử dụng kỹ thuật hồ chứa bit. Kết quả phần thông tin cho “grannule”0 thu được sau khi thực hiện giải mã được trình bày trong bảng sau:

Các trường Khung 0 Khung 1 Khung 2

Main data begin 0 0 83

scfsi 0000 1111 0000 grannule 0 0 0 0 Channel 0 0 0 Part2_3_length 0 0 712 Big value 0 0 198 Global gain 0 210 208 Scalefac compress 0 0 15

Block split flat 0 0 1

Block type 2 Switch point 0 Table select0 0 0 1 Table select1 0 0 21 Table select2 0 0 Subblock gain0 0 Subblock gain1 7 Subblock gain2 7 Region address 1 0 0 Preflag 0 1 0 Preflag 0 0 Scalefac scale 0 0 0 Table count1 0 0 0 grannule 1

Lun văn thc s Trn Th Bích Hng

¾ Kết quả giải mã các hệ số tỷ lệ scalefactor

3. Đánh giá:

- Trên đây là các kết quảđưa ra trong quá trình giải mã huffman.

- Kết quả cuối cùng của quá trình giải mã huffman là giá trị của các line tần số.

- Kết quả của quá trình này, sẽ là đầu ra của quá trình lượng tử hóa lại (requantization).

Lun văn thc s Trn Th Bích Hng

TÀI LIU THAM KHO

Sách tham khảo

1. K. Brandenburg, G. Stoll. (1996), A Generic Standard for Coding of High Quality Digital Audio"Collected Papers on Digital Audio Bit-Rate Reduction, AES.

2. LagerstrÖm (2001), Design and Implementation of an MPEG-1 Layer III Audio Decoder, Master’s Thesis.

3. M. Dietz, H. Popp, K. Brandenburg and R. Friedrich (1996), Audio Compression for Network Transmission Journal of the AES, Vol. 44, No. 1-2.

4. Miller, P. (1999), An examination of the correlation between perceived sound quality and frequency response of current MPEG audio encoders.

5. Praveen Sripada (2006), MP3 DECODER in Theory and Practice, Blekinge Tekniska Högskola.

6. Tan Swee Ling (2009), Design a MP3 Player, SIM University.

Trang web tham khảo

1. The private life of MP3 frames (http://www.id3.org/MP3Frame). About the structure of MP3's atoms.

2. MPEG Audio Compression Basics

3. (http://www.datavoyage.com/mpgscript/mpeghdr.htm). Also titled MPEG Audio Frame Header.

4. Discussion of MP3 patents (http://www.MP3-tech.org/patents.html).

5. SomaFM (http://SomaFM.com/contact/). Information for the providers of sound recordings to this Webcaster.

6. Boeuf, J., Stern, J. 2001. An analysis of one of the SDMI candidates. http://www.julienstern.org/sdmi/files/sdmiF/sdmiF.html

7. Chiariglione, L. 1996. Short MPEG-1 description.

http://mpeg.telecomitalialab.com/standards/mpeg-1/mpeg-1.htm 8. Chiariglione, L. 2000. Short MPEG-2 description.

http://mpeg.telecomitalialab.com/standards/mpeg-2/mpeg-2.htm

9. Fraunhofer Institut Integrierte Schaltungen. 1998. MPEG Audio Layer-3. http://www.iis.fraunhofer.de/amm/techinf/layer3/

Lun văn thc s Trn Th Bích Hng

KT LUN VÀ KIN NGH

Khi tiến hành nghiên cứu, tìm hiểu chuẩn MP3 em tham khảo rất nhiều nguồn thông tin. Trước hết là chính từ vốn hiểu biết của bản thân, rồi các tài liệu liên quan, từ bạn bè, đồng nghiệp, kho kiến thức khổng lồ trên Internet. Sau đó bằng phương pháp so sánh, đánh giá, chọn lọc để lấy các thông tin đáng tin cậy nhất.

Qua quá trình nghiên cứu và tìm hiểu, em thấy rất nhiều phần mềm giải mã MP3 do các hãng lớn nhỏ trên thế giới thực hiện. Các ngôn ngữđể viết phần mềm giải mã MP3 cũng rất phong phú. Từ thực tế nghiên cứu và triển khai đề tài, cho thấy, việc tìm hiểu định dạng MP3 và viết hoàn thiện một bộ giải mã MP3 là một công việc đồ sộ đòi hỏi mất nhiều thời gian và công sức, trí tuệ. Bằng khả năng và nỗ lực của mình và trợ giúp của thầy giáo, bạn bè em đã hoàn thiện đề tài, viết phần mềm đến giai đoạn thực hiện việc giải mã Huffman. Tuy đề tài mới dừng ở đây, nhưng đó là bộ code do ta làm chủ, là tiền đềđể tiếp tục phát triển các giai đoạn tiếp theo cho bộ giả mã MP3.

Kiến nghị:

Tiếp tục phát triển hoàn thiện các modul của phần mềm giải mã MP3 với nhiều tính năng và thân thiện hơn với người dùng.

Một phần của tài liệu Thiết kế và thực hiện chương trình đọc file âm thanh định dạng MP3 (Trang 76 - 88)