视频输入(VI)模块实现的功能:通过 MIPI Rx(含 MIPI 接口、LVDS 接口和 HISPI 接口),SLVS-EC,BT.1120,BT.656,BT.601,DC 等接口接收视频数据。VI 将接收到的数据存入到指定的内存区域,在此过程中,VI 可以对接收到的原始视频图像数据进行处理,实现视频数据的采集。

重要概念

  • 视频输入设备
    视频输入设备支持若干种时序输入,负责对时序进行解析。
  • 视频输入 PIPE
    视频输入 PIPE 绑定在设备后端,负责设备解析后的数据再处理。
  • 视频物理通道
    物理通道负责将最终处理后的数据输出到 DDR,在真正将数据输出到 DDR 之前,它可以实现裁剪等功能。
  • PIPE 的工作模式
    参考: 海思hi35xx 开发学习(2):系统控制
  • 掩码
    掩码用于指示 VI 设备的视频数据来源。
  • 镜头畸变校正(LDC)
    镜头畸变校正,一些低端镜头容易产生图像畸变,需要根据畸变程度对其图像进行校正。
  • DIS
    DIS 模块通过比较当前图像与前两帧图像采用不同自由度的防抖算法计算出当前图像在各个轴方向上的抖动偏移向量,然后根据抖动偏移向量对当前图像进行校
    正,从而起到防抖的效果。
  • BAS
    Bayer scaling,即 Bayer 域缩放。
  • 低延时
    低延时指图像写出指定的行数到 DDR 后,VI 上报一个中断,把图像发给后端模块处理,可以减少延时,且硬件会有机制保证图像是先写后读,不会出现读图像错误。
  • 提前上报中断
    提前上报中断指图像写出指定的行数到 DDR 后,VI 上报一个中断,把图像发给后端模块处理,可以减少延时,但没有和低延时一样的硬件机制保证后端模块读图像不会出错。

功能描述

VI 在软件层次上划分 4 个部分:

视频输入设备

所有 VI 设备都是相互独立的,支持时序解析。

视频输入 PIPE

VI 的 PIPE 包含了 ISP 的相关处理功能,主要是对图像数据进行流水线处理,输出YUV 图像格式给通道。PIPE 的工作模式参考: 海思hi35xx 开发学习(2):系统控制

视频物理通道

  • Hi3559AV100ES VI 的一个 PIPE 包含 2 个物理通道,每个物理通道具有裁剪等功能,每个物理通道同时支持 8 个扩展通道。
  • Hi3559AV100 VI 只有一个物理通道,支持 8 个扩展通道。
  • Hi3519AV100 VI 的一个 PIPE 包含 2 个物理通道,CH0 具有裁剪、压缩等功能,CH1 具有缩小的功能,支持 8 个扩展通道。
  • Hi3559AV100ES/Hi3559AV100 物理通道支持的典型分辨率如 7680x4320@30、3840x2160@120、3840x2160@60、3840x2160@30、1080p@240、1080p @120、1080p @60、1080p@30 等。
  • Hi3519AV100 物理通道支持的典型分辨率如 3840x2160@60、3840x2160@30、1080p@240、1080p@120、1080p@60、1080p@30 等。

视频扩展通道

扩展通道是物理通道的扩展,扩展通道具备缩放、裁剪、鱼眼矫正功能,它通过绑定物理通道,将物理通道输出作为自己的输入,然后输出用户设置的目标图像。

绑定关系

MIPI 和 DEV 的绑定关系。

  • Hi3559AV100ES 的 Dev 可以与任意 MIPI 设置绑定,不能动态修改绑定关系。
  • Hi3559AV100 的 Dev 与 MIPI 绑定关系是固定的,不能动态修改绑定关系。
  • Hi3519AV100 的 Dev 与 MIPI 绑定关系是固定的,不能动态修改绑定关系。
  • DEV 和前端时序输入的接口有约束关系。
    例如 Hi3559AV100 前端需要接入BT.1120,且选择了第 0 组 BT.1120 管脚,PIPE 应该和 DEV5 绑定,才能正常接收数据。

Hi3519AV100 DEV 与 MIPI/SLVS/BT.1120/BT656/BT.601/DC 接口的绑定关系:

每个 PIPE 都可以与任意 Dev 绑定,但不能动态修改绑定关系。
线性模式(非 WDR 模式)的一条通路应该是一个 PIPE 绑定一个 Dev,WDR 模式下需要多个 PIPE 绑定一个 Dev,例如 2 合 1WDR,我们需要 2 个 PIPE 绑定到一个 Dev。且在 WDR 模式下只有绑定到 Dev 的第 1 条 PIPE 的通道有数据输出,其他绑定的 PIPE 的通道是没有图像数据输出。如果需要修改,可以通过修改 ISP 相关的代码完成。

从模式

从模式 SENSOR,需要使用 VI 的从模式模块。从模式与 VI 的 PIPE 对应关系是固定的。用户需要根据 SENSOR 管脚的连线和下表确定使用哪个从模式模块,然后选择对应的 PIPE 号创建 PIPE,否则会没有数据:

掩码配置

掩码的高 12bit 对应着硬件线路的 12 个 pin 脚连接(D0 到 D15 之间的任意连续 12 个pin 脚即可,例如 D4~D15),用户需要根据实际连接情况设置恰当的掩码配置,掩码的最高比特位对应的 pin 为 D15,例如 10bit 输入的 Sensor 连接的 pin 为 D6~D15,掩码配置为 0xFFC00000;同理如果是 14bit 输入时,对应的掩码配置为 0xFFFC0000。

海思hi35xx 开发学习(3):视频输入的更多相关文章

  1. 海思hi35xx 开发学习(1):海思媒体处理平台架构

    处理平台架构图: 主要分为: 视频输入(VI):VI 模块捕获视频图像,可对其做剪切.去噪等处理,并输出多路不同分辨率的图像数据. 视频处理(VPSS):VPSS 模块接收 VI 和解码模块发送过来的 ...

  2. 海思hi35xx 开发学习(2):系统控制

    应用程序启动 MPP 业务前,必须完成 MPP 系统初始化工作.同理,应用程序退出MPP 业务后,也要完成 MPP 系统去初始化工作,释放资源. 视频缓存池 一组大小相同.物理地址连续的缓存块组成一个 ...

  3. 海思HI35xx平台软件开发快速入门之H264解码实例学习

    ref :https://blog.csdn.net/wytzsjzly/article/details/82500277   前言 H264视频编码技术诞生于2003年,至今已有十余载,技术相当成熟 ...

  4. FFmpeg开发笔记(十):ffmpeg在ubuntu上的交叉编译移植到海思HI35xx平台

    FFmpeg和SDL开发专栏(点击传送门) 上一篇:<FFmpeg开发笔记(九):ffmpeg解码rtsp流并使用SDL同步播放>下一篇:敬请期待   前言   将ffmpeg移植到海思H ...

  5. 海思HI35XX之----视频处理单元各通道间的关系

    最近在折腾HI3518C的芯片,应用到IPCamera上,最终获取多路不同分辨率的视频流供不同需求的预览切换.此处简单记录一下视频前处理元VPSS(Video Process Sub-System)的 ...

  6. 海思HI3516A开发板顺利上线

    有图有真相.

  7. 海思3519A 开发环境设置相关

    设置板卡和虚拟机的网络参数 setenv serverip 192.168.1.107 setenv ipaddr 192.168.1.10 setenv gatewayip 192.168.1.1 ...

  8. OpenCV开发笔记(七十四):OpenCV3.4.1+ffmpeg3.4.8交叉编译移植到海思平台Hi35xx平台

    前言   移植opencv到海思平台,opencv支持对视频进行解码,需要对应的ffmpeg支持.   Ffmpeg的移植   Ffmpeg的移植请参考之前的文章:<FFmpeg开发笔记(十): ...

  9. Hi3516开发笔记(一):海思HI3516DV300芯片介绍,入手开发板以及Demo测试

    前言   目前主流国产芯片为RV11XX.RK33XX.Hi35XX系列,本系列开启Hi3516系列的开发教程.   Hi3516DV300芯片介绍   Hi3516DV300为专业行Smart IP ...

随机推荐

  1. code1091 传染病控制

    1.读入图,边是双向的 2.递归建树,同时确定每一层的节点 3.dfs按层搜索,先把这一层所有被传染的(die[pa[k]]=true的)的die置为true 然后循环,每次把一个die为true的变 ...

  2. [Training Video - 6] [File Reading] Using log object in the Groovy class

    Car c= new Car(log); c.print() class Car{ def log public Car(log){ this.log=log } public void print( ...

  3. 1.spring.net Look-up Method 查找方法的注入(方法是抽象的需要spring.net注入)

    .为什么需要查找方法的注入 当Object依赖另一个生命周期不同的Object,尤其是当singleton依赖一个non-singleton时,常会遇到不少问题,Lookup Method Injec ...

  4. 关于更新vs2017后发布的问题 命令“bower install”已退出,代码为 9009

    更新vs2017 尝试发布 出现  命令“bower install”已退出,代码为 9009 然后我点工具测试了一下nodejs 出现下图弹窗  百度了一下 没找到对策,有没有大侠知道怎么解决 解决 ...

  5. CodeForces 339D Xenia and Bit Operations (线段树)

    题意:给定 2的 n 次方个数,对这些数两个两个的进行或运算,然后会减少一半的数,然后再进行异或运算,又少了一半,然后再进行或运算,再进行异或,不断重复,到最后只剩下一个数,要输出这个数,然后有 m ...

  6. CodeForces 540C Ice Cave (BFS)

    题意:给定 n * m的矩阵,让你并给定初始坐标和末坐标,你只能走'.',并且走过的'.'都会变成'X',然后问你能不能在末坐标是'X'的时候走进去. 析:这个题,在比赛时就是没做出来,其实是一个水题 ...

  7. vSphere5.5体系结构

    1.vSphere5.5体系结构 vSphere5.5作为云集算操作系统,可以虚拟化服务器.存储.网络在内的整个IT基础架构,将这些架构转化为易于管理的虚拟化!vSphere5.5从逻辑上,可以划分为 ...

  8. Local Notification

    大家都知道Push Notification,这个东西需要联网才可以用.iOS4起,苹果引入了一种可以在设备内部引发的notification.不需要复杂的服务器编程,或其他复杂的配置.这个技术就是L ...

  9. web项目不能链接数据库

    mysql的root没有权限 例如,你想root使用123456从任何主机连接到mysql服务器. 1 mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@' ...

  10. mysql连接com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

    现象:客户端连接服务器端mysql是没问题的,所有都木有问题,应用程序配置也没问题,但是连接就抛异常: com.mysql.jdbc.exceptions.jdbc4.CommunicationsEx ...