編解碼器
編解碼器(英語:codec)指的是一個能夠對一個訊號或者一個數據流進行編解碼操作的裝置或者程式。這裏指的變換既包括將訊號或者數據流進行編碼(通常是為了傳輸、儲存或者加密)或者提取得到一個編碼流的操作,也包括為了觀察或者處理從這個編碼流中恢復適合觀察或操作的形式的操作。編解碼器經常用在視像會議和串流媒體等應用中。一個編解碼器不應該同編碼或壓縮格式或標準混淆,一種格式是一種文件(所謂標準),一種儲存數據的方式,但是編解碼器卻是一段程式用於讀或寫這樣的檔案。實際上,有時編解碼器不嚴謹地意指格式。
編解碼器編碼一個數據流或者用於傳輸、儲存、加密的訊號,解碼一段用於回放或編輯。影片數碼機的ADC將它的模擬訊號轉換成數碼訊號,然後數碼訊號通過影片編碼器用於儲存和傳輸。接受器然後通過影片解碼器轉換成模擬訊號用於最後的模擬顯示。經過編碼的音頻或者影片原始碼流經常被叫做「Essence」(有譯作「本體」),以區別於之後加入碼流的元數據和其它用以幫助訪問碼流和增強碼流強健性的數據。大多數編解碼器是有損的,目的是為了得到更大的壓縮比和更小的檔案大小。當然也有無失真的編解碼器,但是通常沒有必要為了一些幾乎注意不到的的質素損失而大大增加編碼後檔案的大小。除非該編碼的結果還將在以後進行下一步的處理,此時連續的有損編碼通常會帶來較大的質素損失。
很多多媒體數據流需要同時包含音頻數據和影片數據,這時通常會加入一些用於音頻和影片數據同步的元數據。這三種數據流可能會被不同的程式,行程或者硬件處理,但是當它們傳輸或者儲存的時候,這三種數據通常是被封裝在一起的。通常這種封裝是通過影片檔格式來實現的,例如常見的*.mpg, *.avi, *.mov, *.mp4, *.aac, *.rm or *.tta. 這些格式中有些只能使用某些編解碼器,而更多可以以容器的方式使用各種編解碼器。
編解碼器對應的英文「codec」(compress和decompress簡化而成的合成詞語)和decode通常指軟件,當特指硬件的時候,通常使用「endec」這個單詞。
相關概念
編譯碼器(endec= encoder/decoder)是一個相近但是不同的概念,它主要應用於硬件。在二十世紀中葉,「編解碼器」是用於編碼模擬資訊到PCM並能將它們解碼回來的硬件裝置。該世紀後些時候,這個名字開始應用於一系列軟件用於轉換數碼訊號之間的格式,同時也包括了訊號壓擴器的功能。
數據機(modem= modulator/demodulator)是調製器和解調器的合成詞。它能將從電腦的數字數據轉換到電話交換。在接受端模擬訊號轉換回數碼訊號。編解碼器做着相反的工作(影片模擬訊號轉換成數碼訊號,然後電腦把數碼訊號轉換回影片)。
壓縮質素
有損編解碼(破壞性)
在軟件界有許多相對更加流行的編解碼器是有損的,意味着它們壓縮過程犧牲了一定的質素。通常這種壓縮看起來同未被壓縮的聲音或圖像沒區別。更小的數據集緩解了相對高昂的記憶體。較低的數據率也降低了花銷並在數據傳輸過程中提升了傳輸質素。
無失真編解碼(非破壞性)
也有許多的無損壓縮,特別應用於在需要原始流中所有資訊時壓縮模式下取得數據。如果保留數據流的原始質素比削減相應的更大數據更加重要,那麼無損壓縮更佳。連續使用多種編解碼器或者編碼體系也會顯著的降低質素。不斷下降的儲存空間開銷和網絡頻寬正使得失真壓縮的需求下降。