H.265

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

H.265 или HEVC (англ. High Efficiency Video Coding — высокоэффективное кодирование видеоизображений) — формат видеосжатия с применением более эффективных алгоритмов по сравнению с H.264/MPEG-4 AVC[1]. Рекомендация ITU-T H.265, а также стандарт ISO/IEC 23008-2 MPEG-H Часть 2, — совместная разработка экспертной группы МСЭ-Т по видеокодированию (ITU-T Video Coding Experts Group — VCEG) и экспертной группы по движущимся изображениям MPEG[2]. Рекомендация стандарта разработана в связи с растущей потребностью в более высокой степени сжатия движущихся изображений для самых разных приложений, таких как потоковая передача в Интернете, передача данных, видеоконференц-связь, цифровые запоминающие устройства и телевизионное вещание[3].

Поддерживаются форматы кадра до 8K (UHDTV) с разрешением 8192×4320 пикселей[4].

В 2004 году VCEG приступила к исследованию развития технологий, которые позволили бы создать новый стандарт сжатия видео (или добиться существенного улучшения стандарта H.264/MPEG-4 AVC). В октябре 2004 года произведён обзор различных способов возможного усовершенствования H.264/MPEG-4 AVC[5].

Изначально предусматривалось, что H.265 будет полностью новым стандартом, а не расширением H.264 вроде HVC (High-performance Video Coding). В рамках проекта были присвоены предварительные имена H.265 и H.NGVC (англ. Next-generation Video Coding — следующее поколение видеокодирования), также существовала значительная часть работы VCEG до её эволюции в HEVC, совместный проект с MPEG в 2010 году. В апреле 2009 года проект получил название NGVC; в июле 2009 состоялось совещание MPEG и VCEG, на котором обсуждалась дальнейшая совместная работа по NGVC и HVC.

Предварительные требования к NGVC состоят в уменьшении битрейта на 50 % при схожей субъективной оценке качества изображения и сравнимой с H.264 High profile вычислительной сложностью. В зависимости от настроек предполагается варьирование вычислительной сложности от 1/2 до 3 по сравнению с H.264 High profile, при этом в первом случае NGVC должен обеспечивать на 25 % меньший битрейт[6].

ISO / IEC Moving Picture Experts Group (MPEG) начала аналогичный проект в 2007 году, предварительно названный Высокопроизводительным видеокодированием (High-performance Video Coding). В июле 2007 года было принято решение в качестве цели проекта достигнуть снижения битрейта на 50 %[7]. К июлю 2009 года результаты эксперимента показали среднее снижение скорости потока примерно на 20 % по сравнению с AVC High Profile, эти результаты побудили MPEG начать стандартизацию в сотрудничестве с VCEG.

Для разработки стандарта MPEG и VCEG создали Объединенную команду по видеокодированию Joint Collaborative Team on Video Coding (JCT-VC) (ITU-T Rec H.264|ISO/IEC 14496-10)[8]. Первое заседание Объединенной команды по видеокодированию (JCT-VC) состоялось в апреле 2010 года. Было представлено 27 полноценных проектов. Оценки показали, что некоторые предложения могут достичь такого же качества изображения, как AVC, лишь с половинным битрейтом во многих испытаниях, при 2—10-кратном увеличении вычислительной сложности, и в некоторых проектах были достигнуты хорошее субъективное качество и хорошие результаты скорости передачи данных с более низкой вычислительной сложностью, чем при референсном кодировании AVC с высоким профилем. На этом совещании было принято название для совместного проекта — высокоэффективное видеокодирование High Efficiency Video Coding (HEVC)[9].

Комитет Проекта HEVC был утвержден в феврале 2012 года. В июне 2012 года MPEG LA объявила о начале процесса принятия совместных лицензий на патенты HEVC. Проект международного стандарта был утвержден в июле 2012 года на совещании, состоявшемся в Стокгольме. Fröjdh, председатель шведской делегации MPEG, считает, что коммерческие продукты, которые поддерживают HEVC, могут быть выпущены в 2013 году[10].

29 февраля 2012 года на выставке Mobile World Congress компания Qualcomm показала HEVC-декодер, работающий на планшете под управлением ОС Android с двухъядерным процессором Qualcomm Snapdragon S4 с частотой 1,5 ГГц. Показывались две версии видеозаписи с одинаковым содержанием, закодированными H.264/MPEG-4 AVC и HEVC. На этом показе HEVC показал почти 50%-е снижение скорости передачи по сравнению с H.264/MPEG-4 AVC[11].

31 августа 2012 Allegro DVT объявила о выпуске двух HEVC-вещательных кодеров: кодера AL1200 HD-SDI и IP-транскодера AL2200[12]. Allegro DVT заявила, что аппаратных декодеров HEVC не следует ожидать до 2014 года, но HEVC сможет применяться и раньше в приложениях с программным декодированием. На выставке IBC 2012 Allegro DVT показала HEVC-системы потокового IP-вещания на основе IP-транскодера AL2200.

Компания Ericsson в сентябре 2012 года на выставке International Broadcasting Convention (IBC) представила первый в мире HEVC-кодер — Ericsson SVP 5500, предназначенный для кодирования видео в реальном времени для трансляции эфирного ТВ в сетях подвижной связи[13].

В апреле 2013 года проект принят в качестве стандарта МСЭ-T[3].

На начало 2017 на аппаратном уровне реализована частичная поддержка стандарта HEVC всеми крупными производителями процессоров.[источник не указан 2606 дней]

В качестве требований к стандарту предложено много новых возможностей:[источник не указан 2606 дней]

  • Двумерный неразделимый адаптивный интерполяционный фильтр (AIF)
  • Разделимый AIF
  • Направленный AIF
  • Компенсация движения с точностью до 1/8 пикселя (Qpel)
  • Адаптивное предсказание ошибок кодирования (APEC) в пространственной и частотной областях
  • Адаптивный выбор матрицы квантования (AQMS)
  • Основанная на сравнении схема выбора и кодирования вектора движения
  • Режимозависимое изменение настройки внутрикадрового кодирования

Предполагается, что эти приёмы принесут наибольшую пользу при многопроходном кодировании[14].

Эффективность кодирования

[править | править код]

Разработка большинства стандартов видеокодирования предназначена, в первую очередь, для достижения наибольшей эффективности кодирования. Эффективность кодирования определяется способностью закодировать видео с минимально возможным битрейтом при сохранении определённого уровня качества видео. Существует два стандартных способа измерения эффективности кодирования видео, один из которых заключается в использовании объективной метрики, такой как пиковое отношение сигнал-шум (PSNR), а второй состоит в использовании субъективной оценки качества видео. Субъективная оценка качества изображения является наиболее важным параметром для оценки кодирования видео, так как зрители воспринимают качество видео именно субъективно.

Вместо применяющихся в H.264 макроблоков в HEVC используются блоки с древовидной структурой кодирования. Выигрыш кодера HEVC — в применении блоков большего размера. Это было показано в тестах PSNR с моделью кодера HM-8.0, где сравнивались результаты кодирования с разными размерами блоков. В результате тестов было показано, что по сравнению с кодированием блоков размером 64×64 пикселя битрейт увеличивается на 2,2 %, когда используются блоки размером 32×32, и увеличивается на 11,0 %, когда используются блоки размером 16×16. В тестах кодирования видео с разрешением 2560×1600 пикселей при использовании блоков размером 32×32 пикселей битрейт увеличивается на 5,7 %, а при использовании блоков размером 16×16 пикселей — на 28,2 % по сравнению с видео, где использованы блоки размером 64×64, при одинаковом пиковом отношении сигнал-шум. Тесты показали, что применение блоков большего размера более эффективно при кодировании видео с высоким разрешением. Тесты также показали, что для декодирования видео, закодированного с блоками размером 16×16, требуется на 60 % больше времени, чем при использовании блоков 64×64. То есть применение блоков бо́льших размеров повышает эффективность кодирования при одновременном сокращении времени декодирования[15].

Было проведено сравнение эффективности кодирования основного профиля Н.265 с кодеками H.264/MPEG-4 AVC High Profile (HP), MPEG-4 Advanced Simple Profile (ASP), H.263 High Profile Latency (HLP) и H.262/MPEG-2 Main Profile (MP). Были закодированы видео развлекательных программ и девять тестовых видеопоследовательностей с 12 различными битрейтами с использованием тестовой модели HEVC HM-8.0, пять из них были с HD-разрешением, а четыре — с разрешением WVGA (800×480). Уменьшение битрейта определялось на основе PSNR[15].

Сравнение стандартов видеокодирования при равном PSNR
Стандарт видеокодирования Среднее сокращение битрейта
H.264/MPEG-4 AVC HP MPEG-4 ASP H.263 HLP H.262/MPEG-2 MP
HEVC MP 35,4 % 63,7 % 65,1 % 70,8 %
H.264/MPEG-4 AVC HP - 44,5 % 46,6 % 55,4 %
MPEG-4 ASP - - 3,9 % 19,7 %
H.263 HLP - - - 16,2 %

Структура кодера HEVC

[править | править код]
Схема типового кодера HEVC

При кодировании видео в HEVC применяется такой же «гибридный» подход, что и во всех современных кодеках, начиная с H.261. Он заключается в применении внутри- и межкадрового (Intra-/Inter-) предсказания и двумерного кодирования с преобразованием.

В кодере HEVC каждый видеокадр делится на блоки. Первый кадр видеопоследовательности кодируется с использованием только внутрикадрового предсказания, то есть применяется пространственное предсказание ожидаемого уровня отсчёта внутри кадра по соседним отсчётам, при этом отсутствует зависимость от других кадров. Для большинства блоков всех остальных кадров последовательности, как правило, используется режим межкадрового временного предсказания. В режиме межкадрового предсказания на основании данных о величине отсчётов опорного кадра и вектора движения оцениваются текущие отсчёты каждого блока. Кодер и декодер создают идентичные межкадровые предсказания путём применения алгоритма компенсации движения с помощью векторов движения и данных выбранного режима, которые передаются в качестве дополнительной информации.

Разностный сигнал предсказания, который представляет собой разницу между опорным блоком кадра и его предсказанием, подвергается линейному пространственному преобразованию. Затем коэффициенты преобразования масштабируются, квантуются, применяется энтропийное кодирование, и затем передаются вместе с информацией предсказания.

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

Предполагается, что видеоматериал на входе кодера HEVC имеет прогрессивную развёртку. В HEVC не представлено явных функций кодирования чересстрочной развёртки, так как она не используется в современных дисплеях и её распространение снижается. Тем не менее в HEVC были представлены метаданные, позволяющие указать кодеру, что было закодировано видео с чересстрочной развёрткой в одном из двух режимов: в виде отдельных изображений, как два поля (чётные или нечётные строки кадра), или весь кадр целиком. Этот эффективный метод обеспечивает кодирование видеосигнала с чересстрочной разверткой, минуя необходимость нагружать декодеры поддержкой специального процесса декодирования.

На октябрь 2012 года проект включал в себя три профиля: Основной (Main), Основной 10 (Main 10) и Основной профиль неподвижных изображений (Main Still Picture)[16].

Профиль это определённый набор средств кодирования и алгоритмов, которые могут быть использованы для создания видеопотока, соответствующего этому профилю[15]. Кодер при формировании видеопотока определяет, какие компоненты можно использовать для профиля, в то время как декодер должен поддерживать все функции для данного профиля.

Main (Основной профиль)

[править | править код]

Для основного профиля определены следующие ограничения:

  • Глубина цвета — 8 бит на канал (16,78 млн возможных цветов),
  • Цветовая субдискретизация — 4:2:0,
  • Размер буфера декодера ограничивается 6 кадрами максимального размера яркостной компоненты для этого уровня.

Main 10 (Основной профиль 10)

[править | править код]

Main 10 — профиль для кодирования видео с глубиной цвета 10 бит на канал[16].

Сравнение основных элементов кодеров:

AVC (High Profile) HEVC (Main 10) HEVC (Main Profile)
Размер блоков Макроблок 16×16 Блоки с древовидной структурой кодирования от 64×64 до 8×8 от 64×64 до 16×16
Блоки предсказания Разбиение до 4×4 от 64×64 до 4×4, асимметричное предсказание от 64×64 до 8×8, симметричное предсказание
Блоки преобразования 8×8 и 4×4 32×32 16×16 8×8 4×4 + неквадратные преобразования 32×32 16×16 8×8 4×4
Внутрикадровое предсказание 9 режимов 35 режимов 35 режимов
Обратное преобразование Деблокирующий фильтр Деблокирующий фильтр, SAO Деблокирующий фильтр, SAO
Компенсация движения Предсказание вектора движения Усовершенствованное предсказание вектора движения (пространственное и временное)
Глубина цвета на канал 8 бит 10 бит 8 бит
Энтропийное кодирование CABAC или CAVLC CABAC с применением параллельных операций

Main Still Picture (Основной профиль неподвижных изображений)

[править | править код]

Основной профиль неподвижных изображений позволяет кодировать отдельное изображение при соблюдении некоторых ограничений, соответствующих Основному профилю[16].

На октябрь 2012 года проект HEVC определял два слоя — Основной (Main) и Высокий (High), и 13 уровней[16]. Уровень (Level) представляет собой набор ограничений для потока данных, связанных с вычислительными возможностями декодера и загрузкой памяти. Уровень устанавливается исходя из максимальной частоты дискретизации, максимального размера кадра, максимальной скорости потока, минимальной степени сжатия и возможностей кадрового буфера декодера и кодера. Понятие слой (англ. Tier — ярус) было введено для приложений, которые различаются только максимальной скоростью потока и ёмкостью кадрового буфера кодера. Основной слой был разработан для большинства приложений, а Высокий уровень предназначен для приложений с повышенными требованиями. Декодер, соответствующий определенному слою и уровню, должен декодировать все потоки, закодированные с параметрами этого слоя и уровня и всех более низких слоев и уровней. Для уровней ниже четвёртого допускается только Основной слой[1][16].

Уровни с максимальными параметрами
Уровень Макс. частота
дискретизации[17]
(Гц)
Макс. размер
кадра[17]
(пикс.)
Макс. скорость потока
для профилей Main и Main 10
(кбит/с)
Пример разрешения кадра@
макс. частота кадров
(Макс. размер
кадрового буфера)
Мин.
степень
сжатия
Основной слой Высокий слой
1 552 960 36 864 128 - 128×96@33.7 (6)
176×144@15.0 (6)
2
2 3 686 400 122 880 1 500 - 176×144@100.0 (16)
352×288@30.0 (6)
2
2.1 7 372 800 245 760 3 000 - 352×288@60.0 (12)
640×360@30.0 (6)
2
3 16 588 800 552 960 6 000 - 640×360@67.5 (12)
720×480@42.1 (8)
720×576@37.5 (8)
960×544@30.0 (6)
2
3.1 33 177 600 983,040 10 000 - 720×480@84.3 (12)
720×576@75.0 (12)
960×544@60.0 (8)
1280×720@33.7 (6)
2
4 66 846 720 2 228 224 12 000 30 000 1280×720@68.0 (12)
1920×1080@32.0 (6)
2048×1080@30.0 (6)
4
4.1 133 693 440 20 000 50 000 1280×720@136.0 (12)
1920×1080@64.0 (6)
2048×1080@60.0 (6)
4
5 267 386 880 8 912 896 25 000 100 000 1920×1080@128.0 (16)
3840×2160@32.0 (6)
4096×2160@30.0 (6)
6
5.1 534 773 760 40 000 160 000 1920×1080@256.0 (16)
3840×2160@64.0 (6)
4096×2160@60.0 (6)
8
5.2 1 069 547 520 60 000 240 000 1920×1080@300.0 (16)
3840×2160@128.0 (6)
4096×2160@120.0 (6)
8
6 1 069 547 520 35 651 584 60 000 240 000 3840×2160@128.0 (16)
4096×2160@120.0 (16)
4096×2304@113.3 (12)
7680×4320@32.0 (6)
8192×4320@30.0 (6)
8
6.1 2 139 095 040 120 000 480 000 3840×2160@256.0 (16)
4096×2160@240.0 (16)
4096×2304@226.6 (12)
7680×4320@64.0 (6)
8192×4320@60.0 (6)
8
6.2 4 278 190 080 240 000 800 000 3840×2160@300.0 (16)
4096×2160@300.0 (16)
4096×2304@300.0 (12)
7680×4320@128.0 (6)
8192×4320@120.0 (6)
6

Примечания

[править | править код]
  1. 1 2 G.J. Sullivan; J.-R. Ohm; W.-J. Han; T. Wiegand (2012-05-25). "Overview of the High Efficiency Video Coding (HEVC) Standard" (pdf). IEEE Trans. on Circuits and Systems for Video Technology. Архивировано (PDF) 8 января 2020. Дата обращения: 14 сентября 2012.
  2. "ISO/IEC FDIS 23008-2". International Organization for Standardization. 2013-05-14. Архивировано 26 февраля 2017. Дата обращения: 14 июня 2013.
  3. 1 2 "ITU-T Home : Study groups : ITU-T Recommendations : ITU-T H.265 (04/2013)". ITU. 2013-04-13. Архивировано 5 ноября 2013. Дата обращения: 16 апреля 2013.
  4. "H.265 : High efficiency video coding". ITU. 2013-06-07. Архивировано 1 января 2021. Дата обращения: 7 июня 2013.
  5. Draft meeting report for 31st VCEG Meeting Архивная копия от 22 июля 2012 на Wayback Machine (Marrakech, MA, 15-16 January, 2007)
  6. "Draft requirements for "EPVC" enhanced performance video coding project". ITU-T VCEG. 2009-07-10. Архивировано 27 февраля 2021. Дата обращения: 24 августа 2012.
  7. An Interview With Dr. Thomas Wiegand. in-cites (1 июля 2007). Дата обращения: 18 августа 2012. Архивировано из оригинала 24 октября 2012 года.
  8. ITU TSB. Joint Collaborative Team on Video Coding. ITU-T (21 мая 2010). Дата обращения: 24 августа 2012. Архивировано из оригинала 24 октября 2012 года.
  9. Documents of the first meeting of the Joint Collaborative Team on Video Coding (JCT-VC) – Dresden, Germany, 15–23 April 2010. ITU-T (23 апреля 2010). Дата обращения: 24 августа 2012. Архивировано из оригинала 24 октября 2012 года.
  10. "MPEG issues video compression draft". Ericsson. 2012-08-13. Архивировано 4 июня 2016. Дата обращения: 16 августа 2012.
  11. "Qualcomm shows horsepower of next-gen H.265 video". CNET. 2012-02-29. Архивировано 22 февраля 2014. Дата обращения: 12 октября 2012.
  12. "World First Live HEVC Broadcast Encoders: AL1200/AL2200". PRNewswire. 2012-08-31. Архивировано 6 сентября 2012. Дата обращения: 31 августа 2012.
  13. Ericsson представил новый взгляд на зрительский опыт [ 13-09-2012 ] Архивировано 14 марта 2016 года.
  14. Current Status of H.265 (as at July 2008) | H265.net. Дата обращения: 8 ноября 2009. Архивировано из оригинала 15 октября 2012 года.
  15. 1 2 3 G.J. Sullivan; Heiko Schwarz; Thiow Keng Tan; Thomas Wiegand (2012-08-22). "Comparison of the Coding Efficiency of Video Coding Standards – Including High Efficiency Video Coding (HEVC)" (pdf). IEEE Trans. on Circuits and Systems for Video Technology. Архивировано (PDF) 11 августа 2013. Дата обращения: 22 сентября 2012.
  16. 1 2 3 4 5 "High Efficiency Video Coding (HEVC) text specification draft 9". JCT-VC. 2012-10-22. Архивировано 29 июля 2013. Дата обращения: 23 октября 2012.
  17. 1 2 Для яркостной компоненты