📄 jpgmem.h
字号:
/*
* Project Name JPEG DRIVER IN WINCE
* Copyright 2007 Samsung Electronics Co, Ltd. All Rights Reserved.
*
* This software is the confidential and proprietary information
* of Samsung Electronics ("Confidential Information").
* you shall not disclose such Confidential Information and shall use
* it only in accordance with the terms of the license agreement
* you entered into with Samsung Electronics
*
* This file implements JPEG driver.
*
* @name JPEG DRIVER MODULE Module (JPGMem.h)
* @author Jiyoung Shin (idon.shin@samsung.com)
* @date 28-03-07
*/
#ifndef __JPG_MEM_H__
#define __JPG_MEM_H__
#include <windows.h>
#include "image_cfg.h"
#define JPG_REG_BASE_ADDR (0x78800000)
#define JPG_DATA_BASE_ADDR (IMAGE_MFC_BUFFER_PA_START)
#define MAX_JPG_WIDTH 2048
#define MAX_JPG_HEIGHT 1536
#define MAX_JPG_THUMBNAIL_WIDTH 160
#define MAX_JPG_THUMBNAIL_HEIGHT 120
#define MAX_RGB_WIDTH 800
#define MAX_RGB_HEIGHT 480
#define JPG_STREAM_BUF_SIZE (MAX_JPG_WIDTH * MAX_JPG_HEIGHT)
#define JPG_STREAM_THUMB_BUF_SIZE (MAX_JPG_THUMBNAIL_WIDTH * MAX_JPG_THUMBNAIL_HEIGHT)
#define JPG_FRAME_BUF_SIZE (MAX_JPG_WIDTH * MAX_JPG_HEIGHT * 2)
#define JPG_FRAME_THUMB_BUF_SIZE (MAX_JPG_THUMBNAIL_WIDTH * MAX_JPG_THUMBNAIL_HEIGHT * 2)
#define JPG_RGB_BUF_SIZE (MAX_RGB_WIDTH * MAX_RGB_HEIGHT*4)
#define JPG_TOTAL_BUF_SIZE (JPG_STREAM_BUF_SIZE + JPG_STREAM_THUMB_BUF_SIZE \
+ JPG_FRAME_BUF_SIZE + JPG_FRAME_THUMB_BUF_SIZE + JPG_RGB_BUF_SIZE)
#define COEF1_RGB_2_YUV 0x4d971e
#define COEF2_RGB_2_YUV 0x2c5783
#define COEF3_RGB_2_YUV 0x836e13
#define ENABLE_MOTION_ENC (0x1<<3)
#define DISABLE_MOTION_ENC (0x0<<3)
#define ENABLE_MOTION_DEC (0x1<<0)
#define DISABLE_MOTION_DEC (0x0<<0)
#define ENABLE_HW_DEC (0x1<<2)
#define DISABLE_HW_DEC (0x0<<2)
#define INCREMENTAL_DEC (0x1<<3)
#define NORMAL_DEC (0x0<<3)
#define YCBCR_MEMORY (0x1<<5)
#define ENABLE_IRQ (0xf<<3)
typedef struct tagS3C6410_JPG_HOSTIF_REG
{
UINT32 JPGMod; //0x000
UINT32 JPGStatus; //0x004
UINT32 JPGQTblNo; //0x008
UINT32 JPGRSTPos; //0x00C
UINT32 JPGY; //0x010
UINT32 JPGX; //0x014
UINT32 JPGDataSize; //0x018
UINT32 JPGIRQ; //0x01C
UINT32 JPGIRQStatus; //0x020
UINT32 dummy0[247];
UINT32 JQTBL0[64]; //0x400
UINT32 JQTBL1[64]; //0x500
UINT32 JQTBL2[64]; //0x600
UINT32 JQTBL3[64]; //0x700
UINT32 JHDCTBL0[16]; //0x800
UINT32 JHDCTBLG0[12]; //0x840
UINT32 dummy1[4];
UINT32 JHACTBL0[16]; //0x880
UINT32 JHACTBLG0[162]; //0x8c0
UINT32 dummy2[46];
UINT32 JHDCTBL1[16]; //0xc00
UINT32 JHDCTBLG1[12]; //0xc40
UINT32 dummy3[4];
UINT32 JHACTBL1[16]; //0xc80
UINT32 JHACTBLG1[162]; //0xcc0
UINT32 dummy4[46];
UINT32 JPGYUVAddr0; //0x1000
UINT32 JPGYUVAddr1; //0x1004
UINT32 JPGFileAddr0; //0x1008
UINT32 JPGFileAddr1; //0x100c
UINT32 JPGStart; //0x1010
UINT32 JPGReStart; //0x1014
UINT32 JPGSoftReset; //0x1018
UINT32 JPGCntl; //0x101c
UINT32 JPGCOEF1; //0x1020
UINT32 JPGCOEF2; //0x1024
UINT32 JPGCOEF3; //0x1028
UINT32 JPGMISC; //0x102c
UINT32 JPGFrameIntv; //0x1030
}S3C6410_JPG_HOSTIF_REG;
typedef struct tagS3C6410_JPG_CTX
{
volatile S3C6410_JPG_HOSTIF_REG *v_pJPG_REG;
volatile UINT8 *v_pJPGData_Buff;
HANDLE callerProcess;
unsigned char *strUserBuf;
unsigned char *frmUserBuf;
unsigned char *strUserThumbBuf;
unsigned char *frmUserThumbBuf;
unsigned char *rgbBuf;
}S3C6410_JPG_CTX;
void *Phy2VirAddr(UINT32 phy_addr, int mem_size);
BOOL JPGMemMapping(S3C6410_JPG_CTX *base);
void JPGMemFree(S3C6410_JPG_CTX *base);
BOOL JPGBuffMapping(S3C6410_JPG_CTX *base);
void JPGBuffFree(S3C6410_JPG_CTX *base);
BOOL HWPostMemMapping(void);
void HWPostMemFree(void);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -