]> granicus.if.org Git - libvpx/log
libvpx
8 years agoANS: Remove extra buffer size checks causing a false decode error.
Alex Converse [Tue, 12 Apr 2016 22:10:19 +0000 (15:10 -0700)]
ANS: Remove extra buffer size checks causing a false decode error.

The minimal ans partition size is now one byte. This is checked in
ans_read_init().

The read_is_valid() condition is handled by setup_token_decoder().

Change-Id: I7b202b896630bc4285532208bf7cf84567afe158

8 years agoMerge "Use reduced transform set for 16x16" into nextgenv2
Debargha Mukherjee [Mon, 11 Apr 2016 23:32:29 +0000 (23:32 +0000)]
Merge "Use reduced transform set for 16x16" into nextgenv2

8 years agoUse reduced transform set for 16x16
Debargha Mukherjee [Fri, 8 Apr 2016 21:41:18 +0000 (14:41 -0700)]
Use reduced transform set for 16x16

Speed increase for ext-tx by 20% for a BDRATE drop of 0.26%.
The ext-tx expt becomes -2.66% BDRATE (reduced from -2.92%) for
the lowres set.

It turns out that reducing the set of transforms for intra from
12 to 5 makes very little difference in coding performance (~0.04%).
Most of the performance drop comes from the reduction is transform
set for inter. Currently there is a provision to control that with
a macro.

Change-Id: I7de05527bf72f96acc1e0ab8a74a849da0a141e5

8 years agoMerge "Fix prune one and two to make compatible with new transforms" into nextgenv2
Sarah Parker [Mon, 11 Apr 2016 17:12:28 +0000 (17:12 +0000)]
Merge "Fix prune one and two to make compatible with new transforms" into nextgenv2

8 years agoMerge "Some cosmetic improvements since HBD variance 4x4 optimization" into nextgenv2
Yi Luo [Mon, 11 Apr 2016 16:04:01 +0000 (16:04 +0000)]
Merge "Some cosmetic improvements since HBD variance 4x4 optimization" into nextgenv2

8 years agoMerge "Add unit tests for HBD variance 4x4 SSE4.1 optimization" into nextgenv2
Yi Luo [Mon, 11 Apr 2016 16:03:37 +0000 (16:03 +0000)]
Merge "Add unit tests for HBD variance 4x4 SSE4.1 optimization" into nextgenv2

8 years agoMerge "Refactor PC_TREE root handling." into nextgenv2
Debargha Mukherjee [Sat, 9 Apr 2016 13:33:53 +0000 (13:33 +0000)]
Merge "Refactor PC_TREE root handling." into nextgenv2

8 years agoMerge "Make subpel masked motion work with upsampled refs" into nextgenv2
Debargha Mukherjee [Sat, 9 Apr 2016 13:30:09 +0000 (13:30 +0000)]
Merge "Make subpel masked motion work with upsampled refs" into nextgenv2

8 years agoMerge "Changes to scan order neighbors" into nextgenv2
Hui Su [Fri, 8 Apr 2016 21:18:16 +0000 (21:18 +0000)]
Merge "Changes to scan order neighbors" into nextgenv2

8 years agoMerge "Reformat scan order neighbors" into nextgenv2
Hui Su [Fri, 8 Apr 2016 20:57:49 +0000 (20:57 +0000)]
Merge "Reformat scan order neighbors" into nextgenv2

8 years agoFix prune one and two to make compatible with new transforms
Sarah Parker [Wed, 30 Mar 2016 18:25:49 +0000 (11:25 -0700)]
Fix prune one and two to make compatible with new transforms

Update svm parameters with training data using new transforms
and remove DST from pruning functions.

Change-Id: I7bd1c4744455d571c1ecfb4cea14c25ac291f002

8 years agoAdd unit tests for HBD variance 4x4 SSE4.1 optimization
Yi Luo [Fri, 8 Apr 2016 18:16:30 +0000 (11:16 -0700)]
Add unit tests for HBD variance 4x4 SSE4.1 optimization

Change-Id: Ib4ceb53cbbc35ecb4e55d74bed30282310075004

8 years agoChanges to scan order neighbors
hui su [Wed, 6 Apr 2016 23:13:58 +0000 (16:13 -0700)]
Changes to scan order neighbors

-Fix some bugs in row_scan and col_scan. In some cases, the above
or left neighbor was not considered even though it is available.

-When above or left neighbor is not available, try using the
top-left, top-right or bottom-left neighbor.

Compression improvement:
lowres   0.20%
midres   0.16%
hdres    0.20%

Change-Id: If521665589c7f29277b8e9223f21f4a8bf3fef39

8 years agoReformat scan order neighbors
hui su [Fri, 8 Apr 2016 17:50:13 +0000 (10:50 -0700)]
Reformat scan order neighbors

Change-Id: Iafcd080612012b08f3cbff45335c12f434543f38

8 years agoSome cosmetic improvements since HBD variance 4x4 optimization
Yi Luo [Thu, 7 Apr 2016 22:06:43 +0000 (15:06 -0700)]
Some cosmetic improvements since HBD variance 4x4 optimization

Change-Id: I414c1fabd2e3a9b1d9daa8a90f85a0bace8bd3cd

8 years agoRefactor PC_TREE root handling.
Geza Lore [Fri, 8 Apr 2016 14:15:06 +0000 (15:15 +0100)]
Refactor PC_TREE root handling.

Change-Id: Id8b16c1b18bd6f909e72aae3fd582dd3503c88c6

8 years agoMake subpel masked motion work with upsampled refs
Debargha Mukherjee [Thu, 31 Mar 2016 00:33:15 +0000 (17:33 -0700)]
Make subpel masked motion work with upsampled refs

Change-Id: Id483354e73e983793370b55a1a6a1f2dcd137dc9

8 years agoConvert palette from double to float.
Alex Converse [Thu, 7 Apr 2016 18:13:32 +0000 (11:13 -0700)]
Convert palette from double to float.

About 20% less time spent coding in vp10_k_means().

Change-Id: I5cf7605cde869a269776197bace70de353b07d83

8 years agoAdd roundf and lroundf replacements for VS < 2013.
Alex Converse [Thu, 7 Apr 2016 22:16:30 +0000 (15:16 -0700)]
Add roundf and lroundf replacements for VS < 2013.

Change-Id: I25678279ab44672acf680bf04d9c551156e2904b

8 years agoMake superblock size variable at the frame level.
Geza Lore [Thu, 24 Mar 2016 13:56:05 +0000 (13:56 +0000)]
Make superblock size variable at the frame level.

The uncompressed frame header contains a bit to signal whether the
frame is encoded using 64x64 or 128x128 superblocks. This can vary
between any 2 frames.

vpxenc gained the --sb-size={64,128,dynamic} option, which allows the
configuration of the superblock size used (default is dynamic). 64/128
will force the encoder to always use the specified superblock size.
Dynamic would enable the encoder to choose the sb size for each
frame, but this is not implemented yet (dynamic does the same as 128
for now).

Constraints on tile sizes depend on the superblock size, the following
is a summary of the current bitstream syntax and semantics:

If both --enable-ext-tile is OFF and --enable-ext-partition is OFF:
     The tile coding in this case is the same as VP9. In particular,
     tiles have a minimum width of 256 pixels and a maximum width of
     4096 pixels. The tile width must be multiples of 64 pixels
     (except for the rightmost tile column). There can be a maximum
     of 64 tile columns and 4 tile rows.

If --enable-ext-tile is OFF and --enable-ext-partition is ON:
     Same constraints as above, except that tile width must be
     multiples of 128 pixels (except for the rightmost tile column).

There is no change in the bitstream syntax used for coding the tile
configuration if --enable-ext-tile is OFF.

If --enable-ext-tile is ON and --enable-ext-partition is ON:
     This is the new large scale tile coding configuration. The
     minimum/maximum tile width and height are 64/4096 pixels. Tile
     width and height must be multiples of 64 pixels. The uncompressed
     header contains two 6 bit fields that hold the tile width/heigh
     in units of 64 pixels. The maximum number of tile rows/columns
     is only limited by the maximum frame size of 65536x65536 pixels
     that can be coded in the bitstream. This yields a maximum of
     1024x1024 tile rows and columns (of 64x64 tiles in a 65536x65536
     frame).

If both --enable-ext-tile is ON and --enable-ext-partition is ON:
     Same applies as above, except that in the bitstream the 2 fields
     containing the tile width/height are in units of the superblock
     size, and the superblock size itself is also coded in the bitstream.
     If the uncompressed header signals the use of 64x64 superblocks,
     then the tile width/height fields are 6 bits wide and are in units
     of 64 pixels. If the uncompressed header signals the use of 128x128
     superblocks, then the tile width/height fields are 5 bits wide and
     are in units of 128 pixels.

The above is a summary of the bitstream. The user interface to vpxenc
(and the equivalent encoder API) behaves a follows:

If --enable-ext-tile is OFF:
     No change in the user interface. --tile-columns and --tile-rows
     specify the base 2 logarithm of the desired number of tile columns
     and tile rows. The actual number of tile rows and tile columns,
     and the particular tile width and tile height are computed by the
     codec ensuring all of the above constraints are respected.

If --enable-ext-tile is ON, but --enable-ext-partition is OFF:
     No change in the user interface. --tile-columns and --tile-rows
     specify the WIDTH and HEIGHT of the tiles in unit of 64 pixels.
     The valid values are in the range [1, 64] (which corresponds to
     [64, 4096] pixels in increments of 64.

If both --enable-ext-tile is ON and --enable-ext-partition is ON:
     If --sb-size=64 (default):
         The user interface is the same as in the previous point.
         --tile-columns and --tile-rows specify tile WIDTH and HEIGHT,
         in units of 64 pixels, in the range [1, 64] (which corresponds
         to [64, 4096] pixels in increments of 64).
     If --sb-size=128 or --sb-size=dynamic:
         --tile-columns and --tile-rows specify tile WIDTH and HEIGHT,
         in units of 128 pixels in the range [1, 32] (which corresponds
         to [128, 4096] pixels in increments of 128).

Change-Id: Idc9beee1ad12ff1634e83671985d14c680f9179a

8 years agoFix compile error of vp10_fwd_txfm2d_sse4_test.cc
Angie Chiang [Wed, 6 Apr 2016 23:26:04 +0000 (16:26 -0700)]
Fix compile error of vp10_fwd_txfm2d_sse4_test.cc

Change-Id: I14a0821631e404d59a1121f7517f97de8d6f790f

8 years agoMerge "Test c version in vp10_fwd_txfm2d_test.cc" into nextgenv2
Angie Chiang [Wed, 6 Apr 2016 22:18:23 +0000 (22:18 +0000)]
Merge "Test c version in vp10_fwd_txfm2d_test.cc" into nextgenv2

8 years agoMerge "Put vp10_txfm_test.h into libvpx_test namespace" into nextgenv2
Angie Chiang [Wed, 6 Apr 2016 21:58:08 +0000 (21:58 +0000)]
Merge "Put vp10_txfm_test.h into libvpx_test namespace" into nextgenv2

8 years agoPut vp10_txfm_test.h into libvpx_test namespace
Angie Chiang [Tue, 29 Mar 2016 21:27:50 +0000 (14:27 -0700)]
Put vp10_txfm_test.h into libvpx_test namespace

Change-Id: I32ff059143d777fa4518d8e404ff16c890c7fecb

8 years agoFixing assertion in *Large unit tests
Julia Robson [Wed, 6 Apr 2016 10:16:57 +0000 (11:16 +0100)]
Fixing assertion in *Large unit tests

In certain cases the code was subtracting the obmc cost
despite it not having been added previously.
For example with ref_mv, supertx, ext_inter, obmc & ext_refs
enabled the following test was failing but now passes:
"VP10/ArfFreqTestLarge.MinArfFreqTest/33"

Change-Id: I966853f34c18d5a1d4c7a56fa201c1b02973fc88

8 years agoFixing error when building with ref_mv experiment
Julia Robson [Wed, 6 Apr 2016 10:13:58 +0000 (11:13 +0100)]
Fixing error when building with ref_mv experiment

Code was using variable that was only defined when
var_tx was also enabled

Change-Id: Ide02ff99b433bfc5c95b71e700c66562020cedae

8 years agoMerge "Refactoring and cosmetic changes to ext-inter expt" into nextgenv2
Debargha Mukherjee [Wed, 6 Apr 2016 01:19:05 +0000 (01:19 +0000)]
Merge "Refactoring and cosmetic changes to ext-inter expt" into nextgenv2

8 years agoTest c version in vp10_fwd_txfm2d_test.cc
Angie Chiang [Wed, 6 Apr 2016 01:03:13 +0000 (18:03 -0700)]
Test c version in vp10_fwd_txfm2d_test.cc

Change-Id: I6d9a5f790e984d76d0a5af4ca32ccc1c582805ee

8 years agoRefactoring and cosmetic changes to ext-inter expt
Debargha Mukherjee [Thu, 31 Mar 2016 00:33:15 +0000 (17:33 -0700)]
Refactoring and cosmetic changes to ext-inter expt

Change-Id: Icd457480744b7734b3c412c9fed43be738373334

8 years agoFix high bit depth mask and variance reference function
Yi Luo [Mon, 4 Apr 2016 16:44:56 +0000 (09:44 -0700)]
Fix high bit depth mask and variance reference function

- Use arithmetic AND (&) instead of logical AND (&&) to
  generate correct testing input.
- Fix variance reference function to be consistent with
  our codebase implementation.
- Refer to the following issue:
https://bugs.chromium.org/p/webm/issues/detail?id=1166

Change-Id: I8c1ebb03e22dc9e1dcd96bdf935fc126cee71307

8 years agoMerge "Optimized HBD 4x4 variance calculation" into nextgenv2
Yi Luo [Tue, 5 Apr 2016 18:41:09 +0000 (18:41 +0000)]
Merge "Optimized HBD 4x4 variance calculation" into nextgenv2

8 years agoFix supertx with ext-tile.
Geza Lore [Tue, 5 Apr 2016 11:49:15 +0000 (12:49 +0100)]
Fix supertx with ext-tile.

Change-Id: Ic2135c3812be009085c7c8e8dc15ee2ba618a67e

8 years agoOptimized HBD 4x4 variance calculation
Yi Luo [Fri, 1 Apr 2016 22:50:17 +0000 (15:50 -0700)]
Optimized HBD 4x4 variance calculation

vpx_highbd_8/10/12_variance4x4_sse4_1 improves performance ~7%-11%.

Change-Id: Ida22bb2a2f7a58037cfd73e186d4f6267a960c02

8 years agoRefactor get_partition to be universal.
Geza Lore [Mon, 4 Apr 2016 10:37:29 +0000 (11:37 +0100)]
Refactor get_partition to be universal.

Change-Id: I3a2fe4073bb94c5afc24d9274e6edcdb3aed934f

8 years agoMinor refactoring of partition type processing.
Geza Lore [Mon, 4 Apr 2016 12:55:28 +0000 (13:55 +0100)]
Minor refactoring of partition type processing.

Change-Id: Idcb1e94298d4b7d8832d285548ec2d2ced4b2988

8 years agoMerge "Remove duplicate ans parameter in bitstream functions." into nextgenv2
Alex Converse [Fri, 1 Apr 2016 18:35:11 +0000 (18:35 +0000)]
Merge "Remove duplicate ans parameter in bitstream functions." into nextgenv2

8 years agoMerge "ANS experiment: Use ANS everywhere." into nextgenv2
Alex Converse [Fri, 1 Apr 2016 18:34:50 +0000 (18:34 +0000)]
Merge "ANS experiment: Use ANS everywhere." into nextgenv2

8 years agoRemove duplicate ans parameter in bitstream functions.
Alex Converse [Mon, 28 Mar 2016 19:41:43 +0000 (12:41 -0700)]
Remove duplicate ans parameter in bitstream functions.

Change-Id: Icd459209dae328f90c9a875259fe5d201b2a4e45

8 years agoANS experiment: Use ANS everywhere.
Alex Converse [Tue, 22 Mar 2016 17:33:34 +0000 (10:33 -0700)]
ANS experiment: Use ANS everywhere.

Use ANS for all entropy coded data in VP10 including the compressed header and
modes and motion vectors. ANS tokens continue to be used for DCT tokens.

Change-Id: Idf709a747150601e4d95d81ecfb3dc7253d349df

8 years agoMerge "Loopfilter fix" into nextgenv2
Debargha Mukherjee [Fri, 1 Apr 2016 17:48:09 +0000 (17:48 +0000)]
Merge "Loopfilter fix" into nextgenv2

8 years agoMerge "change vp10_fwd_txfm2d_#x#_sse2 to vp10_fwd_txfm2d_#x#_sse4_1" into nextgenv2
Angie Chiang [Fri, 1 Apr 2016 17:25:23 +0000 (17:25 +0000)]
Merge "change vp10_fwd_txfm2d_#x#_sse2 to vp10_fwd_txfm2d_#x#_sse4_1" into nextgenv2

8 years agoMerge "Remove redundant code from vp10_fwd_txfm2d.c" into nextgenv2
Angie Chiang [Fri, 1 Apr 2016 17:25:13 +0000 (17:25 +0000)]
Merge "Remove redundant code from vp10_fwd_txfm2d.c" into nextgenv2

8 years agoMerge "Simplify rounding in vp10_[fwd/inv]_txfm[1/2]d_#x#" into nextgenv2
Angie Chiang [Fri, 1 Apr 2016 17:24:49 +0000 (17:24 +0000)]
Merge "Simplify rounding in vp10_[fwd/inv]_txfm[1/2]d_#x#" into nextgenv2

8 years agoMerge "Add vp10_fwd_txfm2d_sse2" into nextgenv2
Angie Chiang [Fri, 1 Apr 2016 17:24:33 +0000 (17:24 +0000)]
Merge "Add vp10_fwd_txfm2d_sse2" into nextgenv2

8 years agoLoopfilter fix
Debargha Mukherjee [Fri, 1 Apr 2016 02:54:00 +0000 (19:54 -0700)]
Loopfilter fix

Fixes mismatch introduced in
https://chromium-review.googlesource.com/#/c/336645

Change-Id: I15cded221c18dbf87b5029bc464e975d5c7c40e3

8 years agoFix a build issue
Yaowu Xu [Thu, 31 Mar 2016 23:06:24 +0000 (16:06 -0700)]
Fix a build issue

Change-Id: Ifdb32c487632098496bf59fcc76c518f8f0426d2

8 years agoMerge "Fix interpolation values and decouple interintra" into nextgenv2
Debargha Mukherjee [Thu, 31 Mar 2016 21:47:10 +0000 (21:47 +0000)]
Merge "Fix interpolation values and decouple interintra" into nextgenv2

8 years agoFix interpolation values and decouple interintra
Debargha Mukherjee [Thu, 31 Mar 2016 00:33:15 +0000 (17:33 -0700)]
Fix interpolation values and decouple interintra

Decouples interintra modes and probability models from regular
intra modes, to enable creating/optimizing new interintra modes.
Also, fixes interpolation values for 128x128 interintra and obmc.

Change-Id: I5c2016db49b8f029164e5fe84c6274d4e02ff90e

8 years agoMerge changes Id20526d0,Iee08d975 into nextgenv2
Debargha Mukherjee [Thu, 31 Mar 2016 18:48:20 +0000 (18:48 +0000)]
Merge changes Id20526d0,Iee08d975 into nextgenv2

* changes:
  Refactor loopfilter level arrays to 2D.
  Rename MI_BLOCK_SIZE and MI_MASK macros.

8 years agoFixed HBD variance unit test on incorrect bit mask operation
Yi Luo [Wed, 30 Mar 2016 22:40:37 +0000 (15:40 -0700)]
Fixed HBD variance unit test on incorrect bit mask operation

- Change logical AND (&&) to arithmetic AND (&).
- Disable failed unit tests for next-step fixing.
https://bugs.chromium.org/p/webm/issues/detail?id=1166

Change-Id: I75cf8d114fa995731ae1cf4c782b134781274a1f

8 years agoMerge "Refactor the sub8x8 block motion search control" into nextgenv2
Jingning Han [Thu, 31 Mar 2016 15:50:37 +0000 (15:50 +0000)]
Merge "Refactor the sub8x8 block motion search control" into nextgenv2

8 years agoRefactor loopfilter level arrays to 2D.
Geza Lore [Thu, 31 Mar 2016 14:52:12 +0000 (15:52 +0100)]
Refactor loopfilter level arrays to 2D.

Change-Id: Id20526d0b6d1371dc9f45cb8b5f24b6974da7bc4

8 years agoRename MI_BLOCK_SIZE and MI_MASK macros.
Geza Lore [Thu, 24 Mar 2016 11:20:25 +0000 (11:20 +0000)]
Rename MI_BLOCK_SIZE and MI_MASK macros.

Rename MI_BLOCK_SIZE.* -> MAX_MIB_SIZE.* (MIB is for MI Block).
Rename MI_MASK.* -> MAX_MIB_MASK.*

There are no functional changes.

This is in preparation for coding the superblock size at the frame
level, which will require some of these constants to become variables.
The new names better reflect future semantics, and hence make the code
clearer.

Change-Id: Iee08d97554cf4cc16a5dc166a3ffd1ab91529992

8 years agoMerge "Use write_modes_b_wrapper throughout." into nextgenv2
Alex Converse [Thu, 31 Mar 2016 06:04:02 +0000 (06:04 +0000)]
Merge "Use write_modes_b_wrapper throughout." into nextgenv2

8 years agoMerge "Set block size upper bound for Palette mode" into nextgenv2
Hui Su [Thu, 31 Mar 2016 00:23:11 +0000 (00:23 +0000)]
Merge "Set block size upper bound for Palette mode" into nextgenv2

8 years agoUse write_modes_b_wrapper throughout.
Geza Lore [Wed, 30 Mar 2016 09:56:14 +0000 (10:56 +0100)]
Use write_modes_b_wrapper throughout.

Change-Id: Ifbef3aa6e6b0dbc3701a9ef91b8b685a918d84f4

8 years agochange vp10_fwd_txfm2d_#x#_sse2 to vp10_fwd_txfm2d_#x#_sse4_1
Angie Chiang [Thu, 24 Mar 2016 22:34:27 +0000 (15:34 -0700)]
change vp10_fwd_txfm2d_#x#_sse2 to vp10_fwd_txfm2d_#x#_sse4_1

The speed performance for running 20k times  is as follows

Notice that the vp10_highbd_fdct#x#_sse2 version is
16-bit version plus range check

The rest are 32-bit version

vp10_fwd_txfm2d_4x4_c (2 ms)
vp10_fwd_txfm2d_8x8_c (9 ms)
vp10_fwd_txfm2d_16x16_c (45 ms)
vp10_fwd_txfm2d_32x32_c (233 ms)

vp10_fwd_txfm2d_4x4_sse4_1 (2 ms)
vp10_fwd_txfm2d_8x8_sse4_1 (3 ms)
vp10_fwd_txfm2d_16x16_sse4_1 (16 ms)
vp10_fwd_txfm2d_32x32_sse4_1 (80 ms)

vp10_highbd_fdct4x4_c (1 ms)
vp10_highbd_fdct8x8_c (3 ms)
vp10_highbd_fdct16x16_c (17 ms)
highbd_fdct32x32_c (160 ms)

vp10_highbd_fdct4x4_sse2 (0 ms)
vp10_highbd_fdct8x8_sse2 (2 ms)
vp10_highbd_fdct16x16_sse2 (8 ms)
highbd_fdct32x32_sse2 (105 ms)

Change-Id: I24daf1e0d4d66e91e4ce61ef71cefa7b70ee90ce

8 years agoRemove redundant code from vp10_fwd_txfm2d.c
Angie Chiang [Thu, 24 Mar 2016 01:47:27 +0000 (18:47 -0700)]
Remove redundant code from vp10_fwd_txfm2d.c

Change-Id: I87ae5e93957616c0f5160a4f679e42f77092c33f

8 years agoSimplify rounding in vp10_[fwd/inv]_txfm[1/2]d_#x#
Angie Chiang [Wed, 23 Mar 2016 17:59:32 +0000 (10:59 -0700)]
Simplify rounding in vp10_[fwd/inv]_txfm[1/2]d_#x#

Change-Id: I24ce46e157dc5b9c0d75000a1a48e9c136ed4ee1

8 years agoAdd vp10_fwd_txfm2d_sse2
Angie Chiang [Wed, 23 Mar 2016 02:14:12 +0000 (19:14 -0700)]
Add vp10_fwd_txfm2d_sse2

Change-Id: Idfbe3c7f5a7eb799c03968171006f21bf3d96091

8 years agoSet block size upper bound for Palette mode
hui su [Tue, 29 Mar 2016 23:28:28 +0000 (16:28 -0700)]
Set block size upper bound for Palette mode

Avoid buffer overflow in case of such new experiments as
128 x 128 superblock size.

Change-Id: Ib775f3925a85fc87227c0ddd9b6a6110a12ef196

8 years agoSome fixes/speed-ups on inter-intra part of ext-inter
Debargha Mukherjee [Tue, 29 Mar 2016 22:25:58 +0000 (15:25 -0700)]
Some fixes/speed-ups on inter-intra part of ext-inter

Fixes an issue with rectangular inter-intra blocks.
Includes various other refactoring and cleanups to enable fast mixing
of inter and intra predictors.
Uses only the best single inter reference so far for the inter-intra
search.

About 30% speed-up with a 0.1% hit in performance.

This is part one of overhauling on the ext-inter experiment. To be
continued in subsequent patches.

Change-Id: Id10ee100c78c6e00009a3a4f930a4435ef403a95

8 years agoMerge "Extend superblock size fo 128x128 pixels." into nextgenv2
Debargha Mukherjee [Wed, 30 Mar 2016 20:55:32 +0000 (20:55 +0000)]
Merge "Extend superblock size fo 128x128 pixels." into nextgenv2

8 years agoExtend superblock size fo 128x128 pixels.
Geza Lore [Mon, 7 Mar 2016 13:46:39 +0000 (13:46 +0000)]
Extend superblock size fo 128x128 pixels.

If --enable-ext-partition is used at build time, the superblock size
(sometimes also referred to as coding unit (CU) size) is extended to
128x128 pixels.

Change-Id: Ie09cec6b7e8d765b7555ff5d80974aab60803f3a

8 years agoMerge "Fix for ext_interp experiment" into nextgenv2
Debargha Mukherjee [Wed, 30 Mar 2016 14:44:39 +0000 (14:44 +0000)]
Merge "Fix for ext_interp experiment" into nextgenv2

8 years agoMerge "Add new config flag for global motion experiment" into nextgenv2
Debargha Mukherjee [Wed, 30 Mar 2016 14:36:45 +0000 (14:36 +0000)]
Merge "Add new config flag for global motion experiment" into nextgenv2

8 years agoRefactor the sub8x8 block motion search control
Jingning Han [Mon, 28 Mar 2016 21:50:11 +0000 (14:50 -0700)]
Refactor the sub8x8 block motion search control

Change-Id: Ia340e66e0a61403070adf8e4f18f00eab143f8f7

8 years agoMerge "Palette mode: record selected transform type" into nextgenv2
Hui Su [Tue, 29 Mar 2016 16:23:06 +0000 (16:23 +0000)]
Merge "Palette mode: record selected transform type" into nextgenv2

8 years agoMerge "Force the VPX boolcoder trees in the ANS test." into nextgenv2
Alex Converse [Tue, 29 Mar 2016 16:23:00 +0000 (16:23 +0000)]
Merge "Force the VPX boolcoder trees in the ANS test." into nextgenv2

8 years agoMerge "Merge branch 'masterbase' into nextgenv2" into nextgenv2
Yaowu Xu [Tue, 29 Mar 2016 16:05:53 +0000 (16:05 +0000)]
Merge "Merge branch 'masterbase' into nextgenv2" into nextgenv2

8 years agoFix for ext_interp experiment
Julia Robson [Tue, 29 Mar 2016 13:51:02 +0000 (14:51 +0100)]
Fix for ext_interp experiment

Amends previous commit to also handle subsampling correctly.
Change ID of prev commit: I6b07e6cf9b287ba4b5bd6599af4a7412e50b3bdc

Was causing occassional failures for 422 streams due to accessing
elements beyond the extent of the bmi array.

Change-Id: I37ebabf4c01ca84bcd1851428172bdf753805d98

8 years agoPalette mode: record selected transform type
hui su [Tue, 29 Mar 2016 02:05:52 +0000 (19:05 -0700)]
Palette mode: record selected transform type

Change-Id: I4c3d3224571176ac924d79ddfaba56990fc4000e

8 years agoMerge "Fix a rdcost computation issue in sub8x8 block mode search" into nextgenv2
Jingning Han [Tue, 29 Mar 2016 00:51:01 +0000 (00:51 +0000)]
Merge "Fix a rdcost computation issue in sub8x8 block mode search" into nextgenv2

8 years agoMerge branch 'masterbase' into nextgenv2
Yaowu Xu [Mon, 28 Mar 2016 17:26:27 +0000 (10:26 -0700)]
Merge branch 'masterbase' into nextgenv2

Conflicts:
vp9/encoder/vp9_encoder.c
vpx_dsp/x86/convolve.h

Change-Id: I60c3532936bedd796a75dfe78245a95ec21e2e55

8 years agoMerge "Rename run_rd_check to run_mv_search" into nextgenv2
Jingning Han [Mon, 28 Mar 2016 23:10:48 +0000 (23:10 +0000)]
Merge "Rename run_rd_check to run_mv_search" into nextgenv2

8 years agoMerge "Rework the predicted motion vector for sub8x8 block" into nextgenv2
Jingning Han [Mon, 28 Mar 2016 23:10:35 +0000 (23:10 +0000)]
Merge "Rework the predicted motion vector for sub8x8 block" into nextgenv2

8 years agoFix a rdcost computation issue in sub8x8 block mode search
Jingning Han [Mon, 28 Mar 2016 19:52:05 +0000 (12:52 -0700)]
Fix a rdcost computation issue in sub8x8 block mode search

Compute the rate-distortion cost for sub8x8 blocks with integer
motion vectors.

Change-Id: I7dc034fcc4bec3850f26d1f9ae0595c91df1137e

8 years agoRename run_rd_check to run_mv_search
Jingning Han [Mon, 28 Mar 2016 18:52:11 +0000 (11:52 -0700)]
Rename run_rd_check to run_mv_search

Improve the readability in the related rate-distortion optimization
search control function of sub8x8 blocks.

Change-Id: I7f7456bf40a98aa5146abfe0488cda745b84d899

8 years agoRework the predicted motion vector for sub8x8 block
Jingning Han [Tue, 22 Mar 2016 23:38:27 +0000 (16:38 -0700)]
Rework the predicted motion vector for sub8x8 block

This commit makes the sub8x8 block to use its nearest neighbor's
motion vector as predicted motion vector for NEWMV mode. It improves
the coding performance by 0.12%.

Change-Id: I99e56715b327573ce7e8a26e3515a4984dadfd98

8 years agoMerge "Use vp10_[fwd/inv]_txfm2d_add_32x32 for bd 10" into nextgenv2
Angie Chiang [Mon, 28 Mar 2016 19:20:48 +0000 (19:20 +0000)]
Merge "Use vp10_[fwd/inv]_txfm2d_add_32x32 for bd 10" into nextgenv2

8 years agoForce the VPX boolcoder trees in the ANS test.
Alex Converse [Tue, 22 Mar 2016 18:11:30 +0000 (11:11 -0700)]
Force the VPX boolcoder trees in the ANS test.

Change-Id: I282f958c35aabcdfaf1077f8909c56c999420937

8 years agoMerge "Make set_reference control API work in VP9 and VP10" into nextgenv2
Yunqing Wang [Mon, 28 Mar 2016 18:33:02 +0000 (18:33 +0000)]
Merge "Make set_reference control API work in VP9 and VP10" into nextgenv2

8 years agoMerge "Fix assertion fail in build_intra_predictors" into nextgenv2
Hui Su [Mon, 28 Mar 2016 18:14:47 +0000 (18:14 +0000)]
Merge "Fix assertion fail in build_intra_predictors" into nextgenv2

8 years agoMerge "Use vp10_[fwd/inv]_txfm2d_add_#x# for bd 10" into nextgenv2
Angie Chiang [Mon, 28 Mar 2016 18:11:47 +0000 (18:11 +0000)]
Merge "Use vp10_[fwd/inv]_txfm2d_add_#x# for bd 10" into nextgenv2

8 years agoUse vp10_[fwd/inv]_txfm2d_add_32x32 for bd 10
Angie Chiang [Tue, 22 Mar 2016 00:06:52 +0000 (17:06 -0700)]
Use vp10_[fwd/inv]_txfm2d_add_32x32 for bd 10

Change-Id: I996c48a90d7d71b52594a91a35cb8712c7fc212e

8 years agoMerge changes I3c72a2d8,I9905f3a8 into nextgenv2
Alex Converse [Mon, 28 Mar 2016 16:59:17 +0000 (16:59 +0000)]
Merge changes I3c72a2d8,I9905f3a8 into nextgenv2

* changes:
  Add pluggable bitwriters.
  Add pluggable bitreaders.

8 years agoMake set_reference control API work in VP9 and VP10
Yunqing Wang [Fri, 25 Mar 2016 18:57:20 +0000 (11:57 -0700)]
Make set_reference control API work in VP9 and VP10

Moved the API patch from NextGen to NextGenv2 and also added this
API to VP10. An example was included. To try it, for example, run
the following command:
$ examples/vpx_cx_set_ref vp10 352 288 in.yuv out.ivf 4 30

Change-Id: Ib56bc3d365e530cfc8d859a13ddbf4c007907b81

8 years agoMerge "Fixes for Palette mode" into nextgenv2
Hui Su [Mon, 28 Mar 2016 16:44:33 +0000 (16:44 +0000)]
Merge "Fixes for Palette mode" into nextgenv2

8 years agoFix assertion fail in build_intra_predictors
hui su [Mon, 28 Mar 2016 00:21:44 +0000 (17:21 -0700)]
Fix assertion fail in build_intra_predictors

Change-Id: Id6683b9593b52aa0d159f8f013782d9e0bd07206

8 years agoMerge "vp8-denoiser: Use the same skin detection for model=1 as in vp9."
Marco Paniconi [Mon, 28 Mar 2016 16:05:46 +0000 (16:05 +0000)]
Merge "vp8-denoiser: Use the same skin detection for model=1 as in vp9."

8 years agoMerge "8x8/16x16 HT types V_DCT to H_FLIPADST SSE2 optimization" into nextgenv2
Yi Luo [Mon, 28 Mar 2016 15:39:24 +0000 (15:39 +0000)]
Merge "8x8/16x16 HT types V_DCT to H_FLIPADST SSE2 optimization" into nextgenv2

8 years agoRevert "third_party: Roll libwebm snapshot."
James Zern [Sat, 26 Mar 2016 19:52:49 +0000 (12:52 -0700)]
Revert "third_party: Roll libwebm snapshot."

This reverts commit 80ddeb281a0d4b3d9a6d39a7ef91370f52845b39.

breaks Android build and causes valgrind failures in the examples

Change-Id: Ie13ceed2f9f8970af87339b807032a52083f27fe

8 years agoMerge "third_party: Roll libwebm snapshot."
Tom Finegan [Sat, 26 Mar 2016 01:41:49 +0000 (01:41 +0000)]
Merge "third_party: Roll libwebm snapshot."

8 years agoFixes for Palette mode
hui su [Sat, 26 Mar 2016 00:28:15 +0000 (17:28 -0700)]
Fixes for Palette mode

This patch fixes 2 issues in Palette mode:
1. More memory is needed in PALETTE_BUFFER for 444 video format.
2. A merge issue caused by
https://chromium-review.googlesource.com/#/c/333940/7

Change-Id: I2aedc7dfdfb6b66fbd600189ec6e1e2cc6120d40

8 years agoMerge "Use speed 2 on superframe test." into nextgenv2
Alex Converse [Sat, 26 Mar 2016 00:49:06 +0000 (00:49 +0000)]
Merge "Use speed 2 on superframe test." into nextgenv2

8 years agoUse speed 2 on superframe test.
Alex Converse [Fri, 25 Mar 2016 23:11:17 +0000 (16:11 -0700)]
Use speed 2 on superframe test.

No need to do avoid shortcuts when all we are testing is the superframe
syntax. Decreases the run time up the VP10 version of the test from 22
seconds to 3 seconds on my machine.

Change-Id: If0c3551cbb8af8b803e02629e803e5f09da76cd1

8 years agoMerge "Fix failing test: VP10/SuperframeTest.TestSuperframeIndexIsOptional/0" into...
Alex Converse [Sat, 26 Mar 2016 00:14:21 +0000 (00:14 +0000)]
Merge "Fix failing test: VP10/SuperframeTest.TestSuperframeIndexIsOptional/0" into nextgenv2

8 years ago8x8/16x16 HT types V_DCT to H_FLIPADST SSE2 optimization
Yi Luo [Fri, 25 Mar 2016 23:48:19 +0000 (16:48 -0700)]
8x8/16x16 HT types V_DCT to H_FLIPADST SSE2 optimization

- Wrote function: fidtx8_sse2() and fidtx16_sse2().
- Turned on vp10_fht8x8_sse2()/vp10_fht16x16_sse2() for new types.
- Updated 8x8/16x16 unit tests for accuracy/speed.
- Running 20K times with random numbers and getting through
  tx type from V_DCT to H_FLIPADST, SSE2 speed improvement:
  8x8: ~131%
  16x16: ~66%

Change-Id: Ibbb707e932a08fec3b1f423a7dab280a1d696c9a

8 years agoFix failing test: VP10/SuperframeTest.TestSuperframeIndexIsOptional/0
Alex Converse [Fri, 25 Mar 2016 23:07:00 +0000 (16:07 -0700)]
Fix failing test: VP10/SuperframeTest.TestSuperframeIndexIsOptional/0

Failing since: 66f2f65 Merge MISC_FIXES

Change-Id: I8135d6a9d74972c595f1b6294fb842e68f91e50e

8 years agovp9: 1 pass vbr mode at speed 5: switch to use mv.search to NSTEP.
Marco [Fri, 25 Mar 2016 18:34:56 +0000 (11:34 -0700)]
vp9: 1 pass vbr mode at speed 5: switch to use mv.search to NSTEP.

Change only affects 1 pass, vbr, speed = 5 (real-time mode).

Some improvement for high motion content.
AvgPSNR/SSIM metrics for ytlive set all up, on average ~2%,
some clips (high motion ones) up 4/5%.

Encoder speed down: on mynintendo_x1.1280_720.y4m: 47fps -> 44fps.

Change-Id: I9e3eaa6392dcb6b5b44ee6f43004f97ba859bc11