2016-11-01 18 views
1

CVPixelBufferオブジェクトには、1つまたは複数のプレーンがあります。 (reference) 私たちは数値、高さ、面のベースアドレスを取得するメソッドを持っています。CVPixelbufferのプレーンとは何ですか?

それでは、飛行機は何ですか? 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> 

答えて

3

ビデオフォーマットは、信じられないほど複雑なテーマです。

一部のビデオストリームがバイトRGBA、ARGB、ABGR、またはいくつかの他の変異体(伴うまたはアルファチャンネルせず)に記憶された画素を有する

(RGBAフォーマットでは、赤、緑、青を持っているだろう次のピクセルのカラー値を有する別の4バイトのセットが後に続く)。これは、インターレースカラー情報である。

一部のビデオストリームはカラーチャネルを分離しているので、すべての赤色チャネル、青色、緑色、およびアルファは別々の「プレーン」として送信されます。すべての赤色の情報を含むバッファーを取得した後、すべての青色のデータを、次にすべての緑色を、アルファが含まれている場合はアルファを取得します。 (カラーネガを考えてみましょう。エマルジョンのレイヤーは色の情報の面です.Digitalでは同じアイデアです。)

カラーデータが入っているフォーマットがあります1つまたは2つのプレーンに分割され、輝度は別のプレーンにあります。それは古いアナログカラーテレビの仕組みです。それは白黒(ルミナンス)として始まり、放送局は色情報を伝えるためにサイドバンド信号を加えた。

私はCVPixelBuffersを頻繁に使いこなして、あなたが尋ねていることの深刻な詳細を知るのに十分ではなく、私の脳を把持するのに十分なスピンアップをするには多量の時間と多量のコーヒーを投入しなければなりませんそのような細部の詳細。

関連する問題