動画圧縮の鍵、GOPを理解する
動画を作りたい
先生、「GOP」って動画制作の用語で出てきました。何のことですか?
動画制作専門家
GOPは、動画を圧縮する時の単位のことだよ。いくつかの絵をまとめて、効率よく小さくしているんだ。GOPの中の絵は、Iピクチャー、Pピクチャー、Bピクチャーのどれかに分けられるんだよ。
動画を作りたい
Iピクチャー、Pピクチャー、Bピクチャー…それぞれどんな絵なんですか?
動画制作専門家
Iピクチャーは一枚の絵として圧縮される。Pピクチャーは前の絵との違いだけを記録する。Bピクチャーは前後の絵との違いを記録する。だから、Iピクチャーが一番情報が多く、Bピクチャーが一番少ないんだ。
GOPとは。
動画を作る際の専門用語、「GOP」について説明します。GOPとは、動画を圧縮したり、再生・編集したりする時の、いくつかの動画の場面をまとめた単位のことです。この単位は、エムペグ2という形式では、場面だけでなく、画面の半分ずつの単位も可能です。GOPの中のそれぞれの場面は、「Iピクチャー」「Pピクチャー」「Bピクチャー」のどれかに分けて符号化されます。
Iピクチャーは、一枚の絵のようにJPEGと似た圧縮方法が使われます。前の場面や後の場面の情報は使わず、その場面だけの情報で圧縮されます。動画を再生したり編集したりする時は、まずIピクチャーが再生され、これを基準にPピクチャーやBピクチャーが再生されます。
Pピクチャーは、前の場面との関係性を利用して圧縮されます。前の場面はIピクチャーでもPピクチャーでも構いません。Iピクチャーよりもデータ量は少なくなります。
Bピクチャーは、前後の場面との関係性を利用して圧縮されます。前の場面も後の場面も、IピクチャーとPピクチャーのどちらでも構いません。IピクチャーやPピクチャーよりもデータ量は少なくなります。
動画圧縮とGOP
動画を扱う際には、その巨大なデータ量が問題となります。容量が大きすぎると、保存するための記憶装置の負担が大きくなり、また、ネットワークを通じて送受信する際にも時間がかかってしまいます。そこで、動画を小さくするために、様々な方法でデータを間引く「動画圧縮」という技術が用いられます。動画圧縮には様々な種類がありますが、その中で「エムペグ」と呼ばれる方式が広く使われています。このエムペグ方式の動画圧縮において、「画像集団(ジーオーピー)」という考え方が非常に重要です。
画像集団とは、複数の画面をまとめて一つの単位として扱うことです。動画は、静止画の連続によって構成されていますが、連続する画面間には、多くの場合、変化していない部分が存在します。例えば、背景や動きの少ない物体などは、前の画面とほぼ同じ情報を持っていることが多いです。そこで、画像集団では、変化のない情報を繰り返し記録する代わりに、前の画面の情報を利用することでデータ量を削減します。具体的な方法としては、画像集団の中に「基準となる完全な画面(アイフレーム)」を一つ用意し、その後の画面では、基準となる画面との差分情報だけを記録します。これにより、データ量を大幅に削減することが可能になります。
この画像集団の大きさを調整することで、圧縮率や動画の品質、編集のしやすさを制御することができます。画像集団を大きく設定すると、基準となる画面との差分情報だけで多くの画面を表現できるため、圧縮率は高くなります。しかし、動画の一部を編集する場合、画像集団全体を再圧縮する必要があるため、編集作業に時間がかかる場合があります。反対に、画像集団を小さく設定すると、圧縮率は低くなりますが、編集作業は容易になります。つまり、動画の用途に合わせて、画像集団の大きさを適切に設定することが重要です。例えば、動画配信サービスのように、一度圧縮したら編集作業を行わない場合は、画像集団を大きく設定することでデータ量を削減し、配信コストを抑えることができます。一方、動画編集作業を頻繁に行う場合は、画像集団を小さく設定することで作業効率を高めることができます。
項目 | 説明 | メリット | デメリット |
---|---|---|---|
動画圧縮 (エムペグ方式) | 動画のデータ量を小さくする技術。画像集団(GOP)が重要な概念。 | 容量削減、送受信時間の短縮 | – |
画像集団 (GOP) | 複数の画面をまとめて一つの単位として扱う。基準となる完全な画面(Iフレーム)と、その後の画面との差分情報で構成。 | データ量を大幅に削減 | – |
大きな画像集団 | 基準となる画面との差分情報だけで多くの画面を表現。 | 圧縮率が高い、配信コスト削減 | 編集に時間がかかる |
小さな画像集団 | 圧縮率は低い。 | 編集作業が容易 | 圧縮率が低い |
GOPの構造:I、P、Bピクチャー
動画を滑らかに、かつ少ないデータ量で表現するために、『グループ・オブ・ピクチャーズ(GOP)』という仕組みが使われています。これは、いくつかの種類の画面を組み合わせたかたまりで、主に3種類の画面から構成されています。
まず、『Iピクチャ』と呼ばれる画面は、一枚の絵のように、その画面だけで完結した情報を持っています。言ってみれば、一枚の静止画のようなものです。そのため、他の画面の情報は一切必要なく、この画面さえあれば表示することができます。動画を早送りしたり、巻き戻したりする際に、この『Iピクチャ』が基準となるため、重要な役割を担っています。
次に、『Pピクチャ』と呼ばれる画面は、前の画面との違いだけを記録しています。例えば、前の画面で車が右に動いた場合、『Pピクチャ』では「車が右にこれだけ動いた」という情報だけを保存します。前の画面の情報を利用することで、データ量を大幅に減らすことができます。
最後に、『Bピクチャ』と呼ばれる画面は、前後の画面との違いを記録しています。前の画面と後の画面の両方を利用して、さらにデータ量を減らすことができます。例えば、車が右に動いた後、左に戻った場合、『Bピクチャ』では、前後の画面との位置関係を記録することで、より少ない情報で動きを表現できます。
このように、『Iピクチャ』を基準に、『Pピクチャ』と『Bピクチャ』を組み合わせて使うことで、滑らかな動画を少ないデータ量で表現することが可能になります。これらの画面の配置や組み合わせを変えることで、画質とデータ量のバランスを調整し、様々な用途に合わせた動画を作成できます。
画面の種類 | 説明 | データ量 | 特徴 |
---|---|---|---|
Iピクチャ | 一枚の絵のように、その画面だけで完結した情報を持つ。静止画のようなもの。 | 大きい | 他の画面の情報は不要。早送り・巻き戻しの基準。 |
Pピクチャ | 前の画面との違いだけを記録。 | 小さい | 前の画面の情報を利用。 |
Bピクチャ | 前後の画面との違いを記録。 | 最も小さい | 前後の画面の情報を利用。 |
Iピクチャー:動画の要
動画を滑らかに再生し、かつ容量を抑えるために、映像データは圧縮されます。その際に用いられる技術の一つに、画面の種類を分けてそれぞれ異なる圧縮方法を適用する手法があります。画面の種類は大きく分けて三つあり、それぞれ「アイピクチャー」、「ピーピクチャー」、「ビーピクチャー」と呼ばれています。
アイピクチャーは、この中で最も重要な画面です。まるで一枚の絵のように、他の画面の情報に頼らず、単独で完全な画像として復元できます。そのため、動画を見始めるときや、早送り・巻き戻しで特定の場面を探したいときに、基準となる画面として使われます。ちょうど本の目次や索引のような役割を果たすため、動画をスムーズに再生するために欠かせません。
ピーピクチャーとビーピクチャーは、アイピクチャーを土台にして作られます。ピーピクチャーは、前の画面との差分情報だけを記録することで容量を削減しています。ビーピクチャーは、前後の画面の両方を使ってさらに圧縮率を高めています。つまり、アイピクチャーの品質が、後続のピーピクチャーやビーピクチャーの品質にも影響を与えるため、アイピクチャーは動画全体の品質を左右する重要な要素と言えるでしょう。
アイピクチャーは、写真などで広く使われている「ジェイペグ」と似た方法で圧縮されます。ジェイペグは、人間の目には見えにくい情報を削ることで、画質の劣化を最小限に抑えながらファイルサイズを小さくする技術です。アイピクチャーも同様に、高画質を維持しつつ、データ量を抑える工夫が凝らされています。ただし、他の画面を参考にしない分、ピーピクチャーやビーピクチャーと比べるとデータ量は大きくなります。しかし、動画全体の品質を支える重要な役割を担っていることを考えると、必要な大きさと言えるでしょう。
画面の種類 | 特徴 | 圧縮方法 | データ量 | 役割 |
---|---|---|---|---|
アイピクチャー (I-Picture) | 他の画面の情報に頼らず、単独で完全な画像として復元できる | JPEGと似た方式 | P/Bピクチャーより大きい | 動画の基準となる画面。動画全体の品質を左右する。 |
ピーピクチャー (P-Picture) | 前の画面との差分情報だけを記録 | 前の画面(IまたはP)との差分 | Iピクチャーより小さい | 容量削減 |
ビーピクチャー (B-Picture) | 前後の画面の情報を利用 | 前後の画面(IまたはP)との差分 | 最も小さい | 更なる容量削減 |
Pピクチャー:効率的な圧縮
ピーピクチャーは、動画を効率的に小さくするための、巧みな方法です。まるで一枚一枚の絵を少しずつ変化させていく、パラパラ漫画のような仕組みです。直前の絵、つまり直前の画面を基準として、変化した部分の情報だけを記録します。例えば、静かな風景の動画を考えてみましょう。空の色が少し変わった、雲が少し動いただけならば、変化した部分の情報はとても小さくて済みます。全体を記録するよりも、変化した部分だけを記録することで、データの大きさを大幅に小さくすることができるのです。
具体的な例を挙げると、ニュース番組のキャスターを想像してみてください。背景は変わらず、キャスターが少し動いたり、口を動かして話したりする場面が多いでしょう。このような場合、背景は最初の画面をそのまま使い、キャスターの動きや口の変化といった差分情報だけを記録すれば良いのです。そのため、データの大きさを大幅に抑えることができます。
ただし、ピーピクチャーには一つ注意点があります。それは、前の画面の情報に依存しているということです。前の画面が何らかの理由で壊れてしまった場合、それに続く画面も正しく表示できなくなる可能性があります。これは、パラパラ漫画で一枚の絵が破れてしまうと、その後の絵が分からなくなってしまうのと同じです。一枚の絵にすべての情報が含まれているわけではなく、前の絵との関係性で成り立っているため、基準となる絵が重要になるのです。ピーピクチャーは、この仕組みのおかげで動画の大きさを小さくできますが、同時に、前の画面への依存という弱点も持っていることを理解しておく必要があります。
ピーピクチャーの仕組み | メリット | デメリット | 具体例 |
---|---|---|---|
直前の画面との差分情報のみを記録する(パラパラ漫画方式) | データサイズの大幅な削減 | 前の画面の情報に依存するため、前の画面が壊れると後続の画面も表示できなくなる可能性がある | ニュース番組のキャスター(背景は変わらず、キャスターの動きや口の変化のみ差分として記録) 静かな風景(空の色や雲の動きの変化のみ差分として記録) |
Bピクチャー:更なる圧縮
{動画を小さく軽くするための技術}として、ピーピクチャーというものが知られています。これは前の画面との違いだけを記録することで、動画全体の大きさを小さくする技術です。今回ご紹介するビーピクチャーは、このピーピクチャーをさらに進化させたものです。
ビーピクチャーは、前の画面だけでなく後の画面との違いも記録することで、ピーピクチャーよりもさらに高い圧縮率を実現しています。例えば、あるシーンでボールが動いているとします。ピーピクチャーでは、前の画面からボールがどれだけ動いたかを記録しますが、ビーピクチャーでは、前の画面と後の画面からボールの動きを予測し、その予測とのずれだけを記録します。これにより、記録する情報量がさらに少なくなり、動画をより小さくできるのです。
しかし、ビーピクチャーには欠点もあります。それは動画編集がしづらいという点です。ビーピクチャーは前の画面と後の画面に依存しているため、一部分だけを編集すると、その前後の画面にも影響が出てしまいます。一部分だけを修正しようとすると、関連する多くの画面を再計算する必要が生じ、編集作業に大きな負担がかかります。そのため、ビーピクチャーは一度完成した動画を配信したり保存したりする場合に適した技術と言えるでしょう。
また、ピーピクチャーと同様に、ビーピクチャーにも参照する画面が壊れた場合、正しく再生できない可能性があります。ビーピクチャーは前後の画面に依存しているため、もし参照する画面が壊れてしまうと、そこから先の画面も正しく表示できなくなってしまいます。これはビーピクチャーを使う際の注意点として覚えておく必要があります。
このように、ビーピクチャーは高い圧縮率を実現する一方で、編集のしづらさや参照画面の破損による影響といった欠点も持っています。動画の用途に合わせて、ピーピクチャーとビーピクチャーを使い分けることが重要です。
項目 | 説明 |
---|---|
ビーピクチャーとは | 前後の画面との差分を記録し、高い圧縮率を実現する動画圧縮技術 |
メリット | ピーピクチャーより高い圧縮率を実現 |
デメリット |
|
ピーピクチャーとの比較 | 圧縮率はビーピクチャーが上だが、編集の容易さはピーピクチャーが上 |
用途 | 一度完成した動画の配信・保存 |
注意点 | 参照画面の破損に注意 |
GOPの長さと動画編集
{動画の滑らかな動きと記憶容量の節約}には、GOP(グループ・オブ・ピクチャーズ)という仕組が深く関わっています。GOPとは、複数の画像をまとめて扱う単位のことで、この長さが動画の圧縮率と編集のしやすさに大きく影響します。
GOPは、I、P、Bという3種類の画像で構成されています。Iピクチャーは、一枚一枚の画像が完全に記録されたもので、それ自体で独立して表示できます。Pピクチャーは、直前のIピクチャー、またはPピクチャーとの差分情報のみを記録しているため、容量が小さく済みます。Bピクチャーは、前後のIピクチャーまたはPピクチャーを参照して、さらに容量を小さくしています。
GOPの長さを長くすると、一つのGOPに含まれるBピクチャーの数が増えるため、全体の容量は小さくなり、圧縮率は高くなります。しかし、Bピクチャーは前後の画像を参照しているため、編集点の前後のGOP全体を再計算する必要が生じ、編集作業が複雑になります。例えば、GOPが長い動画の一部を切り出したい場合、切り出し部分の前後のGOP全体を読み込み、再圧縮する必要があるため、処理に時間がかかります。
逆にGOPの長さを短くすると、Bピクチャーの数が減り、参照関係が簡素化されるため、編集作業は容易になります。一部分の切り出しや修正を行う場合でも、影響範囲が狭いため、処理速度が速くなります。しかし、GOPが短い分、IピクチャーやPピクチャーの割合が増えるため、全体の容量は大きくなり、圧縮率は低くなります。
つまり、GOPの長さは動画の圧縮率と編集のしやすさのバランスで決める必要があります。動画編集を頻繁に行う場合は、GOPの長さを短く設定し、編集作業の効率を優先するのが良いでしょう。一方で、編集作業が少ない動画や、記憶容量を重視する場合には、GOPの長さを長く設定することで、容量を節約できます。
GOPの長さ | 圧縮率 | 編集のしやすさ | 容量 | 処理速度 | Bピクチャー数 | I/Pピクチャー割合 |
---|---|---|---|---|---|---|
長い | 高い | 低い | 小さい | 遅い | 多い | 少ない |
短い | 低い | 高い | 大きい | 速い | 少ない | 多い |