MxPEG
stream to a sequence of full JPEG
images using no external hardware-optimized acceleration routines.
More...
#include <MxPEGScanToJPEGConverterSoftwareOnly.h>
Inheritance diagram for mx::MxPEGScanToJPEGConverterSoftwareOnly:
Public Member Functions | |
MxPEGScanToJPEGConverterSoftwareOnly () | |
The converter assumes ownership over the JPEG receiver. | |
mxm::smart< mxmStringList > | enumerateInterfaces () |
(Re)implemented. | |
mxm::smart< mxmStringList > | enumerateCapabilities (const mxmString &interface) |
(Re)implemented. | |
void | receiveUndecodedMxPEGFrame (mxmUndecodedMxPEGFrameDescriptor *frame_descriptor) |
(Re)implemented. | |
void | receiveMxPEGAudioFrame (const mxmAudioBlockInfo &audio_info, const mxm::u8 *sample_data) |
(Re)implemented. | |
void | setSegmentedStreamReceiver (ISegmentedStreamReceiver *receiver) |
(Re)implemented. | |
bool | errorState () |
(Re)implemented. | |
void | setErrorState () |
(Re)implemented. | |
Static Public Member Functions | |
static IComponentInvoker * | newInvoker () |
Generates an invoker singleton for the MxPEGParser component. | |
Private Member Functions | |
void | calcFoldedHuffTables (void) |
Calculate the huffman tables .. | |
void | generateHuffTables1 (const mxm::u8 *bits_tbl_off1, const mxm::u8 *val_tbl, int swap_symbol, HuffCodeTblEntry *folded_tbl_p) |
Create a huffman lookup table. | |
void | initHuffmanEncoderBufferState () |
Init the Buffer. | |
void | resetHuffmanEncoderBufferState () |
void | encodeSubMCUTiles (mxm::s16 *coef_matrix, mxm::s16 *last_dc_coeff, FoldedHuffTbl_DC_AC *huff_code_tbl_entry, HuffmanBufferStateStructure *hbuf_state_ptr) |
This Method takes a 8x8 sub-MCU and preforms a swift Huffman Encoding. | |
void | copyAccuToGlobalHuffBuffer (mxm::u32 huff_accu_32, HuffmanBufferStateStructure *huff_buf_state_ptr) |
Copies a word into the global huffman encoding buffer! | |
int | shutDownHuffAccu (void) |
Closes down huffman encoding stream. | |
int | returnBitsInCoef (mxm::s16 c) |
Number of bits from .... | |
Static Private Member Functions | |
static mxm::smart< mxmStringList > | _enumerateInterfaces () |
These static methods provide interface and capability ids for registration with the framework (for both the component and its invoker). | |
static mxm::smart< mxmStringList > | _enumerateCapabilities (const mxmString &interface_id) |
Private Attributes | |
FoldedHuffTbl_DC_AC | Huff_Y_UV [2] |
Array of two tables, size = 2*0xB0 words = 1408 bytes : */. | |
ISegmentedStreamReceiver * | JPEGReceiver |
HuffmanBufferStateStructure | HuffmanBufferState |
mxm::u8 * | HuffmanTableWriteBuffer |
mxm::u8 * | HuffmanEncoderBuffer |
mxm::s16 * | CoeffBuffer |
int | TileNumX |
int | TileNumY |
mxm::JPEG::MarkerLayoutAPP0 | APP0_Block |
mxm::JPEG::MarkerLayoutSOF0 | SOF0_Block |
mxm::JPEG::MarkerLayoutSOS | SOS_Block |
int | FramesProcessed |
bool | ErrorEncountered |
Static Private Attributes | |
static const int | BitstreamBufferSize = 0x100000 |
static const unsigned char | ZigZag_StoreMap [64] |
static const HuffCompDC | HuffTbl_Y_UV_DC [2] |
static const HuffCompAC | HuffTbl_Y_UV_AC [2] |
Classes | |
struct | FoldedHuffTbl_DC_AC |
struct | HuffCodeTblEntry |
Single entry in table. More... | |
struct | HuffCompAC |
One AC huffman table - rules for one component (Y or UV). More... | |
struct | HuffCompDC |
One DC huffman table - rules for one component (Y or UV). More... | |
struct | HuffmanBufferStateStructure |
This structure holds the buffer state for huffman encoding ... More... | |
class | Invoker |
union | u32t |
Used to convert a HuffCodeTblEntry -> mxm::u32 ! More... |
MxPEG
stream to a sequence of full JPEG
images using no external hardware-optimized acceleration routines.
The current implementation produces JPEG
in Y22U11V11
sampling mode, regardless of the sampling mode used in the input stream.
After multiple revisions, the class should be threadable now.
[dgr]
, [khe]
|
Calculate the huffman tables .. Calculates huffman tables a la mobotix! |
|
Copies a word into the global huffman encoding buffer!
|
|
This Method takes a 8x8 sub-MCU and preforms a swift Huffman Encoding.
|
|
Create a huffman lookup table.
|
|
Init the Buffer. Take care of initialisierung! |
|
Reset HuffmanEncoderBufferState in order to fetch next frame! |
|
Number of bits from ....
|
|
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 }, }, { { 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 }, } } |
|
Initial value: { 0, 1, 5, 6, 14, 15, 27, 28, 2, 4, 7, 13, 16, 26, 29, 42, 3, 8, 12, 17, 25, 30, 41, 43, 9, 11, 18, 24, 31, 40, 44, 53, 10, 19, 23, 32, 39, 45, 52, 54, 20, 22, 33, 38, 46, 51, 55, 60, 21, 34, 37, 47, 50, 56, 59, 61, 35, 36, 48, 49, 57, 58, 62, 63 } |