Thông thường, lọc trong miền không gian có hiệu suất tính toán cao hơn lọc miền tần số khi các bộ lọc nhỏ. Định nghĩa nhỏ khá phức tạp, nó phụ thuộc vào các hệ số lọc, kích thước của bộ đệm, các dữ liệu phức hợp được xử lí như thế nào. Tuy nhiên, khi đem ra so sánh, ta thấy bộ lọc sử dụng thuật toán FFT có thể nhanh hơn là một bộ lọc trong miền không gian. Do đó, người ta nhận thấy nên chuyển lọc không gian thành kĩ thuật lọc miền tần số tương đương chứa ưu điểm của cả hai phương pháp này.
1.2.5 Các kĩ thuật làm nổi đường biên ảnh
Làm nổi biên ảnh là vấn đề quan trọng trong phân tích ảnh. Trước hết, ta cần tìm hiểu về khái niệm biên ảnh. Một điểm ảnh được coi là nằm trên đường biên nếu tại vị trí điểm ảnh đó có sự thay đổi đột ngột của mức xám. Như vậy, đường biên là đường nối các điểm ảnh nằm trong khu vực ảnh có thay đổi đột ngột về độ chói, đường biên thường ngăn cách hai vùng ảnh có các mức xám gần như không đổi.
Hình 1.8 Đường biên của ảnh
Trong trường hợp lí tưởng, độ chói giữa hai vùng ảnh thay đổi đột ngột hoặc tăng dần đều. Tuy nhiên trên thực tế, mức xám giữa các vùng ảnh thay đổi tương đối ngẫu nhiên. Chính vì vậy quá trình phát hiện đường biên thường không đơn giản và kết quả thường không hoàn toàn chính xác.
1.3 Kết luận chương 1
Kết thúc chương 1, một số kĩ thuật nâng cao chất lượng ảnh như biến đổi ảnh xám (biến đổi âm bản, biến đổi hàm log, hàm mũ), lọc nhiễu (lọc thông thấp, thông cao, lọc phi tuyến, tuyến tính, lọc trung vị,…), làm nổi biên ảnh đã được đề cập đến.
Trên thực tế, nâng cao chất lượng ảnh còn rất nhiều vấn đề đáng chú ý khác như các kĩ thuật làm trơn ảnh, tách nhiễu, khử nhiễu, làm trơn biên, khuếch đại ảnh, lọc đồng hình, lọc ngoài, lọc giả trung vị...
CHƯƠNG 2
CÁC KĨ THUẬT NÉN ẢNH
Cùng với sự phát triển mạnh mẽ của máy tính và sự ra đời của Internet thì việc tìm một phương pháp nén ảnh để giảm bớt không gian lưu trữ thông tin và truyền thông tin trên mạng nhanh chóng đang là một yêu cầu cấp thiết. Trong những năm gần đây, có rất nhiều các phương pháp đã và đang được nghiên cứu rộng rãi để thực hiện nén ảnh. Tất cả đều với một mục đích chung là làm thế nào để biểu diễn một ảnh với ít bit nhất để có thể tối thiểu hoá dung lượng kênh truyền và không gian lưu trữ trong khi vẫn giữ được tính trung thực của ảnh. Điều này tương đương với việc biểu diễn ảnh có độ tin cậy cao nhất với tốc độ bit nhỏ nhất.
2.1 Tổng quan về nén ảnh
2.1.1 Giới thiệu chung về nén ảnh số
Thông thường, ảnh đen trắng chưa nén được biểu diễn bằng 8 bit/pixel và ảnh màu là 24 bit/pixel. Các kỹ thuật nén hiện nay cho phép dung lượng ảnh được nén giảm 30 đến 50 lần so với ảnh gốc mà ảnh vẫn giữ được độ trung thực cao. Độ trung thực của ảnh được đánh giá dựa trên tiêu chí như lỗi trung bình quân phương (MSE) hoặc tỷ số tín hiệu trên nhiễu (SNR) giữa ảnh gốc và ảnh nén.
Những phương pháp thường (như Compress trong hệ UNIX) không đem lại hiệu quả: tỷ lệ nén dữ liệu cho hình ảnh không quá 2:1. Nhưng với những phương pháp chuyên dụng có thể đạt tới 30:1. Hai phương pháp nén hình ảnh nổi tiếng nhất hiện nay là của nhóm chuyên gia về hình ảnh động (Motion Picture Experts Group - MPEG) và liên hiệp các nhóm chuyên gia về hình ảnh (Joint Photo Graphic Experts Group - JPEG). Những phương pháp này đã trở thành chuẩn công nghiệp. Những nhược điểm cơ bản của các phương pháp này là sự mất mát thông tin và hiệu quả nén không cao đối với những hình ảnh phức tạp.
Tất cả các phương pháp nén ảnh đều dựa trên một nguyên lý đơn giản: trong dữ liệu có nhiều phần tử thừa và nén ảnh dựa trên cơ sở tìm ra những phần tử đó và loại bỏ chúng.
Các phương pháp thông dụng hiện nay như biến đổi cosin rời rạc, nén ảnh Wavelet (WIC) phải dùng đến biến đổi toán học và xấp xỉ các mối tương quan giữa các pixel. Với các phương pháp này ta có thể nén ảnh tới tỷ lệ 20:1 – 30:1. Nhưng những ảnh này (vì bị mất thông tin) chỉ là những ảnh gần đúng với ảnh ban đầu, ngoài ra còn có thể xuất hiện biến dạng hình ảnh.
2.1.2 Sơ đồ khối hệ thống nén ảnh điển hình
Hình 2.1 Sơ đồ khối một hệ thống nén ảnh điển hình
- Khối biến đổi: Thường dùng phép biến đổi cosin rời rạc để tập trung năng lượng tín hiệu vào một số lượng nhỏ các hệ số khai triển để thực hiện phép nén hiệu quả hơn là dùng tín hiệu nguyên thủy.
- Khối lượng tử: Tạo ra một lượng kí hiệu giới hạn cho ảnh nén với hai kĩ thuật: lượng tử vô hướng (thực hiện lượng tử hóa cho từng phần dữ liệu) và lượng tử vector (thực hiện lượng tử hóa một lần một khối dữ liệu). Quá trình này không thuận nghịch. - Khối mã hóa: Gán một từ mã, một dòng bit nhị phân cho mỗi kí hiệu, số nguyên gần nhất.
2.1.3 Phân loại các kỹ thuật nén
Có nhiều cách phân loại các phương pháp nén khác nhau. Cách thứ nhất dựa vào nguyên lý nén. Cách này phân các phương pháp nén thành hai họ lớn:
- Nén ảnh không mất thông tin (nén không tổn hao): Với phương pháp này sau khi giải nén ta khôi phục được chính xác ảnh gốc. Các phương pháp nén này bao gồm mã hoá Huffman, mã hoá thuật toán…
- Nén ảnh có mất thông tin (nén có tổn hao): Ảnh giải nén có một sự sai khác nhỏ so với ảnh gốc. Các phương pháp này bao gồm:
Lượng tử hoá vô hướng: PCM và DPCM.
Lượng tử hoá vector.
Mã hoá biến đổi: biến đổi cosin rời rạc (DCT), biến đổi Fourier nhanh (FFT).
Mã hoá băng con.
Ngoải ra, ta có thể phân loại dựa vào cách thức thực hiện nén. Theo cách này, người ta cũng phân thành hai họ: Phương pháp nén dữ liệu không gian và phương pháp sử dụng mã hóa biến đổi. Hoặc cũng có thể phân loại dựa vào lý thuyết mã hóa. Cách này cũng phân các phương pháp nén thành hai họ: Các phương pháp nén thế hệ thứ nhất (gồm các phương pháp mà mức độ tính toán là đơn giản, thí dụ việc lấy mẫu, gán từ mã,...) và các phương pháp nén thế hệ thứ hai (dựa vào độ bão hòa của tỷ lệ nén).
2.1.4 Các nguyên tắc khi nén ảnh
Một tính chất chung nhất của tất cả các ảnh số đó là tương quan giữa các pixel ở cạnh nhau lớn, điều này dẫn đến dư thừa thông tin để biểu diễn ảnh. Dư thừa thông tin sẽ làm cho việc mã hoá không tối ưu. Do đó công việc cần làm để nén ảnh là phải tìm được các biểu diễn ảnh với tương quan nhỏ nhất để giảm thiểu độ dư thừa thông tin của ảnh. Thực tế, có hai kiểu dư thừa thông tin được phân loại như sau:
- Dư thừa trong miền không gian: tương quan giữa các giá trị pixel của ảnh, điều này có nghĩa rằng các pixel lân cận của ảnh có giá trị gần giống nhau (trừ những pixel ở giáp đường biên ảnh).
- Dư thừa trong miền tần số: Tương quan giữa các mặt phẳng màu hoặc dải phổ khác nhau.
Trọng tâm của các nghiên cứu về nén ảnh là tìm cách giảm số bit cần để biểu diễn ảnh bằng việc loại bỏ dư thừa trong miền không gian và miền tần số càng nhiều càng tốt.
2.1.5 Dư thừa số liệu
Nén số liệu là quá trình giảm lượng số liệu cần thiết để biểu diễn cùng một lượng thông tin cho trước. Cần phải phân biệt giữa số liệu và thông tin. Thực tế, số liệu và thông tin không đồng nghĩa với nhau. Số liệu (tín hiệu) chỉ là phương tiện dùng để truyền tải thông tin. Cùng một lượng thông tin cho trước có thể biểu diễn bằng các lượng số liệu khác nhau.
2.1.5.1 Dư thừa mã (Coding Redundancy)
Nếu các mức của tín hiệu video được mã hóa bằng các symbol nhiều hơn cần thiết (tuyệt đối) thì kết quả là có độ dư thừa mã. Để giảm độ dư thừa mã, trong nén ảnh thường sử dụng các mã VLC như mã Huffman, mã RLC... Lượng thông tin về hình ảnh có xác suất thấp hơn.
Nguyên lý cơ bản của việc nén ảnh này là các từ mã có độ dài biến đổi, cho phép gán các từ mã ngắn nhất cho các mức xám có tần suất xuất hiện nhiều nhất trong ảnh. Câu hỏi được đặt ra là: Cần bao nhiêu bit để thay thế cho các mức xám trong một ảnh. Đó là, liệu có tồn tại dữ liệu nhỏ đủ để mã hóa đầy đủ một ảnh mà không gây ra tổn thất?
Ý tưởng này là khởi đầu cho việc thông tin có thể được xử lí giống như cách xử lí xác suất. Với giả định này, một sự kiện ngẫu nhiên E với xác suất P(E) có chứa lượng thông tin: I(E) = log ) ( 1 E P = – log P(E) (2.1) [2]
Nếu P(E) = 1 (sự kiện luôn luôn đúng) thì I(E) = 0 và không có thông tin nào trong nó. Vì không có sự không chắc chắn nào liên quan tới sự kiện nên sẽ không có thông tin được truyền tải thông báo rằng sự kiện đó đã xảy ra. Cho một tập hợp các sự kiện ngẫu nhiên gốc rời rạc {a1, a2, …, aj} có xác suất tương ứng là {P(a1), P(a2), …, P(aj)}, lượng thông tin trung bình trên mỗi đầu ra (hay còn gọi là entropy) là:
H = – ∑ = J j j j P a a P 1 ) ( log ) ( (2.2) [2]
Nếu một ảnh nhận được là một mẫu “nguồn mức xám”, chúng ta có thể mô hình hóa các xác suất kí hiệu của nguồn bằng cách sử dụng một ma trận mức xám của ảnh này và tính toán giá trị xấp xỉ (gọi là xấp xỉ thứ tự ưu tiên: first-order estimate) của entropy gốc: ~ H = – ∑ = L k r k r k r P r P 1 ) ( log ) ( (2.3) [2]
Giá trị xấp xỉ được tính toán bởi hàm entropy (với giả thiết mỗi mức xám được mã hóa độc lập) có biên thấp hơn nhờ việc loại bỏ dư thừa mã.
2.1.5.2 Dư thừa trong pixel ( Interpixel Redudancy)
Vì giá trị của một pixel bất kì nào đó cũng có thể được dự báo từ giá trị của các lân cận của nó, nên thông tin từ các pixel riêng là tương đối nhỏ. Sự tham gia của một pixel riêng vào một ảnh là dư thừa. Nhiều tên (bao gồm: dư thừa không gian, dư thừa hình học, dư thừa trong ảnh) được đặt ra để phân biệt sự phụ thuộc này của các pixel. Ta dùng độ dư thừa trong pixel để chỉ tất cả các tên trên. Để giảm độ dư thừa trong pixel của một ảnh, dãy pixel hai chiều dùng cho việc nhìn và nội suy, phải được biến đổi thành một dạng có hiệu quả hơn.
Người ta đưa ra một phương pháp gọi là mã hóa dự đoán không tổn thất để loại bỏ các dư thừa trong pixel của các pixel kề nhau bằng cách chỉ đưa ra và mã hóa thông tin mới trong mỗi pixel. “Thông tin mới” của 1 pixel là sự khác biệt giữa giá trị thực tế và giá trị dự đoán của pixel đó.
Hình 2.2 Mô hình mã hóa dự đoán không tổn thất bao gồm bộ mã hóa và bộ giải mã 2.1.5.3 Dư thừa tâm sinh lý (Psychovisual Redudancy)
Bằng trực quan ta thấy, sự thu nhận cường độ ánh sáng thay đổi chỉ giới hạn trong một phạm vi nhất định. Hiện tượng này xuất phát từ sự thật là mắt không đáp ứng với cùng độ nhạy của tất cả các thông tin nhìn thấy. Thông tin đơn giản có tầm quan trọng ít hơn thông tin khác trong vùng nhìn thấy. Thông tin này được gọi là độ dư thừa tâm sinh lý. Nó có thể được loại bỏ mà không ảnh hưởng đáng kể đến chất lượng
thu nhận ảnh. Khác với độ dư thừa mã và dư thừa trong pixel, độ dư thừa tâm sinh lý có liên quan đến thông tin theo định lượng. Quá trình loại bỏ nó là đáng kể bởi vì thông tin của nó không cần thiết cho quá trình xử lí thị giác chuẩn. Dư thừa tâm sinh lí có quan hệ tới việc lượng tử hóa. Điều đó có nghĩa là ánh xạ một khoảng rộng các giá trị đầu vào lên một số hữu hạn các giá trị đầu ra. Khi nó là toán tử không đảo ngược (mất thông tin) cho kết quả nén số liệu có tổn hao.
2.1.6 Giới thiệu một số kỹ thuật sử dụng trong nén ảnh
2.1.6.1 Mã hoá dựa trên phép biến đổi DCT
Nguyên tắc chính của phương pháp mã hoá này là biến đổi tập các giá trị pixel của ảnh trong miền không gian sang một tập các giá trị khác trong miền tần số sao cho các hệ số trong tập giá trị mới này có tương quan giữa các điểm ảnh gần nhau nhỏ hơn.
Hình 2.3 Sơ đồ mã hóa và giải mã dùng biến đổi DCT [4] a. Biến đổi DCT thuận và nghịch
Vì ảnh gốc có kích thước rất lớn cho nên trước khi đưa vào biến đổi DCT, ảnh được phân chia thành các khối vuông, mỗi khối này thường có kích thước 8 x 8 pixel và biểu diễn các mức xám của 64 điểm ảnh, các mức xám này là các số nguyên dương có giá trị từ 0 đến 255. Việc phân khối này sẽ làm giảm được một phần thời gian tính toán các hệ số chung, mặt khác biến đổi cosin đối với các khối nhỏ sẽ làm tăng độ chính xác khi tính toán với dấu phẩy tĩnh, giảm thiểu sai số do làm tròn sinh ra.
Biến đổi DCT là một công đoạn chính trong các phương pháp nén sử dụng biến đổi. Hai công thức ở đây minh hoạ cho 2 phép biến đổi DCT thuận nghịch đối với mỗi
khối ảnh có kích thước 8 x 8. Giá trị x(n1, n2) biểu diễn các mức xám của ảnh trong miền không gian, X(k1, k2) là các hệ số sau biến đổi DCT trong miền tần số.
(2.4) [4]
(2.5) [4]
với và
Mỗi khối 64 điểm ảnh sau biến đổi DCT thuận sẽ nhận được 64 hệ số thực DCT (hình 2.4). Mỗi hệ số này có chứa một trong 64 thành phần tần số không gian hai chiều. Hệ số với tần số bằng không theo cả hai hướng (tương ứng với k1 và k2 bằng 0) được gọi là hệ số một chiều DC, hệ số này chính là giá trị trung bình của 64 điểm ảnh trong khối. 63 hệ số còn lại gọi là các hệ số xoay chiều AC. Hệ số một chiều DC tập trung phần lớn năng lượng của ảnh.
Chú ý rằng bản thân biến đổi DCT không làm mất thông tin vì DCT là một biến đổi tuyến tính chuyển các giá trị của điểm ảnh từ miền không gian thành các hệ số trong miền tần số. Nếu biến đổi DCT thuận và nghịch được tính toán với độ chính xác tuyệt đối và nếu các hệ số DCT không phải qua bước lượng tử và mã hoá thì ảnh thu được sau biến đổi DCT ngược sẽ giống hệt ảnh gốc.
b. Lượng tử và giải lượng tử
Sau khi thực hiện biến đối DCT, 64 hệ số sẽ được lượng tử hoá dựa trên một bảng lượng tử gồm 64 phần tử Q(u,v) với 0 ≤ u, v ≤ 7. Bảng này được định nghĩa bởi từng ứng dụng cụ thể. Các phần tử trong bảng lượng tử có giá trị từ 1 đến 255 được gọi là các bước nhảy cho các hệ số DCT. Quá trình lượng tử được coi như là việc chia các hệ số DCT cho bước nhảy lượng tử tương ứng, kết quả này sau đó sẽ được làm tròn xuống số nguyên gần nhất. Công thức (2.6) thể hiện việc lượng tử với F(u,v) là các hệ số DCT, FQ(u,v) là các hệ số sau lượng tử, các hệ số này sẽ được đưa vào bộ mã hoá entropy. FQ (u,v) = IntergerRound ( , ) ) , ( v u Q v u F (2.6) [4]
Mục đích của việc lượng tử hoá là giảm số lượng bit cần để lưu trữ các hệ số biến đổi bằng việc giảm độ chính xác của các hệ số này cho nên lượng tử là quá trình xử lí có mất thông tin.
Quá trình giải lượng tử ở phía bộ giải mã được thực hiên ngược lại. Các hệ số sau bộ giải mã entropy sẽ nhân với các bước nhảy trong bảng lượng tử (bảng lượng tử