Opened 9 years ago

Closed 9 years ago

#786 closed defect (fixed)

derivation of default 4x4 scaling_lists in SPS undefined when transform skipping is enabled

Reported by: zhou Owned by: bbross
Priority: minor Milestone:
Component: Text Version: D8 (K0030) v3
Keywords: Cc: bbross, wjhan, jct-vc@…

Description

In the text, section 7.4.2.4 says:
If transform_skip_enabled_flag is equal to 1 and SizeID is equal to 0, ScalingList[ SizeID ][ MatrixID ][ i ] is set equal to 16 for i=0..15
Otherwise, ScalingList[ SizeID ][ MatrixID ] is specified in Table 7 4 and Table 7.5.

scaling_list_data() is called from SPS as well as PPS. Default 4x4 scaling lists are undefined in SPS because transform_skip_enabled_flag is unkown in SPS. Therefore, when scaling lists are not carried in PPS but transform skipping is enabled, the spec is broken as 4x4 default scaling lists inherited from SPS are undefined.

HM8.0 encoder/decoder mismatches for the following setting when transform skipping is enabled

SPS:

  • scaling_list_enable_flag = 1
  • sps_scaling_list_data_presetnt_flag = 1
  • In scaling_list_data(), intra luma 4x4 scaling list is signalled as a default list (scaling_list_pred_mode_flag = 0 and scaling_list_pred_matrix_id_delta = 0).

PPS :

  • transform_skip_enabled_flag = 1
  • pps_scaling_list_data_present_flag = 0

the encoder uses the flat default list, while the decoder uses the non-flat default, so we have encoder-decoder mismatch here.

Potential solution:

1) to insert another flag (say sps_flat_scaling_list_enabled_flag) in SPS to specifiy whether flat 4x4 default scaling lists are carried in SPS when scaling_list_data() is called from SPS.

2) semantics of sps_flat_scaling_list_enabled_flag

sps_flat_scaling_list_enabled_flag equal to 1 specifies that ScalingList[0][ MatrixID ][ i ] is set equal to 16 for MatrixID = 0..5 and i = 0..15 when both scaling_list_pred_mode_flag and scaling_list_pred_matrix_id_delta are set equal to 0. When not present, the value of sps_flat_scaling_list_enabled_flag is inferred to be equal to 0.

3) modify section 7.4.5 as

If sps_flat_scaling_list_enabled_flag is equal to 1, or transform_skip_enabled_flag is equal to 1 and SizeID is equal to 0, ScalingList[ SizeID ][ MatrixID ][ i ] is set equal to 16 for i=0..15

– Otherwise, ScalingList[ SizeID ][ MatrixID ] is specified in Table 7 4 and Table 7.5

Suggest to have more discussion on this topic at the upcoming HEVC meeting.

Change History (2)

comment:1 Changed 9 years ago by DefaultCC Plugin

  • Cc bbross wjhan jct-vc@… added

comment:2 Changed 9 years ago by bbross

  • Resolution set to fixed
  • Status changed from new to closed

This will be fixed in JCTVC-K1003_v3 by defining the 4x4 default scaling matrix as flat.(JCTVC-K0203).

Note: See TracTickets for help on using tickets.

This list contains all users that will be notified about changes made to this ticket.

These roles will be notified: Reporter, Owner, Subscriber, Participant

  • Benjamin Bross(Owner, Subscriber, Participant)
  • jct-vc@…(Subscriber)
  • karl.sharman@…(Always)
  • Karsten Suehring(Always)
  • M. Zhou(Reporter)
  • Woo-Jin Han(Subscriber)