CNNFilter::CNNFilter(int nOrder, int nShift, int nVersion) { if ((nOrder <= 0) || ((nOrder % 16) != 0)) throw(1); m_nOrder = nOrder; m_nShift = nShift; m_nVersion = nVersion; m_bMMXAvailable = GetMMXAvailable(); m_rbInput.Create(NN_WINDOW_ELEMENTS, m_nOrder); m_rbDeltaM.Create(NN_WINDOW_ELEMENTS, m_nOrder); m_paryM = new short [m_nOrder]; #ifdef NN_TEST_MMX srand(GetTickCount()); #endif }
CAPEDecompressCore::CAPEDecompressCore(CIO * pIO, IAPEDecompress * pAPEDecompress) { m_pAPEDecompress = pAPEDecompress; // initialize the bit array m_pUnBitArray = CreateUnBitArray(pAPEDecompress, pAPEDecompress->GetInfo(APE_INFO_FILE_VERSION)); if (m_pAPEDecompress->GetInfo(APE_INFO_FILE_VERSION) >= 3930) throw(0); m_pAntiPredictorX = CreateAntiPredictor(pAPEDecompress->GetInfo(APE_INFO_COMPRESSION_LEVEL), pAPEDecompress->GetInfo(APE_INFO_FILE_VERSION)); m_pAntiPredictorY = CreateAntiPredictor(pAPEDecompress->GetInfo(APE_INFO_COMPRESSION_LEVEL), pAPEDecompress->GetInfo(APE_INFO_FILE_VERSION)); m_pDataX = new int [pAPEDecompress->GetInfo(APE_INFO_BLOCKS_PER_FRAME) + 16]; m_pDataY = new int [pAPEDecompress->GetInfo(APE_INFO_BLOCKS_PER_FRAME) + 16]; m_pTempData = new int [pAPEDecompress->GetInfo(APE_INFO_BLOCKS_PER_FRAME) + 16]; m_nBlocksProcessed = 0; // check to see if MMX is available m_bMMXAvailable = GetMMXAvailable(); }