Wednesday, 22 October 2014

1080p60 Battle (MagicYUV vs x264vfw)

I've known about MagicYUV for quite some time but never really paid much attention to it. I decided to look on the website and it makes some interesting claims:

"It provides faster-than-realtime performance for FullHD and 4K resolutions on contemporary PC hardware. Multi-threaded by design enabling efficient utilization of multi-core CPUs. This combined with an advanced SSE optimized coder/decoder engine makes MagicYUV one of the fastest mathematically lossless video codecs of it's kind."

Sounds quite interesting, doesn't it? I thought so to. I decided to compare it to the July 2014 x264vfw build to see if these claims were true. Firstly, here is the configuration and setup. We'll be using a 1080p60 capture card (YUY2) and an Xbox 360. AmaRecTV will be the capture program. The system in question is nothing fancy. An old i5 2500k, 8GB RAM and a dedicated internal WD Black 1TB hard drive for capture. Below are the codec configurations.




During initial testing, I was unable to have MagicYUV keep a stable frame rate when the buffer size was set to 128 in AmaRecTV. x264vfw also had this issue with --keyint 1 applied. This buffer size is just too small when dealing with such high data rates and real time compression. To give each codec a chance, I set the buffer size to the maximum 512 to mitigate hard drive bottle necking. This thankfully lead to no further issues and testing was much easier.

First let's talk about how x264vfw performed. If you read my previous posts, you know what I am going to say. It just works. If you want even better compression ratios you can disable/enable the --keyint value. Setting this to 10 gives a fair trade off between editing accuracy and compression. Only in very high motion scenes will x264vfw even come close to MagicYUV. Most of the time it's not even close. Please pay close attention to the CPU usage figure in the below screenshot (click to enlarge).


Now let's move onto MagicYUV. The claim of being the fastest lossless codec is definitely true... and they are true by a huge margin. It knocks every other true lossless codec out of the park that I tested months ago in my 1080p60 lossless article.


That 24% is not just a low reading. That 24% stays no matter what content you capture. I've seen it peak to 25% once but that was it. That's pretty amazing actually. Even x264vfw at lower CRF values has a hard time beating that. The only problem is well... not a problem. It's just like every other true lossless codec in that the data rates are always high. Compare the file sizes of the above screenshots. With x264vfw I've captured over 5 minutes and just about to hit 19 GB. I've not even hit 4 minutes with MagicYUV and I'm already close to 22 GB.

In conclusion, MagicYUV performs really well but personally I feel it still falls slightly short of x264vfw. The sheer configuration options available in x264vfw is what swings it for me. Not only that but MagicYUV is currently not part of FFmpeg. This means it won't import into popular encoding programs like nate's Yua for SDA speedrun submission. However, if it does get integrated into FFmpeg and compression ratios improve I will definitely consider MagicYUV over x264vfw.

No comments:

Post a Comment