MPEG-1は、ビデオとオーディオの非可逆圧縮の標準規格です。VHS品質の生デジタルビデオとCDオーディオを、過度の品質低下なしに約1.5 Mbit/s(それぞれ26:1と6:1の圧縮率)まで圧縮するように設計されており[ 2 ] 、ビデオCD、デジタルケーブル/衛星テレビ、デジタルオーディオ放送(DAB)を実用化しています[ 3 ] [ 4 ] 。
現在、MPEG-1は世界で最も互換性の高い非可逆音声/動画フォーマットとなり、数多くの製品や技術で利用されています。MPEG-1規格の中で最もよく知られているのは、おそらくこの規格によって導入されたMP3音声フォーマットの最初のバージョンでしょう。
MPEG-1規格は、 ISO / IEC 11172として発行されており、「情報技術 - 最大約1.5 Mbit/sのデジタル記憶媒体用の動画および関連音声の符号化」というタイトルが付けられています。
この規格は、次の 5 つのパートで構成されています。[ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ]
ビデオ符号化における MPEG-1 の前身は、CCITT (現在はITU-Tとして知られている)が作成したH.261規格でした。H.261 で確立された基本アーキテクチャは、動き補償DCTハイブリッドビデオ符号化構造でした。[ 10 ] [ 11 ]これは、エンコーダでブロックベースの動き推定と、デコーダでエンコーダが選択した動きベクトルを使用した動き補償を備えた 16×16 サイズのマクロブロックを使用し、サイズ 8×8 の離散コサイン変換(DCT)を使用した残差差分符号化、スカラー量子化、およびエントロピー符号化のための可変長コード (ハフマンコードなど) を使用しています。[ 12 ] H.261 は最初の実用的なビデオ符号化規格であり、その設計要素はすべて MPEG-1 でも使用されました。[ 13 ]
成功した共同アプローチと、合同写真専門家グループとCCITTの電話専門家グループ(それぞれJPEG画像圧縮規格とH.261ビデオ会議規格の作成者)によって開発された圧縮技術をモデルとして、動画専門家グループ(MPEG)ワーキンググループは、1988年1月に、安田浩(日本電信電話)とレオナルド・キアリリオーネ(CSELT )のイニシアチブによって設立されました。[ 14 ] MPEGは、標準的なビデオおよびオーディオフォーマットの必要性に対応し、H.261をベースに、やや複雑なエンコード方式(例えば、モーションベクトルの高精度サポート)を使用してより良い品質を実現するために設立されました。[ 3 ] [ 15 ] [ 16 ]
Development of the MPEG-1 standard began in May 1988. Fourteen video and fourteen audio codec proposals were submitted by individual companies and institutions for evaluation. The codecs were extensively tested for computational complexity and subjective (human perceived) quality, at data rates of 1.5 Mbit/s. This specific bitrate was chosen for transmission over T-1/E-1 lines and as the approximate data rate of audio CDs.[17] The codecs that excelled in this testing were utilized as the basis for the standard and refined further, with additional features and other improvements being incorporated in the process.[18]
After 20 meetings of the full group in various cities around the world, and 4½ years of development and testing, the final standard (for parts 1–3) was approved in early November 1992 and published a few months later.[19] The reported completion date of the MPEG-1 standard varies greatly: a largely complete draft standard was produced in September 1990, and from that point on, only minor changes were introduced.[3] The draft standard was publicly available for purchase.[20] The standard was finished with the 6 November 1992 meeting.[21] The Berkeley Plateau Multimedia Research Group developed an MPEG-1 decoder in November 1992.[22] In July 1990, before the first draft of the MPEG-1 standard had even been written, work began on a second standard, MPEG-2,[23] intended to extend MPEG-1 technology to provide full broadcast-quality video (as per CCIR 601) at high bitrates (3–15 Mbit/s) and support for interlaced video.[24] Due in part to the similarity between the two codecs, the MPEG-2 standard includes full backwards compatibility with MPEG-1 video, so any MPEG-2 decoder can play MPEG-1 videos.[25]
特に、MPEG-1規格はビットストリームとデコーダ機能を非常に厳密に定義していますが、MPEG-1エンコーディングの実行方法は定義していません。ただし、ISO/IEC-11172-5には参照実装が提供されています。[ 2 ]これは、MPEG-1の符号化効率が使用するエンコーダによって大きく異なる可能性があり、一般的に新しいエンコーダは以前のエンコーダよりも大幅に優れたパフォーマンスを発揮することを意味します。[ 26 ] ISO/IEC 11172の最初の3つのパート(システム、ビデオ、オーディオ)は1993年8月に発行されました。[ 27 ]
MPEG-1は、その歴史が古いため、必須特許の保護対象外となっており、ライセンスを取得したり料金を支払ったりすることなく使用できます。[ 34 ] [ 35 ] [ 36 ] [ 37 ] [ 38 ] ISO 特許データベースには、ISO 11172 の特許 US 4,472,747 が 1 件記載されており、これは 2003 年に失効しました。[ 39 ] MPEG-1 規格のほぼ完成したドラフトは、1991 年 12 月 6 日までにISO CD 11172 [ 20 ]として公開されました。 [ 1 ] 2008 年 7 月の Kuro5hin の記事「MPEG-1、H.261、MPEG-2 の特許状況」[ 40 ]も、2008 年 8 月の gstreamer-devel [ 41 ]メーリングリストのスレッドも、有効期限切れでない MPEG-1 ビデオおよび MPEG-1 オーディオ レイヤ I/II 特許を 1 件も記載できませんでした。 2009年5月のwhatwgメーリングリストでの議論では、米国特許第5,214,678号がMPEG-1オーディオレイヤーIIをカバーしている可能性があると言及された。[ 42 ] 1990年に出願され、1993年に公開されたこの特許は現在失効している。[ 43 ]
MP3 の記事で述べたように、MPEG-1 オーディオ レイヤー III の実装に特許料を要求する企業があったため、「レイヤー III オーディオ」を備えた完全な MPEG-1 デコーダとエンコーダはロイヤリティフリーで実装できませんでした。 世界中の MP3 に関連するすべての特許は 2017 年 12 月 30 日に失効し、このフォーマットは完全に無料で使用できるようになりました。[ 44 ] 2017 年 4 月 23 日、フラウンホーファー IIS は、特定の MP3 関連の特許とソフトウェアについて、テクニカラーの MP3 ライセンス プログラムの料金を請求しなくなりました。[ 45 ]
以下の企業は、MPEG-1ビデオ(ISO/IEC-11172-2)フォーマットの特許を保有しているとISOに申告したが、これらの特許はすべてその後失効している。[ 46 ]
MPEG-1規格のパート1はシステムを対象としており、ISO/IEC-11172-1で定義されています。
MPEG-1システムは、エンコードされた音声、映像、その他のデータを標準ビットストリームに格納し、異なるコンテンツ間の同期を維持するために使用される論理的なレイアウトと方法を規定しています。このファイル形式は、比較的信頼性が高いと考えられるメディアへの格納と通信チャネルを介した伝送のために特別に設計されています。この規格で定義されているエラー保護は限定的であり、ビットストリーム内の小さなエラーでも目立った不具合を引き起こす可能性があります。
この構造は後にMPEGプログラムストリームと名付けられました。「MPEG-1システムの設計は、基本的にMPEG-2プログラムストリーム構造と同一です。」[ 48 ]この用語はより一般的で正確( MPEGトランスポートストリームと区別できる)であり、ここではこれを使用します。
プログラムストリーム(PS)は、複数のパケット化された基本ストリーム(通常は音声と映像のPESがそれぞれ1つずつ)を1つのストリームに結合し、同時配信と同期を維持することを目的としています。PSの構造は、マルチプレックス、またはコンテナフォーマットとして知られています。
PS にはプレゼンテーション タイム スタンプ (PTS) が存在し、オーディオとビデオの SCR 値間の避けられないずれ (タイム ベース補正) を修正します。PS ヘッダーの 90 kHz PTS 値は、デコーダにどのビデオ SCR 値がどのオーディオ SCR 値に対応するかを指示します。[ 49 ] PTS は、MPEG プログラムの一部を表示するタイミングを決定し、また、デコーダがバッファからデータを破棄できるタイミングを決定するためにも使用されます。[ 51 ]デコーダは、ビデオまたはオーディオのいずれかを、もう一方の対応するセグメントが到着してデコードできるようになるまで遅延させます。
PTSの処理は問題となる場合があります。デコーダは、連結(順次結合)された複数のプログラムストリームを受け入れる必要があります。これにより、ビデオの中間部分のPTS値がゼロにリセットされ、その後再び増加し始めます。このようなPTSのラップアラウンドのずれは、デコーダによる特別な処理が必要なタイミングの問題を引き起こす可能性があります。
さらに、Bフレームがあるため、デコードタイムスタンプ(DTS)も必要になります。ビデオストリームにBフレームがあると、隣接するフレームは順不同でエンコードおよびデコードする必要があります(フレームの順序が入れ替わります)。DTSはPTSとよく似ていますが、単に連続したフレームを処理するのではなく、デコーダーに次のBフレーム(フレームの種類については後述)をアンカー(PまたはI)フレームの前にデコードして表示するタイミングを指示する適切なタイムスタンプが含まれています。ビデオにBフレームがない場合、PTSとDTSの値は同じです。[ 52 ]
PSを生成するために、マルチプレクサは(2つ以上の)パケット化された基本ストリームをインターリーブします。これは、同時ストリームのパケットを同じチャネルで転送し、デコーダに正確に同時に到着することを保証するためです。これは時分割多重化の一例です。
各ストリームから各インターリーブセグメントにどれだけのデータが含まれるべきか(インターリーブのサイズ)を決定することは複雑ですが、重要な要件です。不適切なインターリーブは、受信側が他の同時ストリーム(ビデオなど)をデコードするのに十分なデータを受け取る前に、一方のストリーム(オーディオなど)を格納できる量よりも多く受け取るため、バッファのアンダーフローまたはオーバーフローを引き起こします。MPEGビデオバッファリング検証ツール(VBV)は、指定されたデータスループットレートとバッファサイズでデバイスが多重化PSをデコードできるかどうかを判断するのに役立ちます。[ 53 ]これにより、マルチプレクサとエンコーダにフィードバックが提供され、必要に応じてマルチプレックスサイズを変更したり、ビットレートを調整して準拠することができます。
MPEG-1規格のパート2はビデオを対象としており、ISO/IEC-11172-2で定義されています。この規格の設計はH.261に大きく影響を受けています。
MPEG-1ビデオは、知覚圧縮方式を利用して、ビデオストリームに必要なデータレートを大幅に削減します。人間の目が完全に知覚できない特定の周波数帯域や画像領域の情報を削減、あるいは完全に破棄します。また、ビデオに共通する時間的(時間経過に伴う)および空間的(画像全体にわたる)冗長性を活用することで、従来よりも優れたデータ圧縮を実現しています。(参照:ビデオ圧縮)

MPEG-1形式でビデオをエンコードする前に、色空間はY′CbCr(Y′=輝度、Cb=青彩度、Cr=赤彩度)に変換されます。輝度(明るさ、解像度)は彩度(色、色相、位相)とは別に格納され、さらに赤と青の成分に分けられます。
クロマも4:2:0にサブサンプリングされます。つまり、垂直方向と水平方向の解像度が半分になり、ビデオの輝度成分に使用されるサンプル数の 4 分の 1 になります。[ 2 ]一部の色成分に高解像度を使用するこの方法は、デジタルカラーカメラの画像キャプチャセンサーによく使用されるベイヤーパターンフィルタの概念と似ています。人間の目は色 (Cr および Cb 成分) よりも明るさ (Y 成分) のわずかな変化にはるかに敏感であるため、クロマのサブサンプリングは圧縮する必要のあるビデオデータの量を減らす非常に効果的な方法です。ただし、細かいディテール (空間的複雑度が高い) を持つビデオでは、これがクロマエイリアシングアーティファクトとして現れることがあります。他のデジタル圧縮アーティファクトと比較すると、この問題は迷惑の原因になることは非常にまれです。サブサンプリングのため、Y′CbCr 4:2:0 ビデオは通常、偶数次元 (水平方向と垂直方向で 2 で割り切れる) を使用して保存されます。
Y′CbCrカラーは、表記を簡略化するために非公式にYUVと呼ばれることが多いが、この用語はより正確にはやや異なるカラーフォーマットに適用される。同様に、輝度と彩度という用語は、(より正確な)ルマとクロマの代わりにしばしば使用される。
MPEG-1は最大4095×4095(12ビット)の解像度と最大100 Mbit/sのビットレートをサポートしています。[ 16 ]
MPEG-1 ビデオは、一般的にソース入力フォーマット(SIF) 解像度 352×240、352×288、または 320×240 で使用されます。これらの比較的低い解像度と 1.5 Mbit/s 未満のビットレートが組み合わさって、制約パラメータビットストリーム (CPB)と呼ばれるものを構成し、後に MPEG-2 で「低レベル」(LL) プロファイルと改名されました。これは、MPEG-1準拠とみなされるために、デコーダが処理できる最低限のビデオ仕様です。これは、品質とパフォーマンスのバランスを良好に保ち、当時比較的安価なハードウェアの使用を可能にするために選択されました。[ 3 ] [ 16 ]
MPEG-1には、さまざまな目的で使用される複数のフレーム/画像タイプがあります。最も重要でありながら最もシンプルなのがIフレームです。
「Iフレーム」は「イントラフレーム」の略で、他のフレームとは独立してデコードできることからそう呼ばれています。アニメーションで使用されるキーフレームと機能がやや似ているため、Iピクチャーまたはキーフレームとも呼ばれます。Iフレームは、ベースラインJPEG画像と実質的に同一であると考えることができます。[ 16 ]
MPEG-1ビデオの高速シークは、最も近いIフレームまでしかできません。ビデオをカットする場合、セグメント内の最初のIフレームより前の部分から再生を開始することはできません(少なくとも、計算負荷の高い再エンコードを行わない限りは)。そのため、編集アプリケーションではIフレームのみを含むMPEGビデオが使用されます。
Iフレームのみの圧縮は非常に高速ですが、ファイルサイズが非常に大きくなります。特定のビデオの時間的な複雑さにもよりますが、通常のエンコードされたMPEG-1ビデオの3倍(またはそれ以上)になります。[ 3 ] IフレームのみのMPEG-1ビデオはMJPEGビデオと非常によく似ています。そのため、ビットストリームの作成時にいくつかの制約(色空間と量子化行列)に従えば、一方のフォーマットから他方のフォーマットへの非常に高速で理論的にロスレス(実際には丸め誤差があります)な変換を行うことができます。[ 54 ]
Iフレーム間の長さは、グループオブピクチャ(GOP)サイズとして知られています。MPEG-1では、一般的に15~18のGOPサイズが使用されます。つまり、14~17個の非Iフレーム(PフレームとBフレームの組み合わせ)ごとに1つのIフレームが使用されます。より高度なエンコーダでは、GOPサイズは、事前に選択された最大制限まで動的に選択されます。[ 16 ]
復号の複雑化、デコーダのバッファサイズ、データエラー後の回復時間、シーク機能、およびハードウェアデコーダで最も一般的な低精度実装における IDCT エラーの蓄積により、I フレーム間の最大フレーム数に制限が設けられています ( IEEE -1180 を参照)。
「Pフレーム」は「予測フレーム」の略です。これらは、前方予測フレームまたはインターフレームとも呼ばれます(Bフレームもインターフレームです)。
Pフレームは、ビデオにおける時間的な冗長性を利用することで圧縮率を向上させるために存在します。Pフレームには、直前のフレーム(IフレームまたはPフレーム)との画像差分のみが格納されます(この参照フレームはアンカーフレームとも呼ばれます)。
The difference between a P-frame and its anchor frame is calculated using motion vectors on each macroblock of the frame (see below). Such motion vector data will be embedded in the P-frame for use by the decoder.
A P-frame can contain any number of intra-coded blocks (DCT and Quantized), in addition to any forward-predicted blocks (Motion Vectors).[55]
If a video drastically changes from one frame to the next (such as a cut), it is more efficient to encode it as an I-frame.
"B-frame" stands for "bidirectional-frame" or "bipredictive frame". They may also be known as backwards-predicted frames or B-pictures. B-frames are quite similar to P-frames, except they can make predictions using both the previous and future frames (i.e. two anchor frames).
It is therefore necessary for the player to first decode the next I- or P- anchor frame sequentially after the B-frame, before the B-frame can be decoded and displayed. This means decoding B-frames requires larger data buffers and causes an increased delay on both decoding and during encoding. This also necessitates the decoding time stamps (DTS) feature in the container/system stream (see above). As such, B-frames have long been subject of much controversy, they are often avoided in videos, and are sometimes not fully supported by hardware decoders.
No other frames are predicted from a B-frame. Because of this, a very low bitrate B-frame can be inserted, where needed, to help control the bitrate. If this was done with a P-frame, future P-frames would be predicted from it and would lower the quality of the entire sequence. However, similarly, the future P-frame must still encode all the changes between it and the previous I- or P- anchor frame. B-frames can also be beneficial in videos where the background behind an object is being revealed over several frames, or in fading transitions, such as scene changes.[3][16]
A B-frame can contain any number of intra-coded blocks and forward-predicted blocks, in addition to backwards-predicted, or bidirectionally predicted blocks.[16][55]
MPEG-1 has a unique frame type not found in later video standards. "D-frames" or DC-pictures are independently coded images (intra-frames) that have been encoded using DC transform coefficients only (AC coefficients are removed when encoding D-frames—see DCT below) and hence are very low quality. D-frames are never referenced by I-, P- or B- frames. D-frames are only used for fast previews of video, for instance when seeking through a video at high speed.[3]
Given moderately higher-performance decoding equipment, fast preview can be accomplished by decoding I-frames instead of D-frames. This provides higher quality previews, since I-frames contain AC coefficients as well as DC coefficients. If the encoder can assume that rapid I-frame decoding capability is available in decoders, it can save bits by not sending D-frames (thus improving compression of the video content). For this reason, D-frames are seldom actually used in MPEG-1 video encoding, and the D-frame feature has not been included in any later video coding standards.
MPEG-1 operates on video in a series of 8×8 blocks for quantization. However, to reduce the bit rate needed for motion vectors and because chroma (color) is subsampled by a factor of 4, each pair of (red and blue) chroma blocks corresponds to 4 different luma blocks. That is, for 4 luma blocks of size 8x8, there is one Cb block of 8x8 and one Cr block of 8x8. This set of 6 blocks, with a picture resolution of 16×16, is processed together and called a macroblock.
All of these 8x8 blocks are independently put through DCT and quantization.
A macroblock is the smallest independent unit of (color) video. Motion vectors (see below) operate solely at the macroblock level.
If the height or width of the video are not exact multiples of 16, full rows and full columns of macroblocks must still be encoded and decoded to fill out the picture (though the extra decoded pixels are not displayed).
To decrease the amount of temporal redundancy in a video, only blocks that change are updated, (up to the maximum GOP size). This is known as conditional replenishment. However, this is not very effective by itself. Movement of the objects, and/or the camera may result in large portions of the frame needing to be updated, even though only the position of the previously encoded objects has changed. Through motion estimation, the encoder can compensate for this movement and remove a large amount of redundant information.
The encoder compares the current frame with adjacent parts of the video from the anchor frame (previous I- or P- frame) in a diamond pattern, up to a (encoder-specific) predefined radius limit from the area of the current macroblock. If a match is found, only the direction and distance (i.e. the vector of the motion) from the previous video area to the current macroblock need to be encoded into the inter-frame (P- or B- frame). The reverse of this process, performed by the decoder to reconstruct the picture, is called motion compensation.
しかし、予測されたマクロブロックが現在の画像と完全に一致することは稀です。推定された一致領域と実際のフレーム/マクロブロックとの差は、予測誤差と呼ばれます。予測誤差が大きいほど、フレームに追加でエンコードする必要のあるデータ量が増えます。効率的なビデオ圧縮のためには、エンコーダが動き推定を効果的かつ正確に実行できることが非常に重要です。
モーションベクトルは、画面上の2つの領域間の距離をピクセル数(ペルとも呼ばれる)に基づいて記録します。MPEG-1ビデオでは、モーションベクトル(MV)の精度として、1ピクセルの半分、つまりハーフペルを使用します。MVの精度が高いほど、マッチングの精度が高くなり、圧縮効率も向上します。ただし、高精度化にはトレードオフがあります。MVの精度が高いほど、MVを表すために必要なデータ量が増加します。これは、各MVごとにフレーム内に格納する必要のある数値が増えるためです。また、エンコーダとデコーダの両方でマクロブロックの補間レベルを上げる必要があるため、符号化の複雑さが増します。さらに、MVの精度が高くなるにつれて、得られる効果は減少します(最小限にとどまります)。ハーフペル精度は、当時としては理想的なトレードオフとして選択されました。(参照:qpel)
隣接するマクロブロックは動きベクトルが非常に似ている可能性が高いため、この冗長な情報はDPCMエンコードして保存することで非常に効率的に圧縮できます。最終的なビットストリームには、各マクロブロックの動きベクトル間の(より小さな)差分のみを保存すれば十分です。
Pフレームは、前のアンカーフレームを基準として、マクロブロックごとに1つのモーションベクトルを持ちます。一方、Bフレームは、前のアンカーフレームからの1つと、未来のアンカーフレームからの1つの2つのモーションベクトルを使用できます。[ 55 ]
部分的なマクロブロック、およびマクロブロックの境界に正確に一致しないビデオにエンコードされた黒い境界線/バーは、動き予測に悪影響を及ぼします。ブロックのパディング/境界情報により、マクロブロックがビデオの他の領域と正確に一致しなくなるため、画面境界に沿って存在する数十個の部分的なマクロブロックそれぞれに対して、はるかに大きな予測誤差情報をエンコードする必要があります。また、ブロック内に大きな/鮮明な画像コントラストがある場合、DCTエンコードと量子化(下記参照)の効果は著しく低下します。
さらに深刻な問題は、画像が(通常は)黒に変化する箇所に、大きなランダムなエッジノイズが含まれるマクロブロックが存在する場合です。上記の問題はすべてエッジノイズにも当てはまります。加えて、ランダム性が加わることで、大幅な圧縮は不可能になります。これらの影響すべてが、ビデオの品質を著しく低下させ(またはビットレートを著しく増加させ)ます。
各8×8ブロックは、まず順方向離散コサイン変換(FDCT)を適用し、次に量子化処理を適用することによって符号化されます。FDCT処理自体は理論的にはロスレスであり、逆DCT(IDCT)を適用することで元の値(量子化誤差や丸め誤差がない場合)を再現できます。実際には、エンコーダでの量子化(次節で説明)とデコーダでのIDCT近似誤差の両方によって、(場合によっては大きな)丸め誤差が発生します。デコーダのIDCT近似の最小許容精度は、ISO/IEC 23002-1で規定されています。(2006年以前は、IEEE 1180-1990で規定されていました。)
FDCT処理では、非圧縮の8×8ピクセル値(輝度値または色差値)のブロックを、周波数係数値の8×8インデックス配列に変換します。これらの係数のうちの1つは、(統計的に分散が大きい)「DC係数」であり、8×8ブロック全体の平均値を表します。残りの63個の係数は、統計的に分散が小さい「AC係数」であり、それぞれ正または負の値を取り、DC係数で表される平坦なブロック値からの正弦波状の偏差を表します。
エンコードされた8×8 FDCTブロックの例:
DC係数の値はブロック間で統計的に相関しているため、DPCM符号化を用いて圧縮されます。最終的なビットストリームでは、各DC値と、その左隣のブロックのDC係数の値との差(小さい方)のみを表現すれば十分です。
さらに、DCTを適用することによって行われる周波数変換は、統計的デコヒーレンス機能を提供し、量子化を適用する前に信号をより少ない高振幅値に効率的に集中させます(下記参照)。
量子化とは、本質的には、信号をより大きなステップサイズで割り、整数値に丸める(つまり、最も近い倍数を見つけて、余りを捨てる)ことによって、信号の精度を低下させるプロセスである。
フレームレベル量子化器は、0から31までの数値(エンコーダーは通常、極端な値の一部を省略または無効化する)で、特定のフレームからどれだけの情報が削除されるかを決定します。フレームレベル量子化器は、通常、ユーザーが指定したビットレートを維持するためにエンコーダーによって動的に選択されるか、または(はるかにまれですが)ユーザーによって直接指定されます。
「量子化行列」とは、0から255までの64個の数値からなる列で、エンコーダーに対して各視覚情報の相対的な重要度(重要でない度)を示します。行列内の各数値は、ビデオ画像の特定の周波数成分に対応しています。
量子化行列の例:
量子化は、DCTブロックの64個の周波数値それぞれをフレームレベルの量子化器で割り、次に量子化行列の対応する値で割ることによって行われます。最後に、結果は切り捨てられます。これにより、画像の一部の周波数成分の情報が大幅に減少するか、完全に失われます。通常、高周波情報は視覚的に重要度が低いため、高周波はより強く量子化されます(大幅に減少します)。MPEG-1では、実際には2つの別々の量子化行列を使用します。1つはブロック内(Iブロック)用、もう1つはブロック間(PブロックとBブロック)用なので、異なるブロックタイプの量子化を独立して行うことができ、より効果的です。[ 3 ]
この量子化処理によって、通常、 AC係数のかなりの数がゼロに削減され(スパースデータと呼ばれる)、次のステップでエントロピー符号化(ロスレス圧縮)によってより効率的に圧縮できるようになります。
量子化されたDCTブロックの例:
量子化は大量のデータを削除するため、MPEG-1ビデオエンコードにおける主要な非可逆処理ステップです。また、ブロックノイズ、カラーバンディング、ノイズ、リンギング、変色など、 MPEG-1ビデオ圧縮におけるほとんどのアーティファクトの主な原因でもあります。これは、ビデオが不十分なビットレートでエンコードされ、エンコーダがビデオの大部分で高フレームレベルの量子化器(強力な量子化)を使用せざるを得ない場合に発生します。
MPEG-1 ビデオのエンコードのいくつかのステップはロスレスであり、デコード時に逆の手順を行うことで、まったく同じ (元の) 値を生成します。これらのロスレス データ圧縮ステップは、ノイズを追加したり、その他の方法でコンテンツを変更したりしないため (量子化とは異なり)、ノイズレス コーディングと呼ばれることもあります。[ 47 ]ロスレス圧縮は可能な限り冗長性を排除することを目的としているため、情報理論の分野ではエントロピー コーディングとして知られています。
量子化されたDCTブロックの係数は、右下に向かうにつれてゼロに近づく傾向があります。DCTブロックを左上からジグザグに走査し、ランレングス符号化技術を用いることで、最大の圧縮率を実現できます。
DC係数とモーションベクトルはDPCMエンコードされている。
ランレングス符号化(RLE)は、繰り返し部分を圧縮するシンプルな方法です。連続する文字列は、長さに関係なく、繰り返される値とその回数を示す数バイトのデータに置き換えることができます。例えば、「ファイブナイン」と言われた場合、99999という数字を指していることが分かります。
RLEは量子化後に特に効果を発揮します。これは、AC係数のかなりの部分がゼロ(スパースデータと呼ばれる)となり、わずか数バイトで表現できるためです。このデータは、ランレングスとラン終了文字を符号化した特殊な2次元ハフマンテーブルに格納されます。
ハフマン符号化は、エントロピー符号化の非常に一般的で比較的単純な方法であり、MPEG-1 ビデオでデータ サイズを削減するために使用されます。データは分析され、頻繁に繰り返される文字列が見つかります。これらの文字列は特別なテーブルに格納され、最も頻繁に繰り返されるデータには最短のコードが割り当てられます。これにより、この形式の圧縮でデータを可能な限り小さく保つことができます。[ 47 ]テーブルが構築されると、データ内のこれらの文字列は、テーブルの適切なエントリを参照する (はるかに短い) コードに置き換えられます。デコーダは、このプロセスを逆にして元のデータを生成します。
これはビデオエンコードプロセスの最終段階であり、ハフマン符号化の結果はMPEG-1ビデオの「ビットストリーム」として知られています。
Iフレームはフレーム内に完全なフレーム情報を格納するため、ランダムアクセスに適しています。Pフレームは、前のフレーム(IまたはP)に対する動きベクトルを使用して圧縮を提供します。Bフレームは最大の圧縮を提供しますが、計算には前のフレームと次のフレームの両方が必要です。したがって、Bフレームの処理には、デコード側でより多くのバッファが必要です。これらの要素に基づいて、ピクチャグループ(GOP)の構成を選択する必要があります。Iフレームのみのシーケンスは圧縮率が最も低いですが、ランダムアクセス、FF/FR、および編集に役立ちます。IフレームとPフレームのシーケンスは中程度の圧縮を提供しますが、ある程度のランダムアクセスとFF/FR機能を追加します。I、P、およびBフレームのシーケンスは非常に高い圧縮を提供しますが、エンコード/デコードの遅延も大幅に増加します。したがって、このような構成は、ビデオ電話やビデオ会議アプリケーションには適していません。
Iフレームの標準的なデータレートは1ピクセルあたり1ビット、Pフレームは1ピクセルあたり0.1ビット、Bフレームは1ピクセルあたり0.015ビットである。[ 56 ]
MPEG-1規格のパート3は音声に関するもので、ISO/IEC-11172-3で規定されている。
MPEG-1オーディオは、心理音響学を利用して、オーディオストリームに必要なデータレートを大幅に削減します。人間の耳が聞き取れないと推測されるオーディオの一部を削減または完全に破棄します。これは、それらの音が人間の耳の感度が限られている周波数にあるか、他の(通常はより大きな)音によってマスキングされているためです。 [ 57 ]
チャネルエンコードモード:
MPEG-1オーディオは3つのレイヤーに分かれています。上位レイヤーは計算がより複雑で、一般的に前のレイヤーよりも低いビットレートでより効率的です。[ 16 ]上位レイヤーは下位レイヤーで実装された技術を再利用するため、レイヤーは部分的に下位互換性があります。「完全な」レイヤーIIデコーダーはレイヤーIオーディオも再生できますが、レイヤーIIIオーディオは再生できません。ただし、すべての上位レベルのプレーヤーが「完全」であるとは限りません。[ 57 ]
MPEG-1 オーディオ レイヤー I は、MPEG-1 オーディオ レイヤー II の簡略版です。[ 18 ]レイヤー I は、遅延を極力抑え、解像度を高めるために、より小さな 384 サンプルのフレーム サイズを使用しています。[ 26 ]これは、テレビ会議やスタジオ編集などのアプリケーションに有利です。レイヤー II よりも複雑さが低いため、1990 年頃に利用可能だったハードウェアでリアルタイムエンコードを容易にすることができます。[ 47 ]
レイヤー I は当時限定的にしか採用されず、最も有名なのは、フィリップスの廃止されたデジタルコンパクトカセットで384 kbit/s のビットレートで使用されたことです 。[ 2 ]導入以来、デジタル処理の性能が大幅に向上したため、レイヤー I はすぐに不要になり、時代遅れになりました。
レイヤーIの音声ファイルは通常「.mp1」または場合によっては「.m1a」という拡張子を使用します。
MPEG-1 Audio Layer II(MP2の最初のバージョンで、非公式にはMUSICAMと呼ばれることが多い)[ 57 ]は、ステレオサウンドで約192kbit/sの高音質を提供するように設計された非可逆オーディオフォーマットです 。[ 59 ] MP2オーディオのデコードは、MP3、AACなどに比べて計算が簡単です。
MPEG-1 Audio Layer II は、デジタルオーディオ放送の開発のための汎ヨーロッパ政府間研究開発イニシアチブ EUREKA 147 の一環として、 Centre commun d'études de télévision et télécommunications (CCETT)、Philips、およびInstitut für Rundfunktechnik (IRT/CNET) [ 16 ] [ 18 ] [ 60 ]によって開発されたMUSICAM ( Masking pattern adapted Universal Subband Integrated Coding And Multiplexing ) オーディオコーデックから派生したものです。
MPEG-1 Audio の主要な機能のほとんどは、フィルタバンク、時間領域処理、オーディオフレームサイズなどを含め、MUSICAM から直接継承されました。しかし、改良が加えられ、実際の MUSICAM アルゴリズムは最終的な MPEG-1 Audio Layer II 規格では使用されませんでした。レイヤー II を指すのに MUSICAM という用語が広く使われているのは、技術的にも法的にも全く不適切であり、推奨されません。[ 57 ]
MP2 は時間領域エンコーダです。時間周波数マッピングには、低遅延の 32 サブバンド多相フィルタバンクを使用し、エイリアシングを防ぐために範囲が重なり合っています (つまり多相です)。 [ 61 ]心理音響モデルは、聴覚マスキング、同時マスキング効果、および絶対聴力閾値(ATH)の原理に基づいています。レイヤー II フレームのサイズは 1152 サンプル (係数) に固定されています。
時間領域とは、音声波形の短い離散的なサンプル/チャンクに対して分析と量子化を行う方法を指します。この方式では、エンコード前に分析されるサンプル数が少ないため、遅延が少なくなります。一方、周波数領域エンコード(MP3など)では、エンコードされた音声を変換して出力する方法を決定する前に、はるかに多くのサンプルを分析する必要があります。また、この方式は、複雑でランダムな過渡的なインパルス(打楽器や拍手など)に対しても高いパフォーマンスを発揮し、プリエコーなどのアーティファクトを回避できます。
32 サブバンドフィルタバンクは、オーディオの等幅の周波数バンド/セグメントごとに32 個の振幅係数 を返します。これは、オーディオのサンプリング周波数に応じて約 700 Hz の幅になります。エンコーダは、心理音響モデルを使用して、どのサブバンドに重要度の低いオーディオ情報が含まれているかを判断し、量子化が聞こえない、または少なくともはるかに目立たない場所を決定します。[ 47 ]

心理音響モデルは、1024 ポイントの高速フーリエ変換(FFT) を使用して適用されます。フレームごとに 1152 個のサンプルのうち、周波数範囲の上限と下限の 64 個のサンプルはこの分析では無視されます。これらは結果を変えるほど重要ではないと考えられます。心理音響モデルは、経験的に決定されたマスキング モデルを使用して、どのサブバンドがマスキング閾値に大きく寄与するか、また、知覚されずに各サブバンドがどれだけの量子化ノイズを含むことができるかを決定します。絶対聴覚閾値(ATH)未満の音はすべて完全に破棄されます。その後、使用可能なビットが各サブバンドに適切に割り当てられます。[ 57 ] [ 61 ]
一般的に、サブバンドは、隣接する(つまり周波数が近い)サブバンドの大きな音(係数が大きい)よりも、小さな音(係数が小さい)を含む場合、重要性が低くなります。また、「ノイズ」成分は、一般的に「トーン」成分よりもマスキング効果が大きくなります。[ 60 ]
重要度の低いサブバンドは量子化によって精度が低下します。これは基本的に周波数範囲(係数の振幅)を圧縮し、つまりノイズフロアを上げることを意味します。次に、デコーダが各サブバンドを適切な周波数範囲に再拡張するために使用する増幅係数を計算します。[ 62 ] [ 63 ]
レイヤー II では、オプションで強度ステレオコーディング、つまりジョイント ステレオの一種を使用することもできます。これは、 両チャンネルの 6 kHz を超える周波数が 1 つの単一 (モノラル) チャンネルに結合され、ダウンミックスされることを意味しますが、各チャンネルの相対強度 (音量、振幅) に関する「サイド チャンネル」情報は保持され、ビット ストリームに個別にエンコードされます。再生時には、単一チャンネルが左右のスピーカーから再生され、強度情報が各チャンネルに適用されてステレオ サウンドの錯覚が生まれます。[ 47 ] [ 60 ]この知覚トリックは「ステレオ無関係性」として知られています。これにより、忠実度をほとんど知覚できないままオーディオ ビットレートをさらに削減できますが、非常に高品質 (透明) のオーディオを提供しないため、一般的には高ビットレートでは使用されません。[ 47 ] [ 61 ] [ 64 ] [ 65 ]
専門家による主観的なオーディオテストでは、これまで実施された中で最も厳しい条件下で、MP2 は最も初期の参照実装を使用して16 ビット 44.1 kHz CD オーディオに対して 256 kbit/s の透明なオーディオ圧縮を提供することが示されています (より新しいエンコーダではおそらくさらに優れたパフォーマンスを発揮するはずです)。 [ 2 ] [ 60 ] [ 61 ] [ 66 ] CD オーディオの (およそ) 1:6 の圧縮率は、知覚エントロピーの推定上限である1:8 をわずかに超える値に非常に近いため、特に印象的です。[ 67 ] [ 68 ]知覚可能な情報の一部を破棄せずに、これより高い圧縮率を達成することは単純に不可能です。
MP2 は、カスタネット、交響楽団、男性と女性の声、打楽器の音 (トライアングル、グロッケンシュピール、観客の拍手) などの特に複雑で高エネルギーの過渡現象 (インパルス) といった重要なオーディオ素材において、特に高いオーディオ コーディング パフォーマンスを発揮するため、依然として好まれる非可逆オーディオ コーディング規格です。[ 26 ]最近のテストでは、MPEG マルチチャンネル(MP2 に基づく) は、下位互換性のために劣ったマトリックス モードによって妥協しているにもかかわらず[ 2 ] [ 61 ] 、 Dolby Digital (AC-3) やAdvanced Audio Coding (AAC)などの、はるかに新しいオーディオ コーデックよりもわずかに低い評価となっています(ほとんどの場合、誤差の範囲内であり、観客の拍手などの場合では大幅に優れています)。[ 69 ] [ 70 ]これが、MP2 オーディオが広く使用され続けている理由の 1 つです。しかし、MPEG-2 AACステレオ検証テストでは全く異なる結論が出され、AACは半分のビットレートでMP2よりも優れたパフォーマンスを発揮することが示されました。[ 71 ]この以前のテストと後のテストの両方との相違の理由は明らかではありませんが、奇妙なことに、後者のテストには拍手のサンプルが著しく欠落しています。
レイヤーIIオーディオファイルは通常「.mp2」または場合によっては「.m2a」という拡張子を使用します。
MPEG-1 Audio Layer III( MP3の最初のバージョン)は、シングルチャネル(BRI)ISDNリンクを介したモノラル音声で約64kbit /s、ステレオ音声で128kbit/sの許容可能な品質を提供するように設計された、非可逆圧縮のオーディオフォーマットです。

MPEG-1オーディオレイヤIIIは、フラウンホーファー研究所がデジタルオーディオ放送開発のための汎ヨーロッパ政府間研究開発イニシアチブであるEUREKA 147の一環として開発した適応スペクトル知覚エントロピー符号化(ASPEC)コーデックから派生したものです。ASPECはレイヤIIモデル(フレームサイズ、フィルタバンク、FFTなど)に適合するように改良され、レイヤIIIとなりました。[ 18 ]
ASPEC自体は、EF Schroederによる多重適応スペクトルオーディオコーディング(MSC) 、エアランゲン・ニュルンベルク大学のKarlheinz Brandenburgによる博士論文である周波数領域における最適コーディング(OCF)、AT&Tベル研究所のJD Johnstonによる知覚変換コーディング(PXFM)、およびInstitut für Rundfunktechnik (IRT/CNET)のY. MahieuxとJ. Petitによるオーディオ信号の変換コーディングに基づいていた。[ 72 ]
MP3は周波数領域オーディオ変換エンコーダーです。下位レイヤーの機能の一部を利用するものの、MP3はMP2とはかなり異なります。
MP3はMP2と同様に1152サンプルで動作しますが、周波数領域(MDCT)処理と量子化を効果的に行う前に、分析のために複数のフレームを取得する必要があります。可変ビットレート(VBR)エンコーディングを可能にするためにビットバッファを使用し、1152サンプルサイズの出力フレームを維持しながら、可変数のサンプルを出力します。これにより、出力までの遅延が大幅に長くなり、編集やその他の処理が必要なスタジオアプリケーションにはMP3は不向きであると考えられています。[ 61 ]
MP3は32サブバンドのポリフェーズフィルタバンクの恩恵を受けず、代わりに各出力で18ポイントMDCT変換を使用してデータを576の周波数成分に分割し、周波数領域で処理します。[ 60 ]この追加の粒度により、MP3はより細かい心理音響モデルを持ち、各バンドに適切な量子化をより慎重に適用できるため、低ビットレートのパフォーマンスが大幅に向上します。
周波数領域処理にもいくつかの制限があり、レイヤー II よりも 12 倍または 36倍も時間分解能が悪くなります。打楽器イベントなどの過渡的な音や、より大きなウィンドウに広がるその他の高周波イベントにより、量子化アーティファクトが発生します。その結果、可聴のスミアリングとプリエコーが発生します。[ 61 ] MP3 はプリエコー検出ルーチンと VBR エンコーディングを使用しており、困難なパッセージで一時的にビットレートを上げることで、この影響を軽減しようとしています。また、通常の 36 サンプル量子化ウィンドウと、代わりに 3 ×短い 12 サンプルウィンドウを切り替えることで、量子化アーティファクトの時間的長さを短縮することもできます。[ 61 ]しかし、最も深刻なアーティファクトを回避するのに十分な時間応答を実現するためにかなり小さなウィンドウサイズを選択することで、MP3 は静止したトーン成分の周波数領域圧縮において効率が著しく低下します。
レイヤーIIに適合させるために、ハイブリッドな時間領域(フィルタバンク)/周波数領域(MDCT)モデルの使用を強制されると、処理時間が無駄になり、エイリアシングアーティファクトが発生するため音質が損なわれます。MP3には、この問題を隠蔽するためにエイリアシングキャンセルステージがありますが、その結果、周波数領域のエネルギーが生成され、オーディオにエンコードする必要があります。このエネルギーは、ほとんどの人の聴力が限られている周波数帯域の上限に押し上げられ、それによって生じる歪みが聞こえにくくなることを期待しています。
レイヤーIIの1024ポイントFFTでは、すべてのサンプルを完全にカバーすることはできず、量子化係数を決定する必要があるMP3サブバンドがいくつか省略されてしまいます。そこでMP3では、スペクトル推定にFFT解析を2回実行し、全体および個々のマスキング閾値を計算します。これにより、1152サンプルすべてをカバーできます。2つのパスのうち、最も処理が難しい音声を含む、よりクリティカルなパスから得られた全体マスキング閾値レベルが使用されます。
レイヤーIIの強度エンコード方式によるジョイントステレオに加え、MP3ではミドル/サイド(mid/side、m/s、MS、マトリックス)ジョイントステレオも使用できます。ミッド/サイドステレオでは、両チャンネルの特定の周波数帯域が1つのモノラルチャンネル(middle、mid、L+R)に統合され、左右チャンネル間の音の差は別のチャンネル(side、LR)として保存されます。強度ステレオとは異なり、この処理では音声情報が破棄されることはありません。ただし、量子化と組み合わせると、アーティファクトが強調される可能性があります。
左右チャンネルの差が小さい場合、サイドチャンネルも小さくなり、最大で50%のビットレート削減とそれに伴う音質の向上が実現します。左右の差が大きい場合は、ミッド/サイド結合ステレオではメリットがないため、標準(左右分離)ステレオエンコーディングの方が好ましい場合があります。MP3エンコーダは、フレームごとにm/sステレオとフルステレオを切り替えることができます。[ 60 ] [ 65 ] [ 73 ]
レイヤー I および II とは異なり、MP3 は可変長ハフマン符号化(知覚後) を使用して、品質をさらに損なうことなくビットレートをさらに削減します。[ 57 ] [ 61 ]
MP3のよりきめ細かく選択的な量子化は、低ビットレートではMP2よりも明らかに優れていることが証明されています。約15%低いビットレートで、Layer IIとほぼ同等のオーディオ品質を提供できます。[ 70 ] [ 71 ] 128 kbit/sはMP3の「スイートスポット」と考えられています。つまり、ほとんどの音楽で一般的に許容できる品質のステレオサウンドを提供し、ビットレートをさらに上げても品質の向上は減少します。また、MP3は、忠実な再生が不可能なほど低いビットレートで両方を使用した場合、Layer IIよりも煩わしくないアーティファクトを示すと考えられています。
レイヤーIIIの音声ファイルは拡張子「.mp3」を使用します。
MPEG -2規格には、MPEG-1オーディオへのいくつかの拡張機能が含まれています。[ 61 ]これらはMPEG-2 BC(MPEG-1オーディオとの下位互換性)として知られています。[ 74 ] [ 75 ] [ 76 ] [ 77 ] MPEG-2オーディオはISO/IEC 13818-3で定義されています。
これらのサンプリングレートは、MPEG-1 Audio 用に最初に定義されたもののちょうど半分です。これらは、より低いビットレートでオーディオをエンコードする際に、より高品質のサウンドを維持するために導入されました。[ 25 ]さらに低いビットレートが導入されたのは、テストの結果、MPEG-1 Audio が既存の ( 1994年頃) 非常に低いビットレート (つまり音声) オーディオ コーデックよりも高い品質を提供できることがわかったためです。[ 78 ]
MPEG-1規格のパート4は適合性試験を対象としており、ISO/IEC-11172-4で規定されている。
適合性:適合性をテストするための手順。
MPEG-1オーディオおよびビデオデコーダの適合性、ならびにエンコーダによって生成されるビットストリームをテストするための2組のガイドラインと参照ビットストリームを提供します。[ 16 ] [ 23 ]
MPEG-1規格のパート5には参照ソフトウェアが含まれており、ISO/IEC TR 11172-5で定義されています。
シミュレーション:参考ソフトウェア。
音声と映像のエンコードとデコード、および多重化と逆多重化のためのC言語リファレンスコード。 [ 16 ] [ 23 ]
.mpg は、MPEG-1 またはMPEG-2 の音声および映像圧縮に使用されるファイル拡張子の 1 つです。MPEG-1 Part 2 の映像は現在ではほとんど見られず、この拡張子は通常、 MPEG プログラム ストリーム(MPEG-1 および MPEG-2 で定義) またはMPEG トランスポート ストリーム(MPEG-2 で定義) を指します。.m2ts などの他の接尾辞も存在し、正確なコンテナ (この場合は MPEG-2 TS) を指定しますが、これは MPEG-1 メディアとはほとんど関係がありません。
.mp3 は、 MP3オーディオ (通常は MPEG-1 オーディオ、場合によっては MPEG-2 オーディオ)を含むファイルで最も一般的な拡張子です。MP3 ファイルは通常、生のオーディオの非包含ストリームです。MP3 ファイルをタグ付けする従来の方法は、各フレームの「ガベージ」セグメントにデータを書き込むことです。これにより、メディア情報は保持されますが、プレーヤーによって破棄されます。これは、生の .AAC ファイルのタグ付け方法と多くの点で似ています (ただし、iTunesなどでは、現在ではあまりサポートされていません)。
適用は可能ですが、.mpg拡張子は通常、生のAACファイルやMPEG-2 Part 7コンテナ内のAACファイルを付加するものではありません。.aac拡張子は通常、これらの音声ファイルを示します。
{{cite web}}: CS1 maint: numeric names: authors list (link). では、MPEG ドラフトのようなドキュメントはどうやって入手するのですか? A. MPEG は ISO 規格のドラフトです。その
[
sic
]
正式名称は ISO CD 11172 です。[...] 各国の標準化団体 (例えば、米国の ANSI) から注文するか、OMNICOM のような会社から購入できます [...]
{{cite web}}: CS1 maint: 数値名: 著者リスト (リンク)に取得。11172を検索。
{{cite web}}: CS1 maint: bot: 元の URL の状態が不明です (リンク){{cite web}}: CS1 maint: 複数の名前: 著者リスト (リンク)