Page 19 of 24

Re: HDR -> SDR conversion

Posted: Mon Jul 23, 2018 7:11 am
by admin
Dion wrote:
Sun Jul 22, 2018 3:31 pm
Is it possible to have your plugin not take everything straight to 8bit? Like a bits="10" command or something?
What is the use case? Would YUV420P16 be acceptable? You can add ConvertBits(10) if needed.

Re: HDR -> SDR conversion

Posted: Mon Jul 23, 2018 1:23 pm
by Dion
admin wrote:
Mon Jul 23, 2018 7:11 am
What is the use case? Would YUV420P16 be acceptable? You can add ConvertBits(10) if needed.
Yes 16 would be fine too.. I can add ConvertBits after.

Re: HDR -> SDR conversion

Posted: Mon Jul 23, 2018 3:46 pm
by admin
Again, what is the use case? And how would you do things if this change did not exist?

Re: HDR -> SDR conversion

Posted: Mon Jul 23, 2018 4:54 pm
by DJATOM
Probably better compression with 10 bit encoders, as plain 8 bit looks worse on my observation. Tested with 16 bit output, 10 bit output and dithered 8 bit output. 16 is bloat, 10 is fine and 8 kind of bit-starved. Well, it's possible to get acceptable results with 8 bit, just need to rise bitrate a bit.

Re: HDR -> SDR conversion

Posted: Mon Jul 23, 2018 5:06 pm
by Dion
admin wrote:
Mon Jul 23, 2018 3:46 pm
Again, what is the use case? And how would you do things if this change did not exist?
Down converting to 8bit causes banding. You can't just up convert back to 10/16 and its fixed.. the data is lost. A plugin would be required to fix the banding.

Can't encode in 10bit basically. Properly.

Re: HDR -> SDR conversion

Posted: Mon Jul 23, 2018 9:25 pm
by admin
Again, how would you do things if this change did not exist? Do you have an existing or alternative process?

Look, I don't want to spend time on things and find it is not what you need. You are asking for the filter to just convert from 2020 to 709 and PQ to gamma, and do nothing with the HDR? When you talk about eliminating banding, I think of the extra bits being used for granularity and not for HDR. I have never done any 10-bit encoding so I do not know the use case and/or exactly what you are looking for. This is why I ask for your alternative process.

Re: HDR -> SDR conversion

Posted: Mon Jul 23, 2018 10:38 pm
by admin
Here's where I am confused about your request...

The extra two bits can be used to represent a dynamic range increased by 4 times, i.e., we can now represent a ratio between the darkest and lightest 4 times greater. Or we can keep the 8-bit dynamic range and increase the granularity of that range with the extra two bits. If our source is using the bits exclusively for HDR then keeping it as 10 bits doesn't improve the granularity. What is the trade-off on a HDR10 bluray? I have no idea and it's not clear to me at all that retaining 10-bits necessarily means that we retain granularity that would be missed if we output 8 bits.

If you can show an alternative process (that is, one with existing tools) that manifestly reduces banding for a HDR10 bluray rip by retaining 10 bits compared to outputting 8 bits then I would have something to go on in terms of engineering a useful solution for your request.

Re: HDR -> SDR conversion

Posted: Tue Jul 24, 2018 2:59 am
by Dion
I was under the impression that the DGHDRtoSDR plugin automatically converted everything to 8bit. Is this not true?

Re: HDR -> SDR conversion

Posted: Tue Jul 24, 2018 5:10 am
by admin
:scratch: Must be some kind of language problem.

If you ever become properly responsive I'll reconsider your request but until then forget it. You could start by demonstrating a HDR10 disk rip that shows banding after converting with DGHDRtoSDR.

Re: HDR -> SDR conversion

Posted: Tue Jul 24, 2018 9:36 am
by Narkyy
I'm in favor of just having the option to output as YUV420P16 too, it might be affecting the sharpness as well, from tests with HDRTools.

Build from latest code change and example script:
FFVideoSource("sample5.mkv", colorspace="YUV420P10")
ConvertBits(16).ConvertYUVtoXYZ(Color=0,OutputMode=1).ConvertXYZ_HDRtoSDR(MinMastering=1, MaxMastering=1000,Coeff_X=30, Coeff_Y=30, Coeff_Z=30).ConvertXYZtoYUV(Color=2, OutputMode=2, pColor=1)
Specifically this part: ConvertXYZtoYUV(Color=2, OutputMode=2, pColor=1)
I tested with OutputMode=2 and OutputMode=0, so YV12 and YV24 respectively and here are the results.

Image Image

YV24 is retaining much more details, and I'm thinking this is where DGHDRtoSDR loses them as well.
Though YV12 is still YUV420P16 so I'm not sure how the detail reappears with YUV444P16, since the source is 4:2:0

Re: HDR -> SDR conversion

Posted: Tue Jul 24, 2018 10:02 am
by admin
YV12 is not YUV420P16, though it can be stored that way (8 bits are wasted). The source is 4:2:0 so saving it as 4:4:4 cannot retain extra source detail.

Dion is asking for me to output YUV420P16. I am asking for it to be justified with evidence. Talking about 4:4:4 is not germane to that. Can you output YUV420P16 with 10-bit data from HDRTools?

Re: HDR -> SDR conversion

Posted: Tue Jul 24, 2018 10:55 am
by Narkyy
In the case of HDRTools, YV12 is YUV420P16. I know it's not usually.
The source is 4:2:0 so I can't grasp how it looks much better when ending in 4:4:4, looks just like madVR but madVR says 4:2:0

As for the banding, I don't think there's a difference between 8 bit and higher as long as there's dithering at the last step.
Compared against everything, banding is just more pronounced with the lighter darks/gamma from DGHDRtoSDR.

Re: HDR -> SDR conversion

Posted: Tue Jul 24, 2018 12:03 pm
by admin
Narkyy wrote:
Tue Jul 24, 2018 10:55 am
Compared against everything, banding is just more pronounced with the lighter darks/gamma from DGHDRtoSDR.
Where is the evidence of banding? I've asked for evidence and all you guys do is make unsupported claims. Dion just makes useless posts like "I thought this tool outputs 8-bit, am I wrong?"

First you're talking about detail retention now you're talking about banding. Then you talk about 4:4:4 from some other tool. You're starting to irritate me big time.

I hacked a quick version to output the full 10 bits in P16. I open the YV12 and P16 versions in their own VDub2 windows. I see NO difference in detail. I see NO banding in either one. I speculated earlier about the reason but nobody took any notice of it. You seem to have a naive "10-bit good, 8-bit bad" dogma in your heads, and don't think about context.

If you don't substantiate your claims, I'm going to shut down this discussion as it is just FUD at this point. You want to use some other tool, go for it, I don't care. If it's about dithering, then ask for dithering and give a sample that shows that it's needed. Then I will be happy to consider it.

Re: HDR -> SDR conversion

Posted: Tue Jul 24, 2018 2:48 pm
by Dion
Thought it was common knowledge that banding is caused by the down conversion from a higher bit master to 8bit?

But anyways.. Here is an example of 8bit vs 16bit vs DGHDRtoSDR. I could not use DGHDRtoSDR in this test for 16bit cause I am sure its going straight to 8bit. That is why I asked if that is what your plugin is doing.

8bit vs 16bit vs DGHDRtoSDR
ImageImageImage

and for good measure..

16bit to 8bit back to 16bit. Info lost...
Image

edit: With Narkyy help was able to get HDRTools to work.. It outputs 16bit Tonemapping correctly no banding either.
Image

Re: HDR -> SDR conversion

Posted: Tue Jul 24, 2018 4:20 pm
by admin
Now you're talking, thank you. But I need the source sample and all the scripts to be able to replicate it. What did you use for the first two shots? How did you take the screenshots?

If you give me what I need and the banding is eliminated by outputting 16-bits I'll be happy to add that to the filter. But I have to be able to verify that it is working as intended, and not just blindly release something. So, source sample, scripts, and how did you get the screenshots, please.

Re: HDR -> SDR conversion

Posted: Wed Jul 25, 2018 1:29 am
by Dion
https://www.dropbox.com/s/qiwo2v5j6b9c9 ... 2.mkv?dl=1

Make sure you have the latest Avisynth+ otherwise 16bit will error out and display nothing..
https://github.com/pinterf/AviSynthPlus ... /tag/r2728

16 Bit
DGSource("Annihilation-002.dgi", fulldepth=True)
z_Spline36Resize(1920, 1080)
DGHDRtoSDR
DGSource("Annihilation-002.dgi", fulldepth=True)
z_Spline36Resize(1920, 1080)
DGHDRtoSDR(tm="mobius", light=250)
8 Bit
DGSource("Annihilation-002.dgi", fulldepth=True)
z_Spline36Resize(1920, 1080)
ConvertBits(8)

Re: HDR -> SDR conversion

Posted: Wed Jul 25, 2018 10:26 am
by admin
Thank you, Dion.

Here is build 1.8, which adds a fulldepth parameter to output 10-bit SDR stored in YUV420P16.

http://rationalqm.us/misc/DGHDRtoSDR_1.8.rar

BTW, you have tm="mobius". That is not valid syntax for build 1.7, so I suppose you used an earlier
version.

Re: HDR -> SDR conversion

Posted: Wed Jul 25, 2018 1:02 pm
by Dion
Thanks.. Looks to be working.. :salute:

Re: HDR -> SDR conversion

Posted: Wed Jul 25, 2018 1:23 pm
by admin
You're welcome. Thank you for pushing for this addition.

Re: HDR -> SDR conversion

Posted: Wed Jul 25, 2018 10:52 pm
by Nginx
Thank you very much ~

Re: HDR -> SDR conversion

Posted: Thu Jul 26, 2018 8:41 am
by admin
You're welcome, Nginx.

Re: HDR -> SDR conversion

Posted: Thu Aug 09, 2018 7:37 pm
by admin
DGHDRtoSDR 1.9 is released. It adds Vapoursynth native support.

Re: HDR -> SDR conversion

Posted: Thu Aug 09, 2018 7:55 pm
by Guest
Keeps getting better and better, thank you

Re: HDR -> SDR conversion

Posted: Thu Sep 13, 2018 1:00 am
by Dion
Have you ever considered making an HDR to SDR app for the Nvidia Shield? It has an Nvidia GPU in it and one thing it lacks is an HDR to SDR app that can hook onto Plex or Kodi or some other popular video apps.

Could even charge for it an probably make some decent bank. :D

Re: HDR -> SDR conversion

Posted: Thu Sep 13, 2018 6:23 am
by admin
I'll look into it when current projects finish up. Thank you for the suggestion.