Назад в библиотеку

Некоторые аспекты технологии сетевого взаимодействия между передатчиком и приемником в процессе видео трансляции

Автор: С. В. Скороход, А. П. Степанова
Источник: Южный федеральный университет.

Постановка задачи

Для проведения видео трансляции по локальной сети требуется наличие двух программных инструментов: передатчика и приемника видео потока. Помимо основных задач кодирования, декодирования и воспроизведения видео, эти инструменты должны решать ряд вспомогательных задач: оповещение всех узлов сети о параметрах передаваемого сигнала, пакетизацию передаваемых видео данных, сбор принятых пакетов и восстановление видео ряда, отслеживание активности источников трансляции [1]. Данная работа посвящена обсуждению вопросов исследовательской реализации сетевого взаимодействия передатчика и приемника, в процессе трансляции видео в формате jpeg2000 [2] в условиях кодирования в реальном масштабе времени. Целями исследования являются разработка следующих аспектов сетевого взаимодействия:

  1. архитектура передатчика, позволяющая выполнять кодирование видео потока и его передачу в реальном масштабе времени;
  2. архитектура приемника, позволяющая в реальном масштабе времени принимать сетевые пакеты, собирать из них видео кадры и выполнять их декодирование;
  3. структура и алгоритмы функционирования буфера для приема сетевых пакетов и сборки видео кадров;
  4. алгоритмы сетевого оповещения, позволяющие передатчику и приемнику начинать и заканчивать трансляцию.

Передатчик

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

Рис. 1. – Архитектура передатчика видео потока

Модуль интерфейса является главным процессом передатчика, выполняющим взаимодействие с пользователем, запуск и синхронизацию работы остальных модулей. В его задачу входит выбор источника подлежащего трансляции видеосигнала, выбор параметров его кодирования в формате jpeg2000 [3–5], выбор параметров помехоустойчивого кодирования [6, 7], управление функционированием всех подчиненных модулей как отдельных потоков единого программного процесса. Цепь кодирования представляет собой последовательность извлечения данных очередного видео кадра, кодирования кадра в формате jpeg2000, опционального помехоустойчивого кодирования [8], пакетизации полученного кодового потока в соответствии с требованиями спецификации RFC5371 и broadcast-рассылке полученной совокупности RTP-пакетов по локальной сети [9–11]. В связи с тем, что цепь включает несколько последовательных взаимосвязанных этапов обработки, она реализуется в виде отдельного программного потока. Однако однопоточная реализация приводит к значительным задержкам, поскольку извлечение данных очередного видео кадра будет происходить только после отсылки последнего пакета предыдущего кадра [12]. Для ускорения обработки за счет более полного использования ресурсов современных многоядерных вычислительных систем, предлагается создание двух потоков цепи кодирования, каждый из которых использует разделяемый flip-flop буфер: пока первый выполняет кодирование кадра в буфере 0, второй – кодирование следующего кадра в буфере 1. Количество таких потоков может быть увеличено пропорционально количеству ядер процессора [1]. Синхронизация всех цепей кодирования и выдержка заданной частоты кадров выполняется центральным модулем интерфейса. Передатчик SAP-пакетов является самостоятельным потоком, выполняющим broadcast-рассылку данных о параметрах источника и самого видеосигнала. Рассылка производится в соответствии с протоколом SAP [13] через определенные интервалы времени в течение всей сессии видео трансляции. Задача рассылки – известить потенциальные приемники о наличии трансляции и передать им параметры для настройки на ее прием. Приемник SAP-пакетов – также самостоятельный поток. В его задачу входит отслеживание перечня активных SAP-передатчиков с целью вычисления длительности временного интервала между отправкой SAP-пакетов. Интервал выбирается так, чтобы суммарный трафик всех SAP-пакетов в сети не превышал 4000 бит/с [13].

Приемник

Аналогично передатчику приемник также имеет многопоточную архитектуру, при которой главный процесс порождает и управляет подчиненными независимыми друг от друга потоками [12]. Архитектура приемника изображена на рис. 2

Рис. 1. – Архитектура приемника видео потока

Центральным звеном приемника является модуль интерфейса, который запускает поток приемника SAP-пакетов и узнает от него наличие и параметры активных видео передатчиков в сети. По выбору пользователя система настраивается на прием видео от конкретного передатчика, после чего запускаются остальные подчиненные потоки, выполняющие прием и визуализацию видео. Задачей приемника RTP-пакетов является чтение пакетов из соответствующего UDP-сокета и буферизированное распределение их по кадрам в соответствии с RTP-меткой времени каждого пакета. Этот поток работает автономно в течение всего времени приема видео, разделяя доступ к буферу кадров с цепями декодирования при помощи критической секции. Цепь декодирования выполняет извлечение очередного видео кадра из буфера приемника RTP-пакетов, помехоустойчивое декодирование, декодирование jpeg2000 и визуализацию кадра. Для ускорения декодирования параллельно работают два потока, обрабатывающие соответственно буферы 0 и 1. Такое ускорение весьма актуально, особенно при использовании помехоустойчивых средств, поскольку в этом случае декодирование выполняется медленнее кодирования и может происходить запаздывание в работе приемника. Важным вопросом является обнаружение приемником факта прекращения видео передачи. Для этого передатчик высылает специальный пакет завершения, сигнализирующий об окончании трансляции. Если же такой пакет не дошел до приемника и был потерян, приемник считает трансляцию завершенной, если в течение десяти установленных временных интервалов от передатчика не был получен ни один SAP-пакет.

Результаты

Предложенные в работе подходы сетевого взаимодействия реализованы в рамках исследовательского прототипа, разработанного на языках программирования C и C++ в системе Microsoft Visual Studio 2008 с применением библиотеки Qt [18, 19]. Задачей данного прототипа является исследование вопросов, связанных с возможностью применения видео в формате jpeg 2000 в системах видео трансляции.

Для экспериментального исследования использовался стенд, состоящий из двух компьютеров (передатчик и приемник), включенных в локальную сеть Ethernet с пропускной способностью 1000 Мбит/с. Конфигурация компьютеров была выбрана идентичной: процессор Core2 Duo E8200, оперативная память 2Г, видеокарта NVIDIA GeForce 9600 GT 512М, операционная система Windows 7 Professional (x86) Service Pack 1.

Таблица 1 – Результаты проведенных экспериментов

Анализ результатов позволяет сделать вывод о значительной трудоемкости обработки видео в формате jpeg 2000 на этапах кодирования и декодирования. Об этом свидетельствует низкая частота кадров, особенно в экспериментах 1–3, и низкий объем IP-трафика относительно пропускной способности сети. Не смотря на то, что в экспериментах 4–5 была достигнута приемлемая частота кадров, следует сделать вывод о необходимости использования специализированных аппаратных средств для достижения частоты более 50 кадров в секунду.

Список литературы

1. Скороход С.В., Степанова А.П. Вопросы синхронизации передатчика и приемника в процессе видео трансляции // Сборник материалов Всероссийской научнопрактической конференции «Управление интеллектуальной собственностью и инновационной активностью хозяйствующих субъектов, коммерциализация технологий – 2014». – Таганрог, 2014. – C. 122-125.

2. Хусаинов Н.Ш., Дроздов С.Н., Скороход С.В., Жиглатый А.А., Кравченко П.П. Особенности проектирования и программной реализации системы видеотрансляции на базе семейства стандартов JPEG2000 // Сборник тезисов докладов Международной конференции "Инжиниринг & Телекоммуникации – En&T 2014". – М., 2014. – C. 137-139.

3. Acharya T., Tsai P. JPEG2000 standard for image compression: concepts, algorithms and VLSlarchitecturcs. – Hoboken: John Wiley & Sons, Inc., 2005. – 274 p.

4. ITU-T Recommendation T.800. Information Technology JPEG2000 Image Coding System: Core Coding System. – Geneva: ITU-T Series T: Terminal for Telematic Services, 2003. – 212 p.

5. Taubman D.S., Marcellin M.W. JPEG2000: Image Compression Fundamentals, Standards and Practice. – Boston: Kluwer Academic Publishers, 2002. – 773 p.

6. ITU-T Recommendation T.810. Information Technology JPEG 2000 image coding system: Wireless. Amendment 1: IP based wireless networks. – Geneva: ITU-T Series T: Terminal for Telematic Services, 2012. – 6 p.

7. ITU-T Recommendation T.810. Information Technology JPEG2000 Image Coding System: Wireless. – Geneva: ITU, 2007. – 60 p