ISO/IEC 23090-31:2025
(Main)Information technology — Coded representation of immersive media — Part 31: Haptics coding
Information technology — Coded representation of immersive media — Part 31: Haptics coding
This document specifies technology that supports the efficient transmission and rendering of haptic signals for the playback of immersive experiences in a wide variety of scenarios. The document describes in detail a robust coded representation of haptic media covering the two most popular haptic perceptions leveraged by devices today: vibrotactile and kinaesthetic. Support for other haptic modalities has also been integrated. The coded representation allows to encode both descriptive and quantized data in a human readable JSON format used for exchange purposes, and a compressed bitstream version, optimised for memory usage and distribution purposes. This approach also allows to meet the expectations for compatibility with both descriptive and quantized formats, as required by the market, as well as interoperability between devices for 3D immersive experiences, mobile applications and other distribution purposes. Information provided in this document related to the decoder is normative, while information related to the encoder and renderer is informative.
Technologies de l'information — Représentation codée de média immersifs — Partie 31: Codage haptique
General Information
Standards Content (Sample)
International
Standard
ISO/IEC 23090-31
First edition
Information technology — Coded
2025-01
representation of immersive media —
Part 31:
Haptics coding
Technologies de l'information — Représentation codée de média
immersifs —
Partie 31: Codage haptique
Reference number
© ISO/IEC 2025
All rights reserved. Unless otherwise specified, or required in the context of its implementation, no part of this publication may
be reproduced or utilized otherwise in any form or by any means, electronic or mechanical, including photocopying, or posting on
the internet or an intranet, without prior written permission. Permission can be requested from either ISO at the address below
or ISO’s member body in the country of the requester.
ISO copyright office
CP 401 • Ch. de Blandonnet 8
CH-1214 Vernier, Geneva
Phone: +41 22 749 01 11
Email: copyright@iso.org
Website: www.iso.org
Published in Switzerland
© ISO/IEC 2025 – All rights reserved
ii
Contents Page
Foreword .v
Introduction .vi
1 Scope . 1
2 Normative references . 1
3 Terms, definitions and abbreviated terms . 1
3.1 Terms and definitions .1
3.2 Abbreviated terms .3
3.3 Mnemonics .4
4 Overview and architecture . 4
4.1 Overview .4
4.2 Codec architecture .4
5 Data model . 5
5.1 Data structure overview .5
5.2 Haptic experience .7
5.3 Haptic avatar .8
5.4 Haptic perception .9
5.5 Haptic device .11
5.6 Haptic channel . 12
5.6.1 General . 12
5.6.2 Custom mesh avatar . 13
5.6.3 Body part mask .14
5.6.4 Semantic body part and actuator mapping . 15
5.7 Haptic band .19
5.8 Haptic effect . 23
5.9 Haptic keyframe . 26
6 Interchange file format .27
6.1 Overview .27
6.2 HJIF Specifications . 28
6.2.1 MPEG_haptics . 28
6.2.2 MPEG_haptics.avatar . 29
6.2.3 MPEG_haptics.perception. 30
6.2.4 MPEG_haptics.sync .32
6.2.5 MPEG_haptics.reference_device .32
6.2.6 MPEG_haptics.channel . 33
6.2.7 MPEG_haptics.vector . 34
6.2.8 MPEG_haptics.band . 35
6.2.9 MPEG_haptics.effect . 36
6.2.10 MPEG_haptics.keyframe .37
7 MPEG-I haptic stream (MIHS) format .37
7.1 Overview .37
7.1.1 General .37
7.1.2 Initialization units . 39
7.1.3 Temporal and spatial units. 39
7.1.4 MIHS packets .41
7.2 Syntax and semantics .41
7.2.1 mpegiHapticStream() .41
7.2.2 mpegiHapticUnit() .42
7.2.3 mpegiHapticPacket().43
7.2.4 MIHSPacketPayload() . 44
7.2.5 readMetadataInitializationTiming() .45
7.2.6 readMetadataTiming() . 46
7.2.7 readMetadataExperience().47
© ISO/IEC 2025 – All rights reserved
iii
7.2.8 readAvatar() . 48
7.2.9 readMetadataPerception() . 48
7.2.10 readReferenceDevice() . 50
7.2.11 readMetadataChannel() . 53
7.2.12 readMetadataBand() . 55
7.2.13 readLibrary() . 56
7.2.14 readLibraryEffect() .57
7.2.15 readData() . 58
7.2.16 readEffect().59
7.2.17 readEffectBasis() . 63
7.2.18 readKeyframe() . 64
7.2.19 readTransientKeyframe() . 64
7.2.20 readCurveKeyframe() . 64
7.2.21 readVectorialKeyFrame() . 65
7.2.22 readWaveletEffect() . 65
7.2.23 readCRC() .
...
Questions, Comments and Discussion
Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.