0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

優(yōu)化OSD視頻圖形生成器上的圖形更新速率

星星科技指導(dǎo)員 ? 來(lái)源:ADI ? 作者:ADI ? 2023-02-25 14:56 ? 次閱讀

在任何屏幕視頻顯示系統(tǒng)或字符生成器中,希望在更改顯示信息時(shí)提供平滑過(guò)渡。顯示時(shí)間和日期的應(yīng)用程序需要在幀之間更新,以獲得明確的記錄。MAX4455任意圖形屏幕顯示發(fā)生器能夠?qū)崿F(xiàn)這些目標(biāo),但設(shè)計(jì)人員需要考慮編程多個(gè)像素時(shí)可能發(fā)生的大量數(shù)據(jù)傳輸。本文提供確保基于MAX4455的OSD系統(tǒng)具有最佳圖形更新速率的方法。

背景

基于MAX4455的顯示系統(tǒng)的數(shù)字部分由微控制器(主機(jī)處理器)、SDRAM存儲(chǔ)器和MAX4455組成,MAX1用作主機(jī)和存儲(chǔ)器之間的接口。如圖 <> 所示。

poYBAGP5sSSACc5-AAAUBadS3HI393.gif

圖1.MAX4455關(guān)鍵接口信號(hào)

要顯示的圖形數(shù)據(jù)包含在 SDRAM 內(nèi)存中。八個(gè)通道的數(shù)據(jù)組織是通過(guò)每個(gè)通道的 512 x 1024 x 4 的邏輯塊進(jìn)行的,每個(gè)通道總共 2Mbits,所有 16 個(gè)通道總共 484Mbits。對(duì)于 NTSC 和 PAL 視頻格式,顯示屏上的可見(jiàn)像素映射到內(nèi)存中的方式不同。對(duì)于NTSC,一維512位中的484位用于表示712條可見(jiàn)視頻水平掃描線(xiàn),另一維中1024位中的512位用于表示每行的總可見(jiàn)水平像素。對(duì)于PAL格式,所有512位都用于表示712條視頻水平掃描線(xiàn),每個(gè)行分辨率具有與NTSC相同的4個(gè)可見(jiàn)水平像素。在這兩種格式中,每個(gè)像素都具有 <> 位分辨率來(lái)表示亮度。

SDRAM存儲(chǔ)器和主機(jī)處理器之間的接口通過(guò)MAX4455。用于存儲(chǔ)器的數(shù)據(jù)首先寫(xiě)入MAX4455。MAX4455反過(guò)來(lái)將這些數(shù)據(jù)寫(xiě)入外部SDRAM。如果通道顯示使能(未消隱),MAX4455從外部SDRAM的適當(dāng)位置讀取數(shù)據(jù),處理數(shù)據(jù),并在OSDKEY上顯示OSDFIL的相應(yīng)電平和相關(guān)時(shí)序,通過(guò)外部快速?gòu)?fù)用器驅(qū)動(dòng)和控制插入。該存儲(chǔ)器讀取序列在視頻信號(hào)的活動(dòng)部分期間連續(xù)工作。由于MAX4455與輸入視頻同步,存儲(chǔ)器讀取周期相對(duì)于主機(jī)處理器時(shí)鐘本質(zhì)上是異步的。

從SDRAM寫(xiě)入和讀取數(shù)據(jù),方法是將地址寫(xiě)入地址寄存器,將數(shù)據(jù)寫(xiě)入數(shù)據(jù)寄存器,然后寫(xiě)入MAX4455的命令寄存器,對(duì)存儲(chǔ)器執(zhí)行寫(xiě)入(或讀?。?。上電時(shí),MAX4455自動(dòng)將零值寫(xiě)入外部存儲(chǔ)器的所有可尋址位置。

主機(jī)控制器和MAX4455之間的接口為并行總線(xiàn),由8條數(shù)據(jù)/地址線(xiàn)(AD0-AD7)組成,具有單獨(dú)的地址/數(shù)據(jù)(ADDR/DATA)、讀(RD)、寫(xiě)(WR)、片選(CS)和就緒/忙(RDY/BSY)控制線(xiàn)。

優(yōu)化圖形更新速率

MAX4455的圖形更新速率受以下因素影響:

圖形的大小。

微控制器 I/O 速度。

使用空白控制功能。

監(jiān)控 RDY/BSY 控制線(xiàn)。

使用自動(dòng)增量、多次寫(xiě)入和共享內(nèi)存功能。

創(chuàng)建圖形的策略。

這些問(wèn)題都會(huì)不同程度地影響MAX4455的圖形更新速率。它們大致按其影響的順序列出。表 1 顯示了不同條件下的不同更新時(shí)間。電子表格中分析的變量包括:圖形大小、處理器 I/O 速度、消隱使用和自動(dòng)增量。從表中您可以看到最快的更新速率是使用最小的圖形、最快的處理器以及使用消隱和自動(dòng)增量實(shí)現(xiàn)的。還顯示了每個(gè)條件的視頻水平線(xiàn)和垂直字段的等效數(shù)量。這對(duì)于確定更新速率的視覺(jué)影響非常有用。在 20 條水平線(xiàn)內(nèi)發(fā)生的變化是不可見(jiàn)的,因?yàn)檫@是垂直消隱間隔的時(shí)間。顯示器上少于 2 個(gè)場(chǎng)(單個(gè)視頻幀)中發(fā)生的單個(gè)圖形更改通常無(wú)法察覺(jué)。另一種說(shuō)法是,人眼-腦組合通常無(wú)法感知比一個(gè)視頻幀的時(shí)間段短的非重復(fù)事件。

pYYBAGP5sSSADlyKAAA3eLnbE-I986.gif

表 1 中的時(shí)間是使用以下假設(shè)計(jì)算得出的。

自動(dòng)增量模式 - 所有通道消
隱 2 字節(jié)狀態(tài) + 每行 6 字節(jié) (QPLH+QPLL+QPHORIZ) + 每四個(gè)像素 6 字節(jié) (QPH+QPL+命令) 單個(gè)地址模式 - 所有通道空白
2 字節(jié)狀態(tài) + 每四個(gè)像素 6 個(gè)字節(jié) (QPLH+QPLL+QPHORIZ) + 每四個(gè)像素 6 個(gè)字節(jié) (QPH+QPL+命令)

注:QPLH、QPLL、QPHORIZ、QPH、QPL、COMMAND是MAX4455的內(nèi)部寄存器,與SDRAM的寫(xiě)入和讀取有關(guān)。

公式和表1中的值不包括檢查RDY/BSY信號(hào)狀態(tài)的時(shí)間,以及處理器準(zhǔn)備數(shù)據(jù)所需的任何計(jì)算時(shí)間。

啟用通道所需的時(shí)間是通過(guò)使用上述公式計(jì)算的,然后將每條掃描線(xiàn)的活動(dòng)視頻時(shí)間相加。

圖 2 中的圖表使用表 1 中的數(shù)據(jù)繪制了執(zhí)行更新的時(shí)間與需要寫(xiě)入內(nèi)存的像素?cái)?shù)的關(guān)系。繪制的數(shù)據(jù)適用于所有通道均空白的單個(gè)地址模式。這三條不同的線(xiàn)代表三種不同的處理器 I/O 速度。

poYBAGP5sSWAdrCxAAAgpzpPsIE910.gif

圖2.MAX4455更新時(shí)間與像素?cái)?shù)的關(guān)系(所有通道均空白時(shí)的獨(dú)立地址模式)。

現(xiàn)在,我們將仔細(xì)研究影響更新速率的每個(gè)問(wèn)題。

圖形的大小

顯然,較大的圖形包含更多的像素,這意味著必須寫(xiě)入更多的數(shù)據(jù)。一個(gè)簡(jiǎn)單的建議是使圖形盡可能小,以實(shí)現(xiàn)最快的更新速率,即在文本顯示的情況下使用較小的字體。圖形大小的增加會(huì)導(dǎo)致像素?cái)?shù)按比例增加。例如:給定圖形的兩個(gè)維度增加 2×?xí)?dǎo)致像素?cái)?shù)增加 4×。

微控制器 I/O 速度

微控制器的速度對(duì)圖形更新速率有直接影響,從表1中可以看出。需要注意的是,關(guān)鍵參數(shù)是與MAX4455通信的I/O端口的速度,而不是處理器時(shí)鐘速度。在許多處理器中,從 I/O 端口寫(xiě)入或讀取需要多個(gè)時(shí)鐘周期。

空白函數(shù)

BLANK 功能由通道狀態(tài)寄存器中的一個(gè)位控制,允許處理器基于每個(gè)通道啟用或禁用 OSD 輸出。當(dāng)單個(gè)通道被禁用(空白)時(shí),OSDFIL和OSDKEY輸出處于非活動(dòng)狀態(tài),但更重要的是,該通道的數(shù)據(jù)讀取被暫停。這將釋放主機(jī)處理器要使用的內(nèi)存訪(fǎng)問(wèn)帶寬。使用 BLANK 函數(shù)可以將更新速率提高大約兩倍。使用 BLANK 功能的一個(gè)關(guān)鍵權(quán)衡是 OSD 顯示屏上可能會(huì)閃爍。當(dāng)通道空白時(shí)間過(guò)長(zhǎng)時(shí),會(huì)發(fā)生這種情況。如果小于單個(gè)幀的消隱時(shí)間是隨機(jī)發(fā)生的,則不明顯。任何重復(fù)的消隱都可能很明顯,并且可能被視為令人反感的閃爍,具體取決于消隱的重復(fù)率。實(shí)現(xiàn)無(wú)感知閃爍的平滑顯示的確切消隱率取決于許多與系統(tǒng)相關(guān)的因素,其中最重要的是人類(lèi)感知。每個(gè)系統(tǒng)設(shè)計(jì)都應(yīng)針對(duì)所需的視覺(jué)性能進(jìn)行評(píng)估和優(yōu)化。

就緒/忙碌輸出

MAX4455的RDY/BSY輸出向處理器發(fā)出信號(hào),表明MAX4455已準(zhǔn)備好接受用于SDRAM存儲(chǔ)器的另一個(gè)地址或數(shù)據(jù)。在此重申此信號(hào)與主機(jī)處理器是異步的,并且無(wú)法預(yù)測(cè)其斷言或取消斷言。使用此輸出的唯一合理方法是主機(jī)連續(xù)監(jiān)視它,通常通過(guò)配置為處理器中斷的 I/O。

RDY/BSY信號(hào)在上電時(shí)初始置位,即使MAX4455連續(xù)從存儲(chǔ)器中讀取數(shù)據(jù)。主機(jī)將地址和數(shù)據(jù)值寫(xiě)入 QPH、QPL、QPHORIZ、QPLINEH、QPLINEL 寄存器。一旦在命令寄存器中設(shè)置了寫(xiě)位,MAX4455檢查存儲(chǔ)器接口的可用性。如果接口可用,MAX4455將數(shù)值寫(xiě)入存儲(chǔ)器。如果接口不可用,MAX4455取消對(duì)RDY/BSY的置位,然后等待下一個(gè)可用時(shí)隙寫(xiě)入。一旦它寫(xiě)入了值,它就會(huì)斷言RDY/BSY信號(hào)。

自動(dòng)增量功能、多次寫(xiě)入功能和共享內(nèi)存功能

自動(dòng)遞增功能由通道狀態(tài)寄存器中的單個(gè)位控制,當(dāng)順序位置寫(xiě)入存儲(chǔ)器時(shí),使用該功能,該存儲(chǔ)器表示顯示器上的水平線(xiàn)或垂直線(xiàn)。當(dāng)設(shè)置通道狀態(tài)中的VINC位時(shí),垂直地址在每次讀取或?qū)懭氩僮骱笞詣?dòng)遞增。類(lèi)似地,當(dāng)設(shè)置通道狀態(tài)寄存器中的HIMC位時(shí);每次讀取或?qū)懭氩僮骱?,水平地址?huì)自動(dòng)遞增到下一個(gè)四像素位置。通過(guò)這種方式,可以連續(xù)寫(xiě)入數(shù)據(jù),而不必寫(xiě)入相應(yīng)的地址,從而提高更新速率。

由 MWRITE 命令寄存器控制的多寫(xiě)入功能可用于在同一位置的兩個(gè)或多個(gè)通道上顯示完全相同圖形的特殊情況。通過(guò)在MWRITE寄存器中設(shè)置適當(dāng)?shù)奈粊?lái)選擇應(yīng)接收相同數(shù)據(jù)的通道。設(shè)置這些位后,MAX4455通過(guò)主機(jī)處理器的單個(gè)寫(xiě)入命令,自動(dòng)將相同的數(shù)據(jù)寫(xiě)入所選通道的相應(yīng)存儲(chǔ)器位置。與單獨(dú)寫(xiě)入每個(gè)通道相比,使用多寫(xiě)入命令將提高更新速率,并減輕處理器的負(fù)擔(dān)。

由一組寄存器控制的共享存儲(chǔ)器功能也可用于在多個(gè)通道上顯示相同數(shù)據(jù)的特殊情況。通過(guò)指定應(yīng)與多達(dá)三個(gè)其他指定通道共享的一個(gè)通道部分的開(kāi)始和結(jié)束行,必須更新的像素?cái)?shù)可以減少四倍。偶數(shù)編號(hào)通道可以與偶數(shù)編號(hào)通道共享,奇數(shù)編號(hào)通道可以與奇數(shù)編號(hào)通道共享。此功能的限制是必須共享整行,而不是單個(gè)像素。在極端情況下,可以在四個(gè)唯一的通道對(duì)之間共享信息,或者在所有八個(gè)通道上共享相同的信息。

更改圖形的策略

大多數(shù)圖形圖像具有一定程度的空間冗余或至少是重復(fù)出現(xiàn)的模式。通過(guò)仔細(xì)制作圖形的繪制順序,可以減少一次必須更改的像素總量。以占據(jù)整個(gè)屏幕的純色背景菜單為例。首先利用自動(dòng)增量功能填充整個(gè)背景,然后單獨(dú)更改與菜單項(xiàng)相關(guān)的像素會(huì)更有效。

除了自動(dòng)增量之外,軟件還可以利用MAX4455寄存器內(nèi)容的靜態(tài)特性。首先將地址和數(shù)據(jù)寫(xiě)入MAX4455的寄存器,將數(shù)據(jù)寫(xiě)入SDRAM存儲(chǔ)器。軟件例程可以利用這些寄存器中的數(shù)據(jù)是靜態(tài)的這一事實(shí),因?yàn)榻o定寄存器中的數(shù)據(jù)在用戶(hù)將新數(shù)據(jù)寫(xiě)入該寄存器之前不會(huì)更改。如果一系列像素的數(shù)據(jù)沒(méi)有變化,則在需要更改亮度之前不必再次寫(xiě)入。

顯示文本字符串時(shí)可以進(jìn)行另一項(xiàng)改進(jìn)。以時(shí)間戳的簡(jiǎn)單示例為例。如果選擇表示數(shù)字的字體為等寬字體,而不是比例字體,則可以在不更改整個(gè)文本字符串的情況下更新單個(gè)字符。

總結(jié)

MAX4455是一款非常通用、靈活的屏幕顯示發(fā)生器。用戶(hù)可以利用本文中包含的提示和技術(shù)來(lái)實(shí)現(xiàn)最佳更新率和由此產(chǎn)生的流暢和專(zhuān)業(yè)的圖形。

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5275

    瀏覽量

    119689
  • 存儲(chǔ)器
    +關(guān)注

    關(guān)注

    38

    文章

    7408

    瀏覽量

    163434
  • 發(fā)生器
    +關(guān)注

    關(guān)注

    4

    文章

    1356

    瀏覽量

    61580
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    最近做了個(gè)【51單片機(jī)積木式圖形化中文編程軟件/c語(yǔ)言代碼生成器/電路仿真】

    最近做了個(gè)【51單片機(jī)積木式圖形化中文編程軟件/c語(yǔ)言代碼生成器/電路仿真】,適合入門(mén)學(xué)習(xí)51單片機(jī),也適合進(jìn)階者自動(dòng)生成c代碼框架模板,支持電路基本仿真和51單片機(jī)仿真,采用c#編寫(xiě),軟件試用下載
    發(fā)表于 08-08 19:59

    YIE002-STM32的隨機(jī)數(shù)生成器構(gòu)建

    font color=#ff5555 size=2>YIE002開(kāi)發(fā)探索之隨機(jī)數(shù)生成器1 隨機(jī)數(shù)生成器構(gòu)建2 YIE002-STM32的隨機(jī)數(shù)生成器編程2.1 隨機(jī)數(shù)生成器的Cube
    發(fā)表于 01-17 07:40

    python生成器

    + 1yield index raise StopIteration在沒(méi)有元素可返回時(shí),我最后拋出了 StopIteration 異常,這是為了滿(mǎn)足生成器的協(xié)議。實(shí)際,如果你不手動(dòng)拋出
    發(fā)表于 02-24 15:56

    STM32h747i-disco板無(wú)法添加touchGFX生成器怎么辦?

    創(chuàng)建項(xiàng)目時(shí),我無(wú)法添加 touchGFX 生成器,并且在版本 4.16 的發(fā)行說(shuō)明中它說(shuō):“TouchGFX 生成器以前可用于具有雙核 MCU 的項(xiàng)目盡管尚未支持 H747* 和 H745*。”我還可以獲取 touch GFX 軟件使用的項(xiàng)目來(lái)
    發(fā)表于 12-28 08:33

    pim卡資料生成器

    pim卡資料生成器
    發(fā)表于 11-22 23:23 ?6次下載

    自制酸奶生成器

    自制酸奶生成器
    發(fā)表于 04-23 11:48 ?920次閱讀
    自制酸奶<b class='flag-5'>生成器</b>

    代碼生成器的應(yīng)用

    jeesite框架代碼生成器,可以很方便的生成代碼,挺不錯(cuò)的。
    發(fā)表于 01-14 15:19 ?0次下載

    STM32庫(kù)函數(shù)代碼自動(dòng)生成器正式版

    STM32庫(kù)函數(shù)代碼自動(dòng)生成器正式版 STM32庫(kù)函數(shù)代碼自動(dòng)生成器正式版
    發(fā)表于 07-25 18:52 ?0次下載

    如何使用Synergy項(xiàng)目生成器創(chuàng)建新的Synergy項(xiàng)目?

    Synergy ISDE 視頻教程-使用Synergy項(xiàng)目生成器創(chuàng)建和構(gòu)建新的Synergy項(xiàng)目
    的頭像 發(fā)表于 07-20 01:25 ?3093次閱讀

    AN-113:精密坡道生成器

    AN-113:精密坡道生成器
    發(fā)表于 05-16 12:04 ?6次下載
    AN-113:精密坡道<b class='flag-5'>生成器</b>

    YIE002開(kāi)發(fā)探索10-隨機(jī)數(shù)生成器

    生成器1 隨機(jī)數(shù)生成器構(gòu)建2 YIE002-STM32的隨機(jī)數(shù)生成器編程2.1 隨機(jī)數(shù)生成器的Cube MX圖形配置2.2 編寫(xiě)應(yīng)用代碼1)
    發(fā)表于 01-17 13:06 ?2次下載
    YIE002開(kāi)發(fā)探索10-隨機(jī)數(shù)<b class='flag-5'>生成器</b>

    python生成器是什么

    python生成器 1. 什么是生成器? 生成器(英文名 Generator ),是一個(gè)可以像迭代器那樣使用for循環(huán)來(lái)獲取元素的函數(shù)。 生成器的出現(xiàn)(Python 2.2 +),實(shí)現(xiàn)
    的頭像 發(fā)表于 02-24 15:53 ?3548次閱讀

    Arduino贊美生成器

    電子發(fā)燒友網(wǎng)站提供《Arduino贊美生成器.zip》資料免費(fèi)下載
    發(fā)表于 11-09 14:22 ?1次下載
    Arduino贊美<b class='flag-5'>生成器</b>

    通用RFID生成器

    通用RFID生成器資料分享
    發(fā)表于 02-10 15:35 ?1次下載

    【虹科】為什么需要網(wǎng)絡(luò)流量生成器?

    什么是網(wǎng)絡(luò)流量生成器,為什么我需要一個(gè)?網(wǎng)絡(luò)流量生成器是一種將流量饋送到網(wǎng)絡(luò)以測(cè)試和優(yōu)化網(wǎng)絡(luò)設(shè)備、協(xié)議和拓?fù)湫阅艿墓ぞ?。使用流?b class='flag-5'>生成器,可以選擇要在實(shí)驗(yàn)室中測(cè)試的特定流量類(lèi)型。通過(guò)控制
    的頭像 發(fā)表于 03-11 10:09 ?1013次閱讀
    【虹科】為什么需要網(wǎng)絡(luò)流量<b class='flag-5'>生成器</b>?