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

535 Коммитов

Автор SHA1 Сообщение Дата
Geza Lore fa63b5514a Use standard rounding in intra filters.
Use the same rounding method that is used throughout the codebase,
where the halfway value is rounded up rather than down.

Change-Id: Ie969ed7eb9fcc88a93a90c7e274fd82f336c7e4d
2016-05-19 13:16:42 +01:00
Angie Chiang 6f28581b26 Turn on flip in inverse txfm2d
Fix build failed
Reduce txfm test time

Change-Id: Ieaf6b27f3a272d06286f817f01230413fa8adcf6
2016-05-18 11:26:57 -07:00
Jingning Han 436f78fab7 Silience compiler warnings in unsigned int
Add suffix u to clarify the unsigned int constant when the value
is above 2^31.

Change-Id: Ic712096285b7bf37deaeb5ad1b6b117fc0d67093
2016-05-17 16:46:42 -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
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
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 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
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
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
Angie Chiang 1e587ae616 Merge "Add flip option for vp10_fwd_txfm2d_#x#_c" into nextgenv2 2016-05-12 18:08:28 +00:00
Debargha Mukherjee c590c590e6 Merge "Adjust smoothing function for wedge to be sharper" into nextgenv2 2016-05-11 18:02:08 +00:00
Yue Chen 372e12b959 Merge "Add single motion search for OBMC predictor" into nextgenv2 2016-05-11 17:20:32 +00:00
Debargha Mukherjee 81abbc203e Adjust smoothing function for wedge to be sharper
Improves performance by 0.2%

lowres: -2.052% BDRATE

Also increases precision of the shift parameters (for further
investigation into different wedge shifts).

Change-Id: I59fcab9baa002e52a6487ed8d617185840a678ed
2016-05-11 09:35:43 -07:00
Yue Chen 370f203a40 Add single motion search for OBMC predictor
Weighted single motion search is implemented for obmc predictor.
When NEWMV mode is used, to determine the MV for the current block,
we run weighted motion search to compare the weighted prediction
with (source - weighted prediction using neighbors' MVs), in which
the distortion is the actual prediction error of obmc prediction.

Coding gain: 0.404/0.425/0.366 for lowres/midres/hdres
Speed impact: +14% encoding time
              (obmc w/o mv search 13%-> obmc w/ mv search 27%)

Change-Id: Id7ad3fc6ba295b23d9c53c8a16a4ac1677ad835c
2016-05-10 18:27:45 -07:00
Angie Chiang 1954fa390f Add flip option for vp10_fwd_txfm2d_#x#_c
Will add unit test to test/vp10_fwd_txfm2d_test.cc later

Change-Id: I626900c67fca4eee2ad0ae1828188527a04a5362
2016-05-10 18:14:57 -07:00
Jingning Han 4b639fcf43 Merge "Remove unused highbd_ihalfcenter32_c function" into nextgenv2 2016-05-10 23:16:35 +00:00
Jingning Han 6b9a507f82 Remove unused highbd_ihalfcenter32_c function
Change-Id: I4390fcbdf353d79dadc021d83d40891e518997dc
2016-05-10 14:27:16 -07:00
Sarah Parker f6acf8ad7c Move new quant experiment in quant_common.c from nextgen
NEW_QUANT allows bin widths to be modified as a factor of the nominal
quantization step size. This adds functions to get dequantization
values based on the dequantization offset and 3 knots for a single
quantization profile.

Change-Id: I41f10599997e943cb3391c7a0847d8485b9d8b43
2016-05-10 13:40:37 -07:00
Debargha Mukherjee 3fbe6e5e49 Merge "Wedge rd improvements" into nextgenv2 2016-05-10 20:34:00 +00:00
Debargha Mukherjee 447032eb32 Wedge rd improvements
Improves speed by about 10-15% by combining y-only rd with
modeling function in a better way.
Also, coding efficiency improves by about 0.1%

lowres: -1.805% BDRATE with ext-inter

Change-Id: I6ef1f8942ec6806252f3fcf749ae4f30dffe42b1
2016-05-10 11:47:48 -07:00
Yaowu Xu bf692e853d Merge "Fix build without dual-filter" into nextgenv2 2016-05-10 18:10:44 +00:00
Yaowu Xu 0f1ee1caeb Merge "Remove "const" for parameters passed by value" into nextgenv2 2016-05-10 18:05:27 +00:00
Debargha Mukherjee 61ac55314d Merge "Break tile row dependencies." into nextgenv2 2016-05-10 18:00:34 +00:00
Debargha Mukherjee a53337740d Merge "Fix interintra predictor buffer overflow." into nextgenv2 2016-05-10 17:59:33 +00:00
Yaowu Xu fc9deb6b0c Remove "const" for parameters passed by value
This commit removes const from parameters that are passed by value
for consistency in code style.

Change-Id: I2947c4e9cc6e809c4b9b4c162046e45127b8a41c
2016-05-10 09:30:44 -07:00
Yunqing Wang a2676565d3 Merge "Refine VP10 REFRESH_FRAME_CONTEXT_MODE" into nextgenv2 2016-05-10 15:53:48 +00:00
Yi Luo 73d28a4068 Merge "Change inverse HT function argument from TXFM_2D_CFG* to int" into nextgenv2 2016-05-10 15:38:11 +00:00
Geza Lore 559e8d8e50 Fix build without dual-filter
Change-Id: I91946940c1540c9f935161da89155ed304055fda
2016-05-10 13:12:07 +01:00
Geza Lore 9ab9438fbb Break tile row dependencies.
When not using ext-tile, there were still dependencies between tile
rows due to various tools (eg intra predictors) relying on the above
row or above mode info, which can be in the above tile. This is now
broken (the same way as it was when ext-tile is enabled) by fixing
the appropriate predicates.

Change-Id: I107dd0d8481775a792f14e05cfbbd761f16cdc1e
2016-05-10 13:09:47 +01:00
Geza Lore e9d2e36264 Fix interintra predictor buffer overflow.
When constructing the intra predictor for rectangular interintra blocks,
the last row/column of the first square is copied back into the source
image (which is the current reconstructed image buffer) before
predicting the second square. The code used to use the height instead
of width for vertical rectangles, and vice versa for horizontal
rectangles, leading to overwriting the block on the right/below. This
leads to an encode/decode mismatch if the right/below block is in a
different tile and is encoded before the current block, which did happen
with multi-threaded encoding tests. This is now fixed.

Change-Id: I073a2a447a98b842b1394d72cc774a78cb296921
2016-05-10 09:53:29 +01:00
Yi Luo cd8cfb8675 Change inverse HT function argument from TXFM_2D_CFG* to int
This change has no performance impact. It prepares the proper
function interface for better performance optimization.

Change-Id: I12e2f2deaf7f3adc603de0a74852116468c762f6
2016-05-09 18:34:16 -07:00
Yi Luo 6f3e71606f Merge "HBD hybrid transform 16x16 SSE4.1 optimization" into nextgenv2 2016-05-09 23:58:05 +00:00
Jingning Han 0a91b2da26 Merge "Fix unit test failure due to ext-inter and dual filter" into nextgenv2 2016-05-09 23:54:07 +00:00
Yunqing Wang 484ba02435 Refine VP10 REFRESH_FRAME_CONTEXT_MODE
In VP10, REFRESH_FRAME_CONTEXT_OFF mode is only set when the error
resillient mode is on. Instead of being used to decide how to update
the frame contexts, it is used to decide if or not to reset the
frame contexts.

To verify, ran borg test on lowres set. The result is neutral.
Overall PSNR: -0.006%; SSIM: -0.006%.

Change-Id: Ic48265cf7488e80c6f5aab3eef7ba1c273506419
2016-05-09 14:20:50 -07:00
Yi Luo 412ad22f46 HBD hybrid transform 16x16 SSE4.1 optimization
- Tx_type: DCT_DCT, DCT_ADST, ADST_DCT, ADST_ADST.
- Update vp10_fht16x16_test.cc to do bit-exact test against
  latest C version.
- HBD encoder speed improves ~1.8%.

Change-Id: Icfc799a212e5289bcf6cedcae3722032133a2bc6
2016-05-09 11:07:01 -07:00
Jingning Han 1215793007 Fix unit test failure due to ext-inter and dual filter
Make the inter predictor use the right filter type to avoid
enc/dec mismatch.

Change-Id: I2aa416d50450188ec2057dca3338fa258314e562
2016-05-09 16:41:57 +00:00
Jingning Han 9de916eb20 Fix dual filter type for high bit-depth
This commit fixes the compiler error in high bit-depth inter
predictor when dual filter type experiment is turned on.

Change-Id: I404a76a246477f2fcffc38a3275007d5dfe229cd
2016-05-09 02:14:48 +00:00
Jingning Han bd33326372 Dual prediction filter type for motion compensated reference
Make the bit-stream level support per direction filter type coding
for motion compensated reference.

Change-Id: I61a2360b301075f6734cfd9711b7ae68f214174d
2016-05-07 03:03:04 +00:00
Yaowu Xu 71d4e444c1 Merge "Change initializations of variables with type "int_mv"" into nextgenv2 2016-05-06 20:21:39 +00:00
Jingning Han eb366a0312 Merge "Clean up ext-interp experiment" into nextgenv2 2016-05-06 17:16:56 +00:00
Alex Converse d5a5bc6522 Merge "Rename pick_filter_intra." into nextgenv2 2016-05-06 16:57:53 +00:00
Yaowu Xu 824a8b228d Change initializations of variables with type "int_mv"
This is to make MSVC happy and eliminate build errors.

Change-Id: Ic81e7c7516923913e6e7a652b691953e4a1af8aa
2016-05-06 16:52:12 +00:00
Yaowu Xu f2512710d5 Replace inline with INLINE
This fixes build issues under MSVC

Change-Id: I6db6a43cba2e8ddb099b676f1ae019fe2742f366
2016-05-05 18:28:04 -07:00
Alex Converse 130cccba8d Rename pick_filter_intra.
The word 'pick' is usually used in functions that make decisions where
the bitstream allows multiple legal choices, and not to limit the
bitstream format itself.

Change-Id: Ia60709c29e004475e1aa8861aefded27ebaf4712
2016-05-05 17:06:54 -07:00
Jingning Han 8b084b683c Clean up ext-interp experiment
Remove the unused sub-experiments within the ext-interp experiment.

Change-Id: I716e3392412d02c56f9395a86c9cab02f580fa59
2016-05-05 16:29:21 -07:00
Sarah Parker 9dfe45a84d Merge "Add 1D tx set that corresponds to reduced ext tx inter sets" into nextgenv2 2016-05-05 23:06:14 +00:00
Geza Lore c9cb346e56 Merge "Fix vp10_accumulate_frame_counts once and for all." into nextgenv2 2016-05-05 10:19:41 +00:00