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

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

▶ テンセント・アメリカ・エルエルシーの特許一覧

特許7108138ランダムアクセスポイントおよびピクチャタイプの識別方法
<>
  • 特許-ランダムアクセスポイントおよびピクチャタイプの識別方法 図1
  • 特許-ランダムアクセスポイントおよびピクチャタイプの識別方法 図2
  • 特許-ランダムアクセスポイントおよびピクチャタイプの識別方法 図3
  • 特許-ランダムアクセスポイントおよびピクチャタイプの識別方法 図4
  • 特許-ランダムアクセスポイントおよびピクチャタイプの識別方法 図5
  • 特許-ランダムアクセスポイントおよびピクチャタイプの識別方法 図6
  • 特許-ランダムアクセスポイントおよびピクチャタイプの識別方法 図7
  • 特許-ランダムアクセスポイントおよびピクチャタイプの識別方法 図8
  • 特許-ランダムアクセスポイントおよびピクチャタイプの識別方法 図9
  • 特許-ランダムアクセスポイントおよびピクチャタイプの識別方法 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-07-19
(45)【発行日】2022-07-27
(54)【発明の名称】ランダムアクセスポイントおよびピクチャタイプの識別方法
(51)【国際特許分類】
   H04N 19/169 20140101AFI20220720BHJP
   H04N 19/70 20140101ALI20220720BHJP
   H04N 19/102 20140101ALI20220720BHJP
   H04N 19/134 20140101ALI20220720BHJP
【FI】
H04N19/169 200
H04N19/70
H04N19/102
H04N19/134
【請求項の数】 22
(21)【出願番号】P 2021527043
(86)(22)【出願日】2019-12-26
(65)【公表番号】
(43)【公表日】2022-01-18
(86)【国際出願番号】 US2019068540
(87)【国際公開番号】W WO2020139921
(87)【国際公開日】2020-07-02
【審査請求日】2021-05-17
(31)【優先権主張番号】62/786,306
(32)【優先日】2018-12-28
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】16/541,693
(32)【優先日】2019-08-15
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】チョイ,ビョンドゥ
(72)【発明者】
【氏名】ウェンジャー,ステファン
(72)【発明者】
【氏名】リィウ,シャン
【審査官】久保 光宏
(56)【参考文献】
【文献】大久保 榮 監修,「インプレス標準教科書シリーズ H.265/HEVC教科書」,初版,日本,株式会社インプレスジャパン,2013年10月21日,第192~197,208~214頁,ISBN: 978-4-8443-3468-2.
【文献】西 孝啓,「ビットストリームの構成とその機能」,映像情報メディア学会誌,日本,一般社団法人 映像情報メディア学会,2013年,Vol.67, No.7,第549~552頁,[online], [令和4年6月2日検索],インターネット,<URL: https://doi.org/10.3169/itej.67.549>,ISSN: 1342-6907.
【文献】ITU-T H.265 (12/2016),[online], ITU-T,2016年12月22日,Pages 4-13, 64-68, 88, 115-118,[令和4年6月2日検索],インターネット,<URL: https://www.itu.int/rec/T-REC-H.265-201612-S/en>.
(58)【調査した分野】(Int.Cl.,DB名)
H04N19/00-19/98
CSDB(日本国特許庁)
IEEEXplore(IEEE)
(57)【特許請求の範囲】
【請求項1】
少なくとも1つのプロセッサを使用するビデオ復号のために現在のネットワーク抽象化層(NAL)ユニットを再構成する方法であって、
現在のNALユニットをイントラ・ランダムアクセス・ピクチャ(IRAP)NALユニットであると決定するステップと、
前記現在のNALユニットの直前に復号された以前のNALユニットが符号化ビデオシーケンス(CVS)の終端を示すか否かを決定するステップと、
前記以前のNALユニットが前記CVSの前記終端を示すとの決定に基づいて、前記現在のNALユニットを、瞬時デコーダリフレッシュ(IDR)NALユニット、または、破損リンクアクセス(BLA)NALユニットの中の1つとして復号するステップと、
前記以前のNALユニットが前記CVSの前記終端を示さないとの決定に基づいて、前記現在のNALユニットを、クリーン・ランダムアクセス(CRA)NALユニットとして復号するステップと、
前記復号された現在のNALユニットを再構築するステップと、
を含む、方法。
【請求項2】
前記方法は、さらに、
前記現在のNALユニットのヘッダに基づいて、
前記IDR NALユニット、または、前記BLA NALユニットとして、前記現在のNALユニットを復号するか否かを決定するステップ、を含む、
請求項1に記載の方法。
【請求項3】
前記現在のNALユニットのNALユニットタイプは、IRAP NALユニットタイプである、
請求項1に記載の方法。
【請求項4】
前記以前のNALユニットのNALユニットタイプは、CVSエンドオブストリーム(EOS)NALユニットタイプである、
請求項1に記載の方法。
【請求項5】
前記方法は、さらに、
前記以前のNALユニットが前記CVSの前記終端を示すとの決定に基づいて、
第1フラグを設定するステップ、を含む、
請求項1に記載の方法。
【請求項6】
前記方法は、さらに、
設定されている前記第1フラグに基づいて、
前記現在のNALユニットと関連するリーディングピクチャを、ランダムアクセス復号可能リーディング(RADL)ピクチャ画像として、処理するステップ、を含む、
請求項5に記載の方法。
【請求項7】
前記方法は、さらに、
前記第1フラグが設定されている間に、前記現在のNALユニットのNALユニットタイプがCRA NALユニットタイプであることに基づいて、
第2フラグを設定するステップ、を含む、
請求項5に記載の方法。
【請求項8】
前記方法は、さらに、
外部信号に基づいて、前記第2フラグを設定するステップと、
前記第2フラグに対応する第3フラグを設定するステップと、を含む、
請求項7に記載の方法。
【請求項9】
前記方法は、さらに、
設定されている前記第3フラグに基づいて、
前記現在のNALユニットと関連するランダムアクセス・スキップリーディング(RASL)ピクチャを復号することなく、前記RASLピクチャを破棄するステップ、を含む、
請求項8に記載の方法。
【請求項10】
前記方法は、さらに、
設定されている前記第2フラグに基づいて、
前記現在のNALユニットと関連するリーディングピクチャを復号することなく、前記リーディングピクチャを破棄するステップ、を含む、
請求項7に記載の方法。
【請求項11】
ビデオ復号のために現在のネットワーク抽象化層(NAL)ユニットを再構築するための装置であって、
プログラムコードを保管する、ように構成された少なくとも1つのメモリと、
前記プログラムコードを読み出し、かつ、前記プログラムコードによって指示されるように動作する、ように構成された少なくとも1つのプロセッサと、を含み、
前記プログラムコードは、
前記少なくとも1つのプロセッサに、現在のNALユニットがイントラ・ランダムアクセス・ピクチャ(IRAP)NALユニットであると決定させる、ように構成された第1決定コードと、
前記少なくとも1つのプロセッサに、前記現在のNALユニットの直前に復号された以前のNALユニットが符号化ビデオシーケンス(CVS)の終端を示すか否かを決定させる、ように構成された第2決定コードと、
前記少なくとも1つのプロセッサに、前記以前のNALユニットが前記CVSの前記終端を示すとの決定に基づいて、前記現在のNALユニットを、瞬時デコーダリフレッシュ(IDR)NALユニット、または、破損リンクアクセス(BLA)NALユニットの中の1つとして復号させる、ように構成された第1復号コードと、
前記少なくとも1つのプロセッサに、前記以前のNALユニットが前記CVSの前記終端を示さないとの決定に基づいて、前記現在のNALユニットを、クリーン・ランダムアクセス(CRA)NALユニットとして復号させる、ように構成された第2復号コードと、
前記少なくとも1つのプロセッサに、前記復号された現在のNALユニットを再構築させる、ように構成された再構成コードと、
を含む、
装置。
【請求項12】
前記現在のNALユニットのNALユニットタイプは、IRAP NALユニットタイプである、
請求項11に記載の装置。
【請求項13】
前記以前のNALユニットのNALユニットタイプは、CVSエンドオブストリーム(EOS)NALユニットタイプである、
請求項11に記載の装置。
【請求項14】
前記プログラムコードは、さらに、
前記以前のNALユニットが前記CVSの前記終端を示すとの決定に基づいて、
前記少なくとも1つのプロセッサに、第1フラグを設定させる、
ように構成された第1設定コード、を含む、
請求項11に記載の装置。
【請求項15】
前記プログラムコードは、さらに、
設定されている前記第1フラグに基づいて、
前記少なくとも1つのプロセッサに、前記現在のNALユニットと関連するリーディングピクチャを、ランダムアクセス復号可能リーディング(RADL)ピクチャ画像として、処理させる、
ように構成された処理コード、を含む、
請求項14に記載の装置。
【請求項16】
前記プログラムコードは、さらに、
前記第1フラグが設定されている間に、前記現在のNALユニットのNALユニットタイプがCRA NALユニットタイプであることに基づいて、
前記少なくとも1つのプロセッサに、第2フラグを設定させる、
ように構成された第2設定コード、を含む、
請求項14に記載の装置。
【請求項17】
前記プログラムコードは、さらに、前記少なくとも1つのプロセッサに、
外部信号に基づいて、前記第2フラグを設定させ、かつ、
前記第2フラグに対応する第3フラグを設定させる、
ように構成された第3設定コード、を含む、
請求項16に記載の装置。
【請求項18】
前記プログラムコードは、さらに、
設定されている前記第3フラグに基づいて、
前記少なくとも1つのプロセッサに、前記現在のNALユニットと関連するランダムアクセス・スキップリーディング(RASL)ピクチャを復号することなく、前記RASLピクチャを破棄させる、
ように構成された第1廃棄コード、を含む、
請求項17に記載の装置。
【請求項19】
前記プログラムコードは、さらに、
設定されている前記第2フラグに基づいて、
前記少なくとも1つのプロセッサに、前記現在のNALユニットと関連するリーディングピクチャを復号することなく、前記リーディングピクチャを破棄させる、
ように構成された第2廃棄コード、を含む、
請求項16に記載の装置。
【請求項20】
1つ以上のコンピュータで実行可能な命令を含むコンピュータプログラムであって、
ビデオ復号のために現在のネットワーク抽象化層(NAL)ユニットを再構成するための装置の1つ以上のプロセッサによって実行されると、
前記1つ以上のプロセッサに、
現在のNALユニットがイントラ・ランダムアクセス・ピクチャ(IRAP)NALユニットであると決定させ、
前記現在のNALユニットの直前に復号された以前のNALユニットが符号化ビデオシーケンス(CVS)の終端を示すか否かを決定させ、
前記以前のNALユニットが前記CVSの前記終端を示すとの決定に基づいて、前記現在のNALユニットを、瞬時デコーダリフレッシュ(IDR)NALユニット、または、破損リンクアクセス(BLA)NALユニットの中の1つとして復号させ、
前記以前のNALユニットが前記CVSの前記終端を示さないとの決定に基づいて、前記現在のNALユニットを、クリーン・ランダムアクセス(CRA)NALユニットとして復号させ、かつ、
前記復号された現在のNALユニットを再構築させる、
コンピュータプログラム。
【請求項21】
現在のNALユニットを前記IRAP NALユニットであると決定する前記ステップは、第1の決定を含み、
以前のNALユニットが前記CVSの終端を示すか否かを決定する前記ステップは、第2の決定を含み、かつ、
方前記法は、さらに、前記第1の決定および前記第2の決定に基づいて、前記現在のNALユニットが前記CRA NALユニットであるか否かを決定するステップ、を含む、
請求項1に記載の方法。
【請求項22】
少なくとも1つのプロセッサを使用するビデオ符号化のための方法であって、
ビデオシーケンスを符号化するステップと、
現在のネットワーク抽象化層(NAL)ユニットをイントラ・ランダムアクセス・ピクチャ(IRAP)NALユニットであると決定するステップと、
前記現在のNALユニットの直前に復号された以前のNALユニットが符号化ビデオシーケンス(CVS)の終端を示すか否かを決定するステップと、
前記以前のNALユニットが前記CVSの前記終端を示すとの決定に基づいて、前記現在のNALユニットを、瞬時デコーダリフレッシュ(IDR)NALユニット、または、破損リンクアクセス(BLA)NALユニットの中の1つとして復号するステップと、
前記以前のNALユニットが前記CVSの前記終端を示さないとの決定に基づいて、前記現在のNALユニットを、クリーン・ランダムアクセス(CRA)NALユニットとして復号するステップと、
前記復号された現在のNALユニットを再構築するステップと、
を含む、方法。
【発明の詳細な説明】
【技術分野】
【0001】
開示される技術的事項は、ビデオ符号化および復号に関する。そして、より特定的には、固定長コードポイント、ネットワーク抽象化層ユニットヘッダといったハイレベルシンタックス構造に画像参照を含めることに関する。
【0002】
関連出願の相互参照
本出願は、米国特許商標庁において2018年12月28日に出願された米国仮特許出願第62/786,306号および2019年8月15日に米国特許商標庁において出願された米国仮特許出願第16/541,693号に対する米国特許法第119条の優先権を主張するものであり、これらの開示は、その全体が参照により本明細書に組み込まれている。
【背景技術】
【0003】
動き補償(motion compensation)を用いた画像間(inter-picture)予測を使用するビデオ符号化および復号の例は、数十年にわたり知られている。非圧縮デジタルビデオは、一連の画像から構成することができ、各画像は、例えば、1920×1080の輝度(luminance)サンプルおよび関連する色度(chrominance)サンプルの空間次元(spatial dimension)を有している。一連の画像は、例えば、60ピクチャ/秒または60Hzの、固定または可変の画像レート(picture rate)、フレームレート(frame rate)としても知られているもの、を有し得る。非圧縮ビデオは、著しいビットレート要件を有している。例えば、8ビット/サンプルの1080p60 4:2:0ビデオ(60Hzのフレームレートにおいて1920×1080の輝度サンプル解像度)は、1.5ギガビット/秒(Gbit/s)に近い帯域幅を必要とする。そうしたビデオの1時間は、600Gバイトを超える記憶領域を必要とする。
【0004】
ビデオ符号化および復号の1つの目的は、圧縮を通じた、入力ビデオ信号における冗長性の低減であり得る。圧縮は、前述の帯域幅または記憶領域の要件を、場合によっては2桁以上、低減するのに役立つ。可逆(lossless)圧縮および不可逆(lossy)圧縮の両方、並びに、それらの組み合わせが利用され得る。可逆圧縮とは、オリジナル信号の正確なコピーを圧縮されたオリジナル信号から再構成することができる技術をいう。不可逆圧縮を使用する場合に、再構成された信号はオリジナル信号と同一ではないかもしれないが、オリジナル信号と再構成された信号との間の歪み(distortion)は、意図されたアプリケーションについて再構成された信号を有用にするために十分なほど小さい。ビデオの場合には、不可逆圧縮が広く利用されている。許容される歪みの量は、アプリケーションに依存しており、例えば、所定の消費者(consumer)ストリーミングアプリケーションのユーザは、テレビジョン寄与アプリケーションのユーザよりも大きい歪みを許容し得る。達成可能な圧縮率は、より大きい許容可能な(allowable/tolerable)歪みが、より高い圧縮率をもたらし得るということを、反映することができる。
【0005】
ビデオエンコーダおよびデコーダは、例えば、動き補償、変換、量子化、およびエントロピー符号化を含む、いくつかの広範なカテゴリからの技術を利用することができる。そのいくつかを以下に紹介する。
【0006】
パケットネットワークを介した転送のために、符号化ビデオビットストリームをパケットへと分割する例が、数十年にわたり使用されている。初期には、ビデオ符号化(video coding)の標準および技術は、その大部分がビット指向(bit-oriented)のトランスポートについて最適化されており、そして、ビットストリームが定義されていた。パケット化(packetization)は、例えば、リアルタイムトランスポートプロトコル(Real-Time Transport Protocol、RTP)ペイロードフォーマットで指定されたシステムレイヤインターフェイスにおいて発生した。インターネット上でのビデオの大量使用に適したインターネット接続性の出現により、ビデオ符号化標準は、ビデオ符号化層(video coding layer、VCL)とネットワーク抽象化層(network abstraction layer、NAL)の概念的な差別化を通して、その顕著なユースケースを反映した。NALユニットは2003年にH.264で導入され、そして、わずかな修正だけを伴い、それ以来、所定のビデオ符号化標準および技術において維持されてきた。
【0007】
NALユニットは、多くの場合、符号化ビデオシーケンスの全ての先行(preceding)NALユニットを必ずしも復号することなく、デコーダが動作することができる最小のエンティティとして見なされ得る。NALユニットは、所定のエラー回復技術、並びに、所定のビットストリーム操作技術が、選択転送ユニット(Selective Forwarding Units、SFU)または多点制御ユニット(Multipoint Control Units、MCU)といったメディア・アウェア・ネットワーク要素(Media Aware Network elements、MANE)による、ビットストリーム・プルーニング(pruning)を含むことを可能にする。
【0008】
図1は、H.264(101)およびH.265(102)に従ったNALユニットヘッダのシンタックスダイヤグラム(syntax diagram)の関連部分を示しており、どちらの場合も、それぞれの拡張を伴わない。どちらの場合においても、forbidden_zero_bitは、所定のシステムレイヤ環境において開始コードエミュレーション防止のために使用されるゼロビットである。nal_unit_typeのシンタックス要素は、NALユニットが運搬するデータのタイプを指し、例えば、所定のスライスタイプ、パラメータセットタイプ、補足拡張情報(Supplementary Enhancement Information、SEI)メッセージ、等のうち1つであり得る。H.265 NALユニットヘッダは、さらに、nuh_layer_idおよびnuh_temporal_id_plus1を含み、これは、空間的/SNRおよびNALユニットが属する符号化画像の時間的レイヤを示している。
【0009】
NALユニットヘッダは、例えば、他のNALユニットヘッダ、パラメータセット、等といった、ビットストリーム中の他のデータに対して如何なる解析依存性(parsing dependency)も持たない、容易に解析可能な(parseable)な固定長コードワードだけを含むことが分かる。NALユニットヘッダがNALユニットにおける最初のオクテット(octet)であるので、MANEは、容易にそれらを抽出し、解析し、そして、それらに基づいて行動することができる。他のハイレベルシンタックス要素、例えば、スライスまたはタイルヘッダは、対照的に、それらがパラメータ集合コンテキストを維持すること、及び/又は、可変長または算術的に符号化コードポイントの処理を必要とし得るので、MANEにアクセスしにくい。
【0010】
さらに、図1に示されるNALユニットのヘッダは、NALユニットを、複数のNALユニット(例えば、複数のタイルまたはスライスを含み、そのうちの少なくとも一部は個々のNALユニットでパケット化されている、といったもの)から構成される符号化画像に関連付けることができる情報を含まないことが分かる。
【0011】
RTP(RFC 3550)、MPEG-system標準、ISOファイルフォーマット、等といった、所定のトランスポート技術は、しばしば、提示時間(presentation time)といったタイミング情報の形式で、MPEGおよびISOファイルフォーマットの例においては、所定の情報を含み、または、RTPの例においては、MANEによって容易にアクセス可能であり、かつ、それぞれのトランスポートユニットを符号化画像と関連付けるのを助けることができる、時間をキャプチャすることができる。しかしながら、これらの情報のセマンティック(semantics)は、トランスポート/ストレージ技術の間で異なることがあり、そして、ビデオ符号化において使用される画像構造と直接的な関係を持たなくてよい。従って、これらの情報は、せいぜい発見的であり、そして、また、NALユニットストリーム中のNALユニットが同じ符号化画像に属するか否かを識別するのに、特には、良好に適していないかもしれない。
【発明の概要】
【0012】
一つの実施形態において、少なくとも1つのプロセッサを使用するビデオ復号のために現在のネットワーク抽象化層(NAL)ユニットを再構成する方法が提供される。本方法は、現在のNALユニットをイントラ・ランダムアクセス・ピクチャ(IRAP)NALユニットであると決定するステップと、現在のNALユニットの直前に復号された以前のNALユニットが符号化ビデオシーケンス(CVSA)の終端を示すか否かを決定するステップと、以前のNALユニットがCVSの終端を示すとの決定に基づいて、現在のNALユニットを、瞬時デコーダリフレッシュ(IDR)NALユニット、または、破損リンクアクセス(BLA)NALユニットの中の1つとして復号するステップと、以前のNALユニットがCVSの終端を示さないとの決定に基づいて、現在のNALユニットを、クリーン・ランダムアクセス(CRA)NALユニットとして復号するステップと、復号された現在のNALユニットを再構築するステップと、を含む。
【0013】
一つの実施形態において、ビデオ復号のために現在のネットワーク抽象化層(NAL)ユニットを再構築するための装置が提供される。本装置は、プログラムコードを保管するように構成された少なくとも1つのメモリと、プログラムコードを読み出し、かつ、プログラムコードによって指示されるように動作するように構成された少なくとも1つのプロセッサと、を含む。プログラムコードは、少なくとも1つのプロセッサに、現在のNALユニットがイントラ・ランダムアクセス・ピクチャ(IRAP)NALユニットであると決定させるように構成された第1決定コードと、少なくとも1つのプロセッサに、現在のNALユニットの直前に復号された以前のNALユニットが符号化ビデオシーケンス(CVS)の終端を示すか否かを決定させるように構成された第2決定コードと、少なくとも1つのプロセッサに、以前のNALユニットがCVSの終端を示すとの決定に基づいて、現在のNALユニットを、瞬時デコーダリフレッシュ(IDR)NALユニット、または、破損リンクアクセス(BLA)NALユニットの中の1つとして復号させるように構成された第1復号コードと、少なくとも1つのプロセッサに、以前のNALユニットがCVSの終端を示さないとの決定に基づいて、現在のNALユニットを、クリーン・ランダムアクセス(CRA)NALユニットとして復号させるように構成された第2復号コードと、プロセッサに、復号された現在のNALユニットを再構築させるように構成された再構成コードと、を含む。
【0014】
一つの実施形態において、1つ以上の命令を保管している非一時的なコンピュータで読取り可能な媒体が提供される。命令は、ビデオ復号のために現在のネットワーク抽象化層(NAL)ユニットを再構成するための装置の1つ以上のプロセッサによって実行されると、1つ以上のプロセッサに、現在のNALユニットがイントラ・ランダムアクセス・ピクチャ(IRAP)NALユニットであると決定させ、現在のNALユニットの直前に復号された以前のNALユニットが符号化ビデオシーケンス(CVS)の終端を示すか否かを決定させ、以前のNALユニットがCVSの終端を示すとの決定に基づいて、現在のNALユニットを、瞬時デコーダリフレッシュ(IDR)NALユニット、または、破損リンクアクセス(BLA)NALユニットの中の1つとして復号させ、以前のNALユニットがCVSの終端を示さないとの決定に基づいて、現在のNALユニットを、クリーン・ランダムアクセス(CRA)NALユニットとして復号させ、かつ、復号された現在のNALユニットを再構築させる。
【図面の簡単な説明】
【0015】
開示される技術的事項(subject matter)のさらなる特徴、性質、および様々な利点が、以下の詳細な説明および添付の図面からより明らかになるだろう。
図1図1は、H.264およびH.265に従ったNALユニットヘッダの概略図である。
図2図2は、一つの実施形態に従った、通信システムの簡略化されたブロックダイヤグラムの概略図である。
図3図3は、一つの実施形態に従った、通信システムの簡略化されたブロックダイヤグラムの概略図である。
図4図4は、一つの実施形態に従った、デコーダの簡略化されたブロックダイヤグラムの概略図である。
図5図5は、一つの実施形態に従った、エンコーダの簡略化されたブロックダイヤグラムの概略図である。
図6図6は、一つの実施形態に従った、NALユニットヘッダの概略図である。
図7図7は、一つの実施形態に従った、ランダムアクセスポイントの画像およびリーディング(leading)画像の概略図である。
図8図8は、一つの実施形態に従った、パラメータセットにおけるシンタックス要素の概略図である。
図9図9は、一つの実施形態に従った、ビデオ復号のための現在のネットワーク抽象化層(NAL)ユニットを再構築するための例示的なプロセスのフローチャートである。
図10図10は、一つの実施形態に従った、コンピュータシステムの概略図である。
【発明を実施するための形態】
【0016】
解決すべき問題
既存のビデオ符号化シンタックスは、ランダムアクセスポイント、ランダムアクセスピクチャタイプ、およびNALユニットヘッダといったハイレベルシンタックス構造におけるリーディング(leading)ピクチャタイプを識別する、容易に識別可能/解析可能なシンタックス要素を欠いている。
【0017】
図2は、一つの実施形態に従った、通信システム(200)の簡略化されたブロックダイヤグラムを示している。システム(200)は、ネットワーク(250)を介して相互接続された少なくとも2つの端末(210-220)を含み得る。データの一方向(unidirectional)伝送について、第1端末(210)は、ネットワーク(250)を介した他方の端末(220)に対する送信のために、ローカル位置でビデオデータを符号化し得る。第2端末(220)は、ネットワーク(250)から他方の端末の符号化ビデオデータを受信し、符号化データを復号し、そして、回復されたビデオデータを表示することができる。一方向データ伝送は、媒体提供アプリケーション、等において一般的であり得る。
【0018】
図2は、例えば、ビデオ会議の最中に発生し得る符号化ビデオの双方向伝送をサポートするために提供される端末の第2ペア(230、240)を示している。データの双方向伝送のために、各端末(230、240)は、ネットワーク(250)を介した他方の端末に対する送信のために、ローカル位置でキャプチャされたビデオデータを符号化し得る。各端末(230、240)は、また、他方の端末によって送信された符号化ビデオデータを受信し、符号化データを復号し、そして、回復されたビデオデータをローカルディスプレイ装置に表示することができる。
【0019】
図2においては、端末(210-240)が、サーバ、パーソナルコンピュータ、およびスマートフォンとして示され得るが、本開示の原理は、そのように限定されない。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤ、及び/又は、専用のビデオ会議装置を用いたアプリケーションを見出す。ネットワーク(250)は、例えば、有線、及び/又は、無線通信ネットワークを含む、端末(210-240)間で符号化ビデオデータを伝達する任意の数のネットワークを表している。通信ネットワーク(250)は、回線交換(circuit-switched)及び/又はパケット交換(packet-switched)チャネルにおいてデータを交換することができる。代表的なネットワークは、通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、及び/又は、インターネットを含んでいる。本説明の目的のために、ネットワーク(250)のアーキテクチャおよびトポロジーは、以下に説明されなければ、本開示のオペレーションにとって重要ではない。
【0020】
図3は、開示される技術的事項のためのアプリケーションの一つの例として、ストリーミング環境におけるビデオエンコーダおよびデコーダの配置を示している。開示される技術的事項は、例えば、ビデオ会議、デジタルTV、CD、DVD、メモリスティックなどを含むデジタルメディアにおける圧縮ビデオのストレージ、等を含む、他のビデオ可能化アプリケーションに対して同様に適用可能である。
【0021】
ストリーミングシステムは、キャプチャサブシステム(313)を含んでよく、例えば非圧縮ビデオサンプルストリーム(302)を生成する、ビデオソース(301)、例えばデジタルカメラ、を含み得る。このサンプルストリーム(302)は、符号化ビデオビットストリームと比較したときに、大きなデータボリュームを強調するように太い線として示されており、カメラ(301)に結合されたエンコーダ(303)によって処理され得る。エンコーダ(303)は、以下により詳細に説明されるように、開示される技術的事項の態様を可能にし、または、実装するために、ハードウェア、ソフトウェア、または、それらの組み合わせを含むことができる。符号化ビデオビットストリーム(304)は、サンプルストリームと比較したときに、より小さいデータボリュームを強調するように細い線として示されており、将来の使用のためにストリーミングサーバ(305)において保管され得る。1つ以上のストリーミングクライアント(306、308)は、符号化ビデオビットストリーム(304)のコピー(307、309)を取り出す(retrieve)ために、ストリーミングサーバ(305)にアクセスすることができる。クライアント(306)は、符号化ビデオビットストリーム(307)の入力コピーをデコードし、そして、ディスプレイ(312)または他のレンダリング装置(図示なし)上でレンダリング可能な出力ビデオサンプルストリーム(311)を生成する、ビデオデコーダ(310)を含み得る。いくつかのストリーミングシステムにおいて、ビデオビットストリーム(304、307、309)は、所定のビデオ符号化/圧縮標準に従って、符号化され得る。これらの標準の例は、ITU-T Recommendation H.265を含んでいる。開発中のビデオ符号化標準は、汎用ビデオ符号化(Versatile Video Coding)、またはVVCとして非公式に知られている。開示される技術的事項は、VVCのコンテキストにおいて使用され得る。
【0022】
図4は、本開示の一つの実施形態に従った、ビデオデコーダ(310)の機能ブロックダイヤグラムであり得る。
【0023】
受信器(410)は、デコーダ(310)によって復号されるべき1つ以上のコーデックビデオシーケンスを受信することができる。同一または別の実施形態においては、一度に1つの符号化ビデオシーケンスであり、各符号化ビデオシーケンスの復号は、他の符号化ビデオシーケンスから独立している。符号化ビデオシーケンスは、符号化ビデオデータを保管するストレージ装置に対するハードウェア/ソフトウェアリンクであり得る、チャネル(412)から受信することができる。受信器(410)は、符号化ビデオデータを、他のデータ、例えば、符号化オーディオデータ及び/又は補助的なデータストリーム、と共に受信することができ、データは、それぞれのエンティティ(図示なし)を使用して転送され得る。受信器(410)は、符号化ビデオシーケンスを他のデータから分離することができる。ネットワークジッタを除去しようと努めるために、バッファメモリ(415)が、受信器(410)とエントロピーデコーダ/パーサ(420)(以降、「パーサ(“parser”)」)との間に結合され得る。受信器(410)が、十分な帯域幅および制御可能性を有する保管/転送装置から、または、アイソシンクロナス(isosynchronous)ネットワークからデータを受信している場合に、バッファ(415)は、必要とされないか、または、小さくてよい。インターネットといったベストエフォートパケットネットワークでの使用のために、バッファ(415)は、必要とされ、比較的大きく、そして、有利に適応サイズであり得る。
【0024】
ビデオデコーダ(310)は、エントロピー符号化ビデオシーケンスからシンボル(421)を再構成するためのパーサ(420)を含み得る。これらのシンボルのカテゴリは、デコーダ(310)のオペレーションを管理するために使用される情報、および、図3に示されるように、デコーダの不可欠な部分ではないが、デコーダに接続され得るディスプレイ(312)といったレンダリング装置を制御する潜在的な情報を含む。レンダリング装置に対する制御情報は、補足拡張情報(SEI messages)またはビデオユーザビリティ情報(Video Usability Information、VUI)パラメータセットフラグメント(図示なし)の形式であり得る。パーサ(420)は、受信した符号化ビデオシーケンスを解析/エントロピー復号(entropy-decode)し得る。符号化ビデオシーケンスの符号化は、ビデオ符号化技術または標準に従うことができ、そして、可変長符号化、ハフマン(Huffman)符号化、コンテキスト感度を伴う又は伴わない算術符号化、等を含む、当業者にとってよく知られた原理に従うことができる。パーサ(420)は、グループに対応する少なくとも1つのパラメータに基づいて、ビデオデコーダ内のピクセルのサブグループのうち少なくとも1つに対するサブグループパラメータのセットを、符号化ビデオシーケンスから抽出し得る。サブグループは、画像グループ(Groups of Pictures、GOP)、画像、タイル、スライス、マクロブロック、符号化ユニット(Coding Unit、CU)、ブロック、変換ユニット(Transform Unit、TU)、予測ユニット(Prediction Unit、PU)、等を含み得る。エントロピーデコーダ/パーサは、また、変換係数、量子化パラメータ値、動きベクトル(motion vector)、等といった符号化ビデオシーケンス情報から抽出することができる。
【0025】
パーサ(420)は、シンボル(421)を生成するために、バッファ(415)から受信したビデオシーケンスについてエントロピー復号/解析オペレーションを実行することができる。
【0026】
シンボル(421)の再構成は、符号化ビデオ画像またはその部分のタイプ(画像間および画像内、ブロック間およびブロック内、といったもの)および他の要因に応じて、複数の異なるユニットを含むことができる。どのユニットが、どのように関与するかは、パーサ(420)によって符号化ビデオシーケンスからシンタックス解析されたサブグループ制御情報によって制御され得る。パーサ(420)と以下の複数ユニットとの間におけるそうしたサブグループ制御情報のフローは、明確化のために図示されていない。
【0027】
上述の機能ブロックの他に、デコーダ310は、概念的には、以下に説明されるように、いくつかの機能ユニットへと細分(subdivided)され得る。商業的制約の下で動作する実用的な実装では、これらのユニットの多くは、相互に密接に相互作用し、かつ、少なくとも部分的に相互に統合され得る。しかしながら、開示される技術的事項を説明する目的のために、以下の機能ユニットへと概念的に細分化することが適切である。
【0028】
第1ユニットは、スケーラ/逆変換ユニット(451)である。スケーラ/逆変換ユニット(451)は、パーサ(420)から、シンボル(421)として、量子化された変換係数、並びに、使用する変換、ブロックサイズ、量子化係数、量子化スケーリング行列(scaling matrices)、等を含む、制御情報を受信する。そのユニットは、アグリゲータ(aggregator)(455)へと入力可能な、サンプル値を含むブロックを出力することがでる。
【0029】
場合によって、スケーラ/逆変換(451)の出力サンプルは、イントラ(intra)符号化ブロックに属することができる。すなわち、以前に再構成された画像からの予測情報を使用していないが、現在の画像の以前に再構成された部分からの予測情報を使用することができるブロックである。そうした予測情報は、イントラ画像予測ユニット(452)によって提供され得る。場合によって、イントラ画像予測ユニット(452)は、現在の(部分的に再構成された)画像(456)からフェッチ(fetched)された、周囲の既に再構成された情報を使用して、再構成中のブロックと同じサイズおよび形状のブロックを生成する。アグリゲータ(455)は、場合によって、サンプル毎に、イントラ予測ユニット(452)が生成した予測情報を、スケーラ/逆変換ユニット(451)によって提供される出力サンプル情報に追加する。
【0030】
他の場合に、スケーラ/逆変換ユニット(451)の出力サンプルは、インター(inter)符号化され、かつ、潜在的に動き補償(motion compensated)されたブロックに属することができる。そうした場合、動き補償予測ユニット(453)は、予測のために使用されるサンプルをフェッチするために参照画像(reference picture)メモリ(457)にアクセスすることができる。ブロックに属しているシンボル(421)に従ってフェッチされたサンプルを動き補償した後で、これらのサンプルは、アグリゲータ(455)によって、スケーラ/逆変換ユニットの出力に加えられて(この場合には、残留サンプルまたは残留信号と呼ばれる)、出力サンプル情報を生成することができる。動き補償ユニットが予測サンプルをフェッチする参照画像メモリ形態の中のアドレスは、例えば、X、Y、および参照画像コンポーネントを有し得るシンボル(421)の形態で、動き補償ユニットに利用可能な、動きベクトルによって制御され得る。動き補償は、また、サブサンプルの正確な動きベクトルが使用されているときに参照画像メモリからフェッチされるサンプル値の補間、動きベクトル予測メカニズム、等も含み得る。
【0031】
アグリゲータ(455)の出力サンプルは、ループフィルタユニット(456)内の種々のループフィルタリング技術の対象となり得る。ビデオ圧縮技術は、ループ内(in-loop)フィルタ技術を含み得る。ループ内フィルタ技術は、符号化ビデオビットストリーム内に含まれるパラメータによって制御され、かつ、パーサ(420)からのシンボル(421)としてループフィルタユニット(456)に利用可能にされるが、また、符号化画像または符号化ビデオシーケンスの(復号順で)以前の部分の復号の最中に獲得されたメタ情報にも応答することができ、並びに、以前に再構成され、かつ、ループフィルタされたサンプル値にも応答することができる。
【0032】
ループフィルタユニット(456)の出力は、レンダリング装置(312)に出力され、並びに、将来の画像間予測に使用するために参照画像メモリ内に保管され得るサンプルストリームであり得る。
【0033】
所定の符号化画像は、一旦、完全に再構成されると、将来予測のための参照画像として使用され得る。一旦、符号化画像が完全に再構成され、かつ、(例えば、パーサ(420)によって)符号化画像が参照画像として識別されると、現在の参照画像(456)は、参照画像バッファ(457)の一部となり、そして、新たな(fresh)現在の画像メモリが、次の符号化画像の再構成を開始する前に再割当てされ得る。
【0034】
ビデオデコーダ420は、ITU-T Rec. H.265といった、標準において文書化され得る既定のビデオ圧縮技術に従って、復号オペレーションを実行することができる。符号化ビデオシーケンスは、ビデオ圧縮技術文書または標準において、そして、特には、その中のプロファイル文書において規定されるように、ビデオ圧縮技術または標準のシンタックスに従うという意味で、使用されているビデオ圧縮技術または標準によって規定されるシンタックスに準拠し得る。また、コンプライアンスのために必要なことは、符号化ビデオシーケンスの複雑性が、ビデオ圧縮技術または標準のレベルによって定義される範囲内にあることである。場合によって、レベルは、最大画像サイズ、最大フレームレート、最大再構成サンプルレート(例えば、メガサンプル毎秒で測定される)、最大参照画像サイズ、等を制限する。レベルによって設定された制限は、場合によっては仮想基準デコーダ(Hypothetical Reference Decoder、HRD)仕様、および、符号化ビデオシーケンスで信号化されたHRDバッファのメタデータを通して、さらに制限され得る。
【0035】
一つの実施形態において、受信器(410)は、符号化ビデオと共に追加の(冗長な)データを受信し得る。追加データは、符号化ビデオシーケンスの一部として含まれ得る。追加データは、データを適切に復号するため、かつ/あるいは、オリジナルのビデオデータをより正確に再構成するために、ビデオデコーダ(420)によって使用され得る。追加データは、例えば、時間的、空間的、またはSNR強化層、冗長スライス、冗長画像、前方誤り訂正(forward error correction)コード、等の形態であり得る。
【0036】
図5は、本開示の一つの実施形態に従った、ビデオエンコーダ(303)の機能ブロック図であり得る。
【0037】
エンコーダ(303)は、エンコーダ(303)によって符号化されるビデオ画像をキャプチャすることができるビデオソース(301)(エンコーダの一部ではない)からビデオサンプルを受信することができる。
【0038】
ビデオソース(301)は、デジタルビデオサンプルストリームの形態で、エンコーダ(303)によって符号化されるソースビデオシーケンスを提供することができ、形態は、任意の適切なビット深さ(例えば、8ビット、10ビット、12ビット、...)、任意の色空間(例えば、BT.601 Y CrCB、RGB、...)、および任意の適切なサンプリング構造(例えば、Y CrCb 4:2:0、Y CrCb 4:4:4)であり得る。メディア配信(media serving)システムにおいて、ビデオソース(301)は、以前に準備されたビデオを保管しているストレージ装置であり得る。ビデオ会議システムにおいて、ビデオソース(303)は、ビデオシーケンスとしてローカル画像情報をキャプチャするカメラであり得る。ビデオデータは、シーケンスで見たときに、動きを伝える複数の個々の画像として提供されてよい。画像自体は、ピクセルの空間的アレイとして構成されてよく、ここで、各ピクセルは、使用中のサンプリング構造、色空間、等に応じて、1つ以上のサンプルを含むことができる。当業者であれば、ピクセルとサンプルとの間の関係を容易に理解することができる。以下の説明は、サンプルに焦点を当てている。
【0039】
一つの実施形態に従って、エンコーダ(303)は、リアルタイムで、または、アプリケーションによって要求される任意の他の時間の制約下で、ソースビデオシーケンスの画像を符号化ビデオシーケンス(543)へと符号化および圧縮することができる。適切な符号化速度を実施することは、コントローラ(550)の一つの機能である。コントローラは、以下に説明されるように、他の機能ユニットを制御し、そして、これらのユニットに機能的に結合されている。結合は、明確化のために示されていない。コントローラによって設定されるパラメータは、レート制御関連パラメータ(ピクチャスキップ、量子化器、レート歪み最適化技術のラムダ値、...)、ピクチャサイズ、グループピクチャ(GOP)レイアウト、最大動きベクトル検索範囲、等を含み得る。当業者であれば、コントローラ(550)の他の機能を容易に識別することができる。それらは、所定のシステム設計のために最適化されたビデオエンコーダ(303)に関連し得るからである。
【0040】
いくつかのビデオエンコーダは、「符号化ループ(“coding loop”)」として当業者が容易に認識できるものにおいて動作する。過度に単純化された説明として、符号化ループは、エンコーダ(530)の符号化部分(以下、「ソースコーダ(“source coder”)」)(符号化されるべき入力ピクチャ、および参照画像に基づいてシンボルを生成する責任を負う)、および、サンプルデータを生成するためにシンボルを再構成するエンコーダ(303)内に埋め込まれた(ローカル)デコーダ(533)で構成され、(リモート)デコーダも、また、(開示される技術的事項において考慮されたビデオ圧縮技術において、シンボルと符号化ビデオビットストリームとの間の任意の圧縮が可逆(lossless)なように)生成するだろう。再構成されたサンプルストリームは、参照画像メモリ(534)に対する入力である。シンボルストリームの復号は、デコーダ位置(ローカルまたはリモート)に依存しないビットパーフェクト(bit-exact)な結果をもたらすので、参照画像バッファのコンテンツも、また、ローカルエンコーダとリモートエンコーダの間でビットパーフェクトである。別の言葉で言えば、エンコーダの予測部分は、デコーダが、復号の最中に予測を使用するときに「見る(”see”)」のと全く同一のサンプル値を参照画像サンプルとして「見る」。参照画像同期性に係るこの基本原理(および、例えば、チャンネルエラーのために、同期性を維持することができない場合に結果として生じるドリフト)は、当業者にとって周知である。
【0041】
「ローカル(“local”)」デコーダ(533)のオペレーションは、「リモート(“remote”)」デコーダ(310)と同じであり得る。これは、図4と関連して既に上記に詳述されている。しかしながら、図4を、また、簡単に参照すると、シンボルが利用可能であり、かつ、エントロピー符号化器(545)およびパーサ(420)による符号化ビデオシーケンスに対するシンボルの符号化/復号が可逆であり得るので、チャネル(412)、受信器(410)、バッファ(415)、およびパーサ(420)を含む、デコーダ(310)のエントロピー復号部分は、ローカルデコーダ(533)内に完全には実装されないことがある。
【0042】
この時点で行うことができる観察は、デコーダ内に存在する解析/エントロピー復号を除く任意のデコーダ技術も、また、対応するエンコーダ内に、実質的に同一な機能的形態で存在する必要があることである。この理由のために、開示される技術的事項はデコーダのオペレーションに焦点を当てる。エンコーダ技術の説明は、包括的に記述されたデコーダ技術の逆であるため、省略することができる。所定の分野においてだけ、より詳細な説明が必要であり、そして、以下に提供されている。
【0043】
そのオペレーションの一部として、ソースコーダ(530)は、動き補償予測符号化(motion compensated predictive coding)を実行することができ、それは、「参照フレーム(“reference frame”)」として指定されたビデオシーケンスからの1つ以上の以前に符号化されたフレーム(previously coded-frames)に関して入力フレームを予測的に符号化するものである。このようにして、符号化エンジン(532)は、入力フレームのピクセルブロックと、入力フレームに対する予測リファレンス(prediction reference)として選択され得る参照フレームのピクセルブロックとの間の差異を符号化する。
【0044】
ローカルビデオデコーダ(533)は、ソースコーダ(530)によって生成されたシンボルに基づいて、参照フレームとして指定され得るフレームの符号化ビデオデータを復号することができる。符号化エンジン(532)のオペレーションは、有利なことに、不可逆プロセスであり得る。符号化ビデオデータがビデオデコーダ(図5に図示なし)で復号され得る場合、再構成されたビデオシーケンスは、典型的には、いくつかのエラーを伴うソースビデオシーケンスのレプリカであり得る。ローカルビデオデコーダ(533)は、ビデオデコーダによって参照フレーム上で実行され、かつ、再構成された参照フレームを参照画像キャッシュ(534)に保管させ得る、復号プロセスを複製する。このようにして、エンコーダ(303)は、遠端(far-end)ビデオデコーダによって獲得される再構成された参照フレームとして共通のコンテンツを有する再構成された参照フレームのコピーを、ローカルに保管することができる(伝送エラーなく)。
【0045】
予測器(535)は、符号化エンジン(532)のために予測サーチを実行することができる。すなわち、符号化されるべき新しいフレームについて、予測器(535)は、新しいピクチャに対する適切な予測リファレンスとして役立ち得る、(候補参照ピクセルブロックとしての)サンプルデータ、または、参照画像動画ベクトル、ブロック形状、等といった、所定のメタデータについて、参照画像メモリ(534)を検索することができる。予測器(535)は、適切な予測リファレンスを見出すために、サンプルブロック-ピクセルブロック毎に動作し得る。場合によっては、予測器(535)によって獲得される検索結果によって決定されるように、入力ピクチャは、参照画像メモリ(534)に保管された複数の参照画像から引き出された予測リファレンスを有することができる。
【0046】
コントローラ(550)は、例えば、ビデオデータを符号化するために使用されるパラメータおよびサブグループパラメータの設定を含む、ビデオコーダ(530)の符号化オペレーションを管理することができる。
【0047】
全ての前述した機能ユニットの出力は、エントロピー符号化器(545)においてエントロピー符号化を受け得る。エントロピー符号化器は、例えば、ハフマン符号化、可変長符号化、算術符号化、等として、当業者に知られた技術に従って、シンボルを可逆に圧縮することによって、種々の機能ユニットにより生成されたシンボルを符号化ビデオシーケンスへと変換する。
【0048】
送信器(540)は、エントロピー符号化器(545)によって生成されると、符号化ビデオシーケンスをバッファし、通信チャネル(560)を介した送信のために準備することができる。通信チャネルは、符号化ビデオデータを保管するストレージ装置に対するハードウェア/ソフトウェアリンクであってよい。送信器(540)は、ビデオコーダ(530)からの符号化ビデオデータを、送信される他のデータ、例えば、符号化オーディオデータ及び/又は補助的なデータストリーム(ソースは示されない)とマージすることができる。
【0049】
コントローラ(550)は、エンコーダ(303)のオペレーションを管理することができる。符号化の最中に、コントローラ(550)は、各符号化画像に対して、所定の符号化画像タイプを割り当てることができ、これは、それぞれの画像に適用され得る符号化技術に影響を及ぼし得る。例えば、ピクチャは、しばしば、次のフレームタイプの1つとして割り当てられ得る。
【0050】
イントラピクチャ(Iピクチャ)は、予測のソースとしてシーケンス内のあらゆる他のフレームを使用しないで、符号化され、かつ、復号され得るものであり得る。いくつかのビデオコーデック(codec)は、例えば、独立デコーダ・リフレッシュ・ピクチャ(Independent Decoder Refresh Pictures)を含む、異なるタイプのイントラピクチャを許容する。当業者であれば、Iピクチャのこれらの変形例、並びに、それらのそれぞれのアプリケーションおよび機能を知っている。
【0051】
予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために、最大で1つの動きベクトルおよび参照インデックスを使用して、イントラ予測またはインター予測を用いて符号化および復号され得るものであり得る。
【0052】
双方向予測ピクチャ(Bi-directionally Predictive Picture)(Bピクチャ)は、各ブロックのサンプル値を予測するために、最大で2つの動きベクトルおよび参照インデックスを使用して、イントラ予測またはインター予測を用いて符号化および復号され得るものであり得る。同様に、複数の予測画像は、単一のブロックの再構成のために、2つ以上の参照画像および関連するメタデータを使用することができる。
【0053】
ソース画像は、一般に、複数のサンプルブロック(例えば、4×4、8×8、4×8、または16×16のサンプルそれぞれのブロック)へと空間的に細分され、そして、ブロック毎に符号化される。ブロックは、ブロックそれぞれの画像に適用される符号化割り当てによって決定されるように、(既に符号化された)他のブロックを参照して予測的に符号化され得る。例えば、Iピクチャのブロックは、非予測的に符号化されてよく、または、それらは、同じ画像の既に符号化されたブロックを参照して予測的に符号化され得る(空間予測またはイントラ予測)。Pピクチャのピクセルブロックは、1つの以前に符号化された参照画像を参照して、非予測的に、空間的予測を介して、または、時間的予測を介して、符号化され得る。Bピクチャのブロックは、1つ又は2つの以前に符号化された参照画像を参照して、非予測的に、空間的予測を介して、または、時間的予測を介して符号化され得る。
【0054】
ビデオコーダ(303)は、ITU-T Rec. H.265といった、既定のビデオ符号化技術または標準に従って、符号化オペレーションを実行することができる。そのオペレーションにおいて、ビデオコーダ(303)は、入力ビデオシーケンスにおける時間的および空間的冗長性を利用する予測符号化オペレーションを含む、種々の圧縮オペレーションを実行することができる。符号化ビデオデータは、従って、使用されているビデオ符号化技術または標準によって指定されたシンタックスに適合し得る。
【0055】
一つの実施形態において、送信器(540)は、符号化ビデオと共に追加データを送信することができる。ビデオコーダ(530)は、符号化ビデオシーケンスの一部として、そうしたデータを含み得る。追加データは、時間的/空間的/SNR強化層、冗長画ピクチャおよびスライスといった他の形式の冗長データ、補足拡張情報(SEI)メッセージ、ビデオユーザビリティ情報(VUI)パラメータセットフラグメント、等を含み得る。
【0056】
図7は、種々のタイプのランダムアクセスメカニズム、および、それらの関連する画像タイプを示している。特には、クリーン・ランダムアクセス(Clean Random Access)画像(701)、ランダムアクセス・スキップリーディング(Random Access Skipped Leading)画像(702)、ランダムアクセス・復号可能リーディング(Random Access Decodable Leading)画像(703)が示されている。これらの種々のランダムアクセス画像タイプからの非ランダムアクセス画像に対する可能な予測関係も、また、示されている。一つの例として、RASLピクチャ(701)は、B15、B16、およびB17としてラベル付けされ、RADLピクチャ703は、B18およびB19としてラベル付けされ、そして、CRAピクチャ701は、I20およびB21としてラベル付けされ得る。この例において、指定(designation)Bは、以前に復号されたピクチャと関連する動き補償された差異情報を含む、Bピクチャを示し得る。そして、指定Iは、他の画像とは独立して符号化される、Iピクチャを示し得る。この指定に続く番号は、ピクチャの順序を示すことができる。
【0057】
瞬時復号リフレッシュ(Instantaneous Decoding Refresh、IDR)画像(図示なし)がランダムアクセスのために使用され得る。復号順序においてIDRに続くピクチャは、IDR画像の以前に復号されたピクチャを参照しないことがある。この制限は、より低い符号化効率を結果として生じ得る。
【0058】
クリーン・ランダムアクセス(CRA)ピクチャ(701)は、復号順序においてはCRAピクチャに続くが、出力順序においてはリーディングピクチャを許容することによって、CRAピクチャの前に復号された参照画像をランダムアクセスするために使用され得る。CRAは、インター予測のためにオープンGOP構造を利用し得るので、IDRよりも良好な符号化効率を提供し得る。破損リンクアクセス(Broken Link Access、BLA)ピクチャ(図示なし)は、破損リンクを有するCRAピクチャであり得る。これは、復号の順序において後に続くいくつかのピクチャが、ビットストリームの生成において実行された詳細不明のオペレーションのせいで、重大な視覚的アーチファクトを含む可能性があることが示される、ビットストリーム内の位置である。
【0059】
ランダムアクセス・スキップリーディング(RASL)ピクチャ(702)は、このCRAピクチャからのランダムアクセスが発生したときには、いくつかの関連する参照画像がビットストリーム内に存在しないことがあるため、正しく復号されないことがあり得る。ランダムアクセス・復号可能リーディングピクチャ(RADL)(703)は、このCRAピクチャからランダムアクセスが発生したときには、CRAピクチャの以前の参照画像をRADLピクチャが参照として使用しなくてよいため、正しく復号され得る。
【0060】
上述のように、所定のビデオ符号化技術または標準は、少なくとも5つの異なるタイプのランダムアクセスメカニズムおよび関連する画像タイプを含む。H.265といった所定の関連技術に従って、これらの画像タイプそれぞれは、以下に説明される、NALユニットタイプフィールドにおけるナンバリングスペース(numbering space)を必要とし得る。このフィールドにおけるナンバリングスペースは、符号化効率の点で貴重であり、かつ、高価である。従って、符号化効率の観点からは、ナンバリングスペースの使用の削減が望ましい。
【0061】
図6を参照すると、一つの実施形態における、NALユニットヘッダ(601)の例が示されている。NALユニットタイプ(602)の予め定義された値は、NALユニット内に含まれる現在のピクチャが、ランダムアクセスポイントピクチャまたはリーディングピクチャとして識別されることを示し得る。NALユニットタイプ値は、例えば、所定の長さ、ここでは5ビット(603)、の符号なし整数(unsigned integer)として符号化され得る。これらの5ビットの単一の組み合わせは、ビデオ圧縮技術または標準においてIRAP_NUT(IRAP Nal Unit Type)として表示され得る。NALユニットタイプフィールドで必要なナンバリングスペースは、これにより、例えば、(H.265のように)5つのエントリーから、例えば、2つのエントリーへ削減され得る。一方はIDR、他方はIRAP_NUTである。
【0062】
図8を参照すると、一つの実施形態において、シーケンスパラメータセットといった適切なハイレベルシンタックス構造におけるフラグ RA派生フラグ(RA-derivation-flag)は、後述するように、イントラ・ランダムアクセスポイント(IRAP)タイプ(IDR、CRA、またはBLA)もしくはリーディングピクチャタイプ(RASLまたはRADL)が、NALユニットヘッダ、タイルグループヘッダ、またはスライスヘッダにおける明示的な信号(signaling)によって示されるか、もしくは、符号化ビデオシーケンス開始指示またはピクチャ順序カウントを含む他の情報から暗黙的に導出されるか、を示すことができる。一つの例として、フラグ(802)は、デコーディングパラメータセット(801)またはシーケンスパラメータセットに含まれ得る。ra_derivation-flagが暗黙的な導出を示す場合に、NUT値は他の目的のために再利用され得る。
【0063】
一つの実施形態において、パラメータセットといった適切なハイレベルシンタックス構造におけるフラグ leading_pic_type_derivation_flag(803)は、リーディングピクチャタイプ(RASLまたはRADL)が、スライスヘッダまたはタイルグループヘッダといった、画像またはその一部と関連する適切なハイレベルシンタックス構造に存在し得るフラグによって明示的に識別されるか、もしくは、関連するIRAPタイプ、ピクチャ順序カウント(Picture Order Count、POC)値、または参照画像セット(RPS)情報によって暗黙的に識別されるか、を示すことができる。
【0064】
以下に説明されるのは、上記フラグ信号の一方、または、場合によっては、両方が有効にするとき、または、上記フラグが存在せず、フラグの値が暗黙的に所定の値に等しいと推定されるときに使用され得る、所定の導出/包含(implication)メカニズムである。
【0065】
一つの実施形態において、IRAP NALユニットの前に復号されたNALユニットが符号化ビデオシーケンスの終端を(例えば、EOS NALユニットによって)識別する場合に、(IRAP_NUTに等しいNUTを有するNALユニットによって示される)IRAPピクチャは、IDRピクチャまたはBLAピクチャとして処理され得る。IRAP NALユニットの前に復号されたNALユニットが符号化ビデオシーケンスの終端と等価(equivalent)でない場合に、IRAPピクチャは、CRAピクチャとして処理され得る。このことは、CRAとIDR/BLAとの間を異ならせるためにコードポイントを無駄にする必要がないことを意味する。CVSの終端から、異なることが暗示され得るからである。
【0066】
一つの実施形態において、NALユニットタイプの値(例えば、IRAP_NUT)は、NALユニット内に含まれる現在のピクチャがリーディングピクチャとして識別されることを示し得る。リーディングピクチャは、ランダムアクセスピクチャの後に復号されてよいが、ランダムアクセスピクチャの前に表示されてよい。(必ずしも新規であるとは限らない)
【0067】
一つの実施形態において、リーディングピクチャタイプ(RASLまたはRADL)は、関連するIRAPタイプを解釈(interpreting)することによって暗黙的に識別され得る。例えば、関連するIRAPタイプがCRAまたはBLAである場合に、リーディングピクチャはRASL画像として処理されてよいが、関連するIRAPタイプがIDRである場合に、リーディングピクチャは、RADLとして処理され得る。このことは、デコーダが状態を維持すること、そして、特には、どのIRAPピクチャが以前に復号されたか、を必要とし得る。
【0068】
一つの実施形態において、リーディングピクチャタイプ(RASLまたはRADL)は、NALユニットヘッダ、スライスヘッダ、タイルグループヘッダ、パラメータセット、または、あらゆる他の適切なハイレベルシンタックス構造において存在し得る、追加フラグによって示され得る。リーディングピクチャ及びそのタイプの識別は、次の場合に必要または有用であることが確認されている。(a)ビットストリームがCRAピクチャで始まる。(b)CRAピクチャがランダムアクセスされる。すなわち、復号がCRAピクチャから開始する。(c)CRAピクチャで始まるピクチャのシーケンスが、符号化画像の別のシーケンスの後でスプライス(spliced)され、そして、これらの2つのシーケンスの間にEOS NALユニットが挿入される。(d)ファイルライタは、入力としてCRAピクチャを含むビットストリームを取得し、そして、同期サンプル表示(sync sample indications)、SAPサンプルのグループ化、及び/又は、is_leading表示を用いてISOBMFFファイルを作成する。
【0069】
一つの実施形態においては、リーディングピクチャタイプを示すために、NUTのナンバリングスペース内にリーディングピクチャタイプが割り当てられていない。代わりに、リーディングピクチャタイプは、関連するIRAPピクチャと次の画像との間のPOC値から、復号順に導出され得る。具体的には、IRAPピクチャの後に復号され、かつ、IRAPピクチャのPOC値よりも小さいPOC値を有する、非IRAPピクチャは、リーディングピクチャとして識別され得る。IRAPピクチャの後に復号され、かつ、IRAPピクチャのPOC値よりも大きいPOC値を有する、非IRAPピクチャは、後続ピクチャ(trailing picture)として識別され得る。
【0070】
一つの実施形態において、IRAP NALユニットの前に復号されたNALユニットが、符号化ビデオシーケンスの終端と等価である場合に、デコーダ内部状態 CvsStartFlagは、1に等しく設定され得る。CvsStartFlagが1に等しい場合に、IRAPピクチャは、IDRまたはBLAピクチャとして処理されてよく、そして、IRAPピクチャと関連する全てのリーディングピクチャは、RADLピクチャとして処理され得る。CvsStartFlagが1に等しいとき、IRAP NALユニットのNALユニットタイプがCRAと等しい場合に、HandleCraAsCvsStartFlagは、1に等しく設定され得る。
【0071】
一つの実施形態において、変数HandleCraAsCvsStartFlagを現在のピクチャの値に設定するようにビットストリームを復号することなくデコーダ状態を変更するために、所定の外部手段が利用可能である場合に、変数 HandleCraAsCvsStartFlagは、外部手段によって提供される値に等しく設定されてよく、そして、変数 NoIncorrectPicOutputFlag(NoRaslOutputFlagとして参照され得るもの)は、HandleCraAsCvsStartFlagに等しく設定されてよい。
【0072】
一つの実施形態において、変数 HandleCraAsCvsStartFlagが1に等しい場合に、CRAピクチャと関連する全てのリーディングピクチャは、復号することなく破棄され得る。
【0073】
一つの実施形態において、変数 NoIncorrectPicOutputFlagが1に等しい場合に、CRAピクチャと関連する全てのRASLピクチャは、復号することなく破棄され得る。
【0074】
図9は、ビデオ復号のために現在のネットワーク抽象化層(NAL)ユニットを再構成するための例示的プロセス900のフローチャートである。いくつかの実装において、図9の1つ以上のプロセスブロックは、デコーダ310によって実行され得る。いくつかの実装において、図9の1つ以上のプロセスブロックは、エンコーダ303といった、デコーダ310から離れた、または、デコーダ310を含む、別のデバイスまたはデバイスのグループによって実行され得る。
【0075】
図9に示されるように、プロセス900は、現在のNALユニットが、イントラ・ランダムアクセス・ピクチャ(IRAP)NALユニット(ブロックE10まで)であると決定することを含み得る。
【0076】
図9にさらに示されるように、プロセス900は、現在のNALユニットの直前に復号された以前のNALユニットが、符号化ビデオシーケンス(CVS)の終端を示すか否かを決定することを含み得る(ブロック920)。
【0077】
図9にさらに示されるように、プロセス900は、以前のNALユニットがCVSの終端を示していると決定することに基づいて、現在のNALユニットを、瞬時復号リフレッシュ(IDR)NALユニットまたは破損リンクアクセス(BLA)NALユニットの中からの1つとして復号すること、および、復号された現在のNALユニットを再構築することを含み得る(ブロック930)。
【0078】
図9にさらに示されるように、プロセス900は、以前のNALユニットがCVSの終端を示していないと決定することに基づいて、現在のNALユニットを、クリーン・ランダムアクセス(CRA)NALユニットとして復号すること、および、復号された現在のNALユニットを再構築することを含み得る(ブロック940)。
【0079】
一つの実施形態において、プロセス900は、さらに、現在のNALユニットのヘッダに基づいて、現在のNALユニットをIDR NALユニットまたはBLA NALユニットとして、復号するか否かを決定することを含み得る。
【0080】
一つの実施形態において、現在のNALユニットのNALユニットタイプは、IRAP NALユニットタイプであり得る。
【0081】
一つの実施形態において、以前のNALユニットのNALユニットタイプは、CVS エンドオブストリーム(End of Stream、EOS)NALユニットタイプであり得る。
【0082】
一つの実施形態において、プロセス900は、さらに、以前のNALユニットがCVSの終端を示していると決定することに基づいて、第1フラグを設定することを含み得る。
【0083】
一つの実施形態において、プロセス900は、さらに、設定されている第1フラグに基づいて、現在のNALユニットと関連するリーディングピクチャを、ランダムアクセス・復号可能リーディング(RADL)ピクチャとして処理することを含み得る。
【0084】
一つの実施形態において、プロセス900は、さらに、第1フラグがセットされている間に、現在のNALユニットのNALユニットタイプがCRA NALユニットタイプであることに基づいて、第2フラグを設定することを含み得る。
【0085】
一つの実施形態において、プロセス900は、さらに、外部信号に基づいて第2フラグを設定すること、および、第2フラグに対応する第3フラグを設定することを含み得る。
【0086】
一つの実施形態において、プロセス900は、さらに、設定されている第3フラグに基づいて、RASL画像を復号することなく、現在のNALユニットと関連するランダムアクセス・スキップリーディング(RASL)ピクチャを破棄することを含み得る。
【0087】
一つの実施形態において、プロセス900は、さらに、設定されている第2フラグに基づいて、リーディングピクチャを復号することなく、現在のNALユニットと関連するリーディングピクチャを廃棄することを含み得る。
【0088】
図9は、プロセス900の例示的なブロックを示しているが、いくつかの実装において、プロセス900は、図9に示されているものよりも、追加のブロック、より少ないブロック、異なるブロック、または、異なる配置のブロックを含み得る。追加的または代替的に、プロセス900のブロックのうち2つ以上は、並行して実施されてよい。
【0089】
さらに、提案される方法は、処理回路(例えば、1つ以上のプロセッサまたは1つ以上の集積回路)によって実施され得る。一つの例において、1つ以上のプロセッサは、提案された方法の1つ以上を実行するために、非一時的なコンピュータで読取り可能な媒体に保管されたプログラムを実行する。
【0090】
上述のネットワーク抽象化ユニットヘッダにおける画像参照のための技術は、コンピュータで読取り可能な命令を使用してコンピュータソフトウェアとして実装され、そして、1つ以上のコンピュータで読取り可能な媒体に物理的に保管され得る。例えば、図10は、開示される技術的事項のうち所定の実施形態を実施するために適したコンピュータシステム1000を示している。
【0091】
コンピュータソフトウェアは、命令を含むコードを作成するために、アセンブリ、コンパイル、リンク、または同様のメカニズムの対象となり得る、任意の適切な機械コードまたはコンピュータ言語を使用して符号化され得る。命令は、コンピュータ中央処理装置(CPU)、グラフィックス処理装置(GPU)、等によって、直接的に、または、解釈(interpretation)、マイクロコード実行、等を通して実行され得る。
【0092】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲーム装置、モノのインターネット、等を含む、種々のタイプのコンピュータ又はそのコンポーネント上で実行され得る。
【0093】
コンピュータシステム1000について図10において示されるコンポーネントは、本質的に例示的なものであり、そして、本開示の実施形態を実装するコンピュータソフトウェアの使用または機能性の範囲に関していなかる制限も示唆するようには意図されていない。また、コンポーネントの構成は、コンピュータシステム1000の例示的な実施形態において示されるコンポーネントのうち任意の1つ又は組み合わせに関するいかなる従属性または要件も有するものとして解釈されるべきではない。
【0094】
コンピュータシステム1000は、所定のヒューマンインターフェイス入力装置を含み得る。そうしたヒューマンインターフェイス入力装置は、例えば、触覚入力(例えば、キーストローク、スワイプ、データグローブの動き)、オーディオ入力(例えば、音声、拍手)、視覚入力(例えば、ジェスチャ)、嗅覚入力(図示なし)を通じて、一人以上の人間ユーザによる入力に対して応答し得る。ヒューマンインターフェイス装置は、また、オーディオ(例えば、音声、音楽、雰囲気の音)、画像(例えば、スキャン画像、静止画像カメラから獲得する写真画像)、ビデオ(例えば、2次元ビデオ、立体画像を含む3次元ビデオ)といった、人間による意識的な入力に必ずしも直接的に関係しない所定の媒体をキャプチャするためにも使用され得る。
【0095】
入力ヒューマンインターフェイス装置は、キーボード1001、マウス1002、トラックパッド1003、タッチスクリーン1010、データグローブ1204、ジョイスティック1005、マイクロホン1006、スキャナ1007、カメラ1008のうちの1つ以上(それぞれ1つだけが描かれている)を含み得る。
【0096】
コンピュータシステム1000は、また、所定のヒューマンインターフェイス出力装置を含み得る。そうしたヒューマンインターフェイス出力装置は、例えば、触覚出力、音、光、および、嗅覚/味覚を通して、一人以上の人間ユーザの感覚を刺激することができる。そうしたヒューマンインターフェイス出力装置は、触覚出力装置(例えば、タッチスクリーン1010、データグローブ1204、または、ジョイスティック1005による触覚フィードバック、しかし、入力装置として機能しない触覚フィードバック装置も、また、存在し得る)、オーディオ出力装置(例えば、スピーカー1009、ヘッドフォン(図示なし))、視覚出力装置(ブラウン管(CRT)スクリーン、液晶ディスプレイ(LCD)スクリーン、プラズマスクリーン、有機発光ダイオード(OLED)スクリーンを含むスクリーン1010であり、各々がタッチスクリーン入力機能を有するか又は有さない、各々が触覚フィードバック機能を有するか又は有さず、-これらのいくつかは、立体画像出力といった手段を介して、2次元の視覚出力または3次元以上の出力をアウトプットすることができ、仮想現実メガネ(図示なし)、ホログラフィックディスプレイおよびスモークタンク(図示なし)、といったもの)、および、プリンタ(図示なし)を含み得る。
【0097】
コンピュータシステム1000は、また、人間がアクセス可能なストレージ装置、および、それらの関連媒体を含み得る。CD/DVD等の媒体1021を用いるCD/DVD ROM/RW 1020を含む光媒体、サムドライブ(thumb drive)1022、リムーバブルハードドライブまたはソリッドステートドライブ1023、テープおよびフロッピー(登録商標)ディスクといったレガシー磁気媒体、セキュリティドングル(図示なし)といった特殊化されたROM/ASIC/PLDベースの装置、等といったものである。
【0098】
当業者であれば、また、ここで開示されている技術的事項に関連して使用される用語「コンピュータで読取り可能な媒体(“computer readable media”)」は、伝送媒体、搬送波、または、他の一時的な信号を包含しないことも理解すべきである。
【0099】
コンピュータシステム1000は、また、1つ以上の通信ネットワークに対するインターフェイスを含み得る。ネットワークは、例えば、無線、有線、光であり得る。ネットワークは、さらに、ローカル、ワイドエリア、メトロポリタン、車両および工業、リアルタイム、遅延耐性(delay-tolerant)、等であり得る。ネットワークの例は、イーサネット、無線LAN、移動通信のためのグローバルシステム(GSM)、第3世代(3G)、第4世代(4G)、第5世代(5G)、ロングターム・エボリューション(LTE)、等を含むセルラーネットワーク、ケーブルテレビ、衛星テレビ、および、地上波放送テレビを含む、有線または無線のワイドエリアデジタルネットワーク、CANBusを含む車両および工業、等を含み得る。所定のネットワークは、一般に、所定の汎用データポートまたはペリフェラルバス(1049)に取り付けられる外部ネットワーク・インターフェイスアダプタを必要とする。例えば、コンピュータシステム1000のユニバーサルシリアルバス(USB)ポート、といったものであり、他のものは、一般に、以下に説明されるシステムバスに取り付けることによって、コンピュータシステム1000のコアに組み込まれる(例えば、PCコンピュータシステムへのイーサネット・インターフェイス、または、スマートフォン・コンピュータシステムへのセルラーネットワーク・インターフェイス)。一つの例として、ネットワーク1055は、ネットワークインターフェイス1054を使用してペリフェラルバス1049に接続され得る。これらのネットワークのいずれかを使用して、コンピュータシステム1000は、他のエンティティと通信することができる。そうした通信は、一方向性(uni-directional)、受信専用(例えば、放送テレビ)、一方向性送信専用(例えば、所定のCANバス装置へのCANバス)、もしくは、例えば、ローカルまたはワイドエリアデジタルネットワークを使用する他のコンピュータシステムへの、双方向性(bi-directional)であり得る。所定のプロトコルおよびプロトコルスタックは、上述のように、それらのネットワークおよびネットワークインターフェイスの各々で使用され得る。
【0100】
上述のヒューマンインターフェイス装置、人間がアクセス可能なストレージ装置、および、ネットワークインターフェイスは、コンピュータシステム1000のコア1040に取り付けられ得る。
【0101】
コア1040は、1つ以上の中央処理装置(CPU)1041、グラフィックス処理装置(GPU)1042、フィールドプログラマブルゲートアレイ(FPGA)1043の形態で特殊化されたプログラマブル処理装置、所定のタスクのためのハードウェアアクセラレータ1044、等を含み得る。これらの装置は、リードオンリーメモリ(ROM)1045、ランダムアクセスメモリ(RAM)1046、内部非ユーザアクセス可能ハードドライブ、ソリッドステートドライブ(SSD)、等といった内部大容量ストレージ装置1047と共に、システムバス1248を通じて接続され得る。いくつかのコンピュータシステムにおいて、システムバス1248は、追加のCPU、GPU、等による拡張を可能にするために、1つ以上の物理的プラグの形態でアクセス可能であり得る。ペリフェラル装置は、コアのシステムバス1248に直接的に取り付けられても、または、ペリフェラルバス1049を通じて取り付けられてもよい。ペリフェラルバスのアーキテクチャは、ペリフェラルコンポーネントインターコネクト(PCI)、USB、等を含む。
【0102】
CPU 1041、GPU 1042、FPGA 1043、およびアクセラレータ1044は、組み合わせて、上述のコンピュータコードを構成することができる所定の命令を実行することができる。そのコンピュータコードは、ROM 1045またはRAM 1046に保管することができる。過渡的データは、また、RAM 1046に保管することができ、一方で、永久的データは、例えば、内部大容量ストレージ装置1047に保管することができる。メモリデバイスのいずれかへの高速保管および検索が、1つ以上のCPU 1041、GPU 1042、大容量ストレージ装置1047、ROM 1045、RAM 1046、等と密接に関連付けされ得る、キャッシュメモリの使用を通じて、可能にされ得る。
【0103】
コンピュータで読取り可能な媒体は、種々のコンピュータ実装オペレーションを実行するためのコンピュータコードをその上に有することができる。媒体およびコンピュータコードは、本開示の目的のために特別に設計および構築され得るか、または、それらは、コンピュータソフトウェア技術の当業者にとって周知かつ入手可能な種類のものであり得る。
【0104】
一つの例として、そして、限定するものではなく、アーキテクチャ1000を有するコンピュータシステム、および、具体的にはコア1040は、1つ以上の有形なコンピュータで読取り可能な媒体において具現化されたソフトウェアを実行するプロセッサ(CPU、GPU、FPGA、アクセラレータ、等を含む)の結果として機能性を提供することができる。そうしたコンピュータで読取り可能な媒体は、上述のようにユーザがアクセス可能な大容量ストレージ装置、並びに、コア内部大容量ストレージ装置1047またはROM 1045といった、非一時的な性質のコア1040に係る所定のストレージ装置であり得る。本開示の様々な実施形態を実装するソフトウェアは、そうした装置において保管され、そして、コア1040によって実行され得る。コンピュータで読取り可能な媒体は、特定的なニーズに応じて、1つ以上のメモリデバイスまたはチップを含み得る。ソフトウェアは、コア1040、および、具体的には、その中のプロセッサ(CPU、GPU、FPG、等を含む)に、ここにおいて説明された特定のプロセスまたは特定のプロセスに係る特定の部分を実行させ得る。RAM 1046に保管されたデータ構造を定義すること、および、ソフトウェアによって定義されたプロセスに従ってそうしたデータ構造を修正することを含むものである。追加して、または代替として、コンピュータシステムは、回路(例えば、アクセラレータ1044)において配線された、または、他の方法で具現化されたロジックの結果として機能性を提供することができる。回路は、ここにおいて説明される特定のプロセスまたは特定のプロセスの特定的な部分を実行するために、ソフトウェアの代わりに、または、一緒に動作することができる。ソフトウェアへの参照は、ロジックを含み、そして、適切な場合には、その逆もまた同様である。コンピュータで読取り可能な媒体への参照は、実行のためのソフトウェアを保管する回路(集積回路(IC)といったもの)、実行のためのロジックを具体化する回路、または、適切な場合には、その両方を含むことができる。本開示は、ハードウェアおよびソフトウェアの任意の適切な組み合わせを包含するものである。
【0105】
本開示は、いくつかの例示的な実施形態を説明してきたが、変更、置換、および様々な代替等価物が存在し、それらは本開示の範囲内にある。このように、当業者であれば、ここにおいて明示的に示され、または、説明されていなくても、本開示の原理を具体化し、かつ、従って、本開示の精神および範囲内にある多くのシステムおよび方法を考案することができることが、正しく理解されるだろう。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10