0

I would like to obtain the CU/PU level info on the HEVC HM decoder. I also want to get some stats to see how much on average it takes to decode diffferent types of CUs (intra, inter - uni/bi directional).

The exisiting debug in the HM coder is not appropriate, as it only gives timing at the slice level (am I wrong ?)

I tried putting in debug and timing info in TDecCu::xDecodeCU (time of exit - time of entry into the function), and it seems to be okay (even though I wonder if the recursive function calls would mean i'm missing out on some CUs.)

I was wondering if the above is sufficient to get the complete time of decoding a single CU or do i need to profile TDecCu::xDecompressCU as well ?? (as this is where the entropy decoding happens ?)

Below is some code I have modified to get the xdecodecu time (very minimal change to existing HM code):

http://pastie.org/private/tbpnzimz7h87fsiel0jdzq

Also if anyone has done any instrumentation on the HM code to get CU level stats, please leave a comment.

Many thanks !

Rosh
  • 263
  • 1
  • 3
  • 6

1 Answers1

1

You can just insert the code of calculating time at start of decoding Cu and the end of Cu.

xiangjian Wu
  • 116
  • 1
  • 1
  • 8
  • But the decoding of the CU is separated into two recursive functions right ? xDecompressCU + xDecodeCU . Would I need to add these two timings up ? – Rosh Aug 10 '15 at 12:54
  • xDecompressCu is Entropy decoding, At this function, you can get information about MVD. so, you need to look over xDecodeCU. – xiangjian Wu Aug 10 '15 at 13:20
  • the real motion vector is MVD + referenced mv. – xiangjian Wu Aug 10 '15 at 13:21
  • Thank you, so just to clarify - I need to only profile `TDecCu::xDecompressCU` ?? and ignore the xdecodeCU function ? Thanks again. – Rosh Aug 10 '15 at 21:11