rfc9695.original | rfc9695.txt | |||
---|---|---|---|---|
MEDIAMAN Y. K. Muthusamy | Internet Engineering Task Force (IETF) Y. K. Muthusamy | |||
Internet-Draft | Request for Comments: 9695 | |||
Intended status: Standards Track C. Ullrich | Category: Standards Track C. Ullrich | |||
Expires: 28 January 2024 27 July 2023 | ISSN: 2070-1721 December 2024 | |||
The 'haptics' Top-level Media Type | The 'haptics' Top-level Media Type | |||
draft-ietf-mediaman-haptics-05 | ||||
Abstract | Abstract | |||
This memo serves to register and document the 'haptics' top-level | This memo registers and documents the 'haptics' top-level media type, | |||
media type, under which subtypes for representation formats for | under which subtypes for representation formats for haptics may be | |||
haptics may be registered. This document also serves as a | registered. This document also serves as a registration for a set of | |||
registration for a set of subtypes, which are representative of some | subtypes, which are representative of some existing subtypes already | |||
existing subtypes already in use. | in use. | |||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This is an Internet Standards Track document. | |||
provisions of BCP 78 and BCP 79. | ||||
Internet-Drafts are working documents of the Internet Engineering | ||||
Task Force (IETF). Note that other groups may also distribute | ||||
working documents as Internet-Drafts. The list of current Internet- | ||||
Drafts is at https://datatracker.ietf.org/drafts/current/. | ||||
Internet-Drafts are draft documents valid for a maximum of six months | This document is a product of the Internet Engineering Task Force | |||
and may be updated, replaced, or obsoleted by other documents at any | (IETF). It represents the consensus of the IETF community. It has | |||
time. It is inappropriate to use Internet-Drafts as reference | received public review and has been approved for publication by the | |||
material or to cite them other than as "work in progress." | Internet Engineering Steering Group (IESG). Further information on | |||
Internet Standards is available in Section 2 of RFC 7841. | ||||
This Internet-Draft will expire on 28 January 2024. | Information about the current status of this document, any errata, | |||
and how to provide feedback on it may be obtained at | ||||
https://www.rfc-editor.org/info/rfc9695. | ||||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2023 IETF Trust and the persons identified as the | Copyright (c) 2024 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 (https://trustee.ietf.org/ | Provisions Relating to IETF Documents | |||
license-info) in effect on the date of publication of this document. | (https://trustee.ietf.org/license-info) in effect on the date of | |||
Please review these documents carefully, as they describe your rights | publication of this document. Please review these documents | |||
and restrictions with respect to this document. Code Components | carefully, as they describe your rights and restrictions with respect | |||
extracted from this document must include Revised BSD License text as | to this document. Code Components extracted from this document must | |||
described in Section 4.e of the Trust Legal Provisions and are | include Revised BSD License text as described in Section 4.e of the | |||
provided without warranty as described in the Revised BSD License. | Trust Legal Provisions and are provided without warranty as described | |||
in the Revised BSD License. | ||||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction | |||
1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 | 1.1. Terminology | |||
2. Background and Justification . . . . . . . . . . . . . . . . 3 | 2. Background and Justification | |||
2.1. MPEG ISOBMFF . . . . . . . . . . . . . . . . . . . . . . 3 | 2.1. MPEG ISOBMFF | |||
2.2. Haptic Sub-modalities . . . . . . . . . . . . . . . . . . 4 | 2.2. Haptic Sub-Modalities | |||
2.3. Another Human Sense . . . . . . . . . . . . . . . . . . . 4 | 2.3. Another Human Sense | |||
2.4. Commercial Uptake . . . . . . . . . . . . . . . . . . . . 4 | 2.4. Commercial Uptake | |||
2.5. Haptic Data Formats in Use . . . . . . . . . . . . . . . 5 | 2.5. Haptic Data Formats in Use | |||
2.6. Haptic Subtypes (envisioned standards) . . . . . . . . . 6 | 2.6. Haptic Subtypes (Envisioned Standards) | |||
2.7. 'application' top-level type not suitable . . . . . . . . 6 | 2.7. 'application' Top-Level Type Not Suitable | |||
3. Security Considerations . . . . . . . . . . . . . . . . . . . 7 | 3. Security Considerations | |||
4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 | 4. IANA Considerations | |||
4.1. Definition and Encoding . . . . . . . . . . . . . . . . . 8 | 4.1. Definition and Encoding | |||
4.2. Registration Procedure . . . . . . . . . . . . . . . . . 8 | 4.2. Registration Procedure | |||
4.3. Subtype Registrations . . . . . . . . . . . . . . . . . . 8 | 4.3. Subtype Registrations | |||
4.3.1. IVS Haptics Type . . . . . . . . . . . . . . . . . . 8 | 4.3.1. IVS Haptics Type | |||
4.3.2. HJIF Haptics Type . . . . . . . . . . . . . . . . . . 9 | 4.3.2. HJIF Haptics Type | |||
4.3.3. HMPG Haptics Type . . . . . . . . . . . . . . . . . . 10 | 4.3.3. HMPG Haptics Type | |||
5. Normative References . . . . . . . . . . . . . . . . . . . . 11 | 5. Normative References | |||
6. Informative References . . . . . . . . . . . . . . . . . . . 12 | 6. Informative References | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 13 | Authors' Addresses | |||
1. Introduction | 1. Introduction | |||
The term 'haptics' refers to the generation of touch-related | The term 'haptics' refers to the generation of touch-related | |||
sensations in a device or interface. Haptics is widely used in | sensations in a device or interface. Haptics is widely used in | |||
consumer devices in order to provide touch-based feedback to users. | consumer devices in order to provide touch-based feedback to users. | |||
The most common use of haptics is in mobile devices, where it is used | The most common use of haptics is in mobile devices, where it is used | |||
to provide feedback to users interacting with the touchscreen, e.g., | to provide feedback to users interacting with the touchscreen, e.g., | |||
typing on a virtual keyboard. Haptic technologies are unlike audio | typing on a virtual keyboard. Haptic technologies are unlike audio | |||
and visual enabling technologies in the sense that they require some | and visual enabling technologies in the sense that they require some | |||
form of actuation in order to create a tactile sensation. For mobile | form of actuation in order to create a tactile sensation. For mobile | |||
phones and game controllers, these actuators are typically small | phones and game controllers, these actuators are typically small | |||
vibrating motors. For large touchscreens in vehicles, these | vibrating motors. For large touchscreens in vehicles, these | |||
actuators can be specialized piezoelectric materials. Haptic | actuators can be specialized piezoelectric materials. Haptic | |||
capabilities are found in nearly every modern smartphone and 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 [TOPLEVEL]. 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 | 1.1. Terminology | |||
The keywords MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, | The keywords MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, | |||
SHOULD,SHOULD NOT, RECOMMENDED, NOT RECOMMENDED, MAY, and OPTIONAL in | SHOULD,SHOULD NOT, RECOMMENDED, NOT RECOMMENDED, MAY, and OPTIONAL in | |||
this document are to be interpreted as described in BCP 14 [RFC2119] | this document are to be interpreted as described in BCP 14 [RFC2119] | |||
[RFC8174] when, and only when, they appear in all capitals, as shown | [RFC8174] when, and only when, they appear in all capitals, as shown | |||
here. | 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 | |||
and video playback [ISOBMFF-IS]. Haptic signals are also part of | and video playback [ISOBMFF-IS]. Haptic signals are also part of | |||
media streams that use RTP, such as those for streaming games, XR, | media streams that use RTP, such as those for streaming games, XR, | |||
and wearables. | and wearables. | |||
2.1. MPEG ISOBMFF | 2.1. MPEG ISOBMFF | |||
Historically, there has not been a registration of formats for | Historically, there has not been a registration of formats for | |||
haptics. However, haptics was proposed as a first-order media type | haptics. However, haptics was proposed as a first-order media type | |||
(at the same level as audio and video) in ISOBMFF in April 2020. The | (at the same level as audio and video) in ISOBMFF in April 2020. The | |||
proposal has since progressed to International Standard, and was | proposal has since progressed to International Standard, and was | |||
published in January 2022 [ISOBMFF-IS]. Haptics is officially part | published in January 2022 [ISOBMFF-IS]. Haptics is officially part | |||
of the ISO/IEC 14496-12 (ISOBMFF) standard, 7th Edition. Given this | of the ISO/IEC 14496-12 (ISOBMFF) standard, 7th Edition. Given this | |||
development, a strong case can be made for haptics to be added to the | development, a strong case can be made for haptics to be added to the | |||
list of top-level media types recognized by the IETF. | list of top-level media types recognized by the IETF. | |||
We envision the following designations for haptics in mp4 files, once | We envision the following designations for haptics in mp4 files, once | |||
the top-level type 'haptics' is registered: | the top-level type 'haptics' is registered: | |||
1. 'haptics/mp4' - mp4 files with just haptic tracks and no audio or | * 'haptics/mp4' - mp4 files with just haptic tracks and no audio or | |||
video in them (e.g., streaming games, haptics files for haptic | video in them (e.g., streaming games, haptics files for haptic | |||
vests, belts, gloves, etc.) | vests, belts, gloves, etc.) | |||
2. 'video/mp4' - mp4 files with video, audio, and haptics (to ensure | * 'video/mp4' - mp4 files with video, audio, and haptics (to ensure | |||
consistency with existing mp4 files with video content) | consistency with existing mp4 files with video content) | |||
3. 'audio/mp4' - mp4 files with audio and haptics (to ensure | * 'audio/mp4' - mp4 files with audio and haptics (to ensure | |||
consistency with existing mp4 files with audio content without | consistency with existing mp4 files with audio content without any | |||
any video) | video) | |||
2.2. Haptic Sub-modalities | 2.2. Haptic Sub-Modalities | |||
There are multiple sub-modalities of haptics: | There are multiple sub-modalities of haptics: | |||
* Vibrotactile (touch, vibration) | * Vibrotactile (touch, vibration) | |||
* Kinesthetic (force feedback) | * Kinesthetic (force feedback) | |||
* Surface (surface friction) | * Surface (surface friction) | |||
* Spatial, non-contact (ultrasound) | * Spatial, non-contact (ultrasound) | |||
skipping to change at page 4, line 28 ¶ | skipping to change at line 163 ¶ | |||
Therefore, designating 'haptics' as a top-level media type enables | Therefore, designating 'haptics' as a top-level media type enables | |||
the definition of data formats pertaining to these sub-modalities in | the definition of data formats pertaining to these sub-modalities in | |||
a more streamlined manner. This would not be possible if 'haptics' | a more streamlined manner. This would not be possible if 'haptics' | |||
were to be placed under other top-level types like 'audio', 'video', | were to be placed under other top-level types like 'audio', 'video', | |||
or 'application'. | or 'application'. | |||
2.3. Another Human Sense | 2.3. Another Human Sense | |||
The top-level media type 'audio' pertains to the human sense of | The top-level media type 'audio' pertains to the human sense of | |||
hearing, the top-level media type 'video' pertains to the human sense | hearing; the top-level media type 'video' pertains to the human sense | |||
of seeing, so it only makes sense for the (equally important) human | of seeing; so it only makes sense for the (equally important) human | |||
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 (206+ million units sold in 2020): native support for | |||
haptic encoded data | haptic-encoded data | |||
* Android (1.38+ billion units sold in 2020): API support of haptic | * Android (1.38+ billion units sold in 2020): API support of haptic | |||
buffers | 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 (39+ million units sold in 2019): MS Xbox, Sony | |||
PlayStation, Nintendo Switch, etc. | PlayStation, Nintendo Switch, etc. | |||
skipping to change at page 5, line 48 ¶ | skipping to change at line 231 ¶ | |||
II, ROG Phone 3) that are sold worldwide | II, ROG Phone 3) that are sold worldwide | |||
* 'hapt': The HAPT haptic data format is currently a vendor-specific | * 'hapt': The HAPT haptic data format is currently a vendor-specific | |||
format that is in use: | format that is in use: | |||
- In mobile haptic advertising (for W3C devices) | - In mobile haptic advertising (for W3C devices) | |||
- The following Japanese game developers use the HAPT format as | - The following Japanese game developers use the HAPT format as | |||
part of Immersion's TouchSense SDK: | part of Immersion's TouchSense SDK: | |||
o KLAB: https://www.klab.com/en/ (https://www.klab.com/en/) | o KLAB: https://www.klab.com/en/ | |||
o Craft&Meister: http://www.crafts-meister.co.jp/pc/ | o Craft&Meister: http://www.crafts-meister.co.jp/pc/ | |||
company_en.html (http://www.crafts-meister.co.jp/pc/ | company_en.html | |||
company_en.html) | ||||
- Tencent is using the TouchSense SDK for their popular social | - Tencent is using the TouchSense SDK for their popular social | |||
media application QQ and live streaming application NOW: | media application QQ and live streaming application NOW: | |||
Immersion-Announces-Tencent-Licenses-TouchSense-Technology- | Immersion-Announces-Tencent-Licenses-TouchSense-Technology- | |||
Deliver | Deliver | |||
(https://www.businesswire.com/news/home/20171026006443/en/ | (https://www.businesswire.com/news/home/20171026006443/en/ | |||
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 FourCC codes for them. These | haptic coding formats with proposed FourCCs (four-character codes) | |||
codes are not registered yet, but the plan is indeed to standardize | for them. These codes are not registered yet, but the plan is indeed | |||
these haptic coding formats in the near future. Once standardized, | to standardize these haptic coding formats in the near future. Once | |||
these types should also be registered as subtypes of the 'haptics' | standardized, these types should also be registered as subtypes of | |||
top-level media type: | 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 DIS 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 DIS 23090-31: Haptics coding [MPEG-Haptics-Coding] | |||
* IEEE P1918.1.1 vibrotactile coding standard [IEEE-P191811] being | * IEEE P1918.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 URLL 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 | |||
belong under any other media type. To reiterate, there are three | belong under any other media type. To reiterate, there are three | |||
main reasons why the 'haptics' media type does not fit under the | main reasons why the 'haptics' media type does not fit under the | |||
'application' top-level type: | 'application' top-level type: | |||
* haptics connects to a sensory system, touch/motion, directly, and | * haptics connects to a sensory system, touch/motion, directly, and | |||
is more specific than the abstract 'application' type, and | is more specific than the abstract 'application' type, and | |||
* 'application' has historically been used for applications, i.e., | * 'application' has historically been used for applications, i.e., | |||
skipping to change at page 7, line 25 ¶ | skipping to change at line 303 ¶ | |||
Haptics are interpreted data structures that represent collections of | Haptics are interpreted data structures that represent collections of | |||
different media rendering instructions intended to be decoded and | different media rendering instructions intended to be decoded and | |||
rendered on target device hardware. Haptic data can be represented | rendered on target device hardware. Haptic data can be represented | |||
as collections of signal data and/or descriptive text in XML/JSON or | as collections of signal data and/or descriptive text in XML/JSON or | |||
a similar format. Signal data is typically not executed by endpoint | a similar format. Signal data is typically not executed by endpoint | |||
processors and represents minimal security risk. Descriptive text is | processors and represents minimal security risk. Descriptive text is | |||
typically parsed and represented in memory using standard XML data | typically parsed and represented in memory using standard XML data | |||
structures. This data is utilized to construct one or more signals | structures. This data is utilized to construct one or more signals | |||
that are sent to the endpoint device hardware. | that are sent to the endpoint device hardware. | |||
Because of the media/rendering nature of the data path for haptic | Because of the media/rendering nature of the data path for haptic- | |||
coded data the security profile of haptic data is expected to be | coded data, the security profile of haptic data is expected to be | |||
largely consistent with the security profile of visual and audio | largely consistent with the security profile of visual and audio | |||
media data. | media data. | |||
As with any synthesized media data (audio, video, and haptics), there | As with any synthesized media data (audio, video, and haptics), there | |||
is a security risk associated with execution of commands based on the | is a security risk associated with execution of commands based on the | |||
descriptive encoding either through its inherent extensibility or | descriptive encoding either through its inherent extensibility or | |||
through the insertion of arbitrary executable data in the descriptive | through the insertion of arbitrary executable data in the descriptive | |||
format itself. Indeed, media rendering systems are normally | format itself. Indeed, media rendering systems are normally | |||
implemented with a mix of user and kernel space execution since these | implemented with a mix of user and kernel space execution since these | |||
media must ultimately make their way to a hardware system. In | media must ultimately make their way to a hardware system. In | |||
skipping to change at page 8, line 11 ¶ | skipping to change at line 338 ¶ | |||
properly controlled or inadvertently exceed safety levels. | properly controlled or inadvertently exceed safety levels. | |||
Implementors need to ensure that adequate measures are taken to | Implementors need to ensure that adequate measures are taken to | |||
prevent such scenarios. | prevent such scenarios. | |||
These security considerations apply to the subtype registrations | These security considerations apply to the subtype registrations | |||
described in this document as well as all future haptics | described in this document as well as all future haptics | |||
registrations. | registrations. | |||
4. IANA Considerations | 4. IANA Considerations | |||
This specification registers a new top-level type, 'haptics', and | IANA has registered 'haptics' in the "Top-Level Media Types" registry | |||
requests IANA to add it to the registry of top-level types specified | defined in [RFC9694] and registered several subtypes. IANA has also | |||
in [TOPLEVEL], adds it as an alternative value of "Type Name" in the | added 'haptics' as an alternative value of "Type Name" in the media | |||
media types registration form [Media-Type-Registration], and | types registration form [Media-Type-Reg]. | |||
registers several subtypes for it. | ||||
4.1. Definition and Encoding | 4.1. Definition and Encoding | |||
'haptics' as the primary media content type indicates that the | 'haptics' is the primary media content type that indicates the | |||
content identified by it requires a certain haptics subsystem such as | content identified by it requires a certain haptics subsystem such as | |||
low-level haptics APIs, which in turn will require hardware | low-level haptics APIs, which in turn will require hardware | |||
capabilities such as one or more actuators to render the haptics | capabilities such as one or more actuators to render the haptics | |||
media. The 'haptics' media type does not provide any specific | media. The 'haptics' media type does not provide any specific | |||
information about the underlying data format and how the haptics | information about the underlying data format and how the haptics | |||
information should be interpreted -- the subtypes defined within a | information should be interpreted -- the subtypes defined within a | |||
'haptics' tree name the specific haptic formats. Unrecognized | 'haptics' tree name the specific haptic formats. Unrecognized | |||
subtypes of 'haptics' should be treated as 'application/octet- | subtypes of 'haptics' should be treated as 'application/octet- | |||
stream'. Implementations may still pass unrecognized subtypes to the | stream'. Implementations may still pass unrecognized subtypes to the | |||
haptics subsystem and associated rendering hardware. | haptics subsystem and associated rendering hardware. | |||
4.2. Registration Procedure | 4.2. Registration Procedure | |||
New haptics formats should be registered using the online form | New haptics formats should be requested using the Application for a | |||
[Media-Type-Registration]. [RFC6838] should be consulted on | Media Type online form [Media-Type-Reg]. [RFC6838] should be | |||
registration procedures. In particular, the haptics specification | consulted on registration procedures. In particular, the haptics | |||
should preferably be freely available. | specification should preferably be freely available. | |||
Note that new subtypes may define parameters. If an implementation | Note that new subtypes may define parameters. If an implementation | |||
does not recognize a parameter sub-value in the comma- separated | does not recognize a parameter sub-value in the comma-separated list, | |||
list, it should ignore the sub-value and continue processing the | it should ignore the sub-value and continue processing the other sub- | |||
other sub-values in the list. | values in the list. | |||
4.3. Subtype Registrations | 4.3. Subtype Registrations | |||
In this section, the initial entries under the top-level 'haptics' | In this section, the initial entries under the top-level 'haptics' | |||
media type are specified. They also serve as examples for future | media type are specified. They also serve as examples for future | |||
registrations. | registrations. | |||
4.3.1. IVS Haptics Type | 4.3.1. IVS Haptics Type | |||
Type name: haptics | Type name: haptics | |||
Subtype name: ivs | ||||
Required parameters: N/A | Subtype name: ivs | |||
Optional parameters: N/A | Required parameters: N/A | |||
Encoding considerations: 8bit if UTF-8; binary if UTF-16 or UTF-32 | Optional parameters: N/A | |||
Interoperability considerations: The IVS format is a device- | Encoding considerations: 8bit if UTF-8; binary if UTF-16 or UTF-32 | |||
independent haptic effect coding based on the XML format. It is | ||||
designed to enable interoperability between distinct physical | ||||
endpoints. Not all devices may be able to render all effects present | ||||
in an IVS file. | ||||
Security considerations: See Section 3 of RFC XXXX. | Interoperability considerations: The IVS format is a device- | |||
independent haptic effect coding based on the XML format. It is | ||||
designed to enable interoperability between distinct physical | ||||
endpoints. Not all devices may be able to render all effects | ||||
present in an IVS file. | ||||
[Note to RFC Editor: Please replace XXXX with the number of this | Security considerations: See Section 3 of RFC 9695. | |||
RFC.] | ||||
Published specification: ISO/IEC JTC 1/SC 29/WG 2 N 0072 "Encoder | Published specification: ISO/IEC JTC 1/SC 29/WG 2 N0072 "Encoder | |||
Input Format for MPEG Haptics" [MPEG-Haptics-Encoder]. | Input Format for MPEG Haptics" [MPEG-Haptics-Encoder]. | |||
Applications that use this media type: All applications that are able | Applications that use this media type: All applications that are | |||
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 IVS files: | ||||
.ivs | ||||
Macintosh file type code(s): (no code specified) | ||||
Macintosh Universal Type Identifier code: N/A | ||||
Fragment Identifier: N/A | ||||
Deprecated Alias: N/A | ||||
* File extension(s): Haptic file extensions used for IVS files: .ivs | Person & email address to contact for further information: | |||
Yeshwant Muthusamy(yeshwant@yeshvik.com) | ||||
* Macintosh file type code(s): (no code specified) | ||||
* Macintosh Universal Type Identifier code: N/A | ||||
* Fragment Identifier: N/A | ||||
* Deprecated Alias: N/A | ||||
Person & email address to contact for further information: 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) | |||
4.3.2. HJIF Haptics Type | 4.3.2. HJIF Haptics Type | |||
Type name: haptics | Type name: haptics | |||
Subtype name: hjif | Subtype name: hjif | |||
Required parameters: N/A | ||||
Optional parameters: N/A | Required parameters: N/A | |||
Encoding considerations: 8bit if UTF-8; binary if UTF-16 or UTF-32 | Optional parameters: N/A | |||
Interoperability considerations: The HJIF format is a human-readable | Encoding considerations: 8bit if UTF-8; binary if UTF-16 or UTF-32 | |||
haptic effect coding based on the JSON format. It is designed as an | ||||
interchange format for temporal and spatial haptic effects. The | ||||
haptic effects may target specific parts of the human body and may be | ||||
associated with a reference device description allowing haptic | ||||
rendering software to adapt the effects to available hardware. | ||||
Security considerations: See Section 3 of RFC XXXX. | Interoperability considerations: The HJIF format is a human-readable | |||
haptic effect coding based on the JSON format. It is designed as | ||||
an interchange format for temporal and spatial haptic effects. | ||||
The haptic effects may target specific parts of the human body and | ||||
may be associated with a reference device description allowing | ||||
haptic rendering software to adapt the effects to available | ||||
hardware. | ||||
[Note to RFC Editor: Please replace XXXX with the number of this | Security considerations: See Section 3 of RFC 9695. | |||
RFC.] | ||||
Published specification: ISO/IEC DIS 23090-31: Haptics coding | Published specification: ISO/IEC DIS 23090-31: Haptics coding | |||
[MPEG-Haptics-Coding]. | [MPEG-Haptics-Coding]. | |||
Applications that use this media type: All applications that are able | Applications that use this media type: All applications that are | |||
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: | ||||
.hjif | ||||
Macintosh file type code(s): (no code specified) | ||||
Macintosh Universal Type Identifier code: N/A | ||||
Fragment Identifier: N/A | ||||
Deprecated Alias: N/A | ||||
* File extension(s): Haptic file extensions used for HJIF files: | Person & email address to contact for further information: | |||
.hjif | Yeshwant Muthusamy(yeshwant@yeshvik.com) | |||
* Macintosh file type code(s): (no code specified) | ||||
* Macintosh Universal Type Identifier code: N/A | ||||
* Fragment Identifier: N/A | ||||
* Deprecated Alias: N/A | ||||
Person & email address to contact for further information: 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) | |||
4.3.3. HMPG Haptics Type | 4.3.3. HMPG Haptics Type | |||
Type name: haptics | Type name: haptics | |||
Subtype name: hmpg | Subtype name: hmpg | |||
Required parameters: N/A | ||||
Optional parameters: N/A | Required parameters: N/A | |||
Encoding considerations: binary | Optional parameters: N/A | |||
Interoperability considerations: The HMPG format is a streamable | Encoding considerations: binary | |||
binary haptic effect coding. It is designed to enable efficient | ||||
coding of temporal and spatial haptic effects. The haptic effects | ||||
may target specific parts of the human body and may be associated | ||||
with a reference device description allowing haptic rendering | ||||
software to adapt the effects to available hardware. | ||||
Security considerations: See Section 3 of RFC XXXX. | Interoperability considerations: The HMPG format is a streamable | |||
binary haptic effect coding. It is designed to enable efficient | ||||
coding of temporal and spatial haptic effects. The haptic effects | ||||
may target specific parts of the human body and may be associated | ||||
with a reference device description allowing haptic rendering | ||||
software to adapt the effects to available hardware. | ||||
[Note to RFC Editor: Please replace XXXX with the number of this | Security considerations: See Section 3 of RFC 9695. | |||
RFC.] | ||||
Published specification: ISO/IEC DIS 23090-31: Haptics coding | Published specification: ISO/IEC DIS 23090-31: Haptics coding | |||
[MPEG-Haptics-Coding]. | [MPEG-Haptics-Coding]. | |||
Applications that use this media type: All applications that are able | Applications that use this media type: All applications that are | |||
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: | ||||
.hmpg | ||||
Macintosh file type code(s): (no code specified) | ||||
Macintosh Universal Type Identifier code: N/A | ||||
Fragment Identifier: N/A | ||||
Deprecated Alias: N/A | ||||
* File extension(s): Haptic file extensions used for HMPG files: | Person & email address to contact for further information: | |||
.hmpg | Yeshwant Muthusamy(yeshwant@yeshvik.com) | |||
* Macintosh file type code(s): (no code specified) | ||||
* Macintosh Universal Type Identifier code: N/A | ||||
* Fragment Identifier: N/A | ||||
* Deprecated Alias: N/A | ||||
Person & email address to contact for further information: 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 | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
<https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
[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>. | ||||
[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>. | |||
[TOPLEVEL] Dürst, M. J., "Guidelines for the Definition of New Top- | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
Level Media Types", Work in Progress, Internet-Draft, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
draft-ietf-mediaman-toplevel-03, 26 March 2023, | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
<https://datatracker.ietf.org/doc/draft-ietf-mediaman- | ||||
toplevel/03/>. | ||||
6. Informative References | ||||
[ISOBMFF-IS] | [RFC9694] Dürst, M., "Guidelines for the Definition of New Top-Level | |||
"ISO/IEC 14496-12 (7th Edition) Information technology — | Media Types", RFC 9694, DOI 10.17487/RFC9694, December | |||
Coding of audio-visual objects — Part 12: ISO base media | 2024, <https://www.rfc-editor.org/info/rfc9694>. | |||
file format", <https://www.iso.org/standard/83102.html>. | ||||
[MPEG-Haptics-Encoder] | 6. Informative References | |||
"Encoder Input Format for MPEG Haptics", | ||||
<https://www.mpegstandards.org/standards/ | ||||
Explorations/40/>. | ||||
[AHAP] "Apple Haptic Audio Pattern", | [AHAP] Apple Inc., "Representing haptic patterns in AHAP files", | |||
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>. | |||
[IEEE-191811] | ||||
IEEE, "IEEE Draft Standard for Haptic Codecs for the | ||||
Tactile Internet", IEEE P1918.1.1/D3, March 2023, | ||||
<https://ieeexplore.ieee.org/document/10042202>. | ||||
[ISOBMFF-IS] | ||||
ISO/IEC, "Information technology - Coding of audio-visual | ||||
objects - Part 12: ISO base media file format", 7th | ||||
Edition, ISO/IEC 14496-12:2022, January 2022, | ||||
<https://www.iso.org/standard/83102.html>. | ||||
[Media-Type-Reg] | ||||
IANA, "Application for a Media Type", | ||||
<http://www.iana.org/form/media-types>. | ||||
[MPEG-Haptics-Coding] | [MPEG-Haptics-Coding] | |||
"ISO/IEC DIS 23090-31 Information Technology — Coded | ISO/IEC, "Information Technology -- Coded representation | |||
representation of immersive media — Part 31: Haptics | of immersive media -- Part 31: Haptics coding", Final | |||
coding", <https://www.iso.org/standard/86122.html>. | Draft International Standard, ISO/IEC FDIS 23090-31, | |||
<https://www.iso.org/standard/86122.html>. | ||||
[W3C-Vibration] | [MPEG-Haptics-Encoder] | |||
"W3C Vibration API (Second Edition)", | MPEG, "Encoder Input Format for Haptics", MPEG 134 Meeting | |||
<https://www.w3.org/TR/vibration/>. | Document, 15 May 2021, | |||
<https://www.mpegstandards.org/standards/ | ||||
Explorations/40/>. | ||||
[W3C-Gamepad] | [W3C-Gamepad] | |||
"W3C Gamepad Extensions", | W3C, "Gamepad Extensions", W3C Editor's Draft, 9 August | |||
<https://w3c.github.io/gamepad/extensions.html>. | 2024, <https://w3c.github.io/gamepad/extensions.html>. | |||
Latest version available at | ||||
[IEEE-P191811] | <https://w3c.github.io/gamepad/extensions.html> | |||
"P1918.1.1 - Haptic Codecs for the Tactile Internet", | ||||
<https://standards.ieee.org/project/1918_1_1.html>. | ||||
[Media-Type-Registration] | [W3C-Vibration] | |||
"IANA, Application for a Media Type", | W3C, "Vibration API (Second Edition)", W3C Recommendation, | |||
<http://www.iana.org/form/media-types>. | 18 October 2016, | |||
<https://www.w3.org/TR/2016/REC-vibration-20161018/>. | ||||
Latest version available at | ||||
<https://www.w3.org/TR/vibration/> | ||||
Authors' Addresses | Authors' Addresses | |||
Yeshwant K. Muthusamy | Yeshwant K. Muthusamy | |||
600 Longwood Drive | 600 Longwood Drive | |||
Allen, TX 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 | |||
311 Court Ave | 311 Court Ave | |||
Ventura, CA 93003 | Ventura, California 93003 | |||
United States of America | United States of America | |||
Phone: +1 805-320-0774 | Phone: +1 805-320-0774 | |||
Email: chrisullrich@gmail.com | Email: chrisullrich@gmail.com | |||
End of changes. 78 change blocks. | ||||
228 lines changed or deleted | 212 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |