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: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
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"
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
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