掌桥专利:专业的专利平台
掌桥专利
首页

数据传输方法、数据解析方法、芯片及应用处理器

文献发布时间:2024-04-18 19:58:21


数据传输方法、数据解析方法、芯片及应用处理器

技术领域

本申请实施例涉及芯片技术领域,特别涉及一种数据传输方法、数据解析方法、芯片及应用处理器。

背景技术

应用处理器(Application Processor,AP)作为计算机设备的功能实现核心,用于对各类数据进行处理。

为了降低应用处理器的处理压力,相关技术通过在应用处理器以外设置外置芯片,利用外置芯片进行前置数据处理,并将前置处理后的数据传输至应用处理器进行后续处理。

发明内容

本申请实施例提供了一种数据传输方法、数据解析方法、芯片及应用处理器。所述技术方案如下:

一方面,本申请实施例提供了一种数据传输方法,所述方法由外置芯片执行,所述方法包括:

向应用处理器传输分段数据包,所述分段数据包由目标数据分段打包得到;

在所述目标数据的传输进度达到第i进度的情况下,向所述应用处理器通知所述第i进度,i为正整数;

在所述应用处理器基于所述第i进度读取并解析所述分段数据包的过程中,向所述应用处理器传输第i+1进度对应的所述分段数据包。

另一方面,本申请实施例提供了一种数据解析方法,所述方法由应用处理器执行,所述方法包括:

接收外置芯片传输的分段数据包,所述分段数据包由所述外置芯片对目标数据进行分段打包得到;

在接收到所述外置芯片通知的第i进度的情况下,基于所述第i进度读取所述分段数据包,所述第i进度用于表征所述目标数据的传输进度;

解析读取到的所述分段数据包。

另一方面,本申请实施例提供了一种外置芯片,所述外置芯片包括可编程逻辑电路和/或程序指令,当所述外置芯片运行时,用于实现如上述方面所述的数据传输方法。

另一方面,本申请实施例提供了一种应用处理器,所述应用处理器包括可编程逻辑电路和/或程序指令,当所述应用处理器运行时,用于实现如上述方面所述的数据解析方法。

另一方面,本申请实施例提供了一种计算机设备,所述计算机设备设置有外置芯片以及应用处理器,所述外置芯片与所述应用处理器相连;

所述外置芯片用于实现如上述方面所述的数据传输方法;

所述应用处理器用于实现如上述方面所述的数据解析方法。

另一方面,本申请实施例提供了一种计算机可读存储介质,所述存储介质存储有至少一条程序指令,所述至少一条程序指令用于被处理器执行以实现如上述方面所述的数据传输方法,或,数据解析方法。

另一方面,本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方面提供的数据传输方法,或,数据解析方法。

本申请实施例中,当外置芯片需要向应用处理器传输目标数据时,通过对目标数据进行分段打包,将打包得到的分段数据包传输至分段数据包,并在目标数据的传输进度达到第i进度时通知应用处理器,使应用处理器能够基于第i进度读取已接收到的分段数据包并进行解析,而外置芯片则能够继续传输第i+1进度对应的分段数据包,实现数据传输与数据解析动态同步执行,有助于降低数据传输与解析过程的总耗时,能够满足外置芯片与应用处理器之间数据的延时需求。

附图说明

图1是本申请一个示例性实施例示出的图像处理器与应用处理器的交互示意图;

图2是本申请一个示例性实施例示出的图像处理器、外置芯片以及应用处理器之间的交互示意图;

图3示出了本申请一个示例性实施例提供的数据传输方法的流程图;

图4示出了本申请一个示例性实施例提供的数据解析方法的流程图;

图5示出了本申请一个示例性实施例提供的数据传输、数据解析方法的流程图;

图6是本申请一个示例性实施例示出的图像统计数据传输以及解析过程的实施示意图;

图7是本申请一个示例性实施例示出的数据传输以及数据解析耗时的示意图;

图8是本申请另一个示例性实施例示出的数据传输以及数据解析耗时的示意图;

图9是本申请一个示例性实施例示出的外置芯片的结构示意图;

图10是本申请一个示例性实施例示出的应用处理器的结构示意图;

图11示出了本申请一个示例性实施例提供的计算机设备的结构方框图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。

在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。

在未设置外置芯片的情况下,各个组件直接向应用处理器传输数据,由应用处理器进行数据处理。如图1所示,图像传感器11通过移动产业处理器接口(Mobile IndustryProcessor Interface,MIPI),直接将原始图像数据传输至应用处理器12。应用处理器12中的图像信号处理器(Image Signal Processor,ISP)121从内存122中读取原始图像数据,并对原始图像数据进行处理,从而将处理得到的图像统计数据写回内存122中,整个过程无需进行打包和解析。

为了降低应用处理器的负载,如图2所示,可以在应用处理器12的外部额外设置外置芯片13。图像传感器11通过MIPI将原始图像数据传输至外置芯片13,由外置芯片13中的图像统计模块131进行图像统计,得到图像统计数据,并通过MIPI将图像统计数据发送至应用处理器12。

然而,除了图像统计数据外,例如原始数据(Raw Data)、YUV数据(YUV Data)、元数据(Meta Data)等数据也需要通过MIPI传输至应用处理器12。如图2所示,外置芯片13中的转换模块132和其他模块133同样需要通过MIPI向应用处理器12传输数据。

由于应用处理器的原始数据转存端口(Raw Dump Interface,RDI)的数量有限,因此多种类型的数据需要共用同一个RDI(图2中图像统计模块131和转换模块132共用同一RDI)。相应的,外置芯片需要对共用同一RDI的多种类型数据进行协议打包,并将打包得到的数据包传输至应用处理器,由应用处理器进行协议解析得到数据。如图2所示,应用处理器12中的解析模块123从内存122中读取图像统计数据包,并对其进行解析,从而将解析得到图像统计数据写回内存122中。

关于数据的打包以及解析过程,在一些实施例中,外置芯片基于原始图像数据生成图像统计数据后,对图像统计数据进行打包,并通过MIPI向应用处理器为传输包含完整图像统计数据的图像统计数据包。当图像统计数据包传输完成时,外置芯片触发应用处理器。应用处理器基于接收到的触发消息,对图像统计数据包进行解析,从而得到完整的图像统计数据,以便进行后续图像处理。

显然,上述数据传输以及解析过程分段执行(解析在完整传输后执行),数据传输以及解析的整体耗时=传输时间+解析时间,耗时较高,无法满足部分应用场景对数据处理时延的需求。

为了降低数据处理耗时,本申请实施例提供了一种数据传输以及数据解析方案。应用该方案后,当外置芯片需要向应用处理器传输目标数据时,通过对目标数据进行分段打包,将打包得到的分段数据包传输至分段数据包,并在目标数据的传输进度达到第i进度时通知应用处理器,使应用处理器能够基于第i进度读取已接收到的分段数据包并进行解析,而外置芯片则能够继续传输第i+1进度对应的分段数据包,实现数据传输与数据解析动态同步执行,有助于降低数据传输与解析过程的总耗时,在降低应用处理器负载的同时,能够满足外置芯片与应用处理器之间数据的延时需求。

请参考图3,其示出了本申请一个示例性实施例提供的数据传输方法的流程图。本实施例以该方法用于外置芯片为例进行说明,该方法可以包括如下步骤。

步骤301,向应用处理器传输分段数据包,分段数据包由目标数据分段打包得到。

本申请实施例中的外置芯片(外置芯片的外置表示独立于应用处理器,位于应用处理器的外部)与计算机设备中其他组件相连,用于对其他组件输出的数据进行预处理后,并将预处理数据传输至应用处理器,由应用处理器进行后续处理,以此降低应用处理器的处理压力(负载)。

可选的,该外置芯片可以是用于对图像数据进行预处理的芯片,比如,该外置芯片可以与图像传感器相连;或者,该外置芯片可以是用于对音频数据进行预处理的芯片,比如,该外置芯片可以与麦克风相连,本申请实施例对外置芯片的具体用途以及具体数量不作限定。

可选的,目标数据是外置芯片进行数据预处理后得到的数据。比如,目标数据是外置芯片对图像传感器传输的原始图像数据进行图像统计后得到的图像统计数据(例如3A数据),本申请实施例对目标数据的具体类型不作限定。

当需要将目标数据传输至应用处理器时,外置芯片即对目标数据进行分段打包(需要遵循相应的协议),得到若干个分段数据包,并以包为单位向应用处理器传输分段数据包,其中,该每个分段数据包中包含目标数据中的一部分。比如,外置芯片对图像统计数据进行分段打包,得到的分段数据包中包含原始图像中部分区域的图像统计数据。

在一种可能的实施方式中,外置芯片对目标数据进行分段打包的过程中,向应用处理器传输已打包完成的分段数据包。其中,外置芯片可以通过MIPI向应用处理器传输分段数据包。

当然,在其他可能的实施方式中,外置芯片也可以在目标数据完全打包后,依次向应用处理器传输分段数据包。

步骤302,在目标数据的传输进度达到第i进度的情况下,向应用处理器通知第i进度,i为正整数。

不同于相关技术中,外置芯片在目标数据完整传输完成后,才触发应用处理器进行解析,本实施例中,外置芯片在传输过程中,动态向应用处理器通知传输进度,以便应用处理器在接收分段数据包的过程中,对已接收到的分段数据包进行解析。

在一种可能的实施方式中,外置芯片在传输分段数据包的过程中,根据已传输的分段数据包,确定目标数据实时的传输进度。其中,该传输进度可以已传输的数据量占目标数据的总数据量的比例。

可选的,外置芯片中设置有至少两个进度。其中,至少两个进度为均匀划分的进度,比如,第一进度为1/4,第二进度为2/4,第三进度为3/4,第四进度为4/4。或者,至少两个进度为非均匀划分的进度,比如,第一进度为1/4,第二进度为3/4,第三进度为4/4。本申请实施例对此不作限定。

外置芯片检测实时的传输进度是否达到预先设置的进度,若达到其中的第i进度,则向应用处理器通知第i进度。在一些实施例中,外置芯片传输分段数据包与通知进度采用不同的方式,且通知进度的速度远快于传输分段数据包的速度。

步骤303,在应用处理器基于第i进度读取并解析分段数据包的过程中,向应用处理器传输第i+1进度对应的分段数据包。

应用处理器接收到通知后,基于第i进度从内存中读取已接收到的分段数据包,并对读取到的分段数据包进行解析,得到其中包含的数据(即目标数据的一部分)。其中,应用处理器按照相邻传输进度之间的间隔批量读取分段数据包。比如,当相邻传输进度之间的间隔为1/4时,应用处理器每次从内存中读取的分段数据包中包含1/4的目标数据。

需要说明的是,应用处理器接收到通知后,并非立即读取分段数据包,而是在已读取的分段数据包完成解析后,继续读取分段数据包,保证已读取的分段数据包被完整解析。

在应用处理器解析分段数据包的过程中,外置芯片继续向应用处理器传输第i+1进度对应的分段数据包,并在传输进度达到第i+1进度的情况下,向应用处理器处理第i+1进度,以此类推,直至目标数据对应的分段数据包均传输完成。

可见,通过对目标数据进行分段打包,并向应用处理器通知实时传输进度,使外置芯片侧的数据传输与应用处理器侧的数据解析能够并行执行,数据传输以及解析的整体耗时<传输时间+解析时间,从而满足部分应用场景对数据处理时延的需求。

综上所述,本申请实施例中,当外置芯片需要向应用处理器传输目标数据时,通过对目标数据进行分段打包,将打包得到的分段数据包传输至分段数据包,并在目标数据的传输进度达到第i进度时通知应用处理器,使应用处理器能够基于第i进度读取已接收到的分段数据包并进行解析,而外置芯片则能够继续传输第i+1进度对应的分段数据包,实现数据传输与数据解析动态同步执行,有助于降低数据传输与解析过程的总耗时,能够满足外置芯片与应用处理器之间数据的延时需求。

请参考图4,其示出了本申请一个示例性实施例提供的数据解析方法的流程图。本实施例以该方法用于应用处理器为例进行说明,该方法可以包括如下步骤。

步骤401,接收外置芯片传输的分段数据包,分段数据包由外置芯片对目标数据进行分段打包得到。

在一种可能的实施方式中,应用处理器通过MIPI接收外置芯片传输的分段数据包,并将该分段数据包存储在内存中,以便后续处理时读取。

在一些实施例中,当应用处理器接收到多个外置芯片传输的分段数据包时,应用处理器将不同外置芯片传输的分段数据包存储在不同的存储地址,并保证同一外置芯片传输的分段数据包的存储地址连续。为了方便表述,下述实施例中,仅以接收到单个外置芯片传输的分段数据包为例进行说明。

步骤402,在接收到外置芯片通知的第i进度的情况下,基于第i进度读取分段数据包,第i进度用于表征目标数据的传输进度。

由于外置芯片并非在完整传输目标数据后才触发应用处理器进行解析,因此外置芯片需要在目标数据的传输进度达到预先设置的进度时通知应用处理器,以便应用处理器基于目标数据的实时传输进度,从内存中读取分段数据包。

可选的,外置芯片中设置有至少两个进度。其中,至少两个进度为均匀划分的进度,比如,第一进度为1/4,第二进度为2/4,第三进度为3/4,第四进度为4/4。或者,至少两个进度为非均匀划分的进度,比如,第一进度为1/4,第二进度为3/4,第三进度为4/4。本申请实施例对此不作限定。

其中,应用处理器按照相邻传输进度之间的间隔批量读取分段数据包。比如,当相邻传输进度之间的间隔为1/4时,应用处理器每次从内存中读取的分段数据包中包含1/4的目标数据。

需要说明的是,当应用处理器完成对已读取分段数据包的解析时,基于第i进度继续读取分段数据包;当应用处理器未完成对已读取分段数据包的解析时,应用处理器则继续对已读取的分段数据包进行解析。

步骤403,解析读取到的分段数据包。

进一步的,应用处理器对分段数据包进行解析,并将解析结果写回到内存中,以便供后续使用。

比如,应用处理器对分段数据包进行解析,得到其中包含的图像统计数据,并将图像统计数据写回内存中。当一帧图像的所有图像统计数据均解析完成时,应用处理器进一步通过图像处理模块,基于图像统计数据对图像进行处理。

综上所述,本申请实施例中,当外置芯片需要向应用处理器传输目标数据时,通过对目标数据进行分段打包,将打包得到的分段数据包传输至分段数据包,并在目标数据的传输进度达到第i进度时通知应用处理器,使应用处理器能够基于第i进度读取已接收到的分段数据包并进行解析,而外置芯片则能够继续传输第i+1进度对应的分段数据包,实现数据传输与数据解析动态同步执行,有助于降低数据传输与解析过程的总耗时,能够满足外置芯片与应用处理器之间数据的延时需求。

结合图3和图4的实施例,在一种可能的应用场景下,当外置芯片与图像传感器相连,用于对图像传感器输出的原始图像进行预处理时,外置芯片获取图像传感器输出的原始图像(以帧为单位)后,对原始图像进行图像统计,得到图像统计数据(比如3A统计数据),从而对图像统计数据进行分段打包,得到分段数据包。

外置芯片将包含部分图像统计数据的分段数据包传输至应用处理器,并基于传输进度通知应用处理器。应用处理器基于传输进度读取已接收到的分段数据包,并对分段数据包进行解析,得到其中包含的图像统计数据。当图像统计数据对应的所有分段数据包均解析完成时,应用处理器将完整的图像统计数据输入图像处理算法进行后续图像处理。

采用上述方案传输3A统计数据(包括自动曝光、自动对焦、自动白平衡),能够降低单帧图像数据的传输以及解析总耗时,从而使得自动对焦(Auto Focus,AF)反馈更加迅速及时,并减少自动曝光(Automatic Exposure,AE)过程中曝光生效的帧间隔,有助于提升拍摄体验。

关于外置芯片通知应用处理器传输进度时采用的具体方式,在一种可能的实施方式中,外置芯片采用触发硬件中断的方式通知应用处理器,下面采用示例性的实施例进行说明。

请参考图5,其示出了本申请一个示例性实施例提供的数据传输、数据解析方法的流程图。该方法可以包括如下步骤。

步骤501,应用处理器向外置芯片下发配置信息,配置信息包含传输进度的划分粒度。

为了使外置芯片知悉传输进度的划分方式,应用处理器需要向外置芯片下发包含传输进度的划分粒度的配置信息,其中,该划分粒度同于指示传输进度的划分数量,且划分粒度越小,传输进度的划分数量越少,划分粒度越大,传输进度的划分数量越多。比如,当传输进度的划分粒度为4时,表面整体传输进度被划分为4份。

关于配置信息的下发时机,在一种可能的实施方式中,当外置芯片用于对图像传感器输出的原始图像进行图像统计,从而向应用处理器传输图像统计数据(即目标数据)时,响应于相机启动指令,应用处理器向外置芯片下发配置信息。

在其他可能的实施方式中,当外置芯片用于对麦克风输出的音频信号进行预处理(比如降噪、人声强化等等),从而向应用处理器传输处理后的音频数据(即目标数据)时,响应于音频采集指令,应用处理器向外置芯片下发配置信息。

需要说明的是,针对不同类型的外置芯片以及不同类型的目标数据,应用处理器下发配置信息的时机可能不同,本申请实施例并不对此进行限定。

当然,配置信息中除了包含划分粒度外,还包含其他外置芯片进行数据预处理时所需的数据。比如,当外置芯片用于对原始图像进行图像统计时,该配置信息中还可以包含图像统计时的块(block)信息,该块信息用于指示图像统计时原始图像的区域划分方式。本申请实施例并不对配置信息中包含的具体数据进行限定。

可选的,应用处理器配置的划分粒度可以为固定值,比如,该划分粒度为固定值4;或者,该划分粒度是应用处理器确定出的动态值,比如,不同场景下,该划分粒度可以为3、4或5。

在一些实施例中,该划分粒度基于调研的目标数据的传输时间以及解析时间,通过仿真试验确定得到。

步骤502,外置芯片获取应用处理器下发的配置信息。

对应的,外置芯片获取应用处理器下发的配置信息,并基于该配置信息进行配置。

步骤503,外置芯片基于划分粒度,配置写入寄存器的数据。

本申请实施例中,应用处理器的寄存器被扩展为不同的刻度,用于表征不同的传输进度,应用处理器可以通过读取寄存器中写入的数据,以此确定目标数据的传输进度。因此,外置芯片获取到的划分粒度后,即根据该划分粒度配置达到相应传输进度时向寄存器中写入的数据。

在一种可能的实施方式中,在划分粒度为n的情况下,外置芯片配置写入寄存器的n条数据,其中,n条数据分别对应n种进度,且相邻进度的间隔相等,n为大于等于2的整数,即外置芯片将传输进度均分为n份,并在传输进度达到k/n时通知应用处理器,k为小于等于n的正整数。

在一个示意性的例子中,当划分粒度为4时,外置芯片配置写入寄存器的数据为1/4,2/4,3/4以及4/4(或者Full),分别表征传输进度达到1/4,2/4,3/4以及4/4。

当然,在其他可能的实施方式中,外置芯片也可以配置写入寄存器的数据为1至n,应用处理器基于划分粒度n以及寄存器中写入的数据,即可确定传输进度,本申请实施例并不对写入寄存器的数据的具体类型进行限定。

步骤504,外置芯片向应用处理器传输分段数据包,分段数据包由目标数据分段打包得到。

本步骤的实施方式可以参考上述步骤301,本实施例在此不再赘述。

步骤505,应用处理器接收外置芯片传输的分段数据包。

本步骤的实施方式可以参考上述步骤401,本实施例在此不再赘述。

步骤506,外置芯片确定已传输完成的分段数据包的已传输数据量。

为了确定实时的传输进度,外置芯片在传输分段数据包的过程中,基于已传输完成的分段数据包确定已传输数据量。

在一种可能的实施方式中,当目标数据为图像统计数据时,外置芯片基于已传输完成的分段数据包对应的块数量,确定已传输数据量。比如,当已传输完成的分段数据包中包含25个块对应的3A统计数据时,外置芯片确定已传输数量为25块。

当然,在其他可能的实施方式中,外置芯片也可以基于各个分段数据包所包含的数据量以及已传输分段数据包的数量,确定已传输数据量,本申请实施例对此不作限定。

步骤507,外置芯片基于已传输数据量以及目标数据的总数据量确定目标数据的传输进度。

进一步的,外置芯片基于已传输数据量占目标数据的总数据量的比例,确定目标数据的传输进度。

在一种可能的实施方式中,当目标数据为图像统计数据时,外置芯片基于配置信息中包含的块信息,确定目标数据对应的总块数,从而基于已传输数据对应的块数与总块数的比值,确定目标数据的传输进度。

比如,当目标数据对应的总块数为100(即原始图像被划分为100个区域进行图像数据统计),且已传输数据对应的块数为25时,外置芯片确定传输进度为25/100=1/4。

进一步的,外置芯片检测传输进度是否达到了预先设置的进度。若达到预先设置的进度,则执行步骤508;若未达到预先设置的进度,则继续进行传输进度检测。

步骤508,在目标数据的传输进度达到第i进度的情况下,外置芯片向应用处理器的寄存器中写入第i数据,第i数据用于表征第i进度。

当目标数据的传输进度达到第i进度时,外置芯片基于为第i进度配置的第i数据,向应用处理器的寄存器中写入第i数据。

在一个示意性的例子中,当传输进度达到1/4时,外置芯片向应用处理器的寄存器中写入1/4。

步骤509,外置芯片触发硬件中断。

完成数据写入后,外置芯片通过硬件中断方式通知应用处理器。在一种可能的实施方式中,外置芯片通过应用处理器的硬件中断引脚触发硬件中断。

步骤510,在接收到外置芯片触发的硬件中断的情况下,应用处理器读取寄存器中写入的第i数据。

应用处理器接收到硬件中断后,从寄存器中读取写入的第i数据,从而基于第i数据确定目标数据的传输进度。比如,当读取到寄存器中写入的数据为1/4时,应用处理器确定目标数据已传输1/4。

步骤511,应用处理器基于第i数据所表征的第i进度,从内存中读取分段数据包。

应用处理器的数据解析速度与外置芯片的数据传输速度不一致(针对同等数据量的分段数据包)。当应用处理器的数据解析速度大于外置芯片的数据传输速度时,外置芯片完成第i进度对应分段数据包的传输时,应用处理器已经完成对第i-1进度对应分段数据包的解析,此时,应用处理器基于第i数据所表征的第i进度,从内存中读取第i进度对应的分段数据包。

而当应用处理器的数据解析速度小于外置芯片的数据传输速度时,外置芯片完成第i进度对应分段数据包的传输时,应用处理器尚未完成对已读取分段数据包的解析。

为了保证已读取的分段数据包能够得到正确解析,在第i-j进度对应的分段数据包解析完成的情况下,从内存中读取第i-j+1进度对应的分段数据包,j为小于i的正整数,即应用处理器依次从内存中读取分段数据包并解析。

比如,当读取到寄存器中写入的数据为2/4时,由于已经完成对1/4传输进度对应分段数据包的解析,因此应用处理器从内存中读取2/4传输进度对应的分段数据包。

当读取到寄存器中写入的数据为2/4时,由于尚未完成对1/4传输进度对应分段数据包的解析,因此应用处理器接收到硬件中断后,继续对1/4传输进度对应分段数据包的解析,并在解析完成后,从内存中读取2/4传输进度对应的分段数据包。

关于从内存中读取分段数据包的方式,在一种可能的实施方式中,应用处理器基于第i进度,确定内存中第i进度对应分段数据包的起始地址和结束地址,从而基于起始地址和结束地址读取分段数据包。比如,当传输进度为2/4时,应用处理器基于1/4分段数据包的数据量确定起始地址,并基于1/4分段数据包的数据量对起始地址进行地址偏移,得到结束地址。

步骤512,应用处理器解析读取到的分段数据包。

本步骤的实施方式可以参考上述步骤403,本实施例在此不再赘述。

在一种可能的实施方式中,当传输进度的划分粒度为n时,在第n进度对应的分段数据包解析完成的情况下,应用处理器对解析得到的目标数据进行处理。

在一个示意性的例子中,如图6所示,响应于相机启动指令,应用处理器63向外置芯片62下发配置信息,外置芯片62基于配置信息配置图像统计过程中图像的区域划分方式,以及写入寄存器的数据。

外置芯片62接收到图像传感器61传输的原始图像后,通过图像统计模块621对原始图像进行区域划分,并对划分得到的每个区域进行图像统计,得到图像统计数据。外置芯片62对图像统计数据进行分段打包,将得到的分段数据包传输至应用处理器63,由应用处理器63存储在内存631中。

当图像统计数据的传输进度达到第i进度时,外置芯片62向寄存器632中写入第i数据,并触发硬件中断通知应用处理器63。

应用处理器63接收到硬件中断后,从寄存器632中读取写入的第i数据,确定传输进度达到第i进度。解析模块633基于第i进度,从内存631中读取第i进度对应的分段数据包并进行解析,从而将解析得到的图像统计数据写回内存631中。当解析得到完整的图像统计数据时,应用处理器63将从内存631中读取图像统计数据,并交由图像处理模块进行图像处理。

本实施例中,通过将应用处理器的寄存器扩展为不同的刻度,由外置芯片基于应用处理器配置的传输进度的划分粒度,将指示传输进度的数据写入寄存器中,并通过触发硬件中断通知应用处理器,使应用处理器通过读取寄存器中写入的数据,即可确定当前的传输进度,进而从内存中读取分段数据包用于后续解析,保证了分段传输以及解析过程的有序执行,提高了数据传输以及解析的准确性。

在一种可能的实施方式中,外置芯片基于配置信息中的划分粒度n,将传输进度等分为n份。若一帧图像对应完整图像统计数据的传输时长为A,完整图像统计数据的解析时长为B,在A>B的情况下,外置芯片与应用处理器之间,数据传输与数据解析的过程如图7所示,总耗时为A+B/n。

在A<B的情况下,外置芯片与应用处理器之间,数据传输与数据解析的过程如图8所示,总耗时为A/n+B。

可见,采用本申请实施例提供的方案,在数据传输速度较快或者数据解析速度较快的情况下,均能够降低总体耗时,且在传输时长和解析时长在同一数量级的情况下整体收益较高。

通过测试发现,当外置芯片用于进行图像统计时,图像统计数据的数据量在2至3MB,通过MIPI传输的耗时在1至5ms,而应用处理器解析图像统计数据的耗时在3至10ms(与应用处理器的工作频率有关),两者在同一数量级别,因此采用本申请实施例提供的方案,在降低图像统计数据的传输解析速度上收益明显。

从上述耗时公式可以看出,n越大,总耗时越短。然而由于每次向应用处理器通知传输进度时,外置芯片都需要触发一次中断,为了避免频繁触发中断影响应用处理器当前处理的任务,在一种可能的实施方式中,应用处理器基于处理器负载确定划分粒度,其中,该划分粒度与处理器负载呈负相关关系,即处理器负载越高,该划分粒度越小,处理器负载越低,该划分粒度越大。

可选的,应用处理器预先设置有处理器负载与划分粒度的对应关系(通过仿真测试得到),从而基于该对应关系确定传输进度的划分粒度。示意性的,处理器负载与划分粒度的对应关系如表一所示。

表一

比如,当接收到相机启动指令时,应用处理器确定当前的处理器负载为50%,从而确定划分粒度为4,并向外置芯片发送包含划分粒度4的配置信息。

本实施例中,应用处理器向外置芯片下发配置信息时,基于处理器负载确定传输进度的划分粒度,避免因划分粒度过细,导致数据传输过程中频繁触发硬件中断,对应用处理器的正常数据处理造成影响。

本申请实施例提供了一种外置芯片,该外置芯片包括可编程逻辑电路和/或程序指令,当外置芯片运行时,用于实现如上述方面中外置芯片侧的数据传输方法。

在一种可能的实施方式中,如图9所示,该外置芯片可以包括控制单元910、接收单元920和发送单元930。

可选的,控制单元910,用于控制发送单元930向应用处理器传输分段数据包,所述分段数据包由目标数据分段打包得到;

控制单元910,用于在所述目标数据的传输进度达到第i进度的情况下,向所述应用处理器通知所述第i进度,i为正整数;

控制单元910,用于在所述应用处理器基于所述第i进度读取并解析所述分段数据包的过程中,控制发送单元930向所述应用处理器传输第i+1进度对应的所述分段数据包。

可选的,控制单元910,用于:

向所述应用处理器的寄存器中写入第i数据,所述第i数据用于表征所述第i进度;

触发硬件中断,以便所述应用处理器基于所述硬件中断从所述寄存器中读取所述第i数据。

可选的,接收单元920,用于获取所述应用处理器下发的配置信息,所述配置信息包含所述传输进度的划分粒度;

控制单元910,用于基于所述划分粒度,配置写入所述寄存器的数据。

可选的,控制单元910,用于:

在所述划分粒度为n的情况下,配置写入所述寄存器的n条数据,其中,所述n条数据分别对应n种进度,且相邻进度的间隔相等,n为大于等于2的整数。

可选的,所述划分粒度为固定值,或者,所述划分粒度为所述应用处理器确定的动态值。

可选的,控制单元910,用于:

确定已传输完成的所述分段数据包的已传输数据量;

基于所述已传输数据量以及所述目标数据的总数据量确定所述目标数据的所述传输进度。

可选的,所述目标数据为图像统计数据;

接收单元920,用于获取图像传感器输出的原始图像;

控制单元910,用于对所述原始图像进行图像统计,得到所述图像统计数据;

控制单元910,用于对所述图像统计数据进行分段打包,得到所述分段数据包。

本申请实施例提供了一种应用处理器,该应用处理器包括可编程逻辑电路和/或程序指令,当应用处理器运行时,用于实现如上述方面中应用处理器侧的数据解析方法。

在一种可能的实施方式中,如图10所示,该应用处理器可以包括处理单元1010、接收单元1020、发送单元1030、内存1040以及寄存器1050。

可选的,接收单元1020,用于接收外置芯片传输的分段数据包,所述分段数据包由所述外置芯片对目标数据进行分段打包得到;

处理单元1010,用于在接收到所述外置芯片通知的第i进度的情况下,基于所述第i进度读取所述分段数据包,所述第i进度用于表征所述目标数据的传输进度;

处理单元1010,用于解析读取到的所述分段数据包。

可选的,处理单元1010,用于在接收到所述外置芯片触发的硬件中断的情况下,读取寄存器1050中写入的第i数据;

处理单元1010,用于基于所述第i数据所表征的所述第i进度,从内存1040中读取所述分段数据包。

可选的,处理单元1010,用于在第i-j进度对应的所述分段数据包解析完成的情况下,从所述内存中读取第i-j+1进度对应的所述分段数据包,j为小于i的正整数。

可选的,处理单元1010,用于控制发送单元1030向所述外置芯片下发配置信息,所述配置信息包含所述传输进度的划分粒度,以便所述外置芯片基于所述划分粒度配置写入所述寄存器的数据。

可选的,所述目标数据为图像统计数据;

处理单元1010,用于响应于相机启动指令,控制发送单元1030向所述外置芯片下发所述配置信息,以便所述外置芯片对图像传感器输出的原始图像进行图像统计,得到所述图像统计数据,并对所述图像统计数据进行分段打包,得到所述分段数据包。

可选的,所述划分粒度为固定值,或者,所述划分粒度是所述应用处理器确定的动态值。

可选的,所述划分粒度为动态值,处理单元1010,用于基于处理器负载确定所述划分粒度,所述划分粒度与所述处理器负载呈负相关关系。

可选的,所述划分粒度为n,n为大于等于2的整数,处理单元1010,还用于在第n进度对应的所述分段数据包解析完成的情况下,对解析得到的所述目标数据进行处理。

请参考图11,其示出了本申请一个示例性实施例提供的计算机设备的结构方框图。本申请中的计算机设备可以包括一个或多个如下部件:应用处理器1110、外置芯片1120和存储器1130。

应用处理器1110利用各种接口和线路连接整个计算机设备内的各个部分,通过运行或执行存储在存储器1130内的指令、程序、代码集或指令集,以及调用存储在存储器1130内的数据,执行计算机设备的各种功能和处理数据。可选地,应用处理器1110可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-ProgrammableGate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。应用处理器1110可集成中央处理器(Central Processing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)、神经网络处理器(Neural-network ProcessingUnit,NPU)和基带芯片等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责触摸显示屏所需要显示的内容的渲染和绘制;NPU用于实现人工智能(Artificial Intelligence,AI)功能;基带芯片用于处理无线通信。可以理解的是,上述基带芯片也可以不集成到处理器1110中,单独通过一块芯片进行实现。

外置芯片1120用于对计算机设备中其他组件输出的数据进行预处理,并将预处理得到的数据传输至应用处理器1110,以便应用处理器1110进行进一步处理,降低应用处理器1110的处理压力。可选的,应用处理器1110与外置芯片1120之间通过MIPI进行数据传输。

可选的,外置芯片1120可以为用于对图像数据进行预处理的外置ISP,用于对音频数据进行预处理的位置DSP等等,本申请实施例对此不作限定。

存储器1130可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory,ROM)。可选地,该存储器1130包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器1130可用于存储指令、程序、代码、代码集或指令集。存储器1130可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等;存储数据区可存储根据计算机设备的使用所创建的数据等。

除此之外,本领域技术人员可以理解,上述附图所示出的计算机设备的结构并不构成对计算机设备的限定,计算机设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。比如,计算机设备中还包括显示组件、输入单元、传感器、音频电路、扬声器、麦克风、电源等部件,本实施例在此不再赘述。

本申请实施例还提供了一种计算机可读存储介质,该存储介质存储有至少一条程序指令,至少一条程序指令用于被处理器执行以实现如上述实施例所述的数据传输方法,或,数据解析方法。

本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例提供的数据传输方法,或,数据解析方法。

本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。

以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

相关技术
  • 处理器及其处理方法、芯片、芯片封装结构及电子装置
  • 一种配网自动化双重防护安全芯片、数据传输方法及设备
  • 源芯片、目的芯片、数据传输方法及处理器系统
  • 单接口芯片及应用该芯片实现芯片与多TCAM之间数据传输的方法
技术分类

06120116482846