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

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

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

特許7061729双方向予測動きベクトル精密化におけるメモリ帯域幅最適化技術
<>
  • 特許-双方向予測動きベクトル精密化におけるメモリ帯域幅最適化技術 図1
  • 特許-双方向予測動きベクトル精密化におけるメモリ帯域幅最適化技術 図2
  • 特許-双方向予測動きベクトル精密化におけるメモリ帯域幅最適化技術 図3
  • 特許-双方向予測動きベクトル精密化におけるメモリ帯域幅最適化技術 図4
  • 特許-双方向予測動きベクトル精密化におけるメモリ帯域幅最適化技術 図5
  • 特許-双方向予測動きベクトル精密化におけるメモリ帯域幅最適化技術 図6
  • 特許-双方向予測動きベクトル精密化におけるメモリ帯域幅最適化技術 図7
  • 特許-双方向予測動きベクトル精密化におけるメモリ帯域幅最適化技術 図8
  • 特許-双方向予測動きベクトル精密化におけるメモリ帯域幅最適化技術 図9
  • 特許-双方向予測動きベクトル精密化におけるメモリ帯域幅最適化技術 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-04-20
(45)【発行日】2022-04-28
(54)【発明の名称】双方向予測動きベクトル精密化におけるメモリ帯域幅最適化技術
(51)【国際特許分類】
   H04N 19/517 20140101AFI20220421BHJP
   H04N 19/523 20140101ALI20220421BHJP
   H04N 19/59 20140101ALI20220421BHJP
【FI】
H04N19/517
H04N19/523
H04N19/59
【請求項の数】 14
(21)【出願番号】P 2021512370
(86)(22)【出願日】2019-06-03
(65)【公表番号】
(43)【公表日】2021-08-26
(86)【国際出願番号】 US2019035121
(87)【国際公開番号】W WO2019240970
(87)【国際公開日】2019-12-19
【審査請求日】2020-11-04
(31)【優先権主張番号】62/685,257
(32)【優先日】2018-06-14
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】16/202,929
(32)【優先日】2018-11-28
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】リ,シアン
(72)【発明者】
【氏名】ウェンジャー,ステファン
(72)【発明者】
【氏名】リィウ,シャン
【審査官】岩井 健二
(56)【参考文献】
【文献】特開2015-226199(JP,A)
【文献】特表2014-511069(JP,A)
【文献】米国特許出願公開第2018/0041769(US,A1)
【文献】国際公開第2019/072425(WO,A1)
【文献】Xu Chen, Jicheng An, and Jianhua Zheng,Decoder-Side Motion Vector Refinement Based on Bilateral Template Matching,Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-D0029,4th Meeting: Chengdu, CN,2016年10月,pp.1-4
【文献】Meng Xu, Xiang Li, Stephan Wenger, and Shan Liu,CE9-related: Memory bandwidth reduction for DMVR,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-K0288,11th Meeting: Ljubljana, SI,2018年07月,pp.1-3
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
符号器においてビデオシーケンスを符号化する、又は復号器において前記ビデオシーケンスを復号化するための、1つ以上のプロセッサによって実行される方法であって、当該方法は、
ブロックに関連する前記ビデオシーケンスからの初期動きベクトルを解析するステップと、
動きベクトル精密化と動き補償の両方を可能にするように、前記初期動きベクトルの解析に基づいて、複数のサンプルを決定するステップと、
前記複数のサンプルを事前抽出するステップと、
最終的な動きベクトルを決定するように、前記複数のサンプルの第1のサブセットを使用して前記動きベクトル精密化を実行するステップと、
前記複数のサンプルの第2のサブセットを使用して前記動き補償を実行するステップと、を含み、
サンプル単位で測った前記初期動きベクトルと前記最終的な動きベクトルとの間の最大距離が、ビデオ圧縮技術又は規格によって制限され、
前記ビデオ圧縮技術又は規格に従って、前記ビデオシーケンスに関連して、動きベクトル精密化ステップなしで別のブロックを再構築し、
前記ブロックに関連する第1の補間フィルタに関連して第1の数のタップが使用され、前記別のブロックに関連する第2の補間フィルタに関連して第2の数のタップが使用され、
タップの前記第1の数と、サンプル単位で測った前記初期動きベクトルと前記最終的な動きベクトルとの間の最大距離との合計が、タップの前記第2の数に等しい、
方法。
【請求項2】
前記初期動きベクトルと前記最終的な動きベクトルとの間の最大距離を決定するステップと、
前記初期動きベクトルと前記最終的な動きベクトルとの間の最大距離に基づいて、前記複数のサンプルを決定するステップと、をさらに含む請求項1に記載の方法。
【請求項3】
補間フィルタに関連するタップの数を決定するステップと、
前記補間フィルタに関連する前記タップの数に基づいて、前記複数のサンプルを決定するステップと、をさらに含む請求項1または2に記載の方法。
【請求項4】
前記ブロックのサイズを決定するステップと、
前記ブロックのサイズに基づいて前記複数のサンプルを決定するステップと、をさらに含む請求項1ないし3のうちいずれか一項に記載の方法。
【請求項5】
タップの前記第1の数は、タップの前記第2の数と異なる請求項1ないし4のうちいずれか一項に記載の方法。
【請求項6】
ビデオコーデック技術又は規格が、少なくとも1つの所定のブロックのサイズについて、前記動きベクトル精密化を阻止する請求項1ないしのうちいずれか一項に記載の方法。
【請求項7】
前記複数のサンプルの前記第1のサブセットは、前記複数のサンプルの前記第2のサブセットと異なる請求項1ないしのうちいずれか一項に記載の方法。
【請求項8】
符号器においてビデオシーケンスを符号化する、又は復号器において前記ビデオシーケンスを復号化するためのデバイスであって、
プログラムコードを記憶するように配置される少なくとも1つのメモリと、
前記プログラムコードを読み取り、前記プログラムコードの指示に従って動作するように配置される少なくとも1つのプロセッサと、を含み、
前記プログラムコードは、
前記少なくとも1つのプロセッサに、ブロックに関連する前記ビデオシーケンスからの初期動きベクトルを解析させるための解析コードと、
前記少なくとも1つのプロセッサに、動きベクトル精密化と動き補償の両方を可能にするように、前記初期動きベクトルの解析に基づいて、複数のサンプルを決定させるための決定コードと、
前記少なくとも1つのプロセッサに、前記複数のサンプルを事前抽出させるための事前抽出コードと、
前記少なくとも1つのプロセッサに、最終的な動きベクトルを決定するように、前記複数のサンプルの第1のサブセットを使用して前記動きベクトル精密化を実行させるための第1の実行コードと、
前記少なくとも1つのプロセッサに、前記複数のサンプルの第2のサブセットを使用して前記動き補償を実行させるための第2の実行コードと、を含み、
サンプル単位で測った前記初期動きベクトルと前記最終的な動きベクトルとの間の最大距離が、ビデオ圧縮技術又は規格によって制限され、
前記ビデオ圧縮技術又は規格に基づき、前記ビデオシーケンスに関連して、動きベクトル精密化ステップなしで別のブロックが再構築され、
前記ブロックに関連する第1の補間フィルタに関連して第1の数のタップが使用され、
前記別のブロックに関連する第2の補間フィルタに関連して第2の数のタップが使用され、
タップの前記第1の数と、サンプル単位で測った前記初期動きベクトルと前記最終的な動きベクトルとの間の最大距離との合計は、タップの前記第2の数に等しい、
デバイス。
【請求項9】
前記少なくとも1つのプロセッサに、前記初期動きベクトルと前記最終的な動きベクトルとの間の最大距離を決定させるための他の決定コードをさらに含み、
前記決定コードは、前記少なくとも1つのプロセッサに、前記初期動きベクトルと前記最終的な動きベクトルとの間の最大距離に基づいて、前記複数のサンプルを決定させるものである請求項に記載のデバイス。
【請求項10】
前記少なくとも1つのプロセッサに、補間フィルタに関連するタップの数を決定させるための他の決定コードをさらに含み、
前記決定コードは、前記少なくとも1つのプロセッサに、前記補間フィルタに関連する前記タップの数に基づいて前記複数のサンプルを決定させるものである請求項又はに記載のデバイス。
【請求項11】
前記少なくとも1つのプロセッサに、前記ブロックのサイズを決定させるための他の決定コードをさらに含み、
前記決定コードは、前記少なくとも1つのプロセッサに、前記ブロックのサイズに基づいて前記複数のサンプルを決定させるものである請求項ないし10のうちいずれか一項に記載のデバイス。
【請求項12】
タップの前記第1の数は、タップの前記第2の数と異なる請求項8ないし11のうちいずれか一項に記載のデバイス。
【請求項13】
前記複数のサンプルの前記第1のサブセットは、前記複数のサンプルの前記第2のサブセットと異なる請求項ないし12のうちいずれか一項に記載のデバイス。
【請求項14】
デバイスの1つ以上のプロセッサに、請求項1ないし7のうちいずれか一項に記載の方法を実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、35U.S.C. §119に基づき、2018年6月14日にてアメリカ特許商標庁に提出されたアメリカ仮出願62/685,257号の優先権を主張し、その全内容を参照により本明細書に組み込む。
【0002】
開示されるテーマは、ビデオ符号化及び復号化に関し、より具体的に、動きベクトル精密化が存在する場合のメモリ帯域幅に関する動き補償補間フィルタの選択に関する。
【背景技術】
【0003】
動き補償を伴うピクチャ予測を使用するビデオの符号化及び復号化は、何十年も前から知られている。非圧縮のデジタルビデオは一連のピクチャを含んでもよく、各ピクチャの空間次元は、例えば1920×1080輝度サンプルと関連する色度サンプルである。当該一連のピクチャは、例えば、毎秒60枚のピクチャ又は60Hzの固定又は可変のピクチャレート(非公式にはフレームレートとも呼ばれる)を有してもよい。非圧縮のビデオには、高いビットレート要件を有する。例えば、1サンプルあたり8ビットの1080p604:2:0ビデオ(60Hzフレームレートでの1920×1080の輝度サンプル解像度)は、1.5Gbit/sに近い帯域幅が必要である。1時間のこのようなビデオは、600GBを超えるストレージスペースが必要である。
【0004】
ビデオの符号化と復号化の1つの目的は、圧縮によって入力ビデオ信号の冗長性を減らすことである。圧縮は、以上で言及された帯域幅又はストレージスペースの要件を低減するのに役立つことができ、いくつかの場合に、2桁以上低減されてもよい。可逆圧縮、非可逆圧縮、及びそれらの組み合わせを使用し得る。可逆圧縮とは、圧縮される元の信号から元の信号の正確なレプリカを再構築できる技術を指す。非可逆圧縮を使用する場合、再構築された信号は、元の信号と異なる可能性があるが、元の信号と再構築された信号の間の歪みは無視できるため、再構築された信号は予期のアプリケーションに役立つ。ビデオの場合、非可逆圧縮は広く適用される。許容される歪みの量はアプリケーションに依存し、例えば、特定のコンシューマストリームアプリケーションのユーザーは、テレビ投稿アプリケーションのユーザーよりも高い歪みを許容できる。達成可能な圧縮率は、許可/許容可能な歪みが大きいほど、圧縮率が高くなることを反映することができる。
【0005】
ビデオ符号器と復号器は、例えば、動き補償、変換、量子化、エントロピー符号化などを含む若干の幅広いカテゴリからの技術を利用でき、その中のいくつかについて、以下紹介する。
【0006】
動き補償は非可逆圧縮技術であってもよく、そして、次の技術が含まれる可能性があり、動きベクトル(以降、MVと呼ばれる)によって指示される方向に空間的に変位した後、以前に再構築されたピクチャ又はその一部(参照ピクチャ)からのサンプルデータのブロックは、新しく再構築されるピクチャ又はピクチャの一部の予測に使用される。いくつかの場合に、参照ピクチャは、現在に再構築されているピクチャと同じであってもよい。MVは、XとYの2つの次元、又は3つの次元を有してもよく、3番目の次元は使用中の参照ピクチャの指示(後者は間接的に時間次元であり得る)。
【0007】
動き補償で使用される動きベクトルは、サブサンプル(サブ画素)精度があり得る。少なくともそのような場合、動き補償は、補間フィルタを使用して、複数の参照ピクチャサンプルから、再構築されたサンプルを補間することに関する。そのような補間フィルタは、例えば、(各次元において)8タップのフィルタを含み得る。より一般的には、nタップ補間フィルタを使用するには、補間にnのサンプルを使用する必要がある可能性がある。その後、単一の次元でのフィルタリングのみが考慮され、当業者は、本明細書で説明される一次元の考慮事項を他の次元に容易に一般化することができる。
【0008】
いくつかの場合に、動き補償で使用される動きベクトルは、ビットストリームに直接符号化されるか、又は、既に再構築されたメタデータに対する差分情報、例えば、再構築中のピクチャのブロックの動きベクトルデータとして符号化されてもよい。ただし、他の場合に、動きベクトル自体が復号器側の補間の結果であり得る。双方向予測ブロックの場合に、そのような復号器側の動きベクトル導出に使用される周知の技術は、よく知られており、2つの参照ブロックで使用される動きベクトルに基づき、動き補償に使用される動きベクトルを補間することができる。
【0009】
さらに、動き補償ブロックに使用される動きベクトルを作成する場合に、再構築中のピクチャに属するサンプルデータ(メタデータとは反対)を使用する必要がある可能性がある他の技術がある。例えば、JVET-D0029にそのような技術の1つが記載され、http://phenix.it-sudparis.eu/jvet/doc_end_user/current_document.php?id=2725から入手でき、タイトルは「Decoder-Site Motion Vector Refinement Based on Bilateral Template Matching」である。そこに記載されている技術は、双方向予測(2つの参照ピクチャによる予測)の背景で使用することができる。この例示的な技術の動き補償は、従来の双方向予測再構築技術を使用してテンプレートブロックを作成することを含む。このテンプレートは、復号器側の動き「検索」メカニズムに使用でき、このメカニズムから、精密化動きベクトルを生成できる。この精密化動き補償ベクトルも動き補償ステップへの入力になる。JVET-D0029によれば、このような技術はコーデックの圧縮パフォーマンスに大きなプラスの影響を与える。
【発明の概要】
【課題を解決するための手段】
【0010】
本明細書は、復号器側の動きベクトル精密化を使用してビデオ符号器/復号器におけるメモリアクセス帯域幅を改善する技術を開示した。本明細書のいくつかの実施形態によれば、動きベクトル精密化を使用する場合に、明確に定義された数(ゼロであり得る)のサンプルのみを事前抽出〔プリフェッチ〕する必要があり、そのような事前抽出は単一のパイプラインステップで発生し得る。
【0011】
本開示の一態様によれば、符号器においてビデオシーケンスを符号化する、又は復号器においてビデオシーケンスを復号化するための方法は、ブロックに関連するビデオシーケンスから初期動きベクトルを解析するステップと、動きベクトル精密化と動き補償の両方を可能にするように、初期動きベクトルの解析に基づいて複数のサンプルを決定するステップと、複数のサンプルを事前抽出するステップと、最終的な動きベクトルを決定するように、複数のサンプルの第1のサブセット動きベクトルを使用して精密化を実行するステップと、複数のサンプルの第2のサブセットを使用して動き補償を実行するステップとを含む。
【0012】
本開示の一態様によれば、符号器においてビデオシーケンスを符号化する、又は復号器においてビデオシーケンスを復号化するためのデバイスは、プログラムコードを記憶するように配置される少なくとも1つのメモリと、プログラムコードを読み取り、プログラムコードの指示に従って動作するように配置される少なくとも1つのプロセッサとを含み、当該プログラムコードは、少なくとも1つのプロセッサに、ブロックに関連するビデオシーケンスから初期動きベクトルを解析させるように配置される解析コードと、少なくとも1つのプロセッサに、動きベクトル精密化と動き補償の両方を可能にするように、初期動きベクトルの解析に基づいて複数のサンプルを決定させるように配置される決定コードと、少なくとも1つのプロセッサに、複数のサンプルを事前抽出させるように配置される事前抽出コードと、少なくとも1つのプロセッサに、最終的な動きベクトルを決定するように、複数のサンプルの第1のサブセットを使用して動きベクトル精密化を実行させることように配置される第1の実行コードと、少なくとも1つのプロセッサに、複数のサンプルの第2のサブセットを使用して動き補償を実行させるように配置される第2の実行コードとを含む。
【0013】
本開示の一態様によれば、命令を記憶する非一時的なコンピュータ可読媒体であって、当該命令は1つ以上の命令を含み、当該1つ以上の命令は、デバイスの1つ以上のプロセッサによって実行される場合に、1つ以上のプロセッサに次の動作を実行させ、ブロックに関連するビデオシーケンスから、初期動きベクトルを解析し、動きベクトル精密化と動き補償の両方を可能にするように、初期動きベクトルの解析に基づいて、複数のサンプルを決定し、複数のサンプルを事前抽出し、最終的な動きベクトルを決定するように、複数のサンプルの第1のサブセットを使用して動きベクトル精密化を実行し、複数のサンプルの第2のサブセットを使用して動き補償を実行する。
【図面の簡単な説明】
【0014】
開示されたテームの他の特徴、性質及び様々な利点は以下の詳細な説明及び図面からより明確になり、図面において、
【0015】
図1】実施形態による通信システムの簡略ブロック図の概略図である。
【0016】
図2】実施形態によるストリーミングシステムの簡略ブロック図の概略図である。
【0017】
図3】実施形態による復号器の簡略ブロック図の概略図である。
【0018】
図4】実施形態による符号器の簡略ブロック図の概略図である。
【0019】
図5】実施形態による動きベクトル精密化を伴う動き補償のフローチャートの概略図である。
【0020】
図6】実施形態による動き補間に必要なサンプルの概略図である。
【0021】
図7】実施形態による動きベクトル精密化を伴う動き補間に必要なサンプルの概略図である。
【0022】
図8】実施形態による動きベクトル精密化を伴う動き補間に必要なサンプルラインの概略図である。
【0023】
図9】実施形態による例示的な処理のフローチャートである。
【0024】
図10】実施形態によるコンピュータシステムの概略図である。
【発明を実施するための形態】
【0025】
例えばJVET-D0029で説明されているような技術は、復号器のメモリ帯域幅要件に大きな影響を与える。具体的に、精密化ステップ(テンプレート生成)に必要なサンプルデータは再構築のためのサンプルデータと異なる可能性があり、所定のブロックの再構築について、復号器は、従来の双方向予測の使用に必要なサンプルデータよりも多くのサンプルデータにアクセスする必要がある。1つ以上の技術を使用すると、追加のメモリ帯域幅(存在する場合)は決定可能である必要があり、そして、最小化による制約に基づいて観察された符号化ゲインに対して最小化する必要がある。
【0026】
図1は、本開示の実施形態による通信システム(100)の簡略ブロック図を示す。システム(100)はネットワーク(150)を介して互いに接続された少なくとも2つの端末(110、120)を含むことができる。データの一方向伝送について、第1の端末(110)は、ローカル位置でビデオデータを符号化して、ネットワーク(150)を介して他方の端末(120)に伝送することができる。第2の端末(120)は、ネットワーク(150)から、他方の端末の符号化されたビデオデータを受信し、当該符号化されたデータを復号化し、復元されたビデオデータを表示することができる。一方向のデータ伝送はメディアサービスアプリケーションなどでは一般的である。
【0027】
図1は、例えばビデオ会議中に発生する可能性がある符号化されたビデオの双方向伝送をサポートするために提供される第2対の端末(130、140)を示す。データの双方向伝送について、各端末(130、140)は、ローカル位置でキャプチャしたビデオデータを符号化して、ネットワーク(150)を介して他方の端末に伝送することができる。各端末(130、140)はさらに、他方の端末から伝送された、符号化されたビデオデータを受信し、当該符号化されたデータを復号化し、復元されたビデオデータをローカルディスプレイ機器に表示することができる。
【0028】
図1において、端末(110~140)は、サーバ、パソコンコンピュータ、スマートフォンとして例示され得るが、本開示の原理はそれらに限定されない。本開示の実施例は、ラップトップコンピュータ、タブレット、メディアプレイヤー及び/又は専用のビデオ会議機器に適用することができる。ネットワーク(150)は、端末(110~440)の間で符号化されたビデオデータを伝送する任意の数のネットワークを表し、例えば有線及び/又は無線通信ネットワークを含む。通信ネットワーク(150)は、回線交換及び/又はパケット交換チャネルにおいてデータを交換することができる。代表的なネットワークには、電気通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク及び/又はインターネットが含まれる。本出願で説明される目的からすると、以下で解釈されない限り、ネットワーク(150)のアーキテクチャ及びトポロジは、本開示の動作にとって重要ではない場合がある。
【0029】
開示されたテーマの適用例として、図2は、ストリーミング環境におけるビデオの符号器及び復号器の配置を示す。開示されたテーマは同様に、例えばビデオ会議、デジタルTVなどが含まれる、ビデオをサポートする他のアプリケーションに適用されることができ、CD、DVD、メモリースティックなどが含まれるデジタルメディアに圧縮されたビデオなどを記憶する。
【0030】
ストリーミングシステムは、キャプチャサブシステム(213)を含むことができ、当該キャプチャサブシステムは、例えばデジタル撮影装置などの、非圧縮のビデオサンプルストリーム(202)を作成できるビデオソース(201)を含むことができる。サンプルストリーム(202)は、符号化されたビデオビットストリームと比較してデータ量が多いことを強調するように、太い線として描画される。サンプルストリーム(202)は、撮影装置(201)に結合される符号器(203)によって処理されることができる。符号器(203)は、以下で詳細に説明される開示されるテーマの各態様を実現することができるために、ハードウェア、ソフトウェア又はそれらの組み合わせを含むことができる。符号化されたビデオビットストリーム(204)は、サンプルストリームと比較してデータ量が少ないことを強調するように、細い線として描画される。符号化されたビデオビットストリーム(204)は、将来の使用のために、ストリーミングサーバ(205)に記憶されることができる。1つ以上のストリーミングクライアント(206、208)は、ストリーミングサーバ(205)にアクセスして、符号化されたビデオビットストリーム(204)のレプリカ(207、209)を検索することができる。クライアント(206)は、ビデオ復号器(210)を含むことができ、当該ビデオ復号器(210)は、符号化されたビデオビットストリームの着信レプリカ(207)を復号化し、ディスプレイ(212)又は他のレンダリングデバイス(図示せず)にレンダリングできる発信ビデオサンプルストリーム(211)を作成する。一部のストリーミングシステムでは、符号化されたビデオビットストリーム(204、207、209)は、あるビデオコーディング/圧縮規格に従って符号化され得る。これらの規格の例には、ITU-T H.265ドラフトが含まれる。非公式に多用途ビデオ符号化またはVVCと呼ばれるビデオ符号化規格は開発中である。開示されたテーマは、VVCの背景で使用されてもよい。
【0031】
図3は、本開示の実施形態によるビデオ復号器(210)の機能ブロック図であり得る。
【0032】
受信機(310)は、ビデオ復号器(210)によって復号化される1つ以上の符号化されたビデオシーケンスを受信することができ、同じ実施例又は他の実施例では、一度に1つの符号化されたビデオシーケンスを受信し、各符号化されたビデオシーケンスの復号化は、他の符号化されたビデオシーケンスと独立している。符号化されたビデオシーケンスをチャネル(312)から受信することができ、チャネル(312)は、符号化されたビデオデータを記憶するための記憶装置に接続するハードウェア/ソフトウェアリンクであってもよい。受信機(310)は、符号化されたビデオデータ及び他のデータ、例えば、符号化されたオーディオデータ及び/又は補助データストリームを受信することができ、これらのデータは、それぞれの使用エンティティ(図示せず)に転送されることができる。受信機(310)は、符号化されたビデオシーケンスを他のデータから分離することができる。ネットワークのジッタを防止するために、バッファメモリ(315)は、受信機(310)とエントロピー復号器/パーサ(420)(以下、「パーサ」と呼ばれる)との間に結合されることができる。受信機(310)は、十分な帯域幅及び制御可能性を有する記憶/転送装置、又は等時性リアルタイムネットワークからデータを受信する際に、バッファ(315)を必要としない可能性があり、又はバッファ(315)が小さくなってもよい。例えばインターネットなどのベストエフォート型パケットネットワークで使用するために、バッファ(315)を必要とする可能性があり、バッファ(315)は比較的大きく、有利に自己適応サイズを有することができる。
【0033】
ビデオ復号器(210)は、エントロピー符号化されたビデオシーケンスに基づきシンボル(321)を再構築するように、パーサ(320)を含むことができる。図2に示すように、これらのシンボルのカテゴリには、ビデオ復号器(210)の動作を管理するための情報、及びディスプレイ(212)のような、復号器の構成部分ではないが復号器に結合され得るレンダリングデバイスを制御するための潜在情報が含まれる。(1つ以上の)レンダリングデバイスのための制御情報は、補助拡張情報(SEIメッセージ)又はビデオユーザビリティ情報(VUI)パラメータセットフラグメント(図示せず)という形であってもよい。パーサ(320)は、受信された、符号化されたビデオシーケンスを解析〔パース〕/エントロピー復号化することができる。符号化されたビデオシーケンスの符号化は、ビデオ符号化技術又は規格に従って実行することができ、可変長符号化、ハフマン符号化(Huffman coding)、文脈依存の有無にかかわらず算術符号化などを含む当業者に知られている原理に従うことができる。パーサ(320)は、グループに対応する少なくとも1つのパラメータに基づき、符号化されたビデオシーケンスから、ビデオ復号器における画素のサブグループのうちの少なくとも1つのサブグループに関するサブグループパラメータセットを抽出することができる。サブグループは、ピクチャグループ(Group of Pictures,GOP)、ピクチャ、タイル、スライス、マクロブロック、符号化ユニット(Coding Unit,CU)、ブロック、変換ユニット(Transform Unit,TU)、予測ユニット(Prediction Unit,PU)などを含むことができる。エントロピー復号器/パーサはさらに、符号化されたビデオシーケンスから、例えば、変換係数、量子化器パラメータ値、動きベクトルなどの情報を抽出してもよい。
【0034】
パーサ(320)は、バッファ(315)から受信されたビデオシーケンスに対してエントロピー復号化/解析操作を実行することで、シンボル(321)を作成することができる。
【0035】
シンボル(321)の再構築は、符号化されたビデオピクチャ又はその一部のタイプ(例えば、インターピクチャとイントラピクチャ、インターブロックとイントラブロック)及び他の要因によって、複数の異なるユニットに関与する。関与するユニット及び制御方式について、パーサ(320)が符号化されたビデオシーケンスから解析したサブグループ制御情報によって制御される。簡潔のために、パーサ(320)と以下の複数のユニットとの間での、このようなサブグループ制御情報の流れは図示されていない。
【0036】
既に言及された機能ブロックに加えて、復号器(210)は、概念的には、以下で説明される複数の機能ユニットに細分化される。ビジネス上の制約の下で運行する実際の実現形態において、これらのユニットのうち複数のユニットは互いに密接に相互作用するとともに、少なくとも部分的に互いに統合することができる。しかしながら、開示されたテーマを説明するために、概念的に以下の機能ユニットに細分化されることは適切である。
【0037】
第1のユニットはスケーラ/逆変換ユニット(351)である。スケーラ/逆変換ユニット(351)はパーサ(320)から(1つ以上の)シンボル(321)としての量子化変換係数及び制御情報を受信し、使用する変換方式、ブロックサイズ、量子化因子、量子化スケーリング行列などを含む。スケーラ/逆変換ユニット(351)は、サンプル値を含むブロックを出力することができ、これらのブロックはアグリゲーター(355)に入力され得る。
【0038】
いくつかの場合に、スケーラ/逆変換ユニット(351)の出力サンプルは、イントラ符号化ブロック、即ち、以前に再構築されたピクチャからの予測情報を使用していないが、現在ピクチャの以前に再構築された部分からの予測情報を使用することができるブロックに属し得る。このような予測情報は、イントラピクチャ予測ユニット(352)によって提供されることができる。いくつかの場合に、イントラピクチャ予測ユニット(352)は現在の(部分的に再構築された)ピクチャ(357b)から抽出された、周囲の既に再構築された情報を使用して、再構築中のブロックと同じサイズ及び形状のブロックを生成する。いくつかの場合に、アグリゲーター(355)は、各サンプルごとに、イントラ予測ユニット(352)から生成された予測情報を、スケーラ/逆変換ユニット(351)によって提供される出力サンプル情報に加算する。
【0039】
他の場合に、スケーラ/逆変換ユニット(351)の出力サンプルは、インター符号化された、潜在的に動き補償されたブロックに属することができる。このような場合に、動き補償予測ユニット(353)は、参照ピクチャメモリ(357)にアクセスして、予測のためのサンプルを抽出することができる。当該ブロックに属するシンボル(321)に基づき、抽出されたサンプルに対して動き補償を行った後、これらのサンプルは、アグリゲーター(355)によって、スケーラ/逆変換ユニットの出力(この場合、残差サンプル又は残差信号と呼ばれる)に加算されて、出力サンプル情報が生成される。動き補償ユニットが予測サンプルを抽出するための参照ピクチャメモリ内のアドレスは動きベクトルによって制御され、該動きベクトルはシンボル(321)の形で、動き補償予測ユニットにとって利用可能であり、シンボル(321)は、例えばX、Y及び参照ピクチャ成分を有してもよい。動き補償はさらに、サブサンプルまで正確な動きベクトルが使用されるときの参照ピクチャメモリから抽出されるサンプル値の補間、動きベクトル予測メカニズムなどを含んでもよい。
【0040】
アグリゲーター(355)の出力サンプルは、ループフィルタユニット(356)において、様々なループフィルタリング技術によって処理されることができる。ビデオ圧縮技術は、ループ内フィルタ技術を含むことができ、ループ内フィルタ技術は、符号化されたビデシーケンスに含まれる、パーサ(320)からのシンボル(321)としてループフィルタユニット(356)に適用可能なパラメータによって制御され、しかしながら、ビデオ圧縮技術は、符号化されたピクチャ又は符号化されたビデオシーケンスの(復号化順序で)前の部分を復号化する期間に取得されたメタ情報、及び、以前に再構築されループフィルタリングによって処理されたサンプル値に応答することもできる。
【0041】
ループフィルタユニット(356)の出力は、サンプルストリームであってもよく、サンプルストリームは、将来のピクチャ予測で使用されるために、レンダリングデバイス(212)に出力され、参照ピクチャバッファ(357)に記憶されることができる。
【0042】
ある符号化されたピクチャは、完全に再構築されたら、将来の予測のための参照ピクチャとして使用される。ひとたび符号化されたピクチャが完全に再構築され、符号化されたピクチャが(例えばパーサ(320)によって)参照ピクチャとして認識されると、現在の参照ピクチャ(357b)は参照ピクチャバッファ(357)の一部になり、その後の符号化されたピクチャの再構築を開始する前に、新たな現在ピクチャメモリを再割り当てすることができる。
【0043】
ビデオ復号器(320)は、例えばITU-T H.265ドラフトの規格における所定のビデオ圧縮技術に従って復号化動作を実行することができる。ビデオ圧縮技術ドキュメント又は規格、特にその概要ドキュメントで指定されるように、符号化されたビデオシーケンスがビデオ圧縮技術又は規格の構文に従う意味で、符号化されたビデオシーケンスは、使用されているビデオ圧縮技術又は規格によって指定される構文に準拠することができる。準拠性について、さらに、符号化されたビデオシーケンスの複雑さがビデオ圧縮技術又は規格のレベルによって限定される範囲にあるように要求される。いくつかの場合に、レベルは、最大ピクチャサイズ、最大フレームレート、最大再構築サンプリングレート(例えば、メガサンプル/秒で測定する)、及び/又は最大参照ピクチャのサイズなどを制限する。いくつかの場合に、レベルによって設置される制限は、仮想参照復号器(Hypothetical Reference Decoder,HRD)の仕様、及び符号化されたビデオシーケンスにおいて信号で示されるHRDバッファが管理するメタデータによってさらに限定されることができる。
【0044】
実施形態において、受信機(310)は、符号化されたビデオとともに、追加の(冗長な)データを受信することができる。追加のデータは、(1つ以上の)符号化されたビデオシーケンスの一部として含まれてもよい。追加のデータは、ビデオ復号器(320)によって使用されることで、データを正確に復号化し、及び/又は元のビデオデータをより正確に再構築することができる。追加のデータは、例えば時間、空間又は信号対雑音比(signal-to-noise ratio,SNR)拡張層、冗長スライス、冗長ピクチャ、前方誤り訂正符号などの形であってもよい。
【0045】
図4は、本開示の実施形態によるビデオ符号器(203)の機能ブロック図である。
【0046】
符号器(203)は、ビデオソース(201)(符号器の一部ではない)からビデオサンプルを受信することができ、当該ビデオソースは、符号器(203)によって符号化される(1つ以上の)ビデオ画像をキャプチャすることができる。
【0047】
ビデオソース(201)は、符号器(203)によって符号化されるソースビデオシーケンスをデジタルビデオサンプルストリームの形で提供することができ、当該デジタルビデオサンプルストリームは、任意の適切なビット深さ(例えば:8ビット、10ビット、12ビット、・・・)、任意の色空間(例えば、BT.601 YCrCB、RGB、・・・)、及び任意の適切なサンプリング構成(例えば、YCrCb 4:2:0、YCrCb4:4:4)を有してもよい。メディアサービスシステムにおいて、ビデオソース(201)は、以前に準備されたビデオを記憶するための記憶装置であってもよい。ビデオ会議システムにおいて、ビデオソース(203)は、ビデオシーケンスとして、ローカル画像情報をキャプチャするための撮影装置であってもよい。ビデオデータは、順番に見たときに、動きが付与される複数の個別のピクチャとして提供できる。ピクチャ自体は、空間画素アレイとして編成されてもよく、使用されているサンプリング構成、色空間などによって、各画素には1つ以上のサンプルが含まれてもよい。画素とサンプルとの間の関係は、当業者にとって、容易に理解することができる。以下、サンプルを中心に説明する。
【0048】
実施形態によれば、ビデオ符号器(203)は、ソースビデオシーケンスのピクチャを、リアルタイムで、又はアプリケーションで必要とする他の任意の時間制約の下で、符号化されたビデオシーケンス(443)に符号化及び圧縮することができる。適切的な符号化速度で実行することは、コントローラ(450)の機能の1つである。コントローラ(450)は、以下で説明する他の機能ユニットを制御し、これらのユニットに機能的に結合される。簡潔のために、結合は示されていない。コントローラ(450)によって設置されるパラメータは、レート制御関連パラメータ(ピクチャスキップ、量子化器、レート歪み最適化技術のλ値、・・・)、ピクチャサイズ、ピクチャグループ(group of pictures,GOP)配置、最大動きベクトル検索範囲などを含んでもよい。当業者は、コントローラ(450)の他の機能を容易に認識することができ、これらの機能は特定のシステム設計に対して最適化されたビデオ符号器(203)に属する。
【0049】
あるビデオ符号器は、当業者が容易に「符号化ループ」として認識するという方式で動作する。非常に簡単な説明として、符号化ループは、(符号化対象となる入力ピクチャと(1つ以上の)参照ピクチャに基づきシンボルストリームを作成することを担当する)ソース符号器(430)の符号化部分(以下、「ソース符号器」と呼ばれる)と、符号器(203)に埋め込まれる(ローカル)復号器(433)とを含むことができる。復号器(433)はシンボルを再構築することで、(リモート)復号器も作成しようとするサンプルデータを作成する(なぜならば、シンボルと符号化されたビデオビットストリームとの間の任意の圧縮は、開示されたテーマで考慮されるビデオ圧縮技術において可逆であるためである)。当該再構築されたサンプルストリームは、参照ピクチャメモリ(434)に入力される。シンボルストリームの復号化により、復号器位置(ローカル又はリモート)と関係がくビット正確な(bit-exact)結果が得られるので、参照ピクチャバッファのコンテンツはローカル符号器とリモート符号器との間でもビット正確である。言い換えれば、符号器の予測部分が「見る」参照ピクチャサンプルは、復号化中に予測するときに復号器が「見る」サンプル値とまったく同じである。この参照ピクチの同期性(及び、(例えばチャネル誤差のため)同期性を維持できない場合に発生するドリフト)の基本原理は当業者にとって周知である。
【0050】
「ローカル」復号器(433)の動作は、例えば図3を結合して以上で詳しく説明した「リモート」復号器(210)の動作と同じであってもよい。しかしながら、暫時図3も参照すると、シンボルが使用可能であり、エントロピー符号器(445)とパーサ(320)とによるシンボルと符号化されたビデオシーケンスとの間の符号化/復号化が無損失でありうる場合、チャネル(312)、受信機(310)、バッファ(315)及びパーサ(320)を含む復号器(210)のエントロピー復号化部分は、ローカル復号器(433)においては完全に実装されなくてもよい。
【0051】
ここで、復号器に存在する解析/エントロピー復号化に加えて、任意の復号器技術も、必然的に、基本的に同じ機能形式で、対応する符号器に存在することが観察されることができる。この理由に起因して、開示されたテーマは、復号器の動作に着目する。符号器技術の説明は、包括的に説明された復号器技術の逆であるため、符号器技術の説明を簡略化できる。より詳しい説明は、特定の領域のみで必要であり、以下で提供される。
【0052】
その動作の一部として、ソース符号器(430)は動き補償予測符号化を実行することができ、それは、ビデオシーケンスからの1つ以上の以前に符号化されたフレーム(「参照フレーム」として指定される)を参照して、入力フレームを予測的に符号化する。この方法で、符号化エンジン(432)は入力フレームの画素ブロックと、入力フレームの(1つ以上の)予測参照として選択される(1つ以上の)参照フレームの画素ブロックとの間の差を符号化する。
【0053】
ローカルビデオ復号器(433)は、ソース符号器(430)によって作成されるシンボルに基づき、参照フレームとして指定されることができるフレームの符号化されたビデオデータを復号化することができる。符号化エンジン(432)の動作は、有利的には、非可逆処理であってもよい。符号化されたビデオデータがビデオ復号器(図4には図示せず)で復号化される場合、再構築されたビデオシーケンスは、一般的に、多少の誤差を伴うソースビデオシーケンスのレプリカであってもよい。ローカルビデオ復号器(433)は、参照フレームに対してビデオ復号器によって実行される復号化処理を複製し、再構成された参照フレームを参照ピクチャキャッシュ(434)に記憶することができる。この方法で、ビデオ符号器(203)は、再構成された参照フレームのレプリカをローカルに記憶することができ、当該レプリカは、リモートビデオ復号器によって取得された、再構成される参照フレームと共通のコンテンツを有する(伝送誤差がない)。
【0054】
予測器(435)は、符号化エンジン(432)に対して予測検索を実行することができる。つまり、符号化対象となる新たなフレームに対して、予測器(435)は参照ピクチャメモリ(434)において、新たなピクチャ予測参照として使用され得るサンプルデータ(候補参照画素ブロックとする)、又は例えば参照ピクチャ動きベクトル、ブロック形状などの特定のメタデータを検索することができる。予測器(435)はサンプルブロックに基づき、画素ブロックごとに動作することで、適切な予測参照を見つけることができる。いくつかの場合に、予測器(435)によって取得された検索結果によって決定されるように、入力ピクチャは、参照ピクチャメモリ(434)に記憶される複数の参照ピクチャによって得られた予測参照を有してもよい。
【0055】
コントローラ(450)は、例えばビデオデータを符号化するためのパラメータとサブグループパラメータの設置を含むビデオ符号器(430)の符号化動作を管理することができる。
【0056】
上述した全ての機能ユニットの出力は、エントロピー符号器(445)において、エントロピー符号化されることができる。当該エントロピー符号器は、当業者に知られている技術(例えばハフマン符号化、可変長符号化、算術符号化など)に従って、各機能ユニットによって生成されたシンボルに対して可逆圧縮を行うことで、これらのシンボルを符号化されたビデオシーケンスに変換する。
【0057】
送信機(440)は、通信チャネル(460)を介した伝送の準備をするように、エントロピー符号器(445)によって作成される(1つ以上の)符号化されたビデオシーケンスをバッファリングすることができ、当該通信チャネルは、符号化されたビデオデータを記憶するための記憶装置へのハードウェア/ソフトウェアリンクであってもよい。送信機(440)は、ビデオ符号器(430)からの符号化されたビデオデータと、伝送対象となる他のデータとを、マージすることができ、当該他のデータは、例えば符号化されたオーディオデータ及び/又は補助データストリーム(ソースは図示せず)である。
【0058】
コントローラ(450)は、ビデオ符号器(203)の動作を管理することができる。符号化中に、コントローラ(450)は、各符号化されたピクチャに、対応するピクチャに適用される符号化技術に影響を与える可能性がある特定の符号化ピクチャタイプを指定することができる。例えば、一般的に、ピクチャは次のフレームタイプのいずれかとして指定される
【0059】
イントラピクチャ(Iピクチャ)は、シーケンス内の任意の他のピクチャを予測のソースとして使用せず、符号化及び復号化されうるピクチャであってもよい。一部のビデオコーデックは、例えば独立復号器リフレッシュピクチャが含まれる異なるタイプのイントラピクチャを許容する。当業者は、Iピクチャのそれらの変形、及び対応する用途及び特徴を知っている。
【0060】
予測ピクチャ(Pピクチャ)は、イントラ予測又はインター予測(多くとも1つの動きベクトルと参照インデックスを使用して各ブロックのサンプル値を予測する)を使用して符号化及び復号化されうるピクチャであってもよい。
【0061】
双方向予測ピクチャ(Bピクチャ)は、イントラ予測又はインター予測(多くとも2つの動きベクトルと参照インデックスを使用して各ブロックのサンプル値を予測する)を使用して符号化及び復号化されうるピクチャであってもよい。同様に、マルチ予測ピクチャは、2つを超える参照ピクチャ及び関連するメタデータを、単一のブロックの再構築に使用することができる。
【0062】
ソースピクチャは一般的に、空間的に複数のサンプルブロック(例えば、それぞれ4×4、8×8、4×8又は16×16個のサンプルを有するブロック)に細分化され、ブロックごとに符号化されることができる。これらのブロックは、ブロックの対応するピクチャに適用される符号化指定によって決定される他の(既に符号化された)ブロックを参照して、予測的に符号化されることができる。例えば、Iピクチャのブロックは、非予測的に符号化されてもよく、又は、同じピクチャの既に符号化されたブロックを参照して、予測的に符号化(空間予測又はイントラ予測)されてもよい。Pピクチャの画素ブロックは、以前に符号化された1つの参照ピクチャを参照して、空間的予測又は時間的予測を介して予測的に符号化されてもよい。Bピクチャのブロックは、以前に符号化された1つ又は2つの参照ピクチャを参照して、空間的予測又は時間的予測を介して予測的に符号化されてもよい。
【0063】
ビデオ符号器(203)は、例えばITU-T H.265ドラフトにおける所定のビデオ符号化技術又は規格に基づき符号化動作を実行することができる。その動作において、ビデオ符号器(203)は、入力ビデオシーケンスにおける時間的と空間的冗長性を使用した予測符号化動作が含まれる様々な圧縮動作を実行することができる。従って、符号化されたビデオデータは、使用されているビデオ符号化技術又は規格によって指定される構文に準拠していることができる。
【0064】
実施形態において、送信機(440)は、符号化されたビデオとともに、追加のデータを送信することができる。ソース符号器(430)は、符号化されたビデオシーケンスの一部として、このようなデータを含んでもよい。追加のデータは、時間/空間/SNR拡張層、冗長ピクチャとスライスのような他の形式の冗長データ、補助拡張情報(SEI)メッセージ、ビデオユーザビリティ情報(VUI)パラメータセットフラグメントなどを含んでもよい。
【0065】
開示されたテーマは、動きベクトル精密化、又は既に再構築されたピクチャからのサンプルデータを使用して同じ所与のピクチャのサンプルデータの再構築に影響を与えるなどの任意の他の技術に適用してもよい。
【0066】
図5は、(例えば、JVET-D0029で説明されたような)サンプルデータに基づく動きベクトル精密化技術を使用してブロックに対して動き補償を実行する概念的なフローチャートを示す。これ以降、当該方法は、2つの参照ピクチャ及び双方向予測の仮定の下で説明され、しかしながら、例えば、マルチ仮定予測、イントラブロック複製技術と従来の参照ピクチャに基づく動き補償との混合などを含む、他の形式の予測にも同様に適用することができる。
【0067】
解析ステップ(501)において、例えば、ビットストリームを解析し、(1つ以上の)動きベクトルに関連する含まれるシンボルを復号化し、これらの復号化されたシンボルを、既に利用可能な(再構築された)メタデータ(例えば周囲のブロックの動きベクトル)と組み合わせて使用することにより、1つ以上の初期動きベクトルを生成する。このような技術は、通常、「解析〔パース〕」と呼ばれるが、上記のように、解析の厳密な定義(ビットストリームをシンボルストリームに変換するという意味)を超えるメカニズムを含んでもよい。解析ステップ(501)の結果は、1つ以上の初期動きベクトル(「iMV」)である。
【0068】
第1の事前抽出〔プリフェッチ〕ステップ(502)において、参照ピクチャメモリにアクセスして、動きベクトル精密化により最終的な動きベクトル(「(1つ以上の)fMV」)を生成するのに必要となりうるサンプルデータを取得することができる。以下、このような必要なメモリアクセスの回数を説明する。符号器システム及び復号器システムは、いくつかの例外を除いて、参照ピクチャサンプルを参照ピクチャメモリに記憶する。このような参照ピクチャメモリは相対的に低速であり、また、そのアクセスは、特定のハードウェア制約によって支配される可能性がある。いくつかの例外を除いて、事前抽出ステップは、例えば、キャッシュラインなどの粒度で参照ピクチャメモリにアクセスし、キャッシュライン全体を高速メモリ、キャッシュメモリ、レジスタなど(以降、「高速メモリ」と呼ばれる)に複製することで、(いくつかの場合には計算コストがかかる)精密化ステップでは高速にアクセスできるようにする。fMVの生成に必要なサンプルデータの参照ピクチャメモリにおける位置は、iMVに基づく従来の動き補償技術によって決定できる。
【0069】
精密化ステップ(503)において、ステップ(502)の事前抽出された参照ピクチャサンプルデータは、iMV及び他の可能なデータとともにfMVの作成に使用される。開示されたテーマは、精密化ステップの特徴を決して制限しない。一つの可能な精密化ステップは、JVET-D0029で説明されているとおりであってもよい。
【0070】
第2の事前抽出ステップにおいて、fMVによって識別される参照ピクチャメモリにおけるサンプルデータを高速メモリに複製することができる。少なくともいくつかの場合に、fMVによってアクセスするサンプルデータは、iMVによってアクセスするサンプルデータと異なることに注意されたい。(これらのデータが常に同じであったとしたら、iMVは常にfMVに等しくなり、精密化ステップは冗長になる。)
【0071】
最後に、再構築ステップ(505)において、fMVによってブロックのサンプルを再構築する。当該再構築ステップは、従来の技術を双方向予測符号化の動き補償ブロックに使用することができる。
【0072】
当業者は、動きベクトル精密化(503)と再構築(505)の両方が補間フィルタを含み得ることを容易に理解することができる。メモリアクセス/帯域幅に関連する属性(例えば、タップの数)及び他の属性(例えば、自己適応性、使用中のフィルタ係数など)の両方に関して、これらのステップに使用されるフィルタは同じでも、異なってもよい。以下の説明では、簡潔にするために、精密化(503)と再構築(505)の両方で同じ補間フィルタを使用すると仮定する。しかしながら、本明細書におけるいかなる内容も、異なる特性(メモリアクセス/帯域幅に関連する特性であるか他の特性であるかに関係ない)の補間フィルタを精密化及び再構築に使用することを阻止することがない。当業者は、異なるフィルタの使用が必要なアクセスの回数にどのように影響するかを容易に理解することができる。以下の説明では、それに関するいくつかの注釈を含む。
【0073】
ここで図6を参照し、各事前抽出ステップに必要な参照ピクチャメモリのメモリ帯域幅は、各事前抽出ステップでアクセスする必要がある参照ピクチャメモリにおけるサンプルの数であり得る。
【0074】
ステップ(502)及びステップ(504)において、事前抽出する必要があるサンプル量は、以下を含む複数の要因に依存する可能性がある、
【0075】
ブロックのサイズ、及び
【0076】
動き補償補間フィルタのタップの数。
【0077】
いくつかの最新のビデオコーデックでは、ブロックのサイズは大きく変化し得る。1つの次元(以降、「ブロック長」と呼ばれる)に焦点を当てて説明すると、ブロック長は、4つの輝度サンプル又は2つの色度サンプルと短くなることもあり、128のサンプル、256のサンプル又はそれ以上と長くなることもある。
【0078】
本明細書のいくつかの実施形態は、(例えば、JVETプロジェクトによる)8タップフィルタを使用する技術に適用可能である。従って、補間される各サンプルについて、8つの参照サンプルにアクセスする必要がある。
【0079】
第1の例において、4つのサンプルのブロック(601)を仮定する(サンプルの1行のみを示している)。ブロック長が4の場合、(円602に示すように)(4+8)-1=11個の参照サンプルにアクセスする必要がある。ここで、最近アクセスされた、同じブロックを補間するために使用される以前のサンプルは、同じブロックの後のサンプルを処理するために、高速メモリに保持されていると仮定している。8本の線(603)は、ブロック(601)の所与のサンプル(604)を補間するために必要な8つの陰影をつけたサンプル(605)を指示する。
【0080】
16のサンプル(606)のブロック長の場合、(16+8)-1=23個の参照サンプルにアクセスする必要がある(607)。この例から、当業者は、補間フィルタによるサンプルアクセスの相対的オーバーヘッドがブロックサイズの増加に応じて減少することを容易に観察することができる。これは、補間フィルタのサイズ(タップ数)がブロックサイズに関係しない場合である。
【0081】
この観察は、小さなブロック補間のオーバーヘッドを妥当な範囲内で維持できる特定の設計選択に繋がる可能性がある。ある実施形態によれば、サンプル又はサンプルラインへのアクセスの回数を、(以下でより詳細に説明されるように)ブロックサイズに基づかせることができる。同じ又は他の実施形態において、ある所定の小さなブロックサイズ(例えば、4サンプル、8サンプルなど)について、ビデオ符号化技術又は規格は、動きベクトル精密化の使用を禁止することができる。同じ又は他の実施形態において、ある所定の小さなブロックサイズについて、ビデオ符号化技術又は規格は、異なるブロックサイズに対して異なる補間フィルタを使用することを要求することができ、上記のオーバーヘッドを最小化するために、有利には、比較的小さなブロックサイズに使用される補間フィルタは、より大きいブロックサイズに使用される補間フィルタよりも少ないタップを使用することができる。
【0082】
2つの事前抽出ステップが存在するので、精密化及び再構築に使用される補間フィルタのタップの数が同じであると仮定すると、アクセス回数は倍増する必要がある。再び8タップ補間フィルタを仮定し、且つ、1つの次元に着目すると、4サンプルのブロックについては、2*(4+8-1)=22回参照サンプルへアクセスする必要があり、16個のサンプルのブロックについては、2*(16+8―1)=46回参照サンプルにアクセスする必要がある。フィルタが異なる場合、当業者は、異なるフィルタのそれぞれに使用されるフィルタタップの数に基づいて上記の算出を容易に修正することができる。
【0083】
iMVとfMVがあまり多様ではないと仮定すると、第1の事前抽出ステップ及び第2の事前抽出ステップにて抽出されたサンプルはオーバーラップする可能性がある。具体的には、iMVとfMVとの差がブロックサイズよりも小さい場合、常にオーバーラップがある。iMVとfMVとの差は、ビデオ符号化技術又は規格の所定の制約であり得る。高速メモリは、第1の事前抽出ステップのサンプルと第2の事前抽出ステップのサンプルとを同時に保持するのに十分な大きさである(又は、言い換えれば、第2の事前抽出ステップの前に高速メモリをフラッシュする必要がない)という仮定の下で考えると、以下のことを簡単に見ることができる。すなわち、再びiMVとfMVの間の適切に制約される最大差を仮定すると、iMVとfMVによってアドレス指定されたサンプルデータ間のオーバーラップのため、第2の事前抽出ステップは、以上の算出で示唆される数のサンプルを抽出する必要がない。
【0084】
よって、単なる各事前抽出ステップで複製されるサンプルの数より良いメモリ帯域幅の近似を得るために、次の第3の因子がある:
【0085】
iMVとfMVとの間の最大差。
【0086】
ここで図7を参照し、再び1次元の場合のみに着目し、iMVによって変位されたサンプル(701)と、fMVによって変位されたサンプル(702)に対して、2サンプルの水平変位によって示される、2サンプルの最大変位を仮定する。この場合、第1の事前抽出ステップのほとんどの事前抽出サンプル、即ち、陰影のない円(703)として示されている全ての参照サンプルは、第2の事前抽出ステップにおいて再利用でき、再び事前抽出する必要がない。しかしながら、第2の事前抽出ステップでは、2つの追加のサンプル(704)が必要とされる。ブロック長が4、8タップフィルタで、iMVとfMVとの間の最大差が2の場合、アクセス回数は(4+8―l)+2=13となり、第2の事前抽出ステップは、最大2つのサンプルを事前抽出する必要がある。16つのサンプルブロックの場合、同様の算出は(16+8―1)+2=25となる。
【0087】
以上の例から、アクセスする必要があるサンプルの数は次のとおりであると推定される。
【0088】
min((ブロック長+フィルタタップ数+最大変位-1),(2*(ブロック長+フィルタタップ数-1))。
【0089】
暫時図5を参照すると、一部のシステム設計では、メモリアクセスの設置は、実際のメモリ伝送自体よりも(時間的に)かなり高価になる可能性がある。従って、このようなシステムでは、単一の事前抽出(第1の事前抽出(502))において、精密化(503)と動き補償/再構築(505)の両方に必要な全てのサンプルを事前抽出し、ステップ(504)は完全に省略することが有利である。これは、以下で説明するように、ブロック長、フィルタタップ、オーバーラップのような影響要因に特定の制約が課される場合に可能である。例えば、ビデオ圧縮技術又は規格によって制約を課すことができる。
【0090】
ここまで、単一のブロックの動き補正に必要なメモリアクセスのみが考慮されていた。1つのピクチャは多くのブロックで構成でき、ブロックサイズが大きい場合と比較して、ブロックサイズが小さい場合に、所与のブロックサイズは比例して大きくなる。上記の例に示すように、ブロックサイズが大きい場合に比較して、ブロックサイズが小さい場合に、ブロックサイズに関するメモリアクセスのオーバーヘッドが大幅に大きくなり、従って、符号器が小さいブロックを選択する場合に、メモリ帯域幅の要件は増加する可能性がある。
【0091】
ビデオ圧縮において、長い補間フィルタは、特にコンテンツ適応的である場合、より優れた圧縮パフォーマンスを実現することができることがよく理解される。同様に、動きベクトルの選択はより自由であり、例えば、iMVとfMVとの差を選択する(可能な変位を最大化することでオーバーラップを最小化する)際の符号器の自由度を含み、これにより、より優れた圧縮パフォーマンスを実現することができる。最後に、ブロックサイズの選択の自由(小さなブロックの使用を含む)は、圧縮パフォーマンスを増加させることができる。
【0092】
従って、3つの影響要因は全てビデオ圧縮技術又は規格によって制約されて、圧縮パフォーマンスの可能性とメモリ帯域幅の増加の可能性のバランスをとることができる。
【0093】
これまでの説明は、1つの次元のみの動きベクトルの分析に焦点を当てた。当業者は、上記の実施形態を2次元に容易に一般化することができ、いくつかの場合、上記の場合と比較して、追加のメモリ帯域幅ニーズは約2の累乗で増加する。
【0094】
しかしながら、そのような一般化は常に必ずしも必要ではない。具体的には、少なくとも一部の符号器及び復号器システムでは、参照メモリは、サンプルの粒度(又は、サイズがビデオコンテンツの属性に直接関係しない抽象的なキャッシュラインの粒度)ではなく、ラインバッファの粒度でアクセスされる。ラインバッファは、参照ピクチャ、参照タイルなどの所与のラインのサンプルの全て(及び、存在する場合に、記憶されている参照ピクチャメタデータ)を含んでもよい。ラインバッファに基づくアーキテクチャでは、上記で仮定したような動き精密化技術のオーバーヘッドは、垂直次元のみを使用して、追加のラインバッファ抽出の粒度で、算出されてもよい。
【0095】
一実施形態において、ビデオ符号化技術又は規格に準拠する符号器又は復号器は、初期動きベクトルiMVと最終的な動きベクトルfMVとの間の最大距離、及び補間フィルタにおけるタップ数のうちの1つ以上に制約を課すことにより、動きベクトル精密化の使用による最大メモリ帯域幅増加の技術的要件と、動きベクトル精密化によって得られる符号化ゲインとのバランスをとることができる。
【0096】
同じ又は他の実施形態において、初期動きベクトルiMVと最終的な動きベクトルfMVとの間の最大距離、及び補間フィルタにおけるタップ数に課される制約は、動きベクトル精密化によるメモリ帯域幅の増加をゼロにすることができるようなものであってもよい。
【0097】
ここで、図8参照し、ラインバッファに基づくアーキテクチャを仮定する。従って、以下に示されるのは再構築されているか、又は、補間もしくは動きベクトル精密化に使用されるサンプルの垂直次元のみであり、これらのサンプルにおけるサンプルの多くは、対応するラインバッファにあり得ることが理解すべきである(サンプルの1行のみについて示し、且つ、部分的にのみ示される)。
【0098】
描かれているのは、iMVによって既に修正された4つの垂直サンプル(801)のブロックサイズであるが、以下の考慮事項はいかなるブロックサイズにも適用できる。さらに、iMVとfMVとの最大差はビデオ圧縮技術又は規格によって2つのサンプルに制限されると仮定し、「上」方向における1つのサンプルは「下」方向における1つのサンプルと同じである。fMVに依存して、これは、ブロックの動き補償に最大6つのサンプル(802)(より正確には、サンプルライン)が関与する可能性があることに繋がる。また、補間フィルタのサイズを6つのサンプルに制限することを考慮する。結果として、事前抽出する必要があるサンプル(或いは、より正確には、サンプルライン)(803)の数、及びそれに伴いメモリ帯域幅の要件は、8タップ補間フィルタがあり、動きベクトル精密化がない場合(804)と同じである。6つのサンプル(802)を補間するための6タップフィルタは6つのサンプル(802)の境界の「上部」にある最大2つのサンプル、及び下部にある3つのサンプル(太線805でマークされる)にアクセスでき、8タップフィルタの場合、上部にある3つのサンプル、及び下部にある4つのサンプル(太線806でマークされる)にアクセスできる。
【0099】
上記の観察を一般化すると、同じ又は他の実施形態において、制約は、初期動きベクトルiMVと最終的な動きベクトルfMVとの間の最大距離と、動きベクトル精密化を使用する際に使用される補間フィルタにおけるタップの数の合計は、動きベクトル精密化を使用しない際に使用される補間フィルタのタップの数と同じであってもよい、というものであってもよい。この場合、動きベクトル精密化を使用しても、メモリ帯域幅は増加しない。
【0100】
同じ又は他の実施形態において、(例えば、ラインバッファアクセスで測定される)メモリアクセス要件のある明確な増加はビデオ圧縮技術又は規格によって受け入れられ得る。これは、動きベクトル精密化に使用される補間フィルタのタップの数(「精密化タップ」)、動きベクトル精密化を使用しない際に使用される補間フィルタのタップの数(「非精密化タップ」)、及び初期動きベクトルiMVと最終的な動きベクトルfMVとの間の最大距離(「距離」)によって表現されてもよい。追加のラインバッファアクセスの数は((精密化タップ+距離)-非精密化タップ)であってもよい。例えば、非精密化タップを8とする。2つの追加のラインバッファが許容できる場合に、ビデオ圧縮技術又は規格は、例えば、精密化タップ=8、及び距離=2という制約を有してもよい。この例示は、動きベクトル精密化の再構築の有無にかかわらず、補間フィルタが同じであり得るという利点を有していてもよい。少なくともあるコンテンツと頻繁に使用される解像度について、最大距離が2であれば、距離値が大きい場合に可能な理論的な符号化効率の向上のほとんどを得るのに十分である。
【0101】
図9は、符号器においてビデオシーケンスを符号化する、又は復号器においてビデオシーケンスを復号化するための例示的な処理900のフローチャートである。いくつかの実施形態において、図9の1つ以上の処理ブロックは、復号器210によって実行されてもよい。いくつかの実施形態において、図9の1つ以上の処理ブロックは、復号器210とは別の、復号器210を含む別のデバイス又はデバイスのグループ(例えば符号器203)によって実行されもよい。
【0102】
図9に示すように、処理900は、ブロックに関連するビデオシーケンスから初期動きベクトルを解析することを含むことができる(ブロック901)。
【0103】
図9にさらに示されるように、処理900は、動きベクトル精密化と動き補償の両方を可能にするように、初期動きベクトルの解析に基づいて、複数のサンプルを決定することを含むことができる(ブロック902)。
【0104】
図9にさらに示されるように、処理900は、複数のサンプルを事前抽出することを含むことができる(ブロック903)。
【0105】
図9にさらに示されるように、処理900は、動きベクトル精密化を実行することで、複数のサンプルの第1のサブセットを使用して最終的な動きベクトルを決定することを含むことができる(ブロック904)。
【0106】
図9にさらに示されるように、処理900は、複数のサンプルの第2のサブセットを使用して動き補償を実行することを含むことができる(ブロック905)。
【0107】
図9は、処理900の例示的なブロックを示したが、いくつかの実施形態において、図9に図示されたこれらのブロックと比べて、処理900は、追加のブロック、より少ないブロック、異なるブロック、又は異なって配置されたブロックを含むことができる。追加又は代替として、処理900の2つ以上のブロックは並行して実行されてもよい。
【0108】
上述した双方向予測動きベクトル精密化におけるメモリ帯域幅最適化技術は、コンピュータ可読命令を使用してコンピュータソフトウェアとして実現され、1つ以上のコンピュータ可読媒体に物理的に格納されてもよい。例えば、図10は開示されたテーマのいくつかの実施形態を実現するのに適したコンピュータシステム(1000)を示す。
【0109】
コンピュータソフトウェアは、任意の適切なマシンコード又はコンピュータ言語によって符号化することができ、アセンブル、コンパイル、リンクなどのメカニズムを介して、命令を含むコードを作成することができ、当該命令は、コンピュータ中央処理ユニット(CPU)、グラフィック処理ユニット(GPU)などによって直接的に実行されるか、又は解釈、マイクロコード実行などによって実行されることができる。
【0110】
当該命令は、例えばパーソナルコンピュータ、タブレット、サーバ、スマートフォン、ゲーム機器、モノのインターネット機器などを含む、様々なタイプのコンピュータ又はそれらのコンポーネントで実行されることができる。
【0111】
図10に示すコンピュータシステム1000のコンポーネントは、本質的に例示であり、本開示の実施形態を実現するためのコンピュータソフトウェアの使用範囲又は機能に制限を加えることを意図するものではない。コンポーネントの配置は、コンピュータシステム1000の例示的な実施形態に示めされるコンポーネントのいずれか、又はそれらの組み合わせに関連する依存性又は要件を有するものとして解釈されるべきではない。
【0112】
コンピュータシステム1000は、特定のヒューマンマシンインタフェース入力機器を含んでもよい。このようなヒューマンマシンインタフェース入力機器は、例えば触覚入力(例えば、キーストローク、スライド、データグローブ移動)、オーディオ入力(例えば、音声、拍手)、視覚入力(例えば、ジェスチャー)、嗅覚入力(図示せず)による1つ以上の人間のユーザーの入力に応答することができる。ヒューマンマシンインタフェース機器はさらに、例えば、オーディオ(例えば、音声、音楽、環境音)、画像(例えば、スキャンした画像、静的画像撮影装置から取得された写真画像)、ビデオ(例えば2次元ビデオ、ステレオビデオが含まれる3次元ビデオ)などの、人間の意識的な入力に必ずしも直接関連しない特定のメディアをキャプチャするために使用されることもできる。
【0113】
ヒューマンマシンインタフェース入力機器は、キーボード1001、マウス1002、タッチパッド1003、タッチパネル1010、データグローブ1004、ジョイスティック1005、マイク1006、スキャナ1007及び撮影装置1008のうちの1つ以上を含んでもよい(それぞれが1つのみ図示される)。
【0114】
コンピュータシステム1000はさらに特定のヒューマンマシンインタフェース出力機器を含んでもよい。このようなヒューマンマシンインタフェース出力機器は、例えば触覚出力、音、光及び匂い/味によって、1つ以上の人間ユーザーの感覚を刺激することができる。このようなヒューマンマシンインタフェース出力機器は、触覚出力機器(例えば、タッチパネル1010、データグローブ1004又はジョイスティック1005による触覚フィードバックがあるが、入力機器として使用されない触覚フィードバック機器もある)、オーディオ出力機器(例えば、スピーカー1009、ヘッドフォン(図示せず))、視覚出力機器(例えば、スクリーン1010であって、CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含み、それぞれはタッチスクリーン入力機能がある場合とない場合、触覚フィードバック機能がある場合とない場合があり、そのうちのいくつかは、ステレオ出力のような手段で、2次元の視覚出力又は3次元以上の出力を出力できる場合がある)、バーチャルリアリティ眼鏡(図示せず)、ホログラフィックディスプレイ及びスモークタンク(図示せず))、プリンター(図示せず)を含むことができる。
【0115】
コンピュータシステム1000はさらに、人間がアクセス可能な記憶装置及びその関連する媒体を含んでもよく、例えば、CD/DVDなどの媒体1021を有するCD/DVD ROM/RW1020などの光学媒体、サムドライブ1022、取り外し可能なハードドライブ又はソリッドステートドライブ1023、従来の磁気媒体(例えば、磁気テープとフロッピーディスク(図示せず))、セキュリティドングル(図示せず)などの専用ROM/ASIC/PLDによる機器などを含んでもよい。
【0116】
また、当業者は、現在開示されたテーマに関連して使用される「コンピュータ可読媒体」という用語には、伝送媒体、搬送波又は他の一時的な信号が含まれていないことを理解するべきである。
【0117】
コンピュータシステム1000はさらに1つ以上の通信ネットワークへのインタフェースを含んでもよい。ネットワークは、例えば無線ネットワーク、有線ネットワーク、光ネットワークであってもよい。ネットワークはさらに、ローカルエリアネットワーク、ワイドエリアネットワーク、メトロポリタンネットワーク、車載ネットワーク、工業用ネットワーク、リアルタイムネットワーク、遅延耐性ネットワークなどであってもよい。ネットワークの例は、例えば、イーサネットなどのローカルエリアネットワーク、無線LAN、セルラーネットワーク(GSM、3G、4G、5G、LTEなどを含む)、有線テレビ又は無線ワイドエリアデジタルネットワーク(有線テレビ、衛星テレビ及び地上波テレビを含む)、車載及び工業ネットワーク(CANBusを含む)などを含む。一部のネットワークは一般的に、ある汎用データポート又は周辺バス(1049)(例えば、コンピュータシステム1000のUSBポート)に接続される外部ネットワークインタフェースアダプタを必要とし、他のネットワークは一般的に、以下で説明するようなシステムバス(例えば、PCコンピュータシステムのイーサネットインタフェース、又はスマートフォンコンピュータシステムのセルラーネットワークインタフェース)に接続されることによって、コンピュータシステム1000のコアに統合される。これらのネットワークのいずれかを使用して、コンピュータシステム1000は、他のエンティティと通信することができる。このような通信は、一方向、受信のみ(例えば、放送テレビ)、一方向送信のみ(例えば、あるCANbus機器へのCANbus)、又は例えば、ローカルエリア又はワイドエリアデジタルネットワークを使用して他のコンピュータシステムに達する双方向あってもよい。上記のようなこれらのネットワークとネットワークインタフェースのそれぞれに、特定のプロトコル及びプロトコルスタックを使用することができる。
【0118】
上記のヒューマンマシンインタフェース機器、人間がアクセス可能な記憶装置及びネットワークインタフェースは、コンピュータシステム1000のコア1040に接続されることができる。
【0119】
コア1040は、1つ以上の中央処理ユニット(CPU)1041、グラフィック処理ユニット(GPU)1042、フィールドプログラマブルゲートアレイ(FPGA)の形の専用プログラマブル処理ユニット1043、特定のタスクのためのハードウェアアクセラレータ1044などを含んでもよい。これらの機器は、読み取り専用メモリ(ROM)1045、ランダムアクセスメモリ1046、内部大容量記憶装置1047(例えばユーザーがアクセスできない内部ハードディスクドライブ、SSDなど)とともに、システムバス1048を介して接続することができる。一部のコンピュータシステムにおいて、システムバス1048に1つ以上の物理プラグの形でアクセスできることで、追加のCPU、GPUなどによる拡張を可能にすることができる。周辺機器は、直接的又は周辺バス1049を介してコアのシステムバス1048に接続することができる。周辺バスのアーキテクチャはPCI、USBなどを含む。
【0120】
CPU1041、GPU1042、FPGA1043及びアクセラレータ1044は特定の命令を実行でき、これらの命令を組み合わせると、上記のコンピュータコードを構成する。当該コンピュータコードはROM1045又はRAM1046に記憶されてもよい。一時的なデータはRAM1046に記憶されることもでき、永久データは例えば内部大容量記憶装置1041に記憶されることができる。キャッシュメモリを使用することによって、記憶装置のいずれかへの高速ストレージ及び検索を実現し、当該キャッシュメモリは1つ以上のCPU1041、GPU1042、大容量記憶装置1041、ROM1045、RAM1046などに密接に関連することができる。
【0121】
コンピュータ可読媒体は、コンピュータが実現する様々な動作を実行するためのコンピュータコードを有することができる。媒体とコンピュータコードは、本開示の目的のために、特別に設計及び構築される媒体とコンピュータコードであってもよいし、又は、それらは、コンピュータソフトウェアの当業者にとって周知であり、使用可能なタイプのものであってもよい。
【0122】
限定ではなく例として、アーキテクチャ1000を有するコンピュータシステム、特に、コア1040は、(1つ以上の)プロセッサ(CPU、GPU、FPGA、アクセラレータなどを含む)が1つ以上の有形コンピュータ可読媒体に実装されるソフトウェアを実行することで提供される機能を提供することができる。このようなコンピュータ可読媒体は、上記のような、ユーザーがアクセス可能な大容量記憶装置に関する媒体、及び例えばコア内部大容量記憶装置1047又はROM1045などのコア1040の非一時的な特定の記憶装置であってもよい。本開示の様々な実施形態を実現するためのソフトウェアはこのような機器に記憶され、コア1040によって実行されることができる。特定のニーズに応じて、コンピュータ可読媒体には1つ以上の記憶装置又はチップが含まれてもよい。ソフトウェアは、コア1040、特にその中のプロセッサ(CPU、GPU、FPGAなどを含む)に、本明細書では説明されている特定の処理又は特定の処理の特定の部分を実行させることができ、RAM1046に記憶されるデータ構成を限定すること、及びソフトウェアによって限定された処理によってこのようなデータ構成を修正することが含まれる。さらに又は代替として、コンピュータシステムは、ロジックハードワイヤードによって提供される、又は他の形式で回路(例えば、アクセラレータ1044)に実装される機能を提供することができ、当該回路は、ソフトウェアの代わりに、又はソフトウェアとともに動作して、本明細書では説明されている特定の処理又は特定の処理の特定の部分を実行することができる。適切な場合、ソフトウェアに対する言及にはロジックが含まれ、逆に、ロジックに対する言及にはソフトウェアが含まれてもよい。適切な場合、コンピュータ可読媒体に対する言及には、実行のためのソフトウェアが記憶される回路(例えば、集積回路(IC))、実行のためのロジックを具現化する回路、又はその両方が含まれてもよい。本開示は、ハードウェアとソフトウェアとの任意の適切な組み合わせを含む。
【0123】
この開示は、いくつかの例示的な実施例を説明したが、本開示の範囲内に含まれる変更、置換、及び様々な代替均等物が存在する。従って、当業者は、本明細書では明示的に示されていないか、又は記載されていないが、本開示の原理を具現化したのでその精神及び範囲内にある多数のシステム及び方法を考案できることが認識される。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10