![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ISP
文章平均质量分 85
ISP相关知识笔记总结
亦枫Leonlew
嵌入式开发相关工作10+年,熟悉ARM/RISC-V架构,曾在展讯、华为工作
热爱技术,喜欢分享
喜欢自驾游和户外徒步,成都的朋友可以约起来
目前方向是3D视觉
展开
-
MIPI D-PHYv2.5笔记(22) -- Reverse High-Speed Data Transmission Timing
互联组件的信号延迟,加上Master和Slave模块内部的信号延迟,会在Master模块内部接收到的(Reverse)数据和它自身的(Forward)时钟之间,造成一个固定的但未知相位关系。反向数据传输不是源同步的,时钟信号由Master侧驱动,Data Lane被Slave侧驱动。此时bit周期被定为为。在发送给Slave的时钟有瞬时UI变化的情况下,Master要包含足够用的功能来正确采样接收到的数据。接收到的Sync序列的变化情况是已知的,它被用来选择合适的时钟信号相位,这个相位用于数据采样。原创 2023-04-21 15:05:04 · 411 阅读 · 0 评论 -
MIPI D-PHYv2.5笔记(21) -- Forward High-Speed Data Transmission Timing
数据以正交于时钟的关系被发出,因此时钟信号边沿可以被接收器直接用于采样接收到的数据。发送器要确保在一次burst传输的第一个载荷bit期间,发送一个DDR时钟的上升沿,这样第一个载荷bit能够在这个上升时钟沿上被接收器所采样,第二个载荷bit在下降沿上被采样,随后的数据bits,会在交替的上升沿和下降沿上被采样。原创 2023-04-19 11:23:49 · 1053 阅读 · 0 评论 -
MIPI D-PHYv2.5笔记(20) -- High-Speed Data-Clock Timing
PHY是在Forward Direction中的源同步接口(source synchronous interface)。无论是处于Forward还是Reverse信号模式,只能有一个时钟源。在Reverve Direction中,时钟是在Forward Direction中被发送的。原创 2023-04-14 17:26:15 · 1406 阅读 · 0 评论 -
MIPI D-PHYv2.5笔记(19) -- Fault Detection
检测链路的故障有三种不同的机制。总线冲突(总线竞争,bus contention)和错误检测功能包含在D-PHY内部。这些功能可以检查出许多典型的故障。但是有部分问题无法在D-PHY内部被检测到,需要协议层的解决方案来实现。因此,第三种检测机制是一系列应用专属的看门狗定时器(watchdog timers)。原创 2023-04-13 10:18:20 · 1057 阅读 · 0 评论 -
MIPI D-PHYv2.5笔记(18) -- Interoperability(不同版本DPHY互操作性)
一个D-PHY v2.0物理层发送器和一个D-PHY v2.1物理层接收器是兼容的,反过来也是。类似的,一个D-PHY v2.1的发送器可以搭配一个D-PHY v2.0的接收器,只要确保D-PHY v2.1的Alternate Caliberation Sequence或Preamble Sequence加上Extended Sync pattern在发送器里被禁用即可。上图的表格总结了所有可能的TX的D-PHY 规范版本和RX的D-PHY规范版本的集成和向下兼容的组合方式。原创 2023-04-11 17:37:57 · 1167 阅读 · 0 评论 -
MIPI D-PHYv2.5笔记(17) -- Global Operation Flow Diagram、数据速率依赖参数
显式的时间总体来说,来源是,在给定的具体驱动电压和线路端接(Line termination)值时,需要用来充电和放电互连电路到指定值的时间。但是重新编程D-PHY高速传输的数据速率在某些点上是被允许的,这些点包括:初始化的时候、在从ULP状态退出过程开始之前或者在Stop状态中HS clock没有运行的任意时间点。是用于准备HS传输的启动过程中的驱动LP-00的时间,加上发送HS-0的时间,即:在发送SoT Sync序列之前,打开线路端接并使用HS驱动器驱动互连电路的时间。原创 2023-04-11 16:52:10 · 956 阅读 · 1 评论 -
MIPI D-PHYv2.5笔记(16) -- Preamble Sequence、HS-Idle State、Sync Patterns
根据数据速率和HS-Idle的时序,两个HS Data Burst之间的延迟可以通过使用HS-Idle State来降低。在Hs-Idle状态中,Clock Lane在所有Data Lanes都已经完成了它们的Data Bursts并且已经切换到了HS-0状态之后,停在HS-0状态中。前导码序列(Preamble Seqence)的长度较短,它被插入到每个高速载荷的起始位置,目的是细调由于温度和电压变化导致的时钟到数据的偏斜(clock-to-data skew)。HS-Idle状态要退出到SoT。原创 2023-04-11 14:08:11 · 1451 阅读 · 0 评论 -
MIPI D-PHYv2.5笔记(15) -- Skew Calibration和Alternate Calibration Sequence
对于大于1.5Gbps的情况,需要发送器发送一个特殊的去偏斜(deskew)burst,让接收器做去偏斜功能。当工作速率在1.5Gbps以上或将速率变到1.5Gbps以上时,在高速数据传输之前需要传输一个初始去偏斜序列(initial deskew sequence)。当工作速率在1.5Gbps以下时,传输初始去斜序列是可选的。周期性的去偏斜功能(periodic deskew)和数据速率无关,是可选的功能。原创 2023-04-07 17:37:39 · 3038 阅读 · 3 评论 -
MIPI D-PHYv2.5笔记(14) -- Initialization
时间的Stop状态被称为初始化周期(Initialization period)。如果ALP模式也支持,则链路是用LP初始化流程还是ALP初始化流程,由系统实现者决定。在上电后,Slave侧PHY要在Master PHY驱动了一个Stop状态(LP-11)并维持超过。的最小长度是有要求的,规范上要求不小于100us。使用D-PHY规范的协议层规范可以指定任意大于这个值的值,比如。Slave侧在初始化周期之前的一段未指定长度的时间内,要忽略所有的信号线状态。的具体要求是被定义在协议层规范中的。原创 2023-04-07 13:47:41 · 782 阅读 · 0 评论 -
MIPI D-PHYv2.5笔记(13) -- Global Operation Timing Parameters
图1和图2截图自规范的Table18和Table19。这两张表列举了LP mode - HS mode操作和ALP mode - HS mode操作中的所有时序参数。表格中的值会假设UI变化的范围是。注:UI表示单位间隔(Unit Interval),它的值等于Clock Lane上任意HS状态的持续时间。所定义的(图3,也是规范的Table42)。原创 2023-04-04 14:41:42 · 597 阅读 · 0 评论 -
MIPI D-PHYv2.5笔记(12) -- Clock Lane的ULPS
尽管Clock Lane不包含常规的Escape Mode,但Clock Lane要支持ULPS(Untra-Low Power State)。Clock Lane通过一个Clock Lane Untra-Low Power State Entry过程进入到ULPS状态。这个过程以Stop状态为起点,发送侧驱动TX-ULPS-Rqst State(LP-10),随后驱动TX-ULPS State(LP-00)。在此之后,Clock Lane进入ULPS。原创 2023-04-04 14:13:27 · 1678 阅读 · 0 评论 -
MIPI D-PHYv2.5笔记(11) -- 高速时钟传输(High-Speed Clock Transmission)
在High-Speed模式中,Clock Lane提供了一个低摆幅(low-swing)、差分DDR时钟信号,此信号从Master到Slave,用于为高速数据传输提供时钟信号。时钟信号关于Forward Direction中的Data Lane上的位切换序列(toggling bit sequence)有正交相位,并且在一次burst的第一个被传输的bit的中心点有一个上升沿。原创 2023-04-04 11:19:12 · 1296 阅读 · 0 评论 -
MIPI D-PHYv2.5笔记(10) -- Escape Mode(Remote Triggers、LPDT、ULPS)
Escape Mode是使用Low-Power状态的Data Lanes的一种特殊操作模式,用这种模式可以实现一些特殊的附加功能。Escape Mode要在Forward Direction上支持,Reverse Direction上则是可选项。支持Escape Mode并不意味着必须包含其所有可用的特性。Data Lane通过Escape Mode Entry过程(LP-11,LP-10,LP-00,LP-01,LP-00)进入Escape Mode。原创 2023-03-31 16:59:59 · 2468 阅读 · 0 评论 -
MIPI D-PHYv2.5笔记(9) -- Bi-directional Data Lane Turnaround
双向Data Lane的数据传输方向能够通过Link Turnaround过程进行反转。这个过程能够让信息传输的方向变成当前方向的反方向。无论是正方向到反方向(Forward-to-Reverse)还是反方向到正方向(Reverse-to-Forward)的变化,这个过程都是一样的。但需要注意Master和Slave并不会因为Turnaround所改变。Turnaround过程有两种方式执行:一种是通过使用了LP模式信号的Control Mode Lane Turnaround;原创 2023-03-30 11:09:22 · 990 阅读 · 0 评论 -
MIPI D-PHYv2.5笔记(8) -- 高速数据传输(High-Speed Data Transmission)
高速数据传输以突发传输(bursts)方式进行。为了帮助接收端做同步,在发送端的data bursts会使用一个前导(leader)序列和一个尾部(trailer)序列进行扩展,这些序列在接收端要能正常去掉,不对实际数据造成影响。因此前导和尾部序列只能在传输线上被看到。数据传输起始点和结束点都是Stop状态。在突发传输之间的间歇中,Data Lane要保持在状态,除非在Lane上出现了Turnaround或Escape请求。原创 2023-03-29 18:13:14 · 1724 阅读 · 0 评论 -
MIPI D-PHYv2.5笔记(7) -- 工作模式:HS/LP/ALP
在HS和LP模式正常工作时,Data Lane要么处于Control模式,要么处于High-Speed模式。High-Speed数据传输以burst方式进行,其开始和结束的点是Stop状态(LP-11),根据定义来看也就是处于Control模式。Lane只会在Data突发传送(bursts)时处于High-Speed模式。进入HS模式的序列是:LP-11,LP-01,LP-00,在LP-00这个点上,Data Lane会保持在HS模式下,直到收到LP-11为止。原创 2023-03-29 15:17:22 · 2712 阅读 · 0 评论 -
MIPI D-PHYv2.5笔记(6) -- 传输数据结构,Lane状态和Line Level
一旦通信开始,发送侧的协议层只要不停止传输请求,就要提供合法的数据。接收侧的协议在接收的PHY将数据送到协议层时要尽快将数据拿走。这种信号概念(此处直译,不太清楚如何解读,原文:the signaling concept)以及PHY协议的握手动作,不允许有数据节流(data throttling,个人理解类比于无线通信中的限速动作)。最小的载荷数据单元是一个字节。任意Lane上送给TX的数据、以及从RX上接收的数据大小要是字节的整数倍。发送端的PHY中会对数据做序列化,接收端的PHY会做反序列化。原创 2023-03-28 17:32:30 · 1506 阅读 · 0 评论 -
MIPI D-PHYv2.5笔记(5) -- 不同的PHY配置方式
规范5.7章节列举了一些常见的PHY配置,但实际上只要不违反原则,可以扩展出其他很多种PHY配置。规范中下图展示了不同Lane类型的符号化表示。原创 2023-03-27 16:34:06 · 929 阅读 · 0 评论 -
MIPI D-PHYv2.5笔记(4) -- Lane模块类型
表格中,任何用于识别Lane类型的四个字符(CIL-之后的四个字符),都可以被X来替换,X表示对应的功能可以是所有可选项中的任意一个。一个Lane模块所需要的功能,是由Lane的类型和Lane模块处于Lane互联部件的哪一侧(Master/Slave)所决定的。下图展示了一个通用的Lane模块的框图,主要说明了CIL的内部功能。这个通用的Lane模块能够用于所有Lane类型,但在实际使用中,CIL需要哪些东西是根据Lane的类型和Lane所处的位置所决定的。下表展示了不同类型的Lane描述符。原创 2023-03-27 15:22:29 · 1293 阅读 · 0 评论 -
MIPI D-PHYv2.5笔记(3) -- 架构杂项(Master/Slave,高频时钟产生,Clock/Data Lane,PPI)
应用要定义所需的额外的Escap Mode或ALP Mode的功能有哪些,对于双向Lane来说,要为每一个方向单独选择Escap mode和(或)ALP mode功能。D-PHY规范中所使用的架构模型中,有一个单独的时钟倍频器单元放置到了PHY的外部,它会为PHY产生所需要的高频时钟信号。一条完整的链路,除了Lane模块外,还包含一个PHY Adatper Layer用来将所有Lane绑到一起、一个时钟倍频器单元以及PHY Protocol Interface。Clock信号被所有Lane所共享。原创 2023-03-24 15:57:11 · 2298 阅读 · 0 评论 -
MIPI D-PHYv2.5笔记(2) -- LANE模块概览
Low-Power功能包含单端的发送器(LP-TX)和接收器(LP-RX)以及Low-Power 竞争检测器(Low-Power Contention-Detectors,LP-CD)。LP-TX可以支持可选的低电压低功耗操作(Low Voltage Low Power,LVLP),对比普通的Low-Power模式,其最大电压是受限制的。ALP和HS模式共享通用的HS-TX和HS-RX功能。在一个单Lane模块中LP-TX、HS-TX和HS-RX的动作是互斥的,除了在某些很短的切换周期中存在交叠。原创 2023-03-24 14:05:29 · 1311 阅读 · 0 评论 -
MIPI D-PHYv2.5笔记(1) -- DPHY概览
D-PHY是一个源同步的、高速、低功耗和低成本的PHY,特别适合移动应用领域。D-PHY主要是用作摄像头和显示屏和主处理器的数据通信,但也能用于多种其他类型应用场景。原创 2023-03-22 15:37:22 · 2417 阅读 · 0 评论 -
几何角度理解相机成像过程
本笔记从几何角度来理解相机的成像过程,我们生活在三维世界中,相机所捕捉到的画面是2D的,3D空间中的点是如何投影到2D平面的过程是本笔记关注的。这个过程其实和3D游戏中的透视投影过程是一样的。本笔记只要知道矩阵乘法的知识就可以理解。原创 2022-12-12 15:31:37 · 889 阅读 · 0 评论 -
伽马校正笔记(Gamma Correction)
在数字图像系统中,伽马(Gamma)是一个重要的但很少被正确理解的特性。它定义了一个像素的数值和对应的实际亮度之间的关系。原创 2022-11-22 15:06:36 · 3844 阅读 · 0 评论 -
颜色杂项笔记
面向用户的颜色模型HSV,有如下几个属性Hue(色度、色调、色相):描述具体颜色,比如红、蓝、黄、绿等,可以理解为color的专业说法。Saturation(饱和度):表示颜色接近光谱色的程度。饱和度高低会影响色彩的明艳程度。直白点理解,假设你有一种红色颜料和水,水加的越多,红色会越淡(饱和度低);水加的少,红色就会浓(饱和度高)。Value(明度):颜色的明亮程度。原创 2022-11-15 22:00:18 · 2142 阅读 · 0 评论 -
MIPI CSI-2笔记(25) -- JPEG Interleaving
CSI-2包头里的虚拟通道标识符(Virtual Channel Identifier)和数据类型(Data Type),提供了简单方法来交错传输包级别的多条数据流或多种图像数据类型的数据。不同的虚拟通道(data streams),每个通道有自己独立的帧和行的同步信息,因此每个通道可能有不同的帧率。CSI-2包头中的Data Type值用来在CSI-2发送器处复用(multiplex)不同的图像数据类型,在CSI-2接收器处解复用(de-multiplex)数据类型。原创 2022-10-01 14:31:28 · 1758 阅读 · 0 评论 -
MIPI CSI-2笔记(24) -- Sleep Mode
在移动终端设备中的相机大部分时间都处于非活动状态,因此需要实现方案有办法让CSI-2链路进入到低功耗状态,此状态要尽可能低到和漏电水平时功耗差不多。本章节提出了一种让CSI-2链路进入到“Sleep Mode”(SLM)的方法。本章节为提示性的章节,不会影响CSI-2规范遵从性,但该方法是由MIPI Camera Working Group所提供的推荐方法。原创 2022-09-30 13:54:51 · 854 阅读 · 0 评论 -
MIPI CSI-2笔记(23) -- 推荐的接收器错误处理行为
概览本章节提出的CSI-2链路的接收侧错误处理方法,是由MIPI Camera Working Group所提出的推荐的方法,属于提示性和建议性的方法,并不会影响CSI-2的规范遵从性。本章节所使用的案例是由单向的D-PHY时钟和数据Lane、数据Lane上带有Escape mode功能并且是连续时钟的CSI-2链路组成的CSI-2接收器。原创 2022-09-26 14:01:07 · 3242 阅读 · 2 评论 -
MIPI CSI-2笔记(22) -- CSI-2实现案例
本章节的CSI-2实现案例,假设接口由D-PHY单向的时钟和数据加上forward Escapde Mode以及可选的去斜(deskew)功能组成。本示例只使用RAW8数据类型做为参考,因此不会有封包/解封包或字节时钟(byte clock)/像素时钟(pixel clock)时序等相关参考设计方案,因为这种类型的实现方案中不需要它们。示例也没有错误恢复机制或错误处理细节的相关内容,因为本章节主要目的是展示从数据流的视角来看的实现方案。原创 2022-09-20 17:34:19 · 2791 阅读 · 0 评论 -
MIPI CSI-2笔记(21) -- JPEG8数据格式
使用sRGB色彩空间。在sRGB转换为YCbCr格式之后,JPEG由YCbCr数据生成。JPEG元数据必须是EXIF兼容的,即应用片段内的元数据要放到文件开头,元数据顺序如下图所示:兼容EXIF的基线JPEG DCT格式JPEG数据的结尾处增加一行状态行(Status Line)如有需要,内嵌的图像可按照任意选择的顺序交织(Interlaced)在存储到文件前,CSI-2 JPEG数据经过数据分离过程(data separation process)所处理基线JPEG帧结束后的状态信息。原创 2022-09-13 16:34:44 · 837 阅读 · 0 评论 -
MIPI CSI-2笔记(20) -- 建议的内存存储格式(Recommended Memory Storage)
CSI-2数据协议对连接到CSI发送器的接收器的行为有一定要求。本小节描述了不同的数据格式应该如何被存储在接收器内。规范中这个部分是提示性的,但按照本节的建议会简化应用程序开发过程,因为这样做能够让不同接收器都按照一种通用的数据存储格式来工作。原创 2022-09-13 11:30:33 · 2012 阅读 · 0 评论 -
MIPI CSI-2笔记(19) -- 数据格式(用户自定义数据格式)
要在CSI-2总线上传输任意的数据,比如JPEG和MPEG4数据等,需要使用用户自定义数据类型。数据要进行打包操作以便让数据长度能够被8 bits除尽。如果需要数据填充,填充操作要在数据呈现到CSI-2协议层接口之前进行。包数据大小,按bit数量计算,要能够除尽8,即要是字节的整数倍。传输的位序遵循通用的CSI-2规则,LSB优先。原创 2022-09-13 10:04:48 · 780 阅读 · 0 评论 -
MIPI CSI-2笔记(18) -- 数据格式(RAW图像数据)
RAW6/7/8/10/12/14/16/20/24被用来传输图像传感器RAW图像数据。RAW图像数据是未经压缩过的图像数据(即Raw Bayer数据),或者是互补色数据,但RAW图像数据不限于这些数据类型。原创 2022-09-09 17:14:23 · 11492 阅读 · 2 评论 -
MIPI CSI-2笔记(17) -- 数据格式(RGB图像数据)
传输中的位序按照一般的CSI-2规则进行,LSB优先。字的反转(flip)针对16-bit BGR字进行,即不是对每个字节(8-bits)进行反转,而是对16-bit像素值整体进行反转,和RGB565处理一致。字的反转(flip)针对16-bit BGR字进行,即不是对每个字节(8-bits)进行反转,而是对16-bit像素值整体进行反转,和RGB565处理一致。字的反转(flip)针对16-bit BGR字进行,即不是对每个字节(8-bits)进行反转,而是对16-bit像素值整体进行反转。原创 2022-09-09 14:31:36 · 4403 阅读 · 2 评论 -
MIPI CSI-2笔记(16) -- 数据格式(YUV图像数据)
表格定义了YUV数据格式所使用的数据类型编码。YUV420数据类型的数据行数量需要是偶数。YUV420数据格式分为legacy和非legacy数据格式。Legacy YUV420数据格式主要是为了和已经存在的系统做兼容。Legacy YUV420 8-bit数据传输是通过在奇数/偶数行发送UYY.../VYY...序列实现的。下面的表格对YUV420 8-bit包的包大小进行了规定。每个包的长度必须是表中的值的整数倍。传输中的位序按照一般的CSI-2规则进行,LSB优先。原创 2022-09-08 18:14:40 · 4526 阅读 · 0 评论 -
MIPI CSI-2笔记(15) -- 数据格式(简介、通用8-bit长包数据类型)
本小节开始介绍CSI-2应用中所使用的数据格式。参考下表:为了简单起见,本节所有例子都是单Lane配置。表格中“primary”是指在CSI-2应用程序中使用的最为广泛的格式。CSI-2发送器实现上要支持至少一个种primary格式。CSI-2接收器的实现上要支持所有primary格式。包的载荷数据格式要和包头中的Data Type值所对应的数据包格式相一致。原创 2022-09-08 15:58:08 · 4211 阅读 · 0 评论 -
MIPI CSI-2笔记(14) -- Low Level Protocol(包数据载荷大小相关规则,帧格式示例,数据交错Data Interleave)
对于YUV,RGB或RAW的数据类型,一个长包包含一行图像数据。当数据包的虚拟通道号相同,并且都属于同一帧,那么相同Data Type的每个长包长度也要相同。但有一个例外是YUV420数据类型,在后续数据格式详细描述的笔记中会说明。对于用户自定义的基于字节的Data Type、USL Data Type(0x38)以及SROI长包Data Type,长包长度可以是任意的。包之间的间隔也能变化。对所有的data type,一个长包内的载荷数据的总大小要是8 bits(字节)的整数倍。原创 2022-09-07 15:05:55 · 1444 阅读 · 0 评论 -
MIPI CSI-2笔记(13) -- Low Level Protocol(SROI, Smart Region of Interest)
SROI(Smart Region of Interest)特性支持自适应传输矩形的感兴趣区域(rectangular ROI)。SROI可以通过选择性地发送从原始图像中抠出的一个或多个较小的ROI,达到降低数据带宽的目的,这些ROI可以是人脸或车牌等。SROI在用于计算机视觉,机器视觉等场景中有很多用处,相关应用不仅在移动市场中广泛存在,同样存在于工业、监视和IoT等领域。原创 2022-09-07 11:03:38 · 1302 阅读 · 0 评论 -
MIPI CSI-2笔记(12) -- Low Level Protocol(数据加扰,扰码,Data Scrambling)
数据加扰(Data Scrambling)的目的是减轻EMI和RF自干扰做造成的影响,加扰是通过将链路的信息传输能量扩展到一个尽可能大的频带上,使用了一种数据随机化技术(data randomization technique)。本节介绍的扰码是可选项:如果CSI-2实现方案包含了对加扰的支持,那么加扰特性的实现上要按照本小节的描述来。使用数据加扰的好处是总所周知的,强烈推荐在系统中实现数据加扰能力来减少辐射干扰。如上图所示,数据加扰应用在每Lane上。原创 2022-09-02 17:00:12 · 3414 阅读 · 2 评论 -
MIPI CSI-2笔记(11) -- Low Level Protocol(统一串行链路,Unified Serial Link)
统一串行链路(USL,Unified Serial Link)是一个可选的CSI-2特性,它能够减少接口信号线数量并且能让通信距离变长。USL构建在由LRTE特性提供的优点之上。使用USL,相机命令接口CCI(Camera Command Interface)所用的I2C,I3C或SPI互联接口、或者用于相机模块控制信号的的GPIO所需的额外信号线可以不再需要或减少。............原创 2022-08-30 15:05:39 · 2466 阅读 · 0 评论