Xét giá trị của thành phần Y, trong bước lượng tử hóa YijJ1 được tính như sau :
YijJ1=round(YijB/Qij)
Thực hiện giải nén ảnh JPEG J1 được ảnh Bitmap B1, trong bước giải lượng tử YijB1 được tính như sau :
YijB1=YijJ1*Qij
Thực hiện nén lần hai từ ảnh Bitmap B1 được ảnh JPEG J2, giá trị YijJ2
bằng : YijJ2=round(YijB1/Qij)
Từ đó suy ra :
YijJ2=round(YijJ1*Qij /Qij)=YijJ1
Thực hiện giải nén ảnh JPEG J2 được ảnh Bitmap B2, trong bước giải lượng
tử YijB2 được tính như sau:
YijB2=YijJ2*Qij Mà YijJ2= YijJ1 nên: YijB2=YijJ1*Qij= YijB1 Hệ số DCT : YijB, CbijB, CrijB Lượng tử hóa Qij
Giá trị sau khi lượng tử hóa: YijJ1, CbijJ1, CrijJ1 Giải lượng tử Qij Hệ số DCT: YijB1, CbijB1, CrijB1 Ảnh Ảnh Ảnh Bitmap B1
Lượng tử và giả lượng tử lần 1
Hệ số DCT : YijB1, CbijB1, CrijB1
Lượng tử hóa Qij
Giá trị sau khi lượng tử hóa: YijJ2, CbijJ2, CrijJ2 Giải lượng tử Qij Hệ số DCT: YijB2, CbijB2, CrijB2 Ảnh Bitmap B1 Ảnh Ảnh Bitmap B2
Lập luận tương tự với các thành phần Cb và Cr, suy ra:
CbijB1=CbijB2 và CrijB1=CrijB2
Do giả thiết phép biến đổi Cosin rời rạc được thực hiện chính xác nên suy ra các bộ giá trị R, G, B của ảnh Bitmap B1 và B2 bằng nhau. Vậy bổ đề được chứng minh!
Trong quá trình lượng tử hóa có sự sai khác lớn nên dễ dàng suy ra các tính chất sau:
Tính chất 1: Một ảnh JPEG được nén lần thứ 2 với hệ số nén khác nhau thì ảnh sẽ bị thay đổi.
Tính chất 2: Một ảnh Bitmap được nén theo chuẩn JPEG thì ảnh cũng sẽ bị thay đổi.
4.2.3 Kỹ thuật phát hiện
Kỹ thuật được xây dựng dựa trên bổ đề và các tính chất được nêu ở phần 4.5.1, kỹ thuật sử dụng các bảng lượng tử Qα (α=1,…,100), và một giá trị d {1,2,…,10} làm ngưỡng để xác định vùng giả mạo (do phép biến đổi Cosin rời rạc
có sai số). Kỹ thuật được thực hiện như sau: Input: Ảnh F, kích thước ảnh m×n
(F có thể là ảnh thật, hoặc ảnh giả mạo có dạng 1 hoặc dạng 2). Output: Vùng ảnh giả mạo được chèn vào.
Bước 1. Chọn α=1
Bước 2. Q=Qα
Bước 3. Nén ảnh với bảng lượng tử Q nhận được F’.
Bước 4. Xác định hiệu của hai ảnh G=F F’
Gij(R)=|Fij(R) –F’ij(R)| Gij(G)=|Fij(G)-F’ij(G)| Gij(B)=|Fij(B)-F’ij(B)|
Bước 5. Chọn ngưỡng d, xác định tập:
Wd={(i,j)|Gij(R)+Gij(G)+Gij(B)≤d}
- Nếu tồn tại Wd thì Wd chính là vùng giả mạo(vùng Wd phải thỏa mãn
là miền liên thông và có kích thước lớn hơn một giá trị nào đó)=> kết thúc
thuật toán.
- Trái lại chuyển đến bước 6.
Bước 6. α=α+1
- Nếu α≥100, ảnh không giả mạo => kết thúc thật toán - Nếu α<100, trở về bước 2.
Tính đúng đắn của thuật toán: Giả sử trong ảnh F có ít nhất một vùng giả mạo W nén với bảng lượng tử Q0 được chèn vào. Theo bổ đề và các tính chất ở trên khi thực hiện thuật toán với một Q = Q0 thì sẽ tính được miền Wd nào đó xấp xỉ W theo ngưỡng d.
4.2.4 Một số kết quả thực nghiệm
Nghiên cứu sinh đã lập trình thuật toán và bước đầu sử dụng phần mềm chỉnh sửa ảnh photoshop để tạo ra một số bức ảnh giả mạo, tiếp tục cũng dùng phần mềm này để nén JPEG các ảnh giả mạo với các tỷ lệ nén khác nhau. Sau đó tiến hành trừ các giá trị điểm ảnh của ảnh bị nén JPEG này với bức ảnh giả mạo thu được một ma trận điểm ảnh, cho hiện ma trận điểm ảnh thu được. Với các ảnh có cùng tỷ lệ nén thì sẽ xuất hiện vùng toàn đen, đó chính là vùng giả mạo. Dưới đây là một ví dụ minh họa, ảnh giả mạo được tạo từ các ảnh JPEG như sau: