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
Angie Chiang [Sat, 28 Jul 2018 01:06:58 +0000 (01:06 +0000)]
Merge "Remove an extra vp9_encode_frame call"
Harish Mahendrakar [Fri, 27 Jul 2018 17:48:21 +0000 (17:48 +0000)]
Merge "Add New Neon Assemblies for Motion Compensation"
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
Jerome Jiang [Fri, 27 Jul 2018 17:31:35 +0000 (17:31 +0000)]
Merge "vp9: release frame buffer on key frame."
Marco Paniconi [Fri, 27 Jul 2018 06:02:34 +0000 (06:02 +0000)]
Merge "vp9: 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
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
Hui Su [Fri, 27 Jul 2018 02:19:58 +0000 (02:19 +0000)]
Merge "Fix 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
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
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
Harish Mahendrakar [Thu, 26 Jul 2018 19:57:53 +0000 (19:57 +0000)]
Merge "vpxdec: 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
James Zern [Thu, 26 Jul 2018 05:15:34 +0000 (05:15 +0000)]
Merge "vp9: fix OOB read in decoder_peek_si_internal"
Marco Paniconi [Thu, 26 Jul 2018 04:47:30 +0000 (04:47 +0000)]
Merge "vp9: Modify condition for force test of intra"
Jingning Han [Thu, 26 Jul 2018 03:53:22 +0000 (03:53 +0000)]
Merge "Clean up get_overlap_area function"
Jingning Han [Thu, 26 Jul 2018 03:53:11 +0000 (03:53 +0000)]
Merge "Factor out mode estimation process in tpl model build"
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
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
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
Marco Paniconi [Wed, 25 Jul 2018 21:19:41 +0000 (21:19 +0000)]
Merge "Revert "vp9: Adjust reset segment for real-time screen-content""
Hui Su [Wed, 25 Jul 2018 19:29:06 +0000 (19:29 +0000)]
Merge "Fix typos in txfm_rd_in_plane()"
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
Yaowu Xu [Wed, 25 Jul 2018 17:21:26 +0000 (17:21 +0000)]
Merge "Improve help message for arnr-type"
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
Scott LaVarnway [Wed, 25 Jul 2018 10:45:46 +0000 (10:45 +0000)]
Merge "VPX: avg_intrin_sse2.c, avg_intrin_avx2.c cleanup"
Paul Wilkins [Wed, 25 Jul 2018 08:23:33 +0000 (08:23 +0000)]
Merge "Limit min Q for normal frames."
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
Marco Paniconi [Wed, 25 Jul 2018 03:55:51 +0000 (03:55 +0000)]
Merge "vp9: Fix to the segment weight for cyclic refresh."
Marco Paniconi [Wed, 25 Jul 2018 03:33:02 +0000 (03:33 +0000)]
Merge "vp9: Modify logic for flat blocks in nonrd-pickmode."
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
Hui Su [Tue, 24 Jul 2018 23:55:46 +0000 (16:55 -0700)]
Fix typos in txfm_rd_in_plane()
Change-Id: I1c62e51f5ccd33ff74abc3385410525bcae2fedd
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
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
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
Scott LaVarnway [Tue, 24 Jul 2018 12:11:37 +0000 (12:11 +0000)]
Merge "VPX: Improve HBD vpx_hadamard_32x32_avx2()"
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
Marco Paniconi [Tue, 24 Jul 2018 06:47:54 +0000 (06:47 +0000)]
Merge "vp9: 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
Hui Su [Tue, 24 Jul 2018 02:41:25 +0000 (02:41 +0000)]
Merge "Add prune_ref_frame_for_rect_partitions feature"
Jingning Han [Tue, 24 Jul 2018 02:36:37 +0000 (02:36 +0000)]
Merge "Pass in block size for motion search function"
Jingning Han [Tue, 24 Jul 2018 02:36:27 +0000 (02:36 +0000)]
Merge "Make the tpl model update operated in 8x8 block unit"
Jingning Han [Tue, 24 Jul 2018 02:36:22 +0000 (02:36 +0000)]
Merge "Refactor overlap area computation"
Jingning Han [Tue, 24 Jul 2018 02:36:15 +0000 (02:36 +0000)]
Merge "Map coding block size to transform block size"
Jingning Han [Tue, 24 Jul 2018 02:36:10 +0000 (02:36 +0000)]
Merge "Refactor tpl model update function"
Jingning Han [Tue, 24 Jul 2018 02:36:04 +0000 (02:36 +0000)]
Merge "Scale the distortion mectric with tx size"
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
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
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
Scott LaVarnway [Mon, 23 Jul 2018 21:09:38 +0000 (21:09 +0000)]
Merge "VPX: Add vpx_hadamard_32x32_avx2"
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
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
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
Paul Wilkins [Mon, 23 Jul 2018 13:50:57 +0000 (13:50 +0000)]
Merge "Fixed "MAX" boost for static kf sections."
Paul Wilkins [Mon, 23 Jul 2018 13:50:51 +0000 (13:50 +0000)]
Merge "Fix issue with short static KF groups."
Paul Wilkins [Mon, 23 Jul 2018 13:50:44 +0000 (13:50 +0000)]
Merge "Limit Max GF boost for slide shows"
Paul Wilkins [Mon, 23 Jul 2018 13:50:34 +0000 (13:50 +0000)]
Merge "Tweaks to determination of slide show groups."
Paul Wilkins [Mon, 23 Jul 2018 13:50:13 +0000 (13:50 +0000)]
Merge "Improved coding on slide show content."
Scott LaVarnway [Sun, 22 Jul 2018 23:10:12 +0000 (23:10 +0000)]
Merge "VPX: Add vpx_hadamard_32x32_sse2"
Scott LaVarnway [Sun, 22 Jul 2018 23:09:42 +0000 (23:09 +0000)]
Merge "VPX: Improve HBD vpx_hadamard_16x16_sse2()"
Jingning Han [Sun, 22 Jul 2018 14:32:58 +0000 (07:32 -0700)]
Map coding block size to transform block size
Change-Id: I89e18262a2736c0e86f7c30513179806a926827e
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
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
Jingning Han [Sun, 22 Jul 2018 14:32:52 +0000 (14:32 +0000)]
Merge "Replace hard coded numbers in tpl model"
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
Harish Mahendrakar [Sat, 21 Jul 2018 00:42:56 +0000 (00:42 +0000)]
Merge "Add 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
Jingning Han [Fri, 20 Jul 2018 16:42:44 +0000 (09:42 -0700)]
Replace hard coded numbers in tpl model
Change-Id: I1adedfccf9aa874d0980f1181066b3682614a8cb
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
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
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
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
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
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
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
Scott LaVarnway [Fri, 20 Jul 2018 10:48:56 +0000 (10:48 +0000)]
Merge "VPX: Add Hadamard32x32Test"
Jingning Han [Thu, 19 Jul 2018 20:02:19 +0000 (20:02 +0000)]
Merge "Refactor transform calls in tpl model build"
Scott LaVarnway [Tue, 17 Jul 2018 21:09:43 +0000 (14:09 -0700)]
VPX: Add Hadamard32x32Test
Change-Id: Idad619e963cb2f9bf8c62acac0e061639ec7e0b4
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."
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
Tom Finegan [Thu, 19 Jul 2018 00:07:21 +0000 (00:07 +0000)]
Merge "shell tests: Drop incorrect uses of readonly."
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
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
Jingning Han [Tue, 17 Jul 2018 18:10:28 +0000 (18:10 +0000)]
Merge "Fix 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
Marco Paniconi [Tue, 17 Jul 2018 04:04:08 +0000 (04:04 +0000)]
Merge "vp9: Force hybrid_intra on scene change"
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
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
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
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
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
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
Paul Wilkins [Mon, 16 Jul 2018 16:49:20 +0000 (16:49 +0000)]
Merge "Delete invalid assert."
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
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
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
Jingning Han [Fri, 13 Jul 2018 18:59:25 +0000 (18:59 +0000)]
Merge "Enable tpl model for speed 0"
Jingning Han [Fri, 13 Jul 2018 16:10:12 +0000 (16:10 +0000)]
Merge "Refactor rc_pick_q_and_bounds_two_pass parameters"
Marco Paniconi [Thu, 12 Jul 2018 22:28:36 +0000 (15:28 -0700)]
vp9: Enforce intra search on scene_change
For real-time non-rd pickmode: force check of
intra modes on INTER frames for scene changes.
Reduces artifacts on scene changes.
Change-Id: I5ae80869072db156791ace554c0a470f3785e9c6