Upscaling just means making the video bigger, just resizing your video player or going fullscreen will do that.
What you want is to do post processing on the video and there is no best when talking about video. Something that you think looks great can look like garbage to someone else.
Many video players on windows allow you to do some post processing or load shaders to do it or you can use something like avisynth to apply filters and play it in real time, assuming your computer is good enough.
But the easiest and an extremely good option is to use the renderer Porni suggested. You can tweak it to your liking and to how good your computer is since real time processing can be very demanding depending on what you do.