基于zynq的视频采集与hdmi显示(未完)

文章目录

  • 一、项目整体框架
    • 一、传感器配置与驱动
    • 二、IMX222 1080P 模式图像解析(bayer 2 rgb 模块)
      • 2.1 解析有效像素(gen_sync)
        • 2.1.1同步字详细介绍:
      • 2.2 bayer 2 rgb

一、项目整体框架

在这里插入图片描述片描

一、传感器配置与驱动

camera信息:索尼IMX222摄像头

  1. SPI(Sereial Peripheral Interface)串行外设接口,一般情况下有四根线,时钟线(sck)、片选线(cs)、输入数据线(SDI)和输出数据线(SDO)。
  2. 由下图可知SPI的配置时序要求先发LSB最后发MSB,这与zynq的PS端提供的驱动程序相反,所以在发送数据的时候要进行高低位对调操作。
    芯片的spi时序
    其中chip id可以在手册中查询:
    在这里插入图片描述
    本次项目采用:
    写:CHIP ID=0x02
    读:CHIP ID=0x82

数据高低位对调代码:
在这里插入图片描述

  1. 1080p模式需要如何配置寄存器可在芯片手册中进行查看,配置过程需要先进入Standby模式,配置完成后,再退出Standby模式。

二、IMX222 1080P 模式图像解析(bayer 2 rgb 模块)

在这里插入图片描述
图像解析包括两部分:1.解析出有效像素(bayer格式) 2.完成bayer→rgb的转化

2.1 解析有效像素(gen_sync)

问:哪些是有效像素?
本次选择的是imx222的1080P模式,有图可知有效像素为黄色部分(注:为了方便后面的图像处理,真正提取有效像素的时候需要在1920*1080的基础上外扩两行两列,即有效像素为:1082行,1922列)
在这里插入图片描述
注:本次时钟采用SDR模式
在这里插入图片描述

问:如何解析出有效像素?

答:首先根据同步字给出有效像素(vline_flag)和无效像素的标志(invline_flag)

2.1.1同步字详细介绍:

在这里插入图片描述
根据手册可知,传感器会传输一些同步字:
SAV(valid line):有效行开始
EAV(valid line):有效行结束

SAV(invalid line):无效行开始
EAV(invalid line):无效行结束
注:(本次项目截取12bit数据位的高8位),因此实际同步字为
在这里插入图片描述
时序如下:
在这里插入图片描述

然后设置状态机,通过状态机来控制什么时候开始提取有效像素
在这里插入图片描述
在这里插入图片描述
vsync:场同步信号
在这里插入图片描述
hsync:行同步信号

2.2 bayer 2 rgb

bayer格式图像特点:
在这里插入图片描述
bayer转rgb算法:
(奇行奇列)R11=R11;G11=(G01+G10+G21+G12)/4;B11=(B00+B02+B20+B22)/4
(奇行偶列)R12=(R11+R13)/2;G12=G12;B12=(B02+B22)/2
(偶行奇列)R21=(R11+R31)/2;G21=G21;B21=(B20+B22)/2
(偶行偶列)R22=(R11+R13+R31+R33)/4;G22=(G12+G21+G32+G23)/4;B22=B22;

根据Sobel 算法的经验,可以建立两个 FIFO 深度为 20488bit,用于建立 33 的矩阵
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

ila验证:
在这里插入图片描述

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

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

相关文章

Android10.0 锁屏分析-KeyguardPatternView图案锁分析

首先一起看看下面这张图: 通过前面锁屏加载流程可以知道在KeyguardSecurityContainer中使用getSecurityView()根据不同的securityMode inflate出来,并添加到界面上的。 我们知道,Pattern锁所使用的layout是 R.layout.keyguard_pattern_view&a…

【内网穿透】如何本地搭建Whisper语音识别模型并配置公网地址

个人名片 🎓作者简介:java领域优质创作者 🌐个人主页:码农阿豪 📞工作室:新空间代码工作室(提供各种软件服务) 💌个人邮箱:[2435024119qq.com] &#x1f4f1…

【机器学习】Grid Search: 一种系统性的超参数优化方法

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 Grid Search: 一种系统性的超参数优化方法引言什么是Grid Search?Gr…

Spring Boot(概要 入门 Spring Boot 核心配置 YAML JSR303数据校验 )

目录 一、Spring Boot概要 1. SpringBoot优点 2. SpringBoot缺点 二、Spring Boot入门开发 1. 第一个SpringBoot项目 项目创建方式一:使用 IDEA 直接创建项目 项目创建方式二:使用Spring Initializr 的 Web页面创建项目 (了解&#x…

Java学习高级四

JDK8开始,接口新增了三种形式的方法 接口的多继承 内部类 成员内部类 静态内部类 局部内部类 匿名内部类 import javax.swing.*; import java.awt.event.ActionEvent;public class Test {public static void main(String[] args) {// 扩展 内部类在开发中的真实使用…

深度学习LSTM之预测光伏发电

代码一:训练LSTM模型 代码逐段分析 import numpy as np import pandas as pd import tensorflow.keras as tk from tensorflow.keras import layers首先,导入了必要的库:numpy用于数值计算,pandas用于数据处理,tenso…

【C++】多态进阶

标题:【C】多态进阶 水墨不写bug 目录 (一)多态的原理 (1)虚函数表 (2)多态的原理 (3)动态绑定与静态绑定 (一)多态的原理 (1&am…

windows 11 PC查询连接过的wlan密码

1:管理员打开cmd 2:输入netsh wlan show profiles 3:netsh wlan show profiles Shw2024-5G keyclear 密码关键内容:12345678

[Unity]碰撞器的接触捕获层详解

目录 前言※关闭效果器(Effector)的遮罩接触捕获层的官方描述官方描述的翻译和注解接触捕获层作用简介接触(Contact)和捕获(Capture)配置接触捕获层的作用※接触捕获层对碰撞响应的影响需要接触捕获的物理查询需要接触捕获的物理回调注意运行时(Runtime)修改接触的相互性总结 相…

【Git分支管理】理解分支 | 创建分支 | 切换分支 | 合并分支 | 删除分支 | 强制删除分支

目录 前言 0.理解分支 1.查看本地仓库存在的分支 2.HEAD指向分支 3.创建本地分支 4.切换分支 5.分支提交操作 6.合并分支 快进模式Fast-forward 7.删除分支 8.强制删除分支 本篇开始介绍下Git提供的杀手级的功能:分支管理 先提交再合并 前言 在玄幻武侠…

Linux——文件目录指令、时间日期指令、搜索查找指令、压缩解压指令

目录 文件目录指令 pwd & ls 查看当前工作目录&显示当前目录所有文件及目录 cd 切换目录 mkdir & rmdir 创建&删除目录 touch 创建空文件 cp 拷贝文件/文件夹指令 rm 删除文件或文件夹 mv 移动或重命名文件 cat 查看文件 more指令 less 查看文件内容…

[激光原理与应用-115]:南京科耐激光-激光焊接-焊中检测-智能制程监测系统IPM介绍 - 19 - 主要硬件的介绍、安装与调试

目录 一、概述 1.1 前言 1.2 系统组成 1.2.1 机柜版: 1.2.2 非机柜版 1.3适用范围 1.4 工作条件 1.5 安全说明 1.6 装箱清单 二、硬件安装 2.1 光学传感器安装 2.1.1 转接件安装 2.1.2 光路校准模块的安装与光路校准 2.1.3 光学传感器的安装 2.2 通…

【学习笔记】min_25筛

背景 GDCPC2024 出题人:出这道 min25 筛是给大家增加过题数的 [呲牙][大哭][呲牙][大哭] min25筛是干啥的 快速求一个积性函数 F ( x ) F(x) F(x) 的前缀和 这个 F ( x ) F(x) F(x) 需要满足: F ( p ) ∑ i 0 a i p i F(p)\sum_{i0}a_ip^i F(p)∑…

Qt各个版本安装的保姆级教程

文章目录 前言Qt简介下载Qt安装包安装Qt找到Qt的快捷方式总结 前言 Qt是一款跨平台的C图形用户界面应用程序开发框架,广泛应用于桌面软件、嵌入式软件、移动应用等领域。Qt的强大之处在于其高度的模块化和丰富的工具集,可以帮助开发者快速、高效地构建出…

C++: 位图和布隆过滤器

目录 一、位图 1.1 概念 1.2 应用 1.3 模拟实现 1.31 把比特位上的值设置为1 1.32 把比特位上的值设置为0 1.33 检测比特位上的值是否是1 1.34 代码 二、布隆过滤器 2.1 概念 2.2 优点 2.3 缺点 2.4模拟实现 一、位图 1.1 概念 运用哈希的思想,将整型…

【前端数据层高可用架构】

前端数据层高可用架构 前后端架构模式如下图 在这个架构下,客端数据可用率计算方式: 因此整体数据可用性分析表如下: 只有在客端和 BFF 都正常的情况下数据才能可用,而这种情况占比不是很高,因此整体的用户体验就不是很好。 本次建设目标 本文的设计方案就是要解决…

Python Linux环境(Centos8)安装minicoda3+jupyterlab

文章目录 安装miniconda安装python环境启动 最近服务器检查,我下面的服务器有漏洞,不得已重装了,正好记录下怎么从零到python写代码。 安装miniconda miniconda是anconda的精简版,就是管理python环境的得力助手。 # 创建一个名…

C语言 do while循环语句练习 下

猜数字游戏实现 //猜数字游戏 //电脑产生 一个随机数&#xff08;1-100) //猜数字 //猜大了 //猜小了 //直到猜对了&#xff0c;结束 #include <stdlib.h> #include <time.h> void menu() {printf("********************************\n");printf("…

【Redis7】高阶篇

1 Redis单线程 VS 多线程(入门篇) 1.1 面试题 redis到底是单线程还是多线程&#xff1f; IO多路复用听说过吗&#xff1f; redis为什么快&#xff1f; 1.2 Redis为什么选择单线程&#xff1f; 1.2.1 是什么 这种问法其实并不严谨&#xff0c;为啥这么说呢? Redis的版本…

怎么将图片插入excel单元格中

首先选中单元格选择插入 在图片位置选择插入图片的位置 然后就插入成功了&#xff0c;一开始会觉得图片是附在表格上面的&#xff0c;并不在单元格里面&#xff0c;但是右边有一个小图片的图标&#xff0c;点击它可以缩小到单元格里面&#xff0c;再点击就是放大&#xff1b;