FPGA解码 4K MIPI 视频自定义IP版 纯vhdl实现 CSI2 RX 采集OV13850 提供工程源码和技术支持

news2024/9/30 5:38:36

目录

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

1、前言

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

本设计基于Xilinx的Kintex7开发板,采集OV13850摄像头的4K 4Line MIPI视频,OV13850摄像头引脚接Kintex7的 BANK16 LVDS_25 差分引脚,经过纯vhdl实现的 CSI2 RX模块输出Bayer视频,再经过Bayer转RGB模块输出RGB视频,再经过图像增强模块增强图像质量,这里主要用到了白平衡,然后将图像送入DDR3中做三帧缓存后读出,由于我这里没有支持4K现实的屏幕,所以还需将读出的图像缩小至1080P分辨率,如果你的项目是4K输出,则可以直接将此模块删除,再生成标准的VGA时序,由于我的开发板只板载了HDMI视频输出接口,所以代码只做了HDMI视频输出,如果你的项目需要输出多于2路,则可以继续添加更多的输出模块;

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

之前写过一篇文章,FPGA解码4K分辨率4line MIPI视频 OV13850采集,两路输出,输出1是VGA,输出2是HDMI,均为1920x1080;本文的原始参考链接:点击直接前往
本设计实在原始参考基础上修改而来,将原来的VHDL源码进行了IP封装,方便用户使用。

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:实用性达到天花板,采用OV13850摄像头作为输入,不同于市面上验证性和实验性的工程,本设计直接面向实用工程,贴近真实项目,MIPI输入,2路视频输出,做类似项目的兄弟可直接拿去用,一个月工资直接拿到手。。。
5:支持高达4K分辨率的MIPI视频解码;
6:时序收敛很到位,考虑到MIPI协议的复杂性和时序的高要求,所以没有采用时序收敛不强的verilog,而是VHDL,虽然阅读性可能会低一些,但用户只需要知道用户接口即可,并不需要去看内部的复杂代码;

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、vivado工程介绍

工程设计架构如下:在这里插入图片描述
开发板:Xilinx Kintex7开发板;
开发环境:vivado2020.2;
输入:OV13850;4line;分辨率3840x2160;
输出:HDMI;分辨率1920x1080;
工程BD如下:
在这里插入图片描述
4line MIPI解码模块详解,点击这个+号可展开IP;
在这里插入图片描述
展开后的4line MIPI解码模块如下:
在这里插入图片描述
4line MIPI解码模块配置界面如下:
在这里插入图片描述
bayer转RGB不需要配置;
白平衡图像增强模块配置界面如下:在这里插入图片描述
展开后的图像缓存与缩放解码模块如下:
在这里插入图片描述
写控制器模块配置界面如下:
在这里插入图片描述
读控制器模块配置界面如下:
在这里插入图片描述
工程代码架构如下:
在这里插入图片描述
逻辑资源消耗和功耗如下:在这里插入图片描述

6、上板调试验证

输出如下:在这里插入图片描述

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

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

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

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

相关文章

div转data:image/svg编码图片

前言 将div转base64图片 <!DOCTYPE html> <html><head><meta charset"UTF-8"><title>div-svg-base64</title><script type"text/javascript" src"/js/jquery-3.2.1.min.js"></script><scr…

使用 Jetpack Compose 的 TextButton 组件

Jetpack Compose 是 Google 推出的一种声明式 UI 框架&#xff0c;它使 Android UI 开发变得更加简单和直观。在本篇博客中&#xff0c;我们将深入探索 Jetpack Compose 中的 TextButton 组件。 一、TextButton的使用 二、自定义TextButton 三、Button和TextButton的区别 一…

搜索算法特训 ----- Week5/6/7 (它太重要了)

学会二叉树不知道干啥?二叉树的深度优先搜索和广度优先搜索,我要打十个乃至二十个(打开你的LeetCode撸起来)学练并举_二叉树广度优先搜索_小杰312的博客-CSDN博客 上述文章&#xff0c;初步介绍了搜索过程和关于二叉树中进行搜索的很多实例。将搜索的过程写的还是很详细的。很…

网站出现卡顿是什么原因,要怎么解决?

&#x1f482; 个人网站:【海拥】【游戏大全】【神级源码资源网】&#x1f91f; 前端学习课程&#xff1a;&#x1f449;【28个案例趣学前端】【400个JS面试题】&#x1f485; 寻找学习交流、摸鱼划水的小伙伴&#xff0c;请点击【摸鱼学习交流群】 目录 前言网站卡顿的原因解决…

人工智能算法在外卖配送系统中的应用和前景

随着人们对于外卖服务需求的增加&#xff0c;外卖配送系统的效率和精确度成为了重要的考虑因素。而人工智能算法的出现&#xff0c;则为外卖配送系统提供了更好的解决方案。 一、应用场景 1.1 路线规划 在外卖配送过程中&#xff0c;路线的规划是非常重要的。通过人工智能算…

一线大厂最全Java面试题及答案整理汇总(2023最新版)

程序员一步入中年&#xff0c;不知不觉便会被铺天盖地的“危机感”上身&#xff0c;曾经的那个少年已经不在&#xff0c;时间就是这样公平。就算你能发明 Java 语言&#xff0c;随着时间的推移&#xff0c;你注定还是要成为慢慢变蔫的茄子&#xff0c;缓缓变黑的葡萄。 看着金…

uniapp 自定义发行 动态修改 manifest.json

这边需求是&#xff1a;根据不同的打包环境 设置不同的标题以及路径。方便各种调试。防止 每次手动每次修改 manifest.json 出错 uniapp 自定义发行: 添加自定义发行之后 Hbuilder 编辑器会自动多 出来按钮&#xff1a; 官方文档&#xff1a;概述 | uni-app官网 我这里的配置是…

大数据开发基础-环境配置篇-Hadoop集群安装

鼠鼠接下来将更新一系列自己在学习大数据开发过程中收集的资源、和自己的总结、以及面经答案、LeetCode刷题分析题解。 首先是大数据开发基础篇 环境搭建、组件面试题等 其次是更新大数据开发面经的java面试基础 最后更新一个大数据开发离线数仓的实战项目&#xff0c;自己写入…

利用R中的corrmorant包绘制精美的相关性热图

大家好&#xff0c;我是带我去滑雪&#xff01; 相关性热图 (correlation heatmap) 是一种可视化工具&#xff0c;用于展示数据集中各个变量之间的相关性。它以矩阵的形式显示变量之间的相关系数&#xff0c;并通过色彩编码来表示相关性的强度。在相关性热图中&#xff0c;每个…

html面试题-概念题汇总

文章目录 html面试题汇总 src和href的区别 HMTL的全局属性有哪些&#xff1f; 超链接访问过后hover样式就不出现的原因是什么&#xff1f;怎么解决&#xff1f; 表单中readonly和disabled属性的区别&#xff1f; iframe的优缺点&#xff1f; 浏览器渲染页面的过程 viewport属性…

GO channel解析

GO channel解析 是什么&#xff1f; 官方文档&#xff1a; https://go.dev/ref/spec#Channel_typeshttps://go.dev/blog/pipelines&#xff08;channel提供了流式编程的例子&#xff09; 在 Go 语言中&#xff0c;channel 是一种用于在 goroutine 之间进行通信和同步的机制。…

【FFmpeg实战】音频解码与编码流程

解码流程 音频编解码流程与视频编解码流程一致&#xff0c;我们可以对 mp4 文件的音频流进行解码&#xff0c;并将解码后的音频数据保存到 PCM 文件中&#xff0c;后续我们可以通过读取 PCM 文件中的数据实现音频流的编码操作 FFmpeg音频解码流程 extern"C" { #inc…

ICC2: Create Placement Blockage

area-based的placement blockage有四种,hard、hard macro、soft,partial。hard 属性限制所有standard cell、hard macro放进hard blockage中;hard macro仅限制hard macro(如sram);soft属性限制placement的init_place阶段(也叫coarse placement)把standard cell和hard macro…

Vuex学习

5.1.理解 Vuex 5.1.1.Vuex 是什么 概念&#xff1a;专门在Vue中实现集中式状态&#xff08;数据&#xff09;管理的一个Vue插件&#xff0c;对Vue应用中多个组件的共享状态进行集中式的管理&#xff08;读/写&#xff09;&#xff0c;也是一种组件间通信的方式&#xff0c;且适…

深度学习05-CNN循环神经网络

概述 循环神经网络&#xff08;Recurrent Neural Network&#xff0c;RNN&#xff09;是一种具有循环连接的神经网络结构&#xff0c;被广泛应用于自然语言处理、语音识别、时序数据分析等任务中。相较于传统神经网络&#xff0c;RNN的主要特点在于它可以处理序列数据&#xf…

超全汇总,性能测试常用指标大全(重要)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 两种性能指标 业…

Java又双叒叕“凉”了?

前几天&#xff0c;TIOBE的一份6月编程语言榜单公布&#xff1a;Java退出前三&#xff0c;位居第四。一波Java凉了的言论甚嚣尘上。其实不止Java&#xff0c;python、C、C&#xff0c;哪一个没被提过“凉”... 而现实是&#xff0c;Java的招聘需求依然很大&#xff1a; 不可否…

C++静态和动态链接库导出和使用

1、简介 代码开发过程中会遇到很多已有的函数库&#xff0c;这些函数库是现有的&#xff0c;成熟的&#xff0c;可以复用的代码。现实中每个程序都要依赖很多基础的底层库&#xff0c;不可能每个人的代码都从零开始&#xff0c;因此库的存在意义非同寻常。 本质上来说库是一种…

便携式水质自动采样器助力毒情监测

便携式水质自动采样器可助力毒情监测&#xff1a; 污水涉毒采样检测工作是运用科技手段准确评估监测辖区内毒情形势的重要手段。期间&#xff0c;民警详细了解了生活和工业污水的处理、排放以及服务范围、人口数量等情况&#xff0c;并就污水涉毒采样检测工作达成共识。随后&am…

revit中用幕墙来绘制瓦片屋面和生成土钉墙

一、revit中用幕墙来绘制瓦片屋面 层层叠叠的瓦片在我们绘制时具有复杂性&#xff0c;瓦片既美观又满足一些建筑的需要&#xff0c;下面教大家一个用幕墙来绘制瓦片屋面。 新建一个族样板选择公制轮廓—竖挺&#xff0c;绘制我们的瓦片形状 简单的绘制一个瓦片的形状&#xff0…