The Character Size WVG object as defined by IEI 19 is structured as follows:
Octet 1 position indicating in the SM data the instant the object shall be displayed in the SM data
Octet 2..n Character Size WVG bit stream
The unused bits in the last octet will be filled with 0
The detailed data format and attributes of Character Size WVG object are defined in Annex G.
The bit order is defined as follows:
The octet with a smaller octet number stores the bits appearing in the front position in the bit stream; the most significant bit in an octet stores the first bit in position in a 8-bit segment in the bit stream.
A Character Size WVG object is a small graphics similar to the size of a typed character. The display height for a Character Size WVG object is decided by the terminal implementation. Recommended Character Size WVG object height is to be similar to the message text font height. The width of a Character Size WVG object is variable depending on the aspect ratio defined in the object. Character Size WVG objects can appear more than one time in one message.
Example:
Dad, I you!
In the above example, the "heart" is a Character Size WVG object at the position in between the letter "I" and "y".
In the above example, there are 4 Character Size WVG objects, each representing a Chinese character.
The Extended Object allows an extended code range for format types. The Extended Object may extend across segment boundaries of a concatenated short message. Octets 1 through 7 of the first Extended Object IE shall be contained in a single segment. A single segment may include one or more Extended Object IEs.
If multiple SMs are concatenated and at least one of them contains an Extended Object information element, then concatenation of the SMs shall be done using the 'Concatenated short messages, 16-bit reference number', verses the 'Concatenated short messages, 8-bit reference number' information element. The re-assembly of the Extended Object segments shall be done according to the sequence number of the associated Concatenation IE.
One or more Extended Objects may be compressed using a compression algorithm as indicated in the Compression Control IE (see clause 9.2.3.24.10.1.13).
An SME implementing the Extended Object IE shall be capable of interpreting an uncompressed concatenated message composed of at least min_eo_msg short messages which have been received. According to current content provider requirements and handset manufacturer constraints, variable min_eo_msg is set to 8.
The first Extended Object IE of an Extended Object contains a reference number, length, control data, type and position. The subsequent Extended Object IEs shall only contain Extended Object data as illustrated in Figure 9.2.24.10.11.
The IE length is variable.
Octet 1 Extended Object reference number.
A modulo 256 counter indicating the reference number for the Extended Object. Two different Extended Objects in a single concatenated message shall have different reference numbers.
Octet 2..3 Extended Object length
in number of octets (integer representation) as shown in Figure 9.2.3.24.10.1.11.
Octet 4 Control data.
Bit 0 Object distribution
0 Object may be forwarded
1 Object shall not be forwarded by SMS
Bit 1 User Prompt Indicator
0 Object shall be handled normally
1 Object shall be handled as a User Prompt (see clause 9.2.3.24.10.1.10)
Bit 2..7 reserved
Any reserved values shall be set to 0.
Octet 5 Extended Object Type.
This octet indicates the format of the Extended Object from the table below.
If the value is reserved or if the associated format is not supported then the receiving entity shall ignore the Extend Object.
Data Format Delivery Request as defined in Annex E.
Octet 6..7 Extended Object Position (integer representation).
The Extended Object Position indicates the absolute character position within the message text after which the object shall be played or displayed. The absolute character position relates to the entire text within the concatenated message, the first character is numbered character 1.
If more than one Extended Object is located at the same position then they may be played or displayed in sequence or simultaneously.
Octet 8..n Extended Object Data.
This sequence of octets is structured as illustrated in the Figure below and defined Annex E. This Figure illustrates the construction of a number of SMs containing a large Extended Object which crosses a SM boundary and is encoded into 2 SM TPDUs. The Figure illustrates only the User Data field of the SM (TPDUs). For a description of concatenation of SM refer to Figures 9.2.3.24 (a, b and c)
This information element is used to indicate a compressed octet sequence. The compression control is only used in association with one or more Extended Objects and/or Reused Extended Objects. The compressed data may extend across sequential short messages within a concatenated short message as illustrated by Figure 9.2.24.10.1.15. The first Compression Control IE of a compressed data sequence contains one octet of Compression Information and a 2-octet length field.
The SME shall support decompression if the Extended Object IE is implemented. An SME implementing the Extending Object IE shall be capable of decompressing a received stream for which the original uncompressed information fits into 1 to min_eo_msg messages. An SME may be capable of decompressing a received stream for which the original uncompressed information fits into more than min_eo_msg short messages. Variable min_eo_msg is defined in clause 9.2.3.24.10.1.11.
The IE length is variable.
Octet 1 Compression information.
Bits 0..3 represent the compression algorithm and bits 4..7 represent compression algorithm specific parameters.
Bit 0..3
reserved for future use; reserved bits shall be transmitted 0.
Bit 4..7
reserved
Octets 2..3 Length of the compressed data in octets (integer representation).
The length indicates the length of the compressed data that may extend across several compression control IEs.
Octets 4..n Compressed data may contain one or more compressed Extended Objects.
Figure 9.2.3.24.10.1.15 is an example and illustrates the assembly of a series of SM TPDUs from a sequence of concatenated and compressed extended objects. Each Extended Object is preceded by its IEI (Extended Object or Reused Extended Object). A series of Extended Objects is then compressed into a single buffer and this is split into several SM TPDUs as illustrated.
LZSS compression uses two tokens to identify either literal strings (byte-sequences) or references to repeated sequences. These tokens (for EMS extended-object compression) are described in this clause of the document. A more general introduction to LZSS compression together with an informative example (based upon the tokens described below) is provided in Annex F (informative).
The compressed data stream consists of any combination of literal data blocks and slice descriptor sequences.
The format of the compressed data stream is illustrated as follows:
This diagram represents the structure of a compressed byte stream using LZSS. The stream contains a mixture of literal octets from the input buffer and slice descriptors representing the re-occurrence of an octet sequence together with a length and index for the matching octet sequence. The initial octets of a compressed buffer will always be a sequence of literal octets. The structures of the literal data blocks and slice descriptors are given below.
When literal octets are written into the compression buffer (for instance during the initial phases of compression) they are preceded by a literal block identifier. The most significant bit (bit 7) of this block shall be set 1. Bits 6-0 indicate the length of the literal block which follows (up to 127 octets). If no match can be found in an octet sequence of greater that 127 octets then 2 (or more) literal blocks shall be written sequentially.
As can be seen from the above table, the slice descriptor sequence length is two octets, hence only repeating slices of data longer than two octets are extracted. The "slice length" is contained in the descriptor high octet and describes a data slice length of up to 63 octets. The "slice offset index" to the start of the slice is contained in the lower 9 bits and limits the window to 511 octets. The "slice offset index" gives the start position of the source slice measured backwards from the current writing position in the output decoded message data buffer, expressed as a positive number.
The compressed data output stream is constructed by repeating the following process until the end of the input data buffer is reached.
The input data buffer is scanned, from the current reading position (minus 1) through to a position 511 bytes back from current reading position (the window) looking for the maximum (but limited to 63 octets) length matching data slice contained that matches the data starting at the current reading position (the look ahead buffer).
If no matching data slice, longer than two octets, is found then the input data octet at the current reading position is written to a literal buffer. Both the current reading position in the input data buffer and the current writing position in the output data buffer are incremented by one.
If a matching slice is found then a slice descriptor is written to the output data buffer at the current writing position in the output data buffer and the current writing position is incremented by two. The current reading position in the input data buffer is incremented by the length of the newly found matching data slice.
If the next read octet results in a matching slice being found then the literal buffer is written out. The literal block header, containing a count of the number of literals in the block, is written out first. (If more than 127 literal octets exist in the literal buffer, then it is split into multiple blocks).
The above sequence is repeated until the current reading position reaches the end of the input data buffer.
When encoding (compressing), it is the input data buffer, up to the current reading position, that is used to search for already known matching data slices, as this represents, and is equal to, the reconstructed output data buffer of the decoder at the receiving end.
The following sequence is repeated until the end of the input data buffer.
The data octet at the current reading position in the input data buffer is tested for either 0 or 1 in bit 7.
If the bit is set (bit 7 = 1), then the number of literal octets that follow is determined from the lower 7 bits of the header octet (this one).
The literal octet block is written to the output data buffer at the current writing position and both the output data writing position and the input data reading position pointers are incremented by the block size.
If the bit is clear (bit 7 = 0), then the "slice length" and "slice offset index" are extracted from the two octet slice descriptor.
The data slice is copied from within the output data buffer to the end of the output data buffer, where the start of the source slice is at a position "slice offset index" back from the current output data writing position and the destination start position of the slice is the current output buffer writing position. The input data buffer reading position is incremented by two and the output data writing position is incremented by the "slice length".
In order to assist implementers of the compression algorithm described in this specification, a suite of test vectors and 'help' information are available in electronic format. The test vectors are supplied with this specification.
These test vectors provide checks for most of the commonly expected parameter value variants in this specification and may be updated as the need arises.
In addition Annex F contains an introduction to LZ-type compression algorithms and also has a brief informative example.
This facility allows a level of control to be requested over the distribution of objects contained within selected information elements in short messages.
If no Object Distribution Indicator is specified for an information element in which an object is received, then that object may be freely distributed.
If a MS provides facilities to modify an object, then the Distribution Attributes (see below) shall be maintained; i.e. an object that is not allowed to be distributed cannot become so after modification.
The use of the Object Distribution Indicator in conjunction with a TE is beyond the scope of the present document.
Where the Object Distribution Indicator is applied to object IE's that are also addressed by an IE which affects or controls them in some other way (such as User Prompt Indicator IE (see clause 9.2.3.24.10.1.10)), then it shall precede all of the IE's including the other controlling IE's.
Octet 1 Number of Information Elements.
This octet specifies the number of information elements from 1-255 for which the Distribution Attributes in the next octet shall apply. The affected objects shall be contained in Information Elements immediately following this IE and may be contained in subsequent short message segments within a concatenated short message.
If the Object Distribution Indicator is applied to the same object IE's as addressed by an IE which affects or controls them in some other way (such as the User Prompt Indicator IE), then value of this field shall reflect the total number of all the object IE's and all of the controlling IE's.
If set to 0 the Distribution Attributes shall apply to all information elements until either the end of the message or another Object Distribution Indicator IE is received.
Octet 2 Distribution Attributes.
Bit 0
0
the associated object(s) may be forwarded
1
the associated object(s) shall not be forwarded by SMS
Only one alternate Reply Address Element can be integrated in a message. In the case the Reply Address Element is part of a Concatenated SM this IE shall occur in its first segment only.
Octet 1..n
Alternate Reply Address encoded as specified for address fields in clause 9.1.2.5
When this IE is received in a message, replies to this message should take place by default using the address specified in this IE instead of the regular message TP-OA.
There is no data element associated with this IE. The associated Information Element Length field is present but set to zero.
Upon receiving this IE in an SMS-DELIVER PDU, if an MS supports this request and the corresponding response, it shall respond with an SMS-DELIVER-REPORT PDU containing a Data Format Delivery Request as defined in the Extended Object IE. This SMS-DELIVER PDU may be discarded.