説明

多視点ビデオ符号化のための参照ピクチャ・リスト管理方法

【課題】復号器によって復号されるピクチャからの情報を考慮して、メモリ・デバイス内に保存された参照ピクチャに対してメモリ管理操作を実行する、コーダを提供する。
【解決手段】ピクチャ参照リスト順序づけプロセスが、動画像をコーディングするための多視点コーダ用に定義され、ピクチャ・リストは、コーディングされるピクチャがビューに関連するかどうか(715)に関係して規定される、ピクチャをコーディングするために使用される、参照ピクチャのコーディング順序を有する。したがって、ピクチャ・リストの順序づけは、参照ピクチャがコーディングされるピクチャに対して有する時間的関係(720)および参照ピクチャと関連するビュー(715)に応じて、ピクチャ参照リスト内の参照ピクチャのコーディング順序を変更する(725)。

【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本出願は、参照によりその全体が本明細書に組み込まれる、2006年10月13日に出願された、米国仮出願第60/851,863号、および同様に参照によりその全体が本明細書に組み込まれる、2006年10月13日に出願された、米国仮出願第60/851,521号の利益を主張する。
【0002】
本発明は、動画像の分野に関し、特に、ビデオ・ピクチャをコーディングするために使用される場合の、参照ピクチャの順序づけの問題に関する。
【背景技術】
【0003】
多くのフレーム間符号化システムは、参照ピクチャを使用し、そのような参照ピクチャの使用は、符号化されたビット・ストリームのサイズを縮小するのに役立つ。このタイプの結果は、符号化効率が、フレーム内符号化技法を単独で単に使用するよりも良好になることである。したがって、多くの符号化規格は、一連の動画像からのビット・ストリームを符号化するために、フレーム内およびフレーム間符号化技法の両方を含む。当技術分野で知られているように、異なるタイプの参照ピクチャが、符号化規格のために使用される。例えば、ピクチャそれ自体の内部の要素(イントラ・フレーム)だけを使用することによって符号化されるIピクチャ、ピクチャそれ自体の内部からの要素および/または2つの先行する参照ピクチャからの要素(インター・フレーム)を使用することによって符号化されるBピクチャ、ならびにピクチャそれ自体の内部からの要素および/または1つの先行する参照ピクチャからの要素(インター・フレーム)を使用することによって符号化されるPピクチャなどがある。
【0004】
したがって、BピクチャまたはPピクチャが、符号化されて生成される場合や復号される場合、そのようなピクチャが、適切に符号化され、または復号動作中に構成され得るように、そのようなピクチャは、他の参照フレームに依存する。符号化/復号システムは、他のピクチャが参照ピクチャを考慮して符号化または復号されている間、そのような参照ピクチャを保存できるように、何らかのタイプのメモリ・ロケーションを提供すべきである。これらのタイプのピクチャは、互いの間に時間的関係を有する。
【0005】
この状況は、異なるビデオ・ピクチャの間の複数のビューが考慮されるビデオ規格について検討する場合、より複雑になる。例えば、図1は、多視点ビデオ符号化システム(Multiview Video Coding system)において使用される、参照ピクチャ構造の例示的な一実施形態を表している。具体的には、提示された構造は、A.Vetro、Y.Su、H.Kimata、A.Smolic、「Joint Multiview Video Model (JMVM) 1.0」、JVT−T208.doc、Klagenfurt、Austria、2006年7月において提案された多視点符号化(MVC)スキームによる、8つの異なるビュー(S0〜S7)の多時点(T0〜T100)にわたる使用に関する。この多視点符号化規格は、AVC(Advanced Video Coding)規格(G.Sullivan、T.Wiegand、A.Luthra、「Draft of Version 4 of H.264/AVC (ITU−T Recommendation H.264 and ISO/IEC 14496−10 (MPEG−4 part 10) Advanced Video Coding)」、Palma de Mallorca、ES 18−22、2004年10月)における符号化に基づいている。両規格の大きな相違は、AVCは多視点ピクチャのコーディングに対処しないが、MVCは対処することである。
【0006】
図1を参照すると、例えば、T1におけるビュー(view)S1に関連するピクチャをコーディングする場合、コーディングされるピクチャは、同じビュー(T0におけるS1およびT2におけるS1)からのピクチャ(参照ピクチャ)に関係し、またコーディングされるピクチャは、異なるビュー(T1におけるS0およびT1におけるS2)からのピクチャに関係することが分かる。したがって、S1、T1に関連するピクチャをコーディングする場合、参照ピクチャ(T0におけるS1、T2におけるS1、T1におけるS0、およびT1におけるS2)を、バッファ、レジスタ、およびRAMなどの、メモリ・デバイスに保持することは理に適っている。
【0007】
AVCビデオ規格で使用されるような、コーダと、参照ピクチャを保存するメモリ・デバイスの動作の一般化された実施が、図2に示されている。具体的には、ブロック図200において、コーダ205と、コーディング・バッファ210と、復号済ピクチャ・バッファ(DPB:decoded picture buffer)215とが、開示されている。コーディング動作(符号化または復号)の最中、コーダによって現在コーディングされているピクチャは、コーディング・バッファ210内に存在するが、先にコーディングされた参照ピクチャは、復号済ピクチャ・バッファ215内に保存されている。
【0008】
しかし、2つ以上の参照ピクチャの使用を必要とするピクチャをコーディングしなければならない場合に、そのような参照ピクチャがDPB215内に保存されるときに、問題が生じる。すなわち、DPB215は、コーディング動作中にそのような参照ピクチャをコーダ205から利用可能にする何らかのタイプの機構を、そのような参照ピクチャに提供しなければならない。第2のピクチャをコーディングする場合に、異なる参照ピクチャがDPB215を介してコーダ205によってアクセスされなければならないことがあることも理解されたい。(AVCなど)時間的な場合には、この問題は十分に複雑であるが、MVCなどのビデオ規格でピクチャをコーディングする場合など、(図1に示されるような)異なるビューからの参照ピクチャを考慮しなければならない場合、参照ピクチャを利用可能にする問題は拡大されるようになる。
【先行技術文献】
【非特許文献】
【0009】
【非特許文献1】A.Vetro、Y.Su、H.Kimata、A.Smolic、「Joint Multiview Video Model (JMVM) 1.0」、JVT−T208.doc、Klagenfurt、Austria、2006年7月
【非特許文献2】G.Sullivan、T.Wiegand、A.Luthra、「Draft of Version 4 of H.264/AVC (ITU−T Recommendation H.264 and ISO/IEC 14496−10 (MPEG−4 part 10) Advanced Video Coding)」、Palma de Mallorca、ES 18−22、2004年10月
【非特許文献3】Iain G Richardson、「Frame and Picture Management」、http://www.rgu.ac.uk/files/avc_picmanagement_draft1.pdf
【非特許文献4】K.Muller、P.Merkle、A.Smolic、T.Wiegand、「Multiview Coding using AVC」、m12945、Bangkok、Thailand、2006年1月
【発明の概要】
【0010】
本発明の原理は、従来技術の上記および他の難点および不都合に対処するものであり、ビデオ符号化のための動き推定予測器として利用可能な動き情報を再使用するための方法および装置に関する。
【0011】
本原理の一態様によれば、復号器によって復号されるピクチャからの情報を考慮して、メモリ・デバイス内に保存された参照ピクチャに対してメモリ管理操作を実行する、コーダが提供され、そのような情報は、その参照ピクチャに関連するビュー情報に関係する。
【0012】
本原理の上記および他の態様、特徴、および利点は、添付の図面と関連させて読まれる、例示的な実施形態の以下の詳細な説明から明らかになろう。
【0013】
本原理は、以下の例示的な図面によって、より良く理解することができよう。
【図面の簡単な説明】
【0014】
【図1】異なる時点におけるビデオ・ピクチャ・ビューの多視点符号化の例示的な一実施形態であって、そのようなビデオ・ピクチャが、図に示された方法で参照ピクチャを使用してコーディングされる、一実施形態を示す図である。
【図2】本発明の原理による、ビデオ・コーダの例示的な一実施形態を示す図である。
【図3】本発明の原理に従って使用される、シンタックス要素ref_pic_list_reordering()の疑似コードの一実施形態を示す図である。
【図4】本発明の原理に従って使用される、シンタックス要素slice_shead_mvc_extension()の疑似コードの一実施形態を示す図である。
【図5】本発明の原理に従って使用される、シンタックス要素ref_pic_list_reordering_mvc_extension()の疑似コードの一実施形態を示す図である。
【図6】本発明の原理に従って使用される、シンタックス要素ref_pic_list_reordering_mvc_extension()の疑似コードの一実施形態を示す図である。
【図7】本発明の原理による、ピクチャ参照リスト並べ替え方法の一実施形態のブロック図である。
【発明を実施するための形態】
【0015】
本発明の原理は、任意のフレーム内およびフレーム間ベースの符号化規格に適用することができる。本明細書の全体で使用される「ピクチャ」という用語は、当技術分野において、「フレーム」、「フィールド」、および「スライス」として、ならびに「ピクチャ」という用語自体でも知られ得る、様々な形態のビデオ画像情報を説明するための総称的用語として使用される。ピクチャという用語は、様々な要素ビデオ情報を表すために使用されるが、そのような参照ピクチャが同じピクチャからのスライスを「参照ピクチャ」として使用できる場合、AVCはスライスという用語を使用するようにしており、またピクチャがどのように細分できるかに関わらず、本発明の原理が適用されることに留意されたい。
【0016】
また、本発明の説明では、C言語タイプの書式を使用する様々なコマンド(シンタックス要素)が、そのようなコマンド中のディスクリプタについて以下の用語法を使用する図において詳述される。
u(n):nビットを使用する符号なし整数。シンタックス表内でnが「v」である場合、ビットの数は、他のシンタックス要素の値に依存する方法で変化する。このディスクリプタのための構文解析プロセスは、最上位ビットが最初に書かれる、符号なし整数のバイナリ表現として解釈される、関数read_bits(n)の戻り値によって規定される。
ue(v):左ビットが最初の、符号なし整数の指数ゴロム符号化(Exp−Golomb−coded)シンタックス要素である。
se(v):左ビットが最初の、符号付き整数の指数ゴロム符号化シンタックス要素である。
C:シンタックス要素が適用されるカテゴリを、すなわち、特定のフィールドがどのレベルに適用されるべきかを表す。
【0017】
本説明は、本原理を説明する。したがって、本明細書で明示的に説明または図示されていなくても、本原理を実施し、その主旨および範囲内に含まれる様々な構成を、当業者であれば考案できることが理解されよう。
【0018】
本明細書で述べられるすべての例および条件付きの言葉は、教示を目的とするもので、本原理と当技術分野を発展させるために発明者(ら)が寄与した概念とを読者が理解する助けとなるように意図されており、そのような具体的に述べられた例および条件に限定されると解釈されるべきではない。
【0019】
さらに、本原理の原理、態様、および実施形態を述べるすべての言表は、それらの具体的な例と同様に、それらの構造的均等物および機能的均等物の両方を包含することが意図されている。加えて、そのような均等物は、現在知られている均等物ばかりでなく、将来開発される均等物も含むことが、すなわち、構造に関わらず同一機能を実行する、開発されたいかなる要素をも含むことが意図されている。
【0020】
図2をまた参照すると、コーダ205が(AVCおよびMVCの下で)、動画像が符号化される符号化動作を実行する場合、符号化されたピクチャは、いくつかの異なる値に関連づけられ、そのような値は、コーダ205によってピクチャ・ヘッダ(例えば、スライス・ヘッダ)内に配置される。pic_num(ピクチャ番号)と呼ばれる第1の値は、コーディングされたビデオ・ピクチャの系列内における、コーディングされた際の、ピクチャの順序を示す。例えば、系列内の第1のピクチャは、「1」の値を有し、コーディングされた第4のピクチャは、「4」の値を有する。
【0021】
ピクチャは、コーディングされたピクチャが最終的に復号される場合に、それが表示される順序を決定する、ピクチャ順序カウント(POC:picture order count)と呼ばれる値も有する。これは、コーディングされたピクチャが、そのピクチャに関連づけられたPOC番号とは異なるフレーム番号を有することが可能であることを意味する。
【0022】
多視点ビデオ符号化は、ピクチャのために併せて使用できる、第3の値を導入する。view_id値は、ピクチャが対応するビューを示す。例えば、ビューS3に関連するピクチャは、「3」に等しいview_idを有し、一方、ビューS5に対応するピクチャは、「5」に等しいview_idを有する。そのような値の使用は、コーダがpic_numおよびPOCを異なるビュー間で分離することを可能にし、そのことが、同じpic_numおよび/またはPOCを有する参照ピクチャを保存するDPB215を提供するので、そのことからも、view_id番号は有用である。したがって、(同じPOCまたはpic_numを有する)そのようなピクチャは、view_id値を使用することによって、互いに区別される。
【0023】
上述された値は、(他の番号、変数名、およびハッシュ・テーブルなどを使用する)異なる方法で実施されてよいことを理解されたい。
【0024】
(http://www.rgu.ac.uk/files/avc_picmanagement_draft1.pdfにおいて見出される、Iain G Richardsonによる「Frame and Picture Management」において説明されるように)参照ピクチャをDPB215に保存する場合、そのようなピクチャは、メモリ・ステータスを割り当てられ、メモリ・ステータスは、参照ピクチャを、(PicNumまたはPicOrderCountによって参照される)短期参照ピクチャとして、または(LongTermPicインデックスにおける番号を表すLongTermPicNumによって参照される)長期参照ピクチャとして標識づける。参照ピクチャのステータスは、(例えば、AVCにおいて知られるような、メモリ管理コマンド演算子の使用によって)短期と長期の間で変更でき、または参照ピクチャが最終的にDPB215から取り去られる「not a reference」として知られるステータスにさえも変更できることを理解されたい。
【0025】
参照ピクチャの編成は、1つまたは2つのリストの中に順序よく配置され、それらのリストは、ピクチャ(スライス)をコーディングする前に使用される。Pピクチャのための参照は、ピクチャのリストを1つ(リスト0)使用し、一方、Bピクチャは、リストを2つ(リスト0およびリスト1)使用する。ピクチャ・リスト内のピクチャのデフォルト編成は、コーディングされる現ピクチャがPピクチャである場合は復号順序(PicNum)に依存し、コーディングされる現ピクチャがBピクチャである場合は表示順序に依存する。長期参照ピクチャとして指示された参照ピクチャは一般に、LongTermPicNumを割り当てられ、短期ピクチャよりも長い時間にわたってピクチャが保持されるように、参照リスト内のある位置に配置される。
【0026】
AVCは、コーダ205が、ピクチャ・スライスをコーディングする場合に、リスト0(およびBピクチャ(スライス)についてはリスト1)内の参照ピクチャのデフォルト順序を変更することを可能にする。すなわち、コーダは、(リスト内の)1つの参照ピクチャが、参照リスト内で指示された参照ピクチャよりも良好な参照ピクチャとなり得ることを認識することができる。これは、コーディングされる現ピクチャとの相関性がより高い参照ピクチャに、コーディングされるピクチャとの相関性がより低い参照ピクチャよりもインデックスが小さい(より近い)参照リスト上の位置を占めさせることによって、コーディング効率上の助けとなる。したがって、参照ピクチャ・リスト並べ替え(RPLR:Reference Picture List Reordering)コマンドとして知られるコマンドが、そのような参照ピクチャの順序を動かすために使用され、図3に示されている。
【0027】
図3は、ピクチャ・リストを並べ替えるために使用されるAVCコマンドを提供する、ref_pic_list_reorderingというAVCシンタックス要素を示しており(スライスとの関連で説明されるが、上で説明されたように、そのような概念はピクチャに対しても実行できることを理解されたい)、AVCコマンドの意味は、AVCリファレンスによって説明される。
【0028】
MVCの文脈内で参照ピクチャ・リストの使用を考える場合、時間参照だけを考慮するAVCとは対照的に、時間参照およびクロスビュー参照という、考慮すべき2組の参照が実際には存在する。
【0029】
したがって、従来技術では、K.Muller、P.Merkle、A.Smolic、T.Wiegand、「Multiview Coding using AVC」、m12945、Bangkok、Thailand、2006年1月において開示されたような原理において、すべてのビデオ系列を単一の系列にインタリーブする、単一のインタリーブ系列の構成が提案されており、その系列は、その後、AVC対応コーダによってコーディングでき、互換性のあるビット・ストリームを生成する。しかし、この提案されたAVC実施の不都合は、RPLPコマンドをそれらが現在AVCに存在するように実施するために、pic_numおよびPOCの一意の値がコーディングされる各ピクチャに割り当てられなければならないので、どのピクチャがどのビューに属するかを識別する方法が存在しないことである。
【0030】
MVCの現行の実施に戻ると、クロスビュー参照を通知するために、シーケンス・パラメータ・セット(SPS:Sequence Parameter Set)に追加される、追加のシンタックスを含むことが提案されている。このシンタックス要素は、以下で示されるように、アンカ・ピクチャ(anchor picture)および非アンカ・ピクチャ(non−anchor picture)のために使用される、クロスビュー参照を示すために使用される。
【0031】
以下の手順は、現ビューとは異なるビューからの参照ピクチャを参照予測リスト内に配置するために実行される。
− 0からnum_multiview_ref_for_listX−1までの、iの各値について、
− 現ピクチャと時間的に整列しているビューreference_view_for_list_X[i]からの再構成ピクチャが取得され、復号予測バッファ(DPB)内に挿入される。
− そのピクチャのインデックスが、RefPicListXの次の空スロット内に挿入される。
【0032】
しかし、この実施は、参照ピクチャ・リストを初期化(および構成)する方法が固定され、変更できないという点で、問題を有する。すなわち、時間的ピクチャおよびクロスビュー・ピクチャの順序に柔軟性がない。加えて、各アンカ・ピクチャ(I)ならびに非アンカ・ピクチャ(BおよびP)について指示される参照ピクチャの数は同じである。
【0033】
したがって、本発明は、多視点ピクチャを考慮して、参照ピクチャ・リストをどのように並べ替えるかについての、フレームワークを提案する。本発明の実施形態は、AVCおよびMVC環境の文脈内で開示されるが、本発明の原理は、他のビデオ・コーディング規格にも同様に適用されることを理解されたい。
【0034】
本発明は、ピクチャ・ヘッダ(スライス・ヘッダ)内に存在する、図4の新しい要素シンタックスref_pic_list_reordering_mvc_extension()を提案する。
【0035】
第1に、本発明は、AVC互換シンタックス要素num_ref_idx_l0_active_minus1およびnum_ref_idx_l1_active_minus1が、時間的な意味でアクティブな参照ピクチャの数を示すに過ぎないという事実を反映して、再定義されるべきことを提案する。
【0036】
num_ref_idx_l0_active_minus1は、スライスを復号するために使用される、時間参照ピクチャ・リスト0の最大参照インデックスを規定する。num_ref_idx_l0_active_minus1の範囲は、以下のように規定される。
− field_pic_flagが0に等しい場合、num_ref_idx_l0_active_minus1は、0以上15以下の範囲内にある。MbaffFrameFlagが1に等しい場合、num_ref_idx_l0_active_minus1は、フレーム・マクロブロックの復号のための最大インデックス値であり、2×num_ref_idx_l0_active_minus1+1は、フィールド・マクロブロックの復号のための最大インデックス値である。
− それ以外の(field_pic_flagが1に等しい)場合、num_ref_idx_l0_active_minus1は、0以上31以下の範囲内にある。
【0037】
num_ref_idx_l1_active_minus1は、num_ref_idx_l0_active_minus1と同じセマンティクスを有するが、l0およびリスト0は、それぞれl1およびリスト1によって置き換えられる。
【0038】
第2に、クロスビュー的意味においてアクティブな参照ピクチャの数を示す、2つの新しいシンタックス要素が提案される。
【0039】
num_ref_idx_l0_active_view_minus1は、スライスを復号するために使用される、クロスビュー参照ピクチャ・リスト0の最大参照インデックスを規定する。num_ref_idx_l0_active_view_minus1の範囲は、以下のように規定される。
− field_pic_flagが0に等しい場合、num_ref_idx_l0_active_view_minus1は、0以上15以下の範囲内にある。MbaffFrameFlagが1に等しい場合、num_ref_idx_l0_active_view_minus1は、フレーム・マクロブロックの復号のための最大インデックス値であり、2×num_ref_idx_l0_active_view_minus1+1は、フィールド・マクロブロックの復号のための最大インデックス値である。
− そうでない(field_pic_flagが1に等しい)場合、num_ref_idx_l0_active_view_minus1は、0以上31以下の範囲内にある。
【0040】
num_ref_idx_l1_active_view_minus1(他方の提案されたシンタックス要素)は、num_ref_idx_l0_active_view_minus1と同じセマンティクスを有するが、l0およびリスト0は、それぞれl1およびリスト1によって置き換えられる。
【0041】
これら2つのシンタックスは、以下の式を満足するような値を有する。
num_ref_idx_l0_active_minus1+num_ref_idx_l0_active_view_minus1<=num_ref_frames
かつ
num_ref_idx_l1_active_minus1+num_ref_idx_l1_active_view_minus1<=num_ref_frames
【0042】
先に説明されたように、MVCシステムのためのデフォルト初期化プロセスが定義される必要がある。したがって、そのようなプロセスについて、いくつかの異なる実施形態が提案される。
【0043】
本発明の原理の第1の実施形態は、MPEG−4 AVC仕様において定義されるように、現ビューの時間的ピクチャのすべてが初期化されるようにする。この初期化リストは、その後、LIST_0およびLIST_1のために、それぞれnum_ref_idx_l0_active_minus1およびnum_ref_idx_l1_active_minus1で規定される値によって切り詰められる。
【0044】
これらのピクチャに続いて、MVC仕様のSPSにおいて規定されるクロスビュー参照ピクチャが挿入され、LIST_0およびLIST_1のために、それぞれnum_ref_idx_l0_active_view_minus1およびnum_ref_idx_l1_active_view_minus1で規定される値によって切り詰められる。
【0045】
現行のMVC仕様において規定されるような参照ピクチャ・リスト並べ替えコマンドが正しく機能することを可能にするため、これらのコマンドが時間参照ピクチャ上だけで作動できるという制約を課す。RPLRプロセスは、時間的ピクチャの初期化後直ちに、クロスビュー参照の初期化前に生じること、または時間およびクロスビュー参照の両方がそれらのデフォルト位置に初期化された後に生じることができるが、後者の場合も、時間参照ピクチャだけが並べ替えられる。
【0046】
この第1の提案された実施形態についての1つの難点は、クロスビュー参照ピクチャが並べ替えできないことである。
【0047】
MVC仕様のSPSにおいて規定されるクロスビュー参照ピクチャが挿入され、LIST_0およびLIST_1のために、それぞれnum_ref_idx_l0_active_view_minus1およびnum_ref_idx_l1_active_view_minus1で規定される値によって切り詰められる、第2の実施形態が提案される。
【0048】
これらのピクチャに続いて、MPEG−4 AVC仕様において定義されるように、現ビューのすべての時間的ピクチャが初期化される。これは、その後、LIST_0およびLIST_1のために、それぞれnum_ref_idx_l0_active_minus1およびnum_ref_idx_l1_active_minus1で規定される値によって切り詰められるリストである。
【0049】
第3の実施形態が、上述された第1の実施形態に伴う問題に対処するために提供される。具体的には、2006年10月13日に出願された米国仮出願第60/851,522号、および2006年10月13日に出願された米国仮出願第60/851,589号からの優先権を主張する、2007年10月12日に出願されたPCT出願を参照すると、現在コーディングされているピクチャに関連するビューとは異なるview_id値を有するピクチャに、長期インデックス(値)を割り当てるために、シンタックス要素long_term_frame_idxが使用される。長期インデックスをクロスビュー・ピクチャに割り当てることによって、その後、そのようなピクチャは、AVCピクチャとして使用されているかのように扱うことができ、それが、長期ピクチャに適用されるような、RPLRコマンドの使用を可能にする。したがって、クロスビュー・ピクチャは、AVCを使用して、効果的に並べ替えることができる。
【0050】
新しいRPLRコマンドが提案される、第4の実施形態も提案される。これらのコマンドは、DPB215を制御するために使用される、メモリ管理コマンド操作と類似しているが、これらの新しいコマンドは、現在操作されているピクチャに関連するビュー以外のビューにおけるピクチャを操作するために使用される。これらの新しいシンタックス要素は、提案されたMVC参照ピクチャ・リスト並べ替えシンタックスを示す、図5に提示されている。
【0051】
これらの実施形態のためのデフォルト初期化は、最初に、H.264/MPEG−4 AVC仕様で定義される参照リスト初期化で規定されるように、すべての時間参照に対するものとすることができ、次に、これらのピクチャの後に、H.264/MPEG−4 AVCのMVC拡張のSPSで規定されるクロスビュー・ピクチャが続くことができる。
【0052】
この実施形態の動作の部分は、シンタックス要素を、ref_pic_list_reordering_mvc_extensionと、それから呼び出せるシンタックス要素ref_pic_list_reorderingとに分割することである。すなわち、呼び出しの機構が、MVC環境において処理される多視点ベースのピクチャを有することができ、その後、そのようなプロセスの結果が、AVC環境において処理される多視点参照ベースのピクチャを有することができる。
【0053】
インデックスmvc_reordering_of_pic_nums_idcと関連して使用される様々な状態が、以下の表1に開示されている。
【0054】
【表1】

【0055】
加えて、シンタックス要素mvc_reordering_of_pic_nums_idc、abs_diff_pic_num_minus1、およびlong_term_pic_numは、初期参照ピクチャ・リストから、スライスを復号するために使用される参照ピクチャ・リストへの変更も指定する。
【0056】
1に等しいmvc_ref_pic_list_reordering_flag_l0は、シンタックス要素mvc_reordering_of_pic_nums_idcが、参照ピクチャ・リスト0を指定するために存在することを指定する。0に等しいmvc_ref_pic_list_reordering_flag_l0は、このシンタックス要素が存在しないことを指定する。
【0057】
mvc_ref_pic_list_reordering_flag_l0が1に等しい場合、mvc_ref_pic_list_reordering_flag_l0の後に続いて、mvc_reordering_of_pic_nums_idcが3に等しくない回数は、num_ref_idx_l0_active_minus1+1を超えない。
【0058】
H.264/MPEG−4 AVC仕様で規定されるように生成された初期参照ピクチャ・リスト内のRefPicList0[num_ref idx_l0_active_minus1]が「no reference picture」に等しい場合、H.264/MPEG−4 AVC仕様で規定されるように生成された並べ替えリスト内のRefPicList0[num_ref idx_l0_active_minus1]が「no reference picture」に等しくなくなるまで、mvc_ref_pic_list_reordering_flag_l0は1に等しく、mvc_reordering_of_pic_nums_idcは3に等しくない。
【0059】
1に等しいmvc_ref_pic_list_reordering_flag_l1は、シンタックス要素mvc_reordering_of_pic_nums_idcが、参照ピクチャ・リスト1を指定するために存在することを指定する。0に等しいmvc_ref_pic_list_reordering_flag_l1は、このシンタックス要素が存在しないことを指定する。
【0060】
mvc_ref_pic_list_reordering_flag_l1が1に等しい場合、mvc_ref_pic_list_reordering_flag_l1の後に続いて、mvc_reordering_of_pic_nums_idcが3に等しくない回数は、num_ref_idx_l1_active_minus1+1を超えない。
【0061】
Bスライスを復号する際、H.264/MPEG−4 AVC仕様で規定されるように生成された初期参照ピクチャ・リスト内のRefPicList1[num_ref idx_l1_active_minus1]が「no reference picture」に等しい場合、H.264/MPEG−4 AVC仕様で規定されるように生成された並べ替えリスト内のRefPicList1[num_ref idx_l1_active_minus1]が「no reference picture」に等しくなくなるまで、mvc_ref_pic_list_reordering_flag_l1は1に等しく、mvc_reordering_of_pic_nums_idcは3に等しくない。
【0062】
mvc_reordering_of_pic_nums_idcは、difference_of_view_idおよびabs_diff_pic_num_minus1またはlong_term_pic_numと一緒に、参照ピクチャのどれが再マッピングされるかを指定する。mvc_reordering_of_pic_nums_idcの値は、H.264/MPEG−4 AVC仕様で規定される。mvc_ref_pic_list_reordering_flag_l0またはmvc_ref_pic_list_reordering_flag_l1の直後に続く、第1のmvc_reordering_of_pic_nums_idcの値は、3に等しくない。
【0063】
abs_diff_pic_num_minus1プラス1は、リスト内の現インデックスに移動されるピクチャのピクチャ番号とピクチャ番号予測値の間の絶対差を指定する。abs_diff_pic_num_minus1は、0からMaxPicNum−1までの範囲内にある。移動されるピクチャは、現ピクチャのview_idと異なるview_idを有しなければならない。
【0064】
long_term_pic_numは、リスト内の現インデックスに移動されるピクチャの長期ピクチャ番号を指定する。コーディング・フレームを復号する場合、long_term_pic_numは、参照フレームの1つまたは「used for long−term reference(長期参照に使用される)」として標識づけされた相補的参照フィールド対の1つに割り当てられたLongTermPicNumに等しい。コーディング・フィールドを復号する場合、long_term_pic_numは、「used for long−term reference」として標識づけされた参照フィールドの1つに割り当てられたLongTermPicNumに等しい。移動されるピクチャは、現ピクチャのview_idと異なるview_idを有しなければならない。
【0065】
difference_of_view_idは、リスト内の現インデックスに移動されるピクチャのview_idとview_id予測値の間の差を指定する。
【0066】
参照ピクチャの並べ替えを実行するプロセスは、デフォルト・リストに基づいており、以下のように説明することができる。
mvc_ref_pic_list_reordering_flag_l0が1に等しい場合、以下が適用される。
− refIdxL0を参照ピクチャ・リストRefPicList0に対するインデックスとする。これは最初、0に等しく設定される。
− 対応するシンタックス要素mvc_reordering_of_pic_nums_idcが、ビット・ストリーム内でそれらが生じる順序で処理される。これらのシンタックス要素の各々について、以下が適用される。
1)mvc_reordering_of_pic_nums_idcが0に等しい場合、または1に等しい場合、以下のIで規定されるプロセスが、refIdxL0を入力として起動され、その出力が、refIdxL0に割り当てられる。
2)そうではなく、mvc_reordering_of_pic_nums_idcが2に等しい場合、以下のIIで規定されるプロセスが、refIdxL0を入力として起動され、その出力が、refIdxL0に割り当てられる。
3)それ以外の(mvc_reordering_of_pic_nums_idcが3に等しい)場合、参照ピクチャ・リストRefPicList0に対する並べ替えプロセスが終了する。
mvc_ref_pic_list_reordering_flag_l1が1に等しい場合、以下が適用される。
− refIdxL1を参照ピクチャ・リストRefPicList1に対するインデックスとする。これは最初、0に等しく設定される。
− 対応するシンタックス要素mvc_reordering_of_pic_nums_idcが、ビット・ストリーム内でそれらが生じる順序で処理される。これらのシンタックス要素の各々について、以下が適用される。
4)mvc_reordering_of_pic_nums_idcが0に等しい場合、または1に等しい場合、以下のIで規定されるプロセスが、refIdxL1を入力として起動され、その出力が、refIdxL1に割り当てられる。
5)そうではなく、mvc_reordering_of_pic_nums_idcが2に等しい場合、以下のIIで規定されるプロセスが、refIdxL1を入力として起動され、その出力が、refIdxL1に割り当てられる。
6)それ以外の(mvc_reordering_of_pic_nums_idcが3に等しい)場合、参照ピクチャ・リストRefPicList1に対する並べ替えプロセスが終了する。
【0067】
現在コーディングされているピクチャのview_idと異なるview_idを有する短期参照ピクチャ用の参照ピクチャ・リストを並べ替えるため、以下が提案される。
このプロセスへの入力は、インデックスrefIdxLX(Xは0または1)である。
このプロセスの出力は、インクリメントされたインデックスrefIdxLXである。
viewIdLX=viewIdLXPred+difference_of_view_id
【0068】
変数picNumLXNoWrapは、以下のようにして導き出される。
− mvc_reordering_of_pic_nums_idcが0に等しい場合、
if(picNumLXPred−(abs_diff_pic_num_minus1+1)<0)
picNumLXNoWrap=picNumLXPred−(abs_diff_pic_num_minus1+1)+MaxPicNum
else
picNumLXNoWrap=picNumLXPred−(abs_diff_pic_num_minus1+1)
− それ以外の(mvc_reordering_of_pic_nums_idcが1に等しい)場合、
if(picNumLXPred+(abs_diff_pic_num_minus1+1)>=MaxPicNum)
picNumLXNoWrap=picNumLXPred+(abs_diff_pic_num_minus1+1)−MaxPicNum
else
picNumLXNoWrap=picNumLXPred+(abs_diff_pic_num_minus1+1)
【0069】
viewIdLXPredは、変数viewIdLXについての予測値である。この従属節で規定されるプロセスが、スライスのために最初に(すなわち、ref_pic_list_reordering()シンタックスにおける、0または1に等しいmvc_reordering_of_pic_nums_idcの最初の発生のために)起動される場合、viewIdL0PredおよびviewIdL1Predは最初、CurrViewIdに等しく設定される。viewIdLXの各割り当ての後、viewIdLXの値が、viewIdLXPredに割り当てられる。
【0070】
picNumLXPredは、変数picNumLXNoWrapについての予測値である。この従属節で規定されるプロセスが、スライスのために最初に(すなわち、ref_pic_list_reordering()シンタックスにおける、0または1に等しいmvc_reordering_of_pic_nums_idcの最初の発生のために)起動される場合、picNumL0PredおよびpicNumL1Predは最初、CurrViewIdに等しく設定される。picNumLXNoWrapの各割り当ての後、picNumLXNoWrapの値が、picNumLXPredに割り当てられる。
【0071】
変数picNumLXは、以下のようにして導き出される。
if(picNumLXNoWrap>CurrPicNum)
picNumLX=picNumLXNoWrap−MaxPicNum
else
picNumLX=picNumLXNoWrap
【0072】
picNumLXおよびviewIdLXは、「used for short−term reference(短期参照に使用される)」として標識づけされた参照ピクチャのPicNumおよびviewIdに等しく、「non−existing(存在しない)」として標識づけされた短期参照ピクチャのPicNumには等しくない。
【0073】
以下の手順は、viewIdLXに等しいview_idを有し、短期ピクチャ番号picNumLXを有するピクチャを、インデックス位置refIdxLXに配置し、他の残りのピクチャの位置をリストの後方にシフトし、refIdxLXの値をインクリメントするために実行される。
for(cIdx=num_ref_idx_lX_active_minus1+1;cIdx>refIdxLX;cIdx−−)
RefPicListX[cIdx]=RefPicListX[cIdx−1]
RefPicListX[refIdxLX++]=PicNumがpicNumLXに等しく、view_idがrefIdxLXに等しい、短期参照ピクチャ
nIdx=refIdxLX
for(cIdx=refIdxLX;cIdx<=num_ref_idx_lX_active_minus1+1;cIdx++)
if((PicNumF(RefPicListX[cIdx])!=picNumLX) && ViewIdF(RefPicListX[cIdx])!=viewIdLX)
RefPicListX[nIdx++]=RefPicListX[cIdx]
【0074】
関数PicNumF(RefPicListX[cIdx])は、以下のようにして導き出される。
− ピクチャRefPicListX[cIdx]が「used for short−term reference(短期参照に使用される)」として標識づけされている場合、PicNumF(RefPicListX[cIdx])は、ピクチャRefPicListX[cIdx]のPicNumである。
− それ以外の(ピクチャRefPicListX[cIdx]が「used for short−term reference」として標識づけされていない)場合、PicNumF(RefPicListX[cIdx])は、MaxPicNumに等しい。
【0075】
MaxPicNumの値は、決してpicNumLXに等しくなり得ないことに留意されたい。
【0076】
関数ViewIdF(RefPicListX[cIdx])は、以下のようにして導き出される。
− ViewIdF(RefPicListX[cIdx])は、ピクチャRefPicListX[cIdx]のViewIdである。
【0077】
この疑似コード手順内では、リストRefPicListXの長さは一時的に、最終リストのために必要とされる長さよりも1要素分だけ長くされていることにも留意されたい。この手順の実行後は、リストの要素0からnum_ref_idx_lX_active_minus1までだけが、保持される必要がある。
【0078】
長期参照ピクチャを含む参照ピクチャ・リストの並べ替えのため、以下が提案される。
このプロセスへの入力は、インデックスrefIdxLX(Xは0または1)である。
このプロセスの出力は、インクリメントされたインデックスrefIdxLXである。
【0079】
以下の手順は、上で導き出されたviewIdLXによって指示されるビュー内に存在する、長期ピクチャ番号long_term_pic_numを有するピクチャを、インデックス位置refIdxLXに配置し、他の残りのピクチャの位置をリストの後方にシフトし、refIdxLXの値をインクリメントするために実行される。
for(cIdx=num_ref_idx_lX_active_minus1+1;cIdx>refIdxLX;cIdx−−)
RefPicListX[cIdx]=RefPicListX[cIdx−1]
RefPicListX[refIdxLX++]=LongTermPicNumがlong_term_pic_numに等しく、viewIdがrefIdxLXに等しい、長期参照ピクチャ
nIdx=refIdxLX
for(cIdx=refIdxLX;cIdx<=num_ref_idx_lX_active_minus1+1;cIdx++)
if((LongTermPicNumF(RefPicListX[cIdx])!=long_term_pic_num) && ViewIdF(RefPicListX[cIdx])!=viewIdLX)
RefPicListX[nIdx++]=RefPicListX[cIdx]
【0080】
関数LongTermPicNumF(RefPicListX[cIdx])は、以下のようにして導き出される。
− ピクチャRefPicListX[cIdx]が「used for long−term reference」として標識づけされている場合、LongTermPicNumF(RefPicListX[cIdx])は、ピクチャRefPicListX[cIdx]のLongTermPicNumである。
− それ以外の(ピクチャRefPicListX[cIdx]が「used for long−term reference」として標識づけされていない)場合、LongTermPicNumF(RefPicListX[cIdx])は、2×(MaxLongTermFrameIdx+1)に等しい。
【0081】
2×(MaxLongTermFrameIdx+1)の値は、決してlong_term_pic_numに等しくなり得ないことに留意されたい。
【0082】
関数ViewIdF(RefPicListX[cIdx])は、以下のようにして導き出される。
− ピクチャRefPicListX[cIdx]が「used for short−term reference」として標識づけされている場合、ViewIdF(RefPicListX[cIdx])は、ピクチャRefPicListX[cIdx]のViewIdである。
− それ以外の(ピクチャRefPicListX[cIdx]が「used for short−term reference」として標識づけされていない)場合、PicNumF(RefPicListX[cIdx])は、MaxPicNumに等しい。
【0083】
MaxPicNumの値は、決してpicNumLXに等しくなり得ないこと、および
この疑似コード手順内では、リストRefPicListXの長さは一時的に、最終リストのために必要とされる長さよりも1要素分だけ長くされていることにも留意されたい。この手順の実行後は、リストの要素0からnum_ref_idx_lX_active_minus1までだけが、保持される必要がある。
【0084】
本発明の原理のための追加のフレームワークが、図6に示されるシンタックス要素ref_pic_reordering_mvc_extension()のため、以下で開示され、説明される。このシンタックス要素の動作と図5に関して説明されたシンタックス要素の間の1つの相違は、並べ替えリストが、どのビューについても完成され得ること、およびそのような並べ替えが、(図3に示されるような)別個のref_pic_list_reorderingコマンドを呼び出さなければならない代わりに、ただ1つの呼び出しを使用することによって実行されることである。
【0085】
この代替フレームワーク下の第1の実施形態のため、変数num_ref_idx_l0_active_minus1およびnum_ref_idx_l1_active_minus1が、時間的な意味でアクティブな参照ピクチャの数を表すために、再び再定義される(これらの変数について説明している先のセクションを参照されたい)。
【0086】
この実施形態は、クロスビューにおけるアクティブなピクチャの数を示すために使用される、変数num_ref_idx_l0_active_viewおよびnum_ref_idx_l1_active_viewを定義する。
【0087】
num_ref_idx_l0_active_viewは、スライスを復号するために使用される、クロスビュー参照ピクチャ・リスト0の最大参照インデックスを規定する。num_ref_idx_l0_active_viewの範囲は、以下のように規定される。
− field_pic_flagが0に等しい場合、num_ref_idx_l0_active_viewは、0以上16以下の範囲内にある。MbaffFrameFlagが1に等しい場合、num_ref_idx_l0_active_viewは、フレーム・マクロブロックの復号のための最大インデックス値であり、2×num_ref_idx_l0_active_viewは、フィールド・マクロブロックの復号のための最大インデックス値である。
− それ以外の(field_pic_flagが1に等しい)場合、num_ref_idx_l0_active_viewは、0以上32以下の範囲内にある。
【0088】
num_ref_idx_l1_active_viewは、num_ref_idx_l0_active_viewと同じセマンティクスを有するが、l0およびリスト0は、それぞれl1およびリスト1によって置き換えられる。
【0089】
これらのシンタックスは、以下の式を満足するような値を有する。
num_ref_idx_l0_active_minus1+num_ref_idx_l0_active_view<=num_ref_frames
かつ
num_ref_idx_l1_active_minus1+num_ref_idx_l1_active_view<=num_ref_frames
【0090】
以下で言及されるように、MVCシステムのためのデフォルト初期化プロセスが明確に定義される必要がある。
【0091】
第1に、現ビューのすべての時間的ピクチャが、MPEG−4 AVC仕様において定義されるように初期化される。これは、短期および長期参照を含む。このリストは、その後、LIST_0およびLIST_1のために、それぞれnum_ref_idx_l0_active_minus1およびnum_ref_idx_l1_active_minus1で規定される値によって切り詰められる。
【0092】
これらのピクチャに続いて、MVC仕様のSPSにおいて規定されるクロスビュー参照ピクチャが挿入され、LIST_0およびLIST_1のために、それぞれnum_ref_idx_l0_active_viewおよびnum_ref_idx_l1_active_viewで規定される値によって切り詰められる。
【0093】
既存のH.264/MPEG−4 AVC RPLRコマンドに類似した、新しいRPLRコマンドが導入される。これらのコマンドは、H.264/MPEG−4 AVCの既存のRPLRコマンドに取って代わる(図6を参照)。
【0094】
新しいRPLRコマンドは、以下のセマンティクスを有する。並べ替えコマンドが存在するか、それとも存在しないかを示すコマンドが、上掲の表1に示されている。
【0095】
シンタックス要素mvc_reordering_of_pic_nums_idc、abs_diff_pic_num_minus1、およびlong_term_pic_numは、初期参照ピクチャ・リストから、(スライスなど)ピクチャ情報を復号するために使用される参照ピクチャ・リストへの変更を指定する。
【0096】
1に等しいmvc_ref_pic_list_reordering_flag_l0は、シンタックス要素mvc_reordering_of_pic_nums_idcが、参照ピクチャ・リスト0を指定するために存在することを指定する。0に等しいmvc_ref_pic_list_reordering_flag_l0は、このシンタックス要素が存在しないことを指定する。
【0097】
mvc_ref_pic_list_reordering_flag_l0が1に等しい場合、mvc_ref_pic_list_reordering_flag_l0の後に続いて、mvc_reordering_of_pic_nums_idcが3に等しくない回数は、num_ref_idx_l0_active_minus1+1+num_ref_idx_l0_active_viewを超えない。
【0098】
H.264/MPEG−4 AVC仕様で規定されるように生成された初期参照ピクチャ・リスト内のRefPicList0[num_ref_idx_l0_active_minus1+num_ref_idx_l0_active_view]が「no reference picture」に等しい場合、H.264/MPEG−4 AVC仕様で規定されるように生成された並べ替えリスト内のRefPicList0[num_ref_idx_l0_active_minus1+num_ref_idx_l0_active_view]が「no reference picture」に等しくなくなるまで、mvc_ref_pic_list_reordering_flag_l0は1に等しく、mvc_reordering_of_pic_nums_idcは3に等しくない。
【0099】
1に等しいmvc_ref_pic_list_reordering_flag_l1は、シンタックス要素mvc_reordering_of_pic_nums_idcが、参照ピクチャ・リスト1を指定するために存在することを指定する。
【0100】
0に等しいmvc_ref_pic_list_reordering_flag_l1は、このシンタックス要素が存在しないことを指定する。
【0101】
mvc_ref_pic_list_reordering_flag_l1が1に等しい場合、mvc_ref_pic_list_reordering_flag_l1の後に続いて、mvc_reordering_of_pic_nums_idcが3に等しくない回数は、num_ref_idx_l1_active_minus1+1+num_ref_idx_l1_active_viewを超えない。
【0102】
Bスライスを復号する際、H.264/MPEG−4 AVC仕様で規定されるように生成された初期参照ピクチャ・リスト内のRefPicList1[num_ref_idx_l1_active_minus1+num_ref_idx_l1_active_view]が「no reference picture」に等しい場合、H.264/MPEG−4 AVC仕様で規定されるように生成された並べ替えリスト内のRefPicList1[num_ref_idx_l1_active_minus1+num_ref_idx_l1_active_view]が「no reference picture」に等しくなくなるまで、mvc_ref_pic_list_reordering_flag_l1は1に等しく、mvc_reordering_of_pic_nums_idcは3に等しくない。
【0103】
mvc_reordering_of_pic_nums_idcは、difference_of_view_idおよびabs_diff_pic_num_minus1またはlong_term_pic_numと一緒に、参照ピクチャのどれが再マッピングされるかを指定する。mvc_reordering_of_pic_nums_idcの値は、H.264/MPEG−4 AVC仕様で規定される。mvc_ref_pic_list_reordering_flag_l0またはmvc_ref_pic_list_reordering_flag_l1の直後に続く、第1のmvc_reordering_of_pic_nums_idcの値は、3に等しくない。
【0104】
abs_diff_pic_num_minus1プラス1は、リスト内の現インデックスに移動されるピクチャのピクチャ番号とピクチャ番号予測値の間の絶対差を指定する。abs_diff_pic_num_minus1は、0からMaxPicNum−1までの範囲内にある。
【0105】
long_term_pic_numは、リスト内の現インデックスに移動されるピクチャの長期ピクチャ番号を指定する。コーディング・フレームを復号する場合、long_term_pic_numは、参照フレームの1つまたは「used for long−term reference」として標識づけされた相補的参照フィールド対の1つに割り当てられたLongTermPicNumに等しい。コーディング・フィールドを復号する場合、long_term_pic_numは、「used for long−term reference」として標識づけされた参照フィールドの1つに割り当てられたLongTermPicNumに等しい。
【0106】
difference_of_view_idは、リスト内の現インデックスに移動されるピクチャのview_idとview_id予測値の間の差を指定する。
【0107】
参照ピクチャの並べ替えを実行するプロセスは、デフォルト・リストに基づいており、以下のように説明することができる。
mvc_ref_pic_list_reordering_flag_l0が1に等しい場合、以下が適用される。
− refIdxL0を参照ピクチャ・リストRefPicList0に対するインデックスとする。これは最初、0に等しく設定される。
− 対応するシンタックス要素mvc_reordering_of_pic_nums_idcが、ビット・ストリーム内でそれらが生じる順序で処理される。これらのシンタックス要素の各々について、以下が適用される。
1)mvc_reordering_of_pic_nums_idcが0に等しい場合、または1に等しい場合、以下のIで規定されるプロセスが、refIdxL0を入力として起動され、その出力が、refIdxL0に割り当てられる。
2)そうではなく、mvc_reordering_of_pic_nums_idcが2に等しい場合、以下のIIで規定されるプロセスが、refIdxL0を入力として起動され、その出力が、refIdxL0に割り当てられる。
3)それ以外の(mvc_reordering_of_pic_nums_idcが3に等しい)場合、参照ピクチャ・リストRefPicList0に対する並べ替えプロセスが終了する。
mvc_ref_pic_list_reordering_flag_l1が1に等しい場合、以下が適用される。
− refIdxL1を参照ピクチャ・リストRefPicList1に対するインデックスとする。これは最初、0に等しく設定される。
− 対応するシンタックス要素mvc_reordering_of_pic_nums_idcが、ビット・ストリーム内でそれらが生じる順序で処理される。これらのシンタックス要素の各々について、以下が適用される。
4)mvc_reordering_of_pic_nums_idcが0に等しい場合、または1に等しい場合、以下のIで規定されるプロセスが、refIdxL1を入力として起動され、その出力が、refIdxL1に割り当てられる。
5)そうではなく、mvc_reordering_of_pic_nums_idcが2に等しい場合、以下のIIで規定されるプロセスが、refIdxL1を入力として起動され、その出力が、refIdxL1に割り当てられる。
6)それ以外の(mvc_reordering_of_pic_nums_idcが3に等しい)場合、参照ピクチャ・リストRefPicList1に対する並べ替えプロセスが終了する。
【0108】
短期参照ピクチャ用の参照ピクチャ・リストを並べ替えるためのスキームが以下で説明される。
このプロセスへの入力は、インデックスrefIdxLX(Xは0または1)である。
このプロセスの出力は、インクリメントされたインデックスrefIdxLXである。
viewIdLX=viewIdLXPred+difference_of_view_id
【0109】
picNumLXNoWrapは、以下のようにして導き出される。
mvc_reordering_of_pic_nums_idcが0に等しい場合、
if(picNumLXPred−(abs_diff_pic_num_minus1+1)<0)
picNumLXNoWrap=picNumLXPred−(abs_diff_pic_num_minus1+1)+MaxPicNum
else
picNumLXNoWrap=picNumLXPred−(abs_diff_pic_num_minus1+1)
それ以外の(mvc_reordering_of_pic_nums_idcが1に等しい)場合、
if(picNumLXPred+(abs_diff_pic_num_minus1+1)>=MaxPicNum)
picNumLXNoWrap=picNumLXPred+(abs_diff_pic_num_minus1+1)−MaxPicNum
else
picNumLXNoWrap=picNumLXPred+(abs_diff_pic_num_minus1+1)
【0110】
viewIdLXPredは、変数viewIdLXについての予測値である。この従属節で規定されるプロセスが、スライスのために最初に(すなわち、ref_pic_list_reordering()シンタックスにおける、0または1に等しいmvc_reordering_of_pic_nums_idcの最初の発生のために)起動される場合、viewIdL0PredおよびviewIdL1Predは最初、CurrViewIdに等しく設定される。viewIdLXの各割り当ての後、viewIdLXの値が、viewIdLXPredに割り当てられる。
【0111】
picNumLXPredは、変数picNumLXNoWrapについての予測値である。この従属節で規定されるプロセスが、スライスのために最初に(すなわち、ref_pic_list_reordering()シンタックスにおける、0または1に等しいmvc_reordering_of_pic_nums_idcの最初の発生のために)起動される場合、picNumL0PredおよびpicNumL1Predは最初、CurrViewIdに等しく設定される。picNumLXNoWrapの各割り当ての後、picNumLXNoWrapの値が、picNumLXPredに割り当てられる。
【0112】
picNumLXは、以下のようにして導き出される。
if(picNumLXNoWrap>CurrPicNum)
picNumLX=picNumLXNoWrap−MaxPicNum
else
picNumLX=picNumLXNoWrap
【0113】
picNumLXおよびviewIdLXは、「used for short−term reference」として標識づけされた参照ピクチャのPicNumおよびviewIdに等しく、「non−existing」として標識づけされた短期参照ピクチャのPicNumには等しくない。
【0114】
以下の手順は、viewIdLXに等しいview_idを有し、短期ピクチャ番号picNumLXを有するピクチャを、インデックス位置refIdxLXに配置し、他の残りのピクチャの位置をリストの後方にシフトし、refIdxLXの値をインクリメントするために実行される。
for(cIdx=num_ref_idx_lX_active_minus1+1;cIdx>refIdxLX;cIdx−−)
RefPicListX[cIdx]=RefPicListX[cIdx−1]
RefPicListX[refIdxLX++]=PicNumがpicNumLXに等しく、view_idがviewIdxLXに等しい、短期参照ピクチャ
nIdx=refIdxLX
for(cIdx=refIdxLX;cIdx<=num_ref_idx_lX_active_minus1+1;cIdx++)
if((PicNumF(RefPicListX[cIdx])!=picNumLX) && ViewIdF(RefPicListX[cIdx])!=viewIdLX)
RefPicListX[nIdx++]=RefPicListX[cIdx]
【0115】
関数PicNumF(RefPicListX[cIdx])は、以下のようにして導き出される。
ピクチャRefPicListX[cIdx]が「used for short−term reference」として標識づけされている場合、PicNumF(RefPicListX[cIdx])は、ピクチャRefPicListX[cIdx]のPicNumである。
それ以外の(ピクチャRefPicListX[cIdx]が「used for short−term reference」として標識づけされていない)場合、PicNumF(RefPicListX[cIdx])は、MaxPicNumに等しい。
【0116】
MaxPicNumの値は、決してpicNumLXに等しくなり得ないことに留意されたい。
【0117】
関数ViewIdF(RefPicListX[cIdx])は、以下のようにして導き出される。
ViewIdF(RefPicListX[cIdx])は、ピクチャRefPicListX[cIdx]のviewIdである。
【0118】
この疑似コード手順内では、リストRefPicListXの長さは一時的に、最終リストのために必要とされる長さよりも1要素分だけ長くされている。この手順の実行後は、リストの要素0からnum_ref_idx_lX_active_minus1までだけが、保持される必要がある。
【0119】
長期参照ピクチャ用の参照ピクチャ・リストを並べ替えるためのスキームが以下で説明される。
このプロセスへの入力は、インデックスrefIdxLX(Xは0または1)である。
このプロセスの出力は、インクリメントされたインデックスrefIdxLXである。
【0120】
以下の手順は、上で導き出されたviewIdLXによって指示されるビュー内に存在する、長期ピクチャ番号long_term_pic_numを有するピクチャを、インデックス位置refIdxLXに配置し、他の残りのピクチャの位置をリストの後方にシフトし、refIdxLXの値をインクリメントするために実行される。
for(cIdx=num_ref_idx_lX_active_minus1+1;cIdx>refIdxLX;cIdx−−)
RefPicListX[cIdx]=RefPicListX[cIdx−1]
RefPicListX[refIdxLX++]=LongTermPicNumがlong_term_pic_numに等しく、viewIdがrefIdxLXに等しい、長期参照ピクチャ
nIdx=refIdxLX
for(cIdx=refIdxLX;cIdx<=num_ref_idx_lX_active_minus1+1;cIdx++)
if((LongTermPicNumF(RefPicListX[cIdx])!=long_term_pic_num) && ViewIdF(RefPicListX[cIdx])!=viewIdLX)
RefPicListX[nIdx++]=RefPicListX[cIdx]
【0121】
関数LongTermPicNumF(RefPicListX[cIdx])は、以下のようにして導き出される。
− ピクチャRefPicListX[cIdx]が「used for long−term reference」として標識づけされている場合、LongTermPicNumF(RefPicListX[cIdx])は、ピクチャRefPicListX[cIdx]のLongTermPicNumである。
− それ以外の(ピクチャRefPicListX[cIdx]が「used for long−term reference」として標識づけされていない)場合、LongTermPicNumF(RefPicListX[cIdx])は、2×(MaxLongTermFrameIdx+1)に等しい。
【0122】
注1 2×(MaxLongTermFrameIdx+1)の値は、決してlong_term_pic_numに等しくなり得ない。
【0123】
関数ViewIdF(RefPicListX[cIdx])は、以下のようにして導き出される。
− ピクチャRefPicListX[cIdx]が「used for short−term reference」として標識づけされている場合、ViewIdF(RefPicListX[cIdx])は、ピクチャRefPicListX[cIdx]のviewIdである。
− それ以外の(ピクチャRefPicListX[cIdx]が「used for short−term reference」として標識づけされていない)場合、PicNumF(RefPicListX[cIdx])は、MaxPicNumに等しい。
【0124】
MaxPicNumの値は、決してpicNumLXに等しくなり得ない。
【0125】
この疑似コード手順内では、リストRefPicListXの長さは一時的に、最終リストのために必要とされる長さよりも1要素分だけ長くされていることに留意されたい。この手順の実行後は、リストの要素0からnum_ref_idx_lX_active_minus1までだけが、保持される必要がある。
【0126】
この代替フレームワーク下の本発明の第2の実施形態では、クロスビュー・ピクチャの並べ替えはほとんどの場合、ピクチャ番号の差がゼロであることを意味する、時間的に整列したピクチャに対して生じることを考慮する。したがって、この実施形態は、上述されたものよりも効率的な、クロスビュー・ピクチャを並べ替えるこの態様に焦点を絞る。
【0127】
この実施形態は、変数abs_diff_pic_num_minus1をabs_diff_pic_numに変更し、この変数を以下のように定義する。
abs_diff_pic_numは、リスト内の現インデックスに移動されるピクチャのピクチャ番号とピクチャ番号予測値の間の絶対差を指定する。
【0128】
abs_diff_pic_numの範囲は、以下のように指定される。
− reordering_of pic_nums_idcが0に等しい場合、abs_diff_pic_numは、0からMaxPicNum/2までの範囲内にある。
− それ以外の(reordering_of pic_nums_idcが1に等しい)場合、abs_diff_pic_numは、0からMaxPicNum/2−1までの範囲内にある。
【0129】
これを行うことによって、abs_diff_pic_numが、クロスビュー並べ替えのほとんどの場合の値である0を取ることを可能にする。
【0130】
代替フレームワーク下で第3の実施形態も提案され、それも、クロスビュー・ピクチャの並べ替えはほとんどの場合、ピクチャ番号の差がゼロであることを意味する、時間的に整列したピクチャに対して生じることを考慮するために使用される。
【0131】
先の方法では、abs_diff_pic_numは、符号なし指数ゴロム符号としてコーディングされ、したがって、この差が正の差を表すのか、それとも負の差を表すのかを示す追加のシンタックスが、図6に示されるように、mvc_reordering_of_pic_nums_idcとして送られる必要がある。
【0132】
この実施形態は、このシンタックス要素が取り得る値を、表2に示されるように削減し、RPLR ref_pic_list_reordering_mvc_extensionのための考案された定義を開示する図7に示されるように、ピクチャ番号の差の符号付き指数ゴロム符号を、diff_pic_numとして送信する。
【0133】
【表2】

【0134】
diff_pic_numのセマンティクスは、次のように定義される。
diff_pic_numは、リスト内の現インデックスに移動されるピクチャのピクチャ番号とピクチャ番号予測値の間の差を指定する。
【0135】
diff_pic_numの範囲は、以下のように指定される。
− MaxPicNum/2−1からMaxPicNum/2
【0136】
その後、picNumLXNoWrapが、以下のように導き出される。
picNumLXNoWrap=picNumLXPred+diff_pic_num
【0137】
図7は、多視点コーディング環境のための参照ピクチャの並べ替えに適用されるような、本発明の原理を表す、ブロック図700を提示している。このフローチャートの動作のためには、参照ピクチャがすでにDPB215内に存在することが仮定される。しかし、参照ピクチャは、異なるビュー用のものでもよい。
【0138】
ステップ705において、方法は、コーディングされる現ピクチャが、多視点ピクチャ(MVCおよびAVC)が使用される環境内にあるかどうか、それともコーディング環境が、単に時間的なもの(すなわちAVC)であるかどうかについて検討する。
【0139】
現ピクチャのコーディングに関連して使用される参照ピクチャが多視点コーディングとは関係がない場合、ステップ710は、AVCなどのコーディング規格に関連して知られた原理を適用して、参照ピクチャ・リストを並べ替えるように動作する。しかし、コーディングされるピクチャが多視点ピクチャと関係があり、ピクチャ間のクロスビューが考慮されなければならないこともあり得る場合、ステップ715が選択される。
【0140】
上述されたように、ピクチャの並べ替えを実際にどのように実行するかに関して、いくつかの異なる応用が存在する。(ステップ715に適用される)上で提示されたいくつかの実施形態は、コーディングされる現ピクチャが参照ピクチャと何らかのクロスビュー関係を有するかどうかについて検討するために比較が行われる、環境について説明する。いくつかの実施形態では、ピクチャ・リストの並べ替えは、すべてのビューに関連する参照ピクチャを並べ替える。他の実施形態では、参照ピクチャの並べ替えは、最初にすべてのクロスビューについて実行され、次に、コーディングされるピクチャと同じビューを有する参照ピクチャについて実行される。
【0141】
ステップ720は、コーディングされるピクチャが、参照ピクチャと時間的関係を有するかどうかについて検討する。上述されたように、Pピクチャは、参照リストを1つ使用するが、Bピクチャは、2つの参照リストの使用を必要とすることがある。したがって、(本発明の様々な実施形態において説明される)リストが並べ替えられる方法は、そのような時間的関係に依存する。
【0142】
ステップ725は、参照ピクチャ・リストの実際の並べ替えである。そのような操作を実行する様々な方法は、またしても、ステップ715およびステップ720の結果に依存し、上述された原理および実施形態と併せて適用される。
【0143】
したがって、例えば、本明細書で提示されるブロック図は、本原理を実施する説明的な回路の概念図を表すことが、当業者であれば理解されよう。同様に、いかなるフローチャート、フロー図、状態遷移図、および疑似コードなども、実際にはコンピュータ可読媒体内で提示され、そのため、コンピュータまたはプロセッサが明示的に示されているかどうかに関わらず、そのようなコンピュータまたはプロセッサによって実行され得る、様々なプロセスを表すことが理解されよう。
【0144】
図面に示された様々な要素の機能は、専用ハードウェアの使用を通してだけなく、適切なソフトウェアと関連する、ソフトウェアを実行可能なハードウェアの使用を通しても提供することができる。プロセッサによって提供される場合、機能は、単一の専用プロセッサによって、単一の共用プロセッサによって、またはその中のいくつかは共用されてよい複数の個別プロセッサによって提供することができる。さらに、「プロセッサ」または「コントローラ」という用語の明示的な使用は、ソフトウェアを実行可能なハードウェアを排他的に指示すると解釈されるべきではなく、デジタル信号プロセッサ(「DSP」)ハードウェア、ソフトウェアを保存するためのリード・オンリ・メモリ(「ROM」)、ランダム・アクセス・メモリ(「RAM」)、および不揮発性ストレージを、これらに限定することなく、暗黙的に含むことができる。
【0145】
他の従来のハードウェアおよび/またはカスタム・ハードウェアも含むことができる。同様に、図面に示されたスイッチはいずれも、概念的なものに過ぎない。それらの機能は、プログラム・ロジックの動作を通して、専用ロジックを通して、またはプログラム制御と専用ロジックとの相互作用を通して実施することができ、具体的な技法は、文脈からより具体的に理解されるように、実施者によって選択可能である。
【0146】
本願の特許請求の範囲では、指定された機能を実行する手段として表された要素はいずれも、例えば、a)その機能を実行する回路要素の組合せ、またはb)任意の形態のソフトウェアであって、したがって、ファームウェアまたはマイクロコードなどを含み、そのソフトウェアを実行するための適切な回路と組み合わされて当該機能を実行するソフトウェアを含む、その機能を実行する任意の方法を包含することが意図されている。そのような特許請求の範囲によって確定される本原理は、列挙された様々な手段によって提供される機能が、特許請求の範囲が要請する方法で組み合わされ、一緒にされるという事実に存している。したがって、それらの機能を提供できる手段はいずれも、本明細書で示される手段と等価であると見なされる。
【0147】
本明細書における本原理の「一実施形態」または「実施形態」に対する言及は、その実施形態に関連して説明された特定の機能、構造、および特徴などが、本原理の少なくとも1つの実施形態に含まれることを意味する。したがって、本明細書の様々な場所で見られる「一実施形態では」または「実施形態では」という句の出現は、必ずしもすべてが同一の実施形態に言及しているわけではない。
【0148】
本原理の上記および他の特徴および利点は、本明細書の教示に基づいて、当業者によって容易に確認できよう。本原理の教示は、ハードウェア、ソフトウェア、ファームウェア、専用プロセッサ、またはそれらの組合せといった様々な形態で実施できることを理解されたい。
【0149】
最も好ましくは、本原理の教示は、ハードウェアとソフトウェアの組合せとして実施される。さらに、ソフトウェアは、プログラム記憶ユニット上で有形に実施されるアプリケーション・プログラムとして実施されてよい。アプリケーション・プログラムは、任意の適切なアーキテクチャを備えるマシンによって、アップロードされ、実行されてよい。好ましくは、マシンは、1つまたは複数の中央処理装置(「CPU」)、ランダム・アクセス・メモリ(「RAM」)、および入出力(「I/O」)インタフェースなどのハードウェアを有する、コンピュータ・プラットフォーム上で実施される。コンピュータ・プラットフォームは、オペレーティング・システムおよびマイクロ命令コードも含んでよい。本明細書で説明された様々なプロセスおよび関数は、CPUによって実行され得る、マイクロ命令コードの部分もしくはアプリケーション・プログラムの部分、またはそれらの任意の組合せとすることができる。加えて、追加のデータ記憶ユニットおよび印刷ユニットなど、他の様々な周辺ユニットが、コンピュータ・プラットフォームに接続されてよい。
【0150】
添付の図面に示される構成要素システム・コンポーネントおよび方法のいくつかは、好ましくはソフトウェアで実施されるので、システム・コンポーネントまたはプロセス機能ブロックの間の実際の接続は、本原理がプログラムされる方法に応じて異なり得ることをさらに理解されたい。本明細書の教示を与えれば、当業者は、本原理の上記および類似の実施または構成を企図することができる。
【0151】
説明的な実施形態が、添付の図面を参照しながら本明細書で説明されたが、本原理は、それらの実施形態そのままに限定されず、本原理の範囲または主旨から逸脱することなく、当業者によって、それらの実施形態に様々な変更および修正が施され得ることを理解されたい。そのような変更および修正のすべては、添付の特許請求の範囲において説明される本原理の範囲内に含まれることが意図されている。
【0152】
以下に他の実施例を例示する。
(付記1)
ピクチャに対する符号化操作のための参照ピクチャ・リストの順序づけのための方法であって、前記符号化操作が多視点ベースの符号化操作であることを特徴とし、
符号化されるピクチャが複数の異なる視点からの複数のビューのうちのビューに関連するかどうかを判定するステップと、
符号化される前記ピクチャのビューを表す対応する視点を考慮して、および、少なくとも1つの参照ピクチャが符号化される前記ピクチャのための時間参照ピクチャであるか否かを考慮して、参照ピクチャ・リスト内の保存された前記少なくとも1つの参照ピクチャの符号化順序を順序づけるステップと、
を含む、前記方法。
(付記2)
前記順序づけるステップが、符号化される前記ピクチャの前記ビューが、前記少なくとも1つの参照ピクチャに関連するビューと同じビューであるかどうかについて考慮する、付記1に記載の方法。
(付記3)
前記順序づけるステップが、どのビューの参照ピクチャも順序づける、付記2に記載の方法。
(付記4)
符号化される前記ピクチャがPピクチャである場合は、1つの参照ピクチャ・リストが使用され、符号化される前記ピクチャがBピクチャである場合は、2つの参照ピクチャ・リストが使用される、付記1〜3のいずれか一項に記載の方法。
(付記5)
符号化される前記ピクチャが、前記リストで規定される参照ピクチャの順序を使用することによって符号化される、付記1〜3のいずれか一項に記載の方法。
(付記6)
前記参照ピクチャ・リストの順序付けは、符号化される前記ピクチャがアンカ・ピクチャであるか、非アンカ・ピクチャであるか、によって決定される、付記1〜3のいずれか一項に記載の方法。

【特許請求の範囲】
【請求項1】
ピクチャに対する符号化操作のための参照ピクチャ・リストの順序づけのための方法であって、前記符号化操作が多視点ベースの符号化操作であることを特徴とし、
符号化されるピクチャが複数の異なる視点からの複数のビューのうちのビューに関連するかどうかを判定するステップと、
を含む、前記方法。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2013−102504(P2013−102504A)
【公開日】平成25年5月23日(2013.5.23)
【国際特許分類】
【出願番号】特願2013−4574(P2013−4574)
【出願日】平成25年1月15日(2013.1.15)
【分割の表示】特願2009−532434(P2009−532434)の分割
【原出願日】平成19年10月12日(2007.10.12)
【出願人】(501263810)トムソン ライセンシング (2,848)
【氏名又は名称原語表記】Thomson Licensing 
【住所又は居所原語表記】1−5, rue Jeanne d’Arc, 92130 ISSY LES MOULINEAUX, France
【Fターム(参考)】