特許第6792685号(P6792685)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ヴェロス メディア インターナショナル リミテッドの特許一覧

特許6792685ビデオフレームを符号化する方法および装置
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6792685
(24)【登録日】2020年11月10日
(45)【発行日】2020年11月25日
(54)【発明の名称】ビデオフレームを符号化する方法および装置
(51)【国際特許分類】
   H04N 19/70 20140101AFI20201116BHJP
   H04N 19/91 20140101ALI20201116BHJP
   H04N 19/436 20140101ALI20201116BHJP
【FI】
   H04N19/70
   H04N19/91
   H04N19/436
【請求項の数】4
【全頁数】18
(21)【出願番号】特願2019-166423(P2019-166423)
(22)【出願日】2019年9月12日
(62)【分割の表示】特願2017-138979(P2017-138979)の分割
【原出願日】2012年3月9日
(65)【公開番号】特開2020-10381(P2020-10381A)
(43)【公開日】2020年1月16日
【審査請求日】2019年9月12日
(31)【優先権主張番号】13/045,425
(32)【優先日】2011年3月10日
(33)【優先権主張国】US
(31)【優先権主張番号】13/045,442
(32)【優先日】2011年3月10日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】517189537
【氏名又は名称】ヴェロス メディア インターナショナル リミテッド
【氏名又は名称原語表記】Velos Media International Limited
(74)【代理人】
【識別番号】110002952
【氏名又は名称】特許業務法人鷲田国際特許事務所
(72)【発明者】
【氏名】シーガル クリストファー アンドリュー
(72)【発明者】
【氏名】ミスラ キラン
【審査官】 坂東 大五郎
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00−19/98
(57)【特許請求の範囲】
【請求項1】
ビデオフレームを符号化する方法であって、
(a)エントロピー符号化の初期化方法を示すフラグであって、前記ビデオフレームのスライスのスライスヘッダ内で送信される、ビットストリーム内のフラグを符号化し、
(b)前記スライスヘッダ内で送信されるタイルの位置情報と前記ビットストリーム内の前記タイルの数とを符号化し、
(c)前記スライスの先頭の前記フラグに基づいて、前記エントロピー符号化を初期化し、
(d)i)ラスタ走査順に各前記タイル内の複数のブロックと、
ii)ラスタ走査順に前記ビデオフレーム内の複数の前記タイルと、
iii)前記ビデオフレーム内の複数の前記スライスと、
を符号化する、方法。
【請求項2】
各前記タイルは、並列に符号化される、請求項1に記載の方法。
【請求項3】
ビデオフレームを符号化する装置であって、
(a)エントロピー符号化の初期化方法を示すフラグであって、前記ビデオフレームのスライスのスライスヘッダ内で送信される、ビットストリーム内のフラグを符号化し、
(b)前記スライスヘッダ内で送信されるタイルの位置情報と前記ビットストリーム内の前記タイルの数とを符号化し、
(c)前記スライスの先頭の前記フラグに基づいて、前記エントロピー符号化を初期化し、
(d)i)ラスタ走査順に各前記タイル内の複数のブロックと、
ii)ラスタ走査順に前記ビデオフレーム内の複数の前記タイルと、
iii)前記ビデオフレーム内の複数の前記スライスと、
を符号化するように構成される回路を備える、装置。
【請求項4】
各前記タイルは、並列に符号化される、請求項3に記載の装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はビデオを復号する方法に関する。
【背景技術】
【0002】
デジタルビデオは、通常、一連の画像またはフレームとして表され、これらの各々が画素の配列を包含する。各画素は輝度および/または色情報などの情報を含む。多くの場合、各画素は三色のセットとして表され、その各々は8ビットのカラー値によって定義される。
【0003】
例えば、H.264/MPEG−4 AVC(H.264/AVC)などのビデオ符号化方式は、通常、複雑さの増大と引き換えに、より高い符号化効率を提供している。また、ビデオ符号化方式に対し、ますます高まる画像品質の要求およびますます高まる画像解像度の要求も、符号化の複雑さを増大させている。並行復号に適したビデオデコーダは、復号プロセスのスピードを向上させ、メモリ要求を低減させることができ、並行符号化に適したビデオエンコーダは、符号化プロセスのスピードを向上させ、メモリ要求を低減させることができる。
【0004】
H.264/MPEG−4 AVC[ITU−T VCEGおよびISO/IEC MPEGのジョイントビデオチームによる「H.264:オーディオビジュアルサービス全般のための高度ビデオ符号化方式(H.264:Advanced video coding for generic audiovisual services)」、ITU−T Rec. H.264およびISO/IEC 14496−10(MPEG4-Part 10)、2007年11月]; および同様に、JCT−VC[「検討中のテストモデル案(Draft Test Model Under Consideration)」、JCTVC−A205、JCT−VCミーティング、ドレスデン、2010年4月(JCT−VC)]は残差符号化を伴うマクロブロック予測を用い、圧縮効率化のためビデオシーケンス中の時間的および空間的冗長性を低減する、ビデオコーデック(エンコーダ/デコーダ)仕様書であり、この両方は参照によりその全体が本明細書に組み込まれる。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】ITU−T Rec. H.264およびISO/IEC 14496−10(MPEG4−Part 10)、2007年11月
【0006】
【非特許文献2】JCT−VC[「検討中のテストモデル案(Draft Test Model Under Consideration)」、JCTVC−A205、JCT−VCミーティング、ドレスデン、2010年4月(JCT−VC)]
【発明の概要】
【課題を解決するための手段】
【0007】
本発明の一つの実施形態はビデオを復号する方法を開示する。本方法は、(a)ピクチャパラメータセット中にシグナルされ、フレーム内の複数のタイルの位置をそれぞれ示す前記タイルのサイズ情報を受信するステップと、(b)エントロピ復号の初期化の方法を示すフラグを受信するステップと、(c)複数のスライスのうちの1つのヘッダ中にシグナルされ、ビットストリーム中のタイルの位置及びタイルの数を受信するステップと、(d)スライスの先頭でフラグに基づいてエントロピ復号を初期化するステップと、(e)タイル中の複数のマクロブロックをラスタ走査順に復号するステップと、(f)フレーム中の複数のスライスを復号するステップと、及び(g)フレーム中の複数のタイルをラスタ走査順に復号するステップと、を含む。
【0008】
本発明の上記その他の目的、特徴、および利点は、添付の図面と併せ、以下の本発明の詳細な説明を考察することによってより容易に理解できよう。
【図面の簡単な説明】
【0009】
図1】H.264/AVCビデオエンコーダを示す。
図2】H.264/AVCビデオデコーダを示す。
図3】例示的なスライスの構造を示す。
図4】別の例示的なスライスの構造を示す。
図5】エントロピスライスの再構築を示す。
図6】エントロピスライスの並行的再構築を示す。
図7】スライスおよび9つのタイルを有するフレームを示す。
図8】3つのスライスおよび3つのタイルを有するフレームを示す。
図9A】タイルに対するエントロピ選択を示す。
図9B】タイルに対するエントロピ選択を示す。
図10A】タイルに対する別のエントロピ選択を示す。
図10B】タイルに対する別のエントロピ選択を示す。
図11】タイルに対するさらに別のエントロピ選択を示す。
図12A】例示的なシンタックスを示す。
図12B】例示的なシンタックスを示す。
【発明を実施するための形態】
【0010】
本明細書で説明する実施形態は、エントロピ符号化/復号を用いる任意のビデオコーダ/デコーダ(コーデック)に適応するが、単に説明目的のため、H.264/AVCエンコーダおよびH.264/AVCデコーダに関連させて例示的な実施形態を説明する。多くのビデオ符号化方式は、ブロックベースのハイブリッドビデオ符号化によるアプローチに基づいており、情報源符号化の方式は、フレーム間とも称するピクチャ間の予測、フレーム内とも称するピクチャ内の予測、および予測残差の変換符号化のハイブリッドである。フレーム間予測は、時間的冗長性を利用することができ、フレーム内、および予測残差の変換符号化は、空間的冗長性を利用することができる。
【0011】
図1は、例示的なH.264/AVCビデオエンコーダ2のブロック図を示す。符号化のために、フレームとも称する入力ピクチャ4を供給することができる。予測信号6および残差信号8を生成することができ、予測信号6は、フレーム間予測10もしくはフレー
ム内予測12に基づくものとすることができる。フレーム間予測10は、動き補償セクション14、一つ以上の格納された、参照フレームとも称する参照ピクチャ16によって、入力フレーム4と参照フレーム16との間の動き推定セクション18の処理により算定した、動き情報19を使って算定される。フレーム内予測12は、フレーム内予測セクション20によって、復号信号22を使って算定することができる。残差信号8は、入力フレーム4から予測信号6を差し引いて算定することが可能である。残差信号8は、変換/スケーリング/量子化セクション24によって、変換、スケーリング、および量子化され、これにより、量子化変換係数26が生成される。復号信号22は、予測信号6を、量子化変換係数26を逆(変換/スケーリング/量子化)セクション30によって生成した信号28に、加えることによって生成することができる。動き情報19および量子化変換係数26は、エントロピ符号化セクション32によってエントロピ符号化し、圧縮ビデオビットストリーム34に書き込むことができる。例えば参照フレームの一部である、出力画像領域38は、デブロッキングフィルタ36によって、再構築されプリフィルタ済みの信号
22を使い、エンコーダ2において生成することが可能である。この出力フレームは、後続の入力ピクチャの符号化のための参照フレームとして使うことができる。
【0012】
図2は、例示的なH.264/AVCビデオデコーダ50のブロック図を示す。復号のため、ビットストリームとも称する入力信号52を供給することができる。受信したシンボルは、エントロピ復号セクション54によってエントロピ復号することができ、これにより、動き情報56、イントラ予測情報57、および量子化されスケーリングされた変換係数58が生成される。動き情報56は、動き補償セクション60によって、フレームメモリ64にある一つ以上の参照フレーム84の一部に組み合わせることができ、しかしてフレーム間予測68を生成することができる。量子化されスケーリングされた変換係数58は、逆(変換/スケーリング/量子化)セクション62によって、逆量子化、スケーリングおよび逆変換をすることが可能で、これにより、復号された残差信号70が生成される。残差信号70は、フレーム間予測信号68またはフレーム内予測信号76いずれかの予測信号78に加えることができる。フレーム内予測信号76は、フレーム内予測セクション74によって、現フレーム72内の前に復号された情報から予測することが可能である。組み合わされた信号72は、デブロッキングフィルタ80によってフィルタすることができ、フィルタされた信号82をフレームメモリ64に書き込むことが可能である。
【0013】
H.264/AVCでは、入力ピクチャを固定サイズのマクロブロックに区分することができ、各マクロブロックは、輝度(luma)成分が16×16サンプルで、2つの色差(chroma)成分の各々が8×8サンプルの矩形画面域をカバーする。H.264/AVC規格の復号プロセスは、マクロブロック単位での処理を規定している。エントロピ復号セクション54は、圧縮ビデオビットストリーム52のシンタックス要素を構文解析して、それらを多重分離する。H.264/AVCは、2つの異なるエントロピ復号の方法を規定しており、その一つは、コンテキスト適応切り替え可変長符号のセットの利用に基づく複雑性の低い方式であり、CAVLCといわれ、もう一つは、計算的により要求の厳しい、コンテキストベースの適応型2値算術符号化の方式であって、CABACといわれる。かかる両方のエントロピ復号方式において、現在のシンボルの復号は、前に適正に復号されたシンボルと、適応的に更新されたコンテキストモデルとに依存することができる。さらに、例えば、予測データ情報、残差データ情報、および各種色平面などのいろいろなデータ情報を、一緒に多重化することができる。多重分離は、諸要素がエントロピ復号されるまで待つことが可能である。
【0014】
エントロピ復号の後、マクロブロックは、逆量子化および逆変換を介した残差信号と、フレーム内予測信号またはフレーム間予測信号のいずれかの予測信号とを取得することによって再構築することができる。ブロック歪みは、復号されたマクロブロックにデブロッキングフィルタを適用することによって低減することが可能である。通常、かかる後続の
処理は、入力信号がエントロピ復号された後で開始され、このことによって、エントロピ復号が復号におけるボトルネックになる可能性をもたらす。同様に、例えば、H.264/AVCにおけるレイヤ間予測または他のスケーラブルコーデックのレイヤ間予測など、別の予測メカニズムを用いるコーデックにおいても、エントロピ復号は、デコーダにおける処理に先立って必須であることがあり、このことがエントロピ復号を潜在的ボトルネックにしている。
【0015】
複数のマクロブロックを含む入力ピクチャは、一つまたは数個のスライスに区分することができる。エンコーダおよびデコーダで使用された参照ピクチャが同一であり、デブロッキングフィルタリングにおいてスライス境界を越える情報が使われないという条件の下で、スライスが表すピクチャの区域中のサンプルの値は、他のスライスからのデータを使わずに適切に復号することが可能である。したがって、あるスライスに対するエントロピ復号およびマクロブロックの再構築は、他のスライスには依存しない。具体的には、エン
トロピ復号の状態は、各スライスの開始時にリセットすることができる。他のスライス中のデータは、エントロピ復号および再構築のための近傍利用可能性を定義する際に、利用不可能としてマークすることができる。これらのスライスは、並行してエントロピ復号し、再構築することが可能である。望ましくは、イントラ予測および動きベクトル予測はスライスの境界を越えることができない。これに対し、デブロッキングフィルタリングは、スライス境界をまたがる情報を使用することが可能である。
【0016】
図3は、水平方向に11個のマクロブロックおよび垂直方向に9個のマクロブロックを含む、例示的なビデオピクチャ90を示す(9個の例示的なマクロブロックが91〜99として標識されている)。図3は、3つの例示的なスライス、すなわち、「スライス#0」と表示された第一スライス100、「スライス#1」と表示された第二スライス101、および「スライス#2」と表示された第三スライス102を示す。H.264/AVCデコーダは、3つのスライス100、101、102を並行して復号し再構築することが可能である。スライスの各々は、逐次方式で走査線の順に送信することができる。各スライスに対する復号/再構築処理の開始時に、コンテキストモデルが初期化またはリセットされ、他のスライス中のマクロブロックは、エントロピ復号およびマクロブロック再構築の両方に対し利用不可能としてマークされる。しかして、例えば、93と標識されたマクロブロックなどの「スライス#1」中のマクロブロックに対しては、コンテキストモデル選択または再構築のために、「スライス#0」中の(例えば、91および92と標識されたマクロブロックなどの)マクロブロックを使うことはできない。一方で、例えば、95と標識されたマクロブロックなどの「スライス#1」中のマクロブロックに対しては、コンテキストモデル選択または再構築のために、「スライス#1」中の(例えば、93および94と標識されたマクロブロックなど)他のマクロブロックを使うことができる。したがって、エントロピ復号およびマクロブロック再構築は、一スライス内で連続的に進行する。スライスが、フレキシブルマクロブロック順序付け(FMO:flexible macroblock ordering)を使って定義されている場合を除いて、スライス内のマクロブロックは、ラスタ走査の順に処理される。
【0017】
フレキシブルマクロブロック順序付けは、ピクチャがどのようにスライスに区分されるかを変更するために、スライスグループを定義する。スライスグループ中のマクロブロックは、マクロブロック対スライスグループマップによって定義され、これは、スライスのヘッダ中のピクチャパラメータセットの内容および追加情報によって信号伝達される。マクロブロック対スライスグループマップは、ピクチャ中の各マクロブロックに対するスライスグループ識別番号から成る。スライスグループ識別番号は、関連するマクロブロックがどのスライスグループに属するかを規定する。各スライスグループは、一つ以上のスライスに区分することができ、スライスは、同じスライスグループ内のマクロブロックのシーケンスであり、該シーケンスは、特定のスライスグループのマクロブロックのセット内
でラスタ走査の順に処理される。エントロピ復号およびマクロブロック再構築は、一スライスグループ内で連続的に進行する。
【0018】
図4は、3つのスライスグループ、すなわち、「スライスグループ#0」と表示された第一スライスグループ103、「スライスグループ#1」と表示された第二スライスグループ104、および「スライスグループ#2」と表示された第三スライスグループ105中への、例示的なマクロブロックの配分を示す。これらのスライスグループ103、104、105は、ピクチャ90中の2つの前景領域および1つの背景領域に、それぞれ関連付けることができる。
【0019】
ピクチャは、一つ以上の再構築スライスに区分することが可能で、エンコーダおよびデコーダで使われた参照ピクチャが同一であることを条件として、再構築スライスは、該再構築スライスが表現するピクチャ区域中のサンプルの値が、他の再構築スライスからのデ
ータを使用せずに適性に再構築できるという点で、自己充足的であり得る。再構築スライス内の全ての再構築マクロブロックは、再構築のための近傍の定義に利用可能である。
【0020】
再構築スライスは、複数のエントロピスライスに区分することが可能で、エントロピスライスは、該エントロピスライスが表現するピクチャ区域中のシンボルの値が、他のエントロピスライスからのデータを使用せずに適切にエントロピ復号できるという点で、自己充足的であり得る。エントロピ符号化の状態は、各エントロピスライスの復号開始時にリセットすることができる。他のエントロピスライス中のデータは、エントロピ復号のための近傍利用可能性を定義する際に、利用不可能としてマークすることが可能である。他のエントロピスライス中のマクロブロックは、現在のブロックのコンテキストモデル選択には使用することができない。コンテキストモデルは、エントロピスライス内だけにおいて更新することが可能である。したがって、エントロピスライスに関連する各エントロピデコーダは、それ自体のコンテキストモデルのセットを維持するとよい。
【0021】
エンコーダは、再構築スライスをエントロピスライスに区分するかどうかを決定することが可能で、該エンコーダは、その決定をビットストリームで信号伝達することができる。この信号にはエントロピスライスフラグを含めることができ、該フラグを「entropy_slice_flag」と表示することができる。図5を参照すると、エントロピスライスフラグを検査すること130ができ、エントロピスライスフラグが、ピクチャ、または再構築スライスに関連するエントロピスライスがないことを示している場合132、ヘッダは、通常のスライスヘッダとして構文解析される134。エントロピデコーダの状態はリセットすること136が可能で、エントロピ復号および再構築のための近傍情報を定義すること138ができる。次いで、スライスデータをエントロピ復号すること140ができ、スライスを再構築すること142が可能である。エントロピスライスフラグが、ピクチャ、または再構築スライスに関連するエントロピスライスがあることを示している場合146、ヘッダは、エントロピスライスヘッダとして構文解析すること148ができる。エントロピデコーダの状態をリセットすること150が可能で、エントロピ復号のための近傍情報を定義すること152ができ、エントロピ−スライスデータをエントロピ復号すること154ができる。次いで、再構築のための近傍情報を定義すること156が可能で、スライスを再構築すること142ができる。スライス再構築142の後、次のスライスまたはピクチャを検査すること158ができる。
【0022】
図6を参照する。デコーダは、並行復号できるとよく、それ自体の並行処理の程度を定義することができ、例えば、N個のスライスを並行して復号する能力を含むデコーダなどが考えられる。このデコーダは、N個のエントロピスライスを識別すること170ができる。現在のピクチャまたは再構築スライスにおいて、Nより少ないエントロピスライスが利用可能である場合、該デコーダは、利用可能であれば、後続のピクチャまたは再構築ス
ライスからのエントロピスライスを復号することが可能である。あるいは、デコーダは、現在のピクチャまたは再構築スライスが完全に処理されるのを待ち、その後、後続のピクチャまたは再構築スライスの部分を復号することもできる。N個までのエントロピスライスを識別170した後、識別されたエントロピスライスの各々を独立的にエントロピ復号することが可能である。第一エントロピスライスを復号すること172〜176ができる。第一エントロピスライスの復号172〜176には、デコーダの状態のリセット172を含めることが可能である。CABACエントロピ復号が用いられる場合、CABACの状態をリセットすることができる。第一エントロピスライスのエントロピ復号のための近傍情報を定義すること174ができ、第一エントロピスライスのデータを復号すること176が可能である。N個までのエントロピスライスの各々に対し、これらのステップを実施すること(第Nのエントロピスライスに対する178〜182)ができる。デコーダは、エントロピスライスの全部または一部がエントロピ復号されたとき、エントロピスライスを再構築すること184ができる。
【0023】
N個より多いエントロピスライスがある場合、デコードスレッドは、あるエントロピスライスのエントロピ復号が完了次第、次のエントロピスライスのエントロピ復号を開始することができる。しかして、あるスレッドが低複雑性のエントロピスライスのエントロピ復号を完了したとき、そのスレッドは、他のスレッドがそれらの復号を完了するのを待つことなく、さらなるエントロピスライスの復号を始めることができる。
【0024】
図3に示されるスライスの配列は、マクロブロックのペアの間の各スライスをラスタ走査またはラスタ走査順としても知られる画像走査順に定義することに限定することができる。この走査順のスライスの配列は、計算上は効率的であるが、高効率の並行符号化および復号には役立たない傾向がある。さらに、スライスのこの走査順の定義は、符号化の効率化によく適した共通の特性を有する可能性の高い、画像のより小さな局所領域をグループにまとめられない傾向がある。図4に示されるスライスの配列は、その配列の点では極めてフレキシブルであるが、高効率の並行符号化および復号には役立たない傾向がある。さらに、この極めてフレキシブルなスライスの定義は、デコーダに実装する上で計算的に複雑である。
【0025】
図7を参照すると、あるタイル方式によって、画像が矩形(正方形を含む)領域のセットに分割されている。タイルの各々内のマクロブロック(例えば、最大の符号化単位)は、ラスタ走査順に符号化され、復号される。タイルの配列も、同様にラスタ走査順に符号化され、復号される。これに応じ、任意の適切な数(例、0以上)の列の境界を設けることができ、任意の適切な数(例、0以上)の行の境界を設けることができる。しかして、フレームは、図7に示された一つのスライスのような、一つ以上のスライスを定義することが可能である。いくつかの実施形態において、異なるタイルに位置するマクロブロックは、隣接するマクロブロックの情報に依存する、イントラ予測、動き補償、エントロピ符号化のコンテキスト選択、または他の処理には利用できない。
【0026】
図8を参照すると、該タイル方式によって、画像が3つの矩形列のセットに分割されているのが示されている。タイルの各々内のマクロブロック(例えば、最大の符号化単位)は、ラスタ走査順に符号化され、復号される。タイルも、同様にラスタ走査順に符号化され、復号される。一つ以上のスライスを、タイルの走査順に定義することができる。スライスの各々は独立的に復号可能である。例えば、スライス1はマクロブロック1〜9を含むように定義することができ、スライス2はマクロブロック10〜28を含むように定義することができ、スライス3は3つのタイルにまたがるマクロブロック29〜126を含むように定義することができる。タイルの使用により、フレームのさらに局所化された領域のデータを処理することによって符号化の効率化が促進される。
【0027】
一つの実施形態において、エントロピ符号化および復号プロセスは、各タイルの開始時に初期化される。エンコーダにおいて、この初期化には、エントロピエンコーダ中に残存する情報をビットストリームに書き出す、フラッシングとしても知られるプロセスと、所定のセットのビットストリーム位置の一つに到達するために追加情報をビットストリームにパディングするプロセスと、エントロピエンコーダを、所定の、またはエンコーダおよびデコーダの両方が知っている、既知の状態に設定するプロセスと、を含めることができる。多くの場合、この既知の状態は、値のマトリックスの形を取る。さらに、所定のビットストリームの場所はビットの倍数にそろえた、例えばバイト境界に合わせた位置とすることができる。デコーダにおいて、この初期化プロセスには、エントロピデコーダを、エンコーダおよびデコーダの両方が知っている既知の状態に設定し、所定のセットのビットストリーム位置から読み取るまではビットストリーム中のビットを無視するプロセスを含めることができる。
【0028】
いくつかの実施形態において、複数の既知の状態が、エンコーダおよびデコーダに対して利用可能であって、エントロピ符号化および/または復号プロセスの初期化のために使用することができる。従来から、初期化に用いられる既知の状態は、エントロピ初期化インジケータ値を使ってスライスヘッダの中に示される。図7および図8に示されたタイル方式では、タイルとスライスとは相互に整列されていない。しかして、タイルとスライスとが整列されていないので、従来は、スライス中の最初のマクロブロックと同一場所に位置した、ラスタ走査順で最初のマクロブロックを包含していないタイルに対しては、エントロピ初期化インジケータ値は送信されないようになっている。例えば図7を参照すると、マクロブロック1は、スライスヘッダにおいて送信されたエントロピ初期化インジケータ値を使って初期化されるが、次のタイルのマクロブロック16に対しては、同様なエントロピ初期化インジケータ値はない。通常、同様なエントロピ初期化インジケータ情報は、単一のスライス(これはマクロブロック1に対するスライスヘッダを有する)の当該対応タイル群に対する、マクロブロック34、43、63、87、99、109、および121に対しても存在しない。
【0029】
図8を参照すると、3つのスライスに対し同様な形で、エントロピ初期化インジケータ値がスライス1のマクロブロック1に対するスライスヘッダ中に設けられ、スライス2のマクロブロック10に対するスライスヘッダ中に設けられ、そしてスライス3のマクロブロック29に対するスライスヘッダ中に設けられている。しかしながら、図7と同様な形で、中央部タイル(マクロブロック37から始まる)および右側タイル(マクロブロック100から始まる)に対しては、エントロピ初期化インジケータ値が欠けている。中央部および右側タイルに対するエントロピ初期化インジケータ値なしでは、並行方式で高い符号化効率によって、タイルのマクロブロックを効果的に符号化し復号するのに問題がある。
【0030】
フレーム中に一つ以上のタイルおよび一つ以上のスライスを用いるシステムに対し、タイルの最初のマクロブロック(例、最大の符号化単位)と共にエントロピ初期化インジケータ値を提供することが望ましい。例えば、エントロピ初期化情報を明示的に選択するために、図7のマクロブロック16と一緒にエントロピ初期化インジケータ値が提供される。この明示的な選定には、例えば、前のスライスヘッダ中のものなど前回のエントロピ初期化インジケータ値を使うよう指定するとか、またはそれぞれのマクロブロック/タイルに関連付けたエントロピ初期化インジケータ値を別途送信するとか、任意の適切な方式を使うことが可能である。このようにして、スライスにエントロピ指標値を含むヘッダを含めることを可能にしながら、タイル中の最初のマクロブロックにも同様にエントロピ初期化インジケータ値を含めることができる。
【0031】
図9Aを参照すると、この追加情報の符号化は以下のようにすることができる。
If (num_column_minus1>0 && num_rows_minus1>0) then
tile_cabac_init_idc_present_flag
num_column_minus1>0は、タイル中の列の数がゼロでないかどうかを判定し、num_rows_minus1>0は、タイル中の行の数がゼロでないかどうかを判定し、この両方は、当該符号化/復号においてタイルが使われているかどうかを効果的に判定する。タイルが使われている場合、tile_cabac_init_idc_present_flagは、エンコーダからデコーダに、どのようにエントロピ初期化インジケータ値を伝達するかを示すフラグである。例えば、このフラグが第一値に設定されている場合、前に伝達されたエントロピ初期化インジケータ値を使うなどといった、第一選択肢を選定することができる。具体的な例として、この前に伝達されたエントロピ初期化インジケータ値は、当該タイルの最初のマクロブロックを包含するスライスに対応しているスライスヘッダの中で送信されたエントロピ初期化インジケータ値と等しくす
ることが可能である。例えば、フラグが第二値に設定されている場合、エントロピ初期化インジケータ値が、対応するタイルに対するビットストリームの中で提供されるなどといった、第二選択肢を選定することができる。具体的な例として、タイルの最初のマクロブロックに対応するデータの中で、エントロピ初期化インジケータ値が提供される。
【0032】
エンコーダからデコーダに、エントロピ初期化インジケータ値をどのように伝達するかを示す、フラグを信号伝達するためのシンタックスは以下のようにすることができる。
num_columns_minus1
num_rows_minus1
if (num_column_minus1>0 && num_rows_minus1>0 {
tile_boundary_dependence_idr
uniform_spacing_idr
if( uniform_spacing_idr !=1) {
for (i=0; i<num_columns_minus1; i++)
columnWidth[i]
for (i=0; i<num_rows_minus1; i++)
rowHeight[i]

if( entropy_coding_mode==1)
tile_cabac_init_idc_present_flag
【0033】
図9Bを参照すると、シーケンスパラメータセット(例えば、フレームのシーケンスに関する情報)および/またはピクチャパラメータセット(例えば、特定のフレームに関する情報)の中にフラグを含めるなど、他の方式を使ってタイルが使用されているかどうかを判定することも可能である。
【0034】
このシンタックスは次のようにすることができる。
tile_enable_flag
if (tile_enable_flag) {
num_columns_minus1
num_rows_minus1
tile_boundary_dependence_idr
uniform_spacing_idr
if( uniform_spacing_idr !=1) {
for (i=0; i<num_columns_minus1; i++)
columnWidth[i]
for (i=0; i<num_rows_minus1; i++)
rowHeight[i]

if( entropy_coding_mode==1)
tile_cabac_init_idc_present_flag

tile_enable_flagは、現在のピクチャにタイルが使われているかどうかを判定する。
【0035】
図10Aおよび10Bを参照すると、タイルに対する適切なエントロピ初期化インジケ
ータ値情報を提供する方式は以下のようにすることができる。
【0036】
第一に、当該マクロブロック(例、符号化単位)がタイルの最初のマクロブロックかどうかを確認する。しかして、本方式は、エントロピ初期化インジケータ値を含む可能性のある、タイルの最初のマクロブロックを判別する。図7を参照すると、マクロブロック1、16、34、43、63、87、99、109、および121がこれにあたる。図8を参照すると、マクロブロック1、37、および100がこれにあたる。
【0037】
第二に、そのタイルの最初のマクロブロック(例、符号化単位)がスライスの最初のマクロブロック(例、符号化単位)でないことを確認する。しかして、本方式はスライス内のさらなるタイルを識別する。図7を参照すると、マクロブロック16、34、43、63、87、99、109、および121がこれにあたる。図8を参照すると、マクロブロック37および100がこれにあたる。
【0038】
第三に、tile_cabac_init_idc_flagが第一値に等しいかどうか、およびタイルが有効かどうかを確認する。一つの特定の実施形態において、この値は0に等しい。第二の実施形態では、この値は1に等しい。さらなる実施形態において、タイルは、(num_column_minus1>0 && num_rows_minus1>0)である場合に有効化される。別の実施形態において、タイルは、tile_enable_flagが1に等しいときに有効化される。
【0039】
かかる識別されたマクロブロックに対し、cabac_init_idc_present_flagを設定することができる。
【0040】
次いで、システムは、tile_cabac_init_idc_flagが存在する場合であって、且つ(num_column_minus1>0 && num_rows_minus1>0)の場合にだけ、cabac_init_idc_flagを信号伝達することができる。しかして、システムは、タイルが使われており、フラグがエントロピ情報の送信を示している(すなわち、cabac_init_idc_present_flagが0でない)場合にだけエントロピ情報を送信する。
【0041】
この符号化シンタックスは以下のようにすることができる。
coding_unit (x0, y0, currCodingUnitSize) {
if (x0==tile_row_start_location && y0=tile_col_start_location && currCodingUnitSize==MaxCodingUnitSize && tile_cabac_i
nit_idc_flag==true && mb_id!=first_mb_in_slice) {
cabac_init_idc_present_flag
if (cabac_init_idc_present_flag)
cabac_init_idc_flag

a regular coding unit…
【0042】
一般に、スライスの最初のマクロブロックに関連しないタイルの最初のマクロブロック(例、符号化単位)に関連付けられた一つ以上のフラグ(群)は、エントロピ初期化インジケータ値を定義することができる。フラグは、エントロピ初期化インジケータ値が、前に提供された情報であるか、デフォルト値であるか、または別途に提供されることになる
エントロピ初期化インジケータ値であるかを示すことができる。
【0043】
再度図7を参照する。デコーダは、ピクチャフレームの中のマクロブロック16の場所は存知しているが、エントロピ符号化が原因で、マクロブロック15がエントロピ復号されるまでは、ビットストリーム中のマクロブロック16を表すビットの位置は分からない。復号を行って次のマクロブロックを識別するこのやり方は、低度のビットオーバーヘッドを維持し、その点では望ましいものである。だが、これはタイルを並行して復号する助力にはならない。デコーダ中で、相異なるタイルを、エントロピ復号の完了を待つことなく並行して同時に復号できるように、フレーム中の特定のタイルに対する、ビットストリーム中の特定の位置を識別する能力を向上させるために、ビットストリーム中のタイルの位置を識別する信号を、ビットストリーム中に含めることが可能である。図11を参照する。ビットストリーム中のタイルの位置の信号伝達は、望ましくは、スライスのヘッダの中で提供される。フラグが、ビットストリーム中のタイルの位置がスライスの中で送信されることを示している場合、これは、スライス内のタイル(群)の各々の最初のマクロブロック内の位置に加え、望ましくはフレーム内のかかるタイルの数も含む。さらに、この位置情報は、必要に応じて、選択されたタイルのセットに対するものだけを含めることが可能である。
【0044】
この符号化シンタックスは、以下のようにすることができる。
tile_locations_flag
if (tile_location_flag) {
tile_locations()

tile_locations()

for (i=0; i<num_of_tiles_minus1; i++) {
tile_offset[i]


tile_locations_flagは、タイル位置がビットストリームの中で送信されているかどうかを信号伝達する。tile_offset[i](タイル距離の情報)は、絶対位置値、または差の大きさの値(前の符号化済みタイルに対するタイルサイズの変化)、または任意の適切な方式を使って信号伝達することができる。
【0045】
この方式は低いオーバーヘッドを有するが、エンコーダは、一般には、全てのタイルが符号化されるまで、ビットストリームを送信することができない。
【0046】
いくつかの実施形態において、連続するタイルの、最大値とも称する最大絶対位置値(タイル距離の情報)または最大の差の大きさの値(タイル距離の情報)に関するデータを含めるのが望ましい。かかる情報を使って、エンコーダは、識別された最大値をサポートするのに必要な数のビットだけを送信することができ、デコーダは、識別された最大値をサポートするのに必要な数のビットだけを受信することができる。例えば、比較的に小さな最大値に対しては、タイル位置情報のため小さなビット深度しか必要ない。例えば、比較的に大きな最大値に対しては、タイル位置情報のため大きなビット深度が必要となる。
【0047】
デコーダ中で、相異なるタイルが、エントロピ復号の完了を待つことなく並行して処理できるように、相異なるタイルを識別する能力を向上させるための別の方式として、ビットストリーム内の各タイルの開始部に関連するマーカーを用いることもできる。これらのタイルマーカーは、ビットストリームの当該特定部分をエントロピ復号しなくてもそれら
が識別できるような仕方で、ビットストリーム内に含まれる。例えば、これらマーカーは開始コードを使って始めることができ、該コードは、ビットストリーム中にマーカーデータとしてだけ存在する、ビットのシーケンスである。さらに、このマーカーには、タイルおよび/またはタイルの最初のマクロブロックと関連付けられた追加のヘッダを含めることができる。このような仕方で、エンコーダは、全てのタイルが符号化されるのを待つことなく、各タイルが符号化された後それをビットストリームに書き込むことができる。ただし、結果としてビットレートは増大する。さらに、デコーダは、特にバッファリングと併せて使われた場合、より効率の高い仕方でビットストリームを構文解析し、異なったタイルを識別することができる。
【0048】
タイルヘッダは、スライスヘッダと類似のものであってよいが、通常はそれより少ない情報が含まれている。必要とされる主たる情報は、次のブロックのマクロブロック番号と、エントロピ初期化データと、スライス指標(タイル中の開始CUがどのスライスに属するかを示す)である。かかる一つのタイルヘッダの符号化シンタックスを図12Aに示すことができる。あるいは、主たる情報に初期値量子化パラメータを含めることも可能である。かかる一つのタイルヘッダの符号化シンタックスを図12Bに示すことができる。スライスヘッダの中で送信されず、タイルヘッダ中にない値は、スライスヘッダの中で送信された値にリセットすることができる。
【0049】
いくつかの実施形態において、マーカーがビットストリーム中に含まれ、タイルの開始部に関連付けられる。ただし、ビットストリーム中のあらゆるタイルに対して、マーカーを含めなくてもよい。これは、エンコーダおよびデコーダが相異なるレベルの並行処理で動作することを容易化する。例えば、エンコーダは、64のタイルを使いながら、ビットストリーム中に4つのマーカーだけを含めることが可能である。これにより、64の処理を用いる並行符号化および4つの処理を用いる並行復号が可能になる。いくつかの実施形態において、ビットストリーム中のマーカーの数は、エンコーダおよびデコーダの両方に分かるような仕方で規定される。例えば、マーカーの数は、ビットストリームの中で信号伝達することも、あるいはプロファイルまたはレベルを使って定義することも可能である。
【0050】
いくつかの実施形態において、位置データがビットストリーム中に含められ、タイルの開始部に関連付けられる。ただし、ビットストリーム中のあらゆるタイルに対して、位置データを含めなくてもよい。これは、エンコーダおよびデコーダが相異なるレベルの並行処理で動作することを容易化する。例えば、エンコーダは64のタイルを使いながら、ビットストリーム中に4つの位置だけを含めることが可能である。これにより、64の処理を用いる並行符号化および4つの処理を用いる並行復号が可能になる。いくつかの実施形態において、ビットストリーム中の位置の数は、エンコーダおよびデコーダの両方に分か
るような仕方で規定される。例えば、マーカーの数は、ビットストリームの中で信号伝達することも、あるいはプロフィールまたはレベルを使って定義することも可能である。
【0051】
前述の明細書中で用いられた用語および語句は、説明の用語として使われており限定するものではない。かかる用語および語句の使用において、提示され説明された特徴またはその一部の同等物を排除する意図はなく、本発明の範囲は、添付の特許請求の範囲によってのみ定義され、限定されることを認識する。
【0052】
本発明は上記により説明されており、当然ながら、同じ方法をさまざまに変化させることが可能である。かかる変形は、本発明の趣旨および範囲から外れるものとは見なされない。当業者には明らかであろうが、かかる全ての改変は、添付の特許請求の範囲内に含まれることが意図されている。
図1
図2
図3
図4
図5
図6
図7
図8
図9A
図9B
図10A
図10B
図11
図12A
図12B