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

📄 ippvideoencodermpeg4.h

📁 adi bf533视频编码程序
💻 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 + -