This project is mirrored from https://aomedia.googlesource.com/aom.
Pull mirroring failed .
Repository mirroring has been paused due to too many failed attempts. It can be resumed by a project maintainer.
Last successful update .
Repository mirroring has been paused due to too many failed attempts. It can be resumed by a project maintainer.
Last successful update .
- 18 Jun, 2024 2 commits
-
-
James Zern authored
BUG=chromium:339877165 Change-Id: I69dcc2cda098ec96a34e1e5f7ef557ee8caf5521 (cherry picked from commit 01467cdb) (cherry picked from commit 3a15245e)
-
James Zern authored
This ensures the encoder state/allocations stay in sync with scaling and svc layer changes. In the SVC case, depending on the resolution, differences in the chosen superblock size among layers may have caused a crash. This was reproducible in WebRTC in screen content mode. The fix is based on a change by Yuan Tong (tongyuan200097) [1]. It refreshes the encoder config after AOME_SET_SCALEMODE, AOME_SET_NUMBER_SPATIAL_LAYERS and AV1E_SET_SVC_PARAMS if no frames have been encoded. AV1E_SET_SVC_PARAMS was missed in the original change. [1]: https://aomedia-review.googlesource.com/c/aom/+/171941/2 Bug: chromium:339877165 Change-Id: Ib3d2a123b159898d7c7e19c81e89ff148920e1f1 (cherry picked from commit e42f4b19) (cherry picked from commit 75971361)
-
- 26 Oct, 2023 8 commits
-
-
Wan-Teh Chang authored
Change-Id: I6a9dc3100277dafae9f982f97f108811aba60876
-
Wan-Teh Chang authored
Superblock size is unrelated to DSP. Change-Id: I74c5f3254db856c4944036152e4c3f9156421292
-
Satheesh Kumar authored
In this CL, 'error_info' is passed to 'av1_identify_regions()' to report the error encountered during local buffer allocations. Also, abstracted the code to free the local buffers into a function 'free_firstpass_stats_buffers()'. Bug: aomedia:3276 Change-Id: I3410f3089c9ce9fff5d8023e2b269ec4f7d009ea
-
Satheesh Kumar authored
This CL addresses allocation failures for buffers allocated in 'tf_alloc_and_reset_data()'. Also replaces 'malloc()' and 'free()' with 'aom_malloc()' and 'aom_free()' for the allocation and deallocation of 'tf_data->tmp_mbmi' buffer. Bug: aomedia:3276 Change-Id: I24460c4e7daae15703ed4f8a7e31247d1cf16271
-
Salome Thirot authored
Add Neon implementation of av1_highbd_estimate_noise_from_single_plane as well as the corresponding tests. Change-Id: Iefa204b497f6195241326e56ba74e4cc96ad609c
-
Salome Thirot authored
Add a test suite for the high bitdepth version of av1_estimate_noise_from_single_plane. Change-Id: I3f94bd08071ee333e85083f9cb9dc8cbea4e2d94
-
Wan-Teh Chang authored
Consume less stack memory by moving the 64 KiB local array this_dqcoeff in search_tx_type() to the MACROBLOCK struct. Rename it dqcoeff_buf. Bug: aomedia:2703 Change-Id: I520b759fb1ea23db356191e8e596c4e16fc204c9
-
Wan-Teh Chang authored
Change-Id: I39843a8fc1046badaedaac2557ed93aad25c7d3d
-
- 25 Oct, 2023 8 commits
-
-
Satheesh Kumar authored
In this CL, 'sb_stats_cache' and 'sb_fp_stats' (pointers to 'SB_FIRST_PASS_STATS') are added in MACROBLOCK structure to facilitate its freeing during encoder_destroy() to avoid memory leaks in case of an early termination. Bug: aomedia:3276 Change-Id: Ibd5c5e3b4addd5bd96f6f60ee8ab10d52b060435
-
George Steed authored
The helper functions are already inlined in the generated assembly however the existing code uses a mixture of INLINE and AOM_FORCE_INLINE. To be consistent we convert all helpers to be AOM_FORCE_INLINE. Change-Id: I61b8f85ed716b551b5cff3c3f446749664ef6d4c
-
George Steed authored
The second half of the butterfly is formed by subtraction, not addition. Change-Id: Ia3e1400071748a40200302be081febb51c22a21f
-
George Steed authored
Introduce new `butterfly_dct_{pre,post}` helpers similar to the ones that already exist in the lowbd code and use them across the component kernels to avoid duplication of the add/sub steps. Also make more heavy use of the existing butterfly helpers rather than having the sequence hard-coded in the component kernels themselves. Benchmarking this change on a Neoverse N2 machine with Clang 16 and GCC 12, the highbd txfm2d speed tests show a geomean 1.1% reduction in times reported. Change-Id: I2221bbb714ffe0ffa499449a4b33da584b9278ef
-
George Steed authored
The existing ADST kernels have a few `vnegq_s32` operations, however we can instead propagate these negations down until we find a butterfly multiply operation to merge the negation into. Since we already need the negated versions of the cospi constants we can then simply adjust the butterfly to match and remove the negation completely. Benchmarking this change on a Neoverse N2 machine with Clang 16 and GCC 12, the highbd txfm2d speed tests show a geomean 0.4% reduction in times reported. Change-Id: I1c67ecfa4f36cf2050231af16e8fa889ea1b6d6c
-
George Steed authored
The macro parameter in0/1 was unused, we just happened to always have the right variable around anyway so it never made a difference. Change-Id: Ie8c13e7f3ab61d05b905cb33a82b93e2a87431e6
-
Salome Thirot authored
Add a high bitpdeth version of the EncodeAPI.SetSFrameOnFirstFrame test suite. Change-Id: I2055c3454acef3980cd30a60737c9477eb05b58b
-
Salome Thirot authored
Add a high bitdepth version of all the tests from the EncodeSmallWidthHeight test suite. Change-Id: I5c7b833aa3276bfa45508744c12b76c953ec901a
-
- 24 Oct, 2023 5 commits
-
-
Salome Thirot authored
The Neon implementation of av1_estimate_noise_from_single_plane was causing a segfault due to some bad loop conditions. Fix the bad conditions and re-enable the Neon path. Bug: aomedia:3501 Change-Id: I2ad74e0b2315d8569760a3f2886618ccb6cb49bf
-
Salome Thirot authored
Speed and Extreme test suites were testing for only one set of parameters, as a result only one helper function used by av1_calc_proj_params out of the three was tested. Set suitable parameters to test all three helper functions, and remove the setting of r.s as it is unused. Change-Id: I317d29e1ae0759286f07edb1fec25ff63a21deb3
-
Salome Thirot authored
Add Neon implementation of av1_calc_proj_params_high_bd as well as the corresponding tests. Change-Id: I8da658a9dbba152e27c07bc031c3cfc78334d16d
-
George Steed authored
Currently in cases where the txfm2d component kernels are called via an array lookup the compiler has no way of inlining these. For the `load_buffer_*` helper function this is an issue since we load data from memory and then must immediately store it back to the stack for passing to the component kernel, and similarly for the `store_buffer_*` calls. To get around this issue we can inline the `load_buffer_*` and `store_buffer_*` helpers into the component kernels themselves, creating specific "col" and "row" kernels for their respective transforms and avoiding the unnecessary stack spills between calls. This also matches a similar change previously done for the lowbd Neon code. Specifically we introduce new `TRANSFORM_COL_{ONE,MANY}` and `TRANSFORM_ROW{,_RECT}_{ONE,MANY}` macros to define the new wrapper kernels. The "many" kernels also handle looping over the component kernels and helpers where we were previously passing a "howmany" parameter to the component kernel. To allow using the `store_buffer_*` helpers in the new wrapper kernels, we also need to adjust the helper to expose a stride parameter rather than re-using the height from the macro. Benchmarking this change on a Neoverse N2 machine with Clang 16 and GCC 12, the highbd txfm2d speed tests show a geomean 5.2% reduction in times reported. Change-Id: I8c17f9f1bb5f6931593e9f990ec45ce7ca225519
-
Chi Yo Tsai authored
Originally reviewed in https://aomedia-review.googlesource.com/c/aom/+/136501. Change-Id: Iccecc10ea8bcbf926f53df35f66354c06eee8be4
-
- 21 Oct, 2023 8 commits
-
-
Wan-Teh Chang authored
Assert !ctx->img.self_allocd before calling aom_img_free(&ctx->img), because aom_img_free() must not free ctx->img. Related to the Coverity defect: CID 323776: In decoder_destroy: Free of an address-of expression, which can never be heap allocated Change-Id: I59ef09c3c33da2dde429009ddea2b331baff59b6
-
Wan-Teh Chang authored
The function doesn't exist. Change-Id: Ic307b08e3b4699bf7f5bfb85ea011819ceda608b
-
George Steed authored
Currently we only have a "_xn" kernel with a "howmany" parameter for the 16 kernel however this does not match any of the other kernels where the primary building-block is the simpler "_x4" kernel. This change is primarily intended as a precursor to introducing TRANSFORM_{COL,ROW} macros matching the lowbd code in a future commit, since the macros can then use the "_x4" kernels universally. Benchmarking this change on a Neoverse N2 machine with Clang 16 and GCC 12, the highbd txfm2d speed tests show a geomean 0.2% reduction in times reported. Change-Id: I7f4d40e4ffd6efd2752d96f38ba87eaa512d24e1
-
George Steed authored
Originally suggested here: https://aomedia-review.googlesource.com/c/aom/+/182721/1/av1/encoder/arm/neon/highbd_fwd_txfm_neon.c#303 Change-Id: I67d35d1a6dfe901780a167b33eb201ab4898e94f
-
George Steed authored
This seems to be beneficial for 4x4 and 8x8 txfm2d sizes but not for 16x16, so only apply it to the two smaller sizes. Benchmarking this change on a Neoverse N2 machine with Clang 16 and GCC 12, the highbd txfm2d speed tests show a geomean 0.8% reduction in times reported. Change-Id: I6fc91f85946a37ac0f22f9766caca9a9263b4297
-
George Steed authored
And adjust typedefs for kernel array types to match. Change-Id: Ia2acd2714429c6e03b0ec22c81d9a68f40a0e9fd
-
George Steed authored
This function is only ever called with one of two sets of parameters, so duplicate the definition and remove the now-redundant parameters. Benchmarking this change on a Neoverse N2 machine with Clang 16 and GCC 12, the highbd txfm2d speed tests show a geomean 1.4% reduction in times reported. Change-Id: I9182173630f0a4dc1daadd75c0ee8fafe7be6e57
-
Cheng Chen authored
Add a unit test with comment about setting max frame sizes for random input. BUG=aomedia:3349 Change-Id: Idf0a1caab9aaf302ce44c164ceba9e93df232e0b
-
- 20 Oct, 2023 4 commits
-
-
Wan-Teh Chang authored
In prepare_features_after_part_ab(), assert bsize is allowed for 4-way partitions. av1_ml_prune_4_partition() already has such an assertion, so just add a comment for that. However, these two assertions did not fix the Coverity defects listed below. Add a comment for the assertion in prune_4_way_partition_search() added in commit c9f3d681 The variables ab_min_bsize_allowed and part4_min_bsize_allowed are renamed ab_bsize_thresh and part4_bsize_thresh, respectively, because these two variables are actually one less than the minimum bsize allowed for ab and 4-way partitions. Assert that horz_4_bs and vert_4_bs are not equal to BLOCK_INVALID in av1_ml_prune_4_partition() and prepare_features_after_part_ab(). These assertions actually fixed the following Coverity defects: * CID 323648: In av1_ml_prune_4_partition: Out-of-bounds read from a buffer * CID 323757: In av1_ml_prune_4_partition: Out-of-bounds read from a buffer (apparently a duplicate of the above) * CID 323761: In prepare_features_after_part_ab: Out-of-bounds read from a buffer * CID 323828: In prepare_features_after_part_ab: Out-of-bounds read from a buffer (apparently a duplicate of the above) Bug: aomedia:3499 Change-Id: Idd4ff8cf3e7e6a3656885472af426b6f98489197
-
Gerda Zsejke More authored
Add Neon implementation for av1_wedge_compute_delta_squares and the corresponding test as well. Change-Id: I33de356718a1e135b083ed1a13614f97b20391ab
-
Wan-Teh Chang authored
Declare the speed feature ext_partition_eval_thresh as BLOCK_SIZE. Also declare `bsize` (function parameters, local variables, or data members) as BLOCK_SIZE. The first change comes from https://aomedia-review.googlesource.com/c/aom/+/136501. Change-Id: I72b741c81950b9f36b9d22b794e89cce3f229662
-
Gerda Zsejke More authored
Add Neon implementation of aom_highbd_blend_a64_d16_mask as well as the corresponding test. Change-Id: I33525b59a0459cc6f8bd8c7e573cec4948122bad
-
- 19 Oct, 2023 5 commits
-
-
Wan-Teh Chang authored
Bug: aomedia:3499 Change-Id: I0909319ba886dce11f1d88eded0020a90be3c4ec
-
Cheng Chen authored
Change-Id: I14b09dae59dd1743f4de5c37e6ae16d734648f36
-
Samuthirika S authored
This CL frees 'mv_costs' and 'dv_costs' in free_thread_data() to prevent memory leaks in case of early termination. In order to avoid double free error in case of 'x->mv_costs' and 'x->dv_costs', the allocation and freeing of the same is done using newly introduced 'mv_costs_alloc' and 'dv_costs_alloc' pointers in ThreadData structure. 'x->mv_costs'and 'x->dv_costs' are initialized appropriately. Bug: aomedia:3276 Change-Id: I0954513c9c0bdb216cd4fbeaf75533552472132f
-
James Zern authored
This currently crashes in the EncodeAPI.SetSFrameOnFirstFrame and EncodeSmallWidthHeight.1x1 tests. Bug: aomedia:3501 Change-Id: I28ce6470abefb9900cc9e833afe91f246386abed
-
Cheng Chen authored
BUG=aomedia:3349 Change-Id: I72d482f320774e05be8e88e1e9ff98d4f6904c5e
-