Tekkotsu Homepage | Demos | Overview | Downloads | Dev. Resources | Reference | Credits |
JPEGGenerator Class ReferenceGenerates FilterBankEvents containing JPEG compressed images. More...
Inheritance diagram for JPEGGenerator:
Detailed DescriptionGenerates FilterBankEvents containing JPEG compressed images. There's only one channel per resolution layer, which holds the compressed data. This is mostly intended for being sent over wireless, but if you know how JPEG works, you may be able to interpret the compressed data directly and glean useful information from it. After all, compression is all about throwing away unimportant details and storing the salient information. The generated events use 0 for their event source IDs. The row skip and row stride are 0. (they don't really apply here) This can either compress a greyscale image or an interleaved YUV image. If the source generator's type is not InterleavedYUVGenerator, it will assume greyscale. Call setSource() to override this. The InterleavedYUVGenerator is separated from this because it wouldn't really make things much faster to combine the algorithms, and others might find the interleaved format handy for passing to other libraries which expect that format, such as what happened with libjpeg. This class shares a lot of non-JPEG specific code with PNGGenerator, so you may want to replicate any changes made in that class as well.
Definition at line 38 of file JPEGGenerator.h.
Member Enumeration Documentationdefines how to interpret the source images (see srcMode and curMode)
Definition at line 43 of file JPEGGenerator.h. Constructor & Destructor Documentation
constructor Definition at line 12 of file JPEGGenerator.cc.
constructor Definition at line 33 of file JPEGGenerator.cc.
destructor Definition at line 56 of file JPEGGenerator.cc.
don't call Member Function Documentation
should calculate new image data, called by getImage() only when imageValids indicates the image being requested is dirty (and only after getImage() has already called createImageCache()) This is where you'll want to put your user-specific code for calculating the image data Implements FilterBankGenerator. Definition at line 195 of file JPEGGenerator.cc.
create new image data storage area for the cache - this called by getImage() only when the corresponding entry in images is NULL You should return the pointer you want stored in images to be returned by any calls to getFirstRow. Interpretation of the data it points to is dependant on the the generator which creates it Implements FilterBankGenerator. Definition at line 190 of file JPEGGenerator.cc. Referenced by loadBuffer().
deletes the arrays Reimplemented from FilterBankGenerator. Definition at line 226 of file JPEGGenerator.cc. Referenced by ~JPEGGenerator().
should receive FilterBankEvents from a RawCameraGenerator (or a subclass thereof) The const casts in this function are regretable but necessary since the corresponding OPEN-R functions require mutable arguments, even though they shouldn't be modifying the data Reimplemented from FilterBankGenerator. Definition at line 68 of file JPEGGenerator.cc.
if we don't already know bytesUsed, let's assume the size will be smaller than the original uncompressed. If we fail this assumption, probably better to fail anyway. Reimplemented from FilterBankGenerator. Definition at line 86 of file JPEGGenerator.cc.
Gives a short description of what this class of behaviors does... you should override this (but don't have to). If you do override this, also consider overriding getDescription() to return it Reimplemented from BehaviorBase. Definition at line 64 of file JPEGGenerator.h.
returns curMode Definition at line 62 of file JPEGGenerator.h. Referenced by calcImage(), getBinSize(), loadBuffer(), and saveBuffer().
returns the number of bytes used for the image returned by getImage() - will return 0 if the image hasn't been calculated yet (so call it after getImage()) Reimplemented from FilterBankGenerator. Definition at line 88 of file JPEGGenerator.h. Referenced by CameraBehavior::doEvent(), and LGmixin::uploadCameraImage().
returns quality Definition at line 78 of file JPEGGenerator.h. Referenced by CameraBehavior::doEvent().
The loadBuffer() functions of the included subclasses aren't tested, so don't assume they'll work without a little debugging... Reimplemented from FilterBankGenerator. Definition at line 106 of file JPEGGenerator.cc.
don't call
you probably don't want to be calling this to access the JPEG -- use getImage() instead (saveBuffer will prepend some header information before the actual image data) Reimplemented from FilterBankGenerator. Definition at line 138 of file JPEGGenerator.cc.
resizes the filter bank information storage area, you should override this to do your setup and call it from your constructor In general, it isn't expected that FilterBankGenerator's should necessarily be dynamically resizeable (although it would be nice), which is why this isn't public. If yours is, just add some pubic accessor functions which call this. In general, the included subclasses should be able to handle being resized, but there's no reason to do so since the system won't be changing its available resolutions at run time. The default implementation is a no-op if(numLayers==nLayers && numChannels==nChannels) Reimplemented from FilterBankGenerator. Definition at line 174 of file JPEGGenerator.cc. Referenced by JPEGGenerator().
sets quality; this will invalidate the cache if q does not equal current quality Definition at line 80 of file JPEGGenerator.h. Referenced by CameraBehavior::doEvent().
set srcMode and curMode as well if mode==SRC_AUTO Definition at line 58 of file JPEGGenerator.h. Member Data Documentation
number of bytes used per image to actually store data; Definition at line 99 of file JPEGGenerator.h. Referenced by calcImage(), destruct(), getBinSize(), getImageSize(), loadBuffer(), saveBuffer(), and setNumImages().
used to interface with libjpeg - holds compression parameters and state Definition at line 101 of file JPEGGenerator.h. Referenced by calcImage(), JPEGGenerator(), and ~JPEGGenerator().
how to interpret getImage's current image Definition at line 97 of file JPEGGenerator.h. Referenced by doEvent(), getCurrentSourceFormat(), JPEGGenerator(), and setSourceMode().
used to interface with libjpeg - gives us access to error information Definition at line 102 of file JPEGGenerator.h. Referenced by JPEGGenerator().
add a bit to the expected size in getBinSize just to leave a little extra room for small images Definition at line 40 of file JPEGGenerator.h. Referenced by calcImage(), createImageCache(), and getBinSize().
quality level to pass to libjpeg; -1U causes Config::vision_config::RawCam::compress_quality to be used Definition at line 104 of file JPEGGenerator.h. Referenced by calcImage(), getQuality(), and setQuality().
how to interpret source channel of next filter bank event Definition at line 96 of file JPEGGenerator.h. Referenced by getSourceMode(), JPEGGenerator(), and setSourceMode(). The documentation for this class was generated from the following files: |
Tekkotsu v5.1CVS |
Generated Mon May 9 04:59:09 2016 by Doxygen 1.6.3 |