BÀI TIỂU LUẬN MÔN AN NINH CƠ SỞ DỮ LIỆU
NÉN ÂM THANH SỐ
GV hướng dẫn :
Học viên
:
Lớp
:
PGS. TS. Trịnh Nhật Tiến
Nguyễn Khắc Minh
K19HTTH
1
GIỚI THIỆU
Trong bài tiểu luận này, em xin trình bày về Nén âm thanh số. Bài trình bày đi vào tìm
hiểu về âm thanh số, các phương pháp nén âm thanh số, độ an toàn của nén âm thanh số
cũng như là các ứng dụng của nén âm thanh số. Trong bài tiểu luận em đi sâu vào nghiên
cứu định dạng nén có mất mát “AAC – Advanced Audio Coding”, là một bước kế tiếp so
với chuẩn nén MP3 mà rất phổ biến hiện nay.
Cuối bài, em xin giới thiệu một chương trình nén file từ định dạng khơng nén (wav)
sang định dạng aac và đồng thời giải nén theo hướng ngược lại (từ định dạng mp3 sang
định dạng aac).
Bài tiểu luận của em được trình bày theo những điều em tìm hiểu được, hoặc được
trích dẫn lại từ các website mà em tham khảo. Có điều gì chưa đúng, mong thầy góp ý để
bài tiểu luận của em hồn thiện hơn, chính xác hơn.
Em xin chân thành cảm ơn!
Học viên: Nguyễn Khắc Minh
2
NỘI DUNG
CÁC THUẬT NGỮ
Từ/Thuật
ngữ
Âm thanh số
Digital audio
ADC
Analog To Digital Converter
DAC
Digital to Analog Converter
LZ77
LZ77
LZW
LZW
PPM
Prediction by Partial
Matching
ZIP
Viết đầy đủ/Từ tiếng Anh
Giải thích/Tham chiếu
Âm thanh được lưu trữ dạng
số
Bộ chuyển đổi từ tín hiệu
tương tự sang tín hiệu số
Bộ chuyển đổi từ tín hiệu số
sang tín hiệu tương tự
Là tên của thuật tốn nén dữ
liệu không mất mát, được
công bố thành bài báo của 2
tác giả Abraham Lempel và
Jacob Ziv năm 1977
Là thuật tốn nén dữ liệu
khơng mất mát tồn cục, tạo
bởi Abraham Lempel, Jacob
Ziv và Terry Welch.
Kĩ thuật nén dữ liệu thống kê
thích nghi, dựa trên mơ hình
ngữ cảnh và dự đốn.
Là định dạng file được nén
3
Mã hóa
Mã hóa
CD
DVD
Codec
MPEG
PCM
DPCM
hoặc việc nén dữ liệu. Một file
ZIP chứa một hoặc nhiều file
được nén, để giảm kích thước,
được lưu trữ ở file có đi mở
rộng .zip. Một định dạng file
ZIP cho phép nhiều thuật toán
nén
Encrypt
Là cách thức thay đổi dữ liệu
được trình bày, bằng cách sử
dụng phương thức hoặc khóa
hạn chế, có tính tốn chun
sâu. Nó thường dùng để che
giấu dữ liệu với một số người,
trong khi không che giấu với
một số người khác
Encode
Cũng là cách thức thay đổi dữ
liệu được trình bày, nhưng là
bảo tồn dữ liệu, và dễ dàng
hồi phục sau một số loại
chuyển đổi.
Compact Disc
Là loại đĩa quang, có thể lưu
trữ 80 phút âm thanh hoặc
700MB dữ liệu máy tính được
mã hóa theo kĩ thuật số
Digital Versatile Disc, hoặc
Là định dạng lưu trữ đĩa
Digital Video Disc
quang, để lưu trữ video và dữ
liệu, có dung lượng lớn hơn
đĩa CD.
Compressor-Decompressor,
Là thiết bị, hoặc chương trình
hoặc Coder-Decoder, hoặc
có khả năng mã hóa và giải
Compression/Decompression mã một dịng dữ liệu hoặc tín
algorithm
hiệu.
The Moving Picture Experts Hội phim ảnh thế giới, là một
Group
sản phẩm nhóm mang tính
ISO/IEC được phát triển cho
các thiết bị âm thanh và hình
ảnh bằng cách nén dữ liệu
chuẩn. Tên chính thức của
MPEG là ISO/IEC
JTC1/SC29 WG11
Pulse Code Modulation
Điều chế mã xung
Differential Pulse Code
Điều chế mã xung khác biệt
Modulation
4
ADPCM
Adaptive Differential Pulse
Code Modulation
u-law
Wrapper
Global
GMO, ở Bethlehem,
Music Outlet Pennsylvania, USA
Dolby
Digital
Water
making
Điều chế mã xung khác biệt
thích nghi
Loại nén có mất mát, tham
khảo [u-law]
Là một loại đóng gói
Là nhà phân phối nhạc nổi
tiếng ở đông bắc Mỹ
Là tên của công nghệ nén âm
thanh được phát triển bởi hang
Dolby Laboratories
Là q trình nhúng thơng tin
vào tín hiệu số được dùng để
xác minh tính xác thực hoặc
nhận dạng tác giả…
CHƯƠNG 1: GIỚI THIỆU ÂM THANH SỐ
1.1. Âm thanh số
Âm thanh là những gì chúng ta nghe thấy bằng tai. Những âm thanh đó là sóng do áp lực
của khơng khí truyền tới tai qua khơng khí. Nếu khơng có khơng khí, chúng ta khơng thể
nghe thấy gì cả. Và cũng khơng có âm thanh trong khơng gian. Chúng ta nghe thấy âm
thanh vì tai của chúng ta nhạy cảm với những dạng sóng áp lực đó. Sóng có thể ở dạng sự
kiện như tiếng vỗ tay hoặc theo chu kì như tiếng bấm chng, lắc đồng hồ.
Hình vẽ dưới đây mơ phỏng một dạng sóng đã được lượng tử hóa và loại bỏ các giá trị
ngưỡng 0 (Sóng âm thanh, là đường màu xám)
5
Figure : Sóng âm thanh (Nguồn tham khảo:
/>Âm thanh số là việc tái tạo lại âm thanh bằng cách sử dụng điều chế mã xung và tín hiệu
số. Hệ thống âm thanh số gồm bộ chuyển đổi từ tương tự sang số (ADC), chuyển đổi từ
số sang tương tự (DAC), lưu trữ số, các thành phần xử lý và truyền dữ liệu. Thuận lợi
chính của việc sử dụng âm thanh số là khả năng lưu trữ, truy xuất và truyền tín hiệu mà
khơng có tổn thất nhiều về chất lượng.
Figure : Hệ thống chuyển đổi âm thanh số
( />Những âm thanh mà chúng ta nghe thấy thường là những âm thanh có tần số nằm trong
khoảng 20Hz-20kHz. Có 2 yếu tố xác định chất lượng của việc ghi âm số gồm:
•
Tỉ lệ lấy mẫu (sample rate): Tỉ lệ mà các mẫu được ghi âm hoặc phát lại, đo bằng
đơn vị Hertz (Hz), hoặc số lượng mẫu trong mỗi giây. Một đĩa âm thanh số thường
có tỉ lệ mẫu là 44,100Khz, được viết tắt thành 44kHz.
6
•
Định dạng mẫu hoặc gọi là kích thước mẫu: Nó là số bit để thể hiện dạng số cho
mỗi mẫu. Nếu coi tỉ lệ lấy mẫu là độ chính xác theo chiều ngang của sóng âm
thanh số, thì kích thước mẫu sẽ là độ chính xác theo chiều dọc. Một đĩa CD âm
thanh có kích thước mẫu thường là 16 bits, tương ứng với 5 số thập phân.
Ngồi ra, thì có nhiều thuộc tính khác với một file âm thanh số, như
•
Định dạng file
•
Số kênh (mono – đơn kênh, stereo hoặc nhiều kênh)
•
Tốc độ dữ liệu
•
Định dạng nén hoặc khơng nén
Âm thanh số có thể được lưu trữ hoặc truyền đi. Các thiết bị lưu trữ âm thanh số có thể là
CD, digital audio player, ổ cứng, ổ cứng di động USB, CompactFlash, hoặc bất cứ thiết
bị lưu trữ số liệu nào khác. Tín hiệu số có thể được chỉnh sửa theo một quy trình gọi là xử
lý tín hiệu số, nó có thể được lọc hoặc áp dụng các hiệu ứng khác.
Có 3 loại file âm thanh số cơ bản:
•
Dạng khơng nén, là các hệ thống phổ biến, như định dạng WAV, ví dụ như các file
CD audio
•
Các định dạng sử dụng kĩ thuật nén, nhưng không mất dữ liệu khi nén, được gọi là
kĩ thuật nén không mất mát. Ví dụ như các loại định dạng file flac, .aif, .wav.
•
Các định dạng mà bị mất một vài thành phần dữ liệu gốc, nhưng vẫn đảm bảo
được chất lượng tương đối, được gọi là nén có mất mát. Các kĩ thuật nén dữ liệu
âm thanh số, ví dụ như MP3, Advanced Audio Coding (AAC), Ogg Vorbis, hoặc
FLAC là các kĩ thuật phổ biến để giảm kích thước file. Âm thanh số có thể được
truyền trực tiếp sang các thiết bị khác.
1.2. Các định dạng của âm thanh số
Các file âm thanh số thường gồm 2 phần: phần tiêu đề và phần dữ liệu âm thanh. Phần
tiêu đề thường gồm thông tin về file, bao gồm độ phân giải, tỉ lệ lấy mẫu và loại nén.
Thường thì những wrapper dùng để thêm các chức năng, như thông tin về bản quyền và
khả năng streaming cho các file âm thanh số này.
7
Định dạng của file âm thanh số là kiểu dữ liệu âm thanh số sẽ được lưu trong file. Kiểu
file mơ tả cấu trúc dữ liệu trong file đó. Thường thì có thể các file có cùng định dạng
được sử dụng bởi một hoặc nhiều loại kiểu file. Ví dụ, định dạng PCM được tìm thấy ở
trong cả các loại file WAV và AIFF.
Bảng các định dạng file phổ biến:
Kiểu file
Phần file mở rộng
Codec
AIFF (Mac)
.aif, .aiff
*PCM
AU (Sun/Next)
.au
*u-law
CD Audio (CDDA)
N/A
PCM
MP3
.mp3
MPEG Audio LayerIII
Windows Media
.wma
Proprietary
Audio
QuickTime
(Microsoft)
.qt
Proprietary (Apple
Computer)
RealAudio
.ra, ram
Proprietary (Real
Networks)
WAV
.wav
*PCM
Có thể được sử dụng với nhiều codec khác nhau
MP3
Định dạng MP3, là định dạng file âm thanh phổ biến nhất, là ví dụ tiêu biểu của hệ thống
nén có mất mát. Định dạng MP3 được phát triển vào cuối những năm 1980 và bắt đầu
phổ biến vào giữa những năm 1990 với sự phổ biến của các phương tiện chia sẻ file trên
Internet. Những file MP3 là lý tưởng cho việc chia sẻ trực tuyến, hoặc trong bất cứ hồn
cảnh nào mà khơng gian lưu trữ là trung bình, bởi vì chúng có thể được nén xuống kích
8
thước nhỏ hơn nhiều so với định dạng WAV. Chất lượng của các file MP3 giảm, hầu hết ở
trong khoảng 160 và 320kb/s, so với 1411.2kb/s của các file WAV, nhưng với rất nhiều
người, sự mất mát chất lượng âm thanh đó là khơng đáng chú ý, đặc biệt với những người
nghe khơng có nhu cầu địi hỏi chất lượng âm thanh cao.
AAC – Advanced Audio Coding
Ra đời năm 1997 từ Fraunhofer Institue (Đức) kết hợp với một số công ty như AT&T,
Sony, Dolby; là một định dạng file âm thanh số khác cũng là định dạng phổ biến thời kì
internet. Nó là hệ thống nén file mới hơn so với MP3 và được phổ biến bởi chất lượng âm
thanh tốt hơn so với tỉ lệ nén giống như MP3.
Vorbis
Định dạng Vorbis là định dạng ít được biết đến hơn, nhưng vẫn có tính chất phổ biến rộng
rãi, là định dạng âm thanh số, tương tự với MP3 hoặc AAC. Vorbis được hình thành như
một dạng kết hợp của MP3, khi đó khi đó có nguy cơ rằng MP3 sẽ trở thành định dạng
file phải trả tiền bản quyền. Vorbis file được gắn đuôi mở rộng .ogg, và ở wrapper được
coi là Ogg Vorbis file. Chất lượng của Vorbis có thể so sánh được với MP3, một số người
cịn nói rằng nó tốt hơn trong một vài tình huống – nhưng thành cơng của nó xuất phát từ
thực tế là nó khơng có bằng sáng chế. Vorbis thường phổ biến trong cộng đồng mã nguồn
mở.
WAV
Wav là định dạng mặc định cho âm thanh số trên máy tính Windows cá nhân. Những file
WAV thường được mã hóa ở định dạng PCM, có nghĩa là chúng khơng được nén và
chiếm rất nhiều khơng gian. Các file WAV cũng có thể được mã hóa ở định dạng khác, ví
dụ như mp3.
AIFF và AU
AIFF là định dạng âm thanh mặc định trong Macintosh, và AU là định dạng mặc định
trong các hệ thống SUN. Cả hai định dạng này được hỗ trợ ở hầu hết các nền tảng khác
9
và các ứng dụng âm thanh khác. Mỗi một định dạng trong số chúng có thể được nén,
nhưng việc nén đơi khi tạo ra vấn đề tương thích với các nền tảng khác.
Âm thanh truyền trực tuyến
Những âm thanh truyền trực tuyến tránh được rất nhiều vấn đề của các file âm thanh lớn.
Thay vì phải đợi để tải xuống tồn bộ file lớn, bạn có thể nghe âm thanh ngay khi chúng
được tải xuống máy tính của bạn. Trình chơi âm thanh truyền trực tuyến lưu vài giây dữ
liệu đáng giá trong bộ đệm trước khi bắt đầu phát lại.
Những định dạng chuẩn
Những định dạng chuẩn làm cho những người phát triển phần mềm và nhà sản xuất
phương tiện dễ dàng sản xuất sản phẩm với chi phí rẻ hơn và tương thích nhiều với các
phần khác hơn. Tính tương thích cung cấp những định dạng chuẩn giúp đảm bảo khách
hàng sao cho nhạc của họ và các thiết bị không bị lạc hậu. Băng cassette, đĩa nén và PCM
là những ví dụ của định dạng âm thanh chuẩn mà phù hợp với cả khách hàng và nhà sản
xuất
PCM
PCM (Điều biến mã xung) là một phương pháp phổ biến để lưu trữ và truyền dữ liệu âm
thanh số không nén. Vì nó là loại định dạng chung, nó có thể được đọc bởi hầu hết các
ứng dụng âm thanh – tương tự với cách file văn bản thuần túy được đọc bởi các ứng dụng
xử lý văn bản. PCM được sử dụng trong Audio CDs và băng âm thanh số (DAT). PCM
cũng là định dạng phổ biến trong các file AIFF và WAV. PCM cũng là cách thể hiện rõ
ràng của những dãy số nhị phân cho các giá trị mẫu (1s và 0s). Khi âm thanh PCM được
truyền, mỗi byte ‘1’ sẽ được thể hiện bằng xung điện áp dương và mỗi giá trị ‘0’ được thể
hiện bởi sự có mặt của một xung.
DPCM
DPCM (Điều biến các mã xung khác biệt) là dạng đơn giản của nén có mất mát mà chỉ
lưu trữ sự khác nhau giữa các mẫu liên tiếp. DCPM sử dụng 4 bits để lưu trữ sự khác
10
nhau, bất kể độ phân giải của file gốc. Với DPCM, một file 8-bit sẽ có tỉ lệ nén là 2=1, và
một file 16bit sẽ có tỉ lệ nén là 4=1.
ADPCM
ADPCM (Điều chế mã xung khác biệt thích ứng) tương tự với DPCM ngoài trừ số bit
được sử dụng để lưu trữ sự khác nhau giữa các mẫu thay đổi phụ thuộc vào độ phức tạp
của tín hiệu. ADPCM hoạt động bằng cách phân tích một mẫu tiếp theo trong các mẫu và
dự đoán giá trị của mẫu tiếp theo. Nó sau đó lưu sự khác giữa các giá trị tính được và giá
trị thực tế.
Nén u-law
u-law (phát âm là mew-law) là loại nén mất mát phổ biến, tương tự với ADPCM, có thể
được dùng trong AU, AIFF, và WAV files
Âm thanh MPEG
Âm thanh MPEG là dòng thuộc chuẩn mở cho nén âm thanh mà bao gồm MP2, MP3 và
AAC.
11
CHƯƠNG 2. NÉN DỮ LIỆU ÂM THANH SỐ
2.1. Các phương pháp nén
2.1.1. Nén dữ liệu không mất mát
Các phương pháp nén không mất mát được phân loại theo kiểu dữ liệu mà họ mong muốn
nén. Một vài kiểu chính của đích cho các thuật tốn nén có thể là text, file chạy, ảnh và
âm thanh. Về mặt nguyên lý, bất cứ phương pháp nén không mất mát tổng quát (tổng
quát – general-purpose – có nghĩa là chúng có thể kiểm sốt tất cả các loại dữ liệu nhị
phân) có thể được sử dụng cho bất cứ loại dữ liệu nào, nhưng nhiều chương trình khơng
đảm bảo được tỉ lệ nén đáng kể với các loại dữ liệu không thuộc dạng mà chúng được đặt
ra để giải quyết. Ví dụ với dữ liệu âm thanh, không thể được nén tốt với các thuật toán
nén giả sử dữ liệu quy ước là văn bản.
Việc nén không mất mát quan trọng khi dữ liệu nén và dữ liệu nguyên gốc cần phải đảm
bảo giống nhau, Chương trình điển hình là các chương trình chạy, source code. Một vài
file ảnh lớn, đáng chú ý là PNG, chỉ sử dụng nén không mất mát, trong khi các loại ảnh
khác như TIFF và MNG có thể sử dụng hoặc nén mất mát hoặc không mất mát. GIF sử
dụng phương pháp nén không mất mát nhưng hầu hết các cài đặt của GIF thì khơng đầy
đủ trong việc thể hiện đầy đủ các màu, do vậy họ lượng tử hóa ảnh xuống 256 hoặc ít
màu hơn trước khi mã hóa thành ảnh gif (việc lượng tử hóa thường là dithering-phối
màu). Việc lượng tử hóa màu sắc là quy trình mất mát, nhưng việc khơi phục lại ảnh màu
và lượng tử hóa lại nó khơng tạo ra mất mát nào thêm.
Hầu hết các chương trình nén khơng mất mát sử dụng 2 loại thuật toán khác nhau: một
tạo ra mơ hình thống kê cho dữ liệu đầu vào và một sẽ ánh xạ dữ liệu đầu vào thành dãy
bit sử dụng mơ hình này theo cách mà dữ liệu có thể sẽ tạo ra output ngắn hơn, là dữ liệu
12
khơng chắc chắn. Thường, chỉ một thuật tốn chính sẽ được gọi tên, trong khi cái thứ hai
sẽ là ngầm định (ví dụ, các loại chuẩn hóa) hoặc khơng được chỉ ra.
Các thuật tốn mơ hình hóa thống kê cho dữ liệu text (hoặc dữ liệu nhị phân dạng text
như các file chạy) gồm:
• Chuyển đổi Burrows-Wheeler (việc xử lý sắp xếp các khối làm cho việc nén hiệu quả
hơn)
• LZ77
• LZW
• PPM
Các thuật tốn để tạo ra chuỗi bit gồm:
• Mã hóa Huffman
• Mã hóa số học
Rất nhiều phương pháp trong số này được cài đặt bằng các công cụ mã nguồn mở và bản
quyền, ví dụ như LZW và các biến thể của chúng. Một vài thuật toán được sang chế ở Mỹ
và các nước khác và việc sử dụng chúng đòi hỏi sự cấp quyền của những nhà, các tổ chức
sáng chế.
Như đã đề cập trước đó, việc nén âm thanh không mất mát là lĩnh vực chun sâu. Thuật
tốn nén âm thanh khơng mất mát có thể tận dụng lợi thế của các chuỗi giá trị lặp lại
được chỉ ra bởi bản chất sóng của dữ liệu – cần sử dụng các mơ hình để dự đốn giá trị
tiếp theo và mã hóa sự khác nhau giữa các giá trị thực tế và giá trị dự đoán. Nếu sự khác
nhau giữa thực tế và dự đoán (gọi là lỗi) có xu hướng nhỏ, thì những giá trị khác nhau
(như 0, +1, -1, vv ở các dữ liệu mẫu) trở nên rất thường xuyên và có thể được khai thác
để mã hóa chúng thành dạng vài bit. Phương pháp này được gọi là mã hóa Delta.
2.1.2. Nén có mất mát
Một phương pháp nén có mất mát thì dữ liệu được nén và sau đó q trình giải nén dữ
liệu sẽ trả lại dữ liệu không giống với nguyên gốc, nhưng đủ gần để có thể sử dụng hiệu
quả theo cách nào đó. Nén dữ liệu có mất mát được sử dụng thường xuyên trên Internet
và đặc biệt là trong việc truyền thông đa phương tiện (streaming media) và các ứng dụng
13
điện thoại (telephony). Những phương pháp này thường ám chỉ tới các codec. Hầu hết
các định dạng nén mất mát thì đều có mất mát chung, việc nén lặp lại và giải nén file sẽ
gây ra quá trình mất mát chất lượng. Nó tương phản với phương pháp nén khơng mất
mát.
Có 2 kiểu nén mất mát cơ bản:
•
Trong các codec chuyển đổi có mất mát, các mẫu ảnh hoặc âm thanh được lấy,
phân chia thành các đoạn nhỏ, chuyển sang khơng gian cơ bản và lượng tử hóa.
Kết quả lượng tử hóa được mã hóa entropy.
•
Trong codec dự đốn mất mát, dữ liệu trước và sau đó được sử dụng để dự đoán
mẫu âm thanh hoặc khung ảnh hiện tại. Lỗi giữa dữ liệu dự đoán và dữ liệu thực,
cùng với bất cứ thông tin thêm mà cần thiết trong q trình tái tạo, sẽ được lượng
tử hóa và mã hóa.
Trong một số hệ thống, hai kĩ thuật này được kết hợp, với codec chuyển đổi được sử
dụng để nén tín hiệu lỗi tạo ra trong giai đoạn dự đốn.
Nén dữ liệu có mất mát sử dụng các thuật tốn nén dữ liệu mà cho phép dữ liệu nguyên
gốc có thể được khôi phục từ dữ liệu nén. Phương pháp này tương đối ngược với phương
pháp nén có mất mát, vì phương pháp nén có mất mát khơng khơi phục được dữ liệu gốc
ban đầu. Nén có mất mát được sử dụng trong rất nhiều các ứng dụng. Nó được sử dụng
phổ biến trong các file định dạng ZIP và trong tool gzip của Unix.
2.2. So sánh nén không mất mát với nén có mất mát
Thuận lợi của phương pháp nén có mất mát so với phương pháp nén khơng mất mát là
trong một vài trường hợp, một phương phép nén có mất mát thì nén được file nhỏ hơn bất
cứ phương pháp nén không mất mát nào, trong khi vẫn đảm bảo yêu cầu của ứng dụng.
Các phương pháp có mất mát thường được sử dụng để nén âm thanh, ảnh hoặc video. Tỉ
lệ nén (kích thước của file nén so với file chưa được nén) của các video codec nén gần
như luôn cao hơn nhiều so với những audio hoặc ảnh tương đương. File audio có thể
được nén ở tỉ lệ 10:1 với sự mất mát chất lượng khơng đáng kể, video có thể được nén
với một chút mất mát chất lượng hiển thị, ở tỉ lệ 300:1. Việc nén ảnh có mất mát thường
14
để ở 1/10 kích thước gốc, so với audio, nhưng việc chất lượng giảm thì đáng kể hơn, đặc
biệt khi kiểm tra kĩ.
Khi người dùng mong muốn một file nén có mất mát (ví dụ, để giảm thời gian download)
thì file mà được yêu cầu sẽ khác với file gốc ở mức độ bit trong khi vẫn khó phân biệt với
tai hoặc mắt người dùng ở hầu hết các mục tiêu thực tế. Nhiều phương pháp thường tập
trung vào đặc tính của cơ thể con người, ví dụ, có tính đến là mắt người chỉ có thể nhìn
được ở một dải bước sóng ánh sáng xác định. Các mơ hình tâm lý-âm thanh sẽ mơ tả âm
thanh có thể được nén ở tỉ lệ nào mà vẫn đảm bảo chất lượng nhận được khơng bị giảm
nhiều. Những sai sót gây ra trong q trình nén mà có ảnh hưởng đáng kể tới mắt hoặc tai
người thì được coi là những nhiễu/thành phần lạ của việc nén.
Các thuật tốn nén khơng mất mát thường khai thác việc giảm bớt/nén theo thống kê như
vậy để đảm bảo dữ liệu của người gửi chính xác hơn, nhưng vẫn đảm bảo chất lượng/độ
hồn hảo. Việc nén khơng mất mát là có thể bởi vì hầu hết dữ liệu thực tế thì đều có dự
phịng thống kê. Ví dụ, trong văn bản tiếng Anh, kí tự e thì thường phổ biến hơn kí tự z,
và xác suất mà kí tự q theo sau kí tự z là rất nhỏ.
Một loại nén khác, gọi là nén dữ liệu có mất mát, là có thể nếu một vài mất mát của thông
tin đúng là chấp nhận được. Ví dụ, khi một người xem một bức ảnh hoặc đoạn video trên
tivi có thể khơng để ý nếu có một vài chi tiết bị loại bỏ hoặc thể hiện khơng hồn hảo.
Tương tự, 2 clips của audio có thể được nhận thức là giống nhau thậm chí có một đoạn
thiếu thơng tin mà được tìm thấy ở audio cịn lại. Các thuật tốn nén dữ liệu có mất mát
được giới thiệu là có sự khác biệt nhỏ và việc thể hiện ảnh, video hoặc audio sử dụng
thiếu vài bit.
Các chiến lược nén không mất mát lại ngược lại, do vậy mà dữ liệu ngun gốc có thể
được khơi phục, trong khi chiến lược nén mất mát chấp nhận một số mất mát về dữ liệu
để có thể đạt được tỉ lệ nén tốt hơn. Các thuật tốn nén khơng mất mát sẽ không nén được
một vài file; bất cứ thuật toán nén nào cũng thất bại khi nén bất cứ loại dữ liệu nào mà
chứa các mẫu không được nhận dạng rõ. Nỗ lực nén dữ liệu mà đã được nén rồi sẽ làm
chúng nở phình ra, ví dụ khi nén dữ liệu đã được mã hóa (encrypted).
15
2.3. Một phương pháp nén dữ liệu âm thanh số - AAC
Chuẩn AAC (Advanced Audio Coding ) là chuẩn nén audio tiếp nối chuẩn MP3, đang
được sử dụng trong kho lưu trữ âm nhạc trực tuyến của Apple là iTunes. Về mặt kiến
trúc, AAC có kiến trúc tương tự như Mp3 nhưng khác ở chỗ AAC dùng phương pháp
module hóa, phát triển thêm nhiều cơng cụ mã hóa mới, giúp cải tiến audio ở tốc độ bit
thấp.
AAC là một phần chính thức trong chuẩn MPEG-4, được sử dụng để tạo ra các file âm
thanh số có kích thước nhỏ. Các loại biến thể của nó được chỉ ra trong chuẩn ISO/IEC
14496-3. AAC về mặt khái niệm thì tương tự với định dạng MP3. Giống như MP3, nó sử
dụng những đặc điểm về khả năng nghe của tai người để loại bỏ các bit mà tương ứng với
âm thanh người không thể nghe được. Tai người không thể nghe được những âm thanh
im lặng trong khi có một âm thanh khác cao hơn ở mức tần số tương tự. Ví dụ, một cuộc
hội thoại sẽ khơng thể nghe được khi có một máy bay phản lực bay ở trên đầu. Hiện
tượng này được gọi là mặt nạ thính giác, cho phép loại bỏ dữ liệu với độ mất mát trung
thực là nhỏ nhất.
Cũng giống như MP3, AAC là thuật toán nén có mất mát, có nghĩa là file âm thanh số
gốc không thể được tái tạo lại chỉ từ những dữ liệu đã được nén. Theo thuật ngữ về độ tin
cậy của âm thanh, sẽ khơng có mất mát nếu audio nén được mã hóa đúng đắn. AAC lợi
thế hơn MP3 ở một điểm: Trong khi MP3 yêu cầu tỉ lệ bit phải xấp xỉ ở mức 256 kilobits
per second để đạt được tính “trong suốt”, thì AAC có thể đạt được chất lượng tương
đương nhưng chỉ ở mức 128kps. Điều này cho phép AAC có thể giảm một nửa kích
thước file so với Mp3 với cùng chất lượng và 1/10 kích thước dữ liệu của CD.
Ngồi đặc điểm trên, thì nó có thể kiểm sốt được các tần số âm thanh ở mức cao hơn và
thấp hơn, cung cấp tới 48 kênh audio và cho phép sự tạo ra các file audio ở độ trễ thấp
hơn cho cả hai cách giao tiếp (truyền telephone nhanh chóng). AAC cũng cho phép quản
lý bản quyền số (Digital Rights Management), kiểm soát cách sử dụng của file âm thanh
số.
16
Khơng giống như MP3, khơng có phiên bản nào miễn phí của thuật tốn tốn mã hóa/giải
mã của AAC. Tất cả người dùng của AAC phải trả tiền bản quyền công nghệ thông qua
VIA Licensing Corporation. AAC được sử dụng trong dòng iPod của hãng Apple
Computer, và là một phần trong đặc tả thế hệ tiếp theo của DVD.
AAC là thuật tốn nén âm thanh băng thơng rộng mà khai thác 2 chiến lược mã hóa chính
để giảm lượng dữ liệu thể hiện file âm thanh chất lượng cao, gồm
•
Các thành phần tín hiệu khơng tác động tới cảm nhận sẽ bị loại bỏ
•
Dư thừa trong tín hiệu âm thanh đã mã hóa sẽ bị loại bỏ
Q trình nén thực sự gồm các bước sau:
•
Tín hiệu được chuyển từ miền không gian sang miền tần số sử dụng chuyển đổi
cosine rời rạc sửa đổi forward (MDCT). Nó được thực hiện bằng cách sử dụng
filter banks lấy số lượng mẫu thời gian phù hợp và chuyển chúng sang dạng mẫu
khơng gian.
•
Tín hiệu ở miền tần số được lượng tử hóa dựa trên mơ hình cảm nhận âm thanh và
được nén.
•
Thêm các mã sửa lỗi nội bộ
•
Tín hiệu được lưu trữ và truyền
•
Để phịng ngừa các mẫu bị hỏng, cài đặt mới nhất của thuật toán Luhn mod N
được áp dụng cho mỗi frame.
Chuẩn audio MPEG-4 không định nghĩa một hoặc một tập chiến lược nén hiệu quả cao,
nhưng có đề cập tới toolbox phức tạp để thực hiện các thao tác ở phạm vi rộng từ mã hóa
speech ở mức tốc độ bit thấp tới mã hóa âm thanh chất lượng cao và tổng hợp nhạc.
•
Dịng thuật tốn mã hóa MPEG-4 mở rộng phạm vi từ mã hóa speech tốc độ bit
thấp (xuống tới 2 kbps) tới mã hóa âm thanh chất lượng cao (tới 64 kbps cho mỗi
kênh và cao hơn).
•
AAC khuyến nghị tần số lấy mẫu giữa khoảng 8kHz tới 96kHz và bất kể số lượng
kênh từ 1 tới 48 kênh.
17
•
Ngược với filter banks lai của MP3, AAC sử dụng chuyển đổi cosine rời rạc có
sửa đổi (MDCT) cùng với việc tăng độ dài cửa sổ lên 1024 hoặc 960 điểm.
Bộ mã hóa AAC có thể chuyển đổi linh động giữa một khối MDCT đơn với độ dài 1024
points hoặc 8 khối 128 điểm (hoặc 960 điểm với 120 điểm, tương ứng)
•
Nếu một tín hiệu thay đổi hoặc một sự kiện thoáng qua xảy ra, 8 cửa sổ ngắn mỗi
128/120 điểm sẽ được chọn để cho độ phân giải tạm thời tốt hơn.
•
Mặc định, cửa sổ dài hơn 1024/960-điểm sẽ được chọn bởi vì việc tăng độ phân
giải cho phép mơ hình cảm nhận sẽ chi tiết hơn, sẽ dẫn tới việc mã hóa sẽ được cải
thiện hơn.
Nén Modular
AAC sử dụng phương pháp modular để nén. Tùy thuộc vào độ phức tạp của dòng bit
được nén, những mong muốn về hiệu suất, kết quả đầu ra chấp nhận được, người cài đặt
có thể tạo ra các profile để định nghĩa tập cụ thể các công cụ mà họ mong muốn để tạo ra
ứng dụng riêng theo nhu cầu.
Chuẩn MPEG-2 Part 7 khuyến nghị sử dụng các profile chính sau (mặc định)
•
Profile có độ phức tạp thấp (LC) – đơn giản nhất và được sử dụng và hỗ trợ rộng
rãi nhất.
•
Main Profile (Main) – Giống như LC profile, với việc có thêm dự đốn
backwards.
•
Scalable Sample Rate (SSR) (MPEG-4 AAC-SSR) – cũng được biết đến bằng tên
gọi Sample-Rate Scalable (SRS).
Chuẩn MPEG-4 Part 3 (MPEG-4 Audio) định nghĩa rất nhiều công cụ nén khác nhau
(như các loại đối tượng âm thanh) và cách sử dụng chúng trong các profile mới. AAC
không được sử dụng trong một vài profile âm thanh của MPEG-4. MPEG-2 Part 7 AAC
LC profile, AAC Main Profile và AAC SSR Profile được kết hợp với Thay thế nhiễu cảm
nhận (Perceptual Noise Substitution) và được định nghĩa trong chuẩn MPEG-4 như là
Audio Object Types (dưới dạng tên là AACLC, AAC main và AAC SSR). Chúng được
kết hợp với các Object Types khác trong MPEG-4 Audio profiles.
18
Toolkit bảo vệ lỗi AAC
Việc áp dụng bảo vệ lỗi cho phép việc sửa lỗi đạt tới mức độ nhất định. Mã sửa lỗi được
áp dụng giống nhau cho toàn bộ payload. Tuy nhiên, do các phần khác nhau của AAC
payload có độ nhạy với lỗi khác nhau, do đó cách áp dụng giống nhau tỏ ra không phải là
cách hiệu quả.
Payload của AAC có thể được chia nhỏ thành các phần với độ nhạy lỗi khác nhau.
•
Mã sửa lỗi độc lập có thể được áp dụng cho bất cứ thành phần nào nhờ sử dụng dự
đoán lỗi (EP) được định nghĩa trong chuẩn audio MPEG-4.
•
Bộ cơng cụ này cung cấp khả năng sửa lỗi cho hầu hết các phần nhạy cảm với lỗi
của payload giúp cho việc thêm dữ liệu ở mức tối thiểu (tránh việc thêm nhiều dữ
liệu, gây q tải).
•
Cơng cụ này cũng tương thích ngược với bộ giải mã đơn giản và đã có trước của
AAC. Một phần lớn chức năng của bộ sửa lỗi dựa vào thơng tin lan tỏa của tín
hiệu audio ngang bằng hơn trong luồng dữ liệu.
AAC phục hồi lỗi (ER – Error Resilient)
ER là kĩ thuật dùng để nén chính nó để chống lại lỗi tốt hơn. Với AAC, có 3 phương thức
tùy chỉnh được phát triển và định nghĩa trong MPEG-4 Audio.
•
Sắp xếp lại từ mã Huffman (HCR) để tránh việc lây lan lỗi trong dữ liệu phổ.
•
Khối mã ảo (Virtual Codebooks – VCB11) để phát hiện lỗi nghiêm trọng trong dữ
liệu phổ.
•
Mã độ dài biến thiên ngược (RVLC – Reversible Variable Length Code) để giảm
việc lây lan lỗi trong dữ liệu scale factor data.
Cấp phép và bằng sáng chế
Để có thể truyền trực tiếp hoặc phân phối nội dung ở định dạng AAC thì khơng u cầu
bản quyền hoặc trả tiền. Đó là lý do mà AAC là định dạng hấp dẫn hơn so với MP3, đặc
biệt là việc streaming content (như Internet radio).
19
Tuy nhiên, để phát triển những AAC codec thì nhà sản xuất hoặc người phát triển phải trả
tiền bản quyền. Vì lý do này mà FOSS cài đặt FFmpeg và FAAC chỉ được phân phối ở
dạng mã nguồn, để tránh việc vi phạm bản quyền.
Việc mở rộng và cải tiến
Một vài mở rộng được thêm vào chuẩn AAC đầu tiên (được định nghĩa trong MPEG-2
Part 7 năm 1997).
•
Thay thế nhiễu cảm nhận (PNS), được thêm vào MPEG-4 năm 1999. Nó cho phép
việc mã hóa nhiễu như một loại dữ liệu giả ngẫu nhiên.
•
Bộ dự đốn dài hạn (LTP), được thêm vào trong MPEG-4 năm 1999. Nó là bộ dự
đốn trước với độ phức tạp tính tốn thấp.
•
Kháng lỗi (ER) được thêm vào chuẩn MPEG-4 Audio version 2 năm 2000, dùng
cho việc truyền trên các kênh dễ gặp lỗi.
•
AAC-LD được định nghĩa năm 2000, sử dụng cho các ứng dụng chuyển đổi thời
gian thực.
•
AAC hiệu quả cao (HE-AAC), cũng được biết đến như là aacPlus v1 hoặc AAC+,
việc kết hợp của SBR (Việc sao chép dải phổ) và AAC LC; sử dụng cho tốc độ bit
thấp, được định nghĩa vào năm 2003.
•
HE-AAC v2 được biết đến như là aacPlus v2 hoặc eAAC+, là sự kết hợp của
Parametric Stereo (PS) và HE-AAC; sử dụng cho tốc độ bit thấp hơn nữa, được
định nghĩa vào năm 2004 và 2006.
•
MPEG-4 Scalable To Lossless (SLS), được định nghĩa năm 2006, có thể bổ sung
một luồng AAC để cung cấp một lựa chọn giải mã không mất mát, như sản phẩm
Fraunhofer IIS’s “HD-AAC”.
Các định dạng chứa
Ngoài các định dạng chứa như MP4, 3GP và định dạng file media dựa vào chuẩn ISO thì
dữ liệu âm thanh AAC cũng có thể được đóng gói trong các định dạng cơ bản hơn như
Audio Data Interchange Format (ADIF) gồm một header cơ bản theo sau là các khối dữ
liệu âm thanh AAC thơ. Ngồi ra, nó cũng có thể được đóng gói định dạng streaming gọi
20
là Audio Data Transport Stream (ADTS), gồm chuỗi các frame, mỗi frame có phần
header rồi đến dữ liệu âm thanh AAC. Cả hai định dạng được định nghĩa trong MPEG-2
Part 7, nhưng chỉ được xem xét informative trong MPEG-4, do vậy bộ giải mã MPEG-4
không cần hỗ trợ định dạng đó. Những container này, cũng như dịng AAC thơ, có thể
được chứa trong file mở rộng là .aac. Ngoài ra còn 2 định dạng khác được định nghĩa
trong MPEG-4 Part 3: Low overhead MPEG-4 Audio Transport Multiplex (LATM), cng
cấp cách kết hợp payload âm thanh riêng rẽ, và Low overhead Audio Stream (LOAS),
định dạng streaming tự đồng bộ.
Kiến trúc của chuẩn AAC được thể hiện trong hình sau:
Figure : Sơ dồ khối của một bộ mã hóa MPEG-2 AAC
2.3.1. Các khối trong kiến trúc của AAC
2.3.1.1. Filterbank
Giàn lọc sẽ phân tích tín hiệu đầu vào thành 32 dải băng con, đầu ra của các bộ lọc băng
con này được nối với bộ biến đổi Cosine rời rạc (MDCT – Modified Discrete Cosine
21
Transform). MDCT sẽ chia tiếp đầu ra của giàn lọc thành 1024 băng con (so với 576
băng con của MP3) nhằm đạt độ phân giải tốt hơn trong miền tần số. Việc phân chia các
băng con để tận dụng đặc điểm độ nhạy của tai người đối với các thành phần tần số khác
nhau. Độ phân giải của giàn lọc AAC tốt hơn so với MP3.
2.3.1.2. Mơ hình cảm nhận
Khâu này có tính chất quyết định chất lượng của tín hiệu AAC. Bộ mã hóa AAC sẽ tiến
hành ánh xạ từ miền thời gian sang miền tần số bằng phép biến đổi Fourier nhanh FFT
(Fast Fourier Transform) 1024 điểm, để giúp giải tần số tốt hơn nhằm ước lượng ngưỡng
mặt nạ chính xác hơn.
2.3.1.3. Lượng tử hóa và nén
Thực hiện các lượng tử hóa và nén các thành phần phổ với yêu cầu nhiễu lượng tử hóa
thấp hơn ngưỡng của mặt nạ. Các giá trị lượng tử hóa được mã hóa Huffman với giá trị
bảng mã thay đổi đối với các dải tần khác nhau, để thích nghi tốt hơn với các tín hiệu. Vì
mã Huffman là mã có độ dài từ mã thay đổi và cần giữ cho nhiễu thấp hơn ngưỡng mặt
nạ nên phải tính độ lợi và các hệ số trước khi lượng tử hóa. Để tìm được độ lợi và hệ số tỉ
lệ tối ưu đối với một khối cho trước, AAC dùng hai vòng lặp lồng nhau.
2.3.2. Những cải tiến so với chuẩn Layer-3
2.3.2.1. Cải tiến để nâng cao hiệu quả mã hóa
•
Độ phân giải tần số cao hơn: Số lượng dòng tần số trong AAC được nâng cao tới
1024 kênh, thay vì 576 nhý trong chuẩn Layer-3
•
Dự đốn: Một dự đốn backward lựa chọn, tính theo từng dịng, sẽ đạt được kết
quả mã hóa tốt hơn, đặc biệt với các tín hiệu gần giống như tone (ví dụ, pitchpipe).
Chức năng này chỉ sẵn có trong main profile hiếm khi được sử dụng.
22
•
Nâng cao mã hóa joint stereo: So với Layer-3, cả mã hóa mid/side và mã hóa mật
độ cũng linh động hơn, cho phép áp dụng để giảm bit-rate thường xuyên hơn.
•
Nâng cao mã hóa Huffman: Trong AAC, việc mã hóa bằng cách gấp 4 lần số dòng
tần số (frequency lines) được áp dụng thường xuyên hơn.Thêm nữa, sự phân công
của bảng mã Huffman với các phần bộ mã hóa có thể được linh động hơn.
2.3.2.2. Cải tiến để nâng cao chất lượng audio
Ngoài các cải tiến giúp làm tăng chất lượng của q trình nén, AAC cũng có những cải
tiến giúp nâng cao chất lượng âm thanh cho các lớp tín hiệu khó (? Difficult signals)
•
Nâng cao việc chuyển đổi các khối
Thay vì sử dụng các dàn lọc lai (cascaded) như trong Layer-3, AAC sử dụng một
bộ lọc MDCT chuyển đổi chuẩn với một đáp ứng xung (với các khối ngắn) của 5.3
ms ở tần số lấy mẫu 48 kHz. So sánh giá trị này với giá trị thường gặp là 18.6ms
của Layer-3 và giảm tỉ lệ pre-echo artifacts (xem giải thích bên dưới)
•
Temporal Noise Shaping, TNS
Kĩ thuật này thực hiện nắn nhiễu trong miền thời gian (noise shaping) bằng cách
mở một dự đoán lặp trong miền tần số. TNS là một kĩ thuật mới mà đã chứng tỏ sự
thành công đặc biệt trong việc cải tiến chất lượng speech ở tốc độ thấp.
Với sự tổng hợp rất nhiều cải tiến nhỏ, AAC đạt tới chất lượng trung bình như Layer-3
với tỉ lệ bit-rate chỉ bằng 70% của chuẩn Layer-3.
2.4. Độ an toàn của phương pháp nén dữ diệu âm thanh số
Nén dữ liệu âm thanh số là một trong những cơng cụ đảm bảo an tồn thơng tin. Nén dữ
liệu âm thanh số, ngoài các tác dụng cơ bản trong việc giảm kích thước file khi lưu trữ và
truyền dữ liệu, nó cịn có thể giúp ngăn chặn, hạn chế việc bổ sung, sửa dữ liệu khơng
được phép.
•
Dữ liệu âm thanh số chứa các thông tin cần được bảo vệ gồm thông tin về tác giả,
ca sỹ, bài hát, bản quyền thu âm, các thông tin về nhà sản xuất. Đối với các định
dạng độc quyển, thì các thơng tin được mã hóa, che giấu đối với người khơng
được phép.
23
•
Với các loại âm thanh cần được che giấu hoàn tồn, thì sẽ được mã hóa ở tần số,
định dạng mà người khơng có quyền sẽ khơng được biết.
Đối với các định dạng âm thanh số được nén, với các thuật tốn nén bản quyền thì người
dùng có thể chỉ được phép đọc mà không được sửa đổi thông tin, nếu bên gửi cung cấp
một chương trình giải mã để đọc (gọi là codec).
Đối với các định dạng không được biết, hoặc codec hồn tồn được che giấu, thì người
dùng hồn tồn khơng thể đọc được thơng tin nếu khơng được cung cấp codec phù hợp.
Nếu người không được phép xem thơng tin vơ tình tải được đoạn audio trên mạng cũng
sẽ khơng thể xem được.
Bên gửi cũng có thể che giấu các thông tin trong âm thanh số, ở dạng nén dữ liệu thành
các mẩu dữ liệu với dải tần cao hoặc thấp ngẫu nhiên. Với các âm thanh số nằm ngồi
“cảm nhận của tai người”, thì hầu hết các chương trình codec sẽ coi là “nhiễu”, và nếu
khơng được thỏa thuận trước, thì sẽ loại bỏ các thơng tin này, vì coi nó là khơng có giá
trị.
2.4. Ứng dụng của phương pháp nén dữ diệu âm thanh số
Với sự phát triển của máy tính và internet, nhu cầu chia sẻ thông tin và nhạc ngày càng
cao hơn. Nhưng người ta không thể nào gửi hoặc phải đợi chờ quá lâu khi gửi cả album
nhạc đến 1000MB qua internet với tốc độ thấp được. Do đó các nhóm nghiên cứu, các tổ
chức, các công ty khác nhau đã cố gắng tìm ra những định dạng âm thanh mới sử dụng
những thuật toán riêng để nhằm giảm bớt dung lượng dữ liệu cần để diễn tả âm thanh gốc
cùng lúc đó cố gắng giữ cho âm thanh gần với âm thanh gốc nhất. Do vậy việc nén dữ
liệu âm thanh số cho ta các file đầu ra với kích thước nhỏ hơn nhiều so với file gốc, giúp
cho việc lưu trữ hay chia sẻ dễ dàng hơn.
24
CHƯƠNG 3: CHƯƠNG TRÌNH NÉN ÂM THANH SỐ
3.1. Giới thiệu
Chương trình “Switch Sound File Converter” để nén và giải nén các file âm thanh số.
Đây là chương trình miễn phí,
Bước 1: Cài đặt chương trình
Giao diện chương trình
Bước 2: Chọn file audio cần nén
Để thực hiện nén audio chọn “add file” ; chọn file audio cần nén; chọn định dạng đầu
ra file nén dạng *.aac
25