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

21043 Коммитов

Автор SHA1 Сообщение Дата
Tom Finegan ce0a9ea30b Improve nasm support in CMake build.
Fail at configure time when required features are not
present. Currently requires only necessary x86 object
formats and the presence of the -Ox opt mode arg.

BUG=aomedia:76

Change-Id: Idc372e8ed121a600e87c46c0d29d5322cfceaec8
2017-06-07 14:48:06 +00:00
Luc Trudeau f817e53995 [CFL] Move cfl_init out of plane loop
Change-Id: I3ce09c03d4306c1f2a9c70aa1e82126493bc9406
2017-06-07 12:36:52 +00:00
Urvang Joshi d339595c84 temporal_filter.c: Dedup hbd / non-hbd code.
Change-Id: I403f7ab5aa27894d56d9efdbb52c7ded223dd11a
2017-06-07 02:04:46 +00:00
Yi Luo 7e2dce03ea Misc quantize unit test fix to conform coding style
Change-Id: I4e9e6dc6c86de24c6a33d7078c29a853e142c062
2017-06-06 22:10:11 +00:00
Alex Converse d5d9b6cad5 intrabc: Fix mode and MV cost
objective-1-fast 1st KF: -0.07 BDRATE-PSNR
twitch-1 1st KF: -0.04 BDRATE-PSNR

Change-Id: I089900514c40f3b8b77708dac2c8bfbce2f540ff
2017-06-06 20:58:40 +00:00
Alex Converse 6b2584c62b intrabc: Elide subpel bits
objective-1-fast 1st KF: -0.04 BDRATE-PSNR
twitch-1 1st KF: -0.04 BDRATE-PSNR

Change-Id: I74e8e43278a3d228f9b0a9af014e69f80aa90a0f
2017-06-06 20:58:40 +00:00
Tom Finegan 746a7853f7 Add doxygen template to CMake docs target.
- Adds the template file to the target enabling easy
  edit via IDE editor.
- Drop a generated file comment at the beginning of
  the generated doxyfile in hopes of informing users it
  should not be modified.

BUG=aomedia:76,aomedia:559

Change-Id: Id4e2762a5dae145927e7b7f1f6689744150ba090
2017-06-06 20:20:44 +00:00
David Barker 185575a771 Fix some UBSan warnings
* Make intermediate arrays in av1(_highbd)_warp_affine_c signed,
  to avoid integer overflow when multiplying an 'unsigned int'
  by a negative 'int' value.

* Pad out arrays in masked_variance_test.cc so that the array
  stride is a multiple of 16 bytes.
  This fixes some UBSan errors in masked_variance_intrin_ssse3.c
  related to unaligned loads of 32-bit values.

BUG=aomedia:572

Change-Id: I0cf786c94870ff128c883bed8e900b0686afc3f7
2017-06-06 17:45:28 +00:00
David Barker c2d500aa63 Fix warp filter test with --disable-ssse3
Put the test cases for av1_warp_affine_ssse3 behind a
"#if HAVE_SSSE3" condition

BUG=aomedia:582

Change-Id: Ide55dc1cf6a1d1b0c37db6d17488ac3f8e113888
2017-06-06 16:03:33 +00:00
Urvang Joshi 766a389b58 Add a new experiment "rect-intra-pred".
Earlier, intra prediction for rectangular blocks was performed by
running two steps of prediction on square sub-blocks.

With this experiment, we do proper intra prediction for rectangular
blocks. This ensures that we make use of all available neighboring
pixels especially for directional modes. For this, all the intra
predictors were updated to work with rectangular transform block sizes.

Performance improvements are small but free of cost:

All Intra frames:
lowres: -0.126
midres: -0.154

Video Overall:
lowres: -0.043
midres: -0.100

[Could not get AWCY results due to a backlog.]

BUG=aomedia:551

Change-Id: I7936e91b171d5c246cb0a4ea470a981a013892e6
2017-06-06 16:02:38 +00:00
Luc Trudeau dac5e391af [CFL] Get subsampling from AV1 common
This change does not impact the bitstream
  PSNR | PSNR Cb | PSNR Cr | PSNR HVS |   SSIM | MS SSIM | CIEDE 2000
0.0000 |  0.0000 |  0.0000 |   0.0000 | 0.0000 |  0.0000 |     0.0000

Change-Id: I6e131e91bad5efa345ed2542ae970eb6122eff51
2017-06-06 15:32:04 +00:00
Luc Trudeau e2ac9855f2 Move FrameContext out of plane loop
Change-Id: Ideaeb52dbaf87e5a68da90cb94b0517760cb9d5c
2017-06-06 02:42:35 +00:00
Debargha Mukherjee 2dd982e4f9 Make loop-restoration compatible w/ frame_superres
When frame_superres is on, loop-restoration should work
on the size of the upscaled frame and not on the internal
width and height in the common structure. This patch
makes the necessary changes on the encoder and decoder
side to enable that.

Change-Id: I1d1c024ac6f95944169d90647b4c5a61354a5cc6
2017-06-06 00:24:59 +00:00
Luc Trudeau d28e91de1f fix for zeromv[1] might be uninitialized
This resolves issue #581.

Also moves the mode if statement out of frame loop

Change-Id: I673bc9196ee56f7612b3aa943bb1ceb31c659b28
2017-06-05 22:02:03 +00:00
Tom Finegan 375ee84923 CMake test target tweaks.
Exclude the test targets from Visual Studio and Xcode generation
runs unless explicitly requested. The test run takes hours, and
default behavior in the IDEs is to build all targets.

BUG=aomedia:76

Change-Id: I37e9904bd8d373a399d7d5fa49fe02771011f9d2
2017-06-05 21:46:28 +00:00
Urvang Joshi 875a6675a7 is_directional_mode: Check for directional modes directly.
Earlier, the condition was negating all non-directional modes to check
if a mode is directional. This was error-prone, e.g. when a new
non-directional mode is added.

By checking for directional modes directly, we avoid such errors.

Change-Id: Ia4a62e278cd73078c53ed5096db646eff77f054e
2017-06-05 20:52:20 +00:00
Yue Chen e251825e6d Fix the rd loop for interinter compound types
Will enable COMPOUND_SEGMENT for blocks > 32x32, which does not
support COMPOUND_WEDGE

Change-Id: I7373ed3875393a4eac31e1292e26677d159f5d95
2017-06-05 12:38:52 -07:00
Angie Chiang 9fb7aad9fe Revert "Copy ctx in get_entropy_contexts_plane for lv_map"
This reverts commit 90dad2e414.

Reason for revert: Checked this in by accident

Change-Id: Icbf8e6a76e5f0da8cee6365d03c41dea5b94775d
2017-06-05 18:50:39 +00:00
Sarah Parker 81f6ecd121 Early termination for warp error computation
This terminates the computation for the warp error once
the frame error exceeds the best frame error found
so far to avoid unneccessary computation.

Change-Id: I094a0b3e13f8b91610e051cb91d20a815879dd80
2017-06-05 17:19:12 +00:00
Yaowu Xu 28c779beb3 Change to use static arrays
Fixes build of tests in msvc

Change-Id: Iede251b2224945940be9de701d2c99d838e1ca43
2017-06-03 08:40:49 -07:00
Angie Chiang aadbb02519 Mark SMOOTH2 filter under USE_EXTRA_FILTER flag
Change-Id: Ia9a5d818e8c2ff9b4cc41c6d7950cfe005c20bfc
2017-06-02 22:24:14 +00:00
Angie Chiang 90dad2e414 Copy ctx in get_entropy_contexts_plane for lv_map
Change-Id: I112255996d85f94197387b8c481a5353d82a6b0a
2017-06-02 11:40:52 -07:00
Angie Chiang 1c96e82ccc Use av1_optimize_txb for lv_map experiment
Comparing to lv_map experiment using the old av1_optimize_b
function, This change gives 0.8% gain on lowres and midres
datasets

Comparing to the baseline with greedy optimize_b, the lv_map
experiment will have 1.2% on lowres and 1.49% on midres.
The gains are similar to the one that under the condition of
turning off av1_optimize_b for baseline and lv_map.

Change-Id: Ie17c4ecbd9ed8418ef657a526d8363e0746b5af5
2017-06-02 11:40:17 -07:00
Angie Chiang 3511c37dc8 Pass above/left ctx plane_bsize to av1_optimize_b
This is to facilitate lv_map experiment

Change-Id: Ife779b172c4b81a9b2b4640464163300996e3969
2017-06-02 11:39:55 -07:00
Angie Chiang 5e012fe6d1 Add test code for optimize_txb()
Change-Id: Ieae4c1a1c932d375b4577c7e42a9764e5f9cd16a
2017-06-02 11:32:02 -07:00
Angie Chiang 07c57f3b40 Add av1_optimize_txb()/optimize_txb()
This function will check if downgrading each coeff by one level
will reduce overall rd cost. If so, it will down grade the
coeff and update the effect and then move on to the next coeff.

In general, we found out that updating according to the
coding order will provide better coding performance.
The optimization order is as follows.
1) forward optimize coeffs == 1 or -1 only
2) backward optimize all coeffs

Change-Id: Ic0fd4d44d11878258e09d4fa87a8b48b397a10a8
2017-06-02 18:29:46 +00:00
Angie Chiang d19969e4ec Add update_level_down()
This function will update txb_cache and txb_info affected by
downgrading the coeff by one level

Change-Id: I57f9377eb7fb94b4244e677704b33c5eece83133
2017-06-02 18:29:46 +00:00
Alex Converse 7c412ea4b5 intrabc: adapt use_intrabc prob
First keyframe BD-RATE objective-1-fast:
   PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
-0.3705 | -0.3232 | -0.3812 |  -0.3782 |     N/A | -0.3412 |        N/A

First keyframe BD-RATE twitch-1:
   PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
-0.2479 | -0.2477 | -0.2467 |  -0.2567 | -0.2486 | -0.2508 |    -0.2487



Change-Id: Iea6c895c6fe9e9764887a8968f6e5330903969d3
2017-06-02 18:28:09 +00:00
Angie Chiang 47e07077e4 Add try_level_down_facade()
Change-Id: I82e12e312e6685c3801b243196af2570d3793aac
2017-06-02 11:09:15 -07:00
Yunqing Wang 68f3ccd1eb Add MV refining search in warped motion experiment
Implemented a MV refining search after the warped motion parameters were
found. Only 4 or 8 positions were checked so there was almost no impact
on encoder speed.

Borg test result:
            avg_psnr     ovr_psnr    ssim
cam_lowres: -0.543%      -0.574%     -0.670%
lowres    : -0.222%      -0.230%     -0.285%

Change-Id: Ic2f6c1fe548b089d50e9c33bb365e6b128aabc93
2017-06-02 17:34:56 +00:00
Fergus Simpson 7b2d1448a6 Revert "frame_superres: Send scale every frame"
This reverts commit 846d67dd67.

Writing the scale every frame was not the right decision. The correct
thing to do will be also writing the superres scale when the size is
set using a previous frame.

Change-Id: I0402e7f6d2b89ac7c386f81e8628198d22db5066
2017-06-02 16:48:25 +00:00
Tom Finegan 6f9dfa5141 Sync CMake build defaults with the configure build.
- Added: CONFIG_ONE_SIDED_COMPOUND CONFIG_VAR_REFS
- Removed: CONFIG_SUB8X8_MC CONFIG_EC_MULTISYMBOL
           CONFIG_DAALA_EC CONFIG_LOWDELAY_COMPOUND
- Changed, 0 => 1: CONFIG_VAR_TX CONFIG_EC_SMALLMUL
                   CONFIG_CHROMA_SUB8X8
                   CONFIG_LOOPFILTERING_ACROSS_TILES
                   CONFIG_TEMPMV_SIGNALING

BUG=aomedia:76

Change-Id: Ia010abeaf079d8c6318a5a540e9354d5455ce826
2017-06-02 16:46:51 +00:00
Tom Finegan 7897567e4e Add dist rule to CMake build and correct behavior of the install rule.
- Install only includes, libs, and aomdec/aomenc in the install rule.
- Install docs and examples in addition to the above in the dist rule.

BUG=aomedia:76,aomedia:375

Change-Id: If42832ebd21184e6f9bf95c3b43c6d4e05663bf2
2017-06-02 16:45:43 +00:00
Tom Finegan 6d1dd6232c Add nasm support to the CMake build.
BUG=aomedia:76,aomedia:507

Change-Id: I1d7d6932dbc23ad1b0b23f2df8230c17a2e76387
2017-06-02 16:45:15 +00:00
Tom Finegan 17ccaec4bb Add include guards to CMake files used as includes.
BUG=aomedia:76

Change-Id: Ie34025f31a89f4991d03d5ecf03c6f6f5ab7b0a1
2017-06-02 16:43:58 +00:00
Tom Finegan 0d066ce836 Add doc generation and installation to the CMake build.
BUG=aomedia:76,aomedia:559

Change-Id: I8f2f4633ca3fbc2d91bbf7e2ea8d23d52c9baa6e
2017-06-02 16:43:25 +00:00
Ryan Lei 17905edfe0 integrate parallel_deblocking with CB4x4
this change makes parallel deblocking experiment works with
cb4x4. the inner loop process every 4x4 block.

Change-Id: I86adb3d7b6d67a91ccc12aab29da9bfb8c522cf1
2017-06-02 16:09:30 +00:00
Jingning Han b2a01db85f Deprecate special rd loop for sub8x8 block size
Remove the special rate-distortion optimization loop for sub8x8
block size from vp9.

Change-Id: I62c6cf537a54769f26f2d4938ebed5fed2c84741
2017-06-02 15:08:22 +00:00
Jingning Han d064cf03ba Resolve extremely large stack alloc in rdopt
Move the large stack allocation from stack initialization to
dedicated mem space. This resolves the extremely large stack issue
when ext-partition, motion-var, and high bit-depth are all turned
on.

BUG=aomedia:415

Change-Id: I85b77bbc6429093fcb0152176d9e237087d6bbd8
2017-06-02 15:04:56 +00:00
Angie Chiang c77799bea7 Add try_change_eob()
This function will be applied to the last non-zero coeff to
calculate the cost difference including eob change

Change-Id: I471aa74600c41fd371447ec121d113c79bd767b8
2017-06-02 01:14:02 +00:00
Joe Young 3be70f72c1 [intra-edge] Use 5-tap filter
For intra edge filtering experiment, replace the 2x iteration
(5-6-5) filter with a 5-tap filter (2-4-4-4-2).

BDrate (1 key-frame) for this change:
cif:    +0.02%
midres: +0.04
720p:   -0.01
1080p:  -0.03
4k:     -0.01

BDrate (1 key-frame) for intra-edge experiment:
(05/31, disable rect-tx, ext-tx, delta-q, ext-delta-q)

          1 key-frame     60 frames
         PSNR   SSIM     PSNR  SSIM
cif:    -0.02   -0.01   -0.03  -0.01
midres: -0.02   -0.02   -0.05  -0.10
720p:   -0.36   -0.39   -0.05  -0.06
1080p:  -0.75   -0.88   -0.22  -0.27
4k:     -0.91   -1.12   -0.45  -0.54

Change-Id: I834037e662b4483d4d6bdceb1c1624d56ba293a4
2017-06-02 01:07:15 +00:00
Yushin Cho 63927c4314 Fix daala-dist for cb4x4
The place where av1_daala_dist() is applied for sub8x8 partition is
moved from sub8x8 mode decision functions to rd_pick_partition().

BD-Rate change by daala-dist with '--disable-var-tx' is:
(AWCY, objective-1-fast, high delay mode)

   PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
15.1558 | 12.9585 | 14.4662 |  -3.8651 | -1.7102 | -9.2956 |    10.8686

In MSE probe mode:

  PSNR | PSNR Cb | PSNR Cr | PSNR HVS |   SSIM | MS SSIM | CIEDE 2000
0.0429 |  0.0435 |  0.1651 |  -0.0415 | 0.0850 |  0.0122 |     0.0546

Change-Id: I3b2ea916d41c48e433eb641adf44552e4725c198
2017-06-01 22:43:41 +00:00
Angie Chiang a530ef4065 Add try_level_down()
This function computes the overall (i.e. self and neighbors') cost
difference caused by downgrading a coefficient by one level at
a specific location

Change-Id: I1b7b6acfe06ed06b9a2ff48b5bb11527646d1aa8
2017-06-01 15:08:29 -07:00
Angie Chiang 7afbba4140 Add try_self_level_down() and get_level_prob()
try_self_level_down() computes the cost difference of the coeff
that is downgraded by one level

get_level_prob() computes the probability of level_map coding
at a specific position and level.

Change-Id: Iaa9d40477aaf798993c2d5d26341551db665902b
2017-06-01 15:04:35 -07:00
Angie Chiang 2affb3b0e9 Add gen_txb_cache() and it's related functions
This function pre-generate counts/magnitudes of each level map
such that we don't have to re-calculate the counts/magnitudes
while doing the optimization.

Change-Id: Ifdfc89522cf2f2b9f3734d451324081f42b47cb0
2017-06-01 15:04:35 -07:00
Angie Chiang 488f921c37 Add get_coeff_cost() and get_txb_cost()
Change-Id: I085f2bc706fde41afbee5ff48b56acc095f804c2
2017-06-01 21:58:18 +00:00
Timothy B. Terriberry fe67ed6af2 cb4x4: Move sub-4X4 TX sizes behind CONFIG_CHROMA_2X2.
cb4x4 itself should not require these sizes.

This simplifies compatibility with other experiments, since we can
first make them work with cb4x4 (which is now on by default), and
then worry about chroma_2x2 (which is not) in separate steps.

Encoder and decoder output should remain unchanged.

Change-Id: I4e9fcdae49f238b5099a3c74a398fe993c2545f8
2017-06-01 18:59:52 +00:00
Jingning Han 6e4955d47f Rework loop filter tx size selection
Update and capture the effective transform block size per color
plane.

Change-Id: Ib6e0e7abb3973db6b8d511ee7c9948aaab048788
2017-06-01 18:47:42 +00:00
hui su eaddeee1ff Initialize chroma mode info before RD search
Make sure initialization is done regardless of whether RD search
is skipped (skip_chroma_rd).

BUG=aomedia:568

Change-Id: Idb620b34be6930bb35ab6c912dfd4777f7614159
2017-06-01 18:03:36 +00:00
hui su b4ed1493fc filter-intra: fix compiler warnings when cb4x4 is off
Change-Id: I995b1ba6b1dafeceb1e75a3d71d6630215a8df68
2017-06-01 17:00:30 +00:00