CN113961484A - 数据的传输方法、装置、电子设备以及存储介质 - Google Patents

数据的传输方法、装置、电子设备以及存储介质 Download PDF

Info

Publication number
CN113961484A
CN113961484A CN202111271767.4A CN202111271767A CN113961484A CN 113961484 A CN113961484 A CN 113961484A CN 202111271767 A CN202111271767 A CN 202111271767A CN 113961484 A CN113961484 A CN 113961484A
Authority
CN
China
Prior art keywords
cache
image reading
target
buffer
data
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
Application number
CN202111271767.4A
Other languages
English (en)
Inventor
张光辉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority to CN202111271767.4A priority Critical patent/CN113961484A/zh
Publication of CN113961484A publication Critical patent/CN113961484A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本申请公开了一种数据的传输方法、装置、电子设备以及存储介质,涉及电子设备技术领域。该方法应用于电子设备,该电子设备创建有第一图像读取对象和第二图像读取对象。该方法包括:获取第一图像读取对象对应的第一缓存队列,其中,该第一缓存队列包括多个第一缓存单元,从多个第一缓存单元中取出第一目标缓存单元,其中,第一目标缓存单元缓存有待传输数据,将第一目标缓存单元加入第二图像读取对象对应的第二缓存队列。本申请通过对将缓存有待传输数据的缓存单元在两个图像读取对象之间进行切换,可以降低数据传输的延时,实现高性能的跨进程数据传输。

Description

数据的传输方法、装置、电子设备以及存储介质
技术领域
本申请涉及电子设备技术领域,更具体地,涉及一种数据的传输方法、装置、电子设备以及存储介质。
背景技术
随着科学技术的发展,电子设备的使用越来越广泛,功能越来越多,已经成为人们日常生活中的必备之一。但是,目前电子设备在进行跨进程的数据传输时,耗时较长,影响电子设备的跨进程数据传输性能。
发明内容
鉴于上述问题,本申请提出了一种数据的传输方法、装置、电子设备以及存储介质,以解决上述问题。
第一方面,本申请实施例提供了一种数据的传输方法,应用于电子设备,所述电子设备创建有第一图像读取对象和第二图像读取对象,所述方法包括:
获取所述第一图像读取对象对应的第一缓存队列,其中,所述第一缓存队列包括多个第一缓存单元;从所述多个第一缓存单元中取出第一目标缓存单元,其中,所述第一目标缓存单元缓存有待传输数据;将所述第一目标缓存单元加入所述第二图像读取对象对应的第二缓存队列。
第二方面,本申请实施例提供了一种数据的传输装置,应用于电子设备,所述电子设备创建有第一图像读取对象和第二图像读取对象,所述装置包括:缓存队列获取模块,用于获取所述第一图像读取对象对应的第一缓存队列,其中,所述第一缓存队列包括多个第一缓存单元;缓存单元取出模块,用于从所述多个第一缓存单元中取出第一目标缓存单元,其中,所述第一目标缓存单元缓存有待传输数据;缓存单元加入模块,用于将所述第一目标缓存单元加入所述第二图像读取对象对应的第二缓存队列。
第三方面,本申请实施例提供了一种电子设备,包括存储器和处理器,所述存储器耦接到所述处理器,所述存储器存储指令,当所述指令由所述处理器执行时所述处理器执行上述方法。
第四方面,本申请实施例提供了一种计算机可读取存储介质,所述计算机可读取存储介质中存储有程序代码,所述程序代码可被处理器调用执行上述方法。
本申请实施例提供的数据的传输方法、装置、电子设备以及存储介质,获取第一图像读取对象对应的第一缓存队列,其中,该第一缓存队列包括多个第一缓存单元,从多个第一缓存单元中取出第一目标缓存单元,其中,第一目标缓存单元缓存有待传输数据,将第一目标缓存单元加入第二图像读取对象对应的第二缓存队列,从而通过对将缓存有待传输数据的缓存单元在两个图像读取对象之间进行切换,可以降低数据传输的延时,实现高性能的跨进程数据传输。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1示出了本申请实施例用于执行根据本申请实施例的..方法的电子设备的框图;
图2示出了本申请实施例提供的电子设备的操作系统的框图;
图3示出了本申请一实施例提供的数据的传输方法的流程示意图;
图4示出了本申请一实施例提供的数据的传输方法的流程示意图;
图5示出了本申请的图4所示的数据的传输方法的步骤S250的流程示意图;
图6示出了本申请一实施例提供的数据的传输方法的流程示意图;
图7示出了本申请一实施例提供的数据的传输方法的流程示意图;
图8示出了本申请的图7所示的数据的传输方法的步骤S440的流程示意图;
图9示出了本申请一实施例提供的数据的传输方法的流程示意图;
图10示出了本申请实施例提供的数据的传输装置的模块框图;
图11示出了本申请实施例的用于保存或者携带实现根据本申请实施例的..方法的程序代码的存储单元。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
在安卓Android系统的影像Camera领域,有较多的场景会使用到两个图像读取对象间传递数据的情况。例如,电子设备安装的应用程序先通过一个图像读取对象获取一路数据,这时应用程序需要先将该数据传给一个进程做一个算法处理,然后将经过算法处理后的数据通过另一个图像读取对象传给另一个进程进行编码形成视频。因此,两个图像读取对象间的数据传输性能非常关键。
目前,电子设备在进行跨进程的数据传输时,是从一个图像读取对象中取出一个缓存单元,从一个图像读取对象中也取出一个缓存单元,然后将其中一个缓存单元中的数据拷贝到另一个缓存单元中,然后将各个缓存单元重新放回至对应的图像读取对象的缓存队列中,以通过该方法是实现数据的传递。但是,上述方式会存在一次数据的拷贝,会导致耗时的增加,影响数据的传输性能。
针对上述问题,发明人经过长期的研究发现,并提出了本申请实施例提供的数据的传输方法、装置、电子设备以及存储介质,通过对将缓存有待传输数据的缓存单元在两个图像读取对象之间进行切换,可以降低数据传输的延时,实现高性能的跨进程数据传输。其中,具体的数据的传输方法在后续的实施例中进行详细的说明。
下面将可用于本申请实施例提供的数据的传输方法的应用环境进行说明。
请参阅图1,其示出了本申请实施例提供的一种电子设备100的结构框图。该电子设备100可以是智能手机、平板电脑、电子书等能够运行应用程序的电子设备。本申请中的电子设备100可以包括一个或多个如下部件:处理器110、存储器120以及一个或多个应用程序,其中一个或多个应用程序可以被存储在存储器120中并被配置为由一个或多个处理器110执行,一个或多个程序配置用于执行如前述方法实施例所描述的方法。
其中,处理器110可以包括一个或者多个处理核。处理器110利用各种接口和线路连接整个电子设备100内的各个部分,通过运行或执行存储在存储器120内的指令、程序、代码集或指令集,以及调用存储在存储器120内的数据,执行电子设备100的各种功能和处理数据。可选地,处理器110可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(ProgrammableLogic Array,PLA)中的至少一种硬件形式来实现。处理器110可集成中央处理器(CentralProcessing Unit,CPU)、图形处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责待显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器110中,单独通过一块通信芯片进行实现。
存储器120可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。存储器120可用于存储指令、程序、代码、代码集或指令集。存储器120可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储电子设备100在使用中所创建的数据(比如电话本、音视频数据、聊天记录数据)等。
以电子设备100的操作系统为安卓(Android)系统为例,存储器120中存储的程序和数据如图2所示,存储器120中存储有Linux内核层220、系统运行库层240、应用框架层260和应用层280。Linux内核层220为电子设备100的各种硬件提供了底层的驱动,如显示驱动、音频驱动、摄像头驱动、蓝牙驱动、Wi-Fi驱动、电源管理等。系统运行库层240通过一些C/C++库来为Android系统提供了主要的特性支持。如SQLite库提供了数据库的支持,OpenGL/ES库提供了3D绘图的支持,Webkit库提供了浏览器内核的支持等。在系统运行库层240中还提供有安卓运行时库(Android Runtime),它主要提供了一些核心库,能够允许开发者使用Java语言来编写Android应用。应用框架层260提供了构建应用程序时可能用到的各种API,开发者也可以通过使用这些API来构建自己的应用程序,比如活动管理、窗口管理、视图管理、通知管理、内容提供者、包管理、通话管理、资源管理、定位管理。应用层280中运行有至少一个应用程序,这些应用程序可以是操作系统自带的联系人程序、短信程序、时钟程序、相机应用等;也可以是第三方开发者所开发的应用程序,比如即时通信程序、相片美化程序等。
请参阅图3,图3示出了本申请一实施例提供的数据的传输方法的流程示意图。该方法用于通过对将缓存有待传输数据的缓存单元在两个图像读取对象之间进行切换,可以降低数据传输的延时,实现高性能的跨进程数据传输。在具体的实施例中,该数据的传输方法应用于如图10所示的数据的传输装置300以及配置有数据的传输装置300的电子设备100(图1)。下面将以电子设备为例,说明本实施例的具体流程,当然,可以理解的,本实施例所应用的电子设备可以为智能手机、平板电脑、穿戴式电子设备、台式电脑等,在此不做限定。在本实施例中,该电子设备创建有第一图像读取对象和第二图像读取对象,下面将针对图3所示的流程进行详细的阐述,所述数据的传输方法具体可以包括以下步骤:
步骤S110:获取所述第一图像读取对象对应的第一缓存队列,其中,所述第一缓存队列包括多个第一缓存单元。
在本实施例中,电子设备可以创建有第一图像读取对象和第二图像读取对象。其中,第一图像读取对象的内部实际是由一个循环缓存队列组成,第二图像读取对象的内部实际也是有一个循环缓存队列组成。
作为一种方式,电子设备可以在需要进行数据传输时创建第一图像读取对象和第二图像读取对象,以通过第一图像读取对象和第二图像读取对象实现数据的传输。作为又一种方式,电子设备可以预先创建第一图像读取对象和第二图像读取对象,以在需要进行数据传输时通过已创建的第一图像读取对象和第二图像读取对象实现数据的传输。
在一些实施方式中,该第一图像读取对象可以包括指向缓存区的第一指针对象,以通过该第一指针对象从缓存区读取数据。该第二图像读取对象可以包括指向缓存区的第二指针对象,以通过该第二指针对象从缓存区读取数据。
在一些实施方式中,电子设备可以创建第一ImageReader对象作为第一图像读取对象,并创建第二ImageReader对象作为第二图像读取对象。其中,第一ImageReader对象中包括的第一指针对象可以是第一Surface,通过第一Surface可以访问第一Surface指向的缓存区。其中,第二ImageReader对象中包括的第二指针对象可以是第二Surface,通过第二Surface可以访问第二Surface指向的缓存区。
在本实施例中,电子设备可以获取该第一图像读取对象对应的第一缓存队列,其中,该第一缓存队列包括多个第一缓存单元,该多个第一缓存单元中的每个缓存单元用于缓存数据(如待传输数据)。作为一种方式,该第一缓存队列为第一循环缓存队列,该第一循环缓存队列包括循环排布的多个第一缓存单元。
步骤S120:从所述多个第一缓存单元中取出第一目标缓存单元,其中,所述第一目标缓存单元缓存有待传输数据。
在本实施例中,电子设备在获得第一图像读取对象对应的多个第一缓存单元后,则可以从该多个第一缓存单元中取出缓存有待传输数据的第一缓存单元,作为第一目标缓存单元。在一些实施方式中,电子设备在获得第一图像读取对象对应的多个第一缓存单元后,可以分别对该多个第一缓存单元进行检测,以确定该多个第一缓存单元中是否缓存有待传输数据,并将确定缓存有待传输数据的第一缓存单元确定为第一目标缓存单元,并将该第一目标缓存单元从多个第一缓存单元中取出。
作为一种方式,若检测到该多个第一缓存单元中的一个第一缓存单元缓存有待传输数据时,则可以直接将缓存有待传输数据的一个第一缓存单元确定为第一目标缓存单元,并将该第一目标缓存单元从多个第一缓存单元中取出。
作为又一种方式,若检测到该多个第一缓存单元中的至少两个第一缓存单元均缓存有待传输数据时,则可以从该至少两个第一缓存单元中选取出一个第一缓存单元作为第一目标缓存单元,并将该第一目标缓存单元从多个第一缓存单元中取出。例如,可以从该至少两个第一缓存单元中选取出待传输数据缓存时间最早的第一缓存单元作为第一目标缓存单元;可以从该至少两个第一缓存单元中选取出待传输数据缓存时间最长的第一缓存单元作为第一目标缓存单元;可以从该至少两个第一缓存单元中取出优先级最高的第一缓存单元作为第一目标缓存单元等,在此不做限定。
作为再一种方式,若检测到该多个第一缓存单元中的至少两个第一缓存单元均缓存有待传输数据时,则可以将该至少两个第一缓存单元均作为第一目标缓存单元,并将该第一目标缓存单元从多个第一缓存单元中取出。
步骤S130:将所述第一目标缓存单元加入所述第二图像读取对象对应的第二缓存队列。
在一些实施方式中,电子设备在从第一图像读取对象对应的第一缓存队列中取出第一目标缓存单元后,则可以直接将该第一目标缓存单元加入第二图像读取对象对应的第二缓存队列。基于此,该第一目标缓存单元上缓存的待传输数据也随第一目标缓存单元加入第二图像读取对象,即待传输数据可以直接传输至第二图像读取对象,避免了待传输数据的拷贝过程,可以降低数据传输的延时,实现高性能的跨进程数据传输。
本申请一实施例提供的数据的传输方法,获取第一图像读取对象对应的第一缓存队列,其中,该第一缓存队列包括多个第一缓存单元,从多个第一缓存单元中取出第一目标缓存单元,其中,第一目标缓存单元缓存有待传输数据,将第一目标缓存单元加入第二图像读取对象对应的第二缓存队列,从而通过对将缓存有待传输数据的缓存单元在两个图像读取对象之间进行切换,可以降低数据传输的延时,实现高性能的跨进程数据传输。
请参阅图4,图4示出了本申请一实施例提供的数据的传输方法的流程示意图。该方法应用于上述电子设备,该第一电子设备创建有第一图像读取对象和第二图像读取对象,该第二缓存队列包括多个第二缓存单元。下面将针对图4所示的流程进行详细的阐述,所述数据的传输方法具体可以包括以下步骤:
步骤S210:获取所述第一图像读取对象对应的第一缓存队列,并获取第二图像读取对象对应的第二缓存队列,其中,所述第一缓存队列包括多个第一缓存单元,所述第二缓存队列包括多个第二缓存单元。
在本实施例中,电子设备可以获取该第一图像读取对象对应的第一缓存队列,其中,该第一缓存队列包括多个第一缓存单元,该多个第一缓存单元中的每个缓存单元用于缓存数据(如待传输数据)。作为一种方式,该第一缓存队列为第一循环缓存队列,该第一循环缓存队列包括循环排布的多个第一缓存单元。
在本实施例中,电子设备可以获取该第二图像读取对象对应的第二缓存队列,其中,该第二缓存队列包括多个第二缓存单元,该多个第二缓存单元中的每个缓存单元用于缓存数据(如待传输数据)。作为一种方式,该第二缓存队列为第二循环缓存队列,该第二循环缓存队列包括循环排布的多个第二缓存单元。
步骤S220:从所述多个第一缓存单元中取出第一目标缓存单元,其中,所述第一目标缓存单元缓存有待传输数据。
其中,步骤S220的具体描述请参阅步骤S120,在此不再赘述。
步骤S230:从所述多个第二缓存单元中取出第二目标缓存单元。
在本实施例中,电子设备在获得第二图像读取对象对应的多个第二缓存单元后,则可以从该多个第二缓存单元中确定至少一个第二缓存单元作为第二目标缓存单元。在一些实施方式中,电子设备在获得第二图像读取对象对应的多个第二缓存单元后,可以分别对该多个第二缓存单元进行检测,以确定该多个第二缓存单元中是否满足预设条件,并将确定满足预设条件的第二缓存单元确定为第二目标缓存单元,并将该第二目标缓存单元从多个第二缓存单元中取出。
在一些实施方式中,该预设条件可以包括:未缓存有待传输数据,或者,未缓存有数据。也就是说,当多个第二缓存单元中的某个第二缓存单元未缓存有待传输数据时,则可以将该第二缓存单元确定为第二目标缓存单元,或者,当多个第二缓存单元中的某个第二缓存单元未缓存有数据时,则可以将该第二缓存单元确定为第二目标缓存单元。
作为一种方式,第二目标缓存单元中包括的第二缓存单元的数量与第一目标缓存单元中包括的第一缓存单元的数量一致。例如,若第一目标缓存单元中包括的第一缓存单元的数量为一个,则可以确定从多个第二缓存单元中取出一个第二缓存单元作为第二目标缓存单元。又例如,若第一目标缓存单元中包括的第一缓存单元的数量为三个,则可以确定从多个第二缓存单元中取出三个第二缓存单元作为第二目标缓存单元。
步骤S240:将所述第一目标缓存单元加入所述第二图像读取对象对应的第二缓存队列。
其中,步骤S240的具体描述请参阅步骤S130,在此不再赘述。
步骤S250:将所述第二目标缓存单元加入所述第一缓存队列。
在一些实施方式中,电子设备在从第二图像读取对象对应的第二缓存队列中取出第二目标缓存单元后,则可以直接将该第二目标缓存单元加入第一图像读取对象对应的第一缓存队列。基于此,该第一目标缓存单元加入第二缓存队列,第二目标缓存单元加入第一缓存队列,这样可以达到第一图像读取对象和第二图像读取对象中的缓存队列的平衡,达到缓存单元的最大复用。
请参阅图5,图5示出了本申请的图4所示的数据的传输方法的步骤S250的流程示意图。下面将针图5所示的流程进行详细的阐述,所述方法具体可以包括以下步骤:
步骤S251:获取所述多个第二缓存单元对应的缓存单元数量,作为第一缓存单元数量。
其中,第一缓存队列和第二缓存队列为循环的缓存队列,因此,该第一缓存队列中包括的第一缓存单元的数量是有上限的,该第二缓存队列中包括的第二缓存单元的数量也是有上限的,例如,该第一缓存队列中包括的第一缓存单元的数量的上限为10、20或者30等,该第二缓存队列中包括的第二缓存单元的数量的上限为10、20或者30等。因此,如果持续将第一缓存队列中的第一目标缓存单元加入第二缓存队列,则会导致第一图像读取对象中很快就不包括第一缓存单元,则该第一图像读取对象需要频繁的申请第一缓存单元,而会导致第二图像读取对象中的第二缓存单元很快就超过上限,则该第二图像读取对象需要频繁的释放第二缓存单元。其中,频繁的申请缓存单元和频繁的释放缓存单元均会造成额外的性能消耗。
在本实施例中,可以获取该第二图像读取对象对应的第二缓存队列中包括的多个第二缓存单元对应的缓存单元数量,作为第一缓存单元数量。
步骤S252:当所述第一缓存单元数量到达所述第二缓存队列对应的数量阈值时,将所述第二目标缓存单元加入所述第一缓存队列。
在一些实施方式中,电子设备可以预先设置并存储有该第二缓存队列对应的数量阈值(上限),该数量阈值用于作为该第二缓存队列中包括的第二缓存单元的数量(第一缓存单元数量)的判断依据。因此,在本实施例中,电子设备在获得第一缓存单元数量后,可以将该第一缓存单元数量与数量阈值进行比较,以判断该第一缓存单元数量是否达到数量阈值。
其中,当该第一缓存单元数量达到数量阈值时,则可以确定该第二缓存队列中包括的第二缓存单元的数量已达到上限,即,已经无法再加入其它缓存单元,因此,可以将第二缓存队列中的第二目标缓存单元取出加入第一缓存队列,以释放第二缓存队列的空间。
其中,当该第一缓存单元数量未达到数量阈值时,则可以确定该第二缓存队列中包括的第二缓存单元的数量未达到上限,即,可以再加入其它缓存单元,因此,可以将第二缓存队列中的第二目标缓存单元取出加入第一缓存队列,或者,可以将第二缓存队列中的第二目标缓存单元取出后放回第二缓存队列。
本申请一实施例提供的数据的传输方法,获取第一图像读取对象对应的第一缓存队列和第二图像读取对象对应的第二缓存队列,其中,第一缓存队列包括多个第一缓存单元,第二缓存队列包括多个第二缓存单元,从多个第一缓存单元中取出第一目标缓存单元,其中,第一目标缓存单元缓存有待传输数据,从多个第二缓存单元中取出第二目标缓存单元,将第一目标缓存单元加入第二缓存队列,将第二目标缓存单元加入第一缓存队列。相较于图3所示的数据的传输方法,本实施例还在两个图像读取对象之间进行缓存单元的互相交换,实现缓存单元的循环利用,可以避免对内存的频繁申请和释放,节省对内存的占用。
请参阅图6,图6示出了本申请一实施例提供的数据的传输方法的流程示意图。该方法应用于上述电子设备,该第一电子设备创建有第一图像读取对象和第二图像读取对象。下面将针对图6所示的流程进行详细的阐述,所述数据的传输方法具体可以包括以下步骤:
步骤S310:获取所述第一图像读取对象对应的第一缓存队列,其中,所述第一缓存队列包括多个第一缓存单元。
步骤S320:从所述多个第一缓存单元中取出第一目标缓存单元,其中,所述第一目标缓存单元缓存有待传输数据。
其中,步骤S310-步骤S320的具体描述请参阅步骤S110-步骤S120,在此不再赘述。
步骤S330:获取所述电子设备的帧率。
在一些实施方式中,可以获取该电子设备的帧率。其中,电子设备的帧率用于表征该电子设备每秒传输的帧数。
在本实施例中,可以实时获取该电子设备的帧率、可以按预设时间间隔获取该电子设备的帧率、可以按预设时间获取电子设备的帧率、也可以按其他预设条件获取电子设备的帧率等,在此不做限定。
步骤S340:当所述帧率大于帧率阈值时,将所述第一目标缓存单元加入所述第二图像读取对象对应的所述第二缓存队列。
在一些实施方式中,电子设备可以预先设置并存储有帧率阈值,其中,该帧率阈值用于作为该电子设备的帧率的判断依据。因此,在本实施例中,在获得该第一电子设备的帧率后,可以将该帧率与帧率阈值进行比较,以判断该帧率是否大于帧率阈值。
其中,当确定该帧率大于帧率阈值时,则可以确定该电子设备在进行高帧率传输,因此,需要加快待传输数据的传输,即,可以将第一目标缓存单元加入第二图像读取对象对应的第二缓存队列。
其中,当确定该帧率不大于帧率阈值时,则可以确定该电子设备在进行低帧率传输,因此,可以不用加快待传输数据的传输,即,可以将待传输数据从第一目标缓存单元拷贝至第二目标缓存单元。
作为一种方式,该帧率阈值可以为30FPS。即,当电子设备的帧率为60FPS、90FPS、120FPS、240FPS时,则可以认为该电子设备的帧率大于帧率阈值。
本申请一实施例提供的数据的传输方法,获取第一图像读取对象对应的第一缓存队列,其中,第一缓存队列包括多个第一缓存单元,从多个第一缓存单元中取出第一目标缓存单元,其中,第一目标缓存单元缓存有待传输数据,获取电子设备的帧率,当帧率大于帧率阈值时,将第一目标缓存单元加入第二图像读取对象对应的第二缓存队列。相较于图3所示的数据的传输方法,本实施例还在电子设备的帧率大于帧率阈值时,将缓存有待传输数据的缓存单元在两个图像读取对象之间进行切换,以提升跨进程数据传输的性能。
请参阅图7,图7示出了本申请一实施例提供的数据的传输方法的流程示意图。该方法应用于上述电子设备,该第一电子设备创建有第一图像读取对象和第二图像读取对象。下面将针对图7所示的流程进行详细的阐述,所述数据的传输方法具体可以包括以下步骤:
步骤S410:获取所述第一图像读取对象对应的第一缓存队列,其中,所述第一缓存队列包括多个第一缓存单元。
步骤S420:从所述多个第一缓存单元中取出第一目标缓存单元,其中,所述第一目标缓存单元缓存有待传输数据。
步骤S430:将所述第一目标缓存单元加入所述第二图像读取对象对应的第二缓存队列。
其中,步骤S410-步骤S430的具体描述请参阅步骤S110-步骤S130,在此不再赘述。
步骤S440:当所述待传输数据从所述第二缓存队列中读出并处理时,从所述第二缓存队列中取出所述第一目标缓存单元。
在一些实施方式中,待传输数据在通过第一目标缓存单元传输至第二图像读取对象后,可以检测该待传输数据是否已从第二图像读取对象中读出并处理。例如,可以检测该待传输数据是否已从第二图像读取对象中传输至目标进程进行编码,当确定该待传输数据已从第二图像读取对象中传输至目标进程进行编码时,则可以确定该待检测数据已从第二图像读取对象中读出并处理,当确定该待传输数据未从第二图像读取对象中传输至目标进程进行编码时,则可以确定该待检测数据未从第二图像读取对象中读出并处理。
其中,当检测到该待传输数据已从第二缓存队列中读取并处理时,则可以从该第二缓存队列中取出该第一目标缓存单元。
请参阅图8,图8示出了本申请的图7所示的数据的传输方法的步骤S440的流程示意图。下面将针对图8所示的流程进行详细的阐述,所述方法具体可以包括以下步骤:
步骤S441:当所述待传输数据从所述第二缓存队列读出并处理时,获取所述第一缓存队列中剩余的第一缓存单元对应的缓存单元数量,作为第二缓存单元数量。
步骤S442:当所述第二缓存单元数量小于预设数量时,从所述第二缓存队列中取出所述第一目标缓存单元。
步骤S450:将所述第一目标缓存单元加入所述第一缓存队列。
在一些实施方式中,电子设备在从第二缓存队列中取出该第一目标缓存单元后,则可以将该第一目标缓存单元加入第一图像读取对象对应的第一缓存队列。基于此,该第一目标缓存单元重新加入该第一缓存队列,可以保持该第一缓队列中的第一缓存单元的数量以及第二缓存队列中的第二缓存单元的数量的平衡,可以避免对内存的频繁申请和释放,节省对内存的占用。
本申请一实施例提供的数据的传输方法,获取第一图像读取对象对应的第一缓存队列,其中,第一缓存队列包括多个第一缓存单元,从多个第一缓存单元中取出第一目标缓存单元,其中,第一目标缓存单元缓存有待传输数据,将第一目标缓存单元加入第二图像读取对象对应的第二缓存队列,当待传输数据从第二缓存队列中读出并处理时,从第二缓存队列中取出第一目标缓存单元,将第一目标缓存单元加入第一缓存队列。相较于图3所示的数据的传输方法,本实施例还在待处理数据从第二图像读取对象中读出后,将第一目标缓存单元重新加入第一缓存队列,以实现缓存单元的循环利用,可以避免对内存的频繁申请和释放,节省对内存的占用。
请参阅图9,图9示出了本申请一实施例提供的数据的传输方法的流程示意图。该方法应用于上述电子设备,下面将针对图9所示的流程进行详细的阐述,所述数据的传输方法具体可以包括以下步骤:
步骤S510:创建第一ImageReader对象作为所述第一图像读取对象,并创建第二ImageReader对象作为所述第二图像读取对象。
步骤S520:获取所述第一图像读取对象对应的第一缓存队列,其中,所述第一缓存队列包括多个第一缓存单元。
步骤S530:从所述多个第一缓存单元中取出第一目标缓存单元,其中,所述第一目标缓存单元缓存有待传输数据。
步骤S540:将所述第一目标缓存单元加入所述第二图像读取对象对应的第二缓存队列。
其中,步骤S510-步骤S540的具体描述请参阅步骤S110-步骤S130,在此不再赘述。
步骤S550:将所述待传输数据从所述第二图像读取对象中传输至目标进程。
在一些实施方式中,待传输数据在传输至第二图像读取对象后,可以通过该第二图像读取对象,将该待传输数据从第二图像读取对象中传输至目标进程。其中,该目标进程用于对该待传输数据进行处理。
步骤S560:通过所述目标进程对所述待传输数据进行编码,获得待显示数据。
在一些实施方式中,待传输数据从第二图像读取对象传输至目标进程后,则可以通过该目标进程对该待传输数据进行编码,获得待显示数据。
作为一种方式,当待传输数据为待传输音频数据时,则可以通过目标进程对该待传输音频数据进行编码,获得待播放音频数据。
作为又一种方式,当待传输数据为待传输图片数据时,则可以通过目标进程对该待传输图片数据进行编码,获得待播放图片数据。
作为再一种方式,当待传输数据为待传输视频数据时,则可以通过目标进程对该待传输视频数据进行编码,获得待播放视频数据。
步骤S570:显示所述待显示数据。
在一些实施方式中,电子设备在获得待显示数据后,可以显示该待显示数据,以提升待显示数据的显示流畅度。其中,该电子设备可以全屏显示该待显示数据、可以部分屏显示该待显示数据、可以悬浮显示该待显示数据等,在此不做限定。
本申请一实施例提供的数据的传输方法,创建第一ImageReader对象作为第一图像读取对象,并创建第二ImageReader对象作为第二图像读取对象,获取第一图像读取对象对应的第一缓存队列,其中,第一缓存队列包括多个第一缓存单元,从多个第一缓存单元中取出第一目标缓存单元,其中,第一目标缓存单元缓存有待传输数据,将第一目标缓存单元加入第二图像读取对象对应的第二缓存队列,将待传输数据从第二图像读取对象中传输至目标进程,通过目标进程对待传输数据进行编码,获得待显示数据,显示待显示数据。相较于图3所示的数据的传输方法,本实施例还将待传输数据从第二图像读取对象中传输至目标进程进行编码,获得并显示待显示数据,以提升数据的显示效果。
请参阅图10,图10示出了本申请实施例提供的数据的传输装置的模块框图。该数据的传输装置300应用于上述电子设备,该电子设备创建有第一图像读取对象和第二图像读取对象,下面将针对图10所示的框图进行阐述,所述数据的传输装置300包括:缓存队列获取模块310、缓存单元取出模块320以及缓存单元加入模块330,其中:
缓存队列获取模块310,用于获取所述第一图像读取对象对应的第一缓存队列,其中,所述第一缓存队列包括多个第一缓存单元。
缓存单元取出模块320,用于从所述多个第一缓存单元中取出第一目标缓存单元,其中,所述第一目标缓存单元缓存有待传输数据。
缓存单元加入模块330,用于将所述第一目标缓存单元加入所述第二图像读取对象对应的第二缓存队列。
进一步地,所述缓存单元加入模块330包括:帧率获取子模块和缓存单元加入子模块,其中:
帧率获取子模块,用于获取所述电子设备的帧率。
缓存单元加入子模块,用于当所述帧率大于帧率阈值时,将所述第一目标缓存单元加入所述第二图像读取对象对应的所述第二缓存队列。
进一步地,所述第二缓存队列包括多个第二缓存单元,所述数据的传输装置300还包括:
第二目标缓存单元取出模块,用于从所述多个第二缓存单元中取出第二目标缓存单元。
第二目标缓存单元加入模块,用于将所述第二目标缓存单元加入所述第一缓存队列。
进一步地,所述第一目标缓存单元加入模块包括:第一缓存单元数量获取子模块和第一目标缓存单元加入子模块,其中:
第一缓存单元数量获取子模块,用于获取所述多个第二缓存单元对应的缓存单元数量,作为第一缓存单元数量。
第一目标缓存单元加入子模块,用于当所述第一缓存单元数量到达所述第二缓存队列对应的数量阈值时,将所述第二目标缓存单元加入所述第一缓存队列。
进一步地,所述数据的缓存装置300还包括:第一目标缓存单元取出模块和第一目标缓存单元加入模块,其中:
第一目标缓存单元取出模块,用于当所述待传输数据从所述第二缓存队列中读出并处理时,从所述第二缓存队列中取出所述第一目标缓存单元。
进一步地,所述第一目标缓存单元取出模块包括:第二缓存单玉数据获取子模块和第一目标缓存单元取出子模块,其中:
第二缓存单元数据获取子模块,用于当所述待传输数据从所述第二缓存队列读出并处理时,获取所述第一缓存队列中剩余的第一缓存单元对应的缓存单元数量,作为第二缓存单元数量。
第一目标缓存单元取出子模块,用于当所述第二缓存单元数量小于预设数量时,从所述第二缓存队列中取出所述第一目标缓存单元。
第一目标缓存单元加入模块,用于将所述第一目标缓存单元加入所述第一缓存队列。
进一步地,所述数据的传输装置300还包括:图像读取对象创建模块,其中:
图像读取对象创建模块,用于创建第一ImageReader对象作为所述第一图像读取对象,并创建第二ImageReader对象作为所述第二图像读取对象。
进一步地,所述数据的传输装置300还包括:待传输数据读取模块、待传输数据处理模块以及待显示数据显示模块,其中:
待传输数据读取模块,用于将所述待传输数据从所述第二图像读取对象中传输至目标进程。
待传输数据处理模块,用于通过所述目标进程对所述待传输数据进行编码,获得待显示数据。
待显示数据显示模块,用于显示所述待显示数据。
在本申请所提供的几个实施例中,模块相互之间的耦合可以是电性,机械或其它形式的耦合。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
请参阅图11,其示出了本申请实施例提供的一种计算机可读存储介质的结构框图。该计算机可读介质400中存储有程序代码,所述程序代码可被处理器调用执行上述方法实施例中所描述的方法。
计算机可读存储介质400可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读存储介质400包括非易失性计算机可读介质(non-transitory computer-readable storage medium)。计算机可读存储介质400具有执行上述方法中的任何方法步骤的程序代码410的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码410可以例如以适当形式进行压缩。
综上所述,本申请实施例提供的数据的传输方法、装置、电子设备以及存储介质,获取第一图像读取对象对应的第一缓存队列,其中,该第一缓存队列包括多个第一缓存单元,从多个第一缓存单元中取出第一目标缓存单元,其中,第一目标缓存单元缓存有待传输数据,将第一目标缓存单元加入第二图像读取对象对应的第二缓存队列,从而通过对将缓存有待传输数据的缓存单元在两个图像读取对象之间进行切换,可以降低数据传输的延时,实现高性能的跨进程数据传输。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (11)

1.一种数据的传输方法,其特征在于,应用于电子设备,所述电子设备创建有第一图像读取对象和第二图像读取对象,所述方法包括:
获取所述第一图像读取对象对应的第一缓存队列,其中,所述第一缓存队列包括多个第一缓存单元;
从所述多个第一缓存单元中取出第一目标缓存单元,其中,所述第一目标缓存单元缓存有待传输数据;
将所述第一目标缓存单元加入所述第二图像读取对象对应的第二缓存队列。
2.根据权利要求1所述的方法,其特征在于,所述第二缓存队列包括多个第二缓存单元,所述方法还包括:
从所述多个第二缓存单元中取出第二目标缓存单元;
将所述第二目标缓存单元加入所述第一缓存队列。
3.根据权利要求2所述的方法,其特征在于,所述将所述第二目标缓存单元加入所述第一缓存队列,包括:
获取所述多个第二缓存单元对应的缓存单元数量,作为第一缓存单元数量;
当所述第一缓存单元数量到达所述第二缓存队列对应的数量阈值时,将所述第二目标缓存单元加入所述第一缓存队列。
4.根据权利要求1所述的方法,其特征在于,所述将所述第一目标缓存单元加入所述第二图像读取对象对应的第二缓存队列,包括:
获取所述电子设备的帧率;
当所述帧率大于帧率阈值时,将所述第一目标缓存单元加入所述第二图像读取对象对应的所述第二缓存队列。
5.根据权利要求1所述的方法,其特征在于,在所述将所述第一目标缓存单元加入所述第二图像读取对象对应的第二缓存队列之后,还包括:
当所述待传输数据从所述第二缓存队列中读出并处理时,从所述第二缓存队列中取出所述第一目标缓存单元;
将所述第一目标缓存单元加入所述第一缓存队列。
6.根据权利要求5所述的方法,其特征在于,所述当所述待传输数据从所述第二缓存队列中读出并处理时,从所述第二缓存队列中取出所述第一目标缓存单元,包括:
当所述待传输数据从所述第二缓存队列读出并处理时,获取所述第一缓存队列中剩余的第一缓存单元对应的缓存单元数量,作为第二缓存单元数量;
当所述第二缓存单元数量小于预设数量时,从所述第二缓存队列中取出所述第一目标缓存单元。
7.根据权利要求1-6任一项所述的方法,其特征在于,在所述获取所述第一图像读取对象对应的第一缓存队列之前,还包括:
创建第一ImageReader对象作为所述第一图像读取对象,并创建第二ImageReader对象作为所述第二图像读取对象。
8.根据权利要求1-6任一项所述的方法,其特征在于,在所述将所述第一目标缓存单元加入所述第二图像读取对象对应的第二缓存队列之后,还包括:
将所述待传输数据从所述第二图像读取对象中传输至目标进程;
通过所述目标进程对所述待传输数据进行编码,获得待显示数据;
显示所述待显示数据。
9.一种数据的传输装置,其特征在于,应用于电子设备,所述电子设备创建有第一图像读取对象和第二图像读取对象,所述装置包括:
缓存队列获取模块,用于获取所述第一图像读取对象对应的第一缓存队列,其中,所述第一缓存队列包括多个第一缓存单元;
缓存单元取出模块,用于从所述多个第一缓存单元中取出第一目标缓存单元,其中,所述第一目标缓存单元缓存有待传输数据;
缓存单元加入模块,用于将所述第一目标缓存单元加入所述第二图像读取对象对应的第二缓存队列。
10.一种电子设备,其特征在于,包括存储器和处理器,所述存储器耦接到所述处理器,所述存储器存储指令,当所述指令由所述处理器执行时所述处理器执行如权利要求1-8任一项所述的方法。
11.一种计算机可读取存储介质,其特征在于,所述计算机可读取存储介质中存储有程序代码,所述程序代码可被处理器调用执行如权利要求1-8任一项所述的方法。
CN202111271767.4A 2021-10-29 2021-10-29 数据的传输方法、装置、电子设备以及存储介质 Pending CN113961484A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111271767.4A CN113961484A (zh) 2021-10-29 2021-10-29 数据的传输方法、装置、电子设备以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111271767.4A CN113961484A (zh) 2021-10-29 2021-10-29 数据的传输方法、装置、电子设备以及存储介质

Publications (1)

Publication Number Publication Date
CN113961484A true CN113961484A (zh) 2022-01-21

Family

ID=79468337

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111271767.4A Pending CN113961484A (zh) 2021-10-29 2021-10-29 数据的传输方法、装置、电子设备以及存储介质

Country Status (1)

Country Link
CN (1) CN113961484A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116230006A (zh) * 2023-05-09 2023-06-06 成都力比科技有限公司 一种基于gpu的音效可视化方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102984576A (zh) * 2012-12-21 2013-03-20 四川九洲电器集团有限责任公司 一种ts传输流媒体音视频剥离的方法及系统
CN108391131A (zh) * 2018-04-16 2018-08-10 西安万像电子科技有限公司 图像帧编码方法及装置
CN110366033A (zh) * 2019-07-17 2019-10-22 腾讯科技(深圳)有限公司 一种视频播放方法、装置、设备及存储介质
CN111491102A (zh) * 2020-04-22 2020-08-04 Oppo广东移动通信有限公司 拍照场景的检测方法、系统、移动终端及存储介质
US20210126868A1 (en) * 2018-07-13 2021-04-29 Autel Robotics Co., Ltd. Data transmission method, device and system of unmanned aerial vehicle system and ground image transmission module

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102984576A (zh) * 2012-12-21 2013-03-20 四川九洲电器集团有限责任公司 一种ts传输流媒体音视频剥离的方法及系统
CN108391131A (zh) * 2018-04-16 2018-08-10 西安万像电子科技有限公司 图像帧编码方法及装置
US20210126868A1 (en) * 2018-07-13 2021-04-29 Autel Robotics Co., Ltd. Data transmission method, device and system of unmanned aerial vehicle system and ground image transmission module
CN110366033A (zh) * 2019-07-17 2019-10-22 腾讯科技(深圳)有限公司 一种视频播放方法、装置、设备及存储介质
CN111491102A (zh) * 2020-04-22 2020-08-04 Oppo广东移动通信有限公司 拍照场景的检测方法、系统、移动终端及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
郝伟;苏秀琴;杨小君;李哲;吴慧莲;: "基于队列式缓存结构的视频图像存储算法", 光子学报, no. 09, 25 September 2006 (2006-09-25), pages 153 - 156 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116230006A (zh) * 2023-05-09 2023-06-06 成都力比科技有限公司 一种基于gpu的音效可视化方法

Similar Documents

Publication Publication Date Title
US20220139353A1 (en) Display method, electronic device, and non-transitory computer-readable storage medium
CN109151966B (zh) 终端控制方法、装置、终端设备及存储介质
CN103853620B (zh) 一种众核处理器进程间相互通信的方法、装置及系统
US20140026137A1 (en) Performing scheduling operations for graphics hardware
KR102466012B1 (ko) 프로세서 코어를 스케쥴링하는 방법, 장치, 단말 및 저장 매체
US20080303837A1 (en) Batching graphics operations with time stamp tracking
US8522254B2 (en) Programmable integrated processor blocks
CN113542757A (zh) 云应用的图像传输方法、装置、服务器及存储介质
CN112843676B (zh) 数据处理方法、装置、终端、服务器及存储介质
TW201820883A (zh) 用於管理快取的方法、裝置及系統
WO2020063008A1 (zh) 资源配置方法、装置、终端及存储介质
JP7418569B2 (ja) 異種プラットフォームでのハードウェアアクセラレーションによるタスクのスケジューリング及び負荷分散のための送信及び同期技術
US9564108B2 (en) Video frame processing on a mobile operating system
CN113395572A (zh) 一种视频处理方法、装置、存储介质及电子设备
CN109284183A (zh) 动图播放方法、装置、计算机存储介质和终端
US20240307767A1 (en) Cloud Data Processing
CN114265648B (zh) 编码调度方法、服务器及客户端和获取远程桌面的系统
CN113535063A (zh) 直播页面切换方法、视频页面切换方法、电子设备及存储介质
CN113961484A (zh) 数据的传输方法、装置、电子设备以及存储介质
CN109688462B (zh) 降低设备功耗的方法、装置、电子设备及存储介质
CN114268796A (zh) 视频流处理的方法及装置
CN117435532A (zh) 基于视频硬件加速接口的拷贝方法、装置及存储介质
CN113138940A (zh) 内存回收方法、装置、电子设备以及存储介质
CN116546228B (zh) 用于虚拟场景的推流方法、装置、设备及存储介质
CN112135056A (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