xp_comm_proj/rd_dicom/Papyrus3/JpegDir/JpgLless/mcu.c
/* number of MCUs in mcuTable */
/*
 *--------------------------------------------------------------
 *
 * MakeMCU, InitMcuTable --
 *
 *	InitMcuTable does a big malloc to get the amount of memory
 *	we'll need for storing MCU's, once we know the size of our
 *	input and output images.
 *	MakeMCU returns an MCU for input parsing.
 *
 * Results:
 *	A new MCU
 *
 * Side effects:
 *	None.
 *
 *--------------------------------------------------------------
 */


InitMcuTable does a big malloc to get the amount of memory
we'll need for storing MCU's, once we know the size of our
input and output images.
MakeMCU returns an MCU for input parsing.

A new MCU

Side effects:
None.
InitMcuTable does a big malloc to get the amount of memory we ' ll need for storing MCU ' s once we know the size of our input and output images . MakeMCU returns an MCU for input parsing . A new MCU Side effects : None .
void InitMcuTable (int numMCU,int compsInScan)
{
    int i, mcuSize;
    char *buffer;
    mcuSize = compsInScan * sizeof (ComponentType);
    mcuTable = (MCU *) emalloc3 (numMCU * sizeof (MCU));
    if (mcuTable == NULL)
       fprintf(stderr,"Not enough memory for mcuTable\n");
    buffer = (char *) emalloc3 (numMCU * mcuSize);
    if (buffer == NULL)
       fprintf(stderr,"Not enough memory for buffer\n");
    for (i = 0; i < numMCU; i++) 
    {
	  mcuTable[i] = (MCU) (buffer + i * mcuSize);
    }
}
void InitMcuTable ( int numMCU , int compsInScan ) { int i , mcuSize ; char * buffer ; mcuSize = compsInScan * sizeof ( ComponentType ) ; mcuTable = ( MCU * ) emalloc3 ( numMCU * sizeof ( MCU ) ) ; if ( mcuTable == NULL ) fprintf ( stderr , " \n " ) ; buffer = ( char * ) emalloc3 ( numMCU * mcuSize ) ; if ( buffer == NULL ) fprintf ( stderr , " \n " ) ; for ( i = 0 ; i < numMCU ; i ++ ) { mcuTable [ i ] = ( MCU ) ( buffer + i * mcuSize ) ; } }
number of MCUs in mcuTable
 MakeMCU, InitMcuTable
number of MCUs in mcuTable MakeMCU InitMcuTable
/*
     * Compute size of on MCU (in bytes).  Round up so it's on a
     * boundary for any alignment.  In this code, we assume this
     * is a whole multiple of sizeof(double).
     */ /* mcuSize = JroundUp(mcuSize,sizeof(double)); */ /*
     * Allocate the MCU table, and a buffer which will contain all
     * the data.  Then carve up the buffer by hand.  Note that
     * mcuTable[0] points to the buffer, in case we want to free
     * it up later.
     */