ShapePeakMagnitudeToDecibel
將峰值振幅值轉換為分貝值。語法
參數
peakMagnitude類型: UINT32 要轉換的峰值振幅值。
傳回值
類型: float 產生的分貝值。備註
在遊戲的音訊引擎中,管理動態餘量 (headroom) 可能非常困難。因此,每個 SHAPE 區塊都會維護與訊號餘量及增益相關聯的狀態。每個區塊 (SRC 區塊除外) 都會記錄處理期間是否發生內部飽和。 除了內部飽和旗標之外,每個硬體區塊也會維護兩個 4 位元數字,代表硬體區塊輸出的振幅。振幅的計算方式是判斷音訊框架期間的峰值輸出,並計算峰值絕對值的前置零數目。其中一個 4 位元數字會維護持續性的峰值振幅;另一個則由硬體在每個音訊框架重設。 除了監視每個個別硬體區塊的峰值振幅之外,也會維護混音緩衝區的峰值振幅。當硬體區塊的輸出加入混音緩衝區時,會以相同方式 (計算前置零) 計算峰值振幅。每個硬體區塊狀態都會額外維護一組 4 位元峰值振幅值。這些值代表硬體區塊的輸出累加到混音緩衝區之後,混音緩衝區的峰值振幅。其中一個 4 位元數字代表持續進行中的持續性峰值振幅;另一個則在每個音訊框架更新。峰值振幅值會儲存在 SHAPE 區塊的內容中,即使其實際代表的是混音緩衝區的狀態。 峰值振幅依照下表進行編碼。
為了協助管理餘量並避免溢位和飽和,除了精細的增益設定之外,還可以在硬體區塊的輸出累加到輸出混音緩衝區之前,對其執行 0 到 7 位元的右移。這會在每個 SHAPE 硬體區塊的內容中指定。
需求
標頭: shapecontexts.h 支援的平台: XBOX One 系列主機和 XBOX Series 主機另請參閱
SHAPE 概觀ShapeContexts
