Рабочее
Работа над ретро-аутентичным кодеком видео продолжается, но начинает как-то подвисать. Или начинаю подвисать я.
В целом дело вроде бы продвигается. Добавил междукадровое сжатие, ограничитель битрейта, и прочие необходимые штуки, и какой-то файл уже создаётся. Даже задумал альтернативный формат на случай, если текущая система кодирования покажет себя не очень хорошо: сейчас формат кодирования макроблоков линейный, а может быть рандомным, что даст оверхед на теги позиционирования, но упростит кодирование по приоритетным изменениям.
Пока нет декодера именно видеопотока, только декодер отдельно взятых кадров, и я не вижу, получилось ли вообще что-нибудь, и насколько хорошо работает оценка изменений в макроблоках.
Но меня всё ещё угнетает дико низкая скорость кодирования, которая ещё сильнее снизилась после нововведений — в них тоже хватает вычислительно тяжёлых элементов с перебором всех пикселей и сортировкой списков. Даже жалкие 5 кадров кодируются заметное время, а мне для отладки пары энкодер-декодер необходимо кодировать хотя бы секунд 20 видео — 300 кадров (как можно догадаться, плавность видео тоже ретро-аутентичная, 15 кадров в секунду). И проделать это придётся не один (десяток) раз, пока всё заработает как надо. Отвлекаться сейчас на ускорение энкодера я не могу, так как сначала надо подтвердить работоспособность принятых ранее решений — может там вообще всё фигня и надо делать по новой, а не оптимизировать бесполезное.
Дополнительно нервирует то, что закончить всё это надо было уже давно, пора заниматься другим важным делом. А я всё топчусь на месте. Надо срочно как-то преодолевать этот рубикон.
Соображения по проблеме быстрой цветовой квантизации я оформил в виде отдельного поста, который опубликую чуть позже, через один-два других — не хочу частить с одной и той же не особо понятной темой.
рабочее
czbv