Phép biến đổi wavelet rời rạc. JPEG2000 có nhiều chức năng đặc biệt hơn mọi chuẩn nén ảnh tĩnh khác như JPEG hay GIF. Gồm có: Cho chất lượng ảnh tốt nhất khi áp dụng nén ảnh tĩnh có tổn thất. Sử dụng được với truyền dẫn và hiển thị lũy tiến về chất lượng, độ phân giải, các thành phần màu và có tính định vị về không gian Sử dụng cùng một cơ chế nén ảnh cho cả hai dạng thức nén Truy nhập và giải nén tại mọi thời điểm trong khi nhận dữ liệu Giải nén từng vùng trong ảnh mà không cần giải nén toàn bộ ảnh Có khả năng mã hóa ảnh với tỉ lệ nén theo từng vùng khác nhau Nén một lần nhưng lại có thể giải nén với nhiều cấp chất lượng tùy theo yêu cầu của người sử dụng
TRƢỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG - - Báo cáo Bài tập lớn môn: Xử lí liệu đa phƣơng tiện Đề Tài 9: Nén ảnh dựa phép biến đổi Wavelet rời rạc chuẩn JPEG2000 Giảng viên hƣớng dẫn: PGS.TS Nguyễn Thị Hoàng Lan Sinh viên thực hiện: MSSV: Lớp: Trƣơng Mạnh Tuấn Đinh Phú Long Trần Thanh Sơn Phạm Đức Thành 20112454 20111803 20112088 20112194 CNTT 1.2 K56 CNTT 1.2 K56 CNTT 1.1 K56 CNTT 1.2 K56 Hà Nội – 05/2015 MỤC LỤC MỤC LỤC LỜI NÓI ĐẦU CHƢƠNG 1: TÌM HIỂU CHUNG VỀ CHUẨN JPEG2000 .5 1.1 Lịch sử phát triển 1.2 Các ƣu điểm chuẩn JPEG2000 .6 1.3 Các đặc điểm JPEG-2000 .7 1.4 Sơ đồ chung nén ảnh JPEG2000 1.5 Tiền xử v iến đổi i n th nh phần CHƢƠNG 2: TÌM HIỂU PHÉP BIẾN ĐỔI WAVELET 11 2.1 Tổng quan phép biến đổi Wavelet 11 2.2 Biến đổi Wavelet rời rạc DWT 12 2.3 Phân tích đa phân giải 13 2.4 Kỹ thuật thực DWT .14 2.5 Các thuật toán nén sử dụng DWT điển hình .16 2.6 Một số ứng dụng bật Wavelet .16 2.6.1 Nén tín hiệu 16 2.6.2 Khử nhiễu 16 2.6.3 Mã hóa nguồn mã hóa kênh .16 CHƢƠNG 3: VAI TRÒ VÀ KĨ THUẬT THỰC HIỆN DWT TRONG JPEG2000 .17 3.1 Vai trò 17 3.1.1 Tập trung lượng giúp nén liệu 17 3.1.2 Giảm thiểu độ méo ảnh 17 3.1.3 Khử nhiễu tín hiệu 17 3.2 Các kỹ thuật thực DWT JPEG 2000 17 3.2.1 Kỹ thuật thực DWT 17 3.2.2 Các lọc DWT sử dụng 20 CHƢƠNG 4: TÌM HIỂU MỘT THUẬT TOÁN NÉN TRONG JPEG2000 VÀ SO SÁNH THỰC NGHIỆM KHI NÉN ẢNH VỚI THUẬT TOÁN ĐÓ 22 4.1 Các thuật toán nén JPEG 2000 22 4.2 Phƣơng pháp nén Em edded Zerotree Wave et (EZW) .23 4.3 Ví dụ EZW 26 4.3.1 Mã hóa 26 4.3.2 Giải Mã 28 4.4 Thực thử nghiệm 29 KẾT LUẬN .33 TÀI LIỆU THAM KHẢO .34 LỜI NÓI ĐẦU Ngày này, thông tin phần quan trọng sống Việc chuyền tải thông tin, liệu vô cần thiết xã hội ngày Cộng thêm với giới ng y c ng phát triển, yêu cầu tốc độ chuyền tải tối quan trọng Trong số loại liệu, ảnh kĩ thuật số phần thiếu Trong giới mà công nghệ phát triển, ảnh ng y c ng đƣợc xuất nhiều khắp nơi Tuy nhi n công nghệ phát triển làm cho ảnh ngày chi tiết đồng nghĩa với việc dung ƣợng chúng tăng n Để đáp ứng đƣợc nhu cầu chuyền tải cách nhanh chóng với việc ƣu trữ dễ d ng hơn, công nghệ nén ảnh đƣợc đời Trong i áo cáo n y, chúng em xin đƣợc tìm hiểu chuẩn JPEG 2000 dựa phép biến đổi Wavelet rời rạc Đây công nghệ phổ biến từ trƣớc v dùng để nén ảnh kĩ thuật số CHƢƠNG 1: TÌM HIỂU CHUNG VỀ CHUẨN JPEG2000 1.1 Lịch sử phát triển Từ năm 80 kỷ trƣớc, thành viên Hiệp hội Viễn thông Quốc tế (ITU) Tổ chức Tiêu chuẩn Quốc tế (ISO) thiết lập tiêu chuẩn quốc tế chung cho nén ảnh xám ảnh m u, ti u chuẩn JPEG (Joint Photographic Experts Group - Hiệp hội Chuyên gia Hình ảnh) Sau nghiên cứu số phƣơng pháp mã hóa, th nh vi n JPEG ựa chọn phƣơng pháp cosin rời rạc DCT v o năm 1988 Từ năm 1988 đến 1990, nhóm thành viên tiếp tục làm việc nhƣ kiểm tra, dẫn chứng thuật toán, mô tiêu chuẩn JPEG V o năm 1991, JPEG trở thành tiêu chuẩn quốc tế thử nghiệm v năm 1992 thức trở thành tiêu chuẩn quốc tế Sự đời chuẩn nén ảnh tĩnh JPEG mang ại nhiều lợi ích to lớn nhiều mặt ngành công nghệ JPEG giảm nhỏ kích thƣớc ảnh, giảm thời gian truyền xử lý ảnh đảm bảo đƣợc chất ƣợng hình ảnh cho phép Công nghệ JPEG tƣơng đối hiệu làm việc với ảnh kích cỡ lớn, nhiều màu, với hệ số nén đạt đƣợc 80 ần so với ảnh gốc Tuy nhi n, ngƣời ta ứng dụng dạng thức nén có tổn thất thông tin JPEG mã hóa không tổn thất JPEG phức tạp Kỹ thuật nén ảnh JPEG làm mát thông tin lúc giải nén, hệ số nén cao hình ảnh sau nén bị sai lệch nhiều hơn, gần giống nhƣ an đầu không đạt ho n to n nhƣ hình ảnh gốc, dù với mắt thƣờng khó nhận điều khác biệt Đến cuối năm 90 kỷ 20, vấn đề Y2K khiến cho ngƣời phải vất vả tìm cách khắc phục Một yêu cầu đặt m để giảm kích thƣớc liệu để phù hợp với nhớ hạn hẹp Đồng thời với phát triển truyền thông liệu vấn đề kích thƣớc giữ liệu lại quan trọng Vì để giải vấn đề n y, tháng 12 năm 1999 Ủy an JPEG đƣa phác thảo tiêu chuẩn nén hình ảnh theo công nghệ JPEG 2000, sử dụng biến đổi Wave et v phƣơng pháp mã hóa đặc biệt để nén ảnh ƣu việt hẳn JPEG Tháng năm 2000, ản phác thảo tiêu chuẩn JPEG2000 đƣợc ƣu h nh giới chuyên gia hình ảnh Sau đƣợc công nhận tiêu chuẩn quốc tế vào tháng 12 năm 2000 v đƣợc ISO hợp thức hóa phép ứng dụng vào hệ xử lý, phân phối JPEG2000 áp dụng kỹ thuật nén để ƣu trữ liệu ảnh, thay định dạng nén file ảnh thời DCT (Discrete Cosine Transformation) Nếu DCT nén ảnh theo khối vuông nhỏ ƣu chúng dƣới dạng số kỹ thuật nén Wavelet ƣu fi e dƣới dạng dãy liệu (kỹ thuật Stream hình) nhằm tạo độ phân giải cao fi e đƣợc mở tải Đề án nhằm tạo hệ thống nén ảnh cho nhiều loại ảnh tĩnh khác (hai mức, mức xám, màu nhiều thành phần) với đặc tĩnh (ảnh tự nhiên, khoa học, y tế, văn ản, đồ họa miêu tả…) cho mô hình ảnh khác (client/server, truyền thời gian thực, ƣu giữ thƣ viện ảnh, giới hạn đệm v ăng thông…) tất hệ thống Hệ thống mã hóa hoạt động tỷ lệ bit thấp với tỷ lệ méo chất ƣợng ảnh chủ quan tốt so với tiêu chuẩn nén ảnh tồn mà bỏ số điểm méo phổ, tập hợp lúc có nhiều đặc tính quan trọng Tiêu chuẩn không thay cho tiêu chuẩn JPEG Tiêu chuẩn JPEG2000 tiêu chuẩn quan trọng sử dụng rộng khắp tƣơng tự nhƣ JPEG với mã hóa Arithmetric Với ti u chí dung ƣợng nhỏ nhƣng chất ƣợng hình ảnh cao (có thể nén ảnh nhỏ từ 100-200 lần mà ảnh không sai sót so với hình ảnh gốc), JPEG2000 với xƣơng sống biến đổi Wave et có tính vƣợt trội so với JPEG ƣớc phục vụ giai đoạn chắn đƣợc sử dụng phổ biến ứng dụng tƣơng 1.2 Các ƣu điểm chuẩn JPEG2000 JPEG2000 có nhiều chức đặc biệt chuẩn nén ảnh tĩnh khác JPEG hay GIF Gồm có: Cho chất lượng ảnh tốt áp dụng nén ảnh tĩnh có tổn thất Sử dụng với truyền dẫn hiển thị lũy tiến chất lượng, độ phân giải, thành phần màu có tính định vị không gian Sử dụng chế nén ảnh cho hai dạng thức nén Truy nhập giải nén thời điểm nhận liệu Giải nén vùng ảnh mà không cần giải nén toàn ảnh Có khả mã hóa ảnh với tỉ lệ nén theo vùng khác Nén lần lại giải nén với nhiều cấp chất lượng tùy theo yêu cầu người sử dụng Hiện ISO ủy ban JPEG đưa khuyến nghị thay JPEG JPEG2000 1.3 Các đặc điểm JPEG-2000 Chuẩn nén JPEG-2000 có đặc điểm sau: Nén với tỷ ệ it thấp: ti u chuẩn JPEG2000 đƣa khả nén với tốc độ it thấp so với ti u chuẩn nén (ví dụ dƣới 0.25 pp cho ảnh xám chi tiết cao) Ý nghĩa đặc điểm n y đạt đƣợc tốc độ it thấp m không m méo ảnh , hiệu tỉ số nén tăng 30% so với JPEG Nén tổn hao v nén không tổn hao: JPEG2000 có khả nén không tổn hao v nén tổn hao Ví dụ ứng dụng sử dụng đặc tính nén không tổn hao: ảnh y tế, ứng dụng mạng Nó y u cầu ti u chuẩn có đặc tính tạo dòng it nhúng v cho phép cải thiện chất ƣợng ảnh Tăng độ phân giải v độ xác pixe : tăng cƣờng độ phân giải cho phép ảnh khôi phục với độ xác pixe tăng độ phân giải không gian cần thiết cho nhiều ứng dụng Đặc tính n y cho phép khôi phục ảnh với độ phân giải khác v độ xác pixe theo y u cầu v đòi hỏi, cho thiết ị đầu cuối khác nhƣ Wor d Wide We , ảnh ƣu giữ v in ấn Mã hóa vùng quan tâm ROI: thông thƣờng ảnh ngƣời ta quan tâm đến số vùng ảnh Đặc điểm n y cho phép ngƣời sử dụng xác định xác vùng quan tâm ảnh để mã hóa v truyền với chất ƣợng tốt v méo so với vùng ại Phƣơng pháp n y có phƣơng pháp thực MAXSHIFT v Sca e Xử v truy nhập ngẫu nhi n: đặc điểm n y cho phép ngƣời sử dụng xác định vùng quan tâm ảnh để truy nhập ngẫu nhi n v /hoặc giải nén méo so với vùng ảnh ại Xử dòng mã ngẫu nhi n n y cho phép ta quay ảnh, dịch ảnh, ọc ảnh, khai triển đặc điểm v tỷ ệ ảnh Giảm khả ỗi it: giảm khả ỗi it thiết kế dòng mã hóa Một ứng dụng truyền k nh viễn thông không dây Tỷ ệ dòng mã hóa quan trọng dòng mã khác xác định chất ƣợng ảnh giải mã Dòng it thiết kế quy tắc trợ giúp hệ thống chỉnh sửa ỗi đến sau ỗi giải mã Kiến trúc mở: đặc điểm n y cho phép kiến trúc mở để tối ƣu hệ thống cho ứng dụng v oại ảnh khác Với đặc tính n y, giải mã thực ộ công cụ õi v phân tích để hiểu dòng mã Nếu cần thiết, không xác định đƣợc công cụ y u cầu từ ộ giải mã để n nguồn gửi sang Mi u tả nội dung: ảnh ƣu giữ, index v tìm kiếm đặc điểm quan trọng xử ảnh Mi u tả nội dung ảnh th nh phần hệ thống nén ảnh (ví dụ thông tin iệu phụ metadata) Thông tin k nh không gian (trong suốt): thông tin k nh không gian nhƣ mặt phẳng a pha v mặt phẳng suốt hữu ích cho truyền thông tin cho xử ảnh nhƣ hiển thị, in ấn v dựng Bảo mật ảnh: ảo vệ ảnh số có nhận đƣợc nhờ watermarking, a e , tem v mã mật hóa (Encryption) Nhãn đƣợc thực SPIFF v phải dễ truyền truyền ại tới fi e ảnh JPEG2000 Nén hai mức nhiều mức: đƣa ti u chuẩn mã hóa có khả mã hóa ảnh hai mức, nhiều mức Nếu thực hiện, tiêu chuẩn cố gắng đạt đƣợc với nguồn hệ thống tƣơng tự Hệ thống phải nén giải nén với dải thông thay đổi (ví dụ bit tới 16 bit) cho thành phần màu Ví dụ sử dụng đặc tính là: ảnh y học với lớp thích, ảnh đồ họa ảnh máy tính tạo với nhị phân gần vùng nhị phân, mặt phẳng alpha suốt 1.4 Sơ đồ chung nén ảnh JPEG2000 Dựa tr n sơ đồ ta khái quát chung ƣớc nén ảnh JPEG-2000 gồm ƣớc: - Bƣớc : Tiền xử lý biến đổi liên thành phần Bƣớc : Biến đổi Wavelet rời rạc ( DWT) Bƣớc : Lƣợng tử hóa Bƣớc : Mã hóa Entropy Chuẩn JPEG2000 làm việc dựa tr n ti u đề ảnh Ảnh nguồn đƣợc phân chia thành khối không trùng lặp trình gọi ti u đề Các ti u đề n y đƣợc nén độc lập để qua ta v o phần ảnh độc lập Mọi hoạt động bao gồm kết hợp thành phần, biến đổi WAVELET, ƣợng tử hóa v mã hóa entropy đƣợc thực cách độc lập cho ti u đề Quá trình xây dựng ti u đề làm giảm dung ƣợng nhớ cần thiết, từ ti u đề đƣợc khôi phục cách độc lập sử dụng tập trung cho vài khối giải mã đặc biệt ảnh giải mã toàn ảnh Mỗi ti u đề đƣợc nhìn nhận nhƣ dãy số dƣơng cách thể i n độ dấu Các dãy đƣợc thể số ƣợng mặt phẳng bit Các mặt phẳng bit chuỗi dãy nhị phân với bit cho hệ số dãy số dƣơng Mặt phẳng it chứa hầu hết bit tiêu biều MSB (most significant bit) biên độ Dãy thứ hai chứa bit MSB i n độ, tiếp tục nhƣ dãy cuối thỏa mãn phải gồm bit tiêu biểu cho i n độ Trƣớc thực biến đổi wavelet rời rạc DWT áp dụng vào cho ti u đề, ti u đề ảnh ƣớc dịch DC cách trừ số đƣợc gọi chiều sâu thành phần Bƣớc dịch chuyển DC dịch chuyển ti u đề ảnh tới mặt phẳng bit thu đƣợc sử dụng cho mục đích mã hóa vùng ROI 1.5 Tiền v i n đổi iên th nh ph n Do sử dụng biến đổi wavelet, JPEG2000 cấn có liệu ảnh đầu vào dạng đối xứng qua Xử trƣớc biến đổi giai đoạn đảm bảo liệu đƣa v o nén ảnh có dạng Bên phía giải mã, giai đoạn xử lý sau biến đổi trả lại giá trị gốc an đầu cho liệu ảnh Ảnh đầu v o đƣợc chia thành ô vuông không chồng lên gọi Tit e Kích thƣớc Title từ 64 x 64 đến tối đa ảnh gốc Giai đoạn loại bỏ tính tƣơng quan thành phần ảnh JPEG2000 sử dụng hai loại biến đổi màu thuận nghịch (Reversible Color Transform -RCT) biến đổi màu không thuận nghịch (Irreversible Color Transform - ICT) iến đổi màu thuận nghịch làm việc với giá trị nguyên, biến đổi màu không thuận nghịch làm việc với giá trị thực RCT ICT chuyển đổi liệu ảnh từ không gian màu RGB sang YCrCb RCT đƣợc áp dụng dạng thức cho nén có tổn thất không tổn thất, ICT áp dụng cho nén không tổn thất Việc áp dụng biến đổi n y trƣớc nén ảnh không nằm mục đích m tăng hiệu nén Các thành phần Cr, Cb có ảnh hƣởng tới cảm nhận hình ảnh mắt thành phần độ chói Y có ảnh hƣởng lớn tới ảnh, nhƣ hình vẽ sau: o Thuận: o Nghịch: 3.2.2 Các lọc DWT sử dụng Bộ lọc Daubechies (5,3) dùng cho số nguyên thuận nghịch Có thể dùng cho nén ảnh không tổn hao , độ tính toán phức tạp thấp Hình : Các hệ số lọc Daubechies(5,3) Bộ lọc Daubechies (9,7) dùng cho số thực dùng cho nén có tổn hao Bộ lọc khôi phục đƣợc tính dựa vào lọc phân tích công thức sau: ( ) Hình : Các hệ số lọc Daubechies(9,7) Trong JPEG-2000, DWT đƣợc thực kỹ thuật Lifting Các lọc mà JPEG-2000 Part cung cấp: cung cấp lựa chọn sau: Daubechies (9, 7): Bộ lọc số thực, nén có tổn hao Daubechies (5, 3): Bộ lọc số nguyên, nén không tổn hao v độ phức tạp tính toán thấp CHƢƠNG 4: TÌM HIỂU MỘT THUẬT TOÁN NÉN TRONG JPEG2000 VÀ SO SÁNH THỰC NGHIỆM KHI NÉN ẢNH VỚI THUẬT TOÁN ĐÓ 4.1 Các thuật toán nén JPEG 2000 Chuẩn JPEG2000 chuẩn có tính mở tƣơng đối cao, cho phép ngƣời thực sản phẩm lựa chọn nhiều phƣơng thức thực khối chức Trong ựa chọn đáng quan tâm khối: Thực phép biến đổi Wavelet rời rạc DWT Thực ƣợng tử hóa hệ số sau biến đổi Wavelet (Quantization) Tổ chức mã hóa nén hệ số (Tier-1 coding) Tổ chức xếp dòng bit sau Tier-1 coding (Tier-2 coding) Nhƣ phần tr n trình y, phép iến đổi Wavelet rời rạc đƣợc thực hai phƣơng pháp nhân chập (convo ving) v phƣơng pháp ifting (phi n ản tính nhanh tiết kiệm tài nguyên nhân chập) Trên thực tế, để đạt hiệu suất tốt sản phẩm dùng phƣơng pháp thứ hai, phƣơng pháp thứ thực thử nghiệm tính đơn giản thiết kế Khối ƣợng tử hóa đƣợc thực đa dạng, chủ yếu h m ƣợng tử hóa ( ) đƣợc xây dựng nhƣ n o để phù hợp với phần lớn liệu đầu vào, cho kết dãy số nguy n có đặc tính tốt giúp Tier-1 coding nén đƣợc nhiều Khuyến nghị chuẩn JPEG2000 loại ƣợng tử hóa miền, tiếng Anh Uniform Quantization with Deadzone, đƣợc xác định h m ƣợng tử hóa: ( ( ) ): hệ số Wavelet vị trí ( [ ( )] ⌊ ( | )| ⌋ ), ăng tần ( ): hàm lấy dấu ( ): hệ số Wave et sau ƣợng tử hóa thành số nguyên : ƣớc ƣợng tử hóa, thay đổi theo ăng tần ( ) lọc Wavelet: : nominal dynamic range ăng tần , tổng số it an đầu biểu diễn pixel ảnh v độ tăng ích lọc ăng tần : số bit biểu diễn phần mũ (exponent) hệ số Wavelet : số bit biểu diễn phần số (mantissa) hệ số Wavelet Với h m ƣợng tử hóa đƣợc định nghĩa nhƣ tr n, ăng tần có ƣớc ƣợng tử hóa riêng phù hợp với dải giá trị thƣờng thấy ăng tần đó, đồng thời khiến giá trị nhỏ thuộc ăng tần cao (LH, HL, HH) tập trung nhiều làm cho Tier-1 coding nén tốt Tuy nhiên với hỗ trợ ƣợng tử hóa, mã hóa nén cần phải có phƣơng pháp tổ chức ri ng để đạt yêu cầu JPEG2000: Nén không mát hệ số sau ƣợng tử hóa với tỉ số nén cao Hỗ trợ cho truy cập ngẫu nhiên vào vùng khác ảnh Hỗ trợ cho biểu diễn đa phân giải giải nén Sự lựa chọn cho mã hóa nén không mát thƣờng loại mã hóa entropy nhƣ mã hóa Huffman mã hóa số học (Arithmetic Coding) dạng dẫn xuất chúng Tuy nhiên với đặc điểm phân bố hệ số đầu sau biến đổi Wavelet việc thực trực tiếp nén không đạt hiệu cao JPEG2000 cho phép sử dụng số phƣơng pháp tổ chức lại hệ số ằng số thuật toán nhƣ: Embedded Zerotree Wavelet (EZW) Set Partitioning in Hierachical Trees (SPIHT) phiên 3D Spatial-orientation Tree Wavelet (STW) Wavelet Difference Reduction (WDR) Adaptively Scanned Wavelet Difference Reduction (ASWDR) Embedded Block Coding with Optimal Truncation (EBCOT) Trong tìm hiểu lần n y, nhóm chúng em tìm hiểu sơ ƣợc phƣơng pháp n y v lựa chọn tập trung mô tả phƣơng pháp EZW 4.2 Phƣơng pháp nén Embedded Zerotree Wavelet (EZW) Cây tứ phân: Nhƣ trình y phần kĩ thuật thực Wavelet, sau thực phép biến đổi ta thu nhận đƣợc hệ số ăng tần khác đƣợc xếp lại cách khái quát nhƣ hình tr n, liệu (hình ảnh) gốc đƣợc chia làm bốn phần tƣơng ứng với ăng tần LL, HL, LH, HH Đặc điểm hệ số giá trị lớn tập trung ăng tần thấp (LL), ngo i ăng tần lại chứa hệ số có giá trị thấp hơn, đặc biệt HH giá trị nhỏ gần Cây không (zerotree): Phƣơng pháp n y đƣợc xây dựng dựa nhận xét: coi cấu trúc ăng tần sau biến đổi Wavelet có dạng hình mô tả nhƣ hình vẽ nút cha có giá trị không đáng kể nút có giá trị không đáng kể; nút cha nút hầu hết 0, nghĩa không tạo khác biệt lớn đƣợc ƣu hay ƣu chi tiết Vì vậy, đem quét tập giá trị hệ số Wavelet theo cách n o để xây dựng đƣợc rừng mô tả có toàn số không, gọi không (zerotree) hay giá trị không đáng kể Những hoàn toàn đƣợc thay kí tự nhất, kết tập hệ số đƣợc nén lại nhiều Nguyên lý hoạt động thuật toán: Thuật toán mã hóa hệ số theo thứ tự giảm dần Chúng ta dùng giá trị gọi ngƣỡng sử dụng ngƣỡng n y để tiến hành mã hóa hệ số biến đổi hệ số đƣợc mã hóa theo thứ tự từ vùng tần số thấp đến vùng tần số cao Và hệ số có giá trị tuyệt đối lớn ngƣỡng dc mã hóa Tiếp theo giảm ngƣỡng tiếp tục m nhƣ ngƣỡng đạt tới giá trị nhỏ giá trị hệ số nhỏ Các giảm giá trị ngƣỡng thực tƣơng đối đặc biệt, giá trị ngƣỡng giảm xuống nửa so với trƣớc Bộ giải mã phải biết mức ngƣỡng giải mã ảnh thành công Ngƣỡng đầu ti n đƣợc tính theo công thức: Với ngƣỡng n o đó, đƣa hệ số qua hai vòng kiểm soát (pass), cụ thể: • • Significant pass: Các hệ số đƣợc xác định tính đáng kể sau đƣợc mã hóa thành kí tự ‘p’, ‘n’, ‘t’, ‘z’, đó: o ‘p’ – positive significant: giá trị tuyệt đối hệ số dƣơng ớn ngƣỡng xét o ‘n’ – negative significant: giá trị tuyệt đối hệ số âm lớn ngƣỡng xét o ‘z’ – insignificant with significant descendants: giá trị tuyệt đối hệ số nhỏ ngƣỡng xét, nhƣng có hệ số có trị tuyệt đối lớn hơn, tức có đáng kể o ‘t’ – zerotree root: gốc không, tức trị tuyệt đối giá trị hệ số không đáng kể Refinement pass: Các hệ số đƣợc mã hóa ‘p’ hay ‘n’ đƣợc xét giá trị cụ thể cho ‘0’ ‘1’ Sử dụng thuật toán quét (scan) giá trị hệ số bảo đảm yêu cầu: hệ số mức thực Wave et cao đƣợc quét trƣớc, mức Wavelet thấp đƣợc quét sau; hệ số ăng tần thấp đƣợc quét trƣớc tới hệ số ăng tần cao Thông thƣờng áp dụng Morton Scan hình chữ Z: 4.3 Ví dụ EZW 4.3.1 Mã hóa Bƣớc 1: Cmax= 57 To = 2^5 = 32 Xét giá trị theo Morton Scan A3 = 57 > 32 => A3= P H3 = -35 |-35| > 32 => H3= N V3 = -29 |-29| < 32 nhƣng có V1 có giá trị 47 > 32 => V3= Z D3 = 25 < 32 nhƣng giá trị D2 D1 > 32 => D3 = T [A3, H3, V3, D3] = PNZT Tiếp tục theo Morton Scan ta xét đến vùng H2, V2, D2 tro đến zerotree Tƣơng tự ta có H2 = PTTT, V2 = TZTT D2 không cần mã hóa D3 zero Tiếp tục mã hóa ƣớc ta đƣợc dãy: PNZT PTTT TZTT TTTT TPTT Tiếp theo ta mã hóa giá trị P N, ta lấy dọc theo bit thứ giá trị Sau ho n th nh ta thu đƣợc Bƣớc 2: Bƣớc thứ ta giảm ngƣỡng xuống nửa 16 Tiếp tục theo Morton Scan Ta thu đƣợc P2 = ZTNPTTTTTTTT Các giá trị vƣợt ngƣỡng : 57 35 52 47 29 25, giá trị ƣớc lần ƣợt đƣợc ghi sau giá trị ƣớc Mã hóa giá trị lần lấy dọc bit thứ ta dc S2 = 100111 Cứ tiếp tục đến ngƣỡng đạt giá trị thấp ta đƣợc Sau ta dùng mã Huffman để dòng liệu nhị phân 4.3.2 Giải Mã P nhận giá trị Tn, N nhận giá trị -Tn Z T không nhận giá trị Cứ lần cộng thêm S, giá trị Tn giảm nửa nhận giá trị Tn, j Thứ tự xét theo Morton Scan Bƣớc 1: Xét P1, giá trị P = To = 32, N = -To = -32, Z = T = Các giá trị đƣợc điền theo mô hình Morton Scan nhƣ mã hóa Xét S1, giá trị 1,0,1,0 đƣợc cộng vào giá trị P v N tƣơng ứng P1 = 1/2To = 16, Thêm 16 P – 16 N Các giá trị không thêm Bƣớc 2: Ngƣỡng P2 16 Ngƣỡng S2 giảm nửa lại Cứ tiếp tục nhƣ đến ta giải mã xong Về ản giải mã thực ngƣợc lại mã hóa 4.4 Thực thử nghiệm Với mô tả thuật toán nhƣ tr n, nhóm chúng em định thử nghiệm với công cụ hỗ trợ tr n MATLAB để nén ảnh mức xám, kích cỡ nhỏ (256x256) theo sơ đồ sau: Trong đó, khối DWT khối mã hóa số học Arithmetic Compression đƣợc thực h m có sẵn MATLAB, khối ƣợng tử hóa Quantization khối mã hóa EZW đƣợc thực code ngôn ngữ tƣơng ứng Hàm xây dựng bảng ƣợng tử hóa đƣợc thực theo công thức nhƣ sau: function Qtable = testquant(row, col, l) R=8;c=11;f=52;i=l; t = (1+f/2^11)*2^(R-c+i); Qtable = zeros(row,col); for level=1:i end_x = uint16(row/(2^(level-1))); end_y = uint16(col/(2^(level-1))); end_x2 = uint16(end_x/2); end_y2 = uint16(end_y/2); Qtable(1:end_x2,1:end_y2) = t/(2^level); %CA part Qtable(end_x2+1:end_x,1:end_y2) = t/(2^(level-1)); %CH part Qtable(1:end_x2,end_y2+1:end_y) = t/(2^(level-1)); %CV part Qtable(end_x2+1:end_x,end_y2+1:end_y) = t/(2^(level-2)); %CD part end; Hàm xét thứ tự theo Morton Scan: function scan = func_morton(pos,n); bits = log2(n*n); % number of bits needed to represent position bin = dec2bin(pos(:),bits); % convert position to binary scan = [bin2dec(bin(:,1:2:bits-1)), bin2dec(bin(:,2:2:bits))]; Hàm mã hóa theo EZW: function [significance_map, refinement] = func_ezw_enc(img_wavedata,ezw_encoding_threshold); subordinate_list = []; refinement = []; significance_map = []; img_wavedata_save = img_wavedata; img_wavedata_mat = img_wavedata; % calculate Morton scan order n = size(img_wavedata,1); scan = func_morton([0:(n*n)-1],n); % calculate initial threshold init_threshold = pow2(floor(log2(max(max(abs(img_wavedata)))))); threshold = init_threshold; while (threshold >= ezw_encoding_threshold) [str, list, img_wavedata] = func_dominant_pass(img_wavedata, threshold, scan); significance_map = strvcat(significance_map, char(str)); if(threshold == init_threshold), subordinate_list = list; else subordinate_list = func_rearrange_list(subordinate_list, list, scan, img_wavedata_save); end [encoded, subordinate_list] = func_subordinate_pass(subordinate_list, threshold); refinement = strvcat(refinement, strrep(num2str(encoded), ' ', '')); threshold = threshold / 2; end Hàm giải mã EZW: function img_wavedata_dec = func_ezw_decode(dim, threshold, significance_map, refinement); img_wavedata_dec = zeros(dim,dim); % calculate Morton scan order scan = func_morton([0:(dim*dim)-1],dim); % number of steps significance map (and refinement data) steps = size(significance_map,1); for step = 1:steps, % decode significancemap for this step img_wavedata_dec = func_decode_significancemap(img_wavedata_dec, significance_map(step,:), threshold, scan); img_wavedata_dec = func_decode_refine(img_wavedata_dec, refinement(step,:), threshold, scan); threshold = threshold/2; end Tính MSE, bbp tỉ lệ nén: % MSE sum = 0; for i=1:size_row for j=1:size_col sum = sum + (double(img_reconstructed(i,j)-img(i,j)))^2; end; end; MSE = sum / size_row / size_col; % Compression rate rate = size_row*size_col*8 / length(img_ezw_stream_bit); % Bbp bbp = length(img_ezw_stream_bit)/size_row/size_col; K t Kết ảnh hiển thị sau giải nén không đƣợc tốt thuật toán EZW gây sai số lớn Với mức phân rã, chất ƣợng ảnh không đƣợc tốt Với mức phân ra, chất ƣợng ảnh cho tốt hơn, sai số MSE tăng tăng số ƣợng phân rã bbp giảm tăng số ƣợng phân rã KẾT LUẬN Qua trình tìm hiểu, nghiên cứu vấn đề nén ảnh phƣơng pháp Wave et áp dụng thực tiễn chuẩn JPEG2000, kết hợp với hiểu biết phƣơng pháp chuẩn nén khác, chúng em thấy Wavelet JPEG2000 có ƣu điểm lớn, hƣớng tới kết hiển thị tốt, nhiên lại vƣớng mắc tính mở tính phức tạp thuật toán Vì việc sử dụng Wave et nhƣ việc xây dựng sản phẩm theo chuẩn JPEG2000 nhiều thách thức nhƣ nhiều điều phải nghiên cứu để giúp giảm thiểu thách thức v đƣa đƣợc tƣởng tốt vào thực tiễn Tuy nhiên phủ nhận lợi ích to lớn m JPEG2000 đem ại cho TÀI LIỆU THAM KHẢO http://luanvan.co/luan-van/nghien-cuu-ky-thuat-giau-thong-tin-trong-anh-jpeg2000-44678/ http://www.nsl.hcmus.edu.vn/greenstone/collect/tiensifu/index/assoc/HASH01f6.di r/2.pdf http://en.wikipedia.org/wiki/Cohen-Daubechies-Feauveau_wavelet http://www.mathworks.com/matlabcentral/fileexchange/19296-ezw embeddedzerotree-wavelethttp://onlinelibrary.wiley.com/doi/10.1002/9780470612491.app1/pdf http://www.ws.binghamton.edu/fowler/fowler%20personal%20page/EE523_files/ Ch_15_4%20EZW%20%28PPT%29%20revised.pdf [...]... Thực hiện phép biến đổi Wavelet rời rạc DWT Thực hiện ƣợng tử hóa các hệ số sau biến đổi Wavelet (Quantization) Tổ chức và mã hóa nén các hệ số này (Tier-1 coding) Tổ chức và sắp xếp dòng bit sau Tier-1 coding (Tier-2 coding) Nhƣ ở phần tr n đã trình y, phép iến đổi Wavelet rời rạc có thể đƣợc thực hiện bởi hai phƣơng pháp chính nhân chập (convo ving) v phƣơng pháp ifting (phi n ản tính nhanh và tiết... VAI TRÒ VÀ KĨ THUẬT THỰC HIỆN DWT TRONG JPEG2000 3.1 Vai trò 3.1.1 Tập trung năng ƣợng giúp nén dữ liệu Wave et đƣợc sử dụng để nén hay phân tích các tín hiệu ảnh số và các ứng dụng nén dữ liệu Phép biến đổi DWT có các hệ số biến đổi của wavelet có khả năng tập trung năng ƣợng tốt vào các hệ số biến dổi Các hệ số mang thông tin chi tiết của ảnh thì thƣờng rất nhỏ nên có thể bỏ qua mà khong ảnh hƣởng... Scheme: đƣợc sử dụng để tạo các biến đổi wavelet số nguyên 2.6 Một số ứng dụng nổi bật của Wavelet 2.6.1 Nén tín hiệu Do đặc điểm của mình, Wave et đặc biệt tốt khi sử dụng để nén hay phân tích các tín hiệu không dừng; đặc biệt là tín hiệu ảnh số và các ứng dụng nén tiếng nói, nén dữ liệu Việc sẻ dụng các phép mã hóa ăng con, ăng ọc số nhiều nịp và biến đổi wavelet rời rạc tƣơng ứng với loại tín hiệu... ít đƣợc dùng Cả hai trở ngại tr n đƣợc giải quyết đồng thời bằng cách rời rạc hóa thông sốa, b: a = 2m ; b = n.2m (m,n Z) Do đó việc tính toán biến đổi DWT thực chất là sự rời rạc hóa biến đổi wavelet liên tục CWT, việc rời rạc hóa đƣợc thực hiện với sự lựa chọn các hệ số a v nhƣ tr n Việc tính toán hệ số của biến đổi Wavelet rời rạc có thể dê dàng thực hiện bằng các ăng lọc số nhiều nhịp đa k nh 2.3... mang thông tin quan trọng của ảnh đi trƣớc Vì vậy sẽ làm giảm thiểu nhiều nhất độ méo của ảnh (sự sai khác giữa ảnh gốc và ảnh khôi phục) Ngoài ra do sắp xếp hệ số biến đổi từ thấp đến cao nên ta có thể hiển thị ảnh với độ phân giải v kích thƣớc khác nhau từ cùng một ảnh nén 3.1.3 Khử nhiễu tín hiệu Phân tích biến đổi wavelet ở hệ số bậc cao thì chứa thành phần chi tiết ảnh và nhiễu nên ta có thể dễ dàng... nói là những tín hiệu cho phép mã hóa có tổn thất thông tin ) 2.6.2 Khử nhiễu Phƣơng pháp khử nhiễu sử dụng phép biến đổi wave et đƣợc gọi là wavelet shrinkage denoising ( WSD) Ý tƣởng cơ ản của WSĐ dựa trên việc tín hiệu nhiễu sẽ lộ rõ khi phân tích bằng biến đổi wavelet ở các hệ số biến đổi bậc cao Việc áp dụng các ngƣỡng loại bỏ tƣơng ứng với các bậc cao hơn của hệ số wavelet sẽ có thể dễ dàng loại... thông cao và thông thấp rồi đƣợc down sampling hệ số 2 tạo thành biến đổi DWT mức 1 Biến đổi ngƣợc thì thực hiện ngƣợc lại: lấy mẫu lên rồi sử dụng các bộ lọc khôi phục Từ biến đổi DWT 1 chiều có thể mở rộng định nghĩa iến đổi DWT 2 chiều theo cách: sử dụng bộ lọc riêng biệt, biến đổi DWT một chiều dữ liều vào theo hàng rồi theo cột Ví dụ về 2D DWT: Quá trình này sinh ra nhóm 4 hệ số biến đổi: • LL:... rã, chất ƣợng ảnh không đƣợc tốt Với 2 hoặc 3 mức phân ra, chất ƣợng ảnh cho đã tốt hơn, sai số MSE tăng khi tăng số ƣợng phân rã còn bbp giảm khi tăng số ƣợng phân rã KẾT LUẬN Qua quá trình tìm hiểu, nghiên cứu về vấn đề nén ảnh bằng phƣơng pháp Wave et và áp dụng thực tiễn trong chuẩn JPEG2000, kết hợp với các hiểu biết về những phƣơng pháp và chuẩn nén khác, chúng em thấy Wavelet và JPEG2000 có những... đổi Wavelet rời rạc DWT Bằng cách lấy thang tỉ lệ (scaling) và dịch chuyển một hàm thời gian ψ(t) gọi là wavelet mẹ hay wave et cơsở, ta đƣợc một h wavelet: a ,b (t ) 1 t b ( ) a a trong đó a thông số thang tỉ lệ chỉ sự co giãn của wavelet, b là thông sốdịch chuyển chỉ vị trí thời gian của wavelet Dạng sóng tổng quát của các wavelet trong cùng họ đƣợc bảo toàn trong mọi co giãn và tịnh tiến Biến. .. rệt trong nén tín hiệu Do tính chất chỉ tồn tại trong các khoảng thời gian rât ngắn ( khi phân tích tín hiệu trong miền thời gian tần số) mà các hệ số của biến đổi wavelet có khả năng tập trung năng ƣợng rất tốt vào các hệ số biến đổi Các hệ số mang thông tin chi tiết của biến đổi wave et thƣờng rất nhỏ và có thể bỏ qua mà không ảnh hƣởng tới việc mã hóa dữ liệu ( trong phƣơng pháp mã hóa ảnh hay tiếng ... 1.5 Tiền xử v iến đổi i n th nh phần CHƢƠNG 2: TÌM HIỂU PHÉP BIẾN ĐỔI WAVELET 11 2.1 Tổng quan phép biến đổi Wavelet 11 2.2 Biến đổi Wavelet rời rạc DWT 12 2.3... việc tính toán biến đổi DWT thực chất rời rạc hóa biến đổi wavelet liên tục CWT, việc rời rạc hóa đƣợc thực với lựa chọn hệ số a v nhƣ tr n Việc tính toán hệ số biến đổi Wavelet rời rạc dê dàng... suốt 1.4 Sơ đồ chung nén ảnh JPEG2000 Dựa tr n sơ đồ ta khái quát chung ƣớc nén ảnh JPEG-2000 gồm ƣớc: - Bƣớc : Tiền xử lý biến đổi liên thành phần Bƣớc : Biến đổi Wavelet rời rạc ( DWT) Bƣớc :