Jump to content

ЧетыреCC

(Перенаправлено с FOURCC )

FourCC байтов («четырехсимвольный код») — это последовательность из четырех ( обычно ASCII ), используемая для уникальной идентификации форматов данных . Он возник на основе системы метаданных OSType или ResType, используемой в классической Mac OS, и был принят для Amiga / Electronic Arts формата файлов обмена и его производных. Позже идея была повторно использована для идентификации типов сжатых данных в QuickTime и DirectShow .

В 1984 году была выпущена самая ранняя версия ОС Macintosh — System 1 . Он использовал одноуровневую файловую систему Macintosh с полями метаданных, включая типы файлов , информацию об создателе (приложении) и разветвлениями для хранения дополнительных ресурсов . Эту информацию можно было изменить, не изменяя сами данные, чтобы их можно было интерпретировать по-разному. Во всей системе использовались одинаковые коды в качестве тегов типов для всех видов данных. [1] [2]

В 1985 году Electronic Arts представила метаформат Interchange File Format (IFF) (семейство форматов файлов), первоначально разработанный для использования на Amiga . Эти файлы состояли из последовательности «кусков», которые могли содержать произвольные данные, причем каждому фрагменту предшествовал четырехбайтовый идентификатор. В спецификации IFF прямо упоминается, что истоки идеи FourCC лежат в Apple. [3]

Этот IFF был принят рядом разработчиков, включая Apple для файлов AIFF и Microsoft для файлов RIFF (которые использовались в качестве основы для форматов файлов AVI и WAV ). Apple называла многие из этих кодов OSTypes . Разработчики Microsoft и Windows называют свои четырехбайтовые идентификаторы FourCC или четырехсимвольными кодами . Коды FourCC также были приняты Microsoft для идентификации форматов данных, используемых в DirectX , особенно в DirectShow и DirectX Graphics.

В системах Apple

[ редактировать ]

Начиная с Mac OS X Panther , сигнатуры OSType являются одним из нескольких источников, которые можно изучить для определения универсального идентификатора типа , и больше не используются в качестве сигнатуры основного типа данных. Mac OS X (macOS) предпочитает более разговорное соглашение о маркировке типов файлов с использованием расширений имен файлов. На момент внесения изменений это изменение стало источником серьезных разногласий среди пожилых пользователей, которые считали, что Apple возвращается к более примитивному способу, при котором метаданные в имени файла теряются.

Коды типов, связанные с файловой системой, недоступны пользователям для манипулирования, хотя их можно просматривать и изменять с помощью определенного программного обеспечения, в первую очередь инструментов командной строки macOS GetFileInfo и SetFile , которые устанавливаются как часть инструментов разработчика в /Developer/Tools , или утилиту ResEdit, доступную для старых компьютеров Mac. [4] [5]

Технические детали

[ редактировать ]

Последовательность байтов обычно ограничивается печатными символами ASCII , а символы пробела зарезервированы для заполнения более коротких последовательностей. сохраняется чувствительность к регистру В отличие от расширений файлов . FourCC иногда кодируются в шестнадцатеричном формате (например, «0x31637661» для « avc1 »). [6] [7] [8] и иногда закодирован в удобочитаемом виде (например, « mp4a »). Однако некоторые FourCC содержат непечатаемые символы и нечитабельны для человека без специального форматирования для отображения; например, 10-битное видео Y'CbCr 4:2:2 может иметь FourCC ('Y', '3', 10, 10) [9] который ffmpeg отображает как rawvideo (Y3[10] [10] / 0x0A0A3359), yuv422p10le.

Четырехбайтовые идентификаторы полезны, поскольку они могут состоять из четырех удобочитаемых символов с мнемоническими свойствами, при этом помещаясь в четырехбайтовое пространство памяти, обычно выделяемое для целых чисел в 32-битных системах (хотя проблемы с порядком байтов могут сделать их менее читаемыми). ). Таким образом, коды могут эффективно использоваться в программном коде как целые числа, а также давать подсказки в потоках двоичных данных при проверке.

Поддержка компилятора

[ редактировать ]

FourCC записывается с прямым порядком байтов относительно базовой последовательности символов ASCII, поэтому при чтении в виде строки он отображается в правильном порядке байтов. Многие компиляторы C, включая GCC, определяют многосимвольное буквальное поведение выравнивания по правому краю младшего байта, так что '1234' становится 0x31323334 в ASCII. [10] Это традиционный способ написания кодов FourCC, используемый программистами Mac OS для OSType. ( Классическая Mac OS имела исключительно обратный порядок байтов.)

На машинах с прямым порядком байтов требуется замена байтов значения, чтобы результат был правильным. Взяв приведенный выше пример avc1: хотя буквальный 'avc1' уже преобразуется в целочисленное значение. 0x61766331 , машина с прямым порядком байтов изменила бы порядок байтов и сохранила бы значение как 31 63 76 61 . Чтобы получить правильную последовательность байтов 61 76 63 31 , предварительно замененное значение 0x31637661 Используется .

Обычное использование

[ редактировать ]

Одним из наиболее известных применений FourCC является идентификация видеокодека или формата видеокодирования в файлах AVI. Общие идентификаторы включают DIVX , XVID и H264 . Для форматов аудиокодирования файлы AVI и WAV используют двухбайтовый идентификатор, обычно записанный в шестнадцатеричном формате (например, 0055 для MP3 ). В файлах QuickTime к этим двухбайтовым идентификаторам добавляются буквы «мс», образующие четырехзначный код. В файлах RealMedia также используются четырехсимвольные коды, однако фактические используемые коды отличаются от кодов, найденных в файлах AVI или QuickTime.

Другими форматами файлов, в которых важно использовать концепцию четырехбайтового идентификатора, являются формат стандартного MIDI-файла (SMF) , PNG формат файла изображения , формат файла сетки 3DS (3D Studio Max) и формат профиля ICC .

Четырехзначные коды также используются в приложениях, отличных от форматов файлов, например:

  • Форум UEFI для поставщиков в реестре идентификаторов ACPI [11]
  • Спецификация ACPI определяет четырехсимвольные идентификаторы на исходном языке ACPI (ASL).
  • Synopsys для определения идентификатора компонента через регистры IP (коллекция DesignWare)

Другие варианты использования OSTypes включают:

  • как идентификаторы полей записи, а также идентификаторы типов событий и классов в AppleEvents
  • для идентификации компонентов в Диспетчере компонентов
  • как идентификаторы «атомов» в QuickTime . форматах файлов фильмов и изображений
  • как независимый от локализации способ идентификации стандартных папок в диспетчере папок.
  • в QuickDraw GX они использовались как типы gxTag, а также как типы элементов коллекции в Менеджере коллекций.
  • Константы перечисления в API Apple (как целое число; порядок байтов хоста)
  • «OSStatus» Коды ошибок в некоторых библиотеках, таких как QuickTime (в виде целого числа; порядок байтов хоста) [12]

См. также

[ редактировать ]
  1. ^ База данных типов/создателей
  2. ^ «Подписи файлов Macintosh» . Логика и услуги Дюэм . Проверено 1 декабря 2015 г.
  3. ^ Моррисон, Джерри (14 января 1985 г.). « Стандарт EA IFF 85 для файлов формата обмена» . Электронное искусство .
  4. ^ «GetFileInfo», справочник Дарвина (справочная страница), Apple
  5. ^ «SetFile», справочник Дарвина (справочная страница), Apple
  6. ^ онлайн-метаданные.com. «Что такое тег кодека?» . Что такое тег кодека? . Проверено 9 июня 2019 г.
  7. ^ «git.videolan.org Git — ffmpeg.git/blob — libavformat/isom.c» . git.videolan.org . Проверено 9 июня 2019 г.
  8. ^ «Поиск FFmpeg/FFmpeg» . Гитхаб . Проверено 9 июня 2019 г.
  9. ^ «FFmpeg: исходный файл libavcodec/raw.c» . ffmpeg.org . Проверено 9 июня 2019 г.
  10. ^ «Препроцессор C: поведение, определяемое реализацией» . gcc.gnu.org .
  11. ^ «Реестр идентификаторов ACPI» . uefi.org .
  12. ^ «OSStatus — ошибки Apple API» . www.osstatus.com .

Общие ссылки

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