📄 jpeglib.h
字号:
//---------------------------------------------////extern unsigned int *DMA_COMMAND_system;extern unsigned int *outbitstr;extern void * pfnDmaMalloc;extern void * pfnDmaFree;//pwhsu++: 20040107//pwhsu++:20040107typedef struct{ unsigned int *SMaddr; unsigned int *LMaddr; unsigned int BlkWidth; unsigned int Control; unsigned int CCA; unsigned int Status; unsigned int CCA2; unsigned int GRPC; unsigned int GRPS;}MDMA;#ifdef USE_INTERNAL_CPU typedef struct { unsigned char* curdata[3]; //input YUV image pointer //from external CPU unsigned int image_height; //image height //from external CPU unsigned int YUVsampling; //input image format //from external CPU unsigned int MCUnum; //total MCU number in this image //from external CPU unsigned int total_iMCU_rows; //total MCU rows //from external CPU unsigned int MCUs_per_row; //MCU numbers per row //from external CPU unsigned int v_sampf0; //vertical sampling factor of comp 1 //from external CPU int comps_in_scan; //number of components in one scan //from external CPU unsigned int comp_width[3]; //component width per component //from external CPU unsigned int mcu_height[3]; //mcu height per component //from external CPU unsigned int MCU_sample_width[3]; //MCU sample width of each component //from external CPU unsigned int restart_interval; //restart interval //from external CPU unsigned int next_scanline; unsigned int cMCUrow; unsigned int mcu_ctr; unsigned int bitslen; //total bitstream length unsigned int jpgenc_done; //a signal for communication unsigned int monitor_encode; unsigned char *outbitstr; // to pass the beginning address of bitstream buffer in order to // let internal CPU to calculate the length of bitstream } JPG_ENC_VAR;extern volatile JPG_ENC_VAR *pjevar; #endifextern unsigned int mcctrl; //pwhsu++:20040109extern unsigned int *pbufaddr; //pwhsu++:20040109#define AHB_interface//#define FPGA_demotypedef enum { JCS_yuv420, //0 JCS_yuv422, //1 JCS_yuv211, //2 JCS_yuv333, //3 JCS_yuv222, //4 JCS_yuv111 //5} JCS_YUV;extern JCS_YUV MCU_comb;//yuv420 =0//yuv422 =1//yuv211 =2//yuv333 =3//yuv222 =4//yuv111 =5extern unsigned int YUVsampling ;extern unsigned int img_qual ; //usually set 75 < qual <100, if qual<50 the quality of image is very poolextern unsigned int rst_interval ; //default value is 0extern unsigned int img_width ;extern unsigned int img_height ;extern unsigned int comp_num;extern unsigned int qtbl_no;extern unsigned int hufftbl_no;extern unsigned int comp_width[3];extern unsigned int mcu_height[3];//pwhsu++:20040119extern int h_sampf[3];extern int v_sampf[3];extern int cMCUrow;#define INTC ((volatile INTC_TYPE *) (0x98800000))#define PMU ((volatile struct PMUTYPE *) (0x98100000))#ifndef FIE8120_TARGET #define Internal_CPU#endif//#define NFunc211extern unsigned int BASE_ADDRESS;//// #ifdef AHB_interface// #ifdef Internal_CPU// //#define BASE_ADDRESS 0x90710000// #define BASE_ADDRESS 0x90e10000// #else// #define BASE_ADDRESS 0x90700000// #endif// #else// #define BASE_ADDRESS 0x1000000// #endif////#ifdef AHB_interface #ifdef Internal_CPU #define MDMA1 ((volatile MDMA *)(0x20400 + BASE_ADDRESS)) #define MECTL (0x20000 + BASE_ADDRESS) #define minSAD (0x2000c + BASE_ADDRESS) #define CMDADDR (0x20010 + BASE_ADDRESS) #define MECADDR (0x20014 + BASE_ADDRESS) #define HOFFSET (0x20018 + BASE_ADDRESS) #define ACDCPAR (0x20040 + BASE_ADDRESS) #define VADR (0x20044 + BASE_ADDRESS) #define CURDEV (0x20048 + BASE_ADDRESS) #define MBIDX (0x20054 + BASE_ADDRESS) #define MCIADDR (0x20058 + BASE_ADDRESS) #define VOP0 (0x20060 + BASE_ADDRESS) #define VOP1 (0x20064 + BASE_ADDRESS) #define MVD0 (0x20068 + BASE_ADDRESS) #define TOADR (0x20070 + BASE_ADDRESS) #define INCTL (0x2007c + BASE_ADDRESS) #define MCUBR (0x20008 + BASE_ADDRESS) #define MCCTL (0x2001c + BASE_ADDRESS) #define MCCADDR (0x20020 + BASE_ADDRESS) #define CPSTS (0x20028 + BASE_ADDRESS) #define MCUTIR (0x2002c + BASE_ADDRESS) #define PYDCR (0x20030 + BASE_ADDRESS) #define PUVDCR (0x20034 + BASE_ADDRESS) #define QAR (0x20038 + BASE_ADDRESS) #define CKR (0x2003c + BASE_ADDRESS) #define VADR (0x20044 + BASE_ADDRESS) #define BADR (0x2004c + BASE_ADDRESS) #define BALR (0x20050 + BASE_ADDRESS) #define VLDCTL (0x2005c + BASE_ADDRESS) #define VLASTWORD (0x2006c + BASE_ADDRESS) #define VLDSTS (0x20074 + BASE_ADDRESS) #define ABADR (0x20078 + BASE_ADDRESS) #else #define MDMA1 ((volatile MDMA *)(0x10400 + BASE_ADDRESS)) #define MECTL (0x10000 + BASE_ADDRESS) #define minSAD (0x1000c + BASE_ADDRESS) #define CMDADDR (0x10010 + BASE_ADDRESS) #define MECADDR (0x10014 + BASE_ADDRESS) #define HOFFSET (0x10018 + BASE_ADDRESS) #define ACDCPAR (0x10040 + BASE_ADDRESS) #define VADR (0x10044 + BASE_ADDRESS) #define CURDEV (0x10048 + BASE_ADDRESS) #define MBIDX (0x10054 + BASE_ADDRESS) #define MCIADDR (0x10058 + BASE_ADDRESS) #define VOP0 (0x10060 + BASE_ADDRESS) #define VOP1 (0x10064 + BASE_ADDRESS) #define MVD0 (0x10068 + BASE_ADDRESS) #define TOADR (0x10070 + BASE_ADDRESS) #define INCTL (0x1007c + BASE_ADDRESS) #define MCUBR (0x10008 + BASE_ADDRESS) #define MCCTL (0x1001c + BASE_ADDRESS) #define MCCADDR (0x10020 + BASE_ADDRESS) #define CPSTS (0x10028 + BASE_ADDRESS) #define MCUTIR (0x1002c + BASE_ADDRESS) #define PYDCR (0x10030 + BASE_ADDRESS) #define PUVDCR (0x10034 + BASE_ADDRESS) #define QAR (0x10038 + BASE_ADDRESS) #define CKR (0x1003c + BASE_ADDRESS) #define VADR (0x10044 + BASE_ADDRESS) #define BADR (0x1004c + BASE_ADDRESS) #define BALR (0x10050 + BASE_ADDRESS) #define VLDCTL (0x1005c + BASE_ADDRESS) #define VLASTWORD (0x1006c + BASE_ADDRESS) #define VLDSTS (0x10074 + BASE_ADDRESS) #define ABADR (0x10078 + BASE_ADDRESS) #endif #define SET_MCUBR(v) *(volatile unsigned long*)MCUBR=v; #define SET_MCCTL(v) *(volatile unsigned long*)MCCTL=v; #define SET_MCCADDR(v) *(volatile unsigned long*)MCCADDR=v; #define SET_CPSTS(v) *(volatile unsigned long*)CPSTS=v; #define SET_MCUTIR(v) *(volatile unsigned long*)MCUTIR=v; #define SET_PYDCR(v) *(volatile unsigned long*)PYDCR=v; #define SET_PUVDCR(v) *(volatile unsigned long*)PUVDCR=v; #define SET_QAR(v) *(volatile unsigned long*)QAR=v; #define SET_CKR(v) *(volatile unsigned long*)CKR=v; #define SET_VADR(v) *(volatile unsigned long*)VADR=v; #define SET_BADR(v) *(volatile unsigned long*)BADR=v; #define SET_BALR(v) *(volatile unsigned long*)BALR=v; #define SET_VLDCTL(v) *(volatile unsigned long*)VLDCTL=v; #define SET_ABADR(v) *(volatile unsigned long*)ABADR=v; #define SET_INCTL(v) *(volatile unsigned long*)INCTL=v; #define READ_VADR(v) v=*(volatile unsigned long*)VADR; #define READ_BADR(v) v=*(volatile unsigned long*)BADR; #define READ_CPSTS(v) v=*(volatile unsigned long*)CPSTS; #define READ_BALR(v) v=*(volatile unsigned long*)BALR; #define READ_VLASTWORD(v) v=*(volatile unsigned long*)VLASTWORD; #define READ_VLDSTS(v) v=*(volatile unsigned long*)VLDSTS; #define READ_ABADR(v) v=*(volatile unsigned long*)ABADR; #define READ_INCTL(v) v=*(volatile unsigned long*)INCTL; #define VPE 0x90180000 extern unsigned int outfsize; //extern unsigned char* cury;//extern unsigned char* curu;//extern unsigned char* curv; extern unsigned char* curdata[3];extern unsigned int sreg;extern unsigned int dmactrl;extern unsigned int CCATmp0;extern unsigned int CCATmp1;/* write n bits to bitstream */static void __inlineBitstreamPutBits(unsigned int value,unsigned int size){ //__asm { SET_BADR(value) SET_BALR(size) //}}extern unsigned int vldreg; //pwhsu++:20040218extern unsigned int lmadr; //pwhsu++:20040219extern unsigned int smadr; //pwhsu++:20040219extern unsigned int bitslen; //pwhsu++:20040219 //pwhsu++:20040909#define mDMA3bOffset(value) (((unsigned int)(value))&0xf << 28) //local mem 4d block offset#define mDMAenb(value) (((unsigned int)(value))&0x1 << 23) //DMA start data transfer#define mDMAchain(value) (((unsigned int)(value))&0x1 << 21) //DMA enable chain transfer#define mDMALmtype(value) (((unsigned int)(value))&0x3 << 18) //DMA local mem data type#define mDMASmtype(value) (((unsigned int)(value))&0x3 << 16) //DMA sys mem data type#define mDMATransLen(vlaue) ((unsigned int)(value))&0xfff //DMA transfer length#define mDMA3bWidth(value) (((unsigned int)(value))&0xf << 28) //local mem 4d block width#define mDMA2bOffset(value) (((unsigned int)(value))&0xff << 20) //local mem 3d block offset#define mDMA2bWidth(value) (((unsigned int)(value))&0xf << 16) //local mem 3d block width#define mDMALmaddr(value) ((unsigned int)(value)) //local mem base addr#define mDMAIncrIdx(value) ((unsigned int)(vlaue))&0x3 //local mem incr index#define mDMAbOffset(value) (((unsigned int)(value))&0xff <<24) //local mem 2d block offset#define mDMAbWidth(value) (((unsigned int)(value))&0xf <<20) //local mem 2d block width#define mDMASOffset(value) (((unsigned int)(value)) <<6) //sys mem block offset#define mDMASWidth(value) ((unsigned int)(value))&0x3f //sys mem block width#define DMA_DATA_SEQ 0#define DMA_DATA_2D 1#define DMA_DATA_3D 2#define DMA_DATA_4D 3#define DMA_COM_SYS 0#define DMA_COM_LOC 2 #define TRUE 1#define FALSE 0#define DMA_TRAN_4B 0x40#define DMA_TRAN_3B 0x30#define DMA_TRAN_2B 0x20#define DMA_TRAN_1B 0x10/* Routine signature for application-supplied marker processing methods. * Need not pass marker code since it is stored in cinfo->unread_marker. */typedef JMETHOD(boolean, jpeg_marker_parser_method, (j_decompress_ptr cinfo));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -