在任何屏幕視頻顯示系統或字符生成器中,希望在更改顯示信息時提供平滑過渡。顯示時間和日期的應用程序需要在幀之間更新,以獲得明確的記錄。MAX4455任意圖形屏幕顯示發生器能夠實現這些目標,但設計人員需要考慮編程多個像素時可能發生的大量數據傳輸。本文提供確保基于MAX4455的OSD系統具有最佳圖形更新速率的方法。
背景
基于MAX4455的顯示系統的數字部分由微控制器(主機處理器)、SDRAM存儲器和MAX4455組成,MAX1用作主機和存儲器之間的接口。如圖 <> 所示。
圖1.MAX4455關鍵接口信號
要顯示的圖形數據包含在 SDRAM 內存中。八個通道的數據組織是通過每個通道的 512 x 1024 x 4 的邏輯塊進行的,每個通道總共 2Mbits,所有 16 個通道總共 484Mbits。對于 NTSC 和 PAL 視頻格式,顯示屏上的可見像素映射到內存中的方式不同。對于NTSC,一維512位中的484位用于表示712條可見視頻水平掃描線,另一維中1024位中的512位用于表示每行的總可見水平像素。對于PAL格式,所有512位都用于表示712條視頻水平掃描線,每個行分辨率具有與NTSC相同的4個可見水平像素。在這兩種格式中,每個像素都具有 <> 位分辨率來表示亮度。
SDRAM存儲器和主機處理器之間的接口通過MAX4455。用于存儲器的數據首先寫入MAX4455。MAX4455反過來將這些數據寫入外部SDRAM。如果通道顯示使能(未消隱),MAX4455從外部SDRAM的適當位置讀取數據,處理數據,并在OSDKEY上顯示OSDFIL的相應電平和相關時序,通過外部快速復用器驅動和控制插入。該存儲器讀取序列在視頻信號的活動部分期間連續工作。由于MAX4455與輸入視頻同步,存儲器讀取周期相對于主機處理器時鐘本質上是異步的。
從SDRAM寫入和讀取數據,方法是將地址寫入地址寄存器,將數據寫入數據寄存器,然后寫入MAX4455的命令寄存器,對存儲器執行寫入(或讀取)。上電時,MAX4455自動將零值寫入外部存儲器的所有可尋址位置。
主機控制器和MAX4455之間的接口為并行總線,由8條數據/地址線(AD0-AD7)組成,具有單獨的地址/數據(ADDR/DATA)、讀(RD)、寫(WR)、片選(CS)和就緒/忙(RDY/BSY)控制線。
優化圖形更新速率
MAX4455的圖形更新速率受以下因素影響:
圖形的大小。
微控制器 I/O 速度。
使用空白控制功能。
監控 RDY/BSY 控制線。
使用自動增量、多次寫入和共享內存功能。
創建圖形的策略。
這些問題都會不同程度地影響MAX4455的圖形更新速率。它們大致按其影響的順序列出。表 1 顯示了不同條件下的不同更新時間。電子表格中分析的變量包括:圖形大小、處理器 I/O 速度、消隱使用和自動增量。從表中您可以看到最快的更新速率是使用最小的圖形、最快的處理器以及使用消隱和自動增量實現的。還顯示了每個條件的視頻水平線和垂直字段的等效數量。這對于確定更新速率的視覺影響非常有用。在 20 條水平線內發生的變化是不可見的,因為這是垂直消隱間隔的時間。顯示器上少于 2 個場(單個視頻幀)中發生的單個圖形更改通常無法察覺。另一種說法是,人眼-腦組合通常無法感知比一個視頻幀的時間段短的非重復事件。
表 1 中的時間是使用以下假設計算得出的。
自動增量模式 - 所有通道消
隱 2 字節狀態 + 每行 6 字節 (QPLH+QPLL+QPHORIZ) + 每四個像素 6 字節 (QPH+QPL+命令) 單個地址模式 - 所有通道空白
2 字節狀態 + 每四個像素 6 個字節 (QPLH+QPLL+QPHORIZ) + 每四個像素 6 個字節 (QPH+QPL+命令)
注:QPLH、QPLL、QPHORIZ、QPH、QPL、COMMAND是MAX4455的內部寄存器,與SDRAM的寫入和讀取有關。
公式和表1中的值不包括檢查RDY/BSY信號狀態的時間,以及處理器準備數據所需的任何計算時間。
啟用通道所需的時間是通過使用上述公式計算的,然后將每條掃描線的活動視頻時間相加。
圖 2 中的圖表使用表 1 中的數據繪制了執行更新的時間與需要寫入內存的像素數的關系。繪制的數據適用于所有通道均空白的單個地址模式。這三條不同的線代表三種不同的處理器 I/O 速度。
圖2.MAX4455更新時間與像素數的關系(所有通道均空白時的獨立地址模式)。
現在,我們將仔細研究影響更新速率的每個問題。
圖形的大小
顯然,較大的圖形包含更多的像素,這意味著必須寫入更多的數據。一個簡單的建議是使圖形盡可能小,以實現最快的更新速率,即在文本顯示的情況下使用較小的字體。圖形大小的增加會導致像素數按比例增加。例如:給定圖形的兩個維度增加 2×會導致像素數增加 4×。
微控制器 I/O 速度
微控制器的速度對圖形更新速率有直接影響,從表1中可以看出。需要注意的是,關鍵參數是與MAX4455通信的I/O端口的速度,而不是處理器時鐘速度。在許多處理器中,從 I/O 端口寫入或讀取需要多個時鐘周期。
空白函數
BLANK 功能由通道狀態寄存器中的一個位控制,允許處理器基于每個通道啟用或禁用 OSD 輸出。當單個通道被禁用(空白)時,OSDFIL和OSDKEY輸出處于非活動狀態,但更重要的是,該通道的數據讀取被暫停。這將釋放主機處理器要使用的內存訪問帶寬。使用 BLANK 函數可以將更新速率提高大約兩倍。使用 BLANK 功能的一個關鍵權衡是 OSD 顯示屏上可能會閃爍。當通道空白時間過長時,會發生這種情況。如果小于單個幀的消隱時間是隨機發生的,則不明顯。任何重復的消隱都可能很明顯,并且可能被視為令人反感的閃爍,具體取決于消隱的重復率。實現無感知閃爍的平滑顯示的確切消隱率取決于許多與系統相關的因素,其中最重要的是人類感知。每個系統設計都應針對所需的視覺性能進行評估和優化。
就緒/忙碌輸出
MAX4455的RDY/BSY輸出向處理器發出信號,表明MAX4455已準備好接受用于SDRAM存儲器的另一個地址或數據。在此重申此信號與主機處理器是異步的,并且無法預測其斷言或取消斷言。使用此輸出的唯一合理方法是主機連續監視它,通常通過配置為處理器中斷的 I/O。
RDY/BSY信號在上電時初始置位,即使MAX4455連續從存儲器中讀取數據。主機將地址和數據值寫入 QPH、QPL、QPHORIZ、QPLINEH、QPLINEL 寄存器。一旦在命令寄存器中設置了寫位,MAX4455檢查存儲器接口的可用性。如果接口可用,MAX4455將數值寫入存儲器。如果接口不可用,MAX4455取消對RDY/BSY的置位,然后等待下一個可用時隙寫入。一旦它寫入了值,它就會斷言RDY/BSY信號。
自動增量功能、多次寫入功能和共享內存功能
自動遞增功能由通道狀態寄存器中的單個位控制,當順序位置寫入存儲器時,使用該功能,該存儲器表示顯示器上的水平線或垂直線。當設置通道狀態中的VINC位時,垂直地址在每次讀取或寫入操作后自動遞增。類似地,當設置通道狀態寄存器中的HIMC位時;每次讀取或寫入操作后,水平地址會自動遞增到下一個四像素位置。通過這種方式,可以連續寫入數據,而不必寫入相應的地址,從而提高更新速率。
由 MWRITE 命令寄存器控制的多寫入功能可用于在同一位置的兩個或多個通道上顯示完全相同圖形的特殊情況。通過在MWRITE寄存器中設置適當的位來選擇應接收相同數據的通道。設置這些位后,MAX4455通過主機處理器的單個寫入命令,自動將相同的數據寫入所選通道的相應存儲器位置。與單獨寫入每個通道相比,使用多寫入命令將提高更新速率,并減輕處理器的負擔。
由一組寄存器控制的共享存儲器功能也可用于在多個通道上顯示相同數據的特殊情況。通過指定應與多達三個其他指定通道共享的一個通道部分的開始和結束行,必須更新的像素數可以減少四倍。偶數編號通道可以與偶數編號通道共享,奇數編號通道可以與奇數編號通道共享。此功能的限制是必須共享整行,而不是單個像素。在極端情況下,可以在四個唯一的通道對之間共享信息,或者在所有八個通道上共享相同的信息。
更改圖形的策略
大多數圖形圖像具有一定程度的空間冗余或至少是重復出現的模式。通過仔細制作圖形的繪制順序,可以減少一次必須更改的像素總量。以占據整個屏幕的純色背景菜單為例。首先利用自動增量功能填充整個背景,然后單獨更改與菜單項相關的像素會更有效。
除了自動增量之外,軟件還可以利用MAX4455寄存器內容的靜態特性。首先將地址和數據寫入MAX4455的寄存器,將數據寫入SDRAM存儲器。軟件例程可以利用這些寄存器中的數據是靜態的這一事實,因為給定寄存器中的數據在用戶將新數據寫入該寄存器之前不會更改。如果一系列像素的數據沒有變化,則在需要更改亮度之前不必再次寫入。
顯示文本字符串時可以進行另一項改進。以時間戳的簡單示例為例。如果選擇表示數字的字體為等寬字體,而不是比例字體,則可以在不更改整個文本字符串的情況下更新單個字符。
總結
MAX4455是一款非常通用、靈活的屏幕顯示發生器。用戶可以利用本文中包含的提示和技術來實現最佳更新率和由此產生的流暢和專業的圖形。
審核編輯:郭婷
-
寄存器
+關注
關注
31文章
5317瀏覽量
120013 -
存儲器
+關注
關注
38文章
7452瀏覽量
163608 -
發生器
+關注
關注
4文章
1363瀏覽量
61623
發布評論請先 登錄
相關推薦
評論