1、INTERNATIONAL STANDARD INTERNATIONAL ORGANIZATION FOR STANDARDIZATION ORGANISATION INTERNATIONALE DE NORMALISATION MEXJJYHAPOAHAR OPrAHkl3AMR n0 CTAHAAPTkl3AlJlM Information processing - Coded representation of pictures - Part 1: Encoding principles for picture representation in a 7-bit or 8-bit env
2、ironment Traitement de Iinformation - Reprbsentation cod based on a 7-bit structure, this coding scheme may be used in a 7-bit or - the data structures to be used to represent the primitives describing a picture; - the general datatypes which can be used as operands within a primitive. This part of
3、IS0 9282 does not deal with the presentation semantics of pictures. These are defined in the related Inter- national Standards. This part of IS0 9282 applies to the data streams containing data structured in accordance with picture coding methods defined in IS0 9281. 2 Normative references The follo
4、wing standards contain provisions which, through reference in this text, constitute provisions of this part of IS0 9282. At the time of publication, the editions indicated were valid. All standards are subject to revision, and parties to agreements based on this part of IS0 9282 are encouraged to in
5、vestigate the possibility of applying the most recent editions of the standards listed below. Members of IEC and IS0 main- tain registers of currently valid International Standards. IS0 646 : 1993, Information processing - IS0 Fbit coded character sets for information interchange. IS0 2022 : 1986, I
6、nformation processing - IS0 7-bit and 8-bit coded character sets - Code extension techniques. IS0 6429 : 1993, Information processing - IS0 Fbit and Shit coded character sets - Additional control functions for character imaging devices. IS0 9281 : - 11, Information processing - identification of pic
7、- ture coding methods. 3 Definitions and notation 3.1 Definitions For the purposes of this part of IS0 9282, the following defi- nitions apply : 3.1.1 bit combination; byte: An ordered set of bits that represents an opcode or an operand, or used as a part of the representation of an opcode or an ope
8、rand. 3.1.2 code: A set of unambiguous rules that establishes a one-to-one relationship between each opcode or operand of a set and their coded representation by one or more bit combi- nations within that set. 3.1.3 code table : A table showing the general distribution of opcodes and operands to bit
9、 combinations in a code. 3.1.4 opcode : A one or multi-byte coded representation that identifies a function required by a picture standard. An opcode may be followed by zero or more operands. 3.1.5 opcode table : A table showing the function allocated to each bit combination reSeNed for opcodes. 3.1
10、.6 operand : A single or multiple coded representation used to specify the parameters required by an opcode. 3.2 Notation 3.2.1 7-bit byte The bits of a 7-bit byte are identified by b, bs, b, b, bs, b2 and b, where b, is the highest-order, or most-significant bit and b, is the lowest order, or least
11、-significant bit. The bit combinations are identified by notations of the form x/y, where x is a number in the range 0 to 7 and y is a number in the range 0 to 15, corresponding to the column and row designation, respectively, of a code table. 1) To be published. 1 Copyright American National Standa
12、rds Institute Provided by IHS under license with ANSINot for ResaleNo reproduction or networking permitted without license from IHS-,-,-IS0 9282-l : 1988 (E) The correspondence between the notations of the form x/y and the bit combinations consisting of the bits b7 to bt, is as follows : - x is the
13、number represented by b, bs and ba where these bits are given the weights 4, 2 and 1, respectively. - y is the number represented by be, b3, b2 and b, where these bits are given the weights 8, 4, 2 and 1, respectively. 3.2.2 I-bit byte The bits of an - the operands of the primitives. All such encodi
14、ng is defined in terms of a 7-bit byte. When used in an 8-bit environment, bit bs of each byte shall be zero (except within the “string” format). Each primitive is coded according to the following rules: - a primitive is composed of one opcode and zero or more operands as required; - the opcodes are
15、 encoded in column 2 or 3 of the Code Table (table I); - operands are encoded in columns 4 to 7. (However, the coded representation of a “string” operand may include bit combinations from other columns of the Code Table - see the description of string format in 6.2.3.) 5 Encoding principles for opco
16、des 5.1 General One of two encoding techniques may be used in the organ- ization of opcodes for the definition of a code table: - if the number of opcodes required in a particular standard built upon these coding principles is less than or equal to 32, compact structure may be used as described in 5
17、.2; - if a greater number of opcodes is required then an extensible structure may be used as described in 5.3. This permits the definition of more efficient code tables when the number of opcodes is small as well as allowing the develop- ment of standards which require an unlimited number of opcodes
18、. The identification of either opcode structure is achieved through the identification mechanism defined in IS0 9281. Copyright American National Standards Institute Provided by IHS under license with ANSINot for ResaleNo reproduction or networking permitted without license from IHS-,-,-IS0 9282-l :
19、 1988 (El Table 1 - Code table as used for picture coding vu 1 Operands 3 Copyright American National Standards Institute Provided by IHS under license with ANSINot for ResaleNo reproduction or networking permitted without license from IHS-,-,-IS0 9282-l :1988(E) 5.2 Compact opcode encoding In the c
20、ase where 32 or less opcodes are needed the encoding of opcodes is simply accomplished by assigning a code table position to each of the opcodes from the 32 code table pos- itions in columns 2 and 3 of the code table. The general struc- ture of an opcode of this type is shown in figure 1 below. 5.3
21、Extensible opcode encoding In the case where an unlimited number of opcodes may be needed the encoding of opcodes requires that the opcodes be divided into - a basic opcode set and, - an extension opcode set. The description of the encoding technique for the basic opcode set is given in 5.3.1. The d
22、escription of the extension mechanism is given in 5.3.2. 5.3.1 Encoding technique of the basic opcode set The basic opcode set consists of single-byte and double-byte opcodes. The general structure of such opcodes is shown in figure 2. For single-byte opcodes, the opcode length indicator, bit bs, is
23、 ZERO (opcodes of column 21, bits b4 to b, are used to encode the opcode. For double byte opcodes the opcode length indicator, bit bs, of the first byte is ONE. Bits b, to bt of the first byte and bits b, to b, of the second byte are used to encode the opcode. The bit representation 3/15, EXTEND OPC
24、ODE SPACE, IEOS), is used in a different sense (see 5.3.2). This encoding technique can thus provide a basic opcode set of 496 opcodes, being - 16 single-byte opcodes (code table column 2); - (15 x 32) = 466 double-byte opcodes (first byte from code table column 3 (except 3/15, second byte from eith
25、er column 2 or column 3). 5.3.2 Extension mechanism The basic opcode set can be extended by means of the EXTEND OPCODE SPACE (EOS, 3/15) to provide an unlimited number of extension opcode sets. Opcode flag I Opcode Figure 1 - Compact opcode encoding structure ,” (7! ;,b,5,b,4 ,b3 j6; ,b; ,stbe Opcod
26、e flag I- Opcode A Opcode length indicator Figure 2 - Opcode encoding structure Copyright American National Standards Institute Provided by IHS under license with ANSINot for ResaleNo reproduction or networking permitted without license from IHS-,-,-IS0 6262-l : 1988 (El The N-th extension opcode se
27、t consists of opcodes of the basic oocode set, prefixed N times with the EOS byte. The three The general format of an operand byte is given in figure 3: possible formats of an opcode from an N-th expansion opcode set are b8 b7 b6 b5 b4 b3 b2 bl Opcode format Extension code 1 . . . 1 n times Basic op
28、code set codes 2 . . . 1 I n times Figure 3 - Operand encoding structure 3 . . . I 1 n times 6.2 Format definitions Operands may be encoded using three formats : - basic format; EOS = 3115 - bitstream format; X = 0, 1 , . . . . . . . . . , 15 v = 0, 1 , . . . . a, 14 z = 0, 1 , . . . . . . . . . . 1
29、5 n = 0, 1 , . . . . . . . . . . . . . where - string format. In addition the encoding of operands may be controlled by a state variable. Such a state variable is set to a value by an appli- cation at the time a coding/decoding process is initialized. Depending on the functional standard under which
30、 the encoding principles defined in this part of IS0 9262 are used, such a state variable may remain fixed, or may be dynamically modified by a function specified in the functional standard. n = 0 results the basic opcode set The list of state variables used in this part of IS0 9262 is given n = 1 r
31、esults the 1st extension opcode set n = N results the N-th extension opcode set The number of opcodes supplied by this encoding technique (basic opcode set plus extension opcode sets) is - 16 single-byte opcodes from the opcode set (opcode format 1, n = 0) - 460 double-byte opcodes from the basic op
32、code set (opcode format 2 and 3, n = 0) 16 double-byte opcodes from the 1st extension opcode set (opcode format 1, n = 1) - 469 N-byte opcodes from extension opcode set N- 2 (opcode format 2 and 3, n = N-2) 16 N-byte opcodes from extension opcode set N- 1 (opcode format 1, n = N- 1) 6 Encoding princ
33、iples for operands 6.1 General The operand part of a primitive may contain any number of operands, including zero. Each such operand may consist of one or more bytes. in annex A. This part of IS0 9262 only refers to the value of state variables and does not deal with the definition of functions allo
34、wing to modify them. 6.2.1 Basic format An operand in basic format is represented as a sequence of one or more bytes; the structure is shown in figure 4: 1 I I I 1 1 LttZn :*g Operand flag Figure 4 - Basic format structure For single-byte operands, the extension flag, bit bs, is ZERO. In multiple-by
35、te operands, the extension flag is ONE in all bytes except the last byte, where it is ZERO. 5 Copyright American National Standards Institute Provided by IHS under license with ANSINot for ResaleNo reproduction or networking permitted without license from IHS-,-,-IS0 9262-l : 1666 (E) 6.2.2 Bitstrea
36、m format An operand in bitstream format is represented as a sequence of one or more bytes; the structure is shown in figure 5: Figure 5 - Bitstream format structure Data in bitstream format are packed in consecutive databits within an operand byte starting from the higher numbered bits to the lower
37、numbered bits of the first byte for the most signifi- cant part of the bitstream data. The end of a bitstream format operand cannot be derived from the bitstream format itself (the format is not self-delimiting). The end of a bitstream format operand is delimited by - the next opcode; or - an value,
38、 which identifies the end of data being encoded in the bitstream format operand; or - the value of a state variable which defines the length of the operand which is encoded in the bitstream format. When the data, which are to be coded in the bitstream format, do not match a whole number of bytes, th
39、e remaining bits of the most significant byte shall all be put as ZEROs. 6.2.3 String format An operand in string format is encoded as a sequence of bytes; the structure is shown in figures 6 and 7. 0 0 I I 0 1 1 1st byte - (ESC(l”l) SOS 1 0 1 1 0 0 0 2nd (5/8) byte 1 * - C C C C C C C 3rd byte C C
40、C C C C C 4th byte - 0 0 1 1 0 1 1 (n - 1 )th byte . (ESC) (l/11) * ST - 1 0 1 1 1 0 0 n-th byte (5/G!) Figure 6 - String format structure in a 7-bit environment (Databits are marked C) 6 Copyright American National Standards Institute Provided by IHS under license with ANSINot for ResaleNo reproduc
41、tion or networking permitted without license from IHS-,-,-The start of a character string is indicated by the delimiter START OF STRING (SOS). This delimiter is represented by the control sequence ESC 5/S in a 7-bit environment, (ESC = l/11), or by WO8 in an S-bit environment. The encoding of a stri
42、ng is the only exception of the general coding rules indicated in 6.1, The end of a character string is indicated by the delimiter STRING TERMINATOR (ST). This delimiter is represented by the escape sequence ESC 5/12 in a 7-bit environment, (ESC = l/11), or by OW12 in an S-bit environment. 6.3 Gener
43、al datatypes This clause describes the encoding of several general datatypes using the formats defined in 6.2. In a 7-bit environment (figure 61, bit combinations from col- umns 0 to 7 of the code table are allowed as databytes, i.e. 3rd byte to (n-21th byte. International Standards using string for
44、mat operands may restrict the use of bit combinations from columns 0 to 1 of the code table. These general datatypes may be used in standards on picture representation. If a specific standard uses a general datatype, the encoding of that datatype in that standard must be identical to the encoding of
45、 the general datatype as described in this clause. In an bytes are used to encode the modulus of the signed integer. - if bit bs is set to ONE, the integer is negative. Figure 12 contains examples of the encoding of signed integers. b8 b7 b6 b5 b4 b3 b2 bl 1 0 1 0 0 1 0 . Operand value : - 2 1 1 1 1
46、 0 0 0 1st byte - 1 0 0 0 0 0 0 2nd byte Operand value : -256 Figure 12 - Signed integers in modulus-and-sign notation using the basic format 10 Copyright American National Standards Institute Provided by IHS under license with ANSINot for ResaleNo reproduction or networking permitted without licens
47、e from IHS-,-,-IS0 9282-l : 1988 (E) 6.3.2.2 Signed integers in the twos complement notation Negative numbers are represented in twos complement using the basic format notation. The range of signed integers is subdivided into a non-negative range and a negative range, using bit bs of the first byte
48、as a sign bit i.e. : - if bit bs is set to ZERO, the integer is non-negative; - if bit bs is set to ONE, the integer is negative. PLUS ZERO is considered to be non-negative. The encoding of MINUS ZERO is restricted for specific en- coding purposes. Signed integers are not permitted to have this valu
49、e. Figure 13 contains examples of the encoding of signed integers in twos complement notation using the basic format. - 1 0 0 0 1 1 1 Operand value : + 7 - 1 1 1 1 1 1 0 1st byte 1 0 0 0 1 0 1 2nd byte Operand value : - 59 Figure 13 - Signed integer encoding in twos complement notation using the basic format 11 Copyright American National Standards Institute Provided by IHS under license with ANSINot for ResaleNo reproduction or netwo