• No results found

Dynamic Adaptation in an Image Transcoding Proxy For Mobile Web Browsing

N/A
N/A
Protected

Academic year: 2021

Share "Dynamic Adaptation in an Image Transcoding Proxy For Mobile Web Browsing"

Copied!
31
0
0

Loading.... (view fulltext now)

Full text

(1)

Pravin Bhagwat, Richard Han, Richard LaMaire, Todd Mummert, Veronique Perret, Jim Rubas

Mobile Networking Group

Chung-Sheng Li, Rakesh Mohan, John R. Smith

Image Information Systems Group

Contact: Rick Han ([email protected])

Dynamic Adaptation in an Image

Transcoding Proxy For Mobile Web

(2)

Outline

Architecture

Analysis: when and when not to transcode Case I: Store-and-forward

Image size prediction Image delay prediction Bandwidth estimation Case II: Streaming

Practical rules GIF/JPEG

Other transcoding proxies Summary

(3)

Transcoding Proxy Server Clients CDPD ISDN Cellular Wireline modem Wireless LAN High Bandwidth Low Bandwidth

(4)

0 100 200 300 400

Bottleneck Link Speed (Kb/s)

-20 0 20 40 60 80 100

Response Time Reduction %

Image Size = 24Kbytes

transcoding threshold A transcoder

1. converts formats => tailoring of data to multiple devices (e.g. Palm PDA) 2. permits compression

Reduced response time via compression over low-bandwidth links. Cost reduction via compression over tariffed links.

Example parameters: "AnyImage" library, 200 MHz Pentium Pro, Windows NT, JPEG quality = 5.

Reasons to Transcode

Image size = 24 KB

(5)

Transcoding Proxy Architecture

HTTP Internet Internet Transcoding HTTP Proxy Web Server Web Browser Content Analysis Adaptive Transcoding Policies: When and how

much to transcode Text Modification Decode Compress Images Text Modified Text/HTML Transcoded Image Client/Device Capabilities Client-to-Proxy Bandwidth User Preferences Proxy-to-Server Bandwidth Transformation Modules

(6)

Adapting to Dynamic User Input

In low-bandwidth environments, let the user

dynamically change the tradeoff between image quality and download time.

Can turn color on/off

Can turn automatic adaptation on/off

Web server CDPD modem ISDN Auto Faster Download More Distillation Slower Download Less Distillation browser

IBM has a great set of mobile products.

Proxy

Image transcoders

(7)

Store-and-Forward Image Transcoding

t

no proxy

= S/min(B

pc

, B

sp

) + D

prop+queue

t

proxy

= S/B

sp

+ D

p

(image) + S

p

(image)/B

pc

+ D

prop+queue

S/F transcoding output transmission delay delay delay

Image

Transcoding

Proxy

Web

client

Image size S Bandwidth Bsp Image size Sp(image) Bandwidth Bpc Transcoding Delay Dp(image)

Web

server

Definition: A store-and-forward image transcoder must wait to transcode until the whole image is received and must wait to transmit until

(8)

To Transcode or Not To Transcode

Only transcode when tproxy < tno proxy :

S/Bsp + Dp(image) + Sp(image)/Bpc < S/min(Bpc, Bsp)

Case I: Bsp < Bpc (server-proxy link is bottleneck)

=> Never transcode when Internet backbone is the bottleneck!

Case II: Bpc < Bsp (proxy-client link is bottleneck)

=> Only transcode when

(9)

Predicting the Output Image Size

S

p

(image) depends upon image content, image dimensions, image

input size, transcoding parameters, compression algorithm

prediction occurs before transcoding => get info from

image headers

(10)

Sample characteristics:

Obtained by visiting top 100 web sites.

1074 GIFs (ave. of 2724 bytes), 123 JPEGs (ave. of 4697 bytes). Platform:

200 MHz Pentium Pro proxy running Windows NT. "Anymain" image library.

Web Server

Client Proxy

image size S image size Sp(image)

(11)

Sp=f(input bytes), GIF-to-JPEG,

q=5, ρ=0.54

Web Server

Client Proxy

image size = S image size = Sp(image)

Sp=f(input pixels), GIF-to-JPEG, q=5,

ρ=0.90

(12)

Sp=f(input pixels), JPEG-to-JPEG,

q=5, ρ=0.94

Web Server

Client Proxy

image size = S image size = Sp(image)

Sp=f(input pixels), JPEG-to-JPEG,

q=50, ρ=0.92

(13)

Predicting the Image Transcoding Delay

Dp(image) = Dimage transformations + DCPU

Dimage transformations depends on input size, image dimensions, image content,

transcoding parameters, decompression & compression algorithms, implementation efficiency of image library

use image headers and statistical analysis to predict the image processing delay

(14)

Web Server

Client Proxy

image size = S image size = Sp(image)

D

p

(image)

Dp=f(input bytes), GIF-to-JPEG,

q=5, ρ=0.65

Predicting the Image Transcoding Delay

Dp=f(input pixels), GIF-to-JPEG,

(15)

Web Server

Client Proxy

image size = S image size = Sp(image)

D

p

(image)

Dp=f(input pixels), JPEG-to-JPEG,

q=50, ρ=0.98

Predicting the Image Transcoding Delay

Dp=f(input pixels), JPEG-to-JPEG,

(16)

Bandwidth Estimation

NetDyn: passive network monitoring

Client-proxy link bandwidth estimation (long-lived) Proxy-server link bandwidth estimation (transient) Querying for SPAND-like statistics

Web Server 1

Web Server 2

Proxy Client

(17)

Streamed Image Transcoding

Definition: A streamed image transcoder can begin writing out transcoded image data before having fully read in an image.

R1= image rate into input buffer

R2= image rate at which streaming transcoder empties input buffer

R3= transcoded image rate into link buffer

R4= image transmission rate out of link buffer

Web server Streaming Transcoder Link Buffer Web Client Input Buffer Transcoding Proxy R1 R2 R3 R4

(18)

To Transcode or Not To Transcode Redux

Condition I: Don't overflow the input buffer R2 > R1 => S/Dp(image) > Bsp

=> Dp(image) < S/Bsp

Condition II: Don't overflow the output link's buffer R4 > R3, and image rate @ R3 = image rate @ R1

=> Bpc > Sp(image)/[S/Bsp]

=> c > Bsp/Bpc , compression ratio c = S/Sp(image)

Web server Streaming Transcoder Link Buffer Web Client Input Buffer Transcoding Proxy R1 R2 R3 R4

(19)

Streamed Image Transcoding (cont.)

Only transcode when Conditions I and II hold: (I) Dp(image) < S/Bsp

(II) c > Bsp/Bpc

If Bsp < Bpc (server-proxy link is bottleneck)

=> Condition II always satisfied. Only have to test Condition I. If Bpc < Bsp (proxy-client link is bottleneck)

=> Both Conditions I and II must be evaluated.

(20)

Web Browser Web Browser Apache Transcoding Proxy RAS IGN Modem Connection Wireless Connection HTTP HTTP Palm PDA Laptop Web server Web server Pravin Bhagwat, Richard Han, Richard LaMaire, Todd Mummert, Veronique Perret, Jim Rubas Auto Faster Download More Distillation Slower Download Less Distillation

(21)

Current Store-and-Forward Transcoding

Policies

if to laptop

if (input size>1000 bytes) if input is GIF

if well-compressed GIF

GIF->GIF as f(user pref.) else

GIF->JPEG as f(user pref.) else

JPEG->JPEG as f(user pref.) if (output > input size)

send original image else

send transcoded image else /*to Palm*/

GIF/JPEG->Palm as f(user pref.)

* adapts to user

preferences and client device

* adapts to network bandwidth in a static sense

* currently does not predict image delay or output size

(22)

Why GIF Is Well-Suited to

Compressing "Graphics"

GIF based on LZW:

Build dictionary by scanning pixel rows

add a new word = matched word + 1 character/pixel send offsets into dictionary

When there are few colors, you get long runs of the same color/pattern, and GIF compresses well.

When there are many colors, there are few long patterns, so GIF's don't compress as well.

(23)

Why JPEG Is Well-Suited to

Compressing a Natural Image

JPEG has 3 stages:

DCT -> quantization -> lossless (RL + Huffman or arithmetic) DCT concentrates info in low frequency coefficients, so

quantization tends to remove high-frequency coefficients

Natural images often consist of mostly low-frequency/variation, or unimportant high-frequency background, so quantization doesn't hurt quality, and achieves high compression

Graphical images have much high-frequency information, so JPEG hurts their reconstructed quality.

(24)

Original: 20,796 bytes

Quality factor = 35: 6,993 bytes 33.6% of original

Quality factor = 5: 2525 bytes 12.1% of original

Grayscale and

Quality factor = 5: 1,886 bytes 9.1% of original

(25)

Rationale for Transcoding Policies

Static evaluation of store-and-forward inequality: S/Bsp + Dp(image) + Sp(image)/Bpc < S/min(Bpc, Bsp) fix Bsp=1 Mb/s, Bpc=50 kb/s, Dp=40 ms+∆, Sp=αS => S>(263+∆')/(1-α) => ~800 byte lower limit

(α=0.5) if to laptop

if (input size>1000 bytes) if input is GIF

if well-compressed GIF

GIF->GIF as f(user pref.) else

GIF->JPEG as f(user pref.) else

JPEG->JPEG as f(user pref.) if (output > input size)

send original image else

send transcoded image else /*to Palm*/

(26)

Rationale for Transcoding Policies

GIF->GIF: If an image is already

well-compressed in GIF format, e.g.

graphics, then converting to JPEG would likely expand the image and reduce quality.

bpp = S/(H x W); if (bpp<0.1) ...

GIF->JPEG: most input GIF's

JPEG->JPEG: all input JPEG's JPEG->GIF. A typical JPEG will have many colors and subtle

shadings => GIF likely expands image.

if to laptop

if (input size>1000 bytes) if input is GIF

if well-compressed GIF

GIF->GIF as f(user pref.) else

GIF->JPEG as f(user pref.) else

JPEG->JPEG as f(user pref.) if (output > input size)

send original image else

send transcoded image else /*to Palm*/

(27)

Rationale for Transcoding Policies

GIF->GIF: If an image is already

well-compressed in GIF format, e.g.

graphics, then converting to JPEG would likely expand the image and reduce quality.

bpp = S/(H x W); if (bpp<0.1) ...

GIF->JPEG: most input GIF's

JPEG->JPEG: all input JPEG's JPEG->GIF. A typical JPEG will have many colors and subtle

shadings => GIF likely expands image.

if to laptop

if (input size>1000 bytes) if input is GIF

if well-compressed GIF

GIF->GIF as f(user pref.) else

GIF->JPEG as f(user pref.) else

JPEG->JPEG as f(user pref.) if (output > input size)

send original image else

send transcoded image else /*to Palm*/

(28)

Rationale for Transcoding Policies

GIF->GIF: If an image is already

well-compressed in GIF format, e.g.

graphics, then converting to JPEG would likely expand the image and reduce quality.

bpp = S/(H x W); if (bpp<0.1) ...

GIF->JPEG: most input GIF's

JPEG->JPEG: all input JPEG's JPEG->GIF. A typical JPEG will have many colors and subtle

shadings => GIF likely expands image unless we can find fast colormap reduction.

if to laptop

if (input size>1000 bytes) if input is GIF

if well-compressed GIF

GIF->GIF as f(user pref.) else

GIF->JPEG as f(user pref.) else

JPEG->JPEG as f(user pref.) if (output > input size)

send original image else

send transcoded image else /*to Palm*/

(29)

Other Transcoding Proxies

UCB/ProxiNet - real-time transcoding proxy for small clients

(Pythia supported PC's/laptops)

Spyglass' Prism - real-time transcoding proxy for small

clients (text and images)

AvantGo 2.0 - hot-synch proxy for small devices, possibly

off-line transcoding

Intel's QuickWeb - defunct, real-time transcoding proxy for

PC's/laptops, light transcoding

(30)

Other Research Issues

Integrating caching proxies with transcoding

Split browser paradigm

Scalability/Load-Balancing

(31)

Summary

Derived theoretical conditions determining when proxies should

adaptively transcode images

Store-and-forward

Streaming

Presented a set of practical transcoding policies that are

statically adaptive

Paper: "Dynamic Adaptation In An Image Transcoding Proxy For

Mobile Web Browsing", December 1998, IEEE Personal

References

Related documents

This paper, therefore, aims at exploring the challenges teaching Arabic in the high schools of Zabol faces, using questionnaires and opinion polls followed by analyzing data

As the project A, the Brazilian organization already had process for SCM defined according to the CMM model, but neither the US nor the Indian team had the maturity to work in

Let us take an example: an object image will contain the variables which make it possible to define an image (as the size of the image, its mode of compression, the image itself)

Director of Professional Development in the Center for Advanced Practice Nursing and Allied Health Vanderbilt University Medical

Fig.1 Input image Fig.2 Decompressed image The input image shown in Fig.1 to which the above Huffman coding algorithm is applied for the generation of codes and then

A report by the Institute of Medicine#{176} of the National Academy of Sciences has estimated that current rates of low birth weight infants could be reduced by 15% among the

For a cross-case analysis, group B did a similar questionnaire at the beginning (28 November 2018) and at the end of the course (14 February 2019). Course questionnaires

On the other hand, when the player’s video queue size was reduced, the streaming via HLS protocol was first to show changes in quality in both lossy and