-
Notifications
You must be signed in to change notification settings - Fork 9
uupaa edited this page Sep 10, 2018
·
1 revision
TODO: add description
- u(n) で n が数値の場合は n bit 読み進め、結果をunsignedで返す事を意味しています。 u(1) は 1 bit を読み進めます。
- u(n) で n が v の場合は、変数名毎に特殊なルールで読み込むビット数を决定する事を意味しています。
-
slice_group_id[i] = u(v)
- The length of the
slice_group_id[ i ]
syntax element isCeil( Log2( num_slice_groups_minus1 + 1 ) )
bits. -
slice_group_id[i] = u(v)
はMath.ceil( Math.log2( num_slice_groups_minus1 + 1 ) )
から求める事ができます
- The length of the
-
Ceil( Log2( num_slice_groups_minus1 + 1 ) )
pic_parameter_set_rbsp() {
pic_parameter_set_id ue(v)
seq_parameter_set_id ue(v)
entropy_coding_mode_flag u(1)
bottom_field_pic_order_in_frame_present_flag u(1)
num_slice_groups_minus1 ue(v)
if (num_slice_groups_minus1 > 0) {
slice_group_map_type ue(v)
if (slice_group_map_type == 0) {
for (iGroup = 0; iGroup <= num_slice_groups_minus1; iGroup++) {
run_length_minus1[ iGroup ] ue(v)
}
} else if (slice_group_map_type == 2) {
for (iGroup = 0; iGroup < num_slice_groups_minus1; iGroup++) {
top_left[ iGroup ] ue(v)
bottom_right[ iGroup ] ue(v)
}
} else if (slice_group_map_type == 3 ||
slice_group_map_type == 4 ||
slice_group_map_type == 5) {
slice_group_change_direction_flag u(1)
slice_group_change_rate_minus1 ue(v)
} else if (slice_group_map_type == 6) {
pic_size_in_map_units_minus1 ue(v)
for (i = 0; i <= pic_size_in_map_units_minus1; i++) {
slice_group_id[ i ] u(v)
}
}
}
num_ref_idx_l0_default_active_minus1 ue(v)
num_ref_idx_l1_default_active_minus1 ue(v)
weighted_pred_flag u(1)
weighted_bipred_idc u(2)
pic_init_qp_minus26 se(v) // relative to 26
pic_init_qs_minus26 se(v) // relative to 26
chroma_qp_index_offset se(v)
deblocking_filter_control_present_flag u(1)
constrained_intra_pred_flag u(1)
redundant_pic_cnt_present_flag u(1)
if ( more_rbsp_data() ) {
transform_8x8_mode_flag u(1)
pic_scaling_matrix_present_flag u(1)
if (pic_scaling_matrix_present_flag) {
for (i = 0; i < 6 + ( (chroma_format_idc != 3 ) ? 2 : 6 ) * transform_8x8_mode_flag; i++) {
pic_scaling_list_present_flag[ i ] u(1)
if (pic_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 ] )
}
}
}
}
second_chroma_qp_index_offset se(v)
}
rbsp_trailing_bits()
}