webm/libvpx.git
2 days agoMerge "Replace divide with look-up" master
Yaowu Xu [Sat, 24 Jan 2015 05:12:18 +0000 (21:12 -0800)]
Merge "Replace divide with look-up"

2 days agox86: correct OSXSAVE + AVX bit check 81/73581/2
James Zern [Fri, 23 Jan 2015 22:13:51 +0000 (14:13 -0800)]
x86: correct OSXSAVE + AVX bit check

the result should have both bits set; previously this was converted from
webp incorrectly and resulted in a boolean check...

Change-Id: I2a7c7f2b491945f3a536ab4fca02247eccc892b8

2 days agoMerge "SSE2 code for the filter in MFQE."
JackyChen [Fri, 23 Jan 2015 19:08:16 +0000 (11:08 -0800)]
Merge "SSE2 code for the filter in MFQE."

2 days agoMerge "Remove elevate_newmv_thresh from SPEED_FEATURES (unused)"
Adrian Grange [Fri, 23 Jan 2015 17:57:03 +0000 (09:57 -0800)]
Merge "Remove elevate_newmv_thresh from SPEED_FEATURES (unused)"

2 days agoReplace divide with look-up 70/73570/5
Yaowu Xu [Thu, 22 Jan 2015 23:27:43 +0000 (15:27 -0800)]
Replace divide with look-up

This commit replaces an integer divide with a table-lookup. It is
to improve decoding speed, and at the same time, to reduce possible
complications with a bug in AMD Family 12h processors:

"665 Integer Divide Instruction May Cause Unpredictable Behavior"

Change-Id: I678b707a538798a923850bac467e66e847e6def7

2 days agoMerge "Revert "Merge branch 'frame-parallel' to enable frame parallel decode in maste...
Johann [Fri, 23 Jan 2015 16:43:15 +0000 (08:43 -0800)]
Merge "Revert "Merge branch 'frame-parallel' to enable frame parallel decode in master branch.""

2 days agoRevert "Merge branch 'frame-parallel' to enable frame parallel decode in master branch." 75/73575/1
Johann [Fri, 23 Jan 2015 16:42:02 +0000 (08:42 -0800)]
Revert "Merge branch 'frame-parallel' to enable frame parallel decode in master branch."

This reverts commit bde04ce5039cbcf86c8b34bdb4127e18d7e1d0c7

Change-Id: I053dae04c761b04a36dc239558503905a14d2470

3 days agoMerge "workaround stack bashing by asm on 32-bit OpenBSD"
James Zern [Fri, 23 Jan 2015 04:04:07 +0000 (20:04 -0800)]
Merge "workaround stack bashing by asm on 32-bit OpenBSD"

3 days agoMerge branch 'master' of ssh://gerrit.chromium.org:29418/webm/libvpx
hkuang [Fri, 23 Jan 2015 02:19:04 +0000 (18:19 -0800)]
Merge branch 'master' of ssh://gerrit.chromium.org:29418/webm/libvpx

* 'master' of ssh://gerrit.chromium.org:29418/webm/libvpx:
  Add libvpx build targets for OS X 10.10 Yosemite.

3 days agoMerge branch 'frame-parallel' to enable frame parallel decode in master branch. 60/73560/9
hkuang [Wed, 21 Jan 2015 22:51:08 +0000 (14:51 -0800)]
Merge branch 'frame-parallel' to enable frame parallel decode in master branch.

In frame parallel decode, libvpx decoder decodes several frames on all
cpus in parallel fashion. If not being flushed, it will only return frame
when all the cpus are busy. If getting flushed, it will return all the
frames in the decoder. Compare with current serial decode mode in which
libvpx decoder is idle between decode calls, libvpx decoder is busy
between decode calls. VP9 frame parallel decode is >30% faster than serial
decode with tile parallel threading which will makes devices play 1080P
VP9 videos more easily.

* frame-parallel:
  Add error handling for frame parallel decode and unit test for that.
  Fix a bug in frame parallel decode and add a unit test for that.
  Add two test vectors to test frame parallel decode.
  Add key frame seeking to webmdec and webm_video_source.
  Implement frame parallel decode for VP9.
  Increase the thread test range to cover 5, 6, 7, 8 threads.
  Fix a bug in adding frame parallel unit test.
  Add VP9 frame-parallel unit test.
  Manually pick "Make the api behavior conform to api spec." from master branch.
  Move vp9_dec_build_inter_predictors_* to decoder folder.
  Add segmentation map array for current and last frame segmentation.
  Include the right header for VP9 worker thread.
  Move vp9_thread.* to common.
  ctrl_get_reference does not need user_priv.
  Seperate the frame buffers from VP9 encoder/decoder structure.
  Revert "Revert "Revert "Revert 3 patches from Hangyu to get Chrome to build:"""

 Conflicts:
       test/codec_factory.h
       test/decode_test_driver.cc
       test/decode_test_driver.h
       test/invalid_file_test.cc
       test/test-data.sha1
       test/test.mk
       test/test_vectors.cc
       vp8/vp8_dx_iface.c
       vp9/common/vp9_alloccommon.c
       vp9/common/vp9_entropymode.c
       vp9/common/vp9_loopfilter_thread.c
       vp9/common/vp9_loopfilter_thread.h
       vp9/common/vp9_mvref_common.c
       vp9/common/vp9_onyxc_int.h
       vp9/common/vp9_reconinter.c
       vp9/decoder/vp9_decodeframe.c
       vp9/decoder/vp9_decodeframe.h
       vp9/decoder/vp9_decodemv.c
       vp9/decoder/vp9_decoder.c
       vp9/decoder/vp9_decoder.h
       vp9/encoder/vp9_encoder.c
       vp9/encoder/vp9_pickmode.c
       vp9/encoder/vp9_rdopt.c
       vp9/vp9_cx_iface.c
       vp9/vp9_dx_iface.c

Change-Id: Ib92eb35851c172d0624970e312ed515054e5ca64

3 days agoMerge "Add libvpx build targets for OS X 10.10 Yosemite."
Johann [Fri, 23 Jan 2015 02:11:21 +0000 (18:11 -0800)]
Merge "Add libvpx build targets for OS X 10.10 Yosemite."

3 days agoRemove elevate_newmv_thresh from SPEED_FEATURES (unused) 67/73567/2
Adrian Grange [Thu, 22 Jan 2015 22:53:18 +0000 (14:53 -0800)]
Remove elevate_newmv_thresh from SPEED_FEATURES (unused)

Change-Id: I78ef7f89586a329787f6bc4c58ec83af210989a3

3 days agoAdd libvpx build targets for OS X 10.10 Yosemite. 69/73569/2
Lawrence Velázquez [Thu, 22 Jan 2015 21:46:02 +0000 (16:46 -0500)]
Add libvpx build targets for OS X 10.10 Yosemite.

Change-Id: I5baa4405e0b52fd3b6f312bd2dc94b19e6ff3da7

3 days agoModify variance partition selection for low resolutions. 79/73379/21
Marco [Tue, 6 Jan 2015 01:13:13 +0000 (17:13 -0800)]
Modify variance partition selection for low resolutions.

For low spatial resolutions: bias partittion selection to smaller block sizes,
and base the variance computation on 4x4 down-sampling.

Also move the threshold computations into the choose_partitioning,
so they are computed once for each sb block.

On low-res clips (RTC_derf) PSNR/SSIMetrics increase by about 4-5%.
No change for resolutions above CIF.

Change-Id: I93f8ff742c8044786977bb6e31dcf8efda6dd1b0

3 days agoMerge "Bug when last group before forced key frame is short."
Paul Wilkins [Thu, 22 Jan 2015 16:28:19 +0000 (08:28 -0800)]
Merge "Bug when last group before forced key frame is short."

4 days agoBug when last group before forced key frame is short. 58/73558/2
Paul Wilkins [Wed, 21 Jan 2015 19:32:27 +0000 (11:32 -0800)]
Bug when last group before forced key frame is short.

Just before a forced key frame we often get a foreshortened
arf/gf group. In such a case, we do not want to update
rc->last_boosted_qindex, which is used to define the Q range
for the forced key frame itself.

This gives a small average metrics gain for the YT and YT-HD sets
(eg. YT SSIM +0.141%).

Change-Id: Ie06698bc4f249e87183b8f8fb27ff8f3fde216d9

4 days agoMerge "Fix compile error in Chromium building."
JackyChen [Wed, 21 Jan 2015 22:52:32 +0000 (14:52 -0800)]
Merge "Fix compile error in Chromium building."

4 days agoMerge "Allow external resize via vpx_codec_enc_config_set"
Alex Converse [Wed, 21 Jan 2015 21:59:34 +0000 (13:59 -0800)]
Merge "Allow external resize via vpx_codec_enc_config_set"

4 days agoFix compile error in Chromium building. 56/73556/1
JackyChen [Wed, 21 Jan 2015 20:59:25 +0000 (12:59 -0800)]
Fix compile error in Chromium building.

The comparison of address in the condition is not necessary, since
they will constantly be non-null.

Change-Id: Id0b0075283f5af65215d5761a8160a4cb2a15c9b

4 days agoMerge "fix AVX & AVX2 detection"
James Zern [Wed, 21 Jan 2015 20:59:07 +0000 (12:59 -0800)]
Merge "fix AVX & AVX2 detection"

4 days agoAllow external resize via vpx_codec_enc_config_set 66/73466/4
Alex Converse [Tue, 13 Jan 2015 00:26:05 +0000 (16:26 -0800)]
Allow external resize via vpx_codec_enc_config_set

Change-Id: I3d324e2baa4de2d266c5f7ca7b635b62372e90a7

4 days agoMerge "Replace "colorspace" with "color_space""
Yaowu Xu [Wed, 21 Jan 2015 16:58:09 +0000 (08:58 -0800)]
Merge "Replace "colorspace" with "color_space""

5 days agoMerge "Add Neon intrinsics for vp9_avg_8x8_neon"
Frank Galligan [Tue, 20 Jan 2015 22:38:39 +0000 (14:38 -0800)]
Merge "Add Neon intrinsics for vp9_avg_8x8_neon"

5 days agoMerge "Add non420 code in multi-threaded loopfilter"
Yunqing Wang [Tue, 20 Jan 2015 19:45:03 +0000 (11:45 -0800)]
Merge "Add non420 code in multi-threaded loopfilter"

5 days agoMerge "Fix obvious misses in doxygen mainpage"
Yaowu Xu [Tue, 20 Jan 2015 19:27:52 +0000 (11:27 -0800)]
Merge "Fix obvious misses in doxygen mainpage"

5 days agoAdd non420 code in multi-threaded loopfilter 34/73534/2
Yunqing Wang [Fri, 16 Jan 2015 23:47:25 +0000 (15:47 -0800)]
Add non420 code in multi-threaded loopfilter

Added non420 part back to make it consistent with single
thread code in vp9_loopfilter.c.

Change-Id: I8ca255d73bffebae294d2627d6655eafe535cb90

5 days agoMerge "vp9_ethread: add parallel loopfilter"
Yunqing Wang [Tue, 20 Jan 2015 17:27:08 +0000 (09:27 -0800)]
Merge "vp9_ethread: add parallel loopfilter"

5 days agoMerge "Add vp9_highbitdepth info in configure --help"
Yaowu Xu [Tue, 20 Jan 2015 16:55:16 +0000 (08:55 -0800)]
Merge "Add vp9_highbitdepth info in configure --help"

7 days agoSSE2 code for the filter in MFQE. 70/73470/3
JackyChen [Tue, 13 Jan 2015 18:50:50 +0000 (10:50 -0800)]
SSE2 code for the filter in MFQE.

The SSE2 code is from VP8 MFQE, reuse it in VP9. No change on VP8
side. In our testing, we achieve 2X speed by adopting this change.

Change-Id: Ib2b14144ae57c892005c1c4b84e3379d02e56716

8 days agoFix variance Neon intrinsics > 32x32 43/73543/4
Frank Galligan [Sat, 17 Jan 2015 03:30:45 +0000 (19:30 -0800)]
Fix variance Neon intrinsics > 32x32

The 16 bit sum vector was overflowing.

Change-Id: I0fdf38e832ee99457ec8680a92691a6175ff8c3f

9 days agovp9_ethread: add parallel loopfilter 89/73389/10
Yunqing Wang [Tue, 6 Jan 2015 22:14:26 +0000 (14:14 -0800)]
vp9_ethread: add parallel loopfilter

1. Added row-based loopfilter in encoder;
2. Moved common multi-threaded loopfilter functions from decoder
   to common;
3. Merged multi-threaded loopfilter code, and made encoder/
   decoder call same function to reduce code duplication.

Encoder tests showed that 1% - 2% speedup was seen for good-quality
2-pass mode(at speed 3); 1% - 3% speedup using 2 threads and 4% - 6%
speedup using 4 threads were seen for real-time mode(at speed 7).

Change-Id: I8a4ac51c2ad9bab9fa7b864e90743931c53ec1c4

9 days agoMerge "Fix frame buffer swap in denoiser"
Jingning Han [Sat, 17 Jan 2015 00:58:37 +0000 (16:58 -0800)]
Merge "Fix frame buffer swap in denoiser"

9 days agoMerge "[two pass temporal svc]Fix crash issue in transcoder app caused by last fix."
Minghai Shang [Fri, 16 Jan 2015 23:00:20 +0000 (15:00 -0800)]
Merge "[two pass temporal svc]Fix crash issue in transcoder app caused by last fix."

9 days agoFix frame buffer swap in denoiser 24/73524/3
Jingning Han [Fri, 16 Jan 2015 17:03:40 +0000 (09:03 -0800)]
Fix frame buffer swap in denoiser

This commit fixes a bug in denoiser reference frame buffer swap,
which disables frame buffer update.

Change-Id: I39a9427180fd18f9692602064ad821f7af4714c0

9 days agoAdd vp9_highbitdepth info in configure --help 27/73527/2
Yaowu Xu [Fri, 16 Jan 2015 19:15:02 +0000 (11:15 -0800)]
Add vp9_highbitdepth info in configure --help

Change-Id: I89497a483117fc472be3a836070109498258140d

10 days agofix AVX & AVX2 detection 02/73502/3
James Zern [Thu, 15 Jan 2015 06:51:49 +0000 (22:51 -0800)]
fix AVX & AVX2 detection

fixes issue #790 which resulted in a SIGILL on OpenBSD

code is mostly from libwebp, based on the following:

https://software.intel.com/en-us/articles/how-to-detect-new-instruction-support-in-the-4th-generation-intel-core-processor-family

Change-Id: Ida7c1a18261e98c05ed9c662068140be407ec107

10 days agoReplace "colorspace" with "color_space" 18/73518/1
Yaowu Xu [Fri, 16 Jan 2015 01:58:47 +0000 (17:58 -0800)]
Replace "colorspace" with "color_space"

This is to make the usage of the variable name consistent across
the code base.

Change-Id: I698739e55841c59358d1c6e5cc97c96088772943

10 days ago[two pass temporal svc]Fix crash issue in transcoder app caused by last fix. 17/73517/2
Minghai Shang [Thu, 15 Jan 2015 23:44:11 +0000 (15:44 -0800)]
[two pass temporal svc]Fix crash issue in transcoder app caused by last fix.

Change-Id: I78ecc8ec3fa3ba5f69bb23813e68a5255d0534e1

10 days agoAdd Neon intrinsics for vp9_avg_8x8_neon 13/73513/1
Frank Galligan [Thu, 15 Jan 2015 22:36:41 +0000 (14:36 -0800)]
Add Neon intrinsics for vp9_avg_8x8_neon

On Nexus 7 speed -5, -6, -7, and -8 saw about a 1% increase
in perf for 480p. Speeds -5, -6, -7, and -8 saw about a 1.5%
increase in perf for 720p.

Tested on Nexus 7, built with ndk r10d, gcc 4.9.

Change-Id: Ibf17ebfd952a6aec941719bd8306df8ec4574bee

10 days agoFix obvious misses in doxygen mainpage 12/73512/3
Yaowu Xu [Thu, 15 Jan 2015 22:32:42 +0000 (14:32 -0800)]
Fix obvious misses in doxygen mainpage

Change-Id: I0537769904f0853c9299b36a91391f289acf442c

10 days agoFix color_space enum comments for doxygen 11/73511/1
Yaowu Xu [Thu, 15 Jan 2015 21:40:16 +0000 (13:40 -0800)]
Fix color_space enum comments for doxygen

Change-Id: I14f1708908a0b68b7f4c8e039dbec138c14c5ae4

10 days agoFix doxygen warning with usage.dox 10/73510/1
Yaowu Xu [Thu, 15 Jan 2015 19:42:04 +0000 (11:42 -0800)]
Fix doxygen warning with usage.dox

Change-Id: I3ee8974a66f186fb0eb15b1078a3c7b9cbf5ec80

10 days agoRemove obsolete doxygen tags 00/73500/2
Yaowu Xu [Thu, 15 Jan 2015 02:09:14 +0000 (18:09 -0800)]
Remove obsolete doxygen tags

Change-Id: I38a42ed1d0be4fbfce6c9f3f5d021055107933d7

10 days agoMerge "Fix comments for doxygen"
Yaowu Xu [Thu, 15 Jan 2015 18:46:20 +0000 (10:46 -0800)]
Merge "Fix comments for doxygen"

10 days agoMerge "Align thread data in vp9_ethread"
Yunqing Wang [Thu, 15 Jan 2015 17:21:31 +0000 (09:21 -0800)]
Merge "Align thread data in vp9_ethread"

10 days agoFix comments for doxygen 99/73499/2
Yaowu Xu [Tue, 13 Jan 2015 22:32:09 +0000 (14:32 -0800)]
Fix comments for doxygen

Change-Id: Iaad3dc3cdd25275939b475706eb7d136a5a10174

11 days agoworkaround stack bashing by asm on 32-bit OpenBSD 05/73505/1
James Zern [Thu, 15 Jan 2015 07:09:57 +0000 (23:09 -0800)]
workaround stack bashing by asm on 32-bit OpenBSD

like Darwin, disable x86inc with 32-bit PIC/shared library builds;
avoids stack smashing done by vp9_subpixel_*

workaround for issue #808

Change-Id: I3f2f16bd91822c8e8dad0242b5dcfb0e621aea97

11 days agoMerge "Clarify purpose of VP9_INVERT_TILE_DECODE_ORDER"
Yaowu Xu [Thu, 15 Jan 2015 04:25:18 +0000 (20:25 -0800)]
Merge "Clarify purpose of VP9_INVERT_TILE_DECODE_ORDER"

11 days agoMerge "Add comments for two SVC related controls"
Yaowu Xu [Thu, 15 Jan 2015 01:53:49 +0000 (17:53 -0800)]
Merge "Add comments for two SVC related controls"

11 days agoMerge "Add comments for two SVC related controls"
Yaowu Xu [Thu, 15 Jan 2015 01:53:42 +0000 (17:53 -0800)]
Merge "Add comments for two SVC related controls"

11 days agoMerge "Add comments for control VP9E_SET_TUNE_CONTENT"
Yaowu Xu [Thu, 15 Jan 2015 00:28:57 +0000 (16:28 -0800)]
Merge "Add comments for control VP9E_SET_TUNE_CONTENT"

11 days agoMerge "Add comments for VP9E_SET_FRAME_PERIODIC_BOOST"
Yaowu Xu [Thu, 15 Jan 2015 00:28:41 +0000 (16:28 -0800)]
Merge "Add comments for VP9E_SET_FRAME_PERIODIC_BOOST"

11 days agoClarify purpose of VP9_INVERT_TILE_DECODE_ORDER 73/73473/5
Yaowu Xu [Tue, 13 Jan 2015 20:19:46 +0000 (12:19 -0800)]
Clarify purpose of VP9_INVERT_TILE_DECODE_ORDER

Change-Id: I1eb98f4576994c5c9fa5ba748d85cd186910ee4f

11 days agoAlign thread data in vp9_ethread 98/73498/1
Yunqing Wang [Wed, 14 Jan 2015 23:51:56 +0000 (15:51 -0800)]
Align thread data in vp9_ethread

On some platforms, such as 32bit Windows and 32bit Mac, the allocated
memory isn't aligned automatically. The thread data is aligned to
ensure the correct access in SIMD code.

Change-Id: I1108c145fe982ddbd3d9324952758297120e4806

11 days agoMerge "Fix comments for encoder controls"
Yaowu Xu [Wed, 14 Jan 2015 23:32:35 +0000 (15:32 -0800)]
Merge "Fix comments for encoder controls"

11 days agoMerge "Add encoder control for setting color space"
Yaowu Xu [Wed, 14 Jan 2015 22:14:34 +0000 (14:14 -0800)]
Merge "Add encoder control for setting color space"

11 days agoMerge "Switch remaining Neon variance functions to shifts"
Frank Galligan [Wed, 14 Jan 2015 20:17:42 +0000 (12:17 -0800)]
Merge "Switch remaining Neon variance functions to shifts"

11 days agoMerge "Add 64x64 sub_pel_variance Neon function"
Frank Galligan [Wed, 14 Jan 2015 20:17:20 +0000 (12:17 -0800)]
Merge "Add 64x64 sub_pel_variance Neon function"

11 days agoAdd comments for two SVC related controls 93/73493/1
Yaowu Xu [Wed, 14 Jan 2015 20:02:46 +0000 (12:02 -0800)]
Add comments for two SVC related controls

VP9E_SET_SVC
VP9E_SET_SVC_PARAMETERS

Change-Id: Ie32ffad48b6b53c5a2c44c42ec655bfedf8d2903

11 days agoAdd comments for two SVC related controls 89/73489/1
Yaowu Xu [Wed, 14 Jan 2015 19:48:29 +0000 (11:48 -0800)]
Add comments for two SVC related controls

VP9E_GET_SVC_LAYER_ID
VP9E_REGISTER_CX_CALLBACK

Change-Id: I92060bde1a4830268c8e07190d4ee4c37bc05334

11 days agoAdd comments for control VP9E_SET_TUNE_CONTENT 88/73488/1
Yaowu Xu [Wed, 14 Jan 2015 19:17:09 +0000 (11:17 -0800)]
Add comments for control VP9E_SET_TUNE_CONTENT

Change-Id: If1fb5d9f1545cb9753eeda22e699b1ab778452b4

11 days agoAdd comments for VP9E_SET_FRAME_PERIODIC_BOOST 87/73487/2
Yaowu Xu [Wed, 14 Jan 2015 17:07:02 +0000 (09:07 -0800)]
Add comments for VP9E_SET_FRAME_PERIODIC_BOOST

Change-Id: Id6decd0024b87da82d85d62ec2f4bdff416faa39

11 days agoFix comments for encoder controls 82/73482/7
Yaowu Xu [Tue, 13 Jan 2015 20:39:42 +0000 (12:39 -0800)]
Fix comments for encoder controls

This commit added coments for the following encoder controls:
VP9E_SET_LOSSLESS
VP9E_SET_TILE_COLUMNS
VP9E_SET_TILE_ROWS
VP9E_SET_FRAME_PARALLEL_DECODING
VP9E_SET_AQ_MODE

Change-Id: I2f75afd9cce01394f202b8e25f36bf763be0ddeb

11 days agoAdd encoder control for setting color space 50/73450/8
Yaowu Xu [Tue, 13 Jan 2015 18:07:20 +0000 (10:07 -0800)]
Add encoder control for setting color space

This commit adds encoder side control for vp9 to set color space info
in the output compressed bitstream.

It also amends the "vp9_encoder_params_get_to_decoder" test to verify
the correct color space information is passed from the encoder end to
decoder end.

Change-Id: Ibf5fba2edcb2a8dc37557f6fae5c7816efa52650

11 days agoMerge "Enable decoder to pass through color space info"
Yaowu Xu [Wed, 14 Jan 2015 18:04:15 +0000 (10:04 -0800)]
Merge "Enable decoder to pass through color space info"

11 days agoAdd 64x64 sub_pel_variance Neon function 83/73483/3
Frank Galligan [Wed, 14 Jan 2015 07:01:06 +0000 (23:01 -0800)]
Add 64x64 sub_pel_variance Neon function

On Nexus 7 speed -5, -6, -7, and -8 saw about a 15% increase
in perf for 480p. Speeds -5, -6, -7, and -8 saw about a 10%
increase in perf for 720p.

Tested on Nexus 7, built with ndk r10d, gcc 4.9.

Change-Id: I2fa5315845e3021c9a6e2ea47e52e68b398d8334

12 days agoSwitch remaining Neon variance functions to shifts 85/73485/1
Frank Galligan [Wed, 14 Jan 2015 15:22:49 +0000 (07:22 -0800)]
Switch remaining Neon variance functions to shifts

Saves 5 instructions on 8x8 and 16x16 and 8 instructions
on 32x32, when compiled with 4.9.

Change-Id: Id3da613a36a9d27d8c5169c59ba45d247c920c6c

12 days agoMerge "Add 64x variance Neon functions"
Frank Galligan [Wed, 14 Jan 2015 06:38:58 +0000 (22:38 -0800)]
Merge "Add 64x variance Neon functions"

12 days ago[twopass temporal svc] Fix decoding error on seek. 78/73478/3
Minghai Shang [Tue, 13 Jan 2015 23:39:04 +0000 (15:39 -0800)]
[twopass temporal svc] Fix decoding error on seek.

Don't put small empty frame in front of a key frame. We will
put key frame flag in webm container if there's a visible key
frame. But there will be decoding error when we seek to here
if we put the small empty frame, which will be inter frame,
in front of it.

Change-Id: Id50c2c1fd31da0405ff6faa7375cc2f49c55402d

12 days agoEnable decoder to pass through color space info 61/73461/5
Yaowu Xu [Fri, 9 Jan 2015 21:04:48 +0000 (13:04 -0800)]
Enable decoder to pass through color space info

This commit added a field to vpx_image_t for indicating color space,
the field is also added to YUV_BUFFER_CONFIG. This allows the color
space information pass through the decoder from input stream to the
output buffer.

The commit also updated compare_img() function with added verification
of matching color space to ensure the color space information to be
correctly passed from encode to decoder in compressed vp9 streams.

Change-Id: I412776ec83defd8a09d76759aeb057b8fa690371

12 days agoAdd 64x variance Neon functions 71/73471/3
Frank Galligan [Tue, 13 Jan 2015 19:15:24 +0000 (11:15 -0800)]
Add 64x variance Neon functions

Add optimized Neon functions of:
vp9_variance32x64
vp9_variance64x32
vp9_variance64x64

On Nexus 7 speed -5 and -6 saw about a 4% increase in perf.
Speeds -7 and -8 saw about a 6% increase in perf.
Tested on Nexus 7, built with ndk r10d, gcc 4.9.

Change-Id: I5a81f13c9897eb927fa39662530f5524a0f768fa

12 days agoMerge "Added plumbing for setting color space"
Yaowu Xu [Tue, 13 Jan 2015 17:20:13 +0000 (09:20 -0800)]
Merge "Added plumbing for setting color space"

13 days agoMerge "Unit test for turning VP8 denoiser on/off periodically."
JackyChen [Tue, 13 Jan 2015 01:33:34 +0000 (17:33 -0800)]
Merge "Unit test for turning VP8 denoiser on/off periodically."

13 days agovp8: Fix to crash in pick_inter. 59/73459/3
Marco [Sun, 11 Jan 2015 23:26:44 +0000 (15:26 -0800)]
vp8: Fix to crash in pick_inter.

Added unittest that triggers the crash without this fix.

Issue: https://code.google.com/p/webm/issues/detail?id=911

Change-Id: If5208ceb210c821891675fdf3d9951ab83d52ae6

2 weeks agoMerge "Fix comments and color format"
Yaowu Xu [Sun, 11 Jan 2015 22:01:36 +0000 (14:01 -0800)]
Merge "Fix comments and color format"

2 weeks agoUnit test for turning VP8 denoiser on/off periodically. 42/73442/4
JackyChen [Thu, 8 Jan 2015 21:10:50 +0000 (13:10 -0800)]
Unit test for turning VP8 denoiser on/off periodically.

Change-Id: Id537d1126f25c0218adcfb4d6ee641ee81a2169a

2 weeks agoAdded plumbing for setting color space 49/73449/1
Yaowu Xu [Fri, 9 Jan 2015 18:52:33 +0000 (10:52 -0800)]
Added plumbing for setting color space

Change-Id: If64052cc6e404abc8a64a889f42930d14fad21d3

2 weeks agoFix comments and color format 48/73448/1
Yaowu Xu [Fri, 9 Jan 2015 18:36:43 +0000 (10:36 -0800)]
Fix comments and color format

Replaced "color space" with "color format" in comments where color
sampling format is concerned, so to differentiate from the concept
defined in COLOR_SPACE.

Change-Id: I8c935034c166b24307a99352dab1686531276bb8

2 weeks agoMerge "Use 64 bit to accumulate frame sse."
Paul Wilkins [Fri, 9 Jan 2015 14:05:11 +0000 (06:05 -0800)]
Merge "Use 64 bit to accumulate frame sse."

2 weeks agoMerge "Refactor mc reference block fetch in denoiser"
Jingning Han [Fri, 9 Jan 2015 01:56:53 +0000 (17:56 -0800)]
Merge "Refactor mc reference block fetch in denoiser"

2 weeks agoMerge "vp9: add per-tile longjmp error handling"
James Zern [Thu, 8 Jan 2015 23:53:37 +0000 (15:53 -0800)]
Merge "vp9: add per-tile longjmp error handling"

2 weeks agoMerge "vp9: fix -Wclobbered (longjmp + local variables)"
James Zern [Thu, 8 Jan 2015 23:53:02 +0000 (15:53 -0800)]
Merge "vp9: fix -Wclobbered (longjmp + local variables)"

2 weeks agoMerge "Use lookup table to find pixel numbers in block"
Jingning Han [Thu, 8 Jan 2015 21:58:35 +0000 (13:58 -0800)]
Merge "Use lookup table to find pixel numbers in block"

2 weeks agoMerge "Disable vp9 _8_ loopfilters"
Johann [Thu, 8 Jan 2015 20:47:52 +0000 (12:47 -0800)]
Merge "Disable vp9 _8_ loopfilters"

2 weeks agoRefactor mc reference block fetch in denoiser 41/73441/2
Jingning Han [Thu, 8 Jan 2015 20:15:30 +0000 (12:15 -0800)]
Refactor mc reference block fetch in denoiser

This commit refactors the motion compensated reference block fetch
process in denoiser. It skips the stage that generates motion
compensated reference block if denoiser decides to use copy block
mode. For high motion clips, this could speed up the denoising
process by about 10%.

Change-Id: I8ef4fa5fe766a8c4529119b9ec01faefb3d4ef53

2 weeks agoUse lookup table to find pixel numbers in block 32/73432/3
Jingning Han [Thu, 8 Jan 2015 02:36:47 +0000 (18:36 -0800)]
Use lookup table to find pixel numbers in block

This could save one multiplication in each threshold funtion
called by the denoiser per block.

Change-Id: I35f437e09999f0a087180878ef7805f0d86e5819

2 weeks agoMerge "Refactor denoiser frame buffer update"
Jingning Han [Thu, 8 Jan 2015 19:16:14 +0000 (11:16 -0800)]
Merge "Refactor denoiser frame buffer update"

2 weeks agoMerge "Initalize zeromv_sse and newmv_sse in vp9_pick_inter_mode"
Jingning Han [Thu, 8 Jan 2015 18:55:03 +0000 (10:55 -0800)]
Merge "Initalize zeromv_sse and newmv_sse in vp9_pick_inter_mode"

2 weeks agoMerge "Use vp9_convolve_copy in denoiser output"
Jingning Han [Thu, 8 Jan 2015 17:59:10 +0000 (09:59 -0800)]
Merge "Use vp9_convolve_copy in denoiser output"

2 weeks agoMerge "Remove unnecessary init_macroblockd."
hkuang [Thu, 8 Jan 2015 17:15:32 +0000 (09:15 -0800)]
Merge "Remove unnecessary init_macroblockd."

2 weeks agoMerge "Removed redundant local variables in the forward hybrid transforms."
Zoe Liu [Thu, 8 Jan 2015 10:32:15 +0000 (02:32 -0800)]
Merge "Removed redundant local variables in the forward hybrid transforms."

2 weeks agoMerge "Unit test for turning VP9 denoiser on/off periodically."
JackyChen [Thu, 8 Jan 2015 07:36:16 +0000 (23:36 -0800)]
Merge "Unit test for turning VP9 denoiser on/off periodically."

2 weeks agoRefactor denoiser frame buffer update 31/73431/1
Jingning Han [Thu, 8 Jan 2015 02:30:50 +0000 (18:30 -0800)]
Refactor denoiser frame buffer update

Use frame buffer pointer swap instead of memcpy when possible.
These two CLs make the denoiser when running on vidyo1 720p at
speed -6 over 10% faster.

Change-Id: I64fe8a2422cafca6787a50c7f4dfb961191c0a9d

2 weeks agoUnit test for turning VP9 denoiser on/off periodically. 21/73421/3
JackyChen [Thu, 8 Jan 2015 00:34:25 +0000 (16:34 -0800)]
Unit test for turning VP9 denoiser on/off periodically.

Change-Id: Ifd2813e8ccd8af189a8dc89b24efb6a5681714c7

2 weeks agoUse vp9_convolve_copy in denoiser output 30/73430/1
Jingning Han [Thu, 8 Jan 2015 02:20:38 +0000 (18:20 -0800)]
Use vp9_convolve_copy in denoiser output

Replace copy_block with vp9_convolve_copy for speed performance
improvement.

Change-Id: I3a08c4d01dff2253b6ee573efd02f65ccdc1b5a5

2 weeks agoRemoved redundant local variables in the forward hybrid transforms. 25/73425/1
Zoe Liu [Thu, 8 Jan 2015 00:38:29 +0000 (16:38 -0800)]
Removed redundant local variables in the forward hybrid transforms.

Change-Id: I60f7ccbbc8dc624134e325bdce6042bc183075b6

2 weeks agoMerge "Refactor calculation of tile_cols"
Yaowu Xu [Thu, 8 Jan 2015 00:24:57 +0000 (16:24 -0800)]
Merge "Refactor calculation of tile_cols"

2 weeks agoMerge "Always check and free denoiser buffer memory space"
Jingning Han [Wed, 7 Jan 2015 23:54:06 +0000 (15:54 -0800)]
Merge "Always check and free denoiser buffer memory space"

2 weeks agoInitalize zeromv_sse and newmv_sse in vp9_pick_inter_mode 13/73413/2
Jingning Han [Wed, 7 Jan 2015 19:41:56 +0000 (11:41 -0800)]
Initalize zeromv_sse and newmv_sse in vp9_pick_inter_mode

These two parameters are used to control the denoiser cut-off
thresholds. They should be properly initialized when starting
mode search of a given block.

Change-Id: Iba8a25487026a0dbe0d350c347d7e4e4e237b637

2 weeks agoMerge "Use qdiff to adjust the threshold of sad and variance in MFQE."
JackyChen [Wed, 7 Jan 2015 22:57:46 +0000 (14:57 -0800)]
Merge "Use qdiff to adjust the threshold of sad and variance in MFQE."