参考:https://www.cnblogs.com/jamesnt/p/3535073.html
为了将一个3840x2160@30的视频裁剪为4路1920x1080@30输出,我使用了Xilinx 的XC7A35T-2FGG484C进行裁剪,用4颗HDMI1.4a Transmitter(sii9022a)输出,FPGA输出bt1120时序给sii9022a输出图像,但最终出来有三个问题:
1.图像底部有一条绿线(绿色怀疑是yuv422的uv值是0)
2.图像列方向有规律的有“竖线”,使用“点纹高频图”很容易看出来
3.图像有噪点
一、先解决图像噪点问题
图像噪点很大程度是因为像素时钟与bt1120数据的建立保持时间不足,可以使用ILA或者示波器测量一下。而输出像素时钟是由时钟芯片ICS307-03产生,FPGA产生视频时序,控制DDR3读取视频数据,然后编码成BT1120输出给sii9022a显示,因为ICS307-03时钟芯片是不支持移相的,考虑使用FPGA内部的PLL进行移相补偿。
另外,原理图设计时有个缺陷:FPGA与sii9022a的bt1120管脚连线的源端没有加入串阻,没法通过修改阻抗来微调信号的建立保持时间。
二、图像列方向有规律的“竖线”
没有排查该问题。
三、图像底部有一条绿线
没有排查该问题,但绿色在yuv422中是0,很可能是bt1120时序问题,譬如最后取多一行值是0的数据输出到bt1120。
总结,这个项目做起来,FPGA的BRAM不太够,使用XC7A100T-2FGG484C我想会更好