ISO/IEC 23001-10:2020/DAM 2:2020(en)
ISO/IEC JTC 1/SC 29
Secretariat: JISC
Date: 2025-01-27
Information technology — MPEG systems technologies — Part 10: Carriage of timed metadata metrics of media in ISO base media file format — Amendment 2: Support for attenuation maps
© ISO/IEC 2020
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
Information technology — MPEG systems technologies — Part 10: Carriage of timed metadata metrics of media in ISO base media file format — Amendment 2: Support for attenuation maps
Clause 5
Add the following subclauses at the end of the clause:
5.4. Display Attenuation Map Metadata
A display attenuation map video is a 2D video where each frame conveys pixel-wise information that can be applied to a corresponding frame in the original video sequence through a processing operation to reduce the total energy consumption resulting from rendering the frames of that video.
5.4.1. Attenuation Map Information Box
An AttenuationMapInformationBox contains information about the characteristics of the display attenuation map data stream carried by the track in which it is signalled. It is identified by the 4CC ‘amid’. The information in the payload of the track may include pre-processing operations that should be applied to the samples of the attenuation map sample as well as other information that may distinguish one display attenuation map track from another for the same content, which enables a player to select the most suitable track based on its energy reduction strategy.
5.4.1.1. Syntax
aligned(8) class AMIApproximationModel() {
bit(4) reserved = 0;
unsigned int(4) ami_map_approx_model;
}
aligned(8) class AMIWindowInfo() {
unsigned int(8) ami_window_x;
unsigned int(8) ami_window_y;
unsigned int(8) ami_window_width;
unsigned int(8) ami_window_height;
}
aligned(8) class AMIVideoQualityInfo() {
bit(5) reserved = 0;
unsigned int(3) ami_quality_metric;
unsigned int(8) ami_quality_reduction;
}
aligned(8) class AMIPreprocessingInfo() {
bit(6) reserved = 0;
unsigned int(2) ami_preprocessing_type;
unsigned int(8) ami_max_value;
unsigned int(8) ami_preprocessing_scale;
}
aligned(8) class AttenuationMapInformationBox() extends FullBox('amid', version = 0, flags) {
bit(3) reserved = 0;
unsigned int(1) ami_preprocessing_info_present_flag;
unsigned int(1) ami_approx_model_present_flag;
unsigned int(1) ami_window_info_present_flag;
unsigned int(1) ami_video_quality_info_present_flag;
unsigned int(5) ami_energy_reduction_rate;
unsigned int(4) ami_display_model;
unsigned int(4) ami_attenuation_use_idc;
unsigned int(4) ami_attenuation_component_idc;
if (ami_preprocessing_info_present_flag) {
AMIPreprocessingInfo();
}
if (ami_approx_model_present_flag) {
AMIApproximationModel();
}
if (ami_window_info_present_flag) {
AMIWindowInfo();
}
if (ami_video_quality_info_present_flag) {
AMIVideoQualityInfo();
}
}
5.4.1.2. Semantics
The semantics of the fields defined in AttenuationMapInformationBox are as follows:
ami_preprocessing_info_present_flag is a flag indicating whether preprocessing information is present. Value 1 indicates that the box contains preprocessing information.
ami_approx_model_present_flag is a flag indicating whether approximation model information is present. Value 1 indicates that the box contains approximation model information.
ami_window_info_present_flag is a flag indicating whether window information is present. Value 1 indicates that the box contains window information.
ami_video_quality_info_present_flag is a flag indicating whether video quality information is present. Value 1 indicates that the box contains video quality information.
ami_energy_reduction_rate indicates the expected energy saving rate (percentage) when the video is displayed after applying the attenuation map sample values on the sample values of the associated video.
ami_display_model indicates the display models on which the attenuation map sample values may be used. The semantics of the bits of this field are as described Table 1.
Table 1 — Semantics of the bits of the ami_display_model field
Bit number | Display Model |
0 | Transmissive pixel |
1 | Emissive pixel |
2 .. 3 | Reserved for future use |
ami_attenuation_use_idc indicates which operation should be used to apply the attenuation map sample values to the corresponding frame in the associated video before rendering the frame on the display. The semantics of the values assigned to this field are as described in Table 2.
Table 2 — Semantics of the values assigned to ami_attenuation_use_idc
Value | Description |
0 | The attenuation map sample values should be added to the video frame sample values. |
1 | The attenuation map sample values should be subtracted from the video frame sample values. |
2 | The video frame sample values should be multiplied by the attenuation map sample values. |
3 | The attenuation map sample values should be applied to the video frame according to a proprietary user defined process. |
ami_attenuation_component_idc indicates on which color component(s) of the associated video to apply the attenuation map using the operation defined by ami_attenuation_use_idc. It also specifies how many components the attenuation map has. The semantics of the values assigned to this field are as described in Table 3.
Table 3 — Semantics of the values assigned to ami_attenuation_component_idc
Value | Description |
0 | The attenuation map contains only one component, and this component should be applied to the luma component of the media video. |
1 | The attenuation map contains two components, and the first component should be applied to the luma component of the media video, and the second component should be applied to both chroma components of the media video. |
2 | The attenuation map contains only one component, and this component should be applied to the luma component and the chroma components of the media video. |
3 | The attenuation map contains only one component, and this component should be applied to the RGB components (after YUV to RGB conversion) of the media video. |
4 | The attenuation map contains three components and these components should be applied respectively to the luma and chroma components of the media video. |
5 | The attenuation map contains three components and these components should be applied, respectively, to the RGB components (after YUV to RGB conversion) of the media video. |
6 | The mapping between the components of the attenuation map and the components of the media video to which to apply the attenuation map corresponds to some proprietary user-defined process. |
7 .. 15 | Reserved for future use |
ami_preprocessing_type indicates which type of pre-processing interpolation model should be used to re-sample the attenuation map sample values at the same resolution as the associated video before applying it to the associated video frame. The semantics of the values assigned to this field are described in Table 4.
Table 4 — Semantics of the values assigned to ami_preprocessing_type
Value | Description |
0 | Bicubic interpolation. |
1 | Bilinear interpolation. |
2 | Lanczos interpolation. |
3 | Proprietary user-defined interpolation process. |
ami_max_value indicates the maximum value of the attenuation map. This value can be optionally used to further adjust the dynamic range of the encoded attenuation map in the scaling process.
ami_preprocessing_scale indicates which scaling should be applied to obtain the attenuation map sample values before applying them on the sample values of the associated video. The semantics of the values assigned to this field are described in Table 5.
Table 5 — Semantics of the values assigned to ami_preprocessing_scale
Value | Description |
0 | A scaling of 1/255 should be applied. |
1 | A proprietary user-defined scaling operation is applied. |
2..7 | Reserved for future use. |
ami_map_approx_model specifies the model used to extrapolate the attenuation map with individual energy reduction rate to another attenuation map with a different energy reduction rate. The semantics of the values assigned to this field are described in Table 6:
Table 6 — Semantics of the values assigned to ami_map_approximation_model
Value | Description |
0 | Extrapolation to another target energy reduction rate is to be applied through a linear scaling of the attenuation map sample values given its ami_energy_reduction_rate value and the target energy reduction rate. |
1 | Extrapolation to another target energy reduction rate is to be applied through a proprietary user-defined process. |
2..3 | Reserved for future use |
ami_window_x indicates the x-coordinate of the top-left corner of the bounding window defining a region of the associated media video to apply the attenuation map carried by the display attenuation map track to.
ami_window_y indicates the y-coordinate of the top-left corner of the bounding window defining a region of the associated media video to apply the attenuation map carried by the display attenuation map track to.
ami_window_width indicates the width, in number of pixels, of the bounding window defining a region of the associated media video to apply the attenuation map carried by the display attenuation map track to.
ami_window_height indicates the height, in number of pixels, of the bounding window defining a region of the associated media video to apply the attenuation map carried by the display attenuation map track to.
ami_quality_metric indicates the type of the objective quality metric used for the measured quality reduction value resulting from applying the attenuation map to the video content and assigned to the ami_quality_reduction field. The semantics of the values assigned to this field are described in Table 7.
Table 7 — Semantics of the values assigned to ami_quality_metric
Value | Quality Metric |
0 | PSNR |
1 | SSIM |
2 | wPSNR |
3 | WS-PSNR |
4 | User-defined |
ami_quality_reduction specifies the percentage of quality reduction in the media video as a result of applying the attenuation map to it.
5.4.2. Display attenuation map tracks
A display attenuation map track is a restricted video track with the sample entry type ‘resv’. The original sample entry type, which is based on the video codec used for encoding the stream, is stored within the OriginalFormatBox in the RestrictedSchemeInfoBox. The scheme_type field in SchemeTypeBox shall be set to 'gmat', indicating an attenuation map restricted scheme. The SchemeInformationBox shall include an AttenuationMapInformationBox, as defined in the previous section. In the track header, the track_in_movie flag shall be set to 0 to indicate that this track should not be presented alone.
5.4.2.1. Association with Video Tracks
A TrackReferenceTypeBox with the reference type 'gmam' shall be added to a TrackReferenceBox within the TrackBox of the track carrying the attenuation map data. The TrackReferenceTypeBox shall contain an array of track_IDs designating the identifiers for the referenced video tracks.
5.4.2.2. Sample Format
Each sample in an attenuation map track carries a sequence of video NAL units corresponding to the encoded attenuation map for a single access unit (AU) in the associated video track(s) and are encapsulated based on the sample formats defined in ISO/IEC 14496-15 エラー! 参照元が見つかりません。.
5.4.2.3. Signaling Alternative Attenuation Map Tracks
Multiple display attenuation map tracks may be present in a ISOBMFF file. When more than one version of an attenuation map is available for the same video track in the ISOBMFF container (e.g., different energy consumption levels, different video qualities, etc.), each version is carried in a separate display attenuation map track.
Display attenuation map tracks that are alternatives of each other shall be signalled as alternatives of each other by either setting the alternate_group field in their respective TrackHeaderBox(es) to the same value or grouping the tracks together with an EntityToGroupBox with grouping_type equal to 'altr', indicating that the attenuation map tracks which are mapped to this grouping are alternatives to each other, and only one of them should be processed.