作者:Adam Taylor,编译:kenshin

嵌入式视觉是当今科技最激动人心的领域之一。

关于使用Zynq SoC的嵌入式视觉应用,热心群众们说的太多,我就不赘述了。今天我们换一个新的视角,来看看如何使用纯FPGA来实现嵌入式视觉方案。

这篇文章,将带你了解如何使用Digilent Nexys Video Artix-7 FPGA多媒体音视频开发板来实现一个简单的HDMI输入/输出视频处理系统。特别是如果你是一名新手,通过本文,你会对基于FPGA的视频处理有更多基本的理解。

上篇(←点击了解),我们对如何用Nexys Video来实现一个简单的HDMI输入/输出视频处理系统做了扼要的概述。接着上篇,我们来看一下这一项目的软件配置部分。

在Nexys Video Artix-7 FPGA开发卡上启动并运行MicroBlaze软核处理器系统后,我们需要使用一些软件来生成视频输出信号。在这个示例中,我们将使用MicroBlaze处理器生成测试模式。为了实现这个设计,我们将向Nexys Video板卡的DDR SDRAM中写入数据,然后VDMA读出这些数据并且通过HDMI输出。

软件部分我们首选要做的是定义视频帧,它将会被存储到内存并通过VDMA输出。我们将在内存中定义三个视频帧。每个视频帧的定义采用二维阵列:

u8 frameBuf[DISPLAY_NUM_FRAMES][DEMO_MAX_FRAME];

将参数DISPLAY_NUM_FRAME设置为3,DEMO_MAX_FRAME设置为1920 * 1080 * 3。这里需要考虑到最大帧分辨率,最后乘以3适用到每个像素(红,黄,蓝像素都采用8位来表示)。

为了能够访问这些帧,我们使用数组指针指向每个帧缓存空间。用这种方式定义会简化我们与视频帧之间的交互。

定义好视频帧后,下一步就是初始化和配置这个设计的流水线。具体如下:

VDMA – 使用DMA将数据从板上的DDR SDRAM搬运到视频输出链路中。

动态时钟IP – 输出像素时钟频率以及这个频率的倍数用于HDMI输出。

视频时序控制器0 – 根据分辨率定义输出显示时序。

视频时序控制器 1 – 在输出接收端决定视频时序。在这个示例中,这个控制器从一个源获取输入视频帧。

为了确保VDMA功能的正常,我们需要定义步幅,即DDR内存中每行之间的间隔。对于本项目,步幅设置为3 * 1920,这是每行的最大长度。

在这一项目中,我们能设置不同的显示分辨率,从640x480 到 1920x1080。

无论我们选择什么样的分辨率,我们都能够使用测试模式在屏幕上借助软件功能向DDR SDRAM写入数据。当我们改变功能时,我们还需要重新配置VDMA、视频时序生成器 0和动态时钟模块。

下一步则是生成视频输出。在这个示例中主应用程序有很多功能可以生成、采集和显示视频。具体如下:

1. Bar测试模式 – 在屏幕上生成多个颜色条

2. 混合测试模式 – 在屏幕上生成混合颜色测试条

3. 流模式,从HDMI输入到HDMI输出

4. 抓取一个输入帧将颜色反转

5. 抓取一个输入帧并按比例扩展到当前的显示分辨率

按照下方的代码就可以轻松的实现设置红、蓝、绿像素的值。每个像素的颜色值都是无符号8位整数。

frame[iPixelAddr] = wRed;

frame[iPixelAddr + 1] = wBlue;

frame[iPixelAddr + 2] = wGreen;

当运行应用时,通过UART终端窗口我们可以看到输出的选项菜单,通过选择我们可以执行不同的功能来进行测试:

设置程序输出颜色条,混合测试模式输出的效果如下图所示:

通过本文,相信大家现在已经知道如何向DDR内存中写入信息并将它显示到屏幕上了。如果你喜欢此文,记得分享给你身边对“基于纯FPGA的视频处理”有同好的小伙伴哦~~

项目实现全过程,可点击: 收藏。

(责任编辑:ioter)

android 4.0板卡接收视频源,在Digilent Nexys Video板卡上实现HDMI I/O视频处理系统的软件配置介绍...相关推荐

  1. android 5.0播放swf flash源码Demo

    android 5.0播放swf flash源码Demo 安卓5.0flash播放源码 android flash 播放器 swf 由于之前webview方法播放flash在新的系统中不可用.所以so ...

  2. 抖音怎么上传无损画质_抖音上传视频为什么会模糊?如何才能上传高清无损视频?...

    抖音上传视频为什么会模糊?如何才能上传高清无损视频? 文章首发"公众号"[四爷课堂],专注分享短视频运营干货,关注可领取100G抖音运营资料,仅限50个名额. 四哥初入抖音的时候, ...

  3. Final Cut Pro X v10.6.1(fcpx视频剪辑) 中文版已发布,支持M1intel处理器,支持monterey最新系统,功能介绍

    Final Cut Pro X是mac客户端最专业的视频剪辑软件,拥有最完善的视频处理功能,可以编辑不同分辨率的视频,搭配本站的fcpx插件使用效果更佳.新版的Final Cut Pro X for ...

  4. Android FrameWork学习(一)Android 7 0系统源码下载 编译

    最近计划着研究下 Android 7.0 的系统源码,之前也没做过什么记录,这次正好将学习的内容记录下来,方便以后复习巩固. 既然要学习我们的系统源码,那我们第一步要做的就是下载源码并进行编译了. # ...

  5. Android FrameWork学习(一)Android 7.0系统源码下载\编译

    重点内容 转载. http://blog.csdn.net/cjpx00008/article/details/60474883 硬件环境要求 1. 编译环境 按照官方的说法,编译Android 2. ...

  6. Android 9.0 rom定制化系列讲解导读

    1.1前言 本专栏主要是作者本人在9.0的系统rom定制化开发中,在 frameworks定制化实战功能系列的解读,把从事几年的frameworks定制化功能的经验的积累总结一下, 开发过平板,广告机 ...

  7. Android 4.0 SDK新特性

    Android 4.0 是一次重要的平台发布版,为用户和应用程序开发者增加了大量的新特性.在下面我们将讨论的所有新特性和API中,因为它将 Android 3.x 版本中广泛使用的API和全息图像主题 ...

  8. Android 4.0 平台特性

    Android 4.0 平台特性 API等级:14  Android4.0 是一次重要的平台发布版,为用户和应用程序开发者增加了大量的新特性.在下面我们将讨论的所有新特性和API中,因为它将 Andr ...

  9. Android 最新 ios 11,差异性越来越小!iOS 11/Android 8.0最新系统对比

    北京时间9月13日凌晨1点,苹果在他的新飞船总部举办新品发布会.会上除了发布了一系列的智能设备外,更是发布了iOS 11操作系统的正式版本.iOS 11版本在今年6月份的苹果开发者大会正式亮相,但是之 ...

最新文章

  1. MaxCompute 多行数据合并为一行数据
  2. android功能网格布局,Visual Studio 开发安卓之布局-网格布局(GridLayout)
  3. [jobdu]调整数组顺序使奇数位于偶数前面
  4. 机器学习之--梯度下降和最小二乘法算线性回归
  5. 游戏中的数学与物理学 第二版_在游戏中启蒙幼儿的数学能力和逻辑思维能力...
  6. 5G NR PUCCH资源配置
  7. dr.com linux源码安装,Linux在不采用坑爹的Dr.com客户端下的连网方式(亲测可行 ,简单易行)...
  8. hbase shell中命令无法删除?
  9. F2812 DSP程序运行在片内RAM和FLASH的区别
  10. 【IDEA】Error:java: Compilation failed: internal java compiler error
  11. 表达式括号匹配_洛谷1739_栈
  12. 如何使用kafka增加topic的备份数量,让业务更上一层楼
  13. java中JFrame.setSize,Java JFrame .setSize(x, y) not working?
  14. python华为认证_HCIA-AI华为认证AI工程师在线课程题目及参考答案
  15. 探讨基于球谐函数的全局光照
  16. 计算机系统常见故障分析与排除,电脑常见网络故障分析与排除方法
  17. jbutton如何实现点击_Java Swing JButton按钮的实现示例
  18. VMware虚拟机下载及Ubuntu安装指南
  19. 两总体均值之差的推断:匹配样本
  20. rds mysql 导出数据文件_rds数据库导出

热门文章

  1. WORD行间距无法调整?
  2. php布尔教育,布尔教育2016PHP加强视频教程
  3. 模式识别更接近计算机还是自动化,2020中科院自动化所考研初试经验
  4. 基于下界函数的最优化
  5. 直面外界关注!海尔智家今天作出全面回答
  6. 洛谷:坚果保龄球(P1413,贪心)
  7. 美国数字资产行业的合规之路 | TokenInsight
  8. 一元风暴时买的域名,拿出来晒晒
  9. 1到10之间所有数的平方和立方
  10. 网易 七鱼 面试 java_reactJs微信端接入网易七鱼客服