The write_intra_mode() function is not called when compiling with
--enable-ans and --enable-ec_multisymbol.
Change-Id: I86f9cdf554586194ecc1fba7264ea0cac86338a9
This commit makes the adaptive scan order system support multi-
thread encoding. It fixes unit test failure issue associated with
AV1/AVxEncoderThreadTest.EncoderResultTest/0.
BUG=aomedia:353
Change-Id: I61cbf9531c8deab97fb3bb17428d0b2a63cf309a
Skip rectangular transform block size coding for intra coded block
in var-tx mode, when the rect-tx is disabled.
Change-Id: If3a091d25f19bf4a67485b5d235bb3d7d0c2cd03
The WienerInfo struct requires a 16-byte alignment on x86,
since it contains filter coefficients which are loaded using
SSE aligned load instructions. But on 32-bit x86, the default
alignment of aom_malloc/aom_realloc is only 8 bytes, leading
to occasional segfaults.
To fix this, rather than using aom_realloc to resize WienerInfo
structures, we always free and re-allocate them using aom_memalign
BUG=aomedia:345
Change-Id: Ib1b2a42d4a2fa215dcc81ea481c51271ab068a37
Noticed that some ALTREF_FRAMEs could have used compound modes for its
prediction but have been labeled as SINGLE_REFERENCE mode in the frame
header. This experiment is to remove the COMPOUND_REFERENCE mode from
the frame-level reference mode choices and only leave SINGLE_REFERENCE
and REFERENCE_MODE_SELECT the two choices in the frame header.
When turning on both ext-refs and ref-adapt, compared against ext-refs
itself, a small gain is achieved. In PSNR, the bitrate saving gains are
as follows:
lowres: Avg -0.120%; BDRate -0.128%
midres: Avg -0.155%; BDRate -0.128%
Change-Id: I2cfff8a6b7eaa65ef863dbdbc4dd086d3b586f8c
CLPF performance had degraded by about 0.5% over the past six months,
which isn't totally surprising since the codec is a moving target.
About half of that degradation comes from the improved 7 bit filter
coefficients. Therefore, CLPF needs to be retuned for the current
codec.
This patch makes two (normative) changes to the CLPF kernel:
* The clipping function was changed from clamp(x, -s, s) to
sign(x) * max(0, abs(x) - max(0, abs(x) - s +
(abs(x) >> (bitdepth - 3 - log2(s)))))
This adds a rampdown to 0 at -32 and 32 (for 8 bit, -128 & 128
for 10 bit, etc), so large differences are ignored.
* 8 taps instead of 6 taps:
1
4 3
13 31 -> 13 31
4 3
1
AWCY results: low delay high delay
PSNR: -0.40% -0.47%
PSNR HVS: 0.00% -0.11%
SSIM: -0.31% -0.39%
CIEDE 2000: -0.22% -0.31%
APSNR: -0.40% -0.48%
MS SSIM: 0.01% -0.12%
About 3/4 of the gains come from the new clipping function.
Change-Id: Idad9dc4004e71a9c7ec81ba62ebd12fb76fb044a
The only compound mode used with sub 8x8 blocks is COMPOUND_AVERAGE, so
we don't have to send anything in this case
Change-Id: I90d0162e5f7f1ad205e65094293cde2a48eb77b1
- Comment out the sources that require CONFIG_MOTION_VAR.
- Add missing preproc wrap at the sites in test sources that
require CONFIG_MOTION_VAR.
Change-Id: I703c2bfd829a579793ad55ae713973d327354473
This ensures we operate at the same precision that Daala uses, which matters
when activity masking is enabled, because of the gain companding.
Metrics from Patchset 4 (which had slightly incorrect rounding):
With activity masking (5 frames only):
av1_pvq_AM_ref_5f@2017-02-07T03:37:53.702Z -> av1_pvq_AM_derf_fix2_coeff_scaling_5f@2017-02-07T00:12:24.427Z
PSNR | PSNR Cb | PSNR Cr | PSNR HVS | SSIM | MS SSIM | CIEDE 2000
0.6653 | -12.3177 | -12.1858 | 0.3350 | 4.1013 | 2.0964 | -4.0539
In particular for Netflix_Crosswalk_1920x1080_60fps_8bit_420_60f.y4m
-5.0589 | -22.3077 | -21.2188 | -7.0389 | -3.3715 |-5.7794 | -13.1891
I.e., it fixes the large regression with AM on this sequence, and
substantially improves chroma (at a lesser cost to other metrics).
Without activity masking (5 frames only):
av1_pvq_ref_5f@2017-02-07T03:52:51.279Z -> av1_pvq_derf_fix2_coeff_scaling_5f@2017-02-07T00:12:48.873Z
PSNR | PSNR Cb | PSNR Cr | PSNR HVS | SSIM | MS SSIM | CIEDE 2000
0.0989 | -0.0322 | -0.0464 | 0.1883 | 0.0795 | 0.0579 | 0.0923
Change-Id: I46b808b7c8e4733465f8bebc8336dfd5b75783ec
When convolve_round is on, av1_convolve_2d_facade will be used for
interpolation rather than av1_convolve. Will remove the experiment
code of convolve_round experiment from av1_convolve in another CL.
So far we use 4-bit rounding in the intermediate stage on top of using
post rounding for compound mode after the last stage.
This will give us roughly 0.45% gain on lowres , 0.39% on midres and
roughly 0.6-0.7% on hdres
Altogether, is 1.15% on lowresm, 0.74% on midres and roughly 1.7-1.8% on
hdres
Note that there no restriction usage of 12-tap filter in the CL.
Adding that, we will lose roughly 0.1% again on lowres.
Change-Id: I6332e1d888e28a3b3ddc29711817d66e52cb5cdf
The new_tokenset experiment replaces the unconstrained tokenset with a
multisymbol alphabet in an inventive way.
Tested configurations:
new_tokenset + ec_adapt, new_tokenset, ec_multisymbol
Change-Id: I846ab2e51c2a1dc3f2f9904ed8c47a8e98f853c5
By default, the activity masking is used with PVQ.
In addition to '--enable-pvq', '--enable-daala-dist' is also
required by configure to use the activity masking.
Change-Id: I5100a1db992f0e693e61daf5439de8ae8c64a752
For fixed-point version of PVQ, which is current default,
added MAXI(1, ) to limit the minimum companded or expanded gain to be one.
Previously, gain compand/expand function, which is invoked when
activity masking is enabled, sometimes outputs zero
then triggered the assert(gain != 0).
Metric change from floating-pt to fixed-pt PVQ is:
PSNR PSNR-HVS SSIM CIEDE-2000 PSNR Cb PSNR Cr MS-SSIM VMAF
0.02 0.10 0.08 0.11 0.01 0.02 0.13 -0.30
Change-Id: I64a60d1970d35a26af227841e4a5e50a89ddc44c
Applies only to the tests that require only the presence of
compiler support. Tests that require an instrinsic flag and an
enabled experiment not included.
BUG=https://bugs.chromium.org/p/aomedia/issues/detail?id=76
Change-Id: I1ba6ee80cadc3064068db04c15caf8cc2384ab3b
Xcode needs special handling when an executable target contains
no C++ sources, but links C++ dependencies.
BUG=https://bugs.chromium.org/p/aomedia/issues/detail?id=76
Change-Id: Ifd4f6208c8f96386194691d45279df1e70a8fc17
Fixes make clean && make runs (single and multi job) via addition of
new target aom_rtcd that all lib targets depend on. Target includes
the RTCD definition perl files, the output H files, the C files and
rtcd.pl itself.
Also,
- Adds list of lib targets (used to propagate the aom_rtcd dep)
- Use the correct symbol for av1 RTCD gen (aom_av1_rtcd -> av1_rtcd)
BUG=https://bugs.chromium.org/p/aomedia/issues/detail?id=76
Change-Id: Ia0e858220c4c2877c6e5f5ffed853be15c6cd711
Preparation for merging EOB_TOKEN. The block_zero value
corresponds to the first EOB_TOKEN: other EOB_TOKEN values will
be merged with non-zero values.
Change-Id: I94036783ee240fa916a79c544ecd716a9c24fa59
Piecewise linear fit without activity masking on subset3 intra
and objective-1-fast inter, by simple linear regression.
In combination with 79c0f32c "Remove DCT from od_compute_dist_8x8",
this gives a even trade between perceptual and non-perceptual metrics.
av1_daala_dist_30f@2017-01-23T21:32:27.902Z
-> daala_dist_scale10_30f@2017-01-31T21:52:07.635Z
PSNR | PSNR Cb | PSNR Cr | PSNR HVS | SSIM | MS SSIM | CIEDE 2000
2.1080 | 2.9645 | 3.4697 | -2.2086 | 0.2541 | -2.5232 | 2.1645
Piecewise linear-quadratic fit with activity masking, by same method.
The total effect of activity masking and daala-dist changes, with PVQ:
av1_pvq_5f@2017-01-31T01:05:24.219Z
-> av1_float_pvq_dist_scale_AM_5f_Jan31_crfix@2017-02-02T15:14:40.477Z
PSNR | PSNR Cb | PSNR Cr | PSNR HVS | SSIM | MS SSIM | CIEDE 2000
22.5041 | 42.6349 | 40.8516 | -10.3510 | -6.8030 | -16.9057 | 21.2613
Change-Id: I9b513509a03aa058dc5c1479c01d62c8fc363a34