Uinty3D性能优化之声音资源科普篇
音频格式
WAV:微软公司开发的一种声音文件格式,简单的编/解码、普遍的认同/支持以及无损耗存储,目前Windows上最流行的声音文件格式,资源大,不推荐
MP3:是MPEG标准中的音频部分,大小只有WAV文件的1/10,是一种有损压缩数字音频格式,失真小,适合音质要求高的文件,例如BGM
OGG:是一种新的音频压缩格式,类似MP3的音乐格式,它是完全免费、开放和没有专利限制的。压缩比高,适合人声、音效等
Unity声音资源
压缩的:压缩声音是通过从编辑器导入设置选择compressed选项,音频数据将很小,但在播放时会消耗CPU来解码
原生的:对于短音效使用未压缩音频(WAV,AIFF)。音频数据将较大,但是声音在播放是不需要解码
Force To Mono:转化为单声道,一般手机使用单声道足够满足需求
Normalize:单声道标准化
Load In Background:单独线程加载,不阻塞主线程,如果直接放在场景里,会在场景加载的时候一起被加载
Ambisionic:立体声
OriginaSize:磁盘大小,播放时要占的RAM内存
ImportedSize:导入内存大小,打包时用的内存
Ratio:ImportedSize占OriginalSize比例
应该注意的优化
Total Audio Source:总资源数
AudioClipCount:缓存的音频数量
AudioVoices:当前播放的音频个数
TotalAudioMemory :实际占用的内存大小
Total Audio CPU,Streaming CPU :CPU的消耗
OGG就相当于一个容器,Vorbis是一种音频压缩机制,像一些后缀名为.ogg的文件,表明这里面只包含Vorbis 音频
Load Type | 类型 | 特点 |
---|---|---|
Decompress On Load | 加载时解压缩 | 未压缩的音频将存储在RAM中。需要的内存最多,但是播放它CPU消耗小,适合较小压缩声音,不要对大型文件使用,会消耗最高的内存。处理较小的声音(load就解压) |
Compressed In Memory | 压缩在内存中 | 压缩后的音频剪辑存储在RAM中,播放时将解压缩,CPU消耗比较大(尤其是对于Ogg / Vorbis压缩文件),适合对较大的文件。较大的声音(保持解压的状态) |
Streaming | 即时解码 | 音频永久存在设备上(硬盘或闪存上) ,播放流媒体方式(边加载边播放),不需要RAM进行存储或播放,使用最少的内存来读取并即时解码压缩数据,解压缩在单独流线程上,CPU消耗比较大,适合背景音乐,明显降低内存占用,使用最少的内存来缓冲压缩数据(很长的音乐) |
Compression Format | 压缩格式 | 特点 |
---|---|---|
PCM | 以较大文件大小提供更高质量 | 非常短的音效是最好的,质量高,文件大 |
ADPCM | 压缩率比PCM小3.5倍,但CPU使用率比MP3/Vorbis低得多 | 噪音多并且大量播放声音,如脚步声音,撞击声 |
Vorbis/MP3 | 压缩后文件较小,比PCM质量低 | 最适合中等长度声音,质量低 |
Sample Rate Setting | 采样率设置 | 特点 |
---|---|---|
Preserve Sample Rate | 保留采样率 | (默认)使采样率保持不变 |
Optimize Sample Rate | 优化采样率 | 按最高频率自动优化采样率 |
Override Sample Rate | 覆盖采样率 | 允许手动覆盖采样率 |
- 总结:加载类型和压缩格式主要是会影响到CPU和内存。压缩率越高文件就小,包体小,但是解压缩占用的内存就大,CPU消耗也大。所以没有最合适,只有相对合适。
- Streaming+Vorbis,使用最少的内存,但需要更多的CPU消耗和硬盘I/O操作;
- Compressed In Memory+Vorbis,磁盘I/O操作被替换成内存的消耗,可以调整“Quaility”滑块以减小压缩剪辑的大小,以交换音质,一般推荐70%左右。
- 项目是采用:
- 长度<10:Compressed In Memory + Vorbis
- 长度>10:(背景音乐)Streaming + Vorbis
转载请声明出处:https://www.cnblogs.com/wwhhgg/