基于FPGA的多路视频缓存

server/2024/10/18 14:10:46/

对于多路视频传输的场合,需要正确设置同步。 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.ppmy.cn/server/131745.html

相关文章

React Native源码学习

核心组件 基础组件:View、Text、Image、TextInput、ScrollView(性能没有FlatList好,因为它会一次性把子元素渲染出来)、StyleSheet交互组件:button列表视图:FlatList(优先渲染屏幕上可见的元素&…

交替最小二乘法(ALS)的工作原理

假设我们有一个评分矩阵,我们希望通过交替优化用户矩阵和物品矩阵来最小化误差。 假设: 我们有一个评分矩阵 ( R ),它的维度是 ( m \times n ),即 ( m ) 个用户和 ( n ) 个物品(比如电影、商品等)。矩阵分…

CSS常用声明(属性)

目录 一、文本 1、字体属性 2、文本修饰 二、图像 1、图像边框样式 2、图像透明度 三、背景 1、background-color:背景颜色 2、background-img:背景图像 3、背景展示效果 4、background-size:背景图大小 5、background-position&…

Vue3 watch 监视属性

作用:监视数据的变化(和Vue2中的watch作用一致)特点:Vue3中的watch只能监视以下四种数据: ref定义的数据。reactive定义的数据。函数返回一个值(getter函数)。一个包含上述内容的数组。 我们在V…

Redis 数据类型list(列表)

目录 1 基本特性 2 主要操作命令 2.1 LPUSH key value [value ...] 2.2 RPUSH key value [value ...] 2.3 LRANGE key start stop 2.4 LINDEX key index 2.5 LLEN key 2.6 LPOP key 2.7 RPOP key 2.8 LTRIM key start stop 2.9 BLPOP key [key ...] timeout 2.10 B…

computed和watch的区别

一、computed(计算属性) 1. 定义 计算属性是基于 Vue 实例的响应式数据进行计算的属性。它们的值会根据依赖的数据变化而自动更新,并且会被缓存,只有当其依赖的数据发生变化时才会重新计算。 2. 使用场景 衍生状态&#xff1a…

从零开始:用Python编写自己的简单游戏

解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 在编程的世界里,游戏开发一直是一个既充满乐趣又具有挑战性的领域。很多著名的游戏开发者在年轻时编写了他们的第一个简单游戏,点燃了他们的编程热情。在本文中,我们将带领你使用Python编写一个基础的2D游戏,…

docker简述

1.安装dockers,配置docker软件仓库 安装,可能需要开代理,这里我提前使用了下好的包安装 启动docker systemctl enable --now docker查看是否安装成功 2.简单命令 拉取镜像,也可以提前下载使用以下命令上传 docker load -i imag…