1、INTERNATIONAL STANDARD ISO/IEC 14496-1 Second edition 200 1 - 1 0-0 1 AMENDMENT 1 2001-10-15 Information technology - Coding of audio-visual objects - Part 1: Systems AMENDMENT 1: Extended BIFS Technologies de linformation - Codage des objets audiovisuels - Partie 1: Systmes AMENDEMENT 1: BIFS tendu
2、s Adopted by INCITS (InterNational Committee for Information Technology Standards) as an American National Standard. Date of ANSI Approval: 8/29/02 Published by American National Standards Institute, 25 West 43rd Street, New York, New York 10036 Copyright 2002 by Information Technology Industry Coun
3、cil (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 Technology Industry Council (ITI). Not for resale. No pa
4、rt 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. Printed in the United States of America Referenc
5、e number ISOIIEC 14496-1 :2001/Amd.l:2001 (E) O ISOIIEC 2001 ISO/IEC 14496-1 :2001/Amd.l:2001(E) 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
6、 are licensed to and installed on the computer performing the editing. In downloading this file, parties accept therein the responsibility of not infringing Adobes licensing policy. The IS0 Central Secretariat accepts no liability in this area. Adobe is a trademark of Adobe Systems Incorporated. Det
7、ails of the software products used to create this PDF file can be found in the General Info relative to the file; the PDFcreation parameters were optimized for printing. Every care has been taken to ensure that the file is suitable for use by IS0 member bodies. In the unlikely event that a problem r
8、elating to it is found, please inform the Central Secretariat at the address given below. O ISO/IEC 2001 All rights reserved. Unless othetwise specified, no part of this publication may be reproduced or utilized in any form or by any means, electronic or mechanical, including photocopying and microf
9、ilm, without permission in writing from either IS0 at the address below or ISOs member body in the country of the requester. IS0 copyright office Case postale 56 CH-1 21 1 Geneva 20 Tel. + 41 22 749 O1 11 Fax +41 227490947 E-mail copyrightiso.ch Web www.iso.ch Printed in Switzerland ii O ISO/IEC 200
10、1 -All rights reserved ISO/IEC 14496-1 :2001/Amd.l:2001(E) Foreword IS0 (the International Organization for Standardization) and IEC (the International Electrotechnical Commission) form the specialized system for worldwide standardization. National bodies that are members of IS0 or IEC participate i
11、n the development of International Standards through technical committees established by the respective organization to deal with particular fields of technical activity. IS0 and I EC technical committees collaborate in fields of mutual interest. Other international organizations, governmental and n
12、on-governmental, in liaison with IS0 and IEC, also take part in the work. International Standards are drafted in accordance with the rules given in the ISO/IEC Directives, Part 3. In the field of information technology, IS0 and IEC have established a joint technical committee ISO/IEC JTC 1. Draft In
13、ternational Standards adopted 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 Amen
14、dment may be the subject of patent rights. IS0 and IEC shall not be held responsible for identifying any or all such patent rights. Amendment 1 to International Standard ISO/IEC 14496-1 :2001 was prepared by Joint Technical Committee ISO/IEC JTC 1, Information technology, Subcommittee SC 29, Coding
15、of audio, picture, multimedia and hypermedia information. O ISOIIEC 2001 -All rights reserved iii ISO/IEC 14496-1 :2001/Amd.l:2001(E) Information technology - Coding of audio-visual objects - Part 1: Systems AMENDMENT 1: Extended BIFS 1) Add the following at the end of subclause 8.6.15.3.1. 11 class
16、 QoS-Qualifier-REBUFFERING-RATIO extends QoS - Qual if ier : bit(8) tag=Ox02 bit(8) REBUFFERING-RATIO; 1 11 2) Add the following at the end of subclause 8.6.15.3.2: 11 REBUFFERING-RATIO - Ratio of the decoding buffer that should be filled in case of prebuffering or rebuffering. The ratio is expresse
17、d in percentage, with an integer value between O and 100. Values outside that range are reserved. 8.6.15.3.2.1 Rebuffering In certain scenarios the System Decoder Model cannot be strictly observed. This is the case of e.g. file retrieval scenarios in which the data is pulled from a remote server ove
18、r a network with unpredictable performances. In such a case prebuffering and/or rebuffering may be required in order to allow for a better quality in the user experience. Note that scenarios involving real time streaming servers do not fall in this category, since a streaming server presumably deliv
19、ers content according to the appropriate timeline. An elementary stream is prebuffered when the decoder waits until the decodingBuffer has been filled up to a certain threshold before starting fetching data from it. An elementary stream is rebuffered when a decoder stops fetching data from the decod
20、ingBuffer and before resuming fetching data waits until that buffer has been filled again up to a certain threshold. In order to inform a receiver whether a certain elementary stream requires prebuffering and/or rebuffering the QoS-Qualifier-REBUFFERING-RATIO qualifier can be included in the Element
21、ary Stream Descriptor (see subclause 8.6.15.3.1). By default, in the absence of such qualifier, an elementary stream does not require pre-buffering or rebuffering. 11 O ISOAEC 2001 -All rights reserved 1 ISO/IEC 14496-1 :2001/Amd.l:2001(E) 3) Replace Table 31 (Compensation process) in subclause 9.3.
22、4 by the following: 11 Table 31 - Compensation process for multiple fields and BIFS-Anim quantType 1,2,4,6,7,8, 9 (other than SFVec3tType), 1 O (other than SFRotationType), 11,12,13 9 (SFVec3fType), 1 O (SFRotation) animType 9,lO Compensation Process fie components of v/L are: vq2 il = vql il + vDel
23、tail The addition is first performed component by component and stored in a temporary array: vqTempi = vql i + vDeltai . max( 0,nbBirs-1) Let scale = 2 -1. Let N the number of reduced components (2 for normals, 3 for rotations) There are then three casez For every index I, IvqTempil scale There are
24、several indices k such that IvqTempkl scale re to be considered: V/4L is defined by, vq2 il = vqTemp i orientation2= orientationl direction2 = direction1 * inverse Vi is rescaled as if gliding on the faces of the mapping cube. Let inv = 1 if vqTemp kl =O and -1 eise Let dOri = k+l The components of
25、vq2 are computed as follows 0 i N-dOri I vq2 il = inv*vqTemp (i+dOri) mod NI i = N -dOri I vq2 il = inv*Z*scale-vqTemp dori-11 N -dOri i N I vq2 il = inv*vqTemp (i+dOri-l) mod NI orientation2 = (orientation1 + dori) mod (N+1) direction2 = direction1 * inverse * inv The result is undefined Note: The
26、BIFS-him process is identical to the process applied for optimal encoding of BIFS multiple fields. 11 4) Replace the reserved bit in subclause 9.3.5.3.1 by the following: 11 bit( 1) UsePredictiveMFField; 11 2 O ISOAEC 2001 -All rights reserved ISO/IEC 14496-1 :2001/Amd.l:2001(E) 5) Insert the follow
27、ing in subclause 9.3.5.3.2 at the end of the secondparagraph (on the use3Dmes h Coding) : 11 The UsePredictiveMFField flag is used to signal that the syntax for predictive MFField instead of the non-predictive mode is used to encode IndexedFaceSet nodes. This flag is used for terminals supporting th
28、is tool. 11 6) 9.3.7.2.4 PROTOcode Replace subclause 9.3.7.2.4 (PROTOcode) by the following subclauses: 11 9.3.7.2.4.1 Syntax class PROTOcode(isedNodeData protoData) bit( 1) isExtern if Extern) else MFUrl locations; PROTOlist subProtos; 1 do SFNode node(SFWorldNodeType,protoData); bit( 1) moreNodes;
29、 while (moreNodes); bit( 1) hasROUTEs; if (hasROUTEs) ROUTEs routes(); 1 1 9.3.7.2.4.2 Semantics First a flag signals whether the prototype is a PROTO, which then has his code included in the proto declaration, or if is an EXTERNPROTO, in which case only an external reference is provided. The EXTERN
30、PROTO is an authoring facility that enables to distribute PROTOs in external libraries and be reused across scenes. The EXTERNPROTO opens a BIFSCommand stream that contains a Replacescene command with a BIFSScene with the PROTO definitions. The EXTERNPROTO code is found in the PROTO in this new scen
31、e with the same ID in this scene. The nodes that may be contained in this scene are ignored. ln case of a PROTO, the PROTOcode contains a (possibly empty) list of the sub-PROTOs of this PROTO in subProtos, followed by the code to execute the PROTO. The code is specified as a set of SFNodes, using a
32、standard SFNode definition with the additional possibility to declare an IS field. Moreover, the PROTO body may contain ROUTEs if the hasROUTE flag is set to 1. 11 O ISOAEC 2001 -All rights reserved 3 ISO/IEC 14496-1 :2001/Amd.l:2001(E) 7) 9.3.7.6 Field Replace subclause 9.3.7.6 (Field) with the fol
33、lowing subclauses. 11 9.3.7.6.1 Syntax class Field(Fie1dData field) if (isSF(fie1d) else SFField svalue(fie1d); if (BIFSConfig.usePredictiveMFFie1d = 1) bit( 1) usepredictive; if (usepredictive) else PredictiveMFField mvalue(fie1d); MFField mvalue(fie1d); 1 else MFField mvalue(fie1d); 1 1 1 9.3.7.6.
34、2 Semantics A field is encoded according to its type: single (SFField) or multiple (MFField). A multiple field is a collection of single fields. 11 8) 9.3.7.10 PredictiveMFField Add the following as new subclauses after subclause 9.3.7.9 (MFVectorDescription): 11 9.3.7.10.1 Syntax class PredictiveMF
35、Field (FieldData field) AnimFieldQP aqp = new AnimFieldQPo; aqp.useDefault = FALSE; field.aqp = aqp; ArrayHeader header(fie1d); ArrayOfValues values(fie1d); 9.3.7.10.2 Semantic The array of data is composed of a Header, and an ArrayOfValues. Note that the FieldData structure is filled as described i
36、n the BIFS-Scene quantization process (subclause 9.3.3.1 of ISO/IEC 14496-1:2001). 4 O ISOAEC 2001 -All rights reserved ISO/IEC 14496-1 :2001/Amd.l:2001(E) The process applied for optimal encoding of BIFS multiple fields is exactly identical to the BIFS-him process (See Table 3 1): 1 2 Compensation
37、on the P values Inverse Quantization into single field values The compensation process uses the quant type as well as Pmin and PNbBits, defined in the ArrayQP and InitialArrayQP, and can be summarized in the following table. The inverse quantization process uses the values of floatMax, floatMin, and
38、 NbBit as defined in the BIFS quantization process and as defined by the Quantizationparameter node. 9.3.7.1 1 ArrayHeader 9.3.7.1 1 .I Syntax class ArrayHeader(Fie1dData field) uint(5) NbBits; int(NbBits) numberOfFields; bit(2) intraMode; InitialArrayQP qp(intraMode,field); 1 9.3.7.1 1.2 Semantic T
39、he array header contains first information to specify the number of fields (NbBits is the number of bits used to code the numberOfFields). Then the Intra/Predictive policy (intraMode) is specified as follows: O : Only one Intra value at the beginning and then only predictive coded values 1 : An Intr
40、a every given number of predictive values 2 : A bit for each value to determine whether the value is an Intra or predictive value Lastly, the InitialArrayQP is coded. O ISOAEC 2001 -All rights reserved 5 ISO/IEC 14496-1 :2001/Amd.l:2001(E) 9.3.7.12 InitialArrayQP 9.3.7.12.1 Syntax class InitialArray
41、QP(int intraMode, FieldData field) switch (intraMode) case 1 : unsigned int(5) NbBits; unsigned int(NbBits) intralnterval; II no break case O : case 2 : int(5) CompNbBits; for (int i=O;igetNbComp(field);i+) int(field.NbBits+l) vq; field.aqp.Pmini = vq-2“field.NbBits; 1 II no break case 3: break; 1 9
42、.3.7.12.2 Semantic If intraMode is 1, the size of the interval between two intras is first specified. Independent of the intraMode, the number of Bits used in Predictive mode CompNbBits and the CompMins are coded. The function getNbComp() is a function that returns the number of components of the qu
43、antizing bounds, and depends on the object. For instance it returns 3 for 3D positions, 2 for 2D positions, and 3 for rotations. See Table 17 (Return values of getNbComp) in ISOIIEC 14496-1:2001. CompNbBits and CompMin are stored in the field.aqp AnimationQP structure, and are used for the compensat
44、ion process as defined in Table 3 1 (Compensation process for multiple fields and BIFS-Anim) and subclause 9.3.4 of ISOIIEC 14496-112001. 6 O ISOAEC 2001 -All rights reserved ISO/IEC 14496-1 :2001/Amd.l:2001(E) 9.3.7.13 ArrayQP 9.3.7.1 3.1 Syntax class ArrayQP(int intraMode, FieldData field) switch
45、(intraMode) int NbBits; int(NbBits) intraInterVal; / no break case 1 : case O : case 2 : boolean( 1) hasCompNbBits if (hasCompNbBits) int(5) CompNbBits; boolean( 1) hasCompMin if (hasCompMin) for (int i=O;iNbComp(field) int(field.NbBits+l) vq; field.aqp.Pmini = vq-2“field.NbBits; 1 1 case 3: break;
46、9.3.7.13.2 Semantic ArrayQP fulfills the same purpose as InitialArrayQP, but in this case, the parameters are optionnaly set. If they are not set in the stream, they are set by default, in reference to the InitialArrayQP or the latest received value of the parameter. If IntraMode is 1, the size of t
47、he interval between two intras is first specified. In any case, the number of Bits used in Predictive mode (CompNbBits) and the CompMins are coded. The function getNbComp() is a function that returns the number of components of the quantizing bounds, and depends on the object. For instance it return
48、s 3 for 3D positions, 2 for 2D positions, and 3 for rotations. See Table 17 in ISO/IEC 14496- 1 :200 1. CompNbBits and CompMin are stored in the field.aqp AnimationQP structure, and are used for the compensation process as defined in Table 3 1 and subclause 9.3.4 of ISO/IEC 14496-1 12001. O ISOAEC 2
49、001 -All rights reserved 7 ISO/IEC 14496-1 :2001/Amd.l:2001(E) 9.3.7.1 4 ArrayOfValues 9.3.7.14.1 Syntax class ArrayOfValues(Fie1dData field) ArrayIValue valueO; for (int i=l; i numberOfFields;i+) Switch (intraMode) case O: ArrayPValue value(fie1d); break; if ( (i % intraInterVal) = O) case 1: bit( 1) hasQP; if (hasQP) ArrayIValue value(fie1d); ArrayQP qp(fie1d); else ArrayPvalue value(fie1d); break; case 2: bit (1) isIntra; if (isIntra) bit( 1) hasQP; if (hasQP) ArrayQP qp(fie1d); ArrayIValue val