Why is software encoding ‘better’ than hardware encoding? (Video Editing)

281 viewsOtherTechnology

I have been a video editor for a few years now, semi-professionally, I always found out that hardware encoders (NVENC and Quicksync) often produce worse results than software encoders – they look worse and have a bigger file size.
Although they are MUCH faster than software encoders.

This doesn’t make any sense to me, we now have hardware accelerated AI & RT that’s much faster AND better, why can’t the same be said for encoders?

Edit: I have an RTX 4070 Ti Super, so I use NVENC for HW encoding

In: Technology

3 Answers

Anonymous 0 Comments

Software encoding is the most fine tunable, because it’s software. For hardware solutions, you are limited by having to physically create a thing that does that specific operation – and more complex settings naturally mean a more complex machine to handle them. Hardware encoding is also usually geared towards speed and acceptable quality without using too many resources shared with other things – read: they are mostly for live streaming and capturing short gameplay highlights without taking performance away from that game.

Anonymous 0 Comments

Hardware encoders are made to be fast. That’s their purpose. Since encoding process is actually very complicated, there is always a trade off between quality and speed.

Software encoders quality heavily depends on algorithms implemented, and so a couple of creative guys could make a better encoder than some organization. x264 was pretty much done by a couple of guys. He’re is an old irq quote from one of the x264 devs:

<pengvado> <xxthink> but why, such as mainconcept, can’t produce a much better product than x264?
<pengvado> because they’re a company, and we’re a couple of guys in our basements. obviously, in such a competition, the couple of guys win.

Anonymous 0 Comments

Hardware encoders are limited to specific settings in the encoding software because every part of the process has to be doable in the hardware.

Software encoders can use any settings you want because it’s all run on general purpose processing, it’s just slower because it’s not specialized.