Joint Source/Channel Coding Ketan Mayer-Patel CS294-9 :: Fall 2003 ALF • Make the network work within the terms of the applications. – Can’t change installed technologies. – Physical limits and design tradeoffs prevent this. • Optimize the application for the network. – Requires that the network expose internal details. • Fundamental issue: the nature of abstraction. CS294-9 :: Fall 2003 Source Coding • Old problem in signal processing. – Information source produces a string of symbols. – Symbols are drawn from a fixed alphabet. – Symbol distribution is not uniform. • Problem: – Encode symbols as codewords such that average codeword length is minimized. • AKA: Data Compression CS294-9 :: Fall 2003 Channel Coding • Opposite problem of source coding. – Noisy communication channel. – A set of source codes to transmit. • Problem: – Map source codes to channel codes such that probability of correct recovery is arbitrarily low. • Shannon shows that if you can characterize the channel noise, this is possible. CS294-9 :: Fall 2003 Separation Principle • The really important result. • Shannon’s separation principle says that source and channel coding can be done independently. Source Words Source Coding Source Codes Optimize Channel Coding Optimize Optimize CS294-9 :: Fall 2003 Channel Codes Consequences • Seminal work with long lasting consequences. • Separated source coding and channel coding as problems. – Resulting in two subfields and from there… • Data compression vs. Networking CS294-9 :: Fall 2003 Parallel Constructs • Layering of network stack is a parallel concept to the separation principle. • Why? What do I mean by this? – Different layers are like different codings. – Each layer provides a particular service. – As a whole, arguable provides as good a service as if a single protocol for everything. • Differences? – Protocols build on top of each other while source and channel coding are independent. CS294-9 :: Fall 2003 Joint Source/Channel Coding • Separation principle only works in the limit. – Need arbitrarily large data set. – No bound on coding delay. • JS/CC can improve coding efficiency in more realistic, non-limit contexts. – Separation best in theory. – JS/CC often best in practice. • In other words: do source coding with channel coding in mind and vice versa. – Sound familiar? CS294-9 :: Fall 2003 ALF and JS/CC • ALF:Networking::JS/CC:Communication • ALF – Layers of networking need to be cognizant of each other (in particular the very top layer, the application). • JS/CC – Signal coding needs to be cognizant of transmission coding. CS294-9 :: Fall 2003 Back to MM Networking • So how does all of this apply to Multimedia Networking? – What is the stream of source symbols? • Media data. – What is the source coding process? • Compression schemes (MPEG, MP3, etc.) – What is the channel coding process? • RTP packetization • Transport-level protocol CS294-9 :: Fall 2003 Putting it together. • So what should we do to use ALF and JS/CC in this context? – RTP packetization must be done in a media-aware manner. • ALF and JS/CC are not one-way concepts. • What’s the obvious other direction? – Media encoding should be done to accommodate packet-based communication. • McCanne thesis (Berkeley, 96) is a great resource for learning and thinking about this idea. CS294-9 :: Fall 2003 Loss / Quality Tradeoff • Network-aware encoding is generally about dealing with loss. – Need to characterize loss in target environment • Packet or bit? • Bursty or independent? • Probability? – Need to characterize distortion induced by loss. • This can be extremely difficult to do. • Very non-linear. – Mayer-Patel, ACM Multimedia 2002 CS294-9 :: Fall 2003 Dealing with Loss • Principle #1 – Make transmission data units independently useful. • What’s the difference between TDU and ADU? – Techniques: • Checkpoint decoder state in each packet. – What would this mean for MPEG? – Choose granularity to minimize amount of decoder state required. • Provide bit offsets to avoid non-byte aligned shifts. CS294-9 :: Fall 2003 Dealing with Loss • Principle #2 – Limit propogation of error. – Techniques: • Include redundant low-res impostor. – Or substitute past information as impostor. • Break long dependency chains. • Provide eventual consistency mechanism. – MPEG example: » Forced I-block in P and B frames. – Allocate some portion of bandwidth to this mechanism » Static allocation » Dynamic allocation CS294-9 :: Fall 2003 Dealing with Loss • Principle #3 – Decorrelate successive packets • Deals with bursty packet loss. – Techniques: • Interleave TDU’s from different ADU’s. • Spread out information from spatially nearby areas into separate TDU’s. – What’s the cost of this principle? CS294-9 :: Fall 2003 The Art of ALF • Ideally: examine both sides simultaneously. • A lot like object-oriented design. – Bad design will hurt. • General guidelines: – ADU independence. – Minimum, coordinated state. – Eventual state coherence. CS294-9 :: Fall 2003