00001 // /// // 00002 // ///// //// 00003 // /// XXX XXX /// 00004 // /// XXX XXX /// $RCSfile: mxcpcFramewiseMxPEGScanDecoderIPP.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_FRAMEWISEMXPEGSCANDECODERIPP_H__ 00015 #define __MXCPC_FRAMEWISEMXPEGSCANDECODERIPP_H__ 00016 00017 00018 00019 #include <mxcpcFramewiseMxPEGScanDecoder.h> 00020 00021 #include <ippj.h> 00022 00023 00024 00025 //! Framewise <tt>MxPEG</tt> scan decoder implementation using Intel's 00026 //! <i>Performance Primitives</i> library. 00027 /*! 00028 * \ingroup mxcpc 00029 */ 00030 class mxcpcFramewiseMxPEGScanDecoderIPP : public mxcpcFramewiseMxPEGScanDecoder { 00031 00032 private: 00033 IppiDecodeHuffmanSpec *HuffmanTree_Y_DC, 00034 *HuffmanTree_Y_AC, 00035 *HuffmanTree_UV_DC, 00036 *HuffmanTree_UV_AC; 00037 Ipp16u QuantizationTable_Y[64], 00038 QuantizationTable_UV[64]; 00039 Ipp16s DecodedHuffmanCoeffs[6][64]; 00040 Ipp8u Y_ColorValues[16*16], 00041 U_ColorValues[8*8], 00042 V_ColorValues[8*8]; 00043 00044 public: 00045 mxcpcFramewiseMxPEGScanDecoderIPP(); 00046 ~mxcpcFramewiseMxPEGScanDecoderIPP(); 00047 00048 public: 00049 //! (Re)implemented. 00050 const char *getAccelerationTypeString(void); 00051 //! (Re)implemented. 00052 void setYQuantizationTable(unsigned char *data_bytes); 00053 //! (Re)implemented. 00054 void setUVQuantizationTable(unsigned char *data_bytes); 00055 //! (Re)implemented. 00056 void performScanSweep(mxcpcFramewiseMxPEGDecoder::UndecodedFrameDescriptor 00057 *frame_descriptor); 00058 }; 00059 00060 00061 00062 #endif // __MXCPC_FRAMEWISEMXPEGSCANDECODERIPP_H__