Kodi Community Forum
Req [3D] DLP Projector and RPi2 - frame-sequential - Printable Version

+- Kodi Community Forum (https://forum.kodi.tv)
+-- Forum: Support (https://forum.kodi.tv/forumdisplay.php?fid=33)
+--- Forum: General Support (https://forum.kodi.tv/forumdisplay.php?fid=111)
+---- Forum: Raspberry Pi (https://forum.kodi.tv/forumdisplay.php?fid=166)
+---- Thread: Req [3D] DLP Projector and RPi2 - frame-sequential (/showthread.php?tid=228484)

Pages: 1 2 3


RE: [3D] DLP Projector and RPi2 - frame-sequential - popcornmix - 2015-06-01

(2015-06-01, 19:53)ivota Wrote: Openelec, kodi player, 2d movie, enable 3d (Side by Side) or disable = No flickering. look just like watching the 2D movie. I see clear screen, always.

Quote:No. Don't enable 3D at all



RE: [3D] DLP Projector and RPi2 - frame-sequential - ivota - 2015-06-01

I tested.
2d movie played in kodiplayer, wear glasses, movie looks like watching the 2D movie (video is a bit bright).
It seem there is no differences between wear glasses or not.
That is it.


RE: [3D] DLP Projector and RPi2 - frame-sequential - popcornmix - 2015-06-01

(2015-06-01, 20:16)ivota Wrote: 2d movie played in kodiplayer, wear glasses, movie looks like watching the 2D movie (video is a bit bright).
It seem there is no differences between wear glasses or not.

Are the shutters flickering like they do when watching 3d?


RE: [3D] DLP Projector and RPi2 - frame-sequential - ivota - 2015-06-01

Quote:Are the shutters flickering like they do when watching 3d?
No


RE: [3D] DLP Projector and RPi2 - frame-sequential - da-anda - 2015-06-02

I'm a little concerned that in your screenshots the movie was not rendered SBS but only monoscopic while UI was in SBS. Is this the case for all 3D movies you play or did this only happen with The Hobbit?


RE: [3D] DLP Projector and RPi2 - frame-sequential - sarbes - 2015-06-02

I took a quick look at the source code of Bino. The 3D information is encoded in the pixel data itself. It seems that they draw a white line at the lowest (?) row of the left (?) picture.* This is the same for the TAB and SBS format.

Here is the relevant code (video_output.cpp):
Code:
if (_render_params.fullscreen() && _render_params.fullscreen_3d_ready_sync()
            && (_render_params.stereo_mode() == parameters::mode_left_right
                || _render_params.stereo_mode() == parameters::mode_left_right_half
                || _render_params.stereo_mode() == parameters::mode_top_bottom
                || _render_params.stereo_mode() == parameters::mode_top_bottom_half
                || _render_params.stereo_mode() == parameters::mode_alternating)) {
        /* DLP 3-D Ready Sync: draw colored lines to allow the projector
         * to identify the stereo mode and the left / right views automatically. */
        const uint32_t R = 0xffu << 16u;
        const uint32_t G = 0xffu << 8u;
        const uint32_t B = 0xffu;
        int width = full_display_width();
        int height = full_display_height();
        // Make space in the buffer for the pixel data
        size_t req_size = width * sizeof(uint32_t);
        if (_3d_ready_sync_buf.size() < req_size)
            _3d_ready_sync_buf.resize(req_size);
        if (_render_params.stereo_mode() == parameters::mode_left_right
                || _render_params.stereo_mode() == parameters::mode_left_right_half) {
           uint32_t color = (display_frameno % 2 == 0 ? R : G | B);
           for (int i = 0; i < width; i++)
               _3d_ready_sync_buf.ptr<uint32_t>()[i] = color;
           glWindowPos2i(0, 0);
           glDrawPixels(width, 1, GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV, _3d_ready_sync_buf.ptr());
        } else if (_render_params.stereo_mode() == parameters::mode_top_bottom
                || _render_params.stereo_mode() == parameters::mode_top_bottom_half) {
           uint32_t color = (display_frameno % 2 == 0 ? B : R | G);
           for (int i = 0; i < width; i++)
               _3d_ready_sync_buf.ptr<uint32_t>()[i] = color;
           glWindowPos2i(0, 0);
           glDrawPixels(width, 1, GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV, _3d_ready_sync_buf.ptr());
           glWindowPos2i(0, height / 2);
           glDrawPixels(width, 1, GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV, _3d_ready_sync_buf.ptr());
        } else if (_render_params.stereo_mode() == parameters::mode_alternating) {
           uint32_t color = (display_frameno % 4 < 2 ? G : R | B);
           for (int i = 0; i < width; i++)
               _3d_ready_sync_buf.ptr<uint32_t>()[i] = color;
           glWindowPos2i(0, 0);
           glDrawPixels(width, 1, GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV, _3d_ready_sync_buf.ptr());
        }
    }

I can't code that well, but I would like to give some support if someone wants to implement this.

Edit:
*There is an syncronisation line in every field. It will change color for every new left field.

The sync line goes like this:
Code:
Frame | View  | Color
0     | Left  | #00FF00
1     | Right | #00FF00
2     | Left  | #FF00FF
3     | Right | #FF00FF
4     | Left  | #00FF00
5     | Right | #00FF00
...



RE: [3D] DLP Projector and RPi2 - frame-sequential - popcornmix - 2015-06-02

(2015-06-02, 11:27)membrane Wrote: I took a quick look at the source code of Bino. The 3D information is encoded in the pixel data itself. It seems that they draw a white line at the lowest (?) row of the left (?) picture.* This is the same for the TAB and SBS format.

Thanks for that info - it was exactly the sort of thing I was looking for. It's not clear exactly what devices make use of this coloured line.
It seems the Bino author is unsure of what makes use of it.
But it is something to try if we are having trouble getting synced.


RE: [3D] DLP Projector and RPi2 - frame-sequential - sarbes - 2015-06-02

This whole scheme is called "DLP® 3-D Ready encoding", which is from Texas Instruments. Every 120Hz projector with a Ti DDP4422-like ASIC should support this. Here is a pdf which explains it: http://lists.gnu.org/archive/html/bino-list/2013-03/pdfz6rW7jUrgI.pdf


RE: [3D] DLP Projector and RPi2 - frame-sequential - popcornmix - 2015-06-02

(2015-06-02, 14:31)membrane Wrote: This whole scheme is called "DLP® 3-D Ready encoding", which is from Texas Instruments. Every 120Hz projector with a Ti DDP4422-like ASIC should support this. Here is a pdf which explains it: http://lists.gnu.org/archive/html/bino-list/2013-03/pdfz6rW7jUrgI.pdf

Excellent. That pdf is very useful.
Quote:Video that does not adhere to the
DLP® 3-D Ready encoding scheme will require the user to manually switch the
DLP® projector between 2D and 3D operation.

That's useful as it suggests that the simple scheme of outputting at 120Hz and alternating left/right images should work, but require a manual left/right switch 50% of the time. That would be a useful first version of the scheme. Adding the coloured line shouldn't be a problem but can wait until we've proved the first version works as expected.

The only part that's not completely is playing 24Hz video in the 120Hz mode.

That means you output each new video frame five times. I assume you should output:
L0R0 L0R0 L0R1 L1R1 L1R1 L2R2 L2R2 L2R3 L3R3 L3R3 L4R4 ...

i.e. *always* alternate left/right every 120Hz, but you output a different number of lefts and rights for each frame (3 of one and 2 of the other).

The other option would be a six of one and 4 of the other scheme, which ensures matching numbers of lefts/rights but has more temporal jitter.
L0R0 L0R0 L0R0 L1R1 L1R1 L2R2 L2R2 L2R2 L3R3 L3R3 L4R4 ...


RE: [3D] DLP Projector and RPi2 - frame-sequential - sarbes - 2015-06-02

After reading some beamer specs, the ASIC should support 144Hz. I don't know if there is any firmware or hardware restiction on other beamers. Full HD is not possible at this speed, but lower resolutions (like 1280x800 - 147MPixel/s) could work. It may work with custom timings (96Hz), but i doubt that.


RE: [3D] DLP Projector and RPi2 - frame-sequential - ivota - 2015-06-02

Thank you @membrane to contribute.

Quote:Full HD is not possible at this speed, but lower resolutions (like 1280x800 - 147MPixel/s) could work

Most DLP projector only support 1280*720/120Hz


RE: [3D] DLP Projector and RPi2 - frame-sequential - nikc0069 - 2015-06-02

Don't know if this adds much to the discussion, but thought I'd chime in as I mentioned this a while back in another thread.

I believe that the coloured line isn't always used to sync the glasses - that was the older way of doing dlp 3d.

Dlp-link uses the fast speeds achievable by DLP to flash a "white" sync frame that the glasses pick up. This is added by the projector itself.

So dlp-link from the glasses point of view would be

Frame1-Frame2-WhiteFlash-Frame1-Frame2

This means that the glasses are always in sync with the frame - but not necessarily the eye. hence most of them have an eye sync switch which simply stops the sync until the next white frame, then triggers a different eye first.

However, a 3d ready projector will only ever do this at a specific resolution and timing.

The benefit of this system I believe is that the lcd shutters in the glasses only need to be able to refresh at one speed (for some Pjs, its 120hz, for others it is 144hz) - thus making them cheaper to produce.

"3d Ready" systems which we are dealing with here never support 1080p - though Full 3d systems use the flash (or triple flash) they can usually take the frame-packed signal the Pi can already output and do the conversion in their own hardware. 720 and 768 are the most common accepted resolutions for 120hz 3d in these projectors, dependent on the native resolution of the DLP chip - ie the older projectors couldn't handle any scaling.

1080 3D ready is, in real world terms, a very very edge case and I've never ever seen one.

Of course, I could be very wrong... Wink


RE: [3D] DLP Projector and RPi2 - frame-sequential - Gizmo81 - 2015-06-08

(2015-06-02, 09:46)da-anda Wrote: I'm a little concerned that in your screenshots the movie was not rendered SBS but only monoscopic while UI was in SBS. Is this the case for all 3D movies you play or did this only happen with The Hobbit?

This is exact the same problem I have with all my HSBS (don't have others)! UI is SBS and Video monoscopic. I'm not sure since when I have this problem.
After my opinion since I tried one time the monoscopic switch, but it can also be since I have my BenQ TH681.
My AV Receiver has 2 outputs, on main TV is connected on sub the projector. I have to check what will happen if
I deactivate the projector output, if I get 3D back then it is the BenQ. Playing 3D Bluray works. It happens on both.
Possible shoud be:
Frame Sequential: to 720p
Frame Packing: to 1080p
Side by Side: to 1080i/p
Top Bottom: to 1080p

Edit: hdmi_force_edid_3d=1 in Config.txt fixed my monoscopic problem!
Looks like a handshake error with TV and projector connected.


RE: [3D] DLP Projector and RPi2 - frame-sequential - ivota - 2015-06-09

@Gizmo81 you have Full 3D projector not 3D ready projector like me.
3D Ready projector needs converter to send(convert) video signal to 3D Ready projector.
So, users who has projector like me need this new feature in kodi.
Your problem is something different.


RE: [3D] DLP Projector and RPi2 - frame-sequential - Gizmo81 - 2015-06-09

Yes I know, but at first look (having only monoscopic and SBS UI) looks the same, but mine is now resolved.
See the hdmi_force_edid_3d=1 edit which overwrites the HDMI handshake.