You are on page 1of 23

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

KHOA CÔNG NGHỆ THÔNG TIN

Học phần: Các kỹ thuật giấu tin

Phương pháp giấu trên miền nén của


video chất lượng cao

Giảng viên hướng dẫn: TS. Đỗ Xuân Chợ


Sinh viên thực hiện:Nhóm 10
Vũ Lê Long B17DCAT120
Diệp Quang Huy B17DCAT093

Hà Nội, 2021
MỤC LỤC
DANH SÁCH TỪ VIẾT TẮT..........................................................................4

DANH SÁCH HÌNH ẢNH...............................................................................5

DANH SÁCH BẢNG.......................................................................................6

LỜI MỞ ĐẦU...................................................................................................7

I. Giới thiệu tổng quan về giấu tin trong video.................................................8

1. Kĩ thuật giấu tin và kĩ thuật giấu tin trong video.......................................8

2. Phân loại các kĩ thuật giấu tin trong video.................................................8

II. Phương pháp giấu tin trong miền nén của video chất lượng cao................10

1. Lụa chọn khung........................................................................................11

2. Giải nén video một phần..........................................................................11

3. Giấu thông tin...........................................................................................20

3.1. Thực hiện tính toán DCT cho toàn khung hình................................20

3.2. Điều chỉnh chỉ số lượng tử hóa........................................................22

3.3. Chọn vị trí nhúng..............................................................................22

3.4. Giấu thông tin vào hệ số DCT..........................................................23

3.5. Biến đổi DCT ngược........................................................................24

4. Mã hóa video............................................................................................24

TÀI LIỆU THAM KHẢO...............................................................................25

2
DANH SÁCH TỪ VIẾT TẮT

Stt Từ viết tắt Thuật ngữ Tiếng Anh Thuật ngữ Tiếng Việt

1 AC AC-coefficient Hệ số AC

2 DC DC-coefficient Hệ số DC

3 DCT Discrete Cosine Transformations Biến đổi cosin rời rạc

4 GOP Group of pictures Nhóm các ảnh

Điều chỉnh chỉ số lượng tử


5 QIM Quantization Index Modulation
hóa

Mã hóa có độ dài biến đổi


6 VLC Variable-Length Coding
được

Giải mã hóa có độ dài biến


7 VLD Variable Length Decoding
đổi được

3
DANH SÁCH HÌNH ẢNH

Hình 1 Các bước tông quát trong kĩ thuật giấu tin trên miền nén của video chất
lượng cao.................................................................................................................10
Hình 2 Bảng tần xuất.......................................................................................13
Hình 3 Bảng tấn suất theo thứ tự giảm dần.....................................................13
Hình 4 Bảng từ mã gán cho các kí tự bởi mã Huffman...................................14
Hình 5 Sơ đồ khối mã hóa thành phần DC......................................................15
Hình 6 Ví dụ về quá trình mã hóa Huffman thực hiện cho thành phần DC....17
Hình 7 Sơ đồ khối mã hóa thành phần AC......................................................18
Hình 8 Giải thích về các thành phần trong phương trình FullDCT.................20
Hình 9 Phương trình FullDCT........................................................................21
Hình 10 Thay thế giá trị thông tin càn giấu trong QIM..................................23

4
DANH SÁCH BẢNG

Bảng 1 Phân loại hệ số DC và AC..................................................................16


Bảng 2 Bảng mã Huffman cho thành phần DC...............................................17
Bảng 3 Bảng mã Huffman cho thành phần AC...............................................19

5
LỜI MỞ ĐẦU

Ngày nay cùng với sự phát triển mạnh mẽ của ngành viễn thông và ngành công
nghệ thông tin, nhu cầu trao đổi thông tin qua mạng internet ngày càng lớn. Với lượng
thông tin lớn như vậy, nguy cơ dữ liệu bị truy cập trái phép cũng tăng lên vì vậy vấn
đề bảo đảm an toàn và bảo mật thông tin là rất cần thiết. Nhiều kĩ thuật đã được
nghiên cứu để giải quyết vấn đề này, trong số đó bao gồm các kĩ thuật giấu tin.

Kĩ thuật giấu tin gồm nhiều kĩ thuật khác nhau như giấu tin trong văn bản, hình
ảnh, video, âm thanh, …

Nội dung của bài báo cáo này chủ yếu nghiên cứu về kỹ thuật giấu tin nói chung
và kĩ thuật giấu tin trong miền nén của video chất lương cao nói riêng.

6
I. Giới thiệu tổng quan về giấu tin trong video

1. Kĩ thuật giấu tin và kĩ thuật giấu tin trong video


Kỹ thuật giấu thông tin là lĩnh vực chuyên nghiên cứu về các phương pháp, kỹ
thuật, thuật toán nhằm nhúng thông tin vào một đối tượng dữ liệu khác. Xét theo khía
cạnh tổng quát thì giấu thông tin cũng là một dang mật mã nhằm đảm bảo tính an toàn
của thông tin, nhưng phương pháp này có ưu điểm nằm ở chỗ là giảm được khả năng
phát hiện ra sự tồn tại của thông tin khi được truyền đi.

Đối với kĩ thuật giấu tin trong video thường tập chung vào việc làm thế nào để
giấu được thứ càn giấu trong các khung hình của video đó. Tuy nhiên, trong một thời
gian gần đây kỹ thuật giấu tin trong khung âm thanh của video cũng đang được
nghiên cứu và áp dụng nhiều trong thực tế.

2. Phân loại các kĩ thuật giấu tin trong video


Dưới đây là một số phương pháp giấu tin trong video:

 Phương pháp phát hiện thay đổi khung cảnh:

Phương pháp giấu tin trong video trên cơ sở phương pháp phát hiện chuyển cảnh
là phương pháp giấu tin vào các khung hình của video. Phương pháp này dựa vào sự
thay đổi các khung cảnh trong video để giấu thông tin.

 Phương pháp mặt phẳng bit:

Bit Plane Complexity Segmentation steganography (BPCS): phương pháp giấu


tin trong mặt phẳng bit là phương pháp giấu tin trong video dựa trên sự biến đổi các
khung hình của video. BPCS là các mặt phẳng bit trong mỗi khung hình của video.

 Phương pháp giấu trong miền video nén dựa trên sự khác biệt năng
lượng:
7
DEW (Difference Energy Watermarking) là phương pháp giấu tin trong video
dựa trên sự khác biệt năng lượng giữa các vùng được chia điều thành từng khối (ví dụ
các khối 8x8 pixel)

 Phương pháp giấu trên miền nén của video chất lượng cao:

Là phương pháp giấu tin trong video dựa trên biến đổi DCT, VLD và lương tử
hóa, trong các khối đều nhau rồi sau đó thay thế các các giá trị thông tin cần giấu
bằng QIM. Sau khi đã tính toán các khối hệ số DCT nghịch đảo, người giấu tin sẽ tiến
hành mã hóa video lại sử dụng VLC và giải lượng tử hóa, thu được video chứa tin cần
giấu.

8
II. Phương pháp giấu tin trong miền nén của video chất lượng cao
Các bước chính trong kĩ thuật giấu tin trên miền nén của video chất lượng cao:

Hình 1 Các bước tông quát trong kĩ thuật giấu tin trên miền nén của video chất lượng cao

9
 Bước 1: Lựa chọn khung hình
 Bước 2: Giải nén một phần video
 Bước 3: Giấu thông tin
 Bước 4: Mã hóa video

1. Lụa chọn khung


Chọn một khung bất kỳ để tiến hành nhúng, nên chọn khung I vì khung I là
khung cơ sở và có thể coi là ảnh gốc, với khung này khi giải mã thì không cần lấy
thông tin từ khung khác

2. Giải nén video một phần


Việc giải nén một phần của video sử dụng phương pháp chính là VLD (Variable
Length Decoding - mã hóa có độ dài biến đổi được) và giải lượng tử hóa. Quy trình
như sau:

-VLD: các từ mã có tần suất xuất hiện thấp sẽ được mã hóa bằng các từ mã
bằng các từ mã dài , quá trình này được gọi là phương pháp mã hóa các từ mã có độ
dài thay đổi. Quá trình mã hóa này được tiến hành trên tất cả các thành phần của hệ số
DCT.

 Với các thành phần DC và AC sẽ được sẽ được mã hóa nhờ bảng phân
loại và bảng Huffman (dựa vào đặc tính thống kê của tín hiệu).
 Phương pháp mã hóa Huffman:

Phương pháp mã hóa 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, người ta tính tần suất xuất hiện của các ký tự. Việc tính tần suất được
thực hiện bởi 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 người ta gán cho các ký tự có tần suất cao một từ mã

10
ngắn, các ký tự có tần suất thấp từ mã dài.Nói một cách khác, các ký tự có tần suấ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ã hóa bằng cách dùng chiều dàibiế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.

Thuật toán

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

- Giai đoạn thứ nhất: 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: 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 xuất hiện thấp nhất thành một phần tử duy nhất. Phần tử này có tần suấ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 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.

Mã hóa: 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 một bit “0”.

Ví dụ:

11
Hình 2 Bảng tần xuất Hình 3 Bảng tấn suất theo thứ tự giảm dần

Lưu ý rằng, trong phương pháp Huffman, mã của ký tự là duy nhất và không
mã nào là phần bắt đầu của mã khác. Vì vậy, khi đọc tệp nén từng bit từ đầu đến cuối
ta có thể duyệt cây mã cho đến một lá, tức là ký tự đã được giải nén.

12
Hình 4 Bảng từ mã gán cho các kí tự bởi mã Huffman

Mã hóa các hệ số DCT

• Để mã hóa entropy các hệ số Fq (u,v), ta cần biến đổi hệ số Fq (u,v) thành các
chuỗi số một chiều.

• Hệ số Fq (0,0) (thành phần 1 chiều) là thành phần trung bình của mỗi block
được đưa vào bộ mã hóa vi sai (DPCM- Differential pulse code modulation).

• Các hệ số khác (thành phần xoay chiều) trong từng block được đọc theo kiểu
zig-zag và đưa tới bộ mã hóa loạt dài (RLC).

• Cuối cùng dữ liệu từ 2 bộ mã hóa DPCM và RLC được mã hóa một lần nữa
bằng mã Entropy.

• Dữ liệu nén, các bảng mã, bảng lượng tử được kết hợp lại thành một file theo
chuẩn JPEG.

Mã hóa thành phần DC

- Các hệ số DC là giá trị trung bình của các khối ảnh 8x8. Độ chói trung bình của
các block ảnh gần nhau thường ít biến đổi, do đó trong chuẩn nén JPEG, các hệ số DC
được mã hóa theo phương pháp DPCM.

13
- Để tăng hiệu suất nén, kết quả nhận được sau đó được mã hóa tiếp bằng mã
Huffman.

- Trên lý thuyết, dải động của các giá trị nhận được sau khi mã hóa DPCM lớn
gấp đôi dải động của các hệ số DCT, có nghĩa là thành phần này sẽ có giá trị nằm
trong khoảng -211 đến 211-1. Số bit cần để mã hóa thành phần một chiều có thế là 11.

Hình 5 Sơ đồ khối mã hóa thành phần DC

- Quá trình mã hóa Huffman được thực hiện cho thành phần DC như sau:

 Dò tìm trong bảng phân loại để phân loại giá trị ∆DC.
 Dùng bảng mã Huffman cho thành phần DC để tìm ra từ mã cho loại ∆DC
tìm được ở bước 1.
 Mã hoá nhị phân giá trị ∆DC.
 Ghép các từ mã Huffman và giá trị nhị phân của ∆DC để có được từ mã
cho thành phần DC.

Loại Phạm vi hệ số
NA 0
14
-1 1
1 -3, -2 2, 3
2 -7,-6,-5,-4 4,5,6,7
3 -15,…,-8 8,…,15
4 -31,…,-16 16,…,31
5 -63,…,-32 32,…,63
6 -127,…,-64 64,…,127
7 -255,…-128 128,…,255
8 -511,…,-256 256,…,511

9 -1023,…,-512 512,…,1023

10 -2047,…,-1024 1024,…,2047

11
Bảng 1 Phân loại hệ số DC và AC

15
Các ∆ DC Phân loại Từ mã
-255,…-128 128,…,255 8 1111110
-127,…,-64 64,…,127 7 111110
-63,…,-32 32,…,63 6 11110
-31,…,-16 16,…,31 5 1110
-15,…,-8 8,…,15 4 110
-7,-6,-5,-4 4,5,6,7 3 101
-3, -2 2, 3 2 01
-1 1 1 00
0 0 100
Bảng 2 Bảng mã Huffman cho thành phần DC

Ví dụ:

Hình 6 Ví dụ về quá trình mã hóa Huffman thực hiện cho thành phần DC

16
=> Kết quả mã hóa DPCM là ∆DC= 15

Trên bảng phân loại hệ số ∆DC=15 thuộc loại 4.

Dựa vào bảng mã Huffman ta có từ mã tương ứng với loại 4 là 110 (2 chính là
độ dài từ mã).

Giá trị ∆DC=15 mã hóa nhị phân là 1111.

=> Từ mã DC n là 1101111.

Vậy sau khi mã hóa ta được kết quả là 1101111.

Mã hóa thành phần AC

Với thành phần AC: hệ số AC cũng được mã hóa nhờ bảng phân loại và bàng
Huffman.

Hình 7 Sơ đồ khối mã hóa thành phần AC

17
Giá trị Độ dài
Loại Từ mã
chạy mã
0 1 2 00
0 2 2 01
1 1 4 1100
1 2 6 111001
1 3 7 1111001
1 4 9 111110110
2 1 5 11011
2 2 8 11111000
4 1 6 111011
5 1 7 1111010
6 1 7 1111011
EOB 4 1010
Bảng 3 Bảng mã Huffman cho thành phần AC

18
3. Giấu thông tin
Để giấu được thông tin vào khung hình vừa được chọn, người giấu tin cần thực
hiện các biện pháp tiền xử lý như sau:

 Giai đoạn 1: Thực hiện tính toán DCT cho toàn khung hình
 Giai đoạn 2: Điều chỉnh chỉ số lượng tử hóa
 Giai đoạn 3: Chọn vị trí nhúng
 Giai đoạn 4: Giấu thông tin vào hệ số DCT
 Giai đoạn 5: Biến đổi DCT ngược

3.1. Thực hiện tính toán DCT cho toàn khung hình

Hình 8 Giải thích về các thành phần trong phương trình FullDCT

19
Hình 9 Phương trình FullDCT

Sau khi giải nén một phần video thu được các khối hệ số DCT 8x8 pixel. Ở giai
đoạn này người giấu tin cần thực hiện tính toán các DCT toàn khung hình từ khối hệ
số DCT 8x8 pixel vừa thu được. Hệ số DCT đầy đủ được tính như sau: giả sử kích
thước khung hình là 𝐿𝑁 × 𝑀𝑁 và kích thước của một khối 𝐵𝑖,𝑗 là N. L và M số hàng
và cột trong hàng tương ứng

3.2. Điều chỉnh chỉ số lượng tử hóa


Sử dụng phương pháp điều chỉnh chỉ số lượng tử hóa (QIM) để giấu thông tin
vào các hệ số tần số thấp của hệ số DCT toàn khung hình. Để thực hiện được nhiệm
này cần thực hiện các quá trình tính kích thước bước Q. Trong thực tế, quá trình tính
toàn kích thước bước Q áp dụng công thức dưới đây:

(| || |)
n
|X j−μ| n
|X j −μ|
∆=2 max (|α|,|β|)=2 max 2 ∑ 2
,2 ∑ 2
❑ ❑ j =1 X τ j =1 X τ
2 n ,1− 2n,
2 2

Trong đó:
20
α , β : Khoảngtin cậy

μ : tham số vị trí (là giá trị trung bình của biểu đồ )


3.3. Chọn vị trí nhúng
Các hệ số xung quanh thành phần DC thường có các giá trị lớn, do đó việc sửa
đổi chúng làm giảm chất lượng hình ảnh nghiêm trọng. Ngoài ra, các giá trị hệ số gần
thành phần DC thì giá trị của chúng sẽ càng khác nhau sau khi mã hóa lại. Do đó, nên
lựa chọn các thành phần tần số trung gian làm vị trí nhúng để cân bằng giữa độ bền và
chất lượng hình ảnh.

3.4. Giấu thông tin vào hệ số DCT


Áp dụng công thức:

y k =E ( x k , w k )=round ( )
xk

× ∆+d ( x k , wk )

Trong đó:

∆ : kíchthước của bước Q

hàm d ( x k , w k ) biểu thị giá trị dithred tương ứng với bit w k của thông tin mật .

Hàm d ( x k , w k ) được tính theo công thức dưới đây :

d ( x k , w y )=¿

(Ở đây R viết tắt cho round ( x∆ ))


k

Hình 10 Thay thế giá trị thông tin càn giấu trong QIM

21
Giả sử rằng vòng tròn màu xám là giá trị hệ số ban đầu. Nếu một bit thông tin
cần giấu là “1” được nhúng vào hệ số này, nó được thay thế cho giá trị trung bình của
w 1 là giá trị gần nhất với giá trị hệ số ban đầu. Nếu một bit thông tin cần giấu là “0”

được nhúng, nó được thay thế cho giá trị trung bình của w 0 gần nhất.

3.5. Biến đổi DCT ngược


Sau khi đã giấu được thông tin bởi QIM bằng cách sử dụng các thông số ở giai
đoạn 4 thì các hệ số DCT toàn khung hình đã được sửa đổi và được phân tách thành
khối 8×8 pixel các hệ số DCT. Trong giai đoạn biến đổi DCT ngược chính là cần phải
tính toán các khối hệ số DCT nghịch đảo.

4. Mã hóa video
Sau khi đã tính toán các khối hệ số DCT nghịch đảo, người giấu tin sẽ tiến hành
mã hóa video lại sử dụng VLC và giải lượng tử hóa như đã nói ở quá trình giải nén
một phần video để tạo các video chứa thông tin mật. Lưu ý rằng: Quá trình VLC và
giải lượng tử ở phía bộ giải mã được thực hiện ngược lại so với các bước biến đổi ở
quá trình giải nén video.

22
TÀI LIỆU THAM KHẢO

Chợ, Đ. X. (2018). BÀI GIẢNG CÁC KỸ THUẬT GIẤU TIN. Hà Nội: HỌC VIỆN
CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG.

Phadikar, A. (2012, November 27). Multibit quantization index modulation: A high-


rate robust data-hiding method. Journal of King Saud University - Computer
and Information Sciences, pp. 163-171.

Verma, D. A. (n.d.). Discrete Cosine Transform (DCT) of Images and Image


Compression (Examples with MATLAB codes). Retrieved from
https://www.youtube.com/watch?v=5qfUprgdTdI

Wikipedia. (n.d.). Variable-length code. Retrieved from


https://en.wikipedia.org/wiki/Variable-length_code

23

You might also like