]> granicus.if.org Git - libvpx/log
libvpx
6 years agovp9: address integer sanitizer warning
Johann [Fri, 3 Aug 2018 22:36:59 +0000 (15:36 -0700)]
vp9: address integer sanitizer warning

Comparing the size values with subtraction requires casting. Sort in
descending order.

(a < b) - (a > b)
If a is greater, this is 0 - 1 = -1
If the  values are equal, this is 0 - 0 = 0
If b is greater, this is 1 - 0 = 1

Change-Id: I5c20fd10fbc97c391c6858235c44d25d7db57f0e

6 years agoMerge "vpxenc: replace uint16 with uint16_t"
James Zern [Mon, 6 Aug 2018 19:24:31 +0000 (19:24 +0000)]
Merge "vpxenc: replace uint16 with uint16_t"

6 years agoMerge "vp9: new struct BEST_PICKMODE containing search results."
Jerome Jiang [Mon, 6 Aug 2018 16:57:00 +0000 (16:57 +0000)]
Merge "vp9: new struct BEST_PICKMODE containing search results."

6 years agovpxenc: replace uint16 with uint16_t
Mirko Bonadei [Sat, 4 Aug 2018 06:10:01 +0000 (23:10 -0700)]
vpxenc: replace uint16 with uint16_t

libyuv r1714 disables non-POSIX types by default:
55f5d91f Disable old int types by default.

Change-Id: Ia7086516b0d53d0ff3974e545d41f8b502aaec0d

6 years agovp9: Add screen-content mode to overshoot detection.
Marco Paniconi [Fri, 3 Aug 2018 17:45:41 +0000 (10:45 -0700)]
vp9: Add screen-content mode to overshoot detection.

For real-time 1 pass mode: overshoot detection and max_Q
reset should only be for screen-content mode.
This fixes some failures in the 1 pass VBR tests, from
the commit: 2fae9991

Change-Id: I70cbe4e6fd83cfe0c7662f13b779551bf4f319cb

6 years agoMerge "vp9: Adjust qp_thresh on slide change overshoot detection"
Marco Paniconi [Fri, 3 Aug 2018 17:28:57 +0000 (17:28 +0000)]
Merge "vp9: Adjust qp_thresh on slide change overshoot detection"

6 years agoMerge "Refactor vp9_full_pixel_search()"
Hui Su [Fri, 3 Aug 2018 17:11:15 +0000 (17:11 +0000)]
Merge "Refactor vp9_full_pixel_search()"

6 years agoMerge "Handle partition cost better in RD search"
Hui Su [Fri, 3 Aug 2018 17:11:00 +0000 (17:11 +0000)]
Merge "Handle partition cost better in RD search"

6 years agovp9: Adjust qp_thresh on slide change overshoot detection
Marco Paniconi [Fri, 3 Aug 2018 16:20:55 +0000 (09:20 -0700)]
vp9: Adjust qp_thresh on slide change overshoot detection

For real-time screen-content mode: increase the
qp_thresh for max_Q setting on slide changes.
This will make bitrate spikes less likely on slide changes.

Change-Id: Ie13524a06490214456b1c9c042a864ea0d0750c5

6 years agovp9: Add zero_temp_sad count to scene detection.
Marco Paniconi [Fri, 3 Aug 2018 03:48:17 +0000 (20:48 -0700)]
vp9: Add zero_temp_sad count to scene detection.

For real-time screen-content mode: makes the
scene/slide change detection more robust.

Change-Id: I28d8d28b42bb92d527811f814bf14bbbbb53ab25

6 years agoMerge "vp9: Disable re_encode_overshoot feature for speed >= 6."
Marco Paniconi [Fri, 3 Aug 2018 03:21:12 +0000 (03:21 +0000)]
Merge "vp9: Disable re_encode_overshoot feature for speed >= 6."

6 years agovp9: Increase min_thresh for slide change detection
Marco Paniconi [Thu, 2 Aug 2018 22:58:12 +0000 (15:58 -0700)]
vp9: Increase min_thresh for slide change detection

For real-time screen-content mode: increase min_thresh
to avoid some false detection.

Change-Id: I3e93dea63cbd65e3ad5d0af7eabf0d3686fe9943

6 years agovp9: new struct BEST_PICKMODE containing search results.
Jerome Jiang [Thu, 2 Aug 2018 23:28:54 +0000 (16:28 -0700)]
vp9: new struct BEST_PICKMODE containing search results.

One of steps to refactor the nonrd pickmode. Simplify arguments list for
functions.

Change-Id: I5f23375caa36be2ae0fbd2ff851b303150a7aa8f

6 years agoRefactor vp9_full_pixel_search()
Hui Su [Thu, 2 Aug 2018 22:53:24 +0000 (15:53 -0700)]
Refactor vp9_full_pixel_search()

Code cleanup; add some comment.
Also remove a reduncant call to vp9_get_mvpred_var() at the end when
method is MESH.

Change-Id: I4b58e7e1c42161642708f8b0342ab3c0ce39ed7d

6 years agovp9: Disable re_encode_overshoot feature for speed >= 6.
Marco Paniconi [Thu, 2 Aug 2018 16:22:58 +0000 (09:22 -0700)]
vp9: Disable re_encode_overshoot feature for speed >= 6.

For real-time screen content mode: for speed >= 6 disable
the re_encode_overshoot feature. This means for speed >= 6
the Q and rate control is reset on slide changes based on
the scene/slide detection and the current Q (and not on a
first pass encoded frame at current Q).

This reduces encode time on slide changes, but may be less
accurate in deciding when to reset/max-out the Q.

Change-Id: Id0fdcafd55bc43bd8b3afee211e524f37c8ddce6

6 years agoMerge "vp9: Refactor nonrd pickmode: new mv search"
Jerome Jiang [Thu, 2 Aug 2018 16:50:44 +0000 (16:50 +0000)]
Merge "vp9: Refactor nonrd pickmode: new mv search"

6 years agoHandle partition cost better in RD search
Hui Su [Wed, 1 Aug 2018 22:43:05 +0000 (15:43 -0700)]
Handle partition cost better in RD search

Take partition cost into consideration during rectangular partition
mode search.

Compression change is neutral. Encoding speed can be a little faster
at low quality settings. With QP=55 at speed 0, average speed up over
15 midres sequences is about 2.7%.

Change-Id: I6d423459675b5f1e4e1475dbbf6f67ab970a4832

6 years agoMerge "vp9 svc: Adjust overshoot threshold in datarate test."
Jerome Jiang [Thu, 2 Aug 2018 02:55:58 +0000 (02:55 +0000)]
Merge "vp9 svc: Adjust overshoot threshold in datarate test."

6 years agoMerge "Use mesh full pixel motion search to build the source ARF"
Jingning Han [Thu, 2 Aug 2018 02:36:48 +0000 (02:36 +0000)]
Merge "Use mesh full pixel motion search to build the source ARF"

6 years agoMerge "Add frame pointer to support recon frames in tpl model"
Jingning Han [Thu, 2 Aug 2018 02:36:41 +0000 (02:36 +0000)]
Merge "Add frame pointer to support recon frames in tpl model"

6 years agoUse mesh full pixel motion search to build the source ARF
Jingning Han [Tue, 31 Jul 2018 16:43:17 +0000 (09:43 -0700)]
Use mesh full pixel motion search to build the source ARF

Append mesh search to the diamond shape search to refine
the full pixel motion estimation for source ARF generation.
It improves the average compression performance.

Speed 0
        avg PSNR     overall PSNR     SSIM
mid      -0.18%        -0.18%        -0.22%
hd       -0.25%        -0.23%        -0.36%
nflx2k   -0.22%        -0.23%        -0.37%

Speed 1
       avg PSNR     overall PSNR      SSIM
mid     -0.10%         -0.08%        -0.11%
hd      -0.25%         -0.27%        -0.38%
nflx2k  -0.20%         -0.20%        -0.34%

The additional encoding time is close to the sample noise
range. For bus_cif at 1000 kbps, the speed 0 encoding time
goes from 83.0 s -> 83.6 s.

Change-Id: I48647f50ec3e8f7ae4550a4bde831f569f46ecf3

6 years agovp9 svc: Adjust overshoot threshold in datarate test.
Jerome Jiang [Wed, 1 Aug 2018 17:40:25 +0000 (10:40 -0700)]
vp9 svc: Adjust overshoot threshold in datarate test.

BUG=webm:1554
Change-Id: I69f9353266a290ae3c6ac9e51c960fff6e1af205

6 years agovp9: Refactor nonrd pickmode: new mv search
Jerome Jiang [Wed, 1 Aug 2018 20:13:31 +0000 (13:13 -0700)]
vp9: Refactor nonrd pickmode: new mv search

Move new mv search to a separate function.

Change-Id: I6ef22d03ccad7b87cb5cd611094de204d508f63e

6 years agovp9: Refactor nonrd pickmode: interp filter.
Jerome Jiang [Tue, 31 Jul 2018 01:06:12 +0000 (18:06 -0700)]
vp9: Refactor nonrd pickmode: interp filter.

Move interp filter search to new function.

Change-Id: I6ac57d5b3800c9944732a84a4d4a825a6c0f4c35

6 years agovp9: Refactor nonrd pickmode: tx_size.
Jerome Jiang [Mon, 30 Jul 2018 23:42:46 +0000 (16:42 -0700)]
vp9: Refactor nonrd pickmode: tx_size.

Remove duplicated code to calculate transform size.

Change-Id: Id71772607eea911f24b59168c0629ba5ff891afb

6 years agoMerge "vp9 svc: Fix the scaling factor in intra only test for 1 SL."
Jerome Jiang [Wed, 1 Aug 2018 04:53:15 +0000 (04:53 +0000)]
Merge "vp9 svc: Fix the scaling factor in intra only test for 1 SL."

6 years agoMerge "vp9_encoder: make setup_tpl_stats() static"
James Zern [Wed, 1 Aug 2018 03:53:02 +0000 (03:53 +0000)]
Merge "vp9_encoder: make setup_tpl_stats() static"

6 years agovp9 svc: Fix the scaling factor in intra only test for 1 SL.
Jerome Jiang [Wed, 1 Aug 2018 03:27:38 +0000 (20:27 -0700)]
vp9 svc: Fix the scaling factor in intra only test for 1 SL.

Change-Id: I7f71c165f6d3a6d02229798286269389c3c5528c

6 years agoMerge "vp9: Clamp tx_size in model_rd_large"
Marco Paniconi [Wed, 1 Aug 2018 02:18:47 +0000 (02:18 +0000)]
Merge "vp9: Clamp tx_size in model_rd_large"

6 years agovp9_encoder: make setup_tpl_stats() static
James Zern [Wed, 1 Aug 2018 01:19:02 +0000 (18:19 -0700)]
vp9_encoder: make setup_tpl_stats() static

Change-Id: If96519fb1cb4963cb6548c803253359a35621eb0

6 years agovp9: Clamp tx_size in model_rd_large
Marco Paniconi [Tue, 31 Jul 2018 22:28:58 +0000 (15:28 -0700)]
vp9: Clamp tx_size in model_rd_large

For nonrd_pickmode: add clamp/check to make
sure tx_size is not set to lower than 8X8,
for the model_rd_large function (which is only
called for big block sizes).

No change in behavior.

Change-Id: I9c6093068e406ac16cfd6784ba75868906225378

6 years agovp9: enable tpl model in high-bitdepth w/8-bit output
James Zern [Tue, 31 Jul 2018 22:26:16 +0000 (15:26 -0700)]
vp9: enable tpl model in high-bitdepth w/8-bit output

this keeps the output between CONFIG_VP9_HIGHBITDEPTH=0/1 the same when
targeting 8-bit.

Change-Id: I5290681fdd3e0c1620578e5f804f68010c6dd210

6 years agoMerge "vp9: Disable aq mode for some datarate tests."
Jerome Jiang [Tue, 31 Jul 2018 19:50:01 +0000 (19:50 +0000)]
Merge "vp9: Disable aq mode for some datarate tests."

6 years agovp9: Disable aq mode for some datarate tests.
Jerome Jiang [Tue, 31 Jul 2018 17:45:50 +0000 (10:45 -0700)]
vp9: Disable aq mode for some datarate tests.

It caused failure on vp9 datarate tests for temporal layers.

Change-Id: Id6e260efa33b3b08070391a91a013efef2706fb5

6 years agovp9: Remove assert from model_rd in non-rd pickmode.
Marco Paniconi [Tue, 31 Jul 2018 16:33:40 +0000 (09:33 -0700)]
vp9: Remove assert from model_rd in non-rd pickmode.

The assert checks for tx_size >= 8x8, but 4x4 can
be set in some cases.

Change-Id: I8bf9683e1add768becaa1208e1709ad0470e3850

6 years agoAdd frame pointer to support recon frames in tpl model
Jingning Han [Fri, 27 Jul 2018 22:08:39 +0000 (15:08 -0700)]
Add frame pointer to support recon frames in tpl model

Add frame pointer to re-use spare frames to store the reconstructed
frames.

Change-Id: I870aa048fc9b7d8b356aa73df3a92b4670425f95

6 years agoMerge changes Ibafb6157,Ibebced5d
Jingning Han [Tue, 31 Jul 2018 04:11:45 +0000 (04:11 +0000)]
Merge changes Ibafb6157,Ibebced5d

* changes:
  Move frame pointer assignment outside block loop in tpl model
  Refactor tpl_model_store input parameters

6 years agoMerge "test/stress.sh: add --token-parts coverage for vp8"
James Zern [Tue, 31 Jul 2018 03:08:55 +0000 (03:08 +0000)]
Merge "test/stress.sh: add --token-parts coverage for vp8"

6 years agoMerge "vp9: Add scene change detection flag to cyclic refresh setup"
Marco Paniconi [Tue, 31 Jul 2018 03:06:42 +0000 (03:06 +0000)]
Merge "vp9: Add scene change detection flag to cyclic refresh setup"

6 years agoMove frame pointer assignment outside block loop in tpl model
Jingning Han [Fri, 27 Jul 2018 18:15:06 +0000 (11:15 -0700)]
Move frame pointer assignment outside block loop in tpl model

Change-Id: Ibafb61577a6293c6ad32bda484a786602afda2e6

6 years agoRefactor tpl_model_store input parameters
Jingning Han [Fri, 27 Jul 2018 17:10:33 +0000 (10:10 -0700)]
Refactor tpl_model_store input parameters

Simplify the pass-in data structure. Use a reference TplDepStats
pointer to replace multiple data sent in.

Change-Id: Ibebced5d7f411d2c4a8a34a9b7eb87453fb78d13

6 years agovp9: Add scene change detection flag to cyclic refresh setup
Marco Paniconi [Mon, 30 Jul 2018 21:32:54 +0000 (14:32 -0700)]
vp9: Add scene change detection flag to cyclic refresh setup

Disable cyclic refresh on slide/scene change frame. It was already
disabled on the re-encode for the slide change, but this change
makes sure its always disabled on a detected slide change (which
may not be re-encoded at high Q).

Change-Id: I1195c855bca25985d4d41e5b657adf124e901760

6 years agoMerge "Use diamond search to build tpl model and arf frames"
Jingning Han [Tue, 31 Jul 2018 00:57:14 +0000 (00:57 +0000)]
Merge "Use diamond search to build tpl model and arf frames"

6 years agoMerge "Enable aq mode 3 for all datarate tests."
Jerome Jiang [Mon, 30 Jul 2018 23:56:06 +0000 (23:56 +0000)]
Merge "Enable aq mode 3 for all datarate tests."

6 years agoMerge "vp8: Fix memory address overflow in decoder."
Jerome Jiang [Mon, 30 Jul 2018 23:27:59 +0000 (23:27 +0000)]
Merge "vp8: Fix memory address overflow in decoder."

6 years agoEnable aq mode 3 for all datarate tests.
Jerome Jiang [Mon, 30 Jul 2018 20:07:23 +0000 (13:07 -0700)]
Enable aq mode 3 for all datarate tests.

Change-Id: I4e9c73d6d1d9ea560f04cc37aaf99d58ec2ab551

6 years agoMerge "Remove unused variables from VP9_COMP"
Jingning Han [Sun, 29 Jul 2018 13:58:13 +0000 (13:58 +0000)]
Merge "Remove unused variables from VP9_COMP"

6 years agoarm: Consistently use unified syntax for asm
Martin Storsjo [Sat, 28 Jul 2018 05:02:27 +0000 (08:02 +0300)]
arm: Consistently use unified syntax for asm

The ".syntax unified" directives in a few source files aren't valid
ADS assembly directives, and they break compilation for windows,
since ads2armasm_ms.pl doesn't handle them.

Explicity add them via ads2gas.pl and ads2gas_apple.pl instead,
and tweak one instruction to be valid unified syntax.

Change-Id: I37f1709f163d11474597161fe02eb433859cb9b8

6 years agotest/stress.sh: add --token-parts coverage for vp8
James Zern [Sat, 28 Jul 2018 06:37:38 +0000 (23:37 -0700)]
test/stress.sh: add --token-parts coverage for vp8

Change-Id: I46f39cbc0441d09f5ad0b3887d2372b0be9abd4f

6 years agoMerge "Remove an extra vp9_encode_frame call"
Angie Chiang [Sat, 28 Jul 2018 01:06:58 +0000 (01:06 +0000)]
Merge "Remove an extra vp9_encode_frame call"

6 years agoRemove unused variables from VP9_COMP
Jingning Han [Fri, 27 Jul 2018 22:25:56 +0000 (15:25 -0700)]
Remove unused variables from VP9_COMP

Change-Id: I3bdd44e65b56c7600b9faadd2c117138c3911c14

6 years agoUse diamond search to build tpl model and arf frames
Jingning Han [Thu, 26 Jul 2018 23:41:55 +0000 (16:41 -0700)]
Use diamond search to build tpl model and arf frames

Use diamond search for full pixel motion estimation to build
the temporal dependency model and the source arf frame. This gives
better full pixel motion estimation accuracy. It improves the
compression performance.

In speed 0,
         avg PSNR     overall PSNR     SSIM
midres    -0.32%        -0.30%        -0.65%
hdres     -0.88%        -0.91%        -1.31%
nflx2k    -0.47%        -0.48%        -0.81%

In speed 1,
        avg PSNR      overall PSNR     SSIM
midres    -0.24%        -0.28%        -0.50%
hdres     -0.82%        -0.83%        -1.18%
nflx2k    -0.58%        -0.60%        -0.89%

The encoding speed change is minor due to the fact that such motion
estimation is triggered once at the beginning of each group of
picture coding.

Change-Id: Ib25c0ff4f7450c85fd7a38d24319bd7ae1b9dac8

6 years agoMerge "Add New Neon Assemblies for Motion Compensation"
Harish Mahendrakar [Fri, 27 Jul 2018 17:48:21 +0000 (17:48 +0000)]
Merge "Add New Neon Assemblies for Motion Compensation"

6 years agoRemove an extra vp9_encode_frame call
Angie Chiang [Thu, 26 Jul 2018 21:14:19 +0000 (14:14 -0700)]
Remove an extra vp9_encode_frame call

The coding performances drop slightly in speed 0
lowres 0.021%
midres 0.043%
hdres 0.087%

The speedups in speed 0 are observed as follow
city_cif.y4m 4.5% speedup
pamphlet.y4m 6.9% speedup

Change-Id: I2f6209964ffdf7a93919b79033d8e6f9bc44d824

6 years agoMerge "vp9: release frame buffer on key frame."
Jerome Jiang [Fri, 27 Jul 2018 17:31:35 +0000 (17:31 +0000)]
Merge "vp9: release frame buffer on key frame."

6 years agoMerge "vp9: 4x4 tx_size for nonrd-pickmode for screen content"
Marco Paniconi [Fri, 27 Jul 2018 06:02:34 +0000 (06:02 +0000)]
Merge "vp9: 4x4 tx_size for nonrd-pickmode for screen content"

6 years agovp9: 4x4 tx_size for nonrd-pickmode for screen content
Marco Paniconi [Thu, 26 Jul 2018 21:06:42 +0000 (14:06 -0700)]
vp9: 4x4 tx_size for nonrd-pickmode for screen content

Force 4x4 transform size under some conditions for real-time
screen-content mode. Improvemet on text in some screen clips.

Change-Id: I77cafa23ea1060ef4334dc07eac53189bf80e0ec

6 years agovp9: release frame buffer on key frame.
Jerome Jiang [Tue, 17 Jul 2018 00:47:44 +0000 (17:47 -0700)]
vp9: release frame buffer on key frame.

Add tests with corrupted frames and periodic key frames.

BUG=webm:1545

Change-Id: Ic0684bdafd01507036f56465387b9d2187b1458e

6 years agoMerge "Fix multi-thread encoder result test"
Hui Su [Fri, 27 Jul 2018 02:19:58 +0000 (02:19 +0000)]
Merge "Fix multi-thread encoder result test"

6 years agoFix multi-thread encoder result test
Hui Su [Thu, 26 Jul 2018 23:10:08 +0000 (16:10 -0700)]
Fix multi-thread encoder result test

Fix multi-thread encoder result test induced by
the prune_ref_frame_for_rect_partitions speed feature.

BUG=webm:1552

Change-Id: Idc3b3759651f76285ffd90059c6a2846c4d91a00

6 years agoAdd New Neon Assemblies for Motion Compensation
Venkatarama NG. Avadhani [Mon, 25 Jun 2018 03:23:23 +0000 (08:53 +0530)]
Add New Neon Assemblies for Motion Compensation

Commit adds neon assemblies for motion compensation which show an improvement
over the existing neon code.

Performance Improvement -

Platform        Resolution      1 Thread        4 Threads
Nexus 6         720p            12.16%          7.21%
@2.65 GHz       1080p           18.00%          15.28%

Change-Id: Ic0b0412eeb01c8317642b20bb99092c2f5baba37

6 years agoMove CONFIG_SIZE_LIMIT check in yv12config.c.
Tom Finegan [Thu, 26 Jul 2018 20:54:41 +0000 (13:54 -0700)]
Move CONFIG_SIZE_LIMIT check in yv12config.c.

Avoids a C90 compile error.

BUG=webm:1551

Change-Id: Iee0f208de053c2a399aafa015d370c0496878816

6 years agoMerge "vpxdec: only call row-mt control for vp9"
Harish Mahendrakar [Thu, 26 Jul 2018 19:57:53 +0000 (19:57 +0000)]
Merge "vpxdec: only call row-mt control for vp9"

6 years agovpxdec: only call row-mt control for vp9
Harish Mahendrakar [Wed, 25 Jul 2018 19:46:32 +0000 (12:46 -0700)]
vpxdec: only call row-mt control for vp9

BUG=webm:1549
Change-Id: Ib31b22f0d982e3a7c6a200274582cda7528d1ec9

6 years agoMerge "vp9: fix OOB read in decoder_peek_si_internal"
James Zern [Thu, 26 Jul 2018 05:15:34 +0000 (05:15 +0000)]
Merge "vp9: fix OOB read in decoder_peek_si_internal"

6 years agoMerge "vp9: Modify condition for force test of intra"
Marco Paniconi [Thu, 26 Jul 2018 04:47:30 +0000 (04:47 +0000)]
Merge "vp9: Modify condition for force test of intra"

6 years agoMerge "Clean up get_overlap_area function"
Jingning Han [Thu, 26 Jul 2018 03:53:22 +0000 (03:53 +0000)]
Merge "Clean up get_overlap_area function"

6 years agoMerge "Factor out mode estimation process in tpl model build"
Jingning Han [Thu, 26 Jul 2018 03:53:11 +0000 (03:53 +0000)]
Merge "Factor out mode estimation process in tpl model build"

6 years agovp9: Modify condition for force test of intra
Marco Paniconi [Thu, 26 Jul 2018 00:51:35 +0000 (17:51 -0700)]
vp9: Modify condition for force test of intra

For real-time/nonrd_pickmode: under some conditions
force check of intra modes for flat blocks with motion.
Reduces artifacts for screen-content mode.

Change-Id: If320f41a90982b14c48d91150f59f048a62982b1

6 years agovp9: Avoid early breakout on slide change
Marco Paniconi [Thu, 26 Jul 2018 00:27:24 +0000 (17:27 -0700)]
vp9: Avoid early breakout on slide change

For real-time screen content: don't allow early
breakout in nonrd-pickmode on slide change.
Avoid artifacts.

Change-Id: I09c6927a5d85b46ce059ea5954a3719a7362fb99

6 years agovp9: fix OOB read in decoder_peek_si_internal
James Zern [Wed, 25 Jul 2018 04:36:50 +0000 (21:36 -0700)]
vp9: fix OOB read in decoder_peek_si_internal

Profile 1 or 3 bitstreams may require 11 bytes for the header in the
intra-only case.

Additionally add a check on the bit reader's error handler callback to
ensure it's non-NULL before calling to avoid future regressions.

This has existed since at least (pre-1.4.0):
09bf1d61c Changes hdr for profiles > 1 for intraonly frames

BUG=webm:1543

Change-Id: I23901e6e3a219170e8ea9efecc42af0be2e5c378

6 years agoMerge "Revert "vp9: Adjust reset segment for real-time screen-content""
Marco Paniconi [Wed, 25 Jul 2018 21:19:41 +0000 (21:19 +0000)]
Merge "Revert "vp9: Adjust reset segment for real-time screen-content""

6 years agoMerge "Fix typos in txfm_rd_in_plane()"
Hui Su [Wed, 25 Jul 2018 19:29:06 +0000 (19:29 +0000)]
Merge "Fix typos in txfm_rd_in_plane()"

6 years agoRevert "vp9: Adjust reset segment for real-time screen-content"
Marco Paniconi [Wed, 25 Jul 2018 18:23:25 +0000 (18:23 +0000)]
Revert "vp9: Adjust reset segment for real-time screen-content"

This reverts commit d72cd51d83947064ef6354f02b1df59d2d3f1317.

Reason for revert: <INSERT REASONING HERE>
Doesn't seem to really remove the artifact that was the cause for this change. Reverting for now.

Original change's description:
> vp9: Adjust reset segment for real-time screen-content
>
> For real-time screen content mode when the short_circuit
> flat_blocks feauture is enabled: reset segment to 0 for
> coding block if its flat, regardless of temporal source_sad.
> Reduces some artifacts on flat areas.
>
> Change-Id: I9620e424bedc5a13f87cc4f66af7c0e86043c89c

TBR=marpan@google.com,builds@webmproject.org,jianj@google.com

# Not skipping CQ checks because original CL landed > 1 day ago.

Change-Id: I83ee9fd75bfb621a4f3e9afbcc07e7c6ca5c51d6

6 years agoMerge "Improve help message for arnr-type"
Yaowu Xu [Wed, 25 Jul 2018 17:21:26 +0000 (17:21 +0000)]
Merge "Improve help message for arnr-type"

6 years agoClean up get_overlap_area function
Jingning Han [Wed, 25 Jul 2018 15:14:43 +0000 (08:14 -0700)]
Clean up get_overlap_area function

Remove unneeded variable definition.

Change-Id: Ifc8097b249acee86301e2040df8d39ecaca5ab17

6 years agoMerge "VPX: avg_intrin_sse2.c, avg_intrin_avx2.c cleanup"
Scott LaVarnway [Wed, 25 Jul 2018 10:45:46 +0000 (10:45 +0000)]
Merge "VPX: avg_intrin_sse2.c, avg_intrin_avx2.c cleanup"

6 years agoMerge "Limit min Q for normal frames."
Paul Wilkins [Wed, 25 Jul 2018 08:23:33 +0000 (08:23 +0000)]
Merge "Limit min Q for normal frames."

6 years agoFactor out mode estimation process in tpl model build
Jingning Han [Wed, 25 Jul 2018 05:56:13 +0000 (22:56 -0700)]
Factor out mode estimation process in tpl model build

Use standalone function to process the mode search and rd cost
estimate for a given coding block.

Change-Id: I77cdbded43966c4546e5407ae318129d89d888a4

6 years agoMerge "vp9: Fix to the segment weight for cyclic refresh."
Marco Paniconi [Wed, 25 Jul 2018 03:55:51 +0000 (03:55 +0000)]
Merge "vp9: Fix to the segment weight for cyclic refresh."

6 years agoMerge "vp9: Modify logic for flat blocks in nonrd-pickmode."
Marco Paniconi [Wed, 25 Jul 2018 03:33:02 +0000 (03:33 +0000)]
Merge "vp9: Modify logic for flat blocks in nonrd-pickmode."

6 years agoImprove help message for arnr-type
Yaowu Xu [Wed, 25 Jul 2018 00:18:08 +0000 (17:18 -0700)]
Improve help message for arnr-type

BUG=webm:1346

Change-Id: Ia6c1cee3704a6b44515d883b4d0632ac567bc9a2

6 years agoFix typos in txfm_rd_in_plane()
Hui Su [Tue, 24 Jul 2018 23:55:46 +0000 (16:55 -0700)]
Fix typos in txfm_rd_in_plane()

Change-Id: I1c62e51f5ccd33ff74abc3385410525bcae2fedd

6 years agovp9: Modify logic for flat blocks in nonrd-pickmode.
Marco Paniconi [Tue, 24 Jul 2018 18:34:42 +0000 (11:34 -0700)]
vp9: Modify logic for flat blocks in nonrd-pickmode.

For real-time screen content mode: when slide change
is detected, for spatially flat blocks (source_variance = 0) on
the re-encoded frame, skip inter modes (so force intra) if
non-zero temporal variance is detected for the coding block.
Add flag to keep track of re-encoded frame at max Q.
Reduces artifacts on slide change.

Change-Id: I28151f412aba6ab8cb03f30087c7ce16d443654b

6 years agoCheck size limit in vpx_realloc_frame_buffer.
Wan-Teh Chang [Tue, 24 Jul 2018 19:14:54 +0000 (12:14 -0700)]
Check size limit in vpx_realloc_frame_buffer.

If CONFIG_SIZE_LIMIT is defined, vpx_realloc_frame_buffer should fail if
width or height is too big.

This carries over commit ebc2714d71a834fc32a19eef0a81f51fbc47db01 of
libaom: https://aomedia-review.googlesource.com/c/aom/+/65521

Change-Id: Id7645c5cefbe1847714695d41f506ff30ea985f6

6 years agoVPX: avg_intrin_sse2.c, avg_intrin_avx2.c cleanup
Scott LaVarnway [Tue, 24 Jul 2018 12:29:55 +0000 (05:29 -0700)]
VPX: avg_intrin_sse2.c, avg_intrin_avx2.c cleanup

Change-Id: I710b66dc571a6bd38fbcc2528486d5e028a68b37

6 years agoMerge "VPX: Improve HBD vpx_hadamard_32x32_avx2()"
Scott LaVarnway [Tue, 24 Jul 2018 12:11:37 +0000 (12:11 +0000)]
Merge "VPX: Improve HBD vpx_hadamard_32x32_avx2()"

6 years agoLimit min Q for normal frames.
Paul Wilkins [Tue, 24 Jul 2018 08:56:25 +0000 (09:56 +0100)]
Limit min Q for normal frames.

This patch limits the active min Q for normal frames based on the previous
KF/GF/ARF. In a few cases, especially at the end of a clip where there
has been systemic underspend, (as is often the case with slide shows),
this prevents the encoder rapidly dropping Q on normal frames (just to
try and use up bits), such that they end up with a lower Q than the key
frame / GF / ARF off which they key.

Change-Id: Ic8def5c0d1e37ca2202e007ec1d13e501c0a91dd

6 years agoMerge "vp9: Adjust reset segment for real-time screen-content"
Marco Paniconi [Tue, 24 Jul 2018 06:47:54 +0000 (06:47 +0000)]
Merge "vp9: Adjust reset segment for real-time screen-content"

6 years agovp9: Adjust reset segment for real-time screen-content
Marco Paniconi [Mon, 23 Jul 2018 23:24:15 +0000 (16:24 -0700)]
vp9: Adjust reset segment for real-time screen-content

For real-time screen content mode when the short_circuit
flat_blocks feauture is enabled: reset segment to 0 for
coding block if its flat, regardless of temporal source_sad.
Reduces some artifacts on flat areas.

Change-Id: I9620e424bedc5a13f87cc4f66af7c0e86043c89c

6 years agoMerge "Add prune_ref_frame_for_rect_partitions feature"
Hui Su [Tue, 24 Jul 2018 02:41:25 +0000 (02:41 +0000)]
Merge "Add prune_ref_frame_for_rect_partitions feature"

6 years agoMerge "Pass in block size for motion search function"
Jingning Han [Tue, 24 Jul 2018 02:36:37 +0000 (02:36 +0000)]
Merge "Pass in block size for motion search function"

6 years agoMerge "Make the tpl model update operated in 8x8 block unit"
Jingning Han [Tue, 24 Jul 2018 02:36:27 +0000 (02:36 +0000)]
Merge "Make the tpl model update operated in 8x8 block unit"

6 years agoMerge "Refactor overlap area computation"
Jingning Han [Tue, 24 Jul 2018 02:36:22 +0000 (02:36 +0000)]
Merge "Refactor overlap area computation"

6 years agoMerge "Map coding block size to transform block size"
Jingning Han [Tue, 24 Jul 2018 02:36:15 +0000 (02:36 +0000)]
Merge "Map coding block size to transform block size"

6 years agoMerge "Refactor tpl model update function"
Jingning Han [Tue, 24 Jul 2018 02:36:10 +0000 (02:36 +0000)]
Merge "Refactor tpl model update function"

6 years agoMerge "Scale the distortion mectric with tx size"
Jingning Han [Tue, 24 Jul 2018 02:36:04 +0000 (02:36 +0000)]
Merge "Scale the distortion mectric with tx size"

6 years agoVPX: Improve HBD vpx_hadamard_32x32_avx2()
Scott LaVarnway [Mon, 23 Jul 2018 21:18:52 +0000 (14:18 -0700)]
VPX: Improve HBD vpx_hadamard_32x32_avx2()

~14% improvement.

BUG=webm:1546

Change-Id: I0b25f62f053e13c2185e4e8bd54e52250251efd0

6 years agoPass in block size for motion search function
Jingning Han [Mon, 23 Jul 2018 21:30:22 +0000 (14:30 -0700)]
Pass in block size for motion search function

Use parameter block size to control the motion estimation function
in tpl model building.

Change-Id: I4d9ec28aa15d0fb51a94aacd9bd50810add7ce29

6 years agoMake the tpl model update operated in 8x8 block unit
Jingning Han [Mon, 23 Jul 2018 06:00:39 +0000 (23:00 -0700)]
Make the tpl model update operated in 8x8 block unit

Store and update the temporal dependency model in the unit of
8x8 block.

Change-Id: Ic580495242b51db9beaf38dae67968cbd212be4d