608 vs 708 Caption Encodes with Cablecast

May 10, 2023

608 Caption Encoding

608, also known as line21, originally comes from EIA/CEA/CTA-608. It was originally designed for analog televisions, and is the flickering white line in the active picture area if you overscan an NTSC signal with captions.

For reference the VIO / Flex servers will output line21 captions if outputting NTSC and have captions in the signal.

608 captions are limited. They only support regular latin languages:

  • English
  • Spanish
  • French
  • Dutch
  • German
  • Portuguese

Only two full caption services can be carried at a time as well as two secondary caption services and some txt services. Because CC1 and CC2 share bandwidth (as does CC3 and CC4) generally CC1 is used for a primary language while CC3 is used for a secondary language, as recommended by the FCC.

  • CC1 (field 0)
  • CC2 (field 0)
  • TXT1 (field 0)
  • TXT2 (field 0)
  • CC3 (field 1)
  • CC4 (field 1)
  • TXT3 (field 1)
  • TXT4 (field 1)

708 Caption Encoding

CEA/CTA-708 is the closed captioning system designed for digital television. It improves upon 608 in a few ways.

  • More control of style
    • Fonts / Colors / Positioning
  • More Bandwidth / Services
    • Up to 6 full bandwidth services
  • Support for Extended Western Character Set
    • Means more languages like Russian
    • This however does not mean universal language support. No standards body in North America has defined character tables for Asian Languages.

708 Transport Specifically In SDI Output of Video Servers

708 muddied the water a bit because as well as defining how captions are encoded and decoded for display purposes. It also blends in some of the transport systems, as well as backwards compatibility with 608.

There are at least three standards bodies involved and maybe 10 specifications which I won’t reference them all. But the big ones are SMPTE and CTA.

  • SMPTE 334 - SMPTE Standard - Vertical Ancillary Data Mapping of Caption Data and Other Related Data
  • SMPTE 291M - SMPTE Standard - Ancillary Data Packet and Space Formatting
  • CTA-708-E S-2023 - Digital Television (DTV) Closed Captioning

Basically SMPTE defines that the VANC (Vertical Ancillary Data) - the metadata in a SDI signal that is not the audio or video can carry CDP (Caption Data Packet). The CTA specs define how that CDP is laid out.

The thing that can be most confusing, is that a CDP is always carrying a 708 payload. The 708 specification specifically reserves space for backwards compatibility to carry 608 encoded data. So even though the SDI signal may not be carrying 708 caption services, and is in fact only carrying 608 encoded services, the data structure itself is valid 708. This is commonly referred to as 608 in 708 or (608)708.

The best illustration of this is a screenshot of the documentation from an SDI analyzer.

Below is a single line in a SDI signal, specifically a line carrying a CDP (Caption Data Packet).

  • Note the CEA 608 CC1 - this is the legacy 608 encoded data wrapped in the 708 packet. This is what you would see in our systems since we only encoded 608 data on CC1
  • Note the CEA 708 DTVCC Start Header - This is the start 708 encoded data services. This is not required, and would only be present if there were 708 encoded services. You wouldn’t see this on caption signals generated by Cablecast Closed Captions. You however would see it if playing back an MCC sidecar file with 708 encoded services.