H.265 — новый кодек класса High-End

H.265 – новый кодек класса High-End

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

В этом году планируется широкомасштабное внедрение нового стандарта сжатия видео H.265, который функционирует в полтора раза эффективнее своего предшественника.Новый кодек HEVC (High Efficiency Videocoding) или H.265 Новый кодек HEVC (High Efficiency Videocoding) или H.265 В настоящее время стандартом кодирования видео является H.264: независимо от того, смотрите ли вы общественный канал или приобретенный в интернет-магазине фильм, воспроизводите файл формата MP4 или MKV — во всех случаях сжатие видеоконтента было выполнено с помощью кодека H.264, а встроенный декодер H.264 вашего устройства позволяет его воспроизвести. Однако с января доступна новая версия стандарта — кодек H.265, или HEVC (High Efficiency Videocoding). Она обещает на 50% увеличить эффективность кодирования. Это означает, что, в сравнении с H.264, для получения аналогичного качества потребуется в полтора раза более низкий битрейт или что при одинаковом битрейте можно получить в полтора раза более высокое качество.

Эффективнее, но сложнее, чем H.264

По сути, каждый фильм — это последовательность отдельных кадров. При конвертировании каждый кадр разделяется кодером на блоки больших размеров. Значения яркости и цвета каждого блока преобразуются в частоты, которые кодер при последующей квантизации упрощает. На данном этапе происходит сокращение данных. С появлением стандарта MPEG было введено весьма важное усовершенствование — межкадровое предсказание. Учитывая, что содержимое следующих друг за другом кадров, как правило, не меняется, кодеры объединяют короткие последовательности кадров в группы. При этом только первый кадр из группы сохраняется в виде полного кадра со значениями частот, а все последующие изображения получают значения частот от полного кадра, определяя разницу по отношению к нему. Кодер при кодировании блока выполняет поиск блока в предыдущем или последующем кадре, который имеет аналогичное содержимое, так как в этом случае разница обычно отсутствует. Информацию о том, где в другом кадре находится полученный таким образом блок, он сохраняет в виде вектора движения.

Помимо межкадрового предсказания H.264 использует также внутрикадровое предсказание: кодер H.264 определяет в полном кадре не значения частоты, а только разницу по отношению к соседним пикселям. Например, большой участок голубого неба очень хорошо поддается сжатию, поскольку соседние значения цвета и яркости практически идентичны. Для сравнения: H.264 сжимает полные кадры на 50% эффективнее, чем JPEG. Таким образом, задача кодера состоит в поиске как можно большего количества схожих фрагментов в тех же или соседних кадрах. Чем точнее он работает, тем лучше результат и больше объем вычислений.

Новый кодек H.265 также использует межкадровое и внутрикадровое предсказание, однако поиск схожих блоков он осуществляет намного точнее, чем H.264. Для этого в H.265 были упразднены блоки фиксированных размеров, то есть макроблоки размером 16х16 точек, которые используются с момента появления видеокодирования. Вместо этого кодер выбирает размер ячейки дерева кодирования. Доступны три варианта — 16х16 (для видео низкого разрешения), 32х32 и 64х64 точки (для HD-видео). Каждую ячейку дерева кодирования кодер разделяет на ячейки кодирования, которые он сжимает независимо друг от друга, используя оптимальный метод (межкадровое или внутрикадровое предсказание). Ячейки кодирования могут иметь размеры 64х64 и 8х8 точек, причем их значения яркости кодируются отдельно от значений цвета (блоки, содержащие значения яркости и цвета, называют блоками кодирования). Для предсказания кодер разделяет блоки кодирования на блоки предсказания различных размеров, оперируя восемью шаблонами (см. слева). Сложный процесс разделения позволяет даже в последовательности кадров с высокой детализацией выбирать блоки, которые однообразны по своей структуре, то есть состоят из небольшого количества значений яркости и цвета.

Оптимизация технологии кодирования

H.265 отличается от H.264 степенью эффективности. Так, при внутрикадровом предсказании кодер в целях определения разницы может применять фрагменты больших размеров из соседних кадров. Благодаря этому эффективность кодирования повышается на 20%. Для межкадрового предсказания он может использовать вектор движения соседних блоков предсказания (Merge Mode — режим соединения). Однако повышенная гибкость при кодировании  требует жертв: новый кодек более ресурсоемкий в сравнении с предшественником. Для декодера H.265 предусмотрены технологии параллельной обработки данных: алгоритм Wavefront Parallel Processing позволяет одновременно декодировать отдельные последовательности ячеек дерева кодирования определенного кадра. В случае с  видео формата 1080p с ячейками дерева кодирования  размером 64х64 точки декодер может единовременно обрабатывать до 16 потоков.

H.265 в деталях

Новый стандарт сжатия видео оптимизирован для поиска максимального количества блоков со схожими значениями яркости и цвета. В этом случае достаточно будет сохранить данные значения для одного блока, чтобы применять их затем к другим блокам. Для наиболее эффективного выполнения данной задачи кодер способен гибко настраивать размер и форму блоков. Однако это требует значительных объемов вычислений.

Создание блоков в соответствии с содержимым

В H.265 отказались от простого деления кадра на макроблоки размером 16х16 пикселей. Вместо этого кодер создает ячейки дерева кодирования, размер которых зависит от разрешения. Для HD-фильмов стандартным является размер 64х64 пикселя. В зависимости от видеоконтента он делит их на блоки кодирования различных размеров, которые служат основой для предсказания.

Получение данных с помощью предсказания

Предсказание означает, что кодер сохраняет не абсолютные значения яркости и цвета, а лишь разницу в сравнении с другими блоками, на которые он ссылается посредством вектора движения. Для пространственного предсказания кодер H.265 использует пиксели соседних блоков. При предсказании промежуточных макроблоков в P-слоях он осуществляет поиск схожих блоков соседних кадров.

Встроенная многопоточность

Процесс предсказания требует от декодера H.265 выполнения больших объемов вычислений при воспроизведении видео. На помощь приходит алгоритм параллельной обработки, который на каждый ряд блоков формирует отдельный поток, начиная с расположенной вверху слева ячейки дерева кодирования.

Теги h.265