test_vectors.cc 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385
  1. /*
  2. * Copyright (c) 2013 The WebM project authors. All Rights Reserved.
  3. *
  4. * Use of this source code is governed by a BSD-style license
  5. * that can be found in the LICENSE file in the root of the source
  6. * tree. An additional intellectual property rights grant can be found
  7. * in the file PATENTS. All contributing project authors may
  8. * be found in the AUTHORS file in the root of the source tree.
  9. */
  10. #include "test/test_vectors.h"
  11. namespace libvpx_test {
  12. #define NELEMENTS(x) static_cast<int>(sizeof(x) / sizeof(x[0]))
  13. #if CONFIG_VP8_DECODER
  14. const char *const kVP8TestVectors[] = {
  15. "vp80-00-comprehensive-001.ivf", "vp80-00-comprehensive-002.ivf",
  16. "vp80-00-comprehensive-003.ivf", "vp80-00-comprehensive-004.ivf",
  17. "vp80-00-comprehensive-005.ivf", "vp80-00-comprehensive-006.ivf",
  18. "vp80-00-comprehensive-007.ivf", "vp80-00-comprehensive-008.ivf",
  19. "vp80-00-comprehensive-009.ivf", "vp80-00-comprehensive-010.ivf",
  20. "vp80-00-comprehensive-011.ivf", "vp80-00-comprehensive-012.ivf",
  21. "vp80-00-comprehensive-013.ivf", "vp80-00-comprehensive-014.ivf",
  22. "vp80-00-comprehensive-015.ivf", "vp80-00-comprehensive-016.ivf",
  23. "vp80-00-comprehensive-017.ivf", "vp80-00-comprehensive-018.ivf",
  24. "vp80-01-intra-1400.ivf", "vp80-01-intra-1411.ivf",
  25. "vp80-01-intra-1416.ivf", "vp80-01-intra-1417.ivf",
  26. "vp80-02-inter-1402.ivf", "vp80-02-inter-1412.ivf",
  27. "vp80-02-inter-1418.ivf", "vp80-02-inter-1424.ivf",
  28. "vp80-03-segmentation-01.ivf", "vp80-03-segmentation-02.ivf",
  29. "vp80-03-segmentation-03.ivf", "vp80-03-segmentation-04.ivf",
  30. "vp80-03-segmentation-1401.ivf", "vp80-03-segmentation-1403.ivf",
  31. "vp80-03-segmentation-1407.ivf", "vp80-03-segmentation-1408.ivf",
  32. "vp80-03-segmentation-1409.ivf", "vp80-03-segmentation-1410.ivf",
  33. "vp80-03-segmentation-1413.ivf", "vp80-03-segmentation-1414.ivf",
  34. "vp80-03-segmentation-1415.ivf", "vp80-03-segmentation-1425.ivf",
  35. "vp80-03-segmentation-1426.ivf", "vp80-03-segmentation-1427.ivf",
  36. "vp80-03-segmentation-1432.ivf", "vp80-03-segmentation-1435.ivf",
  37. "vp80-03-segmentation-1436.ivf", "vp80-03-segmentation-1437.ivf",
  38. "vp80-03-segmentation-1441.ivf", "vp80-03-segmentation-1442.ivf",
  39. "vp80-04-partitions-1404.ivf", "vp80-04-partitions-1405.ivf",
  40. "vp80-04-partitions-1406.ivf", "vp80-05-sharpness-1428.ivf",
  41. "vp80-05-sharpness-1429.ivf", "vp80-05-sharpness-1430.ivf",
  42. "vp80-05-sharpness-1431.ivf", "vp80-05-sharpness-1433.ivf",
  43. "vp80-05-sharpness-1434.ivf", "vp80-05-sharpness-1438.ivf",
  44. "vp80-05-sharpness-1439.ivf", "vp80-05-sharpness-1440.ivf",
  45. "vp80-05-sharpness-1443.ivf", "vp80-06-smallsize.ivf"
  46. };
  47. const int kNumVP8TestVectors = NELEMENTS(kVP8TestVectors);
  48. #endif // CONFIG_VP8_DECODER
  49. #if CONFIG_VP9_DECODER
  50. #define RESIZE_TEST_VECTORS \
  51. "vp90-2-21-resize_inter_320x180_5_1-2.webm", \
  52. "vp90-2-21-resize_inter_320x180_5_3-4.webm", \
  53. "vp90-2-21-resize_inter_320x180_7_1-2.webm", \
  54. "vp90-2-21-resize_inter_320x180_7_3-4.webm", \
  55. "vp90-2-21-resize_inter_320x240_5_1-2.webm", \
  56. "vp90-2-21-resize_inter_320x240_5_3-4.webm", \
  57. "vp90-2-21-resize_inter_320x240_7_1-2.webm", \
  58. "vp90-2-21-resize_inter_320x240_7_3-4.webm", \
  59. "vp90-2-21-resize_inter_640x360_5_1-2.webm", \
  60. "vp90-2-21-resize_inter_640x360_5_3-4.webm", \
  61. "vp90-2-21-resize_inter_640x360_7_1-2.webm", \
  62. "vp90-2-21-resize_inter_640x360_7_3-4.webm", \
  63. "vp90-2-21-resize_inter_640x480_5_1-2.webm", \
  64. "vp90-2-21-resize_inter_640x480_5_3-4.webm", \
  65. "vp90-2-21-resize_inter_640x480_7_1-2.webm", \
  66. "vp90-2-21-resize_inter_640x480_7_3-4.webm", \
  67. "vp90-2-21-resize_inter_1280x720_5_1-2.webm", \
  68. "vp90-2-21-resize_inter_1280x720_5_3-4.webm", \
  69. "vp90-2-21-resize_inter_1280x720_7_1-2.webm", \
  70. "vp90-2-21-resize_inter_1280x720_7_3-4.webm", \
  71. "vp90-2-21-resize_inter_1920x1080_5_1-2.webm", \
  72. "vp90-2-21-resize_inter_1920x1080_5_3-4.webm", \
  73. "vp90-2-21-resize_inter_1920x1080_7_1-2.webm", \
  74. "vp90-2-21-resize_inter_1920x1080_7_3-4.webm",
  75. const char *const kVP9TestVectors[] = {
  76. "vp90-2-00-quantizer-00.webm",
  77. "vp90-2-00-quantizer-01.webm",
  78. "vp90-2-00-quantizer-02.webm",
  79. "vp90-2-00-quantizer-03.webm",
  80. "vp90-2-00-quantizer-04.webm",
  81. "vp90-2-00-quantizer-05.webm",
  82. "vp90-2-00-quantizer-06.webm",
  83. "vp90-2-00-quantizer-07.webm",
  84. "vp90-2-00-quantizer-08.webm",
  85. "vp90-2-00-quantizer-09.webm",
  86. "vp90-2-00-quantizer-10.webm",
  87. "vp90-2-00-quantizer-11.webm",
  88. "vp90-2-00-quantizer-12.webm",
  89. "vp90-2-00-quantizer-13.webm",
  90. "vp90-2-00-quantizer-14.webm",
  91. "vp90-2-00-quantizer-15.webm",
  92. "vp90-2-00-quantizer-16.webm",
  93. "vp90-2-00-quantizer-17.webm",
  94. "vp90-2-00-quantizer-18.webm",
  95. "vp90-2-00-quantizer-19.webm",
  96. "vp90-2-00-quantizer-20.webm",
  97. "vp90-2-00-quantizer-21.webm",
  98. "vp90-2-00-quantizer-22.webm",
  99. "vp90-2-00-quantizer-23.webm",
  100. "vp90-2-00-quantizer-24.webm",
  101. "vp90-2-00-quantizer-25.webm",
  102. "vp90-2-00-quantizer-26.webm",
  103. "vp90-2-00-quantizer-27.webm",
  104. "vp90-2-00-quantizer-28.webm",
  105. "vp90-2-00-quantizer-29.webm",
  106. "vp90-2-00-quantizer-30.webm",
  107. "vp90-2-00-quantizer-31.webm",
  108. "vp90-2-00-quantizer-32.webm",
  109. "vp90-2-00-quantizer-33.webm",
  110. "vp90-2-00-quantizer-34.webm",
  111. "vp90-2-00-quantizer-35.webm",
  112. "vp90-2-00-quantizer-36.webm",
  113. "vp90-2-00-quantizer-37.webm",
  114. "vp90-2-00-quantizer-38.webm",
  115. "vp90-2-00-quantizer-39.webm",
  116. "vp90-2-00-quantizer-40.webm",
  117. "vp90-2-00-quantizer-41.webm",
  118. "vp90-2-00-quantizer-42.webm",
  119. "vp90-2-00-quantizer-43.webm",
  120. "vp90-2-00-quantizer-44.webm",
  121. "vp90-2-00-quantizer-45.webm",
  122. "vp90-2-00-quantizer-46.webm",
  123. "vp90-2-00-quantizer-47.webm",
  124. "vp90-2-00-quantizer-48.webm",
  125. "vp90-2-00-quantizer-49.webm",
  126. "vp90-2-00-quantizer-50.webm",
  127. "vp90-2-00-quantizer-51.webm",
  128. "vp90-2-00-quantizer-52.webm",
  129. "vp90-2-00-quantizer-53.webm",
  130. "vp90-2-00-quantizer-54.webm",
  131. "vp90-2-00-quantizer-55.webm",
  132. "vp90-2-00-quantizer-56.webm",
  133. "vp90-2-00-quantizer-57.webm",
  134. "vp90-2-00-quantizer-58.webm",
  135. "vp90-2-00-quantizer-59.webm",
  136. "vp90-2-00-quantizer-60.webm",
  137. "vp90-2-00-quantizer-61.webm",
  138. "vp90-2-00-quantizer-62.webm",
  139. "vp90-2-00-quantizer-63.webm",
  140. "vp90-2-01-sharpness-1.webm",
  141. "vp90-2-01-sharpness-2.webm",
  142. "vp90-2-01-sharpness-3.webm",
  143. "vp90-2-01-sharpness-4.webm",
  144. "vp90-2-01-sharpness-5.webm",
  145. "vp90-2-01-sharpness-6.webm",
  146. "vp90-2-01-sharpness-7.webm",
  147. "vp90-2-02-size-08x08.webm",
  148. "vp90-2-02-size-08x10.webm",
  149. "vp90-2-02-size-08x16.webm",
  150. "vp90-2-02-size-08x18.webm",
  151. "vp90-2-02-size-08x32.webm",
  152. "vp90-2-02-size-08x34.webm",
  153. "vp90-2-02-size-08x64.webm",
  154. "vp90-2-02-size-08x66.webm",
  155. "vp90-2-02-size-10x08.webm",
  156. "vp90-2-02-size-10x10.webm",
  157. "vp90-2-02-size-10x16.webm",
  158. "vp90-2-02-size-10x18.webm",
  159. "vp90-2-02-size-10x32.webm",
  160. "vp90-2-02-size-10x34.webm",
  161. "vp90-2-02-size-10x64.webm",
  162. "vp90-2-02-size-10x66.webm",
  163. "vp90-2-02-size-16x08.webm",
  164. "vp90-2-02-size-16x10.webm",
  165. "vp90-2-02-size-16x16.webm",
  166. "vp90-2-02-size-16x18.webm",
  167. "vp90-2-02-size-16x32.webm",
  168. "vp90-2-02-size-16x34.webm",
  169. "vp90-2-02-size-16x64.webm",
  170. "vp90-2-02-size-16x66.webm",
  171. "vp90-2-02-size-18x08.webm",
  172. "vp90-2-02-size-18x10.webm",
  173. "vp90-2-02-size-18x16.webm",
  174. "vp90-2-02-size-18x18.webm",
  175. "vp90-2-02-size-18x32.webm",
  176. "vp90-2-02-size-18x34.webm",
  177. "vp90-2-02-size-18x64.webm",
  178. "vp90-2-02-size-18x66.webm",
  179. "vp90-2-02-size-32x08.webm",
  180. "vp90-2-02-size-32x10.webm",
  181. "vp90-2-02-size-32x16.webm",
  182. "vp90-2-02-size-32x18.webm",
  183. "vp90-2-02-size-32x32.webm",
  184. "vp90-2-02-size-32x34.webm",
  185. "vp90-2-02-size-32x64.webm",
  186. "vp90-2-02-size-32x66.webm",
  187. "vp90-2-02-size-34x08.webm",
  188. "vp90-2-02-size-34x10.webm",
  189. "vp90-2-02-size-34x16.webm",
  190. "vp90-2-02-size-34x18.webm",
  191. "vp90-2-02-size-34x32.webm",
  192. "vp90-2-02-size-34x34.webm",
  193. "vp90-2-02-size-34x64.webm",
  194. "vp90-2-02-size-34x66.webm",
  195. "vp90-2-02-size-64x08.webm",
  196. "vp90-2-02-size-64x10.webm",
  197. "vp90-2-02-size-64x16.webm",
  198. "vp90-2-02-size-64x18.webm",
  199. "vp90-2-02-size-64x32.webm",
  200. "vp90-2-02-size-64x34.webm",
  201. "vp90-2-02-size-64x64.webm",
  202. "vp90-2-02-size-64x66.webm",
  203. "vp90-2-02-size-66x08.webm",
  204. "vp90-2-02-size-66x10.webm",
  205. "vp90-2-02-size-66x16.webm",
  206. "vp90-2-02-size-66x18.webm",
  207. "vp90-2-02-size-66x32.webm",
  208. "vp90-2-02-size-66x34.webm",
  209. "vp90-2-02-size-66x64.webm",
  210. "vp90-2-02-size-66x66.webm",
  211. "vp90-2-02-size-130x132.webm",
  212. "vp90-2-02-size-132x130.webm",
  213. "vp90-2-02-size-132x132.webm",
  214. "vp90-2-02-size-178x180.webm",
  215. "vp90-2-02-size-180x178.webm",
  216. "vp90-2-02-size-180x180.webm",
  217. "vp90-2-03-size-196x196.webm",
  218. "vp90-2-03-size-196x198.webm",
  219. "vp90-2-03-size-196x200.webm",
  220. "vp90-2-03-size-196x202.webm",
  221. "vp90-2-03-size-196x208.webm",
  222. "vp90-2-03-size-196x210.webm",
  223. "vp90-2-03-size-196x224.webm",
  224. "vp90-2-03-size-196x226.webm",
  225. "vp90-2-03-size-198x196.webm",
  226. "vp90-2-03-size-198x198.webm",
  227. "vp90-2-03-size-198x200.webm",
  228. "vp90-2-03-size-198x202.webm",
  229. "vp90-2-03-size-198x208.webm",
  230. "vp90-2-03-size-198x210.webm",
  231. "vp90-2-03-size-198x224.webm",
  232. "vp90-2-03-size-198x226.webm",
  233. "vp90-2-03-size-200x196.webm",
  234. "vp90-2-03-size-200x198.webm",
  235. "vp90-2-03-size-200x200.webm",
  236. "vp90-2-03-size-200x202.webm",
  237. "vp90-2-03-size-200x208.webm",
  238. "vp90-2-03-size-200x210.webm",
  239. "vp90-2-03-size-200x224.webm",
  240. "vp90-2-03-size-200x226.webm",
  241. "vp90-2-03-size-202x196.webm",
  242. "vp90-2-03-size-202x198.webm",
  243. "vp90-2-03-size-202x200.webm",
  244. "vp90-2-03-size-202x202.webm",
  245. "vp90-2-03-size-202x208.webm",
  246. "vp90-2-03-size-202x210.webm",
  247. "vp90-2-03-size-202x224.webm",
  248. "vp90-2-03-size-202x226.webm",
  249. "vp90-2-03-size-208x196.webm",
  250. "vp90-2-03-size-208x198.webm",
  251. "vp90-2-03-size-208x200.webm",
  252. "vp90-2-03-size-208x202.webm",
  253. "vp90-2-03-size-208x208.webm",
  254. "vp90-2-03-size-208x210.webm",
  255. "vp90-2-03-size-208x224.webm",
  256. "vp90-2-03-size-208x226.webm",
  257. "vp90-2-03-size-210x196.webm",
  258. "vp90-2-03-size-210x198.webm",
  259. "vp90-2-03-size-210x200.webm",
  260. "vp90-2-03-size-210x202.webm",
  261. "vp90-2-03-size-210x208.webm",
  262. "vp90-2-03-size-210x210.webm",
  263. "vp90-2-03-size-210x224.webm",
  264. "vp90-2-03-size-210x226.webm",
  265. "vp90-2-03-size-224x196.webm",
  266. "vp90-2-03-size-224x198.webm",
  267. "vp90-2-03-size-224x200.webm",
  268. "vp90-2-03-size-224x202.webm",
  269. "vp90-2-03-size-224x208.webm",
  270. "vp90-2-03-size-224x210.webm",
  271. "vp90-2-03-size-224x224.webm",
  272. "vp90-2-03-size-224x226.webm",
  273. "vp90-2-03-size-226x196.webm",
  274. "vp90-2-03-size-226x198.webm",
  275. "vp90-2-03-size-226x200.webm",
  276. "vp90-2-03-size-226x202.webm",
  277. "vp90-2-03-size-226x208.webm",
  278. "vp90-2-03-size-226x210.webm",
  279. "vp90-2-03-size-226x224.webm",
  280. "vp90-2-03-size-226x226.webm",
  281. "vp90-2-03-size-352x288.webm",
  282. "vp90-2-03-deltaq.webm",
  283. "vp90-2-05-resize.ivf",
  284. "vp90-2-06-bilinear.webm",
  285. "vp90-2-07-frame_parallel.webm",
  286. "vp90-2-08-tile_1x2_frame_parallel.webm",
  287. "vp90-2-08-tile_1x2.webm",
  288. "vp90-2-08-tile_1x4_frame_parallel.webm",
  289. "vp90-2-08-tile_1x4.webm",
  290. "vp90-2-08-tile_1x8_frame_parallel.webm",
  291. "vp90-2-08-tile_1x8.webm",
  292. "vp90-2-08-tile-4x4.webm",
  293. "vp90-2-08-tile-4x1.webm",
  294. "vp90-2-09-subpixel-00.ivf",
  295. "vp90-2-02-size-lf-1920x1080.webm",
  296. "vp90-2-09-aq2.webm",
  297. "vp90-2-09-lf_deltas.webm",
  298. "vp90-2-10-show-existing-frame.webm",
  299. "vp90-2-10-show-existing-frame2.webm",
  300. "vp90-2-11-size-351x287.webm",
  301. "vp90-2-11-size-351x288.webm",
  302. "vp90-2-11-size-352x287.webm",
  303. "vp90-2-12-droppable_1.ivf",
  304. "vp90-2-12-droppable_2.ivf",
  305. "vp90-2-12-droppable_3.ivf",
  306. #if !CONFIG_SIZE_LIMIT || \
  307. (DECODE_WIDTH_LIMIT >= 20400 && DECODE_HEIGHT_LIMIT >= 120)
  308. "vp90-2-13-largescaling.webm",
  309. #endif
  310. "vp90-2-14-resize-fp-tiles-1-16.webm",
  311. "vp90-2-14-resize-fp-tiles-1-2-4-8-16.webm",
  312. "vp90-2-14-resize-fp-tiles-1-2.webm",
  313. "vp90-2-14-resize-fp-tiles-1-4.webm",
  314. "vp90-2-14-resize-fp-tiles-16-1.webm",
  315. "vp90-2-14-resize-fp-tiles-16-2.webm",
  316. "vp90-2-14-resize-fp-tiles-16-4.webm",
  317. "vp90-2-14-resize-fp-tiles-16-8-4-2-1.webm",
  318. "vp90-2-14-resize-fp-tiles-16-8.webm",
  319. "vp90-2-14-resize-fp-tiles-1-8.webm",
  320. "vp90-2-14-resize-fp-tiles-2-16.webm",
  321. "vp90-2-14-resize-fp-tiles-2-1.webm",
  322. "vp90-2-14-resize-fp-tiles-2-4.webm",
  323. "vp90-2-14-resize-fp-tiles-2-8.webm",
  324. "vp90-2-14-resize-fp-tiles-4-16.webm",
  325. "vp90-2-14-resize-fp-tiles-4-1.webm",
  326. "vp90-2-14-resize-fp-tiles-4-2.webm",
  327. "vp90-2-14-resize-fp-tiles-4-8.webm",
  328. "vp90-2-14-resize-fp-tiles-8-16.webm",
  329. "vp90-2-14-resize-fp-tiles-8-1.webm",
  330. "vp90-2-14-resize-fp-tiles-8-2.webm",
  331. "vp90-2-14-resize-fp-tiles-8-4.webm",
  332. "vp90-2-14-resize-10frames-fp-tiles-1-2-4-8.webm",
  333. "vp90-2-14-resize-10frames-fp-tiles-1-2.webm",
  334. "vp90-2-14-resize-10frames-fp-tiles-1-4.webm",
  335. "vp90-2-14-resize-10frames-fp-tiles-1-8.webm",
  336. "vp90-2-14-resize-10frames-fp-tiles-2-1.webm",
  337. "vp90-2-14-resize-10frames-fp-tiles-2-4.webm",
  338. "vp90-2-14-resize-10frames-fp-tiles-2-8.webm",
  339. "vp90-2-14-resize-10frames-fp-tiles-4-1.webm",
  340. "vp90-2-14-resize-10frames-fp-tiles-4-2.webm",
  341. "vp90-2-14-resize-10frames-fp-tiles-4-8.webm",
  342. "vp90-2-14-resize-10frames-fp-tiles-8-1.webm",
  343. "vp90-2-14-resize-10frames-fp-tiles-8-2.webm",
  344. "vp90-2-14-resize-10frames-fp-tiles-8-4-2-1.webm",
  345. "vp90-2-14-resize-10frames-fp-tiles-8-4.webm",
  346. "vp90-2-15-segkey.webm",
  347. "vp90-2-15-segkey_adpq.webm",
  348. "vp90-2-16-intra-only.webm",
  349. "vp90-2-17-show-existing-frame.webm",
  350. "vp90-2-18-resize.ivf",
  351. "vp90-2-19-skip.webm",
  352. "vp90-2-19-skip-01.webm",
  353. "vp90-2-19-skip-02.webm",
  354. "vp91-2-04-yuv444.webm",
  355. "vp91-2-04-yuv422.webm",
  356. "vp91-2-04-yuv440.webm",
  357. #if CONFIG_VP9_HIGHBITDEPTH
  358. "vp92-2-20-10bit-yuv420.webm",
  359. "vp92-2-20-12bit-yuv420.webm",
  360. "vp93-2-20-10bit-yuv422.webm",
  361. "vp93-2-20-12bit-yuv422.webm",
  362. "vp93-2-20-10bit-yuv440.webm",
  363. "vp93-2-20-12bit-yuv440.webm",
  364. "vp93-2-20-10bit-yuv444.webm",
  365. "vp93-2-20-12bit-yuv444.webm",
  366. #endif // CONFIG_VP9_HIGHBITDEPTH
  367. "vp90-2-20-big_superframe-01.webm",
  368. "vp90-2-20-big_superframe-02.webm",
  369. "vp90-2-22-svc_1280x720_1.webm",
  370. RESIZE_TEST_VECTORS
  371. };
  372. const char *const kVP9TestVectorsSvc[] = { "vp90-2-22-svc_1280x720_3.ivf" };
  373. const int kNumVP9TestVectors = NELEMENTS(kVP9TestVectors);
  374. const int kNumVP9TestVectorsSvc = NELEMENTS(kVP9TestVectorsSvc);
  375. const char *const kVP9TestVectorsResize[] = { RESIZE_TEST_VECTORS };
  376. const int kNumVP9TestVectorsResize = NELEMENTS(kVP9TestVectorsResize);
  377. #undef RESIZE_TEST_VECTORS
  378. #endif // CONFIG_VP9_DECODER
  379. } // namespace libvpx_test