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
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
Scott LaVarnway [Mon, 23 Jul 2018 21:09:38 +0000 (21:09 +0000)]
Merge "VPX: 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
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: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
Jingning Han [Fri, 13 Jul 2018 04:40:40 +0000 (21:40 -0700)]
Refactor rc_pick_q_and_bounds_two_pass parameters
Send the gf_group index as argument into the function. This
prepares later re-use of this function in the tpl model.
Change-Id: Id6203105629e687172c651a013d38c207b60ace7
Wan-Teh Chang [Fri, 13 Jul 2018 01:40:35 +0000 (01:40 +0000)]
Merge "Backport libaom bug fixes."
Wan-Teh Chang [Thu, 12 Jul 2018 01:52:03 +0000 (18:52 -0700)]
Backport libaom bug fixes.
libaom commit
80a5b09337a80093e1e7ae5eb540020a22949805:
dec_free_mi: Reset cm->mi_alloc_size.
libaom commit
fb0dd0bb80fc95ef016f1421b105a52fffa32816:
Clear cm->width and cm->height on alloc failure.
libaom commit
ccb27264089a8cfa1334391ebbcb6a11b8dff442:
Misc. resize fixes along with the resize test
Note: only the change to enc_free_mi in av1/encoder/encoder.c
is merged.
Change-Id: I602813230d40125e59608fa013085dca3e160c33
Jingning Han [Thu, 12 Jul 2018 17:30:05 +0000 (17:30 +0000)]
Merge "Use regular filter type for tpl model motion compensation"
Jingning Han [Thu, 12 Jul 2018 17:29:54 +0000 (17:29 +0000)]
Merge "Clean up mc_flow_dispenser()"
Jingning Han [Thu, 12 Jul 2018 17:29:43 +0000 (17:29 +0000)]
Merge "Add 32x32 Hadamard transform"
Jingning Han [Thu, 12 Jul 2018 17:00:23 +0000 (17:00 +0000)]
Merge "Relax multiplier adjustment limit"
Jingning Han [Thu, 12 Jul 2018 17:00:07 +0000 (17:00 +0000)]
Merge "Change the tpl model operating block size to 32x32"
Jingning Han [Thu, 12 Jul 2018 16:02:01 +0000 (09:02 -0700)]
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
Jingning Han [Thu, 12 Jul 2018 15:50:31 +0000 (08:50 -0700)]
Use regular filter type for tpl model motion compensation
This slightly improves the compression performance by 0.05%.
Change-Id: Ice0b1f5e1f24a77008b093f7830e51fcd6cbfa8e
James Zern [Wed, 11 Jul 2018 22:24:46 +0000 (22:24 +0000)]
Merge changes Ibcc2f6fa,Id54818a8
* changes:
test-data.sha1: update crbug-1539.rawfile
test-data.mk: add missing crbug-1539.rawfile entry
Jerome Jiang [Wed, 11 Jul 2018 19:54:03 +0000 (19:54 +0000)]
Merge "vp9 svc: Add test for intra-only for 1 SL."
James Zern [Wed, 11 Jul 2018 19:53:52 +0000 (19:53 +0000)]
Merge "decode_test_driver: break decompress loop on error"
James Zern [Wed, 11 Jul 2018 19:44:27 +0000 (12:44 -0700)]
test-data.sha1: update crbug-1539.rawfile
Use a valid frame rather than the one from the bug to avoid dealing with
trailing data. The decode would fail on x86 due to read size differences
in the entropy decoder.
The updated file was created from the first frame in:
vp90-2-02-size-08x08.webm
BUG=webm:1539
Change-Id: Ibcc2f6fa435bcf360a40fc9a202a8baba42b24da
James Zern [Wed, 11 Jul 2018 18:07:49 +0000 (11:07 -0700)]
test-data.mk: add missing crbug-1539.rawfile entry
missed in:
d95d82b15 vpxdec,raw_read_frame: fix eof return
BUG=webm:1539
Change-Id: Id54818a838c0215457c3eb82f83bd4f3a791199b
Jerome Jiang [Mon, 9 Jul 2018 20:46:36 +0000 (13:46 -0700)]
vp9 svc: Add test for intra-only for 1 SL.
In this case, verify that a key frame is inserted.
Change-Id: I70aa1974de956e657e413a34fd8bbcddf5d20c2c
Tom Finegan [Tue, 10 Jul 2018 18:38:15 +0000 (11:38 -0700)]
shell tests: Drop incorrect uses of readonly.
Change-Id: I0a01e1a7c04bbc026a1db0ba90d516548a1eaaed
Jingning Han [Wed, 11 Jul 2018 16:35:27 +0000 (09:35 -0700)]
Clean up mc_flow_dispenser()
Remove unneeded statements.
Change-Id: Ic7a3079eb36e1ec6988390958565e13d5965b30d
Jingning Han [Mon, 9 Jul 2018 18:07:52 +0000 (11:07 -0700)]
Add 32x32 Hadamard transform
Add 32x32 Hadamard transform in C implementation. Replace the
forward 32x32 2D-DCT in tpl model with Hadamard transform. This
would reduce the overhead encoding time due to running tpl model
by ~3x.
Change-Id: I1c743dab786b818d89f14928cc3998d056830aa9
Jingning Han [Tue, 10 Jul 2018 22:29:28 +0000 (15:29 -0700)]
Relax multiplier adjustment limit
Relax the Lagrangian multiplier adjustment limit from 1/4 to 1/2
fluctuation. This allows the temporal dependency model takes more
effect on changing the rate allocation across blocks.
Change-Id: Ida59ad628d35f196a1299d96e21bb684c20b0143
Jingning Han [Fri, 6 Jul 2018 21:51:32 +0000 (14:51 -0700)]
Change the tpl model operating block size to 32x32
Increase the temporal dependency model operating block size from
8x8 to 32x32.
Change-Id: I26b13493fe957d67c8646575370e651584b56ea5
James Zern [Wed, 11 Jul 2018 03:52:22 +0000 (20:52 -0700)]
decode_test_driver: break decompress loop on error
avoids duplicate errors should DecompressedFrameHook fail and a
potential end-less loop should dec_iter fail to advance.
Change-Id: Ifb2673d02188a8aad75cda8bb960bb56fe70d218
Jingning Han [Tue, 10 Jul 2018 21:40:56 +0000 (14:40 -0700)]
Fix the denominator in tpl model
The factor mc_dep_cost includes intra_cost additiona already. Hence
no need to add it again in the denominator.
Change-Id: I750ae86e1d3019b4a3aebd03dec8db362589619e
Jingning Han [Tue, 10 Jul 2018 21:36:02 +0000 (14:36 -0700)]
Enable tpl model only for ARFs
Currently only enable the temporal model for ARFs.
Change-Id: I6e7fd7bba54c3e0cf56147f049fc3ead85542d04
Jingning Han [Tue, 10 Jul 2018 21:25:03 +0000 (14:25 -0700)]
Properly set the is_valid flag in tpl_frame
Use this flag to indicate the temporal dependency model for the
given frame is properly set up.
Use the pointer address to decide if the tpl_stats_ptr array needs
to be released.
Change-Id: I541fe098f51981010011ae0af2535d8a5762d254
James Zern [Tue, 10 Jul 2018 21:49:02 +0000 (21:49 +0000)]
Merge "vp9_encoder: only alloc tpl stats if enabled"
Marco Paniconi [Tue, 10 Jul 2018 18:12:46 +0000 (18:12 +0000)]
Merge "vp9: Initialize source variance in nonrd-pickmode."
James Zern [Tue, 10 Jul 2018 17:56:32 +0000 (17:56 +0000)]
Merge "vpxdec,raw_read_frame: fix eof return"
Marco Paniconi [Tue, 10 Jul 2018 17:02:21 +0000 (10:02 -0700)]
vp9: Initialize source variance in nonrd-pickmode.
It is already initialized at superblock level, but since
it is computed per coding block, based on some speed features,
better to initialize it in pick_inter.
No change in behavior, as currently the speed features
that enable use of source_variance in pick_inter are fixed
at the frame-level.
Change-Id: Ic787ac2f389ba1bced98716096e7b5cffba856a7
James Zern [Tue, 10 Jul 2018 05:56:54 +0000 (22:56 -0700)]
vp9_encoder: only alloc tpl stats if enabled
defer the allocation to post speed feature setup
Change-Id: I20713a2b1856fd5479c883d50772a2b54bcbb3bc
James Zern [Sat, 23 Jun 2018 19:29:31 +0000 (12:29 -0700)]
vpxdec,raw_read_frame: fix eof return
fixes an endless loop caused by successful read return on eof.
since:
00a35aab7 vpx[dec|enc]: Extract IVF support from the apps.
BUG=webm:1539
Change-Id: I64dbb94189ea6a745d53a4bacc033f5f58eafb37
Luca Barbato [Mon, 9 Jul 2018 20:13:44 +0000 (20:13 +0000)]
Merge "[VSX] Add support to Power9-only vec_absd"
Marco Paniconi [Wed, 11 Apr 2018 17:59:34 +0000 (10:59 -0700)]
vp9-svc: Intra-only frame for spatial layers.
Use case is for layered (SVC) coding to allow higher
resolution layers to continue decoding with temporal references,
while base spatial layer is intra-only frame.
Made encoder changes to real-time path for encoding intra-only
frame. The intra-only frame will be followed by the overlay/copy
frame (with both packed in the same superframe).
Use existing control to enable intra_only frame.
Intra only is only applied to base spatial layer, and only
allowed under fixed/non-flexible SVC mode, and only for
1 < number_spatial_layers < 4.
Added svc datarate unittest for inserting intra_only frame
as sync frame. Added svc end to end tests to check mismatch.
Change-Id: I2f4f0106b2c4f51ce77aa2c1c6823ba83ff2f7a0
Signed-off-by: Marco Paniconi <marpan@google.com>
Paul Wilkins [Fri, 6 Jul 2018 16:02:26 +0000 (17:02 +0100)]
Delete invalid assert.
Delete assert that is not valid in all cases.
This can occur if the last group in a clip is a GF only
group. Here the frame count reflects the nominal
positioning of the "next" GF (were it to exist) one
frame beyond the of the end of the clip.
Change-Id: I0d36b83de0ab478dab032599ee7df7fff4a35cd5
Luca Barbato [Sun, 8 Jul 2018 14:03:41 +0000 (16:03 +0200)]
[VSX] Add support to Power9-only vec_absd
~5% gain for SAD.
Change-Id: Ief7d7691f837474f5b6b582129628276fdcce319
Zoe Liu [Fri, 6 Jul 2018 21:47:28 +0000 (21:47 +0000)]
Merge "Add hierarchical structure based ref frame update"
Sergey Silkin [Thu, 28 Jun 2018 09:00:00 +0000 (11:00 +0200)]
vp9-svc: add more command line options to test app.
This adds the following command line options to
vp9_spatial_svc_encoder test app:
--drop-frame=<arg> Temporal resampling threshold (buf %)
--tune-content=<arg> Tune content type default, screen, film
--inter-layer-pred=<arg> 0 - 3: On, Off, Key-frames, Constrained
Change-Id: I653d1924fb6e525edb2d1e84739be0b88e773e1c
Sergey Silkin [Wed, 4 Jul 2018 08:02:05 +0000 (08:02 +0000)]
Merge "vp9-svc: fix strings concatenation in test app."
Jingning Han [Mon, 2 Jul 2018 23:57:25 +0000 (23:57 +0000)]
Merge "Add enable-tpl-model guard"
Zoe Liu [Sat, 23 Jun 2018 02:33:38 +0000 (19:33 -0700)]
Add hierarchical structure based ref frame update
Change-Id: I23559110bae8fa2328fe9bdb6672c7b1da84e17f
Marco Paniconi [Mon, 2 Jul 2018 19:55:29 +0000 (12:55 -0700)]
vp9: Adjust segment weight for cyclic refresh.
For screen-content: use the previous actual number of seg
blocks for the segment weight, used in the rate control
for setting frame-level Q.
Small overall increase in psnr on several screen-content clips.
Change-Id: Id414fb7f1b0ba578d464437d7f9c1783a0cad310
Jingning Han [Mon, 2 Jul 2018 19:34:21 +0000 (12:34 -0700)]
Add enable-tpl-model guard
Skip operations that exercise the tpl model values if the model
is turned off.
Change-Id: I9ab3b56950f6b5a40ae4670a570885aaaadf8382
Jingning Han [Mon, 2 Jul 2018 17:01:45 +0000 (17:01 +0000)]
Merge "Exploit the spatial variance in temporal dependency model"
Marco Paniconi [Mon, 2 Jul 2018 00:26:38 +0000 (17:26 -0700)]
vp9: Fix to screen content artifact for real-time.
Reset segment to base (segment#0) on spatially flat
stationary blocks (source_variance = 0). Also increase
dc_skip threshold for these blocks.
Reduces artifacts on flat areas in screen content mode.
Change-Id: I7ee0c80d37536db7896fa74a83f75799f1dcf73d
Jerome Jiang [Sat, 30 Jun 2018 02:09:29 +0000 (02:09 +0000)]
Merge "vp9: copy source on sync frame in denoiser."
Marco Paniconi [Sat, 30 Jun 2018 02:02:35 +0000 (02:02 +0000)]
Merge "vp9: Reset params for cyclic refresh on slide change"
Marco Paniconi [Sat, 30 Jun 2018 00:04:39 +0000 (00:04 +0000)]
Merge "vp9: Reduce quality artifact for real-time scene-content."
Marco Paniconi [Fri, 29 Jun 2018 22:34:54 +0000 (15:34 -0700)]
vp9: Reset params for cyclic refresh on slide change
Reset the last_coded_q_map and the sb->index in the cyclic_refresh
on a re-encode for slide change, so the refresh can start again
right after slide change.
Change-Id: I10cbc8354de8f7c2863b4212e6793b58a048b330
Hui Su [Fri, 29 Jun 2018 22:59:51 +0000 (22:59 +0000)]
Merge "Add partition breakout models for 720p resolution"
Jerome Jiang [Fri, 29 Jun 2018 01:43:37 +0000 (18:43 -0700)]
vp9: copy source on sync frame in denoiser.
Refresh all denoiser buffers on sync frame.
Add sync frame test with denoiser enabled.
Change-Id: I562a5ef5614b92a97565e6181a79eda51d9aeb99
Marco Paniconi [Fri, 29 Jun 2018 18:15:00 +0000 (11:15 -0700)]
vp9: Reduce quality artifact for real-time scene-content.
Add scene detection flag to choose_partitioning to force split
of 64x64 block partition. This reduces artifacts on slide changes.
Bug:b/
110978869
Change-Id: I9cc79a7c03f3aa2edeb28656b09a2177b72d59a8
Hui Su [Mon, 25 Jun 2018 00:00:54 +0000 (17:00 -0700)]
Add partition breakout models for 720p resolution
Add partition search breakout models for 720p resolution,
currently enabled only for speed 0.
Compression performance change is neutral.
Tested encoding speed over 20 720p clips:
Speed gain(%) QP=55 QP=45 QP=35
max 22.1 20.3 29.8
average 10.3 9.1 11.4
Change-Id: I07499728bbc5b80035fc66fad882ea556c8d07f2
Jingning Han [Wed, 20 Jun 2018 20:15:10 +0000 (13:15 -0700)]
Exploit the spatial variance in temporal dependency model
Adapt the Lagrangian multipler based on the spatial variance in
the temporal dependency model. The functionality is disabled by
default. To turn on, set enable_tpl_model to 1.
Change-Id: I1b50606d9e2c8eb9c790c49eacc12c00d3d7c211