2013年10月1日 星期二

H.264 sps/pps parser

I write a simple javascript to parse sps/pps.

If you are interested the implementation, you can find the source code in my github.

Usage
  1. Download the html from here 
  2. Use browser to open the html
  3. Input sps and pps
  4. Press go and then the result will show in the same pages

Below is an example of output:


SPS/PPS Input Data

SPS Input: Z0LgFNoFglE=
PPS Input: aM4wpIA=

SPS BASE64 decode : 0x67 0x42 0xe0 0x14 0xda 0x5 0x82 0x51
PPS BASE64 decode : 0x68 0xce 0x30 0xa4 0x80

SPS

forbidden_zero_bit=0
nal_ref_idc=3
nal_unit_type=7
profile_idc=66
constrained_set0_flag=1
constrained_set1_flag=1
constrained_set2_flag=1
constrained_set3_flag=0
constrained_set4_flag=0
reserved_zero_3bits=0
level_idc=20
seq_parameter_set_id = 0
log2_max_frame_num_minus4=0
pic_order_cnt_type=2
num_ref_frames =1
gaps_in_frame_num_value_allowed_flag =0
pic_width_in_mbs_minus1 =21
pic_height_in_map_units_minus1 =17 (resolution=352x288)
frame_mbs_only_flag =1
direct_8x8_interence_flag =0
frame_cropping_flag =0
vui_parameters_present_flag =0


PPS

forbidden_zero_bit=0
nal_ref_idc=3
nal_unit_type=8
pic_parameter_set_id=0
seq_parameter_set_id=0
entropy_coding_mode_flag=0
pic_order_present_flag=0
num_slice_groups_minus1=0
num_ref_idx_l0_active_minus1=0
num_ref_idx_l1_active_minus1=0
weighted_pref_flag=0
weighted_bipred_idc=0
pic_init_qp_minus26=0
pic_init_qs_minus26=0
chroma_qp_index_offset=10
deblocking_filter_control_present_flag=1
constrained_intra_pred_flag=0
redundant_pic_cnt_present_flag=0

Reference

  1. http://en.wikipedia.org/wiki/Exponential-Golomb_coding
  2. http://download.csdn.net/tag/T-REC-T.38-200003-S!Cor1!PDF-E.pdf