📄 mae_fe_mcomp.h
字号:
/* <LIC_AMD_STD> * Copyright (C) 2003-2005 Advanced Micro Devices, Inc. All Rights Reserved. * * Unless otherwise designated in writing, this software and any related * documentation are the confidential proprietary information of AMD. * THESE MATERIALS ARE PROVIDED "AS IS" WITHOUT ANY * UNLESS OTHERWISE NOTED IN WRITING, EXPRESS OR IMPLIED WARRANTY OF ANY * KIND, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, * NONINFRINGEMENT, TITLE, FITNESS FOR ANY PARTICULAR PURPOSE AND IN NO * EVENT SHALL AMD OR ITS LICENSORS BE LIABLE FOR ANY DAMAGES WHATSOEVER. * * AMD does not assume any responsibility for any errors which may appear * in the Materials nor any responsibility to support or update the * Materials. AMD retains the right to modify the Materials at any time, * without notice, and is not obligated to provide such modified * Materials to you. AMD is not obligated to furnish, support, or make * any further information available to you. * </LIC_AMD_STD> *//* <CTL_AMD_STD> * </CTL_AMD_STD> *//* <DOC_AMD_STD> * </DOC_AMD_STD> */#ifndef _MAE_FE_MCOMP_H_#define _MAE_FE_MCOMP_H_#include "mae_fe.h"#ifndef HAVE_MAE #include "mae_pass_thru.h"#endif#include "mae_global.h"// Various macros#if MAE_DEBUG == 1#define MAE_ASSERT_MSG(a) printf(a)#else#define MAE_ASSERT_MSG(a) printf(a)#endif#if MAE_DEBUG_RC == 1#define MAE_CHECK_RANGE_ERR(a,b,c) ((a >= b) && (a <= c)) ? 0 : 1#define MAE_CHECK_4MV_EQUAL(a,b,c,d) (a==b) ? 1 : 0#else#define MAE_CHECK_RANGE_ERR(a,b,c) (0)#define MAE_CHECK_4MV_EQUAL(a,b,c,d) (1)#endif// Defines for MAEContext. All represent field values except MAE_CBP_xxx which are bit field positions// BC#define MAE_BC_420 0#define MAE_BC_422 1// MCPREC#define MAE_FULL_PEL 0#define MAE_HALF_PEL_MULTITAP 1#define MAE_HALF_PEL_BILINEAR 2 #define MAE_QUARTER_PEL 3 // MIS#define MAE_MISMATCH_OFF 0#define MAE_MISMATCH_ON 1// Upper 3 bits of MBTYP #define MAE_MC_MODE_INTRA 0#define MAE_MC_MODE_FWD 1#define MAE_MC_MODE_BWD 2#define MAE_MC_MODE_BIDIR 3// Lower 3 bits of MBTYP#define MAE_MC_BLKTYPE_16X16 0#define MAE_MC_BLKTYPE_16X8 2#define MAE_MC_BLKTYPE_8X8 3// CBP - bitfield locations #define MAE_CBP_CR1_CODED 0#define MAE_CBP_CB1_CODED 1#define MAE_CBP_CR0_CODED 2#define MAE_CBP_CB0_CODED 3#define MAE_CBP_Y3_CODED 4#define MAE_CBP_Y2_CODED 5#define MAE_CBP_Y1_CODED 6#define MAE_CBP_Y0_CODED 7// BBLK#define MAE_BIG_BLOCK_OFF 0#define MAE_BIG_BLOCK_ON 1// WTCHGMSK - bitfield locations#define MAE_WTCHG_INTRAY 0#define MAE_WTCHG_INTRAC 1#define MAE_WTCHG_INTERY 2#define MAE_WTCHG_INTERC 3// TOPFF#define MAE_TOP_FIELD_FIRST 0#define MAE_BOT_FIELD_FIRST 1// DCTTYPE#define MAE_DCT_TYPE_FRAME 0#define MAE_DCT_TYPE_FIELD 1// FPRED#define MAE_FRAME_PREDICTION 0#define MAE_FIELD_PREDICTION 1// FTFR#define MAE_FWD_TOP_TOP_FIELD_REF 0#define MAE_FWD_TOP_BOT_FIELD_REF 1// FBFR #define MAE_FWD_BOT_TOP_FIELD_REF 0#define MAE_FWD_BOT_BOT_FIELD_REF 1// BTFR#define MAE_BWD_TOP_TOP_FIELD_REF 0#define MAE_BWD_TOP_BOT_FIELD_REF 1// BBFR #define MAE_BWD_BOT_TOP_FIELD_REF 0#define MAE_BWD_BOT_BOT_FIELD_REF 1typedef struct MAEContext {// MAE Configuration Register int bc; int iqmul1; int iqadd1; int mcprec; int mcprecuv; int mis; int linesz; int height; // kck not in header doc at the moment!! int codstyl; int icomp; int lumscale; int lumshift; // MAE Header Word 0 int mbmode; int mbtype; int cbp; int bblk; int wtchgmsk; int dcluma; int dcchroma; // MAE Header Word 1 int rndctl; int ps; int dctt; int fp; int ft; int fb; int bt; int bb; int iqmul2; int iqadd2; int iqdiv3; // MAE Header Word 2 int xpos; int ypos; // MAE Motion Vectors int mv0_x; int mv0_y; int mv1_x; int mv1_y; int mv2_x; int mv2_y; int mv3_x; int mv3_y; int mv4_x; int mv4_y; int mv5_x; int mv5_y; int mv6_x; int mv6_y; int mv7_x; int mv7_y; int mv8_x; int mv8_y; int mv9_x; int mv9_y; int mv10_x; int mv10_y; int mv11_x; int mv11_y; // Prasad - added changes- agreed by EricS // call Prasad before commenting out or removing (12 lines) // MAE top field reference pointers uint32 fwd_y_top_ptr; // 32-bits uint32 fwd_cb_top_ptr; // 32-bits uint32 fwd_cr_top_ptr; // 32-bits uint32 bwd_y_top_ptr; // 32-bits uint32 bwd_cb_top_ptr; // 32-bits uint32 bwd_cr_top_ptr; // 32-bits // MAE bottom field reference pointers uint32 fwd_y_bot_ptr; // 32-bits uint32 fwd_cb_bot_ptr; // 32-bits uint32 fwd_cr_bot_ptr; // 32-bits uint32 bwd_y_bot_ptr; // 32-bits uint32 bwd_cb_bot_ptr; // 32-bits uint32 bwd_cr_bot_ptr; // 32-bits} MAEContext;// Prototypes void MAE_MPV_motion(MAEContext *s);void MAE_motion_16x16(MAEContext *s);void MAE_motion_16x8(MAEContext *s);void MAE_motion_8x8(MAEContext *s);void MAE_Get_4MV(MAEContext *s, int *mvx, int *mvy);void MAE_Get_8MV(MAEContext *s, int *mvx, int *mvy);//__inline int mae_clip(int a, int amin, int amax);void MAE_rtl2mae(MAEContext *s, mae_fe_config *cfg, mae_fe_mb *mb);void MAE_wr_Xs_buf(uint8 * src, int stride, int bwd, int w, int h, uint32 bn, uint32 mc_mode, uint32 mc_type);void MAE_create_out_of_frame(uint8 * dst, uint8 * src, int width, int height, int inner, int outer, int codstyle, int32 * lut, int fp);void MAE_remove_out_of_frame(uint8 * dst, uint8 * src, int width, int height, int inner, int outer);uint64 MAE_create_oof_mask(char * component, int32 xpos, int32 ypos, int32 w, int32 h, int32 ring_size_x, int32 ring_size_y, int32 mb_width, int32 mb_height, int32 codstyl);void MAE_wmv9_vh_4t (uint8 * dst, uint8 * src, int dstStride, int srcStride, int w, int h, int avg, int rnd, int dxy, uint64 oof, int bn, int bwd, uint32 mc_mode, uint32 mc_type, uint32 mc_prec);void MAE_mpeg_hv_4t (uint8 * dst, uint8 * src, int dstStride, int srcStride, int blkSizeX, int blkSizeY, int avg, int iRoundingControl, int dxy, uint64 oof, int bn, int bwd, uint32 mc_mode, uint32 mc_type, uint32 mc_prec);void MAE_get_mcomp_fcov_strings(MAEContext *s);#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -