Что такое метрики и для чего они нужны

Представьте себе такую ситуацию, вы сняли видео, отредактировали его и выложили в сеть для общего доступа. Но вместо хвалебных отзывов и лайков вы слышите о каких-то “квадратах”, “jpeg артефактах” и “пластилине”. На ваш взгляд видео получилось идеальное, зрители в свою очередь имеют прямо противоположное мнение. Или оцифровали вы домашний видеоархив, а через несколько лет, просматривая видео вы понимаете, что сжимать нужно было с другими настройками кодека тогда можно было бы вытянуть больше деталей из исходного видео. Или сжали видео с избыточным битрейтом с той целью, чтобы максимально близко быть к исходнику, а видео в итоге лагает, из-за того, что дисковая подсистема не может своевременно подкачать данные в буфер для непрерывного проигрывания потока. Всех перечисленных случаев можно было бы избежать если бы при выборе битрейта для кодека мы воспользовались некими математическими формулами, которые бы позволили исключить субъективное мнение и позволили бы правильно выбрать подход к кодированию видео. А факторов в кодировании приходится учитывать много, основные это тип кодека, режим кодирования, размер битрейта. В итоге получается, что кодирование это функция нескольких переменных f(x1, x2, x3,…, xn). И чтобы получить наилучшее значение этой функции на нашем видео мы должны руководствоваться некими правилами, которые подскажут нам как выбрать параметры кодирования x1…,xn чтобы получить максимально близкий к идеальному результат без тыкания пальцем в небо. Вот эти самые правила и есть метрики. Метрика – это сухая математическая формула, результатом которой есть число, указывающее отличие одного изображение от другого, в нашем случае это кадр закодированного видео и исходного.
Например формула для метрики может выглядеть вот так:


PSNR
Простейшая формула для PSNR (картинки с Википедии)

Глядя на такие формулы начинаешь чувствовать себя не очень уютно, конечно кроме тех, кто работает ежедневно с вещами из матанализа и алгебры. Но пугаться не стоит, программировать нам ничего не надо, кто-то уже позаботился о разработке кода для использования такой метрики. Здесь я ее привел только для того чтобы бало понятно, что чтоит за выражением метрика. Посмотрим на примере, как работают метрики.
Читать дальше