Adds a speed feature to control which references to use
to compute global motion.
Also adds logic to not compute duplicate sets of
parameters when reference frames point to the same
buffers.
Includes some renaming of functions to set good speed
features to make things clearer.
Change-Id: I641d33441fde98af18cad8d4db49cf7d5d153ead
Speed 8 called rd_use_partition(), that was from VP9 and was not well
maintained. This patch removed speed 8 in av1 and the unit test.
BUG=aomedia:478
Change-Id: I1379b0327c0283a096680607de0e2b774cea88d0
This unit test was ported from VP9. To prevent the motion vector out of
range bug, added a motion vector unit test. In the 4k video encoding,
always forced to use extreme motion vectors and also encouraged to use
INTER modes. In the decoding, checked if the motion vector was valid,
and also checked the encoder/decoder mismatch.
Change-Id: I1c72ea7c32a3cec9c67f1bbdc168e60507e57516
Also use int instead of int64_t since sf->exhaustive_searches_thresh is
an int and we only make it smaller.
Change-Id: I38c9ebd97f085cb7ce5094dfc98942bb2171ee0f
Added 2 tile encoding modes:
TILE_NORMAL mode supports the large-scale tile coding up to 1024 x 1024
tiles;
TILE_VR mode supports the large-scale tile coding and also the decoding
of a single tile.
TILE_NORMAL mode allows the non-vr content to be encoded in multiple tiles
without using the coding tool that are designed for vr applications.
Change-Id: Id804806a1bbcb916b7f5dc7e2c5509d88f3defcb
The "good" speed levels are universally better than the "rt" ones,
running faster to achieve the same quality.
rt mode also turned off alt refs and lag-in-frames, but these
are still accessible separately (and the low latency test case
explicitly sets them).
Some features were used by the rt scale and not the good scale.
Two additional "good" levels, 7 and 8, were added to accomidate
these features and not reduce test coverage.
Change-Id: I3a6a78ddb664511762c197bc41f3a9909665b565
When ext-refs is on, the encoding of HD videos, e.g. 1080p sequences
will cause the failure to allocate up-sampled frame buffers. This CL
temporarily turn off the use of upsampled references when ext-refs is
on for any video resolution larger than 720 in either dimension. A
more effective scheme for up-sampled referencing should be later
considered.
With the fix, the AWCY performance gains of ext-refs, vs baseline are:
PSNR Y
Average -2.55%
1080p -2.81%
360p -2.38%
720p -3.10%
Change-Id: Ica5e75d82190cd68e64c536503e3559f1cfdbdd1
This option increases runtime by 20% and is only marginally
better than good cpu-used=0:
PSNR | PSNR Cb | PSNR Cr | PSNR HVS | SSIM | MS SSIM | CIEDE 2000
-0.3382 | -0.3911 | -0.4875 | -0.2982 | -0.2992 | -0.3164 | -0.3686
It is also not well integrated with speed_features.c, which is
the main reason for the removal.
Change-Id: If88c50367f63b860ad57f650869b978ec7734aad
The previous limit was <=1080p, which was sufficient to keep RAM
usage below 3GB for the 8 bit path, but turns out to be insufficient
for the 10 bit path.
Change-Id: I7a19261928a4e1a71f5f297125651113a2465d3d
This commit implements support for twopass encoding using the xiphrc
experimental rate control system. Most of the code and logic comes
from the theora project encoder.
Currently support is limited to the bitrate targeting mode of the
rate control system and while it does visibly improve quality and does
bring rate closer to the target than the one pass mode there's still
tuning and bug fixing to be done.
Change-Id: Iae0d65bbce5ddfbb95b436e2238a43d6100a23b3
- For resolution > 1080p, this CL also disables upsampled
references for best and realtime quality deadline besides
good quality deadline.
The following CL only disabled the good quality deadline:
https://chromium-review.googlesource.com/#/c/405761/
- The issue was found by a segmentation fault happened in 4K
--best mode encoding test. Current CL fixes the encoder
segmentation fault temporarily.
- Another bug is filed:
https://bugs.chromium.org/p/aomedia/issues/detail?id=108
to track down the segmentation fault.
BUG=aomedia:107
Change-Id: I6f4bf14762b8e92d7b501d752167414cf37a6b26
Upsampled references currently increase the size of references by
64 times. This patch limits the memory used by the encoder to
about 3GB when encoding high bit depth content.
This should be re-evaluated in the future, if doing 8-tap
resampling in the motion search becomes reasonably fast, or if
the upsampled references are reduced in size (by omitting some
subpel positions and interpolating them instead).
Change-Id: I6d84ff0d6202ec46f4fa53e268e68aa808e5df85
Drop some speed features used in speed 2 and above, during the
algorithm development process. This helps simplify the codebase.
Change-Id: I3b2f5560d90b00d2d8fd57c2cb36f6ddd3f228e4
Cherry-Picked the following commits:
0defd8f Changed "WebM" to "AOMedia" & "webm" to "aomedia"
54e6676 Replace "VPx" by "AVx"
5082a36 Change "Vpx" to "Avx"
7df44f1 Replace "Vp9" w/ "Av1"
967f722 Remove kVp9CodecId
828f30c Change "Vp8" to "AOM"
030b5ff AUTHORS regenerated
2524cae Add ref-mv experimental flag
016762b Change copyright notice to AOMedia form
81e5526 Replace vp9 w/ av1
9b94565 Add missing files
fa8ca9f Change "vp9" to "av1"
ec838b7 Convert "vp8" to "aom"
80edfa0 Change "VP9" to "AV1"
d1a11fb Change "vp8" to "aom"
7b58251 Point to WebM test data
dd1a5c8 Replace "VP8" with "AOM"
ff00fc0 Change "VPX" to "AOM"
01dee0b Change "vp10" to "av1" in source code
cebe6f0 Convert "vpx" to "aom"
17b0567 rename vp10*.mk to av1_*.mk
fe5f8a8 rename files vp10_* to av1_*
Change-Id: I6fc3d18eb11fc171e46140c836ad5339cf6c9419