Yunqing Wang [Mon, 12 Jun 2023 16:44:21 +0000 (16:44 +0000)]
Merge "Fix c vs intrinsic mismatch of vpx_hadamard_32x32() function" into main
Jerome Jiang [Fri, 9 Jun 2023 19:33:39 +0000 (15:33 -0400)]
RTC RC: clean up unnecessary headers
Change-Id: I77c407be59f4eb0c70a89a5fffd88c648e634123
Anupam Pandey [Tue, 6 Jun 2023 06:57:34 +0000 (12:27 +0530)]
Fix c vs intrinsic mismatch of vpx_hadamard_32x32() function
This CL resolves the mismatch between C and intrinsic implementation
of vpx_hadamard_32x32 function. The mismatch was due to integer
overflow during the addition operation in the intrinsic functions.
Specifically, the addition in the intrinsic function was performed
at the 16-bit level, while the calculation of a0 + a1 resulted in
a 17-bit value.
This code change addresses the problem by performing
the addition at the 32-bit level (with sign extension) in both SSE2
and AVX2, and then converting the results back to the 16-bit level
after a right shift.
STATS_CHANGED
Change-Id: I576ca64e3b9ebb31d143fcd2da64322790bc5853
Jerome Jiang [Thu, 8 Jun 2023 14:52:45 +0000 (10:52 -0400)]
Replace NONE with NO_REF_FRAME
NONE is a common name and it has conflicts with symbols defined in
Chromium.
Bug: b/
286163500
Change-Id: I3d935a786f771a4d90b258fabc6fd6c2ecbf1c59
Jerome Jiang [Thu, 8 Jun 2023 14:11:24 +0000 (14:11 +0000)]
Merge "Fix more typos (n/n)" into main
Jerome Jiang [Wed, 7 Jun 2023 21:10:04 +0000 (21:10 +0000)]
Merge "Fix more typos (3/n)" into main
Jerome Jiang [Wed, 7 Jun 2023 20:35:19 +0000 (16:35 -0400)]
Fix more typos (n/n)
impace -> impact
taget -> target
prediciton -> prediction
addtion -> addition
the the -> the
Bug: webm:1803
Change-Id: I759c9d930a037ca69662164fcd6be160ed707d77
Jerome Jiang [Wed, 7 Jun 2023 16:36:31 +0000 (12:36 -0400)]
Fix more typos (3/n)
Propogation -> Propagation
propogate -> propagate
cant -> can't
upto -> up to
canddiates -> candidates
refernce -> reference
USEAGE -> USAGE
Change-Id: Iadaf2dffd86b54e04411910f667e8c2dfc6c4c77
Jerome Jiang [Wed, 7 Jun 2023 19:10:43 +0000 (19:10 +0000)]
Merge "Fix more typos (2/n)" into main
Jerome Jiang [Wed, 7 Jun 2023 19:10:36 +0000 (19:10 +0000)]
Merge "Fix more typos (1/n)" into main
Jerome Jiang [Wed, 7 Jun 2023 18:19:08 +0000 (18:19 +0000)]
Merge "Fix a few typos" into main
Jerome Jiang [Wed, 7 Jun 2023 16:31:38 +0000 (12:31 -0400)]
Fix more typos (2/n)
kernal -> kernel
e.g -> e.g.
paritioning -> partitioning
partioning -> partitioning
coefficents -> coefficients
i.e, -> i.e.,
equivalend -> equivalent
recive -> receive
resoultions -> resolutions
Bug: webm:1803
Change-Id: I1d6176202ee5daee7a64bf59114e8b304aeb4db7
Jerome Jiang [Wed, 7 Jun 2023 16:26:55 +0000 (12:26 -0400)]
Fix more typos (1/n)
Dont -> Don't
setings -> settings
thresold -> thresh
thresold -> threshold
becasue -> because
itterations -> iterations
its a -> it's a
an constant -> a constant
Bug: webm:1803
Change-Id: I1e019393939ed25c59c898c88d4941ec360b026d
Jerome Jiang [Wed, 7 Jun 2023 16:21:38 +0000 (12:21 -0400)]
Fix a few typos
segement -> segment
dont -> don't
useage -> usage
devide -> divide
Bug: webm:1803
Change-Id: I0153380b0003825c4b62cf323d4f2bc837c8a264
Deepa K G [Tue, 6 Jun 2023 06:08:09 +0000 (11:38 +0530)]
Add comments in vp9_diamond_search_sad_avx()
Added comments related to re-arranging the
elements of the SAD vector to find the
minimum.
Change-Id: I58b702d304a6cdd32f04775fba603e39c19a8947
Deepa K G [Mon, 24 Apr 2023 10:26:18 +0000 (15:56 +0530)]
Fix c vs avx mismatch of diamond_search_sad()
In the function vp9_diamond_search_sad_avx(), arranged
the cost vector in a specific order. This ensures that
the motion vector with the least index is selected,
when there exists more than one candidate motion
vector with the minimum cost, thus resolving the
c vs avx mismatch.
STATS_CHANGED
Change-Id: I4f8864f464f9ea2aae6250db3d8ad91cb08b26e2
Jerome Jiang [Wed, 31 May 2023 19:31:04 +0000 (19:31 +0000)]
Merge "Trim tpl stats by 2 extra frames" into main
Jerome Jiang [Fri, 26 May 2023 16:02:36 +0000 (12:02 -0400)]
Trim tpl stats by 2 extra frames
Not applicable to the last GOP.
Bug: b/
284162396
Change-Id: I55b7e04e9fc4b68a08ce3e00b10743823c828954
James Zern [Wed, 31 May 2023 17:44:00 +0000 (17:44 +0000)]
Merge changes I6a906803,I0307a3b6 into main
* changes:
Optimize Neon implementation of vpx_int_pro_row
Optimize Neon implementation of vpx_int_pro_col
Jonathan Wright [Tue, 30 May 2023 16:31:18 +0000 (17:31 +0100)]
Optimize Neon implementation of vpx_int_pro_row
Double the number of accumulator registers to remove the bottleneck.
Also peel the first loop iteration.
Change-Id: I6a90680369f9c33cdfe14ea547ac1569ec3f50de
Jonathan Wright [Tue, 30 May 2023 14:22:04 +0000 (15:22 +0100)]
Optimize Neon implementation of vpx_int_pro_col
Use widening pairwise addition instructions to halve the number of
additions required.
Change-Id: I0307a3b65e50d2b1ae582938bc5df9c2b21df734
James Zern [Thu, 25 May 2023 04:54:09 +0000 (04:54 +0000)]
Merge changes Ia3647698,I55caf34e,Id2c60f39 into main
* changes:
vpx_dsp_common.h,clip_pixel: work around VS2022 Arm64 issue
fdct_partial_neon.c: work around VS2022 Arm64 issue
fdct8x8_test.cc: work around VS2022 Arm64 issue
James Zern [Wed, 24 May 2023 17:43:20 +0000 (17:43 +0000)]
Merge "examples.mk,vpxdec: rm libwebm muxer dependency" into main
Jerome Jiang [Wed, 24 May 2023 16:27:20 +0000 (16:27 +0000)]
Merge "Add IO for TPL stats" into main
James Zern [Tue, 23 May 2023 22:50:10 +0000 (15:50 -0700)]
vpx_dsp_common.h,clip_pixel: work around VS2022 Arm64 issue
cl.exe targeting AArch64 with optimizations enabled
produces invalid code for clip_pixel() when the return type is uint8_t.
See:
https://developercommunity.visualstudio.com/t/Misoptimization-for-ARM64-in-VS-2022-17/
10363361
Bug: b/
277255076
Bug: webm:1788
Change-Id: Ia3647698effd34f1cf196cd33fa4a8cab9fa53d6
James Zern [Tue, 23 May 2023 22:49:29 +0000 (15:49 -0700)]
fdct_partial_neon.c: work around VS2022 Arm64 issue
cl.exe targeting AArch64 with optimizations enabled
will fail with an internal compiler error.
See:
https://developercommunity.visualstudio.com/t/Compiler-crash-C1001-when-building-a-for/
10346110
Bug: b/
277255076
Bug: webm:1788
Change-Id: I55caf34e910dab47a7775f07280677cdfe606f5b
James Zern [Tue, 23 May 2023 22:48:10 +0000 (15:48 -0700)]
fdct8x8_test.cc: work around VS2022 Arm64 issue
cl.exe targeting AArch64 with optimizations enabled
produces invalid code in RunExtremalCheck() and RunInvAccuracyCheck().
See:
https://developercommunity.visualstudio.com/t/1770-preview-1:-Misoptimization-for-AR/
10369786
Bug: b/
277255076
Bug: webm:1788
Change-Id: Id2c60f3948d8f788c78602aea1b5232133415dea
Jerome Jiang [Thu, 4 May 2023 14:48:25 +0000 (10:48 -0400)]
Add IO for TPL stats
Overload TempOutFile constructor to allow IO mode.
Bug: b/
281563704
Change-Id: I1f4f5b29db0e331941b6795e478eeeab51f625ad
Jerome Jiang [Thu, 18 May 2023 17:20:03 +0000 (17:20 +0000)]
Merge "Add new vpx_tpl.h API file" into main
Yunqing Wang [Thu, 18 May 2023 15:48:49 +0000 (15:48 +0000)]
Merge "Improve convolve AVX2 intrinsic for speed" into main
Jerome Jiang [Tue, 16 May 2023 18:57:05 +0000 (14:57 -0400)]
Add new vpx_tpl.h API file
New file (vpx_tpl.c) in the following CLs will add new APIs dealing with
TPL stats from VP9 encoder.
Change-Id: I5102ef64214cba1ca6ecea9582a19049666c6ca4
Anupam Pandey [Fri, 12 May 2023 05:26:45 +0000 (10:56 +0530)]
Improve convolve AVX2 intrinsic for speed
This CL refactors the code related to convolve function.
Furthermore, improved the AVX2 intrinsic to compute
convolve vertical for w = 4 case, and convolve horiz for
w = 16 case.
Please note the module level scaling w.r.t C function
(timer based) for existing (AVX2) and new AVX2 intrinsics:
Block Scaling
Size AVX2 AVX2
(existing) (New)
4x4 5.34x 5.91x
4x8 7.10x 7.79x
16x8 23.52x 25.63x
16x16 29.47x 30.22x
16x32 33.42x 33.44x
This is a bit exact change.
Change-Id: If130183bc12faab9ca2bcec0ceeaa8d0af05e413
James Zern [Tue, 16 May 2023 00:05:05 +0000 (00:05 +0000)]
Merge changes Ie77ad184,Idfcac43c into main
* changes:
Add 2D-specific Neon horizontal convolution functions
Refactor standard bitdepth Neon convolution functions
Jonathan Wright [Thu, 4 May 2023 15:33:38 +0000 (16:33 +0100)]
Add 2D-specific Neon horizontal convolution functions
2D 8-tap convolution filtering is performed in two passes -
horizontal and vertical. The horizontal pass must produce enough
input data for the subsequent vertical pass - 3 rows above and 4 rows
below, in addition to the actual block height.
At present, all Neon horizontal convolution algorithms process 4 rows
at a time, but this means we end up doing at least 1 row too much
work in the 2D first pass case where we need h + 7, not h + 8 rows of
output.
This patch adds additional dot-product (SDOT and USDOT) Neon paths
that process h + 7 rows of data exactly, saving the work of the
unnecessary extra row. It is impractical to take a similar approach
for the Armv8.0 MLA paths since we have to transpose the data block
both before and after calling the convolution helper functions.
vpx_convolve_neon performance impact: we observe a speedup of ~9% for
smaller (and wider) blocks, and a speedup of 0-3% for larger blocks.
This is to be expected since the proportion of redundant work
decreases as the block height increases.
Change-Id: Ie77ad1848707d2d48bb8851345a469aae9d097e1
James Zern [Fri, 12 May 2023 19:23:47 +0000 (19:23 +0000)]
Merge "Don't use -Wl,-z,defs with Clang's sanitizers" into main
James Zern [Mon, 8 May 2023 23:58:59 +0000 (16:58 -0700)]
Don't use -Wl,-z,defs with Clang's sanitizers
This avoids link errors related to the sanitizers:
https://clang.llvm.org/docs/AddressSanitizer.html#usage
"When linking shared libraries, the AddressSanitizer run-time is not
linked, so -Wl,-z,defs may cause link errors ..."
See also:
https://crbug.com/aomedia/3438
Bug: webm:1801
Fixed: webm:1801
Change-Id: Ie212318005a5f7222e5486775175534025306367
Jonathan Wright [Mon, 8 May 2023 16:41:26 +0000 (17:41 +0100)]
Refactor standard bitdepth Neon convolution functions
1) Use #define constant instead of magic numbers for right shifts.
2) Move saturating narrow into helper functions that return 4-element
result vectors.
3) Use mem_neon.h helpers for load/store sequences in Armv8.0 paths.
4) Tidy up: assert conditions and some longer variable names.
5) Prefer != 0 to > 0 where possible for loop termination conditions.
Change-Id: Idfcac43ca38faf729dca07b8cc8f7f45ad264d24
James Zern [Mon, 17 Apr 2023 20:42:11 +0000 (13:42 -0700)]
configure: add -Wshadow
libraries under third_party/ are out of scope for this change.
Bug: webm:1793
Change-Id: I562065a3c0ea9fdfc9615d1a6b1ae47da79b8ce0
James Zern [Tue, 9 May 2023 21:03:31 +0000 (21:03 +0000)]
Merge "vp8_macros_msa.h: clear -Wshadow warnings" into main
James Zern [Tue, 9 May 2023 20:55:55 +0000 (20:55 +0000)]
Merge changes Iac020280,I8ca8660a into main
* changes:
gen_msvs_vcxproj: add ARM64EC w/VS >= 2022
configure: add clang-cl vs1[67] arm64 targets
Yunqing Wang [Tue, 9 May 2023 15:57:09 +0000 (15:57 +0000)]
Merge "Add AVX2 intrinsic for vpx_comp_avg_pred() function" into main
Anupam Pandey [Mon, 8 May 2023 06:40:09 +0000 (12:10 +0530)]
Add AVX2 intrinsic for vpx_comp_avg_pred() function
The module level scaling w.r.t C function (timer based) for
existing (SSE2) and new AVX2 intrinsics:
If ref_padding = 0
Block Scaling
size SSE2 AVX2
8x4 3.24x 3.24x
8x8 4.22x 4.90x
8x16 5.91x 5.93x
16x8 1.63x 3.52x
16x16 1.53x 4.19x
16x32 1.38x 4.82x
32x16 1.28x 3.08x
32x32 1.45x 3.13x
32x64 1.38x 3.04x
64x32 1.39x 2.12x
64x64 1.46x 2.24x
If ref_padding = 8
Block Scaling
size SSE2 AVX2
8x4 3.20x 3.21x
8x8 4.61x 4.83x
8x16 5.50x 6.45x
16x8 1.56x 3.35x
16x16 1.53x 4.19x
16x32 1.37x 4.83x
32x16 1.28x 3.07x
32x32 1.46x 3.29x
32x64 1.38x 3.22x
64x32 1.38x 2.14x
64x64 1.38x 2.12x
This is a bit-exact change.
Change-Id: I72c5d155f64d0c630bc8c3aef21dc8bbd045d9e6
James Zern [Mon, 8 May 2023 18:48:15 +0000 (11:48 -0700)]
vp8_macros_msa.h: clear -Wshadow warnings
Bug: webm:1793
Change-Id: Ia940b06bd23a915a050432e03bb630567e891d8d
James Zern [Mon, 8 May 2023 20:52:52 +0000 (20:52 +0000)]
Merge "README: update target list" into main
James Zern [Mon, 8 May 2023 20:52:31 +0000 (20:52 +0000)]
Merge changes Ie165d410,I6d9bb8da,I6858e574 into main
* changes:
vp8_[cd]x_iface: clear setjmp flag on function exit
vp9_decodeframe,tile_worker_hook: relocate setjmp=1
vp9,encoder_set_config: set setjmp flag after setjmp()
Jerome Jiang [Mon, 8 May 2023 19:47:30 +0000 (19:47 +0000)]
Merge "Add VpxTplGopStats" into main
Jerome Jiang [Mon, 8 May 2023 19:47:21 +0000 (19:47 +0000)]
Merge "Unify implementation of CHECK_MEM_ERROR" into main
Jerome Jiang [Mon, 8 May 2023 19:46:44 +0000 (19:46 +0000)]
Merge "CHECK_MEM_ERROR to return in vp9_set_roi_map" into main
James Zern [Sat, 6 May 2023 02:00:08 +0000 (19:00 -0700)]
gen_msvs_vcxproj: add ARM64EC w/VS >= 2022
rather than define new targets, add a platform to the arm64 list as they
share the same configuration.
Bug: webm:1788
Change-Id: Iac020280b1103fb12b559f21439aeff26568fba4
James Zern [Fri, 5 May 2023 23:56:51 +0000 (16:56 -0700)]
configure: add clang-cl vs1[67] arm64 targets
x86 and armv7 are skipped for now as the intrinsics will need different
flags than cl.exe (/arch:... -> -m...).
Bug: webm:1788
Change-Id: I8ca8660a8644cdd84c51cb1f75005e371ba8207d
Jerome Jiang [Thu, 4 May 2023 18:28:29 +0000 (14:28 -0400)]
Add VpxTplGopStats
Contains the size of GOP - also the size of the list of TPL stats for
each frame in this GOP.
VpxTplGopStats will be the unit for VP9E_GET_TPL_STATS control to return
TPL stats from the encoder.
Bug: b/
273736974
Change-Id: I1682242fc6db4aafcd6314af023aa0d704976585
Jerome Jiang [Fri, 5 May 2023 02:03:27 +0000 (22:03 -0400)]
Unify implementation of CHECK_MEM_ERROR
There were multiple implementations of CHECK_MEM_ERROR across the
library that take different arguments and used in different places.
This CL will unify them and have only one implementation that takes
vpx_internal_error_info.
Change-Id: I2c568639473815bc00b1fc2b72be56e5ccba1a35
Jerome Jiang [Mon, 8 May 2023 14:37:54 +0000 (10:37 -0400)]
CHECK_MEM_ERROR to return in vp9_set_roi_map
Also change the return type of vp9_set_roi_map to vpx_codec_err_t
Change-Id: I60d9ff45f2d3dfc44cd6e2aab2cb1ba389ff15f3
James Zern [Sat, 6 May 2023 22:48:58 +0000 (15:48 -0700)]
examples.mk,vpxdec: rm libwebm muxer dependency
vpxdec only requires the parser.
Change-Id: I54ead453d4af400ca5c3412a3211d6d0b1383046
James Zern [Sat, 6 May 2023 02:26:55 +0000 (02:26 +0000)]
Merge "vp9_encoder: clear -Wshadow warning" into main
James Zern [Sat, 6 May 2023 01:56:59 +0000 (18:56 -0700)]
README: update target list
Change-Id: If2d5811a55f6bb60eeba7d28b69c78157a17e87f
Jerome Jiang [Fri, 5 May 2023 23:02:14 +0000 (23:02 +0000)]
Merge "Set setjmp flag in VP9 RTC rate control library" into main
Jerome Jiang [Fri, 5 May 2023 17:40:50 +0000 (13:40 -0400)]
Set setjmp flag in VP9 RTC rate control library
Change-Id: Ic5ec8dc7d9637091d4137a47d793cf29e76fdc45
James Zern [Fri, 5 May 2023 02:23:20 +0000 (19:23 -0700)]
sixtap_filter_msa.c: clear -Wshadow warnings
Bug: webm:1793
Change-Id: I5f9c09f31b06fecc123c6a9d01f5fbed39142356
James Zern [Fri, 5 May 2023 19:15:29 +0000 (19:15 +0000)]
Merge "macros_msa.h: clear -Wshadow warnings" into main
James Zern [Fri, 5 May 2023 18:04:25 +0000 (11:04 -0700)]
vp8_[cd]x_iface: clear setjmp flag on function exit
in vp8e_encode, also move setting the setjmp() call closer to setting
the flag.
Change-Id: Ie165d4100b84776f9c34eddcf64657bd78cce4f5
James Zern [Fri, 5 May 2023 18:03:19 +0000 (11:03 -0700)]
vp9_decodeframe,tile_worker_hook: relocate setjmp=1
after the call to setjmp(); this is more correct and consistent with
other code.
Change-Id: I6d9bb8daad6a959bfe4f25484f9d6664b99da19e
James Zern [Fri, 5 May 2023 18:01:50 +0000 (11:01 -0700)]
vp9,encoder_set_config: set setjmp flag after setjmp()
Change-Id: I6858e574d24aaff64f725404706f58e04e43717d
James Zern [Fri, 5 May 2023 17:26:11 +0000 (17:26 +0000)]
Merge changes I8089e90a,I46890224,I1b0e090d into main
* changes:
Overwrite cm->error->detail before freeing
Have vpx_codec_error take const vpx_codec_ctx_t *
Add comments about vpx_codec_enc_init_ver failure
James Zern [Fri, 5 May 2023 16:47:28 +0000 (16:47 +0000)]
Merge "vpx_subpixel_8t_intrin_avx2,cosmetics: shorten long comment" into main
James Zern [Fri, 5 May 2023 16:44:23 +0000 (09:44 -0700)]
vp9_encoder: clear -Wshadow warning
with --enable-experimental --enable-rate-ctrl
Bug: webm:1793
Change-Id: I9ca664538bcf0c2aca8aea73283bbb0232eb86e9
James Zern [Fri, 5 May 2023 02:22:17 +0000 (19:22 -0700)]
macros_msa.h: clear -Wshadow warnings
Bug: webm:1793
Change-Id: Ib2e3bd3c52632cdd4410cb2c54d69750e64e5201
Yunqing Wang [Fri, 5 May 2023 15:33:21 +0000 (15:33 +0000)]
Merge "Add AVX2 intrinsic for idct16x16 and idct32x32 functions" into main
Anupam Pandey [Tue, 18 Apr 2023 09:16:56 +0000 (14:46 +0530)]
Add AVX2 intrinsic for idct16x16 and idct32x32 functions
Added AVX2 intrinsic optimization for the following functions
1. vpx_idct16x16_256_add
2. vpx_idct32x32_1024_add
3. vpx_idct32x32_135_add
The module level scaling w.r.t C function (timer based) for
existing (SSE2) and new AVX2 intrinsics:
Scaling
Function Name SSE2 AVX2
vpx_idct32x32_1024_add 3.62x 7.49x
vpx_idct32x32_135_add 4.85x 9.41x
vpx_idct16x16_256_add 4.82x 7.70x
This is a bit-exact change.
Change-Id: Id9dda933aa1f5093bb6b35ac3b8a41846afca9d2
Wan-Teh Chang [Fri, 24 Mar 2023 18:32:36 +0000 (11:32 -0700)]
Overwrite cm->error->detail before freeing
Help detect use after free of the return value of
vpx_codec_error_detail(). If vpx_codec_error_detail() is called after
vpx_codec_encode() fails, the return value may be equal to
cm->error->detail, which is freed when vpx_codec_destroy() is called.
Document the lifetime of the string returned by
vpx_codec_error_detail().
Change-Id: I8089e90a4499b4f3cc5b9cfdbb25d72368faa319
Wan-Teh Chang [Wed, 29 Mar 2023 01:07:41 +0000 (18:07 -0700)]
Have vpx_codec_error take const vpx_codec_ctx_t *
Also have vpx_codec_error_detail take vpx_codec_ctx_t *. Both functions
are getter functions that don't modify the codec context.
Change-Id: I4689022425efbf7b1da5034255ac052fce5e5b4f
Wan-Teh Chang [Thu, 23 Mar 2023 21:50:10 +0000 (14:50 -0700)]
Add comments about vpx_codec_enc_init_ver failure
Address the questions:
1. If vpx_codec_enc_init_ver() fails, should I still call
vpx_codec_destroy() on the encoder context?
2. Is it safe to call vpx_codec_error_detail() when
vpx_codec_enc_init_ver() failed?
Change-Id: I1b0e090d11dd9f853fe203f4cbb6080c3c7b0506
James Zern [Fri, 5 May 2023 00:17:10 +0000 (17:17 -0700)]
vpx_subpixel_8t_intrin_avx2,cosmetics: shorten long comment
Change-Id: I8badedc2ad07d60896e45de28b707ad9f6c4d499
Jerome Jiang [Thu, 4 May 2023 18:06:10 +0000 (18:06 +0000)]
Merge "Add num_blocks to VpxTplFrameStats" into main
Jerome Jiang [Thu, 4 May 2023 18:00:51 +0000 (18:00 +0000)]
Merge "Add Vpx* prefix to Tpl{Block,Frame}Stats" into main
Chi Yo Tsai [Thu, 4 May 2023 17:04:17 +0000 (17:04 +0000)]
Merge changes I226215a2,Ia4918eb0,If6219446,Ibf00a6e1,I900a0a48 into main
* changes:
Fix mismatched param names in vpx_dsp/x86/sad4d_avx2.c
Fix mismatched param names in vpx_dsp/arm/highbd_sad4d_neon.c
Fix mismatched param names in vpx_dsp/arm/sad4d_neon.c
Fix mismatched param names in vpx_dsp/arm/highbd_avg_neon.c
Fix clang warning on const-qualification of parameters
Jerome Jiang [Thu, 4 May 2023 14:59:46 +0000 (10:59 -0400)]
Add num_blocks to VpxTplFrameStats
I realized the calculation of the size of the list of VpxTplBlockStats
is non-trivial. So it's better to add the field for the size.
Bug: b/
273736974
Change-Id: Ic1b50597c1f89a8f866b5669ca676407be6dc9d8
Jerome Jiang [Thu, 4 May 2023 14:32:03 +0000 (10:32 -0400)]
Add Vpx* prefix to Tpl{Block,Frame}Stats
This is to avoid symbols redifinition when integrating with other
libraries.
Bug: b/
273736974
Change-Id: I891af78b1907504d5bb9f735164aea18c2aba944
James Zern [Thu, 4 May 2023 02:16:12 +0000 (02:16 +0000)]
Merge changes I4d26f5f8,I12e25710 into main
* changes:
s/__aarch64__/VPX_ARCH_AARCH64/
configure: add aarch64 to ARCH_LIST
Jerome Jiang [Thu, 4 May 2023 01:55:41 +0000 (01:55 +0000)]
Merge "Add codec control to export TPL stats" into main
Jerome Jiang [Fri, 28 Apr 2023 18:32:47 +0000 (14:32 -0400)]
Add codec control to export TPL stats
new codec control: VP9E_GET_TPL_STATS with unit test
Bug: b/
273736974
Change-Id: I27343bd3f6dffafc86925234537bcdb557bc4079
chiyotsai [Wed, 3 May 2023 21:45:13 +0000 (14:45 -0700)]
Fix mismatched param names in vpx_dsp/x86/sad4d_avx2.c
Change-Id: I226215a2ff8798b72abe0c2caf3d18875595caa5
chiyotsai [Wed, 3 May 2023 21:44:08 +0000 (14:44 -0700)]
Fix mismatched param names in vpx_dsp/arm/highbd_sad4d_neon.c
Change-Id: Ia4918eb0bac3b28b27e1ef205b9171680b2eb9a4
chiyotsai [Wed, 3 May 2023 20:38:46 +0000 (13:38 -0700)]
Fix mismatched param names in vpx_dsp/arm/sad4d_neon.c
Change-Id: If621944684cf9bb9f353db5961ed8b4b4ae38f24
chiyotsai [Wed, 3 May 2023 20:34:41 +0000 (13:34 -0700)]
Fix mismatched param names in vpx_dsp/arm/highbd_avg_neon.c
Change-Id: Ibf00a6e1029284e637b10ef01ac9b31ffadc74ca
chiyotsai [Wed, 3 May 2023 20:28:41 +0000 (13:28 -0700)]
Fix clang warning on const-qualification of parameters
Change-Id: I900a0a48dde5fcb262157b191ac536e18269feb3
James Zern [Wed, 3 May 2023 17:09:03 +0000 (10:09 -0700)]
fdct8x8_test: EXPECT_* -> ASSERT_*
This avoids unnecessary logging when a block has multiple errors.
Change-Id: If0f3e6f8ff5bd284655f7cabfd23c253c93d44c5
James Zern [Wed, 3 May 2023 01:37:59 +0000 (18:37 -0700)]
s/__aarch64__/VPX_ARCH_AARCH64/
This allows AArch64 to be correctly detected when building with Visual
Studio (cl.exe) and fixes a crash in vp9_diamond_search_sad_neon.c.
There are still test failures, however.
Microsoft's compiler doesn't define __ARM_FEATURE_*. To use those paths
we may need to rely on _M_ARM64_EXTENSION.
Bug: webm:1788
Bug: b/
277255076
Change-Id: I4d26f5f84dbd0cbcd1cdf0d7d932ebcf109febe5
James Zern [Fri, 21 Apr 2023 01:15:23 +0000 (18:15 -0700)]
configure: add aarch64 to ARCH_LIST
This will allow identifying Windows Visual Studio targets as aarch64;
the Microsoft compiler does not define __aarch64__.
An alternative would be to define this in the code, checking for
_M_ARM64 or _M_ARM64EC. For now we'll use the existing VPX_ARCH_*
system. For compatibility VPX_ARCH_ARM will continue to be defined to 1
in this case.
Bug: webm:1788
Bug: b/
277255076
Change-Id: I12e25710891e86f0c7339ba96884c18ed90ba16f
Jerome Jiang [Thu, 27 Apr 2023 20:15:56 +0000 (16:15 -0400)]
Move TplFrameStats to public header
Get ready for changes to follow:
- Custom reader/writer IO functions
- Codec control to get TPL stats from the encoder
Move the definition of TplFrameStats to public header so applications
can use them directly.
Bug: b/
273736974
Change-Id: Ieb0db4560ddd966df1bc01f6a7e179cc97f9bac1
Jerome Jiang [Thu, 27 Apr 2023 19:58:08 +0000 (15:58 -0400)]
Clean up a stale TODO in tpl
Change-Id: Ieccaff1cc94cbb2c5a294d83f3080f7407267016
James Zern [Tue, 25 Apr 2023 20:34:13 +0000 (20:34 +0000)]
Merge "register_state_check: clear -Wshadow warning" into main
James Zern [Tue, 25 Apr 2023 20:21:24 +0000 (20:21 +0000)]
Merge "highbd_vpx_convolve8_neon: clear -Wshadow warning" into main
James Zern [Tue, 25 Apr 2023 20:12:30 +0000 (20:12 +0000)]
Merge "vp9_highbd_iht16x16_add_neon: clear -Wshadow warning" into main
Yunqing Wang [Mon, 24 Apr 2023 21:15:14 +0000 (21:15 +0000)]
Merge "Reduce joint motion search iters based on bsize" into main
Neeraj Gadgil [Wed, 19 Apr 2023 02:43:26 +0000 (08:13 +0530)]
Reduce joint motion search iters based on bsize
Joint motion search during compound mode eval is optimized by
reducing the number of mv search iterations based on bsize.
The sf 'comp_inter_joint_search_thresh' is renamed as
'comp_inter_joint_search_iter_level' and used to add the logic.
cpu Testset Instr. Cnt BD Rate loss (%)
Red (%) avg. psnr ovr.psnr ssim
0 LOWRES2 5.373 0.0917 0.1088 0.0294
0 MIDRES2 3.395 0.0239 0.0520 0.0783
0 HDRES2 2.291 0.0223 0.0301 0.0053
0 Average 3.686 0.0460 0.0636 0.0377
STATS_CHANGED
Change-Id: I7ee8873ebc8af967382324ae8f5c70c26665d5e6
Jerome Jiang [Thu, 20 Apr 2023 19:09:00 +0000 (15:09 -0400)]
Reland "Calculate recrf_dist and recrf_rate"
This is a reland of commit
3c59378e4eac2d241fba8b26e660318b850e5773
Addressed issues from the previous CL:
- Both recon_error and rate_cost are scaled up
- recon_error and rate_cost are not accumulated across ref frames,
instead they are calculated with the best ref frame picked.
- get_quantize_error() is put where it was, so there is no behavior
change for vp9.
Bug: b/
273736974
Original change's description:
> Calculate recrf_dist and recrf_rate
>
> Change-Id: I74e74807436b92d729e2ccaab96149780f1f52d9
Change-Id: I20e1f5543e83b576a074bd4e6b44d99da65f4b56
James Zern [Fri, 21 Apr 2023 20:03:58 +0000 (13:03 -0700)]
highbd_vpx_convolve8_neon: clear -Wshadow warning
Bug: webm:1793
Change-Id: If1a46fe183cd18e05b5538b1eba098e420b745ec
James Zern [Fri, 21 Apr 2023 20:03:34 +0000 (13:03 -0700)]
vp9_highbd_iht16x16_add_neon: clear -Wshadow warning
Bug: webm:1793
Change-Id: I4e79a4d7d41b6abf88e3e60c54ab48a92b0346d2
Jerome Jiang [Fri, 21 Apr 2023 18:10:46 +0000 (18:10 +0000)]
Revert "Calculate recrf_dist and recrf_rate"
This reverts commit
3c59378e4eac2d241fba8b26e660318b850e5773.
Reason for revert:
recon_error and recon_rate is summed by mistake across reference frames, as pointed out by Angie.
It could also cause vp9 behavior changes.
Original change's description:
> Calculate recrf_dist and recrf_rate
>
> Change-Id: I74e74807436b92d729e2ccaab96149780f1f52d9
Change-Id: I6106ce77cb0fe8c12b2bcf070d01513ffa8dc613
No-Presubmit: true
No-Tree-Checks: true
No-Try: true