10 ms·
TV backlight compensation (2020)
- nagonago 4y agoClever solution! It kind of reminds me of when I sometimes run sound through customized EQ and compression to compensate for crappy speakers. My approach is not quite as scientific as this though, just "tweak until it sounds good." I didn't know there was a version of MPC with a live shader editor, that is also very cool. This is actually a pretty good use case for such a feature.
- klodolph 4y agoMy home receiver came with a microphone. You plug it in and the receiver blasts noise through the speakers, and comes up with EQ to compensate automatically. This wasn’t an expensive receiver, either. If you want a more scientific approach, you can use a tool like Room EQ Wizard, which is free—although it works best if you have some kind of flat response microphone, or calibrated microphone with a known response curve. (I’ll also add that you’re compensating for crappy acoustics in your room as much as you are compensating for crappy speakers.)
- atahanacar 4y agoI use AutoEQ (https://github.com/jaakkopasanen/AutoEq https://github.com/jaakkopasanen/AutoEq) for my headphones. It works by "parsing frequency response measurements and producing equalization settings which correct the headphone to a neutral sound". They also have a huge database of already measured and equalized data, which is what I use.
- HPsquared 4y agoI use Equalizer APO for this in Windows. Add some parametric EQ peaks (negative peaks) to cancel out resonant modes of my cheap speakers/headphones.
- unglaublich 4y agoI wouldn't call this over-engineering. It's a reasonable solution to an actual problem.
- axiolite 4y agoI think the reasonable solution is: Buy a new TV. We're not talking about a jumbotron display here. A cheap new TV with proper color is likely very inexpensive.
- adrianN 4y agoWhy create waste when it's not necessary?
- tgsovlerkhgsel 4y agoIf you're not doing it as a hobby, the one-off effort put into repairing an item (or in this case, engineering the correction) is also "waste". If you want to dedicate that time to improving the planet, avoiding the waste of one TV is likely not a better use of your time than e.g. fixing some bug in some popular open source software that causes it to be less efficient. Let's say you make a change to Firefox that makes it use 0.1 Watt less on average, and let's be conservative and assume the ~350 million Firefox users use it for one hour a day on average. That's 35 MWh per day saved. Assuming 0.1 kg CO2e/kWh, that's a saving of 3.5 tons of CO2e saved each day.
- adrianN 4y agoFair point, but I bet that making Firefox take 0.1W less on average is vastly more work that fixing a TV image. And if you write blog post about it, maybe other people can fix their TV with less work.
- RajT88 4y agoI don't know if I am going to ever fix a TV this way. But the knowledge of how to create a custom shader is going to come in handy one day. More and more I am finding, most knowledge comes in handy some time. You just have to remember at the right time what is possible and go refresh your memory on it.
- justusw 4y agoThis is such a cool idea and execution. I also like the DIY approach to patching MPC BE yourself, which shows how far OSS can take you. I wonder, when applying a linear transformation like in the shader described, will the total available color space decrease? Simply put, if a one-dimensional color value on the arbitrary scale between 1 and 100 needs to be decreased by 20 for correction, the resulting maximum will be 80. Does that mean the total available color values will be less?
- klodolph 4y agoNo. Color perception is relative. Basically, what you are doing is adding a cast to the image. This cast cancels out with the cast that the backlights give. When you add two complementary color casts to each other, you end up with neutral gray. This results in an image which is darker, but still has the full color range that the TV is designed for.
- actionfromafar 4y agoMostly yes but it also depends. What happens is exactly that, there will be a clipping in the color band(s) you are correcting for. This can easily be verified with a simple thought experiment: imagine an area is almost completely red. This area will have to be complemented with full blast of green and blue to even achieve white, or partial blast of green and blue to achieve gray. It can not achieve any color without a red component, hence reducing the area of the color triangle for that part of the screen.
- Retr0id 4y agoWow, I'm very glad to see this! This exact idea has been floating around in my head for ages, and I always wondered how well it actually worked - now I don't need to wonder. I started thinking about it as a potential solution to OLED burn-in. Thankfully, my OLED TV doesn't have any burn-in yet, so I never needed to investigate further.
- xvector 4y agoOLED TVs already compensate for burn in. A lot of your pixels are probably already somewhat "burnt" but you can't perceive it due to the corrective measures your TV takes. You'll only really notice it when it's irredeemably bad.
- Candas1 4y agoOLED TV's try to prevent burn in, I am not sure it can compensate burn in
- empiricus 4y agoI don't see how the TV can compensate for the burnin without having an external picture of the screen. I have a couple of years old OLED TV, and it has burn in... The Netflix logo, the netflix animation, and subtitles are quite visible all the time now. This is despite running periodically the TV pixel refresh or however it is called...
- serd 4y agoCould you share a photo? I'd really like to see that.
- sss111 4y agosecond this!
- empiricus 4y agohttps://i.postimg.cc/1Xy6V5wb/oledburn.jpg https://i.postimg.cc/1Xy6V5wb/oledburn.jpg not the greatest picture (some reflections). should have used a gray background, but I used red because this color is the most affected. The burnin is mostly harmless, but the middle blob is very annoying; yellow parts of the image become greenish when they get to the middle of the screen.
- rixrax 4y agoI wonder if this is so 'generic' that e.g. AppleTV could add support for this? Take a photo of your TV with an iPhone when AppleTV is showing test image. And then the AppleTV output is calibrated appropriately to compensate for uneven backlight.
- millimeterman 4y agoThere are already some companies that let you calibrate your TV's colors with your phone camera. Apple TVs do it and adjust the output signal while some new Samsung TVs can do it and actually apply hardware calibration. Adjusting for unevenness in the same way seems potentially harder but doable.
- jimnotgym 4y agoIsn't this done with a ICC profile and a lookup table, in which case varying or across the screen does not sound feasible?
- bzzzt 4y agoCalibrating color with an iPhone is already a feature in tvOS, so correcting for local errors looks like a nice improvement in that direction.
- drumdude 4y agoI do this for a living. Sony digital cinema projectors use a type of LCD panel (SXRD) where the uniformity drifts over time. A special camera takes about 35 minutes to create a LUT to restore the projected image to a uniform white.
- jagged-chisel 4y agoIs that 35 minutes spent collecting input, or calculating the LUT?
- washadjeffmad 4y agoI imagine the process is Capture > Analyze > Generate > Apply > Repeat until all test images are within bounds and color matched, not stage 1: capture, stage 2: calculate, done. That's how it worked for our projection, at least.
- MayeulC 4y agoWell, you could capture once over a range of inputs to get a much better initial first guess too!
- GauntletWizard 4y agoI'd bet that they do some of that, too, but if you've got 100 images you want to get "perfect", it's probably faster to capture 10 of them uncalibrated, guess at the curve, capture those same 10 and 10 more calibrated with guess #1, and make a second guess, for a couple iterations than it is to capture all 100 images before any calibration and then all 100 again afterwards to confim, especially if there's any slop in the calibration curve.
- drumdude 4y agoThe camera handles everything automatically. It generates dynamic patterns on the screen and adjusts several times until it is satisfied with the result. It does this for red, green, blue, and white across 10IRE, 20IRE, ect up to 100IRE. The LUT is human readable and able to be uploaded and downloaded from the FPGA.
- Rygian 4y agoThis is almost identical to a problem I'm trying to solve, which is to turn a potato-quality picture of a sheet of paper into a clean scan, turning whatever levels of gray conform the paper background become a uniform #ffffff white. The obvious solutions (equalizing, converting to bitmap, …) don't work because what's white in the top left (say #ccc) is wildly different from what's white in the bottom right (say #888), and the shift is non-uniform due to potato-quality lighting. Glad I caught this post, I hope the solution can contribute to my problem (although I do not have a way to obtain a fixed ground truth — lighting will change for each picture.)
- daedbe 4y agoA common alternative solution in this case would be to use an adaptive thresholding technique such as Otsu’s method.
- komatsu 4y agoOtsu's method finds a single threshold value in an adaptive way. This can't solve a scanned document thresholding problem. btw: The iOS Notes app has quite a capable document scanning tool. It's cleverly hidden though.
- Rygian 4y agoI'm pretty happy with the scanning feature of Evernote, and I think there are some other nice apps in the Android app store, but my goal is to have a solution that is not captive (either to a specific vendor or to a SaaS solution).
- Rygian 4y agoThanks, I was not aware of Otsu's method. From the Wikipedia article, "Otsu's method performs badly in case of heavy noise, small objects size, inhomogeneous lighting and larger intra-class than inter-class variance." (Emphasis mine.) Right now my solution is at the stage of local thresholds with a configurable block size. Thanks to your pointer, I know now that my next steps will be to review the Niblack or the Bernsen algorithms. (Or just integrate ImageJ.)
- deleted 4y ago[deleted]
- ifqwz 4y agoThe quality of computer monitors is appalling - after buying and returning several monitors because of quality issues, I briefly considered doing this system-wide to fix colour uniformity problems. Eventually I chose to keep my old monitor instead. It has uniformity problems as well but it doesn't cost me $1000 extra to keep. But it's a damn shame that you can't throw enough money at manufacturers to make them make monitors without glaring QA problems. No matter how much you spend they sell you shit.
- nottorp 4y agoYou talking about mainstream "gaming" monitors? I'm just a programmer and gave up on those long ago. Getting entry level monitors targeted at graphic designers now. Namely Asus ProArt and I think Dell has similar stuff? They don't have 240 Hz and sub 0.01 ms response times though, so if you're buying your hardware based on bigger numbers in specs they won't do. They're probably not that great for actual designers either, but they're good enough for me.
- deergomoo 4y ago> Asus ProArt I’m using one of these and I’m very happy with it. Reasonable price, 75Hz, supports USB-PD + has its own USB ports so I can one-cable it with my work laptop. Most importantly they come factory calibrated. I consider reasonable colour reproduction important even though I only use it for programming. I stare at this thing for 8 hours a day, it needs to look good. In fairness I also have a 165Hz LG UltraGear gaming monitor, and the image quality is almost as good. My only complaint is the black levels and grey uniformity suck, but for someone who wants performance and quality it’s a decent option.
- nottorp 4y ago> I consider reasonable colour reproduction important When I got my first I wasted 2 hours rewatching a movie I had seen recently. Just because i didn't know it can look that good on a monitor :)
- kevingadd 4y ago
- londons_explore 4y agoGnome (Ubuntu, Linux) allows a custom shader to be applied to the whole desktop, including fullscreen apps. Here is an up to date fork with some example shaders: https://github.com/Hello1024/gse-shader https://github.com/Hello1024/gse-shader I use it to make sure a 'sensitive' pixel on my screen never turns on (it's a row of pixels which, if the difference between it and the pixels to the side have more than a certain difference in brightness, the whole screen fails - presumably due to a power supply fault in the column driver circuitry).
- EZ-Cheeze 4y agoI want to be able to edit anything on my screen in ways defined by me: "hide any faces" "put a red circle around any animal" "hide any word under three letters" http://zeroprecedent.com/lore/flipside.html http://zeroprecedent.com/lore/flipside.html
- londons_explore 4y agoWell now you have all the building blocks to implement it...
- EZ-Cheeze 4y agoI'll do it when I can just tell the computer to do it - maybe 2024 It will be interesting to rewatch movies with all the faces blanked out - they're eye-magnets that prevent you from noticing other details, for example in body language
- dirtyid 4y agoHow much does backlight drift over time? I have a few calibrated monitors with "uniform compensation" that has gotten decidely less uniform over the years.
- dr-detroit 4y ago
- infomax 4y agoI have the same idea each time I read something about backlights; How easy would be to place a cheap LCD at the back of the main screen and mirror the same output (in horizontally inverted mode)? Technically it might require synchronizing the frame latency differences between the two devices, but would such a hack improve the perceived quality?
- rzzzt 4y agoThe cheap LCD will probably not be able to produce enough light to brighten up the main display, and if the two panels are not of equal size, you will need to add some depth to the unit and come up with a projection system to "blow up" the light map to cover the entire image.
- t4h4 4y agoHisense Dual Cell might be what you're talking about.
- tim_hutton 4y agoI need this for my Android phone to compensate for a burnt-in image.
- jeroenhd 4y agoLike I said in another comment: https://github.com/LibreShift/red-moon https://github.com/LibreShift/red-moon with a more complicated pattern than just a single color may be all you need for many use cases. I don't think Android has an easy to use global shader system, so you'll be stuck with overlay windows and the incompatibility they have with banking apps/DRM crapware that locks you out of your own screen without root access.
- e-_pusher 4y agoWhat do you mean by incompatibility with banking apps? I am also interested in what it would take to do a global shader on Android.
- jeroenhd 4y agoAndroid malware has previously used overlays to hijack taps and do other shady stuff. Banking apps generally set a flag on their apps to prevent overlays and screenshots to prevent malware from reading the screen and tricking the user. Depending on your phone, this can have two effects: either the overlay is disabled automatically or the banking app detects the overlay and blocks access (ie to the PIN keypad). Not all banking apps do this, but the ones I've used do.
- pferdone 4y agoWhen I installed my DIY backlight solution (ala AmbiLight) to my TV I also had a red shift for some of my LEDs. But that was mainly due to the fact that not enough voltage reached the later LEDs on the strip to power green/blue because they need higher voltage than red.
- sorenjan 4y agoThis reminds me of the world cup in South Africa, where the spectators used vuvuzelas to make a unique sound that I found hard to endure. I figured it would be easy to use a notch filter to remove it, but I could never find a way to implement it it real or near real time, only as post processing.
- ermir 4y agoI remember the broadcasters also implemented this solution straight into the stream, the TV spectators did not have to do anything.
- causi 4y agoI wish you could do this with phones. I know more than one person stuck with a crappy pOLED screen with that terrible green tint to the bottom third of the panel.
- jeroenhd 4y agoBack in the day before operating systems copied the feature there were tons of Android apps that added a red shift on top of your screen by drawing over other applications (i.e. https://play.google.com/store/apps/details?id=com.csk.app.shader https://play.google.com/store/apps/details?id=com.csk.app.sh..., https://github.com/LibreShift/red-moon https://github.com/LibreShift/red-moon). This usually breaks/doesn't work with banking apps and other such secure contexts but for most apps that's probably fine. Sounds like you should be able to do this by just modifying Red Moon to draw a more complex overlay. If the entire screen is affected equally, the stock app may just be all you need!
- mordae 4y agoIf only my screen had issues with the picture. Instead, its internal clock lags behind the source, causing audio to be ever more delayed. It resets after a standby/wake-up cycle, though. It's annoying to restart TV after about 3 hours, though.
- TaylorAlexander 4y agoI have a similar issue when using my raspberry pi as a Steam Link client for gaming. After a while the sound starts to get choppy, and this problem gets worse and worse until sound breaks entirely. But video still works. If I kill the game and re-start the steam link client the issue resets. Feels like some kind of clock drift, but in this case it seems to be affecting the ability to decode a digital stream. It’s a very strange issue!
- dmos62 4y agoPretty cool, but you could instead replace the LEDs.
- 1-6 4y agoSourcing the LEDs, disassembling the panel, and re-soldering each LED is not scalable. The solution mentioned in this article can be open-sourced and distributed to the masses.
- kasabali 4y agoLeds are sold as plug in bars. there's no soldering involved. taking out the panel safely is tricky, though.
- MrBuddyCasino 4y agoI did this once, was pretty easy. The backlight color had turned completely blue. The strips can be bought as spare parts and swapped easily without any soldering. The hard part is finding out the parts number of the LED strip for the particular TV.
- ludwigvan 4y ago> I haven't yet watched a whole movie with the new color Love the hacker mindset. Once the problem is solved, the underlying issue loses its appeal :)
- 1-6 4y agoThis technique is cool but it seems like it would cause poorly performing pixels to get worse over time. Would it be possible to create an inverted image that would correct the backlight by burning in the bright areas? It would seem like a more difficult task to accomplish because pixel burn-in time is a variable that’s hard to measure.
- Tade0 4y agoI damaged my laptop's screen by leaving it running at 100% CPU with the lid closed for too long(not my intent - that was "sleep mode"). The adhesive keeping the LCD layers came off, creating a diagonal striped clouding pattern. I was meaning to do something similar to the author[0], but couldn't make time and just used this opportunity to buy an external screen. I'm glad someone put in the work so that now I may be able to use my original screen again. [0] My most desperate idea was to run a RDP session locally and process the displayed image. Seemed simpler than trying to modify the content of the screen directly.
- dylan604 4y ago>The adhesive keeping the LCD layers came off, creating a diagonal striped clouding pattern. now this sounds like something my younger me would be interested in seeing. what kind of special effect look can you get from that by running different colors/patterns through that stripe? obviously, the only way to make it usable would be to record the screen externally, but it would not be the first time someone (ahem,me) pointed a camera at a screen for sfx/vfx. back in the old analog days, i would by crts specifically because of their "issues".
- jerf 4y ago"The adhesive keeping the LCD layers came off, creating a diagonal striped clouding pattern." Oh, is THAT what that is. I have an ancient laptop where the screen is failing that way. Was trying to figure out what on Earth could produce perfectly diagonal streaks in an LCD! Though I'm still not quite sure how that connects; is the tape oriented diagonally?
- Tade0 4y ago> Oh, is THAT what that is. That is at least the explanation I got on some obscure forum where someone else had a similar problem and it was caused by heat. > is the tape oriented diagonally? Worse - it's a multi layer sandwich of filters etc. which need to be perfectly aligned for a clear image: https://www.azom.com/images/Article_Images/ImageForArticle_20878_16349024182006943.jpg https://www.azom.com/images/Article_Images/ImageForArticle_2... Funny thing is in my case the hottest part actually remained ok - it's the surroundings that got, for lack of a better word, ruffled. I've seen videos of Indian repair men disassembling a panel and putting it together to fix such issues, but IIRC only the back light ever came off.
- Arrath 4y agoI wonder if something similar could be used to keep my TV from ratcheting up the overall brightness/backlighting whenever a subtitle is on screen. The constant ramping of brightness is rather distracting.
- robomartin 4y agoI have over a decade of experience in the design and manufacturing of advanced display systems and ran into precisely this problem around twenty years ago. At that time we experimented with and developed pretty much exactly this type of compensation; implemented on custom FPGA-based real time image processing boards. Just looking at the pictures, this does not look like a backlight problem but rather degradation of the liquid crystal layer. Yes, sure, there's interaction between the two. The purple shift, however, is very much something that was happening twenty years ago with some liquid crystal chemistries. Back then you could definitely tell which panels were not using high quality LC fluid. Apple had this issue with their second generation HD Cinema Display product (the first aluminum enclosure, 24 in, 1920 x 1200 model). Some percentage of them would turn purple. I don't have Apple's stats on this. From my own experience the number fluctuated between 15% to as much of 50% of the panels in a batch going bad after moderate burn-in. Having said all that, this type of compensation or fix might be OK for a TV at home or the computer monitor on the desk of a doctor or even a coder. Not good --at all-- for someone doing critical color work, such as a graphic artist. The reason is that you introduce spatial nonlinearities and differential errors. The simplest way to put it is that you no-longer have the full 256 (or 1024) steps per R, G, B channel between 0 and 100%. Hypothetically, you might have 256 for green and, say, 200 for red and 175 for blue. This means that the path from black to white is no longer monotonic. You can have serious color rendering errors through the color space. For example, it might be impossible to make an accurate 50% gray because you just don't have the RGB values needed to accomplish that. Worse yet, everything between 47% and 53% gray might look exactly the same. You can also introduce serious gamma distortion. If, on top of that, you add a temporal element (video), well, it can be a real mess. The real solution (for critical workflows) is to replace the panel. BTW, this can apply to RGB OLED as well.