Формат контейнера (вычислительный)


Формат контейнера (неофициально иногда называемый оболочкой ) или метафайл — это формат файла, который позволяет встраивать несколько потоков данных в один файл , обычно вместе с метаданными для идентификации и дальнейшей детализации этих потоков. [1] Известные примеры форматов контейнеров включают архивные файлы (такие как формат ZIP ) и форматы, используемые для воспроизведения мультимедиа (такие как Matroska , MP4 и AVI ). Среди первых кроссплатформенных форматов контейнеров были Distinguished Encoding Rules .и формат файла обмена 1985 года .

Хотя контейнеры могут определять, как кодируются данные или метаданные, на самом деле они не предоставляют инструкций о том, как декодировать эти данные. Программа , которая может открыть контейнер, также должна использовать соответствующий кодек для декодирования его содержимого. Если в программе нет требуемого алгоритма, она не может использовать содержащиеся в ней данные. В этих случаях программы обычно выдают сообщение об ошибке, в котором сообщается об отсутствующем кодеке, который пользователи могут приобрести.

Форматы контейнеров могут быть созданы для переноса любых данных. Хотя есть несколько примеров таких форматов файлов (например , DLL -файлы Microsoft Windows ), большинство форматов контейнеров специализированы для конкретных требований к данным. Например, поскольку аудио- и видеопотоки могут быть закодированы и декодированы с помощью множества различных алгоритмов, формат контейнера может использоваться для предоставления пользователям программного обеспечения для воспроизведения мультимедиа представления единого формата файла.

В дополнение к чисто контейнерным форматам, которые определяют только оболочку, но не кодирование, в ряде форматов файлов указывается как уровень хранения, так и кодирование, что является частью модульной конструкции и совместимости с последующими версиями .

Примеры включают формат обмена файлами JPEG (JFIF) для хранения данных JPEG и переносимую сетевую графику (PNG).

В принципе, кодирование можно изменить при сохранении уровня хранения; например, сетевая графика с несколькими изображениями (MNG) использует формат контейнера PNG, но обеспечивает анимацию, в то время как сетевая графика JPEG (JNG) помещает закодированные данные JPEG в контейнер PNG; однако в обоих случаях разные форматы имеют разные магические числа - формат определяет кодировку, хотя MNG может содержать изображения как в формате PNG, так и в формате JPEG.


Примеры форматов контейнеров для информатики