2011-01-09 13 views
0

私はこれをしばらく考えていないので、誰かが助けてくれるか、私に正しい方向を教えてもらえないかと思っていました。UIImageからYUV 422 Colorspace

UIImageまたは格納されているJPGをYUV422データに変換する必要があります。そのため、いくつかの画像エンハンスメントを適用して、結果をJPGまたはUIImageに戻すことができます。

私はこの時点でちょっと立ち往生しています、この時点で私はYUV422に手を差し伸べようとしています。

ご協力いただければ幸いです。

ありがとうございます。

答えて

0

メタデータを特定するには、最初にJPEGマーカーを読み取る必要があります。サイズ、サンプルレート(通常は4:2:2であるが常にではない)、量子化テーブル、およびハフマンテーブルなどのメタデータ。

次に、エントロピー符号化データセグメントをデハフマン符号化する必要があります。これにより、ジグザグ形式の各チャンネルのカラーチャンネルのAC係数に続くDC係数が得られます。エントリをジグザグして対応する量子化テーブルで乗算する必要があります。最後に、デコードされたマクロブロックで逆離散コサイン変換を実行する必要があります。

これは、JPEGがエンコードされたサンプルレートで、YCrCbに3チャンネル(アナログの場合はYUV)を表示します。 4:2:2にする必要がある場合は、再サンプリングする必要があります。

遵守しているものを作成するのは簡単な作業ではないので、実際のJPEGデコードを行うライブラリを用意してください。

ここには非常に基本的なものがありますが、に欠陥があります。 JPEGデコーダ私はあなたに技術的な詳細を伝えるために書き始めました。水平および垂直の両方のクロマ解像度が半分にされる意味、0:2:Ruby JPEG decoderそれは正常I suggest IJG

+1

JPEG画像はほとんど常に4であるCに正しい実装についてIDCT

を実装していません。 4:2:2は、水平解像度のみが半分になることを意味します。 – grahamparks

+0

http://www.impulseadventure.com/photo/jpeg-decoder.htmlそうそうだ。 – EnabrenTane