📄 ippvideoencodermpeg4.h
字号:
/* ///////////////////////////////////////////////////////////////////////
//
// INTEL CORPORATION PROPRIETARY INFORMATION
// This software is supplied under the terms of a license agreement or
// nondisclosure agreement with Intel Corporation and may not be copied
// or disclosed except in accordance with the terms of that agreement.
// Copyright (c) 2003-2004 Intel Corporation. All Rights Reserved.
//
// Description: class ippVideoEncoderMPEG4 (based on class ippVideoEncoder)
//
*/
//#include "ippvc.h"
#ifndef _IPPVIDEOENCODERMPEG4_H_
#define _IPPVIDEOENCODERMPEG4_H_
#include "ippdefs.h"
//#pragma warning(disable : 4514) // unreferenced inline function has been removed
struct IppMotionVector
{
Ipp16s dx;
Ipp16s dy;
};
// MacroBlock Info
//struct mp4_MacroBlock {
// int type;
// int not_coded;
// int quant;
// int *predQuantC[6];
// int *predQuantA[6];
// Ipp16s *predDcA[6];
// Ipp16s *predDcB[6];
// Ipp16s *predDcC[6];
// Ipp16s *predAcA[6];
// Ipp16s *predAcC[6];
// Ipp16s dct_acA[6][8];
// Ipp16s dct_acC[6][8];
// Ipp16s dct_dc[6];
// struct IppMotionVector mv[4]; //no 4mv;
// struct IppMotionVector mv;
//};
/* Video Object Plane Info */
struct mp4_VideoObjectPlane {
int vop_coding_type;
int modulo_time_base;
int vop_time_increment;
int vop_coded;
int vop_id; // verid != 1 (newpred)
int vop_id_for_prediction_indication; // verid != 1 (newpred)
int vop_id_for_prediction; // verid != 1 (newpred)
int vop_rounding_type;
int vop_reduced_resolution; // verid != 1
int vop_width;
int vop_height;
int vop_horizontal_mc_spatial_ref;
int vop_vertical_mc_spatial_ref;
int background_composition;
int change_conv_ratio_disable;
int vop_constant_alpha;
int vop_constant_alpha_value;
// compexity Estimation
int dcecs_opaque;
int dcecs_transparent;
int dcecs_intra_cae;
int dcecs_inter_cae;
int dcecs_no_update;
int dcecs_upsampling;
int dcecs_intra_blocks;
int dcecs_inter_blocks;
int dcecs_inter4v_blocks;
int dcecs_not_coded_blocks;
int dcecs_dct_coefs;
int dcecs_dct_lines;
int dcecs_vlc_symbols;
int dcecs_vlc_bits;
int dcecs_apm;
int dcecs_npm;
int dcecs_interpolate_mc_q;
int dcecs_forw_back_mc_q;
int dcecs_halfpel2;
int dcecs_halfpel4;
int dcecs_sadct; // verid != 1
int dcecs_quarterpel; // verid != 1
int intra_dc_vlc_thr;
int top_field_first;
int alternate_vertical_scan_flag;
// sprite info is absent
int vop_quant;
int vop_alpha_quant;
int vop_fcode_forward;
int vop_fcode_backward;
int vop_shape_coding_type;
// scalability info is absent
// short header
int temporal_reference;
int split_screen_indicator;
int document_camera_indicator;
int full_picture_freeze_release;
int source_format;
int picture_coding_type;
int gob_number;
int num_gobs_in_vop;
int num_macroblocks_in_gob;
int gob_header_empty;
int gob_frame_id;
int quant_scale;
};
/* Video Object Info */
struct mp4_VideoObjectLayer {
// iso part
int video_object_layer_id;
int short_video_header;
int random_accessible_vol;
int video_object_type_indication;
int is_object_layer_identifier;
int video_object_layer_verid;
int video_object_layer_priority;
int aspect_ratio_info;
int par_width;
int par_height;
int vol_control_parameters;
int chroma_format;
int low_delay;
int vbv_parameters;
int first_half_bit_rate;
int latter_half_bit_rate;
int first_half_vbv_buffer_size;
int latter_half_vbv_buffer_size;
int first_half_vbv_occupancy;
int latter_half_vbv_occupancy;
int video_object_layer_shape;
int video_object_layer_shape_extension; // verid != 1
int vop_time_increment_resolution;
int vop_time_increment_resolution_bits;
int fixed_vop_rate;
int fixed_vop_time_increment;
int video_object_layer_width;
int video_object_layer_height;
int interlaced;
int obmc_disable;
int sprite_enable; // if verid != 1 (2 bit GMC is added)
int sprite_width;
int sprite_height;
int sprite_left_coordinate;
int sprite_top_coordinate;
int no_of_sprite_warping_points;
int sprite_warping_accuracy;
int sprite_brightness_change;
int low_latency_sprite_enable;
int sadct_disable; // verid != 1
int not_8_bit;
int quant_precision;
int bits_per_pixel;
int no_gray_quant_update;
int composition_method;
int linear_composition;
int quant_type;
int load_intra_quant_mat;
int load_intra_quant_mat_len;
// Ipp16s *intra_quant_mat;
// Ipp8u *intra_quant_inv_mat;
const Ipp8u *intra_quant_mat;
const Ipp8u *intra_quant_inv_mat;
int load_nonintra_quant_mat;
int load_nonintra_quant_mat_len;
// Ipp16s *nonintra_quant_mat;
// Ipp8u *nonintra_quant_inv_mat;
const Ipp8u *nonintra_quant_mat;
const Ipp8u *nonintra_quant_inv_mat;
int load_intra_quant_mat_grayscale;
Ipp16s *intra_quant_mat_grayscale;
Ipp8u *intra_quant_inv_mat_grayscale;
int load_intra_quant_mat_grayscale_len;
int load_nonintra_quant_mat_grayscale;
Ipp16s *nonintra_quant_mat_grayscale;
Ipp8u *nonintra_quant_inv_mat_grayscale;
int load_nonintra_quant_mat_grayscale_len;
int quarter_sample; // verid != 1
int complexity_estimation_disable;
int estimation_method;
int shape_complexity_estimation_disable;
int opaque;
int transparent;
int intra_cae;
int inter_cae;
int no_update;
int upsampling;
int texture_complexity_estimation_set_1_disable;
int intra_blocks;
int inter_blocks;
int inter4v_blocks;
int not_coded_blocks;
int texture_complexity_estimation_set_2_disable;
int dct_coefs;
int dct_lines;
int vlc_symbols;
int vlc_bits;
int motion_compensation_complexity_disable;
int apm;
int npm;
int interpolate_mc_q;
int forw_back_mc_q;
int halfpel2;
int halfpel4;
int version2_complexity_estimation_disable; // verid != 1
int sadct; // verid != 1
int quarterpel; // verid != 1
int resync_marker_disable;
int data_partitioned;
int reversible_vlc;
int newpred_enable; // verid != 1
int requested_upstream_message_type;// verid != 1
int newpred_segment_type; // verid != 1
int reduced_resolution_vop_enable; // verid != 1
int scalability;
int hierarchy_type;
int ref_layer_id;
int ref_layer_sampling_direct;
int hor_sampling_factor_n;
int hor_sampling_factor_m;
int vert_sampling_factor_n;
int vert_sampling_factor_m;
int enhancement_type;
int use_ref_shape;
int use_ref_texture;
int shape_hor_sampling_factor_n;
int shape_hor_sampling_factor_m;
int shape_vert_sampling_factor_n;
int shape_vert_sampling_factor_m;
};
/* Group Of Video Object Plane Info */
struct mp4_GroupOfVideoObjectPlane {
int time_code;
int closed_gov;
int broken_link;
};
/* Visual Object Info */
struct mp4_VisualObject {
int is_visual_object_identifier;
int visual_object_verid;
int visual_object_priority;
int visual_object_type;
int video_signal_type;
int video_format;
int video_range;
int colour_description;
int colour_primaries;
int transfer_characteristics;
int matrix_coefficients;
};
/* Visual Object Sequence Info */
struct mp4_VisualObjectSequence {
int profile_and_level_indication;
};
struct ippBitStream
{ Ipp8u* mPtr;
Ipp8u* mBuffer;
int mBitOff;
};
#define _PTR_ALIGN32(ptr) (((Ipp32s)(ptr) + 31) & ~31)
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -