]> granicus.if.org Git - libvpx/log
libvpx
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 "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 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 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

6 years agoMerge "VPX: Add vpx_hadamard_32x32_avx2"
Scott LaVarnway [Mon, 23 Jul 2018 21:09:38 +0000 (21:09 +0000)]
Merge "VPX: Add vpx_hadamard_32x32_avx2"

6 years agoRefactor overlap area computation
Jingning Han [Mon, 23 Jul 2018 21:02:29 +0000 (14:02 -0700)]
Refactor overlap area computation

Account for the variable operating block sizes.

Change-Id: I4eac4d0b84cf55fbf5c693007c991afe6171ca6a

6 years agoVPX: Add vpx_hadamard_32x32_avx2
Scott LaVarnway [Mon, 23 Jul 2018 15:12:19 +0000 (08:12 -0700)]
VPX: Add vpx_hadamard_32x32_avx2

BUG=webm:1546

Change-Id: I64629ed83cb7acd0f2ac49b9c31f369d17a1aed2

6 years agoAdd prune_ref_frame_for_rect_partitions feature
Hui Su [Fri, 20 Jul 2018 22:29:14 +0000 (15:29 -0700)]
Add prune_ref_frame_for_rect_partitions feature

Add a speed feature to prune reference frames for rectangular
partitions. Rectangular partition RD search happens after square
partition RD search. With this feature, we keep record of the ref
frames picked by square partitions, and only consider those ref
frames during rect partition RD search.

With this feature on, the computation cost of rect partition RD
search is greatly reduced, so we can afford to skip rect partition
RD search less aggressively.

Overall, both compression and encoding speed are improved. Only
speed 0 is affected.

Coding gains:
              lowres    midres    hdres
ovr psnr      0.00%    -0.36%    -0.37%
avg psnr      0.00%    -0.36%    -0.36%

Tested encoding speed with QP=40 on about 30 sequences.
Speed gains:
              lowres    midres    hdres
average       13.4%      7.1%     6.1%
max           28.0%     12.0%     9.8%

Change-Id: Id5f36dd2ac75028ae98550d67b0a524aa251b692

6 years agoMerge "Fixed "MAX" boost for static kf sections."
Paul Wilkins [Mon, 23 Jul 2018 13:50:57 +0000 (13:50 +0000)]
Merge "Fixed "MAX" boost for static kf sections."

6 years agoMerge "Fix issue with short static KF groups."
Paul Wilkins [Mon, 23 Jul 2018 13:50:51 +0000 (13:50 +0000)]
Merge "Fix issue with short static KF groups."

6 years agoMerge "Limit Max GF boost for slide shows"
Paul Wilkins [Mon, 23 Jul 2018 13:50:44 +0000 (13:50 +0000)]
Merge "Limit Max GF boost for slide shows"

6 years agoMerge "Tweaks to determination of slide show groups."
Paul Wilkins [Mon, 23 Jul 2018 13:50:34 +0000 (13:50 +0000)]
Merge "Tweaks to determination of slide show groups."

6 years agoMerge "Improved coding on slide show content."
Paul Wilkins [Mon, 23 Jul 2018 13:50:13 +0000 (13:50 +0000)]
Merge "Improved coding on slide show content."

6 years agoMerge "VPX: Add vpx_hadamard_32x32_sse2"
Scott LaVarnway [Sun, 22 Jul 2018 23:10:12 +0000 (23:10 +0000)]
Merge "VPX: Add vpx_hadamard_32x32_sse2"

6 years agoMerge "VPX: Improve HBD vpx_hadamard_16x16_sse2()"
Scott LaVarnway [Sun, 22 Jul 2018 23:09:42 +0000 (23:09 +0000)]
Merge "VPX: Improve HBD vpx_hadamard_16x16_sse2()"

6 years agoMap coding block size to transform block size
Jingning Han [Sun, 22 Jul 2018 14:32:58 +0000 (07:32 -0700)]
Map coding block size to transform block size

Change-Id: I89e18262a2736c0e86f7c30513179806a926827e

6 years agoRefactor tpl model update function
Jingning Han [Sun, 22 Jul 2018 04:49:42 +0000 (21:49 -0700)]
Refactor tpl model update function

Fill up all the blocks inside an operating unit with the provided
statistics.

Change-Id: I93556e0daf9f08cbe62d3c12cf38b5e26ad7c799

6 years agoScale the distortion mectric with tx size
Jingning Han [Sat, 21 Jul 2018 23:04:34 +0000 (16:04 -0700)]
Scale the distortion mectric with tx size

Properly scale the distortion metric according to the tranfer
function gain of the transform block size.

Change-Id: I8e3539d8936f5db78c1352f902f72ef19fc09ed8

6 years agoMerge "Replace hard coded numbers in tpl model"
Jingning Han [Sun, 22 Jul 2018 14:32:52 +0000 (14:32 +0000)]
Merge "Replace hard coded numbers in tpl model"

6 years agoVPX: Add vpx_hadamard_32x32_sse2
Scott LaVarnway [Fri, 20 Jul 2018 14:23:11 +0000 (07:23 -0700)]
VPX: Add vpx_hadamard_32x32_sse2

BUG=webm:1546

Change-Id: Ide5828b890c5c27cfcca2d5e318a914f7cde1158

6 years agoMerge "Add Flag to Enable Row Based MultiThreading"
Harish Mahendrakar [Sat, 21 Jul 2018 00:42:56 +0000 (00:42 +0000)]
Merge "Add Flag to Enable Row Based MultiThreading"

6 years agoAdd Flag to Enable Row Based MultiThreading
Venkatarama NG. Avadhani [Thu, 5 Jul 2018 08:19:04 +0000 (13:49 +0530)]
Add Flag to Enable Row Based MultiThreading

This commit adds a command line argument "--row-mt". Passing "--row-mt=1" will
set the row_mt flag in the decoder context. This flag will be used to
determine whether row-wise multi-threading path is to be taken when the
row-wise multi-threading functions are added.

Change-Id: I35a5393a2720254437daa5e796630709049e0bc2

6 years agoReplace hard coded numbers in tpl model
Jingning Han [Fri, 20 Jul 2018 16:42:44 +0000 (09:42 -0700)]
Replace hard coded numbers in tpl model

Change-Id: I1adedfccf9aa874d0980f1181066b3682614a8cb

6 years agoVPX: Call vpx_hadamard_16x16_c() in vpx_hadamard_32x32_c()
Scott LaVarnway [Fri, 20 Jul 2018 16:17:13 +0000 (09:17 -0700)]
VPX:  Call vpx_hadamard_16x16_c() in vpx_hadamard_32x32_c()

instead of vpx_hadamard_16x16().

Change-Id: Ie16aacad39d7f429e282dd4c93e57c07000d0f29

6 years agoFixed "MAX" boost for static kf sections.
Paul Wilkins [Fri, 20 Jul 2018 13:15:42 +0000 (14:15 +0100)]
Fixed "MAX" boost for static kf sections.

Apply a fixed maximum boost for static key frame
groups /  slide show content (if > 8 frames long).
This insures sufficient boost on shorter sections
whilst preventing excessive boost on longer sections.

Change-Id: I5b857dab023d674cfd55bced3437f3bce3b4f1cb

6 years agoFix issue with short static KF groups.
Paul Wilkins [Fri, 20 Jul 2018 12:12:34 +0000 (13:12 +0100)]
Fix issue with short static KF groups.

Where a KF group is very short but static make sure
it is coded as a single GF group. Previously there was a
bug where such groups could be coded as an arf group
with the arf in the next scene.

Change-Id: I4504ae2b03c4877fcecfa58dd503879aa4eefac4

6 years agoLimit Max GF boost for slide shows
Paul Wilkins [Tue, 17 Jul 2018 13:48:02 +0000 (14:48 +0100)]
Limit Max GF boost for slide shows

Set an upper limit on the maximum boost for a static
GF only group such as in slide shows as part of tweaks
to quality / rate trade off.

Change-Id: Ic72575328419cdcf82ad3a20a1d9b947538c25c6

6 years agoTweaks to determination of slide show groups.
Paul Wilkins [Mon, 16 Jul 2018 16:42:00 +0000 (17:42 +0100)]
Tweaks to determination of slide show groups.

Slight adjustment to rules for defining static groups.
Adjustment of small bias towards 0,0 motion in first pass.

Change-Id: Id1d3753979ad54622f983f4de08472738317ec8e

6 years agoImproved coding on slide show content.
Paul Wilkins [Wed, 20 Jun 2018 16:21:49 +0000 (17:21 +0100)]
Improved coding on slide show content.

This patch adds in detection of slide show content and allows
for coding of long GF only groups up to a length of 240 frames rather
than coding a large number of shorter ARF groups that gradually
lower the Q.

In test samples this patch gave rise to a substantial improvement in
overall psnr and a drop in data rate. In some cases the average psnr
fell, however, with the boost and minQ values set as they are.
This is to be expected because average psnr is dominated by the
best frames in the sequence and previously a relatively poor key frame
could be followed by progressively better alt refs. For example a key
frame at q7.5 but subsequent alt refs improving it to lossless.

For slides displayed for several seconds,  savings of >= 20% (or
commensurate quality gains) are likely.

This patch allows for long GF groups in static sections before and after
complex transitions (e.g. fades) with one or more normal ARF groups
during the transition. However, it enforces a single "normal" length
GF group after the transition before any extended group is allowed.
The reason for this is that the ARF that spans the transition my not have
a very high quality and hence may not be a good GF for the long static
section that follows.

Change-Id: I66cc404c3b85e87dae9829b49d9d631cbf04e037

6 years agoVPX: Improve HBD vpx_hadamard_16x16_sse2()
Scott LaVarnway [Fri, 20 Jul 2018 10:50:49 +0000 (03:50 -0700)]
VPX: Improve HBD vpx_hadamard_16x16_sse2()

~12% improvement.

Change-Id: Ieca4d870a4c1c5ea2c689e27fc4550fcbab9f867

6 years agoMerge "VPX: Add Hadamard32x32Test"
Scott LaVarnway [Fri, 20 Jul 2018 10:48:56 +0000 (10:48 +0000)]
Merge "VPX: Add Hadamard32x32Test"

6 years agoMerge "Refactor transform calls in tpl model build"
Jingning Han [Thu, 19 Jul 2018 20:02:19 +0000 (20:02 +0000)]
Merge "Refactor transform calls in tpl model build"

6 years agoVPX: Add Hadamard32x32Test
Scott LaVarnway [Tue, 17 Jul 2018 21:09:43 +0000 (14:09 -0700)]
VPX: Add Hadamard32x32Test

Change-Id: Idad619e963cb2f9bf8c62acac0e061639ec7e0b4

6 years agoMerge "vpx_sum_squares_2d_i16_neon(): Make |s2| a uint64x1_t."
James Zern [Thu, 19 Jul 2018 05:47:27 +0000 (05:47 +0000)]
Merge "vpx_sum_squares_2d_i16_neon(): Make |s2| a uint64x1_t."

6 years agoRefactor transform calls in tpl model build
Jingning Han [Thu, 19 Jul 2018 04:04:54 +0000 (21:04 -0700)]
Refactor transform calls in tpl model build

Support multiple transform block size. Prepare for more accurate
prediction search.

Change-Id: I845f5cf909ed2cba12cfc3627816cc4b37eddbe0

6 years agoMerge "shell tests: Drop incorrect uses of readonly."
Tom Finegan [Thu, 19 Jul 2018 00:07:21 +0000 (00:07 +0000)]
Merge "shell tests: Drop incorrect uses of readonly."

6 years agovp9: Screen-content after slide-change: increase refresh rate
Marco Paniconi [Wed, 18 Jul 2018 21:36:17 +0000 (14:36 -0700)]
vp9: Screen-content after slide-change: increase refresh rate

For screen-content real-time CBR mode: on a detected slide change
that is encoded at max Q (to prevent excessive overshoot), increase
the perc_refresh in the cyclic refresh following the slide change.
Use counter to increase refresh up to some #frames from slide change.

This is attempt to increase quality ramp-up after slide change without
causing too much excess overshoot.

Change-Id: Ie4ec4361082803a522f4a8794b3bb0178c9cf307

6 years agoReland "Enable tpl model for speed 0"
Jingning Han [Thu, 12 Jul 2018 16:02:01 +0000 (09:02 -0700)]
Reland "Enable tpl model for speed 0"

This is a reland of 9c2c234a0b8f9c08719ac1fa286988a0a3626fd0

Threaded mismatch has been addressed.

Original change's description:
> Enable tpl model for speed 0
>
> Enable adaptive Lagrangian multiplier for arf in speed 0, AQ mode 0,
> and low bit-depth settings. This improves the peak compression
> performance:
>
>           avg PSNR       overall PSNR       SSIM
> low       -0.462%         -0.535%          -0.358%
> mid       -0.780%         -0.857%          -0.868%
> hd        -0.914%         -1.017%          -0.471%
> 720p      -0.624%         -0.671%          -1.553%
> nflx2k    -0.764%         -0.784%          -0.908%
>
> The encoding time at speed 0 is slightly changed to be faster or
> slower:
>
> city_cif 1000 kbps
> 78.2 seconds -> 78.1 seconds
>
> bus_cif 1000 kbps
> 98.6 seconds -> 98.8 seconds.
>
> Change-Id: I18e7337bb61d985cbd3cf29e56439a6cdf675389

BUG=webm:1547

Change-Id: I025a21683ceed23d5f7147e200555b58b791315c

6 years agoMerge "Fix 32-bit build for tpl model"
Jingning Han [Tue, 17 Jul 2018 18:10:28 +0000 (18:10 +0000)]
Merge "Fix 32-bit build for tpl model"

6 years agoFix 32-bit build for tpl model
Jingning Han [Tue, 17 Jul 2018 03:44:16 +0000 (20:44 -0700)]
Fix 32-bit build for tpl model

Clear system state to avoid encoding failure in 32-bit build.

BUG=webm:1547

Change-Id: Ia74c789d1993da09bc400baf24e971e19752e3c3

6 years agoMerge "vp9: Force hybrid_intra on scene change"
Marco Paniconi [Tue, 17 Jul 2018 04:04:08 +0000 (04:04 +0000)]
Merge "vp9: Force hybrid_intra on scene change"

6 years agovpx_sum_squares_2d_i16_neon(): Make |s2| a uint64x1_t.
Raphael Kubo da Costa [Fri, 13 Jul 2018 12:29:09 +0000 (14:29 +0200)]
vpx_sum_squares_2d_i16_neon(): Make |s2| a uint64x1_t.

This fixes the build with at least GCC 7.3, where it was previously failing
with:

sum_squares_neon.c: In function 'vpx_sum_squares_2d_i16_neon':
sum_squares_neon.c: note: use -flax-vector-conversions to permit conversions between vectors with differing element types or numbers of subparts
     s2 = vpaddl_u32(s1);
     ^~
sum_squares_neon.c: incompatible types when assigning to type 'int64x1_t' from type 'uint64x1_t'
     s2 = vpaddl_u32(s1);
        ^
sum_squares_neon.c: incompatible types when assigning to type 'int64x1_t' from type 'uint64x1_t'
     s2 = vadd_u64(vget_low_u64(s1), vget_high_u64(s1));
        ^
sum_squares_neon.c: incompatible type for argument 1 of 'vget_lane_u64'
   return vget_lane_u64(s2, 0);
                        ^~

The generated assembly was verified to remain identical with both GCC and
LLVM.

Bug: chromium:819249
Change-Id: I2778428ee1fee0a674d0d4910347c2a717de21ac

6 years agoMerge changes Iee11abf6,I8acbc718,Ia9a84311
Jingning Han [Tue, 17 Jul 2018 03:49:47 +0000 (03:49 +0000)]
Merge changes Iee11abf6,I8acbc718,Ia9a84311

* changes:
  Account for quantization effect in the tpl model
  Assign estimate qp for overlay frame
  Use the estimate qp to set motion search control

6 years agovp9: Force hybrid_intra on scene change
Marco Paniconi [Thu, 12 Jul 2018 02:38:44 +0000 (19:38 -0700)]
vp9: Force hybrid_intra on scene change

For real-time screen content mode: when scene/slide change
is detected and re-encode is decided, force hybrid_intra
mode search if slide change is big and alot of Intra modes
were used. hybrid_intra mode will use rd-based intra mode
search for small blocks.

Overall better PSNR on clip with slide changes, with similar
encoded frame size. Encode time lightly higher on average with
this change.

Change-Id: I503835253b777b9f98d74e75a52a8000b76c310c

6 years agoAccount for quantization effect in the tpl model
Jingning Han [Sun, 15 Jul 2018 21:20:47 +0000 (14:20 -0700)]
Account for quantization effect in the tpl model

Account for the likely quantization effect in the temporal
dependency model.

Change-Id: Iee11abf651353098494e57cccf0ac26ce7535924

6 years agoAssign estimate qp for overlay frame
Jingning Han [Mon, 16 Jul 2018 21:31:51 +0000 (14:31 -0700)]
Assign estimate qp for overlay frame

Assign the estimated qp for the overlay frame too. Cap the minimum
quantization parameter to be 1 to avoid lossless coding in the
temporal dependency model setup.

Change-Id: I8acbc7182045dbf3017b6712a119b18407b76ab0

6 years agoRevert "Enable tpl model for speed 0"
Johann [Mon, 16 Jul 2018 19:25:15 +0000 (12:25 -0700)]
Revert "Enable tpl model for speed 0"

This reverts commit 9c2c234a0b8f9c08719ac1fa286988a0a3626fd0.

Causes multithreading test failures in 32 bit configurations.

BUG=webm:1547

Change-Id: Idb480b206a87b7cd6affbafffde8d8e1b6aee621

6 years agoMerge "Delete invalid assert."
Paul Wilkins [Mon, 16 Jul 2018 16:49:20 +0000 (16:49 +0000)]
Merge "Delete invalid assert."

6 years agoUse the estimate qp to set motion search control
Jingning Han [Fri, 13 Jul 2018 23:24:12 +0000 (16:24 -0700)]
Use the estimate qp to set motion search control

Set the multiplier for motion estimation using the estimate frame
quantization paramter in the temporal dependency model.

Change-Id: Ia9a843111c1504d7ae8b12113374831ee79c85b8

6 years agoSet the estimate frame qp in tpl_frame
Jingning Han [Fri, 13 Jul 2018 23:05:16 +0000 (16:05 -0700)]
Set the estimate frame qp in tpl_frame

Assign the estimate frame quantization parameter in the tpl_frame
data structure.

Change-Id: I6149bdb1e15dbdae348f06ff61bf814004462232

6 years agoEstimate the frame qp in a gop
Jingning Han [Fri, 13 Jul 2018 21:08:45 +0000 (14:08 -0700)]
Estimate the frame qp in a gop

Gather the availabel statistics to estimate the frame level
quantization parameter set in a group of pictures. This will be
called in the tpl model construction. No visible coding stats
change would occur.

Change-Id: Ic412e4afd9a60f1317a5f8eab6a4f6d5e48c4c07