ПОДСИСТЕМА ПОДГОТОВКИ ВИДЕОПОТОКА К
ОНАЛАЙН-ТРАНСЛЯЦИИ
Введение
Вычислительная техника давно стала привычным средством решения множества разноплановых задач, важнейшей из которых является обработка, хранение и передача информации.
В начале развития компьютерной техники вся информация в основном представлялась в цифровом, а позже в текстовом виде. Но с увеличением вычислительной мощности электронных устройств все большее значение приобретает именно медиа-информация.
Изображения и видео могут использоваться для поиска и распознавания информации, но в первую очередь как средство её хранения и передачи. Повсеместное распространение электронных мобильных устройств, таких как телефоны, КПК, и смартфоны, их все возрастающие технические характеристики делают такой обмен доступным широкому кругу людей. Возможность снять видео и позже выложить его в сеть сейчас предоставляет очень много различных сервисов, коммерческих и нет.
В связи с этим большую важность сегодня приобретает такой раздел компьютерной графики как улучшение качества изображений. Так как видео-поток, по сути является совокупностью изображений-кадров, классические алгоритмы обработки изображений применимы и к видео. Проблему составляют только сложные ресурсоемкие вычисления, происходящие во время этой обработки. До недавних пор даже незначительная коррекция видео приводила к ощутимой задержке при его воспроизведении, в связи с чем большинство существующих программ обработки предназначены для повышения качества уже отснятых видео-файлов.
Предметной областью данного дипломного проекта является сервис онлайн-трансляции видео.
Иногда в жизни возникают ситуации, когда требуется передать видео по сети в реальном времени. Примерами могут служить получающие все большее распространение онлайн-видеоконференции, новости с места событий в прямом эфире, информация с камер слежения и т.п. Подобный функционал способен предоставить сервис онлайн-трансляции видео.
Трансляция может происходить с различных мобильных устройств, имеющих доступ в интернет. Необходимым условием работы является установленное на транслирующем устройстве приложение для создания трансляций. Запустив это приложение пользователь активирует камеру своего устройства, записываемые при этом видео и аудио по сети отправляются на сервер.
Сервер принимает входящий поток от устройства и организует доступ к нему других пользователей, отображая ссылку на транслируемый поток в списке текущих трансляций. На странице транслируемого потока присутствует проигрыватель, отображающий получаемое видео и аудио в режиме реального времени.
В качестве стороны, принимающей трансляцию может выступать как клиентское приложение для мобильного устройства, так и веб-клиент (браузер).
Принимающее мобильное устройство должно иметь доступ в интернет, а также установленное приложение для просмотра трансляций. После запуска приложения пользователь может ввести сам или выбрать среди доступных на сервере ссылку на транслируемый видео-поток. После этого мобильное устройство начинает получать видео- и аудиоданные от сервера и воспроизводить их. Просмотр продолжается до остановки трансляции или выключения приложения.
На текущий момент клиентская часть сервиса ориентирована на операционную систему Android, и, соответственно, на поддерживающие её мобильные устройства.
Трансляция может происходить не только с различных устройств, но и в самых различных ситуациях. При использовании камер с низким разрешением, при съемке в плохую погоду, даже просто вследствие передачи по сети на видео могут появляться нежелательные эффекты, такие как шумы, проблемы с освещением, вибрация. Кроме того, принимающее устройство может не совпадать по характеристикам с передающим. В случае, если видео транслируется, к примеру с профессиональной камеры, а принимается на дешевом мобильном телефоне, нет смысла увеличивать трафик передавая неизменный видеопоток устройству, которое все равно не сможет воспроизвести его в полной мере. И наоборот, если входное видео низкого качества предполагается к воспроизведению на устройстве с высокими характеристиками, можно постараться его улучшить (повысить разрешение, сгладить, настроить резкость и контрастность)
Все это подводит к необходимости создания сервиса предобработки изображений перед трансляцией. Проблема состоит в том, что обработка видео требует больших временных затрат, что неприемлемо при онлайн-трансляции, когда даже малейшая задержка сразу заметна.
Актуальность дипломной работы заключается разработке алгоритмов улучшения
качества видео-потока, не привязанных к конкретной платформе, а также в
применении высокопроизводительных вычислительных систем для минимизации
задержки, возникающей при обработке.
. Постановка задачи
Предмет исследования: Возможность (целесообразность) применения алгоритмов обработки изображений для подготовки видеопотока к трансляции в реальном времени.
Цель дипломной работы:
Разработка алгоритмов обработки видеопотока, адаптированных к режиму онлайн-трансляции и их реализация на конечном множестве вычислительных узлов (вычислительном кластере) в виде совокупности сервисов, каждый из которых представляет отдельный фильтр.
Для достижения поставленной цели можно выделить следующие задачи:
1. Провести анализ существующих алгоритмов фильтрации и сегментации изображений.
2. Выявить наиболее быстрые методы.
. Разработать алгоритмы обработки видеопотока на основе выделенных методов.
. Реализовать разработанные алгоритмы на ЭВМ с использованием языка С++, в среде разработки Visual Studio.
. Перенести разработанные алгоритмы на ОС Linux.
. Реализовать принимающую часть цепочки сервер-клиент, получающую видеопоток с мобильного устройства.
Поставленные задачи реализуются с использованием следующих средств:
1. Изучение и анализ литературных источников по фильтрации и сегментации изображений.
2. Изучение и анализ литературных источников по обработке видеопотоков.
. Изучение документации к открытой библиотеке компьютерного зрения OpenCV.
Критерий эффективности - разработка системы подготовки видеопотока к трансляции, минимизация задержки отображения видеопотока подверженного предварительной обработке фильтрами.
Разрабатываемое ПО, должно включать в себя набор следующих компонентов:
шумоподавляющий фильтр
фильтр резкости
фильтр цветокоррекции
компонент сегментации
компонент выделения контуров
компонент интерполяции кадра (изменения разрешения)
2. Техническое задание
Разрабатываемый комплекс программ предназначен для предварительной обработки видеопотока, участвующего в трансляции в режиме реального времени. Обработка позволяет повысить качество транслируемого видео, устранить негативные эффекты, возникающие вследствие сжатия и перекодировки потока, а также несовершенства записывающего оборудования.
Область применения разрабатываемой системы достаточно
многогранна. На принципах онлайн-трансляции основаны видеоконференции,
получающие все более широкое распространение как средство ведения диалога
(например, между бизнес-партнерами). Другим примером надлежащего применения
сервиса видео-трансляции могут служить новости, репортажи с мест важных событий
в прямом эфире, трансляция спортивных мероприятий. Немаловажной областью
применения является передача в реальном времени видеопотока с камер наблюдения.
алгоритм видеопоток мобильный сервер
Задание на дипломный проект по специальности «230105 - Программное обеспечение вычислительной техники и автоматизированных систем».
Томский государственный университет систем управления и радиоэлектроники. Факультет систем управления. Кафедра автоматизированных систем управления.
Система онлайн-трансляции разрабатывается в рамках
исследования для гранта «Методы и технологии разработки сервис-ориентированных
систем анализа и идентификации изображений». Главным вопросом исследования
является целесообразность применения распределенных вычислений для ускорения
обработки транслируемого видео-потока.
Система должна представлять собой набор программ, ключевыми из которых будут:
1. Клиентское приложение для создания трансляций (мобильные устройства под управлением ОС Android).
2. Клиентское приложение для просмотра трансляций (мобильные устройства под управлением ОС Android).
. Серверное приложение для просмотра трансляций через web-интерфейс (сервер под управлением ОС Linux).
. Планировщик (сервер под управлением ОС Linux).
. Менеджер потоков (сервер под управлением ОС Linux).
. Набор сервисов для обработки изображения (узлы обработки/сервер).
Примечание: система по возможности должна обладать свойством расширяемости. Это необходимо для того, чтобы в будущем была возможность добавить клиентские приложения и на другие платформы.
Требования к функционалу клиентских приложений для создания трансляций
Приложение должно предоставлять возможность создавать трансляцию видео и аудио потоков с мобильных устройств в режиме реального времени.
Для работы приложения, установленного на неком мобильном устройстве, требуется наличие у этого устройства исправно работающей камеры, микрофона и стабильного доступа в интернет. В случае несоблюдения одного из этих условий приложение должно выдавать пользователю соответствующую информацию, диагностирующую проблему и предлагающую способы ее решения: проверить подключение к интернету, настроить камеру или микрофон, вести трансляцию только видео или только аудио и т.д.
Если все условия для нормальной работы приложения соблюдены, оно должно запросить у пользователя данные(логин-пароль) для регистрации видеопотока на сервере. После ввода необходимой информации и начала трансляции приложение должно предоставить пользователю ссылку на эту трансляцию.
Требования к функционалу клиентских приложений для просмотра трансляций
Данное приложение должно предоставлять возможность воспроизведения видео и аудио потоков, получаемых с сервера на мобильном устройстве в режиме реального времени.
Для работы приложения необходимо наличие на мобильном устройстве доступа к сети Интернет. В случае его отсутствия клиентское приложение должно выдавать соответствующее диагностическое сообщение и прекращать работу.
Иначе пользователю необходимо предоставить возможность выбрать желаемую для воспроизведения видеотрансляцию из списка доступных на сервере.
Интерфейс приложения для просмотра трансляций должен содержать кнопки, позволяющие остановить и вновь возобновить воспроизведение получаемого потока.
Требования к функционалу web-клиента для просмотра трансляций.
Web-клиент для просмотра трансляций должен предоставлять следующие функции:
1. Регистрация пользователя в системе.
2. Авторизация пользователя.
. Выдача списка текущих трансляций.
. Выход на трансляцию по прямой ссылке.
На странице с выбранной трансляцией должен присутствовать проигрыватель, который будет отображать видео, получаемое от пользователя, создавшего трансляцию, в режиме реального времени.
Требования к функционалу подсистемы обработки видеопотока перед трансляцией на принимающее устройство.
Подсистема должна быть представлена в виде нескольких отдельных программ, каждая из которых должна представлять собой соответствующий фильтр:
1. Фильтрация адиттивного белого шума.
. Фильтрация импульсного шума.
. Фильтр изменяющий резкость изображения.
4. Фильтр цветокоррекции (осветление, повышение контрастности).
. Выделение контуров на изображении.
. Сегментация изображения.
. Изменение размера кадра (Для передачи видео между устройствами с разными характеристиками).
Разрабатываемая подсистема должна быть устойчива:
1. к внезапному обрыву связи
2. к искажению входной информации
. к отсутствию части входной информации
. к изменению количества доступных вычислительных узлов
5. к локальным техническим сбоям на вычислительных узлах
Требования к обеспечению надежного функционирования программного комплекса
Надежное (устойчивое) функционирование программного комплекса должно быть обеспечено выполнением совокупности организационно-технических мероприятий, перечень которых приведен ниже:
1. Организацией бесперебойного питания технических средств.
2. Использованием лицензионного программного обеспечения.
. Регулярным выполнением рекомендаций Министерства труда и социального развития РФ, изложенных в Постановлении от 23 июля 1998 г. Об утверждении межотраслевых типовых норм времени на работы по сервисному обслуживанию ПЭВМ и оргтехники и сопровождению программных средств».
. регулярным выполнением требований ГОСТ 51188-98. Защита информации. Испытания программных средств на наличие компьютерных вирусов.
Время восстановление после отказа
Время восстановления после отказа, вызванного сбоем электропитания технических средств (иными внешними факторами), не фатальным сбоем (не крахом) операционной системы, не должно превышать 30-ти минут при условии соблюдения условий эксплуатации технических и программных средств. Время восстановления после отказа, вызванного неисправностью технических средств, фатальным сбоем (крахом) операционной системы, не должно превышать времени, требуемого на устранение неисправностей технических средств и переустановки программных средств.
Отказы из-за некорректных действий пользователей системы
Отказы программы вследствие некорректных действий пользователя при взаимодействии с программой недопустимы.
Вычислительный кластер, состоящий из 1 управляющего узла и нескольких вычислительных узлов с наличием доступа к сети Интернет.
Требования к управляющим и вычислительным узлам:
1. процессор Intel Xeon 5300;
2. количество процессоров/ядер - 2/8;
. разрядность - 64;
. тактовая частота - 2,3 Ггц;
. не менее 8 Гб оперативной памяти;
. не менее 160 Гб жесткий диск.
Требования к клиентам под управлением ОС Android:
1. наличие камеры и (или) микрофона;