ff_hevc_put_hevc_qpel_h16_8_sse4 3290870 ff_hevc_put_hevc_qpel_h16_8_avx512icl 1730033
Showing the changes to libavcodec (3 of 3 files). Show all
Unified · Split
| @@ -89,6 +89,7 @@ QPEL_TABLE 10, 8, w, avx2 · 88 unmodified lines | ||
| 89 | 89 | |
| 90 | 90 | QPEL_TABLE 8, 1, b, avx512icl_h |
| 91 | 91 | QPEL_TABLE 8, 1, d, avx512icl_v |
| 92 | +QPEL_TABLE 16, 1, b, avx512icl_h | |
| 92 | 93 | |
| 93 | 94 | pb_qpel_shuffle_index: db 0, 1, 2, 3 |
| 94 | 95 | db 1, 2, 3, 4 |
| @@ -98,6 +99,14 @@ pb_qpel_shuffle_index: db 0, 1, 2, 3 · 3 unmodified lines | ||
| 98 | 99 | db 5, 6, 7, 8 |
| 99 | 100 | db 6, 7, 8, 9 |
| 100 | 101 | 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 | 110 | db 4, 5, 6, 7 |
| 102 | 111 | db 5, 6, 7, 8 |
| 103 | 112 | db 6, 7, 8, 9 |
| @@ -106,6 +115,14 @@ pb_qpel_shuffle_index: db 0, 1, 2, 3 · 2 unmodified lines | ||
| 106 | 115 | db 9, 10, 11, 12 |
| 107 | 116 | db 10, 11, 12, 13 |
| 108 | 117 | 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 | |
| 110 | 127 | SECTION .text |
| 111 | 128 | |
| @@ -1712,7 +1729,7 @@ HEVC_PUT_HEVC_QPEL_HV 16, 10 · 1600 unmodified lines | ||
| 1712 | 1729 | |
| 1713 | 1730 | %macro QPEL_LOAD_SHUF 2 |
| 1714 | 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 | 1733 | %endmacro |
| 1717 | 1734 | |
| 1718 | 1735 | ; required: m0-m5 |
| @@ -1720,7 +1737,11 @@ HEVC_PUT_HEVC_QPEL_HV 16, 10 · 1 unmodified line | ||
| 1720 | 1737 | ; %2: name for src |
| 1721 | 1738 | %macro QPEL_H_LOAD_COMPUTE 2 |
| 1722 | 1739 | pxor m%1, m%1 |
| 1740 | +%if mmsize == 64 | |
| 1741 | + movu ym4, [%2q - 3] | |
| 1742 | +%else | |
| 1723 | 1743 | movu xm4, [%2q - 3] |
| 1744 | +%endif | |
| 1724 | 1745 | vpermb m5, m2, m4 |
| 1725 | 1746 | vpermb m4, m3, m4 |
| 1726 | 1747 | vpdpbusd m%1, m5, m0 |
| @@ -1805,5 +1826,8 @@ INIT_YMM avx512icl · 78 unmodified lines | ||
| 1805 | 1826 | HEVC_PUT_HEVC_QPEL_AVX512ICL 8, 8 |
| 1806 | 1827 | HEVC_PUT_HEVC_QPEL_HV_AVX512ICL 8, 8 |
| 1807 | 1828 | |
| 1829 | +INIT_ZMM avx512icl | |
| 1830 | +HEVC_PUT_HEVC_QPEL_AVX512ICL 16, 8 | |
| 1831 | + | |
| 1808 | 1832 | %endif |
| 1809 | 1833 | %endif |
| @@ -234,6 +234,7 @@ WEIGHTING_PROTOTYPES(10, sse4); · 233 unmodified lines | ||
| 234 | 234 | WEIGHTING_PROTOTYPES(12, sse4); |
| 235 | 235 | |
| 236 | 236 | 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); | |
| 237 | 238 | 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); |
| 238 | 239 | |
| 239 | 240 | /////////////////////////////////////////////////////////////////////////////// |
| @@ -880,6 +880,7 @@ void ff_hevc_dsp_init_x86(HEVCDSPContext *c, const int bit_depth) · 879 unmodified lines | ||
| 880 | 880 | } |
| 881 | 881 | if (EXTERNAL_AVX512ICL(cpu_flags) && ARCH_X86_64) { |
| 882 | 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 | 884 | c->put_hevc_qpel[3][1][1] = ff_hevc_put_hevc_qpel_hv8_8_avx512icl; |
| 884 | 885 | } |
| 885 | 886 | } else if (bit_depth == 10) { |