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

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

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

特表2022-521168ビデオコーディング方法、装置及びコンピュータプログラム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-04-06
(54)【発明の名称】ビデオコーディング方法、装置及びコンピュータプログラム
(51)【国際特許分類】
   H04N 19/105 20140101AFI20220330BHJP
   H04N 19/46 20140101ALI20220330BHJP
   H04N 19/593 20140101ALI20220330BHJP
【FI】
H04N19/105
H04N19/46
H04N19/593
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2021547118
(86)(22)【出願日】2020-07-08
(85)【翻訳文提出日】2021-08-11
(86)【国際出願番号】 US2020041211
(87)【国際公開番号】W WO2021007328
(87)【国際公開日】2021-01-14
(31)【優先権主張番号】62/873,054
(32)【優先日】2019-07-11
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】62/873,576
(32)【優先日】2019-07-12
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】16/923,599
(32)【優先日】2020-07-08
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【弁理士】
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】シャオジョン・シュ
(72)【発明者】
【氏名】シャン・リュウ
(72)【発明者】
【氏名】シャン・リ
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159MA04
5C159MA05
5C159MA21
5C159MC11
5C159ME01
5C159PP05
5C159PP06
5C159PP07
5C159RC12
5C159TA12
5C159TA33
5C159TB08
5C159TC26
5C159TD12
5C159UA02
5C159UA05
5C159UA33
(57)【要約】
本開示の態様では、ビデオ符号化/復号化のための方法、装置及び非一時的コンピュータ可読媒体を提供する。方法では、コーディングされたビットストリーム中のコーディングツリーユニット(CTU)の対象のブロックの予測情報を復号化する。予測情報は、対象のブロックがイントラブロックコピー(IBC)モードでコーディングされることを示す。対象のブロックに対する参照ブロックを決定する。参照ブロックのサンプルを含むメモリ領域の個数はCTUのメモリ領域の総数未満である。参照ブロックに基づいて対象のブロックを再構成する。
【特許請求の範囲】
【請求項1】
デコーダにおいてビデオコーディングを行なう方法であって、
コーディングされたビットストリーム中のコーディングツリーユニット(CTU)の対象のブロックの予測情報を復号化するステップであって、前記予測情報は、前記対象のブロックがイントラブロックコピー(IBC)モードでコーディングされることを示す、ステップと、
前記対象のブロックに対する参照ブロックを決定するステップであって、前記参照ブロックのサンプルを含むメモリ領域の個数は前記CTUのメモリ領域の総数未満である、ステップと、
前記参照ブロックに基づいて前記対象のブロックを再構成するステップと
を備える方法。
【請求項2】
前記参照ブロック全体が前記CTUの前記メモリ領域の、1つのメモリ領域に含まれる、請求項1に記載の方法。
【請求項3】
前記CTUのサイズがサイズ閾値以上であることに基づいて前記1つのメモリ領域のサイズが前記サイズ閾値に等しい、請求項2に記載の方法。
【請求項4】
前記CTUの前記サイズがサイズ閾値未満であることに基づいて前記1つのメモリ領域のサイズが前記CTUのサイズに等しい、請求項2に記載の方法。
【請求項5】
前記参照ブロックの前記サンプルの列全体が前記CTUの前記メモリ領域の1つに含まれる、請求項1に記載の方法。
【請求項6】
前記参照ブロックの前記サンプルの行全体が前記CTUの前記メモリ領域の1つに含まれる、請求項1に記載の方法。
【請求項7】
前記参照ブロックの前記サンプルの上の行が上下方向に前記参照ブロックの前記サンプルの下の行の上にある、請求項6に記載の方法。
【請求項8】
コーディングされたビットストリーム中のコーディングツリーユニット(CTU)の対象のブロックの予測情報を復号化し、前記予測情報は、前記対象のブロックがイントラブロックコピー(IBC)モードでコーディングされることを示し、
前記対象のブロックに対する参照ブロックを決定し、前記参照ブロックのサンプルを含むメモリ領域の個数は前記CTUのメモリ領域の総数未満であり、
前記参照ブロックに基づいて前記対象のブロックを再構成する
ように構成される処理回路を備える装置。
【請求項9】
前記参照ブロック全体が前記CTUの前記メモリ領域の、1つのメモリ領域に含まれる、請求項8に記載の装置。
【請求項10】
前記CTUのサイズがサイズ閾値以上であることに基づいて前記1つのメモリ領域のサイズが前記サイズ閾値に等しい、請求項9に記載の装置。
【請求項11】
前記CTUの前記サイズがサイズ閾値未満であることに基づいて前記1つのメモリ領域のサイズが前記CTUのサイズに等しい、請求項9に記載の装置。
【請求項12】
前記参照ブロックの前記サンプルの列全体が前記CTUの前記メモリ領域の1つに含まれる、請求項8に記載の装置。
【請求項13】
前記参照ブロックの前記サンプルの行全体が前記CTUの前記メモリ領域の1つに含まれる、請求項8に記載の装置。
【請求項14】
前記参照ブロックの前記サンプルの上の行が上下方向に前記参照ブロックの前記サンプルの下の行の上にある、請求項13に記載の装置。
【請求項15】
コーディングされたビットストリーム中のコーディングツリーユニット(CTU)の対象のブロックの予測情報を復号化することであって、前記予測情報は、前記対象のブロックがイントラブロックコピー(IBC)モードでコーディングされることを示す、ことと、
前記対象のブロックに対する参照ブロックを決定することであって、前記参照ブロックのサンプルを含むメモリ領域の個数は前記CTUのメモリ領域の総数未満である、ことと、
前記参照ブロックに基づいて前記対象のブロックを再構成することと
を実行するための、少なくとも1つのプロセッサによって実行可能なプログラムを記憶する非一時的コンピュータ可読記憶媒体。
【請求項16】
前記参照ブロック全体が前記CTUの前記メモリ領域の、1つのメモリ領域に含まれる、請求項15に記載の非一時的コンピュータ可読記憶媒体。
【請求項17】
前記CTUのサイズがサイズ閾値以上であることに基づいて前記1つのメモリ領域のサイズが前記サイズ閾値に等しい、請求項16に記載の非一時的コンピュータ可読記憶媒体。
【請求項18】
前記CTUの前記サイズがサイズ閾値未満であることに基づいて前記1つのメモリ領域のサイズが前記CTUのサイズに等しい、請求項16に記載の非一時的コンピュータ可読記憶媒体。
【請求項19】
前記参照ブロックの前記サンプルの列全体が前記CTUの前記メモリ領域の1つに含まれる、請求項15に記載の非一時的コンピュータ可読記憶媒体。
【請求項20】
前記参照ブロックの前記サンプルの行全体が前記CTUの前記メモリ領域の1つに含まれる、請求項15に記載の非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
参照による援用
本出願は、2020年7月8日に出願された米国特許出願第16/923,599号’’METHOD AND APPARATUS FOR VIDEO CODING’’に対する優先権の利益を主張し、この米国特許出願は、2019年7月11日に提出された米国仮出願第62/873,054号’’CONSTRAINTS ON REFERENCE SAMPLE LOCATIONS FOR IBC WITH DEDICATED BUFFER’’と、2019年7月12日に提出された米国仮出願第62/873,576号’’CONSTRAINTS ON REFERENCE SAMPLE LOCATIONS FOR IBC WITH DEDICATED BUFFER’’との優先権の利益を主張する。先行する出願の開示全体が完全な状態で本出願で参照により援用される。
【0002】
本開示では概してビデオコーディングに関する実施形態を説明する。
【背景技術】
【0003】
本明細書に記載されている背景の説明は開示の背景を概略的に示すためのものである。この背景の記載箇所で説明されている範囲の、現時点で記名されている発明者の成果と、これ以外の、出願時点での先行技術としての条件を満たさないといえる説明の態様とは本開示に対する先行技術としては明示的にも暗示的にも認められない。
【0004】
ビデオコーディング及び復号化は動き補償とともにピクチャ間予測を用いて実行することができる。圧縮されていないデジタルビデオはピクチャ列を含む場合があり、各ピクチャは所定の空間的大きさを持ち、たとえば1920×1080個の輝度サンプル、及び関連する色度サンプルという空間的大きさを持つ。ピクチャ列は、不変であったり可変であったりするピクチャレート(非公式にはフレームレートとしても知られている)を持ち、たとえば毎秒60ピクチャすなわち60Hzのピクチャレート持つ場合がある。圧縮されていないビデオには厳しいビットレート要件がある。たとえば、1サンプルあたり8ビットの1080p60 4:2:0のビデオ(フレームレート60Hzで1920×1080輝度サンプルの解像度)は約1.5Gbit/sの帯域幅を要する。このようなビデオ1時間には600GByte以上の記憶領域が必要である。
【0005】
ビデオコーディング及び復号化の目的の1つは、圧縮によって入力ビデオ信号の冗長さを削減することであるといえる。圧縮は、上述の帯域幅要件や記憶領域要件を緩和するのに有用であるといえ、場合によっては、2桁以上緩和するのに有用であるといえる。可逆圧縮と非可逆圧縮との両方と、これらの組合せとを用いることができる。可逆圧縮とは、圧縮された元の信号から元の信号の厳密な複製を再構成することができる手法を指す。非可逆圧縮を用いると、再構成された信号は元の信号とは同一ではない場合があるが、元の信号と再構成された信号との間の歪みは、再構成された信号が目的のアプリケーションに用いることができるようになる程度に十分小さい。ビデオの場合には、非可逆圧縮が広く用いられている。容認される歪みの量はアプリケーションに依存し、たとえば、特定の民生用ストリーミングアプリケーションのユーザはテレビ配信アプリケーションのユーザよりも大きい歪みを容認する場合がある。圧縮率の実現可能性は、許容可能な/容認可能な歪みが大きいと圧縮率を大きくすることができることに影響し得る。
【0006】
たとえば、動き補償、変換、量子化やエントロピコーディングを含む、いくつかの幅広いカテゴリから得られる手法をビデオエンコーダ及びデコーダに利用することができる。
【0007】
ビデオコーデック手法はイントラコーディングとして知られている手法を含むことができる。イントラコーディングでは、以前に再構成された参照ピクチャからサンプル又はその他データを参照せずにサンプル値を表現する。いくつかのビデオコーデックでは、ピクチャをサンプルのブロックに空間的に細分する。サンプルのすべてのブロックをイントラモードでコーディングする場合、当該ピクチャがイントラピクチャであることが可能である。イントラピクチャと、独立デコーダリフレッシュピクチャなどのその派生とを用いてデコーダの状態をリセットすることができるので、これを、コーディングされたビデオのビットストリームやビデオのセッションの最初の画像として用いたり、静止画像として用いたりすることができる。イントラブロックのサンプルが変換を受けることが可能であり、変換係数をエントロピコーディングの前に量子化することができる。イントラ予測は、変換前のドメインでサンプル値を最小限にする手法であることが可能である。場合によっては、変換後のDC値が小さく、AC係数が小さいほど、所与の量子化ステップで必要なビットのサイズが小さくなり、これはエントロピコーディング後のブロックを表わす。
【0008】
たとえばMPEG-2世代のコーディング手法で知られているコーディングなどの従来のイントラコーディングではイントラ予測を用いていない。しかし、いくつかのより新規のビデオ圧縮手法は、たとえば、空間的に近隣のデータのブロックや復号化順で先行するデータのブロックの符号化/復号化の際に得られる周囲のサンプルデータ及び/又はメタデータから試行する手法を含む。以下、このような手法を「イントラ予測」手法と称する。少なくともいくつかの例では、イントラ予測で、再構成中の対象のピクチャの参照データしか用いておらず、参照ピクチャの参照データは用いていないことに留意する。
【0009】
多くの異なる形態のイントラ予測が存在することが可能である。このような手法の1つ以上を所与のビデオコーディング技術に用いることができる場合、用いられる手法をイントラ予測モードでコーディングすることができる。いくつかの例では、モードは下位モード及び/又はパラメータを有することができ、これを個別にコーディングしたりモードコードワードに含ませたりすることができる。所与のモード/下位モード/パラメータの組合せにどのコードワードを用いるかによって、イントラ予測によるコーディング効率の向上に影響を及ぼすことができるので、コードワードをビットストリームに変換するのに用いられるエントロピコーディング技術に影響を及ぼすことができる。
【0010】
イントラ予測の特定のモードがH.264から導入され、H.265で改良され、ジョイント探索モデル(JEM)、多用途ビデオコーディング(VVC)、ベンチマークセット(BMS)などの新規のコーディング技術でさらに改良された。既に利用可能なサンプルに属している近隣のサンプルの値を用いて予測値ブロックを形成することができる。方向に応じて、近隣のサンプルのサンプル値を複製して予測値ブロックに入れる。用いられている方向の方の参照値をそのビットストリームにおいてコーディングすることができるし、参照値そのものを予測してもよい。
【0011】
図1Aを参照して、H.265の可能な33個の予測値方向(35個のイントラモードの33個のアンギュラモードに対応する)から得られる9つの予測値方向の部分集合が右下に示されている。矢印が集まる(101)点は予測中のサンプルを表わす。矢印はサンプルを予測している方向を表わす。たとえば、矢印(102)は、水平位置から45度の角度で、1つ以上のサンプルから右上に向かってサンプル(101)を予測することを示す。同様に、矢印(103)は、水平位置から22.5度の角度で、1つ以上のサンプルからサンプル(101)の左下に向かってサンプル(101)を予測することを示す。
【0012】
引き続き図1Aを参照して、左上には4×4個のサンプルの正方形ブロック(104)が示されている(太い破線で示されている)。正方形ブロック(104)は16個のサンプルを含み、各々には、「S」と、サンプルのY次元の位置(たとえば行インデックス)と、サンプルのX次元の位置(たとえば列インデックス)とを含む指標が付されている。たとえば、サンプルS21は、(上から)Y次元において2番目のサンプルであって、(左から)X次元において1番目のサンプルである。同様に、サンプルS44はY及びX次元においてブロック(104)中で4番目のサンプルである。ブロックのサイズが4×4サンプルであれば、S44は右下にある。同様の番号の付け方にしたがった参照サンプルがさらに示されている。参照サンプルには、Rと、ブロック(104)に対する参照サンプルのY位置(たとえば行インデックス)及びX位置(列インデックス)とを含む指標が付されている。H.264でもH.265でも、予測サンプルは再構成中にブロックの近隣にある。したがって、負の値を用いる必要がない。
【0013】
ピクチャ内予測は、シグナリングされた予測方向に応じて割り当てられるように近隣のサンプルから参照サンプル値を複製することによって機能することができる。たとえば、当該ブロックについて、矢印(102)に合致する予測方向を示すシグナリングを、コーディングされたビデオビットストリームが含むと仮定する、すなわち、水平位置から45度の角度で、1つ以上の予測サンプルから右上に向かってサンプルを予測することを示すシグナリングを、コーディングされたビデオビットストリームが含むと仮定する。この場合、同じ参照サンプルR05からサンプルS41,S32,S23及びS14を予測する。その後、参照サンプルR08からサンプルS44を予測する。
【0014】
いくつかの例では、特に方向を45度で均等に分割することができない場合、参照サンプルを計算するために、複数の参照サンプルの値をたとえば内挿を通じて組み合せてもよい。
【0015】
ビデオコーディング技術が発展するのに応じて、可能な方向の個数が増大してきた。H.264(2003年)では、異なる9つの方向を表現することができた。これがH.265(2013年)では33個まで増加したが、JEM/VVC/BMSが開示時点で最大65個の方向をサポートすることができる。最も確からしい方向を特定するために実験が行なわれてきたが、少数のビットの場合のこのような確からしい方向を表現するのに、確からしさが低い方向についてのなんらかの不利益を許容しつつ、エントロピコーディングのいくつかの技術を用いている。さらに、場合によっては、近隣にある既に復号化されたブロックで用いられている近隣の方向から方向そのものを予測することができる。
【0016】
図1BはJEMにしたがう65個のイントラ予測方向を示す概略図(105)を示しており、多数の時間的な予測方向が示されている。
【0017】
方向を表現するコーディングされたビデオビットストリーム中のイントラ予測方向ビットのマッピングはビデオコーディング技術が変わると異なる場合があり、このマッピングは、たとえば、予測方向の単純な直接マッピングから、イントラ予測モード、コードワード、最も可能性が高いモードをもたらす複雑な適合方式などの手法にまで及ぶことができる。しかし、すべての場合において、いくつかの方向よりもビデオコンテンツで統計的に起こる確からしさが低いいくつかの方向が存在し得る。ビデオ圧縮の目的が冗長さの削減であるので、このような確からしさが低い方向は、ビデオコーディング技術が良好に機能する場合、確からしさがより高い方向よりも多数のビットによって表現される。
【0018】
動き補償は非可逆圧縮法であることが可能であり、また、動き補償は、以前に再構成されたピクチャ又はその一部(参照ピクチャ)から得られるサンプルデータのブロックが、動きベクトル(以下、MV)によって示される方向に空間的にシフトされた後、新たに再構成されたピクチャ又はピクチャの部分の予測に用いられるという手法に関係することが可能である。場合によっては、参照ピクチャが再構成が行なわれている時点のピクチャと同じである場合がある。MVは2つの次元X及びY又は3つの次元を持つことができ、第3の次元は用いられている参照ピクチャに関する指標である(第3の次元は間接的に時間次元であることが可能である)。
【0019】
いくつかのビデオ圧縮技術では、サンプルデータのある領域に適用可能なMVを他のMVから予測することができ、たとえば、再構成中の領域に空間的に隣接するサンプルデータの別の領域に関連するものや、復号化順で当該MVに先行するものから予測することができる。このようにすることでMVをコーディングするのに必要なデータの量を実質的に削減することができ、これにより、冗長さを取り除いて圧縮を向上させることができる。たとえば、カメラから得られた入力ビデオ信号(未加工ビデオと呼ばれている)をコーディングする場合、1つのMVを適用可能な領域よりも大きい領域が同様の方向に移動することから、場合によっては、近隣の領域のMVから導出された同様の動きベクトルを用いて当該領域を予測することができるという統計的確からしさが存在するので、MV予測は効果的に機能することができる。その結果、所与の領域で検知されるMVが周囲のMVから予測されたMVと同様になったり同一であったりし、これを、エントロピコーディングの後、MVを直接コーディングする場合に用いられることになるビット数よりも少ないビット数で表現することができる。いくつかの例では、MV予測は、元の信号(すなわちサンプルストリーム)から導出される信号(すなわちMV)の可逆圧縮の例であることが可能である。他の例では、たとえば、周囲のいくつかのMVから予測値を計算するときの丸め誤差によりMV予測そのものが不可逆になる場合がある。
【0020】
様々なMV予測メカニズムがH.265/HEVC(ITU-T Rec.H.265,’’High Efficiency Video Coding’’,December 2016)で説明されている。H.265が提供する多くのMV予測メカニズムのうちから、本出願では以下「空間的マージ」と称する技術を説明する。
【0021】
図1Cを参照して、対象のブロック(111)は、動き探索プロセスの際にエンコーダによって検知されて、空間的にシフトされた同じサイズの以前のブロックから予想可能であるサンプルを含むことができる。当該MVを直接コーディングする代わりに、1つ以上の参照ピクチャに関連づけられたメタデータからMVを導出することができ、たとえば、A0,A1及びB0,B1,B2(それぞれ112~116)で示されている周囲の5つのサンプルのいずれか1つに関連づけられたMVを用いて、最新(復号化順)の参照画像からMVを導出することができる。H.265において、MV予測では、近隣のブロックが用いている同じ参照ピクチャから得られる予測値を用いることができる。
【発明の概要】
【発明が解決しようとする課題】
【0022】
本開示の態様では、ビデオ符号化/復号化のための方法を提供する。
【課題を解決するための手段】
【0023】
方法では、コーディングされたビットストリーム中のコーディングツリーユニット(CTU)の対象のブロックの予測情報を復号化する。予測情報は、対象のブロックがイントラブロックコピー(IBC)モードでコーディングされることを示す。対象のブロックに対する参照ブロックを決定する。参照ブロックのサンプルを含むメモリ領域の個数はCTUのメモリ領域の総数未満である。参照ブロックに基づいて対象のブロックを再構成する。
【0024】
一実施形態では、参照ブロック全体がCTUのメモリ領域の1つのメモリ領域に含まれる。
【0025】
一実施形態では、CTUのサイズがサイズ閾値以上であることに基づいて1つのメモリ領域のサイズがサイズ閾値に等しい。
【0026】
一実施形態では、CTUのサイズがサイズ閾値未満であることに基づいて1つのメモリ領域のサイズがCTUのサイズに等しい。
【0027】
一実施形態では、参照ブロックのサンプルの列全体がCTUのメモリ領域の1つに含まれる。
【0028】
一実施形態では、参照ブロックのサンプルの行全体がCTUのメモリ領域の1つに含まれる。
【0029】
一実施形態では、参照ブロックのサンプルの上の行が上下方向に参照ブロックのサンプルの下の行の上にある。
【0030】
本開示の態様では、ビデオ符号化/復号化のための装置を提供する。装置は、コーディングされたビットストリーム中のコーディングツリーユニット(CTU)の対象のブロックの予測情報を復号化する処理回路を含む。予測情報は、対象のブロックがイントラブロックコピー(IBC)モードでコーディングされることを示す。処理回路は対象のブロックに対する参照ブロックを決定する。参照ブロックのサンプルを含むメモリ領域の個数はCTUのメモリ領域の総数未満である。処理回路は参照ブロックに基づいて対象のブロックを再構成する。
【0031】
本開示の態様では、ビデオ符号化/復号化のためにコンピュータによって実行されるときにビデオ符号化/復号化のための方法のいずれか1つ又はこれらの組合せをコンピュータに実行させる指示を記憶する非一時的コンピュータ可読媒体も提供する。
【0032】
以下の詳細な説明と添付の図面とから、開示されている保護対象のさらなる特徴、性質及び様々な効果がより明らかになる。
【図面の簡単な説明】
【0033】
図1A】イントラ予測モードの典型的な部分集合の概略図である。
図1B】典型的なイントラ予測方向の図である。
図1C】一例における対象のブロックとその周囲の空間的マージ候補との概略図である。
図2】一実施形態に係る通信システムの簡略ブロック図の概略図である。
図3】一実施形態に係る通信システムの簡略ブロック図の概略図である。
図4】一実施形態に係るデコーダの簡略ブロック図の概略図である。
図5】一実施形態に係るエンコーダの簡略ブロック図の概略図である。
図6】別の実施形態に係るエンコーダのブロック図を示す。
図7】別の実施形態に係るデコーダのブロック図を示す。
図8】一実施形態に係る、イントラブロックコピー(IBC)予測モードの例を示す。
図9A】一実施形態に係る、IBC予測モードの更新プロセスにおける許容参照領域の例を示す。
図9B】一実施形態に係る、IBC予測モードの更新プロセスにおける許容参照領域の例を示す。
図9C】一実施形態に係る、IBC予測モードの更新プロセスにおける許容参照領域の例を示す。
図9D】一実施形態に係る、IBC予測モードの更新プロセスにおける許容参照領域の例を示す。
図10A】一実施形態に係る、参照サンプルメモリの異なる領域から得られる参照ブロックのサンプルの例を示す。
図10B】一実施形態に係る、参照サンプルメモリの異なる領域から得られる参照ブロックのサンプルの例を示す。
図11】参照サンプルメモリ中の所定の個数のメモリ領域内にあるように参照ブロックのサンプルに制約を課す、一実施形態に係る例を示す。
図12】一実施形態に係る典型的なプロセスの概略を示すフローチャートを示す。
図13】一実施形態に係るコンピュータシステムの概略図である。
【発明を実施するための形態】
【0034】
I.ビデオエンコーダ及びデコーダ
図2は、本開示の一実施形態に係る通信システム(200)の簡略ブロック図を示す。通信システム(200)は、互いとたとえばネットワーク(250)を介して通信することができる複数の端末装置を含む。たとえば、通信システム(200)はネットワーク(250)を介して相互接続されている端末装置(210)及び(220)の第1のペアを含む。図2の例では、端末装置(210)及び(220)の第1のペアはデータの一方向伝送を行なう。たとえば、端末装置(210)はネットワーク(250)を介して他の端末装置(220)に送信するためにビデオデータ(たとえば、端末装置(210)によって撮像されたビデオピクチャのストリーム)をコーディングしてもよい。符号化されたビデオデータを1つ以上のコーディングされたビデオビットストリームとして送信することができる。端末装置(220)はコーディングされたビデオデータをネットワーク(250)から受信し、コーディングされたビデオデータを復号化してビデオピクチャを復元し、復元されたビデオデータに応じたビデオピクチャを表示することができる。メディア提供アプリケーションなどで一方向データ伝送が共通化されていてもよい。
【0035】
別の例では、通信システム(200)は、たとえばテレビ会議の際に行なわれる場合があるコーディングされたビデオデータの双方向伝送を行なう端末装置(230)及び(240)の第2のペアを含む。データの双方向伝送の場合、一例であるが、端末装置(230)及び(240)の各端末装置はネットワーク(250)を介して端末装置(230)及び(240)のうちの他方の端末装置に送信するために、ビデオデータ(たとえば、端末装置によって撮像されたビデオピクチャのストリーム)をコーディングしてもよい。端末装置(230)及び(240)の各端末装置は、端末装置(230)及び(240)のうちの他方の端末装置によって送信されたコーディングされたビデオデータの受信も行なってもよく、コーディングされたビデオデータを復号化してビデオピクチャを復元し、復元されたビデオデータに応じたビデオピクチャを、アクセス可能な表示装置で表示してもよい。
【0036】
図2の例では、端末装置(210),(220),(230)及び(240)をサーバ、パーソナルコンピュータ及びスマートフォンとして例示することができるが、本開示の原理をそのように限定しなくてもよい。本開示の実施形態では、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤ及び/又は専用のテレビ会議機器を用いる適用例が考えられる。ネットワーク(250)は、たとえば配線(有線)及び/又は無線通信ネットワークを含む、端末装置(210),(220),(230)及び(240)間で、コーディングされたビデオデータを伝達する任意の数のネットワークを表わす。通信ネットワーク(250)は回線交換及び/又はパケット交換チャンネルでデータを交換してもよい。代表的なネットワークは、電気通信ネットワーク、ローカルエリアネットワーク、広域ネットワーク及び/又はインターネットを含む。本例の説明上、以下本出願で説明されない限り、ネットワーク(250)のアーキテクチャ及びトポロジは本開示の動作に重要ではない場合がある。
【0037】
図3は、開示されている保護対象に適用する例として、ストリーミング環境におけるビデオエンコーダ及びビデオデコーダの配置を示す。開示されている保護対象を、たとえば、テレビ会議、デジタルテレビ、CD、DVD、メモリスティックを含むデジタル媒体への圧縮されたビデオの記憶などを含む他のビデオを使用可能な適用例に同様に適用可能であることが可能である。
【0038】
ストリーミングシステムは、たとえば圧縮されていないビデオピクチャのストリーム(302)を生成するビデオ供給源(301)、たとえばデジタルカメラを含むことができる撮像サブシステム(313)を含んでもよい。一例では、ビデオピクチャのストリーム(302)はデジタルカメラによって撮られるサンプルを含む。符号化されたビデオデータ(304)(すなわちコーディングされたビデオビットストリーム)と比較する場合にデータ量が多いことを強調するためにビデオピクチャのストリーム(302)を太線で示しているが、そのビデオピクチャのストリーム(302)を、ビデオ供給源(301)に接続されているビデオエンコーダ(303)を含む電子装置(320)によって処理することができる。ビデオエンコーダ(303)は、以降で詳細に説明されている、開示されている保護対象の態様を可能にしたり実施したりするハードウェア、ソフトウェア又はこれらの組合せを含むことができる。ビデオピクチャのストリーム(302)と比較する場合にデータ量が少ないことを強調するために、符号化されたビデオデータ(304)(すなわち符号化されたビデオビットストリーム(304))を細線で示しているが、この符号化されたビデオデータ(304)を、後の使用のためにストリーミングサーバ(305)に記憶することができる。図3のクライアントサブシステム(306)及び(308)などの1つ以上のストリーミングクライアントサブシステムはストリーミングサーバ(305)にアクセスして、符号化されたビデオデータ(304)の複製(307)及び(309)を取得することができる。クライアントサブシステム(306)は、たとえば電子装置(330)中にあるビデオデコーダ(310)を含むことができる。ビデオデコーダ(310)は符号化されたビデオデータの複製(307)を入力して復号化し、ディスプレイ(312)(たとえば、表示画面)又はその他描画する装置(図示せず)に描画することができるビデオピクチャの出力ストリーム(311)を生成する。いくつかのストリーミングシステムでは、符号化されたビデオデータ(304),(307)及び(309)(たとえばビデオビットストリーム)を特定のビデオコーディング/圧縮標準にしたがってコーディングすることができる。このような標準の例にはITU-T勧告H.265が含まれる。一例では、開発中のビデオコーディング標準が非公式には多用途ビデオコーディング(VVC)として知られている。開示されている保護対象をVVCを前提として用いてもよい。
【0039】
電子装置(320)及び(330)が他の構成要素(図示せず)を含むことができることに留意する。たとえば、電子装置(320)がビデオデコーダ(図示せず)を含むことができ、同様に、電子装置(330)がビデオエンコーダ(図示せず)を含むことができる。
【0040】
図4は本開示の一実施形態に係るビデオデコーダ(410)のブロック図を示す。ビデオデコーダ(410)を電子装置(430)に含ませることができる。電子装置(430)は受信器(431)(たとえば受信回路)を含むことができる。ビデオデコーダ(410)を図3の例のビデオデコーダ(310)の代わりに用いることができる。
【0041】
受信器(431)は、ビデオデコーダ(410)によって復号化されることになる1つ以上のコーディングされたビデオ列を受信してもよく、一度に1つのコーディングされたビデオ列を同じ実施形態で受信したり別の実施形態で受信したりし、コーディングされた各ビデオ列の復号化は他のコーディングされたビデオ列とは独立している。コーディングされたビデオ列をチャンネル(401)から受信してもよく、チャンネル(401)は、符号化されたビデオデータを記憶する記憶装置につなげられたハードウェア/ソフトウェアであってもよい。受信器(431)は他のデータ、たとえばコーディングされた音声データ及び/又は付属データストリームとともに符号化されたビデオデータを受信してもよく、当該他のデータを、それに対応する所用のもの(図示せず)に転送してもよい。受信器(431)はコーディングされたビデオ列を他のデータから分離してもよい。ネットワークジターに対処するために、受信器(431)とエントロピデコーダ/パーサ(420)(以下「パーサ(420)」)との間にバッファメモリ(415)を接続してもよい。いくつかの適用例では、バッファメモリ(415)はビデオデコーダ(410)の一部である。他の例では、バッファメモリ(415)はビデオデコーダ(410)外に存在することが可能である(図示せず)。さらに他の例では、たとえばネットワークのジッタに対処するために、ビデオデコーダ(410)外にバッファメモリ(図示せず)が存在することが可能であり、これに加えて、たとえばプレイアウトのタイミングを処理するために、ビデオデコーダ(410)内に別のバッファメモリ(415)が存在することが可能である。受信器(431)が十分な帯域幅及び制御性を持つ記憶/転送装置やアイソクロナスネットワークからデータを受信するものである場合、バッファメモリ(415)を要さずともよいし、バッファメモリ(415)が小規模であることが可能である。インターネットなどのベストエフォートパケットネットワークに用いる場合には、バッファメモリ(415)を要する場合があり、バッファメモリ(415)は比較的大規模であることが可能であり、かつ最適なサイズのメモリであることが可能であることが有効であり、バッファメモリ(415)をビデオデコーダ(410)外のオペレーティングシステムや同様の要素(図示せず)で少なくとも部分的に実施してもよい。
【0042】
ビデオデコーダ(410)は、コーディングされたビデオ列からシンボル(421)を再構成するパーサ(420)を含んでもよい。このようなシンボルのカテゴリにはビデオデコーダ(410)の動作を管理するのに用いられる情報が含まれ、図4に示したように、電子装置(430)の一体部分ではなく、電子装置(430)に接続されることが可能である描画装置(412)(たとえば表示画面)などの描画する装置を制御する情報が含まれる場合がある。1つ以上の描画する装置に用いる制御情報は補助強化情報(SEIメッセージ)やビデオユーザビリティ情報(VUI)パラメータ集合フラグメント(図示せず)の形態をとってもよい。パーサ(420)は、受信されたコーディングされたビデオ列をパース/エントロピ復号化することができる。当該コーディングされたビデオ列のコーディングはビデオコーディング技術や標準に準拠することが可能であり、可変長コーディング、ハフマンコーディング、文脈依存を用いたり用いなかったりする算術コーディングなどを含む様々な原理にしたがうことができる。パーサ(420)は、コーディングされたビデオ列から、ビデオデコーダ中にある画素の部分群の少なくとも1つについての部分群パラメータの集合を、群に対応する少なくとも1つのパラメータに基づいて抽出してもよい。部分群は、グループオブピクチャ(GOP)、ピクチャ、タイル、スライス、マクロブロック、コーディングユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)などを含むことができる。パーサ(420)は、変換係数、クオンタイザパラメータ値、動きベクトルなどのコーディングされたビデオ列情報からも抽出を行なってもよい。
【0043】
パーサ(420)は、バッファメモリ(415)から受けたビデオ列にエントロピ復号化/パーサ動作を実行することでシンボル(421)を生成してもよい。
【0044】
シンボル(421)の再構成には、コーディングされたビデオピクチャ又はその部分のタイプ(たとえばピクチャ間及びピクチャ内、ブロック間及びブロック内)と他の因子とに応じて複数の異なる部位を関与させることができる。どの部位を関与させ、どのようにを関与させかを、コーディングされたビデオ列からパーサ(420)によってパースされた部分群制御情報によって制御することができる。明確にするために、パーサ(420)と後述の複数の部位との間の、このような部分群の制御情報のフローは示されていない。
【0045】
既に説明されている機能ブロックについてさらに言えば、ビデオデコーダ(410)を、後述のように複数の機能部位に概念的に細分することができる。商業上の制約を受けながら運用される実際の実現例では、このような部位の多くは互いに緊密にやり取りし、互いに少なくとも部分的に一体化されることが可能である。一方で、開示されている保護対象を説明する上では、後述の機能部位に概念的に細分することはその目的に合致する。
【0046】
最初の部位はスケーラ/逆変換部(451)である。スケーラ/逆変換部(451)はパーサ(420)からシンボル(421)として、量子化された変換係数と、使用される変換、ブロックサイズ、量子化係数(quantization factor)、量子化スケーリングマトリックスなどを含む制御情報とを受ける。スケーラ/逆変換部(451)は、集合器(455)に入力することができるサンプル値を備えるブロックを出力することができる。
【0047】
いくつかの例では、スケーラ/逆変換(451)の出力サンプルは、イントラコーディングブロック、すなわち、以前に再構成されたピクチャから得られる予測的情報を用いていないが、対象のピクチャの以前に再構成された部分から得られる予測的情報を用いることができるブロックに適する場合がある。このような予測的情報をピクチャ内予測部(452)によって提供することができる。いくつかの例では、ピクチャ内予測部(452)は、対象ピクチャバッファ(458)から取得された周囲の既に再構成済みの情報を用いて、再構成中のブロックと同じサイズ及び形状のブロックを生成する。対象ピクチャバッファ(458)は、たとえば、部分的に再構成された対象のピクチャ及び/又は全体的に再構成された対象のピクチャをバッファリングする。いくつかの例では、集合器(455)は、サンプル毎に、イントラ予測部(452)によって生成済みの予測情報を、スケーラ/逆変換部(451)によって提供された出力サンプル情報に加える。
【0048】
他の例では、スケーラ/逆変換部(451)の出力サンプルはインタコーディングブロックに適し、場合によっては動き補償されたブロックに適する場合がある。このような例では、動き補償予測部(453)が参照ピクチャメモリ(457)にアクセスして、予測に用いられるサンプルを取得することができる。ブロックに関係するシンボル(421)に応じて、取得されたサンプルを動き補償した後、当該サンプルをスケーラ/逆変換部(451)の出力(この例では残差サンプルや残差信号と称する)に集合器(455)によって加えることで、出力サンプル情報を生成することができる。動き補償予測部(453)が予測サンプルを取得する取得元の参照ピクチャメモリ(457)内のアドレスを動きベクトルによって制御することができ、動きベクトルは、たとえばX、Y及び参照ピクチャ成分を有することができるシンボル(421)の形態をとった状態で動き補償予測部(453)に利用可能である。動き補償は、サブサンプルの正確な動きベクトルが用いられている場合の、参照ピクチャメモリ(457)から取得されるサンプル値の内挿、動きベクトル予測メカニズムなどを含むこともできる。
【0049】
集合器(455)の出力サンプルは、ループフィルタ部(456)で様々なループフィルタリング手法を受けることができる。ビデオ圧縮技術は、コーディングされたビデオ列(コーディングされたビデオビットストリームとも称する)に含まれて、パーサ(420)からのシンボル(421)としてループフィルタ部(456)に利用可能になるパラメータによって制御されるループ内フィルタ技術を含むことができる一方で、ビデオ圧縮技術は、コーディングされたピクチャ又はコーディングされたビデオ列の以前(復号化順)の部分を復号化する際に得られるメタ情報の影響を受け易く、以前に再構成されてループフィルタリングされたサンプル値の影響も受け易い場合もある。
【0050】
ループフィルタ部(456)の出力は、描画装置(412)に出力することができるだけでなく、後のピクチャ間予測で用いるために参照ピクチャメモリ(457)に記憶することもできるサンプルストリームであることが可能である。
【0051】
いくつかのコーディングされたピクチャは、完全に再構成されると、後の予測のために参照ピクチャとして用いられることが可能である。たとえば、対象のピクチャに対応するコーディング済みピクチャが完全に再構成され、コーディング済みピクチャが参照ピクチャとして(たとえばパーサ(420)によって)特定されると、対象ピクチャバッファ(458)は参照ピクチャメモリ(457)の一部になることが可能であり、次のコーディング済みピクチャの再構成を開始する前に、新たな対象ピクチャバッファを割り当てし直すことができる。
【0052】
ビデオデコーダ(410)は所定の標準(たとえばITU-T勧告H.265)の既定のビデオ圧縮技術にしたがって復号化動作を行なってもよい。コーディングされたビデオ列がビデオ圧縮技術や標準のシンタックスと、ビデオ圧縮技術や標準の文書に記載されているプロファイルとを遵守するという意味で、コーディングされたビデオ列は、用いられているビデオ圧縮技術や標準によって定められているシンタックスに準拠するといえる。特に、プロファイルについては、ビデオ圧縮技術や標準で利用可能なすべてのツールから、当該プロファイルしたがった使用に供することができる唯一のツールとして所定のツールを選択することができる。コーディングされたビデオ列の複雑さがビデオ圧縮技術や標準のレベルによって定められた限界内にあることも準拠性(compliance)に必要であるといえる。いくつかの例では、レベルに応じて、最大ピクチャサイズ、最大フレームレート、最大再構成サンプルレート(たとえば毎秒100万サンプルで測定)、最大参照ピクチャサイズなどが制限される。レベルによって設けられる限界は、いくつかの例では、Hypothetical Reference Decoder(HRD)の仕様と、コーディングされたビデオ列でシグナリングされるHRDバッファ管理用のメタデータとにより、さらに制限される場合がある。
【0053】
一実施形態では、受信器(431)が符号化されたビデオとともに付随(冗長)データを受信してもよい。付随データがコーディングされたビデオ列の一部として含まれてもよい。付随データをビデオデコーダ(410)で用いて、データを適切に復号化しかつ/又は元のビデオデータをより正確に再構成してもよい。たとえば、付随データは、時間的、空間的又は信号雑音比(SNR)エンハンスメントレイヤ、冗長スライス、冗長ピクチャ、前方誤り訂正符号などの形態をとることができる。
【0054】
図5は、本開示の一実施形態に係るビデオエンコーダ(503)のブロック図を示す。ビデオエンコーダ(503)は電子装置(520)に含まれる。電子装置(520)は送信器(540)(たとえば送信回路)を含む。ビデオエンコーダ(503)を図3の例のビデオエンコーダ(303)の代わりに用いることができる。
【0055】
ビデオエンコーダ(503)は、ビデオエンコーダ(503)によってコーディングされることになる1つ以上のビデオ画像を撮像することができるビデオ供給源(501)(図5の例では電子装置(520)の一部ではない)からビデオサンプルを受けてもよい。別の例では、ビデオ供給源(501)は電子装置(520)の一部である。
【0056】
ビデオ供給源(501)は、任意の適切なビット深度(たとえば:8ビット、10ビット、12ビット、…)、任意の色空間(たとえば、BT.601 Y CrCB、RGB、…)及び任意の適切なサンプリング構造(たとえば、Y CrCb 4:2:0、Y CrCb 4:4:4)が可能であるデジタルビデオサンプルストリームとしてビデオエンコーダ(503)によってコーディングされることになる供給源ビデオ列を提供してもよい。メディア提供システムでは、ビデオ供給源(501)は、予め用意されたビデオを記憶する記憶装置であってもよい。テレビ会議システムでは、ビデオ供給源(501)は、現地の画像情報をビデオ列として撮像するカメラであってもよい。順番に見られると動きを実現する複数の個々のピクチャとしてビデオデータを提供してもよい。ピクチャをそのまま画素の空間的配列として編成してもよく、各画素は使用されているサンプリング構造、色空間などに応じた1つ以上のサンプルを備えることができる。画素とサンプルとの関係については当業者は容易に理解することができる。以下の説明ではサンプルに注目する。
【0057】
一実施形態に係れば、ビデオエンコーダ(503)は供給源ビデオ列のピクチャをコーディング済みビデオ列(543)にリアルタイムにコーディングして圧縮してもよいし、アプリケーションによって必要とされる任意の他の時間制約を受けつつコーディングして圧縮してもよい。適切なコーディング速度を強制的に維持することは、コントローラ(550)の機能の1つである。いくつかの実施形態では、コントローラ(550)は後述されている他の機能部位を制御し、他の機能部位に機能的に接続されている。明確にするために、接続については示されていない。コントローラ(550)によって設定されるパラメータは、レート制御関連のパラメータ(ピクチャスキップ、クオンタイザ、レート-歪み最適化技術のλの値、…)、ピクチャサイズ、group of picture(GOP)のレイアウト、最長の動きベクトルが許容される参照領域などを含むことができる。特定のシステム設計に最適化されたビデオエンコーダ(503)に関する他の適切な機能を持つようにコントローラ(550)を構成することができる。
【0058】
いくつかの実施形態では、ビデオエンコーダ(503)は、コーディングループで動作するように構成されている。最大限単純化した説明として、一例では、コーディングループは供給源コーダ(530)(たとえば、コーディングされることになる入力ピクチャと1つ以上の参照ピクチャとに基づいて、シンボルストリームなどのシンボルを生成することを担う)と、ビデオエンコーダ(503)に組み込まれた(別の場所ではなくこの場所にある)デコーダ(533)とを含むことができる。デコーダ(533)はシンボルを再構成して、あたかも(別の場所にある)デコーダによっても生成されるのと同様にサンプルデータを生成する(シンボルとコーディングされたビデオビットストリームとの間の任意の圧縮は開示されている保護対象で検討されているビデオ圧縮技術に含まれる可逆圧縮である)。再構成されたサンプルストリーム(サンプルデータ)は参照ピクチャメモリ(534)に入力される。シンボルストリームを復号化すると、デコーダの場所(この場所にあるのか別の場所にあるのか)とは無関係に正確なビット結果がもたらされるので、参照ピクチャメモリ(534)の内容についても、この場所にあるエンコーダと別の場所にあるエンコーダとの比較でビットが正確になる。言い換えると、あたかもデコーダが復号化の際に予測を用いるときに「見る」のと同じサンプル値を、エンコーダの予測部分は参照ピクチャサンプルとして正確に「見る」。このような参照ピクチャの同時性(さらには、たとえばチャンネルエラーによって同時性を維持することができない場合に結果として生じるドリフト)の基本原理がいくつかの関連技術にも用いられている。
【0059】
「この場所にある」デコーダ(533)の動作は、図4をともなって上記で既に詳細に説明されている「別の場所にある」ビデオデコーダ(410)などのデコーダの動作と同じであることが可能である。しかし、幾分図4も参照するが、シンボルが有効であり、かつエントロピコーダ(545)及びパーサ(420)によるシンボルの符号化/コーディング済みビデオ列への復号化が可逆であることが可能であるので、バッファメモリ(415)とパーサ(420)とを含むビデオデコーダ(410)のエントロピ復号化部分はこの場所にあるデコーダ(533)では完全には実施されない場合がある。
【0060】
この時点で言えることは、デコーダに存在するパース/エントロピ復号化以外のどのデコーダ技術も、対応するエンコーダにやはり必ず実質的に同一の機能的形態で存在する必要があるということである。この理由から、開示されている保護対象ではデコーダの動作に注目している。エンコーダ技術の説明は、全体が説明されているデコーダ技術の逆であるので、省略することができる。特定の部分だけはより詳細な説明が必要であるので、以下に記載する。
【0061】
動作の際、いくつかの例では、供給源コーダ(530)は、「参照ピクチャ」に指定されたビデオ列から得られた以前にコーディングされた1つ以上のピクチャを参照して予測して入力ピクチャをコーディングする動き補償予測コーディングを行なってもよい。このようにして、コーディングエンジン(532)は、入力ピクチャの画素ブロックと、入力ピクチャに対する1つ以上の予測参照として選択することができる1つ以上の参照ピクチャの画素ブロックとの差分をコーディングする。
【0062】
この場所にあるビデオデコーダ(533)は、供給源コーダ(530)によって生成されたシンボルに基づいて、参照ピクチャに指定することができるピクチャのコーディングされたビデオデータを復号化してもよい。コーディングエンジン(532)の動作が非可逆プロセスであることが有効である場合がある。コーディングされたビデオデータがなんらかのビデオデコーダ(図5には示されていない)で復号化されることがある場合、再構成されたビデオ列は一般的に多少の誤差をともなう供給源ビデオ列の複製である場合がある。この場所にあるビデオデコーダ(533)は、参照ピクチャに対してビデオデコーダによって行なわれる場合がある復号化プロセスを繰り返し、再構成された参照ピクチャが参照ピクチャキャッシュ(534)に記憶されるようにしてもよい。このようにして、ビデオエンコーダ(503)は、遠端のビデオデコーダによって得られることになる再構成された参照ピクチャと共通の内容を持つ再構成された参照ピクチャの複製をこの場所に記憶することができる(伝送エラー無し)。
【0063】
予測器(535)はコーディングエンジン(532)のために予測探索を行なってもよい。すなわち、コーディングされることになる新たなピクチャのために、予測器(535)は、サンプルデータ(候補参照画素ブロックとしてのサンプルデータ)を得たり、新たなピクチャのための適切な予測参照を担うことができる参照ピクチャ動きベクトル、ブロック形状などの特定のメタデータを得たりするために参照ピクチャメモリ(534)を探索してもよい。予測器(535)は、適切な予測参照を検知するのに画素ブロック毎に1つのサンプルブロックを用いるようにして動作してもよい。いくつかの例では、予測器(535)によって得られる探索結果によって判断する際、入力ピクチャは、参照ピクチャメモリ(534)に記憶されている複数の参照ピクチャから得られた予測参照を含むことができる。
【0064】
たとえば、コントローラ(550)は、ビデオデータを符号化するのに用いられるパラメータ及び部分群パラメータの設定を含む、供給源コーダ(530)のコーディング動作の管理を行なってもよい。
【0065】
上述のすべての機能部位の出力がエントロピコーダ(545)でエントロピコーディングを受けてもよい。エントロピコーダ(545)は、ハフマンコーディング、可変長コーディング、算術コーディングなどの技術にしたがってシンボルを可逆圧縮することによって、様々な機能部位によって生成されたシンボルをコーディング済みビデオ列に変換する。
【0066】
送信器(540)が通信チャンネル(560)を通じた送信に備えるためにエントロピコーダ(545)によって生成された1つ以上のコーディングされたビデオ列をバッファリングしてもよく、送信器(540)は、符号化されたビデオデータを記憶する記憶装置につなげられたハードウェア/ソフトウェアであってもよい。送信器(540)は、送信されることになる他のデータ、たとえば、コーディングされた音声データ及び/又は付属データストリーム(供給源は示されていない)を、ビデオコーダ(503)から得られたコーディングされたビデオデータに統合してもよい。
【0067】
コントローラ(550)はビデオエンコーダ(503)の動作を管理してもよい。コーディングの際、コントローラ(550)はコーディングされたピクチャ毎に、それぞれのピクチャに適用することができるコーディング手法に影響を及ぼすことができる特定のコーディング済みピクチャのタイプを割り当ててもよい。たとえば、多くの場合、以下のピクチャタイプの1つとしてピクチャを割り当てることができる。
【0068】
イントラピクチャ(Iピクチャ)は、予測の元になるものとして列中の他の一切のピクチャを用いずにコーディング及び復号化を行なうことができるピクチャであるといえる。いくつかのビデオコーデックでは、たとえば独立デコーダリフレッシュ(IDR)を含む様々なタイプのイントラピクチャが可能である。Iピクチャのこのような変形例とそれに対応する適用例及び特徴部とに当業者は想到する。
【0069】
予測ピクチャ(Pピクチャ)は、イントラ予測又はインタ予測を用い、各ブロックのサンプル値を予測するのに最大1つの動きベクトルと参照インデックスとを用いてコーディング及び復号化を行なうことができるピクチャであるといえる。
【0070】
双方向予測ピクチャ(Bピクチャ)は、イントラ予測又はインタ予測を用い、各ブロックのサンプル値を予測するのに最大2つの動きベクトルと参照インデックスとを用いてコーディング及び復号化を行なうことができるピクチャであるといえる。同様に、複数-予測ピクチャでは、1つのブロックの再構成のために、2つ以上の参照ピクチャと関連メタデータとを用いることができる。
【0071】
一般的に、供給源ピクチャを複数のサンプルブロックに空間的に細分することができ(たとえば、それぞれ4×4、8×8、4×8や16×16個のサンプルのブロック)、ブロックを1つずつコーディングすることができる。それぞれのブロックに対応するピクチャに適用されるコーディング割当てによって判断される際に、他の(既にコーディングされた)ブロックを参照して予測してブロックをコーディングしてもよい。たとえば、Iピクチャのブロックを予測を用いずにコーディングしてもよいし、同じピクチャの既にコーディングされたブロックを参照して、予測を用いてコーディングしてもよい(空間的予測又はイントラ予測)。Pピクチャの画素ブロックを、空間的予測を用いたり、以前にコーディングされた1つの参照ピクチャを参照して時間的予測を用いたりして、予測を用いてコーディングしてもよい。Bピクチャのブロックを、空間的予測を用いたり、以前にコーディングされた1つ又は2つの参照ピクチャを参照して時間的予測を用いたりして、予測を用いてコーディングしてもよい。
【0072】
ビデオエンコーダ(503)は既定のビデオコーディング技術や標準(たとえばITU-T勧告H.265)にしたがってコーディング動作を行なってもよい。その動作では、ビデオエンコーダ(503)は、入力ビデオ列の時間的冗長さと空間的冗長さとを利用する予測コーディング動作を含む様々な圧縮動作を行なってもよい。したがって、コーディングされたビデオデータは、用いられているビデオコーディング技術や標準によって定められているシンタックスに準拠してもよい。
【0073】
一実施形態では、送信器(540)は符号化されたビデオとともに付随データを送信してもよい。供給源コーダ(530)はコーディングされたビデオ列の一部としてこのようなデータを含んでもよい。付随データは、時間的/空間的/SNR エンハンスメントレイヤ、冗長ピクチャや冗長スライスなどの冗長データの他の形態、SEIメッセージ、VUIパラメータ集合フラグメントなどを備えてもよい。
【0074】
ビデオを複数の供給源ピクチャ(ビデオピクチャ)として時間順に撮像してもよい。ピクチャ内予測(イントラ予測と略されることが多い)では所与のピクチャ内の空間的相関を利用し、ピクチャ間予測ではピクチャ間の相関(時間的相関又は他の相関)を利用する。一例では、対象のピクチャと称されている、符号化/復号化中の特定のピクチャがブロックに分割される。対象のピクチャ中のブロックがビデオ中の、以前にコーディングされて依然としてバッファリングされている参照ピクチャ中の参照ブロックに類似する場合、対象のピクチャ中のブロックを、動きベクトルと称されているベクトルによってコーディングすることができる。動きベクトルは、参照ピクチャ中で参照ブロックの方に向いており、複数の参照ピクチャが用いられる場合、第3の次元を持って参照ピクチャを特定することができる。
【0075】
いくつかの実施形態では、ピクチャ間予測に双予測法(bi-prediction technique)を用いることができる。双予測法によれば、ビデオ中の対象のピクチャの復号化順でともに先にある(これとは異なり、表示順でそれぞれ過去及び未来にあってもよい)第1の参照ピクチャ及び第2の参照ピクチャなどの2つの参照ピクチャを用いる。第1の参照ピクチャ中で第1の参照ブロックの方に向いている第1の動きベクトルと、第2の参照ピクチャ中で第2の参照ブロックの方に向いている第2の動きベクトルとによって対象のピクチャ中のブロックをコーディングすることができる。第1の参照ブロックと第2の参照ブロックとの組合せによってブロックを予測することができる。
【0076】
さらに、ピクチャ間予測にマージモード法を用いてコーディング効率を改善することができる。
【0077】
本開示のいくつかの実施形態に係れば、ピクチャ間予測やピクチャ内予測などの予測をブロックの単位で行なう。たとえば、HEVC標準によれば、圧縮のために一連のビデオピクチャ中のピクチャをコーディングツリーユニット(CTU)に分割し、ピクチャ中のCTUは同じサイズ(たとえば64×64個の画素、32×32個の画素又は16×16個の画素)を持つ。一般的に、CTUは3つのコーディングツリーブロック(CTB)を含み、3つのCTBは1つのルマCTBと2つのクロマCTBである。各CTUを1つ以上のコーディングユニット(CU)に再帰的に四分木分割することができる。たとえば、64×64個の画素のCTUを64×64個の画素の1つのCUや、32×32個の画素の4つのCUや、16×16個の画素の16個のCUに分割することができる。一例では、各CUを解析して、インタ予測タイプやイントラ予測タイプなどのCUの予測タイプを決める。時間的及び/又は空間的予測可能性に応じてCUを1つ以上の予測ユニット(PU)に分割する。一般的には、各PUは1つのルマ予測ブロック(PB)と2つのクロマPBとを含む。一実施形態では、コーディングの予測動作(符号化/復号化)を予測ブロックの単位で行なう。予測ブロックの例としてルマ予測ブロックを用いる場合、予測ブロックは、8×8個の画素、16×16個の画素、8×16個の画素、16×8個の画素などの画素の、値(たとえばルマ値)の行列を含む。
【0078】
図6は本開示の別の実施形態に係るビデオエンコーダ(603)の図を示す。ビデオエンコーダ(603)は、一連のビデオピクチャ中の対象のビデオピクチャ中のサンプル値の処理ブロック(たとえば予測ブロック)を受けて、処理ブロックを符号化して、コーディング済みビデオ列の一部であるコーディング済みピクチャにするように構成されている。一例では、ビデオエンコーダ(603)を図3の例のビデオエンコーダ(303)の代わりに用いる。
【0079】
HEVCの例では、ビデオエンコーダ(603)は8×8個のサンプルの予測ブロックなどの処理ブロックのサンプル値の行列を受ける。ビデオエンコーダ(603)は、たとえばレート-歪み最適化を用い、処理ブロックがイントラモードを用いて最も良くコーディングされるのか、インタモードを用いて最も良く符号化されるのか、双予測モードを用いて最も良く符号化されるのかを判断する。処理ブロックがイントラモードでコーディングされることになっている場合、ビデオエンコーダ(603)は処理ブロックを符号化してコーディング済みピクチャにするのにイントラ予測法を用いてもよく、処理ブロックがインタモード又は双予測モードでコーディングされることになっている場合、ビデオエンコーダ(603)は処理ブロックを符号化してコーディング済みピクチャにするのにインタ予測法又は双予測法をそれぞれ用いてもよい。いくつかのビデオコーディング技術では、マージモードは、予測器外のコーディング動きベクトル構成要素の補助なしに1つ以上の動きベクトル予測器から動きベクトルを得るピクチャ間予測下位モードであることが可能である。いくつかの他のビデオコーディング技術では、対象となるブロックに適用可能な動きベクトル構成要素が存在してもよい。一例では、ビデオエンコーダ(603)は、処理ブロックのモードを判断するモード判定モジュール(図示せず)などの他の構成要素を含む。
【0080】
図6の例では、ビデオエンコーダ(603)は、図6に示されているように接続され合っている、インタエンコーダ(630)、イントラエンコーダ(622)、残差計算器(623)、スイッチ(626)、残差エンコーダ(624)、統括コントローラ(621)及びエントロピエンコーダ(625)を含む。
【0081】
インタエンコーダ(630)は、対象のブロック(たとえば処理ブロック)のサンプルを受け、当該ブロックを参照ピクチャ中の1つ以上の参照ブロック(たとえば、前のピクチャ及び後のピクチャ中のブロック)と比較し、インタ予測情報(たとえば、インタ符号化法にしたがった冗長情報の記述、動きベクトル、マージモード情報)を生成し、任意の適切な技術を用いてインタ予測情報に基づいてインタ予測結果(たとえば、予測されたブロック)を計算するように構成されている。いくつかの例では、参照ピクチャは、符号化されたビデオ情報に基づいて復号化された復号化済み参照ピクチャである。
【0082】
イントラエンコーダ(622)は、対象のブロック(たとえば処理ブロック)のサンプルを受け、場合によって、当該ブロックを同じピクチャ中の既にコーディングされたブロックと比較し、変換後の量子化された係数を生成し、場合によって、イントラ予測情報(たとえば、1つ以上のイントラ符号化技術にしたがったイントラ予測方向情報)も生成するように構成されている。一例では、イントラエンコーダ(622)はイントラ予測情報と同じピクチャ中の参照ブロックとに基づいてイントラ予測結果(たとえば予測されたブロック)も計算する。
【0083】
統括コントローラ(621)は、統括制御データを決定して、統括制御データに基づいてビデオエンコーダ(603)の他の構成要素を制御するように構成されている。一例では、統括コントローラ(621)はブロックのモードを決定し、モードに基づいて制御信号をスイッチ(626)に提供する。たとえば、モードがイントラモードである場合、統括コントローラ(621)は残差計算器(623)による使用に対してイントラモード結果を選択するようにスイッチ(626)を制御し、イントラ予測情報を選択してイントラ予測情報をビットストリームに含ませるようにエントロピエンコーダ(625)を制御し、モードがインタモードである場合、統括コントローラ(621)は残差計算器(623)による使用に対してインタ予測結果を選択するようにスイッチ(626)を制御し、インタ予測情報を選択してインタ予測情報をビットストリームに含ませるようにエントロピエンコーダ(625)を制御する。
【0084】
残差計算器(623)は、受けたブロックと、イントラエンコーダ(622)又はインタエンコーダ(630)から選択された予測結果との差分(残差データ)を計算するように構成されている。残差エンコーダ(624)は、残差データに基づいて動作し、残差データを符号化して変換係数を生成するように構成されている。一例では、残差エンコーダ(624)は、残差データを空間ドメインから周波数ドメインに変換して変換係数を生成するように構成されている。その後、変換係数は量子化処理を受け、量子化された変換係数が得られる。様々な実施形態では、ビデオエンコーダ(603)は残差デコーダ(628)も含む。残差デコーダ(628)は、逆変換を行なって、復号化された残差データを生成するように構成されている。復号化された残差データをイントラエンコーダ(622)及びインタエンコーダ(630)によって適切に用いることができる。たとえば、インタエンコーダ(630)は復号化された残差データとインタ予測情報とに基づいて、復号化されたブロックを生成することができ、イントラエンコーダ(622)は復号化された残差データとイントラ予測情報とに基づいて、復号化されたブロックを生成することができる。復号化されたブロックを適切に処理して復号化済みピクチャが生成され、復号化済みピクチャをメモリ回路(図示せず)にバッファリングしていくつかの例の参照ピクチャとして用いることができる。
【0085】
エントロピエンコーダ(625)は、符号化されたブロックを含むようにビットストリームをフォーマットするように構成されている。エントロピエンコーダ(625)は、HEVC標準などの適切な標準にしたがった様々な情報を含ませるように構成されている。一例では、エントロピエンコーダ(625)は、統括制御データ、選択された予測情報(たとえば、イントラ予測情報やインタ予測情報)、残差情報及びその他適切な情報をビットストリームに含ませるように構成されている。開示されている保護対象に係れば、インタモード又は双予測モードのいずれかのマージ下位モードでブロックをコーディングする場合、残差情報が存在しないことに留意する。
【0086】
図7は本開示の別の実施形態に係るビデオデコーダ(710)の図を示す。ビデオデコーダ(710)は、コーディングされたビデオ列の一部であるコーディングされたピクチャを受け、コーディングされたピクチャを復号化して再構成されたピクチャを生成するように構成されている。一例では、ビデオデコーダ(710)を図3の例のビデオデコーダ(310)の代わりに用いる。
【0087】
図7の例では、ビデオデコーダ(710)は、図7に示されているように接続され合っている、エントロピデコーダ(771)、インタデコーダ(780)、残差デコーダ(773)、再構成モジュール(774)及びイントラデコーダ(772)を含む。
【0088】
エントロピデコーダ(771)を、コーディングされたピクチャから、コーディングされたピクチャを構成するシンタックス要素を表わす特定のシンボルを再構成するように構成することができる。このようなシンボルは、たとえば、ブロックのコーディングに用いるモード(たとえば、イントラモード、インタモード、双予測されるモード、マージ下位モード、又は別の下位モードの場合の後者2つなど)や、イントラデコーダ(772)又はインタデコーダ(780)による予測にそれぞれ用いられる特定のサンプル又はメタデータを特定することができる予測情報(たとえば、イントラ予測情報やインタ予測情報など)や、たとえば量子化された変換係数の形態をとる残差情報などを含むことができる。一例では、予測モードがインタモード又は双予測されるモードである場合、インタ予測情報がインタデコーダ(780)に提供され、予測タイプがイントラ予測タイプである場合、イントラ予測情報がイントラデコーダ(772)に提供される。残差情報に逆の量子化を施すことができ、これは残差デコーダ(773)に提供される。
【0089】
インタデコーダ(780)は、インタ予測情報を受け、インタ予測情報に基づいてインタ予測結果を生成するように構成されている。
【0090】
イントラデコーダ(772)は、イントラ予測情報を受け、イントラ予測情報に基づいて予測結果を生成するように構成されている。
【0091】
残差デコーダ(773)は、逆の量子化を行なって、逆量子化された変換係数を抽出し、逆量子化された変換係数を処理して残差を周波数ドメインから空間ドメインに変換するように構成されている。残差デコーダ(773)は(クオンタイザパラメータ(QP)を含むように)特定の制御情報も要求してもよく、当該情報はエントロピデコーダ(771)によって提供されてもよい(これは少量の制御情報でしかないといえるので、データ経路は示されていない)。
【0092】
再構成モジュール(774)は、空間ドメインにおいて、残差デコーダ(773)によって出力された残差と予測結果(場合に応じてインタ予測モジュール又はイントラ予測モジュールによって出力される)とを組み合わせて再構成されたブロックを形成するように構成されており、再構成されたブロックは再構成されたピクチャの一部であってもよく、さらには、再構成されたピクチャは再構成されたビデオの一部であってもよい。デブロック動作などの他の適切な動作を行なって、映像品質を改善することができることに留意する。
【0093】
ビデオエンコーダ(303),(503)及び(603)とビデオデコーダ(310),(410)及び(710)とを任意の適切な手法を用いて実施することができることに留意する。一実施形態では、ビデオエンコーダ(303),(503)及び(603)とビデオデコーダ(310),(410)及び(710)とを1つ以上の集積回路を用いて実施することができる。別の実施形態では、ビデオエンコーダ(303),(503)及び(603)とビデオデコーダ(310),(410)及び(710)とをソフトウェア指示を実行する1つ以上のプロセッサを用いて実施することができる。
【0094】
II.イントラブロックコピー
異なるピクチャに基づく、ブロックをベースとした補償は、動き補償又はインタ予測ブロック補償と呼ばれる場合がある。さらに、同じピクチャ内の以前に再構成された領域からブロック補償を行なってもよい。このようなブロック補償は、イントラピクチャブロック補償、現ピクチャ参照(CPR)やイントラブロックコピー(IBC)と呼ばれる場合がある。
【0095】
本開示の態様では、同じピクチャ内でのブロックをベースとした補償のための手法を提供する(たとえばIBC予測モード)。
【0096】
本開示の態様に係れば、IBC予測モードでは、同じピクチャ内の対象のブロックと参照ブロックとのオフセットを示す変位ベクトルをブロックベクトル(BV)と称する。対象のブロックの前に参照ブロックが再構成される。これに加えて、タイル/スライス境界部や波面はしご形状の境界部にある参照領域を、有効な参照ブロックとしてたとえば並列処理に用いることから除外してもよい。これらの制約のために、ブロックベクトルは、たとえばインタ予測モードで任意の値(x方向又はy方向のいずれかで正又は負)を持つことができる動きベクトルとは異なる。
【0097】
IBC予測モードのブロックベクトルのコーディングは、明示的か暗示的かのいずれかであることが可能である。明示モードでは、ブロックベクトルとブロックベクトルの予測値とのブロックベクトル差がシグナリングされる。IBC予測モードの明示モードでのブロックベクトルのコーディングは、たとえば、インタ予測モードの適応動きベクトル予測(AMVP)モードでの動きベクトルのコーディングと同様であってもよい。暗示モードでは、ブロックベクトルは、たとえばインタ予測モードのマージモードでの動きベクトル予測と同様のブロックベクトル差を用いずにブロックベクトルの予測値から復元される。これに加えて、一実施形態ではブロックベクトルの分解能が整数位置の制限を受ける場合があり、一方で、他の実施形態では小数位置の方に向くことが許容される場合がある。
【0098】
ブロックレベルでIBC予測モードを使用することを、たとえばブロックレベルフラグ(IBCフラグと称する)又は参照インデックスを用いてシグナリングすることができる。IBCフラグを用いる場合、対象のブロックを暗示モードでコーディングしなくてもよい。参照インデックスを用いる場合、対象の復号化されたピクチャを参照ピクチャとして扱うことができる。たとえば、対象のピクチャを参照ピクチャリストの最新の位置に入れることができる。この参照ピクチャを復号ピクチャバッファ(DPB)中で一時的な他の参照ピクチャとともに管理してもよい。
【0099】
IBC予測モードの変形例には、たとえば、参照ブロックが対象のブロックを予測するのに用いられる前に横又は縦に反転される反転IBCと、M×N個のコーディングブロック内の補償単位がM×1本又は1×N本のラインであるライン型IBCとが含まれる。
【0100】
図8は本開示の一実施形態に係るイントラブロックコピー(IBC)予測モードの例を示す。図8の例では、対象のピクチャ(800)は再構成中であり、再構成済みの領域(801)(灰色領域)と再構成予定の領域(802)(白色領域)とを含む。再構成済みの領域(801)内のブロックは既に復号化されており、再構成予定の領域(802)内のブロックは復号化中であるか復号化予定であるかのいずれかである。対象のブロック(804)は再構成予定の領域(802)内にあり、復号化中である。再構成済みの領域(801)にある参照ブロック(805)基づいて対象のブロック(804)を復号化することができる。対象のブロック(804)の復号化は、対象のブロック(804)と参照ブロック(805)とのオフセットを示すブロックベクトル(803)に基づく。
【0101】
本開示の態様に係れば、対象のブロック(たとえば対象のブロック(804))のブロックベクトル(たとえばブロックベクトル(803))を導出するのに用いられる参照ブロック(たとえば参照ブロック(805))はIBC予測モードの許容参照領域内にある。許容参照領域がオンチップメモリなどの限られたメモリ空間しか持たないメモリからアクセス可能なものである場合、許容参照領域は特定の領域に制限される場合がある。
【0102】
いくつかの実施形態に係れば、IBC予測モードの許容参照領域は、対象のブロックがある対象のCTU内にあるように束縛される。一例では、IBC予測モードでの許容参照領域の参照サンプルを記憶するメモリは1CTUサイズ(たとえば、128×128個のサンプル)である。1CTUサイズ(128×128個のサンプル)が4つの領域を含み、各領域が64×64個のサンプルを有する場合、メモリは4つの領域を記憶してもよく、この場合、64×64個のサンプルの領域1つが現在再構成中であってもよく、64×64の他の領域3つを参照サンプルとして用いてもよい。
【0103】
いくつかの実施形態に係れば、許容参照領域を記憶するメモリサイズを変えないでおきつつ(たとえば1CTUサイズ)、IBC予測モードの許容参照領域を別のCTU(たとえば、対象のCTUの左のCTU)のいくつかの部分まで拡張することができ、これにより、許容参照領域が対象のCTU内にあるように束縛されない場合がある。許容参照領域が対象のCTU内での対象のブロックの位置に依存してもよいことに留意する。すなわち、対象のCTU内での対象のブロックの位置に応じて許容参照領域が更新される場合がある。
【0104】
図9A図9Dは本開示の一実施形態に係るIBC予測モードの更新プロセスにおける許容参照領域の例を示す。上述されているように、有効な許容参照領域を対象のCTU(900)の前のCTU(たとえば左のCTU(910))のいくつかの部分まで拡張することができる。
【0105】
更新プロセスの際、左のCTUから得られる記憶済みの参照サンプルを対象のCTUから得られる再構成済みのサンプルを用いて更新する。図9A図9Dでは、灰色領域は既に再構成済みの領域を示し、白色領域は再構成予定の領域を示し、縦縞及び文字列「対象」のある領域は、対象のブロックがある対象のコーディング/復号化領域を示す。これに加えて、各図中、左の4つの領域(911)~(914)は左のCTU(910)に属し、右の4つの領域(901)~(904)は対象のCTU(900)に属する。
【0106】
左のCTU(910)の4つの領域(911)~(914)のすべてが既に再構成済みであることに留意する。したがって、メモリは最初に左のCTU(910)から得られる参照サンプルの当該4つの領域のすべてを記憶し、その後、メモリに記憶されている左のCTU(910)から得られる参照サンプルの領域を、対象のCTU(900)から得られる現在再構成中のサンプルの同じ相対位置を持つ領域を用いて更新する(すなわち置換する)。
【0107】
たとえば、図9Aでは、対象のCTU(900)内の対象の領域(901)が再構成中であり、対象の領域(901)に対応して配置された左のCTU(910)内の領域が既に再構成済みの領域(911)である。対応して配置された領域(911)は左のCTU(910)の領域内にあり、かつ対象のCTU(900)内の対象のブロック(901)と同じ相対位置を持つ領域である。したがって、対象の領域(901)の再構成済みのサンプルを記憶するように、対応して配置された領域(911)の参照サンプルを記憶しているメモリ領域が更新され、図9A中の対応して配置された領域(911)に「X」の印を付して、対応して配置された領域(911)の参照サンプルがメモリにもはや記憶されていないことを示している。
【0108】
同様に、図9Bでは、対象のCTU(900)の対象の領域(902)が再構成中であり、対象の領域(902)に対応して配置された左のCTU(910)中の領域が領域(912)である。対応して配置された領域(912)は左のCTU(910)の領域内にあり、かつ対象のCTU(900)内の対象の領域(902)と同じ相対位置を持つ領域である。したがって、対象の領域(902)の再構成済みのサンプルを記憶するように、対応して配置された領域(912)の参照サンプルを記憶しているメモリ領域が更新され、図9B中の対応して配置された領域(912)に「X」の印を付して、対応して配置された領域(912)の参照サンプルがメモリにもはや記憶されていないことを示している。
【0109】
図9Cでは、対象のCTU(900)の対象の領域(903)が再構成中であり、対象の領域(903)に対応して配置された左のCTU(910)中の領域が領域(913)である。対応して配置された領域(913)は左のCTU(910)の領域内にあり、かつ対象のCTU(900)内の対象の領域(903)と同じ相対位置を持つ領域である。したがって、対象の領域(903)の再構成済みのサンプルを記憶するように、対応して配置された領域(913)の参照サンプルを記憶しているメモリ領域が更新され、図9C中の対応して配置された領域(913)に「X」の印を付して、対応して配置された領域(913)の参照サンプルがメモリにもはや記憶されていないことを示している。
【0110】
図9Dでは、対象のCTU(900)の対象の領域(904)が再構成中であり、対象の領域(904)に対応して配置された左のCTU(910)中の領域が領域(914)である。対応して配置された領域(914)は左のCTU(910)の領域内にあり、かつ対象のCTU(900)内の対象の領域(904)と同じ相対位置を持つ領域である。したがって、対象の領域(904)の再構成済みのサンプルを記憶するように、対応して配置された領域(914)の参照サンプルを記憶しているメモリ領域が更新され、図9D中の対応して配置された領域(914)に「X」の印を付して、対応して配置された領域(914)の参照サンプルがメモリにもはや記憶されていないことを示している。
【0111】
図9A図9Dでは、総メモリサイズが1CTUサイズ(たとえば最大CTUサイズ)に等しいと仮定している。本開示の態様に係れば、CTUサイズが最大CTUサイズとは異なる(たとえば、未満である)場合、対象のCTUの再構成済みの部分に加えて、N-1個の左のCTUから得られる参照サンプルも参照に利用可能なメモリに記憶することができ、ここで、N=メモリサイズ/CTU幅/CTU幅である。
【0112】
たとえば、メモリサイズが128×128個のルマサンプルであり、かつCTUサイズが64×64個のルマサンプルである場合、N=4であり、最大で、対象のCTUに対応する3つの左のCTU内の参照サンプルがIBC予測に利用可能である。対象のCTUに対する第4の左のCTU内の参照サンプルを用いる場合があるが、参照領域とみなすことを要さない場合がある。
【0113】
本開示の態様に係れば、IBC参照サンプルの記憶にメモリ(たとえば参照サンプルメモリ)を用いる場合、メモリをいくつかの領域に区切ることができ、各々は同じサイズを持つことができる。参照サンプルメモリは、最大CTU(たとえば128×128)と同じサイズを持つことができる。一例では、128×128CTUの場合、参照サンプルメモリを4つの64×64領域に区切ることができ、各々は対象のCTU内又は左のCTUの1つの領域内のいずれかにある対応する領域のサンプルを含む。別の例では、64×64CTUの場合、参照サンプルメモリを4つの64×64領域に区切ることができ、各々は対象の64×64CTU全体のサンプル又は左の64×64CTUのCTU全体のサンプルを含む。別の例では、32×32CTUの場合、参照サンプルメモリを16個の32×32領域に区切ることができ、各々は対象の32×32CTU全体のサンプル又は左の32×32CTUのCTU全体のサンプルを含む。
【0114】
いくつかの例では、サイズが参照サンプルメモリのサイズに等しいバッファ(ibcBufferと称する)を、IBC予測のために参照サンプルを記憶するのに用いる。128×128CTUの場合、バッファサイズは128×128である。64×64CTUの場合、バッファサイズは256×64である。32×32CTUの場合、バッファサイズは512×32である。ibcBuffer中の位置をIBC参照に用いることが許容されない場合、バッファ中の当該位置にあるサンプル値を、ビデオサンプルの有効な範囲内にないという「-1」又はなんらかの値でマーキングする。CTUの行の先頭にあるすべてのエントリについて-1になるようにバッファが設定され、対象の各vSize×vSize領域についても-1になるようにバッファが設定され、ここで、vSizeは最大復号化サイズである。一例では、CTUサイズが64×64又は128×128である場合、vSize=64であり、32×32CTUでは、vSize=32である。参照ブロック中のすべてのサンプル値が有効な値である場合にだけ、バッファ内の参照ブロックをIBC予測に用いることを許容することができる。
【0115】
ibcBufferをIBC予測に用いる一実施形態では、各CTUの行の先頭で、最大復号化サイズvSizeをmin(ctbSize,64)に設定し、バッファの幅wIbcBufを(128×128/ctbSize)に設定する。
【0116】
ibcBufferの位置(x0,y0)について、x0が0に等しく、かつ(y0%ctbSize)が0に等しい場合、以下を適用する。
ibcBuffer[x%wIbcBuf][y%ctbSize]=-1
ここで、x=x0…x0+wlbcBuf-1かつy=y0…y0+ctbSize-1
【0117】
各vSize×vSize領域の先頭で、(x0%vSize)が0に等しく、かつ(y0%vSize)が0に等しい場合、以下を適用する。
ibcBuffer[x%wIbcBuf][y%ctbSize]=-1
ここで、x=x0…x0+ctbSize-1かつy=y0…y0+ctbSize-1
【0118】
ルマブロックベクトルmvLを復号化した後、ルマブロックベクトルmvLを以下の制約によって制限することができる。
(1)((yCb+(mvL[1]>>4))%ctbSize)+cbHeight≦ctbSizeかつ
(2)ibcBuf[(x+(mvL[0]>>4))%wIbcBuf][(y+(mvL[1]>>4))%ctbSize]!=-1
ここで、x=xCb…xCb+cbWidth-1かつy=yCb…yCb+cbHeight-1
【0119】
最初の条件は、参照ブロックがバッファの上と下とから同時に得られるものであることはあり得ないことを確認する条件であり、この場合、参照ブロックの上の角がibcBufferの下部のあたりにあり、参照ブロックの下の角がibcBufferの上部にマッピングされる(たとえば上下のラップアラウンド)。
【0120】
補償段階では、参照サンプルを以下のようにバッファから得ることができる。
predSamples[x][y]=ibcBuffer[(x+mv[0]>>4)%wIbcBuf][(y+mv[1]>>4)%ctbSize]
ここで、x=xCb…xCb+Width-1かつy=yCb…yCb+Height-1
【0121】
対象のコーディングユニットを復号化した後、再構成済みのサンプルを以下のようにバッファibcBufferに入れることができる。
ibcBuffer[(xCurr+i)%wIbcBuf][(yCurr+j)%ctbSize]=recSamples[xCurr+i][yCurr+j]
ここで、i=0…nCurrSw-1かつj=0…nCurrSh-1
【0122】
本開示の態様に係れば、複製して参照サンプルメモリに入れるとき、新たにコーディングされたCUから得られるいくつかの更新されたサンプルによってピクチャ中の参照サンプルを部分的にリフレッシュすることができる。ブロックベクトルが参照サンプルメモリ中の特定の位置の方に向く場合、参照ブロックの異なる部分が参照サンプルメモリの異なる領域に由来することが可能である。たとえば、参照サンプルメモリ中の参照ブロックの右下部分は、参照サンプルメモリ中の参照ブロックの左上部分が属する同じ参照領域に由来しないといえる。
【0123】
図10A及び図10Bは、参照ブロックのサンプルが参照サンプルメモリの異なる領域から得られるものである例を示す。図10A及び図10Bでは、対象のCTU(1010)のサイズと左のCTU(1020)のサイズとの両方が128×128 ルマサンプルである。灰色領域は対象のピクチャの既に再構成済みの部分である。白色領域は対象のピクチャのまだ再構成されていない部分である。参照サンプルメモリのサイズも128×128であり、4つの64×64領域(1031)~(1034)に区切られている。「X」が付された領域は、メモリ制限により参照領域として用いられることが許容されていない。
【0124】
図10Aでは、対象のブロック(1001)が対象のCTU(1010)の右下角にある。対象のブロック(1001)の参照ブロック(1002)(すなわち破線のブロック)が対象のブロック(1001)と同じサイズを持つ。参照ブロック(1002)の異なる部分が参照サンプルメモリの異なるメモリ領域から得られることが分かる。たとえば、参照ブロック(1002)の左上部分がメモリ領域(1031)から得られ、参照ブロック(1002)の右下部分がメモリ領域(1034)から得られる。
【0125】
図10Bでは、対象のブロック(1003)が対象のCTU(1010)の右上角にある。対象のブロック(1003)の参照ブロック(1004)(すなわち破線のブロック)が対象のブロック(1003)と同じサイズを持つ。参照ブロック(1004)の異なる部分が参照サンプルメモリの異なるメモリ領域から得られることも分かる。たとえば、参照ブロック(1004)の左上部分がメモリ領域(1032)から得られ、参照ブロック(1004)の右上部分がメモリ領域(1034)から得られる。これに加えて、対象のCTU(1010)の右下64×64領域がまだ復号化されていないので、変則的になるが、参照ブロック(1004)の右下部分が左のCTU(1020)から得られるサンプル(1005)を含む。
【0126】
したがって、図10Aでも図10Bでも、IBC予測のために参照ブロック(1002)及び(1004)を生成するために参照サンプルメモリの4つの異なる領域にアクセスする。このことは、このようなメモリアクセスを単純化することができ、メモリアクセスの回数を削減することができるのであれば、望ましいことである。
【0127】
III.IBCのための参照サンプル位置に対する制約の提案
本開示の態様では、IBC予測のために参照サンプルメモリ中の参照サンプル位置を制約する方法を提供する。参照サンプルメモリは、ピクチャの異なる部分から得られる参照サンプルを記憶したり、特定の処理機能に適合させたりするために異なるメモリ領域を含むことができる。128×128メモリ中のこのようなメモリ領域の例(64×64、32×32又は他の値のいずれかを含む)が上述されている。
【0128】
本開示の態様に係れば、参照ブロックのサンプルを含む参照サンプルメモリ中の異なる領域の個数を特定の個数に制限することができるように、参照サンプルメモリ中の参照ブロックの位置を制限することができる。このような制約がないと、参照ブロックのサンプルを含むことができる参照サンプルメモリ中の領域の最大個数が、参照サンプルメモリ中のメモリ領域の総数(たとえば、図10A図10Bとの両方に示されているように4個)であることが可能になる。参照サンプルメモリ中の所定の個数のメモリ領域内にあるように参照ブロックに制約を課せば、異なるメモリ領域にアクセスする必要があまりないようにすることができる。
【0129】
図11は、参照サンプルメモリ中の所定の個数のメモリ領域内にあるように参照ブロックのサンプルに制約を課す例を示す。図11では、参照サンプルメモリは128×128 ルマサンプルのサイズを持ち、4つの64×64領域(1111)~(1114)に区切られている。
【0130】
いくつかの実施形態では、参照ブロック全体が同じメモリ領域内にあることが可能である。したがって、参照ブロックの生成に関係するバッファ中のメモリ領域の個数は1個にしかなり得ない。たとえば、対象のCTU(1110)の右下角にある対象のブロック(1101)については、参照ブロックが破線のブロック(1102)であることが可能であり、その全体がメモリ領域(1112)内にある。
【0131】
一実施態様では、CTUサイズが参照サンプルメモリのサイズと同じであり(たとえば128×128)、参照サンプルメモリが複数の領域(たとえば複数の64×64領域)に編成される(すなわち区切られる)。参照ブロック全体に対して、参照サンプルメモリ内に既定された同じ64×64領域内にあるように制約を課すことができる。
【0132】
一実施態様では、CTUサイズは参照サンプルメモリのサイズ未満である。たとえば、参照サンプルメモリのサイズが128×128であり、CTUサイズが64×64である。参照ブロック全体に対して、参照サンプルメモリ内に既定された同じ64×64領域内にあるように制約を課すことができる。
【0133】
一実施態様では、CTUサイズは参照サンプルメモリのサイズ未満である。たとえば、参照サンプルメモリのサイズが128×128であり、CTUサイズが32×32である。参照ブロック全体に対して、参照サンプルメモリ内に既定された同じ32×32領域内にあるように制約を課すことができる。
【0134】
参照ブロック全体が同じメモリ領域内にある上記の実施形態では、ルマブロックベクトルmvLのx方向(すなわち横)とy(すなわち縦)方向との両方に制約を課してもよい。たとえば、以下のようにルマブロックベクトルmvLに制約を課すことができる。
(1)((xCb+(mvL[0]>>4))%vSize)+cbWidth≦vSizeかつ
(2)((yCb+(mvL[1]>>4))%vSize)+cbHeight≦vSizeかつ
(3)ibcBuf[(x+(mvL[0]>>4))%wIbcBuf][(y+(mvL[1]>>4))%ctbSize]!=-1
ここで、x=xCb…xCb+cbWidth-1かつy=yCb…yCb+cbHeight-1
【0135】
最初の2つの条件は、参照ブロックの左上角と参照ブロックの右下角とがvSize×vSizeのサイズを持つ同じ領域内にあることが可能であることを定めている。したがって、参照ブロック全体が同じメモリ領域内にあることが期待される。
【0136】
いくつかの実施形態では、参照ブロックの生成に関係するバッファ中のメモリ領域の個数を、最大2個になるように制限することができる。
【0137】
一実施態様では、ルマブロックベクトルmvLのy方向にだけ制約を課してもよい。たとえば、以下のようにルマブロックベクトルmvLに制約を課すことができる。
(1)((yCb+(mvL[1]>>4))%vSize)+cbHeight≦vSizeかつ
(2)ibcBuf[(x+(mvL[0]>>4))%wIbcBuf][(y+(mvL[1]>>4))%ctbSize]!=-1
ここで、x=xCb…xCb+cbWidth-1かつy=yCb…yCb+cbHeight-1したがって、参照ブロックの各x位置について、参照ブロックの上のサンプルと下のサンプルとが同じメモリ領域内にあることが可能である(たとえば、参照ブロックのサンプルの列全体が同じメモリ領域内に含まれる)。たとえば、対象のブロック(1101)について、参照ブロックが破線のブロック(1103)であることが可能であり、破線のブロック(1103)の左の部分がメモリ領域(1111)内にあり、右の部分がメモリ領域(1113)内にある。
【0138】
一実施態様では、ルマブロックベクトルmvLのx方向だけに制約を課してもよい。たとえば、以下のようにルマブロックベクトルmvLに制約を課すことができる。
(1)((xCb+(mvL[0]>>4))%vSize)+cbWidth≦vSizeかつ
(2)ibcBuf[(x+(mvL[0]>>4))%wIbcBuf][(y+(mvL[1]>>4))%ctbSize]!=-1
ここで、x=xCb…xCb+cbWidth-1かつy=yCb…yCb+cbHeight-1したがって、参照ブロックの各y位置について、参照ブロックの最も左のサンプルと最も右のサンプルとが同じメモリ領域内にあることが可能である(たとえば、参照ブロックのサンプルの行全体が同じメモリ領域内に含まれる)。たとえば、対象のブロック(1101)について、参照ブロックが破線のブロック(1104)であることが可能であり、破線のブロック(1104)の上の部分がメモリ領域(1113)内にあり、下の部分がメモリ領域(1114)内にある。上下のラップアラウンドの例を本実施形態で許容することができることに留意する。たとえば、参照ブロックが破線のブロック(1105)であることが可能であり、破線のブロック(1105)の上の部分がメモリ領域(1111)内にあり、下の部分(1106)がメモリ領域(1112)内にある。
【0139】
一実施態様では、ルマブロックベクトルmvLのx方向とy方向との両方に制約を課してもよい。たとえば、以下のようにルマブロックベクトルmvLに制約を課すことができる。
(1)((xCb+(mvL[0]>>4))%vSize)+cbWidth≦vSizeかつ
(2)((yCb+(mvL[1]>>4))%ctbSize)+cbHeight≦ctbSizeかつ
(3)ibcBuf[(x+(mvL[0]>>4))%wIbcBuf][(y+(mvL[1]>>4))%ctbSize]!=-1
ここで、x=xCb…xCb+cbWidth-1かつy=yCb…yCb+cbHeight-1したがって、参照ブロックの各y位置について、参照ブロックの最も左のサンプルと最も右のサンプルとが同じメモリ領域内にあることが可能である。これに加えて、参照ブロックの各x位置について、参照ブロックの上のサンプルがy方向に参照ブロックの下のサンプルの常に上にある。すなわち、上下のラップアラウンドの例が本実施形態では許容されない(たとえば、参照ブロックのサンプルの上の行が上下方向に参照ブロックのサンプルの下の行の上にある)。したがって、対象のブロック(1101)について、参照ブロックが破線のブロック(1104)になり得るが、破線のブロック(1105)にはなり得ない。
【0140】
上記の実施形態では、剰余演算「x%y」が参照サンプルメモリ内のアドレスを得るのに用いられ、これを「x&(y-1)」などの「ビットに対するAND」演算と置き換えてもよい。たとえば、式((xCb+(mvL[0]>>4))%vSize)を式((xCb+(mvL[0]>>4))&(vSize-1))と置き換えることができる。
【0141】
IV.フローチャート
図12は本開示の一実施形態に係る典型的なプロセス(1200)の概略を示すフローチャートを示す。様々な実施形態では、プロセス(1200)は、端末装置(210),(220),(230)及び(240)の処理回路などの処理回路、ビデオエンコーダ(303)の機能を発揮する処理回路、ビデオデコーダ(310)の機能を発揮する処理回路、ビデオデコーダ(410)の機能を発揮する処理回路、イントラ予測モジュール(452)の機能を発揮する処理回路、ビデオエンコーダ(503)の機能を発揮する処理回路、予測器(535)の機能を発揮する処理回路、イントラエンコーダ(622)の機能を発揮する処理回路、イントラデコーダ(772)の機能を発揮する処理回路、などによって実行される。いくつかの実施形態では、プロセス(1200)はソフトウェア指示内で実行されるので、処理回路がソフトウェア指示を実行すると、処理回路がプロセス(1200)を実行する。
【0142】
通常、プロセス(1200)をステップ(S1210)から開始してもよく、ステップ(S1210)では、プロセス(1200)により、コーディングされたビットストリーム中のCTUの対象のブロックの予測情報を復号化する。予測情報は対象のブロックがIBCモードでコーディングされることを示す。その後、プロセス(1200)はステップ(S1220)に進む。
【0143】
ステップ(S1220)では、プロセス(1200)により、対象のブロックに対する参照ブロックを決定する。参照ブロックのサンプルを含むメモリ領域の個数はCTUのメモリ領域の総数未満である。その後、プロセス(1200)はステップ(S1230)に進む。
【0144】
ステップ(S1230)では、プロセス(1200)により、参照ブロックに基づいて対象のブロックを再構成する。対象のブロックを再構成した後、プロセス(1200)は終了する。
【0145】
一実施形態では、参照ブロック全体がCTUのメモリ領域の1つのメモリ領域に含まれる。
【0146】
一実施形態では、CTUのサイズがサイズ閾値以上であることに基づいて1つのメモリ領域のサイズがサイズ閾値に等しい。
【0147】
一実施形態では、CTUのサイズがサイズ閾値未満であることに基づいて1つのメモリ領域のサイズがCTUのサイズに等しい。
【0148】
一実施形態では、参照ブロックのサンプルの列全体がCTUのメモリ領域の1つに含まれる。
【0149】
一実施形態では、参照ブロックのサンプルの行全体がCTUのメモリ領域の1つに含まれる。
【0150】
一実施形態では、参照ブロックのサンプルの上の行が上下方向に参照ブロックのサンプルの下の行の上にある。
【0151】
V.コンピュータシステム
コンピュータ可読指示を用い、1つ以上のコンピュータ可読媒体に物理的に記憶されるコンピュータソフトウェアとして上述の手法を実施することができる。たとえば、図13は開示されている保護対象のいくつかの実施形態を実施するのに好適なコンピュータシステム(1300)を示す。
【0152】
コンピュータソフトウェアは、任意の適切なマシン語すなわちコンピュータ言語を用いてコード化することができ、このコンピュータ言語は、指示を備えるコードを生成するためのアセンブリ、コンパイル、リンク、又は同様のメカニズムによって処理される場合があり、この指示は、1つ以上のコンピュータ中央処理装置(CPU)、グラフィックス処理装置(GPU)などによって、直接実行したり、解釈、マイクロコードの実行などを通じて実行したりすることができる。
【0153】
指示は、たとえば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲーム機、モノのインターネットデバイスなどを含む様々なタイプのコンピュータ又はその構成要素で実行することができる。
【0154】
コンピュータシステム(1300)の図13に示されている構成要素も当然典型的なものであり、本開示の実施形態を実施するコンピュータソフトウェアの使用又は機能の範囲に関していかなる限定の示唆も意図していない。さらには、構成要素の構成が、コンピュータシステム(1300)の典型的な実施形態に示されている構成要素のいずれか1つ又はこれらの組合せに関連する依存性又は要求を持つと解釈するべきでもない。
【0155】
コンピュータシステム(1300)はいくつかのヒューマンインタフェイス入力装置を含んでもよい。このようなヒューマンインタフェイス入力装置は、たとえば、触覚入力(キーストローク、スワイプ、データグローブの動きなど)、音声入力(音声、拍手など)、視覚入力(ジェスチャなど)、嗅覚入力(図示せず)を通じて1人以上の人間のユーザによる入力に応答するものであってもよい。ヒューマンインタフェイス装置を用いることで、音声(発話、音楽、周囲音など)、画像(スキャン画像、静止画像カメラから取得した写真画像など)、映像(二次元映像、立体映像を含む三次元映像など)など、人間による意識的な入力に必ずしも直接関連しないなんらかの媒体を獲得することもできる。
【0156】
入力ヒューマンインタフェイス装置は、キーボード(1301)、マウス(1302)、トラックパッド(1303)、タッチ画面(1310)、データグローブ(図示せず)、ジョイスティック(1305)、マイク(1306)、スキャナ(1307)、カメラ(1308)の1つ以上(各々の1つのみが図示されている)を含んでもよい。
【0157】
コンピュータシステム(1300)はいくつかのヒューマンインタフェイス出力装置も含んでもよい。このようなヒューマンインタフェイス出力装置は、たとえば、触覚出力、音、光及び嗅覚/味覚を通じて1人以上の人間のユーザの感覚を刺激してもよい。このようなヒューマンインタフェイス出力装置は、触覚出力装置(たとえば、タッチ画面(1310)、データグローブ(図示せず)又はジョイスティック(1305)による触覚フィードバック。ただし、入力装置として用いられない触覚フィードバック装置も存在することができる)、音声出力装置(スピーカ(1309)、ヘッドホン(図示せず)など)、視覚出力装置(CRT画面、LCD画面、プラズマ画面、OLED画面を含む画面(1310)など。各々にはタッチ画面入力機能があったりなかったりし、触覚フィードバック機能があったりなかったりする。上記の画面のいくつかは、二次元視覚出力を出力したり、立体グラフィック出力などの手段を通じて三次元以上の出力を出力したりする能力があってもよい。バーチャルリアリティグラス(図示せず)、ホログラムディスプレイ、発煙剤タンク(図示せず))及びプリンタ(図示せず)を含んでもよい。
【0158】
コンピュータシステム(1300)は、CD/DVD又は同様の媒体を用いるCD/DVD ROM/RW(1320)を含む光学媒体(1321)、thumb-drive(1322)、リムーバブルハードドライブやソリッドステートドライブ(1323)、テープやフロッピディスクなどのレガシ磁気媒体(図示せず)、セキュリティドングルなどの特化型のROM/ASIC/PLDベースのデバイス(図示せず)などの人間が直接操作し得る記憶装置及びこれに関連する媒体も含むことができる。
【0159】
ここで開示されている保護対象に関連して用いられている用語「コンピュータ可読媒体」が伝送媒体、搬送波又はその他一時的な信号を含まないことも当業者は当然理解する。
【0160】
コンピュータシステム(1300)は1つ以上の通信ネットワーク(1355)に対するインタフェイス(1354)も含むことができる。ネットワークはたとえば、無線ネットワーク、有線ネットワーク、光学ネットワークであることが可能である。さらに、ネットワークは、ローカル、広域、大都市圏、車両用及び産業用、リアルタイム、遅延耐性などのネットワークであることが可能である。ネットワークの例には、Ethernetなどのローカルエリアネットワーク、無線LAN、GSM、3G、4G、5G、LTEなどを含むセルラネットワーク、ケーブルテレビ、衛星テレビ及び地上波テレビを含むテレビの有線又は無線広域デジタルネットワーク、CANBusを含む車両用及び産業用などが含まれる。あるネットワークには、いくつかの汎用データポート又はペリフェラルバス(1349)(たとえば、コンピュータシステム(1300)のUSBポート)に一般的な仕方で取り付けられる外部ネットワークインタフェイスアダプタが必要であり、その他のネットワークについては、後述のようにシステムバスに取り付けることによってコンピュータシステム(1300)のコアに一般的な仕方で組み込まれる(たとえば、PCコンピュータシステムにはイーサネットインタフェイスであったりスマートフォンコンピュータシステムにはセルラネットワークインタフェイスであったりする)。このようなネットワークのいずれを用いても、コンピュータシステム(1300)は相手方と通信することができる。このような通信は、一方向、受信専用(たとえば、テレビ放送)、一方向送信専用(たとえば、CANbusから特定のCANbusデバイス)又は双方向、たとえば、ローカル若しくは広域デジタルネットワークを用いた他のコンピュータシステムに対する双方向の通信であることが可能である。上述のこのようなネットワーク及びネットワークインタフェイスの各々にいくつかのプロトコル及びプロトコルスタックを用いることができる。
【0161】
上述のヒューマンインタフェイス装置、人間が直接操作し得る記憶装置及びネットワークインタフェイスをコンピュータシステム(1300)のコア(1340)に取り付けることができる。
【0162】
コア(1340)は、1つ以上の中央処理装置(CPU)(1341)、グラフィックス処理装置(GPU)(1342)、フィールドプログラマブルゲートエリア(FPGA)(1343)の形態をとる特化型プログラム可能処理装置、特定のタスク用のハードウェアアクセラレータ(1344)、グラフィックアダプタ(1350)などを含むことができる。このようなデバイスを、読出し専用メモリ(ROM)(1345)、ランダムアクセスメモリ(1346)、内部にあってユーザが直接操作し得ないハードドライブ、SSDなどの内部大容量ストレージ(1347)とともにシステムバス(1348)を通じて接続してもよい。いくつかのコンピュータシステムでは、システムバス(1348)は、追加のCPU、GPUなどによって拡張を可能にする1つ以上の物理的なプラグの形態をとる直接操作し得るものであることが可能である。周辺機器をコアのシステムバス(1348)に直接取り付けるか、ペリフェラルバス(1349)を介して取り付けるかすることができる。一例では、ディスプレイ(1310)をグラフィックアダプタ(1350)に接続することができる。ペリフェラルバスのアーキテクチャにはPCI、USBなどが含まれる。
【0163】
CPU(1341)、GPU(1342)、FPGA(1343)及びアクセラレータ(1344)は、組み合わされて上述のコンピュータコードを構築することができるいくつかの指示を実行することができる。当該コンピュータコードをROM(1345)又はRAM(1346)に記憶することができる。RAM(1346)には過渡的データも記憶することができる一方で、不変データをたとえば内部大容量ストレージ(1347)に記憶することができる。1つ以上のCPU(1341)、GPU(1342)、大容量ストレージ(1347)、ROM(1345)、RAM(1346)などと密接に関連することができるキャッシュメモリを用いることにより、メモリデバイスのいずれかに対する高速記憶及び読出しを可能にすることができる。
【0164】
コンピュータ可読媒体には様々なコンピュータ実施動作を実行するためのコンピュータコードを搭載することができる。媒体及びコンピュータコードは本開示のために特別に設計及び構成されたものであることが可能であるし、コンピュータソフトウェア技術の当業者によく知られ、当業者が入手可能な種類のものであることが可能である。
【0165】
限定例としてではなく一例として、アーキテクチャ(1300)を有し、特にコア(1340)を有するコンピュータシステムは、1つ以上のプロセッサ(CPU、GPU、FPGA、アクセラレータなどを含む)が1つ以上の有形のコンピュータ可読媒体で具現化されたソフトウェアを実行した結果として機能を提供することができる。このようなコンピュータ可読媒体は、上述されているような、ユーザが直接操作し得る大容量ストレージに関連する媒体であることが可能であり、さらには、コア内蔵大容量ストレージ(1347)やROM(1345)などの非一時性のストレージであるコア(1340)の特定のストレージであることも可能である。本開示の様々な実施形態を実施するソフトウェアをこのようなデバイスに記憶してコア(1340)によって実行することができる。コンピュータ可読媒体は個々の要求に応じて1つ以上のメモリデバイスやチップを含むことができる。ソフトウェアにより、コア(1340)、特にコア(1340)中のプロセッサ(CPU、GPU、FPGAなどを含む)が、RAM(1346)に記憶されているデータ構造の定義と、ソフトウェアによって定義されているプロセスに応じたこのようなデータ構造の修正とを含む、本出願で説明されている特定のプロセス又は特定のプロセスの特定の部分を実行することができる。これに加えて、又はこれの代わりとして、本出願で説明されている特定のプロセス又は特定のプロセスの特定の部分を実行するようにソフトウェアの代わりに動作したり、ソフトウェアと協働したりすることができる回路(たとえばアクセラレータ(1344))にロジックがハードワイヤードされたり、ロジックが別の仕方で具現化された結果としてコンピュータシステムは機能を提供することができる。必要に応じて、「ソフトウェア」と記載されている場合にはロジックを包含する場合があり、逆も可能である。必要に応じて、「コンピュータ可読媒体」と記載されている場合には、実行されるソフトウェアを記憶する回路(集積回路(IC)など)や、実行されるロジックを具体化する回路や、これらの両方を包含する場合がある。本開示にはハードとソフトとの任意の適切な組合せが含まれる。
【0166】
本開示ではいくつかの典型的な実施形態を説明してきたが、変形例、置換例及び様々な代替均等例が存在し、これらは本開示の範囲に含まれる。したがって、当業者であれば、本出願で明示的に示されていたり説明されていたりしなくても、本開示の原理を具体化し、したがってその精神及び範囲内にある多数のシステム及び方法を想起することができることが分かる。
【0167】
付記A:頭字語
AMVP:Advanced Motion Vector Prediction
ASIC:Application-Specific Integrated Circuit
ATMVP:Alternative/Advanced Temporal Motion Vector Prediction
BMS:Benchmark Set
BV:Block Vector
CANBus:Controller Area Network Bus
CB:Coding Block
CD:Compact Disc
CPR:Current Picture Referencing
CPU:Central Processing Unit
CRT:Cathode Ray Tube
CTB:Coding Tree Block
CTU:Coding Tree Unit
CU:Coding Unit
DPB:Decoder Picture Buffer
DVD:Digital Video Disc
FPGA:Field Programmable Gate Area
GOP:Groups of Picture
GPU:Graphics Processing Unit
GSM:Global System for Mobile communication
HEVC:High Efficiency Video Coding
HRD:Hypothetical Reference Decoder
IBC:Intra Block Copy
IC:Integrated Circuit
JEM:Joint Exploration Model
LAN:Local Area Network
LCD:Liquid-Crystal Display
LTE:Long-Term Evolution
MV:Motion Vector
MVP:Motion Vector Prediction
OLED:Organic Light-Emitting Diode
PB:Prediction Block
PCI:Peripheral Component Interconnect
PLD:Programmable Logic Device
PU:Prediction Unit
RAM:Random Access Memory
ROM:Read-Only Memory
SCC:Screen Content Coding
SEI:Supplementary Enhancement Information
SNR:Signal Noise Ratio
SSD:Solid-state Drive
TU:Transform Unit
USB:Universal Serial Bus
VUI:Video Usability Information
VVC:Versatile Video Coding
【符号の説明】
【0168】
R01~R70 参照サンプル
S11~S44 サンプル
101 サンプル
102 矢印
103 矢印
104 正方形ブロック
105 概略図
111 対象のブロック
200 通信システム
210 端末装置
220 端末装置
230 端末装置
240 端末装置
250 通信ネットワーク
301 ビデオ供給源
302 ストリーム
303 ビデオエンコーダ
304 ビデオデータ、ビデオビットストリーム
305 ストリーミングサーバ
306 クライアントサブシステム
307 複製
309 複製
310 ビデオデコーダ
311 出力ストリーム
312 ディスプレイ
313 撮像サブシステム
320 電子装置
330 電子装置
401 チャンネル
410 ビデオデコーダ
412 描画装置
415 バッファメモリ
420 パーサ
421 シンボル
430 電子装置
431 受信器
451 逆変換部
452 イントラ予測部、イントラ予測モジュール
453 補償予測部
455 集合器
456 ループフィルタ部
457 参照ピクチャメモリ、参照ピクチャキャッシュ
458 対象ピクチャバッファ
501 ビデオ供給源
503 ビデオエンコーダ
520 電子装置
530 供給源コーダ
532 コーディングエンジン
533 デコーダ
534 参照ピクチャメモリ
535 予測器
540 送信器
543 ビデオ列
545 エントロピコーダ
550 コントローラ
560 通信チャンネル
603 ビデオエンコーダ
621 統括コントローラ
622 イントラエンコーダ
623 残差計算器
624 残差エンコーダ
625 エントロピエンコーダ
626 スイッチ
628 残差デコーダ
630 インタエンコーダ
710 ビデオデコーダ
771 エントロピデコーダ
772 イントラデコーダ
773 残差デコーダ
774 再構成モジュール
780 インタデコーダ
800 ピクチャ
801 再構成済みの領域
802 再構成予定の領域
803 ブロックベクトル
804 対象のブロック
805 参照ブロック
900 対象のCTU
901 対象の領域
902 対象の領域
903 対象の領域
904 対象の領域
910 左のCTU
911 既に再構成済みの領域
912 既に再構成済みの領域
913 既に再構成済みの領域
914 既に再構成済みの領域
1001 対象のブロック
1002 参照ブロック
1003 対象のブロック
1004 参照ブロック
1005 サンプル
1010 対象のCTU
1020 左のCTU
1031 メモリ領域
1032 メモリ領域
1034 メモリ領域
1101 ブロック
1102 ブロック
1103 ブロック
1104 ブロック
1105 ブロック
1106 ブロックの下の部分
1110 対象のCTU
1111 メモリ領域
1112 メモリ領域
1113 メモリ領域
1114 メモリ領域
1200 プロセス
1300 コンピュータシステム
1301 キーボード
1302 マウス
1303 トラックパッド
1305 ジョイスティック
1306 マイク
1307 スキャナ
1308 カメラ
1309 スピーカ
1310 タッチ画面、ディスプレイ
1320 CD/DVD ROM/RW
1321 光学媒体
1322 thumb-drive
1323 ソリッドステートドライブ
1340 コア
1341 CPU
1342 GPU
1343 FPGA
1344 ハードウェアアクセラレータ
1345 ROM
1346 RAM
1347 内部大容量ストレージ
1348 システムバス
1349 ペリフェラルバス
1350 グラフィックアダプタ
1354 インタフェイス
1355 通信ネットワーク
図1A
図1B
図1C
図2
図3
図4
図5
図6
図7
図8
図9A
図9B
図9C
図9D
図10A
図10B
図11
図12
図13
【手続補正書】
【提出日】2021-08-11
【手続補正2】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
デコーダが実行するビデオコーディング方法であって、
コーディングされたビットストリーム中のコーディングツリーユニット(CTU)の対象のブロックの予測情報を復号化するステップであって、前記予測情報は、前記対象のブロックがイントラブロックコピー(IBC)モードでコーディングされることを示す、ステップと、
前記対象のブロックに対する参照ブロックを決定するステップであって、前記参照ブロックのサンプルを含むメモリ領域の個数は前記CTUのメモリ領域の総数未満である、ステップと、
前記参照ブロックに基づいて前記対象のブロックを再構成するステップと
を備える方法。
【請求項2】
前記参照ブロック全体が前記CTUの前記メモリ領域の、1つのメモリ領域に含まれる、請求項1に記載の方法。
【請求項3】
前記CTUのサイズがサイズ閾値以上であることに基づいて前記1つのメモリ領域のサイズが前記サイズ閾値に等しい、請求項2に記載の方法。
【請求項4】
前記CTUの前記サイズがサイズ閾値未満であることに基づいて前記1つのメモリ領域のサイズが前記CTUのサイズに等しい、請求項2に記載の方法。
【請求項5】
前記参照ブロックの前記サンプルの列全体が前記CTUの前記メモリ領域の1つに含まれる、請求項1~4のいずれか一項に記載の方法。
【請求項6】
前記参照ブロックの前記サンプルの行全体が前記CTUの前記メモリ領域の1つに含まれる、請求項1~4のいずれか一項に記載の方法。
【請求項7】
前記参照ブロックの前記サンプルの上の行が上下方向に前記参照ブロックの前記サンプルの下の行の上にある、請求項6に記載の方法。
【請求項8】
請求項1~7のいずれか一項に記載の方法を実行するように構成される処理回路を備える装置。
【請求項9】
少なくとも1つのプロセッサに、請求項1~7のいずれか一項に記載の方法を実行させるためのコンピュータプログラム。
【国際調査報告】