<p><code>H.264/AVC</code> is <em>not</em> limited for 4K in terms of max resolution as it supports  <code>DCI 4K</code> (4092x2160) @ 60 fps at Level 5.2.  For example Sony already uses <a href="https://en.wikipedia.org/wiki/XAVC" rel="noreferrer">XAVC</a> which is exactly 4K AVC.</p>

<p>For a while the max level was 5.1 and 5.2 was introduced later. If needed new levels can be introduced as long there's the hardware to support it.</p>

<p>For eg. the Nvidia NVEC supports H.264 up to 4096x4096: <a href="https://developer.nvidia.com/sites/default/files/akamai/cuda/files/CUDADownloads/NVENC_AppNote.pdf" rel="noreferrer">https://developer.nvidia.com/sites/default/files/akamai/cuda/files/CUDADownloads/NVENC_AppNote.pdf</a></p>

<p>The actual problem with 4K are the bandwidth requirements for <em>streaming</em>, not the hardware support. To do 4K streaming at 12-15 Mbps the encoder needs a <a href="http://blog.streamingmedia.com/2015/01/4k-streaming-bandwidth-problem.html" rel="noreferrer">40% efficiency increase</a>. </p>

<p>The problem with <code>H.264</code> is that it's not efficient enough for this purpose. This is what the new <a href="https://fr.wikipedia.org/wiki/H.265/HEVC" rel="noreferrer">H.265/HEVC</a> (<strong>High Efficiency Video Coding</strong>) tries to achieve. </p>

CC BY-SA 3.0
2015-10-07T10:39:34.207Z
The resolution you state is lower than the resolution I stated as max. possible under level 5.2. The issue of coding efficiency is germane to viability of H264 as a choice for 4K stream given a bandwidth constraint, not to why an encoder doesn't output higher-res.
Gyan
CC BY-SA 3.0
2015-10-07T12:43:24.203Z
The max resolution is not supported at 60 fps on 5.2 and 60 fps is also becoming a requirement. There's no reason why AVC won't work with higher resolutions and it could be used for say, storage. In fact AVC is way faster than HEVC.
aergistal
CC BY-SA 3.0
2015-10-07T13:21:17.213Z
I'll post all further comments here. The OP's query is why is encoding "limited". Presumably, this was provoked by an empirical observation. So, the question isn't whether there are theoretical considerations in the spec which prevent 8K H.264 streams, but why don't encoders output greater sizes. Now, the level is just a metadatum and players may ignore it but non-turnkey commercial and FOSS encoders probably try to generate compliant streams, and at present, the spec doesn't allow for it.
Gyan
CC BY-SA 3.0
2015-10-07T14:05:16.133Z
The OP asked for technical reasons. The level is conformance, not strictly a technical issue with the underlying codec. Coding efficiency is a technical reason.
aergistal
CC BY-SA 3.0
2015-10-07T14:25:11.893Z
But the reason doesn't seem to be functional but legal. This is the reason proffered by the Adobe liaison at https://forums.creativecow.net/thread/2/1046747 - "Adobe Media Encoder is enforcing the limits on H.264 video that are imposed by the MPEG-4 specification."
Gyan
CC BY-SA 3.0
2015-10-07T14:38:38.490Z
That's exactly what I was trying to point out: there's no technical limit, just a conformance limit subject to change.
aergistal
CC BY-SA 3.0
2015-10-07T14:53:07.460Z
That use of 'technical' is obviously a generic use on the part of the OP. If they meant to differentiate between algorithmic vs bureaucratic reasons, that would show up in the Q. In fact, since my answer doesn't convey a technical (in your sense) reason and yet was accepted by the OP shows that they didn't have your distinction of 'technical' in mind.
Gyan
CC BY-SA 3.0
2015-10-07T15:09:29.873Z
Let us [continue this discussion in chat](http://chat.stackexchange.com/rooms/29978/discussion-between-aergistal-and-mulvya).
aergistal
CC BY-SA 3.0
2015-10-07T10:24:11.573Z
2015-10-07T13:17:19.030Z
2015-10-07T13:17:19.030Z
aergistal
<p>One of the bits of information associated with a H264 stream is its <a href="https://en.wikipedia.org/wiki/H.264/MPEG-4_AVC#Levels">level</a>. The level informs the decoder the computational resources needed for a successful decode. Turns out that the highest level 5.2 supports upto 9437184 luma samples per frame, which is the number of luma samples needed for a frame of size 4096x2304. So, there may be encoders that can (be forced to) encode higher resolutions but there's no valid level which can be set for the stream, and probably no decoder that can be guaranteed to produce reliable playback.</p>

CC BY-SA 3.0
2015-10-07T10:31:34.430Z
This is not the issue. New levels can be added (5.2 was added in the ITU-T recommendation in 2011-2012).  The issue is the coding efficiency.
aergistal
CC BY-SA 3.0
2015-10-07T10:35:50.777Z
Of course, new levels can be added. But encoders already out there don't go past the spec at the time of their production. So, what level do you expect an encoder compiled today to set if fed, say, 8K input?
Gyan
CC BY-SA 3.0
2015-10-07T12:19:34.080Z
The level is just a flag. Some decoders ignore it completely.
aergistal
CC BY-SA 3.0
2015-10-07T13:10:12.543Z
Here's one real life example why your answer is incomplete: Nvidia NVEC supports H.264 at up to 4096x4096, which falls outside 5.2 https://developer.nvidia.com/sites/default/files/akamai/cuda/files/CUDADownloads/NVENC_AppNote.pdf
aergistal
CC BY-SA 3.0
2015-10-03T13:01:47.413Z
2015-10-03T13:01:47.413Z
Gyan
<p>I was trying to find the technical reasons for why H.264 is limited for 4K.
Obviously that in terms of bit-rate it becomes less efficient but the encoding itself is limited and for some reason, I couldn't find any publicly available references.</p>
<p>Someone?</p>

<h.264><4k>
H.264 Max Resolution
Lior Ohana
# H.264 Max Resolution

(Asked by: username_0 on 2015-10-03)

I was trying to find the technical reasons for why H.264 is limited for 4K.
Obviously that in terms of bit-rate it becomes less efficient but the encoding itself is limited and for some reason, I couldn't find any publicly available references.

Someone?

**Tags:** h.264, 4k


---

## 2 answers

### Answer by username_2 on 2015-10-03. Score: 9 | Accepted answer

One of the bits of information associated with a H264 stream is its [level](https://en.wikipedia.org/wiki/H.264/MPEG-4_AVC#Levels). The level informs the decoder the computational resources needed for a successful decode. Turns out that the highest level 5.2 supports upto 9437184 luma samples per frame, which is the number of luma samples needed for a frame of size 4096x2304. So, there may be encoders that can (be forced to) encode higher resolutions but there's no valid level which can be set for the stream, and probably no decoder that can be guaranteed to produce reliable playback.

> **Comments:**
> **username_1**: This is not the issue. New levels can be added (5.2 was added in the ITU-T recommendation in 2011-2012).  The issue is the coding efficiency.  
> **username_2**: Of course, new levels can be added. But encoders already out there don't go past the spec at the time of their production. So, what level do you expect an encoder compiled today to set if fed, say, 8K input?  
> **username_1**: The level is just a flag. Some decoders ignore it completely.  
> **username_1**: Here's one real life example why your answer is incomplete: Nvidia NVEC supports H.264 at up to 4096x4096, which falls outside 5.2 https://developer.nvidia.com/sites/default/files/akamai/cuda/files/CUDADownloads/NVENC_AppNote.pdf  

---

### Answer by username_1 on 2015-10-07. Score: 9

`H.264/AVC` is *not* limited for 4K in terms of max resolution as it supports `DCI 4K` (4092x2160) @ 60 fps at Level 5.2. For example Sony already uses [XAVC](https://en.wikipedia.org/wiki/XAVC) which is exactly 4K AVC.

For a while the max level was 5.1 and 5.2 was introduced later. If needed new levels can be introduced as long there's the hardware to support it.

For eg. the Nvidia NVEC supports H.264 up to 4096x4096: <https://developer.nvidia.com/sites/default/files/akamai/cuda/files/CUDADownloads/NVENC_AppNote.pdf>

The actual problem with 4K are the bandwidth requirements for *streaming*, not the hardware support. To do 4K streaming at 12-15 Mbps the encoder needs a [40% efficiency increase](http://blog.streamingmedia.com/2015/01/4k-streaming-bandwidth-problem.html).

The problem with `H.264` is that it's not efficient enough for this purpose. This is what the new [H.265/HEVC](https://fr.wikipedia.org/wiki/H.265/HEVC) (**High Efficiency Video Coding**) tries to achieve.

> **Comments:**
> **username_2**: The resolution you state is lower than the resolution I stated as max. possible under level 5.2. The issue of coding efficiency is germane to viability of H264 as a choice for 4K stream given a bandwidth constraint, not to why an encoder doesn't output higher-res.  
> **username_1**: The max resolution is not supported at 60 fps on 5.2 and 60 fps is also becoming a requirement. There's no reason why AVC won't work with higher resolutions and it could be used for say, storage. In fact AVC is way faster than HEVC.  
> **username_2**: I'll post all further comments here. The OP's query is why is encoding "limited". Presumably, this was provoked by an empirical observation. So, the question isn't whether there are theoretical considerations in the spec which prevent 8K H.264 streams, but why don't encoders output greater sizes. Now, the level is just a metadatum and players may ignore it but non-turnkey commercial and FOSS encoders probably try to generate compliant streams, and at present, the spec doesn't allow for it.  
> **username_1**: The OP asked for technical reasons. The level is conformance, not strictly a technical issue with the underlying codec. Coding efficiency is a technical reason.  
> **username_2**: But the reason doesn't seem to be functional but legal. This is the reason proffered by the Adobe liaison at https://forums.creativecow.net/thread/2/1046747 - "Adobe Media Encoder is enforcing the limits on H.264 video that are imposed by the MPEG-4 specification."  
> **username_1**: That's exactly what I was trying to point out: there's no technical limit, just a conformance limit subject to change.  
> **username_2**: That use of 'technical' is obviously a generic use on the part of the OP. If they meant to differentiate between algorithmic vs bureaucratic reasons, that would show up in the Q. In fact, since my answer doesn't convey a technical (in your sense) reason and yet was accepted by the OP shows that they didn't have your distinction of 'technical' in mind.  
> **username_1**: Let us [continue this discussion in chat](http://chat.stackexchange.com/rooms/29978/discussion-between-username_1-and-mulvya).  

---

