В H.264 и H.265 есть фильтр деблокинга, он ловит и пытается исправить именно эти артефакты. Нужно потрошить спецификации и исходники энкодера на предмет того, как эти кадры находит он.
Работать нужно именно с видео, поскольку
специальный софт может точно находить размеры и позиции макроблоков, пережатие\потеря которых и дают эти артефакты. Таким образом, переведя p- и b- фреймы в картинки (фактически, набор i-фреймов) вы только усложните себе задачу.
Я бы копал
сюда,
сюда и далее.
P.S.: Да, кстати, StreamEye из ссылки выше такое скорее всего умеет. Но он, ЕМНИП,
совсем платный. Были и бесплатные аналоги.