Алгоритмы анализа значений параметров кодирования видеокодеков
К.О.Рагулина, В. Д. Попов, А.Е.Паршин, Кафедра Автоматизации Систем Вычислительных Комплексов факультета ВМиК
МГУ
{kragulina, vpopov, aparshin}@graphics.cs.msu.ru
Введение
Цифровое видео обладает такими размерами, что не представляется возможным хранить его в несжатом виде, поэтому сжатие является одной из главных задач в области работы с цифровым видео. Разные настройки видеокодеков ведут к сильно различающимся результатам, поэтому актуальна задача выбора значений используемых параметров сжатия видео. Стоит отметить, что параметров видеокодеков обычно довольно много, а процесс сжатия является весьма трудоемким. Поэтому перебрать все возможные настройки и выбрать лучшие, как правило, не представляется возможным. Большинство статей, посвященных видеокодекам, вообще не рассматривают такой задачи, как выбор оптимальных значений параметров и анализ параметров видеокодека, несмотря на ее практическую важность.
В этой статье рассмотрена задача анализа параметров видеокодеков с точки зрения эффективности использования их значений как в областях с фиксированным соотношением между качеством кодирования и скоростью работы кодека, так и с точки зрения средней эффективности по отношению к другим значениям параметра. Предложенные методы могут использоваться как конечными пользователями кодека для выбора нужных параметров, так и разработчиками видеокодеков для анализа эффективности реализации алгоритмов внутри кодека.
В дальнейшем под пресетом будет пониматься набор конкретных значений параметров видеокодека. В работе [10] находят один оптимальный пресет. Значение каждого конкретного параметра для оптимального пресета ищется как оптимальное для линейной функции средних по всем пресетам с одинаковым значением этого параметра характеристик, влияющих на время кодирования и качество закодированного видео. Недостатками этого метода является рассмотрение всех
Работа выполнена в рамках гранта РФФИ № 07-01-00759-а
пресетов для подсчета средних характеристик, использование их линейной комбинации, то есть фиксированное соотношение между характеристиками (находится только один оптимальный пресет для этого соотношения), а также использование предположения о независимости значений параметров. Действительно, если какое-то значение параметра в сочетании с одним набором других значений параметров приводит очень хорошие результаты, а с другим - очень плохие, то эти результаты будут усредняться, и нужная оптимальная комбинация может не быть найдена. Предлагаемое авторами сокращение числа замеров, а, следовательно, и количества усредняемых пресетов, только усугубляет ситуацию, так как хорошая комбинация параметров вообще может не попасть в рассмотрение (не будет измерена).
Этих недостатков лишены результаты работы [11]. В частности, авторы не делают предположений относительно независимости значений параметров. Они решают задачу нахождения всех оптимальных значений параметров и предлагают для этого два метода: метод полного перебора и нахождения линейной функции от вычислительной сложности и качества закодированного видео, при этом рассматривая все возможные линейные функции. Однако недостатками этого метода является сильная ориентация на конкретную видеопоследовательность. В действительности, оптимальные пресеты для одной видеопоследовательности не в точности совпадают с оптимальными пресетами для другой, однако в среднем отличаются от них незначительно. Поэтому имеет смысл анализировать не только оптимальные пресеты, но и близкие к ним.
Далее будут предложены два метода анализа параметров видеокодека: анализ при заданном соотношении скорость/качество и анализ с помощью ранжирования пресетов, избавленные от перечисленных выше недостатков, за исключением предположения о независимости значений параметров. При помощи разработанных методов был проанализирован ряд параметров кодека х264 [6] стандарта МРЕО-4 ЛУС/И.264 [7] (7 параметров, более 1700 пресетов). Краткие результаты этого анализа представлены ниже в статье, а более подробный отчёт с результатами анализа выложен в публичный доступ в Интернет [4].
Анализ при заданном соотношении скорость/качество
Оптимальные пресеты могут сильно отличаться между собой по времени кодирования и качеству закодированного видео. Анализ при заданном соотношении скорость/качество предназначен для выявления зависимости эффективности конкретных значений параметров видеокодека от соотношения 1 скорости и качества кодирования. Основной идеей метода является определение зависимости распределения количества пресетов с разными значениями анализируемого параметра среди лучших 10% пресетов в зависимости от значения 1. Алгоритм включает в себя три этапа: 1) выбор значений 1, 2) выбор лучших пресетов для заданных значений 1 и 3) вычисление плотности пресетов. Ниже приведено более подробное описание каждого из этапов.
1 этап. Выбор значений к
Множество значений 1 выбирается таким образом, чтобы количество новых лучших пресетов для соседних значений 1 было постоянным. Такое условие на выбор 1 нужно, чтобы уравнять значимость каждого значения и не рассматривать ее при визуальном анализе графиков, которые строятся на 3 этапе.
2 этап. Выбор лучших пресетов для заданных значений к
10% Лучшие пресеты для выбранной 1
1
Я
S
Г
» •
V
\
• •
• другие пресеты
• l = 0.01 (Время = 2.28, Качество = 0.84)
• l = 0.03 (Время = 2.28, Качество = 0.84)
• l = 0.06 (Время =1.31, Качество = 0.87)
• l = 0.11 (Время = 1.15, Качество = 0.88)
• l = 0.21 (Время = 0.88, Качество = 0.92)
• l = 0.26 (Время = 0.88, Качество = 0.92)
• l = 0.33 (Время = 0.84, Качество = 0.93)
• l = 0.50 (Время = 0.55, Качество = 1.06)
• l = 1.12 (Время = 0.46, Качество = 1.14)
• •
• ф
3 4 5 6 7 8
Время, Т
Меньше время кодирования
Рисунок 1. 10% лучших пресетов для некоторых значений 1,
1.2
1.15
1.1
1.05
0.95
0.9
0.85
2
Для каждого заданного на первом этапе значения 1 вычисляется величина
м (р) = р) + хт (р), (1)
где Q(р) - среднее отношение битрейтов при одинаковом количестве искажений (использовалась метрика Р8КЯ) по отношению к референсному пресету для пресета р [3], Т(р) - относительное время кодирования для пресета р по сравнению с референсным пресетом. Референсный (эталонный) пресет необходим для нормализации оценок и их стабилизации при запуске на различных конфигурациях компьютеров. При этом пресеты, на которых достигается минимум этой функции при некотором 1, изменяющемся от 0 до бесконечности, будут оптимальными по Парето (то есть, не будет пресетов, которые работают лучше и быстрее).
Среди всех пресетов выбираются 10% пресетов с минимальным значением величины. М(р). Величина 10% была выбрана исходя из условий, чтобы с одной стороны, разброс значений Т(р) и Q(р) среди выбранных 10% точек был небольшой, с другой стороны, чтобы точек было достаточно для вычисления статистики на 3 этапе. Результат выбора 10% лучших пресетов для некоторых 1 представлен на Рисунке 1.
3 этап. Вычисление плотности пресетов
Для каждого анализируемого параметра видеокодека строится график зависимости плотности пресетов с разными значениями этого параметра к от 1. Для каждого заданного на 1 этапе значения 1 и значения анализируемого параметра к вычисляется величина:
N (1, к) N
Ы% (1, к) = 100% •_ 4 ' 7 , N (1, к) = -к- (2) /Л ; ^ N (1, к) N ^
т
где NkX - количество пресетов со значением параметра равным к среди 10% лучших пресетов для заданного значения 1, найденных на втором этапе, Nk -
количество пресетов со значением параметра равным к среди всех пресетов. Таким образом, величина N%(X,к) характеризует процентное соотношение пресетов со значением параметра равным к среди 10% лучших пресетов для заданного значения 1.
На Рисунке 2 приведен пример такого графика для параметра видеокодека «алгоритм компенсации движения» (см. Таблицу 1). По оси абсцисс откладывается
значение 1 и она имеет логарифмический масштаб. Однако подписи внизу
и вверху к оси абсцисс отражают значение времени и битрейта соответственно. Дело в том, что оперировать значениями 1 не так удобно, как значениями времени кодирования и битрейта, а каждому значению 1 можно сопоставить значения битрейта и времени кодирования самого лучшего для этого 1 пресета, то есть пресета, на котором достигается минимум значения величины М(р) (см. формулу (1)). Это и было сделано для приведенного ниже графика. По оси ординат отложена величина Ы%(X,к) (см. формулу (2)).
О = 0.84 60
Алгоритм компенсации движения
0.86 0.80.88 0.92 0.93 1.06 1.14 1.19
Т = 2.28 1.65 1. 1 5 ** 0. 8 0.84 0.55 0. 6 0. 2
Время, Т
Больше соотношение между временем кодирования и качеством закодировнного видео
Рисунок 2. Анализ при заданном соотношении скорость/качество.
Анализировать график можно, руководствуясь двумя утверждениями, непосредственно следующими из (2):
1. Чем выше лежит линия, соответствующая некоторому значению параметра, тем лучше это значение.
2. Если линия, соответствующая некоторому значению параметра, имеет максимум при некотором значении 1, то использовать это значение параметра лучше всего при этом соотношении скорость/качество.
Предложенный метод анализа позволяет для нужного соотношения 1 определить значения параметров, использование которых приводит к наилучшим результатам кодирования (минимальному времени кодирования и качеству,
возможному при заданном соотношении 1), а так же находить оптимальное соотношение 1 для использования конкретного значения анализируемого параметра.
Анализ с помощью ранжирования пресетов
Анализ с помощью ранжирования пресетов предназначен для общей оценки параметров относительно других параметров без выделения доминирующего соотношения между скоростью и качеством кодирования. Он позволяет понять, какое значение параметра чаще приводит к лучшей эффективности кодирования (в терминах качества и скорости) по отношению к другим пресетам видекодека.
Анализ полученных данных методологически похож на анализ при заданном соотношении скорость/битрейт, однако вместо 10% лучших пресетов для фиксированного 1, здесь используются все пресеты, имеющие фиксированный ранг (принадлежащие определенному классу).
Анализ с помощью ранжирования пресетов состоит из трех этапов: 1) ранжирование пресетов, 2) разбиение пресетов на классы и 3) вычисление плотности пресетов. Ниже каждый из этих этапов рассмотрен более подробно.
1 этап. Ранжирование пресетов
Для ранжирования пресетов используется следующий алгоритм:
1) Строится множество оптимальных пресетов (пресетов, лежащих на нижней части выпуклой оболочки, то есть на огибающей линии) - эти пресеты получают ранг «1».
2) Уже ранжированные пресеты удаляются, и строится новое множество оптимальных пресетов: они получают ранг «2».
3) Процесс повторяется, пока не будут ранжированы все рассматриваемые пресеты.
Расстояние до огибающей линии
Я
Я
К
Г
• -
• •
другие пресеты огибающие линии огибающие линии огибающие линии огибающие линии огибающие линии огибающие линии огибающие линии огибающие линии огибающие линии огибающие линии огибающие линии огибающие линии
№№ 1 - 10 №№ 11 - 20 №№ 21 - 30 №№ 31 - 40 _ №№ 41 - 50 №№ 51 - 60 №№ 61 - 70 -№№ 71 - 80 №№ 81 - 90 №№ 91 - 100 №№ 101 - 110 №№ 111 - 120
• •
2 3 4 5 6 7 8
Время, Т
Меньше время кодирования
10 11
Рисунок 3. Разбиение пресетов на классы
1.2
1.15
1.1
1.05
0.95
0.9
0.85
2 этап. Разбиение пресетов на классы
Далее все пресеты разбиваются на классы по значению ранга, присвоенному на 1 этапе. К первому классу относятся пресеты с рангом от 1 до К, ко второму - от 1 + К до 2К, к п -ому - от 1 + К(п -1) до 1 + Кп . Пример результата такого разбиения для К = 10 представлен на Рисунке 1. Величина К = 10 была выбрана исходя из условий, чтобы с одной стороны, разброс значений рангов среди выбранных точек был небольшой, с другой стороны, чтобы точек было достаточно для вычисления статистики на третьем этапе.
3 этап. Вычисление плотности пресетов
Этот этап совпадает с соответствующим этапом в анализе при заданном соотношении скорость/битрейт с точностью до обозначений, достаточно заменить во всех формулах X . на п.
На Рисунке 4 приведен пример такого графика для параметра видеокодека количество В-кадров (см. Таблицу 1). По оси абсцисс отложен номер класса п. По оси ординат отложена величина Ы%(п,к) (см. формулу (3)).
Анализировать график можно, руководствуясь двумя утверждениями, непосредственно следующими из формулы (3):
1. Чем выше лежит линия для небольших номеров класса, соответствующая некоторому значению параметра, тем лучше это значение.
2. Чем ниже лежит линия для больших номеров класса, соответствующая некоторому значению параметра, тем хуже это значение.
Предложенный метод анализа позволяет определить значения параметров, использование которых приводит к наилучшим результатам кодирования (минимальному времени кодирования и качеству) в случае, когда нет априорной информации о желаемом соотношение между скоростью и качеством кодирования. Он позволяет понять, какое значение параметра чаще приводит к лучшей эффективности кодирования (в терминах качества и скорости) по отношению к другим пресетам видекодека.
Больше относительное количество пресетов Количество лучших пресетов в % 1 2 3 4 5 6 7 о о о о ^ о о о B- кадры
V
•
0 2 4 6 8 10 12 14 16 Номера огибающих линий _ Ближе к настоящей огибающей линии (лучше общее качество)
Рисунок 4. Анализ с помощью ранжирования пресетов.
Результаты
Описанные выше методы были реализованы при помощи сочетания среды запуска видеокодеков на языке программирования С++, вычисляющей качество и скорость кодирования отдельных пресетов видеокодека, и набора скриптов среды МЛТЬЛБ для визуализации полученных зависимостей и их анализа.
При помощи разработанных методов были протестированы ряд параметров кодека х264 [6] версии г938 стандарта МРЕО-4 ЛУС/И.264 [7]. В Таблице 1 приведены протестированные параметры и их значения (7 параметров, более 1700
пресетов). Жирным шрифтом отмечены значения этих параметров для референсного пресета. Тестирование проводилось на стандартной видеопоследовательности "Bus".
Параметр Значения Описание
partitions "none", "p8x8,b8x8,i8x8,i4x4", "all" Определяет тип разбиения при поиске.
bframes 0, 2, 4 Количество последовательных B-кадров между I and P кадрами. B-кадры - это кадры небольшого размера, но если их вставить правильно, то качество изменится не сильно.
ref 1, 4, 8 Максимальное количество используемых референсных кадров. Референсные кадры -кадры, которые ссылаются на другие похожие кадры, по которым они могут быть предсказаны.
me "dia", "hex", "umh", "teas" Алгоритм компенсации движения, метода уменьшения временной избыточности видео.
subme 1, 4, 5, 6 Определяет точность компенсации движения.
mixed-refs off, on Разрешает больший контроль в отношении выбора референсных кадров.
weightb off, on Включает взвешенное предсказание B-кадров, которое повышает его точность.
Таблица 1. Значения параметров, использованные при тестировании кодека.
Полученные результаты при анализе графиков для всех рассматриваемых параметров с помощью анализа при заданном соотношении скорость/качество и анализа с помощью ранжирования пресетов приведены в Таблице 2 и Таблице 3 соответственно.
Время > 1.31 [1.15; 1.31] [0.85; 1.15] [0.55; 0.85] [0.42; 0.55] < 0.42
Битрейт < 0.87 [0.87; 0.88] [0.88; 0.92] [0.92; 1.06] [1.06; 1.19] > 1.19
X < 0.1 [0.05; 0.07] [0.07, 0.4] [0.4, 0.56] [0.56, 5] > 5
Partitions "all" "p8x8,b8x8, i8x8,i4x4" "p8x8,b8x8, i8x8,i4x4" "none" "none" "none"
л Bframes 2 2 2 2 2 0
н <я Ref 4 1 1 1 1 1
Me "umh" "hex" "hex" "dia" "dia" "dia"
<я и subme 6 4 4 4 1 1
mixed-refs On on Off off off off
Таблица 2. Результаты анализа при заданном соотношении скорость/качество.
Параметр Результаты анализа
partitions Значения "p8x8,b8x8,i8x8,i4x4" и "all" не сильно отличаются. Значением "none" не оптимально.
bframes Значение 0 не оптимально. Значения 2 и 4 не сильно отличаются.
ref Значение 1 лучше значения 4, которое в свою очередь лучше значения 8.
me Алгоритмы "dia" и "hex" лучше остальных рассматриваемых значений. Значение "hex" немного лучше "dia". Значение "umh" значительно лучше "tesa". Однако среди лучший пресетов (первые 10 огибающих) много пресетов со алгоритмом "umh".
subme Значение 1 не оптимально. Значение 4 незначительно лучше 6, которое в свою очередь лучше 5.
mixed-refs Можно сказать, что значение "on" лучше "off'. Однако среди худших пресетов (последние 20 огибающих) много пресетов со значением "on". Для принятия решения, какое значение выбрать очень важен выбор значений других параметров.
weightb Значение "on" лучше "off'.
Таблица 3. Результаты анализа при заданном соотношении скорость/качество.
Заключение
Разработанные методы анализа параметров кодека позволяют оценивать параметры конкретного видеокодека для выработки практических рекомендаций по их использованию. Основное достоинство метода анализа при заданном соотношении скорость/качество заключается в возможности проводить анализ для фиксированного соотношения между временем и качеством кодирования для лучшего выбора значений параметров кодирования. Анализ с использованием ранжирования пресетов позволяет делать выводы об общей эффективности параметров по всему диапазону скоростей кодирования. Результаты этой работы могут быть полезны как конечному пользователю для определения оптимальных настроек видеокодека при сжатии видео, так и разработчикам видеокодеков для анализа работы отдельных частей видеокодека, соответствующих разным его настройкам и выбора направления дальнейшего улучшения его работы.
Список литературы
[10] Sullivan, G.J.; Wiegand, T. Rate-distortion optimization for video compression. IEEE Signal Processing Magazine, 1998, V 15, pp 74-90.
[11] Ватолин Д., Паршин А. Сравнения кодеков стандарта MPEG-4 AVC/H.264 с использованием объективных метрик. Graphicon '06, стр. 447-454
[12] Анализ параметров видеокодека x264 стандарта MPEG-4 AVC/H.264. Сайт www.compression.ru.http://www.compression.ru/video/codec_comparison/x264_optio ns_analysis_08.html
[13] Лотов А.В., Поспелова И.И. Конспект лекций по теории и методам многокритериальной оптимизации. - М.: МГУ, 2008.
[14] Видеокодек x264 стандарта MPEG-4 AVC/H.264. Доступен по адресу http://www.videolan.org/developers/x264.html
[15] Coding of audio-visual objects - Part 10: Advanced Video Coding - ISO/IEC 1449610:2005
[16] Подиновский В.В., Ногин В. Д. Парето-оптимальные решения многокритериальных задач. - М. Наука. Главная редакция физико-математической литературы, 1982. - 256с
[17] Андронов С.А. Методы оптимального проектирования: Текст лекций. - СПб.: ГУАП, 2001. - 169 с.
[18] Sangyoun Lee; Madisetti, V.K. Parameter optimization of robust low-bit-rate video coders. IEEE CSVT, 1999 V 9, N 6, pp. 849-855.
[19] Kwon D., Agathoklis P., Driessen P. Performance and Computational Complexity Optimization in a Configurable Video Coding System, IEEE Wireless Communications and Networking, Vol. 3, (2003), 2086-2089.