Протокол USB — стандартный протокол UVC
Протокол USB — стандартный протокол UVC

Предисловие:

Официальный аккаунт сменил название. Первоначальное название — txp play Linux. Новое имя, как видите: растет как летать. Я также надеюсь, что каждый сможет быстро вырасти в технологиях.

2. Обзор:

UVC, полное название: Класс USB-видео (устройства) — это стандарт протокола, определенный для USB-устройств видеозахвата, совместно выпущенный Microsoft и несколькими другими производителями оборудования. Теперь он стал одним из стандартов организации USB.

В дополнение к общим спецификациям электрического интерфейса программного и аппаратного обеспечения протокол USB также содержит различные протоколы классов, которые используются для определения соответствующих стандартных интерфейсов и конкретных форматов взаимодействия данных и содержимого на шине для различных функций. Существует множество протоколов этих классов, наиболее распространенными являются класс Mass Storage, поддерживающий функцию USB-накопителя, и общий протокол обмена данными: класс CDC. Кроме того, он также включает в себя видео, аудиокласс, класс печати и т. д. Именно благодаря этим протоколам класса значительно возросла популярность USB-устройств. Например, U-диски, выпускаемые различными производителями, можно использовать через драйверы, поставляемые с операционной системой.

Таким образом, UVC — это лишь одна из спецификаций классов устройств в протоколе спецификации USB. Это унифицированная спецификация обмена данными для видеоустройств, используемых в качестве интерфейсов USB. Преимущества использования UVC: После того, как USB Video станет стандартом, оборудование будет работать более плавно между различными программами, и этап установки драйвера будет пропущен. Требуется только Windows XP SP2 или более поздняя версия. Все могут поддерживать UVC. Ядро Linux начиная с версии 2.4 поддерживает большое количество драйверов устройств, включая устройства UVC.

В спецификации UVC четко указано, что видеооборудование с реальными функциями UVC должно иметь два интерфейса: один — интерфейс VC (интерфейс управления видео) и интерфейс VS (интерфейс потокового видео). Интерфейс VC используется для настройки и управления устройствами UVC, а интерфейс VS используется для передачи потоков видеоданных. Они работают вместе для выполнения функций устройства UVC. Обычно устройство имеет только один интерфейс VC и несколько интерфейсов VS.

2. Функциональные характеристики UVC:

Видеофункция расположена на уровне интерфейса в иерархии классов устройств. Он состоит из множества интерфейсов, которые группируют связанные каналы вместе для совместной реализации интерфейса видеофункций.

Функция видео реализуется через видеоинтерфейс (Видеоинтерфейс). Каждая видеофункция имеет интерфейс VideoControl (VC), и может быть несколько интерфейсов VideoStreaming (VS). Интерфейс VideoControl (VC) используется для доступа к элементам управления устройством этой функции, а интерфейс VideoStreaming (VS) используется для потоковой передачи данных в функцию и из нее. Коллекция одного интерфейса VideoControl и интерфейсов VideoStreaming, принадлежащих одной и той же видеофункции, называется коллекцией видеоинтерфейсов VideoInterfaceCelloction (VIC). Дескриптор ассоциации интерфейса (IAD) используется для описания набора видеоинтерфейсов.

2.1 Video Interface Class:

Класс Видеоинтерфейс объединяет все функции, которые могут взаимодействовать с потоками видеоданных, совместимыми с USB. Фактически класс интерфейса Video содержит VC и VS.

Класс видеоинтерфейса имеет специальный код идентификации:

2.2 Video Interface subclass and Protocol:

Класс видеоинтерфейса подразделяется на два подкласса:

  • Video Control interface
  • Video streaming interface

проиллюстрировать:

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

Дескриптор ассоциации интерфейса (IAD) также имеет свой собственный функциональный подкласс:

  • Video interface colloction

Код подкласса видеоинтерфейса:

Идентификационный код кода протокола видеоинтерфейса:

2.3 Топология функции UVC:

Чтобы иметь возможность манипулировать физическими свойствами видеофункции, ее функциональность должна быть разделена на адресуемые объекты. UVC идентифицирует следующие две универсальные сущности:

  • Units
  • Teminals
2.3.1 Единица измерения

Под блоком можно понимать каждый функциональный блок, который выполняет функции устройства UVC. Несколько модулей могут быть соединены в соответствии с определенными правилами для формирования полного функционального устройства UVC. Спецификация предусматривает, что Модуль имеет один или несколько входов и один выход; иными словами, в качестве источника входных данных для Модуля может быть несколько Модулей или Терминалов, а данные после прохождения через Модуль могут использоваться только в качестве источника входных данных для Модуля. другие блоки или терминалы. Как показано на следующем рисунке:

В спецификации 1.5 определены четыре единицы:

  • Selector Unit (SU)
  • Processing Unit (PU)
  • Encoding Unit (EU)
  • Extension (XU)
2.3.1.1 СУ (блок селектора):

Блок СУ служит для управления переключением и выбором источников получения данных изображения. Например, если устройство поддерживает несколько источников входного сигнала, оно будет выбрано и переключено через SU.

Например, на схеме топологии камеры ниже есть два источника ввода данных. В этом случае для переключения и выбора необходим SU. Блок селектора обычно представлен на схеме топологии следующим рисунком:

2.3.1.2 ПУ (блок обработки):

ПУ представляет собой блок, обрабатывающий собранные данные изображения и отвечающий за настройку и настройку характеристик собранного изображения. Он имеет один входной и выходной контакт. В основном он имеет следующие особенности:

1、User Controls:

  • Яркость подсветки
  • Хюэ Хрома
  • Насыщенность
  • Резкость
  • Гамма Гамма
  • Цифровой умножитель (увеличение) Цифровой умножитель (увеличение)

2、Auto Controls

  • Температура баланса белого Баланс белого Цветовая температура
  • Компонент баланса белого Компонент баланса белого
  • Компенсация задней подсветки Компенсация задней подсветки
  • Контраст Контраст

3、Other

  • Усиление Усиление
  • Частота электросети Частота электросети
  • Стандарт аналогового видео Стандарт аналогового видео
  • Analog Video Lock Status Имитировать состояние блокировки видео

Процессорный блок обычно представлен следующим рисунком на схеме топологии:

2.3.1.3 ЕС (кодирующая единица):

ЕС используется для персонализации собранных данных. Блок кодирования управляет свойствами кодера, который кодирует видео, передаваемое через него. Он имеет один входной и несколько выходных контактов. Он поддерживает следующие функции, которые можно использовать до или после начала потоковой передачи.

Справочная спецификация 2.3.6 Блок кодирования

2.3.1.4 XU (блок расширения)

XU — это единица, предоставляемая конкретному поставщику для добавления спецификаций.

2.3.2 Конечная точка терминалов:

Терминал относится к входу и выходу всей функции UVC. Логически говоря, Терминал имеет только один выход или вход. Он либо представляет точку ввода данных всей функции UVC, либо представляет собой конечный пункт назначения данных после прохождения через каждый модуль. функциональный блок в функции UVC.

В спецификации описаны следующие терминалы:

  • Input Terminal
  • Output Terminal
2.3.2.1 IT(Input Terminal)

Будучи приемником данных, поступающих в функцию видео, функция должна служить источником извлеченных данных. Проще говоря, она является источником данных функции UVC.

Входные конечные точки обычно представлены на диаграмме топологии следующим рисунком:

2.3.2.2 OT(Output Terminal)

Являясь выходом для вывода видеоинформации, он действует как приемник выходных данных. OT имеет только один входной контакт, и последний блок в потоке обработки соединяет свой выходной контакт с входным контактом OT.

2.3.2.3 CT(Camera Terminal)

CT представляет собой источник сбора данных (датчик) на аппаратном обеспечении, который используется для управления характеристиками устройства при передаче потокового видео. Он обеспечивает поддержку следующих элементов управления функциями:

  • Режим сканирования (прогрессивное или чересстрочное) Автоматическое сканирование (прогрессивное или чересстрочное сканирование)
  • Режим автоматической экспозиции Режим автоматической экспозиции
  • Приоритет автоматической экспозиции Приоритет автоматической экспозиции
  • Время выдержки Время выдержки
  • Фокус фокус
  • Автофокус
  • Простой фокус Простой фокус
  • Переменная диафрагма
  • Увеличить Увеличить
  • Панорамирование движущейся камеры
  • Рулон
  • Наклон
  • Цифровое окно Цифровое окно
  • Область интереса Область интереса

В USB_Video_Example 1.5 пример схемы устройства сетевой камеры, показывающей его топологию, выглядит следующим образом:

Ссылка на статью: http://t.csdn.cn/xtNH4.

boy illustration
[Спецификация] Результаты и исключения возврата интерфейса SpringBoot обрабатываются единообразно, поэтому инкапсуляция является элегантной.
boy illustration
Интерпретация каталога веб-проекта Flask
boy illustration
Что такое подробное объяснение файла WSDL_wsdl
boy illustration
Как запустить большую модель ИИ локально
boy illustration
Подведение итогов десяти самых популярных веб-фреймворков для Go
boy illustration
5 рекомендуемых проектов CMS с открытым исходным кодом на базе .Net Core
boy illustration
Java использует httpclient для отправки запросов HttpPost (отправка формы, загрузка файлов и передача данных Json)
boy illustration
Руководство по развертыванию Nginx в Linux (Centos)
boy illustration
Интервью с Alibaba по Java: можно ли использовать @Transactional и @Async вместе?
boy illustration
Облачный шлюз Spring реализует примеры балансировки нагрузки и проверки входа в систему.
boy illustration
Используйте Nginx для решения междоменных проблем
boy illustration
Произошла ошибка, когда сервер веб-сайта установил соединение с базой данных. WordPress предложил решение проблемы с установкой соединения с базой данных... [Легко понять]
boy illustration
Новый адрес java-библиотеки_16 топовых Java-проектов с открытым исходным кодом, достойных вашего внимания! Обязательно к просмотру новичкам
boy illustration
Лучшие практики Kubernetes для устранения несоответствий часовых поясов внутри контейнеров
boy illustration
Введение в проект удаления водяных знаков из коротких видео на GitHub Douyin_TikTok_Download_API
boy illustration
Весенние аннотации: подробное объяснение @Service!
boy illustration
Пожалуйста, не используйте foreach для пакетной вставки в MyBatis. Для 5000 фрагментов данных потребовалось 14 минут. .
boy illustration
Как создать проект Node.js с помощью npm?
boy illustration
Mybatis-plus использует typeHandler для преобразования объединенных строк String в списки списков.
boy illustration
Не удалось установить программное обеспечение Mitsubishi. Возможно, возникла проблема с реестром.
boy illustration
Разрешение ошибок проекта SpringBoot 3 mybatis-plus: org.apache.ibatis.binding.BindingException: неверный оператор привязки
boy illustration
Более краткая проверка параметров. Для проверки параметров используйте SpringBoot Validation.
boy illustration
Поиграйтесь с интеграцией Spring Boot (платформа запланированных задач Quartz)
boy illustration
Несколько популярных режимов интерфейса API: RESTful, GraphQL, gRPC, WebSocket, Webhook.
boy illustration
Redis: практика публикации (pub) и подписки (sub)
boy illustration
Подробное объяснение пакета Golang Context
boy illustration
Краткое руководство: создайте свое первое приложение .NET Aspire
boy illustration
Краткое обсуждение метода пакетной вставки MyBatis: обработка 100 000 фрагментов данных занимает всего 2 секунды.
boy illustration
[Инструмент] Используйте nvm для управления переключением версий nodejs, это так здорово!
boy illustration
HTML можно преобразовать в word_html для отображения текстовых документов.