必威体育Betway必威体育官网
当前位置:首页 > IT技术

Audio Video Bridging(AVB)网络可调度流数目计算

时间:2019-07-05 22:43:10来源:IT技术作者:seo实验室小编阅读:74次「手机版」
 

avb

缘起

  在TTTech的一个Slide中看到了有关AVB性能的描述,Slide举例提到在默认配置下100Mbit的网络至多只能有13条流在一条网络链路上调度,以此来说明AVB网络性能的局限性。

  读者直观上会觉得只能支持13条Stream的话,应用场景未免过于局限了,但事实又确实如此,因此本文旨在对该结论进行计算与论证。

Slide

注意Slide中描述的限制:

  1. default configuration(默认配置)
  2. 100Mbit(100base-T)
  3. 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使用的音频流格式有两种:AM824AAF

  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

AVTP common stream data header

(4)Audio Payload
  • 采样数(samples) * 通道数(channels) * 采样长度(bits)/ 8

3.2 计算过程

(1)Frame Payload

(3)Ethernet frame payload size:" role="presentation">(3)Ethernetframepayloadsize:

(4)24+(samples∗channels∗3)" role="presentation">(4)24+(sampleschannels3)

(5)∵Maxinum frame payload size=1500" role="presentation">(5)Maxinumframepayloadsize=1500

(6)&#x2234;(channels&#x2217;samples)&#xA0;must&#xA0;be&#xA0;&lt;=492" role="presentation">(6)(channelssamples)mustbe<=492

(2)Octet Time Taken on Link

(7)Octet&#xA0;time&#xA0;taken&#xA0;on&#xA0;link&#xA0;for&#xA0;a&#xA0;packet=" role="presentation">(7)Octettimetakenonlinkforapacket=

(8)(24+18)+24+(samples&#x2217;channels&#x2217;3)+1" role="presentation">(8)(24+18)+24+(sampleschannels3)+1

(9)OnFastE(100baseT):80ns&#xA0;per&#xA0;octet" role="presentation">(9)OnFastE(100baseT):80nsperoctet

(10)OnGigE:8ns&#xA0;per&#xA0;octet" role="presentation">(10)OnGigE:8nsperoctet

(3)FastE Max Octet Time

在快速以太网中,AVB默认分配75%的带宽:

(11)125us&#x2217;75&#x0025;=93.75us" role="presentation">(11)125us75%=93.75us

这是能够保持发送AVB数据帧的最长时间,其对应的字节长度为

(12)93.75us/80ns/octet=1171&#xA0;octet&#xA0;times" role="presentation">(12)93.75us/80ns/octet=1171octettimes

(4)FastE Max Stream Count per Link

(13)&#x2235;samples=6,channels=1" role="presentation">(13)samples=6,channels=1

(14)&#x2234;single&#xA0;frame&#xA0;payload=(24+18)+24+(6&#x2217;1&#x2217;3)+1=85&#xA0;octets" role="presentation">(14)singleframepayload=(24+18)+24+(613)+1=85octets

(15)&#x2234;Max&#xA0;Stream&#xA0;Count=1171/85=13.7765&#x2248;13" role="presentation">(15)MaxStreamCount=1171/85=13.776513

  因此,在默认配置下,单条AVB链路确实只能满足13条流的调度需求。

Frame Format Example (4-byte integer, stereo, interleaved, 6 samples/frame)

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

  计算示例:

Example

Example

参考文献

  1. General AVB FAQ,HTTP://avb.statUSBar.com/page/faq/
  2. 音频-百度百科,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

muduo网络库的安装和使用

一、安装依赖库# 安装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——常用命令操作

一、实验目的:1.学会使用Ping、IPConfig、TraceRt、Netstat、ARP等常用网络命令。2.学会配置网络接口IP属性(IP地址、子网掩码、默认

分享到:

栏目导航

推荐阅读

热门阅读