It’s really useful, widely applicable and almost essential for broadcast workflows…yet it lurks anonymously inside a set of almost unrelated standards.
If I told you I had a great idea for seamlessly allowing a decoder to switch between to paths, meaning that you could suffer packet loss and still, without anyone noticing a thing, keep audio and video going. If I told you it would be a perfect complainant to protocols like SRT, RIST and FEC schemes which work around packets loss but can’t possibly deal with the long-term loss of a whole path. If I told you that it’s so flexible that it doesn’t even have to be video data, doesn’t have to be audio, but anything which is on RTP, opening this up to a whole gamut of other uses such as metadata streams, high- and low-bitrate streams and even uses outside of the industry. Well, if I told you all of that would you say, “Ok, best call it SMPTE ST 2022-7 then”?
You might have guessed I wouldn’t and I think it gets overlooked because of its name. It lives in the set of SMPTE standards which define forward error correction for, and the transmission over IP of, compressed and uncompressed media. The name of the standards itself is “Seamless Protection Switching of SMPTE ST 2022 IP Datagrams.” Whilst it’s hardly catchy, this title does at least start to unpick what it does.
2022-7, also known as ‘Dash Seven’, sets up a short buffer in the receiving device which stores the incoming packets from both streams. If delivery is working perfectly, the buffer will have two of each packet. The -7 receiver gets one of each and delivers it to the next part of the chain, often a decoder. Naturally, if one path suffers packet loss, then there would only be one copy of that packet in the buffer, not two, but one’s all you need. So whether there is occasional loss or a long-term fault on a path, downstream no-one knows that anything has happened because they never saw an interruption in the packet flow.
This redundancy is made possible using RTP. RTP adds a timestamp and sequence number on to every UDP packet. It’s only with this extra information that the -7 receiver is able to spot the gap in the incoming traffic and find a packet to match. It’s important to note that the packets are expected to be identical in both payload and headers. Typically a single encoder creates two streams, though 2022-7 streams can be generated further down the chain by any device which can take one incoming IP stream and send it to two separate places. To hear more about 2022-7, watch this explanation, part of an excellent primer on all aspects of uncompressed video over IP from Wes Simpson of LearnIPVideo.com and Ed Calverly from Q3 Media Training