báo cáo nghiên cứu khoa học 'nén ảnh fractal '

7 691 4
báo cáo nghiên cứu khoa học  'nén ảnh fractal '

Đang tải... (xem toàn văn)

Thông tin tài liệu

Đại học Vinh Tạp chí khoa học, tập XXXVI, số 3A-2007 73 nén ảnh fractal Phạm Quang Trình (a) , Trần Hữu Tâm (b) Tóm tắt. Bài báo này tìm hiểu ứng dụng của hình học Fractal trong việc nén ảnh. Kết quả của bài báo là cải tiến phơng pháp phân hình tứ phân và cài đặt chơng trình nén ảnh Fractal bằng phơng pháp này. 1. Đặt vấn đề Việc ứng dụng hình học Fractal vào thực tế đã đạt đợc nhiều kết quả tốt trong các ngành khoa học tự nhiên và xã hội. Trong khoa học máy tính, hình học Fractal giúp cho việc thiết kế hình ảnh đẹp trên máy tính một cách đơn giản và trực quan. Trong xử lý ảnh, hình học Fractal giúp cho việc nén ảnh trên máy tính thông qua hệ hàm lặp IFS, PIFS một cách hiệu quả. Trong những năm gần đây, việc nghiên cứu phát triển chơng trình nén ảnh Fractal đang gặp nhiều khó khăn, các kết quả đạt đợc còn hạn chế nh: chơng trình mới chỉ nén với các loại ảnh xám, tỉ lệ nén cha cao và thời gian nén vẫn còn lâu. Trong bài viết này chúng tôi chỉ ra hạn chế của một số phơng pháp nén ảnh Fractal và khắc phục những hạn chế đó. Trên cơ sở lý thuyết của hình học Fractal các phơng pháp nén ảnh Fractal chúng tôi đã cài đặt đợc một chơng trình nén ảnh tốt hơn những chơng trình đã có ở chỗ nó có thể nén đợc ảnh màu và nén đợc nhiều kiểu ảnh khác nhau: BITMAP, JPG, WMF, ICON 2. nén ảnh Fractal 2.1. Khái niệm về nén ảnh Fractal Giả sử ta có một máy photo đặc biệt, máy này tạo ra 3 ảnh thu nhỏ trên cùng một bản copy mà mỗi ảnh có kích thớc giảm đi một nửa so với kích thớc ban đầu. Hình 1. Một máy photo tạo ra 3 bản sao thu nhỏ của ảnh ban đầu Nhận bài ngày 20/9/2006. Sửa chữa xong 08/01/2007. Đại học Vinh Tạp chí khoa học, tập XXXVI, số 3A-2007 74 Hình 1 minh hoạ một phép lặp theo cách xử lý của máy copy đối với một ảnh. Ta thấy rằng, nếu qua nhiều lần lặp tất cả các bản photo của các ảnh cùng hội tụ về một ảnh. ả nh cuối cùng thu đợc mang tính chất tự tơng tự ở hầu hết các chi tiết, đó chính là một tính chất của Fractal. Bức ảnh thu đợc này chính là tập hút của máy photo (xem [5]). Máy photo có thể nhận bất kỳ một ảnh nào đa vào để rồi cho ra bản copy có kích thớc giảm nhng số bản tăng lên. Vì vậy, nếu quá trình này thực hiện theo một chu trình lặp, số bản copy sẽ tăng lên nhng kích cỡ giảm dần. Các phép biến đổi khác nhau qua quá trình lặp sẽ dẫn đến các tập hút khác nhau. Các phép biến đổi ở đây là các ánh xạ co. Thông thờng, nếu nh các điểm ảnh trên bản copy mở rộng dần ra thì tập hút có thể có kích cỡ vô hạn. Để loại trừ điều này thì các phép biến đổi phải có giới hạn bởi một vài dạng nào đó. Trong thực tế ngời ta chọn các ánh xạ có dạng = y x dc ba y x w ii ii i i i f e để sinh ra tập các ánh xạ co. Hình 2. Ba bản copy đợc tạo ra qua máy photo ở hình 2.1 Các phép biến đổi nh vậy gọi là phép biến đổi affine trên mặt phẳng nh phép quay, tịnh tiến, phép chia nhỏ theo tỷ lệ và thay đổi ảnh đa vào, + Đại học Vinh Tạp chí khoa học, tập XXXVI, số 3A-2007 75 Một đặc điểm của tất cả các tập hút là thông thờng chúng đợc hình thành theo cách này, vị trí của một phần ảnh trong ảnh ban đầu là các bản đợc copy trên toàn bộ ảnh. Bức ảnh đợc hình thành từ phép biến đổi (giảm kích cỡ) copy chính nó, vì thế cho nên nó có chi tiết ở mọi tỷ lệ, các ảnh đó đợc gọi là các ảnh Fractal. Phơng pháp tạo ảnh Fractal thực hiện bởi John Hutchinson và M. Barnsley đã đề xuất việc lu trữ ảnh nh một tập hợp các ánh xạ để có thể ứng dụng trong việc nén ảnh. 2.2. Thuật toán nén ảnh Fractal 2.2.1. Thuật toán nén ảnh Fractal tổng quát Thuật toán này do Micheal Barnsley đề xuất. Theo Barnsley thì ta chia ảnh f đã cho thành các hình vuông rời nhau kích thớc BìB điểm ảnh gọi là các khối range và ký hiệu là R i . Sau đó ta chia ảnh thành một tập các khối có kích thớc 2Bì2B điểm ảnh gọi là các khối domain và ký hiệu là D j , các khối D j không nhất thiết phải rời nhau. Bây giờ, với mỗi khối R i ta phải tìm một khối D j và một ánh xạ co w i sao cho D j qua ánh xạ co w i vừa tìm đợc sẽ xấp xỉ R i , (xem [5]). 2.2.2. Thuật toán giải mã ảnh Fractal tổng quát Việc giải nén bao gồm việc lặp lại ánh xạ co W từ một ảnh bất kỳ nào đó cho đến khi đợc điểm bất động (ảnh đợc tạo ra từ W) xấp xỉ ảnh gốc, (xem [5]). 2.2.3. Thuật toán nén ảnh QD (Quadtree Decomposition) Bớc 1. Phân chia M thành các khối đích R i là các khối vuông có kích thớc BìB điểm ảnh (kích thớc lớn nhất), và chia M thành các khối nguồn D j là các khối vuông có kích thớc 2B ì 2B điểm ảnh. Bớc 2. Đặt S = {R i }, i = 1, 2, , (n/2B); Bớc 3. While khi S do (i) Lấy R i ra khỏi S; (ii) For j = 1 to 8 do Begin R i = ĐC j (R i ); //Phép đẳng cự thứ j đối với R i . For each D k M do Tìm s i , o i sao cho d(s i ìD k + o i , R i ) ; End; If tìm đợc then ghi thông tin về D k , R i , ĐC j , s i , o i Else If R i đã đạt đợc kích thớc tối thiểu then Đánh dấu R i là khối hỏng và lu thông tin tối thiểu cho R i Else chia R i thành 4 khối ô vuông con và thêm vào S. Đại học Vinh Tạp chí khoa học, tập XXXVI, số 3A-2007 76 ở đây ĐC j (R i ) đợc hiểu là phép đẳng cự thứ j trên khối R i , d là một mêtric nào đó trong 3 mêtric sau s up (f, g) = ),(),( sup ),( yxgyxf Myx , f, g F d ms (f, g) = Myx yxgyxf ),( 2 )),(),(( , f, g F d rms (f, g) = = n i iiii yxgyxf n 1 2 )),(),(( 1 , f, g F, trong đó n là số điểm ảnh của f và g. Khi đó các không gian (F, d sup ), (F, d ms ), (F, d rms ) là các không gian mêtric đầy đủ (xem [5]). Việc giải mã bao gồm việc lặp lại ánh xạ co W từ một ảnh nào đó. Sự phân chia tứ phân đợc sử dụng để xác định tất cả các khối Range trên ảnh. Với mỗi khối range R i , khối domain D j tơng ứng ánh xạ lên nó đợc co lại bằng cách lấy trung bình cộng của từng khối. Các giá trị màu của các pixel trên D j sau khi đợc co lại sẽ đợc nhân với s i rồi cộng với o i và đợc đặt vào trong range đã đợc xác định theo thông tin của phép đẳng cự. Công việc này sẽ đợc lặp lại cho đến khi điểm bất động của ánh xạ W xấp xỉ với ảnh gốc. Nh vậy ta nhận thấy có thể lu trữ Range thay cho việc phải lu trữ cả Range và Domain. Điều này có thể hạn chế đợc số lợng ánh xạ co phải thử, tăng tốc độ của giải thuật nén ảnh Fractal, việc giải nén chính là việc ghép các vùng đồng màu theo một trật tự để có đợc ảnh gốc. 3. Cài đặt chơng trình nén ảnh 3.1 Mô hình ảnh Mô hình của ảnh là hàm có dạng f: M R ì G ì B, trong đó M 2 là giá của ảnh, với các ảnh số có độ phân giải hữu hạn thì M là một lới rời rạc mìn điểm ảnh và M 2 . R, G, B là thành phần độ màu của các điểm, R, G, B [0; 255]. 3.2. ý tởng nén Dựa vào phơng pháp phân hình tứ phân đã đợc đề cập đến, ta xét một ảnh vuông kích thớc 2 k 2 k (k nguyên và không âm). Ví dụ ảnh có kích thớc 256 ì 256 (2 k 2 k ). Đại học Vinh Tạp chí khoa học, tập XXXVI, số 3A-2007 77 Hình 3.1 Hình 3.2 Hình 3.3 Đầu tiên ta xét xem ảnh có phải là một vùng đồng màu hay không. Nếu phải thì lu toạ độ đỉnh trái trên, kích thớc và màu của cả ảnh đó vào file, ngợc lại thì chia ảnh thành 4 ảnh con, mỗi ảnh đều là hình vuông có kích thớc 128 ì128 (2 k-1 2 k1 ), tiếp tục xét nh trên đối với từng ảnh. Quá trình đợc lặp lại cho đến khi ta thu đợc các hình vuông đồng màu hay kích thớc của chúng bé hơn vùng cực tiểu cho trớc. 3.3. ý tởng giải nén Dựa trên cách lu trữ các vùng đồng màu mà ta đa ra cách giải nén. Nói chung việc giải nén chính là việc ghép các vùng đồng màu (là các ảnh con có đợc từ cách phân chia ảnh gốc) theo một trật tự để có đợc ảnh gốc. Hình 4. Lựa chọn vùng cực tiểu đối với ảnh JPG Đại học Vinh Tạp chí khoa học, tập XXXVI, số 3A-2007 78 3.4. Chơng trình + Giao diện chơng trình Hình 5. Giao diện chơng trình + Thủ tục phân hình: Procedure phanhinh(Image); + Thủ tục đọc file ảnh: Procedure DocAnhClick (Sender: TObject); + Thủ tục lu file ảnh: Procedure LuufileClick (Sender: Tobject); + Hàm lấy màu trung bình: Funtion LayMauTB (Vung: Tvung): MauRGB; + Thủ tục Lựa chọn vùng ảnh: Funtion Xacdinhvung (Vung: Tvung;tlkv:byte): boolean; + Thủ tục Giải nén ảnh: Procedure Giainen (path: String;var: TBitmap); + Thủ tục chọn nén hay giải nén: Procedure TuychonClick (Sender: TObject); + Đọc, lu vùng ảnh tạm thời Funtion Spop (top,stack); Procedure Spush (top,Stack,Image); Qua kết quả nghiên cứu và cài đặt thuật toán trên chúng tôi có một số kết luận sau: Việc chọn kích thớc các Range (vùng cực tiểu) ảnh hởng đến chất lợng và tỉ lệ nén. Kích thớc Range lớn thì tỉ lệ nén cao nhng chất lợng ảnh nén thấp. Đối với những ảnh có nhiều vùng đồng màu cho kết quả nén rất tốt, ngợc lại cho hiệu quả nén cha cao đối với những ảnh có độ dịch chuyển màu phức tạp. Đại học Vinh Tạp chí khoa học, tập XXXVI, số 3A-2007 79 4. Kết luận Dựa trên cơ sở của phân hình tứ phân và cách lu trữ Range, Domain trong các phơng pháp nén ảnh của Fractal, chúng tôi đã cài đặt đợc chơng trình nén ảnh Fractal với một số u điểm sau - Thời gian nén nhanh - Tỉ lệ nén khá cao - Nén nhiều kiểu file ảnh khác nhau nh : BMP, ICON, WMF, JPG - Nén ảnh màu. Trong thời gian tới, chúng tôi sẽ tiếp tục tìm hiểu, cài đặt chơng trình nén ảnh fractal theo các phơng pháp khác. Tài liệu tham khảo [1] K. J. Falconer, Fractal Geometry: mathematical foundtions and applications, John Wiley & Sons, Inc, 1990. [2] Y. Fisher, Fractal Image Compression Theory and Application, Springer - Verlag, 1995. [3] Hannes Hartenstein, Matthias Ruhl, Dietmar Saupe, Region-Based Fractal Image Compression, IEEE Transactions on Image Processing, March, 1999. [4] Lê Hữu Đạt, Các kĩ xảo lập trình với Visual Basic và lập trình Borland Delphi, Nhà xuất bản Giáo dục, 2000. [5] Ngô Quốc Tạo, Cơ sở hình học Fractal và chơng trình thử nghiệm Fractal, Trung tâm KHTN & CNQG-TT98-04, Hà Nội, 1998. [6] http://www.femtosoft.biz/fractals. Summary Fractal image compressions This article studied the application of Fractal geometric theory to image compressions. Its results used to improve the quadtree-division method and install the program of Fractal image compressions utilizing the mentioned method. (a) Học viện Quản lý giáo dục, Bộ Giáo dục và Đào tạo (b) Học viên cao học CNTT, Trờng đại học s phạm Hà Nội. . ngành khoa học tự nhiên và xã hội. Trong khoa học máy tính, hình học Fractal giúp cho việc thiết kế hình ảnh đẹp trên máy tính một cách đơn giản và trực quan. Trong xử lý ảnh, hình học Fractal. Đại học Vinh Tạp chí khoa học, tập XXXVI, số 3A-2007 73 nén ảnh fractal Phạm Quang Trình (a) , Trần Hữu Tâm (b) Tóm tắt. Bài báo này tìm hiểu ứng dụng của hình học Fractal. hình học Fractal và các phơng pháp nén ảnh Fractal chúng tôi đã cài đặt đợc một chơng trình nén ảnh tốt hơn những chơng trình đã có ở chỗ nó có thể nén đợc ảnh màu và nén đợc nhiều kiểu ảnh

Ngày đăng: 29/06/2014, 19:49

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan