00001 /*!@file Neuro/VisualCortexBeo.H a VisualCortex with SingleChannelBeo channels */ 00002 00003 // //////////////////////////////////////////////////////////////////// // 00004 // The iLab Neuromorphic Vision C++ Toolkit - Copyright (C) 2000-2003 // 00005 // by the University of Southern California (USC) and the iLab at USC. // 00006 // See http://iLab.usc.edu for information about this project. // 00007 // //////////////////////////////////////////////////////////////////// // 00008 // Major portions of the iLab Neuromorphic Vision Toolkit are protected // 00009 // under the U.S. patent ``Computation of Intrinsic Perceptual Saliency // 00010 // in Visual Environments, and Applications'' by Christof Koch and // 00011 // Laurent Itti, California Institute of Technology, 2001 (patent // 00012 // pending; application number 09/912,225 filed July 23, 2001; see // 00013 // http://pair.uspto.gov/cgi-bin/final/home.pl for current status). // 00014 // //////////////////////////////////////////////////////////////////// // 00015 // This file is part of the iLab Neuromorphic Vision C++ Toolkit. // 00016 // // 00017 // The iLab Neuromorphic Vision C++ Toolkit is free software; you can // 00018 // redistribute it and/or modify it under the terms of the GNU General // 00019 // Public License as published by the Free Software Foundation; either // 00020 // version 2 of the License, or (at your option) any later version. // 00021 // // 00022 // The iLab Neuromorphic Vision C++ Toolkit is distributed in the hope // 00023 // that it will be useful, but WITHOUT ANY WARRANTY; without even the // 00024 // implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR // 00025 // PURPOSE. See the GNU General Public License for more details. // 00026 // // 00027 // You should have received a copy of the GNU General Public License // 00028 // along with the iLab Neuromorphic Vision C++ Toolkit; if not, write // 00029 // to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, // 00030 // Boston, MA 02111-1307 USA. // 00031 // //////////////////////////////////////////////////////////////////// // 00032 // 00033 // Primary maintainer for this file: Laurent Itti <itti@usc.edu> 00034 // $HeadURL: svn://isvn.usc.edu/software/invt/trunk/saliency/src/Neuro/VisualCortexBeo.H $ 00035 // $Id: VisualCortexBeo.H 10845 2009-02-13 08:49:12Z itti $ 00036 // 00037 00038 #ifndef VISUALCORTEXBEO_H_DEFINED 00039 #define VISUALCORTEXBEO_H_DEFINED 00040 00041 class Beowulf; 00042 class RawVisualCortex; 00043 namespace nub { template <class T> class ref; } 00044 00045 /// Setup a VisualCortex for use with SingleChannelBeo channels 00046 /** This setup does two things. First, it ensures that all 00047 SingleChannel objects have their InputHandler set to 00048 SingleChannelBeo. Second, it directs the VisualCortex to sort its 00049 subchannels according to their number of submaps, so that the most 00050 CPU-intensive channels (e.g. motion, orientation) will be 00051 processed first. See SingleChannelBeo.H for info. 00052 00053 The Beowulf object passed here must be configured as master. 00054 00055 You may still add whatever channels you want to this VisualCortex; 00056 just if you want them to be Beo too, make sure you first get our 00057 Beowulf using getBeowulf(), the next available node using 00058 getNextAvailableNode() and then initilize your BeoChannels using 00059 this Beowulf and node number. 00060 00061 If you are going to use a beowulf-enabled VisualCortex, you should 00062 be running a process that implements a SingleChannelBeoServer on 00063 each slave node of your Beowulf. Such process is in 00064 beochannel-server.C for example. First start all your servers on 00065 all your server nodes, then, on the master, start your program 00066 that uses the VisualCortexBeo. It will configure the Beowulf, 00067 spawn the channels, and rip through your frames! 00068 */ 00069 void setupVisualCortexBeo(RawVisualCortex& vcx, nub::ref<Beowulf> beo); 00070 00071 #endif 00072 00073 // ###################################################################### 00074 /* So things look consistent in everyone's emacs... */ 00075 /* Local Variables: */ 00076 /* indent-tabs-mode: nil */ 00077 /* End: */