Tải bản đầy đủ (.docx) (30 trang)

HỌC PHẦN các kỹ THUẬT GIẤU TIN báo cáo thuyết trình GIẤU TIN TRONG ẢNH PHƯƠNG PHÁP nén ẢNH DCT

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.4 MB, 30 trang )

HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG
KHOA CƠNG NGHỆ THÔNG TIN I

HỌC PHẦN : CÁC KỸ THUẬT GIẤU TIN
Báo cáo Thuyết trình

Sinh viên thực hiện
Tạ Hồng Nhi
Nguyễn Thị Kim Ngân
Giảng viên hướng dẫn

1

TIEU LUAN MOI download : moi nhat


Mục Lục
1. Các nguyên tắc của nén ảnh................................................................................4
2. Tổng quan về phương pháp DCT(Discrete Cosine Transform – DCT)..............4
3. Biến đổi DCT...................................................................................................... 6
4. Lượng tử hóa.....................................................................................................13
5. Thuật tốn giấu tin...............................................................................................15

2

TIEU LUAN MOI download : moi nhat


Lời nói đầu
Ngày nay mạng máy tính đã trở nên quen thuộc và phát triển rộng khắp nơi, vì thế
nhu cầu sử dụng tăng cao. Điều này dẫn tới việc dữ liệt 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 tên mạng máy tính thường thuộc
các loại sau : ký tự, ảnh và cá loại media khác
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 các hành vi vi phạm và đánh cắp
dữ liệu ở nhiều mức độ khác nhau và khó kiểm sốt. Cũng như việc đảm bảo an
toàn hay bảo mật cũng được quan tâm.
Vì thế dãn đến việc có nhiều thuật tố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 được được đảm bảo. Tăng khả
năng chuyề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.

3

TIEU LUAN MOI download : moi nhat


GIẤU TIN TRONG ẢNH
PHƯƠNG PHÁP NÉN ẢNH DCT


I.
1.

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ã hố 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:




2.

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.

Tổng quan về phương pháp DCT (Discrete Cosine Transform – DCT)
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 tốn DCT và xử lý nén
Hoffman có thể mơ tả qua các bước như dưới đây:
Bước 1. Ảnh gốc được chia thành từng mảng pixel thơng thường là
kích thước 8x8 pixels.
Bước 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)
Bước 3. Mỗi khối được lượng tử hoá.
Bước 4. Các khối được nén lại để giảm không gian chứa.

4

TIEU LUAN MOI download : moi nhat


Bước 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ý.

Hình 1: Sơ đồ tổng quan về quá trình giấu tin trong ảnh sử dụng phương
pháp biến đổi DCT
Ví dụ ứng dụng DCT trên thực tế:

Hình 2: Các thành phần của hệ thống truyền hình ảnh / video điển hình
5

TIEU LUAN MOI download : moi nhat


3.


Biến đổi DCT
-

-

Trước hết, vì ảnh gốc có kích thước rất lớn nên trước khi biến đổi DCT,
ảnh được phân chia thành các block riêng biệt. Tất cả các block đều có
cùng kích thước và mỗi block có kích thước 8 x 8 pixel. Mỗi pixel sẽ có
3 giá trị Y (độ sáng), Cb, Cr (tín hiệu màu). 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.(Trong tốn học, trực giao là tổng qt hóa của khái
niệm tính vng góc trong lĩnh vực đại số tuyến tính về các dạng song
tuyến tính. Hai phần tử u và v của một không gian vectơ với dạng
song tuyến tính B là trực giao nếu B(u, v) = 0. ... Trong trường hợp
không gian hàm, họ các hàm trực giao được sử dụng để tạo ra cơ sở.)
Sau đó các giá trị trong khối ảnh phải được trừ đi cùng một giá trị để các giá
trị ở trung tâm là 0. Ví dụ mỗi giá trị trong khối 8*8 có giá trị trong đoạn [0;
255] có giá trị ở chính giữa là 128. Phải lấy các giá trị trong khối trừ đi 128
để các giá trị nằm trong khoảng đoạn [-128; 127] tức là giá trị chính giữa là
0. 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 hồn tồ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ị.

6

TIEU LUAN MOI download : moi nhat



Hình 3: Tín hiệu màu của pixel
 DCT một chiều :

DCT một chiều biểu diễn biên độ tín hiệu tại các thời điểm rời rạc
theo thời gian hoặc không gian thành chuỗi các hệ số rời rạc, mỗi hệ
số biểu diễn biên độ của một thành phần tần số nhất định có trong tín
hiệu gốc. Hệ số đầu tiên biểu diễn mức DC trung bình của tín hiệu.
Các hệ số thể hiện các thành phần tần số không gian cao hơn của tín
hiệu và được gọi là các hệ số AC. Thơng thường nhiều hệ số AC có
giá trị gần hoặc bằng 0. Quá trình biến đổi DCT thuận (FDCT) được
định nghĩa như sau:

Hàm biến đổi DCT ngược (một chiều):
1

Đối với k = 0 => X(0) = √ ∑ =0

−1

( )

Trong đó:


X(k) là chuỗi kết quả. k chỉ số của hệ số khai triển.
7

TIEU LUAN MOI download : moi nhat








x(m) là giá trị mẫu m. m chỉ số của mẫu.
N chỉ số mẫu có trong tín hiệu.

Do đó, hệ số biến đổi đầu tiên là giá trị trung bình của chuỗi mẫu. Giá
trị này được gọi là hệ số DC. Tất cả các hệ số biến đổi khác được gọi
là hệ số AC
DCT hai chiều :
Biến đổi DCT hai chiều (2-D) được dùng cho các khối ảnh có kích
thước 8x8. Quá trình biến đổi DCT thuận được định nghĩa như sau:

Trong đó:
• f(j ,k) là các mẫu của ảnh gốc trong khối 8x8 pixel.
• F(u, v) là các hệ số của khối DCT 8x8

Phép biến đổi DCT hai chiều là phép biến đổi đối xứng và biến đổi
nghịch cho phép tái tạo lại các giá trị mẫu f(j, k) trên cơ sở các hệ
số F(u,v) theo cơng thức sau:

Ví dụ: Để hiểu rõ hơn về vấn đề biến đổi DCT, ví dụ dưới đây sẽ trình
bày quy trình biến đổi ảnh từ miền không gian sang miền tần số.
-

Đầu vào: Một ma trận điểm ảnh có kích thước 8x8 pixel

8


TIEU LUAN MOI download : moi nhat


Bước 1 : Tiền xử lý ảnh


Trừ các giá trị của các pixel đi 128 thu được ma trận với M

Bước 2 : Tính tốn ma trận DCT:
Ma trận T được định nghĩa theo công thức:

Với i là số hàng còn j là số cột N là giá trị của số pixel tối đa. Vì
đầu vào ở đây là khối 8x8 pixel nên có ma trận kết quả sau:

9

TIEU LUAN MOI download : moi nhat


Bước 3: Biến đổi cosine rời rạc : D = TMT’

 Kết quả rút ra : Đâ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.
Nhận xét

Có thể thấy biến đổi DCT biểu diễn phổ tần số tín hiệu bằng các mẫu f(j, k) và
bản thân phép biến đổi DCT không nén được số liệu, từ 64 mẫu nhận được
64 hệ số tương ứng. Tuy nhiên, phép biến đổi DCT thay đổi phân bố giá tri các
hệ số so với phân bố các giá trị mẫu. Phép biến đổi DCT cho giá trị DC (F(0,
0)) thường lớn nhất và các hệ số trực tiếp kề nó ứng với tần số thấp có giá trị
nhỏ hơn, các hệ số còn lại ứng với tần số cao có giá trị rất nhỏ. Khối hệ số DCT
có thể chia làm 3 miền tần số thấp, miền tần số cao và miền tần số
10

TIEU LUAN MOI download : moi nhat


giữa. Miền tần số thấp chứa các thông tin quan trọng ảnh hưởng đến tri giác.
Miền tần số cao thường khơng mang tính tri giác cao.
Kết luận



DCT làm giảm độ tương quan khơng gian của thơng tin trong khối. Vì
vậy, việc biểu diễn DCT có độ dư thừa thơng tin ít hơn .
Đồng thời DCT chứa thông tin về nội dung tần số không gian của
thông tin trong khối. Dựa vào đặc tính sinh lý thị giác, ta chỉ mã hóa
những hệ số DCT quan trọng

Code giả mã thuật tốn bằng C++
#include <bits/stdc++.h>
using namespace std;
#define pi 3.142857
const int m = 8, n = 8;
int dctTransform(int matrix[][n])

{
float dct[m][n];
float ci, cj, dct1, sum;
for (int i = 0; i < m; i++) {
for ( int j = 0; j < n; j++) {
//ci vs cj phu thuoc vao so hang so cot cua ma tran
if (i == 0)
ci = 1 / sqrt(m);
else
ci = sqrt(2) / sqrt(m);
if (j == 0)
cj = 1 / sqrt(n);
else
cj = sqrt(2) / sqrt(n);
11

TIEU LUAN MOI download : moi nhat


sum = 0;
for (int k = 0; k < m; k++) {
for (int l = 0; l < n; l++) {
dct1 = matrix[k][l] *
cos((2 * k + 1) * i * pi / (2 * m)) *
cos((2 * l + 1) * j * pi / (2 * n));
sum = sum + dct1;
}
}
dct[i][j] = ci * cj * sum;
}

}
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
printf("%f\t", dct[i][j]);
}
printf("\n");
}
}
int main()
{
int matrix[m][n] ;
int a=0;
for (int i = 0; i < m; i++) {
for ( int j = 0; j < n; j++) {
cin>>a;
matrix[i][j] = a-128;
}
12

TIEU LUAN MOI download : moi nhat


}
dctTransform(matrix);
return 0;
}
4.

Lượng tử hóa
Q trình lượng tử hóa và mã hố các hệ số DCT là q trình nén thơng tin,

vì bản thân phép biến đổi DCT khơng nén thơng tin
 Đặc trưng thị giác của mắt người
-

Mắt người không nhạy cảm với thành phần tần số cao cũng như với
sai số ở vùng ảnh có nhiều chi tiết, biến đổi nhanh. Hơn nữa, sự phản
ánh theo hướng xiên ít ảnh hưởng hơn các hướng ngang và thẳng
đứng



Sai số của các hệ số tần số cao cũng như sai số hệ số theo đường chéo
ít ảnh hưởng hơn tới chất lượng ảnh khơi phục. Nó cho phép sử dụng
bộ lượng tử hố có bước lượng tử thơ hơn cho các hệ số DCT tần số
cao hơn và theo hướng chéo

Còn hệ số một chiều DC địi hỏi độ chính xác cao nhất, bởi lẽ nó biểu
thị độ chói trung bình của từng khối phần tử ảnh.
Lượng tử hoá DCT




- Sau khi thực hiện biến đổi DCT, 64 hệ số sẽ được lượng tử hóa dựa trên một bảng lượng tử gồm 64 phẩn tử Q(u, v) với 0 ≤ u, v ≤ 7

- Các phần tử trong bảng lượng tử có giá trị từ 1 đến 255 được gọi là
các bước nhảy cho các hệ số DCT
- Quá trình lượng tử được coi như là việc chia các hệ số DCT cho bước
nhảy lượng tử tương ứng, kết quả này sau đó sẽ được làm trịn xuống
số ngun gần nhất

- Công thức thể hiện lượng tử:( , ) =
(
)
- Mục đích : Giảm số lượng bit cần để lưu trữ các hệ số biến đổi bằng
việc giảm độ chính xác của các hệ số này cho nên lượng tử là q
trình xử lý có mất thơng tin
( , )

( , )

13

TIEU LUAN MOI download : moi nhat


-

Các mức độ nén và chất lượng hình ảnh khác nhau có thể đạt được
qua việc lựa chọn các ma trận lượng tử cụ thể -> cho phép người dung
quyết định mức chất lượng từ 1-100 ( 1 cho chất lượng hình ảnh
kém/nén cao , 100 cho chất lượng ảnh cao/độ nén thấp)

-

Ví dụ với ma trận D thu được từ phép biến đổi DCT. Với ma trận
lượng tử Q cho trước

Trong ví dụ này chọn ma trận lượng tử hóa là

50


-

Lượng tử hóa đạt được bởi việc chia mỗi phần tử trong ma trận D
cho ma trận Q, sau đó lấy giá trị gần nhất

-

Dùng cơng thức Huffman ở trên với đầu vào là 2 ma trận D và Q.
,



=

(

(
( ,

,

)
))

Kết quả thu được

14

TIEU LUAN MOI download : moi nhat



Nhận xét: Các hệ số nằm gần góc bên trái tương ứng với các tần số thấp hơn
mà mắt người nhạy cảm nhất. Ngoài ra các số 0 đại diện cho tần số ít quan
trọng hơn,cao hơn đã bị loại bỏ dẫn đến phần mất mát của nén. Như đã đề cập
trước đây, các chỉ số khác 0 còn lại sẽ được dử dụng để tái tạo lại hình ảnh.
5.

Thuật toán giấu tin
- Đối với ảnh JPEG, dữ liệu gốc là các bảng DCT sau khi được lượng tử
hóa.
- Mỗi bảng chứa 64 hệ số, mỗi hệ số là số nguyên có giá trị nằm trong
đoạn [-2048;2047].
- Đặc điểm của bảng DCT là càng về cuối bảng thì các giá trị có xu hướng
nhỏ dần.
- Có nhiều thuật tốn khác nhau có thể áp dụng để giấu tin vào hệ số DCT
như:





LSB: Least Significant Bit
Jsteg
F3, F4
Pixel Swap Embedding

 Trong những phần sau sẽ sử dụng thuật toán LSB để minh họa
-


-

Đầu vào LSB:
• Các hệ số DCT đã được lượng tử hóa (C50 đã thu được ở bước trên)
• Thơng điệp giấu : 010
Đầu ra LSB: ảnh chứa thông điệp
15

TIEU LUAN MOI download : moi nhat


-

Trong quá trình giấu tin sử dụng LSB cần lưu ý:
• Ảnh dùng để giấu tin có kích thước rất lớn (bao gồm nhiều khối
8x8pixel

 có được nhiều ma trận lượng tử C khác nhau



Thơng thường người giấu tin sẽ tách chuỗi tin cần giấy ra các ký tự
và giấu mỗi ký tự vào mỗi ma trận Ci
Không chắn chắn được tọa độ DC trong mỗi ma trận là như nhau
nên cần tìm ra các LSB của bit đó

 áp dụng thuật toán zigzac

-


3 pixel cuối cùng của dãy sẽ ứng với các số 0 trong ma trận C50 thuộc
phần DC ( là phần sẽ giấu tin)

 Đổi giá trị 3 pixel này bằng 3 bit của bản rỏ ban đầu (010)

16

TIEU LUAN MOI download : moi nhat


 Kết quả thu được ma trận mới:

6.

Phục hồi ảnh
-

Sau khi đã giấu tin vào các hệ số của bảng lượng tử hóa, người ta tiến
hành phục hồi ảnh sử dụng công thức sau:
Ri j = Qi j * Ci j
Trong đó:


Qi j là ma trận lượng tử đã được sử dụng ở trên (Q50)



Ci j là kết quả đã được giấu tin ở trên (C50LSB)

17


TIEU LUAN MOI download : moi nhat


-

Cuối cùng ta thực hiện IDCT ma trận R theo công thức sau:
Nnew = round(T’RT) + 128
 Ta thu được ảnh mới:

- So sánh 2 ma trận điểm ảnh N và Nnew ta thấy có rất ít thơng số bị thay đổi.

18

TIEU LUAN MOI download : moi nhat


19

TIEU LUAN MOI download : moi nhat


AI.
-

DEMO
1. Demo 1 :
Trước hết để nhúng thông

20


TIEU LUAN MOI download : moi nhat


-

Chọn INSERT Watermark để bắt đầu chương trình

Giao diện sau khi chọn Insert watermark
B1: Chọn ảnh cần giấu tin : ảnh ở đây là gautruc.png
B2: Định dạng hình ảnh đầu ra và đặt tên : gautruc1.bmp
B3 : Chọn thông điệp muốn nhúng vào trong ảnh dạng Text và viết thông
điệp cần nhúng vào trong ảnh
B4: Để an toàn trong quá trình truyền ảnh tránh bị phát hiện thơng điệp ta
truyền vào đó 1 key để mã hóa
B5: Thực hiện giấu tin -> cho ra hình ảnh gautruc1.bmp

21

TIEU LUAN MOI download : moi nhat


22

TIEU LUAN MOI download : moi nhat


B6 : Quay lại giao diện chính và chọn EXTRACT Watermark để trích xuất
thơng điệp được nhúng trong ảnh


23

TIEU LUAN MOI download : moi nhat


B7: Điền thơng tin ảnh cần trích xuất (gautruc1.bmp), dạng thơng tin cần
trích xuất là Text và key ban đầu được thỏa thuận giữa 2 bên là 123

24

TIEU LUAN MOI download : moi nhat


B8: Thực hiện trích xuất thơng tin -> ta thu được thông điệp ( do bảng chữ
cái ascii không hỗ trợ một số dấu câu cũng như 1 số chữ nên sẽ xảy ra lỗi
font )

25

TIEU LUAN MOI download : moi nhat


×