Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion.

Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules.

Domains: forum.doom9.org / forum.doom9.net / forum.doom9.se

 

Go Back   Doom9's Forum > Video Encoding > High Efficiency Video Coding (HEVC)

Reply
 
Thread Tools Search this Thread Display Modes
Old 11th July 2022, 19:12   #61  |  Link
quietvoid
Registered User
 
Join Date: Jan 2019
Location: Canada
Posts: 583
Quote:
Originally Posted by kolak View Post
So is this 510 for whole movie or not?
No, just this specific frame/shot.
__________________
LG C2 OLED | GitHub Projects
quietvoid is offline   Reply With Quote
Old 11th July 2022, 19:18   #62  |  Link
kolak
Registered User
 
Join Date: Nov 2004
Location: Poland
Posts: 2,869
Quote:
Originally Posted by FranceBB View Post
Yep.



That's interesting, but also differs from the officially provided value. The title you performed the analysis on is Dune which we've received a while ago as ProRes HQ 4:2:2 10bit planar and I have it right here (well, not "here" on my PC, that would be crazy, it's on an LTO tape, but you get the idea) and the metadata sent from the official provider via xml said MaxCLL 945 Nits, which is way closer to 1000 than the calculated 510. I noticed that when you calculated it, it skyrocketed to 1239 nits, which sounds about right given the compression artifacts and most importantly the chroma resampling, so if it has been mastered at 1000 nits, it effectively has 945 nits and in your calculations you've got 1239, I think that being 294 nits off on a distribution title encoded for consumers seems about right 'cause we're talking about 4:2:0 vs 4:2:2 and H.265 50 Mbit/s vs ProRes 700 Mbit/s.

On the other hand, the value you've got of 510 nits calculated by removing outliers looks way lower than it should be.
This ProResHQ sounds still quite good. It's so easy for anything which touches 4:2:2 to go from 1K to even 2K nits.
Chroma subsampling is huge enemy of MaxCLL calculation (bigger than compression most likely).

I downloaded Netflix Sparks 1K TIFF master. And it was 1K when measured in Resolve. When exported as 12bit 444 lossless jpeg2000 it was still 1K. ProResXQ was 1085, where ProResHQ was 4208 (straight from TIFF export in Resolve and measured back in Resolve)!!! It also depends on content nature and also which tool you measure with. It should be all calculated in 32bit float as it quickly generates errors on rounding (PQ curve is strong so errors propagate heavily to final nits).

Last edited by kolak; 11th July 2022 at 19:38.
kolak is offline   Reply With Quote
Old 11th July 2022, 19:18   #63  |  Link
kolak
Registered User
 
Join Date: Nov 2004
Location: Poland
Posts: 2,869
Quote:
Originally Posted by quietvoid View Post
No, just this specific frame/shot.
Ok- makes more sense.
Best way to test all of it is to download eg. Netflix Sparks 1K nits TIFF sequence. This is 1K nits MaxCLL.
Then you can create different formats from it and analyse them and compare to reference value.
If you start with compressed title you are bit blind as you have no idea what it should be.

Last edited by kolak; 11th July 2022 at 19:32.
kolak is offline   Reply With Quote
Old 11th July 2022, 23:49   #64  |  Link
benwaggoner
Moderator
 
Join Date: Jan 2006
Location: Portland, OR
Posts: 5,132
Quote:
Originally Posted by kolak View Post
Chroma subsampling is huge enemy of MaxCLL calculation (bigger than compression most likely).
Yep, it always requires a conversion to RGB AFAIK. Because Y~luma, not Y=luma. Darn it.
__________________
Ben Waggoner
Principal Video Specialist, Amazon Prime Video

My Compression Book
benwaggoner is offline   Reply With Quote
Old 23rd November 2025, 21:31   #65  |  Link
FranceBB
Broadcast Encoder
 
FranceBB's Avatar
 
Join Date: Nov 2013
Location: Royal Borough of Kensington & Chelsea, UK
Posts: 3,374
Hi Tom,
thanks for the function, I've been using it for several years and it works. Up until now I only really used it manually so I didn't mind to look at the various results and scroll down to the bottom to get the final one, however I'm now including it in a workflow to measure the values and write both MaxCLL and MaxFALL with a bitstream filter on already encoded files. This means that I'll be processing those in batch and given that I was only really interested in the last value, I took the chance to add a new parameter called LogIntermediateStats. It's a boolean and it can be specified by the user to signal whether all values need to be reported (i.e update the .txt with the values every 100 frame, which is the current behavior) or just the final calculated value.

In other words, this:

Code:
LWLibavVideoSource("Test_Source.mov")
ConvertToRGB64(matrix="Rec2020")
MaxCLLFind(maxFallAlgorithm=0, LogIntermediateStats=true)
is the same as this

Code:
LWLibavVideoSource("Test_Source.mov")
ConvertToRGB64(matrix="Rec2020")
MaxCLLFind(maxFallAlgorithm=0)
and maintains the current behavior of outputting the values every 100 frames, in fact the MaxCLLFind_Results1.txt shows the following values

Quote:
Stats at frame 1:
MaxCLL: 0, raw value: 0 0 at X 0 Y 0 at frame 0
MinCLL: 0, raw value: 0 0 at X 0 Y 2159 at frame 0
MaxFALL: 0 at frame 0
FALL Average: 0 across 1 frames.

Stats at frame 101:
MaxCLL: 400.011, raw value: 42767 0.652583 at X 0 Y 1101 at frame 7
MinCLL: 0, raw value: 0 0 at X 0 Y 2159 at frame 0
MaxFALL: 8.55332 at frame 41
FALL Average: 4.07527 across 101 frames.

Stats at frame 201:
MaxCLL: 400.011, raw value: 42767 0.652583 at X 0 Y 1101 at frame 7
MinCLL: 0, raw value: 0 0 at X 0 Y 2159 at frame 0
MaxFALL: 8.55332 at frame 41
FALL Average: 2.84126 across 201 frames.

Stats at frame 301:
MaxCLL: 400.011, raw value: 42767 0.652583 at X 0 Y 1101 at frame 7
MinCLL: 0, raw value: 0 0 at X 0 Y 2159 at frame 0
MaxFALL: 8.55332 at frame 41
FALL Average: 1.94568 across 301 frames.

Stats at frame 401:
MaxCLL: 400.011, raw value: 42767 0.652583 at X 0 Y 1101 at frame 7
MinCLL: 0, raw value: 0 0 at X 0 Y 2159 at frame 0
MaxFALL: 8.55332 at frame 41
FALL Average: 1.52747 across 401 frames.

Stats at frame 501:
MaxCLL: 400.011, raw value: 42767 0.652583 at X 0 Y 1101 at frame 7
MinCLL: 0, raw value: 0 0 at X 0 Y 2159 at frame 0
MaxFALL: 8.55332 at frame 41
FALL Average: 1.42005 across 501 frames.

Stats at frame 601:
MaxCLL: 400.011, raw value: 42767 0.652583 at X 0 Y 1101 at frame 7
MinCLL: 0, raw value: 0 0 at X 0 Y 2159 at frame 0
MaxFALL: 8.55332 at frame 41
FALL Average: 1.24852 across 601 frames.

Stats at frame 701:
MaxCLL: 400.011, raw value: 42767 0.652583 at X 0 Y 1101 at frame 7
MinCLL: 0, raw value: 0 0 at X 0 Y 2159 at frame 0
MaxFALL: 8.55332 at frame 41
FALL Average: 1.18646 across 701 frames.

Stats at frame 801:
MaxCLL: 400.011, raw value: 42767 0.652583 at X 0 Y 1101 at frame 7
MinCLL: 0, raw value: 0 0 at X 0 Y 2159 at frame 0
MaxFALL: 8.55332 at frame 41
FALL Average: 1.11332 across 801 frames.

Stats at frame 901:
MaxCLL: 400.011, raw value: 42767 0.652583 at X 0 Y 1101 at frame 7
MinCLL: 0, raw value: 0 0 at X 0 Y 2159 at frame 0
MaxFALL: 8.55332 at frame 41
FALL Average: 1.06956 across 901 frames.

Stats at frame 1001:
MaxCLL: 400.011, raw value: 42767 0.652583 at X 0 Y 1101 at frame 7
MinCLL: 0, raw value: 0 0 at X 0 Y 2159 at frame 0
MaxFALL: 222.569 at frame 991
FALL Average: 2.12734 across 1001 frames.

Stats at frame 1101:
MaxCLL: 400.011, raw value: 42767 0.652583 at X 0 Y 1101 at frame 7
MinCLL: 0, raw value: 0 0 at X 0 Y 2159 at frame 0
MaxFALL: 222.57 at frame 1007
FALL Average: 7.41441 across 1101 frames.

Stats at frame 1201:
MaxCLL: 400.011, raw value: 42767 0.652583 at X 0 Y 1101 at frame 7
MinCLL: 0, raw value: 0 0 at X 0 Y 2159 at frame 0
MaxFALL: 222.57 at frame 1007
FALL Average: 8.57353 across 1201 frames.

Stats at frame 1301:
MaxCLL: 400.011, raw value: 42767 0.652583 at X 0 Y 1101 at frame 7
MinCLL: 0, raw value: 0 0 at X 0 Y 2159 at frame 0
MaxFALL: 222.57 at frame 1007
FALL Average: 9.43403 across 1301 frames.

Stats at frame 1401:
MaxCLL: 400.011, raw value: 42767 0.652583 at X 0 Y 1101 at frame 7
MinCLL: 0, raw value: 0 0 at X 0 Y 2159 at frame 0
MaxFALL: 222.57 at frame 1007
FALL Average: 10.2929 across 1401 frames.

Stats at frame 1501:
MaxCLL: 400.011, raw value: 42767 0.652583 at X 0 Y 1101 at frame 7
MinCLL: 0, raw value: 0 0 at X 0 Y 2159 at frame 0
MaxFALL: 222.57 at frame 1007
FALL Average: 11.1018 across 1501 frames.

Stats at frame 1601:
MaxCLL: 400.011, raw value: 42767 0.652583 at X 0 Y 1101 at frame 7
MinCLL: 0, raw value: 0 0 at X 0 Y 2159 at frame 0
MaxFALL: 222.57 at frame 1007
FALL Average: 11.4985 across 1601 frames.

Stats at frame 1701:
MaxCLL: 400.011, raw value: 42767 0.652583 at X 0 Y 1101 at frame 7
MinCLL: 0, raw value: 0 0 at X 0 Y 2159 at frame 0
MaxFALL: 222.57 at frame 1007
FALL Average: 11.8852 across 1701 frames.

Stats at frame 1801:
MaxCLL: 400.011, raw value: 42767 0.652583 at X 0 Y 1101 at frame 7
MinCLL: 0, raw value: 0 0 at X 0 Y 2159 at frame 0
MaxFALL: 222.57 at frame 1007
FALL Average: 12.1784 across 1801 frames.

Stats at frame 1901:
MaxCLL: 400.011, raw value: 42767 0.652583 at X 0 Y 1101 at frame 7
MinCLL: 0, raw value: 0 0 at X 0 Y 2159 at frame 0
MaxFALL: 222.57 at frame 1007
FALL Average: 11.9798 across 1901 frames.

Stats at frame 2001:
MaxCLL: 400.011, raw value: 42767 0.652583 at X 0 Y 1101 at frame 7
MinCLL: 0, raw value: 0 0 at X 0 Y 2159 at frame 0
MaxFALL: 222.57 at frame 1007
FALL Average: 11.7196 across 2001 frames.

Stats at frame 2101:
MaxCLL: 400.011, raw value: 42767 0.652583 at X 0 Y 1101 at frame 7
MinCLL: 0, raw value: 0 0 at X 0 Y 2159 at frame 0
MaxFALL: 222.57 at frame 1007
FALL Average: 12.1415 across 2101 frames.

Stats at frame 2201:
MaxCLL: 400.011, raw value: 42767 0.652583 at X 0 Y 1101 at frame 7
MinCLL: 0, raw value: 0 0 at X 0 Y 2159 at frame 0
MaxFALL: 222.57 at frame 1007
FALL Average: 12.4846 across 2201 frames.

Stats at frame 2301:
MaxCLL: 400.011, raw value: 42767 0.652583 at X 0 Y 1101 at frame 7
MinCLL: 0, raw value: 0 0 at X 0 Y 2159 at frame 0
MaxFALL: 222.57 at frame 1007
FALL Average: 12.7015 across 2301 frames.

Stats at frame 2401:
MaxCLL: 400.011, raw value: 42767 0.652583 at X 0 Y 1101 at frame 7
MinCLL: 0, raw value: 0 0 at X 0 Y 2159 at frame 0
MaxFALL: 222.57 at frame 1007
FALL Average: 13.3252 across 2401 frames.

Stats at frame 2501:
MaxCLL: 400.011, raw value: 42767 0.652583 at X 0 Y 1101 at frame 7
MinCLL: 0, raw value: 0 0 at X 0 Y 2159 at frame 0
MaxFALL: 222.57 at frame 1007
FALL Average: 13.9658 across 2501 frames.

Stats at frame 2601:
MaxCLL: 400.011, raw value: 42767 0.652583 at X 0 Y 1101 at frame 7
MinCLL: 0, raw value: 0 0 at X 0 Y 2159 at frame 0
MaxFALL: 222.57 at frame 1007
FALL Average: 14.2071 across 2601 frames.

Stats at frame 2701:
MaxCLL: 400.011, raw value: 42767 0.652583 at X 0 Y 1101 at frame 7
MinCLL: 0, raw value: 0 0 at X 0 Y 2159 at frame 0
MaxFALL: 222.57 at frame 1007
FALL Average: 14.5209 across 2701 frames.

Stats at frame 2801:
MaxCLL: 400.011, raw value: 42767 0.652583 at X 0 Y 1101 at frame 7
MinCLL: 0, raw value: 0 0 at X 0 Y 2159 at frame 0
MaxFALL: 222.57 at frame 1007
FALL Average: 14.8495 across 2801 frames.

Stats at frame 2901:
MaxCLL: 400.011, raw value: 42767 0.652583 at X 0 Y 1101 at frame 7
MinCLL: 0, raw value: 0 0 at X 0 Y 2159 at frame 0
MaxFALL: 222.57 at frame 1007
FALL Average: 15.115 across 2901 frames.

Stats at frame 3001:
MaxCLL: 400.011, raw value: 42767 0.652583 at X 0 Y 1101 at frame 7
MinCLL: 0, raw value: 0 0 at X 0 Y 2159 at frame 0
MaxFALL: 222.57 at frame 1007
FALL Average: 15.0032 across 3001 frames.

while if we set the new boolean explicitly to false like this:

Code:
LWLibavVideoSource("Test_Source.mov")
ConvertToRGB64(matrix="Rec2020")
MaxCLLFind(maxFallAlgorithm=0, LogIntermediateStats=false)
then we only get the final output in the MaxCLLFind_Results0.txt, in fact:

Quote:
MaxCLL: 400.011, raw value: 42767 0.652583 at X 0 Y 1101 at frame 7
MinCLL: 0, raw value: 0 0 at X 0 Y 2159 at frame 0
MaxFALL: 222.57 at frame 1007
FALL Average is disabled in this case.

Let me know if you're ok with this new parameter.
I've opened a pull request here: https://github.com/TomArrow/MaxCLLFindAVS/pull/15 just in case, but feel free to change/modify anything.

In the meantime, in case anyone wants to give it a go, I've made some temporary builds here: https://github.com/FranceBB/MaxCLLFi...leases/tag/0.4

and, before anyone says anything, yes, it also works on Windows XP!
FranceBB is offline   Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 03:05.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2026, vBulletin Solutions Inc.