1 /*------------------------------------------------------------------------
2 * Vulkan Conformance Tests
3 * ------------------------
4 *
5 * Copyright (c) 2023 The Khronos Group Inc.
6 *
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
10 *
11 * http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 *
19 *//*!
20 * \file
21 * \brief Reference checksums for video decode validation
22 *
23 * See the <vulkan_data_dir>/vulkan/video/frame_checksums.py file for
24 * instructions on generating the checksums for new tests.
25 *--------------------------------------------------------------------*/
26
27 #include "vktVideoClipInfo.hpp"
28
29 namespace vkt
30 {
31 namespace video
32 {
33
34 static const char *clipA[30] = {
35 "7fec73fbcd485785b0c5f14776628bd6", "4e635dfa94b770ee983540746f416270", "a8bbb2ae42f5edebe7891ff803be7c4f",
36 "3389478c7a0011551274bb68ce6deb5f", "63aa1d861304729dfec950f486a15a0b", "04980dcedb06d21d0c7dc37653d3a458",
37 "2a0162386ebbf3eea6f613042cb2a617", "a29121c412ae6bda174254039a5b6086", "bfdeb27a7a83b250a8311a4468c3e4bf",
38 "cee21548a5235a8eea878dd695ef8f50", "3b8cc378c3843c7c5918e9213e9e4f81", "d11322bbaec122fcc7f2d8ed6b455110",
39 "ffe3f13784f7689735d2b8c96bcd2d0b", "0253711c4523988d4b9736238f5e5d01", "d3968c4560c31815443f857ddb0082a3",
40 "74b0ae5f72a6676e4679b30f06598277", "7d49ad952d2600aefe20e0a6611e91bf", "32d86ff0d1dfb493adb2d90e973025fb",
41 "a0f52f968b800bd8b67c2a44b5394690", "0a54a47ed72ecead9f7a43f39a562fca", "c1effee5f75f5c59c71a3765e199861c",
42 "75f020c1da96c2d5da31483c16a1e4ed", "66cfa534ced4f1b18b6b04cc0a41331d", "3648527cf7b9b7366759c5ab8f1aab20",
43 "1c7c47a07c5bb38dfe2a4e9e2cf5d860", "2e2bc3c723a731b4df4eb32a0b36293d", "6e647c760a0304d97abf291a2b9e66be",
44 "5a9fe2e1bdf31ad0d256aeeecbe35ae7", "3e825fb6fb5361151fb7c1347523d6d0", "2870bd63631f4b787a1b084974cd519c",
45 };
46
47 static const char *clipB[30] = {
48 "a5221c5caa575aadb9c6c1e968ab6c29", "5214efd7d98f6c4dcab897bb1310743b", "6c7ab991e68a285711731911d88ed121",
49 "43a583ed805e254a5473ae515eea2e93", "1a9fb658f449d71648b6f2cdca1aa34d", "377be6813960071259167f7305894469",
50 "cf3ab21b6b6570f63a2b8eff7ee04879", "596a68452693b2e56df40e30275a353e", "e785d42901a1196690bd0f3700011a90",
51 "88a00463d768d796e106408ebcb6721e", "bda7da34a619ef6d9cd08ab03fa72e3a", "bebc1624c3cdebcfc3016c33955f4923",
52 "e209eac5c302e23252570b74973f94bf", "4ff0ba2f72cb6d8f0229dc12e2cfbbcf", "18ac88f74d7df142046079d733779035",
53 "147bb36e92f6ff87e348c48f38b47dab", "9e09197f76ba89c70c2b183a167a6696", "867c16867c26bc0c58f16c5ebeff6eb2",
54 "b8efc23369b7f2ea19e2b21ce97368db", "5b911f588984740ef772f5845f3a5805", "27f0f7fe39718799061e0e532bfbed14",
55 "60020402bc2b645b703af5156f52ee9d", "d73e71817bf776b62b4d1e81793d659f", "e873082290fbcfddebd784fc2edaab9f",
56 "2f4e293b00c145f1f5515920d2fd5705", "be907f259eca15e8914bc08861f3c76f", "a18eb46de4c7dff7915bc65673d2fff9",
57 "615315bca5a50fabad86745e070b3c8f", "2a2aa07f61aa590eb9a10a07c85dfe04", "119fd37851af0cac45fda60d7dc1ccd8",
58 };
59
60 static const char *clipC[30] = {
61 "2086be0ea6f35e68a9f34ea51a359ef0", // 352x288 reference checksums
62 "9e045b8e14c7f635fff4a4e56a359ff7", "b9aace50035d92d2b2b0cbc5049ccea1", "eda08231bb604567d72d850b9aaa8658",
63 "b5b9ec2c1a231f595c6c747a93926287", "81f77e981e65926f04ed9483f838ce1f", "8fb63cb865f410e5d003a6691ef6d998",
64 "0417e3ce4d51670e8cf5e1a1a8b64b0d", "5c7cee8e1e72b3acb71dd09f51e3d4e4", "966368b1970e59dbd14d5e492691c25c",
65 "8afd1bb08c05651dacc5bf1a72fb1001", "bd9fe310e70fc55fbc0b43895aa14eb1", "057435492eb70ebf1ffcec5b423828f7",
66 "6df3ab9e8f590e8e21b88e5401361d49", "531730c9a1ce3076c5f1a30609efcf17",
67 "87823f36c56ecd539c955cfe3e44d097", // 176x144 reference checksums
68 "65399b5342b3ee7bba9f51074523ae16", "fd3c5efbc237e24c3242aaa35124b77c", "56dd0b57ba4b436605f236ae7ad8535c",
69 "c1694a837158581a282493ffb7778d1a", "64417694aeccbe36abb77cd5689083ea", "08bba16075a5d1d36fadac3ca3a71d06",
70 "adb982cd7240ab8d97924631455a5d88", "822bd35904dabe46e9238aae77c5e85f", "1da1fc85653b894fc6f4cf2ddd41b7f6",
71 "80e283c058324a21cace4c8ed1f0a178", "b5169864eb21620a1a4a0f988c01fefa", "cf38cf96287f0cd13fdbdc2b25cfd0d1",
72 "95b71dc4a6a7925cfb1ad6c76e547b95", "c2146da8b89f068e00d7de837a02b89c",
73 };
74
75 static const char *h264_4k_26_ibp_main[26] = {
76 "2cd5ad413430098893a617ab46a7b885", "0b82fc7501897a834470f68e0647c96b", "5099dbd788ec90ad9010bbcc4ca3a813",
77 "10ffaf41904c779627ab6ae9ebe5bf9f", "7d4aca0319da143a09d03b3b13d5ba23", "34f6ab5b1b676c189950f0b2f80d9431",
78 "e812f06035d77030cf56eaa65632783c", "f8dbeb21b35a5fedcfd171a8207f836b", "b0c5a18f31c92e9778d1dcdca4b781d3",
79 "bb89ff68261f0626eb8699dc3e000278", "aeb5064995db3a5cdae6283c67a2949e", "425dfb76d5961994a6dff267dc0fc5a6",
80 "17800cb3d7598c6284f544069653c594", "bb193efca8e1a2f6bcb9f523c815468f", "a8eb65b204edc25a9dada32889717218",
81 "715e7ec00e756ca3c85722f9464aeba3", "496e1e2c97a8cbfabb7b179838e3384f", "102445bf67c88ecb761f3263b8ab672b",
82 "d9a3dbe8b05a4d7fd04a4564771b3dc0", "8fe9190578592d6a551f47f19926bb21", "854519810e75eb9501e896ec66b83d59",
83 "ccd65246951a2b77dce66e11faa97811", "cde30e5d581267834ae91f4af77d7fac", "e144d9fe07470ae7be48362ab8817cc1",
84 "4ef58adc2006d4456a0145102efe83b3", "ebfb7d5301c287e09a6473402fdcd010",
85 };
86
87 static const char *jellyfishHEVC[26] = {
88 "131ecbc5c6ebac63c3b25721cb5cb2b2", "0a9da70fd9959874e74542c7768d9e08", "2f09ce3f5d243d84b12f53d2574b8e9c",
89 "909d939a5d09650e49703b7e78beddfe", "483cf425d719b961173db2f1a1c7f282", "b3d1e44427723fb80d1229e335e2cacd",
90 "5c5f38b8ab0f19602c0af8fc4a7b37a1", "7e3e579e923a0f5d07b75fa18e8be8ce", "ad2dc11df6f46a011d0dd923c0001dc5",
91 "f490093b4e2dfee8fe13b2e41310607f", "982511b0c457e643b4f77bfd64db55eb", "f985dc3bd5b366edf0a7541af3fa3a72",
92 "6493f4a899a3450fe8f2dfb77ab97812", "04dec3a5a5ce2bd480593a708885a0c2", "0afbf90e7e45c04f566eac2aecb19e52",
93 "e1016a026c40490db627cdc51ef7b600", "869d25ef36cc75bc2729ab4a563cd1a0", "ba0f91e20161af480776c24790538153",
94 "5896ccae5cdc7abbee7d064f11bc55bf", "80565c134c28c8413cb8ee6217af15fd", "e1acab18892d012cf14d6acc69f660b5",
95 "c05cf136e5f464daa2e03484d855913e", "20f32820fa8deb9e971f56778bc7ba96", "e9bbe21340ed0c828a6f2eb5c2b204e6",
96 "27c5e8099070dfcbae31ba7f9ddd97e5", "87be085bd498c3f97e9bc55beed79683",
97 };
98
99 static const char *basic8AV1[30] = {
100 "7fec73fbcd485785b0c5f14776628bd6", "b65b9cf2f8194236330fd5e7e8350b16", "7c4cc029090f45796b43ff352b4cc679",
101 "077561167a837df5a9a946f6a8c18a5c", "5f435c0ec053c75aab6233fce40a4125", "45a58a0ec4751e0e7205e5fbfef675b0",
102 "9cd28856648ad33b8e3fa9514877fec4", "306d5ca2e91b557e4ce36474183f2234", "fe3e74c45a285e13001cfeb58f3338fb",
103 "f1a22400b16f1c52c66eef9dd0840b74", "85ea43d8cf2ab462ee331e0e68f17a56", "2ec2d8f051dada172f6acf85d6b7b4b6",
104 "438872ba513b608047e6375040252599", "bf1201624ce3e14b836d4e41de62f3ac", "07797e7c21f0ccc3409cd940d7fe9051",
105 "855a29477f4193b144fa58448cccab15", "0c061a895e0ee6f88ef3db6605a0af29", "17d89d37c3c7084dbc6d7744265c415b",
106 "00909ef87a99b5d42bf5f90f15225400", "b0e01dbe4b2484e099ccf40359864f84", "c1effee5f75f5c59c71a3765e199861c",
107 "1ffbdb3fc6522b020a465d4d92538de1", "405ed627f04a44956bc211a8206cb774", "477d915b398fa54bfa08d7f6c712609d",
108 "7926240a6ff3c690f419987f929cc558", "ced2e44e064ddded6f8403a5d29c3c4c", "3f7668e8a48d074eeb733cc158603873",
109 "495538554c8063a4332dd00531e70f15", "e23c1dbe349d1f116fbe040efeac8931", "efa8967dbcf46dd114ac714f4216d2f3",
110 };
111
112 static const char *basic10AV1[30] = {
113 "3da842f80be1583785df87a14d28f861", "3e629c6552343e3213569b160288908c", "e2e69fa47ba4346e7b425516cd3ad399",
114 "5c4acfd736270ec614d4235d4b457c5f", "1bf85d94643a7edba6b1be0e273b1494", "db436d9f0556df36e7a61fe43b6ca8fa",
115 "8653f145dff84ada80a06d73c89a8ade", "cd063b092bfe49152a4e532f6c47a366", "ed410923cb899ca9b985591f97db4eeb",
116 "b10b3439906926e829531af9092d49c3", "4c0abb5321521506d6dd82cad743c5bb", "dad5abd30028edc9f2b58a82a2c62154",
117 "385a53090a64ea638da73675e57af26e", "3381eab0147435ec47b6cceea43bc9f7", "66f3a5786ded03618e83cf0559ac07d5",
118 "70cb63f503c0a480477abd4819fafa4b", "38785bcf08832cd952e8e03fd2e97fe3", "2a308da74bcf00e5443ea8d44711490b",
119 "a4dda1c3cd1bbed78fe147fc96f3c449", "02e880b02320859564a3ee93af560bad", "ed2b06bd4fd31091a54b1739086423b9",
120 "d6f30edc476ccdf8efde98c2093468fa", "0ca4576f5f1709aa282ff72b074808cf", "35ca496c0a8566a2f544101beb3c6b26",
121 "90578ad37a02e59b9dbf3e0c278fa401", "169c4e28ce1e5c1954519ace57be64f3", "59a9840efb77ae92c0de834082c6fd05",
122 "0826b6c29ed55fe7e985806e8d70a97a", "ce3e5f43e0fec03be8ab89be53ddd13e", "e53d96029124a706e330c1c0d6bd612e",
123 };
124
125 static const char *allintra8AV1[30] = {
126 "f7d06010d13a06455848d5d394c7bea9", "f06f017fab7485af4a65eb38eabf440f", "5f826aa41f82d4e87575fae50a6a8ae1",
127 "98f48f68b5cb6ff99be50524c7b89bca", "f4a695c3a38213e8e6e59af55badb099", "692d78e599f28282e0dcf177f37c0622",
128 "f743e671cc74ab32ce97e3f0d48f3dd0", "67a15a5ce3cfe028c770eccf045b38f7", "39276c7212f3f35965cb8562e36030e2",
129 "866da32385cce98d181fc513c4a1d009", "31d4e7b0b220b2f77824a208e48fccdc", "1f7c21dbb5fd7dcd7f62d395b52472d9",
130 "2142a1394c221a1d6e28568bed8852a5", "f7cfaad4912c3b203646d6d64b070827", "08afa2ba43fda976ec51ea14fccb4d2d",
131 "cdadbfb766bdfda88edb936427396e69", "821e17020cd07757dfac3e2d95cca497", "1ab1925f2a9ccd791e5dc19454289205",
132 "f6a8eedd6184acf8cb633892ecc72c5e", "714837df1f3e3aab0de0c6529ce64859", "e10aa6398a388060809e4296dfc7ee18",
133 "45ab7d592b05f3e756920eb266172f70", "bc251d000810605f2b576dc5333db1ac", "ce68f6d37e5d0a0eb202b90b43544110",
134 "8f26ba6ed5f82f292470deab0fc78b9f", "996008ea7c34b31e9f8967b372251145", "6fa15a7b27070a0f445add8e70c2ed35",
135 "f129769476db347af15b846c9e92299b", "9ec83b78b9b9d159e90c22428b7bd45d", "4dea2c2f152bee369d1d7c7150a1b06d",
136 };
137
138 static const char *allintrabc8AV1[2] = {
139 "4013774063f11a76ceed39509652ac89",
140 "0d015427f07d38debc639a5986978021",
141 };
142
143 static const char *cdfupdate8AV1[2] = {
144 "acfd7c50b9b8e57b9c7ceff961d3206e",
145 "794a8a3b813366319a5f0d0f12cde0e2",
146 };
147
148 static const char *filmgrain8AV1[10] = {
149 "9fc2c754a8a3787b265b5c03b6187fa2", "a9a12ac5956f4dc932ebe183a2a9b32f", "1797729334584aa35ec31785e99dee35",
150 "4b32cbea08b4f66ab106fe2d15cb0991", "2ee6937d0a35362a50e6fc1f52ab122e", "b47c737ac5b4369eea551e88adb2f5fc",
151 "df4e3ac8f286c10a777a5c2003e1131b", "b5498a474837e063a59bd1f7958106f3", "350561922c88fdc37aade9494d4ec110",
152 "c4941eea6e6faa6bbd5cccf83b1eacc9",
153 };
154
155 static const char *svcL1T28AV1[8] = {
156 "f3874ea6c93fa8e345532e7273a00c78", "9fa72a857e695607338354107695176a", "a2eda89c577c97cc342d0ebc79f223c2",
157 "abe1f2c18b65422df79f7e3fa3e62f2c", "d349496e56e18763cc43139d16822329", "4edcc8be524cddff3787f87af8b6a40c",
158 "450f1a8a26c719f26fe74287974f64b0", "a3ac8d3056e8e1deee9c02cccdf2a96a",
159 };
160
161 static const char *superres8AV1[10] = {
162 "c7c2ae16f306aaa67a0cd880b43bf08a", "663558dd0d39eb0e20339be1410342b1", "e2e7b5dab0267385ce07e78ed07e7ad8",
163 "f27c21cd0efcfd5391a719443d57b219", "851c6772e4b55a081cfd3829d4b959a0", "ee4ded0f06d6adcec7025bb08d52b37c",
164 "568fe76c1fbbd76415b449049834de6b", "0edd6223020fb9d15434d3fed080ff93", "0924ec198a4cf1c045ade94d7decb5f8",
165 "5ffdd2f17169bfe7979d659a60f7e4e0",
166 };
167
168 static const char *orderhint10AV1[30] = {
169 "3da842f80be1583785df87a14d28f861", "7e9b4cea67392bff367ee0a05a0133d8", "de3b49a00894a4a6528353cea5bb9855",
170 "99814671f4e9eb6e488e0d958ef8bfdf", "3ce2507f38b8459f88adfeb57ddfcbb0", "1bc42ec76938aa019b8931b69a93e288",
171 "cd2ea1d885dc921074674ad9035efc25", "f833bfa030347a1946329810eee65e85", "025ca7e6d55a7d1c8fab74bd7d2b010c",
172 "b3d1f279fff264e836e0d11aa3af73d6", "c4709e5fea5648cf346241b10061a23f", "28d76e6b53941f575d661129165f5dd8",
173 "c357c60c6f9e1316b2dabc905a0f529e", "3381eab0147435ec47b6cceea43bc9f7", "8a1c63b9ae1966c4a8117d497923cd97",
174 "70cb63f503c0a480477abd4819fafa4b", "83feccd6ce008d66cd8409ce1ff62f4a", "dcf114e3b129dac0c17d4494c7ec01f3",
175 "bd7973a0156726069f13717c4aa4fd77", "287b5a33747b4c2094c79ec150b24e34", "356f6d3bb31ee08bd3d131f6e3bf7db2",
176 "6c9d5bcb07f1fa2a837267f95690755c", "a56fd3e10c143fa4f4959a59eae58b67", "fdfbeef91eef9019ce23666f8d3596ff",
177 "0ef3ea92f36c386472265c9e3aa1edf8", "062b456b2f1f306937b9b0eb60999c7b", "e539d3e3b657b2c63c621f55009b55ba",
178 "1ff04b727e26d3df747bae56f66687ab", "ce3e5f43e0fec03be8ab89be53ddd13e", "1b58c2fcbc035f33dbba51506cc79647",
179 };
180
181 static const char *globalmotion10AV1[30] = {
182 "7fec73fbcd485785b0c5f14776628bd6", "af29d34591da3b99f0a2533825a2cddd", "95ecb98df35904848273b4979307ddfa",
183 "bbb974b0ebb3cefc4104382c2dab8ea8", "b9f2e2d3bc6d4f6a61384f093676d9c5", "04a606f910bb0acf89384f49537ecd5f",
184 "a0e35b7432abfc107eb398dc7bbfde34", "ac99fed61ca7c96095c7fd74a558379a", "afa91292ae6ae160f37c9c33038e7fe6",
185 "83774993673ee5fa7ccce8539246bf4f", "85ea43d8cf2ab462ee331e0e68f17a56", "8fc3a67537d1808f16db709d739968c8",
186 "c33aa68ce0474539bf5d3d2d1d7f538a", "7dd3e4cc769189becd2003c5c503cc43", "5fa9c38c794baf14a5c51cc627a240ac",
187 "33555da5b23423110e230bcf18ffba66", "a386f53cf94524b5f3160c7b9828b0e0", "ff4b7b73a58a935d48931e6dafa700d5",
188 "dc42efeac256efaa4a7beafa7bf4f587", "b8d8ff228f5f6fb2079eb698754ee204", "1e87014b9dfb03e5ffd397d7c87eec41",
189 "e50bb0a799f4f1cd68a5c37762d07fff", "d90f54ce0d1cd17bfd86896c254397e3", "a923739505e724bfc7fcce9f36e45711",
190 "2e98fd27f166f7ae3a959c791437563a", "8ebf3d3dc34b9ee9f7f95a4fa5411bb4", "65f910e17bc354e5889c6fad0ef5a299",
191 "8774731cdcc3b86e5319ce1f20dc7dcb", "285d35ce961fbf6134ad300d33a314ad", "186f14908cfc20d0579166a9fca59cd7",
192 };
193
194 static const char *forwardKeyframe10AV1[30] = {
195 "3da842f80be1583785df87a14d28f861", "3e629c6552343e3213569b160288908c", "e2e69fa47ba4346e7b425516cd3ad399",
196 "5c4acfd736270ec614d4235d4b457c5f", "1bf85d94643a7edba6b1be0e273b1494", "db436d9f0556df36e7a61fe43b6ca8fa",
197 "8653f145dff84ada80a06d73c89a8ade", "cd063b092bfe49152a4e532f6c47a366", "ed410923cb899ca9b985591f97db4eeb",
198 "b10b3439906926e829531af9092d49c3", "4c0abb5321521506d6dd82cad743c5bb", "dad5abd30028edc9f2b58a82a2c62154",
199 "385a53090a64ea638da73675e57af26e", "3381eab0147435ec47b6cceea43bc9f7", "66f3a5786ded03618e83cf0559ac07d5",
200 "70cb63f503c0a480477abd4819fafa4b", "38785bcf08832cd952e8e03fd2e97fe3", "2a308da74bcf00e5443ea8d44711490b",
201 "a4dda1c3cd1bbed78fe147fc96f3c449", "02e880b02320859564a3ee93af560bad", "ed2b06bd4fd31091a54b1739086423b9",
202 "d6f30edc476ccdf8efde98c2093468fa", "0ca4576f5f1709aa282ff72b074808cf", "35ca496c0a8566a2f544101beb3c6b26",
203 "90578ad37a02e59b9dbf3e0c278fa401", "169c4e28ce1e5c1954519ace57be64f3", "59a9840efb77ae92c0de834082c6fd05",
204 "0826b6c29ed55fe7e985806e8d70a97a", "ce3e5f43e0fec03be8ab89be53ddd13e", "e53d96029124a706e330c1c0d6bd612e",
205 };
206
207 static const char *lossless10AV1[30] = {
208 "ec6e4c1e736989a4ae3d38994555353d", "a1801b60ef450648bc11f1000dccbbb5", "7a8fb72b778d8ed76475d8993b6153a7",
209 "1e775266e72f407f4eb48b04c2adb8b9", "760b854e841acb9e9fd47eaeae1e8f0a", "5e91d299a799babdb57f58eafe4d8141",
210 "66df843e6de9381d7844381d19ae7470", "feaf085de6852f52f2d1063697d8e4f1", "d3c5e54027d7959ad5b7177d39a81564",
211 "c22d20f79b7a676af66d6f5f6dd0be3f", "ec33a89d1eeaf232c5d162a6b33c1cd5", "63c4b1174b18bd3ef5a1096410a3dab9",
212 "f1082a732e3df7d4a4f3205442b20f05", "cd170ca264ebb87a307e0c39143c4dcf", "8a254bacaee5ba951497ee21185828e5",
213 "66dad625a67979e68cc4b7d46a4f3fd5", "ee6e93f50f4235fd7aa2d2e55075fdc1", "ff32548abff092545260b279fba43274",
214 "444540e3519939b11e38198f6570bb32", "5c0b4b0bcc74da3c656209923561d34d", "21001a42d925b41ed8d14e5a74f64bc8",
215 "35d033ec3c855cc6fe05939696e90afd", "74937bd021331243933deb3406df5b0d", "0a85bb965d2dc0ad689a433cb7e26b4a",
216 "ece8749dd33ab26f761d3eeb4a20af3f", "892dab33e2c8dd6dfaaa878270330fc6", "59be22da25e38d322f3e35855725b570",
217 "f0f386a9596b136b932d53a62b7c3d3e", "135ba4438ae0b5ea730ddb9f26bf2775", "a9ae505743ef0f7bd8be286b6b1d8afa",
218 };
219
220 static const char *loopfilter10AV1[30] = {
221 "3da842f80be1583785df87a14d28f861", "3e629c6552343e3213569b160288908c", "e2e69fa47ba4346e7b425516cd3ad399",
222 "5c4acfd736270ec614d4235d4b457c5f", "1bf85d94643a7edba6b1be0e273b1494", "db436d9f0556df36e7a61fe43b6ca8fa",
223 "8653f145dff84ada80a06d73c89a8ade", "cd063b092bfe49152a4e532f6c47a366", "ed410923cb899ca9b985591f97db4eeb",
224 "b10b3439906926e829531af9092d49c3", "9f4c48dfbe4c0db42150a99cf2047414", "a709a2a8640608a1801e1de3e46038ab",
225 "385a53090a64ea638da73675e57af26e", "3381eab0147435ec47b6cceea43bc9f7", "66f3a5786ded03618e83cf0559ac07d5",
226 "70cb63f503c0a480477abd4819fafa4b", "38785bcf08832cd952e8e03fd2e97fe3", "2a308da74bcf00e5443ea8d44711490b",
227 "a4dda1c3cd1bbed78fe147fc96f3c449", "02e880b02320859564a3ee93af560bad", "ed2b06bd4fd31091a54b1739086423b9",
228 "d6f30edc476ccdf8efde98c2093468fa", "0ca4576f5f1709aa282ff72b074808cf", "35ca496c0a8566a2f544101beb3c6b26",
229 "90578ad37a02e59b9dbf3e0c278fa401", "169c4e28ce1e5c1954519ace57be64f3", "79ac385ed0f8fa599fb5132ebbac8db7",
230 "0826b6c29ed55fe7e985806e8d70a97a", "ce3e5f43e0fec03be8ab89be53ddd13e", "e53d96029124a706e330c1c0d6bd612e",
231 };
232
233 static const char *cdef10AV1[30] = {
234 "3da842f80be1583785df87a14d28f861", "8261a9e35cff8eabbf3e779bd78f5981", "dd1fa6eda334eac389b21f5682c9c4df",
235 "5c4acfd736270ec614d4235d4b457c5f", "876c2faa39a73383b553a1811784cdcc", "3ce691eb5696b0fc9b034d4d71f15ae5",
236 "8653f145dff84ada80a06d73c89a8ade", "df00929af0d158cae7d6cd33082d774f", "a6426ae7393cf89714e267c72dbd116a",
237 "b10b3439906926e829531af9092d49c3", "445aa17e128abbacaf0d0aaefd321776", "fadedb1231f75c6dd9a1df4adeca67ef",
238 "066eeaa0f54ae0081745f6ba4688173b", "3381eab0147435ec47b6cceea43bc9f7", "0c3204517ad123ab534e14e7ce7885f2",
239 "70cb63f503c0a480477abd4819fafa4b", "110cde9ad14bcf0fa2dec80b66080100", "6a4e2740053104bc67aa06bdb5719bc6",
240 "f4014867bb3906c384341abfddb1566c", "1347f9b4b7efc459d37d63355def45b8", "d5304e38fc41e8928315237290a05956",
241 "3e23d946c34b58ef6ae14566cdbae096", "f28ce7d69c24218c1b67e1c700b3b6b4", "5f4772840b45f894c32c819c2fdf0be5",
242 "82b1789a0244d0e16ae7b49ee78941de", "d2f65dc314cef5e431bcf2f7133e16d4", "d74e3617b5ded1e540e06036b3fdb366",
243 "38c23b89c076ba027e18b93b9d7b439e", "79e2091067a4c3573c2aa2ad7664155f", "9e1a4353bab0f42459cab8f9dfe71845",
244 };
245
246 static const char *sizeupAV1[20] = {
247 "3f20b55c5cfe25e4b5fec1b295abd383", // 352x288
248 "fcc5539f98ed9c51280e46fa77f3c491", "d9b27a809788b6138774a665d76f8f20", "c14d7752f71479fcbdb173fa75d29dd5",
249 "aac95c93e23f67c80dc7946d97ff1504", "3f3c9a7dcbc316933a68e7c9a0592e3b", "7ec5e34c09ec2a179ee22c04abad1183",
250 "f271cda9802563b026274c37a339bade", "8b889fd48a9466b2dcda52985a5c3695", "037f485af956ffd97e00ec6c340d7677",
251
252 "f3f3633e25c24e88c2057c4263f10875", // 1280x720
253 "f7900a172b47abf17a14f2fb8d4462eb", "8e44be70dae5bcee3aa3902027be54f8", "4cf4f4eb58a1a0b1eaa27a4cb79330c4",
254 "d61b38c688e72126a76812d40ebd982d", "0e9f6b0f797737994f4d37e4358d204b", "c51a2d765d4f56486c89c5c663aad4a6",
255 "86b88efecf34dd7e4bb1d38346bc7a94", "02ec4d652fa265cfc928e0bc27ed783a", "120e9c7220f1803b796c487a28551382",
256 };
257
258 static const char *argonSeqchangeAffine8[15] = {
259 "bed28b1d9d693b52f27538cbc12911de", "3f0350c326bb6d930c9bdf5fd6554b85", "d529d2bc67c84b5869a9d45c56f2b3aa",
260 "2c1f9a3d479652fdb01c0587675b67db", "2c1f9a3d479652fdb01c0587675b67db", "d529d2bc67c84b5869a9d45c56f2b3aa",
261 "d529d2bc67c84b5869a9d45c56f2b3aa", "5038db232827e5aff83760c7a24edd62", "f9222adce56309445a52879a733c28dd",
262 "1013823ecdc2f19509a6a1afaa408d57", "a81d92b3f8401d583d6a4509458961ee", "eb6176cbe5329c61a53b1eb3cc49f398",
263 "5025298703a1b57e834262c7b6fa6d1e", "38148b17884f4e83221ba4dac18bd91b",
264 };
265
266 static const char *argonFilmgrain10[6] = {
267 "cc05f657a3f6acaab634344e3181f149", "9bf462d19b14a2a4540d64f466f4b062", "9bf462d19b14a2a4540d64f466f4b062",
268 "6c22eaa1a4537824bdd408dea694b5d5", "f2e8ea58b5a2e0645dd41ed1659e2c2e", "6c22eaa1a4537824bdd408dea694b5d5",
269 };
270
271 static const char *argonTest787[10] = {
272 "63acc35f9a8ce92fb2b50a29b3dd64b5", "6a824e6e46aa9e7bbf93586beea35848", "fbf419f6edcb4ca94896ef62655e565a",
273 "6a824e6e46aa9e7bbf93586beea35848", "0824f69abb11df1fd592b5f032f82a7f", "046b06462065ccc6b5015a560e2e28a1",
274 "2f19e0f05601140cf9f03b001fec7494", "bcc5a7844a8dce5c38f553eca91a630b", "01f42dd70cb27bb804b792335ec4e6fa",
275 "58cf033ef8015fc3a34d8e2f1213d160",
276 };
277
278 static auto H264_420_8BIT_HIGH_DECODE_PROFILE = VideoProfileInfo{
279 VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR, VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR,
280 VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR, VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR, STD_VIDEO_H264_PROFILE_IDC_HIGH};
281
282 static auto H264_420_8BIT_MAIN_DECODE_PROFILE = VideoProfileInfo{
283 VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR, VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR,
284 VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR, VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR, STD_VIDEO_H264_PROFILE_IDC_MAIN};
285
286 static auto H265_420_8BIT_MAIN_DECODE_PROFILE = VideoProfileInfo{
287 VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR, VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR,
288 VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR, VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR, STD_VIDEO_H265_PROFILE_IDC_MAIN};
289
290 static auto AV1_420_8BIT_MAIN_DECODE_PROFILE = VideoProfileInfo{
291 VK_VIDEO_CODEC_OPERATION_DECODE_AV1_BIT_KHR, VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR,
292 VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR, VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR, STD_VIDEO_AV1_PROFILE_MAIN};
293
294 static auto AV1_420_10BIT_MAIN_DECODE_PROFILE = VideoProfileInfo{
295 VK_VIDEO_CODEC_OPERATION_DECODE_AV1_BIT_KHR, VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR,
296 VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR, VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR, STD_VIDEO_AV1_PROFILE_MAIN};
297
298 static auto AV1_MONOCHROME_10BIT_MAIN_DECODE_PROFILE = VideoProfileInfo{
299 VK_VIDEO_CODEC_OPERATION_DECODE_AV1_BIT_KHR, VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR,
300 VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR, VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR, STD_VIDEO_AV1_PROFILE_MAIN};
301
302 static auto H264_420_8BIT_MAIN_ENCODE_PROFILE = VideoProfileInfo{
303 VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR, VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR,
304 VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR, VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR, STD_VIDEO_H264_PROFILE_IDC_MAIN};
305 static auto H265_420_8BIT_MAIN_ENCODE_PROFILE = VideoProfileInfo{
306 VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR, VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR,
307 VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR, VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR, STD_VIDEO_H265_PROFILE_IDC_MAIN};
308
309 static ClipInfo Clips[] = {
310 {
311 CLIP_A,
312 "clip-a.h264",
313 {H264_420_8BIT_HIGH_DECODE_PROFILE},
314 ElementaryStreamFraming::H26X_BYTE_STREAM,
315 176,
316 144,
317 30,
318 30,
319 10,
320 clipA,
321 },
322 {
323 CLIP_B,
324 "clip-b.h264",
325 {H264_420_8BIT_HIGH_DECODE_PROFILE},
326 ElementaryStreamFraming::H26X_BYTE_STREAM,
327 352,
328 288,
329 30,
330 30,
331 10,
332 clipB,
333 },
334 {
335 CLIP_C,
336 "clip-c.h264",
337 {H264_420_8BIT_HIGH_DECODE_PROFILE},
338 ElementaryStreamFraming::H26X_BYTE_STREAM,
339 352,
340 288,
341 30,
342 30,
343 10,
344 clipC,
345 },
346 {
347 CLIP_D,
348 "clip-d.h265",
349 {H265_420_8BIT_MAIN_DECODE_PROFILE},
350 ElementaryStreamFraming::H26X_BYTE_STREAM,
351 176,
352 144,
353 30,
354 30,
355 10,
356 clipA, // same as clip A
357 },
358 {
359 CLIP_E,
360 "vulkan/video/176x144_30_i420.yuv",
361 {H264_420_8BIT_MAIN_ENCODE_PROFILE},
362 ElementaryStreamFraming::UNKNOWN, // TODO: Encode tests shouldn't have been put in here
363 176,
364 144,
365 24,
366 },
367 {
368 CLIP_F,
369 "vulkan/video/176x144_30_i420.yuv",
370 {H265_420_8BIT_MAIN_ENCODE_PROFILE},
371 ElementaryStreamFraming::UNKNOWN,
372 176,
373 144,
374 24,
375 },
376 {
377 CLIP_G,
378 "vulkan/video/352x288_15_i420.yuv",
379 {H264_420_8BIT_MAIN_ENCODE_PROFILE},
380 ElementaryStreamFraming::UNKNOWN,
381 352,
382 288,
383 15,
384 },
385 {
386 CLIP_H,
387 "vulkan/video/352x288_15_i420.yuv",
388 {H265_420_8BIT_MAIN_ENCODE_PROFILE},
389 ElementaryStreamFraming::UNKNOWN,
390 352,
391 288,
392 15,
393 },
394 {
395 CLIP_H264_4K_26_IBP_MAIN,
396 "4k_26_ibp_main.h264",
397 {H264_420_8BIT_MAIN_DECODE_PROFILE},
398 ElementaryStreamFraming::H26X_BYTE_STREAM,
399 3840,
400 2160,
401 30,
402 26,
403 13,
404 h264_4k_26_ibp_main,
405 },
406 {
407 CLIP_JELLY_HEVC,
408 "jellyfish-250-mbps-4k-uhd-GOB-IPB13.h265",
409 {H265_420_8BIT_MAIN_DECODE_PROFILE},
410 ElementaryStreamFraming::H26X_BYTE_STREAM,
411 3840,
412 2160,
413 30,
414 26,
415 26,
416 jellyfishHEVC,
417 },
418 {
419 CLIP_NONE_HEVC,
420 "",
421 {H265_420_8BIT_MAIN_ENCODE_PROFILE},
422 ElementaryStreamFraming::UNKNOWN,
423 0,
424 0,
425 0,
426 0,
427 0,
428 nullptr,
429 },
430 {
431 CLIP_BASIC_8,
432 "av1-176x144-main-basic-8.ivf",
433 {AV1_420_8BIT_MAIN_DECODE_PROFILE},
434 ElementaryStreamFraming::IVF,
435 176,
436 144,
437 0,
438 30,
439 0,
440 basic8AV1,
441 },
442 {
443 CLIP_ALLINTRA_8,
444 "av1-352x288-main-allintra-8.ivf",
445 {AV1_420_8BIT_MAIN_DECODE_PROFILE},
446 ElementaryStreamFraming::IVF,
447 352,
448 288,
449 0,
450 30,
451 0,
452 allintra8AV1,
453 },
454 {
455 CLIP_ALLINTRA_INTRABC_8,
456 "av1-1920x1080-intrabc-extreme-dv-8.ivf",
457 {AV1_420_8BIT_MAIN_DECODE_PROFILE},
458 ElementaryStreamFraming::IVF,
459 1920,
460 1080,
461 0,
462 2,
463 0,
464 allintrabc8AV1,
465 },
466 {
467 CLIP_CDFUPDATE_8,
468 "av1-352x288-main-cdfupdate-8.ivf",
469 {AV1_420_8BIT_MAIN_DECODE_PROFILE},
470 ElementaryStreamFraming::IVF,
471 352,
472 288,
473 0,
474 2,
475 0,
476 cdfupdate8AV1,
477 },
478 {
479 CLIP_GLOBALMOTION_8,
480 "av1-176x144-main-globalmotion-8.ivf",
481 {AV1_420_8BIT_MAIN_DECODE_PROFILE},
482 ElementaryStreamFraming::IVF,
483 176,
484 144,
485 0,
486 30,
487 0,
488 globalmotion10AV1,
489 },
490 {
491 CLIP_FILMGRAIN_8,
492 "av1-352x288-main-filmgrain-8.ivf",
493 {AV1_420_8BIT_MAIN_DECODE_PROFILE},
494 ElementaryStreamFraming::IVF,
495 352,
496 288,
497 0,
498 10,
499 0,
500 filmgrain8AV1,
501 },
502 {
503 CLIP_SVCL1T2_8,
504 "av1-640x360-main-svc-L1T2-8.ivf",
505 {AV1_420_8BIT_MAIN_DECODE_PROFILE},
506 ElementaryStreamFraming::IVF,
507 640,
508 360,
509 0,
510 8,
511 0,
512 svcL1T28AV1,
513 },
514 {
515 CLIP_SUPERRES_8,
516 "av1-1920x1080-main-superres-8.ivf",
517 {AV1_420_8BIT_MAIN_DECODE_PROFILE},
518 ElementaryStreamFraming::IVF,
519 1920,
520 1080,
521 0,
522 10,
523 0,
524 superres8AV1,
525 },
526 {
527 CLIP_SIZEUP_8,
528 "av1-sizeup-fluster.ivf",
529 {AV1_420_8BIT_MAIN_DECODE_PROFILE},
530 ElementaryStreamFraming::IVF,
531 0,
532 0,
533 0,
534 20,
535 0,
536 sizeupAV1,
537 },
538 {
539 CLIP_ARGON_SEQCHANGE_AFFINE_8,
540 "av1-argon_test9354_2.obu",
541 {AV1_420_8BIT_MAIN_DECODE_PROFILE, AV1_MONOCHROME_10BIT_MAIN_DECODE_PROFILE},
542 ElementaryStreamFraming::AV1_ANNEXB,
543 0,
544 0,
545 0,
546 12,
547 0,
548 argonSeqchangeAffine8,
549 },
550
551 // 10-bit AV1 test cases
552 {
553 CLIP_BASIC_10,
554 "av1-176x144-main-basic-10.ivf",
555 {AV1_420_10BIT_MAIN_DECODE_PROFILE},
556 ElementaryStreamFraming::IVF,
557 0,
558 0,
559 0,
560 30,
561 0,
562 basic10AV1,
563 },
564 {
565 CLIP_ORDERHINT_10,
566 "av1-176x144-main-orderhint-10.ivf",
567 {AV1_420_10BIT_MAIN_DECODE_PROFILE},
568 ElementaryStreamFraming::IVF,
569 0,
570 0,
571 0,
572 30,
573 0,
574 orderhint10AV1,
575 },
576 {
577 CLIP_FORWARDKEYFRAME_10,
578 "av1-176x144-main-forward-key-frame-10.ivf",
579 {AV1_420_10BIT_MAIN_DECODE_PROFILE},
580 ElementaryStreamFraming::IVF,
581 0,
582 0,
583 0,
584 30,
585 0,
586 forwardKeyframe10AV1,
587 },
588 {
589 CLIP_LOSSLESS_10,
590 "av1-176x144-main-lossless-10.ivf",
591 {AV1_420_10BIT_MAIN_DECODE_PROFILE},
592 ElementaryStreamFraming::IVF,
593 0,
594 0,
595 0,
596 30,
597 0,
598 lossless10AV1,
599 },
600 {
601 CLIP_LOOPFILTER_10,
602 "av1-176x144-main-loop-filter-10.ivf",
603 {AV1_420_10BIT_MAIN_DECODE_PROFILE},
604 ElementaryStreamFraming::IVF,
605 0,
606 0,
607 0,
608 30,
609 0,
610 loopfilter10AV1,
611 },
612 {
613 CLIP_CDEF_10,
614 "av1-176x144-main-cdef-10.ivf",
615 {AV1_420_10BIT_MAIN_DECODE_PROFILE},
616 ElementaryStreamFraming::IVF,
617 0,
618 0,
619 0,
620 30,
621 0,
622 cdef10AV1,
623 },
624 {
625 CLIP_ARGON_FILMGRAIN_10,
626 "av1-argon_test1019.obu",
627 {AV1_420_10BIT_MAIN_DECODE_PROFILE},
628 ElementaryStreamFraming::AV1_ANNEXB,
629 0,
630 0,
631 0,
632 6,
633 0,
634 argonFilmgrain10,
635 },
636 {
637 CLIP_ARGON_TEST_787,
638 "av1-argon_test787.obu",
639 {AV1_420_10BIT_MAIN_DECODE_PROFILE},
640 ElementaryStreamFraming::AV1_ANNEXB,
641 0,
642 0,
643 0,
644 10,
645 0,
646 argonTest787,
647 },
648 };
649
clipInfo(ClipName c)650 const ClipInfo *clipInfo(ClipName c)
651 {
652 DE_ASSERT(c >= 0 && c < DE_LENGTH_OF_ARRAY(Clips));
653 return &Clips[c];
654 }
655
checksumForClipFrame(const ClipInfo * cinfo,int frameNumber)656 const char *checksumForClipFrame(const ClipInfo *cinfo, int frameNumber)
657 {
658 DE_ASSERT(frameNumber >= 0 && frameNumber < cinfo->totalFrames);
659 return cinfo->frameChecksums[frameNumber];
660 }
661
662 } // namespace video
663 } // namespace vkt
664