SlideShare uma empresa Scribd logo
1 de 55
Ben Waggoner
Technical Evangelist,
Core Media Processing Technologies
Microsoft Corporation
Video and audio in WPF/E
Best practices for processing video and audio
Best practices for Windows Media encoding for WPF/E
Using the Expression Media Encoder
It's just Windows Media!
 Huge library of existing content already compatible
 Existing URLs from Windows Media Services still work
 Already supported by many hosting companies
 Lots of tools available for different markets
Video codec;
 Windows Media Video 7/8/9 and 9 Advanced Profile
Audio codec:
 Windows Media Audio quot;Standardquot;
   Not Pro, Voice, or Lossless in this version
FLV v. WMV
Higher quality video and audio
  Fewer bits needed for same quality
Much faster encoding
 3x faster for optimum quality on 4-core workstation
 15x faster with Tarari card for hardware acceleration
Much better TCO for video hosting
 Many more streams off a 2K3 Server than Flash server
 Cheaper per GB charges from hosting providers
Mature live streaming/encoding tools
Capture
 Getting the content in higher quality
Preprocessing
 Optimizing the content for the codec itself
Capture native bitstream or uncompressed
 DV, DVCPRO HD as native bitstream
 Other formats as uncompressed
 Don’t use DV bridge for analog-digital conversion
   DV codec throws out a lot of image data, especially color
Access earliest generation dub as possible
 Most VHS tapes didn’t get posted on VHS!
 Ripping from DVD also sub-optimal
Best to grab digital export from NLE
Everything we do to the video and audio between the
source and the codec
The biggest single factor in good-looking WPF/E video
 The best the codec can do is give back what you gave it
For challenging projets, I spend ~80% of my keyboard-
and-mouse time on preprocessing
 Once the codec settings are nailed, you're good to go.
WPF/E uses progressive video
 For 60i/50i, deinterlace to progressive
 For video telecined from film, use inverse telecine to restore
 24p
 If it’s progressive, leave it alone!
 <example slide>
Video monitors don’t go to edges
Computers do
Crop edge blanking
Asymmetric okay to cut out noise
For low rez, crop to safe area
Crop letterboxing as well
If going to 16x16 resolution, can crop to final aspect ratio
For mixed video/computer playback, matte out noise in
blanking
Brightness and Contrast
 Computers have broader range — use it
 Blacks should look identical to RGB=0,0,0 in browser
Noise Reduction
 Make image easier for compressor
 Remove grain
 Smooth sharp edges
After   The Settings
Make loudest point of audio as loud as system beep
-3 dB / 90%
Not compressor/limiter - no change in dynamic range
Progressive versus Streaming
Data Rates
Frame Size
Frame Rate
Audio Settings
Advanced Registry Key settings
Two legitimate modes of delivering web video
Need to know which one will be used before encoding
 Progressive should use 2-pass VBR
 Streaming should use 2-pass CBR
Off a web server
 E.g., IIS in Windows 2003 Server
Most efficient with Variable Bit Rate (VBR) encoding
Random access in part of stream already downloaded
Great for movie trailers
Files fromWindows Media Services
 Included in Windows 2003 Server
Needs Constant Bit Rate (CBR) encoding
Offers random access throughout stream
Reduces need for local caching (big for mobile devices)
Great for movies
We measure rates in power-of-ten numbers
 K=1000, not 1024
 M=1000000, not 1048576
Streaming
 Need more sustained bandwidth to user more than data rate
Progressive
 A slower connection means user waits longer for playback
 But can use high bitrates for short clips
WPF/E wants square pixel video
So need to convert to aspect ratio
Example
 DV is 720x480
 4:3 content becomes 640:480
 16:9 content becomes 832x480
Depends somewhat on data rate
 200-500 Kbps: 320x240 or 432x240
 1-2 Mbps: 640x480 or 832x240
1-pass versus 2-pass
 1-pass reads the source in and encodes out at the same time
 2-pass does analysis pass first, calculating optimal bit-budget
 2-pass is always better if you've got the time
   And it’s not 2x slower – the analysis pass runs quite a bit faster
CBR versus VBR
 Constant Bitrate
   Optimum for streaming – quality varies, bitrate constant
 Variable Bitrate
   Optimum for progressive download – varies bitrate, quality constant
Use frame rate that’s an integer division of source
 59.94 to: 59.94, 29.97, 15, 10, 7.5, 6, 5
 50 to: 50, 25, 12.5, 10, 5
 24 to: 24, 12, 8, 6
For anything over 200 Kbps, can use full frame rate of
source
New compression tool targeting .WMV for WPF/E
Bunded with Expression Media Product
Accessible to both designers and video professionals
Offline and Live Encoding

But there's no secret sauce – you're welcome to use any
WMV encoding tool with WPF/E
The codec has a bunch of registry key setting to further
optimize encoding
I fear regedit – you can use ―WMV9 PowerToy‖

Lots more options than I’ll discuss today
 Link to full documentation at end


Tools will be integrating these controls later this year
http://citizeninsomniac.com/WMV/#WMV9PowerToy
Current codec can use up to four threads for encoding
 Big speed improvement with multiple cores
Auto picks number of threads available
 Sees HyperThreading (Pentium 4) as 2 processors
   But HT is less of a gain with compression than additional core
Want to have at least 64 pixels high per thread
 <128 height: 1-thread
 <256 height (so 320x240): 2-threads
 256+ height: 4-threads
Motion Estimation copies moving elements between
frames
 Much more efficient to encode ―motion vector‖ than second
 copy of element
Using a larger Motion Search range
 Provides better efficiency with faster motion
 Slows encoding
 Can reduce efficiency with slower motion
Available Options:
 Macroblock-adaptive
 128 pixels horizontally, 64 pixels vertically (default)
 256 pixels horizontally, 128 pixels vertically
 1024 pixels horizontally, 256 pixels vertically
 2056 pixels horizontally, 512 pixels vertically
Each progressive option slowest encoding by ~2x
 Macroblock-adaptive slightly faster than 1024x256
Use Macroblock Adaptive for non-realtime encoding
Finds where color changes but B&W channel doesn’t
Quality improvements 5-20% (most with colorful content)
 Crowd shots, motion graphics helped in particular
Modes:
 Macroblock-adaptive with nearest integer chroma (fast, good)
 Macroblock-adaptive with true chroma (speed/quality mix)
 Luma only (default)
 Luma with nearest-integer chroma
 Luma with true chroma (best, slowest)
Number of bi-directional (B-Frames) between I-Frames
and P-Frames
B-Frames based off previous and next frame
B-Frames typically fewer bits for same quality
No frames are based on B-frame
 Don’t insert I-frame for flashes if they land on a B-frame
   So dynamically insert B-frames when there are flashes!
   Big win for gunfights and discos
1 B-frame optimal for most web encoding
Smooths out hard edge blocking artifacts
 ―In-loop‖ - used as prediction for future frames
Only blurs content where an artifact would appear
 Much less noticeable at higher resolutions
 Softness better if alternative is artifacts
Increased CPU decoder requirements somewhat
Softens edges where motion vectors overlap
 Softens image somewhat
 But reduces artifacts
Recommendation
 On if you see artifacts
 Otherwise Off
Also increases decoder complexity some
Denoises image before calculating motion vectors
 Keeps grain/noise from ―swirling‖
 Helps low-bitrate encodes
 But can leave ―trails‖
Recommendation
 Only use with grainy source, and QA carefully
Simple noise reduction filter
Helps when the source is noisy
Not as good as offline noise reducers
Recommendation
 Good for realtime encoding in low light
 But better to not have noisy source…
Blanks Line 21, other noise around edge of frame
Handy for real-time encoding of analog sources
Only use if source has edge noise
Specifies up to 16 frames forward for analysis
 Only needed in 1-pass encoding
Used to detect scene changes, flash frames
 Big improvement for 1-pass CBR encodes
 Can dynamically insert B-frames with flashes
Default is Off (Does not look ahead)
Adds to latency for live encoding
 ~½ second for Lookahead=15 @ 29.97 fps
Slightly slows encoding as Lookahead increases
―Differential Quantization‖
Different macroblocks are compressed different amounts
 Compress gradients less, to reduce banding
Recommendation
 I and P frames
   Using on B-frames wastes bits that will be discarded
Lots of levels available
 ―Regular‖ good default with most content
Like DQuant, optimizes bits based on image
Used in addition to DQuant
Adaptive Dead Zone 1 good default for film content
 Experiment carefully with other kinds of sources
Highest quality encoding and reasonable performance
 Up to 4x slower than default settings
Encoder complexity = 4/80 (second slowest)
Motion Search Level = macroblock adaptive true chroma
Motion Search Range = macroblock adaptive
Motion Match Method = Adaptive SAD/Hadamard
DQuant = Regular
Perceptual Option = Adaptive Dead Zone 1 for film
Force LoopFilter = On
Optimized for reliable real-time encoding
 Remember dual-duals are almost 4x faster than single core
Motion Search Range = Biggest that doesn’t drop frames
Motion Search Level = Luma + integer chroma
NumBFrames = 1
Force LoopFilter = 1 (on)
Dquant Option = Regular
Perceptual Option = Adaptive Dead Zone 1 for film
Lookahead = 16 (Max – most important single option)
2-day instructor-led training in over 20 US cities
Tools and Technologies Used
  Expression Blend and Expression Design
  NET Framework 3.0, Windows Presentation Foundation, XAML
  Visual Studio 2005

Target Audience
  User interface designers with advanced experience with Flash or
  Director. Understanding of Visual Studio 2005 or programming skills is not
  required.

Prerequisites
  Does not require prior experience using Expression Blend or Windows
  Presentation Foundation.
   We recommend:
     Building an understanding of .NET Framework 3.0
     Download Expression Blend http://www.microsoft.com/expression
     Get inspired! www.seewindowsvista.com
     Learn More: http://tinyurl.com/3y6jg7
Me:
 Ben.Waggoner@microsoft.com


My blog:
 http://on10.net/blogs/benwagg/


My class at Stanford
 www.digitalmediaacademy.org/courses/video-compression-training.html
© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions,
                it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.
                                       MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Mais conteúdo relacionado

Mais procurados

Audio compression
Audio compression Audio compression
Audio compression Darshan IT
 
Digital Video
Digital VideoDigital Video
Digital VideoVideoguy
 
Audio compression 1
Audio compression 1Audio compression 1
Audio compression 1Rajat Kumar
 
Tutorial about how to convert powerpoint to dvd
 Tutorial about how to convert powerpoint to dvd Tutorial about how to convert powerpoint to dvd
Tutorial about how to convert powerpoint to dvdcrysatal16
 
what_is_a_codec_2010
what_is_a_codec_2010what_is_a_codec_2010
what_is_a_codec_2010Justin Giles
 
Principes of Video Technology
Principes of Video Technology Principes of Video Technology
Principes of Video Technology halimakhan
 
02.m3 cms sys-req4mediastreaming
02.m3 cms sys-req4mediastreaming02.m3 cms sys-req4mediastreaming
02.m3 cms sys-req4mediastreamingtarensi
 
Aac nero compression optimization
Aac nero compression optimizationAac nero compression optimization
Aac nero compression optimizationSevana Oü
 

Mais procurados (17)

Video Compression
Video CompressionVideo Compression
Video Compression
 
Codecs
CodecsCodecs
Codecs
 
Audio compression
Audio compression Audio compression
Audio compression
 
Digital Video
Digital VideoDigital Video
Digital Video
 
Video standard
Video standardVideo standard
Video standard
 
Video formats guide
Video formats guideVideo formats guide
Video formats guide
 
MPEG4 vs H.264
MPEG4 vs H.264MPEG4 vs H.264
MPEG4 vs H.264
 
Audio compression 1
Audio compression 1Audio compression 1
Audio compression 1
 
Tutorial about how to convert powerpoint to dvd
 Tutorial about how to convert powerpoint to dvd Tutorial about how to convert powerpoint to dvd
Tutorial about how to convert powerpoint to dvd
 
Audio and Video Compression
Audio and Video CompressionAudio and Video Compression
Audio and Video Compression
 
what_is_a_codec_2010
what_is_a_codec_2010what_is_a_codec_2010
what_is_a_codec_2010
 
Audio compression
Audio compressionAudio compression
Audio compression
 
Mp3
Mp3Mp3
Mp3
 
Principes of Video Technology
Principes of Video Technology Principes of Video Technology
Principes of Video Technology
 
02.m3 cms sys-req4mediastreaming
02.m3 cms sys-req4mediastreaming02.m3 cms sys-req4mediastreaming
02.m3 cms sys-req4mediastreaming
 
Aac nero compression optimization
Aac nero compression optimizationAac nero compression optimization
Aac nero compression optimization
 
video tools
video toolsvideo tools
video tools
 

Semelhante a Design in Motion: Video Production Workflow

Encoding Video for Microsoft Silverlight
Encoding Video for Microsoft SilverlightEncoding Video for Microsoft Silverlight
Encoding Video for Microsoft Silverlightgoodfriday
 
Encoding Video for the Web - Webinar from ReelSEO.com
Encoding Video for the Web  - Webinar from ReelSEO.comEncoding Video for the Web  - Webinar from ReelSEO.com
Encoding Video for the Web - Webinar from ReelSEO.comMark Robertson ⏩
 
Training Videovigilancia IP: What, Why, When and How
Training Videovigilancia IP: What, Why, When and HowTraining Videovigilancia IP: What, Why, When and How
Training Videovigilancia IP: What, Why, When and HowNestor Carralero
 
Best practices for live streaming
Best practices for live streamingBest practices for live streaming
Best practices for live streamingAlden Fertig
 
Week 4 LBSC 690 Information Technology
Week 4 LBSC 690 Information TechnologyWeek 4 LBSC 690 Information Technology
Week 4 LBSC 690 Information TechnologyVideoguy
 
Preserving Audiovisual Materials (LIS 198-Digital Preservation)
Preserving Audiovisual Materials (LIS 198-Digital Preservation)Preserving Audiovisual Materials (LIS 198-Digital Preservation)
Preserving Audiovisual Materials (LIS 198-Digital Preservation)Roy Santos Necesario
 
Multimedia applications
Multimedia applicationsMultimedia applications
Multimedia applicationssmoky_stu
 
Video Transcoding Terms Explained
Video Transcoding Terms Explained Video Transcoding Terms Explained
Video Transcoding Terms Explained nerodude
 
Video tech final
Video tech finalVideo tech final
Video tech finalKieran Ryan
 
Webcasting
WebcastingWebcasting
Webcasting2tique
 
Video Workshop by Frederick Rodrigues
Video Workshop by Frederick RodriguesVideo Workshop by Frederick Rodrigues
Video Workshop by Frederick RodriguesDan MacKinlay
 
Technical comments research_sheet[1]
Technical comments research_sheet[1]Technical comments research_sheet[1]
Technical comments research_sheet[1]k_ishii_
 
Architecting a Video Encoding Strategy Designed For Growth
Architecting a Video Encoding Strategy Designed For GrowthArchitecting a Video Encoding Strategy Designed For Growth
Architecting a Video Encoding Strategy Designed For GrowthZencoder
 
Building High Quality Video Operations in the Cloud - Synacor
Building High Quality Video Operations in the Cloud - SynacorBuilding High Quality Video Operations in the Cloud - Synacor
Building High Quality Video Operations in the Cloud - SynacorAmazon Web Services
 
The technology of editing
The technology of editingThe technology of editing
The technology of editingGabrielMedia
 
Ch07_-_Multimedia_Element-Video_1_.ppt
Ch07_-_Multimedia_Element-Video_1_.pptCh07_-_Multimedia_Element-Video_1_.ppt
Ch07_-_Multimedia_Element-Video_1_.pptdjempol
 
video compression techique
video compression techiquevideo compression techique
video compression techiqueAshish Kumar
 

Semelhante a Design in Motion: Video Production Workflow (20)

Encoding Video for Microsoft Silverlight
Encoding Video for Microsoft SilverlightEncoding Video for Microsoft Silverlight
Encoding Video for Microsoft Silverlight
 
Encoding Video for the Web - Webinar from ReelSEO.com
Encoding Video for the Web  - Webinar from ReelSEO.comEncoding Video for the Web  - Webinar from ReelSEO.com
Encoding Video for the Web - Webinar from ReelSEO.com
 
Training Videovigilancia IP: What, Why, When and How
Training Videovigilancia IP: What, Why, When and HowTraining Videovigilancia IP: What, Why, When and How
Training Videovigilancia IP: What, Why, When and How
 
Best practices for live streaming
Best practices for live streamingBest practices for live streaming
Best practices for live streaming
 
Week 4 LBSC 690 Information Technology
Week 4 LBSC 690 Information TechnologyWeek 4 LBSC 690 Information Technology
Week 4 LBSC 690 Information Technology
 
Preserving Audiovisual Materials (LIS 198-Digital Preservation)
Preserving Audiovisual Materials (LIS 198-Digital Preservation)Preserving Audiovisual Materials (LIS 198-Digital Preservation)
Preserving Audiovisual Materials (LIS 198-Digital Preservation)
 
Multimedia applications
Multimedia applicationsMultimedia applications
Multimedia applications
 
Video Transcoding Terms Explained
Video Transcoding Terms Explained Video Transcoding Terms Explained
Video Transcoding Terms Explained
 
Video tech final
Video tech finalVideo tech final
Video tech final
 
Webcasting
WebcastingWebcasting
Webcasting
 
Video Workshop by Frederick Rodrigues
Video Workshop by Frederick RodriguesVideo Workshop by Frederick Rodrigues
Video Workshop by Frederick Rodrigues
 
2 audio video
2 audio video2 audio video
2 audio video
 
Mm Unit 4
Mm Unit 4Mm Unit 4
Mm Unit 4
 
Technical comments research_sheet[1]
Technical comments research_sheet[1]Technical comments research_sheet[1]
Technical comments research_sheet[1]
 
2
22
2
 
Architecting a Video Encoding Strategy Designed For Growth
Architecting a Video Encoding Strategy Designed For GrowthArchitecting a Video Encoding Strategy Designed For Growth
Architecting a Video Encoding Strategy Designed For Growth
 
Building High Quality Video Operations in the Cloud - Synacor
Building High Quality Video Operations in the Cloud - SynacorBuilding High Quality Video Operations in the Cloud - Synacor
Building High Quality Video Operations in the Cloud - Synacor
 
The technology of editing
The technology of editingThe technology of editing
The technology of editing
 
Ch07_-_Multimedia_Element-Video_1_.ppt
Ch07_-_Multimedia_Element-Video_1_.pptCh07_-_Multimedia_Element-Video_1_.ppt
Ch07_-_Multimedia_Element-Video_1_.ppt
 
video compression techique
video compression techiquevideo compression techique
video compression techique
 

Mais de goodfriday

Narine Presentations 20051021 134052
Narine Presentations 20051021 134052Narine Presentations 20051021 134052
Narine Presentations 20051021 134052goodfriday
 
09 03 22 easter
09 03 22 easter09 03 22 easter
09 03 22 eastergoodfriday
 
Holy Week Easter 2009
Holy Week Easter 2009Holy Week Easter 2009
Holy Week Easter 2009goodfriday
 
Holt Park Easter 09 Swim
Holt Park Easter 09 SwimHolt Park Easter 09 Swim
Holt Park Easter 09 Swimgoodfriday
 
Swarthmore Lentbrochure20092
Swarthmore Lentbrochure20092Swarthmore Lentbrochure20092
Swarthmore Lentbrochure20092goodfriday
 
Eastercard2009
Eastercard2009Eastercard2009
Eastercard2009goodfriday
 
Easterservices2009
Easterservices2009Easterservices2009
Easterservices2009goodfriday
 
Bulletin Current
Bulletin CurrentBulletin Current
Bulletin Currentgoodfriday
 
March 2009 Newsletter
March 2009 NewsletterMarch 2009 Newsletter
March 2009 Newslettergoodfriday
 
Lent Easter 2009
Lent Easter 2009Lent Easter 2009
Lent Easter 2009goodfriday
 
Easterpowersports09
Easterpowersports09Easterpowersports09
Easterpowersports09goodfriday
 
Easter Trading 09
Easter Trading 09Easter Trading 09
Easter Trading 09goodfriday
 
Easter Brochure 2009
Easter Brochure 2009Easter Brochure 2009
Easter Brochure 2009goodfriday
 
March April 2009 Calendar
March April 2009 CalendarMarch April 2009 Calendar
March April 2009 Calendargoodfriday
 

Mais de goodfriday (20)

Narine Presentations 20051021 134052
Narine Presentations 20051021 134052Narine Presentations 20051021 134052
Narine Presentations 20051021 134052
 
Triunemar05
Triunemar05Triunemar05
Triunemar05
 
09 03 22 easter
09 03 22 easter09 03 22 easter
09 03 22 easter
 
Holy Week Easter 2009
Holy Week Easter 2009Holy Week Easter 2009
Holy Week Easter 2009
 
Holt Park Easter 09 Swim
Holt Park Easter 09 SwimHolt Park Easter 09 Swim
Holt Park Easter 09 Swim
 
Easter Letter
Easter LetterEaster Letter
Easter Letter
 
April2009
April2009April2009
April2009
 
Swarthmore Lentbrochure20092
Swarthmore Lentbrochure20092Swarthmore Lentbrochure20092
Swarthmore Lentbrochure20092
 
Eastercard2009
Eastercard2009Eastercard2009
Eastercard2009
 
Easterservices2009
Easterservices2009Easterservices2009
Easterservices2009
 
Bulletin Current
Bulletin CurrentBulletin Current
Bulletin Current
 
Easter2009
Easter2009Easter2009
Easter2009
 
Bulletin
BulletinBulletin
Bulletin
 
March 2009 Newsletter
March 2009 NewsletterMarch 2009 Newsletter
March 2009 Newsletter
 
Mar 29 2009
Mar 29 2009Mar 29 2009
Mar 29 2009
 
Lent Easter 2009
Lent Easter 2009Lent Easter 2009
Lent Easter 2009
 
Easterpowersports09
Easterpowersports09Easterpowersports09
Easterpowersports09
 
Easter Trading 09
Easter Trading 09Easter Trading 09
Easter Trading 09
 
Easter Brochure 2009
Easter Brochure 2009Easter Brochure 2009
Easter Brochure 2009
 
March April 2009 Calendar
March April 2009 CalendarMarch April 2009 Calendar
March April 2009 Calendar
 

Último

Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 

Último (20)

Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 

Design in Motion: Video Production Workflow

  • 1.
  • 2. Ben Waggoner Technical Evangelist, Core Media Processing Technologies Microsoft Corporation
  • 3. Video and audio in WPF/E Best practices for processing video and audio Best practices for Windows Media encoding for WPF/E Using the Expression Media Encoder
  • 4. It's just Windows Media! Huge library of existing content already compatible Existing URLs from Windows Media Services still work Already supported by many hosting companies Lots of tools available for different markets Video codec; Windows Media Video 7/8/9 and 9 Advanced Profile Audio codec: Windows Media Audio quot;Standardquot; Not Pro, Voice, or Lossless in this version
  • 6. Higher quality video and audio Fewer bits needed for same quality Much faster encoding 3x faster for optimum quality on 4-core workstation 15x faster with Tarari card for hardware acceleration Much better TCO for video hosting Many more streams off a 2K3 Server than Flash server Cheaper per GB charges from hosting providers Mature live streaming/encoding tools
  • 7. Capture Getting the content in higher quality Preprocessing Optimizing the content for the codec itself
  • 8. Capture native bitstream or uncompressed DV, DVCPRO HD as native bitstream Other formats as uncompressed Don’t use DV bridge for analog-digital conversion DV codec throws out a lot of image data, especially color Access earliest generation dub as possible Most VHS tapes didn’t get posted on VHS! Ripping from DVD also sub-optimal Best to grab digital export from NLE
  • 9. Everything we do to the video and audio between the source and the codec The biggest single factor in good-looking WPF/E video The best the codec can do is give back what you gave it For challenging projets, I spend ~80% of my keyboard- and-mouse time on preprocessing Once the codec settings are nailed, you're good to go.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14. WPF/E uses progressive video For 60i/50i, deinterlace to progressive For video telecined from film, use inverse telecine to restore 24p If it’s progressive, leave it alone! <example slide>
  • 15. Video monitors don’t go to edges Computers do Crop edge blanking Asymmetric okay to cut out noise For low rez, crop to safe area Crop letterboxing as well If going to 16x16 resolution, can crop to final aspect ratio For mixed video/computer playback, matte out noise in blanking
  • 16.
  • 17. Brightness and Contrast Computers have broader range — use it Blacks should look identical to RGB=0,0,0 in browser Noise Reduction Make image easier for compressor Remove grain Smooth sharp edges
  • 18.
  • 19. After The Settings
  • 20.
  • 21. Make loudest point of audio as loud as system beep -3 dB / 90% Not compressor/limiter - no change in dynamic range
  • 22. Progressive versus Streaming Data Rates Frame Size Frame Rate Audio Settings Advanced Registry Key settings
  • 23. Two legitimate modes of delivering web video Need to know which one will be used before encoding Progressive should use 2-pass VBR Streaming should use 2-pass CBR
  • 24. Off a web server E.g., IIS in Windows 2003 Server Most efficient with Variable Bit Rate (VBR) encoding Random access in part of stream already downloaded Great for movie trailers
  • 25. Files fromWindows Media Services Included in Windows 2003 Server Needs Constant Bit Rate (CBR) encoding Offers random access throughout stream Reduces need for local caching (big for mobile devices) Great for movies
  • 26. We measure rates in power-of-ten numbers K=1000, not 1024 M=1000000, not 1048576 Streaming Need more sustained bandwidth to user more than data rate Progressive A slower connection means user waits longer for playback But can use high bitrates for short clips
  • 27. WPF/E wants square pixel video So need to convert to aspect ratio Example DV is 720x480 4:3 content becomes 640:480 16:9 content becomes 832x480 Depends somewhat on data rate 200-500 Kbps: 320x240 or 432x240 1-2 Mbps: 640x480 or 832x240
  • 28. 1-pass versus 2-pass 1-pass reads the source in and encodes out at the same time 2-pass does analysis pass first, calculating optimal bit-budget 2-pass is always better if you've got the time And it’s not 2x slower – the analysis pass runs quite a bit faster CBR versus VBR Constant Bitrate Optimum for streaming – quality varies, bitrate constant Variable Bitrate Optimum for progressive download – varies bitrate, quality constant
  • 29. Use frame rate that’s an integer division of source 59.94 to: 59.94, 29.97, 15, 10, 7.5, 6, 5 50 to: 50, 25, 12.5, 10, 5 24 to: 24, 12, 8, 6 For anything over 200 Kbps, can use full frame rate of source
  • 30. New compression tool targeting .WMV for WPF/E Bunded with Expression Media Product Accessible to both designers and video professionals Offline and Live Encoding But there's no secret sauce – you're welcome to use any WMV encoding tool with WPF/E
  • 31.
  • 32. The codec has a bunch of registry key setting to further optimize encoding I fear regedit – you can use ―WMV9 PowerToy‖ Lots more options than I’ll discuss today Link to full documentation at end Tools will be integrating these controls later this year
  • 34. Current codec can use up to four threads for encoding Big speed improvement with multiple cores Auto picks number of threads available Sees HyperThreading (Pentium 4) as 2 processors But HT is less of a gain with compression than additional core Want to have at least 64 pixels high per thread <128 height: 1-thread <256 height (so 320x240): 2-threads 256+ height: 4-threads
  • 35. Motion Estimation copies moving elements between frames Much more efficient to encode ―motion vector‖ than second copy of element Using a larger Motion Search range Provides better efficiency with faster motion Slows encoding Can reduce efficiency with slower motion
  • 36. Available Options: Macroblock-adaptive 128 pixels horizontally, 64 pixels vertically (default) 256 pixels horizontally, 128 pixels vertically 1024 pixels horizontally, 256 pixels vertically 2056 pixels horizontally, 512 pixels vertically Each progressive option slowest encoding by ~2x Macroblock-adaptive slightly faster than 1024x256 Use Macroblock Adaptive for non-realtime encoding
  • 37.
  • 38.
  • 39. Finds where color changes but B&W channel doesn’t Quality improvements 5-20% (most with colorful content) Crowd shots, motion graphics helped in particular Modes: Macroblock-adaptive with nearest integer chroma (fast, good) Macroblock-adaptive with true chroma (speed/quality mix) Luma only (default) Luma with nearest-integer chroma Luma with true chroma (best, slowest)
  • 40. Number of bi-directional (B-Frames) between I-Frames and P-Frames B-Frames based off previous and next frame B-Frames typically fewer bits for same quality No frames are based on B-frame Don’t insert I-frame for flashes if they land on a B-frame So dynamically insert B-frames when there are flashes! Big win for gunfights and discos 1 B-frame optimal for most web encoding
  • 41.
  • 42. Smooths out hard edge blocking artifacts ―In-loop‖ - used as prediction for future frames Only blurs content where an artifact would appear Much less noticeable at higher resolutions Softness better if alternative is artifacts Increased CPU decoder requirements somewhat
  • 43. Softens edges where motion vectors overlap Softens image somewhat But reduces artifacts Recommendation On if you see artifacts Otherwise Off Also increases decoder complexity some
  • 44. Denoises image before calculating motion vectors Keeps grain/noise from ―swirling‖ Helps low-bitrate encodes But can leave ―trails‖ Recommendation Only use with grainy source, and QA carefully
  • 45. Simple noise reduction filter Helps when the source is noisy Not as good as offline noise reducers Recommendation Good for realtime encoding in low light But better to not have noisy source…
  • 46. Blanks Line 21, other noise around edge of frame Handy for real-time encoding of analog sources Only use if source has edge noise
  • 47. Specifies up to 16 frames forward for analysis Only needed in 1-pass encoding Used to detect scene changes, flash frames Big improvement for 1-pass CBR encodes Can dynamically insert B-frames with flashes Default is Off (Does not look ahead) Adds to latency for live encoding ~½ second for Lookahead=15 @ 29.97 fps Slightly slows encoding as Lookahead increases
  • 48. ―Differential Quantization‖ Different macroblocks are compressed different amounts Compress gradients less, to reduce banding Recommendation I and P frames Using on B-frames wastes bits that will be discarded Lots of levels available ―Regular‖ good default with most content
  • 49. Like DQuant, optimizes bits based on image Used in addition to DQuant Adaptive Dead Zone 1 good default for film content Experiment carefully with other kinds of sources
  • 50. Highest quality encoding and reasonable performance Up to 4x slower than default settings Encoder complexity = 4/80 (second slowest) Motion Search Level = macroblock adaptive true chroma Motion Search Range = macroblock adaptive Motion Match Method = Adaptive SAD/Hadamard DQuant = Regular Perceptual Option = Adaptive Dead Zone 1 for film Force LoopFilter = On
  • 51. Optimized for reliable real-time encoding Remember dual-duals are almost 4x faster than single core Motion Search Range = Biggest that doesn’t drop frames Motion Search Level = Luma + integer chroma NumBFrames = 1 Force LoopFilter = 1 (on) Dquant Option = Regular Perceptual Option = Adaptive Dead Zone 1 for film Lookahead = 16 (Max – most important single option)
  • 52. 2-day instructor-led training in over 20 US cities Tools and Technologies Used Expression Blend and Expression Design NET Framework 3.0, Windows Presentation Foundation, XAML Visual Studio 2005 Target Audience User interface designers with advanced experience with Flash or Director. Understanding of Visual Studio 2005 or programming skills is not required. Prerequisites Does not require prior experience using Expression Blend or Windows Presentation Foundation. We recommend: Building an understanding of .NET Framework 3.0 Download Expression Blend http://www.microsoft.com/expression Get inspired! www.seewindowsvista.com Learn More: http://tinyurl.com/3y6jg7
  • 53. Me: Ben.Waggoner@microsoft.com My blog: http://on10.net/blogs/benwagg/ My class at Stanford www.digitalmediaacademy.org/courses/video-compression-training.html
  • 54.
  • 55. © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.