数字图传VS模拟图传 图传技术知识 2023.8.11更新

文章详细介绍了数字图传和模拟图传的工作原理、优缺点,以及视频编码标准。数字图传提供更低延迟和更高清晰度,而模拟图传成本低且适用于FPV飞行。DJI的O3数字图传以低延迟和高画质著称。此外,文章还探讨了不同视频传输协议和流媒体系统架构的发展。
摘要由CSDN通过智能技术生成

引言

在研究无人机小半年了,多次听到数字图传和模拟图传字眼,一直都是一知半解,这次整体了解一下并加以 整理。

数字图传

数字图传:指数字化的图像信号经信源编码和信道编码,通过数字信道(电缆、微波、卫星和光纤等)传输,或通过数字存储、记录装置存储的过程。

说人话就是,将图像信号(模拟)经过调制、编码等流程转化为数字信号(0和1)发送出去,接收端接收这些数字信号按一定规则解码获得原始信号。

数字图传要编码,原理上决定延迟高一点,抗干扰能力强一点,图像质量更清晰。但这都是相对而言的,DJI的O3数字图传官网延迟说30ms,但是真的贵。

在这里插入图片描述
![在这里插入图片描述](https://img-blog.csdnimg.cn/56667512f6a94bd89446969c4b565d91.png
这是阿凡达mini 1s天空端!

由于各厂商的数字信号处理技术不一样,数字图传发送端和接收端要配套使用。

视频编码标准

视频编码标准,也称视频压缩标准。第二代视频编码标准:H.264/MPEG-4 AVC是目前使用最广泛的视频编码标准。H.265/HEVC是为了应对超高清视频的需求,在2013年推出的新一代视频编码标准。

视频传输标准

主要分为:
顺序流式传输(也叫HTTP流式传输):边看边下载,只能看到已下载部分。
实时流式传输:匹配连接带宽,可以实现视频的超前和延迟播放。基于UDP的RTP(实时传输协议,Real-time Transport Protocol)和RTCP(实时传输控制协议,Real-time Transport Control Protocol)。基于TCP的RTSP(实时流协议,Real Time Streaming Protocol)
不同的传输协议可以支持的音视频编码格式有差异。

模拟图传

模拟图像传送是指对时间(包括空间)和幅度连续变化的模拟图像信号作信源和信道处理,通过模拟信道传输或通过模拟记录装置实现存储的过程。一般用扫描拾取图像信息和压缩频带等信源处理方法得到图像基带信号,再用预均衡、调制等信道处理方法形成图像通带信号。

模拟图传的上限高,下限低。我用的比较多的是模拟图传,因为刚入门而且便宜。

在这里插入图片描述
这是我入门的无人机套件里面的图传设备。

在这里插入图片描述
这是我后面买的一款图传接收机,支持手机、电脑和AV显示屏。也称,口袋FPV。
说明:这款图传延迟100ms+,用来作为显示设备还是可以的,飞FPV的话就不太行了。本质上是模拟图传接收机+视频采集卡。模拟图传系统一般延迟在15ms左右,视频采集卡延迟50~100ms。PS:以上数据均不太准确,为作者瞎逛看到的,如果有实际需求,请自己调研!

模拟图传发送端和接收端是通用的,只需要频段匹配即可。这样也会带来保密性的问题。

问题

我与师兄争辩了一个下午和晚上,讨论了一些问题,做出了一些结论。
问题1:模拟信号的优势?
从图传系统和航模领域分析,为什么会有这么多模拟图传?主要是模拟图传技术门槛低,正如电视的发展也是从模拟到数字的。模拟图传电路结构简单,成本低。当然,也有贵的模拟图传,但这项技术原理决定了贵也不会有太好的图像质量,所以DJI才一直往数传发展。当然对于FPV,还是模拟图传好,因为需要追求延时最低。其他优点,看参考链接就好了。

问题2:DJI的O3真的这么厉害?
DJI的O3官方参数有30ms延时,能达到4k画质,这个应该是在良好的环境下才能达到的效果。在信号不好的区域,图传该卡顿还是卡顿,信号该丢失还是丢失,不过丢失可能会重传吧,不至于一整个黑屏。PS:没有试验过,一些猜测加上网上的调研。

问题3:模拟信号图像处理能不能搞?
不能搞。模拟信号就是时代的眼泪,以前的闭路电视,现在还有一些广播还采用这项技术,其余生活中基本不见了。模拟图像就是比不过数字图像,模拟信号抗干扰性差,容易受到噪声的干扰。以前的闭路电视,典型的模拟信号,会有雪花、条纹线、噪点之类的现象。模拟图像后期能用算法处理有限,只能滤波一下,但这样还是损失像素。

这部分讨论断绝了我一个想法,哎,难受啊!

图传分类

按传输模式可划分为:模拟图传和数字图传

按工作频段分:915Mhz,2.4Ghz,5.8Ghz

基于协议划分:WIFI协议,一些厂商的专有协议(如大疆的lightbridge2)

视频传输系统研究

可研究的点:
嵌入式开发:视频压缩算法
射频收发装置:通用的框架
机载电脑 or PC:视觉算法
在这里插入图片描述
摄像头一般包括PCB,这些PCB比较小,里面有ISP芯片,对图像进行处理。如果要进行图像处理研究的,就要选择纯摄像头+Hi3559开发板,进行嵌入式开发。
不管是数字图传系统还是模拟图传系统,本质都是射频收发装置,如果要自己搭建系统研究算法,这部分可以选择一些电台,能进行数据传输的即可。
视频采集卡本质上就是一种转换接口数据的装置。

摄像头原理图:
在这里插入图片描述

高性能CMOS图像信号处理芯片:
在这里插入图片描述

Hi3559开发板
sj4000运动相机:里面就是这个芯片,支持micro HDMI输出,USB输出。前提是买到正版,山山狗好多不是用这个芯片的。
Hi3518也是差不多的,这个淘宝上有买开发板的,可以研究一下视频传输相关的算法。
在这里插入图片描述

视频采集卡(Video Capture card):获取视频信息,将其存储或播放出来。UVC全称为USB Video Class,即:USB视频类,是一种为USB视频捕获设备定义的协议标准。
分为:数字信号采集卡,模拟信号采集卡。
HDMI转USB
Hi3559Hi3559
AV转USB
在这里插入图片描述

流媒体架构

目前主流的流媒体系统架构主要分为以下几种:
1.单服务器架构:该架构中,所有的流媒体服务都运行在一台服务器上。这种架构简单、易于部署,但是在流量较大时,可能会导致服务器性能瓶颈,影响系统的稳定性。
2.分布式架构:该架构中,流媒体服务被分布在多个服务器上,每个服务器都可以独立地处理一部分流量。这种架构具有高可用性和可扩展性的优点,但是需要对系统进行复杂的负载均衡和监控。
3.CDN架构:该架构中,流媒体服务通过CDN(内容分发网络)进行分发,用户可以从离自己最近的CDN节点获取流媒体内容。这种架构具有高速度、高可用性和低延迟的优点,但是需要在全球范围内部署CDN节点,成本较高。

流媒体系统架构的发展历程可以追溯到20世纪90年代初,当时的流媒体技术主要是基于RTSP(实时流协议)和RTP(实时传输协议)等标准。随着网络带宽的提高和编解码技术的发展,流媒体系统架构也不断发展和创新。
在2000年代初,流媒体系统开始采用基于HTTP的流媒体传输协议,例如,Adobe的Flash Media Server和Microsoff的Windows Media Server等。这种架构可以通过普通的Web服务器进行传输,无需特殊的流媒体服务器。
在2010年代,流媒体系统开始采用基于WebRTC (Web实时通信)的架构,例如,Google的WebRTC和Facebook的WebRTC Live等。这种架构可以在Web浏览器中直接进行流媒体传输,无需安装插件或客户端程序。

类似Gstreamer的流媒体系统架构主要是基于开源的流媒体框架和组件进行构建。Gstreamer是一种基于插件的流媒体框架,可以用于音频和视频的捕获、编码、解码、传输等多个方面。类似的流媒体系统架构还包括FFmpeg、VLC、DirectShow等。这些框架和组件可以通过编写插件或脚本进行自定义,从而满足不同的流媒体应用需求。

参考链接

添加链接描述
添加链接描述
视频编码标准
视频接口之AV、S端子、VGA、DVI、HDMI、DP
视频的传输方式
摄像头原理
海思Hi3518E数据手册
海思Hi3559 datasheet和Hi3559c的资料介绍
FPGA+AD9361 SDR实现机载视频无线传输
DJI FPV图传系统全面解析:Wi-Fi、LightBridge、OcuSync
中国通讯发展史(六)1G到5G
如何评价大疆新推出FPV数字图传系统?
模拟信号的优缺点分析

说得不对,多多包涵。欢迎评论指出!

目前基于图像处理使用市场上监控摄像头二次开发的案例很多,包括海康威视萤石开源摄像头;还有使用自带FIFO的OV7725或者OV7670摄像头模块结合stm32进行图传;还有OPENMV+OV7725的图像处理方案;还有一种使用MIPS架构的路由器芯片例如RT5350加免驱MPJG摄像头方案。每一种方案价格都要达到50块以上,因为除了购买摄像头之外还有购买单片机,成本降不下来。 好消息的是,乐鑫科技推出的ESP32芯片能满足图传的需求,某宝基于该芯片出售的ESP32-cam摄像头模块能满足图传的需求,最低价格26块能买到手,性价比相当高,ESP32的运行速度和wifi速度都比ESP8266高。26块集成了ESP32最小系统板和OV2640摄像头和板载蓝牙wifi天线,买了也不亏,一个好点的USB摄像头都不只这个价格了!为啥很少人使用呢?原因是入门比较麻烦。要是使用乐鑫idf去搭建开发图传,很麻烦,很难成功。 国内某个测评网有详细简介:https://post.smzdm.com/p/amm03d0d/ 模块的原理图如下: 模块的全家福如下: 该模块在某宝很多家店铺有售,至于代工厂估计有很多家,但是根据原理图就那么多IO口,资料都是通用的。 经过我自己个人努力,半年时间内掌握了ESP32图传技术,采用的是Arduino开发环境开发,很多情况下使用库函数来快速实现图传的功能。搭建开发环境也花了不少时间,后面根据一个教程搭建成功了。 搭建视频链接:https://pan.baidu.com/s/1_xYw-Mg3LPb5vqMuVgiD2A 提取码:qdl2 搭建软件及素材:链接:https://pan.baidu.com/s/1eIES_hDWNgr5lZD4akP9Jw 提取码:zrwu 最后是我根据搭建环境自带的图传源码修改裁剪后的图传源码(在最后免费下载),该源码是我将三四个源码文件裁剪修改合成一个源码文件,实现了图传功能,代码精简利于阅读和学习,先进行配置和运行的说明: (1)整个工程就是一个9kb的源码,名字叫websocket.ino文件,然后修改热点的名称和密码: (2)找一个CH340的USB转TTL电平的模块,某宝几块钱有卖的,按照下图接上模块: 右边的模块就是USB转TTL模块,主要是用来下载程序和串口调试,左边接ESP32模块,右边接电脑。 个人建议给cam模块供电压5V在第一张原理图左下角的端口供电,免得电源不足,不要接错了! UoR就是RX端 UOT是TX端 这两个端跟CH340的RX、TX交叉连接,如图示 将IO0端口与GND连接上之后就可以马上下载程序了: (3)用Arduino下载程序:(如果下载过程中出现失败,可以尝试按下模块的RST按键) (4)创建一个热点,名称和密码都与(1)的步骤相同,让ESP32的wifi能连上,我就用笔记本电脑创建了一个热点,然后打开串口Arduino监视器或者打开一个串口调试助手,打开电脑与CH340链接的串口,拔掉cam模块中IO0与GND链接的线(第三张图灰色的线,不断开就不能启动程序只能不断下载),再按下一次cam模块的RST按钮松开,如下图: 从图上看出,RST按下时,第一次程序运行不对,第二次运行正确了,打印出IP地址。右下角显示有设备连上热点。多试试几次就能成功的! (5)打开谷歌浏览器,输入网址串口打印的网址:172.25.139.2(个人具体IP看打印为准)就可以看到摄像头采集的视频流,相当流畅,如下图所示:(其他浏览器可能失败) 由于摄像前面的保护膜没有撕掉,所以有点模糊,视频还是很流畅的。 总结:该项目演示了用ESP32作为一个STA模式连上路由器或者笔记本热点,在同一个局域网环境下用浏览器登录ESP32的IP地址就可以收看ESP32摄像头采集下来的图像信息。后期会陆续发布根据此源码升级成视频监控小车、视频监控智能控制摄像头、视频监控系统和手机客户端图传、stm单片机图传接收、机器人视觉人脸签到系统、远程MQTT图传手机app接收、局域网javaweb显示图传、等等项目,敬请期待。
你可以使用以下的Python代码来创建一个Minio上传图片的工具类: ```python from minio import Minio from minio.error import ResponseError class MinioUploader: def __init__(self, endpoint, access_key, secret_key, bucket_name): self.endpoint = endpoint self.access_key = access_key self.secret_key = secret_key self.bucket_name = bucket_name def upload_image(self, file_path, object_name): try: minio_client = Minio(self.endpoint, access_key=self.access_key, secret_key=self.secret_key, secure=False) # 检查bucket是否存在,不存在则创建 if not minio_client.bucket_exists(self.bucket_name): minio_client.make_bucket(self.bucket_name) # 上传图片 minio_client.fput_object(self.bucket_name, object_name, file_path) return True, "Image uploaded successfully" except ResponseError as err: return False, f"Error uploading image: {err}" ``` 使用时,你需要提供Minio服务的endpoint、access_key、secret_key以及bucket_name。然后,你可以调用`upload_image`方法来上传图片。该方法接收两个参数:`file_path`表示本地图片文件的路径,`object_name`表示在Minio中保存的对象名称。 以下是一个使用示例: ```python minio_uploader = MinioUploader(endpoint='minio.example.com', access_key='your-access-key', secret_key='your-secret-key', bucket_name='your-bucket-name') success, message = minio_uploader.upload_image('/path/to/image.jpg', 'image.jpg') if success: print(message) else: print(f"Error: {message}") ``` 请确保已经安装了`minio`库,可以使用`pip install minio`来进行安装。此外,根据你实际的Minio配置,需要修改代码中的相关参数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值