CN107273223A - 驱动层到应用层之间的图像数据传输方法及装置、终端 - Google Patents
驱动层到应用层之间的图像数据传输方法及装置、终端 Download PDFInfo
- Publication number
- CN107273223A CN107273223A CN201710440490.0A CN201710440490A CN107273223A CN 107273223 A CN107273223 A CN 107273223A CN 201710440490 A CN201710440490 A CN 201710440490A CN 107273223 A CN107273223 A CN 107273223A
- Authority
- CN
- China
- Prior art keywords
- image
- region
- layer
- view data
- transmission
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/545—Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/543—User-generated data transfer, e.g. clipboards, dynamic data exchange [DDE], object linking and embedding [OLE]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
本发明揭示了一种驱动层到应用层之间的图像数据传输方法及装置。所述方法包括:通过截图指令触发驱动层抓取图像;将所述图像划分为多个图像区域;针对每个图像区域分别启动一个传输线程;通过所述传输线程从所述驱动层向所述应用层并行传输每个所述图像区域的图像数据和位置信息,以使得应用层在接收到每个图像区域的图像数据后,按照所述位置信息存储对应图像区域的图像数据。通过截图指令触发驱动层抓取图像并分成多个图像区域,然后启动对应数量的传输线程,并行将图像区域的图像数据传输至应用层,由此,即通过多线程并行传输的方式解决了截图所获取的图像从驱动层传输速度较慢的问题,从而有效提高了截图的效率,减少了截图所耗费的时间。
Description
技术领域
本发明涉及数据传输处理领域,特别涉及一种驱动层到应用层之间的图像数据传输方法及装置、一种终端、一种计算机可读存储介质。
背景技术
随着技术的进步,智能设备为了提供更加友好的交互,对于智能设备所具有的截图功能,用户使用的频率越来越高,其中,智能设备包括智能电视机、智能手表、智能手机、平板等。例如,智能设备使用过程中,进行应用切换的时候,其次有些应用程序中的缩略图,再者智能设备之间进行交互操作的时候(例如:传屏操作),常常都会用到截图功能,这些应用场景对智能设备进行截图的速度有非常高的要求。
通常情况下,影响截图的速度有很多因素比如底层抓取的速度,传输的速度,显示的速度等。其中,截图后的图像数据在系统中各层之间传递所消耗的时间,是影响截图速度的一个非常大的原因。
底层驱动层又名底层或驱动层,直接与硬件交互,如图1所示,截图后获取的图像数据从底层驱动层150的内存中传到应用层110会经过一个中间层130,由于以上每层都处于不同的进程中,每层都在自己的进程申请对应图像数据的内存空间,然后下一层将准备好的图像数据传输至到自己的空间中。随着显示技术的不断发展,智能设备的分辨率也越来越高。例如分辨率为4k的智能电视在截图的时候,由于一个像素通常占四个字节,这样一帧图像数据的大小为4096×2160×4B,由此可知每一帧的数据量都很大,在现有技术中,虽然智能设备都具备多线程同时执行任务的功能,但是由于拷贝该图像数据是一个单独的任务,所以智能设备针对该图像数据的拷贝任务只开启一个线程,例如,只能通过单一线程将该图像数据从驱动层传输至中间层或者将该图像数据从中间层传输至应用层,也就是说单位时间内传输的图像数据有限,因此,图像数据的传输处理部分存在速度较慢的问题,该问题导致整个截图过程耗费的时间较长。
发明内容
为了解决相关技术中存在的截图的图像数据传输速度较慢的问题,本发明提供了一种驱动层到应用层之间的图像数据传输方法及装置、一种终端及一种计算机可读存储介质。
一种驱动层到应用层之间的图像数据传输方法,所述方法包括:
通过截图指令触发驱动层抓取图像;
将所述图像划分为多个图像区域,并针对每个图像区域分别启动一个传输线程;
通过所述传输线程从所述驱动层向所述应用层并行传输每个所述图像区域的图像数据和位置信息,以使得应用层在接收到每个图像区域的图像数据后,按照所述位置信息存储对应图像区域的图像数据。
一种驱动层到应用层之间的图像数据传输装置,所述装置包括:
抓取模块,用于通过截图指令触发驱动层抓取图像;
划分模块,用于将所述图像划分为多个图像区域,并针对每个图像区域分别启动一个传输线程;
传输模块,用于通过所述传输线程从所述驱动层向所述应用层并行传输每个所述图像区域的图像数据和位置信息,以使得应用层在接收到每个图像区域的图像数据后,按照所述位置信息存储对应图像区域的图像数据。
本发明的实施例提供的技术方案可以包括以下有益效果:
本方案通过截图指令触发驱动层抓取图像后,将该图像分成多个图像区域,然后启动相应数量的传输线程,通过该传输线程并行将图像区域的图像数据传输至应用层,由此,即通过多线程并行传输的方式解决了截图所获取的图像从驱动层传输速度较慢的问题,从而有效提高了截图的效率,减少了截图所耗费的时间。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并于说明书一起用于解释本发明的原理。
图1是根据驱动层到应用层之间的图像数据传输方法所涉及的实施环境的示意图;
图2是根据一示例性实施例示出的一种驱动层到应用层之间的图像数据传输方法的流程图;
图3是对应图2中实施例的对步骤S250进行细节描述的流程图;
图4是对应图2中实施例的步骤S230或图3中实施例的步骤S253进行细节描述的流程图;
图5是对应图2中实施例的对步骤S250之后进行细节描述的流程图;
图6是根据一示例性实施例示出的对图像数据进行传输的过程的示意图;
图7是根据一示例性实施例示出的一种终端100的框图;
图8是根据一示例性实施例示出的一种驱动层到应用层之间的图像数据传输装置300的框图;
图9是根据另一示例性实施例示出的对传输模块进行细节描述的框图;
图10是根据另一示例性实施例示出的对划分模块进行细节描述的框图;
图11是根据另一示例性实施例示出的一种驱动层到应用层之间的图像数据传输装置框图。
具体实施方式
这里将详细地对示例性实施例执行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
图2是根据一示例性实施例示出的一种截图的数据处理方法的流程图。如图2所示,该截图的数据处理方法可以包括以下步骤。
在步骤S210中,通过截图指令触发驱动层抓取图像。
其中,驱动层又名底层或底层驱动层,底层驱动即底层硬件的驱动程序,是指驱动程序以访问底层硬件的形式实现人机交互,驱动程序和应用程序之间需要实现相应的信息交互,一方面,应用程序通过对驱动程序发送相应的指令,实现硬件控制的动作指令,另一方面,驱动程序将硬件读写的状态、从硬件上获得的数据传送给应用程序,实现应用程序与驱动程序间的交互。
应用层又称为应用程序层,以Android安卓为例,所有的应用程序都是使用JAVA语言编写的,每一个应用程序由一个或者多个活动组成,活动必须以Activity类为超类,活动类似于操作系统上的进程,但是活动比操作系统的进程要更为灵活,与进程类似的是,活动在多种状态之间进行切换。利用JAVA的跨平台性质,基于Android框架开发的应用程序可以不用编译运行于任何一台安装有Android系统的平台。
截图指令是指截取屏幕数据的命令,该截图指令可以指示终端硬件截取屏幕上某一个范围内的图像,也可以截取整个屏幕,该截图指令的来源方式,以智能手机执行截图为例,可以通过应用软件(即APP,Application,应用程序)发送截图指令,该截图指令可以通过应用程序中的按钮触发或者截图范围选取后直接触发,也可通过智能手机上的实体键触发,还可以包括远程发送的消息或指令触发,以及其它可以触发该智能手机截图的方式。
具体的,截图指令执行过程中,可以通过调用串口命令来实现,也可以通过将相应的接口函数提供给应用调用实现,即通过不同层级的函数调用来实现驱动层触发截图。
图像即截图时从智能设备展现或者显示内容中抓取的图片,该图像可以根据需求,自定义范围,也可以预设为默认截取全部显示的内容。
其中,本方案中的截图一般是针对具有显示功能的智能设备,如智能电视机、智能手表、智能手机、平板、电脑、投影等,并不是说一定要具备显示屏幕但一定要具备图形处理器或显示单元(即具备显示功能的芯片单元,如GPU,Graphics Processing Unit,图形处理器),特别是在远程截图环境中,智能设备自身的屏幕可以不需显示或者说自身可以不具备屏幕。本方案中图像数据是指是指图像的像素数据,包括宽度方向和高度方向的像素数据等,如一个分辨率为4096x2160的智能设备,整个截图获取的图像数据为宽度方向4096个像素,高度方向2160个像素,同时可以根据该图像数据来确定其所占用或者所需要占用的内存空间的大小等,由于一个像素通常占用4个字节,因此所需占用的内存空间为4096x2160x4个字节。当前截图是指将当前显示的内容进行截取而获得图像,当前显示的内容的区域的大小一般可以自定义,也可以截取整个显示区域的内容,由于智能设备一般都有屏幕,因此当前截图也可以称为当前屏幕截图,即可以截取屏幕上一定区域的内容,还可以截取整个屏幕显示的内容。
底层驱动收到截图指令后,触发硬件响应该截图指令,并将截取的图像缓存或者存入驱动层中的存储空间,且与应用层的存储空间可以是在相同或者不同的存储设备上,但是这些存储空间是是相互独立,互相不会影响,例如都在智能手机的内存或者闪存中,但内存或闪存根据需要而分为不同的存储区域,用来隔开,因此相互不会影响。
具体的,通过将截图指令传给驱动层,驱动层响应该截图指令后,直接触发底层硬件抓取预设的屏幕范围,预设的屏幕范围是指截图指令所指定的范围。然后将抓取的图像缓存或者存入驱动层中,再对该图像进行处理,即将该图像传输至预先设定的文件管理中心(如手机中的照片管理中心)或者是直接显示在智能手机屏幕上,又或者是直接显示在某一个交互式的通信工具的窗口中(如微信、QQ、MSN等)、还可以是网页中的一个窗口中,以及一些其他的处理方式。因此,这就需要将该图像或图像数据从驱动层传输至应用层。
如图1所示,通过截图抓取的图像一般会先存在驱动层中,然后该图像先从底层驱动层150传输至中间层130,然后再从中间层130传输至应用层110。
在其它具体的实施环境中,还可以将截图抓取的图像从驱动层150直接传输至应用层110。
通过本步骤,即可先通过截图指令得到抓取的图像,为本方案根据该图像继续实施后续步骤提供了基础。
在步骤S230中,将图像划分为多个图像区域,并针对每个图像区域分别启动一个传输线程。
其中,在截图过程中,无论是针对自定义区域还是整个屏幕区域进行截图,通常情况下,采用矩形形状有利于本方案实施,当然还可以采用梯形或三角形等形状,本发明实施例对此不作限定。如图6所示,将驱动层中的图像,分为K1,K2,K3和K4共计四个图像区域。
线程是执行程序或任务的单元,一个线程可以单独执行一个任务或程序。传输线程是指传输图像数据的线程,根据图像区域的数量,启动相应数量的传输线程,即针对每一个图像区域分配一个传输线程进行对应,并且这些传输线程通过中央处理器(CPU,CentralProcessing Unit)并行工作的。
为了更方便理解本方案,现以矩形为例,可以将图像等分或分成任意规格的多个矩形区域,由于等分形状更有助于理解本方案,此处以等分为例,将图像等分为一定数量的矩形图像区域,这个数量也可以根据截图环境中的智能设备的情况预先设置,例如可以设置为2、3、4、5、6等,跟硬件和软件有关,但并不是越大越好,而且将图像分成几个区域还可以根据CPU的负荷去实时调整。
另外,既可以沿着图像的宽度(横向)方向对该图像进行等分,也可以沿着图像的高度(纵向)方向对图像进行等分,这两种方式的区域数量,理论上可以为不小于2的整数,跟硬件和软件有关,但并不是越大越好。
也可以同时沿着横向(横向)和高度(纵向)方向对图像进行等分,这种情况下,预设数量可以为4、6、8、9等,跟硬件和软件有关,但并不是越大越好。
将图像划分图像区域的同时,针对每个图像区域分别开启一个传输线程,图形区域的数量无论是按照预先设置的还是根据处理器的负荷调整得出的,均根据该数量开启相应数量的传输线程即可。根据处理器负荷调整部分,例如智能设备的处理器资源特别紧张的时候,可以划分较少的区域,如2个,这样只需要开启两个传输线程,不会导致处理器资源过分紧张,资源较充分的时候图像区域的数量可以适当多些,这样传输线程可以多些,这样更有利于智能设备中处理器资源的均衡。如图6所示,针对K1,K2,K3和K4这四个图像区域,相应的启动了X1,X2,X3和X4这四个传输线程。
通过本步骤,即可将步骤S210中获取的图像划分为多个图像区域,并为每个图像区域各开启一个传输线程,这为后续图像的多线程并行拷贝提供了重要基础。
在步骤S250中,通过传输线程从驱动层向应用层并行传输每个图像区域的图像数据和位置信息,以使得应用层在接收到每个图像区域的图像数据后,按照位置信息存储对应图像区域的图像数据。
其中,图像数据是指,图像区域中像素对应的图像数据,如图6所示,将驱动层中的图像,分为K1,K2,K3和K4这四个图像区域,每个区域中都有一定数量的像素,采用(i,j)对应的像素来表示所在图像区域中的坐标。
并行传输只是多个线程在同一时间进行图像数据的传输,即在开启多个传输线程后,同时执行这些传输线程。
位置信息包括起始位置和图像数据对应的相对位置,起始位置是指该图像在应用层中分配的存储空间的开始位置,也就是存放该图像的开始位置。图像数据对应的相对位置是指每个图像区域中像素坐标(i,j)的位置,如图6所示,例如,起始位置为1000H,数值转换后为4096,K1区域中坐标为(i,j)的图像数据传输至应用层中相对的相对位置为(j*w*4+i*4),由于一般一个像素对应4个字节,所以坐标为(i,j)的图像数据存储区域为(起始位置+相对位置)至(起始位置+相对位置+4),即(4096+j*w*4+i*4)开始的四个字节的区域,K3区域中坐标为(i,j)的图像数据传输至应用层中的相对位置为(w*h/2*4+j*w*4+i*4),所以K3去榆中坐标为(i,j)的图像数据存储区域为(起始位置+相对位置)至(起始位置+相对位置+4),即(4096+w*h/2*4+j*w*4+i*4)开始的四个字节的区域。应用层在得到该位置信息后,将接收到每个图像区域的图像数据进行存储,存储在应用层中对应的存储位置。
进一步的,在执行图像传输之前,应用层会预先留出图像所需的存储空间,存储空间是指存储该图像所需的内存或闪存空间。
例如,一个分辨率为4096x2160截图,一个像素按占用4个字节算,可得出该截图所需占用的内存空间为4096x2160x4个字节,这样在执行图像数据传输之前,就需要先在应用层中分配一个大小为4096x2160x4个字节的存储空间。
其中,传输是针对图像区域中的图像数据进行的,也就是说拷贝图像区域中每个像素的图像数据,图像在左上角位置的坐标为(0,0),像素值沿着横向或者纵向方向依此增加。以4096x2160的截图为例,分成四个图像区域后(例如图6),每个区域左上角的坐标分别为(0,0)、(2048,1080)、(0,1080)和(2048,1080)。
无论图像区域为三角形还是梯形,总之每个图像区域左上角的坐标均为(0,0),然后根据每个图像区域的像素来计算相对位置,从上面的描述中可以看出,虽然是每个图像区域中单独的像素,但是计算该相对位置时是将每个图像区域中的像素放到整个图像中进行考虑的。
通常情况下,方案中的驱动层中的存储空间与应用层中的存储空间可以在相同或者不同的存储设备中,且相互隔离,互为独立的。
通过多个传输线程并行将所有的图像区域的图像数据传输至应用层中,一旦全部传输完成,即可得到完整的截图。
通过如上所述的过程,通过截图指令触发驱动层抓取图像后,将该图像分成多个图像区域,然后启动相应数量的传输线程,通过该传输线程并行将图像区域的图像数据传输至应用层,由此,即通过多线程并行传输的方式解决了截图所获取的图像从驱动层传输速度较慢的问题,从而有效提高了截图的效率,减少了截图所耗费的时间。
图3是对应图2中实施例的步骤S250进行细节描述的流程图,在步骤S250之前,该方法还包括以下步骤。
在步骤S251中,通过传输线程从驱动层向所述中间层并行传输每个图像区域的图像数据和位置信息,以使得中间层在接收到每个图像区域的图像数据后,按照位置信息存储对应图像区域的图像数据。
其中,中间层一般是应用程序框架和系统运行库的集合,通常位于驱动层与应用层的中间,用于协调驱动层和应用层。在一些具体的实施环境中,可以只包括驱动层和应用层,目前较多的实施环境中,都是采用驱动层,中间层和应用层的架构方式。
步骤S251的具体运作方式与图2中步骤S250的原理一样,在此不做进一步说明。
在步骤S253中,将图像划分为多个图像区域,并针对每个图像区域分别启动一个传输线程。
具体的,即将图像传输到中间层后,在此对中间层的该图像划分为多个图像区域,开启相应数量的传输线程,分别传输对应图像区域的图像数据,这与图2中步骤S230的原理一样,在此不做进一步说明。
在步骤S255中,通过传输线程从中间层层向应用层并行传输每个图像区域的图像数据和位置信息。
步骤S255的具体运作方式与步骤S251的原理一样,在此不做进一步说明。
通过如上所述的过程,实现了通过多线程并行传输的方式解决了将截图所获取的图像从驱动层传输到中间层和从中间层传输到应用层过程中传输速度较慢的问题,从而有效提高了截图的效率,减少了截图所耗费的时间。
图4是对应图2中实施例的步骤S230或图3中实施例的步骤S253进行细节描述的流程图;
在步骤S271中,沿横向和/或纵向将所述图像划分为多个矩形或三角形图像区域。
其中,横向是指图像的宽度方向,纵向是指图像的高度方向,即沿着图像的不同方向将该图像等分为一定数量的矩形或三角形图像区域。
本步骤的作用是将图像细分为多个图像区域,为后续多线程传输提供基础。
在步骤S273中,针对每个所述矩形或三角形图像区域分别启动一个传输线程。
具体的,即给每个细分的图像区域开启一个传输线程。将传输线程与图像区域对应起来,每个传输线程对应一个图像区域,这样确保图像区域与传输线程相匹配,从而为图像数据的并行传输提供条件。
图5是对应图2中实施例的对步骤S250之后进行细节描述的流程图,在步骤S250之后,该方法还包括以下步骤。
在步骤S281中,获取图像区域的图像数据传输的完成情况。
其中,完成情况是针对图像数据传输的结果,如果某一个图像区域的图像数据已经传输完毕,则该图像数据传输的完成情况为已完成,反之为未完成,通过这个状态标识,即可知道这些图像区域对应的图像数据是否传输完毕。通过获取图像区域的图像数据传输的完成情况,即可得出整个图像所对应的图像区域是否全部传输完毕,而且如果图像区域传输完毕,则说明该传输线程已经执行完毕,即说明该传输线程所执行的传输图像区域的图像数据任务已经执行完成。
在步骤S283中判断所述图像区域的图像数据传输的完成情况是否为未完成。
其中,本步骤主要是根据步骤S281得到的完成情况来进行相应的后续操作。如果该完成情况是未完成,则转入步骤S285。如果完成情况是已完成,则将图像区域对应的线程关闭。
在步骤S285中,图像区域对应的线程重新执行图像区域的图像数据传输。
本步骤主要是针对传输没有完成的情况,即经过合理的时间间隔,如果传输线程的执行依然没有结束,即说明传输线程执行任务过程中出现了问题,这时候可以针对该线程执行的传输任务,单独重新执行,以保证整个图像数据传输的完整性。另一方面如果是出现了硬件方面的原因,则可以通过该传输线程的任务执行情况对整个图像数据的传输进行回滚操作,回滚操作完成后,先前所传输的部分数据会自动删除,另一方面,由于分配存储空间后,每个区域对应的存放位置是固定的,因此也可以不需要回滚操作,即该区域的图像数据依然是存放在原来的位置,所以会直接将先前传输的部分数据覆盖。因此,可以再次启动传输线程重新执行传输任务。
同理,对于上述图3中的步骤S251之后和S255之后,均可以包括图5中的步骤。
通过如上所述的过程,可以对图像数据传输的情况进行一个验证,以确保图像传输的完整性,同时还可以在出现简单故障的时候,对整个传输过程自动化的重新执行。即先记录每个传输线程的传输任务是否完成,然后对完成情况进行判断,只有所有与该图像区域对应的传输线程的传输任务全部执行完成,才意味着整个传输任务完成。
图6是根据一示例性实施例示出的对图像数据进行拷贝的过程的示意图。下面对截图的图像数据进行传输的过程进行一个示例性描述。
具体的,以从驱动层传输至应用层为例,如图6所示,左侧示意为驱动层中的图像,右侧示意为应用层中的图像,图像的宽度方向为w个像素,高度方向为h个像素。以该图像等分成4个如图6所示的矩形图像区域为例,将图6中图像分成4个图像区域,即首先将图像分为图中的K1、K2、K3、K4共四个矩形图像区域,然后开启4个传输线程,即针对每一个图像区域各分配一个传输线程,如图中的X1、X2、X3、X4,每个线程对应一个图像区域执行传输任务。传输操作执行前,会根据图像在应用层中分配一个存储空间,然后根据图像分割的位置,计算出K1、K2、K3、K4这四个矩形图像区域对应应用层中的位置,再通过4个线程将K1、K2、K3、K4这四个矩形图像区域的图像数据并行传输至应用层中,从而在应用层中得到一幅完整的图像。
图像区域传输具体步骤如下:
以4096x2160的图像为例,图像的宽度方向为4096个像素,即前述的w,高度方向为2160个像素,即前述的h。
按照每个图像区域在原图像中的位置拷贝到预先计算好的位置,K1图像区域拷贝到上层图像0到w/2和0到h/2这部分区域,而K2图像区域拷贝到w/2+1到w和h/2+1到h,K3区域拷贝0到w/2和h/2+1到h这部分区域,K4拷贝到w/2+1到w和h/2+1到h这部分区域。
其中,K1区域中坐标为(i,j)的图像数据传输至应用层中(起始位置+j*w*4+i*4)开始的四个字节的区域。K2区域中坐标为(i,j)的图像数据传输至应用层中(起始位置+j*w*4+i*4+w/2*4)开始的四个字节的区域。K3区域中坐标为(i,j)的图像数据传输至应用层中的位置为(起始位置+w*h/2*4+j*w*4+i*4)开始的四个字节的区域。K4区域中坐标为(i,j)的图像数据传输至应用层中(起始位置+w*h/2*4+j*w*4+i*4+w/2*4)开始的四个字节的区域。比如给一个图像分配的存储空间为2KB,存储起始位置为1000H,则终止位置为4FFFH,即1000H+2KB对应的位置,并且这些位置是以每个图像区域的左上角坐标为(0,0)为基础计算的,再根据图像的形状划分,来进行计算每个图像区域所占用的空间和存储的位置。
该示例性描述同样适用于从驱动层传输至中间层以及从中间层传输至应用层,并且矩形的计算只是多种图形中的一种方式,还可以三角形、三角形与矩形组合的形状或者其它形状。
图7是根据一示例性实施例示出的一种终端100的框图。终端100可以应用于是上述实施环境中的计算机设备。
参考图7,终端100可以包括以下一个或者多个组件:处理组件101,存储器102,电源组件103,多媒体组件104,音频组件105,传感器组件107以及通信组件108。其中,上述组件并不全是必须的,终端100可以根据自身功能需求增加其他组件或减少某些组件,本实施例不作限定。
处理组件101通常控制终端100的整体操作,诸如与显示,电话呼叫,数据通信,相机操作以及记录操作相关联的操作等。处理组件101可以包括一个或多个处理器109来执行指令,以完成上述操作的全部或部分步骤。此外,处理组件101可以包括一个或多个模块,便于处理组件101和其他组件之间的交互。例如,处理组件101可以包括多媒体模块,以方便多媒体组件104和处理组件101之间的交互。
存储器102被配置为存储各种类型的数据以支持在终端100的操作。这些数据的示例包括用于在终端100上操作的任何应用程序或方法的指令。存储器102可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如SRAM(Static Random AccessMemory,静态随机存取存储器),EEPROM(Electrically Erasable Programmable Read-Only Memory,电可擦除可编程只读存储器),EPROM(Erasable Programmable Read OnlyMemory,可擦除可编程只读存储器),PROM(Programmable Read-Only Memory,可编程只读存储器),ROM(Read-Only Memory,只读存储器),磁存储器,快闪存储器,磁盘或光盘。存储器102中还存储有一个或多个模块,该一个或多个模块被配置成由该一个或多个处理器109执行,以完成图2、图3、图4和图5中任一所示方法中的全部或者部分步骤。
电源组件103为终端100的各种组件提供电力。电源组件103可以包括电源管理系统,一个或多个电源,及其他与为终端100生成、管理和分配电力相关联的组件。
多媒体组件104包括在所述终端100和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括LCD(Liquid Crystal Display,液晶显示器)和TP(TouchPanel,触摸面板)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。
音频组件105被配置为输出和/或输入音频信号。例如,音频组件105包括一个麦克风,当终端100处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器102或经由通信组件108发送。在一些实施例中,音频组件105还包括一个扬声器,用于输出音频信号。
传感器组件107包括一个或多个传感器,用于为终端100提供各个方面的状态评估。例如,传感器组件107可以检测到终端100的打开/关闭状态,组件的相对定位,传感器组件107还可以检测终端100或终端100一个组件的位置改变以及终端100的温度变化。在一些实施例中,该传感器组件107还可以包括磁传感器,压力传感器或温度传感器。
通信组件108被配置为便于终端100和其他设备之间有线或无线方式的通信。终端100可以接入基于通信标准的无线网络,如WiFi(WIreless-Fidelity,无线网络),2G或3G,或它们的组合。在一个示例性实施例中,通信组件108经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件108还包括NFC(Near Field Communication,近场通信)模块,以促进短程通信。例如,在NFC模块可基于RFID(Radio Frequency Identification,射频识别)技术,IrDA(Infrared DataAssociation,红外数据协会)技术,UWB(Ultra-Wideband,超宽带)技术,BT(Bluetooth,蓝牙)技术和其他技术来实现。
在示例性实施例中,终端100可以被一个或多个ASIC(Application SpecificIntegrated Circuit,应用专用集成电路)、DSP(Digital Signal Processing,数字信号处理器)、PLD(Programmable Logic Device,可编程逻辑器件)、FPGA(Field-ProgrammableGate Array,现场可编程门阵列)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
该实施例中的终端的处理器执行操作的具体方式已经在有关该截图方法的实施例中执行了详细描述,此处将不再做详细阐述说明。
可选的,本发明还提供一种终端,执行图2、图3、图4和图5中任一所示的驱动层到应用层之间的图像数据传输方法的全部或者部分步骤。该终端包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,或者所述处理器从计算机可读存储介质中读取计算机程序,所述指令或所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上述任一个示例性实施例所示出的驱动层到应用层之间的图像数据传输方法。
在示例性实施例中,还提供了一种存储介质,该存储介质为计算机可读存储介质,例如可以为包括指令的临时性和非临时性计算机可读存储介质。该存储介质例如包括指令的存储器102,上述指令可由终端100的处理器109执行以完成图2、图3、图4和图5中驱动层到应用层之间的图像数据传输方法。
下述为本发明装置实施例,可以用于执行上述截图的数据处理方法实施例。对于本发明装置实施例中未披露的细节,请参照本发明截图的数据处理方法实施例。
图8是根据一示例性实施例示出的一种驱动层到应用层之间的图像数据传输装置300的框图,该驱动层到应用层之间的图像数据传输装置可以用于图1所示的实施环境中,执行图2所示的驱动层到应用层之间的图像数据传输方法的全部或部分步骤。如图8所示,该驱动层到应用层之间的图像数据传输装置包括但不限于:抓取模块310、划分模块330和传输模块350。
抓取模块310,用于通过截图指令触发驱动层抓取图像。
划分模块330,用于将所述图像划分为多个图像区域,并针对每个图像区域分别启动一个传输线程。
传输模块350,用于通过所述传输线程从所述驱动层向所述应用层并行传输每个所述图像区域的图像数据和位置信息,以使得应用层在接收到每个图像区域的图像数据后,按照所述位置信息存储对应图像区域的图像数据。
上述装置中各个模块的功能和作用的实现过程具体详见上述驱动层到应用层之间的图像数据传输方法中对应步骤的实现过程,在此不再赘述。
图9是根据一示例性实施例示出的对传输模块进行细节描述的框图。该传输模块可以执行图3所示的驱动层到应用层之间的图像数据传输方法的全部或部分步骤。如图9所示,该传输模块包括但不限于:第一传输单元351、第一划分单元353和第二传输单元355。
第一传输单元351,用于通过所述传输线程从所述驱动层向所述中间层并行传输每个所述图像区域的图像数据和位置信息,以使得中间层在接收到每个图像区域的图像数据后,按照所述位置信息存储对应图像区域的图像数据。
第一划分单元353,用于将所述图像划分为多个图像区域,并针对每个图像区域分别启动一个传输线程。
第二传输单元355,用于通过所述传输线程从所述中间层层向所述应用层并行传输每个所述图像区域的图像数据和位置信息。
图10是根据一示例性实施例示出的对划分模块进行细节描述的框图。该划分模块可以执行图4所示的驱动层到应用层之间的图像数据传输方法的全部或部分步骤。如图10所示,该拷贝模块包括但不限于:第二划分单元331和启动单元333。
第二划分单元331,用于沿横向和/或纵向将所述图像划分为多个矩形或三角形图像区域。
启动单元333,用于针对每个所述矩形或三角形图像区域分别启动一个传输线程。
图11是根据另一示例性实施例示出的一种驱动层到应用层之间的图像数据传输装置框图,该驱动层到应用层之间的图像数据传输装置可以执行图5所示的驱动层到应用层之间的图像数据传输方法的全部或部分步骤。如图11所示,该驱动层到应用层之间的图像数据传输装置包括但不限于:获取模块381、判断模块383和处理模块385。
获取模块381,用于获取所述图像区域的图像数据传输的完成情况。
判断模块383,判断模块,用于判断所述图像区域的图像数据传输的完成情况是否为未完成。
处理模块385,用于若为是,则所述图像区域对应的线程重新执行所述图像区域的图像数据传输。
可选的,本发明还提供一种终端,该终端具有至少一个处理器、至少一个存储器以及至少一个显示单元,还可以包括图8、图9、图10和图11中任一种驱动层到应用层之间的图像数据传输装置。其中,终端可以包括但不限于智能电视机、智能手机、平板、智能手表、电脑等,显示单元可以包括但不限于屏幕、显示器、投影等。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,本领域技术人员可以在不脱离其范围执行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
Claims (10)
1.一种驱动层到应用层之间的图像数据传输方法,其特征在于,所述方法包括:
通过截图指令触发驱动层抓取图像;
将所述图像划分为多个图像区域,并针对每个图像区域分别启动一个传输线程;
通过所述传输线程从所述驱动层向所述应用层并行传输每个所述图像区域的图像数据和位置信息,以使得应用层在接收到每个图像区域的图像数据后,按照所述位置信息存储对应图像区域的图像数据。
2.根据权利要求1所述的方法,其特征在于,所述通过所述传输线程从所述驱动层向所述应用层并行传输每个所述图像区域的图像数据和位置信息,包括:
通过所述传输线程从所述驱动层向所述中间层并行传输每个所述图像区域的图像数据和位置信息,以使得中间层在接收到每个图像区域的图像数据后,按照所述位置信息存储对应图像区域的图像数据;
将所述图像划分为多个图像区域,并针对每个图像区域分别启动一个传输线程;
通过所述传输线程从所述中间层层向所述应用层并行传输每个所述图像区域的图像数据和位置信息。
3.根据权利要求1或2所述的方法,其特征在于,所述将所述图像划分为多个图像区域,并针对每个图像区域分别启动一个传输线程,包括:
沿横向和/或纵向将所述图像划分为多个矩形或三角形图像区域;
针对每个所述矩形或三角形图像区域分别启动一个传输线程。
4.根据权利要求1所述的方法,其特征在于,所述通过所述传输线程从所述驱动层向所述应用层并行传输每个所述图像区域的图像数据和位置信息的步骤之后,所述方法还包括:
获取所述图像区域的图像数据传输的完成情况;
判断所述图像区域的图像数据传输的完成情况是否为未完成;若为是,则
所述图像区域对应的线程重新执行所述图像区域的图像数据传输。
5.一种计算机可读存储介质,其存储用于电子数据交换的计算机程序,其特征在于,所述计算机程序在被执行时使得终端执行权利要求1-4任一项所述的方法。
6.一种终端,其特征在于,所述终端包括:
处理器;以及
与所述处理器通信连接的存储器;其中,
所述存储器存储有可被所述处理器执行的指令或者所述处理器从计算机可读存储介质中读取计算机程序,所述指令或所述计算机程序被所述处理器执行,以使所述处理器能够执行权利要求1-4任一项所述的方法。
7.一种驱动层到应用层之间的图像数据传输装置,其特征在于,所述装置包括:
抓取模块,用于通过截图指令触发驱动层抓取图像;
划分模块,用于将所述图像划分为多个图像区域,并针对每个图像区域分别启动一个传输线程;
传输模块,用于通过所述传输线程从所述驱动层向所述应用层并行传输每个所述图像区域的图像数据和位置信息,以使得应用层在接收到每个图像区域的图像数据后,按照所述位置信息存储对应图像区域的图像数据。
8.根据权利要求7所述的装置,其特征在于,所述传输模块,包括:
第一传输单元,用于通过所述传输线程从所述驱动层向所述中间层并行传输每个所述图像区域的图像数据和位置信息,以使得中间层在接收到每个图像区域的图像数据后,按照所述位置信息存储对应图像区域的图像数据;
第一划分单元,用于将所述图像划分为多个图像区域,并针对每个图像区域分别启动一个传输线程;
第二传输单元,用于通过所述传输线程从所述中间层层向所述应用层并行传输每个所述图像区域的图像数据和位置信息。
9.根据权利要求7所述的装置,其特征在于,所述划分模块,包括:
第二划分单元,用于沿横向和/或纵向将所述图像划分为多个矩形或三角形图像区域;
启动单元,用于针对每个所述矩形或三角形图像区域分别启动一个传输线程。
10.根据权利要求7所述的装置,其特征在于,所述装置还包括:
获取模块,用于获取所述图像区域的图像数据传输的完成情况;
判断模块,用于判断所述图像区域的图像数据传输的完成情况是否为未完成;
处理模块,用于若为是,则所述图像区域对应的线程重新执行所述图像区域的图像数据传输。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710440490.0A CN107273223A (zh) | 2017-06-13 | 2017-06-13 | 驱动层到应用层之间的图像数据传输方法及装置、终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710440490.0A CN107273223A (zh) | 2017-06-13 | 2017-06-13 | 驱动层到应用层之间的图像数据传输方法及装置、终端 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107273223A true CN107273223A (zh) | 2017-10-20 |
Family
ID=60067053
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710440490.0A Pending CN107273223A (zh) | 2017-06-13 | 2017-06-13 | 驱动层到应用层之间的图像数据传输方法及装置、终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107273223A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111245911A (zh) * | 2020-01-03 | 2020-06-05 | 惠州Tcl移动通信有限公司 | 网络传输方法及其系统、存储介质及终端设备 |
CN113225603A (zh) * | 2021-04-23 | 2021-08-06 | 深圳创维-Rgb电子有限公司 | 基于背光驱动的图片共享系统及方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103034467A (zh) * | 2012-12-06 | 2013-04-10 | 北京小米科技有限责任公司 | 图像显示方法、装置及移动终端 |
CN105279006A (zh) * | 2014-07-09 | 2016-01-27 | 腾讯科技(深圳)有限公司 | 基于Android系统的屏幕截图方法及终端 |
CN105335526A (zh) * | 2015-12-04 | 2016-02-17 | 北京京东尚科信息技术有限公司 | 一种图片加载方法及装置 |
CN105373395A (zh) * | 2014-08-29 | 2016-03-02 | 展讯通信(天津)有限公司 | 基于Android系统的图像加载方法及装置 |
CN105404455A (zh) * | 2015-12-16 | 2016-03-16 | 北京奇虎科技有限公司 | 利用终端对移动终端实现截屏的方法及装置 |
CN106101807A (zh) * | 2016-07-12 | 2016-11-09 | 青岛海信电器股份有限公司 | 图片数据处理方法、装置及智能电视 |
-
2017
- 2017-06-13 CN CN201710440490.0A patent/CN107273223A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103034467A (zh) * | 2012-12-06 | 2013-04-10 | 北京小米科技有限责任公司 | 图像显示方法、装置及移动终端 |
CN105279006A (zh) * | 2014-07-09 | 2016-01-27 | 腾讯科技(深圳)有限公司 | 基于Android系统的屏幕截图方法及终端 |
CN105373395A (zh) * | 2014-08-29 | 2016-03-02 | 展讯通信(天津)有限公司 | 基于Android系统的图像加载方法及装置 |
CN105335526A (zh) * | 2015-12-04 | 2016-02-17 | 北京京东尚科信息技术有限公司 | 一种图片加载方法及装置 |
CN105404455A (zh) * | 2015-12-16 | 2016-03-16 | 北京奇虎科技有限公司 | 利用终端对移动终端实现截屏的方法及装置 |
CN106101807A (zh) * | 2016-07-12 | 2016-11-09 | 青岛海信电器股份有限公司 | 图片数据处理方法、装置及智能电视 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111245911A (zh) * | 2020-01-03 | 2020-06-05 | 惠州Tcl移动通信有限公司 | 网络传输方法及其系统、存储介质及终端设备 |
CN113225603A (zh) * | 2021-04-23 | 2021-08-06 | 深圳创维-Rgb电子有限公司 | 基于背光驱动的图片共享系统及方法 |
CN113225603B (zh) * | 2021-04-23 | 2023-08-18 | 深圳创维-Rgb电子有限公司 | 基于背光驱动的图片共享系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106970800B (zh) | 换装方法和装置 | |
CN103544021B (zh) | 一种移动终端屏幕内容的截屏方法及其装置 | |
CN105765518A (zh) | 用于共享内容的装置和方法 | |
CN107340967A (zh) | 一种智能设备及其操作方法和装置及计算机存储介质 | |
CN102968274A (zh) | 一种在移动设备中自由截屏的方法和系统 | |
CN106445354A (zh) | 终端设备的触摸控制方法及装置 | |
CN103793169A (zh) | 移动通讯装置及将其画面切换至画面解锁模式的方法 | |
CN103399710A (zh) | 实现多窗口操作的移动终端及方法 | |
CN107438825A (zh) | 应用图标的移动方法和装置、终端和存储介质 | |
CN103197854B (zh) | 一体机多通道显示的截图方法及装置 | |
CN111225108A (zh) | 一种通信终端及负屏界面的卡片显示方法 | |
CN104011631A (zh) | 电子设备以及控制该电子设备的方法 | |
CN109992400A (zh) | 资源分配方法、装置、移动终端及计算机可读存储介质 | |
CN104866262A (zh) | 可穿戴设备 | |
CN103455292A (zh) | 业务数据显示处理方法与装置、用户设备 | |
CN110225154A (zh) | 显示控制方法、装置和智能终端 | |
CN109151966A (zh) | 终端控制方法、装置、终端设备及存储介质 | |
WO2018001115A1 (zh) | 滑动控件控制方法及装置、滑块选择器 | |
CN102637127A (zh) | 一种控制鼠标模块的方法及电子设备 | |
JP2023528311A (ja) | ビデオ通話インタフェース表示制御方法、装置、記憶媒体及び機器 | |
CN109375980A (zh) | 基于Andriod系统的触控绘图方法 | |
CN109298909A (zh) | 一种窗口调节的方法、移动终端及计算机可读存储介质 | |
CN107315531A (zh) | 智能终端应用的控制方法及系统 | |
CN107273223A (zh) | 驱动层到应用层之间的图像数据传输方法及装置、终端 | |
CN107483729B (zh) | 一种多画面显示选择截取画面的方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20171020 |