Opened 9 years ago Closed 9 years ago #107 closed clean up required (fixed)Missing derivation on OlsIdxToLsIdx[]
Description
According the verion 2 spec, the OlsIdxToLsIdx[] is derived as
However, in the HTM, the derivation is missing when layer_set_idx_for_ols_minus1 is not present. The inference of layer_set_idx_for_ols_minus1 is also missing ("When not present, the value of layer_set_idx_for_ols_minus1[ i ] is inferred to be equal to 0"). In the current HTM, the OlsIdxToLsIdx[] seems not affect decoding/encoding process but it should be fixed to avoid future confusion.
A patch is attached. Attachments (1)Change history (6)Changed 9 years ago by Tomohiro Ikaicomment:1 Changed 9 years ago by techcomment:2 Changed 9 years ago by tech
comment:3 Changed 9 years ago by Tomohiro Ikai
Ok, the function olsIdxToLsIdx() and the initialization handle the cases (thanks!). In case of clean-up, SHM's fix might be good.
The following is just my note.
LS[0] = {0}
The case of OLS[2] is forbidden in Multiview Main profile (*1) but it is OK in 3D Main profile. comment:4 Changed 9 years ago by tech
When defaultOutputLayerIdc is not equal to 2 and vps_num_layer_sets_minus1 greater than or equal to 2, the values of the output_layer_flag syntax elements are actually neither present nor inferred for OLS[ 2 ]. This makes the profile constraint somehow useless.
However, the variable OutputLayerFlag is derived. Maybe the spec should use this variable to specify the constraint instead of using the syntax element output_layer_flag. comment:5 Changed 9 years ago by tech
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
|
There actually seems to be no problem.
OlsIdxToLsIdx is provided by the function
in TComSlice.h, which can also be invoked for the index 0 and matches the spec.
Moreover, layer_set_idx_for_ols_minus1[ i ] is set equal to 0 in the TComVPS constructor, and thus by default equal to 0 when not present.
However, I found also an earlier statement in the constructor setting m_layerSetIdxForOlsMinus1 equal to -1. Nevertheless, this has no effect and will be removed as clean up.
Please, let me know if you agree.