Commit Graph

17197 Commits

Author SHA1 Message Date
Sarah Parker
b4d9a2caf3 Merge "Add interface to compute gm parameters in encodeframe" into nextgenv2 2016-08-10 00:37:28 +00:00
James Zern
d44472b646 Merge "remove vp8cx_set_ref.c" into nextgenv2 2016-08-10 00:03:54 +00:00
Sarah Parker
d616a5cee4 Add interface to compute gm parameters in encodeframe
This patch just creates the interface for global motion computation
and calls it from encodeframe. Currently, the function
compute_global_motion_feature_based is empty and the work to do
the actual parameter calculation will be added in a future patch.

Change-Id: Ife142742140079e1c1743b66f180aeb2ecea29ae
2016-08-09 16:00:59 -07:00
Wei-ting Lin
ffdd988427 Merge "Fix a bug for multi_arf_allowed" into nextgenv2 2016-08-09 21:09:57 +00:00
James Zern
2c14c539b3 remove vp8cx_set_ref.c
and the related tests. vpxcx_set_ref is the binary to use for vp10.

Change-Id: I4c4ce7b36b165e6d06b87fd6b53923a1c11e4e6c
2016-08-08 17:14:04 -07:00
James Zern
b869de9856 Merge "configure: test for -Wfloat-conversion" into nextgenv2 2016-08-08 21:48:14 +00:00
Yi Luo
dd2edd0ad5 Merge "Optimization EXT_INTRA's filtered intra predictor (SSE4.1)" into nextgenv2 2016-08-08 20:55:44 +00:00
Sarah Parker
b659281eec Add reconstruction using gm parameters
This patch only includes inter frame reconstruction using gm
parameters when GLOBAL_MOTION and/or VP9_HIGHBITDEPTH are enabled.
GM is not currently used when EXT_INTER or DUAL_FILTER is enabled.
This will be added in a followup patch. For now, these experiments
will take precedence over GLOBAL_MOTION when they are all enabled.

Change-Id: I930ddda529c44d7245dbb56db3c9c5524cf45473
2016-08-08 10:17:05 -07:00
Yi Luo
57c4711b5c Optimization EXT_INTRA's filtered intra predictor (SSE4.1)
- Add unit tests to verify the bit-exact result.
- In speed test, function speed (for each mode/tx_size)
  improves about 23%~35%.
- On E5-2680, park_joy_1080p, 10 frames, --kf-max-dist=1,
  encoding time improves about 1%~2%.

Change-Id: Id89f313d44eea562c02e775a6253dc4df7e046a9
2016-08-08 10:02:36 -07:00
Yue Chen
292ea74fe4 Merge "Speed filter intra mode search in EXT_INTRA experiment" into nextgenv2 2016-08-06 00:17:33 +00:00
James Zern
a9d984830a configure: test for -Wfloat-conversion
supported by clang, gcc-4.9+

Change-Id: I893766de7307fef9a8b68c0cfae137c9d3b0dbe8
(cherry picked from commit 889ed5b158)
2016-08-06 00:02:45 +00:00
James Zern
d609b520fa Merge "warped_motion: remove unused vp10_integerize_model" into nextgenv2 2016-08-06 00:02:15 +00:00
Yue Chen
f6a5c27493 Speed filter intra mode search in EXT_INTRA experiment
(1) Key frame: skip filter intra modes whose directional pred
    version is relatively bad (rd >= 1.125 * best_rd)
(2) Inter frame: do not check filter intra modes if best_intra_rd
    >= 1.25 * best_rd

Encoding time overhead is reduced by:
4.9% (9.2%->4.3%, soccer_cif)
Coding gains drop by 0.021% on lowres and by 0.076% on midres

Change-Id: I29b6f7d3d3dc4b362c6d63bc447e6a429ba5dc66
2016-08-05 23:04:46 +00:00
Wei-ting Lin
c0e55de06b Fix a bug for multi_arf_allowed
The ARF Index was wrong when updating the upsampled reference
frame buffer.

Compared to the baseline in which multi_arf_allowed is disabled, the
RD performance drops 2.250% in Avg using Overall PSNR in the derf
dataset. The performance decrease is especially in the following
video sequences:

foreman_cif: drops 7.489%
husky_cif: drops 6.421%
soccer_cif: drops 4.850%

However, it has a significant gain in the following video sequences:

container_cif: increases 8.043%
harbour_cif: increases 1.332%

Change-Id: I02472909eb34bd070d7544f57383e72559fa42b3
2016-08-05 14:05:50 -07:00
Urvang Joshi
016a5daa59 Palette code: simpler and faster duplicate removal
Change-Id: I0c1baa5ca73c1f067d69239d3e31d1050b4706d2
2016-08-05 12:33:21 -07:00
Zoe Liu
cbed16b8b3 Merge "Code refactoring on Macros related to ref frame numbers" into nextgenv2 2016-08-05 16:59:36 +00:00
Urvang Joshi
9faf9148ec Merge "Make palette code faster: replace nested for loops by a single memcpy()." into nextgenv2 2016-08-05 00:20:11 +00:00
Yaowu Xu
476e44a689 Merge "Replace variants of 'vp8' and 'vp9' with 'vpx'" into nextgenv2 2016-08-04 23:48:59 +00:00
Yaowu Xu
59589d0c4a Merge changes Ic5ddba3c,Ibe7a3248 into nextgenv2
* changes:
  Fix a number of msvc warnings
  Reduce number of frames in lossless tests
2016-08-04 23:27:35 +00:00
Yaowu Xu
fe291b647e Replace variants of 'vp8' and 'vp9' with 'vpx'
Change-Id: Id6cb96b0b15efdda63348d8bfe59fc0533c85ba1
2016-08-04 22:20:38 +00:00
Urvang Joshi
a0a23b7f0c Make palette code faster: replace nested for loops by a single memcpy().
Change-Id: Ia14df45a35c98d680822454fbb8d1763884c1852
2016-08-04 15:01:19 -07:00
Yaowu Xu
56a91f139d Fix a number of msvc warnings
Change-Id: Ic5ddba3ca0c87245617b6dbc78c0f13dc952ce8b
2016-08-04 21:42:56 +00:00
Yaowu Xu
a1b6507e2b Reduce number of frames in lossless tests
This it to reduce the time necessary for these tests.

Change-Id: Ibe7a3248a6c45baf575af85fdffcffc557dd054b
2016-08-04 14:36:29 -07:00
James Zern
6679608386 vp10_inv_txfm2d_test: normalize max_error type
quiets double -> int conversion warning

Change-Id: Ic860d187bc77e18b277eef28310feee1899cdbe6
2016-08-04 12:24:20 -07:00
James Zern
0d5ac98d1c Merge ".clang-format: disable DerivePointerAlignment" into nextgenv2 2016-08-04 19:21:38 +00:00
Yaowu Xu
2b2ee5cdf6 Merge "more cleanup of vp8 and vp9" into nextgenv2 2016-08-04 18:56:46 +00:00
Zoe Liu
1af28f0230 Code refactoring on Macros related to ref frame numbers
We have renamed following Macros to avoid name confusion:

REFS_PER_FRAME --> INTER_REFS_PER_FRAME
(= ALTREF_FRAME - LAST_FRAME + 1)
MAX_REF_FRAMES --> TOTAL_REFS_PER_FRAME
(= ALTREF_FRAME - INTRA_FRAME + 1)

INTER_REFS_PER_FRAME specifies the maximum number of reference frames
that each Inter frame may use.
TOTAL_REFS_PER_FRAME is equal to INTER_REFS_PER_FRAME + 1, which
counts the INTRA_FRAME.

Further, at the encoder side, since REF_FRAMES specifies the maximum
number of the reference frames that the encoder may store, REF_FRAMES
is usually larger than INTER_REFS_PER_FRAME. For example, in the
ext-refs experiment, REF_FRAMES == 8, which allows the encoder to
store maximum 8 reference frames in the buffer, but
INTER_REFS_PER_FRAME equals to 6, which allows each Inter frame may
use up to 6 frames out of the 8 buffered frames as its references.
Hence, in order to explore the possibility to store more reference
frames in future patches, we modified a couple of array sizes to
accomodate the case that the number of buffered reference frames is
not always equal to the number of the references that are being used
by each Inter frame.

Change-Id: I19e42ef608946cc76ebfd3e965a05f4b9b93a0b3
2016-08-04 11:21:28 -07:00
James Zern
32427b379c warped_motion: remove unused vp10_integerize_model
this function produces implicit double -> int conversion warnings and
has additional style issues.

Change-Id: I6bc740e778658d6f81ca54888fc6fa822d3b5ee0
2016-08-03 15:52:03 -07:00
Sarah Parker
108df24d2a Merge "Adjust gm parameter computation to avoid mismatch" into nextgenv2 2016-08-03 21:42:30 +00:00
Yaowu Xu
d9e73a32fc Merge "Cherry pick from AOMedia" into nextgenv2 2016-08-03 19:25:22 +00:00
Yaowu Xu
efe198fb04 Merge "Cherry pick from AOM:" into nextgenv2 2016-08-03 19:25:17 +00:00
Yaowu Xu
a3cff08259 more cleanup of vp8 and vp9
Change-Id: Ic90ebe6136f4b75645ba699d49c0bcb3764ddccf
2016-08-03 12:20:33 -07:00
Sarah Parker
aa810c002c Adjust gm parameter computation to avoid mismatch
The gm parameters need to have WARPED_PRECISION_BITS precision
until they are written to the bitstream because functions in
reconinter use these parameters before they are written to
the bitstream. Previously, the parameters weren't being converted
to WARPED_PRECISION_BITS until they were read from the bitstream
which causes an encode/decode mismatch.

Change-Id: I31e76e9d6f7d24df21af287a72f8c01f1997304d
2016-08-03 12:20:12 -07:00
Yue Chen
0acb76d8eb Merge "Fix a bug and a function name in EXT_INTRA experiment" into nextgenv2 2016-08-03 17:04:15 +00:00
Yaowu Xu
b06147de6b Cherry pick from AOMedia
5b5fbad VP9LfSync->VP10LfSync
b752848 vp8_yv12 -> vpx_yv12
e5068cd VP9->VPX for reference frame flags

Change-Id: Ia36860499c81a5aca8cd6190e7370ec404c0df0f
2016-08-02 16:24:41 -07:00
Yue Chen
31dab60888 Fix a bug and a function name in EXT_INTRA experiment
(1) Apply ALLOW_FILTER_INTRA_MODES flag to the correct place, otherwise
there are bitstream mismatchs when it is 0.
(2) Rename pick_ext_intra_iframe() to pick_ext_intra_interframe().

Change-Id: Ic88c930de1d3f819750f0892df52bde55ae32a91
2016-08-02 16:12:49 -07:00
Yaowu Xu
8bf837f153 Cherry pick from AOM:
68e7e4d0 Remove VP9_CAP_POSTPROC
0738390c Remove vp9_temporal denoise
b89861a4 Remove vp9-postproc

Change-Id: I4ecaa0ac83a519c8174a494378fc23df610ff2a8
2016-08-02 15:29:50 -07:00
Yaowu Xu
134710af32 Disable tests not applicable to VP10
As VP10 does not support multiple layers yet, we disable the ported
tests from VP9.

Change-Id: Ib7577c27e402ede481213b7a64ebee7576a025a5
2016-08-01 13:32:40 -07:00
Hui Su
0594c7f5b1 Merge "Use all possible intra ref pixels for blocks on frame boundary" into nextgenv2 2016-08-01 17:29:09 +00:00
Yaowu Xu
de42ab22bd Merge "Cherry pick renaming changes from AOMedia branch" into nextgenv2 2016-08-01 17:16:07 +00:00
Yaowu Xu
22fda38fa4 Merge "Rename files with vp9_ prefix" into nextgenv2 2016-08-01 17:15:50 +00:00
Yaowu Xu
d4c4724090 Cherry pick renaming changes from AOMedia branch
Manually cherry-picked the following changes:
8c8d16de vp9 -> vpx in names
75b57d39 VP9_ -> VPX_ in function names
761a7088 VP9_INTERP_EXTEND -> VPX_INTERP_EXTEND
4273a52c VP9->VPX in border pixel macros
03568c31 VP9_FRAME_MARKER -> VPX_FRAME_MARKER
2334f51d VP9->VPX in fdct function names

Change-Id: Icc18dbf4b416dd0fa21033b3e19ab8a47c893508
2016-07-29 13:31:32 -07:00
hui su
a4daf360ca Use all possible intra ref pixels for blocks on frame boundary
Tested on lowres and midres, performance impact is neutral.

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

Change-Id: Idaccaf7da7b460e6201efd436c084be66b5d4ebd
2016-07-29 10:06:50 -07:00
Yaowu Xu
ac86d3d668 Merge "More vp8/vp9 clean up" into nextgenv2 2016-07-29 16:50:33 +00:00
Yaowu Xu
5eee90730b Rename files with vp9_ prefix
Change-Id: I9c51ae3a2af698efe32288b807f881385e19822b
2016-07-29 16:45:08 +00:00
Yaowu Xu
3fa28d51af More vp8/vp9 clean up
Change-Id: I8101de20e873c19d03c7fd2977bc22003e395807
2016-07-28 18:22:47 -07:00
hui su
f67ff4a5b7 Fix a missing space
Change-Id: I6a9ab351012b731308d6b4fc78c09744c6afb61a
2016-07-28 09:55:17 -07:00
Jingning Han
3ecf31dbdf Merge "Separate frame context index for different frame types" into nextgenv2 2016-07-28 16:39:45 +00:00
Yaowu Xu
3bd709fafe Remove vp8, vp9 folders
Change-Id: I09b8acd22d031ece52e1fee18b998349bf1cf06b
2016-07-28 14:33:21 +00:00
Jingning Han
8915eb8e9a Separate frame context index for different frame types
This commit makes the encoder to use different frame context index
for different frame types. In the baseline setting, it sets the
frame context index of the overlay frame to be different from other
regular inter frames. In the ext-refs setting, it further allows
the backward reference frame to use a different index.

It improves the compression performance for both settings.

Baseline
lowres  0.12%

ext-refs
lowres  0.50%
midres  0.56%

Change-Id: I7c63ddec9fc296c56a86353cf2c661a740b97a97
2016-07-27 15:35:15 -07:00