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

1273 Коммитов

Автор SHA1 Сообщение Дата
Yaowu Xu bde4ac8260 change to use AOMedia copyright notice
Change-Id: I82580120a154ecd7c41f4cd9bc0f8c669fca7774
2016-11-29 00:01:36 +00:00
Yaowu Xu feffd11fe6 Remove un-referenced functions
Change-Id: I22aaaa78be22b133d2d0c28da10220cf4d4ab64e
2016-11-28 23:12:38 +00:00
David Barker 8da6d9d75c Fix a bug with global-motion + ref-mv
av1_find_mv_refs sets the ALL_ZERO flag when either (a) we don't have
enough candidate MVs, or (b) all candidate MVs are zero. With global
motion enabled, case (b) does not work as intended and causes two
problems: a significant quality decrease for foreman_cif.y4m, and
test failures in *CpuSpeedTest*Screencast*.

This patch skips check (b) when global motion is enabled, fixing
the above bugs.

Change-Id: I7461588cb02733563c1439f430b89190299a1b5d
2016-11-28 22:43:38 +00:00
Urvang Joshi 6be4a54b89 Add a new intra prediction mode "smooth".
This is added as part of ALT_INTRA experiment.

This uses interpolation between top row and estimated bottom row; as
well as left column and estimated right column to generate the
predicted block.The interpolation is done using a predefined weight
array.

Based on experiments, the currently chosen weight array was created
to represent a quadratic curve, but can be tuned further if needed.

Improvement from baseline on Derf set:
ALL Keyframes: 1.279%

Improvement from existing ALT_INTRA:
ALL Keyframes: 1.146%

Change-Id: I12637fa1b91bd836f1c59b27d6caee2004acbdd4
2016-11-28 12:12:26 -08:00
Steinar Midtskogen 862c1e5d0d Rename file so it gets compiled with the correct options
Change-Id: I7781ba9af9bffe7f77fab862c096a911a0580e56
2016-11-25 09:51:39 +01:00
David Barker 68e6e8679c Fix a bug in global-motion + ref-mv
Fix a case in rdopt where a block's mode would be set to ZEROMV but
its motion vector would not be set to the global motion vector.
This caused future inter frames' lists of candidate mvs to become
desynchronized between the encoder and the decoder.

Change-Id: I1bdc619f155c70ca8a1a3fe6eea1baee15dc2c33
2016-11-24 17:58:45 +00:00
Yaowu Xu 5bfbfdf483 Fix valgrind warning
This commit adds initialization for tmp_rd_stats, to resolve valgrind
warning of "Conditional jump or move depends on uninitialised value"

Change-Id: I79ed3bc046a66457c27185782645938d223872ba
2016-11-24 06:12:15 +00:00
Jim Bankoski 0eda27059e pvq_encoder.c : float-conversion warning fix
Fixes a warning error on gcc 4.9 related to float conversions.

Change-Id: I1ba5410d8bff6aff21e2bbe1b4d34740336182cf
2016-11-24 04:01:08 +00:00
Adrian Grange a414887a43 Superframe index: Parse correct number of frame sizes
If there are N frames in a superframe, the superframe
index will enumerate the sizes of only the first
(N - 1) frames. The code assumed that all N frame
sizes are coded.

The size of the final frame in the superframe is
calculated as follows:
(data_size - index_size - sum_of_N-1_frame_sizes)

Change-Id: Ia53ae27455a4f024eec311bf7356a00e8e0d449a
2016-11-24 02:08:15 +00:00
Alex Converse 7e6cfae969 Allow tile parsing with ANS.
Verified manually in a 1920x1080 4x2 tile configuration.

Change-Id: I08fe15d4354d3a9393a6ccbce9d9ecba41222ac7
2016-11-23 14:19:55 -08:00
Debargha Mukherjee 5a488a624c Some fixes related to 64x64 tx, ext-tx, supertx
Change-Id: I95455ed7e44f3a163c751bd8a89f6119c0055c71
2016-11-23 10:29:42 -08:00
David Barker 838a53d623 Improve rectangular transform accuracy
By adjusting the internal scaling and rounding in the transforms,
we can adjust the maximum round-trip errors to:
* 8x16 and 16x8: 0 pixel values (ie, transforms are exact)
* 16x32: 1 pixel value
* 32x16: 2 pixel values

Change-Id: I0ba691a8d27042dcf1dd5ae81568d07a92d68781
2016-11-23 16:48:14 +00:00
Jingning Han b4329a2e29 Fix broken bit-stream syntax issue in cb4x4
Use the offset to code tx_size, which allows better scalability in
the implementation. This commit fixes the enc/dec mismatch issue
in cb4x4 experiment.

Change-Id: Ia814273b0be43819f92d1c41cfae4964cfb76ced
2016-11-22 16:20:13 -08:00
Debargha Mukherjee 25ed5305fa Misc. fixes for 64x64 transform
Generalize intra buffer size to cover 64x64 txfms.
Fix tx_size encodings.

Change-Id: Ibc219d291b850a600c3a1370d88769a7640fb4d2
2016-11-22 23:30:32 +00:00
Yaowu Xu 1806b14a89 replace NULL with TX_INVALID
This commit fixes a build error where returned value does not match
defined return type.

Change-Id: I1d2c879d0cf7d90fcc7105683695a371c9fe9f58
2016-11-22 23:25:21 +00:00
Jingning Han 89d648be89 Fix coding performance drop in var-tx, supertx, and ext-partition
This commit fixes the use of uninitialized value in the RD search
loop. It brings back the coding performance loss when the above
three experiments are all turned on.

BUG=aomedia:92

Change-Id: I19d7904c354e7a94e5f672bf416267971791c371
2016-11-22 22:26:09 +00:00
Jingning Han fe45b216ac Deprecated the separate handle on rectangular tx_size in var_tx
The recursive transform block partitioning system naturally supports
the use of rectangular transform block size. Hence there is no need
to make a separate coding route for the rectangular transform block
size support there.

Change-Id: I709b61f94cd4a6ea3f33c05abe319488c7d24f5a
2016-11-22 22:25:43 +00:00
Yaowu Xu 83ed6fe9e2 rdopt.c: prevent overflow of int
Change-Id: I6e423db799cf7d4573e78c82f372b7e3323385ea
2016-11-22 22:02:06 +00:00
Jingning Han d3fada809c Update tx_size assertions in rd search
The processing units support the rectangular transform block size.
Update the assertion conditions accordingly.

Change-Id: Iebd46dbbb04feaf161fb02f203fa2cde50b2b700
2016-11-22 20:58:19 +00:00
Debargha Mukherjee 48c410a0f1 Loopfilter extension to cover 64x64 txfms
Change-Id: I8e02440bfe8e7cb7bb7e92c464981e184367b773
2016-11-22 19:38:57 +00:00
Yaowu Xu b0d0d00b44 Fix static-analysis warnings
This commit fixes the warnings of "value stored to 'mode_ctx' during
its initialization is never read".

Change-Id: I39e78a5915d29c74854306d009b7a6e002dda781
2016-11-22 18:43:27 +00:00
Jim Bankoski dc882e6160 reconintra.c fix warning error
Fixes warning error introduced by : aom/5942

Change-Id: I1e2c013a3f8859bbcf4548a67347011f4b0fb650
2016-11-22 07:20:35 -08:00
Jingning Han 1c019f9e8b Fix out-of-bound read in token_costs array
This resolves the unit test failure case at
AV1/AVxEncoderThreadTestLarge.EncoderResultTest/1

Change-Id: I9f3aaaf5498177cb3623cb8806a40f812e20609d
2016-11-22 07:19:13 +00:00
Angie Chiang 9c4f895c9c Refactor read_mb_interp_filter
Move detail logic of reading interp_filter type from
read_inter_block_mode_info to read_mb_interp_filter

Change-Id: I2880488acbd994ead3bed4ae94eaae017e33546b
2016-11-22 01:59:29 +00:00
Yaowu Xu 4ce287aa33 Replace int with uint32_t for non-negative values
This also fix a few compiler warnings of comparison between signed
and unsigned values.

Change-Id: I1d633f4dfdffff73743dc3f373564056c6d58813
2016-11-21 23:32:28 +00:00
Debargha Mukherjee 84c56af017 Support 64x64 intra prediction
Change-Id: I2536b5b55f28c2ee59445c3b70d3e073e69945cd
2016-11-21 20:06:46 +00:00
Angie Chiang 5678ad987c Clean up ext_interp
1) Simplify macro branch
2) Improve the naming of interp_filter read/write functions

Change-Id: I0ae290b08a8b058359874d91da468062706ab2d5
2016-11-21 19:42:35 +00:00
Yaowu Xu dd28be8bb7 Remove simp_mv_pred leftover code
simp_mv_pred is now merged into ref-mv, this commit removes the code
that is leftover. Removing them fixes compiler warnings.

Change-Id: Iad0c521d10924d0eeeaad0b5022beddf9d2bacce
2016-11-21 19:35:04 +00:00
Yaowu Xu 8acaa552ce Fix compiler warning of unused parameters
when configured with --enable-tile-groups

Change-Id: I17118b0ed87fded06afb279ba94bc21a2684d126
2016-11-21 19:34:46 +00:00
Jingning Han e92bf1ccbc Fix enc/dec mismatch when supertx and vartx are both turned on
BUG=aomedia:90

Change-Id: I66239b54017141929987eb49796b3b97081d3943
2016-11-21 19:34:19 +00:00
Yaowu Xu 3350096aec fix compiler warning of unused parameters
when configured with --enable-pvq

Change-Id: I10672cf16393d79e00b74f1a58ebc609b7b2c66f
2016-11-21 19:16:46 +00:00
iole moccagatta f25a4cf9e8 Add coef_interleave experiment
This commit adds an experiment to interleave the coding of transform
coefficients from YUV planes.  The experiment can be enabled at config
time by --enable-coef-interleave.

Change-Id: Ifd92f9c367304bca9732f13fa026eb8996363677
2016-11-21 17:53:56 +00:00
Yi Luo 63bd6dc96b Fix rectangle transform computation overflow
- Add 16-bit saturation in fdct_round_shift().
- Add extreme value tests and round trip error tests.
- Fix inv 4x8 txfm calculation accuracy.
- Fix 4x8, 8x4, 8x16, 16x8, 16x32, 32x16 extreme value tests.
- BDRate: lowres: -0.034
          midres: -0.036
          hdres:  -0.013
BUG=webm:1340

Change-Id: I48365c1e50a03a7b1aa69b8856b732b483299fb5
2016-11-21 17:18:27 +00:00
Jingning Han 24e0a18421 Merge simp_pred_mv changes into ref_mv
Merge the modifications in simp_pred_mv to ref_mv.

Change-Id: I5662124c1ac7133d76697522f06e42b277a4ad8d
2016-11-20 22:35:55 -08:00
Jingning Han 4a97d6ac5b Remove special handle for rectangular block size in DRL system
This removes the dependency of context decoding from the candidate
list ranking in hardware implementation.

Change-Id: Iff34e7e6e78c9b32f435ded30629e43e73ac2f13
2016-11-21 06:05:05 +00:00
Jingning Han 3f338830cd Pre-store the pred_diff for nmv context
Replace the int_mv storage in the ref_mv_stack struct with unit8_t
integer to indicate the prediction difference level.

Change-Id: I0bfbcab350a46ecdd5bc47bd918cce9614365227
2016-11-19 07:20:22 +00:00
Debargha Mukherjee 18d38f6c01 Various table updates to support 64x64 transforms
Includes:
Various table updates and fixes to support 64x64 transforms.
Entropymode updates to support tx_size expansion to 64x64.
tx_mode changes to support an ALLOW_64sXx64 transform mode.

Change-Id: Ib9098cfe27d0c015fe3be6ae13e7d09576771b9e
2016-11-18 23:24:54 +00:00
Yue Chen 8a78a2b4f4 Fix mishandled rd_stats merge for MOTION_VAR
Bring rd_stats back to proper starting point for the second mode.
Bug introduced during code refactoring preparing for RD_DEBUG:
https://aomedia-review.googlesource.com/#/c/5689/

Change-Id: I9ad10144ae3cc395a6efa700d047741c7734470c
2016-11-18 18:20:32 +00:00
Debargha Mukherjee 932cf69794 Fix bugs introduced in a previous patch
Introduced in I2c0bc4ba540886dd196e87a78b205407ad3e866b

Change-Id: I9ff49e7d37c5a1fea8dc8b5659a53697f76320df
2016-11-18 18:09:37 +00:00
Jingning Han 3eb1f07067 Use masked mi_row and mi_col to decide relative position
Change-Id: Ibc9e904ba9e82d6ab638d88404847da7fc9fcce9
2016-11-18 18:03:23 +00:00
David Barker b8069f9fc5 Fix a bug in ext-inter
Fix a case where handle_inter_mode could return without restoring
the original values of xd->plane[i].dst.buf. This fixes an
assertion failure in aom_blend_a64_mask, as well as very slightly
improving the rd costing accuracy.

Change-Id: I7f720bcf676c6aa9858c1a4c8f6571a76a9b0772
2016-11-18 17:21:11 +00:00
Yaowu Xu 17fd2f2332 Get several experiments to build together
This commit fixes several issues that prevent experiments to build
when enabled together. The experiments are:
ec-adapt
ext-inter
ext-partition

BUG=aomedia:80
BUG=aomedia:88

Change-Id: I5b790f16ad0ae2450f0be3aa26329b6a57a6a5c5
2016-11-18 05:27:40 +00:00
Yaowu Xu 33f210c697 Get simp-mv-pred and ext-inter to build together
BUG=aomedia:80
BUG=aomedia:88

Change-Id: Ia8cd086ea1568235baf7c2fba2edd5a0e41af584
2016-11-18 05:27:21 +00:00
Debargha Mukherjee 153e1f8641 Add default 64x64 scan orders and entropy models
Adds 64x64 default scan orders
Adds 64x64 coefficient entropy models (just copy the 32x32 ones)
Entropy context updates for 64x64 transform
Various misc. changes to support 64x64 transforms

Change-Id: I2c0bc4ba540886dd196e87a78b205407ad3e866b
2016-11-18 02:56:09 +00:00
Jingning Han acddc03666 Construct ref_mv_stack selectively
Only process reference motion vector stack for the used reference
frames at the decoder. This improves the decoding speed by 15%.

Change-Id: I4f7c11d4607f9bcb756b6c375723d017ec6ece22
2016-11-18 01:46:21 +00:00
Jingning Han 731af49cf2 Sync reference frame type use case
This commit re-synchronize the reference frame type use cases in
the dynamic motion vector referencing system.

Change-Id: Ib25231c716db4176cd67cbdc889472a06b607194
2016-11-18 01:46:06 +00:00
Yaowu Xu 6c48b8c824 Add a define to fix compiling without daala-ec
BUG=aomedia:88

Change-Id: I216ae046bed89f1dc919fc9ebb5c191d491ba621
2016-11-18 01:10:58 +00:00
Yaowu Xu 52a17635d8 Add the skip parameter to set_txfm_ctxs() calls
BUG=aomedia:88

Change-Id: Ie45052d8c91e96d1fda048bc4240cec396fc33d8
2016-11-18 01:10:58 +00:00
Yaowu Xu d0af64f96d Fix build with both ec-adapt and ext-intra enabled
BUG=aomedia:80

Change-Id: I8b0c74c44d454630d8f32a6b0124f5684d0b1cdf
2016-11-18 00:28:54 +00:00
David Barker 03bd210f22 Fix global motion + supertx
Previously, any uses of global motion inside supertx blocks were not
counted correctly. This caused encode/decode mismatches when every use
of global motion in a frame occurred inside supertx blocks.
This happened in, for example, AV1/ActiveMapTest.Test/0

This patch makes update_state_supertx count global motion usages in
the same way update_state does, and fixes the above problem.

Change-Id: Id500d5a24c565774fa3aa3b52cd3fdbeab75b486
2016-11-17 20:24:44 +00:00