hn4u @ Last updated 21/11/04 22:42
Go to my homepage at http://4u.jcisio.com
Full version available at http://4u.jcisio.com/r/article400.htm

PTS. Đinh Tiến Sơn
PC World VN

Phương pháp nén ảnh Fractal

Các nhà sản xuất máy tính đang quảng cáo những sản phẩm mới nhất nhằm đáp ứng lĩnh vực đồ họa. Trong khi đó các nhà lập trình thì biết rất rõ là những máy tính hiện nay chưa thể làm việc với các loại ảnh màu thực bởi lẽ lượng thông tin quá lớn của từng ảnh. Chẳng hạn như để có bộ phim trên máy vi tính tương đương chất lượng với chương trình vô tuyến cần phải lưu một lượng thông tin là 22 MB trong 1 giây.

Để giải quyết khó khăn này, người ta cần đến các kỹ thuật nén dữ liệu. 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 yếu đ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.

Trong bài này chúng tôi trình bày một công nghệ nén ảnh mới - Đó là phương pháp nén ảnh Fractal (Fractal Image ompession). Phương pháp này cho hiệu quả nén rất cao và hạn chế mất thông tin.

Tạp chí PC WORLD VN số 3/1993 đã giới thiệu qua về công nghệ Fractal. Theo yêu cầu của một số bạn đọc quan tâm, chúng tôi trình bày sâu hơn về vấn đề này.

Vài khái niệm trong lĩnh vực nén ảnh

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à mã hóa chúng. Ví dụ, như số 9999997777 có thể mã hóa thành 6947. Các hình ảnh trên màn hình máy vi tính đặc trưng bởi số điểm (pixel) và số bit dành cho mã mầu của mỗi điểm (bit/pixel).

Phần lớn các hình ảnh (nhất là có độ phân giải cao) không có quy luật giữa các điểm gần nhau, do đó các phương pháp thông dụng hiện nay như biến đổi cosin rời rạc, Wavelet Image Compession (WIC) (theo chuẩn JPEG và MPEG) 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 bạn 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 như đối với phương pháp biến đổi cosin rời rạc.

Hình học Fractal và biến đổi Fractal

Một cuộc cách mạng trong vấn đề xử lý ảnh "thế giới thực" đã xảy ra cùng với sự ra đời cuốn sách "Hình học Fractal của tự nhiên" (the Fractal Geometry of Nature) của tác giả Mandelbrot. Theo tác giả, khái niệm Fractal là cấu trúc thể hiện sự gần giống nhau về hình dạng của các hình thể kích cỡ khác nhau. Nếu bạn nghiền một củ khoai tây rán dòn bạn sẽ có vô số những mảnh vỏ lớn nhỏ, các mảnh này có thể gọi là Fractal. Mandelbrot chỉ ra rằng, có thể tìm ra các cấu trúc và qui luật để tạo các hình dạng Fractal, do đó có thể coi Fractal như là các hình cơ bản của hình học phẳng Ơ-cơ-lit cùng với đường thẳng, hình chữ nhật, hình tròn. Fractal không phụ thuộc vào độ phân giải của hình, đó là những hình ảnh nhỏ, có thể vẽ được bằng một bộ hữu hạn thuật toán như quay hình, co dãn, biến đổi từ một hình nào đó. Các phép toán trên thực hiện với các hệ số được gọi là hệ số affin. Một bức tranh có thể được fractal hóa và ta có thể khôi phục nó nhờ các hệ số affin. Trên thực tế đối với các hình rất ngẫu nhiên thì các hệ số affin tìm được rất khó. Trước kia tính bằng tay, người ta phải mất hàng ngày, hàng tuần. Hiện nay công việc đó có thể làm trong 5 phút. Quá trình Fractal hóa đã được hãng Integrated Systems nghiên cứu và giữ bản quyền. Sau đây là một số bước của quá trình đó.

Nén hình ảnh

Chia ảnh thành những vùng không phủ nhau, còn gọi là domen (chẳng hạn bằng các đường thẳng ngang và đứng). Các vùng này phải phủ kín hình ảnh.

Lấy bộ các vùng cơ sở, các vùng này không nhất thiết phủ kín bề mặt bức tranh.

Thực hiện biến đổi Fractal. Với mỗi vùng domen ta tìm vùng cơ sở mà sau biến đổi affin xấp xỉ nhất với domen.

Lưu các hệ số affin vào file. File này gồm 2 phần: đầu file chứa thông tin về vị trí các domen và vùng cơ sở sau đó là bảng các thông số affin cho từng domen.

Vẽ lại hình ảnh

Tạo hai hình ảnh cùng cỡ A và B. Cỡ các ảnh này có thể khác với ảnh ban đầu. Các ảnh này có thể là trắng hay đen. Biến đổi các điểm của A vào B. Để làm điều đó trước hết chia B thành các domen như quá trình nén ảnh trên, với mỗi domen của B ta thực hiện biến đổi affin áp dụng với vùng cơ sở A (Các hệ số affin lấy từ file), kết quả có được ta ghi vào B.

Biến đổi giá trị của B vào A y như lần trước, chỉ có điều đổi vị trí chúng.

Thực hiện biến đổi trên nhiều lần cho đến khi A và B không khác gì nhau.

Quá trình này dẫn đến việc là ta khôi phục được bức tranh ban đầu mà độ chính xác phụ thuộc vào độ chính xác của các biến đổi affin.

Thuật toán quá trình nén và tời ảnh được công ty Integrated Systems đưa ra sử dụng số học nguyên cùng các phương pháp làm giảm sự tăng dần của sai số trong các phép toán làm tròn. Các thuật toán đã được tối ưu về mặt thời gian thực hiện. Tuy thế quá trình nén ảnh do phải thực hiện một khối lượng tính toán lớn nên đòi hỏi khá nhiều thời gian so với việc tời ảnh. Với máy 386, tốc độ 33 MHz và màn hình VGA các trình thí nghiệm đã thử phim video màu với tốc độ 20 ảnh loại này trong một giây.

Những ưu điểm của phương pháp Fractal

Trong quá trình Fractal hóa, bạn sẽ nhận được bộ các chữ số rất nhỏ thể hiện hình ảnh. Do đó hệ số nén của phương pháp là rất lớn, tuy thế chất lượng ảnh sau khi nén được bảo đảm khá chính xác. Phương pháp rất hiệu quả với những ảnh có độ phân giải cao. Phương pháp này đã được áp dụng không những trong nén dữ liệu mà còn để thể hiện các mối quan hệ giữa các phần tử của các ánh xạ.


hainam4u @ Last updated 21/11/04 22:42
Go to my homepage at http://4u.jcisio.com