Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

mxcpcFramewiseMxPEGScanDecoder Class Reference
[mxcpc_core (Core Module - MxPEG Decoding Infrastructure)]

The framewise (frame prefetching) approach to MxPEG decoding provided by mxcpcFramewiseMxPEGDecoder needs an actual implementation of a scan decoder doing the actual bitstream crunching. More...

#include <mxcpcFramewiseMxPEGScanDecoder.h>

Inheritance diagram for mxcpcFramewiseMxPEGScanDecoder:

mxcpcFramewiseMxPEGScanDecoderIPP mxcpcFramewiseMxPEGScanDecoderSoftwareOnly mxcpcFramewiseMxPEGScanToJPEGConverter mxcpcFramewiseMxPEGScanToJPEGConverterIPP mxcpcFramewiseMxPEGScanToJPEGConverterSoftwareOnly List of all members.

Public Member Functions

 mxcpcFramewiseMxPEGScanDecoder ()
virtual ~mxcpcFramewiseMxPEGScanDecoder ()
virtual const char * getAccelerationTypeString (void)=0
 Returns a string elaborating on the type of acceleration method used.
void setBackEnd (mxcpcMxPEGDecoderBackEnd *backend)
 Informs the scan decoder about which decoder backend to feed with decoded data.
virtual void setYQuantizationTable (unsigned char *data_bytes)=0
 Copies 64 bytes from the specified location to the scan decoder's Y quantization table.
virtual void setUVQuantizationTable (unsigned char *data_bytes)=0
 Copies 64 bytes from the specified location to the scan decoder's UV quantization table.
virtual void performScanSweep (mxcpcFramewiseMxPEGDecoder::UndecodedFrameDescriptor *frame_descriptor)=0
 Performs the scan decode for an entire MxPEG frame.

Protected Attributes

mxcpcMxPEGDecoderBackEndBackEnd

Static Protected Attributes

static const unsigned char DefaultHuffmanTable_Y_DC []
static const unsigned char DefaultHuffmanTable_Y_AC []
static const unsigned char DefaultHuffmanTable_UV_DC []
static const unsigned char DefaultHuffmanTable_UV_AC []
static const int DefaultHuffmanTable_Y_DC_Size = 16 + 12
static const int DefaultHuffmanTable_Y_AC_Size = 16 + 162
static const int DefaultHuffmanTable_UV_DC_Size = 16 + 12
static const int DefaultHuffmanTable_UV_AC_Size = 16 + 162

Detailed Description

The framewise (frame prefetching) approach to MxPEG decoding provided by mxcpcFramewiseMxPEGDecoder needs an actual implementation of a scan decoder doing the actual bitstream crunching.

Various implementations exist, for example the mxcpcFramewiseMxPEGScanDecoderIPP which makes use of Intel's Performance Primitives library (IPP).

Definition at line 43 of file mxcpcFramewiseMxPEGScanDecoder.h.


Member Function Documentation

virtual void mxcpcFramewiseMxPEGScanDecoder::performScanSweep mxcpcFramewiseMxPEGDecoder::UndecodedFrameDescriptor frame_descriptor  )  [pure virtual]
 

Performs the scan decode for an entire MxPEG frame.

The frame descriptor is assumed to contain valid information.

In case something goes wrong the backend is to be informed via a call to its mxcpcMxPEGDecoderBackEnd::errorEncountered() method.

Attention:
The mxcpcMxPEGDecoderBackEnd::frameComplete() method must not be called - this is done by the mxcpcFramewiseMxPEGDecoder owning this scan decoder.

Implementations must guard against missing backends.

Implemented in mxcpcFramewiseMxPEGScanDecoderSoftwareOnly, mxcpcFramewiseMxPEGScanToJPEGConverterSoftwareOnly, mxcpcFramewiseMxPEGScanDecoderIPP, and mxcpcFramewiseMxPEGScanToJPEGConverterIPP.

Referenced by mxcpcFramewiseMxPEGDecoder::feedBytes().

void mxcpcFramewiseMxPEGScanDecoder::setBackEnd mxcpcMxPEGDecoderBackEnd backend  ) 
 

Informs the scan decoder about which decoder backend to feed with decoded data.

The scan decoder will not delete the backend upon its own deletion.

Definition at line 102 of file mxcpcFramewiseMxPEGScanDecoder.cpp.

References BackEnd.

Referenced by mxcpcFramewiseMxPEGDecoder::mxcpcFramewiseMxPEGDecoder().


Member Data Documentation

const unsigned char mxcpcFramewiseMxPEGScanDecoder::DefaultHuffmanTable_UV_AC [static, protected]
 

Initial value:

 { 0, 2, 1, 2, 4, 4, 3, 4, 7, 5, 4, 4, 0, 1, 2, 0x77,
                          0x00, 0x01, 0x02, 0x03, 0x11, 0x04, 0x05, 0x21, 
                          0x31, 0x06, 0x12, 0x41, 0x51, 0x07, 0x61, 0x71,
                          0x13, 0x22, 0x32, 0x81, 0x08, 0x14, 0x42, 0x91,
                          0xa1, 0xb1, 0xc1, 0x09, 0x23, 0x33, 0x52, 0xf0,
                          0x15, 0x62, 0x72, 0xd1, 0x0a, 0x16, 0x24, 0x34,
                          0xe1, 0x25, 0xf1, 0x17, 0x18, 0x19, 0x1a, 0x26,
                          0x27, 0x28, 0x29, 0x2a, 0x35, 0x36, 0x37, 0x38,
                          0x39, 0x3a, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48,
                          0x49, 0x4a, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58,
                          0x59, 0x5a, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68,
                          0x69, 0x6a, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78,
                          0x79, 0x7a, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
                          0x88, 0x89, 0x8a, 0x92, 0x93, 0x94, 0x95, 0x96,
                          0x97, 0x98, 0x99, 0x9a, 0xa2, 0xa3, 0xa4, 0xa5,
                          0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xb2, 0xb3, 0xb4,
                          0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xc2, 0xc3,
                          0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xd2,
                          0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda,
                          0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9,
                          0xea, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8,
                          0xf9, 0xfa
                        }

Definition at line 46 of file mxcpcFramewiseMxPEGScanDecoder.h.

Referenced by mxcpcFramewiseMxPEGScanDecoderIPP::mxcpcFramewiseMxPEGScanDecoderIPP(), and mxcpcFramewiseMxPEGScanDecoderSoftwareOnly::mxcpcFramewiseMxPEGScanDecoderSoftwareOnly().

const unsigned char mxcpcFramewiseMxPEGScanDecoder::DefaultHuffmanTable_UV_DC [static, protected]
 

Initial value:

 { 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
                          0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11
                        }

Definition at line 46 of file mxcpcFramewiseMxPEGScanDecoder.h.

Referenced by mxcpcFramewiseMxPEGScanDecoderIPP::mxcpcFramewiseMxPEGScanDecoderIPP(), and mxcpcFramewiseMxPEGScanDecoderSoftwareOnly::mxcpcFramewiseMxPEGScanDecoderSoftwareOnly().

const unsigned char mxcpcFramewiseMxPEGScanDecoder::DefaultHuffmanTable_Y_AC [static, protected]
 

Initial value:

 { 0, 2, 1, 3, 3, 2, 4, 3, 5, 5, 4, 4, 0, 0, 1, 0x7d,
                          0x01, 0x02, 0x03, 0x00, 0x04, 0x11, 0x05, 0x12, 
                          0x21, 0x31, 0x41, 0x06, 0x13, 0x51, 0x61, 0x07,
                          0x22, 0x71, 0x14, 0x32, 0x81, 0x91, 0xa1, 0x08,
                          0x23, 0x42, 0xb1, 0xc1, 0x15, 0x52, 0xd1, 0xf0,      
                          0x24, 0x33, 0x62, 0x72, 0x82, 0x09, 0x0a, 0x16,
                          0x17, 0x18, 0x19, 0x1a, 0x25, 0x26, 0x27, 0x28,
                          0x29, 0x2a, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39,
                          0x3a, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49,
                          0x4a, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59,
                          0x5a, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69,
                          0x6a, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79,
                          0x7a, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89,      
                          0x8a, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98,
                          0x99, 0x9a, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,
                          0xa8, 0xa9, 0xaa, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6,
                          0xb7, 0xb8, 0xb9, 0xba, 0xc2, 0xc3, 0xc4, 0xc5,             
                          0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xd2, 0xd3, 0xd4,
                          0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xe1, 0xe2,
                          0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea,
                          0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8,      
                          0xf9, 0xfa
                        }

Definition at line 46 of file mxcpcFramewiseMxPEGScanDecoder.h.

Referenced by mxcpcFramewiseMxPEGScanDecoderIPP::mxcpcFramewiseMxPEGScanDecoderIPP(), and mxcpcFramewiseMxPEGScanDecoderSoftwareOnly::mxcpcFramewiseMxPEGScanDecoderSoftwareOnly().

const unsigned char mxcpcFramewiseMxPEGScanDecoder::DefaultHuffmanTable_Y_DC [static, protected]
 

Initial value:

 { 0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0,
                          0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11
                        }

Definition at line 46 of file mxcpcFramewiseMxPEGScanDecoder.h.

Referenced by mxcpcFramewiseMxPEGScanDecoderIPP::mxcpcFramewiseMxPEGScanDecoderIPP(), and mxcpcFramewiseMxPEGScanDecoderSoftwareOnly::mxcpcFramewiseMxPEGScanDecoderSoftwareOnly().


The documentation for this class was generated from the following files:
Generated on Fri Jan 20 13:33:35 2006 for mxcpc by  doxygen 1.4.4