音频采样中left-or right-justified(左对齐,右对齐), I2S时钟关系

刚刚过完春节,受假期综合症影响脑袋有点发木,干什么事反应慢了?最近调试xxxx的TLV320AIC3104发现以前调过的音频采样什么的,都忘记了,说明以前调试的时候很急躁,没有搞明白就翻篇了,今天说什么也得把落下的作业补上。

1、三个时钟一条线

SCLK: 串行时钟SCLK,也叫位时钟(BCLK),对应数字音频的每一位数据,SCLK都有一个脉冲。

SCLK的频率= 2 X 采样频率 X 采样位数。

比如:我司采用的64fs,BCLK = 2  X  fs X  32bit = 64fs。

 

LRCK:帧时钟,也称WCLK,用于切换左右声道的数据,一个时钟周期代表一个音频采样点数据。LRCK为“1”(或"0")表示正在传输的是右声道的数据,为“0”(或"1")表示传输的是左声道的数据。LRCK的频率等于采样频率。

 

MCLK:主时钟,也是以上两个时钟的参考时钟,一个系统应该使用同一的MCLK以保证时钟同步要求。常见频率256fs。

 

SDATA:串行数据,就是用二进制补码表示的音频数据。

2、left-justified(左对齐)模式


    参考AIC3104手册中关于左对齐介绍,以64fs16bit左对齐为例。如图,WCLK一个时钟周期采一个样点,BCLK64fs,即一时钟周期64位数据。WCLK高电平部分对应的SDIN/SDOUT为左声道数据,采用16bit左对齐格式,即MSB16bit有效数据,LSB16bit无效,同理WCLK低电平部分对应SDIN/SDOUT为右声道数据,同样MSB16bit有效数据,LSB16bit无效数据。

3、reight -justified(右对齐)模式


    与左对齐区别就是有效数据在LSB。

4、I2S 模式


    在I2S模式中,有效数据在BCLK的第二个时钟周期开始建立,所以在与FPGA配合时,需提醒FPGA工程师进行移位操作。

5、网上摘抄

声音数字化过程:

模拟信号-->采样-->量化 -->编码 --> 数字信号

即模拟信号通过A/D ADC转换为数字信号;通过D/A DAC转换位模拟信号。

声音数字化要素:

1、采样频率:每秒钟抽取声波幅度样本的次数;采样频率越高,声音质量越好,数据量越大。

2、量化位数:每个采样点用多少个二进制位数表示数据范围;位数越多,音质越好,数据量越大;

3、声道数:使用声音通道的个数:立体声比单声道的表现力丰富,但数据量翻倍。

 

声音数字化的数据量:

音频数据量 = 采样频率 X 量化位数 X 声道数 /8(字节/秒)

 

数字音频压缩标准:

音频年压缩方法概述:

输入音频信号--->编码器 -->传输/存储 --> 解码器 -->输出音频信号

压缩编码技术是指用某种方法使数字化信息的编码率降低的技术;

 

判断音频信号是否能压缩依据:

1、声音信号中存在大量冗余;

2、人的听觉具有强音能抑制同时存在的弱音的现象;

 

音频信号压缩编码的分类:

1、无损压缩(熵编码?):霍夫曼编码、算术编码、行程编码;

2、有损压缩:

     波形编码---PCM、DPCM、ADPCM、子带编码、矢量量化;

    参数编码:LPC

   混合编码:MPLPC、CELP

 

音频压缩技术:

1、G711、G721、G723、G728:电话语音质量;

2、G722:调幅广播质量;

3、MPEG:高保真立体声;

 

 

声卡:负责录音、播音和声音合成的一种多媒体版卡:

1、录制、编辑和回放数字音频文件;

2、控制和混合名声源的音量;

3、记录和回放时进行压缩和解压缩;

4、语音合成技术;

5、具有MIDI接口(乐器数字接口)

 

芯片类型:

1、CODEC芯片(依赖CPU,价格便宜)

2、数字信号处理器DSP(不依赖CPU);

 

要实现英文两端对齐,可以使用AndroidJustifiedTextView控件。JustifiedTextView是一个自定义TextView,它可以将文本对齐到视图的左右边缘。这个控件使用了一个开源的库android-textview-align库,你可以在项目引入该库,也可以将其源代码拷贝到你的项目。 下面是使用JustifiedTextView控件实现英文两端对齐的步骤: 1. 在项目添加android-textview-align库。 2. 在布局文件使用JustifiedTextView控件。 3. 在代码设置文本和对齐方式。 示例代码如下: ```xml <com.codesgood.views.JustifiedTextView android:id="@+id/justified_text" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Hello world, this is a sample text to demonstrate the usage of JustifiedTextView." /> ``` ```java JustifiedTextView justifiedText = (JustifiedTextView) findViewById(R.id.justified_text); justifiedText.setText("Hello world, this is a sample text to demonstrate the usage of JustifiedTextView."); justifiedText.setAlignment(Paint.Align.LEFT); ``` 在上面的代码,我们将对齐方式设置为左对齐,这将使文本左右两端对齐。你也可以将对齐方式设置为央对齐、右对齐等。 需要注意的是,JustifiedTextView控件不支持在文本使用HTML标记,如果你需要在文本使用HTML标记,可以使用Android的Html.fromHtml()方法来解析HTML标记,然后将解析后的文本设置到JustifiedTextView控件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值