编解码器
编解码器(英语:codec)指的是一个能够对一个信号或者一个数据流进行编解码操作的装置或者程序。这里指的变换既包括将信号或者数据流进行编码(通常是为了传输、存储或者加密)或者提获取到一个编码流的操作,也包括为了观察或者处理从这个编码流中恢复适合观察或操作的形式的操作。编解码器经常用在视频会议和流媒体等应用中。一个编解码器不应该同编码或压缩格式或标准混淆,一种格式是一种文档(所谓标准),一种存储数据的方式,但是编解码器却是一段程序用于读或写这样的文件。实际上,有时编解码器不严谨地意指格式。
编解码器编码一个数据流或者用于传输、存储、加密的信号,解码一段用于回放或编辑。视频数码机的ADC将它的模拟信号转换成数码信号,然后数码信号通过视频编码器用于存储和传输。接受器然后通过视频解码器转换成模拟信号用于最后的模拟显示。经过编码的音频或者视频原始码流经常被叫做“Essence”(有译作“本体”),以区别于之后加入码流的元数据和其它用以帮助访问码流和增强码流强健性的数据。大多数编解码器是有损的,目的是为了得到更大的压缩比和更小的文件大小。当然也有无损的编解码器,但是通常没有必要为了一些几乎注意不到的的质量损失而大大增加编码后文件的大小。除非该编码的结果还将在以后进行下一步的处理,此时连续的有损编码通常会带来较大的质量损失。
很多多媒体数据流需要同时包含音频数据和视频数据,这时通常会加入一些用于音频和视频数据同步的元数据。这三种数据流可能会被不同的程序,进程或者硬件处理,但是当它们传输或者存储的时候,这三种数据通常是被封装在一起的。通常这种封装是通过视频文件格式来实现的,例如常见的*.mpg, *.avi, *.mov, *.mp4, *.aac, *.rm or *.tta. 这些格式中有些只能使用某些编解码器,而更多可以以容器的方式使用各种编解码器。
编解码器对应的英文“codec”(compress和decompress简化而成的合成词语)和decode通常指软件,当特指硬件的时候,通常使用“endec”这个单词。
相关概念
编解码器(endec= encoder/decoder)是一个相近但是不同的概念,它主要应用于硬件。在二十世纪中叶,“编解码器”是用于编码模拟资讯到PCM并能将它们解码回来的硬件装置。该世纪后些时候,这个名字开始应用于一系列软件用于转换数码信号之间的格式,同时也包括了信号压扩器的功能。
调制解调器(modem= modulator/demodulator)是调制器和解调器的合成词。它能将从电脑的数字数据转换到电话交换。在接受端模拟信号转换回数码信号。编解码器做着相反的工作(视频模拟信号转换成数码信号,然后电脑把数码信号转换回视频)。
压缩质量
有损编解码(破坏性)
在软件界有许多相对更加流行的编解码器是有损的,意味着它们压缩过程牺牲了一定的质量。通常这种压缩看起来同未被压缩的声音或图像没区别。更小的数据集缓解了相对高昂的存储器。较低的数据率也降低了花销并在数据传输过程中提升了传输质量。
无损编解码(非破坏性)
也有许多的无损压缩,特别应用于在需要原始流中所有资讯时压缩模式下获取数据。如果保留数据流的原始质量比削减相应的更大数据更加重要,那么无损压缩更佳。连续使用多种编解码器或者编码体系也会显著的降低质量。不断下降的存储空间开销和网络带宽正使得有损压缩的需求下降。