Zürcher Fachhochschule
Using Mobile Processors for Cost Effective
Live Video Streaming to the Internet
Hans-Joachim Gelke
Tobias Kammacher
Institute of Embedded Systems
Zürcher Fachhochschule
Agenda
1.
Typical Application
2.
Available Processors
3.
Processor Architectures
4.
Interfaces
5.
Software Implementation
6.
Practical Experiences
7.
Further Applications
2Zürcher Fachhochschule
Typical Video Signal Processing Pipeline
3 Color Space Conversion Scaling Picture in Picture h.264/h.265 Encoder Audio/Video Mux Encryption Transport Protocol Packer Forward Error Correction Recorder Video Input Ethernet Output Audio 2nd Video Source
Zürcher Fachhochschule
Typical Video Signal Processing Pipeline
3 Color Space Conversion Scaling Picture in Picture h.264/h.265 Encoder Audio/Video Mux Encryption Transport Protocol Packer Forward Error Correction Recorder Video Input Ethernet Output Audio 2nd Video Source
Zürcher Fachhochschule
Typical Video Signal Processing Pipeline
3 Color Space Conversion Scaling Picture in Picture h.264/h.265 Encoder Audio/Video Mux Encryption Transport Protocol Packer Forward Error Correction Recorder Video Input Ethernet Output Audio 2nd Video Source
Zürcher Fachhochschule
Typical Video Signal Processing Pipeline
3 Color Space Conversion Scaling Picture in Picture h.264/h.265 Encoder Audio/Video Mux Encryption Transport Protocol Packer Forward Error Correction Recorder Video Input Ethernet Output Audio 2nd Video Source
Zürcher Fachhochschule
Typical Video Signal Processing Pipeline
3 Color Space Conversion Scaling Picture in Picture h.264/h.265 Encoder Audio/Video Mux Encryption Transport Protocol Packer Forward Error Correction Recorder Video Input Ethernet Output Audio 2nd Video Source
Zürcher Fachhochschule
Typical Video Signal Processing Pipeline
3 Color Space Conversion Scaling Picture in Picture h.264/h.265 Encoder Audio/Video Mux Encryption Transport Protocol Packer Forward Error Correction Recorder Video Input Ethernet Output Audio 2nd Video Source
Zürcher Fachhochschule
Typical Video Signal Processing Pipeline
3 Color Space Conversion Scaling Picture in Picture h.264/h.265 Encoder Audio/Video Mux Encryption Transport Protocol Packer Forward Error Correction Recorder Video Input Ethernet Output Audio 2nd Video Source
Zürcher Fachhochschule
Typical Video Signal Processing Pipeline
3 Color Space Conversion Scaling Picture in Picture h.264/h.265 Encoder Audio/Video Mux Encryption Transport Protocol Packer Forward Error Correction Recorder Video Input Ethernet Output Audio 2nd Video Source
Zürcher Fachhochschule
Typical Video Signal Processing Pipeline
3 Color Space Conversion Scaling Picture in Picture h.264/h.265 Encoder Audio/Video Mux Encryption Transport Protocol Packer Forward Error Correction Recorder Video Input Ethernet Output Audio 2nd Video Source
Zürcher Fachhochschule
Typical Video Signal Processing Pipeline
3 Color Space Conversion Scaling Picture in Picture h.264/h.265 Encoder Audio/Video Mux Encryption Transport Protocol Packer Forward Error Correction Recorder Video Input Ethernet Output Audio 2nd Video Source
Zürcher Fachhochschule
How is a Mobile Processor Defined?
4
Audio and Video Processing Units Display Camera Graphics Processing Multi Core CPUs DSP Connectivity Positioning Systems
© Copyright Time Warner Source block diagram: Qualcomm
Zürcher Fachhochschule
How is a Mobile Processor Defined?
4
Audio and Video Processing Units Display Camera Graphics Processing Multi Core CPUs DSP Connectivity Positioning Systems
© Copyright Time Warner Source block diagram: Qualcomm
Zürcher Fachhochschule
How is a Mobile Processor Defined?
4
Audio and Video Processing Units Display Camera Graphics Processing Multi Core CPUs DSP Connectivity Positioning Systems
© Copyright Time Warner Source block diagram: Qualcomm
Zürcher Fachhochschule
How is a Mobile Processor Defined?
4
Audio and Video Processing Units Display Camera Graphics Processing Multi Core CPUs DSP Connectivity Positioning Systems
© Copyright Time Warner Source block diagram: Qualcomm
Zürcher Fachhochschule
How is a Mobile Processor Defined?
4
Audio and Video Processing Units Display Camera Graphics Processing Multi Core CPUs DSP Connectivity Positioning Systems
© Copyright Time Warner Source block diagram: Qualcomm
Zürcher Fachhochschule
How is a Mobile Processor Defined?
4
Audio and Video Processing Units Display Camera Graphics Processing Multi Core CPUs DSP Connectivity Positioning Systems
© Copyright Time Warner Source block diagram: Qualcomm
Zürcher Fachhochschule
How is a Mobile Processor Defined?
4
Audio and Video Processing Units Display Camera Graphics Processing Multi Core CPUs DSP Connectivity Positioning Systems
© Copyright Time Warner Source block diagram: Qualcomm
Zürcher Fachhochschule
How is a Mobile Processor Defined?
4
Audio and Video Processing Units Display Camera Graphics Processing Multi Core CPUs DSP Connectivity Positioning Systems
© Copyright Time Warner Source block diagram: Qualcomm
Zürcher Fachhochschule
How is a Mobile Processor Defined?
4
Audio and Video Processing Units Display Camera Graphics Processing Multi Core CPUs DSP Connectivity Positioning Systems
© Copyright Time Warner Source block diagram: Qualcomm
Zürcher Fachhochschule
How is a Mobile Processor Defined?
4
Audio and Video Processing Units Display Camera Graphics Processing Multi Core CPUs DSP Connectivity Positioning Systems
© Copyright Time Warner Source block diagram: Qualcomm
Zürcher Fachhochschule
How is a Mobile Processor Defined?
4
Audio and Video Processing Units Display Camera Graphics Processing Multi Core CPUs DSP Connectivity Positioning Systems
© Copyright Time Warner Source block diagram: Qualcomm
Zürcher Fachhochschule
How is a Mobile Processor Defined?
4
Audio and Video Processing Units Display Camera Graphics Processing Multi Core CPUs DSP Connectivity Positioning Systems
© Copyright Time Warner Source block diagram: Qualcomm
Zürcher Fachhochschule
How is a Mobile Processor Defined?
4
Audio and Video Processing Units Display Camera Graphics Processing Multi Core CPUs DSP Connectivity Positioning Systems
© Copyright Time Warner Source block diagram: Qualcomm
Zürcher Fachhochschule
How is a Mobile Processor Defined?
4
Audio and Video Processing Units Display Camera Graphics Processing Multi Core CPUs DSP Connectivity Positioning Systems
© Copyright Time Warner Source block diagram: Qualcomm
Zürcher Fachhochschule
How is a Mobile Processor Defined?
4
Audio and Video Processing Units Display Camera Graphics Processing Multi Core CPUs DSP Connectivity Positioning Systems
© Copyright Time Warner Source block diagram: Qualcomm
Zürcher Fachhochschule
How is a Mobile Processor Defined?
4
Audio and Video Processing Units Display Camera Graphics Processing Multi Core CPUs DSP Connectivity Positioning Systems
© Copyright Time Warner Source block diagram: Qualcomm
Zürcher Fachhochschule
How is a Mobile Processor Defined?
4
Audio and Video Processing Units Display Camera Graphics Processing Multi Core CPUs DSP Connectivity Positioning Systems
© Copyright Time Warner Source block diagram: Qualcomm
Zürcher Fachhochschule
The Players
5
TK1 and TX1 X7-Z8700
Snapdragon 810
Zürcher Fachhochschule Exynos Apple A8
The Players
5 TK1 and TX1 X7-Z8700 Snapdragon 810Zürcher Fachhochschule Allwinner A31 RK3288 Exynos Apple A8
The Players
5 TK1 and TX1 X7-Z8700 Snapdragon 810Zürcher Fachhochschule
Video Interface
Video Encoder
GPU
Video Decoder
Video Processor
Hardware Resources
6CPU
1
CPU
2
CPU
3
CPU
4
64-bit ARM A57 2MB L2-CacheCPU
1
CPU
2
CPU
3
CPU
4
64-bit ARM A53 512kB L2-CacheZürcher Fachhochschule
Video Interface
Video Encoder
GPU
Video Decoder
Video Processor
Hardware Resources
6CPU
1
CPU
2
CPU
3
CPU
4
64-bit ARM A57 2MB L2-CacheCPU
1
CPU
2
CPU
3
CPU
4
64-bit ARM A53 512kB L2-CacheOperating
Mode
Zürcher Fachhochschule
Video Interface
Video Encoder
GPU
Video Decoder
Video Processor
Hardware Resources
6CPU
1
CPU
2
CPU
3
CPU
4
64-bit ARM A57 2MB L2-CacheCPU
1
CPU
2
CPU
3
CPU
4
64-bit ARM A53 512kB L2-CacheZürcher Fachhochschule
Video Interface
Video Encoder
GPU
Video Decoder
Video Processor
Hardware Resources
6CPU
1
CPU
2
CPU
3
CPU
4
64-bit ARM A57 2MB L2-CacheCPU
1
CPU
2
CPU
3
CPU
4
64-bit ARM A53 512kB L2-CacheSleep
Mode
Zürcher Fachhochschule
Video Interface
Video Encoder
GPU
Video Decoder
Video Processor
Hardware Resources
6CPU
1
CPU
2
CPU
3
CPU
4
64-bit ARM A57 2MB L2-CacheCPU
1
CPU
2
CPU
3
CPU
4
64-bit ARM A53 512kB L2-CacheZürcher Fachhochschule
Video Interface
Video Encoder
GPU
Video Decoder
Video Processor
Hardware Resources
6CPU
1
CPU
2
CPU
3
CPU
4
64-bit ARM A57 2MB L2-CacheCPU
1
CPU
2
CPU
3
CPU
4
64-bit ARM A53 512kB L2-Cache192/ 256 Core GPU
OpenGL, CUDA, DX12, AEP,
OpenCL
Zürcher Fachhochschule
Video Interface
Video Encoder
GPU
Video Decoder
Video Processor
Hardware Resources
6CPU
1
CPU
2
CPU
3
CPU
4
64-bit ARM A57 2MB L2-CacheCPU
1
CPU
2
CPU
3
CPU
4
64-bit ARM A53 512kB L2-CacheZürcher Fachhochschule
Video Interface
Video Encoder
GPU
Video Decoder
Video Processor
Hardware Resources
6CPU
1
CPU
2
CPU
3
CPU
4
64-bit ARM A57 2MB L2-CacheCPU
1
CPU
2
CPU
3
CPU
4
64-bit ARM A53 512kB L2-CacheH.264/AVC & H.265/HEVC
4096 × 2160 pix/30 Hz
Zürcher Fachhochschule
Video Interface
Video Encoder
GPU
Video Decoder
Video Processor
Hardware Resources
6CPU
1
CPU
2
CPU
3
CPU
4
64-bit ARM A57 2MB L2-CacheCPU
1
CPU
2
CPU
3
CPU
4
64-bit ARM A53 512kB L2-CacheZürcher Fachhochschule
Video Interface
Video Encoder
GPU
Video Decoder
Video Processor
Hardware Resources
6CPU
1
CPU
2
CPU
3
CPU
4
64-bit ARM A57 2MB L2-CacheCPU
1
CPU
2
CPU
3
CPU
4
64-bit ARM A53 512kB L2-CacheH.264/AVC & H.265/HEVC
4096 × 2160 pix/60 Hz/10 bit
Zürcher Fachhochschule
Video Interface
Video Encoder
GPU
Video Decoder
Video Processor
Hardware Resources
6CPU
1
CPU
2
CPU
3
CPU
4
64-bit ARM A57 2MB L2-CacheCPU
1
CPU
2
CPU
3
CPU
4
64-bit ARM A53 512kB L2-CacheZürcher Fachhochschule
Video Interface
Video Encoder
GPU
Video Decoder
Video Processor
Hardware Resources
6CPU
1
CPU
2
CPU
3
CPU
4
64-bit ARM A57 2MB L2-CacheCPU
1
CPU
2
CPU
3
CPU
4
64-bit ARM A53 512kB L2-CacheHDMI 2.0
4096×2160pix,
Display Serial
Interface (DSI)
Zürcher Fachhochschule
Video Interface
Video Encoder
GPU
Video Decoder
Video Processor
Hardware Resources
6CPU
1
CPU
2
CPU
3
CPU
4
64-bit ARM A57 2MB L2-CacheCPU
1
CPU
2
CPU
3
CPU
4
64-bit ARM A53 512kB L2-CacheZürcher Fachhochschule
Video Interface
Video Encoder
GPU
Video Decoder
Video Processor
Scaling etc.
Hardware Resources
6CPU
1
CPU
2
CPU
3
CPU
4
64-bit ARM A57 2MB L2-CacheCPU
1
CPU
2
CPU
3
CPU
4
64-bit ARM A53 512kB L2-CacheZürcher Fachhochschule
Video Interface
Video Encoder
GPU
Video Decoder
Video Processor
Hardware Resources
6CPU
1
CPU
2
CPU
3
CPU
4
64-bit ARM A57 2MB L2-CacheCPU
1
CPU
2
CPU
3
CPU
4
64-bit ARM A53 512kB L2-CacheZürcher Fachhochschule
Mobile Processor Peripherals
7 I2S DSI CSI PCIe I2S SDIO
Zürcher Fachhochschule
Processors available on industrial modules
8
Nvidia TK1 module Snapdragon 810 module Allwinner A31 module
Zürcher Fachhochschule
Mobile Processor
GStreamer:
A Multimedia Framework
9
Generic Multimedia Processing Device
Zürcher Fachhochschule
Mobile Processor
GStreamer:
A Multimedia Framework
9
Generic Multimedia Processing Device
Color Space Conversion Scaling Picture in Picture H.264/H.265 Encoder Audio/Video Mux Encryption Transport Protocol Packer Forward Error Correction Recorder Video Input Ethernet Output Audio 2nd Video Source
Zürcher Fachhochschule
Mobile Processor
GStreamer:
A Multimedia Framework
9
Generic Multimedia Processing Device
Video Processing
Zürcher Fachhochschule
Mobile Processor
GStreamer:
A Multimedia Framework
9
Network
Generic Multimedia Processing Device
Video Processing
Zürcher Fachhochschule
Mobile Processor
GStreamer:
A Multimedia Framework
9
Network Network
Generic Multimedia Processing Device
Video Processing
Zürcher Fachhochschule
Mobile Processor
GStreamer:
A Multimedia Framework
9
Linux Kernel GStreamer
Network Network
Generic Multimedia Processing Device
Video Processing
Zürcher Fachhochschule
GStreamer Internals
10
Zürcher Fachhochschule
GStreamer Internals
10
Gstreamer Core Framework Sources:
File Camera TCP/UDP …
Zürcher Fachhochschule
GStreamer Internals
10
Gstreamer Core Framework Sources: File Camera TCP/UDP … Sinks: File Display TCP/UDP …
Zürcher Fachhochschule
GStreamer Internals
10
Gstreamer Core Framework Filters:
Converters Mixers …
Containers:
Audio & Video MP4 / MKV … Transport-Protocols: HTTP/RTSP … Sources: File Camera TCP/UDP … Sinks: File Display TCP/UDP …
Zürcher Fachhochschule
GStreamer Internals
10
Gstreamer Core Framework
Encoders: Audio (MP3 / AAC) Video (H.264/H.265) HW-accelerated … Filters: Converters Mixers … Containers:
Audio & Video MP4 / MKV … Transport-Protocols: HTTP/RTSP … Sources: File Camera TCP/UDP … Sinks: File Display TCP/UDP …
Zürcher Fachhochschule
GStreamer Internals
10
Gstreamer Core Framework
Decoders: Audio (MP3 / AAC) Video (H.264/H.265) HW-accelerated … Encoders: Audio (MP3 / AAC) Video (H.264/H.265) HW-accelerated … Filters: Converters Mixers … Containers:
Audio & Video MP4 / MKV … Transport-Protocols: HTTP/RTSP … Sources: File Camera TCP/UDP … Sinks: File Display TCP/UDP …
Zürcher Fachhochschule
GStreamer Internals
10
Gstreamer Core Framework
Decoders: Audio (MP3 / AAC) Video (H.264/H.265) HW-accelerated … OS Kernel Encoders: Audio (MP3 / AAC) Video (H.264/H.265) HW-accelerated … OpenMAX Filters: Converters Mixers … Containers:
Audio & Video MP4 / MKV … Transport-Protocols: HTTP/RTSP … Sources: File Camera TCP/UDP … Sinks: File Display TCP/UDP …
Zürcher Fachhochschule
GStreamer Internals
10
Gstreamer Core Framework
Decoders: Audio (MP3 / AAC) Video (H.264/H.265) HW-accelerated … OS Kernel Encoders: Audio (MP3 / AAC) Video (H.264/H.265) HW-accelerated … OpenMAX Filters: Converters Mixers … Containers:
Audio & Video MP4 / MKV … Transport-Protocols: HTTP/RTSP … Sources: File Camera TCP/UDP … Sinks: File Display TCP/UDP … Access to HW-accelerated CODECs
Zürcher Fachhochschule
OpenMAX (Open Media Acceleration)
11 Modules / Drivers Video DMA HW accelerated Video Encoder HW accelerated Video Decoder
CPU Mobile Processor
Linux Kernel Libraries
Bellagio (OpenMAX IL)
Software
Kernel Space Gstreamer Plugins
OpenMAX (OMX)
GStreamer Core
Multimedia Application Software User Space
Zürcher Fachhochschule
Macro Block vs. Quad Tree Procedure
12
Quad Tree Procedure
Macro Block Procedure
H.264
H.265
Zürcher Fachhochschule
Comparison between H.264 and H.265
Video Quality
13
Zürcher Fachhochschule
Comparison between H.264 and H.265
Video Quality
13 H.265 11Mbps H.264 19MbpsZürcher Fachhochschule
Comparison between H.264 and H.265
Video Quality
13 H.265 11Mbps H.264 19Mbps H.265 30Mbps H.264 67Mbps PSNR vs. Bitrate for H.264 and H.265Zürcher Fachhochschule
Your Mobile Processor Application ?
14 Mobile Processor Android TV Video Conferencing Lecture recording streaming Medical Imaging Driving Assistance Source: Google Source: Google Source: PMK