基于FPGA嵌入式系统的多路音频软编码机制的制作方法

文档序号:12724112阅读:来源:国知局

技术特征:

1.一种多路音频软编码方法,其特征在于:包括以下步骤:

将每个输入通道的原始音频数据由串行格式转为并行格式,并提取所述原始音频数据的有效PCM数据,利用乘法器对所述PCM数据进行音量放大操作,根据音频编码算法调整所述PCM数据的PCM数据位宽,将所述PCM数据编码成ES帧,采用DDR对所述PCM数据完成编码前PCM帧和编码后ES帧的交互,多个ES帧组成一个PES帧,将与视频同步的PTS值写入与之对应的PES帧头部,将PES帧分解为多个个TS包并匀速输出。

2.根据权利要求1所述的多路音频软编码方法,采用DDR对所述PCM数据完成编码前PCM帧和编码后ES帧的交互,其特征在于:包括:

将各通道输入的所述PCM数据,通过系统总线和DDR控制器缓存在DDR内的PCM帧缓存区内;嵌入式处理器通过系统总线读取所述PCM帧缓存区的PCM帧进行编码;嵌入式处理器将所述PCM帧编码生成的ES帧通过系统总线和DDR控制器缓存在DDR内的ES帧缓存区内,FPGA发送模块读取所述ES帧缓存区的数据输出。

3.一种多路音频软编码装置,其特征在于:

包括PCM数据提取模块、PCM音频放大模块、PCM数据缓冲器和DDR写控制模块;

所述PCM数据提取模块将原始数字音频输入格式由串行转换为并行格式,并提取出所述原始数字音频的有效PCM数据作为音频编码的原始输入数据;

所述PCM音频放大模块,内含有符号乘法器,用于放大所述PCM数据,并根据音频编码算法要求控制所述PCM数据的位宽;

所述PCM数据缓冲器,内含有PCM数据缓存区,用于缓存所述PCM数据,缓存大小为系统总线写burst长度,当缓存满burst长度的PCM数据后,由所述DDR写控制模块控制将PCM数据缓存区的PCM数据发送到系统总线;

所述DDR写控制模块,用于将传入系统总线的PCM数据通过DDR控制器写入FPGA片外的DDR内;DDR内分配有PCM帧交互区,用于将PCM数据以PCM帧的形式存放。

4.一种利用FPGA嵌入式系统进行编码和输出编码数据的方法,其特征在于:包括以下步骤:

嵌入式CPU读取权利要求3中所述PCM帧交互区的PCM帧进行音频编码成ES帧;CPU将音频编码后的ES帧写入DDR分配的编码ES帧交互区,并通知FPGA内部的发送模块读取所述ES帧;发送模块通过系统总线读出ES帧,并将N个ES帧组成一个PES帧,将与视频同步的PTS值写入与之对应的PES帧头部,将PES帧分解为M个TS包,并将TS包匀速输出。

5.一种与视频显示实时同步的PTS值的产生方法,其特征在于:采用本地PTS计数逼近的方法产生与视频实时同步的PTS值,包括以下步骤:

实时提取视频PCR;本地计数器PTS_counter在本地时钟下进行计数,计数初始值为首次提取的视频PCR值;每当视频PCR更新,比较PTS_counter值与视频PCR值之间的差值;设置一个差值门限,PTS_counter与视频PCR差值大于差值门限,则调整PTS_counter值;PTS_counter与视频PCR差值连续超过差值门限值预设次数之后,则将PTS_counter值置为视频PCR值。将PTS_counter值作为与视频同步的PTS值。

6.根据权利要求5所述的PTS值的产生方法,其特征在于:包括:

接收视频编码器的PCR包,提取出所述PCR包的PCR值,PCR值包含PCR_base与PCR_ext两部分;

本地PTS计数器对27Mhz时钟进行计数,本地PTS计数器分为PTS_base与PTS_ext两个计数器;PTS_ext计数器计数范围0到299,当PTS_ext计数300个27Mhz时钟周期后,PTS_ext计数归零并且PTS_base计数加1;PTS_base与PTS_ext的初始值为第一次提取的PCR_base与PCR_ext;

每当获取到视频PCR_base,计算PCR_base与本地PTS_base的差值DIF_PTS,即DIF_PTS=PCR_base-PTS_base;若DIF_PTS差值小于预设阈值,本地PTS_base与PTS_ext不进行校正,并将PTS_base值作为与视频实时同步的音频PTS值;若DIF_PTS大于预设阈值,校正本地PTS_base与PTS_ext值。

7.根据权利要求6所述的PTS值的产生方法,若DIF_PTS大于预设阈值,校正本地PTS_base与PTS_ext值,其特征在于:包括:

将PTS_base计数器值置为PTS_base+DIF_PTS/2,采用correct_cnt计数器对DIF_PTS超过预设阈值的次数进行计数;若correct_cnt达到预设最大值,将本地PTS_base与PTS_ext计数器置为PCR_base与PCR_ext。

8.根据权利要求7所述的PTS值的产生方法,其特征在于:

采用correct_cnt计数器对DIF_PTS超过预设阈值的次数进行计数前,校正次数计数器correct_cnt,包括:

当获取到视频PCR值时,计算得到的DIF_PTS小于预设范围或者correct_cnt计数到最大值,correct_cnt清零;若DIF_PTS大于预设范围,correct_cnt计数加1。

9.一种基于权利要求5的产生与PES帧对应的PTS值的方法,其特征在于:

在编码系统时钟下,第i(1~n)通道的PCM帧的第一个有效数据出现的时刻,锁存计数器PTS_counter值作为与此PCM帧对应、且与视频实时同步的PTS值;

PCM帧编码产生ES帧,ES帧对应的PTS值与此ES帧编码输入的PCM帧的PTS值相同;多个ES帧组成一个PES帧,将PES帧内的第一个ES帧对应的PTS值作为PES帧的PTS值并写入PES帧头。

10.根据权利要求9所述的产生与PES帧对应的PTS值的方法,其特征在于:

在通道i(1~n)PCM数据输入端,用计数器PCM_counter对输入PCM数据的个数进行计数,当计数满一个PCM帧长度,PCM_counter置0;当PCM_counter=1时,将权利要求5中与视频实时同步的所述PTS值锁存,此PTS值为被计数的PCM帧所对应的PTS值,PCM帧缓存在DDR内通道i(1~n)的数据区间,并与寄存的PTS值一一对应;

PCM帧经过编码后成为ES帧,PTS值与PCM帧的一一对应关系转化为PTS值与编码后的ES帧的一一对应关系;PES帧由ES帧组成,PTS值与ES帧的一一对应关系转换为PTS与PES的一一对应关系。

11.根据权利要求10所述的产生与PES帧对应的PTS值的方法,所述PCM帧经过编码后成为ES帧,PTS与PCM帧的一一对应关系转化为PTS与ES帧的一一对应关系,其特征在于:包括:

对第i(1~n)通道的PCM帧经过编码产生ES帧,并将ES帧缓存在DDR中,并将此ES帧的编码前PCM帧对应的PTS值转存至与此ES帧对应的寄存器中,此PTS信息与ES帧具有一一对应关系,PTS值表示ES第一个有效音频数据对应的显示时间戳。

12.根据权利要求10所述的产生与PES帧对应的PTS值的方法,PES帧由ES帧组成,PTS与ES帧的一一对应关系转换为PTS与PES的一一对应关系,其特征在于:包括:

将通道i(1~n)的PES帧封装的第一个ES帧对应的PTS作为通道i(1~n)的PES帧对应的PTS值,并将此PTS插入将通道i(1~n)的PES帧的帧头。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1