Date post: | 11-May-2015 |
Category: |
Education |
Upload: | graphitech |
View: | 89,253 times |
Download: | 0 times |
LIVE VIDEO IN WORLD WINDLIVE VIDEO IN WORLD WIND
Developed byJovan Stevovic
Principles Of Computer GraphicsPrinciples Of Computer Graphics2008 / 2009
The project:The goal of the project is to show videos
from different sources like webcams or local videos on the Nasa World Wind.
The actual Java SDK provides a lot of features for drawing and managing
objects, images, icons, annotations, etc.
But, there are not features for displaying videos or images that can changes their
aspect during the time.
ArchitectureThe WWJ architecture:LayerRenderableData source
Proposed architecture:VideoLayerDynamicSurfaceImageVideoSource
Class diagram
Efficiency trade-offVideoLayer performs these tasks:
Init all objectsStart updating ThreadAt each cycle
•Get the current frame from the source•Update the Renderable with the obtained image•Get the new time to sleep •Sleep
PROBLEMS:Managing Video Sources expensive (Threads, images transform)Updating Renderable’s texture expensive
Quality of imagesThe quality of images can be very high.During the navigation we can view them from a very close
point to a very far one.We don’t need the same quality.Reducing quality improve efficiency.
Time to renderAs we can see, decreasing image dimensions the rendering time decrease proportionally.
Images not in the ViewManaging videos is expensive.Reducing at maximum the number of simultaneously played
videos increase performances.Checking which images are in the view permits to pause
videos that are not visible.
Sloped imagesDuring the navigation user has some videos in the view but
is not interested in them.How we can check this? If images are so sloped in respect to the view eye, we can
suppose that the user is not interested in that image so we can pause the execution.
Images not visible In cities or mountains landscapes images can be hidden
behind some objects.Using RayCasting functions we can detect if there is
something in the middle that hides the image and then pause the playing.
GUI
1. List of webcam types. Clicking on them will be shown the list of available cams.
2. Add country and add webcam buttons3. Search form4. Results list
GUI cont.
• Insertion of a new webcam.• Pick Webcam Angles button permits to capture the webcam
position (yellow rectangle in the figure).• The form on the left contains other meta-information.
Webcam menu
Info button shows the annotation containing meta-information
Settings button shows the setting menu (next slide)Play/Pause button pause or restart the videoCancel button permits to delete the webcam temporally or
from memory.Zoom in/ Zoom out buttons permits to increase or decrease
the image quality
Webcam manager
Angle buttons permits to drag and drop a corner of an imageMiddle buttons permits to drag and drop a side of the imageSave button save the changes on memoryDiscard button restore the previous positionThere is activated also the BasicDragger that permits to
move the image.
Webcam structureA webcam is represented by the XML structure in the figure. There are information about position and URL and meta-information.
Directories
Webcams are divided into folders representing continents and countries.
Supported webcamsSupported webcams: Axis205 Axis206M Axis207 Axis207M Axis207MW Axis2100 Axis2120 Axis2130
Google provides a way to search pages with some substring of theURL, so we can search for example:inurl: axis-cgi/mjpg/video.cgiintitle:Live view - / - AXISinurl:axis-cgi/jpginurl:view/indexFrame.shtmlinurl:view/view.shtmlinurl:view/index.shtml
Websites that provides lists and webcam categories:
http://www.camhacker.com/ http://www.123cam.com/category-webcam-Axis.html http://www.ttrix.com/ipvisionpubcameras.html http://www.snow-cams.com/
ConclusionsManaging Players expensive
Reloading texture expensive
No possibility for reloading at each frame
Statistics class updates dynamically the time to sleep
CPU time spent for managing images. No possibility for GPU processing.
WWJ images quality low. Need more quality (at least like Google Earth) for better results.
Future WorksAutomatic geocoding of webcams
Capture other video sources of other types of webcams (the majority of webcams are represented by some URL of some image that is reloaded periodically server side)
Some Web Service can be added to the application to improve the adding process.
IP to location service (sometimes we have only the IP of the webcam)
Place name to LatLon position (faster finding of the location on WWJ)
Some examplesSeebruke Selling, Germany
A bridge in Newcastle, UK
Some examplesStutgart City airport