コーデックとは、デジタルデータの符号化(エンコード)と復号化(デコード)を行う変換装置のことを指します。この言葉自体は、「符号化」を意味する「coder」そしてその対義語である「復号」を意味する「decoder」から派生したものです。
ここでは、コーデックの基本的な概念を詳細に解説します。
「符号化(エンコード)」と「復号(デコード)」
符号化はデジタルデータの圧縮やアナログデータのデジタル変換のプロセスを指し、これにより大量のデータを扱いやすく、保存や送信が容易な形にします。一方、復号はその逆のプロセスで、圧縮や変換されたデータを元の状態に戻します。
これら二つの機能を持つ装置が「コーデック」です。なぜデータを再び元の状態に戻す必要があるのかと疑問に思うかもしれませんが、それは我々が動画を見たり、音楽を聴いたりするためです。デジタル信号は0と1の世界で、それだけでは我々の感覚に訴えることはできません。
そのため、符号化されたデータを再びアナログに変換し、我々が楽しむことができる形にする必要があります。また、圧縮されたデータは元の状態を再現することができないため、その解凍も必要です。
「ハードウェアコーデック」と「ソフトウェアコーデック」
ハードウェアコーデックは具体的なハードウェア、例えば半導体チップや基板によってデータ処理を行います。
この種類のコーデックは、拡張カードとしてパソコンに内蔵されることが一般的で、高速な処理能力が特徴です。しかし、異なる種類のコーデックを使用する場合は、対応するチップを交換する必要があります。
一方、ソフトウェアコーデックはコンピュータプログラムとして動作し、動画、音声、画像などのデータ形式に応じたソフトウェアやアドオンを利用します。処理速度はハードウェアコーデックに劣りますが、必要な形式に対応するプログラムをインストールすることで、容易に形式の変更が可能となります。
以前はハードウェアコーデックが主流でしたが、現在では多種多様な圧縮形式や高性能なCPUの普及に伴い、ソフトウェアコーデックも広く利用されるようになりました。
実際には、データの符号化にはハードウェアを、その復号にはソフトウェアを用いるといった使い分けが一般的となっています。