HDR -> SDR conversion

These CUDA filters are packaged into DGDecodeNV, which is part of DGDecNV.
User avatar
admin
Posts: 4551
Joined: Thu Sep 09, 2010 3:08 pm

Re: HDR -> SDR conversion

Post 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.
DAE avatar
Dion
Posts: 28
Joined: Sun Dec 04, 2016 12:30 am

Re: HDR -> SDR conversion

Post 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.
User avatar
admin
Posts: 4551
Joined: Thu Sep 09, 2010 3:08 pm

Re: HDR -> SDR conversion

Post by admin »

Again, what is the use case? And how would you do things if this change did not exist?
User avatar
DJATOM
Posts: 176
Joined: Fri Oct 16, 2015 6:14 pm

Re: HDR -> SDR conversion

Post 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.
PC: RTX 2070 | Ryzen R9 5950X (no OC) | 64 GB RAM
Notebook: RTX 4060 | Ryzen R9 7945HX | 32 GB RAM
DAE avatar
Dion
Posts: 28
Joined: Sun Dec 04, 2016 12:30 am

Re: HDR -> SDR conversion

Post 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.
User avatar
admin
Posts: 4551
Joined: Thu Sep 09, 2010 3:08 pm

Re: HDR -> SDR conversion

Post 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.
User avatar
admin
Posts: 4551
Joined: Thu Sep 09, 2010 3:08 pm

Re: HDR -> SDR conversion

Post 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.
DAE avatar
Dion
Posts: 28
Joined: Sun Dec 04, 2016 12:30 am

Re: HDR -> SDR conversion

Post by Dion »

I was under the impression that the DGHDRtoSDR plugin automatically converted everything to 8bit. Is this not true?
User avatar
admin
Posts: 4551
Joined: Thu Sep 09, 2010 3:08 pm

Re: HDR -> SDR conversion

Post 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.
DAE avatar
Narkyy
Posts: 51
Joined: Thu May 25, 2017 11:51 pm

Re: HDR -> SDR conversion

Post 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
User avatar
admin
Posts: 4551
Joined: Thu Sep 09, 2010 3:08 pm

Re: HDR -> SDR conversion

Post 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?
DAE avatar
Narkyy
Posts: 51
Joined: Thu May 25, 2017 11:51 pm

Re: HDR -> SDR conversion

Post 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.
User avatar
admin
Posts: 4551
Joined: Thu Sep 09, 2010 3:08 pm

Re: HDR -> SDR conversion

Post 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.
DAE avatar
Dion
Posts: 28
Joined: Sun Dec 04, 2016 12:30 am

Re: HDR -> SDR conversion

Post 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
User avatar
admin
Posts: 4551
Joined: Thu Sep 09, 2010 3:08 pm

Re: HDR -> SDR conversion

Post 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.
DAE avatar
Dion
Posts: 28
Joined: Sun Dec 04, 2016 12:30 am

Re: HDR -> SDR conversion

Post 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)
User avatar
admin
Posts: 4551
Joined: Thu Sep 09, 2010 3:08 pm

Re: HDR -> SDR conversion

Post 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.
DAE avatar
Dion
Posts: 28
Joined: Sun Dec 04, 2016 12:30 am

Re: HDR -> SDR conversion

Post by Dion »

Thanks.. Looks to be working.. :salute:
User avatar
admin
Posts: 4551
Joined: Thu Sep 09, 2010 3:08 pm

Re: HDR -> SDR conversion

Post by admin »

You're welcome. Thank you for pushing for this addition.
DAE avatar
Nginx
Posts: 26
Joined: Fri Mar 23, 2018 12:48 am

Re: HDR -> SDR conversion

Post by Nginx »

Thank you very much ~
User avatar
admin
Posts: 4551
Joined: Thu Sep 09, 2010 3:08 pm

Re: HDR -> SDR conversion

Post by admin »

You're welcome, Nginx.
User avatar
admin
Posts: 4551
Joined: Thu Sep 09, 2010 3:08 pm

Re: HDR -> SDR conversion

Post by admin »

DGHDRtoSDR 1.9 is released. It adds Vapoursynth native support.
DAE avatar
Guest

Re: HDR -> SDR conversion

Post by Guest »

Keeps getting better and better, thank you
DAE avatar
Dion
Posts: 28
Joined: Sun Dec 04, 2016 12:30 am

Re: HDR -> SDR conversion

Post 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
User avatar
admin
Posts: 4551
Joined: Thu Sep 09, 2010 3:08 pm

Re: HDR -> SDR conversion

Post by admin »

I'll look into it when current projects finish up. Thank you for the suggestion.
Post Reply