summaryrefslogtreecommitdiff
path: root/vp9/common
AgeCommit message (Collapse)Author
2017-05-03Update highbd idct functions arguments to use uint16_t dstLinfeng Zhang
BUG=webm:1388 Change-Id: I3581d80d0389b99166e70987d38aba2db6c469d5
2017-05-03Clean CONVERT_TO_BYTEPTR/SHORTPTR in idctLinfeng Zhang
BUG=webm:1388 Change-Id: Ida62c941f2b836d6c9e27b427a7d5008ab6dc112
2017-05-01Merge "Clean vp9_highbd_build_inter_predictor() and highbd_inter_predictor()"Linfeng Zhang
2017-04-28Use uint32_t for accumulatorJohann
Be specific about the data type size. Use convenience macro vp9_zero_array. Change-Id: I5fadf7dbd408befb73820d85db0be4832e8cfcbd
2017-04-28Merge "vp9 temporal filter: sse4 implementation"Johann Koenig
2017-04-26vp9 temporal filter: sse4 implementationJohann
Approximates division using multiply and shift. Speeds up both sizes (8x8 and 16x16) by 30 times. Fix the call sites to use the RTCD function. Delete sse2 and mips implementation. They were based on a previous implementation of the filter. It was changed in Dec 2015: ece4fd5d2247c9512b31a93dd593de567beaf928 BUG=webm:1378 Change-Id: I0818e767a802966520b5c6e7999584ad13159276
2017-04-25Clean vp9_highbd_build_inter_predictor() and highbd_inter_predictor()Linfeng Zhang
BUG=webm:1388 Change-Id: I7ee32e0c08f0fb41712a8cc640b2c5bba872421d
2017-04-25Update highbd convolve functions arguments to use uint16_t src/dstLinfeng Zhang
BUG=webm:1388 Change-Id: I6912de2639895d817ce850da8ea9f6c8fe21da42
2017-04-19Merge changes I9e18a73b,Ie47c8cd4Linfeng Zhang
* changes: Clean CONVERT_TO_BYTEPTR/SHORTPTR in convolve Create CAST_TO_BYTEPTR/SHORTPTR
2017-04-19Clean CONVERT_TO_BYTEPTR/SHORTPTR in convolveLinfeng Zhang
Replace by CAST_TO_BYTEPTR/SHORTPTR. The rule is: if a short ptr is casted to a byte ptr, any offset operation on the byte ptr must be doubled. We do this by casting to short ptr first, adding offset, then casting back to byte ptr. BUG=webm:1388 Change-Id: I9e18a73ba45ddae58fc9dae470c0ff34951fe248
2017-04-18vp9: Add phase to get averaging filter for 1:2 downsampling.Marco
The scaling filter with zero shift will give sub-sampling for 2x downsampling. Allow for a phase shift to get an averaging filter. Usage is for source scaling in 1 pass SVC mode for 1:2 downscale. Reduces aliasing in downsampled image. Keep the phase to 0/off for now. Change-Id: Ic547ea0748d151b675f877527e656407fcf4d51e
2017-04-06VP9 motion vector unit testYunqing Wang
To prevent the motion vector out of range bug, added a motion vector unit test in VP9. In the 4k video encoding, always forced to use extreme motion vectors and also encouraged to use INTER modes. In the decoding, checked if the motion vector was valid, and also checked the encoder/decoder mismatch. The tests showed that this unit test could reveal the issue we saw before. Change-Id: I0a880bd847dad8a13f7fd2012faf6868b02fa3b4
2017-03-22vp9 temporal filter: add const to function prototypeJohann
The input frames are not modified. Change-Id: Ideb810e3c5afeb4dbdc4c7d54024c43a8129ad39
2017-03-08Add vpx_highbd_idct32x32_135_add_c()Linfeng Zhang
When eob is less than or equal to 135 for high-bitdepth 32x32 idct, call this function. BUG=webm:1301 Change-Id: I8a5864f5c076e449c984e602946547a7b09c9fe6
2017-02-24Merge "Make vp9_scale_and_extend_frame_ssse3 work for hbd when bitdepth = 8."Jerome Jiang
2017-02-24consolidate block_error functionsJohann
vp9_highbd_block_error_8bit_c was a very simple wrapper around vp9_block_error_c. The SSE2 implemention was practically identical to the non-HBD one. It was missing some minor improvements which only went into the original version. In quick speed tests, the AVX implementation showed minimal improvement over SSE2 when it does not detect overflow. However, when overflow is detected the function is run a second time. The OperationCheck test seems to trigger this case and reverses any speed benefits by running ~60% slower. AVX2 on the other hand is always 30-40% faster. Change-Id: I9fcb9afbcb560f234c7ae1b13ddb69eca3988ba1
2017-02-24Merge "block error sse2: use tran_low_t"Johann Koenig
2017-02-23Make vp9_scale_and_extend_frame_ssse3 work for hbd when bitdepth = 8.Jerome Jiang
Only works for bitdepth = 8 when compiled with high bitdepth flag. 4x speed ups for handling 1:2 down/upsampling. Validated manually for: 1) Dynamic resize for a single layer encoding 2) SVC encoding with 3 spatial layers Results are bitexact with the patch and the speed gain (~4x) in the scaling was verified. BUG=webm:1371 Change-Id: I1bdb5f4d4bd0df67763fc271b6aa355e60f34712
2017-02-24block error sse2: use tran_low_tJohann
Change-Id: Ib04990e4a7bda9fbf501f294da2057a2b2595deb
2017-02-21Merge "Drop zbin_ptr and quant_shift_ptr"Johann Koenig
2017-02-16Merge "block error avx2: use tran_low_t"Johann Koenig
2017-02-16Drop zbin_ptr and quant_shift_ptrJohann
vp9[_highbd]_quantize]_fp[_32x32] and vp9_fdct8x8_quant do not make use of these parameters. scan is used for C code and iscan is used for SIMD implementations. Change-Id: I908a0ff7d3febac33da97e0596e040ec7bc18ca5
2017-02-16block error avx2: use tran_low_tJohann
Change-Id: Ic5f3a1f569d6f82afeaf4fcd7235374bb460db3c
2017-02-16quantize_fp_32x32 highbd ssse3: enable existing functionJohann
This was created as part of the quantize_fp_ssse3 change. Both functions use the same source file with different macro parameters. Change-Id: I267050a559426a85955d215aa0aaca270439c5ab
2017-02-16quantize_fp highbd ssse3: use tran_low_t for coeffJohann
Change-Id: Iebade0efc0efbb0a80a0f3adbef4962e3a2f25e8
2017-02-16quantize_fp highbd sse2: use tran_low_t for coeffJohann
Change-Id: Id96a8df33354a7987ce890a3d6798c7375ffa4aa
2017-02-15Merge "Add vpx_highbd_idct16x16_38_add_c()"Linfeng Zhang
2017-02-14Add vpx_highbd_idct16x16_38_add_c()Linfeng Zhang
When eob is less than or equal to 38 for high-bitdepth 16x16 idct, call this function. BUG=webm:1301 Change-Id: I09167f89d29c401f9c36710b0fd2d02644052060
2017-02-14vp9 fdct higbd neon: connect existing highbd callsJohann
Change-Id: Ia8f822bd6e70b3911bc433a5a750bfb6f9a3a75c
2017-02-14Merge "quantize_fp highbd neon: use tran_low_t for coeff"Johann Koenig
2017-02-14apply clang-formatclang-format
Change-Id: I75e4a9e0b37bd4586f26c8d6c1fa27f3f6ff1bce
2017-02-14quantize_fp highbd neon: use tran_low_t for coeffJohann
Change-Id: I90fd815f15884490ad138f35df575a00d31e8c95
2017-02-08Merge "Add vpx_idct16x16_38_add_c()"Linfeng Zhang
2017-02-07Add vpx_idct16x16_38_add_c()Linfeng Zhang
When eob is less than or equal to 38 for 16x16 idct, call this function. Change-Id: Ief6f3fb16a49ace3c92cebf4e220bf5bf52a6087
2017-02-07block_error_fp highbd sse2: use tran_low_t for coeffJohann
BUG=webm:1365 Change-Id: Id2ed3ebaaaa6a4b68628c23e08b64ea5f1341761
2017-01-31Fix real-time compression regression in hbd modeJingning Han
This commit resolves the compression performance regression in real-time encoding setting when high bit-depth mode is enabled. The current solution temporarily disables the SIMD implementations of vpx_satd, hadamard8x8, and hadamard16x16 in high bit-depth mode. The commit makes the coding results bit-wise identical between regular coding pipeline and high bit-depth at profile 0. BUG=webm:1365 Change-Id: Icfb900821733749685370460a1a5a7e07f76f4bf
2016-12-12Cosmetics by unifying dest_stride to stride in idctLinfeng Zhang
Change-Id: Ie9336a808a3c3592bb4fd5d4ad3839028bfcafba
2016-12-07Update idct NEON optimization to not use narrowing saturating shiftLinfeng Zhang
Change-Id: Iae517017217dbacd638d40fcfeeb0f4bba7b8b8b
2016-11-08*ppflags.h: remove unused *_DEBUG_* enum valuesJames Zern
usage of the vp8 versions was removed in: 3f72509 vp8: remove VP8_SET_DBG* control support vp9 had the usage stripped even earlier. Change-Id: I978142eb6492552cd29c9c6feb1e89acfc5f7b84
2016-11-07Rename vpx_highbd_idct8x8_10{*}() to vpx_highbd_idct8x8_12{*}()Linfeng Zhang
Also update its trigger threshold from 10 to 12. Change-Id: Ib8dddd87a5a22a12ca66e7084d342fbb027b0a2f
2016-11-05Update vp9_fdct8x8_quant_ssse3 for highbitdepthJohann
Borrow transition functions from fdct.h nee vpx_quantize_b_sse2 BUG=webm:1304 Change-Id: I9c88c3eec3ff8bb461411d98c26c3c236ea28ef1
2016-10-05Remove vpx_realloc()Alex Converse
It only handles the realloc constraint (preserving low elements) by serendipity, and we don't actually rely on that behavior anyway. Meanwhile the calls may do extra copying that gets immediately clobbered by the callers. Change-Id: I8dfa89e4a81084b084889c27bd272fdf85184e8d
2016-10-04Merge "Move highbd txfm input range check from 2d iht transform to 1d ↵Angie Chiang
idct/iadst"
2016-10-03Move highbd txfm input range check from 2d iht transform to 1d idct/iadstAngie Chiang
This change will make the highbd txfm input range check more comprehensive The 25-bit highbd input range is composed by 12 signal input bits + 7 bits for 2D forward transform amplification + 5 bits for 1D inverse transform amplification + 1 bit for contingency in rounding and quantizing BUG=https://bugs.chromium.org/p/webm/issues/detail?id=1286 BUG=https://bugs.chromium.org/p/chromium/issues/detail?id=651625 Change-Id: I04c0796edd7653f8d463fba5dc418132986131e7
2016-09-30cosmetics,*_neon.c: rm redundant return from void fnsJames Zern
+ a couple of 'break's after a return Change-Id: Ia21f12ebcef98244feb923c17b689fc8115da015
2016-09-30Merge changes from topic '8bit-hbd-idct'James Zern
* changes: *idct*_neon.c: add missing rtcd include idct,msa/neon: exclude idct files from hbd build *rtcd_defs.pl: remove empty specialize calls
2016-09-29*rtcd_defs.pl: remove empty specialize callsJames Zern
add_proto adds a 'c' specialization Change-Id: I0ed0c2240d45264b0e0056ce7c8f63f4a00780bc
2016-09-29Unify loopfilter function namesLinfeng Zhang
Rename vpx_lpf_horizontal_edge_8() to vpx_lpf_horizontal_16(). Rename vpx_lpf_horizontal_edge_16() to vpx_lpf_horizontal_16_dual(). Change-Id: I798ca8fbbd657d06d3db2bfb0fb3321168f49e52
2016-09-28Merge "vp9: fix compilation for g++ 6.2.x"James Zern
2016-09-27vp9: fix compilation for g++ 6.2.xTristan Matthews
Inline function called from test/dct16x16_test.cc wouldn't build due to: invalid operands of types ‘__gnu_cxx::__enable_if<true, double>::__type {aka double}’ and ‘int’ to binary ‘operator>>’ return (abs(ref->row) >> 3) < COMPANDED_MVREF_THRESH && this converts the test to abs() < COMPANDED_MVREF_THRESH << 3 which hides the promotion issue. Regression from commit de993a847f8080d3128420c8ef8495642013bdb1 BUG=webm:1291 Change-Id: I73b5943d07d5b61b709d299114216a2371a8fd62