Skip to main content

ShapePeakMagnitudeToDecibel

將峰值振幅值轉換為分貝值。

語法

參數

peakMagnitude   
類型: UINT32
要轉換的峰值振幅值。

傳回值

類型: float 產生的分貝值。

備註

在遊戲的音訊引擎中,管理動態餘量 (headroom) 可能非常困難。因此,每個 SHAPE 區塊都會維護與訊號餘量及增益相關聯的狀態。每個區塊 (SRC 區塊除外) 都會記錄處理期間是否發生內部飽和。 除了內部飽和旗標之外,每個硬體區塊也會維護兩個 4 位元數字,代表硬體區塊輸出的振幅。振幅的計算方式是判斷音訊框架期間的峰值輸出,並計算峰值絕對值的前置零數目。其中一個 4 位元數字會維護持續性的峰值振幅;另一個則由硬體在每個音訊框架重設。 除了監視每個個別硬體區塊的峰值振幅之外,也會維護混音緩衝區的峰值振幅。當硬體區塊的輸出加入混音緩衝區時,會以相同方式 (計算前置零) 計算峰值振幅。每個硬體區塊狀態都會額外維護一組 4 位元峰值振幅值。這些值代表硬體區塊的輸出累加到混音緩衝區之後,混音緩衝區的峰值振幅。其中一個 4 位元數字代表持續進行中的持續性峰值振幅;另一個則在每個音訊框架更新。峰值振幅值會儲存在 SHAPE 區塊的內容中,即使其實際代表的是混音緩衝區的狀態。 峰值振幅依照下表進行編碼。 為了協助管理餘量並避免溢位和飽和,除了精細的增益設定之外,還可以在硬體區塊的輸出累加到輸出混音緩衝區之前,對其執行 0 到 7 位元的右移。這會在每個 SHAPE 硬體區塊的內容中指定。

需求

標頭: shapecontexts.h 支援的平台: XBOX One 系列主機和 XBOX Series 主機

另請參閱

SHAPE 概觀
ShapeContexts
Last modified on October 6, 2026