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

一种数据处理方法、装置、设备及存储介质

文献发布时间:2023-06-19 10:51:07


一种数据处理方法、装置、设备及存储介质

技术领域

本公开涉及数据处理技术领域,尤其涉及一种数据处理方法、装置、设备及存储介质。

背景技术

图传系统现有的图像采集编码是通过采集卡采集像素,并将其排布为一种像素存储格式,然后写入主控内存,编码模块读取图像,并识别其是否是视频,如果被识别为视频,则将像素存储格式重新排布后转换为编码器支持的像素格式,然后调用编码器进行编码,如果识别结果不是视频,则直接对该图像进行编码。显而易见的是,现有的图像采集编码方法一旦当前图像被识别为视频,则需要对像素格式重新进行排布,这一过程需要耗费CPU的计算力,且因为涉及大量存储读写,导致cache存储器的命中率降低,影响系统整体性能,从而导致编码延迟加大。

发明内容

本公开实施例提供一种数据处理方法、装置、设备及存储介质,能够解决目前的数据处理方法存在编码延迟较大的问题。所述技术方案如下:

根据本公开实施例的第一方面,提供一种数据处理方法,该方法包括:获取数据源中的原始数据,所述原始数据至少包括两种数据类型;按照与所述原始数据的数据类型对应的至少两种数据格式对所述原始数据进行转换,得到至少两种目标数据,并将所述两种目标数据分别写入对应的存储区;接收编码请求,根据所述编码请求识别当前写入的目标数据的数据类型,根据所述当前写入的目标数据的数据类型选取对应的目标数据用于编码器进行编码。

本公开提供的数据处理方法,通过获取数据源中的原始数据,按照与原始数据的数据类型对应的至少两种数据格式对原始数据进行转换,得到至少两种目标数据,并将两种目标数据分别写入对应的存储区,根据编码请求识别当前写入的目标数据的数据类型,并根据数据类型选取对应的目标数据用于编码器进行编码。本公开提供的数据处理方法,在硬件带宽允许的情况下提出了一种同时输出多数据流的采集方案,可以实现数据到达不同编码器之前的无缝切换,从而为不同编码器提供对应格式的图像数据,而无需软件进行图像像素格式转换,从而避免了性能损失,进而提高了编码性能。

在一个实施例中,所述原始数据的数据类型包括:视频数据和非视频数据;所述按照与所述原始数据的数据类型对应的至少两种数据格式对所述原始数据进行转换,得到至少两种目标数据,包括:

按照与所述视频数据对应的第一数据格式对所述原始数据进行转换,得到第一目标数据,按照与所述非视频数据对应的第二数据格式对所述原始数据进行转换,得到第二目标数据。

在一个实施例中,所述两种目标数据的存储区均包括工作区和就绪区,所述方法还包括:

将所述两种目标数据分别写入对应的存储区中的工作区;

根据所述编码请求,将选取的目标数据的工作区和就绪区进行切换。

在一个实施例中,所述将选取的目标数据的工作区和就绪区进行切换,包括:

根据编码请求,在所述选取的目标数据的工作区写入一帧图像的最后一个像素点和下一帧图像的第一个像素点之间,将所述工作区和所述就绪区进行切换。

在一个实施例中,所述方法还包括:将所述就绪区中的目标数据发送给编码器,以便于所述编码器进行编码。

在一个实施例中,所述将选取的目标数据的工作区和就绪区进行切换,包括:

根据编码请求,在所述选取的目标数据的工作区写入一帧图像的场消隐期,将所述工作区和所述就绪区进行切换。

在一个实施例中,所述方法还包括:在没有接收到所述编码请求时,不切换所述目标数据的工作区和就绪区。

根据本公开实施例的第二方面,提供一种数据处理装置,该装置包括:

获取模块,用于获取数据源中的原始数据,所述原始数据至少包括两种数据类型;

处理模块,按照与所述原始数据的数据类型对应的至少两种数据格式对所述原始数据进行转换,得到至少两种目标数据,并将所述两种目标数据分别写入对应的存储区;

确定模块,根据所述编码请求读取并识别当前写入的目标数据的数据类型,根据所述当前写入的目标数据的数据类型选取对应的目标数据进行编码。

根据本公开实施例的第三方面,提供一种数据处理设备,该设备包括:包括处理器和存储器,所述存储器中存储有至少一条计算机指令,所述指令由所述处理器加载并执行以实现本公开实施例第一方面所述的数据处理方法中所执行的步骤。

根据本公开实施例的第四方面,提供一种计算机可读存储介质,该存储介质中存储有至少一条计算机指令,所述指令由处理器加载并执行以实现本公开实施例第一方面所述的数据处理方法中所执行的步骤。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。

图1是本公开实施例提供的一种数据处理方法的流程图;

图2是本公开实施例提供的YUV444Planar格式采样和数据排布示意图;

图3是本公开实施例提供的NV12格式采样和数据排布示意图;

图4是本公开实施例提供的YUV444Planar像素排布格式图;

图5是本公开实施例提供的NV12像素排布格式图;

图6是本公开实施例提供的输入采集芯片的像素流顺序示意图;

图7是本公开实施例提供的双流采集方案的示意图;

图8是本公开实施例提供的双流采集方案的示意图;

图9是本公开实施例提供的双流采集流程的软硬件交互时序示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的系统和方法的例子。

本公开实施例提供一种数据处理方法,如图1所示,该方法包括以下步骤:

101、获取数据源中的原始数据。

其中,数据源中的原始数据至少包括两种数据类型,如视频数据和非视频数据;

102、按照至少两种数据格式对原始数据进行转换,得到至少两种目标数据,并将两种目标数据分别写入对应的存储区;

其中,两种数据格式分别与原始数据的数据类型相对应。

在一个实施例中,按照与原始数据的数据类型对应的至少两种数据格式对原始数据进行转换,得到至少两种目标数据,包括:按照与视频数据对应的第一数据格式对原始数据进行转换,得到第一目标数据,按照与非视频数据对应的第二数据格式对原始数据进行转换,得到第二目标数据。

具体的,第一格式可以为NV12,第二格式可以为YUV444Planar,以上两种格式只是举例说明,本公开对此不作限定。

在实际应用中,采集硬件将原始数据中串行的RGB像素流信号同时收集为两种内存存储排布格式,这两种存储排布格式分别为:NV12和YUV444Planar。采集硬件在像素采集的过程中做RGB到YUV444Planar的转换,或者做RGB到NV12的转换,得到至少两种目标数据,并将两种目标数据分别写入对应的存储区。

在一个实施例中,两种目标数据的存储区均包括工作区和就绪区,方法还包括:将两种目标数据分别写入对应的存储区中的工作区。

103、接收编码请求,根据编码请求识别当前写入的目标数据的数据类型,根据数据类型选取对应的目标数据用于编码器进行编码。

在一个实施例中,根据编码请求,将选取的目标数据的工作区和就绪区进行切换。

具体的,将选取的目标数据的工作区和就绪区进行切换,包括:根据编码请求,在选取的目标数据的工作区写入一帧图像的最后一个像素点和下一帧图像的第一个像素点之间,将工作区和就绪区进行切换。

进一步的,将选取的目标数据的工作区和就绪区进行切换,包括:根据编码请求,在选取的目标数据的工作区写入一帧图像的场消隐期,将工作区和就绪区进行切换。

在一个实施例中,方法还包括:将就绪区中的目标数据发送给编码器,以便于编码器进行编码。

在一个实施例中,方法还包括:在没有接收到编码请求时,不切换目标数据的工作区和就绪区。

本公开提供的数据处理方法,通过获取数据源中的原始数据,按照与原始数据的数据类型对应的至少两种数据格式对原始数据进行转换,得到至少两种目标数据,并将两种目标数据分别写入对应的存储区,根据编码请求识别当前写入的目标数据的数据类型,并根据数据类型选取对应的目标数据用于编码器进行编码。本公开提供的数据处理方法,在硬件带宽允许的情况下提出了一种同时输出多数据流的采集方案,可以实现数据到达不同编码器之前的无缝切换,从而为不同编码器提供对应格式的图像数据,而无需软件进行图像像素格式转换,从而避免了性能损失,进而提高了编码性能。

在实际应用中,应用程序使用本方案前,需要明确一共需要多少种像素排布存储格式,从而为每一种存储格式打开一个流。比如,打开一个NV12格式数据流,用来进行视频编码,打开一个YUV444 Planar格式数据流,用来进行非视频编码。默认从YUV444 Planar数据流读取图像,当编码器连续若干帧识别为视频时,则从NV12流读取图像,用其进行编码,同时,仍然从YUV444Planar流读取图像用于视频识别;当从YUV444Planar流识别到的结果为非视频时,直接使用YUV444 Planar进行编码。当编码器识别到图像为非视频时,直接使用YUV444 Planar存储格式的流进行编码。本方案可以实现数据到达不同编码器之前的无缝切换,从而为不同编码器提供对应格式的图像数据,而无需软件进行图像像素格式转换,从而避免了性能损失。

下面通过一个具体实施例对本发明所述方案做以下详细说明:本发明所提供的数据处理方法重点在于采集芯片中针对单一数据源的多种格式图像采集,采集芯片中的处理方案如下:

采集卡/采集芯片使用内部RAM进行图像缓存,具体的,分4块区域用来存储YUV444Planar图像和NV12图像。YUV444 Planar图像和NV12图像分别占用两块区域。每种存储格式使用两块存储区域是为了做乒乓,乒乓的意思是两块存储区域来回倒换。一块用来收图像,另一块用来给主控芯片读。即将读/写区分开,同一个时刻只能向一块区域写从另一个区域读。两个不断切换,就像打乒乓球一样。

存储区域的其中一块用于进行图像数据的写入,同时在写入过程中完成图像格式的转换(将R/G/B图像转换为YUV444Planar或者NV12),这块区域被称为工作区;另一块用于DMA读,此区域被称为就绪区,可以通过DMA方式将就绪区中的数据传送至主机内存,主机上的应用程序得到DMA内存中的图像,交给编码器进行编码。实际工作过程中,各种格式图像的工作区和就绪区交替变化,采集卡仅对工作区进行写操作,即将转换后的YUV数据写入工作区;采集卡仅对就绪区进行读操作,即将就绪区作为DMA读的数据源。采集卡对工作区和就绪区的切换动作在写入一帧的最后一个像素点后写入下一帧第一个像素点之前被执行。采集卡DMA时间小于帧周期。以此保证工作区只写、就绪区只读。

YUV444Planar和NV12是通过不同的采样和数据排布方式得到的不同格式的数据,具体的,图2和图3分别示出了YUV444和NV12的采样方法。YUV444是每个像素点都采样,而NV12的Y每个像素点都采样,其U和V每四个像素点则采取相邻两行和相邻两列采样一个的原则。YUV444 Planar是一种YUV444的像素存储格式,其将所有的Y,所有的U,所有的V分别放在一起。NV12是一种YUV420的像素存储格式,其将所有的Y放在一起。然后将UV交替放在一起。YUV444和NV12的像素排布分别如图4和图5所示。

采集卡/采集芯片需要识别视频信号时序,识别出每帧图像在视频时序中的RGB起始点。当收到RGB起始点后开始进行新的一帧图像恢复,即将采集到的R/G/B图像转换成YUV444Planar格式图像或者NV12格式图像,并写入对应的工作区,当到达一帧图像时序中的最后一个点后,停止本帧图像恢复。如果此时有软件发起的未被硬件处理的流请求,那么在下一帧第一个像素点到来之前,完成就绪区和工作区切换,即新的工作区是之前的就绪区,新的就绪区是之前的工作区,其中保留了最近一帧完整图像YUV数据。

采集卡/采集芯片在采集到R/G/B信号后,将其分别恢复到内部RAM的YUV444Planar和NV12的工作区。采集卡/采集芯片在收到应用程序的YUV444 Planar数据请求后,在一帧图像的消隐期切换当前YUV444 Planar的工作区和就绪区(即将工作区切换为就绪区,将就绪区切换为工作区),然后发起DMA写操作(对于就绪区来说是读操作),将YUV444Planar数据从图像的YUV444 Planar的就绪区(即切换前的工作区)写入到主控内存。

输入采集芯片的像素流顺序如图6所示。其中阴影部分为场消隐期,其余部分为有效像素部分,采集芯片需要将其转换为YUV然后存储到内部RAM中(分别存储为YUV444Planar和NV12)。在场消隐期期间切换工作区和就绪区,此时所有有效像素均已转换并存储完毕。

采集卡/采集芯片在收到应用程序的NV12数据请求后,在一帧图像的消隐期切换NV12工作区和就绪区,然后发起DMA写操作,将NV12数据从图像的NV12的就绪区,即将切换前的工作区写入到主控内存。在没有收到应用程序图像请求的情况下,采集卡/采集芯片不切换工作区和就绪区,始终向工作区恢复图像。在写数据过程中,下一帧数据会自动覆盖上一帧数据。

本发明所提供的双流采集方案,其示意图如图7和图8所示,当第一帧像素开始进入采集芯片后,如图7所示,采集芯片开始转换RGB原始图像为YUV444 Planar和NV12,并同时分别存储在YUV444planar和NV12的两个工作区。此时两个就绪区内容为空。当采集芯片在采集一帧的过程,视频源传输的像素点尚未达到一帧内最后一个像素点,收到应用程序的请求,如请求传输一帧YUV444Planar图像,此时不进行工作区切换。等待这一帧视频源的传送完毕最后一个像素点后,即进入场消隐期,如图8所示切换YUV444 Planar的工作区和消隐期。NV12的工作区和消隐期不变应用程序没有请求NV12的图像。

切换动作执行后,将YUV444 Planar的就绪区中的数据DMA传送到主机内存。当新的一帧开始进入采集芯片时,采集芯片向切换后的YUV444 Planar工作区中存储YUV数据,同时向NV12工作区存储数据,此时NV12工作区没变,覆盖上一帧数据。同理,当应用程序请求NV12图像时,等到当前帧的消隐期来临后,切换NV12的工作区和就绪区,然后将NV12就绪区中的数据DMA传送到主机内存。

本发明所提供的双流采集流程的软硬件交互时序。如图9所示,其中Y行数据描述YUV444P的采集,N行数据描述NV12的采集,DY和DN分别描述DMA过程,每次DMA的内容是前一帧采集的数据。第N帧的DMA和第N+1帧的采集是并行的。DMA的传输时间要小于帧周期时间。YUV444P和NV12的DMA可以是并发的也可以是不并发的,取决于软件的请求时机。YUV444P和NV12的采集是完全并发的。应用层的处理方案如下:应用程序打开两条采集流,分别设置两条流的采集格式,一条流设置采集格式为YUV444 Planar,另一条设置为NV12,使能两条流的采集,应用程序向YUV444 Planar的流请求图像,应用程序判断是否是视频,如果是视频应用程序向NV12流请求图像,编码,如果不是视频,直接使用YUV444 Planar流中请求的图像进行编码。

本公开提供的数据处理方法,通过获取数据源中的原始数据,按照与原始数据的数据类型对应的至少两种数据格式对原始数据进行转换,得到至少两种目标数据,并将两种目标数据分别写入对应的存储区,根据编码请求识别当前写入的目标数据的数据类型,并根据数据类型选取对应的目标数据用于编码器进行编码。本公开提供的数据处理方法,在硬件带宽允许的情况下提出了一种同时输出多数据流的采集方案,可以实现数据到达不同编码器之前的无缝切换,从而为不同编码器提供对应格式的图像数据,而无需软件进行图像像素格式转换,从而避免了性能损失,进而提高了编码性能。

根据本公开实施例还提供了一种数据处理装置,该装置包括:

获取模块,用于获取数据源中的原始数据,所述原始数据至少包括两种数据类型;

处理模块,按照与所述原始数据的数据类型对应的至少两种数据格式对所述原始数据进行转换,得到至少两种目标数据,并将所述两种目标数据分别写入对应的存储区;

确定模块,根据所述编码请求读取并识别当前写入的目标数据的数据类型,根据所述当前写入的目标数据的数据类型选取对应的目标数据进行编码。

本公开提供的数据处理装置,通过获取模块获取数据源中的原始数据,按照与原始数据的数据类型对应的至少两种数据格式对原始数据进行转换,得到至少两种目标数据,并将两种目标数据分别写入对应的存储区,根据编码请求识别当前写入的目标数据的数据类型,并根据数据类型选取对应的目标数据用于编码器进行编码。本公开提供的数据处理装置,可以实现数据到达不同编码器之前的无缝切换,从而为不同编码器提供对应格式的图像数据,而无需软件进行图像像素格式转换,从而避免了性能损失,进而提高了编码性能。

基于上述实施例中所描述的一种数据处理方法,本公开实施例还提供了一种数据处理设备,该设备包括处理器和存储器,该存储器中存储有至少一条计算机指令,该指令由处理器加载并执行以实现本公开实施例所述的数据处理方法中所执行的步骤,此处不再赘述。

基于上述实施例中所描述的数据处理方法,本公开实施例还提供一种计算机可读存储介质,例如,非临时性计算机可读存储介质可以是只读存储器(英文:Read OnlyMemory,ROM)、随机存取存储器(英文:Random Access Memory,RAM)、CD-ROM、磁带、软盘和光数据存储装置等。该存储介质上存储有计算机指令,用于执行上述图1对应的实施例中所描述的数据处理方法,此处不再赘述。

本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。

应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

相关技术
  • 一种物联网设备数据处理方法、装置、设备及存储介质
  • 穿戴式设备及其数据处理方法、装置、设备、存储介质
技术分类

06120112706576