vic and NAÏVE
K. Mayer-Patel
CS294-9 :: Fall 2003
vic: Overview/Motivation
Apply ALF principles to video conferencing
Framework for composing applications
Extensible UI
Compression scheme
CS294-9 :: Fall 2003
Tools vs. Toolkits
• Composable tools better than API-based
– Small, highly optimized functional units.
– Glued together with scripting.
• Application logic.
– Video conferencing
• vic - video tool
• vat - audio tool
• conference bus - coordination and control
CS294-9 :: Fall 2003
Software Architecture
• C++ classes that passed where possible
• Tcl used as scripting language to glue them
together in various ways.
• See figure in paper.
CS294-9 :: Fall 2003
Conference Bus
• Key for scripting application semantics that cut
across media types.
– Synchronization
– Floor control
• Typed messages broadcast onto communication
– Used local loopback multicast
– Tools responded to messages in well known and
possibly configurable ways.
– Application logic implemented as just another
participant in this conversation.
CS294-9 :: Fall 2003
Are they right?
• Discussion question:
– Do composable tools embody ALF principles
better than toolkits?
CS294-9 :: Fall 2003
Conditional Replenishment
• Key to the compression scheme.
• Compare blocks to last time block was sent.
– Uses subset of pixels for comparison. Why?
• Send only on “signficant” change.
– Need a threshold for significant.
• Send some blocks if they get old enough
regardless if there was change or not.
CS294-9 :: Fall 2003
CR Features
Robustness to loss
Localizes error
Avoids persistent error
Balances compression with CPU load
– CR done in pixel domain before transform
– Doesn’t require decode operation on sender-side.
– Are these design decisions still relevant?
CS294-9 :: Fall 2003
• Adapted existing H.261 standard
All blocks intra coded
CR implemented via skipped blocks
RTP packetization standard already defined.
Intra-H.261 was technically still valid
syntactically as a subset of H.261
CS294-9 :: Fall 2003
Intra-H.261 as ALF
• Decoder state checkpointed in RTP payload
– Not mentioned in paper, but important to creating TDU
• Dependency chains limited to missing block
– Localizes error.
• CR timeout algorithm ensured eventual
• Although compression weakens, performance
under loss improves.
CS294-9 :: Fall 2003
• What are the papers main weaknesses?
CS294-9 :: Fall 2003
NAÏVE: Overview/Motivation
• Design new video codec with loss in mind.
Any subset of packets should work.
Support instantaneous changes in send rate.
Graceful degradation of quality given loss.
Rapid joins.
CS294-9 :: Fall 2003
Design Principles
• Globalness
– Every packet reconstructs entire frame.
– Every packet adds value to any previous
packets from same frame.
• Independence
– No packet depends on any other.
• Precludes inter-frame coding altogether.
CS294-9 :: Fall 2003
• Consider each image to be a multi-res
• Each pixel at each resolution level given a
confidence weight.
• Start with some set of samples at highest
• Push to create approximations of lower
resolution levels.
• Pull to reconstruct representation of higher
resolution levels.
CS294-9 :: Fall 2003
• Break image into blocks.
• Each packet contains at least one sample
from every block.
• Cn contain more samples from some blocks.
• Sample can come from levels 0, 1, or 2.
• Sampling pattern generated randomly.
– Source has to communicate random number
seed to dest in some manner. What are our
CS294-9 :: Fall 2003
Temporal Locality
• Samples from past frames reused in
reconstruction of subsequent frames.
• Special code word to avoid this (i.e., flush
old samples).
• What does this imply about source content?
In other words, what are they assuming?
CS294-9 :: Fall 2003
• Reconstruction results are impressive.
• Compression suffers
– Nothing for free.
• SNR maintained well under loss.
CS294-9 :: Fall 2003
• What are the main weaknesses of the paper?
CS294-9 :: Fall 2003