(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-04-13
(54)【発明の名称】ビデオストリームにおけるサブ領域パーティションでパディング処理する方法、装置及びコンピュータプログラム
(51)【国際特許分類】
H04N 19/70 20140101AFI20220406BHJP
H04N 19/563 20140101ALI20220406BHJP
【FI】
H04N19/70
H04N19/563
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2021549513
(86)(22)【出願日】2020-09-17
(85)【翻訳文提出日】2021-08-23
(86)【国際出願番号】 US2020051192
(87)【国際公開番号】W WO2021055552
(87)【国際公開日】2021-03-25
(32)【優先日】2019-09-20
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-09-14
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】チョイ,ビョンドゥ
(72)【発明者】
【氏名】ウェンジャー,ステファン
(72)【発明者】
【氏名】リィウ,シャン
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159MA04
5C159MA05
5C159MC11
5C159ME01
5C159PP04
5C159RC11
5C159SS26
5C159UA02
5C159UA05
5C159UA16
(57)【要約】
ビデオ符号化のための方法、システム及びコンピュータシステムが提供される。ラップアラウンドパディング処理に対応する符号化シンタックスエレメントが復号される。少なくとも1つの符号化されたカレントピクチャは、ラップアラウンドパディング処理を使用して復元される。シンタックスエレメントは、ラップアラウンド処理のオフセット値又は左右のパディング幅情報を示す。フラグは、ラップアラウンドパディング処理に対応するシンタックスエレメントがパラメータセットに存在するか否かを示す。参照ピクチャにおける動き補償予測のための画素位置は、クリッピング処理によってラップアラウンドパディング処理に対応するシンタックスエレメントを解釈することにより決定される。
【特許請求の範囲】
【請求項1】
プロセッサが実行するビデオ復号の方法であって、
ラップアラウンドパディング処理に対応する符号化シンタックスエレメントを復号するステップと、
ラップアラウンドパディング処理を使用して、少なくとも1つの符号化されたカレントピクチャを復元するステップと
を含む方法。
【請求項2】
前記シンタックスエレメントは、ラップアラウンド処理のオフセット値又は左右のパディング幅情報を示す、請求項1に記載の方法。
【請求項3】
フラグは、ラップアラウンドパディング処理に対応するシンタックスエレメントがパラメータセットに存在するか否かを示す、請求項2に記載の方法。
【請求項4】
参照ピクチャにおける動き補償予測のための画素位置は、クリッピング処理によってラップアラウンドパディング処理に対応する前記シンタックスエレメントを解釈することにより決定される、請求項3に記載の方法。
【請求項5】
分数画素は、前記決定された画素位置に基づいて、動き補償予測のために補間される、請求項4に記載の方法。
【請求項6】
重複領域は、後処理として継ぎ合わせのアーチファクトを除去するためにブレンディングされる、請求項5に記載の方法。
【請求項7】
前記ラップアラウンドパディング処理は、タイル又はタイルグループ境界において適用される、請求項1乃至6のうちいずれか1項に記載の方法。
【請求項8】
前記カレントピクチャは、動き補償のための参照ピクチャである、請求項1乃至7のうちいずれか1項に記載の方法。
【請求項9】
前記ラップアラウンドパディング処理は、前記カレントピクチャの境界において適用される、請求項8に記載の方法。
【請求項10】
前記ラップアラウンドパディング処理は、水平境界若しくは垂直境界、又は水平境界と垂直境界との双方において適用される、請求項1乃至9のうちいずれか1項に記載の方法。
【請求項11】
ハイレベルのシンタックス構造のフラグは、前記ラップアラウンドパディング処理が水平境界若しくは垂直境界、又は水平境界と垂直境界との双方において適用されるか否かを示す、請求項10に記載の方法。
【請求項12】
ビデオ復号のための装置であって、
コンピュータプログラムを記憶するように構成された1つ以上のメモリと、
前記コンピュータプログラムにアクセスして実行することによって、請求項1乃至11のうちいずれか1項に記載の方法を実現するように構成された1つ以上のプロセッサと
を含む装置。
【請求項13】
ビデオ復号のためのコンピュータプログラムであって、
1つ以上のコンピュータに対して、請求項1乃至11のうちいずれか1項に記載の方法を実行させるコンピュータプログラム。
【請求項14】
プロセッサが実行するビデオ符号化の方法であって、
少なくとも1つの符号化されたカレントピクチャを復元するために使用される、ラップアラウンドパディング処理に対応するシンタックスエレメントを符号化するステップと、
前記シンタックスエレメントを送信するステップと
を含む方法。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願への相互参照]
本願は、2019年9月20日に出願された米国仮特許出願第62/903,635号及び2020年9月14日に出願された米国特許出願第17/019,692号の優先権の利益を主張する。これらの全内容が参照によって本明細書に組み込まれる。
【0002】
[技術分野]
本開示は、概してデータ処理の分野に関し、より詳細にはビデオ符号化及び復号に関する。
【背景技術】
【0003】
動き補償によるインターピクチャ予測を使用するビデオ符号化及び復号は、数十年前から知られている。非圧縮ディジタルビデオは、一連のピクチャで構成でき、各ピクチャは、例えば、1920×1080の輝度サンプル及び関連する色差サンプルの空間次元を有する。一連のピクチャは、例えば、毎秒60ピクチャ又は60Hzの固定又は可変のピクチャレート(フレームレートとしても非公式に知られている)を有することができる。非圧縮ビデオは、かなりのビットレート要件を有する。例えば、サンプル当たり8ビットの1080p60 4:2:0ビデオ(60Hzのフレームレートの1920×1080の輝度サンプル解像度)は、1.5Gbit/sに近い帯域幅を必要とする。1時間のこのようなビデオは、600Gバイトを超える記憶空間を必要とする。
【0004】
ビデオ符号化及び復号の1つの目的は、圧縮を通じて入力ビデオ信号の冗長性を低減できることである。圧縮は、場合によっては2桁以上も上記の帯域幅又は記憶空間の要件を低減するのに役立つことができる。可逆圧縮及び不可逆圧縮の双方並びにこれらの組み合わせを使用することができる。可逆圧縮とは、元の信号の正確なコピーが圧縮された元の信号から復元できる技術を示す。不可逆圧縮を使用する場合、復元された信号は、元の信号と同一ではない可能性があるが、元の信号と復元された信号との間の歪みは、復元された信号を目的のアプリケーションにとって有用にするほど十分に小さい。ビデオの場合、不可逆圧縮が広く使用されている。許容される歪みの量はアプリケーションに依存する。例えば、特定の消費者のストリーミングアプリケーションのユーザは、テレビ配信アプリケーションのユーザよりも高い歪みを許容する可能性がある。達成可能な圧縮比は、より高い許容可能な歪み/許容される歪みがより高い圧縮比をもたらすことができるということを反映できる。
【0005】
ビデオエンコーダ及びデコーダは、例えば、動き補償、変換、量子化及びエントロピー符号化を含むいくつかの広いカテゴリからの技術を利用することができ、これらのうちいくつかについて以下に紹介する。
【0006】
パケットネットワーク上のトランスポートのために符号化ビデオビットストリームをパケットに分割する概念は、数十年間使用されている。初期の段階では、ビデオ符号化標準及び技術は、主にボット指向(bot-oriented)トランスポートに最適化され、ビットストリームを定義している。パケット化は、例えば、リアルタイムトランスポートプロトコル(RTP, Real-time Transport Protocol)ペイロードフォーマットで指定されたシステム層インタフェースで生じる。インターネット上のビデオの大量使用に適したインターネット接続の出現により、ビデオ符号化標準は、ビデオ符号化層(VCL, video coding layer)及びネットワーク抽象化層(NAL, network abstraction layer)の概念的な区別を通じて、その顕著なユースケースを反映している。NALユニットは2003年においてH.264に導入され、それ以来、わずかな修正のみで、特定のビデオ符号化標準及び技術において維持されている。
【0007】
NALユニットは、多くの場合、符号化ビデオシーケンスの全ての先行するNALユニットを必ずしも復号することなく、デコーダが動作できる最小のエンティティと見なすことができる。その範囲において、NALユニットは、選択転送ユニット(SFU, Selective Forwarding Unit)又は多点制御ユニット(MCU, Multipoint Control Unit)のようなメディアアウェアネットワークエレメント(MANE, Media Aware Network Element)によるビットストリームプルーニングを含む、特定の誤り防止技術及び特定のビットストリーム操作技術を可能にする。
【0008】
図1は、H.264(101)及びH.265(102)によるNALユニットヘッダのシンタックス図の関連する部分を示しており、双方の場合においてそれぞれの拡張を伴わない。双方の場合、forbidden_zero_bitは、特定のシステム層環境での開始コードエミュレーション防止のために使用されるゼロビットである。nal_unit_typeシンタックスエレメントは、NALユニットが搬送するデータのタイプを示し、例えば、特定のスライスタイプ、パラメータセットタイプ、補足エンハンスメント情報(SEI, Supplementary Enhancement Information)メッセージ等でもよい。H.265 NALユニットヘッダは、nuh_layer_id及びnuh_temporal_id_plus1を更に含み、これらは、NALユニットが属する符号化ピクチャの空間/SNR及び時間層を示す。
【0009】
NALユニットヘッダは、例えば、他のNALユニットヘッダ、パラメータセット等のようなビットストリーム内の他のデータへの解析依存性を有さない、容易に解析可能な固定長コードワードのみを含むことが分かる。NALユニットヘッダはNALユニットにおける最初のオクテットであるので、MANEはこれらを容易に抽出し、これらを解析し、これらに基づいて動作することができる。対照的に、他のハイレベルのシンタックスエレメント(例えば、スライスヘッダ又はタイルヘッダ)は、パラメータセットコンテキストを維持すること及び/又は可変長又は算術符号化コードポイントの処理を必要とし得るので、MANEにとって容易にはアクセスしにくい。
【0010】
図1に示すNALユニットヘッダは、NALユニットを複数のNALユニットから構成される符号化ピクチャ(例えば、複数のタイル又はスライスを含み、これらのうち少なくとも一部が個々のNALユニットにパケット化される)に関連付けることができる情報を含まないことが更に分かる。
【0011】
RTP(RFC3550)、MPEG-system標準、ISOファイルフォーマット等のような特定のトランスポート技術は、しばしば提示時間(MPEG及びISOファイルフォーマットの場合)又はキャプチャ時間(RTPの場合)のようなタイミング情報の形式で、MANEにより容易にアクセスでき、それぞれのトランスポートユニットを符号化ピクチャに関連付けるのを助けることができる特定の情報を含んでもよい。しかし、これらの情報の意味は、トランスポート/記憶技術によって異なる可能性があり、ビデオ符号化で使用されるピクチャ構造と直接的な関係を有さない可能性がある。したがって、これらの情報は、せいぜいヒューリスティックになる可能性があり、また、NALユニットストリーム内のNALユニットが同じ符号化ピクチャに属するか否かを識別するのに特に適さない可能性がある。
【発明の概要】
【0012】
一実施形態は、ビデオ符号化のための方法、システム及びコンピュータ読み取り可能媒体に関する。一態様によれば、ビデオ符号化のための方法が提供される。当該方法は、ラップアラウンド(wrap-around)パディング処理に対応する符号化シンタックスエレメントを復号するステップを含んでもよい。少なくとも1つの符号化されたカレントピクチャは、ラップアラウンドパディング処理を使用して復元される。シンタックスエレメントは、ラップアラウンド処理のオフセット値又は左右のパディング幅情報を示す。
【0013】
他の態様によれば、ビデオ符号化のためのコンピュータシステムが提供される。コンピュータシステムは、1つ以上のプロセッサと、1つ以上のコンピュータ読み取り可能メモリと、1つ以上のコンピュータ読み取り可能有形記憶デバイスと、1つ以上のメモリのうち少なくとも1つを介して1つ以上のプロセッサのうち少なくとも1つによって実行するために1つ以上の記憶デバイスのうち少なくとも1つに記憶されたプログラム命令とを含み、それにより、コンピュータシステムは方法を実行可能になる。当該方法は、ラップアラウンドパディング処理に対応する符号化シンタックスエレメントを復号するステップを含んでもよい。少なくとも1つの符号化されたカレントピクチャは、ラップアラウンドパディング処理を使用して復元される。シンタックスエレメントは、ラップアラウンド処理のオフセット値又は左右のパディング幅情報を示す。
【0014】
更に他の態様によれば、ビデオ符号化のためのコンピュータ読み取り可能媒体が提供される。コンピュータ読み取り可能媒体は、1つ以上のコンピュータ読み取り可能記憶デバイスと、1つ以上の有形記憶デバイスのうち少なくとも1つに記憶されたプログラム命令とを含み、プログラム命令はプロセッサによって実行可能である。プログラム命令は、ラップアラウンドパディング処理に対応する符号化シンタックスエレメントを復号するステップを含んでもよい方法を実行するようにプロセッサによって実行可能である。少なくとも1つの符号化されたカレントピクチャは、ラップアラウンドパディング処理を使用して復元される。シンタックスエレメントは、ラップアラウンド処理のオフセット値又は左右のパディング幅情報を示す。
【図面の簡単な説明】
【0015】
上記及び他の目的、特徴及び利点は、添付の図面に関連して読まれる例示的な実施形態の以下の詳細な説明から明らかになる。図面は詳細な説明に関連して当業者の理解を容易にする際の明確にするためのものであるので、図面の様々な特徴は縮尺通りではない。
【
図1】H.264及びH.265によるNALユニットヘッダの概略図である。
【
図2】一実施形態による通信システムの簡略化したブロック図の概略図である。
【
図3】一実施形態による通信システムの簡略化したブロック図の概略図である。
【
図4】一実施形態によるデコーダの簡略化したブロック図の概略図である。
【
図5】一実施形態によるエンコーダの簡略化したブロック図の概略図である。
【
図6】一実施形態によるオフセット伝達のシンタックスエレメントの概略図である。
【
図7】一実施形態によるエンコーダのパディング幅を伝達するためのシンタックスエレメントの概略図である。
【
図8】一実施形態による各サブ領域(タイル又はサブピクチャ)のパディング処理の簡略ブロック図の概略図である。
【
図9】一実施形態による各サブピクチャのパディングオフセットを伝達するためのシンタックスエレメントの概略図である。
【
図10】一実施形態による各サブピクチャの統一されたパディングオフセットを伝達するためのシンタックスエレメントの概略図である。
【
図11】一実施形態によるコンピュータシステムの概略図である。
【発明を実施するための形態】
【0016】
特許請求の範囲の構造及び方法の詳細な実施形態が本明細書に開示されているが、開示の実施形態は、単に、様々な形式で具現され得る特許請求の範囲の構造及び方法の例に過ぎないことが理解できる。しかし、これらの構造及び方法は、多くの異なる形式で具現されてもよく、本明細書に記載の例示的な実施形態に限定されるものとして解釈されるべきではない。むしろ、これらの例示的な実施形態は、本開示が完全且つ包括的であり、当該範囲を当業者に十分に伝えるように提供されている。当該説明では、周知の特徴及び技術の詳細は、提示の実施形態を不必要に不明瞭にすることを回避するために省略されることがある。
【0017】
実施形態は、概してデータ処理の分野に関し、より詳細にはビデオ符号化及び復号に関する。以下に説明する例示的な実施形態は、特に、符号化されたシンタックスエレメントの復号に基づくラップアラウンドパディング処理を使用して、符号化されたカレントピクチャを復元するためのシステム、方法及びコンピュータプログラムを提供する。したがって、いくつかの実施形態は、圧縮画像の復元において使用されるシンタックスエレメントの符号化を可能にすることによって、コンピューティングの分野を改善する能力を有する。
【0018】
上記のように、ビデオ符号化及び復号の1つの目的は、圧縮を通じて入力ビデオ信号の冗長性を低減できることである。圧縮は、場合によっては2桁以上も上記の帯域幅又は記憶空間の要件を低減するのに役立つことができる。可逆圧縮及び不可逆圧縮の双方並びにこれらの組み合わせを使用することができる。可逆圧縮とは、元の信号の正確なコピーが圧縮された元の信号から復元できる技術を示す。不可逆圧縮を使用する場合、復元された信号は、元の信号と同一ではない可能性があるが、元の信号と復元された信号との間の歪みは、復元された信号を目的のアプリケーションにとって有用にするほど十分に小さい。ビデオの場合、不可逆圧縮が広く使用されている。許容される歪みの量はアプリケーションに依存する。例えば、特定の消費者のストリーミングアプリケーションのユーザは、テレビ配信アプリケーションのユーザよりも高い歪みを許容する可能性がある。達成可能な圧縮比は、より高い許容可能な歪み/許容される歪みがより高い圧縮比をもたらすことができるということを反映できる。しかし、ピクチャが1つ以上のサブ領域(タイル、スライス又はサブピクチャ)に分割される場合、各サブ領域の境界処理は、符号化効率及び主観的視覚品質に影響を及ぼす可能性がある。各サブ領域境界における境界処理の適応制御は、360媒体処理における重要な要素である。したがって、符号化されたシンタックスエレメントの復号に基づくラップアラウンドパディング処理を使用して、符号化されたカレントピクチャを復元することは有利になり得る。
【0019】
様々な実施形態による方法、装置(システム)及びコンピュータ読み取り可能媒体のフロー図及び/又はブロック図を参照して、本明細書において複数の態様について説明する。フローチャート図及び/又はブロック図の各ブロック、及びフローチャート図及び/又はブロック図のブロックの組み合わせは、コンピュータ読み取り可能プログラム命令によって実装できることが理解される。
【0020】
以下に説明する例示的な実施形態は、符号化されたシンタックスエレメントの復号に基づくラップアラウンドパディング処理を使用して、符号化されたカレントピクチャを復元するシステム、方法及びコンピュータプログラムを提供する。
【0021】
図2は、本開示の一実施形態による通信システム(200)の簡略化したブロック図を示す。当該システム(200)は、ネットワーク(250)を介して相互接続された少なくとも2つの端末(210-220)を含んでもよい。データの一方向伝送のために、第1の端末(210)は、ネットワーク(250)を介して他方の端末(220)に送信するために、ローカル位置においてビデオデータを符号化してもよい。第2の端末(220)は、ネットワーク(250)から他方の端末の符号化されたビデオデータを受信し、符号化ビデオデータを復号し、復元したビデオデータを表示してもよい。一方向データ伝送は、メディア提供アプリケーション等において一般的でもよい。
【0022】
図2は、例えば、テレビ会議中に発生し得る符号化ビデオの双方向伝送をサポートするために提供される第2の対の端末(230、240)を示している。データの双方向伝送のために、各端末(230、240)は、ネットワーク(250)を介して他の端末に送信するために、ローカル位置においてキャプチャされたビデオデータを符号化してもよい。また、各端末(230、240)は、他方の端末によって送信された符号化ビデオデータを受信してもよく、符号化データを復号してもよく、ローカルの表示デバイスに復元されたビデオデータを表示してもよい。
【0023】
図2において、端末(210-240)は、サーバ、パーソナルコンピュータ及びスマートフォンとして示されることがあるが、本開示の原理はこれらに限定されない。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレイヤ及び/又は専用のテレビ会議機器に適用がある。ネットワーク(250)は、例えば、有線及び/又は無線通信ネットワークを含む、端末(210-240)の間で符号化ビデオデータを伝達するいずれかの数のネットワークを表す。通信ネットワーク(250)は、回線交換チャネル及び/又はパケット交換チャネルにおいてデータを交換してもよい。代表的なネットワークは、電気通信ネットワーク、ローカルエリアネットワーク、広域ネットワーク及び/又はインターネットを含む。本説明の目的では、ネットワーク(250)のアーキテクチャ及びトポロジは、本明細書において以下に説明しない限り、本開示の動作には重要ではない。
【0024】
図3は、開示の対象物のアプリケーションの例として、ストリーミング環境におけるビデオエンコーダ及びデコーダの配置を示す。開示の対象物は、例えば、テレビ会議、デジタルTV、デジタルメディア(CD、DVD、メモリスティック等を含む)上の圧縮ビデオの記憶等を含む、他のビデオ可能なアプリケーションにも同様に適用可能である。
【0025】
ストリーミングシステムはキャプチャサブシステム(313)を含んでもよく、当該キャプチャサブシステム(313)は、例えば、非圧縮のビデオサンプルストリーム(302)を生成するビデオソース(301)(例えば、デジタルカメラ)を含んでもよい。符号化ビデオビットストリームと比較したときに高いデータ量であることを強調するために太線として描かれるサンプルストリーム(302)は、カメラ(301)に結合されたエンコーダ(303)によって処理されてもよい。エンコーダ(303)は、以下により詳細に説明するように、開示の対象物の態様を可能にするため或いは実装するために、ハードウェア、ソフトウェア又はこれらの組み合わせを含んでもよい。サンプルストリームと比較したときにより低いデータ量であることを強調するために細線として描かれる符号化ビデオビットストリーム(304)は、将来の使用のためにストリーミングサーバ(305)に記憶されてもよい。1つ以上のストリーミングクライアント(306、308)は、ストリーミングサーバ(305)にアクセスして符号化ビデオビットストリーム(304)のコピー(307、309)を取得してもよい。クライアント(306)は、符号化ビデオビットストリームの入力コピー(307)を復号し、ディスプレイ(312)又は他のレンダリングデバイス(図示せず)上にレンダリングできる出力ビデオサンプルストリーム(311)を生成するビデオデコーダ(310)を含んでもよい。いくつかのストリーミングシステムでは、ビデオビットストリーム(304、307、309)は、特定のビデオ符号化/圧縮標準に従って符号化されてもよい。これらの標準の例は、ITU-T勧告H.265を含む。開発中のビデオ符号化標準は、VVC(Versatile Video Coding)として非公式に知られている。開示の対象物は、VVCの背景において使用されてもよい。
【0026】
図4は、本開示の一実施形態によるビデオデコーダ(310)の機能ブロック図を示す。
【0027】
受信機(410)は、デコーダ(310)によって復号されるべき1つ以上の符号化ビデオシーケンスを受信してもよく、同一又は他の実施形態では、一度に1つの符号化ビデオシーケンスを受信してもよく、各符号化ビデオシーケンスの復号は、他の符号化ビデオシーケンスとは独立している。符号化ビデオシーケンスは、チャネル(412)から受信されてもよく、当該チャネルは、符号化ビデオデータを記憶する記憶デバイスへのハードウェア/ソフトウェアリンクでもよい。受信機(410)は、符号化ビデオデータを、他のデータ(例えば、符号化オーディオデータ及び/又は補助データストリーム)と共に受信してもよく、これらは、それぞれの使用エンティティ(図示せず)に転送されてもよい。受信機(410)は、符号化ビデオシーケンスを他のデータから分離してもよい。ネットワークジッタを防止するために、バッファメモリ(415)は、受信機(410)とエントロピーデコーダ/パーサ(420)(以下、「パーサ」という)との間に結合されてもよい。受信機(410)が、十分な帯域幅及び制御可能性を有する記憶/転送デバイスから、或いは、アイソクロナスネットワークからデータを受信している場合、バッファ(415)は必要なくてもよく或いは小さくすることができる。インターネットのようなベストエフォート型パケットネットワークでの使用については、バッファ(415)が必要とされてもよく、比較的大きくすることができ、有利には適応的なサイズとすることができる。
【0028】
ビデオデコーダ(310)は、エントロピー符号化されたビデオシーケンスからシンボル(421)を復元するためのパーサ(420)を含んでもよい。これらのシンボルのカテゴリは、デコーダ(310)の動作を管理するために使用される情報を含み、ディスプレイ(312)のようなレンダリングデバイスを制御するための情報を潜在的に含む。当該レンダリングデバイスは、
図3に示すように、デコーダの一体的な部分ではないが、デコーダに結合されてもよい。レンダリングデバイスの制御情報は、補足エンハンスメント情報(SEI, Supplementary Enhancement Information)(SEIメッセージ)又はビデオユーザビリティ情報(VUI, Video Usability Information)パラメータセットフラグメント(図示せず)の形式でもよい。パーサ(420)は、受信した符号化ビデオシーケンスを解析/エントロピー復号してもよい。符号化ビデオシーケンスの符号化は、ビデオ符号化技術又は標準に従ってもよく、可変長符号化、ハフマン符号化、コンテキスト感度を伴う或いは伴わない算術符号化等を含む、当業者に周知の原理に従ってもよい。パーサ(420)は、グループに対応する少なくとも1つのパラメータに基づいて、符号化ビデオシーケンスから、ビデオデコーダ内の画素のサブグループのうち少なくとも1つについてのサブグループパラメータのセットを抽出してもよい。サブグループは、グループオブピクチャ(GOP, Group of Picture)、ピクチャ、タイル、スライス、マクロブロック、符号化ユニット(CU, Coding Unit)、ブロック、変換ユニット(TU, Transformation Unit)、予測ユニット(PU, Prediction Unit)等を含んでもよい。また、エントロピーデコーダ/パーサは、符号化ビデオシーケンスから、変換係数、量子化パラメータ値、動きベクトル等のような情報を抽出してもよい。
【0029】
パーサ(420)は、シンボル(421)を生成するために、バッファ(415)から受信したビデオシーケンスに対してエントロピー復号/解析動作を実行してもよい。
【0030】
シンボル(421)の復元には、符号化ビデオピクチャ又はその部分のタイプ(例えば、インターピクチャ及びイントラピクチャ、インターブロック及びイントラブロック)及び他の要因に依存して、複数の異なるユニットが関与してもよい。どのユニットがどのように関与するかは、パーサ(420)によって符号化ビデオシーケンスから解析されたサブグループ制御情報によって制御されてもよい。パーサ(420)と以下の複数ユニットとの間のこのようなサブグループ制御情報の流れは、明確にするために図示されていない。
【0031】
上記の機能ブロックの他に、デコーダ(310)は、概念的に、以下に説明するような複数の機能ユニットに細分されてもよい。商用的な制約の下で動作する実用的な実装では、これらのユニットの多くは互いに密接に相互作用し、少なくとも部分的に互いに統合されてもよい。しかし、開示の対象物を説明する目的で、以下の機能ユニットに概念的に細分することが適切である。
【0032】
第1のユニットは、スケーラ/逆変換ユニット(451)である。スケーラ/逆変換ユニット(451)は、パーサ(420)からシンボル(421)として、制御情報(どの変換を使用するべきか、ブロックサイズ、量子化係数、量子化スケーリング行列等を含む)と共に、量子化された変換係数を受信する。スケーラ/逆変換ユニットは、アグリゲータ(455)に入力できるサンプル値を含むブロックを出力してもよい。
【0033】
場合によっては、スケーラ/逆変換(451)の出力サンプルは、イントラ符号化ブロックに関連してもよく、すなわち、前に復元されたピクチャからの予測情報を使用していないが、カレントピクチャの前に復元された部分からの予測情報を使用できるブロックに関連してもよい。このような予測情報は、イントラピクチャ予測ユニット(452)によって提供されてもよい。場合によっては、イントラピクチャ予測ユニット(452)は、(部分的に復元された)カレントピクチャ(458)から取り出された周囲の既に復元された情報を使用して、復元中のブロックの同じサイズ及び形状のブロックを生成する。場合によっては、アグリゲータ(455)は、サンプル毎に、イントラ予測ユニット(452)が生成した予測情報を、スケーラ/逆変換ユニット(451)によって提供された出力サンプル情報に追加する。
【0034】
他の場合には、スケーラ/逆変換ユニット(451)の出力サンプルは、インター符号化されて潜在的に動き補償されたブロックに関連してもよい。このような場合、動き補償予測ユニット(453)は、参照ピクチャメモリ(457)にアクセスして、予測に使用されるサンプルを取り出してもよい。ブロックに関連するシンボル(421)に従って、取り出されたサンプルを動き補償した後に、これらのサンプルは、出力サンプル情報を生成するために、アグリゲータ(455)によってスケーラ/逆変換ユニットの出力(この場合には、残差サンプル又は残差信号と呼ばれる)に追加されてもよい。動き補償ユニットに利用可能な、動き補償ユニットが予測サンプルを取り出す参照ピクチャメモリ内のアドレスは、例えば、X、Y及び参照ピクチャ成分を有することができるシンボル(421)の形式で、動きベクトルによって制御されてもよい。また、動き補償は、サブサンプルの正確な動きベクトルが使用されているときに参照ピクチャメモリから取り出されるサンプル値の補間、動きベクトル予測メカニズム等を含んでもよい。
【0035】
アグリゲータ(455)の出力サンプルは、ループフィルタユニット(456)内の様々なループフィルタリング技術を受けてもよい。ビデオ圧縮技術はループ内フィルタ技術を含んでもよく、当該ループ内フィルタ技術は、符号化ビデオビットストリームに含まれるパラメータによって制御され、パーサ(420)からシンボル(421)としてループフィルタユニット(456)に利用可能にされるが、符号化ピクチャ又は符号化ビデオシーケンスの(復号順に)前の部分の復号の間に取得されたメタ情報に応答すると共に、前に復元されてループフィルタリングされたサンプル値にも応答してもよい。
【0036】
ループフィルタユニット(456)の出力はサンプルストリームでもよく、当該サンプルストリームは、レンダリングデバイス(312)に出力されると共に、将来のインターピクチャ予測に使用するために参照ピクチャメモリ(456)に記憶されてもよい。
【0037】
特定の符号化ピクチャは、完全に復元されると、将来の予測のための参照ピクチャとして使用されてもよい。符号化ピクチャが完全に復元され、符号化ピクチャが(例えば、パーサ(420)によって)参照ピクチャとして識別されると、カレント参照ピクチャ(456)は参照ピクチャバッファ(457)の一部となってもよく、新たなカレントピクチャメモリが、後続の符号化ピクチャの復元を開始する前に再割り当てされてもよい。
【0038】
ビデオデコーダ(420)は、ITU-T Rec. H.265のような標準に文書化され得る所定のビデオ圧縮技術に従って復号動作を実行してもよい。符号化ビデオシーケンスがビデオ圧縮技術文書又は標準において指定されており、特にこれらのプロファイル文書に指定されているビデオ圧縮技術又は標準のシンタックスに従うという意味で、符号化ビデオシーケンスは、使用されているビデオ圧縮技術又は標準によって指定されたシンタックスに適合してもよい。また、コンプライアンスのために必要なことは、符号化ビデオシーケンスの複雑さが、ビデオ圧縮技術又は標準のレベルによって定義される範囲内にあることである。場合によっては、レベルは、最大ピクチャサイズ、最大フレームレート、最大復元サンプルレート(例えば、毎秒当たりのメガサンプル単位で測定される)、最大参照ピクチャサイズ等を制限する。場合によっては、レベルによって設定される制限は、仮想参照デコーダ(HRD, Hypothetical Reference Decoder)仕様及び符号化ビデオシーケンスで伝達されるHRDバッファ管理についてのメタデータを通じて更に制限されてもよい。
【0039】
一実施形態では、受信機(410)は、符号化ビデオと共に更なる(冗長な)データを受信してもよい。更なるデータは、符号化ビデオシーケンスの一部として含まれてもよい。更なるデータは、データを適切に復号するために、及び/又は元のビデオデータをより正確に復元するために、ビデオデコーダ(420)によって使用されてもよい。更なるデータは、例えば、時間、空間又SNRエンハンスメント層、冗長スライス、冗長ピクチャ、前方誤り訂正コード等の形式でもよい。
【0040】
図5は、本開示の一実施形態によるビデオエンコーダ(303)の機能ブロック図でもよい。
【0041】
エンコーダ(303)は、ビデオソース(301)(エンコーダの一部ではない)からビデオサンプルを受信してもよく、当該ビデオソース(301)は、エンコーダ(303)によって符号化されるべきビデオ画像をキャプチャしてもよい。
【0042】
ビデオソース(301)は、デジタルビデオサンプルストリームの形式でエンコーダ(303)によって符号化されるべきソースビデオシーケンスを提供してもよく、当該デジタルビデオサンプルストリームは、いずれかの適切なビット深度(例えば、8ビット、10ビット、12ビット等)、いずれかの色空間(例えば、BT.601 Y CrCB、RGB等)及びいずれかの適切なサンプリング構造(例えば、Y CrCb 4:2:0、Y CrCb 4:4:4)でもよい。メディア提供システムにおいて、ビデオソース(301)は、事前に準備されたビデオを記憶する記憶デバイスでもよい。テレビ会議システムでは、ビデオソース(303)は、ローカル画像情報をビデオシーケンスとしてキャプチャするカメラでもよい。ビデオデータは、順に見たときに動きを伝える複数の個々のピクチャとして提供されてもよい。ピクチャ自体は、画素の空間配列として構成されてもよく、各画素は、使用中のサンプリング構造、色空間等に依存して、1つ以上のサンプルを含んでもよい。当業者は、画素とサンプルとの関係を容易に理解することができる。以下の説明は、サンプルに焦点を当てる。
【0043】
一実施形態によれば、エンコーダ(303)は、リアルタイムで或いはアプリケーションによって要求されるいずれかの他の時間制約下で、ソースビデオシーケンスのピクチャを、符号化ビデオシーケンス(543)に符号化及び圧縮してもよい。適切な符号化速度を実現することは、コントローラ(550)の1つの機能である。コントローラは、以下に説明するように、他の機能ユニットを制御し、これらのユニットに機能的に結合される。結合は、明確にするために図示されていない。コントローラによって設定されるパラメータは、レート制御関連パラメータ(ピクチャスキップ、量子化、レート歪み最適化技術のラムダ値等)、ピクチャサイズ、グループオブピクチャ(GOP)のレイアウト、最大動きベクトル探索範囲等を含んでもよい。当業者は、特定のシステム設計のために最適化されたビデオエンコーダ(303)に関連し得るコントローラ(550)の他の機能を容易に認識できる。
【0044】
いくつかのビデオエンコーダは、当業者が「符号化ループ(coding loop)」として容易に認識するもので動作する。非常に簡略化した説明として、符号化ループは、エンコーダ(530)の符号化部分(以下、「ソースコーダ」という)(符号化されるべき入力ピクチャ及び参照ピクチャに基づいて、シンボルを生成することを担う)と、エンコーダ(303)に埋め込まれた(ローカル)デコーダ(533)とで構成されてもよい。デコーダ(533)は、(リモート)デコーダが生成するのと同様に(シンボルと符号化ビデオビットストリームとの間のいずれかの圧縮が、開示の対象物において検討されるビデオ圧縮技術において可逆であるように)、サンプルデータを生成するようにシンボルを復元する。その復元されたサンプルストリームは、参照ピクチャメモリ(534)に入力される。シンボルストリームの復号は、デコーダの位置(ローカル又はリモート)と独立したビット単位の正確な結果をもたらすので、参照ピクチャバッファの内容も、ローカルエンコーダとリモートエンコーダとの間でビット単位で正確である。言い換えると、エンコーダの予測部分は、デコーダが復号中に予測を使用するときに「見る」のと全く同じサンプル値を参照ピクチャサンプルとして「見る」。参照ピクチャの同期(例えば、チャネルエラーの理由で同期が維持できない場合の結果として生じるドリフトを含む)のこの基本原理は、当業者に周知である。
【0045】
「ローカル」デコーダ(533)の動作は、「リモート」デコーダ(310)と同じでもよく、これは、
図4に関連して上記において既に詳細に説明した。しかし、
図4を簡単に参照すると、シンボルが利用可能であり、エントロピーコーダ(545)及びパーサ(420)による符号化ビデオシーケンスへのシンボルの符号化/復号が可逆になり得るので、チャネル(412)、受信機(410)、バッファ(415)及びパーサ(420)を含むデコーダ(310)のエントロピー復号部分は、ローカルデコーダ(533)に完全には実装されなくてもよい。
【0046】
この時点で行うことができる考察は、デコーダ内に存在する解析/エントロピー復号を除く如何なるデコーダ技術も、必然的に対応するエンコーダ内に実質的に同一の機能形式で存在する必要があることである。このため、開示の対象物はデコーダ動作に焦点を当てる。エンコーダ技術の説明は、包括的に記載されるデコーダ技術の逆であるので、省略できる。特定の領域においてのみ、より詳細な説明が必要であり、以下に提供される。
【0047】
その動作の一部として、ソースコーダ(530)は、動き補償予測符号化を実行してもよく、当該動き補償予測符号化は、「参照フレーム」として指定されたビデオシーケンスからの1つ以上の前に符号化されたフレームを参照して入力フレームを予測的に符号化する。このように、符号化エンジン(532)は、入力フレームの画素ブロックと、入力フレームに対する予測参照として選択され得る参照フレームの画素ブロックとの間の差を符号化する。
【0048】
ローカルビデオデコーダ(533)は、ソースコーダ(530)によって生成されたシンボルに基づいて、参照フレームとして指定され得るフレームの符号化ビデオデータを復号してもよい。符号化エンジン(532)の動作は、有利には、不可逆処理でもよい。符号化ビデオデータがビデオデコーダ(
図5に図示せず)で復号され得る場合、復元されたビデオシーケンスは、典型的には、いくつかのエラーを伴うソースビデオシーケンスのレプリカになり得る。ローカルビデオデコーダ(533)は、参照フレームに対してビデオデコーダによって実行され得る復号処理を複製し、復元された参照フレームを参照ピクチャキャッシュ(534)に記憶させてもよい。このように、エンコーダ(303)は、遠端のビデオデコーダによって取得される(送信エラーのない)復元された参照フレームとして、共通の内容を有する復元された参照フレームのコピーをローカルに記憶してもよい。
【0049】
予測器(535)は、符号化エンジン(532)のための予測探索を実行してもよい。すなわち、符号化されるべき新たなフレームについて、予測器(535)は、(候補参照画素ブロックとしての)サンプルデータ又は特定のメタデータ(参照ピクチャ動きベクトル、ブロック形状等)を求めて参照ピクチャメモリ(534)を検索してもよい。これらは、新たなピクチャについての適切な予測参照として機能してもよい。予測器(535)は、適切な予測参照を検出するために、サンプルブロック毎画素ブロック毎(sample block-by-pixel block)に動作してもよい。場合によっては、予測器(535)によって取得された検索結果によって決定された入力ピクチャは、参照ピクチャメモリ(534)に記憶された複数の参照ピクチャから引き出された予測参照を有してもよい。
【0050】
コントローラ(550)は、例えば、ビデオデータを符号化するために使用されるパラメータ及びサブグループパラメータの設定を含む、ビデオコーダ(530)の符号化動作を管理してもよい。
【0051】
全ての上記の機能ユニットの出力は、エントロピーコーダ(545)におけるエントロピー符号化を受けてもよい。エントロピーコーダは、例えば、ハフマン符号化、可変長符号化、算術符号化等のような当業者に既知の技術に従って、シンボルを可逆圧縮することによって、様々な機能ユニットによって生成されたシンボルを符号化ビデオシーケンスに変換する。
【0052】
送信機(540)は、エントロピーコーダ(545)によって生成された符号化ビデオシーケンスをバッファして、通信チャネル(560)を介した送信の準備をしてもよく、当該通信チャネル(560)は、符号化ビデオデータを記憶する記憶デバイスへのハードウェア/ソフトウェアリンクでもよい。送信機(540)は、ビデオコーダ(530)からの符号化ビデオデータを、送信されるべき他のデータ(例えば、符号化オーディオデータ及び/又は補助データストリーム(図示せず))とマージしてもよい。
【0053】
コントローラ(550)は、エンコーダ(303)の動作を管理してもよい。符号化中に、コントローラ(550)は、各符号化ピクチャに、特定の符号化ピクチャタイプを割り当ててもよい。当該符号化ピクチャタイプは、各ピクチャに適用され得る符号化技術に影響を与えてもよい。例えば、ピクチャは、しばしば、以下のフレームタイプのうち1つとして割り当てられてもよい。
【0054】
イントラピクチャ(Iピクチャ)は、予測のソースとしてシーケンス内の他のピクチャを使用せずに、符号化及び復号され得るものでもよい。いくつかのビデオコーデックは、例えば、独立デコーダリフレッシュ(IDR, Independent Decoder Refresh)ピクチャを含む、異なるタイプのイントラピクチャを許容する。当業者は、Iピクチャのこれらの変形例と、それぞれの用途及び特徴を認識する。
【0055】
予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために、最大で1つの動きベクトル及び参照インデックスを使用して、イントラ予測又はインター予測を使用して符号化及び復号され得るものでもよい。
【0056】
双方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために、最大で2つの動きベクトル及び参照インデックスを使用して、イントラ予測又はインター予測を使用して符号化及び復号され得るものでもよい。同様に、複数の予測ピクチャは、単一のブロックの復元のために、2つより多くの参照ピクチャ及び関連するメタデータを使用してもよい。
【0057】
一般的に、ソースピクチャは、空間的に複数のサンプルブロック(例えば、それぞれ4×4、8×8、4×8又は16×16のサンプルのブロック)に細分され、ブロック毎に符号化されてもよい。ブロックは、ブロックのそれぞれのピクチャに適用される符号化割り当てによって決定される通り、他の(既に符号化された)ブロックを参照して予測的に符号化されてもよい。例えば、Iピクチャのブロックは、非予測的に符号化されてもよく、或いは、同じピクチャの既に符号化されたブロックを参照して予測的に符号化されてもよい(空間予測又はイントラ予測)。Pピクチャの画素ブロックは、1つ前に符号化された参照ピクチャを参照して、空間予測又は時間予測を介して非予測的に符号化されてもよい。Bピクチャのブロックは、1つ又は2つ前に符号化された参照ピクチャを参照して、空間予測又は時間予測を介して予測的に符号化されてもよい。
【0058】
ビデオコーダ(303)は、ITU-T Rec. H.265のような所定のビデオ符号化技術又は標準に従って符号化動作を実行してもよい。その動作において、ビデオコーダ(303)は、入力ビデオシーケンスにおける時間的及び空間的冗長性を利用する予測符号化動作を含む様々な圧縮動作を実行してもよい。したがって、符号化ビデオデータは、使用されているビデオ符号化技術又は標準によって指定されたシンタックスに適合してもよい。
【0059】
一実施形態では、送信機(540)は、符号化ビデオと共に更なるデータを送信してもよい。ビデオコーダ(530)は、符号化ビデオシーケンスの一部としてこのようなデータを含んでもよい。更なるデータは、時間/空間/SNRエンハンスメント層、冗長ピクチャ及びスライス、補足エンハンスメント情報(SEI, Supplementary Enhancement Information)メッセージ、ビジュアルユーザビリティ情報(VUI, Visual Usability Information)パラメータセットフラグメント等のような他の形式の冗長データを含んでもよい。
【0060】
一実施形態では、360ビデオは、複数のレンズを有する一式のカメラ又はカメラデバイスによってキャプチャされる。カメラは、典型的には、カメラセットの中心点の周りの全方向をカバーする。同じ時点のピクチャはステッチされ、場合によっては回転され、投影され、ピクチャ上にマッピングされる。パッキングされたピクチャは、特定のメディアコンテナファイルフォーマットに従って符号化ビデオビットストリームに符号化され、ストリーミングされる。当該ファイルは、投影情報及びパッキング情報のようなメタデータを含む。
【0061】
一実施形態では、360ビデオは、正距円筒図法(ERP, equirectangular projection)を使用して2Dビデオに投影されてもよい。ERP投影は、継ぎ合わせのアーチファクト(seam artifact)を生じる可能性がある。パディングERP(PERP, padded ERP)フォーマットは、ERPピクチャの左右の境界を包含する復元ビューポートにおける継ぎ合わせのアーチファクトを効果的に低減し得る。しかし、パディング及びブレンディングは、継ぎ合わせの問題を完全に解決するのに十分ではない可能性がある。
【0062】
一実施形態では、継ぎ合わせのアーチファクトを低減するために、水平幾何学パディングがERP又はPERPに適用されてもよい。PERPについてのパディング処理は、パディングされた領域のサイズを考慮するために、オフセットがピクチャ幅の代わりにパディングされていないERP幅に基づいてもよいことを除いて、ERPの場合と同じでもよい。参照ブロックが左(右)の参照ピクチャ境界の外側にある場合、これは、ERP幅だけ右(左)にシフトされた「ラップアラウンド(wrapped-around)」参照ブロックに置き換えられてもよい。従来の繰り返しパディングは、垂直方向に使用されてもよい。左右のパディング領域のブレンディングは、後処理動作としてループから外される。
【0063】
一実施形態では、ERP及びPERPフォーマットについての参照ピクチャの水平幾何学パディングを可能にするシンタックスが
図6に示されている。
【0064】
1に等しいsps_ref_wrapaund_enabled_flag(602)は、水平ラップアラウンド動き補償がインター予測に使用されることを指定する。0に等しいsps_ref_wrapaund_enabled_flagは、この動き補償方法が適用されないことを指定する。
【0065】
ref_wraparound_offset(603)は、水平ラップアラウンド位置を計算するために使用される輝度サンプルにおけるオフセットを指定する。ref_wraparound_offsetは、pic_width_in_luma_samples-1よりも大きいものとし、pic_width_in_luma_samplesよりも大きくないものとし、MinCbSizeYの整数倍であるものとする。
【0066】
一実施形態では、ERP及びPERPフォーマットについての参照ピクチャの水平幾何学パディングを可能にするシンタックスエレメントが
図7に示されている。
【0067】
1に等しいsps_ref_wraparound_enabled_flag(702)は、水平ラップアラウンド動き補償がインター予測に使用されることを指定する。0に等しいsps_ref_wraparound_enabled_flagは、この動き補償方法が適用されないことを指定する。
【0068】
left_wraparound_padding_width(703)は、輝度サンプルにおける左側パディング領域の幅を指定する。ref_wraparound_offsetは0以上であるものとし、pic_width_in_luma_samples/2よりも大きくないものとし、MinCbSizeYの整数倍であるものとする。
【0069】
right_wraparound_padding_width(704)は、輝度サンプルにおける右側パディング領域の幅を指定する。ref_wraparound_offsetは0以上であるものとし、pic_width_in_luma_samples/2よりも大きくないものとし、MinCbSizeYの整数倍であるものとする。
【0070】
次に
図8を参照すると、ビデオデータを符号化するための方法900のステップを示す動作フローチャートが示されている。
【0071】
901において、方法900は、パラメータセットを解析することを含む。
【0072】
902において、方法900は、ピクチャ分割情報を復号することを含む。
【0073】
903において、方法900は、パディングがサブ領域の境界に適用されるか否かを決定することを含む。
【0074】
904において、方法900は、パディングがサブ領域の境界に適用される場合、パディングタイプを解析することを含む。
【0075】
905において、方法900は、パディングがサブ領域の境界に適用されない場合、パディングなしで各サブ領域を復号することを含む。
【0076】
906において、方法900は、ラップアラウンドパディングが適用されるか否かを決定することを含む。
【0077】
907において、方法900は、ラップアラウンドパディングが適用される場合、ラップアラウンドパディングでサブ領域の境界をパディングすることを含む。
【0078】
908において、方法900は、ラップアラウンドパディングが適用されない場合、非ラップアラウンドパディングでサブ領域の境界をパディングすることを含む。
【0079】
一実施形態では、ラップアラウンドオフセット値は、以下の導出処理によって取得されてもよい。
【0080】
ref_wraparound_offsetが存在する場合、
wrapAroundOffset=ref_wraparound_offset
そうでなく、left_wraparound_padding_width及びright_wraparound_padding_widthが存在する場合、
wrapAroundOffset=pic_width_in_luma_samples-(left_wraparound_padding_width+right_wraparound_padding_width)
それ以外の場合、
wrapAroundOffset=pic_width_in_luma_samples
一実施形態では、ERP及びPERPフォーマットについての参照ピクチャの水平幾何学パディングを可能にするために、輝度及び色差サンプル補間処理が修正されてもよい。
【0081】
【数1】
輝度サンプル補間処理。この処理への入力は、全サンプル単位における輝度位置(xInt
L,yInt
L)と、分数サンプル単位における輝度位置(xFrac
L,yFrac
L)と、輝度参照サンプルアレイrefPicLX
Lとを含んでもよい。この処理の出力は、予測輝度サンプル値preSampleLX
Lを含んでもよい。
【0082】
変数shift1、shift2及びshift3は以下のように導出される。変数shift1はMin(4,BitDepthY-8)に等しく設定され、変数shift2は6に等しく設定され、変数shift3はMax(2,14-BitDepthY)に等しく設定される。変数picWはpic_width_in_luma_samplesに等しく設定され、変数picHはpic_height_in_luma_samplesに等しく設定される。変数xOffsetはwrapAroundOffsetに等しく設定される。xFracL又はyFracLに等しい各1/16分数サンプル位置pについての輝度補間フィルタ係数fL[p]が指定されてもよい。
【0083】
予測輝度サンプル値predSampleLXLは以下のように導出される。xFracL及びyFracLの双方が0に等しい場合、以下が適用される。sps_ref_wraparound_enabled_flagが0に等しい場合、predSampleLXLの値は、predSampleLXL=refPicLXL[Clip3(0,picW-1,xIntL)][Clip3(0,picH-1,yIntL)]<<shift3として導出される。そうでない場合、predSampleLXLの値は、predSampleLXL=refPicLXL[ClipH(xOffset,picW,xIntL)][Clip3(0,picH-1,yIntL)]<<shift3として導出される。そうでなく、xFracLが0に等しくなく、yFracLが0に等しい場合、以下が適用される。yPosLの値は、yPosL=Clip3(0,picH-1,yIntL)として導出される。
【0084】
sps_ref_wraparound_enabled_flagが0である場合、predSampleLXLの値は以下のように導出される。
predSampleLXL=(fL[xFracL][0]*refPicLXL[Clip3(0,picW-1,xIntL-3)][yPosL]+
fL[xFracL][1]*refPicLXL[Clip3(0,picW-1,xIntL-2)][yPosL]+
fL[xFracL][2]*refPicLXL[Clip3(0,picW-1,xIntL-1)][yPosL]+
fL[xFracL][3]*refPicLXL[Clip3(0,picW-1,xIntL)][yPosL]+
fL[xFracL][4]*refPicLXL[Clip3(0,picW-1,xIntL+1)][yPosL]+
fL[xFracL][5]*refPicLXL[Clip3(0,picW-1,xIntL+2)][yPosL]+
fL[xFracL][6]*refPicLXL[Clip3(0,picW-1,xIntL+3)][yPosL]+
fL[xFracL][7]*refPicLXL[Clip3(0,picW-1,xIntL+4)][yPosL])>>shift1
そうでない場合、predSampleLXLの値は以下のように導出される。
predSampleLXL=(fL[xFracL][0]*refPicLXL[ClipH(xOffset,picW,xIntL-3)][yPosL]+
fL[xFracL][1]*refPicLXL[ClipH(xOffset,picW,xIntL-2)][yPosL]+
fL[xFracL][2]*refPicLXL[ClipH(xOffset,picW,xIntL-1)][yPosL]+
fL[xFracL][3]*refPicLXL[ClipH(xOffset,picW,xIntL)][yPosL]+
fL[xFracL][4]*refPicLXL[ClipH(xOffset,picW,xIntL+1)][yPosL]+
fL[xFracL][5]*refPicLXL[ClipH(xOffset,picW,xIntL+2)][yPosL]+
fL[xFracL][6]*refPicLXL[ClipH(xOffset,picW,xIntL+3)][yPosL]+
fL[xFracL][7]*refPicLXL[ClipH(xOffset,picW,xIntL+4)][yPosL])>>shift
そうでなく、xFracLが0に等しく、yFracLが0に等しくない場合、predSampleLXLの値は以下のように導出される。sps_ref_wraparound_enabled_flagが0に等しい場合、xPosLの値は、xPosL=Clip3(0,picW-1,xIntL)として導出される。そうでない場合、xPosLの値は、xPosL=ClipH(xOffset,picW,xIntL)として導出される。
【0085】
予測輝度サンプル値predSampleLXLは以下のように導出される。
predSampleLXL=(fL[yFracL][0]*refPicLXL[xPosL][Clip3(0,picH-1,yIntL-3)]+
fL[yFracL][1]*refPicLXL[xPosL][Clip3(0,picH-1,yIntL-2)]+
fL[yFracL][2]*refPicLXL[xPosL][Clip3(0,picH-1,yIntL-1)]+
fL[yFracL][3]*refPicLXL[xPosL][Clip3(0,picH-1,yIntL)]+
fL[yFracL][4]*refPicLXL[xPosL][Clip3(0,picH-1,yIntL+1)]+
fL[yFracL][5]*refPicLXL[xPosL][Clip3(0,picH-1,yIntL+2)]+
fL[yFracL][6]*refPicLXL[xPosL][Clip3(0,picH-1,yIntL+3)]+
fL[yFracL][7]*refPicLXL[xPosL][Clip3(0,picH-1,yIntL+4)])>>shift1
そうでなく、xFracLが0に等しくなく、yFracLが0に等しくない場合、predSampleLXLの値は以下のように導出される。sps_ref_wraparound_enabled_flagが0に等しい場合、サンプルアレイtemp[n](n=0..7)は以下のように導出される。
yPosL=Clip3(0,picH-1,yIntL+n-3)
temp[n]=(fL[xFracL][0]*refPicLXL[Clip3(0,picW-1,xIntL-3)][yPosL]+
fL[xFracL][1]*refPicLXL[Clip3(0,picW-1,xIntL-2)][yPosL]+
fL[xFracL][2]*refPicLXL[Clip3(0,picW-1,xIntL-1)][yPosL]+
fL[xFracL][3]*refPicLXL[Clip3(0,picW-1,xIntL)][yPosL]+
fL[xFracL][4]*refPicLXL[Clip3(0,picW-1,xIntL+1)][yPosL]+
fL[xFracL][5]*refPicLXL[Clip3(0,picW-1,xIntL+2)][yPosL]+
fL[xFracL][6]*refPicLXL[Clip3(0,picW-1,xIntL+3)][yPosL]+
fL[xFracL][7]*refPicLXL[Clip3(0,picW-1,xIntL+4)][yPosL])>>shift1
そうでない場合、サンプルアレイtemp[n](n=0..7)は以下のように導出される。
yPosL=Clip3(0,picH-1,yIntL+n-3)
temp[n]=(fL[xFracL][0]*refPicLXL[ClipH(xOffset,picW,xIntL-3)][yPosL]+
fL[xFracL][1]*refPicLXL[ClipH(xOffset,picW,xIntL-2)][yPosL]+
fL[xFracL][2]*refPicLXL[ClipH(xOffset,picW,xIntL-1)][yPosL]+
fL[xFracL][3]*refPicLXL[ClipH(xOffset,picW,xIntL)][yPosL]+
fL[xFracL][4]*refPicLXL[ClipH(xOffset,picW,xIntL+1)][yPosL]+
fL[xFracL][5]*refPicLXL[ClipH(xOffset,picW,xIntL+2)][yPosL]+
fL[xFracL][6]*refPicLXL[ClipH(xOffset,picW,xIntL+3)][yPosL]+
fL[xFracL][7]*refPicLXL[ClipH(xOffset,picW,xIntL+4)][yPosL])>>shift1
予測輝度サンプル値predSampleLXLは以下のように導出される。
predSampleLXL=(fL[yFracL][0]*temp[0]+
fL[yFracL][1]*temp[1]+
fL[yFracL][2]*temp[2]+
fL[yFracL][3]*temp[3]+
fL[yFracL][4]*temp[4]+
fL[yFracL][5]*temp[5]+
fL[yFracL][6]*temp[6]+
fL[yFracL][7]*temp[7])>>shift2
色差サンプル補間処理。この処理への入力は、全サンプル単位における色差位置(xIntC,yIntC)と、1/32分数サンプル単位における色差位置(xFracC,yFracC)と、色差参照サンプルアレイrefPicLXCとを含んでもよい。この処理の出力は、予測色差サンプル値predSampleLXCを含んでもよい。
【0086】
変数shift1、shift2及びshift3は以下のように導出される。変数shift1はMin(4,BitDepthC-8)に等しく設定され、変数shift2は6に等しく設定され、変数shift3はMax(2,14-BitDepthC)に等しく設定される。変数picWCはpic_width_in_luma_samples/SubWidthCに等しく設定され、変数picHCはpic_height_in_luma_samples/SubHeightCに等しく設定される。xFracC又はyFracCに等しい各1/32分数サンプル位置pについての輝度補間フィルタ係数fC[p]が指定されてもよい。
【0087】
予測輝度サンプル値predSampleLXCは以下のように導出される。xFracC及びyFracCの双方が0に等しい場合、以下が適用される。sps_ref_wraparound_enabled_flagが0に等しい場合、predSampleLXCの値は、predSampleLXC=refPicLXC[Clip3(0,picWC-1,xIntC)][Clip3(0,picHC-1,yIntC)]<<shift3として導出される。
【0088】
そうでない場合、predSampleLXCの値は、predSampleLXC=refPicLXC[ClipH(xOffsetC,picWC,xIntC)][Clip3(0,picHC-1,yIntC)]<<shift3として導出される。
【0089】
そうでなく、xFracCが0に等しくなく、yFracCが0に等しい場合、以下が適用される。yPosCの値は、yPosC=Clip3(0,picHC-1,yIntC)として導出される。sps_ref_wraparound_enabled_flagが0である場合、predSampleLXCの値は以下のように導出される。
predSampleLXC=(fC[xFracC][0]*refPicLXC[Clip3(0,picWC-1,xIntC-1)][yIntC]+
fC[xFracC][1]*refPicLXC[Clip3(0,picWC-1,xIntC)][yIntC]+
fC[xFracC][2]*refPicLXC[Clip3(0,picWC-1,xIntC+1)][yIntC]+
fC[xFracC][3]*refPicLXC[Clip3(0,picWC-1,xIntC+2)][yIntC])>>shift1
そうでない場合、predSampleLXCの値は以下のように導出される。
predSampleLXC=(fC[xFracC][0]*refPicLXC[ClipH(xOffsetC,picWC,xIntC-1)][yPosC]+
fC[xFracC][1]*refPicLXC[ClipH(xOffsetC,picWC,xIntC)][yPosC]+
fC[xFracC][2]*refPicLXC[ClipH(xOffsetC,picWC,xIntC+1)][yPosC]+
fC[xFracC][3]*refPicLXC[ClipH(xOffsetC,picWC,xIntC+2)][yPosC])>>shift1
そうでなく、xFracCが0に等しく、yFracCが0に等しくない場合、predSampleLXCの値は以下のように導出される。sps_ref_wraparound_enabled_flagが0に等しい場合、xPosCの値は、xPosC=Clip3(0,picWC-1,xIntC)として導出される。そうでない場合、xPosCの値は、xPosC=ClipH(xOffsetC,picWC,xIntC)として導出される。
【0090】
予測色差サンプル値predSampleLXCは以下のように導出される。
predSampleLXC=(fC[yFracC][0]*refPicLXC[xPosC][Clip3(0,picHC-1,yIntC-1)]+
fC[yFracC][1]*refPicLXC[xPosC][Clip3(0,picHC-1,yIntC)]+
fC[yFracC][2]*refPicLXC[xPosC][Clip3(0,picHC-1,yIntC+1)]+
fC[yFracC][3]*refPicLXC[xPosC][Clip3(0,picHC-1,yIntC+2)])>>shift1
そうでなく、xFracCが0に等しくなく、yFracCが0に等しくない場合、predSampleLXCの値は以下のように導出される。sps_ref_wraparound_enabled_flagが0に等しい場合、サンプルアレイtemp[n](n=0..3)は以下のように導出される。
yPosC=Clip3(0,picHC-1,yIntC+n-1)
temp[n]=(fC[xFracC][0]*refPicLXC[Clip3(0,picWC-1,xIntC-1)][yPosC]+
fC[xFracC][1]*refPicLXC[Clip3(0,picWC-1,xIntC)][yPosC]+
fC[xFracC][2]*refPicLXC[Clip3(0,picWC-1,xIntC+1)][yPosC]+
fC[xFracC][3]*refPicLXC[Clip3(0,picWC-1,xIntC+2)][yPosC])>>shift1
そうでない場合、サンプルアレイtemp[n](n=0..3)は以下のように導出される。
yPosC=Clip3(0,picHC-1,yIntC+n-1)
temp[n]=(fC[xFracC][0]*refPicLXC[ClipH(xOffsetC,picWC,xIntC-1)][yPosC]+
fC[xFracC][1]*refPicLXC[ClipH(xOffsetC,picWC,xIntC)][yPosC]+
fC[xFracC][2]*refPicLXC[ClipH(xOffsetC,picWC,xIntC+1)][yPosC]+
fC[xFracC][3]*refPicLXC[ClipH(xOffsetC,picWC,xIntC+2)][yPosC])>>shift1
予測色差サンプル値predSampleLXCは以下のように導出される。
predSampleLXC=(fC[yFracC][0]*temp[0]+
fC[yFracC][1]*temp[1]+
fC[yFracC][2]*temp[2]+
fC[yFracC][3]*temp[3])>>shift2
一実施形態では、sps_ref_wraparound_enabled_flagが0に等しい場合又は存在しない場合、従来の繰り返しパディングが適用されてもよい。そうでない場合、ラップアラウンドパディングが適用されてもよい。
【0091】
一実施形態では、ラップアラウンドパディングは、水平境界及び垂直境界の双方に適用されてもよい。ハイレベルのシンタックス構造のフラグは、ラップアラウンドパディングが水平及び垂直の双方で適用されることを示してもよい。
【0092】
一実施形態では、ラップアラウンドパディングは、タイル又はタイルグループ境界で適用されてもよい。ハイレベルのシンタックス構造のフラグは、ラップアラウンドパディングが水平及び垂直の双方で適用されることを示してもよい。
【0093】
一実施形態では、参照ピクチャは、動き補償予測についてカレントピクチャと同じでもよい。ラップアラウンドパディングは、カレントピクチャが参照である場合、カレントピクチャの境界に適用されてもよい。
【0094】
一実施形態では、ピクチャが、1つ以上のスライスの矩形領域である1つ以上のサブピクチャに分割される場合、各サブピクチャの境界は、ピクチャ境界として処理されてもよく或いは処理されなくてもよい。サブピクチャをピクチャとして扱うことは、各サブピクチャの境界が、動き補償予測のためにパディングされ得ることを示す。
【0095】
図9を参照すると、SPS(又はいずれかの他のパラメータセット)において、1に等しいsubpic_treated_as_pic_flag[i]は、CVSにおける各符号化ピクチャの第iのサブピクチャが復号処理においてピクチャとして扱われることを指定する。0に等しいsubpic_treated_as_pic_flag[i]は、CVSにおける各符号化ピクチャの第iのサブピクチャが復号処理においてピクチャとして扱われないことを指定する。存在しない場合、subpic_treated_as_pic_flag[i]の値は0に等しいと推定される。
【0096】
同じ実施形態では、subpic_treated_as_pic_flag[i]が1に等しい場合、すなわち、第iのサブピクチャがピクチャとして扱われることを示す場合、フラグsubpic_ref_wraparound_enabled_flag[i]が伝達される。subpic_ref_wraparound_enabled_flag[i]が1に等しいことは、水平ラップアラウンド動き補償が各符号化ピクチャの第iのサブピクチャの境界におけるインター予測において適用されることを指定する。subpic_ref_wraparound_enabled_flag[i]が0に等しいことは、水平ラップアラウンド動き補償が各符号化ピクチャの第iのサブピクチャの境界において適用されないことを指定する。
【0097】
同じ実施形態では、subpic_ref_wraparound_offset_minus1[i]+1は、MinCbSizeY輝度サンプルの単位で水平ラップアラウンド位置を計算するために使用される、各符号化ピクチャの第iのサブピクチャのオフセットを指定する。
【0098】
同じ実施形態では、補間フィルタリング処理は以下の通りである。輝度サンプル補間フィルタリング処理。この処理への入力は、全サンプル単位における輝度位置(xIntL,yIntL)と、分数サンプル単位における輝度位置(xFracL,yFracL)と、参照ピクチャの左上の輝度サンプルに対する参照サンプルパディングについての境界ブロックの左上のサンプルを指定する輝度位置(xSbIntL,ySbIntL)と、輝度参照サンプルアレイrefPicLXLと、半サンプル補間フィルタインデックスhpelIfIdxと、カレントサブブロックの幅を指定する変数sbWidthと、カレントサブブロックの高さを指定する変数sbHeightと、カレントピクチャの左上の輝度サンプルに対するカレントサブブロックの左上のサンプルを指定する輝度位置(xSb、ySb)とを含んでもよい。この処理の出力は、予測輝度サンプル値predSampleLXLを含んでもよい。
【0099】
変数shift1、shift2及びshift3は以下のように導出される。変数shift1はMin(4,BitDepthY-8)に等しく設定され、変数shift2は6に等しく設定され、変数shift3はMax(2,14-BitDepthY)に等しく設定される。変数picWはpic_width_in_luma_samplesに等しく設定され、変数picHはpic_height_in_luma_samplesに等しく設定される。
【0100】
xFracL又はyFracLに等しい各1/16分数サンプル位置pについての輝度補間フィルタ係数fL[p]は以下のように導出される。MotionModelIdc[xSb][ySb]が0よりも大きく、sbWidth及びsbHeightが共に4に等しい場合、輝度補間フィルタ係数fL[p]が指定されてもよい。そうでない場合、輝度補間フィルタ係数fL[p]は、hpelIfIdxに依存して表8-11において指定される。
【0101】
全サンプル単位における輝度位置(xInti,yInti)は、i=0...7について以下のように導出される。subpic_treated_as_pic_flag[SubPicIdx]が1に等しい場合、以下が適用される。
xInti=Clip3(SubPicLeftBoundaryPos,SubPicRightBoundaryPos,subpic_ref_wraparound_enabled_flag[SubPicIdx]
ClipH((subpic_ref_wraparound_offset_minus1[SubPicIdx]+1)*MinCbSizeY,SubPicRightBoundaryPos,xIntL+i-3):
xIntL+i-3)
yInti=Clip3(SubPicTopBoundaryPos,SubPicBotBoundaryPos,yIntL+i-3)
そうでない場合(subpic_treated_as_pic_flag[SubPicIdx]が0に等しい場合)、以下が適用される。
xInti=Clip3(0,picW-1,sps_ref_wraparound_enabled_flag
ClipH((sps_ref_wraparound_offset_minus1+1)*MinCbSizeY,picW,xIntL+i-3):
xIntL+i-3)
yInti=Clip3(0,picH-1,yIntL+i-3)
全サンプル単位における輝度位置は、i=0...7について以下のように更に修正される。
xInti=Clip3(xSbIntL-3,xSbIntL+sbWidth+4,xInti)
yInti=Clip3(ySbIntL-3,ySbIntL+sbHeight+4,yInti)
予測輝度サンプル値predSampleLXLは以下のように導出される。xFracL及びyFracLの双方が0である場合、predSampleLXLの値は以下のように導出される。
predSampleLXL=refPicLXL[xInt3][yInt3]<<shift3
そうでなく、xFracLが0に等しくなく、yFracLが0に等しい場合、predSampleLXLの値は、
【0102】
【0103】
そうでなく、xFracLが0に等しく、yFracLが0に等しくない場合、predSampleLXLの値は、
【0104】
【0105】
そうでなく、xFracLが0に等しくなく、yFracLが0に等しくない場合、predSampleLXLの値は以下のように導出される。
【0106】
サンプルアレイtemp[n](n=0..7)は、
【0107】
【0108】
予測輝度サンプル値predSampleLXLは、
【0109】
【0110】
同じ実施形態又は他の実施形態では、
図10を参照すると、SPS(又はいずれかの他のパラメータセット)において、1に等しいall_subpic_treated_as_pic_flagは、CVSにおける各符号化ピクチャのいずれかのサブピクチャが復号処理においてピクチャとして扱われることを指定する。0に等しいsubpic_treated_as_pic_flag[i]は、CVSにおける各符号化ピクチャのいずれかのサブピクチャが復号処理においてピクチャとして扱われないことを指定する。
【0111】
同じ実施形態では、all_subpic_treated_as_pic_flag[i]が1に等しい場合、all_subpic_ref_wraparound_enabled_flagフラグが伝達される。1に等しいall_subpic_ref_wraparound_enabled_flagは、水平ラップアラウンド動き補償が各符号化ピクチャのいずれかのサブピクチャの境界におけるインター予測に適用されることを指定する。0に等しいall_sps_ref_wraparound_enabled_flagは、水平ラップアラウンド動き補償が各符号化ピクチャのいずれかのサブピクチャの境界において適用されないことを指定する。
【0112】
同じ実施形態では、all_subpic_ref_wraparound_offset_minus1[i]+1は、MinCbSizeY輝度サンプルの単位で水平ラップアラウンド位置を計算するために使用される、各符号化ピクチャのいずれかのサブピクチャのオフセットを指定する。同じ実施形態では、subpic_treated_as_pic_flag[i]が存在しない場合、subpic_treated_as_pic_flag[i]の値は、all_subpic_treated_as_pic_flagと等しいと推定される。
【0113】
同じ実施形態では、subpic_ref_wraparound_enabled_flag[i]が存在しない場合、subpic_ref_wraparound_enabled_flag[i]の値はall_subpic_ref_wraparound_enabled_flagと等しいと推定される。
【0114】
同じ実施形態では、subpic_ref_wraparound_offset_minus1[i]が存在しない場合、subpic_ref_wraparound_offset_minus1[i]の値は、all_subpic_ref_wraparound_offset_minus1と等しいと推定される。
【0115】
上記のラップアラウンドパディング処理についての技術は、コンピュータ読み取り可能命令を使用してコンピュータソフトウェアとして実装されてもよく、1つ以上のコンピュータ読み取り可能媒体に物理的に記憶されてもよい。例えば、
図11は、開示の対象物の特定の実施形態を実装するのに適したコンピュータシステム800を示す。
【0116】
コンピュータソフトウェアは、いずれかの適切な機械コード又はコンピュータ言語を使用して符号化されてもよく、当該機械コード又はコンピュータ言語は、命令を含むコードを生成するために、アセンブリ、コンパイル、リンク又は類似のメカニズムを受けてもよく、当該命令は、コンピュータ中央処理装置(CPU, central processing unit)、グラフィックス処理ユニット(GPU, Graphics Processing Unit)等によって、直接的に或いはインタープリタ、マイクロコード実行等を通じて実行されてもよい。
【0117】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、モノのインターネットのデバイス等を含む様々なタイプのコンピュータ又はその構成要素上で実行されてもよい。
【0118】
コンピュータシステム800について
図11に示される構成要素は、本質的に例示的なものであり、本開示の実施形態を実装するコンピュータソフトウェアの使用範囲又は機能に関する如何なる限定も示唆することを意図するものではない。また、構成要素の構成も、コンピュータシステム800の例示的な実施形態に示される構成要素のいずれか1つ又は組み合わせに関する如何なる依存性又は要件も有するものとして解釈されるべきではない。
【0119】
コンピュータシステム800は、特定のヒューマンインタフェース入力デバイスを含んでもよい。このようなヒューマンインタフェース入力デバイスは、例えば、触覚入力(キーストローク、スワイプ、データグローブの動き等)、オーディオ入力(音声、拍手等)、視覚入力(ジェスチャ等)、嗅覚入力(図示せず)を通じて、1人以上の人間のユーザによる入力に応答してもよい。また、ヒューマンインタフェースデバイスは、オーディオ(例えば、会話、音楽、周辺音)、画像(スキャンされた画像、静止画カメラから取得された写真画像等)、ビデオ(2次元ビデオ、立体ピクチャを含む3次元ビデオ等)のような、人間による意識的入力に必ずしも直接関連しない特定のメディアをキャプチャするために使用されてもよい。
【0120】
入力ヒューマンインタフェースデバイスは、キーボード801、マウス802、トラックパッド803、タッチ画面810、データグローブ804、ジョイスティック805、マイクロフォン806、スキャナ807、カメラ808のうち1つ以上を含んでもよい。
【0121】
また、コンピュータシステム800は、特定のヒューマンインタフェース出力デバイスを含んでもよい。このようなヒューマンインタフェース出力デバイスは、例えば、触覚出力、音、光及び嗅覚/味覚を通じて、1人以上の人間のユーザの感覚を刺激してもよい。このようなヒューマンインタフェース出力デバイスは、触覚出力デバイス(例えば、タッチ画面810、データグローブ804又はジョイスティック805による触覚フィードバック、ただし、入力デバイスとして機能しない触覚フィードバックデバイスが存在してもよい)と、オーディオ出力デバイス(スピーカ809、ヘッドフォン(図示せず)等)と、視覚出力デバイス(それぞれがタッチ画面入力機能を有しても有さなくてもよく、それぞれが触覚フィードバック機能を有しても有さなくてもよく、いくつかが2次元視覚出力又は立体出力のような手段を通じた3次元以上の出力を出力可能でもよいCRT画面、LCD画面、プラズマ画面、OLED画面を含む画面810、仮想現実メガネ(図示せず)、ホログラフィックディスプレイ及びスモークタンク(図示せず))と、プリンタ(図示せず)とを含んでもよい。
【0122】
また、コンピュータシステム800は、CD/DVD又は同様の媒体821を有するCD/DVD ROM/RW820を含む光媒体のような人間がアクセス可能な記憶デバイス及び関連する媒体、サムドライブ822、取り外し可能ハードドライブ又はソリッドステートドライブ823、テープ及びフロッピーディスク(図示せず)のようなレガシー磁気媒体、セキュリティドングル(図示せず)のような特殊なROM/ASIC/PLDに基づくデバイス等を含んでもよい。
【0123】
また、当業者は、ここに開示の対象物に関連して使用される用語「コンピュータ読み取り可能媒体」が伝送媒体、搬送波又は他の非一時的な信号を含まないことを理解すべきである。
【0124】
また、コンピュータシステム800は、1つ以上の通信ネットワークへのインタフェースを含んでもよい。ネットワークは、例えば、無線、有線、光でもよい。ネットワークは、ローカル、広域、メトロポリタン、車両及び産業、リアルタイム、遅延耐性等でもよい。ネットワークの例は、イーサネット、無線LAN、セルラネットワーク(GSM、3G、4G、5G、LTE等を含む)、TV有線又は無線広域デジタルネットワーク(ケーブルTV、衛星TV、及び地上放送TVを含む)、車両及び産業(CANBusを含む)等を含む。特定のネットワークは、一般的に、特定の汎用データポート又は周辺バス849に取り付けられる外部ネットワークインタフェースアダプタ(例えば、コンピュータシステム800のUSBポート等)を必要とし、他のネットワークインタフェースアダプタは、一般的に、以下に説明するシステムバス(例えば、PCコンピュータシステムへのイーサネットインタフェース又はスマートフォンコンピュータシステムへのセルラネットワーク)に取り付けられることによって、コンピュータシステム800のコアに統合される。これらのネットワークのいずれかを使用して、コンピュータシステム800は、他のエンティティと通信することができる。このような通信は、一方向の受信のみ(例えば、放送TV)、一方向の送信のみ(例えば、特定のCANbusデバイスへのCANbus)でもよく、或いは、例えば、ローカル又は広域デジタルネットワークを使用する他のコンピュータシステムへの双方向でもよい。特定のプロトコル及びプロトコルスタックは、上記のようなネットワーク及びネットワークインタフェースのそれぞれにおいて使用されてもよい。
【0125】
上記のヒューマンインタフェースデバイス、人間がアクセス可能な記憶デバイス及びネットワークインタフェースは、コンピュータシステム800のコア840に取り付けられてもよい。
【0126】
コア840は、1つ以上の中央処理装置(CPU)841、グラフィックス処理ユニット(GPU)842、フィールドプログラマブルゲートアレイ(FPGA, Field Programmable Gate Area)843の形式の特殊なプログラム可能処理ユニット、特定のタスク用のハードウェアアクセラレータ844等を含んでもよい。これらのデバイスは、読み取り専用メモリ(ROM)845、ランダムアクセスメモリ846、内部大容量記憶装置(内部のユーザアクセス不可能なハードドライブ、SSD等)847と共に、システムバス848を通じて接続されてもよい。いくつかのコンピュータシステムでは、システムバス848は、更なるCPU、GPU等による拡張を可能にするために、1つ以上の物理プラグの形式でアクセス可能でもよい。周辺デバイスは、コアのシステムバス848に直接取り付けられてもよく、或いは、周辺バス849を通じて取り付けられてもよい。周辺バスのアーキテクチャは、PCI、USB等を含む。
【0127】
CPU841、GPU842、FPGA843及びアクセラレータ844は特定の命令を実行してもよく、当該特定の命令は、組み合わせによって上記のコンピュータコードを構成してもよい。当該コンピュータコードは、ROM845又はRAM846に記憶されてもよい。また、一時的なデータは、RAM846に記憶されてもよいが、永続的なデータは、例えば、内部大容量記憶装置847に記憶されてもよい。1つ以上のCPU841、GPU842、大容量記憶装置847、ROM845、RAM846等と密接に関連してもよいキャッシュメモリを使用することによって、メモリデバイスのいずれかへの高速記憶及び検索が可能になってもよい。
【0128】
コンピュータ読み取り可能媒体は、様々なコンピュータに実装された動作を実行するためのコンピュータコードを有してもよい。媒体及びコンピュータコードは、本開示の目的のために特に設計及び構築されたものでよく、或いは、コンピュータソフトウェア分野における当業者に周知で入手可能なようなものでもよい。
【0129】
限定ではなく一例として、アーキテクチャ800、具体的には、コア840を有するコンピュータシステムは、1つ以上の有形のコンピュータ読み取り可能媒体に具現されたソフトウェアを実行するプロセッサ(CPU、GPU、FPGA、アクセラレータ等を含む)の結果として機能を提供できる。このようなコンピュータ読み取り可能媒体は、コア内部の大容量記憶装置847又はROM845のような非一時的な性質のコア840の特定の記憶装置と同様に、上記のようなユーザがアクセス可能な大容量記憶装置に関連する媒体でもよい。本開示の様々な実施形態を実装するソフトウェアは、このようなデバイスに記憶されてコア840によって実行されてもよい。コンピュータ読み取り可能媒体は、特定のニーズに従って、1つ以上のメモリデバイス又はチップを含んでもよい。ソフトウェアは、コア840、具体的には、その中のプロセッサ(CPU、GPU、FPGA等を含む)に、RAM846に記憶されたデータ構造を定義し、ソフトウェアによって定義された処理に従ってこのようなデータ構造を修正することを含む、本明細書に記載の特定の処理又は特定の処理の特定の部分を実行させてもよい。さらに或いは代替として、コンピュータシステムは、回路(例えば、アクセラレータ844)内に配線されたロジック又は他の方法で具現されたロジックの結果として、機能を提供してもよく、当該回路は、本明細書に記載の特定の処理又は特定の処理の特定の部分を実行するために、ソフトウェアの代わりに或いはソフトウェアと共に動作してもよい。ソフトウェアへの言及は、ロジックを含み、必要に応じて、その逆も可能である。コンピュータ読み取り可能媒体への言及は、必要に応じて、実行するためのソフトウェアを記憶する回路(集積回路(IC)等)、実行するためのロジックを具現する回路又はこれらの双方を含んでもよい。本開示は、ハードウェア及びソフトウェアのいずれかの適切な組み合わせを含む。
【0130】
本開示は、いくつかの例示的な実施形態を記載しているが、本開示の範囲内に入る変更、置換及び様々な代替の等価物が存在する。したがって、当業者は、本明細書に明示的に図示又は記載されていないが、本開示の原理を具現し、したがって、本開示の真意及び範囲内にある多数のシステム及び方法を考案することができることが認識される。
【国際調査報告】