Расширенное кодирование видео - Advanced Video Coding

Расширенное кодирование видео
Расширенное кодирование видео для общих аудиовизуальных услуг
Блок-схема H.264 с показателем качества.jpg
Положение дел Действующий
Год начался 2003 г.
Последняя версия 13.0
июня 2019
Организация МСЭ-Т , ИСО , МЭК
Комитет SG16 ( VCEG ), MPEG
Базовые стандарты H.261 , H.262 (также известный как MPEG-2 Video ), H.263 , MPEG-1
Связанные стандарты H.265 (он же HEVC), H.266 (он же VVC)
Домен сжатие видео
Веб-сайт https://www.itu.int/rec/T-REC-H.264

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

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

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

H.264, пожалуй, наиболее известен как наиболее часто используемый формат кодирования видео на дисках Blu-ray . Он также широко используется для потоковой передачи Интернет-источников, таких как видео с 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 .

Коммерческое использование запатентованных технологий H.264 требует выплаты лицензионных отчислений MPEG LA и другим владельцам патентов. MPEG LA разрешил бесплатное использование технологий H.264 для потоковой передачи Интернет-видео, которое является бесплатным для конечных пользователей, и Cisco Systems выплачивает роялти MPEG LA от имени пользователей двоичных файлов для своего кодировщика H.264 с открытым исходным кодом .

Именование

Имя H.264 следует соглашению об именах ITU-T , где стандарт является членом линии H.26x стандартов кодирования видео VCEG ; Название 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.) Некоторые программы (например, медиаплеер VLC ) внутренне идентифицируют этот стандарт как AVC1.

История

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

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

В декабре 2001 года VCEG и Группа экспертов по движущемуся изображению ( MPEG  - ISO / IEC JTC 1 / SC 29 / WG 11) сформировали Объединенную группу по видео (JVT) с уставом для окончательной доработки стандарта видеокодирования. Официальное утверждение спецификации было получено в марте 2003 года. Председателями JVT были Гэри Салливан , Томас Виганд и Аджай Лутра ( Motorola , США: позже Arris , США). В июле 2004 года проект Fidelity Range Extensions (FRExt) был завершен. С января 2005 года по ноябрь 2007 года JVT работала над расширением H.264 / AVC в сторону масштабируемости с помощью Приложения (G) под названием Масштабируемое кодирование видео (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 ниже), предназначенных в первую очередь для профессиональных приложений, с добавлением поддержки цветового пространства расширенной гаммы, определением дополнительных индикаторов соотношения сторон, определением двух дополнительных типов «дополнительной улучшающей информации» (подсказка после фильтра и тон mapping) и отказ от одного из предыдущих профилей FRExt (профиль High 4: 4: 4), который, по мнению отрасли, должен был быть разработан по-другому.

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

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

Кодирование видео с несколькими ракурсами

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

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

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

Версии

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

  • Версия 1 (Выпуск 1): (30 мая 2003 г.) Первая утвержденная версия H.264 / AVC, содержащая базовый, основной и расширенный профили.
  • Версия 2 (Издание 1.1): (7 мая 2004 г.) Исправление, содержащее различные мелкие исправления.
  • Версия 3 (Издание 2): (1 марта 2005 г.) Основное дополнение, содержащее первую поправку, устанавливающую Расширения диапазона точности (FRExt). В этой версии добавлены профили High, High 10, High 4: 2: 2 и High 4: 4: 4. Через несколько лет профиль High стал наиболее часто используемым профилем стандарта.
  • Версия 4 (Издание 2.1): (13 сентября 2005 г.) Исправление, содержащее различные незначительные исправления и добавление трех индикаторов соотношения сторон.
  • Версия 5 (Выпуск 2.2): (13 июня 2006 г.) Поправка, состоящая в удалении предыдущего профиля High 4: 4: 4 (обработанного как исправление в ISO / IEC).
  • Версия 6 (Выпуск 2.2): (13 июня 2006 г.) Поправка, состоящая из незначительных расширений, таких как поддержка цветового пространства с расширенной гаммой (в комплекте с вышеупомянутыми индикаторами соотношения сторон в ISO / IEC).
  • Версия 7 (издание 2.3): (6 апреля 2007 г.) Поправка, содержащая добавление профиля прогнозирования High 4: 4: 4 и четырех профилей только для внутреннего использования (High 10 Intra, High 4: 2: 2 Intra, High 4: 4 : 4 Intra и CAVLC 4: 4: 4 Intra).
  • Версия 8 (издание 3): (22 ноября 2007 г.) Основное дополнение к H.264 / AVC, содержащее поправку для масштабируемого кодирования видео (SVC), содержащую профили Scalable Baseline, Scalable High и Scalable High Intra.
  • Версия 9 (Редакция 3.1): (13 января 2009 г.) Исправление, содержащее незначительные исправления.
  • Версия 10 (издание 4): (16 марта 2009 г.) Поправка, содержащая определение нового профиля (ограниченного базового профиля) с только общим подмножеством возможностей, поддерживаемых в различных ранее указанных профилях.
  • Версия 11 (издание 4): (16 марта 2009 г.) Основное дополнение к H.264 / AVC, содержащее поправку для расширения Multiview Video Coding (MVC), включая профиль Multiview High.
  • Версия 12 (издание 5): (9 марта 2010 г.) Поправка, содержащая определение нового профиля MVC (профиль Stereo High) для кодирования видео с двумя ракурсами с поддержкой инструментов чересстрочного кодирования и указанием сообщения дополнительной дополнительной информации о расширении (SEI). называется сообщением SEI о компоновке фреймов.
  • Версия 13 (издание 5): (9 марта 2010 г.) Исправление, содержащее незначительные исправления.
  • Версия 14 (издание 6): (29 июня 2011 г.) Поправка, определяющая новый уровень (уровень 5.2), поддерживающий более высокие скорости обработки с точки зрения максимального количества макроблоков в секунду, и новый профиль (профиль Progressive High), поддерживающий только инструменты кодирования кадров ранее указанного высокого профиля.
  • Версия 15 (издание 6): (29 июня 2011 г.) Исправление, содержащее незначительные исправления.
  • Версия 16 (издание 7): (13 января 2012 г.) Поправка, содержащая определение трех новых профилей, предназначенных в первую очередь для приложений связи в реальном времени: профили с ограниченным высоким уровнем, масштабируемый ограниченный базовый уровень и масштабируемый профиль с ограниченным высоким уровнем.
  • Версия 17 (Выпуск 8): (13 апреля 2013 г.) Поправка с дополнительными индикаторами сообщений SEI.
  • Версия 18 (Выпуск 8): (13 апреля 2013 г.) Поправка, определяющая кодирование данных карты глубины для стереоскопического 3D-видео, включая профиль Multiview Depth High.
  • Версия 19 (Выпуск 8): (13 апреля 2013 г.) Исправление для исправления ошибки в процессе извлечения суб-битового потока для многоракурсного видео.
  • Версия 20 (Выпуск 8): (13 апреля 2013 г.) Поправка для определения дополнительных идентификаторов цветового пространства (включая поддержку Рекомендации ITU-R BT.2020 для UHDTV ) и дополнительного типа модели в сообщении SEI с информацией о тональном отображении.
  • Версия 21 (Выпуск 9): (13 февраля 2014 г.) Поправка для определения профиля Enhanced Multiview Depth High.
  • Версия 22 (Выпуск 9): (13 февраля 2014 г.) Поправка, определяющая улучшение совместимости кадров (MFC) с несколькими разрешениями для стереоскопического видео 3D, профиль MFC High и незначительные исправления.
  • Версия 23 (выпуск 10): (13 февраля 2016 г.) Поправка для указания стереоскопического видео MFC с картами глубины, профиля MFC Depth High, сообщения SEI для отображения объема цвета мастеринга и дополнительных идентификаторов кодовых точек VUI, связанных с цветом.
  • Версия 24 (редакция 11): (14 октября 2016 г.) Поправка, определяющая дополнительные уровни возможностей декодера, поддерживающие изображения большего размера (уровни 6, 6.1 и 6.2), сообщение SEI с зелеными метаданными, сообщение SEI с альтернативной информацией о глубине и дополнительные связанные с цветом идентификаторы кодовой точки VUI.
  • Версия 25 (издание 12): (13 апреля 2017 г.) Поправка, определяющая профиль Progressive High 10, гибридную логарифмическую гамму (HLG) и дополнительные связанные с цветом кодовые точки VUI и сообщения SEI.
  • Версия 26 (редакция 13): (13 июня 2019 г.) Поправка для указания дополнительных сообщений SEI для окружающей среды просмотра, информации об уровне освещенности контента, объема цвета контента, равнопрямоугольной проекции, проекции кубической карты, вращения сферы, упаковки по регионам, всенаправленного окна просмотра, Манифест SEI и префикс SEI.

Патентообладатели

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

Держатели патентов H.264 / AVC (по состоянию на ноябрь 2020 г.)
Организация Активные патенты Патенты с истекшим сроком действия Всего патентов
Panasonic Corporation 1,135 62 1,197
IP-мост Godo Kaisha 1,111 19 1,130
LG Electronics 875 115 990
Dolby Laboratories 754 21 год 775
Toshiba 357 34 391
Microsoft 176 39 215
Nippon Telegraph and Telephone (включая NTT Docomo ) 187 2 189
Sony 116 31 год 147
Общество Фраунгофера 125 16 141
Google 136 3 139
Сжатие видео GE 136 0 136
Fujitsu 92 14 106
Mitsubishi Electric 54 50 104
ООО «Тагиван II» 77 0 77
Samsung Electronics 23 40 63
Макселл 51 2 53
Philips 5 39 44 год
Видио 41 год 2 43 год
Ericsson 34 0 34
Научно-исследовательский институт электроники и телекоммуникаций (ETRI) Кореи 32 0 32

Приложения

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

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

Advanced Television Systems Комитет (ATSC) орган по стандартизации в США одобрил использование H.264 / AVC для телевизионного вещания в июле 2008 года, хотя этот стандарт еще не используется для фиксированных передач ATSC в Соединенных Штатах. Он также был одобрен для использования с более новым стандартом ATSC-M / H (Mobile / Handheld), использующим части H.264 AVC и SVC.

CCTV (Closed Circuit TV) и видеонаблюдения рынки включили технологию во многих продуктах.

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

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

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

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

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

Дизайн

Функции

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

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

  • Межкадровое предсказание нескольких изображений, включая следующие функции:
    • Использование ранее закодированных изображений в качестве эталонов гораздо более гибким способом, чем в прошлых стандартах, позволяя в некоторых случаях использовать до 16 опорных кадров (или 32 опорных поля в случае чересстрочного кодирования). В профилях, поддерживающих кадры без IDR , на большинстве уровней указывается, что должна быть доступна достаточная буферизация, позволяющая использовать как минимум 4 или 5 опорных кадров при максимальном разрешении. Это контрастирует с предыдущими стандартами, где предел обычно был равен единице; или, в случае обычных « B-изображений » (B-кадры), два.
    • Компенсация движения с переменным размером блока (VBSMC) с размерами блоков от 16 × 16 до 4 × 4, что обеспечивает точную сегментацию движущихся областей. Поддерживаемые размеры блоков прогнозирования яркости включают в себя 16 × 16, 16 × 8, 8 × 16, 8 × 8, 8 × 4, 4 × 8 и 4 × 4, многие из которых могут использоваться вместе в одном макроблоке. Соответственно, размеры блока предсказания цветности меньше, когда используется субдискретизация цветности .
    • Возможность использовать несколько векторов движения для каждого макроблока (один или два на раздел) максимум 32 в случае макроблока B, состоящего из 16 разделов 4 × 4. Векторы движения для каждой области разделения 8 × 8 или более могут указывать на разные опорные изображения.
    • Возможность использовать любой тип макроблока в B-кадрах , включая I-макроблоки, что приводит к гораздо более эффективному кодированию при использовании B-кадров. Эта функция была исключена из MPEG-4 ASP .
    • Шестиконтактная фильтрация для получения предсказаний полупиксельной выборки яркости для более резкой компенсации движения субпикселей. Движение на четверть пикселя получается путем линейной интерполяции значений полупикселей для экономии вычислительной мощности.
    • Четвертьпиксельная точность компенсации движения, позволяющая точно описывать смещения движущихся областей. Для цветности разрешение обычно уменьшается вдвое как по вертикали, так и по горизонтали (см. 4: 2: 0 ), поэтому для компенсации движения цветности используется одна восьмая пиксельная сетка цветности.
    • Взвешенное прогнозирование, позволяющее кодировщику указывать использование масштабирования и смещения при выполнении компенсации движения и обеспечивающее значительный выигрыш в производительности в особых случаях, таких как переходы от постепенного перехода к черному, постепенного появления и плавного перехода. Это включает неявное взвешенное предсказание для B-кадров и явное взвешенное предсказание для P-кадров.
  • Пространственное предсказание по краям соседних блоков для «внутреннего» кодирования, а не предсказание только «DC», найденное в MPEG-2 Part 2, и предсказание коэффициента преобразования, найденное в H.263v2 и MPEG-4 Part 2. Это включает яркость размеры блока предсказания 16 × 16, 8 × 8 и 4 × 4 (из которых только один тип может использоваться в каждом макроблоке ).
  • Целочисленное дискретное косинусное преобразование (целочисленное DCT), тип дискретного косинусного преобразования (DCT), где преобразование представляет собой целочисленное приближение стандартного DCT. Он имеет выбираемые размеры блоков и целочисленное вычисление с точным соответствием для уменьшения сложности, в том числе:
    • Целочисленное пространственное блочное преобразование 4 × 4 с точным совпадением, позволяющее точно размещать остаточные сигналы с небольшими « звенящими » сигналами, которые часто встречаются в предшествующих конструкциях кодеков. Он похож на стандартный DCT, использованный в предыдущих стандартах, но использует меньший размер блока и простую целочисленную обработку. В отличие от формул на основе косинуса и допусков, выраженных в более ранних стандартах (таких как H.261 и MPEG-2), целочисленная обработка обеспечивает точно указанный результат декодирования.
    • Целочисленное пространственное блочное преобразование 8 × 8 с точным совпадением, позволяющее сжимать сильно коррелированные области более эффективно, чем при преобразовании 4 × 4. Эта конструкция основана на стандартном DCT, но упрощена и предназначена для обеспечения точно заданного декодирования.
    • Выбор адаптивного кодера между размерами блока преобразования 4 × 4 и 8 × 8 для операции целочисленного преобразования.
    • Вторичное преобразование Адамара, выполняемое над коэффициентами «DC» первичного пространственного преобразования, применяемого к коэффициентам DC цветности (а также яркости в одном особом случае), чтобы получить еще большее сжатие в гладких областях.
  • Функции кодирования макроблоков без потерь, включая:
    • Режим представления «макроблок PCM» без потерь, в котором образцы видеоданных представляются напрямую, что обеспечивает идеальное представление определенных областей и позволяет устанавливать строгие ограничения на количество кодированных данных для каждого макроблока.
    • Усовершенствованный режим представления макроблоков без потерь, позволяющий безупречное представление конкретных областей при обычном использовании значительно меньшего количества битов, чем в режиме ИКМ.
  • Гибкие функции кодирования видео с чересстрочной разверткой, в том числе:
    • Кодирование с адаптацией к макроблокам кадра и поля (MBAFF) с использованием структуры пары макроблоков для изображений, закодированных как кадры, что позволяет использовать макроблоки 16 × 16 в полевом режиме (по сравнению с MPEG-2, где обработка в полевом режиме в изображении, закодированном как кадр приводит к обработке полумакроблоков размером 16 × 8).
    • Адаптивное к изображению кодирование поля кадра (PAFF или PicAFF), позволяющее свободно выбирать смесь изображений, закодированных либо как полные кадры, где оба поля объединены для кодирования, либо как отдельные отдельные поля.
  • Дизайн квантования, включающий:
    • Логарифмический контроль размера шага для упрощения управления скоростью передачи данных кодерами и упрощенного масштабирования обратного квантования
    • Матрицы масштабирования квантования с настраиваемой частотой, выбранные кодером для оптимизации квантования на основе восприятия
  • Внутренний фильтр устранения блочности, который помогает предотвратить артефакты блокировки, общие для других методов сжатия изображений на основе DCT, что приводит к лучшему внешнему виду и эффективности сжатия.
  • Энтропийного кодирования дизайн в том числе:
  • Характеристики устойчивости к потерям, в том числе:
    • Определение уровня абстракции сети (NAL), позволяющее использовать один и тот же синтаксис видео во многих сетевых средах. Одна очень фундаментальная концепция дизайна H.264 - генерировать автономные пакеты, чтобы удалить дублирование заголовков, как в коде расширения заголовка (HEC) MPEG-4. Это было достигнуто путем отделения информации, относящейся к более чем одному слайсу, из медиапотока. Комбинация параметров более высокого уровня называется набором параметров. Спецификация H.264 включает два типа наборов параметров: набор параметров последовательности (SPS) и набор параметров изображения (PPS). Набор параметров активной последовательности остается неизменным на протяжении всей кодированной видеопоследовательности, а набор параметров активного изображения остается неизменным в кодированном изображении. Структуры набора параметров последовательности и изображения содержат такую ​​информацию, как размер изображения, используемые необязательные режимы кодирования и отображение макроблока в группу срезов.
    • Гибкое упорядочение макроблоков (FMO), также известное как группы срезов, и произвольное упорядочение срезов (ASO), которые представляют собой методы реструктуризации порядка представления основных областей ( макроблоков ) в изображениях. Обычно считается функцией устойчивости к ошибкам / потерям, FMO и ASO также могут использоваться для других целей.
    • Разделение данных (DP), функция, дающая возможность разделять более важные и менее важные элементы синтаксиса на разные пакеты данных, позволяющая применять неравную защиту от ошибок (UEP) и другие типы повышения устойчивости к ошибкам / потерям.
    • Избыточные срезы (RS), функция устойчивости к ошибкам / потерям, которая позволяет кодировщику отправлять дополнительное представление области изображения (обычно с более низкой точностью), которое можно использовать, если первичное представление повреждено или потеряно.
    • Нумерация кадров, функция, которая позволяет создавать «подпоследовательности», обеспечивая временную масштабируемость за счет необязательного включения дополнительных изображений между другими изображениями, а также обнаружение и скрытие потерь целых изображений, которые могут возникать из-за потерь сетевых пакетов или канала ошибки.
  • Переключение срезов, называемых SP- и SI-срезами, позволяет кодировщику направлять декодер для перехода в текущий видеопоток для таких целей, как переключение скорости передачи битов видеопотока и работа в «трюковом режиме». Когда декодер переходит в середину видеопотока с помощью функции SP / SI, он может получить точное совпадение с декодированными изображениями в этом месте видеопотока, несмотря на использование разных изображений или отсутствие изображений вообще, как ссылки до выключатель.
  • Простой автоматический процесс предотвращения случайной эмуляции стартовых кодов , которые представляют собой особые последовательности битов в закодированных данных, которые обеспечивают произвольный доступ к потоку битов и восстановление выравнивания байтов в системах, которые могут потерять синхронизацию байтов.
  • Дополнительная информация улучшения (SEI) и информация о пригодности видео (VUI), которые представляют собой дополнительную информацию, которая может быть вставлена ​​в поток битов для различных целей, таких как указание цветового пространства, используемого для видеоконтента, или различных ограничений, которые применяются к кодированию. Сообщения SEI могут содержать произвольные определяемые пользователем полезные данные метаданных или другие сообщения с синтаксисом и семантикой, определенными в стандарте.
  • Вспомогательные картинки, которые можно использовать для таких целей, как альфа-композитинг .
  • Поддержка монохромной (4: 0: 0), 4: 2: 0, 4: 2: 2 и 4: 4: 4 выборки цветности (в зависимости от выбранного профиля).
  • Поддержка точности глубины дискретизации от 8 до 14 бит на выборку (в зависимости от выбранного профиля).
  • Возможность кодировать отдельные цветовые плоскости как отдельные изображения с их собственными структурами срезов, режимами макроблоков, векторами движения и т. Д., Что позволяет разрабатывать кодеры с простой структурой распараллеливания (поддерживается только в трех профилях с поддержкой 4: 4: 4) .
  • Подсчет порядка изображений - функция, которая служит для сохранения порядка изображений и значений выборок в декодированных изображениях изолированными от информации о синхронизации, что позволяет системе переносить и контролировать / изменять информацию о синхронизации отдельно без воздействия на содержимое декодированного изображения.

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

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

Профили

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Характерная черта CBP BP XP Депутат ProHiP Бедро Hi10P Hi422P Hi444PP
I и P срезы да да да да да да да да да
Битовая глубина (на выборку) 8 8 8 8 8 8 8 до 10 8 до 10 С 8 до 14
Форматы цветности 4: 2: 0

 
4: 2: 0

 
4: 2: 0

 
4: 2: 0

 
4: 2: 0

 
4: 2: 0

 
4: 2: 0

 
4: 2: 0/4
: 2: 2
 
4: 2: 0/4
: 2:
2/4: 4: 4
Гибкий порядок макроблоков (FMO) Нет да да Нет Нет Нет Нет Нет Нет
Произвольный порядок срезов (ASO) Нет да да Нет Нет Нет Нет Нет Нет
Избыточные срезы (RS) Нет да да Нет Нет Нет Нет Нет Нет
Разделение данных Нет Нет да Нет Нет Нет Нет Нет Нет
SI и SP срезы Нет Нет да Нет Нет Нет Нет Нет Нет
Чересстрочное кодирование (PicAFF, MBAFF) Нет Нет да да Нет да да да да
B ломтики Нет Нет да да да да да да да
Множественные справочные кадры да да да да да да да да да
Петлевой фильтр деблокирования да да да да да да да да да
CAVLC энтропийное кодирование да да да да да да да да да
CABAC энтропийное кодирование Нет Нет Нет да да да да да да
4: 0: 0 ( монохромный ) Нет Нет Нет Нет да да да да да
Адаптивность преобразования 8 × 8 против 4 × 4 Нет Нет Нет Нет да да да да да
Матрицы масштабирования квантования Нет Нет Нет Нет да да да да да
Раздельное управление C B и C R QP Нет Нет Нет Нет да да да да да
Раздельное кодирование цветовой плоскости Нет Нет Нет Нет Нет Нет Нет Нет да
Прогнозирующее кодирование без потерь Нет Нет Нет Нет Нет Нет Нет Нет да

Уровни

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

Уровни с максимальными значениями свойств
Уровень
Максимальная
скорость декодирования
(макроблоков / с)
Максимальный
размер кадра
(макроблоки)
Максимальный
битрейт видео для
уровня кодирования видео (VCL)
(ограниченный базовый,
базовый, расширенный
и основной профили)
(кбит / с)
Примеры высокого разрешения
при максимальной частоте кадров
(максимальное количество сохраненных кадров)
Переключить дополнительные сведения

1 1,485 99 64
128x96@30.9 (8)
176 × 144@15.0 (4)
1b 1,485 99 128
128x96@30.9 (8)
176 × 144@15.0 (4)
1.1 3 000 396 192
176 × 144@30.3 (9)
320 × 240@10.0 (3)
352 × 288@7.5 (2)
1.2 6000 396 384
320x240@20.0 (7)
352 × 288@15.2 (6)
1.3 11 880 396 768
320x240@36.0 (7)
352 × 288@30.0 (6)
2 11 880 396 2 000
320x240@36.0 (7)
352 × 288@30.0 (6)
2.1 19 800 792 4 000
352 × 480@30.0 (7)
352 × 576@25.0 (6)
2.2 20 250 1,620 4 000
352 × 480@30.7 (12)
352 × 576@25.6 (10)
720 × 480@15.0 (6)
720 × 576@12,5 (5)
3 40 500 1,620 10 000
352 × 480@61.4 (12)
352 × 576@51.1 (10)
720 × 480@30.0 (6)
720 × 576@25.0 (5)
3.1 108 000 3600 14 000
720 × 480@80.0 (13)
720 × 576@66.7 (11)
1,280 × 720 @ 30,0 (5)
3,2 216 000 5 120 20 000
1,280 × 720 @ 60,0 (5)
1,280 × 1024 @ 42,2 (4)
4 245 760 8192 20 000
1280 × 720 @ 68,3 (9)
1920 × 1080 @ 30,1 (4)
2048 × 1024 @ 30,0 (4)
4.1 245 760 8192 50 000
1280 × 720 @ 68,3 (9)
1920 × 1080 @ 30,1 (4)
2048 × 1024 @ 30,0 (4)
4.2 522 240 8 704 50 000
1280 × 720 @ 145,1 (9)
1920 × 1080 @ 64,0 (4)
2048 × 1080 @ 60,0 (4)
5 589 824 22 080 135 000
1920 × 1080 при 72,3 (13)
2048 × 1024 при 72,0 (13)
2048 × 1080 при 67,8 (12)
2560 × 1 920 при 30,7 (5)
3672 × 1536 @ 26,7 (5)
5.1 983 040 36 864 240 000
1920 × 1080 при 120,5 (16)
2560 × 1920 при 51,2 (9)
3,840 × 2160 при 31,7 (5)
4096 × 2048 при 30,0 (5)
4096 × 2160 при 28,5 (5)
4096 × 2304 @ 26,7 (5)
5.2 2 073 600 36 864 240 000
1920 × 1080 @ 172,0 (16)
2560 × 1920 @ 108,0 (9)
3,840 × 2160 @ 66,8 (5)
4096 × 2048 @ 63,3 (5)
4096 × 2160 @ 60,0 (5)
4096 × 2304 @ 56,3 (5)
6 4 177 920 139 264 240 000
3840 × 2160 при 128,9 (16)
7680 × 4320 при 32,2 (5)
8192 × 4320 @ 30,2 (5)
6.1 8 355 840 139 264 480 000
3840 × 2160 при 257,9 (16)
7680 × 4320 при 64,5 (5)
8192 × 4320 @ 60,4 (5)
6.2 16 711 680 139 264 800 000
3840 × 2160 при 300,0 (16)
7680 × 4320 при 128,9 (5)
8192 × 4320 @ 120,9 (5)

Максимальная скорость передачи данных для высокого профиля в 1,25 раза выше, чем для ограниченного базового, базового, расширенного и основного профилей; 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 г. издания.

Уровень
1
1b
1.1
1.2
1.3
2
2.1
2.2
3
3.1
3,2
4
4.1
4.2
5
5.1
5.2
6
6.1
6.2
MaxDpbMbs
396
396
900
2376
2376
2376
4 752
8 100
8 100
18 000
20 480
32 768
32 768
34 816
110 400
184 320
184 320
696 320
696 320
696 320

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

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

Реализации

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

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

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 явно отсутствовала в этом списке, потому что она не позволяет приложениям получать и устанавливать бинарные модули из Интернета. Также 30 октября 2013 года Брендан Эйч из Mozilla написал, что он будет использовать двоичные файлы Cisco в будущих версиях Firefox, чтобы добавить поддержку H.264 в Firefox, где кодеки платформы недоступны. Cisco опубликовала исходный код OpenH264 9 декабря 2013 года.

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

Программные кодеры

Программные реализации AVC
Характерная черта QuickTime Неро ОткрытьH264 x264 Главная-
Концепция
Elecard  TSE  Pro-
Coder
Avivo Элементаль  IPP 
B ломтики да да да да да да да да Нет да да
Множественные справочные кадры да да да да да да да да Нет да да
Чересстрочное кодирование (PicAFF, MBAFF) Нет MBAFF MBAFF MBAFF да да Нет да MBAFF да Нет
CABAC энтропийное кодирование да да да да да да да да Нет да да
Адаптивность преобразования 8 × 8 против 4 × 4 Нет да да да да да да да Нет да да
Матрицы масштабирования квантования Нет Нет да да да Нет Нет Нет Нет Нет Нет
Раздельное управление C B и C R QP Нет Нет да да да да Нет Нет Нет Нет Нет
Расширенные форматы цветности Нет Нет Нет 4: 0: 0
4: 2: 0
4: 2: 2
4: 4: 4  
4: 2: 2 4: 2: 2 4: 2: 2 Нет Нет 4: 2: 0
4: 2: 2
Нет
Наибольшая глубина выборки (бит) 8 8 8 10 10 8 8 8 8 10 12
Прогнозирующее кодирование без потерь Нет Нет Нет да Нет Нет Нет Нет Нет Нет Нет

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

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

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

Второе поколение Intel " Sandy Bridge " Core i3 / i5 / i7 процессоров , введенные на CES января 2011 ( Consumer Electronics Show ) предлагает на чипе аппаратного полного HD H.264 кодер, известный как Intel Quick Sync Video .

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

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

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

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

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

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

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

Поскольку первая версия стандарта была завершена в мае 2003 г. (18 лет назад), а наиболее часто используемый профиль (Высокий профиль) был завершен в июне 2004 г. (17 лет назад), срок действия значительного количества патентов, которые первоначально применялись к стандарту, истек, хотя один из патентов США в пуле MPEG LA H.264 действует как минимум до 2027 года.

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

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

использованная литература

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

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