Mã hóa nén ảnh JPEGLS và ứng dụng

18 677 8
Mã hóa nén ảnh JPEGLS và ứng dụng

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

TRƢỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG XỬ LÝ DỮ LIỆU ĐA PHƢƠNG TIỆN Đề 4: Mã hóa nén ảnh JPEG-LS ứng dụng Giáo viên hướng dẫn: PGS.TS Nguyễn Thị Hoàng Lan Sinh viên thực hiện: Hoàng Đình Hiệp 20111584 Trần Trọng Dũng 20114630 Nguyễn Thanh Tùng 20112140 Đinh Hồng Đạt 2010 Hà Nội, 5/2016 MỤC LỤC LỜI NÓI ĐẦU I Tìm hiểu chung chuẩn nén JPEG-LS 1.1 Khái niệm 1.2 Chuấn nén ảnh JPEG-LOSSLESS 1.2.1 Giới thiệu .2 1.2.2 Các đặc điểm nén IPEG-LOSSLESS .2 1.3 Phạm vi ứng dụng chuẩn nén JPEG-LS II Sơ đồ nén ảnh không tổn hao JPEG-LS 2.1 Giải thuật dự đoán 2.2 Thuật toán LOCO-I 2.3 Thuật toán mã hóa Rice-Golomb .7 2.4 Mã hóa loạt dài RLE 2.4.1 Nguyên tắc .10 2.4.2 Thuật toán 11 III Xây dựng ứng dụng thử nghiệm thuật toán mã hóa ảnh JPEG-LS 12 3.1 Môi trường xây dựng 12 3.1.1 Ngôn ngữ lập trình Java 12 3.1.2 Môi trường lập trình Eclipse 12 3.1.3 Kiểm thử 13 3.2 Triển khai 13 3.3 Kết .13 KẾT LUẬN 15 Tài liệu tham khảo 16 LỜI NÓI ĐẦU Trong thời đại nay, internet phát triển Nhu cầu trao đổi thông tin người lớn Để đáp ứng nhu cầu trao đổi thông tin, phù hợp với hạ tầng sở mà thỏa mãn nhu cầu người dung, đặc biệt ứng dụng giải trí, chuẩn giao thức nén truyền thông tin đời Xuất phát từ thực tế đó, chúng em tìm hiểu đề tài “ Tìm hiểu chuẩn JPEG không tổn hao “ nhằm học hỏi phương pháp nén liệu ảnh xử lý liệu đa phương tiện Chúng em xin chân thành cảm ơn cô Nguyễn Thị Hoàng Lan giúp chúng em hoàn thành đề tài Do kiến thức hạn chế nên báo cáo thiếu sót, chúng em xin nhận ý kiến bổ sung để tiến I Tìm hiểu chung chuẩn nén JPEG-LS 1.1 Khái niệm Nén ảnh không tổn hao phương pháp nén ảnh mà file sản phẩm sau nén giải nén phục hồi thành ảnh xác ảnh gốc Nén ảnh không tổn hao đảm bảo xác so với ảnh gốc Chính đảm bảo yêu cầu mà phương pháp nén ảnh tỉ số nén cao nén ảnh có tổn hao 1.2 Chuấn nén ảnh JPEG-LOSSLESS 1.2.1 Giới thiệu JPEG-LS định dạng file ảnh định dạng liệu nén theo phương pháp nén không tổn hao, giới thiệu năm 1999 với mục đích tạo chuẩn nén có độ phức tạp thấp mà hiệu cao Phương pháp nén ảnh không tổn hao sử dụng để nén ảnh quan trọng cần thiết cho trình phân tích biến đổi sau này, lượng mát thông tin nhỏ giúp cho ảnh giữ chất lượng tốt Hay nói cách khác, phương pháp dùng trường hợp cần có độ xác cao ảnh 1.2.2 Các đặc điểm nén IPEG-LOSSLESS - Không sử dụng lượng tử hóa Như biết, trình lượng tử hóa trình làm mát thông tin ảnh, yêu cầu kỹ thuật nén JPEG LossLess không gây mát thông tin, ký thuật không sử dụng lượng tử hóa - Sử dụng thuật toán dự đoán Kỹ thuật JPEG lossless sử dụng chương trình dự đoán dự ba điểm ảnh hàng xóm gần (phía trên, phía bên trái phía bên phải) sử dụng mã hóa entropy dự báo lỗi Điển hình JPEG Lossless JPEG-LS sử dụng thuật toán LOCO-I 1.3 Phạm vi ứng dụng chuẩn nén JPEG-LS Thuật toán sử dụng JPEG thể ưu việt tranh, ảnh chụp lại cảnh vật thực tế nhờ biến đổi mịn màng mức độ khác màu sắc Khi sử dụng Web, trường hợp cần quan tâm đến dung lượng sử dụng, JPEG đặc biệt thể tính ưu viêt Tuy nhiên thực tế JPEG không sử dụng trường hợp yêu cầu tương phản rõ rệt pixel cạnh JPEG LS bổ sung vào năm 1993 cho phép nén ảnh không tổn hao để khắc phục vấn đề cách không hỗ trợ thiết bị thực tế JPEG LS không sử dụng rộng rãi, dùng phổ biến hình ảnh y tế, âm kĩ thuật số (DNG – Digital Negative) số máy ảnh kĩ thuật số để nén ảnh thô II Sơ đồ nén ảnh không tổn hao JPEG-LS Sơ đồ nén ảnh JPEG-LS: Hình 2.1 Sơ đồ nén ảnh JPEG – LS 2.1 Giải thuật dự đoán Để hiểu rõ giải thuật dự đoán tìm hiểu rõ sơ đồ nén ảnh JPEG-LS Điểm ảnh cần xét X(i,j); i,j = [0;N-1], X=X(i,j), A=X(i,j1), B=(i-1,j), C=(i-1,j-1), D=(i-1,j+1), mô hình Hình 2.2 Điểm ảnh cần xét X điểm ảnh lân cận - Bƣớc 1: ta xem khu vực điểm ảnh xét có phải khu vực phẳng hay không Ta có: g1=D-B; g2=B-C; g3=C-A - Bƣớc 2: Nếu tất gi 0, ta giả định khu vực phẳng, bỏ qua dự đoán giá trị X gán A vào “Run Mode” Như sơ đồ trên, Run Mode có khối khối Run Counter Run Coder Trong đó:  Run Counter có nhiệm vụ kiểm tra giá trị X=A không thỏa mãn điều kiện ban đầu gi =0 hết hàng  Run Coder mã hóa có nhiệm vụ mã hóa X vừa tìm mã hóa loạt dài RLE sử dụng bảng mã Huffman - Bƣớc 3: Nếu tất gi không đồng thời 0, vùng ảnh xét vùng không phẳng, giá trị X phải dự đoán Giá trị X dự đoán khối Fixed Predictor, giá trị X dự đoán giải thuật LOCO-I (Giải thuật LOCO-I trình bày cụ thể phần sau) - Bƣớc 4: Sau dự đoán, giá trị tính toán sai khác so với giá trị thực ảnh ban đầu Giá trị sai khác giá trị dự đoán giá trị ảnh thực ban đầu lưu vào context (ta tạm gọi ) - Bƣớc 5: Với context bao gồm giá trị giá trị gi tương ứng Có nghĩa sau xét xong điểm ảnh xét sang khu vực ảnh khác gặp lại giá trị gi đưa giá trị sai khác mà đoán hay tính toán sai khác - Bƣớc 6: Sau lưu lại giá trị giá trị mã hóa mã hóa Golomb Coder sử dụng giải thuật mã hóa không tổn hao RiceGolomb Như phần hiểu bước thực giải thuật dự đoán kỹ thuật nén ảnh JPEG-LS Để hiểu rõ Giải thuật LOCO-I Giải thuật Rice-Golomb Mã hóa loạt dài RLE tìm hiểu cụ thể phần 2.2 Thuật toán LOCO-I JPEG-LS có trình dự đoán mã hóa, thuật toán Loco-I sử dụng khối Predictor để dự đoán giá trị pixel dụa vào pixel biết lân cận Loco-I (LOw COmplexity LOssless COmpression for Images) thuật toán có độ phức tạp thấp, dựa bối cảnh thuật toán nén ảnh không tổn hao, đề xuât HP Labs năm 1996, M.J Weinberger, G Seroussi G Sapiro phát triển Quá trình dự đoán giá trị pixel X dựa giá trị pixel lân cận biết A, B C hình 2.2 Giá trị X (Px) dự đoán sau: Px = { A, A, n n A, A, Giá trị Px dùng cho khối Adaptive Correction tính toán sai khác so với giá trị X thực ảnh ban đầu Gọi giá trị sai khác ΔX, giá trị sai khác ΔX mã hóa khối Golomb Coder, thuật toán mã hóa trình bày phần Golomb coding phía 2.3 Thuật toán mã hóa Rice-Golomb Quá trình mã hóa thực khối Golomb Coder, sử dụng mã hóa không tổn hao Rice-Golomb Giá trị ΔX số thập phân, ta sử dụng tham số m để chia ΔX thành phần: - Q (quotient : thương phép chia ΔX cho m - R (remainder): số dư phép chia Khi ΔX biểu diễn dạng: Quá trình mã hóa: Các ký hiệu: - m: tham số mã hóa q: phần thương s chia cho m r: phần dư s chia cho m s: giá trị biến cần mã hóa k: số bit dùng để mã hóa phần dư r Đầu vào: số nguyên s tham số mã hóa m Đầu ra: Chuỗi nhị phân giá trị mã hóa s Thuật toán: B1: Tính k = ⌈log2(m)⌉ (số nguyên bé không bé log2(m)) B2: Tính r = s mod m (số dư s chia cho m) B3: Tính t = 2k – m B4: Mã hóa phần thương q sử dụng mã unary (Mã unary số nguyên N biểu diễn dạng N bit kết thúc bit 0) - B5: Nếu r < t mã hóa r dạng nhị phân sử dụng k-1 bit Ngược lại tính r = r + t sau mã hóa r dạng nhị phân sử dụng k bit - - Kết mã hóa số nguyên s Ví dụ: Mã hóa số s = 37 với tham số m = - B1: k = ⌈log2(m)⌉ = ⌈log2(7)⌉ = B2: r = 37mod7 = B3: t = 23 – = B4: q = 37div7 = Mã unary giá trị q = 111110 B5: r = > t => r = r + t = + = Mã nhị phân r = sử dụng k = bit 011 Như mã Golomb s = 37 với tham số m = 111110011 Quá trình giải mã: Quá trình giải mã không sử dụng khối Golomb coder mà sử dụng muốn khôi phục lại tín hiệu ảnh Đầu vào: Chuỗi nhị phân cần giải mã tham số mã hóa m Đầu ra: Giá trị giải mã (s) Thuật toán: - B1: Tính k = ⌈log2(m)⌉ (số nguyên bé không bé log2(m)) - B2: Tính t = 2k – m - B3: Đặt s = số lượng bit liên tiếp gặp bit giá trị đầu vào - B4: Gán cho x giá trị giá trị thập phân (k – 1) bit giá trị đầu vào - B5: Nếu x < t s = s×m + x - B6: Ngược lại thì:  x = x×2 + bit đầu vào  s = s×m + x – t Ví dụ: Giải mã 111110011 với tham số m = - B1: k = ⌈log2(m)⌉ = ⌈log2(7)⌉ = - B2: t = 2k – m = 23 – = B3: s = (111110011) B4: x = 012 = 110 B5: x = ≮ t = B6:  x = 1×2 + =  s = 5×7 + – = 37 Như giả mã giá trị 111110011 ta giá trị ban đầu s = 37 ΔX sau mã hóa lưu trữ gửi đi, muốn khôi phục lại tính hiệu ảnh giải mã giá trị ΔX kết hợp với dự đoán theo Loco-I để tính xác giá trị X ban đầu 2.4 Mã hóa loạt dài RLE Nén liệu hàng loạt – Run Length Encoding (RLE phương pháp nén không liệu RLE hoạt động làm việc cách giảm kích thước vật lý chuỗi ký tự lặp lại chuỗi liệu cách biểu diễn khác Nén liệu hàng loạt áp dụng cho loại liệu mà không phụ thuộc vào nội dung thông tin liệu đó, nhiên mức độ hiệu việc nén hay tỷ lệ nén phụ thuộc vào nội dung liệu Với loại liệu mà thông tin lặp lại, việc áp dụng nén RLE gây hiệu ứng ngược – tạo liệu sau nén dung lượng lớn liệu gốc Bởi vậy, RLE thường áp dụng việc nén ảnh BMP, TIFF, loại liệu nhiều “loạt” liệu lặp lại Ý tưởng phương pháp nén liệu hàng loạt tìm loạt liệu liền lặp lại, thay liệu đại diện khác, mục đích để giảm kích thước liệu gốc Loạt liệu liền gọi “Run Length” Chúng ta tìm hiểu ứng dụng phương pháp việc nén liệu ảnh RLE ứng viên tự nhiên việc nén liệu đồ họa Một ảnh số chứa chấm nhỏ pixel Mỗi pixel bit, xác định màu, đen nhiều bit để quy định nhiều màu khác cho pixel Ta coi pixels lưu trữ mảng gọi bitmap nhớ Pixels thường xếp bitmap dạng dòng, pixels phía bên trái, pixel cuối bên phải 2.4.1 Nguyên tắc Nguyên tắc phương pháp phát loạt điểm ảnh lặp lại liên tiếp, ví dụ: 110000000000000011 Ta thấy điểm ảnh có giá trị xuất nhiều lần liên tiếp thay phải lưu trữ toàn điểm ảnh có giá trị ta cần lưu trữ chúng cách sử dụng cặp (độ dài loạt, giá trị) Ví dụ: Cho chuỗi nguồn d = 5 5 5 5 5 19 19 19 19 19 0 0 0 23 23 23 23 23 23 23 23, ta có chuỗi mới: (10 5) (5 19) (7 0) (8 23), tỷ số nén = 30/8 = 2.5 Đối với ảnh đen trắng sử dụng bit để biểu diễn điểm ảnh phương pháp tỏ hiệu quả, ta thấy điều qua ví dụ sau Ví dụ: Cho chuỗi nguồn d: 000000000000000111111111100000000001111111111000000000000000, ta có chuỗi mới: (15, 10, 10, 10, 15), tỷ số nén = 60 bit / (5*4 bit) = (chỉ sử dụng bit để thể độ dài loạt giá trị loạt ảnh đen trắng có giá trị bit là 1) Đối với ảnh chiều dài dãy lặp lớn 255, ta dùng byte để lưu trữ chiều dài không đủ Giải pháp dùng tách chuỗi thành chuỗi: chuỗi có chiều dài 255, chuỗi có chiều dài lại Phương pháp nén RLE đạt hiệu chuỗi lặp lớn ngưỡng định hay nói khác ảnh cần nén phải có nhiều điểm ảnh kề có giá trị màu Do phương pháp không đem lại cho ta kết 10 cách ổn định phụ thuộc hoàn toàn vào ảnh nén thích hợp cho ảnh đen trắng hay ảnh đa cấp xám Ví dụ: Ta có chuỗi nguồn: d=5 11 13 18 28 38 48 58 30 35 40 45 Chuỗi kết sau mã hoá: 11 13 18 28 38 48 58 30 35 40 45 Tỷ số nén = 14 / 28 = 0.2 Như chuỗi sau mã hoá lớn nhiều chuỗi nguồn ban đầu Do cần phương pháp cải tiến để xử lý trường hợp tránh làm mở rộng chuỗi liệu nguồn nghĩa mã hoá độ dài loạt liệu lặp lại Người ta đưa cách thêm kí tự tiền tố vào trước độ dài loạt, việc giải mã thực gặp kí tự tiền tố với độ dài loạt giá trị điểm ảnh theo sau Ví dụ: Ta có chuỗi nguồn: d = 8 8 8 8 10 10 10 10 10 10 10 10 10 Giả sử kí tự tiền tố dấu “ ” ta có: +8 + 10 Tỷ số nén = 19 / = 2.1 Tuy nhiên số trường hợp điểm ảnh có độ tương quan với vể giá trị mức xám ví dụ ta tiến hành xử lý sau Ví dụ ta có chuỗi nguồn: d = 11 13 18 28 38 48 58 55 60 65 70 75 80 85 90 95 100 Ta có dựa vào độ tương quan để có hiệu nén cao, việc áp dụng e(i) = d(i) - d(i-1) thu : 2 2 10 10 10 10 -3 5 5 5 5 Áp dụng phương pháp nén loạt dài ta dễ dàng thu được: (5 1) (2 4) (5 1) (10 5) (-3 1) (5 9) 2.4.2 Thuật toán - Tiến hành duyệt hàng kết thúc vùng liệu ảnh, trình duyệt tiến hành kiểm tra để tìm loạt có giá trị đồng thời ý kí hiệu xuống dòng (hay kết thúc dòng), kết thúc ảnh Bitmap, … - Khi gặp loạt có độ dài > nhảy đến chế độ nén ngược lại nhảy đến chế độ không nén nhiên loạt > 255 tách mã < 255 sau mã 11 tiếp phần lại Ngoài chế độ khác như: bắt đầu, kết thúc dòng - Kết thúc gặp kí hiệu kết thúc bitmap (end – of bitmap) III Xây dựng ứng dụng thử nghiệm thuật toán mã hóa ảnh JPEG-LS 3.1 Môi trƣờng xây dựng 3.1.1 Ngôn ngữ lập trình Java Khái niệm Java: Java ngôn ngữ lập trình hướng đối tượng dựa lớp Khác với phần lớn ngôn ngữ lập trình thông thường, thay biên dịch mã nguồn thành mã máy thông dịch mã nguồn chạy, Java thiết kế để biên dịch mã nguồn thành bytecode, bytecode sau môi trường thực thi chạy Cú pháp Java vay mượn nhiều từ C C có cú pháp hướng đối tượng đơn giản tính xử lý cấp thấp Do việc viết chương trình Java dễ hơn, đơn giản hơn, đỡ tốn công sức Trong Java, tượng rò rỉ nhớ không xảy nhớ quản lý bới Java Virtual Machine (FVM) cách tự động dọn dẹp “rác” Người dùng quan tâm đến việc cấp phát xóa nhớ C, C++ Tuy nhiên sử dụng tài nguyên mạng, file IO, database (nằm kiểm soát FVM) tượng rò rỉ nhớ xảy người dùng không đóng streams Phiên tải về: Hiện phiên Java là: version update 91, cập nhật ngày19/4/2016 Liên kết tải Java: http://java.com/en/download/manual.jsp 3.1.2 IDE Eclipse Eclipse môi trường phát triển tích hợp (IDE thiết kế sử dụng phần mềm máy tính Nó chứa không gian làm việc sở hệ 12 thống plug-in mở rộng dễ dàng tùy biến cho môi trường phát triển khác Eclipse viết phần lớn java mục đích sử dụng phát triển ứng dụng java, sử dụng để phát triển ứng dụng ngôn ngữ lập trình khác thông qua việc sử dụng plug-in Môi trường phát triển eclipse bao gồm: Eclipse Java development tools (JDT) cho Java Scala, Eclipse CDT for C/C++ Eclipse PDT for PHP, Liên kết tải Eclipse: http://www.eclipse.org/downloads/ 3.1.3 Kiểm thử Infranview Phần mềm cho phép nén ảnh nhiều định dạng Liên kết tải: http://www.irfanview.com/ 3.2 Triển khai Đầu vào: ảnh BMP với kích thước 373 x 277 Tiến hành:  Đưa ảnh đầu vào qua chương trình xây dựng mã hóa nén JPEG-LS cho file text, từ file text ta xây dựng lại ảnh ban đầu Tính tỉ số nén  Đưa ảnh đầu vào qua phần mềm Infranview nén ảnh thành file JLS (định dạng JPEG-LS) Tính tỉ số nén  So sánh tỉ số nén thu 3.3 Kết 13 Hình 3.1: ảnh đầu vào định dạng BMP Hình 3.2: ảnh đầu ra, sau qua ứng dụng thử nghiệm Tính tỉ số nén dựa dung lượng liệu (bỏ qua phần header file tương ứng) Tỉ số nén dùng ứng dụng thử nghiệm xây dựng: Tỉ số nén dùng phần mềm Infranview: Nhận xét: tỉ số nén phần mềm chuyên dụng lớn nhiều so với ứng dụng thử nghiệm Giải thích: ứng dụng thử nghiệm chúng em dùng mã hóa loạt dải RLE để thực mã hóa vài khối lập trình chưa chuẩn nên không đạt tỉ số tối ưu phần mềm chuyên dụng 14 KẾT LUẬN Phương pháp nén ảnh không tổn hao Lossless sử dụng để nén ảnh quan trọng cần thiết trình phân tích biến đổi sau này, lượng thông tin mát nhỏ giúp cho ảnh giữ chất lượng tốt Tuy nhiên phương pháp nén ảnh Lossless sử dụng giới không ưu việt định dạng ảnh không mát thông tin khác MP hay GIF, hầu nhưu chương trình hỗ trợ định dạng Gần ủy ban ISO JPEG phát triển định dạng nén ảnh không mát thông tin JPEG-LS, cung cấp phương pháp mã hóa nhanh tốt hơn, không gây nhiều ý Có lẽ lâu phương pháp nén ảnh trở nên thông dụng nhiều người biết đến cải tiến vượt bậc để cạnh tranh với định dạng khác 15 Tài liệu tham khảo The LOCO-I Lossless Image Compression Algorithm: Principles and Standardization into JPEG-LS (download tại: www.labs.hp.com/research/info_theory/loco/HPL-98-193R1.pdf) Trang web http://www.ual.es/~vruiz/Docencia/Apuntes/Coding/Text/03symbol_encodi ng/09-Golomb_coding/index.html 16 [...]... số nén khi dùng phần mềm Infranview: Nhận xét: tỉ số nén của phần mềm chuyên dụng lớn hơn nhiều so với ứng dụng thử nghiệm Giải thích: do trong ứng dụng thử nghiệm chúng em chỉ dùng mã hóa loạt dải RLE để thực hiện mã hóa và một vài khối lập trình chưa chuẩn nên không đạt được tỉ số tối ưu như của phần mềm chuyên dụng 14 KẾT LUẬN Phương pháp nén ảnh không tổn hao Lossless được sử dụng để nén các ảnh. .. ta xây dựng lại ảnh ban đầu Tính tỉ số nén  Đưa ảnh đầu vào qua phần mềm Infranview nén ảnh thành file JLS (định dạng của JPEG-LS) Tính tỉ số nén  So sánh 2 tỉ số nén thu được 3.3 Kết quả 13 Hình 3.1: ảnh đầu vào định dạng BMP Hình 3.2: ảnh đầu ra, sau khi qua ứng dụng thử nghiệm Tính tỉ số nén dựa trên dung lượng dữ liệu (bỏ qua phần header của file tương ứng) Tỉ số nén khi dùng ứng dụng thử nghiệm... development tools (JDT) cho Java và Scala, Eclipse CDT for C/C++ và Eclipse PDT for PHP, Liên kết tải Eclipse: http://www.eclipse.org/downloads/ 3.1.3 Kiểm thử Infranview Phần mềm cho phép nén ảnh dưới nhiều định dạng Liên kết tải: http://www.irfanview.com/ 3.2 Triển khai Đầu vào: ảnh BMP với kích thước 373 x 277 Tiến hành:  Đưa ảnh đầu vào qua chương trình được xây dựng mã hóa nén JPEG-LS cho ra file text,... thiết kế sử dụng như một phần mềm máy tính Nó chứa một không gian làm việc cơ sở và một hệ 12 thống plug-in mở rộng dễ dàng tùy biến cho các môi trường phát triển khác nhau Eclipse được viết phần lớn bằng java và mục đích sử dụng chính của nó là phát triển các ứng dụng java, nhưng nó cũng có thể được sử dụng để phát triển các ứng dụng trong các ngôn ngữ lập trình khác thông qua việc sử dụng các plug-in... 3  s = 5×7 + 3 – 1 = 37 Như vậy giả mã giá trị 111110011 ta được giá trị ban đầu là s = 37 ΔX sau khi được mã hóa sẽ được lưu trữ và gửi đi, khi muốn khôi phục lại tính hiệu ảnh sẽ giải mã giá trị ΔX này kết hợp với dự đoán theo Loco-I để tính chính xác giá trị của X ban đầu 2.4 Mã hóa loạt dài RLE Nén dữ liệu hàng loạt – Run Length Encoding (RLE là phương pháp nén không mất dữ liệu RLE hoạt động làm... chuỗi dữ liệu bằng cách biểu diễn khác Nén dữ liệu hàng loạt có thể áp dụng cho mọi loại dữ liệu mà không phụ thuộc vào nội dung thông tin của dữ liệu đó, tuy nhiên mức độ hiệu quả của việc nén hay tỷ lệ nén rất phụ thuộc vào nội dung dữ liệu Với những loại dữ liệu mà thông tin trong đó ít lặp lại, việc áp dụng nén RLE có thể gây hiệu ứng ngược – tạo ra dữ liệu sau khi nén dung lượng lớn hơn cả dữ liệu... – of bitmap) III Xây dựng ứng dụng thử nghiệm thuật toán mã hóa ảnh JPEG-LS 3.1 Môi trƣờng xây dựng 3.1.1 Ngôn ngữ lập trình Java Khái niệm về Java: Java là một ngôn ngữ lập trình hướng đối tượng và dựa trên các lớp Khác với phần lớn ngôn ngữ lập trình thông thường, thay vì biên dịch mã nguồn thành mã máy hoặc thông dịch mã nguồn khi chạy, Java được thiết kế để biên dịch mã nguồn thành bytecode, bytecode... chỉ được áp dụng trong việc nén ảnh BMP, TIFF, loại dữ liệu còn nhiều “loạt” dữ liệu lặp lại Ý tưởng của phương pháp nén dữ liệu hàng loạt là tìm loạt dữ liệu liền nhau lặp lại, thay nó bằng một dữ liệu đại diện khác, mục đích để giảm kích thước dữ liệu gốc Loạt dữ liệu liền nhau được gọi là “Run Length” Chúng ta sẽ tìm hiểu ứng dụng của phương pháp trong việc nén dữ liệu ảnh 9 RLE là ứng viên tự nhiên... cho ta kết quả một 10 cách ổn định vì nó phụ thuộc hoàn toàn vào ảnh nén chỉ thích hợp cho những ảnh đen trắng hay ảnh đa cấp xám Ví dụ: Ta có một chuỗi nguồn: d=5 7 9 11 13 18 28 38 48 58 30 35 40 45 Chuỗi kết quả sau khi mã hoá: 1 5 1 7 1 9 1 11 1 13 1 18 1 28 1 38 1 48 1 58 1 30 1 35 1 40 1 45 Tỷ số nén = 14 / 28 = 0.2 Như vậy chuỗi sau khi mã hoá đã lớn hơn nhiều chuỗi nguồn ban đầu Do đó cần phương... phân tích và biến đổi sau này, vì vậy lượng thông tin mất mát là rất nhỏ giúp cho ảnh có thể giữ được chất lượng tốt nhất Tuy nhiên phương pháp nén ảnh Lossless ít được sử dụng trên thế giới do không ưu việt bằng các định dạng ảnh không mất mát thông tin khác như MP hay GIF, do vậy hầu nhưu không có chương trình nào hỗ trợ định dạng này Gần đây ủy ban ISO JPEG đã phát triển một định dạng nén ảnh không

Ngày đăng: 08/06/2016, 23:56

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

  • Đang cập nhật ...

Tài liệu liên quan