USB 子系统(三)USB 设备描述符
标准设备请求
SETUP 事务的数据格式
Host
使用控制传输来识别设备、设置设备地址、启动设备的某些特性,对于控制传输,它首先发出"setup
事务",如下:
在"setup 事务"中,
SETUP 令牌包:用来通知设备,"要开始传输了"。
DATA0
数据包:它含有固定的格式,用来告诉设备"是读还是写"、"读什么"、"写什么"。
Hos 通过 DATA0 数据包发送 8 字节数据给设备,它的格式如下图所示:
标准设备请求
控制传输的建立事务中,可以使用下列格式的数据:
上表中各个"宏"取值如下:
设备/配置/接口/端点
在 SETUP
事务的数据里,表示了要访问的是什么:Device?Interface?Endpoint?
对于一个 USB 设备,它可以多种配置 (Configuration)。比如 4G 上网卡就有
2 种配置:U 盘、上网卡。第 1 次把 4G 上网卡插入电脑时,它是一个 U
盘,可以安装里面的程序。装好程序后,把它再次插入电脑,它就是一个上网卡。驱动程序可以选择让它工作于哪种配置,同一时间只能有一种配置。大多数的
USB 设备只有一种配置。
一 ...
USB 子系统(二)USB 协议层数据格式
硬件拓扑结构
compound device :多个设备组合起来,通过 HUB 跟 Host 相连
composite device :一个物理设备有多个逻辑设备 (multiple
interfaces)
在软件开发过程中,我们可以忽略 Hub 的存在,硬件拓扑图简化如下:
一个物理设备里面可能有多个逻辑设备,Hos
可以外接多个逻辑设备,硬件拓扑图如下:
协议层
寻址设备阶段:USB 系统是一个 Host
对应多个设备,要传输数据首先要通知设备
发出 IN 令牌包:表示想读数据,里面含有设备地址
发出 OUT 令牌包:表示想写数据,里面含有设备地址
数据传输阶段
Host 想读数据:发出 IN 令牌包后读取数据包
Host 想发出数据:发出 OUT 令牌包后发出数据包
数据确认阶段
Host 读数据,设备可能未就绪,就会回应 NAK 包
Host 写数据,它发出数据后,设备正确接收了,就回复 ACK 包
SYNC 域
Host 发出 SOP 信号后,就会发出 SYNC 信号(前一节的那个 K-J-K-J-K-J-K
信号):它是一系列的、最大传输频率的脉 ...
USB 子系统(一)USB 电器特性
USB 2.0 协议支持 3 种速率:低速 (Low Speed,1.5Mbps)、全速 (Full
Speed, 12Mbps)、高速 (High Speed, 480Mbps)。
USB Hub、USB 设备,也分为低速、全速、高速三种类型。一个 USB
设备,可能兼容低速、全速,可能兼容全速、高速,但是不会同时兼容低速、高速。
USB 设备状态切换图
连接 (Attached):USB 设备在已连接到
USB,但还没有上电的时候处于连接状态。
上电 (Powered):USB 设备在已连接到
USB,并且已经上电,但还没有被复位的时候,处于上电状态。 USB
设备的电源获取分为两种,一种是通过外部电源进行获取,另一种是通过设备所连接的集线器
(hub) 处获得电源。通过外部供电的 USB 设备被称为自供电 (self-powered)
设备。尽管自供电设备在连接到 USB 之前可能已经有了电源,但在连接到 USB
并且 VBUS 被应用到设备之前,它们不被认为是处于上电状态。USB
设备可以同时支持自供电和总线供电 (bus-powered)
的配置。某些设备配置支持任一 ...
ISP YUV 域之 CE(Contrast Enhancement)
相关概念
直方图 Histogram
在分析图像数据的统计特性时,有时可以抛弃图像的色度分量,只考察图像的亮度分量,此时可以引入图像的亮度直方图(Luminance
Histogram),以常用的 8 位精度图像为例,直方图的 X 轴为 0~255,共 256
个桶,每个桶刚好覆盖 1 个像素值,直方图的 Y
轴表示每个桶盛纳了多少个像素。所有桶中盛纳的像素数加到一起应等于图像的总像素数。
在分析画面的亮暗特征,人们经常把亮度区间定性地划分成暗调、阴影、中调、亮调、高光等几个区域,各区域的边界则可以根据应用特点灵活掌握。
当需要分析图像的颜色特性时,可以引入通道直方图(Channel
Histogram),分别对 R/G/B 三个颜色通道进行直方图统计。
对比度 Contrast
图像对比度指的是一幅图像中最亮的白和最暗的黑之间灰度反差的大小。差异越大代表对比越大,否则对比越小。一种常用的定量度量方法是
Michelson 对比度,定义为
\[
C_M = \frac{I_{Max} - I_{Min}}{I_{Max} + I_{Min}}
\]
当一幅图像最白和最黑像素灰度都 ...
ISP YUV 域之 HueAndSaturation
色调 Hue
hue 的定义
hue
可以理解为占主导地位的纯色颜色,或两种纯色颜色的组合。简单来说,hue
就是颜色的“名字”,人们最常用黄色、橙色等概念来描述一个颜色。 Hue is the
color portion of the model, expressed as a number from 0 to 360 degrees.
Red: 0 and 60 degrees。
Yellow: 61 and 120 degrees。
Green: 121 and 180 degrees。
Cyan: 181 and 240 degrees。
Blue: 241 and 300 degrees。
Magenta: 301 and 360 degrees。
色调恒常 Hue constancy
描述一个颜色的三个参数是 hue, lightness, chroma (saturation)。
色调恒常是指,当颜色的 lightness/saturation
改变时,色调的感知(sensation)保持不变。否则就是发生了色调漂移(hue
shift)。
Tint = 在白色( ...
ISP YUV 域之 EdgeEnhancement
Retinex 理论
Retinex 这个词由 Retina 和 Cortex 两个单词组成。在 Retinex
理论中,物体的颜色是由物体对长波、中波和短波光线的反射能力决定的,而不是由反射光强度的绝对值决定的,并且物体的色彩不受光照非均性的影响,具有一致性。
在 Retinex
理论中,人眼得到的图像数据取决于入射光和物体表面对入射光的反射。如上图所示,I(x,y)
是我们最终得到的图像数据,先是由入射光照射,然后经由物体反射进入成像系统,最终形成我们所看到的图像。该过程可以用公式表示:
\[
I(x,y) = R(x,y) \cdot L(x,y)
\]
其中,I(x,y) 代表被观察或照相机接收到的图像信号;L(x,y)
代表环境光的照射分量 ;R(x,y)
表示携带图像细节信息的目标物体的反射分量。将该式子两边取对数,可以得到物体原本的信息:
\[
log[I(x,y)] = log[R(x,y)] - log[L(x,y)]
\]
在图像处理领域,常将该理论用于图像增强,为了得到成像更好的图片。这时,R(x,y)
表示为图像增强得到后的图像,I(x,y) 为原始的图像 ...
ISP Raw 域之 BayerDemosaic
Bayer Demosaic 概述
RAW 域的最后一步处理是 Demosaic,将像素从 RAW 域变换到 RGB
域进行下一阶段的处理。Demosaic 算法的主要难点在于,RAW
域的任何一个像点(photosite)只包含一个真实的采样值,而构成像素(R,G,B)的其它两个值需要从周围像点中预测得到。既然是预测,就一定会发生预测不准的情况,这是不可避免的,而预测不准会带来多种负面影响,包括拉链效应(zipper
artifacts),边缘模糊,颜色误差等。
所以 Demosaic
算法的主要挑战就是尽量提高算法的准确性,减少图像边缘损失和颜色误差。
Bayer 格式图像色彩恢复时有两种思路:
无方向性插值:不加边缘方向判断(思路:临近像素的均值),直接利用周围像素信息恢复。
有方向性插值:先判断边缘方向,再利用周围像素信息恢复。
Bayer
格式图像的绿色成分占比例较多,信息较丰富,色彩恢复时步骤通常是:a、先恢复
G 通道;b、再利用 G 通道信息恢复 R、B 通道。
CFA 双线性插值
无边缘检测
绿色像素上的 R,B 值分别由相邻的 2 个 R,B
像素的灰 ...
ISPRaw 域之 LSC
镜头阴影校正 LSC
镜头阴影有两种表现形式,分别是
Luma shading,又称
vignetting,指由于镜头通光量从中心向边缘逐渐衰减导致画面边缘亮度变暗的现象。
Chroma
shading,指由于镜头对不同波长的光线折射率不同引起焦平面位置分离导致图像出现伪彩的现象。
Vignetting 原理
画面边缘镜头能量衰减:
如上图所示,由于镜头中都会存在多处光阑,当入射光线偏离光轴角度较大时,部分光线就会被光阑遮挡而不能参与成像,因此越靠近
sensor 边缘的像素接收到的曝光量就越低。
边缘像素微透镜和感光面的错位:
这个问题在手机 sensor 上通常会更严重一些,因此设计手机 sensor
的厂家会采取一些特定的方法去缓解这个问题。一种常用的方法是在微透镜上做文章,即从中心像素开始,微透镜的尺寸略小于感光面的面积一点点,这样越往边缘微透镜与感光面之间的错位就越大,刚好可以补偿入射光线角度增大导致的焦点偏移,使光线可以更好地聚焦到感光面上,如下图所示。
不过深入研究会发现,这个补偿办法其实也是有局限的,如果 sensor
采用的是下图左所示的 FSI
工艺(前 ...
ISP Raw 域之降噪
Raw 域降噪的原因
Sensor 本身的噪声
Sensor 输出的 RAW 图像本身是携带了噪声的,前面提到过 sensor
噪声的种类主要包括热噪声、光散粒噪声、读出噪声、固定模式噪声等。当
sensor
温度较高、增益较大、环境较暗的情况下各种噪声会变得更加明显,成为影响图像质量的主要因素。
LSC(Lens shading
correction) 对噪声的影响
除了 Sensor 图像本身携带的噪声之外,图像每次会经过 ISP
模块的处理之后都会引入一些新的噪声,或者对原有噪声进行了放大。以 LSC
模块为例,LSC
校正的实质是在输入图像上乘以一个与像素位置有关的增益系数以补偿光信号的衰减,而补偿的规律是越远离图像中心的地方增益越大。由于
ISP
所用乘法器的精度是有限的,每做一次乘法就会重新引入一次截断误差,这是新增的噪声来源,所以经
LSC
处理后图像的整体噪声水平会有所增加,而且在图像的边缘处表现会更加明显,典型的效果如下图所示。
Shading 固然是不好的,需要校正,但是为了校正 shading
而给图像引入噪声同样也不好的,所以人们需要权衡在多大程度上校正 s ...
ISP RGB 域之 CCM
Why?
我们肉眼的对光谱的 RGB 响应曲线和 sensor 的响应曲线是不同的;
CCM 一般是 3x3 矩阵形式,也有 3x4 形式的,3x4 形式主要是给 rgb
各自加一个 offset
\[
\begin{bmatrix}
R_{out} \\
G_{out} \\
B_{out}
\end{bmatrix} =
\begin{bmatrix}
CC_{00} & CC_{01} & CC_{02}\\
CC_{10} & CC_{11} & CC_{12}\\
CC_{20} & CC_{21} & CC_{22}
\end{bmatrix} \ast
\begin{bmatrix}
R_{in} \\
G_{in} \\
B_{in}
\end{bmatrix}
\]
\[
\begin{bmatrix}
R_{out} \\
G_{out} \\
B_{out}
\end{bmatrix} =
\begin{bmatrix}
CC_{00} & CC_{01} & CC_{02} & ...