CUDA Spotlight: CUDA-Accelerated Video Processing
Find other great interviews on our CUDA Spotlights page.
This week's Spotlight is on Jesse Rosenzweig, CTO and co-founder of Elemental Technologies. Jesse spearheads Elemental's application development, quality assurance and R&D groups.
NVIDIA: Jesse, what is your role at Elemental?
Jesse: I act as the glue between customers, partners, and our engineering, marketing and QA teams. In addition, I lead an R&D team that constantly builds prototypes and scopes out future technologies to integrate into our products. During Elemental's early days, I wrote video codec CUDA code (although I imagine there aren't many of my lines left now, given the strength of our CUDA team!).
NVIDIA: How do your products leverage GPU computing?
Jesse: Every pixel of every frame of a video source into our system is decompressed, processed and even recompressed using the GPU and our proprietary video processing pipeline. This allows us to not only get extremely fast, high-quality video processing, but also to offload the CPUs to accommodate audio processing, security, content wrapping, database management and content serving while providing a responsive user interface, even during a heavy system load.
Our CUDA code was written from scratch for video processing. All processing, including decompression, deinterlacing, scaling, color correction, color conversion, frame-rate conversion, noise reduction, deblocking and compression was built right here at Elemental. We take advantage of the decoding hardware and get concurrency across the video decoding hardware in the GPU, the CUDA processors, and the CPU.
Additionally, we use GPUs and CUDA internally in our QA department to accelerate the measurement of PSNR (peak signal-to-noise ratio), introduced by the encoding processes. This allows us to run additional video analysis when doing algorithm development and avoid any regression in quality levels on a nightly-build basis.
NVIDIA: What are some advantages of CUDA?
Jesse: We've been working with CUDA since version 0.7 and, we believe, helped shape it into what it is today. There is no better platform for executing massively parallel algorithms and transferring data to and from the GPU. It's important to get GPU code to work in an optimal way, and the movement of data between the CPU and GPU is crucial when doing video processing, where each frame may have numerous GPU kernels executed on it.
NVIDIA has consistently expanded the toolset, starting with the beloved occupancy calculator spreadsheet, leading to the Visual Profiler and Parallel Nsight tools. With the advanced toolset, compiler and overall maturity of the product, our CUDA team can focus on our expertise, which is translating and optimizing video algorithms on a heterogeneous GPU/CPU architecture.
NVIDIA: As CTO, why did you choose to work with GPUs?
Jesse: As consumers look to view video on every device imaginable, the demand for video formatting is skyrocketing and scalability is critical. As needed, we can integrate advanced GPUs with more processors and everything will run quicker or process in new, more resource-efficient ways. Video processing features, such as analysis, forensic watermarking or improvements in quality are simply an upgrade for our customers. This scalability and flexibility would be rather difficult to accomplish with a DSP or other specialized hardware-based architecture.
NVIDIA: Tell us about Elemental Live.
Jesse: Elemental Live is our solution for processing live video. It allows media companies, such as Comcast, Time Warner Cable, Avail-TVN, ABC News, CBS and others, to deliver real-time content (live events, sports, satellite feeds, etc.) to TVs, PCs, tablets and mobile devices using the latest adaptive streaming technologies from Adobe, Apple and Microsoft. Since launching our flagship product lines a little over a year ago, we are now powering streaming applications in seven of the top 10 media companies and all three of the major sports leagues. You can see it in action here: http://www.elementaltechnologies.com/lp/elemental-live-streaming-demo.
Jesse Rosenzweig has over a dozen years of video experience, including development with digital televisions, projectors, network connected displays and video processing systems such as those at Elemental. He is passionate about building exciting products that make waves in the industry. Prior to Elemental, Jesse held software engineering and management positions at Pixelworks, Qualcomm and Ericsson. He holds a B.S. in computer science from the University of Colorado, Boulder. Jesse enjoys spending his free time exploring rivers and mountains and is at home in the elements.
Jesse is currently hiring top-notch engineers. Check out Elemental's openings at: http://elementaltechnologies.com/company/careers