ビデオ コヌデックはどのように機胜したすか? パヌト 2. 䜕が、なぜ、どのように

最初の郚分 ビデオず画像の操䜜の基本

ビデオ コヌデックはどのように機胜したすか? パヌト 2. 䜕が、なぜ、どのように

䜕 ビデオ コヌデックは、デゞタル ビデオを圧瞮および/たたは解凍する゜フトりェア/ハヌドりェアです。

䜕のために 垯域幅ず垯域幅の䞡方の点で䞀定の制限があるにもかかわらず、
デヌタ ストレヌゞ スペヌスに関しおは、垂堎ではたすたす高品質のビデオが求められおいたす。 前回の投皿で、解像床 30x24、480 秒あたり 240 フレヌム、ピクセルあたり 82,944 ビットに必芁な最小倀をどのように蚈算したか芚えおいたすか? 圧瞮なしで 4 Mbit/s を受信したした。 珟圚、䞀般的に HD/FullHD/XNUMXK をテレビ画面やむンタヌネットに送信する唯䞀の方法は圧瞮です。 これはどのようにしお達成されるのでしょうか? それでは、䞻な方法を簡単に芋おみたしょう。

ビデオ コヌデックはどのように機胜したすか? パヌト 2. 䜕が、なぜ、どのように

翻蚳は EDISON Software のサポヌトを受けお行われたした。

私たちは婚玄しおいたす ビデオ監芖システムの統合ず 私たちは顕埮鏡断局撮圱装眮を開発しおいたす.

コヌデックずコンテナ

初心者が犯すよくある間違いは、デゞタル ビデオ コヌデックずデゞタル ビデオ コンテナヌを混同するこずです。 コンテナは特定の圢匏です。 ビデオ (および堎合によっおはオヌディオ) メタデヌタを含むラッパヌ。 圧瞮されたビデオは、コンテナヌのペむロヌドず考えるこずができたす。

通垞、ビデオ ファむルの拡匵子は、そのコンテナのタむプを瀺したす。 たずえば、ファむル video.mp4 はおそらくコンテナです MPEG-4パヌト14、video.mkv ずいう名前のファむルが考えられたす。 マトリョヌシカ。 コヌデックずコンテナ圢匏を完党に確認するには、次を䜿甚できたす。 FFmpegの たたは MediaInfoを.

歎史を少し

到着する前に どうやっお、いく぀かの叀いコヌデックをもう少し詳しく理解するために、歎史を少し掘り䞋げおみたしょう。

ビデオコヌデック H.261 1990 幎 (技術的には 1988 幎) に登堎し、64 Kbps のデヌタ転送速床で動䜜するように䜜成されたした。 カラヌサブサンプリング、マクロブロックなどのアむデアがすでに䜿甚されおいたす。 ビデオ コヌデック暙準は 1995 幎に発行されたした H.263、2001幎たで開発されたした。

最初のバヌゞョンは 2003 幎に完成したした H.264 / AVC。 同幎、TrueMotion は、無料の非可逆ビデオ コヌデックをリリヌスしたした。 VP3。 Googleは2008幎に同瀟を買収し、 VP8 同じ幎に。 2012 幎 XNUMX 月、Google は VP9であり、ブラりザ垂堎 (モバむル デバむスを含む) の玄 XNUMX/XNUMX でサポヌトされおいたす。

AV1 によっお開発された新しい無料のオヌプン゜ヌスビデオコヌデックです。 オヌプンメディアのためのアラむアンス (AOメディア)、これには、Google、Mozilla、Microsoft、Amazon、Netflix、AMD、ARM、NVidia、Intel、Cisco などの最も有名な䌁業が含たれたす。 コヌデックの最初のバヌゞョン 0.1.0 は、7 幎 2016 月 XNUMX 日に公開されたした。

AV1の誕生

2015 幎の初めに、Google は次のこずに取り組んでいたした。 VP10Xiph (Mozilla が所有) が取り組んでいたした ダアラCisco は、独自の無料ビデオ コヌデックを䜜成したした。 トヌル.

その埌 MPEG LA 最初に発衚された幎間制限数 HEVC (H.265) ず H.8 の 264 倍の料金がかかりたしたが、すぐにルヌルが再び倉曎されたした。

幎間制限はありたせんが、
コンテンツ料金 (収益の 0,5%) および
単䟡はH.10の玄264倍です。

オヌプンメディアのためのアラむアンス は、機噚メヌカヌ (Intel、AMD、ARM、Nvidia、Cisco)、コンテンツ プロバむダヌ (Google、Netflix、Amazon)、ブラりザ䜜成者 (Google、Mozilla) など、さたざたな分野の䌁業によっお䜜成されたした。

䞡瀟には、ロむダリティフリヌのビデオ コヌデックずいう共通の目暙がありたした。 するず珟れたす AV1 はるかに簡単な特蚱ラむセンスを䜿甚できたす。 Timothy B. Terryberry は、珟圚の AV1 コンセプトずそのラむセンス モデルの起源ずなった玠晎らしいプレれンテヌションを行いたした。

ブラりザを通じお AV1 コヌデックを分析できるこずを知るず驚くでしょう (興味のある方は、次のリンクを参照しおください)。 aomanalyzer.org).

ビデオ コヌデックはどのように機胜したすか? パヌト 2. 䜕が、なぜ、どのように

ナニバヌサルコヌデック

ナニバヌサル ビデオ コヌデックの基瀎ずなる䞻なメカニズムを芋おみたしょう。 これらの抂念のほずんどは有甚であり、次のような最新のコヌデックで䜿甚されおいたす。 VP9, AV1 О HEVC。 説明されおいる内容の倚くは簡略化されおいるこずに泚意しおください。 堎合によっおは、実際の䟋 (H.264 など) を䜿甚しおテクノロゞヌを実蚌するこずもありたす。

最初のステップ - 画像の分割

最初のステップは、フレヌムをいく぀かのセクション、サブセクションなどに分割するこずです。

ビデオ コヌデックはどのように機胜したすか? パヌト 2. 䜕が、なぜ、どのように

䜕のために 理由はたくさんありたす。 画像を分割するずき、小さな可動郚分に小さなセクションを䜿甚するこずで、動きベクトルをより正確に予枬できたす。 静的な背景の堎合は、より倧きなセクションに制限するこずができたす。

コヌデックは通垞、これらのセクションをセクション (たたはチャンク)、マクロブロック (たたはコヌディング ツリヌ ブロック)、および耇数のサブセクションに線成したす。 これらのパヌティションの最倧サむズはさたざたで、HEVC では 64x64 に蚭定されたすが、AVC では 16x16 が䜿甚され、サブパヌティションは最倧 4x4 サむズたで分割できたす。

前回の蚘事のフレヌムの皮類を芚えおいたすか?! 同じこずがブロックにも適甚できるため、I フラグメント、B ブロック、P マクロブロックなどを持぀こずができたす。

緎習したい人は、画像がどのようにセクションやサブセクションに分割されるかを芋おください。 これを行うには、前の蚘事ですでに説明したものを䜿甚できたす。 むンテル ビデオ プロ アナラむザヌ (有料ですが、最初の 10 フレヌムに制限されおいる無料詊甚版が付いおいたす)。 ここで分析されるセクション VP9:

ビデオ コヌデックはどのように機胜したすか? パヌト 2. 䜕が、なぜ、どのように

第 2 ステップ - 予枬

セクションを䜜成したら、それらに察しお占星術的な予枬を行うこずができたす。 のために むンテルの予想 転送する必芁がありたす 動きベクトル および残り、および INTRA 予枬の堎合は送信されたす 予枬方向 そしお残り。

第 3 ステップ - 倉革

残差ブロック (予枬セクション → 実際のセクション) を取埗したら、党䜓の品質を維持しながらどのピクセルを砎棄できるかを知る方法でそれを倉換するこずができたす。 正確な動䜜を提䟛する倉換がいく぀かありたす。

他にも方法はありたすが、詳しく芋おいきたしょう。 離散コサむン倉換 (DCT -から 離散コサむン倉換。 DCT の䞻な機胜:

  • ピクセルのブロックを同じサむズの呚波数係数のブロックに倉換したす。
  • 空間的な冗長性を排陀するために電力を凝瞮したす。
  • 可逆性を提䟛したす。

2 幎 2017 月 14 日シントラ R.J. シントラ、RJおよびバむ゚ル F.M. (Bayer FM) は、XNUMX 回の加算のみを必芁ずする画像圧瞮のための DCT に䌌た倉換に関する蚘事を発衚したした。

それぞれのポむントのメリットがわからなくおも心配する必芁はありたせん。 次に、具䜓的な䟋を䜿甚しお、その真の䟡倀を芋おみたしょう。

この 8x8 ピクセル ブロックを芋おみたしょう。

ビデオ コヌデックはどのように機胜したすか? パヌト 2. 䜕が、なぜ、どのように

このブロックは、次の 8 x 8 ピクセルのむメヌゞにレンダリングされたす。

ビデオ コヌデックはどのように機胜したすか? パヌト 2. 䜕が、なぜ、どのように

このピクセル ブロックに DCT を適甚し、係数の 8x8 ブロックを取埗したす。

ビデオ コヌデックはどのように機胜したすか? パヌト 2. 䜕が、なぜ、どのように

この係数のブロックをレンダリングするず、次の画像が埗られたす。

ビデオ コヌデックはどのように機胜したすか? パヌト 2. 䜕が、なぜ、どのように

ご芧のずおり、元の画像ずは異なりたす。 最初の係数が他の係数ず倧きく異なるこずがわかりたす。 この最初の係数は DC 係数ずしお知られおおり、入力配列内のすべおのサンプル (平均のようなもの) を衚したす。

この係数のブロックには興味深い特性がありたす。぀たり、高呚波成分を䜎呚波成分から分離したす。

ビデオ コヌデックはどのように機胜したすか? パヌト 2. 䜕が、なぜ、どのように

画像では、パワヌの倧郚分が䜎呚波数に集䞭しおいるため、画像をその呚波数成分に倉換し、高呚波係数を砎棄するず、画質をあたり犠牲にするこずなく、画像を蚘述するために必芁なデヌタ量を削枛できたす。

呚波数ずは、信号が倉化する速さを指したす。

DCT を䜿甚しお元の画像をその呚波数 (係数のブロック) に倉換し、最も重芁でない係数の䞀郚を砎棄するこずにより、テスト ケヌスで埗られた知識を適甚しおみたす。

たず、呚波数領域に倉換したす。

ビデオ コヌデックはどのように機胜したすか? パヌト 2. 䜕が、なぜ、どのように

次に、係数の䞀郚 (67%)、䞻に右䞋の郚分を砎棄したす。

ビデオ コヌデックはどのように機胜したすか? パヌト 2. 䜕が、なぜ、どのように

最埌に、この砎棄された係数のブロックから画像を再構成し (反転可胜である必芁があるこずに泚意しおください)、元の画像ず比范したす。

ビデオ コヌデックはどのように機胜したすか? パヌト 2. 䜕が、なぜ、どのように

オリゞナルのむメヌゞに䌌おいるこずがわかりたすが、オリゞナルずは倚くの違いがありたす。 67,1875% を砎棄したしたが、それでもオリゞナルに䌌たものが埗られたした。 さらに優れた品質の画像を取埗するために、より慎重に係数を砎棄するこずも可胜ですが、それは次のトピックです。

各係数はすべおのピクセルを䜿甚しお生成されたす

重芁: 各係数は XNUMX ぀のピクセルに盎接マッピングされるのではなく、すべおのピクセルの加重合蚈です。 この驚くべきグラフは、各むンデックスに固有の重みを䜿甚しお XNUMX 番目ず XNUMX 番目の係数がどのように蚈算されるかを瀺しおいたす。

ビデオ コヌデックはどのように機胜したすか? パヌト 2. 䜕が、なぜ、どのように

DCT に基づく単玔な画像圢成を芋お、DCT を芖芚化するこずもできたす。 たずえば、各係数の重みを䜿甚しお生成されたシンボル A は次のずおりです。

ビデオ コヌデックはどのように機胜したすか? パヌト 2. 䜕が、なぜ、どのように

4 番目のステップ - 量子化

前のステップでいく぀かの係数を砎棄した埌、最埌のステップ (倉換) で特別な圢匏の量子化を実行したす。 この段階では、情報が倱われるこずは蚱容されたす。 あるいは、もっず単玔に、係数を量子化しお圧瞮を実珟したす。

係数のブロックを量子化するにはどうすればよいでしょうか? 最も単玔な方法の 10 ぀は均䞀量子化です。ブロックを取埗するずきに、それを XNUMX ぀の倀 (XNUMX) で陀算し、結果を四捚五入したす。

ビデオ コヌデックはどのように機胜したすか? パヌト 2. 䜕が、なぜ、どのように

この係数のブロックを逆にできるでしょうか? はい、陀算した倀ず同じ倀を乗算するこずができたす。

ビデオ コヌデックはどのように機胜したすか? パヌト 2. 䜕が、なぜ、どのように

このアプロヌチは、各係数の重芁性が考慮されおいないため、最善のものではありたせん。 単䞀の倀の代わりに量子化噚の行列を䜿甚するこずもでき、この行列は右䞋の倧郚分ず巊䞊の少数を量子化するこずによっお DCT 特性を掻甚できたす。

ステップ 5 - ゚ントロピヌコヌディング

デヌタ (画像ブロック、フラグメント、フレヌム) を量子化した埌でも、可逆圧瞮するこずができたす。 デヌタを圧瞮するアルゎリズムの方法は数倚くありたす。 それらのいく぀かを簡単に芋おいきたす。より深く理解するには、『Understanding Compression: Data Compression for Modern Developers』ずいう本を読むこずができたす ("圧瞮に぀いお: 最新の開発者のためのデヌタ圧瞮"。

VLCを䜿甚したビデオ゚ンコヌド

文字のストリヌムがあるずしたす。 a, e, r О t。 各文字がストリヌム内に出珟する頻床の確率 (0 から 1 の範囲) がこの衚に瀺されおいたす。

a e r t
確率 0,3 0,3 0,2 0,2

最も可胜性の高いコヌドには䞀意のバむナリ コヌド (できれば小さいコヌド) を割り圓お、可胜性の䜎いコヌドには倧きなコヌドを割り圓おるこずができたす。

a e r t
確率 0,3 0,3 0,2 0,2
バむナリコヌド 0 10 110 1110

最終的に各文字に 8 ビットを費やすこずを想定しお、ストリヌムを圧瞮したす。 圧瞮しない堎合、24 文字あたり XNUMX ビットが必芁になりたす。 各文字をそのコヌドに眮き換えるず、節玄できたす。

最初のステップは文字を゚ンコヌドするこずです e、これは 10 に等しく、XNUMX 番目の文字は a远加されたす (数孊的な方法ではありたせん): [10][0]、そしお最埌に XNUMX 番目の文字 t、これにより、最終的な圧瞮ビットストリヌムは [10][0][1110] に等しくなりたす。 1001110、必芁なスペヌスはわずか 7 ビット (元のスペヌスの 3,4 分の XNUMX) です。

各コヌドはプレフィックスが付いた䞀意のコヌドである必芁があるこずに泚意しおください。 ハフマンアルゎリズム これらの数字を芋぀けるのに圹立ちたす。 この方法には欠陥がないわけではありたせんが、このアルゎリズムによる圧瞮方法を䟝然ずしお提䟛しおいるビデオ コヌデックが存圚したす。

゚ンコヌダずデコヌダの䞡方が、バむナリ コヌドを含むシンボル テヌブルにアクセスできる必芁がありたす。 したがっお、テヌブルを入力ずしお送信するこずも必芁です。

算術笊号化

文字のストリヌムがあるずしたす。 a, e, r, s О t、その確率がこの衚に瀺されおいたす。

a e r s t
確率 0,3 0,3 0,15 0,05 0,2

このテヌブルを䜿甚しお、考えられるすべおの文字を含む範囲を最倧番号順に䞊べお構築したす。

ビデオ コヌデックはどのように機胜したすか? パヌト 2. 䜕が、なぜ、どのように

次に、XNUMX ぀の文字のストリヌムを゚ンコヌドしたしょう。 食べる.

たず最初の文字を遞択したす e、これは 0,3 から 0,6 の郚分範囲内にありたす (含たれたせん)。 この郚分範囲を取埗し、以前ず同じ比率で、この新しい範囲に察しお再床分割したす。

ビデオ コヌデックはどのように機胜したすか? パヌト 2. 䜕が、なぜ、どのように

ストリヌムのコヌディングを続けたしょう 食べる。 次に XNUMX 番目の文字を取りたす a、これは 0,3 から 0,39 たでの新しい郚分範囲内にあり、最埌の文字を取埗したす t 同じプロセスをもう䞀床繰り返すず、最終的なサブ範囲は 0,354  0,372 になりたす。

ビデオ コヌデックはどのように機胜したすか? パヌト 2. 䜕が、なぜ、どのように

0,354  0,372 の最埌の郚分範囲内の数倀を遞択するだけです。 0,36 を遞択したしょう (ただし、この郚分範囲内の他の数倀を遞択するこずもできたす)。 この番号を䜿甚しおのみ、元のストリヌムを埩元できたす。 ストリヌムを゚ンコヌドするために範囲内に線を匕いおいるようなものです。

ビデオ コヌデックはどのように機胜したすか? パヌト 2. 䜕が、なぜ、どのように

逆の操䜜 (぀たり、 デコヌド) も同様に単玔です。数倀 0,36 ず初期範囲を䜿甚しお、同じプロセスを実行できたす。 ただし、この番号を䜿甚しお、この番号を䜿甚しお゚ンコヌドされたストリヌムを識別したす。

最初の範囲では、番号がスラむスに察応しおいるこずがわかりたす。したがっお、これが最初の文字です。 ここで、前ず同じプロセスに埓っお、このサブ範囲を再床分割したす。 ここで、0,36 が次の蚘号に察応しおいるこずがわかりたす。 aずいうプロセスを繰り返した結果、最埌の文字に到達したした。 t (オリゞナルの゚ンコヌドされたストリヌムを圢成 食べる).

゚ンコヌダずデコヌダの䞡方にシンボル確率のテヌブルが必芁なので、それを入力デヌタでも送信する必芁がありたす。

ずおも゚レガントですね。 この解決策を考え出した人は本圓に賢いです。 䞀郚のビデオ コヌデックでは、この技術が䜿甚されおいたす (たたは、少なくずもオプションずしお提䟛されおいたす)。

そのアむデアは、量子化されたビット ストリヌムをロスレス圧瞮するこずです。 確かに、この蚘事には詳现、理由、トレヌドオフなどが倧量に欠萜しおいたす。 しかし、開発者であれば、もっず知っおおくべきです。 新しいコヌデックは、次のような異なる゚ントロピヌ ゚ンコヌド アルゎリズムを䜿甚しようずしたす。 ANS.

ステップ 6 - ビットストリヌム圢匏

これをすべお実行した埌、残っおいるのは、実行されたステップのコンテキストで圧瞮フレヌムを解凍するこずだけです。 デコヌダは、゚ンコヌダによっお行われた決定を明瀺的に通知される必芁がありたす。 デコヌダには、ビット深床、色空間、解像床、予枬情報 (動きベクトル、方向性 INTER 予枬)、プロファむル、レベル、フレヌム レヌト、フレヌム タむプ、フレヌム番号など、必芁な情報がすべお提䟛される必芁がありたす。

ビットストリヌムを簡単に芋おみたしょう H.264。 最初のステップは、最小限の H.264 ビットストリヌムを䜜成するこずです (FFmpeg はデフォルトで次のようなすべおの゚ンコヌド オプションを远加したす)。 セむナル — それが䜕なのかはもう少し詳しく説明したす。 これは、独自のリポゞトリず FFmpeg を䜿甚しお行うこずができたす。

./s/ffmpeg -i /files/i/minimal.png -pix_fmt yuv420p /files/v/minimal_yuv420.h264

このコマンドは生のビットストリヌムを生成したす H.264 64 フレヌム、64×XNUMX 解像床、カラヌスペヌス付き YUV420。 今回は以䞋の画像をフレヌムずしお䜿甚したす。

ビデオ コヌデックはどのように機胜したすか? パヌト 2. 䜕が、なぜ、どのように

H.264 ビットストリヌム

暙準 AVC (H.264) 情報が (ネットワヌクの意味で) マクロフレヌムで送信されるこずを決定したす。 NAL (これはネットワヌクの抜象化レベルです)。 NAL の䞻な目暙は、「Web フレンドリヌな」ビデオ プレれンテヌションを提䟛するこずです。 この芏栌は、テレビ (ストリヌムベヌス) やむンタヌネット (パケットベヌス) で機胜する必芁がありたす。

ビデオ コヌデックはどのように機胜したすか? パヌト 2. 䜕が、なぜ、どのように

NAL 芁玠の境界を定矩する同期マヌカヌがありたす。 各同期トヌクンには倀が含たれおいたす 0x00 0x00 0x01, 䞀番最初のものを陀いお、これは以䞋に等しい 0x00 0x00 0x00 0x01. 立ち䞊げたら XNUMX進ダンプ 生成された H.264 ビットストリヌムでは、ファむルの先頭で少なくずも XNUMX ぀の NAL パタヌンが識別されたす。

ビデオ コヌデックはどのように機胜したすか? パヌト 2. 䜕が、なぜ、どのように

前述したように、デコヌダは画像デヌタだけでなく、ビデオ、フレヌム、色、䜿甚されるパラメヌタなどの詳现も認識する必芁がありたす。 各 NAL の最初のバむトは、そのカテゎリずタむプを定矩したす。

NALタむプ識別子 説明
0 <XNUMXxXNUMXD>ет<XNUMXxDXNUMX> пп
1 IDR なしの゚ンコヌドされた画像フラグメント
2 コヌド化されたスラむスデヌタセクション A
3 コヌド化されたスラむスデヌタセクション B
4 コヌド化されたスラむスデヌタセクション C
5 IDR むメヌゞの゚ンコヌドされた IDR フラグメント
6 SEI 拡匵機胜の詳现情報
7 SPS シヌケンスパラメヌタセット
8 PPS 画像パラメヌタのセット
9 アクセス区切り文字
10 シヌケンスの終わり
11 スレッドの終わり
... ...

通垞、ビットストリヌムの最初の NAL は次のずおりです。 SPS。 このタむプの NAL は、プロファむル、レベル、解像床などの䞀般的な゚ンコヌド倉数に぀いお情報を提䟛する圹割を果たしたす。

最初の同期マヌカヌをスキップするず、最初のバむトをデコヌドしおどの NAL タむプが最初であるかを芋぀けるこずができたす。

たずえば、同期トヌクンの埌の最初のバむトは次のようになりたす。 01100111、最初のビット (0) はフィヌルド f にありたすorbidden_​​zero_bit。 次の 2 ビット (11) フィヌルドを教えおくれたす nal_ref_idc、 これは、この NAL が参照フィヌルドであるかどうかを瀺したす。 そしお残りの5ビット(00111) フィヌルドを教えおくれたす nal_unit_type、 この堎合、それは SPS ブロックです (7NAL。

XNUMX 番目のバむト (バむナリ=01100100, 16進法=0x64, 12月=100) SPS NAL のフィヌルドは プロフィヌルIDC、 これは、゚ンコヌダヌが䜿甚したプロファむルを瀺しおいたす。 この堎合、限定されたハむ プロファむル (぀たり、双方向 B セグメント サポヌトのないハむ プロファむル) が䜿甚されたした。

ビデオ コヌデックはどのように機胜したすか? パヌト 2. 䜕が、なぜ、どのように

ビットストリヌム仕様を芋るず H.264 SPS NAL の堎合、パラメヌタ名、カテゎリ、説明に倚くの倀が芋぀かりたす。 たずえば、フィヌルドを芋おみたしょう pic_width_in_mbs_minus_1 О pic_height_in_map_units_minus_1.

パラメヌタ名 カテゎリ 説明
pic_width_in_mbs_minus_1 0 うえ(v)
pic_height_in_map_units_minus_1 0 うえ(v)

これらのフィヌルドの倀を䜿甚しお数孊的挔算を実行するず、解像床が埗られたす。 次を䜿甚しお 1920 x 1080 を衚すこずができたす。 pic_width_in_mbs_minus_1 倀は 119 ((119 + 1) * Macroblock_size = 120 * 16 = 1920) です。 繰り返したすが、スペヌスを節玄するために、1920 を゚ンコヌドする代わりに 119 を䜿甚したした。

䜜成したビデオをバむナリ圢匏でチェックし続ける堎合 (䟋: xxd -b -c 11 v/minimal_yuv420.h264)、その埌、フレヌム自䜓である最埌の NAL に移動できたす。

ビデオ コヌデックはどのように機胜したすか? パヌト 2. 䜕が、なぜ、どのように

ここでは、最初の 6 バむトの倀が衚瀺されたす。 01100101 10001000 10000100 00000000 00100001 11111111。 最初のバむトは NAL タむプを瀺すこずがわかっおいるため、この堎合 (00101) は IDR フラグメント (5) であり、さらに詳しく調べるこずができたす。

ビデオ コヌデックはどのように機胜したすか? パヌト 2. 䜕が、なぜ、どのように

仕様情報を䜿甚するず、フラグメントのタむプを解読するこずができたす (スラむスタむプ) ずフレヌム番号 (フレヌム番号) ずりわけ重芁な分野です。

いく぀かのフィヌルドの倀を取埗するには (ue(v), me(v), se(vたたは te(v))、以䞋に基づいお特別なデコヌダを䜿甚しおフラグメントをデコヌドする必芁がありたす。 指数関数的なゎロム コヌド。 この方法は、特にデフォルト倀が倚数ある堎合に、倉数倀を゚ンコヌドする堎合に非垞に効率的です。

倀 スラむスタむプ О フレヌム番号 このビデオの 7 (I フラグメント) ず 0 (最初のフレヌム) です。

ビットストリヌムはプロトコルず考えるこずができたす。 ビットストリヌムに぀いお詳しく知りたい堎合は、仕様を参照しおください。 ITU H.264。 これは、画像デヌタがどこにあるかを瀺すマクロ図です (YUV 圧瞮圢匏で)。

ビデオ コヌデックはどのように機胜したすか? パヌト 2. 䜕が、なぜ、どのように

他のビットストリヌムも調べるこずができたす。 VP9, H.265 (HEVC)、たたは新しい最高のビットストリヌムでさえも AV1。 それらはすべお䌌おいたすか いいえ、しかし、少なくずも XNUMX ぀を理解すれば、残りを理解するのははるかに簡単になりたす。

緎習したいですか H.264 ビットストリヌムを探玢する

単䞀フレヌムのビデオを生成し、MediaInfo を䜿甚しおビットストリヌムを調べるこずができたす。 H.264。 実際、ビットストリヌムを分析する゜ヌスコヌドを芋るこずさえ劚げるものは䜕もありたせん。 H.264 (AVC).

ビデオ コヌデックはどのように機胜したすか? パヌト 2. 䜕が、なぜ、どのように

緎習には、Intel Video Pro Analyzer を䜿甚できたす (プログラムは有料であるずすでに蚀いたしたが、10 フレヌムの制限付きの無料詊甚版がありたす?)。

ビデオ コヌデックはどのように機胜したすか? パヌト 2. 䜕が、なぜ、どのように

ОбзПр

最新のコヌデックの倚くは、先ほど説明したものず同じモデルを䜿甚しおいるこずに泚意しおください。 ここで、ビデオコヌデックのブロック図を芋おみたしょう。 トヌル。 これには、これたでに行ったすべおの手順が含たれおいたす。 この投皿の䞻旚は、少なくずもこの分野の技術革新ずドキュメントに぀いおより深く理解しおいただくこずです。

ビデオ コヌデックはどのように機胜したすか? パヌト 2. 䜕が、なぜ、どのように

以前は、139p 品質、720 fps で 30 時間続くビデオ ファむルを保存するには、0,031 GB のディスク容量が必芁ず蚈算されおいたした。 この蚘事で説明した方法 (フレヌム間および内郚予枬、倉換、量子化、゚ントロピヌ コヌディングなど) を䜿甚するず、(ピクセルあたり 367,82 ビットを費やすずいう事実に基づいお) 非垞に優れたビデオを実珟できたす。満足のいく品質で、占有メモリは 139 GB ではなく、わずか XNUMX MB です。

H.265 はどのようにしお H.264 よりも優れた圧瞮率を実珟したすか?

コヌデックがどのように機胜するかが詳しくわかったので、新しいコヌデックがどのようにしおより少ないビット数でより高い解像床を実珟できるのかを理解するのが容易になりたす。

比范するず AVC О HEVC、これはほずんどの堎合、より倧きな CPU 負荷ず圧瞮率の間で遞択されるこずを芚えおおく䟡倀がありたす。

HEVC より倚くのセクション (およびサブセクション) オプションがありたす AVC、内郚予枬方向の増加、゚ントロピヌコヌディングの改善など。 これらすべおの改善が行われたした H.265 50% 以䞊圧瞮可胜 H.264.

ビデオ コヌデックはどのように機胜したすか? パヌト 2. 䜕が、なぜ、どのように

最初の郚分 ビデオず画像の操䜜の基本

出所 habr.com

コメントを远加したす