Home || Architecture || Video Search || Visual Search || Scripts || Applications || Important Messages || OGL || Src

template<class ArrayT, class Window, class KerArrayT>
void Impala::Core::Stream::SeqConvKernel ( ArrayT *&  dst,
Window *  src,
KerArrayT *  ker 
) [inline]

Definition at line 19 of file SeqConvKernel.h.

References Impala::Core::Array::Add(), Impala::Core::Array::Element::E1Cast(), ILOG_ERROR, ILOG_VAR, and Impala::Core::Array::MulVal().

Referenced by Impala::Application::Src::WindowSrc::HandleNewFrame().

00020 {
00021     typedef typename ArrayT::ArithType ArithT;
00022     typedef typename KerArrayT::ArithType KerArithT;
00023     typedef typename KerArrayT::StorType KerStorT;
00024 
00025     using Array::MulVal;
00026     using Array::Element::E1Cast;
00027 
00028     ILOG_VAR(Impala.Core.Stream.SeqConvKernel);
00029     if (src->WindowSize() != ker->CW())
00030     {
00031         ILOG_ERROR("window size does not match kernel size");
00032         return;
00033     }
00034 
00035     KerStorT* filter = ker->CPB();
00036     MulVal(dst, src->DataArrayWindow(0), E1Cast(filter[0], ArithT()));
00037     int filterSize = ker->CW();
00038     ArrayT* tmp = 0;
00039     for (int i=1 ; i<filterSize ; i++)
00040     {
00041         MulVal(tmp, src->DataArrayWindow(i), E1Cast(filter[i], ArithT()));
00042         Array::Add(dst, dst, tmp);
00043     }
00044     delete tmp;
00045 }

Here is the call graph for this function:


Generated on Fri Mar 19 11:16:42 2010 for ImpalaSrc by  doxygen 1.5.1