This week, Telestream announced the availability of an open source H.265 (HEVC) encoder, co-founded and managed by MulticoreWare Inc. I had a chance to speak with Telestream CTO Shawn Carnahan about the venture.
He explained that Telestream first started working with MulticoreWare when it included the x264 codec in several of the company’s encoding tools. While x264 is generally regarded as the highest quality H.264 codec, it lacked efficient GPU parallelization, so didn’t work efficiently on multiple-core computers. With OpenCL gaining momentum on the Macintosh, and CUDA acceleration very prevalent on Windows computers, the ability to efficiently utilize these available resources was a priority.
Telestream reached out to MultiCoreWare for assistance with multicore CPU and GPU acceleration. Telestream also involved Jason Garrett-Glaser, lead developer of the x264 project, who provided guidance on how to best apply parallelization to the x264 codec. The three-way collaboration worked so well that Telestream decided to apply it to the next generation x265 codec.
With the x264 codec, x264 licensing is handled by CoreCodec Inc, via the website x264licensing.com, which offered both GPL and commercial licenses. Briefly, under a GPL license, all products that include the source code must also be open source, which obviously isn’t desirable for commercial products. This is why companies that sell encoders using the x264 codec opt for the commercial license, which doesn’t have the open source requirement.
The new open source HEVC encoder will be offered under similar terms, with licensing available via the x265 website at x265.org. When I checked the site, source code was available with an executable that you can download and run from the command line. As with x264, Carnahan expects that a robust group of open source and commercial products will soon utilize the new codec.
In terms of structure, the x265.org website lists Telestream as a “sponsor” and MultiCoreWare in a project coordination role. It appears that Garrett-Glaser and his team will continue to be involved, as one of the project goals is to “build on the x264 codec … to create the best HEVC (H.265) video encoder in the world.” At the time of this writing, the only two “members” are Telestream and MulticoreWare.
In discussing Telestream’s motivation for sponsoring the project, Carnahan noted that Telestream had frequently licensed third-party codecs for their products, and often “the third-party vendor’s development focus wasn’t the same as ours.” Basically, Telestream’s investment, and the investment of other parties he expects to soon join the group, will allow them to help direct the future development of the x265 codec.
As Carnahan explained, “HEVC is far more complicated than AVC, and it’s very difficult for any one company to develop HEVC and meet all relevant goals, whether it’s faster-than-real-time performance via parallelization or the ability to ‘fan out,’ or efficiently produce multiple file iterations from a single source for adaptive distribution. This team produced such good results with the quality and performance of x264 that we decided to apply the same principles, but involve more people and more use cases.”
Royalties Still Apply
As with x264 licensing, any royalties for the commercial license will be exclusive of that sought by the HEVC patent group, and Carnahan had no information as to when such a license may be available, or what its terms might be. He was, however, more definitive regarding the performance and quality of the existing HEVC implementation.
Though the codec continues to be a work in progress, Carnahan related that the HEVC codec was running about 2 times slower than the x264 codec when producing a 1080p file to a comparable signal-to-noise ratio. Specifically, with the existing code, an 8-core computer can encode a 1080p file at between 10-30 frames per second without GPU acceleration. This is good news, since some initial reports pegged HEVC encoding at 10X H.264 encoding time. Carnahan also indicated that the speed improvements at this point in development are consistent with the short-term goal of real-time encoding of 1080p content on an 8-core machine with 4X real-time encoding with GPU acceleration.
On the quality front, when encoding most aggressively (e.g slower speed/higher quality), Carnahan stated that a 1080p HEVC file could deliver equivalent quality to x264 at 50% of the data rate, though that number dropped to a 20-30% bitrate saving when encoding in real time. That also is good news, since several initial reports indicated that 30-35% would be the maximum savings produced by any first-generation HEVC encoder.