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 году ITU-T Video Coding Experts Group (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 2012 компания 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]

Особенности[править | править вики-текст]

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

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

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

Эффективность кодирования[править | править вики-текст]

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

Вместо макроблоков, которые применялись в H.264, в HEVC используются блоки с древовидной структурой кодирования. Выигрыш кодера HEVC — в применении блоков большего размера. Это было показано в тестах PSNR с моделью кодера HM-8.0, где сравнивались результаты кодирования с разными размерами блоков. В результате тестов было показано, что по сравнению с кодированием блоков размером 64x64 пикселей, битрейт увеличивается на 2,2 %, когда используются блоки размером 32x32 и увеличивается на 11,0 %, когда используется размер блоков 16х16. В тестах кодирования видео с разрешением 2560x1600 пикселей при использовании блоков с размером 32x32 пикселей битрейт увеличивается на 5,7 %, а при использовании блоков размером 16x16 пикелей — на 28,2 %, по сравнению с видео, где использованы блоки размером 64х64, при одинаковом пиковом отношении сигнал-шум. Тесты показали, что применение блоков большего размера более эффективно при кодировании видео с высоким разрешением. Тесты также показали, что для декодирования видео, закодированного с размерами блоков 16х16, требуется на 60 % больше времени, чем при использовании блоков 64x64. То есть, применение блоков бо́льших размеров повышает эффективность кодирования при одновременном сокращении времени декодирования.[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). Были закодированы видео развлекательных программ и девять тестовых видеопоследовательностей с двенадцатью различными битрейтами с использованием тестовой модели 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 бит на цвет.
  • Цветовая субдискретизация — 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. Overview of the High Efficiency Video Coding (HEVC) Standard (pdf), IEEE Trans. on Circuits and Systems for Video Technology (25 мая 2012). Проверено 14 сентября 2012.
  2. ISO/IEC FDIS 23008-2, International Organization for Standardization (14 мая 2013). Проверено 14 июня 2013.
  3. 1 2 ITU-T Home : Study groups : ITU-T Recommendations : ITU-T H.265 (04/2013), ITU (13 апреля 2013). Проверено 16 апреля 2013.
  4. H.265 : High efficiency video coding, ITU (7 июня 2013). Проверено 7 июня 2013.
  5. Draft meeting report for 31st VCEG Meeting (Marrakech, MA, 15-16 January, 2007)
  6. Draft requirements for "EPVC" enhanced performance video coding project, ITU-T VCEG (10 июля 2009). Проверено 24 августа 2012.
  7. An Interview With Dr. Thomas Wiegand. in-cites (1 июля 2007). Проверено 18 августа 2012. Архивировано из первоисточника 25 октября 2012.
  8. ITU TSB. Joint Collaborative Team on Video Coding. ITU-T (21 мая 2010). Проверено 24 августа 2012. Архивировано из первоисточника 25 октября 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. Архивировано из первоисточника 25 октября 2012.
  10. MPEG issues video compression draft, Ericsson (13 августа 2012). Проверено 16 августа 2012.
  11. Qualcomm shows horsepower of next-gen H.265 video, CNET (29 февраля 2012). Проверено 12 октября 2012.
  12. World First Live HEVC Broadcast Encoders: AL1200/AL2200, PRNewswire (31 августа 2012). Проверено 31 августа 2012.
  13. Ericsson представил новый взгляд на зрительский опыт [ 13-09-2012 ]
  14. Current Status of H.265 (as at July 2008) | H265.net
  15. 1 2 3 G.J. Sullivan. 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 (22 августа 2012). Проверено 22 сентября 2012.
  16. 1 2 3 4 5 High Efficiency Video Coding (HEVC) text specification draft 9, JCT-VC (22 октября 2012). Проверено 23 октября 2012.
  17. 1 2 Для яркостной компоненты

См. также[править | править вики-текст]

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