1)乒乓操作的问题就是为了解决数据读写速度不一致的问题,即写慢读快或者写快读慢的问题。即输入的数据速度很快,输出的数据速度很慢,为了保证数据的稳定性使用乒乓操作就可以解决这种问题。
(资料图片)
2)乒乓操作主要是应用于两种情况:第一种就是写入和读出数据都是连续的传输的情况,比如视频数据输入和输出,另外一种情况就是只有一端是连续数据的情况,另一端的数据是非连续的,比如数据的缓存和采集。
(1)视频数据缓存的乒乓操作
1)视频数据采集的乒乓操作,读写的通道数据都是连续的
2)为了保证视频数据的连续性,会存在重复读取数据或者重复写入数据的情况
3)速度快的迁就速度慢的,即快的一方,重复操作。
4)为了保证乒乓操作就必须在慢的一方设置一个标志位,需要只有标志位改变才可以进入下一个区域。
写慢读快-----重新读
只有写指针改变区域之后,标志才会改变。
即flag=1的时候重新读,flag等于0的时候,正常读取。
1)下面的区域为1,上面的区域为2,当写指针在区域1的时候flag设置为0,在二区域上设置1
2)当读指针到a1_addr的时候,判断此时的flag是否为0,为1则继续加,否则跳转到a0_addr
3)当读指针到a2_addr的时候,判断此时的flag是否为1,为0则继续加,否则跳转到a1_addr
4)即重复读取数据
写慢读快-----重新写
写快读慢就以读取为标准。
(2)基于数据采集的乒乓操作
1)基于数据采集的乒乓操作唯一的区别是不可以重复读取和写入
2)即速度快的一方先到了节点之后,需要等待速度慢的一方
3)例如在写慢读快的时候,区域1写完了,区域2开始写的时候,区域1开始读取,等到区域1读取完毕之后,这个时候区域2还在写,flag=1,所以这个时候不能读取了,必须等待区域2数据写完才可以操作,即很适合ADC采集,然后用以太网传输的模型。
(3)乒乓操作的优缺点
优点
1)可以将输入输出数据不同步的视频数据流连续的显示出来
2)可以使用低速的显示设备显示高速的摄像头数据(存在漏帧)
3)可以使用高速的显示设别显示低俗的摄像头数据(存在补帧)
缺点
1)需要双倍的存储空间,对内存需求更大
2)对于连续的采集数据,如果在传输中出现漏帧或者补帧是直接会导致数据出问题的