流媒体 – UVC 协议

流媒体 – UVC 协议uvc 是传输协议 没有 ota 升级内容 升级通过 RNDIS 升级 uvc 解决方案带宽限制在 6M s 按 20fps 计算分辨率小于 30W 不能使用 yuyv 需 h264 编码传输 UVC 功能的设备 一个 VCInterface 一个或多个 VSInterface 1 VCInterface 用于进行配置 操控 设置 UVC 设备进入不同的功能状态 2 VSInterface 则负责视频数据流的传输规范明确要求 UVC 设备必须使用一个 InterfaceAss

简介

  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(描述符)

设备 & 配置描述符

流媒体 - UVC 协议流媒体 - UVC 协议

接口关联描述符

流媒体 - UVC 协议

视频控制接口描述符

  • 标准 VC 接口描述符
    在这里插入图片描述
  • 特定类
    在这里插入图片描述
  • 输入终端(Camera)
    在这里插入图片描述
  • 输入终端(Media Transport)
    在这里插入图片描述
  • 选择单元
    在这里插入图片描述
  • 输出终端
    在这里插入图片描述
  • 标准中断端点
    在这里插入图片描述
  • 特定类中断端点
    在这里插入图片描述

视频流接口描述符

Alternate setting 0

  • 标准VS接口
    在这里插入图片描述
  • 特定类Input Header
    流媒体 - UVC 协议流媒体 - UVC 协议
  • 特定类Output Header
    流媒体 - UVC 协议流媒体 - UVC 协议
  • 特定类格式
    在这里插入图片描述
  • 特定类帧
    在这里插入图片描述
  • 特定类静止图片帧
    在这里插入图片描述在这里插入图片描述
  • 特定类色彩空间 0x06 0x24
    在这里插入图片描述
  • 标准批量端点
    在这里插入图片描述

Alternate setting 1

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

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

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

Requests

Standard Requests

  • Set Interface Requests
    流媒体 - UVC 协议

Class-specific Requests

VideoControl

  • Set/Get Selector Control Request
    流媒体 - UVC 协议流媒体 - UVC 协议
  • Set/Get Zoom (Absolute) Control Request
    流媒体 - UVC 协议流媒体 - UVC 协议
  • 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
    流媒体 - UVC 协议流媒体 - UVC 协议
  • Set/Get Video Commit Control Request
    在这里插入图片描述

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/205401.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午6:06
下一篇 2026年3月19日 下午6:07


相关推荐

  • COleVariant在多字节字符集下的坑

    COleVariant在多字节字符集下的坑以下代码(多字节字符集下):COleVariantvar=CStringA("123开始唱");CStringAstr=V_BSTRT(&var);你会发现,str=="123",中文呢?看下COleVariant的构造函数发现:constCOleVariant&COleVariant::operator=(constLPCTSTRlpszSrc){ …

    2022年7月18日
    18
  • 【java基础】java关键字总结及详解

    【java基础】java关键字总结及详解Java关键字是电脑语言里事先定义的,有特别意义的标识符,有时又叫保留字,还有特别意义的变量。Java的关键字对Java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等,关键字不能用作变量名、方法名、类名、包名和参数。(一)总表:java关键字共53个(其中包含两个保留字const,goto) abstract assert …

    2022年7月8日
    30
  • 嵌入式学习计划

    嵌入式学习计划从今天开始,我要正式的学习关于嵌入式。初步的计划是,选择一款嵌入式Linux系统进行学习,目前选用的FreeRTOS设备,通过查询博客,阅读源码,看书方式进行全面的了解。其次,还要选择一款嵌入式设备进行实战,鉴于目前手头刚好有一台STM32F107VCT6,就选择它了,而且STM32F10x系列的设备资料也比较齐全。对于嵌入式设备的学习路线,首先学习使用固件库进行编程,学习的内容包括uart,flash,gpio等相关的内容,同时辅之以数字电子基础书籍进行更深入的了解。再都了解了之后,将FreeRT

    2022年5月18日
    38
  • python编程是什么-Python编程

    python编程是什么-Python编程随着人工智能时代的来临,编程语言的热度居高不下,随着智能机器人的出现,在2020年更是迎来一波新的高峰。在这样的大环境下,关于谁是人工智能最流行编程语言的讨论也十分热烈,C、C++、Java、Python等编程语言不断被拿出来做比较。那么接下来,风变编程来解析一波当下编程语言的新趋势。Python受欢迎度有望超越Java?近日,TIOBE编程语言社区公布了2020年10月编程语言排行榜。榜单数据显…

    2022年5月17日
    40
  • win10启动linux蓝屏,系统之家重装 win10启动蓝屏0xc000021a如何修复

    win10系统的蓝屏问题对于用户来说早已经见怪不怪了,而出现蓝屏的原因大多数是因为自己的操作不当引起,比如有用户的win10系统开机出现蓝屏代码0xc000021a的情况,这是由于关机前的不正当操作有关系,那么win10启动蓝屏0xc000021a如何修复呢?下面就来给大家普及一下win10开机蓝屏0xc000021a的解救方法。具体方法:方法一:执行启动修复1、将Windows安装盘连接至电脑,…

    2022年4月6日
    155
  • 笔记视频_微信里笔记怎么编辑

    笔记视频_微信里笔记怎么编辑日常开发小笔记(this小操作)

    2022年4月21日
    50

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号