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"
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
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."
Jerome Jiang [Mon, 28 Jan 2019 23:49:42 +0000 (15:49 -0800)]
add y4m support to vp9 example encoders.
vp9_spatial_svc_encoder and vpx_temporal_svc_encoder.
Change-Id: I8dfa1dfad83c83a26ddac4e7c57b5f1ff161e588
Angie Chiang [Wed, 30 Jan 2019 00:26:57 +0000 (16:26 -0800)]
Add assertion in get_block_src_pred_buf
Print error message and assert when ref_frame_idx is invalid
Change-Id: Ice6d06c53ddae0a77d578671b896c4e4d04d5366
Harish Mahendrakar [Wed, 30 Jan 2019 18:21:42 +0000 (18:21 +0000)]
Merge changes I49a760ea,I792df86e
* changes:
Modify map read/write to sync logic in row_mt case
Revert "Revert "Add Tile-SB-Row based Multi-threading in Decoder""
Hui Su [Wed, 30 Jan 2019 18:17:11 +0000 (18:17 +0000)]
Merge "Add some const qualifiers where applicable"
Hui Su [Wed, 30 Jan 2019 18:17:05 +0000 (18:17 +0000)]
Merge "Reuse simple motion search results"
Chi Yo Tsai [Wed, 30 Jan 2019 17:52:41 +0000 (17:52 +0000)]
Merge "Reland "Enable SSE4 version of apply temporal filter""
Marco Paniconi [Wed, 30 Jan 2019 01:19:02 +0000 (17:19 -0800)]
vp9-svc: Modify early breakout for non-rd pickmode
Modify early breakout condition for non-rd pickmode
for quality layers: when lower layer has lower QP force
test of zeromv on golden (lower layer reference) before
breakout due to skip.
Reduce artifacts, observed in cases of scrolling content.
Change-Id: Id834b1eb024a4c97f0e74d8b7f7a0351459e088f
Ritu Baldwa [Wed, 23 Jan 2019 04:09:06 +0000 (09:39 +0530)]
Modify map read/write to sync logic in row_mt case
Adds conditional wait/signal instead of sched_yield.
Change-Id: I49a760eacdd6b6ac690e797ea5f10febf6a1a084
Angie Chiang [Wed, 30 Jan 2019 00:00:13 +0000 (16:00 -0800)]
Fix bug in predict_mv_mode
Use kMvPreCheckLines in the for loops.
Change-Id: I60204c6294560d47421a8621d907dfa95c9dde18
Angie Chiang [Tue, 29 Jan 2019 23:36:38 +0000 (15:36 -0800)]
Allocate memory for mv_mode_arr[]
Change-Id: Ib9fdf65e263dbaace8d4c86766eba2c6f35f652b
Jerome Jiang [Tue, 29 Jan 2019 23:04:33 +0000 (23:04 +0000)]
Merge "Clean up TODOs for vpx_img_* functions."
Hui Su [Tue, 29 Jan 2019 18:43:32 +0000 (10:43 -0800)]
Add some const qualifiers where applicable
Change-Id: Ib820f625e0b616fd57a2722ec3614b4fccf307f8
Hui Su [Mon, 28 Jan 2019 22:33:13 +0000 (14:33 -0800)]
Reuse simple motion search results
In the ML based partition search speed feature, use MV result of
previous simple motion search as the starting point for the next one.
Compression change is neutral; encoding speed becomes slightly faster.
Change-Id: Iea554f28f7966fc5b5857e12b06de58e3fa312a6
Angie Chiang [Tue, 29 Jan 2019 21:25:24 +0000 (21:25 +0000)]
Merge changes I7dcfcdb3,Ie0b2c67b
* changes:
Add predict_mv_mode_arr()
Add predict_mv_mode()
Jerome Jiang [Fri, 25 Jan 2019 22:04:33 +0000 (14:04 -0800)]
Clean up TODOs for vpx_img_* functions.
They should stay in tools_common.{c,h}
Change-Id: I34bd05e8b000ce780bb1f77abcb8cbfd1e83158f
Chi Yo Tsai [Tue, 29 Jan 2019 20:24:29 +0000 (20:24 +0000)]
Reland "Enable SSE4 version of apply temporal filter"
This reverts commit
a4d2f59b691ac57698d299430495b398a8bb682c.
Reason for revert: Re-enables SSE4_1 version of apply temporal filter now that the mismatch is fixed in
fa540837aa23ae8cdd926961ddbef71998a2a525,
Original change's description:
> Revert "Enable SSE4 version of apply temporal filter"
>
> This reverts commit
4f3cd48bfe4541ca64883db51f57c1376c6d8a73.
>
> Reason for revert: Found a mismatch with c version
>
> Original change's description:
> > Enable SSE4 version of apply temporal filter
> >
> > Evaluating on 5 midres clips with 4 bitrates over 30 frames on speed 1
> > auto_alt_ref=1, there is a speed up of 1.660%.
> >
> > BUG=webm:1591
> >
> > Change-Id: Idbda58548679e6f7b8fc0d7f6144f7be057ef690
>
> TBR=yunqingwang@google.com,builds@webmproject.org,chiyotsai@google.com
>
> Change-Id: Ibca973576d72d6db4b647a08aef23389d5d6605a
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: webm:1591
TBR=yunqingwang@google.com,builds@webmproject.org,chiyotsai@google.com
# Not skipping CQ checks because original CL landed > 1 day ago.
Bug: webm:1591
Change-Id: I26effdbaf4d52e4650c263b6ed9d3d80e505f5cb
Chi Yo Tsai [Tue, 29 Jan 2019 20:21:41 +0000 (20:21 +0000)]
Merge "Fix mismatch between SIMD/C version of vp9_apply_temporal_filter"
Hui Su [Tue, 29 Jan 2019 17:56:29 +0000 (17:56 +0000)]
Merge "Refactor ml_predict_var_rd_paritioning()"
chiyotsai [Sat, 26 Jan 2019 03:30:49 +0000 (19:30 -0800)]
Fix mismatch between SIMD/C version of vp9_apply_temporal_filter
Change-Id: I6503ebc79beaac2947992437ac133f3ac4379019
Chi Yo Tsai [Mon, 28 Jan 2019 23:14:07 +0000 (23:14 +0000)]
Merge "Fix test case name for yuv_temporal_filter"
chiyotsai [Mon, 28 Jan 2019 22:03:04 +0000 (14:03 -0800)]
Fix test case name for yuv_temporal_filter
This should fix valgrind's failure.
BUG=webm:1591
Change-Id: Idab2d6281484c36e6de193d6f45d13f97762625e
Hui Su [Mon, 28 Jan 2019 19:13:35 +0000 (11:13 -0800)]
Refactor ml_predict_var_rd_paritioning()
Refactor out code about simple motion search.
Change-Id: Ie6895db2aff3c13e7a45554d6bc1c7c0af8f2d51
Angie Chiang [Mon, 28 Jan 2019 20:15:58 +0000 (12:15 -0800)]
Add predict_mv_mode_arr()
The function predicts the mv_mode for each prediction block in
diagonal order.
Change-Id: I7dcfcdb317ffa334cb40bb435baa71b5db62252b
Angie Chiang [Fri, 25 Jan 2019 19:53:27 +0000 (11:53 -0800)]
Add predict_mv_mode()
This function evaluate the impact of setting NEW_MV_MODE on a
block and its neighbor blocks.
Change-Id: Ie0b2c67bdc5cd14e0efd8ebc5dc3f3f873bcf3fe
Chi Yo Tsai [Sat, 26 Jan 2019 03:36:25 +0000 (03:36 +0000)]
Merge "Revert "Enable SSE4 version of apply temporal filter""
Chi Yo Tsai [Sat, 26 Jan 2019 01:30:20 +0000 (01:30 +0000)]
Revert "Enable SSE4 version of apply temporal filter"
This reverts commit
4f3cd48bfe4541ca64883db51f57c1376c6d8a73.
Reason for revert: Found a mismatch with c version
Original change's description:
> Enable SSE4 version of apply temporal filter
>
> Evaluating on 5 midres clips with 4 bitrates over 30 frames on speed 1
> auto_alt_ref=1, there is a speed up of 1.660%.
>
> BUG=webm:1591
>
> Change-Id: Idbda58548679e6f7b8fc0d7f6144f7be057ef690
TBR=yunqingwang@google.com,builds@webmproject.org,chiyotsai@google.com
Change-Id: Ibca973576d72d6db4b647a08aef23389d5d6605a
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webm:1591
Sai Deng [Fri, 25 Jan 2019 18:51:23 +0000 (18:51 +0000)]
Merge "Fix a bug in tune-content film mode"
Angie Chiang [Fri, 25 Jan 2019 17:54:13 +0000 (17:54 +0000)]
Merge changes Ia1b3ec7e,I58b8c713,Ibeb43400
* changes:
Add find_best_ref_mv_mode()
Add get_mv_dist
Add get_mv_from_mv_mode()
Chi Yo Tsai [Fri, 25 Jan 2019 17:35:48 +0000 (17:35 +0000)]
Merge "Enable SSE4 version of apply temporal filter"
Chi Yo Tsai [Fri, 25 Jan 2019 17:35:34 +0000 (17:35 +0000)]
Merge "Add SSE4 version of new apply_temporal_filter"
Paul Wilkins [Fri, 25 Jan 2019 17:09:39 +0000 (17:09 +0000)]
Merge "Adjustment to noise factor in first pass."
Yunqing Wang [Fri, 21 Dec 2018 22:46:52 +0000 (14:46 -0800)]
Adjustment to noise factor in first pass.
Adjustments to the calculation and use of a noise estimate in
the first pass Q estimate and adaptation of temporal filtering.
This change was tested and gave gains for both auto-alt-ref=1
and auto-alt-ref=6 as follows:
Results are Av PSNR, Overall PSNR, SSIM and PSNR-HVS
auto-alt-ref=1
low_res 0.007, -0.042, -0.018, 0.074
mid_res -0.142, -0.239, -0.173, -0.129
hd_res -0.322, -0.405, -0.397, -0.367
NF_2K -0.058, -0.099, -0.201, 0.028
auto-alt-ref=6
low_res -0.058, -0.171, -0.188, -0.027
mide_res -0.149, -0.155, -0.171, -0.137
hd_res -0.252, -0.339, -0.259, -0.297
NF_2K -0.015, -0.068, -0.120, 0.092
In all sets there were some winners and losers but significantly
more winners. The biggest change was Stockholm in the
hd set with an improvement of 5-6%
Change-Id: Ieec71e1c4e3e09b76c288efa7b4d1b00015b3a11
chiyotsai [Fri, 18 Jan 2019 23:27:34 +0000 (15:27 -0800)]
Enable SSE4 version of apply temporal filter
Evaluating on 5 midres clips with 4 bitrates over 30 frames on speed 1
auto_alt_ref=1, there is a speed up of 1.660%.
BUG=webm:1591
Change-Id: Idbda58548679e6f7b8fc0d7f6144f7be057ef690
chiyotsai [Wed, 16 Jan 2019 23:33:06 +0000 (15:33 -0800)]
Add SSE4 version of new apply_temporal_filter
This adds a preliminary version of vp9_apply_temporal_filter in SSE4.1.
This patch merely adds the function and does not enable it yet.
Speed Up:
| ss_x=1 | ss_x=0 |
ss_y=1 | 19.80X | 19.04X |
ss_y=0 | 21.09X | 20.21X |
BUG=webm:1591
Change-Id: If590f1ccf1d0c6c3b47410541d54f2ce37d8305b
Angie Chiang [Thu, 24 Jan 2019 23:44:41 +0000 (15:44 -0800)]
Add find_best_ref_mv_mode()
This function compute the rd cost for each mv_mode and return the
one with minimum rd cost.
eval_mv_mode()
Evaluate the rd cost for a given mv_mode.
Change-Id: Ia1b3ec7e1dd538e443e1bc79f2cab352408cd0a0
Angie Chiang [Thu, 24 Jan 2019 19:45:29 +0000 (11:45 -0800)]
Add get_mv_dist
Given an mv_mode, get_mv_dist() obtains the mv and uses it
to compute distortion.
Change-Id: I58b8c7137b99c2736d651e678f0cd013dbd94877
Angie Chiang [Fri, 25 Jan 2019 01:47:43 +0000 (01:47 +0000)]
Merge changes I0fb46784,I6c89fae4
* changes:
Add set_block_src_pred_buf()
[cleanup] Move get_feature_score to a proper place
Johann [Fri, 21 Dec 2018 21:44:07 +0000 (13:44 -0800)]
add -Wmissing-declarations
This is useful for catching functions which should be static and
instances where the relevant rtcd file was not included.
BUG=webm:1584
Change-Id: Ied395847a664eedce59e8ed5180bd16d059ab0ac
Johann Koenig [Thu, 24 Jan 2019 22:21:37 +0000 (22:21 +0000)]
Merge "mips: resolve missing declarations"
Angie Chiang [Thu, 24 Jan 2019 01:15:06 +0000 (17:15 -0800)]
Add get_mv_from_mv_mode()
Given an mv_mode, this function will return the corresponding mv.
find_ref_mv()
A helper function finds the nearest and near mvs from the neighbor
blocks.
select_mv_arr[]
An array used for storing selected motion vectors.
Change-Id: Ibeb434007f65b2c6e461360f208d99455e76bcbf
sdeng [Tue, 22 Jan 2019 22:05:50 +0000 (14:05 -0800)]
Fix a bug in tune-content film mode
Avoid recursively decreasing 'strength'.
avg_psnr ovr_psnr ssim
midres -0.224 -0.195 -0.115
Change-Id: Ie74c069cda76873ac38e9c1a9162b1ddfb9b103d
Angie Chiang [Thu, 24 Jan 2019 00:52:56 +0000 (16:52 -0800)]
Add set_block_src_pred_buf()
This function sets src and pre buffer of MACROBLOCK
and MACROBLOCKD.
Will add static decorator once this function is called.
Change-Id: I0fb46784dd97839e4d87c9e027fe8c59683e70d8
Angie Chiang [Wed, 23 Jan 2019 23:45:47 +0000 (15:45 -0800)]
[cleanup] Move get_feature_score to a proper place
Add static decorator to it as well.
Change-Id: I6c89fae456561b6975ab49af139a45a7483507c6
Johann [Wed, 23 Jan 2019 23:35:57 +0000 (15:35 -0800)]
mips: resolve missing declarations
Exclude low bit depth optimizations from high bit depth builds.
BUG=webm:1584
Change-Id: I86a7ebafa557d262257358e1e055a06d52659977
chiyotsai [Wed, 23 Jan 2019 23:05:47 +0000 (15:05 -0800)]
Fix a typo in the test cases for convolve test
BUG=webm:1591
Change-Id: I34aedcb5336a96e33932ce34967c12f187ee52e2
Chi Yo Tsai [Wed, 23 Jan 2019 17:43:44 +0000 (17:43 +0000)]
Merge "Clean up code for yuv_temporal filter_test.cc"
Jon Kunkee [Tue, 22 Jan 2019 23:01:06 +0000 (15:01 -0800)]
Fix Windows SDK and VS version checks
If WindowsTargetPlatformVersion is not set, the Visual Studio 15 (2017)
toolchain assumes that Windows 8.1 is being targeted. Since ARM64
support is only present and unlocked in Windows SDKs >= Windows 10 1809,
set that SDK as required in the vcxproj files.
Note that this will not be an issue in Visual Studio 16 or greater,
hence the -eq major version check.
https://developercommunity.visualstudio.com/content/problem/128836/windowstargetplatformversion-to-use-the-latest-ava.html
Bug: chromium:893460
Change-Id: Ib069501ad384d91349b1f635722dedd31a4edd97
chiyotsai [Fri, 18 Jan 2019 23:48:55 +0000 (15:48 -0800)]
Clean up code for yuv_temporal filter_test.cc
Some cosmetic changes to make the code google c++-style compliant.
BUG=webm:1591
Change-Id: Icef3ccc8ebed7210b6b6f915885d5f648e62da72
Johann Koenig [Tue, 22 Jan 2019 22:31:13 +0000 (22:31 +0000)]
Merge "ads2gas: remove DO1STROUNDING"
Ritu Baldwa [Wed, 2 Jan 2019 06:28:34 +0000 (11:58 +0530)]
Revert "Revert "Add Tile-SB-Row based Multi-threading in Decoder""
This reverts commit
06983668cf41f66765528db044419f954e5a5d64.
Fixes Visual Studio build errors introduced by earlier row mt commit
BUG=webm:1587
Change-Id: I792df86e8254cd6b2a511955b691af619a569cd0
chiyotsai [Thu, 17 Jan 2019 22:15:00 +0000 (14:15 -0800)]
Change temporal filter's search_method on speed 1
This commit introduces a new speed feature that determines the
SEARCH_METHOD used by temporal filter when doing 16x16 block on
full_pixel_motion_search. On speed 0, the most exhaustive method MESH is
used. On speed 1 and above, a faster method NSTEP is used.
Performance:
| AVG_PSNR | AVG_SPDUP | AVG_SPDUP:AVG_PSNR
MISRES | 0.007% | 2.818% | 402:1
HDRES | 0.004% | 4.897% | 1224:1
In the case of midres, there is a small quality gain of -0.021% on
OVR_PSNR.
Performance measurement is done on speed 1 with auto_alt_ref=1.
Quality is measured on full midres set over 60 frames. Speed is measured
on 5 midres clips over 4 bitrates over 30 frames.
STATS_CHANGED
Change-Id: Ic1879d2237f8734529e194767a6cf5e43e20b47b
Chi Yo Tsai [Fri, 18 Jan 2019 23:13:01 +0000 (23:13 +0000)]
Merge "Add unit speed test for vp9_apply_temporal_filter"
Angie Chiang [Fri, 18 Jan 2019 23:05:51 +0000 (23:05 +0000)]
Merge changes Id99ca6fc,I34cdbc6e,Iac7fee46
* changes:
Correct pyramid_mv_arr's memory size
Adjust lambda with bsize in build_motion_field()
Free pyramid_mv_arr properly
Yunqing Wang [Fri, 18 Jan 2019 01:20:11 +0000 (01:20 +0000)]
Merge "Use longer test clips in y4m_test"
Yunqing Wang [Fri, 18 Jan 2019 01:19:56 +0000 (01:19 +0000)]
Merge "Use longer videos in end-to-end tests"
Chi Yo Tsai [Fri, 18 Jan 2019 00:34:37 +0000 (00:34 +0000)]
Merge "Add unit test for temporal filter on VP9"
Johann [Thu, 17 Jan 2019 18:06:21 +0000 (10:06 -0800)]
ads2gas: remove DO1STROUNDING
Change-Id: Iacd1ad5673c71d350cad235e504da0e066dfc4a0
chiyotsai [Wed, 16 Jan 2019 23:33:06 +0000 (15:33 -0800)]
Add unit speed test for vp9_apply_temporal_filter
This patch adds unit speed test for vp9_apply_temporal_filter.
BUG=webm:1591
Change-Id: I4792dfc6ecd4a82775b9a895a90aafdc2a199f86
chiyotsai [Wed, 16 Jan 2019 18:53:56 +0000 (10:53 -0800)]
Add unit test for temporal filter on VP9
The current unit tests for temporal filtering only tests single
channel version of temporal filter. Since VP9 currently uses both luma
and chroma channel information for temporal filtering on low bitdepth,
there is no unit case in this scenario.
This commit adds some basic unit tests to facilitate further development
on temporal filtering.
BUG=webm:1591
Change-Id: Id38ceba5305865d7148e9b2bc636acddae54d6c2
Jerome Jiang [Tue, 15 Jan 2019 23:02:39 +0000 (15:02 -0800)]
vp9: fix definition for VP9E_SET_POSTENCODE_DROP
(cherry picked from commit
24614dd9cb1ec6d5c946909ff17adf53d6aa2e54)
Change-Id: Ie763cf801107639ad11ad625408670d8d70b7628
Johann Koenig [Wed, 16 Jan 2019 05:06:59 +0000 (05:06 +0000)]
Merge "mips highbd: resolve missing declarations"
Johann Koenig [Wed, 16 Jan 2019 05:06:53 +0000 (05:06 +0000)]
Merge "mips: add rtcd.h to resolve missing declarations"
Jerome Jiang [Wed, 16 Jan 2019 00:16:15 +0000 (00:16 +0000)]
Merge "vp9: fix definition for VP9E_SET_POSTENCODE_DROP"
Jerome Jiang [Tue, 15 Jan 2019 23:02:39 +0000 (15:02 -0800)]
vp9: fix definition for VP9E_SET_POSTENCODE_DROP
Change-Id: I667be78eb7c41154bf44c242992f622f12c31b80
Marco Paniconi [Tue, 15 Jan 2019 23:02:18 +0000 (23:02 +0000)]
Merge "vp9-svc: Fix to buffer update under frame_drops"
Johann [Tue, 15 Jan 2019 22:22:24 +0000 (14:22 -0800)]
mips: add rtcd.h to resolve missing declarations
BUG=webm:1584
Change-Id: Ifdebf33356abcc6869f695d129165ba17e042dcd
Johann [Tue, 15 Jan 2019 22:23:59 +0000 (14:23 -0800)]
mips highbd: resolve missing declarations
BUG=webm:1584
Change-Id: I4cbfafe8ea72b3d4523aabcaed4848fa29bb19fe
Marco Paniconi [Tue, 15 Jan 2019 20:12:47 +0000 (12:12 -0800)]
vp9-svc: Fix to buffer update under frame_drops
For svc with frame dropping in full_superframe_drop or
constrained dropped mode: the buffer level for a given layer
may be capped from increasing too much. This is because that layer
may be dropped even though its buffer is stable (the dropped is forced
due to underflow in other layers in full/constrained svc-drop mode).
This capping is needed to prevent decrease in qp over consecutive
frame drops.
The capping already exists and has been used, but this change
introduce an error that prevented its usage:
https://chromium-review.googlesource.com/c/webm/libvpx/+/1330875
The fix here is to also cap the bits_off_target as well, since after
the change mentioned above, its the bits_off_target that is used to
update buffer on next frame (which in turn affects qp for next frame/layer).
Change-Id: Ifdab5d478e91cce20ecec51faa574eed375ee36b
chiyotsai [Sat, 3 Nov 2018 00:08:05 +0000 (17:08 -0700)]
Remove unnecessary calculation in 4-tap interpolation filter
Reduces the number of rows calculated for 2D 4-tap interpolation filter
from h+7 rows to h+3 rows.
Also fixes a bug in the avx2 function for 4-tap filters where the last
row is computed incorrectly.
Performance:
| Baseline | Result | Pct Gain |
bitdepth lo| 4.00 fps | 4.02 fps | 0.5% |
bitdepth 10| 1.90 fps | 1.91 fps | 0.5% |
The performance is evaluated on speed 1 on jets.y4m br 500 over 100
frames.
No BDBR loss is observed.
Change-Id: I90b0d4d697319b7bba599f03c5dc01abd85d13b1