madmozg

I know folks here don't trust the microscope/camera method but it would be really interesting to know if you could upload microscope footage for each of these different cases. I found similar things with banding and testing a windows PC and a LG 4k monitor with different bandwidth cables.

Not sure if this is helpful (details about TCON and FRC)
https://tsuhuai.wordpress.com/2015/04/20/lcd-timing-controller-tcon-design/

async Here is a version of the script that does not stream outputs.
So that means you can run sh iodiff.sh, change some cable or thing, then run iodiff.sh again to see what changed. It should probably target some other places as well, or diff some of the AllRez output, but it's a starting point to try to work out what actually happens in different circumstance.

#!/bin/sh

CMD="ioreg -l -d0 -w0 -r -c AppleCLCD2 -a \
| sed -e '/^\t*<data>/,/^\t*<\/data>/ { /^\(\t*\)<data>\(.*\)/ { s//\1<string>_data:\2/; h; d; }; /^\t*<\/data>\(.*\)/! { s/^\t\(.*\)/\1/; H; d; }; /^\t*<\/data>\(.*\)/ { s//\1:data_<\/string>/; H; g; s/\n//g; }; }' \
| plutil -convert json -r - -o -"

OLD_FILE="/tmp/iodiff_old.json"
NEW_FILE="/tmp/iodiff_new.json"

# Execute command and save output to NEW_FILE
eval "$CMD" > "$NEW_FILE"

# Compare OLD_FILE and NEW_FILE if OLD_FILE exists
if [ -f "$OLD_FILE" ]; then
  OUTPUT=$(jd -color "$OLD_FILE" "$NEW_FILE")
  if [ ! -z "$OUTPUT" ]; then
    echo "$OUTPUT"
  fi
fi

# Move NEW_FILE to OLD_FILE for next comparison
mv "$NEW_FILE" "$OLD_FILE"

    madmozg Banding looks like the banding I have (not on a Mac) when in YCbCr mode. If you change it to RGB in the settings, the banding will go away.

    Hi,

    Thanks op for the program

    I installed it on my new M3 Air, but unfortunetaly i still have mild headache

    I use SRGB color profile, 80% light, and this program (it installed very easily), and i made sure it's running with the command you gave

    Do you think i can adapt ? I have no problem with Lenovo Thinkpad with IPS panel, Dell monitor etc

    • aiaf replied to this.

      MTNEYE did you test the mini iPhone under a microscope to verify no dithering ?

        jordan no I did not, but it was verifiable to me by sight after heavy use. Felt like old iphone 6s

        async this is great. I ended up diffing only the AllRez output for the time being, most of the changes are in the preferred timing modes and their ordering, but it's not useful for figuring actual color depth used.

        madmozg try this calculator and see the effective bandwidth used by your configuration. Switching to 144Hz should more than double the required bandwidth hence why it falls back to 8bpc. Use BetterDisplay to adjust gamma/contrast in Image Adjustments. You should see drastic and chaotic changes in banding/band count if it's in true 8bpc.

        aiaf I'd like to make one correction to these findings, the change in Lagom gradient banding observed in the undithered 8bpc signal is detected by adjusting software brightness/gamma/contrast using BetterDisplay. Otherwise, it's not necessarily 128 bands in 8bpc. Whereas on a 10-bit (8-bit+FRC) image, the 256 band count does not change or behave erratically with brightness/contrast/gamma adjustments. Thanks to @DisplaysShouldNotBeTVs for this tip.

        This does not change my conclusion regarding bit depth being affected by cable choice.

        Request

        Can anyone with an M2 Air note or videotape their observations re. banding behavior and count with dithering disabled and through adjusting software brightness, gamma, and contrast?

        riverandsea How long have you been using the app for? We're starting to suspect the all these Apple display panels have another dithering layer that's driven by the TCON on the display. Stillcolor still disables the DCP-controlled dithering, so ideally you should be getting less eyestrain with this app than without.

          The Lagom banding gradient has become a key tool in figuring out what is going on. The problem is, the Lagom gradient is outdated. It is encoded at 8-bit, and as such is only meant to show dithering support for up to 8-bits. We are trying to determine 8-bit+FRC and higher.

          So I went down a rabbit hole with this and programmed a new, more sophisticated test gradient. It is a ladder of gradients rendered from 1-bit to 12-bit, without spatial dithering. All encoded to a 16-bit PNG image.

          Download and open with a non-dithering image viewer to see what bit depth your system supports. Zoom in as needed. Each higher bit level splits the color of the lower bit level into two colors. Find the highest level where you can see each lower color band split in two. With visible banding separation between the two new colors. Safari seems to cap out at 8-bit when rendering this image, so you need to download the image directly from Imgur, or drag and drop the embedded image below to your machine. Then view in Preview.app.

          Download on imgur

          When viewing with Preview.app on my MacBook Pro 16" M1, I can just barely make out the banding divisions at the 10-bit level. Stillcolor does not increase or decrease the level. But enabling Stillcolor does reveal some vertical waves of color in the upper right (high bit depth) portions of the test image. I think I could argue these waves appear magenta and cyan. I think every level takes on this slight wavy color cast, but the effect is most noticeable in the upper right.

          Hopefully my test image can help sort some of this out!

            Hopefully I get to test on an eizo cg2700x soon. Not sure if it is true 10 bit or not.
            update: will test backlight. Others who are photographers have similar eizo monitor and didn't like the PWM.

            I took a brief look at MacBooks at the store today passing by the table they were on.

            I don't remember the text size being so small before. If you have never changed the size of the UI and wear glasses, you might want to think about doing so.

            • aiaf replied to this.

              Hi guys. Thanks for your hard work.

              I’m looking for a damn laptop and it’s been near impossible. I have super sensitive eyes. When I checked the Air m2 at the store it seemed bad for my eyes. Eye strain, headache that lasted for a few hours after only a minute.

              I also tried the Pro which I believe induced nausea as well.

              I’m currently without a computer and it’s been like that for two weeks. Do you guys believe that the software will make it possible for me to enjoy an apple laptop? If not, is there any other great laptop that fits the bill?

                I managed to install this on machines at the Apple Store yesterday… seemed to be functioning, Terminal command confirmed it.

                Blooey This is remarkable work! So much easier to decipher than Lagom.

                I've already used it to reconfirm that my old High Speed with Ethernet HDMI cable forces an 8-bit signal on my 10-bit(8+FRC) external monitor, while using TB/USB4->DP1.4 sends 10-bit at least permitting the panel to FRC.

                What's interesting is that on my MBP M3 Max (P3-1600 nits preset at max HW and SW brightness), with Stillcolor on (enableDither = No), I can see the 9-bit bands clearly twice as wide as the 10-bit bands. So this confirms at least a "native" 10-bit image, likely dithered by the TCON. Additionally, when I turn dithering back on, the banding on the 11-bit section becomes a lot smoother, and zoomed in, the bands are half the width of those in the 10-bit section.

                I think this gives some credence to the double dithering theory, or DCP dithering -> TCON reverse temporal dithering as I will clarify later. This would be the case if these MBPs do not use true 10-bit panels.

                  Sunspark the default resolutions are awful. I don't know who can read on those things.

                    Blooey Exceptional. Would be interesting to see something similar for high gamut colors

                    aiaf

                    So if I understand correctly now using Stillcolor and a bandwidth limited hdmi cable (HSwE) will fully eliminate dithering and FRC triggers from the equation for external true 8 bit or 10 bit monitors? Then whatever strain is left should in theory be only caused by PWM, pixel inversion, backlight led spectrum, etc?

                    Thank you all again for this ingenious work! I am now using the capture card and ffmpeg method to test other systems with interesting results to be shared later.

                      photon78s No, it depends on the video driver and adapter too. My monitor uses FRC. The picture on it using the HDMI port from an Intel igpu on my Windows machine through a DP-HDMI adapter doesn't have the same amount of "fuzzing movement" in a gradient that the DVI port does on the Linux setup through an AMD agpu using a dock's DP-HDMI adapter built in.

                      I can only conclude that the AMD drivers in Linux are also FRC dithering (or the dock is), so I am experiencing double-FRC on that port/machine.

                        Sunspark

                        I should have clarified for users of Stillcolor apple silicon macs only. For windows and other PC, that is definitely not the case.

                        dev