Запихивание данных в видео, новый виток
Пару лет назад ради прикола я написал такую программку - чтобы можно было любой файл превратить в видео, залить на ютуб, скачать, и обратно получить исходный файл без ошибок.
И вот на днях, ну где-то в сентябре если точнее, попался мне в Свежем Пикабу пост типа у МФТИ открывается бесплатный курс по нейросетям.
И тут мне явилось прозрение!
Почему бы не попробовать прилипить сюда нейросети ?
Ведь основной моей проблемой было что тот метод который я "изобрел" напрямую зависел от глубины моих познаний в алгоритмах сжатия видео (а глубина там такая что воробей яйца не намочит).
Нейросети же подобные проблемы решают подбирая оптимальное представление информации, и копать исходники видео-енкодера уже не так обязательно.
Интересно писать я все равно не умею, так что изложу мысли покороче.
Завидую CG художникам, им есть что показать, а что покажет быдло-прогер, стримчик как он часами тупит, то копаясь в коде с деббагером, то гугля ответы на встающие вопросы?
Это чудное чувство когда у тебя вдруг все перестает работать, и ты долго ищешь ошибку, которая заключалась в одной неправильной букве.
Я подхожу к проблеме "из любви к искусству", т.е. я пытаюсь сделать так чтобы информации на единицу площади картинки было максимальное количество, и пофик на условности типа что видео в 10-20 раз больше чем сам файл, или что можно сделать попроще и оно тоже работает. Ну разве что стараюсь сделать чтобы программа работала относительно быстро, насколько это вообще возможно.
Предыдущая прога умела впихнуть по 7 бит на участке 8х8 пикселей, в том числе используя цвет.
На текущем этапе получилось научить нейросеть впихивать по 16 бит на 8х8 пикселей в серых тонах, при этом получая не более 1% ошибок (напомню что идет речь именно о видео с Youtube), которые вполне себе можно исправлять.
Мечтаю улучшить результат, сейчас на 32 бит получаю 50% ошибок, но для этого скорее всего нужно придумывать немного другой подход к решению проблемы.
Вот так примерно выглядит участок кадра видео
Если кому любопытно посмотреть на пример видео
(не забываем включить качество 1080р)
На данный момент программу потыкать нельзя - все держится на костылях и синей изоленте. Если в ближайшее время не придумаю как улучшить результат - тогда выпущу в свет программу из того что имеется.
P.S. Предвосхищая популярный вопрос - данная программа не претендует на звание "очень нужной в хозяйстве программы". Если вы не гик-извращенец, то вам такое вообще не понадобится. Создавалась из принципа "а почему бы и нет", а первый вариант вообще был сделан потому что учить С# по урокам было скучно (при условии что какой-то опыт нубо-кодинга уже имелся).