Tỉ lệ nén (Compression rate)

Một phần của tài liệu luận văn thạc sĩ tìm hiểu các kỹ thuật giấu tin trong ảnh (Trang 36)

r là tỉ số nén = kích thƣớc dữ liệu gốc / kích thƣớc dữ liệu thu đƣợc.

2.6.2. Một số phương pháp nén ảnh

Kích thƣớc ảnh gốc = Số phần tử x độ dài bit tối đa

- Phƣơng pháp Huffman:

Nguyên tắc

Phƣơng pháp mã hoá Huffman là phƣơng pháp dựa vào mô hình thống kê. Dựa vào dữ liệu gốc, ta tính tần suất xuất hiện của các ký tự. Việc tính tần xuất đƣợc thực hiện bằng cách duyệt tuần tự tệp gốc từ đầu đến cuối. Việc xử lý ở đây tính theo bit. Trong phƣơng pháp này, ta gán cho các ký tự có tần suất cao một từ mã ngắn, các ký tự có tần xuất thấp từ mã dài. Nói một cách khác, các ký tự có tần xuất càng cao đƣợc gán mã càng ngắn và ngƣợc lại. Rõ ràng với cách thức này, ta đã làm giảm chiều dài trung bình của từ mã hoá bằng cách dùng chiều dài biến đổi. Tuy nhiên, trong một số tình huống khi tần suất là rất thấp, ta có thể không đƣợc lợi một chút nào, thậm chí còn bị thiệt một ít bit.

Kích thƣớc ảnh sau nén = Tổng (số phần tử x độ dài bit tƣơng ứng)

Thuật toán 100% - 1        r 1 nÐn qu¶ HiÖu

Thuật toán bao gồm 2 bƣớc chính:

- Giai đoạn tính tần suất của các ký tự trong dữ liệu gốc: Duyệt tệp gốc một cách tuần tự từ đầu đến cuối để xây dựng bảng mã. Tiếp sau đó là sắp xếp lại bảng mã theo thứ tự tần suất giảm dần.

- Giai đoạn thứ hai: mã hoá. Duyệt bảng tần suất từ cuối lên đầu để thực hiện ghép 2 phần tử có tần suất thấp nhất thành một phần tử duy nhất. Phần tử này có tần xuất bằng tổng 2 tần suất thành phần. Tiến hành cập nhật lại bảng và đƣơng nhiên loại bỏ 2 phần tử đã xét. Quá trình đƣợc lặp lại cho đến khi bảng chỉ có một phần tử. Quá trình này gọi là quá trình tạo cây mã Huffman vì việc tập hợp đƣợc tiến hành nhờ một cây nhị phân với 2 nhánh. Phần tử có tần suất thấp ở bên phải, phần tử kia ở bên trái. Với cách tạo cây này, tất cả các bit dữ liệu/ ký tự là nút lá; các nút trong là các nút tổng hợp. Sau khi cây đã tạo xong, ngƣời ta tiến hành gán mã cho các nút lá. Việc mã hoá rất đơn giản: mỗi lần xuống bên phải ta thêm 1 bit "1" vào từ mã; mỗi lần xuống bên trái ta thêm 1 bit "0". Tất nhiên có thể làm ngƣợc lại, chỉ có giá trị mã thay đổi còn tổng chiều dài là không đổi. Cũng chính do lý do này mà cây có tên gọi là cây mã Huffman nhƣ trên đã gọi.

Giải nén:

Quá trình giải nén tiến hành theo chiều ngƣợc lại khá đơn giản. Ngƣời ta cũng phải dựa vào bảng mã tạo ra trong giai đoạn nén (bảng này đƣợc giữ lại trong cấu trúc đầu của tệp nén cùng với dữ liệu nén).

- Phƣơng pháp nén loạt dài RLC (Run Length Coding):

Phƣơng pháp mã hoá loạt dài lúc đầu đƣợc phát triển dành cho ảnh số 2 mức: mức đen (1) và mức trắng (0) nhƣ các văn bản trên nền trắng, trang in, các bức vẽ kỹ thuật.

Nguyên tắc của phƣơng pháp là phát hiện một loạt các bít lặp lại, thí dụ nhƣ một loạt các bit 0 nằm giữa hai bit 1, hay ngƣợc lại, một loạt bit 1 nằm giữa hai bit 0. Phƣơng pháp này chỉ có hiệu quả khi chiều dài dãy lặp lớn hơn một ngƣỡng nào đó. Dãy các bit lặp gọi là loạt hay mạch (run). Tiếp theo, thay thế chuỗi đó bởi một

chuỗi mới gồm 2 thông tin: chiều dài chuỗi và bit lặp (ký tự lặp). Nhƣ vậy, chuỗi thay thế sẽ có chiều dài ngắn hơn chuỗi cần thay.

Cần lƣu ý rằng, đối với ảnh, chiều dài của chuỗi lặp có thể lớn hơn 255. Nếu ta dùng 1 byte để mã hoá thì sẽ không đủ. Giải pháp đƣợc dùng là tách chuỗi đó thành 2 chuỗi: một chuỗi có chiều dài 255, chuỗi kia là số bit còn lại.

Kích thƣớc ảnh sau nén = Số loạt x Kích thƣớc cực đại của các loạt

Phƣơng pháp RLC đƣợc dùng cho ảnh loại PCX, BMP. Thuật toán RLC thuộc loại nén bảo toàn dữ liệu.

- Phƣơng pháp LZW (Lempel Ziv Welch):

Khái niệm nén từ điển đƣợc Jacob Lempel và Abraham Ziv đƣa ra lần đầu tiên vào năm 1977, sau đó phát triển thành một họ giải thuật nén từ điển LZ. Năm 1984, Terry Welch đã cải tiến giải thuật LZ thành một giải thuật mới hiệu quả hơn và đặt tên là LZW

Bản chất của kỹ thuật nén LZW là dựa vào sự lặp lại của một nhóm điểm chứ không phải loạt dài giống nhau. Ngƣời ta xây dựng từ điển lƣu các chuỗi ký tự có tần suất lặp lại cao và thay thế bằng từ mã tƣơng ứng mỗi khi gặp lại chúng. Do vậy, dữ liệu càng lớn thì sự lặp lại càng nhiều, hiệu quả nén càng cao. Mức độ hiệu quả của nén LZW không phụ thuộc vào số bit màu của ảnh.

Kích thƣớc ảnh sau nén = Tổng (số phần tử x độ dài bit bằng nhau)

Thuật toán nén LZW hay hơn các thuật toán trƣớc ở kỹ thuật tổ chức từ điển, cho phép nâng cao tỉ lệ nén. Kỹ thuật này áp dụng đƣợc cho tất cả các loại tập tin nhị phân, là chuẩn nén của ảnh loại TIFF, GIF.

Nén ảnh vừa giúp giảm thiểu kích thƣớc ảnh, đồng thời cũng đang đƣợc nghiên cứu cho hƣớng ứng dụng giấu thông tin.

2.7. Một số tiêu chí đánh giá kỹ thuật giấu thông tin trong ảnh số

2.7.1 Tính vô hình

Nhƣ đã nêu, kỹ thuật giấu thông tin trong ảnh phụ thuộc rất nhiều vào hệ thống thị giác của con ngƣời. Tính vô hình hay không cảm nhận đƣợc (imperceptible) của mắt ngƣời thƣờng giảm dần ở những vùng ảnh có màu xanh tím, thuỷ vân ẩn thƣờng đƣợc chọn giấu trong vùng này.

2.7.2. Khả năng giấu thông tin

Khả năng giấu thông tin (Hiding Capacity) hay lƣợng thông tin giấu đƣợc (dung lƣợng) trong một ảnh đƣợc tính bằng tỉ lệ giữa lƣợng thông tin giấu và kích thƣớc của ảnh. Các thuật toán giấu tin đều cố gắng đạt đƣợc mục tiêu giấu đƣợc nhiều tin và gây nhiễu không đáng kể. Thực tế, ngƣời ta luôn phải cân nhắc giữa dung lƣợng tin cần giấu với các tiêu chí khác nhƣ chất lƣợng (Quality), tính bền vững (Robustness) [13] của thông tin giấu. (adsbygoogle = window.adsbygoogle || []).push({});

2.7.3. Chất lượng của ảnh có giấu thông tin

Chất lƣợng của ảnh có giấu tin đƣợc đánh giá qua sự cảm nhận của mắt ngƣời. Nên chọn những ảnh có nhiễu, có những vùng góc cạnh hoặc có cấu trúc, làm ảnh môi trƣờng vì mắt thƣờng ít nhận biết đƣợc sự biến đổi, khi có tin giấu, trên những ảnh này.

Chất lƣợng ảnh có giấu thông tin còn đƣợc đánh giá một cách chính xác thông qua một tỷ lệ đƣợc viết tắt là PSNR (Peak Signal to Noise Ratio).

Trong đó MSE (Mean Squared Error ) là sai số bình phƣơng trung bình đƣợc tính bằng công thức

Trong đó I là ảnh gốc và K là ảnh sau khi giấu thông tin; m và n là kích thƣớc của ảnh. Nếu giá trị của PSNR giữa ảnh gốc và ảnh sau khi giấu nằm trong khoảng từ 30 đến 50 dB, thì bức ảnh sau khi giấu đƣợc đánh giá là đạt chất lƣợng. Tuy nhiên giá trị dB càng cao thì càng tốt.

2.7.4. Tính bền vững của thông tin được giấu

Tính bền vững thể hiện qua việc các thông tin giấu không bị thay đổi khi ảnh mang tin phải chịu tác động của các phép xử lý ảnh nhƣ nén, lọc, biến đổi tỉ lệ, …

Hình 19. Quan hệ giữa chất lƣợng, dung lƣợng và tính bền vững

2.7.5. Thuật toán và độ phức tạp tính toán

Cần nắm đƣợc một số kiến thức cơ bản về cấu trúc của ảnh để chọn ra thuật toán tìm miền ảnh thích hợp cho việc giấu tin. Độ phức tạp của thuật toán mã hóa và giải mã là yếu tố quan trọng để đánh giá các phƣơng pháp giấu tin trong ảnh. Yêu cầu về độ phức tạp tính toán phụ thuộc vào từng ứng dụng. Những ứng dụng theo hƣớng Watermark thƣờng có thuật toán phức tạp hơn hƣớng Steganography.

Chất lƣợng

Tính bền vững Dung lƣợng

2.8. Một số chƣơng trình giấu tin trong ảnh

2.8.1. Hide And Seek V4.1

Gồm một số chƣơng trình chạy trong môi trƣờng DOS (kèm theo mã nguồn), do Colin Maroney (1994) viết để giấu tin vào ảnh GIF. Tƣ tƣởng chủ đạo là giấu ngẫu nhiên một lƣợng thông tin, vị trí giấu tin trải đều khắp ảnh. Khi lƣợng thông tin cần giấu nhiều, mật độ thông tin quá dày, nhiễu của ảnh dễ bị phát hiện. Vì vậy, chƣơng trình chỉ cho phép giấu tối đa 19 Kb thông tin trên ảnh có kích thƣớc 320 x 480 (số điểm ảnh hiển thị trên màn hình VGA). Mỗi bit tin đƣợc giấu trong 8 bit ảnh (320 x 480 /8 = 19200 b), sử dụng kỹ thuật LSB. Phiên bản 4.1 đã cải thiện sự tán sắc đáng kể so với 3.5 và 4.0 trƣớc đó (tính toán bảng màu và cập nhật ngẫu nhiên thêm nhiều màu lân cận). Thông tin trƣớc khi giấu đƣợc mã hoá, theo tác giả, chƣơng trình có thể đảm bảo sự an toàn và bền vững của dữ liệu.

2.8.2. Stego Dos

Chƣơng trình chạy trong môi trƣờng DOS, sử dụng 320 x 200 điểm ảnh, 256 màu (ảnh 8 bit màu) để giấu tin. Stego Dos kết hợp hai kỹ thuật mã hoá và che giấu thông tin. Thuật toán che giấu thông tin áp dụng kỹ thuật LSB. Chƣơng trình dùng ảnh phủ loại BMP, WAV. Ảnh loại JPEG nếu sử dụng chƣơng trình này sẽ mất thông tin. Chƣơng trình ứg dụng để che giấu thông tin và xác nhận bản quyền của tác giả.

2.8.3. White Noise Storm

Do Ray Arachelian viết. Sử dụng đơn giản, ảnh chứa tin không cần có kích thƣớc cố định. Mắt thƣờng không phát hiện đƣợc sự thay đổi khi ảnh đƣợc giấu tin. Chƣơng trình dùng kỹ thuật LSB, cho ảnh PCX.

2.8.4. S – Tools for Windows

S - tools cho Windows, phiên bản 1.00 (1994) của Andy Brown, là chƣơng trình giấu tin đƣợc đánh giá tốt nhất. S - Tools cung cấp khả năng che đậy an toàn cho các thông tin header. Có thể giấu tin trong ảnh BMP, GIF, tệp âm thanh WAV

và có thể, lên các vùng chƣa dùng đến của đĩa mềm. Giao diện đồ họa kéo thả, thân thiện với ngƣời sử dụng. Thao tác kéo biểu tƣợng tập tin muốn giấu, thả vào ảnh môi trƣờng. Cho phép ngƣời dùng kiểm tra kết quả giấu tin bằng giác quan (nghe, nhìn).

2.9. Các kỹ thuật xử lí điểm ảnh:

Xử lí các điểm ảnh là một kỹ thuật đƣợc sử dụng thƣờng xuyên trong các kỹ thuật giấu tin trong ảnh. Các giá trị điểm ảnh đƣợc lấy ra rồi biến đổi theo thuật toán giấu tin. Tuy nhiên, miền giá trị của các điểm ảnh lại khác nhau phụ thuộc vào các loại ảnh, chính vì thế ta cần dùng đến kỹ thuật tách bit thông tin từ giá trị điểm ảnh.

Kỹ thuật này đƣợc sử dụng nhiều trong kỹ thuật giấu tin sử dụng các bit ít quan trọng nhất của điểm ảnh [15] (LSB - Least Significant Bit) sẽ đƣợc trình bày cụ thể trong chƣơng III. Kỹ thuật LSB là kỹ thuật sử dụng các bit ít quan trọng về tri giác nhất trong các bit mang giá trị điểm ảnh để giấu tin. Ví dụ nhƣ ảnh với ảnh 256 màu thì bit cuối cùng trong 8 bit biểu diễn một điểm ảnh đƣợc coi là bit ít quan trọng nhất theo nghĩa là nếu thay đổi bit này thì ảnh hƣởng ít nhất đến cảm nhận của mắt ngƣời về điểm ảnh. Hay đối với ảnh 16 bit thì 15 bit là biểu diễn ba màu RGB của điểm ảnh còn bit cuối cùng không dùng đến thì ta sẽ tách bit này ra ở mỗi điểm ảnh để giấu tin…Nhƣ vậy, kỹ thuật tách bit trong xử lí điểm ảnh đƣợc sử dụng rất nhiều trong kỹ thuật giấu tin, sau đây ta sẽ khảo sát một số kỹ thuật tách bit ít quan trọng trên một số loại ảnh phổ biến:

Tách bit cuối cùng trong 8 bit biểu diễn mỗi điểm ảnh của ảnh 256 màu

1 0 0 1 1 1 0 0 1 0 0 1 0 1 0 1 1 1 1 0 0 0 1 0

Hình 20. Mỗi điểm ảnh biểu diễn bởi 8 bit; bit cuối cùng (đổi màu) đƣợc coi là bit ít quan trọng nhât.

Trong phép tách này bit cuối cùng đƣợc coi là bit ít quan trọng nhất, thay đổi giá trị của bit này sẽ tăng hoặc giảm giá trị của điểm ảnh đúng một đơn vị. Ví dụ một điểm ảnh có giá trị là 234, nếu thay đổi bit cuối cùng từ 0 thành 1, giá trị mới

của điểm ảnh là 235. Sự thay đổi nhỏ đó sẽ không làm màu của điểm ảnh thay đổi nhiều. (adsbygoogle = window.adsbygoogle || []).push({});

Với các ảnh 16, 24 bit ta cũng thực hiện tƣơng tự.

Tách phần Blue trong RGB:

Đối với ảnh 24 bit màu, mỗi mầu đƣợc biểu diễn bởi 8 bit theo thứ tự R,G, B ngƣời ta thƣờng dùng kỹ thuật tách thành phần Blue (B) ở trong RGB để giấu tin vì mắt ngƣời cảm nhận màu lam kém hơn so với hai màu còn lại. Kỹ thuật này đƣợc thực hiện đơn giản nhƣ sau: Mỗi lần đọc điểm ảnh, ta đọc vào một cấu trúc bản ghi gồm ba thành phần R,G,B sau đó thì sẽ sử dụng thành phần B và có thể lại sử dụng kỹ thuật tách bit ít quan trọng nhƣ đã trình bày ở trên đối với thành phần B.

Biến đổi không gian màu cho ảnh 24 bit màu:

Đối với ảnh 24 bit màu, ngƣời ta còn hay sử dụng kỹ thuật biến đối không gian màu, ví dụ nhƣ từ RGB sang YIQ, hay RGB sang HSV… Trong phần này, chỉ giới thiệu một biến đổi RGB sang YIQ và ngƣợc lại vì đây là kỹ thuật thƣờng đƣợc dùng nhất trong kỹ thuật giấu tin với ảnh 24 bit màu. Cũng giống nhƣ việc tách thành phần B trong tổ hợp RGB của điểm ảnh, ngƣời ta thƣờng dùng biến đổi này để lợi dụng tính chất nhìn của mắt, trong 3 thành phần Y,I,Q có thành phần Y biểu diễn độ chói của ảnh, hệ thống mắt của ngƣời cảm nhận về độ chói kém hơn cảm nhận về màu chính vì thế mà các kỹ thuật giấu tin thƣờng biến đổi không gian màu từ RGB sang YIQ rồi lấy thành phần Y ra để giấu tin.

Công thức biến đổi không gian màu từ hệ RGB sang hệ YIQ

Công thức biến đổi ngƣợc từ hệ YIQ sang RGB            B * 0.312 G * 0.523 - R * 0.211 Q B * 0.322 - G * 0.274 - R * 0.596 I B * 0.144 G * 0.587 R * 0.299 Y R1.0*Y0.956* I0.621*Q

CHƢƠNG 3. MỘT SỐ THUẬT TOÁN GIẤU THÔNG TIN

3.1. Giới thiệu

Để thực hiện việc giấu thông tin trong môi trƣờng ảnh, trƣớc hết cần số hóa các bức ảnh theo những chuẩn phổ biến nhƣ JPEG, PCX, GIF, …

Sau bƣớc số hoá, tùy thuộc cấp độ màu khác nhau, có thể phân chia các loại ảnh đen trắng, ảnh xám hay ảnh màu. Ảnh đen trắng là ảnh nhị phân có 1 bit màu. Ứng với điểm đen, bit mang giá trị 0 và ứng với điểm trắng, bit mang giá trị 1. Giấu tin trong ảnh đen trắng thƣờng gây nhiễu, dễ nhận biết đƣợc bằng mắt thƣờng, số lƣợng thông tin giấu đƣợc cũng hạn chế.

Hình 21. Ảnh đen trắng và bảng màu tƣơng ứng

Ảnh màu trong máy tính là mảng các số thể hiện cƣờng độ sáng tại mỗi điểm ảnh. Các điểm ảnh cấu trúc theo dạng ảnh mành, số điểm ảnh thay đổi tuỳ thuộc độ phân giải của màn hình máy tính.

Độ phân giải Số điểm ảnh

1600 1200 1280 1024 1024 768 800 600 640 480 Bảng 5. Bố trí các điểm ảnh trên màn hình

Khi chuyển một ảnh tƣơng tự (analog) sang ảnh số, ngƣời ta có thể chọn những cách thể hiện màu khác nhau:

Hình 22. Ảnh 8 bit màu, chỉ sử dụng 8 trong 256 màu

- Ảnh 8 bit dải xám: mỗi điểm ảnh có thể nhận 1 trong 28 (256) sắc thái xám.

Hình 23. Ảnh với 256 mức xám

Mức xám là kết quả sự mã hoá tƣơng ứng một cƣờng độ sáng của mỗi điểm ảnh với một giá trị số sau quá trình lƣợng hoá. Cách mã hoá kinh điển thƣờng dùng là 16, 32, 64 mức. Mã hoá 28 = 256 (0,1,...255) mức là phổ dụng nhất, mỗi điểm ảnh

Một phần của tài liệu luận văn thạc sĩ tìm hiểu các kỹ thuật giấu tin trong ảnh (Trang 36)