?? jpeg_usertypedefs.h
字號(hào):
/*****************************************************************************
Copyright(c) 2005 Analog Devices, Inc. All Rights Reserved. This software is
proprietary and confidential to Analog Devices, Inc. and its licensors.
******************************************************************************
$RCSfile: JPEG_UserTypedefs.h,v $
$Revision: 1.1 $
$Date: 2006/07/17 07:18:19 $
Project: JPEG IMAGE CODEC
Title: User-Defined Typedefs
Author(s): D.G, A.S, P.G
Revised by:
Description:
Header for all user-defined modules.
This header file is only for use with the user-defined data buffer module.
It must NOT be included by any JPEG Library module.
The data structures defined here are ONLY referenced in the user-defined
modules: McuBuffer.c, BitsBuffer.c and MemAlloc.c.
References:
******************************************************************************
Tab Setting: 4
Target Processor: Blackfin
Target Tools Revision: ccblkfn C/C++ compiler 6.3.0.0
easmblkfn BlackFin assembler 2.2.4.1
elfar ELF Librarian/Archive Utility 4.4.1.2
linker Linker 2.8.8.2
******************************************************************************
Modification History:
====================
$Log: JPEG_UserTypedefs.h,v $
Revision 1.1 2006/07/17 07:18:19 bmk
JPEG-MJPEG User access files
******************************************************************************/
#ifndef USER_TYPEDEFS_H
#define USER_TYPEDEFS_H
#include <stdio.h>
#include "IMG_common.h" // for int32 and other typedefs
#include "JPEG_memalloc.h"
/****************************************************************************
* Typedefs/Enumerations *
****************************************************************************/
/* Structure for Minimum Coded Unit (MCU) */
typedef struct
{
/*** Members common to encoder and decoder: ***/
/******************************************************************************/
/****** Do not modify those below without modifying FormMCU_BLACKFIN.asm! *****/
int32 x; // X
int32 y; // Y
int32 frameWidth; // Frame width
int32 frameHeight; // Frame Height
uint8 *lumCurrPos; // Actual location of Lum
uint8 *cbCurrPos; // Actual location of Cb
uint8 *crCurrPos; // Actual location of Cr
uint8 *frameCurrPos; // Frame pointer
int32 interLeaveFormat; // Store Mcu Interleave format
int32 numberOfBuffers; // Number of Mcu buffer available
int32 mcuBufferIndex; // Index to Mcu buffer to be read
int32 processBufferIndex; // Index to Mcu buffer to be processed
int32 numberOfEmptyBuffers; // Number of empty buffers
uint8 *mcubuffer; // Pointer to the linear Mcu buffers.
int32 componentNumber; // Progressive-mode component counter, Lum/Cb/Cr
int32 mcuSize; // Store number of data units for mcu
int32 originalFramWidth; // Store Original Width
int32 originalFramHeight; // Store Original Height
/****** Do not modify those above without modifying FormMCU_BLACKFIN.asm! *****/
/******************************************************************************/
/*** Members applicable to encoder only: ***/
int encodingMode; // = SEQUENTIAL, PROGRESSIVE or LOSSLESS
/* Members used for progressive mode: */
int progressiveBlockCount; // MCU block counter
int progressiveBlockCount_next; // MCU block counter, after the first scan
int progressiveFrameWidth_next; // Frame width, after the first scan
int progressiveFrameHeight_next; // Frame height, after the first scan
int component_next; // Flag next component (for PROGRESSIVE & LOSSLESS only)
/*** Members applicable to both encoder and decoder : ***/
MemObjHandle *ThisMemObj; // memory allocated for tMcuBuffer itself
MemObjHandle *BufferMemObj; // for buffer memory allocation
int is_encoder; // Set to 1 for encoder; 0 for decoder
/*** Members applicable to decoder only: ***/
int *mcuFree; // MCU Buffer list: busy or free
MemObjHandle *mcuFreeMemObj; // Memory for mcuFree
int mcuLossy; // Store if lossless mode
} tMcuBuffer;
/* Structure for Bits Buffer (Encoder tPutBitsBuffer, renamed) */
typedef struct
{
// Encoder-only members:
uint8 *externalBuffer; // Pointer to output buffer (ENCODER only)
uint8 *desBuffer1; // aligned to 4
uint8 *desBuffer2; // aligned to 4
int32 externalBufferIndex; // Pointer to unused part of externalBuffer
int32 firstOrsecondBuffer; // A bitsBufferIndex
int32 nextBuffer; // Flag to state that Request should use the next buffer.
int32 numberOfBuffers; // Number of bits buffers available
int32 numberOfEmptyBuffers; // Number of empty bits buffers
int32 writeBufferCount; // Buffer count (for dma check)
int32 numBytes; // Total number of bytes written TO buffer
int32 dmaInitiateThreshold;
// Decoder-only members:
FILE *ptrFile; // Pointer to input file
int numBytesBuf_1; // No of bytes read into buffer 1
int numBytesBuf_2; // No of bytes read into buffer 2
int end_of_file; // Set to 1 when end of input file reached
// Encoder and Decoder Mem Alloc members:
MemObjHandle *ThisMemObj; // memory allocated for tPutBitsBuffer itself
MemObjHandle *BufferMemObjs[2]; // for array of buffer memory allocations
int is_encoder; // Set to 1 for encoder; 0 for decoder
} tBitsBuffer;
/* Structure for Temporary Bits Buffer */
typedef tBitsBuffer tTempBitsBuffer;
#endif // USER_TYPEDEFS_H
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -