数据传输、接收方法及装置、芯片、设备、存储介质与流程

文档序号:33191725发布日期:2023-02-04 08:46阅读:46来源:国知局
1.本技术涉及电子技术,涉及但不限于数据传输、接收方法及装置、芯片、设备、存储介质。
背景技术
::2.移动行业处理器接口(mobileindustryprocessorinterface,mipi)成为图像传感器传输数据的主要标准,初衷是为了把手机内部的摄像头、显示器、射频基带和处理器之间的接口标准化,满足大容量图像传输需求。然而,mipi硬件的数据通道的增加,意味着硬件成本的增加。技术实现要素:3.有鉴于此,本技术实施例提供的数据传输、接收方法及装置、芯片、设备、存储介质,能够降低对mipi的硬件要求,即使有更多路的待传数据集,也能够使用较少的数据通道完成数据传输。本技术实施例提供的数据传输、接收方法及装置、芯片、设备、存储介质是这样实现的:4.本技术实施例提供的数据传输方法,包括:将来自m路的第一待传数据集转换为n路第二待传数据集;其中,m大于1,n大于0且小于m;按照mipi协议,对所述n路第二待传数据集进行打包,得到第一批一个或多个mipi数据包;将所述第一批一个或多个mipi数据包通过n路数据通道传输给应用处理器。5.本技术实施例提供的数据接收方法,包括:根据特定的行数据长度,确定当前是否接收到一整行数据;如果当前接收到一整行数据,产生行中断;响应于所述行中断,对当前接收到的一行数据进行解析,得到解析数据;将所述解析数据发送给对应的第一图像处理芯片。6.本技术实施例提供的图像处理芯片,包括:转换电路,用于将来自m路的第一待传数据集转换为n路第二待传数据集;其中,m大于1,n大于0且小于m;mipi-tx电路,用于按照mipi协议,对所述n路第二待传数据集进行打包,得到第一批一个或多个mipi数据包;以及将所述第一批一个或多个mipi数据包通过n路数据通道传输给应用处理器。7.本技术实施例提供的应用处理器,包括:mipi-rx电路,用于根据特定的行数据长度,确定当前是否接收到一整行数据;如果当前接收到一整行数据,发送行中断给数据解析模块;数据解析模块,用于响应于所述行中断,对当前接收到的一行数据进行解析,得到解析数据,以及将所述解析数据发送给对应的第一图像处理芯片;第一图像处理芯片,用于根据接收的每一所述解析数据,执行特定的图像处理算法。8.本技术实施例提供的电子设备,包括:第二图像处理芯片、至少n路数据通道和应用处理器,n大于0;其中,所述第二图像处理芯片的转换电路,将来自m路的第一待传数据集转换为n路第二待传数据集;其中,m大于1,n大于0且小于m;所述第二图像处理芯片的mipi-tx电路,按照mipi协议,对所述n路第二待传数据集进行打包,得到第一批一个或多个mipi数据包;以及将所述第一批一个或多个mipi数据包通过n路数据通道传输给应用处理器的mipi-rx电路;所述应用处理器的mipi-rx电路,根据特定的行数据长度,确定当前是否接收到一整行数据;如果当前接收到一整行数据,发送行中断给数据解析模块;所述应用处理器的数据解析模块,响应于所述行中断,对当前接收到的一行数据进行解析,得到解析数据,以及将所述解析数据发送给对应的第一图像处理芯片;所述应用处理器的第一图像处理芯片,用于根据接收的每一所述解析数据,执行特定的图像处理算法。9.本技术实施例提供的数据传输装置,包括:转换模块,用于将来自m路的第一待传数据集转换为n路第二待传数据集;其中,m大于1,n大于0且小于m;打包模块,用于按照mipi协议,对所述n路第二待传数据集进行打包,得到第一批一个或多个mipi数据包;传输模块,用于将所述第一批一个或多个mipi数据包通过n路数据通道传输给应用处理器。10.本技术实施例提供的数据接收装置,包括:接收模块,用于根据特定的行数据长度,确定当前是否接收到一整行数据;以及如果当前接收到一整行数据,发送行中断给数据解析模块;数据解析模块,用于对当前接收到的一行数据进行解析,得到解析数据;以及将所述解析数据发送给对应的第一图像处理芯片。11.本技术实施例提供的电子设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现本技术实施例所述的图像处理芯片侧的方法,或者,所述处理器执行所述程序时实现本技术实施例所述的应用处理器侧的方法。12.本技术实施例提供的计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现本技术实施例所述的图像处理芯片侧的方法,或者,该计算机程序被处理器执行时实现本技术实施例所述的应用处理器侧的方法。13.在本技术实施例中,当接收到来自m路的第一待传数据集时,不是直接按照mipi协议对这些数据集进行打包,而是先将这m路第一待传数据集组织为小于m的n路第二待传数据集;然后,再按照mipi协议对这n路第二待传数据集进行打包;如此,相比于直接对这m路第一待传输集进行打包传输的方案,能够使得第二图像处理芯片通过较少的数据通道完成数据传输,即通过n路而不是m路数据通道将这些数据传输给应用处理器。可见,本技术实施例提供的方案降低了降低对mipi的硬件要求,即使有更多路的待传数据集,也能够使用较少的数据通道完成数据传输,从而使得硬件数据通路较少的mipi也能够满足数据传输需求。附图说明14.此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本技术的实施例,并与说明书一起用于说明本技术的技术方案。15.图1为图像处理的数据传输的基本架构示意图;16.图2为本技术实施例提供的数据传输方法的实现流程示意图;17.图3为本技术实施例的数据传输和数据接收方法的实现流程示意图;18.图4为本技术实施例的电子设备的结构示意图;19.图5为3a数据在isp的管线(即isp的信号处理流程)中输出的位置示意图;20.图6为3a数据在isp的管线(即isp的信号处理流程)中输出的位置示意图;21.图7为preisp芯片方案中的数据传输过程示意图;22.图8为preisp芯片的前处理isp芯片端的架构示意图;23.图9为本技术实施例ap侧平台端的软件框架示意图;24.图10为本技术实施例的数据传输和接收方法的实现流程示意图;25.图11为本技术实施例的重排之前与重排之后的结果对比示意图;26.图12为本技术实施例数据传输装置的结构示意图;27.图13为本技术实施例数据接收装置的结构示意图;28.图14为本技术实施例提供的电子设备的结构示意图。具体实施方式29.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术的具体技术方案做进一步详细描述。以下实施例用于说明本技术,但不用来限制本技术的范围。30.除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的
技术领域
:的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本技术实施例的目的,不是旨在限制本技术。31.在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。32.需要指出,本技术实施例所涉及的术语“第一\第二\第三”等不代表针对对象的特定排序,可以理解地,“第一\第二\第三”等在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本技术实施例能够以除了在这里图示或描述的以外的顺序实施。33.为了便于对本技术实施例的理解,先提供一种图像处理的数据传输的基本架构,图1为该架构的示意图,其中只示意出了部分关键模块,如图1所示,该架构1包括第二图像处理芯片10和应用处理器11;其中,第二图像处理芯片10包括isp芯片101、mipi-tx模块102、isp芯片103和mipi-tx模块104;应用处理器11包括mipi-rx模块111、isp芯片112、3a算法模块113、mipi-rx模块114、isp芯片115和3a算法模块116;其中,3a算法即自动对焦(automaticfocus,af)算法、自动曝光(automaticexposure,ae)算法和自动白平衡(automaticwhitebalance,awb)算法;34.图像传感器20将传感数据传输给isp芯片101,isp芯片101对其进行处理,将得到的3a算法所需的统计数据(以下简称3a数据)、原始(raw)图像数据和pd数据传输给mipi-tx模块102,mipi-tx模块102将接收到的来自各路的数据集通过mipi数据通道传输给应用处理器端的mipi-rx模块111,mipi-rx模块111将3a数据和pd数据传输给3a算法模块113,将raw图像数据传输给isp芯片112;其中,pd数据为相位信息,用于对焦。35.对于图像传感器21的传感数据的传输路径与图像传感器20的类型,因此这里不再赘述。36.需要说明的是,上述架构1只是为了便于理解本技术实施例而给出的示例,不能够造成对本技术实施例的范围的限制。对于本技术实施例所适用的第二图像处理芯片的结构和应用处理器的结构不做限制,对于数据通道传输的数据内容也不做限制,不限于是3a数据、pd数据和raw图像数据等。37.本技术实施例提供一种数据传输方法,用于在应用处理器和图像传感器之间传送图像数据,图2为本技术实施例提供的数据传输方法的实现流程示意图,如图2所示,该方法可以包括以下步骤201至步骤203:38.步骤201,第二图像处理芯片将来自m路的第一待传数据集转换为n路第二待传数据集;其中,m大于1,n大于0且小于m。39.可以理解地,在图像处理方案中,很多数据需要通过mipi传输,例如,3a数据、raw图像数据以及pd数据等等。而这些待传数据集,同一类型的待传数据集,可能来源不同,相应地,传输路径也不同。比如,第一待传数据集的类型为3a数据,其中,awb算法所需的统计数据来自lsc模块,ae算法所需的统计数据来自wb模块,af算法所需的统计数据来自demosaic模块。又如,第一待传数据集的类型均为raw图像数据,其中,一路raw图像数据来自第一颗图像传感器,另一路raw图像数据来自第二颗图像传感器;再如,第一待传数据集的类型均为raw图像数据,但是一路为短曝光数据、一路为中曝光数据和一路为长曝光数据。40.需要说明的是,m路的第一待传数据集可以是不同类型的数据集,也可以是相同类型的数据集。是相同类型的情况下,例如在一些实施例中,所述第一待传数据集包括下列中的至少一项:执行3a算法所需的图像统计数据(简称3a数据)、pd数据和原始图像数据,即,m路第一待传数据集均为3a数据,或者,均为pd数据,或者均为原始图像数据。是不同类型的情况下,例如m路的第一待传数据集包括3a数据、pd数据和原始图像数据等。41.在一些实施例中,m路的第一待传数据集为在同一时刻或者同一时间段产生的数据集。m路可以理解为m个传输路径或者m个不同模块。n路的含义与m路的含义类似,对于第二图像处理芯片而言,n路第二待传数据集可能来自n路传输路径,也可能由n个不同的模块输出。42.步骤202,第二图像处理芯片按照mipi协议,对所述n路第二待传数据集进行打包,得到第一批一个或多个mipi数据包。43.可能会存在这种情况,即某个第二待传数据集的长度超出了规定的mipi数据包长度的上限,因此可能需要将该数据集拆分为两个mipi数据包。44.步骤203,第二图像处理芯片将所述第一批一个或多个mipi数据包通过n路数据通道传输给应用处理器。45.可以理解地,在mipi协议中,有几路数据同时产生或在同一时间段产生,通常就用相同路数的数据通道进行传输。比如,有3路raw图像数据同时产生,那么遵循mipi协议的mipi-tx模块就会通过3路数据通道进行传输。这样就对mipi硬件的数据通道数量提出了更高的要求,从而能够满足多种场景下的数据传输需求。例如,数据通道的数量要求既能够应对同时产生的3路数据集,也能够应对同时产生的5路、6路甚至8路数据集的传输需求。然而,硬件的数据通道的增加,随之带来的是硬件成本和设计空间成本。如何在有限的设备空间内,通过较低的硬件成本应对不同场景下的数据传输需求,成为待解决的技术问题。46.在本技术实施例中,当接收到来自m路的第一待传数据集时,不是直接按照mipi协议对这些数据集进行打包,而是先将这m路第一待传数据集组织为小于m的n路第二待传数据集;然后,再按照mipi协议对这n路第二待传数据集进行打包;如此,相比于直接对这m路第一待传输集进行打包传输的方案,能够使得第二图像处理芯片通过较少的数据通道完成数据传输,即通过n路而不是m路数据通道将这些数据传输给应用处理器。47.本技术实施例提供一种数据传输和数据接收方法,图3为本技术实施例的数据传输和数据接收方法的实现流程示意图,如图3所示,该方法可以包括以下步骤301至步骤308:48.步骤301,第二图像处理芯片按照特定的行数据长度,将来自m路的第一待传数据集中的待传数据分解成至少一行数据。49.在一些实施例中,分解后的每行数据的长度都是固定的,均为特定的行数据长度。进一步地,在一些实施例中,相邻行之间存在一定的间隔,即空白数据,这样,能够为接收端预留一定的时间处理接收的行数据。50.对于特定的行数据长度的大小不做限定。例如,每行数据的长度为1024字节。51.步骤302,第二图像处理芯片对所述至少一行数据进行重排,得到n路第二待传数据集;其中,m大于1,n大于0。52.在一些实施例中,第二待传数据集既包括数据本身的内容,还包括这些数据的元数据。53.在本技术实施例中,对于n的值不做限定。可以根据mipi数据通道的数量而设定,n小于或等于mipi数据通道的数量。例如,将来自3路的第一待传数据集组织为1路第二待传数据集。又如,将来自6路的第一待数据集组织为2路第二待传数据集。m与n可以成倍数关系,也可以不是倍数关系。54.在一些实施例中,第二图像处理芯片可以这样实现步骤302:确定每行数据的第一类型;将用于表征所述行数据的第一类型的标签更新至所述行数据中;对更新后的所述至少一行数据进行重排,得到所述n路第二待传数据集。55.例如,该第一类型的标签用于标识对应的行数据是数据本身的内容还是元数据。每行数据都标识有对应的第一类型,这样对于应用处理器端而言,在解析接收的mipi数据包时,无需再分析和识别该行数据的类型,从而提高应用处理器的整体数据处理效率。56.进一步地,在一些实施例中,对更新后的所述至少一行数据可以这样进行重排:确定更新后的每行数据的第二类型;所述第二类型属于所述第一类型的子类型;根据所述第二类型与行号的映射关系,对更新后的所述至少一行数据进行重排,得到所述n路第二待传数据集;如此,便于应用处理器端快速解析。例如,应用处理器可以直接根据当前接收的数据所在的行号,确定该行数据的第二类型。57.更进一步地,第二图像处理芯片可以根据预先设置的映射表获知每行应该对应存放的第二类型,即映射表里记录了第二类型与行号的映射关系。例如,表1所示,其中,第一行约定存放长曝光的raw图像数据,第二行约定存放短曝光的raw图像数据,第三行约定存放中曝光的raw图像数据,第四行约定存放3a数据中的awb算法所需的统计数据(简称awb数据),第五行约定存放3a数据中的ae算法所需的统计数据(简称ae数据),第六行约定存放af算法所需的统计数据(简称af数据),等等。58.表159.第一行长曝光的raw图像数据第二行短曝光的raw图像数据第三行中曝光的raw图像数据第四行awb数据第五行ae数据第六行af数据60.每行的数据长度是固定的,行的数目可以根据接收的总数据集的大小而调整。不同大小的总数据集,其对应的映射表是不同的。比如m路第一待传数据集为raw图像数据,其总数据大小为3k字节,特定的行数据长度为1024字节,其对应的映射表的内容如表2所示,其中,第一行约定存放长曝光的raw图像数据,第二行约定存放中曝光的raw图像数据,第三行约定存放短曝光的raw图像数据。又如,比如m路第一待传数据集为raw图像数据,其总数据大小为6k字节,特定的行数据长度为1024字节,其对应的映射表的内容如表3所示,其中,第一行和第二行约定存放长曝光的raw图像数据,第三行和第四行约定存放中曝光的raw图像数据,第五行和第六行约定存放短曝光的raw图像数据。61.表262.第一行长曝光的raw图像数据第二行长曝光的raw图像数据第三行中曝光的raw图像数据第四行中曝光的raw图像数据第五行短曝光的raw图像数据第六行短曝光的raw图像数据63.表3[0064][0065][0066]第二图像处理芯片在对更新后的所述至少一行数据进行重排时,可以根据m路的第一待传数据集或者所述更新后的所述至少一行数据的总数据大小,调用对应的映射表,然后按照该映射表中约定的每行对应存放的第二类型,将更新后的所述至少一行数据进行重排。[0067]步骤303,第二图像处理芯片按照mipi协议,对所述n路第二待传数据集进行打包,得到第一批一个或多个mipi数据包。[0068]可以理解地,打包即为对数据进行封装,例如在第二待传数据集的开头增加包头信息,在第二待传数据集的结尾增加包尾信息等。可见,封装好的第二待传数据集,即mipi数据包中的每行的数据长度为特定的行数据长度。在一些实施例中,将一路第二待传数据集封装为一个mipi数据包。[0069]步骤304,第二图像处理芯片将所述第一批一个或多个mipi数据包均匀地分配给所述n路数据通道并通过所述n路数据通道传输给所述应用处理器。[0070]例如,n路数据通道可以逐行地将mipi数据包传输给应用处理器。[0071]第二图像处理芯片将所述第一批一个或多个mipi数据包均匀地或者非均匀地分配给n路数据通道。不同的数据通道负责传输被分配的mipi数据包。在一些实施例中,一路数据通道可以将mipi数据包逐行串行传输给应用处理器;其中,相邻行数据之间具有固定大小的空白数据,即空白间隔,该间隔的目的是为了给应用处理器的mipi-rx模块预留一定的时间解析接收到的行数据。[0072]步骤305,应用处理器根据特定的行数据长度,确定当前是否接收到一整行数据;如果是,执行步骤306;否则,继续执行步骤305;[0073]步骤306,应用处理器产生行中断;[0074]步骤307,应用处理器响应于所述行中断,对当前接收到的一行数据进行解析,得到解析数据。[0075]可以理解地,在本技术实施例中,应用处理器的mipi-rx模块每接收一行数据,就产生一个行中断,从而触发数据解析模块对当前接收到的一行数据进行解析;如此,利用行中断,实现边传输边解析,无需等待所有行数据(即图像处理的缓存数据)传输结束再解析,从而使得数据传输达到零延时传输,进而提高应用处理器的整体数据处理效率。例如,对于af算法来讲,快速获取解析数据,能够提高自动对焦速度,从而提升用户体验。[0076]步骤308,应用处理器将所述解析数据发送给对应的第一图像处理芯片。[0077]在一些实施例中,应用处理器可以这样实现步骤307:确定所述解析数据的行号;根据约定的每行对应存放的第二类型,确定所述解析数据的第二类型;根据所述解析数据的第二类型,将所述解析数据发送给对应的第一图像处理芯片。[0078]举例来说,如果解析得到的行数据的第二类型为3a数据或pd数据,则将该数据传输给3a算法模块,该模块为一图像处理芯片。又如,解析数据的第二类型为raw图像数据,则将该数据传输给isp芯片。[0079]本技术实施例提供一种电子设备,图4为本技术实施例的电子设备的结构示意图,如图4所示,电子设备4包括第二图像处理芯片40、应用处理器41和至少n路数据通道42;其中,第二图像处理芯片40包括转换电路401、mipi-tx电路402;应用处理器41包括mipi-rx电路411、数据解析模块412和第一图像处理芯片413;其中,[0080]转换电路401,用于将来自m路的第一待传数据集转换为n路第二待传数据集;其中,m大于1,n大于0且小于m;[0081]mipi-tx电路402,用于按照mipi协议,对所述n路第二待传数据集进行打包,得到第一批一个或多个mipi数据包;以及[0082]将所述第一批一个或多个mipi数据包通过n路数据通道传输给应用处理器的mipi-rx电路411。[0083]mipi-rx电路411,根据特定的行数据长度,确定当前是否接收到一整行数据;如果当前接收到一整行数据,发送行中断给数据解析模块412;否则,继续接收和根据当前接收的数据长度判断是否接收到一整行数据;[0084]数据解析模块412,响应于所述行中断,对当前接收到的一行数据进行解析,得到解析数据,以及将所述解析数据发送给对应的第一图像处理芯片413。[0085]在一些实施例中,可以通过软件的方式实现数据解析模块412的功能,例如通过cpu运行相关程序以实现该模块的功能。[0086]第一图像处理芯片413,用于根据接收的每一所述解析数据,执行特定的图像处理算法。[0087]例如,第一图像处理芯片413为用以实现3a算法的芯片。又如,第一图像处理芯片413为isp芯片。[0088]在一些实施例中,转换电路401,可以按照特定的行数据长度,将所述m路第一待传数据集中的待传数据分解成至少一行数据;确定每行数据的第一类型;将用于表征所述行数据的第一类型的标签更新至所述行数据中;确定更新后的每行数据的第二类型;所述第二类型属于所述第一类型的子类型;根据所述第二类型与行号的映射关系,对更新后的所述至少一行数据进行重排,得到所述n路第二待传数据集;mipi-tx电路402,用于按照mipi协议,对所述n路第二待传数据集进行打包,得到第一批一个或多个mipi数据包;以及将所述第一批一个或多个mipi数据包通过n路数据通道传输给应用处理器的mipi-rx电路411。[0089]相应地,mipi-rx电路411,可以根据特定的行数据长度,确定当前是否接收到一整行数据;如果当前接收到一整行数据,发送行中断给数据解析模块412;数据解析模块412,响应于行中断,对当前接收到的一行数据进行解析,得到解析数据;确定所述解析数据的行号;根据约定的每行对应存放的第二类型,确定所述解析数据的第二类型;根据所述解析数据的第二类型,将所述解析数据发送给对应的第一图像处理芯片。[0090]需要说明的是,以上关于电子设备实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本技术电子设备实施例中未披露的技术细节,请参照本技术方法实施例的描述而理解。[0091]在preisp芯片(即第二图像处理芯片的一种示例)方案中,很多数据需要通过移动产业处理器接口(mobileindustryprocessorinterface,mipi)传输,例如3a数据、raw图像数据和pd数据等均需要通过mipi传输。[0092]关于3a数据的相关介绍如下:[0093]3a算法,即自动曝光(ae)算法、自动白平衡(awb)算法和自动对焦(af)算法,这些算法所需的统计数据是在图像信号处理(isp)芯片中产生的,isp芯片通过对收到的图像数据中各个像素点的亮度和色彩等进行统计,统计的结果将主要用于3a算法。[0094]3a数据在isp的管线(即isp的信号处理流程)中输出的位置如图5所示,其中,af算法所需的统计数据包括:对图像传感器输出的图像做的统计、对degamma模块输出的图像做的统计、对demosaic模块输出的图像做的统计、对yuvnr/sharpening模块输出的图像做的统计;ae算法所需的统计数据包括:对lsc模块输出的图像做的统计、对wb模块输出的图像做的统计、对ccm模块输出的图像做的统计、以及对csm模块输出的图像做的统计;awb算法所需的统计数据包括:对lsc模块输出的图像做的统计、对demosaic模块输出的图像做的统计和对ccm模块输出的图像做的统计。由此可见,af的统计位置较多。[0095]需要说明的是,blc模块,用于黑电平校正;degamma模块,用于调整画面的对比度;nr模块,用于降噪;lsc(lensshadecorrection)模块,用于镜头阴影校正;wb模块,用于白平衡;demosaic模块,用于去马赛克;ccm模块,用于色彩校正;gamma模块,用于调整画面的对比度;sharpening模块,用于锐化;csm模块,用于色彩空间转化;yuvnr/sharpening模块,用于降噪/锐化。[0096]在一些实施例中,3a数据的输出位置,比较典型的配置如图6所示,其中,awb算法所需的统计数据主要是对lsc模块输出的图像进行统计得到的,ae算法所需的统计数据主要是对wb模块输出的图像进行统计得到的,af算法所需的统计数据主要是对demosaic模块输出的图像进行统计得到的。如图6中,ae模块主要用于统计ae算法所需的统计数据,af模块主要用于统计af算法所需的统计数据,awb模块主要用于统计awb算法所需的统计数据。[0097]其中,ae算法所需的统计数据主要包括r、g、b直方图和亮度信息,统计数据通常是图像的兴趣区域(regionofinterest,roi)的。[0098]awb算法所需的统计数据主要包括roi区域的r、g、b像素的点的个数的统计、红绿的比值和蓝绿的比值。[0099]af算法所需的统计数据包括roi区域的各个小块的清晰度值。[0100]从当前isp的结构上看,isp会产生较多的ae统计数据、awb统计数据和af统计数据,这些信息需要发送给3a算法模块处理。当系统中包括多个摄像头时,每个摄像头的统计数据会被单独统计,然后发送到各自独立的ap侧的3a算法模块。[0101]dol传感器能够同时产生3路raw图像数据和pd数据;其中,pd数据为相位信息,用于对焦。[0102]图7示出了preisp芯片方案中的数据传输过程,从图中可以看出,受限于硬件,mipi会分多路传输这些数据。[0103]在平滑变焦等模式,需要多摄像头同时打开的情况,每一颗图像传感器(sensor)的3a数据都需要回传,每颗sensor都要统计,数据量会加倍;另外,对于3dol(snoy多曝光)sensor会输出长、中、短raw图像数据。对每路数据都需要统计3a数据。如果系统中有2路3dolsensor,则需要统计3路×2颗sensor×3a,可见,至少需要使用和传递18种类的统计数据。再加上(3路raw图像数据+3路pd数据)×2颗sensor,一共有30路数据。[0104]然而,由于硬件限制,采用上述preisp芯片方案遇到如下问题:[0105](1)mipi硬件的数据通道数量较少,不能满足需求;[0106](2)乱序排列数据之后,解析性能不佳,成为影响性能的瓶颈。[0107]基于此,下面将说明本技术实施例在一个实际的应用场景中的示例性应用。[0108]在本技术实施例中,将preisp芯片的mipi数据通过缓冲硬件,组织为每行1024字节,不同的数据组成一帧,不同的类型的数据,约定放在固定行中。平台端(即ap端)接收到mipi数据时逐行接收,并产生行中断,平台端对行号计数,并按行号解析接收的数据。[0109]如图8所示,图中只列了重点的模块,preisp芯片的前处理isp芯片端的架构,硬件主要包含:cpu、mipi、npu和转换电路等;其中,[0110]cpu:负责和ap端交互。接收ap发送的控制命令和数据,并发送信息回传给ap。还负责对isp芯片和npu等模块的控制。[0111]isp芯片:负责图像基础的处理。和常规的isp功能类似,包括坏点校正、暗电流校正、镜头阴影校正、数字增益、白平衡、demosaic、颜色校正、gamma和降噪等模块;[0112]转换电路:负责将多路mipi数据组织为一路3a、一路raw图像数据和一路pd数据。[0113]npu:运行ai算法,以对预览数据处理,例如,降噪、hdr和/或超分辨率等;[0114]mipi-tx模块:将组织好的数据(如3a、raw图像数据和pd数据)进行打包封装,然后再通过mipi协议发送给ap端的isp芯片,ap端的isp芯片对接收的数据做进一步的处理。[0115]ap端模块:[0116]数据解析(unpack)模块:是一软件模块,用于将preisp芯片的打包数据解包,解包之后3a数据分为ae、af、awb算法所需的统计数据,raw数据分为长、中、短3路数据。解包之后的数据,对应算法可以直接使用。[0117]isp芯片:负责图像基础的处理,在本技术实施例中主要用于拍照的处理。和常规的isp芯片的功能类似,与preisp芯片中的isp芯片对比功能更强大,但是无法定制化,功能比较固定。一个isp芯片中包含isp0和isp1,isp芯片能够收到数据。另外,3a算法在cpu上执行。[0118]cpu:负责preisp芯片的控制,例如,上电、下电、固件加载和运行时的相关控制等。[0119]3a算法模块:用于处理3a数据,实现3a功能。[0120]在本技术实施例中,ap侧平台端的软件框架如图9所示,其中,[0121]内核(kernel)层主要有设备模块的驱动(driver),如图像传感器的驱动(sensordriver)、i2cdriver、sdiodriver和平台端的preisp芯片的driver等,通过驱动可以配置设备的初始化和状态切换等工作;[0122]hal层主要控制平台端的通过sdio接收preisp芯片输出的图像数据、统计数据和环境光信息,然后执行3a算法;零延时拍照(zeroshutterlang,zsl)负责raw图像数据的接收和解析,以及raw图像数据的进一步后处理算法和针对拍照的isppipeline控制。[0123]framework层:android的原始框架,是hal和app的中间件。[0124]app层:主要通过google标准的cameraapi2使用camera,系统camera或三方camera应用;[0125]本技术实施例的运行流程图如图10所示,包括以下步骤101至步骤106:[0126]步骤101,打开双摄像头,控制前处理preisp芯片开始工作;[0127]步骤102,preisp芯片开始处理图像数据,并产生3a数据(stats),将这些统计数据发送给转换电路。[0128]步骤103,转换电路将多路的raw图像数据、pd数据和3a数据组织为一路3a数据、一路raw图像数据和一路pd数据。[0129]步骤104,通过mipi-tx模块将这些数据打包为mipi数据包发送给ap;[0130]步骤105,ap接收到mipi数据包,将mipi数据包发送给数据解析模块进行解包。[0131]步骤106,解包之后的raw图像数据发送给isp芯片,isp芯片基于管线(pipeline)对其进行处理,解包之后的3a数据和pd数据发送给3a算法模块。[0132]preisp芯片的转换电路为硬件实现的模块,主要实现以下功能:[0133]在preisp芯片中接收到图像传感器的raw图像数据、pd数据和产生的3a数据;然后,转换电路对这些数据进行重排。如图11所示,重排之前,每一行的数据长度不同,重排之后,每一行均为固定的数据长度,即均为1024字节,且相邻行之间具有一定长度的数据间隔(即blank)。且重排之后,将raw图像数据组织为一路数据集,将pd数据组织为一路数据集,将3a数据组织为一路数据集。[0134]对数据重排之后,各行的数据对应固定长度的数据,已达成快速解析协议。打包协议如下:[0135](1)打包之后,打包为行宽度为固定宽度1024bytes。[0136](2)打包的各行对应约定映射表(mappingtable),用于约定分配固定的数据。例如,第一行为长曝光的raw图像数据,第二行为短曝光的raw图像数据等。[0137]ap侧的数据解析模块为软件模块。使用和preisp芯片相同的映射表,通过软件可以快速的将接收的数据块解析出来。示意伪代码如下:[0138][0139]其中,i表示行号,line_count_of_pack表示mipi数据包的行数,每行的长度为1024,line_count_of_pack的值为整数,可以根据总数据大小调整,每轮循环会根据映射表判断该行是否为raw图像数据、pd数据或3a数据;一轮循环可以解析所有的包,解析完即可发送给3a算法模块或者isp芯片进行处理。[0140]ap侧的数据解析模块的触发方式可以通过行中断的方式触发。在ap侧的mipi协议中可以设置为每接收到一行数据就产生一个行中断。即边传输,边触发解析。而无需等待所有缓存数据(buffer)传输结束再解析。[0141]在本技术实施例中,(1)在preisp芯片方案中按固定的行间距,固定的行数目进行传输,解析速度快;(2)利用行中断,边传输边解析,使传输达到零延时传输;(3)每行1024字节传输,使得在ap侧解析速度更快;[0142]在本技术实施例中,将raw图像数据和meta数据按照规则的排列方式打包,使mipi接收端能够使用较少的vc_dt且能够快速接收;对于raw图像数据和meta数据,分解成若干行,每行的长度为固定长度。每行前面加一个tag,tag用于表示数据类型(raw图像数据和meta图像数据的类型不一致)。然后,将数据打包到同一个vc_dt的mipi数据包中。通过mipi硬件的同一个vc_dt发送给ap。[0143]以及,用行中断的方式,触发数据解析模块逐行解析,从而达到准零延时解析;在ap端开启对数据包接收时产生的行中断,这样收到行中断时,就可以实时的边逐行接收边解析。这样,在af自动对焦数据等处理时,能够更快地接收数据和响应。[0144]本技术实施例的上述方案可以扩展到其他数据的传输,不限于raw图像数据、3a数据和pd数据。未来其他新增的数据类型也可使用本方法。[0145]基于前述的实施例,本技术实施例提供一种数据传输装置,该装置包括所包括的各模块、以及各模块所包括的各单元,可以通过处理器来实现;当然也可通过具体的逻辑电路实现;在实施的过程中,处理器可以为图像处理芯片、中央处理器(cpu)、微处理器(mpu)、数字信号处理器(dsp)或现场可编程门阵列(fpga)等。[0146]图12为本技术实施例数据传输装置的结构示意图,如图12所示,数据传输装置12包括:[0147]转换模块121,用于将来自m路的第一待传数据集转换为n路第二待传数据集;其中,m大于1,n大于0且小于m;[0148]打包模块122,用于按照mipi协议,对所述n路第二待传数据集进行打包,得到第一批一个或多个mipi数据包;[0149]传输模块123,用于将所述第一批一个或多个mipi数据包通过n路数据通道传输给应用处理器。[0150]在一些实施例中,转换模块121,用于:按照特定的行数据长度,将所述m路第一待传数据集中的待传数据分解成至少一行数据;对所述至少一行数据进行重排,得到所述n路第二待传数据集;相应地,传输模块123,用于:将所述第一批一个或多个mipi数据包均匀地分配给所述n路数据通道并通过所述n路数据通道传输给所述应用处理器。[0151]在一些实施例中,转换模块121,用于:确定每行数据的第一类型;将用于表征所述行数据的第一类型的标签更新至所述行数据中;对更新后的所述至少一行数据进行重排,得到所述n路第二待传数据集。[0152]在一些实施例中,转换模块121,用于:确定更新后的每行数据的第二类型;所述第二类型属于所述第一类型的子类型;根据所述第二类型与行号的映射关系,对更新后的所述至少一行数据进行重排,得到所述n路第二待传数据集。[0153]在一些实施例中,所述特定的行数据长度对应于在单位时间内从存储器读取的最大数据量。[0154]在一些实施例中,所述第一待传数据集包括下列中的至少一项:执行3a算法所需的统计数据、pd数据和原始图像数据。[0155]本技术实施例还提供一种数据接收装置,图13为本技术实施例数据接收装置的结构示意图,如图13所示,数据接收装置13包括:[0156]接收模块131,用于根据特定的行数据长度,确定当前是否接收到一整行数据;以及如果当前接收到一整行数据,发送行中断给数据解析模块;[0157]数据解析模块132,用于对当前接收到的一行数据进行解析,得到解析数据;以及将所述解析数据发送给对应的第一图像处理芯片。[0158]在一些实施例中,数据解析模块132,用于:确定所述解析数据的行号;根据约定的每行对应存放的第二类型,确定所述解析数据的第二类型;根据所述解析数据的第二类型,将所述解析数据发送给对应的第一图像处理芯片。[0159]以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本技术装置实施例中未披露的技术细节,请参照本技术方法实施例的描述而理解。[0160]需要说明的是,上述装置对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。也可以采用软件和硬件结合的形式实现。[0161]需要说明的是,本技术实施例中,如果以软件功能模块的形式实现上述的方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得电子设备执行本技术各个实施例所述方法的全部或部分。而前述的存储介质包括:u盘、移动硬盘、只读存储器(readonlymemory,rom)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本技术实施例不限制于任何特定的硬件和软件结合。[0162]本技术实施例提供一种电子设备,图14为本技术实施例的电子设备的硬件实体示意图,如图14所示,所述电子设备14包括存储器141和处理器142,所述存储器141存储有可在处理器142上运行的计算机程序,所述处理器142执行所述程序时实现上述实施例中提供的方法中的步骤。[0163]需要说明的是,存储器141配置为存储由处理器142可执行的指令和应用,还可以缓存在处理器142以及电子设备14中各模块待处理或已经处理的数据(例如,图像数据、音频数据、语音通信数据和视频通信数据),可以通过闪存(flash)或随机访问存储器(randomaccessmemory,ram)实现。[0164]本技术实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中提供的方法中的步骤。[0165]本技术实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述方法实施例提供的方法中的步骤。[0166]这里需要指出的是:以上存储介质和设备实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本技术存储介质、存储介质和设备实施例中未披露的技术细节,请参照本技术方法实施例的描述而理解。[0167]应理解,说明书通篇中提到的“一个实施例”或“一实施例”或“一些实施例”意味着与实施例有关的特定特征、结构或特性包括在本技术的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”或“在一些实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本技术的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考,为了简洁,本文不再赘述。[0168]本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如对象a和/或对象b,可以表示:单独存在对象a,同时存在对象a和对象b,单独存在对象b这三种情况。[0169]需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者设备中还存在另外的相同要素。[0170]在本技术所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个模块或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或模块的间接耦合或通信连接,可以是电性的、机械的或其它形式的。[0171]上述作为分离部件说明的模块可以是、或也可以不是物理上分开的,作为模块显示的部件可以是、或也可以不是物理模块;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部模块来实现本实施例方案的目的。[0172]另外,在本技术各实施例中的各功能模块可以全部集成在一个处理单元中,也可以是各模块分别单独作为一个单元,也可以两个或两个以上模块集成在一个单元中;上述集成的模块既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。[0173]本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(readonlymemory,rom)、磁碟或者光盘等各种可以存储程序代码的介质。[0174]或者,本技术上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得电子设备执行本技术各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、rom、磁碟或者光盘等各种可以存储程序代码的介质。[0175]本技术所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。[0176]本技术所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。[0177]本技术所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。[0178]以上所述,仅为本技术的实施方式,但本技术的保护范围并不局限于此,任何熟悉本
技术领域
:的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1