On 11/15/2021 12:29 PM, Michael Niedermayer wrote:
On Sun, Nov 14, 2021 at 10:22:21PM -0800, mindm...@gmail.com wrote:
From: Mark Reid <mindm...@gmail.com>

if the float pixel * 65535.0f > 2147483647.0f
lrintf may overfow and return negative values, depending on implementation.
nan and +/-inf values may also be implementation defined

clip the value first so lrintf always works.

values <     0.0f, -inf, nan = 0.0f
values > 65535.0f, +inf      = 65535.0f

old timings
  195960 decicycles in planar_rgbf32le_to_uv,       1 runs,      0 skips
  186120 decicycles in planar_rgbf32le_to_uv,       2 runs,      0 skips
  188645 decicycles in planar_rgbf32le_to_uv,       4 runs,      0 skips
  183625 decicycles in planar_rgbf32le_to_uv,       8 runs,      0 skips
  181157 decicycles in planar_rgbf32le_to_uv,      16 runs,      0 skips
  177533 decicycles in planar_rgbf32le_to_uv,      32 runs,      0 skips
  175689 decicycles in planar_rgbf32le_to_uv,      64 runs,      0 skips

  232960 decicycles in planar_rgbf32be_to_uv,       1 runs,      0 skips
  221380 decicycles in planar_rgbf32be_to_uv,       2 runs,      0 skips
  216640 decicycles in planar_rgbf32be_to_uv,       4 runs,      0 skips
  213505 decicycles in planar_rgbf32be_to_uv,       8 runs,      0 skips
  211558 decicycles in planar_rgbf32be_to_uv,      16 runs,      0 skips
  210596 decicycles in planar_rgbf32be_to_uv,      32 runs,      0 skips
  210202 decicycles in planar_rgbf32be_to_uv,      64 runs,      0 skips

  161680 decicycles in planar_rgbf32le_to_y,       1 runs,      0 skips
  153540 decicycles in planar_rgbf32le_to_y,       2 runs,      0 skips
  148255 decicycles in planar_rgbf32le_to_y,       4 runs,      0 skips
  140600 decicycles in planar_rgbf32le_to_y,       8 runs,      0 skips
  132935 decicycles in planar_rgbf32le_to_y,      16 runs,      0 skips
  128531 decicycles in planar_rgbf32le_to_y,      32 runs,      0 skips
  140933 decicycles in planar_rgbf32le_to_y,      64 runs,      0 skips

  190980 decicycles in planar_rgbf32be_to_y,       1 runs,      0 skips
  176080 decicycles in planar_rgbf32be_to_y,       2 runs,      0 skips
  167980 decicycles in planar_rgbf32be_to_y,       4 runs,      0 skips
  164685 decicycles in planar_rgbf32be_to_y,       8 runs,      0 skips
  162751 decicycles in planar_rgbf32be_to_y,      16 runs,      0 skips
  162404 decicycles in planar_rgbf32be_to_y,      32 runs,      0 skips
  167849 decicycles in planar_rgbf32be_to_y,      64 runs,      0 skips

new timings
  183320 decicycles in planar_rgbf32le_to_uv,       1 runs,      0 skips
  175700 decicycles in planar_rgbf32le_to_uv,       2 runs,      0 skips
  179570 decicycles in planar_rgbf32le_to_uv,       4 runs,      0 skips
  172932 decicycles in planar_rgbf32le_to_uv,       8 runs,      0 skips
  168707 decicycles in planar_rgbf32le_to_uv,      16 runs,      0 skips
  165224 decicycles in planar_rgbf32le_to_uv,      32 runs,      0 skips
  163423 decicycles in planar_rgbf32le_to_uv,      64 runs,      0 skips

  184940 decicycles in planar_rgbf32be_to_uv,       1 runs,      0 skips
  185150 decicycles in planar_rgbf32be_to_uv,       2 runs,      0 skips
  185790 decicycles in planar_rgbf32be_to_uv,       4 runs,      0 skips
  185472 decicycles in planar_rgbf32be_to_uv,       8 runs,      0 skips
  185277 decicycles in planar_rgbf32be_to_uv,      16 runs,      0 skips
  185813 decicycles in planar_rgbf32be_to_uv,      32 runs,      0 skips
  185332 decicycles in planar_rgbf32be_to_uv,      64 runs,      0 skips

  145400 decicycles in planar_rgbf32le_to_y,       1 runs,      0 skips
  145100 decicycles in planar_rgbf32le_to_y,       2 runs,      0 skips
  143490 decicycles in planar_rgbf32le_to_y,       4 runs,      0 skips
  136687 decicycles in planar_rgbf32le_to_y,       8 runs,      0 skips
  131271 decicycles in planar_rgbf32le_to_y,      16 runs,      0 skips
  128698 decicycles in planar_rgbf32le_to_y,      32 runs,      0 skips
  127170 decicycles in planar_rgbf32le_to_y,      64 runs,      0 skips

  156020 decicycles in planar_rgbf32be_to_y,       1 runs,      0 skips
  146990 decicycles in planar_rgbf32be_to_y,       2 runs,      0 skips
  142020 decicycles in planar_rgbf32be_to_y,       4 runs,      0 skips
  141052 decicycles in planar_rgbf32be_to_y,       8 runs,      0 skips
  138973 decicycles in planar_rgbf32be_to_y,      16 runs,      0 skips
  138027 decicycles in planar_rgbf32be_to_y,      32 runs,      0 skips
  143939 decicycles in planar_rgbf32be_to_y,      64 runs,      0 skips

LGTM

thx

Applied.
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to