Log in

View Full Version : MainConcept announced GPU-Accelerated H.264 Video Encoding


iwod
13th April 2010, 08:51
http://investors.divx.com/releasedetail.cfm?ReleaseID=458037

MainConcept and NVIDIA Deliver GPU-Accelerated Video Encoding Based on NVIDIA CUDA Architecture

New H.264/AVC Encoder Available Now from MainConcept Enables Breakthrough Capabilities for 200+ Million NVIDIA Customers

AACHEN, Germany and SAN DIEGO, April 12, 2010 /PRNewswire via COMTEX News Network/ -- MainConcept GmbH, a wholly-owned subsidiary of DivX, Inc. (Nasdaq: DIVX) and one of the world's premier providers of video and audio codecs and software development kits (SDKs) to the consumer, broadcast and professional markets, announced today the immediate availability of its first graphics processing unit (GPU)-accelerated H.264/AVC Encoder.

(Logo: http://www.newscom.com/cgi-bin/prnh/20081124/LA48153LOGO)

The new encoder SDK was developed using the NVIDIA CUDA(TM) parallel computing architecture that enables dramatic increases in performance by harnessing hundreds of cores inside NVIDIA GPUs. A key advantage of solutions based on this encoder is they run today on the installed base of 200+ million CUDA-enabled GPUs.

The new MainConcept CUDA H.264/AVC Encoder offers amazing performance with excellent quality. CUDA transcoding speeds up the time-consuming task of converting movies into the H.264/AVC format, and also reduces CPU utilization so the computer can be used for other purposes while encoding.

MainConcept is providing software developers with a flexible yet powerful SDK to add NVIDIA GPU-accelerated transcoding to their own solutions. The MainConcept CUDA H.264/AVC Encoder SDK allows transcoding from MPEG-2, VC-1, H.264/AVC elementary streams, and raw frames into the H.264/AVC Baseline and Main Profile formats. It also offers many features found in the company's software H.264/AVC. Using the MainConcept CUDA Encoder, the whole H.264/AVC transcoding process is done on GPUs, leaving only entropy encoding for processing on the CPU.

"The market has overwhelmingly been requesting a CUDA-based encoder, and MainConcept has solidified its position as a technology innovator by delivering its first GPU-accelerated codec," said Andrew Cresci, general manager, vertical market solutions, NVIDIA. "By supporting NVIDIA CUDA in their new Encoder SDK, MainConcept is providing software developers around the world with a high quality solution to quickly and easily add the benefit of GPU-based video encoding to their software programs."

"Our new CUDA solution will help NVIDIA users experience the best possible encoding quality and performance," said Muzaffer Beygirci, managing director, MainConcept. "We've worked closely with NVIDIA to further broaden the portfolio of industry-leading encoding solutions that MainConcept offers across multiple platforms and applications."

The MainConcept CUDA H.264/AVC Encoder is available today and is compatible with any NVIDIA graphics solution supporting the CUDA architecture 1.0 for transcoding. For a complete list, please visit: http://www.nvidia.com/object/cuda_gpus.html.

iwod
13th April 2010, 08:54
How is this different to the previous Nvidia encoding apps?

P.S - No High Profile?

lucassp
13th April 2010, 09:08
It seems the entropy encoding is done on the CPU. Is this a good choice?

aegisofrime
13th April 2010, 10:12
I did a quick glance through of both press releases (there's another one for ATI Stream), and no mention of how to actually get the encoder.

The MainConcept CUDA H.264/AVC Encoder is available today and is compatible with any NVIDIA graphics solution supporting the CUDA architecture 1.0 for transcoding. For a complete list, please visit: www.nvidia.com/object/cuda_gpus.html.

Available where?

lucassp
13th April 2010, 10:22
Why couldn't they use the OpenCL version of the encoder for nVidia cards too? Normally the OpenCL version should run on all OpenCL compatible cards.

Dark Shikari
13th April 2010, 10:29
It seems the entropy encoding is done on the CPU. Is this a good choice?Most definitely. All sane GPU encoders do this.

Of course, this probably means, equally, that the encoder has no RDO and falls into the same category of fast-but-garbage as Badaboom.

Though, while Mainconcept's most recent consumer encoders have been pretty mediocre, I trust them to do a better job than the other companies that have been churning out awful GPU encoders.

CruNcher
13th April 2010, 10:30
Nice can someone say something about it's quality compared to Elemental Technologies and Nvidias own CUDA encoders ? i mean we talking about Mainconcept here :D I wonder when this is going hit DivX consumers in DivX Pro also :)
Come on Dark you always talk like RDO is the non plus ultra you can also get good acceptable visual results without (especially if grain is not needed), though Elemental neither Nvidia know how to achieve that a CUDA Encoder based on the Mainconcept Core and Research could be a big step in Visual Quality at least for many 3rd Party Applications, would make it a less painful situation then it currently is for many customers sacrificing a heavy amount of quality without knowing it :)
I guess it wont take long now and we gonna see Ateme and Elecards solution appearing ;)

The pretty common toolset for GPU encoders:

* Transcoding from MPEG-2, VC-1 and H.264/AVC elementary streams.
* Baseline, Main and High (with restrictions) Profile support
* I, P and B frames support
* CABAC/CAVLC entropy
* Deblocking filter
* Sub-pel motion estimation
* Intra-blocks in P-frames
* ABR rate control (Average bitrate, HRD is not maintained yet)
* Possible input video formats: YV12, YUV2 MPEG-2, H.264/AVC, VC-1 (H.264/AVC and VC-1 are supported for video cards with 1.1 architecture only – please see hardware requirements below)
* Up to 50% better performance
* 4x4 intra partitioning
* Additional color converter input formats have been added

hmm ----> High (with restrictions) <----------- ????

The first time now it seems we gonna see some action especially in Adobe products between Elemental and Mainconcept on the GPU front :P

lucassp
13th April 2010, 10:47
Most definitely. All sane GPU encoders do this.

So this can be regarded as the first sane GPU encoder? :)

Still I'm wondering why aren't they using the same OpenCL encoder for the nVidia cards too. The only reasons I can think of are:

1. Lack of an NVCUVID like decoding API in OpenCL.
2. Marketing :D
3. Maybe they're using the NVCUVID Encoder, but I really hope they aren't.

LE:
* Possible input video formats: YV12, YUV2 MPEG-2, H.264/AVC, VC-1 (H.264/AVC and VC-1 are supported for video cards with 1.1 architecture only – please see hardware requirements below)

I guess this explains why they chose to use CUDA too :)

iwod
14th April 2010, 10:42
Well, at this rate, Sandy Bridge with AVX optimized x264 will beat GPU encoding.....without comprise on quality.

lucassp
14th April 2010, 11:26
AVX is suited for floating point operations. Maybe Dark Shikari could shed a bit of light on the possible usage of AVX in x264.

Dark Shikari
14th April 2010, 11:40
AVX is suited for floating point operations. Maybe Dark Shikari could shed a bit of light on the possible usage of AVX in x264.I'm pretty sure it does integer too ;)

iwod
15th April 2010, 03:42
@ Dark, i think FMA will give good boost to x264. But what is your view on AVX FMA 3 operands and AMD's 4 Operands?

I heard they have delayed to Ivy Bridge for FMA.

Washka
15th April 2010, 23:15
Ooo ther is a OPEN CL version there.

http://www.mainconcept.com/products/sdks/hw-acceleration/opencl-h264avc.html

p.s. i`m reading this forum for like almost 9 years but didn`t write much :(

iwod
16th April 2010, 07:34
Strange, would CUDA give higher performance....

Edit: CUDA version actually allows you to encode High Profile, while OpenCL only gives you Baseline.

schweinsz
16th April 2010, 09:25
Strange, would CUDA give higher performance....

Edit: CUDA version actually allows you to encode High Profile, while OpenCL only gives you Baseline.

I believe that CUDA could do RDO efficiently, but you must re-design the architecture of encoder using a global aspect.

Audionut
16th April 2010, 10:21
while OpenCL only gives you Baseline.

But with b-frames support?

CruNcher
16th April 2010, 12:45
Strange, would CUDA give higher performance....

Edit: CUDA version actually allows you to encode High Profile, while OpenCL only gives you Baseline.

Don't forget the CUDA implementation is much longer in the research then the OpenCL, though it's always said that porting a CUDA app to OpenCL is a straightforward process :)

iwod
16th April 2010, 12:58
Great, anyone have screenshots , i know it wont be anywhere near x264, but having GPU encoding sounds great. Cant wait to see its performance.

aegisofrime
16th April 2010, 15:57
Great, anyone have screenshots , i know it wont be anywhere near x264, but having GPU encoding sounds great. Cant wait to see its performance.

I second this request. What I have seen so far is just lots of hype, nothing in the way of performance hints. Well I guess hype is what GPU encoding seems to be all about.

iwod
19th April 2010, 04:04
@ Dark, i think FMA will give good boost to x264. But what is your view on AVX FMA 3 operands and AMD's 4 Operands?

I heard they have delayed to Ivy Bridge for FMA.

Any words on it Dark?

Dark Shikari
19th April 2010, 06:10
I don't see how FMA (a float operation) is going to be much use to x264...

iwod
24th April 2010, 20:45
Just Wondering, if MainConcept CUDA H.264/AVC Encoder is the same as CUDAEnoder.exe used in MediaCoder and Cyberlink.

CruNcher
27th April 2010, 20:11
Im pretty sure it's not the reference nvcuvenc.dll encoder from Nvidia but a Unique one like Elementals, im also pretty sure we can see it in action soon for consumers and i guess the start will make DivX Converter :)

iwod
6th May 2010, 13:46
Well Divx is already using the new 8.5 SDK will no mention of CUDA Encoder.

CruNcher
6th May 2010, 22:42
Btw there are already 3 Unique Cuda H.264 Encoder Developer :)

Elemental Technologies
Arcsoft
Mainconcept (DivX Inc)


Though Arcsofts Encoder still needs a lot of tuning ;)