RIFF

RIFF

RIFF (англ. Resource Interchange File Format) — один из форматов файлов-контейнеров для хранения потоковых мультимедиа-данных (видео, аудио, возможно текст). Наиболее известными форматами, использующими RIFF в качестве контейнера, являются: AVI (видео), WAV (аудио), RMI (MIDI-треки).

Формат RIFF использует little-endian порядок байтов (младший байт идёт первым). Для машин с форматом данных big-endian предлагался формат RIFX, однако из-за существенно меньшей в бытовом секторе популярности компьютеров с таким форматом данных, RIFX не прижился, в настоящее время формат RIFF воспроизводится и на машинах с big-endian порядком байтов.

Изначально RIFF имел принципиальное ограничение размера данных в 4 ГБ (точнее, максимальный размер файла 2^{32}+7 байт). В силу особенностей ряда популярных программ по созданию и воспроизведению файлов (в большой степени из-за медиастека в Microsoft Windows) ограничение усилилось до 2 ГБ (из-за замены в парсерах RIFF’а DWORD на signed int32). Для поддержки файлов больше 4 ГБ формат AVI был расширен до AVI-DV, выходящего за рамки контейнера RIFF. На базе RIFF предложено расширение RF64, позволяющее работать с 64-битными числами для размеров chunk'ов, разработанное European Broadcasting Union.


Формат RIFF является адаптацией формата IFF для little-endian компьютеров (в основном, ради PC на 80x86). Разработан он был в 1991 году компаниями Microsoft и IBM. (IFF был создан в 1985 году).

Содержание

chunk

Основной концепцией RIFF-формата является chunk, порция данных с заголовком и сигнатурой, указывающей на содержимое chunk’а.

Формат chunk’а:

FOURCC ckID сигнатура chunk'а
DWORD ckSize размер данных chunk'а
BYTE[] ckData сами данные chunk'а

Если chunk содержит нечётное количество байт, то после него добавляется один байт. Таким образом chunk’и всегда выравнены на границу в 2 байта.

FOURCC

FOURCC (от англ. Four Character Code) — последовательность из четырёх символов, используемая для идентификации каких-либо данных. В отношении RIFF — это ckID (идентификаторы chunk’ов) и типы форм. В отношении видеопотока FOURCC обычно используется для идентификации кодека (например, «XVID», «DIV3», «MP43»). FOURCC занимает 4 байта; это размер 32-битного числа, так что иногда FOURCC записывают в виде числа (представления числа в ASCII little-endian).

Например:

FOURCC число (шестнадцатеричное) число (десятичное)
'RIFF' 0x46464952 1179011410
'AVI ' 0x20495641 541677121
'XVID' 0x44495658 1145656920
'idx1' 0x31786469 829973609

Два типа chunk’ов RIFF и LIST могут содержать внутри себя вложенные chunk’и. Весь файл представляет собою единый RIFF-chunk (это одна из причин ограничения размера файла).

ckID для chunk’ов самого формата RIFF всегда записываются большими буквами ASCII. В chunk’ах внутренних форматов (использующих RIFF), таких как AVI или WAV, ckID записывается маленькими буквами. Если ckID содержит две или три буквы, недостающие до 4-х символов байты заменяются пробелами (AVI → 'AVI ').

Форма записи

Для удобства записи в спецификациях используется следующая форма записи формата chunk’а:

ckID(<formType> ck)

Например, запись для AVI-файла: RIFF('AVI ' LIST('hdrl' avi_header) LIST ('movi' movi) [idx1]). (Квадратные скобки указывают на необязательность элемента.)

Стандартные chunk’и

RIFF

Chunk с ckID = 'RIFF' имеет следующую структуру ckData:

FOURCC FormType тип содержимого
BYTE[] ck содержимое

Наиболее распространённые типы:

  • 'AVI ' — AVI: содержат видео и аудио информацию.
  • 'WAVE' — WAV: содержит звуковую информацию
  • 'RMID' — RMI: содержит музыку в формате MIDI

Другие типы:

  • 'RDIB' — англ. RIFF Device Independent Bitmap формат хранения изображений
  • 'RMMP' — англ. RIFF Multimedia Movie File
  • 'PAL ' — англ. Palette Format

LIST

Chunk 'LIST' имеет формат, аналогичный RIFF, первые 4 байта содержат ListType (тип вложенного chunk’а), далее до конца чанка следуют вложенные chunk’и. В рамках формата AVI внутри LIST содержатся chunk’и с заголовком файла, заголовками потоков. Так же chunk LIST используется для хранения информации о содержимом.

JUNK и PAD

Для выравнивания блоков данных по размеру сектора на носителе для обеспечения скорости перемотки и доступа существуют два chunk’а: 'JUNK' и 'PAD' , которые «ничего не значат» и пропускаются программами воспроизведения. Изначально предполагалось, что при создании файла эти chunk’и будут просто заполнены нулями, однако некоторые программы редактирования видео хранят там свою сигнатуру. (Например, так поступает Virtual Dub).

Запись chunk’ов в сокращённой нотации:

JUNK (filler) PAD  (filler)

INFO

INFO — специальный ListType для хранения информации о содержимом файла. INFO не влияет на то, как программы работают с файлом, эта информация (большей частью) показывается пользователю. Назначение INFO подобно назначению mp3-тегов. Список chunk’ов для INFO:

  • IARL (англ. Archival Location) — место архивного хранения документа (практически не используется)
  • IART (англ. Artist) — список авторов произведения (стандартный тег, отображается практически во всех плеерах).
  • ICMS (англ. Commissioned) — список лиц, предоставивших содержимое файла. (не используется)
  • ICMT (англ. Comments) — комментарий. (отображается практически во всех плеерах)
  • ICOP (англ. Copyright) — информация об авторских правах.
  • ICRD (англ. Creation date) — Дата создания оригинального произведения. Формат YYYY-MM-DD. (редко используется).
  • ICRP (англ. Cropped) — данные об обрезке произведения. (не используется).
  • IDIM (англ. Dimensions) — Физические размеры оригинала. (не используется).
  • IDPI (англ. Dots Per Inch) — DPI оригинала. (не используется)
  • IENG (англ. Engineer) — фамилии лиц, создававших файл. (не используется).
  • IGNR (англ. Genre) — жанр. (частично поддерживается)
  • IKEY (англ. Keywords) — список ключевых слов, относящихся к произведению. (не используется)
  • ILGT (англ. Lightness) — степень освещённости оригинала (зависит от оборудования оцифровки) (не используется).
  • IMED (англ. Medium) — тип носителя оригинала (не используется)
  • INAM (англ. Name) — название произведения. Существуют разногласия о том, следует ли использовать INAM или ISBJ для сохранения заголовка произведения. (стандартный тег, поддерживается и часто используется)
  • IPLT (англ. Palette Setting) — количество цветов при оцифровке. (не используется).
  • IPRD (англ. Product) — заголовок продукта, для которого в оригинале предназначалось произведение. (не используется)
  • ISBJ (англ. Subject) — описывает содержимое файла. Периодически, наравне с INAM, используется для хранения заголовка. (используется)
  • ISFT (англ. Software) — ПО, использованное для создания файла. Обычно автоматически заполняется программами по редактированию, но не отображается в списке тегов. (используется)
  • ISHP (англ. Sharpness) — необходимый уровень резкости для воссоздания произведения. (не используется)
  • ISRC (англ. Source) — название организации, предоставившей произведение. (не используется)
  • ISRF (англ. Source Form) — форма оригинального произведения (бумага/слайд и т. д.) (не используется)
  • ITCH (англ. Technician) — специалист, производивший оцифровку (не используется)

Ссылки



Wikimedia Foundation. 2010.

Игры ⚽ Поможем решить контрольную работу

Полезное


Смотреть что такое "RIFF" в других словарях:

  • Riff — [rɪf], das; [e]s, e: lang gestreckte Sandbank, Reihe von Klippen im Meer vor der Küste: auf ein Riff auflaufen. * * * Rịff1 〈n. 11〉 Felsenbank, Klippe, Felsengrat im Meer ● das Schiff ist auf ein Riff aufgelaufen; →a. Korallenriff [<nddt.… …   Universal-Lexikon

  • Riff — Saltar a navegación, búsqueda Para otros usos de este término, véase Riff (desambiguación). En la música, un riff es una frase que se repite a menudo, normalmente ejecutada por la sección de acompañamiento. Un ejemplo de riff en la música rock,… …   Wikipedia Español

  • Riff — steht für: Riff (Geographie), ein geographisches Objekt in Gewässern Korallenriff, ein von Korallen aufgebautes geographisches Objekt in Gewässern künstliches Korallenriff, ein künstliches Objekt im Wasser Riff (Musik), in der modernen… …   Deutsch Wikipedia

  • riff — [ rif ] n. m. • 1946; mot angl. amér. ♦ Mus. Courte phrase musicale, d un dessin mélodique et rythmique simple et marqué, répétée par l orchestre dans l exécution d une pièce de jazz. ⊗ HOM. Rif. ● riff nom masculin (anglais riff, peut être… …   Encyclopédie Universelle

  • RIFF — (Resource Interchange File Format) ist ein Containerformat zur Speicherung von Multimedia Daten, das 1991 von Microsoft und IBM entwickelt und mit den Multimediaerweiterungen für Windows 3.1 eingeführt wurde. Als Grundlage für das RIFF… …   Deutsch Wikipedia

  • Riff — (Boca de Briceño,Эквадор) Категория отеля: Адрес: Boca de Briceno, EC131458 Boca de Briceño, Эквадор Описание: Отель Riff расположен в 30 метрах от пляжа в Сан Винсенте. К услугам гостей …   Каталог отелей

  • riff — s.n. (Jaz) Frază melodică sau motiv care se repetă ca fond sau ca temă principală. ♦ (p. restr.) Mod de construcţie melodică caracteristic folclorului negru. [pl. uri. / < engl., fr., it. riff]. Trimis de LauraGellner, 13.09.2007. Sursa: DN … …   Dicționar Român

  • Riff — »lang gestreckte Sandbank; Klippenreihe«: Das im 17. Jh. aus dem Niederd. ins Hochd. übernommene Wort geht zurück auf gleichbed. mnd. ref, rif, das wohl – wie auch niederl. rif »Riff« und engl. reef »Riff« – aus dem Nord. stammt, vgl. aisl. rif… …   Das Herkunftswörterbuch

  • riff — ☆ riff [rif ] n. [prob. altered < REFRAIN2] 1. a constantly repeated musical phrase used esp. as background for a soloist or as the basic theme of a final chorus: a term that originated in jazz music 2. Informal a short, incisive comment,… …   English World dictionary

  • riff — s.m.inv. TS mus. nella musica jazz e nel rock, frase corta, semplice e orecchiabile, che viene ripetuta ostinatamente spec. come sottofondo a interpretazioni solistiche, o come nucleo centrale di un brano {{line}} {{/line}} DATA: 1959. ETIMO:… …   Dizionario italiano


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»