diff options
author | Yunqing Wang <yunqingwang@google.com> | 2014-05-01 15:14:39 -0700 |
---|---|---|
committer | Yunqing Wang <yunqingwang@google.com> | 2014-06-30 09:36:23 -0700 |
commit | 9d41313e4bd28d3c504c26079cbe4a499e7eceb7 (patch) | |
tree | 1dc38de0da1b8a410217322f6e13e9dcc9ca1523 /vp9/encoder/vp9_encoder.h | |
parent | a93c506034710a21a0a93a71fff71b794f3f9579 (diff) | |
download | libvpx-9d41313e4bd28d3c504c26079cbe4a499e7eceb7.tar libvpx-9d41313e4bd28d3c504c26079cbe4a499e7eceb7.tar.gz libvpx-9d41313e4bd28d3c504c26079cbe4a499e7eceb7.tar.bz2 libvpx-9d41313e4bd28d3c504c26079cbe4a499e7eceb7.zip |
Decide the partitioning threshold from the variance histogram
Before encoding a frame, calculate and store each 16x16 block's
variance of source difference between last and current frame.
Find partitioning threshold T for the frame from its variance
histogram, and then use T to make partition decisions.
Comparing with fixed 16x16 partitioning, rtc set test showed an
overall psnr gain of 3.242%, and ssim gain of 3.751%. The best
psnr gain is 8.653%.
The overall encoding speed didn't change much. It got faster for
some clips(for example, 12% speedup for vidyo1), and a little
slower for others.
Also, a minor modification was made in datarate unit test.
Change-Id: Ie290743aa3814e83607b93831b667a2a49d0932c
Diffstat (limited to 'vp9/encoder/vp9_encoder.h')
-rw-r--r-- | vp9/encoder/vp9_encoder.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/vp9/encoder/vp9_encoder.h b/vp9/encoder/vp9_encoder.h index ee98baa96..5e8430a91 100644 --- a/vp9/encoder/vp9_encoder.h +++ b/vp9/encoder/vp9_encoder.h @@ -401,7 +401,11 @@ typedef struct VP9_COMP { SVC svc; - int use_large_partition_rate; + // Store frame variance info in SOURCE_VAR_BASED_PARTITION search type. + diff *source_diff_var; + // The threshold used in SOURCE_VAR_BASED_PARTITION search type. + unsigned int source_var_thresh; + int frames_till_next_var_check; int frame_flags; |