CPU or CPU+GPU Processing: How Can I Achieve Quality Transcoding and Image Processing in the Cloud?
Published: April 6th 2021
Which is better, CPU or CPU+GPU processing? Cloud-based transcoding is a powerful and flexible option for delivering video images to a content-hungry world. Transcoding is certainly an important step in making content available for the varying connection throughputs between mobile, cable, fiber, and satellite data delivery networks, but transcoding is only one part of a delivery solution that almost always requires some level of image processing in order for the viewer’s experience to be maximized.
This can be a loaded topic because the idea of quality is subjective. Those that don’t understand the frame mechanics of a video stream or the value of quality image processing may operate from the “it’s good enough” or “that’s the way it has always been done” workflow ideology.
Video Transcoding and CPU or CPU+GPU Processing Considerations
The process of transcoding or converting your video footage requires a lot of computing power. Depending on the type of footage with which you may be working, this can be very process-intensive. You may find that your computer system is not able to keep up with the demands of today’s higher-resolution video when flipping the video from QuickTime to H.264 or H.265. Then there is the heavy processing-intensive world of image conversion/manipulation. If the video requires denoising, video retiming, or standards conversion, the wrong technology will add significant processing time, if not separate renders altogether. In addition, if a marginal set of algorithms are used, a lot of effort can be spent generating a poor quality output.
Many non-linear editing (NLE) applications, such as Adobe Premiere, Avid, and Vegas Pro, require a fast CPU. When editing ProRes, DNxHR, H.264, and more codecs, your CPU is the heavy lifter, performing all of the dissolves, color adjustments, encoding on the fly so your project can be seen in real-time on the screen. It goes without saying that a CPU with more cores will likely be of benefit in these workflows as the higher the core count, the higher the number of threads that can be called into action. Clock speed is equally important to core count. Clock speed is how quickly your CPU will solve the problems that you throw at it. Think of your CPU as a number of brains (the cores), and the clock speed is how quickly those brains solve problems. The more brains solving more problems, the faster your problems are solved. Just remember; the more cores, the heftier the price tag for that new CPU. There will eventually be a performance bottleneck for CPUs because when you think about CPUs, you think in core counts in the 10s, which will only place threads into motion that are 2x the core count. Higher bit depths, higher resolutions, more tasks all take a significant toll on CPU-only performance.
In the NLE world, CPU is king, and while GPUs can offload certain special functions, it’s the CPU that takes the brunt of the challenge. NLEs can be quite mobile, and editors often think primarily about CPU performance when it comes to transforming images. That mindset easily carries downstream and becomes the sole focus when thinking about delivery at scale. This leads to the next factor relating to CPU or CPU+GPU Processing, which is…
GPU Processing
GPUs (Graphics Processing Unit) do one thing better than any other compute method: they process high volumes of data incredibly fast. There is a reason GPUs dominate the cryptocurrency mining sector and CPUs do not. GPUs are king when it comes to FLOPs (Floating Point Operations per second), and the key to riding the GPU technology wave is having code that exploits 100% of the available FLOPS and memory bandwidth available. When the proper code rides on a platform with very high processing core counts, a multi-threaded world with thousands of parallel paths opens up and complex image processing becomes possible in real time or faster. NVIDIA created a platform just for their GPUs, called “CUDA.”
What the heck is CUDA?
CUDA is a massively parallel computing platform and programming model. While CPUs count cores in the 10s, the latest GPUs count cores in the 10,000s. CUDA enables dynamic increases in computing performance, specifically the Fast Fourier Transform (FFT) that is the basis for all motion analysis (the building block of image processing). While the FFT can run with slightly smaller latencies on CPU than GPU, putting three orders of magnitude of processing threads in flight quickly trumps the latency gap. Imagine having two delivery truck types. One is slightly faster than the other, but you only have 100 of the slightly faster model and you have 10,000 of the slower one. Which model is going to move more over time?
Convert Video and Audio Content in the Cloud
There are quite a few choices when it comes to transcoding in the cloud. What are the delivery and quality requirements? If it’s just simple transcoding (one of my colleagues uses the analogy that transcoding is like “ripping a CD to MP3”), then any cloud transcode service will probably do a great job, and the CPU-based technologies that scale to use free instances or highly reduced compute platforms will probably do just fine. But if the job is up-resing, removing telecine/duplicate frames, deinterlacing for OTT platforms, frame rate conversion, standards conversion, up-conversion from SDR to HDR, or retiming, the value presented by CPU-only platforms quickly fades, while the value presented by leveraging the best of both CPU and GPU compute power to optimize the content quality and turnaround time becomes self-evident. Poor quality, incredibly slow processing times, and a price tag that is significantly more than “just ripping a CD to MP3” will be the norm in CPU-only platforms.
Media transformation for multiple delivery methods is in high demand. Studios, networks, and production companies need more efficient and enterprise-grade remote workflow options than ever before. Cinnafilm PixelStrings is an award-winning media transformation platform that allows users to transcode, audio/video legalize, upres, perform standards conversion, and more in a SINGLE RENDER. It is a powerful and flexible option that is available in the cloud and on-premises. What makes PixelStrings different from most other platforms is that Cinnafilm harnesses both CPU and GPU to maximize quality and performance by leveraging GPUs for data-intensive image processing while using lower latency CPUs for encoding and decoding.
Cloud or On-Premises Media Conversion, Cinnafilm Has You Covered
We created PixelStrings for those that either don’t have the in-house equipment, staff, or budget to devote to video transcoding and conversion, or want to migrate all of their on-premises functions into the cloud in a fully automated fashion. For those that want to retain on-premises control of their assets, PixelStrings On-Prem is available with the same functionality as PixelStrings Cloud! Use applications such as Cinnafilm Tachyon for video standards conversion, and Cinnafilm Dark Energy for image optimization and video noise reduction (denoising). Many more powerful solutions are available such as Skywalker Sound Tools (channel routing and loudness control), Tachyon Wormhole (audio and video timing), and Dark Energy Xenon (SDR to HDR conversion).
If you need more information on hardware requirements for on-premises media conversion or more insight into what is possible in the cloud, we’d love to connect today to get you started.
We hope you found this article on CPU or CPU+GPU processing helpful!
Don’t miss the latest news and updates. Subscribe here.
We strive to make PixelStrings the most efficient, affordable video standards transcoding workflow option with the highest level of quality achievable. Contact us with any feedback and suggestions that will make your workflows everything you need them to be.