Log in

View Full Version : What does the enum CI_IDX means?


xkfz007
24th March 2014, 10:51
In the HM source codes, there is a enum called CI_IDX, which is declared as the following:
/// index for SBAC based RD optimization
enum CI_IDX
{
CI_CURR_BEST = 0, ///< best mode index
CI_NEXT_BEST, ///< next best index
CI_TEMP_BEST, ///< temporal index
CI_CHROMA_INTRA, ///< chroma intra index
CI_QT_TRAFO_TEST,
CI_QT_TRAFO_ROOT,
CI_NUM, ///< total number
};

From the comments, I know meaning of the first four and also I know the exact usage of them. However, the CI_IDX type CI_QT_TRAFO_TEST and CI_QT_TRAFO_ROOT confuse me. Does anyone know them? And what does "TRAFO" stands for?

foxyshadis
26th March 2014, 01:55
TRAFO is just short for Transform. The abbreviation seems useless, yes.

I'm not that familiar with the RDO code, but CI_QT_TRAFO_ROOT seems to be used to hold the known context/state so it can be restored (the beginning context at first, then it's occasionally updated as certain branches are taken), and CI_QT_TRAFO_TEST to temporarily hold state ahead of a couple of tests related to coding the TU at max size. (32x32 generally.)

Procrastinating
26th March 2014, 08:16
Wouldn't Transform usually be shortened to TRNSFRM/TRNSFM/TSFRM anyway? Kind of useless and entirely arbitrary.

filler56789
31st March 2014, 23:38
Possibly the author is/was an old-fashioned electrician :)

http://en.wikipedia.org/wiki/Transformer

http://www.traveloutthere.com/bratislava/trafo