"); //-->
随车载影音娱乐功能逐渐丰富,数字化传输音视频信息的需求十分迫切,传统的协议如IEEE 1394、USB或蓝牙存在兼容性及速率问题,因此需要一种简单通用的实时音视频传输方法,这就是IEEE 1722协议的产生原因。IEEE 1722协议又称AVTP(Audio Video Transport Protocol),是以太网AVB协议族中的一员,该协议规定了用于实现时间敏感型音频、视频及控制应用之间互操作性协议、数据封装方式和同步流程,借助AVB协议族中的其它协议如时间同步、流预留等,可以有效保证收发端的通信质量和延时,以及多端播放场景下的同步效果。AAF(AVTP Audio Format)作为其中音频传输的部分,定义了音频数据的封装格式,为实现通用可靠的音频传输提供了保障。本文将详细讲述AVTP AAF中对音频数据的封装方式。
1、AVTPDU
AVTP是数据链路层协议,以太网协议类型为0x22F0,支持一对一或一对多的传输方式,实现一对多的传输可以通过组播或使用VLAN实现。
整个AVTPDU可以分为三个部分:以太网数据链路层头部、AVTP头部和AVTP负载,如图所示:
图1 AVTPDU格式
下图是wireshark对AVTP AAF实际的解析界面截图:
可以看到头部中包含丰富的音频数据的元数据信息,而负载部分是以类似字节流的形式记录音频数据。下文将对AVTP支持的音频格式分别进行讲述。
2、头部
通用字段
其中AVTP头部分为三种类型:AVTPDU通用流头部、通用控制头部和备选头部。
通用控制头部常用于需要尽可能快速传递消息、不需要控制同步的场景;
通用流头部包含时间戳消息,适用于对时间和同步效果敏感的应用;
备选头部适用于一些特定的子类型数据。
用来传输音频的AAF为了保证在多接收端场景下的同步及稳定连续的播放效果,需要在头部携带音频数据的时间戳信息,因此使用通用流头部格式。除此之外,AAF的头部中还携带了采样率、采样深度和采样格式信息,用来告知接收端(listener)音频信息的格式。AAF报文格式如下图所示:
图3 AAF报文格式
subtype:AAF对应的subtype为0x02;
sv:表示后续stream_id的有效性,正常情况下置1;
version:置0;
mr:发送端(talker)用来表示媒体时钟是否发生了变化(例如当音频输入源发生了变化),listener可以借此快速切换至新的媒体时钟。当媒体时钟发生变化时,该位会被翻转并至少保持8个AVTPDU的时间;
tv:表示后续avtp_timestamp的有效性,正常情况下置1;
sequence_num:序列号,达到上限后归零重新计数;
tu:表示时间戳的不确定性,当该位置1时,表示可能在一段时间内avtp_timestamp内的时间戳无法对应到gPTP时间,当时间恢复时,talker会将该位归零;
stream_id:八字节的StreamID,通常前六字节数值上等于MAC地址,后两字节取不重复的数值;
avtp_timestamp:呈现时间,单位为纳秒,大约每4秒循环一次,当tv为0时,该字段内数值无效;
stream_data_length:表示aaf_format_specific_payload的字节数。
aaf_format_specific_data_1,aaf_format_specific_data_2,afsd:由各格式定义,依据format确定。
format字段定义如下:
表1 AAF format字段含义
sp:表示稀疏时间戳模式,当该位置1时,每8个AVTPDU中只包含一个展示时间,否则每个AVTPDU中都包含一个展示时间;
evt:用于更高层次的协议中,AVTP不使用该字段。
PCM格式字段
当format指定音频数据封装格式为PCM时,头部的定义如下:
图4 AAF PCM AVTP报文格式
其中:nsr表示音频数据的采样速率,AAF支持多种采样速率,包括:
表2 nsr字段含义
channel_per_frame:使用正整数表示声道数量;
bit_depth:表示单个采样内表示声音数据的位数,该值不能大于format所表述的数据大小,当format为FLOAT_32BIT时,位深度必须也为32位。当位深度小于format所表述的数据大小时,数据被填充在低位,高位置0。
AES3格式字段
当format指定音频数据封装格式为AES3时,头部的定义如下:
图5 AAF AES3 AVTP报文格式
其中:nfr表示AES3帧的速率,定义如下:
表3 nfr字段含义
streams_per_frame:使用正整数表示每个AVTPDU中AES3流的数量;
aes3_data_type:表示AES3流内音频的格式,在头部中分为两个部分,分别为低位(aes3_data_type_l)和高位(aes3_data_type_h),其具体标准由aes3_dt_ref字段确定。
3、总结
以上就是AVTP的基本介绍以及与音频传输相关头部信息的讲解了。通过头部我们能够得到音频的元数据信息,不过音频是如何被编码的呢?头部中的时间戳又有什么作用?我们将在下一期为大家揭晓。
经纬恒润作为OPEN联盟会员和AUTOSAR联盟的高级合作伙伴,长期为国内外各大OEM和供应商提供涵盖TCP/IP、SOME/IP、DoIP、AVB、TSN、DDS等技术领域的设计和测试咨询服务,积极研发和探索车载网络前沿技术的工程应用。通过多个项目的实践经验,已建立了高质量、本土化的设计与测试一体化解决方案,为整车网络架构提供可靠支持。
了解更多:请致电010-64840808转6117 或发送邮件至market_dept@hirain.com(联系时请说明来自EEPW)
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。
1584494954 阅读:4779
1735892570 阅读:2555