编码是将波形的特征按照某种代码表赋值的过程。一些代码表可以以更小的方式表示输入格式,但波形中的特征与编码文件中的特征存在着明显的映射关系,并且只需使用查找表就可以进行编码或解码。编码应该始终适用于流媒体。压缩通常尝试在数据中查找模式,以便在整个文件上以更简洁的方式表示,但会付出一些开销(例如,流媒体可能需要更多的内存来处理压缩格式)。最有效的压缩算法会以多种方式对数据进行建模,以确定是否存在可以利用的重叠部分。良好的音频压缩格式也支持流媒体,但不一定需要支持流式传输。总的来说,将压缩视为编码的扩展,如果您的文件太大,则非常有用。对于大多数用户而言,它们可能是同一件事。
给定一些要呈现给用户的数据,编码是在文件或流中表示该数据的方式。编码的概念也与其他类型的文件有关,例如:http://en.wikipedia.org/wiki/Character_encoding。压缩是用于存储或发送数据的任何技术,使其占用比“天真”表示法更少的字节数 - 对于音频而言,“天真”表示法将是基本的PCM表示法。基本压缩有两种类型 - 无损压缩(例如FLAC),它允许完美重构原始PCM数据,以及有损压缩(例如MP3),除了利用数据中的模式外,还利用人类感知工作的方式去除不会被错过的数据。因此,压缩是你在进行编码时可以做的事情,但你不必使用压缩来进行编码!