Académique Documents
Professionnel Documents
Culture Documents
C COLLEGE OF ENGINEERING
MANNAMPANDAL, MAYILADUTHURAI- 609 305
Subject Code
IT 6501
Semester
VII
Department
Information Technology
Academic Year
2015 - 2016
V.Padmavathi / Asst..Prof. - IT
T
1
P
0
C
4
UNIT I
OUTPUT PRIMITIVES
9
Introduction Line Curve and ellipse drawing algorithms Attributes Two dimensional
geometric transformations Two dimensional clipping and viewing Input techniques.
UNIT II
THREEDIMENSIONAL CONCEPTS
9
Three dimensional object representations Three dimensional geometric and modeling
transformations Three dimensional viewing Hidden surface elimination Color models
Animation.
UNIT III
MULTIMEDIA SYSTEMS DESIGN
9
An introduction Multimedia applications Multimedia system architecture Evolving
technologies for multimedia Defining objects for multimedia systems Multimedia data
interface standards Multimedia databases.
UNIT IV
MULTIMEDIA FILE HANDLING
9
Compression and decompression Data and file format standards Multimedia I/O
technologies Digital voice and audio Video image and animation Full motion video
Storage and retrieval technologies.
UNIT V
HYPERMEDIA
9
Multimedia authoring and user interface Hypermedia messaging Mobile messaging
Hypermedia message component Creating hypermedia message Integrated multimedia
message standards Integrated document management Distributed multimedia systems.
L: 45 T: 15 Total: 60
TEXT BOOKS
1. Donald Hearn and M. Pauline Baker, Computer Graphics C Version, Pearson
Education, 2003.
2. Prabat K Andleigh and Kiran Thakrar, Multimedia Systems and Design, Prentice Hall
of India, 2003.
REFERENCES
1. Judith Jeffcoate, Multimedia in Practice Technology and Applications, Prentice Hall of
India, 1998.
2. Foley, Vandam, Feiner and Huges, Computer Graphics: Principles and Practice, 2nd
Edition, Pearson Education, 2003.
CONTENTS
2.1.2 Scaling
2.1.3 Rotation
2.2 Three Dimensional Viewing and Projections
2.3 Viewing Coordinates
2.3.1 Transformations from World to Viewing Coordinates
2.4 Projections
UNIT III -MULTIMEDIA SYSTEMS DESIGN
3.1 Multimedia
3.2 Multimedia Applications
3.3 Multimedia Systems Architecture
3.4 Evolving Technologies of Multimedia
3.5 Multimedia Database
UNIT V - HYPERMEDIA
5.1 Multimedia Authoring Systems
5.1.1 Design issues for Multimedia Authoring
5.1.2 Types of Multimedia Authoring System
5.2 User Interface Design
5.2.1 Kinds of user interface development Tool
5.2.2 Guidelines for good user interface design
5.2.3 Special metaphor for special applications
5.2.4 Audio/ Video Indexing Function
5.3 Hypermedia Messaging
5.4 Distributed Multimedia Systems
The computer graphics is one of the most effective and commonly used way to
communicate the processed information to the user.
It displays the information in the form of graphics objects such as pictures, charts,
graphs and diagrams instead of simple text.
Thus we can say that computer graphics make it possible to express data in pictorial
form.
Each pixel on the graphics display does not represent mathematical point. Rather it
represents a region which theoretically contain an infinite number of points
The computer graphics allows rotation, translation, scaling and performing various
projections on the pictures before displaying it. Graphics devices includes both input
devices and display devices.
The computer graphics are used in areas such as science, engineering, medicine,
business, industry, government, art, training and education.
A major use of computer graphics is in design process. Nowadays all products are
computer designed. We refer this as CAD, Computer aided design method, which is
used in building design, automobiles, aircraft, spacecraft, textiles etc.,
Keyboards can also be provided with features to facilitate entry of screen coordinates,
menu selections, or graphics functions.
Mouse
A mouse is small hand-held box used to position the screen cursor. Wheels or rollers
on the bottom of the mouse can be used to record the amount and direction of
movement.
Another method for detecting mouse motion is with an optical sensor. For these
systems, the mouse is moved over a special mouse pad that has a grid of horizontal
and vertical lines. The optical sensor detects movement across the lines in the grid.
One, two, or three buttons usually included on the top of the mouse for signaling the
execution of some operation, such as recording & cursor position or invoking a
function. Most general-purpose graphics systems now include a mouse and a
keyboard as the major input devices
As the name implies, a trackball is a ball that can be rotated with the fingers or palm
of the hand to produce screen-cursor movement. Potentiometers, attached to the ball,
measure the amount and direction of rotation.
Trackballs are often mounted on keyboards or other devices such as the Z mouse
Unlike the trackball, a spaceball does not actually move. Strain gauges measure the
amount of pressure applied to the spaceball to provide input for spatial positioning
and orientation as the ball is pushed or pulled in various directions.
Joysticks
A joystick consists of a small, vertical lever (called the stick) mounted on a base that
is used to steer the screen cursor around.
The distance that the stick is moved in any direction from its center position
corresponds to screen-cursor movement in that direction.
It consist of two potentiometers attached to a single lever. Moving the lever changes
the settings on the potentiometers. The left or right movement is indicated by one
potentiometer and forward or back movement is indicated by other potentiometer.
Thus with a joystick both X and Y coordinate positions can be simultaneously altered
by the motion of a single lever.
Some joystick may return to their zero(center) position when released. Joysticks are
inexpensive and are quite commonly used where only rough positioning is needed.
Data Glove
It is constructed with a series of sensors that detect hand and finger motions.
Each sensor is a short length of fiber optic cable, with a light emitting diode at one
end and a photo transistor at the other end.
When the cable is flexed, some of the LEDs light is lost, so less light is received by
the photo transistor.
The input from the glove can be used to position or manipulate objects in a virtual
scene.
Thus by wearing the data glove, a user can grasp, move and rotate objects and then
release them.
Digitizers
These devices can be used to input coordinate values in either a two dimensional or a
three-dimensional space.
Typically, a digitizer is used to scan over a drawing or object and to input a set of
discrete coordinate positions, which can be joined with straight-line segments to
approximate the curve or surface shapes.
One type of digitizer is the graphics tablet (also referred to as a data tablet), which is
used to input two-dimensional coordinates by activating a hand cursor or stylus at
selected positions on a flat surface.
A hand cursor contains cross hairs for sighting positions, while a stylus is a pencil
shaped device that is pointed at positions on the tablet..
Using rectangular grid of wires embedded in the tablet surface, many graphics tablets
are constructed.
The line should appear as a straight line and it should start and end accurately.
The line should be displayed with constant brightness along its length independent of
its length and orientation.
This algorithm is summarized in the following procedure, which accepts as input the
two endpoint pixel positions.
Horizontal and vertical differences between the endpoint positions are assigned to
parameters dx and dy.
The difference with the greater magnitude determines the value of parameter steps.
Starting with pixel position (xa, ya), we determine the offset needed at each step to
generate the next pixel position along the line path.
If the magnitude of dx is greater than the magnitude of dy and xa is less than xb, the
values of the increments in the x and y directions are 1 and m, respectively.
If the greater change is in the x direction, but xa is greater than xb, then the
decrements - 1 and -m are used to generate each new point on the line.
Bresenhams line algorithm uses only integer addition and subtraction and
multiplication by 2, and we know that the computer can perform the operations of
integer addition and subtraction very rapidly.
The basic principles of bresenhams line algorithm is to select the optimum raster
location to represent the straight line.
The increment in the other variable is determined by examining the distance between
the actual line location and the nearest line pixel. This distance is called decision
variable or the error.
Now if e>0, then it implies that DB>DA i.e., the pixel above the line is closer to the
true line.
If DB<DA (i.e. e<0) then we can say that the pixel below the line is closer to the true
line.
Thus by checking only the sign of error term it is possible to determine the better
pixel to represent the line path.
When e>0, error is initialized with e=e-2x. This is continued till error is negative. In
each iteration y is incremented by 1.x is incremented by 1.
e=e-2*x }
x=x+1
e=e+2*y
8. i=i+1
9. if (i<=x) then goto step 6.
x : the x co-ordinate
y : the y co-ordinate
r
Here, polynomial equation can be used to find y co-ordinate for the known x coordinate. Therefore, the scan converting circle using polynomial method is achieved
by stepping x from 0 to r 2, and each y co-ordinate is found by evaluating r2-x2 for
each step of x. This generates the 1/8 portion (90 to 45) of the circle. Remaining part
of the circle can be generated just by reflection.
x : the x co-ordinate
y : the y co-ordinate
The scan converting circle using trigonometric method is achieved by stepping from 0 to
/4
radians and each value of x and y is calculated. However, this method is more inefficient
than the polynomial method because the computation of the values of sin and cos is even
more time-consuming than the calculations required in the polynomial method.
1.3.1 Bresenhams Circle Drawing Algorithm
It considers the eight way symmetry of circle to generate it. It plots 1/8th part of the circle
from 90 to 45 degree. So the x moves in positive direction and y moves in negative direction.
1. Read the radius(r) of the circle.
2. d=3-2r
Pk+1=Pk+2xk+1+1
Otherwise, the next point along the circle is (xk + 1, yk -1) and
Pk+1=Pk+2xk+1+1-2yk+1
where 2xk+1= 2xk + 2 and 2yk+1 = 2yk- 2.
4. Determine symmetry points in the other seven octants.
5. Move each calculated pixel position (x, y) onto the circular path centered on (xc, yc) and
plot the coordinate values:
x=x+xc,y=y+ yc
6. Repeat steps 3 through 5 until x y.
The mid-point ellipse drawing algorithm uses the four way symmetry of the ellipse to
generate it. This approach is similar to that used in displaying a raster circle.
Here the quadrant of the ellipse is divided into two regions. The division of the first
quadrant according to the slope of an ellipse with rx<ry.
As ellipse is drawn from 90 to 0 , the x moves in the positive direction and y moves in
the negative direction, and ellipse passes through two regions.
It is important to note that while processing first quadrant we have to take steps in the
x direction where the slope of the curve has a magnitude less than 1 (for region 1) and
to take steps in the y direction where the slope has a magnitude greater than 1 (for
region 2).
Like circle function, the ellipse function fellipse (x,y) (ry2 x2 +rx2 y2-rx2 ry2) serves as the
decision parameter in the midpoint algorithm.
At each sampling position, the next pixel along the ellipse path is selected according
to the sign of the ellipse function evaluated at midpoint between the two candidate
pixels xi+1, yi or xi + 1, yi 1 for region 1 and xi, yi - 1 or xi + 1, yi 1 for region 2).
Starting at (0,ry) we have to take unit steps in the x direction until we reach the
boundary between region 1 and region 2.
Then we have to switch to unit steps in the y direction over the remainder of the curve
in the first quadrant.
To check for boundary point between region 1 and region 2 we have to test the value
of the slope the curve at each step. The slope of the ellipse at each step is given as
dy/dx = -2ry2x/2rx2y
At the boundary point between region 1 and region 2, dy/dx = -1 and
2ry2x = 2rx2y
Therefore, when
2ry2x > 2rx2y
Otherwise, the next point along the circle is (xk + 1, yk -1) and
with
Otherwise, the next point along the circle i s (xk + 1, yk -1) and
In general, any parameter that affects the way a primitive is to be displayed is referred
to as an attribute parameter.
Some attribute parameters, such as color and size, determine the fundamental
characteristics of a primitive.
Here, we consider only those attributes that control the basic display properties of
primitives, without regard for special situations. For example, lines can be dotted or
dashed, fat or thin, and blue or orange.
Text can appear reading from left to right, slanted diagonally across the screen, or in
vertical columns.
And we can apply intensity variations at the edges of objects to smooth out the raster
stairstep effect.
One way to incorporate attribute options into a graphics package is to extend the
parameter list associated with each output primitive function to include the
appropriate attributes.
A linedrawing function, for example, could contain parameters to set color, width,
and other properties, in addition to endpoint coordinates.
To generate an output primitive, the system checks the relevant attributes and invokes
the display routine for that primitive using the current attribute settings.
Some packages provide users with a combination of attribute functions and attribute
parameters in the output primitive commands.
With the GKS and PHIGS standards, attribute settings are accomplished with
separate functions that update a system attribute list.
Basic attributes of a straight line segment are its type, its width, and its color.
In some graphics packages, lines can also be displayed using selected pen or brush
options.
Line Type
Possible selections for the line-type attribute include solid lines, dashed lines, and
dotted lines.
We modify a line drawing algorithm to generate such lines by setting the length and
spacing of displayed solid sections along the line path.
Both the length of the dashes and the interdash spacing are often specified as user
options.
A dotted line can be displayed by generating very short dashes with the spacing equal
to or greater than the dash size.
To set line type attributes in a PHIGS application program, a user invokes the
function setLinetype (lt) where parameter 1t is assigned a positive integer value
of
1,2,3, or 4 to generate lines that are, respectively, solid, dashed, dotted, or dashdotted.
Other values for the line-type parameter lt could be used to display variations in the
dot dash patterns.
Once the line-type parameter has been set in a PHIGS application program, all
subsequent line-drawing commands produce lines with this Line type.
Line Width
A heavy line on a video monitor could be displayed as adjacent parallel lines, while a
pen plotter might require pen changes.
As with other PHIGS attribute a line-width command is used to set the current linewidth value in the attribute list.
This value is then used by line-drawing algorithms to control the thickness of lines
generated with subsequent output primitive commands.
We set the line-width attribute with the command:
SetLinewidthScaleFactor (lw)
We can adjust the shape of the line ends to give them a better appearance by adding
line caps in the Fig.
One kind of line cap is the butt cap obtained by adjusting the end positions of the
component parallel lines so that the thick line is displayed with square ends that are
perpendicular to the line path.
Another line cap is the round cap obtained by adding a filled semicircle to each butt
cap. The circular arcs are centered on the line endpoints and have a diameter equal to
the line thickness.
A third type of line cap is the projecting square cap.Here, we simply extend the line
and add butt caps that are positioned one-half of the line width beyond the specified
endpoints.
(a) butt caps, (b) round caps, and (c) projecting square caps
Line Color
When a system provides color (or intensity) options, a parameter giving the current
color index is included in the list of system-attribute values.
A polyline routine displays a line in the current color by setting this color value in the
frame buffer at pixel locations along the line path using the setpixel procedure.
The number of color choices depends on the number of bits available per pixel in the
frame buffer.
Parameters for curve attributes are the same as those for line segments.
We can display curves with varying colors, widths, dotdash patterns, and available
pen or brush options.
Options for filling a defined region include a choice between a solid color or a
patterned fill and choices for the particular colors and patterns.
These fill options can be applied to polygon regions or to areas defined with curved
boundaries, depending on the capabilities of the available package.
In addition, areas can be painted using various brush styles, colors, and transparency
parameters.
Fill Styles
Areas are displayed with three basic fill styles: hollow with a color border, filled with
a solid color, or filled with a specified pattern or design.
Values for the fill-style parameter fs include hollow, solid, and pattern.
Another value for fill style is hatch, which is used to fill an area with selected
hatching patterns-parallel lines or crossed lines.
As with line attributes, a selected fillstyle value is recorded in the list of system
attributes and applied to fill the interiors of subsequently specified areas.
Fill selections for parameter fs are normally applied to polygon areas, but they can
also be implemented to fill regions with curved boundaries.
Hollow areas are displayed using only the boundary outline, with the interior color
the same as the background color.
A solid fill is displayed in a single color up to and including the borders of the region.
The color for a solid interior or for a hollow area outline is chosen with
setInteriorColourIndex(fc)
where fillcolor parameter fc is set to the desired color code.
Soft Fill
Modified boundary-fill and flood fill procedures that are applied to repaint areas so
that the fill color is combined with the background colors are referred to as soft-fill or
tint fill algorithms.
Attributes can be set both for entire character strings (text) and for individual
characters defined as marker symbols.
Text Attributes
There are a great many text options that can be made available to graphics
programmers.
First of all, there is the choice of font (or typeface), which is a set of characters with a
particular design style such as New York, Courier, Helvetica, London, 'Times
Roman, and various special symbol groups.
The characters in a selected font can also be displayed with assorted underlining
styles (solid, dotted, double), in boldface, in italics. and in outline or shadow styles.
Color settings for displayed text are stored in the system attribute list and used by the
procedures that load character definitions into the frame buffer.
setTextColourIndex( tc )
where text color parameter tc specifies an allowable color code.
Text size can be adjusted without changing the width-to-height ratio of characters
with
setCharacterHeight(ch)
Parameter ch is assigned a real value greater than 0
setCharacterSpacing(cs)
where the character-spacing parameter cs can he assigned any real value.
The basic geometric transformations are translation, rotation, and scaling. Other
transformations that are often applied to objects include reflection and shear.
1.6.1 Translation
y' = y + ty
The translation distance pair (tx,ty ) is called a translation vector or shift vector.
We can express the above translation equations as a single matrix equation by using
column vectors to represent coordinate positions and the translation vector:
P=P+T
1.6.2 Rotation
To generate a rotation, we specify a rotation angle and the position (x y,) of the
rotation point (or pivot point) about which the object is to be rotated.
Positive values for the rotation angle define counterclockwise rotations about the
pivot point, and negative values rotate objects in the clockwise direction.
This transformation can also be described as a rotation about a rotation axis that is
perpendicular to the xy plane and passes through the pivot point.
Let us consider the rotation of the object about the origin as shown in the above
figure.
Here r is the constant distance of the point from the origin, angle is the original
angular position of the point from the horizontal, and is the rotation angle.
5.1
Substituting expressions 5.2 into 5.1,we obtain the transformation equations for
rotating a point at position ( x , y) through an angle about the origin:
x' = x cos - y sin
y' = x sin + y cos
sin
-sin
cos
It is important to note that positive values for the rotation angle define
counterclockwise rotations about the rotation point and negative values rotate objects
in the clockwise.
For negative values of i.e for clockwise rotation, the rotation matrix becomes,
R= cos(-)
sin(-)
-sin(-)
cos(-)
cos
-sin
sin
cos
1.6.3 Scaling
This operation can be carried out for polygons by multiplying the coordinate values
( x , y) of each vertex by scaling factor sx, and sy to produce the transformed
coordinates (x', y'):
x = x . Sx ,
y = y . Sy
Scaling factor Sx , scales objects in the x direction, while Sy scales in they direction.
The above transformation equations can also be written in the matrix form:
or
P = S . P
Any positive numeric values can be assigned to the scaling factors sx, and sy
Specifying a value of 1 for both sx and sy, leaves the size of objects unchanged.
When sx and sy are assigned the same value, a uniform scaling is produced.
Basic transformations such translation, rotation, and scaling are included in most
graphics packages.
Some packages provide a few additional transformations that are useful in certain
applications. Two such transformations are reflection and shear.
1.7.1 Reflection
Reflection
About Y axis
About X axis
About origin
Transformation Matrix
Reflection
Transformation Matrix
-1
About line
-1
-1
About line
-1
y = -x
-1
-1
y=x
1.7.2 Shear
A transformation that slants the shape of an object is called the shear transformation.
Two common shearing transformations are those that shift coordinate x values and
those that shift y values.
In both the cases only one coordinate(x or y) changes its coordinates and other
preserve its value.
X Shear
The x shear preserves the y coordinates, but changes the x values which causes
vertical lines to tilt right or left.
Y Shear
The y shear preserves the x coordinates, but changes the y values which cause
horizontal lines to transform into lines which slope up or down.
x= x
Shy
and
y=y+Shy . x
Typically, a graphics package allows a user to specify which part of a defined picture
is to be display& and where that part is o be placed on the display device.
The pidure parts within the selected areas are then mapped onto specified areas of the
device coordinates.
When multiple view areas are selected, these areas can be placed in separate display
locations, or some areas could be inserted into other, larger display areas.
Viewing Pipeline
Often, windows and viewports are rectangles in standard position, with the rectangle
edges parallel to the coordinate axes.
But, in general, viewing involves more than just the transformation from the window
to the viewport.
First, we construct the scene in world coordinates using the output primitives and
attributes
Next. to obtain a particular orientation for the window, we can set up a two
dimensional viewing-coordinate system in the world-coordinate plane, and define a
window
We then define a view port in normalized coordinates (in the range from to I ) and
map the viewing-coordinate description of the scene to normalized coordinates. At
the final step, .11I parts of the picture that he outside the viewport are clipped, and the
contents of the viewport are transferred to device coordinates. By changing the
position of the viewport, we can view objects at different positions on the display area
of an output device. Also, by varying the size of viewports, we can change the size
and proportions of displayed objects.
Window to Viewport coordinate transformation
Once object descriptions have been transferred to the viewing reference frame, we
choose the window extents in viewing coordinates and select the viewport limits in
normalized conrdinates
If a coordinate position is at the center of the viewing window, for instance, it will be
displayed at the center of the viewport.
To maintain the same relative placement in the viewport as in the window, we require
that
Solving these expressions for the viewport position (xv, yv), we have
Generally, any procedure that identifies those portions of a picture that are either
inside or outside of a specified region of space is referred to as a clipping algorithm,
or simply clipping.
The clipping algorithm determines which points, lines or portions of lines lie within
the clipping window.
These points,lines or portions of lines are retained for display. All others are
discarded.
Point Clipping
Assuming that the clip window is a rectangle in standard position, we have a point
P = ( x , y) for display if the following inequalities are satisfied:
The equal sign indicates that points on the window boundary are included within the
window.
Line Clipping
The lines are said to be interior to the clipping window and hence visible if both end
points are interior to the window (e.g)line P1P2 in figure.
If both end points of a line are completely to the right of , completely left of,
completely above, or completely below the window
This is one of the oldest and most popular line-clipping algorithm developed by Dan
Cohen and Ivan Sutherland.
To speed up the processing this algorithm performs initial tests that reduce the
number of intersections that must be calculated.
This algorithm uses a 4 bit digit (bit) code to indicate which of nine regions contain
the end point of line.
These codes identify the location of the point relative to the boundaries of the
clipping rectangle as shown in the figure.
Each bit position in the region code is used to indicate one of the four relative
coordinate positions of the point with respect to the clipping window to the left, right,
top, or bottom.
The rightmost bit is the first bit and the bits are set to 1 based on the following
scheme
Set Bit 1
Set Bit 2
Set Bit 3
Set Bit 4
A value of 1 in any bit position indicates that the point is in that relative position;
otherwise, the bit position is set to 0.
A point that is below and to the left of the rectangle has a region code of 0101.
Bit values in the region code are determined by comparing endpoint coordinate values
(x, y) to the clip boundaries.
Bit 1 is set to 1 if x < xwmin,. The other three bit values can be determined using
similar comparisons.
Once we have established region codes for all line endpoints, we can quickly
determine which lines are completely inside the clip window and which are clearly
outside.
Any lines that are completely contained within the window boundaries have a region
code of 0000 for both endpoints, and we trivially accept these lines.
Any lines that have a 1 in the same bit position in the region codes for each endpoint
are completely outside the clipping rectangle, and we trivially reject these lines.
A method that can be used to test lines for total clipping is to perform the logical and
operation with both region codes. If the result is not 0000, the line is completely
outside the clipping region. Lines that cannot be identified as completely inside or
completely outside a clip window by these tests are checked for intersection with the
window boundaries.
Algorithm
1. Read two end points of the line say P1(x1,y1)and P2(x2,y2)
2. Read two corners(left-top and right-bottom) of the window, say(Wx1,Wy1 and
Wx2,Wy2)
3. Assign the region codes for two end points P1 and P2 using the following steps
Initialize code with bits 0000
Set Bit 1
if (x<Wx1)
Set Bit 2
if (x>Wx2)
Set Bit 3
if (y<Wy2)
Set Bit 4
if (y>Wy1)
5. Determine the intersecting edge of the clipping window by inspecting the region
codes of two end points.
a) If region codes for both the end points are non zero, find intersection points
P1 and P2 with boundary edges of clipping window with respect to point P1
and P2 respectively.
b) If region code for any one end point is non zero then find intersection point
P1or P2 with the boundary edge of the clipping window with respect to it.
6. Divide the line segments considering intersection points.
7. Reject the line segment if anyone end point of it appears outside the clipping window.
8. Draw the remaining line segments.
2.1.1 Translation
tx
ty
tz
P = P . T
[x y z 1] = [x y z 1]
= [x+tx y+ty
tx
ty
tz
z+tz
1]
S =
Sx
Sy
Sz
Sx
Sy
Sz
z.Sz
1]
P = P.S
[x y z 1] =
[x y z 1] 0
= [x.Sx y.Sy
2.1.3 Rotation
Unlike 2D rotation, where all transformations are carried out in the xy plane, a 3D
rotation can be specified around any line in space.
Therefore for 3D rotation we have to specify an axis of rotation about which the
object is to be rotated along with the angle of rotation .
The rotation axes that are parallel to coordinate axis is easy to handle.
cos
-sin
y =
sin
cos
Using cyclic permutation of the coordinate parameters x,y and z, the transformation
equations for rotations about the other two coordinate axes can be obtained.
X axis rotation
or
y =
cos
-sin
sin
cos
P=Rx().P
y axis rotation
cos
-sin
y =
-sin
cos
P=Ry().P
or
The 3D viewing process is inherently more complex than the 2D viewing process.
The complexity added in the 3D viewing is the added dimension (z) and the fact that
eventhough objects are 3D the display devices are only 2D.
The world coordinate positions of the objects are then converted into viewing
coordinates by viewing transformation.
Finally the workstation transformation transforms the projection coordinates into the
device coordinates.
We can view the object from the side or the top or even from behind.
A view plane is nothing but the film plane in the camera which is positioned and
oriented for a particular shot of the scene
World coordinate positions in the scene are transformed to viewing coordinates ,then
viewing coordinates are projected on to the view plane.
The first viewing parameter we must consider is the view reference point.
The next viewing parameter is a view plane normal vector. This normal vector is the
direction perpendicular to the view plane.
The view plane normal vector is a directed line segment from the view plane to the
view reference point. The length of this directed line segment is referred to as view
distance. This is another viewing parameter. It tells how far the camera is positioned
from the view reference point.In other words we can say that a view plane is
positioned view-distance away from the view reference point in the direction of the
view plane normal.
It is possible to obtain the different views by rotating the camera about the view plane
normal vector and keeping view reference point and direction of N vector fixed.
At different angles, the view plane will show the same scene, but rotated so that a
different part of the object is up.The rotation of a camera or view plane is specified by
a view-up vector V which is another important viewing parameter.
If the view reference point is specified at world position (xo yo, zo), this point is
translated to the world origin with the matrix transformation
That is, we first rotate around the world xw axis to bring zv into the xwzw , plane.
Then, we rotate around the world yw axis to align the zw and zv axes. The final
rotation is about the zw axis to align the yw and yv. axes.
If the view reference system is left-handed, a reflection of one of the viewing axes
(for example, the z,, axis) is also necessary.This is illustrated in the figure
This method also automatically adjusts the direction for V so that v is perpendicular
to n. The composite rotation matrix for the viewing transformation is then
which transforms u onto the world xw axis, v onto the yw.axis, and n onto the zw.
axis. In addition, this matrix automatically performs the reflection necessary to
transform a left-handed viewing svstem onto the right-handed world system.
2.4 Projections
In a parallel projection, coordinate positions are transformed to the view plane along
parallel lines, as shown in the ,example figure
For a perspective projection object positions are transformed to the view plane along
lines that converge to a point called the projection reference point (or center of
projection).The projected view of an object is determined by calculating the
intersection of the projection lines with the view. plane.
Parallel projections are basically categorized into two types, depending on the relation
between the direction of projection and the normal to the view plane.
Orthographic projections
They are most often used to produce the front, side, and top views of an object, as
shown in the figure.
Front, side, and rear orthographic projections of an object are called elevations; and a
top orthographic projection is called plan view.
We can also form orthographic projections that displav more than one face of an object. Such
view are called axonometric orthographic projection
If the user has control over the multimedia presentation then it becomes a non-linear
and Interactive Multimedia presentation.
Hypertext
Hypermedia:
All the web based applications and web sites are hypermedia based.
3.2 Applications
i) Document imaging
Document imaging makes it possible to store, retrieve, and manipulate very large
volumes of drawings, documents and other graphical representations of data.
Image annotation as a text file stored along with the image. The annotation is
overlaid over the original image for display purposes.
OCR is used for data entry by scanning typed or printed words in a form.
The strokes are parsed and processed by a shape recognizer that tries to determine the
geometry and topology of the strokes. It attempts to compare it to existing shapes,
such as predefined characters. Then the word may be checked against a dictionary.
Non-textual image recognition: uses facial expressions, posture, and gestures which
represent important input.
Full-motion video clips should be sharable but should have only one sharable copy
Users should be able to take sections of a video clip and combine the sections with
sections from other video clips to form their own new video clip
All the normal features of a VCR metaphor, such as, rewind, FF,play and search etc
should be available.
Users should be able to search to the beginning of a specific scene, that is , the fullmotion video clip should be indexed.
Users should be able to place their own indexing marks to locate segments in the
video clip.
It should be possible to view the same clip on a variety of display terminal types with
varying resolution capabilities without the need for storing multiple copies in
different formats.
It should be possible for users to move and resize the window displaying the video
clip.
The users should be able to adjust the contrast and brightness of the video clip and
also adjust the volume of the associated sound.
Users should be able to suppress sound or mix sound from other sources.
When video clips are spliced, then sound components are also spliced automatically.
Message transfer agents to route messages to their final destinations across various
nodes in a multilevel network.
Message repositories (servers) where users may store them just as they would store
documents in a filing cabinet
Repositories for dense multimedia components such as images, video frames, audio
messages and full-motion video clips.
Ability for multiple electronic hypermedia messages to share the same multimedia
components residing in various repositories on the enterprise network.
Dynamic access and transaction managers to allow multiple users to access, edit, and
print these multimedia messages.
Local and global directories to locate users and servers across an enterprise network
Other Applications
Medical applications
Advantages
Elements
Fascimile
Document images
Photographic images
Holographic images
fractals
APPLICATIONS
Graphical User Interface
Operating System
Multimedia Extensions
Software Drivers
System Hardware
Add-on Multimedia
(Multimedia-Enabled)
Increased computing power of the desktop systems, workstations, and PCs and their
ability to run multiple applications concurrently.
Business needs for more complex networks for a larger variety of data transmissions
including voice, data, and video messages
Graphics-intensive applications
Voice and video based multimedia applications that require large volumes of data
storage.
Hypertext
Allows the author to link the information together and create information path
through a large volume of related text in doc.
Eg. Annotating the text, Append the notes that directs the readers to bibliographic
information/ Reference material
Hypertext - Merits
Hypertext - Demerits
Critical
Storage
Does not meant that full copies of each component of hypermedia doc embed within
the doc file. -> Include other documents
Hyper speech
Eg. Mail message can be used to generate a hyper speech file user can easily
navigate concept to concept.So, User get synopsis of a report in vary short time and
effectively respond
Speech Recognition
U.S changes analog to digital tech. 1125 lines digital HDTV - developed
UDTV
Requires Ultra resolution displays at commercially liable prices, High speed video
processing,, Ultra broadband communication bandwidths for WAN services
Fuzzy Logic
Signal processing
Digital Servo tech- greater track densities and faster seek times
Challenges Faced:
1.Necessary to incorporate the different forms of information including
text,graphics and video into their applications
2.Even the compressed multimedia object- large
3.Audio and Video objects are played at fixed rate
Since the multimedia application. is based on communication , the database system
must be fully distributed
Extend RDBMS beyond the binary objects inheritance and classes -> OOP
Convert the database and application to OOD and use OOP/Object enabled SQL for
development
Limitations of RDBMS
Key limitation for RDBMS-Multimedia application can stem from 2 areas: Relational
Data model and Relation computational model
RDBMS designed to manage only the tabular column of alphanumeric data while
multimedia combine numeric,text,images,audio,video, and more
Leading RDB adapts BLOB Binary Large Object Free form text and binary data
RDB table location information for BLOBs stored outside the DB on separate
image/video servers
Object database capabilities such as message passing, extensibility and the support for
hierarchical structures important for multimedia systems
Properties
Message Passing- allows the object to interact with each other by invoking each
others method and the process of handling of data from one component of the
application to other
ncapsulation Ability to deal with S/W entities as units that interact in predefined
and controlled manner
Association Ability to define a S/W entity in terms of its difference from another
entity
Classification Ability to represent a single entity by a no. of data items all having
same attribute and behavior
Merits of OODBMS
Hides the inner functioning leaving only the interfaces as the means of
communication
Data Independence
Data Independence
DB servers build for growth and enhancement and the N/W provides an opportunity
for growth of applications and distributed access to the data
Hypermedia documents and database records may contain the linked multimedia
objects
Design of OMS Indexing the objects in such a manner so that there is no need to
maintain multiple storage copies
Transaction Management
Users request Completed User releases the hypermedia document and stored the
edited versions and discards the copy in memory
As hypermedia not presented successfully until all the components are available for
display
Large volume of data requires huge storage area as well more time for transmission.
Compression
o reduces the file size for storage
Spread sheets, word processor files, database files, program executable files usually
contain repeated sequences of characters. Compression techniques (usually reducing
the repeated character count) are used for saving disk space.
Similarly image and gray scale images contain information that is repetitive in nature,
that is series of successive pixels may be of the same type
If you compresed an image scanned at 300 dpi then, the image resolution is
maintained at 300dpi
While decompress the image produces the exact 300 dpi resolution image
Designed only for black and white not for gray scale images
Huffman Encoding
It is variable length encoding. It generates the shortest code for frequently occurring
run
Code Table
Black run length
00110101
0000110111
000111
010
0111
11
1000
10
1011
011
Code greater than string 1792 identical for white and black pixels
Demerits:
Uses a k factor where the image is divided into several group of lines. Based on the
statistical nature of images
Eg. If black and white transition occurs , chances of same transition will be within
+3 to -3
Vertical code
0000010
000010
010
-1
011
-2
000011
-3
0000011
Compression ratio
CCITT G4 2D
2D without k-factor
Standards are a snapshot of the current state of the technology and reflect the current
demands of applications.
Sharing of data among multiple applications and for exchanging information between
applications.
TWAIN
RTF files are actually ASCII files with special commands to indicate formatting
information, such as fonts and margins.
Rtf documents can be viewed in a number of programs including Microsoft Word and
Notepad and can be interpreted across platforms.
Rich-Text Format
Character set
Font table
Color table
Document formatting
Section formatting
Paragraph formatting
General formatting
Character formatting
Special characters
RTF is used to attach, embed or link other text files or even binary files such as
executables, audio and video files.
TIFF File FormatTIFF is an acronym for Tag(ged) Image File Format. It is one of
the most popular and flexible of the current public domain raster file formats.
Tagged Image File Format (abbreviated TIFF) is a file format for storing images,
including photographs and line art.
Features of TIFF
TIFF includes a number of compression schemes that allow developers to choose the
best space or time tradeoff for their applications.
TIFF is portable. It does not favor particular operating systems, file systems,
compilers, or processors.
Sampling rate
Number of sample taken of a signal in a given time (usually one second)
Bit depth
Describes the accuracy of the audio data
Channels
E.g. Stereo has two channels
Bit rate
Measured in kilobits per second (Kbps) is a function of the bit depth and sampling
rate
Sampling rate
The more sample taken per second, the higher the accuracy.
The high-end 96K is used in DVD, but is not applicable to the Web.
Bit depth
The more bits, the better is the quality of the audio (and a larger file of course).
Common bit depths are 8-bit (telephone like), 16-bit (CD quality), and 20, 24, 32, 48bit depths.
Channels
Bit rate
Audio files are measured in terms of bit rate which is measured in kilobits per second
(Kbps).
it can be calculated by dividing the file size by the time (in second) to play the audio
clip.
E.g. 3Mb file play in 30 seconds
3000k / 30 = 100kbps.
Number of channels
A mono audio file is halved the space of a stereo file.
Depends on your actual needs.
Bit depth
Sampling rate
Half the sampling rate will also halve the space needed.
Voice only audio file can be reduced to 8KHz.
22 KHz music clips are acceptable.
Streaming Audio
What is it?
Play almost immediately after the request, continues playing the transferring data.
Advantages:
Address the problem of long download time.
Control distribution and protect copyright, because the user cannot get a copy of the
file.
Disadvantages:
Sound quality may be be affected by low speed or unstable Internet connection.
WAV/AIFF (.wav/.aif/.aiff)
The Waveform Audio File format (.wav) was developed by Microsoft, supports
arbitrary sampling rates and bit depths.
The Audio Interchange File format (.aif, .aiff) was developed for Macintosh
platform.
They are less likely used on the Web, because people use mp3 or streaming.
MP3 (.mp3)
Able to maintain excellent sound quality at very small file sizes.
The compression reduces an audio file to one-tenth of its original size.
E.g. 40MB file 3.5MB
Layer 3 is one of three coding schemes (layer 1, layer 2, and layer 3) for the
compression of audio signals.
Layer 3 uses perceptual audio coding and psychoacoustic compression to remove all
superfluous information. (More specifically, it removes the redundant and irrelevant
parts of a sound signal--the stuff the human ear doesn't hear anyway).
It also adds a MDCT (Modified Discrete Cosine Transform) that implements a filter
bank, increasing the frequency resolution 18 times higher than that of layer 2.
MIDI (.mid/.midi)
MIDI stands for Musical Instrument Digital Interface which is developed for
electronic musical instruments.
MIDI files are very compact and very good for low-bandwidth delivery.
It is very attractive for adding MIDI file to your website with very little download
time.
Suggested formats
News broadcasts
Background music
MIDI, WAV
MP3 or QuickTime
RealMedia System
MIDI, WAV
Frame size
The most common frame size for web video is 160x120 pixels.
The size depends on the CPU power and the Internet connection bandwidth.
Frame rate
For the web, 15 or even 10 fps is more appropriate and produces fair smooth quality
for the user.
Commercial Internet Broadcasts are using 0.5, 0.25 frames per second.
Quality
Many video-editors allow you to set the overall quality of the video.
The low or medium setting results a fairly high compression which is appropriate for
web delivery.
The number of pixel colors in each frame affects the size of the video.
The file size of the video will be greatly reduced by changing the number of colors
from 24-bit to 8-bit.
This is the rate that the data must be transferred in order to ensure the video can play
smoothly without interruption.
It can be calculated by dividing the size of the file (in K) by the movie length (in
seconds).
E.g. the video file size is 1.9MB 1900K
Play 40 seconds long, Data rate = 47.5K/sec
RealMedia (.rm)
-Industry standard streaming format.
-RealPlayer for playback.
-RealServer for serving streams.
-RealProducer for creating .rm files.
Good for
Long-playing video or broadcast to many people
AVI (.avi)
-Stands for Audio/Video Interleaved.
-Introduced by Microsoft in 1992.
-In a AVI file, the audio and video information are interleaved every frame.
Good for
Short web clips, high-quality video
What is RAID?
-RAID stands for Redundant Array of Inexpensive Disks; Originally Redundant
Array of Independent Disks.
-A way of storing the same data in different places (thus, redundantly) on multiple
disks.
-Set of disks viewed as one
-Data is distributed across disks
-Increase performance
-Access distributed data in parallel
-Increase reliability
-Through redundancy or error correction
-Six different approaches
-Recovery is simple
-Duplication increases cost considerably
-This is a good entry-level redundant system, since only two drives are required;
however, since one drive is used to store a duplicate of the data, the cost per
megabyte
is high.
-This level is commonly referred to as mirroring.
-In the event of a disk failure, data can be mathematically reconstructed from the
remaining disks in the array.
RAID Level 5
-Use sector interleaving.
-Every sector belongs to a different portion of the logical volume.
-Large writes can go in parallel
-Independent / large reads can go in parallel
-Problem: parity disk is a bottleneck!
RAID Level 6
-Block Interleaving
-Provides data striping at the byte level and also stripe error correction information.
-This results in excellent performance and good fault tolerance.
-Level 6 is one of the most popular implementations of RAID.
If the transfer rate is not sustained, it results in unprectiable delivery, thereby causing
video frame dropouts seen as jumpy motion and choppy audio.
Storage Size
Bandwidth
Text
2KB/s
1MB
500KB/s
50KB/s
G3 1D
Fax G3 1D Image
100 KB
50KB/s
768 KB/s
27.64 MB/s
2-3 MB/s
3.1 MB/s
8 KB/s
Optical Storage
CD-ROM
o Spiral 3 miles long, containing 15 billion bits!
o CLV all blocks are same physical length
o Block 2352 bytes
DVD-ROM
o 4.7G per layer
o Max 2 layers per side, 2 sides = 17G
176 kb/s
UNIT V - HYPERMEDIA
Multimedia
Refers to Integration of multiple media such as Text, Audio, Video, Animation and
Visual imagery
Example
Games
CBT (Computer based Training)
WBT (Web based Training)
Interactive Multimedia
If the user has the ability to control any of the multimedia components then the
multimedia becomes interactive multimedia
Example
Games (NFS)
Hypertext
Text which provides link to other chapter / Webpage / other media
Hypermedia
Interactive Multimedia becomes Hypermedia when link is provided for user to
navigate in a non linear way
5.1 Multimedia Authoring Systems
An Authoring System is a program which has pre-programmed elements for the development
of interactive multimedia Application
Advantages:
Each authoring tool support separate scripting language, so that the developer can
create
more interactivity
Authoring Vs Programming
Authoring
assembly of Multimedia
Programming
Example
Flash
Macro media Director
Tool book
Author ware
5.1.1 Design issues for Multimedia Authoring
i) User Expectations
1. Quality
2. Transferability
Design Issues
1.Display Resolution
2.File format
3.Compression
4.Network Interfaces
ii) Resolution
Since wide variety of display systems and screen resolution are available we cannot
restrict the user
Example:
TV- 640x480 is acceptable (since we watch TV from 10 to 15 feet away)
workstation-800x600 is acceptable (Since we watch from 12 to 18 inches away
Various data format for image, audio, full motion video are available, but the ability
to control them is not good in most cases
Compression
Interconnects two users terminal with the help of public / private network
Provide playback service at full resolution, but with dropped intermediate frames
Provide playback service at full resolution and frame rate, but this results in a picture
that frequently freezes.
Disadvantage
Editing a component cause all object in the timeline to be reassigned
To overcome
Define timing relation directly between objects.
3. Structured Multimedia Authoring
Allow the user to search for objects using some key that define the search criteria
Navigation through the Application:
Refers to the sequence in which the application progresses. To build both nodes and links are
used.
1.Direct mode
Successive navigation ( Sequential)
2.Free form mode
User determine the sequence of action (non-sequential)
3.Browse mode
Browsing allow the user to explore the database, when they need information about a
particular topic
It can be good/ bad. Since it depend on the perception of the user
5.2.2 Guidelines for good user interface design
1. Plan the overall structure of the Application
Structure must be easy to learn and guide the user along prompting action
Example
Ms Windows GUI.
Menu items are always placed in the same place
2. Plan the content of the Application
Content is designed to perform task. It includes
data entered in each task
data manipulated during each task
data output for each task and design the dialog boxes
3. Plan the interactive behavior of the Application
Find how the user is going to interact with the application
4. Plan the Look and feel of the Application
It depends on combination of the metaphor (symbol/image) being used to
simulate real life interfaces
5.2.3 Special metaphor for special applications
User Interface for multimedia applications requires the metaphors to which the users are
accustomed
Example
: Lotus organizer
where map/ voicemail directions can be associated with the address in the address
book image/ video may be added as background for preparing appointment, so that
user can view the appointment before accepting the other appointment
2. Telephone metaphor
The telephone metaphor can digitize the analog voice, and playback the digitized
sound
The User interface includes all the metaphors of telephone. This allow us to use the
computer interface just like telephone keypad
Use
Used as office appliance, before voicemail server came into existence
AUI allow the computer system to accept speech as direct input and provide oral
response to the user action
4. VCR Metaphor
The User interface shows all the functions that are present in video camera, when it is
in video capture mode
Example
VCR metaphor that allow editing must have graduated bar, so that the user can mark the
start and end of the clip that is to be deleted/ edited
5.2.4 Audio/ Video Indexing Function
Index marking allowed the user to mark the location on tape
Use
Used in fast-forward and rewind searches
Become Complex
5.3.1
Mobile Messaging
Significantly influenced the messaging by wireless communication supporting widerange access using wireless modems and cellular telephone links
Role of telephone carriers and local cable companies are start to blur
5.3.2
Components of Hypermedia
Text
Voice Messages
Text
Class of service Msg delivered immediately or due to seq in orderly queue of msgs.
Typical mail message Message part - format by user while other by Email application
itself
Rich-Text Messages
Microsoft std exporting and importing the text data that included character set,font
table,section and paragraph formatting, doc. Formatting and color info RTF
Eg:- Windows based Desktop Publishing app.n Integrate text info with formatting
RTM provide capability of creating msg in one word processor and edit on other end
Extensions to RTF
Voice Messages
Voice mail systems answers the caller with recorded messages or to direct the caller to
seq of touch-tone key
Hypermedia extends voice mail systems to voice messages that are linked or embedded
with text msg
To avoid loss of data, single text msg envelope the voice msg
Audio (Music)
MIDI interfaces are used in wide variety of peripherals with high fidelity sound output
Integrated messaging s/m allow to link or embed the music file in MIDI format to E-mail
More Informative
More info can be conveyed an comprehended in short full motion video clip
Essential component
Allows recipient to detach the embedded video reference object, interpret its contents
and retrieval the actual video clip from video server and playback
Playback Systems
Tools:
5.3.3
Linking Objects:
o When object is linked, the source data object is called link source continues to
reside wherever it was the time the link was created
o Copied link ref is transferred while doc is at original position
o Linked object is not a part of a hypermedia document, it does not take up the
storage space within the hypermedia document
Embedded Objects
If the copy of the object is physically stored in the doc, then the multimedia object is
said to be embedded
Ex:- Graphics and images can be inserted in a rich-text on embedded using tech such
as OLE
5.3.4
Telephony API
5.3.6