【技术实现步骤摘要】
一种基于QNX Hypervisor的图像采集方法
[0001]本专利技术涉及汽车智能座舱领域内的基于
QNX Hypervisor
的图像采集方法
。
技术介绍
[0002]传统的车载操作系统是单操作系统,仪表是一套系统,影音娱乐
IVI
是另外一套系统,两套系统硬件和软件都是独立的,双方通过
CAN
总线进行数据交互
。
而智能座舱系统仪表和娱乐是一套硬件,软件也是一套,但是隔离出多个域,分别用于仪表和娱乐,这样可以满足功能安全
。
[0003]不同的域运行不同的操作系统,比如
QNX、Android
等,不同系统之间有图像传输的需求,比如仪表将摄像头图像传给
IVI
进行处理和显示
。
常规的做法是
QNX host server
端通过虚拟局域网
VLAN
的方式发送图像数据,
Android client
端接收到数据后经过处理后显示到
surface view
里,但是这种方式效率低
、
延迟大
、
安全性低,并不适合实用性要求高的场景,并且还有个问题,如果多个应用需要获取图像数据,每个应用都需要单独编写接收代码,开发难度较大
。
此外目前在
QNX Hypervisor+Android GVM
系统上无法支持原生
android cam ...
【技术保护点】
【技术特征摘要】
1.
一种基于
QNX Hypervisor
的图像采集方法,其特征在于:包括以下步骤,步骤1,
proxy
主进程启动;步骤2,主进程创建
bufferq
初始化线程;步骤3,主进程创建
bufferq handle
线程;步骤4,主进程创建
signal
信号量处理线程;步骤5,主进程初始化内核
v4l2 loopback
设备
。2.
根据权利要求1所述的一种基于
QNX Hypervisor
的图像采集方法,其特征在于:步骤2的具体内容如下,步骤
2.1
,
bufferq
初始化线程启动,该线程由
proxy
主进程拉起;步骤
2.2
,使用
mmap
分配6个图像缓存
buffer
,每个
buffer
大小为
1920x720x3
=
4147200bytes
;步骤
2.3
,使用
buffer_share_init()
接口初始化
bufferq
对象实例;步骤
2.4
,使用
buffer_share_prepare_buffer()
接口获取6个
bufferq buffer
地址,该地址将用于后续图像数据的写入
。3.
根据权利要求2所述的一种基于
QNX Hypervisor
的图像采集方法,其特征在于:步骤3的具体内容如下,步骤
3.1
,检查
bufferq
是否初始化,如已初始化,则调用
bufferq_fetch_new_frame()
函数,如未初始化,则说明
qnx
端发送图像数据的服务异常,则调用
bufferq_fill_frame_buffer()
函数;步骤
3.2
,通过
bufferq_fetch_new_frame()
函数不断循环
buffer_share_dequeue、buffer_share_enqueue
来获取
qnx
端发送的图像采集数据,获取到的图像数据格式为
BGRA8888
,然后通过如下公式将其转换为
UYVY
格式:然后将
YUV
数据按照
UYVY
的顺序排列,写入
v4l2 loopback buffer
...
【专利技术属性】
技术研发人员:陶文,张单,高逊达,
申请(专利权)人:深圳市航盛电子股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。