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
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
Parag Salasakar [Fri, 31 Jul 2015 03:44:03 +0000 (03:44 +0000)]
Merge "mips msa vp8 quantize optimization"
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
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."
Hui Su [Thu, 30 Jul 2015 22:29:35 +0000 (22:29 +0000)]
Merge "Exclude vpx intra prediction functions in vp8-only build"
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
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
Parag Salasakar [Thu, 30 Jul 2015 05:26:40 +0000 (10:56 +0530)]
mips msa vp8 quantize optimization
average improvement ~2x-3x
Change-Id: I6fc37191bf9cb5a67e1af9787d0d27659c17bdba
Alex Converse [Thu, 30 Jul 2015 19:36:57 +0000 (12:36 -0700)]
Cleanup rdcost_block_args
Change-Id: I9d613cbe9e76b5dd15e935878ef9fd04521690ba
Aℓex Converse [Thu, 30 Jul 2015 19:37:28 +0000 (19:37 +0000)]
Merge "Clean up some casts."
Jingning Han [Thu, 30 Jul 2015 05:37:53 +0000 (05:37 +0000)]
Merge "Cosmetics - Fix header file order in unit tests"
Jingning Han [Wed, 29 Jul 2015 21:51:36 +0000 (14:51 -0700)]
Cosmetics - Fix header file order in unit tests
Change-Id: I9582a8d74990125b71e8fe620f7f3f2585a30798
Parag Salasakar [Thu, 30 Jul 2015 02:44:42 +0000 (08:14 +0530)]
mips msa vp8 fdct optimization
average improvement ~2x-4x
Change-Id: Id0bc600440f7ef53348f585ebadb1ac6869e9a00
Parag Salasakar [Thu, 30 Jul 2015 02:34:06 +0000 (02:34 +0000)]
Merge "mips msa vp8 post proc optimization"
Aℓex Converse [Thu, 30 Jul 2015 01:06:08 +0000 (01:06 +0000)]
Merge "Comment zcoeff_blk."
Alex Converse [Wed, 29 Jul 2015 23:53:33 +0000 (16:53 -0700)]
Comment zcoeff_blk.
Change-Id: Iefc2eb78e71472ecf51802ec59ff32caef4bd0f4
Yaowu Xu [Wed, 29 Jul 2015 23:27:34 +0000 (16:27 -0700)]
Add const to a variable declaration
Change-Id: Idf572c22a87098665f5179dc3212a06d9a85a342
Yaowu Xu [Wed, 29 Jul 2015 23:23:14 +0000 (16:23 -0700)]
Fix a typo
Change-Id: Ief8eea8fe6bef139d1e94f8d6dfac5a44efe785d
Alex Converse [Fri, 24 Jul 2015 21:59:03 +0000 (14:59 -0700)]
Clean up some casts.
Change-Id: I264ca534cd7d4755906e20aea47e7a2523bca611
Parag Salasakar [Wed, 29 Jul 2015 04:10:26 +0000 (09:40 +0530)]
mips msa vp8 post proc optimization
average improvement ~2x-4x
Change-Id: I93abc15389649c169bb8b69127c0b95407d34692
Parag Salasakar [Wed, 29 Jul 2015 04:00:41 +0000 (04:00 +0000)]
Merge "mips msa vp8 filter by weight optimization"
James Zern [Wed, 29 Jul 2015 00:47:09 +0000 (00:47 +0000)]
Merge "add vp9_block_error_fp_neon"
Hui Su [Wed, 29 Jul 2015 00:38:48 +0000 (00:38 +0000)]
Merge "Replace prefix vp9_ with vpx_ for intra prediction functions"
Jingning Han [Wed, 29 Jul 2015 00:07:31 +0000 (00:07 +0000)]
Merge "Replace vp9_ prefix in 2D-DCT functions with vpx_"
Jingning Han [Wed, 29 Jul 2015 00:06:56 +0000 (00:06 +0000)]
Merge "Remove vp9_dct.h file"
Jingning Han [Wed, 29 Jul 2015 00:06:37 +0000 (00:06 +0000)]
Merge "Move DC only forward 2D-DCT functions to vpx_dsp"
Jingning Han [Tue, 28 Jul 2015 22:57:40 +0000 (15:57 -0700)]
Replace vp9_ prefix in 2D-DCT functions with vpx_
Clean up the forward 2D-DCT function names in vpx_dsp.
Change-Id: I3117978596d198b690036e7eb05fe429caf3bc25
Jingning Han [Tue, 28 Jul 2015 22:25:05 +0000 (15:25 -0700)]
Remove vp9_dct.h file
The forward 32x32 2D-DCT functions are aligned in vpx_dsp folder.
The vp9_dct.h file is not effectively used now.
Change-Id: Ie7946b6fdd784b8e91496242337bc9002c75c281
Aℓex Converse [Tue, 28 Jul 2015 21:59:33 +0000 (21:59 +0000)]
Merge "Remove branch in inner loop of foreach_transformed_block_in_plane()"
Aℓex Converse [Tue, 28 Jul 2015 21:59:02 +0000 (21:59 +0000)]
Merge changes If196d9e5,Ib669d572
* changes:
Simplify is_skippable to point straight to eobs.
Don't initialize extra context tree buffers for 4x8 and 8x4.
Jingning Han [Tue, 28 Jul 2015 21:42:25 +0000 (14:42 -0700)]
Move DC only forward 2D-DCT functions to vpx_dsp
This completes the forward transform functions layout refactoring.
Change-Id: I996fb0fb795f41e2040f7b21db985774098aedbd
James Zern [Tue, 28 Jul 2015 21:50:35 +0000 (21:50 +0000)]
Merge "build/make/Android.mk: support TARGET_ARCH_ABI=x86_64"
Johann [Tue, 28 Jul 2015 21:00:32 +0000 (14:00 -0700)]
Don't use 'h' for functions using x86inc.asm
In newer version of x86inc.asm 'h' is used as a modifier for register
names.
Change-Id: Ie5b9dd2f91ecdc8f6f18b2701b6dc23042b604e4
Hui Su [Tue, 28 Jul 2015 20:41:01 +0000 (20:41 +0000)]
Merge "Move intra prediction functions from vp9/common/ to vpx_dsp/"
Jingning Han [Tue, 28 Jul 2015 20:36:59 +0000 (20:36 +0000)]
Merge "Factor 32x32 fwd DCT to vpx_dsp folder"
Jingning Han [Mon, 27 Jul 2015 23:05:15 +0000 (16:05 -0700)]
Factor 32x32 fwd DCT to vpx_dsp folder
Move the 32x32 2D-DCT implementations from vp9/ to vpx_dsp/.
Change-Id: Id3980696f8b69906ff7a59ff9fb2b9013d60047d
Frank Galligan [Tue, 28 Jul 2015 16:05:41 +0000 (09:05 -0700)]
Fix dspr2 build.
Change-Id: I18895c29d6db872d033b3874de9dcd9501d0c10e
James Zern [Sat, 25 Jul 2015 19:27:56 +0000 (12:27 -0700)]
add vp9_block_error_fp_neon
~60-70% faster depending on the block size
Change-Id: Icdbaa9977a91a63cbcc6ead0cf19d5a2af7f27e1
Parag Salasakar [Tue, 28 Jul 2015 02:46:34 +0000 (08:16 +0530)]
mips msa vp8 filter by weight optimization
average improvement ~3x-5x
Change-Id: Ia808ae56b118e0e1b293901447aa5a0f597b405b
Parag Salasakar [Tue, 28 Jul 2015 02:27:31 +0000 (02:27 +0000)]
Merge "mips msa vp8 recon intra optimization"
Yunqing Wang [Tue, 28 Jul 2015 01:25:14 +0000 (01:25 +0000)]
Merge "Remove tx_select_threshes"
Jingning Han [Mon, 27 Jul 2015 21:56:43 +0000 (14:56 -0700)]
Move forward dct sse2 header file to vpx_dsp
Change-Id: Iba03852ce778c956200818e3473cfb2b48cf8d8e
hui su [Tue, 21 Jul 2015 16:39:46 +0000 (09:39 -0700)]
Replace prefix vp9_ with vpx_ for intra prediction functions
Change-Id: I8ae6fb586f8d5d018ace228df11714f82b085076
hui su [Sun, 19 Jul 2015 22:02:56 +0000 (15:02 -0700)]
Move intra prediction functions from vp9/common/ to vpx_dsp/
Change-Id: I64edc26cf4aab050c83f2d393df6250628ad43b8
Jingning Han [Mon, 27 Jul 2015 19:05:33 +0000 (12:05 -0700)]
Use common coefficient definition in neon idct implementations
Replace the duplicate coefficient definition in neon implementations
of inverse transform with those from vpx_dsp/txfm_common.h
Change-Id: I4cd9bd9569ab1793dfdbb6f16d80bcb581599f0d
Yunqing Wang [Mon, 27 Jul 2015 18:58:39 +0000 (11:58 -0700)]
Remove tx_select_threshes
Removed unused tx_select_threshes and tx_select_diff.
Change-Id: I5e9e7ad170056efe14b5f071e94d0c5a36e4a34c
Jingning Han [Fri, 24 Jul 2015 17:27:23 +0000 (10:27 -0700)]
Replace vp9_idct.h for precise dependency
This commit replaces vp9_idct.h with txfm_common.h in many SIMD
implementation files for precise file dependency.
Change-Id: If73dd726bb16537e7494f28538b0a169810f9756
Jingning Han [Thu, 23 Jul 2015 23:35:44 +0000 (16:35 -0700)]
Refactor vp9_idct.h file
Separate the common coefficient constant into vpx_dsp/txfm_common.h.
Move the SSE2 macro definitions to vpx_dsp/x86/txfm_common_sse2.h.
This clears the use case of vp9_idct.h in vpx_dsp folder.
Change-Id: I319735a2abf42888e5080ac14cfbcde34be7b121
Parag Salasakar [Sat, 25 Jul 2015 07:02:26 +0000 (12:32 +0530)]
mips msa vp8 recon intra optimization
average improvement ~3x-5x
Change-Id: I73306863e9bf172d5adc06b8dd54e43985d1e063
James Zern [Fri, 24 Jul 2015 21:24:20 +0000 (14:24 -0700)]
build/make/Android.mk: support TARGET_ARCH_ABI=x86_64
requires r10e or newer:
Android NDK, Revision 10e (May 2015)
...
Other bug fixes:
...
- Fixed .asm support for ABI x86_64.
Change-Id: I51ec9a5f77c982b7412d922e896348a83ae2d7d6
Marco Paniconi [Fri, 24 Jul 2015 22:23:10 +0000 (22:23 +0000)]
Merge "Dynamic resize for real-time: reference scaling."
Jingning Han [Thu, 23 Jul 2015 21:55:05 +0000 (14:55 -0700)]
Remove redundant function definitions in vp9_dct_sse2.h
Change-Id: I283d364a4e65ca9bf6ff581da1d0b498433c5402
Jingning Han [Thu, 23 Jul 2015 21:41:23 +0000 (14:41 -0700)]
Remove vp9_dct.h from fwd_txfm_impl_sse2 header file
Change-Id: Ib3a4814fdb9d69cf6cc23bdd208f9bc9e7972edc
Jingning Han [Fri, 24 Jul 2015 21:11:33 +0000 (21:11 +0000)]
Merge "Move msa implementations of 2D-DCT to vpx_dsp"
Jingning Han [Wed, 22 Jul 2015 18:53:21 +0000 (11:53 -0700)]
Move msa implementations of 2D-DCT to vpx_dsp
Refactor and clean up the msa transform related code layout.
Change-Id: Ic5048bd3d62a6046589817da745370ea89448e44
Parag Salasakar [Fri, 24 Jul 2015 18:16:23 +0000 (18:16 +0000)]
Merge "mips msa vp8 bilinear filter optimization"
Alex Converse [Fri, 24 Jul 2015 17:32:09 +0000 (10:32 -0700)]
Remove branch in inner loop of foreach_transformed_block_in_plane()
Change-Id: Ib14d09376a9ce4fa5f541264e5c335aceb71380a
Alex Converse [Fri, 24 Jul 2015 17:35:44 +0000 (10:35 -0700)]
Simplify is_skippable to point straight to eobs.
Change-Id: If196d9e5c7a15ee7d988ee2ecbf155a54d59b480
Alex Converse [Fri, 24 Jul 2015 17:35:10 +0000 (10:35 -0700)]
Don't initialize extra context tree buffers for 4x8 and 8x4.
Change-Id: Ib669d572654f24fd43410a9399a8b609e87f846a
Hui Su [Fri, 24 Jul 2015 17:40:37 +0000 (17:40 +0000)]
Merge "Code cleanup in vp9_encode_block_intra"
Aℓex Converse [Fri, 24 Jul 2015 17:38:45 +0000 (17:38 +0000)]
Merge "Allocate four |zcoeff_blk| for sub8x8 contexts."
Aℓex Converse [Fri, 24 Jul 2015 17:38:32 +0000 (17:38 +0000)]
Merge "Allocate eobs array per txblock and not per pixel."
Parag Salasakar [Fri, 24 Jul 2015 03:51:35 +0000 (09:21 +0530)]
mips msa vp8 bilinear filter optimization
average improvement ~3x-4x
Change-Id: I8c0b3d5c86c9eb4f802b87c971864d2cfceeb7cc
Parag Salasakar [Fri, 24 Jul 2015 03:43:37 +0000 (03:43 +0000)]
Merge "mips msa vp8 copy mem optimization"
Marco [Fri, 10 Jul 2015 17:28:51 +0000 (10:28 -0700)]
Dynamic resize for real-time: reference scaling.
Avoid scaling the references if they have already been scaled.
Change only affects 1 pass non-svc mode for now.
Change-Id: I204f4079c026cba7adce7a7f855d072f6139ccec
Alex Converse [Thu, 23 Jul 2015 22:43:48 +0000 (15:43 -0700)]
Allocate four |zcoeff_blk| for sub8x8 contexts.
The RD and load save/code grabs it as groups of four. In practice there
is no change to physical allocations becaquse this is backed by a 16-byte
memalign.
Change-Id: I01e89769872300e23227e03dd24a6e229f482025
Alex Converse [Thu, 23 Jul 2015 22:07:35 +0000 (15:07 -0700)]
Allocate eobs array per txblock and not per pixel.
Change-Id: I5368f5fc7283420c38d5bd85e3077b761d94ace6
Jingning Han [Thu, 23 Jul 2015 21:21:07 +0000 (21:21 +0000)]
Merge "Add x86_64 flag to guard fwd_txfm_ssse3.asm in make file"
Jingning Han [Thu, 23 Jul 2015 21:19:40 +0000 (21:19 +0000)]
Merge "Fix vp9_psnrhvs.c build error"
Jingning Han [Thu, 23 Jul 2015 18:31:45 +0000 (11:31 -0700)]
Fix vp9_psnrhvs.c build error
Add vpx_dsp_rtcd.h to the header file list. The od_bin_fdct8x8()
here depends on forward 8x8 2D-DCT.
Change-Id: I1d71edc71f07069808823d2445c1cafd285e1b94
Jingning Han [Thu, 23 Jul 2015 18:03:55 +0000 (11:03 -0700)]
Add x86_64 flag to guard fwd_txfm_ssse3.asm in make file
This fixes a VS build error. Fix by @johannkoenig.
Change-Id: I6e71435d70ae56079db7328e4c7915416ece8fda
Jingning Han [Wed, 22 Jul 2015 17:52:07 +0000 (10:52 -0700)]
Refactor forward/inverse transform msa implementations
This commit factors out common macro definitions from the forward
and inverse transform implementations into vpx_dsp. It removes
the duplicate macro definitions from encoder and decoder folders.
Change-Id: I92301acbd3317075e9c5f03328a25abb123bca78
Parag Salasakar [Thu, 23 Jul 2015 04:59:40 +0000 (10:29 +0530)]
mips msa vp8 copy mem optimization
average improvement ~2x-4x
Change-Id: I3af3ecced96c5b8e0cb811256e5089e28fe013a2
James Zern [Thu, 23 Jul 2015 02:08:50 +0000 (02:08 +0000)]
Merge "mips/dspr2: fix vp9-highbitdepth build"
Jingning Han [Thu, 23 Jul 2015 01:15:52 +0000 (01:15 +0000)]
Merge "Take out VP9_ prefix from mips/msa macros"
Parag Salasakar [Thu, 23 Jul 2015 01:03:39 +0000 (01:03 +0000)]
Merge "mips msa vp8 sixtap filter optimization"
Yaowu Xu [Thu, 23 Jul 2015 00:23:39 +0000 (00:23 +0000)]
Merge "Added TODOs for two unused #defines"
Jingning Han [Wed, 22 Jul 2015 16:39:17 +0000 (09:39 -0700)]
Take out VP9_ prefix from mips/msa macros
The msa macros are locally used and should not be named with VP9
prefix.
Change-Id: I2c9c746c4027383c16b9ab12b77b4e70e7e7d206
Jingning Han [Wed, 22 Jul 2015 23:47:03 +0000 (23:47 +0000)]
Merge "Factor forward 2D-DCT transforms into vpx_dsp"
Yaowu Xu [Mon, 20 Jul 2015 17:33:48 +0000 (10:33 -0700)]
Added TODOs for two unused #defines
Change-Id: I70407e9350147d6585667f157d9cfe78c6251d26
Jingning Han [Tue, 21 Jul 2015 18:56:36 +0000 (11:56 -0700)]
Factor forward 2D-DCT transforms into vpx_dsp
This commit factors the 4x4, 8x8, and 16x16 2D-DCT forward
transform operations into vpx_dsp folder.
Change-Id: I084b117b79c0925edcbcabb93f62b9f4bf8dbe7d
James Zern [Wed, 22 Jul 2015 18:54:39 +0000 (11:54 -0700)]
mips/dspr2: fix vp9-highbitdepth build
vp9_itrans*_dspr2.c aren't necessary for high bitdepth builds and
notably vp9_itrans8_dspr2.c fails in various configurations using a
codesourcery toolchain:
vp9_itrans8_dspr2.c:31:5: can't find a register in class 'GR_REGS' while reloading 'asm'
Change-Id: I2ac76203e65cc643cb835ab50e95701896d92a1a
Scott LaVarnway [Wed, 22 Jul 2015 18:39:11 +0000 (18:39 +0000)]
Merge "Delete ChangeFilterWorks test"
hui su [Fri, 17 Jul 2015 00:37:16 +0000 (17:37 -0700)]
Code cleanup in vp9_encode_block_intra
Change-Id: Ie4d958b26e586db218f8ee95d5df4bf11f2345a1
Scott LaVarnway [Wed, 22 Jul 2015 16:05:17 +0000 (09:05 -0700)]
Delete ChangeFilterWorks test
This test places 128 in positions that would not be found
in the VP9 filter tables. The ssse3 code packs this table
into chars and uses the pmaddubsw instruction, which treats
the value as signed. The ssse3 code checks for 128 in
position 3, skipping the ssse3 code if found, and calls
vp9_convolve8_c(). vp9_convolve8_c() is also used for scaling.
ChangeFilterWorks breaks the ssse3 scaling code found in other
commits.
Change-Id: I1f5a76834bc35180b9094c48f9421bdb19d3d1cb
Jim Bankoski [Tue, 14 Jul 2015 16:19:01 +0000 (09:19 -0700)]
Fill buffer speed up
Eliminates the byte by byte read from bool decoder, by reading
in a size_t and then shifting it into place.
Change-Id: I0ed8c7b6f942847e79cc90105dc1d2b5b3deb0d6
Jingning Han [Tue, 21 Jul 2015 16:31:49 +0000 (16:31 +0000)]
Merge "Clean up vp9_dct32x32_sse2_impl.h header files"
Parag Salasakar [Tue, 21 Jul 2015 06:07:00 +0000 (06:07 +0000)]
Merge "mips msa vp9 avg subpel variance optimization rebased"
Jingning Han [Tue, 21 Jul 2015 04:59:13 +0000 (04:59 +0000)]
Merge "Arrange 1D forward transform order in vp9_dct.c"
Jingning Han [Tue, 21 Jul 2015 04:57:53 +0000 (04:57 +0000)]
Merge "Remove redundant function definitions from vp9_dct.h"
Yaowu Xu [Tue, 21 Jul 2015 04:10:20 +0000 (04:10 +0000)]
Merge "vpx_dsp/bitwriter_buffer.h: vp9_ -> vpx_"
Yaowu Xu [Tue, 21 Jul 2015 04:10:07 +0000 (04:10 +0000)]
Merge "vpx_dsp/bitwriter.h: vp9_->vpx_"
Yaowu Xu [Tue, 21 Jul 2015 04:09:52 +0000 (04:09 +0000)]
Merge "vpx_dsp/prob.h: vp9_ -> vpx_"
Yaowu Xu [Tue, 21 Jul 2015 04:09:37 +0000 (04:09 +0000)]
Merge "vpx_dsp/bitreader_buffer.h: vp9_->vpx_"
Yaowu Xu [Tue, 21 Jul 2015 04:09:07 +0000 (04:09 +0000)]
Merge "vpx_dsp/bitreader.h: vp9_->vpx_"
Yaowu Xu [Tue, 21 Jul 2015 01:24:52 +0000 (01:24 +0000)]
Merge "Fix bug in setting sf->use_square_partition_only."
Yaowu Xu [Mon, 20 Jul 2015 21:24:14 +0000 (14:24 -0700)]
vpx_dsp/bitwriter_buffer.h: vp9_ -> vpx_
Change-Id: I0ac7beaa160a6c2a60a019f6b8ce85e6537bed7d
Yaowu Xu [Mon, 20 Jul 2015 21:13:38 +0000 (14:13 -0700)]
vpx_dsp/bitwriter.h: vp9_->vpx_
changes prefix vp9_ to vpx_ for non codec specific functions and
data structures.
Change-Id: I91a21548e39bd24d2c7caaaa223ae47240bb78c8
Yaowu Xu [Mon, 20 Jul 2015 21:04:21 +0000 (14:04 -0700)]
vpx_dsp/prob.h: vp9_ -> vpx_
change prefix vp9_ to vpx_ for non codec specific functions and data
structures.
Change-Id: I97c7e6422eceea99212b93f4942bc2187763a07c