360-degree Panorama Live Streaming Solution
User’s Guide
Version 1.0
Release 1.0 Revision 1.0 (June 19, 2011)
Ryubin’s Panorama Laboratory
This document is for informational purposes only. Ryubin Office makes no warranties, express, implied, or statutory as to the information in this document. Information in this document, including URL and other Internet Web site references, is subject to change without notice.
- 2 -
Table of Contents
Introduction ... - 3 -
How It Works ... - 4 -
Solution Kit ... - 7 -
System Requirements ... - 10 -
Installation Guide ... - 11 -
Registration ... - 11 -
Preparing an Account with FMS Hosting Service ... - 14 -
Configuring Sender Application ... - 16 -
Configuring Receiver Application ... - 18 -
Uploading Sender and Receiver Applications ... - 19 -
Running your 360-degree Live Panorama Applications ... - 20 -
Panorama Camera ... - 28 -
Convex Mirrors (Equidistance Projection) ... - 29 -
Convex Mirrors (Orthogonal Projection) ... - 30 -
Concave Mirror ... - 31 -
Fisheye Lenses ... - 31 -
DIY Examples ... - 32 -
Customizing the Solution ... - 34 -
<crop /> element ... - 34 -
<projection /> element ... - 36 -
<view /> element ... - 37 -
Online Tool to determine <crop />, <projection /> and <view /> ... - 37 -
Specifications of crop_and_projectionX.xml ... - 38 -
<play_objects> tag ... - 38 -
<crop /> element ... - 38 -
<projection /> element... - 38 -
<view /> element ... - 39 -
Acknowledgements ... - 40 -
- 3 -
Introduction
Thank you for having an interest in our 360-degree Panorama Live Streaming Solution (360PanoLive® in short). The 360PanoLive® is the simplest and the most cost effective or affordable approach to deliver on a real-time streaming of 360-degree motion
pictures or immersive videos leveraging Adobe™ FMS® and Flash Player®
technologies. The solution allows you to easily setup and launch a broadcasting system of 360-dgree real-time videos using existing PC environment plus commodity
panoramic capturing devices whether it’s a DIY equipment or a commercially available product once you have an account with one of those FMS (Flash Media Server) hosting services such as Influxis and heteml.
We do hope the solution gives some values to your panoramic life.
Thank you,
Ryubin’s Panorama Laboratory Ryubin Office, Kanagawa Japan
- 4 -
How It Works
The solution is comprised of the following components:
Sender (or Sending) Application
Receiver (or Receiving) Application
Streaming Application
Panorama Camera
The following chart illustrates how they co-work and realize the solution:
- 5 -
The sender (or sending) application to be placed on a Web server retrieves a stream of video frames in a real-time manner from the sender’s PC which holds a motion picture captured through the “panorama camera” attached to the sender’s PC.
The sender (or sending) application then conveys those video frames to the streaming application to be placed on the FMS server, using RTMP protocol.
The streaming application placed on the FMS server sends the streamed video frames to the receiver (receiving application) to be placed on another Web server, using RTMP protocol. (Note: the sender application and the receiving application may be under the same domain or under different domains. Your FMS account needs to be configured to permit accesses from those Web servers.)
The receiver application (or receiving) application internally transforms the original images of the frames into s stream of rectilinear or perspective images that are more comfortable to our visual sense, and then present the resultant images on the clients’ PC screens.
- 6 -
This solution assumes that the video images captured though the “panorama camera
“ are formed as one of the following types of projection:
Annular (So called doughnut shaped image) - Convex Equidistance
Annular (So called doughnut shaped image) - Convex Orthogonal
Annular (So called doughnut shaped image) – Concave Equidistance
Normal Fisheye (Horizontal setting)
Vertical Fisheye (Vertical Setting)
The following chart illustrates how they look like:
- 7 -
Solution Kit
We provide the solution in the form of a solution kit which actually is a zip file containing the following folders and files:
360LivePanoramaStreamingSolutionKit.zip (solution kit)
document
360PanoramaLiveStreamingSolution_VxxRyy.pdf (this document)
streaming_application
main.asc
sending_application
AC_RunActiveContent.js
PanoBroadcaster.html
PanoBroadcaster_vxx.swf
sender_config.xml
receiving_application
AC_RunActiveContent.js
PanoPlayer_vxx.swf
receiver_config.xml
camReceive1.html
crop_and_projection1.xml
camReceive2.html
crop_and_projection2.xml
camReceive3.html
crop_and_projection3.xml
camReceive4.html
crop_and_projection4.xml
camReceive5.html
crop_and_projection5.xml
AC_RunActiveContent.js which is included in both sending_application and
receiving_applicaiton_core filders is a JavaScript file provided by Adobe Company. A JavaScript function called AC_FL_RunContent() within the AC_RunActiveContent.js is used to dynamically generate the object and embed tags necessary for the browser to
- 8 -
work with SWF files: PanoBroadcaster_vXX.swf and PanoPlayer_vXX.swf in this solution. For details about the AC_RunActiveContent.js, please see posts in Adobe forum such as http://forums.adobe.com/thread/36069
Those users who prefer to use SWFObject.js instead of AC_RunActiveContent.js might want to see a relevant post on Stephen SulzBurger’s Blog.
PanoBroadcaster.html and camReceiveX.html are the files necessary for the browser to call and activate those application components such as PanoBroadcaster_vXX.swf and PanoPlayer_vXX.swf, respectively. The names of those html files may be changed on your preference.
PanoBroadcaster_vXX.swf and PanoPlayer_vXX.swf are the critical components for this solution necessary for conveying captured image frames from the sender PC to the clients’ PCs via the FMS server.
sender_config.xml and receiver_config.xml are necessary for the swf files to correctly work as expected. Two important components in those files are <application> tag and
<token> tag that are common to the sender_config.xml and the receiver_config.xml.
The <application> tag is used to specify the URL of the location where the streaming application which is “main.asc” is to be placed. <token> tag is necessary to show that the solution is officially licensed. The names of sender_config.xml and
receiver_config.xml should not be changed.
crop_and_projectionX.xml is another xml file needed by the PanoPlayer_vXX.swf to transform the received video images to be correctly displayed on the presentation window of the application.
The solution kit includes five pairs of camReceiveX.html and
crop_and_projectionX.xml to accommodate five types of projection the users might use.
The character “X” represents “1”, “2”, “3”, “4” and “5”, that indicate the projections of Convex Equidistance, Convex Orthogonal, Concave Equidistance, Normal Fisheye and Vertical Fisheye, respectively.
main.asc is s small piece of asc file (ActionScript Communication file) including several lines of ActionScript code to be placed on your FMS account and helps the
- 9 -
sender application smoothly convey the stream of 360-degree video frames to the receiving application.
- 10 -
System Requirements
Sender PC
A PC with an operating system (Windows, Mac, Linux or others) capable of running Flash Player version 10.0.0 or higher.
Internet connection.
USB or other peripheral port allowing a video camera to be physically and logically attached.
Client PC
A PC with an operating system (Windows, Mac, Linux or others) capable of running Flash Player version 10.0.0 or higher.
Internet connection.
Web site for the sender application
Linux (or equivalent) or Windows based Web server allowing HTTP access from the sender PC.
FTP capability (or equivalent) to upload the sender application.
Web site for the receiver application
Linux (or equivalent) or Windows based Web server allowing HTTP access from the client PC.
FTP capability (or equivalent) to upload the receiver application.
FMS account
An account with an FMS hosting service which allows the users to create new application directory and upload their own application codes.
At least 64k of bandwidth in average service level.
Internet connection
A broadband Internet connection such as ADSL, CATV, optical fiber or others which has enough capability to send or receive high resolution Web cam videos.
Panorama Camera
A video camera, USB camera, Web camera or equivalent capable of attaching or equipping with a panoramic mirror or a full circular fisheye lens.
The resolution of the camera should be at least 720p x 720p for obtaining satisfying results.
- 11 -
Installation Guide
Registration
After obtaining the solution kit (360LivePanoramaStreamingSolutionKit.zip), you need to register the solution and get a 16-digit character string named “TOKEN” for the solution to be able to correctly work, by filling in the registration form available at the following URL: http://www.ryubinpanorama.com/registration.html
- 12 -
The token is associated with the domain name of the Web site where you plan to place the sender application. Therefore, you need to determine the Web site and its domain name beforehand.
In the registration form, please enter the domain name, the license number and the mail address, and press “register” button. When the operation normally completes,
“response=000” will be returned from the registration server and a token number will be displayed in the field of “You Token” at the bottom of the form. At the same time, an e- mail will be sent to the registered mail address to inform you of the result of the
operation. The token number is needed to configure the sender application and the receiver application which will be explained later in this guide.
In case the operation fails for some reason, a response code other than “000” will be returned to prompt you to correct the input.
Response code Meaning
000 Operation normally completed.
100 Unrecognized operation.
101 Invalid registration (Already registered).
102 Invalid un-registration (No registration record found).
103 Invalid un-registration (invalid domain or invalid mail address) 201 Invalid domain format.
202 Invalid license number format.
203 Invalid mail address format.
5xx System error. Contact [email protected] for detail.
When you would like to change the domain name or the registered mail address, you need to unregister the previous domain or mail address by entering that previous information in the registration form and press “unregister” button.
When the operation normally completes, “response=000” will be returned from the registration server and a confirmation mail will be sent to your registered mail address to inform you of the result of the operation.
When encountering any problem during these register and/or un-register operation, contact [email protected] for assistance.
- 13 -
- 14 -
Preparing an Account with FMS Hosting Service
This solution uses a capability of the FMS server. So, if you do not own an account with an FMS Hosting service, please contract with some FMS hosting service (such as influxis.com and heteml.com) and obtain an account with that service so that you can use the capability of the FMS.
After obtaining an account with some FMS hosting service, you will be informed of an URL of the FMS server associated with your account such as
“rtmp://xxxxxxxx.rtmphost.com/” in case of for influxis or
“rtmp://zzzzzzzzzz.fms1.heteml.jp” in case of heteml, as of May 2011.
Next, please create a directory named “live” under the root directory of your FMS account. The name of the root directory will be “root” in the influxis account and “apps”
in the heteml account, as of May 2011.
After completing to create the “live” directory, please upload the “main.asc” to the “live”
directory, so that the streaming application can be accessed by the sender application and the receiver application via the URL of “rtmp://xxxxxxxx.rtmphost.com/live/” in case of for influxis or “rtmp://xxxxxxxxx.fmsx.heteml.jp/live” in case of heteml.
The URL information such as “rtmp://xxxxxxxx.rtmphost.com/live/” or
“rtmp://xxxxxxxxx.fmsx.heteml.jp/live” is needed to configure the sender application and the receiver application, which will be explained later.
- 15 -
The following picture illustrates how the main.asc is placed on the “live” directory which was created under the “root” directory within an influxis FMS account.
- 16 -
Configuring Sender Application
Before uploading the sender application to your Web site, you need to customize the application so that it can correctly access to your FMS server, by editing the
sender_config.xml.
An example of a complete content of the sender_config.xml is as follows:
---
<?xml version="1.0" encoding="UTF-8"?>
<sender_config>
<application>rtmp://xxxxxxxx.rtmphost.com/live/</application>
<token>ZZZZZZZZZZZZZZZZ</token>
<resolution>1200</resolution>
<fps>30</fps>
<key_frame_interval>48</key_frame_interval>
<motion_level>0</motion_level>
<motion_timeout>100</motion_timeout>
<bandwidth>0</bandwidth>
<quality>50</quality>
</sender_config>
---
You might be able to eliminate the tags from <resolution></resolution> to
<quality></quality> in case you accept the default values for those parameters.
In other words, <application></application> and <token></token> tags are mandatory.
The meanings of those tags from <application></application> to <quality></quality>
are listed below:
Tag Default Value Meaning
<application> N/A A URL value to specify the location of the streaming application (i.e. main.asc)
<token> N/A 16-digit characters named “TOKEN” you obtained through the registration.
- 17 -
<resolution> 1200 An integer to specify the highest allowable number of pixels (the height in pixels of the captured image) by your panorama camera.
<fps> 30 An integer to specify the highest allowable number of the frame per second. The
number defines is the upper limit of the FPS and does not mean the actual runtime FPS.
The runtime FPS will vary on the capabilities of the camera, sender PC, bandwidth , service level and the line condition etc.
<key_frame_interval> 48 An integer to specify which video frames are transmitted in full (called keyframes) instead of being interpolated by the video compression algorithm. A value of 1 means that every frame is a keyframe, a value of 3 means that every third frame is a keyframe, and so on. Acceptable values are 1 through 48.
<motion_level> 0 An integer to specify the amount of motion required to activate the Camera. Acceptable values range from 0 to 100.
<motion_timeout> 100 An integer to specify how many
milliseconds must elapse without activity before Flash Player considers activity to have stopped and de-activate the Camera.
<bandwidth> 0 An integer to specify the maximum amount of bandwidth that the current outgoing video stream can use, in bytes per second.
To specify that video can use as much bandwidth as needed to maintain the value of quality, specify 0.
<quality> 50 An integer that specifies the required level of picture quality, as determined by the amount of compression being applied to each video frame. Acceptable values range from 1 (lowest quality, maximum
compression) to 100 (highest quality, no compression). To specify that picture quality can vary as needed to avoid exceeding bandwidth, specify 0.
- 18 -
Configuring Receiver Application
Before uploading the receiver application to your Web site, you need to customize the application so that it can correctly access to your FMS server, by editing the
receiver_config.xml.
An example of a complete content of the receiver_config.xml is as follows:
---
<?xml version="1.0" encoding="UTF-8"?>
<receiver_config>
<application>rtmp://xxxxxxxx.rtmphost.com/live/</application>
<token>ZZZZZZZZZZZZZZZZ</token>
</receiver_config>
---
For the receiver_config.xml, <application></application> and <token></token> tags are mandatory.
The meanings of those tags follow:
Tag Default Value Meaning
<application> N/A A URL value to specify the location of the streaming application (i.e. main.asc)
<token> N/A 16-digit characters you obtained named
“TOKEN” through the registration.
- 19 -
Uploading Sender and Receiver Applications
Now that you have configured the sender application and the receiver application, you are ready to upload them to your Web server using FTP or an equivalent tool.
The sender application and the receiver application may be uploaded to the same directory on a Web server or to different directories on different Web servers, provided that the domain of the Web server for the sender application must be the same as your registered domain, which is the domain you have registered during the registration operation.
The sender application files you need to upload:
AC_RunActiveContent.js (text file)
PanoBroadcaster.html (text file)
PanoBroadcaster_vxx.swf (binary file)
sender_config.xml (text file)
The receiver application files you need to upload:
AC_RunActiveContent.js (text file)
camReceiveX.html (text file) (where X stands for 1,2,3,4, or 5)
PanoPlayer_vxx.swf (binary file)
receiver_config.xml (text file)
crop_and_projectionX.xml (text file) (where X stands for 1,2,3,4, or 5)
Please be sure to upload PanoBroadcaster_vxx.swf SWF files and PanoPlayer_vxx.swf in binary mode while the others may be uploaded in text mode.
- 20 -
Running your 360-degree Live Panorama Applications
Before starting up the solution, please make sure that Flash Player version 10.0.0 or higher is properly installed both on the sender PC and the receiver PC, by accessing the following page provided by Adobe: http://get.adobe.com/flashplayer/
Connect your panorama camera and microphone to the sender PC and execute
PanoBroadcaster.html that was uploaded on your Web site using a browser available on the sender PC.
Then, the PanoBroadcaster.html will guide you through the following screens to help you start the broadcasting operation and terminate the operation.
- 21 -
In the message box shown at the bottom-left corner of the screen, you will see a sequence of messages to inform you of the activation status of the sender application.
Please make sure that “Request Accepted” is shown at the top of the lines. This
indicates the sender application was accepted by the registration server, in other words, the domain name shown at the bottom of the lines is correctly related to the token you have specified with the sender_config.xml. In case, “Request Rejected” is shown, correct the domain name or the token should be re-confirmed.
When multiple cameras or video capturing devices are attached to the sender PC, select the target camera or device form the combo box of the dialogue window titled “Adobe Flash Player Settings”. Press the “close” button to complete the selection.
- 22 -
Next, you will see a dialogue box promoting your permission allowing your domain’s access to the selected camera and microphone. Press “Allow” button to go next step.
- 23 -
After pressing the “Allow” button in the previous step, you will see a real-time video image captured through the camera you selected at square box at the top-left section of the screen.
- 24 -
Now you are ready to start your real-time or live panorama Web cast or a broadcast over the Internet, so please press “Start Broadcast” button on the upper-right section of the screen to kick it off.
Make sure that a series of messages, “Connecting”, “Connection Established” and
“Broadcast Stared” are shown at the top of the message box. In case “Connection Rejected” is shown in one of those lines the message box, your FMS did not responded with a normal response, so please check if the application URL you have specified within the sender_congig.xml is correct. Or, check if you domain is permitted by your FMS account.
- 25 -
When the connection to your FMS account is normally established, red-colored “ON- AIR” lamp located at the top-right corner of the screen will start blinking.
Now, it’s ready for a client PC to receive the broadcasted video images, so please launch the receiver application by executing camReceiveX.html on one of your clients’
PC with an appropriate browser available on the PC.
When the received application is normally launched, first you will see the following screen with a blinking massage of “Waiting for stream video ready”.
- 26 -
Then, within few seconds, you will see a normally projected real-time or live video image on the screen.
- 27 -
When you would like to terminate the broadcast, press “Stop Broadcast” button. Two lines of messages; “Connection Closed” and “Broadcast Terminated” show that the connection with your FMS server as well as the broadcast session have been normally terminated.
- 28 -
Panorama Camera
Our 360-degree Panorama Live Streaming Solution is designed to be flexible enough to be able to work with a wide range of panoramic mirrors, lenses and devices available in the market. Typically the panorama camera used with our solution is a combination of an optical device such as a single-shot panoramic mirror or a full circular fisheye lens and a Web camera, USB camera or an equivalent image capturing device attachable to your PC, whether it’s a Windows, Mac or Linux based.
In other words, the combination can be used with our solution provided that it can capture a circular image such as annular type images (so called doughnut shaped images) or full-circular fisheye images as shown below:
While you could purchase some of those products already available as the panorama camera for this solution, what we recommend to DIY oriented panorama hobbyists is to create your own and unique panorama camera by yourself.
Here, we would like to demonstrate photographs of the mirrors, lenses and others to help you inspire your imagination towards innovating your own panorama camera.
- 29 -
Convex Mirrors (Equidistance Projection)
The following picture shows a range of convex and equidistance (parabolic, hyperbolic, or similar) panoramic mirrors usable with our solution as a component or as a finished product.
As far as we aware, as of May 2011, there are several finished products as well as replacement parts are available in the market.
- 30 -
Convex Mirrors (Orthogonal Projection)
The following picture illustrates a range of convex and orthographic or spherical type panoramic mirrors usable with our solution as a component. As far as we aware, there are no finished product available in the market. As described in the paper titled “A Practical Spherical-Mirror Omni-directional Camera” by Dr. A. Ohte et al., the
spherical mirror has several advantages over others especially for the DIY approaches.
- 31 -
Concave Mirror
The following picture shows the only one product of concave type panoramic mirror available in the market and usable with our solution, as of May 2011.
Fisheye Lenses
The following picture illustrates a line of full circular fisheye lenses with a field view of 180-degree or more available in the market at reasonable prices and usable with our solution.
- 32 -
DIY Examples
The following three pictures demonstrate some examples of DIY panorama cameras created as a combination of a commodity Web camera and a panoramic mirror or a fisheye lense. All of those examples are verified to properly work with our solution.
- 33 - Contact us for details.
- 34 -
Customizing the Solution
There may be cases where you might need to customize or modify the content of the crop_and_projectionX.xml to accommodate the characteristics of you panoramic mirror or lens. The xml file includes three key elements; <crop />, <projection /> and <view />
used within the <play_objects> tag, for the user to re-define the accommodation.
<crop /> element
Whenever you capture an image using a panoramic mirror or a full circular fisheye lens, you will obtain a circular image hopefully at the center of the whole square image as shown below.
In actual cases, the size and the position of the circle may vary on the types of camera, mirror or lens as well as several physical dimensions of your fabrication and finishing.
The <crop /> element is implemented to allow you to specify the size and the position of the circle as relative values to the width and the height or the whole square image.
The <crop /> element also allows you to specify a relative size of the inner circle you will have in the image captured through a panoramic mirror, in order to black it out and to specify the bottom (or top) level of the vertical projection.
The following picture is an example of such image captured through a panoramic mirror and illustrates how those relative values can be measured and determined.
- 35 -
The size and the position of the circular image in the above example can be interpreted by the <crop /> element within the <play_objects> tag, as follows.
<?xml version = '1.0'?>
<my_params>
. .
<play_objects>
<crop width="0.705" height="0.944" cx="0.486" cy="0.498" inner_circle="0.2"/>
..
</play_objects>
. .
</my_params>
Note that the inner_circle attribute is not needed for a fisheye image (will be neglected when coded). For details, consult with the Specifications of crop_and_projectionX.xml.
- 36 -
<projection /> element
In order to obtain a normal perspective or a rectilinear view from a doughnut shaped image captured using a panoramic mirror, the receiving application wraps the image onto a surface of a logical sphere created as a 3D model inside the application. The
<projection /> elements is so implemented as to allow you to flexibly specify how the captured image is going to be wrapped on to the surface of the sphere, in terms of the degree of elevation and the degree of depression. This approach helps accommodate various types of mirror and camera as well as physical settings and dimensions of their combination in a practical manner.
The following figure illustrates how the image is wrapped onto the surface of a sphere as a texture using the specified values of elevation and depression.
- 37 -
The degrees of elevation and depression can be set by using <projection /> element within the <play_objects> tag, along with the associated attributes as follows. For details, consult with the Specifications of crop_and_projectionX.xml.
<?xml version = '1.0'?>
<my_params>
. .
<play_objects>
<crop width="0.705" height="0.944" cx="0.486" cy="0.498" inner_circle="0.2"/>
<projection elevation="46" depression ="62"/>
</play_objects>
. .
</my_params>
<view /> element
The view element is so designed as to help users flexibly determine the viewing experience realized by the receiving application. There are several attributes implemented to specify initial viewing direction, initial field of view, the range of vertical travel as well as horizontal travel and others. For details, consult with the Specifications of crop_and_projectionX.xml.
Online Tool to determine <crop />, <projection /> and <view />
To help users easily examine and determine those XML elements, we have prepared an online tool at the following URL:
http://www.ryubinpanorama.com/online_tools/PanoConfigDoughnutFlash.html
This tool also helps you grasp the idea of cropping, projection and viewing experience introduced in our solution, we believe.
- 38 -
Specifications of crop_and_projectionX.xml
<play_objects> tag
<crop /> element
ATTRIBUTE FUNCTION APPLICABLE
PLAYODE(S)
width=[“number(1.0)"]
height=[“number(1.0)]
cx=[“number(0.5)"]
cy=[“number(0.5)]
These attributes are used to define an oval-shaped area to be cropped from the original image. cx and cy are used to specify a relative coordinate for the center position of the oval. width and height are used to specify horizontal and vertical diameters as relative values to the width and height of the original image, respectively.If specifying cx=0.5, cy=0.5, width=1.0. and height=1.0, the cropping area should be an oval (or circle) which is inscribed to the outer frame of the original image. The default value for width and height is 1.0. The default value for cx and cy is 0.5.
DoughnutVideo FisheyeVideo VerticalFisheyeVideo
inner_circle=[“number(0.2)"]
0< value <0.5
Sets the ratio of the inner radius to be cropped out, relative to the outer radius of the doughnut circle of the panorama image to be projected. Default value is 0.2.
DoughnutVideo
<projection /> element
ATTRIBUTE FUNCTION APPLICABLE
PLAYMODE(S)
elevation=[“number(45)"]
0< value <85
Sets the angle of elevation in degree for the panorama image to be projected. Default is 45.
DoughnutVideo depression=[“number(45)"]
0< value <85
Sets the angle of depression in degree for the panorama image to be projected. Default is 45.
poj_type=["1"|"2"]
Sets the type of projection; equidistance (1) or orthogonal (2). When you use a spherical mirror, set proj_type=”2”. Default setting is proj_type=”1”
(equidistance).
- 39 -
<view /> element
ATTRIBUTE FUNCTION APPLICABLE
PLAYMODE(S)
init_fov=[“number(100)"]
10<=value<=130
Sets initial horizontal fov (field of view) in degree when the viewer is launched. Default is "100". The value should be between "10" and "130".
DoughnutVideo FisheyeVideo VerticalFisheyeVideo init_yaw=[“number(0)"]
-180<= value<=180
Sets initial yaw in degree when the viewer is launched. Default is 0. The value should be between -180 and 180.
init_pitch=[“number(0)"]
-180<= value<=180
Sets initial pitch in degree when the viewer is launched. Default is 0. The value should be between -180 and 180.
init_filter=["yes"|"no"] Specifies if smoothing filter (anti-alias) is enabled when the viewer is launched. Default is "no" (disabled).
lock_nadirs=["yes"|"no"]
Specifies if viewing-direction is locked at the top and bottom nadirs. (i.e. pitch value will stay at north and south poles; +90 degree and -90 degree). Default is "no" (not locked).
lock_vertical=["yes"|"no"] Specifies if viewing-direction is locked to the initial pitch value (i.e. pitch value will not be changed). Default is "no" (not locked).
limit_vertical=["yes"|"no"]
Specifies if vertical viewing-direction is limited within a span.
Please note that the limit_vertcial is forced to “no” when lock_nadirs=”yes” or lock_vertical=”yes” is specified. Default is
"no" (not limited). When specified "yes" without using either the
“top_limit” or “bottom_limit” below, the default setting will be applied and the span will be from +90-degree to -90-degree;
from top nadir to bottom nadir.
top_limit=[“number(+90)"]
+10<=value<=+90
Specifies the top limit for the span of vertical viewing-direction in degree. Default value is +90. This attribute works only when limit_vertical="yes" is specified. Please note that the value of init_fov should be specified as smaller or equal to the value of top_limt plus bottom_limit, otherwise the viewing window may be blacked out.
bottom_limit=[“number(+90)"]
+10<=value<=+90
Specifies the bottom limit for the span of vertical viewing- direction in degree. Default value is +90. This attribute works only when limit_vertical="yes" is specified. Please note that the value of init_fov should be specified as smaller or equal to the value of top_limt plus bottom_limit, otherwise the viewing window may be blacked out.
flip_vertical=["yes"|"no"] Specifies if the image is to be vertically flipped, i.e, the image should be displayed upside down.
flip_horizontal=["yes"|"no"] Specifies if the image is to be horizontally flipped, i.e, the image should be displayed right-side left.
- 40 -
Acknowledgements
We would like to thank Dr. Shih Naai-Jung and his student Lee Chia-yu at Taiwan Tech (Taiwan University of Science and Technology) for their great support in the validation process of this solution.
We also thank Dr. A. Ohte for giving us a range of technological insights about the omni-directional mirrors especially on the spherical approach.
Finally, we would like to thank Pano Pro Ltd. (pano-pro.com) for their special
consideration allowing us to develop an omni-directional panorama camera usable with this solution.
- 41 - End of document
This document is for informational purposes only. Ryubin Office makes no warranties, express, implied, or statutory as to the information in this document. Information in this document, including URL and other Internet Web site references, is subject to change without notice.
Complying with all applicable copyright laws is the responsibility of the user. Without limiting the rights under copyright, no part of this document may be reproduced, translated, stored in or introduced into a retrieval system, or transmitted in any form or by any means (electronic, mechanical, photocopying, recording, or otherwise), or for any purpose, without the express written permission of Ryubin Office.
Ryubin Office may have patents, patent applications, trademarks, copyrights, or other intellectual property rights covering subject matter in this document. Except as expressly provided in any written license agreement from Ryubin Office, the furnishing of this document does not give you any license to these patents, trademarks, copyrights, or other intellectual property.
© 2011 Ryubin Office.
All rights reserved. Your right to copy or translate this documentation is limited by copyright law. Making unauthorized copies, adaptations, compilations, translations or derivative works for commercial distribution is prohibited and constitutes a violation of the law.