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
89 89
90QPEL_TABLE 8, 1, b, avx512icl_h90QPEL_TABLE 8, 1, b, avx512icl_h
91QPEL_TABLE 8, 1, d, avx512icl_v91QPEL_TABLE 8, 1, d, avx512icl_v
92QPEL_TABLE 16, 1, b, avx512icl_h
92 93
93pb_qpel_shuffle_index: db 0, 1, 2, 394pb_qpel_shuffle_index: db 0, 1, 2, 3
94 db 1, 2, 3, 495 db 1, 2, 3, 4
@@ -98,6 +99,14 @@ pb_qpel_shuffle_index: db 0, 1, 2, 3 · 3 unmodified lines
98 db 5, 6, 7, 899 db 5, 6, 7, 8
99 db 6, 7, 8, 9100 db 6, 7, 8, 9
100 db 7, 8, 9, 10101 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
101 db 4, 5, 6, 7110 db 4, 5, 6, 7
102 db 5, 6, 7, 8111 db 5, 6, 7, 8
103 db 6, 7, 8, 9112 db 6, 7, 8, 9
@@ -106,6 +115,14 @@ pb_qpel_shuffle_index: db 0, 1, 2, 3 · 2 unmodified lines
106 db 9, 10, 11, 12115 db 9, 10, 11, 12
107 db 10, 11, 12, 13116 db 10, 11, 12, 13
108 db 11, 12, 13, 14117 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
109 126
110SECTION .text127SECTION .text
111 128
@@ -1712,7 +1729,7 @@ HEVC_PUT_HEVC_QPEL_HV 16, 10 · 1600 unmodified lines
1712 1729
1713%macro QPEL_LOAD_SHUF 21730%macro QPEL_LOAD_SHUF 2
1714 movu m%1, [pb_qpel_shuffle_index + 0]1731 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]
1716%endmacro1733%endmacro
1717 1734
1718; required: m0-m51735; required: m0-m5
@@ -1720,7 +1737,11 @@ HEVC_PUT_HEVC_QPEL_HV 16, 10 · 1 unmodified line
1720; %2: name for src1737; %2: name for src
1721%macro QPEL_H_LOAD_COMPUTE 21738%macro QPEL_H_LOAD_COMPUTE 2
1722 pxor m%1, m%11739 pxor m%1, m%1
1740%if mmsize == 64
1741 movu ym4, [%2q - 3]
1742%else
1723 movu xm4, [%2q - 3]1743 movu xm4, [%2q - 3]
1744%endif
1724 vpermb m5, m2, m41745 vpermb m5, m2, m4
1725 vpermb m4, m3, m41746 vpermb m4, m3, m4
1726 vpdpbusd m%1, m5, m01747 vpdpbusd m%1, m5, m0
@@ -1805,5 +1826,8 @@ INIT_YMM avx512icl · 78 unmodified lines
1805HEVC_PUT_HEVC_QPEL_AVX512ICL 8, 81826HEVC_PUT_HEVC_QPEL_AVX512ICL 8, 8
1806HEVC_PUT_HEVC_QPEL_HV_AVX512ICL 8, 81827HEVC_PUT_HEVC_QPEL_HV_AVX512ICL 8, 8
1807 1828
1829INIT_ZMM avx512icl
1830HEVC_PUT_HEVC_QPEL_AVX512ICL 16, 8
1831
1808%endif1832%endif
1809%endif1833%endif
libavcodec/x86/hevcdsp.h+1−0
@@ -234,6 +234,7 @@ WEIGHTING_PROTOTYPES(10, sse4); · 233 unmodified lines
234WEIGHTING_PROTOTYPES(12, sse4);234WEIGHTING_PROTOTYPES(12, sse4);
235 235
236void 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);236void 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);
237void 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);
237void 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);238void 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);
238 239
239///////////////////////////////////////////////////////////////////////////////240///////////////////////////////////////////////////////////////////////////////
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
880 }880 }
881 if (EXTERNAL_AVX512ICL(cpu_flags) && ARCH_X86_64) {881 if (EXTERNAL_AVX512ICL(cpu_flags) && ARCH_X86_64) {
882 c->put_hevc_qpel[3][0][1] = ff_hevc_put_hevc_qpel_h8_8_avx512icl;882 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;
883 c->put_hevc_qpel[3][1][1] = ff_hevc_put_hevc_qpel_hv8_8_avx512icl;884 c->put_hevc_qpel[3][1][1] = ff_hevc_put_hevc_qpel_hv8_8_avx512icl;
884 }885 }
885 } else if (bit_depth == 10) {886 } 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