基于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,一经查实,立即删除!

相关文章

脚本练习-每5分钟执行一次获取当前服务器的基本情况

设计一个shell程序,每5分钟执行一次获取当前服务器的基本情况(内存使用率,CPU负载,I/O,磁盘使用率),保存到120.20.20.20数据库上数据库帐号aaa密码bbb库名test表名host 创建一个名为server_stat…

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

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

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

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

用C语言写的一个扫雷小游戏

头文件 调用头文件和声明函数 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <time.h> #include <stdlib.h>#define ROW 9 #define COL 9#define ROWS ROW2 #define COLS COL2#define EASY_CONT 10//声明函数 //初始化棋盘函数 void InitB…

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

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

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

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

Jenkins 安装、部署与配置

引言 在软件开发领域&#xff0c;持续集成&#xff08;CI&#xff09;和持续部署&#xff08;CD&#xff09;是提高代码质量和开发效率的关键实践。Jenkins 是一款开源的持续集成/持续部署服务器&#xff0c;以其灵活性和丰富的插件生态系统而闻名。本文将详细介绍 Jenkins 的…

探索 Flask:从入门到精通的完整学习指南

Flask 是当今最流行的 Python Web 框架之一&#xff0c;其简洁、灵活的设计使得开发者能够快速构建强大的 Web 应用。无论你是刚开始学习编程&#xff0c;还是想要深入了解 Web 开发技术&#xff0c;Flask 都是一个理想的起点。本文将带你逐步深入&#xff0c;探索 Flask 的核心…

Java学习高级四

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

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

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

Golang 后端面经

文章目录 一、Golanggolang GMP模型Golang中make和new的区别Golang内存逃逸&#xff0c;情况go内存对齐原则map的key值可以是函数、map和切片吗&#xff1f;channel类型可以比较吗容量为1的channel在什么情况下会堵塞&#xff08;除了常见的&#xff09;多线程同时读写map中不同…

搜维尔科技:我们用xsens完成了一系列高难度的运动项目并且捕获动作

我们用xsens完成了一系列高难度的运动项目并且捕获动作 搜维尔科技&#xff1a;我们用xsens完成了一系列高难度的运动项目并且捕获动作

zookeeper在哪里能用到

zookeeper是什么 ZooKeeper 顾名思义 动物园管理员&#xff0c;他是拿来管大象(Hadoop) 、 蜜蜂(Hive) 、 小猪(Pig) 的管理员&#xff0c; Apache Hbase和 Apache Solr 以及LinkedIn sensei 等项目中都采用到了 Zookeeper。 ZooKeeper是一个分布式的&#xff0c;开放源码的分…

【C++】多态进阶

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

【1.合并两个数组】

题目&#xff1a; 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2&#xff0c;另有两个整数 m 和 n &#xff0c;分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中&#xff0c;使合并后的数组同样按 非递减顺序 排列。 注意&#xff1a;最终&…

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

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

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

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

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

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

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

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

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

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