📄 umc_me_m2.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) 2007 Intel Corporation. All Rights Reserved.
//
//
// MPEG2 encoder motion estimation
//
*/
/* LIMITATIONS
From MeBase:
Only frame mode, only Y is used.
From MPEG
Only 16x16, only half-pixel.
Only frame size, search range and BlockVarThresh parameters are used in this ME.
Changes in MeBase:
Added to MeParams BlockVarThresh field, which is quantizer value of mpeg.
Added to ME_MB skipped field, which signals that current MB with provided MV can be skipped.
Difference in returned results:
returned MV are half-pixel precision.
FW vector always returned in [0] and BW always in [1], even when no FW vector.
When is skipped, all required vectors are set and cost returned in [0].
For bidir prediction 3 costs are returned - [0]-FW, [1]-BW, [2]-bidir.
*/
#if 0
#include "umc_me.h"
#ifndef _UMC_ME_M2_H_
#define _UMC_ME_M2_H_
namespace UMC
{
class MeMPEG2 : public MeBase
{
public:
MeMPEG2();
~MeMPEG2();
bool Init(MeInitParams *par); //allocates memory
bool EstimateFrame(MeParams *par, ME_Frame *res); //par and res should be allocated by caller, except ME_Frame::MBs
void Close(); //frees memory, also called from destructor
protected:
void me_block(const Ipp8u* src, Ipp32s sstep, const Ipp8u* ref, Ipp32s rstep,
Ipp32s bh, Ipp32s bx, Ipp32s by,
Ipp32s ll, Ipp32s lt, Ipp32s lr, Ipp32s lb,
MeMV* mv, Ipp32s* cost, MeMV* mvleft, MeMV* mvtop);
};
}//namespace
#endif /*_UMC_ME_M2_H_*/
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -