欢迎光临小豌豆知识网!
当前位置:首页 > 电学技术 > 电通讯技术> 一种图像显示方法、终端、电子设备及存储介质独创技术43373字

一种图像显示方法、终端、电子设备及存储介质

2021-02-01 08:34:11

一种图像显示方法、终端、电子设备及存储介质

  技术领域

  本申请涉及图像处理技术领域,特别是涉及一种图像显示方法、终端、电子设备及存储介质。

  背景技术

  随着视联网技术的飞速发展,视联网终端为用户提供的功能越来越丰富,例如视联网电视功能,视联网终端与图像显示设备连接,控制图像显示设备显示相应节目的图像信息,以满足用户的节目观看需求。视联网终端自带图像显示层功能,可提供显示界面,用于显示浏览器网页,图像显示层是软件层面的概念,对应的硬设是图像显示设备,即:视联网终端将图像数据刷新到图像显示层后,图像显示设备上显示相应画面。

  在相关技术中,视联网终端在控制图像显示设备显示图像信息时,通过浏览器直接将从网络中获得的待显示图像数据填充到图像显示层的内存中。然而,针对一些超高清终端,存在显示超高清图像的需求,例如响应于用户的请求播放4K(4K分辨率)视频等。对于4K视频,要求图像显示层显示的每一帧图像的分辨率达到4K大小,而一帧图像如果分辨率越大,数据量也越大,如果浏览器直接将4K的图像数据填充到4K的图像显示层内存中,由于直接填充的图像数据量太大,浏览器性能有限,刷新缓慢,导致图像显示设备显示图像存在延迟现象,进而影响用户的观看体验。

  发明内容

  鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的图像显示方法、终端、电子设备及存储介质。

  本申请实施例第一方面提供了一种图像显示方法,应用于终端,所述终端与图像显示设备连接,所述方法包括:

  通过第一进程获取待显示的图像数据;

  通过第二进程,按照预设加速策略将所述待显示的图像数据发送到图像显示层,以使所述图像显示设备根据所述图像显示层的图像数据进行图像显示,所述第二进程不同于所述第一进程,所述预设加速策略用于加快对所述待显示的图像数据的处理速度。

  可选地,通过第一进程获取待显示的图像数据,包括:

  通过第一进程获取待显示的图像数据,并将所述待显示的图像数据存储到共享内存区域;

  通过第二进程,按照预设加速策略将所述待显示的图像数据发送到图像显示层,包括:

  通过第二进程从所述共享内存区域中读取所述待显示的图像数据,并按照预设加速策略将所述待显示的图像数据发送到图像显示层。

  可选地,按照预设加速策略将所述待显示的图像数据发送到图像显示层,包括:

  在所述待显示的图像数据的分辨率不等于所述图像显示层的分辨率时,按照预设加速策略,将所述待显示的图像数据的分辨率调整至所述图像显示层的分辨率大小;

  按照预设加速策略,将调整后的待显示的图像数据发送到图像显示层。

  可选地,按照预设加速策略,将所述待显示的图像数据的分辨率调整至所述图像显示层的分辨率大小,包括:

  采用图形加速算法将所述待显示的图像数据的分辨率调整至所述图像显示层的分辨率大小;

  按照预设加速策略将所述待显示的图像数据发送到图像显示层,包括:

  采用图形加速算法将所述待显示的图像数据发送到图像显示层。

  可选地,所述共享内存区域同一时刻允许一条进程具有访问权限;将所述待显示的图像数据存储到共享内存区域,包括:

  在所述第一进程具有访问所述共享内存区域的权限时,将所述待显示的图像数据存储到所述共享内存区域;

  通过第二进程从所述共享内存区域中读取所述待显示的图像数据,包括:

  在所述第二进程具有访问所述共享内存区域的权限时,通过第二进程从所述共享内存区域中读取所述待显示的图像数据。

  可选地,所述方法还包括:

  基于信号量机制,创建第一信号量和第二信号量;

  控制所述第一进程和所述第二进程分别对所述第一信号量和所述第二信号量进行PV操作,以控制所述第一进程和所述第二进程访问所述共享内存区域的权限。

  可选地,所述终端安装有浏览器,所述第一进程为运行所述浏览器的进程,所述图像显示层用于存储所述浏览器的图像数据,所述图像显示设备用于根据所述浏览器的图像数据显示浏览器页面;在通过第一进程获取待显示的图像数据之前,所述方法还包括:

  接收遥控设备发送的目标资源的获取请求,所述目标资源的获取请求是所述遥控设备响应于用户对所述浏览器页面的操作生成的;

  通过第一进程获取待显示的图像数据,包括:

  根据所述目标资源,确定待显示的图像数据;

  通过运行所述浏览器的进程获取所述待显示的图像数据。

  本申请实施例第二方面提供了一种终端,与图像显示设备连接,所述终端包括:

  获取模块,用于通过第一进程获取待显示的图像数据;

  发送模块,用于通过第二进程,按照预设加速策略将所述待显示的图像数据发送到图像显示层,以使所述图像显示设备根据所述图像显示层的图像数据进行图像显示,所述第二进程不同于所述第一进程,所述预设加速策略用于加快对所述待显示的图像数据的处理速度。

  可选地,所述获取模块包括:

  第一获取子模块,用于通过第一进程获取待显示的图像数据,并将所述待显示的图像数据存储到共享内存区域;

  所述发送模块包括:

  第一发送子模块,用于通过第二进程从所述共享内存区域中读取所述待显示的图像数据,并按照预设加速策略将所述待显示的图像数据发送到图像显示层。

  可选地,所述发送模块包括:

  调整模块,用于在所述待显示的图像数据的分辨率不等于所述图像显示层的分辨率时,按照预设加速策略,将所述待显示的图像数据的分辨率调整至所述图像显示层的分辨率大小;

  第二发送子模块,用于按照预设加速策略,将调整后的待显示的图像数据发送到图像显示层。

  可选地,所述调整模块包括:

  调整子模块,用于采用图形加速算法将所述待显示的图像数据的分辨率调整至所述图像显示层的分辨率大小;

  所述第二发送子模块包括:

  第三发送子模块,用于采用图形加速算法将所述待显示的图像数据发送到图像显示层。

  可选地,所述共享内存区域同一时刻允许一条进程具有访问权限;所述获取子模块包括:

  存储模块,用于在所述第一进程具有访问所述共享内存区域的权限时,将所述待显示的图像数据存储到所述共享内存区域;

  所述第一发送子模块包括:

  读取模块,用于在所述第二进程具有访问所述共享内存区域的权限时,通过第二进程从所述共享内存区域中读取所述待显示的图像数据。

  可选地,所述终端还包括:

  创建模块,用于基于信号量机制,创建第一信号量和第二信号量;

  控制模块,用于控制所述第一进程和所述第二进程分别对所述第一信号量和所述第二信号量进行PV操作,以控制所述第一进程和所述第二进程访问所述共享内存区域的权限。

  可选地,所述终端安装有浏览器,所述第一进程为运行所述浏览器的进程,所述图像显示层用于存储所述浏览器的图像数据,所述图像显示设备用于根据所述浏览器的图像数据显示浏览器页面;所述方法还包括:

  接收模块,用于接收遥控设备发送的目标资源的获取请求,所述目标资源的获取请求是所述遥控设备响应于用户对所述浏览器页面的操作生成的;

  所述获取模块包括:

  确定子模块,用于根据所述目标资源,确定待显示的图像数据;

  第二获取子模块,用于通过运行所述浏览器的进程获取所述待显示的图像数据。

  本申请实施例第三方面提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行时实现本申请第一方面所述的图像显示方法中的步骤。

  本申请实施例第四方面提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请第一方面所述的图像显示方法中的步骤。

  通过本实施例的图像显示方法,终端首先通过第一进程获取到待显示的图像数据,然后通过不同于第一进程的第二进程将待显示的图像数据快速地存储到图像显示层的内存中,以使图像显示设备根据图像显示层的图像数据进行图像显示。该方法一方面克服了相关技术中浏览器无法实现快速将图像数据存储到图像显示层的问题,通过提升终端的图像数据处理效率,从而加快了图像显示设备的图像显示速度,避免了图像显示设备画面显示延迟甚至卡顿的现象。另一方面,即使用户存在高分辨率图像数据显示需求,终端也能快速地将数据量较大的在高分辨率图像数据存储到图像显示层中,保证图像显示设备的图像显示速度及画面切换的流畅性,能有效增强用户的观看体验。

  附图说明

  为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例的描述中所需要使用的附图作简单地介绍。

  图1A是本申请一实施例示出的一种实施环境示意图;

  图1B是本申请一实施例示出的一种图像显示设备的显示界面示意图;

  图2是本申请一实施例示出的相关技术中的图像显示方法的原理图;

  图3是本申请一实施例示出的图像显示方法的流程图;

  图4是本申请一实施例示出的一种图像显示方法的原理图;

  图5A是本实施例示出的一种图形缩放的原理示意图;

  图5B是本申请一实施例示出的图像数据加速显示的原理示意图;

  图6A是本申请一实施例示出的一种PV操作的原理图;

  图6B是本申请一实施例示出的另一种PV操作的原理图;

  图7A是本申请一实施例示出的一种浏览器页面示意图;

  图7B是本申请一实施例示出的另一种浏览器页面示意图;

  图8是本申请一实施例示出的一种终端的结构框图。

  具体实施方式

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

  图1A是本申请一实施例示出的一种实施环境示意图。图1B是本申请一实施例示出的一种图像显示设备的显示界面示意图。在图1A中,终端与图像显示设备连接,当接收到遥控设备发送的控制命令时,响应该控制命令获取相应的图像数据,并控制图像显示设备对图像数据进行显示,其显示结果可以如图1B所示。

  图1A中的终端可以是嵌入式终端。视频层是嵌入式视频处理平台软件层次的概念。视联网终端在视联网业务中收看网络视频数据并输出到终端连接的图像显示设备,播放视频数据必须基于视频层才能实现。视频层可以设置不同分辨率的输出格式,如4k(3840*2160)、HD1080P(1920*1080)、720P(1280*720)等。图像显示层是嵌入式视频处理平台软件层次的概念。嵌入式终端基于图像显示层可实现图形绘制、字幕刷新等,图像显示层对应固定的内存区域,将图像数据写入到该内存区域中,即可实现图像刷新到该图像显示层。在本申请中,图像显示层的功能主要用于浏览器显示。基于图像显示层显示的浏览器主要用于实现与用户交互,用户对于终端的操作结果均由浏览器显示,用户一般通过遥控设备对终端实现某些操作,浏览器进程根据用户的操作获取最新的图像显示数据,并刷新到图像显示层。同样,图像显示层也可以设置不同分辨率的输出格式。

  在本申请中,由于嵌入式终端的限制,终端的视频层必须与图像显示层保持相同的分辨率,如同为1080P等。针对一些高清平台,例如4K终端,如果终端需要输出4k的高清图像,则对应图像显示层的分辨率也必须设置为4K大小。

  在对本申请的图像显示方法进行详细说明之前,下面首先对相关技术中的图像显示方法进行简单介绍。

  图2是本申请一实施例示出的相关技术中的图像显示方法的原理图。参照图2,终端可以为图1A中所示的终端,终端中安装有浏览器,通过浏览器进程从网络中获得图像数据并存储到图像显示层的内存中,进而实现图像显示设备对图像数据的画面显示,例如显示的画面可以如图1B所示。

  然而,针对一些超高清终端,存在显示超高清图像的需求,例如响应于用户的请求播放4K视频等。以播放4K视频为例,4K视频要求图像显示层显示的每一帧图像的分辨率也达到4K大小。而图像的分辨率与数据量成正比,一帧图像分辨率越大,数据量也越大。例如,一帧分辨率为720P的图像的数据量为3.5M,而一帧分辨率为4K的图像的数据量为31.6M。如果浏览器进程直接将分辨率为4K的图像数据填充到分辨率为4K的图像显示层的内存中,由于直接填充的图像数据量过大,浏览器性能有限,填充速度慢,导致图像显示设备显示图像时存在延迟现象,例如可以看到图像显示设备从上至下逐行地刷新图像,极大地影响了用户的观看体验。

  鉴于上述相关技术中存在的问题,本申请提供了一种图像显示方法,该方法应用于图1A中的终端。图3是本申请一实施例示出的图像显示方法的流程图。参照图3,本申请的图像显示方法可以包括以下步骤:

  步骤S31:通过第一进程获取待显示的图像数据。

  在本实施例中,第一进程为图2中的浏览器进程。当终端需要获取待显示的图像数据时,可以通过为自身安装的浏览器创建的浏览器进程获取待显示的图像数据。其中,进程是计算机中具有独立功能的程序,是独立运行的一段计算机指令。

  示例地,当用户在观看图像显示设备显示的电视节目时,如果想要播放目标视频,则可以通过遥控设备向终端发送点播目标视频的命令,终端接收到该命令后,通过浏览器进程从网络中搜索得到目标视频,由于视频是由多帧图像数据组成的,因而目标视频即为待显示的图像数据。

  步骤S32:通过第二进程,按照预设加速策略将所述待显示的图像数据发送到图像显示层,以使所述图像显示设备根据所述图像显示层的图像数据进行图像显示,所述第二进程不同于所述第一进程,所述预设加速策略用于加快对所述待显示的图像数据的处理速度。

  在本实施例中,由于第一进程为浏览器进程,浏览器是第三方应用,终端只能设置其获取的待显示的图像数据的存储位置,无法对其工作原理进行改进。而浏览器由于性能有限,在将图像数据填充到图像显示层时速度较慢,因此,本实施例中终端除创建浏览器进程外,还创建了另一个独立进程,即第二进程,该第二进程可以用于对图像数据进行处理,终端通过第二进程将浏览器进程获取的图像数据存储到图像显示层。

  具体地,终端在通过浏览器进程获取到待显示的图像数据之后,并不直接将待显示的图像数据存储到图像显示层的内存中,而是将待显示的图像数据交付给第二进程,由于第二进程是终端自己创建的进程,因而终端可以设置其工作原理,为其添加一些加速策略,使得第二进程可以按照加速策略,将待显示的图像数据快速得存储到图像显示层的内存中,进而加快图像显示设备显示图像的速度。

  示例地,当用户通过遥控设备控制图像显示设备的显示画面从节目1的画面切换到节目2的画面时,终端首先通过浏览器进程获取到节目2对应的图像数据,然后通过第二进程将节目2对应的图像数据快速得存储到图像显示层中,进而保证节目1到节目2的切换速度,防止切换时出现画面显示不完整,甚至切换卡顿的现象,因而能有效提升画面切换的流畅度,增强用户的节目观看体验。

  通过本实施例的图像显示方法,终端首先通过第一进程获取到待显示的图像数据,然后通过不同于第一进程的第二进程将待显示的图像数据快速地存储到图像显示层的内存中,以使图像显示设备根据图像显示层的图像数据进行图像显示。该方法一方面克服了相关技术中浏览器无法实现快速将图像数据存储到图像显示层的问题,通过提升终端的图像数据处理效率,从而加快了图像显示设备的图像显示速度,避免了图像显示设备画面显示延迟甚至卡顿的现象。另一方面,即使用户存在高分辨率图像数据显示需求,终端也能快速地将数据量较大的在高分辨率图像数据存储到图像显示层中,保证图像显示设备的图像显示速度及画面切换的流畅性,能有效增强用户的观看体验。

  结合以上实施例,在一种实施方式中,本申请还为第一进程和第二进程分配了共享内存区域,该共享内存区域用于存储第一进程获取到的图像数据,且第一进程和第二进程可以对共享内存区域中的图像数据进行操作。

  具体地,上述步骤S31可以包括:

  通过第一进程获取待显示的图像数据,并将所述待显示的图像数据存储到共享内存区域。

  相应地,上述步骤S32可以包括:

  通过第二进程从所述共享内存区域中读取所述待显示的图像数据,并按照预设加速策略将所述待显示的图像数据发送到图像显示层。

  图4是本申请一实施例示出的一种图像显示方法的原理图。在图4中,终端首先在自身创建一个共享内存区域,用于存放浏览器进程获取的图像数据,且浏览器进程和第二进程可以对该共享内存区域中的图像数据进行操作。具体地,浏览器进程负责将图像数据写入到该共享内存区域,第二进程负责按照预设加速策略,读取该共享内存区域中的图像数据,并填充到图像显示层的内存中。

  在本实施例中,终端可以将浏览器进程所获取的图像数据的存储位置设置为该共享内存区域,如此,浏览器进程每次获取到待显示的图像数据之后,不必直接地存储到图像显示层的内存中,同时,也为第二进程对待显示的图像数据的操作提供了便利,保证了本申请的图像显示方法的顺利实施。

  结合以上实施例,在一种实施方式中,本申请还提供了一种将待显示的图像数据发送到图像显示层的具体实现方法。具体地,上述步骤S32可以包括:

  在所述待显示的图像数据的分辨率不等于所述图像显示层的分辨率时,按照预设加速策略,将所述待显示的图像数据的分辨率调整至所述图像显示层的分辨率大小;

  按照预设加速策略,将调整后的待显示的图像数据发送到图像显示层。

  在本实施例中,分辨率为图像的宽高数据,视频流由连读的多帧图像组成,每帧图像由固定宽高的像素点组成,该图像的宽高即为图像分辨率。每个像素点在计算机领域由固定字节数表示,如ARGB8888格式每个像素点由4字节表示,ARGB1555每个像素点由2个字节表示。常见分辨率有CIF(352*288)、D1(720*576)、720P(1280*720)、1080P(1920*1080)、4K(3840*2160)等,本实施例对此不作限制。

  在本实施例中,预设加速策略既可以对图像数据的分辨率进行调整,还可以实现图像数据到图像显示层的快速拷贝。参照图4,当第二进程从共享内存区域中读取的图像数据的分辨率小于图像显示层的分辨率时,第二进程首先对图像数据进行图形缩放,从而将分辨率较小的图像数据缩放为分辨率较大的图像数据,然后再将缩放后的图像数据存储到图像显示层中。

  相应地,由于第二进程具有图形缩放功能,因而第一进程在获取图像数据时,可以获得分辨率较小的图像数据,从而可以实现图像数据到共享内存区域的快速写入,进而缩短了终端响应用户的请求的延时。

  示例地,当用户需要将图像显示设备的显示画面由节目1切换到节目2时,浏览器进程可以优先获取分辨率较小的节目2对应的图像数据,因而可以快速将节目2对应的图像数据写入到共享内存区域,同时第二进程也能快速地读取节目2对应的图像数据并存储到图像显示层中,整体上来讲,缩短了终端响应用户请求节目2的延时。

  在实际实施过程中,第一进程在获取目标图像数据时,如果无法获取到分辨率较小的目标图像数据,可以直接获取分辨率较大的目标图像数据,此时,第二进程依然可以通过预设加速策略中的快速拷贝功能,将分辨率较大的目标图像数据快速拷贝到图像显示层中,相对于相关技术中的直接通过浏览器进程将目标图像数据拷贝到图像显示层的方式而言,仍旧能够保证图像显示设备的图像显示速度及画面切换的流畅性。

  本实施例中,预设加速策略既可以对图像数据的分辨率进行调整,还可以实现图像数据到图像显示层的快速拷贝,这使得第一进程在获取图像数据时,可以获得分辨率较小的图像数据,实现图像数据到共享内存区域的快速写入,进而缩短终端响应用户的请求的延时。

  结合以上实施例,在一种实施方式中,按照预设加速策略,将所述待显示的图像数据的分辨率调整至所述图像显示层的分辨率大小,可以包括:

  采用图形加速算法将所述待显示的图像数据的分辨率调整至所述图像显示层的分辨率大小。

  相应地,按照预设加速策略将所述待显示的图像数据发送到图像显示层,可以包括:

  采用图形加速算法将所述待显示的图像数据发送到图像显示层。

  在本实施例中,图形加速算法可以实现终端对图像数据的快速处理。图形加速算法可以是多种,本实施例对此不作具体限制。例如,一种可选的图形加速算法可以通过海思平台的TDE(Two Dimensional Engine,图形二维加速器)实现,TDE利用硬件为OSD(OnScreen Display,屏幕菜单式调节方式)和GUI(Graphics User Interface,图形用户接口)提供快速的图形绘制功能,主要包括:快速位图搬移、快速色彩填充、快速抗闪搬移、快速位图缩放、画点、画水平/垂直线、位图格式转换、位图alpha叠加、位图按位布尔运算等。因而,基于图形加速算法,第二进程可以将待显示的图像数据快速拷贝到图像显示层。

  在本实施例中,预设加速策略还可以实现不同分辨率的图形的缩放。例如,基于TDE的图形缩放的过程如图5A所示。图5A是本实施例示出的一种图形缩放的原理示意图。在图5A中,可以将3*3的分辨率放大到6*6的分辨率。

  图5B是本申请一实施例示出的图像数据加速显示的原理示意图。在图5B中,第一进程负责将低分辨率的图像数据写入到共享内存区域中,第二进程负责对低分辨率的图像数据进行图形缩放,得到高分辨率的图像数据并加速拷贝到图像显示层中。

  本实施例中,预设加速策略采用图形加速算法,既可以实现对图像数据的分辨率的缩放,还可以实现图像数据到图像显示层的快速拷贝,保证了图像显示设备的图像显示速度及画面切换的流畅性。

  结合以上实施例,在一种实施方式中,所述共享内存区域同一时刻允许一条进程具有访问权限。因此,将所述待显示的图像数据存储到共享内存区域,可以包括:

  在所述第一进程具有访问所述共享内存区域的权限时,将所述待显示的图像数据存储到所述共享内存区域。

  相应地,通过第二进程从所述共享内存区域中读取所述待显示的图像数据,可以包括:

  在所述第二进程具有访问所述共享内存区域的权限时,通过第二进程从所述共享内存区域中读取所述待显示的图像数据。

  在本实施例中,考虑到第一进程和第二进程在对共享内存区域中的图像数据进行操作时可能导致共享内存区域中的图像数据出现错误的情况,因此,终端在创建第一进程和第二进程时会设置其访问共享内存区域的权限,例如,设定第一进程和第二进程对共享内存区域的操作权限为互斥的,如此,第一进程在操作共享内存区域时,第二进程无法对共享内存区域进行操作,第而进程在操作共享内存区域时,第一进程无法对共享内存区域进行操作,从而达到保护共享内存区域的资源的目的。

  在本实施例中,终端可以采取任意方式控制第一进程和第二进程访问共享内存区域的权限,本实施例对此不作具体限制。

  结合以上实施例,在一种实施方式中,本申请还提供了一种控制第一进程和第二进程访问共享内存区域的权限,以实现第一进程和第二进程对共享内存区域的互斥操作的方法,该方法具体包括:

  基于信号量机制,创建第一信号量和第二信号量;

  控制所述第一进程和所述第二进程分别对所述第一信号量和所述第二信号量进行PV操作,以控制所述第一进程和所述第二进程访问所述共享内存区域的权限。

  在本实施例中,信号量主要用于保护共享内存区域中的资源(即:待填充到图像显示层中的图像数据),信号量只支持两种操作,P操作(等待操作)和V操作(发送操作)。P操作用来获取共享内存区域中的资源,V操作用来释放共享内存区域中的资源,P操作和V操作都基于信号量的sv值实现。P(sv)操作即判断sv值是否大于0,若大于0则将sv值执行减一操作,即获取信号量资源,否则执行挂起等待,直到sv值大于0。V(sv)操作即为将sv值加1,使其他挂起进程继续运行。且每个信号量在使用之前需要初始化一个sv值。

  示例地,终端首先创建第一信号量sem0和第二信号量sem1,为第一信号量sem0赋初始值1,为第二信号量sem1赋初始值0,设置第一进程首先对一信号量sem0执行P操作,第二进程首先对第二信号量sem1执行P操作。

  当第一进程需要写入图像数据到共享内存区域时,第一进程判断第一信号量sem0的值1是大于0的,具有对共享内存区域进行操作的权限,则继续对第一信号量sem0执行一次P操作,即减1操作,然后将图像数据写入到共享内存区域,写完之后对第二信号量sem1执行一次V操作,即加1操作,使得第二信号量sem1的值变为1,目的是把下一次访问共享内存区域的权限交给其它进程(此时其它进程为第二进程)。与此同时,当第一进程对第一信号量sem0执行P操作时,第二进程判断第二信号量sem1的值0是不大于0的,不具有对共享内存区域进行操作的权限,那么第二进程无法对第二信号量sem1执行P操作,继续维持等待状态,而当第一进程对第二信号量sem1执行V操作后,sem1的值为1,第二进程判断第二信号量sem1的值1是大于0的,具有对共享内存区域进行操作的权限,则继续对第二信号量sem1执行P操作,然后从共享内存区域中读取图像数据,读取完之后对第一信号量sem0执行一次V操作,目的是把下一次访问共享内存区域的权限交给其它进程(此时其它进程为第一进程)。通过上述方法,即可实现第一进程和第二进程对共享内存区域的互斥操作。

  图6A是本申请一实施例示出的一种PV操作的原理图。图6B是本申请一实施例示出的另一种PV操作的原理图。

  在图6A中,第一进程首先对第一信号量sem0执行一次P操作(即图6A中的P(sem0)),然后将图像数据写入到共享内存区域中,写完之后对第二信号量sem1执行一次V操作(即图6A中的V(sem1))。之后,第二进程对第二信号量sem1执行一次P操作(即图6A中的P(sem1))),然后从共享内存中读取图像数据,读取完之后对第一信号量sem0执行一次V操作(即图6A中的V(sem0)),即:第一进程和第二进程交替对共享内存区域执行操作。

  在图6B中,SV值即为信号量的值,终端预先为第一信号量sem0赋值1,为第二信号量sem0赋值0。第一进程首先判断第一信号量sem0的值为1大于0,继续对第一信号量sem0执行一次P操作(即图6B中的P(sem0)),然后将图像数据写入到共享内存区域中,对应序号1,写完之后对第二信号量sem1执行一次V操作(即图6B中的V(sem1)),对应序号2,然后继续判断第一信号量sem0的值为0不大于0,对应序号3,因而第一进程无法继续对第一信号量sem0执行P操作,维持在等待状态,等待第二进程执行操作。此时,第二进程首先判断第二信号量sem1的值为1大于0,对第二信号量sem1执行一次P操作(即图6B中的P(sem1)),然后从共享内存区域中读取图像数据,对应序号4,读取完之后对第一信号量sem0执行一次V操作(即图6B中的V(sem0)),对应序号5,然后继续判断第二信号量sem1的值为0不大于0,对应序号6,因而无法继续对第二信号量sem1执行P操作,维持在等待状态,等待第一进程执行操作。

  在本实施例中,终端基于信号量机制的PV操作控制第一进程和第二进程访问共享内存区域的权限,实现第一进程和第二进程对共享内存区域的互斥操作,进而达到了保护共享内存区域中的图像数据的目的,保证了第一进程获取到的图像数据能被第二进程准确地显示到图像显示设备中。

  在一种实施方式中,当本申请的图像显示方法应用于图1所示的环境时,第一进程为运行浏览器的进程,图像显示层用于存储浏览器的图像数据,图像显示设备用于根据浏览器的图像数据显示浏览器页面。在此基础上,在步骤S31之前,本申请的图像显示方法还可以包括:

  接收遥控设备发送的目标资源的获取请求,所述目标资源的获取请求是所述遥控设备响应于用户对所述浏览器页面的操作生成的。

  相应地,步骤S31可以包括:

  根据所述目标资源,确定待显示的图像数据;

  通过运行所述浏览器的进程获取所述待显示的图像数据。

  图7A是本申请一实施例示出的一种浏览器页面示意图。图7B是本申请一实施例示出的另一种浏览器页面示意图。

  终端在启动后,浏览器进程获取待显示的图像数据,并写入到共享内存区域,第二进程从共享内存区域中获取待显示的图像数据并填充到图像显示层,图像显示设备根据图像显示层中的图像数据显示相应画面,例如此时显示的画面如图7A所示,且焦点默认处于第一个菜单项(即“实时观看”)。当用户通过遥控设备按下右键之后,浏览器进程重新获取新的图像数据,第二进程将该新的图像数据存储到图像显示层,以使图像显示设备显示相应画面,此时显示的画面如图7B所示,焦点处于第二个菜单项(即“视频点播”)。

  在上述过程中,当用户通过遥控设备按下右键时,遥控设备向终端发送的目标资源的获取请求为获取第二个菜单项的选中状态,终端确定待显示的图像数据为第二个菜单项被选中时对应的图像数据。

  通过本实施例的图像显示方法,终端首先通过第一进程获取到待显示的图像数据,然后通过不同于第一进程的第二进程将待显示的图像数据快速地存储到图像显示层的内存中,以使图像显示设备根据图像显示层的图像数据进行图像显示。该方法一方面克服了相关技术中浏览器无法实现快速将图像数据存储到图像显示层的问题,通过提升终端的图像数据处理效率,从而加快了图像显示设备的图像显示速度,避免了图像显示设备画面显示延迟甚至卡顿的现象。另一方面,即使用户存在高分辨率图像数据显示需求,终端也能快速地将数据量较大的在高分辨率图像数据存储到图像显示层中,保证图像显示设备的图像显示速度及画面切换的流畅性,能有效增强用户的观看体验。

  需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。

  基于同一发明构思,本申请还提供了一种终端800,如图8所示,终端800与图像显示设备连接。图8是本申请一实施例示出的一种终端的结构框图。参照图8,本申请的终端800可以包括:

  获取模块801,用于通过第一进程获取待显示的图像数据;

  发送模块802,用于通过第二进程,按照预设加速策略将所述待显示的图像数据发送到图像显示层,以使所述图像显示设备根据所述图像显示层的图像数据进行图像显示,所述第二进程不同于所述第一进程,所述预设加速策略用于加快对所述待显示的图像数据的处理速度。

  可选地,所述获取模块801包括:

  第一获取子模块,用于通过第一进程获取待显示的图像数据,并将所述待显示的图像数据存储到共享内存区域;

  所述发送模块802包括:

  第一发送子模块,用于通过第二进程从所述共享内存区域中读取所述待显示的图像数据,并按照预设加速策略将所述待显示的图像数据发送到图像显示层。

  可选地,所述发送模块802包括:

  调整模块,用于在所述待显示的图像数据的分辨率不等于所述图像显示层的分辨率时,按照预设加速策略,将所述待显示的图像数据的分辨率调整至所述图像显示层的分辨率大小;

  第二发送子模块,用于按照预设加速策略,将调整后的待显示的图像数据发送到图像显示层。

  可选地,所述调整模块包括:

  调整子模块,用于采用图形加速算法将所述待显示的图像数据的分辨率调整至所述图像显示层的分辨率大小;

  所述第二发送子模块包括:

  第三发送子模块,用于采用图形加速算法将所述待显示的图像数据发送到图像显示层。

  可选地,所述共享内存区域同一时刻允许一条进程具有访问权限;所述获取子模块包括:

  存储模块,用于在所述第一进程具有访问所述共享内存区域的权限时,将所述待显示的图像数据存储到所述共享内存区域;

  所述第一发送子模块包括:

  读取模块,用于在所述第二进程具有访问所述共享内存区域的权限时,通过第二进程从所述共享内存区域中读取所述待显示的图像数据。

  可选地,所述终端800还包括:

  创建模块,用于基于信号量机制,创建第一信号量和第二信号量;

  控制模块,用于控制所述第一进程和所述第二进程分别对所述第一信号量和所述第二信号量进行PV操作,以控制所述第一进程和所述第二进程访问所述共享内存区域的权限。

  可选地,所述终端安装有浏览器,所述第一进程为运行所述浏览器的进程,所述图像显示层用于存储所述浏览器的图像数据,所述图像显示设备用于根据所述浏览器的图像数据显示浏览器页面;所述终端800还包括:

  接收模块,用于接收遥控设备发送的目标资源的获取请求,所述目标资源的获取请求是所述遥控设备响应于用户对所述浏览器页面的操作生成的;

  所述获取模块801包括:

  确定子模块,用于根据所述目标资源,确定待显示的图像数据;

  第二获取子模块,用于通过运行所述浏览器的进程获取所述待显示的图像数据。

  基于同一发明构思,本申请提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行时实现本申请上述任一实施例所述的图像显示方法中的步骤。

  基于同一发明构思,本申请提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请上述任一实施例所述的图像显示方法中的步骤。

  对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

  本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

  本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

  本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

  这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

  这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

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

  以上对本发明所提供的一种图像显示方法、终端、电子设备及存储介质,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

《一种图像显示方法、终端、电子设备及存储介质.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)