Variable Length Error Correcting Codes and Reversible Variable Length Codes: Analysis and Applications