10ビットHEVCで何十億もの色を楽しむ

人間の目は、最新のビデオディスプレイが示すよりもはるかに多くの色を見ることができます。 コンピュータがどんなに洗練されていても、限られた数の色しか再現できません。 この記事では、第7世代Intel Coreプロセッサーの機能とIntel Software Toolsの最適化機能に基づいて、8ビットと比較して10ビットの色深度を使用することについて説明します。 この記事には、10ビットHEVCエンコードを実装するプログラム例へのリンクもあります。







色深度



色深度は、ビット深度とも呼ばれ、単一ピクセルの色を表示するために使用されるビット数です。 ピクセルの色数は色深度に依存するため、同じ画像または異なる色深度のフレームは異なって見えます。



画像のビット数には、ピクセルの色の種類ごとにチャネルごとのビットのセットが含まれます。 ピクセル内のカラーチャネルの数は、使用されるカラースペースによって異なります。 たとえば、RGBAカラースペースのカラーチャネルは、赤(R)、緑(G)、青(B)、およびアルファ(A)です。 追加のビットごとに、各色について保存できる情報量が2倍になります。 8ビット画像では、利用可能なピクセルカラーの総数は256です。表1は、対応する各色深度で利用可能なカラーの可能な数を示しています。

チャンネル深度 ピクセルごとのチャネルごとの色相 可能なシェードの総数
8ビット 256 1678万
10ビット 1024 10億7000万
12ビット 4096 686.8億
ほとんどのモニターとテレビは8ビットのコンテンツのみを表示でき、10ビットの画像は8ビットに変換されます。 ただし、10ビットの深さの利点は既に発生しています。





コンテンツが10ビットの深度で撮影された場合、シャープネス、コントラスト、その他の重要な特性が低下する可能性があるため、それ以上の処理中にコンテンツを失わないことが重要です。 8ビットコンテンツを編集している場合、これも深さの減少につながり、カラーバーの効果を引き起こす可能性があります。



カラーストライプ効果



画像をキャプチャするとき、センサーが2つの隣接する2つの色の最小差を認識できないことがあり、色が正しく表示されないという問題があります。 その結果、写真の領域は、より適切な他の色がないために1つの色で塗りつぶされます。 したがって、ある色から別の色へのスムーズな移行の代わりに、色付きのストライプが写真に表示されます。



カラーバーの問題の可能な解決策:





キャリブレーションされていないディスプレイもストライプの影響を引き起こす可能性があります。 これを回避するには、 Intelグラフィックコントロールパネルユーティリティを使用します。





図1. 8ビット(左)と10ビット(右)の画像の比較。 ストライプの効果は左側に表示されます。



図1は、カラーバーの効果に関する8ビット画像と10ビット画像の違いを示しています。 左の画像では、必要な色の詳細がセンサーによって送信されなかったため、必要な数より少ない色と色のストライプが生じました。 適切な写真には十分な色情報があり、色間の移行はスムーズです。 スムーズな色遷移を保証するには、BT2020規格で説明されているように、より広い色範囲が必要です。



BT標準。 2020年



第7世代のIntel XeonおよびCoreプロセッサは、BT標準をサポートしています。 2020(Rec。2020とも呼ばれます)4K超高解像度(UHD)コンテンツの作成/再生、10ビットサポート付きHDRの使用などの場合 UHDモニターの解像度は3840 * 2160で、対角線は異なります。 BT.2020標準のサポートにより、このような高解像度での画質が向上します。





図2. BT.2020とBT.709の色空間の比較



国際電気通信連合(ITU)BT.2020の推奨事項は、以前使用されていたBT.709よりも大幅に幅広い色を表します。 CIE 1931カラーチャートを表す各色空間の比較を図2に示しますX軸とY軸は、対応する色空間(青色のフォント)の波長との相対色座標を示します。 BTの色空間は黄色の三角形で覆われています。 709.黒い三角形はBTの色空間を示しています。 2020年、サイズが大幅に大きくなったため、スムーズな移行のためにより多くの色が含まれました。 BT。 2020は、色空間に加えて、ディスプレイ解像度、フレームレート、色のサブサンプリング、色深度など、UHD TVのさまざまな側面も定義しています。



Intel第7世代プロセッサーは、HEVC Main 10プロファイル、VP9プロファイル2、およびBT.2020標準を使用したHigh Dynamic Range(HDR)ビデオレンダリングをサポートしています。



HEVC Main 10プロファイル



高効率ビデオコーディング(HEVC)は、ビデオ圧縮標準であるH.265としても知られ、よく知られているH.264 / AVC標準の後継です。 以前のバージョンと比較して、HEVCはより高度な圧縮アルゴリズムを使用しています。 標準に関する詳細は、 こちらをご覧ください 。 Main 10プロファイルでは、4:2:0カラーサブサンプリングで8ビットまたは10ビットカラーを使用できます。



HEVC 10bのデコードのサポートは、Intelプロセッサーの第6世代以降に登場しました。 次のコマンドは、Intel Media SDKサンプルコードセットsample_decodeテストユーティリティを使用して、単純なHEVCストリームから生のフレームを取得する方法を示しています



sample_decode.exe h265 -p010 -i input.h265 -o raw_farmes.yuv -hw
      
      





上記で使用した入力ストリーム(input.h265)は、 ここで取得できます 。 出力ストリーム(raw_frames.yuv)はP010形式である必要があり、 sample_encodeユーティリティのソース素材として使用されます。



HEVC 10bエンコード/デコードハードウェアサポートは、Intelプロセッサーの第7世代以降に実装されています。 10ビットHEVCのエンコードは、この特定の機能のために特別に変更さた追加コードmodified_sample_encodeを使用して実装されます。 この例は、Intel Media SDK 2016 R2で動作します。 アセンブリ手順については、 Intel Media SDKサンプルメディアガイドを参照してください。



以下は、追加れたmodified_sample_encodeの sample_encodeを使用した10ビットエンコーディングの例です。



 sample_encode.exe h265 -i raw_frames.yuv -o output.265 -w 3840 -h 2160 -p010 -hw
      
      







図3.エンコードされたストリームにピクセルあたり10ビットがあることを示すVideo Quality Caliperユーティリティのスクリーンショット。



プロファイルVP9 2



VP9は、VP8の後継としてGoogleが開発したビデオエンコード形式です。 第7世代Intelプラットフォームは10ビットVP9デコードハードウェアアクセラレーションをサポートしますが、エンコードはこれまでのところ、組み合わせたソフトハードウェアです。



ハイダイナミックレンジ(HDR)



ダイナミックレンジは、画像の最も明るい点と最も暗い点の比率です。 高ダイナミックレンジ(HDR)ビデオは、非線形操作を使用して光量をエンコードおよびデコードする通常(SDR)ビデオよりも優れたダイナミックレンジを提供します。



HDRビデオコンテンツは、第7世代Intelプロセッサーから高速化されたハードウェアであるHEVC Main 10またはVP9.2コーデックを使用してサポートされます。 HDRコンテンツを送信するには、システムにDisplayPort 1.4またはHDMI 2.0aポートが装備されている必要があります。 この機能はまだテスト段階にあり、公開リリースには含まれていません。



おわりに



発見したように、開発者は現在、10ビットカラーの明るい色でペイントされ、HD / UHDディスプレイに最適な、最新のフォーマットで美しくリアルなビデオを作成する機会があります。 第7世代のIntelプロセッサーを使用してBT.2020標準コンテンツを作成し、Intel Media SDKの最適化機能を使用することで、4K UHD解像度と今日の標準フレームレートを超えることができます。 将来的には、最新のハードウェアアクセラレーションビデオコーデックの範囲が拡大します。



この記事では、次のソフトウェアについて説明しました(ダウンロードリンク付き)。





便利なリンク






All Articles