void DecodeFrame(SBitObj* pBitObj, Ipp16s* pRandVec, Ipp16s* pMlt, Ipp16s* pScale, Ipp16s* pOldScale, Ipp16s* pOldMlt, Ipp16s errFlag){ Ipp16s absRegPowerIndices[REG_NUM]; Ipp16s powerCategories[REG_NUM]; Ipp16s categoryBalances[CAT_CONTROL_MAX-1]; Ipp16u ctgCtrl; Ipp16s stdDeviations[REG_NUM]; if (errFlag == 0) { /* convert the bits to absolute region power index and region standard deviation */ RecoveStdDeviations(pBitObj, stdDeviations, absRegPowerIndices, pScale); /* fill the categorization control with CAT_CONTROL_BITS */ ctgCtrl = GetNextBits(pBitObj, CAT_CONTROL_BITS); /* obtain decoder power categories and category balances */ CategorizeFrame(pBitObj->curBitsNumber, absRegPowerIndices, powerCategories, categoryBalances); /* adjustments to the power categories and category balances */ ArrangePowerCategories(ctgCtrl, powerCategories, categoryBalances); /* decode mlt */ DecodeBitsToMlt(pBitObj, pRandVec, stdDeviations, powerCategories, pMlt); /* test for frame errors */ TestFrame(pBitObj, errFlag, ctgCtrl, absRegPowerIndices); } /* perform error handling */ ProcessErrors(&errFlag, pMlt, pOldMlt, pScale, pOldScale); }
static void CheckCpp() { TestPoint(); TestView(); TestFrame(); TestPyramid(); }
bool IMBuffer::Received() { bool b=(rSize>0); if (b) { b= TestFrame(); } rSize=0; if (!b){ DBGINFO("["); DBGINFO(state); DBGINFO(":EE:"); DBGINFO(millis()); DBGINFO("] "); } return b; }