简介

  1. UVC 属于USB设备类规范,用于USB接口的视频设备的一个统一的数据交换规范
  2. UVC 设备:一个 VC Interface(视频控制接口),一个或多个 VS Interface(视频流接口)
    (1)VC Interface 进行配置操控,设置UVC设备进入不同的功能状态
    (2)VS Interface 负责视频数据流的传输
  3. UVC的拓扑结构抽象为几个主要的硬件功能模块:
    (1)input Terminal: 作为数据流入video function的接收器,数据源头
    (2)Output Terminl: Video Function视频信息流出的出口
    (3)camera Terminl: 控制视频流传输中的设备特性: 扫描模式,自动曝光模式,曝光时间,聚焦,缩放/变焦,感兴趣区域等。
    (4)Selector Unit:控制图像数据采集源的切换和选择
    (5)Processing Unit:对图像数据进行加工的单元
       [1] Usr Controls: 图像参数(亮度,对比度,锐度等),伽马,增益,数字放大等
       [2] Auto Controls: 白平衡色温, 白平衡组件,背光补偿
       [3] Other:电源线频率,模拟视频标准,模拟视频死锁状态
    (6)Extension Unit:为了特定供应商添加规范而提供的单元
    在这里插入图片描述
  4. 视频接口集合 (Interface Association Descriptor)
    (1)UVC设备必须使用一个IAD来描述包含VC(接口0)和VS(接口1)的Interfaces集合。
    在这里插入图片描述
    (2)UVC 一般包含两个IAD:视频输入设备,音频输入设备;
  5. VC Interface (视频控制接口)
    (1)功能:主要控制UVC功能中的Units和Terminals,通过对不同的Units和Terminals发下不同的指令,从而影响UVC设备的当前工作状态;
    (2)Host端对UVC设备的操纵控制命令都是此Interface完成的。
  6. VS Interface (视频流接口)
    (1)负责传输UVC设备的Video数据到Host端
    (2)每个Interface对应一种专门的数据格式,支持n种格式则需要实现n个VS;
    在这里插入图片描述

Descriptor(描述符)

(1)描述USB设备性能的数据结构,与设备类相关的信息都是主机向设备获取描述符来得到的。
(2)描述符实测信息打印
在这里插入图片描述

设备 & 配置描述符

接口关联描述符

视频控制接口描述符

  • 标准 VC 接口描述符
    在这里插入图片描述

  • 特定类
    在这里插入图片描述

  • 输入终端(Camera)
    在这里插入图片描述

  • 输入终端(Media Transport)
    在这里插入图片描述

  • 选择单元
    在这里插入图片描述

  • 输出终端
    在这里插入图片描述

  • 标准中断端点
    在这里插入图片描述

  • 特定类中断端点
    在这里插入图片描述

视频流接口描述符

Alternate setting 0

  • 标准VS接口
    在这里插入图片描述

  • 特定类Input Header

  • 特定类Output Header

  • 特定类格式
    在这里插入图片描述

  • 特定类帧
    在这里插入图片描述

  • 特定类静止图片帧
    在这里插入图片描述在这里插入图片描述

  • 特定类色彩空间 0x06 0x24
    在这里插入图片描述

  • 标准批量端点
    在这里插入图片描述

Alternate setting 1

  • 标准VS接口 (参考 setting 0 的信息)
  • 标准同步视频数据端点
    在这里插入图片描述
  • 标准批量端点 (参考 setting 0 的信息)

字符串描述符(自定义参数)

  • 标准字符串0:包含 LANGIDs 列表
    在这里插入图片描述
  • 字符串1:制造商 (参考上图)
  • 字符串2,4:产品 (参考上图)
  • 字符串3:序列号 (参考上图)

Requests

Standard Requests

  • Set Interface Requests

Class-specific Requests

VideoControl

  • Set/Get Selector Control Request

  • Set/Get Zoom (Absolute) Control Request

  • Set/Get Transport Control Request (参考上图)

  • Set/Get Media Information Control Request (参考上图)

  • Set/Get Time Code Information Control Request (参考上图)

  • Set/Get Power Mode Control Request (参考上图)

  • Request Error Code Control (参考上图)

VideoStreaming Requests

  • Set/Get Video Probe Control Request

  • Set/Get Video Commit Control Request
    在这里插入图片描述

备注:uvc 是传输协议,通过 RNDIS 方式升级

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐