Định dạng tệp ảnh bitmap

Một phần của tài liệu Nghiên cứu một số kỹ thuật giấu tin trong môi trường Multimedia (Trang 52)

Ảnh Bitmap được lưu trữ dưới dạng nhị phân, một tệp định dạng bitmap được chia thành các phần cơ bản như: phần tiêu đề file (BITMAP HEADER), thông tin về ảnh (BITMAP INFOR), bảng màu (PALLETE Table) và vùng dữ liệu ảnh (DATA). Và thứ tự các phần của tệp ảnh được lưu trữ tuần tự trong bộ nhớ như trong hình Hình 3.1

.BITMAP HEADER BITMAP INFOR PALLETE Table

DATA

Hình 3.1 Minh hoạ cấu trúc tệp ảnh bitmap

Ý nghĩa các phần trong tệp ảnh bitmap

Bitmap Header: mô tả thông tin chung về File định dạng bitmap, độ dài của phần này được cố định với mọi file ảnh bitmap

Bitmap Infor: mô tả thông tin về ảnh được lưu trữ, độ dài của phần này cũng cố định.

Pallete Table: chính là bảng màu của ảnh bitmap, độ dài của phần này có thể bằng không (không có bảng màu) đối với ảnh đen trắng và ảnh màu có số lượng màu lớn hơn 256 màu.

Data: Thông tin của từng điểm ảnh, độ dài của phần này phụ thuộc kích thước ảnh. Phần Data lưu trữ ảnh theo hướng từ dưới lên trên và từ trái qua phải.

Kích thước và giá trị các trường trong tệp ảnh bitmap

Bitmap Header

Phần bitmap header có độ dài cố định là: 14 byte, phần này dùng để mô tả thông tin chung về file như: Kiểu file, độ dài của tệp và một số thông tin liên quan đến tệp ảnh.

Ý nghĩa của từng trường được mô tả trong bảng 3.1

Offset (byte) Giá trị Ý nghĩa

1 „B‟ Định danh kiểu file để các

chương trình nhận dạng

2 „M‟

3 -> 6 Unsigned long Kích thước file

7 -> 10 Zero Reserved

11 -> 14 Unsigned long Địa chỉ phần dữ liệu ảnh

Bảng 3.1 Ý nghĩa từng trường trong vùng Bitmap Header Trong phần Bitmap Header có mô tả thông tin về độ dài của file, thông tin này thực sự cần thiết đối với mọi chương trình. Nhưng qua quá trình thực

nghiệm đối với một số file thì thông tin này lại không chính xác, và trong luận văn đưa ra cách tính kích thước file thông qua công thức:

FileSize = Sizeof(Bitmap Header) + Sizeof(Bitmap Infor)

+ Sizeof(Pallete) + Sizeof(Data) (3.1) Địa chỉ vị (offset) của vùng dữ liệu có thể được xác định thông qua công thức:

Địa chỉ vùng data = 54 + Sizeof(Pallete Table) (3.2) Đối với ảnh đen trắng và ảnh màu có số lượng màu lớn hơn 256 màu thì giá trị địa chỉ vùng data cố định là 54, vì các loại ảnh này không tổ chức bảng màu cho các điểm ảnh.

Bitmap Infor

Bitmap Infor dùng để mô tả thông tin về ảnh đang được lưu trữ trong file, kích thướcc của phần này cố định là 40 byte.

Ý nghĩa và giá trị của từng trường trong vùng Bitmap Infor được mô tả chi tiết trong Bảng 3.2

Offset (byte)

Giá trị Ý nghĩa

1 -> 4 40 Số lượng byte của cùng Bitmap Infor (adsbygoogle = window.adsbygoogle || []).push({});

5->8 Unsigned long Độ rộng của ảnh tính theo Pixel

9 -> 12 Unsigned long Độ cao của ảnh tính theo Pixel

15 -> 16 Unsigned integer Số bit để biểu diễn một điểm ảnh

17 -> 20 Unsigned long Kiểu nén

21 -> 24 Unsigned long Kích thước của ảnh tính theo Byte

25 -> 28 Unsigned long Độ phân giải của ảnh theo chiều ngang

29 -> 32 Unsigned long Độ phân giải của anh theo chiều ngang

33->36 Unsigned long Số lượng màu trong bảng màu

37 -> 40 Unsigned long Số màu quan trọng

Bảng 3.2 Ý nghĩa và giá trị các trường trong vùng Bitmap Infor

Pallete Table

Bảng màu là tập các màu được sử dụng trong ảnh (ảnh 8 bit màu), mỗi một màu trong bảng màu được gọi là một Entry và được lưu trữ bởi 4 byte, mỗi thành phần màu được lưu trữ một byte còn một byte để dữ trữ (chứa dùng) và thứ tự lưu trữ là B, G, R, Reserved. Như vậy kích thước của bảng màu có thể được tính theo công thức:

Sizeof(Pallete Table) = (Number color) * 4 (3.3)

Data

Vùng dữ liệu ảnh là giá trị của các điểm ảnh, kích thước của vùng dữ liệu ảnh phụ thuộc vào độ rộng, chiều cao và kiểu ảnh. Với ảnh 8 bit màu thì kích thước vùng ảnh có thể được tính theo công thức (3.4), công thức (3.5) dùng để tính tích thươc vùng ảnh

Sizeof(Data) = Width * Height (3.4) Sizeof(Data) = Width * Height * Bit_Number_of_Pixel (3.5) Với ảnh 8 bit màu giá trị của mỗi điểm ảnh trong vùng Data là chỉ số của màu trong bảng màu, chỉ số màu của điểm ảnh là một số nguyên có giá trị từ 0 đến 255 và được lưu trữ trong một byte, do vậy kích thước của vùng này được tính theo công thức (3.4).

Như đã trình bày ở trên, với ảnh có số lượng màu lớn hơn 256 màu thì giá trị trong vùng Data chính là giá trị của các thành phần màu cơ bản, số lượng bit dùng để biểu diễn giá trị cho từng thành phần màu có thể sẽ khác nhau phụ thuộc vào chất lượng ảnh. Đối với ảnh 24 bit màu, mỗi thành phần màu được lưu trữ bởi 8 bit và thứ tự lưu trữ là B, G, R.

Một phần của tài liệu Nghiên cứu một số kỹ thuật giấu tin trong môi trường Multimedia (Trang 52)