参考文档:PG043《Video In to AXI4-Stream v4.0 》


目录

1. 介绍

2. 功能

3. 具体应用

4. 性能

最大频率

Latency

Throughput

5. 接口

6. IP的使用

General Design Guidelines

7. IP配置


1. 介绍

Video In to AXI4-Stream IP核用于将视频源(带有同步信号的时钟并行视频数据,即同步sync或消隐blank信号或者而后者皆有)转换成AXI4-Stream接口形式,实现了接口转换。该IP还可使用VTC核,VTC在视频输入和视频处理之间起桥梁作用。


2. 功能

  • 接收视频信号的输入;
  • AXI-Stream主接口 (输出);
  • 提供输出接口给VTC做视频时序检测;
  • 支持在视频与AXI4-Stream时钟域之间的同步时钟模式和异步时钟模式;
  • 可选的FIFO深度:32-8192
  • 输入数据位宽:8-256bit
  • 支持隔行扫描操作.
  • 8,10,12,16bit的组件位宽转换

Xilinx提供的许多视频处理核之间,都是利用AXI4-Stream视频流协议进行视频的传输的,也就是说其输入和输出都是AXI4-Stream接口(Slaver/Master)。

在系统之间,通常使用用于水平和垂直定时的显式消隐(Blank)和同步信号(sync)以及数据有效信号(valid)来传输视频。 数字视觉接口(DVI)是这种传输模式的一个示例。 Video In to AXI4-Stream核将具有显式同步和定时的传入视频转换为AXI4-Stream Video协议,以与使用该协议的Xilinx视频处理IP核互联。
Video In to AXI4-Stream核心接受视频输入。 对于本文档,视频被定义为具有像素时钟和以下一组定时信号之一的并行视频数据:

•    Vsync, Hsync, and Data Valid
•    Vblank, Hblank, and Data Valid
•    Vsync, Hsync, Vbank, Hblank, and Data Valid

同步信号和消隐信号二者需其一即可,二者皆有也没问题。三组信号任一组信号都能够实现将Video In转换为AXI4-Stream。特定的选择对于视频时序控制器(VTC)检测器很重要,因此在需要生成VTC内核时应指定一组时序信号。IP核输出端是主模式下的AXI4-Stream接口。

该接口由并行视频数据 tdata,握手信号tvalidtready以及两个标志tlasttuser组成,它们被用于标识视频流中的某些特定像素。

tlast:指定每行的最后一个有效像素,也称为行尾(EOL)。

tuser:指定帧的第一个有效像素,称为帧开始(SOF)。

这两个标志信号对于标识AXI4流总线上的像素位置是必需的,因为AXI4-Strem形式下已然不再有同步或消隐信号。总线上只会搬运有效像素。

Video In to AXI4-Stream内部结构图

该IP核旨在与VTC的检测器功能并行使用。 通过AXI4-Lite接口,视频时序检测器检测输入进来的视频的行标准,并确定检测到的时序值 (例如每一行的有效像素的个数,以及可用于Video In to AXI4-Stream IP核下游的视频处理IP核的有效行数)。

建议将视频定时检测器的“锁定”状态输出连接到Video In to AXI4-Stream核心的axis_enable输入,以在视频输入丢失或不稳定时禁止AXI4-Stream总线。 视频定时控制器的检测器锁定指示符是INTC_if寄存器的第8位。

Video In to AXI4-Stream核处理视频时钟域和AXI4-Stream时钟域之间的异步时钟边界。 数据宽度可以从8到256之间选择,具体取决于视频格式所需的组件数量,每个组件的位数和每个时钟的像素数量。 支持隔行操作。 有一个输入FIFO,深度在32到8192个位置之间可选。


3. 具体应用

该IP 核可以完成对以下Video数据源进行到AXI4-Stream的接口转换:

具体应用时,未必一定是视频数据,只要是能够按照视频标准时序给出数据源,那么该IP就能够完成格式转换,转换成AXI4-Stream。视频数据完成格式转换是由于Xilinx 提供的Video IP的接口都是基于视频数据的AXI4-Stream,即以数据流形式向下游高速传输。


4. 性能

最大频率

本节包含目标设备的典型时钟频率。 可达到的最大时钟频率可能会有所不同。 使用其他版本的Xilinx工具以及其他因素,其他工具选项,FPGA器件中的附加逻辑会影响最大可达到的时钟频率和所有资源计数。

Latency

当AXI4-Stream总线上的下游处理模块可以以   像素速率      更快的速率获   取数据时,通过Video In to AXI4-Stream IP核的典型延迟为vid_io_in_clk的6个周期+ aclk的3个周期。

如果下游块以较低的速率获取像素,则FIFO会被用于在行和帧的过程中平衡输入和输出速率的不匹配。 像素在FIFO中的这种存储会增加了等待时间,并根据进出IP核的数据流而变化。

Throughput

AXI4-Stream接口上有效像素的平均数据速率与视频总线上有效像素的平均数据速率匹配。 但是,输入和输出的时钟速率不需要匹配。 由于AXI4-Stream总线不携带消隐像素,因此时钟速率可以低于视频时钟速率,并且仍具有足够的带宽以满足平均速率要求。 需要额外的FIFO深度来消除瞬时速率的失配。 输入视频像素时钟(Fvclk)和AXI4-stream时钟(Faclk)受整体Fmax限制。

FIFO深度要求

(1)若Faclk =或>Fvclk:

即AXI4-Stream时钟大于视频像素时钟,则仅需要最小缓冲区大小(32个位置)。这假设连接到Video In to AXI4-Stream IP核下 游的IP核可以在全视频速率接收数据。例如,下游IP核可以接受几乎连续的流中的数据,其中间隙仅在EOL之后出现,并且每行仅在SOF之前连续出现行间隙。在这种情况下,FIFO在每行的EOL之后清空。
(2)若Faclk<Fvclk:

Faclk小于Fvclk 时,需要额外的缓冲。 FIFO必须足够大,以处理视频时钟上像素进入速率的差异,以及使用aclk在AXI4-Stream总线上输出像素的速率较慢。对于高于线路平均值但低于vclk的aclk频率,输入FIFO深度必须为:
      FIFO深度最小值= 32 +有效像素* Fvclk / Faclk
如果下游处理核心以比aclk更低的速率接收数据,则需要额外的缓冲,其数量应足以防止FIFO在帧传输期间溢出。


5. 接口

Video In to AXI4-Stream IP核使用行业标准的  控制和数据接口  连接到其他系统组件。 以下各节描述了内核可用的各种接口。 图2-1说明了视频输入到AXI4-Stream核的I / O图。 该核并不需要所有的时序信号,但是它也会将这些信号传递给Xilinx视频时序控制器(VTC),该控制器根据其配置可能需要某些信号。 因此,所有定时信号都存在。 对于Video In to AXI4 Stream核,始终需要有效的数据。 另外,需要垂直同步或垂直消隐输入。

Video In to AXI4-Stream Core Top-Level Signaling Interface
Common Interface
信号 方向 宽度 描述
aclk Input 1 AXI4-Stream时钟
aclken Input 1 AXI4-Stream时钟使能信号,高有效
aresetn Input 1 AXI4-StreamARESETN。 低电平有效。 与ACLK同步。
axis_enable Input 1

此输入应连接到VTC检测器锁定状态,并与vid_io_in_clk同步。

1 =使能写入FIFO
0 =禁止写入FIFO

fid Output 1 AXI4-Stream总线的字段ID。 仅用于隔行视频:0 =偶数场,1 =奇数场。 该位的更改与AXI4-Stream总线上的SOF一致。 应该将其连接到下一个具有现场感知能力的下游设备的field-ID位,否则应保持未连接状态。 与aclk同步。
vid_io_in_clk Input 1 本地视频时钟。 仅在独立时钟模式下可用。
vid_io_in_ce Input 1 本地视频时钟使能
vid_io_in_reset Input 1 本地视频时钟域的复位信号。 与vid_io_in_clk同步。 仅在独立时钟模式下可用。 高有效。
overflow Output 1 指示FIFO上溢出的标志。 与vid_io_in_clk同步。 如果发生溢出,则可能表明所连接的AXI4-Stream从模块正在产生过多的背压(back-pressure)。
underflow Output 1 指示FIFO下溢出的标志。 在正常操作下绝对不应发生这种情况。 与aclk同步。

ACLK

AXI4-Stream输出信号与时钟信号ACLK同步。 AXI4-Stream信号在ACLK的上升沿采样。 AXI4-Stream输出信号的变化在ACLK的上升沿之后发生。

ACLKEN

ACLKEN引脚是与AXI4-Stream接口有关的高电平有效,同步时钟使能输入。 尽管ACLK引脚上有上升沿,但将ACLKEN设置为低电平(无效)会停止AXI4-Stream总线的运行。 保持内部状态,并保持输出信号电平,直到再次确认ACLKEN。 当ACLKEN被置为无效时,除ARESETn取代ACLKEN之外,不对核心AXI4-Stream输入进行采样。

Video Clock

视频输入接口和视频定时接口必须与vid_io_in_clk同步

Video Clock Enable

输入信号vid_io_in_ce控制视频时钟域中所有寄存器的时钟使能。 当视频时钟域的时钟频率高于视频时序标准时,通常会使用此信号。

Video Reset

仅当内核配置为独立时钟模式时,视频复位信号vid_io_in_reset信号才可用。 此高电平有效信号与vid_io_in_clk同步,用于重置桥的输入端。 断言此复位即vid_io_in_reset或aresetn将导致内部FIFO复位。

Video Timing Interface
信号 方向 宽度 描述
vtd_vsync Out 1 垂直同步视频定时信号(场同步)。
vtd_hsync Out 1 水平同步视频定时信号(行同步)。
vtd_vblank Out 1 场消隐
vtd_hblank Out 1 行消隐
vtd_active_video Out 1 Active video flag.
1 = active video, 0 = blanked video
vtd_field_id Out 1 VTC字段ID。 0 =偶数场,1 =奇数场。
       
AXI4-Stream Interface
       
m_axis_video_tvalid Output 1 AXI4-Stream TVALID。 有效视频数据启用
m_axis_video_tdata Output 1 AXI4-Stream TDATA. 视频数据
m_axis_video_tuser Output 1 AXI4-Stream TUSER. 帧开始
m_axis_video_tlast Output 1 AXI4-Stream TLAST. 行结束
m_axis_video_tready Input 1 AXI4-Stream TREADY. 从模块准备好

Video Data

AXI4-Stream接口规范将TDATA宽度限制为8位的整数倍。 因此,如果视频数据宽度不是8的整数倍,则在连接到m_axis_video_tdata之前,必须在MSB上用零填充数据以形成N * 8位宽的向量。 填充不会影响IP核的大小。

类似地,Video In to AXI4-Streamd的输出信号m_axis_video_tdata的数据将  打包并根据需要填充为8位的倍数   。 图2-2给出了一个示例,该示例针对每个时钟一个像素的12位RGB数据。

对于每个时钟多个像素,根据需要将像素打包成8位的倍数。 图<新图>显示了每个时钟三个像素,每个分量RGB数据12位的示例。 尽管这是预期的打包,但内核本身不会解析数据。 换句话说,AXI4-Stream输出将是视频输入,填充为8位的倍数。

该 桥接器还可以针对宽度的任何组合(包括8位,10位,12位和16位)执行从输入到输出的组件宽度转换。 图2-4所示的示例说明了将分量宽度从AXI4-Stream输入上的12位微调为Video输出上的8位。 修剪每个组件的四个LSB,并将其余数据打包到输出视频总线上。

图2-5中的示例说明了将组件宽度从AXI4-Stream上的8位填充到Video输出上的12位的情况。 每个组件的输出上的四个LSB填充为零,高MSB从AXI4-Stream输入映射到总线。

READY/VALID Handshake

只要READY,VALID,ACLKEN和ARESETn 在ACLK的上升沿为高电平,就会发生有效的传输。 在有效传输期间,DATA仅传输有效视频数据。 消隐时段和辅助数据包不会通过AXI4-Stream Video协议进行传输。

Driving m_axis_video_tready

m_axis_video_tready信号可以在Video in to AXI4-StreamIP断言m_axis_video_tvalid的周期之前,期间或之后断言(即Ready相对于tvalid信号没有限制)。 m_axis_video_tready的断言可能取决于m_axis_video_tvalid的值。 能够立即接受通过m_axis_video_tvalid限定的数据的从站应预先声明其m_axis_video_tready信号,直到接收到数据为止。 或者,可以注册m_axis_video_tready并在VALID声明后驱动周期。 建议AXI4-Stream从站独立驱动READY,或预先声明READY以最大程度地减少延迟。

SOF - m_axis_video_tuser

通过AXI4-Stream 接口中的tuser信号物理传输的SOF信号,标记了视频帧的第一个像素。 SOF脉冲为1个有效事务宽度,并且必须与帧的第一个像素重合。 SOF用作帧同步信号,允许下游IP核重新初始化并检测帧的第一个像素。 只要tvalid没有置位,就可以在第一个像素值出现在tdata之前,断言SOF信号的任意数量的aclk周期。

EOL Signal - m_axis_video_tlast

通过AXI4-Stream接口中的 tlast信号 物理传输的EOL信号,来标记一行的最后一个像素。 EOL脉冲为1个有效事务宽度,并且必须与扫描线的最后一个像素重合,如图2-6所示。

6. IP的使用

General Design Guidelines

Video In to AXI4 Stream IP核的video输入端口应连接到输入视频源,比如DVI接口芯片可产生并行视频数据和定时信号。该IP核并并不需要所有的时序信号,但是,Video In to AXI4 Stream IP核将这些信号传递给Xilinx视频时序控制器VTC,根据其配置,Xilinx视频时序控制器可能需要某些时序信号。使用VTC检测器所需的一组定时信号。对于Video In to AXI4 StreamIP核,始终需要数据有效信号。另外,需要垂直同步或垂直消隐输入。
      Video In to AXI4 Stream IP核的主要输出是主AXI4-Stream总线,该总线连接到下游视频处理模块,如图3-1所示。主接口和从接口共享一个公共时钟,复位和时钟使能。
如图3-1所示,Video In to AXI4-Stream IP核通常与Video Timing Controller结合使用,后者可检测下游处理模块使用的视频时序参数。

时钟

Video In to AXI4 Stream IP核使用两种时钟模式,即通用(同步)或独立(异步)。当网桥的本地和AXI4-Stream端从公共同步时钟运行时,将使用公共时钟模式。通用时钟模式禁用了内部FIFO中的时钟域交叉逻辑,因此节省了资源。当桥接器要求桥接器的本机端和AXI4-Stream端具有异步和独立时钟时,将使用独立时钟模式。
视频输入时钟与输入上使用的视频线标准相对应。它是视频线路标准的一部分,由Video In至AXI4-Stream内核以及用于检测视频时序的相应Video Timing Controller内核使用。
      AXI4-Stream时钟(aclk)是AXI4-Stream总线的一部分。为了最大程度地减少缓冲要求,该时钟的频率应等于或高于视频输入时钟的频率。该时钟可能比视频输入时钟慢,在这种情况下,需要额外的缓冲来存储像素,以便可以以视频时钟的突发速率输入行。在“缓冲区要求”部分中对此进行了讨论。至少,声压频率必须高于平均像素速率。

7. IP配置

Component Name:组件名称用作为模块生成的输出文件的基本名称。 名称必须以字母开头,并且必须由字符组成:a到z,0到9和“ _”。
Pixels Per Clock       :指定要并行输出的像素数。 此参数影响输入和输出的数据总线宽度。 每个时钟的像素选项为1、2或4。
•Input Component Width: 指定输入视频数据总线上的视频位宽度。
•Output Component Width:指定输出AXI4-Stream TDATA总线上的视频分量位宽度。
Clock Mode    时钟模式用于指定AXI4-Stream输出和视频输入信号是使用公共时钟还是独立时钟进行时钟控制。

Video Format   :  指定使用的视频格式。 选择不同的格式将确定使用的组件数量。,比如RGB数据格式一个像素将需要3个。

组件数量(1-4)*Pixels per clock*组件宽度=视频数据总线的宽度v_data。

依次将该宽度四舍五入为最接近的8倍,以确定AXI4-Stream数据总线的宽度m_axis_video_tdata。 例如,如果组件宽度为14(像素宽度),每个时钟像素为2,视频格式为RGB(3个组件),则vid_data为84位宽,m_axis_video_tdata为88位。 使用IP Integrator时,此参数是根据连接到从属AXI-Stream视频接口的视频IP内核的视频格式自动计算的。
•FIFO深度:指定输入FIFO中的位置数。 FIFO深度的选项为32、1024、2048、4096和8192。

Video IP:Video_In_to_AXI4-stream相关推荐

  1. CentOS Stream 9设置静态IP

    CentOS Stream 9设置静态IP CentOS Stream 9作为CentOS Stream发行版的下一个主要版本,已经发布有一段时间,但与目前广泛使用的CentOS7有较大区别.安装试用 ...

  2. xilinx IP 汇总

    XILINX demosaic ip XILINX TPG 彩条 XILINX CA 热成像 上色 xilinx ip crop 功能 xilinx ip ccm xilinx ip gamma xi ...

  3. IP 公司与GPU IP

    IP 公司与GPU IP 1.IP公司及其处理器IP系列(DSP, GPU, AI) Synopsys 来源:https://www.synopsys.com/zh-cn/designware-ip. ...

  4. 解决express video 手机无法播放的问题

    http://stackoverflow.com/questions/24976123/streaming-a-video-file-to-an-html5-video-player-with-nod ...

  5. v4l2驱动框架_【干货分享】Xilinx Linux V4L2视频管道(Video Pipeline)驱动程序分析...

    作者:付汉杰,hankf@xilinx.com, 文章转载自:赛灵思中文社区论坛 概述 Xilinx提供了完整的V4L2的驱动程序,Xilinx V4L2 driver.处于最顶层的驱动程序是V4L2 ...

  6. JS视频| DOMException: 无法启动视频源(DOMException: Could not start video source)

    JS视频| DOMException: 无法启动视频源(DOMException: Could not start video source) 问题 DOMException: Could not s ...

  7. 公网IP + 蒲公英异地组网实现真正意义上的随时随地远控设备

    公网IP + 蒲公英异地组网实现真正意义上的随时随地远控设备 不建议观看人群 开整 [一] 设置远程访问 windows设备 MAC设备 Linux设备 [二] 利用蒲公英实现外网访问 注册下载蒲公英 ...

  8. vue3 + video + canvas 人脸识别

    注意调试只有在本地才可以打开摄像头,线上需要 https 该例子使用的是手动点击选择照片 稍微修改注释代码也可以实时获取人脸 示例码云地址 video 修改圆形样式 修改此属性 object-fit: ...

  9. 解决javascript调用设备摄像头时video标签出项黑屏现象

    出现原因 MediaStream对象的active属性问题 接口的active 只读属性MediaStream返回一个布尔值,true 如果流当前处于活动状态; 否则,它返回false.如果流中的至少 ...

最新文章

  1. R语言ggplot2可视化分面图(facet,facet_wrap): 不同分面配置不同的数据范围、自定义每个分面的轴数据格式化形式及数据范围
  2. 获取本机IP地址[JavaScript / Node.js]
  3. java异常处理机制_Java编程中的异常机制
  4. MTK 驱动开发(26)---背光灯
  5. 2020财富中国500强:京东位列第13,阿里位列第18
  6. [图解tensorflow源码] TF系统概述篇
  7. APT级全面免杀与企业纵深防御体系的红蓝对抗
  8. 矩阵理论(三)向量矩阵的求导
  9. 汉字编码:区位码、国标码、机内码
  10. 笔记本电脑键盘失灵怎么办
  11. 华为云Centos7搭建hadoop集群一:云服务器准备
  12. opencv19:轮廓凸包,距离与匹配
  13. java duplicate_java中出现duplicate local variable
  14. Mac新手使用技巧——Mac如何强制关机
  15. 我们提倡适量饮酒,但多少算是适量呢?
  16. Hbase - RIT机制
  17. 安卓app源码和设计报告——简易记账本
  18. McAfee评论:McAfee很好吗?
  19. WinRAR(5.70)去广告
  20. 设计模式学习之假如你是一个建造者(建造者模式)

热门文章

  1. 路由器带硬盘+文件服务器,还买什么NAS 一台带有USB3.0的路由器解决家庭存储共享...
  2. 域名过期后能否抢注过期高外链域名?
  3. python如何让用户输入_Python如何让用户输入
  4. 一张专家推荐的最健康的作息时间表,你能做到吗?
  5. 接收机PPM与SBUS
  6. 基于微信小程序的个人健康打卡系统设计与实现-计算机毕业设计源码+LW文档
  7. codeforces 897 D Ithea Plays With Chtholly(交互)
  8. 计算机管理邮箱,用WindowsLiveMail一次管理多个邮箱
  9. Python AI 换脸,宋小宝都能换脸刘亦菲,你的网恋对象不知道有多可怕!
  10. 舆情监测技术TOOM,web技术实现