掌桥专利:专业的专利平台
掌桥专利
首页

OSD显示方法、装置、系统、电子设备及存储介质

文献发布时间:2023-06-19 16:08:01



技术领域

本发明实施例涉及OSD显示技术领域,特别涉及一种OSD显示方法、装置、系统、电子设备及存储介质。

背景技术

OSD(on-screen display,屏幕菜单式调节方式)显示技术响应用户操作指令进行图像或视频显示,为提高用户体验,响应时间应尽可能短。但实际应用中,为提高响应速度,在显示资源需求多的情况下,需占用更大的高速存储器或者OSD显示缓存,这会增加功耗与硬件成本。

因此,为平衡实时OSD显示的需求与生产成本,需提供一种低功耗、低成本的OSD显示方法。

发明内容

针对上述至少一部分不足之处,本发明实施例提供了一种OSD显示方法、装置、系统、电子设备及存储介质,能够平衡实时OSD显示的需求与生产成本,使用较少的高速OSD显示缓存,低功耗、低成本地实现实时OSD显示。

第一方面,本发明实施例提供了一种OSD显示方法,包括:

获取OSD资源,存入存储器;

根据所述存储器中的所有OSD资源,生成OSD资源索引总表,存入所述存储器;

将所述OSD资源索引总表加载到中转缓存中;所述中转缓存的访问速度大于所述存储器的访问速度,小于OSD显示缓存的访问速度;

基于OSD显示要求,确定当前需求菜单及所有关联菜单所需使用的OSD资源的ID;关联菜单为当前需求菜单通过一次用户操作指令跳转到达的菜单;

基于当前需求菜单及所有关联菜单所需使用的OSD资源的ID和所述OSD资源索引总表,将当前需求菜单及所有关联菜单所需使用的OSD资源无重复地加载到所述中转缓存中;

响应OSD显示指令,将当前需求菜单所需使用的OSD资源加载到所述OSD显示缓存中,通过显示器实现显示。

可选地,所述基于当前需求菜单及所有关联菜单所需使用的OSD资源的ID和所述OSD资源索引总表,将当前需求菜单及所有关联菜单所需使用的OSD资源无重复地加载到所述中转缓存中,包括:

判断当前所述中转缓存内是否加载有OSD资源,是则将所有关联菜单作为目标菜单,否则将当前需求菜单及所有关联菜单均作为目标菜单;

基于各目标菜单所需使用的OSD资源的ID,分别建立各目标菜单对应的资源索引表;

确定是否有目标菜单所需使用的OSD资源未加载在所述中转缓存中,是则根据所述OSD资源索引总表将未加载的相应OSD资源由所述存储器加载到所述中转缓存中;

在目标菜单所需使用的OSD资源均加载到所述中转缓存中后,更新对应的资源索引表,将各目标菜单所需使用的OSD资源在所述中转缓存中的位置指针及对应至所述OSD显示缓存中的地址信息分别写入资源索引表。

可选地,所述将当前需求菜单所需使用的OSD资源加载到所述OSD显示缓存中,包括:

基于建立的资源索引表,以位置指针为源地址指针,地址信息为目的地址,将当前需求菜单对应的OSD资源由所述中转缓存加载到所述OSD显示缓存。

可选地,所述的OSD显示方法还包括:

定期检查当前所述中转缓存中是否存在OSD资源不属于当前需求菜单及所有关联菜单所需使用的OSD资源,是则删除。

第二方面,本发明实施例还提供了一种OSD显示装置,包括:

资源获取模块,用于获取OSD资源,存入存储器;

总表生成模块,用于根据所述存储器中的所有OSD资源,生成OSD资源索引总表,存入所述存储器;

第一加载模块,用于将所述OSD资源索引总表加载到中转缓存中;

菜单确定模块,用于基于OSD显示要求,确定当前需求菜单及所有关联菜单所需使用的OSD资源的ID;关联菜单为当前需求菜单通过一次用户操作指令跳转到达的菜单;

第二加载模块,用于基于当前需求菜单及所有关联菜单所需使用的OSD资源的ID和所述OSD资源索引总表,将当前需求菜单及所有关联菜单所需使用的OSD资源无重复地加载到所述中转缓存中;

第三加载模块,用于响应OSD显示指令,将当前需求菜单所需使用的OSD资源加载到所述OSD显示缓存中,通过显示器实现显示。

可选地,所述第二加载模块用于执行如下操作:

判断当前所述中转缓存内是否加载有OSD资源,是则将所有关联菜单作为目标菜单,否则将当前需求菜单及所有关联菜单均作为目标菜单;

基于各目标菜单所需使用的OSD资源的ID,分别建立各目标菜单对应的资源索引表;

确定是否有目标菜单所需使用的OSD资源未加载在所述中转缓存中,是则根据所述OSD资源索引总表将未加载的相应OSD资源由所述存储器加载到所述中转缓存中;

在目标菜单所需使用的OSD资源均加载到所述中转缓存中后,更新对应的资源索引表,将各目标菜单所需使用的OSD资源在所述中转缓存中的位置指针及对应至所述OSD显示缓存中的地址信息分别写入资源索引表。

可选地,所述第三加载模块用于执行如下操作:

基于建立的资源索引表,以位置指针为源地址指针,地址信息为目的地址,将当前需求菜单对应的OSD资源由所述中转缓存加载到所述OSD显示缓存。

第三方面,本发明实施例还提供了一种OSD显示系统,包括:

存储器、中转缓存、OSD显示缓存、显示器以及如上述任一项所述的OSD显示装置;

其中,所述中转缓存的访问速度大于所述存储器的访问速度,小于OSD显示缓存的访问速度;所述显示器用于显示所述OSD显示缓存内缓存的OSD资源。

第四方面,本发明实施例还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时,实现本说明书任一实施例所述的方法。

第五方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行本说明书任一实施例所述的方法。

本发明实施例提供了一种OSD显示方法、装置、系统、电子设备及存储介质,本发明通过中转缓存预先加载当前需求菜单及所有关联菜单,在低速的存储器和高速的OSD显示缓存之间建立中转的数据通道,当需要显示时,快速将所需使用的OSD资源加载到OSD显示缓存,从而减少显示所需的OSD显示缓存的空间,降低功耗与成本,同时解决OSD显示实时性的问题。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一实施例提供的一种OSD显示方法流程图;

图2是本发明一实施例提供的一种电子设备的硬件架构图;

图3是本发明一实施例提供的一种OSD显示装置结构图;

图4是本发明一实施例提供的一种OSD显示系统示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

如前所述,实际应用中,为提高响应速度,在OSD显示资源需求多的情况下,就需要占用更大的高速存储器或者OSD显示缓存,而高速的存储器或者OSD显示缓存存在功耗高、硬件成本高的问题,且所需空间越大,成本越高。若采用低速的存储器,当OSD显示资源较为复杂,则难以快速将相应的OSD资源从低速存储器加载到高速OSD显示缓存中。目前,除采用更大的OSD显示缓存空间外,还有一种方式是将OSD的资源划分成块并标记频繁使用的块,将频繁使用的块提前加载到高速OSD显示缓存中,然后再混叠到视频图像中,将混叠后的视频输出。但当出现很多低频率OSD资源块时,由于存储器的访问速度慢,也难以实时地完成将所需OSD资源块从低速存储器加载到高速OSD显示缓存。有鉴于此,本发明采用中速的中转缓存(所述中转缓存的访问速度大于低速的存储器的访问速度,小于高速的OSD显示缓存的访问速度)预先加载可能需要的OSD资源,从而减少显示所需用的高速OSD显示缓存的空间,即,使用较少的高速OSD显示缓存空间和低速的存储器,以低成本、低功耗的方式实现实时OSD显示。

下面描述以上构思的具体实现方式。

请参考图1,本发明实施例提供了一种OSD显示方法,该方法包括:

步骤100,获取OSD资源,存入存储器;

步骤102,根据所述存储器中的所有OSD资源,生成OSD资源索引总表,存入所述存储器;

步骤104,将所述OSD资源索引总表加载到中转缓存中;所述中转缓存的访问速度大于所述存储器的访问速度,小于OSD显示缓存的访问速度;

步骤106,基于OSD显示要求,确定当前需求菜单及所有关联菜单所需使用的OSD资源的ID;关联菜单为当前需求菜单通过一次用户操作指令跳转到达的菜单;

步骤108,基于当前需求菜单及所有关联菜单所需使用的OSD资源的ID和所述OSD资源索引总表,将当前需求菜单及所有关联菜单所需使用的OSD资源无重复地加载到所述中转缓存中;

步骤110,响应OSD显示指令,将当前需求菜单所需使用的OSD资源加载到所述OSD显示缓存中,通过显示器实现显示。

本发明提供的OSD显示方法可应用于OSD显示系统,通过中速的中转缓存预先加载当前需求菜单及所有关联菜单所需使用的OSD资源,待收到OSD显示指令后快速反应,进行实时显示。步骤110执行后实现显示,等待新的OSD显示要求,若获取新的OSD显示要求,如接收到用户操作指令,要求显示下一指定的菜单,则返回到步骤106,确定新的当前需求菜单及所有关联菜单,继续预先加载新的当前需求菜单及所有关联菜单。本发明所需的中转缓存的功耗及成本相对较低,可节省实时显示所需的高速OSD显示缓存空间,平衡实时OSD显示的需求与生产成本。

下面描述图1所示的各个步骤的执行方式。

针对步骤100“获取OSD资源,存入存储器”,所有的OSD资源,如图片、文字等,均存放在相对低速的存储器内,存储器的访问速度和存储空间可根据实际需要设置,在此不再进一步限定。低速的存储器成本及功耗相对较低。

针对步骤102“根据所述存储器中的所有OSD资源,生成OSD资源索引总表”,其中OSD资源索引总表用于索引所有OSD资源在所述存储器中的位置,OSD资源索引总表包括OSD资源的ID和OSD资源在所述存储器中的存储地址。

需要说明的是,上述步骤100和步骤102也可以与后续步骤分开进行,即,在执行完步骤102后,间隔一段时间再执行步骤104。

针对步骤104“将所述OSD资源索引总表加载到中转缓存中”,该步骤可在应用该OSD显示方法的OSD显示系统上电时立即执行,也可响应输入的操作指令执行。将OSD资源索引总表加载到访问速度更大的中转缓存也有利用减少响应时间。

针对步骤106“基于OSD显示要求,确定当前需求菜单及所有关联菜单所需使用的OSD资源的ID”,该步骤中的OSD显示要求可来自于OSD显示系统的MCU,对于设置好的OSD显示系统,其中所涉及的每一个菜单及其所需使用的OSD资源都是已知的。OSD显示要求应包括菜单及菜单所需使用的OSD资源的ID。关联菜单与当前需求菜单之间存在关联性,例如包括当前需求菜单的父级菜单、子级菜单和兄弟菜单等。一种常见的实施例中,关联菜单最多为四个:父级菜单、子级菜单和两个兄弟菜单(兄弟菜单1、兄弟菜单2),可分别对应获取用户操作指令的遥控器的上、下、左、右四个控制键。所有关联菜单的集合,即当前需求菜单经历下一次用户操作后可能调用到的菜单的集合,预先加载所有关联菜单所需的OSD资源,当用户操作指令指示切换下一个菜单时,该指定的菜单在关联菜单集合范围内,从而实现快速将所需的OSD资源加载至OSD显示缓存。

针对步骤108“基于当前需求菜单及所有关联菜单所需使用的OSD资源的ID和所述OSD资源索引总表,将当前需求菜单及所有关联菜单所需使用的OSD资源无重复地加载到所述中转缓存中”,该步骤进一步包括:

步骤108-0,判断当前所述中转缓存内是否加载有OSD资源,是则将所有关联菜单作为目标菜单,否则将当前需求菜单及所有关联菜单均作为目标菜单;

步骤108-2,基于各目标菜单所需使用的OSD资源的ID,分别建立各目标菜单对应的资源索引表;

步骤108-4,确定是否有目标菜单所需使用的OSD资源未加载在所述中转缓存中,是则根据所述OSD资源索引总表将未加载的相应OSD资源由所述存储器加载到所述中转缓存中;

步骤108-6,在目标菜单所需使用的OSD资源均加载到所述中转缓存中后,更新对应的资源索引表,将各目标菜单所需使用的OSD资源在所述中转缓存中的位置指针及对应至所述OSD显示缓存中的地址信息分别写入资源索引表中相应位置。

针对上述步骤108-0,若当前所述中转缓存内没有加载有OSD资源,则表明显示系统刚刚上电,当前需求菜单所需的OSD资源也没有加载至所述中转缓存,这就需要将当前需求菜单及所有关联菜单均作为目标菜单;若当前所述中转缓存内已经加载有OSD资源,则表明显示系统已经工作一段时间,当前需求菜单发生变更后,新指定的需求菜单在上一个需求菜单对应的关联菜单集合范围内,也就是说新的当前需求菜单所需使用的OSD资源已经加载至所述中转缓存,因此可将所有关联菜单作为目标菜单,不再考虑当前需求菜单,从而节省处理时间。

针对上述步骤108-2,该步骤对每个目标菜单建立对应的资源索引表,资源索引表包括其对应菜单所需的OSD资源的ID。由于资源索引表与目标菜单是对应的关系,各资源索引表之间所需的OSD资源的ID可以重复。

针对上述步骤108-4“确定是否有目标菜单所需使用的OSD资源未加载在所述中转缓存中”,可采用建立缓存显示资源表的方式实现。基于所述中转缓存中已加载的OSD资源,建立包括所有已加载至所述中转缓存的OSD资源的ID的缓存显示资源表。基于各目标菜单所需使用的OSD资源的ID,在所述缓存显示资源表中进行查找,遍历目标菜单所需使用的OSD资源,即可确定是否有所需使用的OSD资源未加载在所述中转缓存中。不同菜单所需使用的相同OSD资源只加载一次即可,缓存显示资源表内不应存在重复的OSD资源ID。在加载新的OSD资源至所述中转缓存后,也应对应地更新缓存显示资源表。

针对上述步骤108-6,在目标菜单所需使用的OSD资源均加载到所述中转缓存中后,对应各目标菜单所需使用的OSD资源的ID,将OSD资源在所述中转缓存中的位置指针及对应至所述OSD显示缓存中的地址信息写入资源索引表,以便后续根据资源索引表将所述中转缓存中的OSD资源加载至所述OSD显示缓存。

针对步骤110“将当前需求菜单所需使用的OSD资源加载到所述OSD显示缓存中”,进一步包括:

基于建立的、当前需求菜单对应的资源索引表,以位置指针为源地址指针,地址信息为目的地址,将当前需求菜单对应的OSD资源由所述中转缓存加载到所述OSD显示缓存。

进一步地,该OSD显示方法还包括:

步骤112,定期检查当前所述中转缓存中是否存在OSD资源不属于当前需求菜单及所有关联菜单所需使用的OSD资源,是则删除。

通过定期所述中转缓存中存在的、不属于当前需求菜单及所有关联菜单所需使用的OSD资源,能够释放所述中转缓存的空间。

如图2、图3所示,本发明实施例提供了一种OSD显示装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。从硬件层面而言,如图2所示,为本发明实施例提供的一种OSD显示装置所在电子设备的一种硬件架构图,除了图2所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的电子设备通常还可以包括其他硬件,如负责处理报文的转发芯片等等。以软件实现为例,如图3所示,作为一个逻辑意义上的装置,是通过其所在电子设备的CPU将非易失性存储器中对应的计算机程序读取到内存中运行形成的。本实施例提供的一种OSD显示装置,包括:

资源获取模块301,用于获取OSD资源,存入存储器;

总表生成模块302,用于根据所述存储器中的所有OSD资源,生成OSD资源索引总表,存入所述存储器;

第一加载模块303,用于将所述OSD资源索引总表加载到中转缓存中;

菜单确定模块304,用于基于OSD显示要求,确定当前需求菜单及所有关联菜单所需使用的OSD资源的ID;关联菜单为当前需求菜单通过一次用户操作指令跳转到达的菜单;

第二加载模块305,用于基于当前需求菜单及所有关联菜单所需使用的OSD资源的ID和所述OSD资源索引总表,将当前需求菜单及所有关联菜单所需使用的OSD资源无重复地加载到所述中转缓存中;

第三加载模块306,用于响应OSD显示指令,将当前需求菜单所需使用的OSD资源加载到所述OSD显示缓存中,通过显示器实现显示。

在本发明实施例中,资源获取模块301可用于执行上述方法实施例中的步骤100,总表生成模块302可用于执行上述方法实施例中的步骤102,第一加载模块303可用于执行上述方法实施例中的步骤104,菜单确定模块304可用于执行上述方法实施例中的步骤106,第二加载模块305可用于执行上述方法实施例中的步骤108,第三加载模块306可用于执行上述方法实施例中的步骤110。

进一步地,所述第二加载模块305用于执行如下操作:

判断当前所述中转缓存内是否加载有OSD资源,是则将所有关联菜单作为目标菜单,否则将当前需求菜单及所有关联菜单均作为目标菜单;

基于各目标菜单所需使用的OSD资源的ID,分别建立各目标菜单对应的资源索引表;

确定是否有目标菜单所需使用的OSD资源未加载在所述中转缓存中,是则根据所述OSD资源索引总表将未加载的相应OSD资源由所述存储器加载到所述中转缓存中;

在目标菜单所需使用的OSD资源均加载到所述中转缓存中后,更新对应的资源索引表,将各目标菜单所需使用的OSD资源在所述中转缓存中的位置指针及对应至所述OSD显示缓存中的地址信息分别写入资源索引表。

进一步地,所述第三加载模块306用于执行如下操作:

基于建立的资源索引表,以位置指针为源地址指针,地址信息为目的地址,将当前需求菜单对应的OSD资源由所述中转缓存加载到所述OSD显示缓存。

进一步地,该OSD显示装置还包括:

定期清理模块,用于定期检查当前所述中转缓存中是否存在OSD资源不属于当前需求菜单及所有关联菜单所需使用的OSD资源,是则删除。

可以理解的是,本发明实施例示意的结构并不构成对一种OSD显示装置的具体限定。在本发明的另一些实施例中,一种OSD显示装置可以包括比图示更多或者更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件、软件或者软件和硬件的组合来实现。

上述装置内的各模块之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。

如图4所示,本发明实施例还提供了一种OSD显示系统,包括:存储器、中转缓存、OSD显示缓存、显示器以及上述任一项所述的OSD显示装置;其中,所述中转缓存的访问速度大于所述存储器的访问速度,小于OSD显示缓存的访问速度;所述显示器用于显示所述OSD显示缓存内缓存的OSD资源。

进一步地,OSD显示系统中有两路DMA:一路为存储器与中转缓存之间的DMA1通道,一路为中转缓存与OSD显示缓存之间的DMA2通道,用于进行数据传输。

进一步地,OSD显示系统还可包括MCU,所述的OSD显示装置可设于MCU内,即,由MCU实现上述本发明方法实施例的步骤。

本发明实施例还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时,实现本发明任一实施例中的一种OSD显示方法。

本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序在被处理器执行时,使所述处理器执行本发明任一实施例中的一种OSD显示方法。

具体地,可以提供配有存储介质的系统或者装置,在该存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机(或CPU或MPU)读出并执行存储在存储介质中的程序代码。

在这种情况下,从存储介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此程序代码和存储程序代码的存储介质构成了本发明的一部分。

用于提供程序代码的存储介质实施例包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD+RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机上下载程序代码。

此外,应该清楚的是,不仅可以通过执行计算机所读出的程序代码,而且可以通过基于程序代码的指令使计算机上操作的操作系统等来完成部分或者全部的实际操作,从而实现上述实施例中任意一项实施例的功能。

此外,可以理解的是,将由存储介质读出的程序代码写到插入计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展模块中设置的存储器中,随后基于程序代码的指令使安装在扩展板或者扩展模块上的CPU等来执行部分和全部实际操作,从而实现上述实施例中任一实施例的功能。

需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个…”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

技术分类

06120114717199