Iフレーム、Pフレーム、Bフレーム、ビデオビットレート、フレームレート、解像度

ビデオ圧縮では、各フレームが静止画像を表します。実際の圧縮では、データ容量を削減するためにさまざまなアルゴリズムが使用されますが、IPBが最も一般的です。
一般的に言えば

Iフレームは、フレーム内圧縮に属するキーフレームです。AVI圧縮と同じです。あなたはそれをこの画像のフレームの完全な保存として理解することができます;デコードに必要なのはこのデータのフレームのみです(完全な画像が含まれているため)。

Pは順方向検索を意味します。Pフレームは、このフレームと前のキーフレーム(またはPフレーム)との差を表します。デコード時には、このフレームで定義された差を前にバッファされた画像と重ね合わせて最終的な画像を生成する必要があります。(つまり、差分フレーム、Pフレームには完全な画像データはなく、前のフレームの画像と異なるデータのみがあります)

Bフレームは双方向の差分フレームです。つまり、Bフレームは、現在のフレームと前のフレームと次のフレームの違いを記録します(詳細はより複雑で、4つのケースがあります)。つまり、Bフレームをデコードするには、前のバッファされた画像を取得するだけでなく、デコードする必要もあります。画面の後、最終画面は、現在のフレームデータで前面と背面の画面を重ね合わせることによって取得されます。Bフレームの圧縮率は高いですが、デコード時にCPUの負荷が高くなります。

上記の説明から、IとPのデコードアルゴリズムは比較的単純で、リソースの占有率は比較的小さいことがわかります。私はそれを自分で完了するだけで済みます。Pの場合、デコーダーは前の画像をバッファーするだけで済みます。Pに遭遇した場合、以前にバッファリングされた画像を使用するだけで、ビデオストリームにIとPのみが含まれている場合、デコーダは後続のデータに関係なく直線的に読み取りとデコードを行うことができます。しかし、インターネット上の多くの映画はBフレームを使用しています。Bフレームはフロントフレームとリアフレームの違いを記録するため、Pフレームよりも多くのスペースを節約できますが、この方法では、ファイルサイズが小さく、デコーダーが面倒です。デコードするときは、以前にバッファーされた画像を使用するだけでなく、次のIまたはPピクチャー(つまり、先読みとプリデコード)も知っている必要があります。Bフレームは実際に画像情報を含んでいるため、単純に破棄することはできません。 、それを単にドロップし、前の画像を単純に繰り返すと、ピクチャーカードが発生します(実際には、フレームが失われます)。また、インターネット上の映画では、多くのBフレームを使用してスペースを節約しているため、Bフレームがより多く使用されます。 Bフレームをサポートしていないプレーヤーはさらに問題を引き起こし、
画像が動かなくなります。一般的に、Iの圧縮率は7(JPGと同様)、Pは20、Bは50に達する可能性があります。Bフレームを使用すると多くのスペース
を節約でき節約されたスペースを使用してさらに多くのIフレームを節約できることがわかります。同じビットレートで、より良い画質を提供できます。

 

解像度:画像サイズに影響し、画像サイズに比例します。解像度が高いほど画像は大きくなり、解像度が低いほど画像は小さくなります。

ビデオビットレート:(1:伝送ビットレート、2:エンコードビットレート)ビットレート:ボリュームに影響し、ボリュームに比例します。ビットレートが大きいほど、ボリュームが大きくなり、ビットレートが小さいほど、ボリュームは小さくなります。

1.送信コードレート:コードレートは、データ送信中に単位時間あたりに送信されるデータビット数であり、一般的に使用される単位はkbps、つまりキロビット/秒です。つまり、サンプリングレート(サンプリングレートとは異なります。サンプリングレートの単位はHzであり、これは1秒あたりのサンプル数を意味します)。単位時間あたりのサンプリングレートが大きいほど、精度が高くなり、処理されたファイルは元のファイルに近くなります。ただし、ファイルボリュームはサンプリングレートに正比例するため、ほとんどすべてのエンコーディング形式は、最低のビットレートを使用して最小の歪みを達成する方法に注意を払っています。このコアの周りで、cbr(固定ビットレート)とvbr(可変ビットレート)が導出されます)、「ビットレート」は歪みの度合いであり、ビットレートが高いほど、鮮明になります。それ以外の場合、画像は粗くモザイクになります。
2.エンコードレート:単位時間あたりのデータビット数(次の結論は、エンコードレートは伝送レートとは関係がないということです)
1:特定のレートの場合、解像度は定義に反比例します。関係:解像度が高いほど、画像の鮮明さが低下し、解像度が低いほど、画像が鮮明になります。(画像の1フレームに非常に多くのデータが含まれるほど、解像度(広い領域)が高くなるほど、ビットレートが高くなり、相対的な画像の鮮明さが低下します)
2:特定の解像度の場合、ビットレートは定義、ビットレートに比例します値が高いほど画像は鮮明になり、ビットレートが低いほど画像は鮮明ではなくなります。
フレームレート:画像の滑らかさに影響し、画像の滑らかさに直接比例します。フレームレートが大きいほど画像は滑らかになり、フレームレートが低いほど画像はよりダイナミックになります。
ビットレートが可変の場合、フレームレートもボリュームに影響します。フレームレートが高いほど、毎秒通過する画像が多いほど、必要なビットレートが高くなり、ボリュームが大きくなります。
フレームレート:1秒間に送信される画像のフレーム数であり、グラフィックプロセッサが1秒あたり数回リフレッシュできるため、これも理解できます。


1.オーディオコードレートの計算式:オーディオコードレート=サンプリングレートxビット深度xチャネル= 44.1Khz x 16ビットx 2チャネル= 1411.2 Kbps
2.ファイルサイズ=ビットレートx継続時間(s)=ファイルサイズ=コードレートx継続時間(s)=(Kbps)=(Kbps)/ 1024 Kb =(MB)
2.ビデオファイルサイズの計算ファイルサイズ=ビットレートx継続時間(s)/ 8 =(Kbps)=(Kbps)/ 1024 Kb =(MB)


問題コーデックのオーディオとビデオの同期問題の原理により問題が発生します。ビデオストリームでは、最初のBフレームをすぐにデコードできず、依存する後続のIフレームとPフレームが最初にデコードされるのを待つ必要があるため、再生時間とデコードが時間に一貫性がなく、シーケンスが中断されています。これらのフレームはどのように再生する必要がありますか?現時点では、DTSとPTSの2つの概念を理解する必要があります。DTSおよびPTSの概念DTSおよびPTSの概念は次のとおりです。

DTS(デコードタイムスタンプ):
デコードタイムスタンプこのタイムスタンプの意味は、このデータフレームをデコードするタイミングをプレーヤーに伝えることです。
PTS(プレゼンテーションタイムスタンプ):タイムスタンプを表示します。このタイムスタンプは、このフレームのデータを表示するタイミングをプレーヤーに通知するために使用されます。DTSとPTSはプレーヤーの動作をガイドするために使用されますが、エンコード中にエンコーダーによって生成されることに注意してください。ビデオストリームにBフレームがない場合、DTSとPTSの順序は通常同じです。ただし、Bフレームがある場合は、前述の問題に戻ります。つまり、デコードの順序と再生の順序に一貫性がありません。たとえば、ビデオの場合、フレームの表示順序は次のとおりです。IBBP、BフレームをデコードするときにPフレームの情報を知る必要があるため、ビデオストリーム内のこれらのフレームの順序は次のようになります。IPBB、この時間は各フレームがDTSとPTSがあります。DTSはこれらのフレームをデコードする順序を教えてくれ、PTSはこれらのフレームを表示する順序を教えてくれます。シーケンスはおおよそ次のとおりです。PTS:1423 DTS:1234Stream:IPBBオーディオとビデオの同期上記のビデオフレーム、DTS、PTSの概念について説明しました。メディアストリームでは、ビデオに加えて、通常、オーディオが含まれています。オーディオ再生にもDTSとPTSの概念がありますが、オーディオはビデオのBフレームとは異なり、双方向予測を必要としないため、オーディオフレームのDTSとPTSの順序は同じです。オーディオとビデオが混合されて一緒に再生され、よく見られる一般的なビデオが表示されます。オーディオとビデオを一緒に再生する場合、通常、問題に直面する必要があります。それは、画像が正しくない状況を回避するためにそれらを同期する方法です。オーディオとビデオの同期を実現するには、通常、基準クロックを選択する必要があります。基準クロックの時間は直線的に増加します。音声ストリームとビデオストリームをエンコードする場合、データの各フレームには、基準クロックの時間に従ってタイムスタンプが付けられます。再生時に、データフレームのタイムスタンプを読み取り、現在の基準クロックの時刻を参照して、再生をスケジュールします。ここで説明するタイムスタンプは、前述のPTSです。実際には、ビデオとオーディオの同期、オーディオとビデオの同期、オーディオとビデオの外部クロックへの同期を選択できます。

おすすめ

転載: blog.csdn.net/u010868213/article/details/108777061