1 / 32

AUFLIC: An Accelerated Algorithm for Unsteady Flow Line Integral Convolution

AUFLIC: An Accelerated Algorithm for Unsteady Flow Line Integral Convolution. Zhanping Liu Robert J. Moorhead II Visualization Analysis & Imaging Laboratory MSU / NSF Engineering Research Center. May 27, 2002. Introduction. Vector field visualization LIC (Line Integral Convolution).

evania
Download Presentation

AUFLIC: An Accelerated Algorithm for Unsteady Flow Line Integral Convolution

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. AUFLIC: An Accelerated Algorithm for Unsteady Flow Line Integral Convolution Zhanping Liu Robert J. Moorhead II Visualization Analysis & Imaging Laboratory MSU / NSF Engineering Research Center May 27, 2002

  2. Introduction • Vector field visualization • LIC (Line Integral Convolution) • UFLIC (Unsteady Flow Line Integral Convolution) • Key points • Basic idea • Pipeline • AUFLIC (Accelerated UFLIC) • Motivation • Flexible seeding strategy • Dynamic activation-deactivation scheme • Save & reuse pathlines • Results • Conclusions Outline

  3. Challenges Representation: magnitude & direction Performance: quality & speed ROI: feature extraction & tracking Complexity: unstructured grids & unsteady flow • Methods • Graphics Based Hedgehogs: arrows, wedges & headed lines Lines: streamlines, pathlines, streaklines & timelines Surfaces: stream-surfaces, stream-ribbons & stream-tubes Volumes: flow volumes • Texture Based Spot noise Jark J. Van Wijk, Computer Graphics, 1991. Line Integral Convolution Introduction—Vector Field Visualization • Vector Field Visualization

  4. Introduction—LIC (Image courtesy of Mike Chupa, ERC VAIL)

  5. LIC (Line Integral Convolution) Presented by Brian Cabral & Leith Caisey Leedom,SigGraph’93. Low-pass filter noise texture along streamline, exploiting the correlation. Produce a synthesized image with fine details. LIC image (pattern) Noise texture (fine sands) Vector field (wind) L: kernel length K: convolution kernel : streamline T: noise texture value Introduction—LIC

  6. 2D Vector Streamlining by bi-directional integration Noise texture LIC Image (stream)Line Integration output pixel value Convolution O Introduction—LIC • Basic idea

  7. Introduction—LIC Colored mapped with velocity magnitude (blue: lowest; red: highest)

  8. Introduction—LIC LIC Animation  shift periodic kernel phase frame by frame

  9. Variations • LIC on curvilinear gridsLisa K. Forssell & S. D. Cohen. 1995 • Fast LIC Detlev Stalling & Hans-Christian Hege. 1995 • Parallel LIC Detlev Stalling, and et al. 1996 • Multi-frequency LICMing-Hoe Kiu and David C. Banks.1996 • Surface LICChristian Teitzel, and et al. 1997 • Oriented LIC R. Wegenkittl, and et al. 1997 • Enhanced LIC A. Okada & D. L. Kao. 1997 • Volume LIC (Dye advection) Han-Wei Shen, and et al. 1996 Victoria Interrante & Chester Grosch. 1997 C. Rezk-Salama, and et al. 1999 Introduction—LIC

  10. Disadvantage  does not work for unsteady flow field LIC fails to convey temporal coherence of unsteady flow. Inter-frame pulsation is introduced to LIC animation. Introduction—LIC

  11. Key Points • Available methods for unsteady flow visualization PLIC  Vivek Verma, David Kao, and Alex Pang. 1999 Hardware-assisted texture advection  Bruno Jobard, Gordon Erlebacher, and M. Yousuff Hussaini. 2000 UFLIC: Unsteady Flow Line Integral Convolution  Han-Wei Shen & David L. Kao. 1997 UFLIC can maintain both spatial and temporal coherence. • UFLIC vs. LIC Method Focus Strategy Line Field LIC image-space oriented given a pixel in the output image, to locate the correlated pixels & accept their contributions streamline steady flow UFLIC object-space oriented given a particle at a time step, to locate on-pathline particles & scatters its contribution to them over time pathline unsteady flow UFLIC—Key Points

  12. Two principles • Time Accurate-Value Scattering Scheme Convolve along pathlines to exploit spatial & temporal correlation • Texture Feed-Forward Strategy Advect textures over time to enhance temporal coherence • One intra-processing Noise-Jittered High Pass Filtering • High Pass Filtering Pass vector direction information forward • Noise Jittering Maintain noisy characteristics in the forwarded texture UFLIC—Key Points

  13. scatter value release a seed from pixel center locate pathline1 DIFFERENT points but in the SAME pixel pathline2 DIFFERENT points but in the SAME pixel pathline3 integrate texture t+3 texture t+2 texture t+1 texture t UFLIC—Basic Idea • Basic Idea Suppose 1 scattering process covers 3 time steps time step t+3 time step t+2 time step t time step t+1 The CURRENT scattering process is now completed. Convolve the scattered values and output texture t+2 as frame t+2. Apply Noise-jittered High Pass Filtering to texture t+2 and then take it as the input texture of the NEXT scattering process. The CURRENT scattering process is now completed. Convolve the scattered values and output texture t+3 as frame t+3. Apply Noise-jittered High Pass Filtering to texture t+3 and then take it as the input texture of the NEXT scattering process. The CURRENT scattering process is now completed. Convolve the scattered values and output texture t+1 as frame t+1. Apply Noise-jittered High Pass Filtering to texture t+1 and then take it as the input texture of the NEXT scattering process. Continue the value scattering until time step t+4 …… Continue the value scattering until time step t+5 …… Now take texture t+2 as input and begin the new scattering process to produce frame t+3 Now take texture t+1 as input and begin the new scattering process to produce frame t+2 Release a NEW seed from pixel-center Release a NEW seed from pixel-center

  14. White Noise Disk Files(N time steps) Input Texture Vector Data Buffer • Life span The duration (in terms of the number of time steps, usually = 4) in which a particle scatters its value to the succeeding particles along the pathline Time Accurate Value Scattering Process t = t + 1 Always Release New Seeds Pathline Integration Feed Texture Forward • Bucket if within life span A ring-buffer by which each pixel saves those scattered values and the weights for later convolution Refresh Convolution Buckets Bucket Convolution Noise-Jittered High Pass Filter Frame UFLIC—Pipeline • Pipeline

  15. Problem — UFLIC is time consuming • Motivation • Pathline integration: computationally expensive • Multi-timestep value scattering: more computation needed • Texture synthesis: convolution & noise-jittered high pass filtering • Reason — pathline redundancy • Always release a new seed from each pixel center at each time-step • Generally, more than 2 pathlines pass through a pixel simultaneously • Existing pathlines are not taken into considerations • Solution — reuse pathlines • Reuse existing pathlines as many as possible • Much less integration, the same scattering effect AUFLIC—Motivation We proposed AUFLIC (Accelerated UFLIC) • Over 90% UFLIC computation time results frompathline integration

  16. For this pixel, NO need to release a new seed from the pixel-center Instead, reuse this previously saved on-pathline point (NOT necessarily the pixel-center) as the seed to scatter the pixel value DIRECTLY to the succeedingpoints (pixels) along the already-known pathline pathline scatter value release a seed from pixel center locate Now further advect the pathline ONLY 1 time step ahead (to time step t+4). Save the new on-pathline pointsand let them ACCEPT the scattered value : Scattering process t : Scattering process t+1 Instead, reuse this previously saved on-pathline point (NOT necessarily the pixel-center) as the seed to scatter the pixel value DIRECTLY to the succeedingpoints (pixels) along the already-known pathline : Scattering process t+2 For this pixel, NO need to release a new seed from the pixel-center integrate texture t+3 texture t texture t+1 texture t+2 AUFLIC—Motivation • Basic idea Life span = 3 time steps time step t+3 time step t+2 time step t+1 time step t Begin scattering process t+1 to produce frame t+2 Begin scattering process t+2 to produce frame t+3 Begin scattering process t to produce frame t+1 Scattering process t is now completed. Convolve the scattered values and output texture t+1 as frame t+1. Apply Noise-jittered High Pass Filtering to texture t+1 and then take it as the input texture of the NEXT scattering process. Scattering process t+1 is now completed. Convolve the scattered values and output texture t+2 as frame t+2. Apply Noise-jittered High Pass Filtering to texture t+2 and then take it as the input texture of the NEXT scattering process. Now, begin to save the on-pathline points (pixels). They will be reused during scattering process t+1, t+2, t+3, …… From here, the on-pathline points (pixels) to be saved will be reused during scattering process t+2, t+3, t+4, ……

  17. How flexible a seed particle can be? • Freely positioned It is NOT necessarily located exactly on the pixel center. Whatever particle within the pixel qualifies for scattering the pixel value. • Possibly extracted A seed may be extracted from the existing pathlines used during the previous scattering processes. A scattering process: the procedure in which a seed particle scatters its value within its whole life span covering several (4) time steps. • Adaptively released A new seed is released when no extracted seed for the pixel is available. • Condition: ALL pixels seeded At each time step, there is at least 1 seed from each pixel to scatter value. AUFLIC—Flexible Seeding Strategy • Flexible Seeding Strategy

  18. How old a pathline can be? • UFLIC pathlines die younger An UFLIC pathline is forcibly terminated as soon as the life span expires. The life span is usually set to 4 time steps. • AUFLIC pathlines live older An AUFLIC pathline will NOT stop its advection until: • it reaches the flow field boundaries • it meets a critical point • it is deactivated by theDynamic Activation-Deactivation Scheme • The older, the more reused, the less computation Older pathlines can be repeatedly used duringsubsequent scattering processes without much effort of expensive integration calculation. AUFLIC—Flexible Seeding Strategy

  19. St+2 St St+1 : the reused pathline St+3 : the pathlines cancelled before births St+4 : the seed actually released from the pixel center at time step t : the seeds extracted from the existing pathline at time step t+1, t+2, t+3, and t+4, called potential seeds : the actually cancelled seeds at the pixel-centers AUFLIC—Flexible Seeding Strategy • Flexible seeding strategy Large amount of new seeds are cancelled due to those extracted seeds. Excessive new pathlines’ integration is therefore avoided.

  20. Problems As pathlines are released, reused & advected over time, problems arise: • Un-evenly distributed pathlines • Too many potential seeds passing through a pixel simultaneously scatter the same pixel value • There are so many pixels NOT visited by any potential seeds • Excessivly & un-necessarily reused pathlines • Too many active pathlines inevitably degrade acceleration performance • No sufficient memory to save the pathlines AUFLIC—Dynamic Activation-Deactivation Scheme • Dynamic Activation-Deactivation Scheme

  21. pixel Mutex— an exclusion flag • A cleared mutex (= 0): there has been NO active seed from the pixel • A set mutex (= 1): there has been an active seed from the pixel • Current-Mutex — whether to release a new seed or NOT Indicate pixel status during the current scattering process • Next-Mutex — whether to activate or de-activate a potential seed Indicate pixel status during the next scattering process • Dynamically updating Current-Mutex & Next-Mutex Release new seeds ONLY on REAL demand. Excessive & un-necessary “potential” seeds are actually cancelled. The least necessary pathlines are maintained for enough value-scattering. AUFLIC—Dynamic Activation-Deactivation Scheme • Dynamic Activation-Deactivation Scheme

  22. save this part and insert it into the pathline-list NOT saved time step 4 time step 5 time step 0 time step 1 time step 2 time step 3 life span = 4 time steps :non-seed point :potential seed :tail seed :active seed AUFLIC—Save & Reuse Pathlines • Save & Reuse Pathlines During each scattering process, pixels along each pathline are saved in a pixel-ring-buffer when necessary and N (<= xres×yres) pathlines are stored in a pathline-list for subsequent access and reuse. suppose (Next-Mutex = = 0), update the pixel status to refuse other pathlines: Next-Mutex = 1 begin to save the pathline as the advection continues check the potential-seed’s pixel flag if (Next-Mutex = = 0) save the pathline else do NOT save the pathline the pixel’s Current-Mutex = = 0, so release a new seed from the pixel center the active seed scatters the pixel value to the succeeding points (pixels) along the pathline all Current-Mutex & Next-Mutex are inited to 0 the life span just expires, save the tail seed scattering process 0 (time step 0 ~ time step 4) works to produce frame 0

  23. activate the seed the lastest pathline is saved in a pixel-ring-buffer and the ring-buffer stay inserted in the pathline-list time step 4 time step 5 time step 0 time step 1 time step 2 time step 3 Suppose (Next-Mutex = = 0) cut this part and keep the rest still in the pathline list check the pixel status if(Next-Mutex = = 1) delete the pathline from the pathline list else keep the pathline still in the pathline list let the tail seed advect the pathline forward, and begin to save the new points into the existing pathline the life span just expires save this part into the existing pathline keep the updated pathline still in the pathline list life span = 4 time steps :non-seed point :potential seed :tail seed :active seed directly scatter the pixel value to the already-known on-pathline points (pixels) without pathline integration calculations AUFLIC—Save & Reuse Pathlines • Save & Reuse Pathlines During each scattering process, pixels along each pathline are saved in a pixel-ring-buffer when necessary and N (<= xres×yres) pathlines are stored in a pathline-list for subsequent access and reuse. firstly update ALL pixel’s two Mutex let Current-Mutex = Next-Mutex; to check if a new seed is needed to release. let Next-Mutex = 0; to choose the FIRST pathline for the next scattering process check the pixel flag if(Current-Mutex = = 0) release a new seed from the pixel center else reuse the saved pathline information After ALL pixels complete scattering process1, convolve the pixel-buckets to produce frame 1 After all pixels complete scattering process 0, convolve the pixel-buckets to produce frame 0 suppose (Current-Mutex = = 1) load the pathline information saved during the last scattering process scattering process 0 (time step 0 ~ time step 4) works to produce frame 0 scattering process 1 (time step 1 ~ time step 5) works to produce frame 1

  24. Platform SGI Onyx2 with four 400MHZ MIPS R12000 processors 4GB memory • Concerns • Image quality • Acceleration • Memory cost Results • 2D unsteady flow data sets & parameters

  25. (A) UFLIC image weather data set 576 × 291 (B) AUFLIC image weather data set 576 × 291 Results—Image Quality • Image Quality

  26. (C) UFLIC image vortex data set 397 × 397 (D) AUFLIC image vortex data set 397 × 397 Results—Image Quality

  27. Acceleration AUFLIC is designed to accelerate the value scattering process in the UFLIC pipeline. Theoretically, AUFLIC & UFLIC are exactly in the same speed for pipeline’s other stages. Results—Acceleration AUFLIC compared with UFLIC in breakdown of the computation time (in second) (A) weather data; resolution: 576 × 291; life span: 4; 37 frames / 41 time steps; pixel-ring-buffer size: 72. (B) vortex data; resolution: 397 × 397; life span: 4; 97 frames / 101 time steps; pixel-ring-buffer size: 72.

  28. Memory Cost • Pathline statistics Results—Memory Cost (B) vortex data; resolution: 397 × 397; life span: 4; 97 frames / 101 time steps; pixel-ring-buffer size: 72. (A) weather data; resolution: 576 × 291; life span: 4; 37 frames / 41 time steps; pixel-ring-buffer size: 72.

  29. Low memory cost Peak : 80.46MB • Steady consumption 69.36 ~ 70.86MB Results—Memory Cost • Memory consumption for saving pathlines

  30. Future work • Enhanced with feature-driven seeding strategy Conclusions • AUFLIC is proposed to speed up UFLIC computation for unsteady flow visualization in value scattering process • Flexible Seeding Strategy  reuse existing pathlines from last scattering process • Dynamic Activation-Deactivation Scheme maintain the least necessary pathlines • No image quality degradation • Nearly half time saved • High reuse percentage • Verylow & quite steady memory consumption • Easily extended to 3D case • Extended to 3D unsteady flow field

  31. Thank You!

More Related