Здравствуйте!
Вопрос адресован людям понимающим принцыпы работы видео кодеков (у меня пока с этим проблемы).
Есть много 3gp видео (320x240), снятого на мобильный телефон. Оно очень ценно и должно воплотиться в фильм. Качество его естественно не очень, но и не так плохо как могло бы быть.
Статичные сцены выглядят достаточно приемлимо, но в динамических много «квадратов» - такие кадры не приемлимы. Пример: http://imageshack.us/photo/my-images/808/frames.png/
Лучше всего с «неприемлимыми кадрами» управляются алгоритмы вроде Gimp->Filters->Selective Gaussian Blur. Проблема в том, что применять эффект улучшения (за счет «умного» размытия) нужно только к проблемным кадрам, а не ко всем.
Задача: 1. Программно получить информацию о кадрах видео ролика (используя библиотеки связанные с ffmpeg, mencoder, что-то еще?) и узнать насколько конкретный кадр качественен (в моем представлении, которое возможно далеко от истины, нужно узнать насколько кадр «самостоятельный», что-то типа «key frame», чем дальше он от «самостоятельного», тем больше в нем артефактов, потому что кадр считается «промежуточным» и несет значительно меньше собственной информации). 2. Присвоить каждому кадру рейтинг качества (0.0 - 1.0) на основании полученной информации. 3. Чем хуже кадр, тем более агрессивное размытие (например тот же Selective Gaussian Blur) к нему нужно применить. P.S. Если нужно, я готов пойти на то, чтобы разложить ролики на картинки (с рейтингом качества) и программно прогнать их через Gimp, после чего сложить обратно в видео.
Спасибо! Принимаются адекватные советы и альтернативные пути улучшения качества видео.