Search code examples
videovideo-processinghevcvideo-compression

Detection of non present flags in HEVC


I'm currently investigating the High Efficiency Video Coding (HEVC) standard H.265. For several flags, it is mentioned that they can be missing, e.g.,

When split_cu_flag[ x0 ][ y0 ] is not present, the following applies:

see Section 7.4.9.4 in H.265. I'm wondering how it is determined that a flag is missing. Can someone please help me?


Solution

  • Absence of a flags could be related to different aspects, in general.

    But in your particular example of partitioning, it is related either to image border or the buttom of splitting tree. Either way, you have reached a point where there is only one choice for splitting, hence, it is not worth signaling such choice.

    Let's review the two cases provided in the spec:

    1. If log2CbSize is greater than MinCbLog2SizeY, the value of split_cu_flag[ x0 ][ y0 ] is inferred to be equal to 1.

    This means that you have reached image border, but your current Cb size is greater what is left in pixels. And since your current Cb size is greater than minimum Cb size, you implicitely (=without parsing a flag) know that you should split i.e. flag=1.

    1. Otherwise (log2CbSize is equal to MinCbLog2SizeY), the value of split_cu_flag[ x0 ][ y0 ] is inferred to be equal to 0.

    This means that in CTU splitting, you have reached the smallest Cb size of HEVC and you are not allowed to split further. So, you implicitely determine that no-split i.e. flag=0.