Parag Salasakar
814e1346a6
Merge "mips msa vpx convolve optimzation"
2015-08-04 04:30:22 +00:00
Parag Salasakar
cc4c5de22f
Merge "mips msa vpx subpel variance optimization"
2015-08-04 04:30:11 +00:00
Jingning Han
bfad9d2fe6
Move inverse transfrom dspr2 functions from vp9 to vpx_dsp
...
Change-Id: Ia9cf7c31cab4ba3dd6b9bb668c4b3e84bd55cf69
2015-08-03 11:59:50 -07:00
Jingning Han
92b08f516a
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
2015-08-03 10:53:47 -07:00
Jingning Han
a68356202d
Remove vpx_ prefix from the dspr2 file name in vpx_dsp/mips
...
Make it consistent with other formats.
Change-Id: I28f0d05ff7c5bf2b815989b3f1bd6c6b25608677
2015-08-03 09:59:14 -07:00
Scott LaVarnway
8f6b943100
VPX: Add rtcd support for scaling.
...
Change-Id: If34bfb0d918967445aea7dc30cd7b55ebfedb1f2
2015-08-03 09:43:34 -07:00
Jingning Han
d10fc5af8f
Merge "Add vpx_dsp_rtcd.h to inv_txfm_sse2.c"
2015-08-03 16:03:09 +00:00
Jingning Han
b096db5ad4
Merge "Remove vp9_common.h from idct16x16_neon.c"
2015-08-03 16:03:02 +00:00
Parag Salasakar
1579bb88c5
mips msa vpx convolve optimzation
...
Removed redundant clip/saturate code from 2tap filter functions
average improvement 10%-40%
Change-Id: I1dafb5f7d2ce7a021d883d8af30fb93cd9ace173
2015-08-03 14:03:40 +05:30
Parag Salasakar
9b375871db
mips msa vpx subpel variance optimization
...
Removed redundant clip/saturate code from 2tap filter functions
average improvement 20%-40%
Change-Id: I362540b0c7d5d3d69932c39d61b7d2a44da533d2
2015-08-03 13:00:55 +05:30
Jingning Han
da7dc59837
Merge "Factor out mips/msa inverse transform implementations"
2015-08-03 03:18:39 +00:00
Jingning Han
0fcfc613c6
Merge "Add x86inc flag guard to inv_txfm_sse2.asm"
2015-08-02 21:56:09 +00:00
Jingning Han
6eabf229e2
Remove vp9_common.h from idct16x16_neon.c
...
Change-Id: I3df35a99900ef8ce549d315866849a10db1a4c7b
2015-08-02 09:57:25 -07:00
Jingning Han
4f7a7d29fa
Add x86inc flag guard to inv_txfm_sse2.asm
...
Fix the VS build failure.
Change-Id: I4fb9d1c83980c4b52d5a848a9cb02ec72493dccb
2015-08-02 08:43:51 -07:00
Jingning Han
80ae856c8b
Add vpx_dsp_rtcd.h to inv_txfm_sse2.c
...
Change-Id: Ibab434fb4bd6da02dba087582ed74811f555c3ed
2015-08-02 08:25:13 -07:00
James Zern
22a8474fe7
vpx_convolve_copy_sse2: fix win64
...
xmm6-7 need to be stored
Change-Id: I6c51559598d335946ec91be6246b49589c63b724
2015-08-01 11:45:49 -07:00
Jingning Han
44849516d4
Factor out mips/msa inverse transform implementations
...
Move mips/msa inverse transform implementations from vp9 folder to
vpx_dsp.
Change-Id: Ic4cf3f05247c3c63db7b532a0e5000017a962391
2015-08-01 09:25:12 -07:00
Jingning Han
b4c7d0523a
Merge "Factor inverse transform functions into vpx_dsp"
2015-08-01 16:20:24 +00:00
Jingning Han
e8b133c79c
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
2015-07-31 16:21:00 -07:00
Scott LaVarnway
a5e97d874b
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
2015-07-31 14:51:51 -07:00
Zoe Liu
7cfdc00337
Refactor mips/dspr2 on convolution.
...
Change-Id: If59a39d5a92c261537342726f94bb7f7f26dfff3
2015-07-31 10:27:42 -07:00
Zoe Liu
7186a2dd86
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
2015-07-31 10:27:33 -07:00
hui su
5fddefbced
Exclude vpx intra prediction functions in vp8-only build
...
Currently vp8 is not using the intra prediction functions in vpx_dsp.
Change-Id: I1522b5f5cb12a81999fb126cf7c62c70259e7a52
2015-07-30 13:49:47 -07:00
Hui Su
4cbf36b105
Merge "Replace prefix vp9_ with vpx_ for intra prediction functions"
2015-07-29 00:38:48 +00:00
Jingning Han
d12a4a825c
Merge "Replace vp9_ prefix in 2D-DCT functions with vpx_"
2015-07-29 00:07:31 +00:00
Jingning Han
fc18cf7a11
Merge "Move DC only forward 2D-DCT functions to vpx_dsp"
2015-07-29 00:06:37 +00:00
Jingning Han
4b5109cd73
Replace vp9_ prefix in 2D-DCT functions with vpx_
...
Clean up the forward 2D-DCT function names in vpx_dsp.
Change-Id: I3117978596d198b690036e7eb05fe429caf3bc25
2015-07-28 16:06:44 -07:00
Jingning Han
d19033fa4e
Move DC only forward 2D-DCT functions to vpx_dsp
...
This completes the forward transform functions layout refactoring.
Change-Id: I996fb0fb795f41e2040f7b21db985774098aedbd
2015-07-28 14:52:30 -07:00
Johann
124ada514b
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
2015-07-28 14:00:32 -07:00
Hui Su
fe7cabe8b6
Merge "Move intra prediction functions from vp9/common/ to vpx_dsp/"
2015-07-28 20:41:01 +00:00
Jingning Han
a6a4659bea
Factor 32x32 fwd DCT to vpx_dsp folder
...
Move the 32x32 2D-DCT implementations from vp9/ to vpx_dsp/.
Change-Id: Id3980696f8b69906ff7a59ff9fb2b9013d60047d
2015-07-28 11:13:41 -07:00
Jingning Han
8eefb36ca9
Move forward dct sse2 header file to vpx_dsp
...
Change-Id: Iba03852ce778c956200818e3473cfb2b48cf8d8e
2015-07-27 14:59:57 -07:00
hui su
4013645353
Replace prefix vp9_ with vpx_ for intra prediction functions
...
Change-Id: I8ae6fb586f8d5d018ace228df11714f82b085076
2015-07-27 13:42:06 -07:00
hui su
7971846a5e
Move intra prediction functions from vp9/common/ to vpx_dsp/
...
Change-Id: I64edc26cf4aab050c83f2d393df6250628ad43b8
2015-07-27 13:38:16 -07:00
Jingning Han
5ebc8febdc
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
2015-07-26 08:26:32 -07:00
Jingning Han
252ec59821
Remove vp9_dct.h from fwd_txfm_impl_sse2 header file
...
Change-Id: Ib3a4814fdb9d69cf6cc23bdd208f9bc9e7972edc
2015-07-24 21:11:44 +00:00
Jingning Han
9aaf523ace
Move msa implementations of 2D-DCT to vpx_dsp
...
Refactor and clean up the msa transform related code layout.
Change-Id: Ic5048bd3d62a6046589817da745370ea89448e44
2015-07-24 13:24:25 -07:00
Jingning Han
d4657a7efb
Merge "Add x86_64 flag to guard fwd_txfm_ssse3.asm in make file"
2015-07-23 21:21:07 +00:00
Jingning Han
5ddfa101c9
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
2015-07-23 12:55:50 -07:00
Jingning Han
d341f843e2
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
2015-07-23 11:20:30 -07:00
Jingning Han
f0f00251ea
Merge "Factor forward 2D-DCT transforms into vpx_dsp"
2015-07-22 23:47:03 +00:00
Jingning Han
b67821f37b
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
2015-07-22 15:48:17 -07:00
Jim Bankoski
0fe589f21e
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
2015-07-21 12:54:44 -07:00
Parag Salasakar
2cdd3beac9
Merge "mips msa vp9 avg subpel variance optimization rebased"
2015-07-21 06:07:01 +00:00
Yaowu Xu
5f5091636e
vpx_dsp/bitwriter_buffer.h: vp9_ -> vpx_
...
Change-Id: I0ac7beaa160a6c2a60a019f6b8ce85e6537bed7d
2015-07-20 18:13:06 -07:00
Yaowu Xu
817be1d214
vpx_dsp/bitwriter.h: vp9_->vpx_
...
changes prefix vp9_ to vpx_ for non codec specific functions and
data structures.
Change-Id: I91a21548e39bd24d2c7caaaa223ae47240bb78c8
2015-07-20 18:13:05 -07:00
Yaowu Xu
70ad668056
vpx_dsp/prob.h: vp9_ -> vpx_
...
change prefix vp9_ to vpx_ for non codec specific functions and data
structures.
Change-Id: I97c7e6422eceea99212b93f4942bc2187763a07c
2015-07-20 18:13:04 -07:00
Yaowu Xu
cbce003712
vpx_dsp/bitreader_buffer.h: vp9_->vpx_
...
Replace vp9_ in names to vpx_ for non codec specific functions.
Change-Id: Ib9e3b86cb0728d10b239f3493ceda18cc2c34e0f
2015-07-20 18:13:03 -07:00
Yaowu Xu
bf82514b54
vpx_dsp/bitreader.h: vp9_->vpx_
...
Replace vp9_ in names to vpx_ as they are not codec specific.
Change-Id: I2e583aa63dee769353ada4b42417aa15c4074ebb
2015-07-20 18:06:31 -07:00
Yaowu Xu
1fcef81cb0
Remove vp9_ prefix from bit writer files
...
Change-Id: I07647c7482b9ec498fbad3a9c9901f72b2336500
2015-07-20 11:20:03 -07:00
Yaowu Xu
c5ad31e518
Move bit writer files to vpx_dsp/
...
Change-Id: Id27e0007a0feac821ca66bcecbf3a723305da82d
2015-07-20 11:20:02 -07:00
Yaowu Xu
345ff1a2f2
Merge "Removed vp9_ prefix from vpx_dsp/bitreader file names"
2015-07-20 17:12:08 +00:00
Yunqing Wang
f65473c036
Merge "Migrate quantization functions from vp9/ to vpx_dsp/"
2015-07-20 16:20:07 +00:00
Yaowu Xu
87d2c3c063
Removed vp9_ prefix from vpx_dsp/bitreader file names
...
Change-Id: I0426126d0a65f13f9250983e44cc366b1b1a9c4a
2015-07-20 08:57:35 -07:00
Yaowu Xu
b0e6811ace
Merge "Move bit reader files to vpx_dsp"
2015-07-20 14:52:50 +00:00
Yunqing Wang
38f1fbbb75
Migrate quantization functions from vp9/ to vpx_dsp/
...
The following quantization functions were moved:
vp9_quantize_b
vp9_quantize_b_32x32
vp9_highbd_quantize_b
vp9_highbd_quantize_b_32x32
vp9_quantize_dc
vp9_quantize_dc_32x32
vp9_highbd_quantize_dc
vp9_highbd_quantize_dc_32x32
The purpose of doing that was to allow these functions to be shared
by multiple codecs.
Change-Id: Id8ab939f283353cdd07bd930d47db3d932a5d87f
2015-07-17 16:38:14 -07:00
Jingning Han
2992739b5d
Rename loop filter function from vp9_ to vpx_
...
Change-Id: I6f424bb8daec26bf8482b5d75dd9b0e45c11a665
2015-07-17 15:55:02 -07:00
Yaowu Xu
97279ed2e2
Move bit reader files to vpx_dsp
...
Change-Id: Ib1cb1fbe92a39ff5312cee069559be6d3ea458d0
2015-07-17 15:38:40 -07:00
Jingning Han
4735edd00f
Migrate mips dspr2 loop filter implementation from vp9 to vpx
...
This commit moves the loop filter dspr2 implementation from vp9 to
vpx_dsp directory. It also fixes header file format issues.
Change-Id: I09203ed4bd267d7fd76bb79a6ee84a37646206b2
2015-07-17 11:51:05 -07:00
Jingning Han
b8ff84b7f8
Create common dspr2 header file in vpx_dsp
...
Move the common prefetch_load/store in dspr2 to header file in
vpx_dsp/mips.
Change-Id: I8acc22970f2a0ef97d73061e39a3ae65c6955eac
2015-07-17 09:54:02 -07:00
Jingning Han
6e5ab70a93
Take out unnecessary header file from highbd_loopfilter_sse2
...
The dependency on vp9_loopfilter.h is not needed.
Change-Id: Ic0583c43d3d63f19cef06cf9d8e5c8031601be6a
2015-07-16 18:15:02 -07:00
Jingning Han
b76fd48a99
Remove vp9_ prefix from static function names in loopfilter_16_msa
...
Remove the codec-specific global prefix from static function names.
Change-Id: I61b2d5f2b7b5fb9dc8bc357d5493ea44df8ab19d
2015-07-16 18:06:01 -07:00
Jingning Han
50adfdf5ba
Migrate loop filter functions from vp9/ to vpx_dsp/
...
The various tap loop filter operations are common functions across
codec. This commit moves them along with SIMD optimizations to
vpx_dsp folder.
Change-Id: Ia5fa0b2e5289cdb98467502a549c380b9c60e92c
2015-07-16 16:40:47 -07:00
Jingning Han
db8e731b8d
Add vpx_dsp_common.h file
...
Move the clamp functions to vpx_dsp_common.h file. Clear out the
dependency of vp9_loopfilter_filters.c on vp9_common.h file.
Change-Id: I9c4b928bcd7f597106b5aa96354356d3775a3431
2015-07-15 13:03:23 -07:00
Yaowu Xu
c369daf3ea
Clean out more MSVC warnings
...
Change-Id: I1bab0c104df2ec4825d050cd516e26ab635a7b3e
2015-07-08 15:09:20 -07:00
Parag Salasakar
1d7f1ca7da
mips msa vp9 avg subpel variance optimization rebased
...
Change-Id: Ia21987010dbb688e2a8fa204ca9129d2f34c9581
2015-07-08 12:07:28 +05:30
Johann
6a82f0d7fb
Move sub pixel variance to vpx_dsp
...
Change-Id: I66bf6720c396c89aa2d1fd26d5d52bf5d5e3dff1
2015-07-07 15:51:04 -07:00
Parag Salasakar
33a0deb928
Merge "mips msa vpx_dsp sadx3 sadx8 optimization"
2015-07-07 02:10:23 +00:00
Jingning Han
432cd4bfb7
Move subtract functions from vp9 to vpx_dsp
...
Factor out the subtraction operator as common function.
Change-Id: I526e703477c6a290e0e3e3c8898f8bb1ca82779b
2015-07-06 12:22:47 -07:00
Parag Salasakar
6abf1aea63
mips msa vpx_dsp sadx3 sadx8 optimization
...
average improvement ~3x-5x
Change-Id: Ifdb4670d31ae83c4e22a4238293d1377b16c90db
2015-07-02 08:02:19 +05:30
Johann
ff8505a54d
Fix --disable-use-x86inc
...
Change-Id: I374fcd8fb45a6893dcdeac6896671be142a99f06
2015-07-01 13:15:51 -07:00
Parag Salasakar
bc3ec8ef07
mips msa vpx_dsp sad sad4d avgsad optimization
...
average improvement ~3x-5x
Change-Id: Ie30748cfbedebbd544b7ef4f286055ccb7f60306
2015-07-01 11:39:43 +05:30
Parag Salasakar
2d730a289a
mips msa vpx_dsp variance optimization
...
average improvement ~2x-4x
Change-Id: Ia3eef3f390148c2eb5cdc580a94cb26369737f82
2015-06-30 12:22:18 +05:30
James Zern
be380f2005
variance_neon: add missing include
...
vpx_ports/mem.h is necessary for MSVC __builtin_prefetch compatibility
macro
Change-Id: I210fad6c6b4545df1874d028b31f42018490b029
2015-05-28 23:38:53 -07:00
Johann
bbefdce7eb
Only use one 'END' per file
...
On visual studio builds the 'END' directive aggressively signals the end
of file.
Change-Id: I28714da32762ef5abcbaeb5a109fb02b80dd13ec
2015-05-27 12:01:32 -07:00
Johann
c3bdffb0a5
Move variance functions to vpx_dsp
...
subpel functions will be moved in another patch.
Change-Id: Idb2e049bad0b9b32ac42cc7731cd6903de2826ce
2015-05-26 12:01:52 -07:00
James Zern
4be50c5289
sad*_avx2.c: sync function signatures
...
+ include vpx_dsp_rtcd.h
silences missing prototype warnings
Change-Id: Ifa1780bcf72b1fa2b153025d0d78d91ad38774c3
2015-05-14 20:58:56 -07:00
Johann
1d7ccd5325
Relocate memory operations for common code
...
With the sad functions, and hopefully the variance functions soon,
moving to the vpx_dsp location, place the defines used in the
reference C code in a common location.
Change-Id: I4c8ce7778eb38a0a3ee674d2f1c488eda01cfeca
2015-05-13 11:41:15 -07:00
Johann
d5d9289800
Move shared SAD code to vpx_dsp
...
Create a new component, vpx_dsp, for code that can be shared
between codecs. Move the SAD code into the component.
This reduces the size of vpxenc/dec by 36k on x86_64 builds.
Change-Id: I73f837ddaecac6b350bf757af0cfe19c4ab9327a
2015-05-06 16:58:20 -07:00