【文献】
Fabien Racape, et al.,AHG8: adaptive QP for 360 video coding,Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-F0038_r1,6th Meeting: Hobart, AU,2017年03月,pp.1-4
【文献】
Hendry, et al.,AHG8: Adaptive QP for 360° video ERP projection,Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-F0049_r1,6th Meeting: Hobart, AU,2017年04月,pp.1-4
【文献】
Yule Sun, and Lu Yu,AHG8: Stretching ratio based adaptive quantization for 360 video,Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-F0072,6th Meeting: Hobart, AU,2017年04月,pp.1-4
【文献】
Xiaoyu Xiu, Yuwen He, and Yan Ye,EE3 Related: Adaptive quantization for JEM-based 360-degree video coding,Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-G0089,7th Meeting: Torino, IT,2017年07月,pp.1-6
【文献】
Yule Sun, and Lu Yu,EE3: Adaptive QP for 360° video,Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-G0106,7th Meeting: Torino, IT,2017年07月,pp.1-10
(58)【調査した分野】(Int.Cl.,DB名)
デコーダにおいてコード化されたビデオシーケンス内のコード化された画像またはピクチャをデコードするための方法であって、前記画像またはピクチャは非平面の平面上への投影を表し、前記デコーダは逆量子化ステップを使用し、前記方法は、
複数の第1のブロックのうちの少なくとも1つの第1のブロックに関係する少なくとも1つの暫定デルタ量子化器パラメータ(QP)値を取得するステップと、
第2のブロックに関係するQP値をデコードするステップと、
最終QP値を生成するために、デルタQP値と前記QP値とを組み合わせるステップと、
前記最終QP値を使用して、前記第2のブロックに関連する少なくとも1つの値を逆量子化するステップと、
を含み、
前記第2のブロック内のサンプルのそれぞれの空間位置が前記複数の第1のブロックのうちの単一の第1のブロックに含まれる場合には、前記デルタQP値は、前記単一の第1のブロックの暫定デルタQP値に設定され、または
前記第2のブロック内の前記サンプルの前記それぞれの空間位置が前記複数の第1のブロックのうちの多数の第1のブロックに含まれる場合には、前記デルタQP値は、前記複数の第1のブロックのうちの前記多数の第1のブロックのうちの少なくとも1つの暫定デルタQP値に基づいて設定される、
方法。
前記少なくとも1つの第1のブロックに関する前記少なくとも1つの暫定デルタQP値を取得する前記ステップは、前記複数の第1のブロックに関するデルタQPマップを確立するステップを含む、請求項1に記載の方法。
前記デルタQPマップを確立する前記ステップは、投影フォーマットに関係する少なくとも1つの構文要素をデコードするステップと、前記投影フォーマットの特性を使用して前記デルタQPマップを作成するステップと、を含む、請求項4に記載の方法。
前記デルタQPマップを確立する前記ステップは、前記デルタQPマップ内のデルタQP値を表す複数の整数値のデコーディングを含み、前記複数の整数値は、エントロピーコード化フォーマットでビットストリームに含まれる、請求項4に記載の方法。
前記多数の第1のブロックの暫定デルタQP値の平均および丸めの計算によって、前記複数の第1のブロックのうちの前記多数の第1のブロックの前記暫定デルタQP値を組み合わせるステップ
をさらに含む、請求項1に記載の方法。
前記第2のブロックに関する前記QP値と組み合わされた場合に、前記多数の第1のブロックの暫定QPデルタ値を使用して、数値的に最小の最終QP値をもたらす暫定デルタQP値を決定するステップと、
前記数値的に最小の最終QP値をもたらす前記暫定デルタQP値を前記デルタQP値として設定するステップと、
をさらに含む、請求項1に記載の方法。
前記多数の第1のブロックの前記暫定デルタQP値の中央値の計算によって、前記複数の第1のブロックのうちの前記多数の第1のブロックの前記暫定デルタQP値を組み合わせるステップ
をさらに含む、請求項1に記載の方法。
【発明を実施するための形態】
【0015】
解決すべき課題
360ビデオ圧縮システムは、最初に投影、例えば正距円筒投影、立方体投影などを使用して動作し、360ビデオシーケンスの画像を平面画像にマッピングすることができ、その平面画像またはそのシーケンスは圧縮され得る。平面画像とビデオの圧縮技術はよく知られているが、各サンプルの関連性がほぼ同じである入力素材用に最適化されている。しかし、投影ステップを通じて導入された幾何学的な不正確さと誤差は、それらが投影された球の比較的小さい表面積を表すという点で、平面表現の特定の領域とサンプルが他よりも関連性が低くなるように平面画像をレンダリングする。(平面投影の代わりに)球の表面を表す性能を測定するときに最高レートの歪み性能を得るには、変更されていない形では最適ではないため、平面圧縮技術で特定の最適化が必要である。特に、量子化器パラメータは、投影で単一のサンプルによって表される球の表面積を反映するために、特定の方法で調整する必要がある場合がある。球への逆投影後に同じ忠実度を維持するために、投影の特定の領域ではより粗い量子化が必要な場合があり、他の領域ではより細かい量子化が必要になる場合がある。必要な量子化器の調整量(以降、デルタQP)は、ビデオ圧縮技術または標準規格の特性と、投影の幾何学的特性の組み合わせから導き出すことができる。コード化されたビデオビットストリームで調整されたQPをシグナリングすることは可能であり得る。しかし、そのようなシグナリングにはビットが必要であり、投影の特性に関する共通の知識に基づいてエンコーダとデコーダが必要なデルタQPに従ってQPを調整すると、これらのビットが節約される可能性がある(それによって、システムのレート歪み性能が向上する)。
【0016】
図2は、本開示の一実施形態による通信システム(200)の簡略化されたブロック図を示す。通信システム(200)は、ネットワーク(250)を介して相互接続された少なくとも2つの端末(210〜220)を含むことができる。データの一方向送信の場合、第1の端末(210)は、ネットワーク(250)を介して他の端末(220)に送信するためにローカル位置でビデオデータをコード化することができる。第2の端末(220)は、ネットワーク(250)から他の端末のコード化されたビデオデータを受信し、コード化されたデータをデコードし、回復されたビデオデータを表示することができる。一方向のデータ送信は、メディアサービングアプリケーションなどでは一般的であり得る。
【0017】
図2は、例えば、ビデオ会議中に発生する可能性があるコード化されたビデオの双方向送信をサポートするために提供される第2の端末のペア(230、240)を示す。データの双方向送信の場合、各端末(230、240)は、ネットワーク(250)を介して他の端末に送信するためにローカル位置でキャプチャされたビデオデータをコード化することができる。各端末(230、240)はまた、他の端末によって送信されたコード化されたビデオデータを受信することができ、コード化されたデータをデコードすることができ、回復されたビデオデータをローカルディスプレイ装置に表示することができる。
【0018】
図2では、端末(210〜240)は、サーバー、パーソナルコンピュータ、およびスマートフォンとして例示され得るが、本開示の原理はそのように限定されない。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤ、および/または専用のビデオ会議機器での用途を見出す。ネットワーク(250)は、例えば有線および/または無線通信ネットワークを含む、端末(210〜240)間でコード化されたビデオデータを伝達する任意の数のネットワークを表す。通信ネットワーク(250)は、回路切り替えおよび/またはパケット切り替えチャネルでデータを交換することができる。代表的なネットワークは、通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワークおよび/またはインターネットを含む。本議論の目的のために、ネットワーク(250)のアーキテクチャおよびトポロジーは、以下で本明細書において説明されない限り、本開示の動作にとって重要ではない場合がある。
【0019】
図3は、開示された主題に対する用途の例として、ストリーミング環境におけるビデオエンコーダおよびデコーダの配置を示す。開示された主題は、例えば、ビデオ会議、デジタルTV、CD、DVD、メモリスティックなどを含むデジタルメディアへの圧縮ビデオの格納などを含む他のビデオ対応アプリケーションに等しく適用可能であり得る。
【0020】
ストリーミングシステムは、例えば非圧縮ビデオサンプルストリーム(302)を作成する、例えばデジタルカメラなどのビデオソース(301)を含むことができるキャプチャサブシステム(313)を含むことができる。エンコードされたビデオビットストリームと比較して高いデータボリュームを強調するために太線で示されているサンプルストリーム(302)は、カメラ(301)に接続されたエンコーダ(303)で処理され得る。エンコーダ(303)は、以下でより詳細に説明するように、開示された主題の態様を可能にするまたは実施するために、ハードウェア、ソフトウェア、またはそれらの組み合わせを含むことができる。サンプルストリームと比較してデータ量が少ないことを強調するために細い線で示されている、エンコードされたビデオビットストリーム(304)は、将来使用するためにストリーミングサーバー(305)に格納され得る。1つまたは複数のストリーミングクライアント(306、308)は、ストリーミングサーバー(305)にアクセスして、エンコードされたビデオビットストリーム(304)のコピー(307、309)を取得することができる。クライアント(306)は、エンコードされたビデオビットストリーム(307)の着信コピーをデコードし、ディスプレイ(312)または他のレンダリングデバイス(図示せず)にレンダリングされ得る発信ビデオサンプルストリーム(311)を作成するビデオデコーダ(310)を含むことができる。いくつかのストリーミングシステムでは、ビデオビットストリーム(304、307、309)は、特定のビデオコーディング/圧縮標準規格に従ってエンコードされ得る。これらの標準規格の例は、ITU−T勧告H.265を含む。開発中のビデオコーディング標準規格は、非公式に多用途ビデオコーディングまたはVVCとして知られている。開示された主題は、VVCのコンテキストで使用され得る。
【0021】
図3の通信システム200またはストリーミングシステムを拡張して、360ビデオの使用を可能にすることができる。
図4を参照すると、そのような360システムのレイアウトは以下のようであり得る。360ビデオキャプチャユニット(401)は、360対応ビデオカメラ(402)と、着信する360画像(403)を平面画像(405)に投影するプロジェクタ(404)と、を含むことができる。360画像(403)および平面画像(405)は、コード化されたビデオシーケンス(407)などの圧縮信号と比較したときに高いデータレートを強調するために、太字の矢印で描かれている。平面画像は、平面エンコーダ(406)によって1つまたは複数のコード化されたビデオシーケンス(407)に変換することができ、これは、例えば、プロジェクタ(404)によって生成された、またはプロジェクタから取得された投影に関連するサイドメタ情報も含むことができる。コード化されたビデオシーケンス(407)は、ネットワーク(図示せず)を介してデコーダ/レンダラに直接転送することができ、またはストリーミングサーバー(408)に格納することができる。ストリーミングサーバー(408)は、(平面)デコーダ(410)およびデプロジェクタ(411)を含むことができる360ビデオ対応エンドポイント(409)にコード化されたビデオシーケンスを直接ストリーミングすることができる。デプロジェクタ(411)は、例えば、好ましくは仮想現実ゴーグル(図示せず)、疑似3D可能なスクリーン(412)などのデバイスによって、表示に適した1つまたは複数の画像シーケンスが形成されるように、プロジェクタ(404)によって導入された投影を逆にすることができる。デプロジェクタは、ユーザが視野角、視点などを選択することを可能にするユーザインターフェース(図示せず)によって制御されてもよい。このデータフローでは、プロジェクタ(404)およびエンコーダ(406)によって投影および圧縮された完全な360ビデオプレゼンテーションを360対応エンドポイント(409)にストリーミングする必要があり得る。
【0022】
別の方法として、または追加として、場合によっては360度のシーン全体を再構築するために必要なすべてのデータのデコーディング、または逆投影を実行するための接続または計算リソースを、受信エンドポイントが有していない場合がある。このような場合、従来の(360に対応していない)エンドポイント(413)は、例えば、ユーザインターフェースから取得した、視点に関連するメタ情報(414)を、ネットワークにある360プロセッサ(415)に送信することができる。360プロセッサは、取得したメタ情報に基づいて360対応エンドポイントのタスクを実行し、レンダリングされた平面ビデオ(416)を従来の(平面最適化)エンコーダで再エンコードして、従来のエンドポイント(413)で使用できるようにする。このようなシナリオでは、360シーンの計算量の多いデコーディングと逆投影を、360プロセッサ(415)のようなクラウドベースのリソースにオフロードすることができる。説明したように、360プロセッサは、解凍機構と圧縮機構の両方を備えているため、トランスコーダとして機能することができる。
【0023】
場合によっては、360データの一部は、適切に形成され、適切にマークされている場合、選択的転送ユニット(SFU)によって削除され得る。例えば、投影フォーマットが立方体投影の場合には、特定の視点では、6つの平面正方形の表現のうち少なくとも3つから5つまではレンダリングに必要ない(不透明なソース球を仮定)。例えば、360プロセッサ(415)が使用しているものなどのメタデータを受け取っているので、視点を認識している適切に構成されたSFUは、例えば、スライス、タイル、レイヤ、ビューなどを使用してビットストリームが適切に形成されていると仮定すると、不要な360データの転送を省略することができる。このようなSFUは、完全なトランスコーダが必要とする可能性がある信号処理技術の一部を含まない軽量トランスコーダと見なすことができる。
【0024】
図5は、本発明の一実施形態によるビデオデコーダ(310)の機能ブロック図であり得る。
【0025】
受信機(510)は、デコーダ(310)によってデコードされる1つまたは複数のコーデックビデオシーケンスを受信することができ、同じまたは別の実施形態では、一度に1つのコード化されたビデオシーケンスであり、各コード化されたビデオシーケンスのデコーディングは、他のコード化されたビデオシーケンスから独立している。コード化されたビデオシーケンスは、チャネル(512)から受信することができ、チャネルは、エンコードされたビデオデータを格納する記憶装置へのハードウェア/ソフトウェアリンクであり得る。受信機(510)は、それぞれの使用エンティティ(図示せず)に転送され得る他のデータ、例えば、コード化されたオーディオデータおよび/または補助データストリームと共に、エンコードされたビデオデータを受信することができる。受信機(510)は、コード化されたビデオシーケンスを他のデータから分離することができる。ネットワークジッタに対抗するために、バッファメモリ(515)は、受信機(510)とエントロピーデコーダ/パーサー(520)(以後「パーサー」)との間に結合され得る。受信機(510)が十分な帯域幅と制御性の格納/転送デバイスから、または等時性ネットワークからデータを受信している場合に、バッファ(515)は必要とされないか、または小さくなり得る。インターネットなどのベストエフォートパケットネットワークで使用するために、バッファ(515)が必要となる場合があり、比較的大きくすることができ、有利には適応サイズにすることができる。
【0026】
ビデオデコーダ(310)は、エントロピーコード化されたビデオシーケンスからシンボル(521)を再構築するためのパーサー(520)を含むことができる。これらのシンボルのカテゴリには、デコーダの動作を管理するために使用される情報(310)と、場合によっては、
図3に示すように、これはデコーダの統合部分ではないがデコーダに結合され得るディスプレイなどのレンダリングデバイス(312)を制御するための情報と、が含まれる。レンダリングデバイスの制御情報は、補足拡張情報(SEIメッセージ)またはビデオユーザビリティ情報(VUI)パラメータセットフラグメント(図示せず)の形であってもよい。パーサー(520)は、受信したコード化されたビデオシーケンスを解析/エントロピーデコードすることができる。コード化されたビデオシーケンスのコーディングは、ビデオコーディング技術または標準規格に準拠することができ、可変長コーディング、ハフマンコーディング、文脈依存の有無にかかわらず算術コーディングなどを含む、当業者に周知の原理に従うことができる。パーサー(520)は、グループに対応する少なくとも1つのパラメータに基づいて、ビデオデコーダ内のピクセルのサブグループのうちの少なくとも1つについて一組のサブグループパラメータを、コード化されたビデオシーケンスから抽出することができる。サブグループは、画像のグループ(GOP)、画像、タイル、スライス、マクロブロック、コーディングユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)などを含むことができる。エントロピーデコーダ/パーサーは、変換係数、量子化器パラメータ値、動きベクトルなどのコード化されたビデオシーケンス情報からも抽出することができる。
【0027】
パーサー(520)は、バッファ(515)から受信されたビデオシーケンスに対してエントロピーデコーディング/構文解析動作を実行して、シンボル(521)を作成することができる。パーサー(520)は、エンコードされたデータを受け取り、特定のシンボル(521)を選択的にデコードすることができる。さらに、パーサー(520)は、特定のシンボル(521)が動き補償予測ユニット(553)、スケーラ/逆変換ユニット(551)、イントラ予測ユニット(552)、またはループフィルタ(556)に提供されるべきかどうかを決定することができる。
【0028】
シンボル(521)の再構築は、コード化されたビデオ画像またはその一部(インター画像およびイントラ画像、インターブロックおよびイントラブロックなど)のタイプ、およびその他の要因に応じて、多数の異なるユニットを含むことができる。どのユニットが含まれているか、およびどのように含まれているかは、パーサー(520)によってコード化されたビデオシーケンスから解析されたサブグループ制御情報によって制御され得る。パーサー(520)と以下の多数のユニットとの間のそのようなサブグループ制御情報の流れは、明確にするために示されていない。
【0029】
既に述べた機能ブロックの他に、デコーダ310は、以下に説明するように、概念的にいくつかの機能ユニットに細分することができる。商業的な制約の下で動作する実際の実施態様では、これらのユニットの多くは互いに密接に相互作用し、少なくとも部分的には、互いに統合され得る。しかしながら、開示された主題を説明するために、以下の機能ユニットへの概念的な細分が適切である。
【0030】
最初のユニットは、スケーラ/逆変換ユニット(551)である。スケーラ/逆変換ユニット(551)は、量子化された変換係数、ならびに使用する変換、ブロックサイズ、量子化係数、量子化スケーリング行列などを含む制御情報を、パーサー(520)からシンボル(521)として受け取る。それは、アグリゲータ(555)に入力され得るサンプル値を含むブロックを出力することができる。
【0031】
場合によっては、スケーラ/逆変換(551)の出力サンプルは、イントラコード化されたブロック、すなわち、以前に再構築された画像からの予測情報を使用していないが、現在の画像の以前に再構築された部分からの予測情報を使用できるブロックに関係することができる。そのような予測情報は、イントラ画像予測ユニット(552)によって提供され得る。場合によっては、イントラ画像予測ユニット(552)は、現在の(部分的に再構築された)画像(556)からフェッチされた周囲の既に再構築された情報を使用して、再構築中のブロックと同じサイズおよび形状のブロックを生成する。アグリゲータ(555)は、場合によっては、サンプルごとに、イントラ予測ユニット(552)が生成した予測情報を、スケーラ/逆変換ユニット(551)によって提供された出力サンプル情報に追加する。
【0032】
他の場合では、スケーラ/逆変換ユニット(551)の出力サンプルは、インターコード化された、場合によっては動き補償されたブロックに関係することができる。このような場合、動き補償予測ユニット(553)は、参照画像メモリ(557)にアクセスして、予測に使用されるサンプルをフェッチすることができる。フェッチされたサンプルをブロックに関係するシンボル(521)に従って動き補償した後に、これらのサンプルは、アグリゲータ(555)によってスケーラ/逆変換ユニット(この場合、残差サンプルまたは残差信号と呼ばれる)の出力に追加されて、出力サンプル情報を生成することができる。動き補償ユニットが予測サンプルをフェッチする参照画像メモリ形式内のアドレスは、動きベクトルによって制御でき、例えばX、Y、および参照画像の成分を有することができるシンボル(521)の形式で動き補償ユニットが利用することができる。動き補償は、サブサンプルの正確な動きベクトルが使用されているときに参照画像メモリからフェッチされたサンプル値の補間、動きベクトル予測機構なども含むことができる。
【0033】
アグリゲータ(555)の出力サンプルは、ループフィルタユニット(556)における様々なループフィルタリング技術の対象となり得る。ビデオ圧縮技術は、コード化されたビデオビットストリームに含まれるパラメータによって制御され、パーサー(520)からのシンボル(521)としてループフィルタユニット(556)に提供されるループ内フィルタ技術を含むことができるが、コード化された画像またはコード化されたビデオシーケンスの以前の(デコーディング順で)部分のデコーディング中に取得されたメタ情報に応答し、および以前に再構築されループフィルタ処理されたサンプル値に応答することもできる。
【0034】
ループフィルタユニット(556)の出力は、レンダリングデバイス(312)に出力することができて、将来のインター画像予測で使用するために参照画像メモリ(556)に格納することができるサンプルストリームとすることができる。
【0035】
特定のコード化された画像は、完全に再構築されると、将来の予測のための参照画像として使用することができる。コード化された画像が完全に再構築され、コード化された画像が(例えば、パーサー(520)によって)参照画像として識別されると、現在の参照画像(556)は、参照画像バッファ(557)の一部となることができ、そして、次のコード化された画像の再構築を開始する前に、新しい現在の画像メモリを再割り当てすることができる。
【0036】
ビデオデコーダ(310)は、ITU−T Rec.H.265などの標準規格で文書化され得る所定のビデオ圧縮技術に従ってデコーディング動作を実行することができる。コード化されたビデオシーケンスは、ビデオ圧縮技術文書または標準規格、特にその中のプロファイル文書で指定されているビデオ圧縮技術または標準規格の構文を厳守しているという意味で、使用されているビデオ圧縮技術または標準規格で指定された構文に準拠することができる。また、コード化されたビデオシーケンスの複雑さが、ビデオ圧縮技術または標準規格のレベルで定義されている範囲内にあることも、コンプライアンスに必要である。場合によっては、レベルによって、最大画像サイズ、最大フレームレート、最大再構築サンプルレート(例えば、メガサンプル/秒で測定される)、最大参照画像サイズなどが制限される。レベルによって設定された制限は、場合によっては、仮想参照デコーダ(HRD)の仕様と、コード化されたビデオシーケンスで通知されるHRDバッファ管理のためのメタデータによってさらに制限され得る。
【0037】
一実施形態では、受信機(510)は、エンコードされたビデオと共に追加の(冗長な)データを受け取ることができる。追加のデータは、コード化されたビデオシーケンスの一部として含まれてもよい。追加のデータは、データを適切にデコードし、かつ/または元のビデオデータをより正確に再構築するためにビデオデコーダ(310)によって使用され得る。追加のデータは、例えば、時間的、空間的、または信号対雑音比(SNR)エンハンスメントレイヤ、冗長スライス、冗長画像、前方誤り訂正符号などの形式にすることができる。
【0038】
図6は、本開示の一実施形態によるビデオエンコーダ(303)の機能ブロック図であり得る。
【0039】
エンコーダ(303)は、エンコーダ(303)によってコード化されるビデオ画像をキャプチャすることができる(エンコーダの一部ではない)ビデオソース(301)からビデオサンプルを受信することができる。
【0040】
ビデオソース(301)は、任意の適切なビット深度(例えば、8ビット、10ビット、12ビット、…)、任意の色空間(例えば、BT.601 Y CrCB、RGB、…)、および任意の適切なサンプリング構造(例えば、Y CrCb 4:2:0、Y CrCb 4:4:4)であり得るデジタルビデオサンプルストリームの形式でエンコーダ(303)によってコード化されるソースビデオシーケンスを提供することができる。メディアサービングシステムでは、ビデオソース(301)は、以前に準備されたビデオを格納する記憶装置であってもよい。ビデオ会議システムでは、ビデオソース(303)は、ローカル画像情報をビデオシーケンスとしてキャプチャするカメラであってもよい。ビデオデータは、順番に見たときに動きを与える複数の個別の画像として提供されてもよい。画像自体は、ピクセルの空間アレイとして編成することができ、各ピクセルは、使用中のサンプリング構造、色空間などに応じて、1つまたは複数のサンプルを含むことができる。当業者は、ピクセルとサンプルとの間の関係を容易に理解することができる。以下の説明では、サンプルを中心に説明する。
【0041】
一実施形態によれば、エンコーダ(303)は、用途により必要に応じて、リアルタイムで、または任意の他の時間制約の下で、ソースビデオシーケンスの画像をコード化し、コード化されたビデオシーケンス(643)に圧縮することができる。適切なコーディング速度を強制することは、コントローラ(650)の機能の1つである。コントローラは、以下に説明するように他の機能ユニットを制御し、これらのユニットに機能的に結合されている。明確にするために、結合は描かれていない。コントローラによって設定されるパラメータは、レート制御に関連するパラメータ(画像スキップ、量子化器、レート歪み最適化手法のラムダ値など)、画像サイズ、画像のグループ(GOP)レイアウト、最大動きベクトル検索範囲などを含むことができる。当業者は、コントローラ(650)の他の機能が、特定のシステム設計に最適化されたビデオエンコーダ(303)に関係することができるので、それらを容易に識別することができる。
【0042】
一部のビデオエンコーダは、当業者が「コーディングループ」として容易に認識するもので動作する。過度に簡略化した説明として、コーディングループは、エンコーダ(630)(以降「ソースコーダ」)(コード化される入力画像と参照画像に基づいてシンボルを作成する役割を果たす)のエンコーディング部分、およびシンボルを再構築して(リモート)デコーダも作成するであろうサンプルデータを作成するエンコーダ(303)に組み込まれた(ローカル)デコーダ(633)で構成され得る(シンボルとコード化されたビデオビットストリームとの間の任意の圧縮は、開示された主題で考慮されているビデオ圧縮技術では無損失であるため)。その再構築されたサンプルストリームは、参照画像メモリ(634)に入力される。シンボルストリームのデコーディングにより、デコーダの場所(ローカルまたはリモート)に関係なくビットが正確な結果が得られるので、参照画像バッファの内容もローカルエンコーダとリモートエンコーダとの間でビットが正確である。言い換えると、エンコーダの予測部分は、デコーディング中に予測を使用する場合にデコーダが「見る」であろうものとまったく同じサンプル値を参照画像サンプルとして「見る」。参照動画同期性のこの基本原理(および、例えばチャネルエラーのために同期性が維持できない場合に生じるドリフト)は、当業者によく知られている。
【0043】
「ローカル」デコーダ(633)の動作は、「リモート」デコーダ(310)の動作と同じにすることができ、これは、
図5に関連して上で既に詳細に説明されている。しかしながら、
図5も簡単に参照すると、シンボルが利用可能であり、エントロピーコーダ(645)およびパーサー(520)によるコード化されたビデオシーケンスへのシンボルのエンコーディング/デコーディングは無損失であり得るので、チャネル(512)、受信機(510)、バッファ(515)、およびパーサー(520)を含むデコーダ(310)のエントロピーデコーディング部分は、ローカルデコーダ(633)で完全に実施されなくてもよい。
【0044】
この時点で行うことができる観察は、デコーダに存在する構文解析/エントロピーデコーディング以外の任意のデコーダ技術も、対応するエンコーダに実質的に同一の機能形式で必ず存在している必要があるということである。エンコーダ技術の説明は、包括的に説明されたデコーダ技術の逆であるから、省略することができる。特定の領域でのみ、より詳細な説明が必要であり、以下に提供される。
【0045】
その動作の一部として、ソースコーダ(630)は、動き補償予測コーディングを実行することができ、それは、「参照フレーム」として指定されたビデオシーケンスからの1つまたは複数の以前にコード化されたフレームを参照して入力フレームを予測的にコード化する。このようにして、コーディングエンジン(632)は、入力フレームのピクセルブロックと、入力フレームに対する予測参照として選択され得る参照フレームのピクセルブロックとの間の差をコード化する。
【0046】
ローカルビデオデコーダ(633)は、ソースコーダ(630)によって作成されたシンボルに基づいて、参照フレームとして指定され得るフレームのコード化されたビデオデータをデコードすることができる。コーディングエンジン(632)の動作は、有利には、損失のあるプロセスであってもよい。コード化されたビデオデータがビデオデコーダ(
図6には示されていない)でデコードされ得る場合、再構築されたビデオシーケンスは、通常、いくつかの誤差を伴うソースビデオシーケンスのレプリカであり得る。ローカルビデオデコーダ(633)は、参照フレームに対してビデオデコーダによって実行され得るデコーディングプロセスを複製し、再構築された参照フレームを参照画像キャッシュ(634)に格納させることができる。このようにして、エンコーダ(303)は、遠端ビデオデコーダによって得られる(送信エラーがない)再構築参照フレームとして共通のコンテンツを有する再構築参照フレームのコピーをローカルに格納することができる。
【0047】
予測器(635)は、コーディングエンジン(632)の予測検索を実行することができる。すなわち、コード化される新しいフレームについて、予測器(635)は、(候補参照ピクセルブロックとしての)サンプルデータまたは参照画像の動きベクトル、ブロック形状などの特定のメタデータについて参照画像メモリ(634)を検索することができ、それは新しい画像の適切な予測参照として機能することができる。予測器(635)は、適切な予測参照を見つけるために、サンプルブロックバイピクセルブロックに基づいて動作することができる。場合によっては、予測器(635)によって得られた検索結果によって決定されるように、入力画像は、参照画像メモリ(634)に格納された多数の参照画像から引き出された予測参照を有してもよい。
【0048】
コントローラ(650)は、例えば、ビデオデータをコード化するために使用されるパラメータおよびサブグループパラメータの設定を含む、ビデオコーダ(630)のコーディング動作を管理することができる。
【0049】
前述のすべての機能ユニットの出力は、エントロピーコーダ(645)でエントロピーコーディングを受けることができる。エントロピーコーダは、例えばハフマンコーディング、可変長コーディング、算術コーディングなどの当業者に知られている技術に従ってシンボルを無損失圧縮することにより、様々な機能ユニットによって生成されたシンボルをコード化されたビデオシーケンスに変換する。
【0050】
送信機(640)は、エントロピーコーダ(645)によって作成されたコード化されたビデオシーケンスをバッファリングして、通信チャネル(660)を介して送信の準備をすることができ、通信チャネル(660)は、エンコードされたビデオデータを格納するであろう記憶装置へのハードウェア/ソフトウェアリンクであり得る。送信機(640)は、ビデオコーダ(630)からのコード化されたビデオデータを、送信される他のデータ、例えばコード化されたオーディオデータおよび/または補助データストリーム(ソースは図示せず)とマージすることができる。
【0051】
コントローラ(650)は、エンコーダ(303)の動作を管理することができる。コーディング中に、コントローラ(650)は、各コード化された画像に特定のコード化された画像タイプを割り当てることができ、これは、それぞれの画像に適用され得るコーディング技法に影響を及ぼすことができる。例えば、多くの場合、画像は次のフレームタイプの1つとして割り当てられ得る。
【0052】
イントラ画像(I画像)は、シーケンス内のいかなる他のフレームも予測のソースとして使用せずにコード化およびデコードされ得るものであり得る。一部のビデオコーデックでは、例えば、独立なデコーダリフレッシュ画像など、様々なタイプのイントラ画像を使用できる。当業者は、I画像のそれらの変形およびそれらのそれぞれの用途および特徴を知っている。
【0053】
予測画像(P画像)は、各ブロックのサンプル値を予測するために最大で1つの動きベクトルおよび参照インデックスを使用するイントラ予測またはインター予測を使用してコード化およびデコードされ得るものであり得る。
【0054】
双方向予測画像(B画像)は、各ブロックのサンプル値を予測するために最大で2つの動きベクトルおよび参照インデックスを使用するイントラ予測またはインター予測を使用してコード化およびデコードされ得るものであり得る。同様に、多数の予測画像は、単一のブロックの再構築に3つ以上の参照画像と関連メタデータを使用することができる。
【0055】
ソース画像は、通常、空間的に複数のサンプルブロック(例えば、それぞれ4×4、8×8、4×8、または16×16サンプルのブロック)に分割され、ブロックごとにコード化される。ブロックは、ブロックのそれぞれの画像に適用されたコーディング割り当てによって決定されるように、他の(既にコード化された)ブロックを参照して予測的にコーディングされ得る。例えば、I画像のブロックは非予測的にコード化されてもよく、またはそれらは同じ画像の既にコード化されたブロック(空間予測またはイントラ予測)を参照して予測的にコード化されてもよい。P画像のピクセルブロックは、空間的予測を介して、または以前にコード化された1つの参照画像を参照する時間的予測を介して、非予測的にコード化され得る。B画像のブロックは、空間的予測を介して、または以前にコード化された1つまたは2つの参照画像を参照する時間的予測を介して、非予測的にコード化され得る。
【0056】
ビデオコーダ(303)は、ITU−T Rec.H.265などの所定のビデオコーディング技術または標準規格に従ってコーディング動作を実行することができる。その動作では、ビデオコーダ(303)は、様々な圧縮動作を実行することができ、それは入力ビデオシーケンスにおける時間的および空間的冗長性を活用する予測コーディング動作を含む。したがって、コード化されたビデオデータは、使用されているビデオコーディング技術または標準規格で指定された構文に準拠することができる。
【0057】
一実施形態では、送信機(640)は、エンコードされたビデオと共に追加のデータを送信することができる。ビデオコーダ(630)は、コード化されたビデオシーケンスの一部としてそのようなデータを含むことができる。追加のデータは、時間的/空間的/SNR拡張レイヤ、冗長な画像およびスライスなどの冗長データの他の形式、補足拡張情報(SEI)メッセージ、ビジュアルユーザビリティ情報(VUI)パラメータセットフラグメントなどを含むことができる。
【0058】
平面ビデオソースからサンプルをコーディングまたはデコーディングする場合、すべてのサンプルは、カメラの視点から測定すると、キャプチャの軸に垂直で、十分な距離にある投影面のほぼ同じ角度間隔を表すことができる。
図7を参照して、例として、カメラ(705)によってキャプチャされた、サンプル(702、703、704)に分割された投影面(701)の垂直次元を考える。サンプルサイズは比例して描かれていない。実際のシステムでは、カメラの垂直解像度は3つだけでなく、720、1080、またはそれ以上のサンプルになる可能性がある。サンプルを表す角度間隔(706、708)がほぼ同じであることが観察できる。シーンが適度にフラットで、キャプチャの軸(709)にほぼ垂直であると仮定すると、サンプル(702、703、704)もほぼ同じサイズである。写真の登場以来、この関係は知られており、シーンのサイズに関連して、キャプチャされるシーンへのカメラの近距離など、光学補正が必要な状況下であっても、この関係を可能な限り近づけるようカメラ用レンズを設計することができる。
【0059】
引き続き
図7を参照して、1つの次元のみが描かれた等方投影の簡略化された表現を使用して、球(710)(球の4分の1のみが示されている)であるシーンのキャプチャを検討する。キャプチャの軸(711)が球の赤道(図示せず)に垂直であると仮定する。図示されているのは、同一の角度幅(図示せず)を有する3つのサンプル(713、714、715)である。直感的には、赤道に近いサンプルは、極エリアの描画を担当するサンプルよりも球の表面積がかなり少ないことは明らかである。例えば、球の最北の緯度を表すサンプル715を考える。仕切り(716、717)により示されるその関連する表面積は、サンプル713に関連する表面積よりもかなり大きくなっている。
【0060】
上記の例は極端に見えるかもしれないが、一般的な使用では、実際の用途では、球で測定した表面積で保証されているよりも何倍も大きい特定の極エリアを表す投影があることに留意されたい。「グリーンランド/オーストラリア」の例については、上記を参照されたい。
【0061】
図8は、地球(801)の表面の正距円筒図法を示している。示されているのは、有名なティソーの指示楕円の一例である。地図に重ね合わされた各楕円(802、803、804)は、地球上の円形の表面領域を表している。投影が同じサンプルサイズのサンプルマップで表されていると仮定する。明らかに、赤道から離れた領域、例えば楕円(804)で表される領域では、赤道上の例示的な楕円(802)よりもはるかに多くの投影の表面積、したがってより多くのサンプルが、地球の表面上の同じ領域を表す。
【0062】
図9は、もう1つの投影の例、つまり地表面のKavrayskiy−VII投影(901)を示しており、これもティソーの指示楕円で覆われている。また、緯度と経度の「線」、より具体的には、それぞれ一定の緯度または経度の線もいくつか含まれている。地球の表面上では、各線は他の線と直角に交わり、各交点間の面距離は同じであると仮定される。それでも、投影では、特に特定の極地域および子午線から離れた場所では、「正方形」の表面領域は非正方形領域で表される。中央アフリカ北部をカバーする表面領域(902)を考える。赤道と子午線の両方に近いため、(正確ではないが)ほぼ正方形で表される。極端な反例として、アラスカの大部分をカバーする表面領域(903)を考える。この表面領域(地球上ではほぼ正方形)の形状は大きく歪んでいる。これを
図11に示す。
図9の投影の抜粋で、北西半球(903)の小さい部分のみが描かれており、その中にサンプル(905)のブロックが示されている。表面領域(1102)の形状は、地球上の表面領域に非常に近い正方形表面(1104)に逆投影(1103)され得る。図の下部では、同じ表面領域(903)とブロック(905)が上記のように投影されている。(投影正方形の)ブロック(1105)の非正方形の歪んだジオメトリに留意されたい。さらに、ブロック(905)の歪んだブロック(1105)への逆投影は、領域(903)を四角形に単純にする単純化であることに留意されたい。投影(1106、1107)の表面領域のエッジの湾曲した性質を考慮したならば、ブロック(1105)はさらに歪むことになろう。
【0063】
圧縮に使用される平面画像への球形シーンの投影により、その画像の特定のサンプルが球形シーンのより大きな表面積または角度幅を表す場合、それらのサンプルは、解凍および逆投影後の球形シーンの忠実な再現にさらに関連するようになる。同様に、例えば正距円筒図法を使用する場合、球の赤道領域を表すサンプルは比較的小さな表面積をカバーすることができ、球形シーンの忠実な再現に比較的関連性が低くなる。平面画像およびビデオ用に最適化された従来の画像およびビデオコーデックは、必ずしもこの不等性に対処する必要はない。
【0064】
行わなければならない1つの観察は、平面エンコーダが使用中の投影の性質と特性に関する情報を充分に有する可能性があることである。また、実際のシステム設計では、この情報を、例えばビットストリームを介して、デプロジェクタにも知らせる必要がある。そのような情報がないと、デプロジェクタは、平面デコーダによって生成されたサンプルストリームに対して意味のある操作を行うことができない場合がある。エンコーダシステムとデコーダシステムの両方で、使用中の投影に関するサイド情報(デプロジェクタがプロジェクタで作成されたシーンを逆投影できるように、送信システムから受信システムに必ず送信する必要がある)を簡単に取得できるので、ビデオコーディング自体がその情報を再度コーディングする必要がなく、エンコーダは、デコーダによってそれについてのアプリオリな知識を仮定することができる。もちろん、そのサイド情報もビデオビットストリームに含めることができ、その場合、他の方法で送信する必要がない。
【0065】
一実施形態によれば、投影された360ビデオのコーディングのために最適化された平面ビデオエンコーダは、使用中の投影の特性に関するエンコーダの知識に基づいて、それが生成するコード化されたビデオシーケンスを最適化することができる。
【0066】
理想的には、投影された360材料を圧縮する平面ビデオエンコーダは、360球の大きなキャプチャ角度または表面積を表すサンプルに重点を置き、逆に、360球の小さなキャプチャ角度または表面積を表すサンプルにあまり重点を置かないようにすることができる。例として正距円筒図法を使用し、360球のすべての表面領域がユーザに対して同様の関連性があると仮定すると(ユーザは極域の詳細にほとんど関心がないので、地図投影の場合は必ずしもそうではないが、360ビデオでは有効な仮定となり得る)、極域をカバーするサンプルに重点を置き、赤道域をカバーすることに重点を置かないことが賢明である。
【0067】
多くのビデオコーデックでは、適切な量子化器パラメータ(QP)を選択することで、比較的少数のサンプル、つまり変換ユニット、ブロック、マクロブロックなど(以下「ブロック」)に費やされるビット数を比較的細かく調整することができる。
【0068】
同じまたは別の実施形態では、ビデオエンコーダは、360投影の性質に関するアプリオリの知識を使用して、大きなキャプチャ角度または表面積を表すサンプルを含むブロックと比較して、小さいキャプチャ角度または表面積を表すサンプルを含むブロックに対して、より粗い量子化(数値的にはより高いQP)を選択する。この選択は、エンコーダでローカルに実施することができ、それを実施するためにデコーダ、またはビデオ圧縮技術または標準規格自体で変更する必要はない。同じまたは別の実施形態によれば、エンコーダは(初期化中に、および投影の詳細が既知になると、潜在的に一度だけ)、量子化ステップサイズの差の値のマップ(以降、「デルタQP値」)を作成して使用することができ、これは、(平面最適化された)レート制御によって選択されたQP値と組み合わせて(例えば、後で正規化して追加して)使用され得る。同じまたは別の実施形態では、デルタQPマップは、球に逆投影されたブロックの表面積に基づいて作成することができる。多くのビデオコーデックでは、QPステップサイズと費やされるビット数との間のおおよその関係がわかっている。例えば、H.265では、3つのQPステップサイズとビットレートを2倍にするおおよその関係があり得る。同じまたは別の実施形態では、デルタQP値は、QP値とビットレートとの間の前述の関係と、逆投影されたブロックの表面積と、を適切に設定することによって計算することができる。
【0069】
図9を簡単に参照して、一例として、ブロック(904)を考える。このブロックは赤道の隣にあり、正規化に使用できる。したがって、このブロックとその右側および左側に隣接するブロック(および赤道のすぐ南にある隣接ブロック)は、0のQPデルタを使用することができる。
【0070】
次に、アラスカ北部をカバーするブロック(905)を考える。球に逆投影したときのこのブロックの表面積は、ティソー投影の楕円の相対的なサイズの増加によって推定でき、その推定は、ブロックの赤道ブロックとしての表面積が半分未満であると推定できる。したがって、H.265の3つの量子化ステップサイズがビットレートの約半分になり得るので、このブロックはより粗く、特に3つの量子化ステップサイズで量子化され得る。そのようなスキームを一貫して適用する場合、投影によって導入される幾何学的アーティファクトに関係なく、球上の任意の所与領域を表すビット数はほぼ同じである。
【0071】
図10は、デルタQPマップを生成するための例示的なプロセス1000のフローチャートである。いくつかの実施態様では、
図10の1つまたは複数のプロセスブロックは、エンコーダによって実行され得る。いくつかの実施態様では、
図10の1つまたは複数のプロセスブロックは、エンコーダとは別の、またはそれを含む別のデバイスまたはデバイスのグループによって実行され得る。
【0072】
図10を参照すると、デルタQPマップを埋める機構は、以下のように説明することができる。ループ(1001)は、投影が分割されるすべてのブロックにわたって実行することができる。ブロックサイズは、例えば、8×8または16×16サンプルにすることができる。ループ内では、ブロックごとに、ブロックの4つの座標を球に逆投影(1002)して、空間に4つのポイントを生成することができる。逆投影の性質は、順投影に依存する。空間の5番目の点、つまり球の中心も既知である。これらの4つまたは5つの点を使用して、4つの点によって識別される球の表面の表面積、および場合によっては球の中心を計算することができる(1003)。球の中心の位置がわからない場合、表面積は、場合によっては、4つの点が平行四辺形を形成するという仮定の下で概算することができる。この場合、近似の性質により、近似された表面積が球に正しく投影された表面積よりも小さい場合があるが、これは、長方形の投影の場合、表面積は平坦であるのに対し、球では湾曲しているためである。
【0073】
球の表面積をブロックの表面積(例えば、8×8または16×16サンプル)に関連させて配置すると、投影が増加する(1004)。投影の増加は、既知の特性または問題の平面ビデオコーデックの特性を使用して、このブロックのデルタQP値を決定するために使用することができる。例えば、HEVCの場合、予測の増加が2倍になると、QP値が3倍に変化する可能性がある関係となり得る。
【0074】
図10はプロセス1000の例示的なブロックを示すが、いくつかの実施態様では、プロセス1000は、
図10に示すものよりも、さらなるブロック、より少ないブロック、異なるブロック、または異なるように配置されたブロックを含むことができる。それに加えて、またはその代わりに、プロセス1000の2つ以上のブロックは、並行して実行されてもよい。
【0075】
図12を参照すると、上記の機構によって生成された、設計にハードコード化された、または何らかの他の機構によってエンコーダで利用可能な、デルタQPマップの一例が示されている。ここでもう一度Kavrayskiy−VII投影により、太字の線(1101)で示された例示的な投影で地球の4分の1が示されている。投影(1201)は、ブロック(1202)のグリッドによってオーバーレイされている(単一のブロックのみが符号(1202)によって示されている)。それらのブロックの各々は、例示的なデルタQP値と共に示されている。デルタQP値が投影の0/0緯度/経度点からの距離と共に増加することが観察され得る。
【0076】
正距円筒図法(図示せず)のデルタQPマップの作成には、ブロックの各行の同一値のデルタQP値の選択と、行の赤道からの距離が増加するにつれて行間の次第に増加するデルタQP値の選択が含まれ得る。正確には、あるデルタQP値から次のデルタQP値への変更が発生する場所(行間)は、QP値の減少とビットレートの増加との関係を含む、ビデオ圧縮技術または標準規格の特性によって異なる。
【0077】
図13は、さらなる例として、立方体および二十面体投影のデルタQPマップを示している。これらの投影では、既に説明したように、6個の立方体と20個の二十面体の面を1つの平面に組み立てることができる。これらの6個または20個の表面の幾何学的歪みは互いに類似しているため、投影に示されている正方形または三角形の1つについてのみ、デルタQPマップを記述する必要がある。
【0078】
最初の例として二十面体の投影を取り上げると、20個の三角形(1302)のうちの1つが拡大された完全な投影(1301)が示されている。各三角形は特定の数のブロックでカバーすることができ、ここでは、三角形を水平方向にカバーするために6つのブロックが必要で、垂直方向にカバーするために5つのブロックが必要であるが、これらの数は、ブロックサイズ、所望する完全な投影サイズなどによって異なる場合がある。各ブロック(1303)について、整数はH.265などのビデオ圧縮技術を使用した場合の知覚できるQP値の増加を示す。各三角形が球の表面の比較的小さな領域をカバーしているので、幾何学的な歪みは比較的小さく、したがってデルタQP値の知覚できる変化は等しく小さい。H.265などのコーデックの場合、各三角形のコーナーをカバーするブロックのみがQP値のわずかな調整を必要とする場合がある。
【0079】
対照的に、立方体投影(1304)の場合、コンテンツを忠実に表すには、ブロックごとのデルタQP値(1306)の大幅な変化が必要になり得る。再び描かれているのは、立方体(1305)の1つの表面であり、これは6×6のブロックに分割されている。H.265などのコーディング技術では、忠実な表現のためにQP値の調整を必要としない36個のブロックのうちの4つだけが示されているため、デルタQP値が0のブロックは4つだけである。
【0080】
二十面体の投影を含む、立方体とその他の正多面体の投影の両方で、デルタQP値の増加は、正多面体の中心でゼロから始まり、中心からの距離が増加するにつれてすべての方向に均一に増加するデルタQP値の増加として説明することができる。増加の速度は、距離の増加と共に増加する可能性があり、表面のエッジに近づくにつれて増加するキャプチャの角度を反映する。
【0081】
当業者は、上記の機構を様々な他の投影に容易に適合させ、ビットレートを、用途の必要に応じて、デルタQP特性、ブロックサイズ、ブロック形状などに適合させることができる。
【0082】
特定の投影法を使用する場合、デルタQP値は、画像、タイル、またはスライスのエンコード中に数回変化する可能性がある。これらの変更の各々がビットを消費する可能性がある。しかし、これらの変更は、既に説明したように、デルタQPマップを使用して予測することができ、これは、使用されるビデオ圧縮技術または標準規格のアプリオリな知識と、エンコーダとデコーダの両方で等しく知られている投影の特性と、に基づいて、エンコーダとデコーダの両方で構築することができる。
【0083】
同じまたは別の実施形態では、デコーダは、投影の特性と、それが基づく圧縮技術または標準規格の知識と、に基づいて、既に説明したように、デルタQPマップを構築することができる。同じまたは別の実施形態では、投影の特性は、例えば、シーケンスパラメータセット、ピクチャパラメータセット、シーケンスヘッダ、画像のグループ(GOP)ヘッダ、画像ヘッダ、スライスヘッダ、または類似の構文構造(高準位構文構造、または以後HLS構造)に配置された1つまたは複数の規範的構文要素として、コード化されたビデオビットストリーム内のデコーダで利用できるようにすることができる。同じまたは別の実施形態では、投影の特性は、帯域外機構を介してデコーダが利用できるようにすることができる。
【0084】
特性のコーディングは、多くの形式をとることができる。同じまたは別の実施形態では、単一または少数の構文要素の抽象的な値を使用して、デコーダが基づく同じ仕様または異なる仕様であり得るビデオコーディング技術仕様で定義され得る複数のそれらの機構から、デルタQPマップ生成機構を直接または間接的に示すことができる。直接指示は、デルタQPマップ生成機構を直接参照することができる。間接指示は、例えば、投影への参照であってもよく、その仕様は、QPマップ生成機構および平面から球表面への幾何学的マッピングまたはその逆のような他の特性を含むことができる。例えば、例えば8ビットの符号なし整数としてコード化された構文要素「projection_id」が存在し得る。この構文要素により、最大256個の投影のシグナリングが可能になり、各投影は、独自のデルタQPマップ生成機構を含むことができる。HLS構造の構文図の対応するエントリは、次の形式をとることができる。
【0086】
デルタQPマップの他の形式のコーディングも可能である。例えば、デルタQPマップは、高レベルの構文構造に直接コード化され得る。このようなコーディングは、0から7などの適切な番号範囲の整数値の2次元行列の形式にすることができ、行列の各要素はn×nサンプルのブロックを表しており、nは例えば4、8、または16にすることができる。例えば、ビデオ圧縮技術または標準仕様の作業で一般的に使用される構文を使用し、2の累乗であるブロックサイズの正方形ブロックを仮定し、「planar_size x」および「planar_size y」は平面画像のサイズを表し、すべてサンプルで測定され、このようなマップは次のように表すことができる。
【0088】
上記の構文図で、「x」と「y」は実行中の変数であり、「planar_size_x」と「planar_size_y」はサンプルで測定された(投影された)平面表面のサイズを表し、「blocksize」は、デルタQP値がコード化されているブロックのサイズを表す。そのブロックサイズは、例えば、最小の変換と同じサイズ、例えば4×4になるように選択することができる。その場合、「qp_delta」構文要素の数は比較的多くなる可能性があるが、その数が多いと、投影における個々のサンプルの関連性を厳密に近似することができる。より大きなブロックサイズを選択することもでき、これにより、コード化する必要のあるデルタQP値が少なくなるため、直接コード化されたデルタQPマップのビットを節約することができるが、しかし、投影における個々のサンプルの関連性の近似はそれほど精密ではない場合がある。多くの関連するビデオ圧縮技術または標準規格は変換を使用し、量子化は変換係数に作用する。そのため、最小の変換ブロックサイズよりも細かい粒度でデルタQPマップをコーディングする利点は限られている。デルタQPマップに使用されるブロックのサイズは、「log2_blocksize」(一般的に使用される変換サイズは2の累乗であるのでlog2)などの構文要素でコード化され得る。
【0089】
同じまたは別の実施形態では、そのような直接コード化されたデルタQPマップは、例えば、適切なランレングスコーディング機構、.zipなどの当技術分野で知られている一般的な圧縮アルゴリズムなどを使用することにより、適切にエントロピーコード化され得る。当業者は、デルタQPマップのためのそのようなコーディング機構を容易に考案することができる。
【0090】
上記の2つの機構と同様の目的に役立ち得る他の機構の選択は、用途の要件と、そのような用途が有する可能性のある圧縮、計算、およびメモリの制約に依存する可能性がある。
【0091】
さらに、デルタQPマップの使用を可能にし得る構文要素「enable_qpmap」を含めるのが賢明であり得る。その構文要素の値が「false」の場合、平面デコーダはデルタQPマップを使用することができない。しかし、その構文要素の値が「true」の場合、デコーダはデルタQPマップを上記の方法で、すなわち、その平面デコーディングプロセスがデコーディング中に到達するQP値にデルタQP値を加算または減算することにより、使用することができる。
【0092】
図14は、一実施形態による、デコーダにおけるサンプルの再構築のための例示的なプロセス1400のフローチャートである。いくつかの実施態様では、
図14の1つまたは複数のプロセスブロックは、デコーダによって実行され得る。いくつかの実施態様では、
図14の1つまたは複数のプロセスブロックは、デコーダとは別の、またはデコーダを含む別のデバイスまたはデバイスのグループによって実行され得る。
【0093】
同じまたは別の実施形態では、デコーダは、以下のようにデルタQPマップを使用することができる。
図14を参照すると、デコーディングプロセスの初期のある時点で、デルタQPマップがデコードされ(1401)、メモリに格納される(1402)。平面デコーダでは、通常どおりデコーディングが進行する。具体的には、デコーディングは、ビットストリーム(1403)からのQP値のデコーディングを含むことができる。そのQP値は、変換ユニット(TU)に関連している。そのTUの空間位置は、デコーダによって知られている。この時点で、デコーダは、格納されているデルタQPマップ(1404)にアクセスして、ブロックに関連する1つまたは複数のデルタQP値(例えば、暫定デルタQP値)を識別することができる。
【0094】
TUサイズとデルタQPマップのブロックサイズは必ずしも同じである必要はなく、必ずしもTUのエッジとデルタQPマップブロックに対して揃える必要はない。TUの空間領域がデルタQPマップのブロックに完全に含まれている場合、最終QP値を得るために(1405)、例えば、デコードされたTUのQP値にその値を加算または減算することにより、直接適用され得る単一のデルタQP値のみが存在する場合がある。TUの空間領域がデルタQPマップの多数のブロックにまたがる場合、様々なブロックのデルタQPマップ内のデルタQP値が異なる可能性があるため、適用可能なデルタQP値の決定はそれほど簡単ではない。特定の代替案が存在し、ビデオコーディング技術または標準規格は、次の代替案の1つまたは複数、または、当業者が容易に識別することができる別の適切な代替案を指定することができる。
【0095】
第1の代替例として、TUの少なくとも一部が細かい表現を必要とするという理論では、可能な限り細かい量子化を選択することができ、言い換えれば、選択されているのはデルタQP値であり、デコードされたQP値に追加/減算すると、数値的に最小の最終QP値が得られる。
【0096】
第2の代替例として、例えば、適切な丸めを用いて、適用可能なデルタQP値の中央値、平均、または任意の他の組み合わせを計算することによって、様々なデルタQP値を組み合わせることができる。
【0097】
第3の代替例として、TUとデルタQPブロックは、サンプルとして表される空間領域をカバーすることに留意されたい。特定のビデオ圧縮技術と標準規格では、TUもデルタQPブロックも使用されていないため、サンプル空間が重複する場合がある。つまり、各サンプル位置は厳密に1つのTUと厳密に1つのデルタQPブロックに属している。それらのビデオ圧縮技術と標準規格の場合、TUの特定のサンプル位置がデルタQPマップのどのブロックに該当するかを特定することで、TUのデルタQP値を選択することができる。TUにおけるそのようなサンプル位置は、例えば、TUの左上のサンプル位置、中央のサンプル位置、またはTUにおける任意の他のサンプル位置を含むことができる。次に、TUのデコーディングのためのデルタQP値は、そのサンプル位置を含むデルタQPマップ内のブロックに関連付けられたデルタQP値にすることができる。
【0098】
エンコーダとデコーダが同じ組み合わせ機構を使用している限り、不一致とコーディングドリフトを回避することができる。ビデオ圧縮技術の仕様または標準規格では、使用する組み合わせを簡単に定義することができる。
【0099】
上記で得られた最終QP値は、変換係数の逆量子化(1406)に使用することができる。次に、逆量子化された変換係数が逆変換されて(1407)、ビデオコーディング技術または標準規格(図示せず)に準拠したさらなる処理に使用される暫定サンプル値が取得される。処理は、コード化されたビデオシーケンス(図示せず)の終わりまで次のTUで続行される。
【0100】
図14はプロセス1400の例示的なブロックを示すが、いくつかの実施態様では、プロセス1400は、
図14に示すものよりも、さらなるブロック、より少ないブロック、異なるブロック、または異なるように配置されたブロックを含むことができる。それに加えて、またはその代わりに、プロセス1400の2つ以上のブロックは、並行して実行されてもよい。
【0101】
図15は、最終QP値を生成し、最終QP値を使用して逆量子化を実行するための例示的なプロセス1500のフローチャートである。いくつかの実施態様では、
図15の1つまたは複数のプロセスブロックは、デコーダによって実行され得る。いくつかの実施態様では、
図15の1つまたは複数のプロセスブロックは、デコーダとは別の、またはデコーダを含む別のデバイスまたはデバイスのグループによって実行され得る。
【0102】
図15に示すように、プロセス1500は、複数の第1のブロックのうちの少なくとも1つの第1のブロックに関係する少なくとも1つの暫定デルタ量子化器パラメータ(QP)値を取得するステップを含むことができる(ブロック1501)。
【0103】
図15にさらに示すように、プロセス1500は、第2のブロックに関係するQP値をデコードするステップを含むことができる(ブロック1502)。
【0104】
図15にさらに示すように、プロセス1500は、第2のブロックにおけるサンプルのそれぞれの空間位置が複数の第1のブロックの単一の第1のブロックに含まれるかどうかを決定するステップを含むことができる(ブロック1503)。
【0105】
図15にさらに示すように、第2のブロックにおけるサンプルのそれぞれの空間位置が複数の第1のブロックの単一の第1のブロックに含まれる場合(ブロック1503−はい)、プロセス1500は、デルタQP値を単一の第1のブロックの暫定デルタQP値に設定するステップを含むことができる。(ブロック1504)。
【0106】
図15にさらに示すように、第2のブロック内のサンプルのそれぞれの空間位置が複数の第1のブロックのうちの多数の第1のブロックに含まれる場合(ブロック1503−いいえ)には、プロセス1500は、複数の第1のブロックのうちの多数の第1のブロックの少なくとも1つの暫定デルタQP値に基づいて、デルタQP値を設定するステップを含むことができる。(ブロック1505)。
【0107】
図15にさらに示すように、プロセス1500は、デルタQP値とQP値とを組み合わせて最終QP値を生成するステップを含むことができる(ブロック1506)。
【0108】
図15にさらに示すように、プロセス1500は、最終QP値を使用して第2のブロックに関連する少なくとも1つの値を逆量子化するステップを含むことができる(ブロック1507)。
【0109】
図15はプロセス1500の例示的なブロックを示すが、いくつかの実施態様では、プロセス1500は、
図15に示すものよりも、さらなるブロック、より少ないブロック、異なるブロック、または異なるように配置されたブロックを含むことができる。それに加えて、またはその代わりに、プロセス1500の2つ以上のブロックは、並行して実行されてもよい。
【0110】
上記の360画像およびビデオコーディングのためのQP選択のための技術は、コンピュータ可読命令を使用するコンピュータソフトウェアとして実施することができ、1つまたは複数のコンピュータ可読媒体に物理的に格納することができる。例えば、
図16は、開示された主題の特定の実施形態を実装するのに適したコンピュータシステム1600を示す。
【0111】
コンピュータソフトウェアは、コンピュータ中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)などにより、アセンブリ、コンパイル、リンク、または同様の機構の対象となり得、直接に、または翻訳、マイクロコードの実行などを通じて実行され得る命令を含むコードを作成することができる、任意の適切なマシンコードまたはコンピュータ言語を使用してコード化することができる。
【0112】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバー、スマートフォン、ゲームデバイス、モノのインターネットデバイスなどを含む、様々なタイプのコンピュータまたはその構成要素上で実行することができる。
【0113】
コンピュータシステム1600について
図16に示す構成要素は、本質的に例示的なものであり、本開示の実施形態を実装するコンピュータソフトウェアの使用または機能の範囲に関する制限を示唆することを意図するものではない。また、構成要素の構成は、コンピュータシステム1600の例示的な実施形態に示されている構成要素のいずれか1つまたは組み合わせに関する依存性または要件を有するものとして解釈されるべきではない。
【0114】
コンピュータシステム1600は、特定のヒューマンインターフェース入力デバイスを含むことができる。そのようなヒューマンインターフェース入力デバイスは、例えば、触覚入力(キーストローク、スワイプ、データグローブの動きなど)、オーディオ入力(音声、拍手など)、視覚入力(ジェスチャーなど)、嗅覚入力(図示せず)による、1人または複数の人間ユーザによる入力に応答することができる。ヒューマンインターフェースデバイスを使用して、音声(スピーチ、音楽、環境音など)、画像(スキャンされた画像、静止画像カメラから得られる写真画像など)、ビデオ(2次元ビデオ、立体ビデオを含む3次元ビデオなど)などの人間による意識的な入力に必ずしも直接関係しない特定のメディアをキャプチャすることもできる。
【0115】
入力ヒューマンインターフェースデバイスは、キーボード1601、マウス1602、トラックパッド1603、タッチスクリーン1610、データグローブ1604、ジョイスティック1605、マイク1606、スキャナ1607、カメラ1608のうちの1つまたは複数(各1つのみを表示)を含むことができる。
【0116】
コンピュータシステム1600はまた、特定のヒューマンインターフェース出力デバイスを含むことができる。そのようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音、光、および嗅覚/味覚を通じて、1人または複数の人間のユーザの感覚を刺激することができる。このようなヒューマンインターフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン1610、データグローブ1604、またはジョイスティック1605による触覚フィードバックであるが、入力デバイスとして機能しない触覚フィードバックデバイスもあり得る)、オーディオ出力デバイス(スピーカ1609、ヘッドフォン(図示せず)など)、視覚出力デバイス(陰極線管(CRT)画面、液晶ディスプレイ(LCD)画面、プラズマ画面、有機発光ダイオード(OLED)画面を含む画面1610などであって、それぞれタッチスクリーン入力機能の有無にかかわらず、また触覚フィードバック機能の有無にかかわらず、−これらの一部は、ステレオグラフィック出力、仮想現実眼鏡(図示せず)、ホログラフィックディスプレイ、およびスモークタンク(図示せず)などの手段を介して、2次元の視覚的出力または3次元を超える出力を出力することができる)、ならびにプリンタ(図示せず)を含むことができる。
【0117】
コンピュータシステム1600はまた、CD/DVDまたは同様の媒体1621を備えたCD/DVD ROM/RW 1620を含む光学メディア、サムドライブ1622、取り外し可能なハードドライブまたはソリッドステートドライブ1623、テープおよびフロッピーディスク(図示せず)などの従来の磁気媒体、セキュリティドングル(図示せず)などの専用のROM/ASIC/PLDベースのデバイスなどの、人間がアクセス可能な記憶装置および関連メディアを含むことができる。
【0118】
当業者はまた、ここで開示される主題に関連して使用される「コンピュータ可読媒体」という用語は、伝送媒体、搬送波、または他の一時的な信号を包含しないことを理解するべきである。
【0119】
コンピュータシステム1600は、1つまたは複数の通信ネットワークへのインターフェースも含むことができる。ネットワークは、例えば、無線、有線、光であり得る。さらに、ネットワークは、ローカル、広域、大都市圏、車両および産業、リアルタイム、遅延耐性などであり得る。ネットワークの例は、イーサネットなどのローカルエリアネットワーク、無線LAN、モバイル通信用グローバルシステム(GSM)、第3世代(3G)、第4世代(4G)、第5世代(5G)、ロングタームエボリューション(LTE)などを含むセルラーネットワーク、ケーブルテレビ、衛星TV、および地上波放送TVを含むTV有線または無線広域デジタルネットワーク、ならびに、CANBusを含む車両および産業用などを含む。特定のネットワークでは、一般に、特定の汎用データポートまたは周辺バス(1649)、例えばコンピュータシステム1600のユニバーサルシリアルバス(USB)ポートなど、に接続された外部ネットワークインターフェースアダプタが必要であり、その他のネットワークは、一般に、後述するようにシステムバスへの取り付けによりコンピュータシステム1600のコアに統合されている(例えば、PCコンピュータシステムへのイーサネットインターフェースまたはスマートフォンコンピュータシステムへのセルラーネットワークインターフェース)。これらのネットワークのいずれかを使用して、コンピュータシステム1600は他のエンティティと通信することができる。このような通信は、単方向、受信のみ(例えば、放送TV)、単方向送信のみ(例えば、CANbusから特定のCANbusデバイス)、または双方向、例えば、ローカルエリアまたはワイドエリアデジタルネットワークを使用する他のコンピュータシステムへの通信であり得る。上記のように、特定のプロトコルとプロトコルスタックは、これらのネットワークとネットワークインターフェースのそれぞれで使用することができる。
【0120】
前述のヒューマンインターフェースデバイス、ヒューマンアクセス可能な記憶装置、およびネットワークインターフェースは、コンピュータシステム1600のコア1640に取り付けることができる。
【0121】
コア1640は、1つまたは複数の中央処理ユニット(CPU)1641、グラフィックス処理ユニット(GPU)1642、フィールドプログラマブルゲート領域(FPGA)1643の形式の特殊なプログラマブル処理ユニット、特定のタスクのためのハードウェアアクセラレータ1644などを含むことができる。これらのデバイスは、読み取り専用メモリ(ROM)1645、ランダムアクセスメモリ(RAM)1646、ユーザがアクセスできない内部ハードドライブ、ソリッドステートドライブ(SSD)などの内部大容量記憶装置1647と共に、システムバス1648を介して接続され得る。一部のコンピュータシステムでは、システムバス1648は1つまたは複数の物理プラグの形でアクセスでき、追加のCPU、GPUなどによる拡張を可能にする。周辺機器は、コアのシステムバス1648に直接、または周辺バス1649を介して接続することができる。周辺バスのアーキテクチャには、周辺構成要素相互接続(PCI)、USBなどが含まれる。
【0122】
CPU1641、GPU1642、FPGA1643、およびアクセラレータ1644は、組み合わせて、前述のコンピュータコードを構成することができる特定の命令を実行することができる。そのコンピュータコードは、ROM 1645またはRAM 1646に格納することができる。移行データもRAM 1646に保存することができるが、永続データは、例えば内部大容量記憶装置1647に格納することができる。任意のメモリデバイスへの高速ストレージとリトリーブは、1つまたは複数のCPU 1641、GPU 1642、大容量記憶装置1647、ROM 1645、RAM 1646などと密接に関連付けることができるキャッシュメモリを使用して有効にすることができる。
【0123】
コンピュータ可読媒体は、様々なコンピュータ実施動作を実行するためのコンピュータコードをその上に有することができる。メディアおよびコンピュータコードは、本開示の目的のために特別に設計および構築されたものであり得るか、またはそれらは、コンピュータソフトウェア技術の当業者に周知であり利用可能な種類のものであり得る。
【0124】
限定ではなく例として、アーキテクチャ1600、具体的にはコア1640を有するコンピュータシステムは、1つまたは複数の有形のコンピュータ可読媒体に組み込まれたソフトウェアを実行するプロセッサ(CPU、GPU、FPGA、アクセラレータなどを含む)の結果として機能を提供することができる。そのようなコンピュータ可読媒体は、上で紹介されたようなユーザがアクセス可能な大容量記憶装置、ならびにコア内部大容量記憶装置1647またはROM 1645などの非一時的な性質のコア1640の特定の記憶装置に関連する媒体であり得る。本開示の様々な実施形態を実装するソフトウェアは、そのようなデバイスに格納され、コア1640によって実行され得る。コンピュータ可読媒体は、特定のニーズに従って、1つまたは複数のメモリデバイスまたはチップを含むことができる。ソフトウェアは、コア1640とその中のプロセッサ(CPU、GPU、FPGAなどを含む)に、ソフトウェアで定義されたプロセスに従ってRAM 1646に格納されているデータ構造の定義やそのようなデータ構造の変更など、ここで説明する特定のプロセスまたは特定のプロセスの特定の部分を実行させることができる。加えて、または代替例として、コンピュータシステムは、ハードウェアに組み込まれた、または回路(例えばアクセラレータ1644)に組み込まれたロジックの結果として、ここで説明する特定のプロセスまたは特定のプロセスの特定の部分を実行するソフトウェアの代わりにまたは一緒に動作できる機能を提供することができる。ソフトウェアへの言及はロジックを含むことができ、妥当な場合には、その逆も可能である。コンピュータ可読媒体への言及は、実行のためのソフトウェア、実行のためのロジックを具体化する回路、または妥当な場合には、その両方を格納する回路(集積回路(IC)など)を包含することができる。本開示は、ハードウェアとソフトウェアの任意の適切な組み合わせを包含する。
【0125】
本開示はいくつかの例示的な実施形態を説明してきたが、本開示の範囲内にある変更、置換、および様々な代替均等物が存在する。したがって、当業者は、本明細書では明示的に示されていないか、または記載されていないが、本開示の原理を具現化し、したがってその趣旨および範囲内にある多数のシステムおよび方法を考案できることが理解されよう。
【0126】
略語:
量子化器パラメータ(QP)
多用途ビデオコーディング(VVC)
選択的転送ユニット(SFU)
補足拡張情報(SEI)
ビデオユーザビリティ情報(VUI)
画像のグループ(GOP)
コーディングユニット(CU)
変換ユニット(TU)
予測ユニット(PU)
仮想参照デコーダ(HRD)
信号対雑音比(SNR)
画像のグループ(GOP)
イントラ画像(I画像)
予測画像(P画像)
双方向予測画像(B画像)
高効率ビデオコーディング(HEVC)
高水準構文(HLS)