• HDMI协议介绍(五)--Audio


    基础知识

    I2S(inter-IC sound bus)飞利浦公司制定的标准,既规定了硬件接口规范,也规定了数字音频数据格式。

    硬件接口规范

            I2S接口有3个主要信号:

    时钟信号 Serial Clock

            串行时钟SCK,也叫位时钟(BCLK),对应数字音频的每一位数据。SCLK的频率=2×采样频率×采样位数 

    左右声道选择信号 Word Select

            WS信号有时也称帧时钟LRCK,用于切换左右声道的数据。WS是声道选择信号,表明数据发送端所选择的声道。当:WS=0,表示选择声道 ,WS=1,表示选择声道。LRCK的频率等于采样频率

    数据信号 Serial Data

            串行数据SD在WS变化后的第一个SCK脉冲,先传输最高位MSB。

    有时为了使系统间能够更好地同步,还需要另外传输一个信号MCLK,称为主时钟,是采样频率的256倍或384倍(具体倍数由codec决定)。

    I2S 总线上同一时刻只能存在一个Master设备,提供时钟的设备是Master设备。

    I2S接口模式

    I2S硬件接口分为三种工作模式:

    • I2S Phillips Standard I2S模式
    • Left Justified Standard 左对齐模式
    • Right Justified Standard 右对齐模式

    左对齐模式:左声道数据MSB在WCLK上升沿之后BCLK的第一个上升沿有效;右声道数据MSB在WCLK下降沿之后SBCLK第一个上升沿有效。

    右对齐模式:左声道数据LSB在WCLK下降沿前一个BCLK上升沿有效,右声道数据LSB在WCLK上升沿前一个BCLK上升沿有效。

    左右对齐模式LRCK/WS高电平对应左声道,低电平对应右声道;而I2S模式低电平对应左声道,高电平对应右声道。

    PCM

    PCM (Pulse Code Modulation) 一种用数字表示采样模拟信号的方法。

    Sampling(采样)

    Sampling(采样)表示处理,实际上就是让采样数据能够完全表示原始信号,且采样数据能够通过重构还原成原始信号的过程。

    • 蓝色曲线:表示音频原始信号。
    • 黑色垂直线段:表示当前时间点对原始信号的一次采样
    • 黑色点:表示采样获取的一系列离散样本。

    采样率表示每秒采样的数量(单位:HZ),根据场景的不同,采样率也有所不同,采样率越高,声音的还原程度越高,质量就越好,同时占用空间会变大。

    Quantization(量化)

    原始信号采样后,需要通过量化来描述采样数据的大小。

    量化处理过程,就是将时间连续的信号,处理成时间离散的信号,并用实数表示。这些实数将被转换为二进制数用于模拟信号的存储和传输。

    上面的图片的例子是16bit位深量化过程。bit-depth(位深):用来描述存储数字信号值的bit数,较常用的模拟信号位深如下:

    • 8-bit:2^8 = 256 levels,有256个等级可以用于衡量真实的模拟信号。
    • 16-bit:2^16 = 65,536 levels,有65,536个等级可以用于衡量真实的模拟信号。
    • 24-bit:2^24 = 16,666,216 levels,有16,666,216个等级可以用于衡量真实的模拟信号。

    可以看到,位深越大,对模拟信号的描述将越真实,对声音的描述更加准确。

    TDM

    TDM(Time Division Multiplexing)时分复用,PCM接口支持同时传输多达N个声道的数据。
    Mode A:数据在FSYNC有效后,BCLK的第2个上升沿有效

    Mode B:数据在FSYNC有效后,BCLK的第1个上升沿有效

    PCM vs I2S

    PCM硬件接口上传输的是PCM编码的数据,I2S上传输的也是PCM编码的数据,I2S不过是PCM接口的特例。

    应用PCM音频接口传输单声道数据(如麦克风)时,其接口名称为PCM;双声道经常使用I2S;而TDM则表示传输两个及以上声道的数据,同时区别于I2S特定的格式。

    HDMI Audio

    audio info frame

    ACR

    Audio Clock Regeneration 音频时钟重生成,Audio data是在HDMI Data Island周期以packet形式发送的,Data Island并没有发送Audio Clock,根据HDMI Spec规定,需要ACR来恢复Audio Clock

    TMDS Clock和Audio参考时钟(128倍采样率)的关系:

            128 · f S = f TMDS_clock · N / CTS

    N值需要发送给sink端,sink端根据公式恢复Audio Clock。

    N值与Audio 采样率以及video mode有关,有寄存器需要配置,CTS值可以手动配置也可以自动计算。

    某款HDMI Controller支持的I2S接口,I2S属于PCM的一个特例,延迟一个clock。MSB高位对齐。

    I2S的bitmapping

    不同位宽的对齐方式

    Audio调的不多,写得简单。

  • 相关阅读:
    2022-08-26 第二小组 张明旭 前端学习记录
    系统分屏后录音机向左右滑动报错问题
    Python 函数用法和底层分析
    MySQL:02-增删改查
    6.26CF模拟赛D:黑白条题题解
    Python 自定义模块和包设计英语生词本(文件版)
    【数据结构与算法 | 基础篇】环形数组模拟队列
    Vim功能大纲
    多因素认证 (MFA) 是防止数据泄露的最佳安全实践方法
    LeetCode——【第一周】
  • 原文地址:https://blog.csdn.net/yangchao315/article/details/133748198