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

📄 intrapredictor.h

📁 一个可以在DM642上运新的h.264算法
💻 H
字号:
/*	Open H.264
 *
 *	#include	<standard_disclaimer>
 *
 *  Authors:    aitorgaray@yifan.net
 *              _
 */

#include    "../Common.h"
#include    "../Block.h"
#include    "../LumaMacroblock.h"
#include    "../ChromaMacroblock.h"

#if !defined( __INTRAPREDICTOR_H)
#define __INTRAPREDICTOR_H

    //  *toDO*  these constants should be public static const members of the class, but VisualC++ complaints

#define LUMA_4x4_PREDICTION_COUNT   9
#define LUMA_16x16_PREDICTION_COUNT 4
#define CHROMA_8x8_PREDICTION_COUNT 4

#define LUMA_4x4_MODE0  0       //  a total of LUMA_4x4_PREDICTION_COUNT modes
#define LUMA_4x4_MODE1  1
#define LUMA_4x4_MODE2  2
#define LUMA_4x4_MODE3  3
#define LUMA_4x4_MODE4  4
#define LUMA_4x4_MODE5  5
#define LUMA_4x4_MODE6  6
#define LUMA_4x4_MODE7  7
#define LUMA_4x4_MODE8  8

class IntraPredictor {

    public:

        virtual void predictLuma4x4( /* in */ Block& source, bool upperLeftSampleAvailable, bool upperSamplesAvailable, bool leftSamplesAvailable,
                                     /* out */ Block predictions[ LUMA_4x4_PREDICTION_COUNT], bool validPredictions[ LUMA_4x4_PREDICTION_COUNT]) = 0;

        virtual void predictLuma16x16( /* in */ LumaMacroblock& source, bool upperLeftSampleAvailable, bool upperSamplesAvailable, bool leftSamplesAvailable,
                                       /* out */ LumaMacroblock predictions[ LUMA_16x16_PREDICTION_COUNT], bool validPredictions[ LUMA_16x16_PREDICTION_COUNT]) = 0;


        virtual void predictChroma8x8( /* in */ ChromaMacroblock& source, bool upperLeftSampleAvailable, bool upperSamplesAvailable, bool leftSamplesAvailable,
                                       /* out */ ChromaMacroblock predictions[ CHROMA_8x8_PREDICTION_COUNT], bool validPredictions[ CHROMA_8x8_PREDICTION_COUNT]) = 0;
};


#endif

/*  $Log:$
 *
 */

⌨️ 快捷键说明

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