Tài liệu là tổng hợp 20 đề bài tập lớn môn xử lý dữ liệu đa phương tiện. Tài liệu cung cấp các kiến thức tổng quát và chuyên sâu từng phần trong các môn học về đa phương tiện, đặc biệt là xử lý ảnh. Đây sẽ là tài liệu tham khảo tuyệt vời cho các bạn làm báo cáo bài tập lớn môn học này.
Trang 1Đề 1 : Mã hóa dự đoán - Kỹ thuật DPCM và ứng dụng trang 1
Đề 2: Lượng tử hóa vectơ (Vector Quantization -VQ) và áp dụng trong nén ảnh 19
Đề 3 Phương pháp mã hóa nén dựa trên phép biến đổi (Transform Coding) 29
Đề 4 : Phương pháp mã hóa các dải tần con (Subban coding –SBC) 37
Đề 5 Tìm hiểu các phép biến đổi trong xử lý dữ liệu đa phương tiện 51
Đề 6: Các phương pháp mã hóa nén ảnh 56
Đề 7 : Kĩ thuật nén ảnh Jpeg cơ bản 70
Đề 8 : Tìm hiểu về chuẩn JPEG không tổn hao (JPEG-LS) 93
Đề 9 : Nén ảnh dựa trên phép biến đổi Wavelet rời rạc và chuẩn JPEG-2000 98
Đề 10: Các kỹ thuật tín hiệu xử lý video và mã hóa dự đoán trong nén video 115
Đề 11: Nén ảnh video theo chuẩn MPEG 126
Đề 13: Phương pháp tiên tiến nén Video AVC 144
Đề 14: Kỹ thuật “Scalable Video Coding” trong nén video 159
Đề 15 : Nén âm thanh tiếng nói thoại theo chuẩn ITU 179
Đề 16 : Nén âm thanh tiếng nói dải rộng (audio HiFi) 192
Đề 18 Đồng bộAudio-Video theo chuẩn MPEG 201
Đề 20 Tìm hiểu các kỹ thuật xác thực bảo vê bản quyền nội dung số (Content Protection- Watermarking) 216
Trang 2
Đề số 1 : Mã hóa dự đoán - Kỹ thuật DPCM và ứng dụng
Phần 1: TÌM HIỂU CHUNG VỀ PHƯƠNG PHÁP MÃ HÓA DPCM
I Nguyên lý
Điều xung mã sai phân (DPCM – Differentical Pulse Code Modulation) là phương pháp nén dữ liệu
có mất mát thông tin Cơ sở của phương pháp này dựa trên mã hóa dự đoán, thường được sử dụng đối với các tín hiệu lấy mẫu có độ tương quan mạnh (nghĩa là hai mẫu gần nhau là khá tương tự nhau), có quan hệ lân cận giữa các mẫu, như tín hiệu ảnh video, tín hiệu tiếng nói… Như vậy sẽ có nhiều lợi ích khi mã hóa sự khác nhau giữa các mẫu kế cận thay cho mã hóa giá trị tuyệt đối của mỗi mẫu
Nguyên tắc của mã hóa dự đoán :
- Mã hóa sự sai khác giữa các mẫu : mẫu dự đoán theo thời điểm trước và mẫu hiện tại
- Giá trị mẫu được giải mã dựa trên sự sai khác và giá trị dự đoán ở thời điểm trước nó
Như vậy có thể thấy rằng thay vì truyền đi toàn bộ thông tin của các mẫu, ta chỉ truyền đi sự sai lệch giữa các mẫu Điều này cho phép đạt được hiệu quả nén cao hơn nhiều so với việc mã hóa và truyền đi giá trị của từng mẫu riêng biệt
Hình 1 : Sơ đồ nguyên lý DPCM
1.1 Lấy mẫu ( Sampling)
Lấy mẫu chính là quá trình rời rạc hoá tín hiệu tương tự Đây là bước chuyển tín hiệu mang thông tin dạng liên tục thành tín hiệu mang thông tin rời rạc, bằng phương pháp lấy mẫu (Sampling) Sao cho tín hiệu rời rạc phải mang đẩy đủ thông tin của tín hiệu tương tự, để tái tạo được thông tin một cách trung thực ở đầu thu
Quá trình lấy mẫu được phát biểu như sau:
Một tín hiệu X(t) liên tục theo thời gian có phổ hạn chế từ (0¸Fmax)Hz, được hoàn toàn xác định bởinhững giá trị X(k Dt) của nó lấy các khoảng thời gian t =1/2Fmax với Fmax là tần số cao nhất của phổ làm
Trang 3Nếu gọi T1m là chu kỳ lẫy mẫu và F1m là tần số lấy mẫu ta có: T1m = 1/2Fmax
Hình 2 Quá trình lấy mẫu tính hiệu
Ở đầu thu để phục hồi lại được tín hiệu ban đầu, người ta dùng bộ lọc Tín hiệu rời rạc khi qua bộ lọc thông thấp, với tần số cơ bản của tín hiệu sẽ cho ra tín hiệu ban đầu Quá trình phục hồi đó được minh hoạ ở hình 3
Hình 3 : Quá trình phục hồi tín hiệu
Trang 4Hình 4 : Sơ đồ mô tả quá trình lượng tử hóa
dự đoán và sai số lượng tử Hai khái niệm này có bản chất khác nhau :
Sai số dự đoán (prediction error) chỉ là sự chênh lệch giữa giá trị dự đoán và giá trị thực Nó không làm tổn thất thông tin dẫn đến suy giảm chất lượng ảnh Giá trị sai số này quyết định tốc độ bit giảm đi nhiềuhay ít, tức ảnh hưởng đến hiệu suất nén
Sai số lượng tử (quantization error) là sai số đặc trưng cho sự tổn thất dữ liệu dẫn đến làm suy giảm chất lượng ảnh phục hồi
Mã hóa : d[n] = x[n] - x[n-1]
Trang 5Như vậy có thể thấy với kỹ thuật Open-Loop DPCM, sau mỗi vòng lặp sai số lượng tửhóa q[i] lại được cộng thêm vào (Quantization error Accumulation) :
Tức là sai số lượng tử hóa sau khi mã hóa sẽ rất lớn
2 DPCM vòng đóng ( Closed-loop DPCM)
Hình 7 Closed-loop DPCMVới cách bố trí như trong sơ đồ ta có
Trang 6Như vậy sai số lượng tử hóa đã không có sự tích lũy (accumulation) sau mỗi vòng lặp =>
giảm được đáng kể sai số lượng tử hóa
3 DPCM tuyến tính (bộ dự đoán tuyến tính)
Hình 7 : DPCM với Linear Pridiction
Cả 2 phương pháp Open-loop DPCM và Closed-loop DPCM ở trên đều có chung một cách tính sự sai khác Đó là tính sự sai khác của mẫu hiện tại chỉ dựa trên mẫu dự đoán của tín hiệu đứng ngay trước nó Nếu như có thể tính sự sai khác từ tất cả các mẫu dự đoán trước mẫu hiện tại thì sai số lượng tử hóa còn được giảm xuống nữa Như vậy sẽ đạt được độ nén cao hơn Đây chính là ý tưởng của phương pháp DPCM dùng bộ dự đoán tuyến tính (Linear Pridection)
Trang 7DPCM sử dụng hàm P(Z) được xác định bẳng tổng của tất cả các mẫu dự đoán tính đến thời điểm đang xét Vì sử dụng hàm tuyến tính nên P(Z) sẽ có dạng
Trang 8không nhạy cảm với những chi tiết có độ tương phản cao, thay đổi nhanh Sự giảm tốc độ bit ở đây thu được
từ quá trình lượng tử hoá và mã hoá
2 Kỹ thuật dự đoán
Nếu trực tiếp lượng tử hoá và mã hoá các mẫu của một nguồn ảnh với đầy đủ thông tin dư thừa và quan hệ tương hỗ giữa các điểm ảnh thì hiệu suất nén sẽ rất thấp do lượng thông tin của nguồn quá lớn Do vậy trong các công nghệ nén, cần loại bỏ đi tính có nhớ của nguồn tín hiệu, tức thực hiện “giải tương hỗ” (deccorelation) giữa các mẫu điểm lân cận nhau Trong công nghệ nén “điều xung mã vi sai” DPCM, quá trình giải tương hỗ được thực hiện bằng một bộ lọc có đáp ứng đầu ra là hiệu số giữa các mẫu điểm liên tiếp đầu vào và một giá trị “dự đoán” của mẫu điểm đó tạo được dựa trên giá trị các mẫu lân cận theo một qui luật nhất định
Sai số dự đoán: Bộ tạo dự đoán có nhiệm vụ tạo ra giá trị điểm tiếp theo từ giá trị các điểm đã truyền tải trước đó được lưu trữ Quá trình tạo dự đoán càng tốt thì sự sai khác giữa giá trị thực của mẫu hiện hành và trị dự đoán cho nó (gọi là sai số dự đoán) càng nhỏ Khi đó, tốc độ dòng bit càng được giảm nhiều Phân biệtgiữa sai số dự đoán và sai số lượng tử như đã trình bày ở phần trên
3 Ảnh hưởng của bộ dự đoán đến chất lượng nén
Kỹ thuật nén ảnh số đang đóng một vai trò cực kỳ quan trọng trong các hệ thống viễn thông và multimedia
để giải quyết vấn đề băng thông của đường truyền
Các kỹ thuật nén video đều cố gắng làm giảm lượng thông tin cần thiết cho một chuỗi các bức ảnh
mà không làm giảm chất lượng của nó đối với người xem Nói chung, tín hiệu video thường chứa đựng một lượng lớn các thông tin thừa, chúng thường được chia thành hai loại: thừa tĩnh bên trong từng frame
(statistical) và thừa động giữa các frame (subjective) Mục đích của nén video là nhằm làm giảm số bit khi lưu trữ và khi truyền bằng cách phát hiện để loại bỏ các lượng thông tin dư thừa này và dùng các kỹ thuật Entropy mã hoá để tối thiểu hoá lượng tin quan trọng cần giữ lại Và bộ dự đoán là một phần quan trọng trong việc tối ưu hóa chất lượng nén video
Như đã giới thiệu trong kỹ thuật nén video DPCM, ảnh hưởng của bộ dự đoán đến chất lượng nén video chính là sai số dự đoán (prediction error) mà bộ dự đoán tạo ra Sai số này quyết định hiệu suất cũng như chất lượng nén
Video về bản chất là những khung ảnh có quan hệ về thời gian, vậy nên xử lý nén video cũng là xử
lý trên từng khung hình riêng biệt Giá trị của điểm ảnh có thể được dự đoán từ giá trị hàng xóm lân cận
Các kỹ thuật dự đoán thường dùng là dự đoán một chiều (1-dimensional prediction) và dự đoán hai chiều (2- dimensional prediction)
Trang 9Trong dự đoán một chiều, thứ tự của các điểm ảnh có giá trị tượng tự sẽ được tìm thấy cùng một hàng hay cột của hình ảnh Còn trong dự đoán 2 chiều sẽ gồm có dự đoán hàng và cột.
Sự ảnh hưởng tới chất lượng ảnh của các kiểu dự đoán trên có thể được thấy khá rõ qua các ví dụ dưới đây:
Trang 10Ta thấy như ảnh trên thì giá trị điểm ảnh ban đầu được ký hiệu s[x,y] Với dự đoán một chiều theo chiều ngang (horizontal – uH[x,y]) có thể thấy dự đoán này cho giá trị tốt với phần ảnh có rìa theo chiều ngang Phần ảnh có rìa đứng (theo chiều ngang giá trị điểm ảnh biến đổi nhiều) thì sai số tạo ra sẽ lớn (nổi rõhơn và khác nhiều hơn so với phần ảnh có rìa theo chiều ngang).
Cũng tương tự khi quan sát ảnh được dự đoán một chiều theo chiều dọc (vertical –
uV[x,y]), các phần ảnh có rìa theo chiều dọc mờ hơn và gần đúng với giá trị ảnh gốc hơn là các phần ảnh có rìa hướng theo chiều ngang
Cuối cùng là ảnh dự đoán hai chiều (2-dimensional – uD[x,y]), ta có thể thấy được sự đồng nhất tương đối giữa cả phần ảnh chiều ngang và dọc
Ví dụ với một bức ảnh khác:
Trang 11Quá trình tạo dự đoán luôn tồn tại một sai số dự đoán nào đó.
Chất lượng nén không đơn thuần dựa vào sai số dự đoán trong quá trình mã hóa, nó còn phụ thuộc quá trình tái tạo các tín hiệu dự đoán ở bộ giải mã Quá trình nén còn được thực hiện cả trong quá trình lượng tử hóa và hiệu quả nén cũngđược quyết định bởi cách lượng tử hóa mẫu tín hiệu ban đầu
Khả năng dự đoán tốt sẽ giảm số bít phải truyền đi, ngược lại khả năng dự báo kém sẽ khiến cho số lượng bít phải truyền tăng lên, ảnh hưởng tới hiệu suất nén Một số lỗi với sai số dự đoán làm giảm chất lượng ảnh sau sau khi khôi phục:
Hình 22 Nhiễu hạt
Trang 12Hình 23: Nhiễu quá tảiVới số bit khác nhau: Prediction error 1bits/pixel và Prediction error 2 bits/pixel.
II Bộ lượng tử hóa và ảnh hưởng của bộ lượng tử hóa đến chất lượng nén video
Lượng tử hóa là ánh xạ không tuyến tính có tổn hao từ khoảng biểu diễn liên tục biên độ tín hiệu vàokhoảng biểu diễn bởi các giá trị rời rạc của các mức giá trị hay các từ mã
Với R bits chúng ta có thể biểu diễn 2R mã khác nhau trên mỗi mẫu, mỗi mã có thể biểu diễn một mức biên độ của tín hiệu Biên độ của tín hiệu có cả giá trị âm và dương do đó chúng ta phải định nghĩa mã
để miêu tả cả giá trị biên độ âm và dương Chúng ta chọn các giá trị điển hình sao cho ở đó có sự cân bằng các mức lượng tử cho cả giá trị âm và dương Có hai cách chọn: Chọn sử dụng có mức lượng tử bằng không (midtread) hoặc không có mức lượng tử bằng không (midrise) “Midrise” không có mức không do vậy với một tín hiệu đầu vào sẽ cho một số chẵn mức lượng tử ở đầu ra Ngược lại lượng tử hóa “midtread” sẽ cho ramột số lẻ mức lượng tử ở đầu ra Với R bits thì lượng tử hóa “midtread” sẽ cho 2R-1 giá trị khác nhau ngược lại lượng tử hóa “midrise” cho 2R mã Mặc dù cho số mức lượng tử nhỏ hơn nhưng lượng tử hóa “midtread” trong quá trình xử lý tín hiệu audio cho kết quả tốt hơn
1 Lượng tử hóa tuyến tính
Lượng tử hóa tuyến tính là một kiểu lượng tử hóa đơn giản nhất Lượng tử hóa tuyến tính là lượng tửvới các mức lượng tử bằng nhau Trong một kiểu lượng tử, phạm vi giá trị đầu vào là một số được biểu diễn bằng ký pháp nhị phân và mã cho một tín hiệu đầu ra là một số nhị phân trong khoảng mà giá trị đầu vào rơi vào
Để định nghĩa phạm vi và mức lượng tử chúng ta cần các thông tin sau:
- lượng tử hóa theo kiểu “midtread” hay “midrise”
- giá trị lớn nhất của giá trị đầu vào xmax
- mức lượng tử Δ
Thành phần dữ liệu thứ ba định nghĩa số bits cần thiết để biểu diễn một mã ví dụ như R bít cho phép chúng ta biểu diễn 2mũR mã khác nhau Với kiểu lượng tử hóa “midrise”, R bits cho phép chúng ta một tập các phạm vi đầu vào là Δ=2*xmax/2R
Trang 13Kiểu lượng tử hóa “midtread” sẽ có phạm vi lớn hơn một chút là =2*xmax/(2R -1)
Khoảng giá trị đầu vào là tử -xmax đến xmax, vậy điều gì sẽ xẩy ra khi giá trị đầu vào vượt quá khoảng này? Với các giá trị cao hơn giá trị cao nhất của khoảng thì sẽ được gán giá trị bằng giá trị cao nhất của khoảng, còn các giá trị nhỏ hơn giá trị nhỏ nhất của khoảng thì sẽ được gán giá trị bằng giá trị nhỏ nhất của khoảng
Midrise quantizers
Hình trên minh họa lượng tử hóa tuyến tính kiểu “midrise” 2 bits Phía tay trái của hình biểu diễn khoảng biên độ đầu vào từ -1 đến 1 Từ 2 bits lượng tử hóa midrise, chúng ta có thể chia khoảng giá trị đầu vào thành 4 mức Như đã biết thì 4 mức này sẽ có độ rộng bằng nhau Mỗi mức được biểu diễn bằng giá trịnhị phân tương ứng: [11], [10], [00], [01] lần lượt tương ứng với các giá trị -1, -0 +0, +1
Chúng ta đã lượng tử hóa tín hiệu đầu vào với 2 bits mã, chúng ta cũng có thể chuyển đổi chúng về dạng biên độ của tín hiệu Ví dụ với mức [00] là mức nằm trong khoảng biên độ từ 0.0 đến 0.5 của tín hiệu đầu vào Giả sử rằng các giá trị biên độ được phân bố đều trong mỗi khoảng, chọn mức đầu ra với mức lỗi nhỏ nhất sẽ là giá trị trung tâm của khoảng nghĩa là 0.25 Do đó các mã [11], [10], [00], [01] sẽ lần lượt là -0.75, -0.25, 0.25, 0.75
Lượng tử hóa tuyến tính kiểu midrise với nhiều hơn 2 bits cũng được làm tương tự
Giải thuật lượng tử hóa và lượng tử hóa ngược đối với lượng tử hóa tuyến tính kiểu Midrise R bit
Ví dụ: biên độ đầu vào là 0.6 thì sau quá trình lượng tử 2 bits sẽ là
Trang 14Giải thuật lượng tử hóa và lượng tử hóa ngược đối với lượng tử hóa tuyến tính kiểu Midtread R bit.
Ví dụ: biên độ đầu vào là 0.6 thì sau quá trình lượng tử 2 bits sẽ là
INT ((3*0.6+1)/2) = INT (1.4) =1
Ta chuyển đổi ngược lại sẽ là : 2*1/3 = 2/3
Như vậy ta thấy có một khoảng chênh lệch giữa biên độ của tín hiệu ban đầu và biên độ của tín hiệu sau khi được khôi phục lại Lượng tử hóa tuyến tính có giá trị làm tròn lỗi lớn nhất bằng nửa độ rộng của
Trang 15khoảng giá trị tại mọi nơi, mức đầu vào không tải chồng Tuy nhiên lỗi này sẽ chở nên nghiêm trọng đối với các tín hiệu có biên độ nhỏ.
2 Lượng tử hóa phi tuyến
Lượng tử với các bước lượng tử không yêu cầu phải bằng nhau, với độ rộng của mỗi bướcthay đổi tương ứng với biên độ của tín hiệu đầu vào gọi là lượng tử hóa phi tuyến
Lượng tử hóa phi tuyến thường sử dụng phương thức co giãn
Trong phương thức co giãn, có một đầu vào x được truyền vào thông qua một hàm đơn điệu tăng
y = c(x)
Lượng tử hóa ngược sẽ được thực hiện: x’=c-1(y’)
Trong đó hàm c(x) không đối xứng xung quanh x=0 do đó giá trị x âm sẽ được biểu diễn bằng giá trị
âm Chúng ta có thể định nghĩa c(x) thông qua c(|x|) Nếu xét tín hiệu đầu vào và lượng tử hóa tuyến tính thì tín hiệu thuộc khoản -1.0 đến 1.0, sau đó dùng hàm co giãn c(|x|) sẽ cho một biểu đồ đầu vào từ 0 đến 1.0 trên khoảng từ 0 đến 1.0 Với yêu cầu c(x) đơn điệu tăng do đó c(x) dễ dàng có thể đảo ngược lại
Để có một hình dung về sự co giãn ảnh hưởng như thế nào đến lượng tử hóa, chúng ta xem kích cỡ của các bước lượng tử thay đổi như thế nào đối với mức tín hiệu đầu vào x
Như chúng ta đã biết các bước lượng tử trong lượng tử hóa tuyến tính là đều nhau Nếu chúng ta lượng tử sử dụng một lượng lớn các bít thì bước lượng tử sẽ nhỏ, y=c(x) xấp xỉ tuyến tính và chúng ta có
y(x) ≈ c(x0) + dc/dx(x-x0)
Với x0 cố định trong mỗi mức Độ rộng trong x của một mức lượng tử được thu nhỏ bởi tỷ số giữa
dc và dx từ độ rộng trong y Ví dụ, nếu chúng ta chọn một hàm c(x) có độ dốc cao cho giá trị x nhỏ thì chúng
ta có lượng tử hóa nhiễu nhỏ hơn so với lượng tử hóa tuyến tính Tuy nhiên, hàm c(|x|) phải chạy tuyến tính
từ 0 đến 1.0, độ dốc cao cho giá trị x thấp bao hàm độ dốc thấp hơn và nhiều hơn lượng tử hóa nhiễu cho cácgiá trị x cao hơn Do đó, chúng ta có sử dụng hàm co giãn để di chuyển lượng tử hóa nhiễu từ biên độ đầu vào thấp đến biên độ đầu vào cao hơn Lượng tử hóa phi tuyến có thể được sử dụng để làm giảm tỷ lệ nhiễu trên tạp âm (SNR)
Phần 3: DPCM TRONG NÉN ẢNH, NÉN AUDIO VÀ NÉN VIDEO
I DPCM trong nén Image sử dụng thuật toán LMS
1 Nguyên tắc
Trong DPCM chúng ta không chỉ truyền tín hiệu hiện tại x(n) mà cả e(n) (sai khác giữa x(n) và và trị dự đoán của nó y(n)) Tại bộ thu, chúng ta sinh ra y(n) từ giá trị mẫu trước đó Tuy nhiên có một khó khăn với lược đồ trên Tại bộ thu, thay vì các mẫu trước đó x(n-1), x(n-2),… cũng như e(n), chúng ta có được các tín hiệu đã được lượng tử hóa xs(n-1), xs(n-2), nó sẽ làm tăng sai số trong quá trình xây dựng lại tín hiệu Trong trường họp này, cách tốt nhất để xác định y(n) (dự đoán từ xs(n)) cũng như từ các mẫu lượng tử hóa xs(n-1), xs(n-2),… tại bộ thu, giá trị sai khác e(n) = x(n) – y(n) sẽ được truyền qua PCM Tại bộ thu, chúng ta có thể sinh ra y(n) và từ e(n) ta có thể xây dựng lại xs(n)
Trang 16Sơ đồ khối cơ bản của DPCM với thuật toán LMS trong hệ thống nén ảnh
Hình trên biểu diễn bộ dự đoán DPCM trong nén ảnh Đầu vào dự đoán là xs(n) và đầu ra là y(n) Sự sai kháccủa dữ liệu ảnh gốc x(n) và dữ liệu ảnh dự đoán y(n) được gọi là sai số dự đoán e(n)
Vì thế e(n) = x(n) – y(n) được lượng tử hóa thành eq(n) = e(n) + q(n) với q(n) là sai số lượng tử hóa, e(n) là tín hiệu được lượng tử hóa Khi đó q(n) = eq(n) - e(n)
Đầu ra dự đoán y(n) sẽ quay lại bộ dự đoán thành đầu vào nên
wk(n) là N hiệp phương sai bộ dự đoán thích nghi, xs(n) là dữ liệu ảnh xây dựng lại và k là giá trị lựa chọn
từ các pixel ảnh trước đó dựa vào dự đoán hiện tại e(n) được tính bằng e(n) = x(n) – y(n) Lượng tử hóa sai
số này sẽ được gửi tới bộ thu và được xác đinh bởi eq(n) = e(n) + q(n)
Trang 17Quá trình DPCM trong nén ảnh JPEG Hình trên là một ví dụ về DPCM trong nén ảnh JPEG Khối DPCM được dùng để mã hóa các thành phần
DC của khối DC sau quá trình lượng tử hóa
II ADPCM trong nén âm thanh (theo chuẩn G.726)
1 Nguyên tắc
Điều chế mã sung vi sai thích ứng (ADPCM) là một biến thể của DPCM cho phép thay đổi kích thước của các bước lượng tử, cho phép giảm thêm nữa trong những băng thông cần thiết với một tỷ lệ signal-to-noise cho trước
Về cơ bản, sự thích nghi với các thống kê về tín hiệu trong ADPCM đơn giản bao gồm một hệ số mức thích nghi trước khi lượng tử hóa sự sai khác trong bộ mã hóa DPCM
ADPCM được phát triển vào đầu những năm 1970 tại phòng thí nghiệm Bell Labs để mã hóa tiếng nói
2 Quy trình công nghệ
Hình 9: Lược đồ của DPCM trong nén audio chuẩn G.726
Trang 18Hình 10: Sơ đồ khối nén audio chuẩn G.926
Đầu tiên các tín hiệu vào sẽ được mã hóa bằng phương pháp điều chế xung mã PCM, mã hóa trực tiếp tín hiệu lấy mẫu tiếng nói, âm thanh với các luật lượng tử hóa µ-law và a-law Các tín hiệu điều chế bởi PCM s(k) sẽ được chuyển đổi thành tín hiệu PCM đồng đều sl(k)
Các tín hiệu PCM đồng đều sẽ được mã hóa bởi ít bit hơn để có thể nén Để làm được điều này, chúng ta
sẽ mã hóa các tín hiệu sai khác, thay vì mã hóa tín hiệu tín hiệu gốc Các tín hiệu sai khác này sẽ được tính toán và được lượng tử hóa Tín hiệu sai khác là sự chênh lệch giữa mẫu hiện tại và mẫu trước đó Tín hiệu sai khác là sự chênh lệch giữa mẫu hiện tại và mẫu trước đó sẽ được tính theo công thức d(k) = sl(k) - se(k)
Bộ lượng tử hóa có thể là bộ lượng tử hóa tuyến tính hoặc phi tuyến tính Bộ lượng tử hóa tuyến tính ít được sử dụng hơn vì các tín hiệu audio thường biến thiên rời rạc Cũng do sự biến thiên tín hiệu audio là không đồng đều nên bộ lượng tử hóa phi tuyến tính thích nghi sẽ được chia thành các bộ lượng tử hóa thích nghi mức 31, 15, 7, 4 Các bộ lượng tử hóa này tương ứng sẽ lượng tử hóa cho các tín hiệu sai khác hoạt động ở 40, 32, 24 hay 16 Kbps Tín hiệu ra của d(k) qua bộ lượng tử hóa là I(k)
Tín hiệu sai khác sau khi được lượng tử hóa I(k) sẽ được đưa vào bộ lượng tử hóa thích nghi nghịch đảo nhằm chuyển đổi về dạng ban đầu dq(k)
Bộ dự đoán thích nghi sẽ dự đoán mẫu dự đoán se(k) từ tín hiệu sai khác dq(k) và tín hiệu xây dựng lại
sr(k) Nó tiếp tục sẽ là đầu vào để tính toán sự chênh lệch tín hiệu so với đầu vào hiện tại
Quá trình dự đoán kết thúc sau khi xử lý xong tín hiệu đầu vào
III DMPC trong nén video (chuẩn MPEG)
1 Nguyên tắc
Trên lý thuyết, video là tập hợp các ảnh hiện thị liên tiếp nhau về mặt thời gian gọi là các frame DCPM
sử dụng trong nén video chủ yếu là dùng để mã hóa dự đoán các frame I, B, P
2 Quy trình công nghệ
- Nén frame I: DPCM trong nén frame I chính là DPCM trongn nén JPEG
Trang 19- Nén frame P, B:
Mã hóa dự đoán DPCM trong nén frame P và frame B được sử dụng trong quá trình đánh giá ước lượng chuyển động
Trang 20Đề số 2: Lượng tử hóa vectơ (Vector Quantization -VQ) và áp dụng trong nén ảnh
I TÌM HIỂU CHUNG VỀ KỸ THUẬT VQ
Lý thuyết lượng tử hóa
Lượng tử hóa là quá trình ánh xạ một tập dữ liệu lớn sang một tập dữ liệu nhỏ hơn Do đó, nó đượclàm nền tảng trong rất nhiều thuật toán nén dữ liệu Trong xử lí tín hiệu số nó chính là quá trình rời rạc hóa
về mặt biên độ sau khi rời rạc hóa về mặt thời gian bằng cách xấp xỉ giá trị tín hiệu ban đầu về một giá trịđơn giản hơn đã lựa chọn từ trước Quá trình lượng tử hóa tín hiệu hoặc dữ liệu ban đầu sẽ gây ra một sai sốgọi là sai số lượng tử hóa Thiết bị hoặc một hàm thuật toán dùng để lượng tử hóa được gọi là bộ lượng tửhóa (quantizer)
Do lượng tử hóa là một phép ánh xạ từ một tập lớn sang một tập nhỏ hơn nên nó là một quá trìnhkhông tuyến tính và không có tính thuận nghịch- tức là với dữ liệu đầu ra ta không thể thu lại (recover) mộtcách chính xác dữ liệu ban đầu
Trong lượng tử hóa, tập dữ liệu đầu vào có thể là vô hạn,liên tục và không đếm được còn tập dữ liệuđầu ra có thể hữu hạn hoặc vô hạn đếm được
Lượng tử hóa được chia làm hai loại :
Trang 21- Rounding quantization (lượng tử hóa làm tròn): dạng lượng tử hóa này được sử dụng trong
nhiều ứng dụng cho phép việc sử dụng một đại diện xấp xỉ đơn giản nào đó đối với một tập số lượng dùng để
đo và để sử dụng trong các tính toán khác Dạng này bao gồm cả các phép lấy xấp xỉ làm tròn đơn giản được
sử dụng trong số học hàng ngày Nó cũng có trong kĩ thuật chuyển đổi từ tín hiệu tương tự sang tín hiệu sốtrong hệ thống xử lý tín hiệu số và trong các phép toán được thực hiện trong hầu hết các quá trình xử lý lọc
số Mục đích chủ yếu của kĩ thuật này cũng như trong các ứng dụng của nó là giữ lại được đa số tín hiệu banđầu một cách chính xác nhất có thể trong khi loại bỏ đi các tín hiệu không cần thiết và giữ cho tín hiệu ragần đúng với thực tế
- Rate-distortion optimized quantization (lượng tử hóa với độ lệch tối ưu): loại này sử dụng
trong mã nguồn của các thuật toán nén dữ liệu có gây mất mát (“lossy” data compression) với mục đích quản
lí độ lệch trong giới hạn của tốc độ bit được hỗ trợ bởi một kênh truyên thông hoặc một phương tiện lưu trữnào đó Mức độ lệch có thể được quản lý cẩn thận bởi các kĩ thuật rất phức tạp và có thể đưa ra các mức độlệch đáng kể không thể tránh khỏi Bộ lượng tử hóa dạng này được thiết kế với mục đích có thể hoàn toànkhác và phức tạp hơn đối với phép lượng tử hóa làm tròn
Việc phân tích về lượng tử hóa liên quan đến việc nghiên cứu về mức dữ liệu (the amount of data)trong đầu ra của bộ lượng tử hóa, và nghiên cứu về sự mất chính xác trong quá trình lượng tử Các lĩnh vựcchung của các nghiên cứu này thường là về tỉ lệ và độ lệch (sai số) và được gọi là rate-distortion theory(thuyết sai số)
Lượng tử hóa vector (VQ)
Các khái niệm
Lượng tử hóa vector là cách thức nén dữ liệu có gây mất mát dựa trên nguyên tắc mã hóa khối Đây
là kĩ thuật được sử dụng trong nhiều ứng dụng như nén ảnh, nén âm thanh, nhận dạng âm thanh… Trước đâyviệc thiết kế một bộ lượng tử hóa vector được xem là một vấn đề nan giải do cần phải tích hợp đa chiều Vàonăm 1980, Linde, Buzo và Gray đã đưa ra thuật toán thiết kế bộ lượng tử hóa vector (LBG) dựa trên một tậphọc nhờ đó tránh được việc phải tích hợp đa chiều
Phép lượng tử hóa vector là một phép ánh xạ các vector k chiều trong không gian vector k chiềusang một tập xác định các vector Y = {yi: i=1, 2,…, N} Mỗi vector yi được gọi là một codevector hay còngọi là một codeword và tập các codevector này gọi là một codebook
Đối với mỗi một codeword yi, các vector nằm gần nó nhất so với tất cả các codeword còn lại tạothành một vùng (Vi) gọi là vùng được mã hóa (encoding regions hay voronoi region):
Trang 22
Tập các encoding region được gọi là phân vùng không gian Rk:
Một phân vùng không gian
Như vậy có thể thấy, phép lượng tử hóa vector gần như là một cách lấy xấp xỉ các giá trị đầu vào Ví dụ
ta xét một phép lượng tử hóa vector 1 chiều:
Ở đây, các giá trị xấp xỉ được mã hóa bằng 2 bit, các số nhỏ hơn -2 được lấy xấp xỉ là -3 và được
mã hóa là 00 , các số thuộc khoản từ -2 đến 0 được lấy xấp xỉ bằng -1 và được mã hóa là 01, các số nằmtrong khoảng từ 0 đến 2 được lấy xấp xỉ là 1 và được mã hóa là 10, các số trong khoảng còn lại lấy xấp xỉ là
3 và được mã hóa là 11.Tập các số nguyên trên trục số là tập các vector đầu vào 1 chiều; -3,-1,1,3 là các
Trang 23codeword và tập {-3,-1,1,3} là codebook Không gian xét ở đây chính là tập các số nguyên Z Đây gọi làphép lượng tử hóa vector 2bits, 1 chiều (1-dimensional, 2-bit VQ).
Một ví dụ về phép lượng tử hóa vector 4 bits, 2 chiều:
Các ngôi sao (chính là các codeword) là kết quả của việc lấy xấp xỉ các cặp số trong các khu vực(encoding region) chứa nó trên hình vẽ Mỗi ngôi sao này sẽ được mã hóa bằng 4 bit (16 ngôi sao)
Vấn đề thiết kế bộ lượng tử hóa vector (vector quantizator)
a Đặt vấn đề
Như đã trình bày trong phần lý thuyết về lượng tử hóa thì mục đích của các bộ lượng tử là các giá trịđầu ra phải có độ lệch trong giới hạn có thể tái hiện lại nguồn ban đầu, độ lệch càng bé thì tín hiệu ra cànggiống tín hiệu nguồn Để đạt được điều này thì các sai số trong quá trình lượng tử cũng phải được quan tâm.Đối với phương pháp VQ thì mục đích là phải chọn ra được các codevector sao cho độ lệch trung bình giữacodevector với các vector trong cùng một vùng mã hóa được định ra bởi codevector đó là thấp nhất
Xét một tập học T gồm M phần tử:
Tập học này có thể thu được từ một số cơ sở dữ liệu lớn Ví dụ nếu nguồn là một tín hiệu tiếng nói,khi đó tập nguồn có thể thu được từ việc ghi âm một vài cuộc hội thoại dài trên điện thoại Ở đây, M đượcgiả thiết là đủ lớn để tập T thể hiện được hết các thuộc tính của nguồn và giả thiết rằng các vector nguồn có
k chiều
Trang 24Gọi N là số lượng codevector, tập codebook là C:
Trong đó, cn (n=1,2,…,N) là một codevector k chiều:
Số vùng mã hóa là N Gọi Sn (n=1,2,…,N) là một encoding region được định ra từ codevector cn , P
là phân vung không gian chứa các Sn
Như vậy tất cả các vector xn nằm trong vùng Sn được lấy xấp xỉ gần đúng bởi cn Ta có hàm lượng
tử hóa:
Và độ lệch trung bình của phép lượng tử là:
Như vậy, vấn đề ở đây là khi cho tập học T và định ra số lượng các codevector là N, cần phải tìm ratập C, P để Dave có giá trị nhỏ nhất
b Tiêu chuẩn tối ưu
Các tập C, P thỏa mãn vần đề nêu trên phải thỏa mãn 2 điều kiện sau:
- Nearest Neighbor Condition:
Khoảng cách giữa các vector nằm trong vùng Sn với codevector cn so với các codevector khác phải
là nhỏ nhất
- Centroid Condition:
Trang 25Codevector cn có giá trị bằng giá trị trung bình của các vector nằm trong vùng Sn Trong thựcnghiệm, mỗi vùng sẽ có ít nhất một vector trong tập học ban đầu (do đó mẫu của biểu thức trên luôn khác 0).
Quá trình lượng tử hóa vector
2 giai đoạn(2 pha):
Giai đoạn 1: Huấn luyện (trainning)
Giai đoạn 2: Thực hiện mã hóa và giải mã
o Huấn luyện
Huấn luyện dựa theo mô hình toán học, các bước thực hiện:
Không gian dữ liệu nguồn k chiều:
• X= {x1, x2, … , xi} với xi là vector k chiều
Chọn ra tập dữ liệu huấn luyên T ( T là con của X):
T={x1, … , xn}
Theo thuật toán huấn luyên , tạo codebook :
• C={C1,C2,….CN} với Ci = {Ci1, Ci2, …, Cik} (code-vector)
Phân hoạch P chia tập T thành N tập con:
• P={S1, S2, … , SN}
Yêu cầu thỏa mãn 2 tiêu chuẩn tối ƣu:
Láng giềng gần nhất
Sn là tập các vector x gần với code-vector cn hơn các code- vector khác
Điều kiện trọng tâm:
Cn là trọng tâm của phân hoạch Si
o Thực hiện mã hóa và giải mã
o Sơ đồ mã hóa và giải mã:
Trang 26o Mã hóa:
Không gian dữ liệu nguồn X ( ngoài tập huấn luyện còn nhiều vector dữ liệu khác)
Với mỗi vector xm, tìm code-vector cn thỏa mãn điều kiện khoảng cách gần nhất từ
xm đến cn
Q(xm) = cn Thay giá trị của xm bằng chỉ số của cn trong codebook
o Giải mã: Từ chỉ số của cn, khi tái tạo dữ liệu X ta đặt giá trị của Cn vào vị trí tương ứng của
Ta có thuật toán rất mạnh mẽ để giải quyết vấn đề ở trên là Lloyd, nhưng vấn đề khó khăn và quantrọng nhất của thuật toán Lloy là làm sao chọn ra được N vector khởi đầu, điều này đã được giải quyết bởithuật toán mở rộng và cụ thể hơn là thuật toán LBG
Ví dụ từ ảnh nguồn ban đầu với kích thước (512x512),
Ta phân chia ảnh thành các block nhỏ có kích thước (4x4) ta sẽ được 16384 block Mỗi block sẽđược ánh xạ sang miền không gian 16 chiều tương ứng với 1 vector (1x16) gọi là training vector Ta muốnlấy ra codebook có kích thước (256x16)
Trang 27Bảng 1:Training vector (16384x16)
Bảng 2: Codebook (256x16)
2.2 Xây dựng codebook bằng thuật toán LBG
Từ tập training vector ta xây dựng codebook:
Trang 28Thuật toán này xuất phát với một vector mã ban đầu và nhân đôi dần lên cho đến khi đủ số lượngvector mã cần thiết, trong quá trình nhân đôi đó các vector mã được sắp xếp lại theo thuật toán Lloyd, sauđây là các bước cụ thể của thuật toán:
Trang 29e Nếu: D (i−1) ave −D (i) ave
D (i−1) ave
>ϵ, quay lại bước 4a
f Đặt D ave¿ = D ave (i ) Cho n = 1, 2, , N Đặt Cn¿= C (i) nlà giá trị cuối cùng của vector mã
5 Lặp lại các bước 3, 4 cho đến khi đạt được số lượng vector mã mong muốn
2.3 Sơ đồ thuật toán và nhận xét
a Sơ đồ thuật toán
b Nhận xét:
Mang đặc điểm chung của kỹ thuật lượng tử hoá, VQ đã thực hiện ánh xạ từ không gian lớn dữ liệu banđầu (tập trainning) sang một không gian nhỏ hơn rất nhiều (codebook) Việc lựa chọn kích thước codebook(cũng chính là số bit/chiều) trong VQ sẽ quyết định độ nén của dữ liệu Ngoài ra, việc chỉ truyền đi các chỉ
số (index) của codevector trong codebook thay vì truyền đi các giá trị thực tế của dữ liệu, VQ đã giúp làmgiảm không gian lưu trữ, qua đó làm tăng cường độ nén dữ liệu Tuy nhiên, độ nén cao đồng nghĩa với việc
là thông tin sau khi sử dụng VQ sẽ có sai số so với dữ liệu ban đầu lớn hơn
Ngoài ra, với đặc điểm riêng của mình là lượng tử hoá theo từng khối (block) dữ liệu, VQ còn giữ lạiđược phần nào mối liên quan giữa các dữ liệu ban đầu (về vị trí, giá trị…)
Trang 30Vấn đề lớn nhất trong kỹ thuật VQ là việc xây dựng được một codebook phù hợp để đạt hiệu quả néncao và giảm sai số lượng tử Có nhiều phương pháp để xây dựng codebook: random, median cut, split Trong đó, phương pháp nào càng xây dựng được codebook phù hợp thì càng phức tạp Hiện nay, phươngpháp split codebook với giải thuật LBG đang được sử dụng rộng rãi nhất Nó không quá phức tạp trong khivẫn đạt được hiệu quả nén cao, sai số lượng tử chấp nhận được.
Phương pháp phân phối ngẫu nhiên – LBG :
+ Có hiệu quả nén cao
+ Tuy nhiên yêu cầu tính toán còn phức tạp và tốn tài nguyên để xử lý dữ liệu
Đề số 3 Phương pháp mã hóa nén dựa trên phép biến đổi (Transform Coding) và ứng dụng
A Tìm hiểu chung về phương pháp nén dựa trên phép biến đổi
1 Tìm hiểu chung về phương pháp nén dựa trên phép biến đổi
Nén ảnh là một kỹ thuật mã hóa các ảnh số hóa nhằm giảm số lượng các bit dữ liệu cần thiết để biểudiễn ảnh Mục đích là giảm đi những chi phí trong việc lưu trữ ảnh và chi phí thời gian để truyền ảnh đi xatrong truyền thông nhưng vẫn đảm bảo được chất lượng của ảnh Nén ảnh thực hiện được là do một thực tế:thông tin trong bức ảnh không phải là ngẫu nhiên mà có trật tự, tổ chức Vì thế nếu bóc tách được tính trật
tự, cấu trúc đó sẽ biết được phần thông tin nào quan trọng nhất trong bức ảnh để biểu diễn và truyền đi với
số lượng ít bit hơn so với ảnh gốc mà vẫn đảm bảo đầy đủ tính năng của thông tin Ở bên nhận quá trình giải
mã sẽ tổ chức, sắp xếp lại bức ảnh xấp xỉ gần chính xác so với ảnh gốc nhưng vẫn thỏa mãn chất lượng yêucầu
2 Phương pháp nén ảnh dựa vào phép biến đổi( Transform Coding)
2.2 Sơ đồ chung
Trang 31Khối T: biến đổi thuận, khối Q: lượng tử hóa, khối E: mã hóa
Khối T ( Transform ):
Biến đổi từ miền không gian dữ liệu ban đầu quan sát được sang miền không gian
dữ liệu của phép chiếu hay không gian đặc trưng mà ở đó ta quan sát được nhữngđặc trưng của dữ liệu
Phép biến đổi có thể tồn tại tồn tại hoặc không tồn tại phép biến đổi ngược
Thường yêu cầu áp dụng phép biến đổi tuyến tính và tồn tại biến đổi ngược
Công thức : : biến đổi thuận trong đó đầu vào là không gianvecto dữ liệu x(n) ,mỗi phần tử là một vecto dữ liệu gồm nhiều thành phần
Khối Q (Quantization ):
Lượng tử hóa giá trị: ánh xạ có tổn hao từ khoảng biểu diễn các giá trị liên tục biên
độ tín hiệu thành khoảng biểu diễn bởi các giá trị rời rạc – các mức giá trị hay từ mã
Nhằm mục đích chuyển đổi tập thông tin đầu vào là các số liên tục thành số nguyênvới dung lượng nhỏ hơn
Nếu tập thông tin đầu vào là các vecto thì gọi là lượng tử hóa vecto
Khối E ( encode ):
Mã hóa có độ dài cố định : mã ASCII ( American Standard Code for InformationInterchange), UPC ( Universal Product Code ) => quá trình giải mã đơn giản,không
có hiệu quá nén
Mã hóa có độ dài thay đổi : mã shannon, huffman, RLE…
Ví dụ mã RLE: trong tập tin xuất hiện các ký tự lặp lại, như chuỗi sau:AAACCAACCCCBBB Chuỗi này được mã hóa bằng cách thay thế chuỗi ký tự lặp
Trang 32lại bằng một thể hiện gồm biến đếm số ký tự lặp lại và ký tự lặp lại Chuỗi trên được
mã hóa thành: 3ACCAA4C3B
B Phép biến đổi DCT và DWT
1 Phép biến đổi DCT
1.1 Kỹ thuật mã hóa dựa trên phép biến đổi DCT
Phép biến đổi cosin rời rạc-DCT( discrete cosine transform) biến đổi thông tin ảnh từ miền thời giansang miền tần số Tính chất của nó tương tự như biến đổi Fourier, coi tín hiệu đầu vào là các tín hiệu ổn địnhbất biến theo thời gian
1.2 Định nghĩa và các tính chất của phép biến đổi DCT
Biến đổi DCT thuận và nghịch một chiều gồm N mẫu được định nghĩa như sau:
K i= {1/√2,i=0
1,i≠ 0
Cả DCT và IDCT đều là biến đổi trực giao, tách biệt và thực Tính chất phân tách ở đây nghĩa là biếnđổi nhiều chiều của nó có thể phân tách thành các biến đổi một chiều Tính chất trực giao ở đây nghĩa là nếucác ma trận của DCT và IDCT là không bất thường và thực thì biến đổi nghịch của chúng có thể đạt đượcbằng cách áp dụng toán tử hoán vị DCT coi dữ liệu đầu vào là tín hiệu ổn định ( bất biến)
Trong các chuẩn nén ảnh tĩnh và video, người ta thường sử dụng DCT và IDCT có kích thước 8 mẫu.Bức ảnh hoặc khung ảnh video kích thước MxN được chia thành các khối không chồng chéo lên nhau haichiều gọi là các ảnh con kích thước 8x8 rồi áp dụng biến đổi DCT hai chiều ở bộ mã hóa và áp dụng biến đổiIDCT ở bộ giải mã
Phép biến đổi Cosin rời rạc DCT 2 chiều:
Trang 331.3 Đăc điểm của phép biến đổi DCT
Đặc điểm của phép biến đổi DCT là tín hiệu hình ảnh trong miền không gian chuyển sang miền tần sốthì các thành phần DC và các thành phần AC mang hầu hết các thông tin chứa trong ảnh gốc Trong đó, DC
là thành phần quan trọng nhất mang độ chói trung bình của ảnh, thành phần AC chứa các thông tin về chi tiếtcủa ảnh Sau đó khi qua khối lượng tử hóa, các hệ số ít quan trọng sẽ bị loại bỏ bớt và chỉ giữ lại một số hệ
số đầu tiên gọi là hệ số DCT
2 Phép biến đổi DWT
2.1 Phép biến đổi DWT
Không giống như biến đổi Fourier chỉ thích hợp khi phân tích những tín hiệu ổn định, Wavelet là phépbiến đổi được sử dụng để phân tích các tín hiệu không ổn định-là những tín hiệu có đáp ứng tần số thay đổitheo thời gian
Phép biến đổi DWT như là áp dụng một băng lọc: thông cao và thông thấp Thiết kế các bộ lọc nàytương đương như kỹ thuật mã hóa băng con, nghĩa là: chỉ cần thiết kế các bộ lọc thông thấp, còn các bộ lọcthông cao chính là các bộ lọc thông thấp dịch đi một góc 180 độ Tuy nhiên khác với mã hóa băng con, các
bộ lọc trong DWT được thiết kế phải có đáp ứng phổ phẳng, trơn và trực giao
Hình 2.1: Minh họa dạng tổng quát của biến đổi DWT một chiều Theo đó, tín hiệu được cho đi qua các bộ lọc thông cao H và thông thấp G rồi được lấy mẫu xuống hệ số
2 tạo thành biến đổi DWT mức 1 Biến đổi ngược thì thực hiện ngược lại: lấy mẫu lên hệ số 2 rồi sử dụngcác bộ lọc khôi phục H’, G’( lý tưởng là H’ và G’ chính là H, G)
Từ biến đổi DWT một chiều có thể mở rộng định nghĩa biến đổi DWT hai chiều theo cách: sử dụng bộlọc riêng biệt, thực hiện biến đổi DWT một chiều dữ liệu vào( ảnh) theo hàng rồi thực hiện theo cột Theo
Trang 34cách này nếu thực hiện biến dổi DWT ở mức 1, sẽ tạo ra 4 nhóm hệ số biến đổi quá trình biến đổi DWT haichiều có thể minh họa như hình… trong đó 4 nhóm hệ số là LL, HL, LH, HH
Hình 2.2: minh họa DWT hai chiều cho ảnh
2.2 Hai thuật toán nén sử dụng DWT điển hình
So với phép biến đổi DCT sử dụng chuẩn nén JPEG ra đời năm 1992, nén ảnh dựa trên biến đổi DWT
đã có những cải tiến đáng kể Tuy nhiên cải tiến mang tính đột phá sử dụng DWT để nén ảnh bắt đầu là kỹthuật mã hóa-EZW(embedded zero-tree wavelet)
Thuật toán EZW dựa trên khả năng khai thác các thuộc tính đa phân giải của biến đổi wavelet để đưa ramột thuật toán ít phức tạp trong tính toán mà vẫn cho hiệu quả nén cao Những cải tiến và nâng cấp củaEZW về sau đã ra đời một số thuật toán tương tự như: SPIHT(set partitationing in hierarchical tree-cây phâncấp phân tập) và ZTE
Gần đây còn có thêm một thuật toán nữa được đề xuất đó là LS(lifting scheme) sử dụng để tạo các biếnđổi wavelet số nguyên Kỹ thuật này sử dụng các bộ lọc wavelet trực giao đem lại hiệu quả rất cao cho cácứng dụng nén ảnh có tổn hao
2.3 Biến đổi wavelet liên tục
Biến đổi wavelet liên tục(CWT) của một hàm f(t) được bắt đầu từ một hàm wavelet mẹ (t) có thể là bất
kỳ một hàm số thực hoặc phức liên tục nào thỏa mãn tính chất sau:
Tích phân suy rộng trên toàn bộ trục t của hàm ψ(t) là bằng 0, tức là:
Trang 35Sau khi hàm wavelet ψ(t) được lựa chọn, biến đổi wavelet liên tục của một hàm bình phương khả tích f(t)được tính theo công thức:
√¿a∨¿¿ ψ( t a) điều đó cho thấy rằng a là tham số tỷ lệ.
Khi a > 1 thì hàm wavelet sẽ được trải rộng còn khi 0 < a < 1 thì hàm sẽ được co lại Sau đây ta sẽ địnhnghĩa phép biến đổi ngược của biến dổi wavelet liên tục Gọi Ψ (ω) là biến đổi Fourier của ψ(t):
Trang 36biến đổi CWT chỉ tồn tại nếu C dương và hữu hạn Do đó C được gọi là điều kiện tồn tại của biến đổiwavelet Cùng với hai điều kiện đã nêu ở trên, đây là điều kiện thứ 3 mà một hàm cần phải thỏa mãn để cóthể được lựa chọn làm hàm wavelet Chúng ta có thể xem biến đổi CWT như là một ma trận hai chiều cáckết quả của phép tính tích vô hướng giữa hai hàm f(t) và ψ a , b(t ) Các hàng của ma trận tương ứng với cácgiá trị của a và các cột tương ứng với các giá trị của b do cách tính biến đổi wavelet theo tích vô hướng đãtrình bày ở trên:
2.4 Biến đổi wavelet rời rạc
Việc tính toán các hệ số wavelet tại tất cả các tỉ lệ là một công việc hết sức phức tạp Nếu tính toán nhưvậy sẽ tạo ra một lượng dữ liệu khổng lồ Để giảm thiểu công việc tính toán người ta chỉ chọn ra một tập nhỏcác giá trị tỉ lệ và các vị trí để tiến hành tính toán Hơn nữa nếu việc tính toán được tiến hành tại các tỉ lệ vàcác vị trí trên cơ sở lũy thừa cơ số 2 thì kết quả thu được sẽ hiệu quả và chính xác hơn rất nhiều Quá trìnhchọn các tỷ lệ và các vị trí để tính toán như trên tạo thành lưới nhị tố(dyadic) Một phân tích như trên hoàntoàn có thể thực hiện được nhờ biến đổi wavelet rời rạc-DWT Do đó, việc tính toán biến đổi DWT thực chất
là sự rời rạc hóa biến đổi wavelet liên tục-CWT Việc rời rạc hóa được thực hiện với sự lựa chọn các hệ số a
Việc tính toán hệ số của biến đổi wavelet có thể dễ dàng thực hiện bằng các băng lọc số nhiều nhịp đa kênh
Hình 2.3: Minh họa lưới nhị tố dyadic với các giá trị của m và n
Trang 372.5 Đặc điểm của phép biến đổi DWT
Biến đổi Wavelet dù chỉ làm việc với các tín hiệu một chiều nhưng sau khi biến đổi xong ta thu đượcmột hàm số hai biến hoặc một tập các cặp giá trị W a ,b minh họa các thành phần tần số khác nhau của tín
hiệu xảy ra tại thời điểm t Các giá trị W a i , b tạo thành một cột cho biết một thành phần tần số b có trong
những thời điểm t nào và các giá trị W a ,b j tạo thành hàng cho biết tại một thời điểm t của tín hiệu f(t) có các
thành phần tần số nào
C Phân tích vai trò của phép biến đổi Wavelet trong nén ảnh JPEG 2000
Vai trò của phép biến đổi Wavelet trong nén ảnh JPEG-2000 Đặc điểm của JPEG-2000 liên quan đếnWavelet
1.1 Vai trò của phép biến đổi Wavelet trong nén ảnh JPEG-2000
Tập trung năng lượng giúp nén dữ liệu : Qua phép biến đổi DWT, năng lượng của tín hiệu được tập trungvào các hệ số Phần lớn năng lượng (phần mang thông tin của tín hiệu) chỉ tập trung vào một vài hệ số nhấtđịnh Thông qua việc loại bỏ một vài hệ số không trọng yếu, khả năng nén dữ liệu được tăng cao
Không có hiệu ứng blocking: DWT có thể thực hiện trên toàn bộ ảnh hay chia khối theo vùng ROI (Region
of Interesting) Do đó không gây ra hiệu ứng blocking như ở DCT
Đa phân giải: DWT có chức năng đa phân giải Việc thực hiện DWT theo các tầng giúp tạo ra chức năng đaphân giải này Chính nhờ khả năng đa phân giải của DWT mới có tính năng đa phân giải của JPEG-2000
1.2 Đặc điểm của JPEG-2000 có liên quan đến biến đổi Wavelet
Tốc độ dòng bit thấp, hiệu quả tỷ số nén tăng 30% so với ảnh JPEG nén dựa trên DCT:
Dựa trên phép phân tích đa phân giải cho phép chia dải tần số của ảnh thành nhiều dải tần con và mã hóa ởmỗi dải tần một số lượng bit khác nhau phù hợp tăng hiệu quả tỷ số nén và đảm bảo chất lượng ảnh nén.Chất lượng ảnh JPEG-2000 tốt hơn JPEG vì tránh được nhược điểm gây lỗi khối của kỹ thuật chia các khốiđều 8x8 trong nén phương pháp ảnh JPEG
Nén với tỷ lệ bit thấp: tiêu chuẩn JPEG-2000 đưa ra khả năng nén với tốc độ bit thấp hơn so với tiêu chuẩnnén hiện tại (ví dụ dưới 0.25bpp cho ảnh xám chi tiết cao) Ý nghĩa của đặc điểm này là đạt được tốc độ bitthấp mà không làm méo ảnh
Nén tổn hao và nén không tổn hao:
JPEG-2000 có khả năng nén không tổn hao và nén tổn hao.Ví dụ ứng dụng sử dụng đặc tính nén không tổnhao: ảnh y tế, các ứng dụng mạng Nó cũng yêu cầu tiêu chuẩn có đặc tính tạo ra dòng bit nhúng và cho phépcải thiện chất lượng ảnh
Các loại bộ lọc mà DWT sử dụng: Daubechies(9,7): bộ lọc số thực, dùng cho nén có tổn hao.Daubechies(5,3): bộ lọc số nguyên, dùng cho nén không tổn hao
Trang 38Mã hóa vùng quan tâm ROI: thông thường trong một ảnh người ta chỉ quan tâm đến một số vùng của ảnh.Đặc điểm này cho phép người sử dụng xác định chính xác vùng quan tâm trong ảnh để mã hóa và truyền đivới chất lượng tốt hơn và ít méo hơn so với các vùng còn lại Phương pháp này có 2 phương pháp thực hiện
là MAXSHIFT và Scale
Xử lý và truy nhập ngẫu nhiên: đặc điểm này cho phép người sử dụng xác định vùng quan tâm của ảnh đểtruy nhập ngẫu nhiên và/hoặc giải nén ít méo hơn so với các vùng ảnh còn lại Xử lý dòng mã ngẫu nhiênnày cũng cho phép ta quay ảnh, dịch ảnh, lọc ảnh, khai triển các đặc điểm và tỷ lệ ảnh
Giảm khả năng lỗi bit: giảm khả năng lỗi bit trong khi thiết kế dòng mã hóa Một trong những ứng dụng làtruyền kênh viễn thông không dây Tỷ lệ của dòng mã hóa quan trọng hơn các dòng mã khác trong xác địnhchất lượng ảnh giải mã Dòng bit thiết kế đúng quy tắc có thể trợ giúp hệ thống chỉnh sửa lỗi đến sau tronglỗi giải mã
Kiến trúc mở: đặc điểm này cho phép kiến trúc mở để tối ưu hệ thống cho các ứng dụng và loại ảnh khácnhau Với đặc tính này, giải mã chỉ thực hiện bộ công cụ lõi và phân tích để hiểu dòng mã Nếu cần thiết,không xác định được công cụ có thể yêu cầu từ bộ giải mã để bên nguồn gửi sang
Miêu tả nội dung: ảnh lưu giữ, index và tìm kiếm đặc điểm quan trọng trong xử lý ảnh Miêu tả nội dung củaảnh là một thành phần của hệ thống nén ảnh (ví dụ thông tin dữ liệu phụ metadata)
Bảo mật ảnh: bảo vệ ảnh số có nhận được nhờ watermarking, label, tem và mã mật hóa (Encryption) Nhãnđược thực hiện trong SPIFF và phải dễ truyền đi truyền lại tới file ảnh JPEG-2000
Nén hai mức và nhiều mức: đưa ra tiêu chuẩn mã hóa có khả năng mã hóa cả ảnh hai mức, nhiều mức Nếuthực hiện, tiêu chuẩn này cố gắng đạt được với nguồn hệ thống tương tự nhau Hệ thống này phải nén và giảinén với dải thông thay đổi (ví dụ 1 bit tới 16 bit) cho mỗi thành phần màu Ví dụ sử dụng đặc tính này là:ảnh y học với một lớp chú thích, ảnh đồ họa và ảnh máy tính tạo ra với nhị phân và gần vùng nhị phân, mặtphẳng alpha và trong suốt
Đề 4 : Phương pháp mã hóa các dải tần con (Subban coding –SBC) và
áp dụng
I Nguyên tắc chung của mã hóa SBC:
1 Nguyên tắc chung:
Có nhiều nguyên nhân và hướng tiếp cận dẫn đến việc sử dụng phương pháp mã hoá dải tần
(Subband coding- SBC) Hiện nay có nhiều phương pháp mã hoá nén (lượng tử hoá và mã hoá) tín hiệu
âm thanh, hình ảnh, dựa trên phân bố của tín hiệu theo một dạng nào đấy Chẳng hạn như đối với tín hiệu có biên độ phân cụm, người ta hay sử dụng lượng tử hoá vector; đối với tín hiệu có biên độ chênh lệch nhau không nhiều, người ta dùng lượng tử hoá vi sai DPCM Tuy nhiên dạng phân bố tín hiệu là hoàn toàn ngẫu nhiên, do đó khó có thể chọn được một phương pháp mã hoá nén tối ưu cho toàn bộ tín
Trang 39hiệu Do đó, người ta đưa ra ý tưởng chia tín hiệu ra làm nhiều phần nhỏ, mã hoá mỗi phần theo một cách khác nhau để’ đạt được hiệu quả nén cao nhất.
Mặt khác, đối với âm thanh, thực nghiệm cho thấy tai người có một số hiệu ứng đối với âm thanh như hiệu ứng che tần số, che thời gian, Do đó có thể’ tiết kiệm dữ liệu bằng cách loại đi các thành phần tín hiệu bị che, chỉ mã hoá những phần nghe thấy được Hiệu ứng che ở tai người là khác nhau trêntừng thành phần tần số, vì thế ta cần chia tín hiệu âm thanh thành các thành phần tần số con (dải băng con) rồi xác định các thành phần bị che và không bị che của tín hiệu trong từng dải tần số để xử lý
Đó là tư tưởng cơ bản của mã hoá SBC Mã hoá SBC chia tín hiệu gốc thành các thành phần tín hiệu thuộc các dải tần (sub-band) để xử lý và mã hoá riêng biệt từng thành phần sau đó gửi đi Việc nhận tín hiệu, giải mã và khôi phục tín hiệu ban đầu được thực hiện theo trình tự ngược lại Các dải băng con không chồng chập lên nhau (mà thực chất là liền kề nhau), do đó tín hiệu thu được ở các dải tần được giải tương quan, nhờ đó có thể mã hoá riêng biệt mà vẫn khôi phục được thành tín hiệu ban đầu
Mã hoá SBC được ứng dụng rộng rãi trong nén dữ liệu audio, video, đặc biệt là trong chuẩn nén dữ liệu MPEG
1.1 Nguyên tắc chung của mã hóa SBC (1D discrete signal)
Two-band filter band
Biểu diễn mô hình lọc trên miền số phức:
X’(z) = 1/2Go(z)[Ho(z)X(z) + Ho(-z)X(-z)] + 1/2G1(z)[H1(z)X(z) + H1(-z)X(-z)]
= ½[Go(z)Ho(z) + G1(z)H1(z)]X(z) + ½[Go(z)Ho(-z) + G1(z)H1(-z)]X(-z).
Đầu vào là tín hiệu cần mã hóa X[n] được phân tích thành 2 thành phần đi qua bộ lọc thông thấp (H0) và thông cao (H1) Tại đây tần số của tín hiệu được giảm đi 2 lần (down-sampling) khi đó chu kỳ(T) của tín hiệu sẽ tang 2 lần => số mẫu sẽ giảm đi ta thu được các subband
Sauk hi thu được các subband thực hiện các phương pháp mã hóa trên dải tần con và phục hồi về tín hiệu ban đầu (coding)
Hiệu năng của giải pháp nén được đánh giá qua:
Tỉ số nén: phụ thuộc vào cả quá trình subband và coding
Độ tổn hao phụ thuộc vào lượng tử hóa Q (bộ lọc tốt có hệ số lẻ)
Trang 401.2 Kỹ thuật lọc thông thấp thông cao:
Thường được dung trong mã hóa nén ảnh, video, âm thanh thoại
Việc chia bao nhiêu dải tần tùy thuộc vào ứng dụng và nhu cầu
1.3 Kỹ thuật lọc thông dải:
Thường được dung trong mã hóa nén âm thanh mp3
Hệ thống phân tách M dải tần con dung M bộ lọc thông dải đồng thời, tần số lấy mẫu giảm M lần
2 Quy trình chung của phương pháp:
- Lọc phân tích: tín hiệu được đưa qua các bộ lọc nhằm chia tín hiệu thành các thành phần tín hiệu ứng