Rockchip | Rockchip Camera技术

Rockchip-isp1


概述

以下文档提供了rockchip-isp1驱动程序和rockchip SoC上图像信号处理模块的基本信息,并附有示例和详细信息。

硬件

更多详细信息可在TRM章节“Image Signal Processing”、“MIPI D-PHY”中找到,但它们仅在NDA下可用。

ISP 详细

ISP 包括:

  • MIPI serial camera interface
  • Image Signal Processing
  • Many Image Enhancement Blocks
  • Crop
  • Resize

方框图

完整的方框图无法从datasheet粘贴到此处,下图为抽象版本:

Blocks.png

MIPI 详细

rockchip SoC中有三个D-PHY实例,其连接如下图所示:

Phy.png

软件

驱动

rockchip-isp1是rockchip SoC上基于V4L2的图像信号处理模块驱动程序。与早期的驱动程序rk-isp10相比,它使用媒体控制器框架,这与普通的v4L2不同。虽然普通v4L2将设备视为将输入数据连接到主机存储器的基于DMA的普通图像拖放器,但媒体控制器考虑到一个典型视频设备可能由多个子设备组成。

媒体控制器基础知识

请仔细阅读下面的链接,如果你以前没有使用过它。

https://linuxtv.org/downloads/v4l-dvb-apis/uapi/mediactl/media-controller-intro.html

方框图

File 视图

Code.png

V4l2 视图

Rockchip-isp1-v4l2.png

NameTypeDescription
rkisp1_mainpathv4l2_vdev, capture

格式:YUV, RAW Bayer;最大分辨率:4416*3312;支持:Crop

rkisp1_selfpathv4l2_vdev, capture

格式: YUV, RGB;最大分辨率:920*1080;支持:Crop

rkisp1-isp-subdevv4l2_subdev

内部isp模块;支持:source/sink pad crop。

sink pad的格式应等于sensor输入格式,大小应等于/小于sensor输入大小。

如果输出格式为raw bayer,则source pad的格式应等于vdev输出格式,否则应为YUYV2X8。大小应等于/小于sink pad。

rockchip-sy-mipi-dphyv4l2_subdev

MIPI-DPHY 配置

rkisp1-statisticsv4l2_vdev, capture提供图像颜色统计信息
rkisp1-input-paramsv4l2_vdev, output

接收AWB、BLC的参数。。。。。。图像增强块

Sensor 驱动要求

sensor驱动应执行下表中的控制。

ControlsDescriptionR/WNeeded by
V4L2_CID_VBLANK垂直消隐。每帧之后的空闲时间,在此期间不产生图像数据。垂直消隐的单位是直线。每一行都有图像宽度的长度加上在同一子设备中由V4L2_CID_PIXEL_RATE速率控制定义的像素速率下的水平消隐。RAe
V4L2_CID_HBLANK水平消隐。每行图像数据之后的空闲时间,在此期间不产生图像数据。水平消隐的单位是像素。RAe
V4L2_CID_EXPOSURE确定相机sensor的曝光时间。曝光时间受帧间隔的限制。驱动会将这些值解释为100µs单位,其中值1代表1/10000秒,10000代表1秒,100000代表10秒。R/WAe
V4L2_CID_ANALOGUE_GAIN模拟增益是影响像素矩阵中所有颜色分量的增益。增益操作在A/D转换之前在模拟域中执行。R/WAe
V4L2_CID_DIGITAL_GAIN数字增益是所有颜色分量乘以的值。通常,应用的数字增益是控制值除以例如0x100,这意味着为了不获得数字增益,控制值需要为0x100。无增益配置通常也是默认配置。R/WAe
V4L2_CID_PIXEL_RATE子设备源板中的像素速率。此控制为只读,其单位为像素/秒。RAe
V4L2_CID_LINK_FREQ数据总线频率。数据总线频率与媒体总线像素代码、总线类型(每个采样的时钟周期)一起定义像素阵列中的像素速率(V4L2_CID_PIXEL_RATE)(如果设备不是图像sensor,则可能在其他地方)。帧速率可以通过像素时钟、图像宽度和高度以及水平和垂直消隐来计算。虽然像素速率控制可以在包含像素阵列的子设备之外的其他地方定义,但无法从该信息获得帧速率。这是因为只有在像素阵列上,才能假定垂直和水平消隐信息是准确的:像素阵列中不允许其他消隐。帧速率的选择通过选择所需的水平和垂直消隐来执行。这种控制的单位是赫兹。Rmipi-dphy

设备树绑定

https://github.com/torvalds/linux/tree/master/Documentation/devicetree/bindings/media/rockchip-isp1.txt

https://github.com/torvalds/linux/tree/master/Documentation/devicetree/bindings/media/rockchip-mipi-dphy.txt

Linux

用户应用

v4l-utils工具和应用程序:

v4l-utils工具是由Linux维护的V4L2开发工具包。它提供了一套用于配置V4L2子设备属性的V4L2和媒体框架相关工具,测试V4L2设备,并提供开发库,如libv4l2等等。 

本章主要介绍v4l utils中的两个命令行工具:media-ctl和v4l2-ctl

 media-ctl,用于查看和配置拓扑

 v4l2-ctl,用于配置v4l2控件、捕获帧、设置cif、isp和sensor

参数:

v4l-utils的不同版本的格式代码将不同,尤其是mbus-fmt部分,本文档中使用的版本是集成在Linux SDK中的v4l-utils-1.14.1。

Android

https://source.android.com/devices/camera/camera3

二次开发

该驱动程序目前可以在ASUS Tinker Board和Firefly-RK3288-Reload+Rockchip Debian/Yocto SDK上运行。

源码

内核

  1. 4.15 + FORMLIST Patches
  2. Rockchip 4.4 BSP

Sensor驱动

  1. IMX219
  2. OV5647
  3. TC35874X

设备树

  1. Tinker Board
  2. Firefly-rk3288-Reload

测试命令

cat /sys/class/video4linux/video*/name
# get self_path videox and main_path videox+1
gst-launch-1.0 rkcamsrc device=/dev/videox+1 io-mode=4 ! videoconvert ! video/x-raw,format=NV12,width=640,height=480 ! kmssink

其他

拓扑

Media device information
------------------------
driver          rkisp1
model           rkisp1
serial          
bus info        
hw revision     0x0
driver version  0.0.0

Device topology
- entity 1: rkisp1-isp-subdev (4 pads, 5 links)
            type V4L2 subdev subtype Unknown flags 0
            device node name /dev/v4l-subdev0
        pad0: Sink
                [fmt:SBGGR10_1X10/800x600 field:none
                 crop.bounds:(0,0)/800x600
                 crop:(0,0)/800x600]
                <- "rockchip-sy-mipi-dphy":1 [ENABLED]
        pad1: Sink
                <- "rkisp1-input-params":0 [ENABLED]
        pad2: Source
                [fmt:SBGGR10_1X10/800x600 field:none
                 crop.bounds:(0,0)/800x600
                 crop:(0,0)/800x600]
                -> "rkisp1_selfpath":0 [ENABLED]
                -> "rkisp1_mainpath":0 [ENABLED]
        pad3: Source
                -> "rkisp1-statistics":0 [ENABLED]

- entity 2: rkisp1_selfpath (1 pad, 1 link)
            type Node subtype V4L flags 0
            device node name /dev/video0
        pad0: Sink
                <- "rkisp1-isp-subdev":2 [ENABLED]

- entity 3: rkisp1_mainpath (1 pad, 1 link)
            type Node subtype V4L flags 0
            device node name /dev/video1
        pad0: Sink
                <- "rkisp1-isp-subdev":2 [ENABLED]

- entity 4: rkisp1-statistics (1 pad, 1 link)
            type Node subtype V4L flags 0
            device node name /dev/video2
        pad0: Sink
                <- "rkisp1-isp-subdev":3 [ENABLED]

- entity 5: rkisp1-input-params (1 pad, 1 link)
            type Node subtype V4L flags 0
            device node name /dev/video3
        pad0: Source
                -> "rkisp1-isp-subdev":1 [ENABLED]

- entity 6: rockchip-sy-mipi-dphy (2 pads, 2 links)
            type V4L2 subdev subtype Unknown flags 0
            device node name /dev/v4l-subdev1
        pad0: Sink
                [fmt:SRGGB10_1X10/3280x2464 field:none]
                <- "imx219 2-0010":0 [ENABLED]
        pad1: Source
                [fmt:SRGGB10_1X10/3280x2464 field:none]
                -> "rkisp1-isp-subdev":0 [ENABLED]

- entity 7: imx219 2-0010 (1 pad, 1 link)
            type V4L2 subdev subtype Sensor flags 0
            device node name /dev/v4l-subdev2
        pad0: Source
                [fmt:SRGGB10_1X10/3280x2464 field:none]
                -> "rockchip-sy-mipi-dphy":0 [ENABLED]
  • 5
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Rockchip TRM是指Rockchip芯片的技术参考手册,其包含了Rockchip芯片的架构、寄存器、指令集、存储器、接口规范等详细信息,它为硬件工程师提供了开发、设计和调试Rockchip产品所需的全部技术信息。 Rockchip TRM对于Rockchip芯片的开发具有非常重要的意义,它可以帮助工程师深入了解Rockchip芯片的内部原理和功能模块,从而更好地进行硬件开发和调试,提高产品的性能和稳定性。同时,Rockchip TRM也为软件工程师提供了与硬件相对应的开发接口和指令集,使得软件开发更为方便和快捷。 总的来说,Rockchip TRM对于Rockchip芯片的开发和生产具有不可替代的重要性,它为Rockchip产品的研发提供了有力的技术支持和保障,也为Rockchip在市场上的竞争赢得了更大的优势。 ### 回答2: Rockchip TRM(Technical Reference Manual)是一份面向开发者的技术参考手册,专门介绍Rockchip芯片的技术规格、架构和应用开发等方面的详细内容。其主要作用是帮助开发者理解和掌握Rockchip平台的技术细节和原理,以便更好地开发出高质量的软件和硬件产品。 Rockchip TRM提供了丰富的技术资料和工具,其中包括芯片的框架结构、接口定义、寄存器编址、寄存器位域和值的描述、中断和异常处理机制、存储设备驱动、引导载入流程、Boot ROM介绍、调试和性能分析工具等等。这些内容可以帮助开发者深入了解Rockchip芯片的功能和性能特征,从而更好地开发出适合芯片的软件和硬件产品。 总之,Rockchip TRM是一份非常重要的技术参考手册,对于所有使用Rockchip芯片的开发者来说都具有很高的参考价值。通过学习和掌握这份手册,开发者可以更好地应对现代系统复杂性带来的挑战,加快产品开发速度,提升产品质量和性能。 ### 回答3: Rockchip TRM是Rockchip公司的技术参考手册。它是为了帮助软件开发者理解Rockchip处理器架构和硬件功能而编写的。TRM详细介绍了处理器架构、指令集、寄存器、内存控制器、DMA控制、加密引擎、GPIO和中断控制等硬件特性和软件编程接口。通过认真阅读TRM,软件开发者可以更好地了解Rockchip处理器如何工作和交互,并为其应用程序和设备驱动程序的编写提供指导。同时,TRM也是技术支持人员在处理软件问题时的重要文档。值得注意的是,由于TRM包含周密的技术细节,因此只有具备良好技术背景和专业知识的人士才能充分利用、理解和正确使用TRM。为了更好地服务用户,Rockchip公司及时更新和发布TRM版本,以便用户能够及时获取最新的技术文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值