Reaper 小贴士:评说影响 Reaper 渲染性能的因素(三)
在REAPER中,完成编曲、混音工作后,就是通过渲染(render)来导出最终的Mix。每一次渲染,都见证着你的作品从Demo到定稿的精炼过程,也时时刻刻检验着电脑软硬件的性能。若能理解一些改善渲染性能的要素,并着手作出调整,那么编曲制作的体验将大大改善,尤其适用于需要经常打磨作品的场景。
上一篇文章,笔者纵深推进,全面展开讲解了两个看似微小的影响因素——插件性能、采样率,以自己的实测,揭示这两处细节如何“四两拨千斤”地影响渲染性能表现。而在此过程中,笔者还发现了另外几处值得留意的渲染参数,也将在这一篇继续给大家分享。若能给大家带来哪怕是小小的一点启发,笔者也荣幸之至。
系列文章:
第一章 位深度
数字音频的位深度,和采样率一样都影响音质表现。从音乐制作的一方,再到聆听音乐的一方,也都会留心这一参数。它影响的是音频的动态范围。
常见的位深度有16 bit、24 bit、32 bit整数,以及32 bit、64 bit两个浮点数规格。三个整数规格面向最终用户,其中16 bit广泛用于普通CD音频,24 bit、32 bit则用在Hi-Fi、古典、电影等对动态范围要求高的音频;而浮点规格则多用于音乐制作中。还有更为古老的8 bit整数,用在老式游戏机、计算机中,编码当代的音频时会带来收音机般噪声明显的“有损音质”。
更高的位深度,则意味着每个采样点能容纳更大的数据量,提升信号的量化空间:“装得下”振幅大的音频信号,不会因为位数不足而必须削减一部分数据。位深度较高的音频,在棚内录音,以及记录古典音乐现场与电影音频时会更有优势,无论是响亮到气吞山河,还是微小到针尖落地,都能得以如实记录下来,带来震撼的临场感。相反,如果位深度低,则编码器将必须舍弃一部分数据,使动态范围被压缩,限制音乐的表现力。
笔者猜想,与采样率一样,位深度与数据量的大小成正比——意味着其他条件不变时,渲染时间也会相应延长。然而实际是否真的如此?在REAPER中,位深度究竟如何影响渲染性能的表现?
1.1. 测试环境
与上一篇文章相同,笔者继续在以下平台进行评测:
- 计算机:ThinkPad R400
- 处理器:Intel Core 2 Duo P9500 @ 2.53GHz
- 操作系统:Arch Linux(内核版本6.6.14 LTS)
- REAPER版本:6.83。全程只使用一个音轨,不加载任何效果器。
为简便起见,本文以渲染速率来作为性能指标,以倍数表示,在渲染结果界面中会有显示。
注意:
- 所有编码器如未经说明,均采用REAPER的默认参数,排除其他因素对渲染性能的干扰。尤其是重采样模式(Resample mode)保持默认值“Sinc Interpolation: 192pt”。
- 渲染工作模式采用Full-speed Offline(全速离线渲染)。
- 关闭其他导致大量资源占用的程序,如Chrome浏览器、VS Code等。
下文如没有特殊说明,均采用这一测试环境。
1.2. REAPER支持的位深度
REAPER支持若干种位深度,不同编码器支持的位深度也有所差异,可以在渲染窗口中选择。就笔者的观察,通常分为以下情况:
- 其一,WAV、CAF(Core Audio Format,苹果推出的新格式)这两种不带压缩的格式,支持的位深度较为多样,同时支持8 bit、16 bit、24 bit、32 bit这四种整数位深度,以及32 bit、64 bit两种浮点位深度。而WAV编码器还支持ADPCM、u-Law这两类特殊编码方式(一般用于通讯等场景)。
图 1 WAV编码器支持的位深度,可见包含了4种整数规格、2种浮点数规格,还有3种特殊规格(ADPCM与u-Law)
图 2 CAF编码器支持的位深度,包含了4种整数规格、2种浮点数规格
- 其二,苹果的AIFF格式,仅支持4种整数位深度。
- 其三,无损压缩编码器FLAC,在REAPER中仅提供了16 bit、24 bit这两组整数位深度的支持。但REAPER在此基础上,还提供了诸如17/24 bit、23/24 bit这样的位深度选项,笔者将其称为“填充位深度(padding bit depth)”。选择这些选项会先生成指定位数的采样,然后在前面添加“0”,补齐到24 bit,适用于无须过高动态范围(如最大的144 dB)的音频,有助于提升压缩比率。
图 4 FLAC编码器支持的位深度,包含16、24 bit整数规格,以及多种填充位深度规格
- 其四,另一款无损压缩编码器WavPack,则支持16、24、32 bit这三种整数位深度,32 bit浮点位深度,以及与FLAC相同的填充位深度。除此之外,还支持3种与音频动态范围有关的32bit浮点规格。注意,FLAC与WavPack都不支持8 bit整数编码。
图 5 WavPack编码器支持的位深度,包含整数、浮点数规格,以及填充位深度规格。末尾的3项是自带高通滤波器的浮点规格
- 其五,MP3与Ogg Vorbis、Opus这几款有损压缩编码器都不支持设置位深度,只能使用它们内部的默认设置。
图 6 MP3、Ogg Vorbis这两种编码器不支持设置位深度
通常编码器支持的位深度取决于文件格式本身的性质,以及REAPER功能支持的完整性。
1.3. 测试素材
若编码器支持,我们就可以在渲染过程中,自行设置REAPER的位深度。例如,将16 bit的CD音频上升为24 bit的位深度格式,或者是向下编码为8 bit的“战损”音质。
测试用的素材是一段4分40秒的音乐(南方二重唱《风吹风吹》),FLAC格式,采样率为44100 Hz,位深度为16 bit,是典型的CD音频格式。
1.4. 情景一:WAV编码器
首先,笔者测试最常用的WAV编码。其中,笔者将分门别类地测试整数、浮点数PCM编码的位深度,以及另外几种特殊的非PCM编码。
1.4.1. 整数编码
- 第一步,新建一个工程,创建一个空的音轨,把测试素材导入到音轨上。
- 第二步,按Ctrl+Alt+R打开“渲染到文件”窗口(Render To File),调节渲染参数。全程我们只调整编码器与位深度的设置,保持其他参数不变。特别要注意的是,采样率要保持默认值44100 Hz,重采样算法(Resample Mode)也保持默认值“Sinc Interpolation: 192pt”:因为它们也会影响性能。
- 第三步,将编码器设置为WAV,然后设置位深度(在WAV bit depth一栏)为16 bit,连续渲染5次,观察渲染速率的变化,并进行记录。
图 8 渲染设置。只修改红框内的两项:Format(编码器格式)、WAV bit depth(位深度)
■ 结果如下表所示:
测试次数 | 1 | 2 | 3 | 4 | 5 | 5次平均值 |
速率 | 162.1x | 184.7x | 165.7x | 171.2x | 181.9x | 173.12x |
表 1 WAV格式下,以默认的16 bit位深度渲染的速率
- 第四步,再把位深度分别设置为另外3种整数值(8 bit、24 bit、32 bit PCM),每种位深度下再分别进行5次渲染,将结果整理到下表中:
测试次数 | 1 | 2 | 3 | 4 | 5 | 5次平均值 |
8 bit下的速率 | 188.3x | 187.6x | 188.5x | 192.6x | 188.1x | 189.02x |
24 bit下的速率 | 170.6x | 166.0x | 159.2x | 163.0x | 158.9x | 163.54x |
32 bit下的速率 | 157.9x | 152.0x | 160.4x | 166.1x | 159.4x | 159.16x |
表 2 WAV格式下,以另外3种整数位深度渲染的速率
在测试过程中,笔者留意到,8 bit位深度下,渲染速率一度超过200.0x,即使渲染结束时没有达到该速率,188.0x 以上的成绩也足以体现其性能。其余几种整数位深度,渲染过程中的性能表现比较平均,没有大起大落,稳定保持在最终落脚的速率值附近。
从上述两个表格来看,虽然这4种整数位深度每次渲染的速率相差并不大,其中24 bit与32 bit甚至有几次存在不到1.0x的差别;但从平均值看,依然印证了笔者的猜想——位深度越高,渲染速率越慢,注意这是从整体表现来说的。
1.4.2. 浮点数编码
接着上面的步骤,我们继续测试REAPER WAV浮点数位深度的性能。
保持编码器设置为WAV,然后分别设置位深度为32 bit FP、64 bit FP(FP即float point的缩写)。各自连续渲染5次,观察渲染速率的变化,并记录。如下表所示:
测试次数 | 1 | 2 | 3 | 4 | 5 | 5次平均值 |
32 bit FP下的速率 | 187.5x | 192.2x | 197.3x | 200.1x | 186.1x | 192.64x |
64 bit FP下的速率 | 175.3x | 186.5x | 186.5x | 188.7x | 189.9x | 185.38x |
表 3 WAV格式下,两种浮点位深度的渲染速率
对比表 1、表 2可以发现,渲染浮点音频的整体性能要强于整数音频。采用相对更常用的32 bit浮点音频,其渲染平均速率达到了192.64x,即使速度最快、音质最低的整数8 bit位深度也不及它(后者平均速率只有189.02x)。而64 bit浮点的渲染速率,其平均值也达到了185.38x,甚至也快于16 bit整数音频。
有如此性能差异,很可能是因为REAPER内部就使用32位浮点数作为每一帧采样的数据格式,因此编码开销会少一些;而浮点采样转换为16 bit等整数位深度规格,则涉及到量化、转换过程,需要进行专门的运算,开销略多一些。当然,64 bit浮点这样的高位深度,其渲染速率自然也慢于32 bit浮点,只是差异没有整数位深度那么明显。
1.4.3. 特殊编码
REAPER还额外支持3种特殊的位深度编码(非PCM)。它们均为有损压缩,主要面向通讯等低带宽传输音频数据的场合。在音乐制作中,这些格式很少用,甚至不是所有主流播放器都能完美支持。包括:
- 4 bit IMA ADPCM(Adaptive Differential PCM):是一种有损音频编码格式,每个样本使用4个比特进行编码。最初由Intel和IBM共同开发,用于低比特率的音频传输和存储,例如在电话系统中用于压缩语音数据。
- 2 bit cADPCM(Continuous ADPCM):也是一种有损音频编码格式,每个样本使用2个比特进行编码。常用于需要更低比特率的音频传输和存储,例如在低带宽环境下的音频通信中。
- 8 bit μ-Law(名称有希腊字母,常被写作“u-Law”):一种非常流行的有损音频编码格式。8 bit μ-Law表示每个样本使用8个比特进行编码。最初由贝尔实验室(Bell Labs)开发,常用于电话系统中,特别是在北美地区,用于压缩和传输语音信号。
这些编码的性能表现,如下表所示:
测试次数 | 1 | 2 | 3 | 4 | 5 | 5次平均值 |
4 bit IMA ADPCM下的速率 | 142.6x | 140.8x | 140.9x | 138.6x | 144.5x | 141.48x |
2 bit cADPCM下的速率 | 128.8x | 116.6x | 127.3x | 141.6x | 118.5x | 126.56x |
8 bit μ-Law下的速率 | 165.3x | 162.9x | 168.1x | 153.5x | 173.5x | 164.66x |
表 4 WAV格式下,3种特殊编码的渲染速率情况
即使采样位数看似很低,4 bit IMA ADPCM与2 bit cADPCM的性能仍远低于整数与浮点编码,这是因为它们都是有损压缩算法,编码器须进行额外的压缩计算,开销增大不少。8 bit u-Law的速率则大致与24 bit整数相当,却也远低于8 bit整数的189.02x。
可见,对于上述三种有损压缩的WAV格式,就不再适用“位数越低,渲染速率越高”的规律了。
1.5. 情景二:FLAC编码器
FLAC无损编码器,在不同位深度下的表现也有所不同。笔者将分门别类地测试16、24 bit这两种整数编码,以及17/24 bit等填充位深度的编码。
1.5.1. 整数编码
16 bit、24 bit整数编码,是最常用也是最基本的编码。
- 第一步,新建一个工程,创建一个空的音轨,把测试素材导入到音轨上。
- 第二步,按Ctrl+Alt+R打开“渲染到文件”窗口(Render To File),调节渲染参数。全程我们只调整编码器与位深度的设置,保持其他参数不变——尤其是采样率与重采样算法。
- 第三步,将编码器设置为FLAC,先后设置位深度(在FLAC encoding depth一栏)为16 bit、24 bit,并始终保持压缩比率(Data compression)保持默认值“5”。两种位深度各自连续渲染5次,观察渲染速率的变化,并进行记录。
图 9 渲染设置。只修改红框内的两项:Format(编码器格式)、FLAC bit depth(位深度)
■ 结果如下表所示:
测试次数 | 1 | 2 | 3 | 4 | 5 | 5次平均值 |
16 bit速率 | 83.3x | 82.7x | 80.5x | 84.6x | 70.2x | 80.26x |
24 bit速率 | 80.0x | 78.6x | 79.2x | 78.7x | 78.6x | 79.02x |
表 5 FLAC编码器,以16 bit、24 bit位深度渲染的测试情况
相较于无压缩的WAV编码器,在FLAC当中,16 bit与24 bit位深度的渲染速率相差并不大。虽然16 bit的渲染速率略快于24 bit,但平均下来相差不到2.0x,实践中几乎可以忽略不计。因此,笔者建议,若条件允许,优先选择24 bit编码。
1.5.2. 填充位深度
REAPER提供的“填充位深度”算法,最终生成24 bit位深度的音频,但实际只会使用部分比特位来记录音频数据,其余未使用的位数全部填充为零。在FLAC编码器中,支持从17/24 bit到23/24 bit共7种填充位深度。
每种填充位深度连续渲染5次,结果如下:
测试次数 | 1 | 2 | 3 | 4 | 5 | 5次平均值 | |
填充 位深度 | 17/24 bit | 69.6x | 70.4x | 76.0x | 79.6x | 79.5x | 75.02x |
18/24 bit | 78.2x | 78.2x | 74.0x | 73.8x | 79.6x | 76.76x | |
19/24 bit | 78.0x | 77.8x | 79.0x | 76.6x | 73.7x | 77.02x | |
20/24 bit | 78.4x | 78.6x | 70.7x | 71.6x | 69.1x | 73.68x | |
21/24 bit | 76.3x | 77.8x | 78.1x | 75.1x | 77.0x | 76.86x | |
22/24 bit | 78.6x | 78.3x | 79.5x | 78.5x | 78.4x | 78.66x | |
23/24 bit | 71.9x | 75.1x | 68.8x | 70.7x | 72.7x | 71.84x |
表 6 FLAC编码器,以填充位深度渲染的测试情况
从平均值看,这些填充位深度的渲染性能彼此间相差不大。即使测试过程中,由于磁盘读写、后台任务等原因导致性能下降,不同填充位深度渲染速率的下探幅度也是相差不多。而与标准的16 bit、24 bit整数位深度(无填充)相比,填充位深度的性能还是略有降低的。
需要注意的是,REAPER提供填充位深度功能,旨在提升较低动态范围音频的压缩率,并兼顾音质,其最终性能表现取决于音频输入。要想更进一步探究其性能变化,还需要用更多的音频素材来评测,尤其是Hi-Res古典音乐等高动态范围的音频。
1.6. 情景三:苹果音频格式
使用macOS编曲的制作人,可能也会用到AIFF与CAF(Core Audio Format)这两种格式。它们与WAV一样都不带压缩,并且也支持设置位深度——虽然支持的选项并没有WAV那么多。
根据上文“情景一:WAV编码器 ”的步骤,分别对这两种格式的各个位深度进行性能测试,结果如下列表格所示。
- AIFF格式(仅支持整数位深度):
测试次数 | 1 | 2 | 3 | 4 | 5 | 5次平均值 |
8 bit速率 | 193.7x | 198.0x | 193.5x | 195.1x | 198.3x | 195.72x |
16 bit速率 | 185.8x | 184.4x | 184.9x | 188.1x | 186.8x | 186.0x |
24 bit速率 | 188.3x | 189.7x | 190.0x | 193.0x | 187.5x | 189.7x |
32 bit速率 | 175.6x | 183.5x | 153.4x | 152.5x | 153.1x | 163.62x |
表 7 AIFF格式下,所有位深度的渲染速率测试情况
- CAF格式:
测试次数 | 1 | 2 | 3 | 4 | 5 | 5次平均值 | |
整数 | 8 bit速率 | 212.9x | 204.5x | 204.7x | 210.2x | 210.2x | 208.5x |
16 bit速率 | 195.0x | 195.0x | 197.3x | 188.5x | 196.4x | 194.44x | |
24 bit速率 | 182.9x | 191.2x | 200.6x | 199.6x | 197.5x | 194.36x | |
32 bit速率 | 197.1x | 196.6x | 196.0x | 199.7x | 198.2x | 197.52x | |
浮点 | 32 bit速率 | 214.5x | 209.1x | 214.3x | 213.0x | 191.8x | 208.54x |
64 bit速率 | 203.5x | 214.5x | 200.1x | 198.0x | 205.9x | 204.4x |
表 8 CAF格式下,所有位深度的渲染速率测试情况
从上面的测试可以发现,除AIFF 32 bit PCM格式之外,苹果的两种编码器在不同位深度之间的性能差异并不大。尤其是CAF格式,在处理16 bit、24 bit与32 bit这三种整数规格时,平均渲染速率倍数相差不到4.0x;而CAF的浮点位深度则拥有更佳的性能表现。能用较小的性能开销来记录更高动态范围的音频,对制作人来说,这未尝不是一种惊喜。
1.7. 小结
通过上面的一系列实验,笔者检验了位深度与渲染性能的关系(在其他条件不变时)。
总体上看,由于位深度的提升意味着数据量的提升,多数编码器都体现出“位深度越高,则渲染速度相对变慢”的规律,尤其是WAV这一最常用的格式。不过,由于实操中的影响因素众多(例如后台可能运行其他程序,或者是REAPER内部存在无法预料的性能指标变化),这一规律并不严格遵循比例关系——有时会出现低位深度比高位深度渲染更慢的情况。
一些编码器表现出预想之外的性能。FLAC的24 bit整数编码,以及苹果的AIFF、CAF编码,即使在较高的位深度水平下,其性能表现与16 bit等较低位深度差异不大,可谓极具性价比。通过这次实践,笔者也发现了“新世界的大门”——原来也可以以低开销的方式,来记录位深度较高的高质量音频。这对于常使用高位深度记录高动态范围音频的专业制作人来说,也是好消息。
特别的是,WAV、CAF等编码器在处理浮点数据时,有显著的性能优势。在音乐制作流程中,如果追求极致性能,也不妨考虑浮点位深度。(不过,最终发布的作品通常采用至高24 bit的整数位深度。)
第二章 插值算法(重采样算法)
要想对音频进行重采样,就必须使用插值算法来处理音频,依照特定的算法对现有采样进行“多退少补”:上采样时,相同时间内的采样增加,形象的说就是在原有采样之间多出了不少“空位”,要用插值算法来补齐;下采样时,也要使用插值算法来舍去部分采样,使音频能够适应较低采样率下较少的采样数。
插值算法的不同,直接决定重采样后音频的质量;不同的插值算法,原理与复杂度各异,性能参差不齐。REAPER提供了多达11种插值算法,在性能与音质上各有取舍,你可以根据自己的实际需要来进行选择。接下来,笔者将展开评测这些插值算法的性能。
2.1. REAPER支持的插值算法
你可以在渲染窗口的“Resample mode(重采样模式)”中,选择本次渲染用到的插值算法。REAPER支持的11种插值算法,可分为3大类,具体如下:
- Point Sampling:点采样,它的音质最低,音质具有80~90年代老式设备的特点(retro)。
- Linear Interpolation:线性插值,音质较低。支持3种模式:
- 标准模式(在列表中显示为“Linear Interpolation (low quality)”);
- 带有IIR(infinite impulse response,无限脉冲响应)滤波器的两种模式(Linear Interpolation + IIR、Linear Interpolation + IIRx2)。
- Sinc Interpolation:正弦函数插值,音质胜过线性插值。根据精度的不同,得到的音质从中下到上等皆有。
- REAPER支持以下几种采样精度:16pt、64pt、192pt、384pt、512pt、768pt。其中192pt为默认值。
- r8brain free:REAPER名义上支持的最高质量插值算法。根据官方描述,不仅音质高,性能还可观。
图 12 在渲染窗口中选择插值算法
根据REAPER的描述,除r8brain free外,这些插值算法的音质自上而下提升;相应地,为了获得更好音质,而导致计算量增加、性能降低。那么,实践中的具体表现究竟如何?
2.2. 测试环境
为了保证测试过程的严谨性,这一章继续在与“第一章1.1 测试环境 ”相同的环境进行测试。笔者将渲染采样率统一设置为最高的192000 Hz,以便充分检验算法的性能。
测试时严格采用控制变量法,确保影响性能的其他参数均保持一致,排除无关因素:
- 音频素材:4分40秒的音乐(南方二重唱《风吹风吹》),FLAC格式,采样率为44100 Hz,位深度为16 bit。
- 渲染采样率:192000 Hz(在渲染窗口“Options”->“Sample rate”中设置,见图 12)
- 渲染编码器:WAV
- 渲染位深度:16 bit整数(16 bit PCM)
- 其余设置均保持默认值。
2.3. 点采样与线性插值
首先,笔者来测试理论上音质最低、性能最佳的点采样与线性插值模式。
- 第一步,新建一个工程,创建一个空的音轨,把测试素材导入到音轨上。
- 第二步,按Ctrl+Alt+R打开“渲染到文件”窗口(Render To File),按照上一节“2.2 测试环境”的要求来调整参数。
- 第三步,将Resample mode分别设置为下面4个值,各自连续渲染5次,观察渲染速率的变化,并进行记录:
- Point Sampling (lowest quality, retro)——点采样
- Linear Interpolation (low quality)——线性插值
- Linear Interpolation + IIR——线性插值,带1组IIR
- Linear Interpolation + IIRx2——线性插值,带2组IIR
上述4种插值算法的渲染速率如下表所示:
测试次数 | 1 | 2 | 3 | 4 | 5 | 5次平均值 |
点采样的速率 | 44.3x | 42.6x | 44.6x | 44.9x | 45.0x | 44.28x |
线性插值的速率 | 45.1x | 45.1x | 45.1x | 45.0x | 44.8x | 45.02x |
线性插值+IIR的速率 | 41.4x | 40.8x | 45.1x | 44.8x | 44.5x | 43.32x |
线性插值+IIRx2的速率 | 44.1x | 44.1x | 44.2x | 44.0x | 43.4x | 43.96x |
表 9 点采样与3种线性插值的渲染速率测试情况
从上表可以发现,就平均值来看,点采样与线性插值(不带IIR)的性能相差不大,不到1.0x。而线性插值加上IIR后,由于多了IIR滤波器的运算,其性能会略有下降,印证了笔者的猜想。而从总体上看,这几种插值算法的性能非常可观,即使是192000 Hz也能达到43x以上,已经不低了——只不过是用音质换时间。
2.4. 正弦函数插值
在常用的插值算法中,正弦函数的质量很可观。它的音质取决于精度,精度越高则理论上音质越好,相应地运算量增大、性能下降。
在渲染设置中,依次把Resample mode设置为6个以“Sinc Interpolation”开头的选项,其对应的精度由低到高。然后,各自连续进行5次渲染,结果如下:
测试次数 | 1 | 2 | 3 | 4 | 5 | 5次平均值 |
16pt精度的速率 | 37.0x | 37.0x | 37.5x | 38.0x | 37.2x | 37.34x |
64pt精度的速率 | 14.6x | 14.5x | 14.5x | 14.2x | 14.5x | 14.46x |
192pt精度的速率 | 6.3x | 6.3x | 6.4x | 6.4x | 6.4x | 6.36x |
384pt精度的速率 | 3.4x | 3.3x | 3.3x | 3.4x | 3.4x | 3.36x |
512pt精度的速率 | 2.6x | 2.6x | 2.6x | 2.6x | 2.6x | 2.6x |
768pt精度的速率 | 1.8x | 1.8x | 1.8x | 1.8x | 1.8x | 1.8x |
表 10 正弦函数插值的渲染性能测试情况
从上表可以发现,随着精度的提升,渲染速率也随之下降,有时甚至降幅惊人。在16pt精度下尚且可以达到37x左右,但当精度升至192pt(默认值)时,渲染速率则降至6.36x,算是非常低了。而最高精度的768pt只能达到极为“可怜”的1.8x渲染速率,可谓用大量的时间来换取质量。笔者认为,正弦函数插值对渲染性能的影响程度,远胜此前测评过的其他参数。
2.5. r8brain free插值
r8brain free是由Aleksey Vaneev开发的高质量插值算法,自由且开源。它是REAPER名义上支持的最高质量插值算法,兼具音质与性能的优势。那么它的性能是否能完胜其他的插值算法?
在渲染窗口中,把Resample mode设置为“r8brain free (highest quality, fast)”,连续进行5次渲染,结果如下:
测试次数 | 1 | 2 | 3 | 4 | 5 | 5次平均值 |
r8brain的速率 | 31.5x | 30.4x | 31.9x | 31.7x | 31.8x | 31.46x |
表 11 r8brain插值算法的渲染性能测试情况
可见,同样是以高质量作为目标,r8brain free的性能远超正弦函数插值(精度192pt及更高)。即使是默认的192pt,6.0x左右的渲染速率也只有r8brain free的20左右。可见r8brain free的性能优势名不虚传。
2.6. 小结
从上面的测试可见,插值算法对渲染性能的影响不容小觑。
其中,音质最低的点采样与线性插值,由于舍去了音质,即使在192000 Hz下,其渲染速率也能达到43.0~45.0x这一区间。而音质相对更高、更常用的正弦插值,则存在很明显的性能瓶颈。在192000 Hz采样率下,随着精度的提升,其性能堪称“断崖式下跌”;即便是默认的192pt精度,其性能也不甚理想。
所幸,REAPER还提供了“杀手锏”:r8brain free,兼顾质量与性能。若名副其实,则它将是正弦插值的绝佳替代。鉴于本文评测的重点是性能,笔者尚未检验其音质表现,留待以后再叙。
当然,笔者测试的是极高采样率192000 Hz的情形。实际渲染作品(尤其是渲染面向流媒体平台的作品)时,未必会用到如此高的采样率,因此你仍可以安心使用默认的正弦插值(相同素材,44100 Hz、16 bit渲染速率可达150.0x以上)。
第三章 抖动与噪声塑形
在渲染界面中,REAPER还提供了一些非常细小、容易被忽略的处理环节选项,面向特定用途。
其中,有两个选项,位于渲染窗口的“Options”一栏,它们分别是“Dither master(缩混时添加抖动效果)”与“Noise shape master(缩混时添加噪声塑形效果)”,如图所示:
图 13 红框处为本章要评测的“Dither master”与“Noise shape master”选项
将高采样率音频进行下采样(downsampling,通常目标为44100 Hz)时,启用这两个选项,可以使转换后的听感更为平滑。二者仅在渲染8~24 bit整数位深度的音频时可用,而最常用的场景就是渲染CD音频(16 bit,44100 Hz)。
这两个选项本身相当于效果器,将对音频进行额外的处理,所以同样会对渲染性能造成影响。
3.1. 测试环境
测试时严格采用控制变量法,确保影响性能的其他参数均保持一致,不造成干扰:
- 音频素材:4分40秒的音乐(南方二重唱《风吹风吹》),FLAC格式,采样率为44100 Hz,位深度为16 bit。
- 渲染采样率:44100 Hz
- 渲染编码器:WAV
- 渲染位深度:16 bit整数(16 bit PCM)
- 重采样模式:Sinc Interpolation: 192pt
其余设置均保持默认值。
3.2. 性能测试
笔者对Dither master、Noise shape这两个选项进行组合搭配,每种组合各自渲染5次,记录它们的渲染速率,如下表所示:
测试次数 | 1 | 2 | 3 | 4 | 5 | 5次平均值 |
不启用的速率 | 186.3x | 204.4x | 204.8x | 203.0x | 205.0x | 200.7x |
只启用Dither master | 167.8x | 170.4x | 171.4x | 174.9x | 170.7x | 171.04x |
只启用Noise shape | 116.5x | 119.5x | 112.8x | 120.2x | 119.7x | 117.74x |
两个都启用 | 107.7x | 107.9x | 109.1x | 108.3x | 104.6x | 107.52x |
表 12 Dither master、Noise shape这两种选项在不同组合搭配下的渲染性能
可见,仅仅是启用其中一个环节,就会显著降低渲染性能。其中,Dither master将渲染速率平均值拉低了约29.7点,降幅约14.5。而Noise shape对性能的影响更是惊人——原本200.7x的速率平均值,直接被拉低至117.74x,降幅直逼41!可见,抖动与噪声塑形这两个处理环节会占用大量的系统资源,尤以噪声塑形更为显著,这可能取决于内部算法的复杂程度。
值得一提的是,如果同时将两个处理环节打开,其性能的降低反而不明显,渲染速率平均值仅比只启用Noise shape时降低约10.2点。
3.3. 小结
REAPER提供的附加处理环节,仅仅是抖动与噪声塑形,就能带来不可忽视的性能影响。通常它们仅用于特定用途,尤其是交付定稿时——例如,你要渲染最终用于CD出版的定稿,且你的工程采用高于48000 Hz的采样率时,则有可能会用到抖动和/或噪声塑形这两个选项。
在日常创作中,尤其是团队合作时,如果非必要,笔者建议先不开启此类选项,以免影响性能、延长渲染时间。
写在最后
到这里,《评说影响REAPER渲染性能的因素》系列文章就全部结束了。
在本系列的3篇文章中,笔者结合自身使用REAPER的经验与体会,以渲染速率作为评测指标,先后评说了硬件、软件对自身渲染参数对性能的影响,尤以深入评测不同采样率、位深度等常见渲染参数为重点。如果你对渲染性能有要求,想改善编曲制作的体验,那么相信通过阅读本系列文章,你就能够结合自身实际来做针对性的优化,找出适合你的软硬件与渲染参数方案。
由于笔者条件有限,还有很多影响因素不能一一评说,疏漏在所难免,敬请读者朋友多多指正。即使只能给读者朋友带来微小的一点启发,笔者也荣幸之至。
可下载 Midifan for iOS 应用在手机或平板上阅读(直接在App Store里搜索Midifan即可找到,或扫描下面的二维码直接下载),在 iPad 或 iPhone 上下载并阅读。