隨著信息化技術的提高,人們對于視覺欣賞的要求越來越高。“視覺沖擊力”成為人們評判顯示性能的一個標準。視覺沖擊力不僅要求畫面尺寸超大,最主要的還要要求畫面顯示清晰,包括圖片與文字。為了滿足這種訴求,本文以京微雅格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的高清視頻傳輸。
此文僅作拋磚引玉,實際問題還得實際分析,如果能對大家有一定借鑒,那將是莫大的榮幸。
作者:京微雅格系統應用工程師 楊雪峰
評論
查看更多