Skip to content

feat(yuv420p16-p016): impl YUV420p16-p016 pixel format#7

Open
uqio wants to merge 1 commit intomainfrom
feat/yuv420p16-p016
Open

feat(yuv420p16-p016): impl YUV420p16-p016 pixel format#7
uqio wants to merge 1 commit intomainfrom
feat/yuv420p16-p016

Conversation

@uqio
Copy link
Copy Markdown
Collaborator

@uqio uqio commented Apr 19, 2026

No description provided.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds end-to-end support for 16-bit 4:2:0 YUV sources in both planar (YUV420p16) and semi-planar (P016) layouts, including frame validation, row conversion primitives, and MixedSinker integration.

Changes:

  • Add new Yuv420p16 and P016 source formats with row-walkers and sink row types.
  • Introduce 16-bit row conversion entrypoints (yuv420p16_to_rgb_*, p016_to_rgb_*) and scalar kernels with i64-widening where required.
  • Extend frame types to accept BITS == 16 for Yuv420pFrame16 and PnFrame, and add MixedSinker implementations + tests for the new formats.

Reviewed changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
src/yuv/yuv420p16.rs New planar 16-bit YUV420p16 source marker, row type, and row-walker.
src/yuv/p016.rs New semi-planar 16-bit P016 source marker, row type, and row-walker.
src/yuv/mod.rs Expose the new formats from the yuv module and update format/kernel-family docs.
src/sinker/mixed.rs Add MixedSinker support (including RowSlice variants) and tests for Yuv420p16/P016.
src/row/scalar.rs Add scalar 16-bit YUV420p/P016 row kernels; widen chroma multiply-add to i64 for u16 output.
src/row/mod.rs Add public dispatcher functions for 16-bit row conversion (currently scalar-only).
src/frame.rs Permit BITS == 16 in PnFrame and Yuv420pFrame16, and add/adjust tests accordingly.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/yuv/yuv420p16.rs
Comment on lines +9 to +12
//! [`crate::row::yuv420p16_to_rgb_row`] and companions dispatch to
//! `scalar::yuv_420p16_to_rgb_*` plus the matching per-backend SIMD
//! kernels, which carry i64 intermediates for the chroma matrix
//! multiply. The 10/12/14 families stay on the Q15 i32 pipeline.
Copy link

Copilot AI Apr 19, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The module docs say the 16-bit path dispatches to scalar plus “matching per-backend SIMD kernels”, but the current row dispatchers (row::yuv420p16_to_rgb_*) always call the scalar implementation (SIMD is not wired yet, use_simd is ignored). Please reword this to avoid implying SIMD support that isn’t present yet (e.g., note scalar-only for now / SIMD pending).

Suggested change
//! [`crate::row::yuv420p16_to_rgb_row`] and companions dispatch to
//! `scalar::yuv_420p16_to_rgb_*` plus the matching per-backend SIMD
//! kernels, which carry i64 intermediates for the chroma matrix
//! multiply. The 10/12/14 families stay on the Q15 i32 pipeline.
//! [`crate::row::yuv420p16_to_rgb_row`] and companions currently use
//! the scalar `scalar::yuv_420p16_to_rgb_*` path, which carries i64
//! intermediates for the chroma matrix multiply. SIMD wiring for this
//! 16-bit path is still pending. The 10/12/14 families stay on the
//! Q15 i32 pipeline.

Copilot uses AI. Check for mistakes.
Comment thread src/yuv/p016.rs
Comment on lines +12 to +14
//! [`crate::row::p016_to_rgb_row`] dispatches to
//! `scalar::p16_to_rgb_*` plus the matching per-backend SIMD kernels,
//! which widen the chroma matrix multiply to i64.
Copy link

Copilot AI Apr 19, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The module docs state p016_to_rgb_row dispatches to scalar plus “matching per-backend SIMD kernels”, but the current dispatcher in row::p016_to_rgb_* always calls the scalar scalar::p16_to_rgb_* implementation (SIMD isn’t wired yet; use_simd is ignored). Please adjust the docs to reflect the current behavior and avoid implying SIMD support that doesn’t exist yet.

Suggested change
//! [`crate::row::p016_to_rgb_row`] dispatches to
//! `scalar::p16_to_rgb_*` plus the matching per-backend SIMD kernels,
//! which widen the chroma matrix multiply to i64.
//! [`crate::row::p016_to_rgb_row`] currently dispatches to the
//! scalar `scalar::p16_to_rgb_*` implementation, which widens the
//! chroma matrix multiply to i64.

Copilot uses AI. Check for mistakes.
@codecov
Copy link
Copy Markdown

codecov Bot commented Apr 19, 2026

Codecov Report

❌ Patch coverage is 87.08972% with 59 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
src/sinker/mixed.rs 75.91% 59 Missing ⚠️

📢 Thoughts on this report? Let us know!

@github-actions
Copy link
Copy Markdown

Benchmark Results

Benchmark Results Summary

Date: 2026-04-19 23:48:33 UTC

Benchmark Results for macos-aarch64-neon

System Information

  • OS: macos-latest
  • Arch: aarch64
  • SIMD tier: neon
  • Runner: GitHub Actions 1000009773
  • Runner arch (GH): ARM64
  • RUSTFLAGS: ``
  • Date: 2026-04-19 23:43:52 UTC

all

test nv12_to_rgb_row/scalar/1280 ... bench:       2,917 ns/iter (+/- 71)
test nv12_to_rgb_row/simd/1280 ... bench:         533 ns/iter (+/- 58)
test nv12_to_rgb_row/scalar/1920 ... bench:       4,251 ns/iter (+/- 175)
test nv12_to_rgb_row/simd/1920 ... bench:         803 ns/iter (+/- 51)
test nv12_to_rgb_row/scalar/3840 ... bench:       8,290 ns/iter (+/- 307)
test nv12_to_rgb_row/simd/3840 ... bench:       1,579 ns/iter (+/- 54)
test nv21_to_rgb_row/scalar/1280 ... bench:       2,899 ns/iter (+/- 119)
test nv21_to_rgb_row/simd/1280 ... bench:         525 ns/iter (+/- 33)
test nv21_to_rgb_row/scalar/1920 ... bench:       4,147 ns/iter (+/- 300)
test nv21_to_rgb_row/simd/1920 ... bench:         786 ns/iter (+/- 43)
test nv21_to_rgb_row/scalar/3840 ... bench:       8,293 ns/iter (+/- 350)
test nv21_to_rgb_row/simd/3840 ... bench:       1,573 ns/iter (+/- 558)
test p010_to_rgb_row/u8_scalar/1280 ... bench:       2,951 ns/iter (+/- 116)
test p010_to_rgb_row/u8_simd/1280 ... bench:         527 ns/iter (+/- 81)
test p010_to_rgb_row/u8_scalar/1920 ... bench:       4,510 ns/iter (+/- 235)
test p010_to_rgb_row/u8_simd/1920 ... bench:         793 ns/iter (+/- 271)
test p010_to_rgb_row/u8_scalar/3840 ... bench:       8,977 ns/iter (+/- 624)
test p010_to_rgb_row/u8_simd/3840 ... bench:       1,559 ns/iter (+/- 171)
test p010_to_rgb_u16_row/u16_scalar/1280 ... bench:       2,943 ns/iter (+/- 229)
test p010_to_rgb_u16_row/u16_simd/1280 ... bench:         668 ns/iter (+/- 81)
test p010_to_rgb_u16_row/u16_scalar/1920 ... bench:       4,407 ns/iter (+/- 496)
test p010_to_rgb_u16_row/u16_simd/1920 ... bench:         997 ns/iter (+/- 48)
test p010_to_rgb_u16_row/u16_scalar/3840 ... bench:       8,822 ns/iter (+/- 701)
test p010_to_rgb_u16_row/u16_simd/3840 ... bench:       1,952 ns/iter (+/- 193)
test p012_to_rgb_row/u8_scalar/1280 ... bench:       2,992 ns/iter (+/- 272)
test p012_to_rgb_row/u8_simd/1280 ... bench:         528 ns/iter (+/- 45)
test p012_to_rgb_row/u8_scalar/1920 ... bench:       4,493 ns/iter (+/- 242)
test p012_to_rgb_row/u8_simd/1920 ... bench:         789 ns/iter (+/- 61)
test p012_to_rgb_row/u8_scalar/3840 ... bench:       8,852 ns/iter (+/- 293)
test p012_to_rgb_row/u8_simd/3840 ... bench:       1,569 ns/iter (+/- 168)
test p012_to_rgb_u16_row/u16_scalar/1280 ... bench:       2,947 ns/iter (+/- 626)
test p012_to_rgb_u16_row/u16_simd/1280 ... bench:         659 ns/iter (+/- 45)
test p012_to_rgb_u16_row/u16_scalar/1920 ... bench:       4,405 ns/iter (+/- 482)
test p012_to_rgb_u16_row/u16_simd/1920 ... bench:         996 ns/iter (+/- 320)
test p012_to_rgb_u16_row/u16_scalar/3840 ... bench:       8,733 ns/iter (+/- 279)
test p012_to_rgb_u16_row/u16_simd/3840 ... bench:       1,987 ns/iter (+/- 162)
test rgb_to_hsv_row/scalar/1280 ... bench:       3,373 ns/iter (+/- 152)
test rgb_to_hsv_row/simd/1280 ... bench:       1,524 ns/iter (+/- 469)
test rgb_to_hsv_row/scalar/1920 ... bench:       5,009 ns/iter (+/- 305)
test rgb_to_hsv_row/simd/1920 ... bench:       2,378 ns/iter (+/- 281)
test rgb_to_hsv_row/scalar/3840 ... bench:      10,548 ns/iter (+/- 650)
test rgb_to_hsv_row/simd/3840 ... bench:       4,737 ns/iter (+/- 283)
test yuv_420_to_rgb_row/scalar/1280 ... bench:       2,887 ns/iter (+/- 109)
test yuv_420_to_rgb_row/simd/1280 ... bench:         505 ns/iter (+/- 16)
test yuv_420_to_rgb_row/scalar/1920 ... bench:       4,113 ns/iter (+/- 201)
test yuv_420_to_rgb_row/simd/1920 ... bench:         735 ns/iter (+/- 14)
test yuv_420_to_rgb_row/scalar/3840 ... bench:       8,720 ns/iter (+/- 499)
test yuv_420_to_rgb_row/simd/3840 ... bench:       1,467 ns/iter (+/- 33)
test yuv420p10_to_rgb_row/u8_scalar/1280 ... bench:       2,949 ns/iter (+/- 42)
test yuv420p10_to_rgb_row/u8_simd/1280 ... bench:         463 ns/iter (+/- 4)
test yuv420p10_to_rgb_row/u8_scalar/1920 ... bench:       4,426 ns/iter (+/- 84)
test yuv420p10_to_rgb_row/u8_simd/1920 ... bench:         696 ns/iter (+/- 9)
test yuv420p10_to_rgb_row/u8_scalar/3840 ... bench:       8,843 ns/iter (+/- 91)
test yuv420p10_to_rgb_row/u8_simd/3840 ... bench:       1,401 ns/iter (+/- 84)
test yuv420p10_to_rgb_u16_row/u16_scalar/1280 ... bench:       2,961 ns/iter (+/- 65)
test yuv420p10_to_rgb_u16_row/u16_simd/1280 ... bench:         579 ns/iter (+/- 6)
test yuv420p10_to_rgb_u16_row/u16_scalar/1920 ... bench:       4,433 ns/iter (+/- 69)
test yuv420p10_to_rgb_u16_row/u16_simd/1920 ... bench:         872 ns/iter (+/- 9)
test yuv420p10_to_rgb_u16_row/u16_scalar/3840 ... bench:       8,842 ns/iter (+/- 105)
test yuv420p10_to_rgb_u16_row/u16_simd/3840 ... bench:       1,737 ns/iter (+/- 18)
test yuv420p12_to_rgb_row/u8_scalar/1280 ... bench:       2,996 ns/iter (+/- 186)
test yuv420p12_to_rgb_row/u8_simd/1280 ... bench:         468 ns/iter (+/- 12)
test yuv420p12_to_rgb_row/u8_scalar/1920 ... bench:       4,479 ns/iter (+/- 108)
test yuv420p12_to_rgb_row/u8_simd/1920 ... bench:         698 ns/iter (+/- 14)
test yuv420p12_to_rgb_row/u8_scalar/3840 ... bench:       8,849 ns/iter (+/- 193)
test yuv420p12_to_rgb_row/u8_simd/3840 ... bench:       1,394 ns/iter (+/- 36)
test yuv420p12_to_rgb_u16_row/u16_scalar/1280 ... bench:       2,958 ns/iter (+/- 57)
test yuv420p12_to_rgb_u16_row/u16_simd/1280 ... bench:         580 ns/iter (+/- 15)
test yuv420p12_to_rgb_u16_row/u16_scalar/1920 ... bench:       4,423 ns/iter (+/- 122)
test yuv420p12_to_rgb_u16_row/u16_simd/1920 ... bench:         875 ns/iter (+/- 19)
test yuv420p12_to_rgb_u16_row/u16_scalar/3840 ... bench:       8,853 ns/iter (+/- 205)
test yuv420p12_to_rgb_u16_row/u16_simd/3840 ... bench:       1,748 ns/iter (+/- 41)
test yuv420p14_to_rgb_row/u8_scalar/1280 ... bench:       3,031 ns/iter (+/- 45)
test yuv420p14_to_rgb_row/u8_simd/1280 ... bench:         462 ns/iter (+/- 6)
test yuv420p14_to_rgb_row/u8_scalar/1920 ... bench:       4,605 ns/iter (+/- 206)
test yuv420p14_to_rgb_row/u8_simd/1920 ... bench:         700 ns/iter (+/- 14)
test yuv420p14_to_rgb_row/u8_scalar/3840 ... bench:       9,107 ns/iter (+/- 158)
test yuv420p14_to_rgb_row/u8_simd/3840 ... bench:       1,392 ns/iter (+/- 44)
test yuv420p14_to_rgb_u16_row/u16_scalar/1280 ... bench:       2,960 ns/iter (+/- 51)
test yuv420p14_to_rgb_u16_row/u16_simd/1280 ... bench:         579 ns/iter (+/- 9)
test yuv420p14_to_rgb_u16_row/u16_scalar/1920 ... bench:       4,463 ns/iter (+/- 89)
test yuv420p14_to_rgb_u16_row/u16_simd/1920 ... bench:         884 ns/iter (+/- 40)
test yuv420p14_to_rgb_u16_row/u16_scalar/3840 ... bench:       9,157 ns/iter (+/- 258)
test yuv420p14_to_rgb_u16_row/u16_simd/3840 ... bench:       1,737 ns/iter (+/- 20)

Benchmark Results for macos-aarch64-scalar

System Information

  • OS: macos-latest
  • Arch: aarch64
  • SIMD tier: scalar
  • Runner: GitHub Actions 1000009772
  • Runner arch (GH): ARM64
  • RUSTFLAGS: --cfg colconv_force_scalar
  • Date: 2026-04-19 23:43:55 UTC

all

test nv12_to_rgb_row/scalar/1280 ... bench:       2,947 ns/iter (+/- 113)
test nv12_to_rgb_row/simd/1280 ... bench:       2,945 ns/iter (+/- 52)
test nv12_to_rgb_row/scalar/1920 ... bench:       4,419 ns/iter (+/- 67)
test nv12_to_rgb_row/simd/1920 ... bench:       4,421 ns/iter (+/- 76)
test nv12_to_rgb_row/scalar/3840 ... bench:       8,834 ns/iter (+/- 130)
test nv12_to_rgb_row/simd/3840 ... bench:       8,826 ns/iter (+/- 136)
test nv21_to_rgb_row/scalar/1280 ... bench:       2,947 ns/iter (+/- 87)
test nv21_to_rgb_row/simd/1280 ... bench:       2,946 ns/iter (+/- 50)
test nv21_to_rgb_row/scalar/1920 ... bench:       4,423 ns/iter (+/- 55)
test nv21_to_rgb_row/simd/1920 ... bench:       4,417 ns/iter (+/- 68)
test nv21_to_rgb_row/scalar/3840 ... bench:       8,833 ns/iter (+/- 152)
test nv21_to_rgb_row/simd/3840 ... bench:       8,827 ns/iter (+/- 157)
test p010_to_rgb_row/u8_scalar/1280 ... bench:       2,963 ns/iter (+/- 49)
test p010_to_rgb_row/u8_simd/1280 ... bench:       2,962 ns/iter (+/- 37)
test p010_to_rgb_row/u8_scalar/1920 ... bench:       4,438 ns/iter (+/- 58)
test p010_to_rgb_row/u8_simd/1920 ... bench:       4,439 ns/iter (+/- 66)
test p010_to_rgb_row/u8_scalar/3840 ... bench:       8,859 ns/iter (+/- 165)
test p010_to_rgb_row/u8_simd/3840 ... bench:       8,868 ns/iter (+/- 132)
test p010_to_rgb_u16_row/u16_scalar/1280 ... bench:       2,907 ns/iter (+/- 87)
test p010_to_rgb_u16_row/u16_simd/1280 ... bench:       2,906 ns/iter (+/- 44)
test p010_to_rgb_u16_row/u16_scalar/1920 ... bench:       4,356 ns/iter (+/- 67)
test p010_to_rgb_u16_row/u16_simd/1920 ... bench:       4,354 ns/iter (+/- 67)
test p010_to_rgb_u16_row/u16_scalar/3840 ... bench:       8,697 ns/iter (+/- 129)
test p010_to_rgb_u16_row/u16_simd/3840 ... bench:       8,687 ns/iter (+/- 159)
test p012_to_rgb_row/u8_scalar/1280 ... bench:       2,966 ns/iter (+/- 142)
test p012_to_rgb_row/u8_simd/1280 ... bench:       2,943 ns/iter (+/- 25)
test p012_to_rgb_row/u8_scalar/1920 ... bench:       4,429 ns/iter (+/- 26)
test p012_to_rgb_row/u8_simd/1920 ... bench:       4,420 ns/iter (+/- 31)
test p012_to_rgb_row/u8_scalar/3840 ... bench:       8,843 ns/iter (+/- 70)
test p012_to_rgb_row/u8_simd/3840 ... bench:       8,846 ns/iter (+/- 68)
test p012_to_rgb_u16_row/u16_scalar/1280 ... bench:       2,896 ns/iter (+/- 16)
test p012_to_rgb_u16_row/u16_simd/1280 ... bench:       2,908 ns/iter (+/- 133)
test p012_to_rgb_u16_row/u16_scalar/1920 ... bench:       4,326 ns/iter (+/- 67)
test p012_to_rgb_u16_row/u16_simd/1920 ... bench:       4,329 ns/iter (+/- 55)
test p012_to_rgb_u16_row/u16_scalar/3840 ... bench:       8,718 ns/iter (+/- 476)
test p012_to_rgb_u16_row/u16_simd/3840 ... bench:       8,708 ns/iter (+/- 109)
test rgb_to_hsv_row/scalar/1280 ... bench:       3,372 ns/iter (+/- 47)
test rgb_to_hsv_row/simd/1280 ... bench:       3,375 ns/iter (+/- 48)
test rgb_to_hsv_row/scalar/1920 ... bench:       5,053 ns/iter (+/- 100)
test rgb_to_hsv_row/simd/1920 ... bench:       5,059 ns/iter (+/- 479)
test rgb_to_hsv_row/scalar/3840 ... bench:      10,261 ns/iter (+/- 652)
test rgb_to_hsv_row/simd/3840 ... bench:      10,177 ns/iter (+/- 463)
test yuv_420_to_rgb_row/scalar/1280 ... bench:       2,913 ns/iter (+/- 56)
test yuv_420_to_rgb_row/simd/1280 ... bench:       2,917 ns/iter (+/- 39)
test yuv_420_to_rgb_row/scalar/1920 ... bench:       4,369 ns/iter (+/- 72)
test yuv_420_to_rgb_row/simd/1920 ... bench:       4,373 ns/iter (+/- 57)
test yuv_420_to_rgb_row/scalar/3840 ... bench:       8,943 ns/iter (+/- 362)
test yuv_420_to_rgb_row/simd/3840 ... bench:       8,946 ns/iter (+/- 139)
test yuv420p10_to_rgb_row/u8_scalar/1280 ... bench:       3,187 ns/iter (+/- 45)
test yuv420p10_to_rgb_row/u8_simd/1280 ... bench:       3,187 ns/iter (+/- 47)
test yuv420p10_to_rgb_row/u8_scalar/1920 ... bench:       4,776 ns/iter (+/- 78)
test yuv420p10_to_rgb_row/u8_simd/1920 ... bench:       4,776 ns/iter (+/- 72)
test yuv420p10_to_rgb_row/u8_scalar/3840 ... bench:       9,550 ns/iter (+/- 130)
test yuv420p10_to_rgb_row/u8_simd/3840 ... bench:       9,559 ns/iter (+/- 170)
test yuv420p10_to_rgb_u16_row/u16_scalar/1280 ... bench:       3,183 ns/iter (+/- 49)
test yuv420p10_to_rgb_u16_row/u16_simd/1280 ... bench:       3,188 ns/iter (+/- 48)
test yuv420p10_to_rgb_u16_row/u16_scalar/1920 ... bench:       4,776 ns/iter (+/- 98)
test yuv420p10_to_rgb_u16_row/u16_simd/1920 ... bench:       4,778 ns/iter (+/- 72)
test yuv420p10_to_rgb_u16_row/u16_scalar/3840 ... bench:       9,540 ns/iter (+/- 149)
test yuv420p10_to_rgb_u16_row/u16_simd/3840 ... bench:       9,545 ns/iter (+/- 144)
test yuv420p12_to_rgb_row/u8_scalar/1280 ... bench:       3,190 ns/iter (+/- 53)
test yuv420p12_to_rgb_row/u8_simd/1280 ... bench:       3,190 ns/iter (+/- 48)
test yuv420p12_to_rgb_row/u8_scalar/1920 ... bench:       4,777 ns/iter (+/- 76)
test yuv420p12_to_rgb_row/u8_simd/1920 ... bench:       4,784 ns/iter (+/- 75)
test yuv420p12_to_rgb_row/u8_scalar/3840 ... bench:       9,558 ns/iter (+/- 166)
test yuv420p12_to_rgb_row/u8_simd/3840 ... bench:       9,548 ns/iter (+/- 130)
test yuv420p12_to_rgb_u16_row/u16_scalar/1280 ... bench:       3,188 ns/iter (+/- 46)
test yuv420p12_to_rgb_u16_row/u16_simd/1280 ... bench:       3,189 ns/iter (+/- 53)
test yuv420p12_to_rgb_u16_row/u16_scalar/1920 ... bench:       4,772 ns/iter (+/- 83)
test yuv420p12_to_rgb_u16_row/u16_simd/1920 ... bench:       4,774 ns/iter (+/- 80)
test yuv420p12_to_rgb_u16_row/u16_scalar/3840 ... bench:       9,540 ns/iter (+/- 155)
test yuv420p12_to_rgb_u16_row/u16_simd/3840 ... bench:       9,546 ns/iter (+/- 136)
test yuv420p14_to_rgb_row/u8_scalar/1280 ... bench:       3,276 ns/iter (+/- 50)
test yuv420p14_to_rgb_row/u8_simd/1280 ... bench:       3,275 ns/iter (+/- 44)
test yuv420p14_to_rgb_row/u8_scalar/1920 ... bench:       4,913 ns/iter (+/- 63)
test yuv420p14_to_rgb_row/u8_simd/1920 ... bench:       4,912 ns/iter (+/- 65)
test yuv420p14_to_rgb_row/u8_scalar/3840 ... bench:       9,820 ns/iter (+/- 135)
test yuv420p14_to_rgb_row/u8_simd/3840 ... bench:       9,801 ns/iter (+/- 176)
test yuv420p14_to_rgb_u16_row/u16_scalar/1280 ... bench:       3,195 ns/iter (+/- 45)
test yuv420p14_to_rgb_u16_row/u16_simd/1280 ... bench:       3,197 ns/iter (+/- 45)
test yuv420p14_to_rgb_u16_row/u16_scalar/1920 ... bench:       4,791 ns/iter (+/- 77)
test yuv420p14_to_rgb_u16_row/u16_simd/1920 ... bench:       4,791 ns/iter (+/- 67)
test yuv420p14_to_rgb_u16_row/u16_scalar/3840 ... bench:       9,580 ns/iter (+/- 185)
test yuv420p14_to_rgb_u16_row/u16_simd/3840 ... bench:       9,570 ns/iter (+/- 129)

Benchmark Results for ubuntu-x86_64-avx2-max

System Information

  • OS: ubuntu-latest
  • Arch: x86_64
  • SIMD tier: avx2-max
  • Runner: GitHub Actions 1000009768
  • Runner arch (GH): X64
  • RUSTFLAGS: --cfg colconv_disable_avx512
  • Date: 2026-04-19 23:45:14 UTC

all

test nv12_to_rgb_row/scalar/1280 ... bench:       4,884 ns/iter (+/- 20)
test nv12_to_rgb_row/simd/1280 ... bench:       1,116 ns/iter (+/- 5)
test nv12_to_rgb_row/scalar/1920 ... bench:       7,373 ns/iter (+/- 399)
test nv12_to_rgb_row/simd/1920 ... bench:       1,673 ns/iter (+/- 1)
test nv12_to_rgb_row/scalar/3840 ... bench:      14,729 ns/iter (+/- 39)
test nv12_to_rgb_row/simd/3840 ... bench:       3,349 ns/iter (+/- 3)
test nv21_to_rgb_row/scalar/1280 ... bench:       4,879 ns/iter (+/- 60)
test nv21_to_rgb_row/simd/1280 ... bench:       1,116 ns/iter (+/- 21)
test nv21_to_rgb_row/scalar/1920 ... bench:       7,347 ns/iter (+/- 16)
test nv21_to_rgb_row/simd/1920 ... bench:       1,674 ns/iter (+/- 3)
test nv21_to_rgb_row/scalar/3840 ... bench:      14,694 ns/iter (+/- 33)
test nv21_to_rgb_row/simd/3840 ... bench:       3,350 ns/iter (+/- 3)
test p010_to_rgb_row/u8_scalar/1280 ... bench:       4,363 ns/iter (+/- 105)
test p010_to_rgb_row/u8_simd/1280 ... bench:       1,169 ns/iter (+/- 15)
test p010_to_rgb_row/u8_scalar/1920 ... bench:       6,609 ns/iter (+/- 25)
test p010_to_rgb_row/u8_simd/1920 ... bench:       1,753 ns/iter (+/- 1)
test p010_to_rgb_row/u8_scalar/3840 ... bench:      13,135 ns/iter (+/- 54)
test p010_to_rgb_row/u8_simd/3840 ... bench:       3,509 ns/iter (+/- 7)
test p010_to_rgb_u16_row/u16_scalar/1280 ... bench:       4,518 ns/iter (+/- 29)
test p010_to_rgb_u16_row/u16_simd/1280 ... bench:       1,216 ns/iter (+/- 13)
test p010_to_rgb_u16_row/u16_scalar/1920 ... bench:       6,805 ns/iter (+/- 134)
test p010_to_rgb_u16_row/u16_simd/1920 ... bench:       1,822 ns/iter (+/- 2)
test p010_to_rgb_u16_row/u16_scalar/3840 ... bench:      13,567 ns/iter (+/- 47)
test p010_to_rgb_u16_row/u16_simd/3840 ... bench:       3,655 ns/iter (+/- 5)
test p012_to_rgb_row/u8_scalar/1280 ... bench:       4,805 ns/iter (+/- 108)
test p012_to_rgb_row/u8_simd/1280 ... bench:       1,169 ns/iter (+/- 1)
test p012_to_rgb_row/u8_scalar/1920 ... bench:       6,969 ns/iter (+/- 38)
test p012_to_rgb_row/u8_simd/1920 ... bench:       1,754 ns/iter (+/- 55)
test p012_to_rgb_row/u8_scalar/3840 ... bench:      13,975 ns/iter (+/- 69)
test p012_to_rgb_row/u8_simd/3840 ... bench:       3,511 ns/iter (+/- 3)
test p012_to_rgb_u16_row/u16_scalar/1280 ... bench:       4,705 ns/iter (+/- 79)
test p012_to_rgb_u16_row/u16_simd/1280 ... bench:       1,217 ns/iter (+/- 1)
test p012_to_rgb_u16_row/u16_scalar/1920 ... bench:       6,851 ns/iter (+/- 17)
test p012_to_rgb_u16_row/u16_simd/1920 ... bench:       1,823 ns/iter (+/- 1)
test p012_to_rgb_u16_row/u16_scalar/3840 ... bench:      13,772 ns/iter (+/- 27)
test p012_to_rgb_u16_row/u16_simd/3840 ... bench:       3,663 ns/iter (+/- 2)
test rgb_to_hsv_row/scalar/1280 ... bench:       4,716 ns/iter (+/- 74)
test rgb_to_hsv_row/simd/1280 ... bench:       2,584 ns/iter (+/- 7)
test rgb_to_hsv_row/scalar/1920 ... bench:       7,083 ns/iter (+/- 22)
test rgb_to_hsv_row/simd/1920 ... bench:       3,875 ns/iter (+/- 13)
test rgb_to_hsv_row/scalar/3840 ... bench:      14,355 ns/iter (+/- 213)
test rgb_to_hsv_row/simd/3840 ... bench:       7,763 ns/iter (+/- 30)
test yuv_420_to_rgb_row/scalar/1280 ... bench:       4,653 ns/iter (+/- 20)
test yuv_420_to_rgb_row/simd/1280 ... bench:       1,004 ns/iter (+/- 2)
test yuv_420_to_rgb_row/scalar/1920 ... bench:       7,012 ns/iter (+/- 40)
test yuv_420_to_rgb_row/simd/1920 ... bench:       1,505 ns/iter (+/- 5)
test yuv_420_to_rgb_row/scalar/3840 ... bench:      14,044 ns/iter (+/- 108)
test yuv_420_to_rgb_row/simd/3840 ... bench:       3,012 ns/iter (+/- 10)
test yuv420p10_to_rgb_row/u8_scalar/1280 ... bench:       4,684 ns/iter (+/- 24)
test yuv420p10_to_rgb_row/u8_simd/1280 ... bench:         993 ns/iter (+/- 15)
test yuv420p10_to_rgb_row/u8_scalar/1920 ... bench:       7,097 ns/iter (+/- 267)
test yuv420p10_to_rgb_row/u8_simd/1920 ... bench:       1,484 ns/iter (+/- 14)
test yuv420p10_to_rgb_row/u8_scalar/3840 ... bench:      14,302 ns/iter (+/- 35)
test yuv420p10_to_rgb_row/u8_simd/3840 ... bench:       2,969 ns/iter (+/- 60)
test yuv420p10_to_rgb_u16_row/u16_scalar/1280 ... bench:       4,760 ns/iter (+/- 18)
test yuv420p10_to_rgb_u16_row/u16_simd/1280 ... bench:       1,023 ns/iter (+/- 3)
test yuv420p10_to_rgb_u16_row/u16_scalar/1920 ... bench:       7,221 ns/iter (+/- 37)
test yuv420p10_to_rgb_u16_row/u16_simd/1920 ... bench:       1,525 ns/iter (+/- 4)
test yuv420p10_to_rgb_u16_row/u16_scalar/3840 ... bench:      14,616 ns/iter (+/- 89)
test yuv420p10_to_rgb_u16_row/u16_simd/3840 ... bench:       3,065 ns/iter (+/- 6)
test yuv420p12_to_rgb_row/u8_scalar/1280 ... bench:       4,720 ns/iter (+/- 13)
test yuv420p12_to_rgb_row/u8_simd/1280 ... bench:         989 ns/iter (+/- 1)
test yuv420p12_to_rgb_row/u8_scalar/1920 ... bench:       7,141 ns/iter (+/- 34)
test yuv420p12_to_rgb_row/u8_simd/1920 ... bench:       1,482 ns/iter (+/- 1)
test yuv420p12_to_rgb_row/u8_scalar/3840 ... bench:      14,236 ns/iter (+/- 57)
test yuv420p12_to_rgb_row/u8_simd/3840 ... bench:       2,966 ns/iter (+/- 1)
test yuv420p12_to_rgb_u16_row/u16_scalar/1280 ... bench:       4,758 ns/iter (+/- 13)
test yuv420p12_to_rgb_u16_row/u16_simd/1280 ... bench:       1,018 ns/iter (+/- 1)
test yuv420p12_to_rgb_u16_row/u16_scalar/1920 ... bench:       7,201 ns/iter (+/- 15)
test yuv420p12_to_rgb_u16_row/u16_simd/1920 ... bench:       1,525 ns/iter (+/- 2)
test yuv420p12_to_rgb_u16_row/u16_scalar/3840 ... bench:      14,516 ns/iter (+/- 74)
test yuv420p12_to_rgb_u16_row/u16_simd/3840 ... bench:       3,063 ns/iter (+/- 7)
test yuv420p14_to_rgb_row/u8_scalar/1280 ... bench:       4,790 ns/iter (+/- 33)
test yuv420p14_to_rgb_row/u8_simd/1280 ... bench:         990 ns/iter (+/- 13)
test yuv420p14_to_rgb_row/u8_scalar/1920 ... bench:       7,162 ns/iter (+/- 34)
test yuv420p14_to_rgb_row/u8_simd/1920 ... bench:       1,482 ns/iter (+/- 35)
test yuv420p14_to_rgb_row/u8_scalar/3840 ... bench:      14,760 ns/iter (+/- 127)
test yuv420p14_to_rgb_row/u8_simd/3840 ... bench:       2,968 ns/iter (+/- 4)
test yuv420p14_to_rgb_u16_row/u16_scalar/1280 ... bench:       4,723 ns/iter (+/- 16)
test yuv420p14_to_rgb_u16_row/u16_simd/1280 ... bench:       1,022 ns/iter (+/- 3)
test yuv420p14_to_rgb_u16_row/u16_scalar/1920 ... bench:       7,109 ns/iter (+/- 29)
test yuv420p14_to_rgb_u16_row/u16_simd/1920 ... bench:       1,529 ns/iter (+/- 1)
test yuv420p14_to_rgb_u16_row/u16_scalar/3840 ... bench:      14,260 ns/iter (+/- 69)
test yuv420p14_to_rgb_u16_row/u16_simd/3840 ... bench:       3,063 ns/iter (+/- 3)

Benchmark Results for ubuntu-x86_64-default

System Information

  • OS: ubuntu-latest
  • Arch: x86_64
  • SIMD tier: default
  • Runner: GitHub Actions 1000009767
  • Runner arch (GH): X64
  • RUSTFLAGS: ``
  • Date: 2026-04-19 23:45:41 UTC

all

test nv12_to_rgb_row/scalar/1280 ... bench:       3,745 ns/iter (+/- 36)
test nv12_to_rgb_row/simd/1280 ... bench:         756 ns/iter (+/- 1)
test nv12_to_rgb_row/scalar/1920 ... bench:       5,681 ns/iter (+/- 115)
test nv12_to_rgb_row/simd/1920 ... bench:       1,128 ns/iter (+/- 0)
test nv12_to_rgb_row/scalar/3840 ... bench:      11,446 ns/iter (+/- 142)
test nv12_to_rgb_row/simd/3840 ... bench:       2,262 ns/iter (+/- 3)
test nv21_to_rgb_row/scalar/1280 ... bench:       3,808 ns/iter (+/- 62)
test nv21_to_rgb_row/simd/1280 ... bench:         773 ns/iter (+/- 1)
test nv21_to_rgb_row/scalar/1920 ... bench:       5,703 ns/iter (+/- 25)
test nv21_to_rgb_row/simd/1920 ... bench:       1,157 ns/iter (+/- 2)
test nv21_to_rgb_row/scalar/3840 ... bench:      11,327 ns/iter (+/- 320)
test nv21_to_rgb_row/simd/3840 ... bench:       2,304 ns/iter (+/- 2)
test p010_to_rgb_row/u8_scalar/1280 ... bench:       3,857 ns/iter (+/- 34)
test p010_to_rgb_row/u8_simd/1280 ... bench:         666 ns/iter (+/- 0)
test p010_to_rgb_row/u8_scalar/1920 ... bench:       5,791 ns/iter (+/- 24)
test p010_to_rgb_row/u8_simd/1920 ... bench:       1,002 ns/iter (+/- 0)
test p010_to_rgb_row/u8_scalar/3840 ... bench:      11,551 ns/iter (+/- 55)
test p010_to_rgb_row/u8_simd/3840 ... bench:       2,005 ns/iter (+/- 4)
test p010_to_rgb_u16_row/u16_scalar/1280 ... bench:       3,606 ns/iter (+/- 15)
test p010_to_rgb_u16_row/u16_simd/1280 ... bench:       1,235 ns/iter (+/- 2)
test p010_to_rgb_u16_row/u16_scalar/1920 ... bench:       5,406 ns/iter (+/- 14)
test p010_to_rgb_u16_row/u16_simd/1920 ... bench:       1,853 ns/iter (+/- 1)
test p010_to_rgb_u16_row/u16_scalar/3840 ... bench:      10,789 ns/iter (+/- 80)
test p010_to_rgb_u16_row/u16_simd/3840 ... bench:       3,707 ns/iter (+/- 4)
test p012_to_rgb_row/u8_scalar/1280 ... bench:       3,792 ns/iter (+/- 48)
test p012_to_rgb_row/u8_simd/1280 ... bench:         663 ns/iter (+/- 0)
test p012_to_rgb_row/u8_scalar/1920 ... bench:       5,674 ns/iter (+/- 13)
test p012_to_rgb_row/u8_simd/1920 ... bench:         994 ns/iter (+/- 0)
test p012_to_rgb_row/u8_scalar/3840 ... bench:      11,392 ns/iter (+/- 81)
test p012_to_rgb_row/u8_simd/3840 ... bench:       2,003 ns/iter (+/- 1)
test p012_to_rgb_u16_row/u16_scalar/1280 ... bench:       3,560 ns/iter (+/- 119)
test p012_to_rgb_u16_row/u16_simd/1280 ... bench:       1,236 ns/iter (+/- 1)
test p012_to_rgb_u16_row/u16_scalar/1920 ... bench:       5,358 ns/iter (+/- 21)
test p012_to_rgb_u16_row/u16_simd/1920 ... bench:       1,853 ns/iter (+/- 1)
test p012_to_rgb_u16_row/u16_scalar/3840 ... bench:      10,843 ns/iter (+/- 78)
test p012_to_rgb_u16_row/u16_simd/3840 ... bench:       3,706 ns/iter (+/- 4)
test rgb_to_hsv_row/scalar/1280 ... bench:       4,125 ns/iter (+/- 8)
test rgb_to_hsv_row/simd/1280 ... bench:       3,548 ns/iter (+/- 4)
test rgb_to_hsv_row/scalar/1920 ... bench:       6,165 ns/iter (+/- 50)
test rgb_to_hsv_row/simd/1920 ... bench:       5,324 ns/iter (+/- 7)
test rgb_to_hsv_row/scalar/3840 ... bench:      12,378 ns/iter (+/- 34)
test rgb_to_hsv_row/simd/3840 ... bench:      10,645 ns/iter (+/- 17)
test yuv_420_to_rgb_row/scalar/1280 ... bench:       3,737 ns/iter (+/- 35)
test yuv_420_to_rgb_row/simd/1280 ... bench:         685 ns/iter (+/- 0)
test yuv_420_to_rgb_row/scalar/1920 ... bench:       5,703 ns/iter (+/- 88)
test yuv_420_to_rgb_row/simd/1920 ... bench:       1,026 ns/iter (+/- 1)
test yuv_420_to_rgb_row/scalar/3840 ... bench:      11,225 ns/iter (+/- 35)
test yuv_420_to_rgb_row/simd/3840 ... bench:       2,053 ns/iter (+/- 1)
test yuv420p10_to_rgb_row/u8_scalar/1280 ... bench:       4,020 ns/iter (+/- 10)
test yuv420p10_to_rgb_row/u8_simd/1280 ... bench:         657 ns/iter (+/- 0)
test yuv420p10_to_rgb_row/u8_scalar/1920 ... bench:       6,026 ns/iter (+/- 260)
test yuv420p10_to_rgb_row/u8_simd/1920 ... bench:         980 ns/iter (+/- 0)
test yuv420p10_to_rgb_row/u8_scalar/3840 ... bench:      12,016 ns/iter (+/- 518)
test yuv420p10_to_rgb_row/u8_simd/3840 ... bench:       1,974 ns/iter (+/- 3)
test yuv420p10_to_rgb_u16_row/u16_scalar/1280 ... bench:       3,841 ns/iter (+/- 30)
test yuv420p10_to_rgb_u16_row/u16_simd/1280 ... bench:       1,217 ns/iter (+/- 1)
test yuv420p10_to_rgb_u16_row/u16_scalar/1920 ... bench:       5,765 ns/iter (+/- 16)
test yuv420p10_to_rgb_u16_row/u16_simd/1920 ... bench:       1,821 ns/iter (+/- 8)
test yuv420p10_to_rgb_u16_row/u16_scalar/3840 ... bench:      11,491 ns/iter (+/- 34)
test yuv420p10_to_rgb_u16_row/u16_simd/3840 ... bench:       3,634 ns/iter (+/- 4)
test yuv420p12_to_rgb_row/u8_scalar/1280 ... bench:       4,412 ns/iter (+/- 196)
test yuv420p12_to_rgb_row/u8_simd/1280 ... bench:         641 ns/iter (+/- 0)
test yuv420p12_to_rgb_row/u8_scalar/1920 ... bench:       6,027 ns/iter (+/- 139)
test yuv420p12_to_rgb_row/u8_simd/1920 ... bench:         956 ns/iter (+/- 0)
test yuv420p12_to_rgb_row/u8_scalar/3840 ... bench:      12,018 ns/iter (+/- 49)
test yuv420p12_to_rgb_row/u8_simd/3840 ... bench:       1,920 ns/iter (+/- 1)
test yuv420p12_to_rgb_u16_row/u16_scalar/1280 ... bench:       3,798 ns/iter (+/- 16)
test yuv420p12_to_rgb_u16_row/u16_simd/1280 ... bench:       1,208 ns/iter (+/- 1)
test yuv420p12_to_rgb_u16_row/u16_scalar/1920 ... bench:       5,725 ns/iter (+/- 19)
test yuv420p12_to_rgb_u16_row/u16_simd/1920 ... bench:       1,812 ns/iter (+/- 1)
test yuv420p12_to_rgb_u16_row/u16_scalar/3840 ... bench:      11,421 ns/iter (+/- 29)
test yuv420p12_to_rgb_u16_row/u16_simd/3840 ... bench:       3,626 ns/iter (+/- 1)
test yuv420p14_to_rgb_row/u8_scalar/1280 ... bench:       3,775 ns/iter (+/- 19)
test yuv420p14_to_rgb_row/u8_simd/1280 ... bench:         641 ns/iter (+/- 1)
test yuv420p14_to_rgb_row/u8_scalar/1920 ... bench:       5,676 ns/iter (+/- 17)
test yuv420p14_to_rgb_row/u8_simd/1920 ... bench:         959 ns/iter (+/- 2)
test yuv420p14_to_rgb_row/u8_scalar/3840 ... bench:      11,289 ns/iter (+/- 139)
test yuv420p14_to_rgb_row/u8_simd/3840 ... bench:       1,919 ns/iter (+/- 2)
test yuv420p14_to_rgb_u16_row/u16_scalar/1280 ... bench:       3,833 ns/iter (+/- 8)
test yuv420p14_to_rgb_u16_row/u16_simd/1280 ... bench:       1,213 ns/iter (+/- 3)
test yuv420p14_to_rgb_u16_row/u16_scalar/1920 ... bench:       5,688 ns/iter (+/- 7)
test yuv420p14_to_rgb_u16_row/u16_simd/1920 ... bench:       1,820 ns/iter (+/- 3)
test yuv420p14_to_rgb_u16_row/u16_scalar/3840 ... bench:      11,506 ns/iter (+/- 41)
test yuv420p14_to_rgb_u16_row/u16_simd/3840 ... bench:       3,631 ns/iter (+/- 3)

Benchmark Results for ubuntu-x86_64-native

System Information

  • OS: ubuntu-latest
  • Arch: x86_64
  • SIMD tier: native
  • Runner: GitHub Actions 1000009770
  • Runner arch (GH): X64
  • RUSTFLAGS: ``
  • CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_RUSTFLAGS: -C target-cpu=native
  • Date: 2026-04-19 23:45:33 UTC

all

test nv12_to_rgb_row/scalar/1280 ... bench:       4,459 ns/iter (+/- 113)
test nv12_to_rgb_row/simd/1280 ... bench:       1,117 ns/iter (+/- 1)
test nv12_to_rgb_row/scalar/1920 ... bench:       6,691 ns/iter (+/- 11)
test nv12_to_rgb_row/simd/1920 ... bench:       1,675 ns/iter (+/- 1)
test nv12_to_rgb_row/scalar/3840 ... bench:      13,439 ns/iter (+/- 39)
test nv12_to_rgb_row/simd/3840 ... bench:       3,358 ns/iter (+/- 3)
test nv21_to_rgb_row/scalar/1280 ... bench:       4,645 ns/iter (+/- 52)
test nv21_to_rgb_row/simd/1280 ... bench:       1,117 ns/iter (+/- 1)
test nv21_to_rgb_row/scalar/1920 ... bench:       6,695 ns/iter (+/- 64)
test nv21_to_rgb_row/simd/1920 ... bench:       1,675 ns/iter (+/- 4)
test nv21_to_rgb_row/scalar/3840 ... bench:      13,405 ns/iter (+/- 162)
test nv21_to_rgb_row/simd/3840 ... bench:       3,356 ns/iter (+/- 7)
test p010_to_rgb_row/u8_scalar/1280 ... bench:       4,784 ns/iter (+/- 9)
test p010_to_rgb_row/u8_simd/1280 ... bench:       1,170 ns/iter (+/- 0)
test p010_to_rgb_row/u8_scalar/1920 ... bench:       7,179 ns/iter (+/- 74)
test p010_to_rgb_row/u8_simd/1920 ... bench:       1,755 ns/iter (+/- 1)
test p010_to_rgb_row/u8_scalar/3840 ... bench:      14,375 ns/iter (+/- 61)
test p010_to_rgb_row/u8_simd/3840 ... bench:       3,515 ns/iter (+/- 3)
test p010_to_rgb_u16_row/u16_scalar/1280 ... bench:       4,633 ns/iter (+/- 62)
test p010_to_rgb_u16_row/u16_simd/1280 ... bench:       1,217 ns/iter (+/- 1)
test p010_to_rgb_u16_row/u16_scalar/1920 ... bench:       6,769 ns/iter (+/- 41)
test p010_to_rgb_u16_row/u16_simd/1920 ... bench:       1,824 ns/iter (+/- 4)
test p010_to_rgb_u16_row/u16_scalar/3840 ... bench:      13,608 ns/iter (+/- 247)
test p010_to_rgb_u16_row/u16_simd/3840 ... bench:       3,655 ns/iter (+/- 5)
test p012_to_rgb_row/u8_scalar/1280 ... bench:       4,741 ns/iter (+/- 15)
test p012_to_rgb_row/u8_simd/1280 ... bench:       1,170 ns/iter (+/- 3)
test p012_to_rgb_row/u8_scalar/1920 ... bench:       7,130 ns/iter (+/- 24)
test p012_to_rgb_row/u8_simd/1920 ... bench:       1,755 ns/iter (+/- 1)
test p012_to_rgb_row/u8_scalar/3840 ... bench:      14,307 ns/iter (+/- 25)
test p012_to_rgb_row/u8_simd/3840 ... bench:       3,514 ns/iter (+/- 3)
test p012_to_rgb_u16_row/u16_scalar/1280 ... bench:       4,470 ns/iter (+/- 20)
test p012_to_rgb_u16_row/u16_simd/1280 ... bench:       1,216 ns/iter (+/- 1)
test p012_to_rgb_u16_row/u16_scalar/1920 ... bench:       6,685 ns/iter (+/- 33)
test p012_to_rgb_u16_row/u16_simd/1920 ... bench:       1,824 ns/iter (+/- 3)
test p012_to_rgb_u16_row/u16_scalar/3840 ... bench:      13,399 ns/iter (+/- 79)
test p012_to_rgb_u16_row/u16_simd/3840 ... bench:       3,654 ns/iter (+/- 6)
test rgb_to_hsv_row/scalar/1280 ... bench:       4,667 ns/iter (+/- 10)
test rgb_to_hsv_row/simd/1280 ... bench:       2,587 ns/iter (+/- 2)
test rgb_to_hsv_row/scalar/1920 ... bench:       7,021 ns/iter (+/- 39)
test rgb_to_hsv_row/simd/1920 ... bench:       3,880 ns/iter (+/- 11)
test rgb_to_hsv_row/scalar/3840 ... bench:      14,081 ns/iter (+/- 112)
test rgb_to_hsv_row/simd/3840 ... bench:       7,762 ns/iter (+/- 49)
test yuv_420_to_rgb_row/scalar/1280 ... bench:       4,545 ns/iter (+/- 10)
test yuv_420_to_rgb_row/simd/1280 ... bench:       1,005 ns/iter (+/- 1)
test yuv_420_to_rgb_row/scalar/1920 ... bench:       6,894 ns/iter (+/- 55)
test yuv_420_to_rgb_row/simd/1920 ... bench:       1,505 ns/iter (+/- 2)
test yuv_420_to_rgb_row/scalar/3840 ... bench:      13,768 ns/iter (+/- 74)
test yuv_420_to_rgb_row/simd/3840 ... bench:       3,013 ns/iter (+/- 3)
test yuv420p10_to_rgb_row/u8_scalar/1280 ... bench:       4,853 ns/iter (+/- 19)
test yuv420p10_to_rgb_row/u8_simd/1280 ... bench:         990 ns/iter (+/- 3)
test yuv420p10_to_rgb_row/u8_scalar/1920 ... bench:       7,340 ns/iter (+/- 17)
test yuv420p10_to_rgb_row/u8_simd/1920 ... bench:       1,484 ns/iter (+/- 1)
test yuv420p10_to_rgb_row/u8_scalar/3840 ... bench:      14,793 ns/iter (+/- 36)
test yuv420p10_to_rgb_row/u8_simd/3840 ... bench:       2,970 ns/iter (+/- 2)
test yuv420p10_to_rgb_u16_row/u16_scalar/1280 ... bench:       4,818 ns/iter (+/- 7)
test yuv420p10_to_rgb_u16_row/u16_simd/1280 ... bench:       1,025 ns/iter (+/- 4)
test yuv420p10_to_rgb_u16_row/u16_scalar/1920 ... bench:       7,274 ns/iter (+/- 37)
test yuv420p10_to_rgb_u16_row/u16_simd/1920 ... bench:       1,529 ns/iter (+/- 2)
test yuv420p10_to_rgb_u16_row/u16_scalar/3840 ... bench:      14,597 ns/iter (+/- 132)
test yuv420p10_to_rgb_u16_row/u16_simd/3840 ... bench:       3,062 ns/iter (+/- 6)
test yuv420p12_to_rgb_row/u8_scalar/1280 ... bench:       4,853 ns/iter (+/- 27)
test yuv420p12_to_rgb_row/u8_simd/1280 ... bench:         994 ns/iter (+/- 2)
test yuv420p12_to_rgb_row/u8_scalar/1920 ... bench:       7,319 ns/iter (+/- 75)
test yuv420p12_to_rgb_row/u8_simd/1920 ... bench:       1,484 ns/iter (+/- 4)
test yuv420p12_to_rgb_row/u8_scalar/3840 ... bench:      14,641 ns/iter (+/- 44)
test yuv420p12_to_rgb_row/u8_simd/3840 ... bench:       2,975 ns/iter (+/- 8)
test yuv420p12_to_rgb_u16_row/u16_scalar/1280 ... bench:       4,784 ns/iter (+/- 11)
test yuv420p12_to_rgb_u16_row/u16_simd/1280 ... bench:       1,024 ns/iter (+/- 3)
test yuv420p12_to_rgb_u16_row/u16_scalar/1920 ... bench:       7,229 ns/iter (+/- 130)
test yuv420p12_to_rgb_u16_row/u16_simd/1920 ... bench:       1,527 ns/iter (+/- 3)
test yuv420p12_to_rgb_u16_row/u16_scalar/3840 ... bench:      14,546 ns/iter (+/- 33)
test yuv420p12_to_rgb_u16_row/u16_simd/3840 ... bench:       3,068 ns/iter (+/- 5)
test yuv420p14_to_rgb_row/u8_scalar/1280 ... bench:       4,733 ns/iter (+/- 36)
test yuv420p14_to_rgb_row/u8_simd/1280 ... bench:         990 ns/iter (+/- 1)
test yuv420p14_to_rgb_row/u8_scalar/1920 ... bench:       7,094 ns/iter (+/- 28)
test yuv420p14_to_rgb_row/u8_simd/1920 ... bench:       1,483 ns/iter (+/- 1)
test yuv420p14_to_rgb_row/u8_scalar/3840 ... bench:      14,306 ns/iter (+/- 97)
test yuv420p14_to_rgb_row/u8_simd/3840 ... bench:       2,970 ns/iter (+/- 2)
test yuv420p14_to_rgb_u16_row/u16_scalar/1280 ... bench:       4,797 ns/iter (+/- 33)
test yuv420p14_to_rgb_u16_row/u16_simd/1280 ... bench:       1,024 ns/iter (+/- 3)
test yuv420p14_to_rgb_u16_row/u16_scalar/1920 ... bench:       7,211 ns/iter (+/- 91)
test yuv420p14_to_rgb_u16_row/u16_simd/1920 ... bench:       1,527 ns/iter (+/- 5)
test yuv420p14_to_rgb_u16_row/u16_scalar/3840 ... bench:      14,485 ns/iter (+/- 100)
test yuv420p14_to_rgb_u16_row/u16_simd/3840 ... bench:       3,070 ns/iter (+/- 17)

Benchmark Results for ubuntu-x86_64-scalar

System Information

  • OS: ubuntu-latest
  • Arch: x86_64
  • SIMD tier: scalar
  • Runner: GitHub Actions 1000009771
  • Runner arch (GH): X64
  • RUSTFLAGS: --cfg colconv_force_scalar
  • Date: 2026-04-19 23:45:27 UTC

all

test nv12_to_rgb_row/scalar/1280 ... bench:       4,455 ns/iter (+/- 146)
test nv12_to_rgb_row/simd/1280 ... bench:       4,449 ns/iter (+/- 10)
test nv12_to_rgb_row/scalar/1920 ... bench:       6,738 ns/iter (+/- 35)
test nv12_to_rgb_row/simd/1920 ... bench:       6,663 ns/iter (+/- 57)
test nv12_to_rgb_row/scalar/3840 ... bench:      13,495 ns/iter (+/- 258)
test nv12_to_rgb_row/simd/3840 ... bench:      13,374 ns/iter (+/- 27)
test nv21_to_rgb_row/scalar/1280 ... bench:       4,415 ns/iter (+/- 11)
test nv21_to_rgb_row/simd/1280 ... bench:       4,413 ns/iter (+/- 14)
test nv21_to_rgb_row/scalar/1920 ... bench:       6,709 ns/iter (+/- 116)
test nv21_to_rgb_row/simd/1920 ... bench:       6,723 ns/iter (+/- 73)
test nv21_to_rgb_row/scalar/3840 ... bench:      13,419 ns/iter (+/- 584)
test nv21_to_rgb_row/simd/3840 ... bench:      13,409 ns/iter (+/- 88)
test p010_to_rgb_row/u8_scalar/1280 ... bench:       4,583 ns/iter (+/- 169)
test p010_to_rgb_row/u8_simd/1280 ... bench:       4,577 ns/iter (+/- 17)
test p010_to_rgb_row/u8_scalar/1920 ... bench:       6,916 ns/iter (+/- 13)
test p010_to_rgb_row/u8_simd/1920 ... bench:       6,892 ns/iter (+/- 24)
test p010_to_rgb_row/u8_scalar/3840 ... bench:      13,793 ns/iter (+/- 196)
test p010_to_rgb_row/u8_simd/3840 ... bench:      13,979 ns/iter (+/- 131)
test p010_to_rgb_u16_row/u16_scalar/1280 ... bench:       4,618 ns/iter (+/- 7)
test p010_to_rgb_u16_row/u16_simd/1280 ... bench:       4,574 ns/iter (+/- 44)
test p010_to_rgb_u16_row/u16_scalar/1920 ... bench:       6,776 ns/iter (+/- 124)
test p010_to_rgb_u16_row/u16_simd/1920 ... bench:       6,720 ns/iter (+/- 154)
test p010_to_rgb_u16_row/u16_scalar/3840 ... bench:      13,464 ns/iter (+/- 54)
test p010_to_rgb_u16_row/u16_simd/3840 ... bench:      13,459 ns/iter (+/- 71)
test p012_to_rgb_row/u8_scalar/1280 ... bench:       4,459 ns/iter (+/- 10)
test p012_to_rgb_row/u8_simd/1280 ... bench:       4,470 ns/iter (+/- 10)
test p012_to_rgb_row/u8_scalar/1920 ... bench:       6,713 ns/iter (+/- 17)
test p012_to_rgb_row/u8_simd/1920 ... bench:       6,720 ns/iter (+/- 100)
test p012_to_rgb_row/u8_scalar/3840 ... bench:      13,439 ns/iter (+/- 48)
test p012_to_rgb_row/u8_simd/3840 ... bench:      13,418 ns/iter (+/- 212)
test p012_to_rgb_u16_row/u16_scalar/1280 ... bench:       4,690 ns/iter (+/- 33)
test p012_to_rgb_u16_row/u16_simd/1280 ... bench:       4,517 ns/iter (+/- 43)
test p012_to_rgb_u16_row/u16_scalar/1920 ... bench:       6,915 ns/iter (+/- 73)
test p012_to_rgb_u16_row/u16_simd/1920 ... bench:       7,040 ns/iter (+/- 69)
test p012_to_rgb_u16_row/u16_scalar/3840 ... bench:      13,870 ns/iter (+/- 254)
test p012_to_rgb_u16_row/u16_simd/3840 ... bench:      13,774 ns/iter (+/- 138)
test rgb_to_hsv_row/scalar/1280 ... bench:       4,617 ns/iter (+/- 44)
test rgb_to_hsv_row/simd/1280 ... bench:       4,617 ns/iter (+/- 112)
test rgb_to_hsv_row/scalar/1920 ... bench:       6,928 ns/iter (+/- 18)
test rgb_to_hsv_row/simd/1920 ... bench:       6,927 ns/iter (+/- 13)
test rgb_to_hsv_row/scalar/3840 ... bench:      13,887 ns/iter (+/- 35)
test rgb_to_hsv_row/simd/3840 ... bench:      13,890 ns/iter (+/- 94)
test yuv_420_to_rgb_row/scalar/1280 ... bench:       4,756 ns/iter (+/- 47)
test yuv_420_to_rgb_row/simd/1280 ... bench:       4,762 ns/iter (+/- 22)
test yuv_420_to_rgb_row/scalar/1920 ... bench:       7,213 ns/iter (+/- 106)
test yuv_420_to_rgb_row/simd/1920 ... bench:       7,226 ns/iter (+/- 49)
test yuv_420_to_rgb_row/scalar/3840 ... bench:      14,420 ns/iter (+/- 145)
test yuv_420_to_rgb_row/simd/3840 ... bench:      14,307 ns/iter (+/- 233)
test yuv420p10_to_rgb_row/u8_scalar/1280 ... bench:       4,952 ns/iter (+/- 78)
test yuv420p10_to_rgb_row/u8_simd/1280 ... bench:       5,026 ns/iter (+/- 17)
test yuv420p10_to_rgb_row/u8_scalar/1920 ... bench:       7,805 ns/iter (+/- 34)
test yuv420p10_to_rgb_row/u8_simd/1920 ... bench:       7,320 ns/iter (+/- 20)
test yuv420p10_to_rgb_row/u8_scalar/3840 ... bench:      14,815 ns/iter (+/- 193)
test yuv420p10_to_rgb_row/u8_simd/3840 ... bench:      14,817 ns/iter (+/- 142)
test yuv420p10_to_rgb_u16_row/u16_scalar/1280 ... bench:       4,634 ns/iter (+/- 19)
test yuv420p10_to_rgb_u16_row/u16_simd/1280 ... bench:       4,634 ns/iter (+/- 9)
test yuv420p10_to_rgb_u16_row/u16_scalar/1920 ... bench:       7,044 ns/iter (+/- 35)
test yuv420p10_to_rgb_u16_row/u16_simd/1920 ... bench:       7,036 ns/iter (+/- 32)
test yuv420p10_to_rgb_u16_row/u16_scalar/3840 ... bench:      14,188 ns/iter (+/- 32)
test yuv420p10_to_rgb_u16_row/u16_simd/3840 ... bench:      14,350 ns/iter (+/- 104)
test yuv420p12_to_rgb_row/u8_scalar/1280 ... bench:       4,951 ns/iter (+/- 79)
test yuv420p12_to_rgb_row/u8_simd/1280 ... bench:       4,857 ns/iter (+/- 122)
test yuv420p12_to_rgb_row/u8_scalar/1920 ... bench:       7,345 ns/iter (+/- 139)
test yuv420p12_to_rgb_row/u8_simd/1920 ... bench:       7,342 ns/iter (+/- 133)
test yuv420p12_to_rgb_row/u8_scalar/3840 ... bench:      15,328 ns/iter (+/- 401)
test yuv420p12_to_rgb_row/u8_simd/3840 ... bench:      15,040 ns/iter (+/- 380)
test yuv420p12_to_rgb_u16_row/u16_scalar/1280 ... bench:       4,701 ns/iter (+/- 19)
test yuv420p12_to_rgb_u16_row/u16_simd/1280 ... bench:       4,669 ns/iter (+/- 25)
test yuv420p12_to_rgb_u16_row/u16_scalar/1920 ... bench:       7,129 ns/iter (+/- 28)
test yuv420p12_to_rgb_u16_row/u16_simd/1920 ... bench:       7,176 ns/iter (+/- 172)
test yuv420p12_to_rgb_u16_row/u16_scalar/3840 ... bench:      14,341 ns/iter (+/- 61)
test yuv420p12_to_rgb_u16_row/u16_simd/3840 ... bench:      14,094 ns/iter (+/- 383)
test yuv420p14_to_rgb_row/u8_scalar/1280 ... bench:       4,924 ns/iter (+/- 108)
test yuv420p14_to_rgb_row/u8_simd/1280 ... bench:       4,934 ns/iter (+/- 27)
test yuv420p14_to_rgb_row/u8_scalar/1920 ... bench:       7,765 ns/iter (+/- 188)
test yuv420p14_to_rgb_row/u8_simd/1920 ... bench:       7,434 ns/iter (+/- 119)
test yuv420p14_to_rgb_row/u8_scalar/3840 ... bench:      14,853 ns/iter (+/- 292)
test yuv420p14_to_rgb_row/u8_simd/3840 ... bench:      14,885 ns/iter (+/- 45)
test yuv420p14_to_rgb_u16_row/u16_scalar/1280 ... bench:       5,045 ns/iter (+/- 33)
test yuv420p14_to_rgb_u16_row/u16_simd/1280 ... bench:       5,062 ns/iter (+/- 13)
test yuv420p14_to_rgb_u16_row/u16_scalar/1920 ... bench:       7,325 ns/iter (+/- 18)
test yuv420p14_to_rgb_u16_row/u16_simd/1920 ... bench:       7,328 ns/iter (+/- 19)
test yuv420p14_to_rgb_u16_row/u16_scalar/3840 ... bench:      15,352 ns/iter (+/- 302)
test yuv420p14_to_rgb_u16_row/u16_simd/3840 ... bench:      14,681 ns/iter (+/- 52)

Benchmark Results for ubuntu-x86_64-sse41-max

System Information

  • OS: ubuntu-latest
  • Arch: x86_64
  • SIMD tier: sse41-max
  • Runner: GitHub Actions 1000009769
  • Runner arch (GH): X64
  • RUSTFLAGS: --cfg colconv_disable_avx512 --cfg colconv_disable_avx2
  • Date: 2026-04-19 23:45:39 UTC

all

test nv12_to_rgb_row/scalar/1280 ... bench:       4,643 ns/iter (+/- 119)
test nv12_to_rgb_row/simd/1280 ... bench:         885 ns/iter (+/- 19)
test nv12_to_rgb_row/scalar/1920 ... bench:       6,938 ns/iter (+/- 62)
test nv12_to_rgb_row/simd/1920 ... bench:       1,331 ns/iter (+/- 1)
test nv12_to_rgb_row/scalar/3840 ... bench:      13,983 ns/iter (+/- 43)
test nv12_to_rgb_row/simd/3840 ... bench:       2,661 ns/iter (+/- 2)
test nv21_to_rgb_row/scalar/1280 ... bench:       4,865 ns/iter (+/- 46)
test nv21_to_rgb_row/simd/1280 ... bench:         880 ns/iter (+/- 1)
test nv21_to_rgb_row/scalar/1920 ... bench:       7,328 ns/iter (+/- 167)
test nv21_to_rgb_row/simd/1920 ... bench:       1,324 ns/iter (+/- 42)
test nv21_to_rgb_row/scalar/3840 ... bench:      14,674 ns/iter (+/- 378)
test nv21_to_rgb_row/simd/3840 ... bench:       2,643 ns/iter (+/- 2)
test p010_to_rgb_row/u8_scalar/1280 ... bench:       4,759 ns/iter (+/- 7)
test p010_to_rgb_row/u8_simd/1280 ... bench:         945 ns/iter (+/- 2)
test p010_to_rgb_row/u8_scalar/1920 ... bench:       7,115 ns/iter (+/- 19)
test p010_to_rgb_row/u8_simd/1920 ... bench:       1,420 ns/iter (+/- 2)
test p010_to_rgb_row/u8_scalar/3840 ... bench:      14,316 ns/iter (+/- 120)
test p010_to_rgb_row/u8_simd/3840 ... bench:       2,842 ns/iter (+/- 3)
test p010_to_rgb_u16_row/u16_scalar/1280 ... bench:       4,520 ns/iter (+/- 123)
test p010_to_rgb_u16_row/u16_simd/1280 ... bench:       1,154 ns/iter (+/- 15)
test p010_to_rgb_u16_row/u16_scalar/1920 ... bench:       6,814 ns/iter (+/- 29)
test p010_to_rgb_u16_row/u16_simd/1920 ... bench:       1,738 ns/iter (+/- 1)
test p010_to_rgb_u16_row/u16_scalar/3840 ... bench:      13,598 ns/iter (+/- 29)
test p010_to_rgb_u16_row/u16_simd/3840 ... bench:       3,479 ns/iter (+/- 10)
test p012_to_rgb_row/u8_scalar/1280 ... bench:       4,625 ns/iter (+/- 157)
test p012_to_rgb_row/u8_simd/1280 ... bench:         938 ns/iter (+/- 1)
test p012_to_rgb_row/u8_scalar/1920 ... bench:       6,989 ns/iter (+/- 152)
test p012_to_rgb_row/u8_simd/1920 ... bench:       1,411 ns/iter (+/- 1)
test p012_to_rgb_row/u8_scalar/3840 ... bench:      13,970 ns/iter (+/- 34)
test p012_to_rgb_row/u8_simd/3840 ... bench:       2,823 ns/iter (+/- 4)
test p012_to_rgb_u16_row/u16_scalar/1280 ... bench:       4,500 ns/iter (+/- 19)
test p012_to_rgb_u16_row/u16_simd/1280 ... bench:       1,165 ns/iter (+/- 1)
test p012_to_rgb_u16_row/u16_scalar/1920 ... bench:       6,791 ns/iter (+/- 36)
test p012_to_rgb_u16_row/u16_simd/1920 ... bench:       1,755 ns/iter (+/- 15)
test p012_to_rgb_u16_row/u16_scalar/3840 ... bench:      13,604 ns/iter (+/- 87)
test p012_to_rgb_u16_row/u16_simd/3840 ... bench:       3,516 ns/iter (+/- 29)
test rgb_to_hsv_row/scalar/1280 ... bench:       4,626 ns/iter (+/- 146)
test rgb_to_hsv_row/simd/1280 ... bench:       2,563 ns/iter (+/- 3)
test rgb_to_hsv_row/scalar/1920 ... bench:       6,948 ns/iter (+/- 24)
test rgb_to_hsv_row/simd/1920 ... bench:       3,849 ns/iter (+/- 6)
test rgb_to_hsv_row/scalar/3840 ... bench:      13,936 ns/iter (+/- 427)
test rgb_to_hsv_row/simd/3840 ... bench:       7,692 ns/iter (+/- 20)
test yuv_420_to_rgb_row/scalar/1280 ... bench:       4,576 ns/iter (+/- 11)
test yuv_420_to_rgb_row/simd/1280 ... bench:         904 ns/iter (+/- 1)
test yuv_420_to_rgb_row/scalar/1920 ... bench:       6,934 ns/iter (+/- 13)
test yuv_420_to_rgb_row/simd/1920 ... bench:       1,360 ns/iter (+/- 6)
test yuv_420_to_rgb_row/scalar/3840 ... bench:      13,839 ns/iter (+/- 50)
test yuv_420_to_rgb_row/simd/3840 ... bench:       2,712 ns/iter (+/- 5)
test yuv420p10_to_rgb_row/u8_scalar/1280 ... bench:       4,617 ns/iter (+/- 12)
test yuv420p10_to_rgb_row/u8_simd/1280 ... bench:         842 ns/iter (+/- 1)
test yuv420p10_to_rgb_row/u8_scalar/1920 ... bench:       6,993 ns/iter (+/- 67)
test yuv420p10_to_rgb_row/u8_simd/1920 ... bench:       1,262 ns/iter (+/- 2)
test yuv420p10_to_rgb_row/u8_scalar/3840 ... bench:      14,051 ns/iter (+/- 48)
test yuv420p10_to_rgb_row/u8_simd/3840 ... bench:       2,517 ns/iter (+/- 6)
test yuv420p10_to_rgb_u16_row/u16_scalar/1280 ... bench:       4,825 ns/iter (+/- 14)
test yuv420p10_to_rgb_u16_row/u16_simd/1280 ... bench:       1,103 ns/iter (+/- 9)
test yuv420p10_to_rgb_u16_row/u16_scalar/1920 ... bench:       7,609 ns/iter (+/- 20)
test yuv420p10_to_rgb_u16_row/u16_simd/1920 ... bench:       1,657 ns/iter (+/- 3)
test yuv420p10_to_rgb_u16_row/u16_scalar/3840 ... bench:      14,766 ns/iter (+/- 85)
test yuv420p10_to_rgb_u16_row/u16_simd/3840 ... bench:       3,313 ns/iter (+/- 6)
test yuv420p12_to_rgb_row/u8_scalar/1280 ... bench:       4,617 ns/iter (+/- 45)
test yuv420p12_to_rgb_row/u8_simd/1280 ... bench:         819 ns/iter (+/- 19)
test yuv420p12_to_rgb_row/u8_scalar/1920 ... bench:       6,994 ns/iter (+/- 33)
test yuv420p12_to_rgb_row/u8_simd/1920 ... bench:       1,233 ns/iter (+/- 35)
test yuv420p12_to_rgb_row/u8_scalar/3840 ... bench:      13,993 ns/iter (+/- 76)
test yuv420p12_to_rgb_row/u8_simd/3840 ... bench:       2,457 ns/iter (+/- 16)
test yuv420p12_to_rgb_u16_row/u16_scalar/1280 ... bench:       4,782 ns/iter (+/- 22)
test yuv420p12_to_rgb_u16_row/u16_simd/1280 ... bench:       1,102 ns/iter (+/- 44)
test yuv420p12_to_rgb_u16_row/u16_scalar/1920 ... bench:       7,220 ns/iter (+/- 21)
test yuv420p12_to_rgb_u16_row/u16_simd/1920 ... bench:       1,657 ns/iter (+/- 1)
test yuv420p12_to_rgb_u16_row/u16_scalar/3840 ... bench:      14,476 ns/iter (+/- 44)
test yuv420p12_to_rgb_u16_row/u16_simd/3840 ... bench:       3,313 ns/iter (+/- 15)
test yuv420p14_to_rgb_row/u8_scalar/1280 ... bench:       4,804 ns/iter (+/- 9)
test yuv420p14_to_rgb_row/u8_simd/1280 ... bench:         819 ns/iter (+/- 1)
test yuv420p14_to_rgb_row/u8_scalar/1920 ... bench:       7,527 ns/iter (+/- 134)
test yuv420p14_to_rgb_row/u8_simd/1920 ... bench:       1,232 ns/iter (+/- 6)
test yuv420p14_to_rgb_row/u8_scalar/3840 ... bench:      14,507 ns/iter (+/- 73)
test yuv420p14_to_rgb_row/u8_simd/3840 ... bench:       2,457 ns/iter (+/- 16)
test yuv420p14_to_rgb_u16_row/u16_scalar/1280 ... bench:       4,571 ns/iter (+/- 15)
test yuv420p14_to_rgb_u16_row/u16_simd/1280 ... bench:       1,102 ns/iter (+/- 1)
test yuv420p14_to_rgb_u16_row/u16_scalar/1920 ... bench:       6,873 ns/iter (+/- 18)
test yuv420p14_to_rgb_u16_row/u16_simd/1920 ... bench:       1,659 ns/iter (+/- 6)
test yuv420p14_to_rgb_u16_row/u16_scalar/3840 ... bench:      13,892 ns/iter (+/- 80)
test yuv420p14_to_rgb_u16_row/u16_simd/3840 ... bench:       3,312 ns/iter (+/- 6)

Benchmark Results for windows-x86_64-default

System Information

  • OS: windows-latest
  • Arch: x86_64
  • SIMD tier: default
  • Runner: GitHub Actions 1000009766
  • Runner arch (GH): X64
  • RUSTFLAGS: ``
  • Date: 2026-04-19 23:48:03 UTC

all

test nv12_to_rgb_row/scalar/1280 ... bench:       3,575 ns/iter (+/- 145)
test nv12_to_rgb_row/simd/1280 ... bench:         761 ns/iter (+/- 21)
test nv12_to_rgb_row/scalar/1920 ... bench:       5,323 ns/iter (+/- 133)
test nv12_to_rgb_row/simd/1920 ... bench:       1,139 ns/iter (+/- 15)
test nv12_to_rgb_row/scalar/3840 ... bench:      10,725 ns/iter (+/- 1,203)
test nv12_to_rgb_row/simd/3840 ... bench:       2,268 ns/iter (+/- 67)
test nv21_to_rgb_row/scalar/1280 ... bench:       3,719 ns/iter (+/- 145)
test nv21_to_rgb_row/simd/1280 ... bench:         774 ns/iter (+/- 20)
test nv21_to_rgb_row/scalar/1920 ... bench:       5,554 ns/iter (+/- 374)
test nv21_to_rgb_row/simd/1920 ... bench:       1,167 ns/iter (+/- 22)
test nv21_to_rgb_row/scalar/3840 ... bench:      11,046 ns/iter (+/- 237)
test nv21_to_rgb_row/simd/3840 ... bench:       2,332 ns/iter (+/- 17)
test p010_to_rgb_row/u8_scalar/1280 ... bench:       3,790 ns/iter (+/- 98)
test p010_to_rgb_row/u8_simd/1280 ... bench:         675 ns/iter (+/- 29)
test p010_to_rgb_row/u8_scalar/1920 ... bench:       5,817 ns/iter (+/- 454)
test p010_to_rgb_row/u8_simd/1920 ... bench:       1,008 ns/iter (+/- 14)
test p010_to_rgb_row/u8_scalar/3840 ... bench:      11,434 ns/iter (+/- 1,626)
test p010_to_rgb_row/u8_simd/3840 ... bench:       2,024 ns/iter (+/- 26)
test p010_to_rgb_u16_row/u16_scalar/1280 ... bench:       3,985 ns/iter (+/- 109)
test p010_to_rgb_u16_row/u16_simd/1280 ... bench:       1,247 ns/iter (+/- 14)
test p010_to_rgb_u16_row/u16_scalar/1920 ... bench:       5,995 ns/iter (+/- 126)
test p010_to_rgb_u16_row/u16_simd/1920 ... bench:       1,862 ns/iter (+/- 24)
test p010_to_rgb_u16_row/u16_scalar/3840 ... bench:      11,994 ns/iter (+/- 351)
test p010_to_rgb_u16_row/u16_simd/3840 ... bench:       3,735 ns/iter (+/- 30)
test p012_to_rgb_row/u8_scalar/1280 ... bench:       4,449 ns/iter (+/- 675)
test p012_to_rgb_row/u8_simd/1280 ... bench:         671 ns/iter (+/- 6)
test p012_to_rgb_row/u8_scalar/1920 ... bench:       6,444 ns/iter (+/- 807)
test p012_to_rgb_row/u8_simd/1920 ... bench:       1,040 ns/iter (+/- 341)
test p012_to_rgb_row/u8_scalar/3840 ... bench:      12,196 ns/iter (+/- 1,104)
test p012_to_rgb_row/u8_simd/3840 ... bench:       2,002 ns/iter (+/- 9)
test p012_to_rgb_u16_row/u16_scalar/1280 ... bench:       3,793 ns/iter (+/- 225)
test p012_to_rgb_u16_row/u16_simd/1280 ... bench:       1,240 ns/iter (+/- 22)
test p012_to_rgb_u16_row/u16_scalar/1920 ... bench:       5,616 ns/iter (+/- 448)
test p012_to_rgb_u16_row/u16_simd/1920 ... bench:       1,859 ns/iter (+/- 11)
test p012_to_rgb_u16_row/u16_scalar/3840 ... bench:      11,294 ns/iter (+/- 289)
test p012_to_rgb_u16_row/u16_simd/3840 ... bench:       3,740 ns/iter (+/- 316)
test rgb_to_hsv_row/scalar/1280 ... bench:       4,456 ns/iter (+/- 463)
test rgb_to_hsv_row/simd/1280 ... bench:       3,582 ns/iter (+/- 67)
test rgb_to_hsv_row/scalar/1920 ... bench:       6,697 ns/iter (+/- 189)
test rgb_to_hsv_row/simd/1920 ... bench:       5,374 ns/iter (+/- 851)
test rgb_to_hsv_row/scalar/3840 ... bench:      13,625 ns/iter (+/- 976)
test rgb_to_hsv_row/simd/3840 ... bench:      10,752 ns/iter (+/- 399)
test yuv_420_to_rgb_row/scalar/1280 ... bench:       3,790 ns/iter (+/- 178)
test yuv_420_to_rgb_row/simd/1280 ... bench:         691 ns/iter (+/- 6)
test yuv_420_to_rgb_row/scalar/1920 ... bench:       5,709 ns/iter (+/- 133)
test yuv_420_to_rgb_row/simd/1920 ... bench:       1,038 ns/iter (+/- 19)
test yuv_420_to_rgb_row/scalar/3840 ... bench:      11,819 ns/iter (+/- 834)
test yuv_420_to_rgb_row/simd/3840 ... bench:       2,077 ns/iter (+/- 33)
test yuv420p10_to_rgb_row/u8_scalar/1280 ... bench:       4,036 ns/iter (+/- 319)
test yuv420p10_to_rgb_row/u8_simd/1280 ... bench:         661 ns/iter (+/- 14)
test yuv420p10_to_rgb_row/u8_scalar/1920 ... bench:       6,122 ns/iter (+/- 1,144)
test yuv420p10_to_rgb_row/u8_simd/1920 ... bench:         982 ns/iter (+/- 12)
test yuv420p10_to_rgb_row/u8_scalar/3840 ... bench:      12,220 ns/iter (+/- 390)
test yuv420p10_to_rgb_row/u8_simd/3840 ... bench:       1,974 ns/iter (+/- 37)
test yuv420p10_to_rgb_u16_row/u16_scalar/1280 ... bench:       4,027 ns/iter (+/- 208)
test yuv420p10_to_rgb_u16_row/u16_simd/1280 ... bench:       1,222 ns/iter (+/- 19)
test yuv420p10_to_rgb_u16_row/u16_scalar/1920 ... bench:       6,062 ns/iter (+/- 503)
test yuv420p10_to_rgb_u16_row/u16_simd/1920 ... bench:       1,832 ns/iter (+/- 89)
test yuv420p10_to_rgb_u16_row/u16_scalar/3840 ... bench:      15,464 ns/iter (+/- 3,708)
test yuv420p10_to_rgb_u16_row/u16_simd/3840 ... bench:       3,657 ns/iter (+/- 29)
test yuv420p12_to_rgb_row/u8_scalar/1280 ... bench:       4,038 ns/iter (+/- 270)
test yuv420p12_to_rgb_row/u8_simd/1280 ... bench:         656 ns/iter (+/- 6)
test yuv420p12_to_rgb_row/u8_scalar/1920 ... bench:       6,059 ns/iter (+/- 463)
test yuv420p12_to_rgb_row/u8_simd/1920 ... bench:         992 ns/iter (+/- 12)
test yuv420p12_to_rgb_row/u8_scalar/3840 ... bench:      12,539 ns/iter (+/- 3,081)
test yuv420p12_to_rgb_row/u8_simd/3840 ... bench:       1,954 ns/iter (+/- 36)
test yuv420p12_to_rgb_u16_row/u16_scalar/1280 ... bench:       3,846 ns/iter (+/- 584)
test yuv420p12_to_rgb_u16_row/u16_simd/1280 ... bench:       1,218 ns/iter (+/- 104)
test yuv420p12_to_rgb_u16_row/u16_scalar/1920 ... bench:       7,263 ns/iter (+/- 1,192)
test yuv420p12_to_rgb_u16_row/u16_simd/1920 ... bench:       2,167 ns/iter (+/- 186)
test yuv420p12_to_rgb_u16_row/u16_scalar/3840 ... bench:      15,448 ns/iter (+/- 2,274)
test yuv420p12_to_rgb_u16_row/u16_simd/3840 ... bench:       3,658 ns/iter (+/- 21)
test yuv420p14_to_rgb_row/u8_scalar/1280 ... bench:       3,887 ns/iter (+/- 310)
test yuv420p14_to_rgb_row/u8_simd/1280 ... bench:         654 ns/iter (+/- 19)
test yuv420p14_to_rgb_row/u8_scalar/1920 ... bench:       5,705 ns/iter (+/- 108)
test yuv420p14_to_rgb_row/u8_simd/1920 ... bench:         982 ns/iter (+/- 32)
test yuv420p14_to_rgb_row/u8_scalar/3840 ... bench:      29,350 ns/iter (+/- 507,060)
test yuv420p14_to_rgb_row/u8_simd/3840 ... bench:       1,949 ns/iter (+/- 27)
test yuv420p14_to_rgb_u16_row/u16_scalar/1280 ... bench:       4,090 ns/iter (+/- 307)
test yuv420p14_to_rgb_u16_row/u16_simd/1280 ... bench:       1,219 ns/iter (+/- 48)
test yuv420p14_to_rgb_u16_row/u16_scalar/1920 ... bench:       5,971 ns/iter (+/- 578)
test yuv420p14_to_rgb_u16_row/u16_simd/1920 ... bench:       1,829 ns/iter (+/- 18)
test yuv420p14_to_rgb_u16_row/u16_scalar/3840 ... bench:      12,015 ns/iter (+/- 1,501)
test yuv420p14_to_rgb_u16_row/u16_simd/3840 ... bench:       3,669 ns/iter (+/- 53)

View detailed results

Detailed Criterion results have been uploaded as artifacts. Download them from the workflow run to view charts and detailed statistics.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants