UPDATE: Tomorrow I’ll publish full settings, the final bit rate achieved. I need some time to shoot some decent footage and side by side shots with AVCHD 1080p to show just what a hike in quality this is.
So – the Panasonic GH1. Great camera. Crap codec.
That’s all changed.
Just right now I’ve had a breakthrough whilst experimenting with the GH1’s firmware, using the excellent PTools custom firmware by Tester13.
Since last week, 1920×1080 has been enabled in MJPEG mode but it’s been tricky to get it working well let alone with a high bit rate, for longer than a few seconds. The consensus was that it’s just upscaled 720p anyway. 720p MJPEG meanwhile, was hitting ever higher bit rates.
For those not yet initiated on goings-on, the aim of this GH1 firmware manipulation tool is to change settings deep in the GH1’s hardware, like encoder buffers and sensor modes to list but 2! Now finding the right combination of settings to increase image quality is what the game is all about. And it’s not easy. Testers work blind, without any official documentation to guide them.
So rather than use a random scattered approach to changing settings, I approached it systematically and sought to understand the effect of each individual camera setting one by one. Some of the stuff is really a mystery – nobody can be sure what a setting does until it’s tested. And then how it interacts with other settings, must also be understood.
So to cut a long story short I’ve been very thoroughly going through the parameters on the custom GH1 firmware only changing one thing at a time (I’m now on version number 1.68!!) – this wasn’t a brute-force approach, rather a systematic trial & error whilst applying what I know about how the GH1 already works. Today I had a significant breakthrough.
Full HD MJPEG mode at a high bit rate. No crashes after a few seconds. REAL 1080p resolution, not just upscaled 720p. No mud on fast pans. Proper motion blur. Huge hike in colour, contrast, dynamic range, and detail. Detail is held onto no matter how much you pack into one frame. As well as that, the higher noise of the previous 720p low-bit rate out-of-the-box GH1 MJPEG mode is history. The footage is just so nice. Like a JPEG photo at 12MP scaled to 1920×1080 in Photoshop! It’s that good.
Plus it’s in a more friendly format for PCs and Macbooks to handle. No more pull-down or endless transcoding. The only issue right now is that it’s 30p but it’s likely that can be overcome in the coming days.
Before I have time to go out and shoot footage and show just what this beast is capable of when liberated from it’s awful AVCHD codec here is a quick update on where the project stood before today…
The guys already testing the firmware, switching a multitude of parameters to achieve better quality footage, were this week able to achieve ridiculously high bit-rates – as high as 100Mbps in 720p mode. The men at the forefront of this, known as NURBS and Pappas-Art were able to provide the settings for others to use and learn from, as a benchmark for their own experiments. This high-bit rate madness was an ominous sign, and got my mind racing about the possibilities for 1080p.
The main problem as it stood was that at these super-high bit rates the camera just can’t record in a reliable way and then only for a few seconds. Also, a very high speed card is required. Plus, it’s still plain Jane 720p.
And yet – surely if the GH1’s hardware can do 100Mbps 720p at 30fps, it can do MUCH better than 17Mbps 1080p at 24p which is what the flawed AVCHD mode give us. Well it can! (By the way, not only is the AVCHD a low bit rate, the routine that handles the allocation of P frames is extremely flawed, according to Tester13. And I believe him 100%. Panasonic made an error of judgement!).
Now the issue of memory cards bug me a bit. It would be really annoying if we needed cutting edge Sandisk Class 10 cards to get this patch to work. Well, good news – we don’t.
While this high quality MJPEG footage isn’t cleverly compressed by magic modern codecs, the memory card does indeed become more of an issue but not an unsurmountable one. MJPEG is quite an old codec, and although it’s capable of lovely results (as is JPEG at high quality settings for still photos) it does use up quite a lot more space than H.264 at the same bit-rate and therefore is written to the card in bigger chunks from the camera’s buffer memory.
I have an El-Cheapo memory card. It’s an AData class 6 8GB card which I use for experimental stuff. It cost, well, not a lot. Yet I was luckily able to bring the high-bit rate 1080p footage just under this card’s limitation.
After all, if the 5D Mark II can pipe it’s lovely high bit rate footage (albeit in the more efficient H.264 format) to any old compact flash card, surely the card is not the bottle-neck.
This ultra high quality 1080p MJPEG footage does not require an expensive memory card. It works just fine with what I have. Camera buffer limit allowing, it may be that we can go even higher on a faster memory card, but over a certain point, gains begin to plateau. The most important aim was to remove the AVCHD bugs which caused ‘mud’ on motion blur or camera movement, and hike the bit-rate for 1080P to a more reasonable level for improved image quality. 17Mbps AVCHD is just silly.
Now, the footage I am getting from 1080p MJPEG is MUCH closer to the 5D Mark II. In fact, in some respects it’s better because the image is scaled via pixel binning rather than line-skipping. So there is no noticeable moire and rainbow patterns you can get on brick walls for example. No – the GH1’s Achilles Heel was it’s poor AVCHD codec – and previously, MJPEG mode was noisy and 720p at a low bit rate with crap colours.
The colour and contrast from 1080p MJPEG is much higher – much more cinematic.
I will do further tests to increase the bit rate still further before publishing the final rate, and the footage – but what I can say for sure is that what I have here is 10x better than the 1080p we’re used to getting from AVCHD.
I will dedicate tomorrow to shooting footage, side by side with the AVCHD 1080p and will publish it so that you can believe what I say. I just need a bit of time, to produce the footage in a proper way. I had the breakthrough about 20 minutes ago!! I have however done tests that show that the 1080p footage is NOT simply scaled up 720p in-camera. It shows more detail side by side than the high bit-rate 720p clips resolve. It shows as much detail as the AVCHD 1080p itself but due to it’s higher bit rate it doesn’t smudge out areas of the image even when the scene is packed with detail.
Until tomorrow then, here is a tip – the trick of achieving the hike in image quality with MJPEG 1080p was to find the limit of the camera’s frame buffer memory size, simply a great deal of trial and error going back and forth changing settings in the custom firmware patch. There is still capacity left in the hardware to refine further, but not much!!
Be sure to check EOSHD tomorrow.