Всего что сделано уже и не упомнишь. Попробую основное обозначить. Но надо помнить что речь идёт о динамической индикации. Практически всё уже упоминалось, просто разрозненно.
1) За счёт подключения большого количества светодиодов на строках, при переключении наблюдается послесвечение. Казалось бы простое решение выключить-поменять-включить(дешифратор) не работает. Делаю по другому. Строка всегда засвечена. Гашу светодиоды-переключаю строку-включаю новое значение. Паузу подбирал.
2) Использую две страницы видеоозу. Одну отображаю - во второй обновляю изображение. (чтобы избежать снега)
3) Переключаю страницы в начале кадра. (чтобы избежать ломающегося изображения)
4) (Что указал CD_Eater) Меняю изображение каждый кадр. Иными словами движущийся текст сдвигается каждый кадр.
У меня, конечно всё это задаётся командами. Для ускорения движения изменяется величина сдвига, для замедления сдвиг осуществляется один раз за N кадров. Так вот при N>1 картинка смотрится хуже. При N=1, с точки зрения наблюдателя, негорящие светодиоды сливаются в размытую черту, а движущийся текст "едет на колёсиках" без единого рывка. Теоретически я могу и плавно скорость подстраивать. Даже командами, но мне кажется это лишним.
Что посоветовать Вам - я не знаю. Наверное действительно временами гасить изображение. И подобрать частоту мерцания и соотношение пауза-засветка. А изображение перерисовывать в паузе. Если так не получается, то я бы попробовал значительно ускорить текст. Короче надо пробовать обмануть мозги.