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

mxcpcFramewiseMxPEGScanDecoder Class Reference
[mxcpc (MOBOTIX Cross Platform Client Library)]

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:

Inheritance graph
[legend]
Collaboration diagram for mxcpcFramewiseMxPEGScanDecoder:

Collaboration graph
[legend]
List of all members.

Public Member Functions

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 40 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, mxcpcFramewiseMxPEGScanToJPEGConverterIPP, and mxcpcFramewiseMxPEGScanToJPEGConverterSoftwareOnly.

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 99 of file mxcpcFramewiseMxPEGScanDecoder.cpp.

Referenced by mxcpcFramewiseMxPEGDecoder::mxcpcFramewiseMxPEGDecoder().

virtual void mxcpcFramewiseMxPEGScanDecoder::setUVQuantizationTable unsigned char *  data_bytes  )  [pure virtual]
 

Copies 64 bytes from the specified location to the scan decoder's UV quantization table.

Implemented in mxcpcFramewiseMxPEGScanDecoderSoftwareOnly, mxcpcFramewiseMxPEGScanToJPEGConverterIPP, and mxcpcFramewiseMxPEGScanToJPEGConverterSoftwareOnly.

Referenced by mxcpcFramewiseMxPEGDecoder::feedBytes().

virtual void mxcpcFramewiseMxPEGScanDecoder::setYQuantizationTable unsigned char *  data_bytes  )  [pure virtual]
 

Copies 64 bytes from the specified location to the scan decoder's Y quantization table.

Implemented in mxcpcFramewiseMxPEGScanDecoderSoftwareOnly, mxcpcFramewiseMxPEGScanToJPEGConverterIPP, and mxcpcFramewiseMxPEGScanToJPEGConverterSoftwareOnly.

Referenced by mxcpcFramewiseMxPEGDecoder::feedBytes().


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 60 of file mxcpcFramewiseMxPEGScanDecoder.cpp.

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 54 of file mxcpcFramewiseMxPEGScanDecoder.cpp.

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 28 of file mxcpcFramewiseMxPEGScanDecoder.cpp.

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 22 of file mxcpcFramewiseMxPEGScanDecoder.cpp.


The documentation for this class was generated from the following files:
Generated on Mon Aug 15 03:39:47 2005 for mxcpc by  doxygen 1.4.2-20050421