Người đặt nền móng cho kỹ thuật nén ảnh fractal là Michael Barnsley,cũng là một nhà nghiên cứu về các đối tượng fractal, đã đề ra ý tưởng rằng nếu từcông thức ta có thể tạo ra hình ảnh t
Trang 1Mục lục
Phụ lục……… 24
1
Lời giới thiệu 2
1 Lý thuyết hình học Fractal 3
2 Phương pháp nén ảnh Fractal 4
2.1.Iterated Function System (IFS) 4
2.2.Tính chất không phụ thuộc vào độ phân giải của quá trình xây dựng ảnh 6
2.3.Nguyên lý quá trình nén ảnh 7
2.4.Nén ảnh với Partitioned Iterated Function Systems 8
2.5.Ánh xạ và cách tìm ánh xạ 10
2.6.Hướng mở rộng nén ảnh màu 13
3.Kỹ thuật nén ảnh Fractal với thuật toán di truyền 14
3.1 Sơ lược về thuật toán di truyền 14
3.2 Sử dụng thuật toán di truyền trong kỹ thuật nén ảnh fractal 15
3.2.1 Áp dụng thuật toán di truyền 15
3.2.2 Vấn đề tổ chức dữ liệu khi kết hợp với kỹ thuật QuadTree 15
3.3 Toán tử lai ghép 18
3.4 Toán tử đột biến 19
3.5 Cụ thể hoá giải thuật thành chương trình 19
Tổng kết 23
Phụ Lục 24
* Show Histogram 31
Phụ lục……… 24
Lớp K12T3 - ĐH Công nghệ - ĐHQGHN
1
Trang 2Lời giới thiệu
Dữ liệu hình ảnh là một dạng dữ liệu quan trọng, được lưu trữ, chuyển tải và sửdụng rất nhiều trong ngành công nghệ thông tin hiện đại Cách mô tả hình ảnh để xử
lý bằng máy tính hiện nay là mô tả bằng ma trận điểm: ảnh (hình chữ nhật) được chiathành nhiều ô bằng một lưới, mỗi ô được đại diện bằng một điểm gọi là điểm ảnh(pixel: picture element) và các điểm ảnh này được bố trí thành một lưới hình chữnhật có thứ tự giống như các ô tương ứng tạo thành hình ảnh Tập hợp các điểm ảnh
đó có thể mô tả được hình ảnh ban đầu là do độ phân giải của mắt người là hữu hạn.Thế nhưng cách lưu trữ này rất tốn kém: một bức ảnh thông thường có thể chứa hàngtriệu điểm ảnh (ví dụ như một bức ảnh ở độ phân giải 1600x1200 - rất thường gặp ởcác máy ảnh số cao cấp - có 1.920.000 điểm ảnh) nên chúng có thể có kích thước đôikhi đến hàng chục Megabytes Do đó cần phải sử dụng các phương pháp nén ảnh đểgiảm không gian lưu trữ và giảm thời gian, chi phí khi chuyển tải
Các kỹ thuật nén ảnh nói riêng và rất nhiều kỹ thuật nén dữ liệu nói chung đềudựa trên cùng một tư tưởng, đó là giảm kích thước bằng cách chỉ lưu trữ một lần các
đối tượng dữ liệu “giống nhau” Hai khối dữ liệu khác nhau đối với máy tính có thể
là giống nhau đối với con người Vì vậy ta có các lớp kỹ thuật nén mất dữ liệu
(Lossy Compression) Lớp giải thuật này được gọi là mất dữ liệu là do nó chấp nhận
mất một số thông tin ít có giá trị với con người trong quá trình nén để tăng tỉ số nén
Ví dụ tiêu biểu là JPEG (Joint Photographic Experts Group), nó có khả năng nén ảnhnhanh chóng và hiệu quả: trong các trường hợp thường gặp thì tỉ số nén tối đa mà kỹthuật JPEG đạt được mà chất lượng ảnh còn chấp nhận được là khoảng 25:1 Đó làmột tỉ số nén rất cao, do vậy kỹ thuật nén JPEG được chấp nhận rộng rãi và được coinhư là một tiêu chuẩn đối với các phương pháp nén ảnh
Một phương pháp khác thuộc lớp các giải thuật nén mất dữ liệu đang được pháttriển là phương pháp nén ảnh fractal Cơ sở của phương pháp này là hình học fractal,một bộ môn của toán học mới được phát triển khoản hơn 30 năm gần đây nhờ có sựgiúp sức của các máy tính mạnh
Lớp K12T3 - ĐH Công nghệ - ĐHQGHN
2
Trang 31 Lý thuyết hình học Fractal
Fractal là thuật ngữ do Benoît Mandelbrot, một nhà nghiên cứu của công tyIBM người Mỹ gốc Ba Lan (thời trẻ, Mandelbrot sống và học ở Pháp), đưa ra để chỉcác đối tượng có sự giống nhau giữa các phần của chính nó ở các tỉ lệ khác nhau.Tính chất này được gọi là tính tự-tương tự (self-similarity) Môn hình học nghiêncứu các vật thể fractal dựa trên cơ sở khai triển các công thức đệ quy, mà các côngthức đệ quy phi tuyến (thực tế là một cách thể hiện khác của phương trình vi phânphi tuyến) là không thể giải được bằng các phương pháp toán học tất định(deterministic) Việc giải các phương trình này chỉ có thể tiến hành bằng máy tính,bằng cách tính từng điểm một, do vậy việc nghiên cứu các vật thể fractal chỉ pháttriển khi xuất hiện các máy tính có khả năng tính toán đủ mạnh (trước đó, có nhàkhoa học đã phải tính bằng tay và vẽ trên giấy các điểm của một quá trình hỗn loạn!).Hình học fractal có khả năng mô phỏng tự nhiên mạnh mẽ và các đối tượng nghiêncứu của nó trải rộng trong rất nhiều ngành khác nhau do cơ sở của nó là phương trình
vi phân phi tuyến mà mọi quá trình thực trong tự nhiên đều chịu sự chi phối của cácquy luật phi tuyến
Các vật thể fractal (đơn giản và nhân tạo) có một tính chất đặc biệt, là mặc dùchúng có hình dạng cực kỳ phức tạp mà điển hình là tập Mandelbrot, hay lá câydương xỉ, nhưng lại có thể được tạo ra bằng cách áp dụng nhiều lần một công thứcđơn giản Người đặt nền móng cho kỹ thuật nén ảnh fractal là Michael Barnsley,cũng là một nhà nghiên cứu về các đối tượng fractal, đã đề ra ý tưởng rằng nếu từcông thức ta có thể tạo ra hình ảnh thì ta có thể làm ngược lại, tìm công thức từ mộthình ảnh cho trước và lưu trữ công thức này thay vì lưu trữ ma trận điểm của ảnh,sau đó ta có thể áp dụng công thức tìm được để tái tạo lại hình ảnh
Tất nhiên các vật thể trong tự nhiên là không thể mô tả được bằng các côngthức đơn giản, do vậy cần phải tìm được một dạng hàm có khả năng mô tả được hìnhảnh Barsnley đưa ra được một dạng hàm trong không gian hai chiều có khả năngnày, và việc lưu trữ ảnh trở thành lưu trữ một tập hợp các hàm biến hình trong khônggian hai chiều, gọi là Iterated Function System: hệ thống các hàm lặp, IFS IFS làkhái niệm trung tâm của kỹ thuật nén ảnh fractal
Lớp K12T3 - ĐH Công nghệ - ĐHQGHN
3
Trang 42 Phương pháp nén ảnh Fractal
2.1.Iterated Function System (IFS)
Một ánh xạ f(x) là ánh xạ co nếu như khoảng cách của hai ảnh được tạo bởi ánh
xạ đó nhỏ hơn khoảng cách giữa hai nguyên ảnh: |f(x), f(y)| < |x, y| Ví dụ ánh xạ f(x)
= x/2 là co đối với trường số thực Các ánh xạ co có tính chất quan trọng là nếu ta áp
dụng lặp đi lặp lại một ánh xạ co đối với một điểm x0 bất kỳ như sau:
x 1 = f(x 0 )
x 2 = f(x 1 ) = f(f(x 0 ))
…
x n = f(x n-1 )
thì lim(x n) khi n tiến ra vô cùng sẽ là một điểm cố định (còn gọi là điểm hút, attractor
của ánh xạ) không phụ thuộc vào x 0 mà chỉ phụ thuộc vào ánh xạ, trong trường hợp
ví dụ trên thì đó là 0 Các phương pháp lặp để giải phương trình và hệ phương trìnhnhư phương pháp Newton, đã lợi dụng tính chất này của ánh xạ co (và hệ quả là kếtquả của các phương pháp lặp cũng có tính chất fractal) Định nghĩa vừa nêu chỉ nóiđến các ánh xạ trong không gian một chiều nhưng tính chất co có thể có ở tất cả cácloại ánh xạ trong không gian nhiều chiều hơn và khái niệm khoảng cách có thể làmột hàm bất kỳ nào đó Tính chất co là tính chất quyết định của IFS
Một IFS là một tập hợp (hữu hạn) các ánh xạ co w 1 w n trên mặt phẳng R 2 IFS
tác động lên một khu vực hữu hạn của mặt phẳng và mỗi ánh xạ w i thu nhỏ một khuvực của mặt phẳng rồi chép lên một vùng khác của mặt phẳng Như vậy thông quaIFS, một hình ảnh được biến đổi thành một hình ảnh khác Nếu sau khi áp dụng lầnlượt các ánh xạ của IFS lên một hình ảnh I0 bất kỳ ta lại áp dụng tiếp IFS lên chínhhình ảnh kết quả I1 của nó và lặp đi lặp lại quá trình này, ta sẽ có dãy các hình ảnh I2,I3, I4 … mà các ảnh kết quả càng ngày càng giống nhau hơn sau mỗi lần lặp do tínhchất co của các ánh xạ trong IFS Và do các ánh xạ thu nhỏ ảnh lại rồi chép ảnh thunhỏ lên một vùng của ảnh nên sau mỗi lần áp dụng IFS, các chi tiết nhỏ hơn lại xuấthiện vì mỗi lần lặp, IFS tạo ra các chi tiết bị thu ngày một nhỏ, các chi tiết này tạonên hình ảnh và do đó sẽ còn tiếp tục bị thu nhỏ trong các lần lặp tiếp theo (Hiệntượng này cũng tương tự như việc các vòng hồi tiếp trong các thiết bị điện tử biếnđổi đầu vào của chúng theo tín hiệu ra để ổn định thông số mạch, và là nguyên nhâncủa tính chất “resolution independence” của ảnh giải nén theo kỹ thuật fractal sẽ
Lớp K12T3 - ĐH Công nghệ - ĐHQGHN
4
Trang 5được nói tới trong mục tiếp theo) Các hình ảnh In ngày càng tiến gần đến (nhưng vềmặt toán học thì không bao giờ trùng) một hình ảnh cố định, gọi là điểm hút(attractor) của IFS Điểm hút này chỉ phụ thuộc vào IFS mà không phụ thuộc vàohình ảnh ban đầu Trong thực tế, ta có thể đạt tới hình ảnh không thay đổi chỉ sau vài(khoảng 8 - 10) vòng lặp do kích thước của chi tiết được sinh thêm bị giới hạn bởikhả năng phân giải của thiết bị raster (đơn vị pixel) Hình ảnh do IFS tạo ra là fractal
do tính chất lặp của phương pháp sinh ảnh này và nó có chứa các bản sao thu nhỏcủa chính nó với nhiều tỷ lệ khác nhau Đó là lý do tại sao phương pháp này đượcgọi là Fractal Image Compression: phương pháp nén ảnh fractal
Ví dụ về IFS
Hãy hình dùng một cái máy PhôtôCopy đặc biệt có chức năng giảm kích thước
một ảnh xuống một nửa rồi lại tự sinh ra nó 3 lần Xem hình vẽ Điều
gì sẽ xảy ra nếu kết quả này lại được chuyển vào máy Phôtô này lầnnữa Chúng to có thể thấy được rằng tất cả các bản copy này dườngnhư có vẻ hội tụ tới một ảnh cuối cùng ( Như ảnh 2c) Bởi vì máy này
đã làm giảm ảnh đầu vào, bất kì một ảnh bất kì khác được đặt khởiđầu ở máy copy này thì chúng sẽ được thu nhỏ lại tới một điểm khichúng ta thực hiện lặp lại quá trình Phô tô này
Trang 6Hình vẽ : Hình ảnh các image được sinh ra sau một số lần lặp
Như vậy ta có thể thấy rằng cách thức ảnh đầu vào được biến đổi sẽ xác định ảnh cuối cùng sẽ như thế nào
2.2.Tính chất không phụ thuộc vào độ phân giải của quá trình xây dựng ảnh
Quá trình xây dựng ảnh bằng IFS có một tính chất đặc biệt: quá trình này có thểxây dựng nên ảnh ở kích thước bất kỳ mà không tạo thành các khối pixel có trị giốngnhau, tức là nó có thể phóng lớn một hình ảnh lên mà hình ảnh vẫn có các chi tiếtnhỏ Tính chất đặc biệt này được gọi là “resolution independence”, tính độc lập về độphân giải Sở dĩ ảnh tạo bởi IFS có tính chất này là do ảnh là fractal, có các chi tiết ởmọi kích thước Đây là tính chất đặc trưng chỉ có ở kỹ thuật nén fractal
Lớp K12T3 - ĐH Công nghệ - ĐHQGHN
6
Trang 7Việc tìm được một IFS phù hợp với một hình ảnh cho trước là không thể thựchiện được bằng cách chọn và thử từng ánh xạ, tính toán rồi tìm ánh xạ khác cho tớikhi tìm được một IFS vừa ý mà cần phải thực hiện một cách chặt chẽ Thuật toán đầutiên do Michael Barnsley đưa ra để thực hiện việc này lợi dụng tính tự-tương tự củađối tượng fractal:
- Tìm trên bức ảnh một vùng tương tự với toàn bộ bức ảnh (tức là có thể biến
đổi thành nhau thông qua một phép biến hình nào đó)
- Tìm ánh xạ tương ứng
- Sau khi tìm được toàn bộ các ánh xạ, ta đã có IFS cần tìm
Giải thuật này giống một ý tưởng hơn là một thuật toán thông thường và thực tế
là không khả thi do hai lý do chính: việc đi tìm một vùng trong ảnh tương tự với toàn
bộ bức ảnh là không thể thực thực hiện được ngay cả khi có một máy tính thật mạnh
và ngay cả khi có thể thực hiện được việc đó đi chăng nữa thì trong các bức ảnhthường gặp, cũng không có nhiều vùng tương tự với toàn bộ bức ảnh (Thực tế giảithuật này này vẫn có thể là khả thi nếu ta có một “universal mapping”, một ánh xạ cóthể biến hoá từ một hình ảnh bất kỳ thành một hình ảnh khác, nhưng một ánh xạ nhưvậy có lẽ không tồn tại và nếu tồn tại thì việc lưu trữ nó có lẽ còn tốn chỗ ít nhất làbằng lưu trữ toàn bộ bức ảnh, bởi chính nó chứa toàn bộ thông tin của bức ảnh)
Lớp K12T3 - ĐH Công nghệ - ĐHQGHN
7
Trang 8Một khía cạnh quan trọng trong giải thuật này mang tính quyết định đối với kỹthuật nén ảnh fractal, đó là định nghĩa lại khái niệm tương tự Khái niệm hai hình ảnhtương tự ở đây được hiểu là hai hình ảnh này có thể được biến đổi thành nhau nhờmột phép biến hình (ánh xạ) nào đó Việc chọn loại phép biến hình là rất quan trọngđối với quá trình nén ảnh do ánh xạ đó sẽ được áp dụng nhiều lần nên độ phức tạpcủa nó sẽ quyết định tốc độ nén Hiện nay người ta đang sử dụng phép biến hìnhaffine mặc dù theo lý thuyết ta có thể sử dụng mọi loại ánh xạ nói chung, chỉ cần tậphợp của chúng là co Ánh xạ affine là ánh xạ tuyến tính, trong không gian hai chiều
có dạng:
F(X) = A*X + B
trong đó F(X) là ảnh của hình X, A là một ma trận vuông cấp 2, quyết định cách thứcbiến hình như quay, co dãn, đối xứng, thay đổi độ đậm nhạt…, còn B là một vectorbiểu thị độ dịch của ảnh so với nguyên ảnh Loại ánh xạ này được chọn do tính đơngiản, dễ tính toán của nó, mặt khác mối liên hệ “kiểu affine” cũng khá phổ biến trong
tự nhiên
Cải tiến lớn làm cho phương pháp nén ảnh fractal trở thành có thể thực hiệnđược do Arnaud Jacquin đưa ra năm 1989, đó là thay vì đi tìm tính tương tự giữa mộtphần và toàn bộ bức ảnh, ta có thể đi tìm tính tương tự giữa hai vùng của bức ảnh vớinhau Tập các hàm như thế gọi là Partitioned Iterated Function Systems (PIFS)
2.4.Nén ảnh với Partitioned Iterated Function Systems
Nội dung chính của kỹ thuật này là chia ảnh ra thành nhiều mảnh thuộc hailoại: domain và range, trong đó các range không phủ lên nhau và lát kín bức ảnh còncác domain lớn hơn các range (để bảo đảm tính co cho các ánh xạ) và các domain cóthể phủ lên nhau, sau đó với mỗi range ta đi tìm một domain phù hợp nhất với nó(sau này Barnsley đã đổi chỗ hai khái niệm, tức là ánh xạ trở thành biến range thànhdomain, nhưng dường như không mấy người theo cách gọi này) Đó là một công việcnặng nhọc do có quá nhiều cặp range và domain cần so sánh nên thuật toán này rấtchậm Có hai phương hướng cải tiến tăng tốc độ cho việc nén ảnh, đó là:
(i) giảm số domain của bức ảnh
Lớp K12T3 - ĐH Công nghệ - ĐHQGHN
8
Trang 9(ii) thu nhỏ không gian tìm kiếm tức là đối với mỗi range ta cần thực hiện ít
phép so sánh hơn
Việc giảm số domain có thể thực hiện như sau:
- Các domain và range là hình vuông với độ dài cạnh là 2n(1 < n < 6)
- Buộc các domain phải bắt đầu tại các vị trí theo một ràng buộc nào đó, ví dụnhư tại các vị trí có toạ độ chẵn
- Cố định tỉ lệ kích thước giữa các domain và range, thường là 2
- Đơn giảm hoá các ánh xạ: trong khi ánh xạ affine có thể cho ra bản sao bịquay đi một góc bất kỳ và có thể đối xứng với ảnh gốc, ở đây ta cố định gócquay của ánh xạ là một bội số của 90o hoặc không sử dụng các ánh xạ quay
và đối xứng, việc không sử dụng các ánh xạ loại này có thể làm giảm bớt1/8 số domain cần so sánh
Mô hình mã hoá được mô tả dưới đây
Hình vẽ mô tả quá trình mã hoá ảnh, với mỗi một block vùng được so sánh với cácBlock miền hợp nhất
Hình vẽ mô hình của một hệ nén ảnh bằng fractal, trước tiên các khối block miền và vùng được xác định rồi được đem so sánh để xác định các phép biến đổi
Hình vẽ mô tả quá trình giải nén
Transfomation pool : Xác định các phép biến đổi thích hợp cho đối tượng ảnh tươngứng
Domain pool : Chia nhỏ ảnh ra làm các khối miền với kích thước DxD
Lớp K12T3 - ĐH Công nghệ - ĐHQGHN
9
Trang 10Range pool : Chia nhỏ ảnh ra làm các khối vùng với kích thước BxB với B<D
Search : Quá trình tìm kiếm những phép biến đổi thích hợp để làm cho ma trận sai sốđạt nhỏ nhất có thể
Để cải thiện chất lượng ảnh, cầu trúc quadtree được sử dụng khi mã hoá một bứcảnh Cấu trúc này dựa trên việc chia nhỏ liên tiếp các ảnh thành các block có kíchthước gấp 4 lần nhau
Các biện pháp nêu trên có vẻ quá mạnh và sẽ làm ảnh hưởng đến hiệu quả củaquá trình nén và làm giảm chất lượng nén nhưng thực tế chất lượng nén không giảmnhiều, tuy vậy, độ phức tạp của bài toán vẫn còn quá lớn Phương hướng cải tiến thứhai là giảm số lượng domain cần duyệt đối với mỗi range Ý tưởng này được hiệnthực hoá thành phương pháp phân lớp domain (domain classification) Phương phápnày dựa vào phân bố màu của các domain và range để phân lớp chúng, sau đó chỉtiến hành tìm kiếm đối với các range và domain cùng một lớp Có nhiều cách phânloại khác nhau, trong đó cách đơn giản và hiệu quả là chia thành 24 lớp dựa vàotương quan giữa trị màu trung bình của bốn mảnh phần tư của hình vuông cần xét(nếu ta sử dụng các ánh xạ quay và đối xứng thì chỉ còn chia ra được 24/8 = 3 lớp)
a a
a a z y
x
1 4
3
2 1
00
00
trong đó x, y là toạ độ của điểm ảnh bị tác động, z là độ chói của điểm bị tác động, a i
là các hệ số biến hình, c (contrast factor) là hệ số biến đổi độ chói (độ tương phản),
d i là khoảng dịch chuyển vị trí, b (brightness offset) là độ dịch sáng của ảnh so với
nguyên ảnh Các hệ số này đều là số thực
Trên thực tế ánh xạ của PIFS chịu những ràng buộc bổ sung, nên các hệ số củachúng không độc lập với nhau Các ràng buộc của ánh xạ như sau:
Lớp K12T3 - ĐH Công nghệ - ĐHQGHN
10
Trang 11- Do góc quay chỉ có thể là 0o, 90o, 180o, 270o, ứng với mỗi góc quay có 4cách đối xứng nhưng một nửa trong số cách kết hợp quay - đối xứng làtrùng nhau nên có 4*4/2 = 8 hướng có thể có của ảnh.
- Vị trí của ảnh và nguyên ảnh là cố định nên ta không cần tính các hệ số d i
- Do tỷ lệ giữa độ dài cạnh của domain và range là cố định nên ta không cầnlưu trữ các hệ số co giãn
Với các hạn chế đó, việc áp dụng ánh xạ trở thành việc áp dụng liên tiếp 4 phép biếnđổi đơn giản hơn như sau:
- Đầu tiên ta thực hiện một phép thu nhỏ hình ảnh
- Tiếp theo ta quay và đối xứng hình ảnh vừa có được
- Sau đó ta nhân giá trị độ chói của từng điểm ảnh với hệ số tương phản c.
- Cộng giá trị độ chói của từng điểm ảnh với hệ số dịch sáng b.
Như vậy để tìm ánh xạ, ta cần phải biết ba giá trị: giá trị mã hoá phép quay, độ
tương phản và độ dịch sáng Để tìm ra c và b, ta có thể sử dụng phương pháp bình phương nhỏ nhất Ví dụ cho 2 ma trận R=[r ij ], D=[d ij ], ta có ảnh của D qua ánh xạ là d’ ij = d ij * c + b, như vậy ta có n cặp (r ij , d’ ij) với n là số điểm ảnh của range, nếu chúng
là giống nhau qua ánh xạ đã cho thì chúng có liên hệ bậc nhất với nhau và theo lý
thuyết bình phương nhỏ nhất, c và b của ánh xạ cần tìm là nghiệm của hệ phương trình:
=+
i i
d r d
c d b
r d c nb
1 1
2 1
1 1
Có nhiều cách đánh giá “độ tốt” (fitness) của một ánh xạ, nhưng dễ dàng nhất là
sử dụng giá trị tổng bình phương sai lệch trung bình giữa ảnh của domain và range:
=
−+
r b cd n
E
1
2
)(
1DR,
Giá trị này được gọi là RMS, Root Mean Square, là một thước đo khá tốt về chấtlượng của phép biến hình, và nó càng nhỏ khi range và domain càng tương tự nhau
Lớp K12T3 - ĐH Công nghệ - ĐHQGHN
11
Trang 12Thế nhưng nó lại không phải là một tiêu chuẩn tốt để đánh giá về mức độ giống nhaucủa hai hình ảnh đối với con người.
Tuy nhiên, việc biến đổi này phải có một giới hạn nào đó Các phép biến đổinày cần phải thoả mãn một tính chất gọi là contractive (chúng tôi sẽ trình bày ở phầndưới)
Ví dụ dưới đây sẽ cho chúng ta thấy giải thuật Fractal được thực hiện như thế nào.Giả sử rằng chúng ta thực hiện trên một bức ảnh 128 x 128 với mỗi một pixel có thể
có 256 mức xám Chúng ta gọi bức ảnh này là ảnh Vùng (Range) Sau đó chúng tagiảm kích thước chúng xuống (lọc thông thấp) ảnh gốc xuống còn kích thước 64x64.Chúng ta gọi ảnh này là ảnh miền (Domain) Chúng ta chia mỗi ảnh ra thành cáckhối, mỗi khối có kích thước 4x4 pixel
Chúng ta thực hiện phép biến đổi cải thiện đối với mỗi khối
(Di,j) = αDi,j + to
Trong đó α=[0,1], α∈ R và to = [-255,255], t0 ∈ Z
Trong trường hợp này chúng ta sẽ tìm phép biến đổi tuyến tính từ các khối miền đểchúng có thể xấp xỉ với các khối vùng Mỗi khối miền được biến đổi và đem so sánhvới mỗi khối vùng Các hệ số của phép biến đổi này có thể được thực hiện như sau:
Lớp K12T3 - ĐH Công nghệ - ĐHQGHN
12
Trang 13Trong đó n,m Ns = 2 hoặc 4 ( kích cỡ của một block)
Mỗi một phép biến đổi trên các khối miền được so sánh với các khối vùng để tìm rakhối miền gần nhất so với khối miền
Sau khi tìm được các hệ số các của các phép biến đổi này, chúng được lưu trữ vàomột file mô tả các phép biến đổi File này được gọi là Fractal Code Book
2.6.Hướng mở rộng nén ảnh màu
Các khía cạnh của thuật toán được nêu ở trên chỉ sử dụng cho ảnh đơn sắc (ảnhxám, gray scale) Ảnh màu được tổ chức khác với ảnh đơn sắc, cách lưu trữ ảnh màuhiện nay là lưu trữ trong không gian màu RGB, mỗi màu được tổng hợp từ ba màu
cơ bản là đỏ, xanh lam và xanh sẫm (Red, Green, Blue) Bởi vậy để nén ảnh màu ta
có thể tổ chức ảnh thành ba ảnh xám rồi nén riêng ba ảnh này Rất nhiều phươngpháp nén ảnh khác như JPEG đều giải quyết như vậy Cách tiếp cận này kém hiệuquả vì nó không lợi dụng được sự liên quan giữa các màu của ảnh
Cách thứ hai để nén ảnh màu là mở rộng ánh xạ affine để có thể áp dụng cho
ảnh màu Khi đó một điểm ảnh sẽ được mô tả bằng bộ giá trị (x, y, r, g, b) trong đó x
và y là hai toạ độ của điểm ảnh trong bức ảnh, còn r, g, b lần lượt là các thành phần
màu của điểm ảnh đó Không gian ảnh sẽ là năm chiều và ánh xạ affine lúc này códạng:
b g r
b b b d d
b g r y x
c c c
a a
a a
b g r y x f
2
1 4
3
2 1
0000
00
00
000
0
000
000
Lớp K12T3 - ĐH Công nghệ - ĐHQGHN
13
Trang 14trong đó a i là các hệ số biểu thị các phép biến hình, d i biểu thị phép dời hình, còn c r,
c g , c b là hệ số tương phản tương ứng với các màu, b r , b g và b b là độ dịch sáng của ánh
xạ đối với mỗi màu Cũng giống như ánh xạ affine cho ảnh đơn sắc, có rất nhiều hệ
số trong công thức trên bị ràng buộc bởi các điều kiện khác nhau nên ta không cầnphải lưu trữ và tính toán tất cả các hệ số Trong chương trình nén, ánh xạ vẫn đượcchuyển thành bốn phép biến hình như ánh xạ ba chiều cũ Chương trình minh hoạphương pháp ở phần sau sẽ sử dụng biện pháp này
Trong không gian ảnh 5 chiều, hàm RMS để đánh giá sai số do ánh xạ gây raphải sửa đổi thành:
Đây chính là khoảng cách trung bình giữa hai tập hợp điểm trong không gian Đề-các
ba chiều thông thường
3.Kỹ thuật nén ảnh Fractal với thuật toán di truyền
3.1 Sơ lược về thuật toán di truyền.
Thuật toán di truyền (Genetic Algorithm, GA) là một thuật toán tìm kiếm theo
tư tưởng mô phỏng tự nhiên GA rất hiệu quả để tối ưu một hàm trên một tập hợp, tưtưởng chính của GA là: cho một tập P có n đối tượng, tập này gọi là quần thể(population), mỗi thành phần của quần thể được gọi là gene, tại mỗi bước lặp ta xét
một số cặp gene (g i , g j)∈ P, các cặp này được chọn ngẫu nhiên theo xác suất, rồi traođổi các thành phần của chúng với nhau hoặc chọn ngẫu nhiên một gene để biến đổicác thành phần của nó Sau đó áp dụng một phép lượng giá để đánh giá các gene mớinhận được thông qua phép biến đổi, và chọn lấy các gene phù hợp để làm quần thểcho lần lặp sau Trong GA mỗi lần lặp được gọi là thế hệ Ở đây quần thể gene môphỏng quần thể sinh vật, chúng chịu tác động của hai toán tử: toán tử đột biến vàtoán tử lai ghép Còn hàm lượng giá đóng vai trò môi trường phát triển và tiêu chuẩnchọn lọc như đối với các sinh vật sống Việc tiến hoá của quần thể gene đi theo chiềuhướng tốt dần lên qua mỗi lần lặp, do các cách kết hợp kém hiệu quả bị loại bỏ
Lớp K12T3 - ĐH Công nghệ - ĐHQGHN
14
Trang 15Do cách tiến hành như trên, GA có thể phát sinh được hầu hết các cách kết hợp
có thể có của quần thể, nên khả năng tìm được một kết quả có thể chấp nhận được làrất cao Tuy vậy, do GA là một phương pháp tìm kiếm không tất định nên nó cũnggiống như các phương pháp Heusristic, tức là nói chung chỉ có thể tìm được đáp ánchấp nhận được chứ không phải là đáp án tối ưu
3.2 Sử dụng thuật toán di truyền trong kỹ thuật nén ảnh fractal
3.2.1 Áp dụng thuật toán di truyền
Thuật toán di truyền, do cách thực hiện của mình, là một thuật toán tìm kiếmgiải pháp chấp nhận được rất mạnh và hiệu quả Việc áp dụng thuật toán di truyền đểtìm kiếm ánh xạ trong PIFS có thể được thực hiện rất tự nhiên, bằng cách thiết lậpmột quần thể có các gene là ánh xạ cho các range và tại mỗi thế hệ ta cố gắng làm tốtcác ánh xạ với hai toán tử lai ghép và đột biến Sau một số định trước các thế hệ tadừng tiến hoá và sử dụng các giải pháp tìm được như là ánh xạ tối ưu
Để tăng tốc độ hội tụ của phương pháp ta có thể cải tiến hàm lượng giá bằngcách khi tìm được một domain phù hợp với một range hơn domain trước đó, ta tiếnhành tìm kiếm trong các domain lân cận của domain đó bởi nhiều khả năng còn cómột domain tốt hơn ở gần domain đó
Mặt khác tốc độ của GA phụ thuộc rất nhiều vào hàm lượng giá ánh xạ nênhàm này cần được viết rất cẩn thận Hàm lượng giá thường rất chậm, nhất là trongtrường hợp hàm tìm ánh xạ này, và sẽ tốt hơn nếu ta có thể tìm được một hàm đơngiản hơn có tính chất chặn trên đối với hàm lượng giá, có nghĩa là hàm lượng giáluôn luôn nhỏ hơn hàm gần đúng này và sử dụng hàm gần đúng này thay cho hàmchính xác trên Khi đó, sau khi tìm được ánh xạ ta cần phải lượng giá lại bằng hàmlượng giá chính xác trước khi có thể sử dụng
3.2.2 Vấn đề tổ chức dữ liệu khi kết hợp với kỹ thuật QuadTree
Kỹ thuật Quadtree được sử dụng trong nén ảnh fractal để tận dụng tính tựtương tự của ảnh ở mức cao hơn Thay vì chỉ sử dụng một cỡ range cố định, kỹ thuậtQuadtree sử dụng nhiều cỡ range khác nhau, quá trình nén được thực hiện như sau:tìm ánh xạ cho các range cỡ lớn nhất, nếu range nào không tìm được domain phùhợp thì nó sẽ được tách ra làm bốn range cỡ nhỏ hơn và tiếp tục tìm ánh xạ cho các
Lớp K12T3 - ĐH Công nghệ - ĐHQGHN
15
Trang 16range này Việc tách các range dừng khi kích thước của range đạt tới mức nhỏ nhấtđược định trước Khi đó, dù ánh xạ tốt nhất tìm được có sai số lớn hơn giá trị chotrước, ta vẫn phải chấp nhận ánh xạ này Việc sử dụng range có kích thước biến đổinhư vậy có thể cho ra file nén có kích thước nhỏ hơn file nén của các phương phápkhác.
Do ảnh là 24 bit màu, việc phân lớp ảnh cho cả ba màu theo cách giống như đãthực hiện trong phương pháp Classification là không thể thực hiện được nữa, và đểtận dụng tính tự tương tự theo vùng của ảnh, tức là các ánh xạ tốt thường có range vàdomain gần nhau, ta cần tổ chức các khối thông tin của các domain sao cho nếu tabiết được toạ độ bắt đầu của các domain thì ta có thể tìm được khối thông tin củadomain đó cũng như dễ dàng tìm được các khối thông tin của các domain lân cậndomain đang xét Cách lưu trữ tiện lợi nhất để thực hiện việc này là lưu trữ theomảng hai chiều Ở đây nếu mỗi domain cách nhau n pixel, n chẵn, thì ta có toạ độcủa khối thông tin mô tả domain (x, y) sẽ là (x/n, y/n), tất nhiên x, y đều chia hết chon
Trong kỹ thuật quadtree, có thể ta không phải xét toàn bộ các range ở các cỡnhỏ hơn do chúng nằm trong một range lớn đã tìm được domain phù hợp, mặt khác
có thể các kích thước của ảnh không chia hết cho độ dài cạnh của range ở các cỡ lớn,
do vậy khi tìm ánh xạ cho các range kích thước lớn, ở biên phải và đáy của ảnh cóthể có các vùng ảnh nhỏ hơn độ dài cạnh của range, và do đó chúng không được xéttới Mặt khác để giảm kích thước file, vị trí của các range không được lưu trong filenén mà được chương trình suy ra từ vị trí tương đối của ánh xạ trong file Do vậy cácrange cần được xếp thứ tự một cách chặt chẽ Ta có thể xếp các range theo thứ tựnhư sau: nếu một range bị tách, các range con của nó sẽ được lưu trữ ngay sau nó,khi đó ta có thể xác định được toạ độ của range mà không cần thêm ký hiệu gì đặcbiệt Nếu sử dụng một thuật toán tìm kiếm tất định nào đó, ta có thể định thứ tự cácrange theo cách như trên dễ dàng bằng cách tiến hành tìm kiếm đệ quy đối với mỗirange, nếu không tìm được ánh xạ thì việc tìm kiếm sẽ được tiến hành đệ quy đối vớimỗi range con của nó:
Thuật toán Alg1: Tìm kiếm QuadTree:
Tất cả các thuật toán đều chỉ là mô tả hình thức
Lớp K12T3 - ĐH Công nghệ - ĐHQGHN
16