Joint Stereo là chế độ mở rộng của stereo, số bít được mã hóa cho mỗi khung được quyết định một cách linh hoạt, để giảm đi những dữ liệu không cần thiết của tập tin.. Hình 2: Mô hình ngư
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
THIẾT KẾ VÀ THỰC HIỆN CHƯƠNG TRÌNH ĐỌC
FILE ÂM THANH ĐỊNH DẠNG MP3
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
-
Họ và tên tác giả luận văn Trần Thị Bích Hằng
TÊN ĐỀ TÀI LUẬN VĂN
THIẾT KẾ VÀ THỰC HIỆN CHƯƠNG TRÌNH ĐỌC FILE ÂM
Trang 3MỤC LỤC
MỤC LỤC 1
DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT 3
DANH MỤC CÁC BẢNG 4
DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ 5
MỞ ĐẦU 6
CHƯƠNG I: ĐỊNH DẠNG NÉN ÂM THANH SỐ MP3 7
I KHÁI QUÁT 7
I.1 Khái niệm về MP3 7
I.2 Lịch sử ra đời MP3 8
II ĐẶC ĐIỂM MP3 9
II.1 Chuẩn nén âm thanh số lớp 3 9
II.2 Chế độ hoạt động 10
II.3 Mã hóa âm thanh dựa trên mô hình cảm nhận âm học của con người 11 II.4 Tốc độ bit và tần số lấy mẫu 16
III CẤU TRÚC TẬP TIN MP3 18
III.1 Cấu trúc tập tin 18
III.2 Cấu trúc khung 19
III.3 Thẻ dữ liệu ID3 36
CHƯƠNG II: MÃ HÓA VÀ GIẢI MÃ MP3 38
I MÃ HÓA MP3 ( MP3 ENCODING) 38
I.1 Khái quát 38
I.2 Quá trình mã hóa MP3 39
II GIẢI MÃ MP3 (MP3 DECODING) 46
II.1 Khái quát 46
II.2 Quá trình giải mã MP3 46
Trang 4CHƯƠNG III: TRIỂN KHAI THIẾT KẾ PHẦN MỀM GIẢI MÃ MP3 56
I TRÌNH TỰ GIẢI MÃ MP3 56
II SƠ ĐỒ KHỐI BỘ GIẢI MÃ MP3 59
III TRIỂN KHAI 60
III.1 Quá trình giải mã huffman 60
III.2 Cấu trúc dữ liệu 66
III.3 Lưu đồ thuật toán 69
IV KẾT QUẢ VÀ ĐÁNH GIÁ 74
IV.1 Dự kiến đầu vào và đầu ra của quá trình giải mã Huffman 74
IV.2 Giao diện phần mềm 76
IV.3 Kết quả và đánh giá 79
TÀI LIỆU THAM KHẢO 85
KẾT LUẬN VÀ KIẾN NGHỊ 86
Trang 5DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
AC 3 – Advanced Codec 3
CCITT – Consulative Committee for International Telephone and Telegraph
CD – Compact Disc
CRC – Cylic Redundancy Code
DVD – Digital Versatile Disc
FFT – Fast Fourier Transform
GSM – Global System for Mobile communications
IEC – International Electrotechnical Commission
IMDCT – Inverse Modified Discrete Cosine Transform
ISO – International Organization for Standardization
ITU – International Telecommunications Union
KHz – KiloHertz
kbps – Kilo Bits Per Second
MDCT – Modified Discrete Cosine Transform
MPEG – Motion Picture Experts Group
MP3 – MPEG 1 Layer III
MS – Mid Side stereo
PCM – Pulse Code Modulation
SMR – Signal to Masking Ratio
WMA – Windows Media Audio
Trang 6DANH MỤC CÁC BẢNG
Bảng 1: Độ phức tạp của bộ mã hóa và giải mã đối với các lớp của âm thanh
MPEG……… 10
Bảng 2: Bảng các băng tới hạn 13
Bảng 3: Các trường trong phần tiêu đề 22
Bảng 4: Bảng cấu trúc các bit trong phần thông tin 28
Bảng 5: 21 dải hệ số tỷ lệ chia thành 4 nhóm 29
Bảng 6: Phân vùng của phổ tần số 29
Bảng 7: Phân bố bit thông tin hệ số tỷ lệ 30
Bảng 8: Phân chia giữa các tần số thấp và cao 30
Bảng 9: Loại cửa sổ 31
Bảng 10: Bảng Preemphasis 32
Bảng 11: Kích thước hệ số tỷ lệ scalefactor của bước lượng tử 32
Bảng 12: Bảng mã Hufman cho vùng Count1 33
Bảng 13: Cấu trúc dữ liệu thẻ ID3 36
Bảng 14: Giá trị bit của thẻ dữ liệu ID3 36
Bảng 15: Dự kiến đầu ra của khối đồng bộ 75
Bảng 16: Giá trị các trường thông tin trong phần tiêu đề 81
Bảng 17: Giá trị các trường trong phần thông tin 83
Trang 7DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ
Hình 1: Đường cong che (mặt nạ) âm thanh 14
Hình 2: Mô hình ngưỡng nghe của tai người 15
Hình 3: Tín hiệu âm thanh được mã hóa ở tốc độ bitrate khác nhau 16
Hình 4: Các thành phần cơ bản tập tin MP3 18
Hình 5: Sơ đồ tổng quan cấu trúc các phần trong tập tin MP3 19
Hình 6: Cấu trúc khung theo các line tần số ở chế độ hai kênh 20
Hình 7: Cấu trúc khung 20
Hình 8: Cấu trúc phần thông tin 27
Hình 9: Kỹ thuật dự trữ bit được sử dụng trong việc lưu trữ dữ liệu chính 34
Hình 10: Ngưỡng che âm thanh 38
Hình 11: Sơ đồ khối quá trình mã hóa MP3 39
Hình 12: Sơ đồ khối quá trình giải mã MP3 46
Hình 13: Từ mã đồng bộ của tập tin MP3 47
Hình 14: Phân vùng dữ liệu cho mỗi kênh của MP3 48
Hình 15: Cửa sổ ngắn và cửa sổ dài 50
Hình 16: Quá trình sắp xếp lại 50
Hình 17: Cấu trúc hình bướm giảm hiệu ứng Alias 53
Hình 18: Lược đồ thiết kế IMDCT 54
Hình 19: Khối lọc đa pha tổng hợp 55
Hình 20: Sơ đồ khối trình tự giải mã 56
Hình 21: Lược đồ trình tự giải mã MP3 58
Hình 22: Ngõ ra của bộ giải mã Huffman 60
Hình 23: Phân vùng dữ liệu tập tin MP3 cho một kênh 65
Hình 24: Lược đồ giải mã Huffman 69
Hình 25: Lưu đồ thuật toán khối đồng bộ 71
Trang 8MỞ ĐẦU
Tập tin MP3 có dung lượng nhỏ, chất lượng tốt, được sử dụng rất rộng rãi trên nhiều lĩnh vực, đặc biệt trên lĩnh vực nghe nhạc Nó có mặt trên các phương tiện truyền thông hiện đại: Internet, viễn thông, phát thanh, truyền hình MP3 thâm nhập,
đi sâu vào đời sống của con người, nó thể hiện bằng các phần cứng và phần mềm nghe định dạng MP3 phổ biến toàn cầu trên các phương tiện kỹ thuật số cá nhân và cho nhiều ứng dụng khác trong thực tế hiện nay
Đề tài đi sâu nghiên cứu tìm hiểu chuẩn nén âm thanh số MP3, các tham số kỹ thuật, các thuật toán giải mã MP3, các vấn đề cốt lõi, để nắm bắt và làm chủ định dạng MP3 Qua các nghiên cứu và hiểu chuẩn MP3, giúp ta hiểu đầy đủ về đặc điểm
và khả năng ứng dụng của MP3 để đưa ra định hướng đúng đắn khi sử dụng MP3 cho các mục đích khác nhau
Đề tài triển khai xây dựng một đoạn chương trình giải mã định dạng MP3 Chương trình này có thể cài đặt trên các máy tính cá nhân, sử dụng nghe nhạc MP3 Hiện nay các phương tiện số cá nhân, hầu hết sử dụng các chương trình nghe MP3 của nước ngoài, ta không làm chủ được phần code chương trình của nó Chương trình giải mã MP3 này không thể như các chương trình phần mềm chuyên nghiệp, nhưng ta làm chủ được phần code, đó là tiền đề để xây dựng và phát triển lên mức cao hơn
Trong quá trình thực hiện và triển khai đề tài, em đã nỗ lực, cố gắng hết sức và nhận được sự giúp đỡ từ nhiều phía thấy cô và bạn bè Em xin gửi lời cảm ơn tới thầy giáo TS Nguyễn Vũ Thắng, người đã tận tâm, đồng hành cùng em trong suốt quá trình làm cho đến khi hoàn thành đề tài Cuối cùng em xin cám ơn tất cả các thầy
cô đã hướng dẫn, dạy em trong hai năm qua, đó chính là nền tảng kiến thức quan trọng hỗ trợ em thực hiện đề tài này Do thời gian có hạn, kiến thức còn hạn chế, đề tài không tránh khỏi những thiếu sót, rất mong sự đóng góp của các thầy cô giáo
Trang 9CHƯƠNG I: ĐỊNH DẠNG NÉN ÂM THANH SỐ MP3
Chương này đề tài đi vào nghiên cứu chuẩn nén âm thanh số MP3, lịch sử hình thành và phát triển MP3, những đặc tính cơ bản và cấu trúc tập tin MP3 Cung cấp các kiến thức về MP3 làm tiền đề cho nghiên cứu các chương tiếp theo
Ý nghĩa tên MP3
MP3 là cách viết ngắn gọn của MPEG1 lớp 3 (MPEG1 layer 3) MPEG là tên viết tắt của một nhóm chuyên gia hình ảnh động Motion Pictures Expert Group, một gia đình các tiêu chuẩn nén trong lĩnh vực nghe nhìn Tên được đặt chính thức của nhóm này là ISO/IEC JTC1/SC29/WG11 Nhưng chủ yếu được biết đến với biệt danh của nó, Moving Pictures Experts Group, được thành lập bởi các tiêu chuẩn ISO/IEC vào năm 1988 để phát triển các tiêu chuẩn chung (sử dụng trong nhiều ứng dụng khác nhau) đại diện cho mã hoá âm thanh, hình ảnh động
1 là tên gọi cho giai đoạn đầu tiên của quá trình làm việc MPEG
MPEG-1 định nghĩa một tiêu chuẩn cho việc lưu trữ và phục hồi các âm thanh và hình ảnh động trên các thiết bị lưu trữ
Âm thanh MPEG-1 bao gồm ba chế độ hoạt động, được gọi là "lớp": lớp 1, lớp 2
và lớp 3 Các lớp càng cao thì sự phức tạp và hiệu suất ngày càng tăng Lớp 3, với sự phức tạp cao nhất, được thiết kế để cung cấp chất lượng âm thanh cao ở tốc bit thấp
Trang 10I.2 Lịch sử ra đời MP3
¾ Những mốc thời gian quan trọng trong lịch sử phát triển MP3
- Năm 1987 – Tổ chức Fraunhofer Institut ở Đức bắt đầu nghiên cứu dự án EUREKA mã số EU147, về phát thanh số Digital Audio Broadcasting (DAB)
- Tháng 1 năm 1988 – Nhóm chuyên gia Moving Picture Experts Group (MPEG) được thành lập như là một tiểu ban của Tổ chức tiêu chuẩn quốc tế (ISO)/Uỷ ban
kỹ thuật điện quốc tế hoặc theo tiêu chuẩn (IEC)
- Tháng 4 năm 1989 – Tổ chức Fraunhofer nhận bằng sáng chế của Đức về MP3
- Năm 1992 – Thuật toán mã hóa âm thanh của tổ chức Fraunhofer và Dieter được tích hợp vào MPEG-1
- Năm 1993–Tiêu chuẩn MPEG-1 được công bố
- Năm 1995, MPEG1 lớp-3 đã được chọn như một định dạng âm thanh cho hệ thống phát sóng kỹ thuật số vệ tinh được phát triển bởi thế giới-không gian (World-Space) Đây là bước đầu tiên MPEG1 lớp-3 bước vào thị trường đại chúng Bước thứ hai ngay sau đó, là sự bùng nổ Internet, với các lợi thế của mình MP3 được sử dụng rộng rãi để phân phối âm nhạc Nó đã trở lên rất phổ biến, tăng trưởng theo hàm mũ từ năm 1995
- Ngày 26 tháng 11 năm 1996 - Hoa Kỳ cấp bằng sáng chế MP3 cho tổ chức Fraunhofer
- Tháng 9 năm 1998 – Tổ chức Fraunhofer bắt đầu thực thi quyền bằng sáng chế của họ Tất cả các nhà phát triển của bộ mã hóa MP3 và người giải mã / người dùng bây giờ phải trả một lệ phí bản quyền cho Fraunhofer
- Tháng 2 năm 1999 - Công ty thu âm SubPop lần đầu tiên phân phối các bản nhạc bằng định dạng MP3
- Năm 1999 – Các máy nghe nhạc MP3 cầm tay bắt đầu xuất hiện Cụm từ ".mp3"
đã trở thành thuật ngữ tìm kiếm phổ biến nhất trên Web (theo nghiên cứu và thống kê của trang web http://www.searchterms.com)
Trang 11- Cho đến nay: các định dạng tập tin âm thanh MP3 đã trở lên rất phổ biến Nó được sử dụng rộng rãi trên Internet, các máy nghe nhạc, các thiết bị cầm tay đa phương tiện…
¾ Những đóng góp của các tổ chức và cá nhân trong sự nghiệp phát triển
Ông Karlheinz Brandenburg
Người dẫn đường trong các nghiên cứu của tổ chức Fraunhofer, được gọi là "cha đẻ của" MP3 Karlheinz Brandenburg là một chuyên gia trong lĩnh vực toán học và điện tử, đã nghiên cứu các phương pháp nén âm thanh từ năm 1977 Trong suốt qua trình từ năm 1977 đến 1997, ông đã có nhiều nghiên cứu và kết quả cống hiến cho lĩnh vực nén âm thanh theo chuẩn MP3: kỹ thuật mã hóa cảm nhận ASPEC, mã hóa cảm nhận âm thanh và cảm nhận
âm học, định nghĩa hệ thống ISO/IEC MPEG lớp-3 Karlheinz Brandenburg đã nhận được nhiều bằng sáng chế trong lĩnh vực nén âm thanh số MP3
II ĐẶC ĐIỂM MP3
MP3 là chuẩn nén âm thanh số Nó được tối ưu hóa về cấu trúc tập tin, các dữ liệu dư thừa bị loại bỏ mà không làm mất thông tin Kích thước tập tin nhỏ gọn, chất lượng âm thanh đáp ứng các nhu cầu sử dụng khác nhau Sau đây là các đặc điểm cơ bản làm nên sự hữu dụng và tính phổ biến của tập tin MP3
II.1 Chuẩn nén âm thanh số lớp 3
MP3 là chuẩn âm thanh nén lớp 3 của MPEG1 Nó mang các đặc điểm cơ bản
Trang 12lớp 3 Đó là mức độ nén và độ phức tạp cao hơn so với các chuẩn nén âm thanh thuộc lớp 1 và 2 Tín hiệu âm thanh nén ở lớp 3 sử dụng bộ mã hóa Huffman Dưới đây là bảng so sánh độ phức tạp của các bộ giải mã và mã hóa khác nhau đối với các lớp mã hóa âm thanh khác nhau
Những ưu điểm của tín hiệu âm thanh nén thuộc lớp 3 so với lớp 1 và lớp 2:
- Giảm sự chồng phổ: Lớp 3 cung cấp phương pháp xử lý các giá trị MDCT
để loại bỏ sự dư thừa do sự chồng lấp giữa các băng
- Bộ lượng tử hóa lớp 3 nâng các lối vào của nó lên ¾ năng lượng trứơc khi lượng tử hóa để cung cấp tỉ số tín hiệu trên tạp âm (SNR) cao hơn
- Lớp 3 sử dụng mã Huffman để mã hóa các mẫu lượng tử hóa cho việc nén
dữ liệu tốt hơn
- Sử dụng một bộ dữ trữ bit (bit reservoir): Dòng bit lớp 3 phù hợp hơn với
độ dài thay đổi của dữ liệu được nén Cũng giống như lớp 2, khung dữ liệu lớp 3 có 1152 mẫu Lớp 3 không giống lớp 2 ở chỗ dữ liệu mã hóa không nhất thiết phải vừa vặn trong một khung cố định Bộ mã hóa có thể lấy hoặc mượn các bit từ bộ dự trữ bit nếu cần thiết
II.2 Chế độ hoạt động
Âm thanh MP3 làm việc ở cả hai định dạng kênh mono và stereo Kỹ thuật mã hóa âm thanh stereo, được sử dụng để nâng cao chất lượng của một tín hiệu âm thanh lập thể nhờ sự kết hợp mã hóa của kênh trái và phải MP3 cho phép mã hóa kết hợp giữa cường độ tín hiệu và âm thanh stereo Điều này đặc biệt hữu ích đối với tín hiệu
Trang 13âm thanh ở tốc độ bit thấp, nhưng ngược lại phải chịu nguy cơ thay đổi hình ảnh âm thanh
Chuẩn MPEG có 4 chế độ:
- Single channel (Mono)
- Dual channel (2 mono channels)
- Stereo
- Joint Stereo (Stereo)
Mono là chế độ dùng cho âm thanh 1 kênh Tín hiệu âm thanh được lưu trữ trên một kênh, người nghe chỉ cảm nhận được độ rõ nét và thông tin về âm thanh mà không thể cảm nhận được quang cảnh của âm thanh
Âm thanh stereo, khắc phục được các nhược điểm của âm thanh mono, giúp người nghe cảm nhận được quang cảnh không gian của âm thanh, nâng cao chất lượng âm thanh một cách rõ rệt
Chế độ Dual channel, tập tin âm thanh bao gồm hai kênh mono độc lập Tốc độ bit mỗi kênh bằng một nửa tốc độ bit của cả file Đầu ra các bộ giải mã tập tin âm thanh ở chế độ Dual channel có hai kênh nhưng hoàn toàn độc lập không thể thấy quang cảnh âm thanh như tập tin âm thanh stereo
Joint Stereo là chế độ mở rộng của stereo, số bít được mã hóa cho mỗi khung được quyết định một cách linh hoạt, để giảm đi những dữ liệu không cần thiết của tập tin Joint stereo chia sẻ các bit kênh trái và kênh phải ở tần số cao Điều này làm cải thiện đáng kể việc nén âm thanh stereo suy giảm ít Các tần số thấp được xử lý như âm thanh stereo thông thường
II.3 Mã hóa âm thanh dựa trên mô hình cảm nhận âm học của con người
Các thuật toán mã hoá âm thanh MP3 dựa trên mô hình mã hóa cảm nhận âm học của con người, dựa trên mô hình tiếp nhận âm thanh để tối ưu hiệu qủa quá trình
mã hoá
Mô hình tiếp nhận âm thanh dựa trên các cảm nhận chính là tai người, sự cảm
Trang 14âm học hay còn gọi là tâm lý âm học là lĩnh vực khoa học nghiên cứu và giải thích
sự cảm nhận âm thanh của tai người đối với sự kích thích của nguồn âm Các phương pháp mã hoá dựa trên cảm nhận âm học đều dựa vào các nguyên lý cơ bản của tâm lý
âm học như: ngưỡng nghe, các băng tới hạn, hiện tượng che Các phương pháp này loại bỏ các thành phần dư thừa không nghe được của tín hiệu âm thanh để giảm kích thước file dữ liệu trong quá trình nén
1 Ngưỡng nghe tuyệt đối
Ngưỡng nghe tuyệt đối là mức năng lượng cần thiết của một âm chuẩn (ở mức
độ cho trước) để có thể nghe được trong một môi trường không có tiếng ồn
2 Các băng tới hạn
Các nghiên cứu thực tế cho thấy tai người có thể cảm nhận được các nguồn âm
có tần số từ 20 Hz đến 20KHz Ngoài ra, tai người còn được coi là bộ phân tích phổ đối với các phổ tần nghe được Tai người được coi là 1 băng lọc (filter bank) gồm nhiều mạch lọc thông dải với các băng thông có độ rộng khác nhau, nó đặc trưng cho khả năng phân giải âm thanh của tai người Các băng này được gọi là băng tới hạn, chúng có độ rộng thay đổi theo tần số từ thấp đến cao Trên thực tế có 25 băng tới hạn được qui ước theo bảng các băng tới hạn dưới đây, mỗi băng có một tần số trung tâm f Độ rộng của mỗi băng có thể được tính xấp xỉ như sau :
bwc (f)=25+75[1+1.4(f/1000)2]0.69 (Hz) Một băng tới hạn có độ rộng là bark (đặt theo tên của nhà khoa học barkhausen) Hàm sau đây cho phép chuyển từ dải tần số sang dải bark:
z(f) = 13arctan(0.00076f) + 3.5arctan[(f/75000)2] (bark)
băng tới
hạn
tần số trung tâm
độ rộng (Hz)
tần số dưới (Hz)
tần số trên (Hz)
Trang 153 Hiện tượng che
Tai người có khả năng phân tích tần số theo thời gian, khả năng này tạo ra hiện tượng che đồng thời và hiện tượng che không đồng thời Các hiện tượng này được ứng dụng trong các bộ mã hóa để xác định các thành phần dư thừa cần loại bỏ, không
mã hóa chúng
Hiện tượng che xảy ra khi một hoặc nhiều nguồn âm bị che không nghe được do
sự có mặt của một nguồn âm khác Tín hiệu che các tín hiệu khác được gọi là các thành phần che (masker), các tín hiệu bị che thì gọi là các thành phần bị che (maskee) Độ chênh lệch giữa thành phần che và ngưỡng che (phụ thuộc tần số và mức áp suất âm thanh của thành phần che quyết định) gọi là tỉ số tín hiệu trên ngưỡng che (signal-to-masking ratio) Thông số này rất quan trọng trong phương pháp mã hóa dựa trên mô hình cảm nhận âm học
Trang 16
Hình 1: Đường cong che (mặt nạ) âm thanh
Hiện tượng che đồng thời xảy ra khi nhiều nguồn âm tác động vào tai người Mặc dù phổ tần số âm thanh có thể chứa nhiều hiện tượng che đồng thời phức tạp, nhưng vì mục tiêu xác định các dạng mã hóa, ta chỉ cần quan tâm đến 3 loại che đồng thời : tạp âm che tín hiệu âm thanh, tín hiệu âm thanh che tạp âm, tạp âm che tạp âm
Hiện tượng che không đồng thời: xảy ra khi các âm (hoặc tạp âm) được phát lên gần nhau theo thời gian Hiện tượng tiền che xảy ra khi một âm (hoặc tạp âm) bị che bởi một âm (hoặc tạp âm) xảy ra sau Tương tự, hiện tượng hậu che khi một âm xảy
ra trước che một âm xảy ra sau đó
Một đặc điểm nữa của hệ thống thính giác của con người đó là thời gian cảm nhận âm thanh Tai của con người phải mất một thời gian ngắn để cảm nhận, nên nó trở nên ít nhạy cảm với tần số thấp, thoáng qua
Các nghiên cứu trên (về tâm lý âm học) như: ngưỡng nghe, các băng tới hạn, hiện tượng che đã dẫn đến những hiểu biết quan trọng về cách thức hoạt động của hệ thống thính giác của con người Điều này đã giúp chúng ta nhận ra rằng trong dữ liệu
âm thanh có trong thực tế, rất nhiều dữ liệu mà con người không thể nghe thấy có thể
bỏ đi mà không nhận thấy một sự khác biệt Một số trường hợp chính:
- Nếu tần số nằm ngoài phạm vi 20Hz đến 20KHz
- Nếu có một tiếng động lớn và tiếng động nhỏ cùng lúc
- Nếu có 2 âm thanh tương tự nhau
Trang 17Con người chỉ có thể nghe thấy âm thanh trong một dải rất cụ thể Bất kỳ tần số dưới 20Hz và trên 20KHz con người không nhận thức được, và do đó có thể loại bỏ được Đối với người trung tuổi, phạm vi tần số có thể nghe thấy thu hẹp hơn, trong khoảng nhận thức được là 20Hz đến 16KHz
Con người nhạy cảm nhất với âm thanh trong khoảng 2KHz đến 4KHz Điều này có nghĩa rằng bất kỳ mất mát dữ liệu ở các tần số này sẽ gây ra một sự xuống cấp chất lượng âm thanh rất rõ ràng
Một tiếng động lớn và nhỏ xảy ra đồng thời , kết quả là con người có xu hướng chỉ nghe thấy tiếng động lớn, điều này có nghĩa là tiếng động nhỏ có thể được bỏ đi
và không làm giảm chất lượng âm thanh
Nếu có 2 âm thanh tần số tương tự nhau con người có xu hướng cảm nhận nó như là một âm thanh Vì vậy một trong những tần số đó có thể được loại bỏ với sự suy giảm chất lượng rất ít
Số lượng lớn các thông tin về khả năng cảm nhận âm học xác định ngưỡng nghe của con người như mô hình toán học
Hình 2: Mô hình ngưỡng nghe của tai người
Tập tin âm thanh MP3 được xây dựng trên bộ mã hóa thụ cảm, dựa trên mô hình cảm nhận âm học của tai người, các dữ liệu âm thanh không cần thiết trên tập tin gốc
bị loại bỏ nhưng không làm mất thông tin Do vậy tập tin MP3 có dung lượng nhỏ
Trang 18II.4 Tốc độ bit và tần số lấy mẫu
Tốc độ bit (Bitrates) và tần số lấy mẫu (Sampling rates) được chọn khi mã hóa
âm thanh tương tự Nếu chọn tốc độ bit cao hơn thì kích thước tập tin sẽ lớn hơn đồng thời chất lượng của âm thanh cũng sẽ được tốt hơn Người dùng phải đưa ra một quyết định lựa chọn tốc độ bitrate phù hợp, phụ thuộc vào mục đích sử dụng với chất lượng âm thanh tương ứng Tốc độ bit và tần số lấy mẫu và có thể lựa chọn một cách độc lập
1 Tốc độ Bit (Bit-rate)
Tốc độ bit được đo theo đơn vị kilobits/sec(kbps)
Âm thanh MPEG 1 lớp-3, làm việc với các tốc độ bit từ 8 kbit/s lên đến 320 kbit/s Hơn nữa, bộ giải mã lớp-3 hỗ trợ kỹ thuật chuyển đổi tốc độ bit từ khung âm thanh này đến khung âm thanh khác trong cấu trúc tập tin MP3 Kết hợp với kỹ thuật dự trữ bit, cho phép MP3 mã hóa tốc độ bit biến đổi và tốc độ bit cố định ở bất
kỳ giá trị nào trong phạm vi các thiết lập tiêu chuẩn
Việc chọn tốc độ bit tùy thuộc trước tiên vào chất lượng âm thanh yêu cầu Tốc
độ bit càng lớn chất lượng âm thanh MP3 càng cao, dung lượng sẽ tăng Trong một
số trường hợp không đòi hỏi chất lượng âm thanh quá cao (như tiếng nói, tiếng động hiện trường…), sử dụng MP3 ở tốc độ bit thấp vẫn đáp ứng được yêu cầu sử dụng
Hình 3: Tín hiệu âm thanh được mã hóa ở tốc độ bitrate khác nhau
Hình trên cho thấy mã hóa âm thanh với tốc độ bit cao hơn cho ra một tập tin với chất lượng tốt hơn Ở tốc độ bitrate 64kbps tại mỗi bit đại diện cho nhiều dữ liệu hơn
âm thanh, kết quả này làm cho mô hình cảm nhận - âm học được áp dụng khá gay gắt
và nhiều dữ liệu phải xử lý Với tốc độ bitrate 128 kbps có nhiều bit hơn sẵn sàng để lưu trữ các dữ liệu âm thanh, do đó, mô hình cảm nhận - âm học được áp dụng ít gay
Tín hiệu âm
thanh tương tự
Tín hiệu âm thanh
số ở 64 kbps Tín hiệu âm thanh số ở 128 kbps
Trang 19gắt và tăng sự tinh tế của âm thanh Ở tốc độ bitrate 128kbps càng gần giống đường cong của tín hiệu tương tự hơn so với tốc độ bitrate 64kbps, chất lượng âm thanh MP3 tương đương chất lượng âm thanh trên CD
Tại tốc độ bit 192 kbps trên mỗi kênh, chất lượng âm thanh là hoàn toàn trong suốt
Tốc độ bit 128 kbps / kênh được dùng phổ biến nhất trong phát thanh Tốc độ thấp hơn 128 kbps / kênh được dùng trong các ứng dụng yêu cầu tỉ số nén lớn do giới hạn của băng thông truyền hay thiết bị lưu trữ
Có một cách xem xét khác về tốc độ bitrate Nó có thể mã hóa với tốc độ bit không đổi (Constant Bitrate - CBR) hoặc tốc độ bitrate biến đổi (Variable Bitrate - VBR) Với CBR chỉ định rõ tốc độ bitrate và được sử dụng trong suốt quá trình mã hóa bất kể các đoạn âm thanh phức tạp hay đơn giản Với bộ mã hóa VBR xem xét
sự phức tạp để phân bổ bit phù hợp tới từng đoạn âm thanh tùy vào độ phức tạp ít hay nhiều Điều này có thể dẫn đến một mã hóa tốt hơn cho âm thanh nói chung Với VBR phải xác định cấp độ chất lượng yêu cầu để đáp ứng, và các bộ mã hóa quyết định số lượng các bit cần thiết Một điều được xem như sự cải tiến đối hơn so với CBR, có thể mã hóa nhiều lần các đoạn âm thanh với tốc độ bitrate khác nhau để đạt được chất lượng theo yêu cầu VBR làm ta không thể kiểm soát trực tiếp vào kích thước của tập tin được tạo ra
Trang 20một số ứng dụng, ví dụ như dòng dữ liệu trên đường truyền kết nối internet thường
sử dụng tần số lấy mẫu thấp hơn để phù hợp với tốc độ chậm
Âm thanh MP3 hoạt động trên một số tần lấy mẫu khác nhau: 32KHz, 44,1 KHz
và 48 KHz Thông thường sử dụng tần số lấy mẫu 44.1KHz
Khi chọn lựa tần số lấy mẫu cần xem xét các vấn đề:
- Tần số lấy mẫu càng lớn thì chất lượng âm thanh càng cao, người nghe càng nghe thuận tai
- Băng thông tín hiệu tăng khi tần số lấy tăng, VD: băng thông tín hiệu 15 KHz khi tần lấy mẫu là 32 KHz và băng thông tín hiệu rộng 8 KHz khi tần lấy mẫu là 16 KHz
- Khi tín hiệu đầu vào theo tiêu chuẩn âm thanh số AES/EBU, thì tần số lấy mẫu cũng bị cố định theo
- Trong phát thanh hay ứng dụng đa phương tiện, nên lấy mẫu ở 48 KHz hoặc 44.1 KHz cho chất lượng tín hiệu âm thanh cao
Chất lượng và dung lượng tập tin MP3 phụ thuộc vào hai tham số cơ bản: tần số lấy mẫu, tốc độ bitrate Việc lựa chọn các tham số này, phụ thuộc vào mục đích và nhu cầu sử dụng Do đó, tập tin MP3 có khả năng lựa chọn linh hoạt (trong phạm vi các tiêu chuẩn cho phép)
III CẤU TRÚC TẬP TIN MP3
III.1 Cấu trúc tập tin
Một tập tin MP3 bao gồm nhiều khung và các thẻ dữ liệu ID3 ở đầu và cuối tập tin Có cấu trúc như sau:
[Thẻ ID3v2] Khung1 Khung2 Khung3 ……… [Thẻ ID3v1]
Hình 4: Các thành phần cơ bản tập tin MP3
Các khung trong tập tin MP3 có kết cấu liên quan đến nhau (thông qua các byte
“dự trữ"), do đó không thể xuất khung ra một cách tùy ý Mỗi khung bao gồm phần tiêu đề và phần khối dữ liệu Phần tiêu đề có các giá trị bit khác nhau, tùy thuộc vào
Trang 21các tập tin MP3 Tiêu chuẩn ISO/IEC 11.172-3 xác định phạm vi và các giá trị cho từng phần của tiêu đề cùng với các đặc điểm kỹ thuật của nó Phần khối dữ liệu của khung bao gồm các thông tin âm thanh về tần số và biên độ
Thẻ (tag) ID3 chứa các dữ liệu của tập tin MP3, được xử lý trước hoặc sau các khung MP3 Thẻ ID3 cung cấp các thông tin về tiêu đề, tác giả, nhạc sỹ, diễn xuất, thời lượng, album …
Dưới đây là sơ đồ tổng quan về các thành phần trong tập tin MP3
Hình 5: Sơ đồ tổng quan cấu trúc các phần trong tập tin MP3 III.2 Cấu trúc khung
Khung là một khái niệm trung tâm khi giải mã dòng bit MP3 Nó bao gồm 1152 mẫu, được chia thành hai “grannule”, mỗi “grannule” gồm 576 mẫu Mỗi “grannule” được chia làm 32 khối băng con, mỗi băng con có 18 line tần số
[Thẻ ID3v2] Khung1 Khung2 Khung3 ……… [Thẻ ID3v1]
Tag title Artist Album Year Comment "0" Track Genre
Tiêu đề CRC Thông tin Dữ liệu chính Dữ liệu phụ thuộc
Trang 22Hình 6: Cấu trúc khung theo các line tần số ở chế độ hai kênh
Phổ tần số dao động từ 0 tới Fs/2 Hz Các băng con phân chia phổ tấn số thành
32 phần bằng nhau Mỗi băng con chứa 18 mẫu đã được biến đổi đến miền tần số bằng phép biến đổi MDCT
576 line tần số trong một “grannule” được phân chia vào trong 21 hệ số tỉ lệ được thiết kế để phù hợp tần số băng tới hạn Dải hệ số tỉ lệ được sử dụng chính cho việc lượng tử hóa lại (requantization) của các mẫu
Cấu trúc của khung gồm 5 phần: tiêu đề (header), mã phát hiện lỗi (CRC), thông tin, dữ liệu chính (main data) và dữ liệu phụ thuộc (ancillary data)
Tiêu đề CRC Thông tin Dữ liệu chính Dữ liệu phụ thuộc
Khung
Trang 23switching), như vậy tốc độ bit chuyển đổi dọc theo nội dung của khung Với cách này tốc độ bit thấp hơn có thể được sử dụng trong khung mà không làm giảm chất lượng âm thanh
Các khung có thể có phần kiểm tra lỗi CRC Nếu nó tồn tại nó nằm ngay sau phần tiêu đề và trước phần thông tin Phần kiểm tra lỗi CRC dài 16 bit Chiều dài của khung được tính toán để xác định các phần tiêu đề khác Nó cũng được sử dụng
để tính toán CRC của khung và so sánh kỹ lưỡng với tập tin âm thanh Đây thực sự
là một phương pháp tốt để kiểm tra các giá trị phần tiêu đề
1 Phần tiêu đề
1.1 Cấu trúc phần tiêu đề
MP3 bao gồm nhiều khung đều chứa phần tiêu đề và phần giá trị dữ liệu Những
dữ liệu này sau đó được tái tạo lại trong bộ giải mã Vào đầu mỗi khung là phần tiêu
đề khung Chứa 32 bit cơ sở dữ liệu tham chiếu tới các khung đến Cơ sở dữ liệu được chia thành các trường đại diện cho thông tin khác nhau về khung, chứa thông tin về lớp, tốc độ bit, tần số mẫu và chế độ stereo… (được thể hiện trong bảng sau):
Trường Bit bắt
đầu
Bit kết thúc Chiều dài
Bit cho biết lớp thực
Trang 24Bảng 3: Các trường trong phần tiêu đề
1.2 Ý nghĩa và giá trị bit của các trường trong phần tiêu đề
Các bit đồng bộ (Sync Bit) nằm ở đầu của mỗi khung, được sử dụng khi xác định
một khung hợp lệ để bắt đầu phát tập tin MP3 Các bộ giải mã phải kiểm tra giá trị các bit đồng bộ trong hai khung hình liên tục và kiểm tra tính hợp lệ các phần khác của dữ liệu tiêu đề trước khi nó khẳng định đó là một khung hợp lệ trước khi giải mã MP3
Các bit đồng bộ khung gồm 11 bit (thiết lập tất cả các bit):
11111111111
Bit phiên bản MPEG (MPEG version): xác định MPEG thuộc phiên bản nào, các
tham số kỹ thuật của MPEG là các dữ liệu được mã hóa phù hợp tuân theo phiên bản MPEG
2 bit phiên bản âm thanh MPEG, bao gồm các giá trị sau:
00 - MPEG phiên bản 2.5
01 – Dành riêng
10 - MPEG Phiên bản 2 (ISO/IEC 13.818-3)
11 - MPEG Phiên bản 1 (ISO/IEC 11.172-3)
Bit lớp thi hành (Layer implemented) chỉ ra lớp nén nào đã được sử dụng trên
tập tin Bao gồm 2 bit, miêu tả các lớp:
Trang 2500 – Dành riêng
01 – Lớp III
10 - Lớp II
11 - Lớp I
Các bit bảo vệ (protection bit)cho biết phần kiểm tra lỗi 16 bit CRC được chèn
vào trước các dữ liệu âm thanh không
Bao gồm 1 bit, mang các giá trị:
0 – Được bảo vệ bởi phần kiểm tra lỗi CRC (dài 16 bit sau phần tiêu đề khung)
1 – Không được bảo vệ
Bit chỉ số tốc độ bitrate (bitrate index) được sử dụng để xác định các tốc độ
bitrate mà khung đã được mã hóa
Bao gồm 4 bit, cho biết tốc độ bit sử dụng:
Trang 26Chú ý: Tất cả các giá trị ở đơn vị kbps
V1 – Phiên bản MPEG 1 L3 - Lớp III
Tần số lấy mẫu (sampling rate) cho biết tần số lấy mẫu nào được sử dụng, bao
gồm 2 bit (đơn vị Hz), với các giá trị như bảng sau:
Bit đệm (padding bit) cho biết liệu khung có đưa vào các bit đệm để tạo ra khung
có số lượng bit chính xác so với tốc độ bitrate Bao gồm 1 bit với các giá trị:
0 - khung không đệm
1 - khung được đệm bằng cách cắm thêm một khe
Các bit đệm được sử dụng để điều chỉnh sao cho phù hợp với tốc độ bitrate chính xác
Các bit riêng (private bit) được sử dụng cho khởi sự một ứng dụng cụ thể
mã hóa trong mono hay stereo, bao gồm 1 bit
Các bit lựa chọn chế độ (Mode selected bit) trong quá trình mã hóa, tập tin MP3
được xác định cụ thể hoạt động ở chế độ kênh nào, ví dụ như nó được mã hóa mono hay stereo Bao gồm 2 bit, mang các giá trị:
Trang 2710 - Dual channel (mono)
11 - Single channel (Mono)
Các bit chế độ mở rộng (Mode extension bit): bao gồm 2 bit, chỉ sử dụng nếu tập
tin đã được mã hóa ở chế độ join stereo Điều này cho bộ giải mã biết cách xử lý đối với âm thanh join stereo Chế join stereo được sử dụng để liên kết các thông tin làm giảm dung lượng của tập tin Những bit này được xác định tự động bởi một bộ mã hóa trong chế độ Join stereo
Đối với lớp III, hai bit này xác định loại join stereo nào được sử dụng (cường độ
âm thanh stereo hoặc m/s stereo)
Lớp III
Giá trị
Cường độ Stereo (Intensity stereo)
Bit bản quyền (copyright bit): bao gồm 1 bit Nếu giá trị ccủa bit này là không
đổi, thì việc sao chép các tập tin là bất hợp pháp
0 – Âm thanh không được sao chép
1 - Âm thanh được sao chép
Bit gốc (original bit): bao gồm 1 bit, được sử dụng để xác định xem các dữ liệu
âm thanh trên vật liệu gốc không
0 – Sao chép từ bản gốc
1 – Bản gốc
Trang 28Bit quan trọng (Emphasis bit) có thể được sử dụng nếu nó được đặt trong bản
thu gốc, tuy nhiên hiện nay bít này không thực sự được sử dụng nữa
VD: mỗi tiêu đề dài 32 bit, có 38 khung/giây tương ứng 1.216 bit thông tin tiêu
đề trong một giây Nếu là mã hóa 128kbps tức là có 128.000 bit dữ liệu âm thanh / giây, do đó thông tin phần tiêu đề chỉ chiếm gần 1% kích thước của tập tin Khi mã hóa tốc độ bit biến đổi VBR, các khung khác nhau sẽ được mã hóa với tốc độ bitrate khác nhau, các thông tin tiêu đề là rất cần thiết
2 Phần mã phát hiện lỗi CRC
Phần mã phát hiện lỗi gồm 16 bit (2 byte) Phần mã này chỉ được sử dụng khi các bit bảo vệ trong phần tiêu đề được thiết lập Nó dược sử dụng để đảm bảo rằng không có lỗi truyền dẫn cho phần dữ liệu
3 Phần thông tin
Phần thông tin nằm sau phần tiêu đề và mã phát hiện lỗi CRC Chứa các thông tin cần thiết để giải mã phần dữ liệu chính 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ổ
Phần thông tin dài 17 byte đối tập tin MP3 làm việc ở chế độ đơn kênh, dài 32 byte đối tập tin MP3 làm việc ở chế độ hai kênh
Trang 29Thông tin bắt đầu
dữ liệu chính
(Main_data_begin)
Các bit riêng (Private_bits) Scfsi
Thông tin của gr0 Side_Info_gr0
Thông tin của gr1 Side_Info gr1
9 bit 5 bit /3 bit 4 bit / 8 bit 59 bit / 118 bit 59 bit / 118 bit
Hình 8: Cấu trúc phần thông tin
Main data begin: Điểm bắt đầu chứa những dữ liệu chính của khung
SI grannule 0 : thông tin về khung ở vị trí thứ 0
SI grannule 1 : thông tin về khung ở vị trí thứ 1
private bits : do người sử dụng định nghĩa
Scfsi : Thông tin về việc lựa chọn hệ số tỉ lệ
Cấu trúc chi tiết của phần thông tin thể hiện trong bảng sau
Tổng cộng cho các khối thông thường 22 44
Cho các khối bắt đầu, khối dừng, khối ngắn (start, stop, short block)
Trang 30Hệ số khuếch đại của các khối con (sublock gain) 3*3 3*3 + 3*3
Bảng 4: Bảng cấu trúc các bit trong phần thông tin
3.1 Bắt đầu phần dữ liệu chính (Main_data_begin)
Main_data_begin là một con trỏ 9 bit, cho biết sự bắt đầu của phần thông tin, nó
chỉ đến điểm bắt đầu của khung Số lượng dữ liệu trong dòng dữ liệu cố định không
chứa hết vào phần dữ liệu chính Sinh ra những khoảng không gian trống, chúng
được dùng để chứa dòng dữ liệu biến đổi Đây được gọi là kỹ thuật dự trữ bit
Những khung có không gian lưu trữ nhiều hơn số lượng byte cần lưu trữ, thì có thể
để dành không gian thừa này cho các khung khác, trở thành vùng dự trữ bit Các
khung tiếp theo có thể sử dụng các byte ngoài sẵn có bằng cách trỏ ngược vào vùng
dự trữ bit Vì vậy dữ liệu của một khung hình có thể được tìm thấy trong một số
khung phía trước đó Nó là con trỏ 9 bit nên nó chỉ được không quá 511 byte(29
-1=511)phía trước phần tiêu đề
3.2 Các bit bổ sung (Private_bits)
Private_bits (5 bit, 3bits) được dùng để làm tròn kích thước của phần thông tin
lúc nào cũng đủ 17 byte cho kênh đơn và 32 byte cho kênh kép
3.3 Thông tin các hệ số tỷ lệ (Scfsi)
Scfsi (4bits, 8 bit) cung cấp thông tin lựa chọn hệ số tỷ lệ trong trường hợp hệ số
tỷ lệ được chia sẻ là giống nhau cho cả hai “grannule” Việc chia sẻ hệ số tỷ lệ được
áp dụng cho một nhóm hệ số tỷ lệ 21 dải hệ số tỷ lệ tần số được chia thành 4 nhóm
Trang 31như thể hiện trong bảng sau Scfsi là một dữ liệu 4 bit, mỗi một bit là một nhóm hệ
số tỷ lệ Một thiết lập bit cho biết hệ số tỷ lệ được chia sẻ cho cả hai “grannule” Như vậy chỉ cần truyền đi một hệ số tỷ lệ cho cả 2 “grannule” Trong trường hợp sử dụng cửa sổ ngắn (block_type = 10) hệ số tỷ lệ được gửi cho từng “grannule”
3.4 Thông tin về “grannule”(Side_infor_grannule)
Kích cỡ phần Side_infor_grannule ở chế độ mono là 59 bit, ở chế độ stereo là
118 bit Trong phần này bao gồm rất nhiều phần nhỏ, cung cấp các thông tin về hệ số
tỷ lệ scalefactor, mã Huffman, được phân tích cụ thể sau đây:
Số bit cho hệ số tỷ lệ - Par2_3_length (12 bit, 24 bit) cho biết số bit trong các hệ
số tỷ lệ trong phần dữ liệu chính và dữ liệu mã Huffman cho từng “grannule”và kênh Phần dữ liệu chính được chia thành hai hoặc bốn phần cho kênh đơn và kênh đôi tương ứng
Xác định giá trị các line tần số - Big_values (9 bit, 18 bit) của 576 đường tần
số của mỗi “grannule”được mã hoá bằng 32 bảng mã Huffman Các tần số bắt đầu từ
số không đến tần số lấy mẫu/2 Về cơ bản nó được phân chia thành ba vùng như thể hiện trong hình sau
| Vùng Big_values | vùng count1 | vùng rzero | 1 -big_values*2 -big_values*2+count1*4 -576
Bảng 6: Phân vùng của phổ tần số Vùng Big_values lại được chia thành ba vùng nhỏ region 0, region 1 và region
2, chứa các cặp giá trị đại diện từ tần số 0 là phần đầu tiên của quang phổ Số lượng
Trang 32Huffman trong phạm vi từ 0 đến 15 Các giá trị khác lớn hơn đó là các giá trị nguyên không dấu sẽ được thêm tới 15 giá trị đến giá trị mong muốn Số bit giới hạn linbits (giá trị lớn nhất là 13) trong mỗi bảng Huffman được sử dụng để mã hóa các số nguyên không dấu Như vậy giá trị lớn nhất là 2 ^ 13 + 15 = 8207
Vùng count1 đại diện cho các tần số cao hơn so với vùng big_value Nó gấp
bốn lần các giá trị lượng tử bằng -1, 0 và 1
Vùng rzero đại diện các tần số cao nhất với biên độ thấp nhất, bao gồm các cặp
giá trị lượng tử hóa bằng 0
Global_gain (8 bit, 16 bit) cho biết các thông tin kích cỡ bước lượng tử hóa và
các công thức cho lượng tử hóa lại được đưa ra trong khối lượng tử hóa lại
Scalefac_compress (4 bit, 8 bit) quy định rõ số lượng bit phân bổ cho truyền dẫn
hệ số tỷ lệ được xác định bởi các băng tần số thấp (slen1) và băng tần số cao (slen2) như thể hiện trong bảng sau Việc truyền tải slen1 và slen2 tới các dải hệ số tỷ lệ phụ thuộc vào loại khối và khối hỗn hợp như thể hiện trong bảng sau
Thứ tự scalefac_compress 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Bảng 7: Phân bố bit thông tin hệ số tỷ lệ
Bảng 8: Phân chia giữa các tần số thấp và cao
Cờ chuyển cửa sổ - Window_switching_flag (1 bit, 2 bit) cho biết loại khối
được sử dụng Một thiết lập bit chỉ ra các khối khác biệt khối bắt đầu, khối dừng và khối ngắn (Start_block, Stop_block, short_block) được sử dụng Các trường của block_type, mixed_block_flag, bảng lựa chọn Table_select và subblock_gain sẽ
Trang 33được sử dụng Ngược lại nếu window_switching_flag không được thiết lập, một khối thông thường được sử dụng nơi các trường của bảng lựa chọn, region0 và region1 sẽ được áp dụng
Thông tin bảng mã Huffman - Table_select (15bits, 30 bit) cho biết bảng
Huffman nào được sử dụng khi giải mã các giá trị big_values Có 32 bảng mã Huffman theo tiêu chuẩn kỹ thuật ISO 11173-2 Khi cờ chuyển mạch cửa sổ không được thiết lập, khối thông thường được sử dụng Ở chế độ mono cần 5 * 3 * 1 = 15 bit và ở chế độ stereo cần 5 * 3 * 2 = 30bits Ngược lại khi cờ chuyển mạch cửa sổ được thiết lập, thì một khối khác được sử dụng đó là khối bắt đầu, khối dừng và khối dài (Start_block , Stop_block, long_block) Các bit cần thiết cho âm thanh ở chế độ mono là 5 * 2 * 1 = 10 bit, ở chế độ stereo là 5*2*2 = 20 bit
Biên giới các vùng region0_count (4 bit, 8 bit), region1_count (3 bit, 6 bit)
được sắp xếp với việc phân chia phổ tần số trong các băng tần số Số lượng bit của dòng dữ liệu là ít hơn so với số lượng bit của các dải trong vùng tương ứng Ví dụ nếu region0_count là 8 các dải hệ số tỷ lệ là 3; (8 + 1) / 3 = 3 dải hệ số tỷ lệ Số lượng các cặp trong mỗi vùng có thể được tìm thấy từ số lượng dải sử dụng bảng bắt đầu
Các loại khối - Block_type (2 bit, 4 bit) cho biết các loại cửa sổ được sử dụng
cho “grannule”, cụ thể như trong bảng sau Trường này sẽ chỉ được sử dụng nếu sử dụng các cửa sổ khác với cửa sổ thông thường và cờ windows_swtiching_flag được thiết lập
Cờ xác định khối hỗn hợp - Mixed_blockflag (1 bit, 2 bit) cho biết loại cửa
sổ được sử dụng trong slen1 (thấp hơn) và slen2 (cao hơn) Trường này không sử
Trang 34mixed_block_flag được thiết lập hai băng con thấp nhất được giải mã bằng một cửa
sổ thông thường và 30 băng con còn lại được giải mã bởi các cửa sổ theo quy định của block_type
Bảng Huffman cho 2 vùng - Table selection for two regions (10 bit, 20bits)
cho biết bảng mã Huffman nào được sử dụng khi giải mã vùng big_values như quy định tại bảng lựa chọn cho khối thông thường Trường này chỉ được sử dụng khi cờ chuyển mạch cửa sổ không được thiết lập Nó cho biết các khối khác biệt được sử dụng Khi nó ở chế độ mono số lượng bit cần thiết sẽ là 5 * 3 * 1 = 15 bit và khi nó ở chế độ stereo số lượng bit cần thiết sẽ là 5*3*2 = 30bits
Hệ số khuếch đại khối nhỏ - Subblock_gain (9bits, 18 bit) chỉ ra được bù
đắp cho 4 nhóm hệ số lượng tử hóa của global_gain cho mỗi khối ngắn 4 nhóm hệ
số tỷ lệ sublock_gain (cửa sổ) trong khối lượng tử hóa của bộ giải mã chia các giá trị của subblock Trường này được sử dụng khi cờ chuyển mạch cửa sổ window_switching_flag được thiết lập và loại khối sử dụng block_type loại 2
Preflag (1 bit, 2 bit) cho biết preemphasis bật hay tắt Một bit được thiết lập
cho biết các giá trị của bảng sau sẽ được đưa vào các hệ số tỷ lệ scalefactor Nếu block_type là loại 2 thì preflag không bao giờ sử dụng
scalefac_scale 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Bảng 10: Bảng Preemphasis
Lượng tử hóa hệ số tỷ lệ - Scalefac_scale (1 bit, 2 bit) cho biết kích cỡ bước
lượng tử đã áp dụng cho hệ số tỷ lệ scale_factor như trong sau
Trang 35Bảng mã huffman cho vùng count 1 - Count1table_select (1 bit, 2 bit) cho
biết bảng mã Huffman nào theo tiêu chuẩn ISO được sử dụng cho vùng count 1 như trong bảng sau:
Hệ số tỷ lệ được sử dụng trong khối lượng tử hóa lại để giảm tạp âm lượng tử hóa Mỗi dải hệ số tỷ lệ truyền dẫn một hệ số tỷ lệ được Scfsi (chia sẻ) trong phần thông tin cho biết liệu hệ số tỷ lệ được chia sẻ giữa các “grannule”hay không Nếu một khối ngắn được tìm thấy trong “grannule”thứ nhất hoặc thứ hai thì không có sự chia sẻ hệ số tỷ lệ trong “grannule” Phần scalefac_compress cho biết số bit được phân bổ cho từng hệ số tỷ lệ Các dải hệ số tỷ lệ đã sử dụng sẽ phụ thuộc vào độ dài cửa sổ (ngắn hoặc dài) và tần số lấy mẫu
Các bit mã Huffman trong phần dữ liệu chính được mã hóa bằng bảng mã Huffman Như đã đề cập trong phần thông tin, dữ liệu chính của các bit mã Huffman được chia thành ba vùng Dữ liệu trong vùng big_values sử dụng 32 bảng mã Huffman để mã hóa (bảng 0-31) Hcode là đại diện cho các bit mã Huffman X và Y
là các cặp giá trị được mã hóa tương ứng với các bit mã Huffman và hlen cho biết chiều dài của mã x và y Tại vùng con count1 nó được mã hóa bằng cách sử dụng bảng mã Huffman cho bội của 4 A và B
Các bội của 4 v, w, x, y được mã hoá để đại diện cho hcode Tại vùng rzero nó được mã hóa với tất cả các số không
Trang 36Thứ tự của các bit mã Huffman được sắp xếp theo khối dài hay khối ngắn với tần số lấy mẫu 32KHz, 44.1KHz hoặc 48KHz được xác định rõ trong phần thông tin Chiều dài của hệ số tỉ lệ phụ thuộc vào hệ số tỉ lệ được sử dụng trong bộ lượng
tử hoá mẫu và chiều dài cửa sổ (dài hay ngắn)
Các bit mã hoá Huffman biến đổi theo thời gian trong suốt tiến trình mã hoá Định dạng tốc độ bit biến đổi được sử dụng để giải quyết vấn đề này nhưng tốc độ bit phù hợp thì thường được sử dụng cho một yêu cầu ứng dụng cụ thể
Bộ mã hoá thực hiện trên khối dữ liệu dài 1152 mẫu Khi chiều dài dữ liệu mã hoá nhỏ hơn trung bình số bit cần thiết, bộ mã hoá đưa phần kích thước dư này vào
bộ dự trữ (reservoir) Khi kích thước bộ mã hoá quá lớn vượt quá chiều dài cho phép, sẽ mượn lại những bit dư này từ bộ dự trữ Bộ mã hoá chỉ có thể mượn bit dư
từ khung trước nó, không thể mượn được từ khung sau nó Vì vậy một kỹ thuật dự trữ bit được định nghĩa cho phép sử dụng kho dữ liệu chính trong một khung cho 2 khung liên tiếp nhau:
Hình 9: Kỹ thuật dự trữ bit được sử dụng trong việc lưu trữ dữ liệu chính
Trong ví dụ này khung 1 sử dụng bit từ khung 0 và khung 1 Khung 2 sử dụng bit từ khung1 Khung 3 yêu cầu cao hơn sử dụng bit từ khung1, 2và 3 Cuối cùng khung 4 chỉ sử dụng bit tại khung 4
Tiêu đề
Tiêu đề Khung 3
Tiêu đề Khung 3
Tiêu đề Khung 4
Trang 37Tham số “main _data_begin” trong phần thông tin cho biết khung này có sử dụng những bit từ khung phía trước hay không Tất cả dữ liệu cho một khung có thể được lưu trữ trong khung trước đó Kích thước lớn nhất của kho dự trữ bit là 511 byte
5 Dữ liệu phụ trợ
Đây là phần dữ liệu phụ, do người dùng tự định nghĩa trong quá trình mã hóa, là phần cuối cùng của khung; sau phần dữ liệu chính và trước phần tiêu đề của khung tiếp theo Phần này là phần tùy chọn, có thể có hoặc không và có độ dài bit không cố định
6 Tính toán độ dài khung
Trước tiên, hãy phân biệt hai vấn đề: kích thước khung và độ dài khung Kích thước khung là số lượng mẫu chứa trong một khung Nó là không đổi và luôn luôn bằng 384 mẫu cho lớp I và 1.152 mẫu cho lớp II và III Chiều dài khung là chiều dài của một khung khi nén, đơn vị đo là bit Nó được tính toán bằng các khe Một khe cắm dài 4 bytes cho lớp I, và dài 1 byte cho lớp II và III Hãy nhớ rằng, chiều dài khung có thể thay đổi do việc đệm thêm các bit hoặc chuyển đổi tốc độ bitrate
Công thức tính chiều dài khung phụ thuộc vào các tham số tốc độ bitrate, tần số lấy mẫu và bộ đệm của phần tiêu đề khung
Chiều dài tập tin MPEG I lớp III sử dụng công thức:
Trong đó:
FrameLengthInBytes: Chiều dài khung (Byte)
Bitrate: Tốc độ bit
SampleRate: Tần số lấy mẫu
Padding: Các bit của bộ đệm
Ví dụ: MPEG1lớp III, tốc độ bitrate = 128.000bps, tần số lấy mẫu SampleRate = 441.000Hz, đệm = 0 Từ công thức trên thay vào ta có kích thước khung (FrameSize)
FrameLengthInBytes = 144 * bitrate / SampleRate + Padding
Trang 38III.3 Thẻ dữ liệu ID3
1 Khái niệm
ID3 là một thẻ dữ liệu (TAG) được sử dụng để mô tả các thông tin của tập tin
âm thanh MPEG Nó dài 128 bit, nằm ở vị trí đầu hoặc cuối của các tập tin âm thanh phụ thuộc vào phiên bản ID3v1 hay ID3v2
ID3 mang các thông tin về tập tin âm thanh hiện hành Nó bao gồm các thông tin
về các nghệ sĩ, tên bài hát, và năm Hiện nay hầu hết các máy nghe nhạc MP3 có thể đọc được các thẻ dữ liệu mới như ID3v2 cũng như các thẻ ID3v1 Các loại thẻ gần đây như thẻ ID3v2 có thể lưu giữ thông tin nhiều hơn so với các thẻ đời cũ, và chúng nằm tại đầu của các dòng dữ liệu âm thanh Các thẻ ID3v1 có thể nằm ở đầu hoặc cuối của dòng dữ liệu âm thanh
Tag title Artist Album Year Comment "0" Track Genre
3bit 30bit 30bit 30bit 4bit 28bit 1bit 1bit 1bit
Bảng 13: Cấu trúc dữ liệu thẻ ID3
2 Giá trị bit của thẻ dữ liệu ID3
Giá trị các bit của thẻ dữ liệu ID3 được thể hiện trong bảng sau:
Chiều dài (bits)
Vị trí (bits)
Trang 39Các tham số kỹ thuật cho tất cả các trường trong trường hợp không rõ (chưa xác định) được đệm bằng ký tự null (ASCII 0) Tuy nhiên, không phải tất cả các ứng dụng tuân theo quy định này (ví dụ như WinAmp đệm các trường chưa rõ bằng
<khoảng trắng> , ASCII 32)
Trang 40CHƯƠNG II: MÃ HÓA VÀ GIẢI MÃ MP3
Trong chương trước, đề tài đã nghiên cứu và tìm hiểu chuẩn nén âm thanh số MP3 Trong chương này, đề tài đi vào phân tích quá trình mã hóa và giải mã tập tin MP3, làm cơ sở cho triển khai phần mềm giải mã MP3 trong chương tiếp theo
I MÃ HÓA MP3 ( MP3 ENCODING)
I.1 Khái quát
Quá trình mã hóa MP3 là quá trình chuyển đổi tín hiệu âm thanh từ định dạng PCM sang dạng tín hiệu âm thanh nén định dạng MP3
Bộ mã hoá âm thanh MP3 là bộ mã hóa thụ cảm phân tích thành phần tần số và biên độ của tín hiệu âm thanh đầu vào và so sánh với mô hình cảm nhận của tai người Các dữ liệu âm thanh đầu vào bao gồm các tần số với biên độ khác nhau Trong đó có những tần số âm thanh tai người cảm nhận được và không cảm nhận được Những tần số nằm ngoài ngưỡng che được giữ lại, còn những tần số nằm trong vùng của ngưỡng che thì bị loại bỏ (như mô hình sau) Bộ mã hóa thụ cảm loại bỏ các thành phần dư thừa không cần thiết (phần tai người không cảm nhận được) vì vậy giảm 1 lượng đáng kể dữ liệu cần mã hoá
Hình 10: Ngưỡng che âm thanh
Do đó sau quá trình mã hóa, tập tin âm thanh MP3 có dung lượng nhỏ hơn nhiều lần so với tập tin âm thanh gốc
Ngưỡng nghe Tín hiệu bị che
Tín hiệu không bị che
Trượt ra ngoài ngưỡng nghe Vùng bị che