• Alexander Alekhin's avatar
    3rdparty: added libjpeg-turbo source code (1.5.3) · 77795392
    Alexander Alekhin authored
    Repo: https://github.com/libjpeg-turbo/libjpeg-turbo.git
    Tag: 1.5.3
    
    excluded libjpeg-turbo files:
    - bmp.c
    - bmp.h
    - cderror.h
    - cdjpeg.c
    - cdjpeg.h
    - cjpeg.c
    - djpeg.c
    - example.c
    - jcstest.c
    - jdatadst-tj.c
    - jdatasrc-tj.c
    - jpegtran.c
    - rdbmp.c
    - rdcolmap.c
    - rdgif.c
    - rdjpgcom.c
    - rdppm.c
    - rdrle.c
    - rdswitch.c
    - rdtarga.c
    - tjbench.c
    - tjunittest.c
    - tjutil.c
    - tjutil.h
    - transupp.c
    - transupp.h
    - turbojpeg-jni.c
    - turbojpeg.c
    - turbojpeg.h
    - wrbmp.c
    - wrgif.c
    - wrjpgcom.c
    - wrppm.c
    - wrrle.c
    - wrtarga.c
    77795392
jdsample.h 1.68 KB
/*
 * jdsample.h
 *
 * This file was part of the Independent JPEG Group's software:
 * Copyright (C) 1991-1996, Thomas G. Lane.
 * For conditions of distribution and use, see the accompanying README.ijg
 * file.
 */

#define JPEG_INTERNALS
#include "jpeglib.h"


/* Pointer to routine to upsample a single component */
typedef void (*upsample1_ptr) (j_decompress_ptr cinfo,
                               jpeg_component_info *compptr,
                               JSAMPARRAY input_data,
                               JSAMPARRAY *output_data_ptr);

/* Private subobject */

typedef struct {
  struct jpeg_upsampler pub;    /* public fields */

  /* Color conversion buffer.  When using separate upsampling and color
   * conversion steps, this buffer holds one upsampled row group until it
   * has been color converted and output.
   * Note: we do not allocate any storage for component(s) which are full-size,
   * ie do not need rescaling.  The corresponding entry of color_buf[] is
   * simply set to point to the input data array, thereby avoiding copying.
   */
  JSAMPARRAY color_buf[MAX_COMPONENTS];

  /* Per-component upsampling method pointers */
  upsample1_ptr methods[MAX_COMPONENTS];

  int next_row_out;             /* counts rows emitted from color_buf */
  JDIMENSION rows_to_go;        /* counts rows remaining in image */

  /* Height of an input row group for each component. */
  int rowgroup_height[MAX_COMPONENTS];

  /* These arrays save pixel expansion factors so that int_expand need not
   * recompute them each time.  They are unused for other upsampling methods.
   */
  UINT8 h_expand[MAX_COMPONENTS];
  UINT8 v_expand[MAX_COMPONENTS];
} my_upsampler;

typedef my_upsampler *my_upsample_ptr;