0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

优化OSD视频图形生成器上的图形更新速率

星星科技指导员 来源:ADI 作者:ADI 2023-02-25 14:56 次阅读

在任何屏幕视频显示系统或字符生成器中,希望在更改显示信息时提供平滑过渡。显示时间和日期的应用程序需要在帧之间更新,以获得明确的记录。MAX4455任意图形屏幕显示发生器能够实现这些目标,但设计人员需要考虑编程多个像素时可能发生的大量数据传输。本文提供确保基于MAX4455的OSD系统具有最佳图形更新速率的方法。

背景

基于MAX4455的显示系统的数字部分由微控制器(主机处理器)、SDRAM存储器和MAX4455组成,MAX1用作主机和存储器之间的接口。如图 <> 所示。

poYBAGP5sSSACc5-AAAUBadS3HI393.gif

图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 个场(单个视频帧)中发生的单个图形更改通常无法察觉。另一种说法是,人眼-脑组合通常无法感知比一个视频帧的时间段短的非重复事件。

pYYBAGP5sSSADlyKAAA3eLnbE-I986.gif

表 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 速度。

poYBAGP5sSWAdrCxAAAgpzpPsIE910.gif

图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

    文章

    5342

    浏览量

    120325
  • 存储器
    +关注

    关注

    38

    文章

    7490

    浏览量

    163818
  • 发生器
    +关注

    关注

    4

    文章

    1368

    浏览量

    61694
收藏 人收藏

    评论

    相关推荐

    最近做了个【51单片机积木式图形化中文编程软件/c语言代码生成器/电路仿真】

    最近做了个【51单片机积木式图形化中文编程软件/c语言代码生成器/电路仿真】,适合入门学习51单片机,也适合进阶者自动生成c代码框架模板,支持电路基本仿真和51单片机仿真,采用c#编写,软件试用下载
    发表于 08-08 19:59

    YIE002-STM32的随机数生成器构建

    font color=#ff5555 size=2>YIE002开发探索之随机数生成器1 随机数生成器构建2 YIE002-STM32的随机数生成器编程2.1 随机数生成器的Cube
    发表于 01-17 07:40

    python生成器

    + 1yield index raise StopIteration在没有元素可返回时,我最后抛出了 StopIteration 异常,这是为了满足生成器的协议。实际,如果你不手动抛出
    发表于 02-24 15:56

    STM32h747i-disco板无法添加touchGFX生成器怎么办?

    创建项目时,我无法添加 touchGFX 生成器,并且在版本 4.16 的发行说明中它说:“TouchGFX 生成器以前可用于具有双核 MCU 的项目尽管尚未支持 H747* 和 H745*。”我还可以获取 touch GFX 软件使用的项目来
    发表于 12-28 08:33

    pim卡资料生成器

    pim卡资料生成器
    发表于 11-22 23:23 6次下载

    自制酸奶生成器

    自制酸奶生成器
    发表于 04-23 11:48 935次阅读
    自制酸奶<b class='flag-5'>生成器</b>

    代码生成器的应用

    jeesite框架代码生成器,可以很方便的生成代码,挺不错的。
    发表于 01-14 15:19 0次下载

    STM32库函数代码自动生成器正式版

    STM32库函数代码自动生成器正式版 STM32库函数代码自动生成器正式版
    发表于 07-25 18:52 0次下载

    如何使用Synergy项目生成器创建新的Synergy项目?

    Synergy ISDE 视频教程-使用Synergy项目生成器创建和构建新的Synergy项目
    的头像 发表于 07-20 01:25 3148次阅读

    AN-113:精密坡道生成器

    AN-113:精密坡道生成器
    发表于 05-16 12:04 6次下载
    AN-113:精密坡道<b class='flag-5'>生成器</b>

    YIE002开发探索10-随机数生成器

    生成器1 随机数生成器构建2 YIE002-STM32的随机数生成器编程2.1 随机数生成器的Cube MX图形配置2.2 编写应用代码1)
    发表于 01-17 13:06 2次下载
    YIE002开发探索10-随机数<b class='flag-5'>生成器</b>

    python生成器是什么

    python生成器 1. 什么是生成器生成器(英文名 Generator ),是一个可以像迭代器那样使用for循环来获取元素的函数。 生成器的出现(Python 2.2 +),实现
    的头像 发表于 02-24 15:53 3663次阅读

    Arduino赞美生成器

    电子发烧友网站提供《Arduino赞美生成器.zip》资料免费下载
    发表于 11-09 14:22 1次下载
    Arduino赞美<b class='flag-5'>生成器</b>

    通用RFID生成器

    通用RFID生成器资料分享
    发表于 02-10 15:35 1次下载

    【虹科】为什么需要网络流量生成器

    什么是网络流量生成器,为什么我需要一个?网络流量生成器是一种将流量馈送到网络以测试和优化网络设备、协议和拓扑性能的工具。使用流量生成器,可以选择要在实验室中测试的特定流量类型。通过控制
    的头像 发表于 03-11 10:09 1102次阅读
    【虹科】为什么需要网络流量<b class='flag-5'>生成器</b>?