         time_desc [i] = new KeepTime( _frame[i]->_stream );
         time_vote [i] = new KeepTime( _frame[i]->_stream );
     }
+#endif // not NDEBUG
 
     KeepTime t( _frame[0]->_stream );
     t.start();


    for( int i=0; i<num_layers; i++ ) {
        bool success;
        time_gauss[i]->start();
        _frame[i]->applyGauss( params ); // async
        time_gauss[i]->stop();
        POP_CHK_CALL_IFSYNC;

        time_mag[i]->start();
        _frame[i]->applyMag(   params );  // async
        time_mag[i]->stop();
        POP_CHK_CALL_IFSYNC;

        time_hyst[i]->start();
        _frame[i]->applyHyst(  params );  // async
        time_hyst[i]->stop();
        POP_CHK_CALL_IFSYNC;

        time_thin[i]->start();
        _frame[i]->applyThinning(  params );  // async
        time_thin[i]->stop();
        POP_CHK_CALL_IFSYNC;

        time_desc[i]->start();
        success = _frame[i]->applyDesc(  params );  // async
        time_desc[i]->stop();
        POP_CHK_CALL_IFSYNC;

        if( not success ) continue;

        time_vote[i]->start();
        _frame[i]->applyVote(  params );  // async
        time_vote[i]->stop();
        POP_CHK_CALL_IFSYNC;
        // _frame[i]->applyLink(  params );  // async
    }


    int num_layers = _frame.size();

#ifndef NDEBUG
    KeepTime* time_gauss[num_layers];
    KeepTime* time_mag  [num_layers];
    KeepTime* time_hyst [num_layers];
