Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

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

История [ править ]

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

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

Объяснение [ править ]

Файлы 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 .

Преобразование времени 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 )

См. Также [ править ]

  • МКФ
  • AIFF
  • FourCC
  • Формат BWF Broadcast Wave

Ссылки [ править ]

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

Внешние ссылки [ править ]

  • Службы файлового формата обмена ресурсами
  • Ссылка на файл RIFF AVI
  • Чтение файлов WAVE
  • Формат файла DirectMusic
  • Комплект для регистрации мультимедиа
  • Имена тегов