|
|
|
@ -34,37 +34,6 @@ |
|
|
|
|
#include "thread.h" |
|
|
|
|
#include "vp56.h" |
|
|
|
|
|
|
|
|
|
enum BlockLevel { |
|
|
|
|
BL_64X64, |
|
|
|
|
BL_32X32, |
|
|
|
|
BL_16X16, |
|
|
|
|
BL_8X8, |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
enum BlockPartition { |
|
|
|
|
PARTITION_NONE, // [ ] <-.
|
|
|
|
|
PARTITION_H, // [-] |
|
|
|
|
|
PARTITION_V, // [|] |
|
|
|
|
|
PARTITION_SPLIT, // [+] --'
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
enum BlockSize { |
|
|
|
|
BS_64x64, |
|
|
|
|
BS_64x32, |
|
|
|
|
BS_32x64, |
|
|
|
|
BS_32x32, |
|
|
|
|
BS_32x16, |
|
|
|
|
BS_16x32, |
|
|
|
|
BS_16x16, |
|
|
|
|
BS_16x8, |
|
|
|
|
BS_8x16, |
|
|
|
|
BS_8x8, |
|
|
|
|
BS_8x4, |
|
|
|
|
BS_4x8, |
|
|
|
|
BS_4x4, |
|
|
|
|
N_BS_SIZES, |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
enum TxfmMode { |
|
|
|
|
TX_4X4, |
|
|
|
|
TX_8X8, |
|
|
|
@ -102,13 +71,6 @@ enum IntraPredMode { |
|
|
|
|
N_INTRA_PRED_MODES |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
enum InterPredMode { |
|
|
|
|
NEARESTMV = 10, |
|
|
|
|
NEARMV = 11, |
|
|
|
|
ZEROMV = 12, |
|
|
|
|
NEWMV = 13, |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
enum FilterMode { |
|
|
|
|
FILTER_8TAP_SMOOTH, |
|
|
|
|
FILTER_8TAP_REGULAR, |
|
|
|
@ -117,10 +79,18 @@ enum FilterMode { |
|
|
|
|
FILTER_SWITCHABLE, |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
enum CompPredMode { |
|
|
|
|
PRED_SINGLEREF, |
|
|
|
|
PRED_COMPREF, |
|
|
|
|
PRED_SWITCHABLE, |
|
|
|
|
enum BlockPartition { |
|
|
|
|
PARTITION_NONE, // [ ] <-.
|
|
|
|
|
PARTITION_H, // [-] |
|
|
|
|
|
PARTITION_V, // [|] |
|
|
|
|
|
PARTITION_SPLIT, // [+] --'
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
enum InterPredMode { |
|
|
|
|
NEARESTMV = 10, |
|
|
|
|
NEARMV = 11, |
|
|
|
|
ZEROMV = 12, |
|
|
|
|
NEWMV = 13, |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
enum MVJoint { |
|
|
|
@ -248,6 +218,12 @@ typedef struct VP9DSPContext { |
|
|
|
|
vp9_scaled_mc_func smc[5][4][2]; |
|
|
|
|
} VP9DSPContext; |
|
|
|
|
|
|
|
|
|
enum CompPredMode { |
|
|
|
|
PRED_SINGLEREF, |
|
|
|
|
PRED_COMPREF, |
|
|
|
|
PRED_SWITCHABLE, |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
typedef struct VP9mvrefPair { |
|
|
|
|
VP56mv mv[2]; |
|
|
|
|
int8_t ref[2]; |
|
|
|
@ -270,6 +246,40 @@ typedef struct VP9Frame { |
|
|
|
|
void *hwaccel_picture_private; |
|
|
|
|
} VP9Frame; |
|
|
|
|
|
|
|
|
|
enum BlockLevel { |
|
|
|
|
BL_64X64, |
|
|
|
|
BL_32X32, |
|
|
|
|
BL_16X16, |
|
|
|
|
BL_8X8, |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
enum BlockSize { |
|
|
|
|
BS_64x64, |
|
|
|
|
BS_64x32, |
|
|
|
|
BS_32x64, |
|
|
|
|
BS_32x32, |
|
|
|
|
BS_32x16, |
|
|
|
|
BS_16x32, |
|
|
|
|
BS_16x16, |
|
|
|
|
BS_16x8, |
|
|
|
|
BS_8x16, |
|
|
|
|
BS_8x8, |
|
|
|
|
BS_8x4, |
|
|
|
|
BS_4x8, |
|
|
|
|
BS_4x4, |
|
|
|
|
N_BS_SIZES, |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
typedef struct VP9Block { |
|
|
|
|
uint8_t seg_id, intra, comp, ref[2], mode[4], uvmode, skip; |
|
|
|
|
enum FilterMode filter; |
|
|
|
|
VP56mv mv[4 /* b_idx */][2 /* ref */]; |
|
|
|
|
enum BlockSize bs; |
|
|
|
|
enum TxfmMode tx, uvtx; |
|
|
|
|
enum BlockLevel bl; |
|
|
|
|
enum BlockPartition bp; |
|
|
|
|
} VP9Block; |
|
|
|
|
|
|
|
|
|
typedef struct VP9BitstreamHeader { |
|
|
|
|
// bitstream header
|
|
|
|
|
uint8_t profile; |
|
|
|
@ -345,16 +355,6 @@ typedef struct VP9SharedContext { |
|
|
|
|
VP9Frame frames[3]; |
|
|
|
|
} VP9SharedContext; |
|
|
|
|
|
|
|
|
|
typedef struct VP9Block { |
|
|
|
|
uint8_t seg_id, intra, comp, ref[2], mode[4], uvmode, skip; |
|
|
|
|
enum FilterMode filter; |
|
|
|
|
VP56mv mv[4 /* b_idx */][2 /* ref */]; |
|
|
|
|
enum BlockSize bs; |
|
|
|
|
enum TxfmMode tx, uvtx; |
|
|
|
|
enum BlockLevel bl; |
|
|
|
|
enum BlockPartition bp; |
|
|
|
|
} VP9Block; |
|
|
|
|
|
|
|
|
|
typedef struct VP9Context { |
|
|
|
|
VP9SharedContext s; |
|
|
|
|
|
|
|
|
|