> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# SHAPE_EQCOMP_CONTEXT

> SHAPE_EQCOMP_CONTEXT

# SHAPE\_EQCOMP\_CONTEXT

均衡器与压缩器(EQComp)上下文。

## 语法

```cpp theme={null}
typedef struct SHAPE_EQCOMP_CONTEXT {  
    UINT32 timestamp : 21;  
    UINT32 reserved0 : 2;  
    UINT32 internalSaturate : 1;  
    UINT32 mixBufPeakMag : 4;  
    UINT32 peakMag : 4;  
    UINT32 eqAB0 : 24;  
    UINT32 eqAB1_L : 8;  
    UINT32 eqAB1_H : 16;  
    UINT32 eqAB2_L : 16;  
    UINT32 eqAB2_H : 8;  
    UINT32 eqAA1 : 24;  
    UINT32 eqAA2 : 24;  
    UINT32 eqBB0_L : 8;  
    UINT32 eqBB0_H : 16;  
    UINT32 eqBB1_L : 16;  
    UINT32 eqBB1_H : 8;  
    UINT32 eqBB2 : 24;  
    UINT32 eqBA1 : 24;  
    UINT32 eqBA2_L : 8;  
    UINT32 eqBA2_H : 16;  
    UINT32 eqCB0_L : 16;  
    UINT32 eqCB0_H : 8;  
    UINT32 eqCB1 : 24;  
    UINT32 eqCB2 : 24;  
    UINT32 eqCA1_L : 8;  
    UINT32 eqCA1_H : 16;  
    UINT32 eqCA2_L : 16;  
    UINT32 eqCA2_H : 8;  
    UINT32 reserved1 : 24;  
    UINT32 eqAInputDelay0 : 24;  
    UINT32 reserved2 : 8;  
    UINT32 eqAInputDelay1 : 24;  
    UINT32 reserved3 : 8;  
    UINT32 eqDelayElements2;  
    UINT32 eqDelayElements3;  
    UINT32 eqDelayElements4;  
    UINT32 eqDelayElements5;  
    UINT32 eqDelayElements6;  
    UINT32 eqDelayElements7;  
    UINT32 compInputLevel;  
    UINT32 compGainReduction : 24;  
    UINT32 reserved4 : 8;  
    UINT32 compGain : 16;  
    UINT32 reserved5 : 16;  
    UINT32 eqAB0Target : 24;  
    UINT32 eqAB1Target_L : 8;  
    UINT32 eqAB1Target_H : 16;  
    UINT32 eqAB2Target_L : 16;  
    UINT32 eqAB2Target_H : 8;  
    UINT32 eqAA1Target : 24;  
    UINT32 eqAA2Target : 24;  
    UINT32 eqBB0Target_L : 8;  
    UINT32 eqBB0Target_H : 16;  
    UINT32 eqBB1Target_L : 16;  
    UINT32 eqBB1Target_H : 8;  
    UINT32 eqBB2Target : 24;  
    UINT32 eqBA1Target : 24;  
    UINT32 eqBA2Target_L : 8;  
    UINT32 eqBA2Target_H : 16;  
    UINT32 eqCB0Target_L : 16;  
    UINT32 eqCB0Target_H : 8;  
    UINT32 eqCB1Target : 24;  
    UINT32 eqCB2Target : 24;  
    UINT32 eqCA1Target_L : 8;  
    UINT32 eqCA1Target_H : 16;  
    UINT32 eqCA2Target_L : 16;  
    UINT32 eqCA2Target_H : 8;  
    UINT32 reserved6 : 24;  
    UINT32 compRelease : 24;  
    UINT32 reserved7 : 2;  
    UINT32 compExpand : 1;  
    UINT32 compLogGain : 1;  
    UINT32 compSidechainMode : 2;  
    UINT32 compMode : 1;  
    UINT32 compEnable : 1;  
    UINT32 compThreshold : 24;  
    UINT32 reserved8 : 8;  
    UINT32 compAttack : 24;  
    UINT32 reserved9 : 8;  
    UINT32 compOneOverRatio : 16;  
    UINT32 compGainTarget : 16;  
} SHAPE_EQCOMP_CONTEXT  
```

### 成员

*timestamp*\
类型:UINT32

读:上下文处理完成时的时间戳。

*Reserved0*\
类型:UINT32

保留。

*internalSaturate*\
类型:UINT32

读:如果 EQ/Comp 发生饱和,则为 1;否则为 0。

*mixBufPeakMag*\
类型:UINT32

读:输出混音缓冲区的峰值幅度。

*peakMag*\
类型:UINT32

读:输出的峰值幅度。

*eqAB0*\
类型:UINT32

读/写:均衡器滤波器 A 的系数 b0。

*eqAB1\_L*\
类型:UINT32

读/写:均衡器滤波器 A 的系数 b1 的低 8 位。

*eqAB1\_H*\
类型:UINT32

读/写:均衡器滤波器 A 的系数 b1 的高 16 位。

*eqAB2\_L*\
类型:UINT32

读/写:均衡器滤波器 A 的系数 b2 的低 16 位。

*eqAB2\_H*\
类型:UINT32

读/写:均衡器滤波器 A 的系数 b2 的高 8 位。

*eqAA1*\
类型:UINT32

读/写:均衡器滤波器 A 的系数 a1。

*eqAA2*\
类型:UINT32

读/写:均衡器滤波器 A 的系数 a2。

*eqBB0\_L*\
类型:UINT32

读/写:均衡器滤波器 B 的系数 b0 的低 8 位。

*eqBB0\_H*\
类型:UINT32

读/写:均衡器滤波器 B 的系数 b0 的高 16 位。

*eqBB1\_L*\
类型:UINT32

读/写:均衡器滤波器 B 的系数 b1 的低 16 位。

*eqBB1\_H*\
类型:UINT32

读/写:均衡器滤波器 B 的系数 b1 的高 8 位。

*eqBB2*\
类型:UINT32

读/写:均衡器滤波器 B 的系数 b2。

*eqBA1*\
类型:UINT32

读/写:均衡器滤波器 B 的系数 a1。

*eqBA2\_L*\
类型:UINT32

读/写:均衡器滤波器 B 的系数 a2 的低 8 位。

*eqBA2\_H*\
类型:UINT32

读/写:均衡器滤波器 B 的系数 a2 的高 16 位。

*eqCB0\_L*\
类型:UINT32

读/写:均衡器滤波器 C 的系数 b0 的低 16 位。

*eqCB0\_H*\
类型:UINT32

读/写:均衡器滤波器 C 的系数 b0 的高 8 位。

*eqCB1*\
类型:UINT32

读/写:均衡器滤波器 C 的系数 b1。

*eqCB2*\
类型:UINT32

读/写:均衡器滤波器 C 的系数 b2。

*eqCA1\_L*\
类型:UINT32

读/写:均衡器滤波器 C 的系数 a1 的低 8 位。

*eqCA1\_H*\
类型:UINT32

读/写:均衡器滤波器 C 的系数 a1 的高 16 位。

*eqCA2\_L*\
类型:UINT32

读/写:均衡器滤波器 C 的系数 a2 的低 16 位。

*eqCA2\_H*\
类型:UINT32

读/写:均衡器滤波器 C 的系数 a2 的高 8 位。

*Reserved1*\
类型:UINT32

保留。

*eqAInputDelay0*\
类型:UINT32

读:左声道的输入延迟。

*Reserved2*\
类型:UINT32

保留。

*eqAInputDelay1*\
类型:UINT32

读:右声道的输入延迟。

*Reserved*\
类型:UINT32

保留。

*eqDelayElements2*\
类型:UINT32

读:延迟单元。

*eqDelayElements3*\
类型:UINT32

读:延迟单元。

*eqDelayElements4*\
类型:UINT32

读:延迟单元。

*eqDelayElements5*\
类型:UINT32

读:延迟单元。

*eqDelayElements6*\
类型:UINT32

读:延迟单元。

*eqDelayElements7*\
类型:UINT32

读:延迟单元。

*compInputLevel*\
类型:UINT32

读:为压缩器输入计算的 InputLevel,采用 u8.23 格式(-0x0000\_0000 到 0x7FFF\_FFFF)。整数部分的 8 位允许均衡器部分在进入压缩器之前具有最多 48 dB 的增益而不会削波。

*compGainReduction*\
类型:UINT32

读:为压缩器计算的衰减,采用 u1.23 格式(-0x00\_0000 到 0x80\_0000)。这是一个线性乘数;值 0x40\_0000 对应 0.5,即 -6 dB 增益或 6 dB 增益衰减。

*Reserved4*\
类型:UINT32

保留。

*compGain*\
类型:UINT32

读/写:当前的输出(补偿)增益值,采用 u3.13 格式(-0x0000 到 0xFFFF)。

*Reserved5*\
类型:UINT32

保留。

*eqAB0Target*\
类型:UINT32

读/写:均衡器滤波器 A 的目标系数 b0。

*eqAB1Target\_L*\
类型:UINT32

读/写:均衡器滤波器 A 的目标系数 b1 的低 8 位。

*eqAB1Target\_H*\
类型:UINT32

读/写:均衡器滤波器 A 的目标系数 b1 的高 16 位。

*eqAB2Target\_L*\
类型:UINT32

读/写:均衡器滤波器 A 的目标系数 b2 的低 16 位。

*eqAB2Target\_H*\
类型:UINT32

读/写:均衡器滤波器 A 的目标系数 b2 的高 8 位。

*eqAA1Target*\
类型:UINT32

读/写:均衡器滤波器 A 的目标系数 a1。

*eqAA2Target*\
类型:UINT32

读/写:均衡器滤波器 A 的目标系数 a2。

*eqBB0Target\_L*\
类型:UINT32

读/写:均衡器滤波器 B 的目标系数 b0 的低 8 位。

*eqBB0Target\_H*\
类型:UINT32

读/写:均衡器滤波器 B 的目标系数 b0 的高 16 位。

*eqBB1Target\_L*\
类型:UINT32

读/写:均衡器滤波器 B 的目标系数 b1 的低 16 位。

*eqBB1Target\_H*\
类型:UINT32

读/写:均衡器滤波器 B 的目标系数 b1 的高 8 位。

*eqBB2Target*\
类型:UINT32

读/写:均衡器滤波器 B 的目标系数 b2。

*eqBA1Target*\
类型:UINT32

读/写:均衡器滤波器 B 的目标系数 a1。

*eqBA2Target\_L*\
类型:UINT32

读/写:均衡器滤波器 B 的目标系数 a2 的低 8 位。

*eqBA2Target\_H*\
类型:UINT32

读/写:均衡器滤波器 B 的目标系数 a2 的高 16 位。

*eqCB0Target\_L*\
类型:UINT32

读/写:均衡器滤波器 C 的目标系数 b0 的低 16 位。

*eqCB0Target\_H*\
类型:UINT32

读/写:均衡器滤波器 C 的 EQ 目标系数 b0 的高 8 位。

*eqCB1Target*\
类型:UINT32

读/写:均衡器滤波器 C 的目标系数 b1。

*eqCB2Target*\
类型:UINT32

读/写:均衡器滤波器 C 的目标系数 b2。

*eqCA1Target\_L*\
类型:UINT32

读/写:均衡器滤波器 C 的目标系数 a1 的低 8 位。

*eqCA1Target\_H*\
类型:UINT32

读/写:均衡器滤波器 C 的目标系数 a1 的高 16 位。

*eqCA2Target\_L*\
类型:UINT32

读/写:均衡器滤波器 C 的目标系数 a2 的低 16 位。

*eqCA2Target\_H*\
类型:UINT32

读/写:均衡器滤波器 C 的目标系数 a2 的高 8 位。

*Reserved6*\
类型:UINT32

保留。

*compRelease*\
类型:UINT32

写:压缩器的释放速率,采用 u1.23 格式(-0x00\_0001 到 0x80\_0000)。这是压缩器/扩展器处于释放阶段时,每个采样周期 *compGainReduction* 递增的量。如果设置了 *compLogGain*,*compRelease* 将向右移位,使第 23 位与 *compGainReduction* 当前值的最高有效位对齐;这会使递增变为指数式。值 0 对该成员无效,将导致操作不正确。

*Reserved7*\
类型:UINT32

保留。

*compExpand*\
类型:UINT32

写:请参阅 SHAPE\_EQCOMP\_EXPAND\_MODE。

*compLogGain*\
类型:UINT32

写:请参阅 SHAPE\_EQCOMP\_LOG\_GAIN。这会使启动和释放阶段以指数方式递减和递增增益衰减,以在对数空间中呈线性变化;也就是说,在 dB 单位下呈线性。

*compSidechainMode*\
类型:UINT32

写:请参阅 SHAPE\_EQCOMP\_SIDECHAIN\_MODE。

*compMode*\
类型:UINT32

写:请参阅 SHAPE\_EQCOMP\_COMPRESSOR\_MODE。

*compEnable*\
类型:UINT32

写:1 == 启用,0 == 禁用。

*compThreshold*\
类型:UINT32

写:阈值,采用 u1.23 格式(-0x00\_0000 到 0x80\_0000)。

*Reserved8*\
类型:UINT32

保留。

*compAttack*\
类型:UINT32

写:压缩器的启动速率,采用 u1.23 格式(-0x00\_0001 到 0x80\_0000)。这是压缩器/扩展器处于启动阶段时,每个采样周期 *compGainReduction* 递减的量。如果设置了 *compLogGain*,*compAttack* 将向右移位,使第 23 位与 *compGainReduction* 当前值的最高有效位对齐;这会使递增变为指数式。值 0 对该成员无效,将导致操作不正确。

*Reserved9*\
类型:UINT32

保留。

*compOneOverRatio*\
类型:UINT32

写:压缩器的斜率,采用 u1.15 格式(-0x0000 到 0x8000)。这是压缩器传统比率控制的倒数。对于 1:1 的比率,将 *compOneOverRatio* 设置为 0x8000。对于 4:1 的比率,将 *compOneOverRatio* 设置为 0x2000。值 0x0000 表示比率为无穷大:1。

*compGainTarget*\
类型:UINT32

写:用户可设置的输出(补偿)增益目标值。在一个音频帧内,增益将从当前值渐变至 *compGainTarget*,采用 u3.13 格式(-0x0000 到 0xFFFF)。

## 注解

此结构包含均衡器(EQ)和压缩器的上下文。可扩展硬件音频处理引擎(SHAPE)每音频帧最多可处理 512 个 EQComp 上下文。

有关详细信息,请参阅 [SHAPE 概述](/build/console-features/audio/overviews/shape-overview) 中的 [均衡与压缩](/build/console-features/audio/overviews/shape-overview#ID4ECF)。

## 要求

**头文件:** shapeeqcompcontext.h

**支持的平台:** XBOX One 系列主机和 XBOX Series 主机

## 概念文档

* [ACP 概述](/build/console-features/audio/overviews/acp-overview)

## 另请参阅

[ShapeEqCompContext](/reference/audio/shapeeqcompcontext/shapeeqcompcontext_members)


## Related topics

- [ShapeEqCompContext](/zh-CN/reference/audio/shapeeqcompcontext/shapeeqcompcontext_members.md)
- [ACP_COMMAND_UPDATE_EQCOMP_CONTEXT_ENTRY](/zh-CN/reference/audio/acphal/structs/acp_command_update_eqcomp_context_entry.md)
- [SHAPE_EQCOMP_COMPRESSOR_MODE](/zh-CN/reference/audio/shapeeqcompcontext/enums/shape_eqcomp_compressor_mode.md)
- [SHAPE_EQCOMP_FILTER_INDEX](/zh-CN/reference/audio/shapeeqcompcontext/enums/shape_eqcomp_filter_index.md)
- [SetShapeEqCompSidechainMode](/zh-CN/reference/audio/shapeeqcompcontext/functions/setshapeeqcompsidechainmode.md)
