⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mcu.c

📁 dicom file 查看工具 DICOM文件是医疗设备使用的文件格式。
💻 C
字号:
/* * mcu.c -- * * Support for MCU allocation, deallocation, and printing. * *//* * $Id: mcu.c,v 1.5 2004/08/18 21:38:43 enlf Exp $ */#include <stdio.h>#include <stdlib.h>#include <string.h>#include "jpeg.h"#include "mcu.h"#include "proto.h"MCU *mcuTable=NULL;     /* the global mcu table that buffers the source image */MCU *mcuROW1=NULL;      /* point to two rows of MCU in encoding & decoding */MCU *mcuROW2=NULL;int numMCU=0;           /* 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. * *-------------------------------------------------------------- */void InitMcuTable (int numMCU,int compsInScan){    int i, mcuSize;    char *buffer;    /*     * 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 = compsInScan * sizeof(ComponentType);    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.     */    mcuTable = (MCU *)malloc(numMCU * sizeof(MCU));    if (mcuTable==NULL)       fprintf(stderr,"Not enough memory for mcuTable\n");    buffer = (char *)malloc((unsigned)(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);    }}#define MakeMCU(dcPtr)                (mcuTable[numMCU++])/* *-------------------------------------------------------------- * * FreeMcuTable -- * * Frees up the allocated table * * Results: * None. * * Side effects: * None. * *-------------------------------------------------------------- */void FreeMcuTable(void){         free( mcuTable );}/* *-------------------------------------------------------------- * * PrintMCU -- * *        Send an MCU in quasi-readable form to stdout. * * Results: *        None. * * Side effects: *        None. * *-------------------------------------------------------------- */void PrintMCU (int compsInScan, MCU mcu){    ComponentType r;    int b;    static int callCount;    for (b=0; b<compsInScan; b++) {        callCount++;        r = mcu[b];        printf ("%d: %d ", callCount, r);        printf ("\n");    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -