当前位置: 首页 > news >正文

基于FPGA的多路视频缓存

对于多路视频传输的场合,需要正确设置同步。 uifdma_dbuf0 的写通道输出帧同步计数器直接接入 uifdma_dbuf0,uifdma_dbuf1, uifdma_dbuf2, uifdma_dbuf3 的写通道同步计数输入。uifdma_dbuf0 的读通道,延迟 1 帧于 uifdma_dbuf0 的写通道帧计数器。

多路视频同频显示的原理如下图所示:

hsize表示像素实际显示的位置,在本次工程中用32为表示一个像素,因此一行像素所占用地址大小为hsize*4(32位数据为四字节)。

hstride则用于设置每行像素的第一个地址或者说用来表示显示器的一行像素数据需要占用的内存大小。例如我的显示器为1920*1080则每一行的起始地址需要上一行的起始地址加1920*4。

vsize则是对有效的行进行计数,每显示完一行数据进行加一。每行像素的起始地址可表示为vsize*hstride*4。

本次工程将进行四路图像的拼接,每一路的分辨率为960*540,第一路数据的起始地址为0x01000000,第二路视频的起始地址应该为0x01000000+(1920-960)*4=0x01000F00,第三路视频的起始地址应该为0x01000000+(1080-540)*1920*4=0x013F4800,第四路视频的起始地址应该为0x01000000+(1080-540)*1920*4+(1920-960)*4=0x013F5700。

计算完成地址之后我们就可以用Block Design搭建一个四输入的视频拼接缓存系统。框图如下所示:

输入的数据和场同步信号等均来自摄像头输入,从DDR3中读取的数据将传输给HDMI输出驱动模块。

地址分配如下图所示:

工程整体结构如下图所示:

结果如下图所示:

只要把前面的OV5640图像采集弄懂,四路图像拼接就需要计算每一路视频的起始地址即可,ip核参考米联客,本文仅用于记录学习。


http://www.mrgr.cn/news/44786.html

相关文章:

  • Python酷库之旅-第三方库Pandas(134)
  • OBOO鸥柏丨数字化展厅液晶拼接屏联动展馆触摸屏查询一体机信息化
  • 前端模块化进化史:从全局 function 到 ES Modules
  • Linux终端管理效率:深入学习Screen
  • 【英特尔IA-32架构软件开发者开发手册第3卷:系统编程指南】2001年版翻译,1-2
  • Pr小白也能玩转的神器助你高效剪辑~
  • Python + Selenium,分分钟搭建 Web 自动化测试框架!
  • 杭电合集小tips
  • 国产游戏技术:迈向全球引领者的征途
  • ARM(5)内存管理单元MMU
  • 探索深度学习的奥秘:从理论到实践的奇幻之旅
  • 雪花算法相关面试题
  • LeetCode hot100---双指针专题(C++语言)
  • 笔记整理—linux进程部分(8)线程与进程
  • 知识图谱入门——11:构建动态图谱渲染应用:Vue3与Neo4j的集成与实践
  • 【GitHub】上传文件到GitHub
  • 接口怎么返回文件或数据流,@RequestMapping注解里面的属性项有哪些
  • 基于Python的自然语言处理系列(26):Get to the Point Summarization
  • 仿生学习:智能系统设计的灵感与实现
  • 国外媒体宣发:怎么在海外电子杂志版上发布新闻稿-时代周刊Time发布新闻稿