id,summary,reporter,owner,description,type,status,priority,milestone,component,version,resolution,keywords,cc 485,Editorial: Splitting slice_alf_chroma_idc into two flags,ksuehring,,"For improved clarity I would suggest to split '''slice_alf_chroma_idc''' into two flags: '''slice_alf_cb_flag''' and '''slice_alf_cr_flag''' The low bit of the idc already indicates ALF usage in Cr, while the high bit indicates usage in Cb: '''slice_alf_chroma_idc''' equal to 0 specifies that the adaptive loop filter is not applied to Cb and Cr colour components. slice_alf_chroma_idc equal to 1 indicates that the adaptive loop filter is applied to the Cb colour component. slice_alf_chroma_idc equal to 2 indicates that the adaptive loop filter is applied to the Cr colour component. slice_alf_chroma_idc equal to 3 indicates that the adaptive loop filter is applied to Cb and Cr colour components. When slice_alf_chroma_idc is not present, it is inferred to be equal to 0. This be split without technical change into: '''slice_alf_cb_flag''' equal to 0 specifies that the adaptive loop filter is not applied to Cb colour components. slice_alf_cb_flag equal to 1 indicates that the adaptive loop filter is applied to the Cb colour component. When slice_alf_cb_flag is not present, it is inferred to be equal to 0. '''slice_alf_cr_flag''' equal to 0 specifies that the adaptive loop filter is not applied to Cr colour components. slice_alf_cr_flag equal to 1 indicates that the adaptive loop filter is applied to the Cr colour component. When slice_alf_cr_flag is not present, it is inferred to be equal to 0. The depending syntax conditions: {{{ if( slice_alf_chroma_idc = = 1 | | slice_alf_chroma_idc = = 3 ) { alf_ctb_flag[ 1 ][ xCtb >> CtbLog2SizeY ][ yCtb >> CtbLog2SizeY ] if( alf_ctb_flag[ 1 ][ xCtb >> CtbLog2SizeY ][ yCtb >> CtbLog2SizeY ] && aps_alf_chroma_num_alt_filters_minus1 > 0 ) alf_ctb_filter_alt_idx[ 0 ][ xCtb >> CtbLog2SizeY ][ yCtb >> CtbLog2SizeY ] } if( slice_alf_chroma_idc = = 2 | | slice_alf_chroma_idc = = 3 ) { alf_ctb_flag[ 2 ][ xCtb >> CtbLog2SizeY ][ yCtb >> CtbLog2SizeY ] if( alf_ctb_flag[ 2 ][ xCtb >> CtbLog2SizeY ][ yCtb >> CtbLog2SizeY ] && aps_alf_chroma_num_alt_filters_minus1 > 0 ) alf_ctb_filter_alt_idx[ 1 ][ xCtb >> CtbLog2SizeY ][ yCtb >> CtbLog2SizeY ] } }}} can be simplified to {{{ if( slice_alf_cb_flag ) { alf_ctb_flag[ 1 ][ xCtb >> CtbLog2SizeY ][ yCtb >> CtbLog2SizeY ] if( alf_ctb_flag[ 1 ][ xCtb >> CtbLog2SizeY ][ yCtb >> CtbLog2SizeY ] && aps_alf_chroma_num_alt_filters_minus1 > 0 ) alf_ctb_filter_alt_idx[ 0 ][ xCtb >> CtbLog2SizeY ][ yCtb >> CtbLog2SizeY ] } if( slice_alf_cr_flag ) { alf_ctb_flag[ 2 ][ xCtb >> CtbLog2SizeY ][ yCtb >> CtbLog2SizeY ] if( alf_ctb_flag[ 2 ][ xCtb >> CtbLog2SizeY ][ yCtb >> CtbLog2SizeY ] && aps_alf_chroma_num_alt_filters_minus1 > 0 ) alf_ctb_filter_alt_idx[ 1 ][ xCtb >> CtbLog2SizeY ][ yCtb >> CtbLog2SizeY ] } }}} ",defect,closed,minor,,spec,VVC D7 vE,wontfix,"ALF, HLS",ksuehring bbross XiangLi fbossen jvet@…