Convert 4k mit BT2020nc nach BT.709

  • Hallo zusammen,


    Ich habe hier eine 4k Quelle:

    Code
    1. VideoID : 4113 (0x1011)Menu ID : 1 (0x1)Format : HEVCFormat/Info : High Efficiency Video CodingFormat profile : Main 10@L5.1@HighCodec ID : 36Duration : 7 minWidth : 3 840 pixelsHeight : 2 160 pixelsDisplay aspect ratio : 16:9Frame rate : 23.976 (24000/1001) FPSColor space : YUVChroma subsampling : 4:2:0 (Type 2)Bit depth : 10 bitsColor range : LimitedColor primaries : BT.2020Transfer characteristics : PQMatrix coefficients : BT.2020 non-constantMastering display color primaries : BT.709Mastering display luminance : min: 0.0050 cd/m2, max: 4000 cd/m2


    Das Ganze soll herunter skaliert (FullHD) und neu komprimiert werden:


    Code
    1. "C:\Program Files (x86)\Video Tools\avs2pipemod-1.1.1\avs2pipemod.exe" -rawvideo "01.avs" | "C:\Program Files\x265\x265-10Bit-2.7_336.exe" --preset slow --crf 22 --psy-rd 2.0 --psy-rdoq 10.0 --aq-mode 2 --rd 5 --me star --no-sao --no-open-gop --input-res 1920x1080 --input-depth 16 --fps 24000/1001 --output "test.h265" --input -


    Dabei fällt mir auf das die Farben/Brillanz nicht korrekt wiedergegeben werden. Sie sind viel zu matt ... was darauf hindeutet das (scheinbar) die Color-Conversion von BT.2020 -> BT.709 nicht klappt.
    Soweit mit bekannt ist BT.709 Default bei x265.


    Hier mein avs:


    Ich befürchte der Fehler beginnt schon mit dem Aufruf von LWLibAvVideoSource format="YUV420P8" ... Und das hier schon der Farbraum "vermurkst"
    Nur leider habe ich noch keine andere Kombination gefunden die danach auch noch weiter mit dither funktioniert bzw. deren Output von x265 richtig interpretiert wird


    Ich hatte in einem Domm9 Artikel was über: erst auf "RBG konvertieren und dann zurück auf BT.709" gelesen ... aber geht das so einfach ? (bei nicht konstanten Koeffizienten ?)


    Gibt's (in Avisynth) andere Alternativen ?

  • Die Umwandlung zu BT.709 mußt Du in AviSynth/VapourSynth/ffmpeg machen, das kann x265cli nicht selbst.


    Code
    1. LWLibAvVideoSource("00030.m2ts", [b]format="yuv420p10"[/b])ConvertFromDoubleWidth(bits=10)Trim(3500,3600)z_ConvertFormat(pixel_type="RGBPS",colorspace_op="2020ncl:st2084:2020:l=>rgb:linear:2020:l", dither_type="none")DGReinhard()z_ConvertFormat(pixel_type="YUV420P16",colorspace_op="rgb:linear:2020:l=>709:709:709:l", dither_type="none")Spline36Resize(1920, 1080)ConvertBits(10, dither=0)prefetch(4)


    Inwieweit das jetzt die richtige HDR->SDR-Umwandlung ist, kann ich nicht mit Sicherheit sagen. Ich habe quasi nur das Beispiel aus der Readme genommen. Benötigt AviSynth+.



    https://rationalqm.us/DGTonemap.rar
    https://www.dropbox.com/s/3ocr…vmn/avsresize-r1d.7z?dl=1



    Pipen würde ich einfach y4m nehmen:

    Code
    1. :\Program Files (x86)\Video Tools\avs2pipemod-1.1.1\avs2pipemod.exe" -y4mp "01.avs" | "C:\Program Files\x265\x265-10Bit-2.7_336.exe" --preset slow --crf 22 --psy-rd 2.0 --psy-rdoq 10.0 --aq-mode 2 --rd 5 --me star --no-sao --no-open-gop --y4m --fps 24000/1001 --output "test.h265" --input -