Впихиваем данные в видео, быстрее чем раньше (или творчество программиста)
Продолжаю делать отчеты о проделанной работе над моей программой для хранения данных внутри видео, с возможностью использовать сайты типа Youtube.
Решил посмотреть какое место в моей программе самое тормозное. Запустил профайлер и долго пытался понять почему указанное место вообще может тормозить.
Подробности, если хотите, будут в комментариях, если кратко - класс BlockingCollection (решение для передачи данных между потоками) кушает немного ЦПУ если нужно подождать действие другого потока, а в моей реализации данная ситуация возникала очень часто.
После внесенных изменений программа заработала в среднем в 2 раза быстрее (по субъективным тестам).
Также кодирование через DCT заменено с вещественного (дробные числа) на целочисленную реализацию из семейства кодеков AVC/H264. Данное изменение позволило уменьшить количество ошибок, что в свою очередь позволяет увеличить плотность кодирования (для случая Youtube - с 5 до 7 бит на блок), что также дает прирост скорости работы.
Обновление программы пока не делал - хочу сначала попробовать добавить стеганографию через DCT+LSB (еще бы сначала разобраться как лучше это сделать).
Репозиторий где можно скачать программу и посмотреть исходники https://bitbucket.org/Filarius/videofy
Предыдущие отчеты можно посмотреть в моей профиле http://pikabu.ru/profile/wingblack
Приветствую ваши пожелания по улучшению программы.
