Jerome Jiang [Mon, 4 Mar 2019 23:51:22 +0000 (15:51 -0800)]
vp9 svc: add simulcast mode when inter-layer pred is off.
Force all upper spatial layers to be key frame if the base layer is key.
Mode only works for inter-layer pred=off and non-flexible mode.
Add flag to write out bitstream for each spatial layer in example
encoder.
Change-Id: I5db4543cf8697544ae49464f2157e692640d5256
Jerome Jiang [Tue, 5 Mar 2019 22:50:39 +0000 (22:50 +0000)]
Merge "vp9 svc example: use CONFIG_VP9_DECODER guarding decoding."
Jerome Jiang [Tue, 5 Mar 2019 19:11:16 +0000 (11:11 -0800)]
vp9 svc example: use CONFIG_VP9_DECODER guarding decoding.
Change-Id: I91f2955f2936303c3e09e9b2dc60e32305ebae17
Angie Chiang [Wed, 13 Feb 2019 02:58:07 +0000 (18:58 -0800)]
Add rd_diff_arr to store future blocks' rd diff
Change-Id: Id996c1a427fb22a32b7a521cadf9f1523e5cf068
Angie Chiang [Tue, 5 Mar 2019 18:51:42 +0000 (18:51 +0000)]
Merge "Fix compile error when DUMP_TPL_STATS is 1"
Angie Chiang [Tue, 5 Mar 2019 01:19:22 +0000 (17:19 -0800)]
Fix compile error when DUMP_TPL_STATS is 1
Change-Id: Ie859c2c8e377b6b0982293833ddc657855b18091
Marco Paniconi [Mon, 4 Mar 2019 19:28:52 +0000 (11:28 -0800)]
vp9-rtc: Speed feature changes to speed 9
Compared to speed 8 for low resolutions:
quality loss is ~8-10%, and encoder fps is ~15%
higher on ARM for 1 thread.
Change-Id: I4f12390d2917a5c4045114ef81a05edb2a3b9c96
Marco Paniconi [Sat, 2 Mar 2019 06:03:10 +0000 (22:03 -0800)]
vp9-rtc: Adjust force split logic for screen mode
In variance partition for screen content mode:
force split to 32x32 if source pre-process detects
non-zero temporal sad.
Reduce artifacts in scroll motion content.
Change-Id: Ifbe2b500eb03ae853faa28a045ce4f1185443939
Marco Paniconi [Fri, 1 Mar 2019 19:18:36 +0000 (11:18 -0800)]
vp9-rtc: Fix for scroll motion for rtc
Increase threshold to detect frames with high
num of motion blocks, and fix conditions to detect
horiz & vert scroll and avoid split below 16x16 blocks
in variance partition.
Reduces artifacts in horizonal scroll screenshare testing.
Change-Id: Icf5b87f69971d7331c660fc2727c9246c6cbf8b5
Paul Wilkins [Fri, 1 Mar 2019 13:42:48 +0000 (13:42 +0000)]
Merge "Strengthened film grain setting."
Paul Wilkins [Fri, 1 Mar 2019 13:42:11 +0000 (13:42 +0000)]
Merge "Fix RD multiplier bug impacting AQ1."
Marco Paniconi [Fri, 1 Mar 2019 03:58:08 +0000 (19:58 -0800)]
vp9-rtc: Set init noise level based on resoln
Avoid the kLow init level for lower resolns.
Change-Id: I1c9968a6891668b5887e35695f2a44158a4b3a18
Marco Paniconi [Fri, 1 Mar 2019 01:53:18 +0000 (17:53 -0800)]
vp9-rtc: Reduce thresholds for skip golden
For nonrd-pickmode CBR mode: reduce the skip
golden ref thresholds, to reduce some psnr
regression in some clips, while still effectively
reducing flashing block artifact occurrence.
Change-Id: I468dcf5354411aeb54ac3ef56c6fb73267d93fde
Jerome Jiang [Thu, 28 Feb 2019 19:00:25 +0000 (19:00 +0000)]
Merge "Set segment ID from ROI map if enabled."
Jerome Jiang [Tue, 26 Feb 2019 19:01:23 +0000 (11:01 -0800)]
Set segment ID from ROI map if enabled.
Segment ID was overwritten.
Change-Id: I99603dce02a94f3a9076d1743b108a81289ad0e5
Marco Paniconi [Thu, 28 Feb 2019 17:21:24 +0000 (17:21 +0000)]
Merge "vp9-rtc: Change init level of denoiser & noise level"
Paul Wilkins [Fri, 7 Dec 2018 17:46:34 +0000 (17:46 +0000)]
Strengthened film grain setting.
This patch increases the preference for maintaining similar variance
between source and reconstruction and thus helps improve film grain
retention.
The changes are only active when film mode is selected
Change-Id: I3bc082dca678a0f32ec00f30f5d90d0f95ca2381
paulwilkins [Tue, 26 Feb 2019 12:34:07 +0000 (12:34 +0000)]
Fix RD multiplier bug impacting AQ1.
Change to the default RD multiplier computation in set_segment_rdmult()
The default here is wrong as for modes like AQ 1 setting the rdmult based on the
segment ID for bsize will tend to result in the RD loop favoring partition sizes where
the resulting segment assignment has the lowest Q, as these partition sizes will be
then evaluated with a lower value of rdmult. For a valid rd comparison between
partition sizes within a single SB64 we need to use the same value of rdmult.
This change fixes an observed issue with AQ 1 where almost all the blocks were being
assigned to segment 0.
Change-Id: Ibf87e8ca60bca45b8fee866ac6fd53feae11dab4
Paul Wilkins [Thu, 28 Feb 2019 12:58:20 +0000 (12:58 +0000)]
Merge "Change to direction of scan for GF only group boost."
Marco Paniconi [Thu, 28 Feb 2019 00:19:33 +0000 (16:19 -0800)]
vp9-rtc: Change init level of denoiser & noise level
Change to init/reset level of the denoiser from
kDenLow to kDenMedium, and the init noise level to kLow.
This affects the denoiser level during the initialization
stage of the noise estimation.
Improves denoising for noisy content during init stage of
noise estimation, with little effect for low noise/clean content.
Change-Id: I247a17b0f01f646fc2e91a4a070ad69bdb788cae
Marco Paniconi [Wed, 27 Feb 2019 22:45:56 +0000 (22:45 +0000)]
Merge "vp9-rtc: Add cyclic_refresh condition to segment reset"
Marco Paniconi [Wed, 27 Feb 2019 22:08:09 +0000 (22:08 +0000)]
Merge "vp9: Remove unused function in cyclic refresh"
Marco Paniconi [Wed, 27 Feb 2019 20:06:45 +0000 (12:06 -0800)]
vp9: Remove unused function in cyclic refresh
Change-Id: I4b1d02c661ccbad2a1e346df623e78334a3a3a39
Marco Paniconi [Wed, 27 Feb 2019 19:56:53 +0000 (11:56 -0800)]
vp9-rtc: Add cyclic_refresh condition to segment reset
In non-rd pickmode for screen content:
this logic to reset segment should only be for cyclic_refresh
mode on, so add that condition explicitly.
There may be other uses of segments, like ROI, so we
should condition this reset logic on cyclic_refresh,
as it was intended for that mode only.
Change-Id: I954e6cee968fbca35b34286c4a7ca2531c8e9823
Marco Paniconi [Wed, 27 Feb 2019 17:28:43 +0000 (09:28 -0800)]
vp9-rtc: Modify skip golden mode check for 1 layer
For real-time CBR mode: golden reference mode testing is
skipped under certain conditons based on sse of zero-last mode.
This was done for svc mode. Here we add similar condition
for non-svc/1 layer encoding.
Reduces flashing block artifacts that can occur in background
areas with noise.
Change-Id: I93f71ea9507af8c9153fc6c0ba7dcc7a0fa8810d
Marco Paniconi [Mon, 25 Feb 2019 04:43:13 +0000 (04:43 +0000)]
Merge "vp9-rtc: Fix to Q clamp in adjust_q_cbr"
Marco Paniconi [Mon, 25 Feb 2019 03:02:14 +0000 (19:02 -0800)]
vp9-rtc: Fix to Q clamp in adjust_q_cbr
For CBR mode: clamp the Q to worst/best quality in
adjust_q_cbr().
Under certain conditions, when the worst/best quality is
suddenly changed by a large amount mid-stream, the Q
adjustment from the final Q from adjust_q_cbr may not respect
the worst/best qualiy limits.
Change-Id: I3776129325d89882d422b22e6247d44660dd90ac
Marco Paniconi [Sat, 23 Feb 2019 04:02:27 +0000 (20:02 -0800)]
vp9-rtc: Decrease noise estimation thresh for kLow
Increases denoising for noisy content.
Change-Id: Iff8573f8dca7b177ef53ee6682d691e6cd8e2740
kyslov [Fri, 22 Feb 2019 22:15:22 +0000 (14:15 -0800)]
Fix 32-bit unsigned integer overflow in block_variance
When compiled for High Bitdepth SSE can overflow 32-bit unsigned
integer, so change it to 64 bit. Also fixing unit/int mismatch of sum
BUG=webm:1601
Change-Id: Ib576ed1d5579b0c2b4661058aa64119560b652bf
Marco Paniconi [Fri, 22 Feb 2019 03:32:07 +0000 (19:32 -0800)]
vp9-rtc: Adjust thresholds for noise estimation.
Lower the frame_motion and consec_zeromv thresholds,
this make the noise estimation and denoiser have more effect
on noisy clips.
Change-Id: I49cf5d78a04d00fcf8538bee6f3b2980efe6b3b5
Jerome Jiang [Wed, 20 Feb 2019 23:03:13 +0000 (23:03 +0000)]
Merge "vp9: Enable ml based partition for speed>=8 low res."
James Zern [Tue, 19 Feb 2019 01:03:54 +0000 (17:03 -0800)]
vpx_thread.h: remove unused sched_yield()
usage was removed with:
c1b024b48 Modify map read/write to sync logic in row_mt case
Change-Id: I515fe397083079a4f11702e67c322fd04bdcf410
Ranjit Kumar Tulabandu [Wed, 20 Feb 2019 04:35:35 +0000 (04:35 +0000)]
Merge "Fix integer overflow issue in bits allocated"
Yaowu Xu [Tue, 19 Feb 2019 21:41:37 +0000 (13:41 -0800)]
Disable encoder builds when checking coeff ranges
BUG=webm:1031
Change-Id: I28f4e8cdec170393b2d22cd8cb0b73a32204e09c
Jerome Jiang [Tue, 19 Feb 2019 17:08:50 +0000 (09:08 -0800)]
vp9: Enable ml based partition for speed>=8 low res.
~10% speed up with no quality change for speed 8.
7% quality gain for speed 9 with no speed change.
Change-Id: I7eaaa4b82f7b082c9b15aa1d7624765ecc5082e7
Aidan Welch [Sat, 5 Jan 2019 09:51:24 +0000 (04:51 -0500)]
added error messages in vpx_video_reader_open().
Change-Id: I3e521b62a2f99902c4be80fe25d3869121673e43
Angie Chiang [Sat, 9 Feb 2019 01:48:57 +0000 (17:48 -0800)]
Fix compile warnings in non-greedy-mv
Change-Id: Ib2bd9a74473ccb00e9ad71e0b186c8ddc0ee7b3c
Angie Chiang [Sat, 9 Feb 2019 01:28:43 +0000 (17:28 -0800)]
Only discount new mv mode when tpl model is ready
Change-Id: I3326f0912627981fd604b16ddbf668d2262d4287
Angie Chiang [Thu, 7 Feb 2019 02:21:07 +0000 (18:21 -0800)]
Check the new mv diff in discount_newmv_test()
Change-Id: I38c5d4de93bebfd3f46bcc01716a0cc4a76af950
Angie Chiang [Wed, 6 Feb 2019 21:52:48 +0000 (13:52 -0800)]
Use mv_mode_arr to decide the newmv discount place
Change-Id: I98c32aba4c9e81380b588dcdbfa991468487ce73
Angie Chiang [Fri, 8 Feb 2019 18:25:56 +0000 (10:25 -0800)]
Fix the bug for feature_score computation
The visited is not set to 1 after an item is pushed into the heap.
This may cause one item being pushed into the heap multiple
times, which may incur buffer overflow and memory corruption.
Change-Id: I443f1e5693856bb4066542403f98492d4daec69d
Jerome Jiang [Tue, 12 Feb 2019 23:24:48 +0000 (23:24 +0000)]
Merge "vp9: ML var partition as speed feature & cleanup."
Marco Paniconi [Tue, 5 Feb 2019 18:54:28 +0000 (10:54 -0800)]
vp8: Limit Q change for screen content CBR mode
Add last_q[] to layer context, and add limit on
Q change from previous layer/frame. For now put
hard limit of 12 for decrease.
For 1 pass CBR sreen content mode.
Change-Id: Ifb972c9b6831440c80b1cb07a054c577ece930ec
Jerome Jiang [Tue, 12 Feb 2019 17:45:16 +0000 (17:45 +0000)]
Merge "Test decode and find mismatch in vp9 svc example encoder."
Jerome Jiang [Sat, 9 Feb 2019 03:29:10 +0000 (19:29 -0800)]
Test decode and find mismatch in vp9 svc example encoder.
Also write it to opsnr.stt when internal stats is enabled.
Removed some redundant code in vpxenc.c and vp9cx_set_ref.c
Change-Id: I3700137fff0be92a23e4ab75713db72da1dc4076
Jerome Jiang [Fri, 8 Feb 2019 23:11:28 +0000 (15:11 -0800)]
vp9: ML var partition as speed feature & cleanup.
Remove it from runtime flag.
Add new struct for rd ml partition.
BUG=webm:1599
Change-Id: I883edbba83c65b7e557b8832419e212cffc85997
Marco Paniconi [Mon, 11 Feb 2019 20:06:27 +0000 (12:06 -0800)]
vp8: Fix condition for update of last_pred_err_mb
For 1 pass cbr screen-content mode: quantity should
only be updated on delta frames.
Change-Id: I16fc47b2805c7527ab4ff25bd8b5a5bd9c2b8976
Jerome Jiang [Mon, 11 Feb 2019 17:42:53 +0000 (17:42 +0000)]
Merge "refactor vp9 svc example encoder."
Jerome Jiang [Fri, 8 Feb 2019 23:44:46 +0000 (15:44 -0800)]
refactor vp9 svc example encoder.
Put rc stats related code into a separate function.
Change-Id: I11808bb947079b5fd9e53dfa5894bf227ed0c4c6
Angie Chiang [Sat, 9 Feb 2019 01:20:19 +0000 (01:20 +0000)]
Merge changes Ibbe12dad,I4bf9e2ad
* changes:
Add tpl_bsize to VP9_COMP
Compute future_rd_diff in predict_mv_mode
Jerome Jiang [Fri, 8 Feb 2019 23:44:46 +0000 (15:44 -0800)]
vp9 svc example encoder accept -o (--output) for output.
Make it same as vpxenc so easier to run on borg.
Change-Id: Ie19db6e828ced773cba9aef715c8fbd0f4715b27
Fyodor Kyslov [Thu, 7 Feb 2019 23:37:33 +0000 (23:37 +0000)]
Merge "Fixing ClangTidy issues reported by downstream integration"
kyslov [Thu, 7 Feb 2019 20:15:19 +0000 (12:15 -0800)]
Fixing ClangTidy issues reported by downstream integration
ClangTidy reported 16 issues. All are around typecasting and
straightforward
Change-Id: Ie8f9fc2ba7992dd44fef65b121fe65966a1a1297
Hui Su [Thu, 7 Feb 2019 21:30:47 +0000 (21:30 +0000)]
Merge "Refactor the model for rect partition pruning"
Jerome Jiang [Thu, 7 Feb 2019 19:31:50 +0000 (19:31 +0000)]
Merge "vp9: Write height and width to ivf header in SVC example encoder."
Jerome Jiang [Thu, 7 Feb 2019 18:38:14 +0000 (10:38 -0800)]
vp9: Write height and width to ivf header in SVC example encoder.
Write height and width of top layer to ivf header in SVC.
vpxdec Can't decode it correctly when output is y4m.
Change-Id: I9b2f1d54696611a30e252bdfd182897d191d92b5
Hui Su [Thu, 7 Feb 2019 04:09:33 +0000 (20:09 -0800)]
Refactor the model for rect partition pruning
Remove the block variance and skip flags from the input features. They
do not seem to reduce the average loss of the model. Also decrease the
number of hidden nodes. The model size is reduced significantly.
Compression quality and speed are both neutral.
Change-Id: Ic62f73c4f4c0a3148285f575747f0423ff568c64
Yaowu Xu [Thu, 7 Feb 2019 00:02:39 +0000 (16:02 -0800)]
Use wide integer to avoid overflow
BUG=webm:1270
Change-Id: I7d56667d946196bbbe355303de805422e40b0763
Angie Chiang [Wed, 6 Feb 2019 02:44:00 +0000 (18:44 -0800)]
Add tpl_bsize to VP9_COMP
Change-Id: Ibbe12dade04b218a41de9b65bbedba0054a69d83
Angie Chiang [Tue, 5 Feb 2019 22:45:09 +0000 (14:45 -0800)]
Compute future_rd_diff in predict_mv_mode
The future_rd_diff computes the future rd difference between
new mv mode and ref mv mode.
Change-Id: I4bf9e2ad34257ba9cfec95419c2c5eca469584e9
Jerome Jiang [Wed, 6 Feb 2019 00:57:28 +0000 (00:57 +0000)]
Merge "No vpx_img_alloc for y4m input in example encoders."
Jerome Jiang [Wed, 6 Feb 2019 00:33:30 +0000 (00:33 +0000)]
Merge "Fix VPX_KF_DISABLED."
Johann Koenig [Tue, 5 Feb 2019 23:29:51 +0000 (23:29 +0000)]
Merge "enforce some c89 restrictions"
Jerome Jiang [Tue, 5 Feb 2019 19:41:06 +0000 (11:41 -0800)]
Fix VPX_KF_DISABLED.
VP9 encoder still inserts key frame periodically when VPX_KF_DISABLED is
set in non SVC for 1-pass CBR.
BUG=webm:1592
Change-Id: Ie99d7c5b95230d739e263a2d87879693c53f620e
Hui Su [Tue, 5 Feb 2019 22:20:10 +0000 (22:20 +0000)]
Merge "Improve the partition split prediction model"
Jerome Jiang [Mon, 4 Feb 2019 19:08:21 +0000 (11:08 -0800)]
No vpx_img_alloc for y4m input in example encoders.
Y4M reader has its own allocation.
Change-Id: Ie02440a183126072ea773860f4e9dc9b412772f5
Johann [Tue, 5 Feb 2019 02:18:11 +0000 (18:18 -0800)]
enforce some c89 restrictions
Block "for (int i;;)" style declarations.
Use --std=gnu89 to avoid enforcing c89-style comments.
Change-Id: Ia7d1405eac647d04e92513c047773695e8d7dc6e
Johann Koenig [Tue, 5 Feb 2019 21:51:03 +0000 (21:51 +0000)]
Merge "ppc: use c89 loop declaration"
Johann [Tue, 5 Feb 2019 20:20:54 +0000 (12:20 -0800)]
ppc: use c89 loop declaration
Change-Id: Ib8ca37f1b58e9903e7efa29689a0a49f14b4d73a
Marco Paniconi [Tue, 5 Feb 2019 18:30:57 +0000 (18:30 +0000)]
Merge "vp8: Add extra conditon for overshoot-drop"
Angie Chiang [Tue, 5 Feb 2019 18:27:15 +0000 (18:27 +0000)]
Merge "Add dist scale in get_mv_dist"
Hui Su [Fri, 1 Feb 2019 17:33:42 +0000 (09:33 -0800)]
Improve the partition split prediction model
Include the sizes of the above and left partition block as additional
features.
This affects speed 0 and 1.
Compression change is almost neutral(about 0.03% on average).
Average encoding speedup is 3~6% depending on QP and resolution.
Change-Id: I8bddfadf6072ae757c124da0819302850d8c6fe7
chiyotsai [Tue, 5 Feb 2019 02:31:12 +0000 (18:31 -0800)]
Fix an inline varible declaration in temporal filter
bug=webm:1595
Change-Id: I7fbb16444a8526eb9479007772fbf52b09ff8338
Chi Yo Tsai [Mon, 4 Feb 2019 23:52:24 +0000 (23:52 +0000)]
Merge "Add operator<< to a struct in yuv_temporal_filter_test.cc"
Marco Paniconi [Mon, 4 Feb 2019 22:49:58 +0000 (14:49 -0800)]
vp8: Add extra conditon for overshoot-drop
For drop due to large overshoot feature (in 1 pass CBR):
add additional condition that current prediction error
is larger than that of last encoded frame. This make the
drop due to sudden overshoot more robust, and improves
rate convergence for steady hard content.
Change-Id: If20027d26b4dcd290e4f788ae8e2760d95b536a5
chiyotsai [Mon, 4 Feb 2019 22:18:59 +0000 (14:18 -0800)]
Add operator<< to a struct in yuv_temporal_filter_test.cc
This should resolve valgrind's warning on aceessing uninitialized
values.
BUG=webm:1591
Change-Id: I678cadf448c12b598c9ea09490a7eb4e13e4118c
chiyotsai [Fri, 1 Feb 2019 05:39:19 +0000 (21:39 -0800)]
Some cosmetic fixes to temporal filter
BUG=webm:1591
Change-Id: I34fd7e6cbe6f3d5486a669d0895402fd21de7641
Johann [Mon, 4 Feb 2019 19:46:43 +0000 (11:46 -0800)]
Merge remote-tracking branch 'origin/northernshoveler' into HEAD
BUG=webm:1573
Change-Id: Ie92df3adfac44d7e9c143994ef4f69cd1a04e4b8
Johann [Fri, 1 Feb 2019 21:49:00 +0000 (13:49 -0800)]
Release v1.8.0 Northern Shoveler
BUG=webm:1573
Change-Id: I2884d0d8198f937a9d14428cc9f5f7e86f4ec450
Harish Mahendrakar [Sat, 2 Feb 2019 04:01:57 +0000 (04:01 +0000)]
Merge "Fix segmentation fault when num tile cols change in row-mt."
Harish Mahendrakar [Sat, 2 Feb 2019 02:00:39 +0000 (02:00 +0000)]
Merge "vpx_dec_fuzzer: Remove dependency on tools_common.c"
Ritu Baldwa [Fri, 1 Feb 2019 08:07:07 +0000 (13:37 +0530)]
Fix segmentation fault when num tile cols change in row-mt.
Change-Id: Ifc165d76a71fcdb7c19c158c940a8d273be0d95f
Harish Mahendrakar [Fri, 1 Feb 2019 20:25:03 +0000 (12:25 -0800)]
vpx_dec_fuzzer: Remove dependency on tools_common.c
Instead of calling get_vpx_decoder_by_name(), derive
decoder interface directly.
This will avoid dependecy on tools_common and hence any potential
updates needed to build fuzzer, when tools_common uses functions
defined in a different file
With this dependency removed, fuzzer no longer needs to enable examples
when building vpx_dec_fuzzer binaries
Change-Id: I05753edf041b4bc742a6dc06e809a8a2929d379f
chiyotsai [Thu, 31 Jan 2019 20:38:44 +0000 (12:38 -0800)]
Remove old version of temporal_filter_apply
BUG=webm:1591
Change-Id: I926566ac1bf4bac8cb1ce1c6ded9ba940109283e
chiyotsai [Wed, 30 Jan 2019 21:53:38 +0000 (13:53 -0800)]
Add highbd test cases for apply_temporal_filter
BUG=webm:1591
Change-Id: I61dfcecc2efccdfa15b739fd6d97a24ddff05757
James Zern [Fri, 1 Feb 2019 01:52:48 +0000 (17:52 -0800)]
vp9_temporal_filter: convert blk_fw[0] || ... to |
this matches what is done to reduce the cost of the test of filter
values in convolve.
Change-Id: I692b58801a962b593b810c1d1dac42f72c78caf9
Marco Paniconi [Fri, 1 Feb 2019 01:42:34 +0000 (01:42 +0000)]
Merge "vp9: Tune qp_thresh to disable cyclic refresh for screen"
Chi Yo Tsai [Fri, 1 Feb 2019 00:11:28 +0000 (00:11 +0000)]
Merge "Add highbd yuv_temporal_filter"
Marco Paniconi [Thu, 31 Jan 2019 23:19:45 +0000 (15:19 -0800)]
vp9: Tune qp_thresh to disable cyclic refresh for screen
For screen-content mode, with aq-mode=3: increase the
qp thresh for disabling the cyclic refresh.
Improves bitrate convergence for content that has been
static for long period.
Change-Id: Ica63a741402923a611ab1b86c0900f75d2d5f941
Angie Chiang [Thu, 31 Jan 2019 23:01:06 +0000 (15:01 -0800)]
Add dist scale in get_mv_dist
Add MACRO VP9_DIST_SCALE_LOG2 represents distortion's log scale
Change-Id: Ic496a31e6d3f04626510f8c4661af464a002e361
Angie Chiang [Thu, 31 Jan 2019 21:21:16 +0000 (21:21 +0000)]
Merge changes I62702bdb,Ice6d06c5,I60204c62,Ib9fdf65e
* changes:
Implement get_mv_cost()
Add assertion in get_block_src_pred_buf
Fix bug in predict_mv_mode
Allocate memory for mv_mode_arr[]
Marco Paniconi [Thu, 31 Jan 2019 18:29:55 +0000 (10:29 -0800)]
vp9: Adjust intra check for short_circuit_flat_blocks
For non-rd pickmode: include H and V intra mode check for
spatially flat blocks when the sf->short_circuit_flat_blocks
speed feature is set.
Small improvement on screen content tests.
Change-Id: I3391d02cce6a46160be6ccc8a1e33fd8547eb467
Paul Wilkins [Thu, 31 Jan 2019 17:03:55 +0000 (17:03 +0000)]
Change to direction of scan for GF only group boost.
When coding a GF only group it makes more sense to scan forward
from the GF to choose the boost level rather than backwards from
the end of the group towards the GF.
In practice we do not often code GF only groups in normal 2 pass
encodes and when we do the video is usually almost static which means
the direction does not matter much. However, a forward scan makes
more sense and is how things used to work before we started using
arfs most of the time.
Change-Id: I64a5a731ff579c8af86d8a6718830d426b16a755
Deepa K G [Wed, 30 Jan 2019 09:20:56 +0000 (14:50 +0530)]
Fix integer overflow issue in bits allocated
When encoding at high bitrates, integer overflow
occurs in the the calculation of bits allocated
for layered ARF frames.
Change-Id: I94ad9eea759367a222235a3b5d1c777578dc6ba9
Jerome Jiang [Thu, 31 Jan 2019 05:35:58 +0000 (05:35 +0000)]
Merge "Add y4m input to vp9 example encoder tests."
Angie Chiang [Thu, 31 Jan 2019 02:30:56 +0000 (18:30 -0800)]
Implement get_mv_cost()
The mv_cost contains mv_mode cost and mv_diff cost.
The mv_mode cost is inferred from default_inter_mode_probs.
The mv_diff cost is estimated used the log2 function.
Change-Id: I62702bdb5c3fec018e3302765f5dd749fceebc12
chiyotsai [Sat, 26 Jan 2019 00:12:18 +0000 (16:12 -0800)]
Add highbd yuv_temporal_filter
This changes the highbd version of temporal filter to information from
both luma and chroma planes.
Performance:
AVG_PSNR | OVR_PSNR | SSIM
-0.144% | -0.165% | -0.150%
The performance is evaluated on lowres_bd10.
Change-Id: I89d1bd46cd60c26d658b6a53aa63835e90d8e291
Marco Paniconi [Thu, 31 Jan 2019 00:30:49 +0000 (16:30 -0800)]
vp9-svc: Fix to non-rd pickmode for screen content
For screen content mode: always force intra check
for spatially flat blocks that have moved. Also
adjust/fix condition for forcing check of
zeromv-golden for quality layers.
Reduces artifacts in screensharing tests.
Change-Id: Iafd62fb24a4e05f5b12af663dde2805fdb4c7b36
Jerome Jiang [Wed, 30 Jan 2019 22:37:34 +0000 (14:37 -0800)]
Add y4m input to vp9 example encoder tests.
Change-Id: Ie64a3ee22e6b21e5b3a0cef4734930db3144bea0
Jerome Jiang [Wed, 30 Jan 2019 22:06:12 +0000 (22:06 +0000)]
Merge "add y4m support to vp9 example encoders."