概述
转自http://hi.baidu.com/robinlxzh/item/badedc4e283f970e6cc2f0e7
Data Flow analysis (数据流分析)
评估一个基于PC的工业图像采集系统运行速度并不是简单的任务。此篇文章的目的是使大家能够正确选择出配合使用的相机和图像采集卡。
需要考虑的三个要素:(1) 相机 (2) 图像采集卡 (3)PC
图1 数据流模型图
图1所示,Front-end data flow(前端数据流)指的是相机传送数据到图像采集卡内部帧缓冲存储的视频数据的速率。
Back-end data flow(后端数据流)指的是从图像采集卡的内部缓冲区中提取数据,最终储存到PC的内存缓冲区。
数据流进入图像采集卡和从采集卡到PC的内存缓冲区的速率不应超过图像采集卡的吞吐量。后端数据流的吞吐量不应超过PCI总线的有效带宽。
一、关于Front-enddata flow(前端数据流)
(1)前端数据的峰值数据流量
为了计算前端数据流的峰值数据流量,使用相机的像素时钟(Data Clock Speed)乘以Tap(数据传输通道)来表示,Tap 结构如下表所示:
表1-1 Tap Structure
当相机的像素组成部分的编码超过8bit(Single-W型),它们将被保存到一个double byte的帧缓冲区中,相应相机的传送数据的有效数据流量增加一倍。
例如:
一个白摄像机(Dual-W),Data Clock Speed是40 MHz数据时钟。从表1-1可以看出Tap structure 为Dual-W的时候,其Mulitplier为4,所以前端的峰值数据流量为160MByte/S。
(2) Front-end average data flow(前端平均数据流量)
在传输有效的视频信号的过程中,数据传输率可达到峰值数据传输速率。
一个视频信号不断的以峰值数据传输速率将视频数据传送出去。在隔行扫描中,奇行的数据传送出去,而偶行的数据要等下一次才传送出去,所以在同一个周期内,偶行中的数据不需要传送,因此,前端平均数据流量在一段相当长的时间内数据传输率比峰值数据流量低。
① 计算线扫描相机的前端平均数据流
图像传感器的尺寸为H (H为有效像素,单位为Pixel),B为所需的字节数来存储一个像素(单位为Byte),F为线阵相机的线率单位为Hz ,则前端平均数据流为H×B×F。
例如:
一个2048像素,Single-W型的相机,其LineRate(线率)为15kHz,即
H = 2048, B = 2Byte/Pixel , F = 15,000Hz
所以,前端平均数据流 = 2048 × 2 × 15000 =61,440,000Byte/S = 61.44MByte/S。
② 计算面阵扫描相机的前端平均数据流
图像传感器的尺寸为H × V(H为水平有效像素,V为垂直有效像素,单位为Pixel),B为所需的字节数来存储一个像素(单位为Byte),FR为面阵相机的帧率单位为fps,则前端平均数据流为H×V×B×FR。
例如:
一个2048×1024像素,Single-W型的相机,其帧率为25fps,即
H = 2048, V = 1024 ,B= 2 Byte/Pixel , FR = 25fps
所以,前端平均数据流 = 2048 ×1024 × 2 × 25 =104,857,600Byte/S =105MByte/S。
二、PCI Data flow(PCI 数据流)
(1) PCI available bandwidth(PCI 有效带宽)
PCI的有效带宽取决于所用电脑的PCI总线,下表显示的是实际带宽,所有连接到总线上的设备的同步数据流量之和小于有效带宽。
表1-2 PCI的有效带宽
(2) PCIdelivery bandwidth(PCI 传输带宽)
表1-3 PCI 传输带宽
三、Back-end data flow(后端数据流)
要实现平衡只需后端数据流率等于前端平均数据流量。这就保证了图像采集卡上的FIFO不会溢出。
若是板卡上有几个通道来接相机,需要考虑当所有通道都接相机的时候,能够保证后端数据流的总和要小于PCI的有效带宽。
四、Frame buffer throughput(图像采集卡上的帧缓存区的吞吐量)
数据流进入图像采集卡和从采集卡到PC的内存缓冲区的速率不应超过图像采集卡的吞吐量。后端数据流的吞吐量不应超过PCI总线的有效带宽。
帧缓冲区的实际吞吐量为理论吞吐量的85%。
表 1-4 帧缓冲区的实际和理论吞吐量
Frame bufferperformance
Grablink Value incorporates an 8 Mbytes frame buffer implementedby a 2 M x 32 SDRAM (Synchronous DRAM) clocked at 80 MHz. This provides atheoretical memory throughput of 320 Mbytes/s.
例如:
一块Grablink Expert2的板卡接两款高端的CameraLink 相机,并且同时对两颗相机进行操作。
这个应用需要相机A的前端平均数据流速率为62 Mbytes/s,相机B的前端平均数据流速率为105 Mbytes/s。此应用需要获取和存储到PC内存中时不会出现延迟现象,因此需要每个通道的后端数据流等于平均前端数据流。
将所有流量统计如表1-4所示:
表1-5 前端平均数据流速率和后端数据流速率
通过表1-5可知,在做采集图像的同时将采集到的图像保存到PC内存中,总共的数据量为334MByte/S,而Grablink Expert2的帧缓存区实际吞吐量为680MByte/S,同时要保证后端数据流速度要比PCI有效带宽小,这样将图像存储到内存中才不会丢失。从表1-4我们可以知道后端数据流为167MByte/S,如果主机的PCI总线拥有64bits 33Mhz或32bits 64Mhz(这种情况下PCI的传输带宽为 180MByte见表1-3所示),累计的后端数据流为167MByte/s,有足够的传送带宽来将图像存储到内存中。所以此卡,可满足上述的应用。
总结:
在根据相机来选择相应板卡的时候,需要注意以下几项:
1、 The data clock Frequency for Camera不能超过66MHz
2、 前端数据的峰值数据流量不能大于板卡的帧缓存的实际吞吐量
3、 前端平均数据流和后端数据流的速率之和不能超过图像采集卡帧缓存区的实际吞吐量。
4、 后端数据流速率和不能大于PCI传输带宽。
5、 计算机上所有板卡的后端数据流速率和不能大于PCI的有效带宽。
最后
以上就是孝顺小丸子为你收集整理的如何根据相机来选择相应的图像采集卡的全部内容,希望文章能够帮你解决如何根据相机来选择相应的图像采集卡所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复