SlideShare a Scribd company logo
Delivering Beautiful and Fast
Images and Video
Doug Sillars
@DougSillars
Köln Webperf
June 12, 2018
Cologne webperf
0.5
0.6
0.7
0.8
0.9
Standing in Line Standing on the
edge of a virtual
cliff
Experiencing
Mobile Delays
Solving a Math
Problem
https://www.ericsson.com/res/docs/2016/mobility-report/emr-feb-2016-the-stress-of-steaming-delays.pdf
Stress
Large Downloads Induce Delays in Rendering
3s: 53% of Users Abandon Mobile Sites
500ms: 26% Frustration
8% Engagement
100ms: 1% Revenue Walmart & Amazon (Desktop 2001)
4% Mobile Users Throw Their Phones
https://www.doubleclickbygoogle.com/articles/mobile-speed-matters
http://bit.ly/mobileWebStress
http://www.globaldots.com/how-website-speed-affects-conversion-rates/
https://www.mobilejoomla.com/blog/172-responsive-design-vs-server-side-solutions-infographic.html
Images & Video make up 75% of Web Content
HTTPArchive mobile websites 15/02/18
Images & Video make up 75% of Web Content
HTTPArchive mobile websites 15/02/18
JPGPNG
GIF
Tools:
• Monitoring & Testing
• Image Manipulations
• Demos
https://www.webpagetest.org
https://www.imagemagick.org
https://www.cloudinary.com
Image Formats – Average Size
HTTPArchive mobile websites 15/02/18
Image Formats – Average Size
HTTPArchive mobile websites 15/02/18
Scalable Vector Graphics (SVG)
Images drawn as shapes
infinitely scalable
XML - Can be added inline to HTML document
https://gist.github.com/hail2u/2884613?short_path=66a60ff
Scalable Vector Graphics (SVG)
Images drawn as shapes
infinitely scalable
XML - Can be added inline to HTML document
https://gist.github.com/hail2u/2884613?short_path=66a60ff
Scalable Vector Graphics (SVG)
Images drawn as shapes
infinitely scalable
XML - Can be added inline to HTML document
https://gist.github.com/hail2u/2884613?short_path=66a60ff
Scalable Vector Graphics (SVG)
Scalable Vector Graphics (SVG)
Scalable Vector Graphics (SVG)
Scalable Vector Graphics (SVG)
https://commons.wikimedia.org/wiki/User:Quibik/Cleaning_up_SVG_files_manually
Scalable Vector Graphics (SVG)
https://github.com/google/brotli
Image Compression
Lossy
Image size is reduced by
removing pixel information
magick -quality 85 ireland.jpg ireland85.jpg
http://res.cloudinary.com/dougsillars/image/upload/q_85/v1520504964/IMG_20180301_114117_tzasan.jpg
https://developers.google.com/speed/docs/insights/OptimizeImages
Image Compression
Lossy
Image size is reduced by
removing pixel information
magick -quality 85 ireland.jpg ireland85.jpg
http://res.cloudinary.com/dougsillars/image/upload/q_85/v1520504964/IMG_20180301_114117_tzasan.jpg
Google:
Recommends 85%
compression on all
images
https://developers.google.com/speed/docs/insights/OptimizeImages
Image Compression Use “In The Wild”
500,000 mobile sites
Analyzed 3/15/18
Image Compression Use “In The Wild”
Median Savings (50th percentile):
• 2.83 seconds faster page load
• 419KB less data
100%
2.8 MB
http://res.cloudinary.com/dougsillars/image/upload/v1526279646/ireland_mwnkwo.jpg
85%
1.3 MB
q_85
http://res.cloudinary.com/dougsillars/image/q_85/upload/v1526279646/ireland_mwnkwo.jpg
50%
551KB
q_50
http://res.cloudinary.com/dougsillars/image/q_50/upload/v1526279646/ireland_mwnkwo.jpg
20%
274 KB
q_20
http://res.cloudinary.com/dougsillars/image/q_20/upload/v1526279646/ireland_mwnkwo.jpg
Graphing the Results
https://developers.google.com/speed/docs/insights/OptimizeImages
Graphing the Results
https://developers.google.com/speed/docs/insights/OptimizeImages
Automate Quality vs. File Size
• Butteraugli
• SSIM: Structural SIMilarity
https://github.com/technopagan/cjpeg-dssim
cjpeg-dssim jpegoptim ireland.jpg
http://res.cloudinary.com/dougsillars/image/upload/q_auto/v1526279646/ireland_mwnkwo.jpg
SSIM
628-934 KB
http://res.cloudinary.com/dougsillars/image/upload/q_auto/v1526279646/ireland_mwnkwo.jpg
Graphing the Results
https://developers.google.com/speed/docs/insights/OptimizeImages
Results:
• Test Load on Motorola G4:
Image Formats – Average Size
HTTPArchive mobile websites 15/02/18
Image Formats – Average Size
HTTPArchive mobile websites 15/02/18
File Format: WebP
https://caniuse.com/#feat=webp
Convert File Format
http://res.cloudinary.com/dougsillars/image/upload/q_auto,f_auto/v1526279646/ireland_mwnkwo.jpg
convert ireland_cjpeg_dssim.jpg ireland.webp
SSIM + WebP
433-505 KB
http://res.cloudinary.com/dougsillars/image/upload/q_auto,f_auto/v1526279646/ireland_mwnkwo.jpg
Image Format: WebP
<picture>
<source width = "100%" type="image/webp" srcset="ireland.webp">
<img width = "100%" src="ireland_cjpeg_dssim.jpg"
alt="Mizen Head, Ireland">
</picture>
Image Format Use “In The Wild”
500,000 mobile sites
Analyzed 3/15/18
Image Format Use “In The Wild”
500,000 mobile sites
Analyzed 3/15/18
Images & Screens
-
Images & Screens
Images & Screens
-
Images & Screens
624
832
-
Images & Screens
624
832
12,979,000 pixels
519,000 pixels
_________________
-
12,460,000 pixels
Images & Screens
624
832
12,979,000 pixels
519,000 pixels
_________________
-
12,460,000 pixels
Responsive Images
https://twitter.com/paulcalvano/status/928751141843808256
Responsive Images
-
Generate a set of images
25 KB difference in size
Responsive Images
624
832
625,000 pixels
-
106,000 pixels
519,000 pixels
_________________
Responsive Breakpoint Generation
https://github.com/cloudinary/responsive_breakpoints_generator
http://www.responsivebreakpoints.com/
Responsive Images
Responsive Images
+
Image Format
Responsive Images + Client Hints
Responsive Images
Responsive Images Use “In The Wild”
442,000 mobile sites
Analyzed 3/15/18
Responsive Images Use “In The Wild”
442,000 mobile sites
Analyzed 3/15/18
Sample Website
Sample Website
Web Usage
https://www.nngroup.com/articles/scrolling-and-attention/
https://calendar.perfplanet.com/2017/progressive-image-loading-using-intersection-observer-and-sqip/
Web Usage
https://www.nngroup.com/articles/scrolling-and-attention/
https://calendar.perfplanet.com/2017/progressive-image-loading-using-intersection-observer-and-sqip/
Lazy Loading
https://www.nngroup.com/articles/scrolling-and-attention/
https://calendar.perfplanet.com/2017/progressive-image-loading-using-intersection-observer-and-sqip/
Lazy Loading Use “In The Wild”
500,000 mobile sites
Analyzed 3/15/18
Lazy Loading Use “In The Wild”
500,000 mobile sites
Analyzed 3/15/18
Lazy Loading
https://www.nngroup.com/articles/scrolling-and-attention/
https://calendar.perfplanet.com/2017/progressive-image-loading-using-intersection-observer-and-sqip/
Preview Images
Preview Images
SVG
979 bytes!
Jpg/Webp
~50KB
https://github.com/technopagan/sqip
<img src=“IMG_20160619_173136306.jpg”
style="background-size: cover; background-image:
url(data:image/svg+xml;base64,<svg text>);"
Preview Images
Animated GIFs
Original MP4
1.4 MB
Animated GIFs
Animated GIFs
Animated GIF
3.8 MB
270% larger
Animated GIFs
Animated GIFs
MP4: 256 colors
247KB
93% smaller
Animated GIFs
Video Tags are slow:
Video is not pre-loaded, will be last to download
<video autoplay loop muted playsinline controls = "false” src="goats.mp4”/>
Img tags are fast!
<picture>
<source type="video/mp4" srcset=”goats.mp4">
<source type="image/webp" srcset=”goats.webp">
<img src=”goats.gif">
</picture>
https://calendar.perfplanet.com/2017/animated-gif-without-the-gif/
Animated GIFs
Video
Video Quality Metrics
1.Does the Video Start?
2.Does the Video Stall?
3.Does it Look Good?
Video Startup
Conviva creen_Streaming_TV_Census_Report_FINAL.pdf
Q1 2018:
Video Startup
Conviva creen_Streaming_TV_Census_Report_FINAL.pdf
Q1 2018: Video Startup
16.9B total Video plays
400M Fail to Start
2B Abandoned before Start
~800M hours of video
playback lost
Video Startup
Conviva creen_Streaming_TV_Census_Report_FINAL.pdf
Q1 2018: Video Startup
16.9B total Video plays
400M Fail to Start
2B Abandoned before Start
~800M hours of video
playback lost
Video Startup Failure
Video Fails To Start
Video Startup Failure
Video Startup
Conviva creen_Streaming_TV_Census_Report_FINAL.pdf
Q1 2018: Video Startup
16.9B total Video plays
400M Fail to Start
2B Abandoned before Start
Video Startup
Conviva creen_Streaming_TV_Census_Report_FINAL.pdf
Q1 2018: Video Startup
Video Start Time:
N. America: 4.91s
Asia: 3.00s
Europe: 4.30s
Average?
Median?
95th percentile?
Desktop/Mobile/both?
Video Startup Delay
After 2 seconds,
every additional
second corresponds
to 5.8% increase in
abandonment
https://www.akamai.com/kr/ko/multimedia/documents/technical-publication/video-stream-quality-impacts-viewer-behavior-inferring-causality-using-quasi-experimental-designs-technical-publication.pdf
Video Startup Delay
https://www.akamai.com/kr/ko/multimedia/documents/technical-publication/video-stream-quality-impacts-viewer-behavior-inferring-causality-using-quasi-experimental-designs-technical-publication.pdf
Video Download
Optimizing Content Delivery
Optimizing Content Delivery
Startup Delay: 3rd Party Interference
3rd Party Interference
3rd Party Interference
Optimizing Video Delivery
What Leads to Startup Delay?
Manifest File:
List of Available
Streams
Player Chooses a Stream Stream Manifest:
List of Video Segments
Player Downloads
Segments into buffer
Video Plays
Optimizing Video Delivery
What Leads to Startup Delay?
Example Manifest file:
Optimizing Video Delivery
Video Streaming
Manifest File:
List of Available
Streams
Player selects
8.5 MBPS stream Stream Manifest:
List of Video Segments
Buffer takes a long
time to fill
Video Does Not Play
Player immediately changes the
stream choice to 192 KBPS
Video Startup
Optimizing Video Delivery
What Leads to Startup Delay?
Example Manifest file:
Optimizing Video Delivery
What Leads to Startup Delay?
Example Manifest file:
Video Startup
Video Startup
Video Startup
Video Startup
10s 11s 12s 13s 14s 15s 16s 17s
4k Low->High:
4K Middle:
4k:High->Low:
Video Startup “In the Wild”
75%
20%
5%
https://dougsillars.com/2018/03/29/streaming-video-whats-on-the-web-today/
Optimizing Content Delivery
Balancing the Network with Playback
Player uses available streams to balance download with playback
Summary
Testing:
WebPageTest https://www.webpagetest.org
WebsiteSpeedTest https://Webspeedtest.cloudinary.com
Images:
ImageMagick https://www.imagemagick.org
SSIM https://github.com/technopagan/cjpeg-dssim
LazySizes https://github.com/aFarkas/lazysizes
Responsive Breakpoints http://www.responsivebreakpoints.com/
Samples: https://github.com/dougsillars/OSCAL
Cloudinary https://www.cloudinary.com
Tooling
Conclusion
Images and Video
can be Beautiful AND Fast
Contest – Win a €100 Amazon Gift Card
Optimize Images for Fast Page Load
Submit your entry by June 21 for a chance to win!
Code and tips: https://github.com/dougsillars/dougsillars.github.io
Entry form: http://bit.ly/FastImages
https://dougsillars.github.io

More Related Content

PPTX
Mcr fredfastvideoandimages
PPTX
Devfest Siberia Fast and Beautiful Images and Video
PPTX
Webcamp fastandbeautiful
PPTX
Perf ug fastandbeautiful
PPTX
Parisjs fastvideoandimages
PPTX
Devoxx be fast and beautiful images
PPTX
Hamburg web perf meetup
POTX
Mobile App Performance, Firenze
Mcr fredfastvideoandimages
Devfest Siberia Fast and Beautiful Images and Video
Webcamp fastandbeautiful
Perf ug fastandbeautiful
Parisjs fastvideoandimages
Devoxx be fast and beautiful images
Hamburg web perf meetup
Mobile App Performance, Firenze

What's hot (20)

POTX
Its timetostopstalling cambridgemot
PPTX
Ux connect london_fastandbeautiful
PPTX
Mobile era fastandbeautiful
PPTX
Fast and Beautiful Images and Video
POTX
Its timetostopstalling londroid
PPTX
Beautiful and Fast Images
PPTX
Waterford fast images
PPTX
Notts js fastandbeautiful
PPTX
Bordeaux js fastandbeautiful
PPTX
Cork ux Meetup
POTX
Its timetostopstalling barcelonajs
PPTX
Imagesandvideo voxxeddays
POTX
Its timetostopstalling sw_mobile_bristol
POTX
Its timetostopstalling mot_paris
PPTX
Its timetostopstalling pentabar
PPTX
Its Time To Stop Stalling: Mobile App and Video Performance
POTX
Its timetostopstalling swp_munich
POTX
Its timetostopstalling gdg_dublin
POTX
Dublin Tech Talks
POTX
Its timetostopstalling gdgdusseldorf
Its timetostopstalling cambridgemot
Ux connect london_fastandbeautiful
Mobile era fastandbeautiful
Fast and Beautiful Images and Video
Its timetostopstalling londroid
Beautiful and Fast Images
Waterford fast images
Notts js fastandbeautiful
Bordeaux js fastandbeautiful
Cork ux Meetup
Its timetostopstalling barcelonajs
Imagesandvideo voxxeddays
Its timetostopstalling sw_mobile_bristol
Its timetostopstalling mot_paris
Its timetostopstalling pentabar
Its Time To Stop Stalling: Mobile App and Video Performance
Its timetostopstalling swp_munich
Its timetostopstalling gdg_dublin
Dublin Tech Talks
Its timetostopstalling gdgdusseldorf
Ad

Similar to Cologne webperf (16)

PPTX
Stop Stalling: Video Delivery Best Practices
POTX
Mobile App Performance, Dublin MOT
POTX
Its timetostopstalling limerick
POTX
Its Time To Stop Stalling Bucharest
POTX
GDG Manchester
POTX
Mobile App and Web Performance Testing
PPTX
Video performance snowcamp
POTX
Its Time To Stop Stalling BerlinDroid
POTX
Ministry of Testing Cork
POTX
Its timetostopstalling gdg_hamburg
POTX
GDG Leeds
POTX
Its timetostopstalling mobilecologne
PPTX
Video performance barcelona-js_coders
PPTX
Edi ux fastandbeautiful
POTX
Its timetostopstalling gdg_bruxelles
POTX
Its timetostopstalling gdg_zurich
Stop Stalling: Video Delivery Best Practices
Mobile App Performance, Dublin MOT
Its timetostopstalling limerick
Its Time To Stop Stalling Bucharest
GDG Manchester
Mobile App and Web Performance Testing
Video performance snowcamp
Its Time To Stop Stalling BerlinDroid
Ministry of Testing Cork
Its timetostopstalling gdg_hamburg
GDG Leeds
Its timetostopstalling mobilecologne
Video performance barcelona-js_coders
Edi ux fastandbeautiful
Its timetostopstalling gdg_bruxelles
Its timetostopstalling gdg_zurich
Ad

More from Doug Sillars (20)

PPTX
Fastandbeautiful belfast
PPTX
Fastandbeautiful gdg sacremento
PPTX
Fastandbeautiful gd glittlerock
PPTX
Fastandbeautiful webinale
PPTX
Ai powered images-pythonljubjana
PPTX
Fastandbeautiful zagrebtechsauna
PPTX
Video js zagreb
PDF
Vkmdp cologne
PPTX
Ai powered images-gdgtirana
PPTX
A rt gallery pantalks
PPTX
Ai powered images-sarajevo
PPTX
A rt gallery hub387
PPTX
Ai powered images-zurichpydata
PPTX
Fastandbeautiful vienna
PPTX
Ai powered images-opieaivienna
PPTX
A rt gallery devfestlondon
PPTX
Fastandbeautiful devfest london
PPTX
A rt gallery cardiff
PPTX
Ai powered images-mobileera
PPTX
Fastandbeautiful oredev
Fastandbeautiful belfast
Fastandbeautiful gdg sacremento
Fastandbeautiful gd glittlerock
Fastandbeautiful webinale
Ai powered images-pythonljubjana
Fastandbeautiful zagrebtechsauna
Video js zagreb
Vkmdp cologne
Ai powered images-gdgtirana
A rt gallery pantalks
Ai powered images-sarajevo
A rt gallery hub387
Ai powered images-zurichpydata
Fastandbeautiful vienna
Ai powered images-opieaivienna
A rt gallery devfestlondon
Fastandbeautiful devfest london
A rt gallery cardiff
Ai powered images-mobileera
Fastandbeautiful oredev

Recently uploaded (20)

PDF
Modernizing your data center with Dell and AMD
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Encapsulation theory and applications.pdf
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Approach and Philosophy of On baking technology
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
NewMind AI Monthly Chronicles - July 2025
PDF
KodekX | Application Modernization Development
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
Modernizing your data center with Dell and AMD
Building Integrated photovoltaic BIPV_UPV.pdf
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Per capita expenditure prediction using model stacking based on satellite ima...
Chapter 3 Spatial Domain Image Processing.pdf
Agricultural_Statistics_at_a_Glance_2022_0.pdf
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
NewMind AI Weekly Chronicles - August'25 Week I
Encapsulation theory and applications.pdf
“AI and Expert System Decision Support & Business Intelligence Systems”
Approach and Philosophy of On baking technology
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
NewMind AI Monthly Chronicles - July 2025
KodekX | Application Modernization Development
CIFDAQ's Market Insight: SEC Turns Pro Crypto
Spectral efficient network and resource selection model in 5G networks
Diabetes mellitus diagnosis method based random forest with bat algorithm
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
The Rise and Fall of 3GPP – Time for a Sabbatical?

Cologne webperf

Editor's Notes

  • #11: 1149 bytes, 700 Zipped
  • #12: 1149 bytes, 700 Zipped
  • #13: 1149 bytes, 700 Zipped
  • #14: 1149 bytes, 700 Zipped
  • #15: 1149 bytes, 700 Zipped
  • #16: 1149 bytes, 700 Zipped
  • #17: 1149 bytes, 700 Zipped
  • #18: 1149 bytes, 700 Zipped
  • #30: 47% smaller!
  • #37: 47% smaller! Or 65% smaller from original!