Trong thực tế các bước sau có thể được thực hiện trong hình ảnh kỹ thuật số. Các nén làđạt được bằng cách lưu trữ các hệ số của các biến đổi, chứ không phải là lưu trữ hình ảnh điểm ảnh bằng pixel. Sau đây là một lời giải thích của 'RIFSbat', một chương trình nén hình ảnh đơn giản fractal và 'fdec' chương trình giải nén tương ứng, cả hai trong phụ lục A. Hai chương trình có thể được chạy trên Matlab và chỉ nén hình ảnh vuông màu xám nằm trong định dạng pgm, mặc dù thay đổi thêm có thể được thực hiện sau đó vào tài khoản cho hình ảnh-vuông và các định dạng khác. Chương trình thực thi này chạy qua chương trình 10 lần, cho phép 10 dung sai khác nhau. Mười tập tin khác nhau mat được lưu đại diện cho 10 hình ảnh khác nhau nén. Sự khác biệt trong các tập tin nén không phải là số bit cần thiết để lưu trữ các tập tin (đây là như vậy miễn là kích thước phạm vi là như vậy), nhưng thời gian cần thiết để sản xuất các tập tin nén dựa trên khả năng chịu lỗi. Các dung sai được xác định bởi những gì min0 biến được thiết lập bằng tối thiểu lỗi, biểu hiện bằng biến minerr được định nghĩa bởi chuẩn của sự khác biệt giữa các khối phạm vi và các khối chuyển tên miền. 'RIFSbat' tìm kiếm cho sự chuyển đổi với ít lỗi từ miền khối để phạm vi khối. Trong vòng đầu tiên, khoan dung là min0 = 10. Vì vậy, chương trình tìm kiếm cho một chuyển đổi cho đến khi nó tìm thấy một biến đổi với minerr < min0. Khi min0 tăng, thêm lỗi được cho phép. Với mỗi chạy, khoan dung cho phép lỗi tăng 10. Trước tiên, người dùng phải nhập tên của tập tin hình ảnh pgm trong dòng đầu tiên của chương trình: M = getpgm ('imagename.pgm'). Trong các ví dụ trong phụ lục B, chúng tôi sử dụng 'sisters.pgm'. Sau đó, người dùng chỉ định kích thước khối phạm vi mong muốn bằng cách cài đặt rsize tương đương với chiều dài của phía bên của khối các phạm vi mong muốn. Hiện nay, rsize được đặt bằng 4, cho phép nhiều khối lượng. Sau đó, chúng tôi đã tạo các khối miền, đó là hai lần kích thước của các phạm vi khối, trong trường hợp này. Trong việc xác định ánh xạ mà sẽ cần phải được làm từ các khối miền để phạm vi khối, chúng tôi sẽ cần phải so sánh các khối miền để phạm vi khối. Để chính xác so sánh các khối, họ phải có cùng kích thước. Vì vậy, chúng tôi làm một số trung bình trên các khối miền mà cho phép chúng tôi thu nhỏ các khối miền đến một nửa kích thước của nó để phù hợp với kích thước của các phạm vi khối. Ban đầu, mỗi khối miền là. Các trung bình chỉ diễn ra trong mỗi khối khác biệt của các điểm ảnh trong khối miền. Sau đó các giá trị trung bình màu xám trong mỗi khối điểm ảnh được đại diện ở một điểm ảnh trong tên miền thu nhỏ khối, được gọi là M1. M1 là một khối vào thời điểm này. Chúng tôi trừ mức trung bình của khối miền từ mỗi mục trong khối miền vào tài khoản cho thể Thẫm màu do của hình ảnh decompressed. Khối miền thu nhỏ kết quả là mấtBây giờ, chúng tôi tiết kiệm 8 biến đổi khác nhau của mỗi khối miền trong một ma trận chiều quái vật tám được gọi là h. Các biến đổi bao gồm miền khối ban đầu, quay một, và một, một flip ngang, và một flip dọc, cũng như biến đổi của các khối miền và một vòng quay của tên miền chuyển chặn. Chúng tôi giới thiệu một s véc tơ, có khác nhau scalings cụ thể để biến đổi màu xám của khối miền để làm cho một trận đấu tốt hơn vào một phạm vi khối. Tại thời điểm này, 'RIFSbat' đi qua tất cả các phạm vi khối, và offsets mỗi người trong số họ bởi trừ mức trung bình khoảng cách mỗi mục trong phạm vi khối khối. Bây giờ, chúng tôi đều có thể so sánh các tên miền để phạm vi khối. Chúng tôi tiết kiệm bù đắp các phạm vi khối trong o, chúng tôi sẽ thêm quay lại hình ảnh sau này.Tiếp theo chương trình chu kỳ thông qua mỗi khối miền và kiểm tra mỗi đối xứng mà được lưu trữ trong h, cùng với các vảy màu xám có thể bốn cho sự chuyển đổi tốt nhất sẽ ánh xạ cho một phạm vi nhất định khối. Khi bản đồ tốt nhất được tìm thấy, với vị trí của rằng miền khối i0 và j0, m0 đối xứng tốt nhất của khối miền, tốt nhất rộng s0, và o bù đắp được lưu trong ma trận 5 chiều. Đó là các mục của ma trận này xác định số lượng byte cần thiết để lưu trữ tập tin hình ảnh nén. Đối với mỗi của các trường hợp 10 chương trình xem xét, hàng loạt chương trình tiết kiệm số lượng hàng của hình ảnh ban đầu, kích thước phạm vi khối, và thời gian chương trình đã để đạt được các nén. Thời gian được ghi lại để so sánh kết quả với số tiền của thời gian quá trình diễn. 'RIFSbat' tạo ra hai bảng xếp hạng CPU xuất hiện ban đầu của phần 4 của phụ lục B. Một khi thông tin này được lưu trong một tập tin, nó có thể để nén tập tin đó hơn bằng cách áp dụng một thuật toán mã hóa lossless. Nó là từ ma trận, T, chương trình 'fdec' có thể tái tạo hình ảnh.Nó là quan trọng cần lưu ý rằng mỗi chuyển đổi từ tên miền gốc là một co ánh xạ vì tên miền phải được thu nhỏ lại bởi ½ để ánh xạ tên miền cho phạm vi. Ngoài ra, các thông tin được lưu trữ trong mỗi mục T đại diện cho các hệ số của ánh xạ, tôi = 1,2,3,...N tạo nên ánh xạ IFS địa phương của N. Hình tái tạo sau khi tất cả các ánh xạ T áp dụng cho một số hình ảnh hạt giống, là attractor IFS địa phương.Để tạo lại attractor biến đổi contractive tìm thấy, chúng ta phải sử dụng chương trình 'fdec' cùng với các thông tin đã lưu từ 'fcomp'. Lần đầu tiên chúng tôi nạp dữ liệu chính xác bằng cách sử dụng tên mà chúng tôi đã lưu nó dưới trong tập tin thực thi. Sau đó, chúng tôi khởi tạo một ma trận để thực hiện các ánh xạ trên. Ma trận này phải có cùng kích thước hình ảnh ban đầu. Như chúng tôi đã thảo luận với IFS và tam giác Sierpinski, nó làm cho không có sự khác biệt những gì hình ảnh hạt giống được sử dụng. Mặc dù, trong chương trình chúng tôi khởi tạo hình ảnh hạt giống để tất cả chiếc Zero, là một hình ảnh màu xám thống nhất, việc lựa chọn một hình ảnh như là hạt giống để các địa phương IFS sẽ đến cùng một kết quả. Tùy thuộc vào kích thước khối được lựa chọn cho các phạm vi khối, một trong những có thể cần phải thay đổi số lượng được áp dụng cho hình ảnh hạt giống để đến hình ảnh attractor lặp đi lặp lại. Khi lặp đi lặp lại thêm của các IFS được áp dụng cho các hình ảnh, rõ ràng hơn các attractor sẽ trở thành. Sau khi lặp đi lặp lại thứ n, hình ảnh sản xuất tương ứng với nhỏ gọn thiết lập như được thảo luận trong lý thuyết IFS địa phương. Trước tiên, khối miền của hình ảnh hạt giống phải được tạo ra và rescaled kích thước phạm vi khối. Sau đó, bằng cách sử dụng ma trận T, vùng khối được chuyển và ánh xạ tới các phạm vi khối. Quá trình này được lặp lại cho mỗi iteration. Attractor, M, sau đó sản lượng sẽ được hiển thị trên màn hình. Phụ lục B có các ví dụ của một hình ảnh ban đầu, và những hình ảnh liên tục tái tạo sau khi iterating IFS địa phương tạo cho hình ảnh đó. Chất lượng của các attractors khác nhau tùy thuộc vào kích thước của các khối phạm vi sử dụng và lỗi được cho phép trong việc tìm kiếm một khối miền hình thức chuyển đổi thích hợp để phạm vi khối. Chúng tôi thực hiện phương pháp này đơn giản của fractal nén sản xuất tỷ lệ nén tuyệt vời. Xem xét rằng mỗi điểm ảnh đòi hỏi 8 bit để lưu trữ các giá trị của 0-255, để lưu trữ một hình ảnh điểm ảnh bằng pixel sẽ yêu cầu 65536 byte (khoảng 65KB). Bằng cách sử dụng 'RIFSbat' và 'fdec' với bất kỳ lỗi được lựa chọn, để lưu trữ một hình ảnh kích thước này với một kích thước khối phạm vi của điểm ảnh chỉ cần 11776 byte. Tỉ lệ nén là tốt hơn so với 5:1. Tất nhiên, tăng phạm vi kích thước khối đến điểm ảnh cải thiện nén để chỉ 2688 byte, với một tỷ lệ nén khoảng 24:1. Kích thước lớn hơn khối phạm vi cho phép tỷ lệ nén cao. Thời gian cần thiết để sản xuất hình ảnh attractor dựa trên bao nhiêu lỗi được cho phép trong các biến đổi. Lớn hơn lỗi, nhanh hơn các nén. Việc sử dụng các hình ảnh sẽ xác định số lượng yêu cầu nén và chất lượng hình ảnh. Trong phụ lục B, hình 21 là hình ảnh ban đầu trong ví dụ này. Hình 22, 23 và 24 là người đầu tiên thông qua các lần lặp thứ ba của các biến đổi nén fractal với minerr = 10. Đề cập đến bảng xếp hạng 1 trong phụ lục B chúng tôi có thể cho biết rằng tệp nén này mất khoảng 5 1/2 giờ để hoàn thành nén. Hình ảnh attractor tái tạo là gần với hình ảnh ban đầu, nhưng thời gian cần thiết để thực hiện việc nén không mong muốn. Với một điểm ảnh phạm vi khối, một lỗi Phong Nha có lẽ là khoảng 40 hoặc 50. Mặc dù để nén một hình ảnh với lỗi này mất khoảng 10 phút, nếu lỗi là lớn hơn, chất lượng hình ảnh sẽ trở thành rất thấp và vết. Đối với các điểm ảnh phạm vi khối, ba triển khai khác nhau dựa trên một sự thay đổi trong lỗi cho phép hình ảnh là phụ lục B. Lỗi, min0, Hiển thị là 10, 20, và 80. Bằng cách nhìn vào con số 34 và 38, chúng tôi nhận thấy rằng chất lượng hình ảnh không phải là cao như trường hợp trước đó. Lý do cho điều này là bởi vì, kích thước phạm vi trong những hình ảnh là điểm ảnh. Hai bộ hình ảnh, một với minerr = 0 và minerr = 80 có sẵn trong phụ lục B để cung cấp một so sánh giữa chất lượng hình ảnh và thời gian sử dụng để sản xuất các tập tin nén, mà có thể được tìm thấy trong biểu đồ 2. V. kết luận Sau khi thảo luận về thuật toán nén hình ảnh khác nhau, lossless và lossy, nó chỉ phù hợp để so sánh các thuật toán. Các thuật toán, mà được thực hiện và thảo luận trong bài báo này, là Delta nén, một hình thức của Fourier nén và một hình thức đơn giản của Fractal hình ảnh nén. Các kết quả từ các thuật toán nén xuất hiện trong phụ lục b Là một dạng nén lossless, Delta nén có thể là một công cụ tuyệt vời. Mặc dù nó có thể chỉ sử dụng một nén Delta trên dữ liệu hình ảnh, nhiều thuật toán nén có thể được tối ưu hóa nếu một mã lossless chẳng hạn như Delta nén được áp dụng ngoài mã lossy. Tương tự, Huffman mã có thể được áp dụng cho các hình thức khác trước đó nén dữ liệu, mà có thể tối ưu hóa nén dữ liệu đó. Các lossless mã có thể được ưa thích hơn phương pháp nén lossy trong trường hợp mất mát dữ liệu trong số
đang được dịch, vui lòng đợi..