Avid has been serving the needs of creative professionals for over two decades. Its flagship product, Avid Media Composer*, is used by a majority of film, television, and news editors. Offering a powerful editing tool set, 64-bit optimized operation, and the ability to work with everything from old-school analog videotape to footage shot with the latest digital camera technologies, Avid Studio* gives home enthusiasts access to the same time tested video-editing and -sharing technologies that video professionals use. A streamlined interface and professionally designed templates, effects, and transitions—as well as in-depth training materials—help enthusiasts create compelling home videos, web content, and wedding and event videos.
Avid engineers turn to Intel® software developer tools, such as Intel® Media Software Development Kit (Intel® Media SDK), Intel® VTune™ Amplifier XE, and Intel® Integrated Performance Primitives (Intel® IPP) to overcome decoding inefficiencies, identify performance bottlenecks, and greatly boost application performance on the 2nd generation Intel® Core™ processor family.
Avid Studio*: Doubling Performance with Intel® Media SDK
Avid Studio is the latest addition to Avid’s line of user-friendly consumer video editing software. Avid Studio builds on the success of Avid’s Pinnacle Studio* version 15 and features a completely revamped user interface and a new project engine that run on top of the existing runtime.
“The first goal of this rewrite was to develop a user-interface architecture that was more flexible than the old UI ,” explained Dieter Huber, engineering manager of Avid’s Creative Enthusiasts Division. “In addition, we added a complete management and browse facility for all of the media on your system. The library helps you efficiently organize your media and allows you to tag and rate files, as well as assemble collections of video, audio, and still pictures.”
“We also now support unlimited compositing,” Huber added. “Where the old Studio was limited to handling two-track-style editing, Avid Studio lets users work with an unlimited number of tracks.” The ability to work with numerous tracks of video makes it possible to create complex picture-in-picture and multilayered effects.
Avid Studio supports playback and editing of H.264-format HD video. H.264, also known as MPEG-4 Layer 10 or AVC, requires a lot of computing muscle to edit and play back smoothly. To accommodate handling many tracks of demanding HD footage based on the H.264 codec, Huber’s team used the Intel Media SDK.
“We had problems with our old decoder,” Huber said. “When run on multi-core CPUs, it did not scale as well as we wanted it to. And there was no hardware support, especially on notebooks. We’ve been working with the Intel Media SDK since version 1.1. We used version 2.0 to create the current version of Avid Studio, and we’re now working on our next release using 3.0 [Intel Media SDK 2012],” Huber said. “We’ve had a very good experience with Intel Media SDK. It has given us a real boost in the number of H.264 streams we could play in parallel. On a 2nd gen Intel® Core™ i7 processor, we’re seeing 2x faster performance, doubling the number of H.264 streams we can play.”
Avid was able to tap into the hardware-accelerated decoding of Intel® Clear Video HD Technology, a feature that’s built into the 2nd gen Intel Core processors, by developing its code with the Intel Media SDK. “The nice thing about writing code with the Intel Media SDK is that your applications work right out of the box,” Huber said. “You don’t need to write a separate solution for each platform. If your application is run on a platform that doesn’t have hardware acceleration, it automatically uses an Intel-optimized software decoder. If a hardware decoder is seen, it’s automatically used. Without the Intel Media SDK, you’d need to write a separate code path to support third-party GPUs. Another nice thing about using the [Intel] Media SDK is that it was easy to port our code to 64-bit.”
We’ve been working with the Intel® Media SDK since version 1.1, so it’s impossible to quantify how much time we’ve saved. I can say, however, that coming up with a similar solution without Intel Media SDK would have required at least two or three more developers.”
—DIETER HUBER, ENGINEERING MANAGER, CREATIVE ENTHUSIASTS DIVISION, AVID
Huber’s team worked closely with Intel engineers and used Intel VTune Amplifier XE to identify hotspots in their video-processor pipeline. Intel staff also suggested ways to optimize specific areas of Avid’s code. “We typically try to optimize wait state and load times,” Huber explained.
How much time did Avid engineers save by using Intel software development tools? “We’ve been working with the Intel Media SDK since version 1.1, so it’s impossible to quantify how much time we’ve saved,” Huber said. “I can say, however, that coming up with a similar solution without Intel Media SDK would have required at least two or three more developers.”
Avid Media Composer*: Pinpointing and Eliminating Bottlenecks
With Objective Data Avid Media Composer is a cross-platform media creation tool that professionals use to create television shows, movies, and news. “Media Composer users want their software to be responsive,” Rob Gonsalves, who works in the office of Avid CTO Tim Claman, explained. “When they add video effects and then press the Play button, they expect to see immediate results. They don’t like to wait for things to render. The performance of the product is critical.”
Like their counterparts in the Avid Creative Enthusiasts division, the Avid Media Composer team worked closely with Intel to ensure that Avid Media Composer was fully optimized to get the best performance possible on Intel® processors.
Identifying hotspots and bottlenecks in a code base that consists of hundreds of modules and millions of lines of code, however, is no easy task. “Many things can make a program run slow,” Gonsalves said. “Most developers have a notion of what might be slow. When you ask them to try to improve performance, if they don’t have hard data to go by, they’ll work on improving routines that they think are slow. A lot of times, that work has no impact on performance.”
Intel VTune Amplifier XE has been invaluable in identifying performance bottlenecks, allowing Avid to optimize their code based on objective data as opposed to hunches. “[Intel] VTune [Amplifier XE] gives us data on the timing of different instructions within the program. With that data we can pinpoint the actual hotspot,” Gonsalves said.
Gonsalves has worked at Avid for 22 years and spent many of them optimizing Media Composer. He has seen how the evolution of microprocessor architecture has affected the way that applications are optimized. “In the past you could make the assumption that your applications were going to be running on a single CPU,” he said. “To optimize them, you would have to figure out either how to avoid slow calls or how to reduce the complexity of the algorithm. With the proliferation of multi-core systems, we have to think about optimization in a different way: How can we break up a task to spread the workload across multiple cores? That is actually a difficult thing: (1) to design, and (2) to prove that it is working effectively. That is where the Intel® Threading Building Blocks have come in. With Intel TBB you can actually use some libraries like Intel® Cilk™ Plus to distribute the workload across multiple cores, but you can also use the Intel® Thread Profiler, an analysis tool, to see the utilization of the cores as your program is actually running.”
As computing power advances, so too do applications that stress even the most powerful new multi-core, multi-threaded microprocessors. Prime examples of this in professional video-editing workflows are new cameras, such as the RED ONE* and RED* Epic digital-cinema cameras that record RAW-format video at 2K, 4K, and even higher resolutions. RAW-format video footage borrows from digital-still camera imaging techniques and captures all of the image data—gamut, color detail, exposure, and so on—directly from the image sensor, producing high-quality video footage. Files of that size and depth, however, are incredibly tough on a system’s processors making performance optimization all the more important.
“Our codec team’s goal is to support the latest video formats and to support them efficiently. There is a lot of compression with both RED and H.264 HD video files. The best way to achieve good performance is by starting with objective data about where your actual bottlenecks are,” Gonsalves said. “Our codec team uses Intel VTune [Amplifier XE] and Intel Thread Profiler to identify bottlenecks and fine-tune the efficiency of our code across multiple cores.”
In the 1990s, Avid professional video-editing and -finishing systems employed specialized hardware for capturing and outputting digital and analog video. “Avid’s initial HD editing systems used dedicated hardware chips for video processing. Today we’re doing less and less of that and instead relying on the CPU and GPU to perform those functions,” Gonsalves said.
[Intel®] VTune [Amplifier XE] gives us data on the timing of different instructions within the program. With that data we can pinpoint the actual hotspot.”
—ROB GONSALVES, SENIOR CONSULTING ENGINEER, OFFICE OF THE CTO, AVID
As broadcasters move beyond television and deliver content to mobile and web-enabled devices, Avid is developing software-based technologies optimized to run on modern browsers. Avid Interplay* Central, for example, is an extension of Avid’s Interplay production asset management system. Interplay lets enterprise-level video operations organize and share editable media assets between news, editorial, and business units. With Interplay Central, users can browse video, audio, and metadata assets using an Internet connection and a browser. The company is also evaluating applications that run on Intel® Atom™ processor-based tablets and notebooks.
No matter what innovations are on the horizon, Intel application engineers will continue to assist Avid engineers, using Intel software developer tools to optimize and benchmark applications, helping to deliver exceptional performance on Intel® processor microarchitecture.
An OpenCL * Future
Intel® OpenCL SDK 1.5 is the Intel implementation of the OpenCL* (Open Computing Language) standard optimized for Intel® processors and running on CPUs. OpenCL provides a uniform programming environment for software developers to write efficient, portable code for client computer systems, high-performance computing servers, and handheld devices using a diverse mix of multi-core CPUs and other parallel processors.
The Intel OpenCL SDK 1.5 makes it easy for developers to design, build, debug, and profile OpenCL applications. The Intel OpenCL SDK is optimized for 2nd generation Intel® Core™ processor family and Intel® Xeon® processors and includes:
- Unique Implicit CPU Vectorization Module that seamlessly provides Intel® Advanced Vector Extensions (Intel® AVX) code generation, enabling full utilization of the single-instruction, multiple data (SIM D) vector width of 2nd gen Intel Core processors.
- The Intel OpenCL SDK Debugger Beta software, a Microsoft Visual Studio* 2008 plug-in that gives the ability to debug into OpenCL kernels using the familiar graphical interface of Microsoft Visual Studio 2008.
- The Intel OpenCL SDK Offline Compiler, a unique tool that offers full offline OpenCL language compilation, including an OpenCL syntax checker, platform-compilation support for cross-Intel hardware generation, low-level virtual machine (LLVM) viewer, assembly language viewer, and intermediate program binaries generator.
“Avid is very interested in OpenCL,” senior consulting engineer Rob Gonsalves said. “It allows us to write code once and use it either on a CPU or a GPU. Today, we write code for, say, a video effect three times. We write a reference implementation in C, write another version that will be shipped in our products that is optimized using vector processing, and we create a third version using a shader language for use on a GPU. The promise of OpenCL is to write an algorithm once and use it on a diverse mix of parallel processors.”
“In the long run, OpenCL may replace our SIM D or SSE code, as it would afford us high-level programming that doesn’t need to be optimized separately for each platform,” added Dieter Huber, engineering manager of Avid’s Creative Enthusiasts Division. “If, in the future, we still have a bunch of MM X™ [instructions] code, we’ll have to decide whether it’s best to move it to SSE or OpenCL.”
Intel OpenCL SDK is available as a component of both the Intel® Media Software Development Kit 2012 and Intel® Graphics Performance Analyzers 2012. 30
Sign up today for Intel® Visual Adrenaline magazine: www.intelsoftwaregraphics.com »