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

📄 picture_header.h

📁 由bmp生成mpeg2 的I_frame 数据
💻 H
字号:
/*******************************************************************
                MPEG Video picture header interfaces
 *******************************************************************/
#ifndef PICTURE_HEADER_H
#define PICTURE_HEADER_H

#include "video_stream.h"
#include "out_buffer.h"
#include "macroblock.h"
#include "block.h"
#include "mc.h"

typedef struct {
	int f_code[2][2];
	int intra_dc_precision;
	int picture_structure;
	int top_field_first;
	int frame_predictive_frame_dct;
	int concealment_motion_vectors;
	int q_scale_type;
	int intra_vlc_format;
	int alternate_scan;
	int repeat_first_field;
	int chroma_420_type;
	int progressive_frame;
	int composit_display_flag;
	int v_axis;
	int field_sequence;
	int sub_carrier;
	int burst_amplitude;
	int sub_carrier_phase;
} PICTURE_CODING_EXTENSION;

typedef struct {
	int load_quantizer_matrix[4];
	unsigned short quantizer_matrix[4][64];
} QUANT_MATRIX_EXTENSION;

typedef struct {
	int number_of_frame_center_offset;
	int frame_center_horizontal_offset[3];
	int frame_center_vertical_offset[3];
} PICTURE_DISPLAY_EXTENSION;

typedef struct {
	int low_layer_temporal_reference;
	int lower_layer_horizontal_offset;
	int lower_layer_vertical_offset;
	int spatial_temporal_weight_code_table_index;
	int lower_layer_progressive_frame;
	int lower_layer_deinterlaced_field_select;
} PICTURE_SPATIAL_SCALABLE_EXTENSION;

typedef struct {
	int reference_select_code;
	int forward_temporal_reference;
	int backward_temporal_reference;
}PICTURE_TEMPORAL_SCALABLE_EXTENSION;

typedef struct {
	int copyright_flag;
	int copyright_identifier;
	int original_or_copy;
	int reserved_data;
	int copyright_number_1;
	int copyright_number_2;
	int copyright_number_3;
}COPYRIGHT_EXTENSION;

typedef struct {
	int temporal_reference;
	int picture_coding_type;
	int vbv_delay;
	int full_pel_forward_vector;
	int forward_f_code;
	int full_pel_backward_vector;
	int backward_f_code;

	int has_picture_coding_extension;
	PICTURE_CODING_EXTENSION pc;

	int has_quant_matrix_extension;
	QUANT_MATRIX_EXTENSION qm;

	int has_picture_display_extension;
	PICTURE_DISPLAY_EXTENSION pd;

	int has_picture_spatial_scalable_extension;
	PICTURE_SPATIAL_SCALABLE_EXTENSION pss;

	int has_temporal_scalable_extension;
	PICTURE_TEMPORAL_SCALABLE_EXTENSION pts;

	int has_copyright_extension;
	COPYRIGHT_EXTENSION c;
	
} PICTURE_HEADER;

typedef struct {
	/* in sequence_header ->
	        sequence_extension */
	int progressive_sequence;
} READ_PICTURE_HEADER_OPTION;

#ifdef __cplusplus
extern "C" {
#endif

#ifndef PICTURE_HEADER_C
extern int read_picture_header(VIDEO_STREAM *in, PICTURE_HEADER *out, READ_PICTURE_HEADER_OPTION *opt);
extern int picture_header_to_output_parameter(PICTURE_HEADER *in, OUTPUT_PARAMETER *out);
extern int picture_header_to_read_macroblock_option(PICTURE_HEADER *in, READ_MACROBLOCK_OPTION *out);
extern int picture_header_to_read_block_option(PICTURE_HEADER *in, READ_BLOCK_OPTION *out);
extern int picture_header_to_mc_parameter(PICTURE_HEADER *in, MC_PARAMETER *out);
#endif

#ifdef __cplusplus
}
#endif

#endif

⌨️ 快捷键说明

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