View Full Version : Quick Sync, CUDA, OpenCL or only normal CPU? What is the best?
cr0n=0sTT88
19th July 2014, 21:18
I need change my computer and I have that to select the hardware. I don't know what is the best option for get good quality when I use media video encoding tools.
Quick Sync, CUDA, OpenCL or only normal CPU?
1) What is the best for get the faster speed?
2) What is the best for get the best quality?
3) What is the best application for transcode video using hardware?
4) nero recode 2014? handbrake? MVCenc? any other application?
this 4 questions are only for hardware ENCODING. Not for hardware decoding.
Thank you everyone!
Mangix
19th July 2014, 22:07
CPU is probably best. Software decoders tend to fare better with corrupted streams.
Asmodian
20th July 2014, 00:44
*Note Rule 12*
1) Software decoding speed depends on your CPU but other than software I believe:
Quick Sync > CUDA > OpenCL. Of course the different versions of each are different speeds, new CUDA is faster than old Quick Sync. Quick Sync and CUDA both use dedicated hardware to do the decoding while OpenCL is using the GPU sort of like a CPU to do the decoding. This means that Quick Sync and CUDA use less power and generate less heat than OpenCL. With a modern CPU software decoding can be fairly low power as well.
2) Quality: they should all be the same baring corrupted streams or other issues. Software decoding (CPU) is generally the most robust. The need to deinterlace can complicate this issue (hardware deinterlacing can be different qualities; both better or worse than software deinterlacing).
3) No idea; there is a quality hit so I haven't paid much attention to hardware encoding.
4) I have heard good things about Handbrake for simple H.264 encoding via x264. Personally I use x264.exe.
Bloax
20th July 2014, 15:55
encoding tools
Software decoders
(mostly talking about decoding)
Guys, I'm pretty sure that in #1, #2 and #4 he's asking about encoding - and not decoding.
cr0n=0sTT88
20th July 2014, 16:50
Guys, I'm pretty sure that in #1, #2 and #4 he's asking about encoding - and not decoding.
exactly. I'm asking about encondig. I'm not asking for decoding. Sorry for my poor english :D
but thanks for all answers!
Bloax
20th July 2014, 19:15
CPU encoders (notably x264/handbrake) provide the superior quality/bitrate, due to it being very tricky to do the things required for encoding the video on a GPU.
The fastest one depends on the situation, if you're playing a game (and thus it's likely that both your CPU and GPU are in use) then QuickSync (if you have an Intel CPU with the proper hardware on it) is likely the fastest choice - as it won't be using either of those. Otherwise the GPU encoders (OpenCL/CUDA) are likely faster than the CPU ones, if you're willing to pay the quality/bitrate price. (Although this last one doesn't matter at very high bitrates.)
cr0n=0sTT88
20th July 2014, 19:54
CPU encoders (notably x264/handbrake) provide the superior quality/bitrate, due to it being very tricky to do the things required for encoding the video on a GPU.
The fastest one depends on the situation, if you're playing a game (and thus it's likely that both your CPU and GPU are in use) then QuickSync (if you have an Intel CPU with the proper hardware on it) is likely the fastest choice - as it won't be using either of those. Otherwise the GPU encoders (OpenCL/CUDA) are likely faster than the CPU ones, if you're willing to pay the quality/bitrate price. (Although this last one doesn't matter at very high bitrates.)
I know that If I use only CPU I will get the best quality/bitrate with the x264/handbrake encoders.
I understand that If I use OpenCL/CUDA (GPU) much of the quality is lost. Now I'm using nero recode 2014 with phenom x4 with nVidia GTX9800+ and I can see it with the results when I enable CUDA.
But I don't know what's happens when I use Quick Sync of intel. I don't know if Quick Sync of intel is similar to CPU process or GPU process (CUDA/OpenCL).
What do yo think about this? sorry for my basic english.
Thank you another time.
Asmodian
20th July 2014, 20:49
Quicksync is very like CUDA but even more of it is fixed function hardware so it has very low CPU and GPU usage while running. The newest Quick Sync (Haswell) is better quality encoding than older versions. Quick Sync is a bit better quality than OpenCL/CUDA but it is not as good as x264. I don't know what Nero is using for software H.264 encoding.
LoRd_MuldeR
20th July 2014, 23:51
I need change my computer and I have that to select the hardware. I don't know what is the best option for get good quality when I use media video encoding tools.
Quick Sync, CUDA, OpenCL or only normal CPU?
1) What is the best for get the faster speed?
2) What is the best for get the best quality?I understand that If I use OpenCL/CUDA (GPU) much of the quality is lost. [...] But I don't know what's happens when I use Quick Sync of intel.
You are mixing up a few things here:
First of all, CUDA and OpenCL are not video encoders, but programming interfaces. So with CUDA/OpenCL one can write programs to run on the GPU - which might be a video encoder or something completely different. Consequently, it makes no sense to discuss the speed or quality of CUDA/OpenCL! It might make sense to discuss the speed/quality of a video encoder written (at least partly) in CUDA/OpenCL, yes. But then you need to specify which one you are talking about, because there can be zillion of different encoders of this kind! There is not the "one and only" CUDA or OpenCL encoder. For example, x264, probably the best (software) H.264 encoder out there, also can "offload" certain calculations to the GPU using OpenCL.
On the other hand there are dedicated "hardware" video encoders. QuickSync and NVENC fall into this category. Those are running neither on the CPU nor on the GPU! Instead they use a dedicated piece of silicon - though it might be integrated in the same chip as the CPU or GPU. Also, these dedicated hardware encoders are "black boxes": You feed them with input frames and what you get back is the encoded bitstream. You don't even need to write your own code, as opposed to CUDA/OpenCL. Consequently, here it makes absolutely no difference which program you use for encoding! That's because the actual encoding will always be performed solely by the same fixed function hardware unit. Last but not least, the available dedicated "hardware" video encoders seem to be tuned more for maximum throughput (speed) rather than quality. And there's not much you can do about this - it's a fixed function hardware unit after all (and not that many options are exposed).
Quicksync is very like CUDA
Not quite. QuickSync is a fixed function hardware video encoder, as you said, But CUDA (http://en.wikipedia.org/wiki/CUDA) is not at all. It's a programming interface for writing GPGPU programs. And those CUDA programs ("kernels") run on the actual GPU.
You were probably thinking of NVENC (http://en.wikipedia.org/wiki/Kepler_%28microarchitecture%29#NVENC) instead of CUDA here...
trumpet205
21st July 2014, 07:33
I find that QuickSync to be about as fast as x264 on ultra fast preset on Handbrake.
x264 will generally have better quality than hardware accelerated encoder (QuickSync and encoders using CUDA/OpenCL).
kalehrl
21st July 2014, 07:45
I find that QuickSync to be about as fast as x264 on ultra fast preset on Handbrake.
Are you sure you configured handbrake correctly to use QuickSync?
I get around 480fps encoding with QuickSync whereas using software h264 encoder, I get around 30fps using slow profile.
I don't think I would get more than 60fps using ultrafast preset.
My processor is one of the cheapest Haswsell Celerons (g1820).
trumpet205
21st July 2014, 07:52
Are you sure you configured handbrake correctly to use QuickSync?
I get around 480fps encoding with QuickSync whereas using software h264 encoder, I get around 30fps using slow profile.
I don't think I would get more than 60fps using ultrafast preset.
My processor is one of the cheapest Haswsell Celerons (g1820).
I'm using Ivy Bridge i7-3770K. So CPU side I have an edge over G1820.
Yeah, I did force a second monitor duplication to enable iGPU. You can also use Lucid Virtu to enable iGPU/Quick Sync if you have dedicated GPU, but I never liked Virtu.
Most of my encoding work is 10-bit, so x264 is the only way to go.
Asmodian
21st July 2014, 08:48
You were probably thinking of NVENC (http://en.wikipedia.org/wiki/Kepler_%28microarchitecture%29#NVENC) instead of CUDA here...
Yes I was. I seem to keep using CUDA to mean CUDA, CUVID, or NVENC to mean "Nvidia's way of doing that". It is a bad habit. :o
cr0n=0sTT88
22nd July 2014, 00:12
Quicksync is very like CUDA but even more of it is fixed function hardware so it has very low CPU and GPU usage while running. The newest Quick Sync (Haswell) is better quality encoding than older versions. Quick Sync is a bit better quality than OpenCL/CUDA but it is not as good as x264. I don't know what Nero is using for software H.264 encoding.
Thank you for the information Asmodian.
Yes, nero recode 2014 use GPU/"CPU-Quick sync" encondig:
Convert videos fast with hardware-accelerated encoding, batch job support and more
Take advantage of all your computing power to get results fast. With support for hardware-accelerated AMD App Acceleration, Intel® Quick Sync Video or NVIDIA CUDA™ GPGPU graphics cards, you can finish video converting jobs up to 4x faster. Create a batch job with multiple videos and move onto something else while Nero Recode does the heavy lifting. You can even set Nero Recode to shut down your PC automatically when the converting is complete.
http://www.nero.com/enu/products/nero-recode/why-buy-nero-recode.php
Thank you LoRd_MuldeR for the excellent information!!!
Now I understand that when I use CUDA/OpenCL the quality and the velocity depends of the each video encoder. Each video encoder have a diferent quality and velocity. This question it's clear now.
When I talk about of generic CUDA/OpenCL/Quick_sync encoders you consinder only the encoder Nero recode 2014.
I don't know if nero use the hardware encondig for do all operations of encoding or if nero only use gpu or quicksync for do partly the work and for the rest use normal CPU. Anyone can say me if the convertion to h.264 of nero it's good normally when I use hardware encoding? I just recently that I use this program. What hardware is better for get the best quality? with CUDA encode? or with QuickSync encode? or with CUDA+QuickSync encode? I don't know! I suppose that the better quality is with only QuickSync, without CUDA and OpenCL, is it?
One more basic questions:
1) CUDA is of Nvidia. What graphic cards?
2) NVENC is of Nvidia. What graphic cards?
3) OpenCL is of who? AMD graphic cards? What graphic cards?
4) QuickSync is of Intel. What processors of intel?
5) AMD processors have any techology similar to QuickSync? what CPU/APU?
You say that QuickSync (and I supose that NVENC also) not use CPU neither GPU. I've understood that this element is in the silicon substrate like a independent element. But I've read that if I use a processor i7 with a discrete graphic card, the GPU of the i7 are disabled and QuickSync don't works. It is?
The velocity of QuickSync depends only the generation of the processor? or QuickSync depends of the clock of the GPUi? with overclocking of the processor can I get more speed with QuickSync? for QuickSync it's the same one i7 4790k than 4770k? is it the same for this task? I've read that for the 4770K and 4790K the graphics are the same: Processor Graphics: Intel® HD Graphics 4600, Graphics Base Frequency: 350 MHz, Graphics Max Dynamic Frequency: 1.25 GHz. I need know this for buy my new computer! :P
You say that QuickSync (and I supose that NVENC also) have the same result in the encoding results with ALL programs of encoding (Nero Recode 2014, MediaConverter 8 and others) because the ALL encoding process is do it only for hardware and the software don't intervene. I hope that I've understood well for buy the programs after :P
Evereone in this forum say that X.264 is the best. X264 only use CPU? Is it possible get the same quality with X264 encoder with the same speed of QuickSync? What is the profile of the X264?
What do you recommend me for the price/quality/speed? Intel Core i7-4930K with X264 or Intel Core i7-4790K with quicksync? the speed I suppose that is better for quicksync processors.
The speed for me is very important.
Thank you!!
LoRd_MuldeR
22nd July 2014, 01:04
1) CUDA is of Nvidia. What graphic cards?
CUDA is NVidia only. It's supported at least since the GeForce 8 series. But newer generations added additional features to CUDA. So some "CUDA enabled" programs may only work on newer cards.
Also keep in mind that CUDA programs ("kernels") use the actual GPU cores, so the performance greatly depends on what GPU model (number of "compute cores", clock speed, memory bandwidth, etc) you have.
At the same time, the NVENC engine is probably the same on all models (within one generation), so a "cheap" model will work just as well.
2) NVENC is of Nvidia. What graphic cards?
NVENC was added with the "Kepler" generation, so GeForce 600 and later, I think.
3) OpenCL is of who? AMD graphic cards? What graphic cards?
OpenCL is vendor agnostic, just like OpenGL for 3D rendering.
Also, OpenCL doesn't necceserily need to run on a GPU. It can use CPU's and other types co-processors as well. And it is supported by AMD, NVidia, Intel and others nowadays.
BTW: I think AMD has given up their own "Stream" technology in favor of OpenCL, but NVidia is still pushing CUDA alongside to OpenCL.
4) QuickSync is of Intel. What processors of intel?
It was first supported in the "Sandy Bridge" generation. But I think later generations added more features.
5) AMD processors have any techology similar to QuickSync? what CPU/APU?
Yes. NVidia has NVENC. And AMD has VCE (Video Coding Engine). The latter was first introduced in the HD 7000 series, I think.
You say that QuickSync (and I supose that NVENC also) not use CPU neither GPU. I've understood that this element is in the silicon substrate like a independent element. But I've read that if I use a processor i7 with a discrete graphic card, the GPU of the i7 are disabled and QuickSync don't works. It is?
Yes, AFAIK know, QuickSync is no longer available if you disable the CPU graphics. It's probably closely attached to the GPU cores.
But I think there are ways to use a separate graphics card and keep the CPU graphics enabled, so that you can still make use of QuickSync:
http://forum.doom9.org/showthread.php?t=169712
Evereone in this forum say that X.264 is the best. X264 only use CPU? Is it possible get the same quality with X264 encoder with the same speed of QuickSync? What is the profile of the X264?
It's x264, not X.264 ;)
As mentioned before, x264 can offload certain calculations to the GPU via OpenCL. But this is optional and (usually) doesn't give that much benefit. Essentially x264 is a pure CPU (software) encoder!
Also, x264 can be tuned for maximum speed or for maximum quality. It can be blazing fast, if you use one of the faster presets! And it can be slow like hell, if you use the "placebo" preset :p
Anyway, while slower presets give the best compression, even the faster presets can still give great quality - you only may need to increase the bitrate a little.
But of course the performance of x264 also greatly depends on what CPU you have! So If you want to encode with x264, you should get the fastest CPU you can afford. The more CPU cores the better :sly:
(Not sure what you mean with "What is the profile of the X264?", but x264 supports the High profile of H.264. Actually even High 10 and High 4:4:4. Lower profiles can be enforced, if needed)
trumpet205
22nd July 2014, 06:45
You say that QuickSync (and I supose that NVENC also) not use CPU neither GPU. I've understood that this element is in the silicon substrate like a independent element. But I've read that if I use a processor i7 with a discrete graphic card, the GPU of the i7 are disabled and QuickSync don't works. It is?
Yes but there are ways to enable it.
The velocity of QuickSync depends only the generation of the processor? or QuickSync depends of the clock of the GPUi? with overclocking of the processor can I get more speed with QuickSync? for QuickSync it's the same one i7 4790k than 4770k? is it the same for this task? I've read that for the 4770K and 4790K the graphics are the same: Processor Graphics: Intel® HD Graphics 4600, Graphics Base Frequency: 350 MHz, Graphics Max Dynamic Frequency: 1.25 GHz. I need know this for buy my new computer! :P
Quick Sync performance depends on generation, not how fast CPU and GPU is.
One thing though, if you overclock CPU chances are you will have to disable iGPU to increase your overclocking headroom. You can't use Quick Sync with iGPU disabled.
You say that QuickSync (and I supose that NVENC also) have the same result in the encoding results with ALL programs of encoding (Nero Recode 2014, MediaConverter 8 and others) because the ALL encoding process is do it only for hardware and the software don't intervene. I hope that I've understood well for buy the programs after :P
The actual encoding process is hardware only. So the only way to have different quality across different software is if you use different settings or software applies different filters prior feeding them to Quick Sync.
Evereone in this forum say that X.264 is the best. X264 only use CPU? Is it possible get the same quality with X264 encoder with the same speed of QuickSync? What is the profile of the X264?
Depends on your eyes but generally x264 will win over Quick Sync at comparable settings.
What do you recommend me for the price/quality/speed? Intel Core i7-4930K with X264 or Intel Core i7-4790K with quicksync? the speed I suppose that is better for quicksync processors. The speed for me is very important.
x264 is very flexible. It can encode various profile of H.264. For example I use i7-3770K and 99% of my encoded project is Hi10P, which is not doable with Quick Sync or any other hardware accelerated H.264 encoder.
Quick Sync on the other hand is limited to 8-bit Level 4.1 or below H.264. Pretty much Blu-ray compliant format.
Honestly, Quick Sync is not worth it if you are going for an i7 processor. At ultra fast and super fast preset x264 on i7 will be just as fast as Quick Sync.
cr0n=0sTT88
24th July 2014, 13:38
Thank you LoRd_MuldeR and trumpet205 for the excellent information! you have helped me very very much!
LoRd_MuldeR, sorry, when I before I've said "profile" and I wanted to say "preset" (configuration of the encoder).
Any more questions for finishing...
1) VCE is only available for graphic cards? Have APU's of AMD the encoder VCE? What APU's? I suppose that FX series not have VCE.
2) Is QuickSync available in any graphic card? or is only available in CPU's with GPU-i?
3) If we put all encoding systems in a quality scale, how to put in order since more quality to poor quality? Is it ok?
X264 (ultra fast/super fast preset) > quicksync > NVENC > VCE > CUDA (badaboom soft) > OpenCL (generic :P)
4) If I use QuickSync and I want get good quality of image what is the bitrate appropriated? I can put an example. If I have one video in WMV (WMV8, wmv9 or VC1) in 1080p with 10Mps. What is the right bitrate appropriated for don't lost quality since the original wmv file if I use QuickSync? And What is the bitrate appropriated for don't lost quality if I use X264? I'm very very interested in the answer of this question. If I put a birtate of 15MBps in Quicksync I will get the same quality of the ogirinal? If I put ALWAYS (for all WMV) one bitrate 10-15% more (of the original wmv bitrate) I will get, at least, the same quality of the original video??
5) X264 is a command aplication? is there any intuitive and easy graphical interface for X264? handbrake is a graphical interface of X264? handbrake is the best graphical interface for X264? with handbrake is it possible also use QuickSync, VCE, NVENC, CUDA or OpenCL? any aplication with all options of encoding and good quality? any aplication at least with X264 and QuickSync?
6) is there something PCI-express card with only enconder? Not a graphic card. A card only for encode to H.264 very fast and hight quality. is it very expensive? Is it similar to X264 results (with good preset)?
7) I've looked this review about x264 encoding with differnt systems:
http://www.xbitlabs.com/articles/cpu/display/core-i5-4670k-4670-4570-4430_6.html#sect0
This review say that with X264 I get with i7 4770k 29.91fps for encode and with fx-8350 I get 26.53fps. Only 3 frames of diference. The 4770K it is very expensive (275€) but the fx-8350 is very cheap (150€). What do you think abount this? better fx or i7?
Thank you!!!!
benwaggoner
24th July 2014, 18:57
3) If we put all encoding systems in a quality scale, how to put in order since more quality to poor quality? Is it ok?
For file-to-file encoding, x264 is the highest quality option available. And it's pretty fast. I wouldn't use hardware unless I had some serious speed requirements.
X264 (ultra fast/super fast preset) > quicksync > NVENC > VCE > CUDA (badaboom soft) > OpenCL (generic :P)
Plausible. But what are you doing that would require you to encode so quickly? Do you know that the encoder itself is the bottleneck, or could source decode or preprocessing be a bigger factor? Don't use a faster preset than you have to.
4) If I use QuickSync and I want get good quality of image what is the bitrate appropriated? I can put an example. If I have one video in WMV (WMV8, wmv9 or VC1) in 1080p with 10Mps. What is the right bitrate appropriated for don't lost quality since the original wmv file if I use QuickSync? And What is the bitrate appropriated for don't lost quality if I use X264? I'm very very interested in the answer of this question. If I put a birtate of 15MBps in Quicksync I will get the same quality of the ogirinal? If I put ALWAYS (for all WMV) one bitrate 10-15% more (of the original wmv bitrate) I will get, at least, the same quality of the original video??
Very source dependent. How good the WMV looks matters, and there is a lot of variance in the quality of their real-world encoding. If the WMV has a visible artifacts, you can force postprocessing on via reg keys or "WMV PowerToy" which can help a lot. Sometimes QuickSync may need more bitrate than the WMV, other times it could use a lot less.
5) X264 is a command aplication? is there any intuitive and easy graphical interface for X264? handbrake is a graphical interface of X264? handbrake is the best graphical interface for X264? with handbrake is it possible also use QuickSync, VCE, NVENC, CUDA or OpenCL? any aplication with all options of encoding and good quality? any aplication at least with X264 and QuickSync?
Tons of different options for x264. MeGUI is reasonably approachable while still offering advanced controls, although performance can be gated by AVISynth.
6) is there something PCI-express card with only enconder? Not a graphic card. A card only for encode to H.264 very fast and hight quality. is it very expensive? Is it similar to X264 results (with good preset)?
Back in the day accelerator cards were used for MPEG-2 and VC-1/WMV. I'm not aware of any solutions that make sense today. Better to just buy more, faster cores.
7) I've looked this review about x264 encoding with differnt systems:
http://www.xbitlabs.com/articles/cpu/display/core-i5-4670k-4670-4570-4430_6.html#sect0
This review say that with X264 I get with i7 4770k 29.91fps for encode and with fx-8350 I get 26.53fps. Only 3 frames of diference. The 4770K it is very expensive (275€) but the fx-8350 is very cheap (150€). What do you think abount this? better fx or i7?
There aren't enough details about that test to extrapolate. Speed/quality can really depend on source decode and preprocessing as well as encoding, and is very scenario dependent. If you're doing 1080iProRes with an expensive deinterlace step to SD H.264, you might only be able to saturate a few threads. But 1080p from a 1080p y4m file on a fast RAID can almost saturate 16 threads. So some workflows are bound more by per-core performance, and some are more like clock speed * cores.
The fastest machine today would be a 20+core dual socket Ivy Bridge I think. Haswell is a lot better per core and per clock, but you can't get than many Haswell cores in one system yet.
You'd need to share a LOT more scenario details to get usefully specific advice.
trumpet205
24th July 2014, 23:14
Any more questions for finishing...
1) VCE is only available for graphic cards? Have APU's of AMD the encoder VCE? What APU's? I suppose that FX series not have VCE.
FX is pure CPU. No VCE.
2) Is QuickSync available in any graphic card? or is only available in CPU's with GPU-i?
Quick Sync is Intel in-house dedicated hardware encoder. It is only available on Sandy Bridge and onward CPU with iGPU.
4) If I use QuickSync and I want get good quality of image what is the bitrate appropriated? I can put an example. If I have one video in WMV (WMV8, wmv9 or VC1) in 1080p with 10Mps. What is the right bitrate appropriated for don't lost quality since the original wmv file if I use QuickSync? And What is the bitrate appropriated for don't lost quality if I use X264? I'm very very interested in the answer of this question. If I put a birtate of 15MBps in Quicksync I will get the same quality of the ogirinal? If I put ALWAYS (for all WMV) one bitrate 10-15% more (of the original wmv bitrate) I will get, at least, the same quality of the original video??
How much bitrate is needed highly depends on the material and encoding parameter. There is no universal bitrate guideline. You may have a clean anime that needs less than 5 Mbps, or old grainy film that needs 30 Mbps or more just to be watchable.
Because Quick Sync does not have CRF/QP 0 option found in x264, on paper it always looses quality.
5) X264 is a command aplication? is there any intuitive and easy graphical interface for X264? handbrake is a graphical interface of X264? handbrake is the best graphical interface for X264? with handbrake is it possible also use QuickSync, VCE, NVENC, CUDA or OpenCL? any aplication with all options of encoding and good quality? any aplication at least with X264 and QuickSync?
Handbrake can use either x264 (CPU only or combination of CPU and OpenCL) or Quick Sync.
MeGUI can also make use of x264. It is not rookie friendly but allows greater flexibility than Handbrake.
7) I've looked this review about x264 encoding with differnt systems:
http://www.xbitlabs.com/articles/cpu/display/core-i5-4670k-4670-4570-4430_6.html#sect0
This review say that with X264 I get with i7 4770k 29.91fps for encode and with fx-8350 I get 26.53fps. Only 3 frames of diference. The 4770K it is very expensive (275€) but the fx-8350 is very cheap (150€). What do you think abount this? better fx or i7?
Thank you!!!!
Another flawed benchmark on video encoding. When will there be a good one?
The problem with these benchmarks is that they don't tell you what encoding parameter the benching software is using. Is it 1 pass or 2 pass? Is it ABR or CRF? How many reference frames? Is it 8-bit or 10-bit? What video are you using? Etc... The encoding performance varies greatly depending on what parameter and video are you using. Depending on the encoding parameter, it is possible to see FX sits a lot closer to i5 than i7.
I'll give you my example of why that benchmark is meaningless. I just finished encoding Nausicaa of the Valley of the Wind. This is a very grainy film. With 10-bit CRF 16 on grain preset, my average fps is 6 on i7-3770K. Here if I have one less fps it will add on to couple more hours in encoding. FX would've been slower with my encoding parameter.
You also have to factor in power consumption. FX CPU consumes significantly more power than i7. For me I do 24/7 encoding so initial savings on FX is easily beaten within a year of using i7.
cr0n=0sTT88
28th July 2014, 15:32
Thank you benwaggoner and trumpet205 for the excellent information! you have helped me very very much another time!
Now all it's clear. I will buy Intel Core i7-4790K without graphic card!
I will begin with handbreak and after I will use MeGui. AviSynth is too much complicated for me! :P
I will return for do new questions about this software when I have my new pc!
:goodpost:
:thanks::thanks:
Dark Eiri
1st August 2014, 10:30
I've been experimenting this last week with CUDA / NVENC and x264 with both CPU and CPU+OpenCL modes. I have a 4770k and a GTX 770. I do understand these are only valid for personal uses (my own) and are not ideal or detailed. I'm just writing my own experience based on my own usage and the stuff I would, personally, do while encoding stuff. Not even tried to emulate the general habits, I just did it the way I like to do it and would do it everyday.
My results are quite what I expected Those are for 1080p encoding, action packed (explosions, speed chasing, blah blah), very detailed / grainy master in H264 with insane bitrate, direct file input with CUDA decoding on AME / DGNV indexing for x264 input. My objective was to see the mean speed on CUDA/NVENC and reproduce it on x264, then compare the output quality.
>> SPEED
- CUDA ~120 fps
Mainconcept, Adobe Media Encoder CC 2014 - 1080p 8 Mbps, BluRay Profile
- NVENC ~102 fps
NVENC_export, Adobe Media Encoder CC 2014 - 1080p 8 Mbps, BluRay Profile
- x264 CPU ~92 fps
Profile: superfast. ABR to match the GPU encoders, naturally.
- x264 CPU + OpenCL ~92 fps
At first I started on Superfast and it was a little bit faster.
Then I enabled all partitions, Trellis 1, me-tree with rc-lookahead 40 and me umh and got it to match with the CPU only equivalent, hopefully getting a nice boost in quality. That was a nice surprise.
>> QUALITY
- x264: same quality with and without OpenCL, speed boost was awesome so, yeah, OpenCL all the way. This was the 10.0, obviously. I wasn't expecting any other outcome, just wanted to see how the GPU encoders tried to take on this one). Very nice quality and grain retention.
- CUDA: The new CUDA encoder doesn't make me want to tear my eyes off anymore. Nice improvement since I last tested a few years ago. I ended up trying DVDFab and Freemake Video Converter and got the same quality and speed, so, yeah. AME CC14 not needed at all - it's the same SDK encoder on all of them, it seems. Grain retention is not up to par with anything. I'd give it a 7.0.
- NVENC: A little bit sharper than CUDA. Nicer grain retention. Not awful. At all. 8.0.
Conclusions:
- GPUenc isn't worth it on a High End PC where x264 beats the f*ck out of the GPU encoders without being much slower.
- NVENC seems to be a VERY nice option for people on low end systems matched with a very unexpensive GTX 750 Ti. CUDA will be slower on low-end cards, so... NVENC is the way to go, specially since the 8xx series will have the exact same NVENC chip even on the most basic (830, 820) chips. Better yet, the newer NVENC on the 750 Ti doesn't turn the GPU up at all, it stays on power saving mode since it has a dedicated ARM core on the Maxwell chip to control it.
- Do you guys remember the Badaboom CUDA H264 from some years ago? That cringe inducing Atari quality it produced? Yeah, CUDA is definitely not like that anymore. It sets the GPU for maximum output so it will be energy hungrier than NVENC. Still pales in comparison with x264 on similar speed.
I then activated my IGP and tried QuickSync just for the kicks. Used maximum quality and default quality. Without any difference on speed, I mantained only the results for the maximum quality. It's better than NVENC, not by much, but it is. The speed? Around 160 fps with ~180 fps peaks. I'd seriosly consider it to replace x264 on quick non-archival encodes. I'd say 8.5. Unmatched speed, though.
huhn
1st August 2014, 14:04
NVENC use a asic so doesn't slow down the gpu so much.
in the OBS forum normally nvenc and amd vce win in term of quality nvenc has a lot of quality options the best give good results.
haswell quicksync is usual not as good as nvenc and amd vce. ivy/sandybridge quicksync is a very very bad joke...
NikosD
1st August 2014, 18:20
Haswell QuickSync has a lot of quality options, I don't know about NVENC and VCE.
If possible, could you post some quality options that Haswell QS lacks, compared to NVENC/VCE ?
cr0n=0sTT88
30th August 2014, 20:55
Sorry for my late response. I've been on holidays for one month without my computer :p
I've been experimenting this last week with CUDA / NVENC and x264 with both CPU and CPU+OpenCL modes. I have a 4770k and a GTX 770. I do understand these are only valid for personal uses (my own) and are not ideal or detailed. I'm just writing my own experience based on my own usage and the stuff I would, personally, do while encoding stuff. Not even tried to emulate the general habits, I just did it the way I like to do it and would do it everyday.
My results are quite what I expected Those are for 1080p encoding, action packed (explosions, speed chasing, blah blah), very detailed / grainy master in H264 with insane bitrate, direct file input with CUDA decoding on AME / DGNV indexing for x264 input. My objective was to see the mean speed on CUDA/NVENC and reproduce it on x264, then compare the output quality.
>> SPEED
- CUDA ~120 fps
Mainconcept, Adobe Media Encoder CC 2014 - 1080p 8 Mbps, BluRay Profile
- NVENC ~102 fps
NVENC_export, Adobe Media Encoder CC 2014 - 1080p 8 Mbps, BluRay Profile
- x264 CPU ~92 fps
Profile: superfast. ABR to match the GPU encoders, naturally.
- x264 CPU + OpenCL ~92 fps
At first I started on Superfast and it was a little bit faster.
Then I enabled all partitions, Trellis 1, me-tree with rc-lookahead 40 and me umh and got it to match with the CPU only equivalent, hopefully getting a nice boost in quality. That was a nice surprise.
>> QUALITY
- x264: same quality with and without OpenCL, speed boost was awesome so, yeah, OpenCL all the way. This was the 10.0, obviously. I wasn't expecting any other outcome, just wanted to see how the GPU encoders tried to take on this one). Very nice quality and grain retention.
- CUDA: The new CUDA encoder doesn't make me want to tear my eyes off anymore. Nice improvement since I last tested a few years ago. I ended up trying DVDFab and Freemake Video Converter and got the same quality and speed, so, yeah. AME CC14 not needed at all - it's the same SDK encoder on all of them, it seems. Grain retention is not up to par with anything. I'd give it a 7.0.
- NVENC: A little bit sharper than CUDA. Nicer grain retention. Not awful. At all. 8.0.
Conclusions:
- GPUenc isn't worth it on a High End PC where x264 beats the f*ck out of the GPU encoders without being much slower.
- NVENC seems to be a VERY nice option for people on low end systems matched with a very unexpensive GTX 750 Ti. CUDA will be slower on low-end cards, so... NVENC is the way to go, specially since the 8xx series will have the exact same NVENC chip even on the most basic (830, 820) chips. Better yet, the newer NVENC on the 750 Ti doesn't turn the GPU up at all, it stays on power saving mode since it has a dedicated ARM core on the Maxwell chip to control it.
- Do you guys remember the Badaboom CUDA H264 from some years ago? That cringe inducing Atari quality it produced? Yeah, CUDA is definitely not like that anymore. It sets the GPU for maximum output so it will be energy hungrier than NVENC. Still pales in comparison with x264 on similar speed.
I then activated my IGP and tried QuickSync just for the kicks. Used maximum quality and default quality. Without any difference on speed, I mantained only the results for the maximum quality. It's better than NVENC, not by much, but it is. The speed? Around 160 fps with ~180 fps peaks. I'd seriosly consider it to replace x264 on quick non-archival encodes. I'd say 8.5. Unmatched speed, though.
Dark Eiri, thank you very much for your EXCELLENT REVIEW!!!
I've created one spreadsheet for resume your results:
https://docs.google.com/spreadsheets/d/1MZ0Womknv75Iknq0ckCnIsh17iWxx5gpzjZQ-y-6cds/edit#gid=0
Only one question (if you can remember :P). What software did you used for QuickSync? what parameters?
For x264 what soft? handbreak? MeGui?
How many memory do you have? 8GB or 16GB? DDR3-1600Mhz?
Haswell QuickSync has a lot of quality options, I don't know about NVENC and VCE.
If possible, could you post some quality options that Haswell QS lacks, compared to NVENC/VCE ?
If anyone can answer it I'm also interested in this information!
cr0n=0sTT88
30th August 2014, 20:59
NVENC use a asic so doesn't slow down the gpu so much.
in the OBS forum normally nvenc and amd vce win in term of quality nvenc has a lot of quality options the best give good results.
haswell quicksync is usual not as good as nvenc and amd vce. ivy/sandybridge quicksync is a very very bad joke...
Thank you for your opinion. Do you have any review or post about this?
Thank you!
huhn
31st August 2014, 08:54
http://on-demand.gputechconf.com/gtc/2014/presentations/S4654-detailed-overview-nvenc-encoder-api.pdf
here the config file from the SDK:
///////////////////////////////////////////////////////////
// H.264 encoder parameter file
// syntax: [parameter [=] value] [[#|//] comment]
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
// Profile, Level
profile = 100 // 0=auto(=lowest possible profile), 66=Baseline, 77=Main, 100=High, 128 = (High Profile Stereo), 244 = (High Profile 444), 257 = (Constrained High Profile)
level = 40 // 10,11,12,13,20,21,22,30,31,32,40,41,42,50,51=level_idc, 0=auto(=lowest possible level)
///////////////////////////////////////////////////////////
// sequence structure
gopLength = 30 // IDR frame distance
numBFrames = 1 // number of B frames between I and P frames
fieldMode = 0 // 0=prog frame, 1=field
bottomfieldFirst = 0 // 0=top field first, 1=bottom field first
numSlices = 0 // 0=auto, 1..PicHeightInMbs=number of slices per picture
///////////////////////////////////////////////////////////
// Input File Details
width = 1920 // Width of Input Frame
height = 1080 // Height of Input Frame
maxwidth = 1920 // Max Width for resource allocation. Max resoultion change during reconfiguration can not go beyond MaxWidth, MaxHeight
maxheight = 1080 // Max Width for resource allocation. Max resoultion change during reconfiguration can not go beyond MaxWidth, MaxHeight
inFile =../YUV/1080p/PixelBlur-1920x1080.yuv
// Driver COde Path property
preset = 1 // 0=NV_ENC_PRESET_DEFAULT, 1=NV_ENC_PRESET_LOW_LATENCY_DEFAULT, 2=NV_ENC_PRESET_HP, 3=NV_ENC_PRESET_HQ, 4=NV_ENC_PRESET_BD, 5=NV_ENC_PRESET_LOW_LATENCY_HQ, 6=NV_ENC_PRESET_LOW_LATENCY_HP
interfaceType = 2 // 0=DX9, 1=DX11, 2=CUDA, 3=DX10
syncMode = 1 // 0=AsyncMode, 1=SyncMode
///////////////////////////////////////////////////////////
// bitstream characteristics (Type I HRD)
maxbitrate = 10000000 // Peakbitrate, maximum bitrate (bits/sec), 0=use encoder defined default (level limit)
vbvBufferSize = 3333333 // vbvBufferSize, decoder buffer size (bits), 0=use encoder defined default (level limit)
vbvInitialDelay = 1000000 // vbvInitialDelay, initial decoder buffer fullness (bits), 0=use encoder defined default (50%)
///////////////////////////////////////////////////////////
// rate control
rcMode = 2 // 0=fixed QP, 1=VBR, 2=CBR, 4=VBR_MINQP, 8=Multi pass encoding optimized for image quality, 16= Multi pass encoding optimized for maintaining frame size, 32=Multi pass VBR
bitrate = 10000000 // average bit rate (bits/s) (ignored if RCMode != 1)
enableInitialRCQP = 1
initialQPI = 28 // If enableInitialRCQP set then It will be used as InitialQP value for I slices for RCMode !=0. constant QP value for I slices For RCMode =0.
initialQPP = 28 // If enableInitialRCQP set then It will be used as InitialQP value for P slices for RCMode !=0. constant QP value for P slices For RCMode =0.
initialQPB = 34 // If enableInitialRCQP set then It will be used as InitialQP value for B slices for RCMode !=0. constant QP value for B slices For RCMode =0.
frameRateNum = 30
frameRateDen = 1
///////////////////////////////////////////////////////////
// picture type decision
enablePtd = 1 // 1=picture type decision will be takane by Encoder driver. 0=picture type decision will be takane by application
you can use make custom settings not sure if nvenc has more than quicksync. I only know that nvenc has usually better quality then QS haswell. I did a couple of tests too.
in the end x264 looks a worlds better. if quality is more inportant than time these encoder doesn't stand a chance. even for real time encoding x264 is still top.
here is a test from someone where haswell out performed nvenc by a huge margin.
https://obsproject.com/forum/threads/feedback-quick-sync-and-nvenc-laptop.11868/
I tested it with a gtx 760 not sure if there are differences like haswell and ivy too.
amd VCE has to versions out there nearly all cards use version 1.
i think the r9 290 and the r7 260 got version 2 the rest version 1. I got a r9 270 but I already forgot if I did a test with amd VCE 1 too.
nevcairiel
31st August 2014, 09:11
here is a test from someone where haswell out performed nvenc by a huge margin.
https://obsproject.com/forum/threads/feedback-quick-sync-and-nvenc-laptop.11868/
I don't think OBS is a good test platform, I played around with it a while ago and i don't think it configures the nvenc decoder properly.
Its encoding are much worse than with other nvenc tools, or even NVIDIAs shadow play recordings.
huhn
31st August 2014, 09:16
I don't think OBS is a good test platform, I played around with it a while ago and i don't think it configures the nvenc decoder properly.
Its encoding are much worse than with other nvenc tools, or even NVIDIAs shadow play recordings.
I agree. we need cli encoder for all 3 for a proper test.
but it's really strange if OBS is worse than shadowplay both use simple presets or at least should. but it not really tested when I tested it, this was month ago.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.