aarch64/vvc: Add put_qpel_hx i8mm
Benchmark on Android pixel 8 with -fno-vectorize put_luma_h_8_4x4_c: 0.2 ( 1.00x) put_luma_h_8_4x4_neon: 0.2 ( 1.00x) put_luma_h_8_4x4_i8mm: 0.0 ( 0.00x) put_luma_h_8_8x8_c: 1.5 ( 1.00x) put_luma_h_8_8x8_neon: 0.5 ( 3.00x) put_luma_h_8_8x8_i8mm: 0.5 ( 3.00x) put_luma_h_8_16x16_c: 6.2 ( 1.00x) put_luma_h_8_16x16_neon: 2.0 ( 3.12x) put_luma_h_8_16x16_i8mm: 1.5 ( 4.17x) put_luma_h_8_32x32_c: 25.5 ( 1.00x) put_luma_h_8_32x32_neon: 9.0 ( 2.83x) put_luma_h_8_32x32_i8mm: 6.8 ( 3.78x) put_luma_h_8_64x64_c: 99.8 ( 1.00x) put_luma_h_8_64x64_neon: 35.2 ( 2.83x) put_luma_h_8_64x64_i8mm: 27.2 ( 3.66x) put_luma_h_8_128x128_c: 422.0 ( 1.00x) put_luma_h_8_128x128_neon: 138.5 ( 3.05x) put_luma_h_8_128x128_i8mm: 109.2 ( 3.86x)
This commit is contained in:
parent
25448d1716
commit
9f6c8eb412
3 changed files with 76 additions and 5 deletions
|
|
@ -88,6 +88,15 @@ void ff_vvc_dsp_init_aarch64(VVCDSPContext *const c, const int bd)
|
|||
c->sao.edge_filter[i] = ff_vvc_sao_edge_filter_16x16_8_neon;
|
||||
c->alf.filter[LUMA] = alf_filter_luma_8_neon;
|
||||
c->alf.filter[CHROMA] = alf_filter_chroma_8_neon;
|
||||
|
||||
if (have_i8mm(cpu_flags)) {
|
||||
c->inter.put[0][1][0][1] = ff_vvc_put_qpel_h4_8_neon_i8mm;
|
||||
c->inter.put[0][2][0][1] = ff_vvc_put_qpel_h8_8_neon_i8mm;
|
||||
c->inter.put[0][3][0][1] = ff_vvc_put_qpel_h16_8_neon_i8mm;
|
||||
c->inter.put[0][4][0][1] = ff_vvc_put_qpel_h32_8_neon_i8mm;
|
||||
c->inter.put[0][5][0][1] = ff_vvc_put_qpel_h64_8_neon_i8mm;
|
||||
c->inter.put[0][6][0][1] = ff_vvc_put_qpel_h128_8_neon_i8mm;
|
||||
}
|
||||
} else if (bd == 10) {
|
||||
c->alf.filter[LUMA] = alf_filter_luma_10_neon;
|
||||
c->alf.filter[CHROMA] = alf_filter_chroma_10_neon;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue