Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Tetragramm
GitHub Repository: Tetragramm/opencv
Path: blob/master/3rdparty/libjpeg-turbo/src/jdsample.h
16337 views
1
/*
2
* jdsample.h
3
*
4
* This file was part of the Independent JPEG Group's software:
5
* Copyright (C) 1991-1996, Thomas G. Lane.
6
* For conditions of distribution and use, see the accompanying README.ijg
7
* file.
8
*/
9
10
#define JPEG_INTERNALS
11
#include "jpeglib.h"
12
13
14
/* Pointer to routine to upsample a single component */
15
typedef void (*upsample1_ptr) (j_decompress_ptr cinfo,
16
jpeg_component_info *compptr,
17
JSAMPARRAY input_data,
18
JSAMPARRAY *output_data_ptr);
19
20
/* Private subobject */
21
22
typedef struct {
23
struct jpeg_upsampler pub; /* public fields */
24
25
/* Color conversion buffer. When using separate upsampling and color
26
* conversion steps, this buffer holds one upsampled row group until it
27
* has been color converted and output.
28
* Note: we do not allocate any storage for component(s) which are full-size,
29
* ie do not need rescaling. The corresponding entry of color_buf[] is
30
* simply set to point to the input data array, thereby avoiding copying.
31
*/
32
JSAMPARRAY color_buf[MAX_COMPONENTS];
33
34
/* Per-component upsampling method pointers */
35
upsample1_ptr methods[MAX_COMPONENTS];
36
37
int next_row_out; /* counts rows emitted from color_buf */
38
JDIMENSION rows_to_go; /* counts rows remaining in image */
39
40
/* Height of an input row group for each component. */
41
int rowgroup_height[MAX_COMPONENTS];
42
43
/* These arrays save pixel expansion factors so that int_expand need not
44
* recompute them each time. They are unused for other upsampling methods.
45
*/
46
UINT8 h_expand[MAX_COMPONENTS];
47
UINT8 v_expand[MAX_COMPONENTS];
48
} my_upsampler;
49
50
typedef my_upsampler *my_upsample_ptr;
51
52