platform/upstream/libvpx.git
9 years agoMerge "Move VP9 SSIM metrics to vpx_dsp."
Aℓex Converse [Fri, 7 Aug 2015 16:43:28 +0000 (16:43 +0000)]
Merge "Move VP9 SSIM metrics to vpx_dsp."

9 years agoMerge "Improve the second-level sub-pixel motion search"
Yunqing Wang [Fri, 7 Aug 2015 16:05:59 +0000 (16:05 +0000)]
Merge "Improve the second-level sub-pixel motion search"

9 years agoMove VP9 SSIM metrics to vpx_dsp.
Alex Converse [Thu, 6 Aug 2015 19:53:59 +0000 (12:53 -0700)]
Move VP9 SSIM metrics to vpx_dsp.

Change-Id: I20c7b42631b579fade6cf7ebf6d4c69b2fcb5e5e

9 years agoMerge "Cosmetic - align format in vp9"
Jingning Han [Fri, 7 Aug 2015 00:03:05 +0000 (00:03 +0000)]
Merge "Cosmetic - align format in vp9"

9 years agoImprove the second-level sub-pixel motion search
Yunqing Wang [Wed, 5 Aug 2015 16:15:03 +0000 (09:15 -0700)]
Improve the second-level sub-pixel motion search

Re-investigated the second-level sub-pixel motion search. Improved the
way of choosing search points. Rewrote the second-level search code.

At speed 0, the borg tests showed:
1. for stdhd set, Avg PSNR gain: 0.216%; Overall PSNR gain: 0.196%;
   SSIM gain: 0.206%. Only 1 out of 15 clips showed PSNR loss.
2. for derf set, Avg PSNR gain: 0.171%; Overall PSNR gain: 0.192%;
   SSIM gain: 0.207%. Only 3 out of 30 clips showed PSNR losses.
Added the condition for third-point checking, namely, less points
were checked. Speed tests showed no speed loss(Avg 0.3% speedup at
speed 0).

Change-Id: I6284ebb3fa7ba63be8528184c49e06757211a7f1

9 years agoCosmetic - align format in vp9
Jingning Han [Thu, 6 Aug 2015 22:55:36 +0000 (15:55 -0700)]
Cosmetic - align format in vp9

Change-Id: I83ed3422f1f4009675ad2f5c4b7236bc7b83b30e

9 years agoFix a new[]/delete mismatch
Alex Converse [Thu, 6 Aug 2015 21:34:27 +0000 (14:34 -0700)]
Fix a new[]/delete mismatch

Change-Id: I04c43ff71748d7a2e2ede462cb42b22116a1bfd6

9 years agoMerge "endian_inl.h: fix mips32 android build"
James Zern [Thu, 6 Aug 2015 22:23:39 +0000 (22:23 +0000)]
Merge "endian_inl.h: fix mips32 android build"

9 years agoMerge "Narrow a load in iwht4x4_16_add."
Aℓex Converse [Thu, 6 Aug 2015 22:21:16 +0000 (22:21 +0000)]
Merge "Narrow a load in iwht4x4_16_add."

9 years agoMerge "Fix compiler error in vp8/9 decoder test"
Jingning Han [Thu, 6 Aug 2015 19:50:23 +0000 (19:50 +0000)]
Merge "Fix compiler error in vp8/9 decoder test"

9 years agoMerge "Revert "VP9_COPY_CONVOLVE_SSE2 optimization""
James Zern [Thu, 6 Aug 2015 19:28:49 +0000 (19:28 +0000)]
Merge "Revert "VP9_COPY_CONVOLVE_SSE2 optimization""

9 years agoendian_inl.h: fix mips32 android build
James Zern [Thu, 6 Aug 2015 01:31:50 +0000 (18:31 -0700)]
endian_inl.h: fix mips32 android build

when configuring with mips32-android-gcc HAVE_MIPS32 would be set, but the
ndk does not set -mips32r2 for APP_ABI=mips which results in BSwap32 failing
to build; refine the check in endian_inl.h

Change-Id: I22893fe61f29111eb902d961b500b2174596268d

9 years agoFix compiler error in vp8/9 decoder test
Jingning Han [Thu, 6 Aug 2015 19:02:05 +0000 (12:02 -0700)]
Fix compiler error in vp8/9 decoder test

The test file compiler fails if one uses --disable-vp8-decoder
--enable-vp9-decoder. It effectively turns on CONFIG_VP8 and
CONFIG_DECODERS, but turns off CONFIG_VP8_DECODER, which causes
compiler error at test_vector_test.cc.

This commit fixes this issue by adding vp8/9 decoder flags to
the decoder behavior test, respectively.

Change-Id: I097ff8fd5e12715a94a565a82e54503885eb7187

9 years agoRate control adjustment for temporal-svc 1pass.
Marco [Wed, 5 Aug 2015 22:09:16 +0000 (15:09 -0700)]
Rate control adjustment for temporal-svc 1pass.

-For ambient qp in active_worst setting: increase the initial
averaging time (from very first frame) to account for avg_qp of key_frame.
-In postencode on key frame: update the last_q/avg_q[key_frame] for
all temporal layers.

Change-Id: I5313153d350b1045b4835ce948dfffb7d2039b52

9 years agoMerge "Support build with Visual Studio 14."
James Zern [Thu, 6 Aug 2015 00:10:40 +0000 (00:10 +0000)]
Merge "Support build with Visual Studio 14."

9 years agoMerge "Bugfix for svc."
Marco Paniconi [Wed, 5 Aug 2015 21:53:19 +0000 (21:53 +0000)]
Merge "Bugfix for svc."

9 years agoSupport build with Visual Studio 14.
Ghislain MARY [Tue, 28 Jul 2015 14:37:09 +0000 (16:37 +0200)]
Support build with Visual Studio 14.

Change-Id: Id0d7c19857e29b66c652c8cc1ab56b64e4fc0fa3

9 years agoBugfix for svc.
Marco [Wed, 5 Aug 2015 20:53:26 +0000 (13:53 -0700)]
Bugfix for svc.

Condition usage of rc.frames_since_golden to non-svc mode.

rc.frames_since_golden, which is used in non-svc mode to add second reference,
was causing, under certain condiiton, the turning off of golden reference
for svc case.

Change-Id: Icec644d235d0471e56d8ff73d6c37278bd6ecd3b

9 years agothird_party/libwebm: pull from upstream
James Zern [Wed, 5 Aug 2015 19:52:40 +0000 (12:52 -0700)]
third_party/libwebm: pull from upstream

Changes:
2dec094 mkvparser: normalize UnserializeInt signature

fixes a visual studio build warning

Change-Id: Ifb99c8a46957ee135f8a6a639f19f2515c7526c3

9 years agoNarrow a load in iwht4x4_16_add.
Alex Converse [Wed, 5 Aug 2015 19:16:12 +0000 (12:16 -0700)]
Narrow a load in iwht4x4_16_add.

The top half is unused.

Change-Id: I29b2f6a93e20ea43aff4ad0bd2d52257e1e752b6

9 years agoRevert "VP9_COPY_CONVOLVE_SSE2 optimization"
James Zern [Wed, 5 Aug 2015 00:52:57 +0000 (17:52 -0700)]
Revert "VP9_COPY_CONVOLVE_SSE2 optimization"

This reverts commit a5e97d874b16ae5826b68515f1e35ffb44361cf8.

Additionally:
Revert "vpx_convolve_copy_sse2: fix win64"

This reverts commit 22a8474fe7ec30d96f746dc6e4b23771758c071e.

This change performs poorly on various x86_64 devices affecting
performance by 1-3% at 1080P. Performance on chromebook like devices was
mixed neutral to slightly negative, so there should be minimal change
there.

Change-Id: I95831233b4b84ee96369baa192a2d4cc7639658c

9 years agoMerge "third_party/libwebm: pull from upstream"
James Zern [Wed, 5 Aug 2015 00:48:39 +0000 (00:48 +0000)]
Merge "third_party/libwebm: pull from upstream"

9 years agoMerge "examples.mk: quiet vcproj script exec by default"
James Zern [Wed, 5 Aug 2015 00:42:36 +0000 (00:42 +0000)]
Merge "examples.mk: quiet vcproj script exec by default"

9 years agoChange vp9_quantize to vpx_quantize
Jingning Han [Tue, 4 Aug 2015 16:24:52 +0000 (09:24 -0700)]
Change vp9_quantize to vpx_quantize

This commit clears all the vp9_ prefix use case in vpx_dsp. It gets
the vp9 folder ready to branch out vp10.

Change-Id: I2906eec179ee792b4af8c9b4161313653050e931

9 years agoMerge "Replace vp9_ prefix with vpx_ prefix in vpx_dsp function names"
Jingning Han [Tue, 4 Aug 2015 22:30:36 +0000 (22:30 +0000)]
Merge "Replace vp9_ prefix with vpx_ prefix in vpx_dsp function names"

9 years agoMerge "Minor adjustment in diagonal sub-pixel point checking"
Yunqing Wang [Tue, 4 Aug 2015 21:00:41 +0000 (21:00 +0000)]
Merge "Minor adjustment in diagonal sub-pixel point checking"

9 years agoMerge "Small improvement in sub-pixel motion search"
Yunqing Wang [Tue, 4 Aug 2015 20:59:30 +0000 (20:59 +0000)]
Merge "Small improvement in sub-pixel motion search"

9 years agoReplace vp9_ prefix with vpx_ prefix in vpx_dsp function names
Jingning Han [Mon, 3 Aug 2015 21:51:10 +0000 (14:51 -0700)]
Replace vp9_ prefix with vpx_ prefix in vpx_dsp function names

This commit clears the function naming convention in vpx_dsp. It
replaces vp9_ prefix of global functions with vpx_ prefix. It also
removes the vp9_ prefix from static functions.

Change-Id: I6394359a63b71a51dda01342eec6a3cc08dfeedf

9 years agoMinor adjustment in diagonal sub-pixel point checking
Yunqing Wang [Tue, 4 Aug 2015 19:16:47 +0000 (12:16 -0700)]
Minor adjustment in diagonal sub-pixel point checking

Choose a different diagonal point to check when the two costs are
the same, making it consistent with the way we choose the best mv.
This slightly changes the encoding result, and the derflr set borg
test at speed 0 shows 0.027% Overall PSNR gain, 0.024% Avg PSNR
gain, and 0.043% SSIM gain.

Change-Id: Ic8ee3a6767394866d159e4f9e1c777604dd73c17

9 years agoSmall improvement in sub-pixel motion search
Yunqing Wang [Tue, 4 Aug 2015 19:06:21 +0000 (12:06 -0700)]
Small improvement in sub-pixel motion search

If the current best mv(namely, the search center) is still the best mv
after the first level search, the second level checks is skipped. This
patch doesn't change the bitstream. At speed 0, it speeds up the encoder
by 1% - 2%.

Change-Id: I054c91b884d3f7aef157436c061744562bd6506d

9 years agoExclude inv_txfm dspr2 files from make file when highbd is on
Jingning Han [Tue, 4 Aug 2015 16:44:26 +0000 (09:44 -0700)]
Exclude inv_txfm dspr2 files from make file when highbd is on

Add a guard to exclud dspr2 inverse transform files from vpx_dsp
make file, when high bit-depth is turned on. This fixes the jenkins
nightly build.

Change-Id: Ibacd86563af1ec4810c550905b3fa0397baeeafc

9 years agoMerge "Rename vp8 loopfilter_mmx.asm"
Johann Koenig [Tue, 4 Aug 2015 15:55:48 +0000 (15:55 +0000)]
Merge "Rename vp8 loopfilter_mmx.asm"

9 years agoMerge "mips msa vp8 denoising filter optimization"
Parag Salasakar [Tue, 4 Aug 2015 04:30:44 +0000 (04:30 +0000)]
Merge "mips msa vp8 denoising filter optimization"

9 years agoMerge "mips msa vpx convolve optimzation"
Parag Salasakar [Tue, 4 Aug 2015 04:30:22 +0000 (04:30 +0000)]
Merge "mips msa vpx convolve optimzation"

9 years agoMerge "mips msa vpx subpel variance optimization"
Parag Salasakar [Tue, 4 Aug 2015 04:30:11 +0000 (04:30 +0000)]
Merge "mips msa vpx subpel variance optimization"

9 years agoMerge "mips msa vpx subtract test added"
Parag Salasakar [Tue, 4 Aug 2015 04:29:45 +0000 (04:29 +0000)]
Merge "mips msa vpx subtract test added"

9 years agoMerge "Move inverse transfrom dspr2 functions from vp9 to vpx_dsp"
Jingning Han [Tue, 4 Aug 2015 04:16:22 +0000 (04:16 +0000)]
Merge "Move inverse transfrom dspr2 functions from vp9 to vpx_dsp"

9 years agothird_party/libwebm: pull from upstream
James Zern [Tue, 4 Aug 2015 03:24:44 +0000 (20:24 -0700)]
third_party/libwebm: pull from upstream

Changes:
b6de61a Adds support for simple tags
75a6d2d sample_muxer: Don't write huge files.
cec1f85 mkvmuxer: remove unused timecode_scale variable
8a61b40 Merge "mkvparser: Tiny whitespace fix."
7affc5c clang-format re-run
d6d04ac mkvmuxer: use generic Cluster::AddFrame
4928b0b Merge "mkvmuxer: Write Block key frames correctly."
c2e4a46 Merge "sample_muxer: Use AddGenericFrame to add frames."
e97f296 mkvparser: Tiny whitespace fix.
d66ba44 Merge "Add support to parse DisplayUnit."
deb41c2 Add support to parse DisplayUnit.
42e5660 Fix issues on EBML lacing block parsing
fe1e9bb Fix block parsing to not allow frame_size = 0
2cb6a28 Change assertions to checks when parsing TrackPositions
d04580f Fixes issues on Block Group parsing
c3550fd mkvmuxer: Write Block key frames correctly.
5dd0e40 Merge "mkvmuxer: Set is_key to true for metadata blocks."
8e96863 mkvmuxer: Set is_key to true for metadata blocks.
a9e4819 sample_muxer: Use AddGenericFrame to add frames.
5a3be73 Change assertions to checks when load CuePoints
f99f3b2 mkvmuxerutil::EbmlDateElementSize: remove value param
ff572b5 Frame::IsValid: fix track_number check
b6311dc mkvmuxer: Refactor to remove a lot of duplicate code
256cd02 Merge "mkvmuxer: DiscardPadding should be signed integer."
16c8e78 mkvmuxer: s/frame/data in all AddFrame* functions.
c5e511c mkvmuxer: DiscardPadding should be signed integer.
4baaa2c Add framework build script: iosbuild.sh
3d06eb1 PATENTS: fix a typo: constitutes -> constitute
d3849c2 mkvparser: Dead code removal.
f439e52 Change assertions to checks when preloading Cues
d3a44cd Fix track transversal when listing Cues on sample
c6255af Tweak .gitignore so git status is clean after checkout and
build: - added missing underscore to sample_muxer - added cmake and make
related files
b5229c7 Makefile.unix: s/samplemuxer/sample_muxer/
e3616a6 Add support to parse stereo mode, display width and display
height in mkvparser
a4b68f8 parser: Fix bug in Chapters::Atom::Parse()
bab0a00 cmake: Set library and project name the proper way on Windows.
feeb9b1 Set library name to match Windows expectations.
b9a549b Fix CMakefile to generate libwebm.a
b386aa5 Add CMakeLists.txt and msvc_runtime.cmake.
b0f8a81 parser: Fix memory leak in Chapter parsing
f06e152 mkvmuxer: Fix MoveCuesBeforeClustersHelper recursive call.
27bb747 allow subtitle tracks with ContentEncodings
623d182 DoLoadCluster: tolerate empty clusters
1156da8 Update PATENTS to reflect s/VP8/WebM/g
0d4cb40 mkvmuxerutil: Use rand() in MSVC builds.
e12fff0 mkvmuxer: Overload WriteEbmlHeader for backward compatibility
a321704 mkvmuxer: write correct DocTypeVersion
574045e mkvmuxer: fix DiscardPadding
8be6397 Include crop elements when calculating size of Video element
8f2d1b3 mkvparser: fix DiscardPadding extraction
1c36c24 mkvmuxer: fix style guide violations
568504e Merge "UUIDs can have their high bit set"
acf788b Add support for CropLeft, CropRight, CropTop and CropBottom
elements.
418188b Merge "muxer: codec_id is a mandatory element"
07688c9 mkvmuxer: Reject frames if invalid track number is passed.
2a63e47 muxer: codec_id is a mandatory element
d13c017 UUIDs can have their high bit set

Change-Id: Iba28acb1ff774349d03e565f2641ddea132cf1e7

9 years agoMerge "update libyuv to r1456"
James Zern [Tue, 4 Aug 2015 02:34:32 +0000 (02:34 +0000)]
Merge "update libyuv to r1456"

9 years agoexamples.mk: quiet vcproj script exec by default
James Zern [Mon, 3 Aug 2015 23:24:24 +0000 (16:24 -0700)]
examples.mk: quiet vcproj script exec by default

the full command line can be seen with V=1 as with the other gen*
scripts

Change-Id: Id045b57e0f9af17d82d79201bbc1241b25a2b821

9 years agoMerge "add vp9_vector_var_neon"
James Zern [Tue, 4 Aug 2015 02:30:41 +0000 (02:30 +0000)]
Merge "add vp9_vector_var_neon"

9 years agogen_msvs_proj.sh: avoid asm object name collisions
James Zern [Mon, 3 Aug 2015 23:22:21 +0000 (16:22 -0700)]
gen_msvs_proj.sh: avoid asm object name collisions

fixes link under vs9; this is the same change as:
dbf6e3f gen_msvs_vcxproj.sh: Avoid object name collisions.

Change-Id: I2a188c9024d0605e60e5e03ddcef1a25e7e53585

9 years agoRename vp8 loopfilter_mmx.asm
Johann [Mon, 3 Aug 2015 21:27:03 +0000 (14:27 -0700)]
Rename vp8 loopfilter_mmx.asm

Chromium puts all the yasm output in the same directory. Looking at ways
to improve this but in the meantime get rid of collisions.

Change-Id: I923c5231d14e895ab96521eb89807ede868a0753

9 years agoMove inverse transfrom dspr2 functions from vp9 to vpx_dsp
Jingning Han [Mon, 3 Aug 2015 17:50:32 +0000 (10:50 -0700)]
Move inverse transfrom dspr2 functions from vp9 to vpx_dsp

Change-Id: Ia9cf7c31cab4ba3dd6b9bb668c4b3e84bd55cf69

9 years agoMerge "Add common_dspr2.c file to vpx_dsp/mips"
Jingning Han [Mon, 3 Aug 2015 18:58:37 +0000 (18:58 +0000)]
Merge "Add common_dspr2.c file to vpx_dsp/mips"

9 years agoMerge "Correct the allocation size for ssim_vars"
Yaowu Xu [Mon, 3 Aug 2015 18:43:55 +0000 (18:43 +0000)]
Merge "Correct the allocation size for ssim_vars"

9 years agoAdd common_dspr2.c file to vpx_dsp/mips
Jingning Han [Mon, 3 Aug 2015 17:17:45 +0000 (10:17 -0700)]
Add common_dspr2.c file to vpx_dsp/mips

Move the declaration of commonly referenced variable to
vpx_dsp/mips/common_dspr2.c.

Change-Id: Ia51287b02e2ac5cfae0fba98c721f0810618f28e

9 years agoCorrect the allocation size for ssim_vars
Yaowu Xu [Mon, 3 Aug 2015 17:46:12 +0000 (10:46 -0700)]
Correct the allocation size for ssim_vars

Ssim_vars is used to accumulate stats based 4x4 pixel blocks, this
commit changes the allocations size to be based on mi_rows and mi_cols
to avoid out-of-bound memory access for larger size videos. The hard
coded 720x480 can only work for image size up to 2880x1920.

Change-Id: Id9d07f3f777385b448ac88a6034b7472e4cf3c79

9 years agoRemove vpx_ prefix from the dspr2 file name in vpx_dsp/mips
Jingning Han [Mon, 3 Aug 2015 16:54:13 +0000 (09:54 -0700)]
Remove vpx_ prefix from the dspr2 file name in vpx_dsp/mips

Make it consistent with other formats.

Change-Id: I28f0d05ff7c5bf2b815989b3f1bd6c6b25608677

9 years agoMerge "Add vpx_dsp_rtcd.h to inv_txfm_sse2.c"
Jingning Han [Mon, 3 Aug 2015 16:03:09 +0000 (16:03 +0000)]
Merge "Add vpx_dsp_rtcd.h to inv_txfm_sse2.c"

9 years agoMerge "Remove vp9_common.h from idct16x16_neon.c"
Jingning Han [Mon, 3 Aug 2015 16:03:02 +0000 (16:03 +0000)]
Merge "Remove vp9_common.h from idct16x16_neon.c"

9 years agomips msa vpx convolve optimzation
Parag Salasakar [Mon, 3 Aug 2015 08:33:40 +0000 (14:03 +0530)]
mips msa vpx convolve optimzation

Removed redundant clip/saturate code from 2tap filter functions
average improvement 10%-40%

Change-Id: I1dafb5f7d2ce7a021d883d8af30fb93cd9ace173

9 years agomips msa vpx subpel variance optimization
Parag Salasakar [Mon, 3 Aug 2015 07:30:55 +0000 (13:00 +0530)]
mips msa vpx subpel variance optimization

Removed redundant clip/saturate code from 2tap filter functions
average improvement 20%-40%

Change-Id: I362540b0c7d5d3d69932c39d61b7d2a44da533d2

9 years agomips msa vpx subtract test added
Parag Salasakar [Mon, 3 Aug 2015 04:12:11 +0000 (09:42 +0530)]
mips msa vpx subtract test added

Change-Id: I0f0827a665c4d3039d3e5f09fa8c75c8f2bb2bab

9 years agoAdd _dspr2 to local function names
Jingning Han [Fri, 31 Jul 2015 19:57:52 +0000 (12:57 -0700)]
Add _dspr2 to local function names

It avoids symbol conflicts between function names of various
implementation versions.

Change-Id: Iad79ebcb8e289457801812a7745c8380b5b06a46

9 years agoMerge "Factor out mips/msa inverse transform implementations"
Jingning Han [Mon, 3 Aug 2015 03:18:39 +0000 (03:18 +0000)]
Merge "Factor out mips/msa inverse transform implementations"

9 years agoMerge "Add x86inc flag guard to inv_txfm_sse2.asm"
Jingning Han [Sun, 2 Aug 2015 21:56:09 +0000 (21:56 +0000)]
Merge "Add x86inc flag guard to inv_txfm_sse2.asm"

9 years agoRemove vp9_common.h from idct16x16_neon.c
Jingning Han [Sun, 2 Aug 2015 15:22:06 +0000 (08:22 -0700)]
Remove vp9_common.h from idct16x16_neon.c

Change-Id: I3df35a99900ef8ce549d315866849a10db1a4c7b

9 years agoAdd x86inc flag guard to inv_txfm_sse2.asm
Jingning Han [Sun, 2 Aug 2015 15:43:13 +0000 (08:43 -0700)]
Add x86inc flag guard to inv_txfm_sse2.asm

Fix the VS build failure.

Change-Id: I4fb9d1c83980c4b52d5a848a9cb02ec72493dccb

9 years agoAdd vpx_dsp_rtcd.h to inv_txfm_sse2.c
Jingning Han [Sun, 2 Aug 2015 15:24:56 +0000 (08:24 -0700)]
Add vpx_dsp_rtcd.h to inv_txfm_sse2.c

Change-Id: Ibab434fb4bd6da02dba087582ed74811f555c3ed

9 years agovpx_convolve_copy_sse2: fix win64
James Zern [Sat, 1 Aug 2015 18:45:49 +0000 (11:45 -0700)]
vpx_convolve_copy_sse2: fix win64

xmm6-7 need to be stored

Change-Id: I6c51559598d335946ec91be6246b49589c63b724

9 years agoFactor out mips/msa inverse transform implementations
Jingning Han [Fri, 31 Jul 2015 18:15:55 +0000 (11:15 -0700)]
Factor out mips/msa inverse transform implementations

Move mips/msa inverse transform implementations from vp9 folder to
vpx_dsp.

Change-Id: Ic4cf3f05247c3c63db7b532a0e5000017a962391

9 years agoMerge "Use precise header files in inverse transform msa implementations"
Jingning Han [Sat, 1 Aug 2015 16:20:43 +0000 (16:20 +0000)]
Merge "Use precise header files in inverse transform msa implementations"

9 years agoMerge "Factor inverse transform functions into vpx_dsp"
Jingning Han [Sat, 1 Aug 2015 16:20:24 +0000 (16:20 +0000)]
Merge "Factor inverse transform functions into vpx_dsp"

9 years agomips msa vp8 denoising filter optimization
Parag Salasakar [Sat, 1 Aug 2015 02:35:25 +0000 (08:05 +0530)]
mips msa vp8 denoising filter optimization

average improvement ~2x-3x

Change-Id: I6c17012c731fa4d56e0343f8de0df47b2dde289b

9 years agoMerge "mips msa vp8 temporal filter optimization"
Parag Salasakar [Sat, 1 Aug 2015 02:12:20 +0000 (02:12 +0000)]
Merge "mips msa vp8 temporal filter optimization"

9 years agoupdate libyuv to r1456
James Zern [Fri, 24 Jul 2015 23:54:51 +0000 (16:54 -0700)]
update libyuv to r1456

picks up build warning fixes for visual studio 2015

Change-Id: Idea85fa70d1aeb2a46ea355b87fe41ec5b2b9520

9 years agoMerge "Add dynamic range notes to vp9_vector_var_c"
Jingning Han [Sat, 1 Aug 2015 01:01:37 +0000 (01:01 +0000)]
Merge "Add dynamic range notes to vp9_vector_var_c"

9 years agoadd vp9_vector_var_neon
James Zern [Fri, 31 Jul 2015 02:46:55 +0000 (19:46 -0700)]
add vp9_vector_var_neon

~50-60% faster depending on the width

Change-Id: I9d007cfa10b9aaa2169c8c009d95522df6123a92

9 years agoMerge "Turn off simple_model_rd_from_var at speed 4."
Aℓex Converse [Fri, 31 Jul 2015 23:51:01 +0000 (23:51 +0000)]
Merge "Turn off simple_model_rd_from_var at speed 4."

9 years agoAdd dynamic range notes to vp9_vector_var_c
Jingning Han [Fri, 31 Jul 2015 23:41:51 +0000 (16:41 -0700)]
Add dynamic range notes to vp9_vector_var_c

Change-Id: If536ad31046ecd9e2ecd9c21f52f8192c8153ad7

9 years agoUse precise header files in inverse transform msa implementations
Jingning Han [Fri, 31 Jul 2015 17:53:25 +0000 (10:53 -0700)]
Use precise header files in inverse transform msa implementations

Change-Id: Ie8a79d9e2837842c3f60776b661cd42782b108d5

9 years agoMerge "VP9_COPY_CONVOLVE_SSE2 optimization"
James Zern [Fri, 31 Jul 2015 23:22:34 +0000 (23:22 +0000)]
Merge "VP9_COPY_CONVOLVE_SSE2 optimization"

9 years agoFactor inverse transform functions into vpx_dsp
Jingning Han [Fri, 31 Jul 2015 01:53:18 +0000 (18:53 -0700)]
Factor inverse transform functions into vpx_dsp

This commit moves the module inverse transform functions from vp9
to vpx_dsp folder. The hybrid transform wrapper functions stay in
the vp9 folder, since it involves codec-specific data structures.

Change-Id: Ib066367c953d3d024c73ba65157bbd70a95c9ef8

9 years agoTurn off simple_model_rd_from_var at speed 4.
Alex Converse [Fri, 31 Jul 2015 22:50:17 +0000 (15:50 -0700)]
Turn off simple_model_rd_from_var at speed 4.

This got erroneously changed during the refactor. This fixes
SvcTest.TwoPassEncode2TemporalLayersWithMultipleFrameContextsAndTiles.

Change-Id: Ifa5ab0e098396c5e2d10478db87df256eadfa4c7

9 years agoMerge changes Iecdbbc34,I8b4db93f
James Zern [Fri, 31 Jul 2015 22:22:48 +0000 (22:22 +0000)]
Merge changes Iecdbbc34,I8b4db93f

* changes:
  Android.mk: fix *_rtcd.h deps for armeabi-v7a
  Android.mk: add a dep on vpx_config.asm for x86_64

9 years agoVP9_COPY_CONVOLVE_SSE2 optimization
Scott LaVarnway [Thu, 30 Jul 2015 12:02:04 +0000 (05:02 -0700)]
VP9_COPY_CONVOLVE_SSE2 optimization

This function suffers from a couple problems in small core(tablets):
-The load of the next iteration is blocked by the store of previous iteration
-4k aliasing (between future store and older loads)
-current small core machine are in-order machine and because of it the store will spin the rehabQ until the load is finished
fixed by:
- prefetching 2 lines ahead
- unroll copy of 2 rows of block
- pre-load all xmm regiters before the loop, final stores after the loop
The function is optimized by:
copy_convolve_sse2 64x64 - 16%
copy_convolve_sse2 32x32 - 52%
copy_convolve_sse2 16x16 - 6%
copy_convolve_sse2 8x8 - 2.5%
copy_convolve_sse2 4x4 - 2.7%
credit goes to Tom Craver(tom.r.craver@intel.com) and Ilya Albrekht(ilya.albrekht@intel.com)

Change-Id: I63d3428799c50b2bf7b5677c8268bacb9fc29671

9 years agoMerge "Fix compiler warning in mips/dspr2"
Jingning Han [Fri, 31 Jul 2015 21:29:50 +0000 (21:29 +0000)]
Merge "Fix compiler warning in mips/dspr2"

9 years agoMerge "Compute skippable inside the block_rd_txfm loop."
Aℓex Converse [Fri, 31 Jul 2015 21:19:11 +0000 (21:19 +0000)]
Merge "Compute skippable inside the block_rd_txfm loop."

9 years agoFix compiler warning in mips/dspr2
Jingning Han [Fri, 31 Jul 2015 19:33:35 +0000 (12:33 -0700)]
Fix compiler warning in mips/dspr2

This commit fixes the mix declaration and definition warning when
mips/dspr2 is turned on.

Change-Id: I633d6fe42368b9ac35b106786ebac6969ad53552

9 years agoMerge changes Ic1ce346a,Ic0b4e92c
Aℓex Converse [Fri, 31 Jul 2015 19:05:54 +0000 (19:05 +0000)]
Merge changes Ic1ce346a,Ic0b4e92c

* changes:
  Simplify model_rd_for_sb HBD ifdefs
  Simplify dist_block HBD ifdefs

9 years agoCompute skippable inside the block_rd_txfm loop.
Alex Converse [Fri, 31 Jul 2015 00:39:23 +0000 (17:39 -0700)]
Compute skippable inside the block_rd_txfm loop.

Change-Id: Iaa43aeeb7a2074495e00cdb83bb551c3f13d3ed2

9 years agoMerge "Refactor mips/dspr2 on convolution."
Zoe Liu [Fri, 31 Jul 2015 18:23:19 +0000 (18:23 +0000)]
Merge "Refactor mips/dspr2 on convolution."

9 years agoMerge "Code refactor on InterpKernel"
Zoe Liu [Fri, 31 Jul 2015 18:20:14 +0000 (18:20 +0000)]
Merge "Code refactor on InterpKernel"

9 years agoSimplify model_rd_for_sb HBD ifdefs
Alex Converse [Fri, 31 Jul 2015 17:56:11 +0000 (10:56 -0700)]
Simplify model_rd_for_sb HBD ifdefs

Change-Id: Ic1ce346a053800ae3b2d77178f46e6a388357f6d

9 years agoSimplify dist_block HBD ifdefs
Alex Converse [Fri, 31 Jul 2015 00:52:55 +0000 (17:52 -0700)]
Simplify dist_block HBD ifdefs

Change-Id: Ic0b4e92cbaf813bcca8a8e9052c936c2e025e114

9 years agoMerge "Short circuit rate_block in block_rd_txfm."
Aℓex Converse [Fri, 31 Jul 2015 17:59:22 +0000 (17:59 +0000)]
Merge "Short circuit rate_block in block_rd_txfm."

9 years agoRefactor mips/dspr2 on convolution.
Zoe Liu [Tue, 28 Jul 2015 17:52:24 +0000 (10:52 -0700)]
Refactor mips/dspr2 on convolution.

Change-Id: If59a39d5a92c261537342726f94bb7f7f26dfff3

9 years agoCode refactor on InterpKernel
Zoe Liu [Wed, 22 Jul 2015 17:40:42 +0000 (10:40 -0700)]
Code refactor on InterpKernel

It in essence refactors the code for both the interpolation
filtering and the convolution. This change includes the moving
of all the files as well as the changing of the code from vp9_
prefix to vpx_ prefix accordingly, for underneath architectures:
(1) x86;
(2) arm/neon; and
(3) mips/msa.
The work on mips/drsp2 will be done in a separate change list.

Change-Id: Ic3ce7fb7f81210db7628b373c73553db68793c46

9 years agoGive skip_txfm constants names.
Alex Converse [Thu, 30 Jul 2015 18:52:28 +0000 (11:52 -0700)]
Give skip_txfm constants names.

This is using a define instead of an enum to keep byte packing.

Change-Id: I3abb07c8bfe377e19be4531b624af7b7b4207792

9 years agoShort circuit rate_block in block_rd_txfm.
Alex Converse [Thu, 30 Jul 2015 22:33:47 +0000 (15:33 -0700)]
Short circuit rate_block in block_rd_txfm.

Don't run rate_block (cost_coeffs) if distortion alone is enough to
surpass best_rd.

This decreases 2nd pass runtime on HD at speed 2 by about 2%. There is
zero effect on output if tx_cache is removed.

Change-Id: Ia3b1cc77bfbe6ee988c395fde06c0eb92940b784

9 years agomips msa vp8 temporal filter optimization
Parag Salasakar [Fri, 31 Jul 2015 06:33:19 +0000 (12:03 +0530)]
mips msa vp8 temporal filter optimization

average improvement ~2x-3x

Change-Id: I05593bed583234dc7809aaec6cab82773a29505d

9 years agomips msa vp8 block subtract optimization
Parag Salasakar [Fri, 31 Jul 2015 03:59:10 +0000 (09:29 +0530)]
mips msa vp8 block subtract optimization

average improvement ~2x-3x

Change-Id: I30abf4c92cddcc9e87b7a40d4106076e1ec701c2

9 years agoMerge "mips msa vp8 quantize optimization"
Parag Salasakar [Fri, 31 Jul 2015 03:44:03 +0000 (03:44 +0000)]
Merge "mips msa vp8 quantize optimization"

9 years agoRemove tx cache and speed up tx size selection
Yunqing Wang [Wed, 29 Jul 2015 20:37:41 +0000 (13:37 -0700)]
Remove tx cache and speed up tx size selection

1. The RD scores obtained during the tx size selection were stored in the
tx cache, and used to help make the tx decision for the following frames.
This wasn't used anymore in VP9 encoder. Recovered the related decision
making code from 1.5+ years ago, and borg tests didn't show any quality
gain. This patch removed it to lower the complexity.

2. An optimization was done after the above refactoring. If the tx_mode
is not TX_MODE_SELECT, we only need to test the chosen tx size instead
of all posible tx sizes. This gave a 1.5% average speed gain at speed 2,
and a 1% average speed gain at speed 3.

Change-Id: Id8cd650e066a8cef33829d8c15388a8138adc78c

9 years agoMerge "Convert simple_model_rd_from_var from a speed check to a speed feature."
Aℓex Converse [Thu, 30 Jul 2015 23:04:28 +0000 (23:04 +0000)]
Merge "Convert simple_model_rd_from_var from a speed check to a speed feature."

9 years agoMerge "Exclude vpx intra prediction functions in vp8-only build"
Hui Su [Thu, 30 Jul 2015 22:29:35 +0000 (22:29 +0000)]
Merge "Exclude vpx intra prediction functions in vp8-only build"

9 years agoConvert simple_model_rd_from_var from a speed check to a speed feature.
Alex Converse [Thu, 30 Jul 2015 20:52:02 +0000 (13:52 -0700)]
Convert simple_model_rd_from_var from a speed check to a speed feature.

Change-Id: I8877025e172fff29bc4e270790211463b676b4d7

9 years agoExclude vpx intra prediction functions in vp8-only build
hui su [Thu, 30 Jul 2015 02:43:29 +0000 (19:43 -0700)]
Exclude vpx intra prediction functions in vp8-only build

Currently vp8 is not using the intra prediction functions in vpx_dsp.

Change-Id: I1522b5f5cb12a81999fb126cf7c62c70259e7a52

9 years agoAndroid.mk: fix *_rtcd.h deps for armeabi-v7a
James Zern [Wed, 29 Jul 2015 23:07:05 +0000 (16:07 -0700)]
Android.mk: fix *_rtcd.h deps for armeabi-v7a

strip '.neon' so *_rtcd.h depends on the correct file

Change-Id: Iecdbbc34c9ce5c6d0a4b466332d52f4e6a0cb128