转换数据速率和帧速率

在我们之前的博客中,我们分析了从像素级生成到通过 CoaXPress 电缆向图像采集卡传输的图像数据传输,作为了解成像系统所需的数据速率以及可能存在的限制的一部分。这里我们将分析通过图像采集卡到上位机的数据传输。在这一部分中,您将找到问题的答案:图像采集卡和主机对相机的帧率有什么影响?

CoaXPress 接口的图像采集卡侧

CoaXPress 接口的图像采集卡侧(块 3 + 4)和相机侧(块 2 + 3)基本上没有区别。图像采集卡必须支持与相机相同的 CoaXPress 数据速率和电缆配置,就像上周我们使用 CXP-6 x4 的博客中一样。

然而,讨论一些图像采集卡制造商如何报告 CXP 数据速率是很有趣的。例如,Euresys 实际上在其网页上报告 CXP-6 x4 的数据速率为 2500 MByte/s (20 Gbit/s),而在我们之前的博客中,我们看到总数据速率等于 4 x 6.25 = 25 Gbit/s,有效数据速率等于 19.2 Gbit/s。那么这个 20 Gbit/s 从哪里来呢?实际上,这个 20 Gbit/s 包括用于保证完美数据传输的编码所导致的有效数据速率的降低,但它不包括我们在之前的博客中所包含的 4% 开销的估计。通过忽略编码占用的带宽,可以更轻松地与可能使用不同编码的其他接口的数据速率进行比较。例如,CoaXPress 使用 8 至 10 位解码,需要总可用带宽的 20%,而 PCIe 3.0 接口使用 128 至 130 位编码,仅需要总可用带宽的 1.5%。由于两个接口都需要开销数据,因此 Euresys 提到的数据速率中不考虑开销数据。

从图像采集卡到主机 PC

到达图像采集卡后,下一个数据高速公路是从图像采集卡到主机 PC 的传输。在几乎所有情况下,此任务的接口都是 PCI Express 的变体(原理图概述中的块 5)。与 CXP 接口相比,其中一些 PCI Express 变体速度较慢。此外,PCI Express 接口具有不同的数据处理方式,这会影响与 8 位不同的像素格式中可能的帧速率。下面举几个例子来说明重要的方面。

虽然我们将以 Euresys 图像采集卡为例,但这里描述的现象也适用于其他图像采集卡。对于我们的第一个示例,我们将考虑 Euresys Coaxlink Quad 图像采集卡。该卡支持的最快配置是 CXP-6 x4 配置。为了将图像数据从图像采集卡传输到 PC,它使用 PCIe 2.0 (Gen 2) x4 接口。虽然它在一定程度上取决于所使用的主机硬件,但从该接口的最大带宽 2000 MByte/s 开始,平均 1700 MByte/s 可用于图像数据传输。有关为何无法始终达到最大带宽的更多信息,请阅读本 pdf 中 Xilinx 白皮书中的信息**。** 这个 1700 Mbyte/s 不足以传输 2500 的完整 CXP-6 x4 数据速率MByte/s 实时传输至 PC。在这种情况下,图像采集卡因此成为数据速率限制因素。

接口最大支持帧率乘以有效PCIe接口带宽除以CXP-6 x4带宽得到的系数即可计算出图像采集卡支持的最大帧率:1700/2500 = 0.68。对于我们在之前的博客中用作示例的 8 位 25 Mp 图像,帧速率为 91.6 x 0.68 = 62.3 fps。

Euresys Coaxlink Quad 的后续版本是 Coaxlink Quad G3。该版本支持 PCIe 3.0 (Gen 3) x4 接口,用于图像采集卡和主机 PC 之间的数据传输。 3938 MByte/s 的总带宽中,平均约 3300 Mbyte/s 可用于图像数据传输。这似乎足以支持完整的 CoaXPress 数据速率,并且对于 8 位像素格式也足够了。然而,在 10 位像素格式的情况下,两个接口(CXP 和 PCIe)处理像素数据方式的差异导致平均数据速率实际上不够。

其根源在于 CoaXPress 支持像素封装,而 PCIe 不支持。 CXP 像素打包功能的结果可以通过不支持像素打包(例如 PCIe)时发生的情况的示例来最好地解释。在 PCIe 中,所有数据都以字节为单位打包,例如8 位。这意味着如果通过 PCIe 接口发送 10 位像素,它实际上需要两个字节(16 位)。与 CXP 相比,PCIe 的数据增加了 16 位/10 位 = 1.6 倍。为了正确处理 PCIe 数据,除了 10 个包含位的数据之外,还需要 6 个空位。对于 CXP,不需要严格使用 8 位单元。两个后续像素的数据可以直接相邻放置,没有空位。因此,由于 CXP 的数据速率为 2500 MByte/s,因此对于 10 位像素数据,PCIe 接口需要的数据速率为 1.6 x 2500 = 4000 Mbyte/s。

图 1:顶线代表 CXP 处理的 10 位数据,底线代表 PCIe 处理的 10 位数据。绿色部分是包含位的数据,而红色部分是包含空位的区域。

因此,如果我们现在回到 Euresys Coaxlink Quad G3 图像采集卡,它的 PCIe 数据速率为 3300 MByte/s,很明显,这对于在支持的最大帧速度下的 10 位像素深度来说是不够的。界面。与接口支持的最大帧速率(即 73.2 x 0.825 = 60.4 fps)相比,该图像采集卡支持的 10 位帧速率将低 3300 / 4000 = 0.825 倍。在这种情况下,图像采集卡因此成为数据速率限制因素。

我们还想再次提及,上述分析不仅限于 Euresys 产品,还适用于所有其他图像采集卡品牌,例如 BitFlow、AvalData、Matrox、Silicon Software、Active Silicon、Kaya Instruments 和 Gibel。可以在这里找到这些公司的链接

所有 CoaXPress 图像采集卡供应商在帮助客户设置相机和主机以处理所需的数据速率方面都有丰富的经验。

### 总之

由于这是由两部分组成的文章的最后一部分,因此给出简短的总结很有用。正如您所看到的,数据速率和帧速率限制因素可能出现在检测到的像素信号和主机 PC 之间的传输线上的所有位置。如果需要更高的帧速率,则分析实际限制数据传输的因素很有用。是图像传感器吗?是接口还是图像采集卡?在本文中,我们展示了一些简单的计算,希望可以帮助您分析视觉系统。如果您需要更多帮助或需要更多信息,请随时与我们联系。

2016-09-16 注:在发表此博客后,BitFlow 通知我们,他们使用软件解决方案通过 PCIe 接口打包像素数据。通过该软件解决方案,PCIe 总线所需的带宽再次等于 CoaXPress 接口提供的带宽。在 10 位中,这消除了 PCIe 接口造成的限制。

Source: Image data transport: from pixel to PC by CoaXPress Part 2