17183 Commits

Author SHA1 Message Date
Jian Zhou
88120481a4 Code clean of tm_predictor_32x32
Reallocate the xmm register usage so that no ARCH_X86_64 required.
Reduce memory access to the left neighbor by half.
Speed up by single digit on big core machine.

Change-Id: I392515ed8e8aeb02e6a717b3966b1ba13f5be990
2015-12-11 10:32:08 -08:00
Jingning Han
27bbfd652d Fix sub8x8 motion search on scaled reference frame
This commit makes the sub8x8 block rate-distortion optimization
scheme use precise motion compensated prediction to compute the rd
cost. It fixes a potential buffer overflow issue related to sub8x8
motion search on scaled reference frame.

Change-Id: I4274992ef4f54eaacfde60db045e269c13aaa2de
2015-12-11 10:08:51 -08:00
Jian Zhou
62f986265f Merge "SSE2 based h_predictor_32x32" 2015-12-11 18:02:34 +00:00
Yaowu Xu
f07d73b9bf Merge branch 'master' into nextgenv2
Change-Id: Id0b784b115602e2502b42fa972a5ae210435a3be
2015-12-11 08:58:40 -08:00
James Zern
ecb8dff768 Merge "dc_left_pred[48]: fix pic builds" 2015-12-11 02:48:11 +00:00
Jian Zhou
5604924945 Merge "Code clean of dc_left/top_predictor_16x16" 2015-12-11 01:53:44 +00:00
Yaowu Xu
f0bef772be Merge "Proper fix of a msvc complier warning" 2015-12-11 00:53:28 +00:00
Yunqing Wang
be0501c875 Merge "Minor cleanup" 2015-12-11 00:52:03 +00:00
Yaowu Xu
4d2cfeab36 Proper fix of a msvc complier warning
Change-Id: I701ab4993be7cfb15b61a1adbbaf5565bd14ae27
2015-12-10 16:29:01 -08:00
James Zern
40ee78bc19 dc_left_pred[48]: fix pic builds
GET_GOT modifies the stack pointer so the offset for left's address will
be wrong if loaded afterword.

Change-Id: Iff9433aec45f5f6fe1a59ed8080c589bad429536
2015-12-10 15:44:31 -08:00
Yaowu Xu
5a81c5c4be Merge changes Iece22223,Iefad9d8d
* changes:
  Fix two msvc build issues
  Fix enc/dec mismatches for aq-mode 1 and 2
2015-12-10 23:32:32 +00:00
Yunqing Wang
cd08120d62 Minor cleanup
Removed unused GET_GOT_SAVE_ARG.

Change-Id: I0ae41c2d0dcd6d7d1c8dda05062fcdb737fd917d
2015-12-10 15:28:07 -08:00
Yunqing Wang
feeb116c92 Merge "Fix the win32 crash when GET_GOT is not defined" 2015-12-10 23:25:05 +00:00
Debargha Mukherjee
104636a39a Some fixes from merging MISC_FIXES config
Change-Id: I3f77e952af3c441a50479bb5d278ea0fd6cf62c6
2015-12-10 15:17:33 -08:00
Jingning Han
72760976a0 Merge "Sync high bit-depth temporal filter" 2015-12-10 22:54:59 +00:00
Yunqing Wang
322ea7ff5b Fix the win32 crash when GET_GOT is not defined
This patch continues to fix the win32 crash issue:
https://bugs.chromium.org/p/webm/issues/detail?id=1105

Johann's patch is here:
https://chromium-review.googlesource.com/#/c/316446/2

Change-Id: I7fe191c717e40df8602e229371321efb0d689375
2015-12-10 14:25:01 -08:00
Yaowu Xu
6786280807 Fix two msvc build issues
Change-Id: Iece22223773dd6d0f87f8f59827705acd2ebe2a4
2015-12-10 12:41:27 -08:00
Jian Zhou
4ec5953080 Code clean of dc_left/top_predictor_16x16
Remove some redundant code.

Change-Id: Ida2e8c0ce28770f7a9545ca014fe792b04295260
2015-12-10 11:59:58 -08:00
Yaowu Xu
221ed5e47b Fix enc/dec mismatches for aq-mode 1 and 2
Change-Id: Iefad9d8d96a08dcc788a5efdca2df6a815d1205f
2015-12-10 11:45:26 -08:00
Jian Zhou
c90a8a1a43 SSE2 based h_predictor_32x32
Relocate the function from SSSE3 to SSE2, Unroll loop from 16 to 8,
and reduce mem access to left.
Speed up by single digit in ./test_intra_pred_speed on big core
machines.

Change-Id: I2b7fc95ffc0c42145be2baca4dc77116dff1c960
2015-12-10 10:09:58 -08:00
Jingning Han
aa5d53eb17 Enable adaptive prediction mode coding
This commit allows the codec to analyze the reference motion vector
candidate list and adaptively reduce the size of inter prediction
mode set.

Change-Id: Ied6a403843b860d66f26ed485c1825c05c71bdfc
2015-12-10 09:02:32 -08:00
Tom Finegan
7f79a83f17 Merge "iosbuild.sh: Support macosx targets in Xcode 7." 2015-12-10 16:45:01 +00:00
Paul Wilkins
449e46958c Merge "Backport temporal filter approach to VP9" 2015-12-10 09:47:25 +00:00
Jingning Han
8edbe4d6db Merge "Allow precise classification for refmv mode context" into nextgenv2 2015-12-10 03:26:24 +00:00
Jingning Han
48365e10bb Merge "Re-design motion compensated prediction mode entropy coding system" into nextgenv2 2015-12-10 03:26:05 +00:00
Jingning Han
0d65cae638 Allow precise classification for refmv mode context
Combine the nearest ref mv count and the total ref mv count for
mode context.

Change-Id: I342a2b126bf7d2d30c344911260d9769a923026b
2015-12-10 02:03:32 +00:00
Jingning Han
1dc18077b8 Re-design motion compensated prediction mode entropy coding system
This commit re-works the entropy coding scheme of the motion
compensated prediction modes. It allows more flexible hyperplane
partition for precise classification.

Change-Id: Iba5035c76691946cf1386b6c495e399c3d9c8fc5
2015-12-09 18:02:20 -08:00
Jingning Han
d3c972403a Sync high bit-depth temporal filter
Change-Id: Ifdcfb91416be8189569f703bee9be253d7b3d9b6
2015-12-09 15:06:36 -08:00
Tom Finegan
acf580d2bb iosbuild.sh: Support macosx targets in Xcode 7.
Xcode 7 refuses to link to x86 and x86_64 code that's built for
iphone sim, so add an extra command line flag that forces iosbuild
to use darwin15 targets.

Change-Id: I2228d458f5cccf4d26866040380a974f88d9d360
2015-12-09 13:52:06 -08:00
Jingning Han
ece4fd5d22 Backport temporal filter approach to VP9
This commit enables the new temporal filter system for VP9. For
speed 1, it improves the compression performance:
derf  0.54%
stdhd 1.62%

Change-Id: I041760044def943e464345223790d4efad70b91e
2015-12-09 13:39:06 -08:00
Johann Koenig
420b9f5bd3 Merge "fix null pointer crash in Win32 because esp register is broken" 2015-12-09 19:31:12 +00:00
Yaowu Xu
f757782f22 Merge branch 'master' into nextgenv2
Change-Id: I6f8b540854ddc78fc4a2a8045b194a888749a3cb
2015-12-09 08:09:30 -08:00
Yaowu Xu
74c67e3da3 Merge "Changes to exhaustive motion search." 2015-12-09 15:57:10 +00:00
Peter de Rivaz
5283e57786 Fix for high bitdepth temporal filter
The 8bit temporal filter has changed to use non-local means.
This fix adds the same change into the high bitdepth code.

Change-Id: I3375b13a7d914fc8aa9eb4aac1d2e4d9b74b782f
2015-12-09 15:53:01 +00:00
Jacky Chen
d9bba21306 Merge "Add vp9_avg_4x4_neon and the unit test." 2015-12-09 06:09:33 +00:00
James Zern
3dc19feb29 Merge changes Id3c6cf5c,I7970575e,If3253a87
* changes:
  test.mk: simplify vp8/9 checks
  test.mk: regroup white box tests
  test.mk: enable test_intra_pred_speed unconditionally
2015-12-09 01:39:45 +00:00
James Zern
44fe73ec37 Merge "vp8: fix loop filter level clamping" 2015-12-09 01:38:09 +00:00
James Zern
e040c6c404 Merge "vp8: fix quantizer clamping" 2015-12-09 01:37:58 +00:00
jackychen
303f144eef Add vp9_avg_4x4_neon and the unit test.
Change-Id: I3ef9a9648841374ed3cc865a02053c14ad821a20
2015-12-08 17:23:36 -08:00
Marco Paniconi
835f16ea36 Merge "vp9 denoiser: Re-evaluate mode selection for golden reference." 2015-12-09 00:34:09 +00:00
Debargha Mukherjee
9fbc394036 Merge "Fix for crash when using high bitdepth and var-tx" into nextgenv2 2015-12-08 19:17:10 +00:00
Hui Su
cdffec73e9 Merge "Bring palette back to nextgenv2" into nextgenv2 2015-12-08 17:44:22 +00:00
paulwilkins
4e692bbee2 Changes to exhaustive motion search.
This change has been imported from VP9 and
alters the nature and use of exhaustive motion search.

Firstly any exhaustive search is preceded by a normal step search.
The exhaustive search is only carried out if the distortion resulting
from the step search is above a threshold value.

Secondly the simple +/- 64 exhaustive search is replaced by a
multi stage mesh based search where each stage has a range
and step/interval size. Subsequent stages use the best position from
the previous stage as the center of the search but use a reduced range
and interval size.

For example:
  stage 1: Range +/- 64 interval 4
  stage 2: Range +/- 32 interval 2
  stage 3: Range +/- 15 interval 1

This process, especially when it follows on from a normal step
search, has shown itself to be almost as effective as a full range
exhaustive search with step 1 but greatly lowers the computational
complexity such that it can be used in some cases for speeds 0-2.

This patch also removes a double exhaustive search for sub 8x8 blocks
which also contained  a bug (the two searches used different distortion
metrics).

For best quality in my test animation sequence this patch has almost
no impact on quality but improves encode speed by more than 5X.

Restricted use in good quality speeds 0-2 yields significant quality gains
on the animation test of 0.2 - 0.5 db with only a small impact on encode
speed. On most natural video clips, however, where the step search
is performing well, the quality gain and speed impact are small.

Change-Id: Iac24152ae239f42a246f39ee5f00fe62d193cb98
2015-12-08 16:54:42 +00:00
Peter de Rivaz
22850493b6 Fix for crash when using high bitdepth and var-tx
Change-Id: Ide48fa4312f7828f99290f7a2be878f5673fa716
2015-12-08 15:58:21 +00:00
Jian Zhou
aa5b517a39 Re-enable SSE2 based intra 4x4 prediction
4x4 Intra predictor implemented with MMX is replaced with SSE2.
Segfault in change 315561 when decoding vp8 is taken care of.

Change-Id: I083a7cb4eb8982954c20865160f91ebec777ec76
2015-12-07 18:50:37 -08:00
hui su
c93e5cc3e9 Bring palette back to nextgenv2
It was removed by the master branch merge.

Change-Id: I4b2a524c9e052e41063359afcb4ba22bf78344cf
2015-12-07 18:24:15 -08:00
hui su
bf0ff0907e Miscellaneous changes in reconintra.c
Fix a bug in vp10_has_right;
Some cosmetic changes.

Tiny performance improvement (0.02%~0.04%) on derflr and hevcmr.

Change-Id: Iee829003a20f32d6185a08bab2bd4201806be2b3
2015-12-07 17:08:27 -08:00
Scott LaVarnway
c7e557b82c Merge "VP9: Add ssse3 version of vpx_idct32x32_135_add()" 2015-12-07 21:13:35 +00:00
Sergey Kolomenkin
5fc9688792 fix null pointer crash in Win32 because esp register is broken
https://bugs.chromium.org/p/webm/issues/detail?id=1105

Change-Id: I304ea85ea1f6474e26f074dc39dc0748b90d4d3d
2015-12-07 12:57:06 -08:00
Yaowu Xu
69f4930041 Merge branch 'master' into nextgenv2
Conflicts:
	vp10/common/blockd.h
	vp10/common/entropymode.h
	vp10/common/reconintra.c
	vp10/decoder/decodemv.c
	vp10/encoder/bitstream.c
	vp10/encoder/encoder.h
	vp10/encoder/rd.c
	vp10/encoder/rdopt.c
	vp10/encoder/tokenize.h

Change-Id: Ic4891839b6f0474026d6d69821e38edec9632df1
2015-12-07 11:37:14 -08:00