Ancillary data
Ancillary data is data that has been added to given data and uses the same form of transport. Common examples are cover art images for media files or streams, or digital data added to radio or television broadcasts.
Television
Ancillary data, in the context of television systems, refers to a means which by non-video information may be embedded within the serial digital interface. Ancillary data is standardized by SMPTE as SMPTE 291M: Ancillary Data Packet and Space Formatting.Ancillary data can be located in non-picture portions of horizontal scan lines. This is known as horizontal ancillary data. Ancillary data can also be located in non-picture regions of the frame, This is known as vertical ancillary data.
Technical details
Location
Ancillary data packets may be located anywhere within a serial digital data stream, with the following exceptions:- They should not be located in the lines identified as a switch point.
- They should not be located in the active picture area.
- They may not cross the TRS packets.
- Ancillary packets located in the horizontal blanking region, regardless of line, are known as horizontal ancillary data, or HANC. HANC is commonly used for higher-bandwidth data, and/or for things that need to be synchronized to a particular line; the most common type of HANC is embedded audio.
- Ancillary packets located in the vertical blanking region, and after SAV but before EAV, are known as vertical ancillary data, or VANC. VANC is commonly used for low-bandwidth data, or for things that only need be updated on a per-field or per-frame rate. Closed caption data and VPID are generally stored as VANC.
VANC packets should be inserted in this manner:
- : VANC data packets can appear anywhere between the SAV and EAV TRS packets in any line from the second line after the line specified for switching to the last line preceding active video, inclusive. Given the spec for switch points, the first allowed lines are 12 and 275 or 8 and 321. This conflicts with SMPTE 125M, and does not address requirements for carrying DVITC and video index packets.
- : VANC should appear only in lines 1-13, 15-19, 264-276, and 278-282, with lines 14 and 277 reserved for DVITC and video index data. This conflicts with SMPTE 334M, and does not address 625-line/50 Hz systems.
Packet format
Three words immediately follow the start sequence in the header. The first word after the start sequence is the Data Identifier or DID, followed by either a 'Secondary Data Identifier or a Data Block Number, followed by a Data Count. After the Data Count word are 0 - 255 User Data Words, followed by a Checksum word.
DID
The Data Identifier word, indicates the type of ancillary data that the packet corresponds to. Data identifiers range from 1 to 255, with 0 being reserved. As the serial digital interface is a 10-bit format, the DID word is encoded as follows:- Bits 0-7, are the raw DID value.
- Bit 8 is the even parity bit of bits 0-7.
- Bit 9 is the inverse of bit 8.
If the DID is equal to 128 or greater, then the packet is a Type 1 packet, and the DID is sufficient to identify the packet type, and the following word is a Data Block Number. If the DID is less than 128, it is a Type 2 packet, and the following words is the Secondary Data Identifier; the DID and SDID together identify the packet type.
SDID
The SDID is only valid if the DID is less than 0x80. The SDID is nominally an 8-bit value, ranging from 0 to 255. It is encoded in the same fashion as the DID.DID/SDID words of 161 101 correspond to a DID of 61 hex, and a SDID of 1 ; these values would indicate that the packet type is defined by SMPTE 334M, and contains DTV closed captions data.
DBN
The DBN is only valid if the DID is 80 hex or greater. It is used to identify multiple packets of the same type within a field; each subsequent packet of the indicated type has a DBN which is one higher than the previous packet, wrapping around as necessary. The DBN is an 8-bit value, encoded in the same fashion as the SDID.DC
The Data Count word is an 8-bit value, encoded in the same fashion as the DID, which indicates how many user data words are to follow. It can range from 0 to 255.UDW
User data words are the "payload" present in the ANC packet. They are defined according to the packet type, SMPTE 291M does not define their use or impose any restrictions on the values which may be present in the UDW space. The only restriction is that the reserved values in the serial digital interface may not be included in the UDW. Many ANC formats, though not all, are essentially 8-bit formats, and encode data in the same manner that the header words are encoded.Example
SMPTE 352M defines four UDW:Bits | Byte 1 | Byte 2 | Byte 3 | Byte 4 |
Bit 7 | 1 | Interlaced or Progressive transport | Reserved | Reserved |
Bit 6 | 0 | Interlaced or Progressive picture | Horizontal Y´/Y sampling 1920 or 2048 | Reserved |
Bit 5 | 0 | Reserved | Reserved | Reserved |
Bit 4 | 0 | Reserved | Reserved | Dynamic range 100%, 200%, 400%, Reserved |
Bit 3 | 1 | Picture Rate | Sampling structure | Dynamic range 100%, 200%, 400%, Reserved |
Bit 2 | 0 | Picture Rate | Sampling structure | Reserved |
Bit 1 | 0 | Picture Rate | Sampling structure | Bit depth 8-bit, 10-bit, 12-bit, Reserved |
Bit 0 | 1 | Picture Rate | Sampling structure | Bit depth 8-bit, 10-bit, 12-bit, Reserved |
Checksum
The last word in an ANC packet is the Checksum word. It is computed by computing the sum of bits 0-8, of all the other words in the ANC packet, excluding the packet start sequence. Bit 9 of the checksum word is then defined as the inverse of bit 8. Note that the checksum word does not contain a parity bit; instead, the parity bits of other words are included in the checksum calculations.Usage
Embedded audio
is audio payload which is the soundtrack for the video program. Two standards, SMPTE 272M and SMPTE 299M define how audio is embedded into the ancillary space. The SD and HD standards provide for up to 16 channels of PCM audio, while 3G allows up to 32 channels, typically encoded in the AES3 format. In HD, the embedded audio data packets are carried in the HANC space of Cb/Cr parallel data stream.In addition, both standards define audio control packets. The audio control packets are carried in the HANC space of the Y parallel data steam and are inserted once per field at the second video line past the switching point. The audio control packet contains audio-related metadata, such as its timing relative to video, which channels are present, etc.
Embedded audio packets are Type 1 packets.