huffmancode to decode in real-time for motion-jpeg

Dependents:   BaseJpegDecode_example SimpleJpegDecode_example Dumb_box_rev2

example code:

Import programBaseJpegDecode_example

BaseJpegDeocde exampe program

Import programSimpleJpegDecode_example

convert JPEG stream data to bitmap, BaseJpegDecode example program

BaseJpegDecode.h

Committer:
va009039
Date:
2012-10-30
Revision:
2:5b1dd4e34857
Parent:
1:bfbc18000cca
Child:
3:a7547692071d

File content as of revision 2:5b1dd4e34857:

#ifndef BASE_JPEG_DECODE_H
#define BASE_JPEG_DECODE_H
#include "bjd_config.h"
#include "HuffmanDecode.h"
#include "BitPattern.h"

class BaseJpegDecode {
public:
    BaseJpegDecode();
    void clear();
    void input(uint8_t c);
    void input(uint8_t* buf, int len);
    virtual void outputDC(int mcu, int block, int value) = 0;
    virtual void outputAC(int mcu, int block, int scan, int value) = 0;
    virtual void outputMARK(uint8_t c) = 0;
    uint8_t* qt[2];
    int width;
    int height;
    int m_yblocks;
#ifdef JPEG_USE_REPORT_CODE
    int report_scan_count;
    int report_scan_dc_count;
    int report_scan_ac_count;
#endif //JPEG_USE_REPORT
private:
    void inputDQT(uint8_t c, int pos, int len);
    void inputSOF(uint8_t c, int pos, int len);
    void inputScan(uint8_t c);
    void restart();
protected:
    int m_seq;
    int m_mcu;
    int m_block;
    int m_scan;
    Huff* m_huff;
    int m_pre_DC_value[3];
    BitPattern m_bitpat;
    uint8_t m_mark;
    HuffmanDecode* pHD;
    int m_seg_pos;
    int m_seg_len;
    int m_param1;
};
#endif // BASE_JPEG_DECODE_H