Định dạng tập tin hình ảnh

Định dạng tập tin hình ảnh là phương tiện chuẩn hóa để tổ chức và lưu trữ hình ảnh kỹ thuật số. Định dạng tập tin hình ảnh có thể lưu trữ dữ liệu ở định dạng không nén, định dạng nén (có thể không mất dữ liệu hoặc mất dữ liệu) hoặc định dạng vectơ. Các tập tin hình ảnh bao gồm dữ liệu kỹ thuật số ở một trong các định dạng này để dữ liệu có thể được phân loại để sử dụng trên màn hình máy tính hoặc máy in. Rasterization chuyển đổi dữ liệu hình ảnh thành một lưới pixel. Mỗi pixel có một số bit để chỉ định màu của nó (và ở một số định dạng, độ trong suốt của nó). Việc chỉnh sửa tập tin hình ảnh cho một thiết bị cụ thể sẽ tính đến số bit trên mỗi pixel (độ sâu màu) mà thiết bị đó được thiết kế để xử lý.

== Kích thước tập tin hình ảnh ==
Kích thước của tập tin hình ảnh raster tỷ lệ thuận với số lượng pixel trong hình ảnh và độ sâu màu (bit trên pixel). Tuy nhiên, hình ảnh có thể được nén theo nhiều cách khác nhau. Một thuật toán nén lưu trữ một biểu diễn chính xác hoặc một hình ảnh gần đúng với một số lượng byte nhỏ hơn có thể được mở rộng trở lại dạng không nén của nó bằng một thuật toán giải nén tương ứng. Hình ảnh có cùng số pixel và độ sâu màu có thể có kích thước tập tin nén rất khác nhau. Xem xét chính xác cùng một độ nén, số lượng pixel và độ sâu màu cho hai hình ảnh, độ phức tạp đồ họa khác nhau của các hình ảnh gốc cũng có thể dẫn đến kích thước tập tin sau khi nén rất khác nhau do bản chất của thuật toán nén. Với một số định dạng nén, hình ảnh ít phức tạp hơn có thể dẫn đến kích thước tập tin nén nhỏ hơn. Đặc điểm này đôi khi dẫn đến kích thước tập tin nhỏ hơn đối với một số định dạng không mất dữ liệu so với định dạng mất dữ liệu. Ví dụ: hình ảnh đơn giản về mặt đồ họa (tức là hình ảnh có các vùng liên tục lớn như nghệ thuật đường kẻ hoặc chuỗi hoạt hình) có thể được nén thành định dạng GIF hoặc PNG và dẫn đến kích thước tập tin nhỏ hơn định dạng JPEG vốn bị mất dữ liệu.

Ví dụ: một  hình ảnh 640×480 pixel với 24 bit màu sẽ có kích cỡ gần một megabyte:

64048024 = 7,372,800 bits = 921,600 bytes = 900 KB

Với hình ảnh vectơ, kích thước tập tin chỉ tăng khi thêm nhiều vectơ.

== Nén tập tin hình ảnh ==
Có hai loại thuật toán nén tập tin hình ảnh : không mất dữ liệu và mất dữ liệu.

Các thuật toán nén không mất dữ liệu làm giảm kích thước tập tin trong khi vẫn giữ được bản sao hoàn hảo của hình ảnh không nén ban đầu. Nén không mất dữ liệu nói chung, nhưng không phải lúc nào cũng dẫn đến các tập tin lớn hơn so với nén có mất dữ liệu. Nén không mất dữ liệu nên được sử dụng để tránh tích lũy các giai đoạn nén lại khi chỉnh sửa hình ảnh.

Các thuật toán nén mất dữ liệu lưu giữ hình ảnh không nén ban đầu có vẻ là một bản sao hoàn hảo, nhưng không phải là một bản sao hoàn hảo. Thường thì nén mất dữ liệu có thể đạt được kích thước tập tin nhỏ hơn so với nén không mất dữ liệu. Hầu hết các thuật toán nén mất dữ liệu cho phép nén biến đổi chất lượng hình ảnh theo kích thước tập tin.

== Các định dạng tập tin đồ họa chính ==
Nếu bao gồm các loại định dạng độc quyền, có hàng trăm loại tập tin hình ảnh. Các định dạng PNG, JPEG và GIF thường được sử dụng để hiển thị hình ảnh trên Internet. Một số định dạng đồ họa này được liệt kê và mô tả ngắn gọn bên dưới, được tách thành hai họ đồ họa chính: raster và vector.

Ngoài các định dạng hình ảnh thẳng, các định dạng Metafile là các định dạng di động có thể bao gồm cả thông tin raster và vector. Ví dụ là các định dạng độc lập với ứng dụng như WMF và EMF. Định dạng metafile là một định dạng trung gian. Hầu hết các ứng dụng mở tập tin siêu dữ liệu và sau đó lưu chúng ở định dạng gốc của riêng chúng. Ngôn ngữ mô tả trang đề cập đến các định dạng được sử dụng để mô tả bố cục của một trang in có chứa văn bản, đối tượng và hình ảnh. Ví dụ như PostScript, PDF và PCL

=== Định dạng raster ===
==== JPEG/JFIF ====
JPEG (Joint Photographic Experts Group) là một phương pháp nén mất dữ liệu; Ảnh nén JPEG thường được lưu trữ ở định dạng tập tin JFIF (JPEG File Interchange Format). Phần mở rộng tên tập tin JPEG / JFIF là JPG hoặc JPEG. Gần như mọi máy ảnh kỹ thuật số đều có thể lưu ảnh ở định dạng JPEG / JFIF, hỗ trợ hình ảnh thang độ xám 8 bit và hình ảnh màu 24 bit (tám bit mỗi màu cho các màu đỏ, xanh lá cây và xanh lam). JPEG áp dụng tính năng nén mất dữ liệu cho hình ảnh, điều này có thể làm giảm đáng kể kích thước tập tin. Các ứng dụng có thể xác định mức độ nén để áp dụng và số lượng nén ảnh hưởng đến chất lượng hình ảnh của kết quả. Khi không quá lớn, việc nén không ảnh hưởng đáng kể hoặc làm giảm chất lượng của hình ảnh, nhưng các tập tin JPEG bị suy giảm nhiều thế hệ khi được chỉnh sửa và lưu nhiều lần. (JPEG cũng cung cấp khả năng lưu trữ hình ảnh không mất dữ liệu, nhưng phiên bản không mất dữ liệu không được hỗ trợ rộng rãi.)

==== JPEG 2000 ====
JPEG 2000 là một tiêu chuẩn nén cho phép cả lưu trữ không mất dữ liệu và mất mát. Các phương pháp nén được sử dụng khác với các phương pháp trong JFIF / JPEG tiêu chuẩn; chúng cải thiện chất lượng và tỷ lệ nén, nhưng cũng đòi hỏi nhiều sức mạnh tính toán hơn để xử lý. JPEG 2000 cũng bổ sung các tính năng còn thiếu trong JPEG. Nó gần như không phổ biến như JPEG, nhưng nó hiện đang được sử dụng trong biên tập và phân phối phim chuyên nghiệp (ví dụ, một số rạp chiếu phim kỹ thuật số sử dụng JPEG 2000 cho từng khung phim riêng lẻ).

==== Exif ====
Định dạng Exif (Exchangeable image file format) là một tiêu chuẩn tập tin tương tự như định dạng JFIF với phần mở rộng TIFF; nó được tích hợp trong phần mềm ghi JPEG được sử dụng trong hầu hết các máy ảnh. Mục đích của nó là ghi lại và chuẩn hóa việc trao đổi hình ảnh với siêu dữ liệu hình ảnh giữa máy ảnh kỹ thuật số và phần mềm chỉnh sửa và xem ảnh. Siêu dữ liệu được ghi lại cho từng hình ảnh và bao gồm những thứ như cài đặt máy ảnh, ngày giờ, tốc độ màn trập, độ phơi sáng, kích thước hình ảnh, độ nén, tên máy ảnh, thông tin màu sắc. Khi hình ảnh được xem hoặc chỉnh sửa bằng phần mềm chỉnh sửa hình ảnh, tất cả thông tin hình ảnh này có thể được hiển thị.

Siêu dữ liệu Exif thực tế như vậy có thể được mang trong các định dạng máy chủ lưu trữ khác nhau, ví dụ: TIFF, JFIF (JPEG) hoặc PNG. IFF-META là một ví dụ khác.

==== TIFF ====
Định dạng TIFF (Tagged Image File Format) là một định dạng linh hoạt thường sử dụng phần mở rộng tên tập tin TIFF hoặc TIF. Cấu trúc được gắn thẻ được thiết kế để có thể dễ dàng mở rộng và nhiều nhà cung cấp đã giới thiệu các thẻ có mục đích đặc biệt độc quyền - với kết quả là không một trình đọc nào xử lý mọi lợi thế của tập tin TIFF. TIFF có thể ở dạng mất dữ liệu hoặc không mất dữ liệu, tùy thuộc vào kỹ thuật được chọn để lưu trữ dữ liệu pixel. Một số cung cấp khả năng nén không mất dữ liệu tương đối tốt cho hình ảnh hai cấp độ (đen trắng). Một số máy ảnh kỹ thuật số có thể lưu ảnh ở định dạng TIFF, sử dụng thuật toán nén LZW để lưu trữ không mất dữ liệu. Định dạng hình ảnh TIFF không được hỗ trợ rộng rãi bởi các trình duyệt web. TIFF vẫn được chấp nhận rộng rãi như một tiêu chuẩn tập tin ảnh trong kinh doanh in ấn. TIFF có thể xử lý không gian màu dành riêng cho thiết bị, chẳng hạn như CMYK được xác định bởi một bộ mực in cụ thể. Gói phần mềm OCR (Nhận dạng ký tự quang học) thường tạo ra một số dạng hình ảnh TIFF (thường là đơn sắc) cho các trang văn bản được quét.

==== GIF ====
GIF (Graphics Interchange Format) được sử dụng bình thường giới hạn trong bảng màu 8 bit hoặc 256 màu (trong khi độ sâu màu 24 bit là có thể về mặt kỹ thuật). GIF thích hợp nhất để lưu trữ đồ họa có ít màu, chẳng hạn như sơ đồ, hình dạng, biểu trưng và hình ảnh theo phong cách hoạt hình đơn giản, vì nó sử dụng tính năng nén không mất dữ liệu LZW, hiệu quả hơn khi các khu vực rộng lớn có một màu duy nhất và ít hiệu quả hơn đối với ảnh hoặc hình ảnh được pha trộn. Do tính đơn giản và lâu đời của GIF, nó đã đạt được sự hỗ trợ phần mềm gần như phổ biến. Do khả năng hoạt hình của nó, GIF vẫn được sử dụng rộng rãi để cung cấp các hiệu ứng hoạt hình hình ảnh, mặc dù tỷ lệ nén thấp so với các định dạng video hiện đại.

==== BMP ====
Định dạng tập tin BMP (bitmap Windows) xử lý các tập tin đồ họa trong Hệ điều hành Microsoft Windows. Thông thường, các tập tin BMP không được nén, do đó lớn và không mất dữ liệu; lợi thế của chúng là cấu trúc đơn giản và được chấp nhận rộng rãi trong các chương trình Windows.

==== PNG ====
Định dạng tập tin PNG (Portable Network Graphics) được tạo ra như một giải pháp thay thế mã nguồn mở miễn phí cho GIF. Định dạng tập tin PNG hỗ trợ hình ảnh bảng màu tám bit (với độ trong suốt tùy chọn cho tất cả các màu bảng) và màu truecolor 24 bit (16 triệu màu) hoặc truecolor 48 bit có và không có kênh alpha - trong khi GIF chỉ hỗ trợ 256 màu và một màu trong suốt.

So với JPEG, PNG vượt trội hơn khi hình ảnh có các vùng màu lớn và đồng nhất. Ngay cả đối với ảnh - nơi JPEG thường là lựa chọn để phân phối cuối cùng vì kỹ thuật nén của nó thường mang lại kích thước tập tin nhỏ hơn - PNG vẫn rất phù hợp để lưu trữ hình ảnh trong quá trình chỉnh sửa vì tính năng nén không mất dữ liệu của nó.

PNG cung cấp sự thay thế miễn phí bằng sáng chế cho GIF (mặc dù bản thân GIF hiện không có bằng sáng chế) và cũng có thể thay thế nhiều cách sử dụng phổ biến của TIFF. Hình ảnh màu được lập chỉ mục, thang độ xám và màu sắc được hỗ trợ, cùng với một kênh alpha tùy chọn. Việc xen kẽ Adam7 cho phép xem trước sớm, ngay cả khi chỉ truyền một phần trăm nhỏ dữ liệu hình ảnh. PNG có thể lưu trữ dữ liệu gamma và sắc độ để cải thiện khả năng khớp màu trên các nền tảng không đồng nhất.

PNG được thiết kế để hoạt động tốt trong các ứng dụng xem trực tuyến như trình duyệt web và có thể được phát trực tuyến đầy đủ với tùy chọn hiển thị liên tục. PNG rất mạnh mẽ, cung cấp cả tính năng kiểm tra tính toàn vẹn của tập tin và phát hiện đơn giản các lỗi truyền tải phổ biến.

Các định dạng hoạt hình có nguồn gốc từ PNG là MNG và APNG, tương thích ngược với PNG và được hầu hết các trình duyệt hỗ trợ.

==== WebP ====
WebP là một định dạng hình ảnh mở được phát hành vào năm 2010, sử dụng cả nén không mất dữ liệu và mất dữ liệu. Nó được Google thiết kế để giảm kích thước tập tin hình ảnh nhằm tăng tốc độ tải trang web: mục đích chính của nó là thay thế JPEG làm định dạng chính cho ảnh trên web. WebP dựa trên mã hóa trong khung của VP8 và sử dụng một vùng chứa dựa trên RIFF.

Vào năm 2011, Google đã thêm "Định dạng tập tin mở rộng" cho phép hỗ trợ WebP cho hoạt hình, hồ sơ ICC, siêu dữ liệu XMP và Exif và xếp lớp.

Hỗ trợ cho hoạt hình cho phép chuyển đổi ảnh GIF động cũ sang ảnh WebP động.

Vùng chứa WebP (tức là vùng chứa RIFF cho WebP) cho phép hỗ trợ tính năng trên và trên trường hợp sử dụng cơ bản của WebP (tức là tập tin chứa một hình ảnh duy nhất được mã hóa dưới dạng khung khóa VP8). Vùng chứa WebP cung cấp hỗ trợ bổ sung cho:

- Nén không mất dữ liệu - Một hình ảnh có thể được nén không mất dữ liệu bằng cách sử dụng Định dạng WebP Lossless.
- Siêu dữ liệu - Một hình ảnh có thể có siêu dữ liệu được lưu trữ ở định dạng EXIF hoặc XMP.
- Độ trong suốt - Hình ảnh có thể có độ trong suốt, tức là kênh alpha.
- Hồ sơ màu - Một hình ảnh có thể có hồ sơ ICC được nhúng như được mô tả bởi Hiệp hội màu quốc tế.
- Hoạt hình - Một hình ảnh có thể có nhiều khung hình với các khoảng tạm dừng giữa chúng, làm cho nó trở thành một hình ảnh động.