コーデック (Codec) は、符号化方式を使ってデータのエンコード(符号化)とデコード(復号)を双方向にできる装置やソフトウェアなどのこと[1][2][3][4][5]。また、そのためのアルゴリズムを指す用語としても使われている[6][7][8][9]。
コーデックには、データ圧縮機能を使ってデータを圧縮・伸張するソフトウェアや、音声や動画などのデータを別の形式に変換する装置およびソフトウェアが含まれる。
コーデックはもともとデータをデジタル通信回線で送受信するための装置を意味する、電気通信分野の用語であった。語源は、coder/decoderの略語である。 現在では、デジタル機器やパーソナルコンピューター (PC) などの発達で、コーデックというとデジタル信号間やデジタルデータ間の変換を行うものを指すことが多い。古くは、例えば、音声コーデック、オーディオコーデックと呼ぶ場合、デジタル信号とアナログ信号を変換するDAコンバータ、ADコンバータのことを指していた。 1980年代に、デジタル画像を圧縮してモデムを介してアナログ回線で通信を行う技術や、デジタル回線を用いて音声や画像などの通信を行う技術が本格的に実用化され、これらの処理を行う集積回路 (IC) が登場した。音声の符号・復号に用いるICを音声コーデック、画像の圧縮・伸張を行うICを画像コーデックと呼ぶようになった。前者には例えば、ISDNの音声通信に用いるG.711コーデック、後者にはG3、G4ファクシミリの画像圧縮・伸張に用いるコーデックなどがある。 1990年代に入ると、PCの周辺ハードウェアで映像の圧縮・伸張を行えるコーデックも登場した。その後、コンピュータの急速な進歩で画像や音声などの圧縮・伸張をソフト的に行えるようになり、ソフトウェアのみで処理を行うソフトコーデックも登場した。現在ではコーデックというとデジタル信号のデータ圧縮・伸張を行う装置及びソフトウェアを指すことが多い。 ただし、データ圧縮・伸張を行うコーデックは、コーデックの一群の中の一カテゴリーに相当し、狭い意味でのコーデックを指している。通常、コーデックという言葉はあまり用いられないが、より広い意味では以下のようなものもコーデックである。 データ圧縮のコーデックには、元のデータに完全に復元できる可逆圧縮(Losslessとも呼ばれる)を用いるものと、圧縮の段階で元のデータには復元できない処理を施す代わりに高い圧縮を行う非可逆圧縮(Lossyとも呼ばれる)を用いるものがある。前者は、完全に復元されることが必須のドキュメントファイルや一部の画像・音声ファイルで用いられる。後者は、可逆圧縮ではデータサイズが相対的に大きくなりやすい画像、音声、動画の高能率圧縮に用いられる。→ データ圧縮を参照。 例えば、Microsoft Windowsの標準形式には、音声はPCM、画像はBMPなど無圧縮(非圧縮)の状態のファイル・データが存在する。システムによって頻繁に利用される短い音声や動画、小さい画像などを扱うには無圧縮で扱うのが適している場合もあるが、大きなサイズの映像や音声を無圧縮のまま扱おうとすると大容量のメモリやハードディスク等が必要になったり、トラフィック量が増大する。それを避けるためにファイルを圧縮し、サイズを抑えることが必要になる。その際に必要なのがデータ圧縮・伸張用のコーデックである。
さまざまなコーデック
電子メールで用いられるMIMEエンコード・デコードの処理を行うもの
URLの文字列を%xxのような文字列に符号化(URLエンコード)、逆に復号(URLデコード)するもの
圧縮を伴わない画像データフォーマット間の相互変換(例えば、BMP⇔TIFF⇔PICTなど)を行うもの
データの暗号化や暗号化されたデータの復号を行うもの
データ圧縮・伸張を行うコーデック
画像圧縮のコーデック
GIF - 256色までの可逆圧縮
JPEG XR (HD Photo) - 指定により非可逆圧縮、可逆圧縮の選択が可能