編解碼器

編解碼器 （ codec ） 指的是一個能夠對一個信號或者一個進行編解碼操作的設備或者程序 。 這裏指的變換既包括將信號或者數據流進行編碼 （ 通常是爲了傳輸 、 存儲或者加密 ） 或者提取得到一個編碼流的操作 ， 也包括爲了觀察或者處理從這個編碼流中恢復適合觀察或操作的形式的操作 。 編解碼器經常用在視頻會議和流媒體等應用中 。 一個編解碼器不應該同編碼或壓縮格式或標準混淆 ， 一種格式是一種文檔 （ 所謂標準 ） ， 一種存儲數據的方式 ， 但是編解碼器卻是一段程序用於讀或寫這樣的文件 。 實際上 ， 有時編解碼器不嚴謹地意指格式 。 編解碼器編碼一個數據流或者用於傳輸 、 存儲 、 加密的信號 ， 解碼一段用於回放或編輯 。 視頻數碼機的ADC將它的模擬信號轉換成數字信號 ， 然後數字信號通過視頻編碼器用於存儲和傳輸 。 接受器然後通過視頻解碼器轉換成模擬信號用於最後的模擬顯示 。 經過編碼的音頻或者視頻原始碼流經常被叫做 “ Essence ” （ 有譯作 “ 本體 ” ） ， 以區別於之後加入碼流的元數據和其它用以幫助訪問碼流和增強碼流強健性的數據 。 大多數編解碼器是有損的 ， 目的是爲了得到更大的壓縮比和更小的文件大小 。 當然也有無損的編解碼器 ， 但是通常沒有必要爲了一些幾乎注意不到的的質量損失而大大增加編碼後文件的大小 。 除非該編碼的結果還將在以後進行下一步的處理 ， 此時連續的有損編碼通常會帶來較大的質量損失 。 很多多媒體數據流需要同時包含音頻數據和視頻數據 ， 這時通常會加入一些用於音頻和視頻數據同步的元數據 。 這三種數據流可能會被不同的程序 ， 進程或者硬件處理 ， 但是當它們傳輸或者存儲的時候 ， 這三種數據通常是被封裝在一起的 。 通常這種封裝是通過視頻文件格式來實現的 ， 例如常見的 *. mpg, *. avi, *. mov, *. mp4, *. aac, *. rm or *. tta. 這些格式中有些只能使用某些編解碼器 ， 而更多可以以容器的方式使用各種編解碼器 。 編解碼器對應的英文 “ codec ” （ compress和decompress簡化而成的合成詞語 ） 和decode通常指軟件 ， 當特指硬件的時候 ， 通常使用 “ endec ” 這個單詞 。