Nén audio chuản MPEG
Nhóm 8
1 CHUƠNG 1. LÝ THUYẾT TỔNG QUAN
1.1
Nén dữ liệu
1.1.1 Tổng quan về nén
Nén dữ liệu nhằ m giảm lượng thông tin “dư thừa” trong dữ liệu gốc và do vậy
lượng thông tin thu được sau khi nén thường có dung lượng ít hơn dữ liệu gốc rất nhiều.
Mục đích của việc nén dữ liệu:
- Đối với việc tìm kiếm thì đôi khi ta có thể tìm kiếm thông tin trên dữ liệu nén lại
nhanh hơn so với việc tìm kiếm thông tin trên dữ liệu không nén và do dữ liệu lưu trữu
ít nên số phép toán để tìm kiếm ít và lượng thông tin cao
- Nén dữ liệu đặc bịt hiệu quả với việc truyền dữ liệu trên mạng. Khi nén dữ liệu
thì chi phí cho việc truyền dữ liệu trên mạng sẽ giảm, mặt khác tốc độ đường truyền sẽ
tăng lên bởi cùng một lượng thông tin đó thời gian truyền dữ liệu sẽ giảm
- Với những ưu điểm trên thì nén dữ liệu là giải pháp hợp lý nhất nhằm mục đích
giảm chi phí cho người sử dụng.
1.1.2 Kỹ thuật nén không tổn hao
Nén không tổn hao là một kiểu nén cho phép các dữ liệu ban đầu được xây dựng
lại hoàn toàn từ các dữ liệu nén. Có rất nhiều phương pháp mã hóa được sử dụng trong
kỹ thuật nén không tổn hao. Ví dụ như phương pháp VLC (Variable-Length Coding),
RLC (Run-Length Coding), Shannon Fano, Huffman, Adaptive Huffman Coding, LZW,
Arithmetic Coding… Dưới đây sẽ giới thiệu hai phương pháp mã hóa thường gặp là
phương pháp mã hóa Shannon và phương pháp mã hóa Huffman.
Phương pháp mã hóa Shannon
Độc lập với nhau, Shannon và Fano đã xây dựng phương pháp lập mã thống kê
trên cùng một cơ sở: Độ dài từ mã tỷ lệ nghịch với xác suất xuất hiện.
Phương pháp:
- Bước 1: Sắp xếp các xác suất theo thứ tự tăng dần hoặc giảm đàn. Giả sử
p1≥…≥pk.
- Bước 2: Phân các xác suất thành 2 nhóm có tổng xác suất gần bằng nhau nhất.
- Bước 3: Gán cho hai nhóm lần lượt các kí hiệu 0 và 1 (hoặc ngược lại).
- Bước 4: Lặp lại bước 2 cho các nhóm con cho đến khi không thể tiếp tục được
nữa.
- Bước 5: Từ mã ứng với mỗi tin là chuỗi bao gồm các kí hiệu theo thứ tự lần lượt
được gán cho các nhóm có chứa xác suất tương ứng của tin.
Phương pháp mã hóa Hufman
Năm 1952, Huffman đã đưa ra một thuật toán mã háo dựa trên xác suất xuất hiện
của các kí hiệu. Thuật toán là tối ưu theo nghĩa số kí hiệu nhị phân trung bình để mã hóa
cho một kí hiệu của nguồn là cực tiểu. Phương pháp mã hóa này cho một bộ mã có tính
prefix và tất nhiên quá trình giải mã là duy nhất.
Phương pháp:
- Bước 1: Tính tần suất của các ký tự trong dữ liệu gốc
1
Nén audio chuản MPEG
Nhóm 8
- Bước 2: Hai nút tự do với tần suất thấp nhất được xác định. Hai nhánh được gán
cho một trong hai kí hiệu 0 hoặc 1 (Quy ước: Nút con có tần suất thấp hơn ở bên trái và
được mã hóa bit “0”, nút con kia ở bên phải và được mã háo bit “1”).
- Bước 3: Nút cha cho hai nút này được thiết lập. Nó có tần suất bằng tổng tần suất
của hai nút con.
- Bước 4: Nút con được liệt kê vào danh sách các nút tự do và hai nút con được
xóa khỏi danh sách.
- Bước 5: Các bước được lặp lại cho đến khi chỉ còn lại một nút tự do. Nút này
được đánh dấu là gốc của cây.
- Bước 6: Từ mã ứng với mỗi kí hiệu của nguồn là tổ hợp các kí hiệu mã ở các
nhánh của cây mã tính từ gốc.
Giải mã hóa Huffman
- Đọc vào dòng các bit một cách tuần tự và chuyển sang cây mã cho đến khi một
nút mới được tìm thấy.
- Khi một nút lá được xác định, đưa ra ký tự tương ứng đã được mã hóa.
- Khi đọc vào bit kế tiếp, bắt đầu trở lại với gốc của cây mã.
1.1.3 Kỹ thuật nén có tổn hao
Nén tổn hao cho phép xây dựng lại các dữ liệu giải nén khác dữ liệu nguồn nhưng
sự khác biệt không thể phân biệt được rõ ràng bằng tai hoặc bằng mắt thường. Nén tổn
hao có tỷ lệ nén cao và do đó làm giảm kích thước tập tin. Nén tổn hao phù hợp với nén
âm thanh và hình ảnh. Hệ số nén cao so với nén không tổn hao (có thể lên đến 100:1).
Một số kỹ thuật nén có tổn hao:
- Lấy mẫu băng tần con: Đây là phương pháp giảm dữ liệu rất hiệu quả nhưng sẽ
làm giảm chất lượng nội dung gốc.
- DPCM: Đây là mã hóa dự báo, truyền phần chênh lệch giữa các mẫu (mà không
truyền giá trị mẫu đầy đủ). Phần chênh lệch được cộng vào giá trị mẫu đã giải mã và tại
đầu cuối giải mã tạo một giá trị mẫu khôi phục lại.
- Lượng tử mã hóa vô hướng: Lượng tử từng giá trị một cách độc lập hay nói cách
khác là ánh xạ một mẫu của tín hiệu ngõ vào tạo thành một hệ số lượng tử ở ngõ ra. Đây
là một quá trình tổn hao vì khi giải lượng tử, không thể xác định chính xác giá trị gốc từ
số nguyên đã được làm tròn. Lượng tử hóa thuận theo công thức FQ = round (X/QP).
Lượng tử hóa ngược theo công thức Y = FQ*QP. Với QP là bước nhảy lượng tử.
- Lượng tử hóa vector: Là một quá trình biểu diễn một tập vector (mỗi vector gồm
nhiều giá trị) bằng một tập các số hữu hạn các ký hiệu ở ngõ ra, bảng mã ánh xạ sẽ có
các giá trị xấp xỉ với giá trị gốc
- Lượng tử hóa và VLC cho các hệ số DCT: Kết hợp 3 quá trình này sẽ cho phép
biểu diễn một khối các bytes của pixel bằng một số lượng nhỏ bit và tạo được kỹ thuật
giảm dữ liệu hiệu quả và kinh tế nhất.
1.2
Các tham số cơ bản của âm thanh
1.2.1 Khái niệm
Âm thanh là các dao động cơ học (biến đổi vị trí qua lại) của các phân tử, nguyên
tử hay các hạt làm nên vật chất và lan truyền trong vật chất như các sóng. Âm thanh,
2
Nén audio chuản MPEG
Nhóm 8
giống như nhiều sóng, được đặc trưng bởi tần số, bước sóng, chu kỳ, biên độ và vận tốc
lan truyền (tốc độ âm thanh).
Đối với thính giác của người, âm thanh thường là sự dao động, trong dải tần số từ
khoảng 20 Hz đến khoảng 20000 Hz, của các phân tử không khí, và lan truyền trong
không khí, va đập vào màng nhĩ, làm rung màng nhĩ và kích thích bộ não. Tuy nhiên âm
thanh có thể được định nghĩa rộng hơn, tuỳ vào ứng dụng, bao gồm các tần số cao hơn
hay thấp hơn tần số mà tai người có thể nghe thấy, không chỉ lan truyền trong không khí
mà còn truyền trong bất cứ vật liệu nào. Trong định nghĩa rộng này, âm thanh là sóng
cơ học và theo lưỡng tính sóng hạt của vật chất, sóng này cũng có thể coi là dòng lan
truyền của các hạt phonon, các hạt lượng tử của âm thanh.
Cả tiếng ồn và âm nhạc đều là các âm thanh. Trong việc truyền tín hiệu bằng âm
thanh, tiếng ồn là các dao động ngẫu nhiên không mang tín hiệu.
Sự hình thành sóng trong môi trường đàn hồi.
Một đặc tính của âm thanh là đây là một sóng dọc, tức là nó là sự lan truyền dao
động của đại lượng vô hướng là áp suất, đồng thời là sự lan truyền dao động của đại
lượng có hướng là vận tốc và vị trí của các phân tử hay nguyên tử trong môi trường,
trong đó phương dao động luôn trùng với phương chuyển động của sóng.
Cũng như các sóng cơ học khác, sóng âm mang năng lượng tỉ lệ với bình phương
biên độ sóng. Năng lượng đó truyền đi từ nguồn âm đến tai ta. Cường độ âm thanh là
lượng năng lượng được sóng âm truyền đi trong một đơn vị thời gian qua một đơn vị
diện tích đặt vuông góc với phương truyền âm. Ngoài ra trường độ cũng góp phần ảnh
hưởng đến chất lượng âm thanh.
1.2.2 Sóng âm
a, Dao động âm và sự truyền dao động
Sóng âm là một loại sóng cơ có biên độ dao động nhỏ mà thính giác nhận biết
được. Thí dụ dao động phát ra từ dây đàn, mặt trống.. đang rung động. Sóng âm là một
loại sóng cơ nên mọi khái niệm và hiện tượng về dao động và sóng cơ trên đây đều áp
dụng cho sóng âm. Trong không khí cũng như trong mọi chất khí khác, những dao động
truyền đi dưới dạng sóng dọc, khi đến tai người những dao động có tần số từ 16 đến
20000 Hz sẽ gây cảm giác đặc biệt về âm. Các dao động đàn hồi có tần số f>20.000 Hz
là sóng siêu âm. Các dao động đàn hồi có tần số f<16 Hz là sóng hạ âm. Mỗi âm có một
tần số riêng, đơn vị của tần số là héc (Hz) với định nghĩa:”Héc là tần số của một qúa
trình dao động âm trong đó mỗi giây thực hiện được một dao động”.
1 Héc (Hz) = 1 dao động / 1 giây
Việc phân chia sóng hạ âm, sóng siêu âm và sóng âm (âm thanh) liên quan tới khả
năng sinh lý của thính giác
b, Đơn vị vật lý của âm thanh
Âm thanh hay tiếng động mà con người nhận biết được do tác động của sóng âm
lên màng nhĩ tai. Các dao động âm phát ra từ nguồn lan truyền trong môi trường đàn hồi
như không khí.. dưới dạng sóng đàn hồi gọi là sóng âm. Sóng âm đến kích động màng
nhĩ tai gây cảm giác về âm, do đó cần phân biệt hai loại đại lượng về âm:
- Đại lượng âm khách quan: những đại lượng thuần túy vật lý, không phụ thuộc
vào tai người.
- Đại lượng âm chủ quan: những đại lượng tâm lý vật lý phụ thuộc vào tai người.
3
Nén audio chuản MPEG
Nhóm 8
Đơn vị âm khách quan:
*Áp suất âm:
Khi sóng âm tới một mặt nào đó, do các phân tử môi trường dao động tác dụng lên
mặt đó một lực gây ra áp suất. Áp suất ở đây là áp suất dư do sóng âm gây ra ngoài áp
suất khí quyển.
Trong phạm vi nghe được, áp suất âm trong khoảng từ 2.104 đến 2.102, chênh lệch
106 lần, đó là một phạm vi rất rộng.
*Cường độ âm (I):
Cường độ âm ở một điểm nào đó trên phương đã cho trong trường âm là số năng
lượng âm đi qua đơn vị diện tích của mặt S vuông góc với phương truyền âm, tại điểm
đó trong đơn vị thời gian.
Một vài cường độ âm đáng chú ý:
Người nói thường I = 2.10-3 W/m2
Còi ô-tô
I = 5 W/m2
Còi báo động
I = 3.000 W/m2
Trong tính toán người ta quy ước lấy âm đơn tần số f = 1000 Hz làm chuẩn để so
sánh (gọi là âm chuẩn).
Đối với âm chuẩn, trong phạm vi nghe được
Áp suất âm nhỏ nhất
Pmin = 2.104
Cường độ âm nhỏ nhất
Imin = 10-16 W/cm2.
Áp suất âm và cường độ âm lớn nhất mà tai người có thể chịu được là:
Pmax = 2.102
Imax = 10-4 W/cm2.
Công suất âm nhỏ nhất có thể nghe thấy được Wmin = 10-12 Watt.
Đơn vị âm chủ quan:
Tai người trung bình có thể nhận được những sóng âm có tần số từ 16 đến 20000
Hz, hiệu qủa này có liên quan tới khả năng sinh lý của tai người. Như vậy, âm thanh là
một hiện tượng tâm lý vật lý, không phải bất cứ sóng âm nào tới tai cũng gây ra cảm
giác âm thanh như nhau. Âm có tần số khác nhau gây ra cảm giác khác nhau. Cường độ
âm nhỏ nhất của một sóng âm xác định mà tai người nghe thấy được gọi là “Ngưỡng
nghe”. Âm có tần số khác nhau giá trị ngưỡng nghe cũng khác nhau. Tai người thính
nhất với âm có tần số trong khoảng từ 1000 đến 3000 Hz, trong phạm vi này cường độ
âm ngưỡng nghe nhỏ nhất. Những tần số khác, tai kém thính hơn, ngưỡng nghe có giá
trị lớn hơn.
Đối với âm chuẩn, cường độ và áp suất ở ngưỡng nghe bằng:
Po = 2.10-5 N/ m2.
Io = 10-12 W/m2.
Do cảm giác âm thanh phụ thuộc vào đặc tính sinh lý của tai người, cho nên phải
có một số đại lượng đặc trưng cho cảm giác âm thanh phụ thuộc vào tai người, những
đại lượng như vậy gọi là đại lượng âm chủ quan.
*Bel và decibel (db):
4
Nén audio chuản MPEG
Nhóm 8
Theo định lý sinh lý của Vebe-Fécne, cảm giác nghe to đối với một âm không tỉ lệ
thuận với cường độ âm của âm đó. Khi cường độ âm tăng từ Io tới I thì cảm giác nghe
to tăng tỉ lệ với lg(I/Io). Do đó người ta dùng thang lô-ga-rít cơ số 10 để đo mức cảm
giác so với mức ngưỡng.
Mức ngưỡng gọi là mức zero qui ước:
lg(I/Io) = lg(10-12/ 10-12) = 0 bel.
Đơn vị là Bel hay db. 10db = 1 bel.
*Mức cường độ âm (LI):
Nếu gọi I là cường độ âm của âm đang xét và Io là cường độ âm của mức zero qui
ước của âm chuẩn thì mức cường độ âm LI bằng :
LI = 10lg(I/Io) db
I tính bằng W/m2.
*Mức áp suất âm (Lp):
Mức áp suất âm suy dẫn từ mức cường độ âm Lp = 20lg(P/Po) db.
Trong đó:
P :áp suất âm có ích của âm đang xét (N/m2)
Po:áp suất âm của âm chuẩn ở ngưỡng nghe.
Thực tế áp suất âm là đại lượng cơ bản hơn cường độ âm, nên thường dùng mức
áp suất âm sau đó suy ra mức cường độ âm. Đơn vị chung là bel hay db. Đơn vị này
cũng dùng để đo mức công suất, mức năng lượng âm.
Vài mức áp suất âm đáng chú ý :
Nói chuyện thường :
30db.
Nói chuyện to
:
70db.
*Quãng độ cao (quãng tần số):
Quãng tần số của hai âm là khoảng cách tần số của hai âm đó. Nếu một âm tần số
là f1, một âm khác tần số là f2 (f2 > f1) thì f2 / f1 = 2x.
Khi x=1 tức f2 / f1 = 2 gọi là 1 quãng tần số (hay 1 ốc-ta).
Khi x=1/2 tức f2 / f1 = 1.41 gọi là nửa ốc-ta.
Khi x=1/3 tức f2 / f1 = 1.26 gọi là 1/3 ốc-ta.
Mức áp suất âm của 1 ốc-ta bằng mức áp suất âm của 1/2 ốc-ta cộng thêm 3db.
Mức áp suất âm của 1 ốc-ta bằng mức áp suất âm của 1/3 ốc-ta cộng thêm 5db.
Vì quãng tần số của một âm qui định độ cao của âm đó nên còn gọi là quãng độ
cao. Theo tập quán âm nhạc thì quãng độ cao gọi là quãng 8 (bát độ).
Chẳng hạn âm LA, tần số f=440 Hz tăng 1 bát độ là tăng gấp đôi tần số, tức là 880
Hz. Trong thực tế thường gặp những âm phức tạp bao gồm nhiều tần số. Tập hợp tất cả
những tần số cấu tạo trong một âm thanh gọi là “tần phổ” của âm đó, tần phổ có thể gián
đoạn hay liên tục. Một âm có tần phổ liên tục được đặc trưng bằng “Mức tần phổ B” với
định nghĩa:
Mức tần phổ là mức áp suất âm trong chiều rộng của dải tần số bằng 1.
Một âm có mức tần phổ B không đổi với mọi tần số gọi là tiếng ồn trắng.
5
Nén audio chuản MPEG
Nhóm 8
Một âm có tần phổ gián đoạn được đặc trưng bằng “mức dải tần số” với định nghĩa:
mức dải tần số là mức áp suất âm trong chiều rộng của dải tần số lớn hơn 1 Hz.
c, Đặc tính sinh lý về sự cảm thụ âm thanh.
*Mức to, độ to, mức âm cảm giác:
Mức áp suất âm, mức cường độ âm trên đây vừa mang tính chất chủ quan vừa
mang tính chất khách quan vì những đại lượng này xác định từ những đại lượng thuần
túy vật lý. Vấn đề có ý nghĩa to lớn trong thực tế là cần biết được sức mạnh của âm
thanh đo bằng tai người.
Mức to, độ to của một âm là sức mạnh cảm giác do âm thanh gây nên trong tai
người, nó không những phụ thuộc vào áp suất âm mà còn phụ thuộc vào tần số của âm
đó. Thí dụ 2 âm có tần số 100 Hz và 1000 Hz áp suất âm đều bằng 0,02 nhưng nghe to
nhỏ khác nhau, âm 1000 Hz nghe to hơn âm 100 Hz. Muốn nghe to bằng âm 1000 Hz
thì âm 100 Hz phải có áp suất bằng 0,25. Như vậy tai người không nhạy đối với âm 100
Hz bằng âm 1000 Hz. Tần số càng thấp tai người càng kém nhạy.
Mức to:
Để biểu thị mức to trên cảm giác chủ quan, ta dùng đại lượng “mức to”, đơn vị là
“Fôn” với định nghĩa như sau :
Fôn là mức to của âm chuẩn, về giá trị bằng mức áp suất âm của âm chuẩn tức là :
L = 20lg P/Po (Fôn).
Vậy mức to của một âm bất kỳ đo bằng Fôn, về giá trị bằng mức áp suất âm của
âm chuẩn đo bằng db có cùng mức to với âm đó. Thí dụ: âm có tần số 500 Hz mức áp
suất âm bằng 25 db và âm có tần số 50 Hz mức áp suất âm bằng 64 db sẽ có cùng mức
to bằng 20 Fôn, bằng mức to của âm 1000 Hz mức áp suất bằng 20 db.
Muốn biết mức to của một âm bất kỳ phải so sánh với âm chuẩn. Đối với âm chuẩn,
mức to ở ngưỡng nghe là 0 Fôn, ngưỡng chói tai là 120 Fôn. Cùng một giá trị áp suất,
âm tần số càng cao, mức to càng lớn.
Độ to:
Khi so sánh âm này to hơn âm kia bao nhiêu lần, dùng khái niệm “độ to” đơn vị là
“Sôn” với định nghĩa như sau: “Số lượng Sôn biểu thị số lần mạnh hơn của một âm nào
đó so với âm chuẩn mà tai người có thể phân biệt được”
Độ to là một thuộc tính của thính giác, cho phép phán đoán tính chất mạnh yếu của
âm thanh. Căn cứ vào độ to mà sắp xếp âm từ nhỏ tới to.
Mức to tăng 10 Fôn thì độ to tăng gấp đôi và ngược lại.
Âm điệu và âm sắc:
Âm điệu chỉ âm cao hay thấp, trầm hay bổng. Âm điệu chủ yếu phụ thuộc vào tần
số của âm, tần số càng cao, âm nghe càng cao, tần số càng thấp âm nghe càng trầm.
Âm sắc chỉ sắc thái của âm du dương hay thô kệch, thanh hay rè, trong hay đục.
Âm sắc phụ thuộc vào cấu tạo của sóng âm điều hòa, biểu thị bằng số lượng các loại tần
số, cường độ và sự phân bố của chúng quanh âm cơ bản. Âm sắc có quan hệ mật thiết
với cường độ, âm điệu và thời gian âm vang, sự trưởng thành và tắt dần của trường âm.
Khi hai ca sĩ cùng hát một câu ở cùng một độ cao, ta vẫn phân biệt được giọng hát
của từng người. Khi đàn ghi-ta, sáo, kèn.. cùng tấu lên một đoạn nhạc ở cùng một độ
6
Nén audio chuản MPEG
Nhóm 8
cao, ta vẫn phân biệt được tiếng của từng nhạc cụ. Mỗi người, mỗi nhạc cụ phát ra những
âm có sắc thái khác nhau mà tai ta phân biệt được. Đặc tính đó của âm chính là âm sắc.
Âm sắc là một đặc tính sinh lý của âm, được hình thành trên cơ sở các đặc tính vật
lý của âm là tần số và biên độ. Thực nghiệm chứng tỏ rằng khi một nhạc cụ phát ra một
âm có tần số f1 thì đồng thời cũng phát ra các âm có tần số f2=2f1, f3=3f1...
Âm có tần số f1 gọi là âm cơ bản hay họa âm thứ nhất, các âm có tần số f2 , f3 ..
gọi là các họa âm thứ hai, thứ ba... Âm cơ bản bao giờ cũng mạnh nhất, các họa âm có
tác dụng quyết định âm sắc của âm cơ bản, giúp ta phân biệt các nguồn âm khác nhau.
Chẳng hạn tiếng đàn Pi-a-nô và tiếng sáo tuy cùng một âm cơ bản nhưng lại rất dễ phân
biệt, nguyên nhân là do số lượng, cấu trúc những họa âm quanh âm cơ bản của chúng
khác nhau. Họa âm càng nhiều âm nghe càng du dương phong phú.
Thính giác định vị (hiệu ứng Stereo):
Khi nghe âm tuy mắt không nhìn thấy nguồn âm nhưng có thể xác định chính xác
vị trí của nguồn âm. Đặc điểm này là kết qủa của hai tác dụng:
- Do cường độ, độ to, âm sắc của âm đến hai tai không giống nhau.
- Do âm đến hai tai lệch pha nhau, vì thời gian đến hai tai không giống nhau.
Cường độ, độ to của âm đến hai tai chênh lệch nhau là do nhiễu xạ gây ra. Âm có
tần số f < 1000 Hz sự chênh lệch cường độ do nhiễu xạ gây ra rất bé nhưng ở những tần
số cao, sự chênh lệch này có thể đạt tới 20 - 30 db.
Do khả năng định vị của tai như vậy cho nên khi nghe âm có thể tập trung chú ý
vào nguồn âm cần nghe, bỏ qua một cách tự nhiên những âm không cần nghe. Nhờ hiệu
qủa này mà tiếng ồn bị phủ lấp hoặc giảm nhỏ một cách tự nhiên. Nếu chỉ nghe âm một
tai thì hiệu qủa này mất.
Nghe âm và chênh lệch thời gian:
Tương tự như tác dụng lưu ảnh của mắt, tai người cũng có tác dụng lưu âm. Thí
nghiệm với nhiều thính giác bình thường cho thấy rằng, nếu hai âm như nhau đến tai
người cách nhau < 50 ms thì tai người không phân biệt được, nghe như một âm duy
nhất.
1.3
Các chuẩn nén âm thanh
1.3.1 Chuẩn MPEG
MPEG, viết tắt của cụm từ “Moving Picture Experts Group”, là một nhóm chuyên
nghiên cứu phát triển các tiêu chuẩn về hình ảnh số và nén âm thanh theo chuẩn
ISO/IEC. Ngày nay, nhóm làm việc MPEG đã phát triển và phát hành các tiêu chuẩn
MPEG-1, MPEG-2 và MPEG-4. Chuẩn MPEG-3 được kết hợp vào MPEG-2 và không
còn tách riêng nữa. Nhóm MPEG hiện nay đã phát triển đến chuẩn MPEG-7. MPEG chỉ
là một tên riêng, tên chính thức của nó là : ISO/IEC JTC1 SC29 WG11.
ISO
: International Organization for Standardization
IEC
: International Electro-technical Commission
JTC1 : Joint Technical Committee 1
SC29 : Sub-committee 29
WG11: Work Group 11 (moving picture with audio).
So sánh các chuẩn MPEG
7
Nén audio chuản MPEG
Nhóm 8
MPEG-1 định nghĩa một tiêu chuẩn cho việc lưu trữ và phục hồi các hình ảnh động
và âm thanh trên các thiết bị lưu trữ. Tiêu chuẩn này định nghĩa rằng hình ảnh được phát
lại ở tốc độ 30 frames một giây và âm thanh được phát lại ở chất lượng như CD-audio,
độ phân giải hình ảnh là 352 x 240. Chuẩn MPEG-1 được dùng điển hình trong các phần
mềm huấn luyện bằng máy tính, các game hành động trong máy tính, video chất lượng
VHS, Karaoke..
MPEG-2 định nghĩa cho một tiêu chuẩn kỹ thuật truyền hình số. Chuẩn MPEG-2
khắc phục một vài nhược điểm của chuẩn MPEG-1. Ví dụ, MPEG-2 có thể tạo hình ảnh
lớn gấp 4 lần MPEG-1 với độ nét cao hơn và rõ hơn (720 x 480 và 1280 x 720). Các đặc
tính của MPEG-2 bao gồm hình ảnh chất lượng cao và âm thanh nổi…
MPEG-3 định nghĩa một tiêu chuẩn cho High Difinition Television (HDTV), là
thế hệ tiếp theo của công nghệ truyền hình theo định dạng số đầy đủ. Tiêu chuẩn này đã
không được phát triển hoàn thiện và cuối cùng được kết hợp vào với chuẩn MPEG-2.
MPEG-3 đi đến mục tiêu là các ứng dụng HDTV với kích thước mẫu lên đến
1920x1080x30 Hz và được mã hoá ở tốc độ bit 20 đến 40 Mbits/s. Cuối cùng người ta
đã nhận ra rằng với một vài điều chỉnh thích hợp, MPEG-1 và MPEG-2 làm việc rất tốt
đối với HDTV.
MPEG-4 định nghĩa một tiêu chuẩn cho các ứng dụng Multi-media. Đặc biệt nó
định nghĩa tiêu chuẩn truyền cho dòng phức tạp các hình ảnh, âm thanh và dữ liệu đồ
hoạ và việc tái hợp chúng trên thiết bị thu. MPEG-4 được phát triển theo 2 giai đoạn, 1
và 2. Chuẩn MPEG-4 định nghĩa các đối tượng hình ảnh mà trong đó các phần của một
cảnh có thể được thao tác trong khi những phần khác vẫn không đổi.
MPEG-5 và MPEG-6 vẫn chưa được công bố.
MPEG-7 định nghĩa một tiêu chuẩn về việc biểu diễn nội dung cho các nghiên cứu
thông tin hình ảnh và âm thanh. Tên chính thức là “Multimedia Content Description
Interface”. Mục tiêu của MPEG-7 là chuẩn hoá việc biểu diễn các mô tả về nội dung
nghe nhìn. Tuy nhiên chuẩn không định nghĩa các công cụ để nhận ra nội dung nghe
nhìn thật sự.
Về cơ bản, âm thanh MPEG sẽ làm giảm kích thước lưu trữ 1 tâp tin âm thanh đi
rất nhiều. Một đĩa Audio-CD lưu trữ được khoảng 650 Mbyte dữ liệu âm thanh thô với
cách mã hóa 16 bit (bitdepth) và tần số lấy mẫu (sample rate) 44.1 kHz. Nếu đem phát
ra thì cũng chỉ được 60 đến 72 phút.
Phương pháp cổ điển để giảm kích thước lưu trữ là giảm lượng thông tin. Nếu đổi
cách lưu trữ âm thanh từ 16 bit sang 8 bit chúng ta có thể giảm kích thước lưu trữ đi 1
nửa, tuy nhiên như thế chất lượng âm thanh cũng sẽ giảm đi 1 nửa.
Các khái niệm trong âm thanh MPEG
Hiệu ứng che (masking): nói đơn giản là âm lớn át âm bé, âm mạnh át âm yếu.
Ngưỡng nghe: là mức mà dưới nó 1 âm thanh không thể nghe được. Nó thay đổi
theo tần số âm thanh, và dĩ nhiên giữa mỗi người khác nhau. Hầu hết mọi người đều
nhạy cảm ở mức 2 đến 5 kHz. Một người có nghe được âm thanh hay không tùy thuộc
vào tần số của âm và độ to của âm đó ở trên hay dưới ngưỡng nghe tại tần số đó. Tai
nhạy cảm ở mức 2 đến 5 kHz . Ngưỡng nghe cũng có tính thích nghi, thay đổi cố định
bởi âm thanh mà ta nghe được. Ví dụ, một cuộc nói chuyện bình thường trong một phòng
thì có thể nghe được rõ ràng ở điều kiện bình thường. Tuy nhiên, cũng cuộc trò chuyện
đó nằm trong vùng lân cận của những tiếng ồn lớn, như là tiếng ồn do một chiếc phản
8
Nén audio chuản MPEG
Nhóm 8
lực bay ngang bên trên, là hoàn toàn không thể nghe được do lúc này ngưỡng nghe đã
bị sai lệch. Khi chiếc phản lục đã đi rồi thì ngưỡng nghe trở lại bình thường. Am thanh
mà ta không thể nghe được do sự thích nghi động của ngưỡng nghe gọi là bị “che”
(masked).
Khi đưa ra phương pháp mã hóa âm thanh, nền tảng vẫn là yếu tố “hệ thống nghe”
của con người. Thật không may đó không phải 1 thiết bị hoàn hảo để nhận biết âm thanh
nhưng là thiết bị duy nhất chúng ta có được. Nhưng chúng ta có thể chuyển những khuyết
điểm của nó thành ưu điểm: đó là đặc tính phi tuyến của ngưỡng nghe và khả năng thích
hợp của nó. MPEG hoạt động dựa trên hệ thống nghe của con người, đó là cảm giác về
âm mang đặc tính sinh lý và tâm lý. Âm thanh CD ghi lại tất cả tần số, kể cả những tần
số bị ‘che’. Mặt khác âm thanh MPEG chỉ ghi lại những tần số mà tai người có thể nghe.
Như vậy, MPEG sẽ bỏ qua những thông tin không quan trọng. Dựa trên nghiên cứu về
nhận thức âm thanh của con người, bộ mã hóa sẽ quyết định những thông tin nào là căn
bản và những thông tin nào có thể bỏ qua. Hiệu qủa này là bao quát nhưng đặc biệt quan
trọng trong âm nhạc. Nếu trong một dàn nhạc có một nhạc cụ chơi cực mạnh, làm át
tiếng của các nhạc cụ khác ta không thể nghe được. Nhưng máy thâu âm vẫn ghi lại đầy
đủ tất cả tần số của tất cả nhạc cụ, nghĩa là thiết bị thu âm hoàn toàn không có khả năng
thích nghi động như con người. Nhưng khi phát lại, ta vẫn không nghe được âm thanh
của những nhạc cụ bị át. Vì vậy việc lưu trữ/ghi lại những tần số này là thừa, làm chiếm
dung lượng khá nhiều. Cách ghi âm tuyến tính trên đĩa CD là hoàn toàn không hiệu qủa
về khía cạnh này. Do đó thay vì phải ghi lại thông tin của những âm không nghe được,
ta sẽ dành chỗ cho các âm có thể nghe được. Theo cách này, dung lượng của thiết bị ghi
âm cần thiết có thể xem như giảm đi mà không làm giảm chất lượng âm thanh.
Trước khi chúng ta nghe được điều gì, thông tin sẽ được phân tích bởi bộ não của
chúng ta. Não bộ sẽ dịch âm thanh và lọc bỏ những thông tin không cần thiết. Kỹ thuật
âm thanh MPEG làm việc này thay thế cho não bộ. Như vậy, những thông tin lẽ ra phải
được lọc bởi não bộ bây giờ không còn cần phải lưu trữ chiếm giữ không gian đĩa nữa.
Nén âm thanh MPEG
Bộ mã hóa âm thanh theo “perceptual subband” phân tích liên tục các tín hiệu vào
và xác định ra đường cong che (masking curve), đó là mức ngưỡng mà những âm thanh
ở dưới nó không thể nghe được bởi hệ thống nghe của con người.
Tín hiệu vào được chia thành 1 số dải tần số, gọi là “subband”. Mỗi tín hiệu
“subband” được lượng tử hóa theo cách mà sự lượng tử hóa tiếng ồn được bắt đầu bởi
việc mã hóa sẽ không vượt qúa đường cong che của subband đó. Sự lượng tử hóa phổ
tiếng ồn vì thế thích nghi động với phổ của tín hiệu.Thông tin trên bộ số hóa được dùng
trong mỗi subband được truyền dọc theo các mẫu subband được mã hóa. Bộ giải mã sẽ
giải mã dòng bit (bitstream) mà không cần phải biết cách mà bộ mã hóa xác định những
thông tin này. Điều này cho phép bộ mã hóa hoạt động với những mức độ khác nhau về
chất lượng và độ phức tạp, và cũng cho phép sự phát triển trong tương lai của bộ mã
hóa.
MPEG có thể nén 1 dòng bit 32 kbit/s đến 384 kbit/s. Một dòng bit âm thanh PCM
thô thì khoảng 705 kbit/s, do đó tỉ số nén tối đa có thể là 22. Tỉ số nén bình thường là
1:6 hay 1:7. 96 kbit/s là xem như trong suốt cho hầu hết các mục đích thực tế. Có nghĩa
rằng ta không cần phải lưu tâm đến bất kỳ sự khác biệt nào giữa tín hiệu gốc và tín hiệu
nén đối với nhạc pop hay nhạc rock’n roll. Đối với một số ứng dụng khác như là hòa tấu
piano, tốc độ bit có thể lên tới 128 kbit/s.
9
Nén audio chuản MPEG
Nhóm 8
Để đạt được tỉ số nén này, đối với âm thanh, về cơ bản ta có hai chọn lựa: hoặc
giảm số lần lấy mẫu, hoặc giảm số bit để lượng tử hoá. Con người có thể nghe âm thanh
với tần số từ 20 Hz đến 20 kHz. Theo thuyết của Nyquist, ta phải lấy mẫu âm thanh ở
tần số tối thiểu là hai lần tần số cao nhất mà ta muốn phát lại. Tần số lấy mẫu 44,1 kHz
là thích hợp. Vấn đề còn lại là phải chọn số bit cho một mẫu mã hóa là bao nhiêu. Thông
thường là 16 bit.
Lý do để chọn con số 16 bit bắt nguồn từ tỉ số tín hiệu và nhiễu (S/N). Nhiễu nói
ở đây sinh ra do qúa trình số hóa. Cứ mỗi bit thêm vào, ta có tỉ số S/N tốt hơn 6dB (đối
với tai người, 6 dB tương ứng với mức to gấp đôi). Âm thanh CD đạt tới khoảng 90 dB
S/N. Mức này phù hợp với phạm vi động của tai người còn tốt. Nghĩa là ta không thể
nghe được bất kỳ nhiễu nào đến từ bản thân hệ thống. Điều gì xảy ra nếu ta lấy mẫu với
8 bit? Ta sẽ nghe thấy rất nhiều tiếng sôi trong bản ghi. Dễ dàng nghe thấy nhiễu trong
khoảng nghỉ của bản nhạc hoặc giữa các từ nếu ta ghi âm một giọng nói.
- Hiệu qủa che:
Giả sử có một âm mạnh với tần số 1000Hz, và một âm kèm theo có tần số 1100Hz
nhưng với cường độ âm nhỏ hơn 18dB. Ta sẽ không thể nghe thấy âm này vì nó đã bị
che hoàn toàn bởi âm chủ 1000Hz. Nói một cách khác, một âm thanh yếu gần một âm
thanh mạnh sẽ bị che. Nếu có một âm thanh khác tần số 2000Hz cũng có mức to thấp
hơn âm 1000Hz là 18dB thì ta sẽ nghe được âm này. Để không nghe được âm này ta
phải giảm mức to của âm này xuống còn thấp hơn 45dB so với âm chủ 1000Hz. Hiệu
qủa che có ý nghĩa rằng ta có thể gia tăng mức ồn nền xung quanh một âm mạnh mà vẫn
không nghe được tiếng ồn vì chúng sẽ bị che hoàn toàn. Tăng mức ồn nền còn có nghĩa
là dùng ít bit để số hóa. Và điều này cũng giống như là ta đã nén âm thanh vậy.
Bây giờ hãy xem bộ mã hoá âm thanh MPEG hoạt động như thế nào. Bộ mã hóa
chia phổ tần số (20Hz đến 20kHz) thành 32 dải nhỏ (sub-band). Mỗi sub-band giữ 1
phần nhỏ của phổ. Trong vùng trên của sub-band 8 ta phát một âm có tần số 1000Hz với
mức to 60dB. Bộ mã hóa sẽ tính toán hiệu qủa che của âm này và nhận ra rằng có một
ngưỡng che cho toàn bộ sub-band thứ 8 (tất cả những âm có cùng tần số). Ngưỡng che
này thấp hơn âm phát ra 35 dB. Tỉ số S/N có thể chấp nhận được là 60 - 35 = 25 dB,
tương đương với 4 bit. Ngoài ra nó còn ảnh hưởng trên các sub-band 9-13 và 5-7 với
hiệu qủa che giảm dần từ sub-band 8. Hơn nữa, bộ mã hóa cũng xem xét mức độ nhạy
cảm của tai đối với các tần số khác nhau. Tai người ít nhạy cảm với các tần số cao và
thấp. Nó nhạy cảm nhất đối với tần số 2-4 kHz, cùng dải tần số với tiếng nói con người.
Các sub-band nên phù hợp với tai người, nghĩa là mỗi sub-band cần có các tần số
có cùng các tính chất âm học tâm lý. Trong MPEG layerII, mỗi sub-band có độ rộng
625Hz, do đó cần phải có những bộ lọc băng thông phức tạp. Để các bộ lọc đỡ phức tạp,
người ta thêm FFT (Fast Fourie Transform) vào song song với bộ lọc và sử dụng các
thành phần phổ từ FFT như là các thông tin thêm vào bộ mã hóa. Bằng cách này ta sẽ
lấy mật độ bit cao hơn đối với các tần số thấp mà tai người nhạy cảm hơn.
Còn nhiều vấn đề cần phải bàn tới. Chúng ta chỉ mới giải thích sự che đồng bộ,
hiệu qủa che còn xảy ra trước và sau một âm mạnh.
- Các lớp của âm thanh MPEG
Lớp I (Layer I): Đây là lớp đơn giản nhất phù hợp cho ứng dụng của người dùng.
Mô hình âm học tâm lý của lớp này chỉ sử dụng các tần số che. Điều này có nghĩa rằng
nó sẽ bỏ qua các tần số bị khuất sau các tần số khác. Phạm vi tốc độ bit từ 32 kbit/s
10
Nén audio chuản MPEG
Nhóm 8
(mono) đến 448 kbit/s (stereo). Tùy thuộc vào mức độ phức tạp của bộ mã hóa, một âm
thanh chất lượng cao (gần với âm thanh CD) yêu cầu tốc độ bit khoảng 256 - 384 kb/s
trên một chương trình stereo. Không nên mã hóa với mức nén cao hơn 384 kb/s. Độ
phức tạp của bộ giải mã thấp, độ phức tạp của bộ mã hóa cao hơn 1.5 - 3 lần. Lớp I được
dùng nhiều trong DDC và Solid State Audio.
Lớp II (Layer II): Lớp II đề nghị mức độ nén cao hơn lớp I và mức độ lọc sâu hơn.
Nó có những ứng dụng số cho cả âm thanh chuyên nghiệp và tài tử, như qua đài phát
thanh, TiVi...Phạm vi tốc độ bit từ 32 - 192 kb/s cho âm thanh mono, và từ 64 - 384 kb/s
cho âm thanh stereo. Tùy thuộc vào mức độ phức tạp của bộ mã hóa, một âm thanh chất
lượng cao (gần với âm thanh CD) yêu cầu tốc độ bit khoảng 256 - 384 kb/s trên một
chương trình stereo. Mức độ phức tạp của bộ giải mã 25% cao hơn so với lớp I, và bộ
mã hóa có mức phức tạp cao hơn 2 - 4 lần.
Lớp III (Layer III): Lớp III còn đưa ra mức độ nén và lọc cao hơn cả lớp II và sử
dụng một bộ mã hóa Huffman.
Hình 1.1: Các lớp của âm thanh MPEG
Các thông số dùng trong MPEG
Chuẩn MPEG cho phép ta chọn lựa các thông số cho việc nén âm thanh tốt nhất
phù hợp với ứng dụng mà ta sử dụng. Lược đồ mã hóa cho các loại là tổng quát. Các
thông số có thể chọn lựa trong bộ mã hóa MPEG bao gồm: Mode, Sampling frequency,
bitrate, và Layer.
*Mode
Chuẩn MPEG có 4 chế độ:
- Mono
- Dual channel
- Stereo
- Intensity Stereo (còn gọi là Joint Stereo).
Chế độ Mono rõ ràng được dùng cho âm thanh 1 kênh.
Để chọn chế độ cho các ứng dụng 2 kênh, đầu tiên ta phải xác định đâu là tín hiệu
trái và đâu là tín hiệu phải để chia chúng ra thành 2 files khác nhau, nhằm sau này ta có
thể làm việc độc lập trên kênh trái hoặc phải. Lúc đó ta sẽ chọn chế độ Mono. Nếu 2
11
Nén audio chuản MPEG
Nhóm 8
kênh không cần hoạt động độc lập, ta chọn Stereo, Dual hay Intensity Stereo để tạo một
file duy nhất.
Chế độ Stereo hay kênh Dual là hoàn toàn đồng nhất khi chúng cùng sinh ra một
file duy nhất cho tín hiệu stereo. Tuy nhiên một bit chỉ thị sẽ nhận dạng xem một file là
ở chế độ nào và có thể được dùng cho những áp dụng nào...
Chế độ Intensity Stereo xem xét sự dư thừa giữa các kênh trái và phải nhằm tối ưu
mã. Chất lượng chủ quan của Intensity Stereo thay đổi theo hình ảnh stereo của tín hiệu
đã mã hóa. Tuy nhiên nó đặc biệt thích hợp cho tốc độ truyền bit thấp.
*Sampling Frequency (tốc độ lấy mẫu).
Một số tốc độ lấy mẫu:
32kHz, 44.1kHzvà 48kHz đối với MPEG1 (Tiêu chuẩn ISO/IEC 11172-3).
16kHz, 22.05kHzvà24kHz đối với MPEG2 (Tiêu chuẩn ISO/IEC13818-3).
Khi chọn lựa tốc độ 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(độ dài frame nhỏ hơn)
- Băng thông tín hiệu giới hạn ở mức 15 kHz khi lấy mẫu ở tốc độ 32 kHz và 8
kHz ở tốc độ 16 kHz
- Tần số lấy mẫu (kHz) và tốc độ của âm thanh mã hóa (kbps) có thể chọn độc lập
- Tần số lấy mẫu 44.1 kHz hay 22.05 kHz là không thiết thực cho việc chọn lọc vì
độ dài frame (byte) là thay đổi
- Những file được lấy mẫu ở những tần số khác nhau thì rất khó khăn khi hòa trộn
- Khi dùng đường nhập số AES/EBU, tần số lấy mẫu bị cố định bởi tín hiệu nhập.
Nếu không bắt buộc, Digigram yêu cầu lấy mẫu ở 48 kHz hoặc 44.1 kHz cho phát
thanh hay ứng dụng multimedia. Nếu ta phải sử dụng tốc độ bit thấp cho sự truyền có
hiệu qủa, tốc độ 24 kHz là thích hợp.
*Bit Rate.
Mỗi Layer và chế độ có nhiều cách chọn lựa tốc độ bit (bit rate). Việc chọn tốc độ
bit tùy thuộc trước tiên vào chất lượng âm yêu cầu. Băng thông tín hiệu là hẹp hơn nếu
tốc độ bit thấp, khiến cho nó không thực tế đối với một số ứng dụng. Tốc độ bit được
đo theo kilobits/sec(kbps).
Khi chọn lựa tốc độ bit cần xem xét các vấn đề:
- Tại 128 kbps trên mỗi kênh (hay 256 kbps stereo), chất lượng âm thanh CD sẽ
đạt được với Layer I hay Layer II.
- Tại 192 kbps trên mỗi kênh, chất lượng âm thanh là hoàn toàn trong suốt.
Tốc độ 128 kbps/kênh được dùng phổ biến nhất trong phát thanh. Nó tương ứng
với tỉ số nén 1:6 ở tốc độ lấy mẫu 48 kHz. 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 hơn do giới hạn của băng thông truyền hay
thiết bị lưu trữ.
Một số tốc độ bit cung cấp bởi chuẩn âm thanh MPEG:
MPEG 1: 32 kHz, 44.1 kHz và 48 kHz
- Layer I: 32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352, 384, 416, 448 kbps.
Những tốc độ này là có thể ở chế độ Mono hay stereo..
12
Nén audio chuản MPEG
Nhóm 8
- Layer II: 32, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 384 kbps. 32,
48, 56, 80 kbps chỉ có thể ở chế độ Mono; 64, 96, 112, 128, 160, 192 kbps có thể ở cả
hai chế độ Mono và Stereo; 224, 256, 320, 384 kbps chỉ có thể ở chế độ Stereo.
MPEG 2 : 16 kHz, 22.05 kHz và 24 kHz
- Layer I: 32, 48, 56, 64, 80, 96, 112, 128, 144, 160, 176, 192, 224, 256 kbps.
Những tốc độ này là có thể ở chế độ Mono hay stereo..
- Layer II: 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160 kbps. Những
tốc độ này là có thể ở chế độ Mono hay stereo.
*Layers.
Chuẩn MPEG có ba layer.
Khi chọn lựa tốc độ bit cần xem xét các vấn đề:
- Ở cùng tốc độ bit, Layer II mang lại chất lượng âm thanh tốt hơn Layer I. Kết
luận này là chủ quan, vì sự chênh lệch là rất khó phân biệt ở tốc độ bit 128 kbps và lớn
hơn.
- Dùng Layer I thì việc chọn lọc chính xác hơn Layer II bởi vì độ phân giải của
Layer I gấp ba lần Layer II.
Chuẩn mã hóa âm thanh MPEG chỉ định việc ghi một số cố định các mẫu (384 cho
Layer I và 1152 cho Layer II) để tạo ra một chuỗi các bytes gọi là “frame”. “Frame” là
thực thể nhỏ nhất được điều khiển bởi một ứng dụng. Việc chọn tốc độ bit (kbps) thiết
lập nên kích thước của frame đó theo byte.
Ví dụ:
Ở 48 kHz, 128 kbps, chế độ Mono, Layer II:
- 48,000 mẫu, tương ứng 1000 ms hay 1s, 1152 mẫu tương ứng 24 ms.
- Ở tốc độ bit 128,000 bits/s, 3072 bits (384 bytes) cần cho 24 ms.
- Chiều dài frame vì thế là 384 byte.
- Để lưu 1 phút, cần 960,000 byte (hay khoảng 1 Megabyte) đĩa trống.
1.3.2 Chuẩn AAC (Advanced Audio Coding)
Tiêu chuẩn AAC (Advanced Audio Coding) – Mã hóa âm thanh tiên tiến là một
tiêu chuẩn mã hóa cho việc nén âm thanh kỹ thuật số có tổn hao (lossy). Nó được thiết
kế với mục tiêu tích hợp nhiều kiểu mã hóa âm thanh khác nhau như: Âm thanh tự nhiên
với âm thanh nhân tạo, truyền tải tốc độ bít thấp với tốc độ bít cao, lời thoại với âm nhạc,
ghi âm phức tạp với ghi âm đơn giản, nội dung đơn giản với nội dung thực tế ảo (virtualreality).
ACC được phát triển với sự hợp tác và đóng góp của nhiều công ty như AT&T
Bell, Fraunhofer IIS, Dolby, Sony và Nokia. Năm 1997, AAC mới được chính thức tiêu
chuẩn hóa trong Phần 7 của tiêu chuẩn MPEG-2 (MPEG-2 Part 7 hay tiêu chuẩn
ISO/IEC 13818-7:1997) bởi Nhóm chuyên gia mã hóa phim ảnh (Moving Picture
Coding Experts Group - MPEG, được thành lập năm 1988 với sự hợp tác của các tổ
chức ISO (International Organization for Standardization – Tổ chức tiêu chuẩn quốc tế)
và IEC (International Electrotechnical Commission - Ủy ban Kỹ thuật điện quốc tế)).
So sánh với các thuật toán nén âm thanh thời đó, MPEG-2 AAC có chất lượng âm thanh
nổi bật và tỉ lệ nén hiếm có, nhờ khả năng nén cả những tín hiệu có tốc độ bít thấp hơn
nên nó đã trở thành một trong những tiêu chuẩn mã hóa/giải mã hàng đầu cho các ứng
dụng phát quảng bá (broadcasting), các dịch vụ Internet và các ứng dụng di động.
13
Nén audio chuản MPEG
Nhóm 8
Năm 1999, MPEG-4 AAC được thông qua bởi Nhóm MPEG, tiêu chuẩn ISO/IEC
14496-3:1999, với một số cải tiến. Nó được xây dựng dựa trên tiêu chuẩn MPEG-2
AAC, giữ lại tối đa khả năng tương thích về cú pháp bitstream (chuỗi bit được mã hóa
hoặc giải mã một phần chứa đoạn mã hóa dữ liệu ngẫu nhiên) của tiêu chuẩn MPEG-2
AAC. Nói cách khác, bộ giải mã MPEG-4 ACC có khả năng giải mã các bitstream của
tiêu chuẩn MPEG-2 AAC. Mặt khác, MPEG-4 AAC đã cải thiện về khả năng mở rộng
(scalability), khả năng phục hồi lỗi (error resilience) và bổ sung thêm một số đặc tính
xử lý phổ (spectral).
Năm 2003, nhóm MPEG đã giới thiệu tiêu chuẩn HE-AAC (High Efficiency
AAC), một thuật toán mở rộng của AAC với mục tiêu hướng tới các ứng dụng có tốc
độ bít thấp nhưng đạt hiệu quả mã hóa cao. HE-AAC cung cấp một bộ công cụ mới có
tên gọi là Sao chép dải của phổ (Spectral Band Replication – SBR), công cụ này có thể
xây dựng lại tín hiệu đầu ra có dải tần số cao dựa trên dữ liệu có dải tần số thấp và một
số thông tin khác.
Năm 2004, HE-AAC phiên bản 2 đã được Nhóm MPEG giới thiệu. HE-AAC 2 sử
dụng công cụ Parametric Stereo (cơ bản dựa trên SBR của HE-AAC), công cụ này có
khả năng xây dựng lại các tín hiệu âm thanh stereo (sử dụng hai hoặc nhiều kênh độc
lập để tái tạo âm thanh từ nhiều hướng khác nhau) dựa trên các tín hiệu mono (tất cả tín
hiệu âm thanh được pha trộn với nhau và được định tuyến thông qua một kênh âm thanh
duy nhất) hỗn hợp và một vài các tham số khác.
Đặc điểm kỹ thuật
MPEG-2 AAC gồm 3 mô hình để người dùng cuối có thể lựa chọn theo yêu cầu
về mức độ phức tạp và chất lượng đầu ra. Cụ thể gồm:
Mô hình chính (Main): Cung cấp chất lượng âm thanh tốt nhất với tốc độ bít bất
kỳ. Tất cả các công cụ mã hóa đều có thể được sử dụng (ngoại trừ điều khiển khuếch
tán). Do đó, yêu cầu về bộ nhớ (memory) và mức độ tính toán của cấu hình này cao hơn
so với 2 mô hình sau.
Mức độ phức tạp thấp (Low Complexity – LC): Mô hình này không sử dụng công
cụ điều khiển khuếch tán và công cụ dự đoán. Thêm nữa, bộ lọc nhiễu của tín hiệu cũng
kém hơn so với mô hình AAC chính. Với mô hình này, bộ mã hóa/giải mã của AAC
tiêu thụ bộ nhớ ít hơn và không yêu cầu cao về sức mạnh xử lý. Tuy nhiên, chất lượng
âm thanh đầu ra cũng có thể chấp nhận được, vì thế AAC LC là mô hình được sử dụng
phổ biến nhất trong công nghiệp.
Tỉ lệ lấy mẫu mở rộng (Scalable Sampling Rate – SSR): AAC SSR có khả năng
cung cấp tín hiệu với tần số thay đổi được (scalable). Mô hình này sử dụng bộ điều khiển
khuếch đại, các khối xử lý khác hoạt động giống với mô hình AAC LC. Do đó, yêu cầu
về bộ nhớ và mức độ phức tạp trong tính toán của bộ mã hóa/giải mã AAC SSR thấp
hơn với mô hình AAC chính.
Ứng dụng
ACC là một tiêu chuẩn được áp dụng cho tất cả các ứng dụng yêu cầu sử dụng nén,
ghép, thao tác hay phát lại âm thanh có chất lượng cao, cụ thể nó là một trong những
định dạng sử dụng phổ biến nhất trong xã hội di động ngày nay, đặc biệt là dành cho các
ứng dụng như YouTube, iPhone, iPod, IPad, Nintendo DSi, Nintendo 3DS, iTunes,
DivX Plus Web Player và PlayStation 3… Nó cũng được hỗ trợ bởi nhiều nhà sản xuất
các hệ thống âm thanh trong ô tô. Trong Thông tư số 22/2013/TT-BTTTT ngày
23/12/2013 của Bộ trưởng Bộ Thông tin và Truyền thông Công bố Danh mục tiêu chuẩn
14
Nén audio chuản MPEG
Nhóm 8
kỹ thuật về ứng dụng công nghệ thông tin trong cơ quan nhà nước quy định Khuyến
nghị áp dụng tiêu chuẩn ACC và được xếp vào nhóm Tiêu chuẩn về truy cập thông tin.
1.4
Nén âm thanh theo chuẩn MPEG
1.4.1 Phương pháp
Phương pháp mã hóa nguồn được sử dụng để loại bỏ đi sự dư thừa trong tín hiệu
audio khi giá trị vi sai mẫu - mẫu xấp xỉ gần giá trị 0, còn che lấp dựa trên mô hình tâm
lý thính giác của con người có tác dụng loại bỏ các mẫu không có giá trị cảm nhận các
mẫu không nghe thấy.
Có hai phương pháp nén cơ bản, đó là:
- Mã hóa dự báo miền thời gian: sử dụng mã hóa vi sai mã hóa các giá trị chêch
lệch giữa các mẫu liên tiếp nhau để loại bỏ sự dư thừa thông tin nhằm thu được dòng bít
tốc độ thấp
- Mã hóa chuyển đổi miền tần số: công nghệ này sử dụng các khối mẫu PCM tuyến
tính biến đổi từ miền thời gian thành một số nhất định các băng tần trong miền tần số.
Hình 1.2: Bộ mã hóa tín hiệu Audio
Nén audio dựa vào 2 hiện tượng:
- Với tín hiệu audio điển hình, không phải mọi tần số đều xuất hiện đồng thời.
- Do hiện tượng che mặt nạ, thính giác của con người không thể nhận biết được
mọi chi tiết của tín hiệu audio.
Cơ cấu nén audio dựa trên cơ sở độ nhạy của tai khác nhau đối với các thành phần
tần số khác nhau dẫn đến quá trình lượng tử hóa tín hiệu audio với số bit khác nhau cho
mỗi băng tần con, vì vậy số bit trung bình giảm xuống.
Hình 1.3: Cơ cấu nén Audio
15
Nén audio chuản MPEG
Nhóm 8
Để giảm dữ liệu audio, ta sử dụng kỹ thuật mã hóa nguồn để loại bỏ độ dư thừa tín
hiệu audio và kỹ thuật che mặt nạ tâm sinh lý để loại bỏ dư thừa tâm sinh lý nghe.
Có 2 loại giảm dữ liệu
- Giảm dữ liệu không tổn thất: sử dụng mã hóa dự báo miền thời gian (mã hóa vi
sai và mã hóa entropy)
- Giảm dữ liệu có tổn thất: Kết hợp 2 hay nhiều kỹ thuật xử lý để sử dụng đặc điểm
của HAS nhằm tách các thành phần phổ theo các thành phần có biên độ cao hơn.
Quá trình mã hóa Audio:
- Luồng audio đầu vào chạy qua một băng lọc chia đầu vào thành nhiều băng con.
- Đồng thời luồng audio đầu vào đi qua mô hình tâm lý thính giác để xác định tỉ
số của năng lượng tín hiệu với mức che mặt nạ cho mỗi băng con
Khối phân phối bit sử dụng hệ số tín hiệu trên mặt nạ để quyết định việc chia tổng
số bit được dùng cho quá trình lượng tử hóa tín hiệu băng con để giảm khả năng nghe
thấy nhiễu lượng tử hóa.
- Bộ ghép kênh ghép các mẫu băng con đã được lượng tử hóa và định dạng các dữ
liệu này cùng với thông tin phụ thành dòng bit mã hóa.
- Các dữ liệu phụ là thông tin vị trí bit và hệ số thang độ cho quá trình giải mã
Hình 1.4: Mã hóa MPEG cho Audio
Trong đó:
- Dãy bộ lọc: Làm nhiệm vụ tách phổ tín hiệu thành các băng tần con có độ rộng
bằng nhau.
Hình 1.5: Dãy bộ lọc
16
Nén audio chuản MPEG
Nhóm 8
- Mô hình tâm lý thính giác: Tính toán ngưỡng che mặt nạ cho mỗi băng gây ra
bởi băng lân cận bằng cách sử dụng mô hình tâm lý thính giác. Nếu năng lượng trong
một băng thấp hơn ngưỡng che mặt nạ nó sẽ bị bỏ qua.
Hình 1.6: Mô hình tâm lý thính giác
Độ chênh lệch giữa đường bao phổ tín hiệu và đồ thị mặt nạ được làm giảm đến
mức cực đại là 40dB, quyết định số bit cần để mã hóa tất cả các thành phần phổ tín hiệu.
Quá trình phân phối bit cần đảm báo nhiễu lượng tử hóa thấp hơn ngưỡng nghe thấy. (1
bit tương đương 6dB)
- Lượng tử hóa: Quá trình lượng tử hóa các băng tần con trong phổ tín hiệu audio
là một quá trình không đồng bộ. Mỗi băng con được lượng tử với một bước lượng tử
khác nhau phù hợp với mức năng lượng cũng như mức độ che lấp của băng tần. Bước
lượng tử được xác định nhờ bộ phân phối bit.
- Ghép kênh dữ liệu: Các khối 12 mẫu dữ liệu từ đầu ra bộ lượng tử hóa được ghép
kênh cùng với tham số xếp loại tương ứng của chúng và thông tin phân phối bit để hình
thành nên khung dữ liệu audio trong dòng bit mã hóa.
Hệ số nén
Tốc độ bit gốc là 1.4Mbps tương đương với chất
lượng Audio CD
1:4
Lớp 1 (tương đương 384kbps cho tín hiệu stereo)
1:6 - 1:8
Lớp 2 (tương đương 256 - 192 cho tín hiệu stereo)
1:10 - 1:12
Lớp 3 (tương đương 128 - 112 cho tín hiệu stereo)
Bảng 1.1: 3 lớp của MPEG-1 Audio
- Lớp I: Bộ lọc DCT với một khung và tần số trải đều trong mỗi băng. Mô hình
tâm lí thính giác chỉ dùng hiện tượng mặt nạ tần số.
17
Nén audio chuản MPEG
Nhóm 8
- Lớp II: Sử dụng 3 khung trong một bộ lọc ( tổng cộng 3 x 32 x 12=1152 mẫu).
Mô hình tâm lí thính giác sử dụng một chút mặt nạ thời gian.
- Lớp III: Sử dụng bộ lọc băng tốt hơn (các tần số không bằng nhau). Mô hình tâm
lí thính giác dùng cả hiệu ứng mặt nạ thời gian. Sử dụng bộ mã hóa Huffman.
Độ phân giải đầu vào
Tần số lấy mẫu
Tốc độ bit
Số lượng kênh
Tính tương hợp
MPEG-1
MPEG-2
16 bit, có thể lên đến
16 bit
34 bit
48KHz – 44,132
48KHz – 44,132
KHz
KHz
24KHz – 22,0516
KHz
Tự do có thể lên 448 Tự do có thể lên 256
Kbps
Kbps
2 kênh với các mode:
6 kênh: left, right,
momo, stereo, dual, center, left surround,
joint stereo
right duround và LFE
Thuận và ngược
Các kênh left, right
có thể giải mã độc
lập nhau
Khả năng co giãn
Bảng 1.2: Đặc tính kỹ thuật chuẩn nén audio MPEG-1 và MPEG-2
1.4.2 Xây dựng giải thuật
a, Giới thiệu về MATLAB
MATLAB là viết tắt của Matrix Laboratory, là một bộ phần mềm toán học của
hãng Mathworks để lập trình, tính toán số và có tính trực quan rất cao. MATLAB làm
việc chủ yếu với ma trận. Ma trận cỡ mxn là bảng chữ nhật gồm mxn số được sắp xếp
thành m hàng và n cột. MATLAB có thể làm việc với nhiều kiểu dữ liệu khác nhau. Với
chuỗi kí tự MATLAB cũng xem là một dãy các kí tự hay là dãy mã số của các ký tự.
MATLAB dùng để giải quyết các bài toán về giải tích số, xử lý tín hiệu số, xử lý
đồ họa, … mà không phải lập trình cổ điển. Hiện nay, MATLAB có đến hàng ngàn lệnh
và hàm tiện ích. Ngoài các hàm cài sẵn trong chính ngôn ngữ, MATLAB còn có các
lệnh và hàm ứng dụng chuyên biệt trong các Toolbox, đểmở rộng môi trường MATLAB
nhằm giải quyết các bài toán thuộc các phạm trù riêng. Các Toolbox khá quan trọng và
tiện ích cho người dùng như toán sơ cấp, xử lý tín hiệu số, xử lý ảnh, xử lý âm thanh,
ma trận thưa, logic mờ…
Dữ liệu
Dữ liệu của Matlab thể hiện dưới dạng ma trận (hoặc mảng - tổng quát), và có các
kiểu dữ liệu được liệt kê sau đây:
- Kiểu đơn single, kiểu này có lợi về bộ nhớ dữ liệu vì nó đòi hỏi ít byte nhớ hơn,
kiểu dữ liệu này không được sử dụng trong các phép tính toán học, độ chính xác kém
hơn.
- Kiểu double kiểu này là kiểu thông dụng nhất của các biến trong Matlab.
- Kiểu Sparse.
18
Nén audio chuản MPEG
Nhóm 8
- Kiểu uint8, uint8, uint16, uint64...
- Kiểu char ví dụ “Hello”.
- Kiểu cell.
- Kiểu Structure.
Ứng dụng
Matlab tạo điều kiện thuận lợi cho:
- Các khoá học về toán học.
- Các kỹ sư, các nhà nghiên cứu khoa học.
- Dùng Matlab để tính toán, nghiên cứu tạo ra các sản phẩm tốt nhất trong sản xuất.
Hệ thống Matlab
Hệ thống giao diện của Matlab được chia thành 5 phần:
-Môi trường phát triển: Đây là nơi đặt các thanh công cụ, các phương tiện giúp
chúng ta sử dụng các lệnh và các file.
- Thư viện, các hàm toán học bao gồm các cấu trúc như tính tổng, sin cosin atan,
atan2 etc..., các phép tính đơn giản đến các phép tính phức tạp như tính ma trận nghich
đảo, trị riêng, chuyển đổi fourier, laplace, symbolic library.
- Ngôn ngữ Matlab. Đó là các ngôn ngữ cao về ma trận và mảng, với các dòng
lệnh, các hàm, cấu trúc dữ liệu vào, có thể lập trình hướng đối tượng.
- Đồ hoạ trong Matlab. Bao gồm các câu lệnh thể hiện đồ họa trong môi trường
2D và 3D, tạo các hình ảnh chuyển động, cung cấp các giao diện tương tác giữa người
sử dụng và máy tính.
- Giao tiếp với các ngôn ngữ khác. Matlab cho phép tương tác với các ngôn ngữ
khác như C, Fortran …
Hình 1.7: Giao diện MATLAB
19
Nén audio chuản MPEG
Nhóm 8
b, Giải thuật chương trình
Từ các phân tích trên, ta có code mô phỏng nén audio theo chuẩn MPEG trên phần
mềm MTLAB như sau:
% đọc một file và chuyển nó sang một vector
[funky, f] = wavread('funky.wav');
%lựa chọn kích thước một khối
windowSize = 8192;
%thay đổi tỷ lệ nén
samplesHalf = windowSize / 2;
samplesQuarter = windowSize / 4;
samplesEighth = windowSize / 8;
%khởi tạo ma trận nén
funkyCompressed2 = [];
funkyCompressed4 = [];
funkyCompressed8 = [];
%nén
for i=1:windowSize:length(funky)-windowSize
windowDCT = dct(funky(i:i+windowSize-1));
funkyCompressed2(i:i+windowSize-1) = idct(windowDCT(1:samplesHalf),
windowSize);
funkyCompressed4(i:i+windowSize-1) = idct(windowDCT(1:samplesQuarter),
windowSize);
funkyCompressed8(i:i+windowSize-1) = idct(windowDCT(1:samplesEighth),
windowSize);
end
%đồ thị tín hiệu âm thanh
figure(1)
h1 = subplot(4,1,1);
plot(funky), title('Original Waveform');
subplot(4,1,2)
plot(funkyCompressed2), title('Compression Factor 2'), axis(axis(h1));
subplot(4,1,3)
plot(funkyCompressed4), title('Compression Factor 4'), axis(axis(h1));
20
Nén audio chuản MPEG
Nhóm 8
subplot(4,1,4)
plot(funkyCompressed8), title('Compression Factor 8'), axis(axis(h1));
%xem mở rộng tín hiệu âm thanh
figure(2)
h1 = subplot(4,1,1); plot(funky(100000:120000)), title('Portion of Original
Waveform');
subplot(4,1,2)
plot(funkyCompressed2(100000:120000)), title('Portion of Compression Factor
2'), ;
subplot(4,1,3)
plot(funkyCompressed4(100000:120000)), title('Portion of Compression Factor
4'), axis(axis(h1));
subplot(4,1,4)
plot(funkyCompressed8(100000:120000)), title('Portion of Compression Factor
8'), axis(axis(h1));
%phổ của tín hiệu âm thanh
figure(3)
subplot(4,1,1)
specgram(funky), title('Original Waveform');
subplot(4,1,2)
specgram(funkyCompressed2), title('Compression Factor 2');
subplot(4,1,3)
specgram(funkyCompressed4), title('Compression Factor 4');
subplot(4,1,4)
specgram(funkyCompressed8), title('Compression Factor 8');
%chạy file gốc và các file nén
disp('Original');
wavplay(funky, f);
disp('Compression Factor 2');
wavplay(funkyCompressed2, f);
disp('Compression Factor 4');
wavplay(funkyCompressed4, f);
disp('Compression Factor 8');
wavplay(funkyCompressed8, f);
end
21
Nén audio chuản MPEG
Nhóm 8
2
CHƯƠNG 2. KẾT QUẢ MÔ PHỎNG
Kết quả mô phỏng trên MATLAB:
Hình 2.1: Đồ thị tín hiệu âm thanh
Hình 2.2: Xem mở rộng tín hiệu âm thanh
22
Nén audio chuản MPEG
Nhóm 8
Hình 2.3: Phổ của tín hiệu âm thanh
Hình 2.4: Đồ thị Local maxima/Frequency index
23
Nén audio chuản MPEG
Nhóm 8
Hình 2.5: Đồ thị mặt nạ thời gian, mặt nạ tần số
Hình 2.6: Đồ thị ngưỡng mặt nạ
24
Nén audio chuản MPEG
Nhóm 8
3 CHƯƠNG 3. ĐÁNH GIÁ KẾT QUẢ
3.1
So sánh kết quả với lý thuyết
Sau khi so sánh kết quả mô phỏng trên phần mềm MATLAB với các số liệu tính
toán trên lý thuyết ta có các nhận xét sau:
- Kết quả thu được khá tương đồng với các số liệu tính toán trên lý thuyết
- Nén audio theo chuẩn MPEG có nhiều lợi thế như hệ số nén cao, chất lượng âm
thanh khá tốt
- Tuy nhiên, hệ số nén càng cao thì chất lượng âm thanh càng giảm
- Sử dụng mặt nạ thời gian, mặt nạ tần số để giảm dư thừa thông tin không có ích
Chất lượng âm thanh đầu ra đảm bảo chất lượng
- Dung lượng audio ban đầu là: 1,068,728 bytes
- Dung lượng audio ra là : 97,592 bytes
- Tỷ số nén là : 10.95
- Tỷ số SNR ( tỷ số tạp âm trên nhiễu) : SNR = 13.54 dB
Đồ thị âm thanh sau khi nén đã lược bớt đi dựa vào:
- Hiện tượng che mặt nạ tần số
- Hiện tượng che mặt nạ thời gian
- Ngưỡng nghe của con người.
Đuôi audio vào là đuôi .wav
Đuôi audio ra là đuôi .mp3
Ở đây sử dụng chuẩn nén MPEG-1 layer 3.
3.2
Giải thích kết quả
Kết quả mô phỏng trên phần mềm có sự chênh lệch không lớn so với kết quả trên
lý thuyết, những sai lệch này gây ra bởi:
- Phần mềm có sự sai số
- Âm thanh đầu vào không thực sự hoàn hảo
- Code chương trình có sự sai sót .
3.3
Kết luận
- Đã mô phỏng thành công nén audio theo chuẩn MPEG trên matlab
- Hiểu chi tiết về quá trình nén, giải nén audio
- Cung cấp phương tiện cần thiết cho quá trình tìm hiểu về cách thức hoạt động
của MPEG nén audio.
25