1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Đồ án tìm hiểu một số phương pháp nén

20 71 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 20
Dung lượng 91,13 KB

Nội dung

Đồ án tốt nghiệp Tìm hiểu số phương pháp nén ảnh Đồ án tốt nghiệp Tìm hiểu số phương pháp nén ảnh MỞ ĐẦU Ngày nay, với phát triển không ngừng khoa học cơng nghệ máy tính đóng vai trị ngày quan trọng thiếu sống xã hội lồi người Việc trao đổi thơng tin người tất ngành, lĩnh vực đời sống ngày trở nên cần thiết với đời phát triển mạng Internet Xử lý ảnh ngành khoa học tương đối mẻ so với nhiều ngành khoa học khác tập trung nghiên cứu phát triển ứng dụng thực tiễn nhiều ngành , lĩnh vực khác Trong “Nén ảnh” phần xử lý ảnh có ứng dụng to lớn truyền thông lưu trữ, có nhiều phương pháp nén ảnh đời khơng ngừng cải tiến để ngày hồn thiện đem lại hiệu nén cao cho chất lượng ảnh tốt Trong đồ án tốt nghiệp “TÌM HIỂU MỘT SỐ PHƯƠNG PHÁP NÉN ẢNH” hướng dẫn PGS TS Ngô Quốc Tạo em sâu nghiên cứu số phương pháp nén ảnh phổ biến : mã loạt dài RLE, HUFFMAN, LZW, JPEG phương pháp nén ảnh JPEG2000 dựa biến đổi Wavelet với đặc tính vượt trội so với chuẩn nén trước đem lại hiệu nén cao , cho ảnh nén chất lượng tốt nhiều ưu điểm khác mà chuẩn nén trước khơng thể có Nội dung đồ án tốt nghiệp bao gồm phần : chương giới thiệu tổng quan xử lý ảnh, mục đích chương giới thiệu số khái niệm cần biết ảnh số xử lý ảnh số Chương hai giới thiệu số phương pháp nén ảnh cách phân loại phương pháp nén ảnh Chương ba giới thiệu chương trình thử nghiệm kết đạt đựơc Sinh viên thực : Tạ Minh Thắng CT 702 Trang : chương trình Cuối phần kết luận đánh giá kết nghiên cứu thu hướng phát triển đề tài CHƯƠNG I: GIỚI THIỆU TỔNG QUAN VỀ NÉN ẢNH I.1 Giới thiệu ảnh số xử lý ảnh số: I.1.1 Ảnh số: Ảnh biểu diễn dạng tín hiệu tương tự tín hiệu số Trong biểu diễn số ảnh đa mức xám, ảnh biểu diễn dạng ma trận hai chiều Mỗi phần tử ma trận biểu diễn cho mức xám hay cường độ ảnh vị trí Mỗi phần tử ma trận gọi phần tử ảnh, thơng thường kí hiệu PEL (Picture Element) điểm ảnh (Pixel) - Với ảnh đa cấp xám: Nếu dùng bit (1 byte) để biểu diễn mức xám, số mức xám biểu diễn hay 256 Mỗi mức xám biểu diễn dạng số nguyên nằm khoảng từ đến 255, với mức biểu diễn cho mức cường độ đen 255 biểu diễn cho mức cường độ sáng - Với ảnh màu: Cách biểu diễn tương tự với ảnh đen trắng, khác số phần tử ma trận biểu diễn cho ba màu riêng rẽ gồm: đỏ (red), lục (green) lam (blue) Để biểu diễn cho điểm ảnh Đồ án tốt nghiệp Tìm hiểu số phương pháp nén ảnh màu cần 24 bit, 24 bit chia thành ba khoảng bit Mỗi khoảng biểu diễn cho cường độ sáng màu Pixel or PEL Độ sáng trung bình hình chữ nhật = giá trị điểm ảnh Hình 1.1 Biểu diễn mức xám ảnh số I.1.2 Xử lý ảnh số: Xử lý ảnh khoa học tương đối so với nhiều ngành khoa học khác ,nhất quy mô công nghiệp Xử lý ảnh số có nhiều ứng dụng làm ảnh y học, khôi phục lại ảnh tác động khí thiên văn học, tăng cường độ phân giải ảnh truyền hình mà không cần thay đổi cấu trúc bên hệ thống chuyển tải, nén ảnh truyền xa lưu trữ Các giai đoạn xử lý ảnh mơ tả hình sau: Lưu CAMERA Thu nhận ảnh Số Phân tích ảnh Nhận dạng SENSOR Sinh viên thực : Tạ Minh Thắng CT 702 Lưu trữ Hệ định Trang : Đồ án tốt nghiệp Tìm hiểu số phương pháp nén ảnh I.2 Mục đích cần thiết “ nén ảnh ”: Nén ảnh kỹ thuật mã hoá ảnh số hoá nhằm giảm số lượng bit liệu cần thiết để biểu diễn ảnh Mục đích giảm chi phí việc lưu trữ ảnh chi phí thời gian để truyền ảnh xa truyền thông đảm bảo chất lượng ảnh Nén ảnh thực thực tế: thông tin ảnh ngẫu nhiên mà có trật tự , tổ chức.Vì bóc tách tính trật tự, cấu trúc biết phần thơng tin quan trọng ảnh để biểu diễn truyền với số lượng bit so với ảnh gốc mà đảm bảo tính đầy đủ thơng tin.Ở bên nhận trình giải mã tổ chức, xếp lại ảnh xấp xỉ gần xác so với ảnh gốc thỏa mãn chất lượng yêu cầu Dưới ví dụ lưu trữ ảnh số truyền xa với đường truyền 9600 baud (9600 bps) để thấy rõ cần thiết việc nén ảnh: • Ảnh đa cấp xám hay ảnh 256 màu có kích thước 800 x 600, bit/điểm ảnh, cần 3.840.000 bit lưu trữ 6.67 phút để truyền • Ảnh màu RGB (24 bit/điểm ảnh ) độ phân giải cần 10 triệu bit để lưu trữ 20 phút để truyền • Một phim âm có kích thước 24  36 mm (35 mm) chia khoảng cách 12 àm, vào khoảng 3000  2000 điểm, bit / pixel, yêu cầu 48 triệu bit cho lưu giữ ảnh 83 phút để truyền Qua ví dụ ta thấy nhiều vấn đề việc lưu trữ truyền tải ảnh số hố Nén ảnh có nhiều ứng dụng thực tế : truyền văn Sinh viên thực : Tạ Minh Thắng CT 702 Trang : đồ hoạ qua đường điện thoại (Fax), nén ảnh y tế truyền hình cáp….Chính ứng dụng nhiều lĩnh vực nén ảnh với tiến lĩnh vực vi điện tử dẫn đến đời chuẩn nén ảnh Nén ảnh đạt cách loại bỏ phần dư thừa ảnh số hố Dư thừa dư thừa thông tin không gian, dư thừa cấp xám hay dư thừa thời gian: • Dư thừa thông tin không gian : ảnh tồn tương quan điểm ảnh cạnh • Dư thừa thơng tin cấp xám :là dư thừa dựa vào tương quan màu sắc cạnh • Dư thừa thông tin thời gian : Trong chuỗi ảnh video, tồn tương quan điểm ảnh frame khác I.3 Các khái niệm bản: • Pixel (picture element) : phần tử ảnh Ảnh thực tế ảnh liên tục khơng gian giá trị độ sáng Để xử lý ảnh máy tính cần thiết phải tiến hành số hoá ảnh Như ảnh tập hợp pixel Mỗi pixel gồm cặp toạ độ x, y màu Cặp toạ độ x,y tạo nên độ phân giải (resolution) Màn hình máy tính có nhiều loại với độ phân giải khác nhau: 320 x 200, 640x350, 800x600, 1024x768,… • Mức xám (Graylevel) Mức xám kết mã hoá tương ứng cường độ sáng điểm ảnh với giá trị số – kết trình lượng hố • Dữ liệu Trong tốn, liệu bao gồm tập phần tử sở mà ta gọi liệu nguyên tử Nó chữ số, ký tự, số, từ, điều phụ thuộc vào tốn • Nén liệu Nén liệu trình giảm dung lượng thông tin “dư thừa” liệu gốc làm cho lượng thông tin thu sau nén thường nhỏ liệu gốc nhiều Do vậy, tiết kiệm nhớ giảm thời gian trao đổi liệu mạng thông tin mà lại cho phép khôi phục lại liệu ban đầu • Tỷ lệ nén Tỷ lệ nén đặc trưng quan trọng phương pháp nén Tỷ lệ nén định nghĩa sau: Tỷ lệ nén = 1/r*% với r tỷ số nén định nghĩa: r = kích thước liệu gốc / kích thước liệu nén Như hiệu suất nén = (1- tỷ lệ nén)*100% Đối vơi ảnh tĩnh, kích thước số bit biểu diễn tồn ảnh Đối với ảnh video, kích thước số bit để biểu diễn khung hình video (video frame) CHƯƠNG II: CÁC PHƯƠNG PHÁP NÉN ẢNH II.1 Cách phân loại phương pháp nén ảnh: II.1.1 Cách phân loại dựa vào ngun lý nén: Nén bảo tồn thơng tin (losses compression): bao gồm phương pháp nén mà sau giải nén thu đựơc xác liệu gốc.Tuy nhiên nén bảo tồn thơng tin đạt hiệu nhỏ so với phương pháp nén khơng bảo tồn thơng tin Nén khơng bảo tồn thơng tin (lossy compression): bao gồm phương pháp nén sau giải nén không thu liệu gốc Các phương pháp gọi “tâm lý thị giác” lợi dụng tính chất mắt người chấp nhận số vặn xoắn ảnh khôi phục lại.Phương pháp đem lại hiệu cao loại bỏ thông tin dư thừa không cần thiết II.1.2 Cách phân loại dựa vào cách thức thực nén: Phương pháp không gian (Spatial Data Compression ): phương pháp thực nén cách tác động trực tiếp lên việc lấy mẫu ảnh miền không gian Phương pháp sử dụng biến đổi (Transform Coding): gồm phương pháp tác động lên biến đổi ảnh gốc không tác động trực tiếp II.1.3 Cách phân loại dựa vào lý thuyết mã hoá: Các phương pháp nén hệ thứ nhất: gồm phương pháp có mức độ tính tốn đơn giản lấy mẫu , gán từ mã,… Các phương pháp nén hệ thứ hai: gồm phương pháp dựa vào mức độ bão hoà tỷ lệ nén cách sử dụng phép toán tổ hợp đầu cách hợp lý sử dụng biểu diễn ảnh : phương pháp kim tự tháp Laplace, phương pháp dựa vào vùng gia tăng, phương pháp tách hợp II.1.4 Quá trình nén giải nén : Gồm cơng đoạn : Nén : liệu gốc qua mã hoá liệu , mã hoá thực nén liệu đến mức thích hợp cho việc lưu trữ truyền dẫn thơng tin Q trình thực việc loại bỏ hay cắt bớt dư thừa ảnh để thu thông tin cần thiết đảm bảo chất lượng ảnh Giải nén : liệu nén qua giải mã liệu, giải mã thực giải nén để thu liệu gốc ban đầu.Việc giải nén thường phải dựa vào thông tin theo liệu nén ,tuỳ thuộc vào kiểu nén hay phương pháp nén mà liệu giải nén có hồn tồn giống với liệu gốc ban đầu hay khơng Tóm lại q trình nén giải nén liệu mơ tả cách tóm tắt theo sơ đồ đây: Quá trình nén Dữ liệu Quá trình giải nén Dữ liệu Hình 2.1 : Quá trình nén giải nén II.2 Phương pháp mã hoá độ dài loạt RLE: Mã hoá theo độ dài loạt RLE (Run Length Encoding) phương pháp nén ảnh dựa cắt bớt dư thừa không gian (một vài hình ảnh có vùng màu lớn khơng đổi đặc biệt ảnh nhị phân) Loạt định nghĩa dãy phần tử điểm ảnh (pixel) liên tiếp có chung giá trị II.2.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ữ tồ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 : 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 : (10 5) (5 19) (7 0) (8 23) Tỷ số nén = 20/ = 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 : Cho chuỗi nguồn d: 000000000000000111111111100000000001111111111000000000000000 Ta có chuỗi : (15, 10, 10, 10, 15) Tỷ số nén = 60 bit / (5*4 bit) = ( sử dụng bit để thể độ dài loạt khơng thể giá trị loạt ảnh đen trắng có giá trị bit là 1) Chú ý: • Đố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 cịn 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 cách ổn định phụ thuộc hồn tồ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 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ố “+” ta có : +7 + 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 : (5 1)( 4)(5 1)(10 5)(-3 1)(5 9) II.2.2 Thuật toán: Thuật toán sau : • 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ã tiếp phần cịn lại Ngồi cịn chế độ khác : bắt đầu , kết thúc dịng • Kết thúc gặp kí hiệu kết thúc bitmap ( end – o f- bitmap) II.2.3 Một số thủ tục chương trình : • Chương trình nén theo phương pháp RLE : void CRLE::CompressInRLE8(BYTE*pSrcBits,CByteArray& pRLEBits, int& RLE_size) { int line; int src_index = 0, dst_index = 0, counter, i; for ( line = 0; line < m_dib.dsBmih.biHeight; line++) { state_start: if ( EndOfLine(src_index)) { pRLEBits[dst_index++] = 1; pRLEBits[dst_index++] = pSrcBits[src_index]; src_index++; goto end_of_line; } if(pSrcBits[src_index]==pSrcBits[src_index+1]) tate_compress; if ( EndOfLine(src_index+1)) { pRLEBits[dst_index++] = 1; pRLEBits[dst_index+ +] = pSrcBits[src_index++]; pRLEBits[dst_index+ +] = 1; pRLEBits[dst_index++] = pSrcBits[src_index++]; goto end_of_line; } if (pSrcBits[src_index+1] == pSrcBits[src_index+2]) { pRLEBits[dst_index++] = 1; pRLEBits[dst_index+ +] = pSrcBits[src_index++]; goto state_compress; } else goto state_no_compress; state_compress: for ( counter = 1; counter 2) counter ; pRLEBits[dst_index++] = 0; pRLEBits[dst_index++] = counter+1; for (i = counter+1; i > 0; i ) pRLEBits[dst_index++] = pSrcBits[src_index++]; if ( != ((counter+1) % 2) ) pRLEBits[dst_index++]; goto state_compress; } } pRLEBits[dst_index++] = 0; pRLEBits[dst_index++] = counter; for (i = counter; i > 0; i ) pRLEBits[dst_index++] = pSrcBits[src_index++]; if ( != ((counter) % 2) ) pRLEBits[dst_index++]; goto state_start; end_of_line: if ( != (src_index % )) { int pad = - (src_index%4); src_index += pad; } pRLEBits[dst_index++] = 0; pRLEBits[dst_index++] = 0; } pRLEBits[dst_index++] = 0; pRLEBits[dst_index++] = 1; RLE_size = dst_index; } • Chương trình giải nén phương pháp RLE : BOOL CRLE::DecRLE8(ifstream &fil, BYTE *pDest) { DWORD x, y, paddedwidth; paddedwidth =BMPWIDTHBYTES(pInfo->biWidth*pInfo-> biBitCount); BYTE FirstByte, SecondByte; WORD data; x = y = 0; while (!fil.eof()) { if (!fil.read((char*)&data, 2)) return FALSE; FirstByte = LOBYTE(data); SecondByte = HIBYTE(data); if (FirstByte == 0) { switch (SecondByte) { case 0: x = 0; y++; break; case 1: return TRUE; case 2: if (!fil.read((char*)&data, 2)) return FALSE; x += LOBYTE(data); y += HIBYTE(data); break; default: char ch; for (BYTE i = 0; i < SecondByte; i++) { if (!fil.get(ch)) return FALSE; pDest[paddedwidth * y + x++] = (BYTE)ch; } if ((SecondByte % 2) == 1) if (!fil.get(ch)) return FALSE; } } else { for (BYTE i = 0; i < FirstByte; i++) pDest[paddedwidth * y + x++] = SecondByte; } } return FALSE; } II.3 Phương pháp mã hoá Huffman: II.3.1 Nguyên tắc: Phương pháp mã hoá Huffman phương pháp dựa vào mơ hình thống kê Người ta tính tần suất xuất ký tự cách duyệt từ đầu tệp gốc đến cuối tệp Việc xử lý tính theo bit Trong phương pháp ký tự có tần suất cao từ mã ngắn, ký tự có tần suất thấp từ mã dài Như với cách thức ta làm giảm chiều dài trung bình từ mã hoá cách dùng chiều dài biến đổi nhiên có trường hợp bị thiệt bit tần suất thấp II.3.2 Thuật tốn: • Thuật tốn mã hố Huffman gồm bước chính: • Bước một: Tính tần suất ký tự liệu gốc cách duyệt tệp gốc cách từ đầu đến cuối để xây dựng bảng mã tính tốn tần suất Tiếp theo sau xếp lại bảng mã theo thứ tự tần suất giảm dần • Bước hai: Duyệt bảng suất từ cuối lên đầu để thực ghép hai phần tử có tần suất thấp thành phần tử có tần suất tổng hai tần suất thành phần Cập nhật phần tử vào vị trí phù hợp bảng loại bỏ hai phần tử xét Thực bảng có phần tử Đây trình tạo nhị phân Huffman ,phần tử có tần suất thấp bên phải, phần tử bên trái Sau tạo xong người ta tiến hành gán mã cho nút Việc mã hoá thực theo quy định : lần xuống bên phải ta thêm bit ‘1’ vào từ mã, lần xuống bên trái ta thêm bit ‘0’ vào từ mã Quá trình giải nén đơn giản tiến hành theo chiều ngược lại Người ta phải dựa vào bảng mã tạo giai đoạn nén (bảng lưu trữ cấu trúc đầu tệp nén với liệu nén) Ví dụ: Một tệp có tần suất xuất kí tự số bảng sau Ký tự Tần suất 1532 Đồ án tốt nghiệp Tìm hiểu số phương pháp nén ảnh 152 323 412 226 385 602 92 112 87 Bảng tần suất xếp giảm dần 84 0.39 05 0.15 35 0.10 51 0.09 82 Kí tự Xác suất (%) 0.3906 0.1535 0.1051 0.0982 0.0824 0.0577 0.0388 0.0286 0.0235 0.0222 0.3905 0.3905 0.3906 0.3905 0.3905 0.3905 0.1535 0.1535 0.1535 0.1535 0.14 0.2016 0.15 0.2549 98 35 0.10 0.149 34 0.10 0.10 0.10 0.1051 0.201 51 51 51 0.09 82 0.103 0.09 0.09 0.153 82 82 0.082 0.08 0.08 0.08 0.0286 i 0.0388 Sinh v ên thực hiện0.0457 : Tạ Minh Thắng CT 702 190.02350.0286 0.0222 0.390 0.6100 0.3905 0.355 0.254 Trang : ... Trong đồ án tốt nghiệp “TÌM HIỂU MỘT SỐ PHƯƠNG PHÁP NÉN ẢNH” hướng dẫn PGS TS Ngô Quốc Tạo em sâu nghiên cứu số phương pháp nén ảnh phổ biến : mã loạt dài RLE, HUFFMAN, LZW, JPEG phương pháp nén. .. tạo giai đoạn nén (bảng lưu trữ cấu trúc đầu tệp nén với liệu nén) Ví dụ: Một tệp có tần suất xuất kí tự số bảng sau Ký tự Tần suất 1532 Đồ án tốt nghiệp Tìm hiểu số phương pháp nén ảnh 152 323... nhận ảnh Số Phân tích ảnh Nhận dạng SENSOR Sinh viên thực : Tạ Minh Thắng CT 702 Lưu trữ Hệ định Trang : Đồ án tốt nghiệp Tìm hiểu số phương pháp nén ảnh I.2 Mục đích cần thiết “ nén ảnh ”: Nén ảnh

Ngày đăng: 26/08/2020, 09:05

HÌNH ẢNH LIÊN QUAN

Hình 1.1 Biểu diễn của một mức xám của ảnh số. - Đồ án tìm hiểu một số phương pháp nén
Hình 1.1 Biểu diễn của một mức xám của ảnh số (Trang 4)
Độ sáng trung bình trong mỗi hình chữ nhật = giá trị một điểm ảnh. - Đồ án tìm hiểu một số phương pháp nén
s áng trung bình trong mỗi hình chữ nhật = giá trị một điểm ảnh (Trang 4)
Phương pháp mã hoá Huffman là phương pháp dựa vào mô hình thống kê. Người ta tính tần suất xuất hiện của các ký tự bằng cách duyệt tuần tự từ đầu tệp gốc đến cuối tệp - Đồ án tìm hiểu một số phương pháp nén
h ương pháp mã hoá Huffman là phương pháp dựa vào mô hình thống kê. Người ta tính tần suất xuất hiện của các ký tự bằng cách duyệt tuần tự từ đầu tệp gốc đến cuối tệp (Trang 18)
Bảng tần suất sắp xếp giảm dần - Đồ án tìm hiểu một số phương pháp nén
Bảng t ần suất sắp xếp giảm dần (Trang 20)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w