Zend certified PHP/Magento developer

FFMPEG hardware decoder is much slower than software decoder, why?

I’m new to ffmpeg. I want to convert videos to mjpeg (frame independent). At first I thought hardware acceleration should be faster. Then I tried both hardware decoders and software decoders:

"ffmpeg.exe" -y -hwaccel auto -ss 00:02:59 -to 00:04:17 -i "INPUT.mp4" -c:v mjpeg -q:v 1 -c:a pcm_s16le OUTPUT.mov

The result is:

frame= 1871 fps=127 q=1.0 Lsize=  447288kB time=00:01:17.99 bitrate=46980.0kbits/s speed= 5.3x

But,

"ffmpeg.exe" -y -ss 00:02:59 -to 00:04:17  -i "INPUT.mp4"  -c:v mjpeg  -q:v 1  -c:a pcm_s16le  OUTPUT.mov

the result is:

frame= 1871 fps=405 q=1.0 Lsize=  447288kB time=00:01:17.99 bitrate=46980.0kbits/s speed=16.9x

Hardware decoders are much slower than software decoders. How could this happen?

Thank you very much for your help.