Dynamic Adaptation in an Image Transcoding Proxy For Mobile Web Browsing



Similar documents
Computer Performance. Topic 3. Contents. Prerequisite knowledge Before studying this topic you should be able to:

Key Components of WAN Optimization Controller Functionality

FCE: A Fast Content Expression for Server-based Computing

Image Compression through DCT and Huffman Coding Technique

Frequently Asked Questions

ANALYSIS OF THE EFFECTIVENESS IN IMAGE COMPRESSION FOR CLOUD STORAGE FOR VARIOUS IMAGE FORMATS

Frequently Asked Questions

Compression techniques

Analysis of TCP Performance Over Asymmetric Wireless Links

How to Send Video Images Through Internet

Comparison of different image compression formats. ECE 533 Project Report Paula Aguilera

Design and Implementation of a Storage Repository Using Commonality Factoring. IEEE/NASA MSST2003 April 7-10, 2003 Eric W. Olsen

Introduction to image coding

STI Hardware Specifications for PCs

balesio Native Format Optimization Technology (NFO)

CSE 237A Final Project Final Report

Figure 1: Relation between codec, data containers and compression algorithms.

Classes of multimedia Applications

Application. EDIUS and Intel s Sandy Bridge Technology

SiteCelerate white paper

Remote Network Accelerator

Digital Audio and Video Data

networks Live & On-Demand Video Delivery without Interruption Wireless optimization the unsolved mystery WHITE PAPER

Hardware Configuration Guide

ELECTRONIC DOCUMENT IMAGING

Real-Time DMB Video Encryption in Recording on PMP

Data Transmission. from one person or place to another. person or place to another of passing something

Bandwidth consumption: Adaptive Defense and Adaptive Defense 360

CamGuard Security System CamGuard Security System Manual

Curso de Telefonía IP para el MTC. Sesión 2 Requerimientos principales. Mg. Antonio Ocampo Zúñiga

Chapter 6: Broadcast Systems. Mobile Communications. Unidirectional distribution systems DVB DAB. High-speed Internet. architecture Container

Ricoh HotSpot Printer/MFP Whitepaper Version 4_r4

Michael W. Marcellin and Ala Bilgin

DVoIP: DYNAMIC VOICE-OVER-IP TRANSFORMATIONS FOR QUALITY OF SERVICE IN BANDWIDTH CONSTRAINED ENVIRONMENTS

Multimedia Data Transmission over Wired/Wireless Networks

Serving Media with NGINX Plus

Fast Arithmetic Coding (FastAC) Implementations

Video-Conferencing System

Communication Protocol

EZManage V4.0 Release Notes. Document revision 1.08 ( )

Logical Operations. Control Unit. Contents. Arithmetic Operations. Objectives. The Central Processing Unit: Arithmetic / Logic Unit.

SAP HANA - Main Memory Technology: A Challenge for Development of Business Applications. Jürgen Primsch, SAP AG July 2011

Protocolo HTTP. Web and HTTP. HTTP overview. HTTP overview

Binary Differencing for Media Files

Narrow Bandwidth Streaming Video Codec

Lehrstuhl für Informatik 4 Kommunikation und verteilte Systeme

Computer Systems Structure Input/Output

Introduction. Network Basics. Workstations. Server. Hub

Statistical Modeling of Huffman Tables Coding

Using Linux Clusters as VoD Servers

Jozef Matula. Visualisation Team Leader IBL Software Engineering. 13 th ECMWF MetOps Workshop, 31 th Oct - 4 th Nov 2011, Reading, United Kingdom

CHAPTER 2 LITERATURE REVIEW

Video compression: Performance of available codec software

Multidimensional Transcoding for Adaptive Video Streaming

Analyzing 6LoWPAN/ZigBeeIP networks with the Perytons Protocol Analyzer May, 2012

Epiphan Frame Grabber User Guide

Basic principles of Voice over IP

Managing Mobile Devices Over Cellular Data Networks

High-Performance IP Service Node with Layer 4 to 7 Packet Processing Features

Lesson 10:DESIGN PROCESS EXAMPLES Automatic Chocolate vending machine, smart card and digital camera

ivos Technical Requirements V For Current Clients as of June 2014

Features Overview Guide About new features in WhatsUp Gold v12

Xtreeme Search Engine Studio Help Xtreeme

Reconfigurable Architecture Requirements for Co-Designed Virtual Machines

4.1 Threads in the Server System

Chapter 3 ATM and Multimedia Traffic

MAS 200 Supported Platform Matrix

Concept of Cache in web proxies

For Articulation Purpose Only

MP3 Player CSEE 4840 SPRING 2010 PROJECT DESIGN.

Power Benefits Using Intel Quick Sync Video H.264 Codec With Sorenson Squeeze

HP Smart Document Scan Software compression schemes and file sizes

An Oracle White Paper December Advanced Network Compression

Scanning and OCR Basics

Oracle Applications Release 10.7 NCA Network Performance for the Enterprise. An Oracle White Paper January 1998

Video Coding Basics. Yao Wang Polytechnic University, Brooklyn, NY11201

Quality Estimation for Scalable Video Codec. Presented by Ann Ukhanova (DTU Fotonik, Denmark) Kashaf Mazhar (KTH, Sweden)

Transcription:

Dynamic Adaptation in an Image Transcoding Proxy For Mobile Web Browsing 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 (rhan@watson.ibm.com) 1

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 2

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

Reasons to Transcode 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. Response Time Reduction % 100 80 60 40 20 0-20 Image size = 24 KB Image Size = 24Kbytes transcoding threshold 0 100 200 300 400 Example parameters: "AnyImage" library, 200 MHz Pentium Pro, Windows NT, JPEG quality = 5. Bottleneck Link Speed (Kb/s) 4

Transcoding Proxy Architecture Web Server Internet Transcoding HTTP Proxy Internet Web Browser Proxy-to-Server Bandwidth Adaptive Transcoding Policies: When and how much to transcode Client/Device Capabilities User Preferences Client-to-Proxy Bandwidth HTTP Content Analysis Text Images Decode Text Modification Compress Modified Text/HTML Transcoded Image Transformation Modules 5

Adapting to Dynamic User Input Faster Download More Distillation Proxy Web server Image transcoders CDPD modem browser IBM has a great set of mobile products. Backbone ISDN 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 Slower Download Less Distillation Auto 6

Store-and-Forward Image Transcoding Web server Image size S Bandwidth Bsp Image Transcoding Proxy Transcoding Delay Dp(image) Image size Sp(image) Bandwidth Bpc Web client Definition: A store-and-forward image transcoder must wait to transcode until the whole image is received and must wait to transmit until transcoding is completed. 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 7

To Transcode or Not To Transcode Only transcode when t proxy < t no proxy : S/B sp + D p (image) + S p (image)/b pc < S/min(B pc, B sp ) Case I: B sp < B pc (server-proxy link is bottleneck) => Never transcode when Internet backbone is the bottleneck! Case II: B pc < B sp (proxy-client link is bottleneck) => Only transcode when D p (image) + S p (image)/b pc < S*(1/B sp - 1/B pc ) 8

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 probabilistic distributions (image content) 9

Web Server image size S Proxy image size S p (image) Client 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. 10

Predicting the Output Image Size Web Server image size = S image size = Proxy S p (image) Client S p =f(input bytes), GIF-to-JPEG, q=5, ρ=0.54 S p =f(input pixels), GIF-to-JPEG, q=5, ρ=0.90 11

Predicting the Output Image Size Web Server image size = S image size = Proxy S p (image) Client S p =f(input pixels), JPEG-to-JPEG, q=5, ρ=0.94 S p =f(input pixels), JPEG-to-JPEG, q=50, ρ=0.92 12

Predicting the Image Transcoding Delay D p (image) = D image transformations + D CPU D image 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 D CPU depends on CPU bandwidth/other processes/threads 13

Predicting the Image Transcoding Delay Web Server image size = S image size = Proxy S p (image) D p (image) Client D p =f(input bytes), GIF-to-JPEG, q=5, ρ=0.65 D p =f(input pixels), GIF-to-JPEG, q=5, ρ=0.82 14

Predicting the Image Transcoding Delay Web Server image size = S image size = Proxy S p (image) D p (image) Client D p =f(input pixels), JPEG-to-JPEG, q=5, ρ=0.98 D p =f(input pixels), JPEG-to-JPEG, q=50, ρ=0.98 15

Bandwidth Estimation Web Server 1 Proxy Client Web Server 2 SPAND NetDyn: passive network monitoring Client-proxy link bandwidth estimation (long-lived) Proxy-server link bandwidth estimation (transient) Querying for SPAND-like statistics 16

Streamed Image Transcoding Web server R 1 Input Buffer Streaming Transcoder R 2 R 3 Link Buffer R 4 Transcoding Proxy Web Client Definition: A streamed image transcoder can begin writing out transcoded image data before having fully read in an image. R 1 = image rate into input buffer R 2 = image rate at which streaming transcoder empties input buffer R 3 = transcoded image rate into link buffer R 4 = image transmission rate out of link buffer 17

To Transcode or Not To Transcode Redux Web server R 1 Input Buffer Streaming Transcoder R 2 R 3 Link Buffer R 4 Transcoding Proxy Web Client Condition I: Don't overflow the input buffer R 2 > R 1 => S/D p (image) > B sp => D p (image) < S/B sp Condition II: Don't overflow the output link's buffer R 4 > R 3, and image rate @ R 3 = image rate @ R 1 => B pc > S p (image)/[s/b sp ] => > B sp /B pc, compression ratio = S/S p (image) 18

Streamed Image Transcoding (cont.) Only transcode when Conditions I and II hold: (I) D p (image) < S/B sp (II) > B sp /B pc If B sp < B pc (server-proxy link is bottleneck) => Condition II always satisfied. Only have to test Condition I. If B pc < B sp (proxy-client link is bottleneck) => Both Conditions I and II must be evaluated. 19

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

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.) Properties * adapts to user preferences and client device * adapts to network bandwidth in a static sense * currently does not predict image delay or output size 21

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. 22

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. 23

JPEG Image Quality Reduction Example Original: 20,796 bytes Quality factor = 5: 2525 bytes 12.1% of original Quality factor = 35: 6,993 bytes 33.6% of original Grayscale and Quality factor = 5: 1,886 bytes 9.1% of original 24

Rationale for 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.) Static evaluation of store-and-forward inequality: S/B sp + D p (image) + S p (image)/b pc < S/min(B pc, B sp ) fix B sp =1 Mb/s, B pc =50 kb/s, D p =40 ms+, S p =αs => S>(263+ ')/(1-α) => ~800 byte lower limit (α=0.5) 25

Rationale for 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.) 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. 26

Rationale for 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.) 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. 27

Rationale for 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.) 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. 28

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 3COM's "Web clipping" proxy for Palm VII (no images?) 29

Other Research Issues Integrating caching proxies with transcoding Split browser paradigm Scalability/Load-Balancing Security 30

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 Communications Magazine. Contact: rhan@watson.ibm.com. 31