Announcement

Collapse
No announcement yet.

FFmpeg Has Seen Some AVX2 Optimizations For VP9 Decoding

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

  • FFmpeg Has Seen Some AVX2 Optimizations For VP9 Decoding

    Phoronix: FFmpeg Has Seen Some AVX2 Optimizations For VP9 Decoding

    Another GSoC 2017 project worth highlighting now that Google's annual Summer of Code has finished is the AVX2 optimizations being done to the VP9 decoder within FFmpeg...

    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
    Isn't it also worth highlighting that it's done several times faster by decoders on graphics cards?

    Comment


    • #3
      Originally posted by sdack View Post
      Isn't it also worth highlighting that it's done several times faster by decoders on graphics cards?

      https://en.wikipedia.org/wiki/VP9#Ha...device_support
      What people really want to know is if that hardware acceleration is usable on Linux at all, and with what browsers.

      Comment


      • #4
        Originally posted by starshipeleven View Post
        What people really want to know is if that hardware acceleration is usable on Linux at all, and with what browsers.
        One could argue that AVX2 optimized asm with multithreading is already hardware accelerated. The speedup is significant. In video playback, the important question is 'can my pc play this video yes/no'. It doesn't matter if it's 20 or 200 times faster than realtime.

        Comment


        • #5
          Originally posted by starshipeleven View Post
          What people really want to know is if that hardware acceleration is usable on Linux at all, and with what browsers.
          I cannot tell you which browser to use. You probably have to configure and build your own version of Firefox for it and not depend on your distro to provide you a good one.

          VP9 decoding in hardware is working just fine for anything that's using ffmpeg. So does mpv play 4k U-HD videos encoded in VP9 at 3840x2160 60HZ while the CPU idles at 5% usage.

          GStreamer-based applications will likely work just as well.

          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

          Comment


          • #6
            Originally posted by caligula View Post
            One could argue that AVX2 optimized asm with multithreading is already hardware accelerated. The speedup is significant. In video playback, the important question is 'can my pc play this video yes/no'. It doesn't matter if it's 20 or 200 times faster than realtime.
            Speeds beyond 1x do actually matter, because transcoding is also done in hardware these days and at speeds beyond 1x. You also don't want to have your CPU running at 100% usage while playing a video.

            The support of AVX2 instructions is hardly news-worthy, because most people who have a CPU with AVX2 instructions and a 4K display (that's where it begins to matter) will also have a recent GPU capable of decoding it in hardware. So they won't care for AVX2-accelerated decoding unless perhaps when used as a fallback method, but they want it done on the graphics card.
            Last edited by sdack; 27 August 2017, 09:08 AM.

            Comment


            • #7
              Originally posted by caligula View Post

              One could argue that AVX2 optimized asm with multithreading is already hardware accelerated. The speedup is significant. In video playback, the important question is 'can my pc play this video yes/no'. It doesn't matter if it's 20 or 200 times faster than realtime.
              It does in a laptop, it means it will use less power and can play video longer on battery.

              Edit: Well, a more efficient implementation will, just adding more threads will not.

              Comment


              • #8
                I've got an AMD A12 9800 (Excavator based APU). It supports AVX2, but doesn't hardware-decode VP9. So personally I very much welcome these optimizations. (The CPU is already "fast enough" for 1080p VP9 decoding without problems, but lowering CPU usage on entry-level CPUs is always neat)

                Comment


                • #9
                  Originally posted by SavageX View Post
                  I've got an AMD A12 9800 (Excavator based APU). It supports AVX2, but doesn't hardware-decode VP9. So personally I very much welcome these optimizations. (The CPU is already "fast enough" for 1080p VP9 decoding without problems, but lowering CPU usage on entry-level CPUs is always neat)
                  Are you sure that it doesn't do VP9 already in hardware? Says it does on Wikipedia.



                  Knowing AMD's AVX instruction set and memory bus would I not expect the same speed-ups with AVX2 as you'd get with Intel.

                  Comment


                  • #10
                    Originally posted by sdack View Post
                    Isn't it also worth highlighting that it's done several times faster by decoders on graphics cards?

                    https://en.wikipedia.org/wiki/VP9#Ha...device_support
                    How much of those can you utilise on your GNU/Linux PC?

                    Also, the table counts "GPU or DSP based implementations – software implementations on non-CPU hardware", which is pretty useless. E.G. even AMD's most recent UVD seen in Vega dones't support VP9. The power-hungry hybrid decoder does only work on Windows.

                    Comment

                    Working...
                    X