summaryrefslogtreecommitdiff
path: root/vp9/encoder/vp9_encoder.h
diff options
context:
space:
mode:
authorJingning Han <jingning@google.com>2018-05-21 09:31:13 -0700
committerJingning Han <jingning@google.com>2018-06-14 09:50:56 -0700
commitea78306257fa185255ef922541306d2a9ab1b744 (patch)
tree72b830bc1acfa012545566f485e3ff3baf008de5 /vp9/encoder/vp9_encoder.h
parent7a1ac4712b96db9ce48cbddfdc59d8d6adda10e6 (diff)
downloadlibvpx-ea78306257fa185255ef922541306d2a9ab1b744.tar
libvpx-ea78306257fa185255ef922541306d2a9ab1b744.tar.gz
libvpx-ea78306257fa185255ef922541306d2a9ab1b744.tar.bz2
libvpx-ea78306257fa185255ef922541306d2a9ab1b744.zip
Add data structure for frame dependent mode decision
Add block and frame level data structures to support frame dependent mode decision. Change-Id: I996fc84155fcba8e2ec2a114bb0799d6aa5539dd
Diffstat (limited to 'vp9/encoder/vp9_encoder.h')
-rw-r--r--vp9/encoder/vp9_encoder.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/vp9/encoder/vp9_encoder.h b/vp9/encoder/vp9_encoder.h
index f66c13046..d6d32abf9 100644
--- a/vp9/encoder/vp9_encoder.h
+++ b/vp9/encoder/vp9_encoder.h
@@ -278,6 +278,21 @@ static INLINE int is_lossless_requested(const VP9EncoderConfig *cfg) {
return cfg->best_allowed_q == 0 && cfg->worst_allowed_q == 0;
}
+typedef struct TplDepStats {
+ uint64_t intra_cost;
+ uint64_t inter_cost;
+ uint64_t mc_flow;
+ uint64_t mc_dep_cost;
+} TplDepStats;
+
+typedef struct TplDepFrame {
+ uint8_t is_valid;
+ TplDepStats *tpl_stats_ptr;
+ int stride;
+ int width;
+ int height;
+} TplDepFrame;
+
// TODO(jingning) All spatially adaptive variables should go to TileDataEnc.
typedef struct TileDataEnc {
TileInfo tile_info;
@@ -476,6 +491,8 @@ typedef struct VP9_COMP {
#endif
YV12_BUFFER_CONFIG *raw_source_frame;
+ TplDepFrame tpl_stats[MAX_LAG_BUFFERS];
+
TileDataEnc *tile_data;
int allocated_tiles; // Keep track of memory allocated for tiles.