Age | Commit message (Collapse) | Author |
|
We start mv search from the block with highest feature score, then
move on to the block's neighbors with with an searching order using
their feature scores.
We use max heap to help us achieve the functionality.
This feature is under flag USE_PQSORT
Change-Id: Ie5dc5ea715b0f9a7a594e5080a7cb4f5309f5597
|
|
This CL is for facilitating the upcoming change,
a variant implementation of change mv search order according to
feature score
Change-Id: Ie6024b1a5ec02343aea6aa81fc14f94e2e515d06
|
|
Change-Id: If45fba8a74186803eec09da7dbaf2e1fe4e9e156
|
|
Sort the feature_score in descending order.
Do mv search from the block with higher score to the block with
lower score
Change-Id: I47a87cd66ea3e40d8c8fc55a7517ab8aa10fdb94
|
|
|
|
|
|
|
|
|
|
|
|
The quantization step size should be scaled properly for high bit depth
settings.
This only affects speed 0.
Encoder speed change is almost neutral.
There is a small coding gain of 0.09%.
Change-Id: I96b2bae03a53ce8ccd6428e3a050cfe18e06a024
|
|
Refactor to form a systematic reference frame update system for
the temporal dependency model. This prepares to support the multi-
layer ARF system.
Change-Id: Idb90fbe3966695b487c1a0a52f4626b0b6807434
|
|
|
|
|
|
|
|
|
|
For speed 0:
coding loss 0.045%; encoder speedup 6%.
For speed 1(only affects videos smaller than 720p):
coding loss 0.11%; encoder speedup 6.5%.
Change-Id: Ie441c9bad2021503e86fefd2f1fa3e1a42070bec
|
|
Process the frames in the order of GOP structure definition.
Decouple the dependency on rc->baseline_gf_interval.
Change-Id: I0d42c542aca552975cc8f08b0eb8b22ccf6a9537
|
|
Keep the frame operations needed within a group of picture.
Change-Id: Iece2e855f21860c930b34a3c586f084f7c61db00
|
|
Add frame_gop_index to track the frame offset within a group of
picture. This reworks the GOP frame offset calculation and use
case. The coding stats remain identical.
Change-Id: I94d0957bcc327f6bbeac6e84157635663c36b953
|
|
Add an encoder side reference frame buffer pool to store the
reference frames for tpl model. This servces as an intermediate
step to support multi-layer ARF system. The buffer memory size will
be optimized afterwards.
Change-Id: If2d2f095d4911a4996f6c2a0b0a8e3d235ceadb2
|
|
Generalize the tpl model framework to support the newly designed
GOP structure system. The existing tpl model assumes single layer
ARF.
This design will separate the tpl model operation for GOP with
and without ARF cases. When a GOP has ARF, the maximum lookahead
offset would upper limit the needed frame buffer to build the
tpl model for the entire GOP. When a GOP does not have ARF, we
would use the temporal model in a different approach.
The first step will focus on GOP with ARF. All the tpl model related
operation will only be triggered by ARF frame generation.
Change-Id: I13ab03a7bc68f5a4f6b03f2cb01c10befe955e73
|
|
|
|
|
|
|
|
This patch optimized apply_temporal_filter function. The diff^2 for each
pixel in the 16x16 block is calculated once beforehand, so that we don't
calculate it multiple times while evaluating a pixel's neighbors. This
would speed up the function.
Change-Id: Ibdb8b041f317fd6df198950e2acf9cfcde26860d
|
|
This affects speed 0 and 1 only.
Tested on lowres_bd10(480p) and midres_bd10(720p),
speed 0 speed 1
coding loss: 0.07% 0.10%
encoder speedup: 14% 6.5%
Change-Id: I5812400d8c7393321b7284d3fca06026842390b5
|
|
|
|
Tested on lowres_bd10(480p) and midres_bd10(720p), average coding
loss is 0.09%; average encoding speedup is 9%.
Only speed 0 is affected.
Change-Id: Ia8d48c1c6d1669745f0e956b172572a37e42f0c7
|
|
|
|
Change-Id: I61447b7a21ac5b03f2a6accd6e433d8f9369e508
|
|
This CL modified 4-tap interp filter coefficients to be even numbers,
which would help in writing 4-tap filter SIMD optimizations. The coding
performance change was negligible. Speed 1 borg test showed:
avg_psnr: ovr_psnr: ssim:
lowres: -0.003 -0.012 -0.017
midres: 0.029 0.018 0.043
hdres: 0.024 0.044 0.033
Change-Id: Id7c54bb9a9c1aee19c41bc6f1dc3b9682d158bba
|
|
|
|
|
|
* changes:
Simplify mode_estimation / tpl_model_store
Move [inter/intra]_cost change to mode_estimation
|
|
This is for non_greedy_mv experiment only
This is part of the change of changing mv search order according
feature_score.
Change-Id: I432efccd83d448a4a275dffd37921c76c3d84588
|
|
|
|
The gop index 0 is default as kf / gf. The effective first coding
frame controlled by the current GOP rate allocation is indexed 1.
Call the tpl model build for the current GOP once at index 1
position. This would unify the calling system for single/multi-layer
ARF GOP structure.
Change-Id: I4ce69337e04646098d5513c0aa56b4e0b4483337
|
|
|
|
1) Let mode_estimation() save the results into tpl_frame directly
2) In tpl_model_store(), replace copies of tpl_stats parameters by
memset()
Change-Id: Ia5978d91cb60cf896bd53d3f27701ef9ae3ba09a
|
|
Change-Id: I3e3754f349d31d17554f02bd14cd34620057ddcb
|
|
* changes:
Move feature_score into an independent for loop
Add set_mv_limits()
Move lambda into TplDepFrame
|
|
Added the 4-tap interp filter, and used it for speed 1 sub-pel motion
search. Speed 2 motion search still used bilinear filter as before.
Speed 1 borg test showed good bit savings.
avg_psnr: ovr_psnr: ssim:
lowres: -1.125 -1.179 -1.021
midres: -0.717 -0.710 -0.543
hdres: -0.357 -0.370 -0.342
Speed test at speed 1 showed ~10% encoder time increase, which was
partially because of no SIMD version of 4-tap filter.
Change-Id: Ic9b48cdc6a964538c20144108526682d64348301
|
|
Added the accurate sub-pel motion search. In this patch, used the 8-tap
filter in sub-pel motion search, and this was enabled at speed 0.
Speed 0 borg test showed that
avg_psnr: ovr_psnr: ssim:
lowres: -1.363 -1.403 -1.282
midres: -0.842 -0.849 -0.720
hdres: -0.480 -0.488 -0.503
Speed test at speed 0 showed ~8% encoder time increase.
Change-Id: I194ca709681ea588f3f6381093940e22d03c4d7b
|
|
|
|
We aim at change the mv search order according to feature_score
This is part of the change.
Change-Id: I67700eba014df92190eabc78060cf29adf0fc38b
|
|
Change-Id: I9e8f8ed3eb150b3af1f465f595000bd05d43f3f6
|
|
Set up the unit scaling factor used during motion search.
Change-Id: I6fda018d593b7ad4b7658d44c39be950a502d192
|
|
Take the original loopfilter multi-thread optimization
(dafe064289a917977439ab6f4f002b9946496084) along with the fixes for bugs
1558 and 1562.
BUG=webm:1558
BUG=webm:1562
Change-Id: Ibbf6bd13f4ffff0e79184ccfd6b85a49e067a6d8
|
|
Change-Id: Id93565cca41e00d4ab5de4c6de30accabf2adc52
|
|
The last element of the cpi->scaled_ref_idx array was not used, so
reduce the array size by 1.
The corresponding libaom CL is
https://aomedia-review.googlesource.com/c/aom/+/72445.
Change-Id: I9166f0fbe1a7898c8b611b1535fcc74b4f766997
|