1、INCITS/ISO/IEC 14496-1-2001 AMENDMENT 4-2003 (ISO/IEC 14496-1:2001/FDAM 4:2003, IDT) Information technology Coding ofaudio-visual objects Part 1: Systems AMENDMENT 4: SL extensions and AFX streamsINCITS/ISO/IEC 14496-1-2001 AMENDMENT 4-2003(ISO/IEC 14496-1:2001/FDAM 4:2003,IDT)INCITS/ISO/IEC 14496-1
2、-2001 AMENDMENT 4-2003 ii ITIC 2004 All rights reserved PDF disclaimer This PDF file may contain embedded typefaces. In accordance with Adobes licensing policy, this file may be printed or viewed but shall not be edited unless the typefaces which are embedded are licensed to and installed on the com
3、puter performing the editing. In downloading this file, parties accept therein the responsibility of not infringing Adobes licensing policy. The ISO Central Secretariat accepts no liability in this area. Adobe is a trademark of Adobe Systems Incorporated. Details of the software products used to cre
4、ate this PDF file can be found in the General Info relative to the file; the PDF-creation parameters were optimized for printing. Every care has been taken to ensure that the file is suitable for use by ISO member bodies. In the unlikely event that a problem relating to it is found, please inform th
5、e Central Secretariat at the address given below. Adopted by INCITS (InterNational Committee for Information Technology Standards) as an American National Standard. Date of ANSI Approval: 5/6/2004 Published by American National Standards Institute, 25 West 43rd Street, New York, New York 10036 Copyr
6、ight 2004 by Information Technology Industry Council (ITI). All rights reserved. These materials are subject to copyright claims of International Standardization Organization (ISO), International Electrotechnical Commission (IEC), American National Standards Institute (ANSI), and Information Technol
7、ogy Industry Council (ITI). Not for resale. No part of this publication may be reproduced in any form, including an electronic retrieval system, without the prior written permission of ITI. All requests pertaining to this standard should be submitted to ITI, 1250 Eye Street NW, Washington, DC 20005.
8、 Printed in the United States of America iiiIn accordance with the provisions of Council Resolution 21/1986, this document is circulated in the English language only. INCITS/ISO/IEC 14496-1-2001 AMENDMENT 4-2003 ITIC 2004 All rights reservediv Foreword ISO (the International Organization for Standar
9、dization) and IEC (the International Electrotechnical Commission) form the specialized system for worldwide standardization. National bodies that are members of ISO or IEC participate in the development of International Standards through technical committees established by the respective organizatio
10、n to deal with particular fields of technical activity. ISO and IEC technical committees collaborate in fields of mutual interest. Other international organizations, governmental and non-governmental, in liaison with ISO and IEC, also take part in the work. In the field of information technology, IS
11、O and IEC have established a joint technical committee, ISO/IEC JTC 1. International Standards are drafted in accordance with the rules given in the ISO/IEC Directives, Part 2. The main task of the joint technical committee is to prepare International Standards. Draft International Standards adopted
12、 by the joint technical committee are circulated to national bodies for voting. Publication as an International Standard requires approval by at least 75 % of the national bodies casting a vote. Attention is drawn to the possibility that some of the elements of this document may be the subject of pa
13、tent rights. ISO and IEC shall not be held responsible for identifying any or all such patent rights. Amendment 4 to ISO/IEC 14496-1:2001 was prepared by Joint Technical Committee ISO/IEC JTC 1, Information technology, Subcommittee SC 29, Coding of audio, picture, multimedia and hypermedia informati
14、on. INCITS/ISO/IEC 14496-1-2001 AMENDMENT 4-2003 ITIC 2004 All rights reserved1Information technology Coding of audio-visual objects Part 1: Systems AMENDMENT 4: SL extensions and AFX streams In subclause 8.2.1, replace Table 1 - List of Class Tags for Descriptors, by the following: Table 1 - List o
15、f Class Tags for Descriptors Tag value Tag name 0x00 Forbidden 0x01 ObjectDescrTag 0x02 InitialObjectDescrTag 0x03 ES_DescrTag 0x04 DecoderConfigDescrTag 0x05 DecSpecificInfoTag 0x06 SLConfigDescrTag 0x07 ContentIdentDescrTag 0x08 SupplContentIdentDescrTag 0x09 IPI_DescrPointerTag 0x0A IPMP_DescrPoi
16、nterTag 0x0B IPMP_DescrTag 0x0C QoS_DescrTag 0x0D RegistrationDescrTag 0x0E ES_ID_IncTag 0x0F ES_ID_RefTag 0x10 MP4_IOD_Tag 0x11 MP4_OD_Tag 0x12 IPL_DescrPointerRefTag 0x13 ExtensionProfileLevelDescrTag 0x14 profileLevelIndicationIndexDescrTag 0x15-0x3F Reserved for ISO use 0x40 ContentClassificatio
17、nDescrTag 0x41 KeyWordDescrTag 0x42 RatingDescrTag 0x43 LanguageDescrTag 0x44 ShortTextualDescrTag 0x45 ExpandedTextualDescrTag 0x46 ContentCreatorNameDescrTag 0x47 ContentCreationDateDescrTag 0x48 OCICreatorNameDescrTag 0x49 OCICreationDateDescrTag INCITS/ISO/IEC 14496-1-2001 AMENDMENT 4-2003 ITIC
18、2004 All rights reserved2 0x4A SmpteCameraPositionDescrTag 0x4B SegmentDescrTag 0x4C MediaTimeDescrTag 0x4D-0x5F Reserved for ISO use (OCI extensions) 0x60-0x61 Reserved for ISO use 0x62 FLEXmuxTimingDescrTag 0x63 FLEXmuxCodeTableDescrTag 0x64 ExtSLConfigDescrTag 0x65 FLEXmuxBufferSizeDescrTag 0x66
19、FLEXmuxIdentDescrTag 0x67 DependencyPointerTag 0x68 DependencyMarkerTag 0x69 FLEXmuxChannelDescrTag 0x6A-0xBF Reserved for ISO use 0xC0-0xFE User private 0xFF Forbidden In 8.6.4.2, replace Table 3 by: Table 3 - ODProfileLevelIndication Values Value Profile Level 0x00 Forbidden - 0x01 Reserved for IS
20、O use (no SL extension) - 0x02-0x7F Reserved for ISO use (SL extension) - 0x03-0x7F Reserved for ISO use 0x80-0xFD user private - 0xFE No OD profile specified - 0xFF No OD capability required - Note 0x01 also indicates that the SL extension mechanism is not present .“ INCITS/ISO/IEC 14496-1-2001 AME
21、NDMENT 4-2003 ITIC 2004 All rights reserved3Replace 8.6.5.1 ESDescriptor syntax by: class ES_Descriptor extends BaseDescriptor : bit(8) tag=ES_DescrTag bit(16) ES_ID; bit(1) streamDependenceFlag; bit(1) URL_Flag; bit(1) OCRstreamFlag; bit(5) streamPriority; if (streamDependenceFlag) bit(16) dependsO
22、n_ES_ID; if (URL_Flag) bit(8) URLlength; bit(8) URLstringURLlength; if (OCRstreamFlag) bit(16) OCR_ES_Id; DecoderConfigDescriptor decConfigDescr; if (ODProfileLevelIndication=0x01) /no SL extension. SLConfigDescriptor slConfigDescr; else / SL extension is possible. SLConfigDescriptor slConfigDescr;
23、IPI_DescrPointer ipiPtr0 1; IP_IdentificationDataSet ipIDS0 255; IPMP_DescriptorPointer ipmpDescrPtr0 255; LanguageDescriptor langDescr0 255; QoS_Descriptor qosDescr0 1; RegistrationDescriptor regDescr0 1; ExtensionDescriptor extDescr0 255; In 8.6.5.2, replace: slConfigDescr is an SLConfigDescriptor
24、 as specified in 8.6.8. by slConfigDescr is an SLConfigDescriptor as specified in 8.6.8. If ODProfileLevelIndication is different from 0x01, it may be an extension of SLConfigDescriptor (i.e. and extended class) as defined in 8.6.8. INCITS/ISO/IEC 14496-1-2001 AMENDMENT 4-2003 ITIC 2004 All rights r
25、eserved4 In subclause 8.6.6.2: Semantics (of 8.6.6 DecoderConfigDescriptor), replace Table 8 - objectTypeIndication Values, with the following: Table 8 - objectTypeIndication Values Value ObjectTypeIndication Description 0x00 Forbidden 0x01 Systems ISO/IEC 14496-1 a0x02 Systems ISO/IEC 14496-1 b0x03
26、 Interaction Stream 0x04 Systems ISO/IEC 14496-1 Extended BIFS Configuration c0x05 Systems ISO/IEC 14496-1 AFX d0x06-0x1F reserved for ISO use 0x20 Visual ISO/IEC 14496-2 e0x21-0x3F reserved for ISO use 0x40 Audio ISO/IEC 14496-3 f0x41-0x5F reserved for ISO use 0x60 Visual ISO/IEC 13818-2 Simple Pro
27、file 0x61 Visual ISO/IEC 13818-2 Main Profile 0x62 Visual ISO/IEC 13818-2 SNR Profile 0x63 Visual ISO/IEC 13818-2 Spatial Profile 0x64 Visual ISO/IEC 13818-2 High Profile 0x65 Visual ISO/IEC 13818-2 422 Profile 0x66 Audio ISO/IEC 13818-7 Main Profile 0x67 Audio ISO/IEC 13818-7 LowComplexity Profile
28、0x68 Audio ISO/IEC 13818-7 Scaleable Sampling Rate Profile 0x69 Audio ISO/IEC 13818-3 0x6A Visual ISO/IEC 11172-2 0x6B Audio ISO/IEC 11172-3 0x6C Visual ISO/IEC 10918-1 0x6D - 0xBF reserved for ISO use 0xC0 - 0xFE user private 0xFF no object type specified gaThis type is used for all 14496-1 streams
29、 unless specifically indicated to the contrary. Scene Description scenes, which are identified with StreamType=0x03 (see Table 7), using this object type value shall use the BIFSConfig specified in subclause 9.3.5.2.2 of this specification. bThis object type shall be used, with StreamType=0x03 (see
30、Table 7), for Scene Description streams that use the BIFSv2Config specified in subclause 9.3.5.3.2 of this specification. Its use with other StreamTypes is reserved. cThis object type shall be used, with StreamType=0x03 (see Table 7), for Scene Description streams that use the BIFSConfigEx specified
31、 in subclause 8.7.6.1.2 of this specification. Its use with other StreamTypes is reserved. dThis object type shall be used, with StreamType=0x03 (see Table 7), for Scene Description streams that use the AFXConfig specified in subclause 8.7.6.1.2 of this specification. Its use with other StreamTypes
32、is reserved. eIncludes associated Amendment(s) and Corrigendum(a). The actual object types are defined in ISO/IEC 14496-2 and are conveyed in the DecoderSpecificInfo as specified in ISO/IEC 14496-2, Annex K. fIncludes associated Amendment(s) and Corrigendum(a). The actual object types are defined in
33、 ISO/IEC 14496-3 and are conveyed in the DecoderSpecificInfo as specified in ISO/IEC 14496-3 subpart 1 subclause 6.2.1. gStreams with this value with a StreamType indicating a systems stream (values 1,2,3, 6, 7, 8, 9) shall be treated as if the ObjectTypeIndication had been set to 0x01. INCITS/ISO/I
34、EC 14496-1-2001 AMENDMENT 4-2003 ITIC 2004 All rights reserved5Append to 8.6.7.2: For values of DecoderConfigDescriptor.objectTypeIndication that refers to extended BIFS configuration (0x04), the decoder specific information is: class BIFSConfigEx extends DecoderSpecificInfo : bit (8) tag = DecSpeci
35、ficInfoTag ExtendedBIFSConfig extBIFSConfig; abstract aligned(8) expandable () class ExtendedBIFSConfig : bit (8) tag = 0x010xFF /empty. To be filled by classes extending this class. The class BIFSConfigEx contains an ExtendedBIFSConfig. ExtendedBIFSConfig is the base class for new classes meant to
36、hold decoder specific information. With this approach, new BIFS streams will have streamType 3 and objectTypeIndication 3, but will use decoder configuration depending on the tag of the ExtendedBIFSConfig. For values of DecoderConfigDescriptor.objectTypeIndication that refers to AFX streams (0x05),
37、the decoder specific information is: class AFXConfig extends DecoderSpecificInfo : bit(8) tag=DecSpecificInfoTag AFXExtDescriptor afxext; abstract class AFXExtDescriptor extends BaseDescriptor : bit(8) tag = 0100 AFXExtDescriptor is an abstract class used as a placeholder for an optional DecoderSpec
38、ificInfo defined in this specification: Table AMD4-1 DecoderSpecificInfo for AFX streams AFX stream DecoderSpecificInfo MeshGrid See subclause 5.2.2.2 of ISO/IEC 14496-16. WaveletSubdivisionSurface See subclause 5.1.1.1 of ISO/IEC 14496-16. Other AFX streams None and the tag refers to a specific nod
39、e compression scheme as defined in Table AMD4-2. Table AMD4-2 AFX object code AFX object code object 0x00 3D Mesh Compression 0x01 WaveletSubdivisionSurface 0x02 MeshGrid 0x03 CoordinateInterpolator 0x04 OrientationInterpolator0x05 PositionInterpolator0x06 OctreeImage INCITS/ISO/IEC 14496-1-2001 AME
40、NDMENT 4-2003 ITIC 2004 All rights reserved6 In 10.2.3.1, append at the end of the subclause: class ExtendedSLConfigDescriptor extends SLConfigDescriptor : bit(8) tag=ExtSLConfigDescrTag SLExtensionDescriptor slextDescr1255; Append to 10.2.3.2: slextDescr is an array of ExtensionDescriptors defined
41、for ExtendedSLConfigDescriptor as specified in 10.2.3.3. Insert new subclause 10.2.3.3 SLExtensionDescriptor syntax: abstract class SLExtensionDescriptor : bit(8) tag=0 class DependencyPointer extends SLExtensionDescriptor: bit(8) tag= DependencyPointerTag bit(6) reserved; bit(1) mode; bit(1) hasESI
42、D; bit(8) dependencyLength; if (hasESID) bit(16) ESID; class MarkerDescriptor extends SLExtensionDescriptor: bit(8) tag=DependencyMarkerTag int(8) markerLength; Insert new subclause 10.2.3.4 SLExtensionDescriptor semantics: SLExtensionDescriptor is an abstract class specified so as to be the base cl
43、ass of sl extensions. 10.2.3.4.1 DependencyPointer semantics DependencyPointer extends SLExtensionDescriptor and specifies that access units from this stream depend on another stream. If mode equals 0, the latter stream can be identified through the ESID field or if no ESID is present, using the dep
44、endsOn_ES_ID ESID, and access units from this stream will point to the decodingTimeStamps of that stream. If mode equals 1, access units from this stream will convey identifiers, for which the system (e.g. IPMP tools) are responsible to know whether dependent resources (e.g. keys) are available. In
45、both cases, the length of this pointer or identifier is dependencyLength. If mode is 0 then dependencyLength shall be the length of the decodingTimeStamp. 10.2.3.4.2 MarkerDescriptor semantics MarkerDescriptor extends SLExtensionDescriptor and allows to tag access units so as to be able to refer to
46、them independently from their decodingTimeStamp. markerLength is the length for identifiers tagging access units. INCITS/ISO/IEC 14496-1-2001 AMENDMENT 4-2003 ITIC 2004 All rights reserved7Replace 10.2.4.1 with: aligned(8) class SL_PacketHeader (SLConfigDescriptor SL) if (SL.useAccessUnitStartFlag)
47、bit(1) accessUnitStartFlag; if (SL.useAccessUnitEndFlag) bit(1) accessUnitEndFlag; if (SL.OCRLength0) bit(1) OCRflag; if (SL.useIdleFlag) bit(1) idleFlag; if (SL.usePaddingFlag) bit(1) paddingFlag; if (paddingFlag) bit(3) paddingBits; if (!idleFlag if (SL.degradationPriorityLength0) bit(1) DegPriofl
48、ag; if (DegPrioflag) bit(SL.degradationPriorityLength) degradationPriority; if (OCRflag) bit(SL.OCRLength) objectClockReference; if (accessUnitStartFlag) if (SL.useRandomAccessPointFlag) bit(1) randomAccessPointFlag; if (SL.AU_seqNumLength 0) bit(SL.AU_seqNumLength) AU_sequenceNumber; if (SL.useTime
49、StampsFlag) bit(1) decodingTimeStampFlag; bit(1) compositionTimeStampFlag; if (SL.instantBitrateLength0) bit(1) instantBitrateFlag; if (decodingTimeStampFlag) bit(SL.timeStampLength) decodingTimeStamp; if (compositionTimeStampFlag) bit(SL.timeStampLength) compositionTimeStamp; if (SL.AU_Length 0) bit(SL.AU_Length) accessUnitLength; if (instantBitrateFlag) bit(SL.instantBitrateLength) instantBitrate; if (SL.tag =