Arcen's Blog

アクセスカウンタ

zoom RSS H.264 7.3.2.1 seq_parameter_set_rbsp

<<   作成日時 : 2011/09/25 10:59   >>

ブログ気持玉 0 / トラックバック 0 / コメント 0

class seq_parameter_set_rbsp {
class seq_parameter_set_data {
uint8_t profile_idc;//プロファイル
uint8_t constraint_set_flag;//上位ビットから constraint_set0_flagで、下位2bitがreserved 0
uint8_t level_idc;//レベル
ue seq_parameter_set_id;
switch (profile_idc) { case 100: case 110: case 122: case 244: case 44: case 83: case 86: case 118: case 128:
ue chroma_format_idc;
if (chroma_format_idc==3) {
uint1_t separate_colour_plane_flag;
}
ue bit_depth_luma_minus8, bit_depth_chroma_minus8;
uint1_t qpprime_y_zero_transform_bypass_flag, seq_scaling_matrix_present_flag;
if (seq_scaling_matrix_present_flag) {
loop (i : chroma_format_idc == 3 ? 8 : 12 ) {
uint1_t seq_scaling_list_present_flag[i];
if ( seq_scaling_list_present_flag[i] ) {
if ( i < 6 ) scaling_list( ScalingList4x4[ i ], 16,UseDefaultScalingMatrix4x4Flag[ i ]);
else scaling_list( ScalingList8x8[ i − 6 ], 64, UseDefaultScalingMatrix8x8Flag[ i − 6 ] );
}
}
}
};
ue log2_max_frame_num_minus4, pic_order_cnt_type;
switch (pic_order_cnt_type) {
case 0:
ue log2_max_pic_order_cnt_lsb_minus4;
break;
case 1:
uint1_t delta_pic_order_always_zero_flag;
se offset_for_non_ref_pic, offset_for_top_to_bottom_field;
ue num_ref_frames_in_pic_order_cnt_cycle;
se offset_for_ref_frame[num_ref_frames_in_pic_order_cnt_cycle];
break;
};
ue max_num_ref_frames;//最大参照フレーム数
uint1_t gaps_in_frame_num_value_allowed_flag;
ue pic_width_in_mbs_minus1, pic_height_in_map_units_minus1;//画像サイズ
uint1_t frame_mbs_only_flag;//インタレース
if (frame_mbs_only_flag) uint1_t mb_adaptive_frame_field_flag;//フィールドのエンコード手法
uint1_t direct_8x8_inference_flag, frame_cropping_flag;
if (frame_cropping_flag) {
ue frame_crop_left_offset, frame_crop_right_offset, frame_crop_top_offset, frame_crop_bottom_offset;
}
uint1_t vui_parameters_present_flag;
if (vui_parameters_present_flag) {
class vui_parameters;
}
class rbsp_trailing_bits;
};
scaling_list( scalingList, sizeOfScalingList, useDefaultScalingMatrixFlag ) {
lastScale = nextScale = 8;
loop ( j : sizeOfScalingList ) {
if( nextScale != 0 ) {
se delta_scale;
nextScale = ( lastScale + delta_scale + 256 ) % 256;
useDefaultScalingMatrixFlag = ( j == 0 && nextScale == 0 );
}
lastScale = scalingList[j] = ( nextScale == 0 ) ? lastScale : nextScale;
}
}
class vui_parameters {
uint1_t aspect_ratio_info_present_flag;
if( aspect_ratio_info_present_flag ) {
uint8_t aspect_ratio_idc;
if( aspect_ratio_idc = = Extended_SAR ) {
uint16_t sar_width, sar_height;
}
}
uint1_t overscan_info_present_flag;
if( overscan_info_present_flag )
uint1_t overscan_appropriate_flag;
uint1_t video_signal_type_present_flag
if( video_signal_type_present_flag ) {
uint3_t video_format;
uint1_t video_full_range_flag, colour_description_present_flag;
if( colour_description_present_flag ) {
uint8_t colour_primaries, transfer_characteristics, matrix_coefficients;
}
}
uint1_t chroma_loc_info_present_flag;
if( chroma_loc_info_present_flag ) {
ue chroma_sample_loc_type_top_field, chroma_sample_loc_type_bottom_field;
}
uint1_t timing_info_present_flag;
if( timing_info_present_flag ) {
uint32_t num_units_in_tick, time_scale;
uint1_t fixed_frame_rate_flag;
}
uint1_t nal_hrd_parameters_present_flag;
if( nal_hrd_parameters_present_flag ) class hrd_parameters;
uint1_t vcl_hrd_parameters_present_flag;
if( vcl_hrd_parameters_present_flag ) class hrd_parameters;
if( nal_hrd_parameters_present_flag | | vcl_hrd_parameters_present_flag ) uint1_t low_delay_hrd_flag;
uint1_t pic_struct_present_flag, bitstream_restriction_flag;
if( bitstream_restriction_flag ) {
uint1_t motion_vectors_over_pic_boundaries_flag;
ue max_bytes_per_pic_denom, max_bits_per_mb_denom, log2_max_mv_length_horizontal, log2_max_mv_length_vertical, num_reorder_frames, max_dec_frame_buffering;
}
};
class hrd_parameters {
ue cpb_cnt_minus1;
uint4_t bit_rate_scale, cpb_size_scale;
for( SchedSelIdx : cpb_cnt_minus1 + 1 ) {
ue bit_rate_value_minus1[ SchedSelIdx ], cpb_size_value_minus1[ SchedSelIdx ];
uint1_t cbr_flag[ SchedSelIdx ];
}
uint5_t initial_cpb_removal_delay_length_minus1, cpb_removal_delay_length_minus1, dpb_output_delay_length_minus1, time_offset_length;
};

SPSの中身。
とりあえず、プロファイルとレベル、映像サイズ、最大参照フレームあたりが重要。

テーマ

注目テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文
H.264 7.3.2.1 seq_parameter_set_rbsp Arcen's Blog/BIGLOBEウェブリブログ
文字サイズ:       閉じる