Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
семестр 2 / теоритическая_часть.odt
Скачиваний:
0
Добавлен:
13.05.2026
Размер:
11.3 Mб
Скачать

3Метрологическая часть

3.1Краткое описание кодека

В качестве исследуемого кодека был выбран открытый кодек VP9, развитием которого занимается компания Google. Он был разработан как эволюционное развитие кодека VP8. Основной задачей при разработке было значительное уменьшение битрейта по сравнению с VP8 и H.265.

Всего у кодека VP9 есть четыре профиля работы:

  • Profile 0: 8 бит на цвет, формат дискретизации 4:2:0.

  • Profile 1: 8 бит на цвет, формат дискретизации до 4:4:4.

  • Profile 2: до 12 бит на цвет, формат дискретизации 4:2:0, поддержка HDR.

  • Profile 3: до 12 бит на цвет, формат дискретизации до 4:4:4.

Также у кодека VP9 существует 14 уровней работы. Сводная таблица параметров всех уровней представлена ниже.

Р исунок 3.1.1 – Сводная таблица уровней работы кодека VP9

В таблице столбцы отображают следующее:

  1. Level – обозначение уровня.

  2. Max Luma Sample Rate – максимальная частота следования отсчётов яркостной составляющей.

  3. Max Luma Picture Size – максимальный размер расширенного кадра.

  4. Max Bitrate – максимальный битрей видео потока.

  5. Max CPB Size – максимальный размер буфера для четырёх последовательных кадров.

  6. Min Compression Ratio – минимально возможная степень сжатия видео.

  7. Max Number of Tiles – максимальное количество «плиток» на один кадр. Минимальный размер «плитки» по ширине – 256 пикселей, а максимальный – 4096 пикселей.

  8. Min Alt-Ref Distance – минимальное расстояние в кадрах между двумя последовательными кадрами-референсами.

  9. Max Reference Frames – максимальное количество референсных кадров в кадровом буфере.

  10. Max Width and Height for Luma Picture – максимальный размер кадра яркости.

  11. Example Frame Size and Display Rate – пример размера кадра и fps для каждого уровня работы кодека.

3.2Краткое описание принципа работы кодека

В работе кодека, в общем, выделяются четыре основных принципа:

  • Предсказание содержимого блоков;

  • Вычисление разницы между предсказанием и опорными кадрами;

  • Преобразование и квантование полученной разницы;

  • Кодирование полученных квантованных значений.

VP9 – блочный кодер. Максимальный размер блока – 64х64 пикселя, причём каждый блок может рекурсивно разбиваться на меньшее блоки (пример на изображении ниже).

Р исунок 3.2.1 – Структура блоков кодирования

Кодер адаптивно выбирает размер блока в зависимости от опознанных областей изображения: большие блоки выбираются в случае однородности кодируемой области; меньшие блоки – в случае распознавания движения или мелких деталей.

Кодер использует как внутрикадровую, так и межкадроввую модели предсказания. Для обоих предсказаний используются опорные кадры, коих может храниться до восьми штук. При этом, каждый блок может использовать либо один опорный кадр, либо их пару.

При внутрикадровом предсказании кодер автоматически выбирает направление предсказания из одного из доступных: горизонтальное, вертикальное, диагональное (45°) или произвольно-угловое. При этом вычисляется разница между опорным кадром и предсказанным. Кодируется только сама разница, которая, обычно, содержит куда меньшие значения, чем сама информация в пикселе.

При межкадровом предсказании происходит поиск кодируемого блока в опорном кадре, с дальнейшим описанием блока с помощью вектора движения. Вектор движения должен описывать координатное смещение объектов в блоке.

Как говорилось ранее, кодер работает только с вычисленной разницей между кадрами. Соответственно, к ней и применяются преобразования, переводящие кадр из области пространственной в область частотную. Кодер адаптивно выбирает между ДКП (Дискретным Косинусным Преобразованием) и ДАСП (Дискретным Асимметричным Синусным Преобразование). Также к преобразований существуют различные параметры размеров:

  • 4х4;

  • 8х8;

  • 16х16;

  • 32х32.

Преобразование применяются отдельно по строкам и столбцам.

Квантование происходит с учётом коэффициента квантования – константы, на которую делятся все полученные при дискретных преобразованиях значения. Коэффициент квантования может быть равен единице, что будет означать сжатие без потерь. Отличные от единицы значения соответствуют сжатию с потерями. Квантованные значения упорядочиваются по принципу: сначала коэффициенты низких частот, далее – высоких.

Далее производится арифметическое энтропийное кодирование: каждый бит кодируется с учётом вероятности появления (более вероятный – меньше бит на кодирование). Количество бит на символ динамически адаптируется по мере кодирования изображения.

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

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

Соседние файлы в папке семестр 2