Файл: Передача изображений в ipсетях (Video over ip) Передача данных видеонаблюдения по ipсетям.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 08.11.2023
Просмотров: 240
Скачиваний: 8
-
Ключевые слова / keywords: -
Приложения -
Разное
|
| Рис. 1. Территориально распределенная многопользовательская система видеонаблюдения |
временной задержки между каким-либо событием, произошедшим перед видеокамерой, и моментом его отображения на экране клиента, а также количество кадров, отображаемых в секунду на экране клиента. Оба параметра зависят от пропускной способности сети и производительности сервера и клиента. Следует подчеркнуть: помимо передачи видеопотоков по сети значительную роль играют процессы компрессии/декомпрессии видео, поэтому, если в глобальных сетях решающую роль играет пропускная способность канала, то в локальных сетях слабым звеном зачастую становятся ограниченные вычислительные мощности отдельных компьютеров.
Выбор протокола передачи данных
В системах видеонаблюдения общего пользования в качестве клиента может быть использован любой компьютер, поэтому вследствие ограниченности возможностей отдельных экземпляров реальная скорость вывода видео на экран может снижаться до 1-4 кадра/c на камеру при возможных 25 кадрах/c. В этом случае нет смысла передавать клиенту кадры, которые он не в состоянии обработать. Требуется механизм прореживания передаваемых кадров на уровне сервера.
Ethernet-коммутаторы способны отчасти решить проблемы коллизий, однако при высокой нагрузке на каждый порт коммутатора неизбежно накопление очередей в буферах коммутаторов и серверов, а значит, и задержки и потери даже в пределах локальной сети. Но даже замена концентраторов на коммутаторы не искореняет проблему потери сетевых пакетов в пределах локальной сети. Размер одного компрессированного видеокадра обычно составляет несколько килобайт и при передаче по сети происходит его разбиение на несколько пакетов. Потеря одного пакета, представляющего кусочек компрессированного кадра, приведет к несоизмеримым потерям в реальной картинке. Картинка не обязательно будет потеряна целиком (существуют механизмы восстановления растрового изображения из компрессированного), однако потери качества восстановленного изображения окажутся в процентном соотношении больше, чем потери данных в компрессированном изображении. В случае, если клиент успевает обрабатывать изображение с камеры со скоростью 25 кадров/c, можно просто отбросить «битый» кадр, однако на скорости 4 кадра/c его потеря будет весьма заметна. Следовательно, при низких скоростях вывода видео на экран необходимо предусмотреть механизм повторной посылки потерянных кадров.
Стандартные методы передачи видеопотоков по компьютерным сетям основываются на использовании протокола UDP [1], позволяющего организовывать одновременную передачу данных множеству клиентов (multicast) [2], занимающего меньшую — по сравнению с протоколом TCP — часть пропускной способности, но не гарантирующего качество доставки и правильность порядка передачи данных. Правильность порядка передачи данных реализуется на уровне приложения за счет буферизации входящего трафика и его пересортировки. Потерянные пакеты обычно не пересылаются; вместо этого используются алгоритмы восстановления потерянной информации и механизмы регуляции скорости передачи данных.По сравнению с UDP, протокол TCP/IP обеспечивает регулирование скорости передачи данных в зависимости от загруженности канала связи, правильный порядок передачи данных и повторную посылку потерянных данных. Основным аргументом в пользу UDP выступает возможность организации многоадресной рассылки видео множеству клиентов. Для того чтобы оценить важность этого аргумента, рассмотрим основные случаи построения распределенной системы видеонаблюдения.
-
Один клиент получает видеопотоки с одного сервера. -
Несколько клиентов получают одинаковые видеопотоки с одного сервера. -
Несколько клиентов получают разные видеопотоки с одного сервера. -
Несколько клиентов получают разные видеопотоки с разных серверов.
Ограничение скорости передачи в зависимости от скорости чтенияИзбежать простоя процесса декомпрессии можно следующим образом. Так как используется протокол TCP/IP, то время окончания приема кадра клиентом примерно совпадает с моментом окончания передачи этого кадра на сервере, следовательно, можно избежать ожидания сервером нового запроса. При этом по событию окончания передачи предыдущего кадра сервер должен начать передачу нового. В этом случае клиент уже не посылает запрос на получение кадра, а вместо этого единожды «подписывается» на получение потока кадров. Чтобы пояснить, как происходит регуляция скорости в этом случае, рассмотрим одну из особенностей работы протокола TCP/IP (рис. 2).
|
| Рис. 2. Передача данных от сервера клиенту (TX и RX — буферы передачи и чтения соответственно) |
|
| Рис. 3. Просмотр видео с одной камеры |
Рассмотрим упрощенную схему архитектуры программы-клиента (рис. 3). Для обработки видео с одной камеры запускается два потока, выполняющихся в параллель — TCP-клиент и декомпрессор. TCP-клиент читает данные из буфера, группирует их в кадры и передает декомпрессору. Декомпрессор осуществляет декомпрессию кадров и вывод их на экран. Для обработки видео с двух и более камер запускается по одному потоку декомпрессии на каждую из камер и общий поток чтения данных из всех сокетов соединений. Когда какой-либо поток декомпрессии не успевает обрабатывать все поставляемые ему кадры, поток чтения должен приостановить чтение из соответствующего сокета. Чтение можно приостановить после получения какой-то части следующего кадра, или по завершению приема кадра, передаваемого декомпрессору. В первом случае при возобновлении чтения придется вычитать остатки возможно уже устаревшего кадра (это может произойти при высокой скорости захвата кадров на сервере и низкой скорости обработки кадров на клиенте). Во втором случае кадр, полученный после возобновления чтения, также будет устаревшим, поскольку сервер по событию окончания передачи одного кадра автоматически начнет передачу следующего. В обоих случаях будет возникать задержка между событием и его отображением. Кроме того, вследствие неравномерности распределения вычислительных ресурсов компьютера-клиента между процессами, при высокой нагрузке на процессор скорость обработки кадров декомпрессором меняется в широких пределах, что приводит к «рывкам» выводимого на экран видеопотока.Регулирование интервала между кадрамиЕсли сервер захватывает с какой-нибудь камеры RG кадров/c, но клиент, в силу недостаточности своих вычислительных ресурсов, может отобразить только RD кадров/с (RDВ реализованном нами методе определения клиентом величины RS считается, что RS должна указываться серверу в зависимости от скорости приема кадров TCP-клиентом (RC), скорости обработки кадров декомпрессором (RD) и средней суммарной загрузки процессора (L). Регулирование производится дискретно, с интервалом T (порядка нескольких секунд), при этом новое значение RS определяется исходя из значения RS, вычисленного на предыдущем шаге и текущей нагрузки процессора.RS i = f (RS i-1 , RC i-1 , RD i-1 , Li)