在任何屏幕视频显示系统或字符生成器中,希望在更改显示信息时提供平滑过渡。显示时间和日期的应用程序需要在帧之间更新,以获得明确的记录。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是一款非常通用、灵活的屏幕显示发生器。用户可以利用本文中包含的提示和技术来实现最佳更新率和由此产生的流畅和专业的图形。
审核编辑:郭婷
全部0条评论
快来发表一下你的评论吧 !