History

avcodec/x86/hevc_mc: add qpel_h16_8_avx512icl

ff_hevc_put_hevc_qpel_h16_8_sse4 3290870 ff_hevc_put_hevc_qpel_h16_8_avx512icl 1730033

Wu Jianhua committed 4 years ago

Commit c1790b61 parent d4cd8833 files · +27 −1Browse files

Showing the changes to libavcodec (3 of 3 files). Show all

Unified · Split

3 files
  1. libavcodec/x86/hevc_mc.asm +25 −1
  2. libavcodec/x86/hevcdsp.h +1 −0
  3. libavcodec/x86/hevcdsp_init.c +1 −0
libavcodec/x86/hevc_mc.asm+25−1
@@ -89,6 +89,7 @@ QPEL_TABLE 10, 8, w, avx2 · 88 unmodified lines
8989
9090 QPEL_TABLE 8, 1, b, avx512icl_h
9191 QPEL_TABLE 8, 1, d, avx512icl_v
92+QPEL_TABLE 16, 1, b, avx512icl_h
9293
9394 pb_qpel_shuffle_index: db 0, 1, 2, 3
9495 db 1, 2, 3, 4
@@ -98,6 +99,14 @@ pb_qpel_shuffle_index: db 0, 1, 2, 3 · 3 unmodified lines
9899 db 5, 6, 7, 8
99100 db 6, 7, 8, 9
100101 db 7, 8, 9, 10
102+ db 8, 9, 10, 11
103+ db 9, 10, 11, 12
104+ db 10, 11, 12, 13
105+ db 11, 12, 13, 14
106+ db 12, 13, 14, 15
107+ db 13, 14, 15, 16
108+ db 14, 15, 16, 17
109+ db 15, 16, 17, 18
101110 db 4, 5, 6, 7
102111 db 5, 6, 7, 8
103112 db 6, 7, 8, 9
@@ -106,6 +115,14 @@ pb_qpel_shuffle_index: db 0, 1, 2, 3 · 2 unmodified lines
106115 db 9, 10, 11, 12
107116 db 10, 11, 12, 13
108117 db 11, 12, 13, 14
118+ db 12, 13, 14, 15
119+ db 13, 14, 15, 16
120+ db 14, 15, 16, 17
121+ db 15, 16, 17, 18
122+ db 16, 17, 18, 19
123+ db 17, 18, 19, 20
124+ db 18, 19, 20, 21
125+ db 19, 20, 21, 22
109126
110127 SECTION .text
111128
@@ -1712,7 +1729,7 @@ HEVC_PUT_HEVC_QPEL_HV 16, 10 · 1600 unmodified lines
17121729
17131730 %macro QPEL_LOAD_SHUF 2
17141731 movu m%1, [pb_qpel_shuffle_index + 0]
1715− movu m%2, [pb_qpel_shuffle_index + 32]
1732+ movu m%2, [pb_qpel_shuffle_index + 64]
17161733 %endmacro
17171734
17181735 ; required: m0-m5
@@ -1720,7 +1737,11 @@ HEVC_PUT_HEVC_QPEL_HV 16, 10 · 1 unmodified line
17201737 ; %2: name for src
17211738 %macro QPEL_H_LOAD_COMPUTE 2
17221739 pxor m%1, m%1
1740+%if mmsize == 64
1741+ movu ym4, [%2q - 3]
1742+%else
17231743 movu xm4, [%2q - 3]
1744+%endif
17241745 vpermb m5, m2, m4
17251746 vpermb m4, m3, m4
17261747 vpdpbusd m%1, m5, m0
@@ -1805,5 +1826,8 @@ INIT_YMM avx512icl · 78 unmodified lines
18051826 HEVC_PUT_HEVC_QPEL_AVX512ICL 8, 8
18061827 HEVC_PUT_HEVC_QPEL_HV_AVX512ICL 8, 8
18071828
1829+INIT_ZMM avx512icl
1830+HEVC_PUT_HEVC_QPEL_AVX512ICL 16, 8
1831+
18081832 %endif
18091833 %endif
libavcodec/x86/hevcdsp.h+1−0
@@ -234,6 +234,7 @@ WEIGHTING_PROTOTYPES(10, sse4); · 233 unmodified lines
234234 WEIGHTING_PROTOTYPES(12, sse4);
235235
236236 void ff_hevc_put_hevc_qpel_h8_8_avx512icl(int16_t *dst, uint8_t *_src, ptrdiff_t _srcstride, int height, intptr_t mx, intptr_t my, int width);
237+void ff_hevc_put_hevc_qpel_h16_8_avx512icl(int16_t *dst, uint8_t *_src, ptrdiff_t _srcstride, int height, intptr_t mx, intptr_t my, int width);
237238 void ff_hevc_put_hevc_qpel_hv8_8_avx512icl(int16_t *dst, uint8_t *_src, ptrdiff_t _srcstride, int height, intptr_t mx, intptr_t my, int width);
238239
239240 ///////////////////////////////////////////////////////////////////////////////
libavcodec/x86/hevcdsp_init.c+1−0
@@ -880,6 +880,7 @@ void ff_hevc_dsp_init_x86(HEVCDSPContext *c, const int bit_depth) · 879 unmodified lines
880880 }
881881 if (EXTERNAL_AVX512ICL(cpu_flags) && ARCH_X86_64) {
882882 c->put_hevc_qpel[3][0][1] = ff_hevc_put_hevc_qpel_h8_8_avx512icl;
883+ c->put_hevc_qpel[5][0][1] = ff_hevc_put_hevc_qpel_h16_8_avx512icl;
883884 c->put_hevc_qpel[3][1][1] = ff_hevc_put_hevc_qpel_hv8_8_avx512icl;
884885 }
885886 } else if (bit_depth == 10) {

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t