Commit Graph

20653 Commits

Author SHA1 Message Date
Jerome Jiang
1cbcb820ac Merge "Revert "vp9-rtc: tx_size selection for intra mode in nonrd"" 2019-05-06 22:14:58 +00:00
Jingning Han
c3689f7ad8 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
2019-05-06 14:20:24 -07:00
Jingning Han
a099d24707 Increase min arf boost from 240 to 250
This imposes nearly zero change in low/mid/hd res test sets.

Change-Id: I121716b96263f2a382d35e7ff05ed8b72e5e6bc7
2019-05-06 14:20:21 -07:00
Johann Koenig
e8b07651ab Merge "android: do not attempt standalone builds" 2019-05-06 20:38:04 +00:00
Harish Mahendrakar
152d97e67b Merge "Exclude VP9 assemblies from VP8 builds" 2019-05-06 19:49:56 +00:00
Johann
6522c56c8c 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
2019-05-06 12:48:50 -07:00
Jerome Jiang
9acae8a7a3 Revert "vp9-rtc: tx_size selection for intra mode in nonrd"
This reverts commit cdd40d1cd0.

Cause tsan failure in webrtc tests.

BUG=b/131414589

Change-Id: I04f98153bc1f9d013d3d1eb8d06df312fe12f8b4
2019-05-06 12:29:02 -07:00
Johann
f30c419d4a 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
2019-05-06 11:48:45 -07:00
Ravi Chaudhary
dddbe22632 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
2019-05-06 10:11:02 +00:00
Venkatarama NG. Avadhani
7ef71a46f9 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
2019-05-06 15:14:08 +05:30
Jerome Jiang
3fd96f7d7d Merge "vp8: clamp uv mv after calculation." 2019-05-03 18:13:46 +00:00
Deepa K G
2b8e273105 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
2019-05-03 11:01:52 +05:30
Jerome Jiang
8a800b52ea vp8: clamp uv mv after calculation.
BUG=oss-fuzz:14478

Change-Id: Ia978a1e7829bf486681385cd715ed0b50fe3b072
2019-05-02 16:24:27 -07:00
Johann Koenig
14e1b23528 Merge "vp8: quiet conversion warnings when packing bits" 2019-05-02 19:04:47 +00:00
Angie Chiang
545c4d75d8 Merge "Fix the use of uninitialized value in qsort" 2019-05-02 18:44:13 +00:00
James Zern
8743cdd446 Merge "make vpx_debug_util.c inclusion conditional" 2019-05-01 19:51:41 +00:00
Johann
d79ef289f1 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
2019-05-01 12:11:46 -07:00
Jingning Han
7a4703e8a9 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
2019-05-01 03:40:03 +00:00
Jingning Han
37c8030a2a Deprecate stack_rank_buffer usage
This large buffer is no longer needed.

Change-Id: I9f2b3b28663d299649208f6172bba136103342ad
2019-05-01 03:39:43 +00:00
Jingning Han
1fa82a9117 Refactor perceptual aq control
Move the activation control to vpxenc interface using aq-mode.

Change-Id: Iae406d4f7e74bdc7bfd3b149f0811093454f879e
2019-05-01 03:39:31 +00:00
Jingning Han
e5f2e06a20 Merge "Add PERCEPTUAL_AQ tag" 2019-05-01 03:37:04 +00:00
James Zern
204b72c98c 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
2019-04-30 17:45:07 -07:00
James Zern
aef0b8808c Merge "vp8cx.h,vpxenc: add note about alt ref ranges" 2019-04-30 22:09:39 +00:00
Jingning Han
bf30ae3ad6 Fix the use of uninitialized value in qsort
Search within the effective transform coefficient window.

Change-Id: If432eaab5ffca1cdfe57ee23052bf5dc60a2f893
2019-04-30 20:22:45 +00:00
Johann
abb13c0d8e 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
2019-04-30 12:44:51 -07:00
Johann Koenig
1d0dedf759 Merge "vp8: quiet conversion warning when packing sizes" 2019-04-30 16:46:59 +00:00
Deepa K G
9012ebc269 Merge "Refine active best quality of layered ARF frames" 2019-04-30 07:59:01 +00:00
Sai Deng
2c38592ec6 Merge "Call set_error_per_bit in SSIM rdmult update" 2019-04-29 23:38:30 +00:00
Johann
9a81785e42 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
2019-04-29 16:15:50 -07:00
Johann Koenig
49794235cd Merge "vp8 quantize: silence conversion warning" 2019-04-29 22:53:22 +00:00
Johann Koenig
197ef67eeb Merge "vp8 quantize: use native abs/sign implementations" 2019-04-29 22:32:02 +00:00
James Zern
ca18ac8e4f vp8cx.h,vpxenc: add note about alt ref ranges
BUG=webm:1597

Change-Id: I56345ec621a06dfe1eae7f205874f34bfb40e6e5
2019-04-29 15:23:34 -07:00
Angie Chiang
6171b7f342 Merge "Add bistream_debug tool" 2019-04-29 22:22:04 +00:00
Johann
1e01d13fb8 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
2019-04-29 14:38:58 -07:00
Johann
e3f12b520f vp8 quantize: use native abs/sign implementations
~4% improvement with a very rudimentary speed test

Change-Id: Iad8868327e3276dbead783a79849295b0e4b135c
2019-04-29 14:00:35 -07:00
Jingning Han
5a97d750b4 Add PERCEPTUAL_AQ tag
Refactor the percetual AQ mode control.

Change-Id: I9c00c32139ec98fd6aebc1d5086e042730f3616f
2019-04-29 11:42:54 -07:00
Sai Deng
dff4d376ea Merge "Refactor the SSIM based rdmult update function" 2019-04-29 18:35:59 +00:00
sdeng
524ee737ea 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
2019-04-29 09:34:46 -07:00
sdeng
e779b2f381 Refactor the SSIM based rdmult update function
Change-Id: I335103689659d9a2b291c4da54f07cdd9c2b1a6d
2019-04-29 09:31:13 -07:00
Paul Wilkins
2a26032bd2 Merge "Fix in key frame detection" 2019-04-29 13:50:37 +00:00
Angie Chiang
483b71e8e7 Add bistream_debug tool
Change-Id: I339899cff65c7ef563f9411f2d7af9a32a08a705
2019-04-26 16:58:50 -07:00
Marco Paniconi
e50f4e4112 vp9-rtc: Adjust thresh for 4x4 tx selection
For screen content nonrd_pickmode: reduce
threshold to select 4x4 tx_size, under certain
conditions.

Change-Id: If68c30172272868033f0e3011e53c76b4e7c48b6
2019-04-25 18:44:33 -07:00
Marco Paniconi
f836d8ba87 vp9-rtc: Fix int conversion error in nonrd_pickmode.
Change-Id: I1be775d8c11f530ff26121f1ffaf1dae100b2510
2019-04-25 09:47:23 -07:00
Marco Paniconi
8dc05779eb vp9-rtc: Pass source variance and mode to select tx
For nonrd-pickmode: pass the source variance and the
mode (intra/inter) to select tx_size, for better tuning.

Neutral change for video mode, speed 7.
Some quality improvement for screen content.

Change-Id: I53336f23fa4f14076aa1cdf8036e9af73c43060a
2019-04-24 14:37:53 -07:00
Marco Paniconi
44449db02f Merge "vp9-rtc: tx_size selection for intra mode in nonrd" 2019-04-24 06:15:25 +00:00
Angie Chiang
d2d5174440 Merge changes I1af88144,I9eaf9563,I58c1bc0f,I8d173add
* changes:
  Remove mv_dist and mv_cost from TplDepStats
  Remove inter_cost_arr and recon_error_arr
  Remove RE_COMPUTE_MV_INCONSISTENCY
  Remove unused mv_[dist/cost]_sum
2019-04-23 23:36:50 +00:00
Sai Deng
ed478a977c Merge "Revert "Add VPX_TUNE_SSIM and VPX_TUNE_PSNR enums"" 2019-04-23 23:11:54 +00:00
Sai Deng
b4da0a527e Revert "Add VPX_TUNE_SSIM and VPX_TUNE_PSNR enums"
This reverts commit 1d8d8f562b.

Reason for revert: change the api names will break existing code.

Original change's description:
> Add VPX_TUNE_SSIM and VPX_TUNE_PSNR enums
>
> Change-Id: I3df5af2c60b774e6d395062077542c52db868236

TBR=jingning@google.com,builds@webmproject.org,sdeng@google.com

Change-Id: Ic94c19739f595f4544e8b68892ab9d9c1bbccd79
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
2019-04-23 23:02:55 +00:00
Marco Paniconi
cdd40d1cd0 vp9-rtc: tx_size selection for intra mode in nonrd
In nonrd_pickmode for intra modes: add tx_size selection
based on Y prediction signal for the bsize.

The tx selection is done in model_rd, same as inter-modes.

Existing code for intra mode was first setting a tx_size based
only on the bsize, and then in some cases in block_yrd
(during the loop over bsize in units of tx_size) the tx_size
may be set again if model_rd is called in block_yrd.

This CL separates out the tx_size setting (based on Y channel
prediction via model_rd), and then block_yrd is called once
for whole bsize. This allows for better tuning of the tx
selection for intra modes in future change.

Adjust threshold in svc datarate test.

Negligible/neutral change in psnr/ssim metrics
for speed 7 and 8, 1 layer and SVC mode.

Change-Id: I33bc8447afdc3785482e13aac5c3636e13c59644
2019-04-23 15:18:29 -07:00
Sai Deng
9b57a02926 Merge "Add VPX_TUNE_SSIM and VPX_TUNE_PSNR enums" 2019-04-23 21:50:56 +00:00