Сегодня я расскажу вам о такой штуке, как масштабирование видео. Каждый день мы встречаемся с ним, но не каждый понимает, как оно вообще происходит, и мол, дескать, нафиг мне это не надо вообще.
А вот нифига. Предисловие.
Думаю, большинство людей знает, что видео - это набор кадров, а каждый кадр состоит из кучки цветных точек. Количество этих точек называется разрешением, и когда этих точек меньше, чем на вашем мониторе - надо как то решать проблему. Поэтому и существуют алгоритмы интерполяции, которые растягивают видео до нужного размера.
Наглядно проиллюстрировать самые известные можно картиночками из вики.
Интерполяция методом ближайшего соседа. Если вы видите отчетливо заметные зубчики пикселей при увеличении - значит это именно она. Действует принцип - за что купил, за то и продаю. Из плюсов - работает быстрее всех, не вносит никаких искажений.
Билинейная интерполяция. Наверное, самый распространенный случай. Алгоритм, грубо говоря, связывает точки прямыми линиями сначала в одном направлении, потом в другом, т.е плоскостями. Немного мылит картинку и сглаживает лесенки. Достаточно быстрый.
Бикубическая интерполяция. Связывает точки сплайнами 3 степени, т.е, для изображения - поверхностями. Очень неплохо сглаживает все лесенки, но вносит много мыла. В видео по умолчанию сейчас используется редко. Дает теплый, ламповый эффект :)
К тому же во многих плеерах можно встретить такие вещи, как spline36, jinc, mitchell, а также фильтров и прескейлеров, начиная от superxbr, и заканчивая крайне сложными с точки зрения вычислительной мощности nnedi3 и waifu2x, которые являются нейронными сетями.
Закончим предисловие, перейдем к картинкам. Для наглядности взят "Ходячий замок", качество SD, растянуто до FullHD, на рисованных изображениях разница видна лучше. Подопытный плеер - mpv.
По-порядку:
-бикубическая интерполяция
-билинейная интерполяция
-jinc
-и конечно, метод ближайшего соседа.
Здесь, как ни странно, имхо, побеждает билинейная интерполяция. Не зря ее так любят. Она не сильно мылит картинку, не грузит комп и не дает "звона", как jinc (каемка вокруг рта).
Еще картиночку в студию.
Пошли пушки потяжелее. По-порядку:
- spline36
- spline36 + настройки opengl-hq
- билинейная интерполяция + superxbr
- билинейная интерполяция + superxbr + sharpen (небольшое "заострение граней").
Что сказать? Superxbr явно рулит и педалит в аниме. Лесенки убирает совсем (если оно не перешакалено несколько раз), артефакты немного давит. Небольшое заострение граней - это уже по вкусу. Хотя и spline36 справляется довольно хорошо, при меньшем потреблении ресурсов, именно его использует mpv по-умолчанию у меня. Впрочем, даже на моей машине с FX-6300 разницы не заметно.
"Му-му" - говорит коровка.
"Гав-гав" - говорит собачка.
"Нахуя ты это писал? Я нихера не понял и не вижу разницы" - говорит пикабушник.
Т.е актуальность.
Ну, далеко не все есть в FullHD, это да. Мониторы выше FullHD вроде как еще не запретили. Так что затюнинговать плеер для воспроизведения чего-нибудь нарисованного на хорошем дисплее иногда бывает неплохо.
У меня все.