基于FPGA的系统通过合成两条视频流来提供3D视频
always @(posedge clk_in) /* counter */
if ((cnt_reset) || (reset))
cnt <= 0;
else if (cnt_en)
cnt <= cnt + 1;
endmodule
从两个对齐视频流生成3D视频
一旦像素、行和帧数据都真正同步,FPGA可以将视频数据转换成3D视频流,如图13所示。
图13 用于实现3D格式的简化架构
输入数据由共用时钟读入存储器。同步时序分析仪检查输入的同步信号,并抽取视频时序,包括水平前后沿长度、垂直前后 沿、水平和垂直同步长度、水平有效行长、垂直有效行数和同步信号极化。将该信息与当前水平和垂直像素位置一起传给同步时序再发生器,这样可以生成经修改的 时序,以便支持所需3D视频结构。新生成的时序应延迟,以确保FIFO含有所需数据量。
并排3D视频
对存储器要求最低的架构是并排格式,只需要一个两行缓冲器(FIFO)即可存储来自两个视频源的行内容。并排格式的宽度应为原始输入 模式的两倍。为此,应使用一个双倍时钟来为拥有双倍水平行长度的再生同步时序提供时钟。用于为后端提供时钟的双倍时钟将以双倍速率清空第一个FIFO和第 二个FIFO,这样即可并排显示图像,如图14所示。并排图像如图15所示。
图14 使用简单的FPGA行缓冲器来并排合并两幅图像
图15 视频时序下的并排576p图像
结论
ADI公司的解码器和HDMI产品以及简单的后处理技术可以打造出真正的立体3D视频,并为其传输提供条件。如本文所示,用简单的数 字模块,无需使用昂贵的存储器,即可实现3D视频。这种系统可用于需要3D视觉的任何类型的系统中,从简单的摄像机,到基于ADSP-BF609 DSP的可以跟踪物体及其距离的专业系统。
作者简介