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

Committer:
va009039
Date:
Tue Oct 30 13:22:08 2012 +0000
Revision:
2:5b1dd4e34857
Parent:
1:bfbc18000cca
Child:
3:a7547692071d
add inverseDCT

Who changed what in which revision?

UserRevisionLine numberNew contents of line
va009039 0:417b7ae90eff 1 #ifndef BASE_JPEG_DECODE_H
va009039 0:417b7ae90eff 2 #define BASE_JPEG_DECODE_H
va009039 0:417b7ae90eff 3 #include "bjd_config.h"
va009039 0:417b7ae90eff 4 #include "HuffmanDecode.h"
va009039 0:417b7ae90eff 5 #include "BitPattern.h"
va009039 0:417b7ae90eff 6
va009039 0:417b7ae90eff 7 class BaseJpegDecode {
va009039 0:417b7ae90eff 8 public:
va009039 0:417b7ae90eff 9 BaseJpegDecode();
va009039 0:417b7ae90eff 10 void clear();
va009039 0:417b7ae90eff 11 void input(uint8_t c);
va009039 0:417b7ae90eff 12 void input(uint8_t* buf, int len);
va009039 0:417b7ae90eff 13 virtual void outputDC(int mcu, int block, int value) = 0;
va009039 0:417b7ae90eff 14 virtual void outputAC(int mcu, int block, int scan, int value) = 0;
va009039 0:417b7ae90eff 15 virtual void outputMARK(uint8_t c) = 0;
va009039 1:bfbc18000cca 16 uint8_t* qt[2];
va009039 1:bfbc18000cca 17 int width;
va009039 1:bfbc18000cca 18 int height;
va009039 1:bfbc18000cca 19 int m_yblocks;
va009039 1:bfbc18000cca 20 #ifdef JPEG_USE_REPORT_CODE
va009039 1:bfbc18000cca 21 int report_scan_count;
va009039 1:bfbc18000cca 22 int report_scan_dc_count;
va009039 1:bfbc18000cca 23 int report_scan_ac_count;
va009039 1:bfbc18000cca 24 #endif //JPEG_USE_REPORT
va009039 0:417b7ae90eff 25 private:
va009039 1:bfbc18000cca 26 void inputDQT(uint8_t c, int pos, int len);
va009039 1:bfbc18000cca 27 void inputSOF(uint8_t c, int pos, int len);
va009039 0:417b7ae90eff 28 void inputScan(uint8_t c);
va009039 0:417b7ae90eff 29 void restart();
va009039 0:417b7ae90eff 30 protected:
va009039 0:417b7ae90eff 31 int m_seq;
va009039 0:417b7ae90eff 32 int m_mcu;
va009039 0:417b7ae90eff 33 int m_block;
va009039 0:417b7ae90eff 34 int m_scan;
va009039 0:417b7ae90eff 35 Huff* m_huff;
va009039 2:5b1dd4e34857 36 int m_pre_DC_value[3];
va009039 0:417b7ae90eff 37 BitPattern m_bitpat;
va009039 0:417b7ae90eff 38 uint8_t m_mark;
va009039 0:417b7ae90eff 39 HuffmanDecode* pHD;
va009039 1:bfbc18000cca 40 int m_seg_pos;
va009039 1:bfbc18000cca 41 int m_seg_len;
va009039 1:bfbc18000cca 42 int m_param1;
va009039 0:417b7ae90eff 43 };
va009039 0:417b7ae90eff 44 #endif // BASE_JPEG_DECODE_H