Skip to main content

ShapePeakMagnitudeToDecibel

将峰值幅度值转换为分贝值。

Syntax

Parameters

peakMagnitude   
Type: UINT32
要转换的峰值幅度值。

Return value

Type: float 生成的分贝值。

Remarks

在游戏的音频引擎中,管理动态余量可能非常困难。因此,每个 SHAPE 块都会维护与信号余量和增益相关的状态。除 SRC 块外,每个块都会记录处理期间是否发生了内部饱和。 除了内部饱和标志外,每个硬件块还维护两个 4 位数,用以表示该硬件块输出的幅度。幅度的计算方法是:确定该音频帧期间的峰值输出,然后对该峰值的绝对值进行前导零计数。其中一个 4 位数用于维护持久峰值幅度;另一个则由硬件在每个音频帧时重置。 除了监视每个单独硬件块的峰值幅度外,还会维护混合缓冲区的峰值幅度。当硬件块的输出被累加到混合缓冲区时,峰值幅度按同样方式计算(前导零计数)。每个硬件块的状态另外维护一对 4 位峰值幅度值。这些值表示该硬件块的输出被累加到混合缓冲区后,该混合缓冲区的峰值幅度。其中一个 4 位数表示持续、持久的峰值幅度;另一个每个音频帧都会更新。虽然实际上表示的是混合缓冲区状态,但这些峰值幅度值仍保存在 SHAPE 块的上下文中。 峰值幅度按下表进行编码。 除了细粒度增益设置外,为帮助管理余量并避免溢出和饱和,还可以在将硬件块的输出累加到输出混合缓冲区之前对其执行 0 到 7 位的右移。这在每个 SHAPE 硬件块的上下文中指定。

Requirements

头文件: shapecontexts.h 支持的平台: XBOX One 系列主机和 XBOX Series 主机

See also

SHAPE 概述
ShapeContexts
最后修改于 2026年8月24日