EDIT: January 2022
This post is one of the most popular on the web on this specific issue and is even referenced by some cinematographers so I want to make sure this stays current and add a few bits before you read on:
- All Intra 400 Mbps = ProRes HQ. I ran some tests with my friend Paal Rasmussen and contrary to what we expected there is no major SNR benefit shooting ProRes.
- The GH5M2 adds HEVC 200 Mbps 50/60 fps 10 bit 420. From my empirical tests this is very decent indeed compared to ProRes HQ. Look at my youtube channel for some tests.
- The rest of the post remains correct although I would need to analyse frames of the new codec to add it to the post and I have no time to do it.
There are a lot of videos on YouTube that suggest that there is not much difference among the various recording settings of the GH5 for UHD.
To recap we have 4 settings for UHD (I will refer to PAL system because it is easier but all applies equally to 24p, the 30p/60p format will be the same with worse results)
- 100 Mbps 420 8 Bits Long GOP 25p
- 150 Mbps 420 8 Bits Long GOP 50p
- 150 Mbps 422 10 Bits Long GOP 25p
- 400 Mbps 422 10 Bits All-Intra 25p
The difference between Long GOP and All Intra is that in the Long GOP what is encoded is a group of pictures (GOP) and not separate individual pictures.
Within a Group of Pictures there are different type of frames:
- I (Intra coded) frames containing a full picture
- P (Predictive coded) frames containing motion interpolated picture based on a prediction from previous frames
- B (bi-predictive coded) frames containing a prediction from previous or future frames
It is important to note that frames are not stored sequentially in a GOP and therefore the GOP needs to be decoded and the frames reordered to be played, this requires processing power.
The reason why H264 is very efficient is that within a group of picture there is only one full frame and the rest are predictions clearly if the prediction algorithm is accurate the level of perceived quality of long GOP is very high and similar to All-Intra clips.
This is the reason why comparing All Intra and Long Gop using static scenes or scenes with repetitive movement that can be predicted very accurately by the codec is a fundamental error.
Incorrect example here:
The scene is composed of static predictable objects with no motion and after YouTube compression the (wrong) conclusion is that there is no absolute difference between the codecs. Instead what this shows is the effectiveness of Long GOP when the prediction is accurate which is exactly the point of the codec plus the fact that YouTube flattens differences due to heavy compression and use of Long GOP.
Another example is a bit better as it uses a fountain which is a good representation of unpredictable motion
In the 300% crop you can see how All_Intra performs better than Long GOP in terms of prediction despite the YouTube compression, but generally those tests are unreliable if you see the last section of the video where there is a semi-static scene you cannot really take the three examples apart.
So why is that and is there any point selecting different settings on your Panasonic GH5?
In order to understand the workings we need to dig deeper into the structure of the GOP but before doing so let’s evaluate the All-Intra codec.
AVC All-Intra explanation
This codec records at 400 Mbps so with 25 fps this means circa 16 Mbits per frame or 1.9 MB per frame and there is no motion interpolation so each frame is independent from the others. The implementation of All-Intra of the GH5 does not make use of CABAC entropy encoding as Panasonic does not believe this is beneficial at higher bit-rates making this AVC-Intra implementation very close to ProRes as both are based on Discrete Cosine Transform.
If you consider a Jpeg image of your 3840×2160 frame on the GH5 you see that it stores around 4.8 MB per image because there is no chroma sub-sampling so if you wanted to have exactly the same result you would need to use ProRes 4444 to get a comparable quality (this not even taking into account that Jpeg are 8 bits images).
Video uses chroma sub-sampling so only part of the frame contain colours at a given time. Apple in their ProRes white paper declare that both ProRes 422 and 422 HQ are adequate to process 10 bit colour depth and 422 sub-sampling however they show some quality differences and different headroom for editing. If you count 50% for 4.2:0 sub-sampling and 67% for 422 you get around 2.34 MB and 3.5 MB frame sizes that correspond to ProRes 422 and ProRes 422 HQ individual frame sizes.
In simple terms All Intra 400 Mbps would fall short of Apple recommended bit-rate for 422 10 bit colour for circa 92 Mbps is like saying you are missing 0.44 MB from your ProRes 422 frame and 1.6 MB from ProRes 422 HQ and you have 0.3 MB more than ProRes LT however I do not have the full technical details of ProRes to evaluate directly.
The real benefit of such codec is that it can be processed with modest hardware without conversion as the AVC Intra codec is edit ready and each frame is captured individually without any motion artefacts and therefore the computer does not have to do a great deal of work to decode and render the clips.
In order to record All-Intra in your memory card you need a V60 or higher specs card which in terms of $ per GB costs you more than an SSD drive however you no longer need a recorder.
Coming back to the other recording quality option we still need to evaluate how the various long GOP codecs compare relative to each other.
In order to fully understand a codec we need to decompose the GOP into the individual frames and evaluate the information recorded. If you look on Wikipedia it will tell you that P frames are approximately half the size of an I frame and B frame are 25%. I have analysed the Panasonic GH5 clips using ffprobe a component of ffmpeg that tells you what is exactly in each frame to see if this explains some of the people claims that there is no difference between the settings.
Link to Panasonic documentation
100 Mbps 420 8 Bits Long Gop 25p Deep Dive
An analysis with ffprobe shows a GOP structure with N=12 and M=3 where N is the length in frames of the group of pictures and M is the distance between I or P frames.
So each Group of Picture is made like this
IBBPBBPBBPBBP before it repeats again.
A size analysis shows that B frames are in average 14% of the I frame and P frames are around 44% of the I frame.
|Ratio to I frame||100%||15.01%||14.43%||44.21%||14.07%||13.84%||43.76%||13.85%||13.80%||43.30%||14.37%||14.08%|
With an average video bit-rate of 94 Mbps each GOP has 45.3 Mbps which means an I Frame has around 13.1 Mbits or 1.57 MB per frame and an equivalent All-Intra bit-rate of approximately 328 Mbps however this codec is using CABAC entropy encoding that Panasonic states is 20-30% more efficient than CAVLC used in All-Intra so net of motion artefacts this codec is pretty strong.
150 Mbps 420 8 Bits Long GOP 50p Deep Dive
An analysis with ffprobe shows a GOP structure with N=24 and M=3 where N is the length in frames of the group of pictures and M is the distance between I or P frames.
So each Group of Pictures is made like this
IBBPBBPBBPBBPBBPBBPBBPBB before it repeats again.
A size analysis shows that B frames are in average 13.4% of the I frame and P frames are around 41% of the I frame. With an average bit-rate of 142.7 Mbps each GOP has 68.5 Mbits which means an I Frame has around 11.3 Mbits or 1.35 MB per frame and an equivalent all Intra bit-rate of approximately 566 Mbps. Again this uses CABAC entropy encoding so the equivalent All-Intra is higher.
One very important aspect of the 150 Mbps codec is that as the GOP is double the length of the single frame rate 100 Mbps codec there are the same number of key frames per second and therefore it is NOT true that this codec is better at predicting motion. In fact it is exactly the same so if you had acquired a 100 Mbps codec at 25 fps and then slowed down the footage to half speed asking your editor to interpolate intermediate frames it would come to the same result although with some more processing required.
150Mbps 422 10 Bits Long Gop 25 fps
An analysis with ffprobe shows a GOP structure with N=12 and M=1 which means this codec does not use B frames but just I and P frames so the GOP structure is as follows:
IPPPPPPPPPPP before it repeats again.
A size analysis shows that P frames are on average 53% of I frames so this codec is in fact less compressed however this has also some consequences.
With an average bitrate of 150 Mbps each GOP has 72 Mbits which means an I Frame has around 10.5 Mbits or 1.25 MB per frame and an equivalent all Intra bitrate of approximately 262 Mbps. So this codec in terms of compression efficiency this is actually the worst and this is due to the lack of B frames.
We can only think that the Panasonic GH5 processing is not strong enough to capture 10 bit and then write 422 Long GOP with IPB structure.
Codec Ranking for Static Image Quality UHD
So in terms of absolute image quality and not taking into account other factors the Panasonic GH5 Movie recording settings ranked by codec quality are as follows:
- 400 Mbps 422 10 Bit All intra 25 fps (1.9 MB per frame)
- 100 Mbps 420 8 Bit Long Gop 25 fps (1.57 MB per frame)
- 150 Mbps 420 8 Bit Long Gop 50 fps (1.35 MB per frame)
- 150 Mbps 422 10 Bit Long Gop 25 fps (1.25 MB per frame)
The 100 Mbps and 400 Mbps codec are marginally different (21% larger frame size) with the 422 10 Bits long GOP really far away.
If you want to record your footage to the internal memory card you are really left with two choices:
- Use the 100 Mbps Long Gop codec it is very efficient in the compression and the perceived quality is very good. It does however require you to convert to ProRes or similar during editing if you don’t want to overload your computer as the codec is really heavy on H264 features. You need to get the exposure and white balance right in camera as the clips may not withstand extensive corrections. There is a risk with footage with a lot of motion of some errors in motion interpolation that can generate artefacts.
- Buy a V60 or V90 memory card and use 400 All intra at single frame rate. This will give you edit ready footage of higher quality without motion artefacts, You still need to get exposure and white balance right in camera as the headroom is not so large to allow extensive corrections. The bit-rate and frame size is not sufficient to really give you all the benefits of 422 sampling and 10 bit colour but it will be a good stepping stone to produce good quality rec709 420 8 bit footage.
Generally there appears to be no benefit using the internal 422 10 Bit codec nor the 420 8 bit double frame rate due to the limitations of the GOP structure, here Panasonic has created a few options that to be honest appear more a marketing effort than anything else.
There may be some use to the 150 Mbps double frame rate if you intend to slow down the footage after the conversion to ProRes or similar but the extremely long GOP does not make this codec particularly robust to scenes with a lot of motion and in any case not more robust than the 100 Mbps codec.
A final thought if you are interested in 10 bit colour is that the FHD All Intra 200 Mbps codec has enough quality and headroom to allow manipulation. This is in fact the only codec that has bit-rate higher than ProRes HQ at least at 24 and 25 fps so if you want to check the real range of colours and dynamic range the camera is capable of you should try this codec.