SlideShare a Scribd company logo
1 of 117
Download to read offline
Introduction to VP8
郭至軒 (KuoE0)
kuoe0.tw@gmail.com
Latest update: Jun 13, 2013
Attribution-ShareAlike 3.0 Unported
(CC BY-SA 3.0)
http://creativecommons.org/licenses/by-sa/3.0/
Situation
web m
web m
Video Codec
VP8
An
Open
Source
Codec
Developed by
On2 Technology
Developed by
On2 Technology
February, 2010
Acquired by
Google
February, 2010
Patent
web m
March, 2013
web m
Royalty-Free TermsMarch, 2013
web m
Successor
VP9
Successor
VP9
May 15, 2013
Feature
focus on
Internet
web-based
application
Low Bandwidth Requirement
Image Quality:
watchable (PSNR: ~30dB)
visually lossless (PSNR: ~45dB)
Heterogeneous Client Hardware
Heterogeneous Client Hardware
Heterogeneous Client Hardware
Efficient
Implementations
Web Video Format
YUV 420 color sampling
8 bit per channel depth
Up to 16383 × 16383 pixels
Processing Flow
Coding
Predict
Transform + Quantize
Entropy Code
Loop Filter
Decoding
Entropy Decode
Predict
Dequantize+Inverse Transform
Loop Filter
Reference Frame
Golden
Frame
Last Frame
Alternate
Frame
Reference
Frame
Golden
Frame
Last Frame
Alternate
Frame
At most 3 reference frames in VP8.
Last Frame
Last Frame
Last Frame
Last Frame Current Frame
Golden Frame
Choose an arbitrary frame in the past.
Define a number of flags to notify decoder
when and how to update this buffer.
Golden Frame
Choose an arbitrary frame in the past.
Define a number of flags to notify decoder
when and how to update this buffer.
set as the golden frame
Golden Frame
Golden Frame
Golden Frame
Golden Frame
Golden Frame
Golden Frame
Golden Frame
Golden Frame
Golden Frame
Golden Frame
Golden Frame
Golden Frame
Golden Frame
Golden Frame
Golden Frame
Golden Frame
Golden Frame
Golden Frame
Reconstruct
moving object
background
Alternate Frame
Other
Frame
Alternate
Frame
Alternate Frame
Other
Frame
Alternate
Frame
decode
show
Alternate Frame
Other
Frame
Alternate
Frame
decode
show
decode show
Alternate Frame
Other
Frame
Alternate
Frame
decode
show
decode show
store beneficial information
Construct from multi-frame
Construct from multi-frame
Construct from multi-frame
Construct from multi-frame
Alternate
Frame
Typical Frame
I B B P B B P B B I B B P
VP8
L G
A
G G G G G L G G G
A
G L
Prediction
Intra Prediction
Inter Prediction
use data within a single video frame
use data from previously encoded frames
Intra Prediction
Luma
Luma
Chroma
Intra Prediction
Luma
Luma
Chroma
16 4 8
H_PRED (horizontal prediction)
V_PRED (vertical prediction)
DC_PRED (DC prediction)
TM_PRED (TrueMotion prediction)
Four Prediction Modes:
Horizontal Prediction
Fills each column of the block with
a copy of the left column.
a b c d e
f g h i j
k l m n o
p q r s t
u v w x y
A B C D E
F G H I J
K L M N O
P Q R S T
U V W X Y
Horizontal Prediction
Fills each column of the block with
a copy of the left column.
a b c d e
f g h i j
k l m n o
p q r s t
u v w x y
A B C D E
F G H I J
K L M N O
P Q R S T
U V W X Y
e
j
o
t
y
Horizontal Prediction
Fills each column of the block with
a copy of the left column.
a b c d e
f g h i j
k l m n o
p q r s t
u v w x y
A B C D E
F G H I J
K L M N O
P Q R S T
U V W X Y
e
j
o
t
y
e e e e e
j j j j j
o o o o o
t t t t t
y y y y y
Vertical Prediction
Fills each row of the block with a
copy of the above row.
a b c d e
f g h i j
k l m n o
p q r s t
u v w x y
A B C D E
F G H I J
K L M N O
P Q R S T
U V W X Y
Vertical Prediction
Fills each row of the block with a
copy of the above row.
a b c d e
f g h i j
k l m n o
p q r s t
u v w x y
A B C D E
F G H I J
K L M N O
P Q R S T
U V W X YU V W X Y
Vertical Prediction
Fills each row of the block with a
copy of the above row.
a b c d e
f g h i j
k l m n o
p q r s t
u v w x y
A B C D E
F G H I J
K L M N O
P Q R S T
U V W X YU V W X Y
U V W X Y
U V W X Y
U V W X Y
U V W X Y
U V W X Y
DC Prediction
Fills the block with a single value
using the average of the pixels in
the above row and the left column.
a b c d e
f g h i j
k l m n o
p q r s t
u v w x y
A B C D E
F G H I J
K L M N O
P Q R S T
U V W X Y
DC Prediction
Fills the block with a single value
using the average of the pixels in
the above row and the left column.
a b c d e
f g h i j
k l m n o
p q r s t
u v w x y
A B C D E
F G H I J
K L M N O
P Q R S T
U V W X YU V W X Y
e
j
o
t
y
Z = (U + V + W + X +
Y + e + j + o + t + y) ÷
10
DC Prediction
Fills the block with a single value
using the average of the pixels in
the above row and the left column.
a b c d e
f g h i j
k l m n o
p q r s t
u v w x y
A B C D E
F G H I J
K L M N O
P Q R S T
U V W X YU V W X Y
e
j
o
t
y
Z = (U + V + W + X +
Y + e + j + o + t + y) ÷
10
Z Z Z Z Z
Z Z Z Z Z
Z Z Z Z Z
Z Z Z Z Z
Z Z Z Z Z
* * * * L0
* * * * L1
* * * * L2
* * * * L3
* * * * L4
* * * * *
* * * * *
* * * * *
* * * * *
A0 A1 A2 A3 A4
TrueMotion Prediction
Horizontal differences
between pixels in
above row and vertical
differences between
pixels in left column are
propagated (starting
from C).
* * * * *
* * * * *
* * * * *
* * * * *
* * * * C
* * * * L0
* * * * L1
* * * * L2
* * * * L3
* * * * L4
* * * * *
* * * * *
* * * * *
* * * * *
A0 A1 A2 A3 A4A0 A1 A2 A3 A4
L0
L1
L2
L3
L4
TrueMotion Prediction
Horizontal differences
between pixels in
above row and vertical
differences between
pixels in left column are
propagated (starting
from C).
* * * * *
* * * * *
* * * * *
* * * * *
* * * * CC
Xij = Ai + Lj - C
* * * * L0
* * * * L1
* * * * L2
* * * * L3
* * * * L4
* * * * *
* * * * *
* * * * *
* * * * *
A0 A1 A2 A3 A4A0 A1 A2 A3 A4
L0
L1
L2
L3
L4
TrueMotion Prediction
Horizontal differences
between pixels in
above row and vertical
differences between
pixels in left column are
propagated (starting
from C).
* * * * *
* * * * *
* * * * *
* * * * *
* * * * CC
Xij = Ai + Lj - C
Xij Xij Xij Xij Xij
Xij Xij Xij Xij Xij
Xij Xij Xij Xij Xij
Xij Xij Xij Xij Xij
Xij Xij Xij Xij Xij
Inter Prediction
As mentioned above...
Inter Prediction
Golden
Frame
Last Frame
Alternate
Frame
Motion Vector
Reusing vectors from neighboring
macroblocks.
Flexible partitioning of a macroblock into sub-
blocks.
Sub-pixel Interpolation
Quarter pixel accurate motion vectors for
luma pixels.
High performance six-tap interpolation
filters.
[3, -16, 77, 77, -16, 3]/128 for 1⁄2 pixel positions
[2, -11, 108, 36, -8, 1]/128 for 1⁄4 pixel positions
[1, -8, 36, 108, -11, 2]/128 for 3⁄4 pixel positions
Hybrid Transform
& Quantization
Divide into Macroblocks
One 16×16 block of luma pixels (Y)
Two 8×8 blocks of chroma pixels (U, V)
Typical Method
16 8 8
Divide into blocks
VP8 Method
All blocks of luma and chroma are 4×4
blocks
4 4 4
Discrete Cosine Transform
Fast implementation
Slightly worse in energy compaction
than KLT
Content-independency
Coding
2-D DCT
Decoding
4×4 variant of LLM
implementation
Coding
2-D DCT
Decoding
4×4 variant of LLM
implementation
Practical fast 1-D DCT algorithms with 11 multiplications
I1
I2
I3
I4
O1
O2
O3
O4
Inverse DCT Graph in VP8
y0
y1
x0
x1
y0 = √2(x0×sin(π/8)-x1×cos(π/8))
y1 = √2(x0×cos(π/8)+x1×sin(π/8))
H.264/AVC
use multiplication-less integer transform
slightly better than
Energy compaction is
It is efficient in processors with
SIMD capability.
Walsh-Hadamard Transform
Y = HXHT
H =
1 1 1 1
1 1 -1 -1
1 -1 1 -1
1 -1 -1 1
[ ]HT is the transpose of H.
Take advantage of
the correlation to
reduce redundancy.
Adaptive Quantization
128 quantization level.
Different quantization level in single frame.
1st order luma DC
1st order luma AC
2st order luma DC
2st order luma AC
2st order chroma DC
2st order chroma AC
Entropy Coding
Supports distribution updates on a per-frame
basis
Boolean arithmetic coder
Stable probability distributions within one
frame
Keyframes reset the probability values to the
defaults
Adaptive Loop Filter
Removing blocking artifacts introduced by
quantization and transformation.
Removing blocking artifacts introduced by
quantization and transformation.
Removing blocking artifacts introduced by
quantization and transformation.
Slight Filtering
Removing blocking artifacts introduced by
quantization and transformation.
Slight Filtering
Strong Filtering
Removing blocking artifacts introduced by
quantization and transformation.
Slight Filtering
Strong Filtering
No Filtering
Parallel Processing
Data Partition
Compressed Data
Data Partition
Compressed Data
marcoblock code mode
& motion vector
transform coefficients
More Transform Coefficient Partition
transform coefficients
support up to 8 token partitions
More Transform Coefficient Partition
transform coefficients
support up to 8 token partitions
Compare to H.264
100
120
140
160
180
200
220
240
260
280
300
Night 720p 2000kbps Sheriff 720p 2000kbps Tulip 720p 2000kbps
Deocding speed in Frame/second
VP8 H.264 High Profile
Intel Core i7 3.2GHz
20
25
30
35
40
45
Night 720p 2000kbps Sheriff 720p 2000kbps Tulip 720p 2000kbps
Deocding speed in Frame/second
VP8 H.264 High Profile
Intel Atom N270 1.66GHz
Any Questions?
Thanks for your listening :)

More Related Content

What's hot

Electronics amplifiers
Electronics   amplifiersElectronics   amplifiers
Electronics amplifierssld1950
 
Deblurring of Digital Image PPT
Deblurring of Digital Image PPTDeblurring of Digital Image PPT
Deblurring of Digital Image PPTSyed Atif Naseem
 
Bilateral filtering for gray and color images
Bilateral filtering for gray and color imagesBilateral filtering for gray and color images
Bilateral filtering for gray and color imagesHarshal Ladhe
 
A 13b SAR ADC with Eye-opening VCO Based Comparator
A 13b SAR ADC with Eye-opening VCO Based ComparatorA 13b SAR ADC with Eye-opening VCO Based Comparator
A 13b SAR ADC with Eye-opening VCO Based ComparatorKentaro Yoshioka
 
Signed numbers in 8051
Signed numbers in 8051Signed numbers in 8051
Signed numbers in 8051Zeeshan Ahmed
 
Wavelet based image compression technique
Wavelet based image compression techniqueWavelet based image compression technique
Wavelet based image compression techniquePriyanka Pachori
 
Analog to digital converter
Analog to digital converterAnalog to digital converter
Analog to digital convertershrutishreya14
 
Quasi Cyclic LDPC codes - Algebraic Construction
Quasi Cyclic LDPC codes - Algebraic Construction Quasi Cyclic LDPC codes - Algebraic Construction
Quasi Cyclic LDPC codes - Algebraic Construction Eapen Vpp
 
Lecture: Digital Signal Processing Batch 2009
Lecture: Digital Signal Processing Batch 2009Lecture: Digital Signal Processing Batch 2009
Lecture: Digital Signal Processing Batch 2009ubaidis
 
MOS as Diode, Switch and Active Resistor
MOS as Diode, Switch and Active ResistorMOS as Diode, Switch and Active Resistor
MOS as Diode, Switch and Active ResistorSudhanshu Janwadkar
 
ViT (Vision Transformer) Review [CDM]
ViT (Vision Transformer) Review [CDM]ViT (Vision Transformer) Review [CDM]
ViT (Vision Transformer) Review [CDM]Dongmin Choi
 
Advanced Scenegraph Rendering Pipeline
Advanced Scenegraph Rendering PipelineAdvanced Scenegraph Rendering Pipeline
Advanced Scenegraph Rendering PipelineNarann29
 
Filmic Tonemapping for Real-time Rendering - Siggraph 2010 Color Course
Filmic Tonemapping for Real-time Rendering - Siggraph 2010 Color CourseFilmic Tonemapping for Real-time Rendering - Siggraph 2010 Color Course
Filmic Tonemapping for Real-time Rendering - Siggraph 2010 Color Coursehpduiker
 
High Efficiency Video Codec
High Efficiency Video CodecHigh Efficiency Video Codec
High Efficiency Video CodecTejus Adiga M
 

What's hot (20)

Jpeg standards
Jpeg   standardsJpeg   standards
Jpeg standards
 
Electronics amplifiers
Electronics   amplifiersElectronics   amplifiers
Electronics amplifiers
 
Deblurring of Digital Image PPT
Deblurring of Digital Image PPTDeblurring of Digital Image PPT
Deblurring of Digital Image PPT
 
Ditial to Analog Converter
Ditial to Analog ConverterDitial to Analog Converter
Ditial to Analog Converter
 
ADC & DAC
ADC & DACADC & DAC
ADC & DAC
 
Bilateral filtering for gray and color images
Bilateral filtering for gray and color imagesBilateral filtering for gray and color images
Bilateral filtering for gray and color images
 
A 13b SAR ADC with Eye-opening VCO Based Comparator
A 13b SAR ADC with Eye-opening VCO Based ComparatorA 13b SAR ADC with Eye-opening VCO Based Comparator
A 13b SAR ADC with Eye-opening VCO Based Comparator
 
Signed numbers in 8051
Signed numbers in 8051Signed numbers in 8051
Signed numbers in 8051
 
Wavelet based image compression technique
Wavelet based image compression techniqueWavelet based image compression technique
Wavelet based image compression technique
 
Analog to digital converter
Analog to digital converterAnalog to digital converter
Analog to digital converter
 
Quasi Cyclic LDPC codes - Algebraic Construction
Quasi Cyclic LDPC codes - Algebraic Construction Quasi Cyclic LDPC codes - Algebraic Construction
Quasi Cyclic LDPC codes - Algebraic Construction
 
JPEG Image Compression
JPEG Image CompressionJPEG Image Compression
JPEG Image Compression
 
Oscillators
OscillatorsOscillators
Oscillators
 
Lecture: Digital Signal Processing Batch 2009
Lecture: Digital Signal Processing Batch 2009Lecture: Digital Signal Processing Batch 2009
Lecture: Digital Signal Processing Batch 2009
 
MOS as Diode, Switch and Active Resistor
MOS as Diode, Switch and Active ResistorMOS as Diode, Switch and Active Resistor
MOS as Diode, Switch and Active Resistor
 
ViT (Vision Transformer) Review [CDM]
ViT (Vision Transformer) Review [CDM]ViT (Vision Transformer) Review [CDM]
ViT (Vision Transformer) Review [CDM]
 
Vector quantization
Vector quantizationVector quantization
Vector quantization
 
Advanced Scenegraph Rendering Pipeline
Advanced Scenegraph Rendering PipelineAdvanced Scenegraph Rendering Pipeline
Advanced Scenegraph Rendering Pipeline
 
Filmic Tonemapping for Real-time Rendering - Siggraph 2010 Color Course
Filmic Tonemapping for Real-time Rendering - Siggraph 2010 Color CourseFilmic Tonemapping for Real-time Rendering - Siggraph 2010 Color Course
Filmic Tonemapping for Real-time Rendering - Siggraph 2010 Color Course
 
High Efficiency Video Codec
High Efficiency Video CodecHigh Efficiency Video Codec
High Efficiency Video Codec
 

Similar to Introduction to VP8

input output Organization
input output Organizationinput output Organization
input output OrganizationAcad
 
Recreation mathematics ppt
Recreation mathematics pptRecreation mathematics ppt
Recreation mathematics pptPawan Yadav
 
Electrónica digital: Display de 7 segmentos con compuertas lógicas
Electrónica digital: Display de 7 segmentos con compuertas lógicasElectrónica digital: Display de 7 segmentos con compuertas lógicas
Electrónica digital: Display de 7 segmentos con compuertas lógicasSANTIAGO PABLO ALBERTO
 
RF Circuit Design - [Ch1-1] Sinusoidal Steady-state Analysis
RF Circuit Design - [Ch1-1] Sinusoidal Steady-state AnalysisRF Circuit Design - [Ch1-1] Sinusoidal Steady-state Analysis
RF Circuit Design - [Ch1-1] Sinusoidal Steady-state AnalysisSimen Li
 
Self Managed and Automatically Reconfigurable Stream Processing - Vasiliki Ka...
Self Managed and Automatically Reconfigurable Stream Processing - Vasiliki Ka...Self Managed and Automatically Reconfigurable Stream Processing - Vasiliki Ka...
Self Managed and Automatically Reconfigurable Stream Processing - Vasiliki Ka...Flink Forward
 
Self-managed and automatically reconfigurable stream processing
Self-managed and automatically reconfigurable stream processingSelf-managed and automatically reconfigurable stream processing
Self-managed and automatically reconfigurable stream processingVasia Kalavri
 
Lecture 18 M - Copy.pptx
Lecture 18 M - Copy.pptxLecture 18 M - Copy.pptx
Lecture 18 M - Copy.pptxAzeenShahid
 
11-PLDs.pdf
11-PLDs.pdf11-PLDs.pdf
11-PLDs.pdfKoayFT
 
UNIT-II -DIGITAL SYSTEM DESIGN
UNIT-II -DIGITAL SYSTEM DESIGNUNIT-II -DIGITAL SYSTEM DESIGN
UNIT-II -DIGITAL SYSTEM DESIGNDr.YNM
 
UNIT-II : SEQUENTIAL CIRCUIT DESIGN
UNIT-II  : SEQUENTIAL CIRCUIT DESIGN UNIT-II  : SEQUENTIAL CIRCUIT DESIGN
UNIT-II : SEQUENTIAL CIRCUIT DESIGN Dr.YNM
 
新たなRNNと自然言語処理
新たなRNNと自然言語処理新たなRNNと自然言語処理
新たなRNNと自然言語処理hytae
 
Combinational logic 1
Combinational logic 1Combinational logic 1
Combinational logic 1Heman Pathak
 
Lec4 State Variable Models are used for modeing
Lec4 State Variable Models are used for modeingLec4 State Variable Models are used for modeing
Lec4 State Variable Models are used for modeingShehzadAhmed90
 
"Deep Learning" Chap.6 Convolutional Neural Net
"Deep Learning" Chap.6 Convolutional Neural Net"Deep Learning" Chap.6 Convolutional Neural Net
"Deep Learning" Chap.6 Convolutional Neural NetKen'ichi Matsui
 
Cheatsheet convolutional-neural-networks
Cheatsheet convolutional-neural-networksCheatsheet convolutional-neural-networks
Cheatsheet convolutional-neural-networksSteve Nouri
 
Cycle’s topological optimizations and the iterative decoding problem on gener...
Cycle’s topological optimizations and the iterative decoding problem on gener...Cycle’s topological optimizations and the iterative decoding problem on gener...
Cycle’s topological optimizations and the iterative decoding problem on gener...Usatyuk Vasiliy
 

Similar to Introduction to VP8 (20)

input output Organization
input output Organizationinput output Organization
input output Organization
 
Recreation mathematics ppt
Recreation mathematics pptRecreation mathematics ppt
Recreation mathematics ppt
 
2017 a
2017 a2017 a
2017 a
 
Electrónica digital: Display de 7 segmentos con compuertas lógicas
Electrónica digital: Display de 7 segmentos con compuertas lógicasElectrónica digital: Display de 7 segmentos con compuertas lógicas
Electrónica digital: Display de 7 segmentos con compuertas lógicas
 
RF Circuit Design - [Ch1-1] Sinusoidal Steady-state Analysis
RF Circuit Design - [Ch1-1] Sinusoidal Steady-state AnalysisRF Circuit Design - [Ch1-1] Sinusoidal Steady-state Analysis
RF Circuit Design - [Ch1-1] Sinusoidal Steady-state Analysis
 
Self Managed and Automatically Reconfigurable Stream Processing - Vasiliki Ka...
Self Managed and Automatically Reconfigurable Stream Processing - Vasiliki Ka...Self Managed and Automatically Reconfigurable Stream Processing - Vasiliki Ka...
Self Managed and Automatically Reconfigurable Stream Processing - Vasiliki Ka...
 
Self-managed and automatically reconfigurable stream processing
Self-managed and automatically reconfigurable stream processingSelf-managed and automatically reconfigurable stream processing
Self-managed and automatically reconfigurable stream processing
 
Apple 1 manual & warranty 1976
Apple 1 manual & warranty 1976Apple 1 manual & warranty 1976
Apple 1 manual & warranty 1976
 
Lecture 18 M - Copy.pptx
Lecture 18 M - Copy.pptxLecture 18 M - Copy.pptx
Lecture 18 M - Copy.pptx
 
11-PLDs.pdf
11-PLDs.pdf11-PLDs.pdf
11-PLDs.pdf
 
UNIT-II -DIGITAL SYSTEM DESIGN
UNIT-II -DIGITAL SYSTEM DESIGNUNIT-II -DIGITAL SYSTEM DESIGN
UNIT-II -DIGITAL SYSTEM DESIGN
 
UNIT-II : SEQUENTIAL CIRCUIT DESIGN
UNIT-II  : SEQUENTIAL CIRCUIT DESIGN UNIT-II  : SEQUENTIAL CIRCUIT DESIGN
UNIT-II : SEQUENTIAL CIRCUIT DESIGN
 
新たなRNNと自然言語処理
新たなRNNと自然言語処理新たなRNNと自然言語処理
新たなRNNと自然言語処理
 
Combinational logic 1
Combinational logic 1Combinational logic 1
Combinational logic 1
 
Lec4 State Variable Models are used for modeing
Lec4 State Variable Models are used for modeingLec4 State Variable Models are used for modeing
Lec4 State Variable Models are used for modeing
 
"Deep Learning" Chap.6 Convolutional Neural Net
"Deep Learning" Chap.6 Convolutional Neural Net"Deep Learning" Chap.6 Convolutional Neural Net
"Deep Learning" Chap.6 Convolutional Neural Net
 
ML Visuals.pptx
ML Visuals.pptxML Visuals.pptx
ML Visuals.pptx
 
Cheatsheet convolutional-neural-networks
Cheatsheet convolutional-neural-networksCheatsheet convolutional-neural-networks
Cheatsheet convolutional-neural-networks
 
Drawing Tools
Drawing ToolsDrawing Tools
Drawing Tools
 
Cycle’s topological optimizations and the iterative decoding problem on gener...
Cycle’s topological optimizations and the iterative decoding problem on gener...Cycle’s topological optimizations and the iterative decoding problem on gener...
Cycle’s topological optimizations and the iterative decoding problem on gener...
 

More from Chih-Hsuan Kuo

[Mozilla] content-select
[Mozilla] content-select[Mozilla] content-select
[Mozilla] content-selectChih-Hsuan Kuo
 
Ownership System in Rust
Ownership System in RustOwnership System in Rust
Ownership System in RustChih-Hsuan Kuo
 
在開始工作以前,我以為我會寫扣。
在開始工作以前,我以為我會寫扣。在開始工作以前,我以為我會寫扣。
在開始工作以前,我以為我會寫扣。Chih-Hsuan Kuo
 
Effective Modern C++ - Item 35 & 36
Effective Modern C++ - Item 35 & 36Effective Modern C++ - Item 35 & 36
Effective Modern C++ - Item 35 & 36Chih-Hsuan Kuo
 
Use C++ to Manipulate mozSettings in Gecko
Use C++ to Manipulate mozSettings in GeckoUse C++ to Manipulate mozSettings in Gecko
Use C++ to Manipulate mozSettings in GeckoChih-Hsuan Kuo
 
Pocket Authentication with OAuth on Firefox OS
Pocket Authentication with OAuth on Firefox OSPocket Authentication with OAuth on Firefox OS
Pocket Authentication with OAuth on Firefox OSChih-Hsuan Kuo
 
Protocol handler in Gecko
Protocol handler in GeckoProtocol handler in Gecko
Protocol handler in GeckoChih-Hsuan Kuo
 
面試面試面試,因為很重要所以要說三次!
面試面試面試,因為很重要所以要說三次!面試面試面試,因為很重要所以要說三次!
面試面試面試,因為很重要所以要說三次!Chih-Hsuan Kuo
 
Windows 真的不好用...
Windows 真的不好用...Windows 真的不好用...
Windows 真的不好用...Chih-Hsuan Kuo
 
[ACM-ICPC] Tree Isomorphism
[ACM-ICPC] Tree Isomorphism[ACM-ICPC] Tree Isomorphism
[ACM-ICPC] Tree IsomorphismChih-Hsuan Kuo
 
[ACM-ICPC] Dinic's Algorithm
[ACM-ICPC] Dinic's Algorithm[ACM-ICPC] Dinic's Algorithm
[ACM-ICPC] Dinic's AlgorithmChih-Hsuan Kuo
 
[ACM-ICPC] Disjoint Set
[ACM-ICPC] Disjoint Set[ACM-ICPC] Disjoint Set
[ACM-ICPC] Disjoint SetChih-Hsuan Kuo
 

More from Chih-Hsuan Kuo (20)

Rust
RustRust
Rust
 
[Mozilla] content-select
[Mozilla] content-select[Mozilla] content-select
[Mozilla] content-select
 
Ownership System in Rust
Ownership System in RustOwnership System in Rust
Ownership System in Rust
 
在開始工作以前,我以為我會寫扣。
在開始工作以前,我以為我會寫扣。在開始工作以前,我以為我會寫扣。
在開始工作以前,我以為我會寫扣。
 
Effective Modern C++ - Item 35 & 36
Effective Modern C++ - Item 35 & 36Effective Modern C++ - Item 35 & 36
Effective Modern C++ - Item 35 & 36
 
Use C++ to Manipulate mozSettings in Gecko
Use C++ to Manipulate mozSettings in GeckoUse C++ to Manipulate mozSettings in Gecko
Use C++ to Manipulate mozSettings in Gecko
 
Pocket Authentication with OAuth on Firefox OS
Pocket Authentication with OAuth on Firefox OSPocket Authentication with OAuth on Firefox OS
Pocket Authentication with OAuth on Firefox OS
 
Necko walkthrough
Necko walkthroughNecko walkthrough
Necko walkthrough
 
Protocol handler in Gecko
Protocol handler in GeckoProtocol handler in Gecko
Protocol handler in Gecko
 
面試面試面試,因為很重要所以要說三次!
面試面試面試,因為很重要所以要說三次!面試面試面試,因為很重要所以要說三次!
面試面試面試,因為很重要所以要說三次!
 
應徵軟體工程師
應徵軟體工程師應徵軟體工程師
應徵軟體工程師
 
面試心得分享
面試心得分享面試心得分享
面試心得分享
 
Windows 真的不好用...
Windows 真的不好用...Windows 真的不好用...
Windows 真的不好用...
 
Python @Wheel Lab
Python @Wheel LabPython @Wheel Lab
Python @Wheel Lab
 
Python @NCKU CSIE
Python @NCKU CSIEPython @NCKU CSIE
Python @NCKU CSIE
 
[ACM-ICPC] Tree Isomorphism
[ACM-ICPC] Tree Isomorphism[ACM-ICPC] Tree Isomorphism
[ACM-ICPC] Tree Isomorphism
 
[ACM-ICPC] Dinic's Algorithm
[ACM-ICPC] Dinic's Algorithm[ACM-ICPC] Dinic's Algorithm
[ACM-ICPC] Dinic's Algorithm
 
[ACM-ICPC] Disjoint Set
[ACM-ICPC] Disjoint Set[ACM-ICPC] Disjoint Set
[ACM-ICPC] Disjoint Set
 
[ACM-ICPC] Traversal
[ACM-ICPC] Traversal[ACM-ICPC] Traversal
[ACM-ICPC] Traversal
 
[ACM-ICPC] UVa-10245
[ACM-ICPC] UVa-10245[ACM-ICPC] UVa-10245
[ACM-ICPC] UVa-10245
 

Recently uploaded

What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 

Recently uploaded (20)

What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 

Introduction to VP8