Overlay is not the same as hardware decode.
There are two parts here:
- Video decode
- Video rendering
Video decode is the actual decoding of the encoded bitstream like H.264 using a video codec. This is the process of converting the encoded content into actual picture frames that makes up the video.
This can either be done in software (CPU) or be hardware accelerated on the GPU (using specialized hardware and registers optimized for such computation instead of generic purpose computation like the CPU).
DXVA is the Direct-X interface that a video card manufacturer exposes in their video drivers that applications can make use of. VLC 2.0 onwards supports DXVA decoding.
Video rendering is where Overlay comes in. Note that this is different from the actual decode process. This is the part of actually displaying the picture frames on the screen. It might sound simple, but there is more to it than one might think. Normally, windows handles placing content on the screen since the OS is aware of what other content needs to be placed on the screen (What window overlaps which other window. Decisions need to be made about what part of what window to draw and what to hide)
The 'Overlay' setting tells the video player to dump the pictures frames directly into the memory of the video card.
I usually get around 20% cpu usage when playing h264 video which seems a bit high
You can't tell with CPU usage alone. There are various levels of hardware acceleration that hardware can support (MoComp, IDCT, VLD etc.) - so it is not just a yes/no answer. Your CPU usage is dependent on how much acceleration is available and the details of the content.
If your player only uses decode acceleration, the CPU still does the work of resizing, scaling etc. (If you have a 480p video and make it full-screen on a 1080p screen, the video must be scaled up to fill the entire screen - this processing happens on the CPU unless otherwise specified)
So the final answer to your question: With VLC, there is no guarantee of hardware acceleration. Monitoring CPU usage alone cannot give you the answer.
VLC uses the CPU heavily, you can find other players that utilize the GPU better. Daum PotPlayer, SMPlayer, Gom Player. LifeHacker Link
Best Answer
The video setting tabs you showed are only for rendering.
Go to:
Preferences - Inputs & Codecs and mark "Use GPU accelarated decoding"