FROM AVC DECODER TO SVC: MINOR IMPACT ON A DATAFLOW GRAPH
DESCRIPTION
Maxime PELCAT, Médéric BLESTEL, Mickaël RAULET
Institute of Electronics and Telecommunications of Rennes (IETR)
Image Processing and Remote Sensing Group
20, Avenue des Buttes de Coësmes, 35043 RENNES Cedex, France
ABSTRACT
The Joint Video Team (JVT) of the ITU-T Video
Coding Experts Group (VCEG) and the ISO/IEC Mov-
ing Picture Experts Group (MPEG) has standardized a
scalable video coding (SVC) extension of the H.264/AVC
standard. Thanks to SVC, it is possible to partially
transmit or decode a video bitstream resulting in var-
ious video qualities (spatial, temporal or reduced -
delity). Within our lab, the aim is to develop an SVC
decoder that is easily recongurable for dierent com-
puting architectures such as mono or multiprocessors.
Our dataow methodology enables such rapid prototyp-
ing and facilitates the extension from AVC to SVC. The
MPEG Recongurable Video Coding (RVC) project uses
the same kind of dataow description to unify MPEG
codecs in a single recongurable decoder. In this paper,
ways to reuse AVC dataow blocks are investigated while
developing an SVC decoder such as in RVC. Necessary
memory extensions and enhancement layer decoding op-
timisations are described as well as experimental results.
Rapid prototyping on several architectures shows that
the impacts of SVC extension are quite limited. Fur-
thermore, both processing time and memory consump-
tion remain reasonable.
Index Terms
Advanced Video Coding; Scalable
Video Coding; Recongurable Video Coding; dataow
model of computation; Digital Signal Processor
1. INTRODUCTION
Scalable Video Coding (SVC [1]) is the new scalable
codec based on H.264/AVC [2], currently being nor-
malised by the Joint Video Team. It has been developed
to broadcast a video to multiple users with multiple dis-
plays and connected through multiple networks using a
single bitstream. SVC allows three dierent scalability
modes: spatial, temporal and delity scalability. The
layer zero, derived from the scalable bitstream, is AVC
compliant and can be decoded by any AVC decoder by
discarding unknown NALU (Network Abstraction Layer
Unit [1]) types and scalability information SEI (Supple-
mental Enhancement Information) messages. Tempo-
ral scalability is possible by using a hierarchical picture
scheme. With this method, one in every two pictures can
be discarded without disrupting the prediction. Regard-
ing temporal scalability, SVC only adds syntax to high-
level AVC that enables "easy" identication of temporal
layers. Spatial scalability consists of adding inter-layer
prediction modes (prediction of texture, motion param-
eters and residual signal) to AVC motion-compensated
prediction and intra-coding modes. Upsampling does
not need to be dyadic and can include cropping. Coarse
grain delity scalability improves the video quality and
works in exactly the same way as spatial scalability, with
the same size for base and enhancement layers. All
these features are embedded in this new video standard,
which produces good rate distortion performances and
brings exibility in video decoding [3] at the expense of
a huge set of possible congurations. The goal of our
dataow graph software descriptions, which are close to
JVT standard formalism, is to generate a fast code which
is easy to reuse in other descriptions and to distribute
over-complex architectures (multiprocessors) with par-
allelism. Section 2 introduces our dataow graph AVC
implementation and the following section describes its
extension to SVC. Sections 4 and 5 explain memory mod-
ications between AVC and SVC models. Section 6 out-
lines a reduced process of sublayer decoding and the last
section gives SVC decoding times on PC, PocketPC and
DSP.
2. A DATAFLOW AVC IMPLEMENTATION
Dataow AVC decoding can be done macroblock (MB)
by macroblock or NALU by NALU. Decoding MB by MB
means that the variable length coded (VLC) bitstream
of each macroblock is decoded as late as possible be-
fore sample reconstruction. NALU by NALU structure
increases parallel computation possibilities but reduces
reusability. Macroblock decoding can be split into two