2、UVC拓扑结构
UVC的将设备在拓扑结构上抽象成为了几个主要的硬件功能模块,有以下几种:
- 输入端点(Input Terminal)
- 输出端点(Output Terminal)
- camera端点(Camera Terminal)
- 选择单元(Selector Unit)
- 处理单元(Processing Unit)
- 拓展单元(Extension Unit)
在USB_Video_Example 1.5中以一个网络摄像头设备为例展现其拓扑结构的示例图如下:
从Sensor和另一个复合视频设备得到的数据流由IT和CT输入,经过SU选择送到PU处理,再由OT绑定到指定的USB端点。最后由USB端点与主机交互数据发送到host。在实际的UVC设备设备中,可能没有上图中的一些功能某块,可能只有其中一些模块来完成的。
同时从上面的拓扑结构图可以看出,左半部分框架组成了UVC中的VC接口部分,右半部分框架组成了VS接口部分。
3、概念补充
3.1 Terminal(端点)
Terminal是指整个UVC功能的入口和出口,逻辑意义上讲Terminal只有一个出口或者入口,它要么代表整个UVC功能的数据输入点,要么代表数据在流经UVC功能内部的各Unit功能单元后的最终流入点。
1)IT(输入端点)
作为数据流入video function的接收器,功能是作为已经被提取出来的数据的数据源,说白了就是UVC功能的数据源头。
输入端点一般在拓扑图中用下图表示:
2)、OT(输出端点)
作为Video Function视频信息流出的出口,功能是作为输出数据的接收器。OT只有一个输入pin,处理流程最后一个单元会将它的out pin与OT的in pin连接在一起。
输出端点一般在拓扑图中用下图表示:
3)、CT(Camera端点)
CT代表硬件上的数据采集源(sensor),用于控制视频流传输中的设备特性的。
它规定支持以下特性
控制
:
- 扫描模式(逐行扫描或隔行扫描)
- 自动曝光模式
- 自动曝光优先级
- 曝光时间
- 聚焦
- 自动聚焦
- 可变光圈
- 缩放/变焦
- 移动镜头
- 滚动
- 倾斜
- 数字窗口
- 感兴趣区域
3.2 Unit(单元)
Unit可以理解为构建出UVC设备功能的各功能单元,多个Unit按照一定的规则连接后就是一个完整的UVC功能设备。Spec规定Unit有一个或多个入口,一个出口;也就是说可以有多个Unit或Terminal作为一个Unit的输入源头,而数据在流经Unit后仅能作为其他Unit或Terminal的一个输入源头。
规范1.5中定义了四种Unit:Selector Unit (SU),Proces