0
$\begingroup$

It is said commonly that a software video encoder has creates higher quality output than hardware encoder. Higher quality here means higher picture quality at a given bit rate.

Hardware encoders are commonly for realtime usage and some are for mobile applications, then there are trade offs in hardware encoders to get realtime performance and have lower power.

Commonly what exactly is the trade off (e.g. which encoding algorithm parameter) in hardware encoder that makes it have lower quality than a software encoder?

Will simply changing some encoding parameter (and as a result more chip area and power consumption) make a hardware encoder have the same quality as a software encoder?

H.264/H.265 are considered.

$\endgroup$
2
$\begingroup$

There is no reason in principle why hardware would have to produce worse results than software. But there are two problems:

  1. Better quality requires better algorithms, and better algorithms in hardware usually take more circuits and cost more money, while higher quality in software can be almost free.

  2. Real-time encoding must finish in given time. If you run a video conference you have one second to encode one second of video. Even if you knew how to produce better quality in more time, you are not allowed to. But if you use an offline encoder, that can give you an option to encode an hour of video in six hours with low quality, in twelve hours with medium quality, or in 36 hours with highest quality.

And of course you can have the latest and best quality software encoder at any time. If your hardware is three years old and not very good, replacing it with much better new hardware is inconvenient and costly.

| cite | improve this answer | |
$\endgroup$
  • $\begingroup$ Nice general discussion, but the question ask about detail reason in reality - what is the trade off in real project like CPU with iGPUs/GPUs/mobile APs/Camera SOCs. BTW with pipeline etc any complex algorithm can be made real time too. $\endgroup$ – jw_ Apr 30 at 8:36
1
$\begingroup$

The premise is false. Any encoder can be implemented in either hardware or software. There is no fundamental reason that hardware encoders need to be lower quality than software encoders.

| cite | improve this answer | |
$\endgroup$
  • $\begingroup$ "There is no fundamental reason that hardware encoders need to be lower quality than software encoders" This is not a theoretical discussion, it is about reality in which most hardware may have lower quality and the question ask for the detail. $\endgroup$ – jw_ Apr 30 at 8:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.