1 /* 2 * Copyright (c) 2016, Alliance for Open Media. All rights reserved 3 * 4 * This source code is subject to the terms of the BSD 2 Clause License and 5 * the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License 6 * was not distributed with this source code in the LICENSE file, you can 7 * obtain it at www.aomedia.org/license/software. If the Alliance for Open 8 * Media Patent License 1.0 was not distributed with this source code in the 9 * PATENTS file, you can obtain it at www.aomedia.org/license/patent. 10 */ 11 #ifndef AOM_AV1_ENCODER_GRAIN_TEST_VECTORS_H_ 12 #define AOM_AV1_ENCODER_GRAIN_TEST_VECTORS_H_ 13 14 /* Test vectors for emulation of different film grain types. 15 * Note that bit depth would be derived from the bitstream and 16 * not signaled in film grain metadata. The parameters are valid 17 * for any bit depth. 18 */ 19 static aom_film_grain_t film_grain_test_vectors[16] = { 20 /* Test 1 */ 21 { 22 1 /* apply_grain */, 23 1 /* update_parameters */, 24 { { 16, 0 }, 25 { 25, 136 }, 26 { 33, 144 }, 27 { 41, 160 }, 28 { 48, 168 }, 29 { 56, 136 }, 30 { 67, 128 }, 31 { 82, 144 }, 32 { 97, 152 }, 33 { 113, 144 }, 34 { 128, 176 }, 35 { 143, 168 }, 36 { 158, 176 }, 37 { 178, 184 } }, 38 14 /* num_points_y */, 39 { { 16, 0 }, 40 { 20, 64 }, 41 { 28, 88 }, 42 { 60, 104 }, 43 { 90, 136 }, 44 { 105, 160 }, 45 { 134, 168 }, 46 { 168, 208 } }, 47 8 /* num_cb_points */, 48 { { 16, 0 }, 49 { 28, 96 }, 50 { 56, 80 }, 51 { 66, 96 }, 52 { 80, 104 }, 53 { 108, 96 }, 54 { 122, 112 }, 55 { 137, 112 }, 56 { 169, 176 } }, 57 9 /* num_cr_points */, 58 11 /* scaling_shift */, 59 2 /* ar_coeff_lag */, 60 { 0, 0, -58, 0, 0, 0, -76, 100, -43, 0, -51, 82 }, 61 { 0, 0, -49, 0, 0, 0, -36, 22, -30, 0, -38, 7, 39 }, 62 { 0, 0, -47, 0, 0, 0, -31, 31, -25, 0, -32, 13, -100 }, 63 8 /* ar_coeff_shift */, 64 247 /* cb_mult */, 65 192 /* cb_luma_mult */, 66 18 /* cb_offset */, 67 229 /* cr_mult */, 68 192 /* cr_luma_mult */, 69 54 /* cr_offset */, 70 0 /* overlap_flag */, 71 1 /* clip_to_restricted_range */, 72 8 /* bit_depth */, 73 0 /* chroma_scaling_from_luma*/, 74 0 /* grain_scale_shift*/, 75 45231 /* random_seed */ 76 }, 77 /* Test 2 */ 78 { 79 1 /* apply_grain */, 80 1 /* update_parameters */, 81 { { 0, 96 }, { 255, 96 } }, 82 2 /* num_points_y */, 83 { { 0, 64 }, { 255, 64 } }, 84 2 /* num_cb_points */, 85 { { 0, 64 }, { 255, 64 } }, 86 2 /* num_cr_points */, 87 11 /* scaling_shift */, 88 3 /* ar_coeff_lag */, 89 { 90 4, 1, 3, 0, 1, -3, 8, -3, 7, -23, 1, -25, 91 0, -10, 6, -17, -4, 53, 36, 5, -5, -17, 8, 66, 92 }, 93 { 94 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, 96 }, 97 { 98 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, 100 }, 101 7 /* ar_coeff_shift */, 102 128 /* cb_mult */, 103 192 /* cb_luma_mult */, 104 256 /* cb_offset */, 105 128 /* cr_mult */, 106 192 /* cr_luma_mult */, 107 256 /* cr_offset */, 108 1 /* overlap_flag */, 109 0 /* clip_to_restricted_range */, 110 8 /* bit_depth */, 111 0 /*chroma_scaling_from_luma*/, 112 0 /* grain_scale_shift*/, 113 45231 /* random_seed */ 114 }, 115 /* Test 3 */ 116 { 117 1 /* apply_grain */, 118 1 /* update_parameters */, 119 { { 0, 192 }, { 255, 192 } }, 120 2 /* num_points_y */, 121 { { 0, 128 }, { 255, 128 } }, 122 2 /* num_cb_points */, 123 { { 0, 128 }, { 255, 128 } }, 124 2 /* num_cr_points */, 125 11 /* scaling_shift */, 126 3 /* ar_coeff_lag */, 127 { 128 4, 1, 3, 0, 1, -3, 8, -3, 7, -23, 1, -25, 129 0, -10, 6, -17, -4, 53, 36, 5, -5, -17, 8, 66, 130 }, 131 { 132 4, -7, 2, 4, 12, -12, 5, -8, 6, 8, -19, -16, 19, 133 -10, -2, 17, -42, 58, -2, -13, 9, 14, -36, 67, 0, 134 }, 135 { 136 4, -7, 2, 4, 12, -12, 5, -8, 6, 8, -19, -16, 19, 137 -10, -2, 17, -42, 58, -2, -13, 9, 14, -36, 67, 0, 138 }, 139 7 /* ar_coeff_shift */, 140 128 /* cb_mult */, 141 192 /* cb_luma_mult */, 142 256 /* cb_offset */, 143 128 /* cr_mult */, 144 192 /* cr_luma_mult */, 145 256 /* cr_offset */, 146 1 /* overlap_flag */, 147 1 /* clip_to_restricted_range */, 148 8 /* bit_depth */, 149 0 /*chroma_scaling_from_luma*/, 150 1 /* grain_scale_shift*/, 151 45231 /* random_seed */ 152 }, 153 /* Test 4 */ 154 { 155 1 /* apply_grain */, 156 1 /* update_parameters */, 157 { 158 { 16, 0 }, 159 { 24, 137 }, 160 { 53, 146 }, 161 { 63, 155 }, 162 { 78, 155 }, 163 { 107, 150 }, 164 { 122, 147 }, 165 { 136, 147 }, 166 { 166, 153 }, 167 }, 168 9 /* num_points_y */, 169 { 170 { 16, 0 }, 171 { 20, 72 }, 172 { 27, 82 }, 173 { 33, 91 }, 174 { 69, 121 }, 175 { 95, 143 }, 176 { 108, 154 }, 177 { 134, 169 }, 178 { 147, 177 }, 179 }, 180 9 /* num_cb_points */, 181 { 182 { 16, 0 }, 183 { 24, 95 }, 184 { 54, 93 }, 185 { 65, 94 }, 186 { 79, 98 }, 187 { 109, 107 }, 188 { 124, 119 }, 189 { 139, 136 }, 190 { 169, 170 }, 191 }, 192 9 /* num_cr_points */, 193 11 /* scaling_shift */, 194 3 /* ar_coeff_lag */, 195 { 196 7, -9, 2, 4, 7, -12, 7, -18, 18, -30, -27, -42, 197 13, -20, 7, -18, 6, 107, 55, -2, -4, -9, -22, 113, 198 }, 199 { 200 -3, -1, -4, 3, -6, -2, 3, 1, -4, -10, -10, -5, -5, 201 -3, -1, -13, -28, -25, -31, -6, -4, 14, -64, 66, 0, 202 }, 203 { 204 0, 4, -3, 13, 0, 1, -3, 0, -3, -10, -68, -4, -2, 205 -5, 2, -3, -20, 62, -31, 0, -4, -1, -8, -29, 0, 206 }, 207 8 /* ar_coeff_shift */, 208 128 /* cb_mult */, 209 192 /* cb_luma_mult */, 210 256 /* cb_offset */, 211 128 /* cr_mult */, 212 192 /* cr_luma_mult */, 213 256 /* cr_offset */, 214 1 /* overlap_flag */, 215 0 /* clip_to_restricted_range */, 216 8 /* bit_depth */, 217 0 /*chroma_scaling_from_luma*/, 218 0 /* grain_scale_shift*/, 219 45231 /* random_seed */ 220 }, 221 /* Test 5 */ 222 { 223 1 /* apply_grain */, 224 0 /* update_parameters */, 225 { { 0, 64 }, { 255, 64 } }, 226 2 /* num_points_y */, 227 { 228 { 0, 96 }, 229 { 32, 90 }, 230 { 64, 83 }, 231 { 96, 76 }, 232 { 128, 68 }, 233 { 159, 59 }, 234 { 191, 48 }, 235 { 223, 34 }, 236 { 255, 0 }, 237 }, 238 9 /* num_cb_points */, 239 { 240 { 0, 0 }, 241 { 32, 34 }, 242 { 64, 48 }, 243 { 96, 59 }, 244 { 128, 68 }, 245 { 159, 76 }, 246 { 191, 83 }, 247 { 223, 90 }, 248 { 255, 96 }, 249 }, 250 9 /* num_cr_points */, 251 11 /* scaling_shift */, 252 3 /* ar_coeff_lag */, 253 { 254 4, 1, 3, 0, 1, -3, 8, -3, 7, -23, 1, -25, 255 0, -10, 6, -17, -4, 53, 36, 5, -5, -17, 8, 66, 256 }, 257 { 258 -2, 2, -5, 7, -6, 4, -2, -1, 1, -2, 0, -2, 2, 259 -3, -5, 13, -13, 6, -14, 8, -1, 18, -36, 58, 0, 260 }, 261 { 262 -2, -1, -3, 14, -4, -1, -3, 0, -1, 7, -31, 7, 2, 263 0, 1, 0, -7, 50, -8, -2, 2, 2, 2, -4, 0, 264 }, 265 7 /* ar_coeff_shift */, 266 128 /* cb_mult */, 267 192 /* cb_luma_mult */, 268 256 /* cb_offset */, 269 128 /* cr_mult */, 270 192 /* cr_luma_mult */, 271 256 /* cr_offset */, 272 1 /* overlap_flag */, 273 1 /* clip_to_restricted_range */, 274 8 /* bit_depth */, 275 0 /*chroma_scaling_from_luma*/, 276 0 /* grain_scale_shift*/, 277 1063 /* random_seed */ 278 }, 279 /* Test 6 */ 280 { 281 1 /* apply_grain */, 282 1 /* update_parameters */, 283 { 284 { 0, 96 }, 285 { 20, 92 }, 286 { 39, 88 }, 287 { 59, 84 }, 288 { 78, 80 }, 289 { 98, 75 }, 290 { 118, 70 }, 291 { 137, 65 }, 292 { 157, 60 }, 293 { 177, 53 }, 294 { 196, 46 }, 295 { 216, 38 }, 296 { 235, 27 }, 297 { 255, 0 }, 298 }, 299 14 /* num_points_y */, 300 { { 0, 0 } }, 301 0 /* num_cb_points */, 302 { { 0, 0 } }, 303 0 /* num_cr_points */, 304 11 /* scaling_shift */, 305 3 /* ar_coeff_lag */, 306 { 307 4, 1, 3, 0, 1, -3, 8, -3, 7, -23, 1, -25, 308 0, -10, 6, -17, -4, 53, 36, 5, -5, -17, 8, 66, 309 }, 310 { 311 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 312 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313 }, 314 { 315 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 316 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317 }, 318 7 /* ar_coeff_shift */, 319 128 /* cb_mult */, 320 192 /* cb_luma_mult */, 321 256 /* cb_offset */, 322 128 /* cr_mult */, 323 192 /* cr_luma_mult */, 324 256 /* cr_offset */, 325 1 /* overlap_flag */, 326 1 /* clip_to_restricted_range */, 327 8 /* bit_depth */, 328 0 /*chroma_scaling_from_luma*/, 329 0 /* grain_scale_shift*/, 330 2754 /* random_seed */ 331 }, 332 /* Test 7 */ 333 { 334 1 /* apply_grain */, 335 1 /* update_parameters */, 336 { 337 { 0, 0 }, 338 { 20, 27 }, 339 { 39, 38 }, 340 { 59, 46 }, 341 { 78, 53 }, 342 { 98, 60 }, 343 { 118, 65 }, 344 { 137, 70 }, 345 { 157, 75 }, 346 { 177, 80 }, 347 { 196, 84 }, 348 { 216, 88 }, 349 { 235, 92 }, 350 { 255, 96 }, 351 }, 352 14 /* num_points_y */, 353 { { 0, 0 }, { 255, 0 } }, 354 2 /* num_cb_points */, 355 { { 0, 0 }, { 255, 0 } }, 356 2 /* num_cr_points */, 357 11 /* scaling_shift */, 358 3 /* ar_coeff_lag */, 359 { 360 4, 1, 3, 0, 1, -3, 8, -3, 7, -23, 1, -25, 361 0, -10, 6, -17, -4, 53, 36, 5, -5, -17, 8, 66, 362 }, 363 { 364 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 365 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 366 }, 367 { 368 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 369 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 370 }, 371 7 /* ar_coeff_shift */, 372 128 /* cb_mult */, 373 192 /* cb_luma_mult */, 374 256 /* cb_offset */, 375 128 /* cr_mult */, 376 192 /* cr_luma_mult */, 377 256 /* cr_offset */, 378 1 /* overlap_flag */, 379 1 /* clip_to_restricted_range */, 380 8 /* bit_depth */, 381 0 /*chroma_scaling_from_luma*/, 382 0 /* grain_scale_shift*/, 383 45231 /* random_seed */ 384 }, 385 /* Test 8 */ 386 { 387 1 /* apply_grain */, 388 1 /* update_parameters */, 389 { { 0, 96 }, { 255, 96 } }, 390 2 /* num_points_y */, 391 { { 0, 62 }, { 255, 62 } }, 392 2 /* num_cb_points */, 393 { { 0, 62 }, { 255, 62 } }, 394 2 /* num_cr_points */, 395 11 /* scaling_shift */, 396 3 /* ar_coeff_lag */, 397 { 398 4, 1, 3, 0, 1, -3, 8, -3, 7, -23, 1, -25, 399 0, -10, 6, -17, -4, 53, 36, 5, -5, -17, 8, 66, 400 }, 401 { 402 0, -2, -2, 8, 5, -1, 1, -1, 5, 16, -33, -9, 6, 403 -1, -3, 10, -47, 63, 0, -15, 3, 11, -42, 75, -69, 404 }, 405 { 406 1, -1, -1, 9, 5, 0, 1, -1, 5, 15, -32, -10, 8, 407 -2, -4, 11, -46, 62, 1, -16, 3, 13, -43, 75, -55, 408 }, 409 7 /* ar_coeff_shift */, 410 128 /* cb_mult */, 411 192 /* cb_luma_mult */, 412 256 /* cb_offset */, 413 128 /* cr_mult */, 414 192 /* cr_luma_mult */, 415 256 /* cr_offset */, 416 1 /* overlap_flag */, 417 0 /* clip_to_restricted_range */, 418 8 /* bit_depth */, 419 0 /*chroma_scaling_from_luma*/, 420 0 /* grain_scale_shift*/, 421 45231 /* random_seed */ 422 }, 423 /* Test 9 */ 424 { 425 1 /* apply_grain */, 426 0 /* update_parameters */, 427 { { 0, 48 }, { 255, 48 } }, 428 2 /* num_points_y */, 429 { { 0, 32 }, { 255, 32 } }, 430 2 /* num_cb_points */, 431 { { 0, 32 }, { 255, 32 } }, 432 2 /* num_cr_points */, 433 10 /* scaling_shift */, 434 2 /* ar_coeff_lag */, 435 { 10, -30, -20, -39, 1, -24, 12, 103, 60, -9, -24, 113 }, 436 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127 }, 437 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127 }, 438 8 /* ar_coeff_shift */, 439 128 /* cb_mult */, 440 192 /* cb_luma_mult */, 441 256 /* cb_offset */, 442 128 /* cr_mult */, 443 192 /* cr_luma_mult */, 444 256 /* cr_offset */, 445 1 /* overlap_flag */, 446 0 /* clip_to_restricted_range */, 447 8 /* bit_depth */, 448 0 /*chroma_scaling_from_luma*/, 449 0 /* grain_scale_shift*/, 450 45231 /* random_seed */ 451 }, 452 /* Test 10 */ 453 { 454 1 /* apply_grain */, 455 1 /* update_parameters */, 456 { { 0, 48 }, { 255, 48 } }, 457 2 /* num_points_y */, 458 { { 0, 32 }, { 255, 32 } }, 459 2 /* num_cb_points */, 460 { { 0, 32 }, { 255, 32 } }, 461 2 /* num_cr_points */, 462 10 /* scaling_shift */, 463 2 /* ar_coeff_lag */, 464 { 10, -30, -20, -39, 1, -24, 12, 103, 60, -9, -24, 113 }, 465 { -7, -6, -48, -22, 2, -3, -45, 73, -11, -26, -52, 76, 0 }, 466 { -7, -6, -48, -22, 2, -3, -45, 73, -11, -26, -52, 76, 0 }, 467 8 /* ar_coeff_shift */, 468 128 /* cb_mult */, 469 192 /* cb_luma_mult */, 470 256 /* cb_offset */, 471 128 /* cr_mult */, 472 192 /* cr_luma_mult */, 473 256 /* cr_offset */, 474 1 /* overlap_flag */, 475 0 /* clip_to_restricted_range */, 476 8 /* bit_depth */, 477 0 /*chroma_scaling_from_luma*/, 478 0 /* grain_scale_shift*/, 479 45231 /* random_seed */ 480 }, 481 /* Test 11 */ 482 { 483 1 /* apply_grain */, 484 0 /* update_parameters */, 485 { { 0, 32 }, { 255, 32 } }, 486 2 /* num_points_y */, 487 { 488 { 0, 48 }, 489 { 32, 45 }, 490 { 64, 42 }, 491 { 96, 38 }, 492 { 128, 34 }, 493 { 159, 29 }, 494 { 191, 24 }, 495 { 223, 17 }, 496 { 255, 0 }, 497 }, 498 9 /* num_cb_points */, 499 { 500 { 0, 0 }, 501 { 32, 17 }, 502 { 64, 24 }, 503 { 96, 29 }, 504 { 128, 34 }, 505 { 159, 38 }, 506 { 191, 42 }, 507 { 223, 45 }, 508 { 255, 48 }, 509 }, 510 9 /* num_cr_points */, 511 10 /* scaling_shift */, 512 3 /* ar_coeff_lag */, 513 { 514 7, -9, 2, 4, 7, -12, 7, -18, 18, -30, -27, -42, 515 13, -20, 7, -18, 6, 107, 55, -2, -4, -9, -22, 113, 516 }, 517 { 518 -3, -1, -4, 3, -6, -2, 3, 1, -4, -10, -10, -5, -5, 519 -3, -1, -13, -28, -25, -31, -6, -4, 14, -64, 66, 0, 520 }, 521 { 522 0, 4, -3, 13, 0, 1, -3, 0, -3, -10, -68, -4, -2, 523 -5, 2, -3, -20, 62, -31, 0, -4, -1, -8, -29, 0, 524 }, 525 8 /* ar_coeff_shift */, 526 128 /* cb_mult */, 527 192 /* cb_luma_mult */, 528 256 /* cb_offset */, 529 128 /* cr_mult */, 530 192 /* cr_luma_mult */, 531 256 /* cr_offset */, 532 1 /* overlap_flag */, 533 1 /* clip_to_restricted_range */, 534 8 /* bit_depth */, 535 0 /*chroma_scaling_from_luma*/, 536 0 /* grain_scale_shift*/, 537 1357 /* random_seed */ 538 }, 539 /* Test 12 */ 540 { 541 1 /* apply_grain */, 542 1 /* update_parameters */, 543 { 544 { 16, 0 }, 545 { 24, 49 }, 546 { 39, 69 }, 547 { 46, 84 }, 548 { 53, 91 }, 549 { 63, 100 }, 550 { 78, 114 }, 551 { 92, 134 }, 552 { 164, 139 }, 553 }, 554 9 /* num_points_y */, 555 { 556 { 16, 0 }, 557 { 20, 31 }, 558 { 26, 42 }, 559 { 33, 54 }, 560 { 40, 65 }, 561 { 47, 72 }, 562 { 56, 85 }, 563 { 84, 123 }, 564 { 152, 157 }, 565 }, 566 9 /* num_cb_points */, 567 { 568 { 16, 0 }, 569 { 25, 14 }, 570 { 39, 33 }, 571 { 47, 40 }, 572 { 54, 47 }, 573 { 64, 62 }, 574 { 79, 76 }, 575 { 94, 83 }, 576 { 167, 101 }, 577 }, 578 9 /* num_cr_points */, 579 10 /* scaling_shift */, 580 2 /* ar_coeff_lag */, 581 { 0, 0, -58, 0, 0, 0, -76, 100, -43, 0, -51, 82 }, 582 { 0, 0, -49, 0, 0, 0, -36, 22, -30, 0, -38, 7, 39 }, 583 { 0, 0, -47, 0, 0, 0, -31, 31, -25, 0, -32, 13, -100 }, 584 8 /* ar_coeff_shift */, 585 128 /* cb_mult */, 586 192 /* cb_luma_mult */, 587 256 /* cb_offset */, 588 128 /* cr_mult */, 589 192 /* cr_luma_mult */, 590 256 /* cr_offset */, 591 0 /* overlap_flag */, 592 0 /* clip_to_restricted_range */, 593 8 /* bit_depth */, 594 0 /*chroma_scaling_from_luma*/, 595 0 /* grain_scale_shift*/, 596 45231 /* random_seed */ 597 }, 598 /* Test 13 */ 599 { 600 1 /* apply_grain */, 601 1 /* update_parameters */, 602 { 603 { 0, 48 }, 604 { 20, 46 }, 605 { 39, 44 }, 606 { 59, 42 }, 607 { 78, 40 }, 608 { 98, 38 }, 609 { 118, 35 }, 610 { 137, 33 }, 611 { 157, 30 }, 612 { 177, 27 }, 613 { 196, 23 }, 614 { 216, 19 }, 615 { 235, 13 }, 616 { 255, 0 }, 617 }, 618 14 /* num_points_y */, 619 { { 0, 0 }, { 255, 0 } }, 620 0 /* num_cb_points */, 621 { { 0, 0 }, { 255, 0 } }, 622 0 /* num_cr_points */, 623 10 /* scaling_shift */, 624 2 /* ar_coeff_lag */, 625 { 10, -30, -20, -39, 1, -24, 12, 103, 60, -9, -24, 113 }, 626 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, 627 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, 628 8 /* ar_coeff_shift */, 629 128 /* cb_mult */, 630 192 /* cb_luma_mult */, 631 256 /* cb_offset */, 632 128 /* cr_mult */, 633 192 /* cr_luma_mult */, 634 256 /* cr_offset */, 635 1 /* overlap_flag */, 636 0 /* clip_to_restricted_range */, 637 8 /* bit_depth */, 638 0 /*chroma_scaling_from_luma*/, 639 0 /* grain_scale_shift*/, 640 45231 /* random_seed */ 641 }, 642 /* Test 14 */ 643 { 644 1 /* apply_grain */, 645 1 /* update_parameters */, 646 { 647 { 0, 0 }, 648 { 20, 13 }, 649 { 39, 19 }, 650 { 59, 23 }, 651 { 78, 27 }, 652 { 98, 30 }, 653 { 118, 33 }, 654 { 137, 35 }, 655 { 157, 38 }, 656 { 177, 40 }, 657 { 196, 42 }, 658 { 216, 44 }, 659 { 235, 46 }, 660 { 255, 48 }, 661 }, 662 14 /* num_points_y */, 663 { { 0, 0 }, { 255, 0 } }, 664 0 /* num_cb_points */, 665 { { 0, 0 }, { 255, 0 } }, 666 0 /* num_cr_points */, 667 10 /* scaling_shift */, 668 2 /* ar_coeff_lag */, 669 { 10, -30, -20, -39, 1, -24, 12, 103, 60, -9, -24, 113 }, 670 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, 671 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, 672 8 /* ar_coeff_shift */, 673 128 /* cb_mult */, 674 192 /* cb_luma_mult */, 675 256 /* cb_offset */, 676 128 /* cr_mult */, 677 192 /* cr_luma_mult */, 678 256 /* cr_offset */, 679 1 /* overlap_flag */, 680 1 /* clip_to_restricted_range */, 681 8 /* bit_depth */, 682 0 /*chroma_scaling_from_luma*/, 683 0 /* grain_scale_shift*/, 684 45231 /* random_seed */ 685 }, 686 /* Test 15 */ 687 { 688 1 /* apply_grain */, 689 1 /* update_parameters */, 690 { { 0, 96 }, { 255, 96 } }, 691 1 /* num_points_y */, 692 { { 0, 96 }, { 255, 96 } }, 693 0 /* num_cb_points */, 694 { { 0, 96 }, { 255, 96 } }, 695 0 /* num_cr_points */, 696 11 /* scaling_shift */, 697 2 /* ar_coeff_lag */, 698 { 5, -15, -10, -19, 0, -12, 6, 51, 30, -5, -12, 56 }, 699 { 2, 2, -24, -5, 1, 1, -18, 37, -2, 0, -15, 39, -70 }, 700 { 2, 3, -24, -5, -1, 0, -18, 38, -2, 0, -15, 39, -55 }, 701 7 /* ar_coeff_shift */, 702 128 /* cb_mult */, 703 192 /* cb_luma_mult */, 704 256 /* cb_offset */, 705 128 /* cr_mult */, 706 192 /* cr_luma_mult */, 707 256 /* cr_offset */, 708 1 /* overlap_flag */, 709 0 /* clip_to_restricted_range */, 710 8 /* bit_depth */, 711 1 /*chroma_scaling_from_luma*/, 712 0 /* grain_scale_shift*/, 713 45231 /* random_seed */ 714 }, 715 /* Test 16 */ 716 { 717 1 /* apply_grain */, 718 1 /* update_parameters */, 719 { 720 { 16, 0 }, 721 { 58, 126 }, 722 { 87, 120 }, 723 { 97, 122 }, 724 { 112, 125 }, 725 { 126, 131 }, 726 { 141, 139 }, 727 { 199, 153 }, 728 }, 729 8 /* num_points_y */, 730 { 731 { 16, 0 }, 732 { 59, 68 }, 733 { 66, 76 }, 734 { 73, 82 }, 735 { 79, 85 }, 736 { 86, 86 }, 737 { 151, 95 }, 738 { 192, 101 }, 739 }, 740 8 /* num_cb_points */, 741 { 742 { 16, 0 }, 743 { 59, 64 }, 744 { 89, 80 }, 745 { 99, 86 }, 746 { 114, 90 }, 747 { 129, 93 }, 748 { 144, 97 }, 749 { 203, 85 }, 750 }, 751 8 /* num_cr_points */, 752 10 /* scaling_shift */, 753 3 /* ar_coeff_lag */, 754 { 755 4, 1, 3, 0, 1, -3, 8, -3, 7, -23, 1, -25, 756 0, -10, 6, -17, -4, 53, 36, 5, -5, -17, 8, 66, 757 }, 758 { 759 0, -2, -2, 8, 5, -1, 1, -1, 5, 16, -33, -9, 6, 760 -1, -3, 10, -47, 63, 0, -15, 3, 11, -42, 75, -69, 761 }, 762 { 763 1, -1, -1, 9, 5, 0, 1, -1, 5, 15, -32, -10, 8, 764 -2, -4, 11, -46, 62, 1, -16, 3, 13, -43, 75, -55, 765 }, 766 7 /* ar_coeff_shift */, 767 128 /* cb_mult */, 768 192 /* cb_luma_mult */, 769 256 /* cb_offset */, 770 128 /* cr_mult */, 771 192 /* cr_luma_mult */, 772 256 /* cr_offset */, 773 1 /* overlap_flag */, 774 0 /* clip_to_restricted_range */, 775 8 /* bit_depth */, 776 0 /*chroma_scaling_from_luma*/, 777 2 /* grain_scale_shift*/, 778 45231 /* random_seed */ 779 }, 780 }; 781 #endif // AOM_AV1_ENCODER_GRAIN_TEST_VECTORS_H_ 782