summaryrefslogtreecommitdiff
path: root/vp8/vp8cx.mk
AgeCommit message (Collapse)Author
2015-08-18Rename vp8 quantize.cJohann
Move it to vp8_quantize.c and make sure to use the full path for all vp8 includes of quantize.h Change-Id: I284651ff681707385f4924ea7db1541905c1624a
2015-08-07Replace VP8 SSIM with VP9 derived vpx_dsp SSIM.Alex Converse
Change-Id: Ic61f30af12d1b01c1d5adc4e08bc20e20ad38027
2015-08-01mips msa vp8 denoising filter optimizationParag Salasakar
average improvement ~2x-3x Change-Id: I6c17012c731fa4d56e0343f8de0df47b2dde289b
2015-07-31mips msa vp8 temporal filter optimizationParag Salasakar
average improvement ~2x-3x Change-Id: I05593bed583234dc7809aaec6cab82773a29505d
2015-07-31mips msa vp8 block subtract optimizationParag Salasakar
average improvement ~2x-3x Change-Id: I30abf4c92cddcc9e87b7a40d4106076e1ec701c2
2015-07-30mips msa vp8 quantize optimizationParag Salasakar
average improvement ~2x-3x Change-Id: I6fc37191bf9cb5a67e1af9787d0d27659c17bdba
2015-07-30mips msa vp8 fdct optimizationParag Salasakar
average improvement ~2x-4x Change-Id: Id0bc600440f7ef53348f585ebadb1ac6869e9a00
2015-07-07Unify subtract function used in VP8/9Jingning Han
This commit replaces the vp8_ prefixed subtract function with the common vpx_subtract_block function. It removes redundant SIMD optimization codes and unit tests. Change-Id: I42e086c32c93c6125e452dcaa6ed04337fe028d9
2014-11-06Remove asm offset dependenciesJohann
The obj_int_extract code is no longer worth maintaining. It creates significant issues when adapting for different build systems and no longer offers as significant of a performance benefit due to improvements in intrinsics. Source files will remain until the various third-party builds are updated. The neon fast quantizer has been moved to intrinsics. The armv6 version has been removed because so few remaining targets require it. Compilers and processors have improved significantly since the pack_tokens code was written. The assembly is no longer faster than the C code. pack_tokens were the only optimizations for the armv5te targets so the targets will be removed after the test infrastructure has been updated. BUG=710 Change-Id: Ic785b167cd9f95eeff31c7c76b7b736c07fb30eb
2014-06-18sse4 regular quantizeJohann
Change-Id: Ibd95df0adf9cc9143006ee9032b4cb2ebfd5dd1b
2014-05-21Renames x86_64 specific asm filesDeb Mukherjee
Renames all x86_64 specific assembly files to consistently end in _x86_64.asm. This will be useful for build systems to handle these files differently. All new 64-bit specific assembly files should use the new naming convention. Change-Id: I36c89584967c82ffc4088b1b5044ac15d2bb7536
2014-05-02Remove asm_offsets dependency in quantize_b_ssse3Johann
Replace it with some intrinsic code and inline assembly. Change-Id: I81b4df146db3d01039059be7dae31083e2943b97
2014-02-26Adding vpx_sse_to_psnr() function.Dmitry Kovalev
Removing all copies of identical vp8_mse2psnr/vp9_mse2psnr functions. Using vpx_sse_to_psnr() instead in all places. Change-Id: I15beef9834d43d8fc8a8a7a2d1fc5de3d658fed8
2013-05-03Automatically flag intrinsic filesJohann
Change-Id: Iee9894615265d42aa23c43a4183924953aedb0c6
2013-04-24Rename quantize_sse2_intrinsics.cJohann
The only reason for the _intrinsics part of the file name was for the interim period where only one of the functions was redone and the base file name was the same. Change-Id: I7851154f1633d48821bee885b1cadb2148e65a23
2013-03-27Merge branch 'master' into experimentalJohn Koleszar
Pick up VP8 encryption, quantization changes, and some fixes to vpxenc Conflicts: test/decode_test_driver.cc test/decode_test_driver.h test/encode_test_driver.cc vp8/vp8cx.mk vpxdec.c vpxenc.c Change-Id: I9fbcc64808ead47e22f1f22501965cc7f0c4791c
2013-03-04Rename quantize_sse2.c to quantize_sse2_intrinsics.c to avoid collision.Ronald S. Bultje
Change-Id: I5637d491eb6a9b7633f72e03fd9df72131eeb121
2013-03-02prefix vp8 asm_{com,dec,enc}_offsets filesJames Zern
make them symmetrical with the generated output and their vp9 counterparts Change-Id: I72cc97c4d33d713dff620a6d7cc25955266216fc
2013-02-28Use intrinsics for sse2 regular quantizeJohann
Remove dependency of this function on asm_offsets. ssse3/sse4 next. Change quant_shift calculation so it be done using SIMD. Pre-calculate as much as possible to simplify EOB selection. Take advantage of qcoeff being zero'd by tying the if statements together. Speed parity with previous implementation with gcc x86_64 linux Change-Id: Ife97556a1eca3a74b09def1a3d04084974dff1fb
2013-02-26vp8 fast quantizer with intrinsicsJohann
Reduce dependency on offsets file by using intrinsics. Disassembly shows improvements over previous assembly specifically in register management, preloading, and {pro,epi}log. Speed change is within margin of error. Change-Id: I8131b4b4d62bc092407fe847bfaa8f2c0e1384ff
2012-12-27Merge branch 'vp9-preview' of review:webm/libvpxJohn Koleszar
Merge the vp9-preview branch into master. Change-Id: If700b9054676f24bed9deb59050af546c1ca5296
2012-11-29a vp8 warning to boot.Jim Bankoski
Change-Id: I32ed051c8b4d3e5afa4e13bb4e3b2ca5e922ff64
2012-11-27Revert "make: flatten object file directories"John Koleszar
This reverts commit b72373de79800e801ce730d24cb115daf78ae660. Change-Id: Ic1601160e11df1a018ef12da25967cfb5eebd5ba
2012-11-15Each make file is responsible for its own directoryJohann
Change-Id: Ia8a59ce79045af209e49c68810bae44616422db5
2012-11-15make: flatten object file directoriesJohn Koleszar
Rather than building an object file directory heirarchy matching the source tree's layout, rename the object files so that the object file name contains the path in the source file tree. The intent here is to allow two files in different parts of the source tree to have the same name and still not collide when put into an ar archive. Change-Id: Id627737dc95ffc65b738501215f34a995148c5a2
2012-11-07Rough merge of master into experimentalJohn Koleszar
Creates a merge between the master and experimental branches. Fixes a number of conflicts in the build system to allow *either* VP8 or VP9 to be built. Specifically either: $ configure --disable-vp9 $ configure --disable-vp8 --disable-unit-tests VP9 still exports its symbols and files as VP8, so that will be resolved in the next commit. Unit tests are broken in VP9, but this isn't a new issue. They are fixed upstream on origin/experimental as of this writing, but rebasing this merge proved difficult, so will tackle that in a second merge commit. Change-Id: I2b7d852c18efd58d1ebc621b8041fe0260442c21
2012-11-01Rename vp8/ codec directory to vp9/.Ronald S. Bultje
Change-Id: Ic084c475844b24092a433ab88138cf58af3abbe4
2012-10-29fixed a build issueYaowu Xu
Two head files dct.h and dct_x86.h were removed in a previous commit, this commit removed the build's dependency on the two files. Change-Id: Idd33712470912d39d42f133dc30b710cab6fa832
2012-10-29invoke macro removal encodembJim Bankoski
Change-Id: I321280abcf48f3dc16e194d29bde2bd3baec6006
2012-10-21Remove variance vtable from rtcdJim Bankoski
Change-Id: Idd2722a538423b451e1e3495f89a7141480493d6
2012-10-16removed the recon rtcd invoke macro code (unrevert)Jim Bankoski
This reinstates reverted commit 2113a831575d81faeadd9966e256d58b6b2b1633 Change-Id: I9a9af13497d1e58d4f467e3e083fddf06b1b786c
2012-10-13Revert "removed the recon. rtcd invoke macro code"Jim Bankoski
This reverts commit 2113a831575d81faeadd9966e256d58b6b2b1633
2012-10-13removed the recon. rtcd invoke macro codeJim Bankoski
Code clean up - removed rtcd Change-Id: Id963ecf53c370b1d99484ef18d6befeed7e0c748
2012-08-21remove rotation experimentJohn Koleszar
This is being reimplemented more generically in terms of affine transforms. Change-Id: I9300bfde5f8b93c708c64f59427087720f8ed782
2012-05-23Merge changes I38e93fe2,I6d6a0fb6,I51155833,If4c3e5d4,Ia2f40ef2John Koleszar
* changes: Add initial keyframe tests Move all tests to test/ directory Enable unit tests by default Build unit tests monolithically configure: initial support for CXX, CXXFLAGS variables
2012-05-22Move all tests to test/ directoryJohn Koleszar
Consolodate the unit tests under vp8/ to the test/ directory Change-Id: I6d6a0fb60f5e3874a4d6710e9e121dd3e81a93db
2012-05-22Build unit tests monolithicallyJohn Koleszar
Rework unit tests to have a single executable rather than many, which should avoid pollution of the visual studio project namespace, improve build times, and make it easier to use the gtest test sharding system when we get these going on the continuous build cluster. Change-Id: If4c3e5d4b3515522869de6c89455c2a64697cca6
2012-05-21Inline Intrinsic optimized DenoiserChristian Duvivier
Faster version of denoiser, cut cost by 1.7x for C path, by 3.3x for SSE2 path. Change-Id: I154786308550763bc0e3497e5fa5bfd1ce651beb
2012-05-11Merge branch 'origin/eider' into masterJohn Koleszar
Conflicts: vp8/common/entropymode.c vp8/common/entropymode.h vp8/encoder/encodeframe.c vp8/vp8_cx_iface.c Change-Id: I708b0f30449b9502b382e47b745d56f5ed2ce265
2012-05-08vp8e - boolcoder unit testJim Bankoski
Adds a unit test to the boolcoder that tests encoding and decoding thousands of different bits, with different probabilities in different patterns. Code borrowed from the webp project - and its committers. Change-Id: Icabbb884d57e666496490c961dd29b246144ab3e
2012-05-04Formalize encodeframe.c forward delclarationsJohn Koleszar
Change If4321cc5 fixed a bug caused by forward declarations not being kept in sync across C files, resulting in a function call with the wrong arguments. The commit moves the affected function declarations into a header file, along with the other symbols from encodeframe.c that were being sloppily shared. Change-Id: I76a7b4c66d4fe175f9cbef7e52148655e4bb9ba1
2012-05-04Make global data constAttila Nagy
Removes all runtime initialization of global data. This commit is a squashed version of the following series cherry-picked from master. This is necessary because of a change that was merged to the tester that depends on the scaler being moved to the RTCD framework, which is a worthwhile thing to include in Eider anyway. - a91b42f02 Makes all global data in entropy.c const - b35a0db0e Makes all global data in tokenize.c const - 441cac8ea Makes all mode token tables const - 5948a0210 Ports vpx_xcaler to new RTCD method - 317d4244c Makes all mode token tables const part 2 Change-Id: Ifeaea24df2b731e7c509fa6c6ef6891a374afc26
2012-04-17Makes all global data in tokenize.c constAttila Nagy
Removes all runtime initialization of global data in tokenize.c. DCT token and cost tabels are pre-generated. Second patch in a series to make sure code is reentrant. Change-Id: Iab48b5fe290129823947b669413101f22a1bcac0
2012-03-15WebM Experimental Codec Branch SnapshotYaowu Xu
This is a code snapshot of experimental work currently ongoing for a next-generation codec. The codebase has been cut down considerably from the libvpx baseline. For example, we are currently only supporting VBR 2-pass rate control and have removed most of the code relating to coding speed, threading, error resilience, partitions and various other features. This is in part to make the codebase easier to work on and experiment with, but also because we want to have an open discussion about how the bitstream will be structured and partitioned and not have that conversation constrained by past work. Our basic working pattern has been to initially encapsulate experiments using configure options linked to #IF CONFIG_XXX statements in the code. Once experiments have matured and we are reasonably happy that they give benefit and can be merged without breaking other experiments, we remove the conditional compile statements and merge them in. Current changes include: * Temporal coding experiment for segments (though still only 4 max, it will likely be increased). * Segment feature experiment - to allow various bits of information to be coded at the segment level. Features tested so far include mode and reference frame information, limiting end of block offset and transform size, alongside Q and loop filter parameters, but this set is very fluid. * Support for 8x8 transform - 8x8 dct with 2nd order 2x2 haar is used in MBs using 16x16 prediction modes within inter frames. * Compound prediction (combination of signals from existing predictors to create a new predictor). * 8 tap interpolation filters and 1/8th pel motion vectors. * Loop filter modifications. * Various entropy modifications and changes to how entropy contexts and updates are handled. * Extended quantizer range matched to transform precision improvements. There are also ongoing further experiments that we hope to merge in the near future: For example, coding of motion and other aspects of the prediction signal to better support larger image formats, use of larger block sizes (e.g. 32x32 and up) and lossless non-transform based coding options (especially for key frames). It is our hope that we will be able to make regular updates and we will warmly welcome community contributions. Please be warned that, at this stage, the codebase is currently slower than VP8 stable branch as most new code has not been optimized, and even the 'C' has been deliberately written to be simple and obvious, not fast. The following graphs have the initial test results, numbers in the tables measure the compression improvement in terms of percentage. The build has the following optional experiments configured: --enable-experimental --enable-enhanced_interp --enable-uvintra --enable-high_precision_mv --enable-sixteenth_subpel_uv CIF Size clips: http://getwebm.org/tmp/cif/ HD size clips: http://getwebm.org/tmp/hd/ (stable_20120309 represents encoding results of WebM master branch build as of commit#7a15907) They were encoded using the following encode parameters: --good --cpu-used=0 -t 0 --lag-in-frames=25 --min-q=0 --max-q=63 --end-usage=0 --auto-alt-ref=1 -p 2 --pass=2 --kf-max-dist=9999 --kf-min-dist=0 --drop-frame=0 --static-thresh=0 --bias-pct=50 --minsection-pct=0 --maxsection-pct=800 --sharpness=0 --arnr-maxframes=7 --arnr-strength=3(for HD,6 for CIF) --arnr-type=3 Change-Id: I5c62ed09cfff5815a2bb34e7820d6a810c23183c
2012-03-13Merge "Adds a motion compensated temporal denoiser to the encoder."Jim Bankoski
2012-03-13Adds a motion compensated temporal denoiser to the encoder.Stefan Holmer
Some refactoring in rdopt.c and pickinter.c. Change-Id: I4f50020eb3313c37f4d441d708fedcaf219d3038
2012-03-05Move SAD and variance functions to commonJohann
The MFQE function of the postprocessor depends on these Change-Id: I256a37c6de079fe92ce744b1f11e16526d06b50a
2012-01-30RTCD: finalize removal of old RTCD systemJohn Koleszar
This is the final commit in the series converting to the new RTCD system. It removes the encoder csystemdependent files and the remaining global function pointers that didn't conform to the old RTCD system. Change-Id: I9649706f1bb89f0cbf431ab0e3e7552d37be4d8e
2012-01-30RTCD: add arnr functionsJohn Koleszar
This commit continues the process of converting to the new RTCD system. It removes the last of the VP8_ENCODER_RTCD struct references. Change-Id: I2a44f52d7cccf5177e1ca98a028ead570d045395
2012-01-30RTCD: add motion search functionsJohn Koleszar
This commit continues the process of converting to the new RTCD system. Change-Id: Ia5828b7ecc80db55b21916704aa3d54cbb98f625