kvazaar icon indicating copy to clipboard operation
kvazaar copied to clipboard

Is there any idea to ahieve the skip node in the CU level?

Open LockonLv opened this issue 3 years ago • 3 comments

I am trying to achieve the "Early_CU" mode, which is the skip mode in the CU level to terminate the divide of CU in advance. In this process, I am trying to Modify the code in the function, which named "search_cu", in search.c. But I get the information as "Assertion failed: cur_cu->type != CU_NOTSET" , and I have no idea about how to achieve my aim at present. Any idea could you share me?

LockonLv avatar Nov 23 '21 12:11 LockonLv

Hi,

There are already a few algorithms / early termination conditions like that for search in Kvazaar. The option --cu-split-termination=zero (which is currently enabled by default) stops the recursive splitting of CUs when there is no residual to be coded for a CU when using the best mode found by the search. Also, the --early-skip option bypasses all the rest of the search process at CU level after the merge candidate search if the best estimated merge candidate has zero residual, i.e., it is coded as a skip CU.

Arizer avatar Nov 23 '21 12:11 Arizer

Hi,

There are already a few algorithms / early termination conditions like that for search in Kvazaar. The option --cu-split-termination=zero (which is currently enabled by default) stops the recursive splitting of CUs when there is no residual to be coded for a CU when using the best mode found by the search. Also, the --early-skip option bypasses all the rest of the search process at CU level after the merge candidate search if the best estimated merge candidate has zero residual, i.e., it is coded as a skip CU.

Thank you for your enthusiastic answer. I have noticed the option that you have metioned. But it's working for search the best mode, I want to figure out if there is such a way for me to specify to stop splitting at a certain depth.

LockonLv avatar Nov 23 '21 16:11 LockonLv

The --cu-split-termination=off option stops the splitting if a condition is met (cbf = 0). Maybe I did not understand your question? If you just want to search and code, let's say, 64x64 to 16x16 sized CUs, then you should limit --pu-depth-intra and --pu-depth-inter ranges. (However, smaller CUs can still be coded on the borders if the video resolution requires it.)

Arizer avatar Nov 23 '21 17:11 Arizer