Алгоритм поиска оптимальных по Парето параметров кодирования видеокодеков на основе объективных метрик качества видео
В.Д. Попов, А.Е. Паршин Кафедра Автоматизации Систем Вычислительных Комплексов факультета ВМиК
МГУ
(уророу, ара^Ыи} @ graphics.cs.msu.ru
Введение
Современный мир уже сложно представить себе без цифрового видео. Оно используется повсеместно: для просмотра фильмов в домашних условиях, организации телеконференций через Интернет, широковещательной трансляции, теленаблюдения, съёмки телефильмов, в медицине, космонавтике, образовании и многих других областях человеческой деятельности.
К достоинствам цифрового видео относится, в первую очередь, сохранение качества при многократной перезаписи и хранении при условии целостности носителя. Для аналогового хранения видео это было не так - качество терялось как при каждой перезаписи, так и при длительном хранении, что создавало серьезные неудобства при работе с ним.
Специфицируя формат передаваемых данных [1], современные стандарты сжатия видео оставляют большое число возможностей для реализации процесса кодирования различными алгоритмами, имеющими различную эффективность. Из-за этого у современных видеокодеков возникает множество параметров, определяющих характеристики алгоритмов сжатия. Например, количество кадров, по которым проводится компенсация движения, размеры макроблоков, диапазон поиска векторов движения, параметры алгоритмов предобработки кадра. Выбор параметров зависит от характеристик последовательности и требуемого качества и является нетривиальной задачей. Для упрощения использования кодека, разработчики задают некоторое множество шаблонов параметров - для высокого качества, для высокой скорости работы и промежуточные варианты. При этом желательно, чтобы шаблоны,
Работа выполнена в рамках гранта РФФИ № 07-01-00759-а
выбранные разработчиком, позволяли кодировать видеопоследовательность с наилучшим качеством для заданного пользователем времени работы и битрейта.
В данной статье рассматривается задача выбора значений параметров кодека для получения характеристик алгоритма с заданными свойствами и предлагается алгоритм выбора всех наборов параметров кодирования, обладающих наилучшим качеством кодирования при заданной скорости работы.
Обзор методов
Для решения задачи оптимизации параметров видеокодека существует несколько подходов. В работе [5] используется теория ортогональных массивов (orthogonal arrays) для выделения комбинаций параметров, наиболее влияющих на качество кодирования (вопрос скорости работы в статье не рассматривается). Алгоритм, предложенный авторами, обладает экспоненциальной сложностью работы, хотя и работает намного быстрее полного перебора. Также он не гарантирует, что будут найдены все оптимальные пресеты, и что все найденные пресеты будут являться оптимальными.
В работе [9] предлагается универсальная система для нахождения оптимальных значений параметров видеокодека, основанная на применении симплекс-метода для нахождения минимума функции нескольких переменных.
Также есть ряд работ, посвященных анализу качества кодирования видеокодеков [2], [3], но в них не анализируются возможные настройки видеокодека, варьирование которых приводит существенной разнице в эффективности работы видеокодеков.
Описание алгоритма
Определения
Пресетом называется совокупность значений параметров. Например, вектор ("umh", 10, 4) означает пресет кодирования, задающий кодеку использовать метод поиска векторов движения "umh", диапазон поиска 10х10 пикселей и 4 опорные кадра.
В данной статье рассматриваются две характеристики пресетов кодеков: скорость работы кодека и качество кодирования. Для получения интегральной оценки скорости кодирования вычисляется среднее время кодирования тестовой последовательности на заданном диапазоне битрейтов. Для стабилизации результатов
замеров времени кодирования процесс кодирования повторяется несколько раз и выбирается наименьшее время кодирования в качестве итоговой оценки. Различные оценки скорости кодирования при последовательном запуске идентичного процесса кодирования возникают из-за различных побочных процессов, выполняющихся на тестовой ЭВМ при использовании многозадачной операционной системы.
Для оценки качества кодирования последовательности на заданном битрейте используется метрика Р8КЯ. Оценка качества кодирования на диапазоне битрейтов вычисляется при помощи построения кривой «итоговый битрейт/качество» и применения алгоритма сравнения кривых [3]. Для упрощения сравнения качества кодирования различных пресетов и для стабилизации результатов измерения относительно различных видеопоследовательностей, сравниваются кривые «итоговый битрейт/качество» тестируемого пресета и некоего эталонного пресета.
Эталонный пресет используется для стабилизации замеров скорости и качества
и т-ч и
относительно различных последовательностей. В дальнейших экспериментах в качестве эталонного пресета используется пресет со значениями параметров по умолчанию.
Окрестностью пресета Р называется множество пресетов, отличающимся от пресета Р значением одного и только одного параметра. Оптимальным по Парето пресетом называется пресет, лучше которого нет пресетов по скорости и качеству одновременно. Основной задачей описанного ниже алгоритма является поиск множества оптимальных по Парето пресетов среди всех возможных комбинаций значений параметров видеокодека.
Описание алгоритма
Так как задача нахождения оптимального по Парето пресета является задачей дискретной оптимизации и в общем случае требует значительных вычислительных ресурсов (используются алгоритмы, близкие к полному перебору, имеющие экспоненциальную оценку времени выполнения относительно количества параметров [5]), то авторы поставили перед собой задачу найти «эффективные» пресеты -пресеты, близкие по характеристикам скорость кодирования/качество к оптимальным по Парето. Для контроля соотношения между скоростью и качеством кодирования используется параметр Лагранжа X, активно применяющийся в алгоритмах
кодирования видео [4]. Варьирование параметра алгоритма X, позволяет перебирать пресеты от медленных и качественных до самых быстрых и наименее качественных.
Алгоритм варьирует значения i-го параметра пресета (i пробегает значения от 1 до n, где n - количество параметров), начиная с некоего стартового пресета, который в начале работы алгоритма равен эталонному, и находит наилучший из перебранных пресетов, используя соотношение:
M (S, Q, Л) = Q + S
в котором:
Q - качество закодированного видео (результат сравнения кривых «итоговый битрейт/качество»),
S - скорость кодирования,
X - соотношение между Q и S. Если этот параметр близок к нулю, то оценка будет высокой для медленных и качественных пресетов. С увеличением параметра, оценка будет повышаться для более быстрых, но менее качественных пресетов.
Результатом работы этого алгоритма является пресет с наилучшими характеристиками из просмотренных.
Далее, если увеличивать параметр X, то для некоего X' алгоритм найдет другой «эффективный» пресет. А для любого X < X" < X' алгоритм будет находить уже найденный пресет.
X' вычисляется по формуле:
Л ,= Q( p,) - Q (r)
' S (r) - S (p,), где:
r - найденный пресет;
p - пресет из окрестности r;
Q(e) - качество кодирования пресета е;
S(e) - время кодирования пресета e;
Таким образом, получается множество параметров X', и l = min Л'
Х<1[
Для найденного X' выполняется алгоритм поиска «эффективного» пресета. Если новое X' найти не удается, алгоритм завершает свою работу.
Алгоритм
1. Инициализируем Х=Х0 (в частности, можно использовать Х0 = 0).
2. Для заданного X находим «эффективный» пресет методом градиентного спуска:
а. Вычисляем время кодирования и качество для начального пресета. Вычисляем оценку (М0), по формуле:
м (^, е, я) = |+^ ) (1)
б. Перебираем все пресеты из окрестности начального пресета.
в. Вычисляем время кодирования и качество ьго пресета из окрестности. Вычисляем (Ми), по формуле (1).
г. Если Мп > М0, то начальный пресет := найденный пресет.
д. Если все пресеты из окрестности начального пресета имеют оценку хуже, то остановиться и вернуть начальный пресет. Иначе повторить алгоритм с шага б.
3. Увеличиваем X, используя формулу (2), чтобы найти пресет, удовлетворяющему другому соотношению скорость кодирования/качества -более медленный, но более качественный
Я'= Р >- е ('') Я'= min я; <2>
4. Если все пресеты в окрестности найденного обладают меньшим временем кодирования, алгоритм прекращает свою работу. Иначе перейти на шаг 2.
Результаты
Параметр Значения
--partitions "none", "all", "p8x8,b8x8,i8x8,i4x4"
--bframes 0, 2, 4
--ref 1, 4, 8
--me "dia", "hex", "umh", "tesa"
--subme 1, 4, 5, 6
--mixed-refs off\on
--weightb off\on
Таблица 1. Параметры кодека х264, выбранные для тестирования алгоритма
Алгоритм тестировался на кодеке x264, на стандартных видеопоследовательностях «Bus», «News», «Stefan», на битрейтах 200, 350, 600, 800, 1000 и 1300 Кбит/с. Для каждой последовательности алгоритм запускался 30 раз с различными случайно выбранными начальными пресетами.
Тестировались 7 параметров (см. Таблица 1), всего 1728 пресетов. Все оптимальные по Парето пресеты перечислны в Таблице 2.
Алгоритм в среднем нашёл 76% пресетов, являющимися оптимальными по Парето (Рисунок 1). Для оценки качества найденных пресетов использовалось расстояние по оси качества между значением качества найденного пресета и его проекцией вдоль оси качества на оптимальную по Парето кривую (кривую, состоящую из оптимальных по Парето пресетов). Относительное отклонение найденных пресетов от оптимальных по Парето в данной мере в среднем составляло 0.11%, что означает, что характеристики найденных пресетов практически не уступают оптимальным по Парето. Алгоритм перебирает в среднем 10% пресетов.
Название пресета Оценка скорости Оценка качества
--bframes=4 --me="dia" --partitions="p16x16,p8x8" --ref=4 --subme=1 0.405509 1.191290
--bframes=0 --me="dia" --partitions="none" -ref=8 --subme=1 0.440738 1.143350
--bframes=0 --me="dia" --partitions="all" --ref=8 --subme=1 0.530029 1.056690
--bframes=0 --me="dia" --partitions="none" -ref=1 --subme=1 0.808208 0.928896
--bframes=0 --me="dia" --partitions="all" --ref=1 --subme=1 0.844842 0.916337
--bframes=0 --me="dia" --partitions="p16x16,p8x8" --ref=1 --subme=1 1.096690 0.884237
--bframes=2 --me="dia" --partitions="none" -ref=1 --subme=1 1.105410 0.883289
--bframes=2 --me="dia" --partitions="all" --ref=1 --subme=1 1.256070 0.873373
--bframes=2 --me="dia" --partitions="p16x16,p8x8" --ref=1 --subme=1 1.576780 0.856413
--bframes=4 --me="dia" --partitions="none" -ref=1 --subme=1 2.178490 0.835395
--bframes=4 --me="dia" --partitions="all" --ref=1 --subme=1 3.020140 0.830835
--bframes=4 --me="dia" --partitions="p16x16,p8x8" --ref=1 --subme=1 8.704300 0.826391
--bframes=0 --me="dia" --partitions="none" -ref=4 --subme=1 8.740280 0.826391
Таблица 2. Оптимальные по Парето пресеты, найденные алгоритмом полного
перебора
Gradient Search vs Full Search ("bus")
Рисунок 1. Сравнение эффективности предложенного алгоритма и полного перебора Заключение
Предложенный алгоритм выбора параметров видеокодека позволяет эффективным способом получить параметры, близкие к оптимальным по Парето с точки зрения качества и скорости работы видеокодека. Основными достоинствами алгоритма является возможность его работы на большом наборе возможных опций и независимость от деталей реализации видеокодека.
Список литературы
[1] ITU-T recommendation and international standard of joint video specification (ITU-T Rec. H.264/ISO/IEC 14 496-10 AVC). Joint Video Team (JVT) of ISO/IEC MPEG and ITU-T VCEG, JVTG050, 2008.
[2] Lambert, P.; De Neve, W.; De Neve, P.; Moerman, I.; Demeester, P.; Van de Walle, R. Rate-distortion performance of H.264/AVC compared to state-of-the-art video codecs. Circuits and Systems for Video Technology, IEEE Transactions on Volume 16, Issue 1, Jan. 2006 Page(s):134 - 140
[3] Ватолин Д., Паршин А. Сравнения кодеков стандарта MPEG-4 AVC/H.264 с использованием объективных метрик. Graphicon '06, стр. 447-454
[4] Sullivan G. J., Wiegand T. Rate-Distortion Optimization for Video Compression. IEEE Signal Processing Magazine, Vol. 15, Num. 6, pp. 74-90, Nov. 1998
[5] Sangyoun Lee; Madisetti, V.K. Parameter optimization of robust low-bit-rate video coders. Circuits and Systems for Video Technology, IEEE Transactions on Volume 9, Issue 6, Sep 1999 Page(s):849 - 855
[6] Анализ параметров видеокодека x264 стандарта MPEG-4 AVC/H.264. Сайт www.compression.ru. Адрес в Интернете
http://www. compression.ru/video/codec_comparison/x264_options_analysis_08.html
[7] Лотов А.В., Поспелова И.И. Конспект лекций по теории и методам многокритериальной оптимизации. - М.: МГУ, 2008.
[8] Подиновский В.В., Ногин В.Д. Парето-оптимальные решения многокритериальных задач. - М. Наука. Главная редакция физико-математической литературы, 1982. - 256с
[9] Zhang, Huipin; Cote, Guy. Determining optimal configuration of video encoding parameters using numerical search algorithms. Proceedings of the SPIE, Volume 6822, pp. 682211-682211-7 (2008).