Dữ liệu ảnh bitmap

Một phần của tài liệu Tìm hiểu ảnh JPEG và thuật toán giấu tin trong ảnh JPEG (Trang 30 - 31)

Nhóm byte này lưu từng pixel của ảnh. Mỗi pixel được lưu ngược lại với chiều quét của raster, nghĩa là bắt đầu từgóc trái dưới, quét từ trái sang phải lần lượt từng dòng từdưới lên trên của ảnh bitmap. Đối với ảnh bitmap không nén của Windows cũng có thểlưu theo chiều ngược lại (hàng đầu tiên đến hàng cuối cùng) nếu như giá trị

chiều cao trong phần header được chọn là số nguyên âm.

Nguyên bản DIB thì chỉ có 4 giá trịđộsâu màu là được cho phép là 1, 4, 8 và 24.

Nhưng trong hầu hết các trường hợp thì mỗi pixel được biểu diễn bằng 32 bit (4 byte). Tổng số byte trong một hàng sẽlà kích thước ảnh / chiều cao ảnh tính bằng pixel. Vì thế ta có nhiều cách đểlưu dữ liệu ảnh khác nhau tùy vào độ sâu màu và sự nén dữ

liệu.

v 1 bit (2 màu, thường là trắng và đen): Mỗi pixel lưu bởi một bit và pixel đầu

tiên lưu ở bit quan trọng nhất của byte đầu tiên. Bít có giá trị0 tương ứng với chỉ số màu đầu tiên trong bảng màu, bit có giá trị1 tương ứng với chỉ số

màu cuối cùng (2) trong bản màu.

v 4 bit (16 màu): 2 pixel lưu trong 1 byte, pixel bên trái sẽlưu ở nibble bên phải (more significant nibble). Mỗi pixel chỉđến một màu trong bảng 16 màu.

v 8 bit (256 màu): 1 pixel lưu bởi 1 byte. Mỗi byte chỉđến một giá trị màu trong bảng 256 màu.

v RGB (24 bit): mỗi pixel lưu theo dạng BGR (xanh lam, xanh lục và đỏ).

Byte đệm (padding byte) sẽ được chèn vào đểđảm bảo một hàng dữ liệu luôn có

độ dài là một bội của 4. Ví dụnhư: ảnh bitmap 24 bit có chiều rộng (w) là 1 thì sẽ có 3 byte trên một hàng, vì thế sẽ chèn 1 byte nữa vào để là bội của 4; tương tựảnh w = 2

→ chèn 2, w = 3 → chèn 3, w = 4 → không chèn thêm.

Một phần của tài liệu Tìm hiểu ảnh JPEG và thuật toán giấu tin trong ảnh JPEG (Trang 30 - 31)