Введение в сжатие видео Дмитрий Ватолин Московский Государственный Университет CS MSU Graphics&Media Lab Version 2.4
CS MSU Graphics & Media Lab (Video Group) Структура лекций u Раздел 1. Основные понятия в сжатии видео u Раздел 2. Построение простого видеокодека u Раздел 3. Построение мощного видеокодека u Раздел 4. Стандарты сжатия видео u Раздел 5. Новое трехмерное видео
CS MSU Graphics & Media Lab (Video Group) Причины сжатия видео u Основные проблемы с видео: Несжатые данные занимают очень много места Каналы передачи и возможности хранения ограничены u Пример: Видео 720х576 пикселов 25 кадров в секунду в системе RGB и прогрессивной развертке потребует потока данных примерно в 240 Мбит/сек (т.е. 1.8 Гб в минуту). На DVD-ROM диск размером 4.7Гб войдет всего 2.5 минуты. => Нужно сжатие в 35 раз для записи фильма.
CS MSU Graphics & Media Lab (Video Group) Характеристики видеопотока u Видеопоток характеризуется разрешением, частотой кадров (frames per second = fps) и системой представления цветов. u Например PAL - 720х576, SECAM - 640х480, 25 fps CIF - 352х288
CS MSU Graphics & Media Lab (Video Group) Что используется при сжатии u Когерентность областей изображения малое локальное изменение цвета u Избыточность в цветовых плоскостях используется большая важность яркости для восприятия u Подобие между кадрами на скорости 25 кадров в секунду соседние кадры, как правило, изменяются незначительно
CS MSU Graphics & Media Lab (Video Group) Что используется при сжатии Используется избыточность: u Пространственная ( используется DCT или Wavelet преобразования) u Временная (между кадрами, сжимается межкадровая разница) u Цветового пространства ( RGB переводится в YUV и цветовые компоненты прореживаются)
CS MSU Graphics & Media Lab (Video Group) Пространственная и временная избыточность Соседние кадры фильма (Терминатор-2) Пространственная избыточность – цвет большинства соседних точек одинаков. Временная избыточность – кадры весьма похожи
CS MSU Graphics & Media Lab (Video Group) Межкадровая разница Именно такие кадры (с учетом поправки на компенсацию движения) и сжимает кодек. Их больше 99% в потоке. (Амплитуды – малы, изображение практически однородно)
CS MSU Graphics & Media Lab (Video Group) Качество видео u Не существует метода оценки качества кадра, полностью адекватного человеческому восприятию u Не существует метода оценки пропущенных кадров, полностью адекватного человеческому восприятию Следствие: Можно декларировать любую степень сжатия в маркетинговых материалах.
CS MSU Graphics & Media Lab (Video Group) PSNR Базовые метрики – Y-PSNR, U-PSNR, V-PSNR Хорошо работают только на высоком качестве.
CS MSU Graphics & Media Lab (Video Group) Структура лекций u Раздел 1. Основные понятия в сжатии видео u Раздел 2. Построение простого видеокодека u Раздел 3. Построение мощного видеокодека u Раздел 4. Стандарты сжатия видео u Раздел 5. Новое трехмерное видео
CS MSU Graphics & Media Lab (Video Group) Типы кадров в потоке I-кадры независимо сжатые (I-Intrapictures), P-кадры сжатые с использованием ссылки на одно изображение (P-Predicted), B-кадры сжатые с использованием ссылки на два изображения (B-Bidirection),
CS MSU Graphics & Media Lab (Video Group) Компенсация движения u Простая межкадровая разница работает плохо при сильном движении в кадре u Алгоритмы компенсации движения отслеживают движение объектов в кадре Уменьшение межкадровой разницы (увеличение ее степени сжатия) Необходимость сохранения информации о движении в кадре Существенно бОльшее время, необходимое для сжатия
CS MSU Graphics & Media Lab (Video Group) Компенсация движения (2) u Идеальный алгоритм: выделение в кадре объектов и компактное описание их движений. Проблема: огромные объемы вычислений и весьма сложные алгоритмы. u Реально используются квадратные блоки, с размером, кратным 8 и достаточно простая организация блоков.
CS MSU Graphics & Media Lab (Video Group) Компенсация движения (3) Для каждого блока в кадре мы находим похожий в предыдущем кадре в некоторой окрестности положения блока. Если достаточно похожий блок в предыдущем кадре не найден – блок сжимается независимо (Intra-Blocks).
CS MSU Graphics & Media Lab (Video Group) Движение для B-кадра Для B-кадров у нас появляется возможность выбирать как наиболее близкий блок из любого кадра, так и интерполировать блоки из двух кадров.
CS MSU Graphics & Media Lab (Video Group) Сжатие межкадровой разности Классическая схема сжатия межкадровой разницы очень похожа на сжатие JPEG: блоки 8х8 сжимаются помощью дискретного косинусного преобразования
CS MSU Graphics & Media Lab (Video Group) Схема простого видеокодека
CS MSU Graphics & Media Lab (Video Group) Структура лекций u Раздел 1. Основные понятия в сжатии видео u Раздел 2. Построение простого видеокодека u Раздел 3. Построение мощного видеокодека u Раздел 4. Стандарты сжатия видео u Раздел 5. Новое трехмерное видео
CS MSU Graphics & Media Lab (Video Group) Пути повышения степени сжатия u Изменение алгоритма сжатия I-кадров (DCT >> Wavelet) u Изменение алгоритма сжатия без потерь (Huffman >> Arithmetic) u Постфильтрация получающихся кадров (Deblocking, deringing и т.п.) u Интра-фильтрация изображения (Loop- filtering) u Улучшение качества более значимых объектов (face detection)
CS MSU Graphics & Media Lab (Video Group) Пути повышения степени сжатия (2) u Применение обработки коэффициентов (фильтрация DCT коэффициентов) u Предварительная обработка фильма (префильтрация, подавление шумов, дрожания, артефактов черезстрочной развертки) u Улучшение алгоритмов масштабирования видео (билинейный >> бикубический) u Применение контекстного моделирования (CABAC) u Применение оценочного сжатия
CS MSU Graphics & Media Lab (Video Group) Пути повышения степени сжатия (3) u Изменение алгоритмов компенсации движения Учет реальной степени сжатия получаемых блоков Изменение формы разбиения блоков Минимальный размер 4х4 ¼-пиксельная точность сдвига блока Несколько базовых изображений (больше 2)
CS MSU Graphics & Media Lab (Video Group) Wavelet u Wavelet – одна из самых современных технологий сжатия (используется, например в JPEG-2000) u Визуальное преимущество за счет того, что пропадает блочность.
CS MSU Graphics & Media Lab (Video Group) Wavelet Сравнение с MPEG-4-like compressors.
CS MSU Graphics & Media Lab (Video Group) Артефакты фильмов u Шум камеры (характерен для цифровых и веб-камер) – увеличивает размер u Мусор, царапины, дрожжание кадра (для материала, перегоняемого с пленки) – увеличивает размер u Блочность (для DVD, USB-1.0 веб-камер) – увеличивает размер, неприятна для глаз
CS MSU Graphics & Media Lab (Video Group) Префильтрация u Позволяет значительно поднять качество за счет подавления шумов u Позволяет подавить шумы во временной и пространственной области u Делает изображение более удобным для дальнейшей обработки
CS MSU Graphics & Media Lab (Video Group) Схема работы цепочки фильтров
CS MSU Graphics & Media Lab (Video Group) Префильтрация - было
CS MSU Graphics & Media Lab (Video Group) Префильтрация - стало
CS MSU Graphics & Media Lab (Video Group) Префильтрация: межкадровая разница Уменьшение шума в простой межкадровой разнице (без компенсации движения).
CS MSU Graphics & Media Lab (Video Group) Интра-фильтрация – было
CS MSU Graphics & Media Lab (Video Group) Интра-фильтрация – стало
CS MSU Graphics & Media Lab (Video Group) Постфильтрация - деблокинг Пример визуального уменьшения блочности.
CS MSU Graphics & Media Lab (Video Group) Постфильтрация - дерингинг Пример визуального уменьшения рингинга.
CS MSU Graphics & Media Lab (Video Group) Постфильтрация - перемешивание Межкадровая разница: Оригинал, «обычный» кодек, кадр с перемешиванием
CS MSU Graphics & Media Lab (Video Group) ME: Компенсация движения (Motion Estimation) Необходимо найти, как и куда сдвинулись блоки (объекты) в видео. Для каждого блока мы рассматриваем возможный вектор сдвига, и для каждого вектора рассчитываем расстояние между блоками. Задача: Если интерпретировать расстояние как высоту, то необходимо найти наиболее глубокую точку минимальным количеством замеров.
CS MSU Graphics & Media Lab (Video Group) ME: Метрика блоков Расстояние между блоками ищется как сумма модулей разности значений пикселов: + хорошо оптимизируется (важно, поскольку ME самая долгая операция при сжатии) – неустойчива к шуму – не учитывает изменения яркости
CS MSU Graphics & Media Lab (Video Group) ME: Иллюстрация постановки задачи Величина ошибки от x,y. Взят более-менее типичный блок, сдвинувшийся на 2 пиксела в сравнительно ровной области (стена). На левом рисунке – исходный блок, на правом он же, но по границе 1000 обрезанный сверху (ракурс тот же).
CS MSU Graphics & Media Lab (Video Group) ME: Иллюстрация постановки задачи (2) Тот же блок, обрезанный по границе 200 в том же ракурсе и в другом ракурсе. Хорошо видно, как много у этой функции (казавшейся на первом рисунке гладкой) локальных минимумов. Если алгоритм будет выбирать их, то блоки начнут «гулять»
CS MSU Graphics & Media Lab (Video Group) ME: Иллюстрация постановки задачи (3) Слева блок сдвинувшийся на 6 пикселов по одной оси, и на 11 по другой, однако локальным минимумов у графика много. Справа также сильно сдвинувшийся блок (однако, минимум виден замечательно). «Ровный» график у дальней стенки граница изображения
CS MSU Graphics & Media Lab (Video Group) ME: Базовые стратегии поиска Задача: За минимальное число замеров найти минимум. Используются комбинации стратегий: u Cross поиск u Ортогональный поиск u Трехшаговый поиск (TSS) u ME: Четырехшаговый поиск (FSS)
CS MSU Graphics & Media Lab (Video Group) ME: Cross поиск Cross поиск Шаблон уменьшается на каждом шаге. Шаблон:
CS MSU Graphics & Media Lab (Video Group) ME: Ортогональный поиск Ортогональный поиск: Пробуются попеременно вертикальное и горизонтальное направления. Шаблоны:
CS MSU Graphics & Media Lab (Video Group) ME: Трехшаговый поиск (TSS) Three Step Search (TSS) На каждом шаге размер шаблона уменьшается. Шаблон:
CS MSU Graphics & Media Lab (Video Group) ME: Четырехшаговый поиск (FSS) Four Step Search (FSS) Шаблон не уменьшается. Шаблон:
CS MSU Graphics & Media Lab (Video Group) ME: Спиральный поиск Спиральный поиск Контр-пример: Если мы будем все время искать с какого-то края, то у нас будут «ползти» ровные куски кадра.
CS MSU Graphics & Media Lab (Video Group) Пример MV-1 Кадр из фильма «Кошки и собаки». Векторами показаны распознанные вектора движения блоков.
CS MSU Graphics & Media Lab (Video Group) Пример MV-1 Кадр из фильма «Кошки и собаки». Следующий кадр. Показана межкадровая разница, сравнительно небольшая, благодаря компенсации движения.
CS MSU Graphics & Media Lab (Video Group) Пример MV-2 Кадр из фильма «Звездные войны, Эпизод 1». Векторами показаны распознанны е вектора движения блоков.
CS MSU Graphics & Media Lab (Video Group) Пример MV-2 Следующий кадр Хорошо видно, что хуже всего распознался «воротник за логотипом»
CS MSU Graphics & Media Lab (Video Group) Схема видеокодека
CS MSU Graphics & Media Lab (Video Group) Развитие стандартов за 10 лет Тестовая последовательность Foreman 10 кадров/с, QCIF 100 кадров всего Integer-pel motion compensation (H ) Half-pel motion compensation (MPEG ) TMN-10 Variable block size motion compensation (H ) Frame difference coding (H ) Intraframe DCT coding (DCT 1974, JPEG 1992) PSNR [dB] Битрейт [kbps] ? 67 %
CS MSU Graphics & Media Lab (Video Group) Структура лекций u Раздел 1. Основные понятия в сжатии видео u Раздел 2. Построение простого видеокодека u Раздел 3. Построение мощного видеокодека u Раздел 4. Стандарты сжатия видео u Раздел 5. Новое трехмерное видео
CS MSU Graphics & Media Lab (Video Group) Благодарности Автор выражает глубокую признательность Александру Жиркову за предоставленные слайды по трехмерному видео.
CS MSU Graphics & Media Lab (Video Group) Сжатие 3d-видео Трехмерное видео – новое направление развития алгоритмов обработки и сжатия видео (пока слабо распространены устройства показа) u Стереоскопическое видео u Интерактивное 3D Видео и MPEG-4
CS MSU Graphics & Media Lab (Video Group) Определение 3D Видео (3DV) 3D Видео или 3D Анимация ? Видео получают путем съемки/захвата Анимацию получаю путем моделирования Требования к представлению 3DV: Визуализация в реальном времени Произвольная сложность объектов и их движений Эффективная компрессия Интерактивность (*)
CS MSU Graphics & Media Lab (Video Group) Подходы к 3DV Представления Стереоскопическое видео Multi-View видео Потоковая передача 3D Потоковая передача параметров лица Видео Текстуры Визуализация Обычный дисплей 3D очки 3D экран
CS MSU Graphics & Media Lab (Video Group) 3D / Стандарты стереоскопического видео Основанные на аналоговых 2D Видео: Система с чередованием полей (Field- Sequential): u Четные строки – левый канал, нечетные – правый u Наиболее простой, выгодно использует Interlacing в аналоговых форматах, но не преобразуем между: – NTSC(North America,Japan): 60Hz, 525lines – PAL, SECAM: 50Hz, 625 u Необходимо: очки со ставнями и устройство синхронизации очков с текущим изображением левого/правого канала
CS MSU Graphics & Media Lab (Video Group) 3D / Стандарты стереоскопического видео Основанные на аналоговых 2D Видео: Система с чередованием строк (Field- Sequential): u Четные строки – левый канал, Нечетные – правый u Наиболее простой, выгодно использует Interlacing, но не преобразуем между: – NTSC(North America,Japan): 60Hz, 525lines – PAL, SECAM: 50Hz, 625 u Необходимо: очки со ставнями и устройство синхронизации очков с текущим изображением левого/правого канала
CS MSU Graphics & Media Lab (Video Group) 3DV / Стандарты стереоскопического видео Менее распространенные представления: Разделение каналов по сторонам (Sidefields) Разделение каналов по высоте (Subfields) Отдельное хранение каналов (Separate Channels) Анаглифы: Разделение каналов с использованием различных цветовых составляющих каналов, обычно синего и красного Недостаток: невозможность передачи полноцветного изображения Преимущество: необходимы только очки с цветовыми фильтрами
CS MSU Graphics & Media Lab (Video Group) 3DV / Стандарты стереоскопического видео u Преимущества стереоскопического видео: Совместим с традиционными форматами записи 2D видео Нет необходимости в восстановлении 3Д информации u Недостатки: Необходимость дополнительного оборудования Фиксированная точка наблюдения, отсутствие интерактивности
CS MSU Graphics & Media Lab (Video Group) 3DV/ Интерактивное 3D Видео u Интерактивное 3D видео зависит от положения и ориентации наблюдателя. u Для такого представления необходима группа калиброванных в пространстве и времени видео потоков + информация о третьем измерении (глубине). u Для визуализации такого представления используется технологии Image-Based Rendering, а точнее к Video-Based Rendering
CS MSU Graphics & Media Lab (Video Group) 3DV/ Интерактивное 3D Видео Примеры интерактивного видео: u Одна камера с каналом глубины u Стереоскопическое видео с восстановлением глубины (1) u Свободные камеры ( 2) с глубиной– для представления 3D видео объектов u Панорамное видео (3) – канал глубины не требуется 1 2 3
CS MSU Graphics & Media Lab (Video Group) Существуют ли стандарты для интерактивного 3D видео? u Multiview profile (MPEG-2) Предназначен для сжатия множества видео потоков, но не для 3D Видео, отсутствие информации о калибровке камер u Multiple auxiliary components (MPEG-4) Позволяет кодировать канал глубины, но не приспособлен для этого, отсутствие информации о калибровке камер u MPEG-4 Animation Framework eXtension (AFX) : Light Field Mapping (LFM): Multi-View Images, но не Multi-View Video Depth-Image Based Representations (DIBR): Позволяет представлять, компрессировать и интерактивно визуализировать 3D Видео
CS MSU Graphics & Media Lab (Video Group) 3DV / Depth-Image Based Representations (MPEG-4 AFX) u Представление состоит из: Множество калиброванных видео потоков Два варианта сжатия информации о глубине: u Отдельные видео потоки глубины или альфа-каналы u Компрессированный поток Текстурированных Бинарных Волуметрических Октодеревьев – Большая степень сжатия по сравнению с хранением отдельных каналов глубины – Позволяет хранить в несколько раз меньшее число цветовых видеопотоков на объект u Недостатки: Мощности современных компьютеров хватает только на воспроизведение 3D видео объектов с разрешением порядка 512^3, на 3D видео фильмы мощности не хватает
CS MSU Graphics & Media Lab (Video Group) Задания u Задания по курсу расположены на странице курса: