17183 Commits

Author SHA1 Message Date
Yaowu Xu
2240d83d78 Promote to uint32_t before left shift
This commit change to promote uint8_t explicitly to uint32_t before
left shift operation.

BUG=https://bugs.chromium.org/p/chromium/issues/detail?id=612021

Change-Id: Id7059154efb5bdfa45889dabe72aaafd46d79f23
2016-05-17 11:39:57 -07:00
Debargha Mukherjee
049dbe7786 Reducing computation of interintra modes
Use model for interintra mode search.
Speed-up about 5-10% with about 0.04 drop in efficiency.

lowres: -2.60%

Change-Id: I825bf0ba8a46eb7f19fc528c25b8df066fb8ea95
2016-05-17 07:28:06 -07:00
James Zern
a81a75184c Merge "vp10/rdopt,rd_pick_intra4x4block: port tsan fix from vp9" into nextgenv2 2016-05-17 03:04:00 +00:00
James Zern
8eba4ac46e vp10/rdopt,rd_pick_intra4x4block: port tsan fix from vp9
minus the non-existent nonrd portion. original change:

commit d642294b1c57a5adacb1038ff45766c38bae8a6d
Author: Jingning Han <jingning@google.com>
Date:   Thu Feb 11 12:36:49 2016 -0800

    Fix tsan error in VP9 sub8x8 intra mode search

    This commit fixes issue 1141. The issue was triggered in multi-tile
    encoding. The change properly saves and restores the block context
    information in the real-time mode selection process. It removes
    several redundant memcpy operations in sub8x8 intra block mode
    search.

    Change-Id: I35c9ad197f4bd500ec39b5fc833f052f19eee010

Change-Id: Idfa38c54c9e645479f6870d46f71fb1e91c071da
2016-05-16 17:20:29 -07:00
Jingning Han
4677e1a718 Unify the per directional filter type system for compound modes
For the current stage, we assume a single prediction filter type
per direction in the settings of compound inter prediction modes.

Change-Id: I12a1afdd364b93fcee870bd11ad01fc40ab48cff
2016-05-16 14:41:08 -07:00
Jingning Han
d567e14e81 Enable per motion component filter type selection
Change-Id: I73823fc94f296d225dece7156de71b30bae3fcb7
2016-05-16 14:38:43 -07:00
Jingning Han
c4e7fde68a Merge "Properly handle 2D filter boundary extension" into nextgenv2 2016-05-16 21:34:28 +00:00
Yi Luo
ceabb00704 Merge "HBD inverse HT 4x4 SSE4.1 optimization" into nextgenv2 2016-05-16 21:15:08 +00:00
Debargha Mukherjee
250c6af087 Merge "Various wedge enhancements" into nextgenv2 2016-05-16 21:11:35 +00:00
Marco Paniconi
bdfbd6325e Merge "vp9: Update to rc-metric for keeping track of average frame size." 2016-05-16 21:09:46 +00:00
Hui Su
57d30b7b4d Merge "Add level test for VP9" 2016-05-16 20:55:10 +00:00
Debargha Mukherjee
fb8ea1736b Various wedge enhancements
Increases number of wedges for smaller block and removes
wedge coding mode for blocks larger than 32x32.

Also adds various other enhancements for subsequent experimentation,
including adding provision for multiple smoothing functions
(though one is used currently), adds a speed feature that decides
the sign for interinter wedges using a fast mechanism, and refactors
wedge representations.

lowres: -2.651% BDRATE

Most of the gain is due to increase in codebook size for 8x8 - 16x16.

Change-Id: I50669f558c8d0d45e5a6f70aca4385a185b58b5b
2016-05-16 12:41:47 -07:00
Johann
9b54e812f7 neon hadamard 8x8
Runs about 30% faster than the C

BUG=webm:1021

Change-Id: I6809d6d84c3077ab619c53298296950e976bdaba
2016-05-16 11:58:02 -07:00
Jingning Han
14dd5538e9 Properly handle 2D filter boundary extension
The amount of border extension needed in the first stage inter
filtering is decided by the length of the second stage filter
kernel.

Change-Id: Icddbc58c02234d5df09ff0eeebcf166ffe689203
2016-05-16 11:49:27 -07:00
Angie Chiang
af87a7b0ca Merge changes I6aa75c66,Id5f0fade,I368d365e,Ibaf7b00b into nextgenv2
* changes:
  Refactor and add flip unit test to vp10_inv_txfm2d_test.cc
  Add flip feature to vp10_inv_txfm2d.c
  add unit test for highbd flip transform
  Refactor vp10_fwd_txfm2d_test.cc
2016-05-16 18:12:18 +00:00
hui su
cafbf63d30 Add level test for VP9
Change-Id: I99f50bdd5af3f64a029c2f5f6f5fb1ff45bad67e
2016-05-16 09:54:23 -07:00
JackyChen
0dfa6b38dc Move non-zero mv bias on large block out of vp9_pick_inter_mode.
This is to simplify pick inter mode funtion and is bitexact.

Change-Id: Ib1a115bac5fbd212c626be194bcd4a6ce4af9bf2
2016-05-13 15:29:05 -07:00
Marco
8a79769aff vp9: Update to rc-metric for keeping track of average frame size.
Rename and change to how its updated.
Only affects 1 pass vbr.

Small change in metrics (< ~0.1%) on ytlive set.

Change-Id: Ibb1fe485699b6c4a8194951c8f229abe2f64b9a5
2016-05-13 14:31:57 -07:00
Angie Chiang
fdaad9f673 Refactor and add flip unit test to vp10_inv_txfm2d_test.cc
Change-Id: I6aa75c66429a0178852cf8df88f16eaa8e36b629
2016-05-13 12:30:51 -07:00
Angie Chiang
909bbe734a Add flip feature to vp10_inv_txfm2d.c
Change-Id: Id5f0fade42749d2bed5553eda0d690af22b6c5b1
2016-05-13 12:21:58 -07:00
Angie Chiang
6a75253311 add unit test for highbd flip transform
Change-Id: I368d365ee0f58373bc399b615febd790addb2c36
2016-05-13 12:20:06 -07:00
Angie Chiang
716f1bd46c Refactor vp10_fwd_txfm2d_test.cc
Change-Id: Ibaf7b00bfe247df3e665ea3a0241667cb130e16c
2016-05-13 12:13:31 -07:00
Yi Luo
a3a69b400c HBD inverse HT 4x4 SSE4.1 optimization
- Tx_type: DCT_DCT, DCT_ADST, ADST_DCT, ADST_ADST.
- Encoder overall instruction count drops 2.91%.
- Decoder overall instruction count drops 1.01%.
- Add unit test to test bit-exact result against C.

Change-Id: I908c9e0e5106c58f67dd72d28760e6c9ce54278e
2016-05-13 12:08:43 -07:00
James Zern
98726d538b Merge "convolve_test: Fix high bit depth IOC runtime errors." 2016-05-13 17:56:41 +00:00
Tom Finegan
9a56a5ea18 convolve_test: Fix high bit depth IOC runtime errors.
Add a cast.

BUG=webm:1225

Change-Id: I34ea18ee816569485c1f1046a81fd2a0ce527ac8
2016-05-13 09:42:58 -07:00
Tom Finegan
656f9c4126 Merge "Add --enable-shared option to iosbuild.sh to build dynamic framework" 2016-05-13 15:48:52 +00:00
Yaowu Xu
c1e4f5a80d Merge "Change to use correct check for halfpel" 2016-05-13 01:27:47 +00:00
Jingning Han
09ed43ed56 Add static to memcpy_short_addr
Change-Id: I4a713784395bf13aaba2f7b175a6e93d50373a2f
2016-05-12 16:16:52 -07:00
Jingning Han
5b573d650a Fix vp10_inv_txfm2d.round_trip test failure
Avoid accessing transform type that is not 2D-DCT if the transform
size is 64x64. This fixes an assert failure in this unit test.

Change-Id: I0dee865ea0925f5743b8a25c2f90eb6522b4d272
2016-05-12 16:09:02 -07:00
Jingning Han
cacd634791 Fix vp10_get_inv_txfm_64x64_cfg
Add a missing break statement to prevent unintended behavior.

Change-Id: I54ecc95d4a35d4011e85af5635c94015cc944331
2016-05-12 16:07:23 -07:00
Jingning Han
ddee66f2e4 Refactor the inter predictor for supertx
This commit unifies the inter predictor used in supertx at both
encoder and decoder sides. It removes the redundant decoder
implementations related to border extension.

Change-Id: I03985cee52604a518394232fa9258ce057af9c00
2016-05-12 14:43:24 -07:00
Jingning Han
7ac38a7143 Merge "Unify the use of inter predictor in encoder and decoder" into nextgenv2 2016-05-12 21:27:07 +00:00
Jingning Han
d6c881358b Unify the use of inter predictor in encoder and decoder
This commit unifies the inter predictor used in the encoder and
decoder side for super-tx experiment. This resolves an enc/dec
mismatch found in nextgenv2 nightly-run unit test.

Change-Id: I16ab8d6063edf9d2fba79473f470f1a592cc10a0
2016-05-12 12:52:30 -07:00
Yunqing Wang
e7ebe26dd5 Merge "Add decoder APIs and unit tests in tile-coding experiment" into nextgenv2 2016-05-12 19:05:58 +00:00
Angie Chiang
1e587ae616 Merge "Add flip option for vp10_fwd_txfm2d_#x#_c" into nextgenv2 2016-05-12 18:08:28 +00:00
Tom Finegan
9d7eaf0046 Merge "twopass_encoder: Add frame limit argument." 2016-05-12 16:26:29 +00:00
Brion Vibber
992e4b7090 Add --enable-shared option to iosbuild.sh to build dynamic framework
Also allows use of --enable-shared when configuring for Mac OS X,
producing a bare .dylib.

Enabling the shared framework bumps the iOS deployment target to 8.0,
the minimum required to support dynamic framework deployment in apps.

When not using --enable-shared, a static library for iOS 6.0+ will still
be built.

Minimum version settings have been moved into ios-version.sh so they
can be updated in a single place.

As with the static build, unless header search paths are manually
tweaked, users must add a VPX prefix on includes, such as:

  #include <VPX/vpx/vpx_decoder.h>

A module map for headers is not yet included as inttypes.h is not
modular; this means that VPX cannot be used directly in Swift code,
but can still be pulled in through an Objective-C wrapper.

BUG=https://bugs.chromium.org/p/webm/issues/detail?id=1092
Change-Id: I28fb06ce65e48ed167a88c14a7bfb2861989317e
2016-05-12 08:26:01 -07:00
Tom Finegan
10c7ea4be8 Merge "simple_encoder: Add a frame limit argument." 2016-05-12 14:55:08 +00:00
hui su
3c206aca04 Fix typos in control function for VP9E_SET_TARGET_LEVEL
Change-Id: Ic797c6be579c3434681a5e9dbb3900ae49c43958
2016-05-11 20:23:52 -07:00
Jingning Han
aad8c94fb7 Merge "Fix highbd masked variance function declaration" into nextgenv2 2016-05-12 01:29:38 +00:00
Yunqing Wang
8e5e338727 Add decoder APIs and unit tests in tile-coding experiment
In the tile-coding experiment,
1. In tile decoder, added 2 set control APIs:
   VP10_SET_DECODE_TILE_ROW and VP10_SET_DECODE_TILE_COL. It allowed
   users to set the range of decoding at frame level.
2. Added a unit test while tile-coding experiment is on. It tested
   both tile encoder and decoder to make sure the encoded frame
   can be decoded as a whole frame or as independent tiles.

Change-Id: I73fd0632b685047cb9376008127cde72efa3fb2b
2016-05-11 16:47:26 -07:00
James Zern
18112f6724 add vp10 ActiveMap/ActiveMapRefreshTest
currently disabled as they result in ASan errors

BUG=https://bugs.chromium.org/p/webm/issues/detail?id=1224

Change-Id: I9c80910adc5dc2cd6eccb3030d33043df53e7ec5
2016-05-11 16:33:29 -07:00
Jingning Han
5538c2cb00 Fix highbd masked variance function declaration
Fix the variable type mismatch between highbd_calc_masked_var_t and
the actual function definiton. This clears the related compiler
warnings in highbd with ext-inter experiment.

Change-Id: I0423318b16c867ed84700084ad21ca6e42edb321
2016-05-11 15:52:58 -07:00
Linfeng Zhang
2f55beb355 Merge "remove mmx variance functions" 2016-05-11 22:21:23 +00:00
Marco Paniconi
70bdf643d0 Merge "vp9: Fix to quality regression issue for 1 pass." 2016-05-11 22:15:24 +00:00
Linfeng Zhang
8700eed4c6 Merge "remove mmx sad functions" 2016-05-11 22:04:41 +00:00
Tom Finegan
7d6edc3ddd simple_encoder: Add a frame limit argument.
- Add frame limit argument.
- Make all arguments required.
- Enable the VP9 simple encoder test.

Change-Id: I11d228b358ff90c60ea92e02760cb476434ea571
2016-05-11 14:52:34 -07:00
Tom Finegan
9d47341a4c twopass_encoder: Add frame limit argument.
- Remove twopass_encoder test TODO re frame limit.
- Enable VP9 twopass_encoder test.

Change-Id: I0649f15aabef79a63891e997fd20b212af5672e6
2016-05-11 14:50:03 -07:00
Marco
0c60db7def vp9: Fix to quality regression issue for 1 pass.
BUG=https://bugs.chromium.org/p/webm/issues/detail?id=1217

Issue introduced in https://chromium-review.googlesource.com/#/c/339162/.
The factor on avg_frame_qindex[INTER_FRAME] in that CL, used for q-basis to
set active_best, can cause the QP to decrease too slowly or get stuck
in some cases when max-q=63.

Removing that factor fixes the regression in issue#1217.

Change-Id: I97fe28dca3c2bc2d852b1775f39c62164e032d4f
2016-05-11 14:01:21 -07:00
Debargha Mukherjee
55598d1b3d Merge "Cost wedge sign/index properly in rdopt." into nextgenv2 2016-05-11 20:55:40 +00:00