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

Ogg является свободным , открытым форматом контейнера поддерживается Xiph.org Foundation . Создатели формата Ogg заявляют, что он не ограничен патентами на программное обеспечение [2] и предназначен для обеспечения эффективной потоковой передачи и обработки высококачественного цифрового мультимедиа . Его название происходит от «оггинг», жаргона компьютерной игры Нетрек . [3]

Формат контейнера Ogg может мультиплексировать несколько независимых потоков для аудио , видео , текста (например, субтитров ) и метаданных .

В мультимедийной структуре Ogg Theora предоставляет слой видео с потерями . Аудио слой чаще всего обеспечивается музыкально-ориентированный Vorbis формата или его преемником Opus . Форматы сжатия звука без потерь включают FLAC и OggPCM .

До 2007 года расширение имени файла .ogg использовалось для всех файлов, содержимое которых использовало формат контейнера Ogg. С 2007 года Фонд Xiph.Org рекомендует использовать .ogg только для аудиофайлов Ogg Vorbis. Фонд Xiph.Org Foundation решил создать новый набор расширений файлов и типов мультимедиа для описания различных типов контента, таких как .oga для аудиофайлов, .ogv для видео со звуком или без него (включая Theora) и .ogx для мультиплексированных файлов. Огг. [4]

По состоянию на 7 ноября 2017 г. текущей версией эталонной реализации Xiph.Org Foundation является libogg 1.3.3. [5] Другая версия, libogg2, находится в разработке, но ожидает переписывания в 2018 году. [6] Обе программные библиотеки являются бесплатными , выпущенными под Новой лицензией BSD . Эталонная реализация Ogg была отделена от Vorbis 2 сентября 2000 г. [7]

Поскольку формат является бесплатным, а его эталонная реализация не подлежит ограничениям, связанным с авторским правом , различные кодеки Ogg были включены в ряд различных бесплатных и проприетарных медиаплееров , как коммерческих, так и некоммерческих, а также портативных медиаплееров и GPS- приемники разных производителей.

Именование [ править ]

Ogg происходит от «оггинг», жаргона компьютерной игры Нетрек , что означает «делать что-то насильно», возможно, без учета утечки ресурсов в будущем. [3] Вначале проект Ogg считался несколько амбициозным, учитывая ограниченную мощность компьютерного оборудования того времени. [8] Хотя иногда предполагается, что имя «Ягг» происходит от персонажа Нэнни Ягг в романах Терри Пратчетта « Плоский мир», разработчики формата говорят, что это неправда. [8]Тем не менее, процитируем ту же ссылку: «С другой стороны, Vorbis назван в честь персонажа Терри Пратчетта из книги« Маленькие боги »».

Проект Ogg Vorbis стартовал в 1993 году. Первоначально он назывался "Squish", но это название уже было зарегистрировано, поэтому название проекта было изменено. Новое имя, «OggSquish», использовалось до 2001 года, когда оно снова было изменено на «Ogg». С тех пор Ogg стал обозначать формат контейнера , который теперь является частью более крупного мультимедийного проекта Xiph.org. Сегодня «Squish» (теперь известный как «Vorbis») относится к определенному формату кодирования звука, обычно используемому с форматом контейнера Ogg. [9]

Формат файла [ править ]

Формат битового потока «Ogg» , инициированный фондом Xiph.Org Foundation, был создан в качестве основы для более широкой инициативы, направленной на разработку набора компонентов для кодирования и декодирования мультимедийного контента, которые доступны бесплатно и бесплатно повторно -реализуемый программно и аппаратно.

Формат состоит из фрагментов данных, каждый из которых называется « Ogg-страницей ». Каждая страница начинается с символов «OggS», чтобы идентифицировать файл как формат Ogg.

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

BSD лицензии библиотека, называется «libvorbis», доступна для кодирования и декодирования данных из «Vorbis» потоков. Независимые реализации Ogg используются в нескольких проектах, таких как RealPlayer и набор фильтров DirectShow . [10]

Mogg, "Multi-Track-Single-Logical-Stream Ogg-Vorbis", представляет собой формат файла многоканального или многодорожечного Ogg.

Структура страницы [ править ]

Ниже приведен макет поля заголовка страницы Ogg:

Шаблон захвата - 32 бита
Шаблон захвата или код синхронизации - это магическое число, используемое для обеспечения синхронизации при анализе файлов Ogg. Каждая страница начинается с четырехсимвольной последовательности ASCII, «OggS». Это помогает повторно синхронизировать синтаксический анализатор в случаях, когда данные были потеряны или повреждены, и является проверкой работоспособности перед началом синтаксического анализа структуры страницы.
Версия - 8 бит
В этом поле указывается версия формата битового потока Ogg для возможности расширения в будущем. В настоящее время он должен быть 0.
Тип заголовка - 8 бит
Это 8-битное поле флагов, которое указывает тип следующей страницы.
Положение гранулы - 64 бита
Положение гранулы - это маркер времени в файлах Ogg. Это абстрактное значение, значение которого определяется кодеком. Это может быть, например, подсчет количества выборок, количества кадров или более сложная схема.
Серийный номер битового потока - 32 бита
Это поле представляет собой серийный номер, который идентифицирует страницу как принадлежащую определенному логическому потоку битов. Каждый логический поток битов в файле имеет уникальное значение, и это поле позволяет реализациям доставлять страницы соответствующему декодеру. В типичном файле Vorbis и Theora один поток - это аудио (Vorbis), а другой - видео (Theora).
Порядковый номер страницы - 32 бита
Это поле является монотонно увеличивающимся полем для каждого логического потока битов. Первая страница - 0, вторая 1 и т. Д. Это позволяет реализациям определять, когда данные были потеряны.
Контрольная сумма - 32 бита
Это поле обеспечивает контрольную сумму CRC32 данных на всей странице (включая заголовок страницы, рассчитанный с полем контрольной суммы, установленным на 0). Это позволяет проверить, не были ли данные повреждены с момента создания. Страницы, не прошедшие контрольную сумму, следует отбрасывать. Контрольная сумма генерируется с использованием полиномиального значения 0x04C11DB7.
Сегменты страницы - 8 бит
В этом поле указано количество сегментов, существующих на этой странице. Он также указывает, сколько байтов находится в таблице сегментов, следующей за этим полем. На одной странице может быть максимум 255 сегментов.
Таблица сегментов
Таблица сегментов представляет собой массив 8-битных значений, каждое из которых указывает длину соответствующего сегмента в теле страницы. Количество сегментов определяется из предыдущего поля «Сегменты страницы». Каждый сегмент имеет длину от 0 до 255 байтов.

Сегменты позволяют группировать сегменты в пакеты, которые являются значимыми единицами данных для декодера. Когда указана длина сегмента 255, это означает, что следующий сегмент должен быть объединен с этим и является частью того же пакета. Когда длина сегмента составляет 0–254, это означает, что этот сегмент является последним сегментом в этом пакете. Если длина пакета кратна 255, последний сегмент имеет длину 0.

Если последний пакет продолжается на следующей странице, значение последнего сегмента равно 255, и на следующей странице устанавливается флаг продолжения, чтобы указать, что начало новой страницы является продолжением последней страницы.

Метаданные [ править ]

VorbisComment - это формат метаданных базового уровня, изначально созданный для использования с Ogg Vorbis. С тех пор он был принят в спецификациях инкапсуляции Ogg для других кодеков Xiph.Org, включая Theora , Speex , FLAC и Opus . VorbisComment - это самый простой и широко поддерживаемый механизм для хранения метаданных с кодеками Xiph.Org. [11]

Примечательно, что один или несколько METADATA_BLOCK_PICTURE=… в VorbisComment для эскизов и обложек имеют закодированные в Base64 значения соответствующего FLAC METADATA_BLOCK_PICTURE . Другими словами, FLAC хранит эскизы и обложки в двоичных блоках - вне тегов FLAC с прямым порядком байтов METADATA_BLOCK_VORBIS_COMMENT . [12] [13]

Другие существующие и предлагаемые механизмы: [14]

  • Блоки метаданных FLAC
  • Скелет Яга [15]
  • Язык разметки непрерывных носителей (не рекомендуется)

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

Play Ogg веб - кнопка

Проект Ogg начался с простого пакета сжатия звука как часть более крупного проекта в 1993 году. [8] Программное обеспечение первоначально называлось Squish, но из-за существующей торговой марки оно было переименовано в OggSquish . Это имя позже использовалось для всего проекта Ogg. В 1997 году Xiphophorus OggSquish был описан как «попытка создать гибкий сжатый аудиоформат для современных аудиоприложений, а также предоставить первый аудиоформат, который является общим для любой современной компьютерной платформы». [16]В 2000 году OggSquish называли «группой из нескольких связанных проектов мультимедиа и обработки сигналов». В 2000 году два проекта находились в активной разработке для запланированного выпуска: формат Ogg Vorbis и libvorbis - эталонная реализация Vorbis. Исследования также включали работу над будущим кодированием видео и аудио без потерь. [8] [17] [18] [19] [20] В 2001 году OggSquish был переименован в Ogg и описывался как «зонтик для группы из нескольких связанных проектов мультимедиа и обработки сигналов». [21] Ogg стал обозначать формат файла как часть более крупного мультимедийного проекта Xiph.org. Squish стало просто названием одного из кодеков Ogg. [9]В 2009 году Ogg описывался как «формат мультимедийного контейнера и собственный формат файлов и потоков для мультимедийных кодеков Xiph.org». [22]

Эталонная реализация Ogg была отделена от Vorbis 2 сентября 2000 г. [7]

В мае 2003 г. были опубликованы два RFC в Интернете, относящиеся к этому формату. Битовый поток Ogg был определен в RFC 3533 (который классифицируется как «информативный»), а его тип содержимого Интернета ( application/ogg) - в RFC 3534 (который с 2006 года является предлагаемым стандартным протоколом). В сентябре 2008 года , RFC 3534 был устарел с RFC 5334 , который добавил типы контента video/ogg, audio/oggи расширения файлов .ogx, .ogv, .oga, .spx.

OGM [ править ]

В 2002 году отсутствие формальной поддержки видео в Ogg привело к созданию формата файла OGM , взлома Ogg, позволившего встраивать видео из инфраструктуры Microsoft DirectShow в оболочку на основе Ogg. Первоначально OGM поддерживался только инструментами с закрытым исходным кодом, предназначенными только для Windows, но впоследствии была открыта база кода. Позже поддержка видео (и субтитров) была официально указана для Ogg, но несовместима с OGM. Независимо от формата контейнерный формат Matroska достиг зрелости и стал альтернативой для людей, заинтересованных в сочетании аудио- и произвольных видеокодеков Vorbis. В результате OGM больше не поддерживается и не разрабатывается, и Xiph.org официально не одобряет его использование. [23]Сегодня видео в Ogg встречается с расширением файла .ogv, которое официально указано и официально поддерживается. Программное обеспечение и кодеки, поддерживающие файлы .ogm, доступны бесплатно. [24]

2006 [ править ]

Хотя Ogg и близко не достиг повсеместного распространения стандартов MPEG [25] [26] (например, MP3 / MP4 ), по состоянию на 2006 год он обычно использовался для кодирования бесплатного контента (например, бесплатной музыки, мультимедиа в проектах Wikimedia Foundation). и файлы Creative Commons ) и начали поддерживаться значительным меньшинством цифровых аудиоплееров . Также формат Ogg поддерживался многими популярными движками для видеоигр, включая Doom 3 , Unreal Tournament 2004 , Halo: Combat Evolved , Jets n Guns ,Mafia: The City of Lost Heaven , Myst IV: Revelation , StepMania , Serious Sam: The Second Encounter , Lineage 2 , Vendetta Online , Battlefield 2 и движки Grand Theft Auto , а также аудиофайлы игры на основе Java , Майнкрафт . Более популярный кодек Vorbis имел встроенную поддержку многих программных проигрывателей, а расширения были доступны почти для всех остальных.

2007 [ править ]

16 мая 2007 года Фонд свободного программного обеспечения начал кампанию по увеличению использования Vorbis «как этически, юридически и технически более совершенной аудио альтернативы проприетарному формату MP3». [27] Людей также поощряли поддерживать кампанию, добавляя веб-кнопку на свои веб-сайты или в блог . Для тех, кто не хочет загружать и использовать предлагаемый FSF проигрыватель Ogg ( VLC ), у Xiph.Org Foundation есть официальный кодек [28] для приложений на основе QuickTime в Windows и Mac OS X , таких как проигрыватели iTunes и iMovie.Приложения; а пользователи Windows могли установить кодек Windows Media Player Ogg. [29]

2009 [ править ]

К 30 июня 2009 года контейнер Ogg, благодаря использованию Theora и Vorbis, был единственным форматом контейнера, включенным в реализацию HTML5 и элементов в веб-браузере Firefox 3.5 . [30] [31] Это соответствовало исходной рекомендации, изложенной в черновике спецификации HTML5, но позже удаленной из нее (см. Споры Ogg ). <video><audio>

2010 [ править ]

3 марта 2010 года технический анализ, проведенный разработчиком FFmpeg, критически оценил универсальные возможности Ogg как формата мультимедийного контейнера. [32] Создатель Ogg позже ответил на эти утверждения в собственной статье. [33]

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

Ogg - это всего лишь контейнерный формат. Фактическое аудио или видео, закодированное кодеком, хранится внутри контейнера Ogg. Контейнеры Ogg могут содержать потоки, закодированные с помощью нескольких кодеков, например, видеофайл со звуком содержит данные, закодированные как аудиокодеком, так и видеокодеком.

Будучи контейнерным форматом, Ogg может встраивать аудио и видео в различные форматы [34] [35] (такие как Dirac , MNG , CELT , MPEG-4 , MP3 и другие), но Ogg был предназначен и обычно используется с следующие бесплатные кодеки Xiph.org :

  • Аудио
    • Потерянный
      • Speex : обрабатывает голосовые данные с низкой скоростью передачи данных (~ 2,1–32 кбит / с на канал)
      • Vorbis : обрабатывает общие аудиоданные со средним и высоким переменным битрейтом (≈16–500 кбит / с на канал)
      • Opus : обрабатывает голос, музыку и обычное аудио с низким и высоким переменным битрейтом (≈6–510 кбит / с на канал)
    • Без потерь
      • FLAC обрабатывает архивные и высококачественные аудиоданные.
      • OggPCM позволяет хранить стандартный несжатый звук PCM в контейнере Ogg [36]
  • видео
    • Потерянный
      • Theora : основанный на On2 «s VP3 , он ориентирован на конкурирующие с MPEG-4 видео (например, закодированные с помощью DivX или Xvid ), RealVideo или Windows Media Video .
      • Daala : формат кодирования видео в стадии разработки.
      • Таркин: экспериментальный и ныне устаревший видеокодек, разработанный в 2000, 2001 и 2002 годах, использующий дискретные вейвлет-преобразования в трех измерениях : ширине, высоте и времени. [19] [37] [38] [39] Он был приостановлен после того, как Theora стала основным центром кодирования видео (в августе 2002 г.). [40]
      • Дирак : бесплатный и открытый видеоформат, разработанный BBC . Использует вейвлет-кодирование. [41]
    • Без потерь
      • Дирак : часть спецификации Дирака охватывает сжатие без потерь.
      • Daala : формат кодирования видео в стадии разработки.
  • Текст
    • Continuous Media Markup Language : текстовый / прикладной кодек для синхронизированных метаданных, субтитров и форматирования.
    • Annodex : бесплатный набор стандартов с открытым исходным кодом, разработанный CSIRO для аннотирования и индексации сетевых медиа.
    • OggKate: оверлейный кодек, изначально разработанный для караоке и текста, который можно мультиплексировать в Ogg. [42]

Типы носителей [ править ]

Ogg аудио медиа зарегистрирован в качестве IANA типа носителя audio/ogg с расширениями файлов .oga, .oggи .spx. Это подходящее подмножество медиа-типа Ogg video/oggс расширением файла .ogv. Другие приложения Ogg используют тип мультимедиа application/oggс расширением файла .ogx, это надмножество video/ogg. [35] Opus тип носителя audio/opusс расширением файла .opusбыл зарегистрирован позже в RFC 7587 и 7845 .

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

  • Сжатие аудиоданных
  • Сравнение форматов кодирования аудио
  • Сравнение форматов контейнеров
  • Commons: типы файлов
  • Использование форматов Ogg в HTML5
  • Страница справки по конвертации видео Theora на Викискладе?
  • Википедия: Media help (Ogg) Установка аудио и видео программного обеспечения

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

  1. ^ «Образец Xiph.Org варианта лицензии BSD» . Фонд Xiph.Org . Проверено 29 августа 2009 .
  2. ^ "Архивная копия" . Архивировано из оригинала на 2005-10-01 . Проверено 28 мая 2010 .CS1 maint: заархивированная копия как заголовок ( ссылка )
  3. ^ а б «Оггинг 101» . Проверено 6 ноября 2016 . 3.3 Оггинг: это искусство убийства носителя или потенциального носителя путем самоубийства.
  4. ^ «Типы MIME и расширения файлов» . XiphWiki . 2007-09-07 . Проверено 10 сентября 2007 .
  5. ^ Джайлз, Ральф (2017-11-07). «Релиз libogg 1.3.3» . ogg-dev (список рассылки) . Проверено 14 января 2019 .
  6. ^ Джайлз, Ральф (2008-01-05). "r14372 - в trunk / theora:. lib / dec lib / enc" . xiph-commits (список рассылки) . Проверено 14 января 2019 . Эта библиотека так и не была выпущена, и теперь похоже, что ее нужно переделать.
  7. ^ a b Xiph.Org (19.07.2002) Выпуски Ogg - libogg-1.0.tar.gz - ИЗМЕНЕНИЯ . Проверено 1 сентября 2009.
  8. ^ a b c d "Xiph.org: нейминг" . Фонд Xiph.org. 2006-01-07. Архивировано из оригинала на 2012-02-27 . Проверено 16 февраля 2008 . В то время, когда Ogg только начинал, большинство персональных компьютеров были i386, а i486 был новым. Я помню, как думал об алгоритмах, которые я рассматривал: «Ого, это тяжеловесно. Людям понадобится 486-й, чтобы запустить это ...». В то время как программное обеспечение подавляло музыку, для чего-то другого не оставалось много процессора.
  9. ^ a b «Xiph.org: нейминг» . Фонд Xiph.org. 2006-01-07. Архивировано из оригинала на 2012-02-27 . Проверено 2 сентября 2009 .
  10. ^ Фильтры Directshow для Ogg Vorbis
  11. ^ "VorbisComment" . 26 апреля 2016 г.
  12. ^ "БЛОК_МЕТАДАННЫХ_ИКТУРА" . Аудиокодек без потерь без flac . Xiph.Org . 2014 . Проверено 3 декабря 2019 .
  13. ^ «Спецификация формата Ogg Vorbis I: поле комментария и спецификация заголовка» . Xiph.Org . 2005 . Проверено 3 декабря 2019 .
  14. ^ «Метаданные» . Фонд xiph.org . 24 июля 2013 г.
  15. ^ "Скелет Яга 4" . Xiph.Org . 2012 . Проверено 3 декабря 2019 .
  16. ^ Монтгомери, Кристофер (1997). «Огг 98,9» . Компания Xiphophorus . Проверено 2 сентября 2009 .
  17. ^ Xiph.org (2000-01-18). «Документация по формату кодирования OggSquish Vorbis» . Архивировано из оригинала 18 января 2000 года . Проверено 2 сентября 2008 .
  18. ^ Xiph.org (2000-01-18). «Обзор логического и физического битового потока OggSquish» . Архивировано из оригинала 18 января 2000 года . Проверено 2 сентября 2008 .
  19. ^ a b Компания Xiphophorus (05.04.2001). "Домашняя страница проекта Ogg" . Архивировано из оригинала 5 апреля 2001 года . Проверено 2 сентября 2009 .
  20. ^ Xiph.org (2001-12-04). "Домашняя страница проекта Ogg" . Архивировано из оригинала 4 декабря 2001 года . Проверено 2 сентября 2008 .
  21. ^ Компания Xiphophorus (2001-12-04). "Домашняя страница проекта Ogg" . Архивировано из оригинала 4 декабря 2001 года . Проверено 2 сентября 2009 .
  22. ^ "Формат контейнера Ogg" . Фонд Xiph.Org. 2006-01-07 . Проверено 2 сентября 2009 .
  23. ^ «OGM - это не OGG. Xiph.org не поддерживает OGM» . Резервное копирование на WayBack Machine. 2004-07-07. Архивировано 17 марта 2012 года.CS1 maint: неподходящий URL ( ссылка )
  24. ^ «K-Lite Codec Pack: Сравнение возможностей и поддерживаемых форматов файлов» . Руководство по кодекам . Проверено 16 марта 2018 .
  25. ^ «Потеря MP3, Прибыль открытого исходного кода» . Wired.com . 2007-02-23 . Проверено 4 марта 2010 .
  26. ^ «Потеря MP3, Прибыль открытого исходного кода» . Wired.com . 2007-02-23 . Проверено 4 февраля 2015 .
  27. ^ " ' Play Ogg': FSF запускает кампанию бесплатного аудиоформата" (на латыни). Fsf.org . Проверено 4 марта 2010 .
  28. ^ «Фонд: Компоненты Ogg QuickTime для iTunes и iMovie (Windows и Mac OS X)» . Xiph.org . Проверено 4 марта 2010 .
  29. ^ "Фильтры Directshow для Ogg Vorbis, Speex, Theora и FLAC" . Xiph.org. 2010-02-22 . Проверено 4 марта 2010 .
  30. ^ «Центр разработчиков Mozilla - HTML - Элемент - Видео» . Сентябрь 2009 . Проверено 28 декабря 2009 .
  31. ^ «Центр разработчиков Mozilla - HTML - Элемент - Аудио» . Сентябрь 2009 . Проверено 28 декабря 2009 .
  32. ^ Rullgard, Mans (2010-03-03). «Возражения Огга» . hardwarebug.org . Проверено 2 мая 2010 .
  33. ^ Монтгомери, Кристофер (27.04.2010). «Монти - в защиту доброго имени Огга» . people.xiph.org/~xiphmont. Архивировано из оригинала на 2010-04-29 . Проверено 2 мая 2010 .
  34. ^ «Типы MIME и расширения файлов» . XiphWiki. 2009-10-04 . Проверено 24 октября 2009 .
  35. ^ а б И. Гонсалвес; С. Пфайффер; К. Монтгомери (2008). Типы носителей Ogg . сек. 10. DOI : 10,17487 / RFC5334 . RFC 5334 .
  36. ^ "OggPCM" . XiphWiki. 2020-05-25 . Проверено 25 мая 2020 .
  37. ^ Ральф Джайлз (2000-12-19) vorbis-dev - видеокодек Таркина? , Xiph.org список рассылки vorbis-dev. Проверено 6 сентября 2009.
  38. ^ Джек Моффитт ( 03.01.2001 ) vorbis-dev - наконец Таркин , список рассылки vorbis-dev на Xiph.org. Проверено 6 сентября 2009.
  39. ^ Крис Монтгомери (2001-02-11) Список рассылки разработчиков Таркина, проверено 6сентября 2009 г.
  40. ^ Майкл Смит (2005-08-29) Таркин . Проверено 6 сентября 2009.
  41. ^ Спецификация Дирака - интеграция видео, закодированного Дираком, в широко используемые форматы контейнеров. Архивировано 14 июня2010 г. на Wayback Machine. Получено 5 июля 2009 г.
  42. ^ "OggKate" . wiki.xiph.org . 2017 . Проверено 3 декабря 2019 .

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

  • Официальный сайт Xiph.Org Foundation - Ogg
  • RFC 3533 - формат инкапсуляции Ogg версии 0
  • Использование метаданных Creative Commons в контейнерах Ogg
  • Этимология Ogg из файла жаргона
  • Официальные компоненты Ogg QuickTime от Xiph.Org для iTunes и iMovie (Windows и Mac OS X)
  • Кодеки Windows Media Player для Vorbis, Speex, Theora и FLAC
  • ffmpeg2theora Кодировщик Ogg Theora, приложение командной строки для Linux и Win32