Test: H.264 I vs P Frame ImpactBy: Ethan Ace, Published on Oct 02, 2013
Codecs like H.264 reduce bandwidth by only sending full frames every so often, mixing them with partial frames only capturing changes in between the full ones. They are called 'I' frames because they are the initial / full frames, followed by 'P', or predictive frames.*
Note: if you are not familiar with codecs, please read our Surveillance CODEC Guide before continuing.
I Frame Questions
Since I frames require much more bandwidth than P frames (frequently 10 or 20x more), some will argue that reducing the rate of I frames will reduce overall bandwidth significantly. For instance, instead of having an I frame each second, reduce it to 1 every 5 seconds.
On the other hand, some will argue that reducing I frames can result in quality problems because it can be harder for the processor to continue to faithfully update and represent the image if it has changed significantly since the last I frame.
We seek to answer these two questions:
- How much bandwidth savings can you achieve by reducing the I frame interval?
- How much quality degradation can occur by reducing the I frame interval?
The Tests Conducted
In order to answer these questions, we used five 720p cameras at various price points and performance levels:
- Avigilon H3 1MP
- Axis M1114
- Axis Q1604
- Bosch NBN-733V
- Dahua HF3101
We aimed these cameras at a toy train set to create consistent motion, and varied I-frame levels from a default of one per second to as high as five and as low as one every four seconds.
There are several key takeaways from this test:
- Increasing I-frame frequency results in minimal image quality improvement, but a large increase in bandwidth consumption. Increases of 20-35% were common when doubling I-frames from 1 to 2 per second, while increases of 60-90% were observed when moving from 1 to 5.
- Decreasing the number of I-frames per second results in a significant reduction in image quality for moving objects, but a very small gain in bandwidth. Moving from one I-frame per second to one every two seconds decreased bandwidth by 5-15%. 10-25% reductions were seen when reducing I-frames to one every four seconds.
- While bandwidth generally increased as I-frame interval decreased, and vice versa, the exact amount of this change varied across manufacturers and models from the same manufacturer.
- Each camera's P-frame size remained consistent regardless of I-frame interval.
- The Bosch NBN-733V was the only camera in this test that did not increase bandwidth with the number of I-frames. Instead, the camera increased quantization, keeping the stream size constant. However, reducing the number of I-frames resulted in bandwidth reductions typical of other cameras.
- The Dahua HF3101 did not allow for more than one I-frame per second, though slower rates were possible.
Image Quality Impact
In this video, we show I-frame interval's impact on image quality due to varying degrees of artifacting. Intervals tested include:
- 1 I-frame per second
- 2.5 I-frames per second
- 5 I-frames per second
- 1 I-frame every 2 seconds
- 1 I-frame every 4 seconds
Users should note the drastic reduction in image quality as the number of I-frames is reduced, as well as the minimal gains when increasing.
When increasing the time between I frames, bandwidth declined across all cameras, but modestly, as shown by this graph:
The chart below shows the raw numbers and exact percentages:
By contrast, increasing the number of I frames so that there were multiple ones in a second, significantly increased bandwidth:
This chart shows the differences in bandwidth when increasing from one I-frame per second to 2.5 and 5. Notes that Dahua did not allow for faster rates, so was excluded from these tests. Also, see our notes about Bosch's bandwidth/compression performance.
The images below, taken from AVInaptic, illustrates two things:
- First, note the increasing quantity of I-frames in each image (moving from left to right). I-frames are shown as the taller blue lines, while P-frames are green/red.
- Second, the P-frame size of each camera remains relatively consistent regardless of I-frame interval. This was true in both the relatively low motion train test, and in a high motion scene created with a stage laser.
Bosch NBN-733 Performance
Unlike all other cameras in the test, the NBN-733V did not increase bandwidth when I-frame interval was decreased, instead staying approximately static around 3 Mb/s. Checking this camera in a stream analyzer, we discovered that the camera compensated for the additional I-frames by increasing quantization. Average quantization was as follows:
- 1 I-frame per second: ~25
- 2.5 I-frames per second: ~27
- 5 I-frames per second: ~29
Note that quantization remained unchanged when moving from one I-frame per second to one every two or four seconds, steady around 25.