This is a very specific setup and takes some time to configure, but I use MPC-BE with LAV Filters, madVR and XySubFilters, the last three come with K-Lite Codec Pack Full/Mega, which is the basic requirement for players like MPC-BE to work, as they rely on external codecs.
MPC-BE is basically MPC-HC with some extra features, one of which is the ability to playback YouTube videos.
LAV Filters are used for hardware video and audio decoding.
madVR is a real-time video upscaler and artifact remover, it's pretty nice when watching content that's lower res than your native resolution.
XySubFilters is a subtitle rendering engine, it gives a good, sharp result.
As I've said, it takes a bit of configuration. First you need to configure MPC-BE to use LAV Filters, madVR and XySubFilter, then you'll have to configure madVR to get the best quality and performance balance for your hardware. Would you be surprised if I told you real-time video upscaling takes some processing power? I also had to go into registry and manually add additional subtitle paths to XySubFilter, because for some reason it wasn't saving the ones I've set in it's configuration menu. But after that it just works.