yuanhecai [Mon, 18 Apr 2022 08:21:04 +0000 (16:21 +0800)]
vp9[loongarch]: Optimize convolve8_avg_vert/convolve_copy
1. vpx_convolve8_avg_vert_lsx
2. vpx_convolve_copy_lsx
3. vpx_idct32x32_135_add_lsx
Bug: webm:1755
Change-Id: I6bdfe5836a91a5e361ab869b26641e86c5ebb68d
yuanhecai [Mon, 18 Apr 2022 08:17:17 +0000 (16:17 +0800)]
vp9[loongarch]: Optimize vertical/horizontal_8_dual
1. vpx_lpf_vertical_8_dual_lsx
2. vpx_lpf_horizontal_8_dual_lsx
Bug: webm:1755
Change-Id: I354df02cc215f36b4edf6558af0ff7fd6909deac
James Zern [Fri, 22 Apr 2022 00:16:28 +0000 (00:16 +0000)]
Merge "vp8_decode: free mt buffers early on resolution change" into main
James Zern [Wed, 20 Apr 2022 02:26:37 +0000 (19:26 -0700)]
fdct16x16_neon.h,cosmetics: fix include-guard case
Change-Id: I593735bb7f88d63f2ddab57484099479c8759a3d
James Zern [Wed, 20 Apr 2022 00:24:26 +0000 (17:24 -0700)]
vp8_decode: free mt buffers early on resolution change
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
James Zern [Tue, 19 Apr 2022 02:10:11 +0000 (19:10 -0700)]
webmdec: fix double free
when no frames were decoded, for example due to a decoder initialization
failure, an orphan buffer pointer from webm_guess_framerate() via
webm_read_frame() would have been freed during cleanup
Change-Id: I6ea3defdd13dd75427f79c516e207b682391e4fa
James Zern [Tue, 19 Apr 2022 02:07:39 +0000 (19:07 -0700)]
vp9_dx_iface,init_buffer_callbacks: return on alloc failure
use an error code as a jmp target is not currently set in init_decoder()
Change-Id: If7798039439f13c739298a8a92a55aaa24e2210c
James Zern [Tue, 19 Apr 2022 01:59:57 +0000 (18:59 -0700)]
vp9_encoder: check context buffer allocations
previously the returns for alloc_context_buffers_ext() and
vp9_alloc_context_buffers() were ignored which would result in a NULL
access during encoding should they fail
Change-Id: Icd76576f3d5f8d57697adc9ae926a3a5be731327
James Zern [Tue, 19 Apr 2022 01:57:51 +0000 (18:57 -0700)]
vp9_alloc_internal_frame_buffers: fix num buffers assignment
avoid setting num_internal_frame_buffers until the allocation is
checked, avoiding an invalid access in vp9_free_internal_frame_buffers()
Change-Id: I28a544a2553d62a6b5cb7c45bf10591caa4ebab6
James Zern [Tue, 19 Apr 2022 01:56:49 +0000 (18:56 -0700)]
vp9_alloccommon: add missing pointer checks
in vp9_free_ref_frame_buffers() and vp9_free_context_buffers(); pool and
free_mi may be NULL due to earlier allocation failures
Change-Id: I3bd26ea29b3aea6c58f33d5b7f5a280eb6250ec7
James Zern [Tue, 19 Apr 2022 00:16:29 +0000 (00:16 +0000)]
Merge changes If8318068,I21519b5b into main
* changes:
temporal_filter_sse4,cosmetics: fix some typos
temporal_filter_sse4: remove unused function params
James Zern [Thu, 14 Apr 2022 20:08:58 +0000 (13:08 -0700)]
temporal_filter_sse4,cosmetics: fix some typos
Change-Id: If8318068a32da52d15c0ba595f80092611f4c847
James Zern [Mon, 18 Apr 2022 18:10:30 +0000 (18:10 +0000)]
Merge "Upgrade GoogleTest to v1.11.0" into main
James Zern [Fri, 15 Apr 2022 23:45:26 +0000 (16:45 -0700)]
Upgrade GoogleTest to v1.11.0
The release tag is release-1.11.0.
Ref: https://aomedia-review.googlesource.com/c/aom/+/156641
79c98a122 Upgrade GoogleTest to v1.11.0
Note the tree structure differs from libaom, but is left untouched to
avoid breaking test include paths in this commit.
Change-Id: Ia3c6861d45a3befc2decb1da5b1018bcfd38f95a
James Zern [Sat, 16 Apr 2022 05:29:31 +0000 (22:29 -0700)]
vp8,get_sub_mv_ref_prob: change arguments to uint32_t
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
James Zern [Sat, 16 Apr 2022 05:23:05 +0000 (22:23 -0700)]
vp8: fix some implicit unsigned -> int conversions
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
James Zern [Sat, 16 Apr 2022 04:51:13 +0000 (04:51 +0000)]
Merge changes I9c24f75e,I83bce11c into main
* changes:
vp9[loongarch]: Optimize idct32x32_1024/1/34_add
vp9[loongarch]: Optimize vpx_fdct32x32/32x32_rd
Jerome Jiang [Fri, 15 Apr 2022 14:51:37 +0000 (14:51 +0000)]
Merge "Fix int overflow in intermediate calculation" into main
yuanhecai [Thu, 14 Apr 2022 03:30:55 +0000 (11:30 +0800)]
vp9[loongarch]: Optimize idct32x32_1024/1/34_add
1. vpx_idct32x32_1024_add_lsx
2. vpx_idct32x32_34_add_lsx
3. vpx_idct32x32_1_add_lsx
Bug: webm:1755
Change-Id: I9c24f75e0d93613754d8e30da7e007b8d1374e60
yuanhecai [Wed, 16 Mar 2022 06:16:33 +0000 (14:16 +0800)]
vp9[loongarch]: Optimize vpx_fdct32x32/32x32_rd
1. vpx_fdct32x32_lsx
2. vpx_fdct32x32_rd_lsx
Bug: webm:1755
Change-Id: I83bce11c0d905cf137545a46cd756aef9cedce47
James Zern [Thu, 14 Apr 2022 05:24:08 +0000 (22:24 -0700)]
temporal_filter_sse4: remove unused function params
this clears warnings under clang-13 of the form:
../vp9/encoder/x86/temporal_filter_sse4.c:275:39: warning: parameter
'u_pre' set but not used [-Wunused-but-set-parameter]
Change-Id: I21519b5b0b9c21b04b174327415e0e73b56bdfda
Jerome Jiang [Wed, 6 Apr 2022 16:46:57 +0000 (09:46 -0700)]
Fix int overflow in intermediate calculation
This is not a complete fix to webm:1751.
Bug: webm:1751
Change-Id: Ieed6c823744f5f0625d529db3746cfe4f549c8c0
James Zern [Thu, 14 Apr 2022 17:28:52 +0000 (17:28 +0000)]
Merge "vp9,update_mbgraph_frame_stats: rm unused variables" into main
James Zern [Thu, 14 Apr 2022 05:16:30 +0000 (22:16 -0700)]
vp9,update_mbgraph_frame_stats: rm unused variables
this quiets warnings under clang-13 of the form:
../vp9/encoder/vp9_mbgraph.c:222:42: warning: variable 'gld_y_offset'
set but not used [-Wunused-but-set-variable]
Change-Id: I32170b90c07058f780b4e8100ee5217232149db8
James Zern [Thu, 14 Apr 2022 05:14:33 +0000 (22:14 -0700)]
vp8,define_gf_group: remove unused variable
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
yuanhecai [Thu, 31 Mar 2022 07:01:30 +0000 (15:01 +0800)]
Update loongson_intrinsics.h from v1.0.5 to v1.2.1
Bug: webm:1755
Change-Id: Ib636d2aa521332b76b6aa1b0aa0a9005aafbf32b
yuanhecai [Sat, 19 Mar 2022 02:44:27 +0000 (10:44 +0800)]
vp9[loongarch]: Optimize vpx_variance64x64/32x32
1. vpx_variance64x64_lsx
2. vpx_variance32x32_lsx
Bug: webm:1755
Change-Id: I45c5aa94cbbf7128473894a990d931acaa40e102
yuanhecai [Tue, 15 Mar 2022 08:15:36 +0000 (16:15 +0800)]
vp9[loongarch]: Optimize sad64x64/32x32/16x16
1. vpx_sad64x64x4d_lsx
2. vpx_sad32x32x4d_lsx
3. vpx_sad16x16x4d_lsx
4. vpx_sad64x64_lsx
5. vpx_sad32x32_lsx
Bug: webm:1755
Change-Id: Ief71c2216f697b261d7c1fc481c89c9f1a6098e6
James Zern [Mon, 11 Apr 2022 20:28:44 +0000 (20:28 +0000)]
Merge "vpxdec: add some allocation checks" into main
James Zern [Mon, 11 Apr 2022 18:41:19 +0000 (11:41 -0700)]
vpxdec: add some allocation checks
see also: https://crbug.com/aomedia/3244
Change-Id: I7d151e63a91b8c1a5ee4e861f0b8461eeece6a2f
James Zern [Mon, 11 Apr 2022 18:08:12 +0000 (11:08 -0700)]
rate_hist,show_histogram: fix crash w/0 buckets
this can occur if 0 frames are encoded, e.g., due to --skip
see also: https://crbug.com/aomedia/3243
Change-Id: I791d5ad6611dbcb60d790e6b705298328ec48126
Cheng Chen [Tue, 5 Apr 2022 18:25:23 +0000 (18:25 +0000)]
Merge "L2E: Make SimpleEncode take vp9 level as an input" into main
James Zern [Tue, 5 Apr 2022 02:52:06 +0000 (02:52 +0000)]
Merge changes I0b6520be,I1f006daa,I7ee8e367 into main
* changes:
vp9[loongarch]: Optimize vpx_convolve8_avg_horiz_c
vp8[loongarch]: Optimize dequant_idct_add_y/uv_block
loongarch: Fix bugs
Johann Koenig [Mon, 4 Apr 2022 00:59:23 +0000 (00:59 +0000)]
Merge "remove unused vp8_encode_intra parameter" into main
James Zern [Thu, 31 Mar 2022 21:54:24 +0000 (21:54 +0000)]
Merge changes I4c63beeb,I28f3b98f into main
* changes:
Revert "quantize: replace highbd versions"
Revert "quantize: remove highbd version"
Johann Koenig [Thu, 31 Mar 2022 21:43:47 +0000 (21:43 +0000)]
Merge "subpel variance: add speed test" into main
James Zern [Thu, 31 Mar 2022 19:11:01 +0000 (12:11 -0700)]
Revert "quantize: replace highbd versions"
This reverts commit
2200039d33c49a9f7a5c438656df143755b022c4.
This causes failures with VP9/EndToEndTestLarge.EndtoEndPSNRTest/*; it
seems the assembly does not match the C code.
Bug: webm:1586
Change-Id: I4c63beebf88d4c12789d681b0d38014510b147fe
James Zern [Thu, 31 Mar 2022 19:10:03 +0000 (12:10 -0700)]
Revert "quantize: remove highbd version"
This reverts commit
89cfe3835c47dabf77d38edb3af190155984fa9a.
This is a prerequisite for reverting
2200039d33c49a9f7a5c438656df143755b022c4 which causes high bitdepth test
failures
Bug: webm:1586
Change-Id: I28f3b98f3339f3573b1492b88bf733dade133fc0
yuanhecai [Wed, 30 Mar 2022 06:04:10 +0000 (14:04 +0800)]
vp9[loongarch]: Optimize vpx_convolve8_avg_horiz_c
1. vpx_convolve8_avg_horiz_lsx
Bug: webm:1755
Change-Id: I0b6520be0afa1689da329f56ec6cd95c1730250c
yuanhecai [Mon, 28 Mar 2022 09:12:57 +0000 (17:12 +0800)]
vp8[loongarch]: Optimize dequant_idct_add_y/uv_block
1. vp8_dequant_idct_add_uv_block_lsx
2. vp8_dequant_idct_add_y_block_lsx
Bug: webm:1755
Change-Id: I1f006daaefb2075b422bc72a3f69c5abee776e2e
yuanhecai [Tue, 22 Mar 2022 05:58:50 +0000 (13:58 +0800)]
loongarch: Fix bugs
Fix bugs from loopfilter_filters_lsx.c, vpx_convolve8_avg_lsx.c
Bug: webm:1755
Change-Id: I7ee8e367d66a49f3be10d7e417837d3b6ef50bdb
Johann Koenig [Thu, 31 Mar 2022 05:45:23 +0000 (05:45 +0000)]
Merge "quantize: remove highbd version" into main
Johann [Wed, 30 Mar 2022 06:33:40 +0000 (15:33 +0900)]
quantize: remove highbd version
The only difference between the code is the clamp. For
8 bit it is purely an optimization. The values outside
this range will still saturate.
Change-Id: I2a770b140690d99e151b00957789bd72f7a11e13
Johann [Mon, 4 Nov 2019 21:58:07 +0000 (15:58 -0600)]
remove unused vp8_encode_intra parameter
Follow it up and also remove it from other functions.
BUG=webm:1612
Change-Id: I9d3cb785ab0d68c6fcae185043c896d8a135e284
James Zern [Thu, 31 Mar 2022 01:53:51 +0000 (01:53 +0000)]
Merge "Optimize FHT functions for NEON" into main
Johann [Thu, 31 Mar 2022 01:43:29 +0000 (10:43 +0900)]
subpel variance: add speed test
Was used to verify assembly speed versus an attempt to rewrite
in intrinsics.
Change-Id: I011fe5494334b8fcda04b9d54c6093dbcfc55710
Johann Koenig [Thu, 31 Mar 2022 00:45:31 +0000 (00:45 +0000)]
Merge "remove sad x3,x8 specializations" into main
Johann [Wed, 30 Mar 2022 05:57:46 +0000 (14:57 +0900)]
quantize: replace highbd versions
The optimized quantize functions were already built to handle
highbd values. The only difference is the clamping. All highbd
functions expand to 32bits when running in highbd mode.
Removes vpx_highbd_quantize_32x32_sse2 as it is slower than the
C version in the worst case.
Bug: webm:1586
Change-Id: I49bf8a6a2041f78450bf43a4f655c67656b0f8d9
Cheng Chen [Wed, 30 Mar 2022 22:47:17 +0000 (15:47 -0700)]
L2E: Make SimpleEncode take vp9 level as an input
Level conformance is standadized in vp9.
If a specific target level is set, the vp9 encoder is required to
produce conformant bitstream with limit on frame size, rate,
min alt-ref distance, etc.
This change makes the SimpleEncode environment take the target level
as an input.
To make existing tests pass, we set the level to 0.
Change-Id: Ia35224f75c2fe50338b5b86a50c84355f5daf6fd
Konstantinos Margaritis [Wed, 16 Mar 2022 14:27:27 +0000 (16:27 +0200)]
Optimize FHT functions for NEON
[NEON]
Optimize vp9_fht4x4, vp9_fht8x8, vp9_fht16x16 for NEON
Following change #3516278, the improvement for these functions is:
Before:
4.10% 0.75% vpxenc vpxenc [.] vp9_fht16x16_c
2.93% 0.65% vpxenc vpxenc [.] vp9_fht8x8_c
0.93% 0.77% vpxenc vpxenc [.] vp9_fht4x4_c
And after the patch:
0.69% 0.16% vpxenc vpxenc [.] vp9_fht16x16_neon
0.28% 0.28% vpxenc vpxenc [.] vp9_fht8x8_neon
0.54% 0.53% vpxenc vpxenc [.] vp9_fht4x4_neon
Bug: webm:1634
Change-Id: I6748a0c4e0cfaafa3eefdd4848d0ac3aab6900e4
James Zern [Wed, 30 Mar 2022 03:00:00 +0000 (20:00 -0700)]
sad4d_avx2: fix VS 2014 build error
after:
d60b671a7 gcc 11 warning: mismatched bound
error C2719: 'sums': formal parameter with requested alignment of 32
won't be aligned
Change-Id: Iaba46d00ef2334a5e2d9ee69b5d03478fdc73a60
Johann [Tue, 29 Mar 2022 03:40:12 +0000 (12:40 +0900)]
remove skip_block from quantize
Whether a block is skipped is handled by mi->skip. x->skip_block
is kept exclusively to verify that the quantize functions are not
called for skip blocks.
Finishes the cleanup in
13eed991f
Bug: libvpx:1612
Change-Id: I1598c3b682d3c5e6c57a15fa4cb5df2c65b3a58a
Johann [Mon, 28 Mar 2022 06:27:46 +0000 (15:27 +0900)]
remove sad x3,x8 specializations
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
Johann Koenig [Tue, 29 Mar 2022 03:18:02 +0000 (03:18 +0000)]
Merge "gcc 11 warning: mismatched bound" into main
Johann [Wed, 23 Mar 2022 05:28:29 +0000 (14:28 +0900)]
gcc 11 warning: mismatched bound
Clean up a new build warning with gcc11:
argument 3 of type ‘const uint8_t * const[]’ with
mismatched bound [-Warray-parameter=]
Standardize sad functions with array sizes.
Change-Id: Iea4144e61368f6a8279e2f3ae96c78aff06c8b41
James Zern [Sat, 26 Mar 2022 17:25:18 +0000 (10:25 -0700)]
ads2armasm_ms.pl: fix thumb::FixThumbInstructions call
broken since:
642529248 ads2gas[_apple].pl: remove unused stanzas
Change-Id: I1eac77e2fe23cc3f162251e9e0102a4909f7b997
James Zern [Thu, 24 Mar 2022 19:39:10 +0000 (19:39 +0000)]
Merge "Make sure only NEON FDCT functions are called." into main
Johann [Wed, 23 Mar 2022 05:18:58 +0000 (14:18 +0900)]
ads2gas: maintain whitespace
Don't use tabs during conversion. Save and restore
existing spacing.
Change-Id: Ib8f443db542c091d36e9ab9836e3e3e292d711f7
Johann [Wed, 23 Mar 2022 04:58:46 +0000 (13:58 +0900)]
ads2gas: fix .size measurement
The distance between PROC and END is used to generate .size
information for debugging. When the leading underscore was
removed the pattern used to match the function name broke.
Change-Id: I90bf67d95ecdc2d214606e663773f88d2a2d6b9c
Johann Koenig [Wed, 23 Mar 2022 04:24:28 +0000 (04:24 +0000)]
Merge "ads2gas*.pl: strip trailing whitespace after transforms" into main
James Zern [Tue, 22 Mar 2022 20:51:27 +0000 (13:51 -0700)]
ads2gas*.pl: strip trailing whitespace after transforms
Change-Id: I0bea977b256e464231706c72cc14a5c8b6e90775
Jerome Jiang [Tue, 22 Mar 2022 20:07:31 +0000 (13:07 -0700)]
Fix ClangTidy style warning
Change-Id: I6c4711e488cda6b97af96d5e1b6b249786e709de
Konstantinos Margaritis [Fri, 11 Mar 2022 18:19:25 +0000 (20:19 +0200)]
Make sure only NEON FDCT functions are called.
[NEON]
Added vpx_fdct4x4_pass1_neon(),
Added vpx_fdct8x8_pass1_notranspose_neon(),
Added vpx_fdct8x8_pass1_neon() to avoid code duplication
Refactored vpx_fdct4x4_neon() and vpx_dct8x8_neon() to use the above
Rename dct_body to vpx_fdct16x16_body to reuse later
Add transpose_s16_16x16()
I have run make test and all tests/configurations seem to pass.
Profiled using this command on an Ampere Altra VM:
sudo perf record -g ./vpxenc --codec=vp9 --height=1080 --width=1920 \
--fps=25/1 --limit=20 -o output.mkv \
../original_videos_Sports_1080P_Sports_1080P-0063.mkv --debug –rt
Before this optimization:
1.32% 1.32% vpxenc vpxenc [.] vpx_fdct4x4_neon
0.16% 0.16% vpxenc vpxenc [.] vpx_fdct4x4_c
0.79% 0.79% vpxenc vpxenc [.] vpx_fdct8x8_c
0.52% 0.52% vpxenc vpxenc [.] vpx_fdct8x8_neon
1.23% 1.23% vpxenc vpxenc [.] vpx_fdct16x16_c
0.54% 0.54% vpxenc vpxenc [.] vpx_fdct16x16_neon
So, even though a _neon() version exists, the C version was called \
as well. After this patch:
1.42% 1.36% vpxenc vpxenc [.] vpx_fdct4x4_neon
0.87% 0.82% vpxenc vpxenc [.] vpx_fdct8x8_neon
0.74% 0.74% vpxenc vpxenc [.] vpx_fdct16x16_neon
Change-Id: Id4e1dd315c67b4355fe4e5a1b59e181a349f16d0
yuanhecai [Fri, 11 Mar 2022 02:56:07 +0000 (10:56 +0800)]
vp8[loongarch]: Optimize idct_add, filter_bv/bh
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
yuanhecai [Thu, 10 Mar 2022 06:56:42 +0000 (14:56 +0800)]
vp9[loongarch]: Optimize convolve/convolve8_avg_c
1. vpx_convolve8_avg_lsx
2. vpx_convolve_avg_lsx
Bug: webm:1755
Change-Id: I4af5c362a94f11d0b5d1760e18326660bdbc0559
yuanhecai [Tue, 1 Mar 2022 08:33:47 +0000 (16:33 +0800)]
vp9[loongarch]: Optimize convolve8_horiz/vert/c
1. vpx_convolve8_lsx
2. vpx_convolve8_vert_lsx
3. vpx_convolve8_horiz_lsx
Bug: webm:1755
Change-Id: I9897e1ed6a904ac74d1078bd22b275af44db142d
Johann [Sat, 12 Mar 2022 22:02:03 +0000 (07:02 +0900)]
ads2gas_apple.pl: remove gcc-isms
The gcc assembler was incompatible for a long
time. It is now based on clang and accepts
more modern syntax, although not enough to
remove the script entirely.
Change-Id: I667d29dca005ea02a995c1025c45eb844081f64b
Johann [Sat, 12 Mar 2022 21:28:16 +0000 (06:28 +0900)]
ads2gas[_apple].pl: remove unused stanzas
Many of the features in ads2gas are no longer used.
Remove all patterns which are no longer used in
libvpx.
Simplify between the two to minimize differences.
Change-Id: Ia1151eb8b694cbe51845a1374a876cc7b798899c
James Zern [Thu, 3 Mar 2022 18:35:53 +0000 (18:35 +0000)]
Merge "vp9[loongarch]: Optimize horizontal/vertical_8_c" into main
yuanhecai [Tue, 1 Mar 2022 01:48:13 +0000 (09:48 +0800)]
vp9[loongarch]: Optimize horizontal/vertical_8_c
1. vpx_lpf_vertical_8_lsx
2. vpx_lpf_horizontal_8_lsx
Bug: webm:1755
Change-Id: I6b05d6b1b2ac4d2a75beb9c9ca9700976fc3af55
Marco Paniconi [Wed, 2 Mar 2022 07:03:27 +0000 (23:03 -0800)]
vp9-svc: Remove VP9E_SET_TEMPORAL_LAYERING_MODE
The control was never implemented, no need to keep this.
temporal_layering_mode is set in the config.
Bug: webm:1753
Change-Id: I9a6eb50e82344605ab62775911783af82ac2d401
yuanhecai [Wed, 23 Feb 2022 03:23:52 +0000 (11:23 +0800)]
vp9[loongarch]: Optimize lpf_horizontal/vertical_16_dual with LSX
Change-Id: I82c6bc16ea57c3f7ac5f4d212a12a5f70cb55ffc
James Zern [Fri, 11 Feb 2022 20:43:29 +0000 (12:43 -0800)]
svc_datarate_test.cc: remove stale TODO
Bug: webm:1554
Change-Id: I547223763b86c6a24fa32851f7b30ebab4b7472a
Gregor Jasny [Thu, 10 Feb 2022 08:01:49 +0000 (09:01 +0100)]
support visual studio 2022 (vs17)
Change-Id: I8380283d09b0c90183f224399f953dcc527181c5
Marco Paniconi [Wed, 9 Feb 2022 02:41:23 +0000 (02:41 +0000)]
Merge "rtc-vp9: Fix intra-only for bypass mode" into main
Marco Paniconi [Tue, 8 Feb 2022 20:36:39 +0000 (12:36 -0800)]
rtc-vp9: Fix intra-only for bypass mode
Allow intra-only frame in svc to also work
in bypass (flexible-svc) mode.
Added unittest for the flexible svc case.
And fix the gld_fb_idx for (SL0, TL1) in bypass/flexible
mode pattern in the sample encoder: force it to be 0
(same as lst_fb_idx), since the slot is unused on SL0.
Change-Id: Iada9d1b052e470a0d5d25220809ad0c87cd46268
Lu Wang [Wed, 10 Nov 2021 07:21:17 +0000 (15:21 +0800)]
vp8[loongarch]: Optimize vp8_loop/sixtap, vpx_dc with LSX.
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
Lu Wang [Wed, 10 Nov 2021 07:05:42 +0000 (15:05 +0800)]
vpx_util[loongarch]: Add loongson_intrinsics.h v1.0.5.
Bug: webm:1755
Change-Id: Id2fa999bdb8788bd4285114c748c547fa262a95e
Wan-Teh Chang [Tue, 8 Feb 2022 02:20:35 +0000 (02:20 +0000)]
Merge "Handle NV12 in vpx_img_chroma_subsampling()" into main
Wan-Teh Chang [Sat, 5 Feb 2022 22:32:49 +0000 (14:32 -0800)]
Handle NV12 in vpx_img_chroma_subsampling()
Change-Id: Ibac9f6f8dcdcae0d0c10ae1a118d13baf2407270
Wan-Teh Chang [Sat, 5 Feb 2022 20:14:37 +0000 (12:14 -0800)]
Update error messages in validate_img()
Change-Id: I4aa6d2e16e077d29e4e9eabfc7056fcfed6786d6
Marco Paniconi [Thu, 3 Feb 2022 17:04:46 +0000 (17:04 +0000)]
Merge "rtc-vp9: Fix to tests for intra-only frame." into main
Marco Paniconi [Thu, 3 Feb 2022 00:17:58 +0000 (16:17 -0800)]
rtc-vp9: Fix to tests for intra-only frame.
Fix some issues with the test, and add new
test that verifies that we can decode base stream
startinig at middle of sequence where intra-only
frame is inserted.
Change-Id: I398d23927113eb58ef64694feca25e60ce60a5f7
James Zern [Wed, 2 Feb 2022 00:24:07 +0000 (16:24 -0800)]
vp9_roi_test: apply iwyu
Change-Id: I715c27e329495940d989f95df65ac10e021261d2
James Zern [Tue, 1 Feb 2022 19:57:05 +0000 (11:57 -0800)]
vp9_thread_test: parameterize VP9DecodeMultiThreadedTest
on a per-file basis; this will make sharding more effective
Change-Id: Ib797681a7cc3bd7ec835bb0c1c7a8d9f23512a0d
Jerome Jiang [Mon, 31 Jan 2022 15:17:22 +0000 (15:17 +0000)]
Merge "Use background segmentation mask with ROI" into main
James Zern [Sat, 29 Jan 2022 03:20:41 +0000 (03:20 +0000)]
Merge "vpx/vp8[cd]x.h,cosmetics: normalize ctrls to enum order" into main
James Zern [Fri, 28 Jan 2022 19:47:08 +0000 (11:47 -0800)]
vpx/vp8[cd]x.h,cosmetics: normalize ctrls to enum order
Change-Id: I49bbd956b3a64008d1abe54de87d7831bc3eede6
Jin Bo [Tue, 6 Jul 2021 09:18:48 +0000 (17:18 +0800)]
libvpx[loongarch]: Add loongarch support.
LSX and LASX are enabled by default if compiler supports them.
Bug: webm:1754
Change-Id: Ic36b113bc4313c50e9d2bbab91199b3aa46d00dc
James Zern [Thu, 27 Jan 2022 21:16:55 +0000 (21:16 +0000)]
Merge changes I2db20130,I4e643c83 into main
* changes:
vp8dx.h,cosmetics: normalize #define/type order
vp8dx.h: add missing define for VP9_SET_BYTE_ALIGNMENT
James Zern [Thu, 27 Jan 2022 21:16:08 +0000 (21:16 +0000)]
Merge "fix some include guards" into main
Jerome Jiang [Tue, 28 Sep 2021 23:59:21 +0000 (16:59 -0700)]
Use background segmentation mask with ROI
RTC sample encoder vpx_temporal_svc_encoder can take mask files as input
when ROI_MAP is set to 1.
Uses ROI and segmentation of vp9 to skip background encoding when
source_sad is low and the correspond block in previous frame is also
skipped.
Change-Id: I8590e6f9a88cecfa1d7f375d4cc480f0f2af87b6
James Zern [Thu, 27 Jan 2022 03:44:33 +0000 (19:44 -0800)]
vp8dx.h,cosmetics: normalize #define/type order
Change-Id: I2db20130cc366bead5e576b375479917f9aee024
James Zern [Thu, 27 Jan 2022 03:41:41 +0000 (19:41 -0800)]
vp8dx.h: add missing define for VP9_SET_BYTE_ALIGNMENT
Change-Id: I4e643c837bb010bd58f4fc8179045f8df18f8ae1
James Zern [Wed, 26 Jan 2022 23:05:22 +0000 (15:05 -0800)]
fix some include guards
Change-Id: I0233d352c134bdda3ca160d41b4671d1c45ab01c
James Zern [Wed, 26 Jan 2022 18:40:27 +0000 (18:40 +0000)]
Merge "libwebm: update to libwebm-1.0.0.28-28-gee0bab5" into main
James Zern [Wed, 26 Jan 2022 04:06:59 +0000 (20:06 -0800)]
libwebm: update to libwebm-1.0.0.28-28-gee0bab5
https://chromium.googlesource.com/webm/libwebm/+log/
206d268d4d8066e5a37c49025325b80c95c771dd..
ee0bab576c338c9807249b99588e352b7268cb62
only one commit affects this snapshot:
ee0bab5 Revert "mkvmuxer,Cluster::Size: make uint64 conversion explicit"
Change-Id: Ib1f21fc5589098af346d110ff88c94bb1ba0a027
Jianhui Dai [Sat, 1 Jan 2022 00:01:48 +0000 (08:01 +0800)]
Reland "Add vp9 ref frame to flag map function"
Original change's description:
> Add vp9 ref frame to flag map function
>
> Change-Id: I371c2346b9e0153c0f8053cab399ce14cd286c56
Change-Id: I04a407ee0ef66c01a0d224b4468e043213f8791f
Jerome Jiang [Tue, 11 Jan 2022 16:47:52 +0000 (08:47 -0800)]
Revert "Set unused reference frames to first ref"
This reverts commit
e7f33a53cf404bbb3688af9b13375b5c090daae4.
Change-Id: I54e807220885cb78af6f3c6e48b3eb2c9f1e70b4
Jerome Jiang [Tue, 11 Jan 2022 16:46:59 +0000 (08:46 -0800)]
Revert "Add vp9 ref frame to flag map function"
This reverts commit
44e611482e13fdffa0acde780a20dd68ee153498.
Change-Id: Ic900cc01be4de7983fab42178a488277efab77b3