Nearing the filling of my 14.5TB hard drive and wanting to wait a bit longer before shelling out for a 60TB raid array, I’ve been trying to replace as many x264 releases in my collection with x265 releases of equivalent quality. While popular movies are usually available in x265, less popular ones and TV shows usually have fewer x265 options available, with low quality MeGusta encodes often being the only x265 option.

While x265 playback is more demanding than x264 playback, its compatibility is much closer to x264 than the new x266 codec. Is there a reason many release groups still opt for x264 over x265?

  • cuppaconcrete@aussie.zone
    link
    fedilink
    English
    arrow-up
    6
    arrow-down
    4
    ·
    9 months ago

    My understanding is that all of the codecs we are discussing are deterministic. If you have evidence to the contrary I’d love to see it.

    • RvTV95XBeo@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      11
      ·
      9 months ago

      GPU encoders like NVENC run their own algorithms that are optimized for graphics cards. The output it compatible with x265, but the encoder is not identical and there are far fewer options to tweak to optimize your video.

      The output is orders of magnitude faster but (in my experience) objectively worse, introducing lots of artifacts

    • Randomgal
      link
      fedilink
      English
      arrow-up
      6
      arrow-down
      2
      ·
      9 months ago

      This. It sounds really odd to me that the GPU would make what is pretty much math calculations somehow “different” from what the CPU would do.

      • entropicdrift@lemmy.sdf.org
        link
        fedilink
        English
        arrow-up
        11
        ·
        9 months ago

        GPU encoders basically all run at the equivalent of “fast” or “veryfast” CPU encoder settings.

        Most high quality, low size encodes are run at “slow” or “veryslow” or “placebo” CPU encoder settings, with a lot of the parameters that aren’t tunable on GPU encoders set to specific tunings depending on the content type.

      • conciselyverbose@sh.itjust.works
        link
        fedilink
        English
        arrow-up
        6
        ·
        edit-2
        9 months ago

        So the GPU encoding isn’t using the GPU cores. It’s using separate fixed hardware. It supports way less operations than a CPU does. They’re not running the same code.

        But even if you did compare GPU cores to CPU cores, they’re not the same. GPUs also have a different set of operations from a CPU, because they’re designed for different things. GPUs have a bunch of “cores” bundled under one control unit. They all do the exact same operation at the same time, and have significantly less capability beyond that. Code that diverges a lot, especially if there’s not an easy way to restructure data so all 32 cores under a control unit* branch the same way, can pretty easily not benefit from that capability.

        As architectures get more complex, GPUs are adding things that there aren’t great analogues for in a CPU yet, and CPUs have more options to work with (smaller) sets of the same operation on multiple data points, but at the end of the day, the answer to your question is that they aren’t doing the same math, and because of the limitations of the kind of math GPUs are best at, no one is super incentivized to try to get a software solution that leverages GPU core acceleration.

        *last I checked, that’s what a warp on nvidia cards was. It could change if there’s a reason to.