USB UVC开启 PU功能研究

news2024/10/18 17:27:58

文章目录

  • 前言
  • 一、UVC拓展结构
  • 二、修改是否开启亮度等功能 在处理单元
    • 1. 处理单元理解
    • 2.实际代码部分
    • 2.修改主要对控制段进行修改
  • 总结


前言

提示:这里可以添加本文要记录的大概内容:

项目需要:
在哪里学习UVC 肯定是USB中文网
网址

https://www.usbzh.com/article/detail-832.html


提示:以下是本篇文章正文内容,下面案例可供参考

一、UVC拓展结构

UVC摄像头实现的拓扑结构在这里插入图片描述
最简单的结构就是输入直接输出

二、修改是否开启亮度等功能 在处理单元

1. 处理单元理解

在这里插入图片描述

处理单元的解释

在这里插入图片描述

 UINT8  bLength;
   UINT8  bDescriptorType;
   UINT8  bDescriptorSubtype;
   UINT8  bUnitID;
   UINT8  bSourceID;
   UINT16 wMaxMultiplier;
   UINT8 bControlSize;
   UINT8 bmControls[3];
   UINT8 iProcessing;
   UINT8 bmVideoStandards;
bLength:描述符的长度,13字节。
bDescriptorType:描述符类型,CS_INTERFACE,值为0x24.
bDescriptorSubtype:描述符子类型。 VC_PROCESSING_UNIT ,值为0x05
bUnitID:ID,非零值。
bSourceID:连接到此单元的单元ID或实体ID.
wMaxMultiplier:如果支持数字乘法器控制,此字段表示最大数字放大倍数乘以100。例如,对于支持1-4.5X的设备数码变焦(4.5倍倍增),此区域设置为450。如不支持,则为0
bControlSize:bmControls的字节大小,为3
bmControls:相应的位为1表示支持这种控制。
D0:亮度
D1:对比度
D2:色调
D3:饱和
D4:锐度
D5:伽马射线
D6:白平衡温度
D7:白平衡分量
D8:背光补偿
D9:增益
D10:电源线频率
D11:色调,自动
D12:白平衡温度,自动
D13:白平衡组件,自动
D14:数字乘法器
D15:数字乘法器限制
D16:模拟视频标准
D17:模拟视频锁定状态
D18:对比度,自动
D19–D23:保留。设为零
bmVideoStandards:处理单元支持的所有模拟视频标准的位图。
D0: None
D1: NTSC – 525/60
D2: PAL – 625/50
D3: SECAM – 625/50
D4: NTSC – 625/50
D5: PAL – 525/60
D6-D7: Reserved. Set to zero.

参考链接

https://www.usbzh.com/article/detail-84.html

2.实际代码部分

参考链接

UVC 描述符实例

https://www.usbzh.com/article/detail-834.html

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

代码如下(示例):

这段代码是一个USB视频类(UVC)设备描述符的片段,具体描述了一个输入终端(Input Terminal),它在这个演示中模拟了一个电荷耦合器件(CCD)传感器(即摄像头)。以下是各个字段的解释:

0x12:bLength字段,表示这个描述符的长度为18字节(十六进制12)。
USB_DESCTYPE_CS_INTERFACE:bDescriptorType字段,表明这是一个类特定的接口描述符(Class-specific Interface Descriptor)。
USB_VC_INPUT_TERMINAL:bDescriptorSubType字段,表明这是一个输入终端(INPUT TERMINAL)子描述符。
0x01:bTerminalID字段,表示这个输入终端的ID为10x01, 0x02:wTerminalType字段,表示这个终端的类型是ITT_CAMERA(即摄像头),具体是CCD传感器类型(十六进制01 02)。
0x00:bAssocTerminal字段,表示这个输入终端没有与任何其他终端关联。
0x00:iTerminal字段,表示这个终端的字符串描述符索引为0(即未使用)。
0x00, 0x00:wObjectiveFocalLengthMin字段,表示最小物镜焦距为0,意味着不支持光学变焦。
0x00, 0x00:wObjectiveFocalLengthMax字段,表示最大物镜焦距为0,同样意味着不支持光学变焦。
0x00, 0x00:wOcularFocalLength字段,通常用于表示目镜焦距,但在这里也为0,表示不支持与目镜相关的功能(在摄像头中通常不适用)。
0x03:bControlSize字段,表示控制字段的大小为3字节。
0x00, 0x00, 0x00:bmControls字段,表示没有支持的控制功能。在这个例子中,所有控制位都被设置为0。
这个输入终端描述符为UVC设备中的摄像头(模拟为CCD传感器)提供了基本的配置信息。它表明这个摄像头不支持光学变焦,也没有与其他终端关联,且没有支持的控制功能。这对于设备枚举和配置过程很重要,使得主机能够正确识别和配置UVC设备中的摄像头部分。

2.修改主要对控制段进行修改

代码如下(示例):

0x00, 0x00, 0x00:bmControls字段,表示没有支持的控制功能。在这个例子中,所有控制位都被设置为0

24 位全为1 就能开启这个功能

在bmControls:相应的位为1表示支持这种控制。
D0:亮度
D1:对比度
D2:色调
D3:饱和
D4:锐度
D5:伽马射线
D6:白平衡温度
D7:白平衡分量
D8:背光补偿
D9:增益
D10:电源线频率
D11:色调,自动
D12:白平衡温度,自动
D13:白平衡组件,自动
D14:数字乘法器
D15:数字乘法器限制
D16:模拟视频标准
D17:模拟视频锁定状态
D18:对比度,自动
D19–D23:保留。设为零

总结

学习使人快乐!
音乐使人愉悦!
日积月累使人充实和自信!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2217925.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

React父子组件,父组件状态更新,子组件的渲染状况

目录 React.memo不包裹 React.memo包裹 传递一个简单数据类型 传递一个复杂数据类型 传递一个函数 React.memo不包裹 如果子组件没有使用React.memo包裹,则父组件中数据更新时,子组件会重新进行渲染 父组件: import { useState } fro…

MongoDB 8.0已全面可用

全球广受欢迎的文档型数据库MongoDB目前最新最强的版本,在易用性、企业级安全性、 弹性、可用性等方面均有大幅提升,适用于各种应用程序。 MongoDB 8.0的优化使整体吞吐量提高了32%,时间序列数据聚合的处理速度提高了200%以上。MongoDB 8.0的…

SegFormer: 一个基于Transformer的高效视觉图像分割算法

今天我分享一篇关于 Transformer 架构在图像视觉分割中的应用的文章,主题是 SegFormer。SegFormer 是一种新颖的语义分割方法,它结合了无位置编码的层次化 Transformer 编码器和轻量级 All-MLP 解码器,避免了传统方法中的复杂设计&#xff0c…

Flink Kubernetes Operator

Flink Kubernetes Operator是一个用于在Kubernetes集群上管理Apache Flink应用的工具。 一、基本概念 Flink Kubernetes Operator允许用户通过Kubernetes的原生工具(如kubectl)来管理Flink应用程序及其生命周期。它简化了Flink应用在Kubernetes集群上的…

字节 HLLM 论文阅读

github连接:https://github.com/bytedance/HLLM 探讨问题: 推荐LLM的三个关键问题: LLM预训练权重通常被认为是对世界知识的概括,其对于推荐系统的价值?对推荐任务进行微调的必要性?LLM是否可以在推荐系统…

SL3037B降压恒压芯片DC24伏输入5伏输出带单片机,电流100mA

一、SL3037B芯片概述 SL3037B是一款内置功率MOSFET的单片降压型开关模式转换器,具有高效、稳定、外围元器件少等特点。它能够在宽输入电源范围(5.5~60V)内实现0.6A的峰值输出电流,并具有出色的线电压和负载调整率。此外&#xff…

uniapp小程序自定义聚合点

注&#xff1a; 1.默认的聚合点可以点击自动展示子级点位&#xff0c;但是自定义的聚合点在ios上无法触发markerClusterClick的监听&#xff0c;至今未解决&#xff0c;不知啥原因 2.ios和安卓展示的点位样式还有有差别 源码附上 <template><view class"marke…

SpringMVC之 文件上传和下载

1. 文件上传 1.1 前端注意事项 文件上传操作&#xff0c;前端的表单项需要如下三项设置&#xff1a; &#xff08;1&#xff09;input标签的type属性应设置为file&#xff0c;并且注意不要在input标签中设置value属性&#xff0c;因为这可能导致文件上传不成功&#xff1b; …

轻触节点,链表里的悄然邂逅

公主请阅 1. 移除链表元素1. 题目说明示例 1示例 2示例 3 1.2 题目分析1.3 代码部分1.4 代码解析 2. 反转链表2. 1题目说明示例 1示例 2示例 3 2.2 题目分析2.3 代码部分2.4 代码分析 1. 移除链表元素 题目传送门 1. 题目说明 给你一个链表的头节点 head 和一个整数 val &…

无头浏览器测试:如何使用 Puppeteer 和 Browserless?

什么是无头浏览器测试&#xff1f; 无头浏览器测试通常指没有头的物体或东西&#xff0c;在浏览器的语境中&#xff0c;它指的是没有 UI 的浏览器模拟。无头浏览器自动化使用 Web 浏览器进行端到端测试&#xff0c;而无需加载浏览器的 UI。 无头模式是一个功能&#xff0c;它…

SpringBoot1~~~

目录 快速入门 依赖管理和自动配置 修改自动仲裁/默认版本号 starter场景启动器 自动配置 修改默认扫描包结构 修改默认配置 读取application.properties文件 按需加载原则 容器功能 Configuration Import ​编辑 Conditional ImportResource 配置绑定Configur…

一款AutoXJS现代化美观的日志模块AxpLogger

简介 Axp Logger是一款基于autox.js的现代化日志模块&#xff0c;具备窗口事件穿透、拖拽和缩放功能。 Axp Logger文档 特性现代化的UI设计支持点击穿透模式&#xff08;不影响脚本运行&#xff09;监听音量-键切换模式支持窗口操作模式窗口拖拽移动窗口自由缩放清空日志关闭日…

高精-阶乘和-保姆级教程

提供50的阶乘30414093201713378043612608166064768844377641568960512000000000000&#xff1b; 显然要做这题&#xff0c;int 或者 long long 类型的整型放不下这么长的数据所以我们要使用数组用高精度实现&#xff1b; 然后容易想到这题 肯定要用到高精度乘法和高精度加法&…

外包干了3周,技术退步太明显了。。。。。

先说一下自己的情况&#xff0c;大专生&#xff0c;21年通过校招进入武汉某软件公司&#xff0c;干了差不多3个星期的功能测试&#xff0c;那年国庆&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我才在一个外包企业干了3周的功…

Qt(10.11)

数据表 源代码&#xff1a; #include "widget.h" #include "ui_widget.h" #include<QMessageBox>//消息对话框 #include<QDebug> #include<QSqlRecord> Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui-&g…

十、pico+Unity交互开发教程——射线抓取与更多交互功能

一、回顾与引入 回顾上一篇直接抓取的教程&#xff0c;VR交互一般需要可交互的对象&#xff08;Interactable&#xff09;和发起交互的对象&#xff08;Interactor&#xff09;。直接抓取和射线抓取的可交互对象无区别&#xff0c;可参考上一篇教程设置组件。两者区别在于发起…

【Vercel】Vercel静态部署踩坑

背景 在现代的软件开发中&#xff0c;自动化部署是一个不可或缺的环节。Vercel作为一个流行的前端部署平台&#xff0c;提供了与GitHub的无缝集成&#xff0c;使得开发者能够在每次提交代码后自动触发部署流程。然而&#xff0c;自动化部署过程中可能会遇到一些挑战&#xff0…

性能测试:流量回放工具-GoReplay!结合一款无需CA证书即可抓取HTTPS明文的工具,简直无敌

性能测试&#xff1a;流量回放工具-GoReplay&#xff01;结合一款无需CA证书即可抓取HTTPS明文的工具&#xff0c;简直无敌。 GoReplay 是一个开源网络监控工具&#xff0c;可以将实时 HTTP 流量捕获并重放到测试环境。 应用成熟的过程中&#xff0c;测试所需的工作量往往会成…

学习干货小白女友看完这篇文章后,面试工作和护网蓝队初级竟然秒通过!

小白女友看完这篇文章后&#xff0c;面试工作和护网蓝队初级竟然秒通过&#xff01; 前言&#xff1a;本文中涉及到的相关技术或工具仅限技术研究与讨论&#xff0c;严禁用于非法用途&#xff0c;否则产生的一切后果自行承担&#xff0c;如有侵权请联系。 还在学怎么挖通用漏…

【Linux】<互斥量>解决<抢票问题>——【多线程竞争问题】

前言 大家好吖&#xff0c;欢迎来到 YY 滴Linux系列 &#xff0c;热烈欢迎&#xff01; 本章主要内容面向接触过C的老铁 主要内容含&#xff1a; 欢迎订阅 YY滴C专栏&#xff01;更多干货持续更新&#xff01;以下是传送门&#xff01; YY的《C》专栏YY的《C11》专栏YY的《Lin…