You are on page 1of 116

MULTIMEDIA TECHNOLOGIES

(UNIT-II)

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.1
Animation

The simulation of movement created by a series of


pictures is animation.

But how it actually works is a bit more complicated


than that.

Animation is a method of photographing successive


drawings, models, or even puppets, to create an
illusion of movement in a sequence.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.2
Animation

Because our eyes can only retain an image for


approximately 1/10 of a second, when multiple
images appear in fast succession, the brain blends
them into a single moving image.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.3
Principles of Animation

How Animation Works


 Persistence of vision
 Still images are flashed in sequence
 Frame rate measures the speed of change

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.4
Principles of Animation

• Persistence of vision - biological phenomenon - an object


seen by the human eye remains mapped on the retina for a
brief time after viewing.
• Causes the visual illusion of movement, when images
change slightly and rapidly.
• Television video creates 30 frames per second
• Movies are shot at a rate of 24 frames per second and
replayed at 48 frames per second
• Both are used to create motion and animation

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.5
Principles of Animation

 Key frames identify the start and end of action


 The process of generating images that go between two
frames is known as tweening.
 The technique made famous by Disney
 Originally hand drawn are “flipped” through to check the
“motion”
 Ex- animated character to jump from one place to
another.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.6
Animation Techniques
• Traditional Animation or Classical 2D Animation:
In this animation, every picture for a scene is created by hand if anyone loves to paint then
traditional animation is very interesting for those people.
In this animation, an individual draw painting in a sheet or paper and also the pictures that
create a scene will be created by the hand and frame them together to create a proper
scene.

The drawings are displayed in a certain sequence, so the viewer can pre-visualize the
animation.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.7
Animation Techniques
• Digital 2D Animation:

This animation technique is widely used in the market to form a better animation with digital technologies.
It does not include to draw the painting by hand but we can draw them by computer also and arrange those
pictures in a fixed manner and play them to create a proper scene.

• Digital 3D Animation:
If anyone is interested in making an unreal character in the real-world than this animation technique is
awesome to work with. 3D animation is very popular in the animation industry from this technique
anyone can create any type of unreal short film to an unreal film in a real way. Those models which are
created by this technique is highly realistic.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.8
Animation Techniques
• Puppetry Animation:
Animation is created using puppets instead of objects.
Indian traditional ‘KATPUTLI’ is basically a better example of this animation in 90s puppets are used in
many small towns to organize a short pictures and scenes to entertain the audiences.
Those puppets are hung with thread and those threads were controlled by any person who played these
characters and creates a film or scene.
Also in the circus, we can find these animation technique.

• Clay Animation or claymation:


If anyone is interested in clay art than this technique of creating animation is better for those. In this
animation, a clay structure is formed and these clay arts are used to create an animation.
There are also many types of clay art such as oil clay art, dry clay art, etc.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.9
Animation Techniques
• Eraser Animation:
 As the name suggests, the sketches which are created by this technique is full black and white
because the pictures are created through pencils and these sketches can be erased as well.
 Many popular charcoal eraser films have been created using this technique and one famous animator
is William Kentridge.

• Flipflop Animation:

 When computers are not introduced to people there would some parts where animation is applicable.
 Painters and artists carry a small diary that is filled with some similar sketches and when the diary
flipped up it creates some movement which is known as flip flop animation.
 Flipbook animation is one of the oldest but fascinating kinds of animation.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.10
Motion Graphics – 2D & 3D

• Motion graphics are essentially 'graphics with movement’.

• Motion Graphics involves creating graphics and moving them in time and space to achieve an
intended goal or tell a story.

• Ex- Title sequences for films and TV shows

• The motion graphic elements are placed in a sequence of frames to create an illusion of motion.

• Unlike other forms of animation, animated motion graphics primarily use graphics.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.11
Motion Graphics – 2D & 3D

• Motion graphics are a type of animation.

• While motion graphics describes moving or animated graphic design, animation is an umbrella term
for the whole field of moving imagery, including everything from cartoons to claymation.

• Motion graphics focus on giving movement to graphic design elements, but tend to have less of a
concrete storytelling aspect than other types of animation.

• The terms are often used interchangeably and the distinction is not always completely black and
white.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.12
Cell Animation

• Cel animation is the art of creating 2D animation by hand on sheets of transparent plastic called
“cels”.

• Following a planning process, animators transfer draft drawings onto transparent sheets of plastic
called cels.

• Each cel features one drawing with an outline on one side of the plastic and the color is filled in on
the other.

• These ‘cels’ are then placed over a background and photographed in sequence.

• When played back at a speed of 12 or 24 frames they create the illusion of movement.

• It’s rare for traditional cel animation to be used in modern productions since everything is digital
now.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.13
Cell Animation

• Cel animation is a lengthy, expensive process that demands the involvement of a large team.
• The magic starts with a script and is handed over to a storyboard artist.
• Once the timing of each shot is locked down, a lead animator will draw rough sketches of each key
pose and note the timing on a dope sheet.
• The dope sheet is an essential tool for everyone from director to colorist.
• It dictates the length of time a movement takes and standardizes the sequence of the cels.
• After the key poses are sketched out and the dope sheet completed, junior animators draw the
in-betweens to smooth the movement between poses.
• Once all movement in the shot is approved the pencil sketches are passed onto an inker.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.14
Cell Animation
• The inker transfers the linework to a transparent film of thin plastic (a cel) using black ink.
• As soon as the ink is dry the film gets passed off to a ‘colorist’ who colors in the linework using
cel paint.
• They apply the color on the opposite side to the ink giving each cel a crisp look with clean,
consistent linework.
• While each cel is being inked and colored, more artists are hard at work creating the backgrounds
for each scene.
• Because these stay on screen for longer than an individual drawing, they are typically more detailed
and delicately shaded.
• If a character is moving through a scene, the background drawing will be big enough to allow for
that movement.
• Once all the cels and backgrounds are complete they are handed to a photography team.
• The team layers the drawings according to the dope sheet and takes a picture of each layered frame.
• These frames are played in sequence and create the final animation.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.15
Computer Animation
• Computer animation is a visual digital display technology that processes the moving images on
screen.

• In simple words, it can be put or defined as the art or power of giving life, energy and emotions
etc. to any non-living or inanimate object via computers.

• It can be presented in form of any video or movie. Computer animation has the ability to make any
dead image alive.

• The key/main concept behind computer animation is to play the defined images at a faster rate to
fool the viewer so that the viewer should interpret those images as a continuous motion of images.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.16
Computer Animation
• Computer Animation is a sub-part or say small part of computer graphics and animation.

• Nowadays, animation can be seen in many area around us.

• It is used in a lot of movies, films and games, education, e-commerce, computer art, training etc.

• It is a big part of entertainment area as most of the sets and background is all build up through VFX
and animation.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.17
Morphing

Morphing is the process of transitioning from one image to


another.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.18
Morphing

• A special effect in which one image transforms into another


• Process involves connecting a series of key points, which
are mapped from the start image to the end image to make
a smooth transition
• Image morphing techniques can generate compelling 2D
transitions between images.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.19
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.20
Dynamics

• A special effect in which one image transforms into another


• Process involves connecting a series of key points, which
are mapped from the start image to the end image to make
a smooth transition
• Image morphing techniques can generate compelling 2D
transitions between images.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.21
Video
• Video is the most recent addition to the elements of
multimedia
• It places the greatest demands on the computer
and memory (using about 108 GB per hour for full
motion)
• Often requires additional hardware (video
compression board, audio board, RAID -
Redundant Array of Independent Disks- for high
speed data transfer)
• Before adding video to a project, it is essential to
understand the medium, how to integrate it, its
limitations, and its costs

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.22
Video

Video Clips
Ways to obtain video
 shoot new film clips with a digital camcorder
 convert you own video clips to digital format
 acquire video from an archive - often very expensive,
difficult to obtain permissions or licensing rights

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.23
Video

Video Overlay System


• To display analog video (TV) images on a computer monitor,
the signal must be converted from analog to digital form
( Where else does this conversion commonly take place?)
• A special digitizing video overlay board is required for the
conversion
• Produces excellent quality, full screen, full motion video, but
costly.
• Overlay boards allow the video disc to be controlled by the
computer and display the images on the computer screen.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.24
Data Compression Algorithms
 Distinguish between lossless and lossy compression.

 Describe run-length encoding and how it achieves compression.

 Describe Huffman coding and how it achieves compression.

 Describe Lempel Ziv encoding and the role of the dictionary in encoding and
decoding.

 Describe the main idea behind the JPEG standard for compressing still
images.

 Describe the main idea behind the MPEG standard for compressing video
and its relation to JPEG.

 Describe the main idea behind the MP3 standard for compressing audio.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.25
Why Compress?
• To reduce the volume of data to be transmitted
(text, fax, images)
• To reduce the bandwidth required for transmission
and to reduce storage requirements (speech, audio,
video)

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.26
Data Compression Algorithms

Introduction
• Data Compression shrinks down a file so that it takes up
less space. This is desirable for data storage and data
communication.
• Storage space on disks is expensive so a file which
occupies less disk space is "cheaper" than an
uncompressed file.
• Smaller files are also desirable for data communication,
because the smaller a file the faster it can be transferred.
• A compressed file appears to increase the speed of data
transfer over an uncompressed file.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.27
Compression
• Compression: the process of coding that will
effectively reduce the total number of bits needed to
represent certain information.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.28
Compression
• There are two main categories
 Lossless
 Lossy
• Compression ratio:

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.29
Data Compression Algorithms

Data compression implies sending or storing a smaller


number of bits. Although many methods are used for this
purpose, in general these methods can be divided into two
broad categories: lossless and lossy methods.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.30
Data Compression Algorithms

Types of Data Compression


• There are two main types of data compression: lossy
and lossless.
• Lossy data compression is named for what it does. After
one applies lossy data compression to a message, the
message can never be recovered exactly as it was
before it was compressed. When the compressed
message is decoded it does not give back the original
message. Data has been lost.
• Because lossy compression can not be decoded to yield the
exact original message, it is not a good method of
compression for critical data, such as textual data.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.31
Lossy data compression

• In a sound file, for example, the very high and low


frequencies, which the human ear can not hear,
may be truncated from the file. Some examples of
lossy data compression algorithms are JPEG,
MPEG, and MP3 .

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.32
Data Compression Algorithms
Lossless data compression
• Lossless data compression is also named for what it does.
In a lossless data compression file the original message can
be exactly decoded.
• Lossless data compression works by finding repeated
patterns in a message and encoding those patterns in an
efficient manner.
• For this reason, lossless data compression is also referred
to as redundancy reduction. Because redundancy reduction
is dependent on patterns in the message, it does not work
well on random messages.
• Lossless data compression is ideal for text. Most of the
algorithms for lossless compression are based on the LZ
compression method developed by Lempel and Ziv .

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.33
Data Compression Algorithms

Loss Less Data Compression RLE

1. One type of text encoding which is very effective for files


with long strings of repeating bits is RLE.
2. RLE stands for Run Length Encoding. RLE uses a sliding
dictionary method of the LZ algorithm. The sliding dictionary
method utilizes pointers within the compressed file that
point to previously represented strings of bits within the file.
Here is an example of a message which could be
effectively encoded with RLE:
3. The rain in Spain falls mainly on the plain.
4. The string "ain" could be represented only once and could
be pointed to by all later calls to that string.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.34
Data Compression Algorithms
Lossless Data Compression
• For example, consider a screen containing plain black text on
a solid white background. There will be many long runs of
white pixels in the blank space, and many short runs of black
pixels within the text. Let us take a hypothetical single scan
line, with B representing a black pixel and W representing
white:
WWWWWWWWWWWWBWWWWWWWWWWWWBBBW
WWWWWWWWWWWWWWWWWWWWWWWBWWW
WWWWWWWWWWW
• If we apply the run-length encoding (RLE) data compression
algorithm to the above hypothetical scan line, we get the
following:
12WB12W3B24WB14W
• Interpret this as twelve W's, one B, twelve W's, three B's, etc.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.35
Data Compression Algorithms
1. Run-length encoding is probably the simplest method of
compression. It can be used to compress data made of any
combination of symbols. It does not need to know the
frequency of occurrence of symbols and can be very
efficient if data is represented as 0s and 1s.
2. The general idea behind this method is to replace
consecutive repeating occurrences of a symbol by one
occurrence of the symbol followed by the number of
occurrences.
3. The method can be even more efficient if the data uses
only two symbols (for example 0 and 1) in its bit pattern and
one symbol is more frequent than the other.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.36
Data Compression Algorithms

Run-length encoding example

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.37
Data Compression Algorithms

Run-length encoding for two symbols

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.38
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.39
• Advantages and disadvantages
• This algorithm is very easy to implement and does not
require much CPU horsepower. RLE compression is only
efficient with files that contain lots of repetitive data. These
can be text files if they contain lots of spaces for indenting
but line-art images that contain large white or black areas
are far more suitable. Computer generated colour images
(e.g. architectural drawings) can also give fair compression
ratios.
Where is RLE compression used?
• RLE compression can be used in the following file formats:
• TIFF files
• PDF files
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.40
Data Compression Algorithms

Huffman coding assigns shorter codes to symbols that occur


more frequently and longer codes to those that occur less
frequently. For example, imagine we have a text file that uses
only five characters (A, B, C, D, E). Before we can assign bit
patterns to each character, we assign each character a weight
based on its frequency of use. In this example, assume that
the frequency of the characters is as shown in Table 15.1.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.41
Data Compression Algorithms

Huffman coding

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.42
Data Compression Algorithms

A character’s code is found by starting at the root and following


the branches that lead to that character. The code itself is the
bit value of each branch on the path, taken in sequence.

Final tree and code


© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.43
Data Compression Algorithms

Huffman encoding

Let us see how to encode text using the code for our five
characters. Figure shows the original and the encoded text.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.44
Data Compression Algorithms

Huffman decoding

The recipient has a very easy job in decoding the data it receives.
Figure shows how decoding takes place.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.45
Data Compression Algorithms

Lempel –Ziv (LZ) Coding


• Uses codes documents by considering a string of characters at a time
instead of single characters.
• For Text compression, both the encoder and decoder holds a table
containing all possible words in the document.
• As each word occur in the text, the encoder stores the index of the word in
the table instead of the actual word.
• The decoder uses the index to access the corresponding word from the
table in order to reconstruct the document.
• The table is used as dictionary and the LZ algorithm is also known as
dictionary based compression algorithm.
• Most word-processing packages have a dictionary associated with them
which is used for both spell checking and for the compression of the text.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.46
• In 1977, two Israeli information theorists, Abraham Lempel
and Jacob Ziv, introduced a radically different way of
compressing data - one which would avoid the uncertainty of
making predictions or the wastefulness of pre-reading data.

• -LZ77 and LZ78, two dictionary-based data compression


techniques described by these two researchers, provided a
whole new way of viewing the world of data compression.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.47
Lempel Ziv (LZ) encoding is an example of a category of
algorithms called dictionary-based encoding. The idea is to
create a dictionary (a table) of strings used during the
communication session. If both the sender and the receiver
have a copy of the dictionary, then previously-encountered
strings can be substituted by their index in the dictionary to
reduce the amount of information transmitted.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.48
• we take a simple alphabet containing only two letters, a and
b, and create a sample stream of text. An example of such a
stream is shown below (Figure 1):

Figure 1: A stream of a's and b's in a sample text

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.49
• Rule: Separate this stream of characters into pieces of text
so that the shortest piece of data is the string of characters
that we have not seen so far.
• According to the above rule, we see that the first piece of
our sample text is a. The second piece must then be aa. If
we go on like this, we obtain the breakdown of data
illustrated in Figure 2:

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.50
Sender : The Compressor
• Before compression, the pieces of text obtained in the
breaking-down process must be indexed from 1 to n, as in
Figure 3 below:

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.51
• These indices are used to number the pieces of data. The
empty string (start of text) has index 0. The piece indexed by
1 is a. Thus a, together with the initial string, must be
numbered Oa. String 2, aa, will be numbered 1a, because it
contains a, whose index is 1, and the new character a. In
this way, we proceed to number all the pieces in terms of
those that came before them. See Figure 4 for an illustration
of this technique:

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.52
• We can now throw away our old stream of text and send the
encoded information to the receiver

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.53
Data Compression Algorithms

Lempel-Ziv- Welsh (LZW) Coding


• This scheme allows dictionary to be build up dynamically
by the encoder and decoder as the compressed text is
stored. Such a dictionary would be always contain the
words in the document.
• Initially the dictionary contains only the ASCII character
set.
• The remaining entries are then dynamically added as
each word is encountered. Let us suppose that the
dictionary is a 8-bit table and therefore of containing 256
entries. The first 128 bit entries are populated with ASCII
character set, while the remaining 128 is empty initially.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.54
Data Compression Algorithms

Cont’d
• When the first word is encountered in the document, at first word is
interpreted as a collection of characters and each character is
replaced by its index in the table.
• At the end of the word when white space character is encountered,
the encoder stores the word in the next available free slot of the
table and uses that index number to represent the word hence,
forth.
• This procedure is repeated for each word, however prior to
encoding the characters individually the encoder to check to see if
the word is already stored in the table.
• If it is the word is represented by its index number only.
• The decoder has access to the same table and uses the index
number to retrieve the original word.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.55
Data Compression Algorithms

Cont’d

• In order to optimize the number of bits used ,initially the


number of entries in the table is kept relatively low but if
the available speed is used up, the number of slots can
be increased incrementally.
• If all the entries in the table is used up ,the encoder and
decoder is able to double the size of the table to 512
entries. This requires 9-bit representation ,and so from
that point onwards the encoder uses a 9-bit codeword.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.56
Two main schools of image compression
• Lossless • Lossy
 Stored image data  Stored image data can
can reproduce reproduce something
original image exactly that looks “close” to the
original image
 Takes more storage  Uses both quantization
space and entropy coding
 Uses entropy coding  Usually involves
only (or none at all) transform into
 Examples: BMP, frequency or other
TIFF, GIF domain
 Examples: JPEG,
JPEG-2000

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.57
The Flow of Image Compression
What is the so-called image compression coding?
 To store the image into bit-stream as compact as possible and to
display the decoded image in the monitor as exact as possible

Images contain three types of redundancies:


1. Spatial redundancy - due to correlation between neighboring
pixels
2. Spectral redundancy - due to correlation among the color
components
3. Psycho visual redundancy - due to properties of the human
visual system

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.58
The Flow of Image Compression

• Flow of compression
 The image file is converted into a series of binary data,
which is called the bit-stream
 The decoder receives the encoded bit-stream and
decodes it to reconstruct the image
 The total data quantity of the bit-stream is less than the
total data quantity of the original image
Original Image Decoded Image
Bitstream

Encoder 0101100111... Decoder

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.59
Data Compression Algorithms

Graphics Interchange Format (GIF)


• The Graphics Interchange Format (GIF) is an 8-bit-per-pixel
Raster graphics image format that was introduced by
CompuServe in 1987 and has since come into widespread
usage on the World Wide Web due to its wide support and
portability.

• The format uses a palette of up to 256 distinct colors from the


24-bit RGB color space. It also supports animations and allows
a separate palette of 256 colors for each frame. The color
limitation makes the GIF format unsuitable for reproducing
color photographs and other images with continuous color, but
it is well-suited for more simple images such as graphics or
logos with solid areas of color.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.60
GIF(Graphics Interchange Format)

• GIF images are compressed using the Lempel-Ziv-


Welch (LZW) lossless data compression technique to
reduce the file size without degrading the visual quality.
This compression technique was patented in 1985.
Though the relevant patents have all since expired, the
controversy over the licensing agreement between the
patent holder, Unisys, and CompuServe in 1994 led to
the development of the Portable Network Graphics
(PNG) standard.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.61
GIF(Graphics Interchange Format)

GIF Image Coding Standard


• Used extensively to compress images for use on the
Internet.
• 8-bit format i.e. it can represent maximum of 256 colors.
• Color Look Up table (CLUT) to store the color values of
pixels.
• The table consists of 256 rows and three columns.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.62
GIF(Graphics Interchange Format)

The GIF CLUT

Pixels R G B Index
Pixel1 r1 g1 b1 001
Pixel2 r2 g2 b2 002
Pixel3 r3 g3 b3 003
Pixel4 r4 g4 b4 004
……. ……… ….. …….. ……..
Pixel256 r256 g256 b256 256

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.63
Colours in GIF
• The format supports up to 8 bits per pixel thus allowing a single image to
reference a palette of up to 256 distinct colors.
• However only the number of different colours is restricted to 256. The
real colour representation is defined by colour tables using an RGB
colour system with 8 bit resolution per primary colour. In total 256 out of
16.7 million colours are available.
• Red x Green x Blue
• 28 x 2 8 x 28 = 224  16.777.216 colors
• Generally a GIF picture may consist of several picture segments. Each
segment is arranged in a logical picture, which is then projected into the
bitmap intended for displaying.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.64
Data Compression in GIF
• Lempel-Ziv-Welch (LZW) lossless data compression technique is used
to reduce the file size without degrading the visual quality.

• It is characterised by its ability to compress recurring sequences of


pixels effectively.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.65
Uses and restrictions
 Suitable areas of application:
 Drawings (technical or line-drawings)
 Diagrams
 Sketches
 Logos
 Icons
 Thumbnails

 Restricted areas of application:


 Photos, photo-realistic graphics
 Files, which require a strong compression and/or reduction of the data
volume
 Generally data with a large number of colours
 Pictures with homogenous colour changes
 Open source or freeware projects (licenses are required; it is not well-
known, when patents expire in ALL countries)

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.66
GIF87A
• The first version of GIF already provides all functions and
characteristics as mentioned previously.

• GIF87a was already created with perspective to functional


extension.

• The layout provides optional "extension blocks“, only for


unspecific information created by the producers.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.67
GIF89a
• The version GIF89a (published in 1989) offers a variety of extensions in addition
to the previous version GIF87a.
• Substantial extensions of GIF89a:
 Transparency- define color index representing transparent pixels
 Delay Times- it stops the processing for a certain period
 Text Functions- used to define text data, which shall be embedded into
the picture
 Comments- for author or copyright information
 Applications- information about the application, which had generated the
GIF89a file
• The extension blocks provide a variety of additional information, which do not
have a direct influence on the picture and serve only for internal purposes.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.68
JPEG (Joint Photographic Experts Group)

• Most dominant image format


today
• Typical file size is about 10%
of that of BMP (can vary
depending on quality settings)
• Unlike GIF, JPEG is suitable
for photographs, not so much
for logos and textual graphics

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.69
Image compression in JPEG
• A typical compression system contains three blocks:
1. The first for transformation,
2. The second for quantization and
3. The third for encoding.

Input Image Binary bit


stream
Transformer Quantizer Encoder

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.70
Image compression
The transform throws away correlations
– If you make a plot of the value of a pixel as a function of
one of its neighbours

– you will see that the pixels are highly correlated (i.e. most of
the time they are very similar)
– This is just a consequence of the fact that surfaces are
smooth

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.71
Lossy /Perceptual Compression

JPEG Image Coding Standard

• ISO/IEC 10918-1
• Developed in collaboration with the International
Telecommunication Union (ITU)
• JPEG is a compression standard for cosine-tone-gray-scale
or color images.
• Uses a combination of discrete cosine transform,
quantization, run length encoding and Huffman encoding
techniques, and supports several modes of operation
including lossless and various types of lossy modes.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.72
Data Compression Algorithms

Image compression – JPEG encoding


an image can be represented by a two-dimensional array (table) of
picture elements (pixels).
A grayscale picture of 307,200 pixels is represented by 2,457,600
bits, and a color picture is represented by 7,372,800 bits.

In JPEG, a grayscale picture is divided into blocks of 8 × 8 pixel


blocks to decrease the number of calculations because, as we will
see shortly, the number of mathematical operations for each picture
is the square of the number of units.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.73
Data Compression Algorithms

JPEG grayscale example, 640 × 480 pixels

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.74
Data Compression Algorithms

The whole idea of JPEG is to change the picture into a linear


(vector) set of numbers that reveals the redundancies. The
redundancies (lack of changes) can then be removed using
one of the lossless compression methods we studied
previously. A simplified version of the process is shown in
Figure..

The JPEG compression process

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.75
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.76
Compression and reconstruction

© Bharati Vidyapeeth’s
EA C473 Institute of Computer Applications and 13-Feb-2007
Multimedia Computing Management, New Delhi-63,by Vaishali Joshi. U2.77
Data Compression Algorithms

Discrete cosine transform (DCT)

In this step, each block of 64 pixels goes through a


transformation called the discrete cosine transform (DCT).
The transformation changes the 64 values so that the
relative relationships between pixels are kept but the
redundancies are revealed. P(x, y) defines one value in the
block, while T(m, n) defines the value in the transformed
block.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.78
Data Compression Algorithms

To understand the nature of this transformation, let us show the


result of the transformations for three cases.

Case 1: uniform grayscale

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.79
Data Compression Algorithms

Case 2: two sections

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.80
Data Compression Algorithms

Case 3: gradient grayscale

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.81
Data Compression Algorithms

Quantization
After the T table is created, the values are quantized to
reduce the number of bits needed for encoding. Quantization
divides the number of bits by a constant and then drops the
fraction. This reduces the required number of bits even
more. In most implementations, a quantizing table (8 by 8)
defines how to quantize each value. The divisor depends on
the position of the value in the T table. This is done to
optimize the number of bits and the number of 0s for each
particular application.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.82
Data Compression Algorithms

Compression
After quantization the values are read from the table, and
redundant 0s are removed. However, to cluster the 0s
together, the process reads the table diagonally in a zigzag
fashion rather than row by row or column by column. The
reason is that if the picture does not have fine changes, the
bottom right corner of the T table is all 0s.

JPEG usually uses run-length encoding at the compression


phase to compress the bit pattern resulting from the zigzag
linearization.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.83
Data Compression Algorithms

Reading the table


© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.84
Lossy /Perceptual Compression
Modes of Operation
Four modes
 Sequential Encoding
This is the simplest lossy mode. It involves a single scan, Left to
right and top to bottom.

 Progressive Encoding
This mode allows the image to be rebuilt in multiple coarse-to-
clear passes since the encoding is done in multiple scans.

 Lossless Encoding
This mode doe not involve any data loss.
 Hierarchical Encoding
This mode comprises multiple resolution levels which can be
decompressed separately.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.85
Lossy /Perceptual Compression

Discrete Cosine Transform


• Transform each block from the spatial domain to the
frequency domain.
• Each block is composed of 64 values which represents the
amplitude of the sampled signal for the considered
component, i.e. Y,U or V.
• Y,U or V are frequency coordinates in the transform domain.
• This amplitude is a function of the two spatial coordinates.
• Function a=f (x,y) where x and y are two spatial dimensions.
• ‘a’ represents the amplitude of the signal (or pixel) at the
sampled position (x,y).

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.86
Lossy /Perceptual Compression

(Cont’d)

• After this function is turned into another function c=g(Fx,Fy)


where c is a coefficient and Fx and Fy are the respective
spatial frequencies for each direction. For an image these
frequencies determines how rapidly the luminance and color
change in each direction.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.87
Lossy /Perceptual Compression

Zig-Zag Scanning Patterns


• The zig-zag scanning pattern for run-length coding of the quantized DCT
coefficients was established in the original MPEG standard.
• The same pattern is used for luminance and for chrominance.
• The patterns are represented below, in which the upper left corner is the
DC term.
• zig-zag scan order:
0 1 5 6 14 15 27 28
2 4 7 13 16 26 29 42
3 8 12 17 25 30 41 43
9 11 18 24 31 40 44 53
10 19 23 32 39 45 52 54
20 22 33 38 46 51 55 60
21 34 37 47 50 56 59 61
35 36 48 49 57 58 62 63

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.88
Lossy /Perceptual Compression

(Cont’d)

alternate scan order:


0 4 6 20 22 36 38 52
1 5 7 21 23 37 39 53
2 8 19 24 34 40 50 54
3 9 18 25 35 41 51 55
10 17 26 30 42 46 56 60
11 16 27 31 43 47 57 61
12 15 28 32 44 48 58 62
13 14 29 33 45 49 59 63

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.89
Example - One everyday photo with file size
of 2.76 MB

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.90
Example - One everyday photo with file size
of 600 KB

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.91
Example - One everyday photo with file size
of 350 KB

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.92
Example - One everyday photo with file size of
240 KB

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.93
Example - One everyday photo with file
size of 144 KB

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.94
Example - One everyday photo with file
size of 88 KB

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.95
Analysis
• Near perfect image at 2.76M, so-so image at 88K
• Sharpness decreases as file size decreases
• Which file size is the best?
 No correct answer to this question
 Answer depends upon how strict we are about image
quality, what purpose image is to be used for, and the
resources available

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.96
Gif vs. jpeg
• FEATURE JPEG GIF

• Color depth: stores full color info stores only 8 bits/pixel


(24 bits/pixel). (for inexpensive displays)
• Edge : tends to blur sharp edges does very well with
preservation ‘graphics’
• B&W imagery: is not suitable for is lossless for gray
scale two-tone imagery images (up to 256 gray
values)
• JPEG:
• • 10:1 to 20:1 compression without visible loss (effective storage
• requirement drops to 1-2 bits/pixel)
• • 30:1 to 50:1 compression with small to moderate visual
• deterioration
• • 100:1 compression for low quality applications
• GIF:
• • 3:1 compression by reducing color space to 8 bits
• • LZW coding may improve compression up to 5:1

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.97
Data Compression Algorithms

Video compression – MPEG encoding

The Moving Picture Experts Group (MPEG) method is used


to compress video. In principle, a motion picture is a rapid
sequence of a set of frames in which each frame is a picture.
In other words, a frame is a spatial combination of pixels, and
a video is a temporal combination of frames that are sent one
after another. Compressing video, then, means spatially
compressing each frame and temporally compressing a set of
frames.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.98
Data Compression Algorithms
Spatial compression
The spatial compression of each frame is done with JPEG, or
a modification of it. Each frame is a picture that can be
independently compressed.

Temporal compression
In temporal compression, redundant frames are removed.
When we watch television, for example, we receive 30 frames
per second. However, most of the consecutive frames are
almost the same. For example, in a static scene in which
someone is talking, most frames are the same except for the
segment around the speaker’s lips, which changes from one
frame to the next.
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.99
Data Compression Algorithms

MPEG frames

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.100
Lossy /Perceptual Compression
MPEG Standards Overview

• MPEG standards have been playing a major role and


definitely strongly contributed to shape the current
multimedia landscape and to give the users the possibility to
enjoy multimedia in a large scale.
• The Motion Pictures Expert Group (MPEG) is a working
group under ISO/IEC( International Standards
Organization/International Electro technical Commission) set
up to formulate a set of standards relating to a range of
multimedia application involving audio and video primarily.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.101
Lossy /Perceptual Compression

MPEG-1
• Established in 1988, the group has produced MPEG-1, the
standard on which such products as Video CD and MP3 are
based.
• It has five different parts:
Part1-Systems(ISO/IEC 11172-1:1993): It addresses the
problem of combining one or more data streams from video
and audio parts of the MPEG-1 standard with timing
information to form a single stream. Once so combined the
data becomes suitable for digital storage and transmission.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.102
Lossy /Perceptual Compression

MPEG-1(Cont’d)

• Part2-Video(ISO/IEC11172-2:1993): It specifies a coded


representation that can be used for compressing video
sequences as bit rates about 1.5 Mbit /sec. The algorithm
uses DCT to remove spatial redundancy and motion
compensation to remove temporal redundancy.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.103
Lossy /Perceptual Compression

Figure 2 -- Example of temporal picture structure

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.104
Lossy /Perceptual Compression

(Cont’d)

• Part3-Audio(ISO/IEC 11172-3:1993):It specifies a coded


representation that can be used for compressing audio
sequences. The algorithm uses a model to filter out relevant
portions from the input audio stream before feeding it to the
quantizer.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.105
Lossy /Perceptual Compression

Cont’d

• Part4:ComplianceTesting(ISO/IEC11172-4:1995):It specifies
how tests can be designed to verify whether bit streams and
decoders meet the requirement as specified above.
• These tests can be used by manufacturers of the encoders and
decoders to verify whether they conform to the specifications.
• Part5-Software Simulation (ISO/IEC TR 11172-5:1998) It
technically not a standard but a technical report giving a full
software implementation of the first three parts of the standard.
The source code is not publicly available.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.106
Lossy /Perceptual Compression

Other Standards
• MPEG-2: the standard on which such products as Digital
Television set top boxes and DVD are based.
• MPEG-3:Originally designed for HDTV.
• MPEG-4: the standard for multimedia for the fixed and
mobile web.
• MPEG-7: the standard for description and search of audio
and visual content
• MPEG-21: the Multimedia Framework.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.107
Data Compression Algorithms

Audio compression

Audio compression can be used for speech or music. For


speech we need to compress a 64 kHz digitized signal, while
for music we need to compress a 1.411 MHz signal. Two
categories of techniques are used for audio compression:
predictive encoding and perceptual encoding.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.108
Long Questions
1.Discuss the different techniques foe data compression.
2.Explain any text compression techniques with an example.
3.What is authoring? Explain about different authoring tools.
4.Explain the Data compression concept of Image.
5.What are the building blocks of multimedia? Explain.
6. Explain data compression techniques with example.
7. What is Animation? What are its different types? Explain
with example.
8.Explain how Huffman Tree is developed and used to
compress text?
9. Why do you need Data Compression? Explain different
techniques.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.109
Long Questions

10.Explain the principle of operation of LZ compression


algorithm.
11. Explain the concept or procedure of making JPEG file?
12. State the basic form of representation of text, an image,
audio and video?
13.Describe the process of creation of a multimedia
application; user interface and essential requirement in
detail.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.110
Short Questions
1.What is animation? Explain its types?
2. What is the difference between morphing and animation?
3.Compression with an example.
4.Why cannot we use lossy compression techniques in text like
images?
5. How audio and video signals are digitized?
6.Differentiate between animation and video.
7. Describe any two compression technique in details.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.111
Short Questions

8.Explain the following: -


(a)Video editing tools
(b)JPEG Compression
(c )Lossy and lossless compression Techniques
(d)Inter and Intra compression.
(e)JPEG
(f) Digital Broadcasting
(g) GIF

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.112
Multiple Choice Question

1.A family of graphic characters that usually includes many


type sizes and styles is called a:
(a) Typeface (b)font (c)point (d) node)
2.Which of the following is a term that applies to the spacing
between characters of text?
(a)Leading (b) kerning (c )tracking (d) dithering
3.When a password must be entered in upper-lowercase in
order to match the original password, it is said to be………
4.Type size are usually expressed in………..
5.Which of the following is a character encoding system?
(a)Font Tab (b)HTML (c )unicode (d) WYSIWYG

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.113
Multiple Choice Question
6.The refrence from one document to another
document,image,sound,or file on the web is a(n):
(a)Sweetspot (b)anchor (c) node (d)tag
7.The branch of physics that studies sound is…..
8.Reducing the number of separate measurement of an audio
file is called……
9.The process of playing a sound file while part of the file is still
downloading is called….
10.A 16-bit image is capable of representing how many
different colors?
(a)2 (b)16 (c ) 256 (d)65,536 (e) 16,772,216

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.114
Multiple Choice Question
11.Which image file type is best for photographs?
(a)Vector (b) encapsulated PostScript
(c) Bitmap (d) laser
(e) Shockware
12.Which of the following is not a color specification format?
(a) RGB (b)HSB (c) GIF (d)CMYK (e) CIE
13.A hard disk system that will support high speed data
transfer rates is called….
14.Which of the following is not a television format?
(a)MPEG (b)NTSC (c) PAL (d) SECAM (e)HDTV

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.115
Thanks…..
References
Books:
Multimedia: Making It Work
By: Tay Vaughan
Information Technology: Principles and Applications
By: Ajoy Kumar Ray & Tinku Acharya
Multimedia System Design :K. Andleigh and K. Thakkar

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63,by Vaishali Joshi. U2.116

You might also like