AVB简介--第一篇:概述

2023-11-11 00:20
文章标签 概述 简介 第一篇 avb

本文主要是介绍AVB简介--第一篇:概述,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

转自:AVB简介--第一篇:概述

本文是AVB系列文章的第一篇,简单介绍车载以太网中的AVB技术。

一、音视频传输面临的主要问题

大家想一下,在观看网络视频的时候,经常遇到的问题是什么?

  1. 卡顿
  2. 花屏
  3. (实时直播)延时大
  4. 音视频不同步

假设音视频源正常的,造成以上问题的原因是什么呢?

  1. 卡顿:网络不流畅、数据不能及时到达。
  2. 花屏:视频数据丢失、错误。然而这只是表面原因,根本原因也是网络不流畅、数据不能及时到达。
  3. (实时直播)延时大:网络不流畅、数据不能及时到达。
  4. 音视频不同步:网络网络不流畅、数据不能及时到达会造成这种现象,另外,媒体时钟不同步也会造成这种现象。

这样看来,影响网络音视频观看体验的主要原因有两个:

  1. 网络不流畅,数据丢失或不能及时到达
  2. 多媒体同步问题

这也是AVB要解决的主要问题。不同的是,我们观看网络视频一般是经由广域网传输,而AVB解决的是局域网内的音视频传输问题。

二、如何解决这些问题

1. 网络传输问题

我们知道,传统以太网是基于竞争的“尽最大努力传输”的分组报文网络。有人可能会说TCP是可靠的,不错,但它的可靠性是建立在重传机制上的,带来的副作用是延时加大。

另外,中间转发节点(比如网络中的交换机、路由器)对报文的传输影响比较大。比如:

  • 传输过程中,如果中间的转发节点缓存队列已满,会导致后续数据包丢失。
  • 传输时延受转发节点的缓存状态影响,如果缓存队列中数据较多,传输延时就较大,缓存队列中数据较少,传输延时就较小。

如果可以构建这样一个网络,它可以为音视频数据预留带宽(类似高速公路上的专用应急车道),那么不仅解决了竞争问题,还保证了音视频数据可以在规定的时间内从源头传输到目的地(时间敏感网络的概念)。

没错,带宽预留是AVB的一个重要组成部分。

2. 多媒体同步问题

多媒体同步包含两个方面的内容:

  • 媒体时钟恢复(频率同步),它解决的是按什么样的速度播放的问题
  • 播放时间同步(相位同步),它解决的是什么时候播放的问题

媒体时钟恢复

以太网中传输的音视频都是离散的数字信号,而现实世界中的音视频都是连续的模拟信号。在音视频采集设备中,需要对模拟信号进行采样、量化、编码,才能转换为数字信号(简称模数转换,即A/D转换)。A/D转换过程中涉及到采样频率,即间隔多久采样一次。接收端收到数据后,按同样的频率进行播放。这就是媒体时钟恢复

媒体时钟必须有个参考时钟,这样它才能知道从上次采集到现在过了多久,是否该进行下次采样。有的采集系统以系统时钟作为参考时钟,而有的采集系统以外部信号作为参考时钟。不同参考时钟很有可能是不同步的,比如A时钟的1ms可能对应实现世界的0.9ms,B时钟的1ms可能对应现实世界额1.1ms。另外,时钟都不是绝对稳定的,受温度、运行时间等因素影响都会产生漂移(就像手表,有的过段时间变慢了,有的过段时间变快了)。

问题来了,接收端怎么保证自己的播放速率和采集端的采集频率一致(即如何恢复媒体时钟)?如果没有一个统一的参考时钟,这是很难做到的。如果参考时钟不同步,可能会出现播放过快或者播放过慢的问题。

播放时间同步

对于单一的音视频流,解决了媒体时钟恢复的问题,一般就能正常播放了。但是如果一个接收者同时接收多条音视频流,或者一个发送者将音视频发送到多个接收者同步播放,我们还要解决数据流之间的同步问题,保证同一时刻采样的数据在同一时刻播放,这就是播放时间同步

同样,如果参考时钟不同步,就有可能导致本来该先播放的音频后播放,或者本该先播放的视频后播放,在观众看来就是音视频不同步。

AVB中的精确时钟同步技术,可以让所有节点的本地时钟保持同步,为媒体时钟同步、播放时间同步提供了条件(后续文章重点介绍)。

三、AVB体系

AVB被称为时间敏感网络,它主要解决两个问题:

  • 延时问题:通过带宽预留,保证延时小,实时性好(延时可控,最坏情况下的延时不超过一定的阈值)
  • 同步问题
    • 媒体时钟同步:不同的媒体类型有自己的媒体时钟,这些媒体时钟都映射到gPTP时间(同一个时间坐标系),接收端可以轻松进行媒体时钟恢复。
    • 播放时间同步:数据发送时指示接收方在未来的某个时间点播放,如果有多个接收者,它们就会在未来的同一时刻同时播放。

1.协议框架

AVB的全称是Audio Video Bridging,由一系列IEEE标准组成,目的是在局域网中高效传输音视频数据。

AVB协议栈如下图所示:

可以看出,AVB主要是链路层的协议,它和传统的TCP/IP协议栈是并列共存的关系。

AVB协议栈不仅包括了前面提到的带宽预留和时钟同步协议,还包括其他一些辅助协议,主要协议如下:

  1. IEEE Std 802.1AS-2011:精确时钟同步协议(Generalized Precision Time Protocol,简称gPTP),用来将网络内所有节点的时钟同步同步到同一个主时钟。
  2. IEEE Std 802.1 Qat:带宽预留协议(Stream Reservation Protocol,简称SRP),目前被整合在IEEE Std 802.1Q-2011 第35章。
  3. IEEE Std 802.1 Qav:流量整形协议(Forwarding and Queuing for time-sensitive streams,简称FQTSS),负责对流量进行排队、转发管理,目前被整合在IEEE Std 802.1Q-2011 第34章。
  4. IEEE Std 1722-2016:音视频传输协议(Audio Video Transport Protocol,简称AVTP)。
  5. IEEE Std 1722.1-2013:音视频管理协议(Audio Video Discovery, Enumeration, Connection management, and Control protocol,简称AVDECC),负责服务发现,节点能力遍历,链接管理等控制功能。
  6. IEEE Std 1733-2011:基于AVB的RTP/RTCP传输协议(Layer 3 Transport Protocol for Time Sensitive Applications in Local Area Networks),它主要是将传统的RTP/RTCP流映射到二层的AVB流,使用二层AVB的性能,从而降低延时、提高同步精度。

2. 网络拓扑

AVB的网络拓扑如下所示:

它主要由两类节点组成:

  • End Station: 有时候也称为endpoint,它又分为Listener和Talker两种:
    • Listener:接收音视频数据的节点
    • Talker:输出音视频数据的节点
  • AV Bridge: 音视频网关

说明:

  • 一个节点可以包含多个Talker,即产生多条音视频数据流
  • 一个节点可以具有Talker和Listener的双重身份,既对外输出,又接收别人的数据

3. 典型应用场景

目前AVB主要应用在对时间敏感的场景中,比如工业控制,车载娱乐系统。下面简单举两个例子。

a. 车载娱乐系统

 

如上图所示,车内的DVD Player播放音视频文件,音频传输到扬声器,视频分别传输到后排座椅的两个显示器上。如何保证扬声器和两个显示器的同步,实现音视频同步?

  • 首先,gPTP协议保证了网络中所有节点的时钟是同步的。

  • 其次,SRP协议为音视频数据预留了带宽,保证都能在一定的时间内到达目的地。

  • 那么,如果在Talker端(DVR Player)就约定好,不同目的地的音视频数据在未来的同一时刻播放,是不是就实现了音视频同步?这就是AVTP协议中展示时间戳的意义所在。

b. 大型演唱会现场

大型演唱会现场都会布置多个扬声器来传输声音,可以简化成下面的模型。
那么如何控制这些扬声器同时“发声”?
道理一样,大家约定好在未来的同一时刻同时播放,先收到数据的节点把数据缓存起来,等待播放时刻的到来,然后产生“共鸣”。

 

四、参考资料

  1. Developer FAQ | AVB/TSN

这篇关于AVB简介--第一篇:概述的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/386275

相关文章

Golang的CSP模型简介(最新推荐)

《Golang的CSP模型简介(最新推荐)》Golang采用了CSP(CommunicatingSequentialProcesses,通信顺序进程)并发模型,通过goroutine和channe... 目录前言一、介绍1. 什么是 CSP 模型2. Goroutine3. Channel4. Channe

Java中的Opencv简介与开发环境部署方法

《Java中的Opencv简介与开发环境部署方法》OpenCV是一个开源的计算机视觉和图像处理库,提供了丰富的图像处理算法和工具,它支持多种图像处理和计算机视觉算法,可以用于物体识别与跟踪、图像分割与... 目录1.Opencv简介Opencv的应用2.Java使用OpenCV进行图像操作opencv安装j

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

ASIO网络调试助手之一:简介

多年前,写过几篇《Boost.Asio C++网络编程》的学习文章,一直没机会实践。最近项目中用到了Asio,于是抽空写了个网络调试助手。 开发环境: Win10 Qt5.12.6 + Asio(standalone) + spdlog 支持协议: UDP + TCP Client + TCP Server 独立的Asio(http://www.think-async.com)只包含了头文件,不依

Java 创建图形用户界面(GUI)入门指南(Swing库 JFrame 类)概述

概述 基本概念 Java Swing 的架构 Java Swing 是一个为 Java 设计的 GUI 工具包,是 JAVA 基础类的一部分,基于 Java AWT 构建,提供了一系列轻量级、可定制的图形用户界面(GUI)组件。 与 AWT 相比,Swing 提供了许多比 AWT 更好的屏幕显示元素,更加灵活和可定制,具有更好的跨平台性能。 组件和容器 Java Swing 提供了许多

【编程底层思考】垃圾收集机制,GC算法,垃圾收集器类型概述

Java的垃圾收集(Garbage Collection,GC)机制是Java语言的一大特色,它负责自动管理内存的回收,释放不再使用的对象所占用的内存。以下是对Java垃圾收集机制的详细介绍: 一、垃圾收集机制概述: 对象存活判断:垃圾收集器定期检查堆内存中的对象,判断哪些对象是“垃圾”,即不再被任何引用链直接或间接引用的对象。内存回收:将判断为垃圾的对象占用的内存进行回收,以便重新使用。

业务协同平台--简介

一、使用场景         1.多个系统统一在业务协同平台定义协同策略,由业务协同平台代替人工完成一系列的单据录入         2.同时业务协同平台将执行任务推送给pda、pad等执行终端,通知各人员、设备进行作业执行         3.作业过程中,可设置完成时间预警、作业节点通知,时刻了解作业进程         4.做完再给你做过程分析,给出优化建议         就问你这一套下

容器编排平台Kubernetes简介

目录 什么是K8s 为什么需要K8s 什么是容器(Contianer) K8s能做什么? K8s的架构原理  控制平面(Control plane)         kube-apiserver         etcd         kube-scheduler         kube-controller-manager         cloud-controlle

【Tools】AutoML简介

摇来摇去摇碎点点的金黄 伸手牵来一片梦的霞光 南方的小巷推开多情的门窗 年轻和我们歌唱 摇来摇去摇着温柔的阳光 轻轻托起一件梦的衣裳 古老的都市每天都改变模样                      🎵 方芳《摇太阳》 AutoML(自动机器学习)是一种使用机器学习技术来自动化机器学习任务的方法。在大模型中的AutoML是指在大型数据集上使用自动化机器学习技术进行模型训练和优化。

Java 多线程概述

多线程技术概述   1.线程与进程 进程:内存中运行的应用程序,每个进程都拥有一个独立的内存空间。线程:是进程中的一个执行路径,共享一个内存空间,线程之间可以自由切换、并发执行,一个进程最少有一个线程,线程实际数是在进程基础之上的进一步划分,一个进程启动之后,进程之中的若干执行路径又可以划分成若干个线程 2.线程的调度 分时调度:所有线程轮流使用CPU的使用权,平均分配时间抢占式调度