Введение в сжатие видео

15
Введение в сжатие видео Дмитрий Ватолин Московский Государственный Университет CS MSU Graphics&Media Lab Version 2.4

Upload: msu-gml-videogroup

Post on 23-Dec-2014

2.359 views

Category:

Education


2 download

DESCRIPTION

О том, зачем, как и почему.

TRANSCRIPT

Page 1: Введение в сжатие видео

Введение в сжатие видео

Дмитрий Ватолин

Московский Государственный УниверситетCS MSU Graphics&Media Lab

Version 2.4

Page 2: Введение в сжатие видео

CS MSU Graphics & Media Lab (Video Group) http://www.compression.ru/video/

2

Причины сжатия видео Причины сжатия видео

Основные проблемы с видео: Несжатые данные занимают очень много места Каналы передачи и возможности хранения

ограничены Пример: Видео 720х576 пикселов 25 кадров в секунду в

системе RGB и прогрессивной развертке потребует потока данных примерно в 240 Мбит/сек (т.е. 1.8 Гб в минуту). На DVD-ROM диск размером 4.7Гб войдет всего 2.5 минуты. => Нужно сжатие в 35 раз для записи фильма.

Page 3: Введение в сжатие видео

CS MSU Graphics & Media Lab (Video Group) http://www.compression.ru/video/

3

Что используется при Что используется при сжатиисжатии

Когерентность областей изображения — малое локальное изменение цвета

Избыточность в цветовых плоскостях — используется большая важность яркости для восприятия

Подобие между кадрами — на скорости 25 кадров в секунду соседние кадры, как правило, изменяются незначительно

Page 4: Введение в сжатие видео

CS MSU Graphics & Media Lab (Video Group) http://www.compression.ru/video/

4

Что используется при Что используется при сжатиисжатии

Используется избыточность: Пространственная ( используется DCT

или Wavelet преобразования) Временная (между кадрами, сжимается

межкадровая разница) Цветового пространства ( RGB

переводится в YUV и цветовые компоненты прореживаются)

Page 5: Введение в сжатие видео

CS MSU Graphics & Media Lab (Video Group) http://www.compression.ru/video/

5

Пространственная и Пространственная и временная избыточностьвременная избыточность

Соседние кадры фильма (Терминатор-2)

Пространственная избыточность – цвет большинства соседних точек одинаков.

Временная избыточность – кадры весьма похожи

Page 6: Введение в сжатие видео

CS MSU Graphics & Media Lab (Video Group) http://www.compression.ru/video/

6

Межкадровая разницаМежкадровая разница

Именно такие кадры (с учетом поправки на компенсацию движения) и сжимает кодек. Их больше 99% в потоке.

(Амплитуды – малы, изображение практически однородно)

Page 7: Введение в сжатие видео

CS MSU Graphics & Media Lab (Video Group) http://www.compression.ru/video/

7

Качество видеоКачество видео

Не существует метода оценки качества кадра, полностью адекватного человеческому восприятию

Не существует метода оценки пропущенных кадров, полностью адекватного человеческому восприятию

Следствие: Можно декларировать любую степень сжатия в маркетинговых материалах.

Page 8: Введение в сжатие видео

CS MSU Graphics & Media Lab (Video Group) http://www.compression.ru/video/

8

PSNRPSNR

Базовые метрики – Y-PSNR, U-PSNR, V-PSNR

Хорошо работают только на высоком качестве.

nn

jiijij yx

nd(x,y) ,

1,1

2

22

10

255log10

Page 9: Введение в сжатие видео

CS MSU Graphics & Media Lab (Video Group) http://www.compression.ru/video/

9

Типы кадров в потокеТипы кадров в потоке

I-кадры — независимо сжатые (I-Intrapictures),P-кадры — сжатые с использованием ссылки на одно изображение (P-Predicted), B-кадры — сжатые с использованием ссылки на два изображения (B-Bidirection),

II PP PP BB PP PP BB PP PP BB II PP

Page 10: Введение в сжатие видео

CS MSU Graphics & Media Lab (Video Group) http://www.compression.ru/video/

10

Компенсация движенияКомпенсация движения

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

Алгоритмы компенсации движения отслеживают движение объектов в кадре Уменьшение межкадровой разницы (увеличение ее

степени сжатия) Необходимость сохранения информации о движении

в кадре Существенно бОльшее время, необходимое для

сжатия

Page 11: Введение в сжатие видео

CS MSU Graphics & Media Lab (Video Group) http://www.compression.ru/video/

11

Компенсация движения (2)Компенсация движения (2)

Идеальный алгоритм: выделение в кадре объектов и компактное описание их движений. Проблема: огромные объемы вычислений и весьма сложные алгоритмы.

Реально используются квадратные блоки, с размером, кратным 8 и достаточно простая организация блоков.

Page 12: Введение в сжатие видео

CS MSU Graphics & Media Lab (Video Group) http://www.compression.ru/video/

12

Компенсация движения (3)Компенсация движения (3)

Для каждого блока в кадре мы находим похожий в предыдущем кадре в некоторой окрестности положения блока.

Если достаточно похожий блок в предыдущем кадре не найден – блок сжимается независимо (Intra-Blocks).

Сжимаемое изображение

Блок, для которого мы ищем похожий

Область предыдущего кадра

Найденный подобный блок

Prepared by MSU Videogroup

Page 13: Введение в сжатие видео

CS MSU Graphics & Media Lab (Video Group) http://www.compression.ru/video/

13

Движение для Движение для B-B-кадракадра

Для B-кадров у нас появляется возможность выбирать как наиболее близкий блок из любого кадра, так и интерполировать блоки из двух кадров.

12

34

56

78

910

1112

1314

1516

1 2

3 4

56

78

9 1011

12

1314

15 16

12

34

5

78

9

6

10

1112

13

1415

16

12

34

56

78

910

1112

1314

1516

23

4

56

17

8

910

1112

13

1415

16

Предыдущий кадрP-кадр B-кадр Следующий кадрПредыдущий кадр

Prepared by MSU Videogroup

Page 14: Введение в сжатие видео

CS MSU Graphics & Media Lab (Video Group) http://www.compression.ru/video/

14

Сжатие межкадровой Сжатие межкадровой разностиразности

Классическая схема сжатия межкадровой разницы очень похожа на сжатие JPEG: блоки 8х8 сжимаются помощью дискретного косинусного преобразования

DCT

Квантова-

ние

Зигзаг сканирова

ние

RLE

Сжатие по

Хаффману

Page 15: Введение в сжатие видео

CS MSU Graphics & Media Lab (Video Group) http://www.compression.ru/video/

15

Схема простого Схема простого видеокодекавидеокодека

Coding Control

DCT QuantizationVideoInput

-

MotionCompensation

FrameStore

Motion Estimation

InverseQuantization

Out BitStream

+

IDCTEntropyCoding

VideoOutput

Original frames

Decompressedframes

Control signalsResidual data

MotionVectors data

Residual orI-frame selector