Всем добрый день.
----------
Последние рабочие сборки:
Исходники кодера и декодера (плеера): https://github.com/hitomi2500/avi2pseudo
Сборка кодера с видеофайлами : https://yadi.sk/d/n4C5_N8vzHGMnA
Как это выглядит:
Видео 1:https://www.youtube.com/watch?v=jTkKTztZx_I
Видео 2:https://www.youtube.com/watch?v=CLyV-c9ORko
Видео 3: (со знакогенератором РК) https://www.youtube.com/watch?v=qH7zHXyE41g
----------
Вздумалось мне попробовать прикрутить к Апогею видеоплеер. В качестве носителя выбрана карта через SD-интерфейс Алексея Морозова (vinxru), потому как альтернатив попросту нет (либо я про них не знаю). Конвертер набросан на коленке в Qt, он формирует полные видеобуферы и записывает их в файл подряд, а программа на КР580 попросту копирует сразу в видеопамять. Используется штатный режим Алексея 3A с разрешением 75(64)х51, с дополнительным апогеевским знакогенератором получается 192х102. Размер видеобуфера 3840 байт. Для отображения "обычного" видео разрешения конечно маловато, но специфическое видео с малым количеством деталей и/или с силуэтами выглядит нормально.
https://www.youtube.com/watch?v=vIcsYGBrFI4
Основной проблемой, как и ожидалось, оказалась производительность. Скорость следования кадров порядка 1.5 Гц, т.е. средняя скорость приёма данных порядка 6 килобайт в секунду. Судя по моему беглому анализу кода, биос Алексея использует какие-то хендшейки с микроконтроллером. Для сравнения, скорость работы мониторовской "R" около 9 килобайт в секунду, в целом немногим больше.
Вопрос в том, есть ли какие-то пути оптимизации.
Судя по исходникам "R", она выставляет адрес, теоретически на этом можно сэкономить, но немного. Также можно многократно продублировать группу команд чтение порта - запись в память - инкремент, на этом можно ещё сэкономить. Возможно при этом рассинхронизируется микроконтроллер, пока непонятно.
Может кто-нибудь сталкивался с задачей ускорения ввода в Апогей или другую машину из семейства?