7

Запихивание данных в видео, новый виток

Пару лет назад ради прикола я написал такую программку - чтобы можно было любой файл превратить в видео, залить на ютуб, скачать, и обратно получить исходный файл без ошибок.


И вот на днях, ну где-то в сентябре если точнее, попался мне  в Свежем Пикабу пост типа у МФТИ открывается бесплатный курс по нейросетям.

И тут мне явилось прозрение!

Почему бы не попробовать прилипить сюда нейросети ?

Ведь основной моей проблемой было что тот метод который я "изобрел" напрямую зависел от глубины моих познаний в алгоритмах сжатия видео (а глубина там такая что воробей яйца не намочит).

Нейросети же подобные проблемы решают подбирая оптимальное представление информации, и копать исходники видео-енкодера уже не так обязательно.


Интересно писать я все равно не умею, так что изложу мысли покороче.

Завидую CG художникам, им есть что показать, а что покажет быдло-прогер, стримчик как он часами тупит, то копаясь в коде с деббагером, то гугля ответы на встающие вопросы?

Это чудное чувство когда у тебя вдруг все перестает работать, и ты долго ищешь ошибку, которая заключалась в одной неправильной букве.

Я подхожу к проблеме "из любви к искусству", т.е. я пытаюсь сделать так чтобы информации на единицу площади картинки было максимальное количество, и пофик на условности типа что видео в 10-20 раз больше чем сам файл, или что можно сделать попроще и оно тоже работает. Ну разве что стараюсь сделать чтобы программа работала относительно быстро, насколько это вообще возможно.

Предыдущая прога умела впихнуть по 7 бит на участке 8х8 пикселей, в том числе используя цвет.

На текущем этапе получилось научить нейросеть впихивать по 16 бит на 8х8 пикселей в серых тонах, при этом получая не более 1% ошибок (напомню что идет речь именно о видео с Youtube), которые вполне себе можно исправлять.

Мечтаю улучшить результат, сейчас на 32 бит получаю 50% ошибок, но для этого скорее всего нужно придумывать немного другой подход к решению проблемы.

Вот так примерно выглядит участок кадра  видео

Если кому любопытно посмотреть на пример видео

(не забываем включить качество 1080р)

На данный момент программу потыкать нельзя - все держится на костылях и синей изоленте. Если в ближайшее время не придумаю как улучшить результат - тогда выпущу в свет программу из того что имеется.


P.S. Предвосхищая популярный вопрос - данная программа не претендует на звание "очень нужной в хозяйстве программы". Если вы не гик-извращенец, то вам такое вообще не понадобится. Создавалась из принципа "а почему бы и нет", а первый вариант вообще был сделан потому что учить С# по урокам было скучно (при условии что какой-то опыт нубо-кодинга уже имелся).