ravin.wang
ravin.wang

Reputation: 1252

The maximum size with bytes of one NAL unit

I can't find any clue in H.264 spec, anybody can give a clear and simple maximum size regardless of its profile and level?

I'd like to parse H.264 stream, and copy one complete NAL unit buffer to a fixed-size buffer which can hold all bytes of one NAL unit.

Thanks.

Upvotes: 3

Views: 3189

Answers (2)

szatmary
szatmary

Reputation: 31100

AVC level 6.2 allows up to 139264 macro blocks per frame. If we use 10 bit color 4:4:4 it’s 30 bits per pixel. So (30*139264*16*16)/8 gives about 133.7mbytes for an uncompressed image. H.264 has a PCM_I encoding that allows for uncompressed images. There is a little ovehead for the NAL header, so let’s call it 134Mbyte. But in the real world the frame probablly will not be this large, and will likely be compressed.

Upvotes: 4

Markus Schumann
Markus Schumann

Reputation: 8254

I don't think there is a maximum for video NALs. In Annex-B format the NALs are start code delimited 0x00 0x00 0x00 0x01 so there is no limitation through a size field. In MP4 format the size field can have more capacity than most computer's RAM. I'd make a reasonable assumption what buffer size to expect and then reallocate if the maximum is exceeded.

Upvotes: 4

Related Questions