Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
llama / llama_master_thesis_MPiTK_2006_VM-1.pdf
Скачиваний:
30
Добавлен:
16.04.2013
Размер:
1.6 Mб
Скачать

 

 

 

3. Тестирование алгоритма

PSNR =10lg

2552

.

(3)

 

 

MSE

 

Значение PSNR выражается в децибелах (дБ); лучшему качеству декодированного изображения соответствует более высокое значение PSNR.

3.2.Настройки кодека MPEG-2

Вкачестве кодека MPEG-2 для сравнительного тестирования был выбран алгоритм, реализованный в программе Canopus ProCoder версии 1.50. Использовался однопроходный режим High speed; возможность использования B- кадров (т.е. кадров с двунаправленной компенсацией движения – не только по предыдущему кадру, но и по следующему) была отключена для создания равных условий тестирования, длина группы кадров (GOP, group of pictures) была установлена равной 15, то есть каждый 15-й кадр был ключевым.

3.3.Настройки алгоритма

Настройки предложенного в настоящей работе алгоритма (на графиках он представлен под названием FMVC) для различных битрейтов были следующими:

Битрейт,

Битовые затраты на

Битовые затраты на

Частота

кбит/с

I-кадр, bpp

RY для P-кадра, bpp

I-кадров, 1/с

500

0,88

0,10

10

 

 

 

 

620

1,00

0,12

10

 

 

 

 

720

1,11

0,16

10

 

 

 

 

830

1,21

0,20

10

 

 

 

 

980

1,31

0,26

10

 

 

 

 

1160

1,37

0,34

10

 

 

 

 

1310

1,45

0,40

10

 

 

 

 

1500

1,54

0,48

10

 

 

 

 

Для сжатия уточняющего изображения применялся алгоритм SPIHT, действующий над коэффициентами 5-уровневого ДВП в базисе CDF 9/7 [22], использующемся в алгоритмах сжатия статических изображений с потерями, в частности, в JPEG 2000.

Компенсация движения проводилась над блоками 8×8 пикселов. Радиус первого шага для трехшагового алгоритма поиска перемещенных блоков (см.

44

3. Тестирование алгоритма

п. 2.2) составляет 8 пикселов, второго шага – 3 пиксела, третьего – 1 пиксел. Прямоугольная область точного поиска для второго этапа алгоритма составляла 11×11 пикселов.

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

3.4. Результаты тестирования

На графиках показан покадровый PSNR для каждого из 150 кадров последовательности. Хорошо видно расположение I-кадров у обоих кодеков, а также момент времени, где меняется сцена.

45

 

 

 

 

3. Тестирование алгоритма

 

34

Tennis, битрейт 550 кбит/с

 

 

 

 

 

 

 

 

 

FMVC

 

32

 

 

MPEG2

 

30

 

 

 

 

28

 

 

 

dB

26

 

 

 

PSNR,

24

 

 

 

 

 

 

 

 

22

 

 

 

 

20

 

 

 

 

18

 

 

 

 

160

50

100

150

 

 

 

№ кадра

 

 

34

Tennis, битрейт 620 кбит/с

 

 

 

 

 

 

 

 

 

FMVC

 

32

 

 

MPEG2

 

30

 

 

 

 

28

 

 

 

dB

26

 

 

 

PSNR,

24

 

 

 

 

 

 

 

 

22

 

 

 

 

20

 

 

 

 

18

 

 

 

 

160

50

100

150

 

 

 

№ кадра

 

46

 

 

 

 

3. Тестирование алгоритма

 

34

Tennis, битрейт 720 кбит/с

 

 

 

 

 

 

 

 

 

FMVC

 

32

 

 

MPEG2

 

30

 

 

 

 

28

 

 

 

dB

26

 

 

 

PSNR,

24

 

 

 

 

 

 

 

 

22

 

 

 

 

20

 

 

 

 

18

 

 

 

 

160

50

100

150

 

 

 

№ кадра

 

 

34

Tennis, битрейт 830 кбит/с

 

 

 

 

 

 

 

 

 

FMVC

 

32

 

 

MPEG2

 

30

 

 

 

 

28

 

 

 

dB

26

 

 

 

PSNR,

24

 

 

 

 

 

 

 

 

22

 

 

 

 

20

 

 

 

 

18

 

 

 

 

160

50

100

150

 

 

 

№ кадра

 

47

 

 

 

 

3. Тестирование алгоритма

 

34

Tennis, битрейт 980 кбит/с

 

 

 

 

 

 

 

 

 

FMVC

 

32

 

 

MPEG2

 

30

 

 

 

 

28

 

 

 

dB

26

 

 

 

PSNR,

24

 

 

 

 

 

 

 

 

22

 

 

 

 

20

 

 

 

 

18

 

 

 

 

160

50

100

150

 

 

 

№ кадра

 

 

34

Tennis, битрейт 1160 кбит/с

 

 

 

 

 

 

 

 

 

FMVC

 

32

 

 

MPEG2

 

30

 

 

 

 

28

 

 

 

dB

26

 

 

 

PSNR,

24

 

 

 

 

 

 

 

 

22

 

 

 

 

20

 

 

 

 

18

 

 

 

 

160

50

100

150

 

 

 

№ кадра

 

48

 

 

 

 

3. Тестирование алгоритма

 

34

Tennis, битрейт 1310 кбит/с

 

 

 

 

 

 

 

 

 

FMVC

 

32

 

 

MPEG2

 

30

 

 

 

 

28

 

 

 

dB

26

 

 

 

PSNR,

24

 

 

 

 

 

 

 

 

22

 

 

 

 

20

 

 

 

 

18

 

 

 

 

160

50

100

150

 

 

 

№ кадра

 

 

34

Tennis, битрейт 1500 кбит/с

 

 

 

 

 

 

 

 

 

FMVC

 

32

 

 

MPEG2

 

30

 

 

 

 

28

 

 

 

dB

26

 

 

 

PSNR,

24

 

 

 

 

 

 

 

 

22

 

 

 

 

20

 

 

 

 

18

 

 

 

 

160

50

100

150

 

 

 

№ кадра

 

49

3. Тестирование алгоритма

Следующий график (рис. 21) для последовательности Tennis построен по предыдущим графикам и показывает общую производительность алгоритма в смысле соотношения качества и битовых затрат. Мерой качества служит усредненная оценка PSNR. (Следует отметить, что усредняется не сама эта оценка, а значение MSE по всем кадрам, и только после этого усредненное значение MSE подставляется в формулу (3) для PSNR.)

 

32

 

 

 

 

Tennis

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

FMVC

 

 

31

 

 

 

 

 

 

 

 

MPEG2

 

 

30

 

 

 

 

 

 

 

 

 

 

 

29

 

 

 

 

 

 

 

 

 

 

dB

 

 

 

 

 

 

 

 

 

 

 

PSNR,

28

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

27

 

 

 

 

 

 

 

 

 

 

 

26

 

 

 

 

 

 

 

 

 

 

 

25

 

 

 

 

 

 

 

 

 

 

 

24

600

700

800

900

1000

1100

1200

1300

1400

1500

 

500

 

 

 

 

 

битрейт, кбит/с

 

 

 

 

Рис. 21. Зависимость качества восстановленной последовательности Tennis от битовых

 

 

 

 

затрат на ее кодирование

 

 

 

Видно, что несмотря на достаточно хорошие графики покадрового PSNR, итог оказался не в пользу предложенного алгоритма. Это объясняется в первую очередь резким «провалом» PSNR при изменении сцены на 90-м кадре. Кодек MPEG-2 в этом месте ставит ключевой кадр, а FMVC ставит его только на 91-м кадре. Так как битовые затраты на кодирование уточняющего изображения фиксированные, а кодер не имеет возможности расставлять ключевые кадры оптимальным образом, 90-й кадр при обработке кодеком FMVC оказывается безнадежно испорченным, что наглядно демонстрирует рис. 22.

50

3. Тестирование алгоритма

(а)

(б)

(в)

(г)

(д)

(е)

(ж)

(з)

Рис. 22. Уточняющие изображения для кадров 89-91 (а, в, д) и их восстановленные на декодере аналоги (б, г, е), исходный 90-й кадр (ж) и его восстановленный аналог (з), bpp=0,20

Провалу логарифмической оценки на 6 дБ соответствует увеличение MSE в четыре раза, что не могло не сказаться на общем результате. Кроме того, важную роль сыграло и быстрое накопление ошибки на P-кадрах.

51

 

 

 

 

3. Тестирование алгоритма

Ниже приведены аналогичные графики для последовательности Flower Garden.

 

30

FlowerGarden, битрейт 550 кбит/с

 

 

 

 

 

 

 

 

 

FMVC

 

28

 

 

MPEG2

 

 

 

 

 

26

 

 

 

PSNR, dB

24

 

 

 

22

 

 

 

 

20

 

 

 

 

18

 

 

 

 

160

50

100

150

 

 

 

№ кадра

 

 

30

FlowerGarden, битрейт 620 кбит/с

 

 

 

 

 

 

 

 

 

FMVC

 

28

 

 

MPEG2

 

 

 

 

 

26

 

 

 

PSNR, dB

24

 

 

 

22

 

 

 

 

20

 

 

 

 

18

 

 

 

 

160

50

100

150

 

 

 

№ кадра

 

52

 

 

 

 

3. Тестирование алгоритма

 

30

FlowerGarden, битрейт 720 кбит/с

 

 

 

 

 

 

 

 

 

FMVC

 

28

 

 

MPEG2

 

 

 

 

 

26

 

 

 

PSNR, dB

24

 

 

 

22

 

 

 

 

20

 

 

 

 

18

 

 

 

 

160

50

100

150

 

 

 

№ кадра

 

 

30

FlowerGarden, битрейт 830 кбит/с

 

 

 

 

 

 

 

 

 

FMVC

 

28

 

 

MPEG2

 

 

 

 

 

26

 

 

 

PSNR, dB

24

 

 

 

22

 

 

 

 

20

 

 

 

 

18

 

 

 

 

160

50

100

150

 

 

 

№ кадра

 

53

 

 

 

 

3. Тестирование алгоритма

 

30

FlowerGarden, битрейт 980 кбит/с

 

 

 

 

 

 

 

 

 

FMVC

 

28

 

 

MPEG2

 

 

 

 

 

26

 

 

 

PSNR, dB

24

 

 

 

22

 

 

 

 

20

 

 

 

 

18

 

 

 

 

160

50

100

150

 

 

 

№ кадра

 

 

30

FlowerGarden, битрейт 1160 кбит/с

 

 

 

 

 

 

 

 

 

FMVC

 

28

 

 

MPEG2

 

 

 

 

 

26

 

 

 

PSNR, dB

24

 

 

 

22

 

 

 

 

20

 

 

 

 

18

 

 

 

 

160

50

100

150

 

 

 

№ кадра

 

54

 

 

 

 

3. Тестирование алгоритма

 

30

FlowerGarden, битрейт 1310 кбит/с

 

 

 

 

 

 

 

 

 

FMVC

 

28

 

 

MPEG2

 

 

 

 

 

26

 

 

 

PSNR, dB

24

 

 

 

22

 

 

 

 

20

 

 

 

 

18

 

 

 

 

160

50

100

150

 

 

 

№ кадра

 

 

30

FlowerGarden, битрейт 1500 кбит/с

 

 

 

 

 

 

 

 

 

FMVC

 

28

 

 

MPEG2

 

 

 

 

 

26

 

 

 

PSNR, dB

24

 

 

 

22

 

 

 

 

20

 

 

 

 

18

 

 

 

 

160

50

100

150

 

 

 

№ кадра

 

Итоговый график для последовательности Flower Garden выглядит значительно лучше аналогичного графика для последовательности Tennis. Сцена менялась постепенно, поэтому резких провалов качества на графиках покадрового PSNR не наблюдается. Однако хорошо заметна та же проблема, что и на предыдущей

55

 

 

 

 

 

 

 

 

 

3. Тестирование алгоритма

последовательности – быстрое ухудшение качества из-за накопления ошибки на P-

кадрах. В целом по всей последовательности качество сжатия у предложенного

метода оказалось лучше, чем у MPEG-2.

 

 

 

 

 

 

 

24

 

 

 

FlowerGarden

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

23.5

 

 

 

 

 

 

 

 

 

 

 

23

 

 

 

 

 

 

 

 

 

 

 

22.5

 

 

 

 

 

 

 

 

 

 

dB

 

 

 

 

 

 

 

 

 

 

 

PSNR,

22

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

21.5

 

 

 

 

 

 

 

 

 

 

 

21

 

 

 

 

 

 

 

 

 

 

 

20.5

 

 

 

 

 

 

 

 

FMVC

 

 

 

 

 

 

 

 

 

 

 

MPEG2

 

20

600

700

800

900

1000

1100

1200

1300

1400

1500

 

500

 

 

 

 

 

битрейт, кбит/с

 

 

 

 

Рис. 23. Зависимость качества восстановленной последовательности Flower Garden от

 

 

 

битовых затрат на ее кодирование

 

 

Тем не менее, по представленным результатам видно, что кодек, реализованный в простейшем варианте, имеет большие возможности для развития, прежде всего, в части кодирования P- и B-кадров. Могут быть рассмотрены методы компенсации движения в области вейвлет-преобразования: эта область еще недостаточно изучена и литературы по ней сравнительно немного.

Следует уделить внимание и алгоритмам постобработки видеокадров, которые сглаживают искажения, вносимые при кодировании, повышая субъективную оценку качества изображения на экране.

3.5.Выводы

Вглаве 3 приведены результаты сравнительного тестирования предложенного видеокодека и стандартного алгоритма MPEG-2 на двух тестовых видеопоследовательностях. Объяснены результаты сравнения, даны рекомендации по дальнейшему развитию видеокодека.

56

4. Оптимизация вычислений

4. Оптимизация вычислений

4.1. Общие направления оптимизации

Процесс кодирования видеопоследовательности является вычислительно сложным, поэтому промышленная реализация видеокодека должна активно использовать и алгоритмическую, и программную оптимизацию. В п. 1.3 были описаны классические примеры оптимизированных алгоритмов компенсации движения, высокая скорость работы которых достигается за счет незначительных потерь в качестве, а в п. 2.2 – дано описание алгоритма, используемого в разработанном видеокодеке.

Второй алгоритмической оптимизацией, использованной при разработке кодека является ускоренное вычисление ДВП по т.н. лифтинг-схеме [24], о которой рассказано ниже.

Программная оптимизация, то есть оптимизация, не затрагивающая принципов работы алгоритма, а использующая технические возможности платформы, при реализации видеокодеков обычно заключается в ручном кодировании наиболее критичных участков программы на ассемблере с использованием аппаратных расширений процессора, созданных специально для потоковой обработки сигналов. Такими расширениям, например, являются дополнительный блок XMMрегистров в архитектуре x86 и наборы дополнительных SIMD-инструкций (MMX, SSE, 3DNow!) в процессорах различных производителей. Для продолжающих развиваться многоядерных платформ делаются многопоточные версии кодеков, использующие возможности параллельных вычислений.

Так, при реализации рассмотренного в настоящей работе видеокодека были использованы оптимизированные процедуры преобразования цветового пространства RGB в YUV с различными типами прореживания. Чрезвычайно ресурсоемкая процедура вычисления суммы квадратов разностей блоков, используемая при вычислении MSE, была заменена версией, написанной на ассемблере с использованием MMX-расширений процессора.

Алгоритм SPIHT, рассмотренный в п. 2.4, имеет широкие возможности для оптимизации, о которых не упоминается в оригинальной статье [17]. Оптимизация этого алгоритма, выполненная в ходе разработки видеокодека, позволила ускорить

57

Соседние файлы в папке llama