Граф коммитов

20318 Коммитов

Автор SHA1 Сообщение Дата
Angie Chiang 77368af8f9 Change the interface of av1_cost_coeffs
This is to simplify the integration of lv_map experiment

Change-Id: I13742b38fdadaf9d9f609de19e9dff4cce5268af
2017-03-25 01:10:54 +00:00
Jingning Han 8e67c05f53 Fix tree to cdf index mapping
This fixes the mis-aligned cdf model derived from tree based
model. It resolves the compression performance regression in
dual filter, intra mode, inter mode, and transform block type
coding, when ec-multisymbol is enabled by default.

With dual filter enabled, the performance regression was 3.6%
loss for lowres. This fix brings the performance gains back to 1%
gains.

Change-Id: I80f5485386045908c152c9c11eeacbc650f1e324
2017-03-25 00:15:28 +00:00
hui su 9bc1d8de72 Fix a conflict between palette and cb4x4
Palette is only enabled for blocks>=8x8

Change-Id: Ia12d42413b0345e5f298ded9e41118622008d233
2017-03-24 20:43:22 +00:00
Yushin Cho d767bebd5c Fix the missing init for ec-adapt with parallel tile decoding
Initializing the tile context from the frame context
was missing in decode_tiles_mt().

Change-Id: I7758377cae85f5cc8adedc01a3086104c10d507b
2017-03-24 20:26:52 +00:00
Debargha Mukherjee 07b1d38fe7 Global motion small fix.
Slight improvement in coding efficiency.

Change-Id: I24febc9e3a12398173853d61dbcc3e75e8c79d22
2017-03-24 19:10:19 +00:00
Steinar Midtskogen 5cedcd81e0 Avoid calculating dering direction and variance more than once
Gives identical bitstream and about 2.5% faster encoding with
used-cpu=4.

Change-Id: Ic7faf2224e51de01bb16af050bb29540862d54ac
2017-03-24 19:02:29 +00:00
hui su a531571a2d Make some inverse transform functions static
Change-Id: If7ccca58c816edd09e5ffec1b0bc97c5ac6bee97
2017-03-24 18:23:34 +00:00
Jean-Marc Valin 7677d431a1 Enable cdef by default
high-latency, cpu-used=0:

   PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
-2.0680 | -0.9789 | -0.7987 |  -0.7414 | -1.6257 | -0.8961 |    -2.0220

Low-latency, cpu-used=0:

   PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
-3.9175 | -2.1697 | -2.5191 |  -2.4382 | -3.4157 | -2.5755 |    -3.6688

Low-latency, cpu-used=4:

   PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
-7.5800 | -4.3697 | -4.3494 |  -5.4149 | -7.8724 | -6.0894 |    -7.3975

Change-Id: Ib784ed088fa537cf47d87477954c2d5047b3c42c
2017-03-24 18:20:59 +00:00
Angie Chiang db0c7d4fd0 Use av1_set_txb_context in encode_block
Change-Id: Ida4a10fae54591f8f5b740739ab71a2650303958
2017-03-24 17:34:48 +00:00
Angie Chiang b3a12b5e41 Use av1_set_txb_context in block_rd_txfm
Change-Id: Iea2c2ab6f606d6bfc98684dc0b7d32b0a940713f
2017-03-24 17:34:48 +00:00
Angie Chiang 36aca339a1 Separate set context from av1_encode_block_intra
Add av1_set_txb_context to perform context setting.
This will make the code cleaner and facilitate
lv_map experiment implementation

Change-Id: Iea7e1e8ff6820e2c9cf72961adaa58346a7eca75
2017-03-24 17:34:48 +00:00
hui su 853a1136c7 Fix a bug for ec-adapt in decode_coefs()
Use correct tranform size context.

BUG=aomedia:408

Change-Id: I4781a18b1f66c82a5f7aab54f11fbbd6772a9c79
2017-03-24 17:29:02 +00:00
Yaowu Xu 41a36ded53 Fix compiling for supertx
Change-Id: I0a067e89d544f72d7ce08b0e4cccb77c4c3c9497
2017-03-24 17:27:39 +00:00
Jean-Marc Valin 1f89d0f880
Fix CLPF test to avoid looking outside the frame
Change-Id: Iee9bc41a19d754e234a083f4416b938950f719a5
2017-03-23 21:48:19 -04:00
Jean-Marc Valin e575977311 Avoid having to include cdef.h from onyxc_int.h
Avoids having to forward declare AV1_COMMON which was causing problems.

Change-Id: Iab90e6b5683a737feeec0574e31cf4bd3e02a776
2017-03-24 00:29:33 +00:00
Jean-Marc Valin 1df427eff8 Fix ext_partition with cdef
Change-Id: If3a4c7e6aee747afd675e0233560f6e721c10f79
2017-03-24 00:29:33 +00:00
David Barker 9620bcd565 Re-enable av1_nmv_ctx() when ext-inter is enabled
Currently, mbmi->ref_mv_idx can be set to a nonzero value
on the encoder side if mbmi->mode is one of NEARMV, NEWMV,
NEAR_NEARMV, or NEW_NEWMV. But it can only be nonzero on the
decoder side if the mode is NEARMV or NEWMV. Hence av1_nmv_ctx
has previously been disabled when ext-inter is enabled, to
prevent a mismatch due to this.

This patch changes the encoder behaviour to match the decoder
behaviour.

Change-Id: Icfe41fb72e76731ae373fe8c6065f5e003f6414f
2017-03-23 23:41:37 +00:00
Jingning Han 008ea46a19 Account for 2x2 tx_size in extrabits_size
Offset the transform block size with respect to TX_4X4 when
counting the cat6 extra bit size. This accounts for the potential
use of 2x2 transform block size in cb4x4.

BUG=aomedia:405

Change-Id: Ia15ac123e4f31dc66455c3aa6925ae5e754de493
2017-03-23 22:34:37 +00:00
Jean-Marc Valin e9f7742437 Do real chroma RDO search for CDEF
Chroma now has a list of strenghts too, with the superblock signalling
shared between luma and chroma.

low-latency, cpu=4:

   PSNR | PSNR Cb | PSNR Cr | PSNR HVS |   SSIM | MS SSIM | CIEDE 2000
-0.0114 | -1.4626 | -1.4745 |  -0.0423 | 0.0430 | -0.0001 |    -0.7416

Change-Id: I389c77f1d80020f810e45f8502c656ad9d397c8c
2017-03-23 21:57:30 +00:00
Debargha Mukherjee b9370acd43 Simplify warped motion estimation to use 2d ls
Use a simpler warped motion estimation scheme that uses a 2d
least squares problem, where the underlying assumption
applied is that the motion vector computed at the center
of the current block using the warp model is exactly the same
as the motion vector transmitted for the block.

The main motivation is to reduce the complexity of the
estimation process.

Coding efficiency drop is about +0.25% on lowres:
-1.152% (from -1.396%).

Also, removes code for non-approximate division and bakes
approximate divison in.

Change-Id: Ie4ad8e32593b09f7e1920c70b0b92545236ddc54
2017-03-23 21:55:00 +00:00
Alex Converse 561d0af0e3 Drop the CPUUSED symmetry around zero.
Change-Id: Ifda6ddec1e0c9aff29d531c5bf6411c0072c7b0e
2017-03-23 20:59:58 +00:00
James Zern 097fef9fc7 examples: quiet -Wshorten-64-to-32 warnings
all around usage of strtol/strtoul

ported from libvpx:
08b8b6bb8 examples: quiet -Wshorten-64-to-32 warnings

Change-Id: If907c89f107a068987aa71ddd93cee9a7389e4cd
2017-03-23 20:13:18 +00:00
Yushin Cho 31b980aaf0 Delete unused od_encode_quantizer_scaling() of PVQ
Frankly I don't know what this was exactly doing in Daala
but it cannot be supported in AV1 because
state.sb_q_sacaling is not defined.

Change-Id: I75cb9080aa2a4af544b436b07ddcb9c27b3d25c4
2017-03-23 19:57:10 +00:00
Jingning Han 74752ca1ff Silient a compiler warning in av1_decode_block_tokens
Change-Id: I581bdb5edacd92fd40b28327fcd5bfb062dc9b5b
2017-03-23 19:46:45 +00:00
Angie Chiang 36d616b105 Implement update_txb_context for lv_map
Change-Id: I6bedc3a1a40e551ce4b3989382b7706a589c08f2
2017-03-23 19:42:54 +00:00
Angie Chiang a2d5c9483d Clean up update_and_record_txb_context
Change-Id: Icbf9a2f31eb7f6c385266a0236d2ef266f43e409
2017-03-23 19:42:54 +00:00
Alex Converse ce32f705a8 configure: use -Wundef for C sources
Change-Id: I1cc0d4b54263264fd1ffffb4cf33833ea841acde
2017-03-23 19:08:20 +00:00
Alex Converse fa16041c40 Fix Wundef errors in simd intrinsics
Change-Id: I551eda906c96fac77125e10e6f71e9a6edca5baf
2017-03-23 19:08:20 +00:00
Fergus Simpson 7a71d0a0d1 frame_superres: Add members to AV1_COMMON
Adds the superres scale numerator, width, and height to the AV1_COMMON
struct for later use in encoding and decoding. This value will also be
added to the uncompressed frame header.

A #define statement is also added to represent the denominator - 16.

Change-Id: I4acec39ef3c67fa9f7118dac28daec3a2d734ed5
2017-03-23 18:47:58 +00:00
Alex Converse 00b7e27663 Fix Wundef warnings in public headers.
Change-Id: Ibd1f256dad4508194c6f23b84b6b6b6d67b9f92a
2017-03-23 15:43:04 +00:00
Alex Converse 64d7ef6746 Fix Wundef warnings inside the codec
Change-Id: I2f4a5c836905b089b91b211368bf3a0dea682b75
2017-03-23 15:42:52 +00:00
Debargha Mukherjee e8e6cad7f9 Split current block samples for warp estimation
Change-Id: Iebc74024475c7cb88650b65df9f23b1a5e70021c
2017-03-22 17:48:08 -07:00
Jean-Marc Valin 0a8026aa7a Fix bug in cdef MSE computation
od_dering() modifies the input signal

Change-Id: I886400037ec4b438742fcbadf1eecda8819f9b8b
2017-03-22 23:26:55 +00:00
Yue Chen dd6e402a3a Remove check for identical neighboring mv field in WARPED_MOTION
This will allow us decode motion mode without knowing motion vectors
in the neighborhood.
Improves the performance by 0.3% (1.1->1.4)

Change-Id: Ie18ee2b02b1d2f89615bc8fa423beb1f9bd9a678
2017-03-22 22:32:04 +00:00
Jean-Marc Valin 5f5c132fef Jointly optimizing deringing and clpf
We now signal joint strengths and use a greedy algorithm for the search.

low-latency, cpu-used=4:

ll4-cdef@2017-03-22T03:42:10.815Z -> ll4-cdef-newsearch-var-header-newlambda-refine4@2017-03-22T15:56:46.471Z

   PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
-0.0792 |  0.3551 |  0.4393 |  -0.0108 | -0.1338 | -0.0141 |     0.1452

Change-Id: I619ae1c7c7d7ec04fe993cabc5773b07c3f5b201
2017-03-22 20:59:34 +00:00
Angie Chiang 800df032b1 Add forward probability update for lv_map
The feature is implemented in the following two functions.
av1_write_txb_probs
av1_read_txb_probs

Change-Id: I0b646e17ec54d7a10a77a6853439217091455af1
2017-03-22 20:22:06 +00:00
Angie Chiang 7d7ead9c22 Update txfm_partition_prob when PVQ is on
Change-Id: I08e4bbbef788079e27410359e5e0b1ad8542f72a
2017-03-22 20:22:06 +00:00
Angie Chiang 5c0568a19f Sync ENC/DEC behaviors of update scan count
Change-Id: Id70fbfbca6c53a0aa15ff5606bb972e7412b3ed0
2017-03-22 20:22:06 +00:00
Angie Chiang 0eb767b818 Change exit(0) to assert(0) in txb_common.h
This will provide better indication of abnormal code flow.

Change-Id: I7e6cdcf77f13c709137e6524c94b0911cd5216ed
2017-03-22 20:22:06 +00:00
Angie Chiang bb100e274e Add av1_adapt_txb_probs()
This is for backward updating probability model of lv_map

Change-Id: I0e943e271e3cb8a90c33263b4d62db90bf2e89b0
2017-03-22 20:22:06 +00:00
Angie Chiang fe2ad262bd Avoid use static array for coeff_band
Using static array will increase program size

Change-Id: Ic5378a78f1c54a8ce9ebc41fa2f1b3e3f91d1f1d
2017-03-22 20:22:06 +00:00
Tom Finegan 46b59abd69 Add armv7 iOS support to the cmake build.
BUG=https://bugs.chromium.org/p/aomedia/issues/detail?id=76

Change-Id: I07869d1bf46f0c3a918e317445e10774e5d1657c
2017-03-22 19:12:14 +00:00
Rostislav Pehlivanov 165f32dce7 xiphrc: use regular asserts intead of OD_ASSERT
Change-Id: Id29bce3dd36225e9ac88e5ab1ad93c368a3708d9
2017-03-22 18:44:26 +00:00
Arild Fuldseth (arilfuld) 54de7d60d6 Disallow cm->delta_q_present_flag=1 when cm->base_qindex=0.
Delta quant doesn't make sense if the intent is to encode
the frame in lossless mode.

BUG=aomedia:393

Change-Id: Ic26e30267dd3a061d7ee5e980b6950366f06b32f
2017-03-22 07:25:18 +00:00
Thomas Daede 6ff6af6194 Add PVQ high bit depth support.
Change-Id: I4d43d33725a5a0e6fdfa1168d1397cb122366b19
2017-03-22 04:42:42 +00:00
Tom Finegan 5afa1922b1 Add arm64 iOS support to the cmake build.
BUG=https://bugs.chromium.org/p/aomedia/issues/detail?id=76

Change-Id: I6c246c0a5399e34e0eeeadc98de21cbf5b850af6
2017-03-22 01:02:52 +00:00
Alex Converse a535ef10cd new_tokenset: Optimize decode_coeffs
- Simplify arithmetic
- Combine branches
- When nesting branches do more predictable branches first

About 2.6% faster decodes at very high token rates.

Change-Id: I2802fd47a78c144e4d89c59288590fc4b095a504
2017-03-21 22:27:31 +00:00
Rostislav Pehlivanov 6ac579b94c xiphrc: set frame_subtype to frame_type
We account for golden P frames and altref P frames using separate scales
unlike Theora which used the same scales as regular P-frames.

Change-Id: I87eca16de4fcd8fabe2a45fb9121c6e22ff70f61
2017-03-21 22:22:23 +00:00
Rostislav Pehlivanov 9545e42e91 Remove unused macro from PVQ code
Change-Id: Ic01ba6097a8fe865d2d7e156bd600e58b63814d1
2017-03-21 22:22:14 +00:00
Rostislav Pehlivanov c760697861 Fix building PVQ with OD_FLOAT_PVQ defined
Got broken due to compiler function definition errors when SIMD PVQ
got merged.

Change-Id: I5a98578e74173f21634c6c9ea054f6efe3051ef9
2017-03-21 22:22:03 +00:00