定義
動画や音声のような大容量のメディアデータを、送ったり保存したりするために小さく縮め、また見られるように元へ戻す、技術的な取り決めです。動画や音楽に使われるコーデックの多くは、目や耳が気づきにくい情報を捨てるため、元に戻した結果は原本とまったく同じではなく、とてもよく似た姿になります。
布団圧縮袋のように、縮めて広げます
スマートフォンで短い動画を1本撮るとき、カメラは1秒間に何十枚もの写真を休みなく撮り続けています。もしこの写真を圧縮せず、元のまま保存したらどうなるでしょうか。ほんの数分の動画だけで数十ギガバイトもの容量を使ってしまい、スマホの保存容量はあっという間にいっぱいになってしまいます。
この巨大なデータをインターネットでやりとりするのは、さらに大変です。そこで必要になるのが、サイズを小さくする技術です。データを送ったり保管したりする前にぎゅっと小さくまとめ、あとで画面に映すときに包みを開いて、元とそっくりな姿によみがえらせるのです。
この役割を担う技術を、コーデック(Codec)と呼びます。コーデックという名前も、情報を圧縮する「コーダー(Coder)」と、圧縮をほどく「デコーダー(Decoder)」の頭文字をつなげた言葉です。YouTubeやNetflixを見るたびに、機器の中ではデータをリアルタイムでほどいて画面に描き出す作業が休みなく行われています。
画質を保ちながら、どうやってサイズを小さくするの?
コーデックがデータサイズを劇的に小さくできる秘訣は、「重複した部分を省く」ことです。ニュース番組でキャスターが話している場面を思い浮かべてみてください。キャスターの口や目はせわしなく動いていますが、後ろの青いスタジオの背景は、何分間もほとんど変化しません。
賢いコーデックは、変わらない背景を毎回新しく保存しません。最初の画面の背景をそのまま使い回し、次の画面では実際に動いた口や目の変化の情報だけを選んで記録します。こうして無駄に重なっている情報を省くだけでも、データサイズを大きく減らせます。
さらに、人間の目の錯覚や限界も利用します。私たちの目は明るさの変化にはとても敏感ですが、わずかな色の違いや、暗い隅の細かい描写はあまり見分けられません。コーデックは、人がどうせ気づかない情報を思い切って消してしまうことで、見た目は高画質のまま、データの重さを羽のように軽くするのです。
もう少し正確にいうと:拡張子とコーデックのちがい
動画ファイルの末尾についている MP4 や AVI といった文字を見て、これがコーデックだと思い込んでしまうことがよくあります。でも、もう少し正確にいうと、これらはコーデックではなく、コンテナ(入れ物)と呼ばれるファイル形式です。
きれいなギフトボックスの中に、お菓子と手紙とぬいぐるみをいっしょに入れて包むように、MP4 という箱の中には、コーデックで圧縮された映像データと音声データ、字幕が並んで入っています。外から見える箱の形が同じ MP4 ファイルでも、箱の中の映像をどう圧縮したか(コーデック)は、それぞれまったく違うことがあるのです。
動画を再生したら、音はちゃんと出るのに、画面だけ真っ黒なまま止まっている、という経験はないでしょうか。これは、動画の箱(MP4)を開くことには成功したものの、中に圧縮されて入っている映像をほどくための専用のデコーダー(コーデック)が機器に入っていないため、映像を再生できないという場合です。
よくある誤解
MP4 や AVI のようなファイルの拡張子が、そのままコーデックである。
MP4 は、映像・音声・字幕をひとまとめにして入れる「箱(コンテナ)」です。コーデックは、その箱の中身を圧縮したりほどいたりする、具体的な技術の方式のことを指します。
日常で出会う場面
YouTubeで4Kの高画質動画を途切れずにストリーミングで楽しめるとき、最新のコーデックが働いています。
スマホのカメラで動画を撮影すると、容量が大きくなりすぎないよう、H.264 や HEVC コーデックですぐに圧縮されます。
つまり ひとことで
コーデックとは、映像や音声のデータを小さく縮めて送り、また元へほどく技術で、デジタルの世界を軽く、速くつなぐ大切な道具です。