7

オブジェクトにはCVPixelBuffer、1 つまたは複数の平面があります。(参考) プレーンの番号、高さ、ベースアドレスを取得するメソッドがあります。

では、飛行機とは一体何なのでしょうか?そして、それはどのように内部に構築されましたCVPixelBufferか?

サンプル:

<CVPixelBuffer 0x1465f8b30 width=1280 height=720 pixelFormat=420v iosurface=0x14a000008 planes=2>
    <Plane 0 width=1280 height=720 bytesPerRow=1280>
    <Plane 1 width=640 height=360 bytesPerRow=1280>
4

2 に答える 2

14

ビデオ形式は非常に複雑なテーマです。

一部のビデオ ストリームでは、RGBA、ARGB、ABGR、またはその他のいくつかのバリアント (アルファ チャネルの有無にかかわらず) のバイト単位でピクセルが格納されます。

(RGBA 形式では、ピクセルの赤、緑、青、およびアルファ値がメモリ内に次々と格納され、その後に次のピクセルの色値を含む 4 バイトの別のセットが続きます)。インターレースされた色情報です。

一部のビデオ ストリームはカラー チャネルを分離するため、すべての赤チャネル、青、緑、およびアルファが個別の「プレーン」として送信されます。すべての赤の情報、すべての青のデータ、すべての緑、アルファが含まれている場合はアルファのバッファを取得します。(カラーネガを考えてみてください。乳剤の層が別々にあり、異なる色を捉えています。乳剤の層は、色情報の平面です。デジタルでも同じ考えです。)

カラー データが 1 つまたは 2 つのプレーンにあり、輝度が別のプレーンにあるフォーマットがあります。それが古いアナログカラーテレビのしくみです。最初は白黒 (輝度) でしたが、放送局は側波帯信号を追加して色情報を伝えました。(彩度)

私はCVPixelBuffer、あなたが求めていることの悲惨な詳細を知るのに十分なほど頻繁に s をいじくり回すことはありません。そして、それらの悲惨な詳細を把握するのに十分なほど脳を「スピンアップ」させる前に、大量の時間と大量のコーヒーを投資する必要があります。

編集:

デバッグ情報には 2 つのプレーンが表示されるため、@zeh の回答で述べたように、このピクセル バッファーには輝度チャネルとクロマ チャネルがある可能性があります。

于 2016-11-01T02:23:18.100 に答える