Roadmap to Membership of RICS - Pathways and Routes
Real time SHVC decoder
1. Real Time SHVC Decoder: Implementation and
Complexity Analysis
Wassim Hamidouche
Research Engineer
E-mail: Wassim.Hamidouche@insa-rennes.fr
Phone : +33 6 19 14 16 38
October 2014
4. Introduction (1/3)
Scalable High eciency Video Coding (SHVC) standard:
Enable higher temporal, spatial, quality, bit
depth resolutions and wider color gamut.
Use all the powerful of the HEVC standard:
quadtree-based block partitioning, large
transform and prediction blocks, accurate
intra/inter predictions and the in-loop
6. Introduction (2/3)
Block diagram of the SHVC encoder with two spatial scalability
layers:
4K
Downsampling
Upsampling
scaling MV
Entropy coding
EL bitstream
BL bitstream
Original picture SHVC EL encoder
HEVC BL encoder
Loop filter T /Q
T/Q
MC/Inter-layer
prediction
Picture
buffer
Intra
prediction
Loop filter T /Q
T/Q Entropy coding
MC/Inter-layer
prediction
Picture
buffer
Intra
prediction
-1 -1
-1 -1
SHVC bitstream
HD
7. Introduction (3/3)
Scalable High eciency Video Coding (SHVC) standard:
I Uses Inter-layer predictions to improve the coding eciency
(15%-30% gain vs independent coding) [1]
I Legacy compliant: supports a base layer compliant with the
AVC standard
I Multi-loop based coding structure: all intermediate layers
need to be decoded
Access the complexity of a real time SHVC decoder in respect to a
simulcast HEVC decoder
[1] V. Seregin, T. D. Chuang, Y. He, D. K. Kwon, and F. Le Leannec, AHG
Report: SHVC software, in document JCTVC-L0011. Geneva, Switzerland,
January 2013.
9. Real time SHVC decoder (1/6)
SHVC decoder:
I Based on the OpenHEVC decoder [2]
I Open source implementation of the HEVC decoder developed
in C language on the top of FFmpeg library
I Supports the decoding of all HEVC pro
10. les and the HEVC
conformance bitstreams
I The main decoding operations are heavily optimized in SSE
instructions for x86 architecture
I Enables all parallel processing solutions adopted in the HEVC
standard: tile, slice, wavefront and frame-based
[2] Open source HEVC decoder (OpenHEVC) in
https:://github.com/OpenHEVC
11. Real time SHVC decoder (2/6)
Architecture of the OpenHEVC software:
hls_coding_tree
Decode a slice
hls_sao_filter_ctb
Yes
hls_deblocking_filter_ctb
Is a CTU ?
hls_coding_unit
hls_prediction_unit
hls_transform_tree
Yes
is a TTU ?
hls_transform_unit
No
Is SAO filter
enabled ?
No
Yes
No
No
Slice decoded
Is the CTU
decoded ?
Yes
hls_decode_slice
Yes
No
More CTU
in the slice?
Yes
Is deblocking
filter enabled ?
12. Real time SHVC decoder (3/6)
Extend the OpenHEVC decoder to decode SHVC enhancement
layers (EL):
I Parse multi-layers syntax elements at the enhancement layers
I New functions to perform the upsampling of the inter-layer
reference picture and the upscaling its MVs (8-tap
14. lter for chroma)
I Manage reference lists by including new inter-layer reference
frames
Low level optimizations in the SHVC decoder:
I Optimize the up-sampling
15. lters in Single Instruction Multiple
Data (SIMD) operations (SSE instructions for x86 processor)
16. Real time SHVC decoder (4/6)
Multiple instances of the modi
17. ed OpenHEVC decoder, one
instance to decode each layer:
Demultiplexer
SHVC
bitstream
BL bitstream
OpenHEVC
decoder
OpenHEVC
decoder
EL bitstream
Access to the decoded BL
its MVs
SHVC decoder
18. Real time SHVC decoder (5/6)
Parallelism in the SHVC decoder :
I SHVC decoder supports three levels of parallelism:
I Wavefront parallelism: the CTB rows of each layer are
decoded in parallel for low latency applications
I Temporal frame-based parallelism: successive temporal frame
are decoded in parallel
I Layers parallelism: frames of the SHVC layers are decoded in
parallel
I Communication control mechanism is implemented to manage
wavefront dependencies as well as inter and inter-layer
prediction dependencies
19. Real time SHVC decoder (6/6)
Hybrid parallel architecture for the SHVC decoder with two layers:
B frame
Inter prediction
B frame
P frame P frame
No decoded CTBs
B frame B frame
Inter prediction
B frame
Decoded CTBs
CTB in decoding
Wait for the
decoding of the
referenced PU
{
{
Thread 2
Thread 3
Inter layer
prediction
I frame I frame
Base layer Enhancement layer
B frame
{{
Thread 0
Thread 1
Thread 5
Thread 6
{ {
{ {
Thread 4
Thread 5
22. guration:
I 4 Cores Intel i7 processor running at 2.8 GHz
I Common SHVC test conditions: video sequences from class A
and B and all QP, 3 scalability con
23. gurations 2x, 1.5x and
SNR
I Reference Scalable Software Model (SHM) 4.1 is used to
encode the test video sequences
I Three con
24. gurations of parallelism
(n;m) = f(4; 1); (1; 4); (2; 2)g with n: number of threads for
wavefront parallelism and m the number of frames decoded in
parallel
35. Conclusion and Perspectives (1/2)
Conclusion:
I First real time and parallel software (open source)
implementation of the SHVC decoder
I The SHVC decoder decoding two layers introduces 43% and
77% additional complexity in 2x and 1.5x spatial scalability
con
36. gurations
I Low level optimizations and parallelism are required to reach a
real time decoding of 4Kp60 enhancement layer
37. Conclusion and Perspectives (2/2)
Perspectives:
I Support the decoding of more than two layers
I Support the decoding of the base layer in legacy AVC
standard
I Uni
38. ed software for all HEVC extensions: Design a software
decoder that support the decoding of all HEVC extensions
including MV-HEVC, RExt, screen content coding, and
3D-HEVC extensions