+ Reply to Thread
Results 1 to 10 of 59
09-12-2012 02:17 AM #1
Home-made Arduino scanning LED backlight to simulate 480Hz or 960Hz in a 120Hz LCD?
EDIT: This is an OLD POST. Longer Story Here. This was created before Blur Busters Blog -- www.blurbusters.com
Goal: Eliminate motion blur on an LCD, and allow LCD to approach CRT quality for fast-motion.
Scanning backlights are used in some high end HDTV's (google "Sony XR 960" or "Samsung CMR 960"). These high end HDTV's simulate 960 Hz using various techniques, including scanning backlights (sometimes also called "black frame insertion"). The object of this is to reduce motion blur greatly by pulsing (flickering) the LCD -- scanning the backlight (flicker), like a CRT would scan the phosphor (flicker) These home theater HDTV's are expensive, and scanning backlights are not really taken advantage of (yet) in desktop computer monitors. Although there are diminishing returns beyond 120Hz, it is worth noting that 120Hz eliminates only 50% of motion blur versus 60Hz, however, 480Hz eliminates 87.5% of motion blur versus 60Hz. Scanning backlights can simulate the motion-blur reduction of 480Hz, without further added input lag, and without needing to increase actual refresh rate beyond the native refresh rate (e.g. 120Hz). Your graphics card would not need to work harder.
I have an idea of a home-made scanning backlight, using an Arduino project, some white LED strips, and a modified monitor (putting Arduino-driven white LED strips behind the LCD glass)
Most LCD's are vertically refreshed, from top to bottom.
The idea is to use a homemade scanning backlight, by putting the LCD glass in front of a custom backlight driven by an Arduino project:
1. Horizontal white LED strip segments, put behind the LCD glass. The brighter, the better! 4 or 8 strips.
2. Arduino controller (to control LED strip segments).
3. 4 or 8 pins on Arduino connected to a transistor connected to the LED strip segments.
4. 1 pin connected to vertical sync signal (could be software such as a DirectX program that relays the vertical sync state, or hardware that detects vertical sync state on the DVI/HDMI cable). The vsync signal ideally needs to be precise, this might still be possible to do over USB, if you can make it sub-millisecond precision (or use timecoding on the signal to compensate for the USB timing fluctuations) If done using software signalling over USB, you can eliminate this pin.
The Arduino controller would be programmed to flash the LED strip on/off, in a scanning sequence, top to bottom. If you're using a 4-segment scanning backlight, you've got 4 vertically stacked rectangles of backlight panel (LED strips), and you flash each segment for 1/4th of a refresh. So, for a 120Hz refresh, you'd flash one segment at a time for 1/480th of a second.
The Arduino would need to be adjustable to adapt to the specific refresh rate and the specific input lag specific to the monitor:
- Refresh rate automatically configured over the USB
- Configurable on/off setting, to stop the flicker when you aren't doing fast-motion stuff (FPS gaming, video camera playback, etc.)
- Upon detecting signal on the vsync pin the Arduino would begin the flashing sequence to the first segment. This permits synchronization of the scanning backlight to the actual output.
- An adjustment would be needed to compensate for input lag (either via a configurable delay or via configuring the flash sequence on a different segment than the first segment.)
- Configurable pulse length, to optimize image quality with the LCD.
- Configurable panel flash latency and speed (to sync to the LCD display's refresh speed within a refresh) -- this would require one-time manual calibration, via testing for elimination of tearing/artifacts. For example, a specific LCD display might only take 1/140th of a second to repaint a single 120Hz frame, so this adjustment allows compensation for this fact.
- Configurable number of segments to illuminate -- e.g. illuminate more segments at a time, for a brighter image at trade-off (e.g. simulating 240Hz with a double-bright image, by lighting up two segments of a scanning backlight rather than 480Hz)
- If calibrated properly, no extra input lag should be observable (at most, approximately 1-2ms extra, simply to wait for pixels to fully refresh before re-illuminating backlight).
- No modifications of computer monitor electronics is necessary; you're just replacing the backlight with your own, and using the Arduino to control the backlight.
- Calibration should be easy; a tiny computer app to be created -- just a simple moving test pattern and a couple or three software sliders -- adjust until motion looks best.
Total cost: ~$100-$150. Examples of parts:
- $35.00 (RadioShack) -- Arduino Uno Rev 3. You will need an Arduino with at least 4 or 8 output pins and 1 input pin. (e.g. most Arduino)
- $44.40 (DealExtreme) -- LED tape -- White LED's 6500K daylight LED's, 50 watts worth (5meter of 600x3528 SMD LED 6500K).
- Plus other appropriate components as needed: power supply for LED's, wire, solder, transistors for connecting Arduino pins to the LED strips, resistors or current regulators or ultra-high-frequency PWM for limiting power to the LED's, etc.
LED tape is designed to be cut into segments, (most LED tape can be cut in 2 inch increments). Google or eBay "White LED tape". A 5 meter roll of white LED tape is 600 LED's at a total 50 watts, and this is more than bright enough to illuminate a 24" panel in 4 segments, or can be doubled-up. These LED tape is now pretty cheap off eBay, sometimes as low as under $20 for chinese made rolls, but I'd advise 6500K full-spectrum daylight white LED's with reasonably high CRI, or color quality will suffer. Newer LED tape designed for accent lighting applications, would be quite suitable, though you want it daylight white rather than warm white or cold white -- to match the color of a typical computer monitor backlight. For testing purposes, cheap LED tape will do. You need extra brightness to compensate for the dark time. A 4-segment backlight that's dark 75% of the time, would ideally need to be 4 times brighter than the average preferred brightness setting of an always-on backlight. For even lighting, a diffuser (e.g. translucent plastic panel, wax paper, etc) is probably needed between the LED's and the LCD glass.
This project would work best with 120Hz LCD panels on displays with fast pixel responses, rather than 60Hz LCD panels, since there would not be annoying flicker at 120Hz (since each segment of the scanning backlight would flicker at 120Hz instead of 60Hz), and also that the pixel decay would need to be quick enough to be virtually completed
Scanning backlight is a technology already exists in high end home theater LCD HDTV's (960Hz simulation in top-model Sony and Samsung HDTV's -- google "Sony XR 960" or "Samsung CMR 960"), and most of those include motion interpolation and local dimming (Turning off LED's behind dark areas of screen), in addition to scanning backlight. We don't want input lag, so we skip the motion interpolation. Local dimming is complex to do cheaply. However, scanning backlight is rather simple -- and achievable via this Arduino project idea. It would be a cheap way to simulate 480Hz (or even 960Hz) via flicker in a 120Hz display, by hacking open an existing computer monitor.
Anybody interested in attempting such a project?
EDIT: This is an OLD POST. Longer Story Here. This was created before my Blur Busters Blog -- www.blurbusters.com
Last edited by mdrejhon; 12-18-2013 at 09:18 PM.
09-12-2012 04:43 PM #2
09-12-2012 05:00 PM #3
Just...wow, this is definitely interesting..What's cookin, good lookin?
09-12-2012 08:33 PM #4
- Join Date
- May 2012
I dont understand how flashing the backlight really fast will help with motion smoothness. The pixel's and panel can only refresh so fast, and flashing the backlight (even if you could set it up perfectly) 4 times per panel refresh will still only make the image be refreshed that one time.
09-12-2012 10:39 PM #5
- Join Date
- May 2012
Might help to clear up some confusion if you'd refer to it as persistence of vision, instead of motion blur.
By having the panel lit for only a fraction of a frame, the image still persists after it has gone black due to persistence of vision, but it won't overlap onto the next frame. It creates a cleaner image. There's a wikipedia page if people want more information. Nice project and concept
09-13-2012 08:05 AM #6
For example, a single 1/960th second flash of backlight (behind already-refreshed LCD pixels), once every refresh. So if you're flashing it 120 times a second at 120Hz, that's a grand total of 120/960th of a second, so the LCD pixel is dark 7/8ths of the time, or 87.5% of the time. This leads to an 87.5% reduction in motion blur!
When the backlight is turned off, the slow response of the LCD no longer matters; as long as the LCD pixels are able to refresh faster than the refresh rate, you simply flash the backlight when the LCD pixel is stable (e.g. after a few milliseconds, it's pretty stable now). The way LCD's work nowadays is pixels refresh from one color to another color in approximately 2 to 5 milliseconds, which is faster than the 8 milliseconds of a single 1/120th second frame. That leaves an extra 3 milliseconds of time budget (8 minus 5 equals 3), whereupon you can flash the backlight. A 1/960th second flash would be just barely over a millisecond, easily fitting in that time budget.
Yes, yes, you need a very bright backlight, but today's LED's have become cheaper and brighter; making this practical. For many high-quality modern LED backlit displays (not the cheap ones), the brightest setting often too bright in a typical darkened computer room and you often have to turn the brightness down. Double up the LED's again, and you have enough excess brightness for an adequately bright image during this situation.
For more information, see http://hardforum.com/showthread.php?t=1716564
Display manufacturers including BENQ/ViewSonic tried to do this back in the 60Hz era with CFL backlights:
However, this doesn't reduce motion blur very much. To greatly reduce motion blur, you really need at least a 75%:25% dark:bright cycle, or a 87.5%:12.5% dark:bright cycle, and for that, today's improved LED's permits incredibly bright backlights. It's possible to do 100 watts worth of LED's for less than $100 (as an example, see my link in my OP for 50 watts of LED's for under $50) -- sufficiently bright enough for a 90%:10% bright:dark cycle -- small enough a premium to be included in a "premium LCD monitor with CRT-quality motion" display.
Last edited by mdrejhon; 09-13-2012 at 08:15 AM.
09-13-2012 11:43 AM #7
A scanning backlight, under a high-speed camera, would look almost the same as a CRT, like this:
YouTube of a high-speed camera on CRT scanning
This is a 60Hz CRT, and you notice that phosphor decay is about 2 milliseconds (2ms out of a 16ms refresh, or 1/8th screen height of phosphor still illuminated brightly). An eight-segment high speed scanning backlight (2ms flash per segment), illuminating in sequence, from top to bottom, would look similiar to a CRT in this very same high-speed video. Even better, would 120Hz (instead of 60Hz) and use 1ms flash per segment (instead of 2ms). You'll need a very bright backlight to compensate for the long dark time (dark 7/8ths of the time, bright 1/8ths of the time). You can make the scanning backlight adaptive to the current refresh, so that the scanning backlight would work at any refresh all the way from 60Hz through 120+Hz, though at the cost of more motion blur at lower refreshes (e.g. 1/480sec flash for 60Hz, gradually reducing to 1/960sec flash for 120Hz), to achieve the same image brightness.
The shorter the illumination (for a given area of LCD), the less motion blur, thanks to the persistence of vision. If the LCD pixel is dark 7/8ths of the time (thanks to backlight being turned off 7/8ths of the time, invisibly waiting for LCD pixels to refresh), you reduce 7/8ths of the motion blur -- 87.5% reduction in motion blur.
Again, you do a high-speed illumination only once per frame. You could do the whole backlight all at once, but that doesn't take into account of the LCD refresh. You really want to do high-speed flash the backlight only behind an already-refreshed portion of LCD, while waiting for different part of LCD to finish refreshing. Thus, why a scanning backlight is better than a whole-backlight strobe.
Last edited by mdrejhon; 09-13-2012 at 12:46 PM.
09-13-2012 12:09 PM #8
Not sure if hyper ever took apart one of these monitors (I know scribby did), but the last time I took apart a monitor removing the backlights looked pretty complicated. I guess it is panel specific. Might be easier with CCFL backlights? (shouldn't matter that you replace them with LED should it?)---i5-2500k @ 4.5 on air, Gigabyte GTX670, 8GB GSkill RAM, 240GB SSD---
09-13-2012 12:36 PM #9
A monitor manufacturer would need to source the LCD's without the backlights, and that could cost differently (maybe even more, due to lower quantities), in order to keep panel warranties. Large LCD's (e.g. 40" HDTV's) are still often sold by factories without the backlights included; leaving the TV manufacturer to build their backlight. Unfortunately, for desktop monitor backlights, the panel makers have often integrated LED backlights into them, much like for laptop LCD's. So this can complicate the BOM a little; especially if a small-time monitor maker needs to purchase a small quantity of panels without backlights (at a higher price-per-panel), if it's not a standard part currently ordered by monitor makers for 24" or 27" displays.
Alas, perhaps a question best directly asked to the right people, such as HyperMatrix / Scribber / Samsung / etc.
For the scanning backlight, prototyping the backlight can be cheap -- you could even just use inexpensive LED strips for the backlight; 10 meters of LED tape (1,200 LED's) cost less than $100 and that amount of brightness is sufficient for a 8-segment scanning backlight that's dark almost 90% of the time (7 segments dark, 1 segment illuminated at a time, consuming only 15 watts at any given time, which happens to also be the average monitor backlight wattage for a brand new 24" monitor at comfortable brightness adjustment, anyway). Google or eBay "white LED tape" or "white LED strip" on for examples. I have purchased these for accent lighting, and they are definitely far more bright than necessary (Even just $40 of this -- 600 LED's -- will light up a 24" LCD more brightly than most backlights). You want 6500K daylight white (not cold white or warm white), of sufficiently high color rendering index (at least CRI 80 or better), to produce a good-quality LED backlight. LED strips are just common surface-mounted 5050 LED's on a flexible strip that can be cut-up in 2-inch increments, that can easily be mounted in several rows to a plywood sheet as a prototype backlight, with translucent plastic sheet in front as a diffuser. The amount of LED's found in these LED strips (600 or 1200) ensures that backlighting is completely even; potentially more even than the backlights normally found in many monitors -- you're actually BACKlighting (better) rather than edge-lighting. A cheap $35 Arduino is all I need to operate the scanning backlight (apart from appropriate power supply, a transistor for each segment of the scanning backlight connected to each Arduino output, and current-limiters for the LED's -- only a few dollars extra). The large number and brightness of LED's ensures a bright image, even when 90% of the LED's are dark at any given time, in a high-speed CRT-quality scanning backlight. When actually manufactured in a monitor, it may add almost an extra centimeter thickness to a monitor, but that's the price of gaining CRT-quality motion in a LCD monitor.
Last edited by mdrejhon; 09-13-2012 at 01:05 PM.
09-13-2012 01:36 PM #10
- Join Date
- Apr 2012
Would this reduce motion blur in the sense that it is illuminated less time? I'm not quite sure how else it would be, since the motion blur ("ghosting") is in the pixel elements regardless of the backlight...Ubuntu 12.04 on: CPU: i7 3770K @3.5GHz w Corsair H100, RAM: 32Gb Corsair Dominator 1600,
GPU: Asus nVidia GTX680. TFT: Yamakasi Catleap 27" @120Hz