嵌入式图像处理方法及装置转让专利

申请号 : CN201711449569.6

文献号 : CN108184053B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 蒋小辉余旭高路房

申请人 : 深圳进化动力数码科技有限公司

摘要 :

本发明涉及嵌入式图像处理技术领域,提供了一种嵌入式图像处理方法及装置。所述方法包括:获取ISP模块输出的图像对应的nv12数据;对所述nv12数据进行拼接处理,得到拼接后的nv12数据;将拼接后的nv12数据发送到多个功能模块进行处理。所述方法及装置可在设备内就能实现视频无缝拼接,而无需将视频放到PC端进行视频的拼接,使用户可以观看拍摄的全景视频,实现了一路数据的采集得到多路全景视频的体验,达到全景相机设备拍摄的视频分辨率高、视频体验效果好的目的。

权利要求 :

1.一种嵌入式图像处理方法,其特征在于,包括:获取ISP模块输出的图像对应的nv12数据;

对所述nv12数据进行拼接处理,得到拼接后的nv12数据;

将拼接后的nv12数据发送到多个功能模块进行处理;

所述获取ISP模块输出的图像对应的nv12数据,包括:

配置ISP模块数据输出的第一分辨率和第一帧率并将所述第一分辨率和所述第一帧率发送给所述ISP模块;

启动多个摄像头采集对应的多个饼图数据;将所述多个饼图数据发送给所述ISP模块,所述多个饼图数据用于所述ISP模块根据所述第一分辨率和第二分辨率将所述多个饼图数据合在一张图上,得到所述图像对应的nv12数据;

接收所述ISP模块发送的所述nv12数据并存储至所述ISP out queue中;

其中,所述nv12数据的分辨率和帧率为配置后的第一分辨率和第二分辨率。

2.根据权利要求1所述的嵌入式图像处理方法,其特征在于,在接收所述ISP模块发送的所述nv12数据并存储至所述ISP out queue中之后,还包括:根据存储在所述ISP out queue中的nv12数据显示饼图预览信息。

3.根据权利要求1所述的嵌入式图像处理方法,其特征在于,对所述nv12数据进行拼接处理,得到拼接后的nv12数据,包括:将所述ISP out queue中的所述nv12数据发送给DSP数据管理模块,所述nv12数据用于供所述DSP数据管理模块中的DSP处理器进行视频拼接操作,得到拼接后的nv12数据;

接收所述DSP处理器发送的所述拼接后的nv12数据。

4.根据权利要求3所述的嵌入式图像处理方法,其特征在于,所述DSP数据管理模块中的DSP处理器进行视频拼接操作,得到拼接后的nv12数据,包括:通过Mailbox中断,发送准备计算指令至所述DSP数据管理模块,所述准备计算指令用于通知所述DSP数据管理模块中的DSP处理器通过载入程序模块获取相关参数并执行视频拼接计算;

获取所述DSP处理器通过Mailbox发送的所述拼接后的nv12数据,并将所述拼接后的nv12数据缓存至DSP out queue中;

其中,相关参数包括发送给所述DSP数据管理模块中的nv12数据的存储位置。

5.根据权利要求4所述的嵌入式图像处理方法,其特征在于,所述多个功能模块包括:

HDMI预览模块、WIFI预览模块、全景视频录像模块、UVC预览模块以及拍照模块。

6.根据权利要求5所述的嵌入式图像处理方法,其特征在于,将拼接后的nv12数据发送到多个功能模块进行处理,包括:将拼接后的nv12数据发送到HDMI预览模块进行处理;其中,将拼接后的nv12数据发送到HDMI预览模块进行处理包括:通过所述HDMI预览模块将DSP out queue中拼接后的nv12数据拷贝;将拷贝的拼接后的nv12数据进行RGA缩放,由第一分辨率缩到第二分辨率;再将所述第二分辨率的nv12数据进行RGB转换操作;将RGB转换的第一数据拷贝到HDMI预览模块映射的内存上,所述RGB转换的第一数据用于在HDMI设备上显示;

将所述拼接后的nv12数据发送到WIFI预览模块进行处理;其中,将所述拼接后的nv12数据发送到WIFI预览模块进行处理包括:通过所述WIFI预览模块将DSP out queue中拼接后的nv12数据拷贝;将拷贝的拼接后的nv12数据进行RGA缩放,将第一分辨率缩到第三分辨率;再将所述第三分辨率的nv12数据进行h264编码;将h264编码后的第二数据发送至rtsp服务器端;

将所述拼接后的nv12数据发送到全景视频录像模块进行处理;其中,将所述拼接后的nv12数据发送到全景视频录像模块进行处理包括:通过全景视频录像模块的一个线程从DSP out queue中获取拼接后的nv12数据;通过另一个线程处理音频,并通过音频驱动器获取音频原始数据,并将音频原始数据通过aac编码后的第三数据发送至ffmpeg;将拼接后的nv12数据进行h264编码;将h264编码后的第二数据发送至ffmpeg;通过音视频数据合并器在ffmpeg中将所述ffmpeg中的h264编码后的第二数据和通过aac编码后的第三数据进行数据合并并以mp4的格式存储到终端设备中的存储卡中;

将所述拼接后的nv12数据发送到UVC预览模块进行处理;其中,将所述拼接后的nv12数据发送到UVC预览模块进行处理包括:通过所述UVC预览模块的线程从DSP out queue中获取拼接后的nv12数据;通过数据缩放线程将DSP out queue中的拼接后的nv12数据进行缩放,将第一分辨率缩到第四分辨率;再将所述第四分辨率的nv12数据进行h264编码或者mjpeg编码,并将编码后的第四数据通过UVC协议发送至USB主机端;

将所述拼接后的nv12数据发送到拍照模块进行处理;其中,将所述拼接后的nv12数据发送到拍照模块进行处理包括:通过所述拍照模块的第一线程从DSP out queue中获取拼接后的nv12数据;通过所述拍照模块的第二线程将拼接后的nv12数据进行RGA缩放,将第一分辨率缩到第五分辨率;再通过所述拍照模块的第三线程将所述第五分辨率的nv12数据进行jpeg编码,并通过所述拍照模块的第四线程将jpeg编码后的第五数据进行存储并发送至写文件。

7.一种嵌入式图像处理装置,其特征在于,包括:

获取模块,用于获取ISP模块输出的图像对应的nv12数据;

拼接处理模块,用于对所述nv12数据进行拼接处理,得到拼接后的nv12数据;

功能处理模块,用于将拼接后的nv12数据发送到多个功能模块进行处理;

所述获取模块201具体用于配置ISP模块数据输出的第一分辨率和第一帧率并将所述第一分辨率和所述第一帧率发送给所述ISP模块;启动多个摄像头采集对应的多个饼图数据;将所述多个饼图数据发送给所述ISP模块,所述多个饼图数据用于所述ISP模块根据所述第一分辨率和第二分辨率将所述多个饼图数据合在一张图上,得到所述图像对应的nv12数据;接收所述ISP模块发送的所述nv12数据并存储至所述ISP out queue中;其中,所述nv12数据的分辨率和帧率为配置后的第一分辨率和第二分辨率。

8.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时,实现如权利要求1至6任一项所述方法的步骤。

9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被一个或多个处理器执行时,实现如权利要求1至6任一项所述方法的步骤。

说明书 :

嵌入式图像处理方法及装置

技术领域

[0001] 本发明涉及嵌入式图像处理技术领域,具体涉及一种嵌入式图像处理方法及装置。

背景技术

[0002] 目前市面上的嵌入式图像设备大多都是单目摄像头,只能捕捉单方向的视频,而市面上的双目摄像机的检测的方式虽然可以通过对两幅图像视差的计算,直接对前方景物(图像所拍摄到的范围)进行距离测量,而无需判断前方出现的是什么类型的障碍物,但是,现有技术中全景相机设备拍摄的视频分辨率不高、视频体验效果较差。

发明内容

[0003] 有鉴于此,本发明实施例提供了一种嵌入式图像处理方法及装置,以解决现有技术中全景相机设备拍摄的视频分辨率不高、视频体验效果较差的问题。
[0004] 本发明实施例提供一种嵌入式图像处理方法及装置,包括:
[0005] 获取ISP模块输出的图像对应的nv12数据;
[0006] 对所述nv12数据进行拼接处理,得到拼接后的nv12数据;
[0007] 将拼接后的nv12数据发送到多个功能模块进行处理。
[0008] 可选的,获取ISP模块输出的图像对应的nv12数据,包括:
[0009] 配置ISP模块数据输出的第一分辨率和第一帧率并将所述第一分辨率和所述第一帧率发送给所述ISP模块;
[0010] 启动多个摄像头采集对应的多个饼图数据;将所述多个饼图数据发送给所述ISP模块,所述多个饼图数据用于所述ISP模块根据所述第一分辨率和第二分辨率将所述多个饼图数据合在一张图上,得到所述图像对应的nv12数据;
[0011] 接收所述ISP模块发送的所述nv12数据并存储至所述ISP out queue中;
[0012] 其中,所述nv12数据的分辨率和帧率为配置后的第一分辨率和第二分辨率。
[0013] 可选的,在接收所述ISP模块发送的所述nv12数据并存储至所述ISP out queue中之后,还包括:
[0014] 根据存储在所述ISP out queue中的nv12数据显示饼图预览信息。
[0015] 可选的,对所述nv12数据进行拼接处理,得到拼接后的nv12数据,包括:
[0016] 将所述ISP out queue中的所述nv12数据发送给所述DSP数据管理模块,所述nv12数据用于供所述DSP数据管理模块中的DSP处理器进行视频拼接操作,得到拼接后的nv12数据;
[0017] 接收所述DSP处理器发送的所述拼接后的nv12数据。
[0018] 可选的,所述DSP数据管理模块中的DSP处理器进行视频拼接操作,得到拼接后的nv12数据,包括:
[0019] 通过Mailbox中断,发送准备计算指令至所述DSP数据管理模块,所述准备计算指令用于通知所述DSP数据管理模块中的DSP处理器通过载入程序模块获取相关参数并执行视频拼接计算;
[0020] 获取所述DSP处理器通过Mailbox发送的所述拼接后的nv12数据,并将所述拼接后的nv12数据缓存至DSP out queue中;
[0021] 其中,相关参数包括发送给所述DSP数据管理模块中的nv12数据的存储位置。
[0022] 可选的,所述多个功能模块包括:
[0023] HDMI预览模块、WIFI预览模块、全景视频录像模块、UVC预览模块以及拍照模块。
[0024] 可选的,将拼接后的nv12数据发送到多个功能模块进行处理,包括:
[0025] 将拼接后的nv12数据发送到HDMI预览模块进行处理;其中,将拼接后的nv12数据发送到HDMI预览模块进行处理包括:通过所述HDMI预览模块将DSP out queue中拼接后的nv12数据拷贝;将拷贝的拼接后的nv12数据进行RGA缩放,由第一分辨率缩到第二分辨率;再将所述第二分辨率的nv12数据进行RGB转换操作;将RGB转换的第一数据拷贝到HDMI预览模块映射的内存上,所述RGB转换的第一数据用于在HDMI设备上显示;
[0026] 将所述拼接后的nv12数据发送到WIFI预览模块进行处理;其中,将所述拼接后的nv12数据发送到WIFI预览模块进行处理包括:通过所述WIFI预览模块将DSP out queue中拼接后的nv12数据拷贝;将拷贝的拼接后的nv12数据进行RGA缩放,将第一分辨率缩到第三分辨率;再将所述第三分辨率的nv12数据进行h264编码;将h264编码后的第二数据发送至rtsp服务器端;
[0027] 将所述拼接后的nv12数据发送到全景视频录像模块进行处理;其中,将所述拼接后的nv12数据发送到全景视频录像模块进行处理包括:通过全景视频录像模块的一个线程从DSP out queue中获取拼接后的nv12数据;通过另一个线程处理音频,并通过音频驱动器获取音频原始数据,并将音频原始数据通过aac编码后的第三数据发送至ffmpeg;将拼接后的nv12数据进行h264编码;将h264编码后的第二数据发送至ffmpeg;通过音视频数据合并器在ffmpeg中将所述ffmpeg中的h264编码后的第二数据和通过aac编码后的第三数据进行数据合并并以mp4的格式存储到终端设备中的存储卡中;
[0028] 将所述拼接后的nv12数据发送到UVC预览模块进行处理;其中,将所述拼接后的nv12数据发送到UVC预览模块进行处理包括:通过所述UVC预览模块的线程从DSP out queue中获取拼接后的nv12数据;通过数据缩放线程将DSP out queue中的拼接后的nv12数据进行缩放,将第一分辨率缩到第四分辨率;再将所述第四分辨率的nv12数据进行h264编码或者mjpeg编码,并将编码后的第四数据通过UVC协议发送至USB主机端;
[0029] 将所述拼接后的nv12数据发送到拍照模块进行处理;其中,将所述拼接后的nv12数据发送到拍照模块进行处理包括:通过所述拍照模块的第一线程从DSP out queue中获取拼接后的nv12数据;通过所述拍照模块的第二线程将拼接后的nv12数据进行RGA缩放,将第一分辨率缩到第五分辨率;再通过所述拍照模块的第三线程将所述第五分辨率的nv12数据进行jpeg编码,并通过所述拍照模块的第四线程将jpeg编码后的第五数据进行存储并发送至写文件。
[0030] 本发明实施例提供一种嵌入式图像处理装置,包括:
[0031] 获取模块,用于获取ISP模块输出的图像对应的nv12数据;
[0032] 拼接处理模块,用于对所述nv12数据进行拼接处理,得到拼接后的nv12数据;
[0033] 功能处理模块,用于将拼接后的nv12数据发送到多个功能模块进行处理。
[0034] 本发明实施例提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时,实现上述任一所述方法的步骤。
[0035] 本发明实施例提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被一个或多个处理器执行时,实现上述任一所述方法的步骤。
[0036] 本发明实施例采用的技术方案与现有技术相比存在的有益效果是:本发明通过获取ISP模块输出的图像对应的nv12数据,对所述nv12数据进行拼接处理,得到拼接后的nv12数据,将拼接后的nv12数据发送到多个功能模块进行处理,可在设备内就能实现视频无缝拼接,而无需将视频放到PC端进行视频的拼接,使用户可以观看拍摄的全景视频,实现了一路数据的采集得到多路全景视频的体验。

附图说明

[0037] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0038] 图1是本发明实施例提供的嵌入式图像处理方法的流程图;
[0039] 图2是本发明实施例提供的嵌入式图像处理装置的结构框图。

具体实施方式

[0040] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0041] 参见图1,本发明提供的一种嵌入式图像处理方法,包括:
[0042] 步骤S101,获取ISP模块输出的图像对应的nv12数据。
[0043] 所述图像可以为摄像头拍摄的图像,所述nv12数据在拼接完成后可以用于生成全景图像。
[0044] 所述嵌入式图像处理方法是通过硬件和软件两部分实现的,其中,硬件部分采用搭载瑞星微RK1108芯片的一块开发板以及XC9080型号的摄像头传感器,软件部分采用LINUX操作系统。所述ISP模块是图像信号处理模块,用于采集、处理以及存储数据,本实施例中,ISP模块输出图像对应的nv12数据,ARM处理器获取所述nv12数据,其中,所述nv12是数据的一种格式。
[0045] 进一步地,获取ISP模块输出的图像对应的nv12数据,包括:配置ISP模块数据输出的第一分辨率和第一帧率并将所述第一分辨率和所述第一帧率发送给所述ISP模块;启动多个摄像头采集对应的多个饼图数据;将所述多个饼图数据发送给所述ISP模块,所述多个饼图数据用于所述ISP模块根据所述第一分辨率和第二分辨率将所述多个饼图数据合在一张图上,得到所述图像对应的nv12数据;接收所述ISP模块发送的所述nv12数据并存储至所述ISP out queue中;其中,所述nv12数据的分辨率和帧率为配置后的第一分辨率和第二分辨率。
[0046] 本实施例中,采用两个摄像头,所述nv12数据是采集的图像所对应的数据,启动两个摄像头进行数据采集,其中,摄像头采用XC9080型号的摄像头传感器且相对的方向安装,所述两个摄像头采集的数据是对应的两个饼图数据,在所述ISP模块上将两个饼图数据合在一张图上,所述合在一张图上是将两个饼图放在一个图像中,并不是拼接后的图像。配置ISP模块数据输出的第一分辨率和第一帧率,因此,将两个饼图数据合在一张图上后ISP模块输出nv12数据,所述nv12数据的分辨率和帧率为第一分辨率和第一帧率,并将所述nv12数据存储至所述ISP out queue中,其中,ISP out queue是ISP数据输出缓冲队列,用于缓存nv12数据以及输出nv12数据。
[0047] 进一步地,在接收所述ISP模块发送的所述nv12数据并存储至所述ISP out queue中之后,还可以包括:根据存储在所述ISP out queue中的nv12数据显示饼图预览信息。
[0048] 本实施例中,存储在ISP out queue中的nv12数据可以传输两个方向:将所述nv12数据传输至高清晰多媒体HDMI接口,在显示器上显示饼图预览信息,进行饼图预览,可以用于图像标定。
[0049] 或者,将存储所述nv12数据传输至DSP数据管理模块进行数据拼接处理。
[0050] 步骤S102,对所述nv12数据进行拼接处理,得到拼接后的nv12数据。
[0051] 可选的,对所述nv12数据进行拼接处理,得到拼接后的nv12数据,可以包括:将所述ISP out queue中的所述nv12数据发送给所述DSP数据管理模块,所述nv12数据用于供所述DSP数据管理模块中的DSP处理器进行视频拼接操作,得到拼接后的nv12数据;接收所述DSP处理器发送的所述拼接后的nv12数据。
[0052] 本实施例中,视频拼接计算是在DSP数据管理模块中的DSP处理器上实现的,其中,ARM处理器和DSP处理器的通信方式采用的是Mailbox机制。首先,DSP数据管理模块从ISP out queue中一帧一帧的获取图像对应的nv12数据,根据nv12数据,DSP处理器进行视频拼接操作,得到拼接后的nv12数据,所述DSP处理器再将拼接后的nv12数据发送给ARM处理器。
[0053] 进一步地,所述DSP数据管理模块中的DSP处理器进行视频拼接操作,得到拼接后的nv12数据,包括:通过Mailbox中断,发送准备计算指令至所述DSP数据管理模块,所述准备计算指令用于通知所述DSP数据管理模块中的DSP处理器通过载入程序模块获取相关参数并执行视频拼接计算;获取所述DSP处理器通过Mailbox发送的所述拼接后的nv12数据,并将所述拼接后的nv12数据缓存至DSP out queue中;其中,相关参数包括发送给所述DSP数据管理模块中的nv12数据的存储位置。
[0054] 本实施例中,ARM处理器调用内核DSP驱动程序,申请视频数据拼接:通过Mailbox中断,通知DSP数据管理模块准备计算;ARM处理器将ISP out queue中nv12数据一帧一帧的送到DSP数据管理模块,DSP处理器通过载入程序模块获取DSP数据管理模块中的nv12数据的存储位置并执行视频拼接计算,计算完成后,再将计算结果以消息的形式通过Mailbox反馈到ARM处理器,完成一次计算,ARM处理器将ISP out queue中nv12数据一帧一帧的送到DSP数据管理模块,经过多次计算,得到拼接后的nv12数据,并将拼接后的nv12数据缓存至DSP out queue中,其中,DSP out queue为DSP数据输出缓冲队列,用于缓存拼接后的nv12数据以及输出拼接后的nv12数据。
[0055] 步骤S103,将拼接后的nv12数据发送到多个功能模块进行处理。
[0056] 本实施例通过获取ISP模块输出的图像对应的nv12数据,对所述nv12数据进行拼接处理,得到拼接后的nv12数据,将拼接后的nv12数据发送到多个功能模块进行处理,可在设备内就能实现视频无缝拼接,而无需将视频放到PC端进行视频的拼接,使用户可以观看拍摄的全景视频,实现了一路数据的采集得到多路全景视频的体验。
[0057] 可选的,步骤S103中的所述多个功能模块可以包括:HDMI预览模块、WIFI预览模块、全景视频录像模块、UVC预览模块以及拍照模块。
[0058] 本实施例中,将拼接后的nv12数据可以用于HDMI预览模块进行HDMI预览、用于WIFI预览模块进行WIFI预览、用于全景视频录像模块进行全景视频录像,还可以用于UVC预览模块进行UVC预览以及用于拍照模块进行全景拍照并保存。其中,HDMI预览是高清晰度多媒体预览,用户可以预览观看高清晰度视频或照片,WIFI预览是实时地在线预览,用户可以体验实时预览无缝拼接视频,用户还可以通过全景视频录像模块观看拍摄的全景视频,体验效果好,UVC预览是短波紫外线预览,用于图像预览,拍照模块可以用于定时拍照,还可以用于连拍,并将图像进行保存。
[0059] 进一步地,将拼接后的nv12数据发送到多个功能模块进行处理,包括:
[0060] 将拼接后的nv12数据发送到HDMI预览模块进行处理;其中,将拼接后的nv12数据发送到HDMI预览模块进行处理包括:通过所述HDMI预览模块将DSP out queue中拼接后的nv12数据拷贝;将拷贝的拼接后的nv12数据进行RGA缩放,由第一分辨率缩到第二分辨率;再将所述第二分辨率的nv12数据进行RGB转换操作;将RGB转换的第一数据拷贝到HDMI预览模块映射的内存上,所述RGB转换的第一数据用于在HDMI设备上显示;
[0061] 将所述拼接后的nv12数据发送到WIFI预览模块进行处理;其中,将所述拼接后的nv12数据发送到WIFI预览模块进行处理包括:通过所述WIFI预览模块将DSP out queue中拼接后的nv12数据拷贝;将拷贝的拼接后的nv12数据进行RGA缩放,将第一分辨率缩到第三分辨率;再将所述第三分辨率的nv12数据进行h264编码;将h264编码后的第二数据发送至rtsp服务器端;
[0062] 将所述拼接后的nv12数据发送到全景视频录像模块进行处理;其中,将所述拼接后的nv12数据发送到全景视频录像模块进行处理包括:通过全景视频录像模块的一个线程从DSP out queue中获取拼接后的nv12数据;通过另一个线程处理音频,并通过音频驱动器获取音频原始数据,并将音频原始数据通过aac编码后的第三数据发送至ffmpeg;将拼接后的nv12数据进行h264编码;将h264编码后的第二数据发送至ffmpeg;通过音视频数据合并器在ffmpeg中将所述ffmpeg中的h264编码后的第二数据和通过aac编码后的第三数据进行数据合并并以mp4的格式存储到终端设备中的存储卡中;
[0063] 将所述拼接后的nv12数据发送到UVC预览模块进行处理;其中,将所述拼接后的nv12数据发送到UVC预览模块进行处理包括:通过所述UVC预览模块的线程从DSP out queue中获取拼接后的nv12数据;通过数据缩放线程将DSP out queue中的拼接后的nv12数据进行缩放,将第一分辨率缩到第四分辨率;再将所述第四分辨率的nv12数据进行h264编码或者mjpeg编码,并将编码后的第四数据通过UVC协议发送至USB主机端;
[0064] 将所述拼接后的nv12数据发送到拍照模块进行处理;其中,将所述拼接后的nv12数据发送到拍照模块进行处理包括:通过所述拍照模块的第一线程从DSP out queue中获取拼接后的nv12数据;通过所述拍照模块的第二线程将拼接后的nv12数据进行RGA缩放,将第一分辨率缩到第五分辨率;再通过所述拍照模块的第三线程将所述第五分辨率的nv12数据进行jpeg编码,并通过所述拍照模块的第四线程将jpeg编码后的第五数据进行存储并发送至写文件。
[0065] 本实施例中,所述HDMI预览模块将拼接后的nv12数据进行处理的过程,可以包括:所述HDMI预览模块将存储在DSP out queue中拼接后的nv12数据拷贝,将拷贝过来的拼接后的nv12数据进行RGA(Raster Graphic Acceleration)缩放,其中,RGA为光栅图形加速,第一分辨率和第一帧率是3040*1520@30fps,第二分辨率为1280*720,RGA缩放可以将分辨率3040*1520缩到分辨率1280*720,再将分辨率为1280*720的nv12数据进行RGB转换操作,将RGB转换后的数据拷贝到HDMI设备映射的内存上,所述RGB是RGB色彩模式,RGB转换后的第一数据可以显示到HDMI设备上,所述HDMI设备是高清晰度多媒体设备,用于实现预览观看高清晰度视频或照片。
[0066] WIFI预览需要通过WIFI无线传输,由于DSP数据管理模块输出的拼接后的nv12数据的格式数据量过大,而WIFI数据带宽有限,所以拼接后的nv12数据必须进行压缩,本实施例中采用的是h264硬件压缩编码,采用的分辨率为第三分辨率1920*920,其中,所述h264是一种压缩的格式。
[0067] 所述WIFI预览模块将拼接后的nv12数据进行处理的过程,可以包括:WIFI预览模块从DSP out queue中拷贝出拼接后的nv12数据,将第一分辨率通过RGA缩放,将分辨率3040*1520压缩成分辨率1920*920,再将分辨率为1920*920的nv12数据进行h264编码,并将编码后的第二数据送到rtsp服务器端,用于实现体验实时预览无缝拼接视频,其中,rtsp是服务器的一种。本实施例采用比较成熟稳定的rtsp服务器框架方案:在设备端安装rtsp服务器,DSP数据管理模块输出的拼接后的nv12数据经过h264编码后,调用rtsp服务器提供的调用接口API将h264编码后的第二数据传送到rtsp服务器,而不用考虑网络连接的超时、稳定等情况,其中,API就是操作系统留给应用程序的一个调用接口,用于应用程序通过调用操作系统的API而使操作系统去执行应用程序的命令。
[0068] 其中,WIFI预览模块将拼接后的nv12数据进行处理的过程中需要通过WIFI控制,本实施例中WIFI控制采用的是Nginx+Fcgi框架,Nginx是一个高性能的http和反向代理服务器,Fcgi表示进程,则所述Nginx+Fcgi框架的实现为:在设备端安装Nginx服务器,设备端根据不同的功能分多个进程Fcgi处理,基本控制命令进程Fcgi_client、文件操作进程Fcgi_file_operation、长连接进程Fcgi_push,所述基本控制命令进程Fcgi_client、文件操作进程Fcgi_file_operation以及长连接进程Fcgi_push通过本地套接字socket与主进程进行通信,所述基本控制命令进程Fcgi_client、文件操作进程Fcgi_file_operation以及长连接进程Fcgi_push分别通过不同的端口采用进程Fcgi与http服务器进行通信且通信语言采用轻量级Json数据格式的通信语言,用户端通过http协议连接所述设备,通过轻量级json数据格式给设备端发送指令来操控所述设备和实时获取所述设备端的状态信息,所述状态信息可以包括视频拼接计算的进程信息。
[0069] 本实施例中,全景视频录像模块获取的拼接后的nv12数据的过程中,获取的拼接后的nv12数据分辨率不做缩放,采用ISP模块输出分辨率和帧率,所述ISP模块输出分辨率和帧率可以是第一分辨率和第一帧率3040*1520@30fps,还可以是2400*1200@60fps。其中,3040*1520@30fps和2400*1200@60fps这两款分辨率和帧率DSP处理器进行视频拼接计算和搭载瑞星微RK1108芯片的硬件的h264编码都能够支持。本实施例设置了ffmpeg库,所述ffmpeg库是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序,用于mp4文件的生成和写入保存。其中,视频参数中采用mp4的格式的分辨率和帧率为
3040*1520@30fps或者2400*1200@60fps,码率为15Mbps,音频参数中采用aac编码、采样率
44.2KHz和单声道,其中,所述aac编码是高级音频编码。
[0070] 所述UVC预览模块将拼接后的nv12数据进行处理的过程中,将所述第四分辨率的nv12数据进行h264编码或者mjpeg编码是根据USB主机端请求的编码格式来选择不同的编码器来进行编码的,所述mjpeg是一种编码格式,用于将RGB格式的影像转换成YCrCB格式,本实施例中,UVC预览模块支持多种格式和分辨率:yuyv格式(分辨率960*480、640*320)、mjpeg格式(分辨率960*480、1440*720、1920*960、2560*1280、3040*1520)、H264格式(分辨率960*480、1440*720、1920*960、2560*1280、3040*1520)。
[0071] 所述拍照模块将拼接后的nv12数据进行处理的过程中,拍照模块可以包括全景拍照,还可以包括饼图拍照,其中,全景拍照的数据来源为DSP out queue中的拼接后的nv12数据,饼图拍照的数据来源是ISP out queue中的nv12数据。全景拍照中照片采用mjpeg编码4k(4096*2048)的全景照片,由于ISP模块无法输出4k的nv12数据,本实施例中将DSP数据管理模块输出的分辨率为3040*1520的图像经过RGA缩放成4K(4090*2048),编码器mjpeg处理的是RGA缩放后的4K图像,保存到所述写文件中的图像为4K全景图。
[0072] 由于受限于编码时间,1秒实现20或30连拍,需使用额外内存缓存图片,然后处理缓存下的图片,一张4K的nv12数据对应的图片约12M,30张就是360M,设备中离子平台ION内存不够使用,即使是3K的nv12数据对应的图片也需6.7M,30张约200M,所述第一线程在将DSP out queue中拼接后的nv12数据输出端,每输出一帧触发一次第一线程,第二线程、第三线程以及第四线程是从开始拍照时创建,直到拍照结束时结束线程,其中,RGA缩放、jpeg编码以及写文件的处理依次进行,通过拍照模块可以实现了定时拍照和连拍,其中,jpeg是一种编码格式。
[0073] 本实施例中,通过设计全景视频数据流的整体方案框架实现例一路数据采集多路实时全景视频预览的目的,通过WIFI预览模块的设置和WIFI控制的实现,在设备内部可以实时进行视频拼接计算以及在线预览,因此,本发明不仅能够实现手机连接,也可以享受全景视频拼接,高质量的摄像等,其中,ISP模块可以输出3040*1520@30fps和2400*1200@60fps两种视频,本发明还采用设备内DSP数据管理模块实时无缝拼接,而无需将视频放到PC端进行视频的拼接,支持全景HDMI实时预览、全景WIFI实时预览、全景UVC实时预览、全景MP4录像、全景拍照等功能,同时还能提供非拼接的两幅图像用于做拼接算法的标定,实现了全景相机设备拍摄的视频分辨率高、视频体验效果好的目的。
[0074] 参见图2,本实施例提供一种嵌入式图像处理装置,可以包括:获取模块201,用于获取ISP模块输出的图像对应的nv12数据;拼接处理模块202,用于对所述nv12数据进行拼接处理,得到拼接后的nv12数据;功能处理模块203,用于将拼接后的nv12数据发送到多个功能模块进行处理。
[0075] 本实施例中的嵌入式图像处理装置可以用于执行图1所示的嵌入式图像处理方法,其具体实现原理可以参见上述方法实施例,此处不再赘述。
[0076] 本实施例中,通过设置获取模块201、拼接处理模块202以及功能处理模块203,用于通过获取ISP模块输出的图像对应的nv12数据,对所述nv12数据进行拼接处理,得到拼接后的nv12数据,将拼接后的nv12数据发送到多个功能模块进行处理,可在设备内就能实现视频无缝拼接,而无需将视频放到PC端进行视频的拼接,使用户可以观看拍摄的全景视频,实现了一路数据的采集得到多路全景视频的体验。
[0077] 其中,设置的获取模块201具体用于配置ISP模块数据输出的第一分辨率和第一帧率并将所述第一分辨率和所述第一帧率发送给所述ISP模块;启动多个摄像头采集对应的多个饼图数据;将所述多个饼图数据发送给所述ISP模块,所述多个饼图数据用于所述ISP模块根据所述第一分辨率和第二分辨率将所述多个饼图数据合在一张图上,得到所述图像对应的nv12数据;接收所述ISP模块发送的所述nv12数据并存储至所述ISP out queue中;其中,所述nv12数据的分辨率和帧率为配置后的第一分辨率和第二分辨率。
[0078] 所述拼接处理模块202具体用于将所述ISP out queue中的所述nv12数据发送给所述DSP数据管理模块,所述nv12数据用于供所述DSP数据管理模块中的DSP处理器进行视频拼接操作,得到拼接后的nv12数据;接收所述DSP处理器发送的所述拼接后的nv12数据。
[0079] 所述功能处理模块203具体用于通过所述HDMI预览模块将DSP out queue中拼接后的nv12数据拷贝,将拷贝的拼接后的nv12数据进行RGA缩放,由第一分辨率缩到第二分辨率,再将所述第二分辨率的nv12数据进行RGB转换操作,将RGB转换的第一数据拷贝到HDMI预览模块映射的内存上,所述RGB转换的第一数据用于在HDMI设备上显示;通过所述WIFI预览模块将DSP out queue中拼接后的nv12数据拷贝,将拷贝的拼接后的nv12数据进行RGA缩放,将第一分辨率缩到第三分辨率,再将所述第三分辨率的nv12数据进行h264编码,将h264编码后的第二数据发送至rtsp服务器端;通过全景视频录像模块的一个线程从DSP out queue中获取拼接后的nv12数据,通过另一个线程处理音频,并通过音频驱动器获取音频原始数据,并将音频原始数据通过aac编码后的第三数据发送至ffmpeg,将拼接后的nv12数据进行h264编码,将h264编码后的第二数据发送至ffmpeg,通过音视频数据合并器在ffmpeg中将所述ffmpeg中的h264编码后的第二数据和通过aac编码后的第三数据进行数据合并并以mp4的格式存储到终端设备中的存储卡中;通过所述UVC预览模块的线程从DSP out queue中获取拼接后的nv12数据,通过数据缩放线程将DSP out queue中的拼接后的nv12数据进行缩放,将第一分辨率缩到第四分辨率,再将所述第四分辨率的nv12数据进行h264编码或者mjpeg编码,并将编码后的第四数据通过UVC协议发送至USB主机端;通过所述拍照模块的第一线程从DSP out queue中获取拼接后的nv12数据,通过所述拍照模块的第二线程将拼接后的nv12数据进行RGA缩放,将第一分辨率缩到第五分辨率,再通过所述拍照模块的第三线程将所述第五分辨率的nv12数据进行jpeg编码,并通过所述拍照模块的第四线程将jpeg编码后的第五数据进行存储并发送至写文件。
[0080] 本发明提供的计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,可以实现上述方法的步骤。
[0081] 本实施例中的计算机设备可以用于执行图1所示的嵌入式图像处理方法,其具体实现原理可以参见上述方法实施例,此处不再赘述。
[0082] 本发明提供的计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被一个或多个处理器执行时,可以实现上述方法的步骤。
[0083] 本实施例中的计算机可读存储介质可以用于执行图1所示的嵌入式图像处理方法,其具体实现原理可以参见上述方法实施例,此处不再赘述。
[0084] 以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。