rfc9695v1.txt | rfc9695.txt | |||
---|---|---|---|---|
Internet Engineering Task Force (IETF) Y. K. Muthusamy | Internet Engineering Task Force (IETF) Y. K. Muthusamy | |||
Request for Comments: 9695 | Request for Comments: 9695 | |||
Category: Standards Track C. Ullrich | Category: Standards Track C. Ullrich | |||
ISSN: 2070-1721 December 2024 | ISSN: 2070-1721 January 2025 | |||
The 'haptics' Top-level Media Type | The 'haptics' Top-level Media Type | |||
Abstract | Abstract | |||
This memo registers and documents the 'haptics' top-level media type, | This memo registers and documents the 'haptics' top-level media type, | |||
under which subtypes for representation formats for haptics may be | under which subtypes for representation formats for haptics may be | |||
registered. This document also serves as a registration for a set of | registered. This document also serves as a registration for a set of | |||
subtypes, which are representative of some existing subtypes already | subtypes, which are representative of some existing subtypes already | |||
in use. | in use. | |||
skipping to change at line 33 ¶ | skipping to change at line 33 ¶ | |||
received public review and has been approved for publication by the | received public review and has been approved for publication by the | |||
Internet Engineering Steering Group (IESG). Further information on | Internet Engineering Steering Group (IESG). Further information on | |||
Internet Standards is available in Section 2 of RFC 7841. | Internet Standards is available in Section 2 of RFC 7841. | |||
Information about the current status of this document, any errata, | Information about the current status of this document, any errata, | |||
and how to provide feedback on it may be obtained at | and how to provide feedback on it may be obtained at | |||
https://www.rfc-editor.org/info/rfc9695. | https://www.rfc-editor.org/info/rfc9695. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2024 IETF Trust and the persons identified as the | Copyright (c) 2025 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
(https://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | publication of this document. Please review these documents | |||
carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
include Revised BSD License text as described in Section 4.e of the | include Revised BSD License text as described in Section 4.e of the | |||
Trust Legal Provisions and are provided without warranty as described | Trust Legal Provisions and are provided without warranty as described | |||
in the Revised BSD License. | in the Revised BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction | 1. Introduction | |||
1.1. Terminology | ||||
2. Background and Justification | 2. Background and Justification | |||
2.1. MPEG ISOBMFF | 2.1. MPEG ISOBMFF | |||
2.2. Haptic Sub-Modalities | 2.2. Haptic Sub-Modalities | |||
2.3. Another Human Sense | 2.3. Another Human Sense | |||
2.4. Commercial Uptake | 2.4. Commercial Uptake | |||
2.5. Haptic Data Formats in Use | 2.5. Haptic Data Formats in Use | |||
2.6. Haptic Subtypes (Envisioned Standards) | 2.6. Haptic Subtypes (Envisioned Standards) | |||
2.7. 'application' Top-Level Type Not Suitable | 2.7. 'application' Top-Level Type Not Suitable | |||
3. Security Considerations | 3. Security Considerations | |||
4. IANA Considerations | 4. IANA Considerations | |||
skipping to change at line 93 ¶ | skipping to change at line 92 ¶ | |||
capabilities are found in nearly every modern smartphone, game, and | capabilities are found in nearly every modern smartphone, game, and | |||
virtual reality controller, making these devices an ideal target for | virtual reality controller, making these devices an ideal target for | |||
enhanced media experiences. | enhanced media experiences. | |||
Internet Media Types [RFC6838] are used to label content carried over | Internet Media Types [RFC6838] are used to label content carried over | |||
Internet protocols. This document defines a new top-level type, | Internet protocols. This document defines a new top-level type, | |||
'haptics', according to [RFC9694]. This top-level type indicates | 'haptics', according to [RFC9694]. This top-level type indicates | |||
that the content specifies haptic data. Under this top-level type, | that the content specifies haptic data. Under this top-level type, | |||
different representation formats of haptics may be registered. | different representation formats of haptics may be registered. | |||
1.1. Terminology | ||||
The keywords MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, | ||||
SHOULD,SHOULD NOT, RECOMMENDED, NOT RECOMMENDED, MAY, and OPTIONAL in | ||||
this document are to be interpreted as described in BCP 14 [RFC2119] | ||||
[RFC8174] when, and only when, they appear in all capitals, as shown | ||||
here. | ||||
2. Background and Justification | 2. Background and Justification | |||
Haptic signals provide an additional layer of entertainment and | Haptic signals provide an additional layer of entertainment and | |||
sensory immersion for the user, when combined with audio and video | sensory immersion for the user, when combined with audio and video | |||
signals. Haptic tracks, in separate files, can be combined with | signals. Haptic tracks, in separate files, can be combined with | |||
audio/video files and played back in sync to provide an overall | audio/video files and played back in sync to provide an overall | |||
immersive media experience (audio, visual, tactile) for the user. | immersive media experience (audio, visual, tactile) for the user. | |||
More recently, haptic tracks embedded in standard file formats, such | More recently, haptic tracks embedded in standard file formats, such | |||
as ISOBMFF (ISO Base Media File Format), enable playback of the | as ISOBMFF (ISO Base Media File Format), enable playback of the | |||
haptic signals over one or more actuators, simultaneously with audio | haptic signals over one or more actuators, simultaneously with audio | |||
skipping to change at line 175 ¶ | skipping to change at line 166 ¶ | |||
sense of touch to be represented by another top-level media type | sense of touch to be represented by another top-level media type | |||
'haptics'. Placing 'haptics' under 'audio' or 'video' is not | 'haptics'. Placing 'haptics' under 'audio' or 'video' is not | |||
reflective of the kinds of files or use cases that would need haptics | reflective of the kinds of files or use cases that would need haptics | |||
but have nothing whatsoever to do with audio or video. | but have nothing whatsoever to do with audio or video. | |||
2.4. Commercial Uptake | 2.4. Commercial Uptake | |||
Haptics is rapidly becoming a standard feature of consumer electronic | Haptics is rapidly becoming a standard feature of consumer electronic | |||
devices. For example: | devices. For example: | |||
* iPhone (206+ million units sold in 2020): native support for | * iPhone (231+ million units sold in 2023 [iPhone-Sales]): built-in | |||
haptic-encoded data | support for haptic-encoded data | |||
* Android (1.38+ billion units sold in 2020): API support of haptic | * Android (1.27+ billion units sold in 2023 [Android-Sales] | |||
buffers | [GlobalSmartPhone-Sales]): API support of haptic buffers | |||
* W3C (HTML vibration API [W3C-Vibration]): Optionally supported in | * W3C (HTML vibration API [W3C-Vibration]): Optionally supported in | |||
mobile web browsers. W3C has also defined vibration extensions | mobile web browsers. W3C has also defined vibration extensions | |||
for gamepads [W3C-Gamepad] | for gamepads [W3C-Gamepad] | |||
* Game consoles (39+ million units sold in 2019): MS Xbox, Sony | * Game consoles (45+ million units sold in 2023 | |||
PlayStation, Nintendo Switch, etc. | [GameConsole-Sales]): MS Xbox, Sony PlayStation, Nintendo Switch, | |||
etc. | ||||
* XR devices (9+ million units sold in 2019): OpenXR haptic API | * XR devices (30+ million units sold in 2023 [XRDevice-Sales]): | |||
OpenXR haptic API | ||||
Haptic media is expected to be commonly exchanged between these | Haptic media is expected to be commonly exchanged between these | |||
devices. Since they represent the majority of CE devices, a strong | devices. Since they represent the majority of consumer electronics | |||
case can be made for 'haptics' as a top-level media type. | (CE) devices, a strong case can be made for 'haptics' as a top-level | |||
media type. | ||||
2.5. Haptic Data Formats in Use | 2.5. Haptic Data Formats in Use | |||
There are multiple instances of existing haptic data formats that | There are multiple instances of existing haptic data formats that | |||
will live as sub-types under the proposed 'haptics' top-level media | will live as sub-types under the proposed 'haptics' top-level media | |||
type. While these subtypes have *not* been registered with IANA or | type. While these subtypes have *not* been standardized (yet), the | |||
standardized (yet), the prevalence of these haptic data formats in a | prevalence of these haptic data formats in a large number of devices | |||
large number of devices around the world, pre-dating the | around the world, pre-dating the standardization of haptic tracks in | |||
standardization of haptic tracks in ISOBMFF, provides a compelling | ISOBMFF, provides a compelling argument for 'haptics' to be | |||
argument for 'haptics' to be designated as a top-level media type: | designated as a top-level media type: | |||
* 'ahap': The AHAP haptic data format [AHAP] is currently the | * 'ahap': The AHAP haptic data format [AHAP] is currently the | |||
standard encoding on all iOS devices + iOS connected game | standard encoding on all iOS devices + iOS connected game | |||
peripherals. The format has seen usage and adoption beyond Apple | peripherals. The format has seen usage and adoption beyond Apple | |||
devices as well, with decoders available for Android and other XR | devices as well, with decoders available for Android and other XR | |||
systems. | systems. | |||
* 'ogg': Google has introduced a proprietary extension to the OGG | * 'ogg': Google has introduced a proprietary extension to the OGG | |||
format in the latest version of Android 11. This encoding enables | format in the latest version of Android 11. This encoding enables | |||
haptic media to be stored in OGG files. | haptic media to be stored in OGG files. | |||
skipping to change at line 251 ¶ | skipping to change at line 245 ¶ | |||
Immersion-Announces-Tencent-Licenses-TouchSense%C2%AE- | Immersion-Announces-Tencent-Licenses-TouchSense%C2%AE- | |||
Technology-Deliver) | Technology-Deliver) | |||
Given the widespread use of these subtypes, it makes sense for | Given the widespread use of these subtypes, it makes sense for | |||
'haptics' to be a top-level media type. | 'haptics' to be a top-level media type. | |||
2.6. Haptic Subtypes (Envisioned Standards) | 2.6. Haptic Subtypes (Envisioned Standards) | |||
The MPEG ISOBMFF proposal included an informative annex of known | The MPEG ISOBMFF proposal included an informative annex of known | |||
haptic coding formats with proposed FourCCs (four-character codes) | haptic coding formats with proposed FourCCs (four-character codes) | |||
for them. These codes are not registered yet, but the plan is indeed | for them. The first two, hmpg and hjif, have been registered per | |||
to standardize these haptic coding formats in the near future. Once | this document and have already been standardized in ISO-IEC 23090-31: | |||
standardized, these types should also be registered as subtypes of | Haptics coding [MPEG-Haptics-Coding]. As for the remaining codes, | |||
the 'haptics' top-level media type: | once the format names have been finalized and standardized, these | |||
types should also be registered as subtypes of the 'haptics' top- | ||||
level media type: | ||||
* 'hmpg': the MPEG-I haptics streamable binary coding format | * 'hmpg': the MPEG-I haptics streamable binary coding format | |||
described in ISO/IEC DIS 23090-31: Haptics coding | described in ISO/IEC 23090-31: Haptics coding | |||
[MPEG-Haptics-Coding] | [MPEG-Haptics-Coding] | |||
* 'hjif': the MPEG-I haptics JSON-based interchange format described | * 'hjif': the MPEG-I haptics JSON-based interchange format described | |||
in ISO/IEC DIS 23090-31: Haptics coding [MPEG-Haptics-Coding] | in ISO/IEC 23090-31: Haptics coding [MPEG-Haptics-Coding] | |||
* IEEE P1918.1.1 vibrotactile coding standard [IEEE-191811] being | * IEEE 1918.1.1 vibrotactile coding standard [IEEE-191811] being | |||
developed under the IEEE Tactile Internet initiative as part of | developed under the IEEE Tactile Internet initiative as part of | |||
the 5G URLL profile. Format name is yet to be finalized. | the 5G Ultra-Reliable Low-Latency Communication (URLLC) profile. | |||
Format name is yet to be finalized. | ||||
* Enumerated effects haptic coding format (based on MIDI). Format | * Enumerated effects haptic coding format (based on MIDI). Format | |||
name is yet to be finalized. | name is yet to be finalized. | |||
* Audio-to-vibe haptic coding format (automatic audio-to-vibration | * Audio-to-vibe haptic coding format (automatic audio-to-vibration | |||
conversion algorithms). Format name is yet to be finalized. | conversion algorithms). Format name is yet to be finalized. | |||
2.7. 'application' Top-Level Type Not Suitable | 2.7. 'application' Top-Level Type Not Suitable | |||
From the above arguments, it is clear that haptics does not really | From the above arguments, it is clear that haptics does not really | |||
skipping to change at line 437 ¶ | skipping to change at line 434 ¶ | |||
Interoperability considerations: The HJIF format is a human-readable | Interoperability considerations: The HJIF format is a human-readable | |||
haptic effect coding based on the JSON format. It is designed as | haptic effect coding based on the JSON format. It is designed as | |||
an interchange format for temporal and spatial haptic effects. | an interchange format for temporal and spatial haptic effects. | |||
The haptic effects may target specific parts of the human body and | The haptic effects may target specific parts of the human body and | |||
may be associated with a reference device description allowing | may be associated with a reference device description allowing | |||
haptic rendering software to adapt the effects to available | haptic rendering software to adapt the effects to available | |||
hardware. | hardware. | |||
Security considerations: See Section 3 of RFC 9695. | Security considerations: See Section 3 of RFC 9695. | |||
Published specification: ISO/IEC DIS 23090-31: Haptics coding | Published specification: ISO/IEC 23090-31: Haptics coding | |||
[MPEG-Haptics-Coding]. | [MPEG-Haptics-Coding]. | |||
Applications that use this media type: All applications that are | Applications that use this media type: All applications that are | |||
able to create, edit, or display haptic media content. | able to create, edit, or display haptic media content. | |||
Additional information: | Additional information: | |||
File extension(s): Haptic file extensions used for HJIF files: | File extension(s): Haptic file extensions used for HJIF files: | |||
.hjif | .hjif | |||
Macintosh file type code(s): (no code specified) | Macintosh file type code(s): (no code specified) | |||
Macintosh Universal Type Identifier code: N/A | Macintosh Universal Type Identifier code: N/A | |||
skipping to change at line 478 ¶ | skipping to change at line 475 ¶ | |||
Interoperability considerations: The HMPG format is a streamable | Interoperability considerations: The HMPG format is a streamable | |||
binary haptic effect coding. It is designed to enable efficient | binary haptic effect coding. It is designed to enable efficient | |||
coding of temporal and spatial haptic effects. The haptic effects | coding of temporal and spatial haptic effects. The haptic effects | |||
may target specific parts of the human body and may be associated | may target specific parts of the human body and may be associated | |||
with a reference device description allowing haptic rendering | with a reference device description allowing haptic rendering | |||
software to adapt the effects to available hardware. | software to adapt the effects to available hardware. | |||
Security considerations: See Section 3 of RFC 9695. | Security considerations: See Section 3 of RFC 9695. | |||
Published specification: ISO/IEC DIS 23090-31: Haptics coding | Published specification: ISO/IEC 23090-31: Haptics coding | |||
[MPEG-Haptics-Coding]. | [MPEG-Haptics-Coding]. | |||
Applications that use this media type: All applications that are | Applications that use this media type: All applications that are | |||
able to create, edit, or display haptic media content. | able to create, edit, or display haptic media content. | |||
Additional information: | Additional information: | |||
File extension(s): Haptic file extensions used for HMPG files: | File extension(s): Haptic file extensions used for HMPG files: | |||
.hmpg | .hmpg | |||
Macintosh file type code(s): (no code specified) | Macintosh file type code(s): (no code specified) | |||
Macintosh Universal Type Identifier code: N/A | Macintosh Universal Type Identifier code: N/A | |||
skipping to change at line 500 ¶ | skipping to change at line 497 ¶ | |||
Deprecated Alias: N/A | Deprecated Alias: N/A | |||
Person & email address to contact for further information: | Person & email address to contact for further information: | |||
Yeshwant Muthusamy(yeshwant@yeshvik.com) | Yeshwant Muthusamy(yeshwant@yeshvik.com) | |||
Change controller: ISO/IEC JTC1/SC 29/WG 7 (MPEG 3D Graphics and | Change controller: ISO/IEC JTC1/SC 29/WG 7 (MPEG 3D Graphics and | |||
Haptic Coding) | Haptic Coding) | |||
5. Normative References | 5. Normative References | |||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | ||||
Requirement Levels", BCP 14, RFC 2119, | ||||
DOI 10.17487/RFC2119, March 1997, | ||||
<https://www.rfc-editor.org/info/rfc2119>. | ||||
[RFC6838] Freed, N., Klensin, J., and T. Hansen, "Media Type | [RFC6838] Freed, N., Klensin, J., and T. Hansen, "Media Type | |||
Specifications and Registration Procedures", BCP 13, | Specifications and Registration Procedures", BCP 13, | |||
RFC 6838, DOI 10.17487/RFC6838, January 2013, | RFC 6838, DOI 10.17487/RFC6838, January 2013, | |||
<https://www.rfc-editor.org/info/rfc6838>. | <https://www.rfc-editor.org/info/rfc6838>. | |||
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | ||||
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | ||||
May 2017, <https://www.rfc-editor.org/info/rfc8174>. | ||||
[RFC9694] Dürst, M., "Guidelines for the Definition of New Top-Level | [RFC9694] Dürst, M., "Guidelines for the Definition of New Top-Level | |||
Media Types", RFC 9694, DOI 10.17487/RFC9694, December | Media Types", RFC 9694, DOI 10.17487/RFC9694, December | |||
2024, <https://www.rfc-editor.org/info/rfc9694>. | 2024, <https://www.rfc-editor.org/info/rfc9694>. | |||
6. Informative References | 6. Informative References | |||
[AHAP] Apple Inc., "Representing haptic patterns in AHAP files", | [AHAP] Apple Inc., "Representing haptic patterns in AHAP files", | |||
Apple Developer Documentation, | Apple Developer Documentation, | |||
<https://developer.apple.com/documentation/corehaptics/ | <https://developer.apple.com/documentation/corehaptics/ | |||
representing_haptic_patterns_in_ahap_files>. | representing_haptic_patterns_in_ahap_files>. | |||
[Android-Sales] | ||||
Counterpoint, "Global Smartphone Sales Share by Operating | ||||
System", <https://www.counterpointresearch.com/insights/ | ||||
global-smartphone-os-market-share/>. | ||||
[GameConsole-Sales] | ||||
D'Angelo, W., "PS5 vs Xbox Series X|S vs Switch 2023 | ||||
Worldwide Sales Comparison Charts Through December - | ||||
Sales", VGChartz.com, | ||||
<https://www.vgchartz.com/article/459672/ps5-vs-xbox- | ||||
series-xs-vs-switch-2023-worldwide-sales-comparison- | ||||
charts-through-december/>. | ||||
[GlobalSmartPhone-Sales] | ||||
sellcell, "How many mobile phones are sold each year?", | ||||
<https://www.sellcell.com/how-many-mobile-phones-are-sold- | ||||
each-year/>. | ||||
[IEEE-191811] | [IEEE-191811] | |||
IEEE, "IEEE Draft Standard for Haptic Codecs for the | IEEE, "IEEE Standard for Haptic Codecs for the Tactile | |||
Tactile Internet", IEEE P1918.1.1/D3, March 2023, | Internet", IEEE Std 1918.1.1-2024, | |||
<https://ieeexplore.ieee.org/document/10042202>. | DOI 10.1109/IEEESTD.2024.10555007, June 2024, | |||
<https://ieeexplore.ieee.org/document/10555007>. | ||||
[iPhone-Sales] | ||||
Backlinko, "iPhone Users and Sales Stats", LinkedIn, | ||||
<https://backlinko.com/iphone-users>. | ||||
[ISOBMFF-IS] | [ISOBMFF-IS] | |||
ISO/IEC, "Information technology - Coding of audio-visual | ISO/IEC, "Information technology - Coding of audio-visual | |||
objects - Part 12: ISO base media file format", 7th | objects - Part 12: ISO base media file format", 7th | |||
Edition, ISO/IEC 14496-12:2022, January 2022, | Edition, ISO/IEC 14496-12:2022, January 2022, | |||
<https://www.iso.org/standard/83102.html>. | <https://www.iso.org/standard/83102.html>. | |||
[Media-Type-Reg] | [Media-Type-Reg] | |||
IANA, "Application for a Media Type", | IANA, "Application for a Media Type", | |||
<http://www.iana.org/form/media-types>. | <http://www.iana.org/form/media-types>. | |||
[MPEG-Haptics-Coding] | [MPEG-Haptics-Coding] | |||
ISO/IEC, "Information Technology -- Coded representation | ISO/IEC, "Information Technology -- Coded representation | |||
of immersive media -- Part 31: Haptics coding", Final | of immersive media -- Part 31: Haptics coding", | |||
Draft International Standard, ISO/IEC FDIS 23090-31, | International Standard (under publication), ISO/ | |||
<https://www.iso.org/standard/86122.html>. | IEC 23090-31, <https://www.iso.org/standard/86122.html>. | |||
[MPEG-Haptics-Encoder] | [MPEG-Haptics-Encoder] | |||
MPEG, "Encoder Input Format for Haptics", MPEG 134 Meeting | MPEG, "Encoder Input Format for Haptics", MPEG 134 Meeting | |||
Document, 15 May 2021, | Document, 15 May 2021, | |||
<https://www.mpegstandards.org/standards/ | <https://www.mpegstandards.org/standards/ | |||
Explorations/40/>. | Explorations/40/>. | |||
[W3C-Gamepad] | [W3C-Gamepad] | |||
W3C, "Gamepad Extensions", W3C Editor's Draft, 9 August | W3C, "Gamepad Extensions", W3C Editor's Draft, 9 August | |||
2024, <https://w3c.github.io/gamepad/extensions.html>. | 2024, <https://w3c.github.io/gamepad/extensions.html>. | |||
Latest version available at | Latest version available at | |||
<https://w3c.github.io/gamepad/extensions.html> | <https://w3c.github.io/gamepad/extensions.html> | |||
[W3C-Vibration] | [W3C-Vibration] | |||
W3C, "Vibration API (Second Edition)", W3C Recommendation, | W3C, "Vibration API (Second Edition)", W3C Recommendation, | |||
18 October 2016, | 18 October 2016, | |||
<https://www.w3.org/TR/2016/REC-vibration-20161018/>. | <https://www.w3.org/TR/2016/REC-vibration-20161018/>. | |||
Latest version available at | Latest version available at | |||
<https://www.w3.org/TR/vibration/> | <https://www.w3.org/TR/vibration/> | |||
[XRDevice-Sales] | ||||
Binarybox Studios, "Virtual reality market size 2023", | ||||
<https://www.linkedin.com/pulse/virtual-reality-market- | ||||
size-2023-binarybox-studios-dfbif/>. | ||||
Authors' Addresses | Authors' Addresses | |||
Yeshwant K. Muthusamy | Yeshwant K. Muthusamy | |||
600 Longwood Drive | 600 Longwood Drive | |||
Allen, Texas 75013 | Allen, Texas 75013 | |||
United States of America | United States of America | |||
Phone: +1 469-854-9836 | Phone: +1 469-854-9836 | |||
Email: yeshwant@yeshvik.com | Email: yeshwant@yeshvik.com | |||
Chris Ullrich | Chris Ullrich | |||
End of changes. 23 change blocks. | ||||
50 lines changed or deleted | 66 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |