• Like
  • Save
Ultrasound Image Viewer - Qt + SGX
Upcoming SlideShare
Loading in...5
×
 

Ultrasound Image Viewer - Qt + SGX

on

  • 1,476 views

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

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

Statistics

Views

Total Views
1,476
Views on SlideShare
1,465
Embed Views
11

Actions

Likes
0
Downloads
7
Comments
0

3 Embeds 11

http://www.onlydoo.com 9
http://www.slashdocs.com 1
http://www.linkedin.com 1

Accessibility

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Ultrasound Image Viewer - Qt + SGX Ultrasound Image Viewer - Qt + SGX Presentation Transcript

    • 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 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
    • Qt UltraSound Image Viewer
    • Source Code• https://github.com/prabindh/v3dfx- base/tree/master/test/platforms/qt_ultrasound• Introduction to v3dfx-base in following pages
    • 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
    • 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
    • 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
    • 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
    • Class Description – IMGSTREAM class9
    • Class Description - EGLIMAGE class10
    • Target use-cases Qt QGLWidget wrapper (completed) v3dfx templates (Barn-door, Mosaic gstreamer QGraphicsItemw rapper v3dfx-base library11
    • QGLWidget Wrapper Class for v3dfx- base12
    • 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
    • References• https://github.com/prabindh/v3dfx-base14