私の連絡先情報
郵便メール:
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
注: オーディオ H264 ビデオ エンコーディングを学習するには、ゴールデン サークル学習メソッド (ゴールデン サークル ルールとは? -> モデル ゴールデン サークル ルール、この記事では「なぜ-何を」を使用します) を参照します。このシリーズの記事では、ビデオ エンコーディングの知識体系と実践的な方法を理解することに重点を置き、理論的な側面からオーディオとビデオの概念の起源とさまざまな概念間のつながりについて詳しく説明します。それがどのように起こるのか、なぜそうなるのかを知ってください。同時に、知識システムの確立にも重点が置かれています。
この記事では、主に H.264 データ圧縮のプロセスと関連する概念について説明します。 H.264 データ圧縮の目的は 1 つだけです。圧縮、圧縮、再圧縮を繰り返して、画質を可能な限り確保しながらビデオ データのサイズを削減することです。したがって、H.264 データ圧縮を学ぶ前に、まず次のことを理解する必要があります。このプロセスには多くの概念や方法が関係していますが、すべての方法とプロセスは圧縮という目的のためのものです。
H.264 のデータ圧縮プロセスは主に、マクロブロック分割とサブブロック分割 -> フレーム グループ化 -> フレーム予測 -> 整数離散コサイン変換 (DCT) -> CABAC 圧縮という主要なステップに要約されます。具体的な拡張手順は以下の通りです。
マクロ ブロック: ビデオ フレームが H264 エンコーダのバッファに送信されると、エンコーダはマクロ ブロックを各ピクチャに分割することがわかります。 デフォルトでは、H264 エンコードは 16X16 ピクセルの領域をマクロブロックとして使用します (H265 は 64X64 ピクセルの領域を使用します)。ビデオのフレームをマクロブロックに分割する効果は次のとおりです。
同時に、上の図では、16X16 ピクセルのマクロ ブロックを実際に小さなサブブロックに分割できます。サブブロックのサイズは 8X16、16X8、8X8、4X8、8X4、4X4 と非常に柔軟です。再度サブブロックに分割するのは、このデータを非常に小さなデータで記録するためです。マクロブロックが分割された後、H264 エンコーダ キャッシュ内のすべてのピクチャをグループ化できます。
マクロブロックとサブブロックの分割により、ビデオ コーディングでビデオ コンテンツをより正確に分析および処理し、より効率的なデータ圧縮を実現できるようになります。ビデオ フレームはサイズ 16x16 ピクセルのマクロブロックに分割されます。これらのマクロブロックは、画像コンテンツの複雑さに対応するために、8x8、8x4、4x8 などの小さなブロックにさらに分割できます。
フレームのグループ化 (GOP 構造) は、イントラ予測とインター予測の前に定義されます。ビデオ エンコード プロセスでは、フレーム グループ化の設定が最初のステップの 1 つであり、ビデオ フレームの構成とエンコード順序を決定します。フレーム グループ化の主な目的は、データの冗長性を減らすことです。ビデオ データの冗長性は主に 2 つのカテゴリに分類されます。
H264 フレーム グループ化の実行手順:
グループ化が完了すると、フレーム予測圧縮の問題が解決され始めます。
この部分には主にフレーム内予測とフレーム間予測が含まれます。フレーム内予測は、静止画像フレームを圧縮し、9 つの異なるモードを通じて各マクロブロックの画素値を予測し、元の画像との残差値を計算します。およびフレーム間予測 (動き推定と動き補償): P フレームと B フレームについて、動き推定を通じて前のフレームまたは 2 つのフレーム間の動きベクトルを見つけ、動き補償予測を実行し、予測画像を生成し、残差を計算します。現在のフレーム。
注: イントラ予測とインター予測の順序は、符号化されたフレームのタイプと符号化戦略によって異なります。実際のビデオ エンコーダの実装では、これらの手順はエンコード プロセスの一部であり、エンコーダによって自動的に処理されます。誰が最初にそれを処理する必要はありません。
フレーム内予測圧縮: 空間データの冗長性の問題を解決します。 空域冗長データとは、主に人間の目には影響を与えない色や明るさなどの情報を削除することで圧縮したものです。フレーム内予測で使用される原理は、人間の目は、低周波の明るさには非常に敏感ですが、高周波の明るさにはあまり敏感ではないということです。(16X16 のマクロブロック サイズとして理解できます。H264 では、上位 16 ピクセルと左端の 16 ピクセルを通じて他のデータが予測されるため、本来 16*16=256 必要なピクセル表現情報が 16+ に変換できます。 16-1 = 情報を表す 31 ピクセル)。
フレーム間予測圧縮 (動き推定と補償): 時間領域データの冗長性の問題を解決します。 ビデオには複数のフレームが時系列に直線的に配置されており、フレーム間の相関性が非常に高いため、フレーム間に削除できるデータが大量にあります。圧縮後は、Iフレーム、Pフレーム、Bフレームの3種類に分けられます。(説明:動き推定と動き補償の原理:H264エンコーダは、まずバッファヘッダから2フレーム分のビデオデータを順番に取り出し、マクロブロックスキャンを実行します。ピクチャの1つにオブジェクトが存在することが判明すると、このとき、別の画像内でオブジェクトが見つかった場合は、その近くの位置を検索します。以下の画像は、検索後のビリヤード ボールの位置です。。
P フレームと B フレームでは、動き推定により前フレームまたは 2 フレーム間の動きベクトルを求め、動き補償予測を行って予測画像を生成し、現フレームとの残差を計算します。
このステップでは、主に予測残差に対して DCT 変換を実行し、空間相関を周波数領域の無関係なデータに変換してから量子化します。 DCT は主にデータまたは画像の圧縮に使用され、空間相関を周波数領域の無関係なデータに変換してから量子化します。(説明: DCT 変換は画像のより重要な情報を収集し、重要でない周波数領域領域と係数を直接切り取ることができます)。
概要: フレームデータ圧縮の順序は、最初にフレーム間およびフレーム内圧縮を実行し、次に残差データに対して DCT 変換を実行してデータの相関を除去し、さらにデータを圧縮します。次のように:
CABAC 圧縮は可逆圧縮テクノロジであり、エントロピー コーディングの方法です。 CABAC が圧縮および符号化される場合、高周波データはショート コードとして定義され、低周波データはロング コードとして定義されます。この方法は VLC 方法よりも効率的です。 CABAC (Context-Adaptive Binary Arithmeticcoding) エントロピー コーディング方式を使用して、量子化された係数をさらに圧縮し、圧縮効率を向上させます。ここで、前の 4 つのステップで処理されたデータは、エンコード アルゴリズムを使用して最終コード ストリームにエンコードされます。最終的な圧縮フレームは、I フレーム、P フレーム、B フレームに分割されます。 CABAC 可逆圧縮方式が実行された後、ビデオ コード ストリームが取得されます。
空間データ冗長性と時間データ冗長性は、ビデオ圧縮における 2 つの基本概念であり、それぞれビデオ フレーム内とビデオ フレーム間で繰り返される情報を表します。
空間的冗長性の解釈:
時間的冗長性の解釈:
H.264 ビデオ圧縮では、残差データは、元のビデオ フレームと予測フレームの差を指します。同時に、残差データをより深く理解したい場合は、以下に示す概念を理解する必要があります。
予測フレーム : ビデオ エンコード プロセス中に、イントラ予測 (Intra Prediction) またはインター予測 (Inter Prediction) を使用して予測フレームが生成されます。イントラ予測は現在のフレームのピクセル情報に基づきますが、インター予測は前後のフレームの動き補償情報に基づきます。
オリジナルフレーム: ビデオ シーケンスで実際にキャプチャされた元の画像フレームを指します。
残差計算 : 残差データは、元のフレームから予測フレームを減算することによって計算されます。残差データは、予測されたフレームと元のフレームの差を表します。
上記の概念を基礎にすると、残差データの特性をさらに理解できます。
予測フレームによって冗長な情報の大部分が削除されているため、残差データは通常、高い空間ランダム性を持っています。このランダム性により、残差データは変換と量子化によるさらなる圧縮に適したものになります。
残差データを整数離散コサイン変換 (IDCT) と量子化によって処理すると、データ量を大幅に削減できます。変換では残差の 2 次元空間情報が周波数情報に変換されますが、量子化ではこれらの係数の精度が低下し、人間の目には認識できない詳細が除去されます。
残差データをエンコードする目的は、画質を可能な限り維持しながらビデオ データのビットレートをさらに下げることです。同時に、残留データの効果的な圧縮は、エンコードされたビデオの品質と必要なストレージまたは送信帯域幅に直接影響するため、H.264 エンコード効率にとって非常に重要です。
エントロピーコーディングは、情報エントロピーの概念に基づいた可逆データ圧縮技術であり、可能な限り少ないビットでデータを表現することを目的としています。エントロピーコーディングの中心的な考え方は、出現する可能性が高いシンボルには少ないビットを割り当て、出現頻度が低いシンボルにはより多くのビットを割り当てることです。このようにして、データセット全体の平均ビットレートが低下するため、必要な記憶スペースまたは送信帯域幅が減少します。
エントロピー コーディングは、テキストや特定の種類のデータ圧縮によく使用され、特にデータの確率分布が著しく不均一な場合に、圧縮効率を大幅に向上させることができます。ビデオ圧縮符号化において、ビデオ圧縮に最も密接に関連するエントロピー符号化方式には、主に次のようなものがあります。
ビデオ圧縮では、エントロピー符号化は、イントラ予測およびインター予測後の残差データを符号化するために使用される最終符号化ステップです。残差データは元のデータと予測データの差であり、通常はエネルギーが少なく、確率分布がより不均一になります。エントロピー符号化を通じて、これらの残差データのビット レートをさらに削減することができ、それによりビデオ データを圧縮する目的が達成されます。