00001
00009 #ifndef __JPCONV_H__
00010 #define __JPCONV_H__
00011
00012 #define QTAB_DIV_3 0
00013 #define QTAB_DIV_2 1
00014 #define QTAB_STD 2
00015 #define QTAB_MUL_2 3
00016
00017
00018
00019 #define QTAB_QUALITY_EXCELLENT QTAB_DIV_3
00020 #define QTAB_QUALITY_GOOD QTAB_DIV_2
00021 #define QTAB_QUALITY_MEDIUM QTAB_STD
00022 #define QTAB_QUALITY_LOW QTAB_MUL_2
00023
00024
00025 #define BYTESTUFF_EANBLE false
00026 #define COLOR_ENABLE false
00027
00028
00030 typedef struct jpeg_dma_buffer {
00031 unsigned char* mem_ptr;
00032 unsigned char* jpeg_start;
00033 unsigned char* jpeg_data;
00034 unsigned long header_len;
00035 unsigned long data_len;
00036 } jpeg_dma_buffer_type;
00037
00038
00046 extern int create_jpeg_header(unsigned char *hdr, int width, int height, int qtab_sel);
00047
00055 extern int create_jpeg_header_ycbcr(unsigned char *hdr, int width, int height, int qtab_sel);
00056
00068 extern int write_jpeg_file(unsigned char *img, int size,
00069 char *filename, int width, int height, int qtab_sel, bool color = COLOR_ENABLE, bool hw_bytestuff_en = BYTESTUFF_EANBLE);
00070
00083 extern int convert_to_jpeg(unsigned char *img, int size,
00084 unsigned char **jpeg_buf, int *jpeg_size,
00085 int width, int height, int qtab_sel,
00086 bool hw_bytestuff_en = BYTESTUFF_EANBLE,
00087 bool color = COLOR_ENABLE);
00088
00102 extern int create_jpeg_dma_buffer(jpeg_dma_buffer_type *jpeg_buffer, int width, int height, int qtab_sel, bool color);
00103
00111 extern int update_jpeg_header(jpeg_dma_buffer_type *jpeg_buffer, int width, int height);
00112
00113
00114 #endif // __JPCONV_H__