DIY Backlight Strobing [must read for experimenters!]

Advanced display talk, display hackers, advanced game programmers, scientists, display researchers, display manufacturers, vision researchers. The masters on Blur Busters.

Re: DIY Backlight Strobing [must read for experimenters!]

Postby blargg » 22 Sep 2014, 23:33

I did try a custom modeline (on Linux here, Ubuntu 12.04) but didn't have a lot of luck. The monitor kept interpreting the added front/back porch as part of the picture. I should experiment more with it. I notice that the monitor indeed can run at 1024x768 at 75Hz, so it can do a quicker LCD panel scan.

As for the darn overdrive, I'm thinking of getting one of these two universal lvds driver boards and kicking the Acer signal board out of the monitor completely. I figure these will either not do overdrive (since it can be panel-specific I imagine), or have some control over it.

If you have control over strobe timing -- then you actually want to strobe a little bit late; e.g. turn on after the vertical blanking interval already started, and turn off after the vertical blanking interval already ended.


Hah, that's almost what I arrived at empirically, 400us delay after the PWM pulse at the beginning of the frame.

That is quite convenient; so it's simply modding the PWM to do one pulse per refresh. Your next challenge is to try to shift the phasing of the PWM pulses; see if you can make the first PWM pulse overlap the end of the blanking interval


I've gotten this. The challenge was to write the code without interrupts, which I've achieved. It's all software-based bit-banging right now, so trivial to move to different AVR chips. The backlight pulse can start at any offset and be any duration, without affecting the code's detection of the next frame's PWM pulses. I'm pleased now.

I downloaded some 60fps game trailers and they are absolutely gorgeous. I even did an experiment with a 30Hz strobe. Yes, this was torture to look at, and I can say for sure that I don't have any photosensitivity or epilepsy risk. I was surprised how smooth 30fps YouTube videos looked, especially ones of sports events with a short shutter. Motion looked very fluid, and nothing lost its detail as my eyes followed it. I always thought that 30fps was inherently blurry and not smooth. It was mostly the double-strobe one got on a CRT that guaranteed it no matter the camera's shutter speed.

Is there a way to have the electronics let you do it easily, perhaps via inserting an adjustable trigger delay circuit?


These configure the strobe pulse time offset from VBL, and duration range, in microseconds:

Code: Select all
pulse_offset = CLOCK_US( 400 ),
pulse_min = CLOCK_US( 1000 ),
pulse_max = CLOCK_US( 5000 ),


The code effectively runs three concurrent tasks: measure each PWM cycle's duty (to read OSD brightness and adjust pulse width), notice the abnormal cycle that signals vsync begin and schedule the next strobe almost a frame from now, and turn the strobe on/off at the previously-set time.

BTW, 1ms strobe length is not even the final frontier! At 3000 pixels/second, I am able to visually tell apart 0.5ms and 1.0ms which is rather impressive.

Interesting! I have mildly considered upping the LED driver current, as they can be pulsed at twice the normal current if the duty cycle is less than something like 20%. 1ms is a decent brightness, and 0.5ms is acceptable though dim (I fortunately prefer my monitors fairly dim so can enjoy a shorter strobe duration).

EDIT: An album of more images of the hardware setup and the signal timing.
blargg
 
Posts: 66
Joined: 20 Sep 2014, 03:59

Re: DIY Backlight Strobing [must read for experimenters!]

Postby flood » 24 Sep 2014, 03:45

has anyone looked into the effectiveness of pulse shaping mentioned here: http://www.blurbusters.com/faq/creating ... blerefresh

?
flood
 
Posts: 880
Joined: 21 Dec 2013, 01:25

Re: DIY Backlight Strobing [must read for experimenters!]

Postby Chief Blur Buster » 25 Sep 2014, 18:21

blargg wrote:I did try a custom modeline (on Linux here, Ubuntu 12.04) but didn't have a lot of luck. The monitor kept interpreting the added front/back porch as part of the picture.

That is normal. You need to subtract from front porch and add to back porch (or vice versa) to move the picture upwards/downwards. Determine which direction occurs. If the picture is 56 pixels too low, subtract 56 from one value and add 56 to the other. IIRC, I believe it's back porch that shifts the picture downwards, but I need to doublecheck.

blargg wrote:Interesting! I have mildly considered upping the LED driver current, as they can be pulsed at twice the normal current if the duty cycle is less than something like 20%. 1ms is a decent brightness, and 0.5ms is acceptable though dim (I fortunately prefer my monitors fairly dim so can enjoy a shorter strobe duration).

You can usually do 3-5x current safely for shorter pulses, e.g. 1ms and shorter. Many commercial strobed monitors actually do the boost current to compensate for the short pulses. Cree has a good document on pulse current:
http://www.cree.com/~/media/Files/Cree/ ... urrent.pdf
Head of Blur Busters - BlurBusters.com | TestUFO.com | Follow @BlurBusters on Twitter!
User avatar
Chief Blur Buster
Site Admin
 
Posts: 3174
Joined: 05 Dec 2013, 15:44

Re: DIY Backlight Strobing [must read for experimenters!]

Postby Chief Blur Buster » 25 Sep 2014, 18:28

flood wrote:has anyone looked into the effectiveness of pulse shaping mentioned here: http://www.blurbusters.com/faq/creating ... blerefresh

Pulse shaping tests can be done with an Ardiuno and an LED. I certainly welcome experimenters to try.

I anticipate that it would be practical beyond a certain flicker frequency, provided certain criteria is met (maximum time between pulses, trailing average brightness, and harmonic flicker effects within trailing average brightness, etc). After all, a blackbody radation device (incandescent bulb, sun) is actually generating, instantaneously, a fairly random number of photons. One femtosecond there is more photons than the next femtosecond, and so on. But it all averages out to a constant brightness. So it's already known that random flicker (at sufficient frequencies) can look constant. The trick is lowering the frequencies involved, as low as possible, without seeing the resulting flicker during normal gameplay.
Head of Blur Busters - BlurBusters.com | TestUFO.com | Follow @BlurBusters on Twitter!
User avatar
Chief Blur Buster
Site Admin
 
Posts: 3174
Joined: 05 Dec 2013, 15:44

Re: DIY Backlight Strobing [must read for experimenters!]

Postby flood » 25 Sep 2014, 20:21

to anyone trying pulse shaping: keep in mind that the visibility of flickering depends on the field of view and the intensity of light. for example for my 60hz crt, a white cursor on black background does not show flickering. but a white screen at 60hz shows very obvious flickering


also fun fact, incandescent lights flicker at 120hz due to AC: https://www.youtube.com/watch?v=9HUrYoqxQpw
flood
 
Posts: 880
Joined: 21 Dec 2013, 01:25

Re: DIY Backlight Strobing [must read for experimenters!]

Postby blargg » 25 Sep 2014, 21:42

Chief Blur Buster wrote:
blargg wrote:The monitor kept interpreting the added front/back porch as part of the picture. That is normal. You need to subtract from front porch and add to back porch (or vice versa) to move the picture upwards/downwards.


Heh, I happened to mess with it earlier today and figured it out as you describe. I couldn't get much past 1200 since the monitor was interpreting it as 1600x1200. I still was able to add about 10% to vblank, though little improvement, since overdrive is the main culprit.

Oh, I think I get it. I figured it somehow differentiated between FP/BP in the vertical axis and the image, perhaps by FP/BP always being black. But I take it it "knows" merely by its presets, e.g. ignore 5 lines after vsync pulse, then show next 1080 lines, then ignore until next vsync. Basically it's indifferent to the content of lines, just relation to sync pulse, so one must manually move the image,

I'm frustrated about the overdrive. Apparently this Realtek all-in-one chip is common and at the heart of this monitor (e.g. RTD2482RD), but there's little data. If I can find out how to dump the flash, I might be able to RE the code (8051 apparently) and find out how to disable overdrive. They even have a special version of this chip for overdrive, since it naturally requires a whole-frame buffer. The non-overdrive version proves that this chip series is nice nice in that it does line-by-line conversion, so very little lag (the OD version shouldn't introduce any more lag). The overdrive has to be disablable, at the very least by zeroing its LUT. No docs on the chip, as it's fairly new and the maker likes to keep its operation secret from all except its customers.

I saw another cheap used Dell LED monitor similar to this one (same Realtek controller chip series) but didn't see any mention of being able to disable overdrive, so I guess I won't be getting it and trying to mod it.
blargg
 
Posts: 66
Joined: 20 Sep 2014, 03:59

Re: DIY Backlight Strobing [must read for experimenters!]

Postby pneu » 01 Mar 2015, 12:17

What about doing it with active shutter glasses?
pneu
 
Posts: 25
Joined: 01 Mar 2015, 12:12

Re: DIY Backlight Strobing [must read for experimenters!]

Postby Chief Blur Buster » 08 Mar 2015, 14:51

pneu wrote:What about doing it with active shutter glasses?

Yep. Shutter glasses can lower persistence.
There's already a couple of interesting threads on this :)

viewtopic.php?f=7&t=253
viewtopic.php?f=7&t=810
Head of Blur Busters - BlurBusters.com | TestUFO.com | Follow @BlurBusters on Twitter!
User avatar
Chief Blur Buster
Site Admin
 
Posts: 3174
Joined: 05 Dec 2013, 15:44

Re: DIY Backlight Strobing [must read for experimenters!]

Postby sonvu989 » 23 Oct 2015, 20:14

blargg wrote:I did try a custom modeline (on Linux here, Ubuntu 12.04) but didn't have a lot of luck. The monitor kept interpreting the added front/back porch as part of the picture. I should experiment more with it. I notice that the monitor indeed can run at 1024x768 at 75Hz, so it can do a quicker LCD panel scan.

As for the darn overdrive, I'm thinking of getting one of these two universal lvds driver boards and kicking the Acer signal board out of the monitor completely. I figure these will either not do overdrive (since it can be panel-specific I imagine), or have some control over it.

If you have control over strobe timing -- then you actually want to strobe a little bit late; e.g. turn on after the vertical blanking interval already started, and turn off after the vertical blanking interval already ended.


Hah, that's almost what I arrived at empirically, 400us delay after the PWM pulse at the beginning of the frame.

That is quite convenient; so it's simply modding the PWM to do one pulse per refresh. Your next challenge is to try to shift the phasing of the PWM pulses; see if you can make the first PWM pulse overlap the end of the blanking interval


I've gotten this. The challenge was to write the code without interrupts, which I've achieved. It's all software-based bit-banging right now, so trivial to move to different AVR chips. The backlight pulse can start at any offset and be any duration, without affecting the code's detection of the next frame's PWM pulses. I'm pleased now.

I downloaded some 60fps game trailers and they are absolutely gorgeous. I even did an experiment with a 30Hz strobe. Yes, this was torture to look at, and I can say for sure that I don't have any photosensitivity or epilepsy risk. I was surprised how smooth 30fps YouTube videos looked, especially ones of sports events with a short shutter. Motion looked very fluid, and nothing lost its detail as my eyes followed it. I always thought that 30fps was inherently blurry and not smooth. It was mostly the double-strobe one got on a CRT that guaranteed it no matter the camera's shutter speed.

Is there a way to have the electronics let you do it easily, perhaps via inserting an adjustable trigger delay circuit?


These configure the strobe pulse time offset from VBL, and duration range, in microseconds:

Code: Select all
pulse_offset = CLOCK_US( 400 ),
pulse_min = CLOCK_US( 1000 ),
pulse_max = CLOCK_US( 5000 ),


The code effectively runs three concurrent tasks: measure each PWM cycle's duty (to read OSD brightness and adjust pulse width), notice the abnormal cycle that signals vsync begin and schedule the next strobe almost a frame from now, and turn the strobe on/off at the previously-set time.

BTW, 1ms strobe length is not even the final frontier! At 3000 pixels/second, I am able to visually tell apart 0.5ms and 1.0ms which is rather impressive.

Interesting! I have mildly considered upping theLED driver current, as they can be pulsed at twice the normal current if the duty cycle is less than something like 20%. 1ms is a decent brightness, and 0.5ms is acceptable though dim (I fortunately prefer my monitors fairly dim so can enjoy a shorter strobe duration).

EDIT: An album of more images of the hardware setup and the signal timing.

thank you!
sonvu989
 
Posts: 1
Joined: 23 Oct 2015, 20:04

Previous

Return to Area 51: Display Science, Research & Engineering

Who is online

Users browsing this forum: No registered users and 1 guest