HI 太阳

一、原理

年龄问题是指研究两人或者多人之间的年龄变化和关系的问题。行测考试中常常涉及两人或者多人年龄之间的倍数关系。常见的考查方式为:今年小宁8岁,妈妈32岁,那么再过多少年妈妈的岁数是小宁的2倍?下面,中公教育专家就为考生讲解如何巧妙解答年龄问题。

你要是被劫持了就眨眨眼

Hi3520D音频(AUDIO)模块包括音频输入、音频输出、音频编码、音频编码和音频解码模块。音频输入和输出模块通过对Hi3520D芯片SIO设备的控制实现相应的音频输入输出功能;编码和解码模块则提供对ADPCM、G726、G711、PCM格式的音频编解码功能。

年龄问题重要原则为:①任何两人年龄差不变;②任何两人年龄之间的倍数关系是变化的;③每过一年,所有的人都长了一岁。

因为你太少露面

读取本地音频进行输出播放,主要原理如下:芯片利用DMA将内存中的数据传输到AO设备。AO设备通过I2S时序或PCM时序向AudioCodec发送数据。AudioCodec完成数字信号到模拟信号的转换过程,并输出模拟信号。

上例中,今年小宁比妈妈小32-8=24岁,那么小宁与妈妈的年龄差永远为24岁。

冬天不肯走 春天没法来

Hi3520D音频解码播放流程:

当小宁从8岁长到12岁时,妈妈也长4岁,变为32+4=36岁。两人年龄的倍数由32÷8=4倍,变化到36÷12=3倍。

金沙澳门官网网址cow 1

1、 
音频输出属性初始化(通过结构体AIO_ATTR_S来进行设置);

  知识点一:如何解年龄问题

▲今年春之领域较常年明显缩小,右滑看常年惊蛰季节分布示意图

2、  配置音频编解码模块(ACODEC);

解决年龄问题的关键在于“年龄差不变”。一般说来,解决年龄问题需要从表示年龄间关系的条件入手理解数量关系,必要时可借助线段图和表格进行分析。主要的思考方式如下:

HI 太阳

3、 
根据音频编码协议创建音频解码通道;

由差倍问题公式可得,小宁年龄为24÷(2-1)=24岁,即小宁24岁时,妈妈的年龄等于小宁的2倍,因此再过24-8=16年。

你要是被劫持了就眨眨眼

4、 
设置AO设备属性;启用AO设备;启用AO通道(启用AO重采样,此项可选);

(2)因为行测考试中,数学运算均为选择题,对于表述直接的年龄问题,没有解题思路,或者计算比较繁琐时,可采用代入排除法。

你不在的这些日子

5、 
绑定音频输出通道到音频解码通道;

例题1:姐姐今年13岁,弟弟今年9岁,当姐弟俩岁数和是40岁时,姐姐多少岁?

雨太能下 我的心都能拧出水了

6、 
向每包待发送的音频数据头添加4字节的海思音频协议头;

A.22B.34C.36D.43

金沙澳门官网网址cow 2

7、 
向音频解码通道发送组合后的音频数据包;

中公解析:“此题答案为A。两人年龄差为13-9=4岁,用线段图显示数量关系,如下图所示:

金沙澳门官网网址cow 3

8、  播放声音。

由图可知,如果从40岁中减去姐弟年龄的差,再除以2就得到弟弟的年龄,进而可求出姐姐的年龄,这相当于一个和差问题。

金沙澳门官网网址cow 4

二、调试过程

根据和差公式:弟弟的年龄为(40-4)÷2=18岁,则姐姐的年龄为18+4=22岁。

金沙澳门官网网址cow 5

1、 制作原始音频数据(raw
data)文件

知识点二:多人之间的年龄问题

▲图为今年以来本号推送部分内容

Hi35XX系列芯片编解码所支持的音频格式主要是ADPCM、G726、G711、PCM等原始音频格式,常见的音频格式无法直接播放。因此若要输出播放本地音频,需先将音频转化成原始音频格式。

多人之间的年龄问题在行测考试中出现的频率略有增加,它主要考查多个人之间的年龄关系变化。解决此类题目的重点为规律③:每过一年,所有的人都长了一岁。

HI 太阳

金沙澳门官网网址cow 6金沙澳门官网网址cow 7

例题2:父亲与两个儿子的年龄和为84岁,12年后父亲的年龄等于两个儿子的年龄之和,请问父亲现在多少岁?

你要是被劫持了就眨眨眼

图1Adobe Audition启动界面

A.24B.36C.48D.60

这轰轰雷鸣是你在呼救吗

这里使用的是AdobeAudition音频处理软件(支持将音频转化成pcm
raw
data格式)。安装破解后,打开软件(不要在破解前打开),界面如图1所示。

中公解析:此题答案为C。12年后,父亲与两个儿子的年龄和应该是84+12×3=120岁,将父亲12年后的年龄看做1倍,那么12年后父亲的年龄为120÷2=60岁,现在的年龄为60-12=48岁。

可是太阳你先给个在线翻译雷声的地址啊

在载入音频文件之前,打开Edit->Preferences->Media
& Disk
Cache,勾选DLMS使能,如图2所示。否则软件无法正常载入音频文件。

例题3:甲、乙、丙、丁四人今年的年龄分别是32、24、22、18岁,那么多少年前甲乙的年龄和恰好是丙丁年龄和的2倍?

金沙澳门官网网址cow 8

金沙澳门官网网址cow 9金沙澳门官网网址cow 10

A.15B.14C.12D.10

▲图为常年各地初雷日期,但今年,相信你们很多人已经提前听过了…

图2打开DLMS使能

中公解析:此题答案为C。画出线段图,如下图所示。

HI 太阳

通过File->Open或者File->Import->File载入音频文件。载入音频后,会出现如图3所示的界面。如果不出现右侧的波形图,则说明音频文件没有正确载入。载入后,可以播放试听。

可知,(32+24)-(22+18)=16为甲乙年龄和与丙丁年龄和之差。

你要是被劫持了就眨眨眼

金沙澳门官网网址cow 11金沙澳门官网网址cow 12

当甲乙的年龄和恰好是丙丁年龄和的2倍时,设丙丁年龄和为1倍,则甲乙年龄和为2倍,则1倍为16÷(2-1)=16,即丙丁当时的年龄和为16岁。

我要去救你

图3载入音频文件

增加的年龄和为22+18-16,因此过了(22+18-16)÷2=12年。

fr.一个阴暗潮湿的南方人

通过File->Saveas或File->Export->File导出特定格式的音频文件。导出前设置好导出格式即可,具体如下:Format选择libsndfile;在
Sample
Type中设置SampleRate、Channels、BiteDepth等(按图示进行设置即可);在FormatSetting中,Format选择RawData,Encoding中选择16bit-PCM,ByteOrder选择默认即可。

  知识点三:三等分结论

金沙澳门官网网址cow 13

设置完OK即可导出pcm格式的原始音频文件。

例题4:甲对乙说:“当我的岁数是你现在的岁数时,你才5岁。”乙对甲说:“当我的岁数是你现在的岁数时,你将50岁。”那么,甲现在()岁,乙现在()岁。

▲好了太阳,够了,我知道了!

金沙澳门官网网址cow 14

中公解析:35、20。根据题意画出示意图,如下图所示:

再眨你眼睛就要废了

金沙澳门官网网址cow 15金沙澳门官网网址cow 16

当乙5岁时,甲的年龄等于乙现在的岁数,用线段AC表示,可知甲、乙二人年龄差等于线段BC;

-End

金沙澳门官网网址cow 17

甲、乙现在的岁数差等于EF,当乙的岁数等于甲现在的岁数(用线段DF表示),甲将50岁(用线段GI表示),此时二人年龄差等于线段HI。

金沙澳门官网网址cow 18

因为年龄差是不变的量,所以BC=EF=HI。

图4 输出格式设置

根据图示,GI=5+BC+EF+HI=5+3BC,所以甲乙二人的年龄差为:(50-5)÷3=15岁,乙现在的岁数是15+5=20岁。甲现在的岁数是20+15=35岁。

 

  知识点四:年龄推理题

2、 系统和AUDIO模块的初始化

年龄推理题在行测考试中出现较少,它需要考生通过寻求年龄间的特殊情况来得到突破口,从而最终得出答案。

调用sample_comm_sys.c文件中的HI_S32SAMPLE_COMM_SYS_Init(VB_CONF_S*pstVbConf)接口即可。

常见的特殊情况为:经过了N年,所有人增长的岁数和不是N的倍数,这说明N年前有人没有出生,从而可直接求出该人的年龄。

 

例题5:小芬家由小芬和她的父母组成,小芬的父亲比母亲大4岁,今年全家年龄的和是72岁,10年前这一家全家年龄的和是44岁。今年父亲多少岁?

3、 音频输出属性初始化

A.33B.34C.35D.36

音频输出属性通过结构体AIO_ATTR_S进行配置,配置时调用HI_S32SAMPLE_COMM_AUDIO_CfgAcodec(AIO_ATTR_S*pstAioAttr)接口即可,由于我们用到的解码芯片是nvp6124,所以我们只需在该接口定义所在的文件sample_comm_audio.c增加宏定义#define
HI_ACODEC_TYPE_NVP6124
即可,也即实际调用的是HI_S32
SAMPLE_NVP6124_CfgAudio
(constAIO_ATTR_S
*pstAioAttr)接口,而这个接口实际是通过nvp6124驱动中的nvp6124_audio_format结构体和ioctl()接口来实现的。

中公解析:此题答案为B。一家人的年龄和今年与10年前比较增加了72-44=28岁,而如果按照三人计算10年后应增加10×3=30岁,只能是小芬少了2岁,即小芬8年前出生,今年是8岁,今年父亲是(72-8+4)÷2=34岁。

 

分享到:

4、 创建音频解码通道

音频解码通道的创建通过调用系统函数HI_S32HI_MPI_ADEC_CreateChn(AdChn,&stAdecAttr)实现,具体可参考HI_S32SAMPLE_COMM_AUDIO_StartAdec
(ADEC_CHN AdChn, PAYLOAD_TYPE_E
enType)的实现。指定好解码通道和解码文件的类型即可,这里分别为0和PT_LPCM。

 

5、 启动AO设备和AO通道

具体可参照HI_S32
SAMPLE_COMM_AUDIO_StartAo(AUDIO_DEVAoDevId, HI_S32 s32AoChnCnt,
AIO_ATTR_S* pstAioAttr, AUDIO_SAMPLE_RATE_EenInSampleRate,
HI_BOOL bResampleEn)。

HI_金沙澳门官网网址cow,S32 HI_MPI_AO_SetPubAttr
(AUDIO_DEVAoDevId, const AIO_ATTR_S
*pstAttr)设置AO设备属性。注意pstAttr音频中设置的参数AO设备可支持且和音频文件的参数保持一致。

HI_S32 HI_MPI_AO_Enable(AUDIO_DEV
AoDevId)设置AO设备使能。

HI_S32
HI_MPI_AO_EnableChn(AUDIO_DEV AoDevId,AO_CHN
AoChn)设置解码通道使能。

这里不需要再像例程里那样进行重采样。

      

6、 绑定输出通道和音频解码通道

直接调用系统函数HI_S32 
HI_MPI_SYS_Bind(MPP_CHN_S*pstSrcChn, MPP_CHN_S
*pstDestChn)进行绑定即可。

具体可参考HI_S32SAMPLE_COMM_AUDIO_AoBindAdec(AUDIO_DEVAoDev,
AO_CHN AoChn, ADEC_CHN AdChn)接口的实现。

 

7、
向音频文件添加海思音频协议头并向音频解码通道发送音频数据包

首先需要打开本地音频文件,直接调用fopen()函数即可,具体可参考或使用staticFILE
*SAMPLE_AUDIO_OpenAdecFile(ADEC_CHNAdChn, PAYLOAD_TYPE_E
enType)函数即可。

原始音频文件放在和应用同级目录下,这里默认命名为audio_chn0.pcm(与OpenAdecFile()
函数中设定的文件名称和类型相同即可)。

 

创建线程向解码器传输音频文件流解码,具体可参考和使用HI_S32SAMPLE_COMM_AUDIO_CreatTrdFileAdec(ADEC_CHNAdChn,
FILE *pAdcFd)
主要是通过调用系统接口HI_S32HI_MPI_ADEC_SendStream(ADEC_CHN
AdChn,const AUDIO_STREAM_S *pstStream, HI_BOOL
bBlock)来实现的,在发送音频流数据前会添加4个字节的海思音频协议头{0,1,160,0}。

 

至此,即可实现对本地文件的播放。注意:需要避免整个程序退出,才能实现持续的播放,可通过getchar()等函数来实现(类似于opencv中图片的显示需要借助于waitKey());

 

8、 其他

设置音量和静音:在实现以上环节以后,可通过HI_S32HI_MPI_AO_SetVolume
(AUDIO_DEVAoDevId, HI_S32
s32VolumeDb)和HI_S32HI_MPI_AO_SetMute (AUDIO_DEV
AoDevId,HI_BOOL bEnable, AUDIO_FADE_S
*pstFade)进行音量和静音设置

播放退出:退出播放时,需要将上面创建的通道、打开的设备、创建的关联等关闭释放和解除,具体可参考例程。

 

 

三、参考

1、主要参考文档:《HiMPPV3.0
媒体处理软件开发参考》,含有原理、API、错误码等。

2、参考sample_audio.c中的HI_S32SAMPLE_AUDIO_AdecAo(HI_VOID)接口函数。

3、
hi3520d音频输出调试成功()。

4、HI3520D音频(

相关文章