| OLD | NEW |
| 1 /* | 1 /* |
| 2 * simd/jsimd.h | 2 * simd/jsimd.h |
| 3 * | 3 * |
| 4 * Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB | 4 * Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB |
| 5 * Copyright 2011 D. R. Commander | 5 * Copyright 2011 D. R. Commander |
| 6 * | 6 * |
| 7 * Based on the x86 SIMD extension for IJG JPEG library, | 7 * Based on the x86 SIMD extension for IJG JPEG library, |
| 8 * Copyright (C) 1999-2006, MIYASAKA Masaru. | 8 * Copyright (C) 1999-2006, MIYASAKA Masaru. |
| 9 * For conditions of distribution and use, see copyright notice in jsimdext.inc | 9 * For conditions of distribution and use, see copyright notice in jsimdext.inc |
| 10 * | 10 * |
| (...skipping 310 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 321 JSAMPARRAY output_buf, int num_rows)); | 321 JSAMPARRAY output_buf, int num_rows)); |
| 322 EXTERN(void) jsimd_ycc_extxbgr_convert_sse2 | 322 EXTERN(void) jsimd_ycc_extxbgr_convert_sse2 |
| 323 JPP((JDIMENSION out_width, | 323 JPP((JDIMENSION out_width, |
| 324 JSAMPIMAGE input_buf, JDIMENSION input_row, | 324 JSAMPIMAGE input_buf, JDIMENSION input_row, |
| 325 JSAMPARRAY output_buf, int num_rows)); | 325 JSAMPARRAY output_buf, int num_rows)); |
| 326 EXTERN(void) jsimd_ycc_extxrgb_convert_sse2 | 326 EXTERN(void) jsimd_ycc_extxrgb_convert_sse2 |
| 327 JPP((JDIMENSION out_width, | 327 JPP((JDIMENSION out_width, |
| 328 JSAMPIMAGE input_buf, JDIMENSION input_row, | 328 JSAMPIMAGE input_buf, JDIMENSION input_row, |
| 329 JSAMPARRAY output_buf, int num_rows)); | 329 JSAMPARRAY output_buf, int num_rows)); |
| 330 | 330 |
| 331 EXTERN(void) jsimd_rgb_ycc_convert_neon |
| 332 JPP((JDIMENSION img_width, |
| 333 JSAMPARRAY input_buf, JSAMPIMAGE output_buf, |
| 334 JDIMENSION output_row, int num_rows)); |
| 335 EXTERN(void) jsimd_extrgb_ycc_convert_neon |
| 336 JPP((JDIMENSION img_width, |
| 337 JSAMPARRAY input_buf, JSAMPIMAGE output_buf, |
| 338 JDIMENSION output_row, int num_rows)); |
| 339 EXTERN(void) jsimd_extrgbx_ycc_convert_neon |
| 340 JPP((JDIMENSION img_width, |
| 341 JSAMPARRAY input_buf, JSAMPIMAGE output_buf, |
| 342 JDIMENSION output_row, int num_rows)); |
| 343 EXTERN(void) jsimd_extbgr_ycc_convert_neon |
| 344 JPP((JDIMENSION img_width, |
| 345 JSAMPARRAY input_buf, JSAMPIMAGE output_buf, |
| 346 JDIMENSION output_row, int num_rows)); |
| 347 EXTERN(void) jsimd_extbgrx_ycc_convert_neon |
| 348 JPP((JDIMENSION img_width, |
| 349 JSAMPARRAY input_buf, JSAMPIMAGE output_buf, |
| 350 JDIMENSION output_row, int num_rows)); |
| 351 EXTERN(void) jsimd_extxbgr_ycc_convert_neon |
| 352 JPP((JDIMENSION img_width, |
| 353 JSAMPARRAY input_buf, JSAMPIMAGE output_buf, |
| 354 JDIMENSION output_row, int num_rows)); |
| 355 EXTERN(void) jsimd_extxrgb_ycc_convert_neon |
| 356 JPP((JDIMENSION img_width, |
| 357 JSAMPARRAY input_buf, JSAMPIMAGE output_buf, |
| 358 JDIMENSION output_row, int num_rows)); |
| 359 |
| 331 EXTERN(void) jsimd_ycc_rgb_convert_neon | 360 EXTERN(void) jsimd_ycc_rgb_convert_neon |
| 332 JPP((JDIMENSION out_width, | 361 JPP((JDIMENSION out_width, |
| 333 JSAMPIMAGE input_buf, JDIMENSION input_row, | 362 JSAMPIMAGE input_buf, JDIMENSION input_row, |
| 334 JSAMPARRAY output_buf, int num_rows)); | 363 JSAMPARRAY output_buf, int num_rows)); |
| 335 EXTERN(void) jsimd_ycc_extrgb_convert_neon | 364 EXTERN(void) jsimd_ycc_extrgb_convert_neon |
| 336 JPP((JDIMENSION out_width, | 365 JPP((JDIMENSION out_width, |
| 337 JSAMPIMAGE input_buf, JDIMENSION input_row, | 366 JSAMPIMAGE input_buf, JDIMENSION input_row, |
| 338 JSAMPARRAY output_buf, int num_rows)); | 367 JSAMPARRAY output_buf, int num_rows)); |
| 339 EXTERN(void) jsimd_ycc_extrgbx_convert_neon | 368 EXTERN(void) jsimd_ycc_extrgbx_convert_neon |
| 340 JPP((JDIMENSION out_width, | 369 JPP((JDIMENSION out_width, |
| (...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 495 | 524 |
| 496 /* SIMD Sample Conversion */ | 525 /* SIMD Sample Conversion */ |
| 497 EXTERN(void) jsimd_convsamp_mmx JPP((JSAMPARRAY sample_data, | 526 EXTERN(void) jsimd_convsamp_mmx JPP((JSAMPARRAY sample_data, |
| 498 JDIMENSION start_col, | 527 JDIMENSION start_col, |
| 499 DCTELEM * workspace)); | 528 DCTELEM * workspace)); |
| 500 | 529 |
| 501 EXTERN(void) jsimd_convsamp_sse2 JPP((JSAMPARRAY sample_data, | 530 EXTERN(void) jsimd_convsamp_sse2 JPP((JSAMPARRAY sample_data, |
| 502 JDIMENSION start_col, | 531 JDIMENSION start_col, |
| 503 DCTELEM * workspace)); | 532 DCTELEM * workspace)); |
| 504 | 533 |
| 534 EXTERN(void) jsimd_convsamp_neon JPP((JSAMPARRAY sample_data, |
| 535 JDIMENSION start_col, |
| 536 DCTELEM * workspace)); |
| 537 |
| 505 EXTERN(void) jsimd_convsamp_float_3dnow JPP((JSAMPARRAY sample_data, | 538 EXTERN(void) jsimd_convsamp_float_3dnow JPP((JSAMPARRAY sample_data, |
| 506 JDIMENSION start_col, | 539 JDIMENSION start_col, |
| 507 FAST_FLOAT * workspace)); | 540 FAST_FLOAT * workspace)); |
| 508 | 541 |
| 509 EXTERN(void) jsimd_convsamp_float_sse JPP((JSAMPARRAY sample_data, | 542 EXTERN(void) jsimd_convsamp_float_sse JPP((JSAMPARRAY sample_data, |
| 510 JDIMENSION start_col, | 543 JDIMENSION start_col, |
| 511 FAST_FLOAT * workspace)); | 544 FAST_FLOAT * workspace)); |
| 512 | 545 |
| 513 EXTERN(void) jsimd_convsamp_float_sse2 JPP((JSAMPARRAY sample_data, | 546 EXTERN(void) jsimd_convsamp_float_sse2 JPP((JSAMPARRAY sample_data, |
| 514 JDIMENSION start_col, | 547 JDIMENSION start_col, |
| 515 FAST_FLOAT * workspace)); | 548 FAST_FLOAT * workspace)); |
| 516 | 549 |
| 517 /* SIMD Forward DCT */ | 550 /* SIMD Forward DCT */ |
| 518 EXTERN(void) jsimd_fdct_islow_mmx JPP((DCTELEM * data)); | 551 EXTERN(void) jsimd_fdct_islow_mmx JPP((DCTELEM * data)); |
| 519 EXTERN(void) jsimd_fdct_ifast_mmx JPP((DCTELEM * data)); | 552 EXTERN(void) jsimd_fdct_ifast_mmx JPP((DCTELEM * data)); |
| 520 | 553 |
| 521 extern const int jconst_fdct_ifast_sse2[]; | 554 extern const int jconst_fdct_ifast_sse2[]; |
| 522 EXTERN(void) jsimd_fdct_islow_sse2 JPP((DCTELEM * data)); | 555 EXTERN(void) jsimd_fdct_islow_sse2 JPP((DCTELEM * data)); |
| 523 extern const int jconst_fdct_islow_sse2[]; | 556 extern const int jconst_fdct_islow_sse2[]; |
| 524 EXTERN(void) jsimd_fdct_ifast_sse2 JPP((DCTELEM * data)); | 557 EXTERN(void) jsimd_fdct_ifast_sse2 JPP((DCTELEM * data)); |
| 525 | 558 |
| 559 EXTERN(void) jsimd_fdct_ifast_neon JPP((DCTELEM * data)); |
| 560 |
| 526 EXTERN(void) jsimd_fdct_float_3dnow JPP((FAST_FLOAT * data)); | 561 EXTERN(void) jsimd_fdct_float_3dnow JPP((FAST_FLOAT * data)); |
| 527 | 562 |
| 528 extern const int jconst_fdct_float_sse[]; | 563 extern const int jconst_fdct_float_sse[]; |
| 529 EXTERN(void) jsimd_fdct_float_sse JPP((FAST_FLOAT * data)); | 564 EXTERN(void) jsimd_fdct_float_sse JPP((FAST_FLOAT * data)); |
| 530 | 565 |
| 531 /* SIMD Quantization */ | 566 /* SIMD Quantization */ |
| 532 EXTERN(void) jsimd_quantize_mmx JPP((JCOEFPTR coef_block, | 567 EXTERN(void) jsimd_quantize_mmx JPP((JCOEFPTR coef_block, |
| 533 DCTELEM * divisors, | 568 DCTELEM * divisors, |
| 534 DCTELEM * workspace)); | 569 DCTELEM * workspace)); |
| 535 | 570 |
| 536 EXTERN(void) jsimd_quantize_sse2 JPP((JCOEFPTR coef_block, | 571 EXTERN(void) jsimd_quantize_sse2 JPP((JCOEFPTR coef_block, |
| 537 DCTELEM * divisors, | 572 DCTELEM * divisors, |
| 538 DCTELEM * workspace)); | 573 DCTELEM * workspace)); |
| 539 | 574 |
| 575 EXTERN(void) jsimd_quantize_neon JPP((JCOEFPTR coef_block, |
| 576 DCTELEM * divisors, |
| 577 DCTELEM * workspace)); |
| 578 |
| 540 EXTERN(void) jsimd_quantize_float_3dnow JPP((JCOEFPTR coef_block, | 579 EXTERN(void) jsimd_quantize_float_3dnow JPP((JCOEFPTR coef_block, |
| 541 FAST_FLOAT * divisors, | 580 FAST_FLOAT * divisors, |
| 542 FAST_FLOAT * workspace)); | 581 FAST_FLOAT * workspace)); |
| 543 | 582 |
| 544 EXTERN(void) jsimd_quantize_float_sse JPP((JCOEFPTR coef_block, | 583 EXTERN(void) jsimd_quantize_float_sse JPP((JCOEFPTR coef_block, |
| 545 FAST_FLOAT * divisors, | 584 FAST_FLOAT * divisors, |
| 546 FAST_FLOAT * workspace)); | 585 FAST_FLOAT * workspace)); |
| 547 | 586 |
| 548 EXTERN(void) jsimd_quantize_float_sse2 JPP((JCOEFPTR coef_block, | 587 EXTERN(void) jsimd_quantize_float_sse2 JPP((JCOEFPTR coef_block, |
| 549 FAST_FLOAT * divisors, | 588 FAST_FLOAT * divisors, |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 592 EXTERN(void) jsimd_idct_islow_sse2 JPP((void * dct_table, | 631 EXTERN(void) jsimd_idct_islow_sse2 JPP((void * dct_table, |
| 593 JCOEFPTR coef_block, | 632 JCOEFPTR coef_block, |
| 594 JSAMPARRAY output_buf, | 633 JSAMPARRAY output_buf, |
| 595 JDIMENSION output_col)); | 634 JDIMENSION output_col)); |
| 596 extern const int jconst_idct_ifast_sse2[]; | 635 extern const int jconst_idct_ifast_sse2[]; |
| 597 EXTERN(void) jsimd_idct_ifast_sse2 JPP((void * dct_table, | 636 EXTERN(void) jsimd_idct_ifast_sse2 JPP((void * dct_table, |
| 598 JCOEFPTR coef_block, | 637 JCOEFPTR coef_block, |
| 599 JSAMPARRAY output_buf, | 638 JSAMPARRAY output_buf, |
| 600 JDIMENSION output_col)); | 639 JDIMENSION output_col)); |
| 601 | 640 |
| 641 EXTERN(void) jsimd_idct_islow_neon JPP((void * dct_table, |
| 642 JCOEFPTR coef_block, |
| 643 JSAMPARRAY output_buf, |
| 644 JDIMENSION output_col)); |
| 602 EXTERN(void) jsimd_idct_ifast_neon JPP((void * dct_table, | 645 EXTERN(void) jsimd_idct_ifast_neon JPP((void * dct_table, |
| 603 JCOEFPTR coef_block, | 646 JCOEFPTR coef_block, |
| 604 JSAMPARRAY output_buf, | 647 JSAMPARRAY output_buf, |
| 605 JDIMENSION output_col)); | 648 JDIMENSION output_col)); |
| 606 | 649 |
| 607 EXTERN(void) jsimd_idct_float_3dnow JPP((void * dct_table, | 650 EXTERN(void) jsimd_idct_float_3dnow JPP((void * dct_table, |
| 608 JCOEFPTR coef_block, | 651 JCOEFPTR coef_block, |
| 609 JSAMPARRAY output_buf, | 652 JSAMPARRAY output_buf, |
| 610 JDIMENSION output_col)); | 653 JDIMENSION output_col)); |
| 611 | 654 |
| 612 extern const int jconst_idct_float_sse[]; | 655 extern const int jconst_idct_float_sse[]; |
| 613 EXTERN(void) jsimd_idct_float_sse JPP((void * dct_table, | 656 EXTERN(void) jsimd_idct_float_sse JPP((void * dct_table, |
| 614 JCOEFPTR coef_block, | 657 JCOEFPTR coef_block, |
| 615 JSAMPARRAY output_buf, | 658 JSAMPARRAY output_buf, |
| 616 JDIMENSION output_col)); | 659 JDIMENSION output_col)); |
| 617 | 660 |
| 618 extern const int jconst_idct_float_sse2[]; | 661 extern const int jconst_idct_float_sse2[]; |
| 619 EXTERN(void) jsimd_idct_float_sse2 JPP((void * dct_table, | 662 EXTERN(void) jsimd_idct_float_sse2 JPP((void * dct_table, |
| 620 JCOEFPTR coef_block, | 663 JCOEFPTR coef_block, |
| 621 JSAMPARRAY output_buf, | 664 JSAMPARRAY output_buf, |
| 622 JDIMENSION output_col)); | 665 JDIMENSION output_col)); |
| 623 | 666 |
| OLD | NEW |