Формат файла обмена ресурсами - Resource Interchange File Format

РИФФ
изначальный выпускАвгуст 1991 г.; 29 лет назад (1991-08)
Тип форматаКонтейнер
Расширен сФормат файла обмена
Расширен доAVI, ANI, PAL, RDIB, RMIDI, RMMP, WAV

В Формат файла обмена ресурсами (РИФФ) - это общий файл формат контейнера для хранения данных в тегах куски.[1] Он в основном используется для хранения мультимедиа такие как звук и видео, хотя он также может использоваться для хранения любых произвольных данных.[2]

Реализация Microsoft в основном известна через форматы контейнеров, такие как AVI, ANI и WAV, которые используют в качестве основы RIFF.[3]

История

RIFF был представлен в 1991 г. Microsoft и IBM, и был представлен Microsoft как формат по умолчанию для Windows 3.1 мультимедийные файлы. Он основан на Electronic Arts ' Формат файла обмена, введенный в 1985 г. на Коммодор Амига, с той лишь разницей, чтобайт целые числа находятся в прямой порядок байтов формат, родной для 80x86 серии процессоров, используемых в ПК IBM, а не прямой порядок байтов формат, родной для 68 тыс. серии процессоров, используемых в Amiga и Apple Macintosh компьютеры, где широко использовались файлы IFF. Также был представлен формат RIFX с прямым порядком байтов.

В 2010 году Google представила WebP формат изображения, в котором RIFF используется в качестве контейнера.[4]

Объяснение

Файлы RIFF полностью состоят из "куски ". Общий формат идентичен МКФ, за исключением порядка байтов, как указывалось ранее, и другого значения имен блоков.

Все чанки имеют следующий формат:

  • 4 байта: ASCII идентификатор этого фрагмента (примеры: «fmt» и «data»; обратите внимание на пробел в «fmt»).
  • 4 байта: беззнаковый, с прямым порядком байтов 32-немного целое число с длиной этого блока (кроме самого поля и идентификатора блока).
  • поле переменного размера: сами данные блока размером, указанным в предыдущем поле.
  • вспомогательный байт, если длина блока не четная.

Два идентификатора блока, «RIFF» и «LIST», представляют блок, который может содержать субчанки. Данные блоков RIFF и LIST (появляются после идентификатора и длины) имеют следующий формат:

  • 4 байта: идентификатор ASCII для этого конкретного фрагмента RIFF или LIST (для RIFF в типичном случае эти 4 байта описывают содержимое всего файла, например «AVI» или «WAVE»).
  • остальные данные: подгруппы.

Сам файл состоит из одного фрагмента RIFF, который затем может содержать дополнительные фрагменты: следовательно, первые четыре байта правильно отформатированного файла RIFF будут содержать символы «R», «I», «F», «F».

Более подробную информацию о формате RIFF можно найти в Формат файла обмена статья.

RF64 - это многоканальный формат файлов, основанный на спецификации RIFF, разработанный Европейский вещательный союз. это BWF -совместим и позволяет файлы размером более 4 гигабайты. Это достигается за счет предоставления фрагмента "ds64" 64-битного (8-байтового) размера.

Использование блока INFO

Дополнительный блок INFO позволяет стандартным способом «помечать» файлы RIFF информацией, попадающей в ряд предопределенных категорий, таких как авторское право («ICOP»), комментарии («ICMT»), исполнитель («IART»). Эти сведения можно прочитать из файла RIFF, даже если остальная часть формата файла не распознана. Стандарт также позволяет использовать определяемые пользователем поля. Программисты, намеревающиеся использовать нестандартные поля, должны иметь в виду, что один и тот же нестандартный идентификатор подчанка может использоваться разными приложениями разными (и потенциально несовместимыми) способами.

Проблемы совместимости

Начальные трудности с файлами MIDI

В соответствии со своей политикой использования .RIFF для всех «мультимедийных» файлов Windows 3.1, Microsoft представила новый вариант существующих MIDI файл формат, используемый для хранения информации о песнях, которые будут воспроизводиться на электронных музыкальных инструментах. «Новый» формат файла MIDI от Microsoft состоял из стандартного файла MIDI, заключенного в «оболочку» RIFF, и имел расширение файла .RMI. Поскольку существующий формат файла MIDI уже поддерживал встроенную «маркировочную» информацию, преимущества для пользователя наличия нового формата не были очевидны.

Ассоциация производителей MIDI с тех пор приняла формат файлов MIDI на основе RIFF и использовала его в качестве основы для «расширенного midifile», который также включает данные инструмента вDLS "формат, встроенный в тот же файл .RMI.

Проблемы с размещением блока INFO

Для целей каталогизации оптимальная позиция для блока INFO - около начала файла. Однако, поскольку блок INFO является необязательным, он часто опускается в подробных спецификациях отдельных форматов файлов, что приводит к некоторой путанице в отношении правильного положения этого блока в файле.

При работе с большими медиафайлами расширение или сжатие блока INFO во время редактирования тега может привести к тому, что следующий раздел «данных» файла должен быть прочитан и перезаписан обратно на диск, чтобы приспособиться к новому размеру заголовка. Поскольку медиа-файлы могут иметь размер гигабайта, это потенциально интенсивный процесс для диска. Один из обходных путей - «дополнить» ведущий блок INFO с помощью фиктивных данных (с помощью «фиктивного блока» или «блока заполнения») при создании файла. Позднее редактирование может затем расширить или сузить «фиктивное» поле, чтобы сохранить постоянным общий размер заголовка файла: грамотно написанная часть программного обеспечения может затем перезаписать только заголовок файла при изменении данных тегов без изменения или перемещения основного тела файл.

Некоторые программы пытались решить эту проблему, помещая блок INFO в конец мультимедийного файла после основного тела файла. Это привело к двум различным соглашениям о размещении фрагментов, с сопутствующим риском того, что некоторые комбинации программного обеспечения могут привести к игнорированию или постоянной перезаписи данных INFO файла во время редактирования. Более сложные программы будут учитывать возможность «неожиданного» размещения фрагментов в файлах и реагировать соответствующим образом. Например, когда программа для редактирования аудио Дерзость встречает файл .WAV с данными INFO, размещенными в конце, он правильно идентифицирует и считывает данные, но при сохранении перемещает блок INFO обратно в заголовок файла.

Несмотря на то что CorelDRAW 10 номинально использует файловую структуру RIFF, в первоначальной версии программы блок INFO помещался в конец, так что любое встроенное растровое изображение предварительного просмотра по умолчанию не отображалось в файловом менеджере Windows. Утилита «patch», поставляемая с программой, устраняет эту проблему.

Информационные теги RIFF

Информационные теги RIFF находятся в аудиофайлах WAV и видеофайлах AVI. Теги, входящие в Exif 2.2 (идентификатор тега начинается с буквы "I") в HTML-версии этой документации имя тега подчеркнуто. Другие теги находятся в файлах AVI, созданных Sony Vegas программное обеспечение для редактирования видео.

ID тегаНазвание тэгаВозможность записиЦенности / примечания
DTIMDateTimeOriginalNЗначения формата "dtim" профиля ICC
ЛЕНТАTapeNameN

Преобразование времени DTIM в нормальное время

Поле состоит из двух значений (v [0] и v [1]), разделенных пробелом (0x20). Образец кода:

// время в секундах - «объединить» элементы даты и времени с разделителем десятичной точкиTimeInSeconds = (v[0] * (2^32) + v[1]) * 10^(-7);// сдвиг базы с 1 января 1601 года на эпоху Unix 1 января 1970 года (369 лет и високосные дни)UnixTimeStamp = TimeInSeconds - 134774 * 24 * 3600;

Некоторые распространенные типы файлов RIFF

  • WAV (Аудио Windows)
  • AVI (Аудиовизуальный для Windows)
  • RMI (Windows "RIFF MIDIfile")
  • CDR (Файл векторной графики CorelDRAW)
  • ANI (Анимированные курсоры Windows)
  • PAL (Палитра)
  • DLS (Загружаемые звуки)
  • WebP (Формат изображения, разработанный Google)
  • XMA (Microsoft Xbox 360 аудиоформат консоли на основе WMA Pro )

Смотрите также

использованная литература

  1. ^ Мультимедийный программный интерфейс и спецификации данных 1.0 (PDF). IBM / Microsoft. Август 1991. С. 10–11.. Получено 2017-07-07.
  2. ^ «RIFF (формат файла обмена ресурсами)». Цифровое сохранение. Библиотека Конгресса. 2014-01-08. Получено 2014-03-11.
  3. ^ Джеймс Д. Мюррей, Уильям ванРайпер (1996). «Энциклопедия форматов графических файлов, второе издание». О'Рейли. Microsoft RIFF. ISBN  1-56592-161-5. В архиве с оригинала 28 ноября 2005 г.. Получено 2016-04-07.CS1 maint: использует параметр авторов (ссылка на сайт)
  4. ^ «РИФФ Контейнер». Код Google. Google. Получено 1 октября 2010.

внешние ссылки