[FFmpeg-trac] #979(swscale:open): Abnormal colorspace conversion of BGR -> YUV comparing the RGB variant

FFmpeg trac at avcodec.org
Thu Dec 19 13:37:27 EET 2024


#979: Abnormal colorspace conversion of BGR -> YUV comparing the RGB variant
------------------------------------+-----------------------------------
             Reporter:  natt        |                    Owner:  (none)
                 Type:  defect      |                   Status:  open
             Priority:  normal      |                Component:  swscale
              Version:  git-master  |               Resolution:
             Keywords:  scale       |               Blocked By:
             Blocking:              |  Reproduced by developer:  0
Analyzed by developer:  0           |
------------------------------------+-----------------------------------
Comment (by Niklas Haas):

 Just for an explanation of what's going on; when converting directly from
 bgr24 to yuv420p, swscale is using the unscaled special converter which
 rounds incorrectly (bias -0.5) and also does not dither. This is
 unfortunately also enshrined in multiple asm routines, so fixing it is not
 as simple as adding the appropriate dithering.

 The reason accurate_rnd fixes it is because the unscaled converter in
 question is guarded behind this flag.

 I am putting this particular routine on the shortlist of special case
 paths to be removed in the upcoming cleanup series, and would rather
 reintroduce a proper rounding reimplementation (if anything).
-- 
Ticket URL: <https://trac.ffmpeg.org/ticket/979#comment:25>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list