CHƯƠNG I :
TỔNG QUAN VỀ KỸ THUẬT GIẤU TIN TRONG ĐA
PHƯƠNG TIỆN
Đa phương tiện (Multimedia) là nhiều hệ thống truyền thông, các dữ liệu
hay các thông tin đa phương tiện gồm: text (văn bản), graphic (hình họa),
animation (hoạt ảnh), Image(ảnh chụp), video, audio.
1.1. Giấu tin trong dữ liệu đa phương tiện:
Giấu tin như thế nào?
Cùng với sự phát triển của Internet và các phương tiện multimedia, nhiều
vấn đề như: ăn cắp bản quyền, xuyên tạc thông tin, truy cập thông tin trái phép…
cũng tăng theo, đòi hỏi phải tìm ra các giải pháp mới, hữu hiệu cho an toàn và bảo
mật thông tin. Một trong các giải pháp nhiều triển vọng là giấu tin(Data Hiding),
đã và đang được nghiên cứu và ứng dụng.
Giấu thông tin là kỹ thuật nhúng(embedding) một lượng thông tin số nào
đó vào trong một đối tượng dữ liệu số khác. Sự khác biệt giữa mã hóa thông tin và
giấu thông tin là mã hóa làm cho các thông tin hiện rõ là nó có được mã hóa hay
không, còn với giấu thông tin thì sẽ khó phát hiện ra được rằng có thông tin giấu
bên trong.
Yêu cầu cơ bản của việc giấu tin là đảm bảo tính chất ẩn của thông tin
được giấu đồng thời không làm ảnh hưởng đến chất lượng của dữ liệu gốc.
Hiện tại thì giấu tin chia làm hai hướng lớn, đó là watermark(thủyvân), và
steganography. Phương pháp thủy vân quan tâm đến ứng dụng giấu các mẩu tin
ngắn nhưng đòi hỏi độ bền vững lớn của thông tin cần giấu trước các biến đổi
thông th ường của tệp dữ liệu môi trường. Trong khi đó, phương pháp
Steganography quan tâm tới ứng dụng che giấu các bản tin đòi hỏi độ bí mật và
dung lượng càng lớn càng tốt.
Mục đích của giấu tin có hai khía cạnh chính:
Trang 1
Bảo mật cho dữ liệu đem giấu(embedded data), chẳng hạn như giấu thông
tin mật trong một đối tượng nào đó sao cho người khác không phát hiện được.
Đảm an toàn bảo mật cho chính đối tượng được dùng để giấu dữ liệu
vào(host data)
Kỹ thuật giấu tin đã được nghiên cứu và áp dụng trong nhiều môi trường
dữ liệu khác nhau như trong dữ liệu đa phương tiện (text, image, audio, video),
trong các sản phẩm phần mềm, và gần đây là trong cơ sở dữ liệu quan hệ, trong đó
thì dữ liệu đa phương tiện chiếm tỉ lệ chủ yếu trong kỹ thuật giấu TIN
1.2. Phương pháp giấu tin
Trong một quá trình phát triển lâu dài, nhiều phương pháp bảo vệ thông tin
đã được đưa ra trong đó giải pháp dùng mật mã học là giải pháp được ứng dụng
rộng rãi nhất. Các hệ mã mật đã được phát triển nhanh chóng và được ứng dụng
rất phổ biến cho đến tận ngày nay. Thông tin ban đầu sẽ được mã hoá thành các
ký hiệu vô nghĩa, sau đó sẽ được lấy lại thông qua việc giải mã nhờ khoá của hệ
mã. Đã có rất nhiều những hệ mã phức tạp được sử dụng như DES, RSA,
NAPSACK...và phương pháp này đã được chứng minh thực tế là rất hiệu quả và
được ứng dụng phổ biến. Nhưng ở đây ta không định nói về các hệ mã mật mà ta
tìm hiểu về một phương pháp đã và đang được nghiên cứu và ứng dụng rất mạnh
mẽ ở nhiều nước trên thế giới đó là phương pháp giấu tin (data hiding). Đây là
phương pháp mới và phức tạp, nó đang được xem như một công nghệ chìa khoá
cho vấn đề bảo vệ bản quyền, nhận thực thông tin và điều khiển truy cập … ứng
dụng trong an toàn và bảo mật thông tin.
Vậy lịch sử của phương pháp giấu tin như thế nào?
Đầu tiên các câu chuyện kể về kĩ thuật giấu thông tin được truyền qua
nhiều thế hệ, ý tưởng về che giấu thông tin đã có từ hàng nghìn năm về trước
nhưng kĩ thuật này được dùng chủ yếu trong quân đội và trong các cơ quan tình
báo. Mãi cho tới vài thập niên gần đây, giấu thông tin mới nhận được sự quan
tâm của các nhà nghiên cứu và các viện công nghệ thông tin với rất nhiều công
trình nghiên cứu. Cuộc cách mạng số hóa thông tin và sự phát triển nhanh chóng
Trang 2
của mạng truyền thông là nguyên nhân chính dẫn đến sự thay đổi này. Những
phiên bản sao chép hoàn hảo, các kĩ thuật thay thế, sửa đổi tinh vi cộng với sự lưu
thông phân phối trên mạng của các dữ liệu đa phương tiện đã sinh ra rất nhiều
những vấn đề nhức nhối về nạn ăn cắp bản quyền, phân phối bất hợp pháp, xuyên
tạc trái phép…đây là lúc công nghệ giấu tin được chú ý và phát triển.
Giấu thông tin là một kĩ thuật nhúng thông tin vào trong một nguồn đa
phương tiện gọi là các phương tiện chứa mà không gây ra sự nhận biết về sự tồn
tại của thông tin giấu. Phương pháp giấu tin là làm cho người ta khó có thể biết
được có thông tin giấu bên trong đó do tính chất ẩn của thông tin được giấu.
1.2.1.Mục đích của giấu tin
Giấu tin có hai mục đích:
- Bảo mật cho những dữ liệu được giấu
- Bảo đảm an toàn (bảo vệ bản quyền) cho chính các đối tượng chứa dữ
liệu giấu trong đó.
Có thể thấy hai mục đích này hoàn toàn trái ngược nhau và dần phát triển
thành hai lĩnh vực với những yêu cầu và tính chất khác nhau.
Hình 1.1: Hai lĩnh vực chính của kỹ thuật giấu thông tin
Kỹ thuật giấu thông tin bí mật (Steganography): với mục đích đảm bảo an
toàn và bảo mật thông tin tập trung vào các kỹ thuật giấu tin để có thể giấu được
nhiều thông tin nhất. Thông tin mật được giấu kỹ trong một đối tượng khác sao
cho người khác không phát hiện được.
Trang 3
Giấu thông tin
Giấu tin bí mật
(Steganography)
Thuỷ vân số
(Watermarking)
Kỹ thuật giấu thông tin theo kiểu đánh giấu (watermarking) để bảo vệ bản
quyền của đối tượng chứa thông tin tập trung đảm bảo một số các yêu cầu như
đảm bảo tính bền vững… đây là ứng dụng cơ bản nhất của kỹ thuật thuỷ vân số.
1.2.2. Mô hình kỹ thuật giấu thông tin cơ bản
Để thực hiện giấu tin cần xây dựng được các thủ tục giấu tin. Các thủ tục
này sẽ thực hiện nhúng thông tin cần giấu vào môi trường giấu tin. Các thủ tục
giấu tin thường được thực hiện với một khóa giống như các hệ mật mã để tăng
tính bảo mật. Sau khi giấu tin ta thu được đối tượng chứa thông tin giấu và có thể
phân phối đối tượng đó trên kênh
thông tin. Để giải mã thông tin cần nhận được đối tượng có chứa thông tin đã
giấu, sử dụng thủ tục giải mã cùng với khóa đã dung trong quá trình giấu để lấy
lại thông tin.
Giấu thông tin vào phương tiện chứa và tách lấy thông tin là hai quá trình trái
ngược nhau và có thể mô tả qua sơ đồ khối của hệ thống như hình 1.2 trong đó:
- Thông tin cần giấu tuỳ theo mục đích của người sử dụng, nó có thể là
thông điệp (với các tin bí mật) hay các logo, hình ảnh bản quyền.
- Phương tiện chứa: các file ảnh, text, audio… là môi trường để nhúng tin
- Bộ nhúng thông tin: là những chương trình thực hiện việc giấu tin
- Đầu ra: là các phương tiện chứa đã có tin giấu trong đó
Trang 4
Thông tin
giấu
Phương tiện
chứa(audio,
ảnh, video)
Phương tiện
chứa đã
được giấu
tin
Khóa giấu tin
Bộ
nhún
g
thôn
g tin
Phân
phối
Hình 1.2: Lược đồ chung cho quá trình giấu tin
Tách thông tin từ các phương tiện chứa diễn ra theo quy trình ngược lại với
đầu ra là các thông tin đã được giấu vào phương tiện chứa. Phương tiện chứa sau
khi tách lấy thông tin có thể được sử dụng, quản lý theo những yêu cầu khác nhau.
Trang 5
Phương tiện
chứa (audio,
ảnh, video)
Phương tiện chứa đã
được giấu tin
Bộ
giải
mã
tin
Thông tin giấu
Kiể
m
địn
h
Khóa giấu
tin
Hình 1.3: Lược đồ chung cho quá trình giải mã
Hình vẽ 1.3 chỉ ra các công việc giải mã thông tin đã giấu. Sau khi nhận
được đối tượng phương tiện chứa có giấu thông tin, quá trình giải mã được thực
hiện thông qua một bộ giải mã tương ứng với bộ nhúng thông tin cùng với khoá
của quá trình nhúng. Kết quả thu được gồm phương tiện chứa gốc và thông tin đã
giấu. Bước tiếp theo thông tin đã giấu sẽ được xử lý kiểm định so sánh với thông
tin ban đầu.
1.2.3.Phân loại các kỹ thuật giấu tin
a. Giấu tin trong ảnh:
Hiện nay giấu thông tin trong ảnh là một bộ phận chiếm tỉ lệ lớn nhất trong
các chưng trình ứng dụng hệ thống giấu tin trong đa phương tiện bởi lượng thông
tin được trao đổi bằng ảnh là rất lớn và hơn nữa giấu thông tin trong ảnh cũng
đóng vai tò hết sức quan trọng trong hầu hết các ứng dụng bảo vệ an toàn thông
tin như: nhận thực thông tin, xác định xuyên tạc thông tin, bảo vệ bản quyền tác
giả, điều khiển truy cập…Chính vì thế mà vấn đề này nhận được sự quan tâm rất
lớn của các cá nhân, tổ chức, trường đại học và nhiều viện nghiên cứu trên thế
giới.
Khi giấu thông tin trong ảnh, thông tin sẽ được giấu cùng với dữ liệu ảnh
Trang 6
nhưng chất lượng ảnh ít thay đổi và gần như khi nhìn binh thường vào ảnh đó
chúng ta không thể phát hiện ra rằng đằng sau ảnh là khối thông tin được ẩn trong
đó.
Ngày nay khi ảnh số được sử dụng rất phổ biến thì giấu thông tin trong ảnh
là một công nghệ đem lại rất nhiều tác dụng quan trọng trên nhiều lĩnh vực trong
đời sống xã hội. Ví dụ như đối với các nước phát triển, chữ kí tay đã được số hóa
và lưu trữ sử dụng như là hồ sơ cá nhân của các dịch vụ ngân hàng và tài chính,
nó được dùng để nhận thực trong các thẻ tín dụng của người tiêu dùng. Phần mềm
WinWord của Microsoft cũng chho phép người dùng lưu trữ chữ lí trong ảnh nhị
phân rồi gắn vào vị trí nào đó trong file văn bản để đảm bảo tính an toàn của
thông tin. Tài liệu sau đó được truyền trực tiếp qua máy fax, qua mạng theo đó
việc nhận thực chữ kí, xác thực thông tin đó trở thành một vấn đề cực kì quan
trọng khi mà việc ăn cắp thông tin hay xuyên tạc thông tin bởi các tin tặc đang trở
thành một vấn nạn đối với bất kì quốc gia nào, tổ chức nào.
Thêm vào đó lại có rất nhiều loại thông tin quan trọng cần được bảo mật
như những thông tin về an ninh, thông tin về bảo hiểm hay các thông tin về tài
chính, các thông tin này được số hóa và lưu trữ trong hệ thống máy tính hay trên
mạng. Chúng rất dễ bị lấy cắp và bị thay đổi bởi các phần mềm chuyên dụng.
Việc nhận thực cũng như phát hiện thông tin xuyên tạc đó trở nên vô cùng
quan trọng, cấp thiết. Và một đặc điểm của giấu thông tin trong ảnh đó là thông
tin được giấu trong ảnh đó là thông tin được giấu trong ảnh một cách vô hình, nó
như là một cách mà truyền thông tin mật cho nhau mà người khác không thể biết
được bởi sau khi giấu thông tin thì chất lượng ảnh gần như không thay đổi đặc
biệt đối với ảnh mầu hay ảnh xám. Gần đây báo chí đã đưa tin vụ
việc ngày 11-9 gây chấn động nước Mĩ và toàn thế giới, chính tên trùm khủng bố
quốc tế Osma BinLaDen đã dùng cách thức giấu thông tin trong ảnh để liên lạc
với đồng bọn, và hắn đã qua mặt được cục tình báo trung ương Mĩ CIA và các cơ
quan an ninh quốc tế.
Chắc chắn sau vụ việc này, thì việc nghiên cứu các vấn đề liên quan đến
giấu thông tin trong ảnh sẽ rất được quan tâm.
Trang 7
b. Giấu thông tin trong audio:
Giấu thông tin trong audio mang những đặc điểm khác so với giấu thông
tin trong các đối tượng đa phương tiện khác. Một trong những yêu cầu cơ bản của
giấu tin là đảm bảo tính chất ẩn của thông tin được giấu đồng thời không làm ảnh
hưởng đến chất lượng của dữ liệu gốc. Khác với kĩ thuật giấu thông tin trong ảnh
phụ thuộc vào hệ thống thị giác thì kĩ thuật giấu thông tin trong audio lại phụ
thuộc vào hệ thống thính giác HAS.
Một vấn đề khó khăn ở đây là hệ thống thính giác của con người nghe
được các tín hiệu ở các giải tần rộng và công suất lớn nên đã gây khó dễ đối với
các phương pháp giấu tin trong audio. Nhưng thật may là HAS lại kém trong việc
phát hiện sự khác biệt các dải tần và công suất, điều này có nghĩa là các âm thanh
to, cao tần có thể che giấu được các âm thanh nhỏ thấp một cách dễ dàng. Các mô
hình phân tích tâm lí đã chỉ ra điểm yếu trên và thông tin này sẽ giúp ích cho việc
chọn các audio thích hợp cho việc giấu tin. Vấn đề khó khăn thứ hai đối với giấu
thông tin trong audio là kênh truyền tin. Kênh truyền hay băng thông chậm sẽ ảnh
hưởng đến chất lượng thông tin sau khi giấu. Ví dụ để nhúng một đoạn java applet
vào một đoạn audio (16 bit, 44.100 Hz) có chiều dài bình thường thì các phương
pháp nói chung cũng cần ít nhất là 20 bit/s. Giấu thông tin trong audio đòi hỏi yêu
cầu rất cao về tính đồng bộ và tính an toàn của thông tin. Các phương pháp giấu
thông tin trong audio đều lợi dụng điểm yếu trong hệ thống thính giác của con
người.
c. Giấu tin trong video:
Cũng như giấu tin trong ảnh hay trong audio giấu tin trong video cũng
được quan tâm và được phát triển mạnh mẽ cho nhiều ứng dụng như đièu khiển
truy cập thông tin, nhận thực thông tin và bảo vệ bản quyền tác giả. Một phương
pháp giấu tin trong viedeo được đưa ra bởi Cox là phương pháp phân bố đều. ý
tưởng cơ bản của phương pháp là phân phối thông tin giấu dàn trải theo tần số của
dữ liệu gốc. Nhiều nhà nghiên cứu đã dùng những hàm cosin riêng và các hệ số
truyền sóng riêng để giấu tin. Trong các thuật toán khởi nguồn thường thi các kĩ
thuật cho phép giấu các ảnh vào trong video nhưng thời gian gần đây các kĩ thuật
Trang 8
cho phép giấu cả âm thanh và hình ảnh trong video. Như phương pháp của
Swanson đã sử dụng phương pháp giấu theo khối, phương pháp này đã giấu được
hai bít vào khối 8*8; hay gần đây nhất là phương pháp của Mukherjee là kĩ thuật
giấu trong audio và video sử dụng cấu trúc lưới đa chiều…Kĩ thuật giấu thông tin
trong video áp dụng cả những đặ điểm về thị giác và thính giác của con người.
d.Giấu thông tin trong văn bản dạng text
Giấu tin trong văn bản dạng text khó thực hiện hơn do đó ít các thông tin
dư thừa, để làm được điều này người ta phải khéo léo khai thác các dư thừa tự
nhiên của ngôn ngữ. Một cách khác là tận dụng các định dạng văn bản (mã hoá
thông tin vào khoảng cách giữa các từ hay các dòng văn bản).
Kỹ thuật giấu tin đang được áp dụng cho nhiều loại đối tượng chứ không
riêng gì dữ liệu đa phương tiện như ảnh, audio, video. Gần đây đã có một số
nghiên cứu giấu tin trong cơ sở dữ liệu quan hệ, các gói IP truyền trên mạng chắc
chắn sau này còn tiếp tục phát triển tiếp cho các môi trường dữ liệu số khác.
1.2.4. Phân loại theo cách thức tác động lên các phương tiện
Phương pháp chèn dữ liệu: Phương pháp này tìm các vị trí trong file dễ bị
bỏ qua và chèn dữ liệu cần giấu vào đó, cách giấu này không làm ảnh hưởng gì tới
sự thể hiện các file dữ liệu ví dụ như được giấu sau các ký tự EOF.
Phương pháp tạo các phương tiện chứa: Từ các thông điệp cần chuyển sẽ
tạo ra các phương tiện chứa để phục vụ cho việc truyền thông tin đó, từ phía
người nhận dựa trên các phương tiện chứa này sẽ tái tạo lại các thông điệp.
1.2.5. Phân loại theo các mục đích sử dụng
- Giấu thông tin bí mật: đây là ứng dụng phổ biến nhất từ trước đến nay, đối
với giấu thông tin bí mật người ta quan tâm chủ yếu tới các mục tiêu:
+ Độ an toàn của giấu tin - khả năng không bị phát hiện của giấu tin.
+ Lượng thông tin tối đa có thể giấu trong một phương tiện chứa cụ thể mà
vẫn có thể đảm bảo an toàn
+ Độ bí mật của thông tin trong trường hợp giấu tin bị phát hiện
Trang 9
- Giấu thông tin bí mật không quan tâm tới nhiều các yêu cầu bền vững của
phương tiện chứa, đơn giản là bởi người ta có thể thực hiện việc gửi và nhận
nhiều lần một phương tiện chứa đã được giấu tin
- Giấu thông tin thuỷ vân: do yêu cầu bảo vệ bản quyền, xác thực… nên giấu tin
thuỷ vân có yêu cầu khác với giấu tin bí mật. Yêu cầu đầu tiên là các dấu hiệu
thuỷ vân đủ bền vững trước các tấn công vô hình hay cố ý gỡ bỏ nó. Thêm vào đó
các dấu hiệu thuỷ vân phải có ảnh hưởng tối thiểu (về mặt cảm nhận) đối với các
phương tiện chứa. Như vậy các thông tin cần giấu càng nhỏ càng tốt.
Tuỳ theo các mục đích khác nhau như bảo vệ bản quyền, chống xuyên tạc
nội dung, nhận thực thông tin,… thuỷ vân cũng có các yêu cầu khác nhau
Các kỹ thuật giấu tin mới được phát triển mạnh trong khỏang mười năm
trở lại đây nên việc phân loại các kỹ thuật còn chưa hoàn toàn thống nhất. Sơ đồ
phân loại do F.Petitcolas đưa ra năm 1999 được nhiều người chấp nhận.
Trang 10
Robust Watermarking
Thuỷ vân bền vững
Fragile Watermarking
Thuỷ vân dễ vỡ
Information hiding
Giấu thông tin
Watermarking
Thuỷ vân số
Visible Watermarking
Thuỷ vân hiển thị
Steganography
Giấu tin mật
Imperceptible Watermarking
Thuỷ vân ẩn
Hình 1.4. Phân loại các kỹ thuật giấu tin.
Theo sơ đồ đây, giấu tin được chia thành hai hướng chính là giấu tin mật
và thủy vân số. Giấu tin mật quan tâm chủ yếu đến lượng tincos thể giấu, còn thủy
vân số lại quan tâm chủ yếu đến tính bền vững của thông tin giấu. trong từng
hướng chính lại chia ra các hướng nhỏ hơn, chẳng hạn với thủy vân số thì có thủy
vân bền vững và thủy vân dễ vỡ. Thủy vân bền vững cần bảo toàn được các thông
tin thủy vân trước các tấn công như dịch chuyển, cắt xén, xoay đối với ảnh.
Ngược lại, thủy vân dễ vỡ cần phải dễ bị phá hủy khi gặp các sự tấn công nói trên.
1.3. Một số ứng dụng đang được triển khai
1.3.1. Bảo vệ bản quyền tác giả (copyright protection):
Đây là ứng dụng cơ bản nhất của kỹ thuật thuỷ vân số (digital
watermarking) - một dạng của phương pháp giấu tin. Một thông tin nào đó mang ý
nghĩa quyền sở hữu tác giả (người ta gọi nó là thuỷ vân - watermark) sẽ được
nhúng vào trong các sản phẩm, thuỷ vân đó chỉ một mình người chủ sở hữu hợp
pháp các sản phẩm đó có và được dùng làm minh chứng cho bản quyền sản
phẩm. Giả sử có một thành phẩm dữ liệu dạng đa phương tiện như ảnh, âm thanh,
video và cần được lưu thông trên mạng. Để bảo vệ các sản phẩm chống lại các
hành vi lấy cắp hoặc làm nhái cần phải có một kỹ thuật để “dán tem bản quyền”
vào sản phẩm này. Việc dán tem hay chính là việc nhúng thuỷ vân cần phải đảm
bảo không để lại một ảnh hưởng lớn nào đến việc cảm nhận sản phẩm. Yêu cầu
kỹ thuật đối với ứng dụng này là thuỷ vân phải tồn tại bền vững cùng với sản
phẩm, muốn bỏ thuỷ vân này mà không được phép của người chủ sở hữu thì chỉ
còn cách là phá huỷ sản phẩm.
1.3.2. Nhận thực thông tin hay phát hiện xuyên tạc thông tin
(authentication and tamper detection):
Trang 11
Một tập các thông tin sẽ được giấu trong phương tiện chứa sau đó được sử
dụng để nhận biết xem dữ liệu trên phương tiện gốc đó có bị thay đổi hay không.
Các thuỷ vân nên được ẩn để tránh được sự tò mò của kẻ thù, hơn nữa việc làm
giả các thuỷ vân hợp lệ hay xuyên tạc thông tin nguồn cũng cần được xem xét.
Trong các ứng dụng thực tế, người ta mong muốn tìm được vị trí bị xuyên tạc
cũng như phân biệt được các thay đổi (ví dụ như phân biệt xem một đối tượng đa
phương tiện chứa thông tin giấu đã bị thay đổi, xuyên tạc nội dung hay là chỉ bị
nén mất dữ liệu). Yêu cầu chung đối với ứng dụng này là khả năng giấu thông tin
cao và thuỷ vân không cần bền vững.
1.3.3. Giấu vân tay hay dán nhãn (fingerprinting and labeling):
Thuỷ vân trong những ứng dụng này đựơc sử dụng để nhận diện người gửi
hay người nhận của một thông tin nào đó. Ví dụ như các vân khác nhau sẽ được
nhúng vào các bản copy khác nhau của thông tin gốc trước khi chuyển cho nhiều
người. Với những ứng dụng này thì yêu cầu là đảm bảo độ an toàn cao cho các
thuỷ vân tránh sự xoá giấu vết trong khi phân phối.
1.3.4. Điều khiển truy cập (copy control):
Các thuỷ vân trong những trường hợp này được sử dụng để điều khiển truy
cập đối với các thông tin. Các thiết bị phát hiện ra thuỷ vân thường được
gắn sẵn vào trong các hệ thống đọc ghi. Ví dụ như hệ thống quản lí sao chép
DVD đã được ứng dụng ở Nhật. Các ứng dụng loại này cũng yêu cầu thuỷ vân
phải được bảo đảm an toàn và cũng sử dụng phương pháp phát hiện thuỷ vân đã
giấu mà không cần thông tin gốc.
Trang 12
CHƯƠNG II:
TÌM HIỂU CÁC PHƯƠNG PHÁP GIẤU TIN TRONG ẢNH
2.1. Các định dạng ảnh thường được sử dụng để giấu tin.
Cấu trúc ảnh nói chung gồm 3 phần chính: Header, dữ liệu, bảng màu. Tuy
nhiên mỗi loại ảnh có những đặc trưng khác nhau, định dạnh một số loại ảnh cơ
bản:
2.1.1. Định dạng ảnh IMG.
Ảnh IMG là ảnh đen trắng. Phần đầu của ảnh IMG có 16 byte chứa các
thông tin cần thiết:
Trang 13
+ 6 byte đầu: dùng để đánh dấu định dạng ảnh IMG. Giá trị của 6 byte này
viết 0x0001 0x0008 0x0001.
+ 2 byte tiếp theo: chứa độ dài mẫu tin. Đó là độ dài của dãy các byte kề
liền nhau mà dãy này sẽ được lặp lại một số lần nào đó. Số lần lặp này sẽ được
lưu trữ trong byte đếm. Nhiều dãy giống nhau được lưu trong một byte. Đó là
cách lưu trữ nén.
+ 4 byte tiếp: mô tả kích cỡ pixel.
+ 2 byte tiếp: số pixel trên một dòng ảnh.
+ 2 byte cuối: số dòng ảnh trong ảnh.
Ảnh IMG được nén theo từng dòng. Mỗi dòng bao gồm các gói (pack).
Các dòng giống nhau cũng được nén thành một gói.
2.1.2. Định dạng ảnh PCX.
Định dạng ảnh PCX là một trong những định dạng ảnh cổ điển nhất. Nó sử
dụng phương pháp mã loạt dài RLE để nén dữ liệu ảnh. Quá trình nén và giải nén
được thực hiện trên từng dòng ảnh. Thực tế, phương pháp giải nén PCX kém hiệu
quả hơn so với kiểu IMG. Tệp PCX gồm 3 phần: đầu tệp (header), dữ liệu ảnh
(image data) và bảng màu mở rộng.
Cấu trúc tệp ảnh dạng PCX
Trang 14
Header 128 bytes
Bảng màu mở rộng
Dữ liệu ảnh nén
Hình 2.1: Cấu trúc ảnh PCX
Header của tệp PCX có kích thước cố định gồm 128 byte và được phân bố
như sau:
+ 1 byte: chỉ ra kiểu định dạng. Nếu là kiểu PCX/PCC nó có giá trị là 0Ah.
+ 1 byte: chỉ ra version sử dụng để nén ảnh, có thể có các giá trị sau:
- 0: version 2.5.
- 2: version 2.8 với bảng màu.
- 3: version 2.8 hay 3.0 không có bảng màu.
- 5: version 3.0 có bảng màu.
+ 1 byte: chỉ ra phương pháp mã hoá. Nếu là 0 thì mã hoá theo phương
pháp BYTE PACKED, nếu không là phương pháp RLE.
+ 1 byte: số bit cho một điểm ảnh plane.
+ 1 word: toạ độ góc trái trên của ảnh. Với kiểu PCX nó có giá trị là (0,0);
còn PCC thì khác (0,0).
+ 1 word: toạ độ góc phải dưới.
+ 1 word: kích thước bề rộng và bề cao của ảnh.
+ 1 word: số điểm ảnh.
+ 1 word: độ phân giải màn hình.
+ 1 word.
+ 48 byte: chia thành 16 nhóm, mỗi nhóm 3 byte. Mỗi nhóm này chứa
thông tin về một thanh ghi màu. Như vậy ta có 16 thanh ghi màu.
+ 1 byte: số bit plane mà ảnh sử dụng. Với ảnh 16 màu, giá trị này là 4, với
ảnh 256 màu (1 pixel/ 8 bit) thì số bit plane lại là 1.
+ 1 byte: số bytes cho một dòng quét ảnh.
+ 1 word: kiểu bảng màu.
+ 58 byte: không dùng.
Trang 15
Tóm lại, định dạng ảnh PCX thường được dùng để lưu trữ ảnh vì thao tác
đơn giản, cho phép nén và giải nén nhanh.
2.1.3. Định dạng ảnh TIFF.
Cấu trúc gồm có 3 phần:
- Phần header IFH (Image File Header) có trong tất cả các tệp TIFF và gồm 8
byte.
+ 1 word: chỉ ra kiểu tạo tệp trên máy tính.
+ 1 word: version.
+ 2 word: giá trị Offset theo byte tính từ đầu file tới cấu trúc IFD.
- Phần thứ hai IFD (Image File Directory): Nó không ở ngay sau IFH mà vị trí
của nó được xác định bởi trường offset trong đầu tệp.
Một IFD gồm:
+ byte: chứa các DE (Directory Entry).
+ 12 byte là các DE xếp liên tiếp. Mỗi DE chiếm 12 byte.
+ 4 byte: chứa Offset trỏ tới IFD tiếp theo.
- Cấu trúc phần dữ liệu thứ 3: Các DE
Các DE có độ dài cố định 12 byte và gồm 4 phần.
+ 2 byte: chỉ ra dấu hiệu mà ảnh đã được xây dựng.
+ 2 byte: kiểu dữ liệu của tham số ảnh.
+ 4 byte trường độ dài.
+ 4 byte đó là Offset tới điểm bắt đầu dữ liệu thực liên quan tới dấu hiệu,
tức là dữ liệu liên quan với DE không phải lưu trữ vật lý cùng với nó nằm ở một
vị trí nào đó trong file. Dữ liệu chứa trong tệp thường được tổ chức thành các
nhóm dòng (cột) quét của dữ liệu ảnh.
2.1.4.Định dang ảnh GIF.
Trang 16
Ảnh GIF (Graphics Interchange Format) Là một định dạng tập tin hình ảnh
bitmap cho các hình ảnh dùng ít hơn 256 màu sắc khác nhau và các hoạt hình
dùng ít hơn 256 màu cho mỗi khung hình. Gif thường dùng cho sơ đồ, hình vẽ,
nút bấm và các hình màu. GIF là định dạng nén dữ liệu đặc biệt hữu ích cho việc
truyền hình ảnh qua đường truyền lưu lượng nhỏ. Đây là một giải pháp tốt cho
hình ảnh trên mạng, cho các hoạt hình nhỏ và ngắn.
GIF sử dụng thuật toán nén LOSS LESS (Không mất dữ liệu), điều đó cho
phép chúng tạo ra kích thước nhỏ mà không bị mất hoặc mờ bất kỳ chi tiết nào
của ảnh dữ liệu
GIF note
GIF header (7 byte)
Globel Palette
Header Image (10 byte)
Palette of Image (nếu có)
Data of Image 1
‘,’ ký tự liên kết
…………………..
‘;’ terminator
Trang 17