jdprototype.h

来自「void III_hufman_decode(struct Granule *g」· C头文件 代码 · 共 82 行

H
82
字号
#ifndef JDPROTOTYPE_H
#define JDPROTOTYPE_H

#include <stdio.h>
#include "jddatatype.h"

UINT16 read_soi_marker (JPEG_DECODER_STRUCTURE *jpeg_decoder_structure);
UINT16 read_restart_marker (JPEG_DECODER_STRUCTURE *my_jpeg_decoder_structure);
UINT16 read_next_marker (JPEG_DECODER_STRUCTURE *my_jpeg_decoder_structure);
void clear_buffer (INT16 *buffer, UINT16 size);
void copy_data (INT16 *input_buffer, INT16 *output_buffer, UINT16 data_length);


void copy_output (UINT32 *image_buffer, UINT32 *external_image_buffer,
			 UINT16 number_of_samples_per_line,
			 UINT16 number_of_rows, UINT16 number_of_columns, UINT16 image_format);

void write_400_format (INT16 *mcu_buffer, UINT32 *image_buffer);
void write_420_format (INT16 *mcu_buffer, UINT32 *image_buffer);
void write_422_format (INT16 *mcu_buffer, UINT32 *image_buffer);
void write_444_format (INT16 *mcu_buffer, UINT32 *image_buffer);

UINT16 read_8_bits (JPEG_DECODER_STRUCTURE *my_jpeg_decoder_structure);
UINT16 read_16_bits (JPEG_DECODER_STRUCTURE *my_jpeg_decoder_structure);
UINT16 read_16huff_bits (JPEG_DECODER_STRUCTURE *jpeg_decoder_structure);
void wind_buffer (JPEG_DECODER_STRUCTURE *jpeg_decoder_structure);


UINT16 sequential_huffman (JPEG_DECODER_STRUCTURE *jpeg_decoder_structure, INT16 *tmp,
		 UINT16 component_index);

UINT16 first_dc_huffman (JPEG_DECODER_STRUCTURE *jpeg_decoder_structure, INT16 *tmp,
				  UINT16 component_index);

UINT16 refine_dc_huffman (JPEG_DECODER_STRUCTURE *jpeg_decoder_structure, INT16 *tmp,
				   UINT16 component_index);

UINT16 first_ac_huffman (JPEG_DECODER_STRUCTURE *jpeg_decoder_structure, INT16 *tmp,
				  UINT16 component_index);

UINT16 refine_ac_huffman (JPEG_DECODER_STRUCTURE *jpeg_decoder_structure, INT16 *tmp,
				   UINT16 component_index);

void inverse_quantize_inverse_zigzag (INT16 *a, INT16 *b, UINT16 *c);

void idct (INT16 *);

void level_shift (INT16 *a, INT16 *c);

UINT16 decode_noninterleaved_scan (JPEG_DECODER_STRUCTURE *jpeg_decoder_structure);

UINT16 decode_interleaved_scan (JPEG_DECODER_STRUCTURE *jpeg_decoder_structure, UINT16 flag);

UINT16 decode_jpeg_image (JPEG_DECODER_STRUCTURE *jpeg_decoder_structure);

UINT16 jpeg_decoder (JPEG_DECODER_STRUCTURE *jpeg_decoder_structure);

void * jdmalloc(size_t);

//void write_bmp (UINT32 * image, UINT16 number_of_lines,UINT16 number_of_samples_per_line, FILE * fpt);
void write_bmp (UINT16 * RGBbuf, UINT16 number_of_lines,
			UINT16 number_of_samples_per_line, FILE * fw);

int	g_298[256];
int	g_409[256];
int g_100[256];
int g_208[256];
int g_516[256];

#define CLIP(x)				( (x) < 0 ? 0 : ((x) > 255 ? 255 : (x)) )

void YUV_to_RGB24(const UINT8 Y, const UINT8 U, const UINT8 V, UINT8 *R, UINT8 *G, UINT8 *B);
void YUV_to_RGB565(const UINT8 Y, const UINT8 U, const UINT8 V, UINT16 *pRGBPixel);
void yuv2rgb_init_lookup();
void write_rgb565buffer (UINT32 * image, UINT16 number_of_lines,
				UINT16 number_of_samples_per_line, UINT16 *RGBbuf);

void InterpolaZoom(UINT16 *lpDIBBits, UINT16 lWidth, UINT16 lHeight, float ZoomRatio, UINT16 *lpNewDIBBits);


#endif

⌨️ 快捷键说明

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