Формат файла обмена
Эта статья нуждается в дополнительных цитатах для проверки . ( сентябрь 2020 г. ) |
Тип интернет-СМИ | приложение/x-iff |
---|---|
Разработано | Электронное искусство , Коммодор |
Первоначальный выпуск | 1985 год |
Тип формата | Формат цифрового контейнера |
Interchange File Format ( IFF ) — это универсальный цифровой формат файлов-контейнеров, первоначально представленный Electronic Arts (в сотрудничестве с Commodore ) в 1985 году для облегчения передачи данных между программным обеспечением, созданным разными компаниями.
Файлы IFF не имеют стандартного расширения имени файла . Во многих системах, генерирующих файлы IFF, расширения файлов не важны, поскольку операционная система хранит формата файла метаданные отдельно от имени файла . .iff
Расширение имени файла обычно используется для ILBM формата файла изображения , который использует формат контейнера IFF.
Формат файла обмена ресурсами — это формат, разработанный Microsoft и IBM в 1991 году и основанный на IFF, за исключением того, что порядок байтов был изменен на прямой с прямым порядком байтов, чтобы соответствовать x86 архитектуре микропроцессора . Apple разработанный Формат файла аудиообмена (AIFF) — это с прямым порядком байтов, формат аудиофайлов на базе IFF. Формат файла изображения TIFF не связан с IFF.
Структура [ править ]
Файл IFF состоит из фрагментов . Каждый фрагмент начинается с того, что в спецификации называется «идентификатором типа» (то, что в Macintosh называется OSType , а разработчики Windows могут называть FourCC ). За ним следует 32-битное целое число со знаком (все целые числа в структуре файла IFF имеют обратный порядок байтов ), определяющее размер следующих данных (содержимого фрагмента) в байтах. [1] Поскольку спецификация включает явные длины для каждого фрагмента, синтаксический анализатор может пропустить фрагменты, которые он либо не может, либо не хочет обрабатывать.
Эта структура тесно связана с представлением тип-длина-значение (TLV).
Существуют предопределенные групповые фрагменты с идентификаторами типов. FORM
, LIST
и CAT
. [Примечание 1] А FORM
chunk похож на структуру записи, содержащую идентификатор типа (указывающий тип записи), за которым следуют вложенные фрагменты, определяющие поля записи. А LIST
Факторинговая структура, содержащая ряд PROP
(свойства) плюс фрагменты вложенных групп, к которым применяются эти свойства. А CAT
представляет собой просто набор вложенных фрагментов без особой семантики. Групповые фрагменты могут содержать другие групповые фрагменты, в зависимости от потребностей приложения. Групповые фрагменты, как и их более простые аналоги, содержат элемент длины. Таким образом, пропуск группы можно выполнить с помощью простой операции относительного поиска .
Фрагменты должны начинаться с четных смещений файлов, как и подобает истокам IFF на процессоре Motorola 68000 , который не мог адресовать количества, превышающие байт, по нечетным адресам. Таким образом, фрагменты нечетной длины будут «дополняться» до четной границы байта путем добавления так называемого «заполняющего байта» после их обычного конца.
Структура верхнего уровня файла IFF состоит ровно из одного группового фрагмента: FORM
, LIST
или CAT
, где FORM
на сегодняшний день является самым распространенным.
Каждый тип фрагмента обычно имеет различную внутреннюю структуру, которая может представлять собой числовые данные, текст или необработанные данные. Также возможно включать другие файлы IFF, как если бы они были частями (обратите внимание, что они имеют одинаковую структуру: четыре буквы, за которыми следует длина), и это используется в некоторых форматах. Существуют стандартные фрагменты, которые могут присутствовать в любом файле IFF, например: AUTH
(содержащий текст с информацией об авторе файла), ANNO
(содержащий текст с аннотацией, обычно название программы, создавшей файл), NAME
(содержащий текст с названием произведения в файле), VERS
(содержащий версию файла), (c)
(содержащий текст с информацией об авторских правах). Существуют также фрагменты, которые являются общими для многих форматов, например: CMAP
, который содержит цветовую палитру в файлах ILBM , ANIM и DR2D (изображения, анимация и векторные изображения). Существуют фрагменты, имеющие общее имя, но содержащие разные данные, например BODY
, который может хранить изображение в файле ILBM , а звук — в файле 8SVX . И, наконец, есть фрагменты, уникальные для своего типа файла. Некоторые программы, создающие файлы IFF, добавляют к ним фрагменты своих внутренних данных; эти же файлы впоследствии могут быть прочитаны другими программами без каких-либо помех (поскольку их анализаторы могут пропускать неинтересные фрагменты), что является большим преимуществом IFF и подобных форматов.
См. также [ править ]
- AIFF ( с прямым порядком байтов , первоначально разработанная Apple) производная версия IFF, совместимая
- FourCC (подход идентификации фрагментов, используемый многими форматами TLV, включая IFF, в виде подробного магического числа )
- Interleaved Bitmap (ILBM) (очень популярный формат файлов изображений на основе IFF)
- PNG (современный формат графических файлов с фрагментарной структурой, вдохновленный IFF)
- RIFF ( несовместимая с прямым порядком байтов производная от IFF, первоначально разработанная Microsoft)
- TLV (общий формат, примером которого является IFF)
Примечания [ править ]
Ссылки [ править ]
- ^ Редди, Мартин (14 января 1985 г.). « Стандарт 'EA IFF 85' для файлов формата обмена» . martinreddy.net . Проверено 8 апреля 2015 г.
Внешние ссылки [ править ]
- «EA IFF 85»: Стандарт для файлов формата обмена — оригинальная спецификация IFF, написанная Джерри Моррисоном из EA (14 января 1985 г.)
- Стандарты и спецификации: Формат файлов обмена (IFF) — статья на странице IBM DeveloperWorks.
- Страница о форматах файлов Amiga и вариантах IFF.
- Реестр фрагментов IFF
- Стандарт IFF — плюс исходный код и список зарегистрированных фрагментов и FORM в контексте AmigaOS.