首页 > 其他分享 >图像处理之Video In to AXI4-Stream教程

图像处理之Video In to AXI4-Stream教程

时间:2024-08-08 13:53:52浏览次数:13  
标签:Stream Fvclk FIFO 像素 速率 Video AXI4

免责声明:

本文所提供的信息和内容仅供参考。作者对本文内容的准确性、完整性、及时性或适用性不作任何明示或暗示的保证。在任何情况下,作者不对因使用本文内容而导致的任何直接或间接损失承担责任,包括但不限于数据丢失、业务中断或其他经济损失。

读者在使用本文信息时,应自行验证其准确性和适用性,并对其使用结果负责。本文内容不构成专业技术咨询或建议,具体的技术实现和应用应根据实际情况和需要进行详细分析和验证。

本文所涉及的任何商标、版权或其他知识产权均属于其各自的所有者。若本文中引用了第三方的资料或信息,引用仅为学术交流目的,不构成对第三方内容的认可或保证。

若有任何疑问或需进一步信息,请联系本文作者或相关专业人士。


前言

小编最近项目中涉及到ISP,而xilinx的ISP架构中视频流是以AXI4-Stream接口输入输出,本期教程将讲述Video In to AXI4-Stream的使用。


一、时序信号

注:不管视频信号是使用哪一组时序信号,核都可以正确地接受视频输入并转换为 AXI4-Stream 格式。

二、AXI4-Stream信号

      输出端使用 AXI4-Stream 接口,该接口以主模式(master mode)工作。

  • tdata:并行视频数据。这个信号携带实际的视频像素数据。
  • tvalidtready:握手信号,用于管理数据传输。tvalid 表示数据有效,当 tvalid 和 tready 同时为高时,表示数据传输成功。
  • tlasttuser:标志信号,用于标识视频流中特定的像素

由于 AXI4-Stream 总线上没有同步或消隐信号,仅传输有效像素数据,因此需要 tlast 和 tuser 标志来标识像素的位置。

  • tlast 用于标识每行最后一个有效像素的位置(EOL)。
  • tuser 用于标识每帧第一个有效像素的位置(SOF)。

三、Latency

1.典型延迟

  • 当 AXI4-Stream 总线上下游的处理模块能够以像素速率或更快的速率接收数据时,通过 Video In to AXI4-Stream 核的典型延迟是 6 个 vid_io_in_clk 时钟周期 + 3 个 aclk 时钟周期。
  • 这是在理想情况下,即下游模块能够快速处理数据而不会造成瓶颈时的延迟。

2.使用 FIFO 平衡速率不匹配

  • 如果下游模块以较慢的速率接收像素数据,那么 FIFO 会用来平衡输入和输出速率之间的不匹配。
  • FIFO 的作用是缓冲输入数据,以确保即使下游处理速度较慢,数据流也能平稳进行。

3.额外延迟

  • 当使用 FIFO 时,由于存储像素数据,这会增加延迟。
  • 这种额外的延迟取决于数据流入和流出核心的速率,可能会随行和帧的变化而变化。

四、Throughput

额外的 FIFO 深度需求

  • 需要额外的 FIFO 深度来平滑瞬时速率的不匹配。这是为了处理输入视频像素时钟(Fvclk)和 AXI4-Stream 时钟(Faclk)之间的速率差异。

时钟速率限制

  • Fvclk 和 Faclk 的速率受限于整体的最大时钟频率(Fmax)。

Faclk ≥ Fvclk 的情况

  • 如果 Faclk 等于或大于 Fvclk,只需要最小的缓冲区大小(32 个位置)。
  • 这假设 Video In to AXI4-Stream 核下游的核能够以全视频速率接收数据。例如,下游核可以以几乎连续的流方式接受数据,仅在 EOL(行结束)之后有间隙,每行连续接受数据,行之间的间隙仅在 SOF(帧开始)之前出现。在这种情况下,FIFO 在每行的 EOL 之后会清空。

Faclk 小于 Fvclk 的情况

  • 当 Faclk 小于 Fvclk 时,需要额外的缓冲来处理视频时钟和 AXI4-Stream 时钟之间的速率差异。
  • 具体来说,FIFO 必须足够大,以处理像素在视频时钟速率(Fvclk)下进入,而在较慢的 AXI4-Stream 总线时钟速率(Faclk)下输出的差异。

输入 FIFO 深度计算

  • 对于 Faclk 频率高于平均行频率但低于 Fvclk 的情况,输入 FIFO 的最小深度(FIFO depth min)计算公式如下:

FIFO depth min = 32 + Active Pixels * Fvclk / Faclk

下游处理核心的速率低于 aclk

  • 如果下游处理核心接受数据的速率低于 aclk,那么需要额外的缓冲以防止 FIFO 在帧传输期间溢出。
  • 这种情况下,FIFO 的深度需要足够大,以保证即使在传输整帧数据时,FIFO 也不会溢出。

五、Core Interfaces

六、General Design Guidelines

七、Customize IP

Pixels Per Clock:该参数指定每个时钟周期并行输出的像素数量。

Video Format: Specifies the video format used. 

Native Video Input Component Width: Specifies the video component bit width over 

the input video data bus.
AXI4S Video Output Component Width: Specifies the video component bit width 
over the output AXI4-Stream TDATA bus.
FIFO Depth: Specifies the number of locations in the input FIFO. The options for FIFO 
depth are 32, 1024, 2048, 4096, and 8192.
Clock Mode: The clock mode is used to specify whether the AXI4-Stream output and 
Video input signals are clocked using common or independent clocks.


总结

以上就是Video In to AXI4-Stream的重点内容,读者可根据自己的理解进行验证。

标签:Stream,Fvclk,FIFO,像素,速率,Video,AXI4
From: https://blog.csdn.net/qq_52538756/article/details/141017249

相关文章

  • 4K Video Downloader Plus 中文 授权版
    4KVideoDownloader是一款专门为帮助您从不同的视频网站下载高清视频的软件工具(极速下载站提供),该应用程序为用户提供了将视频保存到FLV,MP4,MKV或3GP的可能性。它拥有直观,整洁的布局,允许用户随时随地执行多项操作。您可以将URL直接粘贴到主面板中,并根据其流类型选择视频质量。此......
  • 4K Video Downloader Plus 中文 授权版
    4KVideoDownloader是一款专门为帮助您从不同的视频网站下载高清视频的软件工具(极速下载站提供),该应用程序为用户提供了将视频保存到FLV,MP4,MKV或3GP的可能性。它拥有直观,整洁的布局,允许用户随时随地执行多项操作。您可以将URL直接粘贴到主面板中,并根据其流类型选择视频质量。此......
  • 使用Streamlit构建一个web模拟HTTP请求工具
    目录前言HTTP工具功能点:1.导入库: 2.设置页面配置:3.Markdown格式的说明文本:4.用户输入界面:5.发送请求按钮和逻辑:6.发送HTTP请求并计算请求细节:7.总结 前言    最初就是因为在微信看到一篇文章中,看到此http工具的制作因为觉得Streamlit有无限......
  • Centos8下载报错:Errors during downloading metadata for repository ‘appstream‘:
    前提使用docker安装centos8步骤复现:启动后发现环境中没有vim功能,想着安装一下,发现报错:Errorsduringdownloadingmetadataforrepository'appstream':原因:找到AI工具翻译后:结合centos系统在2021年就没有在进行维护了,再进行网上大量查阅得知应该是yum源的问题,这里......
  • CentOS Stream 9 安装mysql 开启远程访问 忽略大小写
     更新sudodnfupdate安装MySQL服务器:这边安装的是默认8.0sudodnfinstallmysql-server启动MySQL服务:sudosystemctlstartmysqld确保MySQL服务设置为在启动时自动启动:sudosystemctlenablemysqld运行初始安全脚本来设置root用户密码和调整安全......
  • AXI4传输层概念和跨4K边界理解
    1.AXI传输层级概念在手册的术语表中,与AXI传输相关的有三个概念,分别是transfer(beat)、burst、transaction。用一句话串联就是:在AXI传输事务(Transaction)中,数据以突发传输(Burst)的形式组织。一次突发传输中可以包含一至多个数据(Transfer)。每个transfer因为使用一个周期,又被......
  • [JAVA的写法]之List的stream()操作
    List里的遍历pmDesignFiles=pmDesignFiles.stream().map((m)->{m.setLocalPath(“234234”);returnm;}).collect(Collectors.toList());List分组Map<String,List>engMap=proEngList.stream().collect(Collectors.groupingBy(PjDemandBundle::getEngId));Li......
  • 4、Flink SQL 与 DataStream API 集成处理 Insert-Only 流详解
    处理Insert-Only流StreamTableEnvironment提供以下方法来从DataStream转换和转换到DataStream:fromDataStream(DataStream):将insert-only和任意类型的流转换为表,默认情况下不传播事件时间和水印。fromDataStream(DataStream,Schema):将insert-only和任意类型......
  • 原生js与微信小程序 控制<video>标签 视频播放倍率
    最近公司小程序有个需求要求里面的视频可以让用户控制播放的倍率需求很简单但是要注意在不同终端上写法可能有些许区别这里大家主要关注js的部分原生jshtml部分<divid="box"><videoid="myVideo"style="width:100%;"controlssrc="https://cdrbonlinecour......
  • Spark StructStreaming 流计算中的数据关联
    SparkStructStreaming流计算中的数据关联在上一讲,我们提到,StructuredStreaming会复用SparkSQL所提供的一切数据处理能力,比如数据抽取、过滤、分组聚合、关联、排序,等等。不过,在这些常规的数据处理类型中,有一类操作需要我们特别关注,它就是数据关联(Joins)。这主要是出......