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

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

▶ ベイジン バイトダンス ネットワーク テクノロジー カンパニー リミテッドの特許一覧 ▶ バイトダンス インコーポレイテッドの特許一覧

特許7239732双方向オプティカルフローに基づく映像符号化及び復号化
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-03-06
(45)【発行日】2023-03-14
(54)【発明の名称】双方向オプティカルフローに基づく映像符号化及び復号化
(51)【国際特許分類】
   H04N 19/537 20140101AFI20230307BHJP
【FI】
H04N19/537
【請求項の数】 16
(21)【出願番号】P 2021557133
(86)(22)【出願日】2020-04-02
(65)【公表番号】
(43)【公表日】2022-06-08
(86)【国際出願番号】 CN2020082941
(87)【国際公開番号】W WO2020200270
(87)【国際公開日】2020-10-08
【審査請求日】2021-09-24
(31)【優先権主張番号】PCT/CN2019/080914
(32)【優先日】2019-04-02
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】520476341
【氏名又は名称】北京字節跳動網絡技術有限公司
【氏名又は名称原語表記】Beijing Bytedance Network Technology Co., Ltd.
【住所又は居所原語表記】Room B-0035, 2/F, No.3 Building, No.30, Shixing Road, Shijingshan District Beijing 100041 China
(73)【特許権者】
【識別番号】520477474
【氏名又は名称】バイトダンス インコーポレイテッド
【氏名又は名称原語表記】BYTEDANCE INC.
【住所又は居所原語表記】12655 West Jefferson Boulevard, Sixth Floor, Suite No. 137 Los Angeles, California 90066 United States of America
(74)【代理人】
【識別番号】110002000
【氏名又は名称】弁理士法人栄光事務所
(72)【発明者】
【氏名】リウ ホンビン
(72)【発明者】
【氏名】ジャン リー
(72)【発明者】
【氏名】ジャン カイ
(72)【発明者】
【氏名】シュー ジジョン
(72)【発明者】
【氏名】ワン ユエ
【審査官】岩井 健二
(56)【参考文献】
【文献】国際公開第2018/169989(WO,A1)
【文献】Xiaoyu Xiu, Yuwen He, and Yan Ye,CE9-related: Complexity reduction and bit-width control for bi-directional optical flow (BIO),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-L0256_v2,12th Meeting: Macao, CN,2018年09月,pp.1-15
【文献】Benjamin Bross, Jianle Chen, and Shan Liu,Versatile Video Coding (Draft 4),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-M1001 (version 7),13th Meeting: Marrakech, MA,2019年03月,pp.197-199
【文献】Jiancong (Daniel) Luo and Yuwen He,CE2-related: Prediction refinement with optical flow for affine mode,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-N0236-r5,14th Meeting: Geneva, CH,2019年03月,pp.1-7
【文献】Xiaoyu Xiu, et al.,CE9-related: Improvements on bi-directional optical flow (BDOF),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-N0325,14th Meeting: Geneva, CH,2019年03月,pp.1-7
【文献】Jingya Li, and Chong Soon Lim ,CE4-related: Alignment of BDOF refinement process with PROF ,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-O0123-v3,15th Meeting: Gothenburg, SE,2019年06月,pp.1-3
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
映像の第1のブロックに対して、第1の予測サンプルを判定することと、
第1の最終予測サンプルを取得するために、第1のオプティカルフロー微調整手順に基づいて、第1の予測サンプルオフセットを前記第1の予測サンプルに加えることによって、前記第1の予測サンプルを前記第1の予測サンプルオフセットで微調整することであって、前記第1のオプティカルフロー微調整手順はオプティカルフローによる予測微調整(PROF(prediction refinement with optical flow))処理であり、前記第1の予測サンプルオフセットは、前記第1の予測サンプルの少なくとも1つの第1の勾配に基づいて判定され、前記第1の勾配は、前記第1の予測サンプルの位置に基づいて取得した2つの予測サンプルの間の差に少なくとも基づいて計算され、前記第1の最終予測サンプルを取得するために前記第1の予測サンプルに加えられる前に、前記第1の予測サンプルオフセットは、第1の範囲にクリップされる、微調整することと、
前記第1の最終予測サンプルに基づいて、前記第1のブロックと前記映像のビットストリームとの間での変換を行うことと、を含む、
映像データ処理方法。
【請求項2】
映像の前記第1のブロックは、アフィンモードでコーディングされる、
請求項1に記載の方法。
【請求項3】
前記第1の範囲は、前記第1のブロックの入力ビット深度に基づいて判定される、
請求項1又は2に記載の方法。
【請求項4】
前記第1の範囲は、[min,max]であり、minが0より小さく、maxが0より大きい、
請求項1又は2に記載の方法。
【請求項5】
前記第1の範囲は予め規定される、
請求項1又は2に記載の方法。
【請求項6】
前記映像の第2のブロックに対して、第2の予測サンプルを判定することと、
第2の最終予測サンプルを取得するために、第2のオプティカルフロー微調整手順に基づいて、前記第2の予測サンプルを第2の予測サンプルオフセットで微調整することであって、前記第2の予測サンプルオフセットは、前記第2の予測サンプルの少なくとも1つの第2の勾配に基づいて判定され、前記第2の勾配は、前記第2の予測サンプルの位置に基づいて取得した2つの予測サンプルの間の差に少なくとも基づいて計算される、微調整することと、
前記第2の最終予測サンプルを第2の範囲にクリッピングすることと、
前記第2の最終予測サンプルに基づいて、前記第2のブロックと前記映像のビットストリームとの間での変換を行うことと、をさらに含む、
請求項1~5のいずれか1項に記載の方法。
【請求項7】
前記第2のブロックは、非アフィンモードでコーディングされ、双予測される、
請求項6に記載の方法。
【請求項8】
前記第2の範囲は、前記第2のブロックの入力ビット深度に基づいて判定される、請求項6に記載の方法。
【請求項9】
前記第2の範囲は、[min,max]であり、minが0より小さく、maxが0よりも大きい、
請求項6に記載の方法。
【請求項10】
前記第2の範囲は、予め規定されている、
請求項6に記載の方法。
【請求項11】
前記第1の予測サンプルの前記位置に基づいて取得された前記2つの予測サンプルは、同じ参照ピクチャリストから導出され、前記第2の予測サンプルの前記位置に基づいて取得された前記2つの予測サンプルは、異なる参照ピクチャリストから導出される、
請求項6に記載の方法。
【請求項12】
前記変換を行うことは、前記第1のブロックを前記ビットストリームから復号化することを含む、
請求項1~11のいずれか1項に記載の方法。
【請求項13】
前記変換を行うことは、前記第1のブロックを前記ビットストリームに符号化することを含む、
請求項1~11のいずれか1項に記載の方法。
【請求項14】
処理装置と、命令を内部に含む非一時的メモリを備える映像データを処理するための装置であって、前記処理装置で実行されると、前記命令は、前記処理装置に、
映像の第1のブロックに対して、第1の予測サンプルを判定することと、
第1の最終予測サンプルを得るために、第1のオプティカルフロー微調整手順に基づいて、第1の予測サンプルオフセットを前記第1の予測サンプルに加えることによって、前記第1の予測サンプルを前記第1の予測サンプルオフセットで微調整することであって、前記第1のオプティカルフロー微調整手順はオプティカルフローによる予測微調整(PROF(prediction refinement with optical flow))処理であり、前記第1の予測サンプルオフセットは、前記第1の予測サンプルの少なくとも1つの第1の勾配に基づいて判定され、前記第1の勾配は、前記第1の予測サンプルの位置に基づいて得られた2つの予測サンプルの間の差に少なくとも基づいて計算され、前記第1の最終予測サンプルを取得するために前記第1の予測サンプルに加えられる前に、前記第1の予測サンプルオフセットは、第1の範囲にクリップされる、微調整することと、
前記第1の最終予測サンプルに基づいて、前記第1のブロックと前記映像のビットストリームとの間での変換を行うことと、を行わせる、
装置。
【請求項15】
命令を記憶する非一時的コンピュータ可読記憶媒体であって、前記命令は、処理装置に、
映像の第1のブロックに対して、第1の予測サンプルを判定することと、
第1の最終予測サンプルを得るために、第1のオプティカルフロー微調整手順に基づいて、第1の予測サンプルオフセットを前記第1の予測サンプルに加えることによって、前記第1の予測サンプルを前記第1の予測サンプルオフセットで微調整することであって、前記第1のオプティカルフロー微調整手順はオプティカルフローによる予測微調整(PROF(prediction refinement with optical flow))処理であり、前記第1の予測サンプルオフセットは前記第1の予測サンプルの少なくとも1つの第1の勾配に基づいて判定され、前記第1の勾配は、前記第1の予測サンプルの位置に基づいて得られた2つの予測サンプルの間の差に少なくとも基づいて計算され、前記第1の最終予測サンプルを取得するために前記第1の予測サンプルに加えられる前に、前記第1の予測サンプルオフセットは、第1の範囲にクリップされる、微調整することと、
前記第1の最終予測サンプルに基づいて、前記第1のブロックと前記映像のビットストリームとの間での変換を行うことと、を行わせる、
非一時的コンピュータ可読記憶媒体。
【請求項16】
映像のビットストリームを記憶する方法であって
映像の第1のブロックに対して、第1の予測サンプルを判定することと、
第1の最終予測サンプルを得るために、第1のオプティカルフロー微調整手順に基づいて、第1の予測サンプルオフセットを前記第1の予測サンプルに加えることによって、前記第1の予測サンプルを前記第1の予測サンプルオフセットで微調整することであって、前記第1のオプティカルフロー微調整手順はオプティカルフローによる予測微調整(PROF(prediction refinement with optical flow))処理であり、前記第1の予測サンプルオフセットは、前記第1の予測サンプルの少なくとも1つの第1の勾配に基づいて判定され、前記第1の勾配は、前記第1の予測サンプルの位置に基づいて得られた2つの予測サンプルの間の差に少なくとも基づいて計算され、前記第1の最終予測サンプルを取得するために前記第1の予測サンプルに加えられる前に、前記第1の予測サンプルオフセットは、第1の範囲にクリップされる、微調整することと、
前記第1の最終予測サンプルに基づいて前記ビットストリームを生成することと、
前記ビットストリームを非一時的コンピュータ可読記録媒体に記憶することと、を含む、
方法
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本願は、2019年4月2日出願の国際特許出願第PCT/CN2019/080914号の優先権と利益を主張する、2020年4月2日出願の国際特許出願第PCT/CN2020/082941号の国内段階である。上記出願の開示全体は、本明細書の開示の一部として参照により援用される。
【0002】
この特許文献は、映像符号化技術、デバイスおよびシステムに関する。
【背景技術】
【0003】
映像圧縮の進歩にもかかわらず、デジタル映像は、依然として、インターネット及び他のデジタル通信ネットワークにおいて最大の帯域幅の使用量を占めている。映像を受信及び表示することが可能である接続されたユーザ機器の数が増加するにつれ、デジタル映像の使用に対する帯域幅需要は増大し続けることが予測される。
【発明の概要】
【0004】
デジタル映像符号化、具体的には、映像符号化のためのサンプル微調整およびフィルタリング法に関するデバイス、システム、及び方法について記載する。記載した方法は、既存の映像符号化規格(例えば、高効率映像符号化(High Efficiency Video Coding、HEVC))及び将来の映像符号化規格(例えば、汎用映像符号化(Versatile Video Coding、VVC))又はコーデックの両方に適用してもよい。
【0005】
1つの代表的な態様において、開示される技術は、映像処理の方法を提供するために使用してもよい。この方法は、映像の現在のブロックとこの映像のビットストリーム表現の間での変換のために、現在のブロックにおける画素とこの画素に近傍の画素との間の差の重み付け平均にクリッピング演算を適用することを含む。この方法は、クリッピング演算の出力に基づいてこの変換を行うことも含む。
【0006】
別の代表的な態様では、開示される技術は、映像処理の方法を提供するために使用してもよい。この方法は、映像の現在のブロックとこの映像のビットストリーム表現の間での変換のために、この現在のブロックの近傍の画素のセットに基づいてフィルタリング処理を構成することを含む。この方法は、フィルタリング処理に基づいてこの変換を行い、このフィルタリング処理の出力を行うことも含む。
【0007】
別の代表的な態様では、開示される技術は、映像処理の方法を提供するために使用してもよい。この方法は、映像の1つのブロックとこの映像の1つのビットストリーム表現との間での変換のために、このブロックにおける1つの予測サンプルのための1つの微調整値を、クリッピング演算を微調整値に適用することによって修正することを含む。オプティカルフロー符号化処理の勾配値に基づいて、微調整値を導出する。クリッピング演算の出力が範囲内にある。この方法は、また、修正された微調整値に基づいて予測サンプルを微調整し、この微調整された予測サンプルに基づいて変換を行うことを含む。
【0008】
別の代表的な態様では、開示される技術は、映像処理の方法を提供するために使用してもよい。この方法は、オプティカルフロー符号化処理において、映像のブロックと映像のビットストリーム表現との間での変換のために、勾配値を修正することを含む。この方法は、また、この変換のために、この修正された勾配値に基づいてサブシーケンス予測演算を行うことを含む。
【0009】
別の代表的な態様では、開示される技術は、映像処理の方法を提供するために使用してもよい。この方法は、現在の映像ブロックに対して1次元フィルタリング処理を構成することと、1次元フィルタリング処理に基づいて、対応するビットストリーム表現から現在の映像ブロックを再構成することとを含む。
【0010】
さらに別の代表的な態様において、上記方法は、処理装置が実行可能なコードの形式で実施され、コンピュータ可読プログラム媒体に記憶される。
【0011】
さらに別の代表的な態様において、上述した方法を行うように構成された、または動作可能なデバイスが開示される。この装置は、この方法を実装するようにプログラムされた処理装置を含んでもよい。
【0012】
さらに別の代表的な態様において、映像デコーダ装置は、本明細書で説明されるような方法を実装してもよい。
【0013】
開示される技術の上記および他の態様および特徴は、図面、説明および特許請求の範囲でより詳細に説明される。
【図面の簡単な説明】
【0014】
図1】映像符号化のためのエンコーダブロック図の例を示す。
図2A】形状変換に基づく適応ループフィルタ(GALF)フィルタ形状の例を示す。
図2B】形状変換に基づく適応ループフィルタ(GALF)フィルタ形状の例を示す。
図2C】形状変換に基づく適応ループフィルタ(GALF)フィルタ形状の例を示す。
図3】GALFエンコーダ決定のためのフローグラフの例を示す。
図4A】適応ループフィルタ(ALF)分類のための例示的なサブサンプリングされたラプラシアン計算を示す。
図4B】適応ループフィルタ(ALF)分類のための例示的なサブサンプリングされたラプラシアン計算を示す。
図4C】適応ループフィルタ(ALF)分類のための例示的なサブサンプリングされたラプラシアン計算を示す。
図4D】適応ループフィルタ(ALF)分類のための例示的なサブサンプリングされたラプラシアン計算を示す。
図5】輝度フィルタの形状の例を示す。
図6】ワイド映像グラフィックアレイ(WVGA)シーケンスの領域分割を例示している。
図7】再整形を伴う復号化のフローの例示的なフロー図を示す。
図8】双方向オプティカルフロー(BDOFもしくはBIO)アルゴリズムで使用されるオプティカルフローの軌跡の例を示す。
図9A】ブロック拡張なしの双方向オプティカルフロー(BIO)アルゴリズムを使用した例示的なスナップショットを示す。
図9B】ブロック拡張なしの双方向オプティカルフロー(BIO)アルゴリズムを使用した例示的なスナップショットを示す。
図10】オプティカルフロー(PROF)を用いた予測微調整の例を示す。
図11A】本開示の技術に従った、映像符号化におけるサンプル微調整及びフィルタリングのための例示的な方法のフロー図を示す。
図11B】本開示の技術に従った、映像符号化におけるサンプル微調整及びフィルタリングのための例示的な方法のフロー図を示す。
図12】本特許明細書に記載されるビジュアルメディアの復号化又はビジュアルメディアの符号化技術を実現するためのハードウェアプラットフォームの一例を示すブロック図である。
図13】開示された技術を実装することができる例示的な映像処理システムを示すブロック図である。
図14】本技術にしたがった映像処理方法を示すフローチャートである。
図15】本技術にしたがった別の映像処理方法を示すフローチャートである。
図16】本技術にしたがった別の映像処理方法を示すフローチャートである。
図17】本技術にしたがったさらに別の映像処理方法を示すフローチャートである。
【発明を実施するための形態】
【0015】
より高い解像度の映像の需要が増大しているため、近代技術において、映像符号化法および技術は、遍在している。ビデオコーデックは、一般的に、デジタル映像を圧縮又は展開する電子回路又はソフトウェアを含み、より高い符号化効率を提供するように絶えず改良されている。ビデオコーデックは、非圧縮映像を圧縮フォーマットに変換する、又はその逆である。映像の品質、映像を表現するために使用されるデータの数(ビットレートで決まる)、エンコーディングおよびデコーディングアルゴリズムの複雑性、データの損失およびエラーに対する敏感さ、編集のしやすさ、ランダムアクセス、およびエンドツーエンドの遅延(待ち時間)の間には複雑な関係がある。この圧縮フォーマットは、通常、標準的な映像圧縮仕様、例えば、高効率映像符号化(HEVC)規格(H.265またはMPEG-H Part 2としても知られている)、完成させるべき汎用映像符号化(VVC)規格、または他の現在のおよび/または将来の映像符号化基準に準拠する。
【0016】
いくつかの実施形態において、将来の映像符号化技術は、共同探索モデル(JEM)として知られる参照ソフトウェアを使用して探索される。JEMでは、サブブロックベースの予測は、アフィン予測、代替時間的動きベクトル予測(ATMVP)、空間的-時間的動きベクトル予測(STMVP)、双方向オプティカルフロー(BIO)、フレームレートアップ変換(FRUC)、ローカル適応動きベクトル解像度(LAMVR)、オーバーラップブロック動き補償(OBMC)、ローカル照明補償(LIC)、デコーダ側動きベクトル改良(DMVR)などの、いくつかの符号化ツールで適用されている。
【0017】
開示される技術の実施形態は、ランタイム性能を向上させるために、既存の映像符号化規格(例えば、HEVC、H.265)および将来の規格に適用されてもよい。本明細書では、説明の可読性を向上させるために章の見出しを使用しており、説明又は実施形態(及び/又は実装形態)をそれぞれの章のみに限定するものではない。
【0018】
1 色空間及びクロマサブサンプリングの例
色空間は、カラーモデル(又はカラーシステム)としても知られ、色の範囲を数字のタプルとして一般的に、3又は4つの値又は色成分(例えばRGB)として、簡単に記述する抽象的な数学モデルである。基本的には、色空間は座標系とサブ空間とを精緻化したものである。
【0019】
映像圧縮の場合、最も頻繁に使用される色空間は、YCbCr及びRGBである。
【0020】
YCbCr、Y’CbCr、又はY Pb/Cb Pr/Crは、YCBCR又はY’CBCRとも呼ばれ、映像及びデジタル写真システムのカラー画像パイプラインの一部として使用される色空間のファミリーである。Y’は輝度成分であり、CB及びCRは青色差及び赤色差クロマ成分である。Y’(素数を有する)はYとは区別され、Yは輝度であり、ガンマ補正されたRGB原色に基づいて光強度が非線形に符号化されることを意味する。
【0021】
クロマサブサンプリングは、人間の視覚システムが、輝度よりも色差の方が知覚が低いことを利用して、輝度情報よりもクロマ情報の方が解像度が低くなるように実装して画像を符号化する方法である。
【0022】
1.1 4:4:4 カラーフォーマット
3つのY’CbCr成分の各々は、同じサンプルレートを有し、従って、クロマサブサンプリングは存在しない。このスキームは、ハイエンドのフィルムスキャナ及び映画のポストプロダクションに用いられることがある。
【0023】
1.2 4:2:2 カラーフォーマット
2つのクロマ成分は、輝度のサンプルレートの半分でサンプリングされ、例えば、水平クロマ解像度が半分にされる。これにより、視覚的にほとんど又は全く差がなく、非圧縮の映像信号の帯域幅を1/3に低減することができる。
【0024】
1.3 4:2:0 カラーフォーマット
4:2:0では、水平サンプリングは4:1:1に比べて2倍になるが、このスキームではCb及びCrチャネルを各1行おきのラインでのみサンプリングするので、垂直解像度は半分になる。従って、データレートは同じである。Cb及びCrはそれぞれ水平及び垂直方向の両方向に2倍にサブサンプリングされる。異なる水平及び垂直位置を有する4:2:0スキームの3つの変形がある。
【0025】
○ MPEG-2において、Cb及びCrは水平方向に共座している。Cb、Crは垂直方向の画素間に位置する(格子間に位置する)。
【0026】
○ JPEG/JFIFにおいて、H.261、及びMPEG-1、Cb、及びCrは、交互の輝度サンプルの中間に位置する。
【0027】
○ 4:2:0 DVにおいて、Cb及びCrは、水平方向に共座している。垂直方向において、それらは一行おきに共座している。
【0028】
2 典型的な映像コーデックの符号化フローの例
図1は、3つのインループフィルタリングブロック、すなわち非ブロック化フィルタ(DF)、サンプル適応オフセット(SAO)及び適応ループフィルタ(ALF)を含む、VVCのエンコーダブロック図の例を示す。予め規定されたフィルタを使用するDFとは異なり、SAO及びALFは、現在のピクチャの元のサンプルを利用し、オフセットを追加し、且つ有限インパルス応答(FIR)フィルタを適用することによって、オフセット及びフィルタ係数を信号通知する符号化側情報とともに、オリジナルサンプルと再構成サンプルとの間の平均二乗誤差をそれぞれ低減する。ALFは、各ピクチャの最後の処理段階に位置し、前の段階で生成されたアーチファクトを捕捉し、修正しようとするツールと見なすことができる。
【0029】
3 JEMにおける形状変換に基づく適応ループフィルタの例
JEMにおいて、ブロックに基づくフィルタ適応を用いた形状変換に基づく適応ループフィルタ(GALF)が適用される。輝度成分は、局所勾配の方向および働きに基づいて、2×2ブロックごとに25個のフィルタのうち1つを選択する。
【0030】
3.1 フィルタ形状の例
本願において、輝度成分として、最大3つのダイヤモンドフィルタ形状(図2Aに示すように、5×5ダイヤモンド、7×7ダイヤモンド、9×9ダイヤモンドのそれぞれについて図2B図2Cに示す)を選択することができる。輝度成分に使用されるフィルタ形状を示すために、ピクチャレベルでインデックスが信号通知される。1つのピクチャにおけるクロマ成分に対して、5×5ダイヤモンド形状が使用される。
【0031】
3.1.1 ブロック区分
各2×2ブロックを25個のクラスのうちの1つに分類する。分類インデックスCは、その方向性DおよびアクティビティA^の量子化値に基づいて、以下のように導出される。
【0032】
【数1】
【0033】
DおよびA^を計算するために、まず、1-Dラプラシアンを使用して、水平、垂直および2つの対角線方向の勾配を計算する。
【0034】
【数2】
【0035】
【数3】
【0036】
【数4】
【0037】
【数5】
【0038】
iおよびjは、2×2ブロックの左上のサンプルの座標を表し、R(i,j)は、座標(i,j)において再構成されたサンプルを示す。
そして、水平方向および垂直方向の勾配のD最大値およびD最小値を以下のように設定する。
【0039】
【数6】
【0040】
および2つの対角線方向の勾配の最大値および最小値は、以下のように設定される。
【0041】
【数7】
【0042】
指向性Dの値を導出するために、これらの値を互いに且つ2つの閾値tおよびtと比較する。
【0043】
ステップ1.
【0044】
【数8】
【0045】
の両方が真である場合、Dが0に設定される。
【0046】
ステップ2.
【0047】
【数9】
【0048】
の場合、ステップ3から続け、あるいは、ステップ4から続ける。
【0049】
ステップ3.
【0050】
【数10】
【0051】
である場合、Dは2に設定され、あるいは、Dは1に設定される。
【0052】
ステップ4.
【0053】
【数11】
【0054】
である場合、Dは4に設定され、あるいは、Dは3に設定される。
【0055】
アクティビティ値Aは、以下のように計算される。
【0056】
【数12】
【0057】
Aをさらに0~4の範囲に量子化し、量子化された値をA^とする。ピクチャにおける両クロマ成分に対して、分類方法は適用されず、即ち、単一のALF係数のセットが各クロマ成分に対して適用される。
【0058】
3.1.2 フィルタ係数の幾何学的変換
それぞれの2×2ブロックをフィルタリングする前に、そのブロックに対して計算された勾配値に基づいて、フィルタ係数f(k,l)に対して、ローテーション、又は対角線及び垂直方向の反転等の幾何学的変換を施す。これは、これらの変換をフィルタ支持領域内のサンプルに適用することに等しい。その考えは、ALFが適用される異なるブロックを、それらの方向性を揃えることによって、より類似させることである。
【0059】
対角線、垂直方向の反転および回転を含む3つの幾何学的変換を紹介する。
【0060】
【数13】
【0061】
ここで、Kはフィルタのサイズであり、0≦k,l≦K-1が係数座標であり、位置(0,0)は左上隅にあり、位置(K-1,K-1)は右下隅にある。この変換は、そのブロックに対して計算された勾配値に基づいて、フィルタ係数f(k,l)に適用される。変換と4方向の4つの勾配との関係を表1にまとめる。
【0062】
【表1】
【0063】
3.1.3 フィルタパラメータの信号通知
JEMにおいて、GALFフィルタパラメータは、第1のCTUのために、例えば、スライスヘッダの後且つ第1のCTUのSAOパラメータの前に信号通知される。最大25組の輝度フィルタ係数を信号通知することができる。ビットオーバーヘッドを低減するために、異なる分類のフィルタ係数をマージすることができる。また、参照ピクチャのGALF係数を記憶し、現在のピクチャのGALF係数として再利用することができる。現在のピクチャは、参照ピクチャのために記憶されたGALF係数を使用し、GALF係数信号通知を回避することを選択してもよい。この場合、1つの参照ピクチャへのインデックスのみが信号通知され、記憶されている示された参照ピクチャのGALF係数が現在のピクチャに継承される。
【0064】
GALF時間的予測をサポートするために、GALFフィルタセットの候補リストが保持される。新しいシーケンスを復号化する開始時は、候補リストは空である。1つのピクチャを復号化した後、対応するフィルタのセットを候補リストに加えてもよい。候補リストのサイズが最大許容値(例えば、現在のJEMでは6)に達すると、新しい1組のフィルタが、最も古いセットを復号化の順序に上書きし、すなわち、先入れ先出し(FIFO)規則を適用して候補リストを更新する。重複を回避するために、対応するピクチャがGALF時間的予測を使用しない場合、1つのセットのみをリストに追加することができる。時間的スケーラビリティをサポートするために、複数のフィルタセットの候補リストがあり、各候補リストは1つの時間層に関連付けられる。具体的には、時間層インデックス(TempIdx)が割り当てられた各アレイは、TempIdxが小さい、前回復号化されたピクチャのフィルタセットを構成してもよい。例えば、k番目の配列は、kに等しいTempIdxに関連付けられるように割り当てられ、それは、TempIdxがk以下のピクチャからのフィルタセットのみを含む。特定のピクチャを符号化した後、このピクチャに関連付けられたフィルタセットを用いて、等しい又はより高いTempIdxに関連付けられた配列を更新する。
【0065】
GALF係数の時間的予測は、信号通知オーバーヘッドを最小限に抑えるために、インター符号化されたフレームに使用される。イントラフレームの場合、時間的予測は利用できず、各クラスに1組の16個の固定フィルタが割り当てられる。固定フィルタの使用を示すために、各クラスのためのフラグが信号通知され、必要に応じて、選択された固定フィルタのインデックスが信号通知される。特定のクラスに対して固定フィルタを選択した場合でも、このクラスに対して適応フィルタf(k,l)の係数を送信することができ、この場合、再構成画像に適用されるフィルタの係数は両方の係数セットの合計となる。
【0066】
輝度成分のフィルタリング処理は、CUレベルで制御することができる。GALFがCUの輝度成分に適用されるかどうかを示すために、1つのフラグが信号通知される。クロマ成分の場合、GALFが適用されるかどうかは、ピクチャレベルでのみ示す。
【0067】
3.1.4 フィルタリング処理
デコーダ側において、1つのブロックに対してGALFが有効化されると、このブロック内のそれぞれのサンプルR(i,j)がフィルタリングされ、その結果、以下に示すように、サンプル値R’(i,j)が得られる。ここで、Lは、フィルタ長を表し、f(m,n)は、フィルタ係数を表し、f(k,l)は、復号化されたフィルタ係数を表す。
【0068】
【数14】
【0069】
3.1.5 エンコーダ側フィルタパラメータの判定処理
図3には、GALFのための全体的なエンコーダ決定処理が示されている。各CUの輝度サンプルに対して、エンコーダは、GALFが適用され、かつ適切な信号通知フラグがスライスヘッダに含まれているか否かを決定する。クロマサンプルの場合、フィルタを適用する決定は、CUレベルではなくピクチャレベルに基づいて行われる。さらに、ピクチャのためのクロマGALFは、このピクチャのために輝度GALFが有効化されている場合にのみチェックされる。
【0070】
4 VVCにおける形状変換に基づく適応ループフィルタの例
現在のVVCにおけるGALFの設計は、JEMにおける設計に比べ、以下のような大きな変化を有している。
【0071】
(1) 適応フィルタ形状を除去する。輝度成分に対しては7×7フィルタ形状のみが許可され、クロマ成分に対しては5×5フィルタ形状のみが許可される。
【0072】
(2) ALFパラメータの時間的予測及び固定フィルタからの予測は、両方とも除去される。
【0073】
(3)各CTUに対して、ALFが有効化されるか又は無効化されるかどうかに関わらず、1ビットのフラグが信号通知される。
【0074】
(3)クラスインデックスの計算は、2×2の代わりに、4×4レベルで行われる。また、いくつかの実施形態において、ALF分類のためのサブサンプリングされたラプラシアン計算方法が利用される。具体的には、1つのブロック内のサンプル毎に水平/垂直/45対角線/135度勾配を計算する必要がない。その代わりに、1:2サブサンプリングが利用される。
【0075】
5 AVS2における領域に基づく適応ループフィルタの例
ALFは、インループフィルタリングの最終段階である。この処理には2つの段階がある。第1の段階は、フィルタ係数の導出である。フィルタ係数をトレーニングするために、エンコーダは、再構成された輝度成分の画素を16個の領域に分類し、wiener-hopf方程式を使用して、カテゴリ毎に1つのフィルタ係数のセットをトレーニングし、元のフレームと再構成されたフレームとの間の平均二乗誤差を最小限に抑える。これらの16個のフィルタ係数のセット間の冗長性を低減するために、エンコーダは、ひずみ率性能に基づいてそれらを適応的にマージする。その最大値において、16個の異なるフィルタセットを輝度成分に割り当てることができ、1つのフィルタセットのみをクロミナンス成分に割り当てることができる。第2の段階は、フレームレベル及びLCUレベルの両方を含むフィルタ決定である。まず、エンコーダは、フレームレベル適応ループフィルタリングを行うかどうかを決定する。フレームレベルALFがオンである場合、エンコーダは、LCUレベルALFを行うかどうかをさらに決定する。
【0076】
5.1 フィルタ形状
例示的なフィルタ形状は、7×7の十字形であり、輝度成分及びクロマ成分の両方について図5に示すように、3×3の正方形を重ね合わせたものである。図5中の四角はそれぞれサンプルに対応する。従って、合計17個のサンプルを使用して、位置C8のサンプルのためのフィルタリングされた値を導出する。係数を送信するオーバーヘッドを考慮して、点対称フィルタは、9つの係数だけを残して、{C0,C1、・・・、C8}を利用し、これにより、フィルタリングにおけるフィルタ係数の数を半分に減らすと共に乗算の数を減らす。この点対称フィルタは、1つのフィルタリングされたサンプルの計算の半分を減らすこともでき、例えば、1つのフィルタリングされたサンプルに対して9回の乗算及び14回の加算演算のみを行う。
【0077】
5.2 領域別適応マージ
異なる符号化エラーに適応するために、一部の実施形態では、輝度成分のために、領域に基づく複数の適応ループフィルタを採用する。輝度成分は、図6に示すように、各基本領域が最大符号化ユニット(LCU)の境界に位置合わせされた16個の略等分したサイズの基本領域に分割され、領域毎に1つのウィーナーフィルタを導出する。より多くのフィルタを使用するほど、より多くの歪みが低減されるが、これらの係数を符号化するために使用されるビットは、フィルタの数とともに増加する。最良のレートひずみ率を実現するために、これらの領域を、同じフィルタ係数を共有する、より少なく、より大きい領域にマージすることができる。マージ処理を簡単にするために、各領域には、画像の前置相関に基づいて修正されたヒルベルト順に従ってインデックスが割り当てられる。ひずみ率コストに基づいて、インデックスが連続する2つの領域をマージすることができる。
【0078】
領域間のマッピング情報は、デコーダに信号通知されるべきである。AVS-2において、基本領域の数はマージ結果を示すためのものであり、フィルタ係数はその領域の順に従って順次圧縮される。例えば、{0,1}、{2,3,4}、{5,6,7,8,9}及び左側の基本領域をそれぞれ1つの領域にマージする場合、このマージマップを表すために3つの整数のみを符号化する(即ち、2,3,5)。
【0079】
5.3 副情報の信号通知
複数のスイッチフラグも使用される。シーケンス切替フラグadaptive_loop_filter_enableは、シーケンス全体に適応ループフィルタを適用するかどうかを制御するためのフラグである。画像切り替えフラグpicture_alf_enble[i]、は、対応するi番目の画像成分に対してALFを適用するかどうかを制御する。picture_alf_enble[i]が有効になっている場合にのみ、その色成分に対応するLCUレベルのフラグ及びフィルタ係数を送信する。LCUレベルフラグ、lcu_alf_enable[k]、は、対応するk番目のLCUに対してALFが有効化されるかどうかを制御し、スライスデータにインターリーブされる。異なるレベルの調整済みフラグの決定はすべて、ひずみ率コストに基づく。柔軟性が高いので、ALFは、符号化効率をさらに有意に向上させる。
【0080】
いくつかの実施形態において、輝度成分のために、16個までのフィルタ係数のセットが存在可能である。
【0081】
いくつかの実施形態において、各クロマ成分(Cb及びCr)に対して1つのフィルタ係数セットを送信してもよい。
【0082】
6 GALFの例
いくつかの実施形態において、適応ループフィルタのフィルタリング処理は次のように行われる。
【0083】
【数15】
【0084】
ここで、サンプルI(x+i,y+j)は入力サンプルであり、O(x,y)はフィルタリングされた出力サンプル(即ち、フィルタ結果)であり、w(i,j)はフィルタ係数を表す。いくつかの実施形態において、固定点精度計算のために整数演算を使用して実装される。
【0085】
【数16】
【0086】
ここで、Lはフィルタ長を表し、w(i,j)は固定小数点精度におけるフィルタ係数である。
【0087】
7 非線形適応ループフィルタリング(ALF)
7.1 フィルタリングの再形成
式(11)は、符号化効率に影響を及ぼすことなく、以下の式で再定式化することができる。
【0088】
【数17】
【0089】
ここで、w(i,j)は、式(11)におけるフィルタ係数と同じである[例外dw(0,0)、式(13)においては1に等しいが、式(11)において1-Σ(i,j)≠(0,0)w(i,j)に等しい]。
【0090】
7.2 修正されたフィルタ
上記式(13)のフィルタ式を用いることで、単純なクリッピング関数を使用して、近傍サンプル値(I(x+i,y+j))が現在のサンプル値(I(x,y))のフィルタリングと異なり過ぎている場合に、その影響を低減することで、非線形性を導入し、ALFをより効率的にする。
【0091】
この提案において、ALFフィルタは、以下のように修正される。
【0092】
【数18】
【0093】
ここで、K(d,b)=min(b,max(-b,d))はクリッピング関数であり、k(i,j)はクリッピングパラメータであり、これは(i,j)フィルタ係数に依存する。エンコーダは、最適化を行い、最良のk(i,j)を見出す。
【0094】
いくつかの実施形態において、各ALFフィルタに対してクリッピングパラメータk(i,j)を特定し、1つのフィルタ係数あたり1つのクリッピング値を信号通知する。これは、1つの輝度フィルタ当たりビットストリームにおいて、最大12個のクリッピング値を信号通知することができ、クロマフィルタに対しては最大6個のクリッピング値を信号通知することができることを意味する。
【0095】
信号通知コスト及びエンコーダの複雑性を制限するために、クリッピング値の評価は、小さなセットの可能な値に限定されてもよい。4つの固定値のみを使用でき、これらはインターとイントラのタイルグループと同じである。
【0096】
局所的な差の分散は、輝度の場合の方が、クロマの場合よりも大きいことが多いので、輝度フィルタ及びクロマフィルタの2つの異なるセットを使用できる。各セットにおける最大サンプル値(ここでは、10ビットのビット深度の場合、1024)を含めることができ、必要でない場合、クリッピングを無効にすることができる。
【0097】
いくつかの実施形態において、用いられるクリッピング値のセットを表2に示す。4つの値は、対数ドメインにおいて、輝度についてのサンプル値(10ビットで符号化される)の全範囲を、及びクロマについての4~1024の範囲をほぼ等分することによって選択された。
【0098】
より正確には、クリッピング値の輝度テーブルは、以下の式によって得られた。
【0099】
【数19】
【0100】
同様に、クリッピング値のクロマテーブルは、以下の式に従って取得される。
【0101】
【数20】
【0102】
【表2】
【0103】
選択されたクリッピング値は、上記表2のクリッピング値のインデックスに対応するゴロム符号化方式を使用して、“alf_data”構文要素に符号化される。この符号化方式は、フィルタインデックスの符号化方式と同じである。
【0104】
8 インループ再整形(ILR)の例
インループリシェイプ(ILR)の基本的な考えは、元の(第1のドメインにおける)信号(予測/再構成信号)を第2のドメイン(リシェイプされたドメイン)に変換することである。
【0105】
インループ輝度リシェイパは、1対のルックアップテーブル(LUT)として実装されるが、信号通知されたLUTから他方を計算することができるので、2つのLUTのうちの一方のみを信号通知する必要がある。各LUTは、1次元10ビット1024エントリマッピングテーブル(1D-LUT)である。1つのLUTは、フォワードLUT、FwdLUTであり、これは、入力輝度コード値Yを変更された値Y:Y=FwdLUT[Y]にマッピングする。他方のLUTは、逆LUT、InvLUTであり、変更されたコード値YをY^:Y^:InvLUT[Y]にマッピングする。(Y^はYの再構成値を表す)。
【0106】
8.1 例示的な区分線形(PWL)モデル
概念的には、区分線形(PWL)は、以下のように実装される。
【0107】
x1、x2を2つの入力支点とし、y1、y2を1つのピースに対応する出力支点とする。x1とx2との間の任意の入力値xに対する出力値yは、以下の式によって補間することができる
【0108】
y=((y2-y1)/(x2-x1))*(x-x1)+y1
【0109】
固定点実装では、この式は、以下のように書き換えることができる。
【0110】
y=((m*x+2FP_PREC-1)>>FP_PREC)+c
【0111】
ここで、mはスカラーであり、cはオフセットであり、FP_PRECは精度を規定するための定数である。
【0112】
なお、いくつかの実施形態では、PWLモデルは、1024エントリのFwdLUTマッピングテーブルおよびInvLUTマッピングテーブルを予め計算するために使用されるが、PWLモデルは、LUTを予め計算することなく、実装において同一のマッピング値をオンザフライで計算することも可能にする。
【0113】
8.2 例示の再整形
8.2.1 輝度のリシェイプ
インループ輝度リシェイプのいくつかの実施例は、より複雑性低いパイプラインを提供し、且つインタースライス再構成におけるブロック単位のイントラ予測のための復号化待ち時間を排除する。イントラ予測は、インタースライスおよびイントラスライスの両方のために、リシェイプされたドメインにおいて行われる。
【0114】
イントラ予測は、スライスタイプにかかわらず、リシェイプされたドメインで行われる。このような構成によれば、前回のTU再構成を行った直後にイントラ予測を開始することができる。このような構成は、スライスに依存する代わりに、イントラモードのための統一された処理を提供することもできる。図7は、モードに基づく復号化処理の例を示すブロック図である。
【0115】
いくつかの実施形態において、16個の区分線形(PWL)モデルを32個のPWLモデルの代わりに用いて輝度及びクロマ残差スケーリングを行ってもよい。
【0116】
いくつかの実施形態において、インループ輝度リシェイパを用いたインタースライス再構成(薄い影が付けられたブロックは、リシェイプされたドメインにおける信号を示す。輝度残差、輝度内予測、および輝度内再構成)
【0117】
8.2.2 輝度依存クロマ残差スケーリング
輝度依存クロマ残差スケーリングは、固定小数点整数演算で実装される乗算処理である。クロマ残差スケーリングは、輝度信号のクロマ信号との相互作用を補償する。TUレベルでクロマ残差スケーリングを適用する。具体的には、以下が適用される。
【0118】
○ イントラの場合、再構成された輝度を平均する。
【0119】
○ インターの場合、予測輝度を平均する。
【0120】
この平均値は、PWLモデルにおけるインデックスを特定するために使用される。このインデックスは、スケーリング係数cScaleInvを特定する。クロマ残差にその数を乗算する。
【0121】
なお、クロマスケーリング係数は、再構成された輝度値ではなく、フォワードマップされた予測輝度値から算出される。
【0122】
8.2.3 ILR副情報の信号通知
パラメータは(現在)タイルグループヘッダ(ALFに類似)で送信される。これらは、40~100ビットを要すると報告されている。
以下の規格は、JVET-L1001のバージョン9に基づいている。追加された構文は黄色で強調表示される。
【0123】
【表3】
【0124】
【表4】
【0125】
【表5】
【0126】
一般的に、シーケンスパラメータセットRBSPの意味論では、次の意味論を追加する。
sps_reshaper_enabled_flagが1と等しい場合は、符号化映像シーケンス(CVS)においてリシェイパが使用されていることを規定している。sps_reshaper_enabled_flagが0と等しい場合は、CVSにおいてリシェイパが使用されていないことを規定している。
タイルグループヘッダ構文において、以下の意味論を追加する。
tile_group_reshaper_model_present_flagが1と等しい場合は、tile_group_reshaper_model()がタイルグループ内に存在することを規定している。tile_group_reshaper_model_present_flagが0と等しい場合は、tile_group_reshaper_model()がタイルグループヘッダに存在しないことを規定している。tile_group_reshaper_model_present_flagが存在しない場合は、0に等しいと推論される。
tile_group_reshaper_enabled_flagが1と等しい場合は、現在のタイルグループに対してリシェイパが有効になっていることを規定している。tile_group_reshaper_enabled_flagが0と等しい場合は、現在のタイルグループに対してリシェイパが有効になっていないことを規定している。tile_group_reshaper_enable_flagが存在しない場合、0であると推論される。
tile_group_reshaper_chroma_residual_scale_flagが1と等しい場合は、現在のタイルグループに対してクロマ残差スケーリングを有効であることを規定している。tile_group_reshaper_chroma_residual_scale_flagが0と等しい場合は、現在のタイルグループに対してクロマ残差スケーリングが有効でないことを規定している。tile_group_reshaper_chroma_residual_scale_flagが存在しない場合は、0であると推測される。
tile_group_reshaper_model()構文を追加する。
reshape_model_min_bin_idxは、最小のビン(またはピース)インデックスを、リシェイパ構築処理に使用するように規定している。reshape_model_min_bin_idxの値が0~MaxBinIdxの範囲内にあるものとする。MaxBinIdxの値は15と等しいとする。
reshape_model_delta_max_bin_idxは、最大許容ビン(またはピース)インデックスMaxBinIdxから最大ビンインデックスを引いたものが、リシェイパ構築処理で使用されることを規定している。reshape_model_max_bin_idxの値は、MaxBinIdx-reshape_model_delta_max_bin_idxに等しく設定される。
reshaper_model bin_delta_abs_cw_prec_minus1+1は、構文reshape_model_bin_delta_abs_CW[i]の表現に使用するビット数を規定している。
reshape_model_bin_delta_abs_CW[i]は、i番目のビンの絶対デルタコード名値を規定する。
reshaper_model_bin_delta_sign_CW_flag[i]は、reshape_model_bin_delta_abs_CW[i]のサインを次のように記述する。
- reshape_model_bin_delta_sign_CW_flag[i]が0と等しい場合、対応する変数RspDeltaCW[i]は正の値である。
- そうでない場合(reshape_model_bin_delta_sign_CW_flag[i]が0と等しくない)、対応する変数RspDeltaCW[i]は負の値である。
reshape_model_bin_delta_sign_CW_flag[i]が存在しない場合、0に等しいと推測される。
変数RspDeltaCW[i]=(1 2*reshape_model_bin_delta_sign_CW[i])*reshape_model_bin_delta_abs_CW[i];
変数RspCW[i]は、以下のステップとして導出される。
変数OrgCWは、(1<<BitDepth)/(MaxBinIdx+1)に等しく設定される。
-reshaper_model_min_bin_idx<=i<=reshaper_model_max_bin_idxの場合、RspCW[i]=OrgCW+RspDeltaCW[i]である。
- そうでない場合、RspCW[i]=0である。
BitDepthの値が10に等しい場合、RspCW[i]の値は、32~2*OrgCW_1の範囲内にくる。
iが0~MaxBinIdx+1の範囲にある変数InputPivot[i]は、以下のように導出される。
InputPivot[i]=i*OrgCW
iが0~MaxBinIdx+1の範囲にあり、変数ScaleCoef[i]およびInvScaleCoeff[i]がそれぞれ0~MaxBinIdxの範囲にあり、iが0~MaxBinIdxの範囲にある変数ReshapePivot[i]は、以下のように導出される。
shiftY=14
ReshapePivot[0]=0;
for(i=0;i<=MaxBinIdx;i++){
ReshapePivot[i+1]=ReshapePivot[i]+RspCW[i]
ScaleCoef[i]=(RspCW[i]*(1<<shiftY)+(1<<(Log2(OrgCW)-1)))>>(Log2(OrgCW))
if(RspCW[i]==0)
InvScaleCoeff[i]=0
else
InvScaleCoeff[i]=OrgCW*(1<<shiftY)/RspCW[i]

iが0~MaxBinIdxの範囲内にある変数ChromaScaleCoef[i]は、以下のように導出される。
ChromaResidualScaleLut[64]={16384,16384,16384,16384,16384,16384,16384,8192,8192,8192,8192,5461,5461,5461,5461,4096,4096,4096,4096,3277,3277,3277,3277,2731,2731,2731,2731,2341,2341,2341,2048,2048,2048,1820,1820,1820,1638,1638,1638,1638,1489,1489,1489,1489,1365,1365,1365,1365,1260,1260,1260,1260,1170,1170,1170,1170,1092,1092,1092,1092,1024,1024,1024,1024};
shiftC=11
- if(RspCW[i]==0)
ChromaScaleCoef[i]=(1<<shiftC)
- Otherwise(RspCW[i] !=0),ChromaScaleCoef[i]=ChromaResidualScaleLut[RspCW[i]>>1]
【0127】
8.2.4 ILRの使用方法
エンコーダ側では、まず、各ピクチャ(またはタイルグループ)をリシェイプされたドメインに変換する。そして、すべての符号化処理は、リシェイプされたドメインで行われる。イントラ予測の場合、近傍のブロックはリシェイプされたドメインにあり、インター予測の場合、まず、参照ブロック(復号化ピクチャバッファからの元のドメインから生成される)をリシェイプされたドメインに変換する。そして、残差を生成し、ビットストリームに符号化する。
【0128】
ピクチャ全体(またはタイルグループ)の符号化/復号化が終わった後、リシェイプされたドメインのサンプルを元のドメインに変換し、次いで、非ブロック化フィルタおよび他のフィルタを適用する。
【0129】
以下の場合、予測信号へのフォワードリシェイプは無効化される。
【0130】
○ 現在のブロックはイントラ符号化されている
【0131】
○ 現在のブロックはCPR(現在のピクチャを参照し、別名イントラブロックコピー、IBC)として符号化される。
【0132】
○ 現在のブロックは、結合されたインターイントラモード(CIIP)として符号化され、イントラ予測ブロックのためにフォワードリシェイプは無効化される。
【0133】
9 双方向オプティカルフロー(BIOまたはBDOF)
9.1 BIOの概要と分析
BDOF(別名、BIO)では、まず、動き補償を行い、現在のブロックの(各予測方向における)第1の予測を生成する。第1の予測は、ブロック内の各サブブロックまたは画素の空間的勾配、時間的勾配、及びオプティカルフローを導出するために用いられ、これらを用いて第2の予測、例えば、サブブロックまたはピクセルの最終予測を生成する。以下、その詳細を説明する。
【0134】
双方向オプティカルフロー(BIO)方法は、双方向予測のためにブロック単位の動き補償の上で実行されるサンプル単位の動きの改良である。いくつかの実施例において、サンプルレベルの動きの改良は、シグナリングを用いない。
【0135】
ブロック動き補償後の基準k(k=0,1)からの輝度をI(k)とし、∂I(k)/∂x、∂I(k)/∂yをそれぞれI(k)勾配の水平成分、垂直成分とする。オプティカルフローが有効であると仮定すると、動きベクトルフィールド(v,v)iは、以下の式によって求められる。
【0136】
【数21】
【0137】
このオプティカルフロー方程式を各サンプルの動き軌跡に対してエルミート補間によって組み合わせることにより、両端にある両機能値I(k)および導関数∂I(k)/∂x and ∂I(k)/∂yに合致する唯一の3次多項式が得られる。t=0におけるこの多項式の値は、BIO次式のような、BIO予測となる。
【0138】
【数22】
【0139】
図8は、双方向オプティカルフロー(BIO)法におけるオプティカルフローの軌跡の一例を示す。ここで、τ及びτは、参照フレームまでの距離を示す。距離τおよびτは、RefおよびRefのPOCに基づいて以下のように計算される。τ=POC(current)-POC(Ref),τ=POC(Ref)-POC(current)。両方の予測が同じ時間方向から来たものである場合(両方とも過去から来たものであるか、又は両方とも将来から来たものである場合)、符号が異なる(例えば、τ・τ<0)。このケースでは、予測が同じ時刻(例えば、τ・τ≠0)からのものでない場合、BIOが適用される。両方の参照領域は、非ゼロ動き(例えば、MVx,MVy,MVx,MVy≠0)を有し、ブロック動きベクトルは、時距離(例えば、MVx/MVx=MVy/MVy≠-τ/τ)に比例する。
【0140】
動きベクトルフィールド(v,v)は、点AおよびBにおける値の差Δを最小化することによって判定される。図8は、動き軌跡と基準フレーム平面の交差における例を示す。モデルは、Δに対するローカルテーラー展開の第1の線形項のみを以下のように使用する。
【0141】
【数23】
【0142】
上記式におけるすべての値は、(i’,j’)として表されるサンプル位置に依存する。動きがローカル周辺エリアにおいて一貫していると仮定すると、Δは、現在の予測点(i,j)を中心とする(2M+1)×(2M+1)個の正方形ウィンドウΩの内側で最小化することができる。式中、Mは2に等しい。
【0143】
【数24】
【0144】
この最適化問題に対して、JEMは、まず垂直方向に最小化し、次に水平方向に最小化する簡単なアプローチを使用する。その結果、以下のようになる。
【0145】
【数25】
【0146】
【数26】
【0147】
ここで
【0148】
【数27】
【0149】
ゼロ又は非常に小さな数値での除算を回避するために、式(19)及び式(20)において、正則化パラメータr及びmを導入する。式中、
【0150】
【数28】
【0151】
【数29】
【0152】
ここで、dは映像サンプルのビット深度である。
【0153】
バイオメモリアクセスを通常の双方向予測動き補償と同じにするために、現在のブロック内の位置について、すべての予測値及び勾配値I(k),∂I(k)/∂x,∂I(k)/∂yを計算する。図9Aは、ステップ900の外部におけるアクセス位置を例示している。図9Aに示すとおり、式(17)において、予測ブロックの境界上の現在の予測点を中心とする(2M+1)×(2M+1)個の正方形窓Ωは、ブロックの外側の位置にアクセスする必要がある。JEMにおいて、ブロックの外部のI(k),∂I(k)/∂x,∂I(k)/∂yの値は、ブロックの内部の最も近い利用可能な値に等しくなるように設定される。例えば、これは、図9Bに示すように、パディング領域901として実装することができる。
【0154】
BIOを用いることで、サンプル毎に動きフィールドを改良することができる。計算の複雑性を低減するために、JEMではブロックに基づくBIOの設計が用いられている。動きの改良は、4×4ブロックに基づいて計算することができる。ブロックに基づくBIOにおいて、4×4ブロックにおけるすべてのサンプルの、式(21)におけるsの値を統合し、次いで、この統合したsの値を使用して、4×4ブロックのためのBIO動きベクトルオフセットを導出する。具体的には、ブロックに基づくBIO導出には、以下の式を用いることができる。
【0155】
【数30】
【0156】
式中、bは、予測ブロックのk番目の4×4ブロックに属するサンプルのセットを表す。関連する動きベクトルオフセットを導出するために、式(19)および式(20)におけるsは((sn,bk)>>4)に置き換えられる。
【0157】
シナリオによってはBIOのMVレジメンがノイズや不規則な動きで信頼できない場合がある。従って、BIOにおいて、MVレジメンの大きさは閾値にクリップされる。閾値は、現在のピクチャの参照ピクチャがすべて一方向からのものであるか否かに基づいて判定される。例えば、現在のピクチャのすべての参照ピクチャが一方向からのものである場合、閾値を12×214-dに設定し、そうでない場合、閾値を12×213-dに設定する。
【0158】
BIOの勾配は、HEVC動き補償処理(例えば、2D分離可能有限インパルス応答(FIR))に準拠した演算を使用して、動き補償補間と同時に計算されてもよい。いくつかの実施形態において、前記2D分離可能なFIRのための入力は、ブロック動きベクトルの端数部分に従って、動き補償処理および端数位置(fracX,fracY)のためのものと同じ参照フレームサンプルである。水平方向勾配∂I/∂xの場合、まず、信号は、デスケーリングシフトでd-8で、端数位置fracYに対応するBIOfilterSを使用して垂直方向に補間される。次に、18-dによるデスケーリングシフトで端数位置fracXwithに対応する、水平方向に勾配フィルタBIOfilterGを適用する。垂直方向勾配∂I/∂yの場合、デスケーリングシフトd-8で、端数位置fracYに対応するBIOfilterGを使用して勾配フィルタを垂直方向に適用する。そして、18-dによるデスケーリングシフトで端数位置fracXに対応する水平方向のBIOfilterSを使用して信号の移動を行う。適度な複雑性を維持するために、勾配計算BIOfilterGおよび信号変位BIOfilterFのための補間フィルタの長さはより短くてもよい(例えば6タップ)。表3は、BIOにおけるブロック動きベクトルの異なる端数位置の勾配計算に使用できる例示的なフィルタを示す。表4は、BIOにおける予測信号の生成に使用できる例示的な補間フィルタを示す。
【0159】
【表6】
【0160】
【表7】
【0161】
本JEMにおいて、2つの予測が異なる参照ピクチャからのものである場合、BIOをすべての双方向予測ブロックに適用することができる。CUのローカル照明補償(LIC)を有効にすると、BIOを無効にすることができる。
【0162】
いくつかの実施形態において、OBMCは、通常のMC処理の後、1つのブロックに適用される。計算の複雑性を低減するために、OBMC処理中にBIOを適用しなくてもよい。つまり、BIOは、それ自身のMVを使用する場合、1つのブロックのMC処理において適用され、OBMC処理において近傍のブロックのMVを使用する場合、MC処理においては適用されない。
【0163】
10 オプティカルフロー(PROF)による予測微調整例
いくつかの実施形態において、サブブロックに基づくアフィン動き補償予測をオプティカルフローにより微調整することができる。サブブロックに基づくアフィン動き補償を行った後、オプティカルフロー方程式で導出された差を加算することで、予測サンプルを微調整し、これをオプティカルフロー予測微調整(PROF)と呼ぶ。このような技法は、メモリアクセス帯域幅を増大させることなく、画素レベルの粒度におけるインター予測を実現することができる。
【0164】
動き補償の粒度をより細かくするために、本寄稿では、オプティカルフローを用いたサブブロックに基づくアフィン動き補償予測を微調整する方法を提案している。サブブロックに基づくアフィン動き補償を行った後、オプティカルフロー方程式で導出された差を加算することで、輝度予測サンプルを微調整する。PROFは、以下の4つのステップとして説明される。
【0165】
ステップ1)サブブロックに基づくアフィン動き補償を行い、サブブロック予測I(i,j)を生成する。
【0166】
ステップ2)3タップフィルタ[-1,0,1]を使用して、個々のサンプル位置において、サブブロック予測の空間的勾配g(i,j)及びg(i,j)を算出する。
【0167】
【数31】
【0168】
【数32】
【0169】
サブブロック予測は、勾配計算のために各側で1つの画素だけ拡張される。メモリの帯域幅及び複雑性を低減するために、拡大された境界上の画素は、参照ピクチャにおける最も近い整数画素位置からコピーされる。従って、パディング領域のための追加の補間が回避される。
【0170】
ステップ3)オプティカルフロー方程式によって輝度予測の微調整を計算する。
【0171】
【数33】
【0172】
ここで、Δv(i,j)は、図10に示すように、v(i,j)によって表される、サンプル位置(i,j)について算出された画素MVと、画素(i,j)が属するサブブロックMVのサブブロックMVとの差分である。
【0173】
サブブロック中心に対するアフィンモデルパラメータ及び画素位置は、サブブロックからサブブロックに変化しないので、第1のサブブロックについてΔv(i,j)を計算し、同じCUにおける他のサブブロックに再利用することができる。画素位置からサブブロックの中心までの水平及び垂直オフセットをx、yとすると、Δv(x,y)は、以下の式で導出することができる。
【0174】
【数34】
【0175】
4パラメータアフィンモデルの場合、
【0176】
【数35】
【0177】
6パラメータアフィンモデルの場合、
【0178】
【数36】
【0179】
ここで、(v0x,v0y)、(v1x,v1y)、(v2x,v2y)は、左上、右上、左下の制御点動きベクトルであり、w、hは、CUの幅及び高さである。
【0180】
ステップ4)最後に、輝度予測の微調整がサブブロック予測I(i,j)に加えられる。最終予測I’は、次式のように生成される。
【0181】
【数37】
【0182】
11 既存の実装形態の欠点
非線形ALF(NLALF)、BIO(aka BDOF)および/またはPROF設計には、以下の問題がある。
【0183】
(1)BDOF又はPROFのいずれか一方の場合、予測サンプルに適用された導出オフセット値は、元のサンプルから離れ過ぎている可能性があり、それによって、より大きい残差となる。
【0184】
(2)強い水平又は垂直パターンを有するシーケンスに対して準最適なのものとすることができる2-Dフィルタリングが適用される。
【0185】
12 映像符号化におけるサンプルの微調整及びフィルタリングのための例示的な方法
本開示の技術の実施形態は、既存の実装の欠点を克服し、それにより、より高い符号化効率を有する映像符号化を提供する。開示される技術に基づいた映像符号化のためのサンプル微調整およびフィルタリング方法は、既存のおよび将来の映像符号化規格の両方を向上させることができ、様々な実装形態のために以下の例で解明される。以下に提供される開示される技術の例は、一般的な概念を説明するものであり、限定するものと解釈されるべきではない。一例において、明確に示されていない限り、逆に示されていない限り、これらの例に記載されている様々な特徴を組み合わせることができる。
【0186】
なお、以下の例でいう‘フィルタリング方法’とは、適応ループフィルタ/再構成後フィルタ(例えば、バイラテラルフィルタ、拡散フィルタ等)を指す場合がある。
1. なお、各近傍の画素と現在の画素との差をクリッピングする代わりに、近傍の画素の重み付け平均をクリッピングしてもよい。
a. いくつかの実施形態において、クリッピングは次のように行うことができる。ここで、Kはクリッピング演算である。
【0187】
【数38】
【0188】
2. 1次元フィルタリング方法を利用してもよい。
a. いくつかの実施形態において、1次元フィルタは水平方向に近傍のサンプルのみを使用してもよい。
i. いくつかの実施形態において、前記フィルタリング処理は次のように表現してもよい。
【0189】
【数39】
【0190】
ii. サンプル/フィルタタップの数(例えば、T)は、画素ごとに異なってもよい。例えば、CTU境界にある画素の場合、現在のCTU内にない画素は使用されない。
b. いくつかの実施形態において、前記ショートタップフィルタは垂直方向に近傍のサンプルのみを使用してもよい。
【0191】
【数40】
【0192】
i. Tは、画素ごとに異なってもよい。例えば、CTU境界にある画素の場合、現在のCTU内にない画素は使用されない。
c. いくつかの実施形態において、1次元タップフィルタは、水平/垂直方向を除き、一方向に近傍のサンプルのみを使用してもよい。
d. いくつかの実施形態において、ws(si)は画素の分類によって異なっていてもよい。
e. いくつかの実施形態において、ws(si)は異なるクラスの画素に対して同じであってもよい。
f. いくつかの実施形態において、ws(si)はデコーダに信号通知されてもよい。
g. いくつかの実施形態において、ws(si)は予め規定されていてもよい。
3. 1次元非線形適応ループフィルタリング方法を利用してもよい。
a. いくつかの実施形態において、前記ショートタップフィルタは水平方向に近傍のサンプルのみを使用してもよい。
i. いくつかの実施形態において、非線形フィルタリング方法は、水平方向に近傍のサンプルを用いて次のように表現してもよい。
【0193】
【数41】
【0194】
ii. Tは、画素ごとに異なってもよい。例えば、CTU境界にある画素の場合、現在のCTU内にない画素は使用されない。
b. いくつかの実施形態において、1次元非線形フィルタは垂直方向に近傍のサンプルのみを使用してもよい。
i. いくつかの実施形態において、非線形フィルタリング方法は、垂直方向に近傍のサンプルを用いて次のように表現してもよい。
【0195】
【数42】
【0196】
ii. Tは、画素ごとに異なってもよい。例えば、CTU境界にある画素の場合、現在のCTU内にない画素は使用されない。
c. いくつかの実施形態において、1次元非線形タップフィルタは、水平/垂直方向を除き、一方向に近傍のサンプルのみを使用してもよい。
d. いくつかの実施形態において、ws(si)は画素の分類によって異なっていてもよい。
e. いくつかの実施形態において、ws(si)は異なるクラスの画素に対して同じであってもよい。
f. いくつかの実施形態において、ws(si)はデコーダに信号通知されてもよい。
g. いくつかの実施形態において、ws(si)は予め規定されていてもよい。
4. バイラテラルフィルタ又はアダマールフィルタにおいて、画素は異なる方向に沿ってフィルタリングされてもよい。
a. いくつかの実施形態において、画素は勾配情報によって異なる方向にフィルタリングされてもよい。
b. いくつかの実施形態において、各M×Nサブブロックに対して、水平方向勾配及び垂直方向勾配を計算し、水平方向勾配の絶対値の合計が垂直方向勾配の絶対値の合計より大きいか或いは等しい場合、サブブロック内の画素を水平方向にフィルタリングしてもよい。
i. 代替的に、サブブロック内の画素を垂直方向にフィルタリングしてもよい
c. いくつかの実施形態において、各M×Nサブブロックに対して、水平方向勾配及び垂直方向勾配を計算し、水平方向勾配の絶対値の合計が垂直方向勾配の絶対値の合計より小さいか或いは等しい場合、サブブロック内の画素を垂直方向にフィルタリングしてもよい。
i. 代替的に、サブブロック内の画素を水平方向にフィルタリングしてもよい。
d. いくつかの実施形態において、各M×Nサブブロックに対して、水平方向勾配、垂直方向勾配、45度対角勾配及び135度斜め勾配を算出し、サブブロック内の画素を絶対勾配の最大合計を有する方向に沿って選別してもよい。
e. いくつかの実施形態において、各M×Nサブブロックに対して、水平方向勾配、垂直方向勾配、45度対角勾配及び135度斜め勾配を算出し、サブブロック内の画素を絶対勾配の最小合計を有する方向に沿って選別してもよい。
5. BODFにおいて、勾配は、サンプルの微調整又は/及びMVオフセットの導出に使用される前に修正されてもよい。
a. いくつかの実施形態において、BDOFで算出された空間的及び/又は時間的勾配は、ある範囲[min,max]にクリップされてもよい。
i. 変数min及びmaxは、空間的勾配及び時間的勾配に対して異なってもよい。
ii. 変数minは0より小さくてもよく、maxはゼロより大きくてもよい。
iii. 変数min及びmaxは、サンプルの入力ビット深度に依存してもよい。
iv. 変数min及びmaxは、中間サンプルを生成するために用いられる補間フィルタに依存してもよい。
v. 変数min及びmaxは、信号通知されてもよい。
vi. 変数min及びmaxは、予め規定されてもよい。
b. いくつかの実施形態において、BDOFで算出された空間的及び/又は時間的勾配は、非線形関数によって修正されてもよい。
i. 例えば、ロジスティックS字関数を使用してもよい。
c. 同様に、PROFにおいて、勾配は、サンプルの微調整又は/及びMVオフセットの導出に使用される前に、修正されてもよい。
6. BODF/PROFにおいて、微調整されたサンプル値、又は予測サンプルとその微調整されたサンプル値との差(又はオフセット)は、さらに修正してから最終的な再構成サンプル値を導出してもよい。
a. BODF/PROFでは、予測サンプルとその微調整されたサンプル値との差にクリッピング演算を加えてもよい。
b. いくつかの実施形態において、前記差はある範囲[min,max]にクリッピングされてもよい。
i. 変数min及びmaxは、空間的勾配及び時間的勾配に対して異なってもよい。
ii. 変数minは0より小さくてもよく、maxはゼロより大きくてもよい。
iii. 変数min及びmaxは、サンプルの入力ビット深度に依存してもよい。
iv. 変数min及びmaxは、中間サンプルを生成するために用いられる補間フィルタに依存してもよい。
v. 変数min及びmaxは、信号通知されてもよい。
vi. 変数min及びmaxは、予め規定されてもよい。
c. さらに、代替的に、1つの予測サンプルの最終再構成値は、クリップされた差に依存してもよい。
d. さらに、代替的に、1つの予測サンプルの最終再構成値は、修正された微調整されたサンプル/修正された微調整された差に依存してもよい。
7. 上記方法で利用されるクリッピングパラメータは、シーケンスレベル、ピクチャレベル、CTUレベル等のようなある映像符号化ユニットレベルで信号通知されてもよい。
a. いくつかの実施形態において、それらはSPS/VPS/PPS/タイルグループヘッダ/CTUの行/領域に信号通知されてもよい。
b. 代替的に、パラメータはオンザフライで導出されてもよい。
c. 代替的に、パラメータは、量子化パラメータ、タイルグループのタイプ、符号化モード情報、変形パラメータ等に従って導出されてもよい。
8. 上記方法を適用するかどうかは、カラーフォーマットに依存し得る。
a. 提案した方法は、1つの色成分、例えばG又は輝度色成分にのみ適用可能であってもよい。
b. 代替的に、提案した方法は、4:4:4のカラーフォーマットにおけるすべての色成分に適用可能であってもよい。
【0197】
上述した例は、以下に説明する方法、例えば、方法1100および1150のコンテキストに含まれてもよく、これらの方法は、映像デコーダ又は映像エンコーダにおいて実装されてもよい。
【0198】
図11Aは、例示的な映像処理方法のフローチャートを示す。方法1100は、ステップ1102において、現在の映像ブロックに対して、この現在の映像ブロックの近傍の画素の重み付け平均に適用されるクリッピング演算を含むフィルタリング処理を構成することを含む。
【0199】
いくつかの実施形態において、前記フィルタリング処理は次のステップを含む。
【0200】
【数43】
【0201】
式中、I(x,y)は、現在の映像ブロックの(x,y)番目の画素であり、O(x,y)は、(x,y)番目の画素の出力値であり、w(i,j)は、重み係数であり、K(Σ)はクリッピング演算である。
【0202】
方法1100は、ステップ1104において、フィルタリング処理に基づいて、対応するビットストリーム表現から現在の映像ブロックを再構成することを含む。
【0203】
いくつかの実施形態において、クリッピング演算の1つ以上のパラメータは、シーケンスパラメータセット(SPS)、映像パラメータセット(VPS)、ピクチャパラメータセット(PPS)、タイルグループヘッダ、符号化ツリーユニット(CTU)行またはCTU領域において信号通知される。
【0204】
いくつかの実施形態において、クリッピング演算の1つ以上のパラメータはオンザフライで導出される。
【0205】
いくつかの実施形態において、クリッピング演算の1つ以上のパラメータは、現在の映像ブロックの量子化パラメータ、1つ以上の再整形パラメータ、タイルグループのタイプ又は符号化モードに基づいて導出される。
【0206】
いくつかの実施形態において、前記フィルタリング処理は、適応ループフィルタ処理又は再構成後フィルタリング処理に対応する。1つの例において、再構成後フィルタリング処理は、バイラテラルフィルタ、アダマールフィルタ、又は拡散フィルタのうちの少なくとも1つを使用する。
【0207】
図11Bは、例示的な映像処理方法のフローチャートを示す。方法1150は、ステップ1152において、現在の映像ブロックに対して1次元フィルタリング処理を構成することを含む。
【0208】
方法1150は、ステップ1154において、1次元フィルタリング処理に基づいて、対応するビットストリーム表現から現在の映像ブロックを再構成することを含む。
【0209】
いくつかの実施形態において、1次元フィルタリング処理は、水平方向に近傍のサンプル、垂直方向に近傍のサンプル、45度の対角線に沿った近傍のサンプル、又は現在の映像ブロックの135度の対角線に沿った近傍のサンプルのうち少なくとも1つに適用される。一例において、符号化ツリーユニット(CTU)境界の画素に適用される1次元フィルタリング処理の第1のフィルタタップのセットは、1つのCTU内に完全にある画素に適用される1次元フィルタリング処理の第2のフィルタタップのセットとは異なる。別の例において、第1のフィルタタップのセット又は第2のフィルタタップのセットは、対応するビットストリーム表現において予め規定されるか、又は信号通知される。
【0210】
いくつかの実施形態において、前記1次元フィルタリング処理を構成することは、勾配情報に基づいて行われる。一例において、前記勾配情報は、現在の映像ブロックのM×N個のサブブロックに対して、複数の水平方向勾配及び複数の垂直方向勾配を含む。別の例において、複数の水平方向勾配の絶対値の合計は、複数の垂直方向勾配の絶対値の合計以上である。さらに別の例において、複数の水平方向勾配の絶対値の合計は、複数の垂直方向勾配の絶対値の合計以下である。さらに別の例において、1次元フィルタリング処理は、水平方向に近傍のサンプルに適用される。さらに別の例において、1次元フィルタリング処理は、垂直方向に近傍のサンプルに適用される。
【0211】
いくつかの実施形態において、前記勾配情報は、M×Nサブブロックのための複数の45°対角勾配と、M×Nサブブロックのための複数の135°対角勾配とをさらに含むことができる。一例において、1次元フィルタリング処理は、複数の水平方向勾配、垂直方向勾配、45度対角勾配及び135度斜め勾配の絶対値の合計の最大値に対応する方向に沿って適用される。別の例において、1次元フィルタリング処理は、複数の水平方向勾配、垂直方向勾配、45度対角勾配及び135度斜め勾配の絶対値の合計の最小値に対応する方向に沿って適用される。
【0212】
いくつかの実施形態において、前記1次元フィルタリング処理を構成することは、勾配情報の修正に基づいて行われる。例えば、この変形例は、範囲[min,max]のクリッピング演算を勾配情報に適用することを含む。別の例において、min及びmaxは、空間的勾配のための第1の組の値を用いて構成され、min及びmaxは、時間的勾配のための第1の組の値とは異なった第2の組の値を用いて構成される。さらに別の実施例において、min<0およびmax>0である。さらに別の実施例において、min及びmaxの値は、現在の映像ブロックのサンプルのビット深度に基づいて選択される。さらに別の例において、min及びmaxの値は、対応するビットストリーム表現において予め規定されるか、又は信号通知される。
【0213】
いくつかの実施形態において、前記修正は前記勾配情報に非線形関数を適用することを含む。一例において、この非線形関数は、ロジスティックS字関数である。
【0214】
いくつかの実施形態において、1次元フィルタリング処理は、適応ループフィルタ処理又は再構成後フィルタリング処理に対応する。1つの例において、再構成後フィルタリング処理は、バイラテラルフィルタ、アダマールフィルタ、又は拡散フィルタのうちの少なくとも1つを使用する。
【0215】
13 開示される技術の例示的な実装形態
図12は、映像処理装置1200のブロック図である。装置1200は、本明細書に記載の方法の1つ以上を実装するために使用してもよい。装置1200は、スマートフォン、タブレット、コンピュータ、IoT(モノのインターネット)受信機等により実施されてもよい。装置1200は、1つ以上の処理装置1202と、1つ以上のメモリ1204と、映像処理ハードウェア1206と、を含んでもよい。1つまたは複数の処理装置1202は、本明細書に記載される1つ以上の方法(方法1100および1150を含むが、これに限定されない)を実装するように構成されてもよい。メモリ(複数可)1204は、本明細書で説明される方法および技術を実装するために使用されるデータおよびコードを記憶するために使用してもよい。映像処理ハードウェア1206は、本明細書に記載される技術をハードウェア回路にて実装するために使用してもよい。
【0216】
いくつかの実施形態において、映像符号化法は、図12を参照して説明したように、ハードウェアプラットフォームに実装される装置を使用して実施してもよい。
【0217】
図13は、本明細書で開示される様々な技術が実装され得る例示的な映像処理システム1300を示すブロック図である。様々な実装形態は、システム1300のモジュールの一部又は全部を含んでもよい。システム1300は、映像コンテンツを受信するための入力ユニット1302を含んでもよい。映像コンテンツは、未加工又は非圧縮フォーマット、例えば、8又は10ビットのマルチモジュール画素値で受信されてもよく、又は圧縮又は符号化フォーマットで受信されてもよい。入力ユニット1302は、ネットワークインターフェース、周辺バスインターフェース、又は記憶インターフェースを表してもよい。ネットワークインターフェースの例は、イーサネット(登録商標)、パッシブ光ネットワーク(PON)等の有線インターフェース、およびWi-Fi(登録商標)またはセルラーインターフェース等の無線インターフェースを含む。
【0218】
システム1300は、本明細書に記載される様々な符号化又は符号化方法を実装することができる符号化モジュール1304を含んでもよい。符号化モジュール1304は、入力ユニット1302からの映像の平均ビットレートを符号化モジュール1304の出力に低減し、映像の符号化表現を生成してもよい。従って、この符号化技術は、映像圧縮または映像コード変換技術と呼ばれることがある。符号化モジュール1304の出力は、モジュール1306によって表されるように、記憶されてもよいし、接続された通信を介して送信されてもよい。入力ユニット1302において受信された、記憶された又は通信された映像のビットストリーム(又は符号化)表現は、モジュール1308によって使用されて、表示インターフェースユニット1310に送信される画素値又は表示可能な映像を生成してもよい。ビットストリーム表現からユーザが見ることができる映像を生成する処理は、映像伸張(映像展開)と呼ばれることがある。さらに、特定の映像処理動作を“符号化”動作又はツールと呼ぶが、符号化ツール又は動作は、エンコーダ及びそれに対応する、復号化の結果を逆にする復号化ツール又は動作が、デコーダによって行われることが理解されよう。
【0219】
周辺バスインターフェースユニットまたは表示インターフェースユニットの例は、ユニバーサルシリアルバス(USB)または高精細マルチメディアインターフェース(HDMI(登録商標))またはディスプレイポート等を含んでもよい。ストレージインターフェースの例は、シリアルアドバンスドテクノロジーアタッチメント(SATA)、PCI、IDEインターフェース等を含む。本明細書に記載される技術は、携帯電話、ノートパソコン、スマートフォン、又はデジタルデータ処理及び/又は映像表示を実施可能な他のデバイス等の様々な電子デバイスに実施されてもよい。
【0220】
図14は、本技術に従った映像処理の方法1400を示すフローチャートである。この方法1400は、動作1410において、映像の現在のブロックとこの映像のビットストリーム表現の間での変換のために、現在のブロックにおける画素とこの画素に近傍の画素との間の差の重み付け平均にクリッピング演算を適用することを含む。方法1400は、ステップ1420において、クリッピング演算の出力に基づいて変換を行うことを含む。
【0221】
いくつかの実施形態において、前記クリッピング演算は、
【0222】
【数44】
【0223】
として適用され、式中、I(x,y)は、現在のブロックの(x,y)番目の画素であり、O(x,y)は(x,y)番目の画素の出力値であり、w(i,j)は、重み係数であり、K(・)は、クリッピング演算である。いくつかの実施形態において、クリッピング演算の1つ以上のパラメータは、シーケンスパラメータセット(SPS)、映像パラメータセット(VPS)、ピクチャパラメータセット(PPS)、タイルグループヘッダ、符号化ツリーユニット(CTU)行またはCTU領域において信号通知される。いくつかの実施形態において、クリッピング演算の1つ以上のパラメータはオンザフライで導出される。いくつかの実施形態において、クリッピング演算の1つ以上のパラメータは、現在の映像ブロックの量子化パラメータ、1つ以上の再整形パラメータ、タイルグループのタイプ又は符号化モードに基づいて導出される。
【0224】
図15は、本技術にしたがった映像処理方法1500を示すフローチャートである。この方法1500は、動作1510において、映像の現在のブロックとこの映像のビットストリーム表現の間での変換のために、この現在のブロックの近傍の画素のセットに基づいてフィルタリング処理を構成することを含む。この方法1500は、動作1520において、フィルタリング処理に基づいてこの変換を行い、このフィルタリング処理の出力を行うことも含む。
【0225】
いくつかの実施形態において、前記フィルタ処理は、現在のブロックの近傍の画素のセットに基づいて一次元フィルタリング動作を実行することを含む。いくつかの実施形態において、一次元フィルタリング動作は非線形適応ループフィルタリング方法を含む。
【0226】
いくつかの実施形態において、前記近傍の画素のセットは前記現在のブロックの水平近傍の画素を含む。いくつかの実施形態において、前記フィルタリング処理は、
【0227】
【数45】
【0228】
を含み、式中、I(x,y)は現在のブロックの(x,y)番目の画素であり、O(x,y)は(x,y)番目の画素の出力値であり、w(i,j)は重み係数であり、Tは前記フィルタリング処理に使用されるべき画素の数を表し、w(si)はTに対応するフィルタ係数を表す。本実施例において、前記フィルタリング処理は、
【0229】
【数46】
【0230】
を含み、式中、I(x,y)は現在のブロックの(x,y)番目の画素であり、O(x,y)は(x,y)番目の画素の出力値であり、w(i,j)は、重み係数であり、K(・)は、クリッピング演算であり、Tは、フィルタリング処理に使用する画素数を洗割り、ws(si)は、Tに対応するフィルタリング係数を表し、k(i,j)は、クリッピングパラメータを表す。
【0231】
いくつかの実施形態において、前記近傍の画素のセットは前記現在のブロックの垂直近傍の画素を含む。いくつかの実施形態において、前記フィルタリング処理は、
【0232】
【数47】
【0233】
を含み、式中、I(x,y)は現在のブロックの(x,y)番目の画素であり、O(x,y)は(x,y)番目の画素の出力値であり、w(i,j)は重み係数であり、Tは前記フィルタリング処理に使用されるべき画素の数を表し、w(si)はTに対応するフィルタ係数を表す。本実施例において、前記フィルタリング処理は、
【0234】
【数48】
【0235】
を含み、式中、I(x,y)は現在のブロックの(x,y)番目の画素であり、O(x,y)は(x,y)番目の画素の出力値であり、w(i,j)は、重み係数であり、K(・)は、クリッピング演算であり、Tは、フィルタリング処理に使用する画素数を洗割り、ws(si)は、Tに対応するフィルタリング係数を表し、k(i,j)は、クリッピングパラメータを表す。
【0236】
いくつかの実施形態において、Tは現在のブロックの異なる画素ごとに変化する。いくつかの実施形態において、現在のブロックの(x,y)番目の画素が現在のブロックの境界に位置する場合、前記フィルタリング処理に使用される画素Tの数は現在のブロックの外側に位置する画素を除外する。いくつかの実施形態において、ws(k)は現在のブロックの異なる画素ごとに異なる。いくつかの実施形態において、ws(k)は現在のブロックの異なる画素に対して同じである。いくつかの実施形態において、ws(k)はビットストリーム表現で信号通知される。いくつかの実施形態において、ws(k)は予め規定される。
【0237】
いくつかの実施形態において、一次元フィルタリング動作は水平方向又は垂直方向にフィルタリングをすることを排除する。
【0238】
いくつかの実施形態において、このフィルタ処理は、異なる方向に沿って1つのフィルタを適用することを含む。いくつかの実施形態において、前記フィルタは、バイラテラルフィルタ又はアダマールフィルタを含む。いくつかの実施形態において、前記フィルタは、現在のブロックに関連付けられた勾配情報に基づいて異なる方向に適用される。いくつかの実施形態において、前記方法は、現在のブロックにおける1つのサブブロックに対して、前記サブブロックにおける画素の水平方向勾配及び垂直方向勾配を判定することと、水平方向勾配の絶対値の合計が垂直方向勾配の絶対値の合計より大きい又は等しい場合、前記サブブロックに対して前記フィルタを水平に適用することとを含む。いくつかの実施形態において、前記方法は、現在のブロックにおける1つのサブブロックに対して、前記サブブロックにおける画素の水平方向勾配及び垂直方向勾配を決定することと、水平方向勾配の絶対値の合計が垂直方向勾配の絶対値の合計より大きい又は等しい場合、前記フィルタを前記サブブロックに垂直に適用することとを含む。いくつかの実施形態において、前記方法は、現在のブロックにおける1つのサブブロックに対して、前記サブブロックにおける画素の水平方向勾配及び垂直方向勾配を決定することと、水平方向勾配の絶対値の合計が垂直方向勾配の絶対値の合計以下の場合、前記フィルタを前記サブブロックに水平に適用することとを含む。いくつかの実施形態において、前記方法は、現在のブロックにおける1つのサブブロックに対して、前記サブブロックにおける画素の水平方向勾配及び垂直方向勾配を決定することと、水平方向勾配の絶対値の合計が垂直方向勾配の絶対値の合計以下の場合、前記フィルタを前記サブブロックに垂直に適用することとを含む。いくつかの実施形態において、前記方法は、現在のブロックにおける1つのサブブロックに対して、前記サブブロックにおける画素の水平方向勾配、垂直方向勾配、45°の対角勾配及び135°の対角勾配を決定することと、判定された水平方向勾配、垂直方向勾配、45°の対角勾配及び135°の対角勾配に基づいて、絶対勾配の最大合計を有する方向に沿って前記フィルタを前記サブブロックに適用することとを含む。いくつかの実施形態において、前記方法は、現在のブロックにおける1つのサブブロックに対して、前記サブブロックにおける画素の水平方向勾配、垂直方向勾配、45°の対角勾配及び135°の対角勾配を決定することと、判定された水平方向勾配、垂直方向勾配、45°の対角勾配及び135°の対角勾配に基づいて、絶対勾配の最小合計を有する方向に沿って前記フィルタを前記サブブロックに適用することとを含む。
【0239】
いくつかの実施形態において、前記フィルタリング処理が現在のブロックに適用可能であるかどうかは、現在のブロックのカラーフォーマットに基づく。いくつかの実施形態において、前記フィルタリング処理は現在のブロックの単一色成分に適用されてもよい。いくつかの実施形態において、前記単一色成分は、輝度色成分又は緑色成分である。いくつかの実施形態において、現在のブロックのカラーフォーマットが4:4:4カラーフォーマットであるとき、前記フィルタリング処理は現在のブロックのすべての色成分に適用可能である。
【0240】
図16は、本技術にしたがった映像処理方法1600を示すフローチャートである。この方法1600は、動作1610において、映像の1つのブロックとこの映像の1つのビットストリーム表現との間での変換のために、このブロックにおける1つの予測サンプルのための1つの微調整値を、クリッピング演算を微調整値に適用することによって修正することを含む。オプティカルフロー符号化処理の勾配値に基づいて、微調整値を導出する。クリッピング演算の出力が範囲内にある。方法1600は、動作1620において、修正された微調整値に基づいて予測サンプルを微調整することを含む。方法1600は、動作1630において、微調整された予測サンプルに基づいて変換を行うことをさらに含む。
【0241】
いくつかの実施形態において、オプティカルフロー符号化処理は、オプティカルフロー処理による予測微調整を含む。いくつかの実施形態において、オプティカルフロー符号化処理は、双方向オプティカルフロー処理を含む。
【0242】
いくつかの実施形態において、前記範囲は前記サンプルの入力ビット深度に基づいて判定される。いくつかの実施形態において、この範囲は、サンプルの空間的勾配又は時間的勾配に基づいて可変である。いくつかの実施形態において、前記範囲は[min,max]であり、minは0より小さく、maxは0より大きい。いくつかの実施形態において、この範囲は、サンプルに関連付けられた中間サンプルを生成するための補間フィルタに基づく。いくつかの実施形態において、範囲はビットストリーム表現で信号通知される。いくつかの実施形態において、範囲は予め規定される。
【0243】
いくつかの実施形態において、前記クリッピング演算の出力に基づいて前記サンプルの最終再構成値を判定定する。いくつかの実施形態において、サンプルの修正された予測値に基づいて、サンプルの最終再構成値を判定する。いくつかの実施形態において、前記ブロックはアフィン動きで符号化される。いくつかの実施形態において、微調整値は、ブロックにおける複数のサンプルの各々に対して導出される。
【0244】
図17は、本技術にしたがった映像処理方法1700を示すフローチャートである。この方法1700は、動作1710において、オプティカルフロー符号化処理において、映像のブロックと映像のビットストリーム表現との間での変換のために、勾配値を修正することを含む。この方法1700は、また、動作1720において、この変換のために、この修正された勾配値に基づいてサブシーケンス予測演算を実行することを含む。いくつかの実施形態において、オプティカルフロー符号化処理は、オプティカルフロー処理または双方向オプティカルフロー処理による予測微調整を含む。いくつかの実施形態において、後続の予測動作は、サンプル微調整動作又は動きベクトルオフセット導出動作を含む。
【0245】
いくつかの実施形態において、前記勾配値を修正することは、前記勾配値に対してクリッピング演算を行うことを含み、前記クリッピング演算の出力はある範囲内にある。いくつかの実施形態において、この範囲は、この勾配が予測サンプルの空間的勾配であるか又は時間的勾配であるかどうかに基づいて可変である。いくつかの実施形態において、前記範囲は[min,max]であり、minは0より小さく、maxは0より大きい。いくつかの実施形態において、前記範囲は前記サンプルの入力ビット深度に基づいて判定される。いくつかの実施形態において、この範囲は、サンプルに関連付けられた中間サンプルを生成するための補間フィルタに基づく。いくつかの実施形態において、範囲はビットストリーム表現で信号通知される。いくつかの実施形態において、範囲は予め規定される。いくつかの実施形態において、勾配値を修正することは、勾配値に非線形関数を適用することを含む。いくつかの実施形態において、前記非線形関数はロジスティックS字関数を含む。
【0246】
いくつかの実施形態において、前記ブロックはアフィン動きで符号化される。いくつかの実施形態において、勾配値は、ブロックにおける複数のサンプルの各々に対して導出される。
【0247】
いくつかの実施形態において、クリッピング演算の1つ以上のパラメータは、シーケンスパラメータセット(SPS)、映像パラメータセット(VPS)、ピクチャパラメータセット(PPS)、タイルグループヘッダ、符号化ツリーユニット(CTU)行またはCTU領域において信号通知される。いくつかの実施形態において、クリッピング演算の1つ以上のパラメータはオンザフライで導出される。いくつかの実施形態において、クリッピング演算の1つ以上のパラメータは、現在の映像ブロックの量子化パラメータ、1つ以上の再整形パラメータ、タイルグループのタイプ又は符号化モードに基づいて導出される。
【0248】
いくつかの実施形態において、前記修正することが現在のブロックに適用可能であるかどうかは、現在のブロックのカラーフォーマットに基づく。いくつかの実施形態において、前記修正することは現在のブロックの単一色成分に適用されてもよい。いくつかの実施形態において、前記単一色成分は、輝度色成分又は緑色成分である。いくつかの実施形態において、現在のブロックのカラーフォーマットが4:4:4カラーフォーマットであるとき、前記修正することは現在のブロックのすべての色成分に適用されてもよい。
【0249】
いくつかの実施形態において、オプティカルフロー符号化処理は、ブロック内の動きをオプティカルフローとしてモデル化する処理である。
【0250】
いくつかの実施形態において、前記変換を行うことは、映像の現在のブロックに基づいてビットストリーム表現を生成することを含む。いくつかの実施形態において、変換を行うことは、ビットストリーム表現から映像の現在のブロックを生成することを含む。
【0251】
開示される技術のいくつかの実施形態は、映像処理ツールまたはモードを有効化するように決定または判定することを含む。一例において、映像処理ツールまたはモードが有効化される場合、エンコーダは、1つの映像ブロックを処理する際にこのツールまたはモードを使用するまたは実装するが、このツールまたはモードの使用に基づいて、結果として得られるビットストリームを必ずしも修正しなくてもよい。すなわち、映像のブロックから映像のビットストリーム表現への変換は、決定または判定に基づいて映像処理ツールまたはモードが有効化される場合に、この映像処理ツールまたはモードを使用する。別の例において、映像処理ツールまたはモードが有効化される場合、デコーダは、ビットストリームが映像処理ツールまたはモードに基づいて修正されたことを知って、ビットストリームを処理する。すなわち、決定または判定に基づいて有効化された映像処理ツールまたはモードを使用して、映像のビットストリーム表現から映像のブロックへの変換を行う。
【0252】
開示される技術のいくつかの実施形態は、映像処理ツールまたはモードを無効化するように決定または判定することを含む。一例において、映像処理ツールまたはモードが無効にされている場合、エンコーダは、映像のブロックを映像のビットストリーム表現に変換する際に、このツールまたはモードを使用しない。別の例において、映像処理ツールまたはモードが無効にされている場合、デコーダは、決定または判定に基づいて有効化された映像処理ツールまたはモードを使用してビットストリームが修正されていないことを知って、ビットストリームを処理する。
【0253】
本明細書では、「映像処理」という用語は、映像符号化、映像復号化、映像圧縮、または映像展開を指すことができる。例えば、映像圧縮アルゴリズムは、映像の画素表現から対応するビットストリーム表現(または符号化表現)への変換、またはその逆の変換中に適用されてもよい。現在の映像ブロックのビットストリーム表現は、例えば、構文によって規定されるように、ビットストリーム内の同じ場所または異なる場所に拡散されるビットに対応していてもよい。例えば、1つのマクロブロックは、変換および符号化された誤り残差値の観点から、且つビットストリームにおけるヘッダおよび他のフィールドにおけるビットを使用して符号化されてもよい。さらに、変換中、デコーダは、上記解決策で説明されているように、判定に基づいて、いくつかのフィールドが存在しても存在しなくてもよいという知識を持って、ビットストリームを構文解析してもよい。同様に、エンコーダは、特定のシンタックスフィールドが含まれるべきであるか、又は含まれないべきであるかを判定し、構文フィールドを符号化表現に含めるか、又は符号化表現から除外することによって、それに応じて符号化表現を生成してもよい。
【0254】
以上、説明の目的で本開示の技術の特定の実施形態を説明したが、本発明の範囲から逸脱することなく様々な修正が可能であることは、理解されるであろう。従って、本開示の技術は、添付の特許請求の範囲による場合を除き、限定されない。
【0255】
本特許明細書に記載された主題および機能操作の実装形態は、本明細書に開示された構造およびその構造的等価物を含め、様々なシステム、デジタル電子回路、またはコンピュータソフトウェア、ファームウェア、若しくはハードウェアで実施されてもよく、またはそれらの1つ以上の組み合わせで実施してもよい。本明細書に記載された主題の実装形態は、1つ以上のコンピュータプログラム製品、すなわち、データ処理装置によって実行されるため、又はデータ処理装置の操作を制御するために、有形で非可搬性のコンピュータ可読媒体上に符号化されたコンピュータプログラム命令の1つ以上のモジュールとして実装することができる。このコンピュータ可読媒体は、機械可読記憶装置、機械可読記憶基板、メモリデバイス、機械可読伝播信号をもたらす物質の組成物、又はこれらの1つ以上の組み合わせであってもよい。“データ処理ユニット”又は“データ処理装置”という用語は、例えば、プログラマブル処理装置、コンピュータ、又は複数の処理装置若しくはコンピュータを含め、データを処理するためのすべての装置、デバイス、および機械を含む。この装置は、ハードウェアの他に、当該コンピュータプログラムの実行環境を作るコード、例えば、処理装置ファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはこれらの1つ以上の組み合わせを構成するコードを含むことができる。
【0256】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとも呼ばれる)は、コンパイルされた言語または解釈された言語を含む任意の形式のプログラミング言語で記述することができ、また、それは、スタンドアロンプログラムとして、またはコンピューティング環境で使用するのに適したモジュール、成分、サブルーチン、または他のユニットとして含む任意の形式で展開することができる。コンピュータプログラムは、必ずしもファイルシステムにおけるファイルに対応するとは限らない。プログラムは、他のプログラムまたはデータを保持するファイルの一部(例えば、マークアップ言語文書に格納された1つ以上のスクリプト)に記録されていてもよいし、当該プログラム専用の単一のファイルに記憶されていてもよいし、複数の調整ファイル(例えば、1つ以上のモジュール、サブプログラム、またはコードの一部を格納するファイル)に記憶されていてもよい。1つのコンピュータプログラムを、1つのサイトに位置する1つのコンピュータ、または複数のサイトに分散され通信ネットワークによって相互接続される複数のコンピュータで実行させるように展開することも可能である。
【0257】
本明細書に記載された処理およびロジックフローは、入力データ上で動作し、出力を生成することによって機能を実行するための1つ以上のコンピュータプログラムを実行する1つ以上のプログラマブル処理装置によって行うことができる。処理およびロジックフローはまた、特定用途のロジック回路、例えば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって行うことができ、装置はまた、特別目的のロジック回路として実装することができる。
【0258】
コンピュータプログラムの実行に適した処理装置は、例えば、汎用および専用マイクロ処理装置の両方、並びに任意の種類のデジタルコンピュータの任意の1つ以上の処理装置を含む。一般的に、処理装置は、読み出し専用メモリ又はランダムアクセスメモリ又はその両方から命令及びデータを受信する。コンピュータの本質的な要素は、命令を実行するためのプロセッサと、命令およびデータを記憶するための1つ以上の記憶装置とである。一般的に、コンピュータは、データを記憶するための1つ以上の大容量記憶デバイス、例えば、磁気、光磁気ディスク、または光ディスクを含んでもよく、またはこれらの大容量記憶デバイスからデータを受信するか、またはこれらにデータを転送するように動作可能に結合されてもよい。しかしながら、コンピュータは、このようなデバイスを有する必要はない。コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体は、あらゆる形式の不揮発性メモリ、媒体、およびメモリデバイスを含み、例えば、EPROM、EEPROM、フラッシュメモリデバイス等の半導体メモリデバイスを含む。処理装置およびメモリは、特定用途のロジック回路によって補完されてもよく、または特定用途のロジック回路に組み込まれてもよい。
【0259】
本明細書は、図面とともに、例示のみを目的とするものであり、例示的とは例を意味することが意図される。本明細書で使用される場合、単数形「a」、「an」および「the」は、文脈からそうでないことが明確に示されていない限り、複数形も含むことが意図される。さらに、文脈からそうでないことが明確に示されていない限り、「または」の使用は、「および/または」を含むことが意図される。
【0260】
本特許明細書は多くの詳細を含むが、これらは、任意の発明の範囲又は特許請求の範囲を限定するものと解釈されるべきではなく、むしろ、特定の発明の特定の実施形態に特有であり得る特徴の説明と解釈されるべきである。本特許文献において別個の実施形態の文脈で説明されている特定の特徴は、1つの例において組み合わせて実装してもよい。逆に、1つの例のコンテキストで説明された様々な特徴は、複数の実施形態において別個にまたは任意の適切なサブコンビネーションで実装してもよい。さらに、特徴は、特定の組み合わせで作用するものとして上記に記載され、最初にそのように主張されていてもよいが、主張された組み合わせからの1つ以上の特徴は、場合によっては、組み合わせから抜粋されることができ、主張された組み合わせは、サブコンビネーションまたはサブコンビネーションのバリエーションに向けられてもよい。
【0261】
同様に、動作は図面において特定の順番で示されているが、これは、所望の結果を達成するために、このような動作が示された特定の順番でまたは連続した順番で行われること、または示された全ての動作が行われることを必要とするものと理解されるべきではない。また、本特許明細書に記載されている例における様々なシステムの構成要素の分離は、全ての実施形態においてこのような分離を必要とするものと理解されるべきではない。
【0262】
いくつかの実装形態および例のみが記載されており、この特許文献に記載され図示されているコンテンツに基づいて、他の実施形態、拡張および変形が可能である。
図1
図2A
図2B
図2C
図3
図4A
図4B
図4C
図4D
図5
図6
図7
図8
図9A
図9B
図10
図11A
図11B
図12
図13
図14
図15
図16
図17