summaryrefslogtreecommitdiffstats
path: root/tests/ref/pixfmt
Commit message (Collapse)AuthorAgeFilesLines
* swscale/swscale_internal: Use more precisse gammaMichael Niedermayer2025-08-181-1/+1
| | | | | | Avoids failure of xyz12 fate tests on mingw and linux x86-32 Signed-off-by: Michael Niedermayer <[email protected]>
* swscale/swscale_unscaled: account for semi planar formats with data in the msbJames Almer2025-03-1510-10/+10
| | | | | | Fixes fate failures introduced by recent tests that exercise the faulty code. Signed-off-by: James Almer <[email protected]>
* tests/fate/pixfmt: add conversion tests with semi planar YUV formatsJames Almer2025-03-13293-0/+586
| | | | Signed-off-by: James Almer <[email protected]>
* swscale: use 16-bit intermediate precision for RGB/XYZ conversionNiklas Haas2024-12-269-9/+9
| | | | | | | | | | | | | | The current logic uses 12-bit linear light math, which is woefully insufficient and leads to nasty postarization artifacts. This patch simply switches the internal logic to 16-bit precision. This raises the memory requirement of these tables from 32 kB to 272 kB. All relevant FATE tests updated for improved accuracy. Fixes: #4829 Signed-off-by: Niklas Haas <[email protected]> Sponsored-by: Sovereign Tech Fund
* swscale/unscaled: correctly round yuv2yuv when not ditheringNiklas Haas2024-12-234-4/+4
| | | | | | | | | | | We should at least bias towards the nearest integer, instead of always rounding down, when not dithering. This is a bit more correct. The FATE changes are only in the cases where sws_dither was explicitly set to "none", which is exactly as expected. Signed-off-by: Niklas Haas <[email protected]> Sponsored-by: Sovereign Tech Fund
* swscale/range_convert: fix mpeg ranges in yuv range conversion for non-8-bit ↵Ramiro Polla2024-12-0594-94/+94
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | pixel formats There is an issue with the constants used in YUV to YUV range conversion, where the upper bound is not respected when converting to mpeg range. With this commit, the constants are calculated at runtime, depending on the bit depth. This approach also allows us to more easily understand how the constants are derived. For bit depths <= 14, the number of fixed point bits has been set to 14 for all conversions, to simplify the code. For bit depths > 14, the number of fixed points bits has been raised and set to 18, to allow for the conversion to be accurate enough for the mpeg range to be respected. The convert functions now take the conversion constants (coeff and offset) as function arguments. For bit depths <= 14, coeff is unsigned 16-bit and offset is 32-bit. For bit depths > 14, coeff is unsigned 32-bit and offset is 64-bit. x86_64: chrRangeFromJpeg8_1920_c: 2127.4 2125.0 (1.00x) chrRangeFromJpeg16_1920_c: 2325.2 2127.2 (1.09x) chrRangeToJpeg8_1920_c: 3166.9 3168.7 (1.00x) chrRangeToJpeg16_1920_c: 2152.4 3164.8 (0.68x) lumRangeFromJpeg8_1920_c: 1263.0 1302.5 (0.97x) lumRangeFromJpeg16_1920_c: 1080.5 1299.2 (0.83x) lumRangeToJpeg8_1920_c: 1886.8 2112.2 (0.89x) lumRangeToJpeg16_1920_c: 1077.0 1906.5 (0.56x) aarch64 A55: chrRangeFromJpeg8_1920_c: 28835.2 28835.6 (1.00x) chrRangeFromJpeg16_1920_c: 28839.8 32680.8 (0.88x) chrRangeToJpeg8_1920_c: 23074.7 23075.4 (1.00x) chrRangeToJpeg16_1920_c: 17318.9 24996.0 (0.69x) lumRangeFromJpeg8_1920_c: 15389.7 15384.5 (1.00x) lumRangeFromJpeg16_1920_c: 15388.2 17306.7 (0.89x) lumRangeToJpeg8_1920_c: 19227.8 19226.6 (1.00x) lumRangeToJpeg16_1920_c: 15387.0 21146.3 (0.73x) aarch64 A76: chrRangeFromJpeg8_1920_c: 6324.4 6268.1 (1.01x) chrRangeFromJpeg16_1920_c: 6339.9 11521.5 (0.55x) chrRangeToJpeg8_1920_c: 9656.0 9612.8 (1.00x) chrRangeToJpeg16_1920_c: 6340.4 11651.8 (0.54x) lumRangeFromJpeg8_1920_c: 4422.0 4420.8 (1.00x) lumRangeFromJpeg16_1920_c: 4420.9 5762.0 (0.77x) lumRangeToJpeg8_1920_c: 5949.1 5977.5 (1.00x) lumRangeToJpeg16_1920_c: 4446.8 5946.2 (0.75x) NOTE: all simd optimizations for range_convert have been disabled. they will be re-enabled when they are fixed for each architecture. NOTE2: the same issue still exists in rgb2yuv conversions, which is not addressed in this commit.
* fate/pixfmt: disable dithering in the scale filterJames Almer2024-11-084-4/+4
| | | | | | Should fix fate failures across different systems. Signed-off-by: James Almer <[email protected]>
* x86/swscale: disable AVX2 yuv2nv12cX functions if accurate_rnd is requestedJames Almer2024-11-0710-10/+10
| | | | Signed-off-by: James Almer <[email protected]>
* fate/pixfmts: extend the high bit depth testJames Almer2024-11-06647-0/+1294
| | | | | | Also test 8bit formats, and try bitdepth conversion paths. Signed-off-by: James Almer <[email protected]>
* swscale/swscale_unscaled: add unscaled x2rgb10le to planar RGBJames Almer2024-11-062-2/+2
| | | | Signed-off-by: James Almer <[email protected]>
* fate/pixfmts: test conversion of high bitdepth formatsJames Almer2024-11-02128-0/+256
| | | | Signed-off-by: James Almer <[email protected]>
* fate/pixfmt: test xyz12leAnton Khirnov2021-08-291-0/+2
|
* Merge commit '896fe15dbb7b78de495c4a7dd75e7faec66778da'James Almer2019-03-148-8/+8
| | | | | | | * commit '896fe15dbb7b78de495c4a7dd75e7faec66778da': tests: Convert lavf pixfmt conversion tests to non-legacy test scripts Merged-by: James Almer <[email protected]>
* tests: Convert lavf pixfmt conversion tests to non-legacy test scriptsDiego Biurrun2019-02-1619-0/+38
Also split monolithic lavf-pixfmt test into individual tests.