Log in

View Full Version : h.264 timing information


Dave1024
20th February 2012, 19:30
hi,

any one please clear the following doubts

1. i am searching for the frame rate mandatory information from h.264.which header will give the correct information about this?

11. will this header is mandatory for all the frames ?

2. where i can expect the timing information to generate the clips from my streams.?

22. if i split the stream using time stamp information will any way crash my decoding due the the reference picture buffer ?

222. The CBP, BP and MP any kind of timing information can possible to attach with streams in this level ?


:thanks:
Dave

LoRd_MuldeR
21st February 2012, 02:11
I think you have to look at "Video usability information" (VUI).

If timing_info_present_flag is set, there should be num_units_in_tick, time_scale and fixed_frame_rate_flag fields.

To my understanding, the VUI header as a whole is optional. And even if VUI are present, the "timing_info" part of the VUI is still optional.

See "Annex E" of the specs for details...

Dave1024
3rd March 2012, 11:04
Thanks for the guidance.

I had few doubtful lines when i read the spec.

"user_data_unregistered" of sei_payload type = 5;

what is the use of the content packed in this payload type.? Any time information is codded in this data. ?

For avc/h.264 will i can consider CPB delay or DPB output delay as a valid time code to address my frames?

:thanks:
Dave

LoRd_MuldeR
3rd March 2012, 12:35
User data unregistered SEI message semantics
This message contains unregistered user data identified by a UUID, the contents of which are not specified by this Recommendation
user_data_unregistered( payloadSize ) {
uuid_iso_iec_11578 5 u(128)
for( i = 16; i < payloadSize; i++ )
user_data_payload_byte
}

I think the data stored in this kind of SEI message is completely application-specific.

And it's identified by an UUID to ensure that each application-specific SEI message has a unique identifier that no other application uses.

AFAIK, x264 uses such a SEI message to store all it's encode options in the H.264 bitstream.

Dave1024
3rd March 2012, 17:07
:thanks:

will you clarify the following !

In H.264/avc which header will give an information about VBI or VITC data.?

Is h.264 encoder is able to encode VBI or VITC in the result bitstream ?

When i came across annex C i doubted with C1.1 and C1.2

will i can address my output frames using CPB bitstream arrival time or CPB bitstream removal time or DPB removal time. ? Is this information is a timing information associate with h264. ?

:thanks:
Dave

nm
3rd March 2012, 18:44
In H.264/avc which header will give an information about VBI or VITC data.?

Generic VBI data would not be stored in a H.264 stream. Some specific types of information can be stored as SEI and VUI, including framerate and timing information, but you can't count on them to be present in wild streams.

When i came across annex C i doubted with C1.1 and C1.2

will i can address my output frames using CPB bitstream arrival time or CPB bitstream removal time or DPB removal time. ? Is this information is a timing information associate with h264. ?

Not really. Frame timing is usually signaled at container level, like in PES headers of MPEG-TS streams. H.264 streams themselves rarely include any timestamps, but if you have them, they are located in picture timing SEI messages.

Dave1024
4th March 2012, 10:18
I have one more query

Is there any mechanisam to represent IMX/D10 content using H.264?

Thanks
Dave

nm
4th March 2012, 13:28
Is there any mechanisam to represent IMX/D10 content using H.264?

If you mean the MPEG-2 video content in IMX/D10, then sure, by simply decoding it and re-encoding to H.264.

Audio and timecodes are handled outside H.264. Depending on final container format (MP4, TS, ...), audio could be encoded to AAC or AC-3, for example. Which container or stream format do you want to use?

Dave1024
4th March 2012, 17:06
Is there any std spec for IMX/D10 content mapping to h.264/avc bit stream.?

In post #6 , I had a doubt

CPB Arrival Timing and CPB removal timing or DPB output timing is a value which may be in second or millisecond. will i can convert it in to a valid time stamp using frame rate ? Is it valid notation like GOP timing in MPEG-2?

:thanks:
Dave

LoRd_MuldeR
4th March 2012, 17:20
Is there any std spec for IMX/D10 content mapping to h.264/avc bit stream.?

D10/IMX (http://en.wikipedia.org/wiki/SMPTE_D10) is nothing but MPEG-2.

Compared to "unconstrained" MPEG-2, D10/IMX is restricted to 4:2:2 sub-sampling, it uses I-Frame only and the bitrate is either 30, 40 or 50 MBit/s.

Still that's only MPEG-2, which is a completely different video format, compared to H.264/AVC. Consequently a "mapping" from D10/IMX to H.264/AVC can not exist!

As nm already said, you will have to decompress the D10/IMX (MPEG-2) source and then the uncompressed data can be re-encoded to the H.264/AVC format.

H.264/AVC does support 4:2:2 sub-sampling, in "High 4:2:2" profile - if that is your concern. And of course H.264/AVC can be Intra-frame only, just like like D10/IMX.

(Hint: Maybe something like AVC-Intra (http://en.wikipedia.org/wiki/AVC-Intra) is what you want here)

nm
4th March 2012, 18:52
CPB Arrival Timing and CPB removal timing or DPB output timing is a value which may be in second or millisecond. will i can convert it in to a valid time stamp using frame rate ? Is it valid notation like GOP timing in MPEG-2?

Why do you need to care about frame timing at that level? You aren't building a decoder anyway. If you are cutting a stream, use container-level information to cut at keyframe positions.

Dave1024
7th March 2012, 17:36
Hi,

I had some doubts about #10. if i do an IMX/D10 MPEG -2 decode and the result yuv encoded to h.264 with VITC, using which parameter i used to detected the presence of VITC in the stream or frame.

Thanks
Dave

nm
7th March 2012, 18:30
I had some doubts about #10. if i do an IMX/D10 MPEG -2 decode and the result yuv encoded to h.264 with VITC, using which parameter i used to detected the presence of VITC in the stream or frame.

There is no flag or parameter in H.264 for signaling that VITC is hard coded to the frames. However, frame size could be used as a hint by the receiving end.

Generally there shouldn't be need to burn VITC to the frames anymore, I think. Modern broadcast equipment uses other means for transferring timecodes when dealing with H.264 video. Maybe Picture Timing SEI.

You need to find out how exactly the receiving end expects to get the timecode.

Dave1024
8th March 2012, 17:59
Hi
Is there any EBU/SMPTE guideline for in frame VITC in AVC/H.264 ?
#13, can i confirm there is no in frame VITC possible with H.264/AVC ?

Is there any alternate timing information if the optional SEI message is missing ?

Thanks
Dave

nm
8th March 2012, 21:28
Is there any EBU/SMPTE guideline for in frame VITC in AVC/H.264 ?

I don't think so.


#13, can i confirm there is no in frame VITC possible with H.264/AVC ?

It's definitely possible in any video format if you just put it there and the receiver knows to look for such information. But it should really be the last option to choose, and only when you are working around some compatibility issues with old equipment.

Is there any alternate timing information if the optional SEI message is missing ?

Only in the container.