Jump to content

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

РИФФ
Тип интернет-СМИ приложение/х-рифф
Первоначальный выпуск август 1991 года ; 32 года назад ( 1991-08 )
Тип формата Формат контейнера
Расширено с Формат файла обмена
Распространено на AVI , ANI , PAL, RDIB, RMIDI, RMMP, WAV
Открытый формат ? Да
Свободный формат ? Да [1]

Формат файла обмена ресурсами ( RIFF ) — это универсальный формат файлового контейнера для хранения данных в помеченных фрагментах . [2] В основном он используется для аудио и видео, хотя его можно использовать и для произвольных данных. [3]

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

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

RIFF был представлен в 1991 году компаниями Microsoft и IBM и использовался в качестве формата по умолчанию для Windows 3.1 мультимедийных файлов . Он основан на формате файлов обмена, представленном Electronic Arts в 1985 году на Amiga . В IFF используется правило с прямым порядком байтов, компании Amiga как в процессоре Motorola 68000 , но в RIFF многобайтовые целые числа хранятся в порядке с прямым порядком байтов, как в процессорах x86 , используемых в IBM PC-совместимых устройствах . Также был представлен формат RIFX с прямым порядком байтов.

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

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

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

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

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

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

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

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

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

Проблемы с размещением чанка INFO [ править ]

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

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

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

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

Информационные теги RIFF [ править ]

Информационные теги RIFF находятся в аудиофайлах WAV и видеофайлах AVI.

Идентификатор тега Имя тега записываемый Значения/примечания
ДТИМ ДатаВремяОригинал Н Значения формата «dtim» профиля ICC
ЛЕНТА имя ленты Н

Преобразование времени DTIM в обычное время [ править ]

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

// time in seconds - "concatenate" date & 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 & leap days)
UnixTimeStamp = TimeInSeconds - 134774 * 24 * 3600;

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

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

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

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

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

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

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: c3ab8378925d8e113f87f166e4d5dade__1707284700
URL1:https://arc.ask3.ru/arc/aa/c3/de/c3ab8378925d8e113f87f166e4d5dade.html
Заголовок, (Title) документа по адресу, URL1:
Resource Interchange File Format - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)