Coding theory and its application in code modulation, watermarks and flash memories.