What is the difference b/w source coding and channel coding? In what circumstances they are used? What is the purpose of both? What is the part of redunduncy in both fields?