案例分享:当前高端低延迟视频类产品方案分享(内窥镜、记录仪、车载记录仪、车载环拼、车载后视镜等产品)

news2025/1/18 14:36:37

若该文为原创文章,转载请注明出处
本文章博客地址:https://hpzwl.blog.csdn.net/article/details/135439369

红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…(点击传送门)

合作案例专栏:案例分享(体验Demo可下载,只定制)


当前市场技术方案

  当前市场在摄像头视频处理方向走向高端,随之而来的是对技术要求的提升,对团队人员数量的提升,才能共同完成一个高端低延迟摄像头处理产品方案,这些方案基本都属于通用的,区别在于研发成本和研发周期,摄像头在于结构和工艺成本,目前博主公司也正在投入研制高端方案四,将会有完全由红胖子控制自主知识产权,预计时间节点在2024年7~12月,稳定老化测试一切ok后产品化再出。


方案一:低端usb方案,高延迟、低成本、可替代

  在这里插入图片描述

  • in:数据流输入,已经实现好的模组,输出ubs的uvc协议数据,延迟控制在200ms左右,这是数据流进入系统入口的时间;
  • usb协议:usb的uvc协议解析耗费时间,再通过ffmpeg或者opencv打开摄像头,所以这就是正常的打开摄像头的路径,延迟也会再个几十ms。
  • Qt应用:Qt显示使用QImage刷类似的方案或者可以使用QOpengWidget贴纹理方案,经过基本验证,cpu足够的情况下,两者基本不会有什么延迟差距。
  • 显存buffer:是Qt作为wayland等一些显示框架,会有显存buffer,显存buffer会输出到外面,进而进行显示,这块回有一点点很小的延迟;
  • out:显示输出,显存的输出途径,可以hdmi、mipi、mini-hdmi等各种,这部不影响延迟。

方案二:中端海思方案,低延迟、中成本、可替代(能拿到货是一码事,货多少钱又是一码事)

在这里插入图片描述

  • in:数据流输入,已经实现好的模组,输出一些bt1120数据,延迟控制在30ms-50ms左右,这是拍摄到sensor后转化数据流进入系统入口的时间;
  • mpp海思:mpp海思直接in通过mipi接口进入海思芯片,海思芯片mpp直接写个sample操作一些isp和叠层,从而实现对图像叠层以及图像的控制,但是海思芯片购买渠道、数量和价格受到很大约束,并且受限于应用的复杂程度,必定不是终极方案。
  • Qt应用:Qt不显示,只占位显示的区域,与海思sample通过本地socket完成控制交互,对图像走海思输出延迟毫无影响,但是Qt的应用程序不能做复杂的界面操作,因为其依赖cpu,海思上至少两个系列实测存在卡顿问题,需要尽可能的少刷显示界面,如频繁更新同意哦个页面的多个label数据,会导致卡顿,卡成时钟1s一次刷都刷不动,可能卡几秒几十秒才刷过来。这块可以用minigui进行操作,但是实际意义不大,且开发工作量倍增,主要看功能,如果功能简单就差距不大。笔者建议Qt,保持后续一个应用扩展的升级空间。
  • 显存buffer:是Qt等一些显示框架,会有显存buffer,显存buffer作为一路输入流,海思支持对帧缓存进行通道数据叠层,图象输入到输出基本没什么延迟,Qt这块回有一点点延迟;
  • out:显示输出,显存的输出途径,可以hdmi、mipi、mini-hdmi等各种,这部不影响延迟。

方案三:中端fpga方案,低延迟,高成本、难替代

在这里插入图片描述
在这里插入图片描述

  • in:fpga数据流输入,由fpga完成摄像头数据的采集,包含isp,这块成本较高,周期较长,涉及高速电路和isp算法,输入延迟30ms内。
  • 自行处理或者rgb/yuv处理:框架也好,yuv也好都是对数据进行基本处理,延迟差距不大。
  • Qt应用:Qt显示使用QImage刷类似的方案或者可以使用QOpengWidget贴纹理方案,经过基本验证,cpu足够的情况下,两者基本不会有什么延迟差距。
    显存buffer:是Qt作为wayland等一些显示框架,会有显存buffer,显存buffer会输出到外面,进而进行显示,这块回有一点点很小的延迟;
  • out:显示输出,显存的输出途径,可以hdmi、mipi、mini-hdmi等各种,这部不影响延迟。

方案四:高端fpga方案,低延迟,高成本、难替代

在这里插入图片描述

  • in:fpga数据流输入,由fpga完成摄像头数据的采集,包含isp,这块成本较高,周期较长,涉及高速电路和isp算法,输入延迟30ms内。
  • Qt应用:Qt显示与fpga通过数据如232控制fpga的叠层图像操作,没有实际显示图像的环境。
    显存buffer:是Qt作为wayland等一些显示框架,会有显存buffer,显存buffer会输出,通过BT1120或者其他的方式进入fpga。
  • out:显示输出,将fpga的图像叠在输入的显存上,即可完成最低延迟的fpag的。

  其他方案不再赘述,整体来说,数据流构架大致相同的,只是芯片数据流得格式有区别。


关于2023,2024

  Qt外协行业内,红胖子的责任和服务质量稳定且增长,口碑已经起来,合作一家就是一家中长期,并同步支持其他比如arm各行业的专业技术支持(这块未专注接业务扩大,纯纯的是为了更好的服务Qt程序的构架设计,以便给客户公司提供较为全面的方案以使Qt方案达到需求最佳)。
  公司2023年逆势增长较大幅度,并且于2023.6月就全年爆单,忍痛停止接单,并未冒进,而是继续选择隐忍投入相关研发,进一步增强核心竞争力。公司2024年上半年业务也即将趋于饱和。


关于合作这件事

  合作是双向选择,互相尊重平等对话,公司成立一来,只服务客户对质量有要求的,要达到这点那么客户公司需要研发有说话权并能判断出代码构架设计和代码质量,写出来基本能跑就行的客户不在我们的服务范畴,坚持”红胖子出品,必属精品(处女座的完美主义者)“,只欢迎中长期且在乎合作品质的企业客户咨xun合zuo


若该文为原创文章,转载请注明出处
本文章博客地址:https://hpzwl.blog.csdn.net/article/details/135439369

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1370483.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

RPA财务机器人在厦门市海沧医院财务管理流程优化汇总的应用

目前国内外研究人员对于RPA机器人在财务管理流程优化领域中的应用研究层出不穷,但现有研究成果主要集中在财务业务单一领域,缺乏财务管理整体流程一体化管控的研究。RPA机器人的功能绝非单一的财务业务处理,无论从自身技术发展,或…

Adding Conditional Control to Text-to-Image Diffusion Models——【论文笔记】

本文发表于ICCV2023 论文地址:ICCV 2023 Open Access Repository (thecvf.com) 官方实现代码:lllyasviel/ControlNet: Let us control diffusion models! (github.com) Abstract 论文提出了一种神经网络架构ControlNet,可以将空间条件控制添加到大型…

面试宝典进阶之Java线程面试题

T1、【初级】线程和进程有什么区别? (1)线程是CPU调度的最小单位,进程是计算分配资源的最小单位。 (2)一个进程至少要有一个线程。 (3)进程之间的内存是隔离的,而同一个…

2024阿里云服务器ECS实例全方位介绍_优缺点大全

阿里云服务器ECS英文全程Elastic Compute Service,云服务器ECS是一种安全可靠、弹性可伸缩的云计算服务,阿里云提供多种云服务器ECS实例规格,如经济型e实例、通用算力型u1、ECS计算型c7、通用型g7、GPU实例等,阿里云服务器网aliyu…

EMQX5设置客户端连接认证

文章目录 说明配置客户端连接认证配置1、访问控制-客户端认证-创建2、选择“密码”方式-下一步3、选择“内置数据库”-下一步4、账号类型选择“username”5、密码加密方式选择“plain”6、加盐方式“disable”-创建7、添加客户端连接的账密客户端连接验证 心得 说明 号外&…

CST2024的License服务成功启动,仍报错——“The desired daemon is down...”,适用于任何版本!基础设置遗漏!

CST2024的License服务成功启动,仍报错——“The desired daemon is down…”,适用于任何版本!基础设置遗漏! CST2024的License服务成功启动后报错 若不能成功启动License服务,有可能是你的计算机名称带中文&#xff…

20240105移远的4G模块EC20在Ubuntu 20.04.6 LTS下使用联通5G卡上网的步骤

20240105移远的4G模块EC20在Ubuntu 20.04.6 LTS下使用联通5G卡上网的步骤 2024/1/5 10:11 缘起:需要在Firefly的AIO-3399J开发板上调试移远的4G模块EC20(Android10/11/12),需要现在先测试EC20的好坏! 陶老板告诉我找一…

ADS1110负电压采集

先说结论: 无法采集绝对的负电压(供电电压范围之外)。 ADS1110 16位AD转换问题 ads1110负电压采集 ADS1110是差分输入形式 在数据手册上有一个参数 模拟输入端VIN 的输入电压 最大是VDD0.2 最小是GND-0.2 模拟输入端VIN- 的输入也是这样…

C#PDF转Excel

組件 Spire.Pdf.dll, v7.8.9.0 【注意:版本太低的没有此功能】 在Visual Studio中找到参考,鼠标右键点击“引用”,“添加引用”,将本地路径debug文件夹下的dll文件添加引用至程序。 界面图: 1个label,1…

【服务器数据恢复】FreeNAS+ESXi数据恢复案例

服务器数据恢复环境: 一台服务器,虚拟化系统为esxi,上层使用iSCSI的方式实现FC SAN功能,iSCSI通过FreeNAS构建。 FreeNAS采用了UFS2文件系统,esxi虚拟化系统里有3台虚拟机:其中一台虚拟机安装FreeBSD系统&a…

JAVA面向对象基础-容器

一、泛型 我们可以在类的声明处增加泛型列表&#xff0c;如&#xff1a;<T,E,V>。 此处&#xff0c;字符可以是任何标识符&#xff0c;一般采用这3个字母。 【示例9-1】泛型类的声明 1 2 3 4 5 6 7 8 9 10 class MyCollection<E> {// E:表示泛型; Object[] o…

20240109适配selinux让移远的4G模块EC20在Firefly的AIO-3399J开发板的Android11下跑通

20240109适配selinux让移远的4G模块EC20在Firefly的AIO-3399J开发板的Android11下跑通 2024/1/9 10:46 缘起&#xff1a;使用友善之臂的Android11可以让EC20上网&#xff0c;但是同样的修改步骤&#xff0c;Toybrick的Android11不能让EC20上网。 最后确认是selinux的问题&#…

Linux--防火墙,实验案例:基于区域、服务、端口的访问控制

实验环境 某公司的Web服务器&#xff0c;网关服务器均采用Linux CentOS 7.3操作系统&#xff0c;如图2.13所示。为了 加强网络访问的安全性&#xff0c;要求管理员熟悉firewalld防火墙规则的编写&#xff0c;以便制定有效、可行的主机防护策略。 需求描述 > 网关服务器ens3…

【计算机网络】TCP原理 | 可靠性机制分析(二)

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【网络编程】【Java系列】 本专栏旨在分享学习网络编程、计算机网络的一点学习心得&#xff0c;欢迎大家在评论区交流讨论&#x1f48c; T…

Kettle Local引擎使用记录(一)(基于Kettle web版数据集成开源工具data-integration源码)

Kettle Web &#x1f4da;第一章 前言&#x1f4da;第二章 demo源码&#x1f4d7;pom.xml引入Kettle引擎核心文件&#x1f4d7;java源码&#x1f4d5; controller&#x1f4d5; service&#x1f4d5; 其它&#x1f4d5; maven settings.xml &#x1f4d7;测试&#x1f4d5; 测试…

C语言中关于函数递归的理解

递归的概念&#xff1a;如果一个对象部分包含它自己,或者利用自己定义自己,则称这个对象是递归的;如果 一个过程直接或间接调用自己,则称这个过程是一个递归过程。递归的主要思考方式在于&#xff1a;将大事化小 我们先看一个例子 题目&#xff1a;输入一个无符号数&#xff0…

蜗牛目标检测数据集VOC格式480张

蜗牛&#xff0c;一种缓慢而坚韧的软体动物&#xff0c;以其螺旋形的外壳和黏附力极强的黏液而为人所熟知。 蜗牛体型呈螺旋形&#xff0c;有一个硬壳保护其柔软的身体。壳的形状和纹理因种类而异&#xff0c;有的光滑如玻璃&#xff0c;有的则布满细纹。蜗牛的头部有两对触角…

U-Boot学习(1):简介及命令行指令详解

Bootloader的主要任务是引导加载并运行应用程序&#xff0c;对于MCU中的BootLoader&#xff0c;我之前写过一篇详细的文章单片机中BootLoader的严谨实现详解介绍它实现的整体流程。对于Linux来说&#xff0c;在运行Linux内核之前也需要BootLoader进行引导&#xff0c;这个BootL…

Amazing OpenAI API:把非 OpenAI 模型都按 OpenAI API 调用

分享一个有趣的小工具&#xff0c;10MB 身材的小工具&#xff0c;能够将各种不同的模型 API 转换为开箱即用的 OpenAI API 格式。 让许多依赖 OpenAI API 的软件能够借助开发者能够接触到的&#xff0c;非 OpenAI 的 API 私有部署和使用起来。 写在前面 这个小工具软件写于两…

面试宝典进阶之redis缓存面试题

R1、【初级】Redis常用的数据类型有哪些&#xff1f; &#xff08;1&#xff09;String&#xff08;字符串&#xff09; &#xff08;2&#xff09;Hash&#xff08;哈希&#xff09; &#xff08;3&#xff09;List&#xff08;列表&#xff09; &#xff08;4&#xff09;Se…