Uinty3D性能优化之声音资源科普篇

音频格式

WAV:微软公司开发的一种声音文件格式,简单的编/解码、普遍的认同/支持以及无损耗存储,目前Windows上最流行的声音文件格式,资源大,不推荐

MP3:是MPEG标准中的音频部分,大小只有WAV文件的1/10,是一种有损压缩数字音频格式,失真小,适合音质要求高的文件,例如BGM

OGG:是一种新的音频压缩格式,类似MP3的音乐格式,它是完全免费、开放和没有专利限制的。压缩比高,适合人声、音效等

Unity声音资源

压缩的:压缩声音是通过从编辑器导入设置选择compressed选项,音频数据将很小,但在播放时会消耗CPU来解码

原生的:对于短音效使用未压缩音频(WAV,AIFF)。音频数据将较大,但是声音在播放是不需要解码

Snipaste_2020-06-01_10-35-21

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/p/13025544.html