[FFmpeg-devel] [PATCH v4 2/8] swscale/range_convert: saturate output instead of limiting input

Michael Niedermayer michael at niedermayer.cc
Tue Dec 3 04:05:06 EET 2024


On Sun, Dec 01, 2024 at 07:20:04PM +0100, Ramiro Polla wrote:
> For bit depths <= 14, the result is saturated to 15 bits.
> For bit depths > 14, the result is saturated to 19 bits.
> 
> x86_64:
> chrRangeFromJpeg8_1920_c:    2126.5   2127.4  (1.00x)
> chrRangeFromJpeg16_1920_c:   2331.4   2325.2  (1.00x)
> chrRangeToJpeg8_1920_c:      3163.0   3166.9  (1.00x)
> chrRangeToJpeg16_1920_c:     3163.7   2152.4  (1.47x)
> lumRangeFromJpeg8_1920_c:    1262.2   1263.0  (1.00x)
> lumRangeFromJpeg16_1920_c:   1079.5   1080.5  (1.00x)
> lumRangeToJpeg8_1920_c:      1860.5   1886.8  (0.99x)
> lumRangeToJpeg16_1920_c:     1910.2   1077.0  (1.77x)
> 
> aarch64 A55:
> chrRangeFromJpeg8_1920_c:   28836.2  28835.2  (1.00x)
> chrRangeFromJpeg16_1920_c:  28840.1  28839.8  (1.00x)
> chrRangeToJpeg8_1920_c:     44196.2  23074.7  (1.92x)
> chrRangeToJpeg16_1920_c:    36527.3  17318.9  (2.11x)
> lumRangeFromJpeg8_1920_c:   15388.5  15389.7  (1.00x)
> lumRangeFromJpeg16_1920_c:  15389.3  15388.2  (1.00x)
> lumRangeToJpeg8_1920_c:     23069.7  19227.8  (1.20x)
> lumRangeToJpeg16_1920_c:    19227.8  15387.0  (1.25x)
> 
> aarch64 A76:
> chrRangeFromJpeg8_1920_c:    6334.7   6324.4  (1.00x)
> chrRangeFromJpeg16_1920_c:   6336.0   6339.9  (1.00x)
> chrRangeToJpeg8_1920_c:     11474.5   9656.0  (1.19x)
> chrRangeToJpeg16_1920_c:     9640.5   6340.4  (1.52x)
> lumRangeFromJpeg8_1920_c:    4453.2   4422.0  (1.01x)
> lumRangeFromJpeg16_1920_c:   4414.2   4420.9  (1.00x)
> lumRangeToJpeg8_1920_c:      6645.0   5949.1  (1.12x)
> lumRangeToJpeg16_1920_c:     6005.2   4446.8  (1.35x)
> 
> NOTE: all simd optimizations for range_convert have been disabled
>       except for x86, which already had the same behaviour.
>       they will be re-enabled when they are fixed for each architecture.
> ---
>  libswscale/aarch64/swscale.c                  |  5 +++++
>  libswscale/loongarch/swscale_init_loongarch.c |  5 +++++
>  libswscale/riscv/swscale.c                    |  5 +++++
>  libswscale/swscale.c                          | 21 ++++++++++++-------
>  libswscale/x86/range_convert.asm              |  3 ---
>  5 files changed, 29 insertions(+), 10 deletions(-)

should be ok

thx

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

it is not once nor twice but times without number that the same ideas make
their appearance in the world. -- Aristotle
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20241203/f2adf102/attachment.sig>


More information about the ffmpeg-devel mailing list