00001 // /// // 00002 // ///// //// 00003 // /// XXX XXX /// 00004 // /// XXX XXX /// $RCSfile: mxcpcFramewiseMxPEGScanToJPEGConverterIPP.h,v $ 00005 // /// XXX /// $Revision: 1.1 $ 00006 // /// XXX XXX /// $Date: 2005/12/20 16:41:56 $ 00007 // //// XXX XXX //// $Author: cvs-kai $ 00008 // //// //// 00009 // //// M O B O T I X //////////////////////////////////////////////// 00010 // //// Security Vision Systems /////////////////////////////////////////////// 00011 00012 00013 00014 #ifndef __MXCPC_FRAMEWISEMXPEGSCANTOJPEGCONVERTERIPP_H__ 00015 #define __MXCPC_FRAMEWISEMXPEGSCANTOJPEGCONVERTERIPP_H__ 00016 00017 00018 00019 #define MXCPC_FRAMEWISEMXPEGSCANTOJPEGCONVERTERIPP_BITSTREAM_BUFFSIZE 512 00020 00021 00022 00023 #include <mxcpcFramewiseMxPEGScanToJPEGConverter.h> 00024 #include <mxcpc_mxpeg_namespace.h> 00025 00026 #include <ippj.h> 00027 00028 00029 00030 class mxcpcJPEGReceiver; 00031 00032 00033 00034 //! Experimental framewise scan decoder implementation converting an 00035 //! <tt>MxPEG</tt> stream to a sequence of JPEG images. 00036 /*! 00037 * \ingroup mxcpc 00038 * 00039 * Does not use the decoder backend. 00040 */ 00041 class mxcpcFramewiseMxPEGScanToJPEGConverterIPP 00042 : public mxcpcFramewiseMxPEGScanToJPEGConverter { 00043 00044 private: 00045 static const unsigned char ZigZag_StoreMap[64]; 00046 00047 private: 00048 IppiDecodeHuffmanSpec *HuffmanTree_Y_DC, 00049 *HuffmanTree_Y_AC, 00050 *HuffmanTree_UV_DC, 00051 *HuffmanTree_UV_AC; 00052 Ipp16u QuantizationTable_Y[64], 00053 QuantizationTable_UV[64]; 00054 Ipp16s *CoeffBuffer; 00055 int TileNumX, TileNumY; 00056 IppiEncodeHuffmanSpec *HuffmanEncodeSpec_Y_DC, 00057 *HuffmanEncodeSpec_Y_AC, 00058 *HuffmanEncodeSpec_UV_DC, 00059 *HuffmanEncodeSpec_UV_AC; 00060 mxcpc_mxpeg::APP0 APP0_Block; 00061 mxcpc_mxpeg::SOF0 SOF0_Block; 00062 mxcpc_mxpeg::SOS SOS_Block; 00063 int FramesProcessed; 00064 00065 public: 00066 //! The converter assumes ownership over the converter backend. 00067 mxcpcFramewiseMxPEGScanToJPEGConverterIPP( 00068 mxcpcJPEGReceiver *receiver 00069 ); 00070 ~mxcpcFramewiseMxPEGScanToJPEGConverterIPP(); 00071 00072 public: 00073 //! (Re)implemented. 00074 const char *getAccelerationTypeString(void); 00075 //! (Re)implemented. 00076 void setYQuantizationTable(unsigned char *data_bytes); 00077 //! (Re)implemented. 00078 void setUVQuantizationTable(unsigned char *data_bytes); 00079 //! (Re)implemented. 00080 void performScanSweep(mxcpcFramewiseMxPEGDecoder::UndecodedFrameDescriptor 00081 *frame_descriptor); 00082 }; 00083 00084 00085 00086 #endif // __MXCPC_FRAMEWISEMXPEGSCANTOJPEGCONVERTERIPP_H__