目录

1、概述

2、时钟架构

3、带锁定视频解码器的同步系统

4、异步视频系统

4.1、时钟三态模式

4.2、两条视频流中的数据对齐误差

4.3、行锁定摄像机对齐误差

4.4、不同的连接长度

4.5、视频解码器/HDMI接收器延迟

4.6、对齐误差补偿

4.7、对齐误差测量

4.8、从两个对齐视频流生成3D视频

4.9、并排3D视频


视频系统,目前已经深入消费应用的各个方面,在汽车、机器人和工业领域日益普遍。其在非消费应用中的增长主要源于HDMI标准以及更快、更高效的DSP和FPGA的出现。

本文将概要讨论利用模拟或HDMI摄像机实现立体视觉(3D视频)的各种要求。文章将描述一个基于FPGA的系统,它将两个视频流结合成一个3D视频流,通过HDMI 1.4发射器进行传输,同时还要介绍一个基于DSP的系统,与通常需从两台摄像机接收数据相比,该系统可以节省DMA带宽。另外,本文还将描述一种方法,该方法可以实现一种并排格式,可供3D摄像机或要求3D视频的系统使用。

1、概述

立体视觉要求使用两台摄像机,二者相距大约5.5厘米,这是人类双眼之间的典型间距,如图1所示。

图2所示高级功能框图使用了采用相同视频标准的两台同步摄像机、两个视频解码器和一个FPGA。为了确保完全一致的帧速率,摄像机必须行锁定到共同的参考时序。如果没有同步,不使用外部存储器,就不可能将输出组合起来并存储为完整的视频帧。

图3显示两个行锁定视频流被合并成一个立体图像。

图4显示,如果不将整个视频帧保存在外部存储器中,则异步视频流无法合并。

然后,两台同步摄像机的输出由视频解码器(如ADV7181D、ADV7182或ADV7186,用于模拟摄像机)进行数字化处理;也可由HDMI接收器(如ADV7610或ADV7611,用于数字摄像机)进行数字化处理。

视频解码器和HDMI接收器都采用内部锁相环(PLL)在其输出总线上产生时钟和像素数据。这意味着,在数字化模拟视频,或者接收HDMI流时,将为两台摄像机产生两个独立的时钟域。另外,两个视频流可能存在对齐误差。这些时序差异和对齐误差必须在后端器件(如FPGA)中进行补偿,先将数据带至共同的时钟域,然后再将两个视频图像结合成单个立体视频帧。然后,通过一个支持3D的HDMI 1.4 HDMI发射器(如ADV7511或ADV7513)发送同步后的视频流——也可以将其提供给DSP(如ADSP-BF609 Blackfin®处理器)以便进一步处理。

2、时钟架构

视频解码器有两种完全不同的时钟源,具体取决于其是否锁定。当视频PLL被锁定至输入同步信号时——水平同步(视频解码器)或TMDS时钟(HDMI)——结果会产生一个锁定至输入视频源的时钟。当视频失锁时,或者当PLL处于强制自由运行模式时,视频PLL不会锁定至输入同步信号,结果会产生一个锁定至晶振时钟的时钟输出。另外,时钟可能不会在复位后输出,因为LLC时钟驱动器在复位后设置为高阻抗模式。

因此,如果系统有两个或多个始于视频解码器或HDMI接收器的视频路径,即使将同一晶振时钟提供给两个视频解码器或HDMI接收器,仍会有两个不同频率、不同相位的不同时钟域,因为每个器件都会基于自己的PLL产生自己的时钟。

3、带锁定视频解码器的同步系统

典型的立体视频使用两个视频源,其中,每个视频解码器都会锁定至输入视频信号,并会基于输入水平同步或TMDS时钟产生自己的时钟。

当两台摄像机同步——或行锁定至同一参考时序时——分帧线将始终对齐。由于两个独立的视频解码器会收到相同的水平同步信号,因此,像素时钟将拥有相同的像素时钟频率。这样,就可以将两条数据路径带入同一个时钟域,如图5所示。

4、异步视频系统

不幸的是,其中一个视频解码器可能因视频源信号质量欠佳而失锁,如图6所示。

或者,摄像机因视频链路断开而失去同步性,如图7所示。

这会在两条数据路径中导致不同的频率,结果又会导致进入后端中的数据量不对称。

视频失锁可以通过使用一个中断(SD视频解码器为SD_UNLOCK,分量视频解码器为CP_UNLOCK,或HDMI接收器中的TMDSPLL_LCK寄存器)来检测,该中断会在一定延迟后介入。

视频解码器集成了不稳定水平同步平滑机制,因此,视频失锁的检测可能需要两三行。该延迟可通过控制FPGA中的失锁来减少。

4.1、时钟三态模式

在设计FPGA时钟资源时,必须知道,默认情况下,许多视频解码器和HDMI产品在复位后将时钟和数据线路置为三态模式。因此,LLC像素时钟不适用于同步复位。

4.2、两条视频流中的数据对齐误差

为了简化系统并减少合并两幅图像所需存储器,到达FPGA的数据应进行同步,以使来自第一台摄像机的第M行第N个像素与来自第二台摄像机的第M行第N个像素同时收到。

在FPGA输入端,这可能很难实现,因为两条视频路径可能具有不同的延迟:行锁定摄像机可能输出存在对齐误差的行,不同的连接长度可能加大对齐误差,而视频解码器则可能带来可变启动延迟。受这些延迟影响,采用行锁定摄像机的系统会有一些存在对齐误差的像素。

4.3、行锁定摄像机对齐误差

即使是行锁定摄像机也可能输出存在对齐误差的视频行。图8显示来自两台摄像机的CVBS输出端的垂直同步信号。一台摄像机(同步主机)为第二台摄像机(同步从机)提供行锁定信号。380 ns的对齐误差是清楚可见的。

图9展示的是这些摄像机输出端的视频解码器传输的数据。可以看到11个像素的位移。

4.4、不同的连接长度

所有电气连接都会带来传播延迟,因此,要确保两条视频路径具有相同的轨道和电缆长度。

4.5、视频解码器/HDMI接收器延迟

所有视频解码器都会带来可能因启用的功能而异的延迟。另外,有些视频器件含有可能增加随机启动延迟的因素——如深色FIFO。采用视频解码器的典型立体系统的随机启动延迟大约为5个像素时钟。含有HDMI发射器和接收器的系统(如图10所示)的随机启动延迟可能为40个像素时钟左右。

4.6、对齐误差补偿

图11所示系统中,一个视频解码器对来自各摄像机的模拟信号进行数字化处理。各视频路径的数据和时钟是独立的。两条视频路径都连接至FIFO,后者对输入数据进行缓冲,以补偿数据对齐误差。

在输出数据时,FIFO使用来自其中一个解码器的共用时钟。在锁定系统中,两条数据路径应具有完全相同的时钟频率,以确保在摄像机行锁定且视频解码器锁定的情况下,不会出现FIFO溢出或下溢现象。

通过启用或禁用FIFO输出,控制模块可以维持FIFO电平以尽量减少像素对齐误差。如果采取了正确的补偿措施,则FPGA模块的输出应为与第一个像素对齐的两条数据路径。然后该数据提供给FPGA后端,以生成3D格式。

4.7、对齐误差测量

两个数字化数据流之间的对齐误差可以在视频FIFO输出端进行测量,其方法是使用一个单一时钟计数器,该计数器在输入信号之一的垂直同步(VS)脉冲上复位。图12所示两个视频流(vs_a_in和vs_b_in)的对齐误差为4个像素。计数器使用列表1中所示方法测量对齐误差。计数从VS1的上升沿开始,并在VS2的上升沿终止。如果一个帧的总像素长度是已知的,则可以通过从帧长中减去计数值,从而算出负偏斜(VS2位于VS1之前)。该负值应在偏斜超过像素帧长的一半时计算。结果应用来重新对齐FIFO中存储的数据。

4.8、从两个对齐视频流生成3D视频

一旦像素、行和帧数据都真正同步,FPGA可以将视频数据转换成3D视频流,如图13所示。

输入数据由共用时钟读入存储器。同步时序分析仪检查输入的同步信号,并抽取视频时序,包括水平前后沿长度、垂直前后沿、水平和垂直同步长度、水平有效行长、垂直有效行数和同步信号极化。

将该信息与当前水平和垂直像素位置一起传给同步时序再发生器,这样可以生成经修改的时序,以便支持所需3D视频结构。新生成的时序应延迟,以确保FIFO含有所需数据量。

4.9、并排3D视频

对存储器要求最低的架构是并排格式,只需要一个两行缓冲器(FIFO)即可存储来自两个视频源的行内容。并排格式的宽度应为原始输入模式的两倍。为此,应使用一个双倍时钟来为拥有双倍水平行长度的再生同步时序提供时钟。用于为后端提供时钟的双倍时钟将以双倍速率清空第一个FIFO和第二个FIFO,这样即可并排显示图像,如图14所示。并排图像如图15所示。


学习来源:ADI官网

期刊下载:https://download.csdn.net/download/m0_38106923/19852559

基于FPGA系统合成两条视频流实现3D视频效果相关推荐

  1. 微信公众号-java上传图片素材到微信服务器基于事件推送两条消息

    微信公众号-java上传图片素材到微信服务器&基于事件推送两条消息 场景:基于微信扫码登录/关注事件,向用户推送两条消息. 分析:翻阅了微信开发者文档和一些其他资料发现,公众号针对用户关注/扫 ...

  2. 一种基于FPGA 的1080p 高清多摄像头全景视频拼接的泊车(机)

    < > 一种基于FPGA 的1080p 高清多摄像头全景视频拼接的泊车(机)实时影像系统 一.本发明要解决的实际问题 1. 汽车左右反光镜及后视镜的视角有限,导致车身周围存在盲区,在特殊驾 ...

  3. 基于FPGA的实时视频信号处理方案

    视频信号处理 MEMS传感器读出电路 基于FPGA的实时视频信号处理方案 基于FPGA解决行业难题加上V好 | xinpianxiehui 视频处理在广播基础设备.医疗成像.HD视频会议.视频监控等各 ...

  4. 基于FPGA的 TMDS 编码 及 HDMI 显示

    目录 引言 TMDS 编码 原理简介 TMDS编码实现 HDMI差分数据串行 实现方法 源码 HDMI显示方法 思路 实现 工程结构 源代码分享 板级调试视频 引言 最近在开发板上倒腾了一下 TMDS ...

  5. 计算机控制器安装方法,win7正确安装3D视频控制器的两种方法介绍

    win7系统中打开设备管理器可以检查驱动状况,点击其他设备的时候发现一个"3D 视频控制器","3D 视频控制器"是什么?其实一般来说"3D 视频控制 ...

  6. 嵌入式linux智能小车ppt,基于FPGA嵌入式系统的智能小车全面解析

    前言 传统智能小车,特别是嵌入式系统,一般都是基于单片机或者ARM的嵌入式系统,基本上都由软件系统和硬件系统组成的,硬件系统方面,跟传统的搭建硬件环境一样,只能做相对裁剪和功能拓展,但是,本项目的课题 ...

  7. 基于FPGA的混沌系统实现

    基于FPGA的混沌信号发生器系统介绍: 由于模拟电路元器件的参数会受温度.老化等环境原因影响,而混沌系统又是对初始值极度敏感的系统,因此使用模拟电路实现混沌系统的效果非常有限.而数字电路不存在器件温度 ...

  8. 基于FPGA的两位按键控制LED数码管加减计数实验

    两位按键控制LED数码管加减计数实验 这是一篇拖了一个多月的文章,主要是基于FPGA利用按键消抖原理与动态数码管驱动原理相结合,来实现一个利用两位按键来控制数码管实现0-99的加法计数或者减法计数功能 ...

  9. 软件智能:aaas系统预埋的AI的两条主线和假设的二线趋近的极点以及它们必然导出的 ”AI芯”之2 正文 及其相关项 和 性质

    本文包括正文内容  和 与正文相关的其他内容列举,并给出它们在aaas系统中的性质和定位.. 〇.本文正文 本文的正文描述 AI的三次模型法:第一次必然是理事两边的数据模型,再一次可能是理事无碍的算法 ...

最新文章

  1. 【Laravel-海贼王系列】第七章,Pipeline 类解析
  2. 使用screen后台运行python(基于centOS7.2)
  3. P1040 加分二叉树【dp+深搜】
  4. 解决Hadoop总是处于安全模式的问题
  5. 三星电子可能“砍掉”Galaxy Note产品线 专注Galaxy S
  6. ggtech:您有一份来自Airbnb/Google的配色方案需要查收
  7. Android studio 老虎机小游戏
  8. linux飞行模式命令,Android 开启飞行模式的几种方式
  9. py文件转换成exe格式
  10. linux 自动降频,Linux资格认证:Ubuntu下对CPU进行降频
  11. javascript+css实现走马灯图片轮播器
  12. MATLAB | 生成视频文件
  13. strtol,strtoul,strtod
  14. 快速下载官方网站软件
  15. Windows下VMware准备IOS开发环境
  16. redis命令之set和zset的操作
  17. 正则表达式的由来(Wikipedia和百度整合记录)
  18. 【taro】taro编译h5报React Refresh runtime should not be included in the production bundle
  19. 不能安装QQ2009SP6
  20. ENVI5.0 软件BT共享下载

热门文章

  1. 高级数据结构讲解与案例分析
  2. Python 判断本地python 本地版本2x or 3x
  3. Android 内容观察者 ContentObserver 类
  4. java自增运算符与自减运算符
  5. Handler的postDelayed()关闭的方法
  6. Rendering failed with a known bug ,Please try a rebuild
  7. js 动态加载select触发事件
  8. 苹果公司投资1000万美元用于无温室气体铝冶炼
  9. linux的三个时间
  10. switch能使用的数据类型有6种