查看完整版本: 利用CME-M5实现1080P高清字符叠加的设计要点分析

admin 发表于 2015-4-29 08:04:55

利用CME-M5实现1080P高清字符叠加的设计要点分析

随着信息化技术的提高,人们对于视觉欣赏的要求越来越高。“视觉冲击力”成为人们评判显示性能的一个标准。视觉冲击力不仅要求画面尺寸超大,最主要的还要要求画面显示清晰,包括图片与文字。为了满足这种诉求,本文以京微雅格CME-M5(金山)为例,为您分析如何在HDMI高清信号中叠加字符,并且最终实现高清输出的过程。
       
        如下图所示,不难看出, 就是把一路HDMI高清信号通过HDMI转RGB芯片送到CME-M5后,与外部的字符芯片进行高清叠加后,再通过RGB转HDMI送出来。
       
       
       
        抛开其它的功能,从最最简单By-Pass开始验证, 就是说, 150MHz的24bit RGB进,不作任何处理,直接把150MHz的24 bit RGB送出,如果By-Pass都搞不定,其它功能再调试也是枉然。By-Pass的关键代码如下:
       
       
       
        以列灰阶的验证,是最容易看出问题的。简单补充一下,什么叫灰阶?
       
       
       
       
        灰阶代表了由最暗到最亮之间不同亮度的层次级别。这中间层级越多,所能够呈现的画面效果也就越细腻。以8bit panel为例,能表现2的8次方,等于256个亮度层次,我们就称之为256灰阶。
       
        对应于数字逻辑来说, 就是R/G/B从0~255渐变的过程,分成256等份,递增为1, 叫256灰阶;分成8等份,递增值为32,叫8灰阶。
        假设计是256级的黑白灰屏, R-G-B三色同时由FF变为00,即24根数据线同时电平翻转,这对FPGA芯片的供电、速度要求是最高的, 所以专用测试验证来看,灰阶基本上可以验证视频传输的质量是否稳定可靠, 其它的拿图片混过关的实际上都不算数的。
       
        那好吧, 我们就以256灰阶作为参考图例验证。
       
        按照一般CPLD EPM240的设计, 直通的效果是完美,不用怀疑,已经过广泛的使用。正常的效果如下,没亮线,没噪点。
       
       
       
        而在通过M5-ByPass的显示效果如下所示(几张示例图片),几种颜色的灰阶都出现亮线。
       
       
       
        根据以上可得, 像CPLD那种By-Pass的方式是行不通的。 引起灰阶亮线问题,一般有两个:
        (1)一个是驱动电流不足;
        (2)另一个是IO或时钟速度跟不上,数据没有对齐;
       
        先从第一个解决方案着手,在primace7.2下把默认的HS,VS输出4mA(default)改为8mA,对翻转速度比较快的PCLK改为16mA。而输入全部加拉弱上拉,改了以后仅对黄色灰阶有改善(看不出亮线),其它的并没有改进行。
       
       
       
        进行第二个方案,解决数据对齐的问题。 加入FastIO设置,效果也没有明显示的改善。
       
       
       
        最终考虑,还是用同步时钟把RGB-HS-VS打一拍同步进来试试看, 代码也非常简单,如下所示。
       
       
       
        出来的效果是让人满意的。之前的所有彩色灰阶,显示正常,如下所示。
       
       
       
        准备收工举杯庆祝的时候,发现最后一关仍然没过,那就是该死的256黑白灰阶,还剩下一条亮线了,按照一般应用,都是图片叠加文字,是能混过去的。因为到了这一步好像没什么可以调整了,设计太简单了,也曾想过,那就这样吧,M5的性能也就只能到这里。
       
       
       
        亮线的问题除了跟数据有关,也跟时钟有关,PCLK的电流设置到16mA,带来增加驱动能力的好处,同时也会增大电平翻转的过冲。如下图所示,绿色的方波是我们想要的最佳波形,红色波形却是实际的情况,拿张M5的电路,示波器测试一下即可验证。
       
       
       
        如果能把过冲收拾掉同时能保持16mA的电流,这个信号就是完美的。我们希望是这样,现在还剩下一个看似不重要的参数仍然可以调整,叫做Slew-Rate。看上去都是默认最快的Fastest(default),都已经最快,还是什么可调节呢,我们不是要求最快的吗?
       
       
        由于英文不太好,百度搜索了一下Slew-Rate的意思。
       
        slew rate 就是电压转换速率(Slew Rate),简写为SR,简称压摆率。其定义是在1微秒或者1纳秒等时间里电压升高的幅度,直观上讲就是方波电压由波谷升到波峰所需时间。
        如下图所示。
       
       
       
        也就是说slew-rate是能够影响PCLK方波输出的爬升的时间,slew-rate越快,翻转速度越快,过冲越大,反之爬升的时间越慢,过冲就越少。这跟运算放大器通过调节电容控制转换时间是一致的,slew-rate的调节跟调整电容器是类似的,有电容就有可能吃掉过冲干扰。
       
        分析完毕,在primace的软件设置如下。
       
       
       
        运行结果比想象中的要好,如下所示, 灰阶的亮线也是不见了,非常干净。可以收工,往下一步走了。
       
       
       
       
        对于应用来看, Fastest的Slew-Rate未必如其名,速度是最快的,它可以导致其它问题的产生,适当微调各类参数,有时也会有意想不到的好结果。 当然也证明了CME-M5的IO是有能力实现150MHz的高清视频传输。
       
        此文仅作抛砖引玉,实际问题还得实际分析,如果能对大家有一定借鉴,那将是莫大的荣幸。

李小路 发表于 2020-10-2 15:58:29

谢谢分享!:D
页: [1]
查看完整版本: 利用CME-M5实现1080P高清字符叠加的设计要点分析