FPGA解码MIPI视频 OV5647 2line CSI2 720P分辨率采集 提供工程源码和技术支持

news2024/11/25 11:14:24

目录

  • 1、前言
  • 2、Xilinx官方主推的MIPI解码方案
  • 3、本 MIPI CSI2 模块性能及其优越性
  • 4、我这里已有的 MIPI 编解码方案
  • 5、详细设计方案
  • 6、vivado工程介绍
  • 7、上板调试验证
  • 8、福利:工程代码的获取

1、前言

FPGA图像采集领域目前协议最复杂、技术难度最高的应该就是MIPI协议了,MIPI解码难度之高,令无数英雄竞折腰,以至于Xilinx官方不得不推出专用的IP核供开发者使用,不然太高端的操作直接吓退一大批FPGA开发者,就没人玩儿了。

本设计基于Xilinx的Kintex7开发板,采集OV5647 摄像头的720P 2Line MIPI视频,OV5647 摄像头引脚接Kintex7的 BANK16 LVDS_25 差分引脚,经过纯vhdl实现的 CSI2 RX模块输出AXIS视频流,再将bayer数据转RGB,再经过FDMA将图像送入DDR3中做三帧缓存后读出,最后经HDMI发送模块输出显示器;

本文详细描述了设计方案,工程代码编译通过后上板调试验证,可直接项目移植,适用于在校学生做毕业设计、研究生项目开发,也适用于在职工程师做项目开发,可应用于医疗、军工等行业的数字成像和图像传输领域;
提供完整的、跑通的工程源码和技术支持;
工程源码和技术支持的获取方式放在了文章末尾,请耐心看到最后;
关于MIPI协议,请自行搜索,csdn就有很多大佬讲得很详细,我就不多写这块了;

2、Xilinx官方主推的MIPI解码方案

Xilinx官方主推的MIPI解码方案是专用IP核,在vivado的ip仓库里输入MIPI就会看到如下的一堆IP:在这里插入图片描述
Xilinx方案使用很简单,调用IP就行,用SDK配置即可使用,MIPI解码后的数据格式为AXIS,方便与他家的VDMA之类的IP对接,你无须关心复杂的MIPI协议即可畅玩儿MIPI,但问题就来了,如果你用的FPGA不是Xilinx家的怎么办?
关于Xilinx自家的MIPI方案,请参考我之前写的文章;Xilinx的MIPI方案

3、本 MIPI CSI2 模块性能及其优越性

本方案MIPI解码后的视频时序为VGA时序,即行同步,场同步,数据有效,数据信号;方便后端直接处理;解串部分使用Xilinx源语,本工程用到的是7系列源语,更高级别的FPGA应用,需要更改源语参数,但问题不大;
一个字:牛逼,表现如下:
1:纯Vhdl代码实现,学习性和阅读性达到天花板;
2:移植性还可以,只要兼容Xilinx解串源语的FPGA均可移植;
3:算法达到天花板,标准的CSI2接收协议实现解码;
4:实用性达到天花板,采用OV4689摄像头作为输入,不同于市面上验证性和实验性的工程,本设计直接面向实用工程,贴近真实项目,MIPI输入,2路视频输出,做类似项目的兄弟可直接拿去用,一个月工资直接拿到手。。。
5:支持高达4K分辨率的MIPI视频解码;
6:时序收敛很到位,考虑到MIPI协议的复杂性和时序的高要求,所以没有采用时序收敛不强的verilog,而是VHDL,虽然阅读性可能会低一些,但用户只需要知道用户接口即可,并不需要去看内部的复杂代码;
7:自定义IP封装,方便Xilinx系列FPGA用户使用,CSI-2自定义IP支持2line或4line输入,可在IP配置界面手动配置;

4、我这里已有的 MIPI 编解码方案

我这里目前已有丰富的基于FPGA的MIPI编解码方案,主要是MIPI解码的,既有纯vhdl实现的MIPI解码,也有调用Xilinx官方IP实现的MIPI解码,既有2line的MIPI解码,也有4line的MIPI解码,既有4K分辨率的MIPI解码,也有小到720P分辨率的MIPI解码,既有基于Xilinx平台FPGA的MIPI解码也有基于Altera平台FPGA的MIPI解码,还有基于Lattice平台FPGA的MIPI解码,后续还将继续推出更过国产FPGA的MIPI解码方案,毕竟目前国产化方案才是未来主流,后续也将推出更多MIPI编码的DSI方案,努力将FPGA的MIPI编解码方案做成白菜价。。。
基于此,我专门建了一个MIPI编解码的专栏,并将MIPI编解码的博客都放到了专栏里整理,对FPGA编解码MIPI有项目需求或学习兴趣的兄弟可以去我的专栏看看,专栏地址如下:
点击直接前往专栏

5、详细设计方案

详细设计方案如下:
在这里插入图片描述
视频输入:
OV5647摄像头输入,MIPI 2line,720P分辨率;
MIPI解码:
纯vhdl代码编写的CSI-2解码器,可针对2line或4line输入的MIPI视频解码,输出为AXIS数据流,经过AXIS转VGA输出VGA格式数据,经Bayer转RGB输出VGA格式的RGB888视频数据;
图像缓存:
经典的,我常用的FDMA图像缓存架构,经常看我博客的朋友应该都很熟悉了,想了解FDMA图像缓存架构可以参考我之前写的文章FDMA图像缓存架构
图像输出:
经FDMA图像3帧缓存后,相当于MIPI视频进DDR3逛了一圈又回来了,经过VGA时序发生器VTC和HDMI发送驱动输出显示器,HDMI发送驱动采用纯verilog代码编写,不含任何IP,输出稳定可靠,我项目一直都在用,想了解HDMI发送驱动可以参考我之前写的文章HDMI发送驱动

6、vivado工程介绍

开发板:Xilinx Kintex7开发板;
开发环境:vivado2020.2;
输入:OV5647摄像头输入,MIPI 2line,720P分辨率;
输出:HDMI,720P分辨率;
工程BD如下:
在这里插入图片描述
MIPI解码部分的IP搭建如下:
在这里插入图片描述
CSI-2 IP配置界面如下:
在这里插入图片描述
CSI-2转AXIS
在这里插入图片描述
FDMA配置如下:
在这里插入图片描述
综合后的工程代码架构如下:
在这里插入图片描述
FPGA资源消耗和功耗预估如下:
在这里插入图片描述

7、上板调试验证

由于摄像头被手残党烧坏了,没法演示了,真TND晦气,上张图片压压惊吧
在这里插入图片描述

8、福利:工程代码的获取

福利:工程代码的获取
代码太大,无法邮箱发送,以某度网盘链接方式发送,
资料获取方式1:私,或者文章末尾的V名片。
资料获取方式2:文章末尾的XX号,回复 002004
网盘资料如下:
在这里插入图片描述

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

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

相关文章

现代民机“飞行管理系统(FMS)”的功能和组成

01 什么是 “飞行管理系统”? 飞行管理系统(FMS, Flight Management System),中文简称 “飞管”,是飞机航电系统的重要一员。 FMS 自 20 世纪 70 年代诞生以来,目前已有了跨越式发展。它作为航电关键系统&…

100种思维模型之质量控制理论思维模型-83

质量控制理论思维模型,又叫做戴明环思维模型,即PDCA循环思维模型。 在上世纪50年代,日本的商品和今天中国的商品一样,都是低质低价的代表,后来日本引入了戴明博士的质量控制理论,即PDCA循环理论&#xff0…

浅谈无线测温系统在高压开关柜中的应用

关注acrelzxz,了解更多详情 摘要:高压开关柜是配电系统中重要的组成部分,其主要作用是控制电荷、分配电能和开断电流等,对维持系统的稳定性有一定的保障作用。将无线测温技术应用于高压开关柜,可以实现对其进行实时的…

汽车芯片,竞逐新周期

在过去几年,SoC几乎成了智能汽车行业皇冠上的明珠。汽车芯片从通用型、分散化的单一功能芯片(MCU)快速转向集成化的多功能SoC(System on Chip)芯片。 比如,在智能座舱领域,CPU算力用于提高任务处…

国产chatgpt:基于chatGLM微调nlp分类任务

文章目录 一、源码网址1. 硬件设施:2. INT4 量化示例 二、重要的开源社区功能:网址:使用方法:利用方法:对 NLP 工作者的作用:对大模型工程师的用处: 三、重要的开源库四、提示词工程五、进行分类…

优思学院|精益生产管理七大要素

精益生产是一种有效的管理方法,通过优化生产流程和资源利用,帮助企业提高效率、降低成本,并最大程度地满足客户需求。在精益生产中,有七个关键的管理要素,它们分别是人员、资金、方法、机器设备、物料、市场及士气。 1…

避坑指南!一文帮您解决Jmeter录制chrome操作过程中遇到的问题!

Jmeter录制脚本原理 脚本录制时,Jmeter作为代理网关,通过监听某个端口,来捕获监听端口的报文信息,对抓取到的请求信息和响应信息进行转换为对应的行为函数。我们这里以设置chrome代理为例,然后使用jmeter进行脚本录制…

【方法】ZIP分卷压缩文件如何解压?

有时候文件太大,我们在压缩ZIP文件时会使用分卷压缩。 那后期想要解压ZIP分卷文件,要如何解压呢?不清楚的小伙伴,可以跟着小编来看看哦。 在解压ZIP分卷压缩文件之前,要先确保所有的分卷压缩包都存放在一个文件夹里&…

HTML5的新特性有哪些?

HTML5是近年来Web开发标准最巨大的飞跃。与以前的版本不同,HTML5并非仅仅用来表示Web内容,它的新使命是将Web带入一个成熟的应用平台,在HTML5平台上,视频、音频、图像、动画,以及同计算机的交互都被标准化。 HTML5在以…

大厂可能会问的那些思维题和技术点

精选大厂可能会问的那些思维题和技术点 一、题目一1.1、思路:1.2、代码实现 二、题目二三、const 的含义及实现机制, ,比如 : const int i, 是怎么做到 i 只可读的? ?四、到商店里买 200 的商品返还 100 优惠券( ( 可以在本商店代替现金) ) 。请问实际上折扣是多少…

6-js基础-4

JavaScript 基础 - 4 理解封装的意义,能够通过函数的声明实现逻辑的封装,知道对象数据类型的特征,结合数学对象实现简单计算功能。 函数综合案例 函数 理解函数的封装特性,掌握函数的语法规则 函数的基本使用 函数: 是可以被重复…

JavaScript的for循环学不明白怎么办?

💂 个人网站:【海拥】【游戏大全】【神级源码资源网】🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】💅 寻找学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】 目录 前言for循环的基本语法…

Apikit 自学日记:自动生成 API 文档

功能入口:API管理应用 / 选中某个项目 / 其他菜单 / 数据源同步(API文档自动生成) 该功能可通过配置数据源信息,实现基于数据源的API信息自动生成API文档。 当前支持5种数据源:Swagger URL、apiDoc、Github、gitlab、…

【FPGA零基础学习之旅#9】状态机基础知识

🎉欢迎来到FPGA专栏~状态机基础知识 ☆* o(≧▽≦)o *☆嗨~我是小夏与酒🍹 ✨博客主页:小夏与酒的博客 🎈该系列文章专栏:FPGA学习之旅 文章作者技术和水平有限,如果文中出现错误,希望大家能指正…

MAC电脑使用技巧

Mac打开根目录 /user下的文件 mac 上怎么显示隐藏的/user文件夹,有两种方法可选~~~ 1,Finder界面是,最上方,通过“前往”进入“电脑”或文件夹 先进入到需要显示隐藏文件的文件夹下 接着按Command苹果键F,在窗格上会显示搜索栏 然…

爬虫框架和库有多重要?

爬虫框架和库在网络数据提取和分析中非常重它们为开发人员提供了工具和功能,使他们能够更轻松地从互联网上抓取数据。爬虫框架和库通常提供了高效的网络请求、数据解析和存储机制,简化了爬取过程。 使用爬虫框架库有以下几个重要优势: 快速开…

探索Android Jetpack Compose的Surface组件

随着声明性 UI 框架 Jetpack Compose 的出现,Android 开发变得更加简洁和直观。在这篇博客中,我们将深入探讨其中的一项基本构建块 —— Surface 组件,了解它如何影响 UI 的显示和设计。 一、Jetpack Compose和Surface组件 二、Surface组件…

强化学习:值函数近似

例子引入 值得注意的是,之前学习的 状态值和动作值 实际上都是以表格的形式表示的,他的好处是便于直观理解与分析,但缺点是难以处理大量的数据的或连续的状态或行动空间,表现在存储和泛化能力两个方面。如下: 为了解决…

Css设置border从中间向两边的颜色渐进效果

Css设置border从中间向两边的颜色渐进效果 .list-item {border-bottom: 1rpx solid;border-image: linear-gradient(to right, rgba(0,0,0,.1) 0%, rgba(81, 110, 197, 0.76) 50%, rgba(0,0,0,.1) 100%) 1;}效果如图:

js精度问题之bignumber.jsdecimal.js的基本使用

一、背景 JavaScript中存在精度缺失问题 为什么? 主要是由于浮点数的表示方式以及计算机的二进制运算原理导致的 JavaScript使用IEEE 754标准定义了浮点数的表示和计算规则。在这种表示方式中,浮点数由符号位、指数位和尾数位组成。尾数位的长度是固…