general encoding rules and padding rules explained separately and in detail