FourCC
FourCC (буквально четырехсимвольный код — англ. four-character code) — это последовательность из четырех байтов, используемая для уникальной идентификации форматов данных. Широко применяется для идентификации видеокодеков в контейнерах для мультимедийной информации.
Эта концепция возникла в схеме OSType, используемой в системном программном обеспечении Macintosh, и была принята для формата обмена файлами Amiga/Electronic Arts и его производных. Позднее эта идея была повторно использована для идентификации сжатых типов данных в QuickTime и DirectShow.
Технические детали
правитьПоследовательность байтов обычно ограничена печатными символами ASCII с пробелами, зарезервированными для заполнения более коротких последовательностей. Чувствительность к регистру сохраняется, в отличие от расширений файлов.
Четырехбайтовые идентификаторы полезны, потому что они могут состоять из четырех читаемых человеком символов с мнемоническими качествами, в то же время помещаясь в четырехбайтовое пространство памяти, обычно выделяемое для целых чисел в 32-разрядных системах (хотя проблемы с порядком байтов могут сделать их менее читаемыми). Таким образом, коды могут эффективно использоваться в программном коде как целые числа, а также давать подсказки в потоках двоичных данных при проверке.
Однако некоторые FourCC содержат непечатаемые символы и не читаемые человеком без специального форматирования для отображения; например, 10-битное видео Y’CbCr 4:2:2 может иметь FourCC ('Y', '3', 10, 10)[1], который отображает ffmpeg как rawvideo (Y3[10][10] / 0x0A0A3359), yuv422p10le
.
История
правитьВ 1985 году Electronic Arts представила мета-формат (семейство форматов файлов) Interchange File Format (IFF), первоначально разработанный для использования на Amiga. Эти файлы состояли из последовательности «чанков», которые могли содержать произвольные данные, каждый из которых начинался с четырехбайтового идентификатора. В спецификации IFF прямо упоминается, что истоки идеи FourCC лежат в Apple[2].
Этот IFF был принят рядом разработчиков, включая Apple для файлов AIFF и Microsoft для файлов RIFF (которые использовались в качестве основы для формата файлов AVI и WAV). Apple называет многие из этих кодов OSTypes. Разработчики Microsoft и Windows именуют свои четырехбайтовые идентификаторы как FourCC или четырехсимвольные коды. Коды FourCC были также приняты Microsoft для идентификации форматов данных, используемых в DirectX, особенно в DirectShow и DirectX Graphics.
Общее использование
правитьОдним из наиболее известных применений FourCC является идентификация видеокодека или формата кодирования видео в файлах AVI. Общие идентификаторы включают DIVX, XVID и H264. Для форматов аудиокодирования файлы AVI и WAV используют двухбайтовый идентификатор, обычно записанный в шестнадцатеричном формате (например, 0055 для MP3). В файлах QuickTime эти двухбайтовые идентификаторы имеют префикс с буквами «ms» для формирования четырехсимвольного кода. В файлах RealMedia также используются четырехсимвольные коды, однако фактические используемые коды отличаются от кодов, найденных в файлах AVI или QuickTime.
Другими форматами файлов, в которых важно использовать концепцию четырехбайтового идентификатора, являются формат стандартного файла MIDI (SMF), формат файла изображения PNG, формат файла сетки 3DS (3D Studio Max) и формат профиля ICC.
См. также
правитьПримечания
править- ↑ FFmpeg: libavcodec/raw.c Source File . ffmpeg.org. Дата обращения: 9 июня 2019. Архивировано 19 января 2019 года.
- ↑ Morrison, Jerry "EA IFF 85" Standard for Interchange Format Files . Electronic Arts (14 января 1985). Дата обращения: 17 января 2019. Архивировано 21 февраля 2015 года.
Ссылки
править- Fleischman, E. RFC2361 - WAVE and AVI Codec Registries (англ.). Internet Assigned Numbers Authority (IANA) (июнь 1998).
- Audio Subtype GUIDs (англ.). Microsoft. Дата обращения: 23 февраля 2017.
- Kroon, Dirk-Jan List Video Codecs, FourCC (англ.). MathWorks (16 февраля 2011). — «This function GETFOURCC gives a list of available Video encoder-codecs in the current Windows installation».
- Video codecs and Pixel Formats (англ.). FourCC. Дата обращения: 23 февраля 2017.