目录

  • 1、前言
  • 2、Xilinx官方主推的MIPI解码方案
  • 3、纯Vhdl方案解码MIPI
  • 4、vivado工程介绍
  • 5、上板调试验证
  • 6、福利:工程代码的获取

1、前言

FPGA图像采集领域目前协议最复杂、技术难度最高的应该就是MIPI协议了,MIPI解码难度之高,令无数英雄竞折腰,以至于Xilinx官方不得不推出专用的IP核供开发者使用,不然太高端的操作直接吓退一大批FPGA开发者,就没人玩儿了。
本文详细描述了设计方案,工程代码编译通过后上板调试验证,可直接项目移植,适用于在校学生做毕业设计、研究生项目开发,也适用于在职工程师做项目开发,可应用于医疗、军工等行业的数字成像和图像传输领域;
提供完整的、跑通的工程源码和技术支持;
工程源码和技术支持的获取方式放在了文章末尾,请耐心看到最后;
关于MIPI协议,请自行搜索,csdn就有很多大佬讲得很详细,我就不多写这块了;
之前写过一篇文章,FPGA解码4K分辨率4line MIPI视频 OV13850采集,两路输出,输出1是VGA,输出2是HDMI,均为1920x1080;本文的原始参考链接:原始参考链接
在上面那个工程的基础上,将vhdl代码封装为自定义IP,将两路输出改为1路HDMI输出,修改工程链接如下:升级版
在上面那个工程的基础上,将原来的OV13850采集改为 OV4689采集,修改工程链接如下:OV4689
本工程输入为OV5647摄像头,2line MIPI数据线,720P分辨率,硬件纯vhdl代码实现MIPI协议解码,输出axis格式数据,然后将axis格式数据转换为VGA格式数据,再将bayer数据转RGB,再经过FDMA三帧缓存,最红通过HDMI输出显示器。

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、纯Vhdl方案解码MIPI

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


视频输入:
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发送驱动

4、vivado工程介绍

开发板:Xilinx Kintex7开发板;
开发环境:vivado2020.2;
输入:OV5647摄像头输入,MIPI 2line,720P分辨率;
输出:HDMI,720P分辨率;
工程BD如下:

MIPI解码部分的IP搭建如下:

CSI-2 IP配置界面如下:

CSI-2转AXIS

FDMA配置如下:

综合后的工程代码架构如下:

FPGA资源消耗和功耗预估如下:

5、上板调试验证

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

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

福利:工程代码的获取
代码太大,无法邮箱发送,以某度网盘链接方式发送,
资料获取方式:私,或者文章末尾的V名片。
网盘资料如下:

FPGA实现CSI-2 解码MIPI视频 2line 720P分辨率 OV5647采集 提供工程源码和技术支持相关推荐

  1. FPGA解码4line MIPI视频 IMX291/IMX290摄像头采集 提供工程源码和技术支持

    目录 1.前言 2.Xilinx官方主推的MIPI解码方案 3.我已有的MIPI解码方案 4.纯Vhdl代码解码MIPI 5.vivado工程介绍 6.上板调试验证 7.福利:工程代码的获取 1.前言 ...

  2. FPGA纯vhdl实现MIPI CSI2 RX 4K视频解码输出,OV13850采集,提供工程源码和技术支持

    目录 1.前言 2.Xilinx官方主推的MIPI解码方案 3.纯Vhdl方案解码MIPI 4.vivado工程介绍 5.上板调试验证 6.福利:工程代码的获取 1.前言 FPGA图像采集领域目前协议 ...

  3. FPGA使用GTX实现SFP光纤收发SDI视频 全网首创略显高端 提供工程源码和技术支持

    目录 1.前言 2.设计思路和框架 3.vivado工程详解 4.上板调试验证并演示 5.福利:工程代码的获取 1.前言 FPGA实现SDI视频编解码目前有两种方案: 一是使用专用编解码芯片,比如典型 ...

  4. FPGA实现模拟视频BT656解码 TW2867四路PAL采集拼接显示 提供工程源码和技术支持

    目录 1.前言 2.模拟视频概述 3.模拟视频颜色空间 4.逐行与隔行 5.BT656数据与解码 BT656数据格式 BT656数据解码 6.TW2867芯片解读与配置 TW2867芯片解读 TW28 ...

  5. FPGA硬件png图片解码器,支持所有颜色类型解码,提供工程源码和技术支持

    目录 1.前言 2.我已有的视频图像编解码方案 3.png图片解码理论 4.png图片解码性能介绍 5.png图片解码器时序介绍 输入码流 输出图像信息和像素 6.png图片解码器设计详解 7.工程源 ...

  6. FPGA基于GS2971/GS2972实现SDI视频收发 提供工程源码和技术支持

    目录 1.前言 2.我目前已有的SDI编解码方案 3.GS2971/GS2972芯片解读 GS2971解读 GS2972解读 4.详细设计方案 5.vivado工程1解读 硬件逻辑工程 软件SDK工程 ...

  7. FPGA找工作写简历,你离高薪offer只差一个高端项目,提供工程源码和技术支持

    这里写目录标题 1.前言 2.你或许很菜 3.工程源码 4.技术支持 5.工程源码和技术支持获取方式 1.前言 如果你是即将毕业的学生或是想转行做FPGA的工程师,你都会面临一个问题,那就是找工作,找 ...

  8. FPGA实现MPEG2视频压缩 提供工程源码和技术支持

    1.前言 MJPEG.MPEG2.MPEG4.H264 是流行且兼容性很高的 4 种视频编码格式.其中 MJPEG 对每帧独立进行 JPEG 图象压缩,而不利用帧间相关性,因此压缩效果较差. MPEG ...

  9. FPGA纯Verilog实现任意尺寸图像缩放,串口指令控制切换,贴近真实项目,提供工程源码和技术支持

    目录 1.前言 2.目前主流的FPGA图像缩放方案 3.本方案的优越性 4.详细设计方案 5.vivado工程详解 6.上板调试验证并演示 7.福利:工程源码获取 1.前言 代码使用纯verilog实 ...

最新文章

  1. 查看 php-cgi 进程数
  2. Visual Studio 2019 安装教程 附免费安装包资源
  3. ASP.NET MVC 线程和并发
  4. C++基础知识(一)—— C++程序结构
  5. micropython stm32f407 以太网_[MicroPython]STM32F407开发板DIY声光控开关
  6. iOS 开发学习之 User Interface(4)UIView 与 UIViewController【二】
  7. MySQL 递归查询下级
  8. ONVIF协议--ONVIF协议简介
  9. Windows下同步工具FastCopy
  10. 个人知识管理系统思源笔记
  11. 为何风口过去之后,百果园反而要在无人零售上发力?
  12. vue 自动打开浏览器
  13. Linux是什么?它是哪个国家开发的
  14. 树莓派综合项目2:智能小车(一)四轮驱动
  15. Chrome浏览器安装Adblock Plus插件拦截广告
  16. 《制药企业设施设备运维管理与节能减排》专题会议 特邀讲师勃林格殷格翰首席工程师
  17. 十进制转换为十六进制-八进制-二进制的进制转换计算
  18. Ubuntu臭虫(bugs)知多少?
  19. 用java 发送邮件 版本2(根据配置文件 选择发送情话或者励志文)
  20. linux 性能测试 antutu,安兔兔“不诚实”?这三款跑分软件绝对值得一试!

热门文章

  1. Anaconda 在线安装esri模块超时失败解决方法
  2. 解决AutoCAD2002中的许可证错误和取消今日知道
  3. Java 编写一个应用程序,实现求 s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字 例如:2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制
  4. 获取浏览器原生滚动条宽度的方法
  5. 王道操作系统___第三章01
  6. EasyExcel导出xlsx报错 Invalid column index (256). Allowable column range for BIFF8
  7. 【Excel】Excel如何快速计算出每项所占百分比
  8. hexo排坑——页面跳转变成了下载
  9. 博客写作小技巧【1】:如何设置字体大小、颜色和字体类型!
  10. 又一批阿里网盘扩充码!亲测有效!这次数量比较少,抓紧!