一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种图像数据优化装置及方法与流程

2022-02-22 22:26:08 来源:中国专利 TAG:
一种图像数据优化装置及方法与流程

本申请涉及数据处理技术领域,更具体地说,涉及一种图像数据优化装置及方法。

背景技术

近年来,随着新的远程显示系统应用场景的出现,如何满足各种轻量级客户端的接入需求成为远程显示的一个重要问题。远程显示系统Spice中的屏幕内容编码技术很好地解决了这一问题,该技术在获得屏幕内容并对其进行编码和转码后,通过网络将其传至客户端,客户端只进行解码和显示的工作,因此有效降低了客户端的计算压力,增强了客户端的平台独立性从而满足了轻量级客户端的需求。

现有通过屏幕内容编码技术进行远程显示的过程中,当视频或图像到达客户端后,使用技术即运动静止图像(或逐帧)压缩技术(Motion Joint Photographic Experts Group,MJPEG)进行软件解码。该解码过程对客户端计算能力要求较高,当客户端计算能力不足时便会造成解码耗时过大,使得实际播放帧率下降,导致出现视频卡顿的现象。



技术实现要素:

有鉴于此,本申请公开了一种图像数据优化装置及方法,旨在提高对待解码图像数据的解码效率,同时也降低了主机处理器的负载,避免出现视频卡顿的现象。

为了实现上述目的,其公开的技术方案如下:

本申请第一方面公开了一种图像数据优化装置,所述装置包括:

主机处理器,用于发送当前帧待解码图像数据至视频处理单元VPU;

所述VPU,用于通过预设解码优化方式对所述当前帧待解码图像数据进行解码,得到当前帧解码图像;所述预设解码优化方式通过VPU硬件解码函数确定;

所述主机处理器,还用于当需要处理下一帧待解码图像数据或接收到所述VPU发送的中断消息时,通过预设获取方式获取所述当前帧解码图像并输出;所述中断消息用于提示所述当前帧待解码图像数据已完成图像解码操作;所述预设获取方式用于降低所述主机处理器的负载。

优选的,所述VPU具体用于:

将VPU硬件解码函数编译为动态链接库;调用所述动态链接库对所述当前帧待解码图像数据进行解码,得到当前帧解码图像。

优选的,所述主机处理器具体用于:

当需要处理下一帧待解码图像数据或接收到所述VPU发送的中断消息时,从动态共享缓存中获取所述当前帧解码图像;所述当前帧解码图像由所述VPU发送至所述动态共享缓存中。

优选的,在所述主机处理器具体还用于:

通过Host Interface Reg寄存器发送图像处理需求至所述VPU,并接收所述Host Interface Reg寄存器转发所述VPU发送的图像处理需求对应的回复信息。

优选的,在所述主机处理器具体还用于:

执行图像数据处理之外的其他数据处理操作;所述当前帧待解码图像数据由所述主机处理器执行所述图像数据处理时发送。

本申请第二方面公开了一种图像数据优化方法,所述方法包括:

发送当前帧待解码图像数据至视频处理单元VPU,使所述VPU通过预设解码优化方式对所述当前帧待解码图像数据进行解码,得到当前帧解码图像;所述预设解码优化方式通过VPU硬件解码函数确定;

当需要处理下一帧待解码图像数据或接收到所述VPU发送的中断消息时,通过预设获取方式获取所述当前帧解码图像并输出;所述中断消息用于提示所述当前帧待解码图像数据已完成图像解码操作;所述预设获取方式用于降低主机处理器自身的负载。

优选的,所述发送当前帧待解码图像数据至所述VPU,使所述VPU通过预设解码优化方式对所述当前帧待解码图像数据进行解码,得到当前帧解码图像,包括:

发送当前帧待解码图像数据至所述VPU,使所述VPU将VPU硬件解码函数编译为动态链接库;

调用所述动态链接库对所述当前帧待解码图像数据进行解码,得到当前帧解码图像。

优选的,当需要处理下一帧待解码图像数据或接收到所述VPU发送的中断消息时,通过预设获取方式获取所述当前帧解码图像并输出,包括:

当需要处理下一帧待解码图像数据或接收到所述VPU发送的中断消息时,从动态共享缓存中获取所述当前帧解码图像并输出;所述当前帧解码图像由所述VPU发送至所述动态共享缓存中。

优选的,在所述发送当前帧待解码图像数据至视频处理单元VPU,使所述VPU通过预设解码优化方式对所述当前帧待解码图像数据进行解码,得到当前帧解码图像之前,还包括:

通过Host Interface Reg寄存器发送图像处理需求至VPU,并接收所述Host Interface Reg寄存器转发所述VPU发送的图像处理需求对应的回复信息。

优选的,在所述发送当前帧待解码图像数据至视频处理单元VPU,使所述VPU通过预设解码优化方式对所述当前帧待解码图像数据进行解码,得到当前帧解码图像之后,还包括:

执行图像数据处理之外的其他数据处理操作;所述当前帧待解码图像数据在执行所述图像数据处理时发送。

经由上述技术方案可知,本申请公开了一种图像数据优化装置及方法,发送当前帧待解码图像数据至视频处理单元VPU,使VPU通过预设解码优化方式对当前帧待解码图像数据进行解码,得到当前帧解码图像,预设解码优化方式通过VPU硬件解码函数确定,当需要处理下一帧待解码图像数据或接收到VPU发送的中断消息时,通过预设获取方式获取当前帧解码图像并输出;中断消息用于提示当前帧待解码图像数据已完成图像解码操作;预设获取方式用于降低主机处理器的负载。基于上述方案,通过采用预设解码优化方式,即硬件解码的方式对待解码图像数据进行解码,得到解码后的图像数据并输出,通过硬件解码的方式进行解码对VPU的计算能力要求较低,从而提高对待解码图像数据的解码效率,同时也降低了主机处理器的负载,避免出现视频卡顿的现象。

附图说明

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

图1为本申请实施例公开的一种远程显示系统的架构图;

图2为本申请实施例公开的一种图像数据优化装置的结构示意图;

图3为本申请实施例公开的一种图像数据优化方法的流程示意图;

图4为本申请实施例公开的一种电子设备的结构示意图。

具体实施方式

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

在本申请中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

由背景技术可知,现有通过屏幕内容编码技术进行远程显示的过程中,当视频或图像到达客户端后,使用MJPEG进行软件解码。该解码过程对客户端计算能力要求较高,当客户端计算能力不足时便会造成解码耗时过大,使得实际播放帧率下降,导致出现视频卡顿的现象。

为了解决上述问题,本申请实施例公开了一种图像数据优化装置及方法,通过采用预设解码优化方式,即硬件解码的方式对待解码图像数据进行解码,得到解码后的图像数据并输出,提高对待解码图像数据的解码效率,降低主机处理器的负载,避免出现视频卡顿的现象。具体实现方式通过下述实施例进行说明。

以下首先介绍本申请的一种图像数据优化装置及方法所适用的远程显示系统Spice的架构图,具体参考图1所示,该远程显示系统Spice包括视频处理单元(Video Processing Unit,VPU)11、主机处理器12、SDRAM VPU动态缓存区13、主机接口注册表(Host Interface Reg)寄存器14、同步动态随机存取内存(Synchronous Dynamic Random-access Memory,SDRAM)共享(Shared)缓存区15、应用程序编程接口(ApplicationProgramming Interface,API)函数接口16和PKUnity86平台。

具体VPU11、主机处理器12、SDRAM VPU动态缓存区13、Host Interface Reg寄存器14、SDRAM Shared动态共享缓存区15、API函数接口16和PKUnity86平台之间的数据处理过程如下:

主机处理器12通过Host Interface Reg寄存器14发送图像处理需求至VPU11,并接收Host Interface Reg寄存器14转发VPU11发送的图像处理需求对应的回复信息。

其中,Host Interface Reg寄存器14接收主机处理器12通过API函数接口16发送的命令/回复。

SDRAM VPU动态缓存区13为VPU11的内置动态缓存区,SDRAM VPU动态缓存区13用于缓存待解码的图像数据。

主机处理器12发送当前帧待解码图像数据至VPU11。

主机处理器12执行图像数据处理之外的其他数据处理操作;当前帧待解码图像数据由主机处理器12执行图像数据处理时发送。

其中,主机处理器12只需向VPU11提出图像处理需求,然后主机处理器12就能去处理图像数据处理之外的其他数据处理操作。

VPU11通过预设解码优化方式对当前帧待解码图像数据进行解码,得到当前帧解码图像;预设解码优化方式通过VPU11的硬件解码函数确定。

其中,VPU11将VPU硬件解码函数编译为动态链接库;调用动态链接库对当前帧待解码图像数据进行解码,得到当前帧解码图像。解码后的图像可构成对应的视频。

当需要处理下一帧待解码图像数据或接收到VPU11发送的中断消息时,主机处理器12通过预设获取方式获取当前帧解码图像并输出;中断消息用于提示当前帧待解码图像数据已完成图像解码操作;预设获取方式用于降低主机处理器12的负载。

其中,下一帧待解码图像数据即为下一时刻的帧待解码图像数据。

当主机处理器12需要处理下一帧待解码图像数据或接收到VPU11发送的中断消息时,主机处理器12从SDRAM Shared动态共享缓存区15中获取当前帧解码图像;当前帧解码图像由VPU11发送至SDRAM Shared动态共享缓存区15中。

解码后的图像可构成视频,主机处理器12将视频映射在PKUnity86平台上进行展示。

API函数接口16提供主机处理器12的带有参数的主机应用程序调用,API函数接口16可将更新参数后的返回值封装至主机应用程序。

本申请实施例中,通过采用预设解码优化方式,即硬件解码的方式对待解码图像数据进行解码,得到解码后的图像数据并输出,通过硬件解码的方式进行解码对VPU的计算能力要求较低,从而提高对待解码图像数据的解码效率,同时也降低了主机处理器的负载,避免出现视频卡顿的现象。

参考图2所示,为本申请实施例公开的一种图像数据优化装置的结构示意图,该图像数据优化装置主要包括主机处理器201和VPU202。

主机处理器201,用于发送当前帧待解码图像数据至VPU202。

VPU202,用于通过预设解码优化方式对当前帧待解码图像数据进行解码,得到当前帧解码图像;预设解码优化方式通过VPU202的硬件解码函数确定。

主机处理器201,还用于当需要处理下一帧待解码图像数据或接收到VPU发送的中断消息时,通过预设获取方式获取当前帧解码图像并输出;中断消息用于提示当前帧待解码图像数据已完成图像解码操作;预设获取方式用于降低主机处理器的负载。

进一步的,VPU202,具体用于将硬件解码函数编译为动态链接库;调用动态链接库对当前帧待解码图像数据进行解码,得到当前帧解码图像。

进一步的,主机处理器201,具体用于当需要处理下一帧待解码图像数据或接收到VPU202发送的中断消息时,从动态共享缓存中获取当前帧解码图像;当前帧解码图像由VPU202发送至动态共享缓存中。

进一步的,主机处理器201,具体还要用于通过Host Interface Reg寄存器发送图像处理需求至VPU202,并接收Host Interface Reg寄存器转发VPU202发送的图像处理需求对应的回复信息。

进一步的,主机处理器201,具体还用于执行图像数据处理之外的其他数据处理操作;当前帧待解码图像数据由主机处理器201执行图像数据处理时发送。

本申请实施例中,通过采用预设解码优化方式,即硬件解码的方式对待解码图像数据进行解码,得到解码后的图像数据并输出,提高对待解码图像数据的解码效率,降低主机处理器的负载,避免出现视频卡顿的现象。

基于上述实施例图2公开的一种图像数据优化装置,本申请实施例还对应公开了一种图像数据优化方法,该图像数据优化方法应用于主机处理器,如图3所示,该图像数据优化方法主要包括如下步骤:

S301:主机处理器发送当前帧待解码图像数据至视频处理单元VPU,使VPU通过预设解码优化方式对当前帧待解码图像数据进行解码,得到当前帧解码图像;预设解码优化方式通过VPU硬件解码函数确定。

其中,当前帧待解码图像数据即为当前时刻的帧待解码图像数据。

VPU是一个高性能多格式媒体视频硬件模块,VPU能够处理H.264 BP/MP/HP,VC-1SP/MP/AP,MPEG4 SP/ASP,Divx,MPEG-2MP,RV-8/9/10,AVS和JPEG等类型视频的解码和编码。

在VPU中设置SDRAM VPU动态缓存区,SDRAM VPU动态缓存区用于缓存待解码的图像帧数据。

解码是一种用特定方法,把数码还原成它所代表的内容或将电脉冲信号、光信号、无线电波等转换成它所代表的信息、数据等的过程。解码是受传者将接受到的符号或代码还原为信息的过程,与编码过程相对应。

VPU支持全屏1920x1080高清视频的解码及1280x720高清视频的编码。同时,它还能同时并行地处理多个视频片段。由于VPU中大部分硬件模块都最大程度地被不同格式视频在编解码时共享使用,因此使得VPU硬件达到了极低的功耗和门数。

为了方便主机用户使用VPU,VPU提供了一组API,即VPU API。VPU API包括控制API和解码API,控制API包括对VPU基本控制的一系列API函数,例如VPU的初始化函数;VPU通过解码API为当前帧待解码图像数据进行解码。

其中,VPU API为VPU对外提供的API函数接口,供主机应用程序HostApplication调用。

主机应用程序HostApplication包括流媒体播放程序等。

具体主机处理器发送当前帧待解码图像数据至视频处理单元VPU,使VPU通过预设解码优化方式对当前帧待解码图像数据进行解码,得到当前帧解码图像的过程如下:

首先,主机处理器发送当前帧待解码图像数据至VPU,使VPU将VPU硬件解码函数编译为动态链接库。

其中,VPU硬件解码函数采用帧级解码方式,能够极大地降低VPU API操作(控制操作和解码操作)对主机处理器的依赖。

为了方便将VPU硬解码函数融入Spice的代码中,本申请对VPU API和VPU解码流程进行了进一步整理,将其归类为重要函数,并将VPU硬件解码函数编译为动态链接库libvpu.a,具体如表1所示,表1为解码过程的函数构成。

表1

表1中,归类后的函数函数构成即为VPU硬件解码函数。

在Spice或者其他调用libjpeg库的应用中,均可以很方便地利用上述动态链接库libvpu.a和归类后的函数函数,来替换应用中的联合图像专家组(JointPhotographic Experts Group,JPEG)软解码部分,JPEG软解码部分即为开源动态链接库libvpu.a中的函数构成,从而提升应用程序性能。

然后,主机处理器调用动态链接库对当前帧待解码图像数据进行解码,得到当前帧解码图像。

在使用动态链接库libvpu.a时,以Spice为例,首先需要将libvpu.a文件放入其安装时对应的lib文件夹,然后修改Makefile文件在调用的库中加入-lvpu,再将包含所有会被使用函数的头文件放入编译目录,最后在Spice代码中使用归类后的函数函数(VPU硬解码函数)替换掉libjpeg函数即可。

可选的,在主机处理器发送当前帧待解码图像数据至视频处理单元VPU,使VPU通过预设解码优化方式对当前帧待解码图像数据进行解码,得到当前帧解码图像之前,主机处理器通过Host Interface Reg寄存器发送图像处理需求至VPU,并接收Host Interface Reg寄存器转发VPU发送的图像处理需求对应的回复信息。

其中,Host Interface Reg寄存器用于将主机处理器的命令传递给VPU,并将VPU的回复反馈给主机处理器。

S302:当需要处理下一帧待解码图像数据或接收到VPU发送的中断消息时,主机处理器通过预设获取方式获取当前帧解码图像并输出;中断消息用于提示当前帧待解码图像数据已完成图像解码操作;预设获取方式用于降低主机处理器自身的负载。

在S302中,预设获取方式即为共享的方式。共享的方式基于SDRAM Shared动态共享缓存区实现。

SDRAMShared是VPU和主机应用程序共享的动态缓存区,用于向主机应用程序输出VPU解码后的视频帧数据。

当需要处理下一帧待解码图像数据或接收到VPU发送的中断消息时,从动态共享缓存中获取当前帧解码图像并输出;当前帧解码图像由VPU发送至动态共享缓存中。

其中,下一帧待解码图像数据即为下一时刻的帧待解码图像数据。

从SDRAM Shared中(共享的方式)获取当前帧解码图像,这是保证主机处理器在进行解码时达到最小负载的关键。

在主机处理器发送当前帧待解码图像数据至VPU,使VPU将预设函数编译为动态链接库之后,主机处理器执行图像数据处理之外的其他数据处理操作;当前帧待解码图像数据在执行图像数据处理时发送。

当处理当前帧的待解码图像数据时,主机处理器与VPU之间无需进行通信,主机处理器只需向VPU发送图像处理需求,然后主机处理器就能去处理其他数据处理操作,直到主机处理器准备处理下一帧图像或者接收到VPU发来的数据解码完成的中断消息,才会通过SDRAM Shared从VPU获得解码后的图像,这是保证主机处理器在进行解码时达到最小负载的关键。

解码后的图像可构成视频,将视频映射在PKUnity86平台上进行展示。

基于PKUnity86平台,使用VPU硬解码的基本功能后,本发明对不同分辨率图像使用VPU解码和使用libjpeg解码的总耗时进行了对比,对比结果如

表2所示。

表2

表2中,VPU解码时间即为本方案的解码时间,libjpeg解码时间为现有技术的软件解码时间。

从表2中得知,相同的图像分辨率下,VPU的解码时间比现有技术的libjpeg解码时间少,因此,VPU的解码效率比libjpeg软件解码效率高。

优化后的VPU硬件解码速度与libjpeg的软件解码速度相比拥有明显优势,解决了Spice视频映射在PKUnity86平台上的视频顿卡问题,提升了用户体验。

结合PKUnity86平台的特点,对远程显示系统Spice的多媒体映射方案进行了优化,采用VPU硬件解码等手段对MJPEG解码过程进行了优化,解决了目前Spice视频映射中存在的卡顿问题,提升了用户体验。

本申请实施例中,通过采用预设解码优化方式,即硬件解码的方式对待解码图像数据进行解码,得到解码后的图像数据并输出,通过硬件解码的方式进行解码对VPU的计算能力要求较低,从而提高对待解码图像数据的解码效率,同时也降低了主机处理器的负载,避免出现视频卡顿的现象。

本申请实施例还提供了一种存储介质,存储介质包括存储的指令,其中,在指令运行时控制存储介质所在的设备执行上述图像数据优化方法。

本申请实施例还提供了一种电子设备,其结构示意图如图4所示,具体包括存储器401,以及一个或者一个以上的指令402,其中一个或者一个以上指令402存储于存储器401中,且经配置以由一个或者一个以上处理器403执行一个或者一个以上指令402执行上述图像数据优化方法。

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

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于系统类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本申请各实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。

对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献