platform/upstream/libvpx.git
5 years agoFix a bug in best RD cost updating
sdeng [Tue, 4 Jun 2019 20:54:18 +0000 (13:54 -0700)]
Fix a bug in best RD cost updating

This CL fixed a bug that sometimes we calculate the best rd cost using
uninitialized rd_div. This CL also includes a small refactoring of
rd_pick_partition().

Speed change: (the smaller the better)
 Performance counter stats for './vpxenc park_joy_480p.y4m --limit=50
 -o output.webm':

with this CL:       297,086,181,136      instructions:u
without this CL:    299,285,835,104      instructions:u

Quality change: (negative is better)
          avg_psnr ovr_psnr  ssim
(low_res)  0.007     0.005  -0.002
(mid_res)  0.022     0.028   0.007
(hd_res)  -0.008    -0.003  -0.014

Change-Id: I8924d8426364304212bcef3aba13346783e6f1a8

5 years agoMerge "Hierarchical rdmult scaling when tune=ssim"
Sai Deng [Tue, 4 Jun 2019 16:10:51 +0000 (16:10 +0000)]
Merge "Hierarchical rdmult scaling when tune=ssim"

5 years agoHierarchical rdmult scaling when tune=ssim
sdeng [Sat, 1 Jun 2019 00:25:09 +0000 (17:25 -0700)]
Hierarchical rdmult scaling when tune=ssim

Use different lagrangian multiplier scaling factor for different block
size. The blocks whose sizes are less than 16x16 share the same multiplier
of their parent block.

The additional gains/loss on top of the tune=ssim are:
Data Set   Overall PSNR   SSIM    MS-SSIM
Lowres         2.918     -3.691   -2.596
Midres         1.708     -2.656   -2.624
HDres          1.619     -2.496   -2.391
Midres_10bd    1.518     -3.263   -3.561

The overall gains/loss comparing to tune=psnr are:
Data Set   Overall PSNR   SSIM    MS-SSIM
Lowres         5.583     -6.208   -4.978
Midres         4.024     -5.610   -6.411
HDres          4.102     -6.614   -7.457
Midres_10bd    4.647     -7.181   -8.614

Change-Id: I0e6c5008488734e979b2dacde9fc2a17f3aa620f

5 years agoMerge "Remove unused func for CONFIG_REALTIME_ONLY"
Jerome Jiang [Mon, 3 Jun 2019 19:54:28 +0000 (19:54 +0000)]
Merge "Remove unused func for CONFIG_REALTIME_ONLY"

5 years agoRemove unused func for CONFIG_REALTIME_ONLY
Jerome Jiang [Mon, 3 Jun 2019 17:11:34 +0000 (10:11 -0700)]
Remove unused func for CONFIG_REALTIME_ONLY

Change-Id: I503e147e20e5b69b910c425d169e59821874f627

5 years agoMerge changes I7b1d1482,I01588758,I6f17864e
Sai Deng [Mon, 3 Jun 2019 16:19:06 +0000 (16:19 +0000)]
Merge changes I7b1d1482,I01588758,I6f17864e

* changes:
  Update rdcost using the rd_mult in current block
  Use distortion and rate of best_rd as the params
  Use distortion and rate recursively in rd_pick_partition()

5 years agoUpdate rdcost using the rd_mult in current block
sdeng [Fri, 31 May 2019 22:11:53 +0000 (15:11 -0700)]
Update rdcost using the rd_mult in current block

This CL is a preparation for implementing hierarchical SSIM rdmult scaling.
There is very little impact on metrics and speed:
       avg_psnr ovr_psnr  ssim
midres   0.009   0.009   0.015

perf stat -e instructions:u ./vpxenc park_joy_480p.y4m --limit=50
with this cl: 317,722,808,461
before:       317,700,108,619

Change-Id: I7b1d1482ac69f7bc87065a93223a0274bcbe8ce3

5 years agoUse distortion and rate of best_rd as the params
sdeng [Fri, 31 May 2019 21:35:02 +0000 (14:35 -0700)]
Use distortion and rate of best_rd as the params

Also added rd calculation for negative rates and distortions.
This CL is a preparation for implementing hierarchical SSIM rdmult scaling.

Little impact on quality and speed:
            avg_psnr  ovr_psnr   ssim
(mid_res)    -0.015    -0.009   -0.018

perf stat -e instructions:u ./vpxenc park_joy_480p.y4m --limit=50
with this cl: 317,700,108,619
before:       317,669,279,763

Change-Id: I01588758b7be2aab32236440ec0e57d7af56e920

5 years agoMerge "Remove RD code for CONFIG_REALTIME_ONLY in vp9."
Jerome Jiang [Sat, 1 Jun 2019 00:07:27 +0000 (00:07 +0000)]
Merge "Remove RD code for CONFIG_REALTIME_ONLY in vp9."

5 years agoRemove RD code for CONFIG_REALTIME_ONLY in vp9.
Jerome Jiang [Fri, 31 May 2019 16:41:14 +0000 (09:41 -0700)]
Remove RD code for CONFIG_REALTIME_ONLY in vp9.

This reduces vp9 only binary size by ~5.7%.

Change-Id: I57e46baf591d68b0a0cecbc9319a1190df8b0457

5 years agoUse distortion and rate recursively in rd_pick_partition()
sdeng [Fri, 31 May 2019 20:10:08 +0000 (13:10 -0700)]
Use distortion and rate recursively in rd_pick_partition()

This CL is a preparation for implementing hierarchical SSIM rdmult scaling,
There is very little impact on metrics and speed:
       avg_psnr ovr_psnr  ssim
midres   -0.04   0.005    0.012

perf stat -e instructions:u ./vpxenc park_joy_480p.y4m --limit=50
with this cl: 317,669,279,763
before:       317,717,562,045

Change-Id: I6f17864e7b17aad06a04ae4f470f75e975549db9

5 years agolibvpx,vp9_datarate_test: drop one-pass vod mode
James Zern [Thu, 30 May 2019 22:22:58 +0000 (15:22 -0700)]
libvpx,vp9_datarate_test: drop one-pass vod mode

this test is only useful for realtime mode testing given the number of
frames and that one-pass vod has never been a primary focus for
development.

BUG=webm:1512

Change-Id: I23208393a5fcc5bcf9b267fab4b0d1aad500918a

5 years agoMerge "added error logging to video_writer.c similar to video_reader.c"
Aidan Welch [Thu, 30 May 2019 01:50:10 +0000 (01:50 +0000)]
Merge "added error logging to video_writer.c similar to video_reader.c"

5 years agoMerge "remove unused svc exports"
Johann Koenig [Wed, 29 May 2019 22:16:48 +0000 (22:16 +0000)]
Merge "remove unused svc exports"

5 years agoadded error logging to video_writer.c similar to video_reader.c
Aidan Welch [Tue, 28 May 2019 04:46:00 +0000 (00:46 -0400)]
added error logging to video_writer.c similar to video_reader.c

Change-Id: Ib56b3e309113574a69ae09db1ee5b0fcc14ebe88

5 years agoremove unused svc exports
Johann [Tue, 21 May 2019 21:15:18 +0000 (14:15 -0700)]
remove unused svc exports

The spatial svc implementation has moved outside the library:
commit ed8f189cccda9168fd400d1ba6661b1bc14a3afa
  Refactor: move svc example files to from vpx/ to  examples/

BUG=webm:1629

Change-Id: I31c3ae7b20a6bd50615d1d6e48d4f93beca939e6

5 years agoMerge "Fix calculations in GF only group case"
Deepa K G [Wed, 29 May 2019 08:02:07 +0000 (08:02 +0000)]
Merge "Fix calculations in GF only group case"

5 years agoMerge "Increase the bits allocated to key frame"
Deepa K G [Wed, 29 May 2019 08:01:23 +0000 (08:01 +0000)]
Merge "Increase the bits allocated to key frame"

5 years agoMerge "vp9-rtc: Update overshoot_detection speed feature"
Marco Paniconi [Tue, 28 May 2019 15:32:10 +0000 (15:32 +0000)]
Merge "vp9-rtc: Update overshoot_detection speed feature"

5 years agoMerge "Fix section intra rating for first ARF interval"
Paul Wilkins [Tue, 28 May 2019 10:40:48 +0000 (10:40 +0000)]
Merge "Fix section intra rating for first ARF interval"

5 years agovp9-rtc: Update overshoot_detection speed feature
Marco Paniconi [Fri, 24 May 2019 17:32:08 +0000 (10:32 -0700)]
vp9-rtc: Update overshoot_detection speed feature

Keep the overshoot_detection_cbr_rt to the fast mode
(FAST_DETECTION_MAXQ), except for low-resoln at speed 5,
for non-screen content.

The increase in encode time (from using the more accurate
RE_ENCODE_MAXQ) is acceptable for speed 5 at low resoln.

Change-Id: I3089d1505553154ef046056465bc18130f7bd55a

5 years agoFix calculations in GF only group case
Deepa K G [Mon, 27 May 2019 12:32:00 +0000 (18:02 +0530)]
Fix calculations in GF only group case

- Fix the number of frames considered in calculation of
  twopass active worst quality. For GF only group, frames
  considered should be one less than baseline gf interval
  accounting for the golden frame.
- Fix in calculation of normal_frames. As baseline gf
  interval includes the golden frame, the number of
  normal frames should be one less than baseline gf
  interval.

Change-Id: Ic752f7d13d23772687e2fa407698766b3fdf5c67

5 years agoMerge "Revert "Fix calculations in GF only group case""
James Zern [Sat, 25 May 2019 23:41:30 +0000 (23:41 +0000)]
Merge "Revert "Fix calculations in GF only group case""

5 years agoRevert "Fix calculations in GF only group case"
James Zern [Sat, 25 May 2019 19:55:35 +0000 (19:55 +0000)]
Revert "Fix calculations in GF only group case"

This reverts commit c87ff4a09ddf50152918c127eebf11e3a6ef7b1e.

Reason for revert: causes division by zero

Original change's description:
> Fix calculations in GF only group case
>
> - Fix the number of frames considered in calculation of
>   twopass active worst quality. For GF only group, frames
>   considered should be one less than baseline gf interval
>   accounting for the golden frame.
> - Fix in calculation of normal_frames. As baseline gf
>   interval includes the golden frame, the number of
>   normal frames should be one less than baseline gf
>   interval.
>
> Change-Id: I6c0cd0a39db23586fc390a6fba5d7aebc0dfce08

Change-Id: I522da652587ae7ca4177f6d4bb9f72abcff35637

5 years agoMerge "Increase active best quality linearly"
Jingning Han [Fri, 24 May 2019 16:35:27 +0000 (16:35 +0000)]
Merge "Increase active best quality linearly"

5 years agoMerge "Fix calculations in GF only group case"
Paul Wilkins [Fri, 24 May 2019 15:38:56 +0000 (15:38 +0000)]
Merge "Fix calculations in GF only group case"

5 years agoMerge "Exclude VP9 files from vpx_dsp.mk for VP8 build"
Venkatarama Avadhani [Fri, 24 May 2019 05:22:16 +0000 (05:22 +0000)]
Merge "Exclude VP9 files from vpx_dsp.mk for VP8 build"

5 years agoMerge "Clamp for min_frame_target"
Jingning Han [Wed, 22 May 2019 16:42:54 +0000 (16:42 +0000)]
Merge "Clamp for min_frame_target"

5 years agoExclude VP9 files from vpx_dsp.mk for VP8 build
Venkatarama NG. Avadhani [Wed, 8 May 2019 14:23:58 +0000 (19:53 +0530)]
Exclude VP9 files from vpx_dsp.mk for VP8 build

Change-Id: Ifab64a783c205cc79b841a3f77fb77b156b23b23

5 years agoClamp for min_frame_target
Jingning Han [Tue, 21 May 2019 23:47:24 +0000 (16:47 -0700)]
Clamp for min_frame_target

Apply the minimum frame size clamp for all applicable frames. This
avoids bit-rate undershooting issue as reported in

BUG=b/133260125

Change-Id: I59ec028eee999ad5238602adf96465af7c4f4514

5 years agoIncrease the bits allocated to key frame
Deepa K G [Fri, 17 May 2019 10:35:06 +0000 (16:05 +0530)]
Increase the bits allocated to key frame

Based on the spatial complexity, increase the
bits allocated to key frame.

Change-Id: I4f96990a13bcc3bdb7a22d50e67e2bd622f1ff7b

5 years agovp8: Disallow copy flag behavior under forced refresh
Marco Paniconi [Tue, 14 May 2019 22:47:23 +0000 (15:47 -0700)]
vp8: Disallow copy flag behavior under forced refresh

Don't allow the setting of copy_buffer_to_arf when the
application/user sets the refresh/update flags. Add new flag
(ext_refresh_frame_flags_pending) to indicate user sets the flags.

Change-Id: I482098c0f2552b04885132a728629ab3e207f08b

5 years agovp9-rtc: Increase qp thresh for overshoot detection
Marco Paniconi [Fri, 17 May 2019 17:50:42 +0000 (10:50 -0700)]
vp9-rtc: Increase qp thresh for overshoot detection

For video mode (non-screen) in CBR real-time mode:
increase the qp thresh to trigger setting to active_worst
on scene changes. Avoid big overshoots in content with
scene changes.

Change-Id: I74721b07b0d7b742cbef468ece70cca7da0f89eb

5 years agoIncrease active best quality linearly
Ravi Chaudhary [Mon, 22 Apr 2019 13:25:12 +0000 (18:55 +0530)]
Increase active best quality linearly

The ARF frames in last few gf intervals, would be
used as a reference by fewer ARF frames in the same
kf interval. Also, the ARF frames in the last GF
group would not be used as a reference in future.
Hence the active best quality for these ARF frames
is increased based on their temporal distance from
the next key frame.

Change-Id: Ice7eaa8a25384104b1d9cc021eec588c03053fc2

5 years agoFix calculations in GF only group case
Deepa K G [Fri, 26 Apr 2019 10:09:13 +0000 (15:39 +0530)]
Fix calculations in GF only group case

- Fix the number of frames considered in calculation of
  twopass active worst quality. For GF only group, frames
  considered should be one less than baseline gf interval
  accounting for the golden frame.
- Fix in calculation of normal_frames. As baseline gf
  interval includes the golden frame, the number of
  normal frames should be one less than baseline gf
  interval.

Change-Id: I6c0cd0a39db23586fc390a6fba5d7aebc0dfce08

5 years agoFix section intra rating for first ARF interval
Deepa K G [Tue, 14 May 2019 08:40:21 +0000 (14:10 +0530)]
Fix section intra rating for first ARF interval

The section intra rating used for the frames in the
first ARF interval was based on entire key frame
interval. However, for subsequent ARF intervals it was
based on that ARF interval. This discrepancy is fixed.

Change-Id: I3df358861d720e536c9c6f15da1cbd78f2dfffbc

5 years agoMerge "Revert "disable row mt test""
Johann Koenig [Wed, 15 May 2019 18:40:02 +0000 (18:40 +0000)]
Merge "Revert "disable row mt test""

5 years agoRevert "disable row mt test"
Johann Koenig [Wed, 15 May 2019 17:06:22 +0000 (17:06 +0000)]
Revert "disable row mt test"

This reverts commit 6d6cc17dc852a216395611bf651e57c19c95b9c4.

Reason for revert:
This has not been reproduced on hardware. There is a strange
libc bug which may account for the behavior on arm because
the environment qemu is using is somewhat old. See discussion
on the webm bug.

To work around the failures in the nightly test the jenkins
job has been switched to use the hardfloat compiler and qemu
environment. Even though this is the same version, it has
not shown the hanging behavior.

Original change's description:
> disable row mt test
>
> deadlock is being investigated in attached bug.
>
> BUG=webm:1626
>
> Change-Id: Ia6d7020b8b1d274433aa89f36c9ed5b9facc5808

Bug: webm:1626
Change-Id: I104a82696a4c90bfbadfd39407c073adce73af0d

5 years agoMerge "Increase the active best quality in CQ"
Deepa K G [Wed, 15 May 2019 04:26:02 +0000 (04:26 +0000)]
Merge "Increase the active best quality in CQ"

5 years agoReland "vp9: Enable ml based partition for speed>=8 low res."
Jerome Jiang [Mon, 13 May 2019 18:29:55 +0000 (11:29 -0700)]
Reland "vp9: Enable ml based partition for speed>=8 low res."

Disable in high bitdepth build.

This reverts commit 152358da777d45613b386be3a116719b8b16bd6d.

Change-Id: I9996d0963915ed4db0fde80c6290d91b3ce63719

5 years agoMerge "Fix update of mb_smooth_pct and mb_av_energy"
Paul Wilkins [Mon, 13 May 2019 08:08:37 +0000 (08:08 +0000)]
Merge "Fix update of mb_smooth_pct and mb_av_energy"

5 years agoMerge "Revert "vp9: Enable ml based partition for speed>=8 low res.""
Jerome Jiang [Fri, 10 May 2019 23:15:04 +0000 (23:15 +0000)]
Merge "Revert "vp9: Enable ml based partition for speed>=8 low res.""

5 years agoMerge "disable row mt test"
Johann Koenig [Fri, 10 May 2019 22:57:50 +0000 (22:57 +0000)]
Merge "disable row mt test"

5 years agoMerge "Cast buffer offset to int64_t"
Jerome Jiang [Fri, 10 May 2019 21:38:16 +0000 (21:38 +0000)]
Merge "Cast buffer offset to int64_t"

5 years agoRevert "vp9: Enable ml based partition for speed>=8 low res."
Jerome Jiang [Fri, 10 May 2019 21:29:12 +0000 (14:29 -0700)]
Revert "vp9: Enable ml based partition for speed>=8 low res."

This reverts commit eed8d47769ddc78c277f8a45b12af4b65096b59a.

BUG=chromium:946409

Change-Id: Iaf9929de841445f63e93792d1fee06d9a1035ef4

5 years agoMerge "Assign perceptual AQ mode as 5"
Jingning Han [Fri, 10 May 2019 21:28:47 +0000 (21:28 +0000)]
Merge "Assign perceptual AQ mode as 5"

5 years agoAssign perceptual AQ mode as 5
Jingning Han [Fri, 10 May 2019 20:25:32 +0000 (13:25 -0700)]
Assign perceptual AQ mode as 5

Change-Id: I8f301fab3bedcd71588c57ccd6e49dcb7042e220

5 years agoCast buffer offset to int64_t
Jerome Jiang [Fri, 10 May 2019 18:46:19 +0000 (11:46 -0700)]
Cast buffer offset to int64_t

To prevent integer overflow with extreme frame sizes.

Change-Id: Ib77f1c11f0264257d9e6c162f474d637592e7b09

5 years agoReland "vp9-rtc: tx_size selection for intra mode in nonrd"
Jerome Jiang [Fri, 10 May 2019 16:47:08 +0000 (09:47 -0700)]
Reland "vp9-rtc: tx_size selection for intra mode in nonrd"

Reland this change since tsan failure is fixed.

Change-Id: I20e3d3d23e34befabb43a36d491d27dfc2a908b6

5 years agoFix tsan failure in webrtc test.
Jerome Jiang [Fri, 10 May 2019 04:04:11 +0000 (21:04 -0700)]
Fix tsan failure in webrtc test.

plane block size is used when computing model rd for uv.
However, it iterates thru sub-blocks based on tx size on uv planes
and plane block size could be bigger than that, which leads to reading
beyond tile boundary when the block is on it.

BUG=b/131414589

Change-Id: I362091484b1325b89d2175039323b235a06ebffc

5 years agodisable row mt test
Johann [Thu, 9 May 2019 18:57:30 +0000 (11:57 -0700)]
disable row mt test

deadlock is being investigated in attached bug.

BUG=webm:1626

Change-Id: Ia6d7020b8b1d274433aa89f36c9ed5b9facc5808

5 years agoMerge "Fix key frame detection"
Jingning Han [Wed, 8 May 2019 21:29:07 +0000 (21:29 +0000)]
Merge "Fix key frame detection"

5 years agoFix key frame detection
Jingning Han [Wed, 8 May 2019 20:16:10 +0000 (13:16 -0700)]
Fix key frame detection

This solves the regression issue seen in certain animation clips.

BUG=b/132108583

Change-Id: Ib28413c95160a5f15fbcf9ea6a322fd4f69a57ce

5 years agoMerge "android: clarify RTCD usage"
Johann Koenig [Wed, 8 May 2019 16:21:24 +0000 (16:21 +0000)]
Merge "android: clarify RTCD usage"

5 years agoMerge "Avoid two GF only groups just before a kf"
Paul Wilkins [Wed, 8 May 2019 10:55:25 +0000 (10:55 +0000)]
Merge "Avoid two GF only groups just before a kf"

5 years agoMerge "Cap arf boost in perceptual quality mode"
Jingning Han [Tue, 7 May 2019 05:29:01 +0000 (05:29 +0000)]
Merge "Cap arf boost in perceptual quality mode"

5 years agoMerge "Increase min arf boost from 240 to 250"
Jingning Han [Tue, 7 May 2019 05:28:43 +0000 (05:28 +0000)]
Merge "Increase min arf boost from 240 to 250"

5 years agoMerge "vp8: Remove duplicated code in datarate tests."
Jerome Jiang [Tue, 7 May 2019 04:01:44 +0000 (04:01 +0000)]
Merge "vp8: Remove duplicated code in datarate tests."

5 years agovp8: Remove duplicated code in datarate tests.
Jerome Jiang [Fri, 3 May 2019 22:07:58 +0000 (15:07 -0700)]
vp8: Remove duplicated code in datarate tests.

Duplicated code between *Large and other tests.

Change-Id: I0cea7472c3520175339bc921dfd8a090b5d5484d

5 years agoAdd mismatch_debug tool
Angie Chiang [Thu, 2 May 2019 21:56:56 +0000 (14:56 -0700)]
Add mismatch_debug tool

Change-Id: I045b4cf625d428109688303ced5433d824df2790

5 years agoMerge "Revert "vp9-rtc: tx_size selection for intra mode in nonrd""
Jerome Jiang [Mon, 6 May 2019 22:14:58 +0000 (22:14 +0000)]
Merge "Revert "vp9-rtc: tx_size selection for intra mode in nonrd""

5 years agoCap arf boost in perceptual quality mode
Jingning Han [Mon, 6 May 2019 21:09:18 +0000 (14:09 -0700)]
Cap arf boost in perceptual quality mode

When the perceptual AQ mode is enabled, cap the ARF boost to 2.5x
of the regular frame. This allows more consistent frame quality
across consecutive frames and sufficient bit rate allocation at
frame level for AQ mode.

Change-Id: I10f5e2860a3e4b412efe25cca635405bae293ebf

5 years agoIncrease min arf boost from 240 to 250
Jingning Han [Mon, 6 May 2019 19:56:57 +0000 (12:56 -0700)]
Increase min arf boost from 240 to 250

This imposes nearly zero change in low/mid/hd res test sets.

Change-Id: I121716b96263f2a382d35e7ff05ed8b72e5e6bc7

5 years agoMerge "android: do not attempt standalone builds"
Johann Koenig [Mon, 6 May 2019 20:38:04 +0000 (20:38 +0000)]
Merge "android: do not attempt standalone builds"

5 years agoMerge "Exclude VP9 assemblies from VP8 builds"
Harish Mahendrakar [Mon, 6 May 2019 19:49:56 +0000 (19:49 +0000)]
Merge "Exclude VP9 assemblies from VP8 builds"

5 years agoandroid: clarify RTCD usage
Johann [Mon, 6 May 2019 19:48:50 +0000 (12:48 -0700)]
android: clarify RTCD usage

Note that when using --disable-runtime-cpu-detect the developer
must keep in mind what devices the library will be run on.

BUG=webm:1623

Change-Id: I0359e226bb678f8e5145bb30cd1cefc7e30c6c79

5 years agoRevert "vp9-rtc: tx_size selection for intra mode in nonrd"
Jerome Jiang [Mon, 6 May 2019 19:29:02 +0000 (12:29 -0700)]
Revert "vp9-rtc: tx_size selection for intra mode in nonrd"

This reverts commit cdd40d1cd042d8c139b3426f311b8b5722d696bb.

Cause tsan failure in webrtc tests.

BUG=b/131414589

Change-Id: I04f98153bc1f9d013d3d1eb8d06df312fe12f8b4

5 years agoandroid: do not attempt standalone builds
Johann [Thu, 2 May 2019 18:40:52 +0000 (11:40 -0700)]
android: do not attempt standalone builds

arm builds require too many tweaks to keep up with changes
to the ndk. Recommend ndk-build instead.

Update documentation and drop --sdk-path references. If
--enable-external-build is used instead we do not need the compiler
path.

BUG=webm:1622

Change-Id: Id024345afd7af988321f8f97ebab19c425cb0493

5 years agoFix update of mb_smooth_pct and mb_av_energy
Ravi Chaudhary [Mon, 4 Mar 2019 05:27:17 +0000 (10:57 +0530)]
Fix update of mb_smooth_pct and mb_av_energy

Values of mb_smooth_pct and mb_av_energy have been updated
correctly in vp9_rc_get_second_pass_params for higher layer
ARF frames.

Change-Id: Ic176e393eb8cc5f418235fee9accee84e9809607

5 years agoExclude VP9 assemblies from VP8 builds
Venkatarama NG. Avadhani [Thu, 2 May 2019 04:37:54 +0000 (10:07 +0530)]
Exclude VP9 assemblies from VP8 builds

Add a macro to to exclude VP9 specific assembly files from build if VP9
is not configured. This would otherwise cause a linking error for VP8
only builds.

BUG=webm:1625

Change-Id: I6d892b7c2837a2574538d18b776fd2b6d706da96

5 years agoMerge "vp8: clamp uv mv after calculation."
Jerome Jiang [Fri, 3 May 2019 18:13:46 +0000 (18:13 +0000)]
Merge "vp8: clamp uv mv after calculation."

5 years agoAvoid two GF only groups just before a kf
Deepa K G [Mon, 29 Apr 2019 13:09:14 +0000 (18:39 +0530)]
Avoid two GF only groups just before a kf

Trap the case where we end up with two short GF only groups just
before a key frame. For example, if the KF is 22 frames away
we are better doing one ARF group of size 16 followed by a GF
only group of 6 than two GF only groups of size 11 (when
min_gf_interval is 12).

Change-Id: Ie598a8a21c6e104cbe381b4792e77fd92d047725

5 years agovp8: clamp uv mv after calculation.
Jerome Jiang [Wed, 1 May 2019 18:51:26 +0000 (11:51 -0700)]
vp8: clamp uv mv after calculation.

BUG=oss-fuzz:14478

Change-Id: Ia978a1e7829bf486681385cd715ed0b50fe3b072

5 years agoMerge "vp8: quiet conversion warnings when packing bits"
Johann Koenig [Thu, 2 May 2019 19:04:47 +0000 (19:04 +0000)]
Merge "vp8: quiet conversion warnings when packing bits"

5 years agoMerge "Fix the use of uninitialized value in qsort"
Angie Chiang [Thu, 2 May 2019 18:44:13 +0000 (18:44 +0000)]
Merge "Fix the use of uninitialized value in qsort"

5 years agoMerge "make vpx_debug_util.c inclusion conditional"
James Zern [Wed, 1 May 2019 19:51:41 +0000 (19:51 +0000)]
Merge "make vpx_debug_util.c inclusion conditional"

5 years agovp8: quiet conversion warnings when packing bits
Johann [Wed, 1 May 2019 19:10:53 +0000 (12:10 -0700)]
vp8: quiet conversion warnings when packing bits

Mask the values to show that we only want to store 1 byte. Switch
to lowercase ff since it's more prevalent in the file.

BUG=webm:1615

Change-Id: Ia8ede79cb3a4a39c868198ae207d606e30cfb1cb

5 years agoRework the wiener variance buffer
Jingning Han [Tue, 30 Apr 2019 18:54:07 +0000 (11:54 -0700)]
Rework the wiener variance buffer

Support the potential frame scaling use case. The operation flow
now allows the codec to allocate the memory buffer only when
perceptual AQ mode is enabled.

Change-Id: I7529e63131276dbe3a29f910d3a227f20dbc94a2

5 years agoDeprecate stack_rank_buffer usage
Jingning Han [Tue, 30 Apr 2019 17:58:03 +0000 (10:58 -0700)]
Deprecate stack_rank_buffer usage

This large buffer is no longer needed.

Change-Id: I9f2b3b28663d299649208f6172bba136103342ad

5 years agoRefactor perceptual aq control
Jingning Han [Tue, 30 Apr 2019 17:54:17 +0000 (10:54 -0700)]
Refactor perceptual aq control

Move the activation control to vpxenc interface using aq-mode.

Change-Id: Iae406d4f7e74bdc7bfd3b149f0811093454f879e

5 years agoMerge "Add PERCEPTUAL_AQ tag"
Jingning Han [Wed, 1 May 2019 03:37:04 +0000 (03:37 +0000)]
Merge "Add PERCEPTUAL_AQ tag"

5 years agomake vpx_debug_util.c inclusion conditional
James Zern [Wed, 1 May 2019 00:42:46 +0000 (17:42 -0700)]
make vpx_debug_util.c inclusion conditional

on CONFIG_BITSTREAM_DEBUG. this avoids an object file containing no
symbols which may cause warnings on some platforms.

Change-Id: I02af97d6970de949466c29f50d272733d97ee8d2

5 years agoMerge "vp8cx.h,vpxenc: add note about alt ref ranges"
James Zern [Tue, 30 Apr 2019 22:09:39 +0000 (22:09 +0000)]
Merge "vp8cx.h,vpxenc: add note about alt ref ranges"

5 years agoFix the use of uninitialized value in qsort
Jingning Han [Tue, 30 Apr 2019 17:36:54 +0000 (10:36 -0700)]
Fix the use of uninitialized value in qsort

Search within the effective transform coefficient window.

Change-Id: If432eaab5ffca1cdfe57ee23052bf5dc60a2f893

5 years agocast ambiguous _mm_set1_epiNN() constants
Johann [Tue, 30 Apr 2019 19:26:18 +0000 (12:26 -0700)]
cast ambiguous _mm_set1_epiNN() constants

clang 7 integer sanitizer warns on unsigned->signed conversions when
the highest bit is 1.

BUG=webm:1615

Change-Id: I6381efaff9233254b40cb78f7bcf87090e0ad353

5 years agoMerge "vp8: quiet conversion warning when packing sizes"
Johann Koenig [Tue, 30 Apr 2019 16:46:59 +0000 (16:46 +0000)]
Merge "vp8: quiet conversion warning when packing sizes"

5 years agoMerge "Refine active best quality of layered ARF frames"
Deepa K G [Tue, 30 Apr 2019 07:59:01 +0000 (07:59 +0000)]
Merge "Refine active best quality of layered ARF frames"

5 years agoMerge "Call set_error_per_bit in SSIM rdmult update"
Sai Deng [Mon, 29 Apr 2019 23:38:30 +0000 (23:38 +0000)]
Merge "Call set_error_per_bit in SSIM rdmult update"

5 years agovp8: quiet conversion warning when packing sizes
Johann [Mon, 29 Apr 2019 23:07:02 +0000 (16:07 -0700)]
vp8: quiet conversion warning when packing sizes

The values are or'd together and then stored 8 bits at a time:
9.1. Uncompressed Data Chunk
* 16 bits: (2 bits Horizontal Scale << 14) | Width (14 bits)
* 16 bits: (2 bits Vertical Scale << 14) | Height (14 bits)

BUG=webm:1615

Change-Id: Id2eb3deaccec299a0619990d3a6f1eb4f71e50e2

5 years agoMerge "vp8 quantize: silence conversion warning"
Johann Koenig [Mon, 29 Apr 2019 22:53:22 +0000 (22:53 +0000)]
Merge "vp8 quantize: silence conversion warning"

5 years agoMerge "vp8 quantize: use native abs/sign implementations"
Johann Koenig [Mon, 29 Apr 2019 22:32:02 +0000 (22:32 +0000)]
Merge "vp8 quantize: use native abs/sign implementations"

5 years agovp8cx.h,vpxenc: add note about alt ref ranges
James Zern [Mon, 29 Apr 2019 22:21:40 +0000 (15:21 -0700)]
vp8cx.h,vpxenc: add note about alt ref ranges

BUG=webm:1597

Change-Id: I56345ec621a06dfe1eae7f205874f34bfb40e6e5

5 years agoMerge "Add bistream_debug tool"
Angie Chiang [Mon, 29 Apr 2019 22:22:04 +0000 (22:22 +0000)]
Merge "Add bistream_debug tool"

5 years agovp8 quantize: silence conversion warning
Johann [Mon, 29 Apr 2019 21:38:27 +0000 (14:38 -0700)]
vp8 quantize: silence conversion warning

clang 7 integer sanitizer warns about storing any int16_t value
where the high bit is 1. Treated as an int, such number would
be positive. Treated as an int16_t, it is negative.

BUG=webm:1615

Change-Id: Idf655cd92d26b7c1180910159be3f64164577eca

5 years agovp8 quantize: use native abs/sign implementations
Johann [Mon, 29 Apr 2019 20:05:30 +0000 (13:05 -0700)]
vp8 quantize: use native abs/sign implementations

~4% improvement with a very rudimentary speed test

Change-Id: Iad8868327e3276dbead783a79849295b0e4b135c

5 years agoAdd PERCEPTUAL_AQ tag
Jingning Han [Mon, 29 Apr 2019 18:40:42 +0000 (11:40 -0700)]
Add PERCEPTUAL_AQ tag

Refactor the percetual AQ mode control.

Change-Id: I9c00c32139ec98fd6aebc1d5086e042730f3616f

5 years agoMerge "Refactor the SSIM based rdmult update function"
Sai Deng [Mon, 29 Apr 2019 18:35:59 +0000 (18:35 +0000)]
Merge "Refactor the SSIM based rdmult update function"

5 years agoCall set_error_per_bit in SSIM rdmult update
sdeng [Mon, 29 Apr 2019 16:34:46 +0000 (09:34 -0700)]
Call set_error_per_bit in SSIM rdmult update

This CL improves objective metrics: (midres)
avg_psnr ovr_psnr ssim    ms_ssim
-0.149   -0.038   -0.108  -0.129

Change-Id: I21f3e478f81ead5a3bcce6041f32fbceb53828f3

5 years agoRefactor the SSIM based rdmult update function
sdeng [Mon, 29 Apr 2019 16:31:13 +0000 (09:31 -0700)]
Refactor the SSIM based rdmult update function

Change-Id: I335103689659d9a2b291c4da54f07cdd9c2b1a6d

5 years agoMerge "Fix in key frame detection"
Paul Wilkins [Mon, 29 Apr 2019 13:50:37 +0000 (13:50 +0000)]
Merge "Fix in key frame detection"