Home 
 Map 
 ⇑ 

 ⇐   July 26th, 2015   ⇒ 

Copyright 2015 Michael Anttila

Things have been very busy at work. We have been working on the new VersioCloud product, getting it ready for our first major customer. One of the things that I have been personally working on is the overall latency of the system.

What is latency? In this case, it is the amount of time it takes our product to do its part of the video processing. At a TV station, everything is running off a master clock. In this case, our clock is running at 60 frames per second. Every time the clock "ticks", a new frame of video must be generated or processed.

The latency of a device is measured in frames. If a device is able to process video without any delays (like a video router for example), it has a latency of zero frames. In our case, VersioCloud is doing a lot of stuff to the video (decoding it, adding graphics, mixing in new audio, reading and modifying ancillary data), and it can't do all of that stuff instantly, so our latency will be greater than zero.

This is a photo I took in my office. In order to measure the latency of the VersioCloud product, I used two video scopes - one hooked up to the video stream before it enters VersioCloud, and one hooked up to the video stream after it leaves VersioCloud. For my video feed, I used a clip (being played from an external Nexio video server) that has timecodes "burned in" to it. By taking a single photo of both scopes, I can easily measure the latency.

Timecodes count up in frames, and there are 60 frames in a second for this clip. The timecode value is read like this: "HH:MM:SS;FF", or "hours:minutes:seconds;frames". You can see from this photo that our total latency through the product is 26 frames (45 minus 19). I believe the latency of our "baseband" product (Versio) is 18 frames, so we have to make some improvements if we want to match the latency of that product.

I'm confident that we can do it. There are several areas where performance can be improved, and where internal buffers can be reduced in size. We just have to sit down and analyze each part of the software pipeline and see where the biggest improvements can be made. This kind of optimization is really fun because it forces you to think about the entire system and how all of the pieces fit together.

Anyway, there is a brief window into the work that I'm doing. I'd love to be able to explain everything about the VersioCloud product, but of course it is all rather proprietary. This latency test was something tengible that I could talk about without giving away anything about the internals of the product or our customers. Also, the two scopes stacked up on my desk caught my eye as something visually striking that I could take a picture of at work.

Technical Details: This photo was taken with my 5D Mark II + Tamron 28-75 at 59mm, ISO 3200, f/2.8 for 1/400th of a second.

Comments

Very exciting stuff! Thanks for giving us a little insight into the challenge.
-- Dad at 2:19pm, Sunday August 9, 2015 EST

POTW - Photo Map - Home - Feedback

Hosted by theorem.ca