avb
缘起
在TTTech的一个Slide中看到了有关AVB性能的描述,Slide举例提到在默认配置下100Mbit的网络至多只能有13条流在一条网络链路上调度,以此来说明AVB网络性能的局限性。
读者直观上会觉得只能支持13条Stream的话,应用场景未免过于局限了,但事实又确实如此,因此本文旨在对该结论进行计算与论证。
注意Slide中描述的限制:
- default configuration(默认配置)
- 100Mbit(100base-T)
- on one link(在一条链路上)
AVB网络可调度流数目计算
1. 领域概念
- 流(Stream): 包含一个或多个媒体(或其他实时)数据通道的的常规数据包流。 一个流有一个唯一的ID,并使用802.1Q-2011流预留协议为其保留带宽。
- 采样(Sample): 样本是记录音频数据的最基本单位,采样的尺寸从8bit到64bit精度。
- 采样频率(Sample rate): 采样即采集一段音频做为样本,样本使用数码信号,数码信号是用一堆数字来描述原来的模拟信号,所以要基于它对原来的模拟信号进行还原。所有的声音都有其波形,数码信号就是在原有的模拟信号波形上每隔一段时间进行一次“取点”,赋予每一个点以一个数值,这就是“采样”,然后把所有的“点”连起来就可以描述模拟信号了,很明显,在一定时间内取的点越多,描述出来的波形就越精确,这个尺度我们就称为“采样频率”,或者“采样率”。
- 比特率(Bit rate): 声音有轻有响,影响声音响度的物理要素是振幅,作为数码录音,必须也要能精确表示乐曲的轻响,所以一定要对波形的振幅有一个精确的描述。“比特(bit)”就是这样一个单位,16比特就是指把波形的振幅划为2^16即65536个等级,根据模拟信号的轻响把它划分到某个等级中去,就可以用数字来表示了。和采样频率一样,比特率越高,越能细致地反映乐曲的轻响变化。
- 通道数(Channel): 分为单声道mono,立体声stereo。当然还存在更多的通道数。
- 帧(frame): 记录了一个声音单元,其长度为样本长度和通道数的乘积。
2. 参数简介
2.1 关键参数
AVB网络中一条网络链路上能够负载多少条不同的流与以下参数有关:
- 链路带宽(The bandwidth if the network link)
- 每条流的通道数(The channels per stream)
- 音频媒体的格式(The format of audio media)
2.2 默认配置
Slide中依据的默认配置为:
- Network Speed:100base-T
- AVB Bandwidth Allocation(%):75
- Stream Format:AAF
- Sample Rate:48kHz
- Bits/Sample:24
- AAF Samples/Frame:Default(6)
- Channels Per Stream:1
下面简要解释一下这些参数:
(1) Network Speed(网络传输速率)
100base-T或者gigabit Ethernet(GigE)
- 100base-T:一种以100Mbps速率工作的局域网标准,通常被称为快速以太网标准
- gigabit Ethernet(GigE) : 基于千兆以太网通信协议开发的接口标准,数据传输速率最高达到1,000Mbit/s
(2) AVB Bandwidth Allocation(AVB带宽分配)
AVB默认分配带宽为75%,表示AVB的时间敏感流至多占用每条链路可用带宽的75%。
(3) Stream Format(流格式)
可供AVB使用的音频流格式有两种:AM824 和 AAF
AM824支持24bit线性音频,IEC60985编码音频(SPDIF和AES3),SMPTE时间码,以及MIDI格式的传输。
Note: 这些音频格式有兴趣可自行查阅相关标准
AM824为Talker提供三种选项:
- non-blocking (sync)
- non-blocking (aync)
- blocking
AM824 (non blocking, synchronous)
标准的AVB音频设备使用“AM824 non-blocking, synchronous”传输模式。
Non-Blocking表示设备在每个观测周期(125us)发送一个帧,Synchronous表示设备总是在每个以太网帧中携带相同数量的采样(Sample)(6 @ 48 kHz, 12 @ 96 kHz)。
AM824 (non blocking, async packetization)
“AM824 non-blocking, asynchronous” 模式下,由于分包器与发送器的观测间隔异步,发送器可能偶尔发送一个额外的或者携带更少样本的以太网帧。
AM824 (blocking)
“AM824 blocking mode”是一些火线设备使用的模式,因为其更容易打包和解包。在48kHz的频率下,每个以太网帧始终包含8个采样;在96kHz的频率下,每个以太网帧始终包含16个采样。
Note: 火线(Firewire)是一种高速串行输入输出技术
avtp_timestamp始终是以太网帧中的第一个样本,并且avtp_timestamp总是存在。由于每125us发送一帧,然而有时根本不需要发送任何以太网帧,但是当需要发送的时候,总是相同大小的数据包。
这种格式的缺点是必须预留8采样帧(48kHZ)或者16采样帧(96kHz)的带宽。
AAF
“AVTP Audio Format” (AAF)是定义于IEEE p1722a中的一种新的分包格式,它相比AM824负载更小,但需要一个Stream中的以太网帧具备相同的大小和格式,其中每个采样的大小可以是16bits,24bits,32bits,并且可以选择每个以太网帧携带的采样数(默认为6 @ 48kHz)。
Note:
AVTP全称为Audio Video Transport Protocol
AVTP packetizer与AVTP depacketizer是一个标准AVB设备包含的模块
(4) Sample Rate(采样率)
所有的AVB流格式能够支持32kHz, 44.1 kHz, 48 kHz, 88.2 kHz, 96 kHz, 176.4 kHz, and 192 kHz的采样率。
(5) Bits/Sample
AM824格式仅支持每个采样24bits。
AAF格式支持每个采样16bits,24bits,以及32bits。
对于浮点流格式,选择每个样本32bits。
Note: 有关浮点流格式的详细解释,感兴趣请自行查阅,与本文主旨无关
(6) AAF Samples/Frame
AM824打包机制允许每个观测间隔(125us)内,每个流发送一个以太网帧。
AAF格式支持每个观测间隔内多个以太网帧,允许每个流包含多个通道。
3. Streams数目计算(AAF)
3.1 数据长度
(1) Frame Overhead: 24字节
- Preamble: 7字节
- Start of Frame:1字节
- CRC:4字节
- Inter-Frame gap:12字节
(2)Frame Header: 18字节
- MAC Destination Address:6字节
- MAC Source Address:6字节
- Ethertype:2字节
- VLAN TAG:4字节
(3)IEEE 1722 Header: 24字节
- subtype data:4字节
- SRP Stream ID:8字节
- AVTP Time:4字节
- Gateway info:4字节
- Packet info:4字节
Format example:AVTP common stream data header
(4)Audio Payload
- 采样数(samples) * 通道数(channels) * 采样长度(bits)/ 8
3.2 计算过程
(1)Frame Payload
(2)Octet Time Taken on Link
(3)FastE Max Octet Time
在快速以太网中,AVB默认分配75%的带宽:
这是能够保持发送AVB数据帧的最长时间,其对应的字节长度为
(4)FastE Max Stream Count per Link
因此,在默认配置下,单条AVB链路确实只能满足13条流的调度需求。
Frame Format Example (4-byte integer, stereo, interleaved, 6 samples/frame)
4. 补充说明
首先在设计一个AVB设备时,设计者有多种流的格式可以选择,网络中可调度的流的总数与所选择的流格式密切相关。
参考文献1中提到,如果流属性不可压缩,则网络中可以容纳318条流,每条流具有一个或多个音频通道。
如果每个Talker设备提供具有可压缩的流属性的流,则在网络上可以有318个Talker,每个Talker可以有尽可能多的流,以适应他们的链接。
如果整个网络上的所有流属性都是可压缩的,则网络上可能会有超过318条流。
Note: 此处结论不再计算论证
5. AVB带宽在线计算工具
若需要计算其他配置下的AVB性能,可以使用下面的工具进行配置与计算:
The new AVB Bandwidth Calculator
计算示例:
参考文献
- General AVB FAQ,HTTP://avb.statUSBar.com/page/faq/
- 音频-百度百科,https://baike.baidu.com/item/%E9%9F%B3%E9%A2%91/1197465?fr=aladdin#4_2
相关阅读
舆情监测是舆论在互联网上的一种监测和预测行为,对现实生活中的一些热点问题有很大的影响。主要通过BBS论坛、博客、新闻粉丝、重
基于Triplet loss函数训练人脸识别深度网络(Open Face)
官方下载地址Git: http://cmusatyalab.github.io/openface/FaceNet’s innovation comes from four distinct factors: (a) the
一、安装依赖库# 安装cmake sudo apt-get install cmake # 安装boost sudo apt-get install libboost-dev libboost-test-dev
简单的发包工具——网络协议编辑器(python+scapy+pycha
一、实现的功能基于python+scapy设计协议编辑器,基于Tkinter的Python GUI界面设计。实现了MAC、ARP、IP 、TCP、UDP协议的编辑与
一、实验目的:1.学会使用Ping、IPConfig、TraceRt、Netstat、ARP等常用网络命令。2.学会配置网络接口IP属性(IP地址、子网掩码、默认