Video usability information(VUI)
VUI parameters are not required for constructing the luma or chroma samples by the decoding process.
Conforming decoders are not required to process this information for output order conformance to this Recommendation | International Standard.
Some VUI parameters are required to check bitstream conformance and for output timing decoder conformance.
-
实例
time_scale & num_units_in_tick
timing_info_present_flag
timing_info_present_flag equal to 1 specifies that num_units_in_tick, time_scale and fixed_frame_rate_flag are present in the bitstream. timing_info_present_flag equal to 0 specifies that num_units_in_tick, time_scale and fixed_frame_rate_flag are not present in the bitstream.
- timing_info_present_flag为1
num_units_in_tick, time_scale and fixed_frame_rate_flag存在. - timing_info_present_flag为0
num_units_in_tick, time_scale and fixed_frame_rate_flag不存在.
num_units_in_tick
num_units_in_tick is the number of time units of a clock operating at the frequency time_scale Hz that corresponds to
one increment (called a clock tick) of a clock tick counter. num_units_in_tick shall be greater than 0.
A clock tick is the minimum interval of time that can be represented in the coded data.
For example, when the clock frequency of a video signal is 30000 ÷ 1001 Hz, time_scale may be 30 000 and num_units_in_tick may be 1001.
一个增量(个人理解是一帧或一场)所用的time units.
time_scale
time_scale is the number of time units that pass in one second.
For example, a time coordinate system that measures time using a 27 MHz clock has a time_scale of 27 000 000.
time_scale shall be greater than 0.
即将1秒分成多少份.
fixed_frame_rate_flag
fixed_frame_rate_flag equal to 1 indicates that the temporal distance between the HRD output times of any two
consecutive pictures in output order is constrained as follows. fixed_frame_rate_flag equal to 0 indicates that no such
constraints apply to the temporal distance between the HRD output times of any two consecutive pictures in output order.
MaxFPS
MaxFPS = Ceil( time_scale ÷ num_units_in_tick )
nuit_field_based_flag
Used in calculating clockTimestamp.
- counting_type is equal to 2
e.g., 12.5 frames per second with time_scale equal to 25 and num_units_in_tick equal to 2 and nuit_field_based_flag equal to 0
- counting_type is equal to 3
e.g., 12.5 frames per second with time_scale equal to 25 and num_units_in_tick equal to 2 and nuit_field_based_flag equal to 0
framerate = time_scale / (num_units_in_tick);
- counting_type is equal to 4
e.g., 30000÷1001 frames per second with time_scale equal to 60000 and num_units_in_tick equal to 1 001 and nuit_field_based_flag equal to 1
framerate = time_scale / (num_units_in_tick * 2);
References:
ISO_IEC_14496-10_2004_Advanced Video Coding.pdf
http://blog.csdn.net/supermanwg/article/details/8295844
http://ju.outofmemory.cn/entry/208773