图像处理方法、设备、显示系统及存储介质
技术领域
本发明涉及图像处理技术领域,特别是涉及图像处理方法、设备、显示系统及存储介质。
背景技术
随着USB总线技术的快速发展,其传输速率已经从原来的USB2.0 480Mbps提高到了现在的USB3.1 10Gbps,正是由于传输速率的提高,USB设备的应用范围从低速的USB鼠标,USB键盘,全速的USB扬声器,USB麦克风,高速的USB摄像头,USB网卡,扩展到现如今的超高速USB扩屏系统,
USB-IF官方针对USB扩屏系统于2011年发布了USB Audio/Video Devices Class规范,其中根据视频图像清晰度需求与USB带宽占用情况,规定了6种图像数据非压缩与压缩标准,它们分别为:FULL,PARTIAL,H264BASEINTRA,H264BASEPRED,H264HiQINTRA,H264HiQPRED。
由于PARTIAL标准既满足了原始图像高清晰度且无损的需求,又在某种程度上,满足了USB带宽占用少的需求,所以被广泛应用。针对于使用PARTIAL标准的USB3.1扩屏设备,图像帧的形成可以由SOC中的CPU内核模块来完成,也可以由SOC中的通用DMA模块完成,但前者占据了大量CPU内核模块的处理带宽,而后者不仅编程复杂,而且同样需要CPU内核模块频繁介入处理工作,所以均很大程度上影响了系统性能。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供图像处理方法、设备、显示系统及存储介质,用于解决现有技术中的问题。
为实现上述目的及其他相关目的,本发明提供一种图像处理方法,应用于一图像处理设备;所述方法包括:记录当前图像帧的帧数据在所述图像处理设备的内存空间中的当前图像帧地址;获取图像变化数据并存储至所述内存空间,并将所述图像变化数据在所述内存空间中的图像变化数据地址写入所述图像处理设备中处理器的源图像数据地址寄存器;将所述当前图像帧地址写入至所述处理器的目标图像数据地址寄存器;在所述处理器的帧形成启动寄存器写入启动信息,以令所述处理器启动一图像帧形成模块来形成所述当前图像帧的下一图像帧,其包括:根据所述源图像数据地址寄存器中的图像变化数据地址获取所述图像变化数据;根据所述目标图像数据地址寄存器中的当前图像帧地址获取所述帧数据;利用所述图像变化数据更新所述帧数据以形成所述下一图像帧。
于本发明的一实施例中,所述的图像处理方法,还包括:在侦测到所述图像形成动作帧完成时,在所述处理器的图像帧形成状态寄存器写入完成信息,以触发中断,以对所述图像帧形成状态寄存器中存储的关于所述下一图像帧形成的错误代码信息进行处理。
于本发明的一实施例中,所述对图像形成动作帧完成侦测的方式,包括:轮询或中断。
于本发明的一实施例中,所述处理器为片上系统芯片,其包括:CPU内核模块及DMA模块;所述图像帧形成模块位于所述处理器中,且独立于所述CPU内核模块及DMA模块以外实现的。
于本发明的一实施例中,所述图像处理设备遵循USB音/视频设备类通信协议。
为实现上述目的及其他相关目的,本发明提供一种图像处理设备,其包括:处理器及存储器;所述处理器提供源图像数据地址寄存器、目标图像数据地址寄存器、及图像帧形成启动寄存器;所述存储器提供内存空间;所述处理器,用于记录当前图像帧的帧数据在所述图像处理设备的内存空间中的当前图像帧地址;获取图像变化数据并存储至所述内存空间,并将所述图像变化数据在所述内存空间中的图像变化数据地址写入所述源图像数据地址寄存器;将所述当前图像帧地址写入至所述处理器的目标图像数据地址寄存器;在所述帧形成启动寄存器写入启动信息,以令所述处理器启动一图像帧形成模块来形成所述当前图像帧的下一图像帧,其包括:根据所述源图像数据地址寄存器中的图像变化数据地址获取所述图像变化数据;根据所述目标图像数据地址寄存器中的当前图像帧地址获取所述帧数据;利用所述图像变化数据更新所述帧数据以形成所述下一图像帧。
于本发明的一实施例中,所述处理器,还用于在侦测到所述图像形成动作帧完成时,在其图像帧形成状态寄存器写入完成信息,以触发中断,以对所述图像帧形成状态寄存器中存储的关于所述下一图像帧形成的错误代码信息进行处理。
于本发明的一实施例中,所述对图像形成动作帧完成侦测的方式,包括:轮询或中断。
于本发明的一实施例中,所述处理器为片上系统芯片,其包括:CPU内核模块及DMA模块;所述图像帧形成模块位于所述处理器中,且独立于所述CPU内核模块及DMA模块以外实现的。
于本发明的一实施例中,所述图像处理设备遵循USB音/视频设备类通信协议。
为实现上述目的及其他相关目的,本发明提供一种显示系统,包括:主机端;显示器;所述的图像处理设备,通信连接所述主机端及显示器;其中,所述图像处理设备从所述主机获取所述图像变化数据,以更新当前图像帧形成下一图像帧,并发送至所述显示器播放。
于本发明的一实施例中,所述主机端和图像处理设备间的通信连接遵循USB音/视频设备类通信协议。
于本发明的一实施例中,所述显示器所显示的图像是所述主机端的屏幕扩展图像。
为实现上述目的及其他相关目的,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现所述的图像处理方法。
如上所述,本发明的图像处理方法、设备、显示系统及存储介质,通过在处理器预先提供的多个寄存器,该些寄存器分别用于存储前一图像帧的帧数据的内存地址、图像变化数据的内存地址、以及用于启动一图像帧形成模块,通过所述图像帧形成模块单次即能根据寄存器内的内存地址找到图像变化数据及前一图像帧的帧数据并据以生成下一图像帧,一方面降低了系统实现与调试的复杂度,另一方面,也提高了系统的整体性能。
附图说明
图1显示为本发明一实施例中的显示系统的结构示意图。
图2显示为本发明一实施例中的图像处理方法的流程示意图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
本发明提供的方案应用于图像处理技术领域,例如,屏幕扩展技术领域;所谓的屏幕扩展,即将一显示器所展示的画面的一部分通过图像处理及传输同步展示至另一显示器上。
请参阅图1,展示本发明技术方案应用于一屏幕扩展实施例中的显示系统的架构示意图。于本实施例中,该显示系统包括:主机端101、图像处理设备102、及显示器103。
所述主机端101和图像处理设备102之间通信连接,两者间的通信连接所遵循的通信协议可以例如为USB,优选是USB3.0以上的版本,例如USB3.1等,从而实现高速的通信传输,令扩屏的同步显示延迟降低;但需说明的是,在其它实施例中也可以采用其它的高速通信协议的连接,并非以此为限。
所述图像处理设备102和显示器103之间通过例如DVI、VGA、HDMI等接口进行显示线缆的通信连接,所述图像处理设备102将接收自主机端101的图像数据显示于所述显示器103上,从而完成对主机端101显示内容的扩屏显示。
于本发明的一实施例中,所述图像处理设备102可以是一独立的电子装置(可称之为扩屏装置),其具有与主机端101通信连接的例如USB接口(优选可以是USB3.0以上接口),以及与所述显示器103通信连接的显示接口(例如VGA、DVI、HDMI等)。
所述图像处理设备102包括处理器及存储器,所述处理器可以是片上系统芯片(SoC),其包括:CPU内核模块及DMA模块,所述CPU内核模块可以是例如ARM架构的嵌入式芯片内核,所述DMA模块为直接存储器模块;所述存储器通信连接于处理器,其例如为RAM或ROM,所述存储器提供内存空间,其存储有软件程序,所述处理器可以运行该软件程序来实现功能;当然,所述处理器也可以通过内部的硬件寄存器的读写来实现功能。
于本发明的一实施例中,所述图像处理设备102是基于PARTIAL标准来形成用于显示于所述显示器103的图像帧,其图像帧形成原理为:在前一图像帧数据的基础上,只更新其中的一个或者多个相对于前一图像帧存在变化的矩形区域(简称变化区域),从而形成新的图像帧数据。
具体的,在USB Audio/Video Devices Class规范的AVFormat 1-Video overBulk部分定义了通过USB总线所传输的变化区域数据格式;其中,AVHeader为固定的32字节,包含了变化区域数据所在视频帧的相关信息,如所有变化区域数据的总字节数(DATALENGTH)。
InfoBlock Hdr与InfoBlock Data包含了变化区域的相关信息与视频数据。
InfoBlock所包含的内容如表1所示:
Offset |
Field |
Size |
Value |
Description |
0 |
X |
2 |
Number |
X-coordinate of the subregion. |
2 |
Y |
2 |
Number |
Y-coordinate of the subregion. |
4 |
W |
2 |
Number |
Width of the subregion. |
6 |
H |
2 |
Number |
Height of the subregion. |
8 |
VideoDataLength |
4 |
Number |
Number of bytes of the VideoPayload for the subregion:p. |
12 |
VideoData |
p |
- |
Actual VideoPayload for the subregion. |
表1 InfoBlock数据格式
所述主机端101可以产生初始的图像帧以及之后每一帧的图像变化数据,所述图像处理设备102即利用每次接收到的图像变化数据来更新上一帧的图像帧的帧数据,从而形成下一图像帧发送至显示器103显示。
本发明中的图像处理设备102的处理器,还实现一图像帧形成模块,用于供调用来进行图像帧形成工作;于一实施例中,所述图像帧形成模块位于所述处理器中,且是独立于所述CPU内核模块及DMA模块以外实现的。
所述处理器还包括多个寄存器,所述多个寄存器可以和所述图像帧形成模块构成一功能模块;所述多个寄存器包括:源图像数据地址寄存器、目标图像数据地址寄存器、及图像帧形成启动寄存器,所述源图像数据地址寄存器、目标图像数据地址寄存器用于所述图像帧形成模块在形成图像帧过程中所需数据的内存地址存储,所述图像帧形成启动寄存器用于控制所述图像帧形成模块的启动。
于本发明的一实施例中,所述源图像数据地址寄存器,其用于写入源图像数据在内存空间中的内存地址(例如起始地址);在本实施例中,所述源图像数据即为所述图像变化数据。
具体的,所述源图像数据地址寄存器的默认值可以是0x0,属性可以是只写,其大小可以是32或者64比特,其大小主要取决于系统总线的规格。
于本发明的一实施例中,所述目标图像数据地址寄存器,其用于写入前一图像帧的帧数据在内存空间中的内存地址(例如起始地址)。
具体的,所述目标图像数据地址寄存器的默认值可以是0x0,属性可以是只写,其大小可以是32或者64比特,其大小主要取决于系统总线的规格。
于本发明的一实施例中,所述图像帧形成启动寄存器,其用于写入一启动信息(例如为1),以令所述处理器启动所述图像帧处理模块。
具体的,所述图像帧形成启动寄存器的默认值可以是0x0,属性可以是只写,其大小可以是最小的8位,参照下表2所示,其首位比特用于控制图像帧形成模块的启动,其余比特位可以留作他用。
比特 |
描述 |
0 |
START,将该位“1”,表示启动图像帧处理模块 |
1:7 |
保留 |
表2
在前述两个寄存器写入源图像数据的内存地址与前一图像帧数据的内存地址后,通过将该比特置1来启动图像帧形成模块进行图像帧形成工作。
可选的,所述处理器提供的多个寄存器中还包括:图像帧形成状态寄存器,其可供写入表示所述图像帧形成工作结束的完成信息,并且,还可供存储图像帧形成工作的错误代码信息。于一实施例中,所述错误代码信息可以包含错误码,即图像形成工作过程中产生的错误对应的错误码,需要根据错误码来对对应的错误进行处理。
具体的,所述图像帧形成状态寄存器的默认值可以是0x0,属性可以是只读,其大小可以是16比特,结构具体可参考下表所示。
表3
具体的,在侦测到所述图像形成动作帧完成时,在所述处理器的图像帧形成状态寄存器写入完成信息(即1),以令中断系统触发中断,以对所述图像帧形成状态寄存器中存储的关于所述下一图像帧形成的错误代码信息进行处理。
结合上述,如图2所示,于一实施例中,展示应用于图1实施例中的图像处理设备102的图像帧形成的图像处理方法的流程:
步骤S21:记录当前图像帧的帧数据在所述图像处理设备102的内存空间中的当前图像帧地址。
于本实施例中,所述当前图像帧即已形成的图像帧,其可发送给所述显示器103以供显示;所述帧数据在图像处理设备102本地内存空间中缓存,所述图像处理设备102的处理器将该帧数据的初始内存地址记录下来。
步骤S22:获取图像变化数据并存储至所述内存空间,并将所述图像变化数据在所述内存空间中的图像变化数据地址写入所述源图像数据地址寄存器。
于本实施例中,所述图像变化数据可以是从所述主机端101获取的。
步骤S23:将所述当前图像帧地址写入至所述处理器的目标图像数据地址寄存器。
步骤S24:在所述帧形成启动寄存器写入启动信息,以令所述处理器启动一图像帧形成模块来形成所述当前图像帧的下一图像帧。
具体的,可参考前述PARTIAL标准的图像帧形成原理,所述图像帧形成模块根据所述源图像数据地址寄存器中的图像变化数据地址获取所述图像变化数据,并根据所述目标图像数据地址寄存器中的当前图像帧地址获取所述帧数据,进而利用所述图像变化数据更新所述帧数据以形成所述下一图像帧。
从中可见,由于做好预先所需数据的存储准备,且利用专门的图像帧形成模块,只需单次调用该图像帧形成模块即能完成图像帧形成工作,不必频繁调用CPU内核模块或DMA模块,提高了图像帧形成的速度;调试或编程时,也主要是集中对对图像帧形成模块进行,较为简单;另外,如果用CPU内核模块实现图像帧形成模块,仅需在形成工作进行时才占用CPU处理带宽,令CPU处理带宽得到合理分配。
可选的,后续流程还可包括:
步骤S25:在侦测到所述图像形成动作帧完成时,在所述处理器的图像帧形成状态寄存器写入完成信息(即例如“1”),以触发中断,以处理图像帧形成状态寄存器中的错误代码信息。
于本发明的一实施例中,所述对图像形成动作帧完成侦测的方式,包括:轮询或中断。
综上所述,本发明的图像处理方法、设备、显示系统及存储介质,通过在处理器预先提供的多个寄存器,该些寄存器分别用于存储前一图像帧的帧数据的内存地址、图像变化数据的内存地址、以及用于启动一图像帧形成模块,通过所述图像帧形成模块单次即能根据寄存器内的内存地址找到图像变化数据及前一图像帧的帧数据并据以生成下一图像帧,一方面降低了系统实现与调试的复杂度,另一方面,也提高了系统的整体性能。
本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。