qpeldsp_mips.h 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261
  1. /*
  2. * Copyright (c) 2015 Parag Salasakar (Parag.Salasakar@imgtec.com)
  3. *
  4. * This file is part of FFmpeg.
  5. *
  6. * FFmpeg is free software; you can redistribute it and/or
  7. * modify it under the terms of the GNU Lesser General Public
  8. * License as published by the Free Software Foundation; either
  9. * version 2.1 of the License, or (at your option) any later version.
  10. *
  11. * FFmpeg is distributed in the hope that it will be useful,
  12. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  14. * Lesser General Public License for more details.
  15. *
  16. * You should have received a copy of the GNU Lesser General Public
  17. * License along with FFmpeg; if not, write to the Free Software
  18. * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  19. */
  20. #ifndef AVCODEC_MIPS_QPELDSP_MIPS_H
  21. #define AVCODEC_MIPS_QPELDSP_MIPS_H
  22. #include "../mpegvideo.h"
  23. void ff_copy_8x8_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride);
  24. void ff_copy_16x16_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride);
  25. void ff_avg_width8_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride);
  26. void ff_avg_width16_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride);
  27. void ff_horiz_mc_qpel_aver_src0_8width_msa(uint8_t *dst, const uint8_t *src,
  28. ptrdiff_t stride);
  29. void ff_horiz_mc_qpel_aver_src0_16width_msa(uint8_t *dst, const uint8_t *src,
  30. ptrdiff_t stride);
  31. void ff_horiz_mc_qpel_8width_msa(uint8_t *dst, const uint8_t *src,
  32. ptrdiff_t stride);
  33. void ff_horiz_mc_qpel_16width_msa(uint8_t *dst, const uint8_t *src,
  34. ptrdiff_t stride);
  35. void ff_horiz_mc_qpel_aver_src1_8width_msa(uint8_t *dst, const uint8_t *src,
  36. ptrdiff_t stride);
  37. void ff_horiz_mc_qpel_aver_src1_16width_msa(uint8_t *dst, const uint8_t *src,
  38. ptrdiff_t stride);
  39. void ff_horiz_mc_qpel_no_rnd_aver_src0_8width_msa(uint8_t *dst,
  40. const uint8_t *src,
  41. ptrdiff_t stride);
  42. void ff_horiz_mc_qpel_no_rnd_aver_src0_16width_msa(uint8_t *dst,
  43. const uint8_t *src,
  44. ptrdiff_t stride);
  45. void ff_horiz_mc_qpel_no_rnd_8width_msa(uint8_t *dst, const uint8_t *src,
  46. ptrdiff_t stride);
  47. void ff_horiz_mc_qpel_no_rnd_16width_msa(uint8_t *dst, const uint8_t *src,
  48. ptrdiff_t stride);
  49. void ff_horiz_mc_qpel_no_rnd_aver_src1_8width_msa(uint8_t *dst,
  50. const uint8_t *src,
  51. ptrdiff_t stride);
  52. void ff_horiz_mc_qpel_no_rnd_aver_src1_16width_msa(uint8_t *dst,
  53. const uint8_t *src,
  54. ptrdiff_t stride);
  55. void ff_horiz_mc_qpel_avg_dst_aver_src0_8width_msa(uint8_t *dst,
  56. const uint8_t *src,
  57. ptrdiff_t stride);
  58. void ff_horiz_mc_qpel_avg_dst_aver_src0_16width_msa(uint8_t *dst,
  59. const uint8_t *src,
  60. ptrdiff_t stride);
  61. void ff_horiz_mc_qpel_avg_dst_8width_msa(uint8_t *dst, const uint8_t *src,
  62. ptrdiff_t stride);
  63. void ff_horiz_mc_qpel_avg_dst_16width_msa(uint8_t *dst, const uint8_t *src,
  64. ptrdiff_t stride);
  65. void ff_horiz_mc_qpel_avg_dst_aver_src1_8width_msa(uint8_t *dst,
  66. const uint8_t *src,
  67. ptrdiff_t stride);
  68. void ff_horiz_mc_qpel_avg_dst_aver_src1_16width_msa(uint8_t *dst,
  69. const uint8_t *src,
  70. ptrdiff_t stride);
  71. void ff_vert_mc_qpel_aver_src0_8x8_msa(uint8_t *dst, const uint8_t *src,
  72. ptrdiff_t stride);
  73. void ff_vert_mc_qpel_aver_src0_16x16_msa(uint8_t *dst, const uint8_t *src,
  74. ptrdiff_t stride);
  75. void ff_vert_mc_qpel_8x8_msa(uint8_t *dst, const uint8_t *src,
  76. ptrdiff_t stride);
  77. void ff_vert_mc_qpel_16x16_msa(uint8_t *dst, const uint8_t *src,
  78. ptrdiff_t stride);
  79. void ff_vert_mc_qpel_aver_src1_8x8_msa(uint8_t *dst, const uint8_t *src,
  80. ptrdiff_t stride);
  81. void ff_vert_mc_qpel_aver_src1_16x16_msa(uint8_t *dst, const uint8_t *src,
  82. ptrdiff_t stride);
  83. void ff_vert_mc_qpel_no_rnd_aver_src0_8x8_msa(uint8_t *dst,
  84. const uint8_t *src,
  85. ptrdiff_t stride);
  86. void ff_vert_mc_qpel_no_rnd_aver_src0_16x16_msa(uint8_t *dst,
  87. const uint8_t *src,
  88. ptrdiff_t stride);
  89. void ff_vert_mc_qpel_no_rnd_8x8_msa(uint8_t *dst, const uint8_t *src,
  90. ptrdiff_t stride);
  91. void ff_vert_mc_qpel_no_rnd_16x16_msa(uint8_t *dst, const uint8_t *src,
  92. ptrdiff_t stride);
  93. void ff_vert_mc_qpel_no_rnd_aver_src1_8x8_msa(uint8_t *dst,
  94. const uint8_t *src,
  95. ptrdiff_t stride);
  96. void ff_vert_mc_qpel_no_rnd_aver_src1_16x16_msa(uint8_t *dst,
  97. const uint8_t *src,
  98. ptrdiff_t stride);
  99. void ff_vert_mc_qpel_avg_dst_aver_src0_8x8_msa(uint8_t *dst,
  100. const uint8_t *src,
  101. ptrdiff_t stride);
  102. void ff_vert_mc_qpel_avg_dst_aver_src0_16x16_msa(uint8_t *dst,
  103. const uint8_t *src,
  104. ptrdiff_t stride);
  105. void ff_vert_mc_qpel_avg_dst_8x8_msa(uint8_t *dst, const uint8_t *src,
  106. ptrdiff_t stride);
  107. void ff_vert_mc_qpel_avg_dst_16x16_msa(uint8_t *dst, const uint8_t *src,
  108. ptrdiff_t stride);
  109. void ff_vert_mc_qpel_avg_dst_aver_src1_8x8_msa(uint8_t *dst,
  110. const uint8_t *src,
  111. ptrdiff_t stride);
  112. void ff_vert_mc_qpel_avg_dst_aver_src1_16x16_msa(uint8_t *dst,
  113. const uint8_t *src,
  114. ptrdiff_t stride);
  115. void ff_hv_mc_qpel_aver_hv_src00_16x16_msa(uint8_t *dst, const uint8_t *src,
  116. ptrdiff_t stride);
  117. void ff_hv_mc_qpel_aver_hv_src00_8x8_msa(uint8_t *dst, const uint8_t *src,
  118. ptrdiff_t stride);
  119. void ff_hv_mc_qpel_aver_v_src0_16x16_msa(uint8_t *dst, const uint8_t *src,
  120. ptrdiff_t stride);
  121. void ff_hv_mc_qpel_aver_v_src0_8x8_msa(uint8_t *dst, const uint8_t *src,
  122. ptrdiff_t stride);
  123. void ff_hv_mc_qpel_aver_hv_src10_16x16_msa(uint8_t *dst, const uint8_t *src,
  124. ptrdiff_t stride);
  125. void ff_hv_mc_qpel_aver_hv_src10_8x8_msa(uint8_t *dst, const uint8_t *src,
  126. ptrdiff_t stride);
  127. void ff_hv_mc_qpel_aver_h_src0_16x16_msa(uint8_t *dst, const uint8_t *src,
  128. ptrdiff_t stride);
  129. void ff_hv_mc_qpel_aver_h_src0_8x8_msa(uint8_t *dst, const uint8_t *src,
  130. ptrdiff_t stride);
  131. void ff_hv_mc_qpel_16x16_msa(uint8_t *dst, const uint8_t *src,
  132. ptrdiff_t stride);
  133. void ff_hv_mc_qpel_8x8_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride);
  134. void ff_hv_mc_qpel_aver_h_src1_16x16_msa(uint8_t *dst, const uint8_t *src,
  135. ptrdiff_t stride);
  136. void ff_hv_mc_qpel_aver_h_src1_8x8_msa(uint8_t *dst, const uint8_t *src,
  137. ptrdiff_t stride);
  138. void ff_hv_mc_qpel_aver_hv_src01_16x16_msa(uint8_t *dst, const uint8_t *src,
  139. ptrdiff_t stride);
  140. void ff_hv_mc_qpel_aver_hv_src01_8x8_msa(uint8_t *dst, const uint8_t *src,
  141. ptrdiff_t stride);
  142. void ff_hv_mc_qpel_aver_v_src1_16x16_msa(uint8_t *dst, const uint8_t *src,
  143. ptrdiff_t stride);
  144. void ff_hv_mc_qpel_aver_v_src1_8x8_msa(uint8_t *dst, const uint8_t *src,
  145. ptrdiff_t stride);
  146. void ff_hv_mc_qpel_aver_hv_src11_16x16_msa(uint8_t *dst, const uint8_t *src,
  147. ptrdiff_t stride);
  148. void ff_hv_mc_qpel_aver_hv_src11_8x8_msa(uint8_t *dst, const uint8_t *src,
  149. ptrdiff_t stride);
  150. void ff_hv_mc_qpel_avg_dst_aver_hv_src00_16x16_msa(uint8_t *dst,
  151. const uint8_t *src,
  152. ptrdiff_t stride);
  153. void ff_hv_mc_qpel_avg_dst_aver_hv_src00_8x8_msa(uint8_t *dst,
  154. const uint8_t *src,
  155. ptrdiff_t stride);
  156. void ff_hv_mc_qpel_avg_dst_aver_v_src0_16x16_msa(uint8_t *dst,
  157. const uint8_t *src,
  158. ptrdiff_t stride);
  159. void ff_hv_mc_qpel_avg_dst_aver_v_src0_8x8_msa(uint8_t *dst,
  160. const uint8_t *src,
  161. ptrdiff_t stride);
  162. void ff_hv_mc_qpel_avg_dst_aver_hv_src10_16x16_msa(uint8_t *dst,
  163. const uint8_t *src,
  164. ptrdiff_t stride);
  165. void ff_hv_mc_qpel_avg_dst_aver_hv_src10_8x8_msa(uint8_t *dst,
  166. const uint8_t *src,
  167. ptrdiff_t stride);
  168. void ff_hv_mc_qpel_avg_dst_aver_h_src0_16x16_msa(uint8_t *dst,
  169. const uint8_t *src,
  170. ptrdiff_t stride);
  171. void ff_hv_mc_qpel_avg_dst_aver_h_src0_8x8_msa(uint8_t *dst,
  172. const uint8_t *src,
  173. ptrdiff_t stride);
  174. void ff_hv_mc_qpel_avg_dst_16x16_msa(uint8_t *dst, const uint8_t *src,
  175. ptrdiff_t stride);
  176. void ff_hv_mc_qpel_avg_dst_8x8_msa(uint8_t *dst, const uint8_t *src,
  177. ptrdiff_t stride);
  178. void ff_hv_mc_qpel_avg_dst_aver_h_src1_16x16_msa(uint8_t *dst,
  179. const uint8_t *src,
  180. ptrdiff_t stride);
  181. void ff_hv_mc_qpel_avg_dst_aver_h_src1_8x8_msa(uint8_t *dst,
  182. const uint8_t *src,
  183. ptrdiff_t stride);
  184. void ff_hv_mc_qpel_avg_dst_aver_hv_src01_16x16_msa(uint8_t *dst,
  185. const uint8_t *src,
  186. ptrdiff_t stride);
  187. void ff_hv_mc_qpel_avg_dst_aver_hv_src01_8x8_msa(uint8_t *dst,
  188. const uint8_t *src,
  189. ptrdiff_t stride);
  190. void ff_hv_mc_qpel_avg_dst_aver_v_src1_16x16_msa(uint8_t *dst,
  191. const uint8_t *src,
  192. ptrdiff_t stride);
  193. void ff_hv_mc_qpel_avg_dst_aver_v_src1_8x8_msa(uint8_t *dst,
  194. const uint8_t *src,
  195. ptrdiff_t stride);
  196. void ff_hv_mc_qpel_avg_dst_aver_hv_src11_16x16_msa(uint8_t *dst,
  197. const uint8_t *src,
  198. ptrdiff_t stride);
  199. void ff_hv_mc_qpel_avg_dst_aver_hv_src11_8x8_msa(uint8_t *dst,
  200. const uint8_t *src,
  201. ptrdiff_t stride);
  202. void ff_hv_mc_qpel_no_rnd_aver_hv_src00_16x16_msa(uint8_t *dst,
  203. const uint8_t *src,
  204. ptrdiff_t stride);
  205. void ff_hv_mc_qpel_no_rnd_aver_hv_src00_8x8_msa(uint8_t *dst,
  206. const uint8_t *src,
  207. ptrdiff_t stride);
  208. void ff_hv_mc_qpel_no_rnd_aver_v_src0_16x16_msa(uint8_t *dst,
  209. const uint8_t *src,
  210. ptrdiff_t stride);
  211. void ff_hv_mc_qpel_no_rnd_aver_v_src0_8x8_msa(uint8_t *dst,
  212. const uint8_t *src,
  213. ptrdiff_t stride);
  214. void ff_hv_mc_qpel_no_rnd_aver_hv_src10_16x16_msa(uint8_t *dst,
  215. const uint8_t *src,
  216. ptrdiff_t stride);
  217. void ff_hv_mc_qpel_no_rnd_aver_hv_src10_8x8_msa(uint8_t *dst,
  218. const uint8_t *src,
  219. ptrdiff_t stride);
  220. void ff_hv_mc_qpel_no_rnd_aver_h_src0_16x16_msa(uint8_t *dst,
  221. const uint8_t *src,
  222. ptrdiff_t stride);
  223. void ff_hv_mc_qpel_no_rnd_aver_h_src0_8x8_msa(uint8_t *dst,
  224. const uint8_t *src,
  225. ptrdiff_t stride);
  226. void ff_hv_mc_qpel_no_rnd_16x16_msa(uint8_t *dst, const uint8_t *src,
  227. ptrdiff_t stride);
  228. void ff_hv_mc_qpel_no_rnd_8x8_msa(uint8_t *dst, const uint8_t *src,
  229. ptrdiff_t stride);
  230. void ff_hv_mc_qpel_no_rnd_aver_h_src1_16x16_msa(uint8_t *dst,
  231. const uint8_t *src,
  232. ptrdiff_t stride);
  233. void ff_hv_mc_qpel_no_rnd_aver_h_src1_8x8_msa(uint8_t *dst,
  234. const uint8_t *src,
  235. ptrdiff_t stride);
  236. void ff_hv_mc_qpel_no_rnd_aver_hv_src01_16x16_msa(uint8_t *dst,
  237. const uint8_t *src,
  238. ptrdiff_t stride);
  239. void ff_hv_mc_qpel_no_rnd_aver_hv_src01_8x8_msa(uint8_t *dst,
  240. const uint8_t *src,
  241. ptrdiff_t stride);
  242. void ff_hv_mc_qpel_no_rnd_aver_v_src1_16x16_msa(uint8_t *dst,
  243. const uint8_t *src,
  244. ptrdiff_t stride);
  245. void ff_hv_mc_qpel_no_rnd_aver_v_src1_8x8_msa(uint8_t *dst,
  246. const uint8_t *src,
  247. ptrdiff_t stride);
  248. void ff_hv_mc_qpel_no_rnd_aver_hv_src11_16x16_msa(uint8_t *dst,
  249. const uint8_t *src,
  250. ptrdiff_t stride);
  251. void ff_hv_mc_qpel_no_rnd_aver_hv_src11_8x8_msa(uint8_t *dst,
  252. const uint8_t *src,
  253. ptrdiff_t stride);
  254. #endif // #ifndef AVCODEC_MIPS_QPELDSP_MIPS_H