Bước tới nội dung

Định dạng chứa (kỹ thuật số)

Bách khoa toàn thư mở Wikipedia

Định dạng chứa, Định dạng Contener, wrapper hay metafileđịnh dạng file cho phép nhúng nhiều luồng dữ liệu vào một file duy nhất, thường cùng với siêu dữ liệu để xác định và mô tả chi tiết hơn các luồng đó.[1] Các ví dụ đáng chú ý về định dạng container bao gồm file lưu trữ (chẳng hạn như định dạng ZIP) và các định dạng được sử dụng để phát lại đa phương tiện (chẳng hạn như Matroska, MP4AVI). Trong số các định dạng container đa nền tảng sớm nhất là Distinguished Encoding Rules và Interchange File Format.

Thiết kế

[sửa | sửa mã nguồn]
Bố cục của các định dạng chứa phổ biến: AVI, MatroskaPDF

Mặc dù các container có thể xác định cách dữ liệu hoặc siêu dữ liệu được mã hóa, nhưng chúng không thực sự cung cấp hướng dẫn về cách giải mã dữ liệu đó. Một chương trình có thể mở một container cũng phải sử dụng một codec phù hợp để giải mã nội dung của nó. Nếu chương trình không có thuật toán cần thiết, nó không thể sử dụng dữ liệu được chứa. Trong những trường hợp này, các chương trình thường phát ra thông báo lỗi phàn nàn về việc thiếu codec, mà người dùng có thể có được.

Định dạng container có thể được tạo để bao bọc bất kỳ loại dữ liệu nào. Mặc dù có một số ví dụ về các định dạng tệp như vậy (ví dụ: tệp DLL của Microsoft Windows), nhưng hầu hết các định dạng container đều chuyên biệt cho các yêu cầu dữ liệu cụ thể. Ví dụ: vì luồng âm thanh và video có thể được mã hóa và giải mã bằng nhiều thuật toán khác nhau, nên định dạng container có thể được sử dụng để cung cấp giao diện của một định dạng file duy nhất cho người dùng phần mềm phát lại đa phương tiện.

Cân nhắc

[sửa | sửa mã nguồn]

Sự khác biệt giữa các định dạng chứa khác nhau phát sinh từ năm vấn đề chính:

  1. Mức độ phổ biến; mức độ hỗ trợ rộng rãi của một chứa.
  2. Chi phí chung. Đây là sự khác biệt về kích thước tệp giữa hai tệp có cùng nội dung trong một chứa khác nhau.
  3. Hỗ trợ chức năng codec nâng cao. Các định dạng cũ hơn như AVI không hỗ trợ các tính năng codec mới như B-frame, âm thanh VBR hoặc video VFR gốc. Định dạng có thể được "hack" để thêm hỗ trợ, nhưng điều này tạo ra các vấn đề về khả năng tương thích.
  4. Hỗ trợ nội dung nâng cao, chẳng hạn như chương, phụ đề, thẻ meta, dữ liệu người dùng.
  5. Hỗ trợ phương tiện truyền phát trực tuyến.

Định dạng mã hóa đơn

[sửa | sửa mã nguồn]

Ngoài các định dạng chứa thuần túy, chỉ xác định wrapper nhưng không phải mã hóa, một số định dạng tệp xác định cả lớp lưu trữ và mã hóa, như một phần của thiết kế mô-đun và khả năng tương thích hướng tới.

Ví dụ bao gồm JPEG File Interchange Format (JFIF), để chứa dữ liệu định dạng JPEG, và Portable Network Graphics (PNG).

Về nguyên tắc, mã hóa có thể được thay đổi trong khi lớp lưu trữ vẫn được giữ nguyên; ví dụ, Multiple-image Network Graphics (MNG) sử dụng định dạng chứa PNG nhưng cung cấp hoạt ảnh, trong khi JPEG Network Graphics (JNG) đặt dữ liệu được mã hóa JPEG vào một container PNG; tuy nhiên trong cả hai trường hợp, các định dạng khác nhau có các số ma thuật khác nhau - định dạng xác định mã hóa, mặc dù MNG có thể chứa cả hình ảnh được mã hóa PNG và hình ảnh được mã hóa JPEG.

Định dạng chứa đa phương tiện

[sửa | sửa mã nguồn]

The container file is used to identify and interleave different data types. Simpler container formats can contain different types of audio formats, while more advanced container formats can support multiple audio and video streams, subtitles, chapter-information, and meta-data (tags) — along with the synchronization information needed to play back the various streams together. In most cases, the file header, most of the metadata and the synchro chunks are specified by the container format. For example, container formats exist for optimized, low-quality, internet video streaming which differs from high-quality Blu-ray streaming requirements.

Container format parts have various names: "chunks" as in RIFF and PNG, "atoms" in QuickTime/MP4, "packets" in MPEG-TS (from the communications term), and "segments" in JPEG. The main content of a chunk is called the "data" or "payload". Most container formats have chunks in sequence, each with a header, while TIFF instead stores offsets. Modular chunks make it easy to recover other chunks in case of file corruption or dropped frames or bit slip, while offsets result in framing errors in cases of bit slip.

Some containers are exclusive to audio:

Other containers are exclusive to still images:

Other flexible containers can hold many types of audio and video, as well as other media. The most popular multi-media containers are:[2][3]

There are many other container formats, such as NUT, MXF, GXF, ratDVD, SVI, VOB and DivX Media Format

Chú thích

[sửa | sửa mã nguồn]
  1. ^ Ho, Anthony T. S.; Li, Shujun (ngày 20 tháng 5 năm 2016). Handbook of Digital Forensics of Multimedia Data and Devices, Enhanced E-Book. John Wiley & Sons. tr. 146–(?). ISBN 9781118757079. OCLC 953319457.
  2. ^ "What Are Container File Formats (Media Containers)?". Cloudinary. ngày 24 tháng 1 năm 2024. Truy cập ngày 22 tháng 8 năm 2024.
  3. ^ Trattnig, Armin (ngày 14 tháng 6 năm 2022). "The Definitive Guide to Container File Formats". Bitmovin. Truy cập ngày 22 tháng 8 năm 2024.

Liên kết ngoài

[sửa | sửa mã nguồn]