Fix #111703: banding and color shift when decoding some videos
Tell ffmpeg swscale to do accurate YUV->RGB conversion, instead of slightly faster but not really accurate one. Fixes banding and some color shifts in video files, particularly in dark regions. The accurate conversion is a bit slower though, on 4K resolution video, time taken to convert video frame from YUV to RGB: - x64 (Ryzen 5950X): 2.3ms -> 3.7ms - arm64 (M1 Max): 0.6ms -> 2.9ms My take is that paying 1-2ms per 4K video playback is acceptable since the result is obviously "more correct" and matches what VLC/ffplay produces. From what I can tell, "accurate conversion" turns off some dedicated assembly code paths within ffmpeg. Maybe someday ffmpeg would get accurate and assembly-optimized routines for that. With more accurate decoding, we can now lower the expected render test threshold again, since x64 & arm64 decoding is much closer now. Comparison screenshots in the PR. Pull Request: https://projects.blender.org/blender/blender/pulls/130383
This commit is contained in:
committed by
Aras Pranckevicius
parent
704d34fe0f
commit
bbbe08d0b0
@@ -50,7 +50,7 @@ def main():
|
||||
report = render_report.Report("Sequencer", output_dir, oiiotool)
|
||||
report.set_pixelated(True)
|
||||
# Default error tolerances are quite large, lower them.
|
||||
report.set_fail_threshold(3.0 / 255.0)
|
||||
report.set_fail_threshold(2.0 / 255.0)
|
||||
report.set_fail_percent(0.01)
|
||||
report.set_reference_dir("reference")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user