Why does hardware encoding (Nvidia, AMD, Intel) result in larger files sizes?

I’m not sure where to place this on this forum.

But, can someone explain to me why Nvidia, AMD and Intel hardware encoding results in larger files sizes and lower quality (at same file sizes) than CPU encoding?

Seriously, what the heck? It’s all about math, so if you have hardware designed to do the math faster, then why does it do it poorly?

Why can’t the big three design a chip that does the same quality as software (CPU)? Two of the big three create CPUs that do the better quality (smaller file sizes). This is insane…and maybe lazy.

Please feel free to call me crazy and say I don’t know what I am talking about. I’m completely open minded on this, but this is my current understanding of the situation. I might challenge you, but not closed minded.

Because they don’t implement all optimizations for both quality and encoding efficiency that are theoretically possible with a codec like H.264 or H.265

Hardware encoding is optimized for speed and low power consumption, with the result always to be expected in at least real time (under the worst conditions).

Hardware encoding is cutting corners.
Optimizing both quality and encoding efficiency comes at a price of processing cycles. To find the best encoding strategy for a given scene and its movement vectors, the encoder has sometimes to simply test them all. Only then it can assess which one is the best.
How many of these optimizations are applied, is directly connected to the encoder “speed” setting. You might have noticed it both in Plex and other video encoding apps.

If you’re lucky, hardware transcoding will give you something fast enough and good enough, quality-wise. It won’t be able to give you something that is optimal.
If you want the best possible quality and space efficiency for archiving, you will have to use software encoding. With the associated drawbacks.

Thank you OttoKerner for the details; very helpful.

The thing that still puzzles me is that GPUs run 3D faster (and 2D) than a CPU without cutting corners, which is the reason Nvidia is now an extremely rich company (and moving into AI); people didn’t say, “Well, the 3D isn’t as good quality wise, but it is faster.” Actually, the opposite: higher quality and faster because the chip was designed to do just that. So, it seems to me that hardware could be designed to specifically do the same as software encoding but in efficient (not cutting corners) hardware. The advantage of hardware is having circuits that do a complex computation (CPU-wise) in a single step.

So, it sounds like GPUs are actually faking it. We are again making circuitry do something that it wasn’t truly designed to do, or do it poorly (cutting corners) but fast. Perhaps there isn’t yet the market for well designed circuitry for encoding, but right now I’m burning through a lot of supposed “climate changing” fossil fuels (and money) to get my CPU to reduce files size (HEVC) while retaining higher quality. Would be nice if these companies would take some of their trillions and design a proper chipset to give us the best of both worlds: quality and speed.

lol, it makes perfect sense to me why GPU encoders are designed for speed if you look at the target demographic/users. If you haven’t read about the triangle of encoding (speed, quality, size) you should look it up. If GPUs had to prioritize filesize then it sacrifices speed, and like I said the target demographic is more concerned about speed than filesize. There’s actually a 4th variable: cost. It’s naive to think that you can just pull all four levers at the same time.

Perhaps I need further education. It does appear using GPUs for encoding is not optimal for permanent storage. Makes me wonder what large streaming companies like Netflix use? They are interested in the same thing we are: small file sizes and smallest bandwidth requirements for best quality.

Netflix doesn’t transcode. They have separate pre-encoded files ready for whatever format the client needs.

Correct, but how do they create those pre-encoded files?

CPU offers superior size and quality so what do you think?

I think someone needs to create a CPU/GPU that optimizes both; call it an EPU (Encoding Processing Unit).

Right now it sounds like we are just faking it or forcing hardware to do something it isn’t optimized to do.

Nvidia alone is a Trillion dollar company. I think they could spare a team or two to integrate it into their chips. Heck, make it so, it “saves the climate” by reducing power consumption of encoding. I just want to save some hard cash. As I mentioned, large companies are obvious consuming a lot of power to make multiple encoded files, not to mention us, small individual users, that are growing in user base of such technology.

You do know that GPUs have encoding units in them where that’s all it does right?

I get what you’re saying. But the fact that a standalone “encoding” processor doesn’t exist (which is not a GPU or a CPU) means it’s either too expensive to make or there’s not enough demand to justify the expense of creating that product. It doesn’t matter if a company has trillions of dollars if it thinks the return on investment will be nill.

Honestly, you’re only single-mindedly thinking about yourself and your needs. As you said:

“I just want to save some hard cash.”

So what do you think you have to offer them that will be worthwhile for them to create this product for you since you’re not even willing to pay them a lot of money?

I’d like to live in a nice big house and have lots of money but I can’t get everything I want. Of course, I can get all those things if I just work harder and make more money. Then my search for a cheap “encoding processor” will be irrelevant because I’ll have all the money I need to buy all the CPUs I want to do encoding.

So your complaint essentially boils down to the fact that life is hard and you don’t have enough money to get everything you want. Everyone’s on the same boat, lol.

I’m not being single minded: when all of us Plex users, Jellyfin and Emby users, plus the larger corporations would benefit. These larger corporations continually spout climate change as a priority too. They should stand by those claims.

ChristianKent, I’m not in disagreement with your posts. I think we are finding common ground. There just seems to be some “social media” acceptance that GPUs are the end-all-be-all of encoding. I’m challenging that narrative, now that I’ve learn the reality, and saying that that industry can do much better. We need to stop being sheep and accepting the “norm.” We need to acknowledge the facts, that have not be challenged and hold these extremely rich corporations to their word. I now posted this thread as a challenge, hoping I was wrong, but have realized I am correct: there is a real need for change in this area of encoding. Yes, a trillion dollar company might lose some money, but they can lose that money in an effort to do something more than just “virtue signally” in their tagline(s).

This support isn’t just a piracy support, or an individual’s legitimate usage support; this is in support of a legal billion dollar industry’s power usage. If they truly support “climate change,” then here is a perfect situation.

Wow, I need to step down from the podium. But, I’m not wrong.

You want a hardware encoder that’s on the level of software encoding, at some point you will run into diminishing returns. What’s included in up-to-date graphics cards and other hardware is designed to be at a level that makes sense for the broadest segment of customers. If somebody really needs much better encoding, they can currently already get more CPUs or CPUs with more cores to solve the issue at a decent price point, encoding scales nearly linearly after all. And if you invest in CPUs, any future optimization of the encoder is a simple software update. For hardware encoding, even if you come up with optimizations, you need to design and create whole new chips.

I believe dedicated hardware encoding isn’t about diminishing returns for the users. It might be for the manufactures.

GPU and CPU manufactures are building new chips, I believe, every 6 month. Design the hardware encoding and included it in one of those iterations; this isn’t a special release.