stringtranslate.com

Расширенное кодирование видео

Блок-схема слоя видеокодирования кодера H.264 с оценкой воспринимаемого качества

Advanced Video Coding ( AVC ), также известный как H.264 или MPEG-4 Part 10 , — это стандарт сжатия видео, основанный на блочно-ориентированном кодировании с компенсацией движения . [2] Это, безусловно, наиболее часто используемый формат для записи, сжатия и распространения видеоконтента, используемый 91% разработчиков видеоиндустрии по состоянию на сентябрь 2019 года . [3] [4] Он поддерживает максимальное разрешение 8K UHD . [5] [6]

Целью проекта H.264/AVC было создание стандарта, способного обеспечить хорошее качество видео при существенно более низких скоростях передачи данных , чем предыдущие стандарты (т. е. половина или меньше скорости передачи данных MPEG-2 , H.263 или MPEG-4 Part 2 ), без увеличения сложности конструкции настолько, что это стало бы непрактичным или чрезмерно дорогим для внедрения. Это было достигнуто с помощью таких функций, как целочисленное дискретное косинусное преобразование с уменьшенной сложностью (целочисленное DCT), [7] сегментация с переменным размером блока и многокадровое межкадровое предсказание . Дополнительной целью было обеспечение достаточной гибкости, чтобы стандарт мог применяться к широкому спектру приложений в самых разных сетях и системах, включая низкие и высокие скорости передачи данных, видео с низким и высоким разрешением, вещание , хранение DVD , пакетные сети RTP / IP и системы мультимедийной телефонии ITU-T . Стандарт H.264 можно рассматривать как «семейство стандартов», состоящее из ряда различных профилей, хотя его «Высокий профиль» является наиболее часто используемым форматом. Конкретный декодер декодирует по крайней мере один, но не обязательно все профили. Стандарт описывает формат закодированных данных и то, как данные декодируются, но он не определяет алгоритмы кодирования видео — это остается открытым вопросом для разработчиков кодировщиков, которые могут выбирать сами, и было разработано большое количество схем кодирования. H.264 обычно используется для сжатия с потерями , хотя также возможно создавать действительно закодированные без потерь области внутри закодированных с потерями изображений или поддерживать редкие случаи использования, для которых все кодирование происходит без потерь.

H.264 был стандартизирован Группой экспертов по кодированию видео ITU-T (VCEG) Исследовательской группы 16 совместно с Группой экспертов по движущимся изображениям ISO/IEC JTC 1 (MPEG). Проектное партнерство известно как Объединенная группа по видео (JVT). Стандарт ITU-T H.264 и стандарт ISO/IEC MPEG-4  AVC (формально ISO/IEC 14496-10 – MPEG-4 Часть 10, Расширенное кодирование видео) поддерживаются совместно, поэтому они имеют одинаковое техническое содержание. Окончательная работа над проектом первой версии стандарта была завершена в мае 2003 года, и в последующих редакциях были добавлены различные расширения его возможностей. Высокоэффективное кодирование видео (HEVC), также известное как H.265 и MPEG-H Часть 2, является преемником H.264/MPEG-4 AVC, разработанного теми же организациями, в то время как более ранние стандарты все еще широко используются.

H.264, пожалуй, наиболее известен как наиболее часто используемый формат кодирования видео на Blu-ray Discs . Он также широко используется в потоковых интернет-источниках, таких как видео с Netflix , Hulu , Amazon Prime Video , Vimeo , YouTube и iTunes Store , веб-программном обеспечении, таком как Adobe Flash Player и Microsoft Silverlight , а также в различных HDTV- трансляциях по наземным ( ATSC , ISDB-T , DVB-T или DVB-T2 ), кабельным ( DVB-C ) и спутниковым ( DVB-S и DVB-S2 ) системам.

H.264 ограничен патентами , принадлежащими различным сторонам. Лицензия, охватывающая большинство (но не все [ нужна ссылка ] ) патентов, существенных для H.264, администрируется патентным пулом , ранее администрируемым MPEG LA . Via Licensing Corp приобрела MPEG LA в апреле 2023 года и сформировала новую компанию по администрированию патентного пула под названием Via Licensing Alliance . [8] Коммерческое использование запатентованных технологий H.264 требует выплаты роялти Via и другим владельцам патентов. MPEG LA разрешила свободное использование технологий H.264 для потоковой передачи интернет-видео, которое является бесплатным для конечных пользователей, и Cisco выплачивала роялти MPEG LA от имени пользователей двоичных файлов для своего кодировщика H.264 с открытым исходным кодом openH264 .

Нейминг

Название H.264 соответствует соглашению об именовании ITU-T , где Рекомендациям присваивается буква, соответствующая их серии, и номер рекомендации в серии. H.264 является частью «Рекомендаций серии H: Аудиовизуальные и мультимедийные системы». H.264 далее подразделяется на «H.200-H.499: Инфраструктура аудиовизуальных услуг» и «H.260-H.279: Кодирование движущегося видео». [9] Название MPEG-4 AVC относится к соглашению об именовании в ISO / IEC MPEG , где стандарт является частью 10 ISO/IEC 14496, который представляет собой набор стандартов, известный как MPEG-4. Стандарт был разработан совместно в партнерстве VCEG и MPEG, после более ранней разработки в ITU-T как проекта VCEG под названием H.26L. Таким образом, для обозначения стандарта обычно используются такие названия, как H.264/AVC, AVC/H.264, H.264/MPEG-4 AVC или MPEG-4/H.264 AVC, чтобы подчеркнуть общее наследие. Иногда его также называют «кодеком JVT» в честь организации Joint Video Team (JVT), которая его разработала. (Такое партнерство и множественное наименование не редкость. Например, стандарт сжатия видео, известный как MPEG-2, также возник в результате партнерства между MPEG и ITU-T, где видео MPEG-2 известно сообществу ITU-T как H.262. [10] ) Некоторые программы (например, медиаплеер VLC ) внутренне идентифицируют этот стандарт как AVC1.

История

Общая история

В начале 1998 года Группа экспертов по кодированию видео (VCEG – ITU-T SG16 Q.6) опубликовала призыв к подаче предложений по проекту под названием H.26L, целью которого было удвоить эффективность кодирования (что означает сокращение вдвое скорости передачи данных, необходимой для заданного уровня точности) по сравнению с любыми другими существующими стандартами кодирования видео для широкого спектра приложений. VCEG возглавлял Гэри Салливан ( Microsoft , ранее PictureTel , США). Первый проект дизайна этого нового стандарта был принят в августе 1999 года. В 2000 году Томас Виганд ( Институт Генриха Герца , Германия) стал сопредседателем VCEG.

В декабре 2001 года VCEG и Moving Picture Experts Group ( MPEG  – ISO/IEC JTC 1/SC 29 /WG 11) сформировали Joint Video Team (JVT) с уставом на завершение стандарта видеокодирования. [11] Официальное утверждение спецификации произошло в марте 2003 года. JVT возглавляли Гэри Салливан , Томас Виганд и Аджай Лутра ( Motorola , США; позже Arris , США). В июле 2004 года был завершен проект Fidelity Range Extensions (FRExt). С января 2005 года по ноябрь 2007 года JVT работала над расширением H.264/AVC в сторону масштабируемости с помощью Приложения (G), называемого Scalable Video Coding (SVC). Команда управления JVT была расширена Йенсом-Райнером Омом ( RWTH Aachen University , Германия). С июля 2006 по ноябрь 2009 года JVT работал над Multiview Video Coding (MVC), расширением H.264/AVC в сторону 3D-телевидения и телевидения с ограниченным диапазоном свободной точки обзора . Эта работа включала разработку двух новых профилей стандарта: Multiview High Profile и Stereo High Profile.

В ходе разработки стандарта были разработаны дополнительные сообщения для содержания дополнительной информации об улучшении (SEI). Сообщения SEI могут содержать различные типы данных, которые указывают синхронизацию видеоизображений или описывают различные свойства кодированного видео или то, как его можно использовать или улучшить. Также определены сообщения SEI, которые могут содержать произвольные пользовательские данные. Сообщения SEI не влияют на основной процесс декодирования, но могут указывать, как рекомендуется постобрабатывать или отображать видео. Некоторые другие высокоуровневые свойства видеоконтента передаются в информации об удобстве использования видео (VUI), например, указание цветового пространства для интерпретации видеоконтента. По мере разработки новых цветовых пространств, таких как для видео с высоким динамическим диапазоном и широкой цветовой гаммой , были добавлены дополнительные идентификаторы VUI для их обозначения.

Расширения ассортимента Fidelity и профессиональные профили

Стандартизация первой версии H.264/AVC была завершена в мае 2003 года. В первом проекте по расширению исходного стандарта JVT затем разработала то, что называлось Fidelity Range Extensions (FRExt). Эти расширения позволили кодировать видео более высокого качества, поддерживая повышенную точность битовой глубины выборки и цветовую информацию с более высоким разрешением, включая структуры выборки, известные как Y′C B C R 4:2:2 (также известные как YUV 4:2:2 ) и 4:4:4. Несколько других функций также были включены в проект FRExt, такие как добавление целочисленного дискретного косинусного преобразования 8×8 (целочисленное DCT) с адаптивным переключением между преобразованиями 4×4 и 8×8, матрицы весовых коэффициентов квантования на основе восприятия, определяемые кодером, эффективное межкадровое кодирование без потерь и поддержка дополнительных цветовых пространств. Проектные работы по проекту FRExt были завершены в июле 2004 года, а чертежные работы по ним — в сентябре 2004 года.

Затем были разработаны еще пять новых профилей (см. версию 7 ниже), предназначенных в первую очередь для профессиональных приложений, в которых добавлена ​​поддержка расширенного цветового пространства, определены дополнительные индикаторы соотношения сторон, определены два дополнительных типа «дополнительной информации об улучшении» (подсказка после фильтра и тональное отображение) и отменен один из предыдущих профилей FRExt (профиль High 4:4:4), который, согласно отзывам отрасли [ кем? ], должен был быть разработан иначе.

Масштабируемое кодирование видео

Следующей важной функцией, добавленной в стандарт, было масштабируемое кодирование видео (SVC). Указанное в Приложении G к H.264/AVC, SVC позволяет создавать битовые потоки, содержащие слои подпотоков битов, которые также соответствуют стандарту, включая один такой битовый поток, известный как «базовый слой», который может быть декодирован кодеком H.264/AVC , который не поддерживает SVC. Для масштабируемости временного битового потока (т. е. наличия подпотока битов с меньшей временной частотой дискретизации, чем основной битовый поток) полные блоки доступа удаляются из битового потока при получении подпотока битов. В этом случае синтаксис высокого уровня и опорные изображения интерпредсказания в битовом потоке строятся соответствующим образом. С другой стороны, для пространственной и качественной масштабируемости битового потока (т. е. наличия подпотока битов с более низким пространственным разрешением/качеством, чем основной битовый поток), NAL ( уровень абстракции сети ) удаляется из битового потока при получении подпотока битов. В этом случае для эффективного кодирования обычно используется межслойное предсказание (т. е. предсказание сигнала с более высоким пространственным разрешением/качеством из данных сигнала с более низким пространственным разрешением/качеством). Расширения Scalable Video Coding были завершены в ноябре 2007 года.

Многопроекционное кодирование видео

Следующей важной функцией, добавленной в стандарт, было Multiview Video Coding (MVC). Указанный в Приложении H к H.264/AVC, MVC позволяет создавать потоки битов, которые представляют более одного вида видеосцены. Важным примером этой функциональности является стереоскопическое 3D- видеокодирование. В работе MVC были разработаны два профиля: Multiview High profile поддерживает произвольное количество видов, а Stereo High profile разработан специально для двухвидового стереоскопического видео. Расширения Multiview Video Coding были завершены в ноябре 2009 года.

Стереоскопическое кодирование 3D-AVC и MFC

Позднее были разработаны дополнительные расширения, включающие кодирование 3D-видео с совместным кодированием карт глубины и текстур (называемое 3D-AVC), стереоскопическое кодирование с поддержкой кадров с несколькими разрешениями (MFC) и кодирование 3D-MFC, различные дополнительные комбинации функций, а также более высокие размеры и частоту кадров.

Версии

Версии стандарта H.264/AVC включают следующие завершенные пересмотры, исправления и поправки (даты являются датами окончательного утверждения в ITU-T, в то время как даты окончательного утверждения «Международного стандарта» в ISO/IEC несколько отличаются и в большинстве случаев немного позже). Каждая версия представляет изменения относительно следующей более низкой версии, которая интегрирована в текст.

Владельцы патентов

Следующие организации владеют одним или несколькими патентами в патентном пуле MPEG LA H.264/AVC .

Приложения

Формат видео H.264 имеет очень широкий спектр применения, который охватывает все формы цифрового сжатого видео от низкоскоростных потоковых приложений Интернета до вещания HDTV и приложений цифрового кино с почти без потерь кодирования. При использовании H.264 сообщается об экономии битрейта на 50% или более по сравнению с MPEG-2 Часть 2. Например, сообщается, что H.264 обеспечивает такое же качество цифрового спутникового телевидения, как и текущие реализации MPEG-2 с менее чем половиной битрейта, при этом текущие реализации MPEG-2 работают на скорости около 3,5 Мбит/с, а H.264 — всего на 1,5 Мбит/с. [33] Sony утверждает, что режим записи AVC со скоростью 9 Мбит/с эквивалентен качеству изображения формата HDV , который использует приблизительно 18–25 Мбит/с. [34]

Для обеспечения совместимости и беспроблемного принятия H.264/AVC многие органы по стандартизации внесли поправки или дополнения в свои стандарты, связанные с видео, чтобы пользователи этих стандартов могли использовать H.264/AVC. Как формат Blu-ray Disc , так и ныне прекращенный формат HD DVD включают H.264/AVC High Profile как один из трех обязательных форматов сжатия видео. Проект цифрового видеовещания ( DVB ) одобрил использование H.264/AVC для вещательного телевидения в конце 2004 года.

Комитет по стандартам передовых телевизионных систем (ATSC) в США одобрил использование H.264/AVC для вещательного телевидения в июле 2008 года, хотя стандарт пока не используется для фиксированных трансляций ATSC в США. [35] [36] Он также был одобрен для использования с более новым стандартом ATSC-M/H (мобильные/портативные), использующим части AVC и SVC H.264. [37]

Рынки систем охранного телевидения и видеонаблюдения включили эту технологию во многие продукты.

Многие распространенные цифровые зеркальные фотокамеры используют в качестве собственного формата записи видео H.264, упакованное в контейнеры QuickTime MOV.

Производные форматы

AVCHD — это формат записи высокой четкости, разработанный компаниями Sony и Panasonic , который использует H.264 (соответствующий H.264, но с добавлением дополнительных функций и ограничений, специфичных для конкретного приложения).

AVC-Intra — формат внутрикадрового сжатия, разработанный Panasonic .

XAVC — это формат записи, разработанный Sony, который использует уровень 5.2 H.264/MPEG-4 AVC, который является наивысшим уровнем, поддерживаемым этим видеостандартом. [38] [39] XAVC может поддерживать разрешение 4K (4096 × 2160 и 3840 × 2160) со скоростью до 60  кадров в секунду (кадр/с). [38] [39] Sony объявила, что камеры, которые поддерживают XAVC, включают две камеры CineAlta — Sony PMW-F55 и Sony PMW-F5. [40] Sony PMW-F55 может записывать XAVC с разрешением 4K со скоростью 30 кадров в секунду при 300 Мбит/с и разрешением 2K со скоростью 30 кадров в секунду при 100 Мбит/с. [41] XAVC может записывать разрешение 4K со скоростью 60 кадров в секунду с дискретизацией цветности 4:2:2 при 600 Мбит/с. [42] [43]

Дизайн

Функции

Блок-схема H.264

H.264/AVC/MPEG-4 Часть 10 содержит ряд новых функций, которые позволяют ему сжимать видео гораздо более эффективно, чем старые стандарты, и обеспечивать большую гибкость для применения в самых разных сетевых средах. В частности, некоторые из таких ключевых функций включают:

Эти методы, наряду с несколькими другими, помогают H.264 работать значительно лучше, чем любой предыдущий стандарт в самых разных обстоятельствах и в самых разных прикладных средах. H.264 часто может работать радикально лучше, чем видео MPEG-2 — обычно получая то же качество при половине скорости передачи данных или меньше, особенно на видеоконтенте с высокой скоростью передачи данных и высоким разрешением. [49]

Как и другие стандарты видео ISO/IEC MPEG, H.264/AVC имеет реализацию эталонного программного обеспечения, которую можно бесплатно загрузить. [50] Его главная цель — дать примеры функций H.264/AVC, а не быть полезным приложением как таковым . Некоторые работы по проектированию эталонного оборудования также проводились в Moving Picture Experts Group . Вышеупомянутые аспекты включают функции во всех профилях H.264. Профиль для кодека — это набор функций этого кодека, определенных для соответствия определенному набору спецификаций предполагаемых приложений. Это означает, что многие из перечисленных функций не поддерживаются в некоторых профилях. Различные профили H.264/AVC обсуждаются в следующем разделе.

Профили

Стандарт определяет несколько наборов возможностей, которые называются профилями , нацеленными на определенные классы приложений. Они объявляются с использованием кода профиля (profile_idc) и иногда набора дополнительных ограничений, применяемых в кодере. Код профиля и указанные ограничения позволяют декодеру распознавать требования для декодирования этого конкретного битового потока. (И во многих системных средах разрешено использовать только один или два профиля, поэтому декодерам в этих средах не нужно беспокоиться о распознавании менее часто используемых профилей.) Безусловно, наиболее часто используемым профилем является High Profile.

Профили для немасштабируемых 2D-видеоприложений включают в себя следующее:

Ограниченный базовый профиль (CBP, 66 с набором ограничений 1)
В первую очередь для недорогих приложений этот профиль чаще всего используется в видеоконференциях и мобильных приложениях. Он соответствует подмножеству функций, которые являются общими для профилей Baseline, Main и High.
Базовый профиль (БП, 66)
В первую очередь для недорогих приложений, которым требуется дополнительная устойчивость к потере данных, этот профиль используется в некоторых приложениях видеоконференций и мобильных приложениях. Этот профиль включает все функции, поддерживаемые в Constrained Baseline Profile, а также три дополнительные функции, которые могут использоваться для устойчивости к потере (или для других целей, таких как многоточечная композиция видеопотока с низкой задержкой). Важность этого профиля несколько снизилась с момента определения Constrained Baseline Profile в 2009 году. Все битовые потоки Constrained Baseline Profile также считаются битовыми потоками Baseline Profile, поскольку эти два профиля используют одно и то же значение кода идентификатора профиля.
Расширенный профиль (XP, 88)
Этот профиль, задуманный как профиль потокового видео, имеет относительно высокую степень сжатия и некоторые дополнительные приемы для обеспечения устойчивости к потерям данных и переключению потоков сервера.
Основной профиль (МП, 77)
Этот профиль используется для цифрового телевидения стандартной четкости, которое использует формат MPEG-4, как определено в стандарте DVB. [51] Однако он не используется для телевидения высокой четкости, поскольку важность этого профиля сошла на нет, когда в 2004 году для этого приложения был разработан High Profile.
Высокий профиль (HiP, 100)
Основной профиль для приложений вещания и хранения на дисках, в частности для приложений телевидения высокой четкости (например, этот профиль принят в формате хранения Blu-ray Disc и службе вещания DVB HDTV).
Прогрессивный высокий профиль (PHiP, 100 с набором ограничений 4)
Аналогично High profile, но без поддержки функций полевого кодирования.
Ограниченный высокий профиль (100 с набором ограничений 4 и 5)
Аналогично профилю Progressive High, но без поддержки B-срезов (двойного предсказания).
Высокий 10 профиль (Hi10P, 110)
Выходя за рамки типичных возможностей массовых потребительских продуктов, этот профиль создан на основе профиля High Profile, добавляя поддержку до 10 бит на выборку точности декодированного изображения.
Высокий профиль 4:2:2 (Hi422P, 122)
Этот профиль, ориентированный в первую очередь на профессиональные приложения, использующие чересстрочное видео, создан на основе профиля High 10, добавляя поддержку формата дискретизации цвета 4:2:2 , используя при этом до 10 бит на выборку точности декодированного изображения.
Высокий 4:4:4 предиктивный профиль (Hi444PP, 244)
Этот профиль создан на основе профиля High 4:2:2, поддерживая дискретизацию цвета до 4:4:4, до 14 бит на выборку, а также эффективное кодирование областей без потерь и кодирование каждого изображения как трех отдельных цветовых плоскостей.

Для камкордеров, редактирования и профессиональных приложений стандарт содержит четыре дополнительных профиля Intra-frame -only, которые определяются как простые подмножества других соответствующих профилей. Они в основном предназначены для профессиональных приложений (например, камеры и системы редактирования):

Высокий 10 Intra Profile (110 с набором ограничений 3)
Профиль High 10 предназначен только для использования внутри компании.
Высокий профиль 4:2:2 Intra (122 с набором ограничений 3)
Профиль High 4:2:2 предназначен только для использования внутри сети.
Высокий профиль 4:4:4 Intra (244 с набором ограничений 3)
Профиль High 4:4:4 предназначен только для использования внутри сети.
CAVLC 4:4:4 Внутренний профиль (44)
Профиль High 4:4:4 ограничен использованием только Intra и энтропийным кодированием CAVLC (т. е. не поддерживает CABAC).

В результате расширения масштабируемого видеокодирования (SVC) стандарт содержит пять дополнительных масштабируемых профилей , которые определяются как комбинация профиля H.264/AVC для базового уровня (идентифицируется вторым словом в названии масштабируемого профиля) и инструментов, которые обеспечивают масштабируемое расширение:

Масштабируемый базовый профиль (83)
В первую очередь ориентированный на видеоконференции, мобильные приложения и приложения наблюдения, этот профиль строится поверх профиля Constrained Baseline, которому должен соответствовать базовый слой (подмножество битового потока). Для инструментов масштабируемости включено подмножество доступных инструментов.
Масштабируемый ограниченный базовый профиль (83 с набором ограничений 5)
Подмножество масштабируемого базового профиля, предназначенное в первую очередь для приложений связи в реальном времени.
Масштабируемый высокий профиль (86)
Этот профиль, предназначенный в первую очередь для приложений вещания и потоковой передачи, создан на основе профиля H.264/AVC High Profile, которому должен соответствовать базовый уровень.
Масштабируемый ограниченный высокий профиль (86 с набором ограничений 5)
Подмножество масштабируемого высокого профиля, предназначенное в первую очередь для приложений связи в реальном времени.
Масштабируемый высокий внутренний профиль (86 с набором ограничений 3)
Этот профиль, ориентированный в первую очередь на производственные приложения, представляет собой масштабируемый высокий профиль, ограниченный исключительно внутрикорпоративным использованием.

В результате расширения Multiview Video Coding (MVC) стандарт содержит два профиля multiview :

Стерео Высокий Профиль (128)
Этот профиль предназначен для двухракурсного стереоскопического 3D-видео и объединяет инструменты профиля High с возможностями межракурсного прогнозирования расширения MVC.
Многоэкранный Высокий Профиль (118)
Этот профиль поддерживает два или более видов с использованием как межвидового (временного), так и межвидового предсказания MVC, но не поддерживает полевые изображения и адаптивное к макроблокам кодирование кадра-поля.

Расширение Multi-resolution Frame-Compatible (MFC) добавило еще два профиля:

MFC Высокий профиль (134)
Профиль для стереоскопического кодирования с двухслойным повышением разрешения.
MFC Глубина Высокий профиль (135)

Расширение 3D-AVC добавило еще два профиля:

Многоракурсный глубинный высокий профиль (138)
Этот профиль поддерживает совместное кодирование информации о карте глубины и видеотекстуре для улучшенного сжатия 3D-видеоконтента.
Улучшенный многоракурсный глубинный высокий профиль (139)
Улучшенный профиль для комбинированного многовидового кодирования с информацией о глубине.

Поддержка функций в определенных профилях

Уровни

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

Максимальная скорость передачи данных для профиля High Profile в 1,25 раза больше, чем для профилей Constrained Baseline, Baseline, Extended и Main Profile; в 3 раза больше для Hi10P и в 4 раза больше для Hi422P/Hi444PP.

Количество выборок яркости в 16×16=256 раз больше количества макроблоков (а количество выборок яркости в секунду в 256 раз больше количества макроблоков в секунду).

Буферизация декодированных изображений

Ранее закодированные изображения используются кодерами H.264/AVC для прогнозирования значений образцов в других изображениях. Это позволяет кодеру принимать эффективные решения о наилучшем способе кодирования данного изображения. В декодере такие изображения сохраняются в виртуальном буфере декодированных изображений (DPB). Максимальная емкость DPB в единицах кадров (или пар полей), как показано в скобках в правом столбце таблицы выше, может быть вычислена следующим образом:

DpbCapacity = min(floor( MaxDpbMbs / ( PicWidthInMbs * FrameHeightInMbs )), 16)

Где MaxDpbMbs — это постоянное значение, указанное в таблице ниже как функция номера уровня, а PicWidthInMbs и FrameHeightInMbs — это ширина изображения и высота кадра для кодированных видеоданных, выраженные в единицах макроблоков (округленные до целых значений и учитывающие обрезку и спаривание макроблоков, когда это применимо). Эта формула указана в разделах A.3.1.h и A.3.2.f издания стандарта 2017 года. [28]

Например, для изображения HDTV шириной 1920 сэмплов (PicWidthInMbs = 120) и 1080 образцов в высоту (FrameHeightInMbs = 68), декодер уровня 4 имеет максимальную емкость хранения DPBпол(32768/(120*68))= 4 кадра (или 8 полей). Таким образом, в таблице выше в правом столбце строки для уровня 4 с размером кадра 1920×1080 указано значение 4 в скобках.

Текущее декодируемое изображение не включается в расчет заполненности DPB (если только кодер не указал, что оно должно быть сохранено для использования в качестве ссылки для декодирования других изображений или для отложенного вывода). Таким образом, декодер должен фактически иметь достаточный объем памяти для обработки (по крайней мере) одного кадра больше , чем максимальная емкость DPB, рассчитанная выше.

Реализации

Статистика видео YouTube с видеокодеком AVC (H.264) и аудиоформатом Opus

В 2009 году рабочая группа HTML5 разделилась на сторонников Ogg Theora , свободного видеоформата, который, как считается, не обременен патентами, и H.264, который содержит запатентованную технологию. Еще в июле 2009 года Google и Apple, как сообщалось, поддерживали H.264, в то время как Mozilla и Opera поддерживали Ogg Theora (теперь Google, Mozilla и Opera поддерживают Theora и WebM с VP8 ). [52] Microsoft с выпуском Internet Explorer 9 добавила поддержку видео HTML 5, закодированного с помощью H.264. На симпозиуме Gartner/ITXpo в ноябре 2010 года генеральный директор Microsoft Стив Балмер ответил на вопрос «HTML 5 или Silverlight ?», сказав: «Если вы хотите сделать что-то универсальное, нет никаких сомнений, что мир переходит на HTML5». [53] В январе 2011 года Google объявила, что прекращает поддержку H.264 в своем браузере Chrome и поддерживает как Theora, так и WebM / VP8 , чтобы использовать только открытые форматы. [54]

18 марта 2012 года Mozilla объявила о поддержке H.264 в Firefox на мобильных устройствах из-за распространенности видео, закодированного в H.264, и повышенной энергоэффективности использования выделенного оборудования декодера H.264, распространенного на таких устройствах. [55] 20 февраля 2013 года Mozilla реализовала поддержку декодирования H.264 в Firefox на Windows 7 и выше. Эта функция основана на встроенных библиотеках декодирования Windows. [56] Firefox 35.0, выпущенный 13 января 2015 года, поддерживает H.264 на OS X 10.6 и выше. [57]

30 октября 2013 года Роуэн Троллоп из Cisco Systems объявил, что Cisco выпустит как двоичные файлы, так и исходный код видеокодека H.264 под названием OpenH264 под лицензией Simplified BSD и выплатит все лицензионные отчисления за его использование в MPEG LA для любых программных проектов, которые используют предварительно скомпилированные двоичные файлы Cisco, таким образом сделав двоичные файлы Cisco OpenH264 бесплатными для использования. Однако любые программные проекты, которые используют исходный код Cisco вместо его двоичных файлов, будут нести юридическую ответственность за выплату всех лицензионных отчислений в MPEG LA. Целевые архитектуры ЦП включают x86 и ARM, а целевые операционные системы включают Linux, Windows XP и более поздние версии, Mac OS X и Android; iOS, в частности, отсутствовала в этом списке, поскольку она не позволяет приложениям извлекать и устанавливать двоичные модули из Интернета. [58] [59] [60] Также 30 октября 2013 года Брендан Эйх из Mozilla написал, что компания будет использовать двоичные файлы Cisco в будущих версиях Firefox для добавления поддержки H.264 в Firefox, где кодеки платформы недоступны. [61] Cisco опубликовала исходный код OpenH264 9 декабря 2013 года. [62]

Хотя iOS не поддерживалась в программном обеспечении Cisco версии 2013 года, Apple обновила свой Video Toolbox Framework с помощью iOS 8 (выпущенной в сентябре 2014 года), чтобы обеспечить прямой доступ к аппаратному кодированию и декодированию видео H.264/AVC. [59]

Программные кодировщики

Аппаратное обеспечение

Поскольку кодирование и декодирование H.264 требует значительной вычислительной мощности в определенных типах арифметических операций, программные реализации, работающие на универсальных процессорах, обычно менее энергоэффективны. Однако новейшие [ когда? ] четырехъядерные универсальные процессоры x86 обладают достаточной вычислительной мощностью для выполнения кодирования SD и HD в реальном времени. Эффективность сжатия зависит от реализации алгоритмов видео, а не от того, используется ли аппаратная или программная реализация. Поэтому разница между аппаратной и программной реализацией заключается скорее в энергоэффективности, гибкости и стоимости. Для повышения энергоэффективности и снижения форм-фактора оборудования может использоваться специализированное оборудование либо для полного процесса кодирования или декодирования, либо для ускорения в среде, контролируемой процессором.

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

Процессоры Intel « Sandy Bridge » Core i3/i5/i7 второго поколения , представленные на выставке CES ( Consumer Electronics Show ) в январе 2011 года, предлагают встроенный аппаратный кодер Full HD H.264, известный как Intel Quick Sync Video . [68] [69]

Аппаратный кодер H.264 может представлять собой ASIC или FPGA .

Кодеры ASIC с функциональностью кодера H.264 доступны у многих различных полупроводниковых компаний, но основная конструкция, используемая в ASIC, обычно лицензируется у одной из нескольких компаний, таких как Chips&Media , Allegro DVT, On2 (ранее Hantro, приобретенная Google), Imagination Technologies , NGCodec. Некоторые компании предлагают как продукты FPGA, так и продукты ASIC. [70]

Texas Instruments производит линейку ядер ARM + DSP, которые выполняют кодирование DSP H.264 BP 1080p со скоростью 30 кадров в секунду. [71] Это обеспечивает гибкость в отношении кодеков (которые реализованы как высокооптимизированный код DSP), будучи при этом более эффективным, чем программное обеспечение на обычном ЦП.

Лицензирование

В странах, где патенты на программные алгоритмы поддерживаются, поставщики и коммерческие пользователи продуктов, использующих H.264/AVC, должны платить патентные лицензионные отчисления за запатентованную технологию, которую используют их продукты. [72] Это также относится к базовому профилю. [73]

Частная организация, известная как MPEG LA , которая никак не связана с организацией по стандартизации MPEG, управляет лицензиями на патенты, применяемые к этому стандарту, а также другими патентными пулами , такими как MPEG-4 Part 2 Video, HEVC и MPEG-DASH. Владельцами патентов являются Fujitsu , Panasonic , Sony , Mitsubishi , Apple , Columbia University , KAIST , Dolby , Google , JVC Kenwood , LG Electronics , Microsoft , NTT Docomo , Philips , Samsung , Sharp , Toshiba и ZTE , [74] хотя большинство патентов в пуле принадлежат Panasonic (1197 патентов), Godo Kaisha IP Bridge (1130 патентов) и LG Electronics (990 патентов). [75]

26 августа 2010 года MPEG LA объявила, что роялти не будут взиматься за закодированное в H.264 интернет-видео, которое является бесплатным для конечных пользователей. [76] Все остальные роялти остаются в силе, такие как роялти за продукты, которые декодируют и кодируют видео H.264, а также операторам бесплатного телевидения и каналов подписки. [77] Условия лицензии обновляются блоками по 5 лет. [78]

Поскольку первая версия стандарта была завершена в мае 2003 года (21 год назад), а наиболее часто используемый профиль (Высокий профиль) был завершен в июне 2004 года [ необходима ссылка ] (20 лет назад), некоторые из соответствующих патентов к настоящему времени уже истекли, [75] в то время как другие все еще действуют в юрисдикциях по всему миру, а один из патентов США в пуле MPEG LA H.264 (выдан в 2016 году, приоритет с 2001 года) действителен по крайней мере до ноября 2030 года. [79]

В 2005 году Qualcomm подала в суд на Broadcom в Окружной суд США, утверждая, что Broadcom нарушила два ее патента, выпустив продукты, соответствующие стандарту сжатия видео H.264. [80] В 2007 году Окружной суд постановил, что патенты не подлежат принудительному исполнению, поскольку Qualcomm не раскрыла их JVT до выпуска стандарта H.264 в мае 2003 года. [80] В декабре 2008 года Апелляционный суд США по федеральному округу подтвердил постановление Окружного суда о том, что патенты не подлежат принудительному исполнению, но вернул дело в Окружной суд с указанием ограничить сферу неприменимости продуктами, соответствующими H.264. [80]

В октябре 2023 года Nokia подала в суд на HP и Amazon за нарушение патента H.264/H.265 в США, Великобритании и других странах. [81]

Смотрите также

Ссылки

  1. ^ MPEG-4, Advanced Video Coding (часть 10) (H.264) (полный черновик). Устойчивость цифровых форматов. Вашингтон, округ Колумбия: Библиотека Конгресса. 5 декабря 2011 г. Получено 1 декабря 2021 г.
  2. ^ "H.264: Расширенное кодирование видео для общих аудиовизуальных услуг". www.itu.int . Архивировано из оригинала 31 октября 2019 г. Получено 22 ноября 2019 г.
  3. ^ "Video Developer Report 2018" (PDF) . Bitmovin . Сентябрь 2019.
  4. ^ "Отчет разработчика видео 2019". Bitmovin . Сентябрь 2019.
  5. ^ "Доставка 8K с использованием AVC/H.264". Mystery Box . Архивировано из оригинала 25 марта 2021 г. Получено 23 августа 2017 г.
  6. ^ ab Wang, Hanli; Kwong, S.; Kok, C. (2006). "Эффективный алгоритм прогнозирования целочисленных коэффициентов DCT для оптимизации H.264/AVC". IEEE Transactions on Circuits and Systems for Video Technology . 16 (4): 547–552. doi :10.1109/TCSVT.2006.871390. S2CID  2060937.
  7. ^ ab Thomson, Gavin; Shah, Athar (2017). "Introducing HEIF and HEVC" (PDF) . Apple Inc. Получено 5 августа 2019 г. .
  8. ^ Озер, Ян (8 мая 2023 г.), Via LA's Heath Hoglund Talks MPEG LA/Via Licensing Patent Pool Merger, StreamingMedia.com
  9. ^ «Рекомендации МСЭ-Т». МСЭ . Проверено 1 ноября 2022 г.
  10. ^ "H.262: Информационные технологии — Общее кодирование движущихся изображений и связанной с ними аудиоинформации: Видео" . Получено 15 апреля 2007 г.
  11. ^ Объединенная видеогруппа, веб-сайт МСЭ-Т .
  12. ^ «Рекомендация ITU-T H.264 (05/2003)» . МСЭ. 30 мая 2003 года . Проверено 18 апреля 2013 г.
  13. ^ «Рекомендация ITU-T H.264 (05/2003) Кор. 1 (05/2004)» . МСЭ. 7 мая 2004 года . Проверено 18 апреля 2013 г.
  14. ^ «Рекомендация ITU-T H.264 (03/2005)» . МСЭ. 1 марта 2005 года . Проверено 18 апреля 2013 г.
  15. ^ «Рекомендация ITU-T H.264 (2005 г.), Cor. 1 (09/2005)» . МСЭ. 13 сентября 2005 года . Проверено 18 апреля 2013 г.
  16. ^ ab "ITU-T Recommendation H.264 (2005) Amd. 1 (06/2006)". ITU. 13 июня 2006 г. Получено 18 апреля 2013 г.
  17. ^ "ITU-T Recommendation H.264 (2005) Amd. 2 (04/2007)". ITU. 6 апреля 2007 г. Получено 18 апреля 2013 г.
  18. ^ «Рекомендация ITU-T H.264 (11/2007)» . МСЭ. 22 ноября 2007 года . Проверено 18 апреля 2013 г.
  19. ^ «Рекомендация ITU-T H.264 (2007 г.), Кор. 1 (01/2009 г.)» . МСЭ. 13 января 2009 года . Проверено 18 апреля 2013 г.
  20. ^ ab «Рекомендация ITU-T H.264 (03/2009)» . МСЭ. 16 марта 2009 года . Проверено 18 апреля 2013 г.
  21. ^ ab «Рекомендация ITU-T H.264 (03/2010)» . МСЭ. 9 марта 2010 года . Проверено 18 апреля 2013 г.
  22. ^ ab «Рекомендация ITU-T H.264 (06/2011)» . МСЭ. 29 июня 2011 года . Проверено 18 апреля 2013 г.
  23. ^ «Рекомендация ITU-T H.264 (01/2012)» . МСЭ. 13 января 2012 года . Проверено 18 апреля 2013 г.
  24. ^ abcd «Рекомендация ITU-T H.264 (04/2013)» . МСЭ. 12 июня 2013 года . Проверено 16 июня 2013 г.
  25. ^ ab "ITU-T Recommendation H.264 (02/2014)". ITU. 28 ноября 2014 г. Получено 28 февраля 2016 г.
  26. ^ "ITU-T Recommendation H.264 (02/2016)". ITU. 13 февраля 2016 г. Получено 14 июня 2017 г.
  27. ^ "ITU-T Recommendation H.264 (10/2016)". ITU. 14 октября 2016 г. Получено 14 июня 2017 г.
  28. ^ abc "ITU-T Recommendation H.264 (04/2017)". ITU. 13 апреля 2017 г. См. таблицы A-1, A-6 и A-7 для табличных возможностей, зависящих от уровня . Получено 14 июня 2017 г.
  29. ^ "H.264: Расширенное кодирование видео для общих аудиовизуальных услуг - Версия 26 (Издание 13)". www.itu.int . 13 июня 2019 г. Архивировано из оригинала 4 ноября 2021 г. Получено 3 ноября 2021 г.
  30. ^ "H.264: Расширенное кодирование видео для общих аудиовизуальных услуг - Версия 27 (Издание 14)". www.itu.int . 22 августа 2021 г. Архивировано из оригинала 4 ноября 2021 г. Получено 3 ноября 2021 г.
  31. ^ ab "AVC/H.264 – Список патентов" (PDF) . MPEG LA . Получено 22 декабря 2022 г. .
  32. ^ "AVC/H.264 Licensors". MPEG-LA. Архивировано из оригинала 30 мая 2015 г. Получено 19 мая 2013 г.
  33. ^ Венгер и др. (февраль 2005 г.). "RFC 3984: Формат полезной нагрузки RTP для видео H.264". Ietf Datatracker : 2. doi :10.17487/RFC3984.
  34. ^ «Какой режим записи эквивалентен качеству изображения формата High Definition Video (HDV)?». Sony eSupport . Архивировано из оригинала 9 ноября 2017 г. Получено 8 декабря 2018 г.
  35. ^ "Стандарт ATSC A/72 Часть 1: Характеристики видеосистемы AVC в системе цифрового телевидения ATSC" (PDF) . Архивировано из оригинала (PDF) 7 августа 2011 г. . Получено 30 июля 2011 г. .
  36. ^ "ATSC Standard A/72 Part 2: AVC Video Transport Subsystem Characteristics" (PDF) . Архивировано из оригинала (PDF) 7 августа 2011 г. . Получено 30 июля 2011 г. .
  37. ^ "Стандарт ATSC A/153 Часть 7: Характеристики видеосистем AVC и SVC" (PDF) . Архивировано из оригинала (PDF) 26 июля 2011 г. . Получено 30 июля 2011 г. .
  38. ^ ab "Sony представляет новый формат записи XAVC для ускорения разработки 4K на профессиональном и потребительском рынках". Sony. 30 октября 2012 г. Получено 1 ноября 2012 г.
  39. ^ ab "Sony представляет новый формат записи XAVC для ускорения разработки 4K на профессиональном и потребительском рынках" (PDF) . Sony. 30 октября 2012 г. . Получено 1 ноября 2012 г. .[ постоянная мертвая ссылка ]
  40. Стив Дент (30 октября 2012 г.). «Sony выходит на Red-hunting с камкордерами PMW-F55 и PMW-F5 pro CineAlta 4K Super 35mm Sensor». Engadget . Получено 5 ноября 2012 г.
  41. ^ "F55 CineAlta 4K будущее, опережая график" (PDF) . Sony. 30 октября 2012 г. Архивировано из оригинала (PDF) 19 ноября 2012 г. Получено 1 ноября 2012 г.
  42. ^ "Сверхбыстрые карты памяти "SxS PRO+" преобразуют захват видео 4K". Sony. Архивировано из оригинала 8 марта 2013 г. Получено 5 ноября 2012 г.
  43. ^ "Сверхбыстрые карты памяти "SxS PRO+" преобразуют захват видео 4K" (PDF) . Sony. Архивировано из оригинала (PDF) 2 апреля 2015 г. . Получено 5 ноября 2012 г. .
  44. ^ ab Stanković, Radomir S.; Astola, Jaakko T. (2012). «Воспоминания о ранней работе в области DCT: интервью с KR Rao» (PDF) . Перепечатки из Early Days of Information Sciences . 60 : 17 . Получено 13 октября 2019 г. .
  45. ^ Квон, Сун-ён; Ли, Джу-кён; Чунг, Ки-дон (2005). «Коррекция полупикселей для транскодирования MPEG-2/H.264». Анализ и обработка изображений – ICIAP 2005. Конспект лекций по информатике. Том 3617. Springer Berlin Heidelberg. С. 576–583. doi : 10.1007/11553595_71 . ISBN 978-3-540-28869-5.
  46. ^ Британак, Владимир; Йип, Патрик К.; Рао, КР (2010). Дискретные косинусные и синусные преобразования: общие свойства, быстрые алгоритмы и целочисленные приближения. Elsevier . стр. ix, xiii, 1, 141–304. ISBN 9780080464640.
  47. ^ "Расширенный стандарт кодирования видео H.264/AVC: обзор и введение в расширения диапазона точности" (PDF) . Получено 30 июля 2011 г.
  48. ^ abc RFC 3984, стр.3
  49. Apple Inc. (26 марта 1999 г.). "H.264 FAQ". Apple. Архивировано из оригинала 7 марта 2010 г. Получено 17 мая 2010 г.
  50. ^ Карстен Сюринг. "H.264/AVC JM Reference Software Download". Iphome.hhi.de . Получено 17 мая 2010 г.
  51. ^ "TS 101 154 – V1.9.1 – Цифровое видеовещание (DVB); Спецификация для использования видео- и аудиокодирования в вещательных приложениях на основе транспортного потока MPEG-2" (PDF) . Получено 17 мая 2010 г.
  52. ^ "Расшифровка дебатов о видеокодеках HTML 5". Ars Technica . 6 июля 2009 г. Получено 12 января 2011 г.
  53. ^ "Стив Балмер, генеральный директор Microsoft, интервью на Gartner Symposium/ITxpo Orlando 2010". Gartnervideo. Ноябрь 2010. Архивировано из оригинала 30 октября 2021 г. Получено 12 января 2011 г.
  54. ^ "Поддержка видеокодеков HTML в Chrome". 11 января 2011 г. Получено 12 января 2011 г.
  55. ^ "Видео, мобильная связь и открытый Интернет". 18 марта 2012 г. Получено 20 марта 2012 г.
  56. ^ "WebRTC включен, поддержка H.264/MP3 в Win 7 по умолчанию, Metro UI для Windows 8 и многое другое – Основные моменты разработки Firefox". hacks.mozilla.org . mozilla. 20 февраля 2013 г. . Получено 15 марта 2013 г. .
  57. ^ "Firefox — Заметки (35.0)". Mozilla .
  58. ^ "Open-Sourced H.264 устраняет барьеры для WebRTC". 30 октября 2013 г. Архивировано из оригинала 6 июля 2015 г. Получено 1 ноября 2013 г.
  59. ^ ab "Часто задаваемые вопросы о проекте Cisco OpenH264" . Получено 26 сентября 2021 г. .
  60. ^ "OpenH264 Simplified BSD License". GitHub . 27 октября 2013 г. Получено 21 ноября 2013 г.
  61. ^ "Взаимодействие видео в Интернете получает импульс от кодека Cisco H.264". 30 октября 2013 г. Получено 1 ноября 2013 г.
  62. ^ "Обновленный README · cisco/openh264@59dae50". GitHub .
  63. ^ «Поддержка кодирования x264 4:0:0 (монохромный)», Получено 05.06.2019.
  64. ^ «Поддержка кодирования x264 4:2:2», Получено 05.06.2019.
  65. ^ «Поддержка кодирования x264 4:4:4», Получено 05.06.2019.
  66. ^ «Поддержка x264 для 9- и 10-битного кодирования», Получено 22-06-2011.
  67. ^ "x264 заменяет профиль High 4:4:4 без потерь на High 4:4:4 Predictive", Получено 22.06.2011.
  68. ^ "Краткое справочное руководство по созданию встроенных визуальных эффектов процессора Intel Core". Intel Software Network. 1 октября 2010 г. Получено 19 января 2011 г.
  69. ^ "Intel Quick Sync Video". www.intel.com. 1 октября 2010 г. Получено 19 января 2011 г.
  70. ^ "Design-reuse.com". Design-reuse.com. 1 января 1990 г. Получено 17 мая 2010 г.
  71. ^ "Категория:DM6467 - Википедия по встраиваемым процессорам Texas Instruments". Processors.wiki.ti.com. 12 июля 2011 г. Архивировано из оригинала 17 июля 2011 г. Получено 30 июля 2011 г.
  72. ^ "Портфель брифингов" (PDF) . www.mpegla.com .
  73. ^ "OMS Video, проект Sun's Open Media Commons Initiative". Архивировано из оригинала 11 мая 2010 г. Получено 26 августа 2008 г.
  74. ^ "Лицензиары, включенные в лицензию патентного портфеля AVC/H.264". MPEG LA . Получено 18 июня 2019 г.
  75. ^ ab "AVC/H.264 – Patent List". Через Licensing Alliance . Получено 28 апреля 2024 г.
  76. ^ «Лицензия MPEG LA AVC не будет взимать роялти за интернет-видео, которое является бесплатным для конечных пользователей в течение срока действия лицензии» (PDF) . MPEG LA. 26 августа 2010 г. Архивировано из оригинала (PDF) 7 ноября 2013 г. . Получено 26 августа 2010 г. .
  77. ^ Хачман, Марк (26 августа 2010 г.). «MPEG LA сокращает роялти за бесплатное веб-видео навсегда». pcmag.com . Получено 26 августа 2010 г. .
  78. ^ "AVC FAQ". MPEG LA. 1 августа 2002 г. Архивировано из оригинала 7 мая 2010 г. Получено 17 мая 2010 г.
  79. ^ "United States Patent 9,356,620 Baese, et al" . Получено 1 августа 2022 г.с самой ранней датой приоритета 14 сентября 2001 года имеет продление срока на 2998 дней.
  80. ^ abc См. Qualcomm Inc. v. Broadcom Corp., № 2007-1545, 2008-1162 (Fed. Cir. December 1, 2008). Статьи в популярной прессе см. signonsandiego.com, "Qualcomm loses its patent-rights case" и "Qualcomm's patent case go to jury"; и bloomberg.com "Broadcom Wins First Trial in Qualcomm Patent Dispute"
  81. ^ "нокиа h264".

Дальнейшее чтение

Внешние ссылки