Announcement

Collapse
No announcement yet.

A High Performance, OpenCL-Based VP9 Encoder

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • A High Performance, OpenCL-Based VP9 Encoder

    Phoronix: A High Performance, OpenCL-Based VP9 Encoder

    Ittiam has announced an OpenCL-based VP9 encoder for high performance, power efficient HD video encoding...

    Phoronix, Linux Hardware Reviews, Linux hardware benchmarks, Linux server benchmarks, Linux benchmarking, Desktop Linux, Linux performance, Open Source graphics, Linux How To, Ubuntu benchmarks, Ubuntu hardware, Phoronix Test Suite

  • #2
    Wait... wasn't OpenCL not suited enough for such tasks? Or maybe the FOSS developers who tried to develop the H264 OpenCL decoder weren't simply talented enough?
    ## VGA ##
    AMD: X1950XTX, HD3870, HD5870
    Intel: GMA45, HD3000 (Core i5 2500K)

    Comment


    • #3
      Their website talks about it already being in use by some commercial products, but it doesn't mention which. I would love to see a Fluendo plugin for GStreamer come out of this. OCL 1.1 support would be nice too, since that's pretty achievable by FOSS OCL drivers right now (at least in Fedora).

      Of course it says that their stuff mainly offloads a bunch of things to OCL, and that a number of things are still done on the CPU, but that's better than not having that acceleration at all. I'd also love to see some stats/benchmarks on this vs. reference, but without even knowing how or what to buy, I don't see that happening.

      Comment


      • #4
        Originally posted by darkbasic View Post
        Wait... wasn't OpenCL not suited enough for such tasks? Or maybe the FOSS developers who tried to develop the H264 OpenCL decoder weren't simply talented enough?
        How well a codec can be accelerated by shaders depends heavily on the codec and which parts are amenable to parallel processing. Switching between CPU and GPU for different parts of the decode pipeline really hurts. This is somewhat better with OpenCL compared to OpenGL. IIRC, newer codecs like VP9 are more amenable to acceleration using shaders than older codecs like H.264.

        Comment


        • #5
          Encoding is a somewhat more parallel activity than decoding. Encoding basically takes a big area of redundant info, figures out the redundancy, and crunches the results into a single (much smaller) stream. Decoding takes that stream and expands it out again, but the processing is more sequential.

          The back half of decoding (eg post-processing) is fairly easy to accelerate with a GPU, and that is fairly common today, but the front half is still pretty heavily sequential and that's what was putting a heavy load on slow CPUs at the time. Don't think anything has changed there other than CPUs getting faster.
          Last edited by bridgman; 12 January 2016, 02:43 PM.
          Test signature

          Comment


          • #6
            Obviously doing this encoding on the GPU in software is more efficient and performant than a CPU-based software encoder.
            It is probably obvious only to the ones who don't know much about video codecs and gpus.

            Comment


            • #7
              Originally posted by darkbasic View Post
              Wait... wasn't OpenCL not suited enough for such tasks? Or maybe the FOSS developers who tried to develop the H264 OpenCL decoder weren't simply talented enough?
              This is encoding, not decoding.

              And pretty impressive. Would like to see some actual performance results, though, as well as what kind of quality it puts out. I guess one of the benefits of encoding is that they can choose to bypass certain techniques that don't parallelize well, and focus on those that do. Decoders have to handle any valid stream they are given.

              Comment


              • #8
                Speaking of vp9, gm206 seems to have hw vp9 decoder. It have been enabled on windows driver 361.43. How long do you guys think it will take nvidia to implement it on vdpau and nvidia blobs?

                Comment


                • #9
                  Originally posted by darkbasic View Post
                  Wait... wasn't OpenCL not suited enough for such tasks? Or maybe the FOSS developers who tried to develop the H264 OpenCL decoder weren't simply talented enough?
                  If you go by Blender's pat on the backs, their in-house boys developed the new small kernel for OpenCL Cycles, when in fact 99% of the code was donated by AMD devs.

                  Comment


                  • #10
                    I don't think that VP9 is a target for an average consumer to save their home videos. It is used by google with bitrates more comparable to H.264 than H.265. Typically you would encode own videos in a codec that can be decoded by every hardware you own, that means H.264 today, maybe H.265 soon - because lower bitrates are needed, more videos on your hd Would be really interesting if there are endusers using VP9 to encoders - not only for testing.

                    Comment

                    Working...
                    X