A video coding format[a] (or sometimes video compression format) is an encoded format of digital video content, such as in a data file or bitstream. It typically uses a standardized video compression algorithm, most commonly based on discrete cosine transform (DCT) coding and motion compensation. A computer software or hardware component that compresses or decompresses a specific video coding format is a video codec.
Some video coding formats are documented by a detailed technical specification document known as a video coding specification. Some such specifications are written and approved by standardization organizations as technical standards, and are thus known as a video coding standard. There are de facto standards and formal standards.
Video content encoded using a particular video coding format is normally bundled with an audio stream (encoded using an audio coding format) inside a multimedia container format such as AVI, MP4, FLV, RealMedia, or Matroska. As such, the user normally does not have a H.264 file, but instead has a video file, which is an MP4 container of H.264-encoded video, normally alongside AAC-encoded audio. Multimedia container formats can contain one of several different video coding formats; for example, the MP4 container format can contain video coding formats such as MPEG-2 Part 2 or H.264. Another example is the initial specification for the file type WebM, which specifies the container format (Matroska), but also exactly which video (VP8) and audio (Vorbis) compression format is inside the Matroska container, even though Matroska is capable of containing VP9 video, and Opus audio support was later added to the WebM specification.
A format is the layout plan for data produced or consumed by a codec.
H.264などのビデオ符号化フォーマットはコーデックと呼ばれることもありますが、仕様と実装の間には明確な概念上の違いがあります。ビデオ符号化フォーマットは仕様で定義され、特定のビデオ符号化フォーマットで非圧縮ビデオからデータをエンコード/デコードするためのソフトウェア、ファームウェア、またはハードウェアは、その仕様の実装です。例えるなら、ビデオ符号化フォーマットH.264(仕様)とコーデックOpenH264(特定の実装)の関係は、 C言語(仕様)とコンパイラGCC(特定の実装)の関係に相当します。各仕様(例:H.264 )に対して、その仕様を実装するコーデック(例: x264、OpenH264、H.264/MPEG-4 AVC製品および実装)が多数存在する可能性があることに注意してください。
この区別は文献において用語的に一貫して反映されているわけではない。H.264 仕様では、H.261、H.262、H.263、およびH.264 をビデオ コーディング規格と呼んでおり、コーデックという単語は含まれていない。[ 2 ] Alliance for Open Media は、AV1ビデオ コーディング フォーマットと、開発中の付随するコーデックを明確に区別しているが、ビデオ コーディング フォーマット自体をビデオ コーデック仕様と呼んでいる。[ 3 ] VP9仕様では、ビデオ コーディング フォーマット VP9 自体をコーデックと呼んでいる。[ 4 ]
混同の例として、Chromium [ 5 ]と Mozilla [ 6 ]のビデオフォーマット一覧ページでは、どちらも H.264コーデックなどのビデオコーディングフォーマットをサポートしています。別の例として、Cisco がビールのように無料のビデオコーデックを発表した際、プレスリリースでは H.264 ビデオコーディングフォーマットをコーデック(「一般的なビデオコーデックの選択」)と呼んでいますが、その直後に Cisco の H.264 エンコーダー/デコーダーの実装をコーデックと呼んでいます(「H.264 コーデックをオープンソース化」)。[ 7 ]
ビデオ符号化フォーマットは、そのフォーマットを実装するコーデックが使用するすべてのアルゴリズムを規定するものではありません。たとえば、ビデオ圧縮の一般的な仕組みの大部分は、ビデオフレーム間の類似性(ブロックマッチング)を見つけ、以前に符号化された類似のサブイメージ(マクロブロックなど)をコピーし、必要に応じて小さな差分を追加することによって圧縮を実現することです。このような予測子と差分の最適な組み合わせを見つけることはNP困難問題であり、[ 8 ]妥当な時間で最適な解を見つけることは事実上不可能です。ビデオ符号化フォーマットは、ビットストリームフォーマットでフレーム間のこのような圧縮をサポートする必要がありますが、このようなブロックマッチングやその他のエンコード手順を見つけるための特定のアルゴリズムを不必要に義務付けないことで、ビデオ符号化仕様を実装するコーデックは、アルゴリズムの選択において最適化と革新を行う自由度を持ちます。たとえば、H.264仕様のセクション0.5では、エンコードアルゴリズムは仕様の一部ではないとされています。[ 2 ]アルゴリズムを自由に選択できるため、同じビデオコーディング形式でも空間と時間の複雑さのトレードオフが異なります。ライブフィードでは高速だがスペース効率の悪いアルゴリズムを使用でき、後で大量生産するための1回限りのDVDエンコードではエンコード時間が長くなる代わりにスペース効率の良いエンコードを行うことができます。
アナログビデオ圧縮の概念は、1929年にイギリスのRD Kellがフレームごとに変化するシーンの部分だけを送信するという概念を提案したことに遡ります。デジタルビデオ圧縮の概念は、1952年にベル研究所の研究者であるBM OliverとCW Harrisonがビデオ符号化に差動パルス符号変調(DPCM)を使用することを提案したことに遡ります。1959年には、 NHKの研究者である滝義雄、羽鳥正、田中慎一が、時間次元における予測型フレーム間ビデオ符号化を提案し、フレーム間動き補償の概念を提案しました。[ 9 ] 1967年には、ロンドン大学の研究者であるAH RobinsonとC. Cherryが、アナログテレビ信号の伝送帯域幅を削減するために、ロスレス圧縮方式であるランレングス符号化(RLE)を提案しました。[ 10 ]
初期のデジタルビデオ符号化アルゴリズムは、非圧縮ビデオ用か、ロスレス圧縮を使用していました。どちらの方法も、デジタルビデオ符号化には非効率的で実用的ではありませんでした。[ 11 ] [ 12 ]デジタルビデオは1970年代に導入され、[ 11 ]最初は非圧縮パルス符号変調(PCM)を使用しており、標準解像度(SD)ビデオには45 ~ 200 Mbit/s程度の高ビットレートが必要でした。 [ 11 ] [ 12 ]これは、 1990年代まで利用可能だった通信帯域幅(最大100 kbit/s )の最大2,000倍でした。 [ 12 ]同様に、非圧縮高解像度(HD)1080pビデオには1 Gbit/sを超えるビットレートが必要で、これは2000年代に利用可能だった帯域幅を大幅に上回っています。[ 13 ]
実用的なビデオ圧縮は、動き補償DCT(MC DCT)符号化[ 12 ] [ 11 ](ブロック動き補償(BMC)[ 9 ]またはDCT動き補償とも呼ばれる)の開発とともに登場しました。これは、空間次元の離散コサイン変換(DCT)符号化[ 12 ] [ 11 ]と時間次元の予測動き補償[ 9 ]という2つの主要なデータ圧縮技術を組み合わせたハイブリッド符号化アルゴリズムです。
DCT コーディングは、 1972 年にカンザス州立大学で働いていたNasir Ahmedが最初に提案した、非可逆ブロック圧縮変換コーディング技術です。当初は画像圧縮を目的としていました。その後、1973 年にテキサス大学でAhmed と T. Natarajan およびKR Raoによって実用的な画像圧縮アルゴリズムに開発され、1974 年に発表されました。[ 14 ] [ 15 ] [ 16 ]
もう一つの重要な発展は、動き補償ハイブリッド符号化でした。[ 9 ] 1974年、南カリフォルニア大学のアリ・ハビビは、予測符号化と変換符号化を組み合わせたハイブリッド符号化を導入しました。[17][18][19]彼は、DCT、アダマール変換、フーリエ変換、スラント変換、カルーネン・レーベ変換など、いくつかの変換符号化技術を検討しました。 [ 17 ]しかし、彼のアルゴリズムは当初、空間次元のフレーム内符号化に限定されていました。1975年、ジョン・A・ローゼとグナー・S・ロビンソンは、空間次元で変換符号化、時間次元で予測符号化を使用して、ハビビのハイブリッド符号化アルゴリズムを時間次元に拡張し、フレーム間動き補償ハイブリッド符号化を開発しました。[ 9 ] [ 21 ]空間変換符号化については、DCT や高速フーリエ変換(FFT) などさまざまな変換を実験し、それらのフレーム間ハイブリッド符号化器を開発し、DCT は複雑さが軽減されるため最も効率的であり、ピクセルあたり 2 ビットを必要とする一般的なフレーム内符号化器と同等の画像品質で、ビデオ電話シーンの画像データをピクセルあたり0.25ビットまで圧縮できることを発見した。 [ 22 ] [ 21 ]
DCTは、Wen-Hsiung Chen [ 23 ]によってビデオ符号化に適用されました。彼は1977年にCH SmithとSC Fralickとともに高速DCTアルゴリズムを開発し[ 24 ] [ 25 ]、DCT技術を商業化するためにCompression Labsを設立しました[ 23 ] 。 1979年には、Anil K. JainとJaswant R. Jainが動き補償DCTビデオ圧縮をさらに開発しました[ 26 ] [ 9 ]。これにより、Chenは1981年に動き補償DCTまたは適応シーン符号化と呼ばれる実用的なビデオ圧縮アルゴリズムを開発しました[ 9 ]。動き補償DCTはその後、1980年代後半からビデオ圧縮の標準符号化技術となりました[ 11 ] [ 27 ] 。
最初のデジタルビデオ符号化規格は、1984 年にCCITT (現在の ITU-T)によって開発されたH.120でした。 [ 28 ] H.120 は、その性能が低すぎたため、実際には使用できませんでした。[ 28 ] H.120 は、ビデオ符号化には非効率的なロスレス圧縮アルゴリズムであるモーション補償 DPCM 符号化を使用していました。 [ 9 ] [ 11 ] 1980 年代後半には、多くの企業が、ビデオ符号化にはるかに効率的な圧縮形式である離散コサイン変換(DCT) 符号化の実験を開始しました。CCITT は、ベクトル量子化(VQ) 圧縮に基づく提案が 1 つだったのに対し、DCT ベースのビデオ圧縮フォーマットの提案を 14 件受け取りました。H.261規格は、モーション補償 DCT 圧縮に基づいて開発されました。[ 11 ] [ 27 ] H.261 は最初の実用的なビデオ コーディング規格であり、[ 28 ]日立、ピクチャーテル、NTT、BT、東芝など多数の企業からライセンスを受けた特許を使用しています。 [ 29 ] H.261 以降、動き補償 DCT 圧縮は、その後に続くすべての主要なビデオ コーディング規格 ( H.26xおよびMPEGフォーマットを含む) で採用されています。[ 11 ] [ 27 ]
1991年にMPEG-1が登場し、動画専門家グループ(MPEG)によって開発されました。これはVHS品質のビデオを圧縮するように設計されていました。[ 28 ] 1994年には、ソニー、トムソン、三菱電機など多数の企業からライセンスを受けた特許を使用して開発されたMPEG-2 / H.262が登場しました。[ 28 ] MPEG - 2はDVDとSDデジタルテレビの標準ビデオフォーマットになりました。[ 28 ]その動き補償DCTアルゴリズムは最大100:1の圧縮率を達成でき、ビデオオンデマンド(VOD)[ 12 ]や高精細テレビ(HDTV) [ 31 ]などのデジタルメディア技術の開発を可能にしました。 1999年には、ビデオ圧縮技術の大きな飛躍となったMPEG-4 / H.263が登場しました。[ 28 ]三菱電機、日立製作所、パナソニックなど、多数の企業からライセンス供与された特許を使用している。[ 32 ]
2019年時点で最も広く使用されているビデオコーディングフォーマット is H.264/MPEG-4 AVC.[33] It was developed in 2003, and uses patents licensed from a number of organizations, primarily Panasonic, Godo Kaisha IP Bridge and LG Electronics.[34] In contrast to the standard DCT used by its predecessors, AVC uses the integer DCT.[23][35] H.264 is one of the video encoding standards for Blu-ray Discs; all Blu-ray Disc players must be able to decode H.264. It is also widely used by streaming internet sources, such as videos from YouTube, Netflix, Vimeo, and the iTunes Store, web software such as the Adobe Flash Player and Microsoft Silverlight, and also various HDTV broadcasts over terrestrial (ATSC standards, ISDB-T, DVB-T or DVB-T2), cable (DVB-C), and satellite (DVB-S2).[36]
A main problem for many video coding formats has been patents, making it expensive to use or potentially risking a patent lawsuit due to submarine patents. The motivation behind many recently designed video coding formats, such as Theora, VP8, and VP9 have been to create a (libre) video coding standard covered only by royalty-free patents.[37] Patent status has also been a major point of contention for the choice of which video formats the mainstream web browsers will support inside the HTML video tag.
The current-generation video coding format is HEVC (H.265), introduced in 2013. AVC uses the integer DCT with 4x4 and 8x8 block sizes, and HEVC uses integer DCT and DST transforms with varied block sizes between 4x4 and 32x32.[38] HEVC is heavily patented, mostly by Samsung Electronics, GE, NTT, and JVCKenwood.[39] It is challenged by the AV1 format, intended for free license. As of 2019AVCは、ビデオコンテンツの録画、圧縮、配信に最も一般的に使用されているフォーマットであり、ビデオ開発者の91%が使用しており、次いでHEVCが43%の開発者によって使用されています。[ 33 ]
一般的に、消費者向けビデオは非可逆圧縮よりもファイルサイズが大幅に小さくなるため、非可逆ビデオコーデックを使用して圧縮されます。一部のビデオコーディング形式は、非可逆圧縮または可逆圧縮のいずれかに特化して設計されており、DiracやH.264などの一部のビデオコーディング形式は両方をサポートしています。[ 49 ]
Clean HDMIなどの非圧縮ビデオフォーマットは、 HDMI接続を介してディスプレイにビデオを送信する場合など、特定の状況で使用されるロスレスビデオの一種です。一部のハイエンドカメラは、このフォーマットで直接ビデオをキャプチャすることもできます。
フレーム間圧縮は、エンコードされたビデオ シーケンスの編集を複雑にします。[ 50 ] 比較的単純なビデオ コーディング フォーマットのサブクラスとして、 DVなどのフレーム内ビデオ フォーマットがあります。これは、ビデオ ストリームの各フレームがストリーム内の他のフレームを参照せずに個別に圧縮され、圧縮率を向上させるために、時間の経過に伴う連続する画像間の相関関係を利用しようとはしません。 1 つの例としてMotion JPEGがあり、これは単に個別にJPEG圧縮された画像のシーケンスです。このアプローチは、フレーム間コーディングをサポートするビデオ コーディング フォーマットよりもエンコードされたビデオがはるかに大きくなるという代償を伴うものの、迅速かつ単純です。
フレーム間圧縮では、あるフレームから別のフレームにデータがコピーされるため、元のフレームが単純に切り取られた場合(または伝送中に失われた場合)、後続のフレームは正しく復元できません。ビデオ編集時にフレーム内圧縮ビデオでカットを行うのは、非圧縮ビデオを編集するのとほぼ同じくらい簡単です。各フレームの開始と終了を見つけ、保持したい各フレームをビット単位でコピーし、不要なフレームを破棄するだけです。フレーム内圧縮とフレーム間圧縮のもう1つの違いは、フレーム内システムでは、各フレームがほぼ同じ量のデータを使用することです。ほとんどのフレーム間システムでは、特定のフレーム(MPEG-2のIフレームなど)は他のフレームからデータをコピーすることが許可されていないため、近くの他のフレームよりもはるかに多くのデータが必要になります。[ 51 ]
Iフレームが他のフレームで必要とされるときにIフレームが削除された場合に発生する問題を検出するコンピュータベースのビデオエディタを構築することが可能です。これにより、HDVなどの新しいフォーマットを編集に使用できるようになりました。ただし、このプロセスは、同じ画質でフレーム内圧縮ビデオを編集する場合よりもはるかに多くの計算能力を必要とします。しかし、この圧縮はどのオーディオフォーマットにもあまり効果的ではありません。[ 52 ]
ビデオ符号化フォーマットでは、エンコードされたビデオに対して、プロファイルとレベルと呼ばれるオプションの制限を定義できます。デコーダーは、特定のビデオフォーマットのプロファイルとレベルのサブセットのみをデコードするように設計することが可能です。例えば、デコーダーのプログラムやハードウェアをより小型化、簡素化、または高速化するために利用できます。
プロファイルは、どのエンコード技術が許可されるかを制限します。たとえば、H.264 フォーマットには、 baseline、main、high (およびその他の) プロファイルが含まれます。Pスライス(前のスライスに基づいて予測可能) はすべてのプロファイルでサポートされていますが、B スライス(前のスライスと次のスライスの両方に基づいて予測可能) はmainおよびhighプロファイルでサポートされていますが、 baselineではサポートされていません。[ 53 ]
レベルとは、最大解像度やデータレートなどのパラメータに対する制限のことである。[ 53 ]
ハイブリッド変換/DPCM符号化の概念の導入によってもたらされた(Habibi、1974)。
H.263はH.261に似ていますが、より複雑です。現在、ISDN(統合サービスデジタルネットワーク)電話回線でのビデオ電話において、最も広く使用されている国際的なビデオ圧縮規格です。