Use of IDs

The ID attributes in each of the elements have three main purposes:

  • to provide a unique identification for each defined element,
  • to allow the elements to reference each other,
  • and to provide a logical numerical representation of the contents of the element.

The IDs for each element follows the following format:

Element ID format
audioProgramme APR_wwww
audioContent ACO_wwww
audioObject AO_wwww
audioTrackUID ATU_zzzzzzzz
audioPackFormat AP_yyyyxxxx
audioChannelFormat AC_yyyyxxxx
audioStreamFormat AS_yyyyxxxx
audioTrackFormat AT_yyyyxxxx_zz

The yyyy part is a four digit hexadecimal number that represents the type of element it is, by using the typeLabel values. Currently there are 5 defined type label values and the possibility to define user custom types.

The xxxx part is a four-digit hexadecimal number, which identifies the description within a particular type. Values in the range 0001-0FFF are reserved for common definition such as ‘FrontLeft’ or ‘Stereo’. Common definitions are specified in Recommendation ITU-R BS.2094. Values in the range 1000-FFFF are for custom definitions, which will be particularly used in object-based audio where all the objects will be custom definitions.

The audioChannelFormatID values in the range 0001-0FFF specify the channel with respect to the channel label and channel configuration. The set of defined common definitions for audioChannelFormatIDs for typical speaker positions is found in ITU-R BS.2094. Some examples of these common definitions are shown below:

ID of channel Name of channel SpeakerLabel
AC_00010001 FrontLeft urn:itu:bs:2051:0:speaker:M+030
AC_00010002 FrontRight urn:itu:bs:2051:0:speaker:M-030
AC_00010003 FrontCentre urn:itu:bs:2051:0:speaker:M+000
AC_00010004 LowFrequencyEffects urn:itu:bs:2051:0:speaker:LFE
AC_00010005 SurroundLeft urn:itu:bs:2051:0:speaker:M+110
AC_00010006 SurroundRight urn:itu:bs:2051:0:speaker:M-110

The audioPackFormatID specifies the channel configuration. The set of defined common definitions for audioPackFormatIDs for typical speaker configurations is found in ITU-R BS.2094. Some examples of the common definitions are shown below:

ID of pack Name of pack
AP_00010002 Stereo_(0+2+0)
AP_00010003 5.1_(0+5+0)

The zzzzzzzz part of the audioBlockFormatID is an 8-digit hexadecimal number that acts as an index/counter for the blocks within the channel. This index should start at 1 for the first block. The yyyyxxxx values should match those of the parent audioChannelFormat ID. The zz part of the audioTrackFormatID is a 2-digit hexadecimal number that acts as an index/counter for the tracks within the stream. The yyyyxxxx values should match those of the reference audioStreamFormat ID.

The audioProgrammeID, audioContentID and audioObjectID formats do not have a type and so have no yyyy values. Even though there is initially no intention to have common definitions for these elements the values for wwww will be in the hexadecimal range 1000-FFFF because they will always be custom values. However, keeping the common range of values (0000-0FFF) set aside for now may be useful in future; for example, EBU R 123 configurations may use them.

IDs with a zero value should not be used for any definitions, as they are reserved for elements that should be ignored and are undefined. For example, AT_00000000_00 is for an audioTrackFormat that has no definition and should be ignored. This can be useful for audio files that contain unused tracks (e.g. an 8-track file containing 5-channel audio), so the 'chna' chunk can reference AT_00000000_00 in the audioTrackFormat fields for those unused tracks.

Both upper and lower-case hex digits (a-f and A-F) must be supported when reading IDs. Therefore, IDs with the same digits, but with a different case are treated to be identical. For example, AC_0001000a and AC_0001000A are the same ID.