dct.h 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249
  1. /*****************************************************************************
  2. * dct.h: x86 transform and zigzag
  3. *****************************************************************************
  4. * Copyright (C) 2003-2018 x264 project
  5. *
  6. * Authors: Loren Merritt <lorenm@u.washington.edu>
  7. * Laurent Aimar <fenrir@via.ecp.fr>
  8. * Fiona Glaser <fiona@x264.com>
  9. *
  10. * This program is free software; you can redistribute it and/or modify
  11. * it under the terms of the GNU General Public License as published by
  12. * the Free Software Foundation; either version 2 of the License, or
  13. * (at your option) any later version.
  14. *
  15. * This program is distributed in the hope that it will be useful,
  16. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  17. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  18. * GNU General Public License for more details.
  19. *
  20. * You should have received a copy of the GNU General Public License
  21. * along with this program; if not, write to the Free Software
  22. * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111, USA.
  23. *
  24. * This program is also available under a commercial proprietary license.
  25. * For more information, contact us at licensing@x264.com.
  26. *****************************************************************************/
  27. #ifndef X264_X86_DCT_H
  28. #define X264_X86_DCT_H
  29. #define x264_sub4x4_dct_mmx x264_template(sub4x4_dct_mmx)
  30. void x264_sub4x4_dct_mmx ( dctcoef dct [16], pixel *pix1, pixel *pix2 );
  31. #define x264_sub8x8_dct_mmx x264_template(sub8x8_dct_mmx)
  32. void x264_sub8x8_dct_mmx ( dctcoef dct[ 4][16], pixel *pix1, pixel *pix2 );
  33. #define x264_sub16x16_dct_mmx x264_template(sub16x16_dct_mmx)
  34. void x264_sub16x16_dct_mmx ( dctcoef dct[16][16], pixel *pix1, pixel *pix2 );
  35. #define x264_sub8x8_dct_sse2 x264_template(sub8x8_dct_sse2)
  36. void x264_sub8x8_dct_sse2 ( int16_t dct[ 4][16], uint8_t *pix1, uint8_t *pix2 );
  37. #define x264_sub16x16_dct_sse2 x264_template(sub16x16_dct_sse2)
  38. void x264_sub16x16_dct_sse2 ( int16_t dct[16][16], uint8_t *pix1, uint8_t *pix2 );
  39. #define x264_sub4x4_dct_ssse3 x264_template(sub4x4_dct_ssse3)
  40. void x264_sub4x4_dct_ssse3 ( int16_t dct [16], uint8_t *pix1, uint8_t *pix2 );
  41. #define x264_sub4x4_dct_avx512 x264_template(sub4x4_dct_avx512)
  42. void x264_sub4x4_dct_avx512 ( int16_t dct [16], uint8_t *pix1, uint8_t *pix2 );
  43. #define x264_sub8x8_dct_ssse3 x264_template(sub8x8_dct_ssse3)
  44. void x264_sub8x8_dct_ssse3 ( int16_t dct[ 4][16], uint8_t *pix1, uint8_t *pix2 );
  45. #define x264_sub16x16_dct_ssse3 x264_template(sub16x16_dct_ssse3)
  46. void x264_sub16x16_dct_ssse3( int16_t dct[16][16], uint8_t *pix1, uint8_t *pix2 );
  47. #define x264_sub8x8_dct_avx x264_template(sub8x8_dct_avx)
  48. void x264_sub8x8_dct_avx ( int16_t dct[ 4][16], uint8_t *pix1, uint8_t *pix2 );
  49. #define x264_sub16x16_dct_avx x264_template(sub16x16_dct_avx)
  50. void x264_sub16x16_dct_avx ( int16_t dct[16][16], uint8_t *pix1, uint8_t *pix2 );
  51. #define x264_sub8x8_dct_xop x264_template(sub8x8_dct_xop)
  52. void x264_sub8x8_dct_xop ( int16_t dct[ 4][16], uint8_t *pix1, uint8_t *pix2 );
  53. #define x264_sub16x16_dct_xop x264_template(sub16x16_dct_xop)
  54. void x264_sub16x16_dct_xop ( int16_t dct[16][16], uint8_t *pix1, uint8_t *pix2 );
  55. #define x264_sub8x8_dct_avx2 x264_template(sub8x8_dct_avx2)
  56. void x264_sub8x8_dct_avx2 ( int16_t dct[ 4][16], uint8_t *pix1, uint8_t *pix2 );
  57. #define x264_sub8x8_dct_avx512 x264_template(sub8x8_dct_avx512)
  58. void x264_sub8x8_dct_avx512 ( int16_t dct[ 4][16], uint8_t *pix1, uint8_t *pix2 );
  59. #define x264_sub16x16_dct_avx2 x264_template(sub16x16_dct_avx2)
  60. void x264_sub16x16_dct_avx2 ( int16_t dct[16][16], uint8_t *pix1, uint8_t *pix2 );
  61. #define x264_sub16x16_dct_avx512 x264_template(sub16x16_dct_avx512)
  62. void x264_sub16x16_dct_avx512( int16_t dct[16][16], uint8_t *pix1, uint8_t *pix2 );
  63. #define x264_sub8x8_dct_dc_mmx2 x264_template(sub8x8_dct_dc_mmx2)
  64. void x264_sub8x8_dct_dc_mmx2 ( int16_t dct [ 4], uint8_t *pix1, uint8_t *pix2 );
  65. #define x264_sub8x8_dct_dc_sse2 x264_template(sub8x8_dct_dc_sse2)
  66. void x264_sub8x8_dct_dc_sse2 ( dctcoef dct [ 4], pixel *pix1, pixel *pix2 );
  67. #define x264_sub8x8_dct_dc_avx512 x264_template(sub8x8_dct_dc_avx512)
  68. void x264_sub8x8_dct_dc_avx512 ( int16_t dct [ 4], uint8_t *pix1, uint8_t *pix2 );
  69. #define x264_sub8x16_dct_dc_sse2 x264_template(sub8x16_dct_dc_sse2)
  70. void x264_sub8x16_dct_dc_sse2 ( dctcoef dct [ 8], pixel *pix1, pixel *pix2 );
  71. #define x264_sub8x16_dct_dc_ssse3 x264_template(sub8x16_dct_dc_ssse3)
  72. void x264_sub8x16_dct_dc_ssse3 ( int16_t dct [ 8], uint8_t *pix1, uint8_t *pix2 );
  73. #define x264_sub8x16_dct_dc_avx x264_template(sub8x16_dct_dc_avx)
  74. void x264_sub8x16_dct_dc_avx ( dctcoef dct [ 8], pixel *pix1, pixel *pix2 );
  75. #define x264_sub8x16_dct_dc_avx512 x264_template(sub8x16_dct_dc_avx512)
  76. void x264_sub8x16_dct_dc_avx512( int16_t dct [ 8], uint8_t *pix1, uint8_t *pix2 );
  77. #define x264_add4x4_idct_mmx x264_template(add4x4_idct_mmx)
  78. void x264_add4x4_idct_mmx ( uint8_t *p_dst, int16_t dct [16] );
  79. #define x264_add4x4_idct_sse2 x264_template(add4x4_idct_sse2)
  80. void x264_add4x4_idct_sse2 ( uint16_t *p_dst, int32_t dct [16] );
  81. #define x264_add4x4_idct_sse4 x264_template(add4x4_idct_sse4)
  82. void x264_add4x4_idct_sse4 ( uint8_t *p_dst, int16_t dct [16] );
  83. #define x264_add4x4_idct_avx x264_template(add4x4_idct_avx)
  84. void x264_add4x4_idct_avx ( pixel *p_dst, dctcoef dct [16] );
  85. #define x264_add8x8_idct_mmx x264_template(add8x8_idct_mmx)
  86. void x264_add8x8_idct_mmx ( uint8_t *p_dst, int16_t dct[ 4][16] );
  87. #define x264_add8x8_idct_dc_mmx2 x264_template(add8x8_idct_dc_mmx2)
  88. void x264_add8x8_idct_dc_mmx2 ( uint8_t *p_dst, int16_t dct [ 4] );
  89. #define x264_add16x16_idct_mmx x264_template(add16x16_idct_mmx)
  90. void x264_add16x16_idct_mmx ( uint8_t *p_dst, int16_t dct[16][16] );
  91. #define x264_add16x16_idct_dc_mmx2 x264_template(add16x16_idct_dc_mmx2)
  92. void x264_add16x16_idct_dc_mmx2 ( uint8_t *p_dst, int16_t dct [16] );
  93. #define x264_add8x8_idct_sse2 x264_template(add8x8_idct_sse2)
  94. void x264_add8x8_idct_sse2 ( pixel *p_dst, dctcoef dct[ 4][16] );
  95. #define x264_add8x8_idct_avx x264_template(add8x8_idct_avx)
  96. void x264_add8x8_idct_avx ( pixel *p_dst, dctcoef dct[ 4][16] );
  97. #define x264_add8x8_idct_avx2 x264_template(add8x8_idct_avx2)
  98. void x264_add8x8_idct_avx2 ( pixel *p_dst, dctcoef dct[ 4][16] );
  99. #define x264_add8x8_idct_avx512 x264_template(add8x8_idct_avx512)
  100. void x264_add8x8_idct_avx512 ( uint8_t *p_dst, int16_t dct[ 4][16] );
  101. #define x264_add16x16_idct_sse2 x264_template(add16x16_idct_sse2)
  102. void x264_add16x16_idct_sse2 ( pixel *p_dst, dctcoef dct[16][16] );
  103. #define x264_add16x16_idct_avx x264_template(add16x16_idct_avx)
  104. void x264_add16x16_idct_avx ( pixel *p_dst, dctcoef dct[16][16] );
  105. #define x264_add16x16_idct_avx2 x264_template(add16x16_idct_avx2)
  106. void x264_add16x16_idct_avx2 ( pixel *p_dst, dctcoef dct[16][16] );
  107. #define x264_add8x8_idct_dc_sse2 x264_template(add8x8_idct_dc_sse2)
  108. void x264_add8x8_idct_dc_sse2 ( pixel *p_dst, dctcoef dct [ 4] );
  109. #define x264_add16x16_idct_dc_sse2 x264_template(add16x16_idct_dc_sse2)
  110. void x264_add16x16_idct_dc_sse2 ( pixel *p_dst, dctcoef dct [16] );
  111. #define x264_add8x8_idct_dc_ssse3 x264_template(add8x8_idct_dc_ssse3)
  112. void x264_add8x8_idct_dc_ssse3 ( uint8_t *p_dst, int16_t dct [ 4] );
  113. #define x264_add16x16_idct_dc_ssse3 x264_template(add16x16_idct_dc_ssse3)
  114. void x264_add16x16_idct_dc_ssse3( uint8_t *p_dst, int16_t dct [16] );
  115. #define x264_add8x8_idct_dc_avx x264_template(add8x8_idct_dc_avx)
  116. void x264_add8x8_idct_dc_avx ( pixel *p_dst, dctcoef dct [ 4] );
  117. #define x264_add16x16_idct_dc_avx x264_template(add16x16_idct_dc_avx)
  118. void x264_add16x16_idct_dc_avx ( pixel *p_dst, dctcoef dct [16] );
  119. #define x264_add16x16_idct_dc_avx2 x264_template(add16x16_idct_dc_avx2)
  120. void x264_add16x16_idct_dc_avx2 ( uint8_t *p_dst, int16_t dct [16] );
  121. #define x264_dct4x4dc_mmx2 x264_template(dct4x4dc_mmx2)
  122. void x264_dct4x4dc_mmx2 ( int16_t d[16] );
  123. #define x264_dct4x4dc_sse2 x264_template(dct4x4dc_sse2)
  124. void x264_dct4x4dc_sse2 ( int32_t d[16] );
  125. #define x264_dct4x4dc_avx x264_template(dct4x4dc_avx)
  126. void x264_dct4x4dc_avx ( int32_t d[16] );
  127. #define x264_idct4x4dc_mmx x264_template(idct4x4dc_mmx)
  128. void x264_idct4x4dc_mmx ( int16_t d[16] );
  129. #define x264_idct4x4dc_sse2 x264_template(idct4x4dc_sse2)
  130. void x264_idct4x4dc_sse2 ( int32_t d[16] );
  131. #define x264_idct4x4dc_avx x264_template(idct4x4dc_avx)
  132. void x264_idct4x4dc_avx ( int32_t d[16] );
  133. #define x264_dct2x4dc_mmx2 x264_template(dct2x4dc_mmx2)
  134. void x264_dct2x4dc_mmx2( dctcoef dct[8], dctcoef dct4x4[8][16] );
  135. #define x264_dct2x4dc_sse2 x264_template(dct2x4dc_sse2)
  136. void x264_dct2x4dc_sse2( dctcoef dct[8], dctcoef dct4x4[8][16] );
  137. #define x264_dct2x4dc_avx x264_template(dct2x4dc_avx)
  138. void x264_dct2x4dc_avx ( dctcoef dct[8], dctcoef dct4x4[8][16] );
  139. #define x264_sub8x8_dct8_mmx x264_template(sub8x8_dct8_mmx)
  140. void x264_sub8x8_dct8_mmx ( int16_t dct [64], uint8_t *pix1, uint8_t *pix2 );
  141. #define x264_sub16x16_dct8_mmx x264_template(sub16x16_dct8_mmx)
  142. void x264_sub16x16_dct8_mmx ( int16_t dct[4][64], uint8_t *pix1, uint8_t *pix2 );
  143. #define x264_sub8x8_dct8_sse2 x264_template(sub8x8_dct8_sse2)
  144. void x264_sub8x8_dct8_sse2 ( dctcoef dct [64], pixel *pix1, pixel *pix2 );
  145. #define x264_sub16x16_dct8_sse2 x264_template(sub16x16_dct8_sse2)
  146. void x264_sub16x16_dct8_sse2 ( dctcoef dct[4][64], pixel *pix1, pixel *pix2 );
  147. #define x264_sub8x8_dct8_ssse3 x264_template(sub8x8_dct8_ssse3)
  148. void x264_sub8x8_dct8_ssse3 ( int16_t dct [64], uint8_t *pix1, uint8_t *pix2 );
  149. #define x264_sub16x16_dct8_ssse3 x264_template(sub16x16_dct8_ssse3)
  150. void x264_sub16x16_dct8_ssse3( int16_t dct[4][64], uint8_t *pix1, uint8_t *pix2 );
  151. #define x264_sub8x8_dct8_sse4 x264_template(sub8x8_dct8_sse4)
  152. void x264_sub8x8_dct8_sse4 ( int32_t dct [64], uint16_t *pix1, uint16_t *pix2 );
  153. #define x264_sub16x16_dct8_sse4 x264_template(sub16x16_dct8_sse4)
  154. void x264_sub16x16_dct8_sse4 ( int32_t dct[4][64], uint16_t *pix1, uint16_t *pix2 );
  155. #define x264_sub8x8_dct8_avx x264_template(sub8x8_dct8_avx)
  156. void x264_sub8x8_dct8_avx ( dctcoef dct [64], pixel *pix1, pixel *pix2 );
  157. #define x264_sub16x16_dct8_avx x264_template(sub16x16_dct8_avx)
  158. void x264_sub16x16_dct8_avx ( dctcoef dct[4][64], pixel *pix1, pixel *pix2 );
  159. #define x264_sub16x16_dct8_avx2 x264_template(sub16x16_dct8_avx2)
  160. void x264_sub16x16_dct8_avx2 ( dctcoef dct[4][64], pixel *pix1, pixel *pix2 );
  161. #define x264_add8x8_idct8_mmx x264_template(add8x8_idct8_mmx)
  162. void x264_add8x8_idct8_mmx ( uint8_t *dst, int16_t dct [64] );
  163. #define x264_add16x16_idct8_mmx x264_template(add16x16_idct8_mmx)
  164. void x264_add16x16_idct8_mmx ( uint8_t *dst, int16_t dct[4][64] );
  165. #define x264_add8x8_idct8_sse2 x264_template(add8x8_idct8_sse2)
  166. void x264_add8x8_idct8_sse2 ( pixel *dst, dctcoef dct [64] );
  167. #define x264_add16x16_idct8_sse2 x264_template(add16x16_idct8_sse2)
  168. void x264_add16x16_idct8_sse2( pixel *dst, dctcoef dct[4][64] );
  169. #define x264_add8x8_idct8_avx x264_template(add8x8_idct8_avx)
  170. void x264_add8x8_idct8_avx ( pixel *dst, dctcoef dct [64] );
  171. #define x264_add16x16_idct8_avx x264_template(add16x16_idct8_avx)
  172. void x264_add16x16_idct8_avx ( pixel *dst, dctcoef dct[4][64] );
  173. #define x264_zigzag_scan_8x8_frame_mmx2 x264_template(zigzag_scan_8x8_frame_mmx2)
  174. void x264_zigzag_scan_8x8_frame_mmx2 ( int16_t level[64], int16_t dct[64] );
  175. #define x264_zigzag_scan_8x8_frame_sse2 x264_template(zigzag_scan_8x8_frame_sse2)
  176. void x264_zigzag_scan_8x8_frame_sse2 ( dctcoef level[64], dctcoef dct[64] );
  177. #define x264_zigzag_scan_8x8_frame_ssse3 x264_template(zigzag_scan_8x8_frame_ssse3)
  178. void x264_zigzag_scan_8x8_frame_ssse3 ( int16_t level[64], int16_t dct[64] );
  179. #define x264_zigzag_scan_8x8_frame_avx x264_template(zigzag_scan_8x8_frame_avx)
  180. void x264_zigzag_scan_8x8_frame_avx ( dctcoef level[64], dctcoef dct[64] );
  181. #define x264_zigzag_scan_8x8_frame_xop x264_template(zigzag_scan_8x8_frame_xop)
  182. void x264_zigzag_scan_8x8_frame_xop ( int16_t level[64], int16_t dct[64] );
  183. #define x264_zigzag_scan_8x8_frame_avx512 x264_template(zigzag_scan_8x8_frame_avx512)
  184. void x264_zigzag_scan_8x8_frame_avx512( dctcoef level[64], dctcoef dct[64] );
  185. #define x264_zigzag_scan_4x4_frame_mmx x264_template(zigzag_scan_4x4_frame_mmx)
  186. void x264_zigzag_scan_4x4_frame_mmx ( int16_t level[16], int16_t dct[16] );
  187. #define x264_zigzag_scan_4x4_frame_sse2 x264_template(zigzag_scan_4x4_frame_sse2)
  188. void x264_zigzag_scan_4x4_frame_sse2 ( int32_t level[16], int32_t dct[16] );
  189. #define x264_zigzag_scan_4x4_frame_ssse3 x264_template(zigzag_scan_4x4_frame_ssse3)
  190. void x264_zigzag_scan_4x4_frame_ssse3 ( int16_t level[16], int16_t dct[16] );
  191. #define x264_zigzag_scan_4x4_frame_avx x264_template(zigzag_scan_4x4_frame_avx)
  192. void x264_zigzag_scan_4x4_frame_avx ( dctcoef level[16], dctcoef dct[16] );
  193. #define x264_zigzag_scan_4x4_frame_xop x264_template(zigzag_scan_4x4_frame_xop)
  194. void x264_zigzag_scan_4x4_frame_xop ( dctcoef level[16], dctcoef dct[16] );
  195. #define x264_zigzag_scan_4x4_frame_avx512 x264_template(zigzag_scan_4x4_frame_avx512)
  196. void x264_zigzag_scan_4x4_frame_avx512( dctcoef level[16], dctcoef dct[16] );
  197. #define x264_zigzag_scan_4x4_field_sse x264_template(zigzag_scan_4x4_field_sse)
  198. void x264_zigzag_scan_4x4_field_sse ( int16_t level[16], int16_t dct[16] );
  199. #define x264_zigzag_scan_4x4_field_sse2 x264_template(zigzag_scan_4x4_field_sse2)
  200. void x264_zigzag_scan_4x4_field_sse2 ( int32_t level[16], int32_t dct[16] );
  201. #define x264_zigzag_scan_4x4_field_avx512 x264_template(zigzag_scan_4x4_field_avx512)
  202. void x264_zigzag_scan_4x4_field_avx512( dctcoef level[16], dctcoef dct[16] );
  203. #define x264_zigzag_scan_8x8_field_mmx2 x264_template(zigzag_scan_8x8_field_mmx2)
  204. void x264_zigzag_scan_8x8_field_mmx2 ( int16_t level[64], int16_t dct[64] );
  205. #define x264_zigzag_scan_8x8_field_sse4 x264_template(zigzag_scan_8x8_field_sse4)
  206. void x264_zigzag_scan_8x8_field_sse4 ( int32_t level[64], int32_t dct[64] );
  207. #define x264_zigzag_scan_8x8_field_avx x264_template(zigzag_scan_8x8_field_avx)
  208. void x264_zigzag_scan_8x8_field_avx ( int32_t level[64], int32_t dct[64] );
  209. #define x264_zigzag_scan_8x8_field_xop x264_template(zigzag_scan_8x8_field_xop)
  210. void x264_zigzag_scan_8x8_field_xop ( int16_t level[64], int16_t dct[64] );
  211. #define x264_zigzag_scan_8x8_field_avx512 x264_template(zigzag_scan_8x8_field_avx512)
  212. void x264_zigzag_scan_8x8_field_avx512( dctcoef level[64], dctcoef dct[64] );
  213. #define x264_zigzag_sub_4x4_frame_avx x264_template(zigzag_sub_4x4_frame_avx)
  214. int x264_zigzag_sub_4x4_frame_avx ( int16_t level[16], const uint8_t *src, uint8_t *dst );
  215. #define x264_zigzag_sub_4x4_frame_ssse3 x264_template(zigzag_sub_4x4_frame_ssse3)
  216. int x264_zigzag_sub_4x4_frame_ssse3 ( int16_t level[16], const uint8_t *src, uint8_t *dst );
  217. #define x264_zigzag_sub_4x4ac_frame_avx x264_template(zigzag_sub_4x4ac_frame_avx)
  218. int x264_zigzag_sub_4x4ac_frame_avx ( int16_t level[16], const uint8_t *src, uint8_t *dst, int16_t *dc );
  219. #define x264_zigzag_sub_4x4ac_frame_ssse3 x264_template(zigzag_sub_4x4ac_frame_ssse3)
  220. int x264_zigzag_sub_4x4ac_frame_ssse3( int16_t level[16], const uint8_t *src, uint8_t *dst, int16_t *dc );
  221. #define x264_zigzag_sub_4x4_field_avx x264_template(zigzag_sub_4x4_field_avx)
  222. int x264_zigzag_sub_4x4_field_avx ( int16_t level[16], const uint8_t *src, uint8_t *dst );
  223. #define x264_zigzag_sub_4x4_field_ssse3 x264_template(zigzag_sub_4x4_field_ssse3)
  224. int x264_zigzag_sub_4x4_field_ssse3 ( int16_t level[16], const uint8_t *src, uint8_t *dst );
  225. #define x264_zigzag_sub_4x4ac_field_avx x264_template(zigzag_sub_4x4ac_field_avx)
  226. int x264_zigzag_sub_4x4ac_field_avx ( int16_t level[16], const uint8_t *src, uint8_t *dst, int16_t *dc );
  227. #define x264_zigzag_sub_4x4ac_field_ssse3 x264_template(zigzag_sub_4x4ac_field_ssse3)
  228. int x264_zigzag_sub_4x4ac_field_ssse3( int16_t level[16], const uint8_t *src, uint8_t *dst, int16_t *dc );
  229. #define x264_zigzag_interleave_8x8_cavlc_mmx x264_template(zigzag_interleave_8x8_cavlc_mmx)
  230. void x264_zigzag_interleave_8x8_cavlc_mmx ( int16_t *dst, int16_t *src, uint8_t *nnz );
  231. #define x264_zigzag_interleave_8x8_cavlc_sse2 x264_template(zigzag_interleave_8x8_cavlc_sse2)
  232. void x264_zigzag_interleave_8x8_cavlc_sse2 ( dctcoef *dst, dctcoef *src, uint8_t *nnz );
  233. #define x264_zigzag_interleave_8x8_cavlc_avx x264_template(zigzag_interleave_8x8_cavlc_avx)
  234. void x264_zigzag_interleave_8x8_cavlc_avx ( dctcoef *dst, dctcoef *src, uint8_t *nnz );
  235. #define x264_zigzag_interleave_8x8_cavlc_avx2 x264_template(zigzag_interleave_8x8_cavlc_avx2)
  236. void x264_zigzag_interleave_8x8_cavlc_avx2 ( int16_t *dst, int16_t *src, uint8_t *nnz );
  237. #define x264_zigzag_interleave_8x8_cavlc_avx512 x264_template(zigzag_interleave_8x8_cavlc_avx512)
  238. void x264_zigzag_interleave_8x8_cavlc_avx512( dctcoef *dst, dctcoef *src, uint8_t *nnz );
  239. #endif