LINUX.ORG.RU

videomedian: фильтр для восстановления видео с сильными артефактами

 


0

1

Мой мини-проект: https://github.com/vi/videomedian

Основной сценарий использования: улучшение видео при оцифровке плохого оригинала.

Принцип работы: каждый пиксель на выходе - это медиана от значения расположенного в этом месте пикселя за N последних кадров.

Может, где-нибудь уже есть такие фильры, но по-нормальному реализованные?


Например в mplayer - hqdn3d. Хотя по мне лучше переписать под CUDA или OpenCL - фильтр ow из того же mplayer. А то в однопотоке он оооочень медленный.

qwerta ()
Последнее исправление: qwerta (всего исправлений: 4)

Нечто похожее применяется в коммерческих плагинах-шумодавах и называется «temporal denoising». Не знаю, как обстоит дело с открытыми реализациями. Для поглядеть на результат при разных настройках, можно взять пробную версию Neat Video. Ему нужно много параллельных вычислений (Cuda/OpenCL) и памяти (Титан/R9 390x/RX 480).

LittleKawaiiNeko ★★ ()

В ffmpeg посмотрите. Вполне может быть, что ваш фильтр приймут в библиотеку libavfilter.

Последний пример, Natural, впечатлил.

Andrey_Utkin ★★ ()
Ответ на: комментарий от qwerta

В hqdn3d нужно очень большое chroma_tmp чтобы был толк.

vi0 ()

Что-то не верю я в простые усредняторы. И то что он тут по оси времени, не должно волшебным образом вылечить его проблемы.

Vit ★★★★★ ()
Ответ на: комментарий от Vit

Просто (или сложно) усреднятор уже есть: atadenoise (нашёл в исходниках FFmpeg, когда искал на основе чего свой туда добавить).

Суть mediandenoise в медиане вместо среднего.

Естественно, о супер-качестве речь не идёт. Такой фильтр, думаю, может пригодиться для запущенных случаев, когда при записи с аналогово эфира чёрно-белая часть картинки худо-бедно пришла, а с цветом совсем плохо.

Короткие, однокадровые «вспышки» фильтр должен вообще удалять, не размазывая.

vi0 ()
Последнее исправление: vi0 (всего исправлений: 1)
Ответ на: комментарий от vi0

Чем именно усреднять - не принципиально. Если рассуждать абстрактно, тебе надо обкоцать входной спектр по высоким частотам. Усреднятор - это фильтр с очень пологой характеристикой. То бишь - очень говёный.

Эффект конечно будет, и можно там немного рогалики крутить, но простая арифметика - путь тупиковый. Правда я не могу сообразить, что именно по временной оси надо в спектр перегонять чтобы фильтр с хорошей крутизной слепить :)

Vit ★★★★★ ()
Ответ на: комментарий от vi0

Короткие, однокадровые «вспышки» фильтр должен вообще удалять, не размазывая.

Ну где-то удалит, а где-то картинку запорет. Поэтому чтобы подходить объективно, надо как-то формализовать что физически происходит. Обычно режут высокие частоты (то что по временной оси - суть не меняет). Качество усреднятора под такой фильтр - сам понимаешь.

Vit ★★★★★ ()
Ответ на: комментарий от Vit

Действительно хороший фильтр - это наверное что-то в стиле neural-enhance, только для видео. Но это уже совсем другой уровень.

vi0 ()
Ответ на: комментарий от vi0

Чтобы оценивать фильтр, надо сначала сформулировать что ты фильтруешь.

Если ты хранишь буфер фреймов, то скорее всего затраты на вычисление IIR-фильтра будут сравнимы с твоим медианным усреднителем. Только результат предсказуемый и скорее всего заметно лучше.

Vit ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.