Use 255 instead of 256, to restrict to 8-bits.
Only noise level differences in performance.
AWCY:
High Latency Low Latency
All Keyframes -0.01 -0.01
Video overall -0.01 -0.07
Google Set:
All KF Video
lowres -0.005 -0.029
midres -0.008 0.028
hdres -0.010 -0.022
Note: By moving from 18-bit to 8-bit and then
cutting off at 255 (this change, overall effect is
noise level too (neutral or better).
Change-Id: I9f2852023015e36c01203bafe486ec400b2ba46f
This fixes the coding failure when both tile-groups and ext-refs
are turned on. It clears the nightly-run unit test failure.
Change-Id: Idb67580ebe3ef625cf3ab18dcf7a274db4dacab3
Removes redundant deblocking filtering operations and buffer copies,
during search for the restoration filters.
Also, makes the order of cdef and loop-restoration consistent.
BUG=AOMEDIA:373
Change-Id: I571e331f9dfadfd2c1494f279e50510ec212ea29
With this patch, --enable-var-tx only enables recursive transform
partitioning without using rectangular transforms.
To enable use of rectangular transforms in addition, use:
--enable-var-tx --enable-rect-tx
The RD selection process is not fully tested under the var-tx flag
only. We might expect certain performance loss there.
Change-Id: Ie6aa17f1bbc3e8563b9990bc9ff79cc860d9a361
The use of target_sources in combination with generator expressions
is not supported before v3.5. Set min required version to v3.5.
BUG=https://bugs.chromium.org/p/aomedia/issues/detail?id=76
Change-Id: Ifa1ea25e17ac58d631436c31ab9d4d9231e689f2
- Build and maintain a list of configurable variables.
- Add/remove CONFIG_ variables to sync w/old build system.
- Update defaults for same reason.
- Set RTCD versions of CONFIG_ variables using the CONFIG_
vars directly.
BUG=https://bugs.chromium.org/p/aomedia/issues/detail?id=76
Change-Id: If3ca6c94a8919d92dcc5c47e0010098f5694b165
The variables robust and nodesync appear to represent the same concept.
In order to simplify, they are merged into nodesync. This change does
not alter the bitstream as this value is hard coded to 1.
Change-Id: If9b2eb52f628e3f615b6270e26569815d5e79ae0
In Daala, od_pvq_rate depended on the frame type because of H/V pred.
However, H/V pred is not in AV1, as such this code can be removed.
This changes do not impact the bitstream as currently is_keyframe is
hard coded to zero.
Change-Id: Ic4b7c91c004133bc4520870ce39e47cd6a63f298
This change improves efficiency and means that tile groups
cause negligible loss (+0.03% BDR) in the current default
encoding configurations (1 tile group no matter how many tiles)
with frame-based wrapping.
In future, when wrapper formats support tile groups, lengths
can be omitted from the last tile in every tile group.
Change-Id: Ia701e6720208fbfa727f9aef0b692a6aafbcc93f
As H/V Prediction is not implemented in AV1, pvq_theta does not need to
consider it when adjusting its parameters.
It is important to understand that the results shown here are not the outcome
of this patch but the outcome of leaving the condition in and enabling
is_keyframe. Currently, this change does not impact the bitstream as
is_keyframe is hard coded to 0 for PVQ.
The following result show that enabled for spatial intra, the H/V pred
tweaks do not yeild benefits.
Enabling the condition for all planes in a keyframe:
Subset1:
pvq@2017-02-28T20:31:50.969Z -> pvq-unreliable-intra@2017-02-28T20:30:32.049Z
PSNR | PSNR Cb | PSNR Cr | PSNR HVS | SSIM | MS SSIM | CIEDE 2000
0.0896 | 0.0860 | -0.0759 | 0.1608 | 0.1442 | 0.1599 | 0.0147
Enabling the condition for Luma plane in a keyframe:
Subset1:
pvq@2017-02-28T20:31:50.969Z
-> pvq-unreliable-intra-luma@2017-02-28T20:34:18.029Z
PSNR | PSNR Cb | PSNR Cr | PSNR HVS | SSIM | MS SSIM | CIEDE 2000
0.0713 | 0.1317 | 0.0717 | 0.1253 | 0.1365 | 0.1406 | 0.0312
Enabling the condition for Chroma planes in a keyframe:
Subset1:
pvq@2017-02-28T20:31:50.969Z -> pvq-unreliable-intra-chroma@2017-02-28T21:09:38.992Z
PSNR | PSNR Cb | PSNR Cr | PSNR HVS | SSIM | MS SSIM | CIEDE 2000
0.0232 | -0.1240 | -0.1379 | 0.0029 | 0.0187 | 0.0191 | -0.0916
Based on these results, the condition in the if statement is removed.
Change-Id: Icd2f1313952548939069b4570cf7db04632f35f3
Enable obmc mode only when there are <= 2 left neighbors and <=2
above neighbors. Also disable it when there is no overlappable
neighbors.
Gain in AWCY test: 1.60%, was 1.64% when there is no restriction
Change-Id: I2d82ef4fb4daa9b0843ac8844f99b9f412c4f379
- Quote the generator since it's almost always more than one word.
- Include AOM_TARGET_CPU when autodetected, and omit it in favor
of including the toolchain file when a toolchain file is
specified.
BUG=https://bugs.chromium.org/p/aomedia/issues/detail?id=76
Change-Id: If0ba115074b96c93fc93c97747d8f60e919bf6f7
Also adds CONFIG_BITSTREAM_DEBUG support (because it was in
aom_util/aom_util.mk, and that's partly the guidance here).
BUG=https://bugs.chromium.org/p/aomedia/issues/detail?id=76
Change-Id: I971b4025e345fd7d6d766526059f74d8b6ff2ebd
- Stop abuse of the aom_util target to expose aom_ports includes
to IDEs.
- Create aom_ports target only on appropriate platforms.
- Otherwise add the include only sources to the libaom target (aka abuse
the libaom target instead of the aom_util target).
BUG=https://bugs.chromium.org/p/aomedia/issues/detail?id=76
Change-Id: I82a27a0fc2d6ab13ea273726a4777e21ebdbd247
1. Adds a limit on number of candidate samples used for the
estimation.
2. Adds a limit on max mv magnitude for use in the least-squares
3. Makes some of the internal variables 32-bit.
Impact on coding efficiency in the noise range.
Change-Id: I8c1c3216368ceb2e3548660a3b8c159df54a8312
Since the tested functions are always forced inline in regular use,
ASM_REGISTER_STATE_CHECK doesn't make sense on this level (the test
should rather be applied to unit tests checking functions making use
of these inlined functions). The test fails on Win64 because the
Win64 ABI requires xmm6 to xmm15 to be preserved across function
calls, but the ABI is only relevant for non-inlined functions.
BUG=aomedia:371
Change-Id: Icb795083f69465cf09ec8f6871899943efaeaab8
In av1_selfguided_restoration, the values stored into 'dgd' are
unnecessarily rounded twice. This patch replaces this by a single
rounding operation.
Change-Id: I188d283137b74823f5d5447d441250520d6ee294
3-tap recursive intra prediction filters are added.
Macro USE_3TAP_INTRA_FILTER is set to 1 to use 3-tap by default.
Coding gain of FILTER_INTRA experiment in AWCY, high delay 150f
3-tap: 0.51%
4-tap: 0.68%
Change-Id: I44192dd08bfd8155f58a9b0b5cf1de88fceb762e
Removes the unneeded one (encint.h) and moves everything not needed in
the header to the .c file itself, thus this commit should make including
both ratectrl_xiph.h and pvq headers without error.
Change-Id: Ie1e8e32b546bc1357414144ea8ff9a247091e97b
Fixed the build fail in the xiphrc and daala-dist, which are tested
for inclusion in libaom__compile_experiments but produced error
as reported in above bug report.
Thanks to James Zern for reporting and suggesting how to fix.
BUG=https://bugs.chromium.org/p/aomedia/issues/detail?id=370
Change-Id: I46823255012e6c3d20b57e3bd65a45c03de8222c
The parallel_deblocking experiment is proposed jointly by Intel
and Microsoft. The following changes are implemented in this
experiment:
- deblocking filter order is changed to filter all vertical edges
of the whole frame followed by filtering all horizontal edges
of the whole frame
- filter length decision is made based on the transform block size
on both sides of the edge. block with smaller transform size
determines the final filter length.
- transform blocks on both sides of the edge are checked, only when
both blocks are skipped and they belong to the same prediction
block, filtering of that edge can be skipped.
- 15-tap filter and extended flat area detection are removed.
- special rule for handling 4x4 transform block on the super block
boundary in VP9 is removed.
Change-Id: I1aa82c6b5335d47c2f73eec8fc8bee2c08a1cf74