IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ ジーイー ビデオ コンプレッション エルエルシーの特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-05
(45)【発行日】2024-08-14
(54)【発明の名称】低遅延画像符号化
(51)【国際特許分類】
   H04N 19/70 20140101AFI20240806BHJP
   H04N 19/13 20140101ALI20240806BHJP
   H04N 19/174 20140101ALI20240806BHJP
【FI】
H04N19/70
H04N19/13
H04N19/174
【請求項の数】 25
【外国語出願】
(21)【出願番号】P 2024002894
(22)【出願日】2024-01-11
(62)【分割の表示】P 2022142936の分割
【原出願日】2013-04-15
(65)【公開番号】P2024050612
(43)【公開日】2024-04-10
【審査請求日】2024-02-13
(31)【優先権主張番号】61/624,098
(32)【優先日】2012-04-13
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】61/666,185
(32)【優先日】2012-06-29
(33)【優先権主張国・地域又は機関】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】515089080
【氏名又は名称】ジーイー ビデオ コンプレッション エルエルシー
【住所又は居所原語表記】1 Research Circle,Niskayuna,NY 12309,USA
(74)【代理人】
【識別番号】100079577
【弁理士】
【氏名又は名称】岡田 全啓
(72)【発明者】
【氏名】シーアル トーマス
(72)【発明者】
【氏名】ジョージ ヴァレーリ
(72)【発明者】
【氏名】ヘンケル アナスタージア
(72)【発明者】
【氏名】マルペ デトレフ
(72)【発明者】
【氏名】グルーエネベルク カルステン
(72)【発明者】
【氏名】スクーピン ローベルト
【審査官】岩井 健二
(56)【参考文献】
【文献】特開2009-177787(JP,A)
【文献】Gordon Clare et al.,Wavefront Parallel Processing for HEVC Encoding and Decoding,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11,JCTVC-F274,6th Meeting: Torino, IT,2011年07月,pp.1-16
【文献】Gordon Clare et al.,Wavefront and Cabac Flush: Different Degrees of Parallelism Without Transcoding,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11,JCTVC-F275,6th Meeting: Torino, IT,2011年07月,pp.1-11
【文献】Kiran Misra and Andrew Segall,Harmonization of Entry Points for Tiles and Wavefront Processing,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11,JCTVC-G722-r1,7th Meeting: Geneva, CH,2011年11月,pp.1-4
【文献】Muhammed Coban et al.,On Entropy Slices,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11,JCTVC-H0515r2,8th Meeting: San Jose, CA, USA,2012年01月,pp.1-7
【文献】Hendry et al.,AHG4: Harmonized Method for Signalling Entry Points of tiles and WPP Substreams,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11,JCTVC-H0566 (JCTVC-H0556_r1.docx),8th Meeting: San Jose, CA, USA,2012年02月,pp.1-7
【文献】T. Schierl et al.,Dependent Slices,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JCTVC-I0229,9th Meeting: Geneva, CH,2012年04月,pp.1-7
【文献】T. Schierl et al.,Dependent slices support in HEVC main profile,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JCTVC-J0264,10th Meeting: Stockholm, SE,2012年07月,pp.1-4
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
データストリームから情報を復号化して画像を再構成するためのデコーダであって、前記デコーダは、
前記画像の部分のうちの現在の部分に関連付けられた構文要素部分に示される少なくとも2つのモードのうちの1つに従って前記現在の部分がエントロピー復号化されている前記部分を、プロセッサを用いて波面並列処理(WPP)に基づいてエントロピー復号化するように構成されたエントロピーデコーダであって、前記エントロピーデコーダは、
前記少なくとも2つのモードのうちの第1のモードに従って、前記現在の部分に関連するデータを前記データストリームからコンテキスト適応エントロピー復号化を使用して復号化して、残差信号を得るように構成され、ここで前記コンテキスト適応エントロピー復号化は部分境界を越えてのコンテキスト導出およびシンボル確率の初期化を含み、前記第1のモードに従っ前記シンボル確率初期化する際に、前記エントロピーデコーダは、
前記現在の部分に関連付けられた現在の符号化ブロックが、前記現在の部分に関連付けられた前記画像の現在の行において一番左にある符号化ブロックであるかどうかをチェックし、
もしそうであれば、先に復号化された部分に関連付けられた前記画像の上の行にある前の符号化ブロックまで前記先に復号化された部分をコンテキスト適応エントロピー復号化する際に獲得したシンボル確率に基づいて、前記シンボル確率を初期化するように構成され、
ここで前記上の行は前記現在の行の空間的に上にあり、且つ前記現在の行に隣接し、前記前の符号化ブロックは前記上の行に空間的に隣接し、且つ前記上の行の最も左の符号化ブロックの右にあり、
もしそうでなければ、前記先に復号化された部分に関連付けられた前記画像の最後の符号化ブロックのコンテキスト適応エントロピー復号化が完了した際に獲得したシンボル確率に基づいて前記シンボル確率を初期化
前記少なくとも2つのモードのうちの第2のモードに従って、前記現在の部分に関連するデータを、コンテキスト適応エントロピー復号化を使用して前記データストリームから復号化して残差信号を取得して残差信号を得るように構成され、ここで前記コンテキスト適応エントロピー復号化は前記コンテキストの導出が前記部分境界を越えないように限定することおよび先に復号化された部分とは独立してシンボル確率を初期化することを含み、
記部分のうちの各部分は、前記各部分の前記エントロピー復号化が始まる前記画像内の位置を示す開始構文部分を含み、前記エントロピーデコーダは前記開始構文部分に基づき、前記部分に関連付けられたWPPサブストリームのエントリポイントを識別するように構成される、
ように構成された、エントロピーデコーダと、
前記現在の部分に関連した予測パラメータに基づいて、前記データストリームから予測信号を、前記プロセッサを用いて生成するように構成された予測器と、
前記残差信号および前記予測信号に基づいて、前記現在の部分に関連する画像を、前記プロセッサを用いて再構成するように構成された、再構成モジュールと、
を備える、デコーダ。
【請求項2】
前記画像は行および列に並べられた符号化ブロックにパーティション化され、前記デコーダは、前記部分のうちの各部分を前記符号化ブロックの連続的なサブセットをラスタスキャン順で関連付けて、前記サブセットがスライス順に従って、前記ラスタスキャン順で互いに続くように構成される、請求項1に記載のデコーダ。
【請求項3】
前記部分は、前記画像がパーティション化されているスライスである、請求項1に記載のデコーダ。
【請求項4】
前記部分は、前記画像がパーティション化されているスライスセグメントである、請求項1に記載のデコーダ。
【請求項5】
前記エントロピーデコーダは、前記現在の部分内の前記構文要素部分に応答して、少なくとも3つのモードのうちの1つに従って前記現在の部分を復号化するように構成され、前記デコーダは、
前記第1のモードによれば、予測復号化を使用して前記現在の部分を部分境界を超えて復号化し、
前記第2のモードによれば、予測復号化を使用して前記現在の部分を復号化するとともに前記予測復号化が前記部分境界を超えないように制限し、
第3のモードによれば、コンテキスト適応エントロピー復号化を使用して前記現在の部分を前記データストリームから復号化するとともに、前記コンテキストの導出が前記部分境界を超えないように制限し、前記コンテキストのシンボル確率を連続的に更新し、前記シンボル確率を先に復号化されたどの部分と独立して初期化し、前記部分境界を越えて予測復号化する
ように構成され、
前記第1のモードおよび第3のモードのうちの1つは構文要素に依存して選択される、
請求項1に記載のデコーダ。
【請求項6】
前記エントロピーデコーダは、前記データストリーム内の汎用構文要素に応答して、少なくとも2つの汎用動作モードのうちの1つで動作するとともに、第1の汎用動作モードによれば、前記部分の各々について前記構文要素部分への応答を実行し、第2の汎用動作モードによれば、前記少なくとも2つのモードのうちの前記第1のモード以外の異なるモードを使用するように構成される、請求項1に記載のデコーダ。
【請求項7】
前記エントロピーデコーダは、前記第1のモードおよび前記第2のモードによれば前記現在の部分のコンテキスト適応エントロピー復号化の始まりからコンテキスト適応エントロピー復号化の終わりまで、シンボル確率を連続的に更新するように構成される、請求項1に記載のデコーダ。
【請求項8】
前記エントロピーデコーダは、前記先に復号化された部分に関連付けられた画像の最後の符号化ブロックのコンテキスト適応エントロピー復号化が完了した際に獲得したシンボル確率を保存するように構成される、請求項1に記載のデコーダ。
【請求項9】
前記エントロピーデコーダは、前記先に復号化された部分を前記先に復号化された部分に関連付けられた前記画像の前記前の符号化ブロックまでコンテキスト適応エントロピー復号化する際に獲得したシンボル確率を保存するように構成される、請求項1に記載のデコーダ。
【請求項10】
前記エントロピーデコーダは、前記画像が再分割されているタイル内に予測復号化を限定するように構成される、請求項1に記載のデコーダ。
【請求項11】
前記エントロピーデコーダは、前記WPPサブストリームを互い違いに並列復号化するとともに、スライス順に従ったWPPサブストリームの復号化を順次開始するように構成される、請求項1に記載のデコーダ。
【請求項12】
データストリームから情報を復号化して画像を再構成するための方法であって、前記方法は、
前記画像の部分のうちの現在の部分に関連付けられた構文要素部分に示される少なくとも2つのモードのうちの1つに従って前記現在の部分がエントロピー復号化されている前記画像の部分を、ウェーブフロント並列処理(WPP)に基づいてエントロピー復号化するステップであって、前記エントロピー復号化するステップは、
前記少なくとも2つのモードのうちの第1のモードに従って、前記現在の部分に関連するデータを前記データストリームからコンテキスト適応エントロピー復号化を使用して復号化して残差信号を得るステップであって、ここで前記コンテキスト適応エントロピー復号化するステップは部分境界を越えてコンテキストを導出するステップとシンボル確率を初期化するステップを含み、
前記第1のモードに従って前記シンボル確率を初期化するステップにおいて、前記エントロピー復号化するステップは、
前記現在の部分に関連付けられた現在の符号化ブロックが、前記現在の部分に関連付けられた前記画像の現在の行において一番左にある符号化ブロックであるかどうかをチェックするステップと、
もしそうであれば、先に復号化された部分に関連付けられた前記画像の上の行にある前の符号化ブロックまで前記先に復号化された部分をコンテキスト適応エントロピー復号化する際に獲得したシンボル確率に基づいて、前記シンボル確率を初期化するステップであって、
ここで前記上の行は前記現在の行の空間的に上にあり、且つ前記現在の行に隣接し、前記前の符号化ブロックは前記上の行に空間的に隣接し、且つ前記上の行の最も左の符号化ブロックの右にある、初期化するステップと、
もしそうでなければ、前記先に復号化された部分に関連付けられた前記画像の最後の符号化ブロックのコンテキスト適応エントロピー復号化が完了した際に獲得したシンボル確率に基づいて前記シンボル確率を初期化するステップ、および前記少なくとも2つのモードのうちの第2のモードに従って、前記現在の部分に関連付けられたデータを前記データストリームからコンテキスト適応エントロピー復号化を使用して復号化して残差信号を取得するステップであって、ここで前記コンテキスト適応エントロピー復号化は前記コンテキストの導出が前記部分境界を越えないように限定するステップおよび先に復号化された部分とは独立してシンボル確率を初期化するステップを含み、
ここで前記部分の各部分は、前記各部分の前記エントロピー復号化が始まる前記画像内の位置を示す開始構文部分を含み、前記エントロピー復号化するステップは前記開始構文部分に基づき、前記部分に関連付けられたWPPサブストリームのエントリポイントを識別するステップを含む、データを復号化するステップ
を含む、エントロピー復号化するステップと、
前記現在の部分に関連した予測パラメータに基づいて、前記データストリームから予測信号を生成するステップと、
前記残差信号および前記予測信号に基づいて、前記現在の部分に関連する画像を再構築するステップと、
を含む、方法。
【請求項13】
前記画像は行および列に並べられた符号化ブロックにパーティション化され、前記方法は、前記部分の各部分を前記符号化ブロックの連続的なサブセットをラスタスキャン順で、前記サブセットがスライス順に従って、前記ラスタスキャン順で互いに続くように関連付けるステップをさらに含む、請求項12に記載の方法。
【請求項14】
前記部分は、前記画像がパーティション化されているスライスである、請求項12に記載の方法。
【請求項15】
前記部分は、前記画像がパーティション化されているスライスセグメントである、請求項12に記載の方法。
【請求項16】
前記現在の部分内の前記構文要素部分に応答して、少なくとも3つのモードのうちの1つに従って前記現在の部分を復号化するステップであって、
前記第1のモードによれば、予測復号化を使用して前記現在の部分を部分境界を超えて復号化するステップと、
前記第2のモードによれば、予測復号化を使用して前記現在の部分を復号化するとともに前記予測復号化が前記部分境界を超えないように限定するステップと、
第3のモードによれば、コンテキスト適応エントロピー復号化を使用して前記現在の部分を前記データストリームから復号化するとともに、前記コンテキストの導出が前記部分境界を超えないように制限し、前記コンテキストのシンボル確率を連続的に更新し、前記シンボル確率を任意の先に復号化された部分とは独立して初期化し、前記部分境界を越えて予測復号化するステップと
を含み、
前記第1のモードおよび第3のモードのうちの1つは構文要素に依存して選択される、
ステップをさらに含む、請求項12に記載の方法。
【請求項17】
データストリーム内の汎用構文要素に応答して、少なくとも2つの汎用動作モードのうちの1つで動作するとともに、第1の汎用動作モードに従って、前記部分の各々について前記構文要素部分への応答を実行するステップと、第2の汎用動作モードに従って、前記少なくとも2つのモードのうちの前記第1のモード以外の異なるモードを使用するステップをさらに含む、請求項12に記載の方法。
【請求項18】
前記第1のモードおよび前記第2のモードに従って、前記現在の部分のコンテキスト適応エントロピー復号化の始まりからコンテキスト適応エントロピー復号化の終わりまで、シンボル確率を連続的に更新するステップをさらに含む、請求項12に記載の方法。
【請求項19】
前記先に復号化された部分に関連付けられた画像の最後の符号化ブロックのコンテキスト適応エントロピー復号化が完了した際に獲得したシンボル確率を保存するステップをさらに含む、請求項12に記載の方法。
【請求項20】
記先に復号化された部分に関連付けられた前記画像の前記前の符号化ブロックまで前記先に復号化された部分をコンテキスト適応エントロピー復号化する際に獲得したシンボル確率を保存するステップをさらに含む、請求項12に記載の方法。
【請求項21】
前記WPPサブストリームを互い違いに並列復号化するとともに、スライス順に従ったWPPサブストリームの復号化を順次開始するステップをさらに含む、請求項12に記載の方法。
【請求項22】
画像をデータストリームに符号化するためのエンコーダであって、前記エンコーダは、
プロセッサを使用して、前記画像の部分のうちの現在の部分に関連する残差信号を生成するように構成される残差モジュールと、
前記プロセッサを使用して、予測信号に基づいて予測パラメータを生成するように構成された予測器であって、前記予測パラメータは前記データストリームに符号化される、予測器と、
前記プロセッサを使用して、前記現在の部分のための構文要素部分を決定し、前記現在の部分に関連する前記残差信号が、前記構文要素部分が示す少なくとも2つのモードのうちの1つに従ってエントロピー符号化されている部分を、波面並列処理(WPP)に基づいて前記データストリームにエントロピー符号化するように構成されたエントロピーエンコーダであって、前記エントロピーエンコーダは、
前記現在の部分が前記少なくとも2つのモードのうちの第1のモードに従って符号化されるのであれば、部分境界を越えてのコンテキストの導出および前記現在の部分に関連付けられたシンボル確率の初期化を含むコンテキスト適応的エントロピー符号化を使用して、前記残差信号を符号化するように構成され、
ここで、前記現在の部分に関連付けられた前記シンボル確率を初期化する際に、前記エントロピーエンコーダは、
前記現在の部分に関連付けられた現在の符号化ブロックが、前記現在の部分に関連付けられた前記画像の現在の行における一番左の符号化ブロックであるかどうかをチェックし、
もしそうであれば、先に符号化された部分に関連付けられた画像の上の行内の前の符号化ブロックまで前記先に符号化された部分をコンテキスト適応エントロピー符号化する際に獲得した、保存済みのシンボル確率に基づいて前記シンボル確率を初期化するように構成され、
ここで、前記上の行は空間的に前記現在の行の上にあり、且つ前記現在の行に隣接し、前記前の符号化ブロックは、前記上の行に空間的に隣接し、前記上の行の一番左の符号化ブロックの右にあり、
もしそうでなければ、前記先に符号化された部分に関連付けられた前記画像の最後の符号化ブロックのコンテキスト適応エントロピー符号化の完了時に獲得したシンボル確率に基づいて前記シンボル確率を初期化するように構成され、
前記現在の部分が前記少なくとも2つのモードのうちの第2のモードで符号化されるのであれば、コンテキスト適応エントロピー符号化を用いて前記残差信号を符号化するとともに、前記コンテキストの導出が前記部分境界を越えないように限定し、シンボル確率を先に符号化されたどの部分とも独立して初期化するように構成され、
ここで前記部分のうちの各部分は、前記各部分のエントロピー符号化が始まる画像内の位置を示す開始構文部分を含み、前記エントロピーエンコーダは、前記開始構文部分に基づいて、前記部分に関連付けられたWPPサブストリームのエントリポイントを識別するように構成される、
エンコーダ。
【請求項23】
前記画像は行および列に並べられた符号化ブロックにパーティション化され、前記エンコーダは、前記部分のうちの各部分を前記符号化ブロックの連続的なサブセットをラスタスキャン順で、前記サブセットがスライス順に従って前記ラスタスキャン順で互いに続くように関連付けるように構成され、請求項22に記載のエンコーダ。
【請求項24】
前記部分は、前記画像がパーティション化されているスライスである、請求項22に記載のエンコーダ。
【請求項25】
前記部分は、前記画像がパーティション化されているスライスセグメントである、請求項22に記載のエンコーダ。
【発明の詳細な説明】
【技術分野】
【0001】
本願発明は、画像の低遅延符号化に関する。
【背景技術】
【0002】
現在のHEVC設計スライスにおいて、エントロピースライス(以前の軽量スライス)タイルおよびWPP(波面並列処理)は、並列化のためのツールとして含まれる。
【0003】
ビデオエンコーダおよびデコーダの並列化のために、画像レベルのパーティション分割は、他のアプローチと比較していくつかの利点を有する。従来のビデオコーデックにおいて、H.264/AVC[1]のように、画像パーティションは、符号化効率に関して高いコストを有するレギュラースライスでのみ可能であった。スケーラブル並列H.264/AVC復号化のために、画像再構成のためのマクロブロックレベルの並列処理およびエントロピー復号化のためのフレームレベルの並列処理を結合することが必要である。しかしながら、このアプローチは、画像待ち時間および高いメモリ使用量において制限された低減をもたらす。これらの制限を克服するために、新しい画像パーティションストラテジーが、HEVCコーデックに含まれている。現在の参照ソフトウェアバージョン(HM-6)は、4つの異なるアプローチ:レギュラーまたはノーマルスライス、エントロピースライス、波面並列処理(WPP)サブストリームおよびタイルを含む。典型的に、それらの画像パーティションは、1セットの最大の符号化ユニット(LCU)、または、同義語において、HEVCまたはそれらのサブセットにおいて定義されるように、符号化ツリーユニット(CTU)を含む。
【0004】
図1は、画像においてLCUまたはマクロブロックの行902ごとにレギュラースライス900に例示的に配置される画像898を示す。(H.264[1]において定義されるような)レギュラーまたはノーマルスライスは、それらがエントロピー復号化および予測依存性を破壊するように、最大の符号化ペナルティを有する。
エントロピースライスは、スライスのように、エントロピー復号化依存性を破壊するが、予測(およびフィルタリング)がスライス境界を越えることを可能にする。
【0005】
WPPにおいて、画像パーティションは、行インターリーブされ、さらに、エントロピー復号化および予測の両方は、他のパーティションにおいてブロックからデータを用いるために可能にされる。このように、符号化損失が最小化され、それと同時に、波面並列処理を利用することができる。しかしながら、インターリーブは、従来のパーティションが復号化するために次のパーティションを必要とするように、ビットストリーム因果関係を妨害する。
【0006】
図2は、水平にパーティション分割するタイル906の2つの行904a、904bに分割される画像898を例示的に示す。タイルは、画像898をタイル列912a、b、cおよび行904a、bにパーティション分割する、水平908および垂直境界910を定義する。レギュラースライス900と同様に、タイル906は、エントロピー復号化および予測依存性を破壊するが、タイルごとにヘッダを必要としない。
【0007】
これらの技術のそれぞれのために、パーティションの数を、エンコーダによって自由に選択することができる。一般に、より多くのパーティションを有することは、より高い圧縮損失をもたらす。しかしながら、WPPにおいて、損失伝搬は、それほど高くなく、したがって、画像パーティションの数も、行ごとに1に固定することさえできる。これはまた、いくつかの利点をもたらす。第一に、WPPのために、ビットストリーム因果関係が保証される。第二に、デコーダ実装は、一定量の並列処理が利用できると仮定することができ、それはまた、解像度と共に増加する。さらに、最後に、コンテキスト選択および予測依存性のいずれも、波面順序において復号化するときに破壊される必要はなく、比較的低い符号化損失をもたらす。
【0008】
しかしながら、今まで、変換概念においてすべての並列符号化は、低遅延を保つことと共に高い圧縮効率の達成を提供することができない。これは、WPP概念についても同様である。スライスは、符号化パイプラインにおいて、転送の最小単位であり、さらに、いくつかのWPPサブストリームは、まだ連続的に転送されなければならない。
【発明の概要】
【発明が解決しようとする課題】
【0009】
したがって、本願発明の目的は、増加した効率で、例えばエンドツーエンド遅延をさらに低減してまたは費やされる符号化オーバーヘッドを低減することによって符号化効率を高めて、例えば波面並列処理に従って並列復号化を可能にする、画像符号化概念を提供することである。
【課題を解決するための手段】
【0010】
この目的は、独立した請求項の主題によって達成される。
【0011】
本願発明の基本的な知見は、スライスが、それぞれのスライスの外側の画像の領域から完全に独立して、または、エントロピー符号化に関する限り少なくともそれぞれのスライスの外側の領域から独立して、符号化/復号化される、通常のスライスの概念が、異なるモードのスライス、すなわち、例えば、スライス境界を越える相互依存性を可能にする依存スライスと呼ばれるものと、可能にしないノーマルスライスと呼ばれる他のものとを支持して断念される場合、例えば波面並列処理などの並列処理概念が、低減されたエンドツーエンド遅延で実現され得ることである。
【0012】
第1のものと結合され得てまたは個々に用いられ得る本願発明のさらなる基本的な知見は、スライスの開始構文部分がWPPエントリポイントの位置を決めるために用いられる場合、WPP処理概念がより効率的に作られ得ることである。
【0013】
本願の好適な実施形態は、図に関して以下に記載され、有利な実施形態は、従属した請求項の主題である。
【図面の簡単な説明】
【0014】
図1図1は、画像においてLCUまたはマクロブロックの行ごとにレギュラースライスに例示的にパーティション分割される画像を示す。
図2図2は、水平にパーティション分割されたタイルの2つの行に例示的に分割される画像を示す。
図3図3は、スライスまたはネットワーク転送セグメントへの並列符号化されたパーティションの割当てを例示的に示す。
図4図4は、最小エンドツーエンド遅延のためのタイル符号化アプローチでフレームの一般的なフラグメンテーションを示す概略図を示す。
図5図5は、最小エンドツーエンド遅延のためのWPP符号化アプローチでフレームの例示的なフラグメンテーションを示す概略図を示す。
図6図6は、ビデオサービスを用いて会話のシナリオを示す概略ブロック図を示す。
図7図7は、最小エンドツーエンド遅延で一般的なサブセットを有するタイルのための符号化、伝送および復号化の可能なタイムスケジューリングを概略的に示す。
図8図8は、エンドツーエンド遅延を共通に達成するタイミングスケジュールを概略的に示す。
図9図9は、2つのスライスにパーティション分割される11×9個の符号化ツリーブロックを例示的に有する画像を示す。
図10図10は、3つのタイルにパーティション分割される13×8個の符号化ツリーブロックを例示的に有する画像を示す。
図11a図11aは、シーケンスパラメータセット構文のための例を示す。
図11b図11bは、シーケンスパラメータセット構文のための例を示す。
図11c図11cは、シーケンスパラメータセット構文のための例を示す。
図12a図12aは、画像パラメータセット構文のための例を示す。
図12b図12bは、画像パラメータセット構文のための例を示す。
図13a図13aは、スライスヘッダ構文のための例を示す。
図13b図13bは、スライスヘッダ構文のための例を示す。
図13c図13cは、スライスヘッダ構文のための例を示す。
図14図14は、レギュラースライスへのWPP処理のための、および、依存スライスへの低遅延処理のための、画像のパーティションを例示する。
図15図15は、画像パラメータセット構文内の部分のための例を示す。
図16図16は、可能なスライスヘッダ構文を示す。
図17図17は、ノーマルスライス(および依存スライス)のための符号化相互依存性を概略的に示す。
図18図18は、タイルの低遅延転送のための符号化(依存スライスを用いた波面並列処理)を比較する概略図を示す。
図19図19は、図18の右側に示すように依存スライスを用いた波面並列処理を用いるときに、パイプライン低遅延伝送で例示的なWPP符号化を示すタイミングスケジュールを示す。
図20図20は、アンカーとしてレギュラースライスを用いることによってロバスト性改善を示す概略図を示す。
図21図21は、スライスヘッダ構文のための別の実施形態を示す。
図22図22は、画像パラメータセット構文のための別の実施形態を示す。
図23図23は、左側画像境界で開始する場合に依存スライスのためのシンボル確率初期化プロセスを示す概略図を示す。
図24図24は、デコーダの概略図を示す。
図25図25は、符号化ブロックおよびスライスへの画像のパーティション分割を概略的に示すとともに、デコーダのブロック図を概略的に示す。
図26図26は、エンコーダのブロック図を概略的に示す。
図27図27は、ここではスライスセグメントと呼ばれる、ノーマルおよび依存スライスにパーティション分割される画像を概略的に示す。
図28図28aおよび図28bは、ここでは一方でスライスセグメントと呼ばれ、他方でタイルと呼ばれる、ノーマルおよび依存スライスにパーティション分割される画像を概略的に示す。
図29図29は、依存スライスを用いたコンテキスト初期化プロセスを示すフロー図を示す。
図30図30は、依存スライスを用いるためのコンテキスト記憶プロセスを示すフロー図を示す。
図31図31は、WPPエントリポイントのシグナリングの様々な可能性を概略的に示す。
【発明を実施するための形態】
【0015】
以下において、説明は、それぞれ、並列画像処理および低遅延符号化を可能にするための現在の概念の説明から開始する。両方の能力を有することを望むときに生じる問題が概説される。特に、以下の説明から分かるように、今までのところ何とか教示されているようなWPPサブストリーム概念は、それを1つのスライスにグループ化することによってWPPサブストリームを伝達する必要性のために低遅延を有することの願望と矛盾する。以下の実施形態は、スライス概念を拡大することによって、すなわち、後に依存スライスと呼ばれる、別のタイプのスライスを導入することによって、さらに少ない遅延を必要とするアプリケーションに適用できる、例えばWPP概念などの並列処理概念を表す。
【0016】
キャプチャリングからディスプレイへのエンドツーエンドビデオ遅延の最小化は、例えばビデオ会議などのアプリケーションなどにおいて主要な目的の1つである。
【0017】
デジタルビデオ伝送のための信号処理チェーンは、カメラ、キャプチャリングデバイス、エンコーダ、カプセル化、伝送、デマルチプレクサ、デコーダ、レンダラーおよびディスプレイからなる。これらのステージのそれぞれは、後のステージへのそのシリアル伝送の前にイメージデータをバッファリングすることによってエンドツーエンド遅延に貢献する。
【0018】
いくつかのアプリケーションは、そのような遅延の最小化を必要とし、例えば、操作される物体を直接的に見ることのない、危険な領域における物体の遠隔操作、または最小侵襲手術である。短い遅延でさえも、適切な操作の重大な問題をもたらすことがあり、または重大なミスをもたらすこともある。
【0019】
多くの場合、全ビデオフレームは、例えばイントラフレーム処理を可能にするために、処理ステージ内でバッファリングされる。いくつかのステージは、次のステージに送られるパケットを形成するためにデータを集める。一般に、ローカル処理の要件から生じる遅延のための下方境界がある。これは、以下にさらに詳細に個々のステージごとに分析される。
【0020】
カメラ内の処理は、最小遅延がフレームレートによって制限されるセンサの積分時間およびハードウェアメーカーによるいくつかの設計上の選択によって与えられるように、イントラフレーム信号処理を必ずしも必要とするというわけではない。カメラ出力は、通常、左上隅において処理を開始し、右上隅に移動し、さらに、ラインごとに右下隅に続く、スキャン順序に典型的に関連している。結果的に、すべてのデータがセンサからカメラ出力に転送されるまで約1フレーム期間を要する。
【0021】
キャプチャリングデバイスは、受信の直後にカメラデータを送ることができるが、それは、典型的に、いくつかのデータをバッファリングし、さらに、メモリまたはストレージへのデータアクセスを最適化するためにバーストを生成する。さらに、カメラ/キャプチャおよびコンピュータのメモリ間の接続は、さらなる処理(符号化)のためのメモリに、キャプチャされたイメージデータを送るためのビットレートを典型的に制限している。典型的に、カメラは、USB2.0を介して、または、すぐにUSB3.0で接続され、それは、エンコーダにイメージデータの部分的な転送を常に含む。これは、極端な低遅延シナリオにおいてエンコーダ側における並列化能力を制限し、すなわち、エンコーダは、データが例えばイメージの上から下までラスタスキャン順序においてカメラから利用できるようになるときに、できるだけ早く符号化を開始しようとする。
【0022】
エンコーダにおいて、特定のビデオ忠実度のために必要とされるデータレートに関して、処理遅延の低減のために、符号化効率をトレードオフすることを可能にするある程度の自由度がある。
【0023】
エンコーダは、後に符号化されるイメージを予測するためにすでに送られたデータを用いる。一般に、実際のイメージおよび予測間の差を、予測なしに必要とされるよりも少ないビットで符号化することができる。この予測値は、デコーダで利用できるようにする必要があり、このように、予測は、同じイメージ(イントラフレーム予測)の先に復号化された部分、または、先に処理された他のイメージ(インターフレーム予測)に基づく。プレHEVCビデオ符号化規格は、同じラインの上方にまたは同じライン内にあるが左にあるイメージの部分だけを用い、それは、イントラフレーム予測、動きベクトル予測およびエントロピー符号化(CABAC)のために、先に符号化されている。
【0024】
予測構造の最適化に加えて、並列処理の影響を考慮することができる。並列処理は、独立して処理することができる画像領域の識別を必要とする。実用的な理由から、例えば水平または垂直矩形などの連続した領域が選択され、それは、しばしば「タイル」と呼ばれる。低遅延制約の場合、それらの領域は、できるだけ早く、キャプチャからメモリに入力するデータの並列符号化を可能にすべきである。ラスタスキャンメモリ転送を仮定すれば、直ちに符号化を開始するために、生データの垂直パーティションが意味をなす。画像を垂直パーティションに分割する(下図を参照)、そのようなタイルの内部において、イントラ予測、動きベクトル予測およびエントロピー符号化(CABAC)は、相当な符号化効率をもたらすことができる。遅延を最小化するために、上から開始する、画像の部分だけは、エンコーダのフレームメモリに転送され、さらに、並列処理は、垂直タイルにおいて開始されるべきである。
【0025】
並列処理を可能にする別の方法は、タイルと比較されるレギュラースライス内でWPPを用いることであり、タイルの「行」は、単一のスライスに含まれている。スライス内のデータは、スライス内で、WPPサブストリームを用いて並列符号化され得る。スライス900およびタイル/WPPサブストリーム914への画像分離が、例の図3図1の形で示される。
【0026】
このように、図3は、例えばスライスまたはネットワーク転送セグメント(単一のネットワークパケットまたは複数のネットワーク900パケット)への906または914などの並列符号化されたパーティションの割当てを示す。
【0027】
ネットワーク抽象化層(NAL)ユニットへの符号化されたデータのカプセル化は、適用できる場合、H.264またはHEVCにおいて定義されるように、伝送の前にまたは符号化プロセスの間に、いくつかのヘッダをデータブロックに加え、それは、それぞれのブロックの識別およびブロックの並び換えを可能にする。規格の場合、付加的なシグナリングは、符号化要素の順序が常に復号化順序であるので必要とされず、それは、タイルまたは一般的な符号化フラグメントの位置の暗黙の割当てが与えられることである。
【0028】
並列処理が低遅延並列転送のための付加的なトランスポート層で考慮される場合、すなわち、トランスポート層は、それらが符号化されるように図4に示すようなフラグメントを送ることを意味する、低遅延伝送を可能するためにタイルのための画像パーティションを並び換えることができる。それらのフラグメントは、完全に符号化されていないスライスであってもよく、それらは、スライスのサブセットであってもよく、または、依存スライスに含まれてもよい。
【0029】
付加的なフラグメントを作る場合、ヘッダ情報が一定数のバイトを加えていることによる大きいデータブロックで最も高い効率と、並列エンコーダの大きいデータブロックが伝送の前にバッファリングされる必要があることによる遅延との間のトレードオフがある。垂直タイル906の符号化された表現が、フラグメントが完全に符号化されるとすぐに送信される多数のフラグメント916において分離される場合、全体の遅延を低減することができる。それぞれのフラグメントのサイズを、例えばマクロブロック、LCUなどのように、固定されたイメージ領域に関して、または図4に示すような最大のデータに関して、決定することができる。
【0030】
このように、図4は、最小エンドツーエンド遅延のためのタイル符号化アプローチでフレームの一般的なフラグメンテーションを示す。
【0031】
同様に、図5は、最小エンドツーエンド遅延のためのWPP符号化アプローチでフレームのフラグメンテーションを示す。
【0032】
伝送は、例えば、付加的なブロック指向処理が適用される場合、例えば方向誤り訂正が伝送のロバスト性を増加して符号化するように、さらなる遅延を加えることができる。また、ネットワークインフラストラクチャ(ルータなど)または物理リンクは、遅延を加えることができ、これは、接続のための待ち時間として典型的に知られている。待ち時間に加えて、伝送ビットレートは、ビデオサービスを用いる図6に示すような会話において、データを参加者aから参加者bに転送するための時間(遅延)を決定する。
【0033】
符号化されたデータブロックが順序から外れて送信される場合、遅延の並び換えが考慮されなければならない。復号化は、データユニットが到着するとすぐに開始することができ、これの前に復号化されなければならない他のデータユニットが利用できると仮定される。
【0034】
タイルの場合、タイル間に依存性がなく、そのため、タイルを直ちに復号化することができる。フラグメントが、例えば図4に示すようなフラグメントごとに別々のスライスなどように、タイルで作られている場合、フラグメントは、それらがそれぞれ符号化され、それらの含まれたLCUまたはCUが符号化されているとすぐに、直接的に転送され得る。
【0035】
レンダラーは、並列復号化エンジンの出力を組立て、さらに、結合された画像をラインごとにディスプレイに送る。
【0036】
ディスプレイは、いかなる遅延も必ずしも加えるというわけではないが、実際には、イメージデータが実際に表示される前に、いくつかのイントラフレーム処理を行うことができる。これは、ハードウェアメーカーによる設計上の選択次第である。
【0037】
要約すると、我々は、最小エンドツーエンド遅延を達成するために、ステージ符号化、カプセル化、伝送および復号化に影響を与えることができる。我々が並列処理、タイルおよびタイル内でのフラグメンテーションを用いる場合、図8に示すようなこれらのステージのそれぞれで約1フレーム遅延を加える一般に用いられる処理チェーンと比較して、全体の遅延を、図7に示すように著しく低減することができる。
【0038】
特に、図7は、最小エンドツーエンド遅延で汎用(generic)サブセットを有するタイルのための符号化、伝送および復号化を示す一方、図8は、共通に達成されたエンドツーエンド遅延を示す。
【0039】
HEVCは、スライスパーティション分割、タイルパーティション分割の使用をさらに以下の方法において可能にする。
【0040】
タイル:1つの列および1つの行において同時に生じる整数個のツリーブロックであって、タイルのツリーブロックラスタスキャンにおいて連続的に順序付けられる。タイルへのそれぞれの画像の分割は、パーティション分割である。画像においてタイルは、画像のタイルラスタスキャンにおいて連続的に順序付けられる。スライスがタイルのツリーブロックラスタスキャンにおいて連続的であるツリーブロックを含むにもかかわらず、これらのツリーブロックは、画像のツリーブロックラスタスキャンにおいて必ずしも連続的であるというわけではない。
【0041】
スライス:ラスタスキャンにおいて連続的に順序付けられる整数個のツリーブロック。スライスへのそれぞれの画像の分割は、パーティション分割である。ツリーブロックアドレスは、(スライスヘッダにおいて表されるように)スライスにおいて第1のツリーブロックアドレスから導出される。
【0042】
ラスタスキャン:1次元パターンにおいて第1のエントリが、左から右にスキャンされる2次元パターンの一番上の第1の行から、それぞれが左から右にスキャンされ(下がる)パターンの第2、第3などの行が同様に続くように、1次元パターンへの矩形の2次元パターンのマッピング。
【0043】
ツリーブロック:ルマ(luma)サンプルのNxNブロックおよび3つのサンプルアレイを有する画像のクロマ(chroma)サンプルの2つの対応するブロック、または、モノクロ画像または3つの別々の色平面を用いて符号化される画像のサンプルのNxNブロック。ツリーブロックへのスライスの分割は、パーティション分割である。
【0044】
パーティション分割:セットのそれぞれの要素がサブセットの正確に1つにあるようにサブセットへのセットの分割。
【0045】
クワッドツリー:親ノードを4つの子ノードに分割することができるツリー。子ノードは、4つの子ノードへの別の分割のための親ノードになることがある。
【0046】
以下において、画像、スライスおよびタイルの空間再分割が説明される。特に、以下の説明は、どのように画像がスライス、タイルおよび符号化ツリーブロックにパーティション分割されるかについて明示する(specifies)。画像は、スライスおよびタイルに分割される。スライスは、一連の符号化ツリーブロックである。同様に、タイルは、一連の符号化ツリーブロックである。
【0047】
サンプルは、符号化ツリーブロックを単位にして処理される。幅および高さの両方においてサンプルにおけるツリーブロックごとのルマ(luma)アレイサイズは、CtbSizeである。符号化ツリーブロックごとのクロマ(chroma)アレイの幅および高さは、それぞれ、CtbWidthCおよびCtbHeightCである。例えば、画像は、次の図に示すように2つのスライスに分割され得る。別の例として、画像は、第2の以下の図に示すように3つのタイルに分割され得る。
【0048】
スライスとは異なり、タイルは、常に矩形であり、さらに、常に符号化ツリーブロックラスタスキャンにおいて整数個の符号化ツリーブロックを含む。タイルは、1つよりも多いスライスに含まれる符号化ツリーブロックからなり得る。同様に、スライスは、1つよりも多いタイルに含まれる符号化ツリーブロックからなり得る。
【0049】
図9は、2つのスライス900a、bにパーティション分割される11×9の符号化ツリーブロック918を有する画像898を示す。
【0050】
図10は、3つのタイルにパーティション分割される13×8の符号化ツリーブロック918を有する画像を示す。
【0051】
それぞれの符号化898のツリーブロック918は、イントラまたはインター予測のためのおよび変換符号化のための、ブロックサイズを識別するためにシグナリングするパーティションが割り当てられる。パーティション分割は、再帰的なクワッドツリーパーティション分割である。クワッドツリーのルートは、符号化ツリーブロックと関連付けられる。クワッドツリーは、リーフに達するまで分割され、それは、符号化ブロックと呼ばれる。符号化ブロックは、2つのツリーのルートノード、予測ツリーおよび変換ツリーである。
【0052】
予測ツリーは、予測ブロックの位置およびサイズを明示する。予測ブロックおよび関連した予測データは、予測ユニットと呼ばれる。
【0053】
図11は、例示的なシーケンスパラメータセットRBSP構文を示す。
【0054】
変換ツリーは、変換ブロックの位置およびサイズを明示する。変換ブロックおよび関連した変換データは、変換ユニットと呼ばれる。
【0055】
ルマ(luma)およびクロマ(chroma)のための分割情報は、予測ツリーと同一であり、さらに、変換ツリーと同一であってもよくまたは同一でなくてもよい。
【0056】
符号化ブロック、関連した符号化データ、関連した予測および変換ユニットは、一緒に符号化ユニットを形成する。
【0057】
タイルスキャン順序への符号化ツリーブロック・ラスタ順序において符号化ツリーブロックアドレスの変換のためのプロセスは、以下のようになり得る。
このプロセスの出力は
- 0からPicHeightInCtbs*PicWidthInCtbs-1の範囲においてctbAddrRSを有する、アレイCtbAddrTS[ctbAddrRS]であり、
- 0からPicHeightInCtbs*PicWidthInCtbs-1の範囲においてctbAddrTSを有する、アレイTileId[ctbAddrTS]である。
アレイCtbAddrTS[]は、以下のように導出される。
【0058】
アレイTileId[]は、以下のように導出される:
【0059】
対応する、例示的な構文は、図11図12および図13に示され、図12は、例示的な画像パラメータセットRBSP構文を有する。図13は、例示的なスライスヘッダ構文を示す。
【0060】
構文例において、以下のセマンティックスが適用され得る:
【0061】
1に等しいentropy_slice_flagは、存在しないスライスヘッダ構文要素の値が進行スライスにおいてスライスヘッダ構文要素の値に等しいと推測されることを明示し、進行スライスは、位置を有する符号化ツリーブロックを含むスライスとして定義される(SliceCtbAddrRS-1)。entropy_slice_flagは、SliceCtbAddrRSが0に等しいときに0に等しい。
【0062】
0に等しいtiles_or_entropy_coding_sync_idcは、符号化されたビデオシーケンスにおけるそれぞれの画像において1つのタイルだけがあることを明示し、さらに、コンテキスト変数のための特定の同期化プロセスは、符号化ツリーブロックの行の第1の符号化ツリーブロックを復号化する前に呼び出されない。
【0063】
1に等しいtiles_or_entropy_coding_sync_idcは、符号化されたビデオシーケンスにおけるそれぞれの画像において1つよりも多いタイルがあってもよいことを明示し、さらに、コンテキスト変数のための特定の同期化プロセスは、符号化ツリーブロックの行の第1の符号化ツリーブロックを復号化する前に呼び出されない。
【0064】
2に等しいtiles_or_entropy_coding_sync_idcは、符号化されたビデオシーケンスにおけるそれぞれの画像において1つのタイルだけがあることを明示し、コンテキスト変数のための特定の同期化プロセスは、符号化ツリーブロックの行の第1の符号化ツリーブロックを復号化する前に呼び出され、さらに、コンテキスト変数のための特定の暗記プロセスは、符号化ツリーブロックの行の2つの符号化ツリーブロックを復号化した後に呼び出される。
【0065】
tiles_or_entropy_coding_sync_idcの値は、0から2の範囲にある。
【0066】
num_tile_columns_minus1+1は、画像をパーティション分割するタイル列の数を明示する。
【0067】
num_tile_rows_minus1+1は、画像をパーティション分割するタイル行の数を明示する。num_tile_columns_minus1が0に等しいときに、num_tile_rows_minus1は、0に等しくない。
【0068】
以下の状況の一方または両方は、スライスおよびタイルごとに満たされる:
- スライスにおいてすべての符号化されたブロックは、同じタイルに属する。
- タイルにおいてすべての符号化されたブロックは、同じスライスに属する。
【0069】
注意- 同じ画像内において、複数のタイルを含むスライスおよび複数のスライスを含むタイルの両方があってもよい。
【0070】
1に等しいuniform_spacing_flagは、列境界および同様に行境界が画像にわたって一様に分布されることを明示する。0に等しいuniform_spacing_flagは、列境界および同様に行境界が画像にわたって一様に分布されないが、構文要素column_width[i]およびrow_height[i]を用いて明確に示されることを明示する。
【0071】
column_width[i]は、符号化ツリーブロックを単位にしてi番目のタイル列の幅を明示する。
【0072】
row_height[i]は、符号化ツリーブロックを単位にしてi番目のタイル行の高さを指定する、符号化ツリーブロックを単位にしてi番目のタイル列の幅を明示するColumnWidth[i]の値、およびルマ(luma)サンプルを単位にしてi番目のタイル列の幅を指定するColumnWidthInLumaSamples[i]の値は、以下のように導出される:
【0073】
符号化ツリーブロックを単位にしてi番目のタイル行の高さを指定するRowHeight[i]の値は、以下のように導出される:
【0074】
符号化ツリーブロックを単位にしてi番目のタイル列の左側列境界の位置を指定するColBd[i]の値は、以下のように導出される:
【0075】
符号化ツリーブロックを単位にしてi番目のタイル行の一番上の行境界の位置を指定するRowBd[i]の値は、以下のように導出される:
【0076】
num_substreams_minus1+1は、tiles_or_entropy_coding_sync_idcが2に等しいときに、スライスに含まれるサブセットの最大数を明示する。存在しないときに、num_substreams_minus1の値は、0に等しいと推測される。
【0077】
num_entry_point_offsetsは、スライスヘッダにおいてentry_point_offset[i]構文要素の数を明示する。tiles_or_entropy_coding_sync_idcが1に等しいときに、num_entry_point_offsetsの値は、0から(num_tile_columns_minus1+1)*(num_tile_rows_minus1+1)-1の範囲にある。tiles_or_entropy_coding_sync_idcが2に等しいときに、num_entry_point_offsetsの値は、0からnum_substreams_minus1の範囲にある。存在しないときに、num_entry_point_offsetsの値は、0に等しいと推測される。
【0078】
offset_len_minus1+1は、ビットにおいて、entry_point_offset[i]構文要素の長さを明示する。
【0079】
entry_point_offset[i]は、バイトにおいて、i番目のエントリポイントオフセットを明示し、さらに、offset_len_minus1+1のビットによって表される。符号化されたスライスNALユニットは、0からnum_entry_point_offsetsの範囲のサブセットインデックス値を有する、num_entry_point_offsets+1のサブセットからなる。サブセット0は、0から符号化されたスライスNALユニットのentry_point_offset[0]-1のバイトからなり、1からnum_entry_point_offsets-1の範囲においてkを有するサブセットkは、符号化されたスライスNALユニットのentry_point_offset[k-1]からentry_point_offset[k]+entry_point_offset[k-1]-1のバイトからなり、さらに、(num_entry_point_offsetsに等しいサブセットインデックスを有する)最後のサブセットは、符号化されたスライスNALユニットの残りのバイトからなる。
【0080】
注意 - NALユニットヘッダおよび符号化されたスライスNALユニットのスライスヘッダは、サブセット0に常に含まれる。
【0081】
tiles_or_entropy_coding_sync_idcが1に等しく、さらに、num_entry_point_offsetsが0よりも大きいときに、それぞれのサブセットは、1または複数の完全なタイルのすべての符号化されたビットを含み、さらに、サブセットの数は、スライスにおいてタイルの数以下である。
tiles_or_entropy_coding_sync_idcが2に等しく、さらに、num_entry_point_offsetsが0よりも大きいときに、サブセットkは、すべての可能なk値のそれぞれのために、現在のビットストリームポインタkのための初期化プロセスの間に用いられるすべてのビットを含む。
【0082】
スライスデータセマンティックに関して、以下が適用され得る。
【0083】
0に等しいend_of_slice_flagは、別のマクロブロックがスライスにおいて続いていることを明示する。1に等しいend_of_slice_flagは、スライスの最後を明示し、さらに、さらなるマクロブロックは、続かない。
【0084】
entry_point_marker_two_3bytesは、0x000002に等しい3バイトの固定値シーケンスである。この構文要素は、エントリマーカープレフィックスと呼ばれる。
【0085】
tile_idx_minus_1は、ラスタスキャン順序においてTileIDを明示する。画像において第1のタイルは、0のTileIDを有する。tile_idx_minus_1の値は、0から(num_tile_columns_minus1+1)*(num_tile_rows_minus1+1)-1の範囲にある。
【0086】
スライスデータのためのCABAC解析プロセスは、以下のようになり得る:
【0087】
このプロセスは、記述子ae(v)を有する構文要素を解析するときに呼び出される。
【0088】
このプロセスへの入力は、構文要素の値および従来の解析された構文要素の値のためのリクエストである。
【0089】
このプロセスの出力は、構文要素の値である。
【0090】
スライスのスライスデータの解析を開始するときに、CABAC解析プロセスの初期化プロセスが呼び出される。tiles_or_entropy_coding_sync_idcが2に等しく、さらに、num_substreams_minus1が0よりも大きいときに、後の現在のビットストリームポインタ導出のために用いるためにビットストリームポインタテーブルを指定するnum_substreams_minus1+1のエントリを有するマッピングテーブルBitStreamTableが以下のように導出される。
- BitStreamTable[0]は、ビットストリームポインタを含むために初期化される。
- 0よりも大きくさらにnum_substreams_minus1+1よりも小さいすべてのインデックスiのために、BitStreamTable[i]は、BitStreamTable[i-1]の後にentry_point_offset[i]バイトへのビットストリームポインタを含む。
現在のビットストリームポインタは、BitStreamTable[0]にセットされる。
【0091】
空間隣接ブロックTを含む符号化ツリーブロックの最小符号化ブロックアドレス、ctbMinCbAddrTは、例えば、以下のように、現在の符号化ツリーブロックの左上のルマ(luma)サンプルの位置(x0、y0)を用いて導出される。
x=x0+2<<Log2CtbSize-1
y=y0-1
ctbMinCbAddrT=MinCbAddrZS[x>>Log2MinCbSize][y>>Log2MinCbSize]
【0092】
変数availableFlagTは、入力としてctbMinCbAddrTを有する適切な符号化ブロック利用可能性導出プロセスを呼び出すことによって得られる。
符号化ツリーの解析を開始し、さらに、tiles_or_entropy_coding_sync_idcが2に等しく、さらに、num_substreams_minus1が0よりも大きいときに、以下が適用される。
- CtbAddrRS%PicWidthInCtbsが0に等しい場合、以下が適用される。
- availableFlagTが1に等しいときに、CABAC解析プロセスの同期化プロセスが、従属節「コンテキスト変数のための同期化プロセス」において明示されるように呼び出される。
- 終了の前のバイナリ決定のための復号化プロセスが呼び出され、その後に算術復号化エンジンのための初期化プロセスが続く。
- 現在のビットストリームポインタは、以下のように導出されるインデックスiを有するBitStreamTable[i]を示すためにセットされる。
i=(CtbAddrRS/PicWidthInCtbs)%(num_substreams_minus1+1)
- そうでなければ、CtbAddrRS%PicWidthInCtbsが2に等しい場合、CABAC解析プロセスの記憶プロセスが、従属節「コンテキスト変数のための記憶プロセス」において明示されるように呼び出される。
【0093】
初期化プロセスは、以下のようになり得る:
【0094】
このプロセスの出力は、初期化されたCABAC内部変数である。
【0095】
それの特別なプロセスは、スライスのスライスデータの解析を開始するときに、または、符号化ツリーのデータの解析を開始しさらに符号化ツリーがタイルにおいて第1の符号化ツリーであるときに、呼び出される。
【0096】
コンテキスト変数のための記憶プロセスは、以下のようになり得る:
【0097】
このプロセスの入力は、ctxIdxによってインデックスが付けられるCABACコンテキスト変数である。
【0098】
このプロセスの出力は、スライスのエンドフラグを除いて構文要素に割り当てられるコンテキスト変数の初期化プロセスにおいて用いられる変数mおよびnの値を含む変数TableStateSyncおよびTableMPSSyncである。
コンテキスト変数ごとに、テーブルTableStateSyncおよびTableMPSSyncの対応するエントリnおよびmは、対応するpStateIdxおよびvalMPSに初期化される。
【0099】
コンテキスト変数のための同期化プロセスは、以下のようになり得る:
【0100】
このプロセスの入力は、スライスのエンドフラグを除いて構文要素に割り当てられるコンテキスト変数の記憶プロセスにおいて用いられる変数nおよびmの値を含む変数TableStateSyncおよびTableMPSSyncである。
【0101】
このプロセスの出力は、ctxIdxによってインデックスが付けられるCABACコンテキスト変数である。
【0102】
コンテキスト変数ごとに、対応するコンテキスト変数pStateIdxおよびvalMPSは、テーブルTableStateSyncおよびTableMPSSyncの対応するエントリnおよびmに初期化される。
【0103】
以下において、WPPを用いる低遅延符号化および転送が説明される。特に、以下の説明は、どのように図7に記載するような低遅延転送をWPPに適用できるかについて明らかにする。
【0104】
まず第一に、全画像の完成の前に、画像のサブセットが送られ得ることが重要である。通常、これは、すでに図5に示すように、スライスを用いて達成可能である。
【0105】
タイルと比較して遅延を低減するために、以下の図に示すように、LCUの行ごとに単一のWPPサブビットストリームを適用し、さらにそれらの行のそれぞれの別々の伝送を可能にする必要がある。符号化効率を高く保つために、列/サブストリームごとのスライスを用いることができない。したがって、以下で、次のセクションにおいて定義されるようないわゆる依存スライスが導入される。このスライスは、例えば、完全なHEVCスライスヘッダのすべての分野ではないが、エントロピースライスのために用いられる分野を有する。さらに、行間でCABACの破壊をオフにするためにスイッチがあってもよい。WPPの場合、CABACコンテキストの使用(図14の矢印)および行の予測は、タイル上のWPPの符号化効率ゲインを保つために可能にされる。
【0106】
特に、図14は、レギュラースライス900(レギュラーSL)へのWPPのための、および、依存スライス(OS)920への低遅延処理のための、画像10を例示する。
【0107】
現在、今度のHEVC規格は、スライスに関してパーティション分割の2つのタイプを提供する。レギュラー(ノーマル)スライスおよびエントロピースライスがある。レギュラースライスは、スライス境界においてフィルタプロセスを非ブロック化するために利用できるいくらかの依存性を除いて、完全に独立した画像パーティションである。エントロピースライスは、エントロピー符号化に関してだけ独立している。図14の考えは、スライス概念(slicing concept)を一般化することである。このように、今度のHEVC規格は、スライスの2つの一般的なタイプ:独立(レギュラー)または依存を提供すべきである。したがって、新しいタイプのスライス、依存スライスが導入される。
【0108】
依存スライスは、前のスライスに対して依存性を有するスライスである。依存性は、エントロピー復号化プロセスおよび/またはピクセル再構成プロセスにおいてスライス間に利用できる特定のデータである。
【0109】
図14において、依存スライスの概念が、例示的に示される。画像は、例えば、常にレギュラースライスから開始する。この概念において、レギュラースライス挙動がわずかに変更されることに注意すべきである。典型的に、H264/AVCまたはHEVCのような規格において、レギュラースライスは、完全に独立したパーティションであり、さらに、フィルタプロセスを非ブロック化するためのいくつかのデータを除いて、復号化の後に、いかなるデータも保つ必要はない。しかし、この次の依存スライス920の処理は、上述のスライス、ここで第1の行において、レギュラースライス900のデータを参照することによってだけ可能である。それを確立するために、レギュラースライス900は、最後のCU行のデータを保つべきである。
このデータは、
- CABAC符号化エンジンデータ(依存スライスのエントロピー復号化プロセスが初期化され得る1つのCUのコンテキストモデル状態)、
- 依存CUのレギュラーCABAC復号化プロセスのためのCUのすべての復号化された構文要素、
- イントラおよび動きベクトル予測のデータ
を含む。
【0110】
結果的に、それぞれの依存スライス920は、同じ画像においてこの次の依存スライスのためのデータを保つ、同じ手順を行うべきである。
【0111】
実際には、これらの追加的なステップは、問題であるべきでなく、なぜなら、復号化プロセスは、一般に、常に構文要素のようないくつかのデータを格納することを強いられるからである。
【0112】
以下のセクションにおいて、依存スライスの概念を可能にすることが必要とされるHEVC規格構文のための可能な変更が示される。
【0113】
図5は、例えば、画像パラメータセットRBSP構文において可能な変更を示す。
【0114】
依存スライスのための画像パラメータセットセマンティックスは、以下のようになり得る:
【0115】
1に等しいdependent_slices_present_flagは、画像が依存スライスを含むことを明示し、さらに、それぞれの(レギュラーまたは依存)スライスの復号化プロセスは、エントロピー復号化の状態と、レギュラースライスに続き得る依存スライスであってもよい次のスライスのためのイントラおよび動きベクトル予測のデータとを格納すべきである。以下の依存スライスは、その格納されたデータを参照することができる。
【0116】
図16は、HEVCの現在の状況と関連する変化を有する可能なslice_header構文を示す。
【0117】
1に等しいdependent_slice_flagは、存在しないスライスヘッダ構文要素の値が進行(レギュラー)スライスにおいてスライスヘッダ構文要素の値に等しいと推測されることを明示し、進行スライスは、位置を有する符号化ツリーブロックを含むスライスとして定義される(SliceCtbAddrRS-1)。dependent_slice_flagは、SliceCtbAddrRSが0に等しいときに0に等しい。
【0118】
1に等しいno_cabac_reset_flagは、先に復号化されたスライス(初期値を有しない)の保存された状態からCABAC初期化を明示する。そうでなければ、すなわち0に等しい場合、先に復号化されたスライスの、すなわち初期値を有する、いかなる状態からも独立してCABAC初期化を指定する。
【0119】
1に等しいlast_ctb_cabac_init_flagは、(例えば常に1に等しいタイルのために)先に復号化されたスライスの最後の符号化されたツリーブロックの保存された状態からCABAC初期化を明示する。そうでなければ(0に等しい場合)、初期化データは、現在のスライスの第1の符号化されたツリーブロックが行において第1の符号化されたツリーブロックである場合(すなわちWPPモード)、先に復号化されたスライスの最後の(隣接した)ctb-rowの第2の符号化されたツリーブロックの保存された状態から参照され、そうでなければ、CABAC初期化は、先に復号化されたスライスの最後の符号化されたツリーブロックの保存された状態から予め形成される。
【0120】
依存スライスおよび他のパーティション分割スキーム(情報)の比較は、以下に提供される。
【0121】
図17において、ノーマルおよび依存スライス間の差が示される。
【0122】
図18に関して示されるように依存スライス(DS)においてWPPサブストリームの可能な符号化および伝送は、タイル(左)およびWPP/DS(右)の低遅延転送のための符号化に匹敵する。図18において太い連続的に描かれたクロスは、WPP行の符号化が単一のタイルの符号化と同じ時間をとると仮定すると2つの方法のための時間の同じ時点を示す。符号化依存性のために、WPPの第1の行だけは、すべてのタイルが符号化された後に、準備されている。しかし、依存スライスアプローチを用いると、WPPアプローチは、それが符号化されるとすぐに第1の行を送ることを可能にする。これは、初期のWPPサブストリーム割当てと異なり、「サブストリーム」は、同じデコーダスレッド、すなわち同じコア/プロセッサによって復号化されるWPPであるスライスのCU行の連結としてWPPのために定義される。しかし、行ごとおよびエントロピースライスごとのサブストリームは、エントロピースライスがエントロピー符号化依存性を破壊し、したがって低符号化効率を有し、すなわちWPP効率ゲインが損失する前にも可能である。
【0123】
加えて、両方のアプローチ間の遅延差は、図19に示すような伝送を仮定すると、実際に低くすることができる。特に、図19は、パイプライン低遅延伝送でWPP符号化を示す。
【0124】
図18においてWPPアプローチにおけるDS#1.1の後の2つのCUの符号化が、第1の行SL#1の伝送よりも長くないと仮定すると、低遅延の場合においてタイルおよびWPP間の差がない。しかし、WP/DSの符号化効率は、タイル概念よりもパフォーマンスが優れている。
【0125】
WPP低遅延モードのためのロバスト性を増加するために、図20は、ロバスト性改善がアンカーとしてレギュラースライス(RS)を用いることによって達成されることを示す。図20に示される画像において、(レギュラー)スライス(RS)の後に依存スライス(DS)が続く。ここで、(レギュラー)スライスは、前のスライスへの依存性を破壊するアンカーとして働き、そのため、より多くのロバスト性が(レギュラー)スライスのそのような挿入ポイントで提供される。原理的には、これは、とにかく(レギュラー)スライスを挿入することと変わらない。
【0126】
依存スライスの概念を、以下のように実施することもできる。
【0127】
ここで、図21は、可能なスライスヘッダ構文を示す。
【0128】
スライスヘッダセマンティックスは、以下のとおりである:
【0129】
1に等しいdependent_slice_flagは、存在しないそれぞれのスライスヘッダ構文要素の値が、符号化ツリーブロックアドレスがSliceCtbAddrRS-1である符号化ツリーブロックを含む前のスライスにおいて対応するスライスヘッダ構文要素の値に等しいと推測されることを明示する。存在しないときに、dependent_slice_flagの値は、0に等しいと推測される。dependent_slice_flagの値は、SliceCtbAddrRSが0に等しいときに0に等しい。
【0130】
slice_addressは、スライスが開始するスライス粒度解像度においてアドレスを明示する。slice_address構文要素の長さは、(Ciel(Log2(PicWidthInCtbs*PicHeightInCtbs))+SliceGranularity)ビットである。
【0131】
スライスが符号化ツリーブロックラスタスキャン順序において開始する符号化ツリーブロックを明示する、変数SliceCtbAddrRSは、以下のように導出される。
SliceCtbAddrRS=(slice_address>>SliceGranularity)
【0132】
zスキャン順序において最小符号化ブロック粒度におけるスライスにおいて第1の符号化ブロックのアドレスを明示する、変数SliceCbAddrZSは、以下のように導出される。
SliceCbAddrZS=slice_address
<<((log2_diff_max_min_coding_block_size-SliceGranularity)<<1)
【0133】
スライス復号化は、可能な最大の符号化ユニットで、または、他の用語において、スライス開始座標で、CTUで、開始する。
【0134】
first_slice_in_pic_flagは、スライスが画像の第1のスライスであるかどうかを示す。first_slice_in_pic_flagが1に等しい場合、変数SliceCbAddrZSおよびSliceCtbAddrRSは、両方とも0にセットされ、さらに、復号化は、画像において第1の符号化ツリーブロックで開始する。
【0135】
pic_parameter_set_idは、使用において画像パラメータセットを明示する。pic_parameter_set_idの値は、0から255の範囲にある。
【0136】
num_entry_point_offsetsは、スライスヘッダにおいてentry_point_offset[i]構文要素の数を明示する。tiles_or_entropy_coding_sync_idcが1に等しいときに、num_entry_point_offsetsの値は、0から(num_tile_columns_minus1+1)*(num_tile_rows_minus1+1)-1の範囲にある。tiles_or_entropy_coding_sync_idcが2に等しいときに、num_entry_point_offsetsの値は、0からPicHeightInCtbs-1の範囲にある。存在しないときに、num_entry_point_offsetsの値は、0に等しいと推測される。
【0137】
offset_len_minus1+1は、ビットにおいて、entry_point_offset[i]構文要素の長さを明示する。
【0138】
entry_point_offset[i]は、バイトにおいて、i番目のエントリポイントオフセットを明示し、さらに、offset_len_minus1+1ビットによって表される。スライスヘッダの後の符号化されたスライスデータは、0からnum_entry_point_offsetsの範囲のサブセットインデックス値を有する、num_entry_point_offsets+1のサブセットからなる。サブセット0は、符号化されたスライスデータの0からentry_point_offset[0]-1のバイトからなり、1からnum_entry_point_offsets-1の範囲におけるkを有するサブセットkは、符号化されたスライスデータのentry_point_offset[k-1]からentry_point_offset[k]+entry_point_offset[k-1]-1のバイトからなり、さらに、(num_entry_point_offsetsに等しいサブセットインデックスを有する)最後のサブセットは、符号化されたスライスデータの残りのバイトからなる。
【0139】
tiles_or_entropy_coding_sync_idcが1に等しく、さらに、num_entry_point_offsetsが0よりも大きいときに、それぞれのサブセットは、正確に1つのタイルのすべての符号化されたビットを含み、さらに、サブセットの数(すなわち、num_entry_point_offsets+1の値)は、スライスにおいてタイルの数以下である。
【0140】
注意- tiles_or_entropy_coding_sync_idcが1に等しいときに、それぞれのスライスは、1つのタイルのサブセット(エントリポイントのシグナリングが不必要である場合)か、整数の完全なタイルを含まなければならない。
【0141】
tiles_or_entropy_coding_sync_idcが2に等しく、さらに、num_entry_point_offsetsが0よりも大きいときに、0からnum_entry_point_offsets-1の範囲におけるkを有するそれぞれのサブセットkは、符号化ツリーブロックの正確に1つの行のすべての符号化されたビットを含み、(num_entry_point_offsetsに等しいサブセットインデックスを有する)最後のサブセットは、スライスに含まれる残りの符号化ブロックのすべての符号化されたビットを含み、残りの符号化ブロックは、符号化ツリーブロックの正確に1つの行か、符号化ツリーブロックの1つの行のサブセットからなり、さらに、サブセットの数(すなわち、num_entry_point_offsets+1の値)は、スライスにおいて符号化ツリーブロックの行の数に等しく、スライスにおいて符号化ツリーブロックの1つの行のサブセットもカウントされる。
【0142】
注意 tiles_or_entropy_coding_sync_idcが2に等しいときに、スライスは、符号化ツリーブロックの多数の行および符号化ツリーブロックの行のサブセットを含んでもよい。例えば、スライスが符号化ツリーブロック2.5行を含む場合、サブセットの数(すなわち、num_entry_point_offsets+1の値)は、3に等しい。
【0143】
対応する画像パラメータセットRBSP構文を、図22に示すように選択することができる。
【0144】
画像パラメータセットRBSPセマンティックスは、以下のようになり得る:
【0145】
1に等しいdependent_slice_enabled_flagは、画像パラメータセットを参照する符号化された画像のためのスライスヘッダにおいて構文要素dependent_slice_flagの存在を明示する。0に等しいdependent_slice_enabled_flagは、画像パラメータセットを参照する符号化された画像のためのスライスヘッダにおいて構文要素dependent_slice_flagの不存在を明示する。tiles_or_entropy_coding_sync_idcが3に等しいときに、dependent_slice_enabled_flagの値は、1に等しい。
【0146】
0に等しいtiles_or_entropy_coding_sync_idcは、画像パラメータセットを参照するそれぞれの画像において1つのタイルだけがあることを明示し、画像パラメータセットを参照するそれぞれの画像において符号化ツリーブロックの行の第1の符号化ツリーブロックを復号化する前に呼び出されるコンテキスト変数のための特定の同期化プロセスがなく、さらに、画像パラメータセットを参照する符号化された画像のためのcabac_independent_flagおよびdependent_slice_flagの値は、両方とも1に等しくない。
【0147】
cabac_independent_flagおよびdepedent_slice_flagが両方ともスライスのために1に等しいときに、スライスは、エントロピースライスであることに注意すべきである。
【0148】
1に等しいtiles_or_entropy_coding_sync_idcは、画像パラメータセットを参照するそれぞれの画像において1つよりも多いタイルがあってもよいことを明示し、画像パラメータセットを参照するそれぞれの画像において符号化ツリーブロックの行の第1の符号化ツリーブロックを復号化する前に呼び出されるコンテキスト変数のための特定の同期化プロセスがなく、さらに、画像パラメータセットを参照する符号化された画像のためのcabac_independent_flagおよびdependent_slice_flagの値は、両方とも1に等しくない。
【0149】
2に等しいtiles_or_entropy_coding_sync_idcは、画像パラメータセットを参照するそれぞれの画像において1つのタイルだけがあることを明示し、コンテキスト変数のための特定の同期化プロセスは、画像パラメータセットを参照するそれぞれの画像において符号化ツリーブロックの行の第1の符号化ツリーブロックを復号化する前に呼び出され、さらに、コンテキスト変数のための特定の暗記プロセスは、画像パラメータセットを参照するそれぞれの画像において符号化ツリーブロックの行の2つの符号化ツリーブロックを復号化した後に呼び出され、さらに、画像パラメータセットを参照する符号化された画像のためのcabac_independent_flagおよびdependent_slice_flagの値は、両方とも1に等しくない。
【0150】
3に等しいtiles_or_entropy_coding_sync_idcは、画像パラメータセットを参照するそれぞれの画像において1つのタイルだけがあることを指定し、画像パラメータセットを参照するそれぞれの画像において符号化ツリーブロックの行の第1の符号化ツリーブロックを復号化する前に呼び出されるコンテキスト変数のための特定の同期化プロセスがなく、さらに、画像パラメータセットを参照する符号化された画像のためのcabac_independent_flagおよびdependent_slice_flagの値は、両方とも1に等しくてもよい。
【0151】
dependent_slice_enabled_flagが0に等しいときに、tiles_or_entropy_coding_sync_idcは、3に等しくない。
【0152】
tiles_or_entropy_coding_sync_idcの値が符号化されたビデオシーケンス内で起動されるすべての画像パラメータセットのためのものであることは、ビットストリーム適合性の要件である。
【0153】
画像パラメータセットを参照するスライスごとに、tiles_or_entropy_coding_sync_idcが2に等しく、さらに、スライスにおいて第1の符号化ブロックが符号化ツリーブロックの行の第1の符号化ツリーブロックにおいて第1の符号化ブロックでないときに、スライスにおいて最後の符号化ブロックは、スライススライスにおいて第1の符号化ブロックと同じ符号化ツリーブロックの行に属する。
【0154】
num_tile_columns_minus1+1は、画像をパーティション分割するタイル列の数を明示する。
num_tile_rows_minus1+1は、画像をパーティション分割するタイル行の数を明示する。
【0155】
num_tile_columns_minus1が0に等しいときに、num_tile_rows_minus1は、0に等しくない。1に等しいuniform_spacing_flagは、列境界および同様に行境界が画像にわたって一様に分布されることを明示する。0に等しいuniform_spacing_flagは、列境界および同様に行境界が画像にわたって一様に分布されないが、構文要素column_width[i]およびrow_height[i]を用いて明確に示されることを明示する。
【0156】
column_width[i]は、符号化ツリーブロックを単位にしてi番目のタイル列の幅を明示する。
【0157】
row_height[i]は、符号化ツリーブロックを単位にしてi番目のタイル行の高さを明示する。
【0158】
ベクトルcolWidth[i]は、0からnum_tile_columns_minus1の範囲の列iを有するCTBを単位にしてi番目のタイル列の幅を明示する。
【0159】
ベクトルCtbAddrRStoTS[ctbAddrRS]は、0から(picHeightInCtbs*picWidthInCtbs)-1の範囲のインデックスctbAddrRSを有する、ラスタスキャン順序におけるCTBアドレスからタイルスキャン順序におけるCTBアドレスへの会話を明示する。
【0160】
ベクトルCtbAddrTStoRS[ctbAddrTS]は、0から(picHeightInCtbs*picWidthInCtbs)-1の範囲のインデックスctbAddrTSを有する、タイルスキャン順序におけるCTBアドレスからラスタスキャン順序におけるCTBアドレスへの会話を明示する。
【0161】
ベクトルTileId[ctbAddrTS]は、0から(picHeightInCtbs*picWidthInCtbs)-1の範囲のctbAddrTSを有する、タイルスキャン順序におけるCTBアドレスからタイルidへの会話を明示する。
【0162】
colWidth、CtbAddrRStoTS、CtbAddrTStoRSおよびTileIdの値は、CTBラスタと入力としてPicHeightInCtbsおよびPicWidthInCtbsを有するタイルスキャニング会話プロセスとを呼び出すことによって導出され、さらに、出力は、colWidth、CtbAddrRStoTSおよびTileIdに割り当てられる。
【0163】
ルマ(luma)サンプルを単位にしてi番目のタイル列の幅を明示する、ColumnWidthInLumaSamples[i]の値は、colWidth[i]に等しくセットされ、colWidth[i]<<Log2CtbSizeである。
【0164】
0からpicWidthInMinCbs-1の範囲のxおよび0からpicHeightInMinCbs-1の範囲のyを有する、最小CBを単位にして場所(x、y)からzスキャン順序において最小CBアドレスへの会話を明示する、アレイMinCbAddrZS[x][y]は、入力としてLog2MinCbSize、Log2CtbSize、PicHeightInCtbs、PicWidthInCtbsおよびベクトルCtbAddrRStoTSを有するZスキャニング順序アレイ初期化プロセスを呼び出すことによって導出され、さらに、出力は、MinCbAddrZSに割り当てられる。
【0165】
1に等しいloop_filter_across_tiles_enabled_flagは、ループ内フィルタリング動作がタイル境界を越えて実行されることを明示する。0に等しいloop_filter_across_tiles_enabled_flagは、ループ内フィルタリング動作がタイル境界を越えて実行されないことを明示する。ループ内フィルタリング動作は、デブロッキングフィルタ、サンプル適応オフセットおよび適応ループフィルタ動作を含む。存在しないときに、loop_filter_across_tiles_enabled_flagの値は、1に等しいと推測される。
【0166】
1に等しいcabac_independent_flagは、スライスにおいて符号化ブロックのCABAC復号化が先に復号化されたスライスのいかなる状態からも独立していることを明示する。0に等しいcabac_independent_flagは、スライスにおいて符号化ブロックのCABAC復号化が先に復号化されたスライスの状態に依存していることを明示する。存在しないときに、cabac_independent_flagの値は、0に等しいと推測される。
【0167】
最小符号化ブロックアドレスを有する符号化ブロックの利用可能性のための導出プロセスは、以下のようになり得る:
【0168】
このプロセスへの入力は、
- zスキャン順序において最小符号化ブロックアドレスminCbAddrZS
- zスキャン順序において現在の最小符号化ブロックアドレスcurrMinCBAddrZS
である。
【0169】
このプロセスの出力は、zスキャン順序cbAvailableにおいて最小符号化ブロックアドレスcbAddrZSを有する符号化ブロックの利用可能性である。
【0170】
注意1- 利用可能性の意味は、このプロセスが呼び出されるときに決定される。
注意2- そのサイズに関係なく、いかなる符号化ブロックは、最小符号化ブロックアドレスと関連付けられ、それは、zスキャン順序において最小符号化ブロックサイズを有する符号化ブロックのアドレスである。
- 以下の状況の1つ以上が真である場合、cbAvailableは、偽にセットされる。
- minCbAddrZSは、0未満である
- minCbAddrZSは、currMinCBAddrZSより大きい
- 最小符号化ブロックアドレスminCbAddrZSを有する符号化ブロックは、現在の最小符号化ブロックアドレスcurrMinCBAddrZSを有する符号化ブロックとは異なるスライスに属し、さらに、現在の最小符号化ブロックアドレスcurrMinCBAddrZSを有する符号化ブロックを含むスライスのdependent_slice_flagは、0に等しい。
- 最小符号化ブロックアドレスminCbAddrZSを有する符号化ブロックは、現在の最小符号化ブロックアドレスcurrMinCBAddrZSを有する符号化ブロックとは異なるタイルに含まれる。
- そうでなければ、cbAvailableは、真にセットされる。
【0171】
スライスデータのためのCABAC解析プロセスは、以下のようになり得る:
【0172】
このプロセスは、記述子ae(v)を有する特定の構文要素を解析するときに呼び出される。
【0173】
このプロセスへの入力は、構文要素の値および従来の解析された構文要素の値のリクエストである。
【0174】
このプロセスの出力は、構文要素の値である。
【0175】
スライスのスライスデータの解析を開始するときに、CABAC解析プロセスの初期化プロセスが呼び出される。
【0176】
図23は、どのように空間隣接Tが現在の符号化ツリーブロック(情報)と関連する符号化ツリーブロック利用可能性導出プロセスを呼び出すために用いられるかについて示す。
【0177】
空間隣接ブロックT(図23)を含む符号化ツリーブロックの最小符号化ブロックアドレス、ctbMinCbAddrTは、以下のように現在の符号化ツリーブロックの左上のルマ(luma)サンプルの位置(x0、y0)を用いて導出される。
x=x0+2<<Log2CtbSize-1
y=y0-1
ctbMinCbAddrT=MinCbAddrZS[x>>Log2MinCbSize][y>>Log2MinCbSize]
【0178】
変数availableFlagTは、入力としてctbMinCbAddrTを有する符号化ブロック利用可能性導出プロセスを呼び出すことによって得られる。
【0179】
指定されるように(as specified)符号化ツリーの解析を開始するときに、以下の順序付けられたステップが適用される。
【0180】
算術復号化エンジンは、以下のように初期化される。
【0181】
CtbAddrRSがslice_addressに等しい場合、dependent_slice_flagは1に等しく、さらに、entropy_coding_reset_flagは、0に等しく、以下が適用される。
CABAC解析プロセスの同期化プロセスは、入力としてTableStateIdxDSおよびTableMPSValDSで呼び出される。
終了の前のバイナリ決定のための復号化プロセスが呼び出され、その後に算術復号化エンジンのための初期化プロセスが続く。
【0182】
そうでなければ、tiles_or_entropy_coding_sync_idcが2に等しく、さらに、CtbAddrRS % PicWidthInCtbsが0に等しい場合、以下が適用される。
availableFlagTが1に等しいときに、CABAC解析プロセスの同期化プロセスは、入力としてTableStateIdxWPPおよびTableMPSValWPPで呼び出される。
終了の前のバイナリ決定のための復号化プロセスが呼び出され、その後に算術復号化エンジンのためのプロセスが続く。
【0183】
cabac_independent_flagが0に等しく、さらに、dependent_slice_flagが1に等しいときに、または、tiles_or_entropy_coding_sync_idcが2に等しいときに、暗記プロセスは、以下のように適用される。
tiles_or_entropy_coding_sync_idcが2に等しく、さらに、CtbAddrRS%PicWidthInCtbsが2に等しいときに、CABAC解析プロセスの暗記プロセスは、出力としてTableStateIdxWPPおよびTableMPSValWPPで呼び出される。
cabac_independent_flagが0に等しく、dependent_slice_flagが1に等しく、さらに、end_of_slice_flagが1に等しいときに、CABAC解析プロセスの暗記プロセスは、出力としてTableStateIdxDSおよびTableMPSValDSで呼び出される。
【0184】
構文要素の解析は、以下のように進む:
【0185】
構文要素の要請された値ごとに、2値化が導出される。
【0186】
構文要素および解析されたビン(bin)のシーケンスのための2値化が、復号化プロセスフローを決定する。
【0187】
変数binIdxによってインデックスが付けられる、構文要素の2値化のビン(bin)ごとに、コンテキストインデックスctxIdxが導出される。
【0188】
ctxIdxごとに、算術復号化プロセスが呼び出される。
【0189】
解析されたビン(bin)の結果として生じるシーケンス(b0..bbinIdx)は、それぞれのビン(bin)の復号化の後に2値化プロセスによって与えられるビン(bin)ストリングのセットと比較される。シーケンスが与えられたセットにおいてビン(bin)ストリングにマッチするときに、対応する値は、構文要素に割り当てられる。
【0190】
構文要素の値のための要求が構文要素pcm-flagのために処理され、さらに、pcm_flagの復号化された値が1に等しい場合、復号化エンジンは、いかなるpcm_alignment_zero_bit、num_subsequent_pcm、すべてのpcm_sample_lumaおよびpcm_sample_chromaデータの復号化の後に初期化される。
【0191】
このように、上述の説明は、図24に示すようなデコーダを明らかにする。参照符号5によって一般に示されるこのデコーダは、画像10がパーティション分割されるスライス14を単位にして画像10が符号化されるデータストリーム12から画像10を再構成し、デコーダ5は、スライス順序16に従ってデータストリーム12からスライス14を復号化するように構成される。当然、デコーダ5は、スライス14を連続的に復号化するために制限されない。むしろ、デコーダ5は、スライス14にパーティション分割する画像10が波面並列処理に適切であるという条件で、スライス14を復号化するために波面並列処理を用いることができる。したがって、デコーダ5は、例えば、上述されさらに以下にも記載されているように、波面処理を可能にするためにスライス順序16を考慮することによってスライス14の復号化を開始して、スライス14を互い違いに並列に復号化することができる、デコーダであってもよい。
【0192】
デコーダ5は、少なくとも2つのモード20および22の1つに従って現在のスライスを復号化するために、スライス14の現在のスライス内で構文要素部分18に応答する。少なくとも2つのモードの第1のモード、すなわちモード20に従って、現在のスライスは、スライス境界を越える、すなわち図24において点線を越える、コンテキストの導出を含むコンテキスト適応エントロピー復号化を用いて、すなわち他の「スライス順16の前のスライス」の符号化/復号化から生じる情報を用いることによって、データストリーム12から復号化される。さらに、第1のモード20を用いてデータストリーム12から現在のスライスの復号化は、コーデックのシンボル確率の連続的な更新、および先に復号化されたスライスのシンボル確率の保存された状態に依存する現在のスライスの復号化の開始時のシンボル確率の初期化を含む。そのような依存性は、例えば、「コーデック変数のための同期化プロセス」と関連して、上述されている。最後に、第1のモード20は、スライス境界を越える予測復号化も含む。スライス境界を越えるそのような予測復号化は、例えば、スライス境界、すなわち「スライス順序16において」前のスライスのすでに再構成されたサンプル値に基づく現在のスライス内の予測サンプル値を、越えるイントラ予測、または、例えば動きベクトルの予測などのスライス境界を越える符号化パラメータの予測、予測モード、符号化モードなどを含むことができる。
【0193】
第2のモード22に従って、デコーダ5は、コンテキスト適応エントロピー復号化を用いるが、スライス境界を越えないようにコンテキストの導出を制限して、データストリーム12から、現在のスライス、すなわち現在復号化されるスライスを復号化する。例えば、現在のスライス内でブロックに関連する特定の構文要素のためのコンテキストを導出するために用いられる隣接した位置のテンプレートが、隣接したスライスに拡張し、それによって現在のスライスのスライス境界を越える場合、例えば隣接したスライスのこの隣接した部分の対応する構文要素の値などのように、隣接したスライスのそれぞれの部分の対応する属性は、現在のスライスおよび隣接したスライス間の相互依存性を抑制するためにデフォルト値にセットされる。コンテキストのシンボル確率の連続的な更新は、それが第1のモード20における場合であるように起こり得る一方、第2のモード22におけるシンボル確率の初期化は、いかなる先に復号化されたスライスからも独立している。さらに、予測復号化は、スライス境界を越えないように予測復号化を制限して実行される。
【0194】
図24の説明および以下の説明の理解を容易にするために、図24と比較してより構造的な意味においてデコーダ5の可能な実施を示す図25を参照する。それが図24における場合であるように、デコーダ5は、例えば、予測残差および予測パラメータを得るためにデータストリームを復号化するためのコンテキスト適応エントロピー復号化を用いる予測デコーダである。
【0195】
図25に示すように、デコーダ5は、エントロピーデコーダ24、逆量子化および逆変換モジュール26、例えば、加算器および予測器28として、図25に示すように、実施されるコンバイナ28を含むことができる。エントロピーデコーダ24、モジュール26および加算器27は、それらの言及する順序においてデコーダ5の入力および出力間に直列的に接続され、さらに、予測器28は、コンバイナ27とともに予測ループを形成するために加算器28の出力およびそのさらなる入力間に接続される。そのため、デコーダ24は、予測器28の符号化パラメータ入力にさらに接続されるその出力を有する。
【0196】
図25は、デコーダが現在の画像を連続的に復号化するという印象を提供するにもかかわらず、デコーダ5は、例えば、画像10を並列に復号化するために実施され得る。デコーダ5は、例えば、それぞれが図25において要素24-28に従って作動する複数のコアを含むことができる。しかしながら、並列処理は、任意であり、さらに、連続的に作動するデコーダ5は、エントロピーデコーダ24の入力に入ってくるデータストリームを復号化することもできる。
【0197】
現在の画像10を連続的にまたは並列に復号化する今述べた能力を効率的に達成するために、デコーダ5は、画像10を復号化するために、符号化ブロック30単位で作動する。符号化ブロック30は、例えば、符号化ツリーブロックまたは最大の符号化ブロック32が例えばクワッドツリーパーティション分割などの再帰的なマルチツリーパーティション分割によってパーティション分割される、リーフブロックである。次に、コードツリーブロック32は、これらのコードツリーブロック32への画像10のレギュラーパーティション分割を形成するために、列および行に規則的に配置され得る。図25において、コードツリーブロック32は、実線で示されるが、符号化ブロック30は、点線で示される。例示の目的のために、単に1つのコードツリーブロック32は、符号化ブロック30にさらにパーティション分割されることを示し、その代わりに、他のコードツリーブロック32は、符号化ブロックを直接的に形成するためにさらにパーティション分割されないことを示す。データストリーム12は、どのように画像10がコードブロック30にパーティション分割されるかについてシグナリングする構文部分を含むことができる。
【0198】
データストリーム12は、符号化ブロック30ごとに、どのようにモジュール24~28がその符号化ブロック30内の画像コンテンツを回復するかについて明らかにする構文要素を伝達する。例えば、これらの構文要素は、以下を含む:
1)オプションで、符号化ブロック30を予測ブロックにさらにパーティション分割するパーティション分割データ、
2)オプションで、符号化ブロック30を残差および/または変換ブロックにさらにパーティション分割するパーティション分割データ、
3)予測モードが符号化ブロック30のための予測信号を導出するために用いられるかについてシグナリングする予測モードであって、この予測モードがシグナリングされる粒度は、符号化ブロック30および/または予測ブロックに依存することができる。
4)予測パラメータは符号化ブロックごとにシグナリングされ得て、または、存在する場合、送られるある種の予測パラメータを有する予測ブロックごとに、例えば、予測モードに依存する。可能な予測モードは、例えば、イントラ予測および/またはインター予測を含むことができる。
5)他の構文要素は、例えば、予測信号および/または再生される再構成された信号を得るために符号化ブロック30で画像10をフィルタリングするためのフィルタリング情報などのように存在してもよい。
6)最後に、特に変換係数の形の残差情報は、符号化ブロック30のためのデータストリームに含まれ得て、残差ブロックを単位にして、残差データは、シグナリングされ得て、残差ブロックごとに、存在する場合、スペクトル分解は、例えば、上述した変換ブロックを単位にして実行され得る。
【0199】
エントロピーデコーダ24は、データストリームから今述べた構文要素を得る役割を果たす。この目的のために、エントロピーデコーダ24は、コンテキスト適応エントロピー復号化を用いる。すなわち、エントロピーデコーダ24は、いくつかのコンテキストを提供する。データストリーム12から特定の構文要素を導出するために、エントロピーデコーダ24は、可能なコンテキスト中の特定のコンテキストを選択する。可能なコンテキスト中の選択は、現在の構文要素が属する画像10の部分の近隣の属性に応じて実行される。可能なコンテキストのそれぞれのために、エントロピーデコーダ24は、シンボル確率、すなわち、エントロピーデコーダ24が作動するシンボルアルファベットのそれぞれの可能なシンボルのための確率推定を管理する。「管理する」ことは、それぞれのコンテキストに関連付けられるシンボル確率を実際の画像コンテキストに適用するために、コンテキストのシンボル確率の上述した連続的な更新を含む。この対策によって、シンボル確率は、シンボルの実際の確率統計に適用される。
【0200】
近隣の属性が例えば現在の符号化ブロック30などの画像10の現在の部分の再構成に影響を与える別の環境は、予測器28内の予測復号化である。予測は、現在の符号化ブロック30内の予測コンテンツだけに制限されないが、例えば予測パラメータなどの現在の符号化ブロック30のためのデータストリーム12内に含まれるパラメータ、パーティション分割データまたは変換係数の予測を含むこともできる。すなわち、予測器28は、データストリーム12からモジュール26によって得られるような予測残差とその後に結合される書き込まれた信号を得るために、上述した近隣から画像コンテンツまたはそのようなパラメータを予測することができる。パラメータを予測する場合、予測器28は、予測パラメータの実際の値を得るために予測残差としてデータストリーム内に含まれる構文要素を用いることができる。予測器28は、コンバイナ27において予測残差と結合される今述べた予測信号を得るために、後の予測パラメータ値を用いる。
【0201】
上述した「近隣」は、現在エントロピー復号化される構文要素または現在予測される構文要素が属する現在の部分の環境の左上部分を主にカバーする。図25において、そのような近隣は、1つの符号化ブロック30のために例示的に34で示される。
【0202】
符号化/復号化順序は、符号化ブロック30中で定義される:最も粗いレベルで、画像10のコードツリーブロック32は、ここでは上から下まで行ごとに導くラスタスキャンとして示される、スキャン順序36においてスキャンされる。それぞれのコードツリーブロック内で、符号化ブロック30は、それぞれの階層レベルにおいて、コードツリーブロック32が上から下まで行ごとに導くラスタスキャンにおいても実質的にスキャンされるように、深さ優先トラバーサル順序においてスキャンされる。
【0203】
符号化ブロック30中で定義される符号化順序は、近隣34が主に符号化順序に従って復号化をすでに受けた画像10の部分をカバーするという点で、コンテキストを選択しおよび/または空間予測を実行するために、近隣において属性を導出するために用いられる近辺34の定義と調和する。近隣34の部分が画像10の利用できない部分をカバーするときはいつでも、デフォルトデータは、例えば、その代わりに用いられる。例えば、近隣テンプレート34は、画像10の外側に拡張することができる。しかしながら、別の可能性は、近隣34が隣接したスライスに拡張するということである。
【0204】
スライス分割、例えば、符号化ブロック30に沿って定義される符号化/復号化順序に沿った画像10、すなわちそれぞれのスライスは、上述した符号化ブロック順序に沿った符号化ブロック30の連続的な中断しないシーケンスである。図25において、スライスは、1点鎖線14で示される。スライス14中で定義される順序は、上述のような連続的な符号化ブロック30の実行のそれらの構成から生じる。特定のスライス14の構文要素部分18はそれが第1のモードにおいて復号化されることを示す場合、エントロピーデコーダ24は、コンテキスト適応エントロピー復号化がスライス境界を越えるコンテキストを導出することを可能にする。すなわち、空間的近隣34は、現在のスライス14に関してエントロピー復号化データにおいてコンテキストを選択するために用いられる。図25の場合、例えば、スライスナンバー3は、現在復号化されたスライスであってもよく、さらに、符号化ブロック30に関してエントロピー復号化構文要素またはそこに含まれるいくつかの部分において、エントロピーデコーダ24は、例えばスライスナンバー1などの隣接したスライス内で復号化部分から生じる属性を用いることができる。予測器28は、同じように作動する:第1のモード20にあるスライスのために、予測器28は、現在のスライスを囲むスライス境界を越える空間予測を用いる。
【0205】
しかしながら、それに関連付けられる第2のモード22を有する、すなわち構文要素部分18が第2のモード22を示す、スライスのために、エントロピーデコーダ24および予測器28は、現在のスライス内だけに存在する部分に関連する属性に依存するために、エントロピーコンテキストの導出および予測復号化を制限する。明らかに、符号化効率は、この制限を受ける。一方、第2のモード22のスライスは、スライスのシーケンス間の相互依存性を破壊することを可能にする。したがって、第2のモード22のスライスは、画像10内にまたは画像10が再同期化ポイントを可能にするために属するビデオ内に散在され得る。しかしながら、それぞれ画像10が第2のモード22において少なくとも1つのスライスを有することは必要でない。
【0206】
すでに上述したように、第1および第2のモード20および22も、シンボル確率のそれらの初期化において異なる。第2のモード22において符号化されるスライスは、いかなる先に復号化されたスライス、すなわちスライス中で定義される順序という意味において先に復号化されるスライス、から独立した確率を再初期化するエントロピーデコーダ24をもたらす。シンボル確率は、例えば、エンコーダおよびデコーダ側にとって知られているデフォルト値にセットされ、または、初期化値は、第2のモード22において符号化されるスライス内に含まれる。
【0207】
すなわち、第2のモード22において符号化され/復号化されるスライスのために、シンボル確率の適応は、常にこれらのスライスの開始から直ちに開始する。したがって、適応精度は、これらのスライスの開始時にこれらのスライスのために良くない。
【0208】
事態は、第1のモード20において符号化され/復号化されるスライスにおいて異なる。後のスライスのために、エントロピーデコーダ24によって実行されるシンボル確率の初期化は、先に復号化されたスライスのシンボル確率の保存された状態に依存する。第1のモード20において符号化され/復号化されるスライスが、例えば、画像10の左側以外に、すなわちラスタスキャン36が次の行の下側に進む前に行ごとに実行を開始する側ではない側に、配置される、その開始を有するときはいつでも、直前のスライスのエントロピー復号化の最後に生じるようなシンボル確率が採用される。これは、例えば、スライスナンバー4のための矢印38によって図2において示される。スライスナンバー4は、画像10の右側および左側の間に、したがって、シンボル確率を初期化する際に、どこかにその開始を有し、エントロピーデコーダ24は、シンボル確率を初期化する際に、直前のスライス、すなわちスライスナンバー3のエントロピー復号化において得られたシンボル確率を、その最後まで、すなわちスライス3のエントロピー復号化の間にシンボル確率の連続的な更新を含むその最後まで採用する。
【0209】
それに関連付けられる第2のモード22を有するが、例えばスライスナンバー5などの画像10の左側で開始を有するスライスは、直前のスライスナンバー4のエントロピー復号化を終了した後に得られるようなシンボル確率を適用されない、なぜなら、これは、デコーダ5が波面処理の使用によって画像10を並列的に復号化するのを防ぐからである。むしろ、上述のように、エントロピーデコーダ24は、矢印40で示すように符号化/復号化順序36において直前のコードツリーブロック行において、符号化/復号化順序36において第2のコードツリーブロック32のエントロピー復号化を終了した後に得られるようなシンボル確率を適用する。
【0210】
図25において、例えば、画像10は、3行のコードツリーブロックおよび4列の符号化ツリールートブロック32に例示的にパーティション分割され、さらに、それぞれのコードツリーブロック行は、2つのスライス14に再分割され、その結果、すべての第2のスライスの開始は、それぞれのコードツリールートブロック行の符号化ユニット順序において第1の符号化ユニットと一致する。したがって、エントロピーデコーダ24は、第1または最上のコードツリールートブロック行から開始し、そして第2、それから第3に、これらのコードツリールートブロック行を互い違いに復号化することを開始して、それぞれのコードツリールートブロック行を並列に復号化することによって、復号化画像10において波面処理を用いることができる。
【0211】
当然、さらなる符号化ブロック30への再帰的な方法においてブロック32のパーティシン分割は、任意であり、したがって、より一般的な感覚において、ブロック32は、同様に「符号化ブロック」と呼ばれ得る。すなわち、より一般的に言えば、画像10は、行および列に配置されさらに互いに定義されるラスタスキャン順序36を有する符号化ブロック32にパーティション分割され得て、さらに、デコーダ5は、サブセットがスライス順序に従ってラスタスキャン順序36に沿って互いに続くように、それぞれのスライス14をラスタスキャン順序36において符号化ブロック32の連続的なサブセットと関連付けるために考慮され得る。
【0212】
また、上述の説明から明らかになったように、デコーダ5、またはより詳しくは、エントロピーデコーダ24はラスタスキャン順序36に従って符号化ブロック行において第2の符号化ブロックまでいかなるスライスのコンテキスト適応エントロピー復号化において得られるようなシンボル確率を保存するように構成され得る。それに関連付けられる第1のモード20を有する現在のスライスのコンテキスト適応エントロピー復号化のためのシンボル確率を初期化する際に、デコーダ5、またはより詳しくは、エントロピーデコーダ24は現在のスライスと関連付けられる符号化ブロック32の連続的なサブセットの第1の符号化ブロック32がラスタスキャン順序36に従って符号化ブロック行において第1の符号化ブロック32であるかどうかについてチェックする。そうである場合、現在のスライスのコンテキスト適応エントロピー復号化のためのシンボル確率は、矢印40に関して説明されるように、すなわちラスタスキャン順序36に従って符号化ブロック行において第2の符号化ブロックまで先に復号化されたスライスのコンテキストエントロピー復号化において得られるような保存されたシンボル確率に応じて、初期化される。そうでない場合、現在のスライスのコンテキスト適応エントロピー復号化のためのシンボル確率の初期化は、先に復号化されたスライスの最後まで先に復号化されたスライスのコンテキスト適応エントロピー復号化において得られるようなシンボル確率に応じて、すなわち矢印38に従って、実行される。また、38に従う初期化の場合、スライス順序36において直前のスライスのエントロピー復号化の最後に保存された状態を意味するが、初期化40の場合、それは、先に復号化されたスライスがブロック順序36においてブロック32の直前の行の第2のブロックの最後を含むことである。
【0213】
図24において点線で示すように、デコーダは、少なくとも3つのモードの1つに従って現在のスライスを復号化するためにスライス14の現在のスライス内で構文要素部分18に応答するように構成され得る。すなわち、第3のモード42が、他のもの20および22のそばにあってもよい。第3のモード42は、スライス境界を越える予測が可能にされるという点で第2のモード22と異なってもよいが、エントロピー符号化/復号化は、スライス境界を越えないようにまだ制限される。
【0214】
上に、2つの実施形態が、構文要素部分18に関して示されている。下記の表は、これらの2つの実施形態を要約する。
【0215】
【0216】
1つの実施形態において、構文要素部分18は、個々にdependent_slice_flagによって形成され、その一方で、他の実施形態において、dependent_slice_flagおよびno_cabac_reset_flagの結合は、構文要素部分を形成する。先に復号化されたスライスのシンボル確率の保存された状態に応じたシンボル確率の初期化に関する限り、コンテキスト変数のための同期化プロセスを参照する。特に、デコーダは、last_ctb_cabac_init_flag=0およびtiles_or_entropy_coding_sync_idc=2である場合、ラスタスキャン順序に従って連続して第2の符号化ブロックまで先に復号化されたスライスのコンテキスト適応エントロピー復号化において得られるようなシンボル確率を保存し、さらに、第1のモードに従って現在のスライスのコンテキスト適応エントロピー復号化のためのシンボル確率を初期化する際に、現在のスライスと関連付けられる符号化ブロックの連続的なサブセットの第1の符号化ブロックがラスタスキャン順序に従って連続して第1の符号化ブロックであるかどうかについてチェックし、さらに、そうである場合、ラスタスキャン順序に従って連続して第2の符号化ブロックまで先に復号化されたスライスのコンテキスト適応エントロピー復号化において得られるような保存されたシンボル確率に応じて現在のスライスのコンテキスト適応エントロピー復号化のためのシンボル確率を初期化し、さらに、そうでない場合、先に復号化されたスライスの最後まで先に復号化されたスライスのコンテキスト適応エントロピー復号化において得られるようなシンボル確率に応じて現在のスライスのコンテキスト適応エントロピー復号化のためのシンボル確率を初期化するように構成され得る。
【0217】
このように、換言すれば、構文のための第2の実施形態に従って、デコーダは、画像(10)がパーティション分割されるスライス14を単位にして画像が符号化されるデータストリーム12から画像10を再構成し、デコーダは、スライス順序16に従ってデータストリーム12からスライス14を復号化するように構成され、さらに、デコーダは、少なくとも2つのモード20、22の1つに従って現在のスライスを復号化するために、構文要素部分18、すなわちスライスの現在のスライス内のdependent_slice_flagに応答する。少なくとも2つのモードの第1のモード20に従って、すなわちdependent_slice_flag=1である場合、デコーダは、スライス境界を越えるコンテキストの導出、コンテキストのシンボル確率の連続的な更新および先に復号化されたスライスのシンボル確率の保存された状態に応じたシンボル確率の初期化38、40を含むコンテキスト適応エントロピー復号化24と、スライス境界を越える予測復号化とを用いてデータストリーム12から現在のスライスを復号化し、さらに、少なくとも2つのモードの第2のモード22に従って、すなわちdependent_slice_flag=0である場合、デコーダは、スライス境界を越えないようにコンテキストの導出を制限し、コンテキストのシンボル確率の連続的な更新およびいかなる先に復号化されたスライスから独立したシンボル確率の初期化を有するコンテキスト適応エントロピー復号化と、スライス境界を越えないように予測復号化を制限する予測復号化とを用いてデータストリーム12から現在のスライスを復号化する。画像10は、行および列に配置されさらに互いに定義されるラスタスキャン順序36を有する符号化ブロック32においてパーティション分割され得て、さらに、デコーダは、サブセットがスライス順序に従ってラスタスキャン順序36に沿って互いに続くように、それぞれのスライス14をラスタスキャン順序36において符号化ブロック32の連続的なサブセットと関連付けるように構成される。デコーダは、すなわちtiles_or_entropy_coding_sync_idc=2に応答して、ラスタスキャン順序36に従って連続して第2の符号化ブロック32まで先に復号化されたスライスのコンテキスト適応エントロピー復号化において得られるようなシンボル確率を保存し、さらに、第1のモードに従って現在のスライスのコンテキスト適応エントロピー復号化のためのシンボル確率を初期化する際に、現在のスライスと関連付けられる符号化ブロック32の連続的なサブセットの第1の符号化ブロックがラスタスキャン順序に従って連続して第1の符号化ブロック32であるかどうかについてチェックし、さらに、そうである場合、ラスタスキャン順序36に従って連続して第2の符号化ブロックまで先に復号化されたスライスのコンテキスト適応エントロピー復号化において得られるような保存されたシンボル確率に応じて現在のスライスのコンテキスト適応エントロピー復号化のためのシンボル確率を初期化40し、さらに、そうでない場合、先に復号化されたスライスの最後まで先に復号化されたスライスのコンテキスト適応エントロピー復号化において得られるようなシンボル確率に応じて現在のスライスのコンテキスト適応エントロピー復号化のためのシンボル確率を初期化38するように構成され得る。デコーダは、少なくとも3つのモードの1つに従って、すなわち第1のモード20および第3のモード42の1つまたは第2のモード22において、現在のスライスを復号化するために、スライス14の現在のスライス内で構文要素部分(18)に応答するように構成され得て、デコーダは、第3のモード42に従って、すなわちdependent_slice_flag=1およびtiles_or_entropy_coding_sync_idc=3である場合、スライス境界を越えないようにコンテキストの導出を制限し、コンテキストのシンボル確率の連続的な更新およびいかなる先に復号化されたスライスから独立したシンボル確率の初期化を有するコンテキスト適応エントロピー復号化と、スライス境界を越える予測復号化とを用いてデータストリームから現在のスライスを復号化するように構成され、第1および第3のモードの1つは、構文要素、すなわちcabac_independent_flagに応じて選択される。デコーダは、さらに、すなわちtiles_or_entropy_coding_sync_idc=0、1、および3(cabac_independentflag=0であるときに「3」)である場合、先に復号化されたスライスの最後まで先に復号化されたスライスのコンテキスト適応エントロピー復号化において得られるようなシンボル確率を保存し、さらに、第1のモードに従って現在のスライスのコンテキスト適応エントロピー復号化のためのシンボル確率を初期化する際に、保存されるシンボル確率に応じて現在のスライスのコンテキスト適応エントロピー復号化のためのシンボル確率を初期化するように構成され得る。デコーダは、すなわちtiles_or_entropy_coding_sync_idc=1である場合、第1および第2のモードにおいて、画像が再分割されるタイル内で予測復号化を制限するように構成され得る。
【0218】
当然、エンコーダは、したがって、デコーダが上述の利点を得ることを可能にするために、上述の構文をセットすることができる。エンコーダは、例えばマルチコア、エンコーダなどのような並列処理であってもよいが、そうである必要はない。スライス14を単位にして画像10をデータストリーム12に符号化するために、エンコーダは、スライス順序16に従ってスライス14をデータストリーム12に符号化するように構成される。エンコーダは、構文要素部分が少なくとも2つのモード20、22の1つに従って符号化される現在のスライスをシグナリングするようにスライスの現在のスライスのために、構文要素部分18を決定し、さらに、それに構文要素部分18を符号化し、さらに、現在のスライスが少なくとも2つのモードの第1のモード20に従って符号化される場合、スライス境界を越えるコンテキストの導出、コンテキストのシンボル確率の連続的な更新および先に符号化されたスライスのシンボル確率の保存された状態に応じたシンボル確率の初期化38、40を含むコンテキスト適応エントロピー符号化24と、スライス境界を越える予測符号化とを用いて現在のスライスをデータストリーム12に符号化し、さらに、現在のスライスが少なくとも2つのモードの第2のモード22に従って符号化される場合、スライス境界を越えないようにコンテキストの導出を制限し、コンテキストのシンボル確率の連続的な更新およびいかなる先に符号化されたスライスから独立したシンボル確率の初期化を有するコンテキスト適応エントロピー符号化と、スライス境界を越えないように予測符号化を制限する予測符号化とを用いて現在のスライスをデータストリーム12に符号化する。画像10が行および列に配置されさらに互いに定義されるラスタスキャン順序36を有する符号化ブロック32においてパーティション分割され得ると同時に、エンコーダは、サブセットがスライス順序に従ってラスタスキャン順序36に沿って互いに続くように、それぞれのスライス14をラスタスキャン順序36において符号化ブロック32の連続的なサブセットと関連付けるように構成され得る。エンコーダは、ラスタスキャン順序36に従って連続して第2の符号化ブロック32まで先に符号化されたスライスのコンテキスト適応エントロピー符号化において得られるようなシンボル確率を保存し、さらに、第1のモードに従って現在のスライスのコンテキスト適応エントロピー符号化のためのシンボル確率を初期化する際に、現在のスライスと関連付けられる符号化ブロック32の連続的なサブセットの第1の符号化ブロックがラスタスキャン順序に従って連続して第1の符号化ブロック32であるかどうかについてチェックし、さらに、そうである場合、ラスタスキャン順序36に従って連続して第2の符号化ブロックまで先に符号化されたスライスのコンテキスト適応エントロピー符号化において得られるような保存されたシンボル確率に応じて現在のスライスのコンテキスト適応エントロピー符号化のためのシンボル確率を初期化40し、さらに、そうでない場合、先に符号化されたスライスの最後まで先に復号化されたスライスのコンテキスト適応エントロピー符号化において得られるようなシンボル確率に応じて現在のスライスのコンテキスト適応エントロピー符号化のためのシンボル確率を初期化38するように構成され得る。エンコーダは、現在のスライスが少なくとも3つのモードの1つに従って、すなわち第1のモード(20)および第3のモード(42)の1つまたは第2のモード(22)において、それに符号化されるようにシグナリングされるように、構文要素部分(18)をスライス(14)の現在のスライスに符号化するように構成され得て、エンコーダは、**第3のモード(42)に従って、スライス境界を越えないようにコンテキストの導出を制限し、コンテキストのシンボル確率の連続的な更新およびいかなる先に符号化されたスライスから独立したシンボル確率の初期化を有するコンテキスト適応エントロピー符号化と、スライス境界を越える予測符号化とを用いて、現在のスライスをデータストリームに符号化するように構成され、エンコーダは、例えば、構文要素、すなわちcabac_independent_flagを用いて第1および第3のモードの1つであるかを区別する。エンコーダは、例えばdependent_slices_present_flagなどの汎用構文要素を決定し、さらに、汎用構文要素に応じて少なくとも2つの汎用動作モードの1つにおいて作動して、すなわち、第1の汎用動作モードに従って、スライスごとに構文要素部分の符号化を実行し、さらに、第2の汎用動作モードに従って、第1のモード以外の少なくとも2つのモードの異なる1つを必然的に用いて、汎用構文要素をデータストリームに書き込むように構成され得る。エンコーダは、第1および第2のモードに従って、現在のスライスの開始から最後までシンボル確率の連続的な更新を必然的にかつ途切れずに続けるように構成され得る。エンコーダayは、先に符号化されたスライスの最後まで先に符号化されたスライスのコンテキスト適応エントロピー符号化において得られるようなシンボルに確率を保存し、さらに、第1のモードに従って現在のスライスのコンテキスト適応エントロピー符号化のためのシンボル確率を初期化する際に、保存されるシンボル確率に応じて現在のスライスのコンテキスト適応エントロピー符号化のためのシンボル確率を初期化するように構成される。さらに、エンコーダは、第1および第2のモードにおいて、画像が再分割されるタイル内で予測符号化を制限することができる。
【0219】
エンコーダの可能な構造は、完全性のために図26において表される。予測器70は、ほとんど予測器28と同様に作動し、すなわち予測を実行するが、最適化によって、例えば、予測パラメータおよびモードを含む符号化パラメータも決定する。モジュール26および27も、デコーダにおいて生じる。減算器72は、無損失予測残差を決定し、それは、量子化の使用によって、さらに、オプションで、スペクトル分解変換を用いて、変換および量子化モジュール74においてロッシー符号化される。エントロピー符号化器76は、コンテキスト適応エントロピー符号化を実行する。
【0220】
上述の具体的な構文例に加えて、異なる例が、以下に用いられる用語と上述に用いられる用語間の一致を示して以下に概説される。
【0221】
特に、上述に概説しないで、依存スライスは、それがその境界の外側から知られる知識を利用することを可能にするという点で「依存」というだけでなく、例えば上述に概説されるように、より急速に適応されるエントロピーコンテキストを有し、または、その境界を越える許容のためより良好な空間予測を達成する。むしろ、画像をスライスに分割することによってスライスヘッダを定義するために費やされるべきレートコストを節約するために、依存スライスは、前のスライスからスライスヘッダ構文の部分を採用し、すなわち、このスライス構文ヘッダ部分は、依存スライスのために再び送信されない。これは、例えば、図16において100でさらに図21において102で示され、それに従って、スライスタイプは、例えば、前のスライスから採用される。この対策によって、例えば独立スライスおよび依存スライスなどのスライスへの画像の再分割は、高価なビット消費に関してより安価である。
【0222】
それは、以下の概説された例において、わずかに異なる言い回しをもたらす今述べた依存性である:スライスは、スライスヘッダ構文が個々にセット可能である画像のユニット部分として定義される。したがって、スライスは、上述の命名法を用いて、現在、独立スライスセグメントと呼ばれる、1つの独立/レギュラー/ノーマルスライス、および、上述の命名法を用いて、現在、依存スライスセグメントと呼ばれる、0、1または2以上の依存スライスからなる。
【0223】
図27は、例えば、2つのスライスにパーティション分割される画像を示し、1つは、スライスセグメント141~143で形成され、さらに、他の1つは、単にスライスセグメント144だけで形成される。インデックス1~4は、符号化順序においてスライス順序を示す。図28aおよび図28bは、2つのタイルへの画像10の再分割の場合において異なる例を示し、図28aの場合、1つのスライスは、インデックスが符号化順序において上がる、両方のタイル501および502をカバーして、全5つのスライスセグメント14で形成され、さらに、図28aの場合、2つのスライスは、それぞれタイル501を再分割して、スライスセグメント141および142および143および144で形成され、別のスライスは、タイル502をカバーして、スライスセグメント145-146で形成される。
【0224】
定義は、以下のようになり得る:
【0225】
依存スライスセグメント:スライスセグメントヘッダのいくつかの構文要素の値が復号化順序において前の独立スライスセグメントのための値から推測されるスライスセグメントであって、上述の実施形態において、依存スライスと以前呼ばれていた。
【0226】
独立スライスセグメント:スライスセグメントヘッダの構文要素の値が前のスライスセグメントのための値から推測されないスライスセグメントであって、上述の実施形態において、ノーマルスライスと以前呼ばれていた。
【0227】
スライス:1つの独立スライスセグメントおよび同じアクセスユニット/画像内で次の独立スライスセグメント(もしあれば)に先行するすべての後の依存スライスセグメント(もしあれば)に含まれる符号化ツリーユニットの整数。
【0228】
スライスヘッダ:現在のスライスセグメントでありまたは現在の依存スライスセグメントに先行する独立スライスセグメントである独立スライスセグメントのスライスセグメントヘッダ。
【0229】
スライスセグメント:タイルスキャンにおいて連続的に順序付けられさらに単一のNALユニットに含まれる符号化ツリーユニットの整数であって、スライスセグメントへのそれぞれの画像の分割がパーティション分割である。
【0230】
スライスセグメントヘッダ:スライスセグメントにおいて表される第1のまたはすべての符号化ツリーユニットに関連するデータ要素を含む符号化されたスライスセグメントの部分。
【0231】
「モード」20および22、すなわち「依存スライスセグメント」および「独立スライスセグメント」のシグナリングは、以下のようになり得る:
【0232】
例えばPPSなどのいくつかの追加のNALユニットにおいて、構文要素は、依存スライスの使用が特定の画像のためのシーケンスの特定の画像のために形成されるかどうかについてシグナリングするために用いられ得る:
【0233】
1に等しいdependent_slice_segments_enabled_flagは、スライスセグメントヘッダにおいて構文要素dependent_slice_segment_flagの存在を明示する。0に等しいdependent_slice_segments_enabled_flagは、スライスセグメントヘッダにおいて構文要素dependent_slice_segment_flagの不存在を明示する。
【0234】
dependent_slice_segments_enabled_flagは、前に記載されたdependent_slices_present_flagの範囲と同様である。
【0235】
同様に、dependent_slice_flagは、スライスに関して異なる命名法を占めるために、dependent_slice_segment_flagと呼ばれ得る。
【0236】
1に等しいdependent_slice_segment_flagは、現在のスライスセグメントのヘッダに存在しないそれぞれのスライスセグメントヘッダ構文要素の値がスライスヘッダ、すなわち前の独立スライスセグメントのスライスセグメントヘッダにおいて対応するスライスセグメントヘッダ構文要素の値に等しいと推測されることを明示する。
【0237】
例えば画像レベルなどの同じレベルにおいて、以下の構文要素が含まれ得る:
【0238】
1に等しいentropy_coding_sync_enabled_flagは、コンテキスト変数のための特定の同期化プロセスがPPSを参照するそれぞれの画像においてそれぞれのタイルにおける符号化ツリーブロックの行の第1の符号化ツリーブロックを含む符号化ツリーユニットを復号化する前に呼び出されることを明示し、さらに、コンテキスト変数のための特定の記憶プロセスがPPSを参照するそれぞれの画像においてそれぞれのタイルにおける符号化ツリーブロックの行の第2の符号化ツリーブロックを含む符号化ツリーユニットを復号化した後に呼び出される。0に等しいentropy_coding_sync_enabled_flagは、コンテキスト変数のための特定の同期化プロセスがPPSを参照するそれぞれの画像においてそれぞれのタイルにおける符号化ツリーブロックの行の第1の符号化ツリーブロックを含む符号化ツリーユニットを復号化する前に呼び出されることが必要とされないことを明示し、さらに、コンテキスト変数のための特定の記憶プロセスがPPSを参照するそれぞれの画像においてそれぞれのタイルにおける符号化ツリーブロックの行の第2の符号化ツリーブロックを含む符号化ツリーユニットを復号化した後に呼び出されることは必要とされない。
entropy_coding_sync_enabled_flagの値がCVS内で起動されるすべてのPPSのためのものであることは、ビットストリーム適合性の要件である。
entropy_coding_sync_enabled_flagが1に等しく、さらに、スライスにおいて第1の符号化ツリーブロックがタイルにおいて符号化ツリーブロックの行の第1の符号化ツリーブロックでないときに、スライスにおいて最後の符号化ツリーブロックがスライスにおいて第1の符号化ツリーブロックと同じ符号化ツリーブロックの行に属することは、ビットストリーム適合性の要件である。
entropy_coding_sync_enabled_flagが1に等しく、さらに、スライスセグメントにおいて第1の符号化ツリーブロックがタイルにおいて符号化ツリーブロックの行の第1の符号化ツリーブロックでないときに、スライスセグメントにおいて最後の符号化ツリーブロックがスライスセグメントにおいて第1の符号化ツリーブロックと同じ符号化ツリーブロックの行に属することは、ビットストリーム適合性の要件である。
【0239】
すでに述べたように、CTB30中の符号化/復号化順序は、1つよりも多いタイルが画像に存在する場合、ラスタ方法において第1のタイルをスキャンしそれから次のタイルを訪問して上から下まで行ごとの開始をもたらす。
【0240】
デコーダ5およびエンコーダはしたがって、画像のスライスセグメント14のエントロピー復号化(符号化)において以下のように働く:
【0241】
A1)現在復号化/符号化された構文要素synElがタイル50、スライスセグメント14またはCTBの行の第1の構文要素であるときはいつでも、図29の初期化プロセスが開始される。
A2)そうでなければ、この構文要素の復号化は、現在のエントロピーコンテキストを用いて起こる。
A3)現在の構文要素がCTB30において最後の構文要素であった場合、それから、図30に示すようなエントロピーコンテキスト記憶プロセスが開始される。
A4)そのプロセスは、A1)で次の構文要素を進める。
【0242】
初期化プロセスにおいて、synEIがスライスセグメント14またはタイル50の第1の構文要素であるどうかについてチェック200される。イエス(yes)の場合、コンテキストは、ステップ202においていかなる前のスライスセグメントから独立して初期化される。ノー(no)の場合、synEIがCTB30の行の第1の構文要素でありさらにentropy_coding_sync_enabled_flagが1に等しいかどうかについてチェック204される。イエス(yes)の場合、等しいタイルのCTB30の前のラインにおいて、第2のCTB30が利用可能であるかどうかについてチェック206される(図23を参照)。イエス(yes)の場合、40に従うコンテキスト採用は、タイプ40の採用のための現在格納されたコンテキスト確率を用いてステップ210において実行される。そうでない場合、コンテキストは、ステップ202においていかなる前のスライスセグメントから独立して初期化される。チェック204がノー(no)を明らかにする場合、synElが依存スライスセグメント14の第1のCTBにおいて第1の構文要素であるかどうかについて、さらに、dependent_slice_segement_flagが1に等しいかどうかについてステップ212においてチェックされ、さらに、イエス(yes)の場合、38に従うコンテキスト採用は、タイプ38の採用のための現在格納されたコンテキスト確率を用いてステップ214において実行される。ステップ214、212、210および202のいずれかの後に、復号化/符号化が実際に開始される。
【0243】
1に等しいdependent_slice_segement_flagを有する依存スライスセグメントは、ほとんど符号化効率ペナルティを有しない符号化/復号化遅延をさらに低減するのに役立つ。
【0244】
図30の記憶プロセスにおいて、符号化/復号化されたsynElがCTB30の行の第2のCTB30の最後の構文要素であるかどうかについておよびentropy_coding_sync_enabled_flagが1に等しいかどうかについてステップ300においてチェックされる。イエス(yes)の場合、現在のエントロピーコンテキストは、ステップ302において格納され、すなわち、コンテキストのエントロピー符号化確率が40タイプの採用のために特定されるストレージに格納される。同様に、符号化/復号化されたsynElがスライスセグメント14の最後の構文要素であるどうかについておよびdependent_slice_segement_flagが1に等しいかどうかについて、ステップ300または302に加えて、ステップ304においてチュックされる。イエス(yes)の場合、現在のエントロピーコンテキストは、ステップ306において格納され、すなわち、コンテキストのエントロピー符号化確率が38タイプの採用のために特定されるストレージに格納される。
【0245】
構文要素がCTB行の第1のsynElであるかどうかについて質問するいかなるチェックも、例えばスライスセグメントのヘッダ内の構文要素slice_adress400、すなわち、復号化順序に沿ってそれぞれのスライスセグメントの開始の位置を明らかにする開始構文要素を利用することに注意されたい。
【0246】
WPP処理を用いてデータストリーム12から画像10を再構成する際に、デコーダは、WPPサブストリームエントリポイントを検索するために後の開始構文部分400を正確に利用することができる。それぞれのスライスセグメントが画像10内でそれぞれのスライスセグメントの復号化開始の位置を示す開始構文部分400を含むので、デコーダは、スライスセグメントの開始構文部分400を用いて、画像の左側で開始するスライスセグメントを識別することによって、スライスセグメントがグループ化されるWPPサブストリームのエントリポイントを識別することができる。それから、デコーダは、スライス順序に従ってWPPサブストリームの復号化を連続的に開始してWPPサブストリームを互い違いに並列に復号化することができる。スライスセグメントは、それらの伝送が全体の伝送エンドツーエンド遅延をさらに低減するためにWPPサブストリーム中でインターリーブされ得るように、1つの画像幅、すなわちCTBの1つの行よりも小さくてもよい。エンコーダは、画像(10)内でそれぞれのスライスの符号化開始の位置を示す開始構文部分(400)を有するそれぞれのスライス(14)を提供し、さらに、WPPサブストリームごとに、スライス順序において第1のスライスが画像の左側で開始するように、スライスをWPPサブストリームにグループ化する。エンコーダは、単独で、画像を符号化する際にWPP処理を用いることができる:エンコーダは、スライス順序に従ってWPPサブストリームの符号化を連続的に開始してWPPサブストリームを互い違いに並列に符号化する。
【0247】
ところで、WPPサブストリームのエントリポイントの位置を決めるための手段としてスライスセグメントの開始構文部分を用いる後の態様が、依存スライス概念なしに用いられ得る。
【0248】
それは、以下のように上述の変数を設定することによって、並列処理画像10のためのすべてに実現可能である:
【0249】
【0250】
WPPをタイルパーティション分割と混合することは、実現可能である。その場合、1つは、タイルを個々の画像とみなすことができる:WPPを用いるそれぞれは、1つ以上の依存スライスセグメントを有するスライスからなり、かつ、ステップ300および208におけるチェックは、ステップ204およびA1が現在のタイルのCTB30行において第1のCTB30を参照すると同じように、同じタイルにおいて上述のCTB行において第2のCTBを参照する。その場合、上述のテーブルは、拡張され得る:
【0251】
【0252】
簡潔な注意として、後の拡張は、実施形態2で可能にされている。実施形態2は、以下の処理を可能にする:
【0253】
【0254】
しかし、以下の拡張について、以下のテーブルが生じる:
【0255】
画像パラメータセットのセマンティックスに加える:
tiles_or_entropy_coding_sync_idcが4に等しい場合、それぞれの、しかし、CTBの第1の行は、1にセットされる依存スライスフラグを有する異なるスライスに含まれる。異なる行のCTBは、同じスライスに存在してはならない。CTB行ごとに1つよりも多いスライスが存在してもよい。
【0256】
tiles_or_entropy_coding_sync_idcが5に等しい場合、それぞれのCTB、しかし、第1のタイルは、異なるスライスに含まれなければならない。異なるタイルのCTBは、同じスライスに存在してはならない。タイルごとに存在する1つよりも多いスライスが存在してもよい。
【0257】
さらなる説明のために、図31を参照されたい。
【0258】
すなわち、上述のテーブルは、拡張され得る:
【0259】
【0260】
上述の実施形態に関して、デコーダが、例えば、第1および第2のモードにおいて、tiles_or_entropy_coding_sync_idc=1、2に応答して、並列サブセクションへの現在のスライスの再分割を明らかにする現在のスライスから情報を読み取るように構成され得るべきであることに注意すべきであり、並列サブセクションは、第1の並列サブセクションの最後にコンテキスト適応エントロピー復号化を中止し、さらに、第1のモードにおいて、前の並列サブセクションのシンボル確率の保存された状態に応じたシンボル確率の初期化と、第2のモードにおいて、いかなる先に復号化されたスライスおよびいかなる先に復号化された並列サブセクションから独立したシンボル確率の初期化とを含むいかなる後の並列サブセクションの開始時に新たにコンテキスト適応エントロピー復号化を再開する、WPPサブストリームまたはタイルであり得る。
【0261】
このように、上述の説明は、例えばタイル、波面並列処理(WPP)サブストリーム、スライスまたはエントロピースライスにおいて構成されるように、新しいHEVC符号化規格によって提供されるように構成されたビデオデータの低遅延符号化、復号化、カプセル化および伝送のための方法を明らかにしている。
【0262】
特に、どのように符号化、復号化および伝送プロセスにおいて最小待ち時間を得るために会話のシナリオにおいて並列符号化されたデータを転送するかについて定義されている。したがって、ゲーム、遠隔手術などのような最小の遅延アプリケーションを可能にするために、パイプライン並列符号化、伝送および復号化アプローチが記載されている。
【0263】
さらに、上述の実施形態は、それを低遅延伝送シナリオにおいて用いることができるようにするために、波面並列処理(WPP)のギャップを埋めている。したがって、WPPサブストリーム0のための新しいカプセル化フォーマットは、依存スライスが示されている。この依存スライスは、エントロピースライスデータ、WPPサブストリーム、LCUの完全な行、ちょうどスライスのフラグメントを含むことができ、従来の送信されたスライスヘッダも、含まれたフラグメントデータに適用される。含まれたデータは、サブスライスヘッダにおいてシグナリングされる。
【0264】
新しいスライスのためのネーミングが「サブセット/軽量スライス」でもあり得るが、名前「依存スライス」がより良好であることが見出されていることに最後に注意されたい。
【0265】
符号化および転送において並列化のレベルを記載するシグナリングが示されている。
【0266】
いくつかの態様が装置との関連で記載されているにもかかわらず、これらの態様は、対応する方法の説明も表すことも明らかであり、ブロックまたは装置は、方法ステップまたは方法ステップの特徴に対応する。同様に、方法ステップとの関連で記載されている態様は、対応するブロック若しくはアイテムまたは対応する装置の特徴の説明も表す。方法ステップのいくらかまたはすべては、例えば、マイクロプロセッサ、プログラム可能なコンピュータまたは電子回路のようなハードウェア装置によって(またはそれを用いて)実行されてもよい。いくつかの実施形態において、最も重要な方法ステップのいずれかの1つ以上は、そのような装置によって実行されてもよい。
【0267】
特定の実施要件に応じて、本願発明の実施形態は、ハードウェアにおいてまたはソフトウェアにおいて実施することができる。実施は、それぞれの方法が実行されるように、プログラム可能なコンピュータシステムと協働する(または協働することができる)電子的に可読の制御信号が格納される、デジタル記憶媒体、例えばフロッピー(登録商標)ディスク、DVD、ブルーレイ(登録商標)、CD、ROM、PROM、EPROM、EEPROMまたはFLASHメモリを用いて実行することができる。したがって、デジタル記憶媒体は、コンピュータ可読であってもよい。
【0268】
本願発明によるいくつかの実施形態は、ここに記載される方法のうちの1つが実行されるように、プログラム可能なコンピュータシステムと協働することができる電子的に可読の制御信号を有するデータキャリアを含む。
【0269】
一般に、本願発明の実施形態は、プログラムコードを有するコンピュータプログラム製品として実装することができ、そのプログラムコードは、コンピュータプログラム製品がコンピュータ上で実行されるときに、それらの方法のうちの1つを実行するために働く。プログラムコードは、例えば、機械可読のキャリアに格納されてもよい。
【0270】
他の実施形態は、機械可読のキャリアに格納される、ここに記載される方法のうちの1つを実行するためのコンピュータプログラムを含む。
【0271】
したがって、換言すれば、本願発明の方法の実施形態は、コンピュータプログラムがコンピュータ上で実行されるときに、ここに記載される方法のうちの1つを実行するためのプログラムコードを有するコンピュータプログラムである。
【0272】
したがって、本願発明の方法のさらなる実施形態は、それに記録される、ここに記載される方法のうちの1つを実行するためのコンピュータプログラムを含むデータキャリア(またはデジタル記憶媒体またはコンピュータ可読媒体)である。データキャリア、デジタル記憶媒体または記録媒体は、典型的に有形でありおよび/または非一時的である。
【0273】
したがって、本願発明の方法のさらなる実施形態は、ここに記載される方法のうちの1つを実行するためのコンピュータプログラムを表すデータストリームまたは一連の信号である。データストリームまたは一連の信号は、データ通信接続、例えばインターネットを介して、転送されるように構成されてもよい。
【0274】
さらなる実施形態は、ここに記載される方法のうちの1つを実行するように構成されまたは適合している処理手段、例えばコンピュータまたはプログラム可能な論理デバイスを含む。
【0275】
さらなる実施形態は、ここに記載される方法のうちの1つを実行するためのコンピュータプログラムがインストールされているコンピュータを含む。
【0276】
本願発明によるさらなる実施形態は、ここに記載される方法のうちの1つを実行するためのコンピュータプログラムをレシーバに(例えば、電子的にまたは光学的に)転送するように構成される装置またはシステムを含む。レシーバは、例えば、コンピュータ、モバイルデバイス、メモリデバイスなどであってもよい。装置またはシステムは、例えば、コンピュータプログラムをレシーバに転送するためのファイルサーバを含んでもよい。
【0277】
いくつかの実施形態において、プログラム可能な論理デバイス(例えばフィールドプログラマブルゲートアレイ)は、ここに記載される方法の機能のいくらかまたはすべてを実行するために使用されてもよい。いくつかの実施形態において、フィールドプログラマブルゲートアレイは、ここに記載される方法のうちの1つを実行するために、マイクロプロセッサと協働してもよい。一般に、その方法は、好ましくは、いかなるハードウェア装置によっても実行される。
【0278】
上述の実施形態は、本願発明の原理のために単に例示するだけである。ここに記載される構成および詳細の修正および変更が他の当業者にとって明らかであるものと理解される。したがって、本願発明は、差し迫った特許請求の範囲によってだけ制限され、ここに実施形態の記述および説明として示される具体的な詳細によって制限されないと意図される。
【0279】
文献
[1] Thomas Wiegand, Gary J. Sullivan, Gisle Bjontegaard, Ajay Luthra, "Overview of the H.264/AVC Video Coding Standard", IEEE Trans. Circuits Syst. Video Technol., vol. 13, N7, July 2003.
[2] JCT-VC, "High-Efficiency Video Coding (HEVC) text specification Working Draft 6", JCTVC-H1003, February 2012.
[3] ISO/IEC 13818-1: MPEG-2 Systems specification.
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11a
図11b
図11c
図12a
図12b
図13a
図13b
図13c
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
図27
図28
図29
図30
図31