v3dfx-base –Qt Ultrasound Image Viewer    prabu@ti.com , Feb 2012
Qt Dynamic Image Viewer          based on v3dfx-base• This implementation tests video/image streaming  functionality via S...
Qt UltraSound Image Viewer
Source Code• https://github.com/prabindh/v3dfx-  base/tree/master/test/platforms/qt_ultrasound• Introduction to v3dfx-base...
V3dfx-base Introduction • Allows applications to integrate video streaming with SGX   without writing platform specific co...
Is / Is Not              • Handles rapidly changing textures (RGB, YUV)    WHAT IT   • Supports imgstream              • S...
Underneath the hood – Target                           Execution   -Contiguous buffer (preferred), allocated by customer a...
Underneath the hood – raw APIdeviceClass = new TISGXStreamIMGSTREAMDevice();                      deviceClass = new TISGXS...
Class Description – IMGSTREAM class9
Class Description - EGLIMAGE class10
Target use-cases                                               Qt                                                    QGLWi...
QGLWidget Wrapper Class for v3dfx-                  base12
Source Code organisation     – Base API implementation         • v3dfx-base/api             – Provides both imgstream and ...
References• https://github.com/prabindh/v3dfx-base14
Upcoming SlideShare
Loading in …5
×

Ultrasound Image Viewer - Qt + SGX

1,445 views
1,309 views

Published on

This application showcases the capability of v3dfx-base, with ARGB input, with multiple (128 layers of) blending, all with <10% CPU loading.

Published in: Technology, Art & Photos
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,445
On SlideShare
0
From Embeds
0
Number of Embeds
12
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Ultrasound Image Viewer - Qt + SGX

  1. 1. v3dfx-base –Qt Ultrasound Image Viewer prabu@ti.com , Feb 2012
  2. 2. Qt Dynamic Image Viewer based on v3dfx-base• This implementation tests video/image streaming functionality via SGX GPU, using V3dfxGLScene, for an Ultrasound image viewer. – This application draws data into a GraphicsView with V3dfxGLScene, and updates data in drawBackground()• This application showcases the capability of v3dfx-base, with ARGB input, with multiple (128 layers of) blending, all with <10% CPU loading – With a regular glTexImage2D mode of texturing, this would take 100% CPU, and lower fps rates• Every frame shows a different angle of view
  3. 3. Qt UltraSound Image Viewer
  4. 4. Source Code• https://github.com/prabindh/v3dfx- base/tree/master/test/platforms/qt_ultrasound• Introduction to v3dfx-base in following pages
  5. 5. V3dfx-base Introduction • Allows applications to integrate video streaming with SGX without writing platform specific code in a re-usable way – Support for imgstream AND eglimage through same APIdeviceClass = new TISGXStreamIMGSTREAMDevice(); deviceClass = new TISGXStreamEGLIMAGEDevice();texClass = new TISGXStreamTexIMGSTREAM(); texClass = new TISGXStreamTexEGLIMAGE();deviceClass->qTexImage2DBuf(paArray); deviceClass->qTexImage2DBuf(paArray);deviceClass->dqTexImage2DBuf(freeArray); deviceClass->dqTexImage2DBuf(freeArray); channel 1 channel n channel 1 channel n channel n channel n device device device n n+1 n+2 v3dfx-base 5
  6. 6. Is / Is Not • Handles rapidly changing textures (RGB, YUV) WHAT IT • Supports imgstream • Supports eglimage • Supports both imgstream and eglimage with single API • Reusable class, delivered as “v3dfx-base.a” (ARM library) IS • Needs Graphics SDK with eglimage/imgstream support • Targeted to support multi-threaded operation (WIP) • Targeted to support cropping (WIP) WHAT IT • Does not initialise GL state, EGL state for application • Does not do drawing (glDrawArray, glDrawElement) • Does not do eglSwapBuffer IS NOT • Does not provide fancy GLSL shaders6
  7. 7. Underneath the hood – Target Execution -Contiguous buffer (preferred), allocated by customer application as texture input -Customer application does drawing in its native way -Dynamically update texture buffers using qTexImage2DBuf(), signal_draw() and dqTexImage2DBuf() calls v3dfx-base.a Customer application linked in app, Qt wrapper .. v3dfx-base (v3dfx-base.a) library archive GL_IMG_texture_stream2 GL_OES_EGL_image_externalIMGSTREAM EGLIMAGE User Mode SGX binary User Mode SGX binary bufferclass_ti Kernel driver SGX HW 7
  8. 8. Underneath the hood – raw APIdeviceClass = new TISGXStreamIMGSTREAMDevice(); deviceClass = new TISGXStreamEGLIMAGEDevice();texClass = new TISGXStreamTexIMGSTREAM(); texClass = new TISGXStreamTexEGLIMAGE();deviceClass->qTexImage2DBuf(paArray); deviceClass->qTexImage2DBuf(paArray);deviceClass->dqTexImage2DBuf(freeArray); deviceClass->dqTexImage2DBuf(freeArray); channel 1 channel n channel 1 channel n channel n channel n device device device n n+1 n+2 v3dfx-base GL_IMG_texture_stream2 GL_OES_EGL_image_external User Mode SGX binary User Mode SGX binary bufferclass_ti Kernel driver SGX HW 8
  9. 9. Class Description – IMGSTREAM class9
  10. 10. Class Description - EGLIMAGE class10
  11. 11. Target use-cases Qt QGLWidget wrapper (completed) v3dfx templates (Barn-door, Mosaic gstreamer QGraphicsItemw rapper v3dfx-base library11
  12. 12. QGLWidget Wrapper Class for v3dfx- base12
  13. 13. Source Code organisation – Base API implementation • v3dfx-base/api – Provides both imgstream and eglimage implementation as raw C++ classes – Reusable Qt classes • v3dfx-base/platforms/Qt – (GraphicsItem based) – in progress • v3dfx-base/platforms/qtQGL – (QGLWidget based) – completed – Test applications • v3dfx-base/test/imgstream – Raw (full screen, no window manager) test for imgstream based streaming • v3dfx-base/test/eglimage – Raw (full screen, no window manager) test for eglimage based streaming • v3dfx-base/test/platforms/qtQGL – Qt – QGLWidget based class, test for both imgstream and eglimage • v3dfx-base/test/platforms/qt – Qt – QGraphicsItem based class, test for both imgstream and eglimage (WIP)13
  14. 14. References• https://github.com/prabindh/v3dfx-base14

×