跳到主要内容

7. SDP 考量 (SDP Considerations)

上述定义的负载格式 media type 到 SDP 中对应字段的映射按照 [RFC8866] 完成.

SDP 的 "m=" 行中的 media name MUST 为 haptics.

SDP 的 "a=rtpmap" 行中的 encoding name MUST 为 hmpg.

"a=rtpmap" 行中的 clock rate 可以是任意采样率, 通常为 8000.

可选参数在出现时 MUST 包含在 SDP 的 "a=fmtp" 行中, 这些参数定义于第 6.1 节. 其表示形式是 media type 字符串, 采用以分号分隔的 parameter=value 对列表. 在 SDP 中, 参数值, 包括字符串值, MUST 不带引号 ("") 写入. 字符串形式的参数值不区分大小写, SHOULD 使用小写形式.

SDP 中对应于 hmpg RTP 负载的媒体表示示例如下:

m=haptics 43291 UDP/TLS/RTP/SAVPF 115
a=rtpmap:115 hmpg/8000
a=fmtp:115 profile=main;lvl=1;ver=2025

7.1. SDP Offer/Answer 考量 (SDP Offer/Answer Considerations)

使用 [RFC3264] 中描述的 offer/answer 流程协商 haptic 的使用时, 适用以下考量.

用于单向流时, SDP 参数表示发送方的属性 (在发送侧) 和接收方的属性 (在接收侧). 用于 sendrecv 流时, SDP 参数表示接收方的属性.

使用 SDP 参数 ver, profilelvl 表达的接收方属性对应于实现能力. ver, profilelvl 参数 MUST 在 SDP offer 和 answer 中对称使用. 也就是说, answer 中的值 MUST 与 offer 中的值匹配, 这些值可以显式信令发送, 也可以隐式推断. 在同一会话中, 后续 offer 或 answer 中 MUST NOT 更改 ver, profilelvl.

使用除 ver, profilelvl 之外的 SDP 参数表达的属性, 是作为高效数据传输的建议提供的, 并不具有约束力. 这意味着鼓励发送方符合接收方指定的参数, 但不要求发送方必须符合. 这些属性 MAY 在 offer 和 answer 中设置为不同值. 这些属性 MAY 在后续 offer 或 answer 中更新.

任何符合 [ISO.IEC.23090-31] 的接收方 MUST 能够解码具有兼容 version, profile 和 level 的任何流. 支持更通用 profile 的接收方将接受与相同或较不通用 profile 对应的流, 例如 "main""simple-parametric" 更通用. 支持给定 level 的接收方将接受与相同或更低 level 对应的流. 支持给定 version 的接收方将接受与相同 version 对应的流, 并且 MAY 接受其他 version. 接收方 MAY 忽略接收流中的任何部分, 例如其不支持渲染的部分.

haptic signal (触觉信号) 可以按不同速率采样. MPEG Haptics Coding 标准不强制规定特定频率. 典型采样率为 8000 Hz.

参数 ver 指示 haptic 标准规范的版本. 如果未指定该参数, SHOULD 推断值 "2025", 它表示 MPEG Haptics Coding 标准 ISO/IEC 23090-31:2025 [ISO.IEC.23090-31], 但发送方和接收方 MAY 基于带外协议使用特定值. 参数 profile 用于限制所使用的工具数量, 例如 simple-parametric profile 支持比 main profile 更简单的实现. 如果未指定该参数, SHOULD 推断最通用的 profile "main", 但发送方和接收方 MAY 基于带外协议使用特定值. 参数 lvl 用于在给定 profile 内进一步表征实现, 例如根据所支持的最大 channel, band 和 perception 数量进行表征. 如果未指定该参数, SHOULD 推断最通用的 level "2", 但发送方和接收方 MAY 基于带外协议使用特定 version.

其他参数可用于指示 bitstream (比特流) 属性以及接收方能力. 参数 maxlod, avtypes, bodypartmask, maxfreq, minfreq, dvctypesmodalities 可以由发送方发送以反映 bitstream 的特征, 也可以由接收方设置以反映本地 actuator device (执行器设备) 的性质和能力, 或者反映偏好的一组 bitstream 属性. 例如, 不同接收方 MAY 具有不同的本地 actuator 集合, 在这种情况下, 这些参数可用于选择适配接收方的流. 在其他一些情况下, 某些接收方 MAY 指示其对一组 bitstream 属性的偏好, 例如 perception, 最小/最大频率或 body part mask. 对于给定应用程序, 这些属性对用户体验贡献最大, 在这种情况下, 这些参数可用于选择包含并可能优先处理这些属性的流. 例如, 如果 haptic 流服务器提供的信息多于接收方指定的 body mask, 接收方可以将额外信息集成到单个 effect 中, 也可以忽略这些额外信息.

参数 silencesupp 可用于指示发送方和接收方的能力或偏好. 此参数指示是否应使用 silence suppression (静默抑制), 如第 5.4 节所述. 如果未指定该参数, SHOULD 推断值 "0", 表示无静默抑制, 但发送方和接收方 MAY 基于带外协议使用静默抑制.

7.2. 声明式 SDP 考量 (Declarative SDP Considerations)

当通过 RTP 传输的 haptic 内容以声明式方式通过 SDP 提供时, 能够同时指示 bitstream 属性和接收方能力的参数仅用于指示 bitstream 属性. 例如, 在这种情况下, 参数 maxlod, bodypartmask, maxfreq, minfreq, dvctypesmodalities 声明 bitstream 使用的值, 而不是声明接收 bitstream 的能力. SDP 接收方需要支持所提供的所有参数及其值. 否则, 接收方 MUST 拒绝或不参与该会话. 会话创建者负责使用预计接收应用程序能够支持的值.