0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用AXI4S接口的视频IP细节介绍

OpenFPGA 来源:OpenFPGA 作者:OpenFPGA 2022-11-14 09:15 次阅读

AXI4S视频IP介绍及系统设计指南(一)

本文主要介绍使用AXI4S(AXI4-Stream)接口的视频IP细节。

介绍

本文总结了AXI4S接口视频协议,该协议在视频IP中的应用,其中AXI协议参考:

对于做过BT.1120总线的,这部分学习起来一点问题没有,只不过信号名称稍微修改了一下。

1.1 AXI4-Stream 信号接口

AXI4S携带实际的视频数据(无行场消隐),由主机和从机接口驱动,如Figure 1-1所示。

caf8f954-63b4-11ed-8abf-dac502259ad0.png

Figure 1‐1:具有多个AXI4S从(输入)和主(输出)接口的视频IP

空白时段(行场消隐)、音频数据和辅助数据包不会通过AXI4-Stream上的视频协议传输。Table 1-1 和Table 1-2 中列出AXI4S接口视频IP需要的所有信号。

Table 1-1 显示了输入(从)侧连接器的接口信号名称和功能。为了避免命名冲突,对于具有多个AXI4S输入接口的IP,信号前缀s_axis_video应该附加到s_axis_videok,其中k是各个输入AXI4S的索引;例如,对于流0,axis_video_tvalid变为s_axis_video0_tvalid,对于流1,变为s_axis_video1_tvalid。

Table 1‐1:AXI4S视频协议输入(从机)接口信号

cb29d718-63b4-11ed-8abf-dac502259ad0.png

Table 1-2 显示了输出(主)侧的接口信号名称和功能。类似地,对于具有多个AXI4-Stream输出接口的IP,信号前缀m_axis_video应该附加到m_axis_videok 之后,其中k是各个输出AXI4-Stream的索引;例如,对于流0,axis_video_tvalid变为m_axis_video0_tvalid,对于流1,变为m_axis_video1_tvalid。

Table 1‐2:AXI4S视频协议输出(主机)接口信号

cb40ab14-63b4-11ed-8abf-dac502259ad0.png

1.1.1 READY/VALID 握手

每当就绪(READY)、有效(VALID)、ACLKEN和ARESETn信号在ACLK的上升沿为高电平时,就会发生有效传输,如Figure 1-2所示。

cb5de8a0-63b4-11ed-8abf-dac502259ad0.png

Figure 1‐2:就绪/有效握手示例,新帧开始

在有效传输期间,数据仅携带有效视频数据。AXI4S上的视频不会传输空白时段(行场消隐)和辅助数据包。

1.1.2 帧开始信号(start of frame (SOF))

帧开始(SOF)信号通过AXI4S TUSER0信号进行物理传输,表示视频场或帧的第一个像素。SOF脉冲是一个有效的事务宽度,并且必须与场或帧的第一个像素一致(Figure 1-2).SOF充当帧同步信号,允许下游内核重新初始化,并检测场或帧的第一个像素。

1.1.3 行尾信号(End of Line Signal)

行尾(The end of line,EOL)信号通过AXI4S TLAST信号进行物理传输,表示一行的最后一个像素。EOL脉冲是一个有效的事务宽度,并且必须与扫描线的最后一个像素一致(Figure 1-3).

cb7f13fe-63b4-11ed-8abf-dac502259ad0.png

Figure 1‐3:EOL和SOF信号的使用

1.2 数据格式

为了传输视频数据,数据格式对物理数据信号的逻辑信道子集进行编码。视频模块之间的AXI4S接口可以有助于使用不同精度(例如,每个颜色通道8、10或12位)和/或不同格式(例如,RGB或YUV 420)以及每个数据拍不同数量的像素来传输视频。

总结就是,数据格式通过AXIS接口的TDATA信号线传输,根据传输的视频格式改变信号线的宽度。

1.2.1 AXI4-Stream 特定参数

视频IP配置参数在第3章的IP参数化中描述。AXI4S接口视频协议的具体参数在Table 1-3中列出。

Table 1‐3:AXI4-Stream 特定参数化

cbb17628-63b4-11ed-8abf-dac502259ad0.png

C_tk_AXIS_TDATA_WIDTH参数确定AXI4S接口tk上可变宽度接口信号TDATA的宽度,其中接口类型t可以具有指定主或从接口的值[m,s],而可选整数k指定接口ID。通常,C_tk_AXIS_TDATA_WIDTH是分量数据宽度、每个数据拍的像素/样本数以及实际视频格式使用的分量数的函数。

组件数据宽度的推荐参数名称是C_tk_DATA_WIDTH。可选的格式参数C_tk_VIDEO_FORMAT可以帮助IP使用HDL函数确定数据中存在的颜色成分的数量。视频IP通常在输入接口上需要特定的格式,并且可以在IP中硬编码颜色分量通道的数量。然而,当C_tk_VIDEO_FORMAT(由主接口上的默认值设置)在HDL设计中传播到从接口时,IP源代码可以使用断言执行DRC,以确保AXI4S视频接口由以预期格式编码的视频驱动。

1.2.1 编码

数据位使用[N-1:0]位编号惯例(N-1至0)表示。数据的隐式子字段的组成部分应该紧密地打包在一起;例如,DW=10位RGB数据打包成30位。如有必要,打包后的数据字应使用最高有效位(msb)进行零填充,使数据宽度使是8的倍数整数,如Figure 1-4所示。

cbcf6520-63b4-11ed-8abf-dac502259ad0.png

Figure 1‐4:多像素TDATA的视频数据填充

不同格式的详细表示在Table 1-4中列出,其中DW = C_DATA_WIDTH,VF = C_VIDEO_FORMAT。

Table 1‐4:C_tk_MAX_SAMPLES_PER_CLOCK =1的视频格式代码和数据表示

cbeacc8e-63b4-11ed-8abf-dac502259ad0.png

注:对于42和40格式中的任何一种,Cb(或U)和Cr(或V)样本被分割到两个数据拍上,但只能在每个时钟一个样本的模式下进行。第一个数据拍保持Cb(或U);第二个数据拍保持Cr(或V)。换句话说,帧的第一个有效像素包含[Cb0:Y0],下一个像素包含[Cr0:Y1]。40格式在42格式的基础上增加了垂直子采样,这是通过省略每隔一行的色度数据在AXI4-Stream上的视频中实现的(和BT.1120完全类似)。

注:拜耳传感器数据也称为原始数据,一般为RAW8/RAW10/RAW12/RAW14/RAW16等格式。

1.2.1.1 多个像素编码-静态TDATA配置

当AXI4S携带多个样本/像素时,像素应该从最低有效位(LSB)打包到MSB,例如,最低有效像素应该对应于扫描线中最左边的像素,或者对应于时间上最早捕获的像素。例如,如果每个数据拍发送4个样本/像素,则第一个样本位于最低有效位,第四个样本位于最高有效位。

当使用AXI4-Stream上的视频协议传输多个像素或样本时,与各个像素相关的颜色分量按照下式排列,Table 1-5给出了用于传输视频模式0、1、2、3、12的两个像素的例子。像素数据被连续打包,像素之间没有任何填充。当N*DW不是8的倍数整数时,视频数据在msb上补零,如Figure 1-5所示。

如果行大小不能被每个数据拍的像素/样本数整除,则行的最后一拍应使用LSB。然后,该行最后一个数据拍的msb中未使用的像素应补零。

cc40bc7a-63b4-11ed-8abf-dac502259ad0.png

Figure 1‐5:TDATA的视频数据填充 Table 1‐5:视频格式代码和数据表示

cc6542c0-63b4-11ed-8abf-dac502259ad0.png

1.2.1.2 多像素编码动态TDATA配置

对于视频IP可以动态改变颜色分量宽度、视频格式或每个数据拍的像素/样本数量的应用,像素和分量应该保持在由用于实例化的通用参数确定的静态位置。例如,如果只有一个像素通过支持每个数据拍最多两个像素的接口传输,则样本/像素应该与最低有效像素位置对齐。同样,如果每个器件只有8位通过为每个器件产生的10位接口传输,则有效位应MSB对齐,LSB用零填充。

Figure 1-6 和 Figure 1-9中显示了三个示例。

重要提示:尽管本规范支持动态更改每个数据拍的像素/样本数,但不建议这样做,因为并非所有IP都支持此功能。

cc816f72-63b4-11ed-8abf-dac502259ad0.png

Figure 1‐6:每个数据拍一个像素,每个器件8位,每个数据拍两个像素,每个器件总线10位

cc9b2430-63b4-11ed-8abf-dac502259ad0.png

Figure 1‐7:每个数据拍2个像素,每个器件8位,每个数据拍2个像素,每个器件总线10位

Figure 1-8.捕获RGB888(具有三个分量的像素,分量宽度为8)。

ccc33d76-63b4-11ed-8abf-dac502259ad0.png

Figure 1‐8:每个数据拍两个像素,每个分量八位(RGB888,VF码2),每个数据拍两个像素,每个分量总线14位

注意事项:

每个G、B、R元件位于14位空间,MSB对齐。

Figure 1-9.捕获RAW14(具有单个组件的像素,组件宽度为14)。

cce1a11c-63b4-11ed-8abf-dac502259ad0.png

Figure 1‐9:每个数据拍两个像素,每个元件14位(RAW14,VF代码12),每个数据拍两个像素,每个元件总线14位

注意事项:

虽然RAW14可能仅使用较低的28位,但完整的AXI4S接口仍然是88位,因为在处理动态TDATA时,如果需要,它必须能够以每种颜色完整的14位切换到RGB。下游逻辑必须意识到这一点,并应提供适当的总线接口,然后在内部丢弃不使用的位。

比较Figure 1-8 和Figure 1-9中的两种数据类型组件宽度,RAW14,VF Code 2数据类型具有14位组件和RGB888 (VF Code 2) 8位组件。

因此,RGB888元件在14位元件总线上以MSB对齐、LSB补零的方式放置。此外,RAW14像素紧密地封装在一起。

1.2.2 多像素编码示例

AXI4S视频接口支持每时钟双像素或四像素,对于RGB、YUV444和YUV420色彩空间,每个分量有8位、10位、12位和16位。当参数“每个组件的最大位数”设置为16时,Figure 1-10 显示了完全符合AXI4S视频协议的每时钟四像素数据格式。

cd038bf6-63b4-11ed-8abf-dac502259ad0.png

Figure 1‐10:四像素数据格式(每个分量的最大位数= 16)

每时钟双像素的数据格式完全兼容AXI4S视频协议,如Figure 1-11所示。

cd3111c0-63b4-11ed-8abf-dac502259ad0.png

Figure 1‐11:双像素数据格式(每个组件的最大位数= 16)

当参数“每个分量的最大比特数”设置为12时,每个分量的实际比特数大于12的视频格式将被截断为每个分量的最大比特数。剩余的最低有效位被丢弃。如果每个器件的实际位数小于Vivado IDE中设置的每个器件的最大位数,则所有位都以MSB对齐方式传输,其余LSB位以0填充。这适用于所有每个组件的最大位数设置。

举例来说,当每个组件的最大比特数被设置为12时,Figure 1-12 显示了完全符合AXI4S视频协议的每时钟四像素数据格式。

完全兼容的每时钟双像素AXI4S视频协议的数据格式如Figure 1-13所示。

cd6135da-63b4-11ed-8abf-dac502259ad0.png

Figure 1‐12: 四像素数据格式(每个分量的最大位数= 12)

cd84162c-63b4-11ed-8abf-dac502259ad0.png

Figure 1‐13:双像素数据格式(每个组件的最大位数= 12)

当参数“每个分量的最大比特数”设置为12时,每个分量的实际比特数大于12的视频格式将被截断为每个分量的最大比特数。剩余的最低有效位被丢弃。如果每个器件的实际位数小于Vivado IDE中设置的每个器件的最大位数,则所有位都以MSB对齐方式传输,其余LSB位以0填充。这适用于所有每个组件的最大位数设置。

Table 1‐6:每个组件支持的最大位数

cdc8b48a-63b4-11ed-8abf-dac502259ad0.png

举例来说,当每个组件的最大比特数被设置为12时,Figure 1-14 显示了完全符合AXI4S视频协议的每时钟四像素数据格式。完全兼容的每时钟双像素AXI4S视频协议的数据格式如Figure 1-15所示。

cde4a76c-63b4-11ed-8abf-dac502259ad0.png

Figure 1‐14: 四像素数据格式(每个分量的最大位数= 12)

ce075032-63b4-11ed-8abf-dac502259ad0.png

Figure 1‐15:双像素数据格式(每个组件的最大位数= 12)

视频接口还可以传输YUV420色彩空间中的四像素和双像素。

类似地,对于YUV 40深色(10、12或16位),数据表示是相同的。唯一的区别是每个组件携带更多的位(10、12和16)。当使用AXI4-Stream传输时,数据表示需要符合UG934中定义的协议。借助重新映射功能,相同的原生视频数据将被转换为AXI4S格式,如Figure 1-16所示。40格式在42格式的基础上增加了垂直子采样,这是通过省略每隔一行的色度数据在AXI4-Stream上的视频中实现的。

ce5205e6-63b4-11ed-8abf-dac502259ad0.png

Figure 1‐16: YUV 40 AXIS流视频数据(每时钟双像素)

注意:对于RGB/YUV444/YUV422,视频数据直接从AXI4S映射到原生视频接口,没有任何行缓冲。因此,Figure 1-12 到Figure 1-15 通常表示AXI4S和本地视频的数据接口。图中省略了控制信号。

该子系统利用配置参数、每个元件的最大位数和每个时钟的像素数,提供了构建系统的充分灵活性。设置这些参数,以便目标设备支持视频时钟和链路时钟。例如,当选择每时钟双像素时,与每时钟四像素设计相比,AXI4S视频需要以更高的时钟速率运行。在这种情况下,系统更难满足定时要求。因此,对于旨在发送更高视频分辨率的设计,建议使用每时钟四像素数据映射。

某些视频分辨率(例如720p60)的水平定时参数(1650)不是4的倍数。在这种情况下,必须选择每时钟双像素数据映射。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 连接器
    +关注

    关注

    98

    文章

    14292

    浏览量

    136118
  • 接口
    +关注

    关注

    33

    文章

    8486

    浏览量

    150806

原文标题:1.2 数据格式

文章出处:【微信号:Open_FPGA,微信公众号:OpenFPGA】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    芯驿电子 ALINX 推出全新 IP 核产品线,覆盖 TCP/UDP/NVMe AXI IP

    10GBe/40GBe UDP 协议栈 IP 核、10GbE TCP/IP 协议栈 IP 核和 NVMe AXI IP 核。   ALIN
    的头像 发表于 10-30 17:39 237次阅读
     芯驿电子 ALINX 推出全新 <b class='flag-5'>IP</b> 核产品线,覆盖 TCP/UDP/NVMe <b class='flag-5'>AXI</b> <b class='flag-5'>IP</b> 核

    使用dp接口播放4K视频的技巧

    在数字时代,4K视频已经成为家庭娱乐和专业领域中越来越常见的格式。4K视频提供了比传统1080p视频更高的分辨率和更丰富的
    的头像 发表于 10-30 13:56 184次阅读

    AMBA AXI4接口协议概述

    AMBA AXI4(高级可扩展接口 4)是 ARM 推出的第四代 AMBA 接口规范。AMD Vivado Design Suite 2014 和 ISE Design Suite 1
    的头像 发表于 10-28 10:46 151次阅读
    AMBA <b class='flag-5'>AXI4</b><b class='flag-5'>接口</b>协议概述

    Xilinx NVMe AXI4主机控制器,AXI4接口高性能版本介绍

    NVMe AXI4 Host Controller IP可以连接高速存储PCIe SSD,无需CPU,自动加速处理所有的NVMe协议命令,具备独立的数据写入和读取AXI4接口,不但适用
    的头像 发表于 07-18 09:17 469次阅读
    Xilinx NVMe <b class='flag-5'>AXI4</b>主机控制器,<b class='flag-5'>AXI4</b><b class='flag-5'>接口</b>高性能版本<b class='flag-5'>介绍</b>

    基于TI Sitara系列AM5728工业开发板——FPGA视频开发案例分享

    S2MM_xx将视频数据缓存至DDR,MM2S_xx将视频数据从DDR中取出。 编辑 图 36 编辑 图 37 VDMA IP核具
    发表于 07-12 17:24

    SoC设计中总线协议AXI4AXI3的主要区别详解

    AXI4AXI3是高级扩展接口(Advanced eXtensible Interface)的两个不同版本,它们都是用于SoC(System on Chip)设计中的总线协议,用于处理器和其它外设之间的高速数据传输。
    的头像 发表于 05-10 11:29 6007次阅读
    SoC设计中总线协议<b class='flag-5'>AXI4</b>与<b class='flag-5'>AXI</b>3的主要区别详解

    FPGA通过AXI总线读写DDR3实现方式

    AXI总线由一些核心组成,包括AXI主处理器接口AXI4)、AXI处理器到协处理器接口
    发表于 04-18 11:41 1207次阅读

    8路SDI/HDMI/MIPI/PCIe-DMA音视频采集,V4L2驱动应用介绍

    配置下,支持8路FHD(1920x1080p)@30Hz的采集与显示5 用户接口1.8路AXI4-Stream或FIFO视频采集接口2.8路AXI4
    发表于 03-13 13:59

    Xilinx FPGA NVMe主机控制器IP,高性能版本介绍应用

    独立的数据写入AXI4-Stream/FIFO接口和数据读取AXI4-Stream/FIFO接口,非常适合于超高容量和超高性能的应用。此外,NVMe Host Controller
    发表于 03-09 13:56

    Xilinx FPGA 1/4/8通道PCIe-DMA控制器IP,高性能应用介绍

    32Ø每个DMA引擎支持DMA Ring缓冲,Ring缓冲深度和个数可配置ØRDMA的超低延时和超低抖动性ØH2C DMA支持视频显示定时时序输入控制ØAXI4-Lite Master接口允许PCIe通信绕过
    发表于 03-07 13:54

    PCIe-AXI-Cont用户手册

    Transaction layer的所有功能特性,不仅内置DMA控制器,而且具备AXI4用户接口,提供一个高性能,易于使用,可定制化的PCIe-AXI互连解决方案,同时适用于ASIC和FPGA。
    发表于 02-22 09:15 3次下载

    AMBA总线之AXI设计的关键问题讲解

    首先我们看一下针对AXI接口IP设计,在介绍之前我们先回顾一下AXI所具有的一些feature。
    的头像 发表于 02-20 17:12 1604次阅读
    AMBA总线之<b class='flag-5'>AXI</b>设计的关键问题讲解

    Xilinx FPGA NVMe控制器,NVMe Host Controller IP

    NVMe Host Controller IP可以连接高速存储PCIe SSD,无需CPU和外部存储器,自动加速处理所有的NVMe协议命令,具备独立的数据写入AXI4-Stream/FIFO接口和数
    的头像 发表于 02-18 11:27 842次阅读
    Xilinx FPGA NVMe控制器,NVMe Host Controller <b class='flag-5'>IP</b>

    漫谈AMBA总线-AXI4协议的基本介绍

    本文主要集中在AMBA协议中的AXI4协议。之所以选择AXI4作为讲解,是因为这个协议在SoC、IC设计中应用比较广泛。
    发表于 01-17 12:21 2142次阅读
    漫谈AMBA总线-<b class='flag-5'>AXI4</b>协议的基本<b class='flag-5'>介绍</b>

    XILINX FPGA IPAXI Traffic Generator

    AXI Traffic Generator IP 用于在AXI4AXI4-Stream互连以及其他AXI4系统外设上生成特定序列(流量)。
    的头像 发表于 11-23 16:03 2338次阅读
    XILINX FPGA <b class='flag-5'>IP</b>之<b class='flag-5'>AXI</b> Traffic Generator