summaryrefslogtreecommitdiff
path: root/vp9
diff options
context:
space:
mode:
authorPaul Wilkins <paulwilkins@google.com>2019-03-20 11:40:46 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2019-03-20 11:40:46 +0000
commit7a298d0b03982ff4d3406bc613327634c3db5dd2 (patch)
tree7edf5e8b7d7638473606ff2b6fd1617bb5fb6d6f /vp9
parent3e2b4b3d4803f20814d6b6cb3109efbc95249b60 (diff)
parent9ce7bf835a8dceca891dbce05fecd5b5417b3856 (diff)
downloadlibvpx-7a298d0b03982ff4d3406bc613327634c3db5dd2.tar
libvpx-7a298d0b03982ff4d3406bc613327634c3db5dd2.tar.gz
libvpx-7a298d0b03982ff4d3406bc613327634c3db5dd2.tar.bz2
libvpx-7a298d0b03982ff4d3406bc613327634c3db5dd2.zip
Merge "Store a group level noise metric from first pass."
Diffstat (limited to 'vp9')
-rw-r--r--vp9/encoder/vp9_firstpass.c5
-rw-r--r--vp9/encoder/vp9_firstpass.h2
2 files changed, 6 insertions, 1 deletions
diff --git a/vp9/encoder/vp9_firstpass.c b/vp9/encoder/vp9_firstpass.c
index 003e522b7..01cc55eb5 100644
--- a/vp9/encoder/vp9_firstpass.c
+++ b/vp9/encoder/vp9_firstpass.c
@@ -49,7 +49,6 @@
#define MIN_DECAY_FACTOR 0.01
#define NEW_MV_MODE_PENALTY 32
#define DARK_THRESH 64
-#define SECTION_NOISE_DEF 250.0
#define LOW_I_THRESH 24000
#define NCOUNT_INTRA_THRESH 8192
@@ -2659,6 +2658,10 @@ static void define_gf_group(VP9_COMP *cpi, FIRSTPASS_STATS *this_frame) {
// Calculate the bits to be allocated to the gf/arf group as a whole
gf_group_bits = calculate_total_gf_group_bits(cpi, gf_group_err);
+ // Store the average moise level measured for the group
+ twopass->gf_group.group_noise_energy =
+ (int)(gf_group_noise / rc->baseline_gf_interval);
+
// Calculate an estimate of the maxq needed for the group.
// We are more aggressive about correcting for sections
// where there could be significant overshoot than for easier
diff --git a/vp9/encoder/vp9_firstpass.h b/vp9/encoder/vp9_firstpass.h
index 5d9a7fd0d..d8a0a3b9b 100644
--- a/vp9/encoder/vp9_firstpass.h
+++ b/vp9/encoder/vp9_firstpass.h
@@ -44,6 +44,7 @@ typedef struct {
#define INVALID_ROW (-1)
#define MAX_ARF_LAYERS 6
+#define SECTION_NOISE_DEF 250.0
typedef struct {
double frame_mb_intra_factor;
@@ -142,6 +143,7 @@ typedef struct {
int gf_group_size;
int max_layer_depth;
int allowed_max_layer_depth;
+ int group_noise_energy;
} GF_GROUP;
typedef struct {