JEITA CP-3451
- 74 -
【Explanation】
ckID (chunk ID, a 4-character code) consists of from one to four ASCII alphanumerics, left-justified and filled with
blank characters if less than four characters in length. Blanks cannot be inserted between characters. This
four-character code identifies the contents of the chunk data, described later. Software processing the chunk is
allowed to skip a chunk with an unknown chunk ID.
ckSize (chunk Size) is a 32-bit unsigned integer giving the size (bytes) of the ckData[ckSize] (chunk Data). This
size does not include padding bytes following the ckID, ckSize itself and ckData. The byte order is little endian (LSB
first, MSB last). In the case of RIFF files, values of more than one byte are all written in little endian order. If two or
more chunks follow in sequence, the value of chSize shall be read properly in order to know the start address
(ckID) of the next chunk.
ckData[ckSize] (chunk Data) is the actual data included in that chunk, and may be recorded as binary data of either
fixed length or variable length. The start of ckData is aligned with the RIFF file start position in word (16-bit) units. If
the data size is an odd number of bytes, a padding byte with the value '0' is appended after the ckData. This
padding byte is not included in the ckSize (chunk Size).
ckData[ckSize] (chunk Data) can itself have a particular structure rather than being a simple byte array. That is,
ckData itself may include a chunk (sub-chunk). In other words, chunks may be arranged hierarchically. Only certain
chunks are allowed to contain sub-chunks. These are the RIFF chunk and LIST chunk described later below.
Generally two or more sub-chunks may be contained in these chunks. All other chunks store only one binary data
element in the ckData.
(2) RIFF Form
A "RIFF form" is a chunk with "RIFF" as its chunk ID (ckID); it is also used to mean a file format with the RIFF
structure (RIFF file).
A "RIFF chunk" ckData (chunk data) consists of a 4-character code at the beginning called the formType (form
type), followed by a sub-chunk.
A RIFF chunk is at the top of the chunk hierarchy. A RIFF form shall have this chunk, but may have only one. All
other chunks are sub-chunks of the RIFF chunk.
A form type is generally a code identifying the data contents, among other things. It is also possible to tell from this
code what kind of sub-chunk a chunk contains. A form type shall be registered. A registered form type is written in
all upper-case letters.
Along with a form type, a chunk ID (ckID) shall also be registered. A chunk ID in all upper-case letters indicates a
general-purpose chunk that may be used with various form types. A chunk ID used with a specific form type is
written in all lower-case letters.