Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
ISO/IEC 29341-17-13 规定了 RenderingControl 服务,该服务提供了控制 UPnP MediaRenderer 设备上音频和视频输出渲染特性的接口。AVTransport 管理播放状态机(播放、暂停、停止、定位),而 RenderingControl 管理输出参数——音量、静音、亮度、对比度、锐度、色彩平衡以及其他影响最终用户感知媒体效果的渲染属性。这种关注点分离允许控制点独立于传输状态调整渲染参数,在活跃播放期间调整音量或为不同观看环境配置画面预设等场景中尤为有价值。
RenderingControl 服务使用基于实例的架构。每个渲染实例(由 RenderingControlID 标识)代表一个独立的渲染通道——例如多区域音频放大器的主区域和第二区域,或电视的 HDMI 1 和 HDMI 2 输入。ConnectionManager 的 PrepareForConnection 动作将连接与特定的渲染实例关联,控制点将渲染命令定向到相应的实例。这在不同信源馈送到不同渲染路径的复杂 AV 系统中实现了细粒度控制。
RenderingControl 服务围绕声道概念组织其控制。每个渲染实例有多个声道——至少有一个同时控制所有输出的 Master 声道,以及可选的用于特定输出的独立声道。在立体声音频系统中,声道可能包括 Master、LF(左前)、RF(右前)以及可能的 Subwoofer(低音炮)。在视频系统中,声道控制整个显示输出(Master)或各个画中画窗口的画面参数。
音量控制是最基本的渲染操作。服务为每个声道暴露 Volume 状态变量,值通常范围为 0 到 100(尽管标准允许实现定义的范围)。Mute 状态变量提供布尔切换,在不改变音量设置的情况下静音该声道——对于在临时静音输出时保留用户配置的音量级别至关重要。额外的音频控制包括 Balance(左右立体声平衡)、Fade(前后衰减)、Loudness(低音量响度补偿)以及 Bass/Treble(均衡控制)。
视频渲染控制包括 Brightness(亮度)、Contrast(对比度)、Sharpness(锐度)、Color(饱和度)、Hue(色调)以及 Horizontal/Vertical Extension(宽高比调整)。每个都作为每个声道的独立状态变量暴露,具有实现定义的值范围。标准为未包含在预定义集中的实现特定控制定义了通用的 GetStateVariable/SetStateVariable 机制。
| 控制声道 | 状态变量 | 典型范围 | 描述 |
|---|---|---|---|
| Master(所有声道) | Volume | 0 — 100 | 全局音频音量级别 |
| Master | Mute | 0 / 1 | 全局音频静音状态 |
| Master | Balance | -100 — 100(0=居中) | 左右立体声平衡 |
| Master | Loudness | 0 / 1 | 响度补偿开关 |
| Master | Brightness | 0 — 100 | 视频亮度(黑电平) |
| Master | Contrast | 0 — 100 | 视频对比度(白电平) |
| Master | Sharpness | 0 — 100 | 视频锐度(边缘增强) |
| Master | Color | 0 — 100 | 视频色彩饱和度 |
| Master | Hue | -180 — 180(0=中性) | 视频色调调整 |
| LF(左前) | Volume | 0 — 100 | 独立左声道音量 |
| RF(右前) | Volume | 0 — 100 | 独立右声道音量 |
RenderingControl 服务通过 ListPresets、SelectPreset 和 GetPreset 动作定义了全面的预设管理系统。预设是一组命名的渲染参数值集合,可以作为一个组应用。常见预设包括”电影”(增强对比度、暖色温、环绕声)、”音乐”(平坦 EQ、立体声)、”游戏”(低延迟模式、明亮画面)和”夜间”(降低动态范围、降低音量)。设备的 GetPresets 动作返回可用预设列表,SelectPreset 在单个原子操作中应用与命名预设关联的所有参数。
从工程角度来看,预设提供了渲染配置之间的原子转换。调用 SelectPreset 时,设备应同时转换所有受影响的渲染参数,以避免中间视觉伪影。例如,从”电影”预设切换到”游戏”预设时,不应短暂显示具有旧亮度与新对比度组合的帧。实现应对预设参数使用双缓冲——将新值接收到影子寄存器组中,并在所有参数更新完成时原子地交换活动寄存器组。
LastChange 事件机制值得特别的工程关注。RenderingControl 使用事件通知来向控制点通知渲染参数的变化。LastChange 事件变量携带编码了发生变化的声道和参数的 XML 文档以及新值。为了减少快速参数变化期间(如音量滑块拖动)的事件流量,标准建议将事件限频到大约每秒 10 次事件。控制点应实现接收端合并,仅处理突发中的最新事件。