@RESET_9999, I have questions regarding HDR to Dolby Vision conversion and proxy encoding.
1. cm_analyze vs. Resolve for DV conversion: which produces better (more accurate) RPU?
I've generated RPU XML files using both
DaVinci Resolve (following your tutorial) and
cm_analyze, and noticed differences in the Level 1 metadata. The ColorEncoding sections also differ significantly:
Resolve output:
Code: Select all
<ColorEncoding>
<Primaries>
<Red>0.68 0.32</Red>
<Green>0.265 0.69</Green>
<Blue>0.15 0.06</Blue>
</Primaries>
<ColorSpace>rgb</ColorSpace>
<SignalRange>computer</SignalRange>
</ColorEncoding>
cm_analyze output:
Code: Select all
<ColorEncoding>
<Primaries>
<Red>0.708 0.292</Red>
<Green>0.17 0.797</Green>
<Blue>0.131 0.046</Blue>
</Primaries>
<ColorSpace>ycbcr_bt2020</ColorSpace>
<SignalRange>video</SignalRange>
</ColorEncoding>

- L1_Resolve-L3.png (176.52 KiB) Viewed 1053 times
Based on this and the plots below, which RPU would you consider more accurate or "better"? I've included XMLs for reference.
2. Can ProRes Profile 1 or 2 (Apple HW) be used as a proxy instead of Profile 3 with q=4 (SW)?
From my tests,
Profile 2 (Apple HW) seems to have higher fidelity to the original source than
Profile 3 with q=4 (SW). Even
Profile 1 (Apple HW) performs surprisingly well and is quite close.
Does the profile number carry any real-world implication beyond bitrate?
Would
Profile 1 (Apple HW) be good enough for proxy use, or would you still recommend suffering through
Profile 2's higher bitrate and file size?
Here are some PSNR results and encoding stats:
Code: Select all
Profile | Encoder | PSNR (avg) | PSNR (min) | Size | Bitrate
------------|------------------------|------------|------------|---------|---------
P3 Q4 | SW: prores_ks | 58.95 | 56.69 | 27.4 GB | 196 Mb/s
P1 | SW: prores_ks | 58.96 | 53.15 | 34.3 GB | 246 Mb/s
P2 (Apple) | HW: prores_videotoolbox| 62.82 | 58.26 | 48.8 GB | 350 Mb/s
P1 (Apple) | HW: prores_videotoolbox| 59.05 | 55.45 | 28.9 GB | 207 Mb/s
Encoding commands:
Code: Select all
- P3 (Q4): ffmpeg -i test.mkv -c:v prores_ks -profile:v 3 -vendor apl0 -qscale:v 4 -color_primaries bt2020 -color_trc smpte2084 -colorspace bt2020nc -pix_fmt yuv422p10le test_p3-q4.mov
- P1 (QX): ffmpeg -i test.mkv -c:v prores_ks -profile:v 1 -vendor apl0 -color_primaries bt2020 -color_trc smpte2084 -colorspace bt2020nc -pix_fmt yuv422p10le test_p1-qx.mov
- P2 (HW): ffmpeg -i test.mkv -c:v prores_videotoolbox -profile:v 2 -color_primaries bt2020 -color_trc smpte2084 -colorspace bt2020nc test_p2-hw.mov
- P1 (HW): ffmpeg -i test.mkv -c:v prores_videotoolbox -profile:v 1 -color_primaries bt2020 -color_trc smpte2084 -colorspace bt2020nc test_p1-hw.mov
PSNR commands:
Code: Select all
- P3 (Q4): ffmpeg -r 24000/1001 -i test.mkv -r 24000/1001 -i test_p3-q4.mov -lavfi psnr="stats_file=test_p3-q4.log" -f null -
- P1 (QX): ffmpeg -r 24000/1001 -i test.mkv -r 24000/1001 -i test_p1-qx.mov -lavfi psnr="stats_file=test_p1-qx.log" -f null -
- P2 (HW): ffmpeg -r 24000/1001 -i test.mkv -r 24000/1001 -i test_p2-hw.mov -lavfi psnr="stats_file=test_p2-hw.log" -f null -
- P1 (HW): ffmpeg -r 24000/1001 -i test.mkv -r 24000/1001 -i test_p1-hw.mov -lavfi psnr="stats_file=test_p1-hw.log" -f null -
PSNR results:
Code: Select all
- P3 (Q4): PSNR y:57.830199 u:61.702542 v:64.312729 average:58.951441 min:56.685113 max:inf
- P1 (QX): PSNR y:57.672183 u:62.738864 v:65.896872 average:58.958489 min:53.148347 max:inf
- P2 (HW): PSNR y:62.149857 u:63.255604 v:66.544010 average:62.822763 min:58.255157 max:inf
- P1 (HW): PSNR y:57.895307 u:61.791684 v:65.122727 average:59.052011 min:55.453200 max:inf
Would love to hear your take on both these questions.
Thanks in advance!