首页 > 其他分享 >13基于fdma ddr多路视频数据构架方案

13基于fdma ddr多路视频数据构架方案

时间:2023-12-27 19:45:18浏览次数:36  
标签:视频 13 dbuf0 fdma ddr 像素 IP uifdma 参数设置

软件版本:VIVADO2021.1

操作系统:WIN10 64bit

硬件平台:适用XILINX A7/K7/Z7/ZU/KU系列FPGA

登录米联客(MiLianKe)FPGA社区-www.uisrc.com观看免费视频课程、在线答疑解惑!

1概述    

基于AXI总线可以使用axi_interconnect的仲裁机制,同时接入多个基于AXI总线的IP,米联客的fdma采用的是AXI4总线接口,因此基于AXI总线的多数据通路方案实现起来会很容易。每一个通路都可以独立工作,总裁都交给axi_interconnect IP来完成。

本方案实现了4路视频测试数据的输入,以及1路视频的输出。

2系统框图

3逻辑设计

本方案中通过VTC0产生1080P视频时序,通过VTC1产生480P时序,通过TPG模块产生测试图形。测试视频数据通过uifdma_dbuf0, uifdma_dbuf1, uifdma_dbuf2, uifdma_dbuf3 IP的写通道,再经过FDMA IP后,经过AXI interconnect IP后进入DDR缓存。缓存后的数据,通过uifdma_dbuf0的读通道输出到HDMI IP显示。

3.1:帧同步设计

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

uifdma_dbuf0,uifdma_dbuf1, uifdma_dbuf2, uifdma_dbuf3的写通道同步计数输入。uifdma_dbuf0的读通道,延迟1帧于uifdma_dbuf0的写通道帧计数器。

3.2:多路视频的同屏显示原理

    

以把2个摄像头CAM0和CAM1输出到同一个显示器上为列,为了把2个图像显示到1个显示器,首先得搞清楚以下关系:

hsize:每1行图像实际在内存中占用的有效空间,以32bit表示一个像素的时候占用内存大小为hsize*4

hstride:用于设置每行图像第一个像素的地址,以32bit 表示一个像素的时候v_cnt* hstride*4

vsize:有效的行

 

因此很容易得出cam0的每行第一个像素的地址也是v_cnt* hstride*4

同理如果我们需要把cam1在hsize和vsize空间的任何位置显示,我们只要关心cam1每一行图像第一个像素的地址,可以用以下公式v_cnt* hstride*4+offset

 

这里4个通道的640*480分辨率视频,在同一个1920*1080的视频输出显示。vidoe1在左上角,video2在右上角,video3在左下角,video4在右下角。

uifdma_dbuf支持stride参数设置,stride参数可以设置输入数据X(hsize)方向每一行数据的第一个像素到下一个起始像素的间隔地址,利用stride参数可以非常方便地摆放输入视频到内存中的排列方式。

video1的start addr1=0x01000000(第一个图像的起始地址对于PL DDR可以从0地址开始,对于PS DDR建议偏移20MB)

video2的start addr2=0x01000000+(1920-640)*4

video3的start addr3=0x01000000+(1080-480)*1920*4

video4的start addr4=0x01000000+(1080-480)*1920*4+(1920-640)*4

3.3:uifdma_dbuf0的参数设置

3.4:uifdma_dbuf1的参数设置

3.5:uifdma_dbuf2的参数设置

3.6:uifdma_dbuf3的参数设置

3.7:uiFDMA的参数设置

3.8:地址空间分配

配置完成后需要注意地址空间分配,FDMA IP的内存起始地址从0开始

4实验结果

编译并下载

标签:视频,13,dbuf0,fdma,ddr,像素,IP,uifdma,参数设置
From: https://www.cnblogs.com/milianke/p/17931288.html

相关文章

  • 13-Mysql备份恢复
    一、备份的类型冷备份:关闭数据、停止业务温备份:加锁备份热备份:在先备份,不会影响到也正常运行二、备份方式2.1逻辑备份:基于SQL语句的备份mysqldump建库、建表、数据插入基于二进制日志:数据库的所有变化类的操作基于复制的备份:将二进制日志实时传送到另一台机器并且恢复......
  • 题解 P9993【[Ynoi Easy Round 2024] TEST_133】
    就硬把线段树3和数列分块入门2揉到一起出。维护原数组\(a\)及其历史最大值\(hist\),对每个块,维护块内\(a\)升序排序后结果\(p\)、块内\(a\)升序排序后历史最大值前缀和\(prehist\)、块加标记\(add\)、块历史和加标记\(histadd\)。下传标记和区间修改操作仿照线......
  • 13. 并列句-考点分析-完形中的使用
    写作——句子间加逻辑关系词;逻辑关系词不一定加连词,也可加副词和介词短语注意使用副词和介词短语连接句子前面要么用句号,要么加连词andeg;我喜欢刘小小——她很美丽(因果关系)我喜欢刘晓晓——我喜欢刘大大(并列关系)我喜欢刘晓晓——她很丑(转折关系) 读懂前后2句话的意思就可......
  • P5513 [CEOI2013] Board 题解
    P5513容易发现,每次等价于对一个二进制数进行操作。但是这个二进制数长为\(n\),即需要高精。但是这样支持加一和减一是复杂度会退化为\(\mathcal{O}(n^2)\),有一个很正常的做法就压位,仿照bitset的做法进行操作,复杂度\(\mathcal{O}(\frac{n^2}{w})\)。这样已经可以通过了,但发......
  • 苹果13密码多次输错后显示不可用后尝试保留资料修复
    一、背景苹果13手机在多次输入错误密码后,屏幕显示处于安全状态,重启后显示处于不可用状态。网上找资料有几种解决方法,一些是不保留数据的,一些是可以保留数据的,本文是其中一种方法的实操。二、实操官网步骤在PC上(windows系统,有Mac电脑更好)下载iTuns软件,用该手机的AppleID登录(......
  • day21 Prometheus Operator优化配置 -Prometheus Operator自定义监控对象(7.13-7.14)
    7.13-PrometheusOperator优化配置1、数据持久化1.1prometheus数据持久化默认Prometheus和Grafana不做数据持久化,那么服务重启以后配置的Dashboard、账号密码、监控数据等信息将会丢失,所以做数据持久化也是很有必要的。原始的数据是以emptyDir形式存放在pod里面,生命周期与po......
  • [Nginx] API请求体过大时,报:Nginx 413 Request Entity Too Large [转载]
    1问题描述此问题(通过方法1)已解决,但整体的解决思路,参考自网友,故著名为【转载】文章昨晚压测时,通过API请求10000个设备的若干信号(5个)状态时,Postman返回Nginx的如下错误API整个请求有1.37MB413RequestEntityTooLarge2问题分析通过字面意思,即可知悉:nginx的cl......
  • 0x13.mysql注入
    基本判断定义:后台服务器在接收相关参数时未做好过滤直接带入到数据库中查询,导致可以拼接执行构造的SQL语句常见组合:asp+access/sqlserveraspx+sqlserverphp+mysqljsp+mysql/sqlserver/oracle静态与动态:判断方式:document.lastModified,输出现在的时间,则为伪静态。......
  • P1339 [USACO09OCT] Heat Wave G 最短路入门题 Dijkstra/SPFA/Dijkstra+优先队列优化
    目录朴素的Dijkstra算法SPFA算法Dijkstra+优先队列优化题目链接:https://www.luogu.com.cn/problem/P1339题目大意:无向图有单源最短路。朴素的Dijkstra算法时间复杂度\(O(n^2)\)。#include<bits/stdc++.h>usingnamespacestd;constintmaxn=2505;structEdge......
  • 动环监控方案,为什么推荐79元全志T113-i国产平台?
    什么是动环监控系统?通信电源及机房环境监控系统(简称“动环监控系统”),是对分布在各机房的电源柜、UPS、空调、蓄电池等多种动力设备,及门磁、红外、窗破、水浸、温湿度、烟感等机房环境的各种参数,进行遥测、遥信、遥调和遥控,实时监测其运行参数、诊断和处理故障、记录和分析相关数......