-
-
Notifications
You must be signed in to change notification settings - Fork 142
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Opportunity for a new default tonemap mode #429
Comments
Yep, the original one divided too deep factor and yours are correct, and RGB mode is problematic when desired to retain bright saturated colors as the hue shift is also sever at those colors.: RGB: ITP: |
BTW my suggestion in #416 may be wrong, because primaries have been converted from bt2020 to bt709 in |
That's why I modified the shaders further. In my latest draft ITP and LUM mode will now map in source space and perform lrgb to lrgb after tone mapping(partially addressed nyanmisaka#5) The current draft has Metal, OpenCL and CUDA modified for this change, but the actual PR is blocked by the ffmpeg7 PR as the patches are based on that. |
The vulkan changes are more problematic than I expected. Let's merge this PR into the jellyfin-7.0 branch so you can continue working on it. |
Jellyfin currently has two tonemap modes: MAX mode, which applies TMO to the maximum of the RGB channels, and RGB mode, which applies TMO to each RGB channel individually. However, both methods have significant shortcomings in certain cases. A new mode that applies TMO on the relative luminance has recently been merged in #418 and #416. This mode resolves the distorted color/overly saturated color issue in RGB mode and the significant hue shift issue on bright pixels in MAX mode.
My current working draft introduces a new mode called ITP mode. This mode does not operate in the linear RGB color space like the other methods but operates in the ICtCp color space. The TMO is applied to the Intensity of the ICtCp color. This mode also has a special desaturation method that preserves hue in ICtCp space, which should be closer to human perception due to the design of this color space. This tonemap mode preserves colors in bright pixels even better than the LUM mode, and I propose to make this mode the new default for Jellyfin 10.10 and jellyfin-ffmpeg 7.0.
The major drawback of this mode is the extra computation required for the color space conversion. However, for BT.2390 methods, this is not much slower because this color space does not need the extra non-linearity applied to the signal like other modes, as such non-linearity functions are already applied during color space conversion. For other TMOs that expect a linear signal, extra linearization and de-linearization are required, which makes this mode slower. For users with lower spec GPUs, I suggest them to use the LUM mode which is a good enough alternative for common cases.
To demonstrate the effectiveness of this tonemap mode, I made some sample scene images as examples.
Let's begin with the customizable desaturation parameter. Look at the following furnace example with
desat=0.5
:RGB mode:
![desat_rgb](https://private-user-images.githubusercontent.com/12995396/355609313-98ded936-8e3e-4551-ad0f-bacadbfdc174.jpeg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwMjY1NDUsIm5iZiI6MTczOTAyNjI0NSwicGF0aCI6Ii8xMjk5NTM5Ni8zNTU2MDkzMTMtOThkZWQ5MzYtOGUzZS00NTUxLWFkMGYtYmFjYWRiZmRjMTc0LmpwZWc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjA4JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIwOFQxNDUwNDVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0yODRhNzMzNmE4ZjQ0ZmNkZjBmYjQwYmMzYjZmYmY2MDhlYTYzODJkYTgzMjgyMmUwMjk1N2U4Yjg3YzRkNDc0JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.jwJUYljCpjFDdsHrSSNSISLEtHdN6-0G-_IzonRS590)
MAX mode:
![desat_max](https://private-user-images.githubusercontent.com/12995396/355609416-f85b05d8-8473-4d90-96f3-cc8558d752d9.jpeg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwMjY1NDUsIm5iZiI6MTczOTAyNjI0NSwicGF0aCI6Ii8xMjk5NTM5Ni8zNTU2MDk0MTYtZjg1YjA1ZDgtODQ3My00ZDkwLTk2ZjMtY2M4NTU4ZDc1MmQ5LmpwZWc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjA4JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIwOFQxNDUwNDVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0zNDI2NTdkYWZkMGU3MzIwMTBjMWU1ODRhMWNkNWFmNWFkZmNkZmVjZjBjNzZmZGUzMTc4ZDI5OGI4MTliZDFlJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.5E1Fidhx3nNtsnfDm87vEbcKUiz022Ig0TnsDpvU11c)
LUM mode:
![desat_lum](https://private-user-images.githubusercontent.com/12995396/355609615-fd4edfcd-25d4-4581-b481-e873117cbf3a.jpeg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwMjY1NDUsIm5iZiI6MTczOTAyNjI0NSwicGF0aCI6Ii8xMjk5NTM5Ni8zNTU2MDk2MTUtZmQ0ZWRmY2QtMjVkNC00NTgxLWI0ODEtZTg3MzExN2NiZjNhLmpwZWc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjA4JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIwOFQxNDUwNDVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1lY2U5MWI1MjAwMGRhNzkzOTY0ZDk5OThlZjdiNDYwYzA3NmM2ODc1MjM2ZTZlMzZkMmUxYzFmZTM3NGUzNmYxJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.XMj44v-_iE9QbnXtlKVgGKyyXuEkQaBspdZoCDH2LDE)
ITP mode:
![desat_itp](https://private-user-images.githubusercontent.com/12995396/355609629-b62f324a-3bff-4f5a-892b-9035b426217e.jpeg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwMjY1NDUsIm5iZiI6MTczOTAyNjI0NSwicGF0aCI6Ii8xMjk5NTM5Ni8zNTU2MDk2MjktYjYyZjMyNGEtM2JmZi00ZjVhLTg5MmItOTAzNWI0MjYyMTdlLmpwZWc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjA4JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIwOFQxNDUwNDVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1mODg3ZjUzM2MxMmIyMDk0MTk2NzcwMWQ0NDhjODNiNTk5Zjk1YjUzYTc0ZDU5NzIzODA2MDg1NTg1ZGM1NDk2JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.AjviPxMzPS4bi-gunUrdi-_lluqAEFvChhwWmwAUR68)
As we can see from this example, ICtCp-based desaturation shows a significant advantage over RGB-based desaturation. LUM and MAX modes have a significant hue shift, causing the furnace to appear too red. The RGB mode does not experience as severe a hue shift, but the desaturation is not effective as the color remains overly saturated. ITP mode preserves the hue while gradually turning the overly bright furnace color to white, producing most naturally looking color.
In fact, for this scene, the ICtCp-based tone mapping does not have over saturation problem in the first place, I made this sample mostly to show the hue preserving capability of ICtCp. This is the results of
desat=0
:RGB mode:
![origin_rgb](https://private-user-images.githubusercontent.com/12995396/355611117-1e9e7c39-2045-4ad5-a132-f80a580e6390.jpeg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwMjY1NDUsIm5iZiI6MTczOTAyNjI0NSwicGF0aCI6Ii8xMjk5NTM5Ni8zNTU2MTExMTctMWU5ZTdjMzktMjA0NS00YWQ1LWExMzItZjgwYTU4MGU2MzkwLmpwZWc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjA4JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIwOFQxNDUwNDVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT04NzEwNmQwNDE0M2ZjNmI5ZWQ1OTYzOTMwNTYwY2ExMGE4ODU1Y2E4NjZhMzMwM2FhMmYxZjAwMzc1MDBmMDJjJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.5O2MOdYSaphtDGUz0z0TQ8tcuNrQbqrKGXh07oDoxgA)
MAX mode:
![origin_max](https://private-user-images.githubusercontent.com/12995396/355611114-f72fc27e-c6f5-40b5-906e-6825d243bc9b.jpeg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwMjY1NDUsIm5iZiI6MTczOTAyNjI0NSwicGF0aCI6Ii8xMjk5NTM5Ni8zNTU2MTExMTQtZjcyZmMyN2UtYzZmNS00MGI1LTkwNmUtNjgyNWQyNDNiYzliLmpwZWc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjA4JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIwOFQxNDUwNDVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1hODM2YTcxMDFhNmE3N2U0ZGQxYzBiYWRlMWE0ZWI2NDM5ZDVmZTY2YWJjOGJkZjRjMGFlZmRkMTkyMTU4YjUzJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.CYVqrelVhIq4gIRkD8dSrRse4S6CjiFV_G-KqJixeAY)
LUM mode:
![origin_lum](https://private-user-images.githubusercontent.com/12995396/355611110-b9b5aee8-9f72-4f5f-a9ae-18dbe653aca6.jpeg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwMjY1NDUsIm5iZiI6MTczOTAyNjI0NSwicGF0aCI6Ii8xMjk5NTM5Ni8zNTU2MTExMTAtYjliNWFlZTgtOWY3Mi00ZjVmLWE5YWUtMThkYmU2NTNhY2E2LmpwZWc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjA4JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIwOFQxNDUwNDVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT00MzE4ZWE0ZjAwZmUyMmI3ZTQxZWI3M2Y1NDM2ZGNjZGE2NTIwODFiMGQ5MmYzNDhmNzY4NjA1MTJlNDk2ZDNiJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.qNPlzhShkf0yHospJn_fqSKyHcp9iun-pPW5TW8Qsds)
ITP mode:
![origin_itp](https://private-user-images.githubusercontent.com/12995396/355611077-1414c8f9-add3-47a9-972d-46c5d06a4fd8.jpeg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwMjY1NDUsIm5iZiI6MTczOTAyNjI0NSwicGF0aCI6Ii8xMjk5NTM5Ni8zNTU2MTEwNzctMTQxNGM4ZjktYWRkMy00N2E5LTk3MmQtNDZjNWQwNmE0ZmQ4LmpwZWc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjA4JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIwOFQxNDUwNDVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0xMTk2MDM0MGJlN2Y3NTlmY2EyMTRlOWUwYWU3ZmE1ZTE3ZDdlMzhkOGE0MGI4ZjYyMzM0NDcwMDlkZDhjZmVmJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.qg014kK8PyDJSLV_r3fM_xS1gaoy23U-SpJd2vAKIKQ)
As you can see, the ITP mode produces natural-looking colors and does not require extra desaturation.
To demonstrate the detail-preserving capability for bright pixels, let look at this glass blowing scene:
RGB mode:
![rgb](https://private-user-images.githubusercontent.com/12995396/355612355-b6069e61-b383-4a27-b523-8a72f8e11bcd.jpeg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwMjY1NDUsIm5iZiI6MTczOTAyNjI0NSwicGF0aCI6Ii8xMjk5NTM5Ni8zNTU2MTIzNTUtYjYwNjllNjEtYjM4My00YTI3LWI1MjMtOGE3MmY4ZTExYmNkLmpwZWc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjA4JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIwOFQxNDUwNDVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT03NWJiZWQ4OGU1NzgzNDIxYWVlNjViMDE0NjBjMDFhNTcxMTY0MTAzMWQyZWVkN2E2N2MwYjYxMmM0NDgzMTlkJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.d9sEaXHQRFSeBaMm3hB87Bmf4_hh1ucR42c90zBFtI4)
MAX mode:
![max](https://private-user-images.githubusercontent.com/12995396/355612367-56c83aed-2650-4f9a-b264-e1158baeec8c.jpeg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwMjY1NDUsIm5iZiI6MTczOTAyNjI0NSwicGF0aCI6Ii8xMjk5NTM5Ni8zNTU2MTIzNjctNTZjODNhZWQtMjY1MC00ZjlhLWIyNjQtZTExNThiYWVlYzhjLmpwZWc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjA4JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIwOFQxNDUwNDVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0zMTljODMzODhkM2RhNmY0MGY1NGUxNDliMTZjOGYwZDQ0MDRjOWE0ZDVhMjFkNDAxMmNhMjFlY2Y0Y2MxMTAyJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.UYDMw0fc4_TMXPHKlcxglrhwR71u2zDWccancnKGAkM)
LUM mode:
![lum](https://private-user-images.githubusercontent.com/12995396/355612368-02876864-3388-4fda-8091-15751776bacc.jpeg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwMjY1NDUsIm5iZiI6MTczOTAyNjI0NSwicGF0aCI6Ii8xMjk5NTM5Ni8zNTU2MTIzNjgtMDI4NzY4NjQtMzM4OC00ZmRhLTgwOTEtMTU3NTE3NzZiYWNjLmpwZWc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjA4JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIwOFQxNDUwNDVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0wY2UzODc1NDg1YTAzZTE3MTVkYmVhNjFmODYxMDliOWM4MDM2MTY0NDJkOGYwYmIwNzc0YTE5Y2QzYzI0YzI5JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.7Pi93FghSF17aBep4oc17jrkJoXA3bmOJt77mBTDTfc)
ITP mode:
![itp](https://private-user-images.githubusercontent.com/12995396/355612372-aedd5f39-e7d4-474b-9d15-91de8346f7c2.jpeg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwMjY1NDUsIm5iZiI6MTczOTAyNjI0NSwicGF0aCI6Ii8xMjk5NTM5Ni8zNTU2MTIzNzItYWVkZDVmMzktZTdkNC00NzRiLTlkMTUtOTFkZTgzNDZmN2MyLmpwZWc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjA4JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIwOFQxNDUwNDVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0yOTNhY2JiMDFkZGFlNzIxZjc1NzhlMTcyNjY2ZGQ2YTk0NmJkNGU0MTBlMTE4ODZkZDJlOTIzMmQwODUxZDlmJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.T7HtD2soWazBFNZj9CZozUmVrnmY4UjNX48eWrzFCG4)
As you can see, RGB mode preserves highlights but produces unnatural colors. MAX mode loses most of the highlights, and while LUM mode preserves highlights better than MAX, it is still not as effective as ITP mode.
Another example is the campfire scene:
RGB mode:
![rgb](https://private-user-images.githubusercontent.com/12995396/355613397-96cf63b3-878f-4d9f-9c8b-9bda3704745f.jpeg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwMjY1NDUsIm5iZiI6MTczOTAyNjI0NSwicGF0aCI6Ii8xMjk5NTM5Ni8zNTU2MTMzOTctOTZjZjYzYjMtODc4Zi00ZDlmLTljOGItOWJkYTM3MDQ3NDVmLmpwZWc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjA4JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIwOFQxNDUwNDVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0wYzJmNzI4NDQ0YWFlNTAzNTdkY2I5ZjYwYzE5NGRhMTEyOTA0MzJlZDkwZWRlYTQ2OTZmNWExZWQ4Njg4YjdkJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.cCTh3bkZgklKDdETymE5wPhXpFrnfd8geDbBVR-wG-k)
MAX mode:
![max](https://private-user-images.githubusercontent.com/12995396/355613398-08b81d4d-86e2-428e-9719-bc661199c935.jpeg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwMjY1NDUsIm5iZiI6MTczOTAyNjI0NSwicGF0aCI6Ii8xMjk5NTM5Ni8zNTU2MTMzOTgtMDhiODFkNGQtODZlMi00MjhlLTk3MTktYmM2NjExOTljOTM1LmpwZWc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjA4JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIwOFQxNDUwNDVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT04Y2YyYzgwODY1M2U4ZTg3ZjAyYzgwZmZkNmUzOWM1YWIwM2Y5ZDhkY2MyNzE3ZGYxMjEzNjYzOTdmODg0Yzk0JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.3fu8qgowmfB7xNlYHPW3CsWGCsPMl3Lc9aTuSga-OK0)
LUM mode:
![lum](https://private-user-images.githubusercontent.com/12995396/355613394-a32efdc1-6ce7-485e-ae77-d0c4fd0ce961.jpeg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwMjY1NDUsIm5iZiI6MTczOTAyNjI0NSwicGF0aCI6Ii8xMjk5NTM5Ni8zNTU2MTMzOTQtYTMyZWZkYzEtNmNlNy00ODVlLWFlNzctZDBjNGZkMGNlOTYxLmpwZWc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjA4JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIwOFQxNDUwNDVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT05MTg0MDEyZGRmNjI2ZjYxMmY3YjBiYTU5NzA2ZTFiZWE5OGE5NmQ2MDc1Zjk1ODQ0M2Y0ODgwN2FmZGNkZDMwJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.ubJhnib1ayf3tvg0igsfPcak8Xm9xyX6ql90z7ObH0I)
ITP mode:
![itp](https://private-user-images.githubusercontent.com/12995396/355613389-44437c18-385a-4765-b9c0-e47949125519.jpeg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwMjY1NDUsIm5iZiI6MTczOTAyNjI0NSwicGF0aCI6Ii8xMjk5NTM5Ni8zNTU2MTMzODktNDQ0MzdjMTgtMzg1YS00NzY1LWI5YzAtZTQ3OTQ5MTI1NTE5LmpwZWc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjA4JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIwOFQxNDUwNDVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT02MGFiOWYzNmVmMzhmNzk3MmE1NTJiOTI2M2Q0YTkzYjM2YjMzYzFiM2M2ZjQ1ZTk5MjhhODlhMmJlM2U3NjFmJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.cx5RSnJ0F4F1G58kHMN6zDND6Ss9LYFsRIoCS5VTeTo)
Pay attention to the details of the flame in the bottom right corner.
To further demonstrate the limitation of current modes (MAX and RGB), lets look at this scene that direct captures the sun:
RGB mode:
![rgb](https://private-user-images.githubusercontent.com/12995396/355614324-82f2c50c-9974-4a5c-98a6-103a355c0e2d.jpeg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwMjY1NDUsIm5iZiI6MTczOTAyNjI0NSwicGF0aCI6Ii8xMjk5NTM5Ni8zNTU2MTQzMjQtODJmMmM1MGMtOTk3NC00YTVjLTk4YTYtMTAzYTM1NWMwZTJkLmpwZWc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjA4JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIwOFQxNDUwNDVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT03ZDJhZjg0ODM0N2E2MGYzODE2NmJhNDIxYWE2YWY1YTMzNDMxNGY5N2Y1NjA2M2Y1MTk0NWY1ZDg2YWM1ODU1JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.8E9i8EdfIxxgZcKEhrn06AjypFNLKIng9IW4Jhrbs4U)
MAX mode:
![max](https://private-user-images.githubusercontent.com/12995396/355614322-0f695d8e-eece-402f-a900-58165f7c66b8.jpeg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwMjY1NDUsIm5iZiI6MTczOTAyNjI0NSwicGF0aCI6Ii8xMjk5NTM5Ni8zNTU2MTQzMjItMGY2OTVkOGUtZWVjZS00MDJmLWE5MDAtNTgxNjVmN2M2NmI4LmpwZWc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjA4JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIwOFQxNDUwNDVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT04NDMwZWIxZmY2NWJlNjA5NmI2NmU3MDQwNjY1ZmE2OWI0OTZlOTQzMmIxNmQ0YmEzYzA4MjM3MmIwNmFmY2NlJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.5TE1l0DmSkNz-sfqqA7HJgIfW91NcA6lBm0TN5pL7NM)
LUM mode:
![lum](https://private-user-images.githubusercontent.com/12995396/355614320-a0514620-e2c4-4a2c-bd24-8aeff38363e9.jpeg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwMjY1NDUsIm5iZiI6MTczOTAyNjI0NSwicGF0aCI6Ii8xMjk5NTM5Ni8zNTU2MTQzMjAtYTA1MTQ2MjAtZTJjNC00YTJjLWJkMjQtOGFlZmYzODM2M2U5LmpwZWc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjA4JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIwOFQxNDUwNDVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT05ZWNiMmRhMmY4MjBhYTc1ZDk0YjQxNmViZGFmMTY1NzlhZDBhNTlkMmU2ODBkNzMwN2MzYmEzNzg1YzRiMGE2JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.l6p1S1XJWqWRXydgu1Z-FGtq4JyBrD8RApeK6n9cz-4)
ITP mode:
![itp](https://private-user-images.githubusercontent.com/12995396/355614316-3f86c338-4ecb-4755-8144-46b64807c728.jpeg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwMjY1NDUsIm5iZiI6MTczOTAyNjI0NSwicGF0aCI6Ii8xMjk5NTM5Ni8zNTU2MTQzMTYtM2Y4NmMzMzgtNGVjYi00NzU1LTgxNDQtNDZiNjQ4MDdjNzI4LmpwZWc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjA4JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIwOFQxNDUwNDVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1lZjA3OGQyMWQ1OGE0ZjA2NThhNzIwODA4NjZiODRjNjY1NzQ3MmRkNzdkMmE0NTc5NDVmMmRhNzljZTAyNGIyJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.7bXWORaieT7UfWEZh69q6Y6pUXvJjdzecdU-LYvUcfs)
As you can see, both of the current modes render sunlight poorly. Both LUM and ITP modes improve the sunlight significantly. In this case, LUM mode has a darker sun border, which appears less "natural" but is not subjectively bad.
Direct capture of the sun is an extreme case, but the current modes have more limitations. Let's look at this bridge scene shot at night:
RGB mode:
![rgb](https://private-user-images.githubusercontent.com/12995396/355615513-f3938744-ae73-4cfd-8c9c-fa26c98c5704.jpeg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwMjY1NDUsIm5iZiI6MTczOTAyNjI0NSwicGF0aCI6Ii8xMjk5NTM5Ni8zNTU2MTU1MTMtZjM5Mzg3NDQtYWU3My00Y2ZkLThjOWMtZmEyNmM5OGM1NzA0LmpwZWc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjA4JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIwOFQxNDUwNDVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0wM2M3OTI4NzJhNGVkODRhN2QyODIxNGVkMDMzY2Q2YTliNTViMGQ1MjcyYjllMDJhMDMwMjk1NDViNzlmYjhmJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.hSJ5w7ak1aJ2sMZU80aezVodn_Tc-QRiYtqlVdhUU4o)
MAX mode:
![max](https://private-user-images.githubusercontent.com/12995396/355615503-7c5aca84-ffa8-40ca-b9d2-e900bd9a710c.jpeg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwMjY1NDUsIm5iZiI6MTczOTAyNjI0NSwicGF0aCI6Ii8xMjk5NTM5Ni8zNTU2MTU1MDMtN2M1YWNhODQtZmZhOC00MGNhLWI5ZDItZTkwMGJkOWE3MTBjLmpwZWc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjA4JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIwOFQxNDUwNDVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1kYmNhNWYyYzMxNjM4NGU2MTk2NmY2MmVkOGFjYTUyMjYxMzAyMDdhMTk3N2ZmODNlMmM0NDI4OTlkYTY3YzkyJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.1OlB5qwifPm23RRTqxKMCUmx6dv1TPUiVARLlBEgROU)
LUM mode:
![lum](https://private-user-images.githubusercontent.com/12995396/355615509-41a9e3b3-1489-47da-86af-f2fe798ea537.jpeg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwMjY1NDUsIm5iZiI6MTczOTAyNjI0NSwicGF0aCI6Ii8xMjk5NTM5Ni8zNTU2MTU1MDktNDFhOWUzYjMtMTQ4OS00N2RhLTg2YWYtZjJmZTc5OGVhNTM3LmpwZWc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjA4JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIwOFQxNDUwNDVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT04MDA4NjE1Y2ZhOGNhNzNiNGVhNWM1OTMxZjg4YzBhNTViY2NkZjdlZGJhNTk3NGU3MGZmNmNmMzIwOGY5NGNlJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.ziuHyzU89402uz2LsX1SDCS18McV3jawXtPsv9yGyXQ)
ITP mode:
![itp](https://private-user-images.githubusercontent.com/12995396/355615512-79251120-3bb0-40e9-8ff4-babee7cad4a0.jpeg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwMjY1NDUsIm5iZiI6MTczOTAyNjI0NSwicGF0aCI6Ii8xMjk5NTM5Ni8zNTU2MTU1MTItNzkyNTExMjAtM2JiMC00MGU5LThmZjQtYmFiZWU3Y2FkNGEwLmpwZWc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjA4JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIwOFQxNDUwNDVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT00MDNlOWVlY2YyNDE5M2Q0ZjczZThjNDM5OWVhOWY4NWQxY2Y3MjBlNTY3NDY5ODdmYzc2M2Y5ZTU2OTc5Yjg2JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.Xt2houiCYOMK38_S2Xe05LVsHHO_Og1aWq1Xy4cfeaQ)
RGB mode is too dark for a night scene, and MAX mode renders the lights on the road way too red. Both LUM and ITP modes produce much more natural colors in this case. For this scene, the LUM and ITP results are not visually distinguishable.
For more scene comparisons, I have made a zip file that includes additional scenes not shown here:tonemode_comparison_extra.zip
If there is no objection I will make the ITP mode as the default tonemap mode for jellyfin-ffmpeg7 and Jellyfin 10.10.
The text was updated successfully, but these errors were encountered: