summaryrefslogtreecommitdiff
path: root/vp8
AgeCommit message (Collapse)Author
2022-07-09vp8_macros_msa.h: avoid shadowing variables in definesJames Zern
this avoids a warning with certain versions of gcc; observed with: mipsisa32r6el-linux-gnu-gcc (Debian 10.2.1-6) 10.2.1 20210110 Change-Id: I8999f487a79a9d53133816d572054b2423330bcf
2022-06-28Add vp8_ prefix for quantize_lsx.cJerome Jiang
Duplicate name as vpx_dsp/loongarch/quantize_lsx.c Chromium update script fails. Bug: webm:1755 Change-Id: Ifb956c2292d909496eb2b9e1833993f1b021b07e
2022-05-31vp8e_set_config: setjmp before calling vp8_change_configJames Zern
vp8_change_config may call vp8_alloc_compressor_data which expects failures detected by CHECK_MEM_ERROR to not return. Change-Id: Ib7fbf4af904bd9b539402bb61c8f87855eef2ad6
2022-05-25loongarch: Remove redundant codeyuanhecai
Simplify architecture support code and remove redundant code to improve efficiency. Bug: webm:1755 Change-Id: I03bc251aca115b0379fe19907abd165e0876355b
2022-05-20loongarch: Modify the representation of macrosyuanhecai
Some macros have been changed to "#define do {...} While (0)", change the rest to "static INLINE ..." Bug: webm:1755 Change-Id: I445ac0c543f12df38f086b479394b111058367d0
2022-05-17vp8[loongarch]: Optimize vp8_sixtap_predict4x4yuanhecai
1. vp8_sixtap_predict4x4 Bug: webm:1755 Change-Id: If7d844496ef2cfe2252f2ef12bb7cded63ad03dd
2022-05-17vp8[loongarch]: Optimize fdct8x4/diamond_search_sadyuanhecai
1. vp8_short_fdct8x4_lsx 2. vp8_diamond_search_sad_lsx 3. vpx_sad8x8_lsx Bug: webm:1755 Change-Id: Ic9df84ead2d4fc07ec58e9730d6a12ac2b2d31c1
2022-05-17vp8[loongarch]: Optimize vp8 encoding partial functionHao Chen
1. vp8_short_fdct4x4 2. vp8_regular_quantize_b 3. vp8_block_error 4. vp8_mbblock_error 5. vpx_subtract_block Bug: webm:1755 Change-Id: I3dbfc7e3937af74090fc53fb4c9664e6cdda29ef
2022-04-19vp8_decode: free mt buffers early on resolution changeJames Zern
this avoids a desynchronization of mb_rows if an allocation prior to vp8mt_alloc_temp_buffers() fails and the decoder is then destroyed Bug: webm:1759 Change-Id: I75457ef9ceb24c8a8fd213c3690e7c1cf0ec425f
2022-04-15vp8,get_sub_mv_ref_prob: change arguments to uint32_tJames Zern
this matches the call with int_mv::as_int and fixes a warning with clang-13 -fsanitize=integer: vp8/decoder/decodemv.c:240:32: runtime error: implicit conversion from type 'uint32_t' (aka 'unsigned int') of value 4282515456 (32-bit, unsigned) to type 'int' changed the value to -12451840 (32-bit, signed) Bug: webm:1759 Change-Id: I7c0aa72baa45421929afac26566e149adc6669d7
2022-04-15vp8: fix some implicit unsigned -> int conversionsJames Zern
fixes some warnings with clang-13 -fsanitize=integer: vp8/decoder/threading.c:77:27: runtime error: implicit conversion from type 'unsigned int' of value 4294967295 (32-bit, unsigned) to type 'int' changed the value to -1 (32-bit, signed) these bitmask constants were missed in: 1676cddaa vp8: fix some implicit signed -> unsigned conv warnings Bug: webm:1759 Change-Id: I5d894d08fd41e32b91b56a4d91276837b3415ee4
2022-04-15Merge "Fix int overflow in intermediate calculation" into mainJerome Jiang
2022-04-14Fix int overflow in intermediate calculationJerome Jiang
This is not a complete fix to webm:1751. Bug: webm:1751 Change-Id: Ieed6c823744f5f0625d529db3746cfe4f549c8c0
2022-04-13vp8,define_gf_group: remove unused variableJames Zern
this clears a warning under clang-13: vp8/encoder/firstpass.c:1634:10: warning: variable 'mod_err_per_mb_accumulator' set but not used [-Wunused-but-set-variable] Change-Id: I694a99d56724be89090e01c45559237c0fda147a
2022-04-05Merge changes I0b6520be,I1f006daa,I7ee8e367 into mainJames Zern
* changes: vp9[loongarch]: Optimize vpx_convolve8_avg_horiz_c vp8[loongarch]: Optimize dequant_idct_add_y/uv_block loongarch: Fix bugs
2022-03-31vp8[loongarch]: Optimize dequant_idct_add_y/uv_blockyuanhecai
1. vp8_dequant_idct_add_uv_block_lsx 2. vp8_dequant_idct_add_y_block_lsx Bug: webm:1755 Change-Id: I1f006daaefb2075b422bc72a3f69c5abee776e2e
2022-03-31loongarch: Fix bugsyuanhecai
Fix bugs from loopfilter_filters_lsx.c, vpx_convolve8_avg_lsx.c Bug: webm:1755 Change-Id: I7ee8e367d66a49f3be10d7e417837d3b6ef50bdb
2022-03-31remove unused vp8_encode_intra parameterJohann
Follow it up and also remove it from other functions. BUG=webm:1612 Change-Id: I9d3cb785ab0d68c6fcae185043c896d8a135e284
2022-03-29remove sad x3,x8 specializationsJohann
These would compute the sum of absolute differences (sad) for a group of 3 or 8 references. This was used as part of an exhaustive search. vp8 only uses these functions in speed 0 and best quality. For vp9 this is only used with the --enable-non-greedy-mv experiment. This removes the 3- and 8-at-a-time optimized functions and uses the fall back code which will process 1 or 4 (vpx_sadMxNx4d) at a time. For configure --target=x86_64-linux-gcc --enable-realtime-only: libvpx.a before: 3002424 after: 2937622 delta: 64802 after 'strip libvpx.a' before: 2116998 after: 2073090 delta: 43908 Change-Id: I566d06e027c327b3bede68649dd551bba81a848e
2022-03-17vp8[loongarch]: Optimize idct_add, filter_bv/bhyuanhecai
1. vp8_dc_only_idct_add_lsx 2. vp8_loop_filter_bh_lsx 3. vp8_loop_filter_bv_lsx Bug: webm:1755 Change-Id: I9b629767e2a4e9db8cbb3ee2369186502dc6eb00
2022-02-08vp8[loongarch]: Optimize vp8_loop/sixtap, vpx_dc with LSX.Lu Wang
1. vp8_loop_filter_mbh, vp8_loop_filter_mbv 2. vp8_sixtap_predict16x16, vp8_sixtap_predict8x8 3. vpx_dc_predictor_16x16, vpx_dc_predictor_8x8 ./vpxdec --progress -o YUV_1920X1080.yuv original_1200f/VP8_1920X1080.webm before: 37.77fps after : 220.90fps Bug: webm:1755 Change-Id: I1a3ce16f0c872261d813b6531cfdf25bd59bb774
2022-01-28libvpx[loongarch]: Add loongarch support.Jin Bo
LSX and LASX are enabled by default if compiler supports them. Bug: webm:1754 Change-Id: Ic36b113bc4313c50e9d2bbab91199b3aa46d00dc
2021-12-09vp[89]_initalize_enc(): protect against multiple invocationsJames Zern
this removes the burden from callers; the rtcd functions are left with a mostly redundant (outside of tests) once() as top-level functions should ensure their constraints are met Change-Id: I5bdbcfa4671c6a1492cfe9c7d886c361c26caaa9
2021-12-02clear -Wextra-semi/-Wextra-semi-stmt warningsJames Zern
Bug: chromium:1257449 Change-Id: Ia9aafccc09b611521d4a7aedfe3723393a840c62
2021-11-18Merge "replaced bsr() with get_msb() from bitops.h" into mainJohann Koenig
2021-11-18replaced bsr() with get_msb() from bitops.hIlya Kurdyukov
The modified line should now compile into two instructions instead of four. Change-Id: Ie2eb6b13ff1e29b3107cb9e76f37ff9065504316
2021-11-17faster vp8_regular_quantize_b_sse4_1Ilya Kurdyukov
Gives 10% faster VP8 encoding in simple tests. This patch requires testing on wider datasets and encoder settings to see if this speedup is achieved on most data. Change-Id: If8e04819623e78fff126c413db66c964c0b4c11a
2021-11-10Merge changes I1425f12d,I1e9e9ffa,I6d8f676b,I92013086 into mainJames Zern
* changes: mem_sse2.h: loadu_uint32 -> loadu_int32 mem_sse2.h: storeu_uint32 -> storeu_int32 vp8: fix some implicit signed -> unsigned conv warnings video_source.h,ReallocImage: quiet implicit conv warning
2021-11-08vp8 encoder: fix some integer overflowsJames Zern
cap the bitrate to 1000Mbps to avoid many instances of bitrate * 3 / 2 overflowing. this adds coverage for 2048x2048 in the default test for VP8 with TODOs for issues at that resolution for VP9 and at max resolution for both. Bug: b/189602769 Bug: chromium:1264506 Bug: webm:1748 Bug: webm:1749 Bug: webm:1750 Bug: webm:1751 Change-Id: Iedee4dd8d3609c2504271f94d22433dfcd828429
2021-11-08mem_sse2.h: storeu_uint32 -> storeu_int32James Zern
this changes the parameter to int32_t which matches the type with usage of this call using _mm_cvtsi128_si32() as a parameter. quiets an implicit conversion warning with clang-11 -fsanitize=undefined Change-Id: I1e9e9ffac5d2996962d29611458311221eca8ea0
2021-11-08vp8: fix some implicit signed -> unsigned conv warningsJames Zern
and vice-versa mostly when dealing with bitmasks w/clang-11 -fsanitize=undefined Change-Id: I6d8f676bf87679ba1dad9cb7f55eea172103d9d3
2021-11-08vp8,calc_pframe_target_size: fix integer overflowJames Zern
this is similar to the fix for calc_iframe_target_size: 5f345a924 Avoid overflow in calc_iframe_target_size Bug: chromium:1264506 Change-Id: I2f0e161cf9da59ca0724692d581f1594c8098ebb
2021-11-08vp8_update_rate_correction_factors: fix integer overflowJames Zern
the intermediate value in the correction_factor calculation may exceed integer bounds Bug: b/189602769 Change-Id: I75726b12f3095663911d78333f3ea26eb6dee21e
2021-10-04Merge changes If2ef4400,I345970b7 into mainJerome Jiang
* changes: vpx_roi_map: add delta range info {vp8,vp9}_set_roi_map: fix validation with INT_MIN
2021-10-01{vp8,vp9}_set_roi_map: fix validation with INT_MINJames Zern
previously ranges were checked with abs() whose behavior is undefined with INT_MIN. this fixes a crash when the original value is returned and it later used as and offset into a table. Bug: webm:1742 Change-Id: I345970b75c46699587a4fbc4a059e59277f4c2c8
2021-10-01Merge "vp8: Condition decimation drop logic on drop_frames_allowed" into mainMarco Paniconi
2021-10-01vp8: Condition decimation drop logic on drop_frames_allowedMarco Paniconi
This allows user to make sure frame will be encoded when drop_frames is set off (on the fly), no matter the state of the buffer. Change-Id: Ia7b39b93fe3721dd586bdbede72c525db87b6890
2021-10-01vp8: For screen mode: clip buffer from belowMarco Paniconi
Condition already existed for screen content mode, but only when frame-dropper was off. Remove the frame drop condition. Change-Id: Ie7357041f5ca05b01e78b4bd3b40da060382591b
2021-09-24vp8 rc: Clear system state at the end of callsJerome Jiang
Clear system state at the end of rc calls to make sure the state is consistent before and after Change-Id: I59fe9c99485b1a8603c20db37961339b7575455f
2021-09-23Merge "vp8 rc: support temporal layers" into mainJerome Jiang
2021-09-23vp8 rc: support temporal layersJerome Jiang
Change-Id: I2c7d5de0e17b072cb763f1659b1badce4fe0b82b
2021-09-22Merge "Cap duration to avoid overflow" into mainJerome Jiang
2021-09-21Cap duration to avoid overflowJerome Jiang
Bug: webm:1728 Change-Id: Id13475660fa921e8ddcc89847e978da4c8d85886
2021-09-16vp8 rc: explicit cast to avoid VS build failureJerome Jiang
Change-Id: I6a4daca12b79cf996964661e1af85aa6e258b446
2021-09-10Add vp8 support to rc libJerome Jiang
For 1 layer CBR only. Support for temporal layers comes later. Rename the library to libvpxrc Bug: b/188853141 Change-Id: Ib7f977b64c05b1a0596870cb7f8e6768cb483850
2021-09-08vp8 rc: always update correction factorJerome Jiang
Change-Id: Id40b9cb5a85a15fb313a2a93f14f6768259f7c15
2021-09-02Add codec control for vp8 external rcJerome Jiang
disable cyclic refresh Change-Id: I7905602919d5780831fad840577e97730ce0afc2
2021-07-26Fix some instances of -Wunused-but-set-variable.Peter Kasting
Bug: chromium:1203071 Change-Id: Ieb628f95d676ba3814b5caf8a02a884330928c77
2021-07-20Use round to be more accurate casting float to intJerome Jiang
Change-Id: Ifd5961917831752b176dd75d39d6b2cba6ce72fa
2021-07-01Avoid overflow in calc_iframe_target_sizeJorge E. Moreira
The changed product was observed to attempt to multiply 1800 by 2500000, which overflows unsigned 32 bits. Converting to unsigned 64 bits first and testing whether the final result fits in 32 bits solves the problem. BUG=b:179686142 Change-Id: I5d27317bf14b0311b739144c451d8e172db01945