Формат файла обмена ресурсами

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

Resource Interchange File Format ( RIFF ) является родовым файл формата контейнера для хранения данных в помеченных куски. Он в основном используется для хранения мультимедиа, такого как звук и видео, хотя его также можно использовать для хранения любых произвольных данных.

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

Содержание
  • 1 История
  • 2 Объяснение
  • 3 Использование блока INFO
  • 4 Проблемы совместимости
    • 4.1 Начальные трудности с файлами MIDI
    • 4.2 Проблемы размещения информационного блока
  • 5 информационных тегов RIFF
    • 5.1 Преобразование времени DTIM в нормальное время
  • 6 Некоторые распространенные типы файлов RIFF
  • 7 См. Также
  • 8 ссылки
  • 9 Внешние ссылки
История

RIFF был представлен в 1991 году Microsoft и IBM и был представлен Microsoft как формат по умолчанию для мультимедийных файлов Windows 3.1. Он основан на Electronic Arts ' Interchange Format File, введенный в 1985 году на Commodore Amiga, той лишь разницей, что многоканальные байтовые целые числа в мало-Endian формате, произрастающих в 80x86 серии процессоров, используемых в компьютерах IBM PC, а не Большой -endian формат, родной для процессоров серии 68k, используемых в компьютерах Amiga и Apple Macintosh, где широко использовались файлы IFF. Также был представлен формат RIFX с прямым порядком байтов.

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

Объяснение

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

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

  • 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 и использовала его в качестве основы для «расширенного мидфайла», который также включает данные инструментов в формате « DLS », встроенные в тот же файл.RMI.

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

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

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

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

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

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

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

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

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

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

// time in seconds - "concatenate" date amp; time elements with a decimal point delimiter TimeInSeconds = (v[0] * (2^32) + v[1]) * 10^(-7); // shift basis from Jan 1, 1601 to Unix epoch Jan 1, 1970 (369 years amp; leap days) 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 )
Смотрите также
Рекомендации
внешние ссылки
Последняя правка сделана 2023-04-05 11:27:15
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте