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

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

3天内不再提示

采用二步索引算法实现OSD电路的改进设计

电子设计 来源:郭婷 作者:电子设计 2019-01-15 09:47 次阅读

0 引 言

OSD(on screen display),即在屏显示系统,是实现人机界面交互的基础,在视频处理SOC中作为重要功能模块有着广泛的应用。

基于SOC技术的模块化设计要求各功能模块尽可能小地占用电路资源,以满足芯片系统对资源使用和面积的控制。对于OSD功能模块而言,存储器资源为主要开销。因此,减少存储器资源的使用对降低OSD模块电路资源需求有着重要的意义。

OSD电路中,字符索引算法的选取直接决定了存储器资源的使用情况,因此采用更优化的字符索引算法可以达到降低存储器资源需求量的目的。作者在逐字符索引法的基础上,针对该算法的缺点,提出了二步索引法。在保证OSD功能完整的同时,大大地降低了系统对存储器资源的需求。

1 二步索引算法的原理及特点

1.1 字符索引算法原理

字符索引算法是将OSD菜单中所显示的字符按菜单显示顺序进行编码,并存储于存储器中,在读取字符点阵信息以显示菜单时通过读取编码信息来索引所需字符信息。设菜单中字符尺寸为C1×Ch(bit),菜单共显示m行字符,每行显示n个字符,字符编码Ni×j,并且存储器中一个地址所存储的数据(bit)大于C1。则读取菜单中第i行第j个字符时,首先通过索引得到存储器中相应字符的字符编码Ni×j,索引地址可通过公式(1)得出:

add_mi×j=addr_n0×0+(i-1)n+n-1 (1)

将读取出的字符编码Ni×j转换成相应字符点阵信息在存储器中存储空间的首地址。地址的转换可通过公式(2)计算得到:

addr_di×j=addr_d0×0+Ch×(Ni×j-1) (2)

式中:addr_u0×0和addr_d0×0分别是字符编码存储器和字符点阵信息存储器中首地址指针。根据Ch控制从字符点阵信息存储器中读出地址范围为addr_di×j到addr_di×j+Ch的数据即完成了对菜单中第i行第j个字符的点阵数据信息的读取。

逐字符索引算法下,将空格按字符看待并进行编码,菜单每行固定显示n个字符,字符长度小于n的菜单行由空格来补齐。由于采用定长的存储结构,所以字符索引电路原理简单且易于实现,只需要根据菜单字行符长数n就可以计算出相应行字符的首地址指针。但这种存储结构的缺点也很明显,就是对存储器的使用量较大。在该算法下,可以计算出在OSD所需要的使用的存储器量为:m×n×Ch,如图1(a)所示。存人其中的“空格”(图中编码为“28”)会占用相当一部分的存储器资源。在一些情况中,用于补充空缺而存储的“空格”所占用的存储空间甚至会比字符点阵信息的存储空间还要多,这是对存储器资源极大的浪费。

采用二步索引算法实现OSD电路的改进设计

1.2 二步索引算法原理

如果只存储字符点阵信息而不存储‘空格 i,显然对节省存储器资源将有着很大的帮助。为达到这样的设计目标,在逐字索引法的基础上,通过改进提出了二步索引算法。

设第k幅菜单中显示nk行字符,菜单第i行中显示li个字符。其中,nk存储于寄存器中,li存储在一段地址长度为nk的字符数信息存储器中。在二步索引算法下,通过读取字符数信息存储器中的数据以及根据nk限制读出的li数据个数,可以确定菜单中各行所显示的字符的个数。第k幅菜单中第i行第j个字符的编码信息在存储器中的地址指针可以根据公式(3)确定:

采用二步索引算法实现OSD电路的改进设计

读出字符编码数据Ni×j,仍然通过公式(2)得到相应字符在点阵信息存储器中存储地址段的首地址指针,从而读出全部的字符点阵信息。完整的数据读取操作过程如图2所示。

采用二步索引算法实现OSD电路的改进设计

在二步索引算法中,引入了行显示字符数li和菜单显示字符行数nk2个参数,通过nk首先索引菜单中第i行的显示字符数li,根据li控制索引该行第j个字符编号Ni×j。根据li可以知道每行显示的字符数,所以字符编码信息可以按行顺序紧密的存储,即每行存储的数据采用非定长的方式,如图1(b)所示。与图1(a)所示的逐字索引法存储器结构相比,二步索引法在对存储器资源的节省方面效果是显著的。

2 二步索引法OSD电路结构实现

2.1 字符索引电路实现

如图3所示,相比于逐字索引法的电路实现结构,二步索引法的电路实现结构中增加了字符行寄存器和用于存放行字符数信息的存储器。字符行寄存器中存人nk,根据字符行计数器所计数据与nk比较来控制从行字符数存储器中读出的数据数。读出的行字符数信息li再用以控制显示第i行菜单字符所需从字符编码存储器中读出的字符编码数据数。读出的字符编码Ni×j通过地址生成电路转换成相应字符的点阵信息在字符点阵ROM中存储地址段的首地址,从而在字符点阵ROM中索引出相应字符的点阵数据,如此反复,可实现对全部字符点阵数据的索引。

采用二步索引算法实现OSD电路的改进设计

2.2 数据输出控制与层混合叠加电路实现

从字符点阵ROM中读取出的字符点阵信息经过点阵重组电路的处理后将按字符Cl×Ch顺序的点阵信息转换成按菜单行顺序的格式存入到输出缓存中。输出缓存中数据的存储顺序如图3所示。

输出缓存能够存储整幅菜单的显示信息,以使菜单生成和菜单输出显示2个过程相互独立,从而使得在显示菜单的同时,可进行新菜单内容的读入,保证菜单显示的连贯胜。输出缓存容量大小由包含显示信息最多的一幅菜单决定。

从输出缓存中读出的数据用于控制生成菜单字符层,在层选择电路中与菜单背景层和属性条层进行叠加处理后输出一幅完整的菜单。字符层、菜单背景层和属性条层相互独立,由层混合控制电路控制进行混合叠加处理,再将菜单与屏幕背景层进行叠加输出混合视频信号。层混合叠加电路的实现结构如图4所示。

采用二步索引算法实现OSD电路的改进设计

3 OSD电路的FPGA实现及功能验证

设计在Xilinx公司的ISE6.3软件环境下,使用Verilog HDL硬件描述语言对其电路逻辑进行描述,并以Xilinx公司xc2v1500bg575-4型为核心芯片的FPGA仿真验证平台对其进行硬件实现及功能验证。FPGA验证平台架构如图5所示。

采用二步索引算法实现OSD电路的改进设计

验证平台输入模拟视频信号,经SAA7111A芯片电路A/D采样转变为数字视频信号接入FPGA验证平台。经过视频处理电路去隔行、尺寸缩放等处理的视频信号在图象混合电路中与OSD菜单混合后输出经DS90C38芯片电路转为LVDS(低压差分信号)信号并驱动液晶屏显示结果。

采用二步索引算法实现OSD电路的改进设计

对2种字符索引算法下实现的OSD电路进行验证比较。OSD字符索引电路部分使用到的存储器资源可以分为字符编码存储器、行字符数存储器、字符行寄存器3种。以生成图6中所示菜单为例分析2种算法下OSD字符索引电路对存储器资源的使用情况,将结果列于表1中。

采用二步索引算法实现OSD电路的改进设计

从表中可以看出,以二步索引算法实现的字符索引电路使用了8个bytes的行字符数存储器和1个byte的字符行寄存器,而以逐字索引算法实现的字符索引电路在这2类存储器上的使用量均为0。但是,后者在字符编码存储器的使用上却达到了96 bytes,远远多于前者50 bytes的使用量。从表1中可以看到,前者对存储器资源的总使用量比起后者减少了很大一部分。随着菜单尺寸的增加和显示的字符信息的增加,二次索引算法对存储器资源的节省效果也会更加的显著。

4 结束语

采用模块化设计方法实现的OSD电路,作为视频格式处理芯片的子电路模块,对硬件资源的使用将影响到整块芯片的电路性能。本文针对OSD电路中以存储器为硬件资源的主要开销这个特点,提出了采用二步索引算法实现的一种改进型字符索引结构的OSD电路。引入字符行寄存器和行字符数存储器,通过对行字符数和字符编码的二步索引,从而得到了菜单的显示信息,同时大大地降低了对存储器资源的使用。该算法的硬件结构简单,易于实现,在实现了同样的电路功能的前提下,大大节省了硬件资源的开销。

本文所介绍的基于二步索引算法实现的改进字符索引结构的OSD电路,将作为子模块电路集成于一款视频格式转换多媒体芯片的系统中,为其提供人机交互功能。该系统可应用于汽车电子、视频显示等多媒体处理场合。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 存储器
    +关注

    关注

    38

    文章

    7490

    浏览量

    163818
  • 算法
    +关注

    关注

    23

    文章

    4612

    浏览量

    92871
  • 编码
    +关注

    关注

    6

    文章

    942

    浏览量

    54825
收藏 人收藏

    评论

    相关推荐

    针对硬件实现的h.264视频编码算法改进

    针对硬件实现的h.264视频编码算法改进针对硬件实现的视频编码算法改进上海交通大学图像通信与信息
    发表于 06-25 11:35

    基于改进的CORDIC算法的FFT复乘及其FPGA实现

    /1310381755_b86ffcf3.gif]本文利用定点FFT复乘运算中旋转因子的旋转系数可预先求出的特点,采用改进流水线结构的CORDIC算法,与传统的CORDIC算法的复乘相
    发表于 07-11 21:32

    采用I2C实现OSD显示驱动设计

    的工作量。PXA270处理器具有领先的高性能和低功耗功能,宏芯T128D具有强大的视频处理功能,同时集成了两层OSD处理引擎,两者通过I2C总线连接可以大大提高车载导航设备的多媒体处理功能,本文陈述了在两者基础上通过I2C总线连接实现O
    发表于 06-21 06:15

    【案例分享】改进的图像重组算法及其硬件实现

    。①本文在求E时不用开方倒数的方式,而采用查表的方式,即一个范围内的D值对应一个E值,只要所设的值能达到“D大则E小”的效果便可;②求D时所需的除以21/2的运算可转化成近似移位相加。4.硬件实现算法涉及
    发表于 07-17 04:00

    如何利用二步索引算法改进字符索引结构的OSD电路

    存储器资源的使用情况,因此采用更优化的字符索引算法可以达到降低存储器资源需求量的目的。作者在逐字符索引法的基础上,针对该算法的缺点,提出了
    发表于 08-13 06:39

    OSD算法和SCD算法的作用是什么?

    您好,我用的SEED-DVS8168RDK 的Demo里,在运行的时候看到DSP上主要运行的任务里有两个算法分别是OSD以及SCD算法。此外还有IPC_FRAMS_IN0
    发表于 04-17 09:57

    如何去实现二步索引OSD电路

    二步索引算法的原理及特点是什么?如何去实现二步索引OSD
    发表于 05-06 07:08

    改进进制搜索算法原理是什么?有什么优势?

    改进进制搜索算法原理是什么?改进进制搜索算法有什么优势?
    发表于 05-20 07:12

    二步法制造1730漆包线漆的研究

    把对苯甲酸(pta)直接酯化法生产聚酯切片成熟的二步法工艺路线应用到制造1730漆包线漆上来,即第一先将PTA和元醇酯化成线型双官能团单位
    发表于 06-17 16:28 24次下载

    二步法制1730漆包线的研究

    把对苯甲酸(PTA)直接蘸化法生产聚酯切片成熟的二步法工艺路线应用到制造[730裱包线漆上来.即第一先将PTA 和元醇酯化成线型双官能团单体.第
    发表于 06-18 16:35 11次下载

    实时图像增强算法改进及FPGA实现

    实时图像增强算法改进及FPGA实现,下来看看
    发表于 09-17 07:28 14次下载

    求解时有限元系统方程的改进非线性算法_刘慧娟

    求解时有限元系统方程的改进非线性算法_刘慧娟
    发表于 01-08 13:58 1次下载

    如何使用剪枝优化与索引求交改进Eclat算法

    针对现有Eclat算法中普遍存在的候选集规模大、求交效率低的问题,提出了基于剪枝优化和索引求交的改进Eclat算法。首先根据频繁集的性质采用
    发表于 12-19 11:44 2次下载
    如何使用剪枝优化与<b class='flag-5'>索引</b>求交<b class='flag-5'>改进</b>Eclat<b class='flag-5'>算法</b>

    基于xc2v1500bg575-4型FPGA和二步索引算法实现OSD电路的设计

    OSD(on screen display),即在屏显示系统,是实现人机界面交互的基础,在视频处理SOC中作为重要功能模块有着广泛的应用。
    发表于 10-28 19:08 1464次阅读
    基于xc2v1500bg575-4型FPGA和<b class='flag-5'>二步</b><b class='flag-5'>索引</b><b class='flag-5'>算法</b><b class='flag-5'>实现</b><b class='flag-5'>OSD</b><b class='flag-5'>电路</b>的设计

    索引的底层实现详解

    存储在索引中,同时在索引表中保存指向每个数据行的指针。 B-Tree索引(MySQL使用B+Tree) B-Tree能加快数据的访问速度,因为存储引擎不再需要进行全表扫描来获取数据,数据分布在各个节点之中。 B+Tree
    的头像 发表于 10-09 10:26 750次阅读
    <b class='flag-5'>索引</b>的底层<b class='flag-5'>实现</b>详解