1. Trang chủ
  2. » Luận Văn - Báo Cáo

PHƯƠNG PHÁP NÉN ẢNH DCT (Discrete Cosin Transform) VÀ ẨN TIN

13 5,1K 41

Đ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 13
Dung lượng 397 KB

Nội dung

Ngày này mạng máy tính đã trở nên quen thuộc và phát triển rộng khắp vì thế nhu cầu sử dụng tăng cao. Điều này dẫn tới việc dữ liệu truyền tải qua mạng máy tính cũng rất lớn. Phần lớn dữ liệu được truyển tải trên mạng máy tính thường thuộc các loại sau: ký tự, ảnh và các loại media còn lại.Việc hàng ngày lượng dữ liệu lớn được luân chuyển sử dụng trên mạng tạo nên các hoạt động truyển tải, lưu trữ, tái sử dụng dẫn đến hành vi vi phạm và đánh cắp ở nhiều mức độ khác nhau và khó kiểm soát. Cũng như việc đảm bảo an toàn hay bảo mật thông tin cũng được quan tâm.

Trang 1

PHƯƠNG PHÁP NÉN ẢNH DCT VÀ ẨN TIN

Hướng dẫn: PGS.TS Trịnh Nhật Tiến

Học viên: Nguyễn Quang Hiệp

Mã số: 12025013

Lớp: Mật mã và an toàn dữ liệu

Trang 2

LỜI NÓI ĐẦU

Ngày này mạng máy tính đã trở nên quen thuộc và phát triển rộng khắp vì thế nhu cầu sử dụng tăng cao Điều này dẫn tới việc dữ liệu truyền tải qua mạng máy tính cũng rất lớn Phần lớn dữ liệu được truyển tải trên mạng máy tính thường thuộc các loại sau: ký tự, ảnh và các loại media còn lại

Việc hàng ngày lượng dữ liệu lớn được luân chuyển sử dụng trên mạng tạo nên các hoạt động truyển tải, lưu trữ, tái sử dụng dẫn đến hành vi vi phạm và đánh cắp ở nhiều mức độ khác nhau và khó kiểm soát Cũng như việc đảm bảo an toàn hay bảo mật thông tin cũng được quan tâm

Vì thế dẫn đến việc có nhiều thuật toán được phát minh và sử dụng để nén và mã hóa ảnh một trong những dữ liệu sử dụng nhiều nhất trên mạng máy tính Tác dụng của việc nén và mã hóa ảnh nhằm vào các mục đích như:

• Giảm kích thước ảnh mà chất lượng ảnh vẫn đảm bảo Tăng khả năng truyền tải cũng như lưu trữ

• Chèn thêm các thông tin khác như bản quyền, xuất xứ hoặc các thông tin ẩn nhằm tránh việc bị sửa đổi trái phép, sao lưu tái sử dụng mà không có sự cho phép của nguời sở hữu hợp pháp

• Truyền đi thông tin ẩn không muốn bên thứ ba biết được

MỘT VÀI PHƯƠNG PHÁP DÙNG ĐỂ NÉN ẢNH

Phương pháp biến đổi DCT, biến đổi cosin rời rạc thường được sử dụng trong ảnh chuẩn JPEG và GIF

Phương pháp biến đổi DFT, biến đổi Furier khắc phục được một số nhược điểm của biến đổi DCT

CÁC NGUYÊN TẮC CỦA NÉN ẢNH

Một tính chất chung nhất của tất cả các ảnh số đó là tương quan giữa các pixel ở cạnh nhau lớn, điều này dẫn đến dư thừa thông tin để biểu diễn ảnh Dư thừa thông tin sẽ làm cho việc mã hoá không tối ưu Do đó công việc cần làm để nén ảnh là phải tìm được các biểu diễn ảnh với tương quan nhỏ nhất để giảm thiểu độ dư thừa thông tin của ảnh Thực

tế, có hai kiểu dư thừa thông tin được phân loại như sau:

Dư thừa trong miền không gian: tương quan giữa các giá trị pixel của ảnh, điều này

có nghĩa rằng các pixel lân cận của ảnh có giá trị gần giống nhau (trừ những pixel

ở giáp đường biên ảnh)

Dư thừa trong miền tần số: Tương quan giữa các mặt phẳng màu hoặc dải phổ

khác nhau.Trọng tâm của các nghiên cứu về nén ảnh là tìm cách giảm số bit cần để biểu diễn ảnh bằng việc loại bỏ dư thừa trong miền không gian và miền tần số càng nhiều càng tốt

Trong số các thuật toán biển đổi ảnh để nén hoặc mã hóa có hai loại: Không mất dữ liệu

và có mất dữ liệu

Trong báo cáo này thuật toán DCT là thuật toán biển đổi cosin rời rạc được chọn để trình bày Vì nó có một số ưu điểm so với các thuật toán khác và nó được chọn sử dụng cho chuẩn ảnh JPEG (Joint Photographic Experts Group)

Mã hóa ảnh theo tiêu chuẩn JPEG dựa trên thuật toán DCT và xử lý nén Hoffman có thể

mô tả qua các bước như dưới đây:

Trang 3

1 Ảnh gốc được chia thành từng mảng pixel thông thường là kích thước 8x8 pixels.

2 Duyệt mảng từ trái qua phải và từ trên xuống dưới Biến đổi DCT cho từng khối (Zigzag)

3 Mỗi khối được lượng tử hoá

4 Các khối được nén lại để giảm không gian chứa

5 Khi cần lấy lại ảnh thì làm theo trình tự ngược lại, đọc zigzag từng khối như trước

và sử dụng biến đổi cosin rời rạc ngược IDCT - Inverse Discrete Cosin Transform

để lấy lại ảnh đã qua xử lý

Công thức DCT được biểu diễn như bên dưới:

Với khối dữ liệu kích thước 8x8 thì ta có công thức như hình bên dưới:

Vì ma trận phân tích từng khối 8 pixel có tính trực giao nên việc tính được ra ma trận nghịch đảo là dễ dàng

Với việc đánh giá trị màu sắc bằng mức từ 0 đến 255 với 0 là đen hoàn toàn và 255 là trắng hoàn toàn Vì vậy mỗi bức ảnh sẽ được mô tả chính xác bằng 256 mức xám này

Vì DCT được thiết kế để làm việc với giải giá trị từ -128 đến 127 nên một khối 8 pixel khi đưa vào xử lý DCT thì trước tiên là trừ 128 cho mỗi giá trị

Trang 4

Ví dụ với mảng bên dưới, mảng ban đầu là:

Mảng sau khi trừ mặc định 128 là:

Giờ biển đổi DCT là thực hiện bước nhân ma trận theo công thức:

Trang 5

Sau biến đổi ta được một ma trận mới như hình bên dưới:

Đây là một ma trận mỗi chiều từ 0 đến 7 với giá trị góc trên cùng phía trái là C00 là giá trị thấp nhất trong miền tần số của bảng giá trị và tương tự thì giá trị góc dưới cùng bên phải C77 là giá trị cao nhất miền tần số

Và một lưu ý quan trọng là mắt người nhạy cảm nhất với vùng giá trị tần số thấp và trong bước lượng tử sẽ phản ánh điều này

LƯỢNG TỬ HÓA

Đây là bước quan trọng nhất nó chính là bước làm cho tiêu chuẩn JPEG được lựa chọn

sử dụng rộng rãi

Ta sẽ có thang giá trị từ 1 đến 100 cho chất lượng ảnh với giá trị 1 là chất lượng ảnh thấp nhất và 100 là chất lượng ảnh cao nhất Tương ứng sẽ là 1 là giá trị có tỉ số nén cao nhất

và 100 thì ngược lại tỉ số nén sẽ thấp nhất

Việc lựa chọn tỉ số nén và chất lượng ảnh tùy thuộc từng nhu cầu sử dụng cụ thể để đáp ứng

Trang 6

Dưới đây là ma trận biến đổi DCT với giá trị 50, cân bằng giữa chất lượng hình ảnh và tỉ

số nén

Trang 7

Lấy bảng này làm giá trị chuẩn thì khi muốn chất lượng ảnh cao hơn tức là tỉ số lớn hơn

50 ta chỉ cần lấy bảng này nhân với (100-mức mong muốn)/50, còn với chất lượng thấp

hơn 50 ta nhân với 50/mức mong muốn.Dưới đây là hai bảng giá trị với 10 và 90 sau khi

sử dụng tính toán trên và các gía trị được làm tròn về con số nguyên dương Có dải giá trị

từ 1 đến 255

Trang 8

Lượng tử hóa sẽ được sau khi ta thực hiên việc làm tròn với công thức.

Sau bước làm tròn này như đã nói về giá trị góc trên bên trái C00 trong miền tần số là ảnh hướng lớn tới thị giác người Nên sau khi có được C thì các giá trị bằng 0 là các giá trị không ảnh hưởng tới chất lượng ảnh trong mắt người

Sau bước này nếu dùng ma trận Q10 thì ta có nhiều giá trị bằng 0 hơn vì chất lượng ảnh thấp còn với Q90 thì ta có ít giá trị bằng 0 hơn

Bước cuối cùng ta chuyển giá trị ảnh trong ma trận này thành dạng binary để lưu trữ Ta đọc theo quy định zigzag trong mảng này

Để giải nén ngược lại và đọc lại thành ảnh ta có các bước sau:

Trang 9

Ta sử dụng lại mảng giá trị Q đã dùng như ở trên ta có Q10 và Q90 để tính ngược lại ra mảng R như hình bên dưới:

Sau đó thì sử dụng IDCT với ma trận R vừa thu được rồi cộng ngược lại tiếp với 128 là giá trị ban đầu ta mặc định đã trừ đi ở đầu vào ma trận Q

Trang 10

Mảng sau khi thu được ta có thể so sánh so với bảng mã giá trị đầu vào như hình bên dưới:

Với sự chú ý là thực tế với Q thấp hơn 50 thì chất lượng ảnh giảm đi rõ rệt mà độ nén thì lại không tăng lên tương ứng Và các bức ảnh với miền tần số cao , hoặc tỉ lệ tương phản cao thì chất lượng ảnh JPEG không được mượt mà cho lắm

CÁC BƯỚC BIẾN ĐỔI, NÉN VÀ CHÈN DỮ LIỆU VỚI ẢNH

• Bước một sử dụng thuật toán biến đổi cosin rời rạc các giá trị bit biểu diễn ảnh gốc thành một mảng ma trận giá trị số Trong đó lưu giữ các giá trị biểu diễn màu sắc

và độ sâu của từng bit giá trị ảnh gốc

• Nếu chỉ cần nén ảnh thì sau bước này trong chuẩn ảnh JPEG sẽ thực hiện nén theo thuật toán Hoffman Thuật tóan này sẽ lược bớt các giá trị dư thừa và lưu lại thành một mảng ma trận các giá trị mới đã lược bớt

• Nếu cần chèn dữ liệu mật thì bỏ qua việc nén sử dụng thuật toán Hoffman mà thay vào đó duyệt mảng ma trận các giá trị rồi chèn thông tin đã được nhị phân hóa

Trang 11

trước vào ảnh.

• Lưu mảng nhị phân khóa để lấy lại được thông tin Trong trường hợp thông tin này còn sử dụng thêm các phương pháp mã hóa khác

• Sử dụng thuật toán ngược DCT để chuyển đổi mảng ma trận giá trị trở lại thành ảnh mới đã được nén hoặc mã hóa

Có thể hình dung ra các bước như hình bên dưới:

Với phần phía bên phải vạch đỏ trong ảnh có thể là việc nén dữ liệu hoặc chèn thêm thông tin hoặc chèn thủy vân số vào ảnh

Với việc zigzag có thể hiểu bằng hình vẽ bên dưới:

Trang 12

Bước biến đổi xuôi hay còn gọi là forward DCT, sau khi biến đổi DCT ta được dãy các mảng giá trị biểu trưng cho từng cụm 8 pixels một của cả bức ảnh

Sau bước này ta tiến hành mã hóa chèn dữ liệu mong muốn vào mảng ma trận này Với lưu ý là nếu ta chèn lượng thông tin ít thì chất lượng ảnh ít bị thay đổi và khó nhận ra là có

sự thay đổi này

Nếu lượng thông tin chèn vào quá nhiều sẽ tạo nhiễu rõ ràng trên ảnh và mắt thường có thể nhận ra được thì việc bí mật chuyển tin dễ bị lộ

Sau đó dùng thuật toán IDCT - Inverse Discrete Cosin Transform (chuyển đổi ngược DCT) trở lại ta thu được ảnh mới mang chất lượng tương đương với ảnh cũ và mang thêm dữ liệu đã mã hóa

Để lấy lại được dữ liệu đã mã hóa ta lưu trữ dữ liệu đã mã hóa dưới dạng mảng ma trận giá trị nhị phân Khi nhận được ảnh có chứa dữ liệu mã hóa ta sử dụng DCT chuyển đổi ảnh thành mảng ma trận giá trị rồi dùng mảng ma trận khóa dữ liệu để duyệt mảng giá trị ảnh lấy lại mảng giá trị thông tin

DCT ƯU NHƯỢC ĐIỂM

Các ưu nhược điểm của phương pháp biến đổi DCT là:

• Ưu điểm của biến đổi DCT là với việc xứ lý từng khối tiêu chuẩn 8x8 pixel thì tốc độ

là chấp nhận được Đây là ưu điểm lớn nhất của biến đổi DCT với ảnh tiêu chuẩn JPEG

• Nhược điểm của biến đổi DCT là sự tương quan của các pixel lề các khối 8x8 sẽ có ảnh hưởng đến chất lượng ảnh

• Trong việc sử dụng ảnh tiêu chuẩn JPEG để lưu trữ thông tin kiểu thủy vân giấu số thì có nguy cơ cao không đọc ngược lại được thông tin đã lưu trữ vì trong quá trình tạo ảnh có một phần dữ liệu bị nén theo thuật toán Hoffman

Trang 13

Tài liệu tham khảo:

• Least Significant Bit (LSB)-based Steganography - Dr Natarajan Meghanathan

• DCT formular - Ken Cabeen and Peter Gent Math 45 College of RedWoods

• Áp dụng một số kỹ thuật nén ảnh cho truyền dữ liệu ảnh động qua mạng - Trần Vương Nguyên, Học viện Bưu chính viễn thông, Mã số 60.48.15 – 2011

• Toàn bộ bài giảng của giáo sư Baldwin Austin College về DCT transform trên developer.com

• Địa chỉ:http://www.developer.com/java/ent/article.php/3530866/Steganography-101-using-Java.htm

Ngày đăng: 19/10/2014, 23:17

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w