mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-05 15:28:39 +09:00
Update aom to commit id f5bdeac22930ff4c6b219be49c843db35970b918
This commit is contained in:
parent
e329bc4331
commit
2ab8fcbfd1
370 changed files with 56185 additions and 32026 deletions
|
|
@ -218,7 +218,7 @@ AOMDecoder::IsSupportedCodec(const nsAString& aCodecType)
|
|||
// for a specific aom commit hash so sites can check
|
||||
// compatibility.
|
||||
auto version = NS_ConvertASCIItoUTF16("av1.experimental.");
|
||||
version.AppendLiteral("aadbb0251996c8ebb8310567bea330ab7ae9abe4");
|
||||
version.AppendLiteral("f5bdeac22930ff4c6b219be49c843db35970b918");
|
||||
return aCodecType.EqualsLiteral("av1") ||
|
||||
aCodecType.Equals(version);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,4 +10,4 @@ The upstream aom git repository is:
|
|||
|
||||
https://aomedia.googlesource.com/aom
|
||||
|
||||
The git commit ID used was aadbb0251996c8ebb8310567bea330ab7ae9abe4.
|
||||
The git commit ID used was f5bdeac22930ff4c6b219be49c843db35970b918.
|
||||
|
|
|
|||
|
|
@ -68,6 +68,7 @@
|
|||
.equ CONFIG_HIGHBITDEPTH , 1
|
||||
.equ CONFIG_EXPERIMENTAL , 0
|
||||
.equ CONFIG_SIZE_LIMIT , 1
|
||||
.equ CONFIG_COLORSPACE_HEADERS , 0
|
||||
.equ CONFIG_FP_MB_STATS , 0
|
||||
.equ CONFIG_CDEF , 1
|
||||
.equ CONFIG_VAR_TX , 1
|
||||
|
|
@ -90,6 +91,10 @@
|
|||
.equ CONFIG_WEDGE , 1
|
||||
.equ CONFIG_COMPOUND_SEGMENT , 1
|
||||
.equ CONFIG_EXT_REFS , 1
|
||||
.equ CONFIG_ALTREF2 , 0
|
||||
.equ CONFIG_SPEED_REFS , 0
|
||||
.equ CONFIG_GF_GROUPS , 0
|
||||
.equ CONFIG_FLEX_REFS , 0
|
||||
.equ CONFIG_GLOBAL_MOTION , 1
|
||||
.equ CONFIG_NEW_QUANT , 0
|
||||
.equ CONFIG_SUPERTX , 0
|
||||
|
|
@ -104,6 +109,7 @@
|
|||
.equ CONFIG_WARPED_MOTION , 1
|
||||
.equ CONFIG_Q_ADAPT_PROBS , 0
|
||||
.equ CONFIG_BITSTREAM_DEBUG , 0
|
||||
.equ CONFIG_INTER_STATS_ONLY , 0
|
||||
.equ CONFIG_ALT_INTRA , 1
|
||||
.equ CONFIG_PALETTE , 1
|
||||
.equ CONFIG_PALETTE_DELTA_ENCODING , 0
|
||||
|
|
@ -112,6 +118,9 @@
|
|||
.equ CONFIG_PVQ , 0
|
||||
.equ CONFIG_CFL , 0
|
||||
.equ CONFIG_XIPHRC , 0
|
||||
.equ CONFIG_DCT_ONLY , 0
|
||||
.equ CONFIG_DAALA_DCT4 , 0
|
||||
.equ CONFIG_DAALA_DCT8 , 0
|
||||
.equ CONFIG_CB4X4 , 1
|
||||
.equ CONFIG_CHROMA_2X2 , 0
|
||||
.equ CONFIG_CHROMA_SUB8X8 , 1
|
||||
|
|
@ -120,11 +129,8 @@
|
|||
.equ CONFIG_EXT_DELTA_Q , 1
|
||||
.equ CONFIG_ADAPT_SCAN , 0
|
||||
.equ CONFIG_FILTER_7BIT , 1
|
||||
.equ CONFIG_PARALLEL_DEBLOCKING , 0
|
||||
.equ CONFIG_PARALLEL_DEBLOCKING_15TAP , 0
|
||||
.equ CONFIG_PARALLEL_DEBLOCKING , 1
|
||||
.equ CONFIG_LOOPFILTERING_ACROSS_TILES , 1
|
||||
.equ CONFIG_TILE_GROUPS , 1
|
||||
.equ CONFIG_EC_ADAPT , 1
|
||||
.equ CONFIG_TEMPMV_SIGNALING , 1
|
||||
.equ CONFIG_RD_DEBUG , 0
|
||||
.equ CONFIG_REFERENCE_BUFFER , 1
|
||||
|
|
@ -132,6 +138,7 @@
|
|||
.equ CONFIG_ENTROPY_STATS , 0
|
||||
.equ CONFIG_MASKED_TX , 0
|
||||
.equ CONFIG_DEPENDENT_HORZTILES , 0
|
||||
.equ CONFIG_DIST_8X8 , 0
|
||||
.equ CONFIG_DAALA_DIST , 0
|
||||
.equ CONFIG_TRIPRED , 0
|
||||
.equ CONFIG_PALETTE_THROUGHPUT , 1
|
||||
|
|
@ -144,7 +151,17 @@
|
|||
.equ CONFIG_COMPOUND_SINGLEREF , 0
|
||||
.equ CONFIG_AOM_QM , 0
|
||||
.equ CONFIG_ONE_SIDED_COMPOUND , 1
|
||||
.equ CONFIG_SMOOTH_HV , 0
|
||||
.equ CONFIG_EXT_COMP_REFS , 0
|
||||
.equ CONFIG_SMOOTH_HV , 1
|
||||
.equ CONFIG_VAR_REFS , 0
|
||||
.equ CONFIG_RECT_INTRA_PRED , 1
|
||||
.equ CONFIG_LGT , 0
|
||||
.equ CONFIG_SBL_SYMBOL , 0
|
||||
.equ CONFIG_NCOBMC_ADAPT_WEIGHT , 0
|
||||
.equ CONFIG_BGSPRITE , 0
|
||||
.equ CONFIG_VAR_TX_NO_TX_MODE , 0
|
||||
.equ CONFIG_MRC_TX , 0
|
||||
.equ CONFIG_LPF_DIRECT , 0
|
||||
.equ CONFIG_UV_LVL , 0
|
||||
.equ CONFIG_ANALYZER , 0
|
||||
.section .note.GNU-stack,"",%progbits
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
/* This file automatically generated by configure. Do not edit! */
|
||||
#ifndef AOM_CONFIG_H
|
||||
#define AOM_CONFIG_H
|
||||
#define RESTRICT
|
||||
#define RESTRICT
|
||||
#define INLINE inline
|
||||
#define ARCH_ARM 0
|
||||
#define ARCH_MIPS 0
|
||||
|
|
@ -78,6 +78,7 @@
|
|||
#define CONFIG_HIGHBITDEPTH 1
|
||||
#define CONFIG_EXPERIMENTAL 0
|
||||
#define CONFIG_SIZE_LIMIT 1
|
||||
#define CONFIG_COLORSPACE_HEADERS 0
|
||||
#define CONFIG_FP_MB_STATS 0
|
||||
#define CONFIG_CDEF 1
|
||||
#define CONFIG_VAR_TX 1
|
||||
|
|
@ -100,6 +101,10 @@
|
|||
#define CONFIG_WEDGE 1
|
||||
#define CONFIG_COMPOUND_SEGMENT 1
|
||||
#define CONFIG_EXT_REFS 1
|
||||
#define CONFIG_ALTREF2 0
|
||||
#define CONFIG_SPEED_REFS 0
|
||||
#define CONFIG_GF_GROUPS 0
|
||||
#define CONFIG_FLEX_REFS 0
|
||||
#define CONFIG_GLOBAL_MOTION 1
|
||||
#define CONFIG_NEW_QUANT 0
|
||||
#define CONFIG_SUPERTX 0
|
||||
|
|
@ -114,6 +119,7 @@
|
|||
#define CONFIG_WARPED_MOTION 1
|
||||
#define CONFIG_Q_ADAPT_PROBS 0
|
||||
#define CONFIG_BITSTREAM_DEBUG 0
|
||||
#define CONFIG_INTER_STATS_ONLY 0
|
||||
#define CONFIG_ALT_INTRA 1
|
||||
#define CONFIG_PALETTE 1
|
||||
#define CONFIG_PALETTE_DELTA_ENCODING 0
|
||||
|
|
@ -122,6 +128,9 @@
|
|||
#define CONFIG_PVQ 0
|
||||
#define CONFIG_CFL 0
|
||||
#define CONFIG_XIPHRC 0
|
||||
#define CONFIG_DCT_ONLY 0
|
||||
#define CONFIG_DAALA_DCT4 0
|
||||
#define CONFIG_DAALA_DCT8 0
|
||||
#define CONFIG_CB4X4 1
|
||||
#define CONFIG_CHROMA_2X2 0
|
||||
#define CONFIG_CHROMA_SUB8X8 1
|
||||
|
|
@ -130,11 +139,8 @@
|
|||
#define CONFIG_EXT_DELTA_Q 1
|
||||
#define CONFIG_ADAPT_SCAN 0
|
||||
#define CONFIG_FILTER_7BIT 1
|
||||
#define CONFIG_PARALLEL_DEBLOCKING 0
|
||||
#define CONFIG_PARALLEL_DEBLOCKING_15TAP 0
|
||||
#define CONFIG_PARALLEL_DEBLOCKING 1
|
||||
#define CONFIG_LOOPFILTERING_ACROSS_TILES 1
|
||||
#define CONFIG_TILE_GROUPS 1
|
||||
#define CONFIG_EC_ADAPT 1
|
||||
#define CONFIG_TEMPMV_SIGNALING 1
|
||||
#define CONFIG_RD_DEBUG 0
|
||||
#define CONFIG_REFERENCE_BUFFER 1
|
||||
|
|
@ -142,6 +148,7 @@
|
|||
#define CONFIG_ENTROPY_STATS 0
|
||||
#define CONFIG_MASKED_TX 0
|
||||
#define CONFIG_DEPENDENT_HORZTILES 0
|
||||
#define CONFIG_DIST_8X8 0
|
||||
#define CONFIG_DAALA_DIST 0
|
||||
#define CONFIG_TRIPRED 0
|
||||
#define CONFIG_PALETTE_THROUGHPUT 1
|
||||
|
|
@ -154,8 +161,18 @@
|
|||
#define CONFIG_COMPOUND_SINGLEREF 0
|
||||
#define CONFIG_AOM_QM 0
|
||||
#define CONFIG_ONE_SIDED_COMPOUND 1
|
||||
#define CONFIG_SMOOTH_HV 0
|
||||
#define CONFIG_EXT_COMP_REFS 0
|
||||
#define CONFIG_SMOOTH_HV 1
|
||||
#define CONFIG_VAR_REFS 0
|
||||
#define CONFIG_RECT_INTRA_PRED 1
|
||||
#define CONFIG_LGT 0
|
||||
#define CONFIG_SBL_SYMBOL 0
|
||||
#define CONFIG_NCOBMC_ADAPT_WEIGHT 0
|
||||
#define CONFIG_BGSPRITE 0
|
||||
#define CONFIG_VAR_TX_NO_TX_MODE 0
|
||||
#define CONFIG_MRC_TX 0
|
||||
#define CONFIG_LPF_DIRECT 0
|
||||
#define CONFIG_UV_LVL 0
|
||||
#define CONFIG_ANALYZER 0
|
||||
#define DECODE_WIDTH_LIMIT 8192
|
||||
#define DECODE_HEIGHT_LIMIT 4608
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -12,6 +12,7 @@
|
|||
*/
|
||||
|
||||
#include "aom/aom_integer.h"
|
||||
#include "aom_dsp/txfm_common.h"
|
||||
#include "av1/common/common.h"
|
||||
#include "av1/common/enums.h"
|
||||
#include "av1/common/quant_common.h"
|
||||
|
|
@ -24,6 +25,7 @@ struct macroblockd;
|
|||
|
||||
/* Encoder forward decls */
|
||||
struct macroblock;
|
||||
struct txfm_param;
|
||||
struct aom_variance_vtable;
|
||||
struct search_site_config;
|
||||
struct mv;
|
||||
|
|
@ -62,46 +64,46 @@ int av1_diamond_search_sad_c(struct macroblock *x, const struct search_site_conf
|
|||
void av1_fdct8x8_quant_c(const int16_t *input, int stride, tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
#define av1_fdct8x8_quant av1_fdct8x8_quant_c
|
||||
|
||||
void av1_fht16x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht16x16_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht16x16 av1_fht16x16_c
|
||||
|
||||
void av1_fht16x32_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht16x32_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht16x32 av1_fht16x32_c
|
||||
|
||||
void av1_fht16x4_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht16x4_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht16x4 av1_fht16x4_c
|
||||
|
||||
void av1_fht16x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht16x8_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht16x8 av1_fht16x8_c
|
||||
|
||||
void av1_fht32x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht32x16_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht32x16 av1_fht32x16_c
|
||||
|
||||
void av1_fht32x32_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht32x32_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht32x32 av1_fht32x32_c
|
||||
|
||||
void av1_fht32x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht32x8_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht32x8 av1_fht32x8_c
|
||||
|
||||
void av1_fht4x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht4x16_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht4x16 av1_fht4x16_c
|
||||
|
||||
void av1_fht4x4_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht4x4_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht4x4 av1_fht4x4_c
|
||||
|
||||
void av1_fht4x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht4x8_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht4x8 av1_fht4x8_c
|
||||
|
||||
void av1_fht8x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht8x16_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht8x16 av1_fht8x16_c
|
||||
|
||||
void av1_fht8x32_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht8x32_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht8x32 av1_fht8x32_c
|
||||
|
||||
void av1_fht8x4_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht8x4_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht8x4 av1_fht8x4_c
|
||||
|
||||
void av1_fht8x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht8x8_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht8x8 av1_fht8x8_c
|
||||
|
||||
int av1_full_range_search_c(const struct macroblock *x, const struct search_site_config *cfg, struct mv *ref_mv, struct mv *best_mv, int search_param, int sad_per_bit, int *num00, const struct aom_variance_vtable *fn_ptr, const struct mv *center_mv);
|
||||
|
|
@ -116,15 +118,33 @@ void av1_fwd_idtx_c(const int16_t *src_diff, tran_low_t *coeff, int stride, int
|
|||
void av1_fwd_txfm2d_16x16_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_fwd_txfm2d_16x16 av1_fwd_txfm2d_16x16_c
|
||||
|
||||
void av1_fwd_txfm2d_16x32_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_fwd_txfm2d_16x32 av1_fwd_txfm2d_16x32_c
|
||||
|
||||
void av1_fwd_txfm2d_16x8_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_fwd_txfm2d_16x8 av1_fwd_txfm2d_16x8_c
|
||||
|
||||
void av1_fwd_txfm2d_32x16_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_fwd_txfm2d_32x16 av1_fwd_txfm2d_32x16_c
|
||||
|
||||
void av1_fwd_txfm2d_32x32_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_fwd_txfm2d_32x32 av1_fwd_txfm2d_32x32_c
|
||||
|
||||
void av1_fwd_txfm2d_4x4_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_fwd_txfm2d_4x4 av1_fwd_txfm2d_4x4_c
|
||||
|
||||
void av1_fwd_txfm2d_4x8_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_fwd_txfm2d_4x8 av1_fwd_txfm2d_4x8_c
|
||||
|
||||
void av1_fwd_txfm2d_64x64_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_fwd_txfm2d_64x64 av1_fwd_txfm2d_64x64_c
|
||||
|
||||
void av1_fwd_txfm2d_8x16_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_fwd_txfm2d_8x16 av1_fwd_txfm2d_8x16_c
|
||||
|
||||
void av1_fwd_txfm2d_8x4_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_fwd_txfm2d_8x4 av1_fwd_txfm2d_8x4_c
|
||||
|
||||
void av1_fwd_txfm2d_8x8_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_fwd_txfm2d_8x8 av1_fwd_txfm2d_8x8_c
|
||||
|
||||
|
|
@ -167,88 +187,46 @@ void av1_highbd_convolve_init_c(void);
|
|||
void av1_highbd_convolve_vert_c(const uint16_t *src, int src_stride, uint16_t *dst, int dst_stride, int w, int h, const InterpFilterParams fp, const int subpel_x_q4, int x_step_q4, int avg, int bd);
|
||||
#define av1_highbd_convolve_vert av1_highbd_convolve_vert_c
|
||||
|
||||
void av1_highbd_fht16x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht16x16 av1_highbd_fht16x16_c
|
||||
|
||||
void av1_highbd_fht16x32_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht16x32 av1_highbd_fht16x32_c
|
||||
|
||||
void av1_highbd_fht16x4_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht16x4 av1_highbd_fht16x4_c
|
||||
|
||||
void av1_highbd_fht16x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht16x8 av1_highbd_fht16x8_c
|
||||
|
||||
void av1_highbd_fht32x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht32x16 av1_highbd_fht32x16_c
|
||||
|
||||
void av1_highbd_fht32x32_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht32x32 av1_highbd_fht32x32_c
|
||||
|
||||
void av1_highbd_fht32x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht32x8 av1_highbd_fht32x8_c
|
||||
|
||||
void av1_highbd_fht4x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht4x16 av1_highbd_fht4x16_c
|
||||
|
||||
void av1_highbd_fht4x4_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht4x4 av1_highbd_fht4x4_c
|
||||
|
||||
void av1_highbd_fht4x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht4x8 av1_highbd_fht4x8_c
|
||||
|
||||
void av1_highbd_fht8x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht8x16 av1_highbd_fht8x16_c
|
||||
|
||||
void av1_highbd_fht8x32_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht8x32 av1_highbd_fht8x32_c
|
||||
|
||||
void av1_highbd_fht8x4_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht8x4 av1_highbd_fht8x4_c
|
||||
|
||||
void av1_highbd_fht8x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht8x8 av1_highbd_fht8x8_c
|
||||
|
||||
void av1_highbd_fwht4x4_c(const int16_t *input, tran_low_t *output, int stride);
|
||||
#define av1_highbd_fwht4x4 av1_highbd_fwht4x4_c
|
||||
|
||||
void av1_highbd_iht16x16_256_add_c(const tran_low_t *input, uint8_t *output, int pitch, int tx_type, int bd);
|
||||
void av1_highbd_iht16x16_256_add_c(const tran_low_t *input, uint8_t *output, int pitch, const struct txfm_param *param);
|
||||
#define av1_highbd_iht16x16_256_add av1_highbd_iht16x16_256_add_c
|
||||
|
||||
void av1_highbd_iht16x32_512_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht16x32_512_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht16x32_512_add av1_highbd_iht16x32_512_add_c
|
||||
|
||||
void av1_highbd_iht16x4_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht16x4_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht16x4_64_add av1_highbd_iht16x4_64_add_c
|
||||
|
||||
void av1_highbd_iht16x8_128_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht16x8_128_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht16x8_128_add av1_highbd_iht16x8_128_add_c
|
||||
|
||||
void av1_highbd_iht32x16_512_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht32x16_512_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht32x16_512_add av1_highbd_iht32x16_512_add_c
|
||||
|
||||
void av1_highbd_iht32x8_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht32x8_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht32x8_256_add av1_highbd_iht32x8_256_add_c
|
||||
|
||||
void av1_highbd_iht4x16_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht4x16_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht4x16_64_add av1_highbd_iht4x16_64_add_c
|
||||
|
||||
void av1_highbd_iht4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht4x4_16_add av1_highbd_iht4x4_16_add_c
|
||||
|
||||
void av1_highbd_iht4x8_32_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht4x8_32_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht4x8_32_add av1_highbd_iht4x8_32_add_c
|
||||
|
||||
void av1_highbd_iht8x16_128_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht8x16_128_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht8x16_128_add av1_highbd_iht8x16_128_add_c
|
||||
|
||||
void av1_highbd_iht8x32_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht8x32_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht8x32_256_add av1_highbd_iht8x32_256_add_c
|
||||
|
||||
void av1_highbd_iht8x4_32_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht8x4_32_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht8x4_32_add av1_highbd_iht8x4_32_add_c
|
||||
|
||||
void av1_highbd_iht8x8_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht8x8_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht8x8_64_add av1_highbd_iht8x8_64_add_c
|
||||
|
||||
void av1_highbd_quantize_b_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan, int log_scale);
|
||||
|
|
@ -260,63 +238,81 @@ void av1_highbd_quantize_fp_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, in
|
|||
void av1_highbd_temporal_filter_apply_c(uint8_t *frame1, unsigned int stride, uint8_t *frame2, unsigned int block_width, unsigned int block_height, int strength, int filter_weight, unsigned int *accumulator, uint16_t *count);
|
||||
#define av1_highbd_temporal_filter_apply av1_highbd_temporal_filter_apply_c
|
||||
|
||||
void av1_highbd_warp_affine_c(const int32_t *mat, const uint16_t *ref, int width, int height, int stride, uint16_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, int bd, int comp_avg, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
void av1_highbd_warp_affine_c(const int32_t *mat, const uint16_t *ref, int width, int height, int stride, uint16_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, int bd, ConvolveParams *conv_params, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
#define av1_highbd_warp_affine av1_highbd_warp_affine_c
|
||||
|
||||
void av1_iht16x16_256_add_c(const tran_low_t *input, uint8_t *output, int pitch, int tx_type);
|
||||
void av1_iht16x16_256_add_c(const tran_low_t *input, uint8_t *output, int pitch, const struct txfm_param *param);
|
||||
#define av1_iht16x16_256_add av1_iht16x16_256_add_c
|
||||
|
||||
void av1_iht16x32_512_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht16x32_512_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht16x32_512_add av1_iht16x32_512_add_c
|
||||
|
||||
void av1_iht16x4_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht16x4_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht16x4_64_add av1_iht16x4_64_add_c
|
||||
|
||||
void av1_iht16x8_128_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht16x8_128_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht16x8_128_add av1_iht16x8_128_add_c
|
||||
|
||||
void av1_iht32x16_512_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht32x16_512_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht32x16_512_add av1_iht32x16_512_add_c
|
||||
|
||||
void av1_iht32x32_1024_add_c(const tran_low_t *input, uint8_t *output, int pitch, int tx_type);
|
||||
void av1_iht32x32_1024_add_c(const tran_low_t *input, uint8_t *output, int pitch, const struct txfm_param *param);
|
||||
#define av1_iht32x32_1024_add av1_iht32x32_1024_add_c
|
||||
|
||||
void av1_iht32x8_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht32x8_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht32x8_256_add av1_iht32x8_256_add_c
|
||||
|
||||
void av1_iht4x16_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht4x16_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht4x16_64_add av1_iht4x16_64_add_c
|
||||
|
||||
void av1_iht4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht4x4_16_add av1_iht4x4_16_add_c
|
||||
|
||||
void av1_iht4x8_32_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht4x8_32_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht4x8_32_add av1_iht4x8_32_add_c
|
||||
|
||||
void av1_iht8x16_128_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht8x16_128_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht8x16_128_add av1_iht8x16_128_add_c
|
||||
|
||||
void av1_iht8x32_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht8x32_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht8x32_256_add av1_iht8x32_256_add_c
|
||||
|
||||
void av1_iht8x4_32_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht8x4_32_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht8x4_32_add av1_iht8x4_32_add_c
|
||||
|
||||
void av1_iht8x8_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht8x8_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht8x8_64_add av1_iht8x8_64_add_c
|
||||
|
||||
void av1_inv_txfm2d_add_16x16_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_inv_txfm2d_add_16x16 av1_inv_txfm2d_add_16x16_c
|
||||
|
||||
void av1_inv_txfm2d_add_16x32_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_inv_txfm2d_add_16x32 av1_inv_txfm2d_add_16x32_c
|
||||
|
||||
void av1_inv_txfm2d_add_16x8_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_inv_txfm2d_add_16x8 av1_inv_txfm2d_add_16x8_c
|
||||
|
||||
void av1_inv_txfm2d_add_32x16_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_inv_txfm2d_add_32x16 av1_inv_txfm2d_add_32x16_c
|
||||
|
||||
void av1_inv_txfm2d_add_32x32_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_inv_txfm2d_add_32x32 av1_inv_txfm2d_add_32x32_c
|
||||
|
||||
void av1_inv_txfm2d_add_4x4_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_inv_txfm2d_add_4x4 av1_inv_txfm2d_add_4x4_c
|
||||
|
||||
void av1_inv_txfm2d_add_4x8_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_inv_txfm2d_add_4x8 av1_inv_txfm2d_add_4x8_c
|
||||
|
||||
void av1_inv_txfm2d_add_64x64_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_inv_txfm2d_add_64x64 av1_inv_txfm2d_add_64x64_c
|
||||
|
||||
void av1_inv_txfm2d_add_8x16_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_inv_txfm2d_add_8x16 av1_inv_txfm2d_add_8x16_c
|
||||
|
||||
void av1_inv_txfm2d_add_8x4_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_inv_txfm2d_add_8x4 av1_inv_txfm2d_add_8x4_c
|
||||
|
||||
void av1_inv_txfm2d_add_8x8_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_inv_txfm2d_add_8x8 av1_inv_txfm2d_add_8x8_c
|
||||
|
||||
|
|
@ -335,7 +331,7 @@ void av1_quantize_fp_32x32_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int
|
|||
void av1_temporal_filter_apply_c(uint8_t *frame1, unsigned int stride, uint8_t *frame2, unsigned int block_width, unsigned int block_height, int strength, int filter_weight, unsigned int *accumulator, uint16_t *count);
|
||||
#define av1_temporal_filter_apply av1_temporal_filter_apply_c
|
||||
|
||||
void av1_warp_affine_c(const int32_t *mat, const uint8_t *ref, int width, int height, int stride, uint8_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, int comp_avg, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
void av1_warp_affine_c(const int32_t *mat, const uint8_t *ref, int width, int height, int stride, uint8_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, ConvolveParams *conv_params, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
#define av1_warp_affine av1_warp_affine_c
|
||||
|
||||
void av1_wedge_compute_delta_squares_c(int16_t *d, const int16_t *a, const int16_t *b, int N);
|
||||
|
|
|
|||
|
|
@ -68,6 +68,7 @@
|
|||
.equ CONFIG_HIGHBITDEPTH , 1
|
||||
.equ CONFIG_EXPERIMENTAL , 0
|
||||
.equ CONFIG_SIZE_LIMIT , 1
|
||||
.equ CONFIG_COLORSPACE_HEADERS , 0
|
||||
.equ CONFIG_FP_MB_STATS , 0
|
||||
.equ CONFIG_CDEF , 1
|
||||
.equ CONFIG_VAR_TX , 1
|
||||
|
|
@ -90,6 +91,10 @@
|
|||
.equ CONFIG_WEDGE , 1
|
||||
.equ CONFIG_COMPOUND_SEGMENT , 1
|
||||
.equ CONFIG_EXT_REFS , 1
|
||||
.equ CONFIG_ALTREF2 , 0
|
||||
.equ CONFIG_SPEED_REFS , 0
|
||||
.equ CONFIG_GF_GROUPS , 0
|
||||
.equ CONFIG_FLEX_REFS , 0
|
||||
.equ CONFIG_GLOBAL_MOTION , 1
|
||||
.equ CONFIG_NEW_QUANT , 0
|
||||
.equ CONFIG_SUPERTX , 0
|
||||
|
|
@ -104,6 +109,7 @@
|
|||
.equ CONFIG_WARPED_MOTION , 1
|
||||
.equ CONFIG_Q_ADAPT_PROBS , 0
|
||||
.equ CONFIG_BITSTREAM_DEBUG , 0
|
||||
.equ CONFIG_INTER_STATS_ONLY , 0
|
||||
.equ CONFIG_ALT_INTRA , 1
|
||||
.equ CONFIG_PALETTE , 1
|
||||
.equ CONFIG_PALETTE_DELTA_ENCODING , 0
|
||||
|
|
@ -112,6 +118,9 @@
|
|||
.equ CONFIG_PVQ , 0
|
||||
.equ CONFIG_CFL , 0
|
||||
.equ CONFIG_XIPHRC , 0
|
||||
.equ CONFIG_DCT_ONLY , 0
|
||||
.equ CONFIG_DAALA_DCT4 , 0
|
||||
.equ CONFIG_DAALA_DCT8 , 0
|
||||
.equ CONFIG_CB4X4 , 1
|
||||
.equ CONFIG_CHROMA_2X2 , 0
|
||||
.equ CONFIG_CHROMA_SUB8X8 , 1
|
||||
|
|
@ -120,11 +129,8 @@
|
|||
.equ CONFIG_EXT_DELTA_Q , 1
|
||||
.equ CONFIG_ADAPT_SCAN , 0
|
||||
.equ CONFIG_FILTER_7BIT , 1
|
||||
.equ CONFIG_PARALLEL_DEBLOCKING , 0
|
||||
.equ CONFIG_PARALLEL_DEBLOCKING_15TAP , 0
|
||||
.equ CONFIG_PARALLEL_DEBLOCKING , 1
|
||||
.equ CONFIG_LOOPFILTERING_ACROSS_TILES , 1
|
||||
.equ CONFIG_TILE_GROUPS , 1
|
||||
.equ CONFIG_EC_ADAPT , 1
|
||||
.equ CONFIG_TEMPMV_SIGNALING , 1
|
||||
.equ CONFIG_RD_DEBUG , 0
|
||||
.equ CONFIG_REFERENCE_BUFFER , 1
|
||||
|
|
@ -132,6 +138,7 @@
|
|||
.equ CONFIG_ENTROPY_STATS , 0
|
||||
.equ CONFIG_MASKED_TX , 0
|
||||
.equ CONFIG_DEPENDENT_HORZTILES , 0
|
||||
.equ CONFIG_DIST_8X8 , 0
|
||||
.equ CONFIG_DAALA_DIST , 0
|
||||
.equ CONFIG_TRIPRED , 0
|
||||
.equ CONFIG_PALETTE_THROUGHPUT , 1
|
||||
|
|
@ -144,7 +151,17 @@
|
|||
.equ CONFIG_COMPOUND_SINGLEREF , 0
|
||||
.equ CONFIG_AOM_QM , 0
|
||||
.equ CONFIG_ONE_SIDED_COMPOUND , 1
|
||||
.equ CONFIG_SMOOTH_HV , 0
|
||||
.equ CONFIG_EXT_COMP_REFS , 0
|
||||
.equ CONFIG_SMOOTH_HV , 1
|
||||
.equ CONFIG_VAR_REFS , 0
|
||||
.equ CONFIG_RECT_INTRA_PRED , 1
|
||||
.equ CONFIG_LGT , 0
|
||||
.equ CONFIG_SBL_SYMBOL , 0
|
||||
.equ CONFIG_NCOBMC_ADAPT_WEIGHT , 0
|
||||
.equ CONFIG_BGSPRITE , 0
|
||||
.equ CONFIG_VAR_TX_NO_TX_MODE , 0
|
||||
.equ CONFIG_MRC_TX , 0
|
||||
.equ CONFIG_LPF_DIRECT , 0
|
||||
.equ CONFIG_UV_LVL , 0
|
||||
.equ CONFIG_ANALYZER , 0
|
||||
.section .note.GNU-stack,"",%progbits
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
/* This file automatically generated by configure. Do not edit! */
|
||||
#ifndef AOM_CONFIG_H
|
||||
#define AOM_CONFIG_H
|
||||
#define RESTRICT
|
||||
#define RESTRICT
|
||||
#define INLINE inline
|
||||
#define ARCH_ARM 1
|
||||
#define ARCH_MIPS 0
|
||||
|
|
@ -78,6 +78,7 @@
|
|||
#define CONFIG_HIGHBITDEPTH 1
|
||||
#define CONFIG_EXPERIMENTAL 0
|
||||
#define CONFIG_SIZE_LIMIT 1
|
||||
#define CONFIG_COLORSPACE_HEADERS 0
|
||||
#define CONFIG_FP_MB_STATS 0
|
||||
#define CONFIG_CDEF 1
|
||||
#define CONFIG_VAR_TX 1
|
||||
|
|
@ -100,6 +101,10 @@
|
|||
#define CONFIG_WEDGE 1
|
||||
#define CONFIG_COMPOUND_SEGMENT 1
|
||||
#define CONFIG_EXT_REFS 1
|
||||
#define CONFIG_ALTREF2 0
|
||||
#define CONFIG_SPEED_REFS 0
|
||||
#define CONFIG_GF_GROUPS 0
|
||||
#define CONFIG_FLEX_REFS 0
|
||||
#define CONFIG_GLOBAL_MOTION 1
|
||||
#define CONFIG_NEW_QUANT 0
|
||||
#define CONFIG_SUPERTX 0
|
||||
|
|
@ -114,6 +119,7 @@
|
|||
#define CONFIG_WARPED_MOTION 1
|
||||
#define CONFIG_Q_ADAPT_PROBS 0
|
||||
#define CONFIG_BITSTREAM_DEBUG 0
|
||||
#define CONFIG_INTER_STATS_ONLY 0
|
||||
#define CONFIG_ALT_INTRA 1
|
||||
#define CONFIG_PALETTE 1
|
||||
#define CONFIG_PALETTE_DELTA_ENCODING 0
|
||||
|
|
@ -122,6 +128,9 @@
|
|||
#define CONFIG_PVQ 0
|
||||
#define CONFIG_CFL 0
|
||||
#define CONFIG_XIPHRC 0
|
||||
#define CONFIG_DCT_ONLY 0
|
||||
#define CONFIG_DAALA_DCT4 0
|
||||
#define CONFIG_DAALA_DCT8 0
|
||||
#define CONFIG_CB4X4 1
|
||||
#define CONFIG_CHROMA_2X2 0
|
||||
#define CONFIG_CHROMA_SUB8X8 1
|
||||
|
|
@ -130,11 +139,8 @@
|
|||
#define CONFIG_EXT_DELTA_Q 1
|
||||
#define CONFIG_ADAPT_SCAN 0
|
||||
#define CONFIG_FILTER_7BIT 1
|
||||
#define CONFIG_PARALLEL_DEBLOCKING 0
|
||||
#define CONFIG_PARALLEL_DEBLOCKING_15TAP 0
|
||||
#define CONFIG_PARALLEL_DEBLOCKING 1
|
||||
#define CONFIG_LOOPFILTERING_ACROSS_TILES 1
|
||||
#define CONFIG_TILE_GROUPS 1
|
||||
#define CONFIG_EC_ADAPT 1
|
||||
#define CONFIG_TEMPMV_SIGNALING 1
|
||||
#define CONFIG_RD_DEBUG 0
|
||||
#define CONFIG_REFERENCE_BUFFER 1
|
||||
|
|
@ -142,6 +148,7 @@
|
|||
#define CONFIG_ENTROPY_STATS 0
|
||||
#define CONFIG_MASKED_TX 0
|
||||
#define CONFIG_DEPENDENT_HORZTILES 0
|
||||
#define CONFIG_DIST_8X8 0
|
||||
#define CONFIG_DAALA_DIST 0
|
||||
#define CONFIG_TRIPRED 0
|
||||
#define CONFIG_PALETTE_THROUGHPUT 1
|
||||
|
|
@ -154,8 +161,18 @@
|
|||
#define CONFIG_COMPOUND_SINGLEREF 0
|
||||
#define CONFIG_AOM_QM 0
|
||||
#define CONFIG_ONE_SIDED_COMPOUND 1
|
||||
#define CONFIG_SMOOTH_HV 0
|
||||
#define CONFIG_EXT_COMP_REFS 0
|
||||
#define CONFIG_SMOOTH_HV 1
|
||||
#define CONFIG_VAR_REFS 0
|
||||
#define CONFIG_RECT_INTRA_PRED 1
|
||||
#define CONFIG_LGT 0
|
||||
#define CONFIG_SBL_SYMBOL 0
|
||||
#define CONFIG_NCOBMC_ADAPT_WEIGHT 0
|
||||
#define CONFIG_BGSPRITE 0
|
||||
#define CONFIG_VAR_TX_NO_TX_MODE 0
|
||||
#define CONFIG_MRC_TX 0
|
||||
#define CONFIG_LPF_DIRECT 0
|
||||
#define CONFIG_UV_LVL 0
|
||||
#define CONFIG_ANALYZER 0
|
||||
#define DECODE_WIDTH_LIMIT 8192
|
||||
#define DECODE_HEIGHT_LIMIT 4608
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -12,6 +12,7 @@
|
|||
*/
|
||||
|
||||
#include "aom/aom_integer.h"
|
||||
#include "aom_dsp/txfm_common.h"
|
||||
#include "av1/common/common.h"
|
||||
#include "av1/common/enums.h"
|
||||
#include "av1/common/quant_common.h"
|
||||
|
|
@ -24,6 +25,7 @@ struct macroblockd;
|
|||
|
||||
/* Encoder forward decls */
|
||||
struct macroblock;
|
||||
struct txfm_param;
|
||||
struct aom_variance_vtable;
|
||||
struct search_site_config;
|
||||
struct mv;
|
||||
|
|
@ -66,46 +68,46 @@ int av1_diamond_search_sad_c(struct macroblock *x, const struct search_site_conf
|
|||
void av1_fdct8x8_quant_c(const int16_t *input, int stride, tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
#define av1_fdct8x8_quant av1_fdct8x8_quant_c
|
||||
|
||||
void av1_fht16x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht16x16_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht16x16 av1_fht16x16_c
|
||||
|
||||
void av1_fht16x32_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht16x32_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht16x32 av1_fht16x32_c
|
||||
|
||||
void av1_fht16x4_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht16x4_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht16x4 av1_fht16x4_c
|
||||
|
||||
void av1_fht16x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht16x8_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht16x8 av1_fht16x8_c
|
||||
|
||||
void av1_fht32x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht32x16_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht32x16 av1_fht32x16_c
|
||||
|
||||
void av1_fht32x32_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht32x32_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht32x32 av1_fht32x32_c
|
||||
|
||||
void av1_fht32x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht32x8_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht32x8 av1_fht32x8_c
|
||||
|
||||
void av1_fht4x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht4x16_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht4x16 av1_fht4x16_c
|
||||
|
||||
void av1_fht4x4_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht4x4_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht4x4 av1_fht4x4_c
|
||||
|
||||
void av1_fht4x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht4x8_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht4x8 av1_fht4x8_c
|
||||
|
||||
void av1_fht8x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht8x16_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht8x16 av1_fht8x16_c
|
||||
|
||||
void av1_fht8x32_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht8x32_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht8x32 av1_fht8x32_c
|
||||
|
||||
void av1_fht8x4_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht8x4_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht8x4 av1_fht8x4_c
|
||||
|
||||
void av1_fht8x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht8x8_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht8x8 av1_fht8x8_c
|
||||
|
||||
int av1_full_range_search_c(const struct macroblock *x, const struct search_site_config *cfg, struct mv *ref_mv, struct mv *best_mv, int search_param, int sad_per_bit, int *num00, const struct aom_variance_vtable *fn_ptr, const struct mv *center_mv);
|
||||
|
|
@ -120,15 +122,33 @@ void av1_fwd_idtx_c(const int16_t *src_diff, tran_low_t *coeff, int stride, int
|
|||
void av1_fwd_txfm2d_16x16_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_fwd_txfm2d_16x16 av1_fwd_txfm2d_16x16_c
|
||||
|
||||
void av1_fwd_txfm2d_16x32_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_fwd_txfm2d_16x32 av1_fwd_txfm2d_16x32_c
|
||||
|
||||
void av1_fwd_txfm2d_16x8_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_fwd_txfm2d_16x8 av1_fwd_txfm2d_16x8_c
|
||||
|
||||
void av1_fwd_txfm2d_32x16_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_fwd_txfm2d_32x16 av1_fwd_txfm2d_32x16_c
|
||||
|
||||
void av1_fwd_txfm2d_32x32_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_fwd_txfm2d_32x32 av1_fwd_txfm2d_32x32_c
|
||||
|
||||
void av1_fwd_txfm2d_4x4_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_fwd_txfm2d_4x4 av1_fwd_txfm2d_4x4_c
|
||||
|
||||
void av1_fwd_txfm2d_4x8_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_fwd_txfm2d_4x8 av1_fwd_txfm2d_4x8_c
|
||||
|
||||
void av1_fwd_txfm2d_64x64_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_fwd_txfm2d_64x64 av1_fwd_txfm2d_64x64_c
|
||||
|
||||
void av1_fwd_txfm2d_8x16_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_fwd_txfm2d_8x16 av1_fwd_txfm2d_8x16_c
|
||||
|
||||
void av1_fwd_txfm2d_8x4_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_fwd_txfm2d_8x4 av1_fwd_txfm2d_8x4_c
|
||||
|
||||
void av1_fwd_txfm2d_8x8_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_fwd_txfm2d_8x8 av1_fwd_txfm2d_8x8_c
|
||||
|
||||
|
|
@ -171,88 +191,46 @@ void av1_highbd_convolve_init_c(void);
|
|||
void av1_highbd_convolve_vert_c(const uint16_t *src, int src_stride, uint16_t *dst, int dst_stride, int w, int h, const InterpFilterParams fp, const int subpel_x_q4, int x_step_q4, int avg, int bd);
|
||||
#define av1_highbd_convolve_vert av1_highbd_convolve_vert_c
|
||||
|
||||
void av1_highbd_fht16x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht16x16 av1_highbd_fht16x16_c
|
||||
|
||||
void av1_highbd_fht16x32_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht16x32 av1_highbd_fht16x32_c
|
||||
|
||||
void av1_highbd_fht16x4_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht16x4 av1_highbd_fht16x4_c
|
||||
|
||||
void av1_highbd_fht16x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht16x8 av1_highbd_fht16x8_c
|
||||
|
||||
void av1_highbd_fht32x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht32x16 av1_highbd_fht32x16_c
|
||||
|
||||
void av1_highbd_fht32x32_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht32x32 av1_highbd_fht32x32_c
|
||||
|
||||
void av1_highbd_fht32x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht32x8 av1_highbd_fht32x8_c
|
||||
|
||||
void av1_highbd_fht4x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht4x16 av1_highbd_fht4x16_c
|
||||
|
||||
void av1_highbd_fht4x4_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht4x4 av1_highbd_fht4x4_c
|
||||
|
||||
void av1_highbd_fht4x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht4x8 av1_highbd_fht4x8_c
|
||||
|
||||
void av1_highbd_fht8x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht8x16 av1_highbd_fht8x16_c
|
||||
|
||||
void av1_highbd_fht8x32_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht8x32 av1_highbd_fht8x32_c
|
||||
|
||||
void av1_highbd_fht8x4_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht8x4 av1_highbd_fht8x4_c
|
||||
|
||||
void av1_highbd_fht8x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht8x8 av1_highbd_fht8x8_c
|
||||
|
||||
void av1_highbd_fwht4x4_c(const int16_t *input, tran_low_t *output, int stride);
|
||||
#define av1_highbd_fwht4x4 av1_highbd_fwht4x4_c
|
||||
|
||||
void av1_highbd_iht16x16_256_add_c(const tran_low_t *input, uint8_t *output, int pitch, int tx_type, int bd);
|
||||
void av1_highbd_iht16x16_256_add_c(const tran_low_t *input, uint8_t *output, int pitch, const struct txfm_param *param);
|
||||
#define av1_highbd_iht16x16_256_add av1_highbd_iht16x16_256_add_c
|
||||
|
||||
void av1_highbd_iht16x32_512_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht16x32_512_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht16x32_512_add av1_highbd_iht16x32_512_add_c
|
||||
|
||||
void av1_highbd_iht16x4_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht16x4_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht16x4_64_add av1_highbd_iht16x4_64_add_c
|
||||
|
||||
void av1_highbd_iht16x8_128_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht16x8_128_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht16x8_128_add av1_highbd_iht16x8_128_add_c
|
||||
|
||||
void av1_highbd_iht32x16_512_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht32x16_512_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht32x16_512_add av1_highbd_iht32x16_512_add_c
|
||||
|
||||
void av1_highbd_iht32x8_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht32x8_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht32x8_256_add av1_highbd_iht32x8_256_add_c
|
||||
|
||||
void av1_highbd_iht4x16_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht4x16_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht4x16_64_add av1_highbd_iht4x16_64_add_c
|
||||
|
||||
void av1_highbd_iht4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht4x4_16_add av1_highbd_iht4x4_16_add_c
|
||||
|
||||
void av1_highbd_iht4x8_32_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht4x8_32_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht4x8_32_add av1_highbd_iht4x8_32_add_c
|
||||
|
||||
void av1_highbd_iht8x16_128_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht8x16_128_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht8x16_128_add av1_highbd_iht8x16_128_add_c
|
||||
|
||||
void av1_highbd_iht8x32_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht8x32_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht8x32_256_add av1_highbd_iht8x32_256_add_c
|
||||
|
||||
void av1_highbd_iht8x4_32_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht8x4_32_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht8x4_32_add av1_highbd_iht8x4_32_add_c
|
||||
|
||||
void av1_highbd_iht8x8_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht8x8_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht8x8_64_add av1_highbd_iht8x8_64_add_c
|
||||
|
||||
void av1_highbd_quantize_b_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan, int log_scale);
|
||||
|
|
@ -264,63 +242,81 @@ void av1_highbd_quantize_fp_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, in
|
|||
void av1_highbd_temporal_filter_apply_c(uint8_t *frame1, unsigned int stride, uint8_t *frame2, unsigned int block_width, unsigned int block_height, int strength, int filter_weight, unsigned int *accumulator, uint16_t *count);
|
||||
#define av1_highbd_temporal_filter_apply av1_highbd_temporal_filter_apply_c
|
||||
|
||||
void av1_highbd_warp_affine_c(const int32_t *mat, const uint16_t *ref, int width, int height, int stride, uint16_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, int bd, int comp_avg, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
void av1_highbd_warp_affine_c(const int32_t *mat, const uint16_t *ref, int width, int height, int stride, uint16_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, int bd, ConvolveParams *conv_params, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
#define av1_highbd_warp_affine av1_highbd_warp_affine_c
|
||||
|
||||
void av1_iht16x16_256_add_c(const tran_low_t *input, uint8_t *output, int pitch, int tx_type);
|
||||
void av1_iht16x16_256_add_c(const tran_low_t *input, uint8_t *output, int pitch, const struct txfm_param *param);
|
||||
#define av1_iht16x16_256_add av1_iht16x16_256_add_c
|
||||
|
||||
void av1_iht16x32_512_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht16x32_512_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht16x32_512_add av1_iht16x32_512_add_c
|
||||
|
||||
void av1_iht16x4_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht16x4_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht16x4_64_add av1_iht16x4_64_add_c
|
||||
|
||||
void av1_iht16x8_128_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht16x8_128_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht16x8_128_add av1_iht16x8_128_add_c
|
||||
|
||||
void av1_iht32x16_512_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht32x16_512_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht32x16_512_add av1_iht32x16_512_add_c
|
||||
|
||||
void av1_iht32x32_1024_add_c(const tran_low_t *input, uint8_t *output, int pitch, int tx_type);
|
||||
void av1_iht32x32_1024_add_c(const tran_low_t *input, uint8_t *output, int pitch, const struct txfm_param *param);
|
||||
#define av1_iht32x32_1024_add av1_iht32x32_1024_add_c
|
||||
|
||||
void av1_iht32x8_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht32x8_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht32x8_256_add av1_iht32x8_256_add_c
|
||||
|
||||
void av1_iht4x16_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht4x16_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht4x16_64_add av1_iht4x16_64_add_c
|
||||
|
||||
void av1_iht4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht4x4_16_add av1_iht4x4_16_add_c
|
||||
|
||||
void av1_iht4x8_32_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht4x8_32_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht4x8_32_add av1_iht4x8_32_add_c
|
||||
|
||||
void av1_iht8x16_128_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht8x16_128_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht8x16_128_add av1_iht8x16_128_add_c
|
||||
|
||||
void av1_iht8x32_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht8x32_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht8x32_256_add av1_iht8x32_256_add_c
|
||||
|
||||
void av1_iht8x4_32_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht8x4_32_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht8x4_32_add av1_iht8x4_32_add_c
|
||||
|
||||
void av1_iht8x8_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht8x8_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht8x8_64_add av1_iht8x8_64_add_c
|
||||
|
||||
void av1_inv_txfm2d_add_16x16_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_inv_txfm2d_add_16x16 av1_inv_txfm2d_add_16x16_c
|
||||
|
||||
void av1_inv_txfm2d_add_16x32_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_inv_txfm2d_add_16x32 av1_inv_txfm2d_add_16x32_c
|
||||
|
||||
void av1_inv_txfm2d_add_16x8_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_inv_txfm2d_add_16x8 av1_inv_txfm2d_add_16x8_c
|
||||
|
||||
void av1_inv_txfm2d_add_32x16_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_inv_txfm2d_add_32x16 av1_inv_txfm2d_add_32x16_c
|
||||
|
||||
void av1_inv_txfm2d_add_32x32_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_inv_txfm2d_add_32x32 av1_inv_txfm2d_add_32x32_c
|
||||
|
||||
void av1_inv_txfm2d_add_4x4_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_inv_txfm2d_add_4x4 av1_inv_txfm2d_add_4x4_c
|
||||
|
||||
void av1_inv_txfm2d_add_4x8_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_inv_txfm2d_add_4x8 av1_inv_txfm2d_add_4x8_c
|
||||
|
||||
void av1_inv_txfm2d_add_64x64_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_inv_txfm2d_add_64x64 av1_inv_txfm2d_add_64x64_c
|
||||
|
||||
void av1_inv_txfm2d_add_8x16_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_inv_txfm2d_add_8x16 av1_inv_txfm2d_add_8x16_c
|
||||
|
||||
void av1_inv_txfm2d_add_8x4_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_inv_txfm2d_add_8x4 av1_inv_txfm2d_add_8x4_c
|
||||
|
||||
void av1_inv_txfm2d_add_8x8_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_inv_txfm2d_add_8x8 av1_inv_txfm2d_add_8x8_c
|
||||
|
||||
|
|
@ -339,7 +335,7 @@ void av1_quantize_fp_32x32_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int
|
|||
void av1_temporal_filter_apply_c(uint8_t *frame1, unsigned int stride, uint8_t *frame2, unsigned int block_width, unsigned int block_height, int strength, int filter_weight, unsigned int *accumulator, uint16_t *count);
|
||||
#define av1_temporal_filter_apply av1_temporal_filter_apply_c
|
||||
|
||||
void av1_warp_affine_c(const int32_t *mat, const uint8_t *ref, int width, int height, int stride, uint8_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, int comp_avg, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
void av1_warp_affine_c(const int32_t *mat, const uint8_t *ref, int width, int height, int stride, uint8_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, ConvolveParams *conv_params, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
#define av1_warp_affine av1_warp_affine_c
|
||||
|
||||
void av1_wedge_compute_delta_squares_c(int16_t *d, const int16_t *a, const int16_t *b, int N);
|
||||
|
|
|
|||
|
|
@ -1,146 +1,163 @@
|
|||
%define ARCH_ARM 0
|
||||
%define ARCH_MIPS 0
|
||||
%define ARCH_X86 1
|
||||
%define ARCH_X86_64 0
|
||||
%define HAVE_NEON 0
|
||||
%define HAVE_NEON_ASM 0
|
||||
%define HAVE_MIPS32 0
|
||||
%define HAVE_DSPR2 0
|
||||
%define HAVE_MSA 0
|
||||
%define HAVE_MIPS64 0
|
||||
%define HAVE_MMX 1
|
||||
%define HAVE_SSE 1
|
||||
%define HAVE_SSE2 1
|
||||
%define HAVE_SSE3 1
|
||||
%define HAVE_SSSE3 1
|
||||
%define HAVE_SSE4_1 1
|
||||
%define HAVE_AVX 1
|
||||
%define HAVE_AVX2 1
|
||||
%define HAVE_AOM_PORTS 1
|
||||
%define HAVE_FEXCEPT 1
|
||||
%define HAVE_PTHREAD_H 1
|
||||
%define HAVE_WXWIDGETS 0
|
||||
%define CONFIG_DEPENDENCY_TRACKING 1
|
||||
%define CONFIG_EXTERNAL_BUILD 1
|
||||
%define CONFIG_INSTALL_DOCS 1
|
||||
%define CONFIG_INSTALL_BINS 1
|
||||
%define CONFIG_INSTALL_LIBS 1
|
||||
%define CONFIG_INSTALL_SRCS 0
|
||||
%define CONFIG_DEBUG 0
|
||||
%define CONFIG_GPROF 0
|
||||
%define CONFIG_GCOV 0
|
||||
%define CONFIG_RVCT 0
|
||||
%define CONFIG_GCC 1
|
||||
%define CONFIG_MSVS 0
|
||||
%define CONFIG_PIC 1
|
||||
%define CONFIG_BIG_ENDIAN 0
|
||||
%define CONFIG_CODEC_SRCS 0
|
||||
%define CONFIG_DEBUG_LIBS 0
|
||||
%define CONFIG_RUNTIME_CPU_DETECT 1
|
||||
%define CONFIG_POSTPROC 1
|
||||
%define CONFIG_MULTITHREAD 1
|
||||
%define CONFIG_INTERNAL_STATS 0
|
||||
%define CONFIG_AV1_ENCODER 1
|
||||
%define CONFIG_AV1_DECODER 1
|
||||
%define CONFIG_AV1 1
|
||||
%define CONFIG_STATIC_MSVCRT 0
|
||||
%define CONFIG_SPATIAL_RESAMPLING 1
|
||||
%define CONFIG_REALTIME_ONLY 0
|
||||
%define CONFIG_ONTHEFLY_BITPACKING 0
|
||||
%define CONFIG_ERROR_CONCEALMENT 0
|
||||
%define CONFIG_SHARED 0
|
||||
%define CONFIG_STATIC 1
|
||||
%define CONFIG_SMALL 0
|
||||
%define CONFIG_POSTPROC_VISUALIZER 0
|
||||
%define CONFIG_OS_SUPPORT 1
|
||||
%define CONFIG_UNIT_TESTS 0
|
||||
%define CONFIG_WEBM_IO 1
|
||||
%define CONFIG_LIBYUV 1
|
||||
%define CONFIG_ACCOUNTING 0
|
||||
%define CONFIG_INSPECTION 0
|
||||
%define CONFIG_DECODE_PERF_TESTS 0
|
||||
%define CONFIG_ENCODE_PERF_TESTS 0
|
||||
%define CONFIG_COEFFICIENT_RANGE_CHECKING 0
|
||||
%define CONFIG_LOWBITDEPTH 1
|
||||
%define CONFIG_HIGHBITDEPTH 1
|
||||
%define CONFIG_EXPERIMENTAL 0
|
||||
%define CONFIG_SIZE_LIMIT 1
|
||||
%define CONFIG_FP_MB_STATS 0
|
||||
%define CONFIG_CDEF 1
|
||||
%define CONFIG_VAR_TX 1
|
||||
%define CONFIG_RECT_TX 1
|
||||
%define CONFIG_RECT_TX_EXT 0
|
||||
%define CONFIG_TPL_MV 0
|
||||
%define CONFIG_DUAL_FILTER 1
|
||||
%define CONFIG_CONVOLVE_ROUND 0
|
||||
%define CONFIG_COMPOUND_ROUND 0
|
||||
%define CONFIG_EXT_TX 1
|
||||
%define CONFIG_DPCM_INTRA 0
|
||||
%define CONFIG_TX64X64 0
|
||||
%define CONFIG_EXT_INTRA 1
|
||||
%define CONFIG_INTRA_INTERP 0
|
||||
%define CONFIG_FILTER_INTRA 0
|
||||
%define CONFIG_INTRA_EDGE 0
|
||||
%define CONFIG_INTRABC 0
|
||||
%define CONFIG_EXT_INTER 1
|
||||
%define CONFIG_INTERINTRA 1
|
||||
%define CONFIG_WEDGE 1
|
||||
%define CONFIG_COMPOUND_SEGMENT 1
|
||||
%define CONFIG_EXT_REFS 1
|
||||
%define CONFIG_GLOBAL_MOTION 1
|
||||
%define CONFIG_NEW_QUANT 0
|
||||
%define CONFIG_SUPERTX 0
|
||||
%define CONFIG_ANS 0
|
||||
%define CONFIG_LOOP_RESTORATION 0
|
||||
%define CONFIG_EXT_PARTITION 0
|
||||
%define CONFIG_EXT_PARTITION_TYPES 0
|
||||
%define CONFIG_UNPOISON_PARTITION_CTX 0
|
||||
%define CONFIG_EXT_TILE 0
|
||||
%define CONFIG_MOTION_VAR 1
|
||||
%define CONFIG_NCOBMC 0
|
||||
%define CONFIG_WARPED_MOTION 1
|
||||
%define CONFIG_Q_ADAPT_PROBS 0
|
||||
%define CONFIG_BITSTREAM_DEBUG 0
|
||||
%define CONFIG_ALT_INTRA 1
|
||||
%define CONFIG_PALETTE 1
|
||||
%define CONFIG_PALETTE_DELTA_ENCODING 0
|
||||
%define CONFIG_RAWBITS 0
|
||||
%define CONFIG_EC_SMALLMUL 1
|
||||
%define CONFIG_PVQ 0
|
||||
%define CONFIG_CFL 0
|
||||
%define CONFIG_XIPHRC 0
|
||||
%define CONFIG_CB4X4 1
|
||||
%define CONFIG_CHROMA_2X2 0
|
||||
%define CONFIG_CHROMA_SUB8X8 1
|
||||
%define CONFIG_FRAME_SIZE 0
|
||||
%define CONFIG_DELTA_Q 1
|
||||
%define CONFIG_EXT_DELTA_Q 1
|
||||
%define CONFIG_ADAPT_SCAN 0
|
||||
%define CONFIG_FILTER_7BIT 1
|
||||
%define CONFIG_PARALLEL_DEBLOCKING 0
|
||||
%define CONFIG_PARALLEL_DEBLOCKING_15TAP 0
|
||||
%define CONFIG_LOOPFILTERING_ACROSS_TILES 1
|
||||
%define CONFIG_TILE_GROUPS 1
|
||||
%define CONFIG_EC_ADAPT 1
|
||||
%define CONFIG_TEMPMV_SIGNALING 1
|
||||
%define CONFIG_RD_DEBUG 0
|
||||
%define CONFIG_REFERENCE_BUFFER 1
|
||||
%define CONFIG_COEF_INTERLEAVE 0
|
||||
%define CONFIG_ENTROPY_STATS 0
|
||||
%define CONFIG_MASKED_TX 0
|
||||
%define CONFIG_DEPENDENT_HORZTILES 0
|
||||
%define CONFIG_DAALA_DIST 0
|
||||
%define CONFIG_TRIPRED 0
|
||||
%define CONFIG_PALETTE_THROUGHPUT 1
|
||||
%define CONFIG_REF_ADAPT 0
|
||||
%define CONFIG_LV_MAP 0
|
||||
%define CONFIG_TXK_SEL 0
|
||||
%define CONFIG_MV_COMPRESS 1
|
||||
%define CONFIG_FRAME_SUPERRES 0
|
||||
%define CONFIG_NEW_MULTISYMBOL 0
|
||||
%define CONFIG_COMPOUND_SINGLEREF 0
|
||||
%define CONFIG_AOM_QM 0
|
||||
%define CONFIG_ONE_SIDED_COMPOUND 1
|
||||
%define CONFIG_SMOOTH_HV 0
|
||||
%define CONFIG_VAR_REFS 0
|
||||
%define CONFIG_ANALYZER 0
|
||||
ARCH_ARM equ 0
|
||||
ARCH_MIPS equ 0
|
||||
ARCH_X86 equ 1
|
||||
ARCH_X86_64 equ 0
|
||||
HAVE_NEON equ 0
|
||||
HAVE_NEON_ASM equ 0
|
||||
HAVE_MIPS32 equ 0
|
||||
HAVE_DSPR2 equ 0
|
||||
HAVE_MSA equ 0
|
||||
HAVE_MIPS64 equ 0
|
||||
HAVE_MMX equ 1
|
||||
HAVE_SSE equ 1
|
||||
HAVE_SSE2 equ 1
|
||||
HAVE_SSE3 equ 1
|
||||
HAVE_SSSE3 equ 1
|
||||
HAVE_SSE4_1 equ 1
|
||||
HAVE_AVX equ 1
|
||||
HAVE_AVX2 equ 1
|
||||
HAVE_AOM_PORTS equ 1
|
||||
HAVE_FEXCEPT equ 1
|
||||
HAVE_PTHREAD_H equ 1
|
||||
HAVE_WXWIDGETS equ 0
|
||||
CONFIG_DEPENDENCY_TRACKING equ 1
|
||||
CONFIG_EXTERNAL_BUILD equ 1
|
||||
CONFIG_INSTALL_DOCS equ 1
|
||||
CONFIG_INSTALL_BINS equ 1
|
||||
CONFIG_INSTALL_LIBS equ 1
|
||||
CONFIG_INSTALL_SRCS equ 0
|
||||
CONFIG_DEBUG equ 0
|
||||
CONFIG_GPROF equ 0
|
||||
CONFIG_GCOV equ 0
|
||||
CONFIG_RVCT equ 0
|
||||
CONFIG_GCC equ 1
|
||||
CONFIG_MSVS equ 0
|
||||
CONFIG_PIC equ 1
|
||||
CONFIG_BIG_ENDIAN equ 0
|
||||
CONFIG_CODEC_SRCS equ 0
|
||||
CONFIG_DEBUG_LIBS equ 0
|
||||
CONFIG_RUNTIME_CPU_DETECT equ 1
|
||||
CONFIG_POSTPROC equ 1
|
||||
CONFIG_MULTITHREAD equ 1
|
||||
CONFIG_INTERNAL_STATS equ 0
|
||||
CONFIG_AV1_ENCODER equ 1
|
||||
CONFIG_AV1_DECODER equ 1
|
||||
CONFIG_AV1 equ 1
|
||||
CONFIG_STATIC_MSVCRT equ 0
|
||||
CONFIG_SPATIAL_RESAMPLING equ 1
|
||||
CONFIG_REALTIME_ONLY equ 0
|
||||
CONFIG_ONTHEFLY_BITPACKING equ 0
|
||||
CONFIG_ERROR_CONCEALMENT equ 0
|
||||
CONFIG_SHARED equ 0
|
||||
CONFIG_STATIC equ 1
|
||||
CONFIG_SMALL equ 0
|
||||
CONFIG_POSTPROC_VISUALIZER equ 0
|
||||
CONFIG_OS_SUPPORT equ 1
|
||||
CONFIG_UNIT_TESTS equ 0
|
||||
CONFIG_WEBM_IO equ 1
|
||||
CONFIG_LIBYUV equ 1
|
||||
CONFIG_ACCOUNTING equ 0
|
||||
CONFIG_INSPECTION equ 0
|
||||
CONFIG_DECODE_PERF_TESTS equ 0
|
||||
CONFIG_ENCODE_PERF_TESTS equ 0
|
||||
CONFIG_COEFFICIENT_RANGE_CHECKING equ 0
|
||||
CONFIG_LOWBITDEPTH equ 1
|
||||
CONFIG_HIGHBITDEPTH equ 1
|
||||
CONFIG_EXPERIMENTAL equ 0
|
||||
CONFIG_SIZE_LIMIT equ 1
|
||||
CONFIG_COLORSPACE_HEADERS equ 0
|
||||
CONFIG_FP_MB_STATS equ 0
|
||||
CONFIG_CDEF equ 1
|
||||
CONFIG_VAR_TX equ 1
|
||||
CONFIG_RECT_TX equ 1
|
||||
CONFIG_RECT_TX_EXT equ 0
|
||||
CONFIG_TPL_MV equ 0
|
||||
CONFIG_DUAL_FILTER equ 1
|
||||
CONFIG_CONVOLVE_ROUND equ 0
|
||||
CONFIG_COMPOUND_ROUND equ 0
|
||||
CONFIG_EXT_TX equ 1
|
||||
CONFIG_DPCM_INTRA equ 0
|
||||
CONFIG_TX64X64 equ 0
|
||||
CONFIG_EXT_INTRA equ 1
|
||||
CONFIG_INTRA_INTERP equ 0
|
||||
CONFIG_FILTER_INTRA equ 0
|
||||
CONFIG_INTRA_EDGE equ 0
|
||||
CONFIG_INTRABC equ 0
|
||||
CONFIG_EXT_INTER equ 1
|
||||
CONFIG_INTERINTRA equ 1
|
||||
CONFIG_WEDGE equ 1
|
||||
CONFIG_COMPOUND_SEGMENT equ 1
|
||||
CONFIG_EXT_REFS equ 1
|
||||
CONFIG_ALTREF2 equ 0
|
||||
CONFIG_SPEED_REFS equ 0
|
||||
CONFIG_GF_GROUPS equ 0
|
||||
CONFIG_FLEX_REFS equ 0
|
||||
CONFIG_GLOBAL_MOTION equ 1
|
||||
CONFIG_NEW_QUANT equ 0
|
||||
CONFIG_SUPERTX equ 0
|
||||
CONFIG_ANS equ 0
|
||||
CONFIG_LOOP_RESTORATION equ 0
|
||||
CONFIG_EXT_PARTITION equ 0
|
||||
CONFIG_EXT_PARTITION_TYPES equ 0
|
||||
CONFIG_UNPOISON_PARTITION_CTX equ 0
|
||||
CONFIG_EXT_TILE equ 0
|
||||
CONFIG_MOTION_VAR equ 1
|
||||
CONFIG_NCOBMC equ 0
|
||||
CONFIG_WARPED_MOTION equ 1
|
||||
CONFIG_Q_ADAPT_PROBS equ 0
|
||||
CONFIG_BITSTREAM_DEBUG equ 0
|
||||
CONFIG_INTER_STATS_ONLY equ 0
|
||||
CONFIG_ALT_INTRA equ 1
|
||||
CONFIG_PALETTE equ 1
|
||||
CONFIG_PALETTE_DELTA_ENCODING equ 0
|
||||
CONFIG_RAWBITS equ 0
|
||||
CONFIG_EC_SMALLMUL equ 1
|
||||
CONFIG_PVQ equ 0
|
||||
CONFIG_CFL equ 0
|
||||
CONFIG_XIPHRC equ 0
|
||||
CONFIG_DCT_ONLY equ 0
|
||||
CONFIG_DAALA_DCT4 equ 0
|
||||
CONFIG_DAALA_DCT8 equ 0
|
||||
CONFIG_CB4X4 equ 1
|
||||
CONFIG_CHROMA_2X2 equ 0
|
||||
CONFIG_CHROMA_SUB8X8 equ 1
|
||||
CONFIG_FRAME_SIZE equ 0
|
||||
CONFIG_DELTA_Q equ 1
|
||||
CONFIG_EXT_DELTA_Q equ 1
|
||||
CONFIG_ADAPT_SCAN equ 0
|
||||
CONFIG_FILTER_7BIT equ 1
|
||||
CONFIG_PARALLEL_DEBLOCKING equ 1
|
||||
CONFIG_LOOPFILTERING_ACROSS_TILES equ 1
|
||||
CONFIG_TEMPMV_SIGNALING equ 1
|
||||
CONFIG_RD_DEBUG equ 0
|
||||
CONFIG_REFERENCE_BUFFER equ 1
|
||||
CONFIG_COEF_INTERLEAVE equ 0
|
||||
CONFIG_ENTROPY_STATS equ 0
|
||||
CONFIG_MASKED_TX equ 0
|
||||
CONFIG_DEPENDENT_HORZTILES equ 0
|
||||
CONFIG_DIST_8X8 equ 0
|
||||
CONFIG_DAALA_DIST equ 0
|
||||
CONFIG_TRIPRED equ 0
|
||||
CONFIG_PALETTE_THROUGHPUT equ 1
|
||||
CONFIG_REF_ADAPT equ 0
|
||||
CONFIG_LV_MAP equ 0
|
||||
CONFIG_TXK_SEL equ 0
|
||||
CONFIG_MV_COMPRESS equ 1
|
||||
CONFIG_FRAME_SUPERRES equ 0
|
||||
CONFIG_NEW_MULTISYMBOL equ 0
|
||||
CONFIG_COMPOUND_SINGLEREF equ 0
|
||||
CONFIG_AOM_QM equ 0
|
||||
CONFIG_ONE_SIDED_COMPOUND equ 1
|
||||
CONFIG_EXT_COMP_REFS equ 0
|
||||
CONFIG_SMOOTH_HV equ 1
|
||||
CONFIG_VAR_REFS equ 0
|
||||
CONFIG_RECT_INTRA_PRED equ 1
|
||||
CONFIG_LGT equ 0
|
||||
CONFIG_SBL_SYMBOL equ 0
|
||||
CONFIG_NCOBMC_ADAPT_WEIGHT equ 0
|
||||
CONFIG_BGSPRITE equ 0
|
||||
CONFIG_VAR_TX_NO_TX_MODE equ 0
|
||||
CONFIG_MRC_TX equ 0
|
||||
CONFIG_LPF_DIRECT equ 0
|
||||
CONFIG_UV_LVL equ 0
|
||||
CONFIG_ANALYZER equ 0
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
/* This file automatically generated by configure. Do not edit! */
|
||||
#ifndef AOM_CONFIG_H
|
||||
#define AOM_CONFIG_H
|
||||
#define RESTRICT
|
||||
#define RESTRICT
|
||||
#define INLINE inline
|
||||
#define ARCH_ARM 0
|
||||
#define ARCH_MIPS 0
|
||||
|
|
@ -78,6 +78,7 @@
|
|||
#define CONFIG_HIGHBITDEPTH 1
|
||||
#define CONFIG_EXPERIMENTAL 0
|
||||
#define CONFIG_SIZE_LIMIT 1
|
||||
#define CONFIG_COLORSPACE_HEADERS 0
|
||||
#define CONFIG_FP_MB_STATS 0
|
||||
#define CONFIG_CDEF 1
|
||||
#define CONFIG_VAR_TX 1
|
||||
|
|
@ -100,6 +101,10 @@
|
|||
#define CONFIG_WEDGE 1
|
||||
#define CONFIG_COMPOUND_SEGMENT 1
|
||||
#define CONFIG_EXT_REFS 1
|
||||
#define CONFIG_ALTREF2 0
|
||||
#define CONFIG_SPEED_REFS 0
|
||||
#define CONFIG_GF_GROUPS 0
|
||||
#define CONFIG_FLEX_REFS 0
|
||||
#define CONFIG_GLOBAL_MOTION 1
|
||||
#define CONFIG_NEW_QUANT 0
|
||||
#define CONFIG_SUPERTX 0
|
||||
|
|
@ -114,6 +119,7 @@
|
|||
#define CONFIG_WARPED_MOTION 1
|
||||
#define CONFIG_Q_ADAPT_PROBS 0
|
||||
#define CONFIG_BITSTREAM_DEBUG 0
|
||||
#define CONFIG_INTER_STATS_ONLY 0
|
||||
#define CONFIG_ALT_INTRA 1
|
||||
#define CONFIG_PALETTE 1
|
||||
#define CONFIG_PALETTE_DELTA_ENCODING 0
|
||||
|
|
@ -122,6 +128,9 @@
|
|||
#define CONFIG_PVQ 0
|
||||
#define CONFIG_CFL 0
|
||||
#define CONFIG_XIPHRC 0
|
||||
#define CONFIG_DCT_ONLY 0
|
||||
#define CONFIG_DAALA_DCT4 0
|
||||
#define CONFIG_DAALA_DCT8 0
|
||||
#define CONFIG_CB4X4 1
|
||||
#define CONFIG_CHROMA_2X2 0
|
||||
#define CONFIG_CHROMA_SUB8X8 1
|
||||
|
|
@ -130,11 +139,8 @@
|
|||
#define CONFIG_EXT_DELTA_Q 1
|
||||
#define CONFIG_ADAPT_SCAN 0
|
||||
#define CONFIG_FILTER_7BIT 1
|
||||
#define CONFIG_PARALLEL_DEBLOCKING 0
|
||||
#define CONFIG_PARALLEL_DEBLOCKING_15TAP 0
|
||||
#define CONFIG_PARALLEL_DEBLOCKING 1
|
||||
#define CONFIG_LOOPFILTERING_ACROSS_TILES 1
|
||||
#define CONFIG_TILE_GROUPS 1
|
||||
#define CONFIG_EC_ADAPT 1
|
||||
#define CONFIG_TEMPMV_SIGNALING 1
|
||||
#define CONFIG_RD_DEBUG 0
|
||||
#define CONFIG_REFERENCE_BUFFER 1
|
||||
|
|
@ -142,6 +148,7 @@
|
|||
#define CONFIG_ENTROPY_STATS 0
|
||||
#define CONFIG_MASKED_TX 0
|
||||
#define CONFIG_DEPENDENT_HORZTILES 0
|
||||
#define CONFIG_DIST_8X8 0
|
||||
#define CONFIG_DAALA_DIST 0
|
||||
#define CONFIG_TRIPRED 0
|
||||
#define CONFIG_PALETTE_THROUGHPUT 1
|
||||
|
|
@ -154,8 +161,18 @@
|
|||
#define CONFIG_COMPOUND_SINGLEREF 0
|
||||
#define CONFIG_AOM_QM 0
|
||||
#define CONFIG_ONE_SIDED_COMPOUND 1
|
||||
#define CONFIG_SMOOTH_HV 0
|
||||
#define CONFIG_EXT_COMP_REFS 0
|
||||
#define CONFIG_SMOOTH_HV 1
|
||||
#define CONFIG_VAR_REFS 0
|
||||
#define CONFIG_RECT_INTRA_PRED 1
|
||||
#define CONFIG_LGT 0
|
||||
#define CONFIG_SBL_SYMBOL 0
|
||||
#define CONFIG_NCOBMC_ADAPT_WEIGHT 0
|
||||
#define CONFIG_BGSPRITE 0
|
||||
#define CONFIG_VAR_TX_NO_TX_MODE 0
|
||||
#define CONFIG_MRC_TX 0
|
||||
#define CONFIG_LPF_DIRECT 0
|
||||
#define CONFIG_UV_LVL 0
|
||||
#define CONFIG_ANALYZER 0
|
||||
#define DECODE_WIDTH_LIMIT 8192
|
||||
#define DECODE_HEIGHT_LIMIT 4608
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -12,6 +12,7 @@
|
|||
*/
|
||||
|
||||
#include "aom/aom_integer.h"
|
||||
#include "aom_dsp/txfm_common.h"
|
||||
#include "av1/common/common.h"
|
||||
#include "av1/common/enums.h"
|
||||
#include "av1/common/quant_common.h"
|
||||
|
|
@ -24,6 +25,7 @@ struct macroblockd;
|
|||
|
||||
/* Encoder forward decls */
|
||||
struct macroblock;
|
||||
struct txfm_param;
|
||||
struct aom_variance_vtable;
|
||||
struct search_site_config;
|
||||
struct mv;
|
||||
|
|
@ -60,7 +62,8 @@ void aom_clpf_hblock_hbd_sse4_1(uint16_t *dst, const uint16_t *src, int dstride,
|
|||
RTCD_EXTERN void (*aom_clpf_hblock_hbd)(uint16_t *dst, const uint16_t *src, int dstride, int sstride, int sizex, int sizey, unsigned int strength, unsigned int bd);
|
||||
|
||||
int64_t av1_block_error_c(const tran_low_t *coeff, const tran_low_t *dqcoeff, intptr_t block_size, int64_t *ssz);
|
||||
#define av1_block_error av1_block_error_c
|
||||
int64_t av1_block_error_avx2(const tran_low_t *coeff, const tran_low_t *dqcoeff, intptr_t block_size, int64_t *ssz);
|
||||
RTCD_EXTERN int64_t (*av1_block_error)(const tran_low_t *coeff, const tran_low_t *dqcoeff, intptr_t block_size, int64_t *ssz);
|
||||
|
||||
void av1_convolve_horiz_c(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int w, int h, const InterpFilterParams fp, const int subpel_x_q4, int x_step_q4, ConvolveParams *conv_params);
|
||||
void av1_convolve_horiz_ssse3(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int w, int h, const InterpFilterParams fp, const int subpel_x_q4, int x_step_q4, ConvolveParams *conv_params);
|
||||
|
|
@ -76,59 +79,59 @@ int av1_diamond_search_sad_c(struct macroblock *x, const struct search_site_conf
|
|||
void av1_fdct8x8_quant_c(const int16_t *input, int stride, tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
#define av1_fdct8x8_quant av1_fdct8x8_quant_c
|
||||
|
||||
void av1_fht16x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht16x16_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht16x16_avx2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
RTCD_EXTERN void (*av1_fht16x16)(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht16x16_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht16x16_sse2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht16x16_avx2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
RTCD_EXTERN void (*av1_fht16x16)(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
|
||||
void av1_fht16x32_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht16x32_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
RTCD_EXTERN void (*av1_fht16x32)(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht16x32_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht16x32_sse2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
RTCD_EXTERN void (*av1_fht16x32)(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
|
||||
void av1_fht16x4_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht16x4_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht16x4 av1_fht16x4_c
|
||||
|
||||
void av1_fht16x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht16x8_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
RTCD_EXTERN void (*av1_fht16x8)(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht16x8_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht16x8_sse2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
RTCD_EXTERN void (*av1_fht16x8)(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
|
||||
void av1_fht32x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht32x16_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
RTCD_EXTERN void (*av1_fht32x16)(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht32x16_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht32x16_sse2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
RTCD_EXTERN void (*av1_fht32x16)(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
|
||||
void av1_fht32x32_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht32x32_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht32x32_avx2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
RTCD_EXTERN void (*av1_fht32x32)(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht32x32_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht32x32_sse2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht32x32_avx2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
RTCD_EXTERN void (*av1_fht32x32)(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
|
||||
void av1_fht32x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht32x8_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht32x8 av1_fht32x8_c
|
||||
|
||||
void av1_fht4x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht4x16_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht4x16 av1_fht4x16_c
|
||||
|
||||
void av1_fht4x4_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht4x4_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
RTCD_EXTERN void (*av1_fht4x4)(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht4x4_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht4x4_sse2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
RTCD_EXTERN void (*av1_fht4x4)(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
|
||||
void av1_fht4x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht4x8_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
RTCD_EXTERN void (*av1_fht4x8)(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht4x8_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht4x8_sse2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
RTCD_EXTERN void (*av1_fht4x8)(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
|
||||
void av1_fht8x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht8x16_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
RTCD_EXTERN void (*av1_fht8x16)(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht8x16_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht8x16_sse2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
RTCD_EXTERN void (*av1_fht8x16)(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
|
||||
void av1_fht8x32_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht8x32_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht8x32 av1_fht8x32_c
|
||||
|
||||
void av1_fht8x4_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht8x4_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
RTCD_EXTERN void (*av1_fht8x4)(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht8x4_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht8x4_sse2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
RTCD_EXTERN void (*av1_fht8x4)(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
|
||||
void av1_fht8x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht8x8_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
RTCD_EXTERN void (*av1_fht8x8)(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht8x8_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht8x8_sse2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
RTCD_EXTERN void (*av1_fht8x8)(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
|
||||
int av1_full_range_search_c(const struct macroblock *x, const struct search_site_config *cfg, struct mv *ref_mv, struct mv *best_mv, int search_param, int sad_per_bit, int *num00, const struct aom_variance_vtable *fn_ptr, const struct mv *center_mv);
|
||||
#define av1_full_range_search av1_full_range_search_c
|
||||
|
|
@ -145,6 +148,15 @@ void av1_fwd_txfm2d_16x16_c(const int16_t *input, int32_t *output, int stride, i
|
|||
void av1_fwd_txfm2d_16x16_sse4_1(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
RTCD_EXTERN void (*av1_fwd_txfm2d_16x16)(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
|
||||
void av1_fwd_txfm2d_16x32_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_fwd_txfm2d_16x32 av1_fwd_txfm2d_16x32_c
|
||||
|
||||
void av1_fwd_txfm2d_16x8_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_fwd_txfm2d_16x8 av1_fwd_txfm2d_16x8_c
|
||||
|
||||
void av1_fwd_txfm2d_32x16_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_fwd_txfm2d_32x16 av1_fwd_txfm2d_32x16_c
|
||||
|
||||
void av1_fwd_txfm2d_32x32_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
void av1_fwd_txfm2d_32x32_sse4_1(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
RTCD_EXTERN void (*av1_fwd_txfm2d_32x32)(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
|
|
@ -153,10 +165,19 @@ void av1_fwd_txfm2d_4x4_c(const int16_t *input, int32_t *output, int stride, int
|
|||
void av1_fwd_txfm2d_4x4_sse4_1(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
RTCD_EXTERN void (*av1_fwd_txfm2d_4x4)(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
|
||||
void av1_fwd_txfm2d_4x8_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_fwd_txfm2d_4x8 av1_fwd_txfm2d_4x8_c
|
||||
|
||||
void av1_fwd_txfm2d_64x64_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
void av1_fwd_txfm2d_64x64_sse4_1(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
RTCD_EXTERN void (*av1_fwd_txfm2d_64x64)(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
|
||||
void av1_fwd_txfm2d_8x16_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_fwd_txfm2d_8x16 av1_fwd_txfm2d_8x16_c
|
||||
|
||||
void av1_fwd_txfm2d_8x4_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_fwd_txfm2d_8x4 av1_fwd_txfm2d_8x4_c
|
||||
|
||||
void av1_fwd_txfm2d_8x8_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
void av1_fwd_txfm2d_8x8_sse4_1(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
RTCD_EXTERN void (*av1_fwd_txfm2d_8x8)(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
|
|
@ -204,89 +225,46 @@ void av1_highbd_convolve_vert_c(const uint16_t *src, int src_stride, uint16_t *d
|
|||
void av1_highbd_convolve_vert_sse4_1(const uint16_t *src, int src_stride, uint16_t *dst, int dst_stride, int w, int h, const InterpFilterParams fp, const int subpel_x_q4, int x_step_q4, int avg, int bd);
|
||||
RTCD_EXTERN void (*av1_highbd_convolve_vert)(const uint16_t *src, int src_stride, uint16_t *dst, int dst_stride, int w, int h, const InterpFilterParams fp, const int subpel_x_q4, int x_step_q4, int avg, int bd);
|
||||
|
||||
void av1_highbd_fht16x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht16x16 av1_highbd_fht16x16_c
|
||||
|
||||
void av1_highbd_fht16x32_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht16x32 av1_highbd_fht16x32_c
|
||||
|
||||
void av1_highbd_fht16x4_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht16x4 av1_highbd_fht16x4_c
|
||||
|
||||
void av1_highbd_fht16x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht16x8 av1_highbd_fht16x8_c
|
||||
|
||||
void av1_highbd_fht32x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht32x16 av1_highbd_fht32x16_c
|
||||
|
||||
void av1_highbd_fht32x32_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht32x32 av1_highbd_fht32x32_c
|
||||
|
||||
void av1_highbd_fht32x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht32x8 av1_highbd_fht32x8_c
|
||||
|
||||
void av1_highbd_fht4x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht4x16 av1_highbd_fht4x16_c
|
||||
|
||||
void av1_highbd_fht4x4_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_highbd_fht4x4_sse4_1(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
RTCD_EXTERN void (*av1_highbd_fht4x4)(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
|
||||
void av1_highbd_fht4x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht4x8 av1_highbd_fht4x8_c
|
||||
|
||||
void av1_highbd_fht8x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht8x16 av1_highbd_fht8x16_c
|
||||
|
||||
void av1_highbd_fht8x32_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht8x32 av1_highbd_fht8x32_c
|
||||
|
||||
void av1_highbd_fht8x4_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht8x4 av1_highbd_fht8x4_c
|
||||
|
||||
void av1_highbd_fht8x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht8x8 av1_highbd_fht8x8_c
|
||||
|
||||
void av1_highbd_fwht4x4_c(const int16_t *input, tran_low_t *output, int stride);
|
||||
#define av1_highbd_fwht4x4 av1_highbd_fwht4x4_c
|
||||
|
||||
void av1_highbd_iht16x16_256_add_c(const tran_low_t *input, uint8_t *output, int pitch, int tx_type, int bd);
|
||||
void av1_highbd_iht16x16_256_add_c(const tran_low_t *input, uint8_t *output, int pitch, const struct txfm_param *param);
|
||||
#define av1_highbd_iht16x16_256_add av1_highbd_iht16x16_256_add_c
|
||||
|
||||
void av1_highbd_iht16x32_512_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht16x32_512_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht16x32_512_add av1_highbd_iht16x32_512_add_c
|
||||
|
||||
void av1_highbd_iht16x4_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht16x4_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht16x4_64_add av1_highbd_iht16x4_64_add_c
|
||||
|
||||
void av1_highbd_iht16x8_128_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht16x8_128_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht16x8_128_add av1_highbd_iht16x8_128_add_c
|
||||
|
||||
void av1_highbd_iht32x16_512_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht32x16_512_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht32x16_512_add av1_highbd_iht32x16_512_add_c
|
||||
|
||||
void av1_highbd_iht32x8_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht32x8_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht32x8_256_add av1_highbd_iht32x8_256_add_c
|
||||
|
||||
void av1_highbd_iht4x16_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht4x16_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht4x16_64_add av1_highbd_iht4x16_64_add_c
|
||||
|
||||
void av1_highbd_iht4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht4x4_16_add av1_highbd_iht4x4_16_add_c
|
||||
|
||||
void av1_highbd_iht4x8_32_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht4x8_32_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht4x8_32_add av1_highbd_iht4x8_32_add_c
|
||||
|
||||
void av1_highbd_iht8x16_128_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht8x16_128_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht8x16_128_add av1_highbd_iht8x16_128_add_c
|
||||
|
||||
void av1_highbd_iht8x32_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht8x32_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht8x32_256_add av1_highbd_iht8x32_256_add_c
|
||||
|
||||
void av1_highbd_iht8x4_32_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht8x4_32_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht8x4_32_add av1_highbd_iht8x4_32_add_c
|
||||
|
||||
void av1_highbd_iht8x8_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht8x8_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht8x8_64_add av1_highbd_iht8x8_64_add_c
|
||||
|
||||
void av1_highbd_quantize_b_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan, int log_scale);
|
||||
|
|
@ -294,71 +272,81 @@ void av1_highbd_quantize_b_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int
|
|||
|
||||
void av1_highbd_quantize_fp_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan, int log_scale);
|
||||
void av1_highbd_quantize_fp_sse4_1(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan, int log_scale);
|
||||
void av1_highbd_quantize_fp_avx2(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan, int log_scale);
|
||||
RTCD_EXTERN void (*av1_highbd_quantize_fp)(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan, int log_scale);
|
||||
|
||||
void av1_highbd_temporal_filter_apply_c(uint8_t *frame1, unsigned int stride, uint8_t *frame2, unsigned int block_width, unsigned int block_height, int strength, int filter_weight, unsigned int *accumulator, uint16_t *count);
|
||||
#define av1_highbd_temporal_filter_apply av1_highbd_temporal_filter_apply_c
|
||||
|
||||
void av1_highbd_warp_affine_c(const int32_t *mat, const uint16_t *ref, int width, int height, int stride, uint16_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, int bd, int comp_avg, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
void av1_highbd_warp_affine_ssse3(const int32_t *mat, const uint16_t *ref, int width, int height, int stride, uint16_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, int bd, int comp_avg, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
RTCD_EXTERN void (*av1_highbd_warp_affine)(const int32_t *mat, const uint16_t *ref, int width, int height, int stride, uint16_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, int bd, int comp_avg, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
void av1_highbd_warp_affine_c(const int32_t *mat, const uint16_t *ref, int width, int height, int stride, uint16_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, int bd, ConvolveParams *conv_params, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
void av1_highbd_warp_affine_ssse3(const int32_t *mat, const uint16_t *ref, int width, int height, int stride, uint16_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, int bd, ConvolveParams *conv_params, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
RTCD_EXTERN void (*av1_highbd_warp_affine)(const int32_t *mat, const uint16_t *ref, int width, int height, int stride, uint16_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, int bd, ConvolveParams *conv_params, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
|
||||
void av1_iht16x16_256_add_c(const tran_low_t *input, uint8_t *output, int pitch, int tx_type);
|
||||
void av1_iht16x16_256_add_sse2(const tran_low_t *input, uint8_t *output, int pitch, int tx_type);
|
||||
void av1_iht16x16_256_add_avx2(const tran_low_t *input, uint8_t *output, int pitch, int tx_type);
|
||||
RTCD_EXTERN void (*av1_iht16x16_256_add)(const tran_low_t *input, uint8_t *output, int pitch, int tx_type);
|
||||
void av1_iht16x16_256_add_c(const tran_low_t *input, uint8_t *output, int pitch, const struct txfm_param *param);
|
||||
void av1_iht16x16_256_add_sse2(const tran_low_t *input, uint8_t *output, int pitch, const struct txfm_param *param);
|
||||
void av1_iht16x16_256_add_avx2(const tran_low_t *input, uint8_t *output, int pitch, const struct txfm_param *param);
|
||||
RTCD_EXTERN void (*av1_iht16x16_256_add)(const tran_low_t *input, uint8_t *output, int pitch, const struct txfm_param *param);
|
||||
|
||||
void av1_iht16x32_512_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht16x32_512_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
RTCD_EXTERN void (*av1_iht16x32_512_add)(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht16x32_512_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
void av1_iht16x32_512_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
RTCD_EXTERN void (*av1_iht16x32_512_add)(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
|
||||
void av1_iht16x4_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht16x4_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht16x4_64_add av1_iht16x4_64_add_c
|
||||
|
||||
void av1_iht16x8_128_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht16x8_128_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
RTCD_EXTERN void (*av1_iht16x8_128_add)(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht16x8_128_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
void av1_iht16x8_128_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
RTCD_EXTERN void (*av1_iht16x8_128_add)(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
|
||||
void av1_iht32x16_512_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht32x16_512_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
RTCD_EXTERN void (*av1_iht32x16_512_add)(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht32x16_512_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
void av1_iht32x16_512_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
RTCD_EXTERN void (*av1_iht32x16_512_add)(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
|
||||
void av1_iht32x32_1024_add_c(const tran_low_t *input, uint8_t *output, int pitch, int tx_type);
|
||||
void av1_iht32x32_1024_add_c(const tran_low_t *input, uint8_t *output, int pitch, const struct txfm_param *param);
|
||||
#define av1_iht32x32_1024_add av1_iht32x32_1024_add_c
|
||||
|
||||
void av1_iht32x8_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht32x8_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht32x8_256_add av1_iht32x8_256_add_c
|
||||
|
||||
void av1_iht4x16_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht4x16_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht4x16_64_add av1_iht4x16_64_add_c
|
||||
|
||||
void av1_iht4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht4x4_16_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
RTCD_EXTERN void (*av1_iht4x4_16_add)(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
void av1_iht4x4_16_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
RTCD_EXTERN void (*av1_iht4x4_16_add)(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
|
||||
void av1_iht4x8_32_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht4x8_32_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
RTCD_EXTERN void (*av1_iht4x8_32_add)(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht4x8_32_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
void av1_iht4x8_32_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
RTCD_EXTERN void (*av1_iht4x8_32_add)(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
|
||||
void av1_iht8x16_128_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht8x16_128_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
RTCD_EXTERN void (*av1_iht8x16_128_add)(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht8x16_128_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
void av1_iht8x16_128_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
RTCD_EXTERN void (*av1_iht8x16_128_add)(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
|
||||
void av1_iht8x32_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht8x32_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht8x32_256_add av1_iht8x32_256_add_c
|
||||
|
||||
void av1_iht8x4_32_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht8x4_32_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
RTCD_EXTERN void (*av1_iht8x4_32_add)(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht8x4_32_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
void av1_iht8x4_32_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
RTCD_EXTERN void (*av1_iht8x4_32_add)(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
|
||||
void av1_iht8x8_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht8x8_64_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
RTCD_EXTERN void (*av1_iht8x8_64_add)(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht8x8_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
void av1_iht8x8_64_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
RTCD_EXTERN void (*av1_iht8x8_64_add)(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
|
||||
void av1_inv_txfm2d_add_16x16_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
void av1_inv_txfm2d_add_16x16_sse4_1(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
RTCD_EXTERN void (*av1_inv_txfm2d_add_16x16)(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
|
||||
void av1_inv_txfm2d_add_16x32_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_inv_txfm2d_add_16x32 av1_inv_txfm2d_add_16x32_c
|
||||
|
||||
void av1_inv_txfm2d_add_16x8_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_inv_txfm2d_add_16x8 av1_inv_txfm2d_add_16x8_c
|
||||
|
||||
void av1_inv_txfm2d_add_32x16_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_inv_txfm2d_add_32x16 av1_inv_txfm2d_add_32x16_c
|
||||
|
||||
void av1_inv_txfm2d_add_32x32_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
void av1_inv_txfm2d_add_32x32_avx2(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
RTCD_EXTERN void (*av1_inv_txfm2d_add_32x32)(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
|
|
@ -367,9 +355,18 @@ void av1_inv_txfm2d_add_4x4_c(const int32_t *input, uint16_t *output, int stride
|
|||
void av1_inv_txfm2d_add_4x4_sse4_1(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
RTCD_EXTERN void (*av1_inv_txfm2d_add_4x4)(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
|
||||
void av1_inv_txfm2d_add_4x8_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_inv_txfm2d_add_4x8 av1_inv_txfm2d_add_4x8_c
|
||||
|
||||
void av1_inv_txfm2d_add_64x64_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_inv_txfm2d_add_64x64 av1_inv_txfm2d_add_64x64_c
|
||||
|
||||
void av1_inv_txfm2d_add_8x16_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_inv_txfm2d_add_8x16 av1_inv_txfm2d_add_8x16_c
|
||||
|
||||
void av1_inv_txfm2d_add_8x4_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_inv_txfm2d_add_8x4 av1_inv_txfm2d_add_8x4_c
|
||||
|
||||
void av1_inv_txfm2d_add_8x8_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
void av1_inv_txfm2d_add_8x8_sse4_1(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
RTCD_EXTERN void (*av1_inv_txfm2d_add_8x8)(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
|
|
@ -383,19 +380,21 @@ void av1_quantize_b_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_b
|
|||
|
||||
void av1_quantize_fp_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
void av1_quantize_fp_sse2(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
void av1_quantize_fp_avx2(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
RTCD_EXTERN void (*av1_quantize_fp)(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
|
||||
void av1_quantize_fp_32x32_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
#define av1_quantize_fp_32x32 av1_quantize_fp_32x32_c
|
||||
void av1_quantize_fp_32x32_avx2(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
RTCD_EXTERN void (*av1_quantize_fp_32x32)(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
|
||||
void av1_temporal_filter_apply_c(uint8_t *frame1, unsigned int stride, uint8_t *frame2, unsigned int block_width, unsigned int block_height, int strength, int filter_weight, unsigned int *accumulator, uint16_t *count);
|
||||
void av1_temporal_filter_apply_sse2(uint8_t *frame1, unsigned int stride, uint8_t *frame2, unsigned int block_width, unsigned int block_height, int strength, int filter_weight, unsigned int *accumulator, uint16_t *count);
|
||||
RTCD_EXTERN void (*av1_temporal_filter_apply)(uint8_t *frame1, unsigned int stride, uint8_t *frame2, unsigned int block_width, unsigned int block_height, int strength, int filter_weight, unsigned int *accumulator, uint16_t *count);
|
||||
|
||||
void av1_warp_affine_c(const int32_t *mat, const uint8_t *ref, int width, int height, int stride, uint8_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, int comp_avg, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
void av1_warp_affine_sse2(const int32_t *mat, const uint8_t *ref, int width, int height, int stride, uint8_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, int comp_avg, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
void av1_warp_affine_ssse3(const int32_t *mat, const uint8_t *ref, int width, int height, int stride, uint8_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, int comp_avg, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
RTCD_EXTERN void (*av1_warp_affine)(const int32_t *mat, const uint8_t *ref, int width, int height, int stride, uint8_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, int comp_avg, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
void av1_warp_affine_c(const int32_t *mat, const uint8_t *ref, int width, int height, int stride, uint8_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, ConvolveParams *conv_params, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
void av1_warp_affine_sse2(const int32_t *mat, const uint8_t *ref, int width, int height, int stride, uint8_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, ConvolveParams *conv_params, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
void av1_warp_affine_ssse3(const int32_t *mat, const uint8_t *ref, int width, int height, int stride, uint8_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, ConvolveParams *conv_params, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
RTCD_EXTERN void (*av1_warp_affine)(const int32_t *mat, const uint8_t *ref, int width, int height, int stride, uint8_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, ConvolveParams *conv_params, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
|
||||
void av1_wedge_compute_delta_squares_c(int16_t *d, const int16_t *a, const int16_t *b, int N);
|
||||
void av1_wedge_compute_delta_squares_sse2(int16_t *d, const int16_t *a, const int16_t *b, int N);
|
||||
|
|
@ -493,6 +492,8 @@ static void setup_rtcd_internal(void)
|
|||
if (flags & HAS_SSE2) aom_clpf_hblock_hbd = aom_clpf_hblock_hbd_sse2;
|
||||
if (flags & HAS_SSSE3) aom_clpf_hblock_hbd = aom_clpf_hblock_hbd_ssse3;
|
||||
if (flags & HAS_SSE4_1) aom_clpf_hblock_hbd = aom_clpf_hblock_hbd_sse4_1;
|
||||
av1_block_error = av1_block_error_c;
|
||||
if (flags & HAS_AVX2) av1_block_error = av1_block_error_avx2;
|
||||
av1_convolve_horiz = av1_convolve_horiz_c;
|
||||
if (flags & HAS_SSSE3) av1_convolve_horiz = av1_convolve_horiz_ssse3;
|
||||
av1_convolve_vert = av1_convolve_vert_c;
|
||||
|
|
@ -540,10 +541,9 @@ static void setup_rtcd_internal(void)
|
|||
if (flags & HAS_SSE4_1) av1_highbd_convolve_init = av1_highbd_convolve_init_sse4_1;
|
||||
av1_highbd_convolve_vert = av1_highbd_convolve_vert_c;
|
||||
if (flags & HAS_SSE4_1) av1_highbd_convolve_vert = av1_highbd_convolve_vert_sse4_1;
|
||||
av1_highbd_fht4x4 = av1_highbd_fht4x4_c;
|
||||
if (flags & HAS_SSE4_1) av1_highbd_fht4x4 = av1_highbd_fht4x4_sse4_1;
|
||||
av1_highbd_quantize_fp = av1_highbd_quantize_fp_c;
|
||||
if (flags & HAS_SSE4_1) av1_highbd_quantize_fp = av1_highbd_quantize_fp_sse4_1;
|
||||
if (flags & HAS_AVX2) av1_highbd_quantize_fp = av1_highbd_quantize_fp_avx2;
|
||||
av1_highbd_warp_affine = av1_highbd_warp_affine_c;
|
||||
if (flags & HAS_SSSE3) av1_highbd_warp_affine = av1_highbd_warp_affine_ssse3;
|
||||
av1_iht16x16_256_add = av1_iht16x16_256_add_c;
|
||||
|
|
@ -577,6 +577,9 @@ static void setup_rtcd_internal(void)
|
|||
if (flags & HAS_SSSE3) av1_lowbd_convolve_init = av1_lowbd_convolve_init_ssse3;
|
||||
av1_quantize_fp = av1_quantize_fp_c;
|
||||
if (flags & HAS_SSE2) av1_quantize_fp = av1_quantize_fp_sse2;
|
||||
if (flags & HAS_AVX2) av1_quantize_fp = av1_quantize_fp_avx2;
|
||||
av1_quantize_fp_32x32 = av1_quantize_fp_32x32_c;
|
||||
if (flags & HAS_AVX2) av1_quantize_fp_32x32 = av1_quantize_fp_32x32_avx2;
|
||||
av1_temporal_filter_apply = av1_temporal_filter_apply_c;
|
||||
if (flags & HAS_SSE2) av1_temporal_filter_apply = av1_temporal_filter_apply_sse2;
|
||||
av1_warp_affine = av1_warp_affine_c;
|
||||
|
|
|
|||
|
|
@ -1,146 +1,163 @@
|
|||
%define ARCH_ARM 0
|
||||
%define ARCH_MIPS 0
|
||||
%define ARCH_X86 0
|
||||
%define ARCH_X86_64 1
|
||||
%define HAVE_NEON 0
|
||||
%define HAVE_NEON_ASM 0
|
||||
%define HAVE_MIPS32 0
|
||||
%define HAVE_DSPR2 0
|
||||
%define HAVE_MSA 0
|
||||
%define HAVE_MIPS64 0
|
||||
%define HAVE_MMX 1
|
||||
%define HAVE_SSE 1
|
||||
%define HAVE_SSE2 1
|
||||
%define HAVE_SSE3 1
|
||||
%define HAVE_SSSE3 1
|
||||
%define HAVE_SSE4_1 1
|
||||
%define HAVE_AVX 1
|
||||
%define HAVE_AVX2 1
|
||||
%define HAVE_AOM_PORTS 1
|
||||
%define HAVE_FEXCEPT 1
|
||||
%define HAVE_PTHREAD_H 1
|
||||
%define HAVE_WXWIDGETS 0
|
||||
%define CONFIG_DEPENDENCY_TRACKING 1
|
||||
%define CONFIG_EXTERNAL_BUILD 1
|
||||
%define CONFIG_INSTALL_DOCS 1
|
||||
%define CONFIG_INSTALL_BINS 1
|
||||
%define CONFIG_INSTALL_LIBS 1
|
||||
%define CONFIG_INSTALL_SRCS 0
|
||||
%define CONFIG_DEBUG 0
|
||||
%define CONFIG_GPROF 0
|
||||
%define CONFIG_GCOV 0
|
||||
%define CONFIG_RVCT 0
|
||||
%define CONFIG_GCC 1
|
||||
%define CONFIG_MSVS 0
|
||||
%define CONFIG_PIC 1
|
||||
%define CONFIG_BIG_ENDIAN 0
|
||||
%define CONFIG_CODEC_SRCS 0
|
||||
%define CONFIG_DEBUG_LIBS 0
|
||||
%define CONFIG_RUNTIME_CPU_DETECT 1
|
||||
%define CONFIG_POSTPROC 1
|
||||
%define CONFIG_MULTITHREAD 1
|
||||
%define CONFIG_INTERNAL_STATS 0
|
||||
%define CONFIG_AV1_ENCODER 1
|
||||
%define CONFIG_AV1_DECODER 1
|
||||
%define CONFIG_AV1 1
|
||||
%define CONFIG_STATIC_MSVCRT 0
|
||||
%define CONFIG_SPATIAL_RESAMPLING 1
|
||||
%define CONFIG_REALTIME_ONLY 0
|
||||
%define CONFIG_ONTHEFLY_BITPACKING 0
|
||||
%define CONFIG_ERROR_CONCEALMENT 0
|
||||
%define CONFIG_SHARED 0
|
||||
%define CONFIG_STATIC 1
|
||||
%define CONFIG_SMALL 0
|
||||
%define CONFIG_POSTPROC_VISUALIZER 0
|
||||
%define CONFIG_OS_SUPPORT 1
|
||||
%define CONFIG_UNIT_TESTS 0
|
||||
%define CONFIG_WEBM_IO 1
|
||||
%define CONFIG_LIBYUV 1
|
||||
%define CONFIG_ACCOUNTING 0
|
||||
%define CONFIG_INSPECTION 0
|
||||
%define CONFIG_DECODE_PERF_TESTS 0
|
||||
%define CONFIG_ENCODE_PERF_TESTS 0
|
||||
%define CONFIG_COEFFICIENT_RANGE_CHECKING 0
|
||||
%define CONFIG_LOWBITDEPTH 1
|
||||
%define CONFIG_HIGHBITDEPTH 1
|
||||
%define CONFIG_EXPERIMENTAL 0
|
||||
%define CONFIG_SIZE_LIMIT 1
|
||||
%define CONFIG_FP_MB_STATS 0
|
||||
%define CONFIG_CDEF 1
|
||||
%define CONFIG_VAR_TX 1
|
||||
%define CONFIG_RECT_TX 1
|
||||
%define CONFIG_RECT_TX_EXT 0
|
||||
%define CONFIG_TPL_MV 0
|
||||
%define CONFIG_DUAL_FILTER 1
|
||||
%define CONFIG_CONVOLVE_ROUND 0
|
||||
%define CONFIG_COMPOUND_ROUND 0
|
||||
%define CONFIG_EXT_TX 1
|
||||
%define CONFIG_DPCM_INTRA 0
|
||||
%define CONFIG_TX64X64 0
|
||||
%define CONFIG_EXT_INTRA 1
|
||||
%define CONFIG_INTRA_INTERP 0
|
||||
%define CONFIG_FILTER_INTRA 0
|
||||
%define CONFIG_INTRA_EDGE 0
|
||||
%define CONFIG_INTRABC 0
|
||||
%define CONFIG_EXT_INTER 1
|
||||
%define CONFIG_INTERINTRA 1
|
||||
%define CONFIG_WEDGE 1
|
||||
%define CONFIG_COMPOUND_SEGMENT 1
|
||||
%define CONFIG_EXT_REFS 1
|
||||
%define CONFIG_GLOBAL_MOTION 1
|
||||
%define CONFIG_NEW_QUANT 0
|
||||
%define CONFIG_SUPERTX 0
|
||||
%define CONFIG_ANS 0
|
||||
%define CONFIG_LOOP_RESTORATION 0
|
||||
%define CONFIG_EXT_PARTITION 0
|
||||
%define CONFIG_EXT_PARTITION_TYPES 0
|
||||
%define CONFIG_UNPOISON_PARTITION_CTX 0
|
||||
%define CONFIG_EXT_TILE 0
|
||||
%define CONFIG_MOTION_VAR 1
|
||||
%define CONFIG_NCOBMC 0
|
||||
%define CONFIG_WARPED_MOTION 1
|
||||
%define CONFIG_Q_ADAPT_PROBS 0
|
||||
%define CONFIG_BITSTREAM_DEBUG 0
|
||||
%define CONFIG_ALT_INTRA 1
|
||||
%define CONFIG_PALETTE 1
|
||||
%define CONFIG_PALETTE_DELTA_ENCODING 0
|
||||
%define CONFIG_RAWBITS 0
|
||||
%define CONFIG_EC_SMALLMUL 1
|
||||
%define CONFIG_PVQ 0
|
||||
%define CONFIG_CFL 0
|
||||
%define CONFIG_XIPHRC 0
|
||||
%define CONFIG_CB4X4 1
|
||||
%define CONFIG_CHROMA_2X2 0
|
||||
%define CONFIG_CHROMA_SUB8X8 1
|
||||
%define CONFIG_FRAME_SIZE 0
|
||||
%define CONFIG_DELTA_Q 1
|
||||
%define CONFIG_EXT_DELTA_Q 1
|
||||
%define CONFIG_ADAPT_SCAN 0
|
||||
%define CONFIG_FILTER_7BIT 1
|
||||
%define CONFIG_PARALLEL_DEBLOCKING 0
|
||||
%define CONFIG_PARALLEL_DEBLOCKING_15TAP 0
|
||||
%define CONFIG_LOOPFILTERING_ACROSS_TILES 1
|
||||
%define CONFIG_TILE_GROUPS 1
|
||||
%define CONFIG_EC_ADAPT 1
|
||||
%define CONFIG_TEMPMV_SIGNALING 1
|
||||
%define CONFIG_RD_DEBUG 0
|
||||
%define CONFIG_REFERENCE_BUFFER 1
|
||||
%define CONFIG_COEF_INTERLEAVE 0
|
||||
%define CONFIG_ENTROPY_STATS 0
|
||||
%define CONFIG_MASKED_TX 0
|
||||
%define CONFIG_DEPENDENT_HORZTILES 0
|
||||
%define CONFIG_DAALA_DIST 0
|
||||
%define CONFIG_TRIPRED 0
|
||||
%define CONFIG_PALETTE_THROUGHPUT 1
|
||||
%define CONFIG_REF_ADAPT 0
|
||||
%define CONFIG_LV_MAP 0
|
||||
%define CONFIG_TXK_SEL 0
|
||||
%define CONFIG_MV_COMPRESS 1
|
||||
%define CONFIG_FRAME_SUPERRES 0
|
||||
%define CONFIG_NEW_MULTISYMBOL 0
|
||||
%define CONFIG_COMPOUND_SINGLEREF 0
|
||||
%define CONFIG_AOM_QM 0
|
||||
%define CONFIG_ONE_SIDED_COMPOUND 1
|
||||
%define CONFIG_SMOOTH_HV 0
|
||||
%define CONFIG_VAR_REFS 0
|
||||
%define CONFIG_ANALYZER 0
|
||||
ARCH_ARM equ 0
|
||||
ARCH_MIPS equ 0
|
||||
ARCH_X86 equ 0
|
||||
ARCH_X86_64 equ 1
|
||||
HAVE_NEON equ 0
|
||||
HAVE_NEON_ASM equ 0
|
||||
HAVE_MIPS32 equ 0
|
||||
HAVE_DSPR2 equ 0
|
||||
HAVE_MSA equ 0
|
||||
HAVE_MIPS64 equ 0
|
||||
HAVE_MMX equ 1
|
||||
HAVE_SSE equ 1
|
||||
HAVE_SSE2 equ 1
|
||||
HAVE_SSE3 equ 1
|
||||
HAVE_SSSE3 equ 1
|
||||
HAVE_SSE4_1 equ 1
|
||||
HAVE_AVX equ 1
|
||||
HAVE_AVX2 equ 1
|
||||
HAVE_AOM_PORTS equ 1
|
||||
HAVE_FEXCEPT equ 1
|
||||
HAVE_PTHREAD_H equ 1
|
||||
HAVE_WXWIDGETS equ 0
|
||||
CONFIG_DEPENDENCY_TRACKING equ 1
|
||||
CONFIG_EXTERNAL_BUILD equ 1
|
||||
CONFIG_INSTALL_DOCS equ 1
|
||||
CONFIG_INSTALL_BINS equ 1
|
||||
CONFIG_INSTALL_LIBS equ 1
|
||||
CONFIG_INSTALL_SRCS equ 0
|
||||
CONFIG_DEBUG equ 0
|
||||
CONFIG_GPROF equ 0
|
||||
CONFIG_GCOV equ 0
|
||||
CONFIG_RVCT equ 0
|
||||
CONFIG_GCC equ 1
|
||||
CONFIG_MSVS equ 0
|
||||
CONFIG_PIC equ 1
|
||||
CONFIG_BIG_ENDIAN equ 0
|
||||
CONFIG_CODEC_SRCS equ 0
|
||||
CONFIG_DEBUG_LIBS equ 0
|
||||
CONFIG_RUNTIME_CPU_DETECT equ 1
|
||||
CONFIG_POSTPROC equ 1
|
||||
CONFIG_MULTITHREAD equ 1
|
||||
CONFIG_INTERNAL_STATS equ 0
|
||||
CONFIG_AV1_ENCODER equ 1
|
||||
CONFIG_AV1_DECODER equ 1
|
||||
CONFIG_AV1 equ 1
|
||||
CONFIG_STATIC_MSVCRT equ 0
|
||||
CONFIG_SPATIAL_RESAMPLING equ 1
|
||||
CONFIG_REALTIME_ONLY equ 0
|
||||
CONFIG_ONTHEFLY_BITPACKING equ 0
|
||||
CONFIG_ERROR_CONCEALMENT equ 0
|
||||
CONFIG_SHARED equ 0
|
||||
CONFIG_STATIC equ 1
|
||||
CONFIG_SMALL equ 0
|
||||
CONFIG_POSTPROC_VISUALIZER equ 0
|
||||
CONFIG_OS_SUPPORT equ 1
|
||||
CONFIG_UNIT_TESTS equ 0
|
||||
CONFIG_WEBM_IO equ 1
|
||||
CONFIG_LIBYUV equ 1
|
||||
CONFIG_ACCOUNTING equ 0
|
||||
CONFIG_INSPECTION equ 0
|
||||
CONFIG_DECODE_PERF_TESTS equ 0
|
||||
CONFIG_ENCODE_PERF_TESTS equ 0
|
||||
CONFIG_COEFFICIENT_RANGE_CHECKING equ 0
|
||||
CONFIG_LOWBITDEPTH equ 1
|
||||
CONFIG_HIGHBITDEPTH equ 1
|
||||
CONFIG_EXPERIMENTAL equ 0
|
||||
CONFIG_SIZE_LIMIT equ 1
|
||||
CONFIG_COLORSPACE_HEADERS equ 0
|
||||
CONFIG_FP_MB_STATS equ 0
|
||||
CONFIG_CDEF equ 1
|
||||
CONFIG_VAR_TX equ 1
|
||||
CONFIG_RECT_TX equ 1
|
||||
CONFIG_RECT_TX_EXT equ 0
|
||||
CONFIG_TPL_MV equ 0
|
||||
CONFIG_DUAL_FILTER equ 1
|
||||
CONFIG_CONVOLVE_ROUND equ 0
|
||||
CONFIG_COMPOUND_ROUND equ 0
|
||||
CONFIG_EXT_TX equ 1
|
||||
CONFIG_DPCM_INTRA equ 0
|
||||
CONFIG_TX64X64 equ 0
|
||||
CONFIG_EXT_INTRA equ 1
|
||||
CONFIG_INTRA_INTERP equ 0
|
||||
CONFIG_FILTER_INTRA equ 0
|
||||
CONFIG_INTRA_EDGE equ 0
|
||||
CONFIG_INTRABC equ 0
|
||||
CONFIG_EXT_INTER equ 1
|
||||
CONFIG_INTERINTRA equ 1
|
||||
CONFIG_WEDGE equ 1
|
||||
CONFIG_COMPOUND_SEGMENT equ 1
|
||||
CONFIG_EXT_REFS equ 1
|
||||
CONFIG_ALTREF2 equ 0
|
||||
CONFIG_SPEED_REFS equ 0
|
||||
CONFIG_GF_GROUPS equ 0
|
||||
CONFIG_FLEX_REFS equ 0
|
||||
CONFIG_GLOBAL_MOTION equ 1
|
||||
CONFIG_NEW_QUANT equ 0
|
||||
CONFIG_SUPERTX equ 0
|
||||
CONFIG_ANS equ 0
|
||||
CONFIG_LOOP_RESTORATION equ 0
|
||||
CONFIG_EXT_PARTITION equ 0
|
||||
CONFIG_EXT_PARTITION_TYPES equ 0
|
||||
CONFIG_UNPOISON_PARTITION_CTX equ 0
|
||||
CONFIG_EXT_TILE equ 0
|
||||
CONFIG_MOTION_VAR equ 1
|
||||
CONFIG_NCOBMC equ 0
|
||||
CONFIG_WARPED_MOTION equ 1
|
||||
CONFIG_Q_ADAPT_PROBS equ 0
|
||||
CONFIG_BITSTREAM_DEBUG equ 0
|
||||
CONFIG_INTER_STATS_ONLY equ 0
|
||||
CONFIG_ALT_INTRA equ 1
|
||||
CONFIG_PALETTE equ 1
|
||||
CONFIG_PALETTE_DELTA_ENCODING equ 0
|
||||
CONFIG_RAWBITS equ 0
|
||||
CONFIG_EC_SMALLMUL equ 1
|
||||
CONFIG_PVQ equ 0
|
||||
CONFIG_CFL equ 0
|
||||
CONFIG_XIPHRC equ 0
|
||||
CONFIG_DCT_ONLY equ 0
|
||||
CONFIG_DAALA_DCT4 equ 0
|
||||
CONFIG_DAALA_DCT8 equ 0
|
||||
CONFIG_CB4X4 equ 1
|
||||
CONFIG_CHROMA_2X2 equ 0
|
||||
CONFIG_CHROMA_SUB8X8 equ 1
|
||||
CONFIG_FRAME_SIZE equ 0
|
||||
CONFIG_DELTA_Q equ 1
|
||||
CONFIG_EXT_DELTA_Q equ 1
|
||||
CONFIG_ADAPT_SCAN equ 0
|
||||
CONFIG_FILTER_7BIT equ 1
|
||||
CONFIG_PARALLEL_DEBLOCKING equ 1
|
||||
CONFIG_LOOPFILTERING_ACROSS_TILES equ 1
|
||||
CONFIG_TEMPMV_SIGNALING equ 1
|
||||
CONFIG_RD_DEBUG equ 0
|
||||
CONFIG_REFERENCE_BUFFER equ 1
|
||||
CONFIG_COEF_INTERLEAVE equ 0
|
||||
CONFIG_ENTROPY_STATS equ 0
|
||||
CONFIG_MASKED_TX equ 0
|
||||
CONFIG_DEPENDENT_HORZTILES equ 0
|
||||
CONFIG_DIST_8X8 equ 0
|
||||
CONFIG_DAALA_DIST equ 0
|
||||
CONFIG_TRIPRED equ 0
|
||||
CONFIG_PALETTE_THROUGHPUT equ 1
|
||||
CONFIG_REF_ADAPT equ 0
|
||||
CONFIG_LV_MAP equ 0
|
||||
CONFIG_TXK_SEL equ 0
|
||||
CONFIG_MV_COMPRESS equ 1
|
||||
CONFIG_FRAME_SUPERRES equ 0
|
||||
CONFIG_NEW_MULTISYMBOL equ 0
|
||||
CONFIG_COMPOUND_SINGLEREF equ 0
|
||||
CONFIG_AOM_QM equ 0
|
||||
CONFIG_ONE_SIDED_COMPOUND equ 1
|
||||
CONFIG_EXT_COMP_REFS equ 0
|
||||
CONFIG_SMOOTH_HV equ 1
|
||||
CONFIG_VAR_REFS equ 0
|
||||
CONFIG_RECT_INTRA_PRED equ 1
|
||||
CONFIG_LGT equ 0
|
||||
CONFIG_SBL_SYMBOL equ 0
|
||||
CONFIG_NCOBMC_ADAPT_WEIGHT equ 0
|
||||
CONFIG_BGSPRITE equ 0
|
||||
CONFIG_VAR_TX_NO_TX_MODE equ 0
|
||||
CONFIG_MRC_TX equ 0
|
||||
CONFIG_LPF_DIRECT equ 0
|
||||
CONFIG_UV_LVL equ 0
|
||||
CONFIG_ANALYZER equ 0
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
/* This file automatically generated by configure. Do not edit! */
|
||||
#ifndef AOM_CONFIG_H
|
||||
#define AOM_CONFIG_H
|
||||
#define RESTRICT
|
||||
#define RESTRICT
|
||||
#define INLINE inline
|
||||
#define ARCH_ARM 0
|
||||
#define ARCH_MIPS 0
|
||||
|
|
@ -78,6 +78,7 @@
|
|||
#define CONFIG_HIGHBITDEPTH 1
|
||||
#define CONFIG_EXPERIMENTAL 0
|
||||
#define CONFIG_SIZE_LIMIT 1
|
||||
#define CONFIG_COLORSPACE_HEADERS 0
|
||||
#define CONFIG_FP_MB_STATS 0
|
||||
#define CONFIG_CDEF 1
|
||||
#define CONFIG_VAR_TX 1
|
||||
|
|
@ -100,6 +101,10 @@
|
|||
#define CONFIG_WEDGE 1
|
||||
#define CONFIG_COMPOUND_SEGMENT 1
|
||||
#define CONFIG_EXT_REFS 1
|
||||
#define CONFIG_ALTREF2 0
|
||||
#define CONFIG_SPEED_REFS 0
|
||||
#define CONFIG_GF_GROUPS 0
|
||||
#define CONFIG_FLEX_REFS 0
|
||||
#define CONFIG_GLOBAL_MOTION 1
|
||||
#define CONFIG_NEW_QUANT 0
|
||||
#define CONFIG_SUPERTX 0
|
||||
|
|
@ -114,6 +119,7 @@
|
|||
#define CONFIG_WARPED_MOTION 1
|
||||
#define CONFIG_Q_ADAPT_PROBS 0
|
||||
#define CONFIG_BITSTREAM_DEBUG 0
|
||||
#define CONFIG_INTER_STATS_ONLY 0
|
||||
#define CONFIG_ALT_INTRA 1
|
||||
#define CONFIG_PALETTE 1
|
||||
#define CONFIG_PALETTE_DELTA_ENCODING 0
|
||||
|
|
@ -122,6 +128,9 @@
|
|||
#define CONFIG_PVQ 0
|
||||
#define CONFIG_CFL 0
|
||||
#define CONFIG_XIPHRC 0
|
||||
#define CONFIG_DCT_ONLY 0
|
||||
#define CONFIG_DAALA_DCT4 0
|
||||
#define CONFIG_DAALA_DCT8 0
|
||||
#define CONFIG_CB4X4 1
|
||||
#define CONFIG_CHROMA_2X2 0
|
||||
#define CONFIG_CHROMA_SUB8X8 1
|
||||
|
|
@ -130,11 +139,8 @@
|
|||
#define CONFIG_EXT_DELTA_Q 1
|
||||
#define CONFIG_ADAPT_SCAN 0
|
||||
#define CONFIG_FILTER_7BIT 1
|
||||
#define CONFIG_PARALLEL_DEBLOCKING 0
|
||||
#define CONFIG_PARALLEL_DEBLOCKING_15TAP 0
|
||||
#define CONFIG_PARALLEL_DEBLOCKING 1
|
||||
#define CONFIG_LOOPFILTERING_ACROSS_TILES 1
|
||||
#define CONFIG_TILE_GROUPS 1
|
||||
#define CONFIG_EC_ADAPT 1
|
||||
#define CONFIG_TEMPMV_SIGNALING 1
|
||||
#define CONFIG_RD_DEBUG 0
|
||||
#define CONFIG_REFERENCE_BUFFER 1
|
||||
|
|
@ -142,6 +148,7 @@
|
|||
#define CONFIG_ENTROPY_STATS 0
|
||||
#define CONFIG_MASKED_TX 0
|
||||
#define CONFIG_DEPENDENT_HORZTILES 0
|
||||
#define CONFIG_DIST_8X8 0
|
||||
#define CONFIG_DAALA_DIST 0
|
||||
#define CONFIG_TRIPRED 0
|
||||
#define CONFIG_PALETTE_THROUGHPUT 1
|
||||
|
|
@ -154,8 +161,18 @@
|
|||
#define CONFIG_COMPOUND_SINGLEREF 0
|
||||
#define CONFIG_AOM_QM 0
|
||||
#define CONFIG_ONE_SIDED_COMPOUND 1
|
||||
#define CONFIG_SMOOTH_HV 0
|
||||
#define CONFIG_EXT_COMP_REFS 0
|
||||
#define CONFIG_SMOOTH_HV 1
|
||||
#define CONFIG_VAR_REFS 0
|
||||
#define CONFIG_RECT_INTRA_PRED 1
|
||||
#define CONFIG_LGT 0
|
||||
#define CONFIG_SBL_SYMBOL 0
|
||||
#define CONFIG_NCOBMC_ADAPT_WEIGHT 0
|
||||
#define CONFIG_BGSPRITE 0
|
||||
#define CONFIG_VAR_TX_NO_TX_MODE 0
|
||||
#define CONFIG_MRC_TX 0
|
||||
#define CONFIG_LPF_DIRECT 0
|
||||
#define CONFIG_UV_LVL 0
|
||||
#define CONFIG_ANALYZER 0
|
||||
#define DECODE_WIDTH_LIMIT 8192
|
||||
#define DECODE_HEIGHT_LIMIT 4608
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -12,6 +12,7 @@
|
|||
*/
|
||||
|
||||
#include "aom/aom_integer.h"
|
||||
#include "aom_dsp/txfm_common.h"
|
||||
#include "av1/common/common.h"
|
||||
#include "av1/common/enums.h"
|
||||
#include "av1/common/quant_common.h"
|
||||
|
|
@ -24,6 +25,7 @@ struct macroblockd;
|
|||
|
||||
/* Encoder forward decls */
|
||||
struct macroblock;
|
||||
struct txfm_param;
|
||||
struct aom_variance_vtable;
|
||||
struct search_site_config;
|
||||
struct mv;
|
||||
|
|
@ -60,7 +62,8 @@ void aom_clpf_hblock_hbd_sse4_1(uint16_t *dst, const uint16_t *src, int dstride,
|
|||
RTCD_EXTERN void (*aom_clpf_hblock_hbd)(uint16_t *dst, const uint16_t *src, int dstride, int sstride, int sizex, int sizey, unsigned int strength, unsigned int bd);
|
||||
|
||||
int64_t av1_block_error_c(const tran_low_t *coeff, const tran_low_t *dqcoeff, intptr_t block_size, int64_t *ssz);
|
||||
#define av1_block_error av1_block_error_c
|
||||
int64_t av1_block_error_avx2(const tran_low_t *coeff, const tran_low_t *dqcoeff, intptr_t block_size, int64_t *ssz);
|
||||
RTCD_EXTERN int64_t (*av1_block_error)(const tran_low_t *coeff, const tran_low_t *dqcoeff, intptr_t block_size, int64_t *ssz);
|
||||
|
||||
void av1_convolve_horiz_c(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int w, int h, const InterpFilterParams fp, const int subpel_x_q4, int x_step_q4, ConvolveParams *conv_params);
|
||||
void av1_convolve_horiz_ssse3(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int w, int h, const InterpFilterParams fp, const int subpel_x_q4, int x_step_q4, ConvolveParams *conv_params);
|
||||
|
|
@ -76,58 +79,58 @@ int av1_diamond_search_sad_c(struct macroblock *x, const struct search_site_conf
|
|||
void av1_fdct8x8_quant_c(const int16_t *input, int stride, tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
#define av1_fdct8x8_quant av1_fdct8x8_quant_c
|
||||
|
||||
void av1_fht16x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht16x16_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht16x16_avx2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
RTCD_EXTERN void (*av1_fht16x16)(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht16x16_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht16x16_sse2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht16x16_avx2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
RTCD_EXTERN void (*av1_fht16x16)(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
|
||||
void av1_fht16x32_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht16x32_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht16x32_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht16x32_sse2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht16x32 av1_fht16x32_sse2
|
||||
|
||||
void av1_fht16x4_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht16x4_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht16x4 av1_fht16x4_c
|
||||
|
||||
void av1_fht16x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht16x8_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht16x8_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht16x8_sse2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht16x8 av1_fht16x8_sse2
|
||||
|
||||
void av1_fht32x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht32x16_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht32x16_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht32x16_sse2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht32x16 av1_fht32x16_sse2
|
||||
|
||||
void av1_fht32x32_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht32x32_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht32x32_avx2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
RTCD_EXTERN void (*av1_fht32x32)(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht32x32_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht32x32_sse2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht32x32_avx2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
RTCD_EXTERN void (*av1_fht32x32)(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
|
||||
void av1_fht32x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht32x8_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht32x8 av1_fht32x8_c
|
||||
|
||||
void av1_fht4x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht4x16_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht4x16 av1_fht4x16_c
|
||||
|
||||
void av1_fht4x4_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht4x4_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht4x4_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht4x4_sse2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht4x4 av1_fht4x4_sse2
|
||||
|
||||
void av1_fht4x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht4x8_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht4x8_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht4x8_sse2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht4x8 av1_fht4x8_sse2
|
||||
|
||||
void av1_fht8x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht8x16_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht8x16_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht8x16_sse2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht8x16 av1_fht8x16_sse2
|
||||
|
||||
void av1_fht8x32_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht8x32_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht8x32 av1_fht8x32_c
|
||||
|
||||
void av1_fht8x4_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht8x4_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht8x4_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht8x4_sse2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht8x4 av1_fht8x4_sse2
|
||||
|
||||
void av1_fht8x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht8x8_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht8x8_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht8x8_sse2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht8x8 av1_fht8x8_sse2
|
||||
|
||||
int av1_full_range_search_c(const struct macroblock *x, const struct search_site_config *cfg, struct mv *ref_mv, struct mv *best_mv, int search_param, int sad_per_bit, int *num00, const struct aom_variance_vtable *fn_ptr, const struct mv *center_mv);
|
||||
|
|
@ -145,6 +148,15 @@ void av1_fwd_txfm2d_16x16_c(const int16_t *input, int32_t *output, int stride, i
|
|||
void av1_fwd_txfm2d_16x16_sse4_1(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
RTCD_EXTERN void (*av1_fwd_txfm2d_16x16)(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
|
||||
void av1_fwd_txfm2d_16x32_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_fwd_txfm2d_16x32 av1_fwd_txfm2d_16x32_c
|
||||
|
||||
void av1_fwd_txfm2d_16x8_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_fwd_txfm2d_16x8 av1_fwd_txfm2d_16x8_c
|
||||
|
||||
void av1_fwd_txfm2d_32x16_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_fwd_txfm2d_32x16 av1_fwd_txfm2d_32x16_c
|
||||
|
||||
void av1_fwd_txfm2d_32x32_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
void av1_fwd_txfm2d_32x32_sse4_1(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
RTCD_EXTERN void (*av1_fwd_txfm2d_32x32)(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
|
|
@ -153,10 +165,19 @@ void av1_fwd_txfm2d_4x4_c(const int16_t *input, int32_t *output, int stride, int
|
|||
void av1_fwd_txfm2d_4x4_sse4_1(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
RTCD_EXTERN void (*av1_fwd_txfm2d_4x4)(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
|
||||
void av1_fwd_txfm2d_4x8_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_fwd_txfm2d_4x8 av1_fwd_txfm2d_4x8_c
|
||||
|
||||
void av1_fwd_txfm2d_64x64_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
void av1_fwd_txfm2d_64x64_sse4_1(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
RTCD_EXTERN void (*av1_fwd_txfm2d_64x64)(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
|
||||
void av1_fwd_txfm2d_8x16_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_fwd_txfm2d_8x16 av1_fwd_txfm2d_8x16_c
|
||||
|
||||
void av1_fwd_txfm2d_8x4_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_fwd_txfm2d_8x4 av1_fwd_txfm2d_8x4_c
|
||||
|
||||
void av1_fwd_txfm2d_8x8_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
void av1_fwd_txfm2d_8x8_sse4_1(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
RTCD_EXTERN void (*av1_fwd_txfm2d_8x8)(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
|
|
@ -210,89 +231,46 @@ void av1_highbd_convolve_vert_c(const uint16_t *src, int src_stride, uint16_t *d
|
|||
void av1_highbd_convolve_vert_sse4_1(const uint16_t *src, int src_stride, uint16_t *dst, int dst_stride, int w, int h, const InterpFilterParams fp, const int subpel_x_q4, int x_step_q4, int avg, int bd);
|
||||
RTCD_EXTERN void (*av1_highbd_convolve_vert)(const uint16_t *src, int src_stride, uint16_t *dst, int dst_stride, int w, int h, const InterpFilterParams fp, const int subpel_x_q4, int x_step_q4, int avg, int bd);
|
||||
|
||||
void av1_highbd_fht16x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht16x16 av1_highbd_fht16x16_c
|
||||
|
||||
void av1_highbd_fht16x32_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht16x32 av1_highbd_fht16x32_c
|
||||
|
||||
void av1_highbd_fht16x4_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht16x4 av1_highbd_fht16x4_c
|
||||
|
||||
void av1_highbd_fht16x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht16x8 av1_highbd_fht16x8_c
|
||||
|
||||
void av1_highbd_fht32x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht32x16 av1_highbd_fht32x16_c
|
||||
|
||||
void av1_highbd_fht32x32_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht32x32 av1_highbd_fht32x32_c
|
||||
|
||||
void av1_highbd_fht32x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht32x8 av1_highbd_fht32x8_c
|
||||
|
||||
void av1_highbd_fht4x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht4x16 av1_highbd_fht4x16_c
|
||||
|
||||
void av1_highbd_fht4x4_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_highbd_fht4x4_sse4_1(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
RTCD_EXTERN void (*av1_highbd_fht4x4)(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
|
||||
void av1_highbd_fht4x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht4x8 av1_highbd_fht4x8_c
|
||||
|
||||
void av1_highbd_fht8x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht8x16 av1_highbd_fht8x16_c
|
||||
|
||||
void av1_highbd_fht8x32_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht8x32 av1_highbd_fht8x32_c
|
||||
|
||||
void av1_highbd_fht8x4_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht8x4 av1_highbd_fht8x4_c
|
||||
|
||||
void av1_highbd_fht8x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht8x8 av1_highbd_fht8x8_c
|
||||
|
||||
void av1_highbd_fwht4x4_c(const int16_t *input, tran_low_t *output, int stride);
|
||||
#define av1_highbd_fwht4x4 av1_highbd_fwht4x4_c
|
||||
|
||||
void av1_highbd_iht16x16_256_add_c(const tran_low_t *input, uint8_t *output, int pitch, int tx_type, int bd);
|
||||
void av1_highbd_iht16x16_256_add_c(const tran_low_t *input, uint8_t *output, int pitch, const struct txfm_param *param);
|
||||
#define av1_highbd_iht16x16_256_add av1_highbd_iht16x16_256_add_c
|
||||
|
||||
void av1_highbd_iht16x32_512_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht16x32_512_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht16x32_512_add av1_highbd_iht16x32_512_add_c
|
||||
|
||||
void av1_highbd_iht16x4_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht16x4_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht16x4_64_add av1_highbd_iht16x4_64_add_c
|
||||
|
||||
void av1_highbd_iht16x8_128_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht16x8_128_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht16x8_128_add av1_highbd_iht16x8_128_add_c
|
||||
|
||||
void av1_highbd_iht32x16_512_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht32x16_512_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht32x16_512_add av1_highbd_iht32x16_512_add_c
|
||||
|
||||
void av1_highbd_iht32x8_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht32x8_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht32x8_256_add av1_highbd_iht32x8_256_add_c
|
||||
|
||||
void av1_highbd_iht4x16_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht4x16_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht4x16_64_add av1_highbd_iht4x16_64_add_c
|
||||
|
||||
void av1_highbd_iht4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht4x4_16_add av1_highbd_iht4x4_16_add_c
|
||||
|
||||
void av1_highbd_iht4x8_32_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht4x8_32_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht4x8_32_add av1_highbd_iht4x8_32_add_c
|
||||
|
||||
void av1_highbd_iht8x16_128_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht8x16_128_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht8x16_128_add av1_highbd_iht8x16_128_add_c
|
||||
|
||||
void av1_highbd_iht8x32_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht8x32_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht8x32_256_add av1_highbd_iht8x32_256_add_c
|
||||
|
||||
void av1_highbd_iht8x4_32_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht8x4_32_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht8x4_32_add av1_highbd_iht8x4_32_add_c
|
||||
|
||||
void av1_highbd_iht8x8_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht8x8_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht8x8_64_add av1_highbd_iht8x8_64_add_c
|
||||
|
||||
void av1_highbd_quantize_b_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan, int log_scale);
|
||||
|
|
@ -300,71 +278,81 @@ void av1_highbd_quantize_b_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int
|
|||
|
||||
void av1_highbd_quantize_fp_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan, int log_scale);
|
||||
void av1_highbd_quantize_fp_sse4_1(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan, int log_scale);
|
||||
void av1_highbd_quantize_fp_avx2(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan, int log_scale);
|
||||
RTCD_EXTERN void (*av1_highbd_quantize_fp)(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan, int log_scale);
|
||||
|
||||
void av1_highbd_temporal_filter_apply_c(uint8_t *frame1, unsigned int stride, uint8_t *frame2, unsigned int block_width, unsigned int block_height, int strength, int filter_weight, unsigned int *accumulator, uint16_t *count);
|
||||
#define av1_highbd_temporal_filter_apply av1_highbd_temporal_filter_apply_c
|
||||
|
||||
void av1_highbd_warp_affine_c(const int32_t *mat, const uint16_t *ref, int width, int height, int stride, uint16_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, int bd, int comp_avg, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
void av1_highbd_warp_affine_ssse3(const int32_t *mat, const uint16_t *ref, int width, int height, int stride, uint16_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, int bd, int comp_avg, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
RTCD_EXTERN void (*av1_highbd_warp_affine)(const int32_t *mat, const uint16_t *ref, int width, int height, int stride, uint16_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, int bd, int comp_avg, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
void av1_highbd_warp_affine_c(const int32_t *mat, const uint16_t *ref, int width, int height, int stride, uint16_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, int bd, ConvolveParams *conv_params, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
void av1_highbd_warp_affine_ssse3(const int32_t *mat, const uint16_t *ref, int width, int height, int stride, uint16_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, int bd, ConvolveParams *conv_params, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
RTCD_EXTERN void (*av1_highbd_warp_affine)(const int32_t *mat, const uint16_t *ref, int width, int height, int stride, uint16_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, int bd, ConvolveParams *conv_params, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
|
||||
void av1_iht16x16_256_add_c(const tran_low_t *input, uint8_t *output, int pitch, int tx_type);
|
||||
void av1_iht16x16_256_add_sse2(const tran_low_t *input, uint8_t *output, int pitch, int tx_type);
|
||||
void av1_iht16x16_256_add_avx2(const tran_low_t *input, uint8_t *output, int pitch, int tx_type);
|
||||
RTCD_EXTERN void (*av1_iht16x16_256_add)(const tran_low_t *input, uint8_t *output, int pitch, int tx_type);
|
||||
void av1_iht16x16_256_add_c(const tran_low_t *input, uint8_t *output, int pitch, const struct txfm_param *param);
|
||||
void av1_iht16x16_256_add_sse2(const tran_low_t *input, uint8_t *output, int pitch, const struct txfm_param *param);
|
||||
void av1_iht16x16_256_add_avx2(const tran_low_t *input, uint8_t *output, int pitch, const struct txfm_param *param);
|
||||
RTCD_EXTERN void (*av1_iht16x16_256_add)(const tran_low_t *input, uint8_t *output, int pitch, const struct txfm_param *param);
|
||||
|
||||
void av1_iht16x32_512_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht16x32_512_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht16x32_512_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
void av1_iht16x32_512_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht16x32_512_add av1_iht16x32_512_add_sse2
|
||||
|
||||
void av1_iht16x4_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht16x4_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht16x4_64_add av1_iht16x4_64_add_c
|
||||
|
||||
void av1_iht16x8_128_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht16x8_128_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht16x8_128_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
void av1_iht16x8_128_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht16x8_128_add av1_iht16x8_128_add_sse2
|
||||
|
||||
void av1_iht32x16_512_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht32x16_512_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht32x16_512_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
void av1_iht32x16_512_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht32x16_512_add av1_iht32x16_512_add_sse2
|
||||
|
||||
void av1_iht32x32_1024_add_c(const tran_low_t *input, uint8_t *output, int pitch, int tx_type);
|
||||
void av1_iht32x32_1024_add_c(const tran_low_t *input, uint8_t *output, int pitch, const struct txfm_param *param);
|
||||
#define av1_iht32x32_1024_add av1_iht32x32_1024_add_c
|
||||
|
||||
void av1_iht32x8_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht32x8_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht32x8_256_add av1_iht32x8_256_add_c
|
||||
|
||||
void av1_iht4x16_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht4x16_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht4x16_64_add av1_iht4x16_64_add_c
|
||||
|
||||
void av1_iht4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht4x4_16_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
void av1_iht4x4_16_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht4x4_16_add av1_iht4x4_16_add_sse2
|
||||
|
||||
void av1_iht4x8_32_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht4x8_32_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht4x8_32_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
void av1_iht4x8_32_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht4x8_32_add av1_iht4x8_32_add_sse2
|
||||
|
||||
void av1_iht8x16_128_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht8x16_128_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht8x16_128_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
void av1_iht8x16_128_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht8x16_128_add av1_iht8x16_128_add_sse2
|
||||
|
||||
void av1_iht8x32_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht8x32_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht8x32_256_add av1_iht8x32_256_add_c
|
||||
|
||||
void av1_iht8x4_32_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht8x4_32_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht8x4_32_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
void av1_iht8x4_32_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht8x4_32_add av1_iht8x4_32_add_sse2
|
||||
|
||||
void av1_iht8x8_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht8x8_64_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht8x8_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
void av1_iht8x8_64_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht8x8_64_add av1_iht8x8_64_add_sse2
|
||||
|
||||
void av1_inv_txfm2d_add_16x16_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
void av1_inv_txfm2d_add_16x16_sse4_1(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
RTCD_EXTERN void (*av1_inv_txfm2d_add_16x16)(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
|
||||
void av1_inv_txfm2d_add_16x32_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_inv_txfm2d_add_16x32 av1_inv_txfm2d_add_16x32_c
|
||||
|
||||
void av1_inv_txfm2d_add_16x8_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_inv_txfm2d_add_16x8 av1_inv_txfm2d_add_16x8_c
|
||||
|
||||
void av1_inv_txfm2d_add_32x16_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_inv_txfm2d_add_32x16 av1_inv_txfm2d_add_32x16_c
|
||||
|
||||
void av1_inv_txfm2d_add_32x32_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
void av1_inv_txfm2d_add_32x32_avx2(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
RTCD_EXTERN void (*av1_inv_txfm2d_add_32x32)(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
|
|
@ -373,9 +361,18 @@ void av1_inv_txfm2d_add_4x4_c(const int32_t *input, uint16_t *output, int stride
|
|||
void av1_inv_txfm2d_add_4x4_sse4_1(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
RTCD_EXTERN void (*av1_inv_txfm2d_add_4x4)(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
|
||||
void av1_inv_txfm2d_add_4x8_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_inv_txfm2d_add_4x8 av1_inv_txfm2d_add_4x8_c
|
||||
|
||||
void av1_inv_txfm2d_add_64x64_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_inv_txfm2d_add_64x64 av1_inv_txfm2d_add_64x64_c
|
||||
|
||||
void av1_inv_txfm2d_add_8x16_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_inv_txfm2d_add_8x16 av1_inv_txfm2d_add_8x16_c
|
||||
|
||||
void av1_inv_txfm2d_add_8x4_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_inv_txfm2d_add_8x4 av1_inv_txfm2d_add_8x4_c
|
||||
|
||||
void av1_inv_txfm2d_add_8x8_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
void av1_inv_txfm2d_add_8x8_sse4_1(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
RTCD_EXTERN void (*av1_inv_txfm2d_add_8x8)(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
|
|
@ -389,19 +386,21 @@ void av1_quantize_b_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_b
|
|||
|
||||
void av1_quantize_fp_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
void av1_quantize_fp_sse2(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
#define av1_quantize_fp av1_quantize_fp_sse2
|
||||
void av1_quantize_fp_avx2(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
RTCD_EXTERN void (*av1_quantize_fp)(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
|
||||
void av1_quantize_fp_32x32_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
#define av1_quantize_fp_32x32 av1_quantize_fp_32x32_c
|
||||
void av1_quantize_fp_32x32_avx2(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
RTCD_EXTERN void (*av1_quantize_fp_32x32)(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
|
||||
void av1_temporal_filter_apply_c(uint8_t *frame1, unsigned int stride, uint8_t *frame2, unsigned int block_width, unsigned int block_height, int strength, int filter_weight, unsigned int *accumulator, uint16_t *count);
|
||||
void av1_temporal_filter_apply_sse2(uint8_t *frame1, unsigned int stride, uint8_t *frame2, unsigned int block_width, unsigned int block_height, int strength, int filter_weight, unsigned int *accumulator, uint16_t *count);
|
||||
#define av1_temporal_filter_apply av1_temporal_filter_apply_sse2
|
||||
|
||||
void av1_warp_affine_c(const int32_t *mat, const uint8_t *ref, int width, int height, int stride, uint8_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, int comp_avg, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
void av1_warp_affine_sse2(const int32_t *mat, const uint8_t *ref, int width, int height, int stride, uint8_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, int comp_avg, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
void av1_warp_affine_ssse3(const int32_t *mat, const uint8_t *ref, int width, int height, int stride, uint8_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, int comp_avg, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
RTCD_EXTERN void (*av1_warp_affine)(const int32_t *mat, const uint8_t *ref, int width, int height, int stride, uint8_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, int comp_avg, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
void av1_warp_affine_c(const int32_t *mat, const uint8_t *ref, int width, int height, int stride, uint8_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, ConvolveParams *conv_params, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
void av1_warp_affine_sse2(const int32_t *mat, const uint8_t *ref, int width, int height, int stride, uint8_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, ConvolveParams *conv_params, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
void av1_warp_affine_ssse3(const int32_t *mat, const uint8_t *ref, int width, int height, int stride, uint8_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, ConvolveParams *conv_params, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
RTCD_EXTERN void (*av1_warp_affine)(const int32_t *mat, const uint8_t *ref, int width, int height, int stride, uint8_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, ConvolveParams *conv_params, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
|
||||
void av1_wedge_compute_delta_squares_c(int16_t *d, const int16_t *a, const int16_t *b, int N);
|
||||
void av1_wedge_compute_delta_squares_sse2(int16_t *d, const int16_t *a, const int16_t *b, int N);
|
||||
|
|
@ -495,6 +494,8 @@ static void setup_rtcd_internal(void)
|
|||
aom_clpf_hblock_hbd = aom_clpf_hblock_hbd_sse2;
|
||||
if (flags & HAS_SSSE3) aom_clpf_hblock_hbd = aom_clpf_hblock_hbd_ssse3;
|
||||
if (flags & HAS_SSE4_1) aom_clpf_hblock_hbd = aom_clpf_hblock_hbd_sse4_1;
|
||||
av1_block_error = av1_block_error_c;
|
||||
if (flags & HAS_AVX2) av1_block_error = av1_block_error_avx2;
|
||||
av1_convolve_horiz = av1_convolve_horiz_c;
|
||||
if (flags & HAS_SSSE3) av1_convolve_horiz = av1_convolve_horiz_ssse3;
|
||||
av1_convolve_vert = av1_convolve_vert_c;
|
||||
|
|
@ -522,10 +523,9 @@ static void setup_rtcd_internal(void)
|
|||
if (flags & HAS_SSE4_1) av1_highbd_convolve_init = av1_highbd_convolve_init_sse4_1;
|
||||
av1_highbd_convolve_vert = av1_highbd_convolve_vert_c;
|
||||
if (flags & HAS_SSE4_1) av1_highbd_convolve_vert = av1_highbd_convolve_vert_sse4_1;
|
||||
av1_highbd_fht4x4 = av1_highbd_fht4x4_c;
|
||||
if (flags & HAS_SSE4_1) av1_highbd_fht4x4 = av1_highbd_fht4x4_sse4_1;
|
||||
av1_highbd_quantize_fp = av1_highbd_quantize_fp_c;
|
||||
if (flags & HAS_SSE4_1) av1_highbd_quantize_fp = av1_highbd_quantize_fp_sse4_1;
|
||||
if (flags & HAS_AVX2) av1_highbd_quantize_fp = av1_highbd_quantize_fp_avx2;
|
||||
av1_highbd_warp_affine = av1_highbd_warp_affine_c;
|
||||
if (flags & HAS_SSSE3) av1_highbd_warp_affine = av1_highbd_warp_affine_ssse3;
|
||||
av1_iht16x16_256_add = av1_iht16x16_256_add_sse2;
|
||||
|
|
@ -540,6 +540,10 @@ static void setup_rtcd_internal(void)
|
|||
if (flags & HAS_SSE4_1) av1_inv_txfm2d_add_8x8 = av1_inv_txfm2d_add_8x8_sse4_1;
|
||||
av1_lowbd_convolve_init = av1_lowbd_convolve_init_c;
|
||||
if (flags & HAS_SSSE3) av1_lowbd_convolve_init = av1_lowbd_convolve_init_ssse3;
|
||||
av1_quantize_fp = av1_quantize_fp_sse2;
|
||||
if (flags & HAS_AVX2) av1_quantize_fp = av1_quantize_fp_avx2;
|
||||
av1_quantize_fp_32x32 = av1_quantize_fp_32x32_c;
|
||||
if (flags & HAS_AVX2) av1_quantize_fp_32x32 = av1_quantize_fp_32x32_avx2;
|
||||
av1_warp_affine = av1_warp_affine_sse2;
|
||||
if (flags & HAS_SSSE3) av1_warp_affine = av1_warp_affine_ssse3;
|
||||
compute_cross_correlation = compute_cross_correlation_c;
|
||||
|
|
|
|||
|
|
@ -1,146 +1,163 @@
|
|||
%define ARCH_ARM 0
|
||||
%define ARCH_MIPS 0
|
||||
%define ARCH_X86 0
|
||||
%define ARCH_X86_64 1
|
||||
%define HAVE_NEON 0
|
||||
%define HAVE_NEON_ASM 0
|
||||
%define HAVE_MIPS32 0
|
||||
%define HAVE_DSPR2 0
|
||||
%define HAVE_MSA 0
|
||||
%define HAVE_MIPS64 0
|
||||
%define HAVE_MMX 1
|
||||
%define HAVE_SSE 1
|
||||
%define HAVE_SSE2 1
|
||||
%define HAVE_SSE3 1
|
||||
%define HAVE_SSSE3 1
|
||||
%define HAVE_SSE4_1 1
|
||||
%define HAVE_AVX 1
|
||||
%define HAVE_AVX2 1
|
||||
%define HAVE_AOM_PORTS 1
|
||||
%define HAVE_FEXCEPT 1
|
||||
%define HAVE_PTHREAD_H 1
|
||||
%define HAVE_WXWIDGETS 0
|
||||
%define CONFIG_DEPENDENCY_TRACKING 1
|
||||
%define CONFIG_EXTERNAL_BUILD 1
|
||||
%define CONFIG_INSTALL_DOCS 1
|
||||
%define CONFIG_INSTALL_BINS 1
|
||||
%define CONFIG_INSTALL_LIBS 1
|
||||
%define CONFIG_INSTALL_SRCS 0
|
||||
%define CONFIG_DEBUG 0
|
||||
%define CONFIG_GPROF 0
|
||||
%define CONFIG_GCOV 0
|
||||
%define CONFIG_RVCT 0
|
||||
%define CONFIG_GCC 1
|
||||
%define CONFIG_MSVS 0
|
||||
%define CONFIG_PIC 1
|
||||
%define CONFIG_BIG_ENDIAN 0
|
||||
%define CONFIG_CODEC_SRCS 0
|
||||
%define CONFIG_DEBUG_LIBS 0
|
||||
%define CONFIG_RUNTIME_CPU_DETECT 1
|
||||
%define CONFIG_POSTPROC 1
|
||||
%define CONFIG_MULTITHREAD 1
|
||||
%define CONFIG_INTERNAL_STATS 0
|
||||
%define CONFIG_AV1_ENCODER 1
|
||||
%define CONFIG_AV1_DECODER 1
|
||||
%define CONFIG_AV1 1
|
||||
%define CONFIG_STATIC_MSVCRT 0
|
||||
%define CONFIG_SPATIAL_RESAMPLING 1
|
||||
%define CONFIG_REALTIME_ONLY 0
|
||||
%define CONFIG_ONTHEFLY_BITPACKING 0
|
||||
%define CONFIG_ERROR_CONCEALMENT 0
|
||||
%define CONFIG_SHARED 0
|
||||
%define CONFIG_STATIC 1
|
||||
%define CONFIG_SMALL 0
|
||||
%define CONFIG_POSTPROC_VISUALIZER 0
|
||||
%define CONFIG_OS_SUPPORT 1
|
||||
%define CONFIG_UNIT_TESTS 0
|
||||
%define CONFIG_WEBM_IO 1
|
||||
%define CONFIG_LIBYUV 1
|
||||
%define CONFIG_ACCOUNTING 0
|
||||
%define CONFIG_INSPECTION 0
|
||||
%define CONFIG_DECODE_PERF_TESTS 0
|
||||
%define CONFIG_ENCODE_PERF_TESTS 0
|
||||
%define CONFIG_COEFFICIENT_RANGE_CHECKING 0
|
||||
%define CONFIG_LOWBITDEPTH 1
|
||||
%define CONFIG_HIGHBITDEPTH 1
|
||||
%define CONFIG_EXPERIMENTAL 0
|
||||
%define CONFIG_SIZE_LIMIT 1
|
||||
%define CONFIG_FP_MB_STATS 0
|
||||
%define CONFIG_CDEF 1
|
||||
%define CONFIG_VAR_TX 1
|
||||
%define CONFIG_RECT_TX 1
|
||||
%define CONFIG_RECT_TX_EXT 0
|
||||
%define CONFIG_TPL_MV 0
|
||||
%define CONFIG_DUAL_FILTER 1
|
||||
%define CONFIG_CONVOLVE_ROUND 0
|
||||
%define CONFIG_COMPOUND_ROUND 0
|
||||
%define CONFIG_EXT_TX 1
|
||||
%define CONFIG_DPCM_INTRA 0
|
||||
%define CONFIG_TX64X64 0
|
||||
%define CONFIG_EXT_INTRA 1
|
||||
%define CONFIG_INTRA_INTERP 0
|
||||
%define CONFIG_FILTER_INTRA 0
|
||||
%define CONFIG_INTRA_EDGE 0
|
||||
%define CONFIG_INTRABC 0
|
||||
%define CONFIG_EXT_INTER 1
|
||||
%define CONFIG_INTERINTRA 1
|
||||
%define CONFIG_WEDGE 1
|
||||
%define CONFIG_COMPOUND_SEGMENT 1
|
||||
%define CONFIG_EXT_REFS 1
|
||||
%define CONFIG_GLOBAL_MOTION 1
|
||||
%define CONFIG_NEW_QUANT 0
|
||||
%define CONFIG_SUPERTX 0
|
||||
%define CONFIG_ANS 0
|
||||
%define CONFIG_LOOP_RESTORATION 0
|
||||
%define CONFIG_EXT_PARTITION 0
|
||||
%define CONFIG_EXT_PARTITION_TYPES 0
|
||||
%define CONFIG_UNPOISON_PARTITION_CTX 0
|
||||
%define CONFIG_EXT_TILE 0
|
||||
%define CONFIG_MOTION_VAR 1
|
||||
%define CONFIG_NCOBMC 0
|
||||
%define CONFIG_WARPED_MOTION 1
|
||||
%define CONFIG_Q_ADAPT_PROBS 0
|
||||
%define CONFIG_BITSTREAM_DEBUG 0
|
||||
%define CONFIG_ALT_INTRA 1
|
||||
%define CONFIG_PALETTE 1
|
||||
%define CONFIG_PALETTE_DELTA_ENCODING 0
|
||||
%define CONFIG_RAWBITS 0
|
||||
%define CONFIG_EC_SMALLMUL 1
|
||||
%define CONFIG_PVQ 0
|
||||
%define CONFIG_CFL 0
|
||||
%define CONFIG_XIPHRC 0
|
||||
%define CONFIG_CB4X4 1
|
||||
%define CONFIG_CHROMA_2X2 0
|
||||
%define CONFIG_CHROMA_SUB8X8 1
|
||||
%define CONFIG_FRAME_SIZE 0
|
||||
%define CONFIG_DELTA_Q 1
|
||||
%define CONFIG_EXT_DELTA_Q 1
|
||||
%define CONFIG_ADAPT_SCAN 0
|
||||
%define CONFIG_FILTER_7BIT 1
|
||||
%define CONFIG_PARALLEL_DEBLOCKING 0
|
||||
%define CONFIG_PARALLEL_DEBLOCKING_15TAP 0
|
||||
%define CONFIG_LOOPFILTERING_ACROSS_TILES 1
|
||||
%define CONFIG_TILE_GROUPS 1
|
||||
%define CONFIG_EC_ADAPT 1
|
||||
%define CONFIG_TEMPMV_SIGNALING 1
|
||||
%define CONFIG_RD_DEBUG 0
|
||||
%define CONFIG_REFERENCE_BUFFER 1
|
||||
%define CONFIG_COEF_INTERLEAVE 0
|
||||
%define CONFIG_ENTROPY_STATS 0
|
||||
%define CONFIG_MASKED_TX 0
|
||||
%define CONFIG_DEPENDENT_HORZTILES 0
|
||||
%define CONFIG_DAALA_DIST 0
|
||||
%define CONFIG_TRIPRED 0
|
||||
%define CONFIG_PALETTE_THROUGHPUT 1
|
||||
%define CONFIG_REF_ADAPT 0
|
||||
%define CONFIG_LV_MAP 0
|
||||
%define CONFIG_TXK_SEL 0
|
||||
%define CONFIG_MV_COMPRESS 1
|
||||
%define CONFIG_FRAME_SUPERRES 0
|
||||
%define CONFIG_NEW_MULTISYMBOL 0
|
||||
%define CONFIG_COMPOUND_SINGLEREF 0
|
||||
%define CONFIG_AOM_QM 0
|
||||
%define CONFIG_ONE_SIDED_COMPOUND 1
|
||||
%define CONFIG_SMOOTH_HV 0
|
||||
%define CONFIG_VAR_REFS 0
|
||||
%define CONFIG_ANALYZER 0
|
||||
ARCH_ARM equ 0
|
||||
ARCH_MIPS equ 0
|
||||
ARCH_X86 equ 0
|
||||
ARCH_X86_64 equ 1
|
||||
HAVE_NEON equ 0
|
||||
HAVE_NEON_ASM equ 0
|
||||
HAVE_MIPS32 equ 0
|
||||
HAVE_DSPR2 equ 0
|
||||
HAVE_MSA equ 0
|
||||
HAVE_MIPS64 equ 0
|
||||
HAVE_MMX equ 1
|
||||
HAVE_SSE equ 1
|
||||
HAVE_SSE2 equ 1
|
||||
HAVE_SSE3 equ 1
|
||||
HAVE_SSSE3 equ 1
|
||||
HAVE_SSE4_1 equ 1
|
||||
HAVE_AVX equ 1
|
||||
HAVE_AVX2 equ 1
|
||||
HAVE_AOM_PORTS equ 1
|
||||
HAVE_FEXCEPT equ 1
|
||||
HAVE_PTHREAD_H equ 1
|
||||
HAVE_WXWIDGETS equ 0
|
||||
CONFIG_DEPENDENCY_TRACKING equ 1
|
||||
CONFIG_EXTERNAL_BUILD equ 1
|
||||
CONFIG_INSTALL_DOCS equ 1
|
||||
CONFIG_INSTALL_BINS equ 1
|
||||
CONFIG_INSTALL_LIBS equ 1
|
||||
CONFIG_INSTALL_SRCS equ 0
|
||||
CONFIG_DEBUG equ 0
|
||||
CONFIG_GPROF equ 0
|
||||
CONFIG_GCOV equ 0
|
||||
CONFIG_RVCT equ 0
|
||||
CONFIG_GCC equ 1
|
||||
CONFIG_MSVS equ 0
|
||||
CONFIG_PIC equ 1
|
||||
CONFIG_BIG_ENDIAN equ 0
|
||||
CONFIG_CODEC_SRCS equ 0
|
||||
CONFIG_DEBUG_LIBS equ 0
|
||||
CONFIG_RUNTIME_CPU_DETECT equ 1
|
||||
CONFIG_POSTPROC equ 1
|
||||
CONFIG_MULTITHREAD equ 1
|
||||
CONFIG_INTERNAL_STATS equ 0
|
||||
CONFIG_AV1_ENCODER equ 1
|
||||
CONFIG_AV1_DECODER equ 1
|
||||
CONFIG_AV1 equ 1
|
||||
CONFIG_STATIC_MSVCRT equ 0
|
||||
CONFIG_SPATIAL_RESAMPLING equ 1
|
||||
CONFIG_REALTIME_ONLY equ 0
|
||||
CONFIG_ONTHEFLY_BITPACKING equ 0
|
||||
CONFIG_ERROR_CONCEALMENT equ 0
|
||||
CONFIG_SHARED equ 0
|
||||
CONFIG_STATIC equ 1
|
||||
CONFIG_SMALL equ 0
|
||||
CONFIG_POSTPROC_VISUALIZER equ 0
|
||||
CONFIG_OS_SUPPORT equ 1
|
||||
CONFIG_UNIT_TESTS equ 0
|
||||
CONFIG_WEBM_IO equ 1
|
||||
CONFIG_LIBYUV equ 1
|
||||
CONFIG_ACCOUNTING equ 0
|
||||
CONFIG_INSPECTION equ 0
|
||||
CONFIG_DECODE_PERF_TESTS equ 0
|
||||
CONFIG_ENCODE_PERF_TESTS equ 0
|
||||
CONFIG_COEFFICIENT_RANGE_CHECKING equ 0
|
||||
CONFIG_LOWBITDEPTH equ 1
|
||||
CONFIG_HIGHBITDEPTH equ 1
|
||||
CONFIG_EXPERIMENTAL equ 0
|
||||
CONFIG_SIZE_LIMIT equ 1
|
||||
CONFIG_COLORSPACE_HEADERS equ 0
|
||||
CONFIG_FP_MB_STATS equ 0
|
||||
CONFIG_CDEF equ 1
|
||||
CONFIG_VAR_TX equ 1
|
||||
CONFIG_RECT_TX equ 1
|
||||
CONFIG_RECT_TX_EXT equ 0
|
||||
CONFIG_TPL_MV equ 0
|
||||
CONFIG_DUAL_FILTER equ 1
|
||||
CONFIG_CONVOLVE_ROUND equ 0
|
||||
CONFIG_COMPOUND_ROUND equ 0
|
||||
CONFIG_EXT_TX equ 1
|
||||
CONFIG_DPCM_INTRA equ 0
|
||||
CONFIG_TX64X64 equ 0
|
||||
CONFIG_EXT_INTRA equ 1
|
||||
CONFIG_INTRA_INTERP equ 0
|
||||
CONFIG_FILTER_INTRA equ 0
|
||||
CONFIG_INTRA_EDGE equ 0
|
||||
CONFIG_INTRABC equ 0
|
||||
CONFIG_EXT_INTER equ 1
|
||||
CONFIG_INTERINTRA equ 1
|
||||
CONFIG_WEDGE equ 1
|
||||
CONFIG_COMPOUND_SEGMENT equ 1
|
||||
CONFIG_EXT_REFS equ 1
|
||||
CONFIG_ALTREF2 equ 0
|
||||
CONFIG_SPEED_REFS equ 0
|
||||
CONFIG_GF_GROUPS equ 0
|
||||
CONFIG_FLEX_REFS equ 0
|
||||
CONFIG_GLOBAL_MOTION equ 1
|
||||
CONFIG_NEW_QUANT equ 0
|
||||
CONFIG_SUPERTX equ 0
|
||||
CONFIG_ANS equ 0
|
||||
CONFIG_LOOP_RESTORATION equ 0
|
||||
CONFIG_EXT_PARTITION equ 0
|
||||
CONFIG_EXT_PARTITION_TYPES equ 0
|
||||
CONFIG_UNPOISON_PARTITION_CTX equ 0
|
||||
CONFIG_EXT_TILE equ 0
|
||||
CONFIG_MOTION_VAR equ 1
|
||||
CONFIG_NCOBMC equ 0
|
||||
CONFIG_WARPED_MOTION equ 1
|
||||
CONFIG_Q_ADAPT_PROBS equ 0
|
||||
CONFIG_BITSTREAM_DEBUG equ 0
|
||||
CONFIG_INTER_STATS_ONLY equ 0
|
||||
CONFIG_ALT_INTRA equ 1
|
||||
CONFIG_PALETTE equ 1
|
||||
CONFIG_PALETTE_DELTA_ENCODING equ 0
|
||||
CONFIG_RAWBITS equ 0
|
||||
CONFIG_EC_SMALLMUL equ 1
|
||||
CONFIG_PVQ equ 0
|
||||
CONFIG_CFL equ 0
|
||||
CONFIG_XIPHRC equ 0
|
||||
CONFIG_DCT_ONLY equ 0
|
||||
CONFIG_DAALA_DCT4 equ 0
|
||||
CONFIG_DAALA_DCT8 equ 0
|
||||
CONFIG_CB4X4 equ 1
|
||||
CONFIG_CHROMA_2X2 equ 0
|
||||
CONFIG_CHROMA_SUB8X8 equ 1
|
||||
CONFIG_FRAME_SIZE equ 0
|
||||
CONFIG_DELTA_Q equ 1
|
||||
CONFIG_EXT_DELTA_Q equ 1
|
||||
CONFIG_ADAPT_SCAN equ 0
|
||||
CONFIG_FILTER_7BIT equ 1
|
||||
CONFIG_PARALLEL_DEBLOCKING equ 1
|
||||
CONFIG_LOOPFILTERING_ACROSS_TILES equ 1
|
||||
CONFIG_TEMPMV_SIGNALING equ 1
|
||||
CONFIG_RD_DEBUG equ 0
|
||||
CONFIG_REFERENCE_BUFFER equ 1
|
||||
CONFIG_COEF_INTERLEAVE equ 0
|
||||
CONFIG_ENTROPY_STATS equ 0
|
||||
CONFIG_MASKED_TX equ 0
|
||||
CONFIG_DEPENDENT_HORZTILES equ 0
|
||||
CONFIG_DIST_8X8 equ 0
|
||||
CONFIG_DAALA_DIST equ 0
|
||||
CONFIG_TRIPRED equ 0
|
||||
CONFIG_PALETTE_THROUGHPUT equ 1
|
||||
CONFIG_REF_ADAPT equ 0
|
||||
CONFIG_LV_MAP equ 0
|
||||
CONFIG_TXK_SEL equ 0
|
||||
CONFIG_MV_COMPRESS equ 1
|
||||
CONFIG_FRAME_SUPERRES equ 0
|
||||
CONFIG_NEW_MULTISYMBOL equ 0
|
||||
CONFIG_COMPOUND_SINGLEREF equ 0
|
||||
CONFIG_AOM_QM equ 0
|
||||
CONFIG_ONE_SIDED_COMPOUND equ 1
|
||||
CONFIG_EXT_COMP_REFS equ 0
|
||||
CONFIG_SMOOTH_HV equ 1
|
||||
CONFIG_VAR_REFS equ 0
|
||||
CONFIG_RECT_INTRA_PRED equ 1
|
||||
CONFIG_LGT equ 0
|
||||
CONFIG_SBL_SYMBOL equ 0
|
||||
CONFIG_NCOBMC_ADAPT_WEIGHT equ 0
|
||||
CONFIG_BGSPRITE equ 0
|
||||
CONFIG_VAR_TX_NO_TX_MODE equ 0
|
||||
CONFIG_MRC_TX equ 0
|
||||
CONFIG_LPF_DIRECT equ 0
|
||||
CONFIG_UV_LVL equ 0
|
||||
CONFIG_ANALYZER equ 0
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
/* This file automatically generated by configure. Do not edit! */
|
||||
#ifndef AOM_CONFIG_H
|
||||
#define AOM_CONFIG_H
|
||||
#define RESTRICT
|
||||
#define RESTRICT
|
||||
#define INLINE inline
|
||||
#define ARCH_ARM 0
|
||||
#define ARCH_MIPS 0
|
||||
|
|
@ -78,6 +78,7 @@
|
|||
#define CONFIG_HIGHBITDEPTH 1
|
||||
#define CONFIG_EXPERIMENTAL 0
|
||||
#define CONFIG_SIZE_LIMIT 1
|
||||
#define CONFIG_COLORSPACE_HEADERS 0
|
||||
#define CONFIG_FP_MB_STATS 0
|
||||
#define CONFIG_CDEF 1
|
||||
#define CONFIG_VAR_TX 1
|
||||
|
|
@ -100,6 +101,10 @@
|
|||
#define CONFIG_WEDGE 1
|
||||
#define CONFIG_COMPOUND_SEGMENT 1
|
||||
#define CONFIG_EXT_REFS 1
|
||||
#define CONFIG_ALTREF2 0
|
||||
#define CONFIG_SPEED_REFS 0
|
||||
#define CONFIG_GF_GROUPS 0
|
||||
#define CONFIG_FLEX_REFS 0
|
||||
#define CONFIG_GLOBAL_MOTION 1
|
||||
#define CONFIG_NEW_QUANT 0
|
||||
#define CONFIG_SUPERTX 0
|
||||
|
|
@ -114,6 +119,7 @@
|
|||
#define CONFIG_WARPED_MOTION 1
|
||||
#define CONFIG_Q_ADAPT_PROBS 0
|
||||
#define CONFIG_BITSTREAM_DEBUG 0
|
||||
#define CONFIG_INTER_STATS_ONLY 0
|
||||
#define CONFIG_ALT_INTRA 1
|
||||
#define CONFIG_PALETTE 1
|
||||
#define CONFIG_PALETTE_DELTA_ENCODING 0
|
||||
|
|
@ -122,6 +128,9 @@
|
|||
#define CONFIG_PVQ 0
|
||||
#define CONFIG_CFL 0
|
||||
#define CONFIG_XIPHRC 0
|
||||
#define CONFIG_DCT_ONLY 0
|
||||
#define CONFIG_DAALA_DCT4 0
|
||||
#define CONFIG_DAALA_DCT8 0
|
||||
#define CONFIG_CB4X4 1
|
||||
#define CONFIG_CHROMA_2X2 0
|
||||
#define CONFIG_CHROMA_SUB8X8 1
|
||||
|
|
@ -130,11 +139,8 @@
|
|||
#define CONFIG_EXT_DELTA_Q 1
|
||||
#define CONFIG_ADAPT_SCAN 0
|
||||
#define CONFIG_FILTER_7BIT 1
|
||||
#define CONFIG_PARALLEL_DEBLOCKING 0
|
||||
#define CONFIG_PARALLEL_DEBLOCKING_15TAP 0
|
||||
#define CONFIG_PARALLEL_DEBLOCKING 1
|
||||
#define CONFIG_LOOPFILTERING_ACROSS_TILES 1
|
||||
#define CONFIG_TILE_GROUPS 1
|
||||
#define CONFIG_EC_ADAPT 1
|
||||
#define CONFIG_TEMPMV_SIGNALING 1
|
||||
#define CONFIG_RD_DEBUG 0
|
||||
#define CONFIG_REFERENCE_BUFFER 1
|
||||
|
|
@ -142,6 +148,7 @@
|
|||
#define CONFIG_ENTROPY_STATS 0
|
||||
#define CONFIG_MASKED_TX 0
|
||||
#define CONFIG_DEPENDENT_HORZTILES 0
|
||||
#define CONFIG_DIST_8X8 0
|
||||
#define CONFIG_DAALA_DIST 0
|
||||
#define CONFIG_TRIPRED 0
|
||||
#define CONFIG_PALETTE_THROUGHPUT 1
|
||||
|
|
@ -154,8 +161,18 @@
|
|||
#define CONFIG_COMPOUND_SINGLEREF 0
|
||||
#define CONFIG_AOM_QM 0
|
||||
#define CONFIG_ONE_SIDED_COMPOUND 1
|
||||
#define CONFIG_SMOOTH_HV 0
|
||||
#define CONFIG_EXT_COMP_REFS 0
|
||||
#define CONFIG_SMOOTH_HV 1
|
||||
#define CONFIG_VAR_REFS 0
|
||||
#define CONFIG_RECT_INTRA_PRED 1
|
||||
#define CONFIG_LGT 0
|
||||
#define CONFIG_SBL_SYMBOL 0
|
||||
#define CONFIG_NCOBMC_ADAPT_WEIGHT 0
|
||||
#define CONFIG_BGSPRITE 0
|
||||
#define CONFIG_VAR_TX_NO_TX_MODE 0
|
||||
#define CONFIG_MRC_TX 0
|
||||
#define CONFIG_LPF_DIRECT 0
|
||||
#define CONFIG_UV_LVL 0
|
||||
#define CONFIG_ANALYZER 0
|
||||
#define DECODE_WIDTH_LIMIT 8192
|
||||
#define DECODE_HEIGHT_LIMIT 4608
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -12,6 +12,7 @@
|
|||
*/
|
||||
|
||||
#include "aom/aom_integer.h"
|
||||
#include "aom_dsp/txfm_common.h"
|
||||
#include "av1/common/common.h"
|
||||
#include "av1/common/enums.h"
|
||||
#include "av1/common/quant_common.h"
|
||||
|
|
@ -24,6 +25,7 @@ struct macroblockd;
|
|||
|
||||
/* Encoder forward decls */
|
||||
struct macroblock;
|
||||
struct txfm_param;
|
||||
struct aom_variance_vtable;
|
||||
struct search_site_config;
|
||||
struct mv;
|
||||
|
|
@ -60,7 +62,8 @@ void aom_clpf_hblock_hbd_sse4_1(uint16_t *dst, const uint16_t *src, int dstride,
|
|||
RTCD_EXTERN void (*aom_clpf_hblock_hbd)(uint16_t *dst, const uint16_t *src, int dstride, int sstride, int sizex, int sizey, unsigned int strength, unsigned int bd);
|
||||
|
||||
int64_t av1_block_error_c(const tran_low_t *coeff, const tran_low_t *dqcoeff, intptr_t block_size, int64_t *ssz);
|
||||
#define av1_block_error av1_block_error_c
|
||||
int64_t av1_block_error_avx2(const tran_low_t *coeff, const tran_low_t *dqcoeff, intptr_t block_size, int64_t *ssz);
|
||||
RTCD_EXTERN int64_t (*av1_block_error)(const tran_low_t *coeff, const tran_low_t *dqcoeff, intptr_t block_size, int64_t *ssz);
|
||||
|
||||
void av1_convolve_horiz_c(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int w, int h, const InterpFilterParams fp, const int subpel_x_q4, int x_step_q4, ConvolveParams *conv_params);
|
||||
void av1_convolve_horiz_ssse3(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int w, int h, const InterpFilterParams fp, const int subpel_x_q4, int x_step_q4, ConvolveParams *conv_params);
|
||||
|
|
@ -76,58 +79,58 @@ int av1_diamond_search_sad_c(struct macroblock *x, const struct search_site_conf
|
|||
void av1_fdct8x8_quant_c(const int16_t *input, int stride, tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
#define av1_fdct8x8_quant av1_fdct8x8_quant_c
|
||||
|
||||
void av1_fht16x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht16x16_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht16x16_avx2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
RTCD_EXTERN void (*av1_fht16x16)(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht16x16_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht16x16_sse2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht16x16_avx2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
RTCD_EXTERN void (*av1_fht16x16)(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
|
||||
void av1_fht16x32_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht16x32_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht16x32_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht16x32_sse2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht16x32 av1_fht16x32_sse2
|
||||
|
||||
void av1_fht16x4_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht16x4_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht16x4 av1_fht16x4_c
|
||||
|
||||
void av1_fht16x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht16x8_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht16x8_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht16x8_sse2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht16x8 av1_fht16x8_sse2
|
||||
|
||||
void av1_fht32x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht32x16_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht32x16_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht32x16_sse2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht32x16 av1_fht32x16_sse2
|
||||
|
||||
void av1_fht32x32_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht32x32_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht32x32_avx2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
RTCD_EXTERN void (*av1_fht32x32)(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht32x32_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht32x32_sse2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht32x32_avx2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
RTCD_EXTERN void (*av1_fht32x32)(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
|
||||
void av1_fht32x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht32x8_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht32x8 av1_fht32x8_c
|
||||
|
||||
void av1_fht4x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht4x16_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht4x16 av1_fht4x16_c
|
||||
|
||||
void av1_fht4x4_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht4x4_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht4x4_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht4x4_sse2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht4x4 av1_fht4x4_sse2
|
||||
|
||||
void av1_fht4x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht4x8_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht4x8_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht4x8_sse2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht4x8 av1_fht4x8_sse2
|
||||
|
||||
void av1_fht8x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht8x16_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht8x16_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht8x16_sse2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht8x16 av1_fht8x16_sse2
|
||||
|
||||
void av1_fht8x32_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht8x32_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht8x32 av1_fht8x32_c
|
||||
|
||||
void av1_fht8x4_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht8x4_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht8x4_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht8x4_sse2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht8x4 av1_fht8x4_sse2
|
||||
|
||||
void av1_fht8x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht8x8_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht8x8_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht8x8_sse2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht8x8 av1_fht8x8_sse2
|
||||
|
||||
int av1_full_range_search_c(const struct macroblock *x, const struct search_site_config *cfg, struct mv *ref_mv, struct mv *best_mv, int search_param, int sad_per_bit, int *num00, const struct aom_variance_vtable *fn_ptr, const struct mv *center_mv);
|
||||
|
|
@ -145,6 +148,15 @@ void av1_fwd_txfm2d_16x16_c(const int16_t *input, int32_t *output, int stride, i
|
|||
void av1_fwd_txfm2d_16x16_sse4_1(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
RTCD_EXTERN void (*av1_fwd_txfm2d_16x16)(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
|
||||
void av1_fwd_txfm2d_16x32_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_fwd_txfm2d_16x32 av1_fwd_txfm2d_16x32_c
|
||||
|
||||
void av1_fwd_txfm2d_16x8_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_fwd_txfm2d_16x8 av1_fwd_txfm2d_16x8_c
|
||||
|
||||
void av1_fwd_txfm2d_32x16_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_fwd_txfm2d_32x16 av1_fwd_txfm2d_32x16_c
|
||||
|
||||
void av1_fwd_txfm2d_32x32_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
void av1_fwd_txfm2d_32x32_sse4_1(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
RTCD_EXTERN void (*av1_fwd_txfm2d_32x32)(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
|
|
@ -153,10 +165,19 @@ void av1_fwd_txfm2d_4x4_c(const int16_t *input, int32_t *output, int stride, int
|
|||
void av1_fwd_txfm2d_4x4_sse4_1(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
RTCD_EXTERN void (*av1_fwd_txfm2d_4x4)(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
|
||||
void av1_fwd_txfm2d_4x8_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_fwd_txfm2d_4x8 av1_fwd_txfm2d_4x8_c
|
||||
|
||||
void av1_fwd_txfm2d_64x64_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
void av1_fwd_txfm2d_64x64_sse4_1(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
RTCD_EXTERN void (*av1_fwd_txfm2d_64x64)(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
|
||||
void av1_fwd_txfm2d_8x16_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_fwd_txfm2d_8x16 av1_fwd_txfm2d_8x16_c
|
||||
|
||||
void av1_fwd_txfm2d_8x4_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_fwd_txfm2d_8x4 av1_fwd_txfm2d_8x4_c
|
||||
|
||||
void av1_fwd_txfm2d_8x8_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
void av1_fwd_txfm2d_8x8_sse4_1(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
RTCD_EXTERN void (*av1_fwd_txfm2d_8x8)(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
|
|
@ -210,89 +231,46 @@ void av1_highbd_convolve_vert_c(const uint16_t *src, int src_stride, uint16_t *d
|
|||
void av1_highbd_convolve_vert_sse4_1(const uint16_t *src, int src_stride, uint16_t *dst, int dst_stride, int w, int h, const InterpFilterParams fp, const int subpel_x_q4, int x_step_q4, int avg, int bd);
|
||||
RTCD_EXTERN void (*av1_highbd_convolve_vert)(const uint16_t *src, int src_stride, uint16_t *dst, int dst_stride, int w, int h, const InterpFilterParams fp, const int subpel_x_q4, int x_step_q4, int avg, int bd);
|
||||
|
||||
void av1_highbd_fht16x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht16x16 av1_highbd_fht16x16_c
|
||||
|
||||
void av1_highbd_fht16x32_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht16x32 av1_highbd_fht16x32_c
|
||||
|
||||
void av1_highbd_fht16x4_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht16x4 av1_highbd_fht16x4_c
|
||||
|
||||
void av1_highbd_fht16x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht16x8 av1_highbd_fht16x8_c
|
||||
|
||||
void av1_highbd_fht32x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht32x16 av1_highbd_fht32x16_c
|
||||
|
||||
void av1_highbd_fht32x32_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht32x32 av1_highbd_fht32x32_c
|
||||
|
||||
void av1_highbd_fht32x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht32x8 av1_highbd_fht32x8_c
|
||||
|
||||
void av1_highbd_fht4x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht4x16 av1_highbd_fht4x16_c
|
||||
|
||||
void av1_highbd_fht4x4_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_highbd_fht4x4_sse4_1(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
RTCD_EXTERN void (*av1_highbd_fht4x4)(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
|
||||
void av1_highbd_fht4x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht4x8 av1_highbd_fht4x8_c
|
||||
|
||||
void av1_highbd_fht8x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht8x16 av1_highbd_fht8x16_c
|
||||
|
||||
void av1_highbd_fht8x32_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht8x32 av1_highbd_fht8x32_c
|
||||
|
||||
void av1_highbd_fht8x4_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht8x4 av1_highbd_fht8x4_c
|
||||
|
||||
void av1_highbd_fht8x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht8x8 av1_highbd_fht8x8_c
|
||||
|
||||
void av1_highbd_fwht4x4_c(const int16_t *input, tran_low_t *output, int stride);
|
||||
#define av1_highbd_fwht4x4 av1_highbd_fwht4x4_c
|
||||
|
||||
void av1_highbd_iht16x16_256_add_c(const tran_low_t *input, uint8_t *output, int pitch, int tx_type, int bd);
|
||||
void av1_highbd_iht16x16_256_add_c(const tran_low_t *input, uint8_t *output, int pitch, const struct txfm_param *param);
|
||||
#define av1_highbd_iht16x16_256_add av1_highbd_iht16x16_256_add_c
|
||||
|
||||
void av1_highbd_iht16x32_512_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht16x32_512_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht16x32_512_add av1_highbd_iht16x32_512_add_c
|
||||
|
||||
void av1_highbd_iht16x4_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht16x4_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht16x4_64_add av1_highbd_iht16x4_64_add_c
|
||||
|
||||
void av1_highbd_iht16x8_128_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht16x8_128_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht16x8_128_add av1_highbd_iht16x8_128_add_c
|
||||
|
||||
void av1_highbd_iht32x16_512_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht32x16_512_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht32x16_512_add av1_highbd_iht32x16_512_add_c
|
||||
|
||||
void av1_highbd_iht32x8_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht32x8_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht32x8_256_add av1_highbd_iht32x8_256_add_c
|
||||
|
||||
void av1_highbd_iht4x16_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht4x16_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht4x16_64_add av1_highbd_iht4x16_64_add_c
|
||||
|
||||
void av1_highbd_iht4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht4x4_16_add av1_highbd_iht4x4_16_add_c
|
||||
|
||||
void av1_highbd_iht4x8_32_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht4x8_32_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht4x8_32_add av1_highbd_iht4x8_32_add_c
|
||||
|
||||
void av1_highbd_iht8x16_128_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht8x16_128_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht8x16_128_add av1_highbd_iht8x16_128_add_c
|
||||
|
||||
void av1_highbd_iht8x32_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht8x32_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht8x32_256_add av1_highbd_iht8x32_256_add_c
|
||||
|
||||
void av1_highbd_iht8x4_32_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht8x4_32_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht8x4_32_add av1_highbd_iht8x4_32_add_c
|
||||
|
||||
void av1_highbd_iht8x8_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht8x8_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht8x8_64_add av1_highbd_iht8x8_64_add_c
|
||||
|
||||
void av1_highbd_quantize_b_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan, int log_scale);
|
||||
|
|
@ -300,71 +278,81 @@ void av1_highbd_quantize_b_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int
|
|||
|
||||
void av1_highbd_quantize_fp_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan, int log_scale);
|
||||
void av1_highbd_quantize_fp_sse4_1(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan, int log_scale);
|
||||
void av1_highbd_quantize_fp_avx2(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan, int log_scale);
|
||||
RTCD_EXTERN void (*av1_highbd_quantize_fp)(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan, int log_scale);
|
||||
|
||||
void av1_highbd_temporal_filter_apply_c(uint8_t *frame1, unsigned int stride, uint8_t *frame2, unsigned int block_width, unsigned int block_height, int strength, int filter_weight, unsigned int *accumulator, uint16_t *count);
|
||||
#define av1_highbd_temporal_filter_apply av1_highbd_temporal_filter_apply_c
|
||||
|
||||
void av1_highbd_warp_affine_c(const int32_t *mat, const uint16_t *ref, int width, int height, int stride, uint16_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, int bd, int comp_avg, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
void av1_highbd_warp_affine_ssse3(const int32_t *mat, const uint16_t *ref, int width, int height, int stride, uint16_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, int bd, int comp_avg, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
RTCD_EXTERN void (*av1_highbd_warp_affine)(const int32_t *mat, const uint16_t *ref, int width, int height, int stride, uint16_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, int bd, int comp_avg, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
void av1_highbd_warp_affine_c(const int32_t *mat, const uint16_t *ref, int width, int height, int stride, uint16_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, int bd, ConvolveParams *conv_params, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
void av1_highbd_warp_affine_ssse3(const int32_t *mat, const uint16_t *ref, int width, int height, int stride, uint16_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, int bd, ConvolveParams *conv_params, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
RTCD_EXTERN void (*av1_highbd_warp_affine)(const int32_t *mat, const uint16_t *ref, int width, int height, int stride, uint16_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, int bd, ConvolveParams *conv_params, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
|
||||
void av1_iht16x16_256_add_c(const tran_low_t *input, uint8_t *output, int pitch, int tx_type);
|
||||
void av1_iht16x16_256_add_sse2(const tran_low_t *input, uint8_t *output, int pitch, int tx_type);
|
||||
void av1_iht16x16_256_add_avx2(const tran_low_t *input, uint8_t *output, int pitch, int tx_type);
|
||||
RTCD_EXTERN void (*av1_iht16x16_256_add)(const tran_low_t *input, uint8_t *output, int pitch, int tx_type);
|
||||
void av1_iht16x16_256_add_c(const tran_low_t *input, uint8_t *output, int pitch, const struct txfm_param *param);
|
||||
void av1_iht16x16_256_add_sse2(const tran_low_t *input, uint8_t *output, int pitch, const struct txfm_param *param);
|
||||
void av1_iht16x16_256_add_avx2(const tran_low_t *input, uint8_t *output, int pitch, const struct txfm_param *param);
|
||||
RTCD_EXTERN void (*av1_iht16x16_256_add)(const tran_low_t *input, uint8_t *output, int pitch, const struct txfm_param *param);
|
||||
|
||||
void av1_iht16x32_512_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht16x32_512_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht16x32_512_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
void av1_iht16x32_512_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht16x32_512_add av1_iht16x32_512_add_sse2
|
||||
|
||||
void av1_iht16x4_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht16x4_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht16x4_64_add av1_iht16x4_64_add_c
|
||||
|
||||
void av1_iht16x8_128_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht16x8_128_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht16x8_128_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
void av1_iht16x8_128_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht16x8_128_add av1_iht16x8_128_add_sse2
|
||||
|
||||
void av1_iht32x16_512_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht32x16_512_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht32x16_512_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
void av1_iht32x16_512_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht32x16_512_add av1_iht32x16_512_add_sse2
|
||||
|
||||
void av1_iht32x32_1024_add_c(const tran_low_t *input, uint8_t *output, int pitch, int tx_type);
|
||||
void av1_iht32x32_1024_add_c(const tran_low_t *input, uint8_t *output, int pitch, const struct txfm_param *param);
|
||||
#define av1_iht32x32_1024_add av1_iht32x32_1024_add_c
|
||||
|
||||
void av1_iht32x8_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht32x8_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht32x8_256_add av1_iht32x8_256_add_c
|
||||
|
||||
void av1_iht4x16_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht4x16_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht4x16_64_add av1_iht4x16_64_add_c
|
||||
|
||||
void av1_iht4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht4x4_16_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
void av1_iht4x4_16_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht4x4_16_add av1_iht4x4_16_add_sse2
|
||||
|
||||
void av1_iht4x8_32_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht4x8_32_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht4x8_32_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
void av1_iht4x8_32_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht4x8_32_add av1_iht4x8_32_add_sse2
|
||||
|
||||
void av1_iht8x16_128_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht8x16_128_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht8x16_128_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
void av1_iht8x16_128_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht8x16_128_add av1_iht8x16_128_add_sse2
|
||||
|
||||
void av1_iht8x32_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht8x32_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht8x32_256_add av1_iht8x32_256_add_c
|
||||
|
||||
void av1_iht8x4_32_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht8x4_32_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht8x4_32_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
void av1_iht8x4_32_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht8x4_32_add av1_iht8x4_32_add_sse2
|
||||
|
||||
void av1_iht8x8_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht8x8_64_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht8x8_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
void av1_iht8x8_64_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht8x8_64_add av1_iht8x8_64_add_sse2
|
||||
|
||||
void av1_inv_txfm2d_add_16x16_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
void av1_inv_txfm2d_add_16x16_sse4_1(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
RTCD_EXTERN void (*av1_inv_txfm2d_add_16x16)(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
|
||||
void av1_inv_txfm2d_add_16x32_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_inv_txfm2d_add_16x32 av1_inv_txfm2d_add_16x32_c
|
||||
|
||||
void av1_inv_txfm2d_add_16x8_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_inv_txfm2d_add_16x8 av1_inv_txfm2d_add_16x8_c
|
||||
|
||||
void av1_inv_txfm2d_add_32x16_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_inv_txfm2d_add_32x16 av1_inv_txfm2d_add_32x16_c
|
||||
|
||||
void av1_inv_txfm2d_add_32x32_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
void av1_inv_txfm2d_add_32x32_avx2(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
RTCD_EXTERN void (*av1_inv_txfm2d_add_32x32)(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
|
|
@ -373,9 +361,18 @@ void av1_inv_txfm2d_add_4x4_c(const int32_t *input, uint16_t *output, int stride
|
|||
void av1_inv_txfm2d_add_4x4_sse4_1(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
RTCD_EXTERN void (*av1_inv_txfm2d_add_4x4)(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
|
||||
void av1_inv_txfm2d_add_4x8_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_inv_txfm2d_add_4x8 av1_inv_txfm2d_add_4x8_c
|
||||
|
||||
void av1_inv_txfm2d_add_64x64_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_inv_txfm2d_add_64x64 av1_inv_txfm2d_add_64x64_c
|
||||
|
||||
void av1_inv_txfm2d_add_8x16_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_inv_txfm2d_add_8x16 av1_inv_txfm2d_add_8x16_c
|
||||
|
||||
void av1_inv_txfm2d_add_8x4_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_inv_txfm2d_add_8x4 av1_inv_txfm2d_add_8x4_c
|
||||
|
||||
void av1_inv_txfm2d_add_8x8_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
void av1_inv_txfm2d_add_8x8_sse4_1(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
RTCD_EXTERN void (*av1_inv_txfm2d_add_8x8)(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
|
|
@ -389,19 +386,21 @@ void av1_quantize_b_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_b
|
|||
|
||||
void av1_quantize_fp_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
void av1_quantize_fp_sse2(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
#define av1_quantize_fp av1_quantize_fp_sse2
|
||||
void av1_quantize_fp_avx2(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
RTCD_EXTERN void (*av1_quantize_fp)(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
|
||||
void av1_quantize_fp_32x32_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
#define av1_quantize_fp_32x32 av1_quantize_fp_32x32_c
|
||||
void av1_quantize_fp_32x32_avx2(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
RTCD_EXTERN void (*av1_quantize_fp_32x32)(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
|
||||
void av1_temporal_filter_apply_c(uint8_t *frame1, unsigned int stride, uint8_t *frame2, unsigned int block_width, unsigned int block_height, int strength, int filter_weight, unsigned int *accumulator, uint16_t *count);
|
||||
void av1_temporal_filter_apply_sse2(uint8_t *frame1, unsigned int stride, uint8_t *frame2, unsigned int block_width, unsigned int block_height, int strength, int filter_weight, unsigned int *accumulator, uint16_t *count);
|
||||
#define av1_temporal_filter_apply av1_temporal_filter_apply_sse2
|
||||
|
||||
void av1_warp_affine_c(const int32_t *mat, const uint8_t *ref, int width, int height, int stride, uint8_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, int comp_avg, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
void av1_warp_affine_sse2(const int32_t *mat, const uint8_t *ref, int width, int height, int stride, uint8_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, int comp_avg, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
void av1_warp_affine_ssse3(const int32_t *mat, const uint8_t *ref, int width, int height, int stride, uint8_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, int comp_avg, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
RTCD_EXTERN void (*av1_warp_affine)(const int32_t *mat, const uint8_t *ref, int width, int height, int stride, uint8_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, int comp_avg, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
void av1_warp_affine_c(const int32_t *mat, const uint8_t *ref, int width, int height, int stride, uint8_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, ConvolveParams *conv_params, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
void av1_warp_affine_sse2(const int32_t *mat, const uint8_t *ref, int width, int height, int stride, uint8_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, ConvolveParams *conv_params, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
void av1_warp_affine_ssse3(const int32_t *mat, const uint8_t *ref, int width, int height, int stride, uint8_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, ConvolveParams *conv_params, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
RTCD_EXTERN void (*av1_warp_affine)(const int32_t *mat, const uint8_t *ref, int width, int height, int stride, uint8_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, ConvolveParams *conv_params, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
|
||||
void av1_wedge_compute_delta_squares_c(int16_t *d, const int16_t *a, const int16_t *b, int N);
|
||||
void av1_wedge_compute_delta_squares_sse2(int16_t *d, const int16_t *a, const int16_t *b, int N);
|
||||
|
|
@ -495,6 +494,8 @@ static void setup_rtcd_internal(void)
|
|||
aom_clpf_hblock_hbd = aom_clpf_hblock_hbd_sse2;
|
||||
if (flags & HAS_SSSE3) aom_clpf_hblock_hbd = aom_clpf_hblock_hbd_ssse3;
|
||||
if (flags & HAS_SSE4_1) aom_clpf_hblock_hbd = aom_clpf_hblock_hbd_sse4_1;
|
||||
av1_block_error = av1_block_error_c;
|
||||
if (flags & HAS_AVX2) av1_block_error = av1_block_error_avx2;
|
||||
av1_convolve_horiz = av1_convolve_horiz_c;
|
||||
if (flags & HAS_SSSE3) av1_convolve_horiz = av1_convolve_horiz_ssse3;
|
||||
av1_convolve_vert = av1_convolve_vert_c;
|
||||
|
|
@ -522,10 +523,9 @@ static void setup_rtcd_internal(void)
|
|||
if (flags & HAS_SSE4_1) av1_highbd_convolve_init = av1_highbd_convolve_init_sse4_1;
|
||||
av1_highbd_convolve_vert = av1_highbd_convolve_vert_c;
|
||||
if (flags & HAS_SSE4_1) av1_highbd_convolve_vert = av1_highbd_convolve_vert_sse4_1;
|
||||
av1_highbd_fht4x4 = av1_highbd_fht4x4_c;
|
||||
if (flags & HAS_SSE4_1) av1_highbd_fht4x4 = av1_highbd_fht4x4_sse4_1;
|
||||
av1_highbd_quantize_fp = av1_highbd_quantize_fp_c;
|
||||
if (flags & HAS_SSE4_1) av1_highbd_quantize_fp = av1_highbd_quantize_fp_sse4_1;
|
||||
if (flags & HAS_AVX2) av1_highbd_quantize_fp = av1_highbd_quantize_fp_avx2;
|
||||
av1_highbd_warp_affine = av1_highbd_warp_affine_c;
|
||||
if (flags & HAS_SSSE3) av1_highbd_warp_affine = av1_highbd_warp_affine_ssse3;
|
||||
av1_iht16x16_256_add = av1_iht16x16_256_add_sse2;
|
||||
|
|
@ -540,6 +540,10 @@ static void setup_rtcd_internal(void)
|
|||
if (flags & HAS_SSE4_1) av1_inv_txfm2d_add_8x8 = av1_inv_txfm2d_add_8x8_sse4_1;
|
||||
av1_lowbd_convolve_init = av1_lowbd_convolve_init_c;
|
||||
if (flags & HAS_SSSE3) av1_lowbd_convolve_init = av1_lowbd_convolve_init_ssse3;
|
||||
av1_quantize_fp = av1_quantize_fp_sse2;
|
||||
if (flags & HAS_AVX2) av1_quantize_fp = av1_quantize_fp_avx2;
|
||||
av1_quantize_fp_32x32 = av1_quantize_fp_32x32_c;
|
||||
if (flags & HAS_AVX2) av1_quantize_fp_32x32 = av1_quantize_fp_32x32_avx2;
|
||||
av1_warp_affine = av1_warp_affine_sse2;
|
||||
if (flags & HAS_SSSE3) av1_warp_affine = av1_warp_affine_ssse3;
|
||||
compute_cross_correlation = compute_cross_correlation_c;
|
||||
|
|
|
|||
|
|
@ -1,146 +1,163 @@
|
|||
%define ARCH_ARM 0
|
||||
%define ARCH_MIPS 0
|
||||
%define ARCH_X86 1
|
||||
%define ARCH_X86_64 0
|
||||
%define HAVE_NEON 0
|
||||
%define HAVE_NEON_ASM 0
|
||||
%define HAVE_MIPS32 0
|
||||
%define HAVE_DSPR2 0
|
||||
%define HAVE_MSA 0
|
||||
%define HAVE_MIPS64 0
|
||||
%define HAVE_MMX 1
|
||||
%define HAVE_SSE 1
|
||||
%define HAVE_SSE2 1
|
||||
%define HAVE_SSE3 1
|
||||
%define HAVE_SSSE3 1
|
||||
%define HAVE_SSE4_1 1
|
||||
%define HAVE_AVX 1
|
||||
%define HAVE_AVX2 1
|
||||
%define HAVE_AOM_PORTS 1
|
||||
%define HAVE_FEXCEPT 1
|
||||
%define HAVE_PTHREAD_H 0
|
||||
%define HAVE_WXWIDGETS 0
|
||||
%define CONFIG_DEPENDENCY_TRACKING 1
|
||||
%define CONFIG_EXTERNAL_BUILD 1
|
||||
%define CONFIG_INSTALL_DOCS 1
|
||||
%define CONFIG_INSTALL_BINS 1
|
||||
%define CONFIG_INSTALL_LIBS 1
|
||||
%define CONFIG_INSTALL_SRCS 0
|
||||
%define CONFIG_DEBUG 0
|
||||
%define CONFIG_GPROF 0
|
||||
%define CONFIG_GCOV 0
|
||||
%define CONFIG_RVCT 0
|
||||
%define CONFIG_GCC 1
|
||||
%define CONFIG_MSVS 0
|
||||
%define CONFIG_PIC 1
|
||||
%define CONFIG_BIG_ENDIAN 0
|
||||
%define CONFIG_CODEC_SRCS 0
|
||||
%define CONFIG_DEBUG_LIBS 0
|
||||
%define CONFIG_RUNTIME_CPU_DETECT 1
|
||||
%define CONFIG_POSTPROC 1
|
||||
%define CONFIG_MULTITHREAD 1
|
||||
%define CONFIG_INTERNAL_STATS 0
|
||||
%define CONFIG_AV1_ENCODER 1
|
||||
%define CONFIG_AV1_DECODER 1
|
||||
%define CONFIG_AV1 1
|
||||
%define CONFIG_STATIC_MSVCRT 0
|
||||
%define CONFIG_SPATIAL_RESAMPLING 1
|
||||
%define CONFIG_REALTIME_ONLY 0
|
||||
%define CONFIG_ONTHEFLY_BITPACKING 0
|
||||
%define CONFIG_ERROR_CONCEALMENT 0
|
||||
%define CONFIG_SHARED 0
|
||||
%define CONFIG_STATIC 1
|
||||
%define CONFIG_SMALL 0
|
||||
%define CONFIG_POSTPROC_VISUALIZER 0
|
||||
%define CONFIG_OS_SUPPORT 1
|
||||
%define CONFIG_UNIT_TESTS 0
|
||||
%define CONFIG_WEBM_IO 1
|
||||
%define CONFIG_LIBYUV 1
|
||||
%define CONFIG_ACCOUNTING 0
|
||||
%define CONFIG_INSPECTION 0
|
||||
%define CONFIG_DECODE_PERF_TESTS 0
|
||||
%define CONFIG_ENCODE_PERF_TESTS 0
|
||||
%define CONFIG_COEFFICIENT_RANGE_CHECKING 0
|
||||
%define CONFIG_LOWBITDEPTH 1
|
||||
%define CONFIG_HIGHBITDEPTH 1
|
||||
%define CONFIG_EXPERIMENTAL 0
|
||||
%define CONFIG_SIZE_LIMIT 1
|
||||
%define CONFIG_FP_MB_STATS 0
|
||||
%define CONFIG_CDEF 1
|
||||
%define CONFIG_VAR_TX 1
|
||||
%define CONFIG_RECT_TX 1
|
||||
%define CONFIG_RECT_TX_EXT 0
|
||||
%define CONFIG_TPL_MV 0
|
||||
%define CONFIG_DUAL_FILTER 1
|
||||
%define CONFIG_CONVOLVE_ROUND 0
|
||||
%define CONFIG_COMPOUND_ROUND 0
|
||||
%define CONFIG_EXT_TX 1
|
||||
%define CONFIG_DPCM_INTRA 0
|
||||
%define CONFIG_TX64X64 0
|
||||
%define CONFIG_EXT_INTRA 1
|
||||
%define CONFIG_INTRA_INTERP 0
|
||||
%define CONFIG_FILTER_INTRA 0
|
||||
%define CONFIG_INTRA_EDGE 0
|
||||
%define CONFIG_INTRABC 0
|
||||
%define CONFIG_EXT_INTER 1
|
||||
%define CONFIG_INTERINTRA 1
|
||||
%define CONFIG_WEDGE 1
|
||||
%define CONFIG_COMPOUND_SEGMENT 1
|
||||
%define CONFIG_EXT_REFS 1
|
||||
%define CONFIG_GLOBAL_MOTION 1
|
||||
%define CONFIG_NEW_QUANT 0
|
||||
%define CONFIG_SUPERTX 0
|
||||
%define CONFIG_ANS 0
|
||||
%define CONFIG_LOOP_RESTORATION 0
|
||||
%define CONFIG_EXT_PARTITION 0
|
||||
%define CONFIG_EXT_PARTITION_TYPES 0
|
||||
%define CONFIG_UNPOISON_PARTITION_CTX 0
|
||||
%define CONFIG_EXT_TILE 0
|
||||
%define CONFIG_MOTION_VAR 1
|
||||
%define CONFIG_NCOBMC 0
|
||||
%define CONFIG_WARPED_MOTION 1
|
||||
%define CONFIG_Q_ADAPT_PROBS 0
|
||||
%define CONFIG_BITSTREAM_DEBUG 0
|
||||
%define CONFIG_ALT_INTRA 1
|
||||
%define CONFIG_PALETTE 1
|
||||
%define CONFIG_PALETTE_DELTA_ENCODING 0
|
||||
%define CONFIG_RAWBITS 0
|
||||
%define CONFIG_EC_SMALLMUL 1
|
||||
%define CONFIG_PVQ 0
|
||||
%define CONFIG_CFL 0
|
||||
%define CONFIG_XIPHRC 0
|
||||
%define CONFIG_CB4X4 1
|
||||
%define CONFIG_CHROMA_2X2 0
|
||||
%define CONFIG_CHROMA_SUB8X8 1
|
||||
%define CONFIG_FRAME_SIZE 0
|
||||
%define CONFIG_DELTA_Q 1
|
||||
%define CONFIG_EXT_DELTA_Q 1
|
||||
%define CONFIG_ADAPT_SCAN 0
|
||||
%define CONFIG_FILTER_7BIT 1
|
||||
%define CONFIG_PARALLEL_DEBLOCKING 0
|
||||
%define CONFIG_PARALLEL_DEBLOCKING_15TAP 0
|
||||
%define CONFIG_LOOPFILTERING_ACROSS_TILES 1
|
||||
%define CONFIG_TILE_GROUPS 1
|
||||
%define CONFIG_EC_ADAPT 1
|
||||
%define CONFIG_TEMPMV_SIGNALING 1
|
||||
%define CONFIG_RD_DEBUG 0
|
||||
%define CONFIG_REFERENCE_BUFFER 1
|
||||
%define CONFIG_COEF_INTERLEAVE 0
|
||||
%define CONFIG_ENTROPY_STATS 0
|
||||
%define CONFIG_MASKED_TX 0
|
||||
%define CONFIG_DEPENDENT_HORZTILES 0
|
||||
%define CONFIG_DAALA_DIST 0
|
||||
%define CONFIG_TRIPRED 0
|
||||
%define CONFIG_PALETTE_THROUGHPUT 1
|
||||
%define CONFIG_REF_ADAPT 0
|
||||
%define CONFIG_LV_MAP 0
|
||||
%define CONFIG_TXK_SEL 0
|
||||
%define CONFIG_MV_COMPRESS 1
|
||||
%define CONFIG_FRAME_SUPERRES 0
|
||||
%define CONFIG_NEW_MULTISYMBOL 0
|
||||
%define CONFIG_COMPOUND_SINGLEREF 0
|
||||
%define CONFIG_AOM_QM 0
|
||||
%define CONFIG_ONE_SIDED_COMPOUND 1
|
||||
%define CONFIG_SMOOTH_HV 0
|
||||
%define CONFIG_VAR_REFS 0
|
||||
%define CONFIG_ANALYZER 0
|
||||
ARCH_ARM equ 0
|
||||
ARCH_MIPS equ 0
|
||||
ARCH_X86 equ 1
|
||||
ARCH_X86_64 equ 0
|
||||
HAVE_NEON equ 0
|
||||
HAVE_NEON_ASM equ 0
|
||||
HAVE_MIPS32 equ 0
|
||||
HAVE_DSPR2 equ 0
|
||||
HAVE_MSA equ 0
|
||||
HAVE_MIPS64 equ 0
|
||||
HAVE_MMX equ 1
|
||||
HAVE_SSE equ 1
|
||||
HAVE_SSE2 equ 1
|
||||
HAVE_SSE3 equ 1
|
||||
HAVE_SSSE3 equ 1
|
||||
HAVE_SSE4_1 equ 1
|
||||
HAVE_AVX equ 1
|
||||
HAVE_AVX2 equ 1
|
||||
HAVE_AOM_PORTS equ 1
|
||||
HAVE_FEXCEPT equ 1
|
||||
HAVE_PTHREAD_H equ 0
|
||||
HAVE_WXWIDGETS equ 0
|
||||
CONFIG_DEPENDENCY_TRACKING equ 1
|
||||
CONFIG_EXTERNAL_BUILD equ 1
|
||||
CONFIG_INSTALL_DOCS equ 1
|
||||
CONFIG_INSTALL_BINS equ 1
|
||||
CONFIG_INSTALL_LIBS equ 1
|
||||
CONFIG_INSTALL_SRCS equ 0
|
||||
CONFIG_DEBUG equ 0
|
||||
CONFIG_GPROF equ 0
|
||||
CONFIG_GCOV equ 0
|
||||
CONFIG_RVCT equ 0
|
||||
CONFIG_GCC equ 0
|
||||
CONFIG_MSVS equ 1
|
||||
CONFIG_PIC equ 1
|
||||
CONFIG_BIG_ENDIAN equ 0
|
||||
CONFIG_CODEC_SRCS equ 0
|
||||
CONFIG_DEBUG_LIBS equ 0
|
||||
CONFIG_RUNTIME_CPU_DETECT equ 1
|
||||
CONFIG_POSTPROC equ 1
|
||||
CONFIG_MULTITHREAD equ 1
|
||||
CONFIG_INTERNAL_STATS equ 0
|
||||
CONFIG_AV1_ENCODER equ 1
|
||||
CONFIG_AV1_DECODER equ 1
|
||||
CONFIG_AV1 equ 1
|
||||
CONFIG_STATIC_MSVCRT equ 0
|
||||
CONFIG_SPATIAL_RESAMPLING equ 1
|
||||
CONFIG_REALTIME_ONLY equ 0
|
||||
CONFIG_ONTHEFLY_BITPACKING equ 0
|
||||
CONFIG_ERROR_CONCEALMENT equ 0
|
||||
CONFIG_SHARED equ 0
|
||||
CONFIG_STATIC equ 1
|
||||
CONFIG_SMALL equ 0
|
||||
CONFIG_POSTPROC_VISUALIZER equ 0
|
||||
CONFIG_OS_SUPPORT equ 1
|
||||
CONFIG_UNIT_TESTS equ 0
|
||||
CONFIG_WEBM_IO equ 1
|
||||
CONFIG_LIBYUV equ 1
|
||||
CONFIG_ACCOUNTING equ 0
|
||||
CONFIG_INSPECTION equ 0
|
||||
CONFIG_DECODE_PERF_TESTS equ 0
|
||||
CONFIG_ENCODE_PERF_TESTS equ 0
|
||||
CONFIG_COEFFICIENT_RANGE_CHECKING equ 0
|
||||
CONFIG_LOWBITDEPTH equ 1
|
||||
CONFIG_HIGHBITDEPTH equ 1
|
||||
CONFIG_EXPERIMENTAL equ 0
|
||||
CONFIG_SIZE_LIMIT equ 1
|
||||
CONFIG_COLORSPACE_HEADERS equ 0
|
||||
CONFIG_FP_MB_STATS equ 0
|
||||
CONFIG_CDEF equ 1
|
||||
CONFIG_VAR_TX equ 1
|
||||
CONFIG_RECT_TX equ 1
|
||||
CONFIG_RECT_TX_EXT equ 0
|
||||
CONFIG_TPL_MV equ 0
|
||||
CONFIG_DUAL_FILTER equ 1
|
||||
CONFIG_CONVOLVE_ROUND equ 0
|
||||
CONFIG_COMPOUND_ROUND equ 0
|
||||
CONFIG_EXT_TX equ 1
|
||||
CONFIG_DPCM_INTRA equ 0
|
||||
CONFIG_TX64X64 equ 0
|
||||
CONFIG_EXT_INTRA equ 1
|
||||
CONFIG_INTRA_INTERP equ 0
|
||||
CONFIG_FILTER_INTRA equ 0
|
||||
CONFIG_INTRA_EDGE equ 0
|
||||
CONFIG_INTRABC equ 0
|
||||
CONFIG_EXT_INTER equ 1
|
||||
CONFIG_INTERINTRA equ 1
|
||||
CONFIG_WEDGE equ 1
|
||||
CONFIG_COMPOUND_SEGMENT equ 1
|
||||
CONFIG_EXT_REFS equ 1
|
||||
CONFIG_ALTREF2 equ 0
|
||||
CONFIG_SPEED_REFS equ 0
|
||||
CONFIG_GF_GROUPS equ 0
|
||||
CONFIG_FLEX_REFS equ 0
|
||||
CONFIG_GLOBAL_MOTION equ 1
|
||||
CONFIG_NEW_QUANT equ 0
|
||||
CONFIG_SUPERTX equ 0
|
||||
CONFIG_ANS equ 0
|
||||
CONFIG_LOOP_RESTORATION equ 0
|
||||
CONFIG_EXT_PARTITION equ 0
|
||||
CONFIG_EXT_PARTITION_TYPES equ 0
|
||||
CONFIG_UNPOISON_PARTITION_CTX equ 0
|
||||
CONFIG_EXT_TILE equ 0
|
||||
CONFIG_MOTION_VAR equ 1
|
||||
CONFIG_NCOBMC equ 0
|
||||
CONFIG_WARPED_MOTION equ 1
|
||||
CONFIG_Q_ADAPT_PROBS equ 0
|
||||
CONFIG_BITSTREAM_DEBUG equ 0
|
||||
CONFIG_INTER_STATS_ONLY equ 0
|
||||
CONFIG_ALT_INTRA equ 1
|
||||
CONFIG_PALETTE equ 1
|
||||
CONFIG_PALETTE_DELTA_ENCODING equ 0
|
||||
CONFIG_RAWBITS equ 0
|
||||
CONFIG_EC_SMALLMUL equ 1
|
||||
CONFIG_PVQ equ 0
|
||||
CONFIG_CFL equ 0
|
||||
CONFIG_XIPHRC equ 0
|
||||
CONFIG_DCT_ONLY equ 0
|
||||
CONFIG_DAALA_DCT4 equ 0
|
||||
CONFIG_DAALA_DCT8 equ 0
|
||||
CONFIG_CB4X4 equ 1
|
||||
CONFIG_CHROMA_2X2 equ 0
|
||||
CONFIG_CHROMA_SUB8X8 equ 1
|
||||
CONFIG_FRAME_SIZE equ 0
|
||||
CONFIG_DELTA_Q equ 1
|
||||
CONFIG_EXT_DELTA_Q equ 1
|
||||
CONFIG_ADAPT_SCAN equ 0
|
||||
CONFIG_FILTER_7BIT equ 1
|
||||
CONFIG_PARALLEL_DEBLOCKING equ 1
|
||||
CONFIG_LOOPFILTERING_ACROSS_TILES equ 1
|
||||
CONFIG_TEMPMV_SIGNALING equ 1
|
||||
CONFIG_RD_DEBUG equ 0
|
||||
CONFIG_REFERENCE_BUFFER equ 1
|
||||
CONFIG_COEF_INTERLEAVE equ 0
|
||||
CONFIG_ENTROPY_STATS equ 0
|
||||
CONFIG_MASKED_TX equ 0
|
||||
CONFIG_DEPENDENT_HORZTILES equ 0
|
||||
CONFIG_DIST_8X8 equ 0
|
||||
CONFIG_DAALA_DIST equ 0
|
||||
CONFIG_TRIPRED equ 0
|
||||
CONFIG_PALETTE_THROUGHPUT equ 1
|
||||
CONFIG_REF_ADAPT equ 0
|
||||
CONFIG_LV_MAP equ 0
|
||||
CONFIG_TXK_SEL equ 0
|
||||
CONFIG_MV_COMPRESS equ 1
|
||||
CONFIG_FRAME_SUPERRES equ 0
|
||||
CONFIG_NEW_MULTISYMBOL equ 0
|
||||
CONFIG_COMPOUND_SINGLEREF equ 0
|
||||
CONFIG_AOM_QM equ 0
|
||||
CONFIG_ONE_SIDED_COMPOUND equ 1
|
||||
CONFIG_EXT_COMP_REFS equ 0
|
||||
CONFIG_SMOOTH_HV equ 1
|
||||
CONFIG_VAR_REFS equ 0
|
||||
CONFIG_RECT_INTRA_PRED equ 1
|
||||
CONFIG_LGT equ 0
|
||||
CONFIG_SBL_SYMBOL equ 0
|
||||
CONFIG_NCOBMC_ADAPT_WEIGHT equ 0
|
||||
CONFIG_BGSPRITE equ 0
|
||||
CONFIG_VAR_TX_NO_TX_MODE equ 0
|
||||
CONFIG_MRC_TX equ 0
|
||||
CONFIG_LPF_DIRECT equ 0
|
||||
CONFIG_UV_LVL equ 0
|
||||
CONFIG_ANALYZER equ 0
|
||||
|
|
|
|||
|
|
@ -9,8 +9,8 @@
|
|||
/* This file automatically generated by configure. Do not edit! */
|
||||
#ifndef AOM_CONFIG_H
|
||||
#define AOM_CONFIG_H
|
||||
#define RESTRICT
|
||||
#define INLINE inline
|
||||
#define RESTRICT
|
||||
#define INLINE __forceinline
|
||||
#define ARCH_ARM 0
|
||||
#define ARCH_MIPS 0
|
||||
#define ARCH_X86 1
|
||||
|
|
@ -43,8 +43,8 @@
|
|||
#define CONFIG_GPROF 0
|
||||
#define CONFIG_GCOV 0
|
||||
#define CONFIG_RVCT 0
|
||||
#define CONFIG_GCC 1
|
||||
#define CONFIG_MSVS 0
|
||||
#define CONFIG_GCC 0
|
||||
#define CONFIG_MSVS 1
|
||||
#define CONFIG_PIC 1
|
||||
#define CONFIG_BIG_ENDIAN 0
|
||||
#define CONFIG_CODEC_SRCS 0
|
||||
|
|
@ -78,6 +78,7 @@
|
|||
#define CONFIG_HIGHBITDEPTH 1
|
||||
#define CONFIG_EXPERIMENTAL 0
|
||||
#define CONFIG_SIZE_LIMIT 1
|
||||
#define CONFIG_COLORSPACE_HEADERS 0
|
||||
#define CONFIG_FP_MB_STATS 0
|
||||
#define CONFIG_CDEF 1
|
||||
#define CONFIG_VAR_TX 1
|
||||
|
|
@ -100,6 +101,10 @@
|
|||
#define CONFIG_WEDGE 1
|
||||
#define CONFIG_COMPOUND_SEGMENT 1
|
||||
#define CONFIG_EXT_REFS 1
|
||||
#define CONFIG_ALTREF2 0
|
||||
#define CONFIG_SPEED_REFS 0
|
||||
#define CONFIG_GF_GROUPS 0
|
||||
#define CONFIG_FLEX_REFS 0
|
||||
#define CONFIG_GLOBAL_MOTION 1
|
||||
#define CONFIG_NEW_QUANT 0
|
||||
#define CONFIG_SUPERTX 0
|
||||
|
|
@ -114,6 +119,7 @@
|
|||
#define CONFIG_WARPED_MOTION 1
|
||||
#define CONFIG_Q_ADAPT_PROBS 0
|
||||
#define CONFIG_BITSTREAM_DEBUG 0
|
||||
#define CONFIG_INTER_STATS_ONLY 0
|
||||
#define CONFIG_ALT_INTRA 1
|
||||
#define CONFIG_PALETTE 1
|
||||
#define CONFIG_PALETTE_DELTA_ENCODING 0
|
||||
|
|
@ -122,6 +128,9 @@
|
|||
#define CONFIG_PVQ 0
|
||||
#define CONFIG_CFL 0
|
||||
#define CONFIG_XIPHRC 0
|
||||
#define CONFIG_DCT_ONLY 0
|
||||
#define CONFIG_DAALA_DCT4 0
|
||||
#define CONFIG_DAALA_DCT8 0
|
||||
#define CONFIG_CB4X4 1
|
||||
#define CONFIG_CHROMA_2X2 0
|
||||
#define CONFIG_CHROMA_SUB8X8 1
|
||||
|
|
@ -130,11 +139,8 @@
|
|||
#define CONFIG_EXT_DELTA_Q 1
|
||||
#define CONFIG_ADAPT_SCAN 0
|
||||
#define CONFIG_FILTER_7BIT 1
|
||||
#define CONFIG_PARALLEL_DEBLOCKING 0
|
||||
#define CONFIG_PARALLEL_DEBLOCKING_15TAP 0
|
||||
#define CONFIG_PARALLEL_DEBLOCKING 1
|
||||
#define CONFIG_LOOPFILTERING_ACROSS_TILES 1
|
||||
#define CONFIG_TILE_GROUPS 1
|
||||
#define CONFIG_EC_ADAPT 1
|
||||
#define CONFIG_TEMPMV_SIGNALING 1
|
||||
#define CONFIG_RD_DEBUG 0
|
||||
#define CONFIG_REFERENCE_BUFFER 1
|
||||
|
|
@ -142,6 +148,7 @@
|
|||
#define CONFIG_ENTROPY_STATS 0
|
||||
#define CONFIG_MASKED_TX 0
|
||||
#define CONFIG_DEPENDENT_HORZTILES 0
|
||||
#define CONFIG_DIST_8X8 0
|
||||
#define CONFIG_DAALA_DIST 0
|
||||
#define CONFIG_TRIPRED 0
|
||||
#define CONFIG_PALETTE_THROUGHPUT 1
|
||||
|
|
@ -154,8 +161,18 @@
|
|||
#define CONFIG_COMPOUND_SINGLEREF 0
|
||||
#define CONFIG_AOM_QM 0
|
||||
#define CONFIG_ONE_SIDED_COMPOUND 1
|
||||
#define CONFIG_SMOOTH_HV 0
|
||||
#define CONFIG_EXT_COMP_REFS 0
|
||||
#define CONFIG_SMOOTH_HV 1
|
||||
#define CONFIG_VAR_REFS 0
|
||||
#define CONFIG_RECT_INTRA_PRED 1
|
||||
#define CONFIG_LGT 0
|
||||
#define CONFIG_SBL_SYMBOL 0
|
||||
#define CONFIG_NCOBMC_ADAPT_WEIGHT 0
|
||||
#define CONFIG_BGSPRITE 0
|
||||
#define CONFIG_VAR_TX_NO_TX_MODE 0
|
||||
#define CONFIG_MRC_TX 0
|
||||
#define CONFIG_LPF_DIRECT 0
|
||||
#define CONFIG_UV_LVL 0
|
||||
#define CONFIG_ANALYZER 0
|
||||
#define DECODE_WIDTH_LIMIT 8192
|
||||
#define DECODE_HEIGHT_LIMIT 4608
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -12,6 +12,7 @@
|
|||
*/
|
||||
|
||||
#include "aom/aom_integer.h"
|
||||
#include "aom_dsp/txfm_common.h"
|
||||
#include "av1/common/common.h"
|
||||
#include "av1/common/enums.h"
|
||||
#include "av1/common/quant_common.h"
|
||||
|
|
@ -24,6 +25,7 @@ struct macroblockd;
|
|||
|
||||
/* Encoder forward decls */
|
||||
struct macroblock;
|
||||
struct txfm_param;
|
||||
struct aom_variance_vtable;
|
||||
struct search_site_config;
|
||||
struct mv;
|
||||
|
|
@ -60,7 +62,8 @@ void aom_clpf_hblock_hbd_sse4_1(uint16_t *dst, const uint16_t *src, int dstride,
|
|||
RTCD_EXTERN void (*aom_clpf_hblock_hbd)(uint16_t *dst, const uint16_t *src, int dstride, int sstride, int sizex, int sizey, unsigned int strength, unsigned int bd);
|
||||
|
||||
int64_t av1_block_error_c(const tran_low_t *coeff, const tran_low_t *dqcoeff, intptr_t block_size, int64_t *ssz);
|
||||
#define av1_block_error av1_block_error_c
|
||||
int64_t av1_block_error_avx2(const tran_low_t *coeff, const tran_low_t *dqcoeff, intptr_t block_size, int64_t *ssz);
|
||||
RTCD_EXTERN int64_t (*av1_block_error)(const tran_low_t *coeff, const tran_low_t *dqcoeff, intptr_t block_size, int64_t *ssz);
|
||||
|
||||
void av1_convolve_horiz_c(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int w, int h, const InterpFilterParams fp, const int subpel_x_q4, int x_step_q4, ConvolveParams *conv_params);
|
||||
void av1_convolve_horiz_ssse3(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int w, int h, const InterpFilterParams fp, const int subpel_x_q4, int x_step_q4, ConvolveParams *conv_params);
|
||||
|
|
@ -76,59 +79,59 @@ int av1_diamond_search_sad_c(struct macroblock *x, const struct search_site_conf
|
|||
void av1_fdct8x8_quant_c(const int16_t *input, int stride, tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
#define av1_fdct8x8_quant av1_fdct8x8_quant_c
|
||||
|
||||
void av1_fht16x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht16x16_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht16x16_avx2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
RTCD_EXTERN void (*av1_fht16x16)(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht16x16_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht16x16_sse2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht16x16_avx2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
RTCD_EXTERN void (*av1_fht16x16)(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
|
||||
void av1_fht16x32_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht16x32_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
RTCD_EXTERN void (*av1_fht16x32)(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht16x32_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht16x32_sse2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
RTCD_EXTERN void (*av1_fht16x32)(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
|
||||
void av1_fht16x4_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht16x4_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht16x4 av1_fht16x4_c
|
||||
|
||||
void av1_fht16x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht16x8_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
RTCD_EXTERN void (*av1_fht16x8)(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht16x8_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht16x8_sse2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
RTCD_EXTERN void (*av1_fht16x8)(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
|
||||
void av1_fht32x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht32x16_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
RTCD_EXTERN void (*av1_fht32x16)(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht32x16_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht32x16_sse2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
RTCD_EXTERN void (*av1_fht32x16)(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
|
||||
void av1_fht32x32_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht32x32_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht32x32_avx2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
RTCD_EXTERN void (*av1_fht32x32)(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht32x32_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht32x32_sse2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht32x32_avx2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
RTCD_EXTERN void (*av1_fht32x32)(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
|
||||
void av1_fht32x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht32x8_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht32x8 av1_fht32x8_c
|
||||
|
||||
void av1_fht4x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht4x16_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht4x16 av1_fht4x16_c
|
||||
|
||||
void av1_fht4x4_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht4x4_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
RTCD_EXTERN void (*av1_fht4x4)(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht4x4_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht4x4_sse2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
RTCD_EXTERN void (*av1_fht4x4)(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
|
||||
void av1_fht4x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht4x8_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
RTCD_EXTERN void (*av1_fht4x8)(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht4x8_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht4x8_sse2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
RTCD_EXTERN void (*av1_fht4x8)(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
|
||||
void av1_fht8x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht8x16_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
RTCD_EXTERN void (*av1_fht8x16)(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht8x16_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht8x16_sse2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
RTCD_EXTERN void (*av1_fht8x16)(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
|
||||
void av1_fht8x32_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht8x32_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht8x32 av1_fht8x32_c
|
||||
|
||||
void av1_fht8x4_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht8x4_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
RTCD_EXTERN void (*av1_fht8x4)(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht8x4_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht8x4_sse2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
RTCD_EXTERN void (*av1_fht8x4)(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
|
||||
void av1_fht8x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht8x8_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
RTCD_EXTERN void (*av1_fht8x8)(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht8x8_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht8x8_sse2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
RTCD_EXTERN void (*av1_fht8x8)(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
|
||||
int av1_full_range_search_c(const struct macroblock *x, const struct search_site_config *cfg, struct mv *ref_mv, struct mv *best_mv, int search_param, int sad_per_bit, int *num00, const struct aom_variance_vtable *fn_ptr, const struct mv *center_mv);
|
||||
#define av1_full_range_search av1_full_range_search_c
|
||||
|
|
@ -145,6 +148,15 @@ void av1_fwd_txfm2d_16x16_c(const int16_t *input, int32_t *output, int stride, i
|
|||
void av1_fwd_txfm2d_16x16_sse4_1(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
RTCD_EXTERN void (*av1_fwd_txfm2d_16x16)(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
|
||||
void av1_fwd_txfm2d_16x32_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_fwd_txfm2d_16x32 av1_fwd_txfm2d_16x32_c
|
||||
|
||||
void av1_fwd_txfm2d_16x8_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_fwd_txfm2d_16x8 av1_fwd_txfm2d_16x8_c
|
||||
|
||||
void av1_fwd_txfm2d_32x16_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_fwd_txfm2d_32x16 av1_fwd_txfm2d_32x16_c
|
||||
|
||||
void av1_fwd_txfm2d_32x32_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
void av1_fwd_txfm2d_32x32_sse4_1(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
RTCD_EXTERN void (*av1_fwd_txfm2d_32x32)(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
|
|
@ -153,10 +165,19 @@ void av1_fwd_txfm2d_4x4_c(const int16_t *input, int32_t *output, int stride, int
|
|||
void av1_fwd_txfm2d_4x4_sse4_1(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
RTCD_EXTERN void (*av1_fwd_txfm2d_4x4)(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
|
||||
void av1_fwd_txfm2d_4x8_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_fwd_txfm2d_4x8 av1_fwd_txfm2d_4x8_c
|
||||
|
||||
void av1_fwd_txfm2d_64x64_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
void av1_fwd_txfm2d_64x64_sse4_1(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
RTCD_EXTERN void (*av1_fwd_txfm2d_64x64)(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
|
||||
void av1_fwd_txfm2d_8x16_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_fwd_txfm2d_8x16 av1_fwd_txfm2d_8x16_c
|
||||
|
||||
void av1_fwd_txfm2d_8x4_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_fwd_txfm2d_8x4 av1_fwd_txfm2d_8x4_c
|
||||
|
||||
void av1_fwd_txfm2d_8x8_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
void av1_fwd_txfm2d_8x8_sse4_1(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
RTCD_EXTERN void (*av1_fwd_txfm2d_8x8)(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
|
|
@ -204,89 +225,46 @@ void av1_highbd_convolve_vert_c(const uint16_t *src, int src_stride, uint16_t *d
|
|||
void av1_highbd_convolve_vert_sse4_1(const uint16_t *src, int src_stride, uint16_t *dst, int dst_stride, int w, int h, const InterpFilterParams fp, const int subpel_x_q4, int x_step_q4, int avg, int bd);
|
||||
RTCD_EXTERN void (*av1_highbd_convolve_vert)(const uint16_t *src, int src_stride, uint16_t *dst, int dst_stride, int w, int h, const InterpFilterParams fp, const int subpel_x_q4, int x_step_q4, int avg, int bd);
|
||||
|
||||
void av1_highbd_fht16x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht16x16 av1_highbd_fht16x16_c
|
||||
|
||||
void av1_highbd_fht16x32_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht16x32 av1_highbd_fht16x32_c
|
||||
|
||||
void av1_highbd_fht16x4_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht16x4 av1_highbd_fht16x4_c
|
||||
|
||||
void av1_highbd_fht16x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht16x8 av1_highbd_fht16x8_c
|
||||
|
||||
void av1_highbd_fht32x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht32x16 av1_highbd_fht32x16_c
|
||||
|
||||
void av1_highbd_fht32x32_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht32x32 av1_highbd_fht32x32_c
|
||||
|
||||
void av1_highbd_fht32x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht32x8 av1_highbd_fht32x8_c
|
||||
|
||||
void av1_highbd_fht4x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht4x16 av1_highbd_fht4x16_c
|
||||
|
||||
void av1_highbd_fht4x4_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_highbd_fht4x4_sse4_1(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
RTCD_EXTERN void (*av1_highbd_fht4x4)(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
|
||||
void av1_highbd_fht4x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht4x8 av1_highbd_fht4x8_c
|
||||
|
||||
void av1_highbd_fht8x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht8x16 av1_highbd_fht8x16_c
|
||||
|
||||
void av1_highbd_fht8x32_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht8x32 av1_highbd_fht8x32_c
|
||||
|
||||
void av1_highbd_fht8x4_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht8x4 av1_highbd_fht8x4_c
|
||||
|
||||
void av1_highbd_fht8x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht8x8 av1_highbd_fht8x8_c
|
||||
|
||||
void av1_highbd_fwht4x4_c(const int16_t *input, tran_low_t *output, int stride);
|
||||
#define av1_highbd_fwht4x4 av1_highbd_fwht4x4_c
|
||||
|
||||
void av1_highbd_iht16x16_256_add_c(const tran_low_t *input, uint8_t *output, int pitch, int tx_type, int bd);
|
||||
void av1_highbd_iht16x16_256_add_c(const tran_low_t *input, uint8_t *output, int pitch, const struct txfm_param *param);
|
||||
#define av1_highbd_iht16x16_256_add av1_highbd_iht16x16_256_add_c
|
||||
|
||||
void av1_highbd_iht16x32_512_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht16x32_512_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht16x32_512_add av1_highbd_iht16x32_512_add_c
|
||||
|
||||
void av1_highbd_iht16x4_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht16x4_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht16x4_64_add av1_highbd_iht16x4_64_add_c
|
||||
|
||||
void av1_highbd_iht16x8_128_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht16x8_128_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht16x8_128_add av1_highbd_iht16x8_128_add_c
|
||||
|
||||
void av1_highbd_iht32x16_512_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht32x16_512_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht32x16_512_add av1_highbd_iht32x16_512_add_c
|
||||
|
||||
void av1_highbd_iht32x8_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht32x8_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht32x8_256_add av1_highbd_iht32x8_256_add_c
|
||||
|
||||
void av1_highbd_iht4x16_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht4x16_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht4x16_64_add av1_highbd_iht4x16_64_add_c
|
||||
|
||||
void av1_highbd_iht4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht4x4_16_add av1_highbd_iht4x4_16_add_c
|
||||
|
||||
void av1_highbd_iht4x8_32_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht4x8_32_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht4x8_32_add av1_highbd_iht4x8_32_add_c
|
||||
|
||||
void av1_highbd_iht8x16_128_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht8x16_128_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht8x16_128_add av1_highbd_iht8x16_128_add_c
|
||||
|
||||
void av1_highbd_iht8x32_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht8x32_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht8x32_256_add av1_highbd_iht8x32_256_add_c
|
||||
|
||||
void av1_highbd_iht8x4_32_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht8x4_32_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht8x4_32_add av1_highbd_iht8x4_32_add_c
|
||||
|
||||
void av1_highbd_iht8x8_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht8x8_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht8x8_64_add av1_highbd_iht8x8_64_add_c
|
||||
|
||||
void av1_highbd_quantize_b_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan, int log_scale);
|
||||
|
|
@ -294,71 +272,81 @@ void av1_highbd_quantize_b_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int
|
|||
|
||||
void av1_highbd_quantize_fp_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan, int log_scale);
|
||||
void av1_highbd_quantize_fp_sse4_1(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan, int log_scale);
|
||||
void av1_highbd_quantize_fp_avx2(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan, int log_scale);
|
||||
RTCD_EXTERN void (*av1_highbd_quantize_fp)(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan, int log_scale);
|
||||
|
||||
void av1_highbd_temporal_filter_apply_c(uint8_t *frame1, unsigned int stride, uint8_t *frame2, unsigned int block_width, unsigned int block_height, int strength, int filter_weight, unsigned int *accumulator, uint16_t *count);
|
||||
#define av1_highbd_temporal_filter_apply av1_highbd_temporal_filter_apply_c
|
||||
|
||||
void av1_highbd_warp_affine_c(const int32_t *mat, const uint16_t *ref, int width, int height, int stride, uint16_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, int bd, int comp_avg, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
void av1_highbd_warp_affine_ssse3(const int32_t *mat, const uint16_t *ref, int width, int height, int stride, uint16_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, int bd, int comp_avg, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
RTCD_EXTERN void (*av1_highbd_warp_affine)(const int32_t *mat, const uint16_t *ref, int width, int height, int stride, uint16_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, int bd, int comp_avg, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
void av1_highbd_warp_affine_c(const int32_t *mat, const uint16_t *ref, int width, int height, int stride, uint16_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, int bd, ConvolveParams *conv_params, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
void av1_highbd_warp_affine_ssse3(const int32_t *mat, const uint16_t *ref, int width, int height, int stride, uint16_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, int bd, ConvolveParams *conv_params, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
RTCD_EXTERN void (*av1_highbd_warp_affine)(const int32_t *mat, const uint16_t *ref, int width, int height, int stride, uint16_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, int bd, ConvolveParams *conv_params, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
|
||||
void av1_iht16x16_256_add_c(const tran_low_t *input, uint8_t *output, int pitch, int tx_type);
|
||||
void av1_iht16x16_256_add_sse2(const tran_low_t *input, uint8_t *output, int pitch, int tx_type);
|
||||
void av1_iht16x16_256_add_avx2(const tran_low_t *input, uint8_t *output, int pitch, int tx_type);
|
||||
RTCD_EXTERN void (*av1_iht16x16_256_add)(const tran_low_t *input, uint8_t *output, int pitch, int tx_type);
|
||||
void av1_iht16x16_256_add_c(const tran_low_t *input, uint8_t *output, int pitch, const struct txfm_param *param);
|
||||
void av1_iht16x16_256_add_sse2(const tran_low_t *input, uint8_t *output, int pitch, const struct txfm_param *param);
|
||||
void av1_iht16x16_256_add_avx2(const tran_low_t *input, uint8_t *output, int pitch, const struct txfm_param *param);
|
||||
RTCD_EXTERN void (*av1_iht16x16_256_add)(const tran_low_t *input, uint8_t *output, int pitch, const struct txfm_param *param);
|
||||
|
||||
void av1_iht16x32_512_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht16x32_512_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
RTCD_EXTERN void (*av1_iht16x32_512_add)(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht16x32_512_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
void av1_iht16x32_512_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
RTCD_EXTERN void (*av1_iht16x32_512_add)(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
|
||||
void av1_iht16x4_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht16x4_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht16x4_64_add av1_iht16x4_64_add_c
|
||||
|
||||
void av1_iht16x8_128_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht16x8_128_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
RTCD_EXTERN void (*av1_iht16x8_128_add)(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht16x8_128_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
void av1_iht16x8_128_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
RTCD_EXTERN void (*av1_iht16x8_128_add)(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
|
||||
void av1_iht32x16_512_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht32x16_512_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
RTCD_EXTERN void (*av1_iht32x16_512_add)(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht32x16_512_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
void av1_iht32x16_512_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
RTCD_EXTERN void (*av1_iht32x16_512_add)(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
|
||||
void av1_iht32x32_1024_add_c(const tran_low_t *input, uint8_t *output, int pitch, int tx_type);
|
||||
void av1_iht32x32_1024_add_c(const tran_low_t *input, uint8_t *output, int pitch, const struct txfm_param *param);
|
||||
#define av1_iht32x32_1024_add av1_iht32x32_1024_add_c
|
||||
|
||||
void av1_iht32x8_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht32x8_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht32x8_256_add av1_iht32x8_256_add_c
|
||||
|
||||
void av1_iht4x16_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht4x16_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht4x16_64_add av1_iht4x16_64_add_c
|
||||
|
||||
void av1_iht4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht4x4_16_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
RTCD_EXTERN void (*av1_iht4x4_16_add)(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
void av1_iht4x4_16_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
RTCD_EXTERN void (*av1_iht4x4_16_add)(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
|
||||
void av1_iht4x8_32_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht4x8_32_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
RTCD_EXTERN void (*av1_iht4x8_32_add)(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht4x8_32_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
void av1_iht4x8_32_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
RTCD_EXTERN void (*av1_iht4x8_32_add)(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
|
||||
void av1_iht8x16_128_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht8x16_128_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
RTCD_EXTERN void (*av1_iht8x16_128_add)(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht8x16_128_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
void av1_iht8x16_128_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
RTCD_EXTERN void (*av1_iht8x16_128_add)(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
|
||||
void av1_iht8x32_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht8x32_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht8x32_256_add av1_iht8x32_256_add_c
|
||||
|
||||
void av1_iht8x4_32_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht8x4_32_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
RTCD_EXTERN void (*av1_iht8x4_32_add)(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht8x4_32_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
void av1_iht8x4_32_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
RTCD_EXTERN void (*av1_iht8x4_32_add)(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
|
||||
void av1_iht8x8_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht8x8_64_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
RTCD_EXTERN void (*av1_iht8x8_64_add)(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht8x8_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
void av1_iht8x8_64_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
RTCD_EXTERN void (*av1_iht8x8_64_add)(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
|
||||
void av1_inv_txfm2d_add_16x16_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
void av1_inv_txfm2d_add_16x16_sse4_1(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
RTCD_EXTERN void (*av1_inv_txfm2d_add_16x16)(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
|
||||
void av1_inv_txfm2d_add_16x32_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_inv_txfm2d_add_16x32 av1_inv_txfm2d_add_16x32_c
|
||||
|
||||
void av1_inv_txfm2d_add_16x8_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_inv_txfm2d_add_16x8 av1_inv_txfm2d_add_16x8_c
|
||||
|
||||
void av1_inv_txfm2d_add_32x16_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_inv_txfm2d_add_32x16 av1_inv_txfm2d_add_32x16_c
|
||||
|
||||
void av1_inv_txfm2d_add_32x32_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
void av1_inv_txfm2d_add_32x32_avx2(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
RTCD_EXTERN void (*av1_inv_txfm2d_add_32x32)(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
|
|
@ -367,9 +355,18 @@ void av1_inv_txfm2d_add_4x4_c(const int32_t *input, uint16_t *output, int stride
|
|||
void av1_inv_txfm2d_add_4x4_sse4_1(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
RTCD_EXTERN void (*av1_inv_txfm2d_add_4x4)(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
|
||||
void av1_inv_txfm2d_add_4x8_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_inv_txfm2d_add_4x8 av1_inv_txfm2d_add_4x8_c
|
||||
|
||||
void av1_inv_txfm2d_add_64x64_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_inv_txfm2d_add_64x64 av1_inv_txfm2d_add_64x64_c
|
||||
|
||||
void av1_inv_txfm2d_add_8x16_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_inv_txfm2d_add_8x16 av1_inv_txfm2d_add_8x16_c
|
||||
|
||||
void av1_inv_txfm2d_add_8x4_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_inv_txfm2d_add_8x4 av1_inv_txfm2d_add_8x4_c
|
||||
|
||||
void av1_inv_txfm2d_add_8x8_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
void av1_inv_txfm2d_add_8x8_sse4_1(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
RTCD_EXTERN void (*av1_inv_txfm2d_add_8x8)(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
|
|
@ -383,19 +380,21 @@ void av1_quantize_b_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_b
|
|||
|
||||
void av1_quantize_fp_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
void av1_quantize_fp_sse2(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
void av1_quantize_fp_avx2(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
RTCD_EXTERN void (*av1_quantize_fp)(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
|
||||
void av1_quantize_fp_32x32_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
#define av1_quantize_fp_32x32 av1_quantize_fp_32x32_c
|
||||
void av1_quantize_fp_32x32_avx2(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
RTCD_EXTERN void (*av1_quantize_fp_32x32)(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
|
||||
void av1_temporal_filter_apply_c(uint8_t *frame1, unsigned int stride, uint8_t *frame2, unsigned int block_width, unsigned int block_height, int strength, int filter_weight, unsigned int *accumulator, uint16_t *count);
|
||||
void av1_temporal_filter_apply_sse2(uint8_t *frame1, unsigned int stride, uint8_t *frame2, unsigned int block_width, unsigned int block_height, int strength, int filter_weight, unsigned int *accumulator, uint16_t *count);
|
||||
RTCD_EXTERN void (*av1_temporal_filter_apply)(uint8_t *frame1, unsigned int stride, uint8_t *frame2, unsigned int block_width, unsigned int block_height, int strength, int filter_weight, unsigned int *accumulator, uint16_t *count);
|
||||
|
||||
void av1_warp_affine_c(const int32_t *mat, const uint8_t *ref, int width, int height, int stride, uint8_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, int comp_avg, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
void av1_warp_affine_sse2(const int32_t *mat, const uint8_t *ref, int width, int height, int stride, uint8_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, int comp_avg, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
void av1_warp_affine_ssse3(const int32_t *mat, const uint8_t *ref, int width, int height, int stride, uint8_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, int comp_avg, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
RTCD_EXTERN void (*av1_warp_affine)(const int32_t *mat, const uint8_t *ref, int width, int height, int stride, uint8_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, int comp_avg, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
void av1_warp_affine_c(const int32_t *mat, const uint8_t *ref, int width, int height, int stride, uint8_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, ConvolveParams *conv_params, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
void av1_warp_affine_sse2(const int32_t *mat, const uint8_t *ref, int width, int height, int stride, uint8_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, ConvolveParams *conv_params, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
void av1_warp_affine_ssse3(const int32_t *mat, const uint8_t *ref, int width, int height, int stride, uint8_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, ConvolveParams *conv_params, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
RTCD_EXTERN void (*av1_warp_affine)(const int32_t *mat, const uint8_t *ref, int width, int height, int stride, uint8_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, ConvolveParams *conv_params, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
|
||||
void av1_wedge_compute_delta_squares_c(int16_t *d, const int16_t *a, const int16_t *b, int N);
|
||||
void av1_wedge_compute_delta_squares_sse2(int16_t *d, const int16_t *a, const int16_t *b, int N);
|
||||
|
|
@ -493,6 +492,8 @@ static void setup_rtcd_internal(void)
|
|||
if (flags & HAS_SSE2) aom_clpf_hblock_hbd = aom_clpf_hblock_hbd_sse2;
|
||||
if (flags & HAS_SSSE3) aom_clpf_hblock_hbd = aom_clpf_hblock_hbd_ssse3;
|
||||
if (flags & HAS_SSE4_1) aom_clpf_hblock_hbd = aom_clpf_hblock_hbd_sse4_1;
|
||||
av1_block_error = av1_block_error_c;
|
||||
if (flags & HAS_AVX2) av1_block_error = av1_block_error_avx2;
|
||||
av1_convolve_horiz = av1_convolve_horiz_c;
|
||||
if (flags & HAS_SSSE3) av1_convolve_horiz = av1_convolve_horiz_ssse3;
|
||||
av1_convolve_vert = av1_convolve_vert_c;
|
||||
|
|
@ -540,10 +541,9 @@ static void setup_rtcd_internal(void)
|
|||
if (flags & HAS_SSE4_1) av1_highbd_convolve_init = av1_highbd_convolve_init_sse4_1;
|
||||
av1_highbd_convolve_vert = av1_highbd_convolve_vert_c;
|
||||
if (flags & HAS_SSE4_1) av1_highbd_convolve_vert = av1_highbd_convolve_vert_sse4_1;
|
||||
av1_highbd_fht4x4 = av1_highbd_fht4x4_c;
|
||||
if (flags & HAS_SSE4_1) av1_highbd_fht4x4 = av1_highbd_fht4x4_sse4_1;
|
||||
av1_highbd_quantize_fp = av1_highbd_quantize_fp_c;
|
||||
if (flags & HAS_SSE4_1) av1_highbd_quantize_fp = av1_highbd_quantize_fp_sse4_1;
|
||||
if (flags & HAS_AVX2) av1_highbd_quantize_fp = av1_highbd_quantize_fp_avx2;
|
||||
av1_highbd_warp_affine = av1_highbd_warp_affine_c;
|
||||
if (flags & HAS_SSSE3) av1_highbd_warp_affine = av1_highbd_warp_affine_ssse3;
|
||||
av1_iht16x16_256_add = av1_iht16x16_256_add_c;
|
||||
|
|
@ -577,6 +577,9 @@ static void setup_rtcd_internal(void)
|
|||
if (flags & HAS_SSSE3) av1_lowbd_convolve_init = av1_lowbd_convolve_init_ssse3;
|
||||
av1_quantize_fp = av1_quantize_fp_c;
|
||||
if (flags & HAS_SSE2) av1_quantize_fp = av1_quantize_fp_sse2;
|
||||
if (flags & HAS_AVX2) av1_quantize_fp = av1_quantize_fp_avx2;
|
||||
av1_quantize_fp_32x32 = av1_quantize_fp_32x32_c;
|
||||
if (flags & HAS_AVX2) av1_quantize_fp_32x32 = av1_quantize_fp_32x32_avx2;
|
||||
av1_temporal_filter_apply = av1_temporal_filter_apply_c;
|
||||
if (flags & HAS_SSE2) av1_temporal_filter_apply = av1_temporal_filter_apply_sse2;
|
||||
av1_warp_affine = av1_warp_affine_c;
|
||||
|
|
|
|||
163
media/libaom/config/win/mingw32/aom_config.asm
Normal file
163
media/libaom/config/win/mingw32/aom_config.asm
Normal file
|
|
@ -0,0 +1,163 @@
|
|||
ARCH_ARM equ 0
|
||||
ARCH_MIPS equ 0
|
||||
ARCH_X86 equ 1
|
||||
ARCH_X86_64 equ 0
|
||||
HAVE_NEON equ 0
|
||||
HAVE_NEON_ASM equ 0
|
||||
HAVE_MIPS32 equ 0
|
||||
HAVE_DSPR2 equ 0
|
||||
HAVE_MSA equ 0
|
||||
HAVE_MIPS64 equ 0
|
||||
HAVE_MMX equ 1
|
||||
HAVE_SSE equ 1
|
||||
HAVE_SSE2 equ 1
|
||||
HAVE_SSE3 equ 1
|
||||
HAVE_SSSE3 equ 1
|
||||
HAVE_SSE4_1 equ 1
|
||||
HAVE_AVX equ 1
|
||||
HAVE_AVX2 equ 1
|
||||
HAVE_AOM_PORTS equ 1
|
||||
HAVE_FEXCEPT equ 1
|
||||
HAVE_PTHREAD_H equ 0
|
||||
HAVE_WXWIDGETS equ 0
|
||||
CONFIG_DEPENDENCY_TRACKING equ 1
|
||||
CONFIG_EXTERNAL_BUILD equ 1
|
||||
CONFIG_INSTALL_DOCS equ 1
|
||||
CONFIG_INSTALL_BINS equ 1
|
||||
CONFIG_INSTALL_LIBS equ 1
|
||||
CONFIG_INSTALL_SRCS equ 0
|
||||
CONFIG_DEBUG equ 0
|
||||
CONFIG_GPROF equ 0
|
||||
CONFIG_GCOV equ 0
|
||||
CONFIG_RVCT equ 0
|
||||
CONFIG_GCC equ 1
|
||||
CONFIG_MSVS equ 0
|
||||
CONFIG_PIC equ 1
|
||||
CONFIG_BIG_ENDIAN equ 0
|
||||
CONFIG_CODEC_SRCS equ 0
|
||||
CONFIG_DEBUG_LIBS equ 0
|
||||
CONFIG_RUNTIME_CPU_DETECT equ 1
|
||||
CONFIG_POSTPROC equ 1
|
||||
CONFIG_MULTITHREAD equ 1
|
||||
CONFIG_INTERNAL_STATS equ 0
|
||||
CONFIG_AV1_ENCODER equ 1
|
||||
CONFIG_AV1_DECODER equ 1
|
||||
CONFIG_AV1 equ 1
|
||||
CONFIG_STATIC_MSVCRT equ 0
|
||||
CONFIG_SPATIAL_RESAMPLING equ 1
|
||||
CONFIG_REALTIME_ONLY equ 0
|
||||
CONFIG_ONTHEFLY_BITPACKING equ 0
|
||||
CONFIG_ERROR_CONCEALMENT equ 0
|
||||
CONFIG_SHARED equ 0
|
||||
CONFIG_STATIC equ 1
|
||||
CONFIG_SMALL equ 0
|
||||
CONFIG_POSTPROC_VISUALIZER equ 0
|
||||
CONFIG_OS_SUPPORT equ 1
|
||||
CONFIG_UNIT_TESTS equ 0
|
||||
CONFIG_WEBM_IO equ 1
|
||||
CONFIG_LIBYUV equ 1
|
||||
CONFIG_ACCOUNTING equ 0
|
||||
CONFIG_INSPECTION equ 0
|
||||
CONFIG_DECODE_PERF_TESTS equ 0
|
||||
CONFIG_ENCODE_PERF_TESTS equ 0
|
||||
CONFIG_COEFFICIENT_RANGE_CHECKING equ 0
|
||||
CONFIG_LOWBITDEPTH equ 1
|
||||
CONFIG_HIGHBITDEPTH equ 1
|
||||
CONFIG_EXPERIMENTAL equ 0
|
||||
CONFIG_SIZE_LIMIT equ 1
|
||||
CONFIG_COLORSPACE_HEADERS equ 0
|
||||
CONFIG_FP_MB_STATS equ 0
|
||||
CONFIG_CDEF equ 1
|
||||
CONFIG_VAR_TX equ 1
|
||||
CONFIG_RECT_TX equ 1
|
||||
CONFIG_RECT_TX_EXT equ 0
|
||||
CONFIG_TPL_MV equ 0
|
||||
CONFIG_DUAL_FILTER equ 1
|
||||
CONFIG_CONVOLVE_ROUND equ 0
|
||||
CONFIG_COMPOUND_ROUND equ 0
|
||||
CONFIG_EXT_TX equ 1
|
||||
CONFIG_DPCM_INTRA equ 0
|
||||
CONFIG_TX64X64 equ 0
|
||||
CONFIG_EXT_INTRA equ 1
|
||||
CONFIG_INTRA_INTERP equ 0
|
||||
CONFIG_FILTER_INTRA equ 0
|
||||
CONFIG_INTRA_EDGE equ 0
|
||||
CONFIG_INTRABC equ 0
|
||||
CONFIG_EXT_INTER equ 1
|
||||
CONFIG_INTERINTRA equ 1
|
||||
CONFIG_WEDGE equ 1
|
||||
CONFIG_COMPOUND_SEGMENT equ 1
|
||||
CONFIG_EXT_REFS equ 1
|
||||
CONFIG_ALTREF2 equ 0
|
||||
CONFIG_SPEED_REFS equ 0
|
||||
CONFIG_GF_GROUPS equ 0
|
||||
CONFIG_FLEX_REFS equ 0
|
||||
CONFIG_GLOBAL_MOTION equ 1
|
||||
CONFIG_NEW_QUANT equ 0
|
||||
CONFIG_SUPERTX equ 0
|
||||
CONFIG_ANS equ 0
|
||||
CONFIG_LOOP_RESTORATION equ 0
|
||||
CONFIG_EXT_PARTITION equ 0
|
||||
CONFIG_EXT_PARTITION_TYPES equ 0
|
||||
CONFIG_UNPOISON_PARTITION_CTX equ 0
|
||||
CONFIG_EXT_TILE equ 0
|
||||
CONFIG_MOTION_VAR equ 1
|
||||
CONFIG_NCOBMC equ 0
|
||||
CONFIG_WARPED_MOTION equ 1
|
||||
CONFIG_Q_ADAPT_PROBS equ 0
|
||||
CONFIG_BITSTREAM_DEBUG equ 0
|
||||
CONFIG_INTER_STATS_ONLY equ 0
|
||||
CONFIG_ALT_INTRA equ 1
|
||||
CONFIG_PALETTE equ 1
|
||||
CONFIG_PALETTE_DELTA_ENCODING equ 0
|
||||
CONFIG_RAWBITS equ 0
|
||||
CONFIG_EC_SMALLMUL equ 1
|
||||
CONFIG_PVQ equ 0
|
||||
CONFIG_CFL equ 0
|
||||
CONFIG_XIPHRC equ 0
|
||||
CONFIG_DCT_ONLY equ 0
|
||||
CONFIG_DAALA_DCT4 equ 0
|
||||
CONFIG_DAALA_DCT8 equ 0
|
||||
CONFIG_CB4X4 equ 1
|
||||
CONFIG_CHROMA_2X2 equ 0
|
||||
CONFIG_CHROMA_SUB8X8 equ 1
|
||||
CONFIG_FRAME_SIZE equ 0
|
||||
CONFIG_DELTA_Q equ 1
|
||||
CONFIG_EXT_DELTA_Q equ 1
|
||||
CONFIG_ADAPT_SCAN equ 0
|
||||
CONFIG_FILTER_7BIT equ 1
|
||||
CONFIG_PARALLEL_DEBLOCKING equ 1
|
||||
CONFIG_LOOPFILTERING_ACROSS_TILES equ 1
|
||||
CONFIG_TEMPMV_SIGNALING equ 1
|
||||
CONFIG_RD_DEBUG equ 0
|
||||
CONFIG_REFERENCE_BUFFER equ 1
|
||||
CONFIG_COEF_INTERLEAVE equ 0
|
||||
CONFIG_ENTROPY_STATS equ 0
|
||||
CONFIG_MASKED_TX equ 0
|
||||
CONFIG_DEPENDENT_HORZTILES equ 0
|
||||
CONFIG_DIST_8X8 equ 0
|
||||
CONFIG_DAALA_DIST equ 0
|
||||
CONFIG_TRIPRED equ 0
|
||||
CONFIG_PALETTE_THROUGHPUT equ 1
|
||||
CONFIG_REF_ADAPT equ 0
|
||||
CONFIG_LV_MAP equ 0
|
||||
CONFIG_TXK_SEL equ 0
|
||||
CONFIG_MV_COMPRESS equ 1
|
||||
CONFIG_FRAME_SUPERRES equ 0
|
||||
CONFIG_NEW_MULTISYMBOL equ 0
|
||||
CONFIG_COMPOUND_SINGLEREF equ 0
|
||||
CONFIG_AOM_QM equ 0
|
||||
CONFIG_ONE_SIDED_COMPOUND equ 1
|
||||
CONFIG_EXT_COMP_REFS equ 0
|
||||
CONFIG_SMOOTH_HV equ 1
|
||||
CONFIG_VAR_REFS equ 0
|
||||
CONFIG_RECT_INTRA_PRED equ 1
|
||||
CONFIG_LGT equ 0
|
||||
CONFIG_SBL_SYMBOL equ 0
|
||||
CONFIG_NCOBMC_ADAPT_WEIGHT equ 0
|
||||
CONFIG_BGSPRITE equ 0
|
||||
CONFIG_VAR_TX_NO_TX_MODE equ 0
|
||||
CONFIG_MRC_TX equ 0
|
||||
CONFIG_LPF_DIRECT equ 0
|
||||
CONFIG_UV_LVL equ 0
|
||||
CONFIG_ANALYZER equ 0
|
||||
11
media/libaom/config/win/mingw32/aom_config.c
Normal file
11
media/libaom/config/win/mingw32/aom_config.c
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
/* Copyright (c) 2016, Alliance for Open Media. All rights reserved. */
|
||||
/* */
|
||||
/* This source code is subject to the terms of the BSD 2 Clause License and */
|
||||
/* the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License */
|
||||
/* was not distributed with this source code in the LICENSE file, you can */
|
||||
/* obtain it at www.aomedia.org/license/software. If the Alliance for Open */
|
||||
/* Media Patent License 1.0 was not distributed with this source code in the */
|
||||
/* PATENTS file, you can obtain it at www.aomedia.org/license/patent. */
|
||||
#include "aom/aom_codec.h"
|
||||
static const char* const cfg = "--target=x86-win32-gcc --enable-external-build --disable-examples --disable-docs --disable-unit-tests --size-limit=8192x4608 --enable-pic --enable-postproc --as=yasm";
|
||||
const char *aom_codec_build_config(void) {return cfg;}
|
||||
179
media/libaom/config/win/mingw32/aom_config.h
Normal file
179
media/libaom/config/win/mingw32/aom_config.h
Normal file
|
|
@ -0,0 +1,179 @@
|
|||
/* Copyright (c) 2016, Alliance for Open Media. All rights reserved. */
|
||||
/* */
|
||||
/* This source code is subject to the terms of the BSD 2 Clause License and */
|
||||
/* the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License */
|
||||
/* was not distributed with this source code in the LICENSE file, you can */
|
||||
/* obtain it at www.aomedia.org/license/software. If the Alliance for Open */
|
||||
/* Media Patent License 1.0 was not distributed with this source code in the */
|
||||
/* PATENTS file, you can obtain it at www.aomedia.org/license/patent. */
|
||||
/* This file automatically generated by configure. Do not edit! */
|
||||
#ifndef AOM_CONFIG_H
|
||||
#define AOM_CONFIG_H
|
||||
#define RESTRICT
|
||||
#define INLINE inline
|
||||
#define ARCH_ARM 0
|
||||
#define ARCH_MIPS 0
|
||||
#define ARCH_X86 1
|
||||
#define ARCH_X86_64 0
|
||||
#define HAVE_NEON 0
|
||||
#define HAVE_NEON_ASM 0
|
||||
#define HAVE_MIPS32 0
|
||||
#define HAVE_DSPR2 0
|
||||
#define HAVE_MSA 0
|
||||
#define HAVE_MIPS64 0
|
||||
#define HAVE_MMX 1
|
||||
#define HAVE_SSE 1
|
||||
#define HAVE_SSE2 1
|
||||
#define HAVE_SSE3 1
|
||||
#define HAVE_SSSE3 1
|
||||
#define HAVE_SSE4_1 1
|
||||
#define HAVE_AVX 1
|
||||
#define HAVE_AVX2 1
|
||||
#define HAVE_AOM_PORTS 1
|
||||
#define HAVE_FEXCEPT 1
|
||||
#define HAVE_PTHREAD_H 0
|
||||
#define HAVE_WXWIDGETS 0
|
||||
#define CONFIG_DEPENDENCY_TRACKING 1
|
||||
#define CONFIG_EXTERNAL_BUILD 1
|
||||
#define CONFIG_INSTALL_DOCS 1
|
||||
#define CONFIG_INSTALL_BINS 1
|
||||
#define CONFIG_INSTALL_LIBS 1
|
||||
#define CONFIG_INSTALL_SRCS 0
|
||||
#define CONFIG_DEBUG 0
|
||||
#define CONFIG_GPROF 0
|
||||
#define CONFIG_GCOV 0
|
||||
#define CONFIG_RVCT 0
|
||||
#define CONFIG_GCC 1
|
||||
#define CONFIG_MSVS 0
|
||||
#define CONFIG_PIC 1
|
||||
#define CONFIG_BIG_ENDIAN 0
|
||||
#define CONFIG_CODEC_SRCS 0
|
||||
#define CONFIG_DEBUG_LIBS 0
|
||||
#define CONFIG_RUNTIME_CPU_DETECT 1
|
||||
#define CONFIG_POSTPROC 1
|
||||
#define CONFIG_MULTITHREAD 1
|
||||
#define CONFIG_INTERNAL_STATS 0
|
||||
#define CONFIG_AV1_ENCODER 1
|
||||
#define CONFIG_AV1_DECODER 1
|
||||
#define CONFIG_AV1 1
|
||||
#define CONFIG_STATIC_MSVCRT 0
|
||||
#define CONFIG_SPATIAL_RESAMPLING 1
|
||||
#define CONFIG_REALTIME_ONLY 0
|
||||
#define CONFIG_ONTHEFLY_BITPACKING 0
|
||||
#define CONFIG_ERROR_CONCEALMENT 0
|
||||
#define CONFIG_SHARED 0
|
||||
#define CONFIG_STATIC 1
|
||||
#define CONFIG_SMALL 0
|
||||
#define CONFIG_POSTPROC_VISUALIZER 0
|
||||
#define CONFIG_OS_SUPPORT 1
|
||||
#define CONFIG_UNIT_TESTS 0
|
||||
#define CONFIG_WEBM_IO 1
|
||||
#define CONFIG_LIBYUV 1
|
||||
#define CONFIG_ACCOUNTING 0
|
||||
#define CONFIG_INSPECTION 0
|
||||
#define CONFIG_DECODE_PERF_TESTS 0
|
||||
#define CONFIG_ENCODE_PERF_TESTS 0
|
||||
#define CONFIG_COEFFICIENT_RANGE_CHECKING 0
|
||||
#define CONFIG_LOWBITDEPTH 1
|
||||
#define CONFIG_HIGHBITDEPTH 1
|
||||
#define CONFIG_EXPERIMENTAL 0
|
||||
#define CONFIG_SIZE_LIMIT 1
|
||||
#define CONFIG_COLORSPACE_HEADERS 0
|
||||
#define CONFIG_FP_MB_STATS 0
|
||||
#define CONFIG_CDEF 1
|
||||
#define CONFIG_VAR_TX 1
|
||||
#define CONFIG_RECT_TX 1
|
||||
#define CONFIG_RECT_TX_EXT 0
|
||||
#define CONFIG_TPL_MV 0
|
||||
#define CONFIG_DUAL_FILTER 1
|
||||
#define CONFIG_CONVOLVE_ROUND 0
|
||||
#define CONFIG_COMPOUND_ROUND 0
|
||||
#define CONFIG_EXT_TX 1
|
||||
#define CONFIG_DPCM_INTRA 0
|
||||
#define CONFIG_TX64X64 0
|
||||
#define CONFIG_EXT_INTRA 1
|
||||
#define CONFIG_INTRA_INTERP 0
|
||||
#define CONFIG_FILTER_INTRA 0
|
||||
#define CONFIG_INTRA_EDGE 0
|
||||
#define CONFIG_INTRABC 0
|
||||
#define CONFIG_EXT_INTER 1
|
||||
#define CONFIG_INTERINTRA 1
|
||||
#define CONFIG_WEDGE 1
|
||||
#define CONFIG_COMPOUND_SEGMENT 1
|
||||
#define CONFIG_EXT_REFS 1
|
||||
#define CONFIG_ALTREF2 0
|
||||
#define CONFIG_SPEED_REFS 0
|
||||
#define CONFIG_GF_GROUPS 0
|
||||
#define CONFIG_FLEX_REFS 0
|
||||
#define CONFIG_GLOBAL_MOTION 1
|
||||
#define CONFIG_NEW_QUANT 0
|
||||
#define CONFIG_SUPERTX 0
|
||||
#define CONFIG_ANS 0
|
||||
#define CONFIG_LOOP_RESTORATION 0
|
||||
#define CONFIG_EXT_PARTITION 0
|
||||
#define CONFIG_EXT_PARTITION_TYPES 0
|
||||
#define CONFIG_UNPOISON_PARTITION_CTX 0
|
||||
#define CONFIG_EXT_TILE 0
|
||||
#define CONFIG_MOTION_VAR 1
|
||||
#define CONFIG_NCOBMC 0
|
||||
#define CONFIG_WARPED_MOTION 1
|
||||
#define CONFIG_Q_ADAPT_PROBS 0
|
||||
#define CONFIG_BITSTREAM_DEBUG 0
|
||||
#define CONFIG_INTER_STATS_ONLY 0
|
||||
#define CONFIG_ALT_INTRA 1
|
||||
#define CONFIG_PALETTE 1
|
||||
#define CONFIG_PALETTE_DELTA_ENCODING 0
|
||||
#define CONFIG_RAWBITS 0
|
||||
#define CONFIG_EC_SMALLMUL 1
|
||||
#define CONFIG_PVQ 0
|
||||
#define CONFIG_CFL 0
|
||||
#define CONFIG_XIPHRC 0
|
||||
#define CONFIG_DCT_ONLY 0
|
||||
#define CONFIG_DAALA_DCT4 0
|
||||
#define CONFIG_DAALA_DCT8 0
|
||||
#define CONFIG_CB4X4 1
|
||||
#define CONFIG_CHROMA_2X2 0
|
||||
#define CONFIG_CHROMA_SUB8X8 1
|
||||
#define CONFIG_FRAME_SIZE 0
|
||||
#define CONFIG_DELTA_Q 1
|
||||
#define CONFIG_EXT_DELTA_Q 1
|
||||
#define CONFIG_ADAPT_SCAN 0
|
||||
#define CONFIG_FILTER_7BIT 1
|
||||
#define CONFIG_PARALLEL_DEBLOCKING 1
|
||||
#define CONFIG_LOOPFILTERING_ACROSS_TILES 1
|
||||
#define CONFIG_TEMPMV_SIGNALING 1
|
||||
#define CONFIG_RD_DEBUG 0
|
||||
#define CONFIG_REFERENCE_BUFFER 1
|
||||
#define CONFIG_COEF_INTERLEAVE 0
|
||||
#define CONFIG_ENTROPY_STATS 0
|
||||
#define CONFIG_MASKED_TX 0
|
||||
#define CONFIG_DEPENDENT_HORZTILES 0
|
||||
#define CONFIG_DIST_8X8 0
|
||||
#define CONFIG_DAALA_DIST 0
|
||||
#define CONFIG_TRIPRED 0
|
||||
#define CONFIG_PALETTE_THROUGHPUT 1
|
||||
#define CONFIG_REF_ADAPT 0
|
||||
#define CONFIG_LV_MAP 0
|
||||
#define CONFIG_TXK_SEL 0
|
||||
#define CONFIG_MV_COMPRESS 1
|
||||
#define CONFIG_FRAME_SUPERRES 0
|
||||
#define CONFIG_NEW_MULTISYMBOL 0
|
||||
#define CONFIG_COMPOUND_SINGLEREF 0
|
||||
#define CONFIG_AOM_QM 0
|
||||
#define CONFIG_ONE_SIDED_COMPOUND 1
|
||||
#define CONFIG_EXT_COMP_REFS 0
|
||||
#define CONFIG_SMOOTH_HV 1
|
||||
#define CONFIG_VAR_REFS 0
|
||||
#define CONFIG_RECT_INTRA_PRED 1
|
||||
#define CONFIG_LGT 0
|
||||
#define CONFIG_SBL_SYMBOL 0
|
||||
#define CONFIG_NCOBMC_ADAPT_WEIGHT 0
|
||||
#define CONFIG_BGSPRITE 0
|
||||
#define CONFIG_VAR_TX_NO_TX_MODE 0
|
||||
#define CONFIG_MRC_TX 0
|
||||
#define CONFIG_LPF_DIRECT 0
|
||||
#define CONFIG_UV_LVL 0
|
||||
#define CONFIG_ANALYZER 0
|
||||
#define DECODE_WIDTH_LIMIT 8192
|
||||
#define DECODE_HEIGHT_LIMIT 4608
|
||||
#endif /* AOM_CONFIG_H */
|
||||
4774
media/libaom/config/win/mingw32/aom_dsp_rtcd.h
Normal file
4774
media/libaom/config/win/mingw32/aom_dsp_rtcd.h
Normal file
File diff suppressed because it is too large
Load diff
78
media/libaom/config/win/mingw32/aom_scale_rtcd.h
Normal file
78
media/libaom/config/win/mingw32/aom_scale_rtcd.h
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
#ifndef AOM_SCALE_RTCD_H_
|
||||
#define AOM_SCALE_RTCD_H_
|
||||
|
||||
#ifdef RTCD_C
|
||||
#define RTCD_EXTERN
|
||||
#else
|
||||
#define RTCD_EXTERN extern
|
||||
#endif
|
||||
|
||||
struct yv12_buffer_config;
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
void aom_extend_frame_borders_c(struct yv12_buffer_config *ybf);
|
||||
#define aom_extend_frame_borders aom_extend_frame_borders_c
|
||||
|
||||
void aom_extend_frame_borders_y_c(struct yv12_buffer_config *ybf);
|
||||
#define aom_extend_frame_borders_y aom_extend_frame_borders_y_c
|
||||
|
||||
void aom_extend_frame_inner_borders_c(struct yv12_buffer_config *ybf);
|
||||
#define aom_extend_frame_inner_borders aom_extend_frame_inner_borders_c
|
||||
|
||||
void aom_horizontal_line_2_1_scale_c(const unsigned char *source, unsigned int source_width, unsigned char *dest, unsigned int dest_width);
|
||||
#define aom_horizontal_line_2_1_scale aom_horizontal_line_2_1_scale_c
|
||||
|
||||
void aom_horizontal_line_5_3_scale_c(const unsigned char *source, unsigned int source_width, unsigned char *dest, unsigned int dest_width);
|
||||
#define aom_horizontal_line_5_3_scale aom_horizontal_line_5_3_scale_c
|
||||
|
||||
void aom_horizontal_line_5_4_scale_c(const unsigned char *source, unsigned int source_width, unsigned char *dest, unsigned int dest_width);
|
||||
#define aom_horizontal_line_5_4_scale aom_horizontal_line_5_4_scale_c
|
||||
|
||||
void aom_vertical_band_2_1_scale_c(unsigned char *source, int src_pitch, unsigned char *dest, int dest_pitch, unsigned int dest_width);
|
||||
#define aom_vertical_band_2_1_scale aom_vertical_band_2_1_scale_c
|
||||
|
||||
void aom_vertical_band_2_1_scale_i_c(unsigned char *source, int src_pitch, unsigned char *dest, int dest_pitch, unsigned int dest_width);
|
||||
#define aom_vertical_band_2_1_scale_i aom_vertical_band_2_1_scale_i_c
|
||||
|
||||
void aom_vertical_band_5_3_scale_c(unsigned char *source, int src_pitch, unsigned char *dest, int dest_pitch, unsigned int dest_width);
|
||||
#define aom_vertical_band_5_3_scale aom_vertical_band_5_3_scale_c
|
||||
|
||||
void aom_vertical_band_5_4_scale_c(unsigned char *source, int src_pitch, unsigned char *dest, int dest_pitch, unsigned int dest_width);
|
||||
#define aom_vertical_band_5_4_scale aom_vertical_band_5_4_scale_c
|
||||
|
||||
void aom_yv12_copy_frame_c(const struct yv12_buffer_config *src_bc, struct yv12_buffer_config *dst_bc);
|
||||
#define aom_yv12_copy_frame aom_yv12_copy_frame_c
|
||||
|
||||
void aom_yv12_copy_u_c(const struct yv12_buffer_config *src_bc, struct yv12_buffer_config *dst_bc);
|
||||
#define aom_yv12_copy_u aom_yv12_copy_u_c
|
||||
|
||||
void aom_yv12_copy_v_c(const struct yv12_buffer_config *src_bc, struct yv12_buffer_config *dst_bc);
|
||||
#define aom_yv12_copy_v aom_yv12_copy_v_c
|
||||
|
||||
void aom_yv12_copy_y_c(const struct yv12_buffer_config *src_ybc, struct yv12_buffer_config *dst_ybc);
|
||||
#define aom_yv12_copy_y aom_yv12_copy_y_c
|
||||
|
||||
void aom_yv12_extend_frame_borders_c(struct yv12_buffer_config *ybf);
|
||||
#define aom_yv12_extend_frame_borders aom_yv12_extend_frame_borders_c
|
||||
|
||||
void aom_scale_rtcd(void);
|
||||
|
||||
#ifdef RTCD_C
|
||||
#include "aom_ports/x86.h"
|
||||
static void setup_rtcd_internal(void)
|
||||
{
|
||||
int flags = x86_simd_caps();
|
||||
|
||||
(void)flags;
|
||||
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
} // extern "C"
|
||||
#endif
|
||||
|
||||
#endif
|
||||
639
media/libaom/config/win/mingw32/av1_rtcd.h
Normal file
639
media/libaom/config/win/mingw32/av1_rtcd.h
Normal file
|
|
@ -0,0 +1,639 @@
|
|||
#ifndef AOM_RTCD_H_
|
||||
#define AOM_RTCD_H_
|
||||
|
||||
#ifdef RTCD_C
|
||||
#define RTCD_EXTERN
|
||||
#else
|
||||
#define RTCD_EXTERN extern
|
||||
#endif
|
||||
|
||||
/*
|
||||
* AV1
|
||||
*/
|
||||
|
||||
#include "aom/aom_integer.h"
|
||||
#include "aom_dsp/txfm_common.h"
|
||||
#include "av1/common/common.h"
|
||||
#include "av1/common/enums.h"
|
||||
#include "av1/common/quant_common.h"
|
||||
#include "av1/common/filter.h"
|
||||
#include "av1/common/convolve.h"
|
||||
#include "av1/common/av1_txfm.h"
|
||||
#include "av1/common/odintrin.h"
|
||||
|
||||
struct macroblockd;
|
||||
|
||||
/* Encoder forward decls */
|
||||
struct macroblock;
|
||||
struct txfm_param;
|
||||
struct aom_variance_vtable;
|
||||
struct search_site_config;
|
||||
struct mv;
|
||||
union int_mv;
|
||||
struct yv12_buffer_config;
|
||||
typedef uint16_t od_dering_in;
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
void aom_clpf_block_c(uint8_t *dst, const uint16_t *src, int dstride, int sstride, int sizex, int sizey, unsigned int strength, unsigned int bd);
|
||||
void aom_clpf_block_sse2(uint8_t *dst, const uint16_t *src, int dstride, int sstride, int sizex, int sizey, unsigned int strength, unsigned int bd);
|
||||
void aom_clpf_block_ssse3(uint8_t *dst, const uint16_t *src, int dstride, int sstride, int sizex, int sizey, unsigned int strength, unsigned int bd);
|
||||
void aom_clpf_block_sse4_1(uint8_t *dst, const uint16_t *src, int dstride, int sstride, int sizex, int sizey, unsigned int strength, unsigned int bd);
|
||||
RTCD_EXTERN void (*aom_clpf_block)(uint8_t *dst, const uint16_t *src, int dstride, int sstride, int sizex, int sizey, unsigned int strength, unsigned int bd);
|
||||
|
||||
void aom_clpf_block_hbd_c(uint16_t *dst, const uint16_t *src, int dstride, int sstride, int sizex, int sizey, unsigned int strength, unsigned int bd);
|
||||
void aom_clpf_block_hbd_sse2(uint16_t *dst, const uint16_t *src, int dstride, int sstride, int sizex, int sizey, unsigned int strength, unsigned int bd);
|
||||
void aom_clpf_block_hbd_ssse3(uint16_t *dst, const uint16_t *src, int dstride, int sstride, int sizex, int sizey, unsigned int strength, unsigned int bd);
|
||||
void aom_clpf_block_hbd_sse4_1(uint16_t *dst, const uint16_t *src, int dstride, int sstride, int sizex, int sizey, unsigned int strength, unsigned int bd);
|
||||
RTCD_EXTERN void (*aom_clpf_block_hbd)(uint16_t *dst, const uint16_t *src, int dstride, int sstride, int sizex, int sizey, unsigned int strength, unsigned int bd);
|
||||
|
||||
void aom_clpf_hblock_c(uint8_t *dst, const uint16_t *src, int dstride, int sstride, int sizex, int sizey, unsigned int strength, unsigned int bd);
|
||||
void aom_clpf_hblock_sse2(uint8_t *dst, const uint16_t *src, int dstride, int sstride, int sizex, int sizey, unsigned int strength, unsigned int bd);
|
||||
void aom_clpf_hblock_ssse3(uint8_t *dst, const uint16_t *src, int dstride, int sstride, int sizex, int sizey, unsigned int strength, unsigned int bd);
|
||||
void aom_clpf_hblock_sse4_1(uint8_t *dst, const uint16_t *src, int dstride, int sstride, int sizex, int sizey, unsigned int strength, unsigned int bd);
|
||||
RTCD_EXTERN void (*aom_clpf_hblock)(uint8_t *dst, const uint16_t *src, int dstride, int sstride, int sizex, int sizey, unsigned int strength, unsigned int bd);
|
||||
|
||||
void aom_clpf_hblock_hbd_c(uint16_t *dst, const uint16_t *src, int dstride, int sstride, int sizex, int sizey, unsigned int strength, unsigned int bd);
|
||||
void aom_clpf_hblock_hbd_sse2(uint16_t *dst, const uint16_t *src, int dstride, int sstride, int sizex, int sizey, unsigned int strength, unsigned int bd);
|
||||
void aom_clpf_hblock_hbd_ssse3(uint16_t *dst, const uint16_t *src, int dstride, int sstride, int sizex, int sizey, unsigned int strength, unsigned int bd);
|
||||
void aom_clpf_hblock_hbd_sse4_1(uint16_t *dst, const uint16_t *src, int dstride, int sstride, int sizex, int sizey, unsigned int strength, unsigned int bd);
|
||||
RTCD_EXTERN void (*aom_clpf_hblock_hbd)(uint16_t *dst, const uint16_t *src, int dstride, int sstride, int sizex, int sizey, unsigned int strength, unsigned int bd);
|
||||
|
||||
int64_t av1_block_error_c(const tran_low_t *coeff, const tran_low_t *dqcoeff, intptr_t block_size, int64_t *ssz);
|
||||
int64_t av1_block_error_avx2(const tran_low_t *coeff, const tran_low_t *dqcoeff, intptr_t block_size, int64_t *ssz);
|
||||
RTCD_EXTERN int64_t (*av1_block_error)(const tran_low_t *coeff, const tran_low_t *dqcoeff, intptr_t block_size, int64_t *ssz);
|
||||
|
||||
void av1_convolve_horiz_c(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int w, int h, const InterpFilterParams fp, const int subpel_x_q4, int x_step_q4, ConvolveParams *conv_params);
|
||||
void av1_convolve_horiz_ssse3(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int w, int h, const InterpFilterParams fp, const int subpel_x_q4, int x_step_q4, ConvolveParams *conv_params);
|
||||
RTCD_EXTERN void (*av1_convolve_horiz)(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int w, int h, const InterpFilterParams fp, const int subpel_x_q4, int x_step_q4, ConvolveParams *conv_params);
|
||||
|
||||
void av1_convolve_vert_c(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int w, int h, const InterpFilterParams fp, const int subpel_x_q4, int x_step_q4, ConvolveParams *conv_params);
|
||||
void av1_convolve_vert_ssse3(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int w, int h, const InterpFilterParams fp, const int subpel_x_q4, int x_step_q4, ConvolveParams *conv_params);
|
||||
RTCD_EXTERN void (*av1_convolve_vert)(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int w, int h, const InterpFilterParams fp, const int subpel_x_q4, int x_step_q4, ConvolveParams *conv_params);
|
||||
|
||||
int av1_diamond_search_sad_c(struct macroblock *x, const struct search_site_config *cfg, struct mv *ref_mv, struct mv *best_mv, int search_param, int sad_per_bit, int *num00, const struct aom_variance_vtable *fn_ptr, const struct mv *center_mv);
|
||||
#define av1_diamond_search_sad av1_diamond_search_sad_c
|
||||
|
||||
void av1_fdct8x8_quant_c(const int16_t *input, int stride, tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
#define av1_fdct8x8_quant av1_fdct8x8_quant_c
|
||||
|
||||
void av1_fht16x16_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht16x16_sse2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht16x16_avx2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
RTCD_EXTERN void (*av1_fht16x16)(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
|
||||
void av1_fht16x32_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht16x32_sse2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
RTCD_EXTERN void (*av1_fht16x32)(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
|
||||
void av1_fht16x4_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht16x4 av1_fht16x4_c
|
||||
|
||||
void av1_fht16x8_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht16x8_sse2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
RTCD_EXTERN void (*av1_fht16x8)(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
|
||||
void av1_fht32x16_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht32x16_sse2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
RTCD_EXTERN void (*av1_fht32x16)(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
|
||||
void av1_fht32x32_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht32x32_sse2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht32x32_avx2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
RTCD_EXTERN void (*av1_fht32x32)(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
|
||||
void av1_fht32x8_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht32x8 av1_fht32x8_c
|
||||
|
||||
void av1_fht4x16_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht4x16 av1_fht4x16_c
|
||||
|
||||
void av1_fht4x4_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht4x4_sse2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
RTCD_EXTERN void (*av1_fht4x4)(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
|
||||
void av1_fht4x8_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht4x8_sse2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
RTCD_EXTERN void (*av1_fht4x8)(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
|
||||
void av1_fht8x16_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht8x16_sse2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
RTCD_EXTERN void (*av1_fht8x16)(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
|
||||
void av1_fht8x32_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht8x32 av1_fht8x32_c
|
||||
|
||||
void av1_fht8x4_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht8x4_sse2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
RTCD_EXTERN void (*av1_fht8x4)(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
|
||||
void av1_fht8x8_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht8x8_sse2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
RTCD_EXTERN void (*av1_fht8x8)(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
|
||||
int av1_full_range_search_c(const struct macroblock *x, const struct search_site_config *cfg, struct mv *ref_mv, struct mv *best_mv, int search_param, int sad_per_bit, int *num00, const struct aom_variance_vtable *fn_ptr, const struct mv *center_mv);
|
||||
#define av1_full_range_search av1_full_range_search_c
|
||||
|
||||
int av1_full_search_sad_c(const struct macroblock *x, const struct mv *ref_mv, int sad_per_bit, int distance, const struct aom_variance_vtable *fn_ptr, const struct mv *center_mv, struct mv *best_mv);
|
||||
int av1_full_search_sadx3(const struct macroblock *x, const struct mv *ref_mv, int sad_per_bit, int distance, const struct aom_variance_vtable *fn_ptr, const struct mv *center_mv, struct mv *best_mv);
|
||||
int av1_full_search_sadx8(const struct macroblock *x, const struct mv *ref_mv, int sad_per_bit, int distance, const struct aom_variance_vtable *fn_ptr, const struct mv *center_mv, struct mv *best_mv);
|
||||
RTCD_EXTERN int (*av1_full_search_sad)(const struct macroblock *x, const struct mv *ref_mv, int sad_per_bit, int distance, const struct aom_variance_vtable *fn_ptr, const struct mv *center_mv, struct mv *best_mv);
|
||||
|
||||
void av1_fwd_idtx_c(const int16_t *src_diff, tran_low_t *coeff, int stride, int bs, int tx_type);
|
||||
#define av1_fwd_idtx av1_fwd_idtx_c
|
||||
|
||||
void av1_fwd_txfm2d_16x16_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
void av1_fwd_txfm2d_16x16_sse4_1(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
RTCD_EXTERN void (*av1_fwd_txfm2d_16x16)(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
|
||||
void av1_fwd_txfm2d_16x32_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_fwd_txfm2d_16x32 av1_fwd_txfm2d_16x32_c
|
||||
|
||||
void av1_fwd_txfm2d_16x8_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_fwd_txfm2d_16x8 av1_fwd_txfm2d_16x8_c
|
||||
|
||||
void av1_fwd_txfm2d_32x16_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_fwd_txfm2d_32x16 av1_fwd_txfm2d_32x16_c
|
||||
|
||||
void av1_fwd_txfm2d_32x32_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
void av1_fwd_txfm2d_32x32_sse4_1(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
RTCD_EXTERN void (*av1_fwd_txfm2d_32x32)(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
|
||||
void av1_fwd_txfm2d_4x4_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
void av1_fwd_txfm2d_4x4_sse4_1(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
RTCD_EXTERN void (*av1_fwd_txfm2d_4x4)(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
|
||||
void av1_fwd_txfm2d_4x8_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_fwd_txfm2d_4x8 av1_fwd_txfm2d_4x8_c
|
||||
|
||||
void av1_fwd_txfm2d_64x64_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
void av1_fwd_txfm2d_64x64_sse4_1(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
RTCD_EXTERN void (*av1_fwd_txfm2d_64x64)(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
|
||||
void av1_fwd_txfm2d_8x16_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_fwd_txfm2d_8x16 av1_fwd_txfm2d_8x16_c
|
||||
|
||||
void av1_fwd_txfm2d_8x4_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_fwd_txfm2d_8x4 av1_fwd_txfm2d_8x4_c
|
||||
|
||||
void av1_fwd_txfm2d_8x8_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
void av1_fwd_txfm2d_8x8_sse4_1(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
RTCD_EXTERN void (*av1_fwd_txfm2d_8x8)(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
|
||||
void av1_fwht4x4_c(const int16_t *input, tran_low_t *output, int stride);
|
||||
#define av1_fwht4x4 av1_fwht4x4_c
|
||||
|
||||
int64_t av1_highbd_block_error_c(const tran_low_t *coeff, const tran_low_t *dqcoeff, intptr_t block_size, int64_t *ssz, int bd);
|
||||
int64_t av1_highbd_block_error_sse2(const tran_low_t *coeff, const tran_low_t *dqcoeff, intptr_t block_size, int64_t *ssz, int bd);
|
||||
RTCD_EXTERN int64_t (*av1_highbd_block_error)(const tran_low_t *coeff, const tran_low_t *dqcoeff, intptr_t block_size, int64_t *ssz, int bd);
|
||||
|
||||
void av1_highbd_convolve8_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h, int bps);
|
||||
#define av1_highbd_convolve8 av1_highbd_convolve8_c
|
||||
|
||||
void av1_highbd_convolve8_avg_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h, int bps);
|
||||
#define av1_highbd_convolve8_avg av1_highbd_convolve8_avg_c
|
||||
|
||||
void av1_highbd_convolve8_avg_horiz_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h, int bps);
|
||||
#define av1_highbd_convolve8_avg_horiz av1_highbd_convolve8_avg_horiz_c
|
||||
|
||||
void av1_highbd_convolve8_avg_vert_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h, int bps);
|
||||
#define av1_highbd_convolve8_avg_vert av1_highbd_convolve8_avg_vert_c
|
||||
|
||||
void av1_highbd_convolve8_horiz_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h, int bps);
|
||||
#define av1_highbd_convolve8_horiz av1_highbd_convolve8_horiz_c
|
||||
|
||||
void av1_highbd_convolve8_vert_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h, int bps);
|
||||
#define av1_highbd_convolve8_vert av1_highbd_convolve8_vert_c
|
||||
|
||||
void av1_highbd_convolve_avg_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h, int bps);
|
||||
#define av1_highbd_convolve_avg av1_highbd_convolve_avg_c
|
||||
|
||||
void av1_highbd_convolve_copy_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h, int bps);
|
||||
#define av1_highbd_convolve_copy av1_highbd_convolve_copy_c
|
||||
|
||||
void av1_highbd_convolve_horiz_c(const uint16_t *src, int src_stride, uint16_t *dst, int dst_stride, int w, int h, const InterpFilterParams fp, const int subpel_x_q4, int x_step_q4, int avg, int bd);
|
||||
void av1_highbd_convolve_horiz_sse4_1(const uint16_t *src, int src_stride, uint16_t *dst, int dst_stride, int w, int h, const InterpFilterParams fp, const int subpel_x_q4, int x_step_q4, int avg, int bd);
|
||||
RTCD_EXTERN void (*av1_highbd_convolve_horiz)(const uint16_t *src, int src_stride, uint16_t *dst, int dst_stride, int w, int h, const InterpFilterParams fp, const int subpel_x_q4, int x_step_q4, int avg, int bd);
|
||||
|
||||
void av1_highbd_convolve_init_c(void);
|
||||
void av1_highbd_convolve_init_sse4_1(void);
|
||||
RTCD_EXTERN void (*av1_highbd_convolve_init)(void);
|
||||
|
||||
void av1_highbd_convolve_vert_c(const uint16_t *src, int src_stride, uint16_t *dst, int dst_stride, int w, int h, const InterpFilterParams fp, const int subpel_x_q4, int x_step_q4, int avg, int bd);
|
||||
void av1_highbd_convolve_vert_sse4_1(const uint16_t *src, int src_stride, uint16_t *dst, int dst_stride, int w, int h, const InterpFilterParams fp, const int subpel_x_q4, int x_step_q4, int avg, int bd);
|
||||
RTCD_EXTERN void (*av1_highbd_convolve_vert)(const uint16_t *src, int src_stride, uint16_t *dst, int dst_stride, int w, int h, const InterpFilterParams fp, const int subpel_x_q4, int x_step_q4, int avg, int bd);
|
||||
|
||||
void av1_highbd_fwht4x4_c(const int16_t *input, tran_low_t *output, int stride);
|
||||
#define av1_highbd_fwht4x4 av1_highbd_fwht4x4_c
|
||||
|
||||
void av1_highbd_iht16x16_256_add_c(const tran_low_t *input, uint8_t *output, int pitch, const struct txfm_param *param);
|
||||
#define av1_highbd_iht16x16_256_add av1_highbd_iht16x16_256_add_c
|
||||
|
||||
void av1_highbd_iht16x32_512_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht16x32_512_add av1_highbd_iht16x32_512_add_c
|
||||
|
||||
void av1_highbd_iht16x4_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht16x4_64_add av1_highbd_iht16x4_64_add_c
|
||||
|
||||
void av1_highbd_iht16x8_128_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht16x8_128_add av1_highbd_iht16x8_128_add_c
|
||||
|
||||
void av1_highbd_iht32x16_512_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht32x16_512_add av1_highbd_iht32x16_512_add_c
|
||||
|
||||
void av1_highbd_iht32x8_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht32x8_256_add av1_highbd_iht32x8_256_add_c
|
||||
|
||||
void av1_highbd_iht4x16_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht4x16_64_add av1_highbd_iht4x16_64_add_c
|
||||
|
||||
void av1_highbd_iht4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht4x4_16_add av1_highbd_iht4x4_16_add_c
|
||||
|
||||
void av1_highbd_iht4x8_32_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht4x8_32_add av1_highbd_iht4x8_32_add_c
|
||||
|
||||
void av1_highbd_iht8x16_128_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht8x16_128_add av1_highbd_iht8x16_128_add_c
|
||||
|
||||
void av1_highbd_iht8x32_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht8x32_256_add av1_highbd_iht8x32_256_add_c
|
||||
|
||||
void av1_highbd_iht8x4_32_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht8x4_32_add av1_highbd_iht8x4_32_add_c
|
||||
|
||||
void av1_highbd_iht8x8_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht8x8_64_add av1_highbd_iht8x8_64_add_c
|
||||
|
||||
void av1_highbd_quantize_b_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan, int log_scale);
|
||||
#define av1_highbd_quantize_b av1_highbd_quantize_b_c
|
||||
|
||||
void av1_highbd_quantize_fp_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan, int log_scale);
|
||||
void av1_highbd_quantize_fp_sse4_1(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan, int log_scale);
|
||||
void av1_highbd_quantize_fp_avx2(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan, int log_scale);
|
||||
RTCD_EXTERN void (*av1_highbd_quantize_fp)(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan, int log_scale);
|
||||
|
||||
void av1_highbd_temporal_filter_apply_c(uint8_t *frame1, unsigned int stride, uint8_t *frame2, unsigned int block_width, unsigned int block_height, int strength, int filter_weight, unsigned int *accumulator, uint16_t *count);
|
||||
#define av1_highbd_temporal_filter_apply av1_highbd_temporal_filter_apply_c
|
||||
|
||||
void av1_highbd_warp_affine_c(const int32_t *mat, const uint16_t *ref, int width, int height, int stride, uint16_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, int bd, ConvolveParams *conv_params, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
void av1_highbd_warp_affine_ssse3(const int32_t *mat, const uint16_t *ref, int width, int height, int stride, uint16_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, int bd, ConvolveParams *conv_params, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
RTCD_EXTERN void (*av1_highbd_warp_affine)(const int32_t *mat, const uint16_t *ref, int width, int height, int stride, uint16_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, int bd, ConvolveParams *conv_params, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
|
||||
void av1_iht16x16_256_add_c(const tran_low_t *input, uint8_t *output, int pitch, const struct txfm_param *param);
|
||||
void av1_iht16x16_256_add_sse2(const tran_low_t *input, uint8_t *output, int pitch, const struct txfm_param *param);
|
||||
void av1_iht16x16_256_add_avx2(const tran_low_t *input, uint8_t *output, int pitch, const struct txfm_param *param);
|
||||
RTCD_EXTERN void (*av1_iht16x16_256_add)(const tran_low_t *input, uint8_t *output, int pitch, const struct txfm_param *param);
|
||||
|
||||
void av1_iht16x32_512_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
void av1_iht16x32_512_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
RTCD_EXTERN void (*av1_iht16x32_512_add)(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
|
||||
void av1_iht16x4_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht16x4_64_add av1_iht16x4_64_add_c
|
||||
|
||||
void av1_iht16x8_128_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
void av1_iht16x8_128_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
RTCD_EXTERN void (*av1_iht16x8_128_add)(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
|
||||
void av1_iht32x16_512_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
void av1_iht32x16_512_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
RTCD_EXTERN void (*av1_iht32x16_512_add)(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
|
||||
void av1_iht32x32_1024_add_c(const tran_low_t *input, uint8_t *output, int pitch, const struct txfm_param *param);
|
||||
#define av1_iht32x32_1024_add av1_iht32x32_1024_add_c
|
||||
|
||||
void av1_iht32x8_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht32x8_256_add av1_iht32x8_256_add_c
|
||||
|
||||
void av1_iht4x16_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht4x16_64_add av1_iht4x16_64_add_c
|
||||
|
||||
void av1_iht4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
void av1_iht4x4_16_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
RTCD_EXTERN void (*av1_iht4x4_16_add)(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
|
||||
void av1_iht4x8_32_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
void av1_iht4x8_32_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
RTCD_EXTERN void (*av1_iht4x8_32_add)(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
|
||||
void av1_iht8x16_128_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
void av1_iht8x16_128_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
RTCD_EXTERN void (*av1_iht8x16_128_add)(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
|
||||
void av1_iht8x32_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht8x32_256_add av1_iht8x32_256_add_c
|
||||
|
||||
void av1_iht8x4_32_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
void av1_iht8x4_32_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
RTCD_EXTERN void (*av1_iht8x4_32_add)(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
|
||||
void av1_iht8x8_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
void av1_iht8x8_64_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
RTCD_EXTERN void (*av1_iht8x8_64_add)(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
|
||||
void av1_inv_txfm2d_add_16x16_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
void av1_inv_txfm2d_add_16x16_sse4_1(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
RTCD_EXTERN void (*av1_inv_txfm2d_add_16x16)(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
|
||||
void av1_inv_txfm2d_add_16x32_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_inv_txfm2d_add_16x32 av1_inv_txfm2d_add_16x32_c
|
||||
|
||||
void av1_inv_txfm2d_add_16x8_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_inv_txfm2d_add_16x8 av1_inv_txfm2d_add_16x8_c
|
||||
|
||||
void av1_inv_txfm2d_add_32x16_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_inv_txfm2d_add_32x16 av1_inv_txfm2d_add_32x16_c
|
||||
|
||||
void av1_inv_txfm2d_add_32x32_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
void av1_inv_txfm2d_add_32x32_avx2(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
RTCD_EXTERN void (*av1_inv_txfm2d_add_32x32)(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
|
||||
void av1_inv_txfm2d_add_4x4_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
void av1_inv_txfm2d_add_4x4_sse4_1(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
RTCD_EXTERN void (*av1_inv_txfm2d_add_4x4)(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
|
||||
void av1_inv_txfm2d_add_4x8_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_inv_txfm2d_add_4x8 av1_inv_txfm2d_add_4x8_c
|
||||
|
||||
void av1_inv_txfm2d_add_64x64_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_inv_txfm2d_add_64x64 av1_inv_txfm2d_add_64x64_c
|
||||
|
||||
void av1_inv_txfm2d_add_8x16_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_inv_txfm2d_add_8x16 av1_inv_txfm2d_add_8x16_c
|
||||
|
||||
void av1_inv_txfm2d_add_8x4_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_inv_txfm2d_add_8x4 av1_inv_txfm2d_add_8x4_c
|
||||
|
||||
void av1_inv_txfm2d_add_8x8_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
void av1_inv_txfm2d_add_8x8_sse4_1(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
RTCD_EXTERN void (*av1_inv_txfm2d_add_8x8)(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
|
||||
void av1_lowbd_convolve_init_c(void);
|
||||
void av1_lowbd_convolve_init_ssse3(void);
|
||||
RTCD_EXTERN void (*av1_lowbd_convolve_init)(void);
|
||||
|
||||
void av1_quantize_b_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan, int log_scale);
|
||||
#define av1_quantize_b av1_quantize_b_c
|
||||
|
||||
void av1_quantize_fp_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
void av1_quantize_fp_sse2(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
void av1_quantize_fp_avx2(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
RTCD_EXTERN void (*av1_quantize_fp)(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
|
||||
void av1_quantize_fp_32x32_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
void av1_quantize_fp_32x32_avx2(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
RTCD_EXTERN void (*av1_quantize_fp_32x32)(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
|
||||
void av1_temporal_filter_apply_c(uint8_t *frame1, unsigned int stride, uint8_t *frame2, unsigned int block_width, unsigned int block_height, int strength, int filter_weight, unsigned int *accumulator, uint16_t *count);
|
||||
void av1_temporal_filter_apply_sse2(uint8_t *frame1, unsigned int stride, uint8_t *frame2, unsigned int block_width, unsigned int block_height, int strength, int filter_weight, unsigned int *accumulator, uint16_t *count);
|
||||
RTCD_EXTERN void (*av1_temporal_filter_apply)(uint8_t *frame1, unsigned int stride, uint8_t *frame2, unsigned int block_width, unsigned int block_height, int strength, int filter_weight, unsigned int *accumulator, uint16_t *count);
|
||||
|
||||
void av1_warp_affine_c(const int32_t *mat, const uint8_t *ref, int width, int height, int stride, uint8_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, ConvolveParams *conv_params, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
void av1_warp_affine_sse2(const int32_t *mat, const uint8_t *ref, int width, int height, int stride, uint8_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, ConvolveParams *conv_params, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
void av1_warp_affine_ssse3(const int32_t *mat, const uint8_t *ref, int width, int height, int stride, uint8_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, ConvolveParams *conv_params, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
RTCD_EXTERN void (*av1_warp_affine)(const int32_t *mat, const uint8_t *ref, int width, int height, int stride, uint8_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, ConvolveParams *conv_params, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
|
||||
void av1_wedge_compute_delta_squares_c(int16_t *d, const int16_t *a, const int16_t *b, int N);
|
||||
void av1_wedge_compute_delta_squares_sse2(int16_t *d, const int16_t *a, const int16_t *b, int N);
|
||||
RTCD_EXTERN void (*av1_wedge_compute_delta_squares)(int16_t *d, const int16_t *a, const int16_t *b, int N);
|
||||
|
||||
int av1_wedge_sign_from_residuals_c(const int16_t *ds, const uint8_t *m, int N, int64_t limit);
|
||||
int av1_wedge_sign_from_residuals_sse2(const int16_t *ds, const uint8_t *m, int N, int64_t limit);
|
||||
RTCD_EXTERN int (*av1_wedge_sign_from_residuals)(const int16_t *ds, const uint8_t *m, int N, int64_t limit);
|
||||
|
||||
uint64_t av1_wedge_sse_from_residuals_c(const int16_t *r1, const int16_t *d, const uint8_t *m, int N);
|
||||
uint64_t av1_wedge_sse_from_residuals_sse2(const int16_t *r1, const int16_t *d, const uint8_t *m, int N);
|
||||
RTCD_EXTERN uint64_t (*av1_wedge_sse_from_residuals)(const int16_t *r1, const int16_t *d, const uint8_t *m, int N);
|
||||
|
||||
double compute_cross_correlation_c(unsigned char *im1, int stride1, int x1, int y1, unsigned char *im2, int stride2, int x2, int y2);
|
||||
double compute_cross_correlation_sse4_1(unsigned char *im1, int stride1, int x1, int y1, unsigned char *im2, int stride2, int x2, int y2);
|
||||
RTCD_EXTERN double (*compute_cross_correlation)(unsigned char *im1, int stride1, int x1, int y1, unsigned char *im2, int stride2, int x2, int y2);
|
||||
|
||||
void copy_4x4_16bit_to_16bit_c(uint16_t *dst, int dstride, const uint16_t *src, int sstride);
|
||||
void copy_4x4_16bit_to_16bit_sse2(uint16_t *dst, int dstride, const uint16_t *src, int sstride);
|
||||
void copy_4x4_16bit_to_16bit_ssse3(uint16_t *dst, int dstride, const uint16_t *src, int sstride);
|
||||
void copy_4x4_16bit_to_16bit_sse4_1(uint16_t *dst, int dstride, const uint16_t *src, int sstride);
|
||||
RTCD_EXTERN void (*copy_4x4_16bit_to_16bit)(uint16_t *dst, int dstride, const uint16_t *src, int sstride);
|
||||
|
||||
void copy_4x4_16bit_to_8bit_c(uint8_t *dst, int dstride, const uint16_t *src, int sstride);
|
||||
void copy_4x4_16bit_to_8bit_sse2(uint8_t *dst, int dstride, const uint16_t *src, int sstride);
|
||||
void copy_4x4_16bit_to_8bit_ssse3(uint8_t *dst, int dstride, const uint16_t *src, int sstride);
|
||||
void copy_4x4_16bit_to_8bit_sse4_1(uint8_t *dst, int dstride, const uint16_t *src, int sstride);
|
||||
RTCD_EXTERN void (*copy_4x4_16bit_to_8bit)(uint8_t *dst, int dstride, const uint16_t *src, int sstride);
|
||||
|
||||
void copy_8x8_16bit_to_16bit_c(uint16_t *dst, int dstride, const uint16_t *src, int sstride);
|
||||
void copy_8x8_16bit_to_16bit_sse2(uint16_t *dst, int dstride, const uint16_t *src, int sstride);
|
||||
void copy_8x8_16bit_to_16bit_ssse3(uint16_t *dst, int dstride, const uint16_t *src, int sstride);
|
||||
void copy_8x8_16bit_to_16bit_sse4_1(uint16_t *dst, int dstride, const uint16_t *src, int sstride);
|
||||
RTCD_EXTERN void (*copy_8x8_16bit_to_16bit)(uint16_t *dst, int dstride, const uint16_t *src, int sstride);
|
||||
|
||||
void copy_8x8_16bit_to_8bit_c(uint8_t *dst, int dstride, const uint16_t *src, int sstride);
|
||||
void copy_8x8_16bit_to_8bit_sse2(uint8_t *dst, int dstride, const uint16_t *src, int sstride);
|
||||
void copy_8x8_16bit_to_8bit_ssse3(uint8_t *dst, int dstride, const uint16_t *src, int sstride);
|
||||
void copy_8x8_16bit_to_8bit_sse4_1(uint8_t *dst, int dstride, const uint16_t *src, int sstride);
|
||||
RTCD_EXTERN void (*copy_8x8_16bit_to_8bit)(uint8_t *dst, int dstride, const uint16_t *src, int sstride);
|
||||
|
||||
void copy_rect8_16bit_to_16bit_c(uint16_t *dst, int dstride, const uint16_t *src, int sstride, int v, int h);
|
||||
void copy_rect8_16bit_to_16bit_sse2(uint16_t *dst, int dstride, const uint16_t *src, int sstride, int v, int h);
|
||||
void copy_rect8_16bit_to_16bit_ssse3(uint16_t *dst, int dstride, const uint16_t *src, int sstride, int v, int h);
|
||||
void copy_rect8_16bit_to_16bit_sse4_1(uint16_t *dst, int dstride, const uint16_t *src, int sstride, int v, int h);
|
||||
RTCD_EXTERN void (*copy_rect8_16bit_to_16bit)(uint16_t *dst, int dstride, const uint16_t *src, int sstride, int v, int h);
|
||||
|
||||
void copy_rect8_8bit_to_16bit_c(uint16_t *dst, int dstride, const uint8_t *src, int sstride, int v, int h);
|
||||
void copy_rect8_8bit_to_16bit_sse2(uint16_t *dst, int dstride, const uint8_t *src, int sstride, int v, int h);
|
||||
void copy_rect8_8bit_to_16bit_ssse3(uint16_t *dst, int dstride, const uint8_t *src, int sstride, int v, int h);
|
||||
void copy_rect8_8bit_to_16bit_sse4_1(uint16_t *dst, int dstride, const uint8_t *src, int sstride, int v, int h);
|
||||
RTCD_EXTERN void (*copy_rect8_8bit_to_16bit)(uint16_t *dst, int dstride, const uint8_t *src, int sstride, int v, int h);
|
||||
|
||||
int od_dir_find8_c(const od_dering_in *img, int stride, int32_t *var, int coeff_shift);
|
||||
int od_dir_find8_sse2(const od_dering_in *img, int stride, int32_t *var, int coeff_shift);
|
||||
int od_dir_find8_ssse3(const od_dering_in *img, int stride, int32_t *var, int coeff_shift);
|
||||
int od_dir_find8_sse4_1(const od_dering_in *img, int stride, int32_t *var, int coeff_shift);
|
||||
RTCD_EXTERN int (*od_dir_find8)(const od_dering_in *img, int stride, int32_t *var, int coeff_shift);
|
||||
|
||||
void od_filter_dering_direction_4x4_c(uint16_t *y, int ystride, const uint16_t *in, int threshold, int dir, int damping);
|
||||
void od_filter_dering_direction_4x4_sse2(uint16_t *y, int ystride, const uint16_t *in, int threshold, int dir, int damping);
|
||||
void od_filter_dering_direction_4x4_ssse3(uint16_t *y, int ystride, const uint16_t *in, int threshold, int dir, int damping);
|
||||
void od_filter_dering_direction_4x4_sse4_1(uint16_t *y, int ystride, const uint16_t *in, int threshold, int dir, int damping);
|
||||
RTCD_EXTERN void (*od_filter_dering_direction_4x4)(uint16_t *y, int ystride, const uint16_t *in, int threshold, int dir, int damping);
|
||||
|
||||
void od_filter_dering_direction_8x8_c(uint16_t *y, int ystride, const uint16_t *in, int threshold, int dir, int damping);
|
||||
void od_filter_dering_direction_8x8_sse2(uint16_t *y, int ystride, const uint16_t *in, int threshold, int dir, int damping);
|
||||
void od_filter_dering_direction_8x8_ssse3(uint16_t *y, int ystride, const uint16_t *in, int threshold, int dir, int damping);
|
||||
void od_filter_dering_direction_8x8_sse4_1(uint16_t *y, int ystride, const uint16_t *in, int threshold, int dir, int damping);
|
||||
RTCD_EXTERN void (*od_filter_dering_direction_8x8)(uint16_t *y, int ystride, const uint16_t *in, int threshold, int dir, int damping);
|
||||
|
||||
void aom_rtcd(void);
|
||||
|
||||
#ifdef RTCD_C
|
||||
#include "aom_ports/x86.h"
|
||||
static void setup_rtcd_internal(void)
|
||||
{
|
||||
int flags = x86_simd_caps();
|
||||
|
||||
(void)flags;
|
||||
|
||||
aom_clpf_block = aom_clpf_block_c;
|
||||
if (flags & HAS_SSE2) aom_clpf_block = aom_clpf_block_sse2;
|
||||
if (flags & HAS_SSSE3) aom_clpf_block = aom_clpf_block_ssse3;
|
||||
if (flags & HAS_SSE4_1) aom_clpf_block = aom_clpf_block_sse4_1;
|
||||
aom_clpf_block_hbd = aom_clpf_block_hbd_c;
|
||||
if (flags & HAS_SSE2) aom_clpf_block_hbd = aom_clpf_block_hbd_sse2;
|
||||
if (flags & HAS_SSSE3) aom_clpf_block_hbd = aom_clpf_block_hbd_ssse3;
|
||||
if (flags & HAS_SSE4_1) aom_clpf_block_hbd = aom_clpf_block_hbd_sse4_1;
|
||||
aom_clpf_hblock = aom_clpf_hblock_c;
|
||||
if (flags & HAS_SSE2) aom_clpf_hblock = aom_clpf_hblock_sse2;
|
||||
if (flags & HAS_SSSE3) aom_clpf_hblock = aom_clpf_hblock_ssse3;
|
||||
if (flags & HAS_SSE4_1) aom_clpf_hblock = aom_clpf_hblock_sse4_1;
|
||||
aom_clpf_hblock_hbd = aom_clpf_hblock_hbd_c;
|
||||
if (flags & HAS_SSE2) aom_clpf_hblock_hbd = aom_clpf_hblock_hbd_sse2;
|
||||
if (flags & HAS_SSSE3) aom_clpf_hblock_hbd = aom_clpf_hblock_hbd_ssse3;
|
||||
if (flags & HAS_SSE4_1) aom_clpf_hblock_hbd = aom_clpf_hblock_hbd_sse4_1;
|
||||
av1_block_error = av1_block_error_c;
|
||||
if (flags & HAS_AVX2) av1_block_error = av1_block_error_avx2;
|
||||
av1_convolve_horiz = av1_convolve_horiz_c;
|
||||
if (flags & HAS_SSSE3) av1_convolve_horiz = av1_convolve_horiz_ssse3;
|
||||
av1_convolve_vert = av1_convolve_vert_c;
|
||||
if (flags & HAS_SSSE3) av1_convolve_vert = av1_convolve_vert_ssse3;
|
||||
av1_fht16x16 = av1_fht16x16_c;
|
||||
if (flags & HAS_SSE2) av1_fht16x16 = av1_fht16x16_sse2;
|
||||
if (flags & HAS_AVX2) av1_fht16x16 = av1_fht16x16_avx2;
|
||||
av1_fht16x32 = av1_fht16x32_c;
|
||||
if (flags & HAS_SSE2) av1_fht16x32 = av1_fht16x32_sse2;
|
||||
av1_fht16x8 = av1_fht16x8_c;
|
||||
if (flags & HAS_SSE2) av1_fht16x8 = av1_fht16x8_sse2;
|
||||
av1_fht32x16 = av1_fht32x16_c;
|
||||
if (flags & HAS_SSE2) av1_fht32x16 = av1_fht32x16_sse2;
|
||||
av1_fht32x32 = av1_fht32x32_c;
|
||||
if (flags & HAS_SSE2) av1_fht32x32 = av1_fht32x32_sse2;
|
||||
if (flags & HAS_AVX2) av1_fht32x32 = av1_fht32x32_avx2;
|
||||
av1_fht4x4 = av1_fht4x4_c;
|
||||
if (flags & HAS_SSE2) av1_fht4x4 = av1_fht4x4_sse2;
|
||||
av1_fht4x8 = av1_fht4x8_c;
|
||||
if (flags & HAS_SSE2) av1_fht4x8 = av1_fht4x8_sse2;
|
||||
av1_fht8x16 = av1_fht8x16_c;
|
||||
if (flags & HAS_SSE2) av1_fht8x16 = av1_fht8x16_sse2;
|
||||
av1_fht8x4 = av1_fht8x4_c;
|
||||
if (flags & HAS_SSE2) av1_fht8x4 = av1_fht8x4_sse2;
|
||||
av1_fht8x8 = av1_fht8x8_c;
|
||||
if (flags & HAS_SSE2) av1_fht8x8 = av1_fht8x8_sse2;
|
||||
av1_full_search_sad = av1_full_search_sad_c;
|
||||
if (flags & HAS_SSE3) av1_full_search_sad = av1_full_search_sadx3;
|
||||
if (flags & HAS_SSE4_1) av1_full_search_sad = av1_full_search_sadx8;
|
||||
av1_fwd_txfm2d_16x16 = av1_fwd_txfm2d_16x16_c;
|
||||
if (flags & HAS_SSE4_1) av1_fwd_txfm2d_16x16 = av1_fwd_txfm2d_16x16_sse4_1;
|
||||
av1_fwd_txfm2d_32x32 = av1_fwd_txfm2d_32x32_c;
|
||||
if (flags & HAS_SSE4_1) av1_fwd_txfm2d_32x32 = av1_fwd_txfm2d_32x32_sse4_1;
|
||||
av1_fwd_txfm2d_4x4 = av1_fwd_txfm2d_4x4_c;
|
||||
if (flags & HAS_SSE4_1) av1_fwd_txfm2d_4x4 = av1_fwd_txfm2d_4x4_sse4_1;
|
||||
av1_fwd_txfm2d_64x64 = av1_fwd_txfm2d_64x64_c;
|
||||
if (flags & HAS_SSE4_1) av1_fwd_txfm2d_64x64 = av1_fwd_txfm2d_64x64_sse4_1;
|
||||
av1_fwd_txfm2d_8x8 = av1_fwd_txfm2d_8x8_c;
|
||||
if (flags & HAS_SSE4_1) av1_fwd_txfm2d_8x8 = av1_fwd_txfm2d_8x8_sse4_1;
|
||||
av1_highbd_block_error = av1_highbd_block_error_c;
|
||||
if (flags & HAS_SSE2) av1_highbd_block_error = av1_highbd_block_error_sse2;
|
||||
av1_highbd_convolve_horiz = av1_highbd_convolve_horiz_c;
|
||||
if (flags & HAS_SSE4_1) av1_highbd_convolve_horiz = av1_highbd_convolve_horiz_sse4_1;
|
||||
av1_highbd_convolve_init = av1_highbd_convolve_init_c;
|
||||
if (flags & HAS_SSE4_1) av1_highbd_convolve_init = av1_highbd_convolve_init_sse4_1;
|
||||
av1_highbd_convolve_vert = av1_highbd_convolve_vert_c;
|
||||
if (flags & HAS_SSE4_1) av1_highbd_convolve_vert = av1_highbd_convolve_vert_sse4_1;
|
||||
av1_highbd_quantize_fp = av1_highbd_quantize_fp_c;
|
||||
if (flags & HAS_SSE4_1) av1_highbd_quantize_fp = av1_highbd_quantize_fp_sse4_1;
|
||||
if (flags & HAS_AVX2) av1_highbd_quantize_fp = av1_highbd_quantize_fp_avx2;
|
||||
av1_highbd_warp_affine = av1_highbd_warp_affine_c;
|
||||
if (flags & HAS_SSSE3) av1_highbd_warp_affine = av1_highbd_warp_affine_ssse3;
|
||||
av1_iht16x16_256_add = av1_iht16x16_256_add_c;
|
||||
if (flags & HAS_SSE2) av1_iht16x16_256_add = av1_iht16x16_256_add_sse2;
|
||||
if (flags & HAS_AVX2) av1_iht16x16_256_add = av1_iht16x16_256_add_avx2;
|
||||
av1_iht16x32_512_add = av1_iht16x32_512_add_c;
|
||||
if (flags & HAS_SSE2) av1_iht16x32_512_add = av1_iht16x32_512_add_sse2;
|
||||
av1_iht16x8_128_add = av1_iht16x8_128_add_c;
|
||||
if (flags & HAS_SSE2) av1_iht16x8_128_add = av1_iht16x8_128_add_sse2;
|
||||
av1_iht32x16_512_add = av1_iht32x16_512_add_c;
|
||||
if (flags & HAS_SSE2) av1_iht32x16_512_add = av1_iht32x16_512_add_sse2;
|
||||
av1_iht4x4_16_add = av1_iht4x4_16_add_c;
|
||||
if (flags & HAS_SSE2) av1_iht4x4_16_add = av1_iht4x4_16_add_sse2;
|
||||
av1_iht4x8_32_add = av1_iht4x8_32_add_c;
|
||||
if (flags & HAS_SSE2) av1_iht4x8_32_add = av1_iht4x8_32_add_sse2;
|
||||
av1_iht8x16_128_add = av1_iht8x16_128_add_c;
|
||||
if (flags & HAS_SSE2) av1_iht8x16_128_add = av1_iht8x16_128_add_sse2;
|
||||
av1_iht8x4_32_add = av1_iht8x4_32_add_c;
|
||||
if (flags & HAS_SSE2) av1_iht8x4_32_add = av1_iht8x4_32_add_sse2;
|
||||
av1_iht8x8_64_add = av1_iht8x8_64_add_c;
|
||||
if (flags & HAS_SSE2) av1_iht8x8_64_add = av1_iht8x8_64_add_sse2;
|
||||
av1_inv_txfm2d_add_16x16 = av1_inv_txfm2d_add_16x16_c;
|
||||
if (flags & HAS_SSE4_1) av1_inv_txfm2d_add_16x16 = av1_inv_txfm2d_add_16x16_sse4_1;
|
||||
av1_inv_txfm2d_add_32x32 = av1_inv_txfm2d_add_32x32_c;
|
||||
if (flags & HAS_AVX2) av1_inv_txfm2d_add_32x32 = av1_inv_txfm2d_add_32x32_avx2;
|
||||
av1_inv_txfm2d_add_4x4 = av1_inv_txfm2d_add_4x4_c;
|
||||
if (flags & HAS_SSE4_1) av1_inv_txfm2d_add_4x4 = av1_inv_txfm2d_add_4x4_sse4_1;
|
||||
av1_inv_txfm2d_add_8x8 = av1_inv_txfm2d_add_8x8_c;
|
||||
if (flags & HAS_SSE4_1) av1_inv_txfm2d_add_8x8 = av1_inv_txfm2d_add_8x8_sse4_1;
|
||||
av1_lowbd_convolve_init = av1_lowbd_convolve_init_c;
|
||||
if (flags & HAS_SSSE3) av1_lowbd_convolve_init = av1_lowbd_convolve_init_ssse3;
|
||||
av1_quantize_fp = av1_quantize_fp_c;
|
||||
if (flags & HAS_SSE2) av1_quantize_fp = av1_quantize_fp_sse2;
|
||||
if (flags & HAS_AVX2) av1_quantize_fp = av1_quantize_fp_avx2;
|
||||
av1_quantize_fp_32x32 = av1_quantize_fp_32x32_c;
|
||||
if (flags & HAS_AVX2) av1_quantize_fp_32x32 = av1_quantize_fp_32x32_avx2;
|
||||
av1_temporal_filter_apply = av1_temporal_filter_apply_c;
|
||||
if (flags & HAS_SSE2) av1_temporal_filter_apply = av1_temporal_filter_apply_sse2;
|
||||
av1_warp_affine = av1_warp_affine_c;
|
||||
if (flags & HAS_SSE2) av1_warp_affine = av1_warp_affine_sse2;
|
||||
if (flags & HAS_SSSE3) av1_warp_affine = av1_warp_affine_ssse3;
|
||||
av1_wedge_compute_delta_squares = av1_wedge_compute_delta_squares_c;
|
||||
if (flags & HAS_SSE2) av1_wedge_compute_delta_squares = av1_wedge_compute_delta_squares_sse2;
|
||||
av1_wedge_sign_from_residuals = av1_wedge_sign_from_residuals_c;
|
||||
if (flags & HAS_SSE2) av1_wedge_sign_from_residuals = av1_wedge_sign_from_residuals_sse2;
|
||||
av1_wedge_sse_from_residuals = av1_wedge_sse_from_residuals_c;
|
||||
if (flags & HAS_SSE2) av1_wedge_sse_from_residuals = av1_wedge_sse_from_residuals_sse2;
|
||||
compute_cross_correlation = compute_cross_correlation_c;
|
||||
if (flags & HAS_SSE4_1) compute_cross_correlation = compute_cross_correlation_sse4_1;
|
||||
copy_4x4_16bit_to_16bit = copy_4x4_16bit_to_16bit_c;
|
||||
if (flags & HAS_SSE2) copy_4x4_16bit_to_16bit = copy_4x4_16bit_to_16bit_sse2;
|
||||
if (flags & HAS_SSSE3) copy_4x4_16bit_to_16bit = copy_4x4_16bit_to_16bit_ssse3;
|
||||
if (flags & HAS_SSE4_1) copy_4x4_16bit_to_16bit = copy_4x4_16bit_to_16bit_sse4_1;
|
||||
copy_4x4_16bit_to_8bit = copy_4x4_16bit_to_8bit_c;
|
||||
if (flags & HAS_SSE2) copy_4x4_16bit_to_8bit = copy_4x4_16bit_to_8bit_sse2;
|
||||
if (flags & HAS_SSSE3) copy_4x4_16bit_to_8bit = copy_4x4_16bit_to_8bit_ssse3;
|
||||
if (flags & HAS_SSE4_1) copy_4x4_16bit_to_8bit = copy_4x4_16bit_to_8bit_sse4_1;
|
||||
copy_8x8_16bit_to_16bit = copy_8x8_16bit_to_16bit_c;
|
||||
if (flags & HAS_SSE2) copy_8x8_16bit_to_16bit = copy_8x8_16bit_to_16bit_sse2;
|
||||
if (flags & HAS_SSSE3) copy_8x8_16bit_to_16bit = copy_8x8_16bit_to_16bit_ssse3;
|
||||
if (flags & HAS_SSE4_1) copy_8x8_16bit_to_16bit = copy_8x8_16bit_to_16bit_sse4_1;
|
||||
copy_8x8_16bit_to_8bit = copy_8x8_16bit_to_8bit_c;
|
||||
if (flags & HAS_SSE2) copy_8x8_16bit_to_8bit = copy_8x8_16bit_to_8bit_sse2;
|
||||
if (flags & HAS_SSSE3) copy_8x8_16bit_to_8bit = copy_8x8_16bit_to_8bit_ssse3;
|
||||
if (flags & HAS_SSE4_1) copy_8x8_16bit_to_8bit = copy_8x8_16bit_to_8bit_sse4_1;
|
||||
copy_rect8_16bit_to_16bit = copy_rect8_16bit_to_16bit_c;
|
||||
if (flags & HAS_SSE2) copy_rect8_16bit_to_16bit = copy_rect8_16bit_to_16bit_sse2;
|
||||
if (flags & HAS_SSSE3) copy_rect8_16bit_to_16bit = copy_rect8_16bit_to_16bit_ssse3;
|
||||
if (flags & HAS_SSE4_1) copy_rect8_16bit_to_16bit = copy_rect8_16bit_to_16bit_sse4_1;
|
||||
copy_rect8_8bit_to_16bit = copy_rect8_8bit_to_16bit_c;
|
||||
if (flags & HAS_SSE2) copy_rect8_8bit_to_16bit = copy_rect8_8bit_to_16bit_sse2;
|
||||
if (flags & HAS_SSSE3) copy_rect8_8bit_to_16bit = copy_rect8_8bit_to_16bit_ssse3;
|
||||
if (flags & HAS_SSE4_1) copy_rect8_8bit_to_16bit = copy_rect8_8bit_to_16bit_sse4_1;
|
||||
od_dir_find8 = od_dir_find8_c;
|
||||
if (flags & HAS_SSE2) od_dir_find8 = od_dir_find8_sse2;
|
||||
if (flags & HAS_SSSE3) od_dir_find8 = od_dir_find8_ssse3;
|
||||
if (flags & HAS_SSE4_1) od_dir_find8 = od_dir_find8_sse4_1;
|
||||
od_filter_dering_direction_4x4 = od_filter_dering_direction_4x4_c;
|
||||
if (flags & HAS_SSE2) od_filter_dering_direction_4x4 = od_filter_dering_direction_4x4_sse2;
|
||||
if (flags & HAS_SSSE3) od_filter_dering_direction_4x4 = od_filter_dering_direction_4x4_ssse3;
|
||||
if (flags & HAS_SSE4_1) od_filter_dering_direction_4x4 = od_filter_dering_direction_4x4_sse4_1;
|
||||
od_filter_dering_direction_8x8 = od_filter_dering_direction_8x8_c;
|
||||
if (flags & HAS_SSE2) od_filter_dering_direction_8x8 = od_filter_dering_direction_8x8_sse2;
|
||||
if (flags & HAS_SSSE3) od_filter_dering_direction_8x8 = od_filter_dering_direction_8x8_ssse3;
|
||||
if (flags & HAS_SSE4_1) od_filter_dering_direction_8x8 = od_filter_dering_direction_8x8_sse4_1;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
} // extern "C"
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
@ -1,146 +1,163 @@
|
|||
%define ARCH_ARM 0
|
||||
%define ARCH_MIPS 0
|
||||
%define ARCH_X86 0
|
||||
%define ARCH_X86_64 1
|
||||
%define HAVE_NEON 0
|
||||
%define HAVE_NEON_ASM 0
|
||||
%define HAVE_MIPS32 0
|
||||
%define HAVE_DSPR2 0
|
||||
%define HAVE_MSA 0
|
||||
%define HAVE_MIPS64 0
|
||||
%define HAVE_MMX 1
|
||||
%define HAVE_SSE 1
|
||||
%define HAVE_SSE2 1
|
||||
%define HAVE_SSE3 1
|
||||
%define HAVE_SSSE3 1
|
||||
%define HAVE_SSE4_1 1
|
||||
%define HAVE_AVX 1
|
||||
%define HAVE_AVX2 1
|
||||
%define HAVE_AOM_PORTS 1
|
||||
%define HAVE_FEXCEPT 1
|
||||
%define HAVE_PTHREAD_H 0
|
||||
%define HAVE_WXWIDGETS 0
|
||||
%define CONFIG_DEPENDENCY_TRACKING 1
|
||||
%define CONFIG_EXTERNAL_BUILD 1
|
||||
%define CONFIG_INSTALL_DOCS 1
|
||||
%define CONFIG_INSTALL_BINS 1
|
||||
%define CONFIG_INSTALL_LIBS 1
|
||||
%define CONFIG_INSTALL_SRCS 0
|
||||
%define CONFIG_DEBUG 0
|
||||
%define CONFIG_GPROF 0
|
||||
%define CONFIG_GCOV 0
|
||||
%define CONFIG_RVCT 0
|
||||
%define CONFIG_GCC 0
|
||||
%define CONFIG_MSVS 1
|
||||
%define CONFIG_PIC 1
|
||||
%define CONFIG_BIG_ENDIAN 0
|
||||
%define CONFIG_CODEC_SRCS 0
|
||||
%define CONFIG_DEBUG_LIBS 0
|
||||
%define CONFIG_RUNTIME_CPU_DETECT 1
|
||||
%define CONFIG_POSTPROC 1
|
||||
%define CONFIG_MULTITHREAD 1
|
||||
%define CONFIG_INTERNAL_STATS 0
|
||||
%define CONFIG_AV1_ENCODER 1
|
||||
%define CONFIG_AV1_DECODER 1
|
||||
%define CONFIG_AV1 1
|
||||
%define CONFIG_STATIC_MSVCRT 0
|
||||
%define CONFIG_SPATIAL_RESAMPLING 1
|
||||
%define CONFIG_REALTIME_ONLY 0
|
||||
%define CONFIG_ONTHEFLY_BITPACKING 0
|
||||
%define CONFIG_ERROR_CONCEALMENT 0
|
||||
%define CONFIG_SHARED 0
|
||||
%define CONFIG_STATIC 1
|
||||
%define CONFIG_SMALL 0
|
||||
%define CONFIG_POSTPROC_VISUALIZER 0
|
||||
%define CONFIG_OS_SUPPORT 1
|
||||
%define CONFIG_UNIT_TESTS 0
|
||||
%define CONFIG_WEBM_IO 1
|
||||
%define CONFIG_LIBYUV 1
|
||||
%define CONFIG_ACCOUNTING 0
|
||||
%define CONFIG_INSPECTION 0
|
||||
%define CONFIG_DECODE_PERF_TESTS 0
|
||||
%define CONFIG_ENCODE_PERF_TESTS 0
|
||||
%define CONFIG_COEFFICIENT_RANGE_CHECKING 0
|
||||
%define CONFIG_LOWBITDEPTH 1
|
||||
%define CONFIG_HIGHBITDEPTH 1
|
||||
%define CONFIG_EXPERIMENTAL 0
|
||||
%define CONFIG_SIZE_LIMIT 1
|
||||
%define CONFIG_FP_MB_STATS 0
|
||||
%define CONFIG_CDEF 1
|
||||
%define CONFIG_VAR_TX 1
|
||||
%define CONFIG_RECT_TX 1
|
||||
%define CONFIG_RECT_TX_EXT 0
|
||||
%define CONFIG_TPL_MV 0
|
||||
%define CONFIG_DUAL_FILTER 1
|
||||
%define CONFIG_CONVOLVE_ROUND 0
|
||||
%define CONFIG_COMPOUND_ROUND 0
|
||||
%define CONFIG_EXT_TX 1
|
||||
%define CONFIG_DPCM_INTRA 0
|
||||
%define CONFIG_TX64X64 0
|
||||
%define CONFIG_EXT_INTRA 1
|
||||
%define CONFIG_INTRA_INTERP 0
|
||||
%define CONFIG_FILTER_INTRA 0
|
||||
%define CONFIG_INTRA_EDGE 0
|
||||
%define CONFIG_INTRABC 0
|
||||
%define CONFIG_EXT_INTER 1
|
||||
%define CONFIG_INTERINTRA 1
|
||||
%define CONFIG_WEDGE 1
|
||||
%define CONFIG_COMPOUND_SEGMENT 1
|
||||
%define CONFIG_EXT_REFS 1
|
||||
%define CONFIG_GLOBAL_MOTION 1
|
||||
%define CONFIG_NEW_QUANT 0
|
||||
%define CONFIG_SUPERTX 0
|
||||
%define CONFIG_ANS 0
|
||||
%define CONFIG_LOOP_RESTORATION 0
|
||||
%define CONFIG_EXT_PARTITION 0
|
||||
%define CONFIG_EXT_PARTITION_TYPES 0
|
||||
%define CONFIG_UNPOISON_PARTITION_CTX 0
|
||||
%define CONFIG_EXT_TILE 0
|
||||
%define CONFIG_MOTION_VAR 1
|
||||
%define CONFIG_NCOBMC 0
|
||||
%define CONFIG_WARPED_MOTION 1
|
||||
%define CONFIG_Q_ADAPT_PROBS 0
|
||||
%define CONFIG_BITSTREAM_DEBUG 0
|
||||
%define CONFIG_ALT_INTRA 1
|
||||
%define CONFIG_PALETTE 1
|
||||
%define CONFIG_PALETTE_DELTA_ENCODING 0
|
||||
%define CONFIG_RAWBITS 0
|
||||
%define CONFIG_EC_SMALLMUL 1
|
||||
%define CONFIG_PVQ 0
|
||||
%define CONFIG_CFL 0
|
||||
%define CONFIG_XIPHRC 0
|
||||
%define CONFIG_CB4X4 1
|
||||
%define CONFIG_CHROMA_2X2 0
|
||||
%define CONFIG_CHROMA_SUB8X8 1
|
||||
%define CONFIG_FRAME_SIZE 0
|
||||
%define CONFIG_DELTA_Q 1
|
||||
%define CONFIG_EXT_DELTA_Q 1
|
||||
%define CONFIG_ADAPT_SCAN 0
|
||||
%define CONFIG_FILTER_7BIT 1
|
||||
%define CONFIG_PARALLEL_DEBLOCKING 0
|
||||
%define CONFIG_PARALLEL_DEBLOCKING_15TAP 0
|
||||
%define CONFIG_LOOPFILTERING_ACROSS_TILES 1
|
||||
%define CONFIG_TILE_GROUPS 1
|
||||
%define CONFIG_EC_ADAPT 1
|
||||
%define CONFIG_TEMPMV_SIGNALING 1
|
||||
%define CONFIG_RD_DEBUG 0
|
||||
%define CONFIG_REFERENCE_BUFFER 1
|
||||
%define CONFIG_COEF_INTERLEAVE 0
|
||||
%define CONFIG_ENTROPY_STATS 0
|
||||
%define CONFIG_MASKED_TX 0
|
||||
%define CONFIG_DEPENDENT_HORZTILES 0
|
||||
%define CONFIG_DAALA_DIST 0
|
||||
%define CONFIG_TRIPRED 0
|
||||
%define CONFIG_PALETTE_THROUGHPUT 1
|
||||
%define CONFIG_REF_ADAPT 0
|
||||
%define CONFIG_LV_MAP 0
|
||||
%define CONFIG_TXK_SEL 0
|
||||
%define CONFIG_MV_COMPRESS 1
|
||||
%define CONFIG_FRAME_SUPERRES 0
|
||||
%define CONFIG_NEW_MULTISYMBOL 0
|
||||
%define CONFIG_COMPOUND_SINGLEREF 0
|
||||
%define CONFIG_AOM_QM 0
|
||||
%define CONFIG_ONE_SIDED_COMPOUND 1
|
||||
%define CONFIG_SMOOTH_HV 0
|
||||
%define CONFIG_VAR_REFS 0
|
||||
%define CONFIG_ANALYZER 0
|
||||
ARCH_ARM equ 0
|
||||
ARCH_MIPS equ 0
|
||||
ARCH_X86 equ 0
|
||||
ARCH_X86_64 equ 1
|
||||
HAVE_NEON equ 0
|
||||
HAVE_NEON_ASM equ 0
|
||||
HAVE_MIPS32 equ 0
|
||||
HAVE_DSPR2 equ 0
|
||||
HAVE_MSA equ 0
|
||||
HAVE_MIPS64 equ 0
|
||||
HAVE_MMX equ 1
|
||||
HAVE_SSE equ 1
|
||||
HAVE_SSE2 equ 1
|
||||
HAVE_SSE3 equ 1
|
||||
HAVE_SSSE3 equ 1
|
||||
HAVE_SSE4_1 equ 1
|
||||
HAVE_AVX equ 1
|
||||
HAVE_AVX2 equ 1
|
||||
HAVE_AOM_PORTS equ 1
|
||||
HAVE_FEXCEPT equ 1
|
||||
HAVE_PTHREAD_H equ 0
|
||||
HAVE_WXWIDGETS equ 0
|
||||
CONFIG_DEPENDENCY_TRACKING equ 1
|
||||
CONFIG_EXTERNAL_BUILD equ 1
|
||||
CONFIG_INSTALL_DOCS equ 1
|
||||
CONFIG_INSTALL_BINS equ 1
|
||||
CONFIG_INSTALL_LIBS equ 1
|
||||
CONFIG_INSTALL_SRCS equ 0
|
||||
CONFIG_DEBUG equ 0
|
||||
CONFIG_GPROF equ 0
|
||||
CONFIG_GCOV equ 0
|
||||
CONFIG_RVCT equ 0
|
||||
CONFIG_GCC equ 0
|
||||
CONFIG_MSVS equ 1
|
||||
CONFIG_PIC equ 1
|
||||
CONFIG_BIG_ENDIAN equ 0
|
||||
CONFIG_CODEC_SRCS equ 0
|
||||
CONFIG_DEBUG_LIBS equ 0
|
||||
CONFIG_RUNTIME_CPU_DETECT equ 1
|
||||
CONFIG_POSTPROC equ 1
|
||||
CONFIG_MULTITHREAD equ 1
|
||||
CONFIG_INTERNAL_STATS equ 0
|
||||
CONFIG_AV1_ENCODER equ 1
|
||||
CONFIG_AV1_DECODER equ 1
|
||||
CONFIG_AV1 equ 1
|
||||
CONFIG_STATIC_MSVCRT equ 0
|
||||
CONFIG_SPATIAL_RESAMPLING equ 1
|
||||
CONFIG_REALTIME_ONLY equ 0
|
||||
CONFIG_ONTHEFLY_BITPACKING equ 0
|
||||
CONFIG_ERROR_CONCEALMENT equ 0
|
||||
CONFIG_SHARED equ 0
|
||||
CONFIG_STATIC equ 1
|
||||
CONFIG_SMALL equ 0
|
||||
CONFIG_POSTPROC_VISUALIZER equ 0
|
||||
CONFIG_OS_SUPPORT equ 1
|
||||
CONFIG_UNIT_TESTS equ 0
|
||||
CONFIG_WEBM_IO equ 1
|
||||
CONFIG_LIBYUV equ 1
|
||||
CONFIG_ACCOUNTING equ 0
|
||||
CONFIG_INSPECTION equ 0
|
||||
CONFIG_DECODE_PERF_TESTS equ 0
|
||||
CONFIG_ENCODE_PERF_TESTS equ 0
|
||||
CONFIG_COEFFICIENT_RANGE_CHECKING equ 0
|
||||
CONFIG_LOWBITDEPTH equ 1
|
||||
CONFIG_HIGHBITDEPTH equ 1
|
||||
CONFIG_EXPERIMENTAL equ 0
|
||||
CONFIG_SIZE_LIMIT equ 1
|
||||
CONFIG_COLORSPACE_HEADERS equ 0
|
||||
CONFIG_FP_MB_STATS equ 0
|
||||
CONFIG_CDEF equ 1
|
||||
CONFIG_VAR_TX equ 1
|
||||
CONFIG_RECT_TX equ 1
|
||||
CONFIG_RECT_TX_EXT equ 0
|
||||
CONFIG_TPL_MV equ 0
|
||||
CONFIG_DUAL_FILTER equ 1
|
||||
CONFIG_CONVOLVE_ROUND equ 0
|
||||
CONFIG_COMPOUND_ROUND equ 0
|
||||
CONFIG_EXT_TX equ 1
|
||||
CONFIG_DPCM_INTRA equ 0
|
||||
CONFIG_TX64X64 equ 0
|
||||
CONFIG_EXT_INTRA equ 1
|
||||
CONFIG_INTRA_INTERP equ 0
|
||||
CONFIG_FILTER_INTRA equ 0
|
||||
CONFIG_INTRA_EDGE equ 0
|
||||
CONFIG_INTRABC equ 0
|
||||
CONFIG_EXT_INTER equ 1
|
||||
CONFIG_INTERINTRA equ 1
|
||||
CONFIG_WEDGE equ 1
|
||||
CONFIG_COMPOUND_SEGMENT equ 1
|
||||
CONFIG_EXT_REFS equ 1
|
||||
CONFIG_ALTREF2 equ 0
|
||||
CONFIG_SPEED_REFS equ 0
|
||||
CONFIG_GF_GROUPS equ 0
|
||||
CONFIG_FLEX_REFS equ 0
|
||||
CONFIG_GLOBAL_MOTION equ 1
|
||||
CONFIG_NEW_QUANT equ 0
|
||||
CONFIG_SUPERTX equ 0
|
||||
CONFIG_ANS equ 0
|
||||
CONFIG_LOOP_RESTORATION equ 0
|
||||
CONFIG_EXT_PARTITION equ 0
|
||||
CONFIG_EXT_PARTITION_TYPES equ 0
|
||||
CONFIG_UNPOISON_PARTITION_CTX equ 0
|
||||
CONFIG_EXT_TILE equ 0
|
||||
CONFIG_MOTION_VAR equ 1
|
||||
CONFIG_NCOBMC equ 0
|
||||
CONFIG_WARPED_MOTION equ 1
|
||||
CONFIG_Q_ADAPT_PROBS equ 0
|
||||
CONFIG_BITSTREAM_DEBUG equ 0
|
||||
CONFIG_INTER_STATS_ONLY equ 0
|
||||
CONFIG_ALT_INTRA equ 1
|
||||
CONFIG_PALETTE equ 1
|
||||
CONFIG_PALETTE_DELTA_ENCODING equ 0
|
||||
CONFIG_RAWBITS equ 0
|
||||
CONFIG_EC_SMALLMUL equ 1
|
||||
CONFIG_PVQ equ 0
|
||||
CONFIG_CFL equ 0
|
||||
CONFIG_XIPHRC equ 0
|
||||
CONFIG_DCT_ONLY equ 0
|
||||
CONFIG_DAALA_DCT4 equ 0
|
||||
CONFIG_DAALA_DCT8 equ 0
|
||||
CONFIG_CB4X4 equ 1
|
||||
CONFIG_CHROMA_2X2 equ 0
|
||||
CONFIG_CHROMA_SUB8X8 equ 1
|
||||
CONFIG_FRAME_SIZE equ 0
|
||||
CONFIG_DELTA_Q equ 1
|
||||
CONFIG_EXT_DELTA_Q equ 1
|
||||
CONFIG_ADAPT_SCAN equ 0
|
||||
CONFIG_FILTER_7BIT equ 1
|
||||
CONFIG_PARALLEL_DEBLOCKING equ 1
|
||||
CONFIG_LOOPFILTERING_ACROSS_TILES equ 1
|
||||
CONFIG_TEMPMV_SIGNALING equ 1
|
||||
CONFIG_RD_DEBUG equ 0
|
||||
CONFIG_REFERENCE_BUFFER equ 1
|
||||
CONFIG_COEF_INTERLEAVE equ 0
|
||||
CONFIG_ENTROPY_STATS equ 0
|
||||
CONFIG_MASKED_TX equ 0
|
||||
CONFIG_DEPENDENT_HORZTILES equ 0
|
||||
CONFIG_DIST_8X8 equ 0
|
||||
CONFIG_DAALA_DIST equ 0
|
||||
CONFIG_TRIPRED equ 0
|
||||
CONFIG_PALETTE_THROUGHPUT equ 1
|
||||
CONFIG_REF_ADAPT equ 0
|
||||
CONFIG_LV_MAP equ 0
|
||||
CONFIG_TXK_SEL equ 0
|
||||
CONFIG_MV_COMPRESS equ 1
|
||||
CONFIG_FRAME_SUPERRES equ 0
|
||||
CONFIG_NEW_MULTISYMBOL equ 0
|
||||
CONFIG_COMPOUND_SINGLEREF equ 0
|
||||
CONFIG_AOM_QM equ 0
|
||||
CONFIG_ONE_SIDED_COMPOUND equ 1
|
||||
CONFIG_EXT_COMP_REFS equ 0
|
||||
CONFIG_SMOOTH_HV equ 1
|
||||
CONFIG_VAR_REFS equ 0
|
||||
CONFIG_RECT_INTRA_PRED equ 1
|
||||
CONFIG_LGT equ 0
|
||||
CONFIG_SBL_SYMBOL equ 0
|
||||
CONFIG_NCOBMC_ADAPT_WEIGHT equ 0
|
||||
CONFIG_BGSPRITE equ 0
|
||||
CONFIG_VAR_TX_NO_TX_MODE equ 0
|
||||
CONFIG_MRC_TX equ 0
|
||||
CONFIG_LPF_DIRECT equ 0
|
||||
CONFIG_UV_LVL equ 0
|
||||
CONFIG_ANALYZER equ 0
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
/* This file automatically generated by configure. Do not edit! */
|
||||
#ifndef AOM_CONFIG_H
|
||||
#define AOM_CONFIG_H
|
||||
#define RESTRICT
|
||||
#define RESTRICT
|
||||
#define INLINE __forceinline
|
||||
#define ARCH_ARM 0
|
||||
#define ARCH_MIPS 0
|
||||
|
|
@ -78,6 +78,7 @@
|
|||
#define CONFIG_HIGHBITDEPTH 1
|
||||
#define CONFIG_EXPERIMENTAL 0
|
||||
#define CONFIG_SIZE_LIMIT 1
|
||||
#define CONFIG_COLORSPACE_HEADERS 0
|
||||
#define CONFIG_FP_MB_STATS 0
|
||||
#define CONFIG_CDEF 1
|
||||
#define CONFIG_VAR_TX 1
|
||||
|
|
@ -100,6 +101,10 @@
|
|||
#define CONFIG_WEDGE 1
|
||||
#define CONFIG_COMPOUND_SEGMENT 1
|
||||
#define CONFIG_EXT_REFS 1
|
||||
#define CONFIG_ALTREF2 0
|
||||
#define CONFIG_SPEED_REFS 0
|
||||
#define CONFIG_GF_GROUPS 0
|
||||
#define CONFIG_FLEX_REFS 0
|
||||
#define CONFIG_GLOBAL_MOTION 1
|
||||
#define CONFIG_NEW_QUANT 0
|
||||
#define CONFIG_SUPERTX 0
|
||||
|
|
@ -114,6 +119,7 @@
|
|||
#define CONFIG_WARPED_MOTION 1
|
||||
#define CONFIG_Q_ADAPT_PROBS 0
|
||||
#define CONFIG_BITSTREAM_DEBUG 0
|
||||
#define CONFIG_INTER_STATS_ONLY 0
|
||||
#define CONFIG_ALT_INTRA 1
|
||||
#define CONFIG_PALETTE 1
|
||||
#define CONFIG_PALETTE_DELTA_ENCODING 0
|
||||
|
|
@ -122,6 +128,9 @@
|
|||
#define CONFIG_PVQ 0
|
||||
#define CONFIG_CFL 0
|
||||
#define CONFIG_XIPHRC 0
|
||||
#define CONFIG_DCT_ONLY 0
|
||||
#define CONFIG_DAALA_DCT4 0
|
||||
#define CONFIG_DAALA_DCT8 0
|
||||
#define CONFIG_CB4X4 1
|
||||
#define CONFIG_CHROMA_2X2 0
|
||||
#define CONFIG_CHROMA_SUB8X8 1
|
||||
|
|
@ -130,11 +139,8 @@
|
|||
#define CONFIG_EXT_DELTA_Q 1
|
||||
#define CONFIG_ADAPT_SCAN 0
|
||||
#define CONFIG_FILTER_7BIT 1
|
||||
#define CONFIG_PARALLEL_DEBLOCKING 0
|
||||
#define CONFIG_PARALLEL_DEBLOCKING_15TAP 0
|
||||
#define CONFIG_PARALLEL_DEBLOCKING 1
|
||||
#define CONFIG_LOOPFILTERING_ACROSS_TILES 1
|
||||
#define CONFIG_TILE_GROUPS 1
|
||||
#define CONFIG_EC_ADAPT 1
|
||||
#define CONFIG_TEMPMV_SIGNALING 1
|
||||
#define CONFIG_RD_DEBUG 0
|
||||
#define CONFIG_REFERENCE_BUFFER 1
|
||||
|
|
@ -142,6 +148,7 @@
|
|||
#define CONFIG_ENTROPY_STATS 0
|
||||
#define CONFIG_MASKED_TX 0
|
||||
#define CONFIG_DEPENDENT_HORZTILES 0
|
||||
#define CONFIG_DIST_8X8 0
|
||||
#define CONFIG_DAALA_DIST 0
|
||||
#define CONFIG_TRIPRED 0
|
||||
#define CONFIG_PALETTE_THROUGHPUT 1
|
||||
|
|
@ -154,8 +161,18 @@
|
|||
#define CONFIG_COMPOUND_SINGLEREF 0
|
||||
#define CONFIG_AOM_QM 0
|
||||
#define CONFIG_ONE_SIDED_COMPOUND 1
|
||||
#define CONFIG_SMOOTH_HV 0
|
||||
#define CONFIG_EXT_COMP_REFS 0
|
||||
#define CONFIG_SMOOTH_HV 1
|
||||
#define CONFIG_VAR_REFS 0
|
||||
#define CONFIG_RECT_INTRA_PRED 1
|
||||
#define CONFIG_LGT 0
|
||||
#define CONFIG_SBL_SYMBOL 0
|
||||
#define CONFIG_NCOBMC_ADAPT_WEIGHT 0
|
||||
#define CONFIG_BGSPRITE 0
|
||||
#define CONFIG_VAR_TX_NO_TX_MODE 0
|
||||
#define CONFIG_MRC_TX 0
|
||||
#define CONFIG_LPF_DIRECT 0
|
||||
#define CONFIG_UV_LVL 0
|
||||
#define CONFIG_ANALYZER 0
|
||||
#define DECODE_WIDTH_LIMIT 8192
|
||||
#define DECODE_HEIGHT_LIMIT 4608
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -12,6 +12,7 @@
|
|||
*/
|
||||
|
||||
#include "aom/aom_integer.h"
|
||||
#include "aom_dsp/txfm_common.h"
|
||||
#include "av1/common/common.h"
|
||||
#include "av1/common/enums.h"
|
||||
#include "av1/common/quant_common.h"
|
||||
|
|
@ -24,6 +25,7 @@ struct macroblockd;
|
|||
|
||||
/* Encoder forward decls */
|
||||
struct macroblock;
|
||||
struct txfm_param;
|
||||
struct aom_variance_vtable;
|
||||
struct search_site_config;
|
||||
struct mv;
|
||||
|
|
@ -60,7 +62,8 @@ void aom_clpf_hblock_hbd_sse4_1(uint16_t *dst, const uint16_t *src, int dstride,
|
|||
RTCD_EXTERN void (*aom_clpf_hblock_hbd)(uint16_t *dst, const uint16_t *src, int dstride, int sstride, int sizex, int sizey, unsigned int strength, unsigned int bd);
|
||||
|
||||
int64_t av1_block_error_c(const tran_low_t *coeff, const tran_low_t *dqcoeff, intptr_t block_size, int64_t *ssz);
|
||||
#define av1_block_error av1_block_error_c
|
||||
int64_t av1_block_error_avx2(const tran_low_t *coeff, const tran_low_t *dqcoeff, intptr_t block_size, int64_t *ssz);
|
||||
RTCD_EXTERN int64_t (*av1_block_error)(const tran_low_t *coeff, const tran_low_t *dqcoeff, intptr_t block_size, int64_t *ssz);
|
||||
|
||||
void av1_convolve_horiz_c(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int w, int h, const InterpFilterParams fp, const int subpel_x_q4, int x_step_q4, ConvolveParams *conv_params);
|
||||
void av1_convolve_horiz_ssse3(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int w, int h, const InterpFilterParams fp, const int subpel_x_q4, int x_step_q4, ConvolveParams *conv_params);
|
||||
|
|
@ -76,58 +79,58 @@ int av1_diamond_search_sad_c(struct macroblock *x, const struct search_site_conf
|
|||
void av1_fdct8x8_quant_c(const int16_t *input, int stride, tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
#define av1_fdct8x8_quant av1_fdct8x8_quant_c
|
||||
|
||||
void av1_fht16x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht16x16_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht16x16_avx2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
RTCD_EXTERN void (*av1_fht16x16)(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht16x16_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht16x16_sse2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht16x16_avx2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
RTCD_EXTERN void (*av1_fht16x16)(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
|
||||
void av1_fht16x32_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht16x32_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht16x32_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht16x32_sse2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht16x32 av1_fht16x32_sse2
|
||||
|
||||
void av1_fht16x4_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht16x4_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht16x4 av1_fht16x4_c
|
||||
|
||||
void av1_fht16x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht16x8_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht16x8_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht16x8_sse2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht16x8 av1_fht16x8_sse2
|
||||
|
||||
void av1_fht32x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht32x16_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht32x16_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht32x16_sse2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht32x16 av1_fht32x16_sse2
|
||||
|
||||
void av1_fht32x32_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht32x32_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht32x32_avx2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
RTCD_EXTERN void (*av1_fht32x32)(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht32x32_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht32x32_sse2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht32x32_avx2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
RTCD_EXTERN void (*av1_fht32x32)(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
|
||||
void av1_fht32x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht32x8_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht32x8 av1_fht32x8_c
|
||||
|
||||
void av1_fht4x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht4x16_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht4x16 av1_fht4x16_c
|
||||
|
||||
void av1_fht4x4_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht4x4_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht4x4_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht4x4_sse2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht4x4 av1_fht4x4_sse2
|
||||
|
||||
void av1_fht4x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht4x8_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht4x8_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht4x8_sse2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht4x8 av1_fht4x8_sse2
|
||||
|
||||
void av1_fht8x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht8x16_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht8x16_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht8x16_sse2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht8x16 av1_fht8x16_sse2
|
||||
|
||||
void av1_fht8x32_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht8x32_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht8x32 av1_fht8x32_c
|
||||
|
||||
void av1_fht8x4_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht8x4_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht8x4_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht8x4_sse2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht8x4 av1_fht8x4_sse2
|
||||
|
||||
void av1_fht8x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht8x8_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_fht8x8_c(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
void av1_fht8x8_sse2(const int16_t *input, tran_low_t *output, int stride, struct txfm_param *param);
|
||||
#define av1_fht8x8 av1_fht8x8_sse2
|
||||
|
||||
int av1_full_range_search_c(const struct macroblock *x, const struct search_site_config *cfg, struct mv *ref_mv, struct mv *best_mv, int search_param, int sad_per_bit, int *num00, const struct aom_variance_vtable *fn_ptr, const struct mv *center_mv);
|
||||
|
|
@ -145,6 +148,15 @@ void av1_fwd_txfm2d_16x16_c(const int16_t *input, int32_t *output, int stride, i
|
|||
void av1_fwd_txfm2d_16x16_sse4_1(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
RTCD_EXTERN void (*av1_fwd_txfm2d_16x16)(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
|
||||
void av1_fwd_txfm2d_16x32_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_fwd_txfm2d_16x32 av1_fwd_txfm2d_16x32_c
|
||||
|
||||
void av1_fwd_txfm2d_16x8_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_fwd_txfm2d_16x8 av1_fwd_txfm2d_16x8_c
|
||||
|
||||
void av1_fwd_txfm2d_32x16_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_fwd_txfm2d_32x16 av1_fwd_txfm2d_32x16_c
|
||||
|
||||
void av1_fwd_txfm2d_32x32_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
void av1_fwd_txfm2d_32x32_sse4_1(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
RTCD_EXTERN void (*av1_fwd_txfm2d_32x32)(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
|
|
@ -153,10 +165,19 @@ void av1_fwd_txfm2d_4x4_c(const int16_t *input, int32_t *output, int stride, int
|
|||
void av1_fwd_txfm2d_4x4_sse4_1(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
RTCD_EXTERN void (*av1_fwd_txfm2d_4x4)(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
|
||||
void av1_fwd_txfm2d_4x8_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_fwd_txfm2d_4x8 av1_fwd_txfm2d_4x8_c
|
||||
|
||||
void av1_fwd_txfm2d_64x64_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
void av1_fwd_txfm2d_64x64_sse4_1(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
RTCD_EXTERN void (*av1_fwd_txfm2d_64x64)(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
|
||||
void av1_fwd_txfm2d_8x16_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_fwd_txfm2d_8x16 av1_fwd_txfm2d_8x16_c
|
||||
|
||||
void av1_fwd_txfm2d_8x4_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_fwd_txfm2d_8x4 av1_fwd_txfm2d_8x4_c
|
||||
|
||||
void av1_fwd_txfm2d_8x8_c(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
void av1_fwd_txfm2d_8x8_sse4_1(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
RTCD_EXTERN void (*av1_fwd_txfm2d_8x8)(const int16_t *input, int32_t *output, int stride, int tx_type, int bd);
|
||||
|
|
@ -210,89 +231,46 @@ void av1_highbd_convolve_vert_c(const uint16_t *src, int src_stride, uint16_t *d
|
|||
void av1_highbd_convolve_vert_sse4_1(const uint16_t *src, int src_stride, uint16_t *dst, int dst_stride, int w, int h, const InterpFilterParams fp, const int subpel_x_q4, int x_step_q4, int avg, int bd);
|
||||
RTCD_EXTERN void (*av1_highbd_convolve_vert)(const uint16_t *src, int src_stride, uint16_t *dst, int dst_stride, int w, int h, const InterpFilterParams fp, const int subpel_x_q4, int x_step_q4, int avg, int bd);
|
||||
|
||||
void av1_highbd_fht16x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht16x16 av1_highbd_fht16x16_c
|
||||
|
||||
void av1_highbd_fht16x32_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht16x32 av1_highbd_fht16x32_c
|
||||
|
||||
void av1_highbd_fht16x4_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht16x4 av1_highbd_fht16x4_c
|
||||
|
||||
void av1_highbd_fht16x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht16x8 av1_highbd_fht16x8_c
|
||||
|
||||
void av1_highbd_fht32x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht32x16 av1_highbd_fht32x16_c
|
||||
|
||||
void av1_highbd_fht32x32_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht32x32 av1_highbd_fht32x32_c
|
||||
|
||||
void av1_highbd_fht32x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht32x8 av1_highbd_fht32x8_c
|
||||
|
||||
void av1_highbd_fht4x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht4x16 av1_highbd_fht4x16_c
|
||||
|
||||
void av1_highbd_fht4x4_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void av1_highbd_fht4x4_sse4_1(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
RTCD_EXTERN void (*av1_highbd_fht4x4)(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
|
||||
void av1_highbd_fht4x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht4x8 av1_highbd_fht4x8_c
|
||||
|
||||
void av1_highbd_fht8x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht8x16 av1_highbd_fht8x16_c
|
||||
|
||||
void av1_highbd_fht8x32_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht8x32 av1_highbd_fht8x32_c
|
||||
|
||||
void av1_highbd_fht8x4_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht8x4 av1_highbd_fht8x4_c
|
||||
|
||||
void av1_highbd_fht8x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define av1_highbd_fht8x8 av1_highbd_fht8x8_c
|
||||
|
||||
void av1_highbd_fwht4x4_c(const int16_t *input, tran_low_t *output, int stride);
|
||||
#define av1_highbd_fwht4x4 av1_highbd_fwht4x4_c
|
||||
|
||||
void av1_highbd_iht16x16_256_add_c(const tran_low_t *input, uint8_t *output, int pitch, int tx_type, int bd);
|
||||
void av1_highbd_iht16x16_256_add_c(const tran_low_t *input, uint8_t *output, int pitch, const struct txfm_param *param);
|
||||
#define av1_highbd_iht16x16_256_add av1_highbd_iht16x16_256_add_c
|
||||
|
||||
void av1_highbd_iht16x32_512_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht16x32_512_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht16x32_512_add av1_highbd_iht16x32_512_add_c
|
||||
|
||||
void av1_highbd_iht16x4_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht16x4_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht16x4_64_add av1_highbd_iht16x4_64_add_c
|
||||
|
||||
void av1_highbd_iht16x8_128_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht16x8_128_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht16x8_128_add av1_highbd_iht16x8_128_add_c
|
||||
|
||||
void av1_highbd_iht32x16_512_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht32x16_512_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht32x16_512_add av1_highbd_iht32x16_512_add_c
|
||||
|
||||
void av1_highbd_iht32x8_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht32x8_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht32x8_256_add av1_highbd_iht32x8_256_add_c
|
||||
|
||||
void av1_highbd_iht4x16_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht4x16_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht4x16_64_add av1_highbd_iht4x16_64_add_c
|
||||
|
||||
void av1_highbd_iht4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht4x4_16_add av1_highbd_iht4x4_16_add_c
|
||||
|
||||
void av1_highbd_iht4x8_32_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht4x8_32_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht4x8_32_add av1_highbd_iht4x8_32_add_c
|
||||
|
||||
void av1_highbd_iht8x16_128_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht8x16_128_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht8x16_128_add av1_highbd_iht8x16_128_add_c
|
||||
|
||||
void av1_highbd_iht8x32_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht8x32_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht8x32_256_add av1_highbd_iht8x32_256_add_c
|
||||
|
||||
void av1_highbd_iht8x4_32_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht8x4_32_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht8x4_32_add av1_highbd_iht8x4_32_add_c
|
||||
|
||||
void av1_highbd_iht8x8_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd);
|
||||
void av1_highbd_iht8x8_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_highbd_iht8x8_64_add av1_highbd_iht8x8_64_add_c
|
||||
|
||||
void av1_highbd_quantize_b_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan, int log_scale);
|
||||
|
|
@ -300,71 +278,81 @@ void av1_highbd_quantize_b_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int
|
|||
|
||||
void av1_highbd_quantize_fp_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan, int log_scale);
|
||||
void av1_highbd_quantize_fp_sse4_1(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan, int log_scale);
|
||||
void av1_highbd_quantize_fp_avx2(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan, int log_scale);
|
||||
RTCD_EXTERN void (*av1_highbd_quantize_fp)(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan, int log_scale);
|
||||
|
||||
void av1_highbd_temporal_filter_apply_c(uint8_t *frame1, unsigned int stride, uint8_t *frame2, unsigned int block_width, unsigned int block_height, int strength, int filter_weight, unsigned int *accumulator, uint16_t *count);
|
||||
#define av1_highbd_temporal_filter_apply av1_highbd_temporal_filter_apply_c
|
||||
|
||||
void av1_highbd_warp_affine_c(const int32_t *mat, const uint16_t *ref, int width, int height, int stride, uint16_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, int bd, int comp_avg, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
void av1_highbd_warp_affine_ssse3(const int32_t *mat, const uint16_t *ref, int width, int height, int stride, uint16_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, int bd, int comp_avg, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
RTCD_EXTERN void (*av1_highbd_warp_affine)(const int32_t *mat, const uint16_t *ref, int width, int height, int stride, uint16_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, int bd, int comp_avg, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
void av1_highbd_warp_affine_c(const int32_t *mat, const uint16_t *ref, int width, int height, int stride, uint16_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, int bd, ConvolveParams *conv_params, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
void av1_highbd_warp_affine_ssse3(const int32_t *mat, const uint16_t *ref, int width, int height, int stride, uint16_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, int bd, ConvolveParams *conv_params, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
RTCD_EXTERN void (*av1_highbd_warp_affine)(const int32_t *mat, const uint16_t *ref, int width, int height, int stride, uint16_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, int bd, ConvolveParams *conv_params, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
|
||||
void av1_iht16x16_256_add_c(const tran_low_t *input, uint8_t *output, int pitch, int tx_type);
|
||||
void av1_iht16x16_256_add_sse2(const tran_low_t *input, uint8_t *output, int pitch, int tx_type);
|
||||
void av1_iht16x16_256_add_avx2(const tran_low_t *input, uint8_t *output, int pitch, int tx_type);
|
||||
RTCD_EXTERN void (*av1_iht16x16_256_add)(const tran_low_t *input, uint8_t *output, int pitch, int tx_type);
|
||||
void av1_iht16x16_256_add_c(const tran_low_t *input, uint8_t *output, int pitch, const struct txfm_param *param);
|
||||
void av1_iht16x16_256_add_sse2(const tran_low_t *input, uint8_t *output, int pitch, const struct txfm_param *param);
|
||||
void av1_iht16x16_256_add_avx2(const tran_low_t *input, uint8_t *output, int pitch, const struct txfm_param *param);
|
||||
RTCD_EXTERN void (*av1_iht16x16_256_add)(const tran_low_t *input, uint8_t *output, int pitch, const struct txfm_param *param);
|
||||
|
||||
void av1_iht16x32_512_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht16x32_512_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht16x32_512_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
void av1_iht16x32_512_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht16x32_512_add av1_iht16x32_512_add_sse2
|
||||
|
||||
void av1_iht16x4_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht16x4_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht16x4_64_add av1_iht16x4_64_add_c
|
||||
|
||||
void av1_iht16x8_128_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht16x8_128_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht16x8_128_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
void av1_iht16x8_128_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht16x8_128_add av1_iht16x8_128_add_sse2
|
||||
|
||||
void av1_iht32x16_512_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht32x16_512_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht32x16_512_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
void av1_iht32x16_512_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht32x16_512_add av1_iht32x16_512_add_sse2
|
||||
|
||||
void av1_iht32x32_1024_add_c(const tran_low_t *input, uint8_t *output, int pitch, int tx_type);
|
||||
void av1_iht32x32_1024_add_c(const tran_low_t *input, uint8_t *output, int pitch, const struct txfm_param *param);
|
||||
#define av1_iht32x32_1024_add av1_iht32x32_1024_add_c
|
||||
|
||||
void av1_iht32x8_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht32x8_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht32x8_256_add av1_iht32x8_256_add_c
|
||||
|
||||
void av1_iht4x16_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht4x16_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht4x16_64_add av1_iht4x16_64_add_c
|
||||
|
||||
void av1_iht4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht4x4_16_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
void av1_iht4x4_16_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht4x4_16_add av1_iht4x4_16_add_sse2
|
||||
|
||||
void av1_iht4x8_32_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht4x8_32_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht4x8_32_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
void av1_iht4x8_32_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht4x8_32_add av1_iht4x8_32_add_sse2
|
||||
|
||||
void av1_iht8x16_128_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht8x16_128_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht8x16_128_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
void av1_iht8x16_128_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht8x16_128_add av1_iht8x16_128_add_sse2
|
||||
|
||||
void av1_iht8x32_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht8x32_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht8x32_256_add av1_iht8x32_256_add_c
|
||||
|
||||
void av1_iht8x4_32_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht8x4_32_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht8x4_32_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
void av1_iht8x4_32_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht8x4_32_add av1_iht8x4_32_add_sse2
|
||||
|
||||
void av1_iht8x8_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht8x8_64_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
|
||||
void av1_iht8x8_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
void av1_iht8x8_64_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, const struct txfm_param *param);
|
||||
#define av1_iht8x8_64_add av1_iht8x8_64_add_sse2
|
||||
|
||||
void av1_inv_txfm2d_add_16x16_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
void av1_inv_txfm2d_add_16x16_sse4_1(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
RTCD_EXTERN void (*av1_inv_txfm2d_add_16x16)(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
|
||||
void av1_inv_txfm2d_add_16x32_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_inv_txfm2d_add_16x32 av1_inv_txfm2d_add_16x32_c
|
||||
|
||||
void av1_inv_txfm2d_add_16x8_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_inv_txfm2d_add_16x8 av1_inv_txfm2d_add_16x8_c
|
||||
|
||||
void av1_inv_txfm2d_add_32x16_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_inv_txfm2d_add_32x16 av1_inv_txfm2d_add_32x16_c
|
||||
|
||||
void av1_inv_txfm2d_add_32x32_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
void av1_inv_txfm2d_add_32x32_avx2(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
RTCD_EXTERN void (*av1_inv_txfm2d_add_32x32)(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
|
|
@ -373,9 +361,18 @@ void av1_inv_txfm2d_add_4x4_c(const int32_t *input, uint16_t *output, int stride
|
|||
void av1_inv_txfm2d_add_4x4_sse4_1(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
RTCD_EXTERN void (*av1_inv_txfm2d_add_4x4)(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
|
||||
void av1_inv_txfm2d_add_4x8_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_inv_txfm2d_add_4x8 av1_inv_txfm2d_add_4x8_c
|
||||
|
||||
void av1_inv_txfm2d_add_64x64_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_inv_txfm2d_add_64x64 av1_inv_txfm2d_add_64x64_c
|
||||
|
||||
void av1_inv_txfm2d_add_8x16_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_inv_txfm2d_add_8x16 av1_inv_txfm2d_add_8x16_c
|
||||
|
||||
void av1_inv_txfm2d_add_8x4_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
#define av1_inv_txfm2d_add_8x4 av1_inv_txfm2d_add_8x4_c
|
||||
|
||||
void av1_inv_txfm2d_add_8x8_c(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
void av1_inv_txfm2d_add_8x8_sse4_1(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
RTCD_EXTERN void (*av1_inv_txfm2d_add_8x8)(const int32_t *input, uint16_t *output, int stride, int tx_type, int bd);
|
||||
|
|
@ -389,19 +386,21 @@ void av1_quantize_b_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_b
|
|||
|
||||
void av1_quantize_fp_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
void av1_quantize_fp_sse2(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
#define av1_quantize_fp av1_quantize_fp_sse2
|
||||
void av1_quantize_fp_avx2(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
RTCD_EXTERN void (*av1_quantize_fp)(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
|
||||
void av1_quantize_fp_32x32_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
#define av1_quantize_fp_32x32 av1_quantize_fp_32x32_c
|
||||
void av1_quantize_fp_32x32_avx2(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
RTCD_EXTERN void (*av1_quantize_fp_32x32)(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
|
||||
void av1_temporal_filter_apply_c(uint8_t *frame1, unsigned int stride, uint8_t *frame2, unsigned int block_width, unsigned int block_height, int strength, int filter_weight, unsigned int *accumulator, uint16_t *count);
|
||||
void av1_temporal_filter_apply_sse2(uint8_t *frame1, unsigned int stride, uint8_t *frame2, unsigned int block_width, unsigned int block_height, int strength, int filter_weight, unsigned int *accumulator, uint16_t *count);
|
||||
#define av1_temporal_filter_apply av1_temporal_filter_apply_sse2
|
||||
|
||||
void av1_warp_affine_c(const int32_t *mat, const uint8_t *ref, int width, int height, int stride, uint8_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, int comp_avg, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
void av1_warp_affine_sse2(const int32_t *mat, const uint8_t *ref, int width, int height, int stride, uint8_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, int comp_avg, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
void av1_warp_affine_ssse3(const int32_t *mat, const uint8_t *ref, int width, int height, int stride, uint8_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, int comp_avg, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
RTCD_EXTERN void (*av1_warp_affine)(const int32_t *mat, const uint8_t *ref, int width, int height, int stride, uint8_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, int comp_avg, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
void av1_warp_affine_c(const int32_t *mat, const uint8_t *ref, int width, int height, int stride, uint8_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, ConvolveParams *conv_params, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
void av1_warp_affine_sse2(const int32_t *mat, const uint8_t *ref, int width, int height, int stride, uint8_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, ConvolveParams *conv_params, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
void av1_warp_affine_ssse3(const int32_t *mat, const uint8_t *ref, int width, int height, int stride, uint8_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, ConvolveParams *conv_params, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
RTCD_EXTERN void (*av1_warp_affine)(const int32_t *mat, const uint8_t *ref, int width, int height, int stride, uint8_t *pred, int p_col, int p_row, int p_width, int p_height, int p_stride, int subsampling_x, int subsampling_y, ConvolveParams *conv_params, int16_t alpha, int16_t beta, int16_t gamma, int16_t delta);
|
||||
|
||||
void av1_wedge_compute_delta_squares_c(int16_t *d, const int16_t *a, const int16_t *b, int N);
|
||||
void av1_wedge_compute_delta_squares_sse2(int16_t *d, const int16_t *a, const int16_t *b, int N);
|
||||
|
|
@ -495,6 +494,8 @@ static void setup_rtcd_internal(void)
|
|||
aom_clpf_hblock_hbd = aom_clpf_hblock_hbd_sse2;
|
||||
if (flags & HAS_SSSE3) aom_clpf_hblock_hbd = aom_clpf_hblock_hbd_ssse3;
|
||||
if (flags & HAS_SSE4_1) aom_clpf_hblock_hbd = aom_clpf_hblock_hbd_sse4_1;
|
||||
av1_block_error = av1_block_error_c;
|
||||
if (flags & HAS_AVX2) av1_block_error = av1_block_error_avx2;
|
||||
av1_convolve_horiz = av1_convolve_horiz_c;
|
||||
if (flags & HAS_SSSE3) av1_convolve_horiz = av1_convolve_horiz_ssse3;
|
||||
av1_convolve_vert = av1_convolve_vert_c;
|
||||
|
|
@ -522,10 +523,9 @@ static void setup_rtcd_internal(void)
|
|||
if (flags & HAS_SSE4_1) av1_highbd_convolve_init = av1_highbd_convolve_init_sse4_1;
|
||||
av1_highbd_convolve_vert = av1_highbd_convolve_vert_c;
|
||||
if (flags & HAS_SSE4_1) av1_highbd_convolve_vert = av1_highbd_convolve_vert_sse4_1;
|
||||
av1_highbd_fht4x4 = av1_highbd_fht4x4_c;
|
||||
if (flags & HAS_SSE4_1) av1_highbd_fht4x4 = av1_highbd_fht4x4_sse4_1;
|
||||
av1_highbd_quantize_fp = av1_highbd_quantize_fp_c;
|
||||
if (flags & HAS_SSE4_1) av1_highbd_quantize_fp = av1_highbd_quantize_fp_sse4_1;
|
||||
if (flags & HAS_AVX2) av1_highbd_quantize_fp = av1_highbd_quantize_fp_avx2;
|
||||
av1_highbd_warp_affine = av1_highbd_warp_affine_c;
|
||||
if (flags & HAS_SSSE3) av1_highbd_warp_affine = av1_highbd_warp_affine_ssse3;
|
||||
av1_iht16x16_256_add = av1_iht16x16_256_add_sse2;
|
||||
|
|
@ -540,6 +540,10 @@ static void setup_rtcd_internal(void)
|
|||
if (flags & HAS_SSE4_1) av1_inv_txfm2d_add_8x8 = av1_inv_txfm2d_add_8x8_sse4_1;
|
||||
av1_lowbd_convolve_init = av1_lowbd_convolve_init_c;
|
||||
if (flags & HAS_SSSE3) av1_lowbd_convolve_init = av1_lowbd_convolve_init_ssse3;
|
||||
av1_quantize_fp = av1_quantize_fp_sse2;
|
||||
if (flags & HAS_AVX2) av1_quantize_fp = av1_quantize_fp_avx2;
|
||||
av1_quantize_fp_32x32 = av1_quantize_fp_32x32_c;
|
||||
if (flags & HAS_AVX2) av1_quantize_fp_32x32 = av1_quantize_fp_32x32_avx2;
|
||||
av1_warp_affine = av1_warp_affine_sse2;
|
||||
if (flags & HAS_SSSE3) av1_warp_affine = av1_warp_affine_ssse3;
|
||||
compute_cross_correlation = compute_cross_correlation_c;
|
||||
|
|
|
|||
|
|
@ -76,6 +76,7 @@ files = {
|
|||
'../../third_party/aom/aom_dsp/x86/highbd_convolve_avx2.c',
|
||||
'../../third_party/aom/aom_dsp/x86/highbd_intrapred_sse2.asm',
|
||||
'../../third_party/aom/aom_dsp/x86/highbd_loopfilter_sse2.c',
|
||||
'../../third_party/aom/aom_dsp/x86/highbd_quantize_intrin_avx2.c',
|
||||
'../../third_party/aom/aom_dsp/x86/highbd_quantize_intrin_sse2.c',
|
||||
'../../third_party/aom/aom_dsp/x86/highbd_sad4d_sse2.asm',
|
||||
'../../third_party/aom/aom_dsp/x86/highbd_sad_sse2.asm',
|
||||
|
|
@ -142,6 +143,7 @@ files = {
|
|||
'../../third_party/aom/av1/common/clpf_sse4.c',
|
||||
'../../third_party/aom/av1/common/clpf_ssse3.c',
|
||||
'../../third_party/aom/av1/common/convolve.c',
|
||||
'../../third_party/aom/av1/common/daala_tx.c',
|
||||
'../../third_party/aom/av1/common/debugmodes.c',
|
||||
'../../third_party/aom/av1/common/entropy.c',
|
||||
'../../third_party/aom/av1/common/entropymode.c',
|
||||
|
|
@ -170,6 +172,7 @@ files = {
|
|||
'../../third_party/aom/av1/common/x86/av1_fwd_txfm1d_sse4.c',
|
||||
'../../third_party/aom/av1/common/x86/av1_fwd_txfm2d_sse4.c',
|
||||
'../../third_party/aom/av1/common/x86/av1_highbd_convolve_sse4.c',
|
||||
'../../third_party/aom/av1/common/x86/convolve_avx2.c',
|
||||
'../../third_party/aom/av1/common/x86/highbd_inv_txfm_avx2.c',
|
||||
'../../third_party/aom/av1/common/x86/highbd_inv_txfm_sse4.c',
|
||||
'../../third_party/aom/av1/common/x86/highbd_warp_plane_ssse3.c',
|
||||
|
|
@ -219,7 +222,9 @@ files = {
|
|||
'../../third_party/aom/av1/encoder/tokenize.c',
|
||||
'../../third_party/aom/av1/encoder/treewriter.c',
|
||||
'../../third_party/aom/av1/encoder/wedge_utils.c',
|
||||
'../../third_party/aom/av1/encoder/x86/av1_highbd_quantize_avx2.c',
|
||||
'../../third_party/aom/av1/encoder/x86/av1_highbd_quantize_sse4.c',
|
||||
'../../third_party/aom/av1/encoder/x86/av1_quantize_avx2.c',
|
||||
'../../third_party/aom/av1/encoder/x86/av1_quantize_sse2.c',
|
||||
'../../third_party/aom/av1/encoder/x86/av1_quantize_ssse3_x86_64.asm',
|
||||
'../../third_party/aom/av1/encoder/x86/corner_match_sse4.c',
|
||||
|
|
@ -307,6 +312,7 @@ files = {
|
|||
'../../third_party/aom/aom_dsp/x86/highbd_convolve_avx2.c',
|
||||
'../../third_party/aom/aom_dsp/x86/highbd_intrapred_sse2.asm',
|
||||
'../../third_party/aom/aom_dsp/x86/highbd_loopfilter_sse2.c',
|
||||
'../../third_party/aom/aom_dsp/x86/highbd_quantize_intrin_avx2.c',
|
||||
'../../third_party/aom/aom_dsp/x86/highbd_quantize_intrin_sse2.c',
|
||||
'../../third_party/aom/aom_dsp/x86/highbd_sad4d_sse2.asm',
|
||||
'../../third_party/aom/aom_dsp/x86/highbd_sad_sse2.asm',
|
||||
|
|
@ -370,6 +376,7 @@ files = {
|
|||
'../../third_party/aom/av1/common/clpf_sse4.c',
|
||||
'../../third_party/aom/av1/common/clpf_ssse3.c',
|
||||
'../../third_party/aom/av1/common/convolve.c',
|
||||
'../../third_party/aom/av1/common/daala_tx.c',
|
||||
'../../third_party/aom/av1/common/debugmodes.c',
|
||||
'../../third_party/aom/av1/common/entropy.c',
|
||||
'../../third_party/aom/av1/common/entropymode.c',
|
||||
|
|
@ -398,6 +405,7 @@ files = {
|
|||
'../../third_party/aom/av1/common/x86/av1_fwd_txfm1d_sse4.c',
|
||||
'../../third_party/aom/av1/common/x86/av1_fwd_txfm2d_sse4.c',
|
||||
'../../third_party/aom/av1/common/x86/av1_highbd_convolve_sse4.c',
|
||||
'../../third_party/aom/av1/common/x86/convolve_avx2.c',
|
||||
'../../third_party/aom/av1/common/x86/highbd_inv_txfm_avx2.c',
|
||||
'../../third_party/aom/av1/common/x86/highbd_inv_txfm_sse4.c',
|
||||
'../../third_party/aom/av1/common/x86/highbd_warp_plane_ssse3.c',
|
||||
|
|
@ -447,7 +455,9 @@ files = {
|
|||
'../../third_party/aom/av1/encoder/tokenize.c',
|
||||
'../../third_party/aom/av1/encoder/treewriter.c',
|
||||
'../../third_party/aom/av1/encoder/wedge_utils.c',
|
||||
'../../third_party/aom/av1/encoder/x86/av1_highbd_quantize_avx2.c',
|
||||
'../../third_party/aom/av1/encoder/x86/av1_highbd_quantize_sse4.c',
|
||||
'../../third_party/aom/av1/encoder/x86/av1_quantize_avx2.c',
|
||||
'../../third_party/aom/av1/encoder/x86/av1_quantize_sse2.c',
|
||||
'../../third_party/aom/av1/encoder/x86/corner_match_sse4.c',
|
||||
'../../third_party/aom/av1/encoder/x86/dct_intrin_sse2.c',
|
||||
|
|
@ -567,6 +577,7 @@ files = {
|
|||
'../../third_party/aom/av1/common/clpf.c',
|
||||
'../../third_party/aom/av1/common/clpf_neon.c',
|
||||
'../../third_party/aom/av1/common/convolve.c',
|
||||
'../../third_party/aom/av1/common/daala_tx.c',
|
||||
'../../third_party/aom/av1/common/debugmodes.c',
|
||||
'../../third_party/aom/av1/common/entropy.c',
|
||||
'../../third_party/aom/av1/common/entropymode.c',
|
||||
|
|
@ -706,6 +717,7 @@ files = {
|
|||
'../../third_party/aom/av1/common/cdef.c',
|
||||
'../../third_party/aom/av1/common/clpf.c',
|
||||
'../../third_party/aom/av1/common/convolve.c',
|
||||
'../../third_party/aom/av1/common/daala_tx.c',
|
||||
'../../third_party/aom/av1/common/debugmodes.c',
|
||||
'../../third_party/aom/av1/common/entropy.c',
|
||||
'../../third_party/aom/av1/common/entropymode.c',
|
||||
|
|
|
|||
51
third_party/aom/CMakeLists.txt
vendored
51
third_party/aom/CMakeLists.txt
vendored
|
|
@ -11,8 +11,9 @@
|
|||
cmake_minimum_required(VERSION 3.5)
|
||||
|
||||
if (NOT EMSCRIPTEN)
|
||||
if ("${CMAKE_BUILD_TYPE}" STREQUAL "")
|
||||
set(CMAKE_BUILD_TYPE "RelWithDebInfo")
|
||||
if (NOT CMAKE_BUILD_TYPE)
|
||||
set(CMAKE_BUILD_TYPE "RelWithDebInfo" CACHE
|
||||
"Build type: Debug, Release, RelWithDebInfo or MinSizeRel" STRING FORCE)
|
||||
endif ()
|
||||
endif ()
|
||||
|
||||
|
|
@ -20,6 +21,11 @@ option(ENABLE_CCACHE "Enable ccache support." OFF)
|
|||
option(ENABLE_DISTCC "Enable distcc support." OFF)
|
||||
option(ENABLE_DOCS "Enable documentation generation (doxygen required)." ON)
|
||||
option(ENABLE_NASM "Use nasm instead of yasm for x86 assembly." OFF)
|
||||
option(ENABLE_IDE_TEST_HOSTING
|
||||
"Enables running tests within IDEs like Visual Studio and Xcode." OFF)
|
||||
|
||||
# $BUILD_SHARED_LIBS is a CMake built-in-- it's listed here for visibility.
|
||||
option(BUILD_SHARED_LIBS "CMake should generate a shared library build." OFF)
|
||||
|
||||
project(AOM C CXX)
|
||||
|
||||
|
|
@ -34,7 +40,6 @@ if ("${AOM_ROOT}" STREQUAL "${AOM_CONFIG_DIR}")
|
|||
endif ()
|
||||
|
||||
include("${AOM_ROOT}/build/cmake/aom_configure.cmake")
|
||||
include("${AOM_ROOT}/build/cmake/aom_optimization.cmake")
|
||||
include("${AOM_ROOT}/aom_dsp/aom_dsp.cmake")
|
||||
include("${AOM_ROOT}/aom_mem/aom_mem.cmake")
|
||||
include("${AOM_ROOT}/aom_ports/aom_ports.cmake")
|
||||
|
|
@ -42,6 +47,7 @@ include("${AOM_ROOT}/aom_scale/aom_scale.cmake")
|
|||
include("${AOM_ROOT}/aom_util/aom_util.cmake")
|
||||
include("${AOM_ROOT}/av1/av1.cmake")
|
||||
include("${AOM_ROOT}/test/test.cmake")
|
||||
include("${AOM_ROOT}/build/cmake/util.cmake")
|
||||
|
||||
set(AOM_RTCD_SOURCES
|
||||
"${AOM_CONFIG_DIR}/aom_dsp_rtcd.h"
|
||||
|
|
@ -212,9 +218,9 @@ add_library(aom_common_app_util OBJECT ${AOM_COMMON_APP_UTIL_SOURCES})
|
|||
if (CONFIG_AV1_DECODER)
|
||||
add_library(aom_decoder_app_util OBJECT ${AOM_DECODER_APP_UTIL_SOURCES})
|
||||
add_executable(aomdec
|
||||
"${AOM_ROOT}/aomdec.c"
|
||||
$<TARGET_OBJECTS:aom_common_app_util>
|
||||
$<TARGET_OBJECTS:aom_decoder_app_util>)
|
||||
"${AOM_ROOT}/aomdec.c"
|
||||
$<TARGET_OBJECTS:aom_common_app_util>
|
||||
$<TARGET_OBJECTS:aom_decoder_app_util>)
|
||||
|
||||
if (CONFIG_ANALYZER)
|
||||
add_executable(analyzer
|
||||
|
|
@ -223,6 +229,7 @@ if (CONFIG_AV1_DECODER)
|
|||
$<TARGET_OBJECTS:aom_decoder_app_util>)
|
||||
target_link_libraries(analyzer ${AOM_LIB_LINK_TYPE} ${wxWidgets_LIBRARIES})
|
||||
set(AOM_APP_TARGETS ${AOM_APP_TARGETS} analyzer)
|
||||
set(AOM_DECODER_EXAMPLE_TARGETS ${AOM_DECODER_EXAMPLE_TARGETS} analyzer)
|
||||
endif ()
|
||||
|
||||
add_executable(decode_to_md5
|
||||
|
|
@ -247,14 +254,17 @@ if (CONFIG_AV1_DECODER)
|
|||
|
||||
if (EMSCRIPTEN)
|
||||
add_preproc_definition(_POSIX_SOURCE)
|
||||
add_compiler_flag_if_supported("-s TOTAL_MEMORY=134217728")
|
||||
add_compiler_flag_if_supported("-s MODULARIZE=1")
|
||||
add_compiler_flag_if_supported("-s EXPORT_NAME=\"\'DecoderModule\'\"")
|
||||
add_compiler_flag_if_supported("--memory-init-file 0")
|
||||
append_link_flag_to_target("inspect" "-s TOTAL_MEMORY=134217728")
|
||||
append_link_flag_to_target("inspect" "-s MODULARIZE=1")
|
||||
append_link_flag_to_target("inspect"
|
||||
"-s EXPORT_NAME=\"\'DecoderModule\'\"")
|
||||
append_link_flag_to_target("inspect" "--memory-init-file 0")
|
||||
|
||||
if ("${CMAKE_BUILD_TYPE}" STREQUAL "")
|
||||
# Default to -O3 when no build type specified.
|
||||
add_compiler_flag_if_supported("-O3")
|
||||
append_compiler_flag("-O3")
|
||||
endif ()
|
||||
|
||||
em_link_post_js(inspect "${AOM_ROOT}/tools/inspect-post.js")
|
||||
endif ()
|
||||
endif ()
|
||||
|
|
@ -324,7 +334,7 @@ if (CONFIG_LIBYUV)
|
|||
|
||||
# Add to existing targets.
|
||||
foreach (aom_app ${AOM_APP_TARGETS})
|
||||
target_sources(${aom_app} PUBLIC $<TARGET_OBJECTS:yuv>)
|
||||
target_sources(${aom_app} PRIVATE $<TARGET_OBJECTS:yuv>)
|
||||
set_property(TARGET ${aom_app} PROPERTY LINKER_LANGUAGE CXX)
|
||||
endforeach ()
|
||||
endif ()
|
||||
|
|
@ -339,15 +349,15 @@ if (CONFIG_WEBM_IO)
|
|||
|
||||
# Add to existing targets.
|
||||
if (CONFIG_AV1_DECODER)
|
||||
target_sources(aom_decoder_app_util PUBLIC ${AOM_WEBM_DECODER_SOURCES})
|
||||
target_sources(aom_decoder_app_util PRIVATE ${AOM_WEBM_DECODER_SOURCES})
|
||||
endif ()
|
||||
|
||||
if (CONFIG_AV1_ENCODER)
|
||||
target_sources(aom_encoder_app_util PUBLIC ${AOM_WEBM_ENCODER_SOURCES})
|
||||
target_sources(aom_encoder_app_util PRIVATE ${AOM_WEBM_ENCODER_SOURCES})
|
||||
endif ()
|
||||
|
||||
foreach (aom_app ${AOM_APP_TARGETS})
|
||||
target_sources(${aom_app} PUBLIC $<TARGET_OBJECTS:webm>)
|
||||
target_sources(${aom_app} PRIVATE $<TARGET_OBJECTS:webm>)
|
||||
set_property(TARGET ${aom_app} PROPERTY LINKER_LANGUAGE CXX)
|
||||
endforeach ()
|
||||
endif ()
|
||||
|
|
@ -374,11 +384,8 @@ if (XCODE)
|
|||
# Note: LINKER_LANGUAGE is explicitly set to C++ for all targets touched
|
||||
# here, it really is the Xcode generator's fault, or just a deficiency in
|
||||
# Xcode itself.
|
||||
set(XCODE_DUMMY_CXX_FILE "${AOM_CONFIG_DIR}/dummy.cc")
|
||||
file(WRITE "${XCODE_DUMMY_CXX_FILE}"
|
||||
"// Xcode needs a C++ file to link, ignore this file.")
|
||||
foreach (aom_app ${AOM_APP_TARGETS})
|
||||
target_sources(${aom_app} PUBLIC "${XCODE_DUMMY_CXX_FILE}")
|
||||
add_dummy_source_file_to_target("${aom_app}" "cc")
|
||||
endforeach ()
|
||||
endif ()
|
||||
endif ()
|
||||
|
|
@ -391,6 +398,12 @@ if ("${CMAKE_GENERATOR}" MATCHES "Makefiles$" )
|
|||
RUNTIME_OUTPUT_DIRECTORY "${AOM_CONFIG_DIR}/examples")
|
||||
endif ()
|
||||
|
||||
if (BUILD_SHARED_LIBS)
|
||||
include("${AOM_ROOT}/build/cmake/exports.cmake")
|
||||
setup_exports_target()
|
||||
set_target_properties(aom PROPERTIES SOVERSION 0)
|
||||
endif ()
|
||||
|
||||
# Aomedia documentation rule.
|
||||
if (ENABLE_DOCS)
|
||||
include(FindDoxygen)
|
||||
|
|
|
|||
7
third_party/aom/README
vendored
7
third_party/aom/README
vendored
|
|
@ -1,5 +1,9 @@
|
|||
README - 9 March 2017
|
||||
|
||||
***************************
|
||||
DEPRECATED -- SEE README.md
|
||||
***************************
|
||||
|
||||
Welcome to the AV1 Codec SDK!
|
||||
|
||||
COMPILING THE APPLICATIONS/LIBRARIES:
|
||||
|
|
@ -55,6 +59,7 @@ COMPILING THE APPLICATIONS/LIBRARIES:
|
|||
armv7-none-rvct
|
||||
armv7-win32-vs12
|
||||
armv7-win32-vs14
|
||||
armv7-win32-vs15
|
||||
armv7s-darwin-gcc
|
||||
mips32-linux-gcc
|
||||
mips64-linux-gcc
|
||||
|
|
@ -79,6 +84,7 @@ COMPILING THE APPLICATIONS/LIBRARIES:
|
|||
x86-win32-gcc
|
||||
x86-win32-vs12
|
||||
x86-win32-vs14
|
||||
x86-win32-vs15
|
||||
x86_64-android-gcc
|
||||
x86_64-darwin9-gcc
|
||||
x86_64-darwin10-gcc
|
||||
|
|
@ -95,6 +101,7 @@ COMPILING THE APPLICATIONS/LIBRARIES:
|
|||
x86_64-win64-gcc
|
||||
x86_64-win64-vs12
|
||||
x86_64-win64-vs14
|
||||
x86_64-win64-vs15
|
||||
generic-gnu
|
||||
|
||||
The generic-gnu target, in conjunction with the CROSS environment variable,
|
||||
|
|
|
|||
307
third_party/aom/README.md
vendored
Normal file
307
third_party/aom/README.md
vendored
Normal file
|
|
@ -0,0 +1,307 @@
|
|||
# AV1 Codec Library
|
||||
|
||||
## Building the library and applications
|
||||
|
||||
### Prerequisites
|
||||
|
||||
1. [CMake](https://cmake.org) version 3.5 or higher.
|
||||
2. [Git](https://git-scm.com/).
|
||||
3. [Perl](https://www.perl.org/).
|
||||
4. For x86 targets, [yasm](http://yasm.tortall.net/), which is preferred, or a
|
||||
recent version of [nasm](http://www.nasm.us/).
|
||||
5. Building the documentation requires [doxygen](http://doxygen.org).
|
||||
6. Building the unit tests requires [Python](https://www.python.org/).
|
||||
7. Emscripten builds require the portable
|
||||
[EMSDK](https://kripken.github.io/emscripten-site/index.html).
|
||||
|
||||
### Basic build
|
||||
|
||||
CMake replaces the configure step typical of many projects. Running CMake will
|
||||
produce configuration and build files for the currently selected CMake
|
||||
generator. For most systems the default generator is Unix Makefiles. The basic
|
||||
form of a makefile build is the following:
|
||||
|
||||
$ cmake path/to/aom
|
||||
$ make
|
||||
|
||||
The above will generate a makefile build that produces the AV1 library and
|
||||
applications for the current host system after the make step completes
|
||||
successfully. The compiler chosen varies by host platform, but a general rule
|
||||
applies: On systems where cc and c++ are present in $PATH at the time CMake is
|
||||
run the generated build will use cc and c++ by default.
|
||||
|
||||
### Configuration options
|
||||
|
||||
The AV1 codec library has a great many configuration options. These come in two
|
||||
varieties:
|
||||
|
||||
1. Build system configuration options. These have the form `ENABLE_FEATURE`.
|
||||
2. AV1 codec configuration options. These have the form `CONFIG_FEATURE`.
|
||||
|
||||
Both types of options are set at the time CMake is run. The following example
|
||||
enables ccache and disables high bit depth:
|
||||
|
||||
~~~
|
||||
$ cmake path/to/aom -DENABLE_CCACHE=1 -DCONFIG_HIGHBITDEPTH=0
|
||||
$ make
|
||||
~~~
|
||||
|
||||
The available configuration options are too numerous to list here. Build system
|
||||
configuration options can be found at the top of the CMakeLists.txt file found
|
||||
in the root of the AV1 repository, and AV1 codec configuration options can
|
||||
currently be found in the file `build/cmake/aom_config_defaults.cmake`.
|
||||
|
||||
### Dylib builds
|
||||
|
||||
A dylib (shared object) build of the AV1 codec library can be enabled via the
|
||||
CMake built in variable `BUILD_SHARED_LIBS`:
|
||||
|
||||
~~~
|
||||
$ cmake path/to/aom -DBUILD_SHARED_LIBS=1
|
||||
$ make
|
||||
~~~
|
||||
|
||||
This is currently only supported on non-Windows targets.
|
||||
|
||||
### Cross compiling
|
||||
|
||||
For the purposes of building the AV1 codec and applications and relative to the
|
||||
scope of this guide, all builds for architectures differing from the native host
|
||||
architecture will be considered cross compiles. The AV1 CMake build handles
|
||||
cross compiling via the use of toolchain files included in the AV1 repository.
|
||||
The toolchain files available at the time of this writing are:
|
||||
|
||||
- arm64-ios.cmake
|
||||
- arm64-linux-gcc.cmake
|
||||
- armv7-ios.cmake
|
||||
- armv7-linux-gcc.cmake
|
||||
- armv7s-ios.cmake
|
||||
- mips32-linux-gcc.cmake
|
||||
- mips64-linux-gcc.cmake
|
||||
- x86-ios-simulator.cmake
|
||||
- x86-linux.cmake
|
||||
- x86-macos.cmake
|
||||
- x86\_64-ios-simulator.cmake
|
||||
|
||||
The following example demonstrates use of the x86-macos.cmake toolchain file on
|
||||
a x86\_64 MacOS host:
|
||||
|
||||
~~~
|
||||
$ cmake path/to/aom \
|
||||
-DCMAKE_TOOLCHAIN_FILE=path/to/aom/build/cmake/toolchains/x86-macos.cmake
|
||||
$ make
|
||||
~~~
|
||||
|
||||
To build for an unlisted target creation of a new toolchain file is the best
|
||||
solution. The existing toolchain files can be used a starting point for a new
|
||||
toolchain file since each one exposes the basic requirements for toolchain files
|
||||
as used in the AV1 codec build.
|
||||
|
||||
As a temporary work around an unoptimized AV1 configuration that builds only C
|
||||
and C++ sources can be produced using the following commands:
|
||||
|
||||
~~~
|
||||
$ cmake path/to/aom -DAOM_TARGET_CPU=generic
|
||||
$ make
|
||||
~~~
|
||||
|
||||
In addition to the above it's important to note that the toolchain files
|
||||
suffixed with gcc behave differently than the others. These toolchain files
|
||||
attempt to obey the $CROSS environment variable.
|
||||
|
||||
### Microsoft Visual Studio builds
|
||||
|
||||
Building the AV1 codec library in Microsoft Visual Studio is supported. The
|
||||
following example demonstrates generating projects and a solution for the
|
||||
Microsoft IDE:
|
||||
|
||||
~~~
|
||||
# This does not require a bash shell; command.exe is fine.
|
||||
$ cmake path/to/aom -G "Visual Studio 15 2017"
|
||||
~~~
|
||||
|
||||
### Xcode builds
|
||||
|
||||
Building the AV1 codec library in Xcode is supported. The following example
|
||||
demonstrates generating an Xcode project:
|
||||
|
||||
~~~
|
||||
$ cmake path/to/aom -G Xcode
|
||||
~~~
|
||||
|
||||
### Emscripten builds
|
||||
|
||||
Building the AV1 codec library with Emscripten is supported. Typically this is
|
||||
used to hook into the AOMAnalyzer GUI application. These instructions focus on
|
||||
using the inspector with AOMAnalyzer, but all tools can be built with
|
||||
Emscripten.
|
||||
|
||||
It is assumed here that you have already downloaded and installed the EMSDK,
|
||||
installed and activated at least one toolchain, and setup your environment
|
||||
appropriately using the emsdk\_env script.
|
||||
|
||||
1. Download [AOMAnalyzer](https://people.xiph.org/~mbebenita/analyzer/).
|
||||
|
||||
2. Configure the build:
|
||||
|
||||
~~~
|
||||
$ cmake path/to/aom \
|
||||
-DENABLE_CCACHE=1 \
|
||||
-DAOM_TARGET_CPU=generic \
|
||||
-DENABLE_DOCS=0 \
|
||||
-DCONFIG_ACCOUNTING=1 \
|
||||
-DCONFIG_INSPECTION=1 \
|
||||
-DCONFIG_MULTITHREAD=0 \
|
||||
-DCONFIG_RUNTIME_CPU_DETECT=0 \
|
||||
-DCONFIG_UNIT_TESTS=0 \
|
||||
-DCONFIG_WEBM_IO=0 \
|
||||
-DCMAKE_TOOLCHAIN_FILE=path/to/emsdk-portable/.../Emscripten.cmake
|
||||
~~~
|
||||
|
||||
3. Build it: run make if that's your generator of choice:
|
||||
|
||||
~~~
|
||||
$ make inspect
|
||||
~~~
|
||||
|
||||
4. Run the analyzer:
|
||||
|
||||
~~~
|
||||
# inspect.js is in the examples sub directory of the directory in which you
|
||||
# executed cmake.
|
||||
$ path/to/AOMAnalyzer path/to/examples/inspect.js path/to/av1/input/file
|
||||
~~~
|
||||
|
||||
|
||||
## Testing the AV1 codec
|
||||
|
||||
### Testing basics
|
||||
|
||||
Currently there are two types of tests in the AV1 codec repository.
|
||||
|
||||
#### 1. Unit tests:
|
||||
|
||||
The unit tests can be run at build time:
|
||||
|
||||
~~~
|
||||
# Before running the make command the LIBAOM_TEST_DATA_PATH environment
|
||||
# variable should be set to avoid downloading the test files to the
|
||||
# cmake build configuration directory.
|
||||
$ cmake path/to/aom
|
||||
# Note: The AV1 CMake build creates many test targets. Running make
|
||||
# with multiple jobs will speed up the test run significantly.
|
||||
$ make runtests
|
||||
~~~
|
||||
|
||||
#### 2. Example tests:
|
||||
|
||||
The example tests require a bash shell and can be run in the following manner:
|
||||
|
||||
~~~
|
||||
# See the note above about LIBAOM_TEST_DATA_PATH above.
|
||||
$ cmake path/to/aom
|
||||
$ make
|
||||
# It's best to build the testdata target using many make jobs.
|
||||
# Running it like this will verify and download (if necessary)
|
||||
# one at a time, which takes a while.
|
||||
$ make testdata
|
||||
$ path/to/aom/test/examples.sh --bin-path examples
|
||||
~~~
|
||||
|
||||
### IDE hosted tests
|
||||
|
||||
By default the generated projects files created by CMake will not include the
|
||||
runtests and testdata rules when generating for IDEs like Microsoft Visual
|
||||
Studio and Xcode. This is done to avoid intolerably long build cycles in the
|
||||
IDEs-- IDE behavior is to build all targets when selecting the build project
|
||||
options in MSVS and Xcode. To enable the test rules in IDEs the
|
||||
`ENABLE_IDE_TEST_HOSTING` variable must be enabled at CMake generation time:
|
||||
|
||||
~~~
|
||||
# This example uses Xcode. To get a list of the generators
|
||||
# available, run cmake with the -G argument missing its
|
||||
# value.
|
||||
$ cmake path/to/aom -DENABLE_IDE_TEST_HOSTING=1 -G Xcode
|
||||
~~~
|
||||
|
||||
### Downloading the test data
|
||||
|
||||
The fastest and easiest way to obtain the test data is to use CMake to generate
|
||||
a build using the Unix Makefiles generator, and then to build only the testdata
|
||||
rule:
|
||||
|
||||
~~~
|
||||
$ cmake path/to/aom -G "Unix Makefiles"
|
||||
# 28 is used because there are 28 test files as of this writing.
|
||||
$ make -j28 testdata
|
||||
~~~
|
||||
|
||||
The above make command will only download and verify the test data.
|
||||
|
||||
### Sharded testing
|
||||
|
||||
The AV1 codec library unit tests are built upon gtest which supports sharding of
|
||||
test jobs. Sharded test runs can be achieved in a couple of ways.
|
||||
|
||||
#### 1. Running test\_libaom directly:
|
||||
|
||||
~~~
|
||||
# Set the environment variable GTEST_TOTAL_SHARDS to 9 to run 10 test shards
|
||||
# (GTEST shard indexing is 0 based).
|
||||
$ export GTEST_TOTAL_SHARDS=9
|
||||
$ for shard in $(seq 0 ${GTEST_TOTAL_SHARDS}); do \
|
||||
[ ${shard} -lt ${GTEST_TOTAL_SHARDS} ] \
|
||||
&& GTEST_SHARD_INDEX=${shard} ./test_libaom & \
|
||||
done
|
||||
|
||||
~~~
|
||||
|
||||
To create a test shard for each CPU core available on the current system set
|
||||
`GTEST_TOTAL_SHARDS` to the number of CPU cores on your system minus one.
|
||||
|
||||
#### 2. Running the tests via the CMake build:
|
||||
|
||||
~~~
|
||||
# For IDE based builds, ENABLE_IDE_TEST_HOSTING must be enabled. See
|
||||
# the IDE hosted tests section above for more information. If the IDE
|
||||
# supports building targets concurrently tests will be sharded by default.
|
||||
|
||||
# For make and ninja builds the -j parameter controls the number of shards
|
||||
# at test run time. This example will run the tests using 10 shards via
|
||||
# make.
|
||||
$ make -j10 runtests
|
||||
~~~
|
||||
|
||||
The maximum number of test targets that can run concurrently is determined by
|
||||
the number of CPUs on the system where the build is configured as detected by
|
||||
CMake. A system with 24 cores can run 24 test shards using a value of 24 with
|
||||
the `-j` parameter. When CMake is unable to detect the number of cores 10 shards
|
||||
is the default maximum value.
|
||||
|
||||
## Coding style
|
||||
|
||||
The coding style used by this project is enforced with clang-format using the
|
||||
configuration contained in the .clang-format file in the root of the repository.
|
||||
|
||||
Before pushing changes for review you can format your code with:
|
||||
|
||||
~~~
|
||||
# Apply clang-format to modified .c, .h and .cc files
|
||||
$ clang-format -i --style=file \
|
||||
$(git diff --name-only --diff-filter=ACMR '*.[hc]' '*.cc')
|
||||
~~~
|
||||
|
||||
Check the .clang-format file for the version used to generate it if there is any
|
||||
difference between your local formatting and the review system.
|
||||
|
||||
See also: http://clang.llvm.org/docs/ClangFormat.html
|
||||
|
||||
## Support
|
||||
|
||||
This library is an open source project supported by its community. Please
|
||||
please email aomediacodec@jointdevelopment.kavi.com for help.
|
||||
|
||||
## Bug reports
|
||||
|
||||
Bug reports can be filed in the Alliance for Open Media
|
||||
[issue tracker](https://bugs.chromium.org/p/aomedia/issues/list).
|
||||
3
third_party/aom/aom/aom_decoder.h
vendored
3
third_party/aom/aom/aom_decoder.h
vendored
|
|
@ -107,7 +107,8 @@ typedef struct aom_codec_dec_cfg {
|
|||
unsigned int threads; /**< Maximum number of threads to use, default 1 */
|
||||
unsigned int w; /**< Width */
|
||||
unsigned int h; /**< Height */
|
||||
} aom_codec_dec_cfg_t; /**< alias for struct aom_codec_dec_cfg */
|
||||
unsigned int allow_lowbitdepth; /**< Allow use of low-bitdepth coding path */
|
||||
} aom_codec_dec_cfg_t; /**< alias for struct aom_codec_dec_cfg */
|
||||
|
||||
/*!\brief Initialize a decoder instance
|
||||
*
|
||||
|
|
|
|||
69
third_party/aom/aom/aom_encoder.h
vendored
69
third_party/aom/aom/aom_encoder.h
vendored
|
|
@ -363,44 +363,63 @@ typedef struct aom_codec_enc_cfg {
|
|||
*/
|
||||
unsigned int rc_dropframe_thresh;
|
||||
|
||||
/*!\brief Enable/disable spatial resampling, if supported by the codec.
|
||||
/*!\brief Mode for spatial resampling, if supported by the codec.
|
||||
*
|
||||
* Spatial resampling allows the codec to compress a lower resolution
|
||||
* version of the frame, which is then upscaled by the encoder to the
|
||||
* version of the frame, which is then upscaled by the decoder to the
|
||||
* correct presentation resolution. This increases visual quality at
|
||||
* low data rates, at the expense of CPU time on the encoder/decoder.
|
||||
*/
|
||||
unsigned int rc_resize_allowed;
|
||||
unsigned int rc_resize_mode;
|
||||
|
||||
/*!\brief Internal coded frame width.
|
||||
/*!\brief Frame resize numerator.
|
||||
*
|
||||
* If spatial resampling is enabled this specifies the width of the
|
||||
* encoded frame.
|
||||
* The numerator for resize to use, assuming 16 as the denominator.
|
||||
*
|
||||
* Valid numerators are 8 - 16 for now.
|
||||
*/
|
||||
unsigned int rc_scaled_width;
|
||||
unsigned int rc_resize_numerator;
|
||||
|
||||
/*!\brief Internal coded frame height.
|
||||
/*!\brief Keyframe resize numerator.
|
||||
*
|
||||
* If spatial resampling is enabled this specifies the height of the
|
||||
* encoded frame.
|
||||
* The numerator for resize to use, assuming 16 as the denominator.
|
||||
*
|
||||
* Valid numerators are 8 - 16 for now.
|
||||
*/
|
||||
unsigned int rc_scaled_height;
|
||||
unsigned int rc_resize_kf_numerator;
|
||||
|
||||
/*!\brief Spatial resampling up watermark.
|
||||
/*!\brief Frame super-resolution scaling mode.
|
||||
*
|
||||
* This threshold is described as a percentage of the target data buffer.
|
||||
* When the data buffer rises above this percentage of fullness, the
|
||||
* encoder will step up to a higher resolution version of the frame.
|
||||
* Similar to spatial resampling, frame super-resolution integrates
|
||||
* upscaling after the encode/decode process. Taking control of upscaling and
|
||||
* using restoration filters should allow it to outperform normal resizing.
|
||||
*
|
||||
* Mode 0 is SUPERRES_NONE, mode 1 is SUPERRES_FIXED, and mode 2 is
|
||||
* SUPERRES_DYNAMIC.
|
||||
*/
|
||||
unsigned int rc_resize_up_thresh;
|
||||
unsigned int rc_superres_mode;
|
||||
|
||||
/*!\brief Spatial resampling down watermark.
|
||||
/*!\brief Frame super-resolution numerator.
|
||||
*
|
||||
* This threshold is described as a percentage of the target data buffer.
|
||||
* When the data buffer falls below this percentage of fullness, the
|
||||
* encoder will step down to a lower resolution version of the frame.
|
||||
* The numerator for superres to use. If fixed it will only change if the
|
||||
* cumulative scale change over resizing and superres is greater than 1/2;
|
||||
* this forces superres to reduce scaling.
|
||||
*
|
||||
* Valid numerators are 8 to 16.
|
||||
*
|
||||
* Ignored by SUPERRES_DYNAMIC.
|
||||
*/
|
||||
unsigned int rc_resize_down_thresh;
|
||||
unsigned int rc_superres_numerator;
|
||||
|
||||
/*!\brief Keyframe super-resolution numerator.
|
||||
*
|
||||
* The numerator for superres to use. If fixed it will only change if the
|
||||
* cumulative scale change over resizing and superres is greater than 1/2;
|
||||
* this forces superres to reduce scaling.
|
||||
*
|
||||
* Valid numerators are 8 - 16 for now.
|
||||
*/
|
||||
unsigned int rc_superres_kf_numerator;
|
||||
|
||||
/*!\brief Rate control algorithm to use.
|
||||
*
|
||||
|
|
@ -574,6 +593,14 @@ typedef struct aom_codec_enc_cfg {
|
|||
* equal to kf_max_dist for a fixed interval.
|
||||
*/
|
||||
unsigned int kf_max_dist;
|
||||
|
||||
/*!\brief Tile coding mode
|
||||
*
|
||||
* This value indicates the tile coding mode.
|
||||
* A value of 0 implies a normal non-large-scale tile coding. A value of 1
|
||||
* implies a large-scale tile coding.
|
||||
*/
|
||||
unsigned int large_scale_tile;
|
||||
} aom_codec_enc_cfg_t; /**< alias for struct aom_codec_enc_cfg */
|
||||
|
||||
/*!\brief Initialize an encoder instance
|
||||
|
|
|
|||
46
third_party/aom/aom/aom_image.h
vendored
46
third_party/aom/aom/aom_image.h
vendored
|
|
@ -35,6 +35,8 @@ extern "C" {
|
|||
#define AOM_IMG_FMT_HAS_ALPHA 0x400 /**< Image has an alpha channel. */
|
||||
#define AOM_IMG_FMT_HIGHBITDEPTH 0x800 /**< Image uses 16bit framebuffer. */
|
||||
|
||||
#include "./aom_config.h"
|
||||
|
||||
/*!\brief List of supported image formats */
|
||||
typedef enum aom_img_fmt {
|
||||
AOM_IMG_FMT_NONE,
|
||||
|
|
@ -74,10 +76,28 @@ typedef enum aom_color_space {
|
|||
AOM_CS_BT_709 = 2, /**< BT.709 */
|
||||
AOM_CS_SMPTE_170 = 3, /**< SMPTE.170 */
|
||||
AOM_CS_SMPTE_240 = 4, /**< SMPTE.240 */
|
||||
AOM_CS_BT_2020 = 5, /**< BT.2020 */
|
||||
AOM_CS_RESERVED = 6, /**< Reserved */
|
||||
AOM_CS_SRGB = 7 /**< sRGB */
|
||||
} aom_color_space_t; /**< alias for enum aom_color_space */
|
||||
#if CONFIG_COLORSPACE_HEADERS
|
||||
AOM_CS_BT_2020_NCL = 5, /**< BT.2020 non-constant luminance (BT.2100) */
|
||||
AOM_CS_BT_2020_CL = 6, /**< BT.2020 constant luminance */
|
||||
AOM_CS_SRGB = 7, /**< sRGB */
|
||||
AOM_CS_ICTCP = 8, /**< ICtCp, ITU-R BT.2100 */
|
||||
AOM_CS_RESERVED = 9 /**< Values 9..31 are reserved */
|
||||
#else
|
||||
AOM_CS_BT_2020 = 5, /**< BT.2020 */
|
||||
AOM_CS_RESERVED = 6, /**< Reserved */
|
||||
AOM_CS_SRGB = 7 /**< sRGB */
|
||||
#endif
|
||||
} aom_color_space_t; /**< alias for enum aom_color_space */
|
||||
|
||||
#if CONFIG_COLORSPACE_HEADERS
|
||||
typedef enum aom_transfer_function {
|
||||
AOM_TF_UNKNOWN = 0, /**< Unknown */
|
||||
AOM_TF_BT_709 = 1, /**< BT.709 */
|
||||
AOM_TF_PQ = 2, /**< PQ TF BT.2100 / ST.2084 */
|
||||
AOM_TF_HLG = 3, /**< Hybrid Log-Gamma */
|
||||
AOM_TF_RESERVED = 4 /**< Values 4..31 are reserved */
|
||||
} aom_transfer_function_t; /**< alias for enum aom_transfer_function */
|
||||
#endif
|
||||
|
||||
/*!\brief List of supported color range */
|
||||
typedef enum aom_color_range {
|
||||
|
|
@ -85,10 +105,24 @@ typedef enum aom_color_range {
|
|||
AOM_CR_FULL_RANGE = 1 /**< YUV/RGB [0..255] */
|
||||
} aom_color_range_t; /**< alias for enum aom_color_range */
|
||||
|
||||
#if CONFIG_COLORSPACE_HEADERS
|
||||
typedef enum aom_chroma_sample_position {
|
||||
AOM_CSP_UNKNOWN = 0, /**< Unknown */
|
||||
AOM_CSP_VERTICAL = 1, /**< Horizontally co-located with luma(0, 0)*/
|
||||
/**< sample, between two vertical samples */
|
||||
AOM_CSP_COLOCATED = 2, /**< Co-located with luma(0, 0) sample */
|
||||
AOM_CSP_RESERVED = 3 /**< Reserved value */
|
||||
} aom_chroma_sample_position_t; /**< alias for enum aom_transfer_function */
|
||||
#endif
|
||||
|
||||
/**\brief Image Descriptor */
|
||||
typedef struct aom_image {
|
||||
aom_img_fmt_t fmt; /**< Image Format */
|
||||
aom_color_space_t cs; /**< Color Space */
|
||||
aom_img_fmt_t fmt; /**< Image Format */
|
||||
aom_color_space_t cs; /**< Color Space */
|
||||
#if CONFIG_COLORSPACE_HEADERS
|
||||
aom_transfer_function_t tf; /**< transfer function */
|
||||
aom_chroma_sample_position_t csp; /**< chroma sample position */
|
||||
#endif
|
||||
aom_color_range_t range; /**< Color Range */
|
||||
|
||||
/* Image storage dimensions */
|
||||
|
|
|
|||
2
third_party/aom/aom/aom_integer.h
vendored
2
third_party/aom/aom/aom_integer.h
vendored
|
|
@ -61,4 +61,6 @@ typedef size_t uintptr_t;
|
|||
#include <inttypes.h>
|
||||
#endif
|
||||
|
||||
#define NELEMENTS(x) (int)(sizeof(x) / sizeof(x[0]))
|
||||
|
||||
#endif // AOM_AOM_INTEGER_H_
|
||||
|
|
|
|||
50
third_party/aom/aom/aomcx.h
vendored
50
third_party/aom/aom/aomcx.h
vendored
|
|
@ -327,18 +327,41 @@ enum aome_enc_control_id {
|
|||
AV1E_SET_TUNE_CONTENT,
|
||||
|
||||
/*!\brief Codec control function to set color space info.
|
||||
* \note Valid ranges: 0..7, default is "UNKNOWN".
|
||||
* \note Valid ranges: 0..9, default is "UNKNOWN".
|
||||
* 0 = UNKNOWN,
|
||||
* 1 = BT_601
|
||||
* 2 = BT_709
|
||||
* 3 = SMPTE_170
|
||||
* 4 = SMPTE_240
|
||||
* 5 = BT_2020
|
||||
* 6 = RESERVED
|
||||
* 5 = BT_2020_NCL
|
||||
* 6 = BT_2020_CL
|
||||
* 7 = SRGB
|
||||
* 8 = ICtCp
|
||||
* 9 = RESERVED
|
||||
*/
|
||||
AV1E_SET_COLOR_SPACE,
|
||||
|
||||
#if CONFIG_COLORSPACE_HEADERS
|
||||
/*!\brief Codec control function to set transfer function info.
|
||||
* \note Valid ranges: 0..4, default is "UNKNOWN".
|
||||
* 0 = UNKNOWN,
|
||||
* 1 = BT_709
|
||||
* 2 = PQ
|
||||
* 3 = HLG
|
||||
* 4 = RESERVED
|
||||
*/
|
||||
AV1E_SET_TRANSFER_FUNCTION,
|
||||
|
||||
/*!\brief Codec control function to set chroma 4:2:0 sample position info.
|
||||
* \note Valid ranges: 0..3, default is "UNKNOWN".
|
||||
* 0 = UNKNOWN,
|
||||
* 1 = VERTICAL
|
||||
* 2 = COLOCATED
|
||||
* 3 = RESERVED
|
||||
*/
|
||||
AV1E_SET_CHROMA_SAMPLE_POSITION,
|
||||
#endif
|
||||
|
||||
/*!\brief Codec control function to set minimum interval between GF/ARF frames
|
||||
*
|
||||
* By default the value is set as 4.
|
||||
|
|
@ -515,14 +538,15 @@ enum aome_enc_control_id {
|
|||
*/
|
||||
AV1E_SET_DELTAQ_MODE,
|
||||
|
||||
/*!\brief Codec control function to set the tile encoding mode to 0 or 1.
|
||||
/*!\brief Codec control function to set the single tile decoding mode to 0 or
|
||||
* 1.
|
||||
*
|
||||
* 0 means that the tile encoding mode is TILE_NORMAL, and 1 means that the
|
||||
* tile encoding mode is TILE_VR.
|
||||
* 0 means that the single tile decoding is off, and 1 means that the single
|
||||
* tile decoding is on.
|
||||
*
|
||||
* Experiment: EXT_TILE
|
||||
*/
|
||||
AV1E_SET_TILE_ENCODING_MODE,
|
||||
AV1E_SET_SINGLE_TILE_DECODING,
|
||||
|
||||
/*!\brief Codec control function to enable the extreme motion vector unit test
|
||||
* in AV1. Please note that this is only used in motion vector unit test.
|
||||
|
|
@ -704,6 +728,14 @@ AOM_CTRL_USE_TYPE(AV1E_SET_TUNE_CONTENT, int) /* aom_tune_content */
|
|||
AOM_CTRL_USE_TYPE(AV1E_SET_COLOR_SPACE, int)
|
||||
#define AOM_CTRL_AV1E_SET_COLOR_SPACE
|
||||
|
||||
#if CONFIG_COLORSPACE_HEADERS
|
||||
AOM_CTRL_USE_TYPE(AV1E_SET_TRANSFER_FUNCTION, int)
|
||||
#define AOM_CTRL_AV1E_SET_TRANSFER_FUNCTION
|
||||
|
||||
AOM_CTRL_USE_TYPE(AV1E_SET_CHROMA_SAMPLE_POSITION, int)
|
||||
#define AOM_CTRL_AV1E_SET_CHROMA_SAMPLE_POSITION
|
||||
#endif
|
||||
|
||||
AOM_CTRL_USE_TYPE(AV1E_SET_MIN_GF_INTERVAL, unsigned int)
|
||||
#define AOM_CTRL_AV1E_SET_MIN_GF_INTERVAL
|
||||
|
||||
|
|
@ -735,8 +767,8 @@ AOM_CTRL_USE_TYPE(AV1E_GET_LEVEL, int *)
|
|||
AOM_CTRL_USE_TYPE(AV1E_SET_ANS_WINDOW_SIZE_LOG2, unsigned int)
|
||||
#define AOM_CTRL_AV1E_SET_ANS_WINDOW_SIZE_LOG2
|
||||
|
||||
AOM_CTRL_USE_TYPE(AV1E_SET_TILE_ENCODING_MODE, unsigned int)
|
||||
#define AOM_CTRL_AV1E_SET_TILE_ENCODING_MODE
|
||||
AOM_CTRL_USE_TYPE(AV1E_SET_SINGLE_TILE_DECODING, unsigned int)
|
||||
#define AOM_CTRL_AV1E_SET_SINGLE_TILE_DECODING
|
||||
|
||||
AOM_CTRL_USE_TYPE(AV1E_ENABLE_MOTION_VECTOR_UNIT_TEST, unsigned int)
|
||||
#define AOM_CTRL_AV1E_ENABLE_MOTION_VECTOR_UNIT_TEST
|
||||
|
|
|
|||
227
third_party/aom/aom_dsp/aom_convolve.c
vendored
227
third_party/aom/aom_dsp/aom_convolve.c
vendored
|
|
@ -41,6 +41,29 @@ static void convolve_horiz(const uint8_t *src, ptrdiff_t src_stride,
|
|||
}
|
||||
}
|
||||
|
||||
static void convolve_horiz_scale_c(const uint8_t *src, ptrdiff_t src_stride,
|
||||
uint8_t *dst, ptrdiff_t dst_stride,
|
||||
const InterpKernel *x_filters, int x0_qn,
|
||||
int x_step_qn, int w, int h) {
|
||||
int x, y;
|
||||
src -= SUBPEL_TAPS / 2 - 1;
|
||||
for (y = 0; y < h; ++y) {
|
||||
int x_qn = x0_qn;
|
||||
for (x = 0; x < w; ++x) {
|
||||
const uint8_t *const src_x = &src[x_qn >> SCALE_SUBPEL_BITS]; // q8
|
||||
const int x_filter_idx = (x_qn & SCALE_SUBPEL_MASK) >> SCALE_EXTRA_BITS;
|
||||
assert(x_filter_idx < SUBPEL_SHIFTS);
|
||||
const int16_t *const x_filter = x_filters[x_filter_idx];
|
||||
int k, sum = 0;
|
||||
for (k = 0; k < SUBPEL_TAPS; ++k) sum += src_x[k] * x_filter[k];
|
||||
dst[x] = clip_pixel(ROUND_POWER_OF_TWO(sum, FILTER_BITS));
|
||||
x_qn += x_step_qn;
|
||||
}
|
||||
src += src_stride;
|
||||
dst += dst_stride;
|
||||
}
|
||||
}
|
||||
|
||||
static void convolve_avg_horiz(const uint8_t *src, ptrdiff_t src_stride,
|
||||
uint8_t *dst, ptrdiff_t dst_stride,
|
||||
const InterpKernel *x_filters, int x0_q4,
|
||||
|
|
@ -63,6 +86,30 @@ static void convolve_avg_horiz(const uint8_t *src, ptrdiff_t src_stride,
|
|||
}
|
||||
}
|
||||
|
||||
static void convolve_avg_horiz_scale_c(const uint8_t *src, ptrdiff_t src_stride,
|
||||
uint8_t *dst, ptrdiff_t dst_stride,
|
||||
const InterpKernel *x_filters, int x0_qn,
|
||||
int x_step_qn, int w, int h) {
|
||||
int x, y;
|
||||
src -= SUBPEL_TAPS / 2 - 1;
|
||||
for (y = 0; y < h; ++y) {
|
||||
int x_qn = x0_qn;
|
||||
for (x = 0; x < w; ++x) {
|
||||
const uint8_t *const src_x = &src[x_qn >> SCALE_SUBPEL_BITS];
|
||||
const int x_filter_idx = (x_qn & SCALE_SUBPEL_MASK) >> SCALE_EXTRA_BITS;
|
||||
assert(x_filter_idx < SUBPEL_SHIFTS);
|
||||
const int16_t *const x_filter = x_filters[x_filter_idx];
|
||||
int k, sum = 0;
|
||||
for (k = 0; k < SUBPEL_TAPS; ++k) sum += src_x[k] * x_filter[k];
|
||||
dst[x] = ROUND_POWER_OF_TWO(
|
||||
dst[x] + clip_pixel(ROUND_POWER_OF_TWO(sum, FILTER_BITS)), 1);
|
||||
x_qn += x_step_qn;
|
||||
}
|
||||
src += src_stride;
|
||||
dst += dst_stride;
|
||||
}
|
||||
}
|
||||
|
||||
static void convolve_vert(const uint8_t *src, ptrdiff_t src_stride,
|
||||
uint8_t *dst, ptrdiff_t dst_stride,
|
||||
const InterpKernel *y_filters, int y0_q4,
|
||||
|
|
@ -86,6 +133,31 @@ static void convolve_vert(const uint8_t *src, ptrdiff_t src_stride,
|
|||
}
|
||||
}
|
||||
|
||||
static void convolve_vert_scale_c(const uint8_t *src, ptrdiff_t src_stride,
|
||||
uint8_t *dst, ptrdiff_t dst_stride,
|
||||
const InterpKernel *y_filters, int y0_qn,
|
||||
int y_step_qn, int w, int h) {
|
||||
int x, y;
|
||||
src -= src_stride * (SUBPEL_TAPS / 2 - 1);
|
||||
|
||||
for (x = 0; x < w; ++x) {
|
||||
int y_qn = y0_qn;
|
||||
for (y = 0; y < h; ++y) {
|
||||
const unsigned char *src_y =
|
||||
&src[(y_qn >> SCALE_SUBPEL_BITS) * src_stride];
|
||||
const int16_t *const y_filter =
|
||||
y_filters[(y_qn & SCALE_SUBPEL_MASK) >> SCALE_EXTRA_BITS];
|
||||
int k, sum = 0;
|
||||
for (k = 0; k < SUBPEL_TAPS; ++k)
|
||||
sum += src_y[k * src_stride] * y_filter[k];
|
||||
dst[y * dst_stride] = clip_pixel(ROUND_POWER_OF_TWO(sum, FILTER_BITS));
|
||||
y_qn += y_step_qn;
|
||||
}
|
||||
++src;
|
||||
++dst;
|
||||
}
|
||||
}
|
||||
|
||||
static void convolve_avg_vert(const uint8_t *src, ptrdiff_t src_stride,
|
||||
uint8_t *dst, ptrdiff_t dst_stride,
|
||||
const InterpKernel *y_filters, int y0_q4,
|
||||
|
|
@ -112,6 +184,34 @@ static void convolve_avg_vert(const uint8_t *src, ptrdiff_t src_stride,
|
|||
}
|
||||
}
|
||||
|
||||
static void convolve_avg_vert_scale_c(const uint8_t *src, ptrdiff_t src_stride,
|
||||
uint8_t *dst, ptrdiff_t dst_stride,
|
||||
const InterpKernel *y_filters, int y0_qn,
|
||||
int y_step_qn, int w, int h) {
|
||||
int x, y;
|
||||
src -= src_stride * (SUBPEL_TAPS / 2 - 1);
|
||||
|
||||
for (x = 0; x < w; ++x) {
|
||||
int y_qn = y0_qn;
|
||||
for (y = 0; y < h; ++y) {
|
||||
const unsigned char *src_y =
|
||||
&src[(y_qn >> SCALE_SUBPEL_BITS) * src_stride];
|
||||
const int16_t *const y_filter =
|
||||
y_filters[(y_qn & SCALE_SUBPEL_MASK) >> SCALE_EXTRA_BITS];
|
||||
int k, sum = 0;
|
||||
for (k = 0; k < SUBPEL_TAPS; ++k)
|
||||
sum += src_y[k * src_stride] * y_filter[k];
|
||||
dst[y * dst_stride] = ROUND_POWER_OF_TWO(
|
||||
dst[y * dst_stride] +
|
||||
clip_pixel(ROUND_POWER_OF_TWO(sum, FILTER_BITS)),
|
||||
1);
|
||||
y_qn += y_step_qn;
|
||||
}
|
||||
++src;
|
||||
++dst;
|
||||
}
|
||||
}
|
||||
|
||||
static void convolve(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst,
|
||||
ptrdiff_t dst_stride, const InterpKernel *const x_filters,
|
||||
int x0_q4, int x_step_q4,
|
||||
|
|
@ -146,6 +246,41 @@ static void convolve(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst,
|
|||
dst_stride, y_filters, y0_q4, y_step_q4, w, h);
|
||||
}
|
||||
|
||||
static void convolve_scale_c(const uint8_t *src, ptrdiff_t src_stride,
|
||||
uint8_t *dst, ptrdiff_t dst_stride,
|
||||
const InterpKernel *const x_filters, int x0_qn,
|
||||
int x_step_qn, const InterpKernel *const y_filters,
|
||||
int y0_qn, int y_step_qn, int w, int h) {
|
||||
// TODO(afergs): Update comment here
|
||||
// Note: Fixed size intermediate buffer, temp, places limits on parameters.
|
||||
// 2d filtering proceeds in 2 steps:
|
||||
// (1) Interpolate horizontally into an intermediate buffer, temp.
|
||||
// (2) Interpolate temp vertically to derive the sub-pixel result.
|
||||
// Deriving the maximum number of rows in the temp buffer (135):
|
||||
// --Smallest scaling factor is x1/2 ==> y_step_qn = 32 (Normative).
|
||||
// --Largest block size is 64x64 pixels.
|
||||
// --64 rows in the downscaled frame span a distance of (64 - 1) * 32 in the
|
||||
// original frame (in 1/16th pixel units).
|
||||
// --Must round-up because block may be located at sub-pixel position.
|
||||
// --Require an additional SUBPEL_TAPS rows for the 8-tap filter tails.
|
||||
// --((64 - 1) * 32 + 15) >> 4 + 8 = 135.
|
||||
uint8_t temp[MAX_EXT_SIZE * MAX_SB_SIZE];
|
||||
int intermediate_height =
|
||||
(((h - 1) * y_step_qn + y0_qn) >> SCALE_SUBPEL_BITS) + SUBPEL_TAPS;
|
||||
|
||||
assert(w <= MAX_SB_SIZE);
|
||||
assert(h <= MAX_SB_SIZE);
|
||||
|
||||
assert(y_step_qn <= SCALE_SUBPEL_BITS * 2);
|
||||
assert(x_step_qn <= SCALE_SUBPEL_BITS * 2);
|
||||
|
||||
convolve_horiz_scale_c(src - src_stride * (SUBPEL_TAPS / 2 - 1), src_stride,
|
||||
temp, MAX_SB_SIZE, x_filters, x0_qn, x_step_qn, w,
|
||||
intermediate_height);
|
||||
convolve_vert_scale_c(temp + MAX_SB_SIZE * (SUBPEL_TAPS / 2 - 1), MAX_SB_SIZE,
|
||||
dst, dst_stride, y_filters, y0_qn, y_step_qn, w, h);
|
||||
}
|
||||
|
||||
static const InterpKernel *get_filter_base(const int16_t *filter) {
|
||||
// NOTE: This assumes that the filter table is 256-byte aligned.
|
||||
// TODO(agrange) Modify to make independent of table alignment.
|
||||
|
|
@ -171,6 +306,21 @@ void aom_convolve8_horiz_c(const uint8_t *src, ptrdiff_t src_stride,
|
|||
w, h);
|
||||
}
|
||||
|
||||
void aom_convolve8_horiz_scale_c(const uint8_t *src, ptrdiff_t src_stride,
|
||||
uint8_t *dst, ptrdiff_t dst_stride,
|
||||
const int16_t *filter_x, int subpel_x,
|
||||
int x_step_qn, const int16_t *filter_y,
|
||||
int subpel_y, int y_step_qn, int w, int h) {
|
||||
const InterpKernel *const filters_x = get_filter_base(filter_x);
|
||||
|
||||
(void)subpel_y;
|
||||
(void)filter_y;
|
||||
(void)y_step_qn;
|
||||
|
||||
convolve_horiz_scale_c(src, src_stride, dst, dst_stride, filters_x, subpel_x,
|
||||
x_step_qn, w, h);
|
||||
}
|
||||
|
||||
void aom_convolve8_avg_horiz_c(const uint8_t *src, ptrdiff_t src_stride,
|
||||
uint8_t *dst, ptrdiff_t dst_stride,
|
||||
const int16_t *filter_x, int x_step_q4,
|
||||
|
|
@ -186,6 +336,22 @@ void aom_convolve8_avg_horiz_c(const uint8_t *src, ptrdiff_t src_stride,
|
|||
x_step_q4, w, h);
|
||||
}
|
||||
|
||||
void aom_convolve8_avg_horiz_scale_c(const uint8_t *src, ptrdiff_t src_stride,
|
||||
uint8_t *dst, ptrdiff_t dst_stride,
|
||||
const int16_t *filter_x, int subpel_x,
|
||||
int x_step_qn, const int16_t *filter_y,
|
||||
int subpel_y, int y_step_qn, int w,
|
||||
int h) {
|
||||
const InterpKernel *const filters_x = get_filter_base(filter_x);
|
||||
|
||||
(void)subpel_y;
|
||||
(void)filter_y;
|
||||
(void)y_step_qn;
|
||||
|
||||
convolve_avg_horiz_scale_c(src, src_stride, dst, dst_stride, filters_x,
|
||||
subpel_x, x_step_qn, w, h);
|
||||
}
|
||||
|
||||
void aom_convolve8_vert_c(const uint8_t *src, ptrdiff_t src_stride,
|
||||
uint8_t *dst, ptrdiff_t dst_stride,
|
||||
const int16_t *filter_x, int x_step_q4,
|
||||
|
|
@ -201,6 +367,21 @@ void aom_convolve8_vert_c(const uint8_t *src, ptrdiff_t src_stride,
|
|||
w, h);
|
||||
}
|
||||
|
||||
void aom_convolve8_vert_scale_c(const uint8_t *src, ptrdiff_t src_stride,
|
||||
uint8_t *dst, ptrdiff_t dst_stride,
|
||||
const int16_t *filter_x, int subpel_x,
|
||||
int x_step_qn, const int16_t *filter_y,
|
||||
int subpel_y, int y_step_qn, int w, int h) {
|
||||
const InterpKernel *const filters_y = get_filter_base(filter_y);
|
||||
|
||||
(void)subpel_x;
|
||||
(void)filter_x;
|
||||
(void)x_step_qn;
|
||||
|
||||
convolve_vert_scale_c(src, src_stride, dst, dst_stride, filters_y, subpel_y,
|
||||
y_step_qn, w, h);
|
||||
}
|
||||
|
||||
void aom_convolve8_avg_vert_c(const uint8_t *src, ptrdiff_t src_stride,
|
||||
uint8_t *dst, ptrdiff_t dst_stride,
|
||||
const int16_t *filter_x, int x_step_q4,
|
||||
|
|
@ -216,6 +397,21 @@ void aom_convolve8_avg_vert_c(const uint8_t *src, ptrdiff_t src_stride,
|
|||
y_step_q4, w, h);
|
||||
}
|
||||
|
||||
void aom_convolve8_avg_vert_scale_c(const uint8_t *src, ptrdiff_t src_stride,
|
||||
uint8_t *dst, ptrdiff_t dst_stride,
|
||||
const int16_t *filter_x, int subpel_x,
|
||||
int x_step_qn, const int16_t *filter_y,
|
||||
int subpel_y, int y_step_qn, int w, int h) {
|
||||
const InterpKernel *const filters_y = get_filter_base(filter_y);
|
||||
|
||||
(void)subpel_x;
|
||||
(void)filter_x;
|
||||
(void)x_step_qn;
|
||||
|
||||
convolve_avg_vert_scale_c(src, src_stride, dst, dst_stride, filters_y,
|
||||
subpel_y, y_step_qn, w, h);
|
||||
}
|
||||
|
||||
void aom_convolve8_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst,
|
||||
ptrdiff_t dst_stride, const int16_t *filter_x,
|
||||
int x_step_q4, const int16_t *filter_y, int y_step_q4,
|
||||
|
|
@ -230,6 +426,19 @@ void aom_convolve8_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst,
|
|||
filters_y, y0_q4, y_step_q4, w, h);
|
||||
}
|
||||
|
||||
void aom_convolve8_scale_c(const uint8_t *src, ptrdiff_t src_stride,
|
||||
uint8_t *dst, ptrdiff_t dst_stride,
|
||||
const int16_t *filter_x, int subpel_x, int x_step_qn,
|
||||
const int16_t *filter_y, int subpel_y, int y_step_qn,
|
||||
int w, int h) {
|
||||
const InterpKernel *const filters_x = get_filter_base(filter_x);
|
||||
|
||||
const InterpKernel *const filters_y = get_filter_base(filter_y);
|
||||
|
||||
convolve_scale_c(src, src_stride, dst, dst_stride, filters_x, subpel_x,
|
||||
x_step_qn, filters_y, subpel_y, y_step_qn, w, h);
|
||||
}
|
||||
|
||||
void aom_convolve8_avg_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst,
|
||||
ptrdiff_t dst_stride, const int16_t *filter_x,
|
||||
int x_step_q4, const int16_t *filter_y, int y_step_q4,
|
||||
|
|
@ -245,6 +454,22 @@ void aom_convolve8_avg_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst,
|
|||
h);
|
||||
}
|
||||
|
||||
void aom_convolve8_avg_scale_c(const uint8_t *src, ptrdiff_t src_stride,
|
||||
uint8_t *dst, ptrdiff_t dst_stride,
|
||||
const int16_t *filter_x, int subpel_x,
|
||||
int x_step_qn, const int16_t *filter_y,
|
||||
int subpel_y, int y_step_qn, int w, int h) {
|
||||
/* Fixed size intermediate buffer places limits on parameters. */
|
||||
DECLARE_ALIGNED(16, uint8_t, temp[MAX_SB_SIZE * MAX_SB_SIZE]);
|
||||
assert(w <= MAX_SB_SIZE);
|
||||
assert(h <= MAX_SB_SIZE);
|
||||
|
||||
aom_convolve8_scale_c(src, src_stride, temp, MAX_SB_SIZE, filter_x, subpel_x,
|
||||
x_step_qn, filter_y, subpel_y, y_step_qn, w, h);
|
||||
aom_convolve_avg_c(temp, MAX_SB_SIZE, dst, dst_stride, NULL, 0, NULL, 0, w,
|
||||
h);
|
||||
}
|
||||
|
||||
void aom_convolve_copy_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst,
|
||||
ptrdiff_t dst_stride, const int16_t *filter_x,
|
||||
int filter_x_stride, const int16_t *filter_y,
|
||||
|
|
@ -332,6 +557,7 @@ void aom_scaled_avg_2d_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst,
|
|||
filter_y, y_step_q4, w, h);
|
||||
}
|
||||
|
||||
// TODO(afergs): Make sure this works too
|
||||
#if CONFIG_LOOP_RESTORATION
|
||||
static void convolve_add_src_horiz(const uint8_t *src, ptrdiff_t src_stride,
|
||||
uint8_t *dst, ptrdiff_t dst_stride,
|
||||
|
|
@ -569,6 +795,7 @@ void aom_convolve8_add_src_hip_c(const uint8_t *src, ptrdiff_t src_stride,
|
|||
}
|
||||
#endif // CONFIG_LOOP_RESTORATION
|
||||
|
||||
// TODO(afergs): Make sure this works too
|
||||
#if CONFIG_HIGHBITDEPTH
|
||||
static void highbd_convolve_horiz(const uint8_t *src8, ptrdiff_t src_stride,
|
||||
uint8_t *dst8, ptrdiff_t dst_stride,
|
||||
|
|
|
|||
56
third_party/aom/aom_dsp/aom_dsp.cmake
vendored
56
third_party/aom/aom_dsp/aom_dsp.cmake
vendored
|
|
@ -287,6 +287,7 @@ if (CONFIG_AV1_ENCODER)
|
|||
"${AOM_ROOT}/aom_dsp/x86/fwd_dct32x32_impl_avx2.h"
|
||||
"${AOM_ROOT}/aom_dsp/x86/fwd_txfm_avx2.c"
|
||||
"${AOM_ROOT}/aom_dsp/x86/fwd_txfm_avx2.h"
|
||||
"${AOM_ROOT}/aom_dsp/x86/highbd_quantize_intrin_avx2.c"
|
||||
"${AOM_ROOT}/aom_dsp/x86/sad4d_avx2.c"
|
||||
"${AOM_ROOT}/aom_dsp/x86/sad_avx2.c"
|
||||
"${AOM_ROOT}/aom_dsp/x86/sad_impl_avx2.c"
|
||||
|
|
@ -312,6 +313,7 @@ if (CONFIG_AV1_ENCODER)
|
|||
"${AOM_ROOT}/aom_dsp/x86/fwd_txfm_sse2.c"
|
||||
"${AOM_ROOT}/aom_dsp/x86/fwd_txfm_sse2.h"
|
||||
"${AOM_ROOT}/aom_dsp/x86/halfpix_variance_sse2.c"
|
||||
"${AOM_ROOT}/aom_dsp/x86/highbd_quantize_intrin_sse2.c"
|
||||
"${AOM_ROOT}/aom_dsp/x86/variance_sse2.c"
|
||||
"${AOM_ROOT}/aom_dsp/x86/sum_squares_sse2.c")
|
||||
|
||||
|
|
@ -330,10 +332,16 @@ if (CONFIG_AV1_ENCODER)
|
|||
"${AOM_ROOT}/aom_dsp/mips/variance_msa.c"
|
||||
"${AOM_ROOT}/aom_dsp/mips/sub_pixel_variance_msa.c")
|
||||
|
||||
if (CONFIG_EXT_INTER)
|
||||
set(AOM_DSP_ENCODER_INTRIN_SSSE3
|
||||
${AOM_DSP_ENCODER_INTRIN_SSSE3}
|
||||
"${AOM_ROOT}/aom_dsp/x86/masked_sad_intrin_ssse3.c"
|
||||
"${AOM_ROOT}/aom_dsp/x86/masked_variance_intrin_ssse3.c")
|
||||
endif ()
|
||||
|
||||
if (CONFIG_HIGHBITDEPTH)
|
||||
set(AOM_DSP_ENCODER_INTRIN_SSE2
|
||||
${AOM_DSP_ENCODER_INTRIN_SSE2}
|
||||
"${AOM_ROOT}/aom_dsp/x86/highbd_quantize_intrin_sse2.c"
|
||||
"${AOM_ROOT}/aom_dsp/x86/highbd_subtract_sse2.c")
|
||||
endif ()
|
||||
endif ()
|
||||
|
|
@ -407,29 +415,38 @@ endif ()
|
|||
# has been created.
|
||||
function (setup_aom_dsp_targets)
|
||||
add_library(aom_dsp_common OBJECT ${AOM_DSP_COMMON_SOURCES})
|
||||
set(AOM_LIB_TARGETS ${AOM_LIB_TARGETS} aom_dsp_common)
|
||||
target_sources(aom PUBLIC $<TARGET_OBJECTS:aom_dsp_common>)
|
||||
list(APPEND AOM_LIB_TARGETS aom_dsp_common)
|
||||
create_dummy_source_file("aom_av1" "c" "dummy_source_file")
|
||||
add_library(aom_dsp OBJECT "${dummy_source_file}")
|
||||
target_sources(aom PRIVATE $<TARGET_OBJECTS:aom_dsp_common>)
|
||||
list(APPEND AOM_LIB_TARGETS aom_dsp)
|
||||
|
||||
# Not all generators support libraries consisting only of object files. Add a
|
||||
# dummy source file to the aom_dsp target.
|
||||
add_dummy_source_file_to_target("aom_dsp" "c")
|
||||
|
||||
if (CONFIG_AV1_DECODER)
|
||||
add_library(aom_dsp_decoder OBJECT ${AOM_DSP_DECODER_SOURCES})
|
||||
set(AOM_LIB_TARGETS ${AOM_LIB_TARGETS} aom_dsp_decoder)
|
||||
target_sources(aom PUBLIC $<TARGET_OBJECTS:aom_dsp_decoder>)
|
||||
target_sources(aom PRIVATE $<TARGET_OBJECTS:aom_dsp_decoder>)
|
||||
endif ()
|
||||
|
||||
if (CONFIG_AV1_ENCODER)
|
||||
add_library(aom_dsp_encoder OBJECT ${AOM_DSP_ENCODER_SOURCES})
|
||||
set(AOM_LIB_TARGETS ${AOM_LIB_TARGETS} aom_dsp_encoder)
|
||||
target_sources(aom PUBLIC $<TARGET_OBJECTS:aom_dsp_encoder>)
|
||||
target_sources(aom PRIVATE $<TARGET_OBJECTS:aom_dsp_encoder>)
|
||||
endif ()
|
||||
|
||||
if (HAVE_SSE2)
|
||||
add_asm_library("aom_dsp_common_sse2" "AOM_DSP_COMMON_ASM_SSE2" "aom")
|
||||
add_intrinsics_object_library("-msse2" "sse2" "aom_dsp_common"
|
||||
"AOM_DSP_COMMON_INTRIN_SSE2")
|
||||
"AOM_DSP_COMMON_INTRIN_SSE2" "aom")
|
||||
|
||||
if (CONFIG_AV1_ENCODER)
|
||||
add_asm_library("aom_dsp_encoder_sse2" "AOM_DSP_ENCODER_ASM_SSE2" "aom")
|
||||
add_asm_library("aom_dsp_encoder_sse2" "AOM_DSP_ENCODER_ASM_SSE2"
|
||||
"aom")
|
||||
add_intrinsics_object_library("-msse2" "sse2" "aom_dsp_encoder"
|
||||
"AOM_DSP_ENCODER_INTRIN_SSE2")
|
||||
"AOM_DSP_ENCODER_INTRIN_SSE2" "aom")
|
||||
endif()
|
||||
endif ()
|
||||
|
||||
|
|
@ -440,7 +457,7 @@ function (setup_aom_dsp_targets)
|
|||
if (HAVE_SSSE3)
|
||||
add_asm_library("aom_dsp_common_ssse3" "AOM_DSP_COMMON_ASM_SSSE3" "aom")
|
||||
add_intrinsics_object_library("-mssse3" "ssse3" "aom_dsp_common"
|
||||
"AOM_DSP_COMMON_INTRIN_SSSE3")
|
||||
"AOM_DSP_COMMON_INTRIN_SSSE3" "aom")
|
||||
|
||||
if (CONFIG_AV1_ENCODER)
|
||||
if ("${AOM_TARGET_CPU}" STREQUAL "x86_64")
|
||||
|
|
@ -448,16 +465,20 @@ function (setup_aom_dsp_targets)
|
|||
${AOM_DSP_ENCODER_ASM_SSSE3_X86_64})
|
||||
endif ()
|
||||
add_asm_library("aom_dsp_encoder_ssse3" "AOM_DSP_ENCODER_ASM_SSSE3" "aom")
|
||||
if (AOM_DSP_ENCODER_INTRIN_SSSE3)
|
||||
add_intrinsics_object_library("-mssse3" "ssse3" "aom_dsp_encoder"
|
||||
"AOM_DSP_ENCODER_INTRIN_SSSE3" "aom")
|
||||
endif ()
|
||||
endif ()
|
||||
endif ()
|
||||
|
||||
if (HAVE_SSE4_1)
|
||||
add_intrinsics_object_library("-msse4.1" "sse4_1" "aom_dsp_common"
|
||||
"AOM_DSP_COMMON_INTRIN_SSE4_1")
|
||||
"AOM_DSP_COMMON_INTRIN_SSE4_1" "aom")
|
||||
if (CONFIG_AV1_ENCODER)
|
||||
if (AOM_DSP_ENCODER_INTRIN_SSE4_1)
|
||||
add_intrinsics_object_library("-msse4.1" "sse4_1" "aom_dsp_encoder"
|
||||
"AOM_DSP_ENCODER_INTRIN_SSE4_1")
|
||||
"AOM_DSP_ENCODER_INTRIN_SSE4_1" "aom")
|
||||
endif ()
|
||||
add_asm_library("aom_dsp_encoder_sse4_1" "AOM_DSP_ENCODER_ASM_SSE4_1"
|
||||
"aom")
|
||||
|
|
@ -473,10 +494,10 @@ function (setup_aom_dsp_targets)
|
|||
|
||||
if (HAVE_AVX2)
|
||||
add_intrinsics_object_library("-mavx2" "avx2" "aom_dsp_common"
|
||||
"AOM_DSP_COMMON_INTRIN_AVX2")
|
||||
"AOM_DSP_COMMON_INTRIN_AVX2" "aom")
|
||||
if (CONFIG_AV1_ENCODER)
|
||||
add_intrinsics_object_library("-mavx2" "avx2" "aom_dsp_encoder"
|
||||
"AOM_DSP_ENCODER_INTRIN_AVX2")
|
||||
"AOM_DSP_ENCODER_INTRIN_AVX2" "aom")
|
||||
endif ()
|
||||
endif ()
|
||||
|
||||
|
|
@ -490,20 +511,21 @@ function (setup_aom_dsp_targets)
|
|||
|
||||
if (HAVE_NEON)
|
||||
add_intrinsics_object_library("${AOM_NEON_INTRIN_FLAG}" "neon"
|
||||
"aom_dsp_common" "AOM_DSP_COMMON_INTRIN_NEON")
|
||||
"aom_dsp_common" "AOM_DSP_COMMON_INTRIN_NEON"
|
||||
"aom")
|
||||
endif ()
|
||||
|
||||
if (HAVE_DSPR2)
|
||||
add_intrinsics_object_library("" "dspr2" "aom_dsp_common"
|
||||
"AOM_DSP_COMMON_INTRIN_DSPR2")
|
||||
"AOM_DSP_COMMON_INTRIN_DSPR2" "aom")
|
||||
endif ()
|
||||
|
||||
if (HAVE_MSA)
|
||||
add_intrinsics_object_library("" "msa" "aom_dsp_common"
|
||||
"AOM_DSP_COMMON_INTRIN_MSA")
|
||||
"AOM_DSP_COMMON_INTRIN_MSA" "aom")
|
||||
if (CONFIG_AV1_ENCODER)
|
||||
add_intrinsics_object_library("" "msa" "aom_dsp_encoder"
|
||||
"AOM_DSP_ENCODER_INTRIN_MSA")
|
||||
"AOM_DSP_ENCODER_INTRIN_MSA" "aom")
|
||||
endif ()
|
||||
endif ()
|
||||
|
||||
|
|
|
|||
5
third_party/aom/aom_dsp/aom_dsp.mk
vendored
5
third_party/aom/aom_dsp/aom_dsp.mk
vendored
|
|
@ -290,9 +290,10 @@ DSP_SRCS-yes += quantize.c
|
|||
DSP_SRCS-yes += quantize.h
|
||||
|
||||
DSP_SRCS-$(HAVE_SSE2) += x86/quantize_sse2.c
|
||||
ifeq ($(CONFIG_HIGHBITDEPTH),yes)
|
||||
|
||||
DSP_SRCS-$(HAVE_SSE2) += x86/highbd_quantize_intrin_sse2.c
|
||||
endif
|
||||
DSP_SRCS-$(HAVE_AVX2) += x86/highbd_quantize_intrin_avx2.c
|
||||
|
||||
ifeq ($(ARCH_X86_64),yes)
|
||||
DSP_SRCS-$(HAVE_SSSE3) += x86/quantize_ssse3_x86_64.asm
|
||||
DSP_SRCS-$(HAVE_AVX) += x86/quantize_avx_x86_64.asm
|
||||
|
|
|
|||
17
third_party/aom/aom_dsp/aom_dsp_common.h
vendored
17
third_party/aom/aom_dsp/aom_dsp_common.h
vendored
|
|
@ -31,8 +31,6 @@ extern "C" {
|
|||
#define AOMMIN(x, y) (((x) < (y)) ? (x) : (y))
|
||||
#define AOMMAX(x, y) (((x) > (y)) ? (x) : (y))
|
||||
|
||||
#define NELEMENTS(x) (sizeof((x)) / sizeof((x)[0]))
|
||||
|
||||
#define IMPLIES(a, b) (!(a) || (b)) // Logical 'a implies b' (or 'a -> b')
|
||||
|
||||
#define IS_POWER_OF_TWO(x) (((x) & ((x)-1)) == 0)
|
||||
|
|
@ -54,16 +52,9 @@ extern "C" {
|
|||
#define UNLIKELY(v) (v)
|
||||
#endif
|
||||
|
||||
#define AOM_SWAP(type, a, b) \
|
||||
do { \
|
||||
type c = (b); \
|
||||
b = a; \
|
||||
a = c; \
|
||||
} while (0)
|
||||
|
||||
#if CONFIG_AOM_QM
|
||||
typedef uint16_t qm_val_t;
|
||||
#define AOM_QM_BITS 6
|
||||
#define AOM_QM_BITS 5
|
||||
#endif
|
||||
#if CONFIG_HIGHBITDEPTH
|
||||
// Note:
|
||||
|
|
@ -87,11 +78,14 @@ static INLINE int clamp(int value, int low, int high) {
|
|||
return value < low ? low : (value > high ? high : value);
|
||||
}
|
||||
|
||||
static INLINE int64_t clamp64(int64_t value, int64_t low, int64_t high) {
|
||||
return value < low ? low : (value > high ? high : value);
|
||||
}
|
||||
|
||||
static INLINE double fclamp(double value, double low, double high) {
|
||||
return value < low ? low : (value > high ? high : value);
|
||||
}
|
||||
|
||||
#if CONFIG_HIGHBITDEPTH
|
||||
static INLINE uint16_t clip_pixel_highbd(int val, int bd) {
|
||||
switch (bd) {
|
||||
case 8:
|
||||
|
|
@ -100,7 +94,6 @@ static INLINE uint16_t clip_pixel_highbd(int val, int bd) {
|
|||
case 12: return (uint16_t)clamp(val, 0, 4095);
|
||||
}
|
||||
}
|
||||
#endif // CONFIG_HIGHBITDEPTH
|
||||
|
||||
#ifdef __cplusplus
|
||||
} // extern "C"
|
||||
|
|
|
|||
149
third_party/aom/aom_dsp/aom_dsp_rtcd_defs.pl
vendored
149
third_party/aom/aom_dsp/aom_dsp_rtcd_defs.pl
vendored
|
|
@ -40,12 +40,26 @@ foreach $w (@block_widths) {
|
|||
push @block_sizes, [$w, $h] if ($w <= 2*$h && $h <= 2*$w) ;
|
||||
}
|
||||
}
|
||||
if (aom_config("CONFIG_EXT_PARTITION_TYPES")) {
|
||||
push @block_sizes, [4, 16];
|
||||
push @block_sizes, [16, 4];
|
||||
push @block_sizes, [8, 32];
|
||||
push @block_sizes, [32, 8];
|
||||
}
|
||||
|
||||
@tx_dims = (2, 4, 8, 16, 32);
|
||||
if (aom_config("CONFIG_TX64X64") eq "yes") {
|
||||
push @tx_dims, '64';
|
||||
}
|
||||
|
||||
@tx_sizes = ();
|
||||
foreach $w (@tx_dims) {
|
||||
push @tx_sizes, [$w, $w];
|
||||
foreach $h (@tx_dims) {
|
||||
push @tx_sizes, [$w, $h] if ($w >=4 && $h >=4 && ($w == 2*$h || $h == 2*$w));
|
||||
}
|
||||
}
|
||||
|
||||
@pred_names = qw/dc dc_top dc_left dc_128 v h d207e d63e d45e d117 d135 d153/;
|
||||
if (aom_config("CONFIG_ALT_INTRA") eq "yes") {
|
||||
push @pred_names, qw/paeth smooth/;
|
||||
|
|
@ -60,9 +74,8 @@ if (aom_config("CONFIG_ALT_INTRA") eq "yes") {
|
|||
# Intra prediction
|
||||
#
|
||||
|
||||
foreach $dim (@tx_dims) {
|
||||
$w = ${dim};
|
||||
$h = ${dim};
|
||||
foreach (@tx_sizes) {
|
||||
($w, $h) = @$_;
|
||||
foreach $pred_name (@pred_names) {
|
||||
add_proto "void", "aom_${pred_name}_predictor_${w}x${h}",
|
||||
"uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left";
|
||||
|
|
@ -142,20 +155,27 @@ if (aom_config("CONFIG_HIGHBITDEPTH") eq "yes") {
|
|||
#
|
||||
# Sub Pixel Filters
|
||||
#
|
||||
add_proto qw/void aom_convolve_copy/, "const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h";
|
||||
add_proto qw/void aom_convolve_avg/, "const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h";
|
||||
add_proto qw/void aom_convolve8/, "const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h";
|
||||
add_proto qw/void aom_convolve8_horiz/, "const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h";
|
||||
add_proto qw/void aom_convolve8_vert/, "const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h";
|
||||
add_proto qw/void aom_convolve8_avg/, "const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h";
|
||||
add_proto qw/void aom_convolve8_avg_horiz/, "const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h";
|
||||
add_proto qw/void aom_convolve8_avg_vert/, "const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h";
|
||||
add_proto qw/void aom_scaled_2d/, "const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h";
|
||||
add_proto qw/void aom_scaled_horiz/, "const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h";
|
||||
add_proto qw/void aom_scaled_vert/, "const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h";
|
||||
add_proto qw/void aom_scaled_avg_2d/, "const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h";
|
||||
add_proto qw/void aom_scaled_avg_horiz/, "const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h";
|
||||
add_proto qw/void aom_scaled_avg_vert/, "const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h";
|
||||
add_proto qw/void aom_convolve_copy/, "const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h";
|
||||
add_proto qw/void aom_convolve_avg/, "const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h";
|
||||
add_proto qw/void aom_convolve8/, "const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h";
|
||||
add_proto qw/void aom_convolve8_horiz/, "const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h";
|
||||
add_proto qw/void aom_convolve8_vert/, "const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h";
|
||||
add_proto qw/void aom_convolve8_avg/, "const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h";
|
||||
add_proto qw/void aom_convolve8_avg_horiz/, "const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h";
|
||||
add_proto qw/void aom_convolve8_avg_vert/, "const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h";
|
||||
add_proto qw/void aom_scaled_2d/, "const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h";
|
||||
add_proto qw/void aom_scaled_horiz/, "const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h";
|
||||
add_proto qw/void aom_scaled_vert/, "const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h";
|
||||
add_proto qw/void aom_scaled_avg_2d/, "const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h";
|
||||
add_proto qw/void aom_scaled_avg_horiz/, "const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h";
|
||||
add_proto qw/void aom_scaled_avg_vert/, "const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h";
|
||||
|
||||
add_proto qw/void aom_convolve8_horiz_scale/, "const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int subpel_x, int x_step_q4, const int16_t *filter_y, int subpel_y, int y_step_q4, int w, int h";
|
||||
add_proto qw/void aom_convolve8_vert_scale/, "const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int subpel_x, int x_step_q4, const int16_t *filter_y, int subpel_y, int y_step_q4, int w, int h";
|
||||
add_proto qw/void aom_convolve8_avg_horiz_scale/, "const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int subpel_x, int x_step_q4, const int16_t *filter_y, int subpel_y, int y_step_q4, int w, int h";
|
||||
add_proto qw/void aom_convolve8_avg_vert_scale/, "const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int subpel_x, int x_step_q4, const int16_t *filter_y, int subpel_y, int y_step_q4, int w, int h";
|
||||
add_proto qw/void aom_convolve8_scale/, "const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int subpel_x, int x_step_q4, const int16_t *filter_y, int subpel_y, int y_step_q4, int w, int h";
|
||||
add_proto qw/void aom_convolve8_avg_scale/, "const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int subpel_x, int x_step_q4, const int16_t *filter_y, int subpel_y, int y_step_q4, int w, int h";
|
||||
|
||||
specialize qw/aom_convolve_copy sse2 /;
|
||||
specialize qw/aom_convolve_avg sse2 /;
|
||||
|
|
@ -334,24 +354,15 @@ if ((aom_config("CONFIG_AV1_ENCODER") eq "yes") || (aom_config("CONFIG_PVQ") eq
|
|||
add_proto qw/void aom_fdct8x8/, "const int16_t *input, tran_low_t *output, int stride";
|
||||
specialize qw/aom_fdct8x8 sse2/, "$ssse3_x86_64";
|
||||
|
||||
add_proto qw/void aom_fdct8x8_1/, "const int16_t *input, tran_low_t *output, int stride";
|
||||
specialize qw/aom_fdct8x8_1 sse2/;
|
||||
|
||||
add_proto qw/void aom_fdct16x16/, "const int16_t *input, tran_low_t *output, int stride";
|
||||
specialize qw/aom_fdct16x16 sse2/;
|
||||
|
||||
add_proto qw/void aom_fdct16x16_1/, "const int16_t *input, tran_low_t *output, int stride";
|
||||
specialize qw/aom_fdct16x16_1 sse2 avx2/;
|
||||
|
||||
add_proto qw/void aom_fdct32x32/, "const int16_t *input, tran_low_t *output, int stride";
|
||||
specialize qw/aom_fdct32x32 sse2 avx2/;
|
||||
|
||||
add_proto qw/void aom_fdct32x32_rd/, "const int16_t *input, tran_low_t *output, int stride";
|
||||
specialize qw/aom_fdct32x32_rd sse2 avx2/;
|
||||
|
||||
add_proto qw/void aom_fdct32x32_1/, "const int16_t *input, tran_low_t *output, int stride";
|
||||
specialize qw/aom_fdct32x32_1 sse2 avx2/;
|
||||
|
||||
# High bit depth
|
||||
add_proto qw/void aom_highbd_fdct4x4/, "const int16_t *input, tran_low_t *output, int stride";
|
||||
specialize qw/aom_highbd_fdct4x4 sse2/;
|
||||
|
|
@ -359,20 +370,15 @@ if ((aom_config("CONFIG_AV1_ENCODER") eq "yes") || (aom_config("CONFIG_PVQ") eq
|
|||
add_proto qw/void aom_highbd_fdct8x8/, "const int16_t *input, tran_low_t *output, int stride";
|
||||
specialize qw/aom_highbd_fdct8x8 sse2/;
|
||||
|
||||
add_proto qw/void aom_highbd_fdct8x8_1/, "const int16_t *input, tran_low_t *output, int stride";
|
||||
|
||||
add_proto qw/void aom_highbd_fdct16x16/, "const int16_t *input, tran_low_t *output, int stride";
|
||||
specialize qw/aom_highbd_fdct16x16 sse2/;
|
||||
|
||||
add_proto qw/void aom_highbd_fdct16x16_1/, "const int16_t *input, tran_low_t *output, int stride";
|
||||
|
||||
add_proto qw/void aom_highbd_fdct32x32/, "const int16_t *input, tran_low_t *output, int stride";
|
||||
specialize qw/aom_highbd_fdct32x32 sse2/;
|
||||
|
||||
add_proto qw/void aom_highbd_fdct32x32_rd/, "const int16_t *input, tran_low_t *output, int stride";
|
||||
specialize qw/aom_highbd_fdct32x32_rd sse2/;
|
||||
|
||||
add_proto qw/void aom_highbd_fdct32x32_1/, "const int16_t *input, tran_low_t *output, int stride";
|
||||
} else {
|
||||
add_proto qw/void aom_fdct4x4/, "const int16_t *input, tran_low_t *output, int stride";
|
||||
specialize qw/aom_fdct4x4 sse2 msa/;
|
||||
|
|
@ -383,47 +389,25 @@ if ((aom_config("CONFIG_AV1_ENCODER") eq "yes") || (aom_config("CONFIG_PVQ") eq
|
|||
add_proto qw/void aom_fdct8x8/, "const int16_t *input, tran_low_t *output, int stride";
|
||||
specialize qw/aom_fdct8x8 sse2 neon msa/, "$ssse3_x86_64";
|
||||
|
||||
add_proto qw/void aom_fdct8x8_1/, "const int16_t *input, tran_low_t *output, int stride";
|
||||
specialize qw/aom_fdct8x8_1 sse2 neon msa/;
|
||||
|
||||
add_proto qw/void aom_fdct16x16/, "const int16_t *input, tran_low_t *output, int stride";
|
||||
specialize qw/aom_fdct16x16 sse2 msa/;
|
||||
|
||||
add_proto qw/void aom_fdct16x16_1/, "const int16_t *input, tran_low_t *output, int stride";
|
||||
specialize qw/aom_fdct16x16_1 sse2 avx2 msa/;
|
||||
|
||||
add_proto qw/void aom_fdct32x32/, "const int16_t *input, tran_low_t *output, int stride";
|
||||
specialize qw/aom_fdct32x32 sse2 avx2 msa/;
|
||||
|
||||
add_proto qw/void aom_fdct32x32_rd/, "const int16_t *input, tran_low_t *output, int stride";
|
||||
specialize qw/aom_fdct32x32_rd sse2 avx2 msa/;
|
||||
|
||||
add_proto qw/void aom_fdct32x32_1/, "const int16_t *input, tran_low_t *output, int stride";
|
||||
specialize qw/aom_fdct32x32_1 sse2 avx2 msa/;
|
||||
} # CONFIG_HIGHBITDEPTH
|
||||
} # CONFIG_AV1_ENCODER
|
||||
|
||||
#
|
||||
# Inverse transform
|
||||
if (aom_config("CONFIG_AV1") eq "yes") {
|
||||
if (aom_config("CONFIG_HIGHBITDEPTH") eq "yes") {
|
||||
add_proto qw/void aom_iwht4x4_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride";
|
||||
|
||||
add_proto qw/void aom_iwht4x4_16_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride";
|
||||
specialize qw/aom_iwht4x4_16_add sse2/;
|
||||
|
||||
add_proto qw/void aom_highbd_idct4x4_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd";
|
||||
|
||||
add_proto qw/void aom_highbd_idct8x8_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd";
|
||||
|
||||
add_proto qw/void aom_highbd_idct16x16_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd";
|
||||
|
||||
add_proto qw/void aom_highbd_idct32x32_1024_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd";
|
||||
|
||||
add_proto qw/void aom_highbd_idct32x32_34_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd";
|
||||
|
||||
add_proto qw/void aom_highbd_idct32x32_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd";
|
||||
|
||||
add_proto qw/void aom_highbd_iwht4x4_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd";
|
||||
|
||||
add_proto qw/void aom_highbd_iwht4x4_16_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd";
|
||||
|
|
@ -469,10 +453,8 @@ if (aom_config("CONFIG_HIGHBITDEPTH") eq "yes") {
|
|||
|
||||
add_proto qw/void aom_idct32x32_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride";
|
||||
specialize qw/aom_idct32x32_1_add sse2 avx2/;
|
||||
|
||||
add_proto qw/void aom_highbd_idct4x4_16_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd";
|
||||
specialize qw/aom_highbd_idct4x4_16_add sse2/;
|
||||
}
|
||||
if (aom_config("CONFIG_HIGHBITDEPTH") eq "yes") {
|
||||
} else {
|
||||
{
|
||||
add_proto qw/void aom_idct4x4_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride";
|
||||
|
|
@ -541,13 +523,12 @@ if (aom_config("CONFIG_AOM_QM") eq "yes") {
|
|||
|
||||
add_proto qw/void aom_quantize_b_64x64/, "const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan, const qm_val_t * qm_ptr, const qm_val_t * iqm_ptr";
|
||||
|
||||
if (aom_config("CONFIG_HIGHBITDEPTH") eq "yes") {
|
||||
add_proto qw/void aom_highbd_quantize_b/, "const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan, const qm_val_t * qm_ptr, const qm_val_t * iqm_ptr";
|
||||
add_proto qw/void aom_highbd_quantize_b/, "const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan, const qm_val_t * qm_ptr, const qm_val_t * iqm_ptr";
|
||||
|
||||
add_proto qw/void aom_highbd_quantize_b_32x32/, "const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan, const qm_val_t * qm_ptr, const qm_val_t * iqm_ptr";
|
||||
add_proto qw/void aom_highbd_quantize_b_32x32/, "const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan, const qm_val_t * qm_ptr, const qm_val_t * iqm_ptr";
|
||||
|
||||
add_proto qw/void aom_highbd_quantize_b_64x64/, "const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan, const qm_val_t * qm_ptr, const qm_val_t * iqm_ptr";
|
||||
|
||||
add_proto qw/void aom_highbd_quantize_b_64x64/, "const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan, const qm_val_t * qm_ptr, const qm_val_t * iqm_ptr";
|
||||
} # CONFIG_HIGHBITDEPTH
|
||||
} # CONFIG_AV1_ENCODER
|
||||
} else {
|
||||
if (aom_config("CONFIG_AV1_ENCODER") eq "yes") {
|
||||
|
|
@ -559,21 +540,23 @@ if (aom_config("CONFIG_AOM_QM") eq "yes") {
|
|||
|
||||
add_proto qw/void aom_quantize_b_64x64/, "const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan";
|
||||
|
||||
if (aom_config("CONFIG_HIGHBITDEPTH") eq "yes") {
|
||||
add_proto qw/void aom_highbd_quantize_b/, "const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan";
|
||||
specialize qw/aom_highbd_quantize_b sse2/;
|
||||
add_proto qw/void aom_highbd_quantize_b/, "const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan";
|
||||
specialize qw/aom_highbd_quantize_b sse2 avx2/;
|
||||
|
||||
add_proto qw/void aom_highbd_quantize_b_32x32/, "const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan";
|
||||
specialize qw/aom_highbd_quantize_b_32x32 sse2/;
|
||||
add_proto qw/void aom_highbd_quantize_b_32x32/, "const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan";
|
||||
specialize qw/aom_highbd_quantize_b_32x32 sse2/;
|
||||
|
||||
add_proto qw/void aom_highbd_quantize_b_64x64/, "const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan";
|
||||
|
||||
add_proto qw/void aom_highbd_quantize_b_64x64/, "const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan";
|
||||
} # CONFIG_HIGHBITDEPTH
|
||||
} # CONFIG_AV1_ENCODER
|
||||
} # CONFIG_AOM_QM
|
||||
if (aom_config("CONFIG_AV1") eq "yes") {
|
||||
#
|
||||
# Alpha blending with mask
|
||||
#
|
||||
if (aom_config("CONFIG_CONVOLVE_ROUND") eq "yes") {
|
||||
add_proto qw/void aom_blend_a64_d32_mask/, "int32_t *dst, uint32_t dst_stride, const int32_t *src0, uint32_t src0_stride, const int32_t *src1, uint32_t src1_stride, const uint8_t *mask, uint32_t mask_stride, int h, int w, int suby, int subx";
|
||||
}
|
||||
add_proto qw/void aom_blend_a64_mask/, "uint8_t *dst, uint32_t dst_stride, const uint8_t *src0, uint32_t src0_stride, const uint8_t *src1, uint32_t src1_stride, const uint8_t *mask, uint32_t mask_stride, int h, int w, int suby, int subx";
|
||||
add_proto qw/void aom_blend_a64_hmask/, "uint8_t *dst, uint32_t dst_stride, const uint8_t *src0, uint32_t src0_stride, const uint8_t *src1, uint32_t src1_stride, const uint8_t *mask, int h, int w";
|
||||
add_proto qw/void aom_blend_a64_vmask/, "uint8_t *dst, uint32_t dst_stride, const uint8_t *src0, uint32_t src0_stride, const uint8_t *src1, uint32_t src1_stride, const uint8_t *mask, int h, int w";
|
||||
|
|
@ -927,15 +910,15 @@ if (aom_config("CONFIG_HIGHBITDEPTH") eq "yes") {
|
|||
#
|
||||
# ...
|
||||
#
|
||||
add_proto qw/void aom_upsampled_pred/, "uint8_t *comp_pred, int width, int height, const uint8_t *ref, int ref_stride";
|
||||
add_proto qw/void aom_upsampled_pred/, "uint8_t *comp_pred, int width, int height, int subsample_x_q3, int subsample_y_q3, const uint8_t *ref, int ref_stride";
|
||||
specialize qw/aom_upsampled_pred sse2/;
|
||||
add_proto qw/void aom_comp_avg_upsampled_pred/, "uint8_t *comp_pred, const uint8_t *pred, int width, int height, const uint8_t *ref, int ref_stride";
|
||||
add_proto qw/void aom_comp_avg_upsampled_pred/, "uint8_t *comp_pred, const uint8_t *pred, int width, int height, int subsample_x_q3, int subsample_y_q3, const uint8_t *ref, int ref_stride";
|
||||
specialize qw/aom_comp_avg_upsampled_pred sse2/;
|
||||
|
||||
if (aom_config("CONFIG_HIGHBITDEPTH") eq "yes") {
|
||||
add_proto qw/void aom_highbd_upsampled_pred/, "uint16_t *comp_pred, int width, int height, const uint8_t *ref8, int ref_stride";
|
||||
add_proto qw/void aom_highbd_upsampled_pred/, "uint16_t *comp_pred, int width, int height, int subsample_x_q3, int subsample_y_q3, const uint8_t *ref8, int ref_stride, int bd";
|
||||
specialize qw/aom_highbd_upsampled_pred sse2/;
|
||||
add_proto qw/void aom_highbd_comp_avg_upsampled_pred/, "uint16_t *comp_pred, const uint8_t *pred8, int width, int height, const uint8_t *ref8, int ref_stride";
|
||||
add_proto qw/void aom_highbd_comp_avg_upsampled_pred/, "uint16_t *comp_pred, const uint8_t *pred8, int width, int height, int subsample_x_q3, int subsample_y_q3, const uint8_t *ref8, int ref_stride, int bd";
|
||||
specialize qw/aom_highbd_comp_avg_upsampled_pred sse2/;
|
||||
}
|
||||
|
||||
|
|
@ -1005,6 +988,22 @@ specialize qw/aom_sub_pixel_avg_variance8x8 msa sse2 ssse3/;
|
|||
specialize qw/aom_sub_pixel_avg_variance8x4 msa sse2 ssse3/;
|
||||
specialize qw/aom_sub_pixel_avg_variance4x8 msa sse2 ssse3/;
|
||||
specialize qw/aom_sub_pixel_avg_variance4x4 msa sse2 ssse3/;
|
||||
|
||||
if (aom_config("CONFIG_EXT_PARTITION_TYPES")) {
|
||||
specialize qw/aom_variance4x16 sse2/;
|
||||
specialize qw/aom_variance16x4 sse2/;
|
||||
specialize qw/aom_variance8x32 sse2/;
|
||||
specialize qw/aom_variance32x8 sse2/;
|
||||
specialize qw/aom_sub_pixel_variance4x16 sse2 ssse3/;
|
||||
specialize qw/aom_sub_pixel_variance16x4 sse2 ssse3/;
|
||||
specialize qw/aom_sub_pixel_variance8x32 sse2 ssse3/;
|
||||
specialize qw/aom_sub_pixel_variance32x8 sse2 ssse3/;
|
||||
specialize qw/aom_sub_pixel_avg_variance4x16 sse2 ssse3/;
|
||||
specialize qw/aom_sub_pixel_avg_variance16x4 sse2 ssse3/;
|
||||
specialize qw/aom_sub_pixel_avg_variance8x32 sse2 ssse3/;
|
||||
specialize qw/aom_sub_pixel_avg_variance32x8 sse2 ssse3/;
|
||||
}
|
||||
|
||||
if (aom_config("CONFIG_HIGHBITDEPTH") eq "yes") {
|
||||
foreach $bd (8, 10, 12) {
|
||||
add_proto qw/unsigned int/, "aom_highbd_${bd}_variance2x2", "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse";
|
||||
|
|
@ -1021,6 +1020,8 @@ if (aom_config("CONFIG_HIGHBITDEPTH") eq "yes") {
|
|||
if ($w != 128 && $h != 128 && $w != 4 && $h != 4) {
|
||||
specialize "aom_highbd_${bd}_variance${w}x${h}", "sse2";
|
||||
}
|
||||
# TODO(david.barker): When ext-partition-types is enabled, we currenly
|
||||
# don't have vectorized 4x16 highbd variance functions
|
||||
if ($w == 4 && $h == 4) {
|
||||
specialize "aom_highbd_${bd}_variance${w}x${h}", "sse4_1";
|
||||
}
|
||||
|
|
@ -1496,10 +1497,10 @@ if (aom_config("CONFIG_HIGHBITDEPTH") eq "yes") {
|
|||
|
||||
if (aom_config("CONFIG_EXT_INTER") eq "yes") {
|
||||
add_proto qw/void aom_comp_mask_pred/, "uint8_t *comp_pred, const uint8_t *pred, int width, int height, const uint8_t *ref, int ref_stride, const uint8_t *mask, int mask_stride, int invert_mask";
|
||||
add_proto qw/void aom_comp_mask_upsampled_pred/, "uint8_t *comp_pred, const uint8_t *pred, int width, int height, const uint8_t *ref, int ref_stride, const uint8_t *mask, int mask_stride, int invert_mask";
|
||||
add_proto qw/void aom_comp_mask_upsampled_pred/, "uint8_t *comp_pred, const uint8_t *pred, int width, int height, int subsample_x_q3, int subsample_y_q3, const uint8_t *ref, int ref_stride, const uint8_t *mask, int mask_stride, int invert_mask";
|
||||
if (aom_config("CONFIG_HIGHBITDEPTH") eq "yes") {
|
||||
add_proto qw/void aom_highbd_comp_mask_pred/, "uint16_t *comp_pred, const uint8_t *pred8, int width, int height, const uint8_t *ref8, int ref_stride, const uint8_t *mask, int mask_stride, int invert_mask";
|
||||
add_proto qw/void aom_highbd_comp_mask_upsampled_pred/, "uint16_t *comp_pred, const uint8_t *pred8, int width, int height, const uint8_t *ref8, int ref_stride, const uint8_t *mask, int mask_stride, int invert_mask";
|
||||
add_proto qw/void aom_highbd_comp_mask_upsampled_pred/, "uint16_t *comp_pred, const uint8_t *pred8, int width, int height, int subsample_x_q3, int subsample_y_q3, const uint8_t *ref8, int ref_stride, const uint8_t *mask, int mask_stride, int invert_mask, int bd";
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
6
third_party/aom/aom_dsp/aom_filter.h
vendored
6
third_party/aom/aom_dsp/aom_filter.h
vendored
|
|
@ -25,6 +25,12 @@ extern "C" {
|
|||
#define SUBPEL_SHIFTS (1 << SUBPEL_BITS)
|
||||
#define SUBPEL_TAPS 8
|
||||
|
||||
#define SCALE_SUBPEL_BITS 10
|
||||
#define SCALE_SUBPEL_SHIFTS (1 << SCALE_SUBPEL_BITS)
|
||||
#define SCALE_SUBPEL_MASK (SCALE_SUBPEL_SHIFTS - 1)
|
||||
#define SCALE_EXTRA_BITS (SCALE_SUBPEL_BITS - SUBPEL_BITS)
|
||||
#define SCALE_EXTRA_OFF ((1 << SCALE_EXTRA_BITS) / 2)
|
||||
|
||||
typedef int16_t InterpKernel[SUBPEL_TAPS];
|
||||
|
||||
#define BIL_SUBPEL_BITS 3
|
||||
|
|
|
|||
2
third_party/aom/aom_dsp/bitreader.h
vendored
2
third_party/aom/aom_dsp/bitreader.h
vendored
|
|
@ -194,9 +194,7 @@ static INLINE int aom_read_symbol_(aom_reader *r, aom_cdf_prob *cdf,
|
|||
int nsymbs ACCT_STR_PARAM) {
|
||||
int ret;
|
||||
ret = aom_read_cdf(r, cdf, nsymbs, ACCT_STR_NAME);
|
||||
#if CONFIG_EC_ADAPT
|
||||
update_cdf(cdf, ret, nsymbs);
|
||||
#endif
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
|
|||
2
third_party/aom/aom_dsp/bitwriter.h
vendored
2
third_party/aom/aom_dsp/bitwriter.h
vendored
|
|
@ -140,9 +140,7 @@ static INLINE void aom_write_cdf(aom_writer *w, int symb,
|
|||
static INLINE void aom_write_symbol(aom_writer *w, int symb, aom_cdf_prob *cdf,
|
||||
int nsymbs) {
|
||||
aom_write_cdf(w, symb, cdf, nsymbs);
|
||||
#if CONFIG_EC_ADAPT
|
||||
update_cdf(cdf, symb, nsymbs);
|
||||
#endif
|
||||
}
|
||||
|
||||
static INLINE void aom_write_tree_as_cdf(aom_writer *w,
|
||||
|
|
|
|||
63
third_party/aom/aom_dsp/blend_a64_mask.c
vendored
63
third_party/aom/aom_dsp/blend_a64_mask.c
vendored
|
|
@ -18,6 +18,69 @@
|
|||
|
||||
#include "./aom_dsp_rtcd.h"
|
||||
|
||||
#if CONFIG_CONVOLVE_ROUND
|
||||
// Blending with alpha mask. Mask values come from the range [0, 64],
|
||||
// as described for AOM_BLEND_A64 in aom_dsp/blend.h. src0 or src1 can
|
||||
// be the same as dst, or dst can be different from both sources.
|
||||
|
||||
void aom_blend_a64_d32_mask_c(int32_t *dst, uint32_t dst_stride,
|
||||
const int32_t *src0, uint32_t src0_stride,
|
||||
const int32_t *src1, uint32_t src1_stride,
|
||||
const uint8_t *mask, uint32_t mask_stride, int h,
|
||||
int w, int subh, int subw) {
|
||||
int i, j;
|
||||
|
||||
assert(IMPLIES(src0 == dst, src0_stride == dst_stride));
|
||||
assert(IMPLIES(src1 == dst, src1_stride == dst_stride));
|
||||
|
||||
assert(h >= 1);
|
||||
assert(w >= 1);
|
||||
assert(IS_POWER_OF_TWO(h));
|
||||
assert(IS_POWER_OF_TWO(w));
|
||||
|
||||
if (subw == 0 && subh == 0) {
|
||||
for (i = 0; i < h; ++i) {
|
||||
for (j = 0; j < w; ++j) {
|
||||
const int m = mask[i * mask_stride + j];
|
||||
dst[i * dst_stride + j] = AOM_BLEND_A64(m, src0[i * src0_stride + j],
|
||||
src1[i * src1_stride + j]);
|
||||
}
|
||||
}
|
||||
} else if (subw == 1 && subh == 1) {
|
||||
for (i = 0; i < h; ++i) {
|
||||
for (j = 0; j < w; ++j) {
|
||||
const int m = ROUND_POWER_OF_TWO(
|
||||
mask[(2 * i) * mask_stride + (2 * j)] +
|
||||
mask[(2 * i + 1) * mask_stride + (2 * j)] +
|
||||
mask[(2 * i) * mask_stride + (2 * j + 1)] +
|
||||
mask[(2 * i + 1) * mask_stride + (2 * j + 1)],
|
||||
2);
|
||||
dst[i * dst_stride + j] = AOM_BLEND_A64(m, src0[i * src0_stride + j],
|
||||
src1[i * src1_stride + j]);
|
||||
}
|
||||
}
|
||||
} else if (subw == 1 && subh == 0) {
|
||||
for (i = 0; i < h; ++i) {
|
||||
for (j = 0; j < w; ++j) {
|
||||
const int m = AOM_BLEND_AVG(mask[i * mask_stride + (2 * j)],
|
||||
mask[i * mask_stride + (2 * j + 1)]);
|
||||
dst[i * dst_stride + j] = AOM_BLEND_A64(m, src0[i * src0_stride + j],
|
||||
src1[i * src1_stride + j]);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (i = 0; i < h; ++i) {
|
||||
for (j = 0; j < w; ++j) {
|
||||
const int m = AOM_BLEND_AVG(mask[(2 * i) * mask_stride + j],
|
||||
mask[(2 * i + 1) * mask_stride + j]);
|
||||
dst[i * dst_stride + j] = AOM_BLEND_A64(m, src0[i * src0_stride + j],
|
||||
src1[i * src1_stride + j]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif // CONFIG_CONVOLVE_ROUND
|
||||
|
||||
// Blending with alpha mask. Mask values come from the range [0, 64],
|
||||
// as described for AOM_BLEND_A64 in aom_dsp/blend.h. src0 or src1 can
|
||||
// be the same as dst, or dst can be different from both sources.
|
||||
|
|
|
|||
42
third_party/aom/aom_dsp/fwd_txfm.c
vendored
42
third_party/aom/aom_dsp/fwd_txfm.c
vendored
|
|
@ -172,15 +172,6 @@ void aom_fdct8x8_c(const int16_t *input, tran_low_t *final_output, int stride) {
|
|||
}
|
||||
}
|
||||
|
||||
void aom_fdct8x8_1_c(const int16_t *input, tran_low_t *output, int stride) {
|
||||
int r, c;
|
||||
tran_low_t sum = 0;
|
||||
for (r = 0; r < 8; ++r)
|
||||
for (c = 0; c < 8; ++c) sum += input[r * stride + c];
|
||||
|
||||
output[0] = sum;
|
||||
}
|
||||
|
||||
void aom_fdct16x16_c(const int16_t *input, tran_low_t *output, int stride) {
|
||||
// The 2D transform is done with two passes which are actually pretty
|
||||
// similar. In the first one, we transform the columns and transpose
|
||||
|
|
@ -361,15 +352,6 @@ void aom_fdct16x16_c(const int16_t *input, tran_low_t *output, int stride) {
|
|||
}
|
||||
}
|
||||
|
||||
void aom_fdct16x16_1_c(const int16_t *input, tran_low_t *output, int stride) {
|
||||
int r, c;
|
||||
int sum = 0;
|
||||
for (r = 0; r < 16; ++r)
|
||||
for (c = 0; c < 16; ++c) sum += input[r * stride + c];
|
||||
|
||||
output[0] = (tran_low_t)(sum >> 1);
|
||||
}
|
||||
|
||||
static INLINE tran_high_t dct_32_round(tran_high_t input) {
|
||||
tran_high_t rv = ROUND_POWER_OF_TWO(input, DCT_CONST_BITS);
|
||||
// TODO(debargha, peter.derivaz): Find new bounds for this assert,
|
||||
|
|
@ -758,15 +740,6 @@ void aom_fdct32x32_rd_c(const int16_t *input, tran_low_t *out, int stride) {
|
|||
}
|
||||
}
|
||||
|
||||
void aom_fdct32x32_1_c(const int16_t *input, tran_low_t *output, int stride) {
|
||||
int r, c;
|
||||
int sum = 0;
|
||||
for (r = 0; r < 32; ++r)
|
||||
for (c = 0; c < 32; ++c) sum += input[r * stride + c];
|
||||
|
||||
output[0] = (tran_low_t)(sum >> 3);
|
||||
}
|
||||
|
||||
#if CONFIG_HIGHBITDEPTH
|
||||
void aom_highbd_fdct4x4_c(const int16_t *input, tran_low_t *output,
|
||||
int stride) {
|
||||
|
|
@ -778,32 +751,17 @@ void aom_highbd_fdct8x8_c(const int16_t *input, tran_low_t *final_output,
|
|||
aom_fdct8x8_c(input, final_output, stride);
|
||||
}
|
||||
|
||||
void aom_highbd_fdct8x8_1_c(const int16_t *input, tran_low_t *final_output,
|
||||
int stride) {
|
||||
aom_fdct8x8_1_c(input, final_output, stride);
|
||||
}
|
||||
|
||||
void aom_highbd_fdct16x16_c(const int16_t *input, tran_low_t *output,
|
||||
int stride) {
|
||||
aom_fdct16x16_c(input, output, stride);
|
||||
}
|
||||
|
||||
void aom_highbd_fdct16x16_1_c(const int16_t *input, tran_low_t *output,
|
||||
int stride) {
|
||||
aom_fdct16x16_1_c(input, output, stride);
|
||||
}
|
||||
|
||||
void aom_highbd_fdct32x32_c(const int16_t *input, tran_low_t *out, int stride) {
|
||||
aom_fdct32x32_c(input, out, stride);
|
||||
}
|
||||
|
||||
void aom_highbd_fdct32x32_rd_c(const int16_t *input, tran_low_t *out,
|
||||
int stride) {
|
||||
aom_fdct32x32_rd_c(input, out, stride);
|
||||
}
|
||||
|
||||
void aom_highbd_fdct32x32_1_c(const int16_t *input, tran_low_t *out,
|
||||
int stride) {
|
||||
aom_fdct32x32_1_c(input, out, stride);
|
||||
}
|
||||
#endif // CONFIG_HIGHBITDEPTH
|
||||
|
|
|
|||
5
third_party/aom/aom_dsp/fwd_txfm.h
vendored
5
third_party/aom/aom_dsp/fwd_txfm.h
vendored
|
|
@ -20,10 +20,5 @@ static INLINE tran_high_t saturate_int16(tran_high_t value) {
|
|||
return result < INT16_MIN ? INT16_MIN : result;
|
||||
}
|
||||
|
||||
static INLINE tran_high_t fdct_round_shift(tran_high_t input) {
|
||||
tran_high_t rv = ROUND_POWER_OF_TWO(input, DCT_CONST_BITS);
|
||||
return rv;
|
||||
}
|
||||
|
||||
void aom_fdct32(const tran_high_t *input, tran_high_t *output, int round);
|
||||
#endif // AOM_DSP_FWD_TXFM_H_
|
||||
|
|
|
|||
569
third_party/aom/aom_dsp/intrapred.c
vendored
569
third_party/aom/aom_dsp/intrapred.c
vendored
File diff suppressed because it is too large
Load diff
1080
third_party/aom/aom_dsp/inv_txfm.c
vendored
1080
third_party/aom/aom_dsp/inv_txfm.c
vendored
File diff suppressed because it is too large
Load diff
19
third_party/aom/aom_dsp/inv_txfm.h
vendored
19
third_party/aom/aom_dsp/inv_txfm.h
vendored
|
|
@ -23,8 +23,7 @@ extern "C" {
|
|||
#endif
|
||||
|
||||
static INLINE tran_high_t dct_const_round_shift(tran_high_t input) {
|
||||
tran_high_t rv = ROUND_POWER_OF_TWO(input, DCT_CONST_BITS);
|
||||
return rv;
|
||||
return ROUND_POWER_OF_TWO(input, DCT_CONST_BITS);
|
||||
}
|
||||
|
||||
static INLINE tran_high_t check_range(tran_high_t input, int bd) {
|
||||
|
|
@ -51,9 +50,19 @@ static INLINE tran_high_t check_range(tran_high_t input, int bd) {
|
|||
}
|
||||
|
||||
#define WRAPLOW(x) ((int32_t)check_range(x, 8))
|
||||
#if CONFIG_HIGHBITDEPTH
|
||||
#define HIGHBD_WRAPLOW(x, bd) ((int32_t)check_range((x), bd))
|
||||
#endif // CONFIG_HIGHBITDEPTH
|
||||
|
||||
#if CONFIG_MRC_TX
|
||||
// These each perform dct but add coefficients based on a mask
|
||||
void aom_imrc32x32_1024_add_c(const tran_low_t *input, uint8_t *dest,
|
||||
int stride, int *mask);
|
||||
|
||||
void aom_imrc32x32_135_add_c(const tran_low_t *input, uint8_t *dest, int stride,
|
||||
int *mask);
|
||||
|
||||
void aom_imrc32x32_34_add_c(const tran_low_t *input, uint8_t *dest, int stride,
|
||||
int *mask);
|
||||
#endif // CONFIG_MRC_TX
|
||||
|
||||
void aom_idct4_c(const tran_low_t *input, tran_low_t *output);
|
||||
void aom_idct8_c(const tran_low_t *input, tran_low_t *output);
|
||||
|
|
@ -63,7 +72,6 @@ void aom_iadst4_c(const tran_low_t *input, tran_low_t *output);
|
|||
void aom_iadst8_c(const tran_low_t *input, tran_low_t *output);
|
||||
void aom_iadst16_c(const tran_low_t *input, tran_low_t *output);
|
||||
|
||||
#if CONFIG_HIGHBITDEPTH
|
||||
void aom_highbd_idct4_c(const tran_low_t *input, tran_low_t *output, int bd);
|
||||
void aom_highbd_idct8_c(const tran_low_t *input, tran_low_t *output, int bd);
|
||||
void aom_highbd_idct16_c(const tran_low_t *input, tran_low_t *output, int bd);
|
||||
|
|
@ -78,7 +86,6 @@ static INLINE uint16_t highbd_clip_pixel_add(uint16_t dest, tran_high_t trans,
|
|||
trans = HIGHBD_WRAPLOW(trans, bd);
|
||||
return clip_pixel_highbd(dest + (int)trans, bd);
|
||||
}
|
||||
#endif
|
||||
|
||||
static INLINE uint8_t clip_pixel_add(uint8_t dest, tran_high_t trans) {
|
||||
trans = WRAPLOW(trans);
|
||||
|
|
|
|||
20
third_party/aom/aom_dsp/mips/fwd_dct32x32_msa.c
vendored
20
third_party/aom/aom_dsp/mips/fwd_dct32x32_msa.c
vendored
|
|
@ -926,23 +926,3 @@ void aom_fdct32x32_rd_msa(const int16_t *input, int16_t *out,
|
|||
out + (8 * i * 32));
|
||||
}
|
||||
}
|
||||
|
||||
void aom_fdct32x32_1_msa(const int16_t *input, int16_t *out, int32_t stride) {
|
||||
int sum = LD_HADD(input, stride);
|
||||
sum += LD_HADD(input + 8, stride);
|
||||
sum += LD_HADD(input + 16, stride);
|
||||
sum += LD_HADD(input + 24, stride);
|
||||
sum += LD_HADD(input + 32 * 8, stride);
|
||||
sum += LD_HADD(input + 32 * 8 + 8, stride);
|
||||
sum += LD_HADD(input + 32 * 8 + 16, stride);
|
||||
sum += LD_HADD(input + 32 * 8 + 24, stride);
|
||||
sum += LD_HADD(input + 32 * 16, stride);
|
||||
sum += LD_HADD(input + 32 * 16 + 8, stride);
|
||||
sum += LD_HADD(input + 32 * 16 + 16, stride);
|
||||
sum += LD_HADD(input + 32 * 16 + 24, stride);
|
||||
sum += LD_HADD(input + 32 * 24, stride);
|
||||
sum += LD_HADD(input + 32 * 24 + 8, stride);
|
||||
sum += LD_HADD(input + 32 * 24 + 16, stride);
|
||||
sum += LD_HADD(input + 32 * 24 + 24, stride);
|
||||
out[0] = (int16_t)(sum >> 3);
|
||||
}
|
||||
|
|
|
|||
8
third_party/aom/aom_dsp/mips/fwd_txfm_msa.c
vendored
8
third_party/aom/aom_dsp/mips/fwd_txfm_msa.c
vendored
|
|
@ -236,11 +236,3 @@ void aom_fdct16x16_msa(const int16_t *input, int16_t *output,
|
|||
fdct16x8_1d_row((&tmp_buf[0] + (128 * i)), (output + (128 * i)));
|
||||
}
|
||||
}
|
||||
|
||||
void aom_fdct16x16_1_msa(const int16_t *input, int16_t *out, int32_t stride) {
|
||||
int sum = LD_HADD(input, stride);
|
||||
sum += LD_HADD(input + 8, stride);
|
||||
sum += LD_HADD(input + 16 * 8, stride);
|
||||
sum += LD_HADD(input + 16 * 8 + 8, stride);
|
||||
out[0] = (int16_t)(sum >> 1);
|
||||
}
|
||||
|
|
|
|||
4
third_party/aom/aom_dsp/prob.c
vendored
4
third_party/aom/aom_dsp/prob.c
vendored
|
|
@ -186,10 +186,8 @@ int tree_to_cdf(const aom_tree_index *tree, const aom_prob *probs,
|
|||
for (i = 1; i < nsymbs; i++) {
|
||||
cdf[i] = AOM_ICDF(AOM_ICDF(cdf[i - 1]) + cdf[i]);
|
||||
}
|
||||
// Store symbol count at the end of the CDF
|
||||
#if CONFIG_EC_ADAPT
|
||||
// Store symbol count at the end of the CDF
|
||||
cdf[nsymbs] = 0;
|
||||
#endif
|
||||
return nsymbs;
|
||||
}
|
||||
|
||||
|
|
|
|||
2
third_party/aom/aom_dsp/prob.h
vendored
2
third_party/aom/aom_dsp/prob.h
vendored
|
|
@ -148,7 +148,6 @@ static INLINE void av1_tree_to_cdf(const aom_tree_index *tree,
|
|||
|
||||
void av1_indices_from_tree(int *ind, int *inv, const aom_tree_index *tree);
|
||||
|
||||
#if CONFIG_EC_ADAPT
|
||||
static INLINE void update_cdf(aom_cdf_prob *cdf, int val, int nsymbs) {
|
||||
const int rate = 4 + (cdf[nsymbs] > 31) + get_msb(nsymbs);
|
||||
const int rate2 = 5;
|
||||
|
|
@ -183,7 +182,6 @@ static INLINE void update_cdf(aom_cdf_prob *cdf, int val, int nsymbs) {
|
|||
#endif
|
||||
cdf[nsymbs] += (cdf[nsymbs] < 32);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
} // extern "C"
|
||||
|
|
|
|||
13
third_party/aom/aom_dsp/quantize.c
vendored
13
third_party/aom/aom_dsp/quantize.c
vendored
|
|
@ -256,7 +256,6 @@ void aom_quantize_dc_64x64(const tran_low_t *coeff_ptr, int skip_block,
|
|||
}
|
||||
#endif // CONFIG_TX64X64
|
||||
|
||||
#if CONFIG_HIGHBITDEPTH
|
||||
void aom_highbd_quantize_dc(const tran_low_t *coeff_ptr, int n_coeffs,
|
||||
int skip_block, const int16_t *round_ptr,
|
||||
const int16_t quant, tran_low_t *qcoeff_ptr,
|
||||
|
|
@ -523,7 +522,6 @@ void aom_highbd_quantize_b_64x64_c(
|
|||
*eob_ptr = eob + 1;
|
||||
}
|
||||
#endif // CONFIG_TX64X64
|
||||
#endif // CONFIG_HIGHBITDEPTH
|
||||
|
||||
#else // CONFIG_AOM_QM
|
||||
|
||||
|
|
@ -602,7 +600,6 @@ void aom_quantize_dc_64x64(const tran_low_t *coeff_ptr, int skip_block,
|
|||
}
|
||||
#endif // CONFIG_TX64X64
|
||||
|
||||
#if CONFIG_HIGHBITDEPTH
|
||||
void aom_highbd_quantize_dc(const tran_low_t *coeff_ptr, int n_coeffs,
|
||||
int skip_block, const int16_t *round_ptr,
|
||||
const int16_t quant, tran_low_t *qcoeff_ptr,
|
||||
|
|
@ -716,8 +713,7 @@ void aom_highbd_quantize_b_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs,
|
|||
if (abs_coeff >= zbins[rc != 0]) {
|
||||
const int64_t tmp1 = abs_coeff + round_ptr[rc != 0];
|
||||
const int64_t tmp2 = ((tmp1 * quant_ptr[rc != 0]) >> 16) + tmp1;
|
||||
const uint32_t abs_qcoeff =
|
||||
(uint32_t)((tmp2 * quant_shift_ptr[rc != 0]) >> 16);
|
||||
const int abs_qcoeff = (int)((tmp2 * quant_shift_ptr[rc != 0]) >> 16);
|
||||
qcoeff_ptr[rc] = (tran_low_t)((abs_qcoeff ^ coeff_sign) - coeff_sign);
|
||||
dqcoeff_ptr[rc] = qcoeff_ptr[rc] * dequant_ptr[rc != 0];
|
||||
if (abs_qcoeff) eob = i;
|
||||
|
|
@ -767,8 +763,7 @@ void aom_highbd_quantize_b_32x32_c(
|
|||
const int64_t tmp1 =
|
||||
abs_coeff + ROUND_POWER_OF_TWO(round_ptr[rc != 0], 1);
|
||||
const int64_t tmp2 = ((tmp1 * quant_ptr[rc != 0]) >> 16) + tmp1;
|
||||
const uint32_t abs_qcoeff =
|
||||
(uint32_t)((tmp2 * quant_shift_ptr[rc != 0]) >> 15);
|
||||
const int abs_qcoeff = (int)((tmp2 * quant_shift_ptr[rc != 0]) >> 15);
|
||||
qcoeff_ptr[rc] = (tran_low_t)((abs_qcoeff ^ coeff_sign) - coeff_sign);
|
||||
dqcoeff_ptr[rc] = qcoeff_ptr[rc] * dequant_ptr[rc != 0] / 2;
|
||||
if (abs_qcoeff) eob = idx_arr[i];
|
||||
|
|
@ -818,8 +813,7 @@ void aom_highbd_quantize_b_64x64_c(
|
|||
const int64_t tmp1 =
|
||||
abs_coeff + ROUND_POWER_OF_TWO(round_ptr[rc != 0], 2);
|
||||
const int64_t tmp2 = ((tmp1 * quant_ptr[rc != 0]) >> 16) + tmp1;
|
||||
const uint32_t abs_qcoeff =
|
||||
(uint32_t)((tmp2 * quant_shift_ptr[rc != 0]) >> 14);
|
||||
const int abs_qcoeff = (int)((tmp2 * quant_shift_ptr[rc != 0]) >> 14);
|
||||
qcoeff_ptr[rc] = (tran_low_t)((abs_qcoeff ^ coeff_sign) - coeff_sign);
|
||||
dqcoeff_ptr[rc] = qcoeff_ptr[rc] * dequant_ptr[rc != 0] / 4;
|
||||
if (abs_qcoeff) eob = idx_arr[i];
|
||||
|
|
@ -828,5 +822,4 @@ void aom_highbd_quantize_b_64x64_c(
|
|||
*eob_ptr = eob + 1;
|
||||
}
|
||||
#endif // CONFIG_TX64X64
|
||||
#endif // CONFIG_HIGHBITDEPTH
|
||||
#endif // CONFIG_AOM_QM
|
||||
|
|
|
|||
58
third_party/aom/aom_dsp/sad.c
vendored
58
third_party/aom/aom_dsp/sad.c
vendored
|
|
@ -153,10 +153,21 @@ sadMxN(4, 4)
|
|||
sadMxNxK(4, 4, 3)
|
||||
sadMxNxK(4, 4, 8)
|
||||
sadMxNx4D(4, 4)
|
||||
|
||||
#if CONFIG_AV1 && CONFIG_EXT_PARTITION_TYPES
|
||||
sadMxN(4, 16)
|
||||
sadMxNx4D(4, 16)
|
||||
sadMxN(16, 4)
|
||||
sadMxNx4D(16, 4)
|
||||
sadMxN(8, 32)
|
||||
sadMxNx4D(8, 32)
|
||||
sadMxN(32, 8)
|
||||
sadMxNx4D(32, 8)
|
||||
#endif
|
||||
/* clang-format on */
|
||||
|
||||
#if CONFIG_HIGHBITDEPTH
|
||||
static INLINE
|
||||
static INLINE
|
||||
unsigned int highbd_sad(const uint8_t *a8, int a_stride, const uint8_t *b8,
|
||||
int b_stride, int width, int height) {
|
||||
int y, x;
|
||||
|
|
@ -307,11 +318,22 @@ highbd_sadMxN(4, 4)
|
|||
highbd_sadMxNxK(4, 4, 3)
|
||||
highbd_sadMxNxK(4, 4, 8)
|
||||
highbd_sadMxNx4D(4, 4)
|
||||
|
||||
#if CONFIG_AV1 && CONFIG_EXT_PARTITION_TYPES
|
||||
highbd_sadMxN(4, 16)
|
||||
highbd_sadMxNx4D(4, 16)
|
||||
highbd_sadMxN(16, 4)
|
||||
highbd_sadMxNx4D(16, 4)
|
||||
highbd_sadMxN(8, 32)
|
||||
highbd_sadMxNx4D(8, 32)
|
||||
highbd_sadMxN(32, 8)
|
||||
highbd_sadMxNx4D(32, 8)
|
||||
#endif
|
||||
/* clang-format on */
|
||||
#endif // CONFIG_HIGHBITDEPTH
|
||||
|
||||
#if CONFIG_AV1 && CONFIG_EXT_INTER
|
||||
static INLINE
|
||||
static INLINE
|
||||
unsigned int masked_sad(const uint8_t *src, int src_stride,
|
||||
const uint8_t *a, int a_stride, const uint8_t *b,
|
||||
int b_stride, const uint8_t *m, int m_stride,
|
||||
|
|
@ -367,10 +389,17 @@ MASKSADMxN(8, 8)
|
|||
MASKSADMxN(8, 4)
|
||||
MASKSADMxN(4, 8)
|
||||
MASKSADMxN(4, 4)
|
||||
|
||||
#if CONFIG_EXT_PARTITION_TYPES
|
||||
MASKSADMxN(4, 16)
|
||||
MASKSADMxN(16, 4)
|
||||
MASKSADMxN(8, 32)
|
||||
MASKSADMxN(32, 8)
|
||||
#endif
|
||||
/* clang-format on */
|
||||
|
||||
#if CONFIG_HIGHBITDEPTH
|
||||
static INLINE
|
||||
static INLINE
|
||||
unsigned int highbd_masked_sad(const uint8_t *src8, int src_stride,
|
||||
const uint8_t *a8, int a_stride,
|
||||
const uint8_t *b8, int b_stride,
|
||||
|
|
@ -429,6 +458,13 @@ HIGHBD_MASKSADMXN(8, 8)
|
|||
HIGHBD_MASKSADMXN(8, 4)
|
||||
HIGHBD_MASKSADMXN(4, 8)
|
||||
HIGHBD_MASKSADMXN(4, 4)
|
||||
|
||||
#if CONFIG_AV1 && CONFIG_EXT_PARTITION_TYPES
|
||||
HIGHBD_MASKSADMXN(4, 16)
|
||||
HIGHBD_MASKSADMXN(16, 4)
|
||||
HIGHBD_MASKSADMXN(8, 32)
|
||||
HIGHBD_MASKSADMXN(32, 8)
|
||||
#endif
|
||||
#endif // CONFIG_HIGHBITDEPTH
|
||||
#endif // CONFIG_AV1 && CONFIG_EXT_INTER
|
||||
|
||||
|
|
@ -480,10 +516,17 @@ OBMCSADMxN(8, 8)
|
|||
OBMCSADMxN(8, 4)
|
||||
OBMCSADMxN(4, 8)
|
||||
OBMCSADMxN(4, 4)
|
||||
|
||||
#if CONFIG_AV1 && CONFIG_EXT_PARTITION_TYPES
|
||||
OBMCSADMxN(4, 16)
|
||||
OBMCSADMxN(16, 4)
|
||||
OBMCSADMxN(8, 32)
|
||||
OBMCSADMxN(32, 8)
|
||||
#endif
|
||||
/* clang-format on */
|
||||
|
||||
#if CONFIG_HIGHBITDEPTH
|
||||
static INLINE
|
||||
static INLINE
|
||||
unsigned int highbd_obmc_sad(const uint8_t *pre8, int pre_stride,
|
||||
const int32_t *wsrc, const int32_t *mask,
|
||||
int width, int height) {
|
||||
|
|
@ -529,6 +572,13 @@ HIGHBD_OBMCSADMXN(8, 8)
|
|||
HIGHBD_OBMCSADMXN(8, 4)
|
||||
HIGHBD_OBMCSADMXN(4, 8)
|
||||
HIGHBD_OBMCSADMXN(4, 4)
|
||||
|
||||
#if CONFIG_AV1 && CONFIG_EXT_PARTITION_TYPES
|
||||
HIGHBD_OBMCSADMXN(4, 16)
|
||||
HIGHBD_OBMCSADMXN(16, 4)
|
||||
HIGHBD_OBMCSADMXN(8, 32)
|
||||
HIGHBD_OBMCSADMXN(32, 8)
|
||||
#endif
|
||||
/* clang-format on */
|
||||
#endif // CONFIG_HIGHBITDEPTH
|
||||
#endif // CONFIG_AV1 && CONFIG_MOTION_VAR
|
||||
|
|
|
|||
|
|
@ -508,17 +508,19 @@ SIMD_INLINE v256 v256_shr_s32(v256 a, unsigned int c) {
|
|||
to enforce that. */
|
||||
#define v256_shl_n_byte(a, n) \
|
||||
((n) < 16 ? v256_from_v128(v128_or(v128_shl_n_byte(a.hi, n), \
|
||||
v128_shr_n_byte(a.lo, 16 - (n))), \
|
||||
v128_shr_n_byte(a.lo, (16 - (n)) & 31)), \
|
||||
v128_shl_n_byte(a.lo, (n))) \
|
||||
: v256_from_v128((n) > 16 ? v128_shl_n_byte(a.lo, (n)-16) : a.lo, \
|
||||
v128_zero()))
|
||||
: v256_from_v128( \
|
||||
(n) > 16 ? v128_shl_n_byte(a.lo, ((n)-16) & 31) : a.lo, \
|
||||
v128_zero()))
|
||||
|
||||
#define v256_shr_n_byte(a, n) \
|
||||
((n) < 16 ? v256_from_v128(v128_shr_n_byte(a.hi, n), \
|
||||
v128_or(v128_shr_n_byte(a.lo, n), \
|
||||
v128_shl_n_byte(a.hi, 16 - (n)))) \
|
||||
: v256_from_v128(v128_zero(), \
|
||||
(n) > 16 ? v128_shr_n_byte(a.hi, (n)-16) : a.hi))
|
||||
#define v256_shr_n_byte(a, n) \
|
||||
((n) < 16 ? v256_from_v128(v128_shr_n_byte(a.hi, n), \
|
||||
v128_or(v128_shr_n_byte(a.lo, n), \
|
||||
v128_shl_n_byte(a.hi, (16 - (n)) & 31))) \
|
||||
: v256_from_v128( \
|
||||
v128_zero(), \
|
||||
(n) > 16 ? v128_shr_n_byte(a.hi, ((n)-16) & 31) : a.hi))
|
||||
|
||||
#define v256_align(a, b, c) \
|
||||
((c) ? v256_or(v256_shr_n_byte(b, c), v256_shl_n_byte(a, 32 - (c))) : b)
|
||||
|
|
|
|||
79
third_party/aom/aom_dsp/txfm_common.h
vendored
79
third_party/aom/aom_dsp/txfm_common.h
vendored
|
|
@ -21,6 +21,27 @@
|
|||
#define UNIT_QUANT_SHIFT 2
|
||||
#define UNIT_QUANT_FACTOR (1 << UNIT_QUANT_SHIFT)
|
||||
|
||||
typedef struct txfm_param {
|
||||
// for both forward and inverse transforms
|
||||
int tx_type;
|
||||
int tx_size;
|
||||
int lossless;
|
||||
int bd;
|
||||
#if CONFIG_MRC_TX || CONFIG_LGT
|
||||
int stride;
|
||||
uint8_t *dst;
|
||||
#endif // CONFIG_MRC_TX || CONFIG_LGT
|
||||
#if CONFIG_LGT
|
||||
int is_inter;
|
||||
int mode;
|
||||
#endif
|
||||
// for inverse transforms only
|
||||
#if CONFIG_ADAPT_SCAN
|
||||
const int16_t *eob_threshold;
|
||||
#endif
|
||||
int eob;
|
||||
} TxfmParam;
|
||||
|
||||
// Constants:
|
||||
// for (int i = 1; i< 32; ++i)
|
||||
// printf("static const int cospi_%d_64 = %.0f;\n", i,
|
||||
|
|
@ -67,4 +88,62 @@ static const tran_high_t sinpi_4_9 = 15212;
|
|||
// 16384 * sqrt(2)
|
||||
static const tran_high_t Sqrt2 = 23170;
|
||||
|
||||
static INLINE tran_high_t fdct_round_shift(tran_high_t input) {
|
||||
tran_high_t rv = ROUND_POWER_OF_TWO(input, DCT_CONST_BITS);
|
||||
return rv;
|
||||
}
|
||||
|
||||
#if CONFIG_LGT
|
||||
// The Line Graph Transforms (LGTs) matrices are written as follows.
|
||||
// Each 2D array is 16384 times an LGT matrix, which is the matrix of
|
||||
// eigenvectors of the graph Laplacian matrices for the line graph.
|
||||
|
||||
// LGT4 name: lgt4_140
|
||||
// Self loops: 1.400, 0.000, 0.000, 0.000
|
||||
// Edges: 1.000, 1.000, 1.000
|
||||
static const tran_high_t lgt4_140[4][4] = {
|
||||
{ 4206, 9518, 13524, 15674 },
|
||||
{ 11552, 14833, 1560, -13453 },
|
||||
{ 15391, -1906, -14393, 9445 },
|
||||
{ 12201, -14921, 12016, -4581 },
|
||||
};
|
||||
|
||||
// LGT4 name: lgt4_170
|
||||
// Self loops: 1.700, 0.000, 0.000, 0.000
|
||||
// Edges: 1.000, 1.000, 1.000
|
||||
static const tran_high_t lgt4_170[4][4] = {
|
||||
{ 3636, 9287, 13584, 15902 },
|
||||
{ 10255, 15563, 2470, -13543 },
|
||||
{ 14786, 711, -15249, 9231 },
|
||||
{ 14138, -14420, 10663, -3920 },
|
||||
};
|
||||
|
||||
// LGT8 name: lgt8_150
|
||||
// Self loops: 1.500, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000
|
||||
// Edges: 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000
|
||||
static const tran_high_t lgt8_150[8][8] = {
|
||||
{ 2075, 5110, 7958, 10511, 12677, 14376, 15544, 16140 },
|
||||
{ 6114, 13307, 16196, 13845, 7015, -2084, -10509, -15534 },
|
||||
{ 9816, 16163, 8717, -6168, -15790, -11936, 2104, 14348 },
|
||||
{ 12928, 12326, -7340, -15653, 242, 15763, 6905, -12632 },
|
||||
{ 15124, 3038, -16033, 1758, 15507, -6397, -13593, 10463 },
|
||||
{ 15895, -7947, -7947, 15895, -7947, -7947, 15895, -7947 },
|
||||
{ 14325, -15057, 9030, 1050, -10659, 15483, -13358, 5236 },
|
||||
{ 9054, -12580, 14714, -15220, 14043, -11312, 7330, -2537 },
|
||||
};
|
||||
|
||||
// LGT8 name: lgt8_170
|
||||
// Self loops: 1.700, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000
|
||||
// Edges: 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000
|
||||
static const tran_high_t lgt8_170[8][8] = {
|
||||
{ 1858, 4947, 7850, 10458, 12672, 14411, 15607, 16217 },
|
||||
{ 5494, 13022, 16256, 14129, 7343, -1864, -10456, -15601 },
|
||||
{ 8887, 16266, 9500, -5529, -15749, -12273, 1876, 14394 },
|
||||
{ 11870, 13351, -6199, -15984, -590, 15733, 7273, -12644 },
|
||||
{ 14248, 5137, -15991, 291, 15893, -5685, -13963, 10425 },
|
||||
{ 15716, -5450, -10010, 15929, -6665, -8952, 16036, -7835 },
|
||||
{ 15533, -13869, 6559, 3421, -12009, 15707, -13011, 5018 },
|
||||
{ 11357, -13726, 14841, -14600, 13025, -10259, 6556, -2254 },
|
||||
};
|
||||
#endif // CONFIG_LGT
|
||||
#endif // AOM_DSP_TXFM_COMMON_H_
|
||||
|
|
|
|||
218
third_party/aom/aom_dsp/variance.c
vendored
218
third_party/aom/aom_dsp/variance.c
vendored
|
|
@ -9,6 +9,8 @@
|
|||
* PATENTS file, you can obtain it at www.aomedia.org/license/patent.
|
||||
*/
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <assert.h>
|
||||
|
||||
#include "./aom_config.h"
|
||||
#include "./aom_dsp_rtcd.h"
|
||||
|
|
@ -20,6 +22,9 @@
|
|||
#include "aom_dsp/aom_filter.h"
|
||||
#include "aom_dsp/blend.h"
|
||||
|
||||
#include "./av1_rtcd.h"
|
||||
#include "av1/common/filter.h"
|
||||
|
||||
uint32_t aom_get4x4sse_cs_c(const uint8_t *a, int a_stride, const uint8_t *b,
|
||||
int b_stride) {
|
||||
int distortion = 0;
|
||||
|
|
@ -246,6 +251,13 @@ VARIANCES(4, 2)
|
|||
VARIANCES(2, 4)
|
||||
VARIANCES(2, 2)
|
||||
|
||||
#if CONFIG_AV1 && CONFIG_EXT_PARTITION_TYPES
|
||||
VARIANCES(4, 16)
|
||||
VARIANCES(16, 4)
|
||||
VARIANCES(8, 32)
|
||||
VARIANCES(32, 8)
|
||||
#endif
|
||||
|
||||
GET_VAR(16, 16)
|
||||
GET_VAR(8, 8)
|
||||
|
||||
|
|
@ -271,33 +283,66 @@ void aom_comp_avg_pred_c(uint8_t *comp_pred, const uint8_t *pred, int width,
|
|||
|
||||
// Get pred block from up-sampled reference.
|
||||
void aom_upsampled_pred_c(uint8_t *comp_pred, int width, int height,
|
||||
const uint8_t *ref, int ref_stride) {
|
||||
int i, j, k;
|
||||
int stride = ref_stride << 3;
|
||||
|
||||
for (i = 0; i < height; i++) {
|
||||
for (j = 0, k = 0; j < width; j++, k += 8) {
|
||||
comp_pred[j] = ref[k];
|
||||
int subpel_x_q3, int subpel_y_q3, const uint8_t *ref,
|
||||
int ref_stride) {
|
||||
if (!subpel_x_q3 && !subpel_y_q3) {
|
||||
int i;
|
||||
for (i = 0; i < height; i++) {
|
||||
memcpy(comp_pred, ref, width * sizeof(*comp_pred));
|
||||
comp_pred += width;
|
||||
ref += ref_stride;
|
||||
}
|
||||
} else {
|
||||
InterpFilterParams filter;
|
||||
filter = av1_get_interp_filter_params(EIGHTTAP_REGULAR);
|
||||
if (!subpel_y_q3) {
|
||||
const int16_t *kernel;
|
||||
kernel = av1_get_interp_filter_subpel_kernel(filter, subpel_x_q3 << 1);
|
||||
/*Directly call C version to allow this to work for small (2x2) sizes.*/
|
||||
aom_convolve8_horiz_c(ref, ref_stride, comp_pred, width, kernel, 16, NULL,
|
||||
-1, width, height);
|
||||
} else if (!subpel_x_q3) {
|
||||
const int16_t *kernel;
|
||||
kernel = av1_get_interp_filter_subpel_kernel(filter, subpel_y_q3 << 1);
|
||||
/*Directly call C version to allow this to work for small (2x2) sizes.*/
|
||||
aom_convolve8_vert_c(ref, ref_stride, comp_pred, width, NULL, -1, kernel,
|
||||
16, width, height);
|
||||
} else {
|
||||
DECLARE_ALIGNED(16, uint8_t,
|
||||
temp[((MAX_SB_SIZE * 2 + 16) + 16) * MAX_SB_SIZE]);
|
||||
const int16_t *kernel_x;
|
||||
const int16_t *kernel_y;
|
||||
int intermediate_height;
|
||||
kernel_x = av1_get_interp_filter_subpel_kernel(filter, subpel_x_q3 << 1);
|
||||
kernel_y = av1_get_interp_filter_subpel_kernel(filter, subpel_y_q3 << 1);
|
||||
intermediate_height =
|
||||
(((height - 1) * 8 + subpel_y_q3) >> 3) + filter.taps;
|
||||
assert(intermediate_height <= (MAX_SB_SIZE * 2 + 16) + 16);
|
||||
/*Directly call C versions to allow this to work for small (2x2) sizes.*/
|
||||
aom_convolve8_horiz_c(ref - ref_stride * ((filter.taps >> 1) - 1),
|
||||
ref_stride, temp, MAX_SB_SIZE, kernel_x, 16, NULL,
|
||||
-1, width, intermediate_height);
|
||||
aom_convolve8_vert_c(temp + MAX_SB_SIZE * ((filter.taps >> 1) - 1),
|
||||
MAX_SB_SIZE, comp_pred, width, NULL, -1, kernel_y,
|
||||
16, width, height);
|
||||
}
|
||||
comp_pred += width;
|
||||
ref += stride;
|
||||
}
|
||||
}
|
||||
|
||||
void aom_comp_avg_upsampled_pred_c(uint8_t *comp_pred, const uint8_t *pred,
|
||||
int width, int height, const uint8_t *ref,
|
||||
int width, int height, int subpel_x_q3,
|
||||
int subpel_y_q3, const uint8_t *ref,
|
||||
int ref_stride) {
|
||||
int i, j;
|
||||
int stride = ref_stride << 3;
|
||||
|
||||
aom_upsampled_pred(comp_pred, width, height, subpel_x_q3, subpel_y_q3, ref,
|
||||
ref_stride);
|
||||
for (i = 0; i < height; i++) {
|
||||
for (j = 0; j < width; j++) {
|
||||
const int tmp = ref[(j << 3)] + pred[j];
|
||||
comp_pred[j] = ROUND_POWER_OF_TWO(tmp, 1);
|
||||
comp_pred[j] = ROUND_POWER_OF_TWO(comp_pred[j] + pred[j], 1);
|
||||
}
|
||||
comp_pred += width;
|
||||
pred += width;
|
||||
ref += stride;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -611,6 +656,13 @@ HIGHBD_VARIANCES(4, 2)
|
|||
HIGHBD_VARIANCES(2, 4)
|
||||
HIGHBD_VARIANCES(2, 2)
|
||||
|
||||
#if CONFIG_AV1 && CONFIG_EXT_PARTITION_TYPES
|
||||
HIGHBD_VARIANCES(4, 16)
|
||||
HIGHBD_VARIANCES(16, 4)
|
||||
HIGHBD_VARIANCES(8, 32)
|
||||
HIGHBD_VARIANCES(32, 8)
|
||||
#endif
|
||||
|
||||
HIGHBD_GET_VAR(8)
|
||||
HIGHBD_GET_VAR(16)
|
||||
|
||||
|
|
@ -637,37 +689,74 @@ void aom_highbd_comp_avg_pred_c(uint16_t *comp_pred, const uint8_t *pred8,
|
|||
}
|
||||
|
||||
void aom_highbd_upsampled_pred_c(uint16_t *comp_pred, int width, int height,
|
||||
const uint8_t *ref8, int ref_stride) {
|
||||
int i, j;
|
||||
int stride = ref_stride << 3;
|
||||
|
||||
uint16_t *ref = CONVERT_TO_SHORTPTR(ref8);
|
||||
for (i = 0; i < height; ++i) {
|
||||
for (j = 0; j < width; ++j) {
|
||||
comp_pred[j] = ref[(j << 3)];
|
||||
int subpel_x_q3, int subpel_y_q3,
|
||||
const uint8_t *ref8, int ref_stride, int bd) {
|
||||
if (!subpel_x_q3 && !subpel_y_q3) {
|
||||
const uint16_t *ref;
|
||||
int i;
|
||||
ref = CONVERT_TO_SHORTPTR(ref8);
|
||||
for (i = 0; i < height; i++) {
|
||||
memcpy(comp_pred, ref, width * sizeof(*comp_pred));
|
||||
comp_pred += width;
|
||||
ref += ref_stride;
|
||||
}
|
||||
} else {
|
||||
InterpFilterParams filter;
|
||||
filter = av1_get_interp_filter_params(EIGHTTAP_REGULAR);
|
||||
if (!subpel_y_q3) {
|
||||
const int16_t *kernel;
|
||||
kernel = av1_get_interp_filter_subpel_kernel(filter, subpel_x_q3 << 1);
|
||||
/*Directly call C version to allow this to work for small (2x2) sizes.*/
|
||||
aom_highbd_convolve8_horiz_c(ref8, ref_stride,
|
||||
CONVERT_TO_BYTEPTR(comp_pred), width, kernel,
|
||||
16, NULL, -1, width, height, bd);
|
||||
} else if (!subpel_x_q3) {
|
||||
const int16_t *kernel;
|
||||
kernel = av1_get_interp_filter_subpel_kernel(filter, subpel_y_q3 << 1);
|
||||
/*Directly call C version to allow this to work for small (2x2) sizes.*/
|
||||
aom_highbd_convolve8_vert_c(ref8, ref_stride,
|
||||
CONVERT_TO_BYTEPTR(comp_pred), width, NULL,
|
||||
-1, kernel, 16, width, height, bd);
|
||||
} else {
|
||||
DECLARE_ALIGNED(16, uint16_t,
|
||||
temp[((MAX_SB_SIZE + 16) + 16) * MAX_SB_SIZE]);
|
||||
const int16_t *kernel_x;
|
||||
const int16_t *kernel_y;
|
||||
int intermediate_height;
|
||||
kernel_x = av1_get_interp_filter_subpel_kernel(filter, subpel_x_q3 << 1);
|
||||
kernel_y = av1_get_interp_filter_subpel_kernel(filter, subpel_y_q3 << 1);
|
||||
intermediate_height =
|
||||
(((height - 1) * 8 + subpel_y_q3) >> 3) + filter.taps;
|
||||
assert(intermediate_height <= (MAX_SB_SIZE * 2 + 16) + 16);
|
||||
/*Directly call C versions to allow this to work for small (2x2) sizes.*/
|
||||
aom_highbd_convolve8_horiz_c(ref8 - ref_stride * ((filter.taps >> 1) - 1),
|
||||
ref_stride, CONVERT_TO_BYTEPTR(temp),
|
||||
MAX_SB_SIZE, kernel_x, 16, NULL, -1, width,
|
||||
intermediate_height, bd);
|
||||
aom_highbd_convolve8_vert_c(
|
||||
CONVERT_TO_BYTEPTR(temp + MAX_SB_SIZE * ((filter.taps >> 1) - 1)),
|
||||
MAX_SB_SIZE, CONVERT_TO_BYTEPTR(comp_pred), width, NULL, -1, kernel_y,
|
||||
16, width, height, bd);
|
||||
}
|
||||
comp_pred += width;
|
||||
ref += stride;
|
||||
}
|
||||
}
|
||||
|
||||
void aom_highbd_comp_avg_upsampled_pred_c(uint16_t *comp_pred,
|
||||
const uint8_t *pred8, int width,
|
||||
int height, const uint8_t *ref8,
|
||||
int ref_stride) {
|
||||
int height, int subpel_x_q3,
|
||||
int subpel_y_q3, const uint8_t *ref8,
|
||||
int ref_stride, int bd) {
|
||||
int i, j;
|
||||
int stride = ref_stride << 3;
|
||||
|
||||
uint16_t *pred = CONVERT_TO_SHORTPTR(pred8);
|
||||
uint16_t *ref = CONVERT_TO_SHORTPTR(ref8);
|
||||
const uint16_t *pred = CONVERT_TO_SHORTPTR(pred8);
|
||||
aom_highbd_upsampled_pred(comp_pred, width, height, subpel_x_q3, subpel_y_q3,
|
||||
ref8, ref_stride, bd);
|
||||
for (i = 0; i < height; ++i) {
|
||||
for (j = 0; j < width; ++j) {
|
||||
const int tmp = pred[j] + ref[(j << 3)];
|
||||
comp_pred[j] = ROUND_POWER_OF_TWO(tmp, 1);
|
||||
comp_pred[j] = ROUND_POWER_OF_TWO(pred[j] + comp_pred[j], 1);
|
||||
}
|
||||
comp_pred += width;
|
||||
pred += width;
|
||||
ref += stride;
|
||||
}
|
||||
}
|
||||
#endif // CONFIG_HIGHBITDEPTH
|
||||
|
|
@ -694,22 +783,23 @@ void aom_comp_mask_pred_c(uint8_t *comp_pred, const uint8_t *pred, int width,
|
|||
}
|
||||
|
||||
void aom_comp_mask_upsampled_pred_c(uint8_t *comp_pred, const uint8_t *pred,
|
||||
int width, int height, const uint8_t *ref,
|
||||
int width, int height, int subpel_x_q3,
|
||||
int subpel_y_q3, const uint8_t *ref,
|
||||
int ref_stride, const uint8_t *mask,
|
||||
int mask_stride, int invert_mask) {
|
||||
int i, j;
|
||||
int stride = ref_stride << 3;
|
||||
|
||||
aom_upsampled_pred(comp_pred, width, height, subpel_x_q3, subpel_y_q3, ref,
|
||||
ref_stride);
|
||||
for (i = 0; i < height; i++) {
|
||||
for (j = 0; j < width; j++) {
|
||||
if (!invert_mask)
|
||||
comp_pred[j] = AOM_BLEND_A64(mask[j], ref[(j << 3)], pred[j]);
|
||||
comp_pred[j] = AOM_BLEND_A64(mask[j], comp_pred[j], pred[j]);
|
||||
else
|
||||
comp_pred[j] = AOM_BLEND_A64(mask[j], pred[j], ref[(j << 3)]);
|
||||
comp_pred[j] = AOM_BLEND_A64(mask[j], pred[j], comp_pred[j]);
|
||||
}
|
||||
comp_pred += width;
|
||||
pred += width;
|
||||
ref += stride;
|
||||
mask += mask_stride;
|
||||
}
|
||||
}
|
||||
|
|
@ -753,6 +843,13 @@ MASK_SUBPIX_VAR(128, 64)
|
|||
MASK_SUBPIX_VAR(128, 128)
|
||||
#endif // CONFIG_EXT_PARTITION
|
||||
|
||||
#if CONFIG_EXT_PARTITION_TYPES
|
||||
MASK_SUBPIX_VAR(4, 16)
|
||||
MASK_SUBPIX_VAR(16, 4)
|
||||
MASK_SUBPIX_VAR(8, 32)
|
||||
MASK_SUBPIX_VAR(32, 8)
|
||||
#endif
|
||||
|
||||
#if CONFIG_HIGHBITDEPTH
|
||||
void aom_highbd_comp_mask_pred_c(uint16_t *comp_pred, const uint8_t *pred8,
|
||||
int width, int height, const uint8_t *ref8,
|
||||
|
|
@ -775,26 +872,24 @@ void aom_highbd_comp_mask_pred_c(uint16_t *comp_pred, const uint8_t *pred8,
|
|||
}
|
||||
}
|
||||
|
||||
void aom_highbd_comp_mask_upsampled_pred_c(uint16_t *comp_pred,
|
||||
const uint8_t *pred8, int width,
|
||||
int height, const uint8_t *ref8,
|
||||
int ref_stride, const uint8_t *mask,
|
||||
int mask_stride, int invert_mask) {
|
||||
void aom_highbd_comp_mask_upsampled_pred_c(
|
||||
uint16_t *comp_pred, const uint8_t *pred8, int width, int height,
|
||||
int subpel_x_q3, int subpel_y_q3, const uint8_t *ref8, int ref_stride,
|
||||
const uint8_t *mask, int mask_stride, int invert_mask, int bd) {
|
||||
int i, j;
|
||||
int stride = ref_stride << 3;
|
||||
|
||||
uint16_t *pred = CONVERT_TO_SHORTPTR(pred8);
|
||||
uint16_t *ref = CONVERT_TO_SHORTPTR(ref8);
|
||||
aom_highbd_upsampled_pred(comp_pred, width, height, subpel_x_q3, subpel_y_q3,
|
||||
ref8, ref_stride, bd);
|
||||
for (i = 0; i < height; ++i) {
|
||||
for (j = 0; j < width; ++j) {
|
||||
if (!invert_mask)
|
||||
comp_pred[j] = AOM_BLEND_A64(mask[j], ref[j << 3], pred[j]);
|
||||
comp_pred[j] = AOM_BLEND_A64(mask[j], comp_pred[j], pred[j]);
|
||||
else
|
||||
comp_pred[j] = AOM_BLEND_A64(mask[j], pred[j], ref[j << 3]);
|
||||
comp_pred[j] = AOM_BLEND_A64(mask[j], pred[j], comp_pred[j]);
|
||||
}
|
||||
comp_pred += width;
|
||||
pred += width;
|
||||
ref += stride;
|
||||
mask += mask_stride;
|
||||
}
|
||||
}
|
||||
|
|
@ -884,6 +979,13 @@ HIGHBD_MASK_SUBPIX_VAR(64, 128)
|
|||
HIGHBD_MASK_SUBPIX_VAR(128, 64)
|
||||
HIGHBD_MASK_SUBPIX_VAR(128, 128)
|
||||
#endif // CONFIG_EXT_PARTITION
|
||||
|
||||
#if CONFIG_EXT_PARTITION_TYPES
|
||||
HIGHBD_MASK_SUBPIX_VAR(4, 16)
|
||||
HIGHBD_MASK_SUBPIX_VAR(16, 4)
|
||||
HIGHBD_MASK_SUBPIX_VAR(8, 32)
|
||||
HIGHBD_MASK_SUBPIX_VAR(32, 8)
|
||||
#endif
|
||||
#endif // CONFIG_HIGHBITDEPTH
|
||||
#endif // CONFIG_AV1 && CONFIG_EXT_INTER
|
||||
|
||||
|
|
@ -983,6 +1085,17 @@ OBMC_VAR(128, 128)
|
|||
OBMC_SUBPIX_VAR(128, 128)
|
||||
#endif // CONFIG_EXT_PARTITION
|
||||
|
||||
#if CONFIG_EXT_PARTITION_TYPES
|
||||
OBMC_VAR(4, 16)
|
||||
OBMC_SUBPIX_VAR(4, 16)
|
||||
OBMC_VAR(16, 4)
|
||||
OBMC_SUBPIX_VAR(16, 4)
|
||||
OBMC_VAR(8, 32)
|
||||
OBMC_SUBPIX_VAR(8, 32)
|
||||
OBMC_VAR(32, 8)
|
||||
OBMC_SUBPIX_VAR(32, 8)
|
||||
#endif
|
||||
|
||||
#if CONFIG_HIGHBITDEPTH
|
||||
static INLINE void highbd_obmc_variance64(const uint8_t *pre8, int pre_stride,
|
||||
const int32_t *wsrc,
|
||||
|
|
@ -1164,5 +1277,16 @@ HIGHBD_OBMC_SUBPIX_VAR(128, 64)
|
|||
HIGHBD_OBMC_VAR(128, 128)
|
||||
HIGHBD_OBMC_SUBPIX_VAR(128, 128)
|
||||
#endif // CONFIG_EXT_PARTITION
|
||||
|
||||
#if CONFIG_EXT_PARTITION_TYPES
|
||||
HIGHBD_OBMC_VAR(4, 16)
|
||||
HIGHBD_OBMC_SUBPIX_VAR(4, 16)
|
||||
HIGHBD_OBMC_VAR(16, 4)
|
||||
HIGHBD_OBMC_SUBPIX_VAR(16, 4)
|
||||
HIGHBD_OBMC_VAR(8, 32)
|
||||
HIGHBD_OBMC_SUBPIX_VAR(8, 32)
|
||||
HIGHBD_OBMC_VAR(32, 8)
|
||||
HIGHBD_OBMC_SUBPIX_VAR(32, 8)
|
||||
#endif
|
||||
#endif // CONFIG_HIGHBITDEPTH
|
||||
#endif // CONFIG_AV1 && CONFIG_MOTION_VAR
|
||||
|
|
|
|||
141
third_party/aom/aom_dsp/x86/fwd_txfm_sse2.c
vendored
141
third_party/aom/aom_dsp/x86/fwd_txfm_sse2.c
vendored
|
|
@ -85,147 +85,6 @@ void aom_fdct8x8_1_sse2(const int16_t *input, tran_low_t *output, int stride) {
|
|||
output[0] = (tran_low_t)_mm_cvtsi128_si32(in1);
|
||||
}
|
||||
|
||||
void aom_fdct16x16_1_sse2(const int16_t *input, tran_low_t *output,
|
||||
int stride) {
|
||||
__m128i in0, in1, in2, in3;
|
||||
__m128i u0, u1;
|
||||
__m128i sum = _mm_setzero_si128();
|
||||
int i;
|
||||
|
||||
for (i = 0; i < 2; ++i) {
|
||||
in0 = _mm_load_si128((const __m128i *)(input + 0 * stride + 0));
|
||||
in1 = _mm_load_si128((const __m128i *)(input + 0 * stride + 8));
|
||||
in2 = _mm_load_si128((const __m128i *)(input + 1 * stride + 0));
|
||||
in3 = _mm_load_si128((const __m128i *)(input + 1 * stride + 8));
|
||||
|
||||
u0 = _mm_add_epi16(in0, in1);
|
||||
u1 = _mm_add_epi16(in2, in3);
|
||||
sum = _mm_add_epi16(sum, u0);
|
||||
|
||||
in0 = _mm_load_si128((const __m128i *)(input + 2 * stride + 0));
|
||||
in1 = _mm_load_si128((const __m128i *)(input + 2 * stride + 8));
|
||||
in2 = _mm_load_si128((const __m128i *)(input + 3 * stride + 0));
|
||||
in3 = _mm_load_si128((const __m128i *)(input + 3 * stride + 8));
|
||||
|
||||
sum = _mm_add_epi16(sum, u1);
|
||||
u0 = _mm_add_epi16(in0, in1);
|
||||
u1 = _mm_add_epi16(in2, in3);
|
||||
sum = _mm_add_epi16(sum, u0);
|
||||
|
||||
in0 = _mm_load_si128((const __m128i *)(input + 4 * stride + 0));
|
||||
in1 = _mm_load_si128((const __m128i *)(input + 4 * stride + 8));
|
||||
in2 = _mm_load_si128((const __m128i *)(input + 5 * stride + 0));
|
||||
in3 = _mm_load_si128((const __m128i *)(input + 5 * stride + 8));
|
||||
|
||||
sum = _mm_add_epi16(sum, u1);
|
||||
u0 = _mm_add_epi16(in0, in1);
|
||||
u1 = _mm_add_epi16(in2, in3);
|
||||
sum = _mm_add_epi16(sum, u0);
|
||||
|
||||
in0 = _mm_load_si128((const __m128i *)(input + 6 * stride + 0));
|
||||
in1 = _mm_load_si128((const __m128i *)(input + 6 * stride + 8));
|
||||
in2 = _mm_load_si128((const __m128i *)(input + 7 * stride + 0));
|
||||
in3 = _mm_load_si128((const __m128i *)(input + 7 * stride + 8));
|
||||
|
||||
sum = _mm_add_epi16(sum, u1);
|
||||
u0 = _mm_add_epi16(in0, in1);
|
||||
u1 = _mm_add_epi16(in2, in3);
|
||||
sum = _mm_add_epi16(sum, u0);
|
||||
|
||||
sum = _mm_add_epi16(sum, u1);
|
||||
input += 8 * stride;
|
||||
}
|
||||
|
||||
u0 = _mm_setzero_si128();
|
||||
in0 = _mm_unpacklo_epi16(u0, sum);
|
||||
in1 = _mm_unpackhi_epi16(u0, sum);
|
||||
in0 = _mm_srai_epi32(in0, 16);
|
||||
in1 = _mm_srai_epi32(in1, 16);
|
||||
|
||||
sum = _mm_add_epi32(in0, in1);
|
||||
in0 = _mm_unpacklo_epi32(sum, u0);
|
||||
in1 = _mm_unpackhi_epi32(sum, u0);
|
||||
|
||||
sum = _mm_add_epi32(in0, in1);
|
||||
in0 = _mm_srli_si128(sum, 8);
|
||||
|
||||
in1 = _mm_add_epi32(sum, in0);
|
||||
in1 = _mm_srai_epi32(in1, 1);
|
||||
output[0] = (tran_low_t)_mm_cvtsi128_si32(in1);
|
||||
}
|
||||
|
||||
void aom_fdct32x32_1_sse2(const int16_t *input, tran_low_t *output,
|
||||
int stride) {
|
||||
__m128i in0, in1, in2, in3;
|
||||
__m128i u0, u1;
|
||||
__m128i sum = _mm_setzero_si128();
|
||||
int i;
|
||||
|
||||
for (i = 0; i < 8; ++i) {
|
||||
in0 = _mm_load_si128((const __m128i *)(input + 0));
|
||||
in1 = _mm_load_si128((const __m128i *)(input + 8));
|
||||
in2 = _mm_load_si128((const __m128i *)(input + 16));
|
||||
in3 = _mm_load_si128((const __m128i *)(input + 24));
|
||||
|
||||
input += stride;
|
||||
u0 = _mm_add_epi16(in0, in1);
|
||||
u1 = _mm_add_epi16(in2, in3);
|
||||
sum = _mm_add_epi16(sum, u0);
|
||||
|
||||
in0 = _mm_load_si128((const __m128i *)(input + 0));
|
||||
in1 = _mm_load_si128((const __m128i *)(input + 8));
|
||||
in2 = _mm_load_si128((const __m128i *)(input + 16));
|
||||
in3 = _mm_load_si128((const __m128i *)(input + 24));
|
||||
|
||||
input += stride;
|
||||
sum = _mm_add_epi16(sum, u1);
|
||||
u0 = _mm_add_epi16(in0, in1);
|
||||
u1 = _mm_add_epi16(in2, in3);
|
||||
sum = _mm_add_epi16(sum, u0);
|
||||
|
||||
in0 = _mm_load_si128((const __m128i *)(input + 0));
|
||||
in1 = _mm_load_si128((const __m128i *)(input + 8));
|
||||
in2 = _mm_load_si128((const __m128i *)(input + 16));
|
||||
in3 = _mm_load_si128((const __m128i *)(input + 24));
|
||||
|
||||
input += stride;
|
||||
sum = _mm_add_epi16(sum, u1);
|
||||
u0 = _mm_add_epi16(in0, in1);
|
||||
u1 = _mm_add_epi16(in2, in3);
|
||||
sum = _mm_add_epi16(sum, u0);
|
||||
|
||||
in0 = _mm_load_si128((const __m128i *)(input + 0));
|
||||
in1 = _mm_load_si128((const __m128i *)(input + 8));
|
||||
in2 = _mm_load_si128((const __m128i *)(input + 16));
|
||||
in3 = _mm_load_si128((const __m128i *)(input + 24));
|
||||
|
||||
input += stride;
|
||||
sum = _mm_add_epi16(sum, u1);
|
||||
u0 = _mm_add_epi16(in0, in1);
|
||||
u1 = _mm_add_epi16(in2, in3);
|
||||
sum = _mm_add_epi16(sum, u0);
|
||||
|
||||
sum = _mm_add_epi16(sum, u1);
|
||||
}
|
||||
|
||||
u0 = _mm_setzero_si128();
|
||||
in0 = _mm_unpacklo_epi16(u0, sum);
|
||||
in1 = _mm_unpackhi_epi16(u0, sum);
|
||||
in0 = _mm_srai_epi32(in0, 16);
|
||||
in1 = _mm_srai_epi32(in1, 16);
|
||||
|
||||
sum = _mm_add_epi32(in0, in1);
|
||||
in0 = _mm_unpacklo_epi32(sum, u0);
|
||||
in1 = _mm_unpackhi_epi32(sum, u0);
|
||||
|
||||
sum = _mm_add_epi32(in0, in1);
|
||||
in0 = _mm_srli_si128(sum, 8);
|
||||
|
||||
in1 = _mm_add_epi32(sum, in0);
|
||||
in1 = _mm_srai_epi32(in1, 3);
|
||||
output[0] = (tran_low_t)_mm_cvtsi128_si32(in1);
|
||||
}
|
||||
|
||||
#define DCT_HIGH_BIT_DEPTH 0
|
||||
#define FDCT4x4_2D aom_fdct4x4_sse2
|
||||
#define FDCT8x8_2D aom_fdct8x8_sse2
|
||||
|
|
|
|||
171
third_party/aom/aom_dsp/x86/highbd_quantize_intrin_avx2.c
vendored
Normal file
171
third_party/aom/aom_dsp/x86/highbd_quantize_intrin_avx2.c
vendored
Normal file
|
|
@ -0,0 +1,171 @@
|
|||
/*
|
||||
* Copyright (c) 2017, Alliance for Open Media. All rights reserved
|
||||
*
|
||||
* This source code is subject to the terms of the BSD 2 Clause License and
|
||||
* the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License
|
||||
* was not distributed with this source code in the LICENSE file, you can
|
||||
* obtain it at www.aomedia.org/license/software. If the Alliance for Open
|
||||
* Media Patent License 1.0 was not distributed with this source code in the
|
||||
* PATENTS file, you can obtain it at www.aomedia.org/license/patent.
|
||||
*/
|
||||
|
||||
#include <immintrin.h>
|
||||
|
||||
#include "./aom_dsp_rtcd.h"
|
||||
#include "aom/aom_integer.h"
|
||||
|
||||
static INLINE void init_one_qp(const __m128i *p, __m256i *qp) {
|
||||
const __m128i sign = _mm_srai_epi16(*p, 15);
|
||||
const __m128i dc = _mm_unpacklo_epi16(*p, sign);
|
||||
const __m128i ac = _mm_unpackhi_epi16(*p, sign);
|
||||
*qp = _mm256_insertf128_si256(_mm256_castsi128_si256(dc), ac, 1);
|
||||
}
|
||||
|
||||
static INLINE void update_qp(__m256i *qp) {
|
||||
int i;
|
||||
for (i = 0; i < 5; ++i) {
|
||||
qp[i] = _mm256_permute2x128_si256(qp[i], qp[i], 0x11);
|
||||
}
|
||||
}
|
||||
|
||||
static INLINE void init_qp(const int16_t *zbin_ptr, const int16_t *round_ptr,
|
||||
const int16_t *quant_ptr, const int16_t *dequant_ptr,
|
||||
const int16_t *quant_shift_ptr, __m256i *qp) {
|
||||
const __m128i zbin = _mm_loadu_si128((const __m128i *)zbin_ptr);
|
||||
const __m128i round = _mm_loadu_si128((const __m128i *)round_ptr);
|
||||
const __m128i quant = _mm_loadu_si128((const __m128i *)quant_ptr);
|
||||
const __m128i dequant = _mm_loadu_si128((const __m128i *)dequant_ptr);
|
||||
const __m128i quant_shift = _mm_loadu_si128((const __m128i *)quant_shift_ptr);
|
||||
init_one_qp(&zbin, &qp[0]);
|
||||
init_one_qp(&round, &qp[1]);
|
||||
init_one_qp(&quant, &qp[2]);
|
||||
init_one_qp(&dequant, &qp[3]);
|
||||
init_one_qp(&quant_shift, &qp[4]);
|
||||
}
|
||||
|
||||
// Note:
|
||||
// *x is vector multiplied by *y which is 16 int32_t parallel multiplication
|
||||
// and right shift 16. The output, 16 int32_t is save in *p.
|
||||
static INLINE void mm256_mul_shift_epi32(const __m256i *x, const __m256i *y,
|
||||
__m256i *p) {
|
||||
__m256i prod_lo = _mm256_mul_epi32(*x, *y);
|
||||
__m256i prod_hi = _mm256_srli_epi64(*x, 32);
|
||||
const __m256i mult_hi = _mm256_srli_epi64(*y, 32);
|
||||
prod_hi = _mm256_mul_epi32(prod_hi, mult_hi);
|
||||
|
||||
prod_lo = _mm256_srli_epi64(prod_lo, 16);
|
||||
const __m256i mask = _mm256_set_epi32(0, -1, 0, -1, 0, -1, 0, -1);
|
||||
prod_lo = _mm256_and_si256(prod_lo, mask);
|
||||
prod_hi = _mm256_srli_epi64(prod_hi, 16);
|
||||
|
||||
prod_hi = _mm256_slli_epi64(prod_hi, 32);
|
||||
*p = _mm256_or_si256(prod_lo, prod_hi);
|
||||
}
|
||||
|
||||
static INLINE void quantize(const __m256i *qp, __m256i *c,
|
||||
const int16_t *iscan_ptr, tran_low_t *qcoeff,
|
||||
tran_low_t *dqcoeff, __m256i *eob) {
|
||||
const __m256i abs = _mm256_abs_epi32(*c);
|
||||
const __m256i flag1 = _mm256_cmpgt_epi32(abs, qp[0]);
|
||||
__m256i flag2 = _mm256_cmpeq_epi32(abs, qp[0]);
|
||||
flag2 = _mm256_or_si256(flag1, flag2);
|
||||
const int32_t nzflag = _mm256_movemask_epi8(flag2);
|
||||
|
||||
if (LIKELY(nzflag)) {
|
||||
__m256i q = _mm256_add_epi32(abs, qp[1]);
|
||||
__m256i tmp;
|
||||
mm256_mul_shift_epi32(&q, &qp[2], &tmp);
|
||||
q = _mm256_add_epi32(tmp, q);
|
||||
|
||||
mm256_mul_shift_epi32(&q, &qp[4], &q);
|
||||
__m256i dq = _mm256_mullo_epi32(q, qp[3]);
|
||||
|
||||
q = _mm256_sign_epi32(q, *c);
|
||||
dq = _mm256_sign_epi32(dq, *c);
|
||||
q = _mm256_and_si256(q, flag2);
|
||||
dq = _mm256_and_si256(dq, flag2);
|
||||
|
||||
_mm256_storeu_si256((__m256i *)qcoeff, q);
|
||||
_mm256_storeu_si256((__m256i *)dqcoeff, dq);
|
||||
|
||||
const __m128i isc = _mm_loadu_si128((const __m128i *)iscan_ptr);
|
||||
const __m128i zr = _mm_setzero_si128();
|
||||
const __m128i lo = _mm_unpacklo_epi16(isc, zr);
|
||||
const __m128i hi = _mm_unpackhi_epi16(isc, zr);
|
||||
const __m256i iscan =
|
||||
_mm256_insertf128_si256(_mm256_castsi128_si256(lo), hi, 1);
|
||||
|
||||
const __m256i zero = _mm256_setzero_si256();
|
||||
const __m256i zc = _mm256_cmpeq_epi32(dq, zero);
|
||||
const __m256i nz = _mm256_cmpeq_epi32(zc, zero);
|
||||
__m256i cur_eob = _mm256_sub_epi32(iscan, nz);
|
||||
cur_eob = _mm256_and_si256(cur_eob, nz);
|
||||
*eob = _mm256_max_epi32(cur_eob, *eob);
|
||||
} else {
|
||||
const __m256i zero = _mm256_setzero_si256();
|
||||
_mm256_storeu_si256((__m256i *)qcoeff, zero);
|
||||
_mm256_storeu_si256((__m256i *)dqcoeff, zero);
|
||||
}
|
||||
}
|
||||
|
||||
void aom_highbd_quantize_b_avx2(const tran_low_t *coeff_ptr, intptr_t n_coeffs,
|
||||
int skip_block, const int16_t *zbin_ptr,
|
||||
const int16_t *round_ptr,
|
||||
const int16_t *quant_ptr,
|
||||
const int16_t *quant_shift_ptr,
|
||||
tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr,
|
||||
const int16_t *dequant_ptr, uint16_t *eob_ptr,
|
||||
const int16_t *scan, const int16_t *iscan) {
|
||||
(void)scan;
|
||||
const unsigned int step = 8;
|
||||
|
||||
if (LIKELY(!skip_block)) {
|
||||
__m256i qp[5], coeff;
|
||||
init_qp(zbin_ptr, round_ptr, quant_ptr, dequant_ptr, quant_shift_ptr, qp);
|
||||
coeff = _mm256_loadu_si256((const __m256i *)coeff_ptr);
|
||||
|
||||
__m256i eob = _mm256_setzero_si256();
|
||||
quantize(qp, &coeff, iscan, qcoeff_ptr, dqcoeff_ptr, &eob);
|
||||
|
||||
coeff_ptr += step;
|
||||
qcoeff_ptr += step;
|
||||
dqcoeff_ptr += step;
|
||||
iscan += step;
|
||||
n_coeffs -= step;
|
||||
|
||||
update_qp(qp);
|
||||
|
||||
while (n_coeffs > 0) {
|
||||
coeff = _mm256_loadu_si256((const __m256i *)coeff_ptr);
|
||||
quantize(qp, &coeff, iscan, qcoeff_ptr, dqcoeff_ptr, &eob);
|
||||
|
||||
coeff_ptr += step;
|
||||
qcoeff_ptr += step;
|
||||
dqcoeff_ptr += step;
|
||||
iscan += step;
|
||||
n_coeffs -= step;
|
||||
}
|
||||
{
|
||||
__m256i eob_s;
|
||||
eob_s = _mm256_shuffle_epi32(eob, 0xe);
|
||||
eob = _mm256_max_epi16(eob, eob_s);
|
||||
eob_s = _mm256_shufflelo_epi16(eob, 0xe);
|
||||
eob = _mm256_max_epi16(eob, eob_s);
|
||||
eob_s = _mm256_shufflelo_epi16(eob, 1);
|
||||
eob = _mm256_max_epi16(eob, eob_s);
|
||||
const __m128i final_eob = _mm_max_epi16(_mm256_castsi256_si128(eob),
|
||||
_mm256_extractf128_si256(eob, 1));
|
||||
*eob_ptr = _mm_extract_epi16(final_eob, 0);
|
||||
}
|
||||
} else {
|
||||
do {
|
||||
const __m256i zero = _mm256_setzero_si256();
|
||||
_mm256_storeu_si256((__m256i *)qcoeff_ptr, zero);
|
||||
_mm256_storeu_si256((__m256i *)dqcoeff_ptr, zero);
|
||||
qcoeff_ptr += step;
|
||||
dqcoeff_ptr += step;
|
||||
n_coeffs -= step;
|
||||
} while (n_coeffs > 0);
|
||||
*eob_ptr = 0;
|
||||
}
|
||||
}
|
||||
|
|
@ -15,7 +15,6 @@
|
|||
#include "aom_mem/aom_mem.h"
|
||||
#include "aom_ports/mem.h"
|
||||
|
||||
#if CONFIG_HIGHBITDEPTH
|
||||
void aom_highbd_quantize_b_sse2(const tran_low_t *coeff_ptr, intptr_t count,
|
||||
int skip_block, const int16_t *zbin_ptr,
|
||||
const int16_t *round_ptr,
|
||||
|
|
@ -152,4 +151,3 @@ void aom_highbd_quantize_b_32x32_sse2(
|
|||
}
|
||||
*eob_ptr = eob + 1;
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -288,3 +288,9 @@ HIGH_SADNXN4D 8, 8
|
|||
HIGH_SADNXN4D 8, 4
|
||||
HIGH_SADNXN4D 4, 8
|
||||
HIGH_SADNXN4D 4, 4
|
||||
%if CONFIG_EXT_PARTITION_TYPES
|
||||
HIGH_SADNXN4D 4, 16
|
||||
HIGH_SADNXN4D 16, 4
|
||||
HIGH_SADNXN4D 8, 32
|
||||
HIGH_SADNXN4D 32, 8
|
||||
%endif
|
||||
|
|
|
|||
13
third_party/aom/aom_dsp/x86/highbd_sad_sse2.asm
vendored
13
third_party/aom/aom_dsp/x86/highbd_sad_sse2.asm
vendored
|
|
@ -227,6 +227,10 @@ HIGH_SAD32XN 16 ; highbd_sad32x16_sse2
|
|||
HIGH_SAD32XN 64, 1 ; highbd_sad32x64_avg_sse2
|
||||
HIGH_SAD32XN 32, 1 ; highbd_sad32x32_avg_sse2
|
||||
HIGH_SAD32XN 16, 1 ; highbd_sad32x16_avg_sse2
|
||||
%if CONFIG_EXT_PARTITION_TYPES
|
||||
HIGH_SAD32XN 8 ; highbd_sad_32x8_sse2
|
||||
HIGH_SAD32XN 8, 1 ; highbd_sad_32x8_avg_sse2
|
||||
%endif
|
||||
|
||||
; unsigned int aom_highbd_sad16x{8,16,32}_sse2(uint8_t *src, int src_stride,
|
||||
; uint8_t *ref, int ref_stride);
|
||||
|
|
@ -295,7 +299,10 @@ HIGH_SAD16XN 8 ; highbd_sad16x8_sse2
|
|||
HIGH_SAD16XN 32, 1 ; highbd_sad16x32_avg_sse2
|
||||
HIGH_SAD16XN 16, 1 ; highbd_sad16x16_avg_sse2
|
||||
HIGH_SAD16XN 8, 1 ; highbd_sad16x8_avg_sse2
|
||||
|
||||
%if CONFIG_EXT_PARTITION_TYPES
|
||||
HIGH_SAD16XN 4 ; highbd_sad_16x4_sse2
|
||||
HIGH_SAD16XN 4, 1 ; highbd_sad_16x4_avg_sse2
|
||||
%endif
|
||||
|
||||
; unsigned int aom_highbd_sad8x{4,8,16}_sse2(uint8_t *src, int src_stride,
|
||||
; uint8_t *ref, int ref_stride);
|
||||
|
|
@ -364,3 +371,7 @@ HIGH_SAD8XN 4 ; highbd_sad8x4_sse2
|
|||
HIGH_SAD8XN 16, 1 ; highbd_sad8x16_avg_sse2
|
||||
HIGH_SAD8XN 8, 1 ; highbd_sad8x8_avg_sse2
|
||||
HIGH_SAD8XN 4, 1 ; highbd_sad8x4_avg_sse2
|
||||
%if CONFIG_EXT_PARTITION_TYPES
|
||||
HIGH_SAD8XN 32 ; highbd_sad_8x32_sse2
|
||||
HIGH_SAD8XN 32, 1 ; highbd_sad_8x32_avg_sse2
|
||||
%endif
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@ SECTION .text
|
|||
paddd m6, m4
|
||||
mov r1, ssem ; r1 = unsigned int *sse
|
||||
movd [r1], m7 ; store sse
|
||||
movd rax, m6 ; store sum as return value
|
||||
movd eax, m6 ; store sum as return value
|
||||
%endif
|
||||
RET
|
||||
%endmacro
|
||||
|
|
|
|||
272
third_party/aom/aom_dsp/x86/highbd_variance_sse2.c
vendored
272
third_party/aom/aom_dsp/x86/highbd_variance_sse2.c
vendored
|
|
@ -9,6 +9,7 @@
|
|||
* PATENTS file, you can obtain it at www.aomedia.org/license/patent.
|
||||
*/
|
||||
|
||||
#include <assert.h>
|
||||
#include <emmintrin.h> // SSE2
|
||||
|
||||
#include "./aom_config.h"
|
||||
|
|
@ -16,6 +17,9 @@
|
|||
|
||||
#include "aom_ports/mem.h"
|
||||
|
||||
#include "./av1_rtcd.h"
|
||||
#include "av1/common/filter.h"
|
||||
|
||||
typedef uint32_t (*high_variance_fn_t)(const uint16_t *src, int src_stride,
|
||||
const uint16_t *ref, int ref_stride,
|
||||
uint32_t *sse, int *sum);
|
||||
|
|
@ -181,6 +185,11 @@ VAR_FN(16, 16, 16, 8);
|
|||
VAR_FN(16, 8, 8, 7);
|
||||
VAR_FN(8, 16, 8, 7);
|
||||
VAR_FN(8, 8, 8, 6);
|
||||
#if CONFIG_EXT_PARTITION_TYPES
|
||||
VAR_FN(16, 4, 16, 6);
|
||||
VAR_FN(8, 32, 8, 8);
|
||||
VAR_FN(32, 8, 16, 8);
|
||||
#endif
|
||||
|
||||
#undef VAR_FN
|
||||
|
||||
|
|
@ -387,6 +396,7 @@ DECLS(sse2);
|
|||
return (var >= 0) ? (uint32_t)var : 0; \
|
||||
}
|
||||
|
||||
#if CONFIG_EXT_PARTITION_TYPES
|
||||
#define FNS(opt) \
|
||||
FN(64, 64, 16, 6, 6, opt, (int64_t)); \
|
||||
FN(64, 32, 16, 6, 5, opt, (int64_t)); \
|
||||
|
|
@ -398,7 +408,24 @@ DECLS(sse2);
|
|||
FN(16, 8, 16, 4, 3, opt, (int64_t)); \
|
||||
FN(8, 16, 8, 3, 4, opt, (int64_t)); \
|
||||
FN(8, 8, 8, 3, 3, opt, (int64_t)); \
|
||||
FN(8, 4, 8, 3, 2, opt, (int64_t));
|
||||
FN(8, 4, 8, 3, 2, opt, (int64_t)); \
|
||||
FN(16, 4, 16, 4, 2, opt, (int64_t)); \
|
||||
FN(8, 32, 8, 3, 5, opt, (int64_t)); \
|
||||
FN(32, 8, 16, 5, 3, opt, (int64_t))
|
||||
#else
|
||||
#define FNS(opt) \
|
||||
FN(64, 64, 16, 6, 6, opt, (int64_t)); \
|
||||
FN(64, 32, 16, 6, 5, opt, (int64_t)); \
|
||||
FN(32, 64, 16, 5, 6, opt, (int64_t)); \
|
||||
FN(32, 32, 16, 5, 5, opt, (int64_t)); \
|
||||
FN(32, 16, 16, 5, 4, opt, (int64_t)); \
|
||||
FN(16, 32, 16, 4, 5, opt, (int64_t)); \
|
||||
FN(16, 16, 16, 4, 4, opt, (int64_t)); \
|
||||
FN(16, 8, 16, 4, 3, opt, (int64_t)); \
|
||||
FN(8, 16, 8, 3, 4, opt, (int64_t)); \
|
||||
FN(8, 8, 8, 3, 3, opt, (int64_t)); \
|
||||
FN(8, 4, 8, 3, 2, opt, (int64_t))
|
||||
#endif
|
||||
|
||||
FNS(sse2);
|
||||
|
||||
|
|
@ -412,9 +439,9 @@ FNS(sse2);
|
|||
const uint16_t *dst, ptrdiff_t dst_stride, const uint16_t *sec, \
|
||||
ptrdiff_t sec_stride, int height, unsigned int *sse, void *unused0, \
|
||||
void *unused);
|
||||
#define DECLS(opt1) \
|
||||
DECL(16, opt1) \
|
||||
DECL(8, opt1)
|
||||
#define DECLS(opt) \
|
||||
DECL(16, opt) \
|
||||
DECL(8, opt)
|
||||
|
||||
DECLS(sse2);
|
||||
#undef DECL
|
||||
|
|
@ -546,18 +573,36 @@ DECLS(sse2);
|
|||
return (var >= 0) ? (uint32_t)var : 0; \
|
||||
}
|
||||
|
||||
#define FNS(opt1) \
|
||||
FN(64, 64, 16, 6, 6, opt1, (int64_t)); \
|
||||
FN(64, 32, 16, 6, 5, opt1, (int64_t)); \
|
||||
FN(32, 64, 16, 5, 6, opt1, (int64_t)); \
|
||||
FN(32, 32, 16, 5, 5, opt1, (int64_t)); \
|
||||
FN(32, 16, 16, 5, 4, opt1, (int64_t)); \
|
||||
FN(16, 32, 16, 4, 5, opt1, (int64_t)); \
|
||||
FN(16, 16, 16, 4, 4, opt1, (int64_t)); \
|
||||
FN(16, 8, 16, 4, 3, opt1, (int64_t)); \
|
||||
FN(8, 16, 8, 4, 3, opt1, (int64_t)); \
|
||||
FN(8, 8, 8, 3, 3, opt1, (int64_t)); \
|
||||
FN(8, 4, 8, 3, 2, opt1, (int64_t));
|
||||
#if CONFIG_EXT_PARTITION_TYPES
|
||||
#define FNS(opt) \
|
||||
FN(64, 64, 16, 6, 6, opt, (int64_t)); \
|
||||
FN(64, 32, 16, 6, 5, opt, (int64_t)); \
|
||||
FN(32, 64, 16, 5, 6, opt, (int64_t)); \
|
||||
FN(32, 32, 16, 5, 5, opt, (int64_t)); \
|
||||
FN(32, 16, 16, 5, 4, opt, (int64_t)); \
|
||||
FN(16, 32, 16, 4, 5, opt, (int64_t)); \
|
||||
FN(16, 16, 16, 4, 4, opt, (int64_t)); \
|
||||
FN(16, 8, 16, 4, 3, opt, (int64_t)); \
|
||||
FN(8, 16, 8, 3, 4, opt, (int64_t)); \
|
||||
FN(8, 8, 8, 3, 3, opt, (int64_t)); \
|
||||
FN(8, 4, 8, 3, 2, opt, (int64_t)); \
|
||||
FN(16, 4, 16, 4, 2, opt, (int64_t)); \
|
||||
FN(8, 32, 8, 3, 5, opt, (int64_t)); \
|
||||
FN(32, 8, 16, 5, 3, opt, (int64_t));
|
||||
#else
|
||||
#define FNS(opt) \
|
||||
FN(64, 64, 16, 6, 6, opt, (int64_t)); \
|
||||
FN(64, 32, 16, 6, 5, opt, (int64_t)); \
|
||||
FN(32, 64, 16, 5, 6, opt, (int64_t)); \
|
||||
FN(32, 32, 16, 5, 5, opt, (int64_t)); \
|
||||
FN(32, 16, 16, 5, 4, opt, (int64_t)); \
|
||||
FN(16, 32, 16, 4, 5, opt, (int64_t)); \
|
||||
FN(16, 16, 16, 4, 4, opt, (int64_t)); \
|
||||
FN(16, 8, 16, 4, 3, opt, (int64_t)); \
|
||||
FN(8, 16, 8, 3, 4, opt, (int64_t)); \
|
||||
FN(8, 8, 8, 3, 3, opt, (int64_t)); \
|
||||
FN(8, 4, 8, 3, 2, opt, (int64_t));
|
||||
#endif
|
||||
|
||||
FNS(sse2);
|
||||
|
||||
|
|
@ -565,131 +610,94 @@ FNS(sse2);
|
|||
#undef FN
|
||||
|
||||
void aom_highbd_upsampled_pred_sse2(uint16_t *comp_pred, int width, int height,
|
||||
const uint8_t *ref8, int ref_stride) {
|
||||
int i, j;
|
||||
int stride = ref_stride << 3;
|
||||
uint16_t *ref = CONVERT_TO_SHORTPTR(ref8);
|
||||
|
||||
if (width >= 8) {
|
||||
// read 8 points at one time
|
||||
for (i = 0; i < height; i++) {
|
||||
for (j = 0; j < width; j += 8) {
|
||||
__m128i s0 = _mm_cvtsi32_si128(*(const uint32_t *)ref);
|
||||
__m128i s1 = _mm_cvtsi32_si128(*(const uint32_t *)(ref + 8));
|
||||
__m128i s2 = _mm_cvtsi32_si128(*(const uint32_t *)(ref + 16));
|
||||
__m128i s3 = _mm_cvtsi32_si128(*(const uint32_t *)(ref + 24));
|
||||
__m128i s4 = _mm_cvtsi32_si128(*(const uint32_t *)(ref + 32));
|
||||
__m128i s5 = _mm_cvtsi32_si128(*(const uint32_t *)(ref + 40));
|
||||
__m128i s6 = _mm_cvtsi32_si128(*(const uint32_t *)(ref + 48));
|
||||
__m128i s7 = _mm_cvtsi32_si128(*(const uint32_t *)(ref + 56));
|
||||
__m128i t0, t1, t2, t3;
|
||||
|
||||
t0 = _mm_unpacklo_epi16(s0, s1);
|
||||
t1 = _mm_unpacklo_epi16(s2, s3);
|
||||
t2 = _mm_unpacklo_epi16(s4, s5);
|
||||
t3 = _mm_unpacklo_epi16(s6, s7);
|
||||
t0 = _mm_unpacklo_epi32(t0, t1);
|
||||
t2 = _mm_unpacklo_epi32(t2, t3);
|
||||
t0 = _mm_unpacklo_epi64(t0, t2);
|
||||
|
||||
_mm_storeu_si128((__m128i *)(comp_pred), t0);
|
||||
comp_pred += 8;
|
||||
ref += 64; // 8 * 8;
|
||||
int subpel_x_q3, int subpel_y_q3,
|
||||
const uint8_t *ref8, int ref_stride,
|
||||
int bd) {
|
||||
if (!subpel_x_q3 && !subpel_y_q3) {
|
||||
uint16_t *ref = CONVERT_TO_SHORTPTR(ref8);
|
||||
if (width >= 8) {
|
||||
int i;
|
||||
assert(!(width & 7));
|
||||
/*Read 8 pixels one row at a time.*/
|
||||
for (i = 0; i < height; i++) {
|
||||
int j;
|
||||
for (j = 0; j < width; j += 8) {
|
||||
__m128i s0 = _mm_loadu_si128((const __m128i *)ref);
|
||||
_mm_storeu_si128((__m128i *)comp_pred, s0);
|
||||
comp_pred += 8;
|
||||
ref += 8;
|
||||
}
|
||||
ref += ref_stride - width;
|
||||
}
|
||||
} else {
|
||||
int i;
|
||||
assert(!(width & 3));
|
||||
/*Read 4 pixels two rows at a time.*/
|
||||
for (i = 0; i < height; i += 2) {
|
||||
__m128i s0 = _mm_loadl_epi64((const __m128i *)ref);
|
||||
__m128i s1 = _mm_loadl_epi64((const __m128i *)(ref + ref_stride));
|
||||
__m128i t0 = _mm_unpacklo_epi64(s0, s1);
|
||||
_mm_storeu_si128((__m128i *)comp_pred, t0);
|
||||
comp_pred += 8;
|
||||
ref += 2 * ref_stride;
|
||||
}
|
||||
ref += stride - (width << 3);
|
||||
}
|
||||
} else {
|
||||
// read 4 points at one time
|
||||
for (i = 0; i < height; i++) {
|
||||
for (j = 0; j < width; j += 4) {
|
||||
__m128i s0 = _mm_cvtsi32_si128(*(const uint32_t *)ref);
|
||||
__m128i s1 = _mm_cvtsi32_si128(*(const uint32_t *)(ref + 8));
|
||||
__m128i s2 = _mm_cvtsi32_si128(*(const uint32_t *)(ref + 16));
|
||||
__m128i s3 = _mm_cvtsi32_si128(*(const uint32_t *)(ref + 24));
|
||||
__m128i t0, t1;
|
||||
|
||||
t0 = _mm_unpacklo_epi16(s0, s1);
|
||||
t1 = _mm_unpacklo_epi16(s2, s3);
|
||||
t0 = _mm_unpacklo_epi32(t0, t1);
|
||||
|
||||
_mm_storel_epi64((__m128i *)(comp_pred), t0);
|
||||
comp_pred += 4;
|
||||
ref += 4 * 8;
|
||||
}
|
||||
ref += stride - (width << 3);
|
||||
InterpFilterParams filter;
|
||||
filter = av1_get_interp_filter_params(EIGHTTAP_REGULAR);
|
||||
if (!subpel_y_q3) {
|
||||
const int16_t *kernel;
|
||||
kernel = av1_get_interp_filter_subpel_kernel(filter, subpel_x_q3 << 1);
|
||||
aom_highbd_convolve8_horiz(ref8, ref_stride,
|
||||
CONVERT_TO_BYTEPTR(comp_pred), width, kernel,
|
||||
16, NULL, -1, width, height, bd);
|
||||
} else if (!subpel_x_q3) {
|
||||
const int16_t *kernel;
|
||||
kernel = av1_get_interp_filter_subpel_kernel(filter, subpel_y_q3 << 1);
|
||||
aom_highbd_convolve8_vert(ref8, ref_stride, CONVERT_TO_BYTEPTR(comp_pred),
|
||||
width, NULL, -1, kernel, 16, width, height, bd);
|
||||
} else {
|
||||
DECLARE_ALIGNED(16, uint16_t,
|
||||
temp[((MAX_SB_SIZE + 16) + 16) * MAX_SB_SIZE]);
|
||||
const int16_t *kernel_x;
|
||||
const int16_t *kernel_y;
|
||||
int intermediate_height;
|
||||
kernel_x = av1_get_interp_filter_subpel_kernel(filter, subpel_x_q3 << 1);
|
||||
kernel_y = av1_get_interp_filter_subpel_kernel(filter, subpel_y_q3 << 1);
|
||||
intermediate_height =
|
||||
(((height - 1) * 8 + subpel_y_q3) >> 3) + filter.taps;
|
||||
assert(intermediate_height <= (MAX_SB_SIZE * 2 + 16) + 16);
|
||||
aom_highbd_convolve8_horiz(ref8 - ref_stride * ((filter.taps >> 1) - 1),
|
||||
ref_stride, CONVERT_TO_BYTEPTR(temp),
|
||||
MAX_SB_SIZE, kernel_x, 16, NULL, -1, width,
|
||||
intermediate_height, bd);
|
||||
aom_highbd_convolve8_vert(
|
||||
CONVERT_TO_BYTEPTR(temp + MAX_SB_SIZE * ((filter.taps >> 1) - 1)),
|
||||
MAX_SB_SIZE, CONVERT_TO_BYTEPTR(comp_pred), width, NULL, -1, kernel_y,
|
||||
16, width, height, bd);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void aom_highbd_comp_avg_upsampled_pred_sse2(uint16_t *comp_pred,
|
||||
const uint8_t *pred8, int width,
|
||||
int height, const uint8_t *ref8,
|
||||
int ref_stride) {
|
||||
const __m128i one = _mm_set1_epi16(1);
|
||||
int i, j;
|
||||
int stride = ref_stride << 3;
|
||||
int height, int subpel_x_q3,
|
||||
int subpel_y_q3,
|
||||
const uint8_t *ref8,
|
||||
int ref_stride, int bd) {
|
||||
uint16_t *pred = CONVERT_TO_SHORTPTR(pred8);
|
||||
uint16_t *ref = CONVERT_TO_SHORTPTR(ref8);
|
||||
|
||||
if (width >= 8) {
|
||||
// read 8 points at one time
|
||||
for (i = 0; i < height; i++) {
|
||||
for (j = 0; j < width; j += 8) {
|
||||
__m128i s0 = _mm_cvtsi32_si128(*(const uint32_t *)ref);
|
||||
__m128i s1 = _mm_cvtsi32_si128(*(const uint32_t *)(ref + 8));
|
||||
__m128i s2 = _mm_cvtsi32_si128(*(const uint32_t *)(ref + 16));
|
||||
__m128i s3 = _mm_cvtsi32_si128(*(const uint32_t *)(ref + 24));
|
||||
__m128i s4 = _mm_cvtsi32_si128(*(const uint32_t *)(ref + 32));
|
||||
__m128i s5 = _mm_cvtsi32_si128(*(const uint32_t *)(ref + 40));
|
||||
__m128i s6 = _mm_cvtsi32_si128(*(const uint32_t *)(ref + 48));
|
||||
__m128i s7 = _mm_cvtsi32_si128(*(const uint32_t *)(ref + 56));
|
||||
__m128i p0 = _mm_loadu_si128((const __m128i *)pred);
|
||||
__m128i t0, t1, t2, t3;
|
||||
|
||||
t0 = _mm_unpacklo_epi16(s0, s1);
|
||||
t1 = _mm_unpacklo_epi16(s2, s3);
|
||||
t2 = _mm_unpacklo_epi16(s4, s5);
|
||||
t3 = _mm_unpacklo_epi16(s6, s7);
|
||||
t0 = _mm_unpacklo_epi32(t0, t1);
|
||||
t2 = _mm_unpacklo_epi32(t2, t3);
|
||||
t0 = _mm_unpacklo_epi64(t0, t2);
|
||||
|
||||
p0 = _mm_adds_epu16(t0, p0);
|
||||
p0 = _mm_adds_epu16(p0, one);
|
||||
p0 = _mm_srli_epi16(p0, 1);
|
||||
|
||||
_mm_storeu_si128((__m128i *)(comp_pred), p0);
|
||||
comp_pred += 8;
|
||||
pred += 8;
|
||||
ref += 8 * 8;
|
||||
}
|
||||
ref += stride - (width << 3);
|
||||
}
|
||||
} else {
|
||||
// read 4 points at one time
|
||||
for (i = 0; i < height; i++) {
|
||||
for (j = 0; j < width; j += 4) {
|
||||
__m128i s0 = _mm_cvtsi32_si128(*(const uint32_t *)ref);
|
||||
__m128i s1 = _mm_cvtsi32_si128(*(const uint32_t *)(ref + 8));
|
||||
__m128i s2 = _mm_cvtsi32_si128(*(const uint32_t *)(ref + 16));
|
||||
__m128i s3 = _mm_cvtsi32_si128(*(const uint32_t *)(ref + 24));
|
||||
__m128i p0 = _mm_loadl_epi64((const __m128i *)pred);
|
||||
__m128i t0, t1;
|
||||
|
||||
t0 = _mm_unpacklo_epi16(s0, s1);
|
||||
t1 = _mm_unpacklo_epi16(s2, s3);
|
||||
t0 = _mm_unpacklo_epi32(t0, t1);
|
||||
|
||||
p0 = _mm_adds_epu16(t0, p0);
|
||||
p0 = _mm_adds_epu16(p0, one);
|
||||
p0 = _mm_srli_epi16(p0, 1);
|
||||
|
||||
_mm_storel_epi64((__m128i *)(comp_pred), p0);
|
||||
comp_pred += 4;
|
||||
pred += 4;
|
||||
ref += 4 * 8;
|
||||
}
|
||||
ref += stride - (width << 3);
|
||||
}
|
||||
int n;
|
||||
int i;
|
||||
aom_highbd_upsampled_pred(comp_pred, width, height, subpel_x_q3, subpel_y_q3,
|
||||
ref8, ref_stride, bd);
|
||||
/*The total number of pixels must be a multiple of 8 (e.g., 4x4).*/
|
||||
assert(!(width * height & 7));
|
||||
n = width * height >> 3;
|
||||
for (i = 0; i < n; i++) {
|
||||
__m128i s0 = _mm_loadu_si128((const __m128i *)comp_pred);
|
||||
__m128i p0 = _mm_loadu_si128((const __m128i *)pred);
|
||||
_mm_storeu_si128((__m128i *)comp_pred, _mm_avg_epu16(s0, p0));
|
||||
comp_pred += 8;
|
||||
pred += 8;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
234
third_party/aom/aom_dsp/x86/inv_txfm_sse2.c
vendored
234
third_party/aom/aom_dsp/x86/inv_txfm_sse2.c
vendored
|
|
@ -3498,237 +3498,3 @@ void idct32_8col(__m128i *in0, __m128i *in1) {
|
|||
in1[14] = _mm_sub_epi16(stp1_1, stp1_30);
|
||||
in1[15] = _mm_sub_epi16(stp1_0, stp1_31);
|
||||
}
|
||||
|
||||
#if CONFIG_HIGHBITDEPTH
|
||||
static INLINE __m128i clamp_high_sse2(__m128i value, int bd) {
|
||||
__m128i ubounded, retval;
|
||||
const __m128i zero = _mm_set1_epi16(0);
|
||||
const __m128i one = _mm_set1_epi16(1);
|
||||
const __m128i max = _mm_subs_epi16(_mm_slli_epi16(one, bd), one);
|
||||
ubounded = _mm_cmpgt_epi16(value, max);
|
||||
retval = _mm_andnot_si128(ubounded, value);
|
||||
ubounded = _mm_and_si128(ubounded, max);
|
||||
retval = _mm_or_si128(retval, ubounded);
|
||||
retval = _mm_and_si128(retval, _mm_cmpgt_epi16(retval, zero));
|
||||
return retval;
|
||||
}
|
||||
|
||||
void aom_highbd_idct4x4_16_add_sse2(const tran_low_t *input, uint8_t *dest8,
|
||||
int stride, int bd) {
|
||||
tran_low_t out[4 * 4];
|
||||
tran_low_t *outptr = out;
|
||||
int i, j;
|
||||
__m128i inptr[4];
|
||||
__m128i sign_bits[2];
|
||||
__m128i temp_mm, min_input, max_input;
|
||||
int test;
|
||||
uint16_t *dest = CONVERT_TO_SHORTPTR(dest8);
|
||||
int optimised_cols = 0;
|
||||
const __m128i zero = _mm_set1_epi16(0);
|
||||
const __m128i eight = _mm_set1_epi16(8);
|
||||
const __m128i max = _mm_set1_epi16(12043);
|
||||
const __m128i min = _mm_set1_epi16(-12043);
|
||||
// Load input into __m128i
|
||||
inptr[0] = _mm_loadu_si128((const __m128i *)input);
|
||||
inptr[1] = _mm_loadu_si128((const __m128i *)(input + 4));
|
||||
inptr[2] = _mm_loadu_si128((const __m128i *)(input + 8));
|
||||
inptr[3] = _mm_loadu_si128((const __m128i *)(input + 12));
|
||||
|
||||
// Pack to 16 bits
|
||||
inptr[0] = _mm_packs_epi32(inptr[0], inptr[1]);
|
||||
inptr[1] = _mm_packs_epi32(inptr[2], inptr[3]);
|
||||
|
||||
max_input = _mm_max_epi16(inptr[0], inptr[1]);
|
||||
min_input = _mm_min_epi16(inptr[0], inptr[1]);
|
||||
max_input = _mm_cmpgt_epi16(max_input, max);
|
||||
min_input = _mm_cmplt_epi16(min_input, min);
|
||||
temp_mm = _mm_or_si128(max_input, min_input);
|
||||
test = _mm_movemask_epi8(temp_mm);
|
||||
|
||||
if (!test) {
|
||||
// Do the row transform
|
||||
aom_idct4_sse2(inptr);
|
||||
|
||||
// Check the min & max values
|
||||
max_input = _mm_max_epi16(inptr[0], inptr[1]);
|
||||
min_input = _mm_min_epi16(inptr[0], inptr[1]);
|
||||
max_input = _mm_cmpgt_epi16(max_input, max);
|
||||
min_input = _mm_cmplt_epi16(min_input, min);
|
||||
temp_mm = _mm_or_si128(max_input, min_input);
|
||||
test = _mm_movemask_epi8(temp_mm);
|
||||
|
||||
if (test) {
|
||||
array_transpose_4x4(inptr);
|
||||
sign_bits[0] = _mm_cmplt_epi16(inptr[0], zero);
|
||||
sign_bits[1] = _mm_cmplt_epi16(inptr[1], zero);
|
||||
inptr[3] = _mm_unpackhi_epi16(inptr[1], sign_bits[1]);
|
||||
inptr[2] = _mm_unpacklo_epi16(inptr[1], sign_bits[1]);
|
||||
inptr[1] = _mm_unpackhi_epi16(inptr[0], sign_bits[0]);
|
||||
inptr[0] = _mm_unpacklo_epi16(inptr[0], sign_bits[0]);
|
||||
_mm_storeu_si128((__m128i *)outptr, inptr[0]);
|
||||
_mm_storeu_si128((__m128i *)(outptr + 4), inptr[1]);
|
||||
_mm_storeu_si128((__m128i *)(outptr + 8), inptr[2]);
|
||||
_mm_storeu_si128((__m128i *)(outptr + 12), inptr[3]);
|
||||
} else {
|
||||
// Set to use the optimised transform for the column
|
||||
optimised_cols = 1;
|
||||
}
|
||||
} else {
|
||||
// Run the un-optimised row transform
|
||||
for (i = 0; i < 4; ++i) {
|
||||
aom_highbd_idct4_c(input, outptr, bd);
|
||||
input += 4;
|
||||
outptr += 4;
|
||||
}
|
||||
}
|
||||
|
||||
if (optimised_cols) {
|
||||
aom_idct4_sse2(inptr);
|
||||
|
||||
// Final round and shift
|
||||
inptr[0] = _mm_add_epi16(inptr[0], eight);
|
||||
inptr[1] = _mm_add_epi16(inptr[1], eight);
|
||||
|
||||
inptr[0] = _mm_srai_epi16(inptr[0], 4);
|
||||
inptr[1] = _mm_srai_epi16(inptr[1], 4);
|
||||
|
||||
// Reconstruction and Store
|
||||
{
|
||||
__m128i d0 = _mm_loadl_epi64((const __m128i *)dest);
|
||||
__m128i d2 = _mm_loadl_epi64((const __m128i *)(dest + stride * 2));
|
||||
d0 = _mm_unpacklo_epi64(
|
||||
d0, _mm_loadl_epi64((const __m128i *)(dest + stride)));
|
||||
d2 = _mm_unpacklo_epi64(
|
||||
d2, _mm_loadl_epi64((const __m128i *)(dest + stride * 3)));
|
||||
d0 = clamp_high_sse2(_mm_adds_epi16(d0, inptr[0]), bd);
|
||||
d2 = clamp_high_sse2(_mm_adds_epi16(d2, inptr[1]), bd);
|
||||
// store input0
|
||||
_mm_storel_epi64((__m128i *)dest, d0);
|
||||
// store input1
|
||||
d0 = _mm_srli_si128(d0, 8);
|
||||
_mm_storel_epi64((__m128i *)(dest + stride), d0);
|
||||
// store input2
|
||||
_mm_storel_epi64((__m128i *)(dest + stride * 2), d2);
|
||||
// store input3
|
||||
d2 = _mm_srli_si128(d2, 8);
|
||||
_mm_storel_epi64((__m128i *)(dest + stride * 3), d2);
|
||||
}
|
||||
} else {
|
||||
// Run the un-optimised column transform
|
||||
tran_low_t temp_in[4], temp_out[4];
|
||||
// Columns
|
||||
for (i = 0; i < 4; ++i) {
|
||||
for (j = 0; j < 4; ++j) temp_in[j] = out[j * 4 + i];
|
||||
aom_highbd_idct4_c(temp_in, temp_out, bd);
|
||||
for (j = 0; j < 4; ++j) {
|
||||
dest[j * stride + i] = highbd_clip_pixel_add(
|
||||
dest[j * stride + i], ROUND_POWER_OF_TWO(temp_out[j], 4), bd);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void aom_highbd_idct8x8_10_add_sse2(const tran_low_t *input, uint8_t *dest8,
|
||||
int stride, int bd) {
|
||||
tran_low_t out[8 * 8] = { 0 };
|
||||
tran_low_t *outptr = out;
|
||||
int i, j, test;
|
||||
__m128i inptr[8];
|
||||
__m128i min_input, max_input, temp1, temp2, sign_bits;
|
||||
uint16_t *dest = CONVERT_TO_SHORTPTR(dest8);
|
||||
const __m128i zero = _mm_set1_epi16(0);
|
||||
const __m128i sixteen = _mm_set1_epi16(16);
|
||||
const __m128i max = _mm_set1_epi16(6201);
|
||||
const __m128i min = _mm_set1_epi16(-6201);
|
||||
int optimised_cols = 0;
|
||||
|
||||
// Load input into __m128i & pack to 16 bits
|
||||
for (i = 0; i < 8; i++) {
|
||||
temp1 = _mm_loadu_si128((const __m128i *)(input + 8 * i));
|
||||
temp2 = _mm_loadu_si128((const __m128i *)(input + 8 * i + 4));
|
||||
inptr[i] = _mm_packs_epi32(temp1, temp2);
|
||||
}
|
||||
|
||||
// Find the min & max for the row transform
|
||||
// only first 4 row has non-zero coefs
|
||||
max_input = _mm_max_epi16(inptr[0], inptr[1]);
|
||||
min_input = _mm_min_epi16(inptr[0], inptr[1]);
|
||||
for (i = 2; i < 4; i++) {
|
||||
max_input = _mm_max_epi16(max_input, inptr[i]);
|
||||
min_input = _mm_min_epi16(min_input, inptr[i]);
|
||||
}
|
||||
max_input = _mm_cmpgt_epi16(max_input, max);
|
||||
min_input = _mm_cmplt_epi16(min_input, min);
|
||||
temp1 = _mm_or_si128(max_input, min_input);
|
||||
test = _mm_movemask_epi8(temp1);
|
||||
|
||||
if (!test) {
|
||||
// Do the row transform
|
||||
aom_idct8_sse2(inptr);
|
||||
|
||||
// Find the min & max for the column transform
|
||||
// N.B. Only first 4 cols contain non-zero coeffs
|
||||
max_input = _mm_max_epi16(inptr[0], inptr[1]);
|
||||
min_input = _mm_min_epi16(inptr[0], inptr[1]);
|
||||
for (i = 2; i < 8; i++) {
|
||||
max_input = _mm_max_epi16(max_input, inptr[i]);
|
||||
min_input = _mm_min_epi16(min_input, inptr[i]);
|
||||
}
|
||||
max_input = _mm_cmpgt_epi16(max_input, max);
|
||||
min_input = _mm_cmplt_epi16(min_input, min);
|
||||
temp1 = _mm_or_si128(max_input, min_input);
|
||||
test = _mm_movemask_epi8(temp1);
|
||||
|
||||
if (test) {
|
||||
// Use fact only first 4 rows contain non-zero coeffs
|
||||
array_transpose_4X8(inptr, inptr);
|
||||
for (i = 0; i < 4; i++) {
|
||||
sign_bits = _mm_cmplt_epi16(inptr[i], zero);
|
||||
temp1 = _mm_unpackhi_epi16(inptr[i], sign_bits);
|
||||
temp2 = _mm_unpacklo_epi16(inptr[i], sign_bits);
|
||||
_mm_storeu_si128((__m128i *)(outptr + 4 * (2 * i + 1)), temp1);
|
||||
_mm_storeu_si128((__m128i *)(outptr + 4 * (2 * i)), temp2);
|
||||
}
|
||||
} else {
|
||||
// Set to use the optimised transform for the column
|
||||
optimised_cols = 1;
|
||||
}
|
||||
} else {
|
||||
// Run the un-optimised row transform
|
||||
for (i = 0; i < 4; ++i) {
|
||||
aom_highbd_idct8_c(input, outptr, bd);
|
||||
input += 8;
|
||||
outptr += 8;
|
||||
}
|
||||
}
|
||||
|
||||
if (optimised_cols) {
|
||||
aom_idct8_sse2(inptr);
|
||||
|
||||
// Final round & shift and Reconstruction and Store
|
||||
{
|
||||
__m128i d[8];
|
||||
for (i = 0; i < 8; i++) {
|
||||
inptr[i] = _mm_add_epi16(inptr[i], sixteen);
|
||||
d[i] = _mm_loadu_si128((const __m128i *)(dest + stride * i));
|
||||
inptr[i] = _mm_srai_epi16(inptr[i], 5);
|
||||
d[i] = clamp_high_sse2(_mm_adds_epi16(d[i], inptr[i]), bd);
|
||||
// Store
|
||||
_mm_storeu_si128((__m128i *)(dest + stride * i), d[i]);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// Run the un-optimised column transform
|
||||
tran_low_t temp_in[8], temp_out[8];
|
||||
for (i = 0; i < 8; ++i) {
|
||||
for (j = 0; j < 8; ++j) temp_in[j] = out[j * 8 + i];
|
||||
aom_highbd_idct8_c(temp_in, temp_out, bd);
|
||||
for (j = 0; j < 8; ++j) {
|
||||
dest[j * stride + i] = highbd_clip_pixel_add(
|
||||
dest[j * stride + i], ROUND_POWER_OF_TWO(temp_out[j], 5), bd);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endif // CONFIG_HIGHBITDEPTH
|
||||
|
|
|
|||
|
|
@ -93,6 +93,12 @@ MASKSAD8XN_SSSE3(8)
|
|||
MASKSAD8XN_SSSE3(4)
|
||||
MASKSAD4XN_SSSE3(8)
|
||||
MASKSAD4XN_SSSE3(4)
|
||||
#if CONFIG_EXT_PARTITION_TYPES
|
||||
MASKSAD4XN_SSSE3(16)
|
||||
MASKSADMXN_SSSE3(16, 4)
|
||||
MASKSAD8XN_SSSE3(32)
|
||||
MASKSADMXN_SSSE3(32, 8)
|
||||
#endif
|
||||
|
||||
static INLINE unsigned int masked_sad_ssse3(const uint8_t *src_ptr,
|
||||
int src_stride,
|
||||
|
|
@ -283,6 +289,12 @@ HIGHBD_MASKSADMXN_SSSE3(8, 8)
|
|||
HIGHBD_MASKSADMXN_SSSE3(8, 4)
|
||||
HIGHBD_MASKSAD4XN_SSSE3(8)
|
||||
HIGHBD_MASKSAD4XN_SSSE3(4)
|
||||
#if CONFIG_EXT_PARTITION_TYPES
|
||||
HIGHBD_MASKSAD4XN_SSSE3(16)
|
||||
HIGHBD_MASKSADMXN_SSSE3(16, 4)
|
||||
HIGHBD_MASKSADMXN_SSSE3(8, 32)
|
||||
HIGHBD_MASKSADMXN_SSSE3(32, 8)
|
||||
#endif
|
||||
|
||||
static INLINE unsigned int highbd_masked_sad_ssse3(
|
||||
const uint8_t *src8, int src_stride, const uint8_t *a8, int a_stride,
|
||||
|
|
|
|||
|
|
@ -126,6 +126,12 @@ MASK_SUBPIX_VAR8XH_SSSE3(8)
|
|||
MASK_SUBPIX_VAR8XH_SSSE3(4)
|
||||
MASK_SUBPIX_VAR4XH_SSSE3(8)
|
||||
MASK_SUBPIX_VAR4XH_SSSE3(4)
|
||||
#if CONFIG_EXT_PARTITION_TYPES
|
||||
MASK_SUBPIX_VAR4XH_SSSE3(16)
|
||||
MASK_SUBPIX_VAR_SSSE3(16, 4)
|
||||
MASK_SUBPIX_VAR8XH_SSSE3(32)
|
||||
MASK_SUBPIX_VAR_SSSE3(32, 8)
|
||||
#endif
|
||||
|
||||
static INLINE __m128i filter_block(const __m128i a, const __m128i b,
|
||||
const __m128i filter) {
|
||||
|
|
@ -564,6 +570,7 @@ static void highbd_masked_variance4xh(const uint16_t *src_ptr, int src_stride,
|
|||
const uint8_t *msk, int msk_stride, int invert_mask, uint32_t *sse) { \
|
||||
uint64_t sse64; \
|
||||
int sum; \
|
||||
int64_t var; \
|
||||
uint16_t temp[(H + 1) * W]; \
|
||||
const uint16_t *src = CONVERT_TO_SHORTPTR(src8); \
|
||||
const uint16_t *ref = CONVERT_TO_SHORTPTR(ref8); \
|
||||
|
|
@ -579,7 +586,8 @@ static void highbd_masked_variance4xh(const uint16_t *src_ptr, int src_stride,
|
|||
msk_stride, W, H, &sse64, &sum); \
|
||||
*sse = (uint32_t)ROUND_POWER_OF_TWO(sse64, 4); \
|
||||
sum = ROUND_POWER_OF_TWO(sum, 2); \
|
||||
return *sse - (uint32_t)(((int64_t)sum * sum) / (W * H)); \
|
||||
var = (int64_t)(*sse) - (((int64_t)sum * sum) / (W * H)); \
|
||||
return (var >= 0) ? (uint32_t)var : 0; \
|
||||
} \
|
||||
unsigned int aom_highbd_12_masked_sub_pixel_variance##W##x##H##_ssse3( \
|
||||
const uint8_t *src8, int src_stride, int xoffset, int yoffset, \
|
||||
|
|
@ -587,6 +595,7 @@ static void highbd_masked_variance4xh(const uint16_t *src_ptr, int src_stride,
|
|||
const uint8_t *msk, int msk_stride, int invert_mask, uint32_t *sse) { \
|
||||
uint64_t sse64; \
|
||||
int sum; \
|
||||
int64_t var; \
|
||||
uint16_t temp[(H + 1) * W]; \
|
||||
const uint16_t *src = CONVERT_TO_SHORTPTR(src8); \
|
||||
const uint16_t *ref = CONVERT_TO_SHORTPTR(ref8); \
|
||||
|
|
@ -602,7 +611,8 @@ static void highbd_masked_variance4xh(const uint16_t *src_ptr, int src_stride,
|
|||
msk_stride, W, H, &sse64, &sum); \
|
||||
*sse = (uint32_t)ROUND_POWER_OF_TWO(sse64, 8); \
|
||||
sum = ROUND_POWER_OF_TWO(sum, 4); \
|
||||
return *sse - (uint32_t)(((int64_t)sum * sum) / (W * H)); \
|
||||
var = (int64_t)(*sse) - (((int64_t)sum * sum) / (W * H)); \
|
||||
return (var >= 0) ? (uint32_t)var : 0; \
|
||||
}
|
||||
|
||||
#define HIGHBD_MASK_SUBPIX_VAR4XH_SSSE3(H) \
|
||||
|
|
@ -634,6 +644,7 @@ static void highbd_masked_variance4xh(const uint16_t *src_ptr, int src_stride,
|
|||
const uint8_t *msk, int msk_stride, int invert_mask, uint32_t *sse) { \
|
||||
int sse_; \
|
||||
int sum; \
|
||||
int64_t var; \
|
||||
uint16_t temp[(H + 1) * 4]; \
|
||||
const uint16_t *src = CONVERT_TO_SHORTPTR(src8); \
|
||||
const uint16_t *ref = CONVERT_TO_SHORTPTR(ref8); \
|
||||
|
|
@ -649,7 +660,8 @@ static void highbd_masked_variance4xh(const uint16_t *src_ptr, int src_stride,
|
|||
msk_stride, H, &sse_, &sum); \
|
||||
*sse = (uint32_t)ROUND_POWER_OF_TWO(sse_, 4); \
|
||||
sum = ROUND_POWER_OF_TWO(sum, 2); \
|
||||
return *sse - (uint32_t)(((int64_t)sum * sum) / (4 * H)); \
|
||||
var = (int64_t)(*sse) - (((int64_t)sum * sum) / (4 * H)); \
|
||||
return (var >= 0) ? (uint32_t)var : 0; \
|
||||
} \
|
||||
unsigned int aom_highbd_12_masked_sub_pixel_variance4x##H##_ssse3( \
|
||||
const uint8_t *src8, int src_stride, int xoffset, int yoffset, \
|
||||
|
|
@ -657,6 +669,7 @@ static void highbd_masked_variance4xh(const uint16_t *src_ptr, int src_stride,
|
|||
const uint8_t *msk, int msk_stride, int invert_mask, uint32_t *sse) { \
|
||||
int sse_; \
|
||||
int sum; \
|
||||
int64_t var; \
|
||||
uint16_t temp[(H + 1) * 4]; \
|
||||
const uint16_t *src = CONVERT_TO_SHORTPTR(src8); \
|
||||
const uint16_t *ref = CONVERT_TO_SHORTPTR(ref8); \
|
||||
|
|
@ -672,7 +685,8 @@ static void highbd_masked_variance4xh(const uint16_t *src_ptr, int src_stride,
|
|||
msk_stride, H, &sse_, &sum); \
|
||||
*sse = (uint32_t)ROUND_POWER_OF_TWO(sse_, 8); \
|
||||
sum = ROUND_POWER_OF_TWO(sum, 4); \
|
||||
return *sse - (uint32_t)(((int64_t)sum * sum) / (4 * H)); \
|
||||
var = (int64_t)(*sse) - (((int64_t)sum * sum) / (4 * H)); \
|
||||
return (var >= 0) ? (uint32_t)var : 0; \
|
||||
}
|
||||
|
||||
#if CONFIG_EXT_PARTITION
|
||||
|
|
@ -693,6 +707,12 @@ HIGHBD_MASK_SUBPIX_VAR_SSSE3(8, 8)
|
|||
HIGHBD_MASK_SUBPIX_VAR_SSSE3(8, 4)
|
||||
HIGHBD_MASK_SUBPIX_VAR4XH_SSSE3(8)
|
||||
HIGHBD_MASK_SUBPIX_VAR4XH_SSSE3(4)
|
||||
#if CONFIG_EXT_PARTITION_TYPES
|
||||
HIGHBD_MASK_SUBPIX_VAR4XH_SSSE3(16)
|
||||
HIGHBD_MASK_SUBPIX_VAR_SSSE3(16, 4)
|
||||
HIGHBD_MASK_SUBPIX_VAR_SSSE3(8, 32)
|
||||
HIGHBD_MASK_SUBPIX_VAR_SSSE3(32, 8)
|
||||
#endif
|
||||
|
||||
static INLINE __m128i highbd_filter_block(const __m128i a, const __m128i b,
|
||||
const __m128i filter) {
|
||||
|
|
|
|||
12
third_party/aom/aom_dsp/x86/obmc_sad_sse4.c
vendored
12
third_party/aom/aom_dsp/x86/obmc_sad_sse4.c
vendored
|
|
@ -137,6 +137,12 @@ OBMCSADWXH(8, 8)
|
|||
OBMCSADWXH(8, 4)
|
||||
OBMCSADWXH(4, 8)
|
||||
OBMCSADWXH(4, 4)
|
||||
#if CONFIG_EXT_PARTITION_TYPES
|
||||
OBMCSADWXH(4, 16)
|
||||
OBMCSADWXH(16, 4)
|
||||
OBMCSADWXH(8, 32)
|
||||
OBMCSADWXH(32, 8)
|
||||
#endif
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// High bit-depth
|
||||
|
|
@ -260,4 +266,10 @@ HBD_OBMCSADWXH(8, 8)
|
|||
HBD_OBMCSADWXH(8, 4)
|
||||
HBD_OBMCSADWXH(4, 8)
|
||||
HBD_OBMCSADWXH(4, 4)
|
||||
#if CONFIG_EXT_PARTITION_TYPES
|
||||
HBD_OBMCSADWXH(4, 16)
|
||||
HBD_OBMCSADWXH(16, 4)
|
||||
HBD_OBMCSADWXH(8, 32)
|
||||
HBD_OBMCSADWXH(32, 8)
|
||||
#endif
|
||||
#endif // CONFIG_HIGHBITDEPTH
|
||||
|
|
|
|||
12
third_party/aom/aom_dsp/x86/obmc_variance_sse4.c
vendored
12
third_party/aom/aom_dsp/x86/obmc_variance_sse4.c
vendored
|
|
@ -146,6 +146,12 @@ OBMCVARWXH(8, 8)
|
|||
OBMCVARWXH(8, 4)
|
||||
OBMCVARWXH(4, 8)
|
||||
OBMCVARWXH(4, 4)
|
||||
#if CONFIG_EXT_PARTITION_TYPES
|
||||
OBMCVARWXH(4, 16)
|
||||
OBMCVARWXH(16, 4)
|
||||
OBMCVARWXH(8, 32)
|
||||
OBMCVARWXH(32, 8)
|
||||
#endif
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// High bit-depth
|
||||
|
|
@ -353,4 +359,10 @@ HBD_OBMCVARWXH(8, 8)
|
|||
HBD_OBMCVARWXH(8, 4)
|
||||
HBD_OBMCVARWXH(4, 8)
|
||||
HBD_OBMCVARWXH(4, 4)
|
||||
#if CONFIG_EXT_PARTITION_TYPES
|
||||
HBD_OBMCVARWXH(4, 16)
|
||||
HBD_OBMCVARWXH(16, 4)
|
||||
HBD_OBMCVARWXH(8, 32)
|
||||
HBD_OBMCVARWXH(32, 8)
|
||||
#endif
|
||||
#endif // CONFIG_HIGHBITDEPTH
|
||||
|
|
|
|||
6
third_party/aom/aom_dsp/x86/sad4d_sse2.asm
vendored
6
third_party/aom/aom_dsp/x86/sad4d_sse2.asm
vendored
|
|
@ -251,3 +251,9 @@ SADNXN4D 8, 8
|
|||
SADNXN4D 8, 4
|
||||
SADNXN4D 4, 8
|
||||
SADNXN4D 4, 4
|
||||
%if CONFIG_EXT_PARTITION_TYPES
|
||||
SADNXN4D 4, 16
|
||||
SADNXN4D 16, 4
|
||||
SADNXN4D 8, 32
|
||||
SADNXN4D 32, 8
|
||||
%endif
|
||||
|
|
|
|||
|
|
@ -704,7 +704,12 @@ unsigned int aom_highbd_sad128x128_avg_avx2(const uint8_t *src, int src_stride,
|
|||
static INLINE void get_4d_sad_from_mm256_epi32(const __m256i *v,
|
||||
uint32_t *res) {
|
||||
__m256i u0, u1, u2, u3;
|
||||
#if defined(_MSC_VER) && defined(_M_IX86) && _MSC_VER < 1900
|
||||
const __m256i mask = _mm256_setr_epi32(UINT32_MAX, 0, UINT32_MAX, 0,
|
||||
UINT32_MAX, 0, UINT32_MAX, 0);
|
||||
#else
|
||||
const __m256i mask = _mm256_set1_epi64x(UINT32_MAX);
|
||||
#endif
|
||||
__m128i sad;
|
||||
|
||||
// 8 32-bit summation
|
||||
|
|
|
|||
16
third_party/aom/aom_dsp/x86/sad_sse2.asm
vendored
16
third_party/aom/aom_dsp/x86/sad_sse2.asm
vendored
|
|
@ -208,6 +208,10 @@ SAD32XN 16 ; sad32x16_sse2
|
|||
SAD32XN 64, 1 ; sad32x64_avg_sse2
|
||||
SAD32XN 32, 1 ; sad32x32_avg_sse2
|
||||
SAD32XN 16, 1 ; sad32x16_avg_sse2
|
||||
%if CONFIG_EXT_PARTITION_TYPES
|
||||
SAD32XN 8 ; sad_32x8_sse2
|
||||
SAD32XN 8, 1 ; sad_32x8_avg_sse2
|
||||
%endif
|
||||
|
||||
; unsigned int aom_sad16x{8,16}_sse2(uint8_t *src, int src_stride,
|
||||
; uint8_t *ref, int ref_stride);
|
||||
|
|
@ -254,6 +258,10 @@ SAD16XN 8 ; sad16x8_sse2
|
|||
SAD16XN 32, 1 ; sad16x32_avg_sse2
|
||||
SAD16XN 16, 1 ; sad16x16_avg_sse2
|
||||
SAD16XN 8, 1 ; sad16x8_avg_sse2
|
||||
%if CONFIG_EXT_PARTITION_TYPES
|
||||
SAD16XN 4 ; sad_16x4_sse2
|
||||
SAD16XN 4, 1 ; sad_16x4_avg_sse2
|
||||
%endif
|
||||
|
||||
; unsigned int aom_sad8x{8,16}_sse2(uint8_t *src, int src_stride,
|
||||
; uint8_t *ref, int ref_stride);
|
||||
|
|
@ -298,6 +306,10 @@ SAD8XN 4 ; sad8x4_sse2
|
|||
SAD8XN 16, 1 ; sad8x16_avg_sse2
|
||||
SAD8XN 8, 1 ; sad8x8_avg_sse2
|
||||
SAD8XN 4, 1 ; sad8x4_avg_sse2
|
||||
%if CONFIG_EXT_PARTITION_TYPES
|
||||
SAD8XN 32 ; sad_8x32_sse2
|
||||
SAD8XN 32, 1 ; sad_8x32_avg_sse2
|
||||
%endif
|
||||
|
||||
; unsigned int aom_sad4x{4, 8}_sse2(uint8_t *src, int src_stride,
|
||||
; uint8_t *ref, int ref_stride);
|
||||
|
|
@ -343,3 +355,7 @@ SAD4XN 8 ; sad4x8_sse
|
|||
SAD4XN 4 ; sad4x4_sse
|
||||
SAD4XN 8, 1 ; sad4x8_avg_sse
|
||||
SAD4XN 4, 1 ; sad4x4_avg_sse
|
||||
%if CONFIG_EXT_PARTITION_TYPES
|
||||
SAD4XN 16 ; sad_4x16_sse2
|
||||
SAD4XN 16, 1 ; sad_4x16_avg_sse2
|
||||
%endif
|
||||
|
|
|
|||
465
third_party/aom/aom_dsp/x86/variance_sse2.c
vendored
465
third_party/aom/aom_dsp/x86/variance_sse2.c
vendored
|
|
@ -17,6 +17,9 @@
|
|||
|
||||
#include "aom_ports/mem.h"
|
||||
|
||||
#include "./av1_rtcd.h"
|
||||
#include "av1/common/filter.h"
|
||||
|
||||
typedef void (*getNxMvar_fn_t)(const unsigned char *src, int src_stride,
|
||||
const unsigned char *ref, int ref_stride,
|
||||
unsigned int *sse, int *sum);
|
||||
|
|
@ -335,6 +338,52 @@ unsigned int aom_mse16x16_sse2(const uint8_t *src, int src_stride,
|
|||
return *sse;
|
||||
}
|
||||
|
||||
#if CONFIG_EXT_PARTITION_TYPES
|
||||
unsigned int aom_variance4x16_sse2(const uint8_t *src, int src_stride,
|
||||
const uint8_t *ref, int ref_stride,
|
||||
unsigned int *sse) {
|
||||
int sum;
|
||||
variance_sse2(src, src_stride, ref, ref_stride, 4, 16, sse, &sum,
|
||||
get4x4var_sse2, 4);
|
||||
assert(sum <= 255 * 4 * 16);
|
||||
assert(sum >= -255 * 4 * 16);
|
||||
return *sse - (unsigned int)(((int64_t)sum * sum) >> 6);
|
||||
}
|
||||
|
||||
unsigned int aom_variance16x4_sse2(const uint8_t *src, int src_stride,
|
||||
const uint8_t *ref, int ref_stride,
|
||||
unsigned int *sse) {
|
||||
int sum;
|
||||
variance_sse2(src, src_stride, ref, ref_stride, 16, 4, sse, &sum,
|
||||
get4x4var_sse2, 4);
|
||||
assert(sum <= 255 * 16 * 4);
|
||||
assert(sum >= -255 * 16 * 4);
|
||||
return *sse - (unsigned int)(((int64_t)sum * sum) >> 6);
|
||||
}
|
||||
|
||||
unsigned int aom_variance8x32_sse2(const uint8_t *src, int src_stride,
|
||||
const uint8_t *ref, int ref_stride,
|
||||
unsigned int *sse) {
|
||||
int sum;
|
||||
variance_sse2(src, src_stride, ref, ref_stride, 8, 32, sse, &sum,
|
||||
aom_get8x8var_sse2, 8);
|
||||
assert(sum <= 255 * 8 * 32);
|
||||
assert(sum >= -255 * 8 * 32);
|
||||
return *sse - (unsigned int)(((int64_t)sum * sum) >> 8);
|
||||
}
|
||||
|
||||
unsigned int aom_variance32x8_sse2(const uint8_t *src, int src_stride,
|
||||
const uint8_t *ref, int ref_stride,
|
||||
unsigned int *sse) {
|
||||
int sum;
|
||||
variance_sse2(src, src_stride, ref, ref_stride, 32, 8, sse, &sum,
|
||||
aom_get8x8var_sse2, 8);
|
||||
assert(sum <= 255 * 32 * 8);
|
||||
assert(sum >= -255 * 32 * 8);
|
||||
return *sse - (unsigned int)(((int64_t)sum * sum) >> 8);
|
||||
}
|
||||
#endif
|
||||
|
||||
// The 2 unused parameters are place holders for PIC enabled build.
|
||||
// These definitions are for functions defined in subpel_variance.asm
|
||||
#define DECL(w, opt) \
|
||||
|
|
@ -342,13 +391,13 @@ unsigned int aom_mse16x16_sse2(const uint8_t *src, int src_stride,
|
|||
const uint8_t *src, ptrdiff_t src_stride, int x_offset, int y_offset, \
|
||||
const uint8_t *dst, ptrdiff_t dst_stride, int height, unsigned int *sse, \
|
||||
void *unused0, void *unused)
|
||||
#define DECLS(opt1, opt2) \
|
||||
DECL(4, opt1); \
|
||||
DECL(8, opt1); \
|
||||
DECL(16, opt1)
|
||||
#define DECLS(opt) \
|
||||
DECL(4, opt); \
|
||||
DECL(8, opt); \
|
||||
DECL(16, opt)
|
||||
|
||||
DECLS(sse2, sse2);
|
||||
DECLS(ssse3, ssse3);
|
||||
DECLS(sse2);
|
||||
DECLS(ssse3);
|
||||
#undef DECLS
|
||||
#undef DECL
|
||||
|
||||
|
|
@ -384,23 +433,44 @@ DECLS(ssse3, ssse3);
|
|||
return sse - (unsigned int)(cast_prod(cast se * se) >> (wlog2 + hlog2)); \
|
||||
}
|
||||
|
||||
#define FNS(opt1, opt2) \
|
||||
FN(64, 64, 16, 6, 6, opt1, (int64_t), (int64_t)); \
|
||||
FN(64, 32, 16, 6, 5, opt1, (int64_t), (int64_t)); \
|
||||
FN(32, 64, 16, 5, 6, opt1, (int64_t), (int64_t)); \
|
||||
FN(32, 32, 16, 5, 5, opt1, (int64_t), (int64_t)); \
|
||||
FN(32, 16, 16, 5, 4, opt1, (int64_t), (int64_t)); \
|
||||
FN(16, 32, 16, 4, 5, opt1, (int64_t), (int64_t)); \
|
||||
FN(16, 16, 16, 4, 4, opt1, (uint32_t), (int64_t)); \
|
||||
FN(16, 8, 16, 4, 3, opt1, (int32_t), (int32_t)); \
|
||||
FN(8, 16, 8, 3, 4, opt1, (int32_t), (int32_t)); \
|
||||
FN(8, 8, 8, 3, 3, opt1, (int32_t), (int32_t)); \
|
||||
FN(8, 4, 8, 3, 2, opt1, (int32_t), (int32_t)); \
|
||||
FN(4, 8, 4, 2, 3, opt1, (int32_t), (int32_t)); \
|
||||
FN(4, 4, 4, 2, 2, opt1, (int32_t), (int32_t))
|
||||
#if CONFIG_EXT_PARTITION_TYPES
|
||||
#define FNS(opt) \
|
||||
FN(64, 64, 16, 6, 6, opt, (int64_t), (int64_t)); \
|
||||
FN(64, 32, 16, 6, 5, opt, (int64_t), (int64_t)); \
|
||||
FN(32, 64, 16, 5, 6, opt, (int64_t), (int64_t)); \
|
||||
FN(32, 32, 16, 5, 5, opt, (int64_t), (int64_t)); \
|
||||
FN(32, 16, 16, 5, 4, opt, (int64_t), (int64_t)); \
|
||||
FN(16, 32, 16, 4, 5, opt, (int64_t), (int64_t)); \
|
||||
FN(16, 16, 16, 4, 4, opt, (uint32_t), (int64_t)); \
|
||||
FN(16, 8, 16, 4, 3, opt, (int32_t), (int32_t)); \
|
||||
FN(8, 16, 8, 3, 4, opt, (int32_t), (int32_t)); \
|
||||
FN(8, 8, 8, 3, 3, opt, (int32_t), (int32_t)); \
|
||||
FN(8, 4, 8, 3, 2, opt, (int32_t), (int32_t)); \
|
||||
FN(4, 8, 4, 2, 3, opt, (int32_t), (int32_t)); \
|
||||
FN(4, 4, 4, 2, 2, opt, (int32_t), (int32_t)); \
|
||||
FN(4, 16, 4, 2, 4, opt, (int32_t), (int32_t)); \
|
||||
FN(16, 4, 16, 4, 2, opt, (int32_t), (int32_t)); \
|
||||
FN(8, 32, 8, 3, 5, opt, (int32_t), (int32_t)); \
|
||||
FN(32, 8, 16, 5, 3, opt, (int32_t), (int32_t))
|
||||
#else
|
||||
#define FNS(opt) \
|
||||
FN(64, 64, 16, 6, 6, opt, (int64_t), (int64_t)); \
|
||||
FN(64, 32, 16, 6, 5, opt, (int64_t), (int64_t)); \
|
||||
FN(32, 64, 16, 5, 6, opt, (int64_t), (int64_t)); \
|
||||
FN(32, 32, 16, 5, 5, opt, (int64_t), (int64_t)); \
|
||||
FN(32, 16, 16, 5, 4, opt, (int64_t), (int64_t)); \
|
||||
FN(16, 32, 16, 4, 5, opt, (int64_t), (int64_t)); \
|
||||
FN(16, 16, 16, 4, 4, opt, (uint32_t), (int64_t)); \
|
||||
FN(16, 8, 16, 4, 3, opt, (int32_t), (int32_t)); \
|
||||
FN(8, 16, 8, 3, 4, opt, (int32_t), (int32_t)); \
|
||||
FN(8, 8, 8, 3, 3, opt, (int32_t), (int32_t)); \
|
||||
FN(8, 4, 8, 3, 2, opt, (int32_t), (int32_t)); \
|
||||
FN(4, 8, 4, 2, 3, opt, (int32_t), (int32_t)); \
|
||||
FN(4, 4, 4, 2, 2, opt, (int32_t), (int32_t))
|
||||
#endif
|
||||
|
||||
FNS(sse2, sse2);
|
||||
FNS(ssse3, ssse3);
|
||||
FNS(sse2);
|
||||
FNS(ssse3);
|
||||
|
||||
#undef FNS
|
||||
#undef FN
|
||||
|
|
@ -412,13 +482,13 @@ FNS(ssse3, ssse3);
|
|||
const uint8_t *dst, ptrdiff_t dst_stride, const uint8_t *sec, \
|
||||
ptrdiff_t sec_stride, int height, unsigned int *sse, void *unused0, \
|
||||
void *unused)
|
||||
#define DECLS(opt1, opt2) \
|
||||
DECL(4, opt1); \
|
||||
DECL(8, opt1); \
|
||||
DECL(16, opt1)
|
||||
#define DECLS(opt) \
|
||||
DECL(4, opt); \
|
||||
DECL(8, opt); \
|
||||
DECL(16, opt)
|
||||
|
||||
DECLS(sse2, sse2);
|
||||
DECLS(ssse3, ssse3);
|
||||
DECLS(sse2);
|
||||
DECLS(ssse3);
|
||||
#undef DECL
|
||||
#undef DECLS
|
||||
|
||||
|
|
@ -455,236 +525,149 @@ DECLS(ssse3, ssse3);
|
|||
return sse - (unsigned int)(cast_prod(cast se * se) >> (wlog2 + hlog2)); \
|
||||
}
|
||||
|
||||
#define FNS(opt1, opt2) \
|
||||
FN(64, 64, 16, 6, 6, opt1, (int64_t), (int64_t)); \
|
||||
FN(64, 32, 16, 6, 5, opt1, (int64_t), (int64_t)); \
|
||||
FN(32, 64, 16, 5, 6, opt1, (int64_t), (int64_t)); \
|
||||
FN(32, 32, 16, 5, 5, opt1, (int64_t), (int64_t)); \
|
||||
FN(32, 16, 16, 5, 4, opt1, (int64_t), (int64_t)); \
|
||||
FN(16, 32, 16, 4, 5, opt1, (int64_t), (int64_t)); \
|
||||
FN(16, 16, 16, 4, 4, opt1, (uint32_t), (int64_t)); \
|
||||
FN(16, 8, 16, 4, 3, opt1, (uint32_t), (int32_t)); \
|
||||
FN(8, 16, 8, 3, 4, opt1, (uint32_t), (int32_t)); \
|
||||
FN(8, 8, 8, 3, 3, opt1, (uint32_t), (int32_t)); \
|
||||
FN(8, 4, 8, 3, 2, opt1, (uint32_t), (int32_t)); \
|
||||
FN(4, 8, 4, 2, 3, opt1, (uint32_t), (int32_t)); \
|
||||
FN(4, 4, 4, 2, 2, opt1, (uint32_t), (int32_t))
|
||||
#if CONFIG_EXT_PARTITION_TYPES
|
||||
#define FNS(opt) \
|
||||
FN(64, 64, 16, 6, 6, opt, (int64_t), (int64_t)); \
|
||||
FN(64, 32, 16, 6, 5, opt, (int64_t), (int64_t)); \
|
||||
FN(32, 64, 16, 5, 6, opt, (int64_t), (int64_t)); \
|
||||
FN(32, 32, 16, 5, 5, opt, (int64_t), (int64_t)); \
|
||||
FN(32, 16, 16, 5, 4, opt, (int64_t), (int64_t)); \
|
||||
FN(16, 32, 16, 4, 5, opt, (int64_t), (int64_t)); \
|
||||
FN(16, 16, 16, 4, 4, opt, (uint32_t), (int64_t)); \
|
||||
FN(16, 8, 16, 4, 3, opt, (uint32_t), (int32_t)); \
|
||||
FN(8, 16, 8, 3, 4, opt, (uint32_t), (int32_t)); \
|
||||
FN(8, 8, 8, 3, 3, opt, (uint32_t), (int32_t)); \
|
||||
FN(8, 4, 8, 3, 2, opt, (uint32_t), (int32_t)); \
|
||||
FN(4, 8, 4, 2, 3, opt, (uint32_t), (int32_t)); \
|
||||
FN(4, 4, 4, 2, 2, opt, (uint32_t), (int32_t)); \
|
||||
FN(4, 16, 4, 2, 4, opt, (int32_t), (int32_t)); \
|
||||
FN(16, 4, 16, 4, 2, opt, (int32_t), (int32_t)); \
|
||||
FN(8, 32, 8, 3, 5, opt, (int32_t), (int32_t)); \
|
||||
FN(32, 8, 16, 5, 3, opt, (int32_t), (int32_t))
|
||||
#else
|
||||
#define FNS(opt) \
|
||||
FN(64, 64, 16, 6, 6, opt, (int64_t), (int64_t)); \
|
||||
FN(64, 32, 16, 6, 5, opt, (int64_t), (int64_t)); \
|
||||
FN(32, 64, 16, 5, 6, opt, (int64_t), (int64_t)); \
|
||||
FN(32, 32, 16, 5, 5, opt, (int64_t), (int64_t)); \
|
||||
FN(32, 16, 16, 5, 4, opt, (int64_t), (int64_t)); \
|
||||
FN(16, 32, 16, 4, 5, opt, (int64_t), (int64_t)); \
|
||||
FN(16, 16, 16, 4, 4, opt, (uint32_t), (int64_t)); \
|
||||
FN(16, 8, 16, 4, 3, opt, (uint32_t), (int32_t)); \
|
||||
FN(8, 16, 8, 3, 4, opt, (uint32_t), (int32_t)); \
|
||||
FN(8, 8, 8, 3, 3, opt, (uint32_t), (int32_t)); \
|
||||
FN(8, 4, 8, 3, 2, opt, (uint32_t), (int32_t)); \
|
||||
FN(4, 8, 4, 2, 3, opt, (uint32_t), (int32_t)); \
|
||||
FN(4, 4, 4, 2, 2, opt, (uint32_t), (int32_t))
|
||||
#endif
|
||||
|
||||
FNS(sse2, sse);
|
||||
FNS(ssse3, ssse3);
|
||||
FNS(sse2);
|
||||
FNS(ssse3);
|
||||
|
||||
#undef FNS
|
||||
#undef FN
|
||||
|
||||
void aom_upsampled_pred_sse2(uint8_t *comp_pred, int width, int height,
|
||||
int subpel_x_q3, int subpel_y_q3,
|
||||
const uint8_t *ref, int ref_stride) {
|
||||
int i, j;
|
||||
int stride = ref_stride << 3;
|
||||
|
||||
if (width >= 16) {
|
||||
// read 16 points at one time
|
||||
for (i = 0; i < height; i++) {
|
||||
for (j = 0; j < width; j += 16) {
|
||||
__m128i s0 = _mm_loadu_si128((const __m128i *)ref);
|
||||
__m128i s1 = _mm_loadu_si128((const __m128i *)(ref + 16));
|
||||
__m128i s2 = _mm_loadu_si128((const __m128i *)(ref + 32));
|
||||
__m128i s3 = _mm_loadu_si128((const __m128i *)(ref + 48));
|
||||
__m128i s4 = _mm_loadu_si128((const __m128i *)(ref + 64));
|
||||
__m128i s5 = _mm_loadu_si128((const __m128i *)(ref + 80));
|
||||
__m128i s6 = _mm_loadu_si128((const __m128i *)(ref + 96));
|
||||
__m128i s7 = _mm_loadu_si128((const __m128i *)(ref + 112));
|
||||
__m128i t0, t1, t2, t3;
|
||||
|
||||
t0 = _mm_unpacklo_epi8(s0, s1);
|
||||
s1 = _mm_unpackhi_epi8(s0, s1);
|
||||
t1 = _mm_unpacklo_epi8(s2, s3);
|
||||
s3 = _mm_unpackhi_epi8(s2, s3);
|
||||
t2 = _mm_unpacklo_epi8(s4, s5);
|
||||
s5 = _mm_unpackhi_epi8(s4, s5);
|
||||
t3 = _mm_unpacklo_epi8(s6, s7);
|
||||
s7 = _mm_unpackhi_epi8(s6, s7);
|
||||
|
||||
s0 = _mm_unpacklo_epi8(t0, s1);
|
||||
s2 = _mm_unpacklo_epi8(t1, s3);
|
||||
s4 = _mm_unpacklo_epi8(t2, s5);
|
||||
s6 = _mm_unpacklo_epi8(t3, s7);
|
||||
s0 = _mm_unpacklo_epi32(s0, s2);
|
||||
s4 = _mm_unpacklo_epi32(s4, s6);
|
||||
s0 = _mm_unpacklo_epi64(s0, s4);
|
||||
|
||||
_mm_storeu_si128((__m128i *)(comp_pred), s0);
|
||||
if (!subpel_x_q3 && !subpel_y_q3) {
|
||||
if (width >= 16) {
|
||||
int i;
|
||||
assert(!(width & 15));
|
||||
/*Read 16 pixels one row at a time.*/
|
||||
for (i = 0; i < height; i++) {
|
||||
int j;
|
||||
for (j = 0; j < width; j += 16) {
|
||||
__m128i s0 = _mm_loadu_si128((const __m128i *)ref);
|
||||
_mm_storeu_si128((__m128i *)comp_pred, s0);
|
||||
comp_pred += 16;
|
||||
ref += 16;
|
||||
}
|
||||
ref += ref_stride - width;
|
||||
}
|
||||
} else if (width >= 8) {
|
||||
int i;
|
||||
assert(!(width & 7));
|
||||
assert(!(height & 1));
|
||||
/*Read 8 pixels two rows at a time.*/
|
||||
for (i = 0; i < height; i += 2) {
|
||||
__m128i s0 = _mm_loadl_epi64((const __m128i *)ref);
|
||||
__m128i s1 = _mm_loadl_epi64((const __m128i *)(ref + ref_stride));
|
||||
__m128i t0 = _mm_unpacklo_epi64(s0, s1);
|
||||
_mm_storeu_si128((__m128i *)comp_pred, t0);
|
||||
comp_pred += 16;
|
||||
ref += 16 * 8;
|
||||
ref += 2 * ref_stride;
|
||||
}
|
||||
ref += stride - (width << 3);
|
||||
}
|
||||
} else if (width >= 8) {
|
||||
// read 8 points at one time
|
||||
for (i = 0; i < height; i++) {
|
||||
for (j = 0; j < width; j += 8) {
|
||||
__m128i s0 = _mm_loadu_si128((const __m128i *)ref);
|
||||
__m128i s1 = _mm_loadu_si128((const __m128i *)(ref + 16));
|
||||
__m128i s2 = _mm_loadu_si128((const __m128i *)(ref + 32));
|
||||
__m128i s3 = _mm_loadu_si128((const __m128i *)(ref + 48));
|
||||
__m128i t0, t1;
|
||||
|
||||
t0 = _mm_unpacklo_epi8(s0, s1);
|
||||
s1 = _mm_unpackhi_epi8(s0, s1);
|
||||
t1 = _mm_unpacklo_epi8(s2, s3);
|
||||
s3 = _mm_unpackhi_epi8(s2, s3);
|
||||
|
||||
s0 = _mm_unpacklo_epi8(t0, s1);
|
||||
s2 = _mm_unpacklo_epi8(t1, s3);
|
||||
s0 = _mm_unpacklo_epi32(s0, s2);
|
||||
|
||||
_mm_storel_epi64((__m128i *)(comp_pred), s0);
|
||||
comp_pred += 8;
|
||||
ref += 8 * 8;
|
||||
} else {
|
||||
int i;
|
||||
assert(!(width & 3));
|
||||
assert(!(height & 3));
|
||||
/*Read 4 pixels four rows at a time.*/
|
||||
for (i = 0; i < height; i++) {
|
||||
__m128i s0 = _mm_cvtsi32_si128(*(const uint32_t *)ref);
|
||||
__m128i s1 = _mm_cvtsi32_si128(*(const uint32_t *)(ref + ref_stride));
|
||||
__m128i s2 =
|
||||
_mm_cvtsi32_si128(*(const uint32_t *)(ref + 2 * ref_stride));
|
||||
__m128i s3 =
|
||||
_mm_cvtsi32_si128(*(const uint32_t *)(ref + 3 * ref_stride));
|
||||
__m128i t0 = _mm_unpacklo_epi32(s0, s1);
|
||||
__m128i t1 = _mm_unpacklo_epi32(s2, s3);
|
||||
__m128i u0 = _mm_unpacklo_epi64(t0, t1);
|
||||
_mm_storeu_si128((__m128i *)comp_pred, u0);
|
||||
comp_pred += 16;
|
||||
ref += 4 * ref_stride;
|
||||
}
|
||||
ref += stride - (width << 3);
|
||||
}
|
||||
} else {
|
||||
// read 4 points at one time
|
||||
for (i = 0; i < height; i++) {
|
||||
for (j = 0; j < width; j += 4) {
|
||||
__m128i s0 = _mm_loadu_si128((const __m128i *)ref);
|
||||
__m128i s1 = _mm_loadu_si128((const __m128i *)(ref + 16));
|
||||
__m128i t0;
|
||||
|
||||
t0 = _mm_unpacklo_epi8(s0, s1);
|
||||
s1 = _mm_unpackhi_epi8(s0, s1);
|
||||
s0 = _mm_unpacklo_epi8(t0, s1);
|
||||
|
||||
*(int *)comp_pred = _mm_cvtsi128_si32(s0);
|
||||
comp_pred += 4;
|
||||
ref += 4 * 8;
|
||||
}
|
||||
ref += stride - (width << 3);
|
||||
InterpFilterParams filter;
|
||||
filter = av1_get_interp_filter_params(EIGHTTAP_REGULAR);
|
||||
if (!subpel_y_q3) {
|
||||
const int16_t *kernel;
|
||||
kernel = av1_get_interp_filter_subpel_kernel(filter, subpel_x_q3 << 1);
|
||||
aom_convolve8_horiz(ref, ref_stride, comp_pred, width, kernel, 16, NULL,
|
||||
-1, width, height);
|
||||
} else if (!subpel_x_q3) {
|
||||
const int16_t *kernel;
|
||||
kernel = av1_get_interp_filter_subpel_kernel(filter, subpel_y_q3 << 1);
|
||||
aom_convolve8_vert(ref, ref_stride, comp_pred, width, NULL, -1, kernel,
|
||||
16, width, height);
|
||||
} else {
|
||||
DECLARE_ALIGNED(16, uint8_t,
|
||||
temp[((MAX_SB_SIZE * 2 + 16) + 16) * MAX_SB_SIZE]);
|
||||
const int16_t *kernel_x;
|
||||
const int16_t *kernel_y;
|
||||
int intermediate_height;
|
||||
kernel_x = av1_get_interp_filter_subpel_kernel(filter, subpel_x_q3 << 1);
|
||||
kernel_y = av1_get_interp_filter_subpel_kernel(filter, subpel_y_q3 << 1);
|
||||
intermediate_height =
|
||||
(((height - 1) * 8 + subpel_y_q3) >> 3) + filter.taps;
|
||||
assert(intermediate_height <= (MAX_SB_SIZE * 2 + 16) + 16);
|
||||
aom_convolve8_horiz(ref - ref_stride * ((filter.taps >> 1) - 1),
|
||||
ref_stride, temp, MAX_SB_SIZE, kernel_x, 16, NULL, -1,
|
||||
width, intermediate_height);
|
||||
aom_convolve8_vert(temp + MAX_SB_SIZE * ((filter.taps >> 1) - 1),
|
||||
MAX_SB_SIZE, comp_pred, width, NULL, -1, kernel_y, 16,
|
||||
width, height);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void aom_comp_avg_upsampled_pred_sse2(uint8_t *comp_pred, const uint8_t *pred,
|
||||
int width, int height, const uint8_t *ref,
|
||||
int width, int height, int subpel_x_q3,
|
||||
int subpel_y_q3, const uint8_t *ref,
|
||||
int ref_stride) {
|
||||
const __m128i zero = _mm_set1_epi16(0);
|
||||
const __m128i one = _mm_set1_epi16(1);
|
||||
int i, j;
|
||||
int stride = ref_stride << 3;
|
||||
|
||||
if (width >= 16) {
|
||||
// read 16 points at one time
|
||||
for (i = 0; i < height; i++) {
|
||||
for (j = 0; j < width; j += 16) {
|
||||
__m128i s0 = _mm_loadu_si128((const __m128i *)ref);
|
||||
__m128i s1 = _mm_loadu_si128((const __m128i *)(ref + 16));
|
||||
__m128i s2 = _mm_loadu_si128((const __m128i *)(ref + 32));
|
||||
__m128i s3 = _mm_loadu_si128((const __m128i *)(ref + 48));
|
||||
__m128i s4 = _mm_loadu_si128((const __m128i *)(ref + 64));
|
||||
__m128i s5 = _mm_loadu_si128((const __m128i *)(ref + 80));
|
||||
__m128i s6 = _mm_loadu_si128((const __m128i *)(ref + 96));
|
||||
__m128i s7 = _mm_loadu_si128((const __m128i *)(ref + 112));
|
||||
__m128i p0 = _mm_loadu_si128((const __m128i *)pred);
|
||||
__m128i p1;
|
||||
__m128i t0, t1, t2, t3;
|
||||
|
||||
t0 = _mm_unpacklo_epi8(s0, s1);
|
||||
s1 = _mm_unpackhi_epi8(s0, s1);
|
||||
t1 = _mm_unpacklo_epi8(s2, s3);
|
||||
s3 = _mm_unpackhi_epi8(s2, s3);
|
||||
t2 = _mm_unpacklo_epi8(s4, s5);
|
||||
s5 = _mm_unpackhi_epi8(s4, s5);
|
||||
t3 = _mm_unpacklo_epi8(s6, s7);
|
||||
s7 = _mm_unpackhi_epi8(s6, s7);
|
||||
|
||||
s0 = _mm_unpacklo_epi8(t0, s1);
|
||||
s2 = _mm_unpacklo_epi8(t1, s3);
|
||||
s4 = _mm_unpacklo_epi8(t2, s5);
|
||||
s6 = _mm_unpacklo_epi8(t3, s7);
|
||||
|
||||
s0 = _mm_unpacklo_epi32(s0, s2);
|
||||
s4 = _mm_unpacklo_epi32(s4, s6);
|
||||
s0 = _mm_unpacklo_epi8(s0, zero);
|
||||
s4 = _mm_unpacklo_epi8(s4, zero);
|
||||
|
||||
p1 = _mm_unpackhi_epi8(p0, zero);
|
||||
p0 = _mm_unpacklo_epi8(p0, zero);
|
||||
p0 = _mm_adds_epu16(s0, p0);
|
||||
p1 = _mm_adds_epu16(s4, p1);
|
||||
p0 = _mm_adds_epu16(p0, one);
|
||||
p1 = _mm_adds_epu16(p1, one);
|
||||
|
||||
p0 = _mm_srli_epi16(p0, 1);
|
||||
p1 = _mm_srli_epi16(p1, 1);
|
||||
p0 = _mm_packus_epi16(p0, p1);
|
||||
|
||||
_mm_storeu_si128((__m128i *)(comp_pred), p0);
|
||||
comp_pred += 16;
|
||||
pred += 16;
|
||||
ref += 16 * 8;
|
||||
}
|
||||
ref += stride - (width << 3);
|
||||
}
|
||||
} else if (width >= 8) {
|
||||
// read 8 points at one time
|
||||
for (i = 0; i < height; i++) {
|
||||
for (j = 0; j < width; j += 8) {
|
||||
__m128i s0 = _mm_loadu_si128((const __m128i *)ref);
|
||||
__m128i s1 = _mm_loadu_si128((const __m128i *)(ref + 16));
|
||||
__m128i s2 = _mm_loadu_si128((const __m128i *)(ref + 32));
|
||||
__m128i s3 = _mm_loadu_si128((const __m128i *)(ref + 48));
|
||||
__m128i p0 = _mm_loadl_epi64((const __m128i *)pred);
|
||||
__m128i t0, t1;
|
||||
|
||||
t0 = _mm_unpacklo_epi8(s0, s1);
|
||||
s1 = _mm_unpackhi_epi8(s0, s1);
|
||||
t1 = _mm_unpacklo_epi8(s2, s3);
|
||||
s3 = _mm_unpackhi_epi8(s2, s3);
|
||||
|
||||
s0 = _mm_unpacklo_epi8(t0, s1);
|
||||
s2 = _mm_unpacklo_epi8(t1, s3);
|
||||
s0 = _mm_unpacklo_epi32(s0, s2);
|
||||
s0 = _mm_unpacklo_epi8(s0, zero);
|
||||
|
||||
p0 = _mm_unpacklo_epi8(p0, zero);
|
||||
p0 = _mm_adds_epu16(s0, p0);
|
||||
p0 = _mm_adds_epu16(p0, one);
|
||||
p0 = _mm_srli_epi16(p0, 1);
|
||||
p0 = _mm_packus_epi16(p0, zero);
|
||||
|
||||
_mm_storel_epi64((__m128i *)(comp_pred), p0);
|
||||
comp_pred += 8;
|
||||
pred += 8;
|
||||
ref += 8 * 8;
|
||||
}
|
||||
ref += stride - (width << 3);
|
||||
}
|
||||
} else {
|
||||
// read 4 points at one time
|
||||
for (i = 0; i < height; i++) {
|
||||
for (j = 0; j < width; j += 4) {
|
||||
__m128i s0 = _mm_loadu_si128((const __m128i *)ref);
|
||||
__m128i s1 = _mm_loadu_si128((const __m128i *)(ref + 16));
|
||||
__m128i p0 = _mm_cvtsi32_si128(*(const uint32_t *)pred);
|
||||
__m128i t0;
|
||||
|
||||
t0 = _mm_unpacklo_epi8(s0, s1);
|
||||
s1 = _mm_unpackhi_epi8(s0, s1);
|
||||
s0 = _mm_unpacklo_epi8(t0, s1);
|
||||
s0 = _mm_unpacklo_epi8(s0, zero);
|
||||
|
||||
p0 = _mm_unpacklo_epi8(p0, zero);
|
||||
p0 = _mm_adds_epu16(s0, p0);
|
||||
p0 = _mm_adds_epu16(p0, one);
|
||||
p0 = _mm_srli_epi16(p0, 1);
|
||||
p0 = _mm_packus_epi16(p0, zero);
|
||||
|
||||
*(int *)comp_pred = _mm_cvtsi128_si32(p0);
|
||||
comp_pred += 4;
|
||||
pred += 4;
|
||||
ref += 4 * 8;
|
||||
}
|
||||
ref += stride - (width << 3);
|
||||
}
|
||||
int n;
|
||||
int i;
|
||||
aom_upsampled_pred(comp_pred, width, height, subpel_x_q3, subpel_y_q3, ref,
|
||||
ref_stride);
|
||||
/*The total number of pixels must be a multiple of 16 (e.g., 4x4).*/
|
||||
assert(!(width * height & 15));
|
||||
n = width * height >> 4;
|
||||
for (i = 0; i < n; i++) {
|
||||
__m128i s0 = _mm_loadu_si128((const __m128i *)comp_pred);
|
||||
__m128i p0 = _mm_loadu_si128((const __m128i *)pred);
|
||||
_mm_storeu_si128((__m128i *)comp_pred, _mm_avg_epu8(s0, p0));
|
||||
comp_pred += 16;
|
||||
pred += 16;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
2
third_party/aom/aom_mem/aom_mem.cmake
vendored
2
third_party/aom/aom_mem/aom_mem.cmake
vendored
|
|
@ -21,7 +21,7 @@ set(AOM_MEM_SOURCES
|
|||
function (setup_aom_mem_targets)
|
||||
add_library(aom_mem OBJECT ${AOM_MEM_SOURCES})
|
||||
set(AOM_LIB_TARGETS ${AOM_LIB_TARGETS} aom_mem PARENT_SCOPE)
|
||||
target_sources(aom PUBLIC $<TARGET_OBJECTS:aom_mem>)
|
||||
target_sources(aom PRIVATE $<TARGET_OBJECTS:aom_mem>)
|
||||
endfunction ()
|
||||
|
||||
endif () # AOM_AOM_MEM_AOM_MEM_CMAKE_
|
||||
|
|
|
|||
9
third_party/aom/aom_ports/aom_ports.cmake
vendored
9
third_party/aom/aom_ports/aom_ports.cmake
vendored
|
|
@ -45,25 +45,24 @@ function (setup_aom_ports_targets)
|
|||
elseif ("${AOM_TARGET_CPU}" MATCHES "arm")
|
||||
add_library(aom_ports OBJECT ${AOM_PORTS_SOURCES_ARM})
|
||||
set(aom_ports_has_symbols 1)
|
||||
list(APPEND AOM_LIB_TARGETS aom_ports)
|
||||
target_sources(aom PRIVATE $<TARGET_OBJECTS:aom_ports>)
|
||||
endif ()
|
||||
|
||||
if (aom_ports_has_symbols)
|
||||
target_sources(aom_ports PUBLIC ${AOM_PORTS_INCLUDES})
|
||||
target_sources(aom_ports PRIVATE ${AOM_PORTS_INCLUDES})
|
||||
|
||||
if ("${AOM_TARGET_CPU}" STREQUAL "x86" OR
|
||||
"${AOM_TARGET_CPU}" STREQUAL "x86_64")
|
||||
target_sources(aom_ports PUBLIC ${AOM_PORTS_INCLUDES_X86})
|
||||
target_sources(aom_ports PRIVATE ${AOM_PORTS_INCLUDES_X86})
|
||||
endif ()
|
||||
|
||||
set(AOM_LIB_TARGETS ${AOM_LIB_TARGETS} PARENT_SCOPE)
|
||||
else ()
|
||||
target_sources(aom PUBLIC ${AOM_PORTS_INCLUDES})
|
||||
target_sources(aom PRIVATE ${AOM_PORTS_INCLUDES})
|
||||
|
||||
if ("${AOM_TARGET_CPU}" STREQUAL "x86" OR
|
||||
"${AOM_TARGET_CPU}" STREQUAL "x86_64")
|
||||
target_sources(aom PUBLIC ${AOM_PORTS_INCLUDES_X86})
|
||||
target_sources(aom PRIVATE ${AOM_PORTS_INCLUDES_X86})
|
||||
endif ()
|
||||
endif ()
|
||||
endfunction ()
|
||||
|
|
|
|||
4
third_party/aom/aom_scale/aom_scale.cmake
vendored
4
third_party/aom/aom_scale/aom_scale.cmake
vendored
|
|
@ -26,11 +26,11 @@ set(AOM_SCALE_INTRIN_DSPR2
|
|||
# target must exist before this function is called.
|
||||
function (setup_aom_scale_targets)
|
||||
add_library(aom_scale OBJECT ${AOM_SCALE_SOURCES})
|
||||
target_sources(aom PUBLIC $<TARGET_OBJECTS:aom_scale>)
|
||||
target_sources(aom PRIVATE $<TARGET_OBJECTS:aom_scale>)
|
||||
|
||||
if (HAVE_DSPR2)
|
||||
add_intrinsics_object_library("" "dspr2" "aom_scale"
|
||||
"AOM_SCALE_INTRIN_DSPR2")
|
||||
"AOM_SCALE_INTRIN_DSPR2" "aom_scale")
|
||||
endif ()
|
||||
|
||||
set(AOM_LIB_TARGETS ${AOM_LIB_TARGETS} aom_scale PARENT_SCOPE)
|
||||
|
|
|
|||
4
third_party/aom/aom_scale/yv12config.h
vendored
4
third_party/aom/aom_scale/yv12config.h
vendored
|
|
@ -69,6 +69,10 @@ typedef struct yv12_buffer_config {
|
|||
int subsampling_y;
|
||||
unsigned int bit_depth;
|
||||
aom_color_space_t color_space;
|
||||
#if CONFIG_COLORSPACE_HEADERS
|
||||
aom_transfer_function_t transfer_function;
|
||||
aom_chroma_sample_position_t chroma_sample_position;
|
||||
#endif
|
||||
aom_color_range_t color_range;
|
||||
int render_width;
|
||||
int render_height;
|
||||
|
|
|
|||
2
third_party/aom/aom_util/aom_util.cmake
vendored
2
third_party/aom/aom_util/aom_util.cmake
vendored
|
|
@ -28,7 +28,7 @@ endif ()
|
|||
function (setup_aom_util_targets)
|
||||
add_library(aom_util OBJECT ${AOM_UTIL_SOURCES})
|
||||
set(AOM_LIB_TARGETS ${AOM_LIB_TARGETS} aom_util PARENT_SCOPE)
|
||||
target_sources(aom PUBLIC $<TARGET_OBJECTS:aom_util>)
|
||||
target_sources(aom PRIVATE $<TARGET_OBJECTS:aom_util>)
|
||||
endfunction ()
|
||||
|
||||
endif () # AOM_AOM_UTIL_AOM_UTIL_CMAKE_
|
||||
|
|
|
|||
2
third_party/aom/aomdec.c
vendored
2
third_party/aom/aomdec.c
vendored
|
|
@ -519,7 +519,7 @@ static int main_loop(int argc, const char **argv_) {
|
|||
int use_y4m = 1;
|
||||
int opt_yv12 = 0;
|
||||
int opt_i420 = 0;
|
||||
aom_codec_dec_cfg_t cfg = { 0, 0, 0 };
|
||||
aom_codec_dec_cfg_t cfg = { 0, 0, 0, CONFIG_LOWBITDEPTH };
|
||||
#if CONFIG_HIGHBITDEPTH
|
||||
unsigned int output_bit_depth = 0;
|
||||
#endif
|
||||
|
|
|
|||
428
third_party/aom/aomenc.c
vendored
428
third_party/aom/aomenc.c
vendored
|
|
@ -194,9 +194,6 @@ static const arg_def_t disable_warning_prompt =
|
|||
"Display warnings, but do not prompt user to continue.");
|
||||
|
||||
#if CONFIG_HIGHBITDEPTH
|
||||
static const arg_def_t test16bitinternalarg = ARG_DEF(
|
||||
NULL, "test-16bit-internal", 0, "Force use of 16 bit internal buffer");
|
||||
|
||||
static const struct arg_enum_list bitdepth_enum[] = {
|
||||
{ "8", AOM_BITS_8 }, { "10", AOM_BITS_10 }, { "12", AOM_BITS_12 }, { NULL, 0 }
|
||||
};
|
||||
|
|
@ -258,6 +255,11 @@ static const arg_def_t error_resilient =
|
|||
ARG_DEF(NULL, "error-resilient", 1, "Enable error resiliency features");
|
||||
static const arg_def_t lag_in_frames =
|
||||
ARG_DEF(NULL, "lag-in-frames", 1, "Max number of frames to lag");
|
||||
#if CONFIG_EXT_TILE
|
||||
static const arg_def_t large_scale_tile =
|
||||
ARG_DEF(NULL, "large-scale-tile", 1,
|
||||
"Large scale tile coding (0: off (default), 1: on)");
|
||||
#endif // CONFIG_EXT_TILE
|
||||
|
||||
static const arg_def_t *global_args[] = { &use_yv12,
|
||||
&use_i420,
|
||||
|
|
@ -276,24 +278,31 @@ static const arg_def_t *global_args[] = { &use_yv12,
|
|||
&framerate,
|
||||
&error_resilient,
|
||||
#if CONFIG_HIGHBITDEPTH
|
||||
&test16bitinternalarg,
|
||||
&bitdeptharg,
|
||||
#endif
|
||||
&lag_in_frames,
|
||||
#if CONFIG_EXT_TILE
|
||||
&large_scale_tile,
|
||||
#endif // CONFIG_EXT_TILE
|
||||
NULL };
|
||||
|
||||
static const arg_def_t dropframe_thresh =
|
||||
ARG_DEF(NULL, "drop-frame", 1, "Temporal resampling threshold (buf %)");
|
||||
static const arg_def_t resize_allowed =
|
||||
ARG_DEF(NULL, "resize-allowed", 1, "Spatial resampling enabled (bool)");
|
||||
static const arg_def_t resize_width =
|
||||
ARG_DEF(NULL, "resize-width", 1, "Width of encoded frame");
|
||||
static const arg_def_t resize_height =
|
||||
ARG_DEF(NULL, "resize-height", 1, "Height of encoded frame");
|
||||
static const arg_def_t resize_up_thresh =
|
||||
ARG_DEF(NULL, "resize-up", 1, "Upscale threshold (buf %)");
|
||||
static const arg_def_t resize_down_thresh =
|
||||
ARG_DEF(NULL, "resize-down", 1, "Downscale threshold (buf %)");
|
||||
static const arg_def_t resize_mode =
|
||||
ARG_DEF(NULL, "resize-mode", 1, "Frame resize mode");
|
||||
static const arg_def_t resize_numerator =
|
||||
ARG_DEF(NULL, "resize-numerator", 1, "Frame resize numerator");
|
||||
static const arg_def_t resize_kf_numerator =
|
||||
ARG_DEF(NULL, "resize-kf-numerator", 1, "Frame resize keyframe numerator");
|
||||
#if CONFIG_FRAME_SUPERRES
|
||||
static const arg_def_t superres_mode =
|
||||
ARG_DEF(NULL, "superres-mode", 1, "Frame super-resolution mode");
|
||||
static const arg_def_t superres_numerator =
|
||||
ARG_DEF(NULL, "superres-numerator", 1, "Frame super-resolution numerator");
|
||||
static const arg_def_t superres_kf_numerator =
|
||||
ARG_DEF(NULL, "superres-kf-numerator", 1,
|
||||
"Frame super-resolution keyframe numerator");
|
||||
#endif // CONFIG_FRAME_SUPERRES
|
||||
static const struct arg_enum_list end_usage_enum[] = { { "vbr", AOM_VBR },
|
||||
{ "cbr", AOM_CBR },
|
||||
{ "cq", AOM_CQ },
|
||||
|
|
@ -317,12 +326,25 @@ static const arg_def_t buf_initial_sz =
|
|||
ARG_DEF(NULL, "buf-initial-sz", 1, "Client initial buffer size (ms)");
|
||||
static const arg_def_t buf_optimal_sz =
|
||||
ARG_DEF(NULL, "buf-optimal-sz", 1, "Client optimal buffer size (ms)");
|
||||
static const arg_def_t *rc_args[] = {
|
||||
&dropframe_thresh, &resize_allowed, &resize_width, &resize_height,
|
||||
&resize_up_thresh, &resize_down_thresh, &end_usage, &target_bitrate,
|
||||
&min_quantizer, &max_quantizer, &undershoot_pct, &overshoot_pct,
|
||||
&buf_sz, &buf_initial_sz, &buf_optimal_sz, NULL
|
||||
};
|
||||
static const arg_def_t *rc_args[] = { &dropframe_thresh,
|
||||
&resize_mode,
|
||||
&resize_numerator,
|
||||
&resize_kf_numerator,
|
||||
#if CONFIG_FRAME_SUPERRES
|
||||
&superres_mode,
|
||||
&superres_numerator,
|
||||
&superres_kf_numerator,
|
||||
#endif // CONFIG_FRAME_SUPERRES
|
||||
&end_usage,
|
||||
&target_bitrate,
|
||||
&min_quantizer,
|
||||
&max_quantizer,
|
||||
&undershoot_pct,
|
||||
&overshoot_pct,
|
||||
&buf_sz,
|
||||
&buf_initial_sz,
|
||||
&buf_optimal_sz,
|
||||
NULL };
|
||||
|
||||
static const arg_def_t bias_pct =
|
||||
ARG_DEF(NULL, "bias-pct", 1, "CBR/VBR bias (0=CBR, 100=VBR)");
|
||||
|
|
@ -367,17 +389,16 @@ static const arg_def_t max_intra_rate_pct =
|
|||
#if CONFIG_AV1_ENCODER
|
||||
static const arg_def_t cpu_used_av1 =
|
||||
ARG_DEF(NULL, "cpu-used", 1, "CPU Used (0..8)");
|
||||
#if CONFIG_EXT_TILE
|
||||
static const arg_def_t single_tile_decoding =
|
||||
ARG_DEF(NULL, "single-tile-decoding", 1,
|
||||
"Single tile decoding (0: off (default), 1: on)");
|
||||
#endif // CONFIG_EXT_TILE
|
||||
static const arg_def_t tile_cols =
|
||||
ARG_DEF(NULL, "tile-columns", 1, "Number of tile columns to use, log2");
|
||||
static const arg_def_t tile_rows =
|
||||
ARG_DEF(NULL, "tile-rows", 1,
|
||||
"Number of tile rows to use, log2 (set to 0 while threads > 1)");
|
||||
#if CONFIG_EXT_TILE
|
||||
static const arg_def_t tile_encoding_mode =
|
||||
ARG_DEF(NULL, "tile-encoding-mode", 1,
|
||||
"Tile encoding mode (0: normal"
|
||||
" (default), 1: vr)");
|
||||
#endif
|
||||
#if CONFIG_DEPENDENT_HORZTILES
|
||||
static const arg_def_t tile_dependent_rows =
|
||||
ARG_DEF(NULL, "tile-dependent-rows", 1, "Enable dependent Tile rows");
|
||||
|
|
@ -397,14 +418,12 @@ static const arg_def_t qm_min = ARG_DEF(
|
|||
static const arg_def_t qm_max = ARG_DEF(
|
||||
NULL, "qm-max", 1, "Max quant matrix flatness (0..15), default is 16");
|
||||
#endif
|
||||
#if CONFIG_TILE_GROUPS
|
||||
static const arg_def_t num_tg = ARG_DEF(
|
||||
NULL, "num-tile-groups", 1, "Maximum number of tile groups, default is 1");
|
||||
static const arg_def_t mtu_size =
|
||||
ARG_DEF(NULL, "mtu-size", 1,
|
||||
"MTU size for a tile group, default is 0 (no MTU targeting), "
|
||||
"overrides maximum number of tile groups");
|
||||
#endif
|
||||
#if CONFIG_TEMPMV_SIGNALING
|
||||
static const arg_def_t disable_tempmv = ARG_DEF(
|
||||
NULL, "disable-tempmv", 1, "Disable temporal mv prediction (default is 0)");
|
||||
|
|
@ -449,9 +468,16 @@ static const struct arg_enum_list color_space_enum[] = {
|
|||
{ "bt709", AOM_CS_BT_709 },
|
||||
{ "smpte170", AOM_CS_SMPTE_170 },
|
||||
{ "smpte240", AOM_CS_SMPTE_240 },
|
||||
#if CONFIG_COLORSPACE_HEADERS
|
||||
{ "bt2020ncl", AOM_CS_BT_2020_NCL },
|
||||
{ "bt2020cl", AOM_CS_BT_2020_CL },
|
||||
{ "sRGB", AOM_CS_SRGB },
|
||||
{ "ICtCp", AOM_CS_ICTCP },
|
||||
#else
|
||||
{ "bt2020", AOM_CS_BT_2020 },
|
||||
{ "reserved", AOM_CS_RESERVED },
|
||||
{ "sRGB", AOM_CS_SRGB },
|
||||
#endif
|
||||
{ NULL, 0 }
|
||||
};
|
||||
|
||||
|
|
@ -459,6 +485,32 @@ static const arg_def_t input_color_space =
|
|||
ARG_DEF_ENUM(NULL, "color-space", 1, "The color space of input content:",
|
||||
color_space_enum);
|
||||
|
||||
#if CONFIG_COLORSPACE_HEADERS
|
||||
static const struct arg_enum_list transfer_function_enum[] = {
|
||||
{ "unknown", AOM_TF_UNKNOWN },
|
||||
{ "bt709", AOM_TF_BT_709 },
|
||||
{ "pq", AOM_TF_PQ },
|
||||
{ "hlg", AOM_TF_HLG },
|
||||
{ NULL, 0 }
|
||||
};
|
||||
|
||||
static const arg_def_t input_transfer_function = ARG_DEF_ENUM(
|
||||
NULL, "transfer-function", 1, "The transfer function of input content:",
|
||||
transfer_function_enum);
|
||||
|
||||
static const struct arg_enum_list chroma_sample_position_enum[] = {
|
||||
{ "unknown", AOM_CSP_UNKNOWN },
|
||||
{ "vertical", AOM_CSP_VERTICAL },
|
||||
{ "colocated", AOM_CSP_COLOCATED },
|
||||
{ NULL, 0 }
|
||||
};
|
||||
|
||||
static const arg_def_t input_chroma_sample_position =
|
||||
ARG_DEF_ENUM(NULL, "chroma-sample-position", 1,
|
||||
"The chroma sample position when chroma 4:2:0 is signaled:",
|
||||
chroma_sample_position_enum);
|
||||
#endif
|
||||
|
||||
static const struct arg_enum_list tune_content_enum[] = {
|
||||
{ "default", AOM_CONTENT_DEFAULT },
|
||||
{ "screen", AOM_CONTENT_SCREEN },
|
||||
|
|
@ -485,11 +537,11 @@ static const arg_def_t *av1_args[] = { &cpu_used_av1,
|
|||
&auto_altref,
|
||||
&sharpness,
|
||||
&static_thresh,
|
||||
#if CONFIG_EXT_TILE
|
||||
&single_tile_decoding,
|
||||
#endif // CONFIG_EXT_TILE
|
||||
&tile_cols,
|
||||
&tile_rows,
|
||||
#if CONFIG_EXT_TILE
|
||||
&tile_encoding_mode,
|
||||
#endif
|
||||
#if CONFIG_DEPENDENT_HORZTILES
|
||||
&tile_dependent_rows,
|
||||
#endif
|
||||
|
|
@ -518,15 +570,17 @@ static const arg_def_t *av1_args[] = { &cpu_used_av1,
|
|||
&noise_sens,
|
||||
&tune_content,
|
||||
&input_color_space,
|
||||
#if CONFIG_COLORSPACE_HEADERS
|
||||
&input_transfer_function,
|
||||
&input_chroma_sample_position,
|
||||
#endif
|
||||
&min_gf_interval,
|
||||
&max_gf_interval,
|
||||
#if CONFIG_EXT_PARTITION
|
||||
&superblock_size,
|
||||
#endif // CONFIG_EXT_PARTITION
|
||||
#if CONFIG_TILE_GROUPS
|
||||
&num_tg,
|
||||
&mtu_size,
|
||||
#endif
|
||||
#if CONFIG_TEMPMV_SIGNALING
|
||||
&disable_tempmv,
|
||||
#endif
|
||||
|
|
@ -539,11 +593,11 @@ static const int av1_arg_ctrl_map[] = { AOME_SET_CPUUSED,
|
|||
AOME_SET_ENABLEAUTOALTREF,
|
||||
AOME_SET_SHARPNESS,
|
||||
AOME_SET_STATIC_THRESHOLD,
|
||||
#if CONFIG_EXT_TILE
|
||||
AV1E_SET_SINGLE_TILE_DECODING,
|
||||
#endif // CONFIG_EXT_TILE
|
||||
AV1E_SET_TILE_COLUMNS,
|
||||
AV1E_SET_TILE_ROWS,
|
||||
#if CONFIG_EXT_TILE
|
||||
AV1E_SET_TILE_ENCODING_MODE,
|
||||
#endif
|
||||
#if CONFIG_DEPENDENT_HORZTILES
|
||||
AV1E_SET_TILE_DEPENDENT_ROWS,
|
||||
#endif
|
||||
|
|
@ -572,15 +626,17 @@ static const int av1_arg_ctrl_map[] = { AOME_SET_CPUUSED,
|
|||
AV1E_SET_NOISE_SENSITIVITY,
|
||||
AV1E_SET_TUNE_CONTENT,
|
||||
AV1E_SET_COLOR_SPACE,
|
||||
#if CONFIG_COLORSPACE_HEADERS
|
||||
AV1E_SET_TRANSFER_FUNCTION,
|
||||
AV1E_SET_CHROMA_SAMPLE_POSITION,
|
||||
#endif
|
||||
AV1E_SET_MIN_GF_INTERVAL,
|
||||
AV1E_SET_MAX_GF_INTERVAL,
|
||||
#if CONFIG_EXT_PARTITION
|
||||
AV1E_SET_SUPERBLOCK_SIZE,
|
||||
#endif // CONFIG_EXT_PARTITION
|
||||
#if CONFIG_TILE_GROUPS
|
||||
AV1E_SET_NUM_TG,
|
||||
AV1E_SET_MTU,
|
||||
#endif
|
||||
#if CONFIG_TEMPMV_SIGNALING
|
||||
AV1E_SET_DISABLE_TEMPMV,
|
||||
#endif
|
||||
|
|
@ -651,10 +707,8 @@ struct stream_config {
|
|||
int arg_ctrls[ARG_CTRL_CNT_MAX][2];
|
||||
int arg_ctrl_cnt;
|
||||
int write_webm;
|
||||
#if CONFIG_HIGHBITDEPTH
|
||||
// whether to use 16bit internal buffers
|
||||
int use_16bit_internal;
|
||||
#endif
|
||||
};
|
||||
|
||||
struct stream_state {
|
||||
|
|
@ -906,9 +960,7 @@ static int parse_stream_params(struct AvxEncoderConfig *global,
|
|||
static const int *ctrl_args_map = NULL;
|
||||
struct stream_config *config = &stream->config;
|
||||
int eos_mark_found = 0;
|
||||
#if CONFIG_HIGHBITDEPTH
|
||||
int test_16bit_internal = 0;
|
||||
#endif
|
||||
int webm_forced = 0;
|
||||
|
||||
// Handle codec specific options
|
||||
if (0) {
|
||||
|
|
@ -937,6 +989,13 @@ static int parse_stream_params(struct AvxEncoderConfig *global,
|
|||
|
||||
if (arg_match(&arg, &outputfile, argi)) {
|
||||
config->out_fn = arg.val;
|
||||
if (!webm_forced) {
|
||||
const size_t out_fn_len = strlen(config->out_fn);
|
||||
if (out_fn_len >= 4 &&
|
||||
!strcmp(config->out_fn + out_fn_len - 4, ".ivf")) {
|
||||
config->write_webm = 0;
|
||||
}
|
||||
}
|
||||
} else if (arg_match(&arg, &fpf_name, argi)) {
|
||||
config->stats_fn = arg.val;
|
||||
#if CONFIG_FP_MB_STATS
|
||||
|
|
@ -946,6 +1005,7 @@ static int parse_stream_params(struct AvxEncoderConfig *global,
|
|||
} else if (arg_match(&arg, &use_webm, argi)) {
|
||||
#if CONFIG_WEBM_IO
|
||||
config->write_webm = 1;
|
||||
webm_forced = 1;
|
||||
#else
|
||||
die("Error: --webm specified but webm is disabled.");
|
||||
#endif
|
||||
|
|
@ -976,18 +1036,26 @@ static int parse_stream_params(struct AvxEncoderConfig *global,
|
|||
config->cfg.g_error_resilient = arg_parse_uint(&arg);
|
||||
} else if (arg_match(&arg, &lag_in_frames, argi)) {
|
||||
config->cfg.g_lag_in_frames = arg_parse_uint(&arg);
|
||||
#if CONFIG_EXT_TILE
|
||||
} else if (arg_match(&arg, &large_scale_tile, argi)) {
|
||||
config->cfg.large_scale_tile = arg_parse_uint(&arg);
|
||||
#endif // CONFIG_EXT_TILE
|
||||
} else if (arg_match(&arg, &dropframe_thresh, argi)) {
|
||||
config->cfg.rc_dropframe_thresh = arg_parse_uint(&arg);
|
||||
} else if (arg_match(&arg, &resize_allowed, argi)) {
|
||||
config->cfg.rc_resize_allowed = arg_parse_uint(&arg);
|
||||
} else if (arg_match(&arg, &resize_width, argi)) {
|
||||
config->cfg.rc_scaled_width = arg_parse_uint(&arg);
|
||||
} else if (arg_match(&arg, &resize_height, argi)) {
|
||||
config->cfg.rc_scaled_height = arg_parse_uint(&arg);
|
||||
} else if (arg_match(&arg, &resize_up_thresh, argi)) {
|
||||
config->cfg.rc_resize_up_thresh = arg_parse_uint(&arg);
|
||||
} else if (arg_match(&arg, &resize_down_thresh, argi)) {
|
||||
config->cfg.rc_resize_down_thresh = arg_parse_uint(&arg);
|
||||
} else if (arg_match(&arg, &resize_mode, argi)) {
|
||||
config->cfg.rc_resize_mode = arg_parse_uint(&arg);
|
||||
} else if (arg_match(&arg, &resize_numerator, argi)) {
|
||||
config->cfg.rc_resize_numerator = arg_parse_uint(&arg);
|
||||
} else if (arg_match(&arg, &resize_kf_numerator, argi)) {
|
||||
config->cfg.rc_resize_kf_numerator = arg_parse_uint(&arg);
|
||||
#if CONFIG_FRAME_SUPERRES
|
||||
} else if (arg_match(&arg, &superres_mode, argi)) {
|
||||
config->cfg.rc_superres_mode = arg_parse_uint(&arg);
|
||||
} else if (arg_match(&arg, &superres_numerator, argi)) {
|
||||
config->cfg.rc_superres_numerator = arg_parse_uint(&arg);
|
||||
} else if (arg_match(&arg, &superres_kf_numerator, argi)) {
|
||||
config->cfg.rc_superres_kf_numerator = arg_parse_uint(&arg);
|
||||
#endif // CONFIG_FRAME_SUPERRES
|
||||
} else if (arg_match(&arg, &end_usage, argi)) {
|
||||
config->cfg.rc_end_usage = arg_parse_enum_or_int(&arg);
|
||||
} else if (arg_match(&arg, &target_bitrate, argi)) {
|
||||
|
|
@ -1026,13 +1094,6 @@ static int parse_stream_params(struct AvxEncoderConfig *global,
|
|||
config->cfg.kf_max_dist = arg_parse_uint(&arg);
|
||||
} else if (arg_match(&arg, &kf_disabled, argi)) {
|
||||
config->cfg.kf_mode = AOM_KF_DISABLED;
|
||||
#if CONFIG_HIGHBITDEPTH
|
||||
} else if (arg_match(&arg, &test16bitinternalarg, argi)) {
|
||||
if (strcmp(global->codec->name, "av1") == 0 ||
|
||||
strcmp(global->codec->name, "av1") == 0) {
|
||||
test_16bit_internal = 1;
|
||||
}
|
||||
#endif
|
||||
} else {
|
||||
int i, match = 0;
|
||||
for (i = 0; ctrl_args[i]; i++) {
|
||||
|
|
@ -1062,18 +1123,14 @@ static int parse_stream_params(struct AvxEncoderConfig *global,
|
|||
}
|
||||
#if CONFIG_HIGHBITDEPTH
|
||||
config->use_16bit_internal =
|
||||
test_16bit_internal || (config->cfg.g_profile > 1) || !CONFIG_LOWBITDEPTH;
|
||||
config->cfg.g_bit_depth > AOM_BITS_8 || !CONFIG_LOWBITDEPTH;
|
||||
#endif
|
||||
return eos_mark_found;
|
||||
}
|
||||
|
||||
#define FOREACH_STREAM(func) \
|
||||
do { \
|
||||
struct stream_state *stream; \
|
||||
for (stream = streams; stream; stream = stream->next) { \
|
||||
func; \
|
||||
} \
|
||||
} while (0)
|
||||
#define FOREACH_STREAM(iterator, list) \
|
||||
for (struct stream_state *iterator = list; iterator; \
|
||||
iterator = iterator->next)
|
||||
|
||||
static void validate_stream_config(const struct stream_state *stream,
|
||||
const struct AvxEncoderConfig *global) {
|
||||
|
|
@ -1183,6 +1240,8 @@ static void show_stream_config(struct stream_state *stream,
|
|||
if (stream->next || stream->index)
|
||||
fprintf(stderr, "\nStream Index: %d\n", stream->index);
|
||||
fprintf(stderr, "Destination file: %s\n", stream->config.out_fn);
|
||||
fprintf(stderr, "Coding path: %s\n",
|
||||
stream->config.use_16bit_internal ? "HBD" : "LBD");
|
||||
fprintf(stderr, "Encoder parameters:\n");
|
||||
|
||||
SHOW(g_usage);
|
||||
|
|
@ -1197,12 +1256,18 @@ static void show_stream_config(struct stream_state *stream,
|
|||
SHOW(g_error_resilient);
|
||||
SHOW(g_pass);
|
||||
SHOW(g_lag_in_frames);
|
||||
#if CONFIG_EXT_TILE
|
||||
SHOW(large_scale_tile);
|
||||
#endif // CONFIG_EXT_TILE
|
||||
SHOW(rc_dropframe_thresh);
|
||||
SHOW(rc_resize_allowed);
|
||||
SHOW(rc_scaled_width);
|
||||
SHOW(rc_scaled_height);
|
||||
SHOW(rc_resize_up_thresh);
|
||||
SHOW(rc_resize_down_thresh);
|
||||
SHOW(rc_resize_mode);
|
||||
SHOW(rc_resize_numerator);
|
||||
SHOW(rc_resize_kf_numerator);
|
||||
#if CONFIG_FRAME_SUPERRES
|
||||
SHOW(rc_superres_mode);
|
||||
SHOW(rc_superres_numerator);
|
||||
SHOW(rc_superres_kf_numerator);
|
||||
#endif // CONFIG_FRAME_SUPERRES
|
||||
SHOW(rc_end_usage);
|
||||
SHOW(rc_target_bitrate);
|
||||
SHOW(rc_min_quantizer);
|
||||
|
|
@ -1340,7 +1405,7 @@ static void initialize_encoder(struct stream_state *stream,
|
|||
#if CONFIG_AV1_DECODER
|
||||
if (global->test_decode != TEST_DECODE_OFF) {
|
||||
const AvxInterface *decoder = get_aom_decoder_by_name(global->codec->name);
|
||||
aom_codec_dec_cfg_t cfg = { 0, 0, 0 };
|
||||
aom_codec_dec_cfg_t cfg = { 0, 0, 0, CONFIG_LOWBITDEPTH };
|
||||
aom_codec_dec_init(&stream->decoder, decoder->codec_interface(), &cfg, 0);
|
||||
|
||||
#if CONFIG_EXT_TILE
|
||||
|
|
@ -1351,7 +1416,7 @@ static void initialize_encoder(struct stream_state *stream,
|
|||
aom_codec_control(&stream->decoder, AV1_SET_DECODE_TILE_COL, -1);
|
||||
ctx_exit_on_error(&stream->decoder, "Failed to set decode_tile_col");
|
||||
}
|
||||
#endif
|
||||
#endif // CONFIG_EXT_TILE
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
|
@ -1730,8 +1795,10 @@ int main(int argc, const char **argv_) {
|
|||
if (argi[0][0] == '-' && argi[0][1])
|
||||
die("Error: Unrecognized option %s\n", *argi);
|
||||
|
||||
FOREACH_STREAM(check_encoder_config(global.disable_warning_prompt, &global,
|
||||
&stream->config.cfg););
|
||||
FOREACH_STREAM(stream, streams) {
|
||||
check_encoder_config(global.disable_warning_prompt, &global,
|
||||
&stream->config.cfg);
|
||||
}
|
||||
|
||||
/* Handle non-option arguments */
|
||||
input.filename = argv[0];
|
||||
|
|
@ -1753,13 +1820,13 @@ int main(int argc, const char **argv_) {
|
|||
* the data from the first stream's configuration.
|
||||
*/
|
||||
if (!input.width || !input.height) {
|
||||
FOREACH_STREAM({
|
||||
FOREACH_STREAM(stream, streams) {
|
||||
if (stream->config.cfg.g_w && stream->config.cfg.g_h) {
|
||||
input.width = stream->config.cfg.g_w;
|
||||
input.height = stream->config.cfg.g_h;
|
||||
break;
|
||||
}
|
||||
});
|
||||
};
|
||||
}
|
||||
|
||||
/* Update stream configurations from the input file's parameters */
|
||||
|
|
@ -1774,21 +1841,21 @@ int main(int argc, const char **argv_) {
|
|||
* to be the same as the codec bit-depth.
|
||||
*/
|
||||
if (!input.bit_depth) {
|
||||
FOREACH_STREAM({
|
||||
FOREACH_STREAM(stream, streams) {
|
||||
if (stream->config.cfg.g_input_bit_depth)
|
||||
input.bit_depth = stream->config.cfg.g_input_bit_depth;
|
||||
else
|
||||
input.bit_depth = stream->config.cfg.g_input_bit_depth =
|
||||
(int)stream->config.cfg.g_bit_depth;
|
||||
});
|
||||
}
|
||||
if (input.bit_depth > 8) input.fmt |= AOM_IMG_FMT_HIGHBITDEPTH;
|
||||
} else {
|
||||
FOREACH_STREAM(
|
||||
{ stream->config.cfg.g_input_bit_depth = input.bit_depth; });
|
||||
FOREACH_STREAM(stream, streams) {
|
||||
stream->config.cfg.g_input_bit_depth = input.bit_depth;
|
||||
}
|
||||
}
|
||||
|
||||
#if CONFIG_HIGHBITDEPTH
|
||||
FOREACH_STREAM({
|
||||
FOREACH_STREAM(stream, streams) {
|
||||
if (input.fmt != AOM_IMG_FMT_I420 && input.fmt != AOM_IMG_FMT_I42016) {
|
||||
/* Automatically upgrade if input is non-4:2:0 but a 4:2:0 profile
|
||||
was selected. */
|
||||
|
|
@ -1824,6 +1891,7 @@ int main(int argc, const char **argv_) {
|
|||
}
|
||||
}
|
||||
if (stream->config.cfg.g_profile > 1) {
|
||||
if (!CONFIG_HIGHBITDEPTH) fatal("Unsupported profile.");
|
||||
stream->config.use_16bit_internal = 1;
|
||||
}
|
||||
if (profile_updated && !global.quiet) {
|
||||
|
|
@ -1832,56 +1900,34 @@ int main(int argc, const char **argv_) {
|
|||
"match input format.\n",
|
||||
stream->config.cfg.g_profile);
|
||||
}
|
||||
});
|
||||
#else
|
||||
FOREACH_STREAM({
|
||||
if (input.fmt != AOM_IMG_FMT_I420 && input.fmt != AOM_IMG_FMT_I42016) {
|
||||
/* Automatically upgrade if input is non-4:2:0 but a 4:2:0 profile
|
||||
was selected. */
|
||||
switch (stream->config.cfg.g_profile) {
|
||||
case 0:
|
||||
stream->config.cfg.g_profile = 1;
|
||||
profile_updated = 1;
|
||||
break;
|
||||
case 2:
|
||||
stream->config.cfg.g_profile = 3;
|
||||
profile_updated = 1;
|
||||
break;
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
if (profile_updated && !global.quiet) {
|
||||
fprintf(stderr,
|
||||
"Warning: automatically upgrading to profile %d to "
|
||||
"match input format.\n",
|
||||
stream->config.cfg.g_profile);
|
||||
}
|
||||
});
|
||||
#endif
|
||||
}
|
||||
|
||||
FOREACH_STREAM(set_stream_dimensions(stream, input.width, input.height));
|
||||
FOREACH_STREAM(validate_stream_config(stream, &global));
|
||||
FOREACH_STREAM(stream, streams) {
|
||||
set_stream_dimensions(stream, input.width, input.height);
|
||||
}
|
||||
FOREACH_STREAM(stream, streams) { validate_stream_config(stream, &global); }
|
||||
|
||||
/* Ensure that --passes and --pass are consistent. If --pass is set and
|
||||
* --passes=2, ensure --fpf was set.
|
||||
*/
|
||||
if (global.pass && global.passes == 2)
|
||||
FOREACH_STREAM({
|
||||
if (global.pass && global.passes == 2) {
|
||||
FOREACH_STREAM(stream, streams) {
|
||||
if (!stream->config.stats_fn)
|
||||
die("Stream %d: Must specify --fpf when --pass=%d"
|
||||
" and --passes=2\n",
|
||||
stream->index, global.pass);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
#if !CONFIG_WEBM_IO
|
||||
FOREACH_STREAM({
|
||||
FOREACH_STREAM(stream, streams) {
|
||||
if (stream->config.write_webm) {
|
||||
stream->config.write_webm = 0;
|
||||
warn(
|
||||
"aomenc was compiled without WebM container support."
|
||||
"Producing IVF output");
|
||||
}
|
||||
});
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Use the frame rate from the file only if none was specified
|
||||
|
|
@ -1890,31 +1936,39 @@ int main(int argc, const char **argv_) {
|
|||
if (!global.have_framerate) {
|
||||
global.framerate.num = input.framerate.numerator;
|
||||
global.framerate.den = input.framerate.denominator;
|
||||
FOREACH_STREAM(stream->config.cfg.g_timebase.den = global.framerate.num;
|
||||
stream->config.cfg.g_timebase.num = global.framerate.den);
|
||||
FOREACH_STREAM(stream, streams) {
|
||||
stream->config.cfg.g_timebase.den = global.framerate.num;
|
||||
stream->config.cfg.g_timebase.num = global.framerate.den;
|
||||
}
|
||||
}
|
||||
|
||||
/* Show configuration */
|
||||
if (global.verbose && pass == 0)
|
||||
FOREACH_STREAM(show_stream_config(stream, &global, &input));
|
||||
if (global.verbose && pass == 0) {
|
||||
FOREACH_STREAM(stream, streams) {
|
||||
show_stream_config(stream, &global, &input);
|
||||
}
|
||||
}
|
||||
|
||||
if (pass == (global.pass ? global.pass - 1 : 0)) {
|
||||
if (input.file_type == FILE_TYPE_Y4M)
|
||||
/*The Y4M reader does its own allocation.
|
||||
Just initialize this here to avoid problems if we never read any
|
||||
frames.*/
|
||||
frames.*/
|
||||
memset(&raw, 0, sizeof(raw));
|
||||
else
|
||||
aom_img_alloc(&raw, input.fmt, input.width, input.height, 32);
|
||||
|
||||
FOREACH_STREAM(stream->rate_hist = init_rate_histogram(
|
||||
&stream->config.cfg, &global.framerate));
|
||||
FOREACH_STREAM(stream, streams) {
|
||||
stream->rate_hist =
|
||||
init_rate_histogram(&stream->config.cfg, &global.framerate);
|
||||
}
|
||||
}
|
||||
|
||||
FOREACH_STREAM(setup_pass(stream, &global, pass));
|
||||
FOREACH_STREAM(
|
||||
open_output_file(stream, &global, &input.pixel_aspect_ratio));
|
||||
FOREACH_STREAM(initialize_encoder(stream, &global));
|
||||
FOREACH_STREAM(stream, streams) { setup_pass(stream, &global, pass); }
|
||||
FOREACH_STREAM(stream, streams) {
|
||||
open_output_file(stream, &global, &input.pixel_aspect_ratio);
|
||||
}
|
||||
FOREACH_STREAM(stream, streams) { initialize_encoder(stream, &global); }
|
||||
|
||||
#if CONFIG_HIGHBITDEPTH
|
||||
if (strcmp(global.codec->name, "av1") == 0 ||
|
||||
|
|
@ -1922,7 +1976,7 @@ int main(int argc, const char **argv_) {
|
|||
// Check to see if at least one stream uses 16 bit internal.
|
||||
// Currently assume that the bit_depths for all streams using
|
||||
// highbitdepth are the same.
|
||||
FOREACH_STREAM({
|
||||
FOREACH_STREAM(stream, streams) {
|
||||
if (stream->config.use_16bit_internal) {
|
||||
use_16bit_internal = 1;
|
||||
}
|
||||
|
|
@ -1932,7 +1986,7 @@ int main(int argc, const char **argv_) {
|
|||
input_shift = (int)stream->config.cfg.g_bit_depth -
|
||||
stream->config.cfg.g_input_bit_depth;
|
||||
}
|
||||
});
|
||||
};
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
@ -1990,31 +2044,35 @@ int main(int argc, const char **argv_) {
|
|||
aom_usec_timer_start(&timer);
|
||||
if (use_16bit_internal) {
|
||||
assert(frame_to_encode->fmt & AOM_IMG_FMT_HIGHBITDEPTH);
|
||||
FOREACH_STREAM({
|
||||
FOREACH_STREAM(stream, streams) {
|
||||
if (stream->config.use_16bit_internal)
|
||||
encode_frame(stream, &global,
|
||||
frame_avail ? frame_to_encode : NULL, frames_in);
|
||||
else
|
||||
assert(0);
|
||||
});
|
||||
};
|
||||
} else {
|
||||
assert((frame_to_encode->fmt & AOM_IMG_FMT_HIGHBITDEPTH) == 0);
|
||||
FOREACH_STREAM(encode_frame(stream, &global,
|
||||
frame_avail ? frame_to_encode : NULL,
|
||||
frames_in));
|
||||
FOREACH_STREAM(stream, streams) {
|
||||
encode_frame(stream, &global, frame_avail ? frame_to_encode : NULL,
|
||||
frames_in);
|
||||
}
|
||||
}
|
||||
#else
|
||||
aom_usec_timer_start(&timer);
|
||||
FOREACH_STREAM(encode_frame(stream, &global, frame_avail ? &raw : NULL,
|
||||
frames_in));
|
||||
FOREACH_STREAM(stream, streams) {
|
||||
encode_frame(stream, &global, frame_avail ? &raw : NULL, frames_in);
|
||||
}
|
||||
#endif
|
||||
aom_usec_timer_mark(&timer);
|
||||
cx_time += aom_usec_timer_elapsed(&timer);
|
||||
|
||||
FOREACH_STREAM(update_quantizer_histogram(stream));
|
||||
FOREACH_STREAM(stream, streams) { update_quantizer_histogram(stream); }
|
||||
|
||||
got_data = 0;
|
||||
FOREACH_STREAM(get_cx_data(stream, &global, &got_data));
|
||||
FOREACH_STREAM(stream, streams) {
|
||||
get_cx_data(stream, &global, &got_data);
|
||||
}
|
||||
|
||||
if (!got_data && input.length && streams != NULL &&
|
||||
!streams->frames_out) {
|
||||
|
|
@ -2043,8 +2101,11 @@ int main(int argc, const char **argv_) {
|
|||
estimated_time_left = average_rate ? remaining / average_rate : -1;
|
||||
}
|
||||
|
||||
if (got_data && global.test_decode != TEST_DECODE_OFF)
|
||||
FOREACH_STREAM(test_decode(stream, global.test_decode, global.codec));
|
||||
if (got_data && global.test_decode != TEST_DECODE_OFF) {
|
||||
FOREACH_STREAM(stream, streams) {
|
||||
test_decode(stream, global.test_decode, global.codec);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fflush(stdout);
|
||||
|
|
@ -2054,68 +2115,84 @@ int main(int argc, const char **argv_) {
|
|||
if (stream_cnt > 1) fprintf(stderr, "\n");
|
||||
|
||||
if (!global.quiet) {
|
||||
FOREACH_STREAM(fprintf(
|
||||
stderr, "\rPass %d/%d frame %4d/%-4d %7" PRId64 "B %7" PRId64
|
||||
"b/f %7" PRId64 "b/s"
|
||||
" %7" PRId64 " %s (%.2f fps)\033[K\n",
|
||||
pass + 1, global.passes, frames_in, stream->frames_out,
|
||||
(int64_t)stream->nbytes,
|
||||
seen_frames ? (int64_t)(stream->nbytes * 8 / seen_frames) : 0,
|
||||
seen_frames
|
||||
? (int64_t)stream->nbytes * 8 * (int64_t)global.framerate.num /
|
||||
global.framerate.den / seen_frames
|
||||
: 0,
|
||||
stream->cx_time > 9999999 ? stream->cx_time / 1000 : stream->cx_time,
|
||||
stream->cx_time > 9999999 ? "ms" : "us",
|
||||
usec_to_fps(stream->cx_time, seen_frames)));
|
||||
FOREACH_STREAM(stream, streams) {
|
||||
fprintf(stderr, "\rPass %d/%d frame %4d/%-4d %7" PRId64 "B %7" PRId64
|
||||
"b/f %7" PRId64
|
||||
"b/s"
|
||||
" %7" PRId64 " %s (%.2f fps)\033[K\n",
|
||||
pass + 1, global.passes, frames_in, stream->frames_out,
|
||||
(int64_t)stream->nbytes,
|
||||
seen_frames ? (int64_t)(stream->nbytes * 8 / seen_frames) : 0,
|
||||
seen_frames
|
||||
? (int64_t)stream->nbytes * 8 *
|
||||
(int64_t)global.framerate.num / global.framerate.den /
|
||||
seen_frames
|
||||
: 0,
|
||||
stream->cx_time > 9999999 ? stream->cx_time / 1000
|
||||
: stream->cx_time,
|
||||
stream->cx_time > 9999999 ? "ms" : "us",
|
||||
usec_to_fps(stream->cx_time, seen_frames));
|
||||
}
|
||||
}
|
||||
|
||||
if (global.show_psnr) {
|
||||
if (global.codec->fourcc == AV1_FOURCC) {
|
||||
FOREACH_STREAM(
|
||||
show_psnr(stream, (1 << stream->config.cfg.g_input_bit_depth) - 1));
|
||||
FOREACH_STREAM(stream, streams) {
|
||||
show_psnr(stream, (1 << stream->config.cfg.g_input_bit_depth) - 1);
|
||||
}
|
||||
} else {
|
||||
FOREACH_STREAM(show_psnr(stream, 255.0));
|
||||
FOREACH_STREAM(stream, streams) { show_psnr(stream, 255.0); }
|
||||
}
|
||||
}
|
||||
|
||||
FOREACH_STREAM(aom_codec_destroy(&stream->encoder));
|
||||
FOREACH_STREAM(stream, streams) { aom_codec_destroy(&stream->encoder); }
|
||||
|
||||
if (global.test_decode != TEST_DECODE_OFF) {
|
||||
FOREACH_STREAM(aom_codec_destroy(&stream->decoder));
|
||||
FOREACH_STREAM(stream, streams) { aom_codec_destroy(&stream->decoder); }
|
||||
}
|
||||
|
||||
close_input_file(&input);
|
||||
|
||||
if (global.test_decode == TEST_DECODE_FATAL) {
|
||||
FOREACH_STREAM(res |= stream->mismatch_seen);
|
||||
FOREACH_STREAM(stream, streams) { res |= stream->mismatch_seen; }
|
||||
}
|
||||
FOREACH_STREAM(stream, streams) {
|
||||
close_output_file(stream, global.codec->fourcc);
|
||||
}
|
||||
FOREACH_STREAM(close_output_file(stream, global.codec->fourcc));
|
||||
|
||||
FOREACH_STREAM(stats_close(&stream->stats, global.passes - 1));
|
||||
FOREACH_STREAM(stream, streams) {
|
||||
stats_close(&stream->stats, global.passes - 1);
|
||||
}
|
||||
|
||||
#if CONFIG_FP_MB_STATS
|
||||
FOREACH_STREAM(stats_close(&stream->fpmb_stats, global.passes - 1));
|
||||
FOREACH_STREAM(stream, streams) {
|
||||
stats_close(&stream->fpmb_stats, global.passes - 1);
|
||||
}
|
||||
#endif
|
||||
|
||||
if (global.pass) break;
|
||||
}
|
||||
|
||||
if (global.show_q_hist_buckets)
|
||||
FOREACH_STREAM(
|
||||
show_q_histogram(stream->counts, global.show_q_hist_buckets));
|
||||
if (global.show_q_hist_buckets) {
|
||||
FOREACH_STREAM(stream, streams) {
|
||||
show_q_histogram(stream->counts, global.show_q_hist_buckets);
|
||||
}
|
||||
}
|
||||
|
||||
if (global.show_rate_hist_buckets)
|
||||
FOREACH_STREAM(show_rate_histogram(stream->rate_hist, &stream->config.cfg,
|
||||
global.show_rate_hist_buckets));
|
||||
FOREACH_STREAM(destroy_rate_histogram(stream->rate_hist));
|
||||
if (global.show_rate_hist_buckets) {
|
||||
FOREACH_STREAM(stream, streams) {
|
||||
show_rate_histogram(stream->rate_hist, &stream->config.cfg,
|
||||
global.show_rate_hist_buckets);
|
||||
}
|
||||
}
|
||||
FOREACH_STREAM(stream, streams) { destroy_rate_histogram(stream->rate_hist); }
|
||||
|
||||
#if CONFIG_INTERNAL_STATS
|
||||
/* TODO(jkoleszar): This doesn't belong in this executable. Do it for now,
|
||||
* to match some existing utilities.
|
||||
*/
|
||||
if (!(global.pass == 1 && global.passes == 2))
|
||||
FOREACH_STREAM({
|
||||
if (!(global.pass == 1 && global.passes == 2)) {
|
||||
FOREACH_STREAM(stream, streams) {
|
||||
FILE *f = fopen("opsnr.stt", "a");
|
||||
if (stream->mismatch_seen) {
|
||||
fprintf(f, "First mismatch occurred in frame %d\n",
|
||||
|
|
@ -2124,7 +2201,8 @@ int main(int argc, const char **argv_) {
|
|||
fprintf(f, "No mismatch detected in recon buffers\n");
|
||||
}
|
||||
fclose(f);
|
||||
});
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#if CONFIG_HIGHBITDEPTH
|
||||
|
|
|
|||
81
third_party/aom/av1/av1.cmake
vendored
81
third_party/aom/av1/av1.cmake
vendored
|
|
@ -33,6 +33,8 @@ set(AOM_AV1_COMMON_SOURCES
|
|||
"${AOM_ROOT}/av1/common/common_data.h"
|
||||
"${AOM_ROOT}/av1/common/convolve.c"
|
||||
"${AOM_ROOT}/av1/common/convolve.h"
|
||||
"${AOM_ROOT}/av1/common/daala_tx.c"
|
||||
"${AOM_ROOT}/av1/common/daala_tx.h"
|
||||
"${AOM_ROOT}/av1/common/debugmodes.c"
|
||||
"${AOM_ROOT}/av1/common/entropy.c"
|
||||
"${AOM_ROOT}/av1/common/entropy.h"
|
||||
|
|
@ -158,9 +160,11 @@ set(AOM_AV1_COMMON_INTRIN_SSSE3
|
|||
|
||||
set(AOM_AV1_COMMON_INTRIN_SSE4_1
|
||||
"${AOM_ROOT}/av1/common/x86/av1_fwd_txfm1d_sse4.c"
|
||||
"${AOM_ROOT}/av1/common/x86/av1_fwd_txfm2d_sse4.c")
|
||||
"${AOM_ROOT}/av1/common/x86/av1_fwd_txfm2d_sse4.c"
|
||||
"${AOM_ROOT}/av1/common/x86/highbd_inv_txfm_sse4.c")
|
||||
|
||||
set(AOM_AV1_COMMON_INTRIN_AVX2
|
||||
"${AOM_ROOT}/av1/common/x86/highbd_inv_txfm_avx2.c"
|
||||
"${AOM_ROOT}/av1/common/x86/hybrid_inv_txfm_avx2.c")
|
||||
|
||||
set(AOM_AV1_COMMON_INTRIN_DSPR2
|
||||
|
|
@ -189,7 +193,14 @@ set(AOM_AV1_ENCODER_ASM_SSSE3_X86_64
|
|||
set(AOM_AV1_ENCODER_INTRIN_SSSE3
|
||||
"${AOM_ROOT}/av1/encoder/x86/dct_ssse3.c")
|
||||
|
||||
set(AOM_AV1_ENCODER_INTRIN_SSE4_1
|
||||
${AOM_AV1_ENCODER_INTRIN_SSE4_1}
|
||||
"${AOM_ROOT}/av1/encoder/x86/av1_highbd_quantize_sse4.c"
|
||||
"${AOM_ROOT}/av1/encoder/x86/highbd_fwd_txfm_sse4.c")
|
||||
|
||||
set(AOM_AV1_ENCODER_INTRIN_AVX2
|
||||
"${AOM_ROOT}/av1/encoder/x86/av1_quantize_avx2.c"
|
||||
"${AOM_ROOT}/av1/encoder/x86/av1_highbd_quantize_avx2.c"
|
||||
"${AOM_ROOT}/av1/encoder/x86/error_intrin_avx2.c"
|
||||
"${AOM_ROOT}/av1/encoder/x86/hybrid_fwd_txfm_avx2.c")
|
||||
|
||||
|
|
@ -207,17 +218,7 @@ set(AOM_AV1_ENCODER_INTRIN_MSA
|
|||
if (CONFIG_HIGHBITDEPTH)
|
||||
set(AOM_AV1_COMMON_INTRIN_SSE4_1
|
||||
${AOM_AV1_COMMON_INTRIN_SSE4_1}
|
||||
"${AOM_ROOT}/av1/common/x86/av1_highbd_convolve_sse4.c"
|
||||
"${AOM_ROOT}/av1/common/x86/highbd_inv_txfm_sse4.c")
|
||||
|
||||
set(AOM_AV1_COMMON_INTRIN_AVX2
|
||||
${AOM_AV1_COMMON_INTRIN_AVX2}
|
||||
"${AOM_ROOT}/av1/common/x86/highbd_inv_txfm_avx2.c")
|
||||
|
||||
set(AOM_AV1_ENCODER_INTRIN_SSE4_1
|
||||
${AOM_AV1_ENCODER_INTRIN_SSE4_1}
|
||||
"${AOM_ROOT}/av1/encoder/x86/av1_highbd_quantize_sse4.c"
|
||||
"${AOM_ROOT}/av1/encoder/x86/highbd_fwd_txfm_sse4.c")
|
||||
"${AOM_ROOT}/av1/common/x86/av1_highbd_convolve_sse4.c")
|
||||
else ()
|
||||
set(AOM_AV1_COMMON_INTRIN_NEON
|
||||
${AOM_AV1_COMMON_INTRIN_NEON}
|
||||
|
|
@ -234,7 +235,6 @@ if (CONFIG_CDEF)
|
|||
set(AOM_AV1_COMMON_SOURCES
|
||||
${AOM_AV1_COMMON_SOURCES}
|
||||
"${AOM_ROOT}/av1/common/clpf.c"
|
||||
"${AOM_ROOT}/av1/common/clpf.h"
|
||||
"${AOM_ROOT}/av1/common/clpf_simd.h"
|
||||
"${AOM_ROOT}/av1/common/cdef_simd.h"
|
||||
"${AOM_ROOT}/av1/common/cdef.c"
|
||||
|
|
@ -268,6 +268,12 @@ if (CONFIG_CDEF)
|
|||
"${AOM_ROOT}/av1/common/od_dering_neon.c")
|
||||
endif ()
|
||||
|
||||
if (CONFIG_CONVOLVE_ROUND)
|
||||
set(AOM_AV1_COMMON_INTRIN_AVX2
|
||||
${AOM_AV1_COMMON_INTRIN_AVX2}
|
||||
"${AOM_ROOT}/av1/common/x86/convolve_avx2.c")
|
||||
endif ()
|
||||
|
||||
if (CONFIG_EXT_INTER)
|
||||
set(AOM_AV1_ENCODER_SOURCES
|
||||
${AOM_AV1_ENCODER_SOURCES}
|
||||
|
|
@ -442,25 +448,33 @@ endif ()
|
|||
# this function is called.
|
||||
function (setup_av1_targets)
|
||||
add_library(aom_av1_common OBJECT ${AOM_AV1_COMMON_SOURCES})
|
||||
set(AOM_LIB_TARGETS ${AOM_LIB_TARGETS} aom_av1_common)
|
||||
target_sources(aom PUBLIC $<TARGET_OBJECTS:aom_av1_common>)
|
||||
list(APPEND AOM_LIB_TARGETS aom_av1_common)
|
||||
|
||||
create_dummy_source_file("aom_av1" "c" "dummy_source_file")
|
||||
add_library(aom_av1 OBJECT "${dummy_source_file}")
|
||||
target_sources(aom PRIVATE $<TARGET_OBJECTS:aom_av1_common>)
|
||||
list(APPEND AOM_LIB_TARGETS aom_av1)
|
||||
|
||||
# Not all generators support libraries consisting only of object files. Add a
|
||||
# dummy source file to the aom_av1 target.
|
||||
add_dummy_source_file_to_target("aom_av1" "c")
|
||||
|
||||
if (CONFIG_AV1_DECODER)
|
||||
add_library(aom_av1_decoder OBJECT ${AOM_AV1_DECODER_SOURCES})
|
||||
set(AOM_LIB_TARGETS ${AOM_LIB_TARGETS} aom_av1_decoder)
|
||||
target_sources(aom PUBLIC $<TARGET_OBJECTS:aom_av1_decoder>)
|
||||
target_sources(aom PRIVATE $<TARGET_OBJECTS:aom_av1_decoder>)
|
||||
endif ()
|
||||
|
||||
if (CONFIG_AV1_ENCODER)
|
||||
add_library(aom_av1_encoder OBJECT ${AOM_AV1_ENCODER_SOURCES})
|
||||
set(AOM_LIB_TARGETS ${AOM_LIB_TARGETS} aom_av1_encoder)
|
||||
target_sources(aom PUBLIC $<TARGET_OBJECTS:aom_av1_encoder>)
|
||||
target_sources(aom PRIVATE $<TARGET_OBJECTS:aom_av1_encoder>)
|
||||
endif ()
|
||||
|
||||
if (HAVE_SSE2)
|
||||
require_flag_nomsvc("-msse2" NO)
|
||||
add_intrinsics_object_library("-msse2" "sse2" "aom_av1_common"
|
||||
"AOM_AV1_COMMON_INTRIN_SSE2")
|
||||
"AOM_AV1_COMMON_INTRIN_SSE2" "aom")
|
||||
if (CONFIG_AV1_DECODER)
|
||||
if (AOM_AV1_DECODER_ASM_SSE2)
|
||||
add_asm_library("aom_av1_decoder_sse2" "AOM_AV1_DECODER_ASM_SSE2" "aom")
|
||||
|
|
@ -468,39 +482,39 @@ function (setup_av1_targets)
|
|||
|
||||
if (AOM_AV1_DECODER_INTRIN_SSE2)
|
||||
add_intrinsics_object_library("-msse2" "sse2" "aom_av1_decoder"
|
||||
"AOM_AV1_DECODER_INTRIN_SSE2")
|
||||
"AOM_AV1_DECODER_INTRIN_SSE2" "aom")
|
||||
endif ()
|
||||
endif ()
|
||||
|
||||
if (CONFIG_AV1_ENCODER)
|
||||
add_asm_library("aom_av1_encoder_sse2" "AOM_AV1_ENCODER_ASM_SSE2" "aom")
|
||||
add_intrinsics_object_library("-msse2" "sse2" "aom_av1_encoder"
|
||||
"AOM_AV1_ENCODER_INTRIN_SSE2")
|
||||
"AOM_AV1_ENCODER_INTRIN_SSE2" "aom")
|
||||
endif ()
|
||||
endif ()
|
||||
|
||||
if (HAVE_SSSE3)
|
||||
require_flag_nomsvc("-mssse3" NO)
|
||||
add_intrinsics_object_library("-mssse3" "ssse3" "aom_av1_common"
|
||||
"AOM_AV1_COMMON_INTRIN_SSSE3")
|
||||
"AOM_AV1_COMMON_INTRIN_SSSE3" "aom")
|
||||
|
||||
if (CONFIG_AV1_DECODER)
|
||||
if (AOM_AV1_DECODER_INTRIN_SSSE3)
|
||||
add_intrinsics_object_library("-mssse3" "ssse3" "aom_av1_decoder"
|
||||
"AOM_AV1_DECODER_INTRIN_SSSE3")
|
||||
"AOM_AV1_DECODER_INTRIN_SSSE3" "aom")
|
||||
endif ()
|
||||
endif ()
|
||||
|
||||
if (CONFIG_AV1_ENCODER)
|
||||
add_intrinsics_object_library("-mssse3" "ssse3" "aom_av1_encoder"
|
||||
"AOM_AV1_ENCODER_INTRIN_SSSE3")
|
||||
"AOM_AV1_ENCODER_INTRIN_SSSE3" "aom")
|
||||
endif ()
|
||||
endif ()
|
||||
|
||||
if (HAVE_SSE4_1)
|
||||
require_flag_nomsvc("-msse4.1" NO)
|
||||
add_intrinsics_object_library("-msse4.1" "sse4" "aom_av1_common"
|
||||
"AOM_AV1_COMMON_INTRIN_SSE4_1")
|
||||
"AOM_AV1_COMMON_INTRIN_SSE4_1" "aom")
|
||||
|
||||
if (CONFIG_AV1_ENCODER)
|
||||
if ("${AOM_TARGET_CPU}" STREQUAL "x86_64")
|
||||
|
|
@ -510,7 +524,7 @@ function (setup_av1_targets)
|
|||
|
||||
if (AOM_AV1_ENCODER_INTRIN_SSE4_1)
|
||||
add_intrinsics_object_library("-msse4.1" "sse4" "aom_av1_encoder"
|
||||
"AOM_AV1_ENCODER_INTRIN_SSE4_1")
|
||||
"AOM_AV1_ENCODER_INTRIN_SSE4_1" "aom")
|
||||
endif ()
|
||||
endif ()
|
||||
endif ()
|
||||
|
|
@ -518,11 +532,11 @@ function (setup_av1_targets)
|
|||
if (HAVE_AVX2)
|
||||
require_flag_nomsvc("-mavx2" NO)
|
||||
add_intrinsics_object_library("-mavx2" "avx2" "aom_av1_common"
|
||||
"AOM_AV1_COMMON_INTRIN_AVX2")
|
||||
"AOM_AV1_COMMON_INTRIN_AVX2" "aom")
|
||||
|
||||
if (CONFIG_AV1_ENCODER)
|
||||
add_intrinsics_object_library("-mavx2" "avx2" "aom_av1_encoder"
|
||||
"AOM_AV1_ENCODER_INTRIN_AVX2")
|
||||
"AOM_AV1_ENCODER_INTRIN_AVX2" "aom")
|
||||
endif ()
|
||||
endif ()
|
||||
|
||||
|
|
@ -531,29 +545,32 @@ function (setup_av1_targets)
|
|||
add_intrinsics_object_library("${AOM_INTRIN_NEON_FLAG}"
|
||||
"neon"
|
||||
"aom_av1_common"
|
||||
"AOM_AV1_COMMON_INTRIN_NEON")
|
||||
"AOM_AV1_COMMON_INTRIN_NEON" "aom")
|
||||
endif ()
|
||||
|
||||
if (AOM_AV1_ENCODER_INTRIN_NEON)
|
||||
add_intrinsics_object_library("${AOM_INTRIN_NEON_FLAG}"
|
||||
"neon"
|
||||
"aom_av1_encoder"
|
||||
"AOM_AV1_ENCODER_INTRIN_NEON")
|
||||
"AOM_AV1_ENCODER_INTRIN_NEON" "aom")
|
||||
endif ()
|
||||
endif ()
|
||||
|
||||
if (HAVE_DSPR2)
|
||||
add_intrinsics_object_library("" "dspr2" "aom_av1_common"
|
||||
"AOM_AV1_COMMON_INTRIN_DSPR2")
|
||||
"AOM_AV1_COMMON_INTRIN_DSPR2" "aom")
|
||||
endif ()
|
||||
|
||||
if (HAVE_MSA)
|
||||
add_intrinsics_object_library("" "msa" "aom_av1_common"
|
||||
"AOM_AV1_COMMON_INTRIN_MSA")
|
||||
"AOM_AV1_COMMON_INTRIN_MSA" "aom")
|
||||
add_intrinsics_object_library("" "msa" "aom_av1_encoder"
|
||||
"AOM_AV1_ENCODER_INTRIN_MSA")
|
||||
"AOM_AV1_ENCODER_INTRIN_MSA" "aom")
|
||||
endif ()
|
||||
|
||||
target_sources(aom PRIVATE $<TARGET_OBJECTS:aom_dsp>)
|
||||
target_sources(aom PRIVATE $<TARGET_OBJECTS:aom_scale>)
|
||||
|
||||
# Pass the new lib targets up to the parent scope instance of
|
||||
# $AOM_LIB_TARGETS.
|
||||
set(AOM_LIB_TARGETS ${AOM_LIB_TARGETS} PARENT_SCOPE)
|
||||
|
|
|
|||
14
third_party/aom/av1/av1_common.mk
vendored
14
third_party/aom/av1/av1_common.mk
vendored
|
|
@ -24,6 +24,8 @@ AV1_COMMON_SRCS-yes += common/frame_buffers.h
|
|||
AV1_COMMON_SRCS-yes += common/alloccommon.h
|
||||
AV1_COMMON_SRCS-yes += common/blockd.h
|
||||
AV1_COMMON_SRCS-yes += common/common.h
|
||||
AV1_COMMON_SRCS-yes += common/daala_tx.c
|
||||
AV1_COMMON_SRCS-yes += common/daala_tx.h
|
||||
AV1_COMMON_SRCS-yes += common/entropy.h
|
||||
AV1_COMMON_SRCS-yes += common/entropymode.h
|
||||
AV1_COMMON_SRCS-yes += common/entropymv.h
|
||||
|
|
@ -71,6 +73,7 @@ AV1_COMMON_SRCS-yes += common/av1_fwd_txfm2d.c
|
|||
AV1_COMMON_SRCS-yes += common/av1_fwd_txfm1d_cfg.h
|
||||
AV1_COMMON_SRCS-yes += common/av1_inv_txfm2d.c
|
||||
AV1_COMMON_SRCS-yes += common/av1_inv_txfm1d_cfg.h
|
||||
AV1_COMMON_SRCS-$(HAVE_AVX2) += common/x86/convolve_avx2.c
|
||||
AV1_COMMON_SRCS-$(HAVE_SSSE3) += common/x86/av1_convolve_ssse3.c
|
||||
ifeq ($(CONFIG_HIGHBITDEPTH),yes)
|
||||
AV1_COMMON_SRCS-$(HAVE_SSE4_1) += common/x86/av1_highbd_convolve_sse4.c
|
||||
|
|
@ -88,7 +91,6 @@ AV1_COMMON_SRCS-yes += common/warped_motion.c
|
|||
endif
|
||||
ifeq ($(CONFIG_CDEF),yes)
|
||||
AV1_COMMON_SRCS-yes += common/clpf.c
|
||||
AV1_COMMON_SRCS-yes += common/clpf.h
|
||||
AV1_COMMON_SRCS-yes += common/clpf_simd.h
|
||||
AV1_COMMON_SRCS-yes += common/cdef_simd.h
|
||||
AV1_COMMON_SRCS-$(HAVE_SSE2) += common/clpf_sse2.c
|
||||
|
|
@ -154,11 +156,10 @@ AV1_COMMON_SRCS-$(HAVE_SSE4_1) += common/x86/av1_txfm1d_sse4.h
|
|||
AV1_COMMON_SRCS-$(HAVE_SSE4_1) += common/x86/av1_fwd_txfm1d_sse4.c
|
||||
AV1_COMMON_SRCS-$(HAVE_SSE4_1) += common/x86/av1_fwd_txfm2d_sse4.c
|
||||
endif
|
||||
ifeq ($(CONFIG_HIGHBITDEPTH),yes)
|
||||
|
||||
AV1_COMMON_SRCS-$(HAVE_SSE4_1) += common/x86/highbd_txfm_utility_sse4.h
|
||||
AV1_COMMON_SRCS-$(HAVE_SSE4_1) += common/x86/highbd_inv_txfm_sse4.c
|
||||
AV1_COMMON_SRCS-$(HAVE_AVX2) += common/x86/highbd_inv_txfm_avx2.c
|
||||
endif
|
||||
|
||||
ifneq ($(CONFIG_HIGHBITDEPTH),yes)
|
||||
AV1_COMMON_SRCS-$(HAVE_NEON) += common/arm/neon/iht4x4_add_neon.c
|
||||
|
|
@ -177,4 +178,11 @@ AV1_COMMON_SRCS-$(HAVE_SSSE3) += common/x86/highbd_warp_plane_ssse3.c
|
|||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_CONVOLVE_ROUND),yes)
|
||||
AV1_COMMON_SRCS-$(HAVE_SSE2) += common/x86/convolve_2d_sse2.c
|
||||
ifeq ($(CONFIG_HIGHBITDEPTH),yes)
|
||||
AV1_COMMON_SRCS-$(HAVE_SSSE3) += common/x86/highbd_convolve_2d_ssse3.c
|
||||
endif
|
||||
endif
|
||||
|
||||
$(eval $(call rtcd_h_template,av1_rtcd,av1/common/av1_rtcd_defs.pl))
|
||||
|
|
|
|||
12
third_party/aom/av1/av1_cx.mk
vendored
12
third_party/aom/av1/av1_cx.mk
vendored
|
|
@ -21,6 +21,8 @@ AV1_CX_SRCS-yes += av1_cx_iface.c
|
|||
AV1_CX_SRCS-yes += encoder/av1_quantize.c
|
||||
AV1_CX_SRCS-yes += encoder/av1_quantize.h
|
||||
AV1_CX_SRCS-yes += encoder/bitstream.c
|
||||
AV1_CX_SRCS-$(CONFIG_BGSPRITE) += encoder/bgsprite.c
|
||||
AV1_CX_SRCS-$(CONFIG_BGSPRITE) += encoder/bgsprite.h
|
||||
AV1_CX_SRCS-yes += encoder/context_tree.c
|
||||
AV1_CX_SRCS-yes += encoder/context_tree.h
|
||||
AV1_CX_SRCS-yes += encoder/cost.h
|
||||
|
|
@ -121,10 +123,12 @@ AV1_CX_SRCS-yes += encoder/encint.h
|
|||
endif
|
||||
|
||||
AV1_CX_SRCS-$(HAVE_SSE2) += encoder/x86/av1_quantize_sse2.c
|
||||
AV1_CX_SRCS-$(HAVE_AVX2) += encoder/x86/av1_quantize_avx2.c
|
||||
AV1_CX_SRCS-$(HAVE_SSE2) += encoder/x86/temporal_filter_apply_sse2.asm
|
||||
ifeq ($(CONFIG_HIGHBITDEPTH),yes)
|
||||
|
||||
AV1_CX_SRCS-$(HAVE_SSE2) += encoder/x86/highbd_block_error_intrin_sse2.c
|
||||
endif
|
||||
AV1_CX_SRCS-$(HAVE_AVX2) += encoder/x86/av1_highbd_quantize_avx2.c
|
||||
|
||||
|
||||
AV1_CX_SRCS-$(HAVE_SSE2) += encoder/x86/dct_sse2.asm
|
||||
AV1_CX_SRCS-$(HAVE_SSE2) += encoder/x86/error_sse2.asm
|
||||
|
|
@ -136,10 +140,10 @@ endif
|
|||
AV1_CX_SRCS-$(HAVE_SSE2) += encoder/x86/dct_intrin_sse2.c
|
||||
AV1_CX_SRCS-$(HAVE_SSSE3) += encoder/x86/dct_ssse3.c
|
||||
AV1_CX_SRCS-$(HAVE_AVX2) += encoder/x86/hybrid_fwd_txfm_avx2.c
|
||||
ifeq ($(CONFIG_HIGHBITDEPTH),yes)
|
||||
|
||||
AV1_CX_SRCS-$(HAVE_SSE4_1) += encoder/x86/av1_highbd_quantize_sse4.c
|
||||
|
||||
AV1_CX_SRCS-$(HAVE_SSE4_1) += encoder/x86/highbd_fwd_txfm_sse4.c
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_EXT_INTER),yes)
|
||||
AV1_CX_SRCS-yes += encoder/wedge_utils.c
|
||||
|
|
|
|||
385
third_party/aom/av1/av1_cx_iface.c
vendored
385
third_party/aom/av1/av1_cx_iface.c
vendored
|
|
@ -55,10 +55,8 @@ struct av1_extracfg {
|
|||
unsigned int qm_min;
|
||||
unsigned int qm_max;
|
||||
#endif
|
||||
#if CONFIG_TILE_GROUPS
|
||||
unsigned int num_tg;
|
||||
unsigned int mtu_size;
|
||||
#endif
|
||||
#if CONFIG_TEMPMV_SIGNALING
|
||||
unsigned int disable_tempmv;
|
||||
#endif
|
||||
|
|
@ -71,6 +69,10 @@ struct av1_extracfg {
|
|||
aom_bit_depth_t bit_depth;
|
||||
aom_tune_content content;
|
||||
aom_color_space_t color_space;
|
||||
#if CONFIG_COLORSPACE_HEADERS
|
||||
aom_transfer_function_t transfer_function;
|
||||
aom_chroma_sample_position_t chroma_sample_position;
|
||||
#endif
|
||||
int color_range;
|
||||
int render_width;
|
||||
int render_height;
|
||||
|
|
@ -79,7 +81,7 @@ struct av1_extracfg {
|
|||
int ans_window_size_log2;
|
||||
#endif
|
||||
#if CONFIG_EXT_TILE
|
||||
unsigned int tile_encoding_mode;
|
||||
unsigned int single_tile_decoding;
|
||||
#endif // CONFIG_EXT_TILE
|
||||
|
||||
unsigned int motion_vector_unit_test;
|
||||
|
|
@ -94,15 +96,10 @@ static struct av1_extracfg default_extra_cfg = {
|
|||
0, // noise_sensitivity
|
||||
0, // sharpness
|
||||
0, // static_thresh
|
||||
#if CONFIG_EXT_TILE
|
||||
UINT_MAX, // tile_columns
|
||||
UINT_MAX, // tile_rows
|
||||
#else
|
||||
0, // tile_columns
|
||||
0, // tile_rows
|
||||
#endif // CONFIG_EXT_TILE
|
||||
0, // tile_columns
|
||||
0, // tile_rows
|
||||
#if CONFIG_DEPENDENT_HORZTILES
|
||||
0, // Depdendent Horizontal tiles
|
||||
0, // Dependent Horizontal tiles
|
||||
#endif
|
||||
#if CONFIG_LOOPFILTERING_ACROSS_TILES
|
||||
1, // loop_filter_across_tiles_enabled
|
||||
|
|
@ -122,10 +119,8 @@ static struct av1_extracfg default_extra_cfg = {
|
|||
DEFAULT_QM_FIRST, // qm_min
|
||||
DEFAULT_QM_LAST, // qm_max
|
||||
#endif
|
||||
#if CONFIG_TILE_GROUPS
|
||||
1, // max number of tile groups
|
||||
0, // mtu_size
|
||||
#endif
|
||||
#if CONFIG_TEMPMV_SIGNALING
|
||||
0, // disable temporal mv prediction
|
||||
#endif
|
||||
|
|
@ -134,10 +129,14 @@ static struct av1_extracfg default_extra_cfg = {
|
|||
#if CONFIG_EXT_DELTA_Q
|
||||
NO_DELTA_Q, // deltaq_mode
|
||||
#endif
|
||||
CONFIG_XIPHRC, // frame_periodic_delta_q
|
||||
AOM_BITS_8, // Bit depth
|
||||
AOM_CONTENT_DEFAULT, // content
|
||||
AOM_CS_UNKNOWN, // color space
|
||||
CONFIG_XIPHRC, // frame_periodic_delta_q
|
||||
AOM_BITS_8, // Bit depth
|
||||
AOM_CONTENT_DEFAULT, // content
|
||||
AOM_CS_UNKNOWN, // color space
|
||||
#if CONFIG_COLORSPACE_HEADERS
|
||||
AOM_TF_UNKNOWN, // transfer function
|
||||
AOM_CSP_UNKNOWN, // chroma sample position
|
||||
#endif
|
||||
0, // color range
|
||||
0, // render width
|
||||
0, // render height
|
||||
|
|
@ -146,7 +145,7 @@ static struct av1_extracfg default_extra_cfg = {
|
|||
23, // ans_window_size_log2
|
||||
#endif
|
||||
#if CONFIG_EXT_TILE
|
||||
0, // Tile encoding mode is TILE_NORMAL by default.
|
||||
0, // Single tile decoding is off by default.
|
||||
#endif // CONFIG_EXT_TILE
|
||||
|
||||
0, // motion_vector_unit_test
|
||||
|
|
@ -235,10 +234,7 @@ static aom_codec_err_t validate_config(aom_codec_alg_priv_t *ctx,
|
|||
RANGE_CHECK_HI(cfg, rc_overshoot_pct, 100);
|
||||
RANGE_CHECK_HI(cfg, rc_2pass_vbr_bias_pct, 100);
|
||||
RANGE_CHECK(cfg, kf_mode, AOM_KF_DISABLED, AOM_KF_AUTO);
|
||||
RANGE_CHECK_BOOL(cfg, rc_resize_allowed);
|
||||
RANGE_CHECK_HI(cfg, rc_dropframe_thresh, 100);
|
||||
RANGE_CHECK_HI(cfg, rc_resize_up_thresh, 100);
|
||||
RANGE_CHECK_HI(cfg, rc_resize_down_thresh, 100);
|
||||
RANGE_CHECK(cfg, g_pass, AOM_RC_ONE_PASS, AOM_RC_LAST_PASS);
|
||||
RANGE_CHECK_HI(extra_cfg, min_gf_interval, MAX_LAG_BUFFERS - 1);
|
||||
RANGE_CHECK_HI(extra_cfg, max_gf_interval, MAX_LAG_BUFFERS - 1);
|
||||
|
|
@ -250,10 +246,18 @@ static aom_codec_err_t validate_config(aom_codec_alg_priv_t *ctx,
|
|||
(MAX_LAG_BUFFERS - 1));
|
||||
}
|
||||
|
||||
if (cfg->rc_resize_allowed == 1) {
|
||||
RANGE_CHECK_HI(cfg, rc_scaled_width, cfg->g_w);
|
||||
RANGE_CHECK_HI(cfg, rc_scaled_height, cfg->g_h);
|
||||
}
|
||||
RANGE_CHECK_HI(cfg, rc_resize_mode, RESIZE_DYNAMIC);
|
||||
RANGE_CHECK(cfg, rc_resize_numerator, SCALE_DENOMINATOR / 2,
|
||||
SCALE_DENOMINATOR);
|
||||
RANGE_CHECK(cfg, rc_resize_kf_numerator, SCALE_DENOMINATOR / 2,
|
||||
SCALE_DENOMINATOR);
|
||||
#if CONFIG_FRAME_SUPERRES
|
||||
RANGE_CHECK_HI(cfg, rc_superres_mode, SUPERRES_DYNAMIC);
|
||||
RANGE_CHECK(cfg, rc_superres_numerator, SCALE_DENOMINATOR / 2,
|
||||
SCALE_DENOMINATOR);
|
||||
RANGE_CHECK(cfg, rc_superres_kf_numerator, SCALE_DENOMINATOR / 2,
|
||||
SCALE_DENOMINATOR);
|
||||
#endif // CONFIG_FRAME_SUPERRES
|
||||
|
||||
// AV1 does not support a lower bound on the keyframe interval in
|
||||
// automatic keyframe placement mode.
|
||||
|
|
@ -273,28 +277,34 @@ static aom_codec_err_t validate_config(aom_codec_alg_priv_t *ctx,
|
|||
RANGE_CHECK(extra_cfg, superblock_size, AOM_SUPERBLOCK_SIZE_64X64,
|
||||
AOM_SUPERBLOCK_SIZE_DYNAMIC);
|
||||
#if CONFIG_EXT_TILE
|
||||
RANGE_CHECK_HI(cfg, large_scale_tile, 1);
|
||||
RANGE_CHECK_HI(extra_cfg, single_tile_decoding, 1);
|
||||
|
||||
if (cfg->large_scale_tile) {
|
||||
// TODO(any): Waring. If CONFIG_EXT_TILE is true, tile_columns really
|
||||
// means tile_width, and tile_rows really means tile_hight. The interface
|
||||
// should be sanitized.
|
||||
#if CONFIG_EXT_PARTITION
|
||||
if (extra_cfg->superblock_size != AOM_SUPERBLOCK_SIZE_64X64) {
|
||||
if (extra_cfg->tile_columns != UINT_MAX)
|
||||
RANGE_CHECK(extra_cfg, tile_columns, 1, 32);
|
||||
if (extra_cfg->tile_rows != UINT_MAX)
|
||||
RANGE_CHECK(extra_cfg, tile_rows, 1, 32);
|
||||
} else
|
||||
if (extra_cfg->superblock_size != AOM_SUPERBLOCK_SIZE_64X64) {
|
||||
if (extra_cfg->tile_columns != 0)
|
||||
RANGE_CHECK(extra_cfg, tile_columns, 1, 32);
|
||||
if (extra_cfg->tile_rows != 0) RANGE_CHECK(extra_cfg, tile_rows, 1, 32);
|
||||
} else {
|
||||
#endif // CONFIG_EXT_PARTITION
|
||||
{
|
||||
if (extra_cfg->tile_columns != UINT_MAX)
|
||||
RANGE_CHECK(extra_cfg, tile_columns, 1, 64);
|
||||
if (extra_cfg->tile_rows != UINT_MAX)
|
||||
RANGE_CHECK(extra_cfg, tile_rows, 1, 64);
|
||||
}
|
||||
RANGE_CHECK_HI(extra_cfg, tile_encoding_mode, 1);
|
||||
#else
|
||||
RANGE_CHECK_HI(extra_cfg, tile_columns, 6);
|
||||
RANGE_CHECK_HI(extra_cfg, tile_rows, 2);
|
||||
if (extra_cfg->tile_columns != 0)
|
||||
RANGE_CHECK(extra_cfg, tile_columns, 1, 64);
|
||||
if (extra_cfg->tile_rows != 0) RANGE_CHECK(extra_cfg, tile_rows, 1, 64);
|
||||
#if CONFIG_EXT_PARTITION
|
||||
}
|
||||
#endif // CONFIG_EXT_PARTITION
|
||||
} else {
|
||||
#endif // CONFIG_EXT_TILE
|
||||
RANGE_CHECK_HI(extra_cfg, tile_columns, 6);
|
||||
RANGE_CHECK_HI(extra_cfg, tile_rows, 2);
|
||||
#if CONFIG_EXT_TILE
|
||||
}
|
||||
#endif // CONFIG_EXT_TILE
|
||||
|
||||
#if CONFIG_DEPENDENT_HORZTILES
|
||||
RANGE_CHECK_HI(extra_cfg, dependent_horz_tiles, 1);
|
||||
#endif
|
||||
|
|
@ -354,7 +364,14 @@ static aom_codec_err_t validate_config(aom_codec_alg_priv_t *ctx,
|
|||
cfg->g_bit_depth == AOM_BITS_8) {
|
||||
ERROR("Codec bit-depth 8 not supported in profile > 1");
|
||||
}
|
||||
#if CONFIG_COLORSPACE_HEADERS
|
||||
RANGE_CHECK(extra_cfg, color_space, AOM_CS_UNKNOWN, AOM_CS_ICTCP);
|
||||
RANGE_CHECK(extra_cfg, transfer_function, AOM_TF_UNKNOWN, AOM_TF_HLG);
|
||||
RANGE_CHECK(extra_cfg, chroma_sample_position, AOM_CSP_UNKNOWN,
|
||||
AOM_CSP_COLOCATED);
|
||||
#else
|
||||
RANGE_CHECK(extra_cfg, color_space, AOM_CS_UNKNOWN, AOM_CS_SRGB);
|
||||
#endif
|
||||
RANGE_CHECK(extra_cfg, color_range, 0, 1);
|
||||
#if CONFIG_ANS && ANS_MAX_SYMBOLS
|
||||
RANGE_CHECK(extra_cfg, ans_window_size_log2, 8, 23);
|
||||
|
|
@ -461,10 +478,12 @@ static aom_codec_err_t set_encoder_config(
|
|||
oxcf->qm_maxlevel = extra_cfg->qm_max;
|
||||
#endif
|
||||
|
||||
#if CONFIG_TILE_GROUPS
|
||||
oxcf->num_tile_groups = extra_cfg->num_tg;
|
||||
#if CONFIG_EXT_TILE
|
||||
// In large-scale tile encoding mode, num_tile_groups is always 1.
|
||||
if (cfg->large_scale_tile) oxcf->num_tile_groups = 1;
|
||||
#endif // CONFIG_EXT_TILE
|
||||
oxcf->mtu = extra_cfg->mtu_size;
|
||||
#endif
|
||||
|
||||
#if CONFIG_TEMPMV_SIGNALING
|
||||
oxcf->disable_tempmv = extra_cfg->disable_tempmv;
|
||||
|
|
@ -472,26 +491,23 @@ static aom_codec_err_t set_encoder_config(
|
|||
oxcf->under_shoot_pct = cfg->rc_undershoot_pct;
|
||||
oxcf->over_shoot_pct = cfg->rc_overshoot_pct;
|
||||
|
||||
oxcf->scaled_frame_width = cfg->rc_scaled_width;
|
||||
oxcf->scaled_frame_height = cfg->rc_scaled_height;
|
||||
if (cfg->rc_resize_allowed == 1) {
|
||||
oxcf->resize_mode =
|
||||
(oxcf->scaled_frame_width == 0 || oxcf->scaled_frame_height == 0)
|
||||
? RESIZE_DYNAMIC
|
||||
: RESIZE_FIXED;
|
||||
} else {
|
||||
oxcf->resize_mode = (RESIZE_MODE)cfg->rc_resize_mode;
|
||||
oxcf->resize_scale_numerator = (uint8_t)cfg->rc_resize_numerator;
|
||||
oxcf->resize_kf_scale_numerator = (uint8_t)cfg->rc_resize_kf_numerator;
|
||||
if (oxcf->resize_mode == RESIZE_FIXED &&
|
||||
oxcf->resize_scale_numerator == SCALE_DENOMINATOR &&
|
||||
oxcf->resize_kf_scale_numerator == SCALE_DENOMINATOR)
|
||||
oxcf->resize_mode = RESIZE_NONE;
|
||||
}
|
||||
|
||||
// Initialize to input resolution if not specified.
|
||||
if (oxcf->resize_mode != RESIZE_FIXED) {
|
||||
oxcf->scaled_frame_width = oxcf->width;
|
||||
oxcf->scaled_frame_height = oxcf->height;
|
||||
}
|
||||
|
||||
#if CONFIG_FRAME_SUPERRES
|
||||
oxcf->superres_enabled = 1; // TODO(afergs): Check the config
|
||||
#endif // CONFIG_FRAME_SUPERRES
|
||||
oxcf->superres_mode = (SUPERRES_MODE)cfg->rc_superres_mode;
|
||||
oxcf->superres_scale_numerator = (uint8_t)cfg->rc_superres_numerator;
|
||||
oxcf->superres_kf_scale_numerator = (uint8_t)cfg->rc_superres_kf_numerator;
|
||||
if (oxcf->superres_mode == SUPERRES_FIXED &&
|
||||
oxcf->superres_scale_numerator == SCALE_DENOMINATOR &&
|
||||
oxcf->superres_kf_scale_numerator == SCALE_DENOMINATOR)
|
||||
oxcf->superres_mode = SUPERRES_NONE;
|
||||
#endif // CONFIG_FRAME_SUPERRES
|
||||
|
||||
oxcf->maximum_buffer_size_ms = is_vbr ? 240000 : cfg->rc_buf_sz;
|
||||
oxcf->starting_buffer_level_ms = is_vbr ? 60000 : cfg->rc_buf_initial_sz;
|
||||
|
|
@ -523,6 +539,10 @@ static aom_codec_err_t set_encoder_config(
|
|||
#endif
|
||||
|
||||
oxcf->color_space = extra_cfg->color_space;
|
||||
#if CONFIG_COLORSPACE_HEADERS
|
||||
oxcf->transfer_function = extra_cfg->transfer_function;
|
||||
oxcf->chroma_sample_position = extra_cfg->chroma_sample_position;
|
||||
#endif
|
||||
oxcf->color_range = extra_cfg->color_range;
|
||||
oxcf->render_width = extra_cfg->render_width;
|
||||
oxcf->render_height = extra_cfg->render_height;
|
||||
|
|
@ -542,23 +562,38 @@ static aom_codec_err_t set_encoder_config(
|
|||
#endif // CONFIG_ANS && ANS_MAX_SYMBOLS
|
||||
|
||||
#if CONFIG_EXT_TILE
|
||||
{
|
||||
oxcf->large_scale_tile = cfg->large_scale_tile;
|
||||
oxcf->single_tile_decoding =
|
||||
(oxcf->large_scale_tile) ? extra_cfg->single_tile_decoding : 0;
|
||||
if (oxcf->large_scale_tile) {
|
||||
#if CONFIG_EXT_PARTITION
|
||||
const unsigned int max =
|
||||
extra_cfg->superblock_size == AOM_SUPERBLOCK_SIZE_64X64 ? 64 : 32;
|
||||
#else
|
||||
const unsigned int max = 64;
|
||||
#endif // CONFIG_EXT_PARTITION
|
||||
oxcf->tile_columns = AOMMIN(extra_cfg->tile_columns, max);
|
||||
oxcf->tile_rows = AOMMIN(extra_cfg->tile_rows, max);
|
||||
oxcf->tile_encoding_mode = extra_cfg->tile_encoding_mode;
|
||||
}
|
||||
#else
|
||||
oxcf->tile_columns = extra_cfg->tile_columns;
|
||||
oxcf->tile_rows = extra_cfg->tile_rows;
|
||||
// If tile size is not set, set it to the default value.
|
||||
const unsigned int tc =
|
||||
(!extra_cfg->tile_columns) ? UINT_MAX : extra_cfg->tile_columns;
|
||||
const unsigned int tr =
|
||||
(!extra_cfg->tile_rows) ? UINT_MAX : extra_cfg->tile_rows;
|
||||
|
||||
oxcf->tile_columns = AOMMIN(tc, max);
|
||||
oxcf->tile_rows = AOMMIN(tr, max);
|
||||
} else {
|
||||
#endif // CONFIG_EXT_TILE
|
||||
oxcf->tile_columns = extra_cfg->tile_columns;
|
||||
oxcf->tile_rows = extra_cfg->tile_rows;
|
||||
#if CONFIG_EXT_TILE
|
||||
}
|
||||
#endif // CONFIG_EXT_TILE
|
||||
|
||||
#if CONFIG_DEPENDENT_HORZTILES
|
||||
oxcf->dependent_horz_tiles = extra_cfg->dependent_horz_tiles;
|
||||
oxcf->dependent_horz_tiles =
|
||||
#if CONFIG_EXT_TILE
|
||||
(cfg->large_scale_tile) ? 0 :
|
||||
#endif // CONFIG_EXT_TILE
|
||||
extra_cfg->dependent_horz_tiles;
|
||||
#endif
|
||||
#if CONFIG_LOOPFILTERING_ACROSS_TILES
|
||||
oxcf->loop_filter_across_tiles_enabled =
|
||||
|
|
@ -828,7 +863,6 @@ static aom_codec_err_t ctrl_set_qm_max(aom_codec_alg_priv_t *ctx,
|
|||
}
|
||||
#endif
|
||||
|
||||
#if CONFIG_TILE_GROUPS
|
||||
static aom_codec_err_t ctrl_set_num_tg(aom_codec_alg_priv_t *ctx,
|
||||
va_list args) {
|
||||
struct av1_extracfg extra_cfg = ctx->extra_cfg;
|
||||
|
|
@ -841,7 +875,6 @@ static aom_codec_err_t ctrl_set_mtu(aom_codec_alg_priv_t *ctx, va_list args) {
|
|||
extra_cfg.mtu_size = CAST(AV1E_SET_MTU, args);
|
||||
return update_extra_cfg(ctx, &extra_cfg);
|
||||
}
|
||||
#endif
|
||||
#if CONFIG_TEMPMV_SIGNALING
|
||||
static aom_codec_err_t ctrl_set_disable_tempmv(aom_codec_alg_priv_t *ctx,
|
||||
va_list args) {
|
||||
|
|
@ -859,10 +892,10 @@ static aom_codec_err_t ctrl_set_frame_parallel_decoding_mode(
|
|||
}
|
||||
|
||||
#if CONFIG_EXT_TILE
|
||||
static aom_codec_err_t ctrl_set_tile_encoding_mode(aom_codec_alg_priv_t *ctx,
|
||||
va_list args) {
|
||||
static aom_codec_err_t ctrl_set_single_tile_decoding(aom_codec_alg_priv_t *ctx,
|
||||
va_list args) {
|
||||
struct av1_extracfg extra_cfg = ctx->extra_cfg;
|
||||
extra_cfg.tile_encoding_mode = CAST(AV1E_SET_TILE_ENCODING_MODE, args);
|
||||
extra_cfg.single_tile_decoding = CAST(AV1E_SET_SINGLE_TILE_DECODING, args);
|
||||
return update_extra_cfg(ctx, &extra_cfg);
|
||||
}
|
||||
#endif // CONFIG_EXT_TILE
|
||||
|
|
@ -992,12 +1025,10 @@ static void pick_quickcompress_mode(aom_codec_alg_priv_t *ctx,
|
|||
}
|
||||
|
||||
// Turn on to test if supplemental superframe data breaks decoding
|
||||
// #define TEST_SUPPLEMENTAL_SUPERFRAME_DATA
|
||||
#define TEST_SUPPLEMENTAL_SUPERFRAME_DATA 0
|
||||
|
||||
static int write_superframe_index(aom_codec_alg_priv_t *ctx) {
|
||||
uint8_t marker = 0xc0;
|
||||
unsigned int mask;
|
||||
int mag, index_sz;
|
||||
int i;
|
||||
size_t max_frame_sz = 0;
|
||||
|
||||
assert(ctx->pending_frame_count);
|
||||
|
|
@ -1005,12 +1036,14 @@ static int write_superframe_index(aom_codec_alg_priv_t *ctx) {
|
|||
|
||||
// Add the number of frames to the marker byte
|
||||
marker |= ctx->pending_frame_count - 1;
|
||||
for (i = 0; i < ctx->pending_frame_count - 1; i++) {
|
||||
const size_t frame_sz = (unsigned int)ctx->pending_frame_sizes[i] - 1;
|
||||
max_frame_sz = frame_sz > max_frame_sz ? frame_sz : max_frame_sz;
|
||||
for (int i = 0; i < ctx->pending_frame_count - 1; i++) {
|
||||
const size_t frame_sz = ctx->pending_frame_sizes[i] - 1;
|
||||
max_frame_sz = AOMMAX(frame_sz, max_frame_sz);
|
||||
}
|
||||
|
||||
// Choose the magnitude
|
||||
int mag;
|
||||
unsigned int mask;
|
||||
for (mag = 0, mask = 0xff; mag < 4; mag++) {
|
||||
if (max_frame_sz <= mask) break;
|
||||
mask <<= 8;
|
||||
|
|
@ -1019,43 +1052,43 @@ static int write_superframe_index(aom_codec_alg_priv_t *ctx) {
|
|||
marker |= mag << 3;
|
||||
|
||||
// Write the index
|
||||
index_sz = 2 + (mag + 1) * (ctx->pending_frame_count - 1);
|
||||
if (ctx->pending_cx_data_sz + index_sz < ctx->cx_data_sz) {
|
||||
uint8_t *x = ctx->pending_cx_data + ctx->pending_cx_data_sz;
|
||||
#ifdef TEST_SUPPLEMENTAL_SUPERFRAME_DATA
|
||||
uint8_t buffer[256];
|
||||
uint8_t *x = buffer;
|
||||
|
||||
if (TEST_SUPPLEMENTAL_SUPERFRAME_DATA) {
|
||||
uint8_t marker_test = 0xc0;
|
||||
int mag_test = 2; // 1 - 4
|
||||
int frames_test = 4; // 1 - 8
|
||||
int index_sz_test = 2 + mag_test * frames_test;
|
||||
marker_test |= frames_test - 1;
|
||||
marker_test |= (mag_test - 1) << 3;
|
||||
*x++ = marker_test;
|
||||
for (i = 0; i < mag_test * frames_test; ++i)
|
||||
for (int i = 0; i < mag_test * frames_test; ++i)
|
||||
*x++ = 0; // fill up with arbitrary data
|
||||
*x++ = marker_test;
|
||||
ctx->pending_cx_data_sz += index_sz_test;
|
||||
printf("Added supplemental superframe data\n");
|
||||
#endif
|
||||
|
||||
*x++ = marker;
|
||||
for (i = 0; i < ctx->pending_frame_count - 1; i++) {
|
||||
unsigned int this_sz;
|
||||
int j;
|
||||
|
||||
assert(ctx->pending_frame_sizes[i] > 0);
|
||||
this_sz = (unsigned int)ctx->pending_frame_sizes[i] - 1;
|
||||
for (j = 0; j <= mag; j++) {
|
||||
*x++ = this_sz & 0xff;
|
||||
this_sz >>= 8;
|
||||
}
|
||||
}
|
||||
*x++ = marker;
|
||||
ctx->pending_cx_data_sz += index_sz;
|
||||
#ifdef TEST_SUPPLEMENTAL_SUPERFRAME_DATA
|
||||
index_sz += index_sz_test;
|
||||
#endif
|
||||
}
|
||||
return index_sz;
|
||||
|
||||
*x++ = marker;
|
||||
for (int i = 0; i < ctx->pending_frame_count - 1; i++) {
|
||||
assert(ctx->pending_frame_sizes[i] > 0);
|
||||
unsigned int this_sz = (unsigned int)ctx->pending_frame_sizes[i] - 1;
|
||||
for (int j = 0; j <= mag; j++) {
|
||||
*x++ = this_sz & 0xff;
|
||||
this_sz >>= 8;
|
||||
}
|
||||
}
|
||||
*x++ = marker;
|
||||
|
||||
const size_t index_sz = x - buffer;
|
||||
assert(ctx->pending_cx_data_sz + index_sz < ctx->cx_data_sz);
|
||||
|
||||
// move the frame to make room for the index
|
||||
memmove(ctx->pending_cx_data + index_sz, ctx->pending_cx_data,
|
||||
ctx->pending_cx_data_sz);
|
||||
memcpy(ctx->pending_cx_data, buffer, index_sz);
|
||||
ctx->pending_cx_data_sz += index_sz;
|
||||
|
||||
return (int)index_sz;
|
||||
}
|
||||
|
||||
// av1 uses 10,000,000 ticks/second as time stamp
|
||||
|
|
@ -1091,10 +1124,8 @@ static aom_codec_err_t encoder_encode(aom_codec_alg_priv_t *ctx,
|
|||
unsigned long deadline) {
|
||||
const size_t kMinCompressedSize = 8192;
|
||||
volatile aom_codec_err_t res = AOM_CODEC_OK;
|
||||
volatile aom_enc_frame_flags_t flags = enc_flags;
|
||||
AV1_COMP *const cpi = ctx->cpi;
|
||||
const aom_rational_t *const timebase = &ctx->cfg.g_timebase;
|
||||
size_t data_sz;
|
||||
|
||||
if (cpi == NULL) return AOM_CODEC_INVALID_PARAM;
|
||||
|
||||
|
|
@ -1104,14 +1135,15 @@ static aom_codec_err_t encoder_encode(aom_codec_alg_priv_t *ctx,
|
|||
// failure condition, encoder setup is done fully in init() currently.
|
||||
if (res == AOM_CODEC_OK) {
|
||||
#if CONFIG_EXT_REFS
|
||||
data_sz = ALIGN_POWER_OF_TWO(ctx->cfg.g_w, 5) *
|
||||
ALIGN_POWER_OF_TWO(ctx->cfg.g_h, 5) * get_image_bps(img);
|
||||
size_t data_sz = ALIGN_POWER_OF_TWO(ctx->cfg.g_w, 5) *
|
||||
ALIGN_POWER_OF_TWO(ctx->cfg.g_h, 5) * get_image_bps(img);
|
||||
#else
|
||||
// There's no codec control for multiple alt-refs so check the encoder
|
||||
// instance for its status to determine the compressed data size.
|
||||
data_sz = ALIGN_POWER_OF_TWO(ctx->cfg.g_w, 5) *
|
||||
ALIGN_POWER_OF_TWO(ctx->cfg.g_h, 5) * get_image_bps(img) / 8 *
|
||||
(cpi->multi_arf_allowed ? 8 : 2);
|
||||
size_t data_sz = ALIGN_POWER_OF_TWO(ctx->cfg.g_w, 5) *
|
||||
ALIGN_POWER_OF_TWO(ctx->cfg.g_h, 5) *
|
||||
get_image_bps(img) / 8 *
|
||||
(cpi->multi_arf_allowed ? 8 : 2);
|
||||
#endif // CONFIG_EXT_REFS
|
||||
if (data_sz < kMinCompressedSize) data_sz = kMinCompressedSize;
|
||||
if (ctx->cx_data == NULL || ctx->cx_data_sz < data_sz) {
|
||||
|
|
@ -1128,6 +1160,8 @@ static aom_codec_err_t encoder_encode(aom_codec_alg_priv_t *ctx,
|
|||
pick_quickcompress_mode(ctx, deadline);
|
||||
aom_codec_pkt_list_init(&ctx->pkt_list);
|
||||
|
||||
volatile aom_enc_frame_flags_t flags = enc_flags;
|
||||
|
||||
// Handle Flags
|
||||
if (((flags & AOM_EFLAG_NO_UPD_GF) && (flags & AOM_EFLAG_FORCE_GF)) ||
|
||||
((flags & AOM_EFLAG_NO_UPD_ARF) && (flags & AOM_EFLAG_FORCE_ARF))) {
|
||||
|
|
@ -1155,18 +1189,15 @@ static aom_codec_err_t encoder_encode(aom_codec_alg_priv_t *ctx,
|
|||
}
|
||||
|
||||
if (res == AOM_CODEC_OK) {
|
||||
unsigned int lib_flags = 0;
|
||||
YV12_BUFFER_CONFIG sd;
|
||||
int64_t dst_time_stamp = timebase_units_to_ticks(timebase, pts);
|
||||
int64_t dst_end_time_stamp =
|
||||
timebase_units_to_ticks(timebase, pts + duration);
|
||||
size_t size, cx_data_sz;
|
||||
unsigned char *cx_data;
|
||||
|
||||
// Set up internal flags
|
||||
if (ctx->base.init_flags & AOM_CODEC_USE_PSNR) cpi->b_calculate_psnr = 1;
|
||||
|
||||
if (img != NULL) {
|
||||
YV12_BUFFER_CONFIG sd;
|
||||
res = image2yuvconfig(img, &sd);
|
||||
|
||||
// Store the original flags in to the frame buffer. Will extract the
|
||||
|
|
@ -1178,8 +1209,8 @@ static aom_codec_err_t encoder_encode(aom_codec_alg_priv_t *ctx,
|
|||
ctx->next_frame_flags = 0;
|
||||
}
|
||||
|
||||
cx_data = ctx->cx_data;
|
||||
cx_data_sz = ctx->cx_data_sz;
|
||||
unsigned char *cx_data = ctx->cx_data;
|
||||
size_t cx_data_sz = ctx->cx_data_sz;
|
||||
|
||||
/* Any pending invisible frames? */
|
||||
if (ctx->pending_cx_data) {
|
||||
|
|
@ -1198,8 +1229,10 @@ static aom_codec_err_t encoder_encode(aom_codec_alg_priv_t *ctx,
|
|||
}
|
||||
}
|
||||
|
||||
size_t frame_size;
|
||||
unsigned int lib_flags = 0;
|
||||
while (cx_data_sz >= ctx->cx_data_sz / 2 &&
|
||||
-1 != av1_get_compressed_data(cpi, &lib_flags, &size, cx_data,
|
||||
-1 != av1_get_compressed_data(cpi, &lib_flags, &frame_size, cx_data,
|
||||
&dst_time_stamp, &dst_end_time_stamp,
|
||||
!img)) {
|
||||
#if CONFIG_REFERENCE_BUFFER
|
||||
|
|
@ -1208,47 +1241,45 @@ static aom_codec_err_t encoder_encode(aom_codec_alg_priv_t *ctx,
|
|||
return AOM_CODEC_ERROR;
|
||||
}
|
||||
#endif
|
||||
if (size) {
|
||||
aom_codec_cx_pkt_t pkt;
|
||||
if (!frame_size) continue;
|
||||
|
||||
// Pack invisible frames with the next visible frame
|
||||
if (!cpi->common.show_frame) {
|
||||
if (ctx->pending_cx_data == 0) ctx->pending_cx_data = cx_data;
|
||||
ctx->pending_cx_data_sz += size;
|
||||
ctx->pending_frame_sizes[ctx->pending_frame_count++] = size;
|
||||
cx_data += size;
|
||||
cx_data_sz -= size;
|
||||
if (ctx->pending_cx_data == 0) ctx->pending_cx_data = cx_data;
|
||||
|
||||
continue;
|
||||
}
|
||||
ctx->pending_frame_sizes[ctx->pending_frame_count++] = frame_size;
|
||||
ctx->pending_cx_data_sz += frame_size;
|
||||
|
||||
// Add the frame packet to the list of returned packets.
|
||||
pkt.kind = AOM_CODEC_CX_FRAME_PKT;
|
||||
pkt.data.frame.pts = ticks_to_timebase_units(timebase, dst_time_stamp);
|
||||
pkt.data.frame.duration = (unsigned long)ticks_to_timebase_units(
|
||||
timebase, dst_end_time_stamp - dst_time_stamp);
|
||||
pkt.data.frame.flags = get_frame_pkt_flags(cpi, lib_flags);
|
||||
cx_data += frame_size;
|
||||
cx_data_sz -= frame_size;
|
||||
|
||||
if (ctx->pending_cx_data) {
|
||||
ctx->pending_frame_sizes[ctx->pending_frame_count++] = size;
|
||||
ctx->pending_cx_data_sz += size;
|
||||
size += write_superframe_index(ctx);
|
||||
pkt.data.frame.buf = ctx->pending_cx_data;
|
||||
pkt.data.frame.sz = ctx->pending_cx_data_sz;
|
||||
ctx->pending_cx_data = NULL;
|
||||
ctx->pending_cx_data_sz = 0;
|
||||
ctx->pending_frame_count = 0;
|
||||
} else {
|
||||
pkt.data.frame.buf = cx_data;
|
||||
pkt.data.frame.sz = size;
|
||||
}
|
||||
pkt.data.frame.partition_id = -1;
|
||||
// invisible frames get packed with the next visible frame
|
||||
if (!cpi->common.show_frame) continue;
|
||||
|
||||
aom_codec_pkt_list_add(&ctx->pkt_list.head, &pkt);
|
||||
|
||||
cx_data += size;
|
||||
cx_data_sz -= size;
|
||||
// insert superframe index if needed
|
||||
if (ctx->pending_frame_count > 1) {
|
||||
const size_t index_size = write_superframe_index(ctx);
|
||||
cx_data += index_size;
|
||||
cx_data_sz -= index_size;
|
||||
}
|
||||
|
||||
// Add the frame packet to the list of returned packets.
|
||||
aom_codec_cx_pkt_t pkt;
|
||||
|
||||
pkt.kind = AOM_CODEC_CX_FRAME_PKT;
|
||||
|
||||
pkt.data.frame.buf = ctx->pending_cx_data;
|
||||
pkt.data.frame.sz = ctx->pending_cx_data_sz;
|
||||
pkt.data.frame.partition_id = -1;
|
||||
|
||||
pkt.data.frame.pts = ticks_to_timebase_units(timebase, dst_time_stamp);
|
||||
pkt.data.frame.flags = get_frame_pkt_flags(cpi, lib_flags);
|
||||
pkt.data.frame.duration = (uint32_t)ticks_to_timebase_units(
|
||||
timebase, dst_end_time_stamp - dst_time_stamp);
|
||||
|
||||
aom_codec_pkt_list_add(&ctx->pkt_list.head, &pkt);
|
||||
|
||||
ctx->pending_cx_data = NULL;
|
||||
ctx->pending_cx_data_sz = 0;
|
||||
ctx->pending_frame_count = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1419,6 +1450,23 @@ static aom_codec_err_t ctrl_set_color_space(aom_codec_alg_priv_t *ctx,
|
|||
return update_extra_cfg(ctx, &extra_cfg);
|
||||
}
|
||||
|
||||
#if CONFIG_COLORSPACE_HEADERS
|
||||
static aom_codec_err_t ctrl_set_transfer_function(aom_codec_alg_priv_t *ctx,
|
||||
va_list args) {
|
||||
struct av1_extracfg extra_cfg = ctx->extra_cfg;
|
||||
extra_cfg.transfer_function = CAST(AV1E_SET_TRANSFER_FUNCTION, args);
|
||||
return update_extra_cfg(ctx, &extra_cfg);
|
||||
}
|
||||
|
||||
static aom_codec_err_t ctrl_set_chroma_sample_position(
|
||||
aom_codec_alg_priv_t *ctx, va_list args) {
|
||||
struct av1_extracfg extra_cfg = ctx->extra_cfg;
|
||||
extra_cfg.chroma_sample_position =
|
||||
CAST(AV1E_SET_CHROMA_SAMPLE_POSITION, args);
|
||||
return update_extra_cfg(ctx, &extra_cfg);
|
||||
}
|
||||
#endif
|
||||
|
||||
static aom_codec_err_t ctrl_set_color_range(aom_codec_alg_priv_t *ctx,
|
||||
va_list args) {
|
||||
struct av1_extracfg extra_cfg = ctx->extra_cfg;
|
||||
|
|
@ -1489,10 +1537,8 @@ static aom_codec_ctrl_fn_map_t encoder_ctrl_maps[] = {
|
|||
{ AV1E_SET_QM_MIN, ctrl_set_qm_min },
|
||||
{ AV1E_SET_QM_MAX, ctrl_set_qm_max },
|
||||
#endif
|
||||
#if CONFIG_TILE_GROUPS
|
||||
{ AV1E_SET_NUM_TG, ctrl_set_num_tg },
|
||||
{ AV1E_SET_MTU, ctrl_set_mtu },
|
||||
#endif
|
||||
#if CONFIG_TEMPMV_SIGNALING
|
||||
{ AV1E_SET_DISABLE_TEMPMV, ctrl_set_disable_tempmv },
|
||||
#endif
|
||||
|
|
@ -1504,6 +1550,10 @@ static aom_codec_ctrl_fn_map_t encoder_ctrl_maps[] = {
|
|||
{ AV1E_SET_FRAME_PERIODIC_BOOST, ctrl_set_frame_periodic_boost },
|
||||
{ AV1E_SET_TUNE_CONTENT, ctrl_set_tune_content },
|
||||
{ AV1E_SET_COLOR_SPACE, ctrl_set_color_space },
|
||||
#if CONFIG_COLORSPACE_HEADERS
|
||||
{ AV1E_SET_TRANSFER_FUNCTION, ctrl_set_transfer_function },
|
||||
{ AV1E_SET_CHROMA_SAMPLE_POSITION, ctrl_set_chroma_sample_position },
|
||||
#endif
|
||||
{ AV1E_SET_COLOR_RANGE, ctrl_set_color_range },
|
||||
{ AV1E_SET_NOISE_SENSITIVITY, ctrl_set_noise_sensitivity },
|
||||
{ AV1E_SET_MIN_GF_INTERVAL, ctrl_set_min_gf_interval },
|
||||
|
|
@ -1514,7 +1564,7 @@ static aom_codec_ctrl_fn_map_t encoder_ctrl_maps[] = {
|
|||
{ AV1E_SET_ANS_WINDOW_SIZE_LOG2, ctrl_set_ans_window_size_log2 },
|
||||
#endif
|
||||
#if CONFIG_EXT_TILE
|
||||
{ AV1E_SET_TILE_ENCODING_MODE, ctrl_set_tile_encoding_mode },
|
||||
{ AV1E_SET_SINGLE_TILE_DECODING, ctrl_set_single_tile_decoding },
|
||||
#endif // CONFIG_EXT_TILE
|
||||
{ AV1E_ENABLE_MOTION_VECTOR_UNIT_TEST, ctrl_enable_motion_vector_unit_test },
|
||||
|
||||
|
|
@ -1549,12 +1599,14 @@ static aom_codec_enc_cfg_map_t encoder_usage_cfg_map[] = {
|
|||
|
||||
25, // g_lag_in_frames
|
||||
|
||||
0, // rc_dropframe_thresh
|
||||
0, // rc_resize_allowed
|
||||
0, // rc_scaled_width
|
||||
0, // rc_scaled_height
|
||||
60, // rc_resize_down_thresold
|
||||
30, // rc_resize_up_thresold
|
||||
0, // rc_dropframe_thresh
|
||||
RESIZE_NONE, // rc_resize_mode
|
||||
SCALE_DENOMINATOR, // rc_resize_numerator
|
||||
SCALE_DENOMINATOR, // rc_resize_kf_numerator
|
||||
|
||||
0, // rc_superres_mode
|
||||
SCALE_DENOMINATOR, // rc_superres_numerator
|
||||
SCALE_DENOMINATOR, // rc_superres_kf_numerator
|
||||
|
||||
AOM_VBR, // rc_end_usage
|
||||
{ NULL, 0 }, // rc_twopass_stats_in
|
||||
|
|
@ -1577,6 +1629,7 @@ static aom_codec_enc_cfg_map_t encoder_usage_cfg_map[] = {
|
|||
AOM_KF_AUTO, // g_kfmode
|
||||
0, // kf_min_dist
|
||||
9999, // kf_max_dist
|
||||
0, // large_scale_tile
|
||||
} },
|
||||
};
|
||||
|
||||
|
|
|
|||
50
third_party/aom/av1/av1_dx_iface.c
vendored
50
third_party/aom/av1/av1_dx_iface.c
vendored
|
|
@ -106,6 +106,8 @@ static aom_codec_err_t decoder_init(aom_codec_ctx_t *ctx,
|
|||
(ctx->init_flags & AOM_CODEC_USE_FRAME_THREADING))
|
||||
? 1
|
||||
: 0;
|
||||
// TODO(tdaede): this should not be exposed to the API
|
||||
priv->cfg.allow_lowbitdepth = CONFIG_LOWBITDEPTH;
|
||||
if (ctx->config.dec) {
|
||||
priv->cfg = *ctx->config.dec;
|
||||
ctx->config.dec = &priv->cfg;
|
||||
|
|
@ -154,14 +156,40 @@ static aom_codec_err_t decoder_destroy(aom_codec_alg_priv_t *ctx) {
|
|||
static int parse_bitdepth_colorspace_sampling(BITSTREAM_PROFILE profile,
|
||||
struct aom_read_bit_buffer *rb) {
|
||||
aom_color_space_t color_space;
|
||||
#if CONFIG_COLORSPACE_HEADERS
|
||||
int subsampling_x = 0;
|
||||
int subsampling_y = 0;
|
||||
#endif
|
||||
|
||||
if (profile >= PROFILE_2) rb->bit_offset += 1; // Bit-depth 10 or 12.
|
||||
#if CONFIG_COLORSPACE_HEADERS
|
||||
color_space = (aom_color_space_t)aom_rb_read_literal(rb, 5);
|
||||
rb->bit_offset += 5; // Transfer function
|
||||
#else
|
||||
color_space = (aom_color_space_t)aom_rb_read_literal(rb, 3);
|
||||
#endif
|
||||
if (color_space != AOM_CS_SRGB) {
|
||||
rb->bit_offset += 1; // [16,235] (including xvycc) vs [0,255] range.
|
||||
|
||||
if (profile == PROFILE_1 || profile == PROFILE_3) {
|
||||
#if CONFIG_COLORSPACE_HEADERS
|
||||
subsampling_x = aom_rb_read_bit(rb);
|
||||
subsampling_y = aom_rb_read_bit(rb);
|
||||
#else
|
||||
rb->bit_offset += 2; // subsampling x/y.
|
||||
#endif
|
||||
rb->bit_offset += 1; // unused.
|
||||
#if CONFIG_COLORSPACE_HEADERS
|
||||
} else {
|
||||
subsampling_x = 1;
|
||||
subsampling_y = 1;
|
||||
}
|
||||
if (subsampling_x == 1 && subsampling_y == 1) {
|
||||
rb->bit_offset += 2;
|
||||
}
|
||||
#else
|
||||
}
|
||||
#endif
|
||||
} else {
|
||||
if (profile == PROFILE_1 || profile == PROFILE_3) {
|
||||
rb->bit_offset += 1; // unused
|
||||
|
|
@ -196,6 +224,9 @@ static aom_codec_err_t decoder_peek_si_internal(
|
|||
struct aom_read_bit_buffer rb = { data, data + data_sz, 0, NULL, NULL };
|
||||
const int frame_marker = aom_rb_read_literal(&rb, 2);
|
||||
const BITSTREAM_PROFILE profile = av1_read_profile(&rb);
|
||||
#if CONFIG_EXT_TILE
|
||||
unsigned int large_scale_tile;
|
||||
#endif // CONFIG_EXT_TILE
|
||||
|
||||
if (frame_marker != AOM_FRAME_MARKER) return AOM_CODEC_UNSUP_BITSTREAM;
|
||||
|
||||
|
|
@ -204,6 +235,10 @@ static aom_codec_err_t decoder_peek_si_internal(
|
|||
if ((profile >= 2 && data_sz <= 1) || data_sz < 1)
|
||||
return AOM_CODEC_UNSUP_BITSTREAM;
|
||||
|
||||
#if CONFIG_EXT_TILE
|
||||
large_scale_tile = aom_rb_read_literal(&rb, 1);
|
||||
#endif // CONFIG_EXT_TILE
|
||||
|
||||
if (aom_rb_read_bit(&rb)) { // show an existing frame
|
||||
aom_rb_read_literal(&rb, 3); // Frame buffer to show.
|
||||
return AOM_CODEC_OK;
|
||||
|
|
@ -220,6 +255,9 @@ static aom_codec_err_t decoder_peek_si_internal(
|
|||
int frame_id_len;
|
||||
SequenceHeader seq_params;
|
||||
read_sequence_header(&seq_params);
|
||||
#if CONFIG_EXT_TILE
|
||||
if (large_scale_tile) seq_params.frame_id_numbers_present_flag = 0;
|
||||
#endif // CONFIG_EXT_TILE
|
||||
if (seq_params.frame_id_numbers_present_flag) {
|
||||
frame_id_len = seq_params.frame_id_length_minus7 + 7;
|
||||
aom_rb_read_literal(&rb, frame_id_len);
|
||||
|
|
@ -417,6 +455,8 @@ static aom_codec_err_t init_decoder(aom_codec_alg_priv_t *ctx) {
|
|||
return AOM_CODEC_MEM_ERROR;
|
||||
}
|
||||
#endif
|
||||
frame_worker_data->pbi->allow_lowbitdepth = ctx->cfg.allow_lowbitdepth;
|
||||
|
||||
// If decoding in serial mode, FrameWorker thread could create tile worker
|
||||
// thread or loopfilter thread.
|
||||
frame_worker_data->pbi->max_threads =
|
||||
|
|
@ -597,10 +637,14 @@ static aom_codec_err_t decoder_decode(aom_codec_alg_priv_t *ctx,
|
|||
if (res != AOM_CODEC_OK) return res;
|
||||
}
|
||||
|
||||
int index_size = 0;
|
||||
res = av1_parse_superframe_index(data, data_sz, frame_sizes, &frame_count,
|
||||
ctx->decrypt_cb, ctx->decrypt_state);
|
||||
&index_size, ctx->decrypt_cb,
|
||||
ctx->decrypt_state);
|
||||
if (res != AOM_CODEC_OK) return res;
|
||||
|
||||
data_start += index_size;
|
||||
|
||||
if (ctx->frame_parallel_decode) {
|
||||
// Decode in frame parallel mode. When decoding in this mode, the frame
|
||||
// passed to the decoder must be either a normal frame or a superframe with
|
||||
|
|
@ -752,7 +796,7 @@ static aom_image_t *decoder_get_frame(aom_codec_alg_priv_t *ctx,
|
|||
yuvconfig2image(&ctx->img, &sd, frame_worker_data->user_priv);
|
||||
|
||||
#if CONFIG_EXT_TILE
|
||||
if (cm->tile_encoding_mode &&
|
||||
if (cm->single_tile_decoding &&
|
||||
frame_worker_data->pbi->dec_tile_row >= 0) {
|
||||
const int tile_row =
|
||||
AOMMIN(frame_worker_data->pbi->dec_tile_row, cm->tile_rows - 1);
|
||||
|
|
@ -768,7 +812,7 @@ static aom_image_t *decoder_get_frame(aom_codec_alg_priv_t *ctx,
|
|||
AOMMIN(cm->tile_height, cm->mi_rows - mi_row) * MI_SIZE;
|
||||
}
|
||||
|
||||
if (cm->tile_encoding_mode &&
|
||||
if (cm->single_tile_decoding &&
|
||||
frame_worker_data->pbi->dec_tile_col >= 0) {
|
||||
const int tile_col =
|
||||
AOMMIN(frame_worker_data->pbi->dec_tile_col, cm->tile_cols - 1);
|
||||
|
|
|
|||
8
third_party/aom/av1/av1_iface_common.h
vendored
8
third_party/aom/av1/av1_iface_common.h
vendored
|
|
@ -38,6 +38,10 @@ static void yuvconfig2image(aom_image_t *img, const YV12_BUFFER_CONFIG *yv12,
|
|||
}
|
||||
}
|
||||
img->cs = yv12->color_space;
|
||||
#if CONFIG_COLORSPACE_HEADERS
|
||||
img->tf = yv12->transfer_function;
|
||||
img->csp = yv12->chroma_sample_position;
|
||||
#endif
|
||||
img->range = yv12->color_range;
|
||||
img->bit_depth = 8;
|
||||
img->w = yv12->y_stride;
|
||||
|
|
@ -102,6 +106,10 @@ static aom_codec_err_t image2yuvconfig(const aom_image_t *img,
|
|||
yv12->y_stride = img->stride[AOM_PLANE_Y];
|
||||
yv12->uv_stride = img->stride[AOM_PLANE_U];
|
||||
yv12->color_space = img->cs;
|
||||
#if CONFIG_COLORSPACE_HEADERS
|
||||
yv12->transfer_function = img->tf;
|
||||
yv12->chroma_sample_position = img->csp;
|
||||
#endif
|
||||
yv12->color_range = img->range;
|
||||
|
||||
#if CONFIG_HIGHBITDEPTH
|
||||
|
|
|
|||
15
third_party/aom/av1/common/alloccommon.c
vendored
15
third_party/aom/av1/common/alloccommon.c
vendored
|
|
@ -93,11 +93,18 @@ void av1_free_ref_frame_buffers(BufferPool *pool) {
|
|||
// Assumes cm->rst_info[p].restoration_tilesize is already initialized
|
||||
void av1_alloc_restoration_buffers(AV1_COMMON *cm) {
|
||||
int p;
|
||||
av1_alloc_restoration_struct(cm, &cm->rst_info[0], cm->width, cm->height);
|
||||
#if CONFIG_FRAME_SUPERRES
|
||||
int width = cm->superres_upscaled_width;
|
||||
int height = cm->superres_upscaled_height;
|
||||
#else
|
||||
int width = cm->width;
|
||||
int height = cm->height;
|
||||
#endif // CONFIG_FRAME_SUPERRES
|
||||
av1_alloc_restoration_struct(cm, &cm->rst_info[0], width, height);
|
||||
for (p = 1; p < MAX_MB_PLANE; ++p)
|
||||
av1_alloc_restoration_struct(
|
||||
cm, &cm->rst_info[p], ROUND_POWER_OF_TWO(cm->width, cm->subsampling_x),
|
||||
ROUND_POWER_OF_TWO(cm->height, cm->subsampling_y));
|
||||
av1_alloc_restoration_struct(cm, &cm->rst_info[p],
|
||||
ROUND_POWER_OF_TWO(width, cm->subsampling_x),
|
||||
ROUND_POWER_OF_TWO(height, cm->subsampling_y));
|
||||
aom_free(cm->rst_internal.tmpbuf);
|
||||
CHECK_MEM_ERROR(cm, cm->rst_internal.tmpbuf,
|
||||
(int32_t *)aom_memalign(16, RESTORATION_TMPBUF_SIZE));
|
||||
|
|
|
|||
|
|
@ -134,7 +134,7 @@ static INLINE void IADST4x4_1D(int16x4_t *d3s16, int16x4_t *d4s16,
|
|||
}
|
||||
|
||||
void av1_iht4x4_16_add_neon(const tran_low_t *input, uint8_t *dest,
|
||||
int dest_stride, int tx_type) {
|
||||
int dest_stride, const TxfmParam *txfm_param) {
|
||||
uint8x8_t d26u8, d27u8;
|
||||
int16x4_t d0s16, d1s16, d2s16, d3s16, d4s16, d5s16;
|
||||
uint32x2_t d26u32, d27u32;
|
||||
|
|
@ -148,9 +148,10 @@ void av1_iht4x4_16_add_neon(const tran_low_t *input, uint8_t *dest,
|
|||
|
||||
TRANSPOSE4X4(&q8s16, &q9s16);
|
||||
|
||||
int tx_type = txfm_param->tx_type;
|
||||
switch (tx_type) {
|
||||
case 0: // idct_idct is not supported. Fall back to C
|
||||
av1_iht4x4_16_add_c(input, dest, dest_stride, tx_type);
|
||||
av1_iht4x4_16_add_c(input, dest, dest_stride, txfm_param);
|
||||
return;
|
||||
break;
|
||||
case 1: // iadst_idct
|
||||
|
|
|
|||
|
|
@ -458,7 +458,7 @@ static INLINE void IADST8X8_1D(int16x8_t *q8s16, int16x8_t *q9s16,
|
|||
}
|
||||
|
||||
void av1_iht8x8_64_add_neon(const tran_low_t *input, uint8_t *dest,
|
||||
int dest_stride, int tx_type) {
|
||||
int dest_stride, const TxfmParam *txfm_param) {
|
||||
int i;
|
||||
uint8_t *d1, *d2;
|
||||
uint8x8_t d0u8, d1u8, d2u8, d3u8;
|
||||
|
|
@ -478,9 +478,10 @@ void av1_iht8x8_64_add_neon(const tran_low_t *input, uint8_t *dest,
|
|||
TRANSPOSE8X8(&q8s16, &q9s16, &q10s16, &q11s16, &q12s16, &q13s16, &q14s16,
|
||||
&q15s16);
|
||||
|
||||
int tx_type = txfm_param->tx_type;
|
||||
switch (tx_type) {
|
||||
case 0: // idct_idct is not supported. Fall back to C
|
||||
av1_iht8x8_64_add_c(input, dest, dest_stride, tx_type);
|
||||
av1_iht8x8_64_add_c(input, dest, dest_stride, txfm_param);
|
||||
return;
|
||||
break;
|
||||
case 1: // iadst_idct
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue