JP2023552148A - 二次変換係数の走査順序 - Google Patents

二次変換係数の走査順序 Download PDF

Info

Publication number
JP2023552148A
JP2023552148A JP2023532416A JP2023532416A JP2023552148A JP 2023552148 A JP2023552148 A JP 2023552148A JP 2023532416 A JP2023532416 A JP 2023532416A JP 2023532416 A JP2023532416 A JP 2023532416A JP 2023552148 A JP2023552148 A JP 2023552148A
Authority
JP
Japan
Prior art keywords
data
transform
video
block
intra
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2023532416A
Other languages
English (en)
Inventor
マドゥー・ペリンガーサリー・クリシュナン
シン・ジャオ
シャン・リュウ
Original Assignee
テンセント・アメリカ・エルエルシー
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by テンセント・アメリカ・エルエルシー filed Critical テンセント・アメリカ・エルエルシー
Publication of JP2023552148A publication Critical patent/JP2023552148A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/18Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • H04N19/619Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding the transform being operated outside the prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

ビデオデータを処理するための方法、装置、およびコンピュータ可読記憶媒体。本方法は、ビデオデータからデータブロックを抽出するステップと、第1の走査順序に従うデータブロック内の第1の数のデータ項目を走査して第1のデータシーケンスを生成するステップと、第1のデータシーケンスに対して分離不可能変換を実行じて第2の数のデータ項目を有する第2のデータシーケンスを取得するステップと、データブロック内の第1の数のデータ項目の少なくとも一部を、第2の走査順序に従う第2のデータシーケンスの一部または全部と置換するステップとを含む。

Description

関連出願の相互参照
本出願は、2021年8月30日に出願された米国仮特許出願第63/238,646号、および2022年1月28日に出願された米国非仮特許出願第17/587,164号に基づき、これらに対する優先権の利益を主張するものであり、両出願の全体が参照により本明細書に組み込まれる。
本開示では最新のビデオコーディング技術の集合を説明する。より具体的には、開示された技術は、ビデオエンコーディングおよびデコーディングにおけるデータブロックの分離不可能変換の実装を含む。
本明細書で提供される背景技術の説明は、本開示の文脈を一般的に提示することを目的としている。本発明者らの研究は、その研究がこの背景技術の項に記載されている限りにおいて、またそれ以外の本出願の出願時に先行技術として認められない可能性のある説明の態様と共に、本開示に対する先行技術としては明示的にも暗示的にも認められない。
ビデオコーディングおよびデコーディングは、動き補償を伴うインターピクチャ予測を使用して実施され得る。非圧縮デジタルビデオは、一連のピクチャを含むことができ、各ピクチャは、例えば1920×1080の輝度サンプルおよび関連するフルサンプリングまたはサブサンプリングされた色差サンプルの空間次元を有する。一連のピクチャは、例えば毎秒60ピクチャまたは毎秒60フレームの固定または可変のピクチャレート(あるいはフレームレートとも呼ばれる)を有することができる。非圧縮ビデオは、ストリーミングまたはデータ処理のための特定のビットレート要件を有する。例えば、1920×1080の画素解像度、60フレーム/秒のフレームレート、および色チャネルあたり画素あたり8ビットで4:2:0のクロマサブサンプリングを有するビデオは、1.5Gbit/sに近い帯域幅を必要とする。1時間分のそのようなビデオは、600GByteを超える記憶空間を必要とする。
ビデオコーディングおよびデコーディングの1つの目的は、圧縮による非圧縮入力ビデオ信号の冗長性の低減であり得る。圧縮は、前述の帯域幅および/または記憶空間要件を、場合によっては2桁以上低減させるのに役立ち得る。可逆圧縮と非可逆圧縮の両方、およびそれらの組み合わせを使用することができる。可逆圧縮とは、原信号の正確なコピーを、デコーディング処理によって圧縮された原信号から再構成することができる技術を指す。非可逆圧縮とは、元のビデオ情報がコーディング時に完全に保持されず、デコーディング時に完全に復元できないコーディング/デコーディング処理を指す。非可逆圧縮を使用する場合、再構成された信号は原信号と同一ではない可能性があるが、原信号と再構成された信号との間の歪みは、多少の情報損失はあっても、再構成された信号を意図された用途に役立てるのに十分なほど小さくなる。ビデオの場合、非可逆圧縮が多くの用途で広く採用されている。許容できる歪みの量は用途に依存する。例えば、特定の消費者ビデオストリーミング用途のユーザは、映画やテレビ放送用途のユーザよりも高い歪みを容認し得る。特定のコーディングアルゴリズムによって達成可能な圧縮比を、様々な歪み耐性を反映するように選択または調整することができる。すなわち、一般に、歪み耐性が高いほど、高い損失および高い圧縮比をもたらすコーディングアルゴリズムが可能になる。
ビデオエンコーダおよびビデオデコーダは、例えば、動き補償、フーリエ変換、量子化、およびエントロピーコーディングを含む、いくつかの広範なカテゴリおよびステップからの技術を利用することができる。
ビデオコーデック技術は、イントラコーディングとして知られる技術を含み得る。イントラコーディングでは、サンプル値は、以前に再構成された参照ピクチャからのサンプルまたは他のデータを参照せずに表される。一部のビデオコーデックでは、ピクチャがサンプルのブロックに、空間的に細分される。サンプルのすべてのブロックがイントラモードでコーディングされる場合、そのピクチャをイントラピクチャと呼ぶことができる。イントラピクチャおよび独立したデコーダリフレッシュピクチャなどのそれらの派生ピクチャは、デコーダ状態をリセットするために使用することができ、したがって、コーディングされたビデオビットストリームおよびビデオセッション内の最初のピクチャとして、または静止画像として使用することができる。次いで、イントラ予測後のブロックのサンプルに周波数領域への変換を施すことができ、そのように生成された変換係数をエントロピーコーディングの前に量子化することができる。イントラ予測は、変換前領域におけるサンプル値を最小化する技術を表す。場合によっては、変換後のDC値が小さいほど、およびAC係数が小さいほど、エントロピーコーディング後のブロックを表すために所与の量子化ステップサイズで必要とされるビット数が少なくなる。
例えば、MPEG-2生成コーディング技術から知られているような従来のイントラコーディングは、イントラ予測を使用しない。しかしながら、いくつかのより新しいビデオ圧縮技術は、例えば、空間的隣接のエンコーディングおよび/またはデコーディング時に取得され、イントラコーディングまたはイントラデコーディングされているデータのブロックにデコーディング順序で先行する、周囲のサンプルデータおよび/またはメタデータに基づいて、ブロックのコーディング/デコーディングを試みる技術を含む。そのような技術を、これ以降、「イントラ予測」技術と呼ぶ。少なくともいくつかの場合において、イントラ予測は、再構成中の現在のピクチャのみからの参照データを使用し、他の参照ピクチャからの参照データは使用しないことに留意されたい。
イントラ予測には、多くの異なる形態があり得る。そのような技術のうちの2つ以上が所与のビデオコーディング技術において利用可能であるとき、使用される技術を、イントラ予測モードと呼ぶことができる。1つまたは複数のイントラ予測モードが特定のコーデックで提供され得る。特定の場合には、モードは、サブモードを有することができ、かつ/または様々なパラメータと関連付けられていてもよく、モード/サブモード情報およびビデオのブロックのイントラコーディングパラメータは、個別にコーディングされるか、またはまとめてモードのコードワードに含めることができる。所与のモード、サブモード、および/またはパラメータの組み合わせにどのコードワードを使用するかは、イントラ予測を介したコーディング効率向上に影響を与える可能性があり、そのため、コードワードをビットストリームに変換するために使用されるエントロピーコーディング技術も影響を与える可能性がある。
イントラ予測の特定のモードは、H.264で導入され、H.265で改良され、共同探索モデル(JEM)、多用途ビデオコーディング(VVC)、およびベンチマークセット(BMS)などのより新しいコーディング技術でさらに改良された。一般に、イントラ予測では、利用可能になった隣接サンプル値を使用して予測子ブロックを形成することができる。例えば、特定の方向および/または線に沿った特定の隣接サンプルセットの利用可能な値が、予測子ブロックにコピーされ得る。使用される方向への参照は、ビットストリーム内でコーディングされ得るか、またはそれ自体が予測され得る。
図1Aを参照すると、右下に示されているのは、(H.265で指定される35のイントラモードのうちの33の角度モードに対応する)H.265の33の可能なイントラ予測子方向で指定される9つの予測子方向のサブセットである。矢印が集中する点(101)は、予測されているサンプルを表す。矢印は、隣接サンプルがそこから101のサンプルを予測するために使用される方向を表す。例えば、矢印(102)は、サンプル(101)が、1つまたは複数の隣接サンプルから右上へ、水平方向から45度の角度で予測されることを示している。同様に、矢印(103)は、サンプル(101)が、1つまたは複数の隣接サンプルからサンプル(101)の左下へ、水平方向から22.5度の角度で予測されることを示している。
さらに図1Aを参照すると、左上には、(太い破線によって示された)4×4サンプルの正方形ブロック(104)が描写されている。正方形ブロック(104)は16個のサンプルを含み、各々、「S」、Y次元のその位置(例えば、行インデックス)、およびX次元のその位置(例えば、列インデックス)でラベル付けされている。例えば、サンプルS21は、Y次元の(上から)2番目のサンプルであり、X次元の(左から)1番目のサンプルである。同様に、サンプルS44は、ブロック(104)内のY次元およびX次元の両方の4番目のサンプルである。ブロックのサイズは4×4サンプルであるため、S44は右下にある。同様の番号付け方式に従う参照サンプルの例がさらに示されている。参照サンプルは、ブロック(104)に対するそのY位置(例えば、行インデックス)およびX位置(列インデックス)を、Rでラベル付けされている。H.264とH.265の両方で、再構成中のブロックに隣接する予測サンプルが使用される。
ブロック104のイントラピクチャ予測は、シグナリングされた予測方向に従って隣接サンプルから参照サンプル値をコピーすることから開始し得る。例えば、コーディングされたビデオビットストリームは、このブロック104について、矢印(102)の予測方向を示すシグナリングを含む、すなわち、サンプルは1つまたは複数の予測サンプルから右上へ、水平方向から45度の角度で予測されると仮定する。そのような場合、サンプルS41、S32、S23、S14が、同じ参照サンプルR05から予測される。次いで、サンプルS44が、参照サンプルR08から予測される。
特定の場合には、参照サンプルを計算するために、特に方向が45度によって均等に割り切れないときは、複数の参照サンプルの値は、例えば補間によって組み合わされてもよい。
可能な方向の数は、ビデオコーディング技術が発展し続けるにつれて増加してきた。H.264(2003年)では、例えば、9つの異なる方向がイントラ予測に利用可能である。これは、H.265(2013年)では33まで増加し、JEM/VVC/BMSは、本開示の時点で、最大65の方向をサポートすることができる。最も適切なイントラ予測方向を特定するのに役立つ実験研究が行われており、エントロピーコーディングの特定の技術を使用して、方向についての特定のビットペナルティを受け入れて、それらの最も適切な方向を少数のビットでエンコーディングし得る。さらに、方向自体を、デコーディングされた隣接ブロックのイントラ予測で使用された隣接する方向から予測できる場合もある。
図1Bは、時間の経過と共に発展した様々なエンコーディング技術における増加する予測方向の数を例示するために、JEMによる65のイントラ予測方向を示す概略図(180)を示している。
コーディングされたビデオビットストリームにおけるイントラ予測方向を表すビットの予測方向へのマッピングのための方法は、ビデオコーディング技術によって異なる可能性があり、例えば、予測方向対イントラ予測モードの単純な直接マッピングから、コードワード、最確モードを含む複雑な適応方式、および同様の技術にまでおよび得る。ただし、すべての場合において、他の特定の方向よりもビデオコンテンツで発生する可能性が統計的に低いイントラ予測の特定の方向が存在し得る。ビデオ圧縮の目的は冗長性の低減であるため、うまく設計されたビデオコーディング技術においては、それらのより可能性の低い方向はより可能性の高い方向よりも多くのビット数で表され得る。
インターピクチャ予測、またはインター予測は、動き補償に基づくものあり得る。動き補償では、以前に再構成されたピクチャまたはその一部(参照ピクチャ)からのサンプルデータが、動きベクトル(これ以降はMV)によって示される方向に空間的にシフトされた後、新たに再構成されたピクチャまたはピクチャ部分(例えば、ブロック)の予測に使用され得る。場合によっては、参照ピクチャは、現在再構成中のピクチャと同じであり得る。MVは、2つの次元XおよびY、または3つの次元を有していてもよく、第3の次元は、(時間次元と類似した)使用される参照ピクチャの指示である。
いくつかのビデオ圧縮技術では、サンプルデータの特定のエリアに適用可能な現在のMVを、他のMVから、例えば再構成中のエリアに空間的に隣接し、デコーディング順序で現在のMVに先行する、サンプルデータの他のエリアに関連する他のMVから予測することができる。そうすることにより、相関するMVの冗長性の除去に依拠することによってMVをコーディングするのに必要とされる全体のデータ量を大幅に低減することができ、それによって圧縮効率が高まる。MV予測が効果的に機能することができるのは、例えば、(自然なビデオとして知られている)カメラから導出された入力ビデオ信号をコーディングするときに、単一のMVが適用可能なエリアよりも大きいエリアは、ビデオシーケンスにおいて同様の方向に移動する統計的尤度があり、したがって、場合によっては、隣接するエリアのMVから導出された同様の動きベクトルを使用して予測することができるからである。その結果として、所与のエリアの実際のMVが周囲のMVから予測されたMVと同様または同一になる。そのようなMVはさらに、エントロピーコーディング後に、MVが(1つまたは複数の)隣接するMVから予測されるのではなく直接コーディングされた場合に使用されることになるビット数よりも少ないビット数で表され得る。場合によっては、MV予測を、原信号(すなわち、サンプルストリーム)から導出された信号(すなわち、MV)の可逆圧縮の一例とすることができる。他の場合には、例えば、いくつかの周囲のMVから予測子を計算するときの丸め誤差のために、MV予測自体は非可逆であり得る。
H.265/HEVC(ITU-T Rec.H.265,“High Efficiency Video Coding”,December 2016)には、様々なMV予測機構が記載されている。H.265が指定する多くのMV予測機構のうち、以下で説明するのは、これ以降「空間マージ」と呼ぶ技術である。
具体的には、図2を参照すると、現在のブロック(201)は、動き探索処理中にエンコーダによって、空間的にシフトされた同じサイズの前のブロックから予測可能であると検出されたサンプルを含む。そのMVを直接コーディングする代わりに、MVを、A0、A1、およびB0、B1、B2(それぞれ202から206)で表された5つの周囲のサンプルのいずれか1つと関連付けられたMVを使用して、1つまたは複数の参照ピクチャと関連付けられたメタデータから、例えば、(デコーディング順序で)最後の参照ピクチャから導出することができる。H.265では、MV予測は、隣接ブロックが使用しているのと同じ参照ピクチャからの予測子を使用することができる。
本開示の態様は、ビデオエンコーディングおよびビデオデコーディングのための方法および装置を提供する。
本開示の態様では、ビデオデコーディングおよび/またはエンコーディングのためにコンピュータによって実行されるときにビデオデコーディングおよび/またはエンコーディングのための方法をコンピュータに実行させる命令を記憶する非一時的コンピュータ可読媒体も提供する。
一態様によれば、本開示の実施形態は、ビデオデータを処理するための方法を提供する。本方法は、ビデオデータからデータブロックを抽出するステップと、第1の走査順序に従うデータブロック内の第1の数のデータ項目を走査して第1のデータシーケンスを生成するステップと、第1のデータシーケンスに対して分離不可能変換を実行して第2の数のデータ項目を有する第2のデータシーケンスを取得するステップと、データブロック内の第1の数のデータ項目の少なくとも一部を、第2の走査順序に従う第2のデータシーケンスの一部または全部と置換するステップとを含む。
別の態様によれば、本開示の一実施形態は、ビデオデータに関連付けられた変換係数をエントロピーエンコーディングするための方法を提供する。本方法は、変換係数に関連付けられた変換が分離不可能であることに応答して、水平走査順序、または垂直走査順序のうちの1つである第1の走査順序を使用して変換係数のエントロピーエンコーディングを実行するときに、変換係数を走査するステップと、変換係数に関連付けられた変換が分離可能であることに応答して、変換係数のエントロピーエンコーディングを実行するときに、第1の走査順序とは異なる第2の走査順序で変換係数を走査するステップとを含む。
別の態様によれば、本開示の実施形態は、ビデオデータを処理する方法を提供する。本方法は、ビデオデータを受信するステップと、分離不可能変換が二次変換としてビデオデータに適用されるかどうかを決定するステップと、分離不可能変換が二次変換としてビデオデータに適用されることに応答して、第1の数の一次変換係数を走査するステップであって、一次変換係数が、第1の走査順序に従う、ステップと、入力として第1の数の一次変換係数を使用して分離不可能変換を実行して、出力として第2の数の二次変換係数を取得するステップであって、二次変換係数が、第2の走査順序に従う、ステップと、少なくとも第2の数の一次変換係数を、第2の走査順序に従う二次変換係数と置換するステップと、入力として第2の数の二次変換係数を使用して分離不可能変換に対応する逆方向二次変換を実行して、出力として第1の数の一次変換係数を取得するステップと、少なくとも第1の数の二次変換係数を、第1の走査順序に従う一次変換係数と置換するステップとを含む。
別の態様によれば、本開示の一実施形態は、ビデオエンコーディングおよび/またはデコーディングための装置を提供する。装置は、命令を記憶するメモリと、メモリと通信するプロセッサと、を含む。プロセッサが命令を実行すると、プロセッサは、装置に、ビデオデコーディングおよび/またはエンコーディングのための上記の方法を実行させるように構成される。
さらに別の態様によれば、本開示の一実施形態は、ビデオデコーディングおよび/またはエンコーディングのためにコンピュータによって実行されると、ビデオデコーディングおよび/またはエンコーディングのための上記の方法をコンピュータに実行させる命令を記憶する非一時的コンピュータ可読媒体を提供する。
上記その他の態様およびそれらの実装形態を、図面、明細書、および特許請求の範囲においてさらに詳細に説明する。
本開示の主題のさらなる特徴、性質、および様々な利点は、以下の詳細な説明および添付の図面からより明らかになるであろう。
イントラ予測方向モードの例示的なサブセットの概略図である。 例示的なイントラ予測方向を示す図である。 一例における現在のブロックおよび動きベクトル予測のためのその周囲の空間マージ候補を示す概略図である。 一例示的実施形態による通信システム(300)の簡略化されたブロック図の概略図である。 一例示的実施形態による通信システム(400)の簡略化されたブロック図の概略図である。 一例示的実施形態によるビデオデコーダの簡略化されたブロック図の概略図である。 一例示的実施形態によるビデオエンコーダの簡略化されたブロック図の概略図である。 別の例示的実施形態によるビデオエンコーダのブロック図である。 別の例示的実施形態によるビデオデコーダのブロック図である。 本開示の例示的実施形態による方向性イントラ予測モードを示す図である。 本開示の例示的実施形態による無方向イントラ予測モードを示す図である。 本開示の例示的実施形態による再帰的イントラ予測モードを示す図である。 本開示の例示的実施形態によるイントラ予測ブロックの変換ブロックの分割および走査を示す図である。 本開示の例示的実施形態によるインター予測ブロックの変換ブロックの分割および走査を示す図である。 本開示の例示的実施形態による低周波数分離不可能変換処理を示す図である。 本開示の例示的実施形態による分離不可能変換を実行するためのデータフローを示す図である。 本開示の例示的実施形態によるフローチャートの図である。 本開示の例示的実施形態によるコンピュータシステムを示す概略図である。
図3は、本開示の一実施形態による、通信システム(300)の簡略化されたブロック図を示す。通信システム(300)は、例えば、ネットワーク(350)を介して互いに通信することができる複数の端末デバイスを含む。例えば、通信システム(300)は、ネットワーク(350)を介して相互接続された端末デバイス(310)および(320)の第1の対を含む。図3の例では、端末デバイス(310)および(320)の第1の対は、データの単方向伝送を実施し得る。例えば、端末デバイス(310)は、ネットワーク(350)を介して他方の端末デバイス(320)に伝送するための(例えば、端末デバイス(310)によって取り込まれたビデオピクチャのストリームの)ビデオデータをコーディングし得る。エンコーディングされたビデオデータは、1つまたは複数のコーディングされたビデオビットストリームの形で伝送され得る。端末デバイス(320)は、ネットワーク(350)からコーディングされたビデオデータを受信し、コーディングされたビデオデータをデコーディングしてビデオピクチャを復元し、復元したビデオデータに従ってビデオピクチャを表示し得る。単方向データ伝送は、メディアサービング用途などで実施され得る。
別の例では、通信システム(300)は、例えばビデオ会議用途の間に実施され得るコーディングされたビデオデータの双方向伝送を実施する端末デバイス(330)および(340)の第2の対を含む。データの双方向伝送のために、一例では、端末デバイス(330)および(340)の各端末デバイスは、ネットワーク(350)を介して端末デバイス(330)および(340)の他方の端末デバイスに伝送するための(例えば、その端末デバイスによって取り込まれたビデオピクチャのストリームの)ビデオデータをコーディングし得る。端末デバイス(330)および(340)の各端末デバイスはまた、端末デバイス(330)および(340)の他方の端末デバイスによって伝送されたコーディングされたビデオデータを受信し、コーディングされたビデオデータをデコーディングしてビデオピクチャを復元し、復元したビデオデータに従ってアクセス可能な表示デバイスでビデオピクチャを表示し得る。
図3の例では、端末デバイス(310)、(320)、(330)、および(340)は、サーバ、パーソナルコンピュータ、およびスマートフォンとして実施され得るが、本開示の基礎となる原理の適用性はそのように限定されない。本開示の実施形態は、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤ、ウェアラブルコンピュータ、専用のビデオ会議機器などにおいて実装され得る。ネットワーク(350)は、例えば配線(有線)および/または無線通信ネットワークを含む、端末デバイス(310)、(320)、(330)および(340)間で、コーディングされたビデオデータを伝達する任意の個数のネットワークや任意のタイプのネットワークを表す。通信ネットワーク(350)9は、回線交換チャネル、パケット交換チャネルおよび/または他のタイプのチャネルでデータを交換してもよい。代表的なネットワークは、電気通信ネットワーク、ローカルエリアネットワーク、広域ネットワークおよび/またはインターネットを含む。本考察の目的にとって、ネットワーク(350)のアーキテクチャおよびトポロジーは、本明細書で明示的に説明されない限り、本開示の動作にとって重要ではない場合がある。
図4に、本開示の主題の用途の一例として、ビデオストリーミング環境におけるビデオエンコーダおよびビデオデコーダの配置を示す。本開示の主題は、例えば、ビデオ会議、デジタルテレビ放送、ゲーム、仮想現実、CD、DVD、メモリスティックなどを含むデジタルメディア上の圧縮ビデオの記憶などを含む、他のビデオ対応用途に等しく適用され得る。
ビデオストリーミングシステムは、圧縮されていないビデオピクチャまたは画像のストリーム(402)を作成するためのビデオソース(401)、例えばデジタルカメラを含むことができるビデオ取り込みサブシステム(413)を含み得る。一例では、ビデオピクチャのストリーム(402)は、ビデオソース401のデジタルカメラによって記録されたサンプルを含む。ビデオピクチャのストリーム(402)は、エンコーディングされたビデオデータ(404)(またはコーディングされたビデオビットストリーム)と比較した場合の高データ量を強調するために太線で示されており、ビデオソース(401)に結合されたビデオエンコーダ(403)を含む電子デバイス(420)によって処理され得る。ビデオエンコーダ(403)は、以下でより詳細に説明されるように本開示の主題の態様を可能にし、または実装するために、ハードウェア、ソフトウェア、またはそれらの組み合わせを含むことができる。エンコーディングされたビデオデータ(404)(またはエンコーディングされたビデオビットストリーム(404))は、非圧縮ビデオピクチャのストリーム(402)と比較した場合の低データ量を強調するために細線で示されており、将来の使用のためにストリーミングサーバ(405)に、または下流のビデオデバイス(図示せず)に直接記憶され得る。図4のクライアントサブシステム(406)および(408)などの1つまたは複数のストリーミングクライアントサブシステムは、ストリーミングサーバ(405)にアクセスして、エンコーディングされたビデオデータ(404)のコピー(407)および(409)を取得することができる。クライアントサブシステム(406)は、例えば電子デバイス(430)内のビデオデコーダ(410)を含むことができる。ビデオデコーダ(410)は、エンコーディングされたビデオデータの入力コピー(407)をデコーディングし、圧縮されておらず、ディスプレイ(412)(例えば、表示画面)または他のレンダリングデバイス(図示せず)上にレンダリングすることができるビデオピクチャの出力ストリーム(411)を作成する。ビデオデコーダ410は、本開示に記載される様々な機能の一部または全部を実施するように構成され得る。一部のストリーミングシステムでは、エンコーディングされたビデオデータ(404)、(407)、および(409)(例えば、ビデオビットストリーム)を、特定のビデオコーディング/圧縮規格に従ってエンコーディングすることができる。それらの規格の例には、ITU-T勧告H.265が含まれる。一例では、開発中のビデオコーディング規格は、多用途ビデオコーディング(VVC)として非公式に知られている。本開示の主題は、VVC、および他のビデオコーディング規格の文脈で使用され得る。
電子デバイス(420)および(430)は、他の構成要素(図示せず)を含むことができることに留意されたい。例えば、電子デバイス(420)はビデオデコーダ(図示せず)を含むことができ、電子デバイス(430)もビデオエンコーダ(図示せず)を含むことができる。
図5に、以下の本開示の任意の実施形態によるビデオデコーダ(510)のブロック図を示す。ビデオデコーダ(510)は、電子デバイス(530)に含めることができる。電子デバイス(530)は、受信機(531)(例えば、受信回路)を含むことができる。ビデオデコーダ(510)は、図4の例のビデオデコーダ(410)の代わりに使用することができる。
受信機(531)は、ビデオデコーダ(510)によってデコーディングされるべき1つまたは複数のコーディングされたビデオシーケンスを受信し得る。同じまたは別の実施形態では、一度に1つのコーディングされたビデオシーケンスがデコーディングされ得、各コーディングされたビデオシーケンスのデコーディングは、他のコーディングされたビデオシーケンスから独立している。各ビデオシーケンスは、複数のビデオフレームまたはビデオ画像と関連付けられ得る。コーディングされたビデオシーケンスはチャネル(501)から受信され得、チャネル(501)は、エンコーディングされたビデオデータを記憶する記憶デバイスへのハードウェア/ソフトウェアリンク、またはエンコーディングされたビデオデータを伝送するストリーミングソースであり得る。受信機(531)は、エンコーディングされたビデオデータを、それぞれの処理回路(図示せず)に転送され得る、コーディングされたオーディオデータおよび/または補助データストリームなどの他のデータと共に受信し得る。受信機(531)は、コーディングされたビデオシーケンスを他のデータから分離し得る。ネットワークジッタに対抗するために、バッファメモリ(515)が、受信機(531)とエントロピーデコーダ/パーサ(520)(これ以降は「パーサ(520)」)との間に配置されてもよい。特定の用途では、バッファメモリ(515)は、ビデオデコーダ(510)の一部として実装され得る。他の用途では、バッファメモリ(515)は、ビデオデコーダ(510)から分離されて外部にあり得る(図示せず)。さらに他の用途では、例えばネットワークジッタに対抗するためにビデオデコーダ(510)の外部にバッファメモリ(図示せず)があってもよく、例えば再生タイミングを処理するためにビデオデコーダ(510)の内部に別のバッファメモリ(515)があり得る。受信機(531)が十分な帯域幅および可制御性の記憶/転送デバイスから、またはアイソシンクロナスネットワークからデータを受信しているときには、バッファメモリ(515)は不要であり得るか、または小さくすることができる。インターネットなどのベストエフォートパケットネットワークで使用するために、十分なサイズのバッファメモリ(515)が必要とされる場合があり、そのサイズは比較的大きくなり得る。そのようなバッファメモリは、適応サイズで実装されてもよく、ビデオデコーダ(510)の外部のオペレーティングシステムまたは同様の要素(図示せず)に少なくとも部分的に実装され得る。
ビデオデコーダ(510)は、コーディングビデオシーケンスからシンボル(521)を再構成するためにパーサ(520)を含んでもよい。それらのシンボルのカテゴリは、ビデオデコーダ(510)の動作を管理するために使用される情報と、潜在的に、図5に示すように、電子デバイス(530)の不可欠な部分である場合もそうでない場合もあるが、電子デバイス(530)に結合することができるディスプレイ(512)(例えば、表示画面)などのレンダリングデバイスを制御するための情報とを含む。(1つまたは複数の)レンダリングデバイスのための制御情報は、補足拡張情報(SEIメッセージ)またはビデオユーザビリティ情報(VUI)パラメータセットフラグメント(図示せず)の形であり得る。パーサ(520)は、パーサ(520)によって受け取られるコーディングされたビデオシーケンスを構文解析/エントロピーデコーディングし得る。コーディングされたビデオシーケンスのエントロピーコーディングは、ビデオコーディング技術または規格に従ったものとすることができ、可変長コーディング、ハフマンコーディング、文脈依存性ありまたはなしの算術コーディングなどを含む様々な原理に従ったものとすることができる。パーサ(520)は、コーディングされたビデオシーケンスから、サブグループに対応する少なくとも1つのパラメータに基づいて、ビデオデコーダ内の画素のサブグループのうちの少なくとも1つのサブグループパラメータのセットを抽出し得る。サブグループには、グループオブピクチャ(GOP)、ピクチャ、タイル、スライス、マクロブロック、コーディングユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)などを含めることができる。パーサ(520)はまた、コーディングされたビデオシーケンスから、変換係数(例えば、フーリエ変換係数)、量子化パラメータ値、動きベクトルなどの情報も抽出し得る。
パーサ(520)は、シンボル(521)を作成するために、バッファメモリ(515)から受け取ったビデオシーケンスに対してエントロピーデコーディング/構文解析動作を実施することができる。
シンボル(521)の再構成は、コーディングされたビデオピクチャまたはその部分のタイプ(インターピクチャおよびイントラピクチャ、インターブロックおよびイントラブロックなど)、ならびに他の要因に応じて、複数の異なる処理ユニットまたは機能ユニットを含むことができる。含まれるユニットおよびユニットがどのように含まれるかは、パーサ(520)によってコーディングされたビデオシーケンスから構文解析されたサブグループ制御情報によって制御され得る。パーサ(520)と以下の複数の処理ユニットまたは機能ユニットとの間のそのようなサブグループ制御情報の流れは、簡潔にするために図示されていない。
すでに述べられた機能ブロック以外に、ビデオデコーダ(510)は、以下に記載されるように、概念的にいくつかの機能ユニットに細分化することができる。商業的制約の下で動作する実際の実装形態では、これらの機能ユニットの多くは互いに密接に相互作用し、少なくとも部分的に、互いに統合され得る。しかしながら、本開示の主題の様々な機能を明確に説明するために、以下の開示においては機能ユニットへの概念的細分を採用する。
第1のユニットはスケーラ/逆変換ユニット(551)である。スケーラ/逆変換ユニット(551)は、量子化変換係数、ならびにどのタイプの逆変換を使用するかを示す情報、ブロックサイズ、量子化係数/パラメータ、量子化スケーリング行列などを含む制御情報を、パーサ(520)から(1つまたは複数の)シンボル(521)として受信し得る。スケーラ/逆変換ユニット(551)は、アグリゲータ(555)に入力することができるサンプル値を備えるブロックを出力することができる。
場合によっては、スケーラ/逆変換(551)の出力サンプルは、イントラコーディングされたブロック、すなわち、以前に再構成されたピクチャからの予測情報を使用しないが、現在のピクチャの以前に再構成された部分からの予測情報を使用することができるブロックに関係し得る。そのような予測情報を、イントラピクチャ予測ユニット(552)によって提供することができる。場合によっては、イントラピクチャ予測ユニット(552)は、すでに再構成され、現在のピクチャバッファ(558)に記憶されている周囲のブロックの情報を使用して、再構成中のブロックと同じサイズおよび形状のブロックを生成してもよい。現在のピクチャバッファ(558)は、例えば、部分的に再構成された現在のピクチャおよび/または完全に再構成された現在のピクチャをバッファする。アグリゲータ(555)は、いくつかの実装形態では、サンプルごとに、イントラ予測ユニット(552)が生成した予測情報を、スケーラ/逆変換ユニット(551)によって提供される出力サンプル情報に追加し得る。
他の場合には、スケーラ/逆変換ユニット(551)の出力サンプルは、インターコーディングされ、潜在的に動き補償されたブロックに関連する可能性がある。そのような場合、動き補償予測ユニット(553)は、参照ピクチャメモリ(557)にアクセスして、インターピクチャ予測に使用されるサンプルをフェッチすることができる。ブロックに関連するシンボル(521)に従ってフェッチされたサンプルを動き補償した後、これらのサンプルを、出力サンプル情報を生成するために、アグリゲータ(555)によってスケーラ/逆変換ユニット(551)の出力に追加することができる(ユニット551の出力は、残差サンプルまたは残差信号と呼ばれ得る)。動き補償予測ユニット(553)がそこから予測サンプルをフェッチする参照ピクチャメモリ(557)内のアドレスは、例えば、X成分、Y成分(シフト)、および参照ピクチャ成分(時間)を有することができるシンボル(521)の形で動き補償予測ユニット(553)が利用可能な、動きベクトルによって制御され得る。動き補償はまた、サブサンプルの正確な動きベクトルが使用されているときに参照ピクチャメモリ(557)からフェッチされたサンプル値の補間も含んでいてもよく、動きベクトル予測機構などと関連付けられてもよい。
アグリゲータ(555)の出力サンプルは、ループフィルタユニット(556)において様々なループフィルタリング技法を施すことができる。ビデオ圧縮技術は、コーディングされたビデオシーケンス(コーディングされたビデオビットストリームとも言う)に含まれるパラメータによって制御され、パーサ(520)からのシンボル(521)としてループフィルタユニット(556)が利用可能なインループフィルタ技術を含むことができるが、コーディングされたピクチャまたはコーディングされたビデオシーケンスの(デコーディング順序で)前の部分のデコーディング中に取得されたメタ情報に応答することもでき、以前に再構成され、ループフィルタリングされたサンプル値に応答することもできる。以下でさらに詳細に説明するように、いくつかのタイプのループフィルタが、様々な順序でループフィルタユニット556の一部として含まれ得る。
ループフィルタユニット(556)の出力は、レンダリングデバイス(512)に出力することができると共に、将来のインターピクチャ予測で使用するために参照ピクチャメモリ(557)に記憶することもできるサンプルストリームであり得る。
特定のコーディングされたピクチャは、完全に再構成されると、将来のインターピクチャ予測のための参照ピクチャとして使用することができる。例えば、現在ピクチャに対応するコーディングされたピクチャが完全に再構成され、コーディングされたピクチャが参照ピクチャとして(例えば、パーサ(520)によって)識別されると、現在のピクチャバッファ(558)は、参照ピクチャメモリ(557)の一部になることができ、未使用の現在のピクチャバッファは、次のコーディングされたピクチャの再構成を開始する前に再割当てすることができる。
ビデオデコーダ(510)は、例えばITU-T Rec.H.265などの規格で採用された所定のビデオ圧縮技術に従ってデコーディング動作を実施し得る。コーディングされたビデオシーケンスは、コーディングされたビデオシーケンスがビデオ圧縮技術または規格の構文と、ビデオ圧縮技術または規格に文書化されたプロファイルの両方に忠実であるという意味において、使用されているビデオ圧縮技術または規格によって指定された構文に準拠し得る。具体的には、プロファイルは、そのプロファイルの下でのみ使用に供されるツールとして、ビデオ圧縮技術または規格で利用可能なすべてのツールの中から特定のツールを選択することができる。規格に準拠するために、コーディングされたビデオシーケンスの複雑さが、ビデオ圧縮技術または規格のレベルによって定義される範囲内にあり得る。場合によっては、レベルは、最大ピクチャサイズ、最大フレームレート、最大再構成サンプルレート(例えば、毎秒のメガサンプル数で測定される)、最大参照ピクチャサイズなどを制限する。レベルによって設定される制限は、場合によっては、仮想参照デコーダ(HRD)仕様、およびコーディングされたビデオシーケンスにおいて信号で通知されたHRDバッファ管理のためのメタデータによってさらに制限され得る。
いくつかの例示的実施形態では、受信機(531)は、エンコーディングされたビデオと共に追加の(冗長な)データを受信し得る。追加のデータは、(1つまたは複数の)コーディングされたビデオシーケンスの一部として含まれ得る。追加のデータは、データを適切にデコーディングするために、かつ/または元のビデオデータをより正確に再構成するために、ビデオデコーダ(510)によって使用されてもよい。追加のデータは、例えば、時間、空間、または信号対雑音比(SNR)の拡張層、冗長スライス、冗長ピクチャ、前方誤り訂正コードなどの形式であり得る。
図6に、本開示の一例示的実施形態によるビデオエンコーダ(603)のブロック図を示す。ビデオエンコーダ(603)は、電子デバイス(620)に含まれ得る。電子デバイス(620)は、送信機(640)(例えば、送信回路)をさらに含み得る。ビデオエンコーダ(603)は、図4の例のビデオエンコーダ(403)の代わりに使用することができる。
ビデオエンコーダ(603)は、ビデオエンコーダ(603)によってコーディングされるべき(1つまたは複数の)ビデオ画像を取り込み得るビデオソース(601)(図6の例では電子デバイス(620)の一部ではない)からビデオサンプルを受信し得る。別の例では、ビデオソース(601)は電子デバイス(620)の一部分として実装され得る。
ビデオソース(601)は、ビデオエンコーダ(603)によってコーディングされるべきソースビデオシーケンスを、任意の適切なビット深度(例えば、8ビット、10ビット、12ビット、...)、任意の色空間(例えば、BT.601 YCrCb、RGB、XYZ...)、および任意の適切なサンプリング構造(例えば、YCrCb 4:2:0、YCrCb 4:4:4)のものとすることができるデジタルビデオサンプルストリームの形で提供し得る。メディアサービングシステムでは、ビデオソース(601)は、以前に準備されたビデオを記憶することができる記憶デバイスであり得る。ビデオ会議システムでは、ビデオソース(601)は、ローカル画像情報をビデオシーケンスとして取り込むカメラであり得る。ビデオデータは、順を追って見たときに動きを与える複数の個別のピクチャまたは画像として提供され得る。ピクチャ自体は、画素の空間配列として編成されてもよく、各画素は、使用されているサンプリング構造、色空間などに応じて、1つまたは複数のサンプルを含むことができる。当業者であれば、画素とサンプルとの関係を容易に理解することができる。以下の説明は、サンプルに焦点を当てている。
いくつかの例示的実施形態によれば、ビデオエンコーダ(603)は、リアルタイムで、または用途によって必要とされる他の任意の時間制約の下で、ソースビデオシーケンスのピクチャをコーディングされたビデオシーケンス(643)にコーディングおよび圧縮し得る。適切なコーディング速度を強制することが、コントローラ(650)の1つの機能を構成する。いくつかの実施形態では、コントローラ(650)は、以下で説明されるように、他の機能ユニットに機能的に結合され、他の機能ユニットを制御し得る。簡潔にするために、結合は図示されていない。コントローラ(650)によって設定されるパラメータには、レート制御関連のパラメータ(ピクチャスキップ、量子化器、レート歪み最適化手法のラムダ値など)、ピクチャサイズ、グループオブピクチャ(GOP)レイアウト、最大動きベクトル探索範囲などが含まれ得る。コントローラ(650)は、特定のシステム設計のために最適化されたビデオエンコーダ(603)に関連する他の適切な機能を有するように構成することができる。
いくつかの例示的実施形態では、ビデオエンコーダ(603)は、コーディングループで動作するように構成され得る。過度に簡略化された説明として、一例では、コーディングループは、ソースコーダ(630)(例えば、コーディングされるべき入力ピクチャと、(1つまたは複数の)参照ピクチャとに基づいて、シンボルストリームなどのシンボルを作成する役割を担う)と、ビデオエンコーダ(603)に組み込まれた(ローカル)デコーダ(633)と、を含むことができる。デコーダ(633)は、組み込まれたデコーダ633がエントロピーコーディングなしでソースコーダ630によってコーディングされたビデオストリームを処理するとしても、シンボルを再構成して、(リモート)デコーダが作成することになるのと同様の方法でサンプルデータを作成する(本開示の主題で考慮されるビデオ圧縮技術では、シンボルとコーディングされたビデオビットストリームとの間の任意の圧縮が可逆であり得るため)。再構成されたサンプルストリーム(サンプルデータ)は、参照ピクチャメモリ(634)に入力される。シンボルストリームのデコーディングは、デコーダの場所(ローカルまたはリモート)に関係なくビット正確な結果につながるので、参照ピクチャメモリ(634)内のコンテンツも、ローカルエンコーダとリモートエンコーダとの間でビット正確である。言い換えると、エンコーダの予測部分は、デコーディング中に予測を使用するときにデコーダが「見る」ことになるのとまったく同じサンプル値を参照ピクチャサンプルとして「見る」。参照ピクチャの同期性(および、例えばチャネル誤差が原因で同期性を維持することができない場合には、結果として生じるドリフト)のこの基本原理はコーディング品質を向上させるために使用される。
「ローカル」デコーダ(633)の動作は、図5と共に上記で詳細にすでに記載されている、ビデオデコーダ(510)などの「リモート」デコーダの動作と同じであり得る。図5も簡単に参照すると、しかしながら、シンボルが利用可能であり、エントロピーコーダ(645)およびパーサ(520)によるコーディングされたビデオシーケンスへのシンボルのエンコーディング/デコーディングが可逆であり得るため、バッファメモリ(515)およびパーサ(520)を含むビデオデコーダ(510)のエントロピーデコーディング部分は、エンコーダ内のローカルデコーダ(633)においては完全に実装されない場合がある。
この時点で言えることは、デコーダ内にのみ存在し得る構文解析/エントロピーデコーディングを除く任意のデコーダ技術もまた必然的に、対応するエンコーダにおいて、実質的に同一の機能形態で存在する必要があり得るということである。このため、本開示の主題はデコーダ動作に焦点を当てる場合があり、この動作はエンコーダのデコーディング部分と同様である。よって、エンコーダ技術の説明は、包括的に説明されるデコーダ技術の逆であるので、省略することができる。特定の領域または態様においてのみ、エンコーダのより詳細な説明を以下に示す。
動作中、いくつかの例示的実装形態では、ソースコーダ(630)は、「参照ピクチャ」として指定されたビデオシーケンスからの1つまたは複数の以前にコーディングされたピクチャを参照して入力ピクチャを予測的にコーディングする、動き補償予測コーディングを実施する場合がある。このようにして、コーディングエンジン(632)は、入力ピクチャの画素ブロックと、入力ピクチャへの(1つまたは複数の)予測参照として選択され得る(1つまたは複数の)参照ピクチャの画素ブロックとの間の色チャネルの差分(または残差)をコーディングする。「残差」という用語およびその形容詞形「残余」は、互換的に使用され得る。
ローカルビデオデコーダ(633)は、ソースコーダ(630)によって作成されたシンボルに基づいて、参照ピクチャとして指定され得るピクチャのコーディングされたビデオデータをデコーディングすることができる。コーディングエンジン(632)の動作は、有利なことに、非可逆処理であってもよい。コーディングされたビデオデータが(図6には示されていない)ビデオデコーダでデコーディングされ得るとき、再構成されたビデオシーケンスは、通常、いくつかの誤差を伴うソースビデオシーケンスの複製であり得る。ローカルビデオデコーダ(633)は、参照ピクチャに対してビデオデコーダによって実施され得るデコーディング処理を複製し、再構成された参照ピクチャを参照ピクチャキャッシュ(634)に記憶させ得る。このようにして、ビデオエンコーダ(603)は、遠端(リモート)ビデオデコーダによって取得される再構成された参照ピクチャと共通の内容を有する再構成された参照ピクチャのコピーをローカルに記憶し得る(伝送誤差なしで)。
予測器(635)は、コーディングエンジン(632)のための予測探索を実施することができる。すなわち、コーディングされる新しいピクチャの場合、予測器(635)は、新しいピクチャのための適切な予測参照として役立つことができる、(候補参照画素ブロックとしての)サンプルデータまたは参照ピクチャ動きベクトル、ブロック形状などの特定のメタデータを求めて、参照ピクチャメモリ(634)を探索することができる。予測器(635)は、適切な予測参照を見つけるために、画素ブロックごとにサンプルブロックに対して動作することができる。場合によっては、予測器(635)によって取得された探索結果によって決定されるように、入力ピクチャは、参照ピクチャメモリ(634)に記憶された複数の参照ピクチャから引き出された予測参照を有することができる。
コントローラ(650)は、例えば、ビデオデータをエンコーディングするために使用されるパラメータおよびサブグループパラメータの設定を含む、ソースコーダ(630)のコーディング動作を管理することができる。
すべての前述の機能ユニットの出力は、エントロピーコーダ(645)内でエントロピーコーディングを施すことができる。エントロピーコーダ(645)は、ハフマンコーディング、可変長コーディング、算術コーディングなどといった技術に従ったシンボルの可逆圧縮により、様々な機能ユニットによって生成されたシンボルをコーディングされたビデオシーケンスに変換する。
送信機(640)は、エントロピーコーダ(645)によって作成されたコーディングされたビデオシーケンスをバッファリングして、通信チャネル(660)を介した伝送の準備をすることができ、通信チャネル(660)は、エンコーディングされたビデオデータを記憶する記憶デバイスへのハードウェア/ソフトウェアリンクであってもよい。送信機(640)は、ビデオコーダ(603)からのコーディングされたビデオデータを、伝送される他のデータ、例えば、コーディングされたオーディオデータおよび/または補助データストリーム(ソースは図示されていない)とマージすることができる。
コントローラ(650)は、ビデオエンコーダ(603)の動作を管理することができる。コーディング中に、コントローラ(650)は、各コーディングされたピクチャに特定のコーディングされたピクチャタイプを割り当てることができ、それは、それぞれのピクチャに適用され得るコーディング技法に影響を及ぼす場合がある。例えば、ピクチャは、しばしば、以下のピクチャタイプのうちの1つとして割り当てられてもよい。
イントラ画像(Iピクチャ)は、シーケンス内の任意の他の画像を予測のソースとして使用することなくコーディングされ、デコーディングされ得るものであってもよい。一部のビデオコーデックは、例えば、独立したデコーダリフレッシュ(「IDR」)ピクチャを含む異なるタイプのイントラピクチャを可能にする。当業者であれば、Iピクチャのそれらの変形ならびにそれらそれぞれの用途および特徴を認識している。
予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために、最大で1つの動きベクトルおよび参照インデックスを使用するイントラ予測またはインター予測を使用して、コーディングされ、デコーディングされ得るものであってもよい。
双方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために、最大で2つの動きベクトルおよび参照インデックスを使用するイントラ予測またはインター予測を使用して、コーディングされ、デコーディングされ得るものであってもよい。同様に、複数予測ピクチャは、単一ブロックの再構成のために3つ以上の参照ピクチャおよび関連付けられたメタデータを使用することができる。
ソースピクチャは、一般に、複数のサンプルコーディングブロック(例えば、各々4×4、8×8、4×8、または16×16サンプルのブロック)に空間的に細分され、ブロックごとにコーディングされ得る。ブロックは、ブロックそれぞれのピクチャに適用されたコーディング割当てによって決定されるように他の(すでにコーディングされた)ブロックを参照して予測的にコーディングされ得る。例えば、Iピクチャのブロックは、非予測的にコーディングされ得るか、または、同じピクチャのすでにコーディングされたブロックを参照して、予測的にコーディングされ得る(空間予測またはイントラ予測)。Pピクチャの画素ブロックは、1つの以前にコーディングされた参照ピクチャを参照して、空間予測を介して、または時間予測を介して、予測的にコーディングされてもよい。Bピクチャのブロックは、1つまたは2つの以前にコーディングされた参照ピクチャを参照して、空間予測によって、または時間予測によって予測的にコーディングされ得る。ソースピクチャまたは中間処理されたピクチャは、他の目的で他のタイプのブロックに細分されてもよい。コーディングブロックおよびその他のタイプのブロックの分割は、以下でさらに詳細に説明するように、同じ方法に従う場合もそうでない場合もある。
ビデオエンコーダ(603)は、ITU-T Rec.H.265などの所定のビデオコーディング技術または規格に従ってコーディング動作を実施することができる。その動作において、ビデオエンコーダ(603)は、入力ビデオシーケンスにおける時間および空間の冗長性を利用する予測コーディング動作を含む、様々な圧縮動作を実施することができる。したがって、コーディングされたビデオデータは、使用されているビデオコーディング技術または規格によって指定された構文に準拠し得る。
いくつかの例示的実施形態では、送信機(640)は、エンコーディングされたビデオと共に追加のデータを伝送し得る。ソースコーダ(630)は、そのようなデータをコーディングされたビデオシーケンスの一部として含み得る。追加のデータは、時間/空間/SNR増強層、冗長なピクチャやスライスなどの他の形の冗長データ、SEIメッセージ、VUIパラメータセットフラグメントなどを含み得る。
ビデオは、時間的シーケンスで複数のソースピクチャ(ビデオピクチャ)として取り込まれてもよい。イントラピクチャ予測(しばしばイントラ予測と略される)は、所与のピクチャにおける空間相関を利用し、インターピクチャ予測は、ピクチャ間の時間またはその他の相関を利用する。例えば、現在のピクチャと呼ばれる、エンコーディング/デコーディング中の特定のピクチャがブロックに分割され得る。現在のピクチャ内のブロックは、ビデオ内の以前にコーディングされた、引き続きバッファされている参照ピクチャ内の参照ブロックに類似している場合、動きベクトルと呼ばれるベクトルによってコーディングされ得る。動きベクトルは、参照ピクチャ内の参照ブロックを指し、複数の参照ピクチャが使用されている場合、参照ピクチャを識別する第3の次元を有することができる。
いくつかの例示的実施形態では、インターピクチャ予測に双予測技術を使用することができる。そのような双予測技術によれば、第1の参照ピクチャおよび第2の参照ピクチャなどの2つの参照ピクチャが使用され、これらは両方ともビデオ内の現在のピクチャをデコーディング順序で進める(ただし、表示順序では、それぞれ過去または未来にあり得る)。現在のピクチャ内のブロックは、第1の参照ピクチャ内の第1の参照ブロックを指す第1の動きベクトルと、第2の参照ピクチャ内の第2の参照ブロックを指す第2の動きベクトルとによってコーディングされ得る。ブロックは、第1の参照ブロックと第2の参照ブロックの組み合わせによって協調して予測することができる。
さらに、マージモード技術が、インターピクチャ予測においてコーディング効率を改善するために使用されてもよい。
本開示のいくつかの例示的実施形態によれば、インターピクチャ予測およびイントラピクチャ予測などの予測は、ブロック単位で実施される。例えば、ビデオピクチャのシーケンス内のピクチャは、圧縮のためにコーディングツリーユニット(CTU)に分割され、ピクチャ内のCTUは、64×64画素、32×32画素、または16×16画素などの同じサイズを有し得る。一般に、CTUは、3つの並列のコーディングツリーブロック(CTB)、すなわち、1つのルマCTBおよび2つのクロマCTBを含み得る。各CTUを、1つまたは複数のコーディングユニット(CU)に再帰的に四分木分割することができる。例えば、64×64画素のCTUを、64×64画素の1つのCUに、または32×32画素の4つのCUに、分割することができる。32×32ブロックのうちの1つまたは複数の各々は、16×16画素の4つのCUにさらに分割され得る。いくつかの例示的実施形態では、各CUは、インター予測タイプやイントラ予測タイプなどの様々な予測タイプの中からそのCUの予測タイプを決定するためエンコーディング中に分析され得る。CUは、時間的および/または空間的予測可能性に応じて、1つまたは複数の予測ユニット(PU)に分割され得る。一般に、各PUは、1つのルマ予測ブロック(PB)と、2つのクロマPBとを含む。一実施形態では、コーディング(エンコーディング/デコーディング)における予測動作は、予測ブロック単位で実施される。CUのPU(または異なる色チャネルのPB)への分割は、様々な空間パターンで実施され得る。ルマPBまたはクロマPBは、例えば、8×8画素、16×16画素、8×16画素、16×8画素などといった、サンプルの値(例えば、ルマ値)の行列を含み得る。
図7に、本開示の別の例示的実施形態によるビデオエンコーダ(703)の図を示す。ビデオエンコーダ(703)は、ビデオピクチャのシーケンスにおける現在のビデオピクチャ内のサンプル値の処理ブロック(例えば、予測ブロック)を受け取り、処理ブロックを、コーディングされたビデオシーケンスの一部であるコーディングされたピクチャにエンコーディングするように構成される。例示的なビデオエンコーダ(703)は、図4の例のビデオエンコーダ(403)の代わりに使用され得る。
例えば、ビデオエンコーダ(703)は、8×8サンプルの予測ブロックなどの処理ブロックのサンプル値の行列を受け取る。次いでビデオエンコーダ(703)は、例えばレート歪み最適化(RDO)を使用して、処理ブロックがそれを使用して最良にコーディングされるのは、イントラモードか、インターモードか、それとも双予測モードかを決定する。処理ブロックがイントラモードでコーディングされると決定された場合、ビデオエンコーダ(703)は、イントラ予測技術を使用して処理ブロックをコーディングされたピクチャにエンコーディングし、処理ブロックがインターモードまたは双予測モードでコーディングされると決定された場合、ビデオエンコーダ(703)は、それぞれインター予測技術または双予測技術を使用して、処理ブロックをコーディングされたピクチャにエンコーディングし得る。いくつかの例示的実施形態では、インターピクチャ予測のサブモードとして、動きベクトルが予測子の外側のコーディングされた動きベクトル成分の恩恵を受けずに1つまたは複数の動きベクトル予測子から導出されるマージモードが使用され得る。いくつかの他の例示的実施形態では、対象ブロックに適用可能な動きベクトル成分が存在し得る。したがって、ビデオエンコーダ(703)は、処理ブロックの予測モードを決定するために、モード決定モジュールなどの、図7に明示的に示されていない構成要素を含み得る。
図7の例では、ビデオエンコーダ(703)は、図7の例示的な構成に示されるように互いに結合されたインターエンコーダ(730)、イントラエンコーダ(722)、残差計算器(723)、スイッチ(726)、残差エンコーダ(724)、汎用コントローラ(721)、およびエントロピーエンコーダ(725)を含む。
インターエンコーダ(730)は、現在のブロック(例えば、処理ブロック)のサンプルを受け取り、そのブロックを参照ピクチャ内の1つまたは複数の参照ブロック(例えば、表示順序で前のピクチャ内および後のピクチャ内のブロック)と比較し、インター予測情報(例えば、インターエンコーディング技術による冗長情報、動きベクトル、マージモード情報の記述)を生成し、任意の適切な技術を使用してインター予測情報に基づいてインター予測結果(例えば、予測されたブロック)を計算するように構成される。いくつかの例では、参照ピクチャは、(以下でさらに詳細に説明するように、図7の残差デコーダ728として示されている)図6の例示的なエンコーダ620に組み込まれたデコーディングユニット633を使用してエンコーディングされたビデオ情報に基づいてデコーディングされる、デコーディングされた参照ピクチャである。
イントラエンコーダ(722)は、現在のブロック(例えば、処理ブロック)のサンプルを受け取り、ブロックを同じピクチャ内のすでにコーディングされたブロックと比較し、変換後の量子化係数を生成し、場合によってはイントラ予測情報(例えば、1つまたは複数のイントラエンコーディング技術によるイントラ予測方向情報)も生成するように構成される。イントラエンコーダ(722)は、イントラ予測情報と、同じピクチャ内の参照ブロックとに基づいて、イントラ予測結果(例えば、予測されたブロック)を計算し得る。
汎用コントローラ(721)は、汎用制御データを決定し、汎用制御データに基づいてビデオエンコーダ(703)の他の構成要素を制御するように構成され得る。一例では、汎用コントローラ(721)は、ブロックの予測モードを決定し、予測モードに基づいてスイッチ(726)に制御信号を提供する。例えば、予測モードがイントラモードである場合、汎用コントローラ(721)は、スイッチ(726)を制御して、残差計算器(723)が使用するためのイントラモード結果を選択させ、エントロピーエンコーダ(725)を制御して、イントラ予測情報を選択させてそのイントラ予測情報をビットストリームに含めさせ、ブロックの叙述モードがインターモードである場合、汎用コントローラ(721)は、スイッチ(726)を制御して、残差計算器(723)が使用するためのインター予測結果を選択させ、エントロピーエンコーダ(725)を制御して、インター予測情報を選択させてそのインター予測情報をビットストリームに含めさせる。
残差計算器(723)は、受け取ったブロックと、イントラエンコーダ(722)またはインターエンコーダ(730)から選択されたブロックについての予測結果との差分(残差データ)を計算するように構成され得る。残差エンコーダ(724)は、残差データをエンコーディングして変換係数を生成するように構成され得る。例えば、残差エンコーダ(724)は、残差データを空間領域から周波数領域に変換して変換係数を生成するように構成され得る。次いで、変換係数は、量子化変換係数を取得するために量子化処理を施す。様々な例示的実施形態において、ビデオエンコーダ(703)は残差デコーダ(728)も含む。残差デコーダ(728)は逆変換を実施し、デコーディングされた残差データを生成するように構成される。デコーディングされた残差データを、イントラエンコーダ(722)およびインターエンコーダ(730)によって適切に使用することができる。例えば、インターエンコーダ(730)は、デコーディングされた残差データとインター予測情報とに基づいてデコーディングされたブロックを生成することができ、イントラエンコーダ(722)は、デコーディングされた残差データとイントラ予測情報とに基づいてデコーディングされたブロックを生成することができる。デコーディングされたブロックは、デコーディングされたピクチャを生成するために適切に処理され、デコーディングされたピクチャは、メモリ回路(図示せず)にバッファし、参照ピクチャとして使用することができる。
エントロピーエンコーダ(725)は、ビットストリームをエンコーディングされたブロックを含むようにフォーマットし、エントロピーコーディングを実施するように構成される。エントロピーエンコーダ(725)は、ビットストリームに様々な情報を含めるように構成される。例えば、エントロピーエンコーダ(725)は、汎用制御データ、選択された予測情報(例えば、イントラ予測情報やインター予測情報)、残差情報、および他の適切な情報をビットストリームに含めるように構成され得る。インターモードまたは双予測モードのどちらかのマージサブモードでブロックをコーディングするときには、残差情報が存在しない場合がある。
図8は、本開示の別の実施形態による例示的なビデオデコーダ(810)の図を示す。ビデオデコーダ(810)は、コーディングされたビデオシーケンスの一部であるコーディングされたピクチャを受け取り、コーディングされたピクチャをデコーディングして再構成されたピクチャを生成するように構成される。一例では、ビデオデコーダ(810)は、図4の例のビデオデコーダ(410)の代わりに使用され得る。
図8の例では、ビデオデコーダ(810)は、図8の例示的な構成に示されるように、互いに結合されたエントロピーデコーダ(871)、インターデコーダ(880)、残差デコーダ(873)、再構成モジュール(874)、およびイントラデコーダ(872)を含む。
エントロピーデコーダ(871)は、コーディングされたピクチャから、コーディングされたピクチャが構成される構文要素を表す特定のシンボルを再構成するように構成することができる。そのようなシンボルは、例えば、ブロックがコーディングされているモード(例えば、イントラモード、インターモード、双予測モード、マージサブモードまたは別のサブモード)、イントラデコーダ(872)またはインターデコーダ(880)によって予測に使用される特定のサンプルまたはメタデータを識別することができる予測情報(例えば、イントラ予測情報やインター予測情報)、例えば量子化変換係数の形の残差情報などを含むことができる。一例では、予測モードがインターモードまたは双予測モードである場合、インター予測情報がインターデコーダ(880)に提供され、予測タイプがイントラ予測タイプである場合、イントラ予測情報がイントラデコーダ(872)に提供される。残差情報は、逆量子化を施すことができ、残差デコーダ(873)に提供される。
インターデコーダ(880)は、インター予測情報を受け取り、インター予測情報に基づいてインター予測結果を生成するように構成され得る。
イントラデコーダ(872)は、イントラ予測情報を受け取り、イントラ予測情報に基づいて予測結果を生成するように構成され得る。
残差デコーダ(873)は逆量子化を実施して逆量子化変換係数を抽出し、逆量子化変換係数を処理して残差を周波数領域から空間領域に変換するように構成され得る。残差デコーダ(873)はまた(量子化パラメータ(QP)を含めるために)特定の制御情報を利用する場合もあり、その情報はエントロピーデコーダ(871)によって提供され得る(これは少量の制御情報のみであり得るためデータパスは図示しない)。
再構成モジュール(874)は、空間領域において、残差デコーダ(873)による出力としての残差と、(場合によって、インター予測モジュールまたはイントラ予測モジュールによる出力として)予測結果とを組み合わせて、再構成されたビデオの一部としての再構成されたピクチャの一部を形成する再構成されたブロックを形成するように構成され得る。視覚品質を改善するために、非ブロック化動作などの他の適切な動作が実施されてもよいことに留意されたい。
ビデオエンコーダ(403)、(603)、および(703)、ならびにビデオデコーダ(410)、(510)、および(810)は、任意の適切な技法を使用して実装され得ることに留意されたい。いくつかの例示的実施形態では、ビデオエンコーダ(403)、(603)、および(703)、ならびにビデオデコーダ(410)、(510)、および(810)を、1つまたは複数の集積回路を使用して実装することができる。別の実施形態では、ビデオエンコーダ(403)、(603)、および(603)、ならびにビデオデコーダ(410)、(510)、および(810)は、ソフトウェア命令を実行する1つまたは複数のプロセッサを使用して実装することができる。
イントラ予測処理に戻ると、ブロック(例えば、ルマまたはクロマ予測ブロック、あるいは予測ブロックにさらに分割されていない場合はコーディングブロック)内のサンプルは、予測ブロックを生成するために、隣接するライン、次に隣接するライン、または他の1つもしくは複数のライン、またはそれらの組み合わせのサンプルによって予測される。その後、コーディング中の実際のブロックと予測ブロックとの間の残差を量子化後に変換により処理してもよい。様々なイントラ予測モードを利用可能にするすることができ、イントラモードの選択に関連するパラメータおよびその他パラメータをビットストリームでシグナリングすることができる。様々なイントラ予測モードは、例えば、サンプルを予測するための1つまたは複数のライン位置、1つまたは複数のラインを予測することから予測サンプルが選択される方向、および他の特別なイントラ予測モードに関係し得る。
例えば、イントラ予測モードのセット(「イントラモード」と互換的に呼ばれる)は、所定数の方向性イントラ予測モードを含み得る。図1の例示的実装形態に関して上述されているように、これらのイントラ予測モードは、特定のブロック内の予測中のサンプルの予測先としてブロック外のサンプルを選択する際に進む既定の個数の方向に対応してもよい。別の特定の例示的実装形態では、水平軸に対して45度から207度の角度に対応する8つの主な方向モードをサポートし、事前定義することができる。
イントラ予測のいくつかの他の実装形態では、方向テクスチャにおけるより多様な空間的冗長性をさらに活用するために、方向性イントラモードは、より細かい粒度を有する角度セットにさらに拡張され得る。例えば、図9に示されているように、上記の8つの角度の実装形態を、8つの公称角度(V_PRED、H_PRED、D45_PRED、D135_PRED、D113_PRED、D157_PRED、D203_PREDおよびD67_PREDと称する)を提供するように構成してもよく、公称角度ごとに、既定の個数(例えば7つ)のより刻みの小さい角度を加えてもよい。このように拡張すれば、方向の角度の総数が大きくなり(例えば、本例では56個)、当該総数の方向の角度をイントラ予測に用いることができ、これらはそれと同数の既定の方向性イントラモードに対応する。予測角度を、公称イントラ角度と、これに付随する角度差分とで表してもよい。各公称角度に対して7つのより細かい角度方向を有する上記の特定の例では、角度差分は、3度のステップサイズの-3~3倍であり得る。
いくつかの実装形態では、上記の方向性イントラモードの代わりに、またはそれに加えて、所定数の無方向イントラ予測モードも事前定義され、利用可能にされ得る。例えば、スムーズイントラ予測モードと称される5つの無方向イントラモードを指定してもよい。これらの無方向イントラモード予測モードを特にDCイントラモード、PAETHイントラモード、SMOOTHイントラモード、SMOOTH_VイントラモードおよびSMOOTH_Hイントラモードと称する場合がある。これらの無方向モードの例を用いた特定のブロックのサンプルの予測が図10に示されている。例えば、図10は、上の隣接ラインおよび/または左の隣接ラインから得られるサンプルによって4×4ブロック1002が予測される様子を示す。ブロック1002内の特定のサンプル1010は、ブロック1002の上の隣接ラインにおいてサンプル1010の真上のサンプル1004と、上の隣接ラインと左の隣接ラインとの交差部分としてサンプル1010の左上にあるサンプル1006と、ブロック1002の左の隣接ラインにおいてサンプル1010の真左にあるサンプル1008とに対応してもよい。DCイントラ予測モードの例では、左の隣接サンプル1008と上の隣接サンプル1004との平均値をサンプル1010の予測子として用いてもよい。PAETHイントラ予測モードの例では、上、左および左上参照サンプル1004,1008および1006を取得してもよく、その後、(上+左-左上)に最も近い、これらの3つの参照サンプル間のどのような値でもサンプル1010の予測子として設定してもよい。SMOOTH_Vイントラ予測モードの例では、左上の隣接サンプル1006および左の隣接サンプル1008の垂直方向の二次補間によってサンプル1010を予測してもよい。SMOOTH_Hイントラ予測モードの例では、左上の隣接サンプル1006および上の隣接サンプル1004の水平方向の二次補間によってサンプル1010を予測してもよい。SMOOTHイントラ予測モードの例では、垂直方向および水平方向の二次補間の平均によってサンプル1010を予測してもよい。上記の無方向イントラモードの実現例は限定を課さない例として示されているのにすぎない。他の隣接するライン、およびサンプルの他の無方向選択、および予測ブロック内の特定のサンプルを予測するための予測サンプルを組み合わせる方法も考えられる。
様々なコーディングレベル(ピクチャ、スライス、ブロック、ユニットなど)における上記の方向性モードまたは無方向モードからのエンコーダによる特定のイントラ予測モードの選択は、ビットストリームでシグナリングされ得る。いくつかの例示的実装形態では、まず、例示的な8つの公称の方向性モードを、角度を用いない5つのスムーズモードと共に(合計13個の選択肢)シグナリングしてもよい。その後、シグナリングされたモードが、8つの公称の角度イントラモードのうちの1つである場合、対応するシグナリングされた公称の角度に対して選択された角度差分を示すインデックスをさらにシグナリングする。いくつかの他の例示的実装形態では、すべてのイントラ予測モードは、シグナリングのためにすべて一緒に(例えば、56個の方向性モードに5個の無方向モードを加えて61個のイントラ予測モードを生成する)インデックス付けされてもよい。
いくつかの例示的実装形態では、例示的な56または他の数の方向性イントラ予測モードは、ブロックの各サンプルを参照サブサンプル位置に投影し、2タップ双線形フィルタによって基準サンプルを補間する統一された方向性予測子を用いて実装され得る。
いくつかの実装形態では、エッジ上の参照との減衰する空間的な相関を取り込むために、FILTER INTRAモードと呼ばれる追加のフィルタモードを設計することができる。当該モードでは、ブロック外のサンプルに加えてブロック内で予測されるサンプルをイントラ予測参照サンプルとしてブロック内のいくつかのパッチに用いてもよい。例えば、当該モードは既定のモードであってもよく、当該モードを少なくともルマブロックのイントラ予測(またはルマブロックのみに用いるイントラ予測)に利用可能にしてもよい。既定の個数(例えば5つ)のフィルタイントラモードを予め設計してもよく、例えば4×2パッチ内のサンプルとそれに隣接するn個の近隣との相関を反映するnタップフィルタ(例えば7タップフィルタ)の集合によって各フィルタイントラモードを表現してもよい。言い換えると、nタップフィルタの重み係数が位置に依存してもよい。図11に示されているように、一例として8×8ブロック、4×2パッチおよび7タップフィルタリングを用いる場合、8×8ブロック1102を8個の4×2パッチに分割してもよい。図11ではこれらのパッチはB0,B1,B1,B3,B4,B5,B6,およびB7で示されている。パッチごとに、パッチの7つの近隣(図11でR0~R7で示されている)を対象のパッチ内のサンプルを予測するのに用いてもよい。パッチB0については、すべての近隣がすでに再構成されている場合がある。一方で他のパッチについては、近隣の一部が対象のブロック内にあるので、再構成されていない場合があり、その際には、直に隣接するものの予測値を参照として用いる。例えば、図11に示すようなパッチB7のすべての近隣は再構成されていないので、パッチB7の近隣の予測サンプルが代わりに使用される。
イントラ予測のいくつかの実装形態では、1つの色成分は、1つまたは複数の他の色成分を使用して予測され得る。色成分がYCrCb色空間、RGB色空間、XYZ色空間などの成分のいずれか1つであってもよい。例えば、ルマ成分(例えばルマ参照サンプル)からクロマ成分(例えばクロマブロック)を予測する予測、ルマからクロマ、すなわちCfLと称する)を実施してもよい。いくつかの例示的実装形態では、クロスカラー予測について多くがルマからクロマにしか許容されない。例えば、クロマブロック内のクロマサンプルは、一致する再構成されたルマサンプルの線形関数としてモデル化することができる。CfL予測は、以下のように実施することができる。
CfL(α)=α×LAC+DC (1)
ここで、LACは、ルマ成分のAC寄与を表し、αは、線形モデルのパラメータを表し、DCは、クロマ成分のDC寄与を表す。例えば、AC成分がブロックのサンプルごとに取得されるのに対して、DC成分はブロック全体に対して取得される。さらに言えば、再構成されたルマサンプルにサブサンプリングを行ってクロマ解像度を得てもよく、その後、各ルマ値から平均ルマ値(ルマのDC)を差し引いてルマのAC寄与分を生成してもよい。その後、ルマのAC寄与を式(1)の線形モードに用いてクロマ成分のAC値を予測する。ルマAC寄与からクロマAC成分の近似値を得たり予測したりするために、スケーリングパラメータを計算することをデコーダに要求する代わりに、CfLの実現例では、元のクロマサンプルに基づいてパラメータαを決定してこれをビットストリームでシグナリングしてもよい。これにより、デコーダの複雑さが低減され、より正確な予測が得られる。クロマ成分のDC寄与に関しては、いくつかの例示的実装形態で、クロマ成分内のイントラDCモードを使用して計算され得る。
その後、変換係数の量子化に続いて、イントラ予測ブロックかインター予測ブロックかのいずれかの残差の変換を実施してもよい。変換を実施するために、イントラコーディングされたブロックとインターコーディングされたブロックとを変換の前に複数の変換ブロック(用語「ユニット」が3色チャネルの集合を表すのに通常の用法で用いられる場合(例えば、「コーディングユニット」が1つのルマコーディングブロックと複数のクロマコーディングブロックとを含む場合)であっても、代わりに「変換ユニット」として用いられる場合がある)にさらに分割してもよい。いくつかの実装形態では、コーディングされたブロック(すなわち予測ブロック)の最大分割深度を指定してもよい(用語「コーディングされたブロック(coded block)」を「コーディングブロック(coding block)」の代わりに用いてもよい)。例えば、当該分割は、2段階以下のレベルのものであってもよい。予測ブロックを変換ブロックに分割する際、イントラ予測ブロックとインター予測ブロックとで異なる処理を行ってもよい。一方で、いくつかの実装形態では、当該分割の際、イントラ予測ブロックとインター予測ブロックとで同様に行ってもよい。
いくつかの例示的実装形態では、イントラコーディングされたブロックについては、すべての変換ブロックが同じサイズを持つように変換分割を行ってもよく、変換ブロックはラスタ走査順序でコーディングされる。イントラコーディングされたブロックの当該変換ブロック分割の一例が図12に示されている。具体的には、図12は、コーディングされたブロック1202が中間レベルの四分木分割1204を介して1206によって示されている同じブロックサイズの16個の変換ブロックに分割される様子を示す。図12には、コーディングのラスタ走査順序の例が順番に並んだ矢印によって示されている。
いくつかの例示的実装形態では、インターコーディングされたブロックについては、既定の段階数のレベル(例えば第2段階のレベル)までの分割深度を用いて再帰的に変換ユニット分割を行ってもよい。図13に示されているように、分割を中止したり、なんらかの細分のために任意のレベルで再帰的に分割を継続したりしてもよい。具体的には、図13は、ブロック1302が4つの四分木サブブロック1304に分割され、サブブロックの1つが4つの第2の段階のレベルの変換ブロックにさらに分割されるのに対して、その他のサブブロックの分割が第1の段階のレベルの後に中止され、異なる2つのサイズの合計7つの変換ブロックが得られる例を示す。図13には、コーディングのラスタ走査順序の例が順番に並んだ矢印によってさらに示されている。図13は最高で第2の段階のレベルの正方形変換ブロックの四分木分割の例示的実装形態を示しているが、生成に関するいくつかの実現例では、変換についての分割が1:1(正方形)、1:2/2:1および1:4/4:1の変換ブロック形状と、4×4から64×64に及ぶサイズとをサポートしてもよい。いくつかの例示的実装形態では、コーディングブロックが64×64以下である場合、変換ブロックの分割をルマ成分のみに適用してもよい(言い換えると、この状態でクロマ変換ブロックがコーディングブロックと同じになる)。上記とは異なり、コーディングブロックの幅または高さが64を超える場合、ルマコーディングブロックおよびクロマコーディングブロックをmin(W,64)×min(H,64)およびmin(W,32)×min(H,32)の倍数の個数の変換ブロックに暗黙的にそれぞれ分割してもよい。
その後、上記の変換ブロックの各々は一次変換を施されてもよい。一次変換により、変換ブロックの残差が空間領域から周波数領域に実質的に移動する。実際の一次変換のいくつかの実装形態では、上記の拡張されたコーディングブロック分割の例をサポートするために、複数の変換サイズ(2つの次元の各次元について4点から64点に及ぶ)と変換形状(正方形、幅/高さの比2:1/1:2および4:1/1:4を持つ矩形)とを許容してもよい。
実際の一次変換に注目して、いくつかの例示的実装形態では、二次元変換処理に複合的変換カーネル(例えば、コーディングされた残差変換ブロックの次元ごとに異なる一次元変換で構成される場合がある)の使用が必要になる場合がある。一次元変換カーネルの例にはa)4点、8点、16点、32点、64点のDCT-2、b)4点、8点、16点の非対称DST類(DST-4、DST-7)およびその反転型、c)4点、8点、16点、32点恒等変換が含まれてもよいが、これらに限定されない。各次元に用いられる変換カーネルの選択はレート-歪み(rate-distortion:RD)基準に基づいてもよい。例えば、実装され得るDCT-2および非対称DSTの基底関数を表1に列挙する。
いくつかの例示的実装形態では、一次変換の特定の実装形態の複合的変換カーネルの有効性は変換ブロックのサイズと予測モードとに基づいてもよい。依存の様子の例を表2に示す。クロマ成分については、変換タイプの選択を暗黙的に実施してもよい。例えば、イントラ予測残差については、表3に記載されているように、変換タイプをイントラ予測モードに応じて選択してもよい。インター予測残差については、クロマブロックの変換タイプを同一位置のルマブロックの変換タイプの選択に応じて選択してもよい。したがって、クロマ成分の場合、ビットストリームに変換タイプのシグナリングはない。
いくつかの実装形態では、一次変換係数に対する二次変換が実施されてもよい。例えば、図14に示されるように、一次変換係数をさらに非相関化するために、低減された二次変換として知られているLFNST(低周波数分離不可能変換)が、順方向一次変換と量子化(エンコーダにおける)との間、および逆量子化と逆方向一次変換との間(デコーダ側における)に適用され得る。本質的に、LFNSTは、二次変換に進むために、一次変換係数の一部、例えば、低周波数部分(したがって、変換ブロックの一次変換係数の完全なセットから「低減された」部分)を取り得る。LFNSTの例では、変換ブロックサイズに従って、4×4の分離不可能変換または8×8の分離不可能変換が適用されてよい。例えば、小さい変換ブロック(例えば、min(幅、高さ)<8)には4×4LFNSTが適用され、大きい変換ブロック(例えば、min(幅、高さ)>8)には8×8LFNSTが適用されてよい。例えば、8×8変換ブロックが4×4LFNSTの影響を受ける場合、8×8の一次変換係数の低周波数4×4部分のみがさらに二次変換を施される。
図14に具体的に示されているように、変換ブロックは8×8(または16×16)であってよい。したがって、変換ブロックの順方向一次変換1402は、8×8(または16×16)一次変換係数行列1404を生成し、各平方単位は、2×2(または4×4)部分を表す。順方向LFNSTへの入力は、例えば、8×8(または16×16)の一次変換係数全体でなくてもよい。例えば、4×4(または8×8)のLFNSTが二次変換に使用され得る。したがって、斜線部分(左上)1406に示すように、一次変換係数行列1404の4×4(または8×8)の低周波数一次変換係数のみが、LFNSTへの入力として使用され得る。一次変換係数行列の残りの部分は、二次変換を施されなくてもよい。このように、二次変換の後、LFNSTの影響を受ける一次変換係数の部分は、二次変換係数になるが、LFNSTの影響を受けない残りの部分(例えば、行列1404の陰影のない部分)は、対応する一次変換係数を維持する。いくつかの例示的実装形態では、二次変換の対象ではない残りの部分は、すべて0係数に設定されてもよい。
LFNSTで使用される分離不可能変換の適用の一例を以下に説明する。一例の4×4LFNSTを適用するために、4×4入力ブロックX(例えば、図14の一次変換行列1404の斜線部分1406のような一次変換係数ブロックの4×4の低周波数部分を表す)を以下のように表すことができる。
この2次元入力行列は、最初に線形化されるか、または一例の順序でベクトル
に走査されてもよい。
次いで、4×4LFNSTの分離不可能変換を
として計算することができ、
は出力変換係数ベクトルを示し、Tは16×16変換行列である。得られた16×1の係数ベクトル
は、続いて、そのブロックの走査順序(例えば、水平、垂直、または斜め)を使用して4×4ブロックとして逆走査される。より小さいインデックスを有する係数は、4×4係数ブロック内のより小さい走査インデックスと共に配置され得る。このようにして、一次変換係数Xの冗長性は、第2の変換Tを介してさらに活用することができ、それによって追加の圧縮強化を提供する。
上記の一例のLFNSTは、分離不可能変換を適用するための直接行列乗算手法に基づいており、その結果、複数の反復なしに単一パスで実施される。いくつかのさらなる例示的実装形態では、変換係数を記憶するための計算の複雑さおよびメモリ空間要件を最小限に抑えるために、例4×4LFNSTの分離不可能変換行列(T)の次元をさらに低減することができる。このような実装形態は、低減された分離不可能変換(RST)と称されてよい。より詳細には、RSTの主な概念は、N(Nは、上記の例では4×4=16であるが、8×8ブロックについては64に等しくてもよい)次元ベクトルを異なる空間内のR次元ベクトルにマッピングすることであり、N/R(R<N)は次元低減係数を表す。したがって、N×N変換行列の代わりに、RST行列は以下のようにR×N行列になり、
ここで、変換行列のR行は、N次元空間の低減されたR基底である。したがって、変換は、入力ベクトルまたはN次元を、低減されたR次元の出力ベクトルに変換する。したがって、図14に示すように、一次係数1406から変換された二次変換係数1408は、次元で係数またはN/Rだけ低減される。図14の1408の周囲の3つの正方形はゼロ詰めされてもよい。
RTSの逆変換行列は、その順変換の転置であり得る。一例の8×8LFNST(ここでのより多様な説明のために、上記の4×4LFNSTと対比される)の場合、一例の低減係数4を適用することができ、したがって、64×64の直接の分離不可能変換行列は、それに応じて16×64の直接行列に低減される。さらに、いくつかの実装形態では、入力一次係数の全体ではなく一部がLFNSTの入力ベクトルに線形化されてもよい。例えば、例8×8の入力一次変換係数の一部のみが上記のXベクトルに線形化されてもよい。特定の例では、8×8の一次変換係数行列の4つの4×4象限のうち、右下(高周波数係数)は除外することができ、他の3つの象限のみが、48×1ベクトルではなく事前定義された走査順序を使用して64×1ベクトルに線形化される。そのような実装形態では、分離不可能変換行列は、16×64から16×48にさらに低減されてよい。
したがって、一例の低減された48×16の逆RST行列をデコーダ側で使用して、8×8のコア(一次)変換係数の左上、右上および左下の4×4象限を生成することができる。具体的には、同じ変換セット構成を有する16×64 RSTの代わりに、さらに低減された16×48 RST行列が適用される場合、分離不可能二次変換は、右下の4×4ブロックを除く8×8の一次係数ブロックの3つの4×4象限ブロックからベクトル化された48個の行列要素を入力として取得する。そのような実装形態では、省略された右下の4×4一次変換係数は、二次変換で無視される。このさらに低減された変換は、48×1のベクトルを16×1の出力ベクトルに変換し、これは図14の1408を満たすために4×4行列に反対に走査される。1408を囲む二次変換係数の3つの正方形は、ゼロ詰めされてもよい。
RSTの寸法のこのような低減の助けを借りて、すべてのLFNST行列を記憶するためのメモリ使用量が削減される。上記の例では、例えば、メモリ使用量は、次元低減のない実装形態と比較して、合理的にわずかな性能低下で10KBから8KBに削減され得る。
いくつかの実装形態では、複雑さを低減するために、LFNSTは、LFNSTの対象となる一次変換係数部分の外側のすべての係数(例えば、図14の1404の1406部分の外側)が有意でない場合にのみ適用可能であるようにさらに制限される場合がある。したがって、LFNSTが適用される場合、すべての一次のみの変換係数(例えば、図4の一次係数行列1404の斜線が付されていない部分)は0に近くなり得る。そのような制限は、最終有意位置でのLFNSTインデックス信号伝達の調整を可能にし、したがって、この制限が適用されないときに特定の位置で有意係数をチェックするために必要とされ得る追加の係数走査を回避する。いくつかの実装形態では、LFNSTの最悪の場合の処理(画素あたりの乗算に関して)は、4×4および8×8ブロックの分離不可能変換を、それぞれ8×16および8×48変換に制限することができる。そのような場合、LFNSTが適用される場合、16未満の他のサイズでは、最終有意走査位置は8未満でなければならない。4×NおよびN×4およびN>8の形状を有するブロックの場合、上記の制限は、LFNSTが左上の4×4領域に1回だけ適用されることを意味する。LFNSTが適用されるとき、すべての一次のみの係数は0であるため、そのような場合、一次変換に必要な演算の数は低減される。エンコーダの観点から、係数の量子化は、LFNST変換がテストされるときに単純化され得る。レート歪み最適化量子化(RDO)は、(走査順序に)最初の16個の係数について最大で行われなければならず、残りの係数は0になるように強制されてもよい。
いくつかの例示的実装形態では、利用可能なRSTカーネルは、各変換セットがいくつかの分離不可能変換行列を含むいくつかの変換セットとして指定されてもよい。例えば、LFNSTで使用される変換セットごとに合計4つの変換セットおよび2つの分離不可能変換行列(カーネル)が存在する可能性がある。これらのカーネルは、オフラインで事前訓練されてもよく、したがってデータ駆動される。オフラインで訓練された変換カーネルは、エンコーディング/デコーディング処理中に使用するために、メモリに記憶されるか、またはエンコーディングデバイスもしくはデコーディングデバイスにハードコーディングされてもよい。エンコーディングまたはデコーディング処理中の変換セットの選択は、イントラ予測モードによって決定され得る。イントラ予測モードから変換セットへのマッピングは、事前定義されてよい。そのような事前定義されたマッピングの例を表4に示す。例えば、表4に示すように、3つのクロスコンポーネント線形モデル(CCLM)モード(INTRA_LT_CCLM、INTRA_T_CCLMまたはINTRA_L_CCLM)のうちの1つが現在のブロック(すなわち、81<=predModeIntra<=83である)に使用される場合、変換セット0が現在のクロマブロックに対して選択され得る。各変換セットについて、選択された分離不可能二次変換候補は、明示的にシグナリングされたLFNSTインデックスによってさらに指定され得る。例えば、インデックスは、変換係数の後、イントラCUごとに1回、ビットストリームでシグナリングされてよい。
LFNSTは、上記の例示的実装形態において、第1の係数サブグループまたは部分の外側のすべての係数が有意でない場合にのみ適用可能であるように制限されるため、LFNSTインデックスコーディングは、最終有意係数の位置に依存する。加えて、LFNSTインデックスはコンテキストコーディングされてもよいが、イントラ予測モードに依存せず、第1のビンのみがコンテキストコーディングされてもよい。さらに、LFNSTは、イントラおよびインタースライスの両方におけるイントラCU、ならびにルマおよびクロマの両方に適用され得る。二重ツリーが有効になっている場合、ルマ成分およびクロマ成分のLFNSTインデックスを別々にシグナリングすることができる。インタースライス(二重ツリーが無効にされている)の場合、単一のLFNSTインデックスがシグナリングされ、ルマとクロマの両方に使用される。
いくつかの例示的実装形態では、イントラサブパーティショニング(ISP)モードが選択されると、実行可能なすべてのパーティションブロックにRSTが適用されたとしても性能向上は限界がある可能性が高いため、LFNSTが無効化され、RSTインデックスがシグナリングされない場合がある。さらに、ISP予測残差のRSTを無効にすると、エンコーディングの複雑さを低減することができる。いくつかのさらなる実装形態では、多重線形回帰イントラ予測(MIP)モードが選択されたとき、LFNSTも無効にされ、RSTインデックスはシグナリングされなくてもよい。
既存の最大変換サイズ制限(例えば、64×64)に起因して、64×64を超える大きなCU(または最大変換ブロックサイズを表す任意の他の事前定義されたサイズ)が暗黙的に分割(例えば、TUタイリング)されることを考慮すると、LFNSTインデックス探索は、特定の数のデコーディングパイプラインステージについてデータバッファリングを4倍増加させることができる。したがって、いくつかの実装形態では、LFNSTが許容される最大サイズは、例えば64×64に制限され得る。いくつかの実装形態では、LFNSTは、一次変換としてのみDCT2で有効にすることができる。
いくつかの他の実装形態では、例えば、各セット内の3つのカーネルを用いて、例えば、12セットの二次変換を定義することにより、ルマ成分に対してイントラ二次変換(IST)が提供される。イントラモード依存インデックスが、変換セット選択のために使用されてよい。セット内のカーネル選択は、シグナリングされた構文要素に基づいてもよい。ISTは、DCT2またはADSTのいずれかが水平および垂直一次変換の両方として使用される場合に有効にされてよい。いくつかの実装形態では、ブロックサイズに従って、4×4の分離不可能変換または8×8の分離不可能変換を選択することができる。min(tx_width,tx_height)<8の場合、4×4ISTを選択することができる。より大きなブロックの場合、8×8ISTを使用することができる。ここで、tx_widthおよびtx_heightは、それぞれ変換ブロックの幅および高さに対応する。ISTへの入力は、ジグザグ走査順序の低周波数一次変換係数であってもよい。
ビデオコーディングまたはデコーディング処理における様々な変換、例えば、残差ブロック内のサンプルの一次変換または一次変換係数プロセスのブロックの二次変換のいずれかは、分離可能変換方式のみを使用する場合、45度方向(例えば、水平方向または垂直方向から実質的に離れた方向)であるエッジなどの方向性のテクスチャパターンを取り込む際に必ずしも効率的ではない場合がある。上述したように、いくつかの例示的実装形態では、一次変換係数の二次変換に対し、1つまたは複数の分離不可能変換設計を使用することができる。以下でさらに説明されるように、そのような分離不可能変換方式は、一次変換係数を生成するために、残差サンプルブロックの一次変換にも使用され得る。いくつかの例示的実装形態では、分離可能変換または分離不可能変換のいずれかを介して生成された一次変換係数は、量子化、続いてエントロピーコーディングを直接施されても、あるいは量子化およびエントロピーコーディングの前に分離可能または分離不可能二次変換のいずれかを施されてもよい。分離不可能変換を介して取得された一次変換係数が、分離不可能二次変換をさらに施す実装形態では、2つの分離不可能変換がカスケード方式で利用されてきた。
以下の開示は、一次変換と二次変換の両方に適用される分離不可能変換方式のいくつかの例示的実装形態をさらに説明する。以下に説明するこれらの分離不可能変換設計は、特に方向画像パターンのコーディング効率の改善を目的とする。特に、イントラモード依存の分離不可能一次および/または二次変換方式が開示される。これらの例示的実施形態は、順変換処理または逆変換処理のいずれかの間にコーディング/デコーディングされるブロック内のデータ走査順序に焦点を合わせる。処理されているブロックは一般にデータブロックと呼ばれることがあり、順変換の場合、残差変換/コーディング/予測ブロックまたは一次変換係数のサンプルを含み、逆変換の場合、一次変換係数に逆変換される二次変換係数、または残差サンプルに逆変換される一次変換係数を含み得る。
分離不可能一次または二次変換によって達成されるエネルギー圧縮を最適化し、(高周波数係数を廃棄するために)一次または二次変換係数を効果的に量子化するために、以下でさらに詳細に説明するように、分離不可能一次または二次変換の入力および出力走査処理は、イントラ予測モード、ブロックサイズ、および/または一次変換タイプを考慮して実施され得る。
いくつかの例示的実装形態では、変換セットは、コーディング処理中にデータブロックを選択するためのエンコーダの候補またはオプションとして、1つまたは複数の変換カーネルのグループを指してもよい。
いくつかの実装形態では、一次変換は、分離不可能変換を使用して実施されるか、または一連の1次元変換を実施することによって達成されてもよい。例えば、DCT_DCTの組み合わせでは、DCTは、ブロックに、水平および垂直に適用される。別の例では、ADST_ADSTの組み合わせでは、1次元ADSTがブロック上に、水平および垂直に適用される。いくつかの実装形態では、異なる変換タイプを水平および垂直に使用することができる。このような変換は、複合的一次変換と称されることがある。
図15は、順方向および逆方向の分離不可能変換のための例示的なデータフロー1500を示している。様々なデータ走査処理は、S1およびS2として識別され、順方向および逆方向の分離不可能変換は、図15のb 1502および1504として識別される。例示的データフロー1500の動作は、一次および二次分離不可能変換処理の両方に適用され、以下でさらに詳細に説明される。
分離不可能二次変換におけるデータ走査
この例示的実施形態では、順方向および逆方向の二次変換は、図15の1502および1504によって示されるように、分離不可能変換であってもよい。エンコーディング側から、順方向二次変換1502の入力は、走査処理1512における第1の走査順序S1に従うデータシーケンス1510に走査された一次係数データブロック1508のN個の一次変換係数1506であってもよく、順方向二次変換1502の出力は、第2の走査順序S2を使用してデータ走査1518に従う修正一次変換係数データブロック1507を生成するために、一次変換係数のK個の入力一次変換係数1516を置換するK個のデータ項目の二次変換係数シーケンス1514であってもよい。NおよびKは正の整数である。
デコーディング側から、逆方向二次変換1504の入力は、走査処理1522において逆S2走査順で修正一次係数データブロック1509のK個の入力係数1517を逆走査することに従って取得されるK個のデータ項目の二次変換係数シーケンス1520であり、逆方向二次変換1504の出力は、逆S1走査順序に従う逆走査処理1530を使用して一次係数データブロック1528を生成するために、1509のN個の一次変換係数1526を置換するN個の係数の一次変換係数シーケンス1524であり得る。
いくつかの例示的実装形態では、NはKより大きくてもよい。言い換えれば、分離不可能二次変換1502は、低減された分離不可能二次変換であってもよい。いくつかの例示的な実施形態では、N個の一次変換係数1506は、一次係数データブロック1506の最初のN個の係数、例えば、一次変換係数データブロック1506の左上隅(または低周波数部分)であってもよい。
一例示的実装形態では、走査順序S1は、入力データブロック1508に関連付けられたイントラ予測モード、データブロックに関連付けられた一次変換タイプ、またはデータブロックのブロックサイズのうちの少なくとも1つに依存してもよい。
一例示的実装形態では、走査順序S2は、入力データブロック1508に関連付けられたイントラ予測モード、データブロックに関連付けられた一次変換タイプ、またはデータブロックのブロックサイズのうちの少なくとも1つに依存してもよい。
一例示的実装形態では、S1およびS2の走査順序は、ジグザグ走査順序、対角走査順序、または行および列の走査順序のうちの少なくとも1つを含んでもよい。
一実装形態では、(1つまたは複数の第2の変換カーネルを有する)同じ二次変換セットが、複数のイントラ予測モードの二次変換候補として使用されるとき、S1およびS2の走査順序は、データブロックに関連付けられたイントラ予測モードに依存してもよい。
いくつかの例示的実装形態では、S1およびS2の走査順序は異なっていてもよい。
いくつかの例示的実装形態では、NおよびKは、両端を含む0と127の間の任意の整数を含むが、これらに限定されない。
いくつかの例示的実装形態では、データブロックが正方形ブロックである場合、S1および/またはS2の走査順序は、ジグザグ順序を含んでもよい。ブロックが非正方形ブロックである場合、S1および/またはS2の走査順序は、対角走査順序を含んでもよい。
図15は、量子化およびエントロピーエンコーディング1540、ならびに対応するエントロピーデコーディングおよび逆量子化1550をさらに示している。
一次変換としての分離不可能一次変換におけるデータ走査
この例示的実施形態では、分離不可能変換処理1502および1504は、一次変換に関して実施されてもよい。したがって、1500(1508)のデータフローへの入力は、例えば、一次変換係数ではなく残差サンプルデータブロックであり、出力1507は、分離不可能変換処理1502からのK個の一次変換係数1516を含む修正された残差サンプルデータブロックである。具体的には、エンコーダ側から、順方向一次変換の入力は、第1の走査順序S1に従う最初のN個の残差サンプルであってもよく、順方向一次変換の出力は、第2の走査順序S2におけるK個の入力残差サンプルを置換するK個の分離不可能変換係数である。NおよびKは正の整数である。デコーダ側から、逆方向分離不可能変換の入力は、S2走査順序に従うK個の分離不可能変換係数であり、逆方向分離不可能変換の出力は、S1走査順序に従うN個の分離不可能変換係数を置換するN個の残差サンプルであり、ここで、Nは整数である。
一例示的実装形態では、走査順序S1は、データブロックに関連付けられたイントラ予測モード、データブロックに関連付けられた一次変換タイプ、またはデータブロックのブロックサイズのうちの少なくとも1つに依存してもよい。
一例示的実装形態では、走査順序S2は、データブロックに関連付けられたイントラ予測モード、データブロックに関連付けられた一次変換タイプ、またはデータブロックのブロックサイズのうちの少なくとも1つに依存してもよい。
一例示的実装形態では、S1およびS2の走査順序は、ジグザグ走査順序、対角走査順序、または行および列の走査順序のうちの少なくとも1つを含んでもよい。
一例示的実装形態では、(1つまたは複数の第2の変換カーネルを有する)同じ変換セットが、複数のイントラ予測モードのための二次変換候補として使用されるとき、S1およびS2の走査順序は、データブロックに関連付けられたイントラ予測モードに依存してもよい。
いくつかの例示的実装形態では、S1およびS2の走査順序は異なっていてもよい。
一例示的実装形態では、NおよびKは、両端を含む0と127の間の任意の整数を含むが、これに限定されない。
一例示的実装形態では、データブロックが正方形ブロックであるとき、S1および/またはS2の走査順序は、ジグザグ走査順序を含んでもよい。ブロックが非正方形ブロックである場合、S1および/またはS2の走査順序は、対角走査順序を含んでもよい。言い換えれば、正方形または非正方形データブロックのいずれかに対して、対角走査順序が強制され得る。
一例示的実装形態では、S1走査順序は、水平(行)走査順序、または垂直(列)走査順序を含んでもよい。
これらの実装形態では、量子化/エントロピー処理1540、およびエントロピーデコーディング/逆量子化処理1550は、追加の二次変換なしで1507または1509に対して直接実施されてもよい。いくつかの他の代替の実装形態では、エンコーディング側の処理1540に先行し、デコーディング側の処理1550に続いて、追加の二次変換が実施されてもよい。追加の二次変換は、分離可能であってもよく、または分離不可能であってもよく、例えば、分離不可能二次変換について上述した実装形態に従う。
一次変換としての分離不可能一次変換におけるデータ走査
いくつかの実施形態では、変換のタイプ(すなわち、分離可能または転写不可能である)は、変換係数コーディング(例えば、変換係数のエントロピーエンコーディング)を実施するときに走査順序に影響を及ぼし得る。一実装形態では、(一次変換および/または二次変換に)分離不可能変換が適用されるとき、水平(行)、または垂直(列)走査順序が、変換係数コーディングに使用され得る。
図16は、ビデオデータを処理するための例示的な方法1600を示している。方法1600は、以下のステップ、すなわち、ビデオデータからデータブロックを抽出するステップ1610と、第1の走査順序に従うデータブロック内の第1の数のデータ項目を走査して第1のデータシーケンスを生成するステップ1620と、第1のデータシーケンスに対して分離不可能変換を実行して第2の数のデータ項目を有する第2のデータシーケンスを取得するステップ1630と、データブロック内の第1の数のデータ項目の少なくとも一部を、第2の走査順序に従う第2のデータシーケンスの一部または全部と置換するステップ1640と、の一部または全部を含み得る。
本開示の実施形態では、必要に応じて任意のステップおよび/または動作を任意の数量または順序で組み合わせたり配置したりしてもよい。ステップおよび/または動作の2つ以上を並列に実施してもよい。
本開示の実施形態は、別々に使用されてもよく、任意の順序で組み合わされてもよい。さらに、方法(または実施形態)の各々、エンコーダ、およびデコーダは、処理回路(例えば、1つもしくは複数のプロセッサまたは1つもしくは複数の集積回路)によって実装されてもよい。一例では、1つまたは複数のプロセッサは、非一時的コンピュータ可読媒体に記憶されたプログラムを実行する。本開示の実施形態は、ルマブロックまたはクロマブロックに適用されてもよい。
上記で説明した技術は、コンピュータ可読命令を使用するコンピュータソフトウェアとして実装され、1つまたは複数のコンピュータ可読媒体に物理的に記憶され得る。例えば、図17は、本開示の主題の特定の実施形態を実装するために適したコンピュータシステム(1700)を示す。
コンピュータソフトウェアは、1つまたは複数のコンピュータ中央処理装置(CPU:central processing unit)およびグラフィック処理装置(GPU:Graphics Processing Unit)などによって直接的に、または解釈およびマイクロコードの実行などを通して実行され得る命令を含むコードを生成するために、アセンブリ、コンパイル、リンキング、または同様の機構を施され得る任意の適切なマシンコードまたはコンピュータ言語を使用してコーディングされ得る。
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、インターネットオブシングスデバイスなどを含む、様々なタイプのコンピュータまたはその構成要素で実行されてもよい。
コンピュータシステム(1700)に関して図17に示されている構成要素は、本質的に例示であり、本開示の実施形態を実施するコンピュータソフトウェアの使用または機能の範囲に関する限定を示唆することを意図されていない。構成要素の構成は、コンピュータシステム(1700)の例示的実施形態に示されている構成要素のいずれかまたは組み合わせに関する依存関係または要件を有すると解釈されるべきではない。
コンピュータシステム(1700)は、特定のヒューマンインターフェース入力デバイスを含んでもよい。そのようなヒューマンインターフェース入力デバイスは、例えば、触覚入力(例えば、キーストローク、スワイプ、データグローブの動き)、オーディオ入力(例えば、声、拍手)、視覚入力(例えば、ジェスチャ)、嗅覚入力(図示せず)を介した、1人または複数の人間ユーザによる入力に応答し得る。ヒューマンインターフェースデバイスは、オーディオ(音声、音楽、環境音など)、画像(走査画像、写真画像は静止画像カメラから取得など)、ビデオ(2次元ビデオ、立体ビデオを含む3次元ビデオなど)などの、必ずしも人間による意識的な入力に直接関連しない特定の媒体を取り込むためにも使用され得る。
入力ヒューマンインターフェースデバイスは、キーボード(1701)、マウス(1702)、トラックパッド(1703)、タッチ画面(1710)、データグローブ(図示せず)、ジョイスティック(1705)、マイクロフォン(1706)、スキャナ(1707)、カメラ(1708)のうちの1つまたは複数(各々のうちのただ1つ)を含んでもよい。
コンピュータシステム(1700)はまた、特定のヒューマンインターフェース出力デバイスを含んでもよい。そのようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音、光、および匂い/味によって1人または複数の人間ユーザの感覚を刺激し得る。このようなヒューマンインターフェース出力デバイスは、触覚出力デバイス(例えば、タッチ画面(1710)、データグローブ(図示せず)、またはジョイスティック(1705)による触覚フィードバックが含まれることがあるが、入力デバイスとして機能しない触覚フィードバックデバイスもあり得る)、オーディオ出力デバイス(スピーカ(1709)、ヘッドホン(図示せず)など)、視覚出力デバイス(それぞれがタッチ画面入力機能の有無にかかわらず、それぞれが触覚フィードバック機能の有無にかかわらず、CRT画面、LCD画面、プラズマ画面、OLED画面を含む画面(1710)などであり、それらの一部は、ステレオグラフィック出力、仮想現実眼鏡(図示せず)、ホログラフィックディスプレイおよびスモークタンク(図示せず)などの手段を介して二次元視覚出力または三次元以上の出力が可能であり得る)、およびプリンタ(図示せず)を含んでもよい。
コンピュータシステム(1700)は、CD/DVDなどの媒体(1721)を有するCD/DVD ROM/RW(1720)を含む光媒体、サムドライブ(1722)、リムーバブルハードドライブやソリッドステートドライブ(1723)、テープやフロッピーディスク(図示せず)などのレガシー磁気媒体、セキュリティドングル(図示せず)などの専用のROM/ASIC/PLDベースのデバイスなど、人間がアクセス可能な記憶デバイスおよびその関連媒体を含むこともできる。
当業者はまた、現在開示された主題に関連して使用される「コンピュータ可読媒体」という用語が、伝送媒体、搬送波、または他の一時的な信号を包含しないことを理解するはずである。
コンピュータシステム(1700)はまた、1つまたは複数の通信ネットワーク(1755)へのインターフェース(1754)を含むことができる。ネットワークは、例えば、無線、有線、光であり得る。ネットワークはさらに、ローカル、広域、メトロポリタン、車両および産業、リアルタイム、遅延耐性などとすることができる。ネットワークの例には、イーサネット、無線LANなどのローカルエリアネットワーク、GSM、3G、4G、5G、LTEなどを含むセルラーネットワーク、ケーブルテレビ、衛星テレビ、および地上波放送テレビを含むテレビ有線または無線広域デジタルネットワーク、CAN busを含む車両および産業用のものなどが含まれる。特定のネットワークは、通常、(例えば、コンピュータシステム(1700)のUSBポートなどの)特定の汎用データポートまたは周辺バス(1749)に取り付けられた外部ネットワークインターフェースアダプタを必要とし、他のネットワークは、通常、以下に記載されるシステムバスに取り付けることによってコンピュータシステム(1700)のコアに統合される(例えば、PCコンピュータシステムへのイーサネットインターフェースまたはスマートフォンコンピュータシステムへのセルラーネットワークインターフェース)。これらのネットワークのいずれかを使用して、コンピュータシステム(1700)は、他のエンティティと通信することができる。このような通信は、単方向受信のみ(例えば、放送TV)、単方向送信のみ(例えば、CANbusから特定のCANbusデバイスへ)、または双方向、例えば、ローカルエリアデジタルネットワークまたはワイドエリアデジタルネットワークを用いる他のコンピュータシステムとの通信であり得る。特定のプロトコルおよびプロトコルスタックは、上記で説明したように、それらのネットワークおよびネットワークインターフェースのそれぞれで使用され得る。
前述のヒューマンインターフェースデバイス、人間がアクセス可能な記憶デバイス、およびネットワークインターフェースを、コンピュータシステム(1700)のコア(1740)に取り付けることができる。
コア(1740)は、1つまたは複数の中央処理装置(CPU)(1741)、グラフィックス処理装置(GPU)(1742)、フィールドプログラマブルゲートエリア(FPGA)(1743)の形態の専用プログラマブル処理装置、特定のタスク用のハードウェアアクセラレータ(1744)、グラフィックスアダプタ(1750)などを含むことができる。これらのデバイスは、読み取り専用メモリ(ROM)(1745)、ランダムアクセスメモリ(1746)、ユーザがアクセスすることができない内部ハードドライブ、SSDなどの内部大容量記憶装置(1747)と共に、システムバス(1748)を介して接続され得る。いくつかのコンピュータシステムでは、システムバス(1748)は、追加のCPU、GPUなどによる拡張を可能にするために、1つまたは複数の物理プラグの形態でアクセス可能であり得る。周辺デバイスを、コアのシステムバス(1748)に直接取り付けることも、周辺バス(1749)を介して取り付けることもできる。一例では、画面(1710)をグラフィックスアダプタ(1750)に接続することができる。周辺バスのアーキテクチャは、PCI、USBなどを含む。
CPU(1741)、GPU(1742)、FPGA(1743)、およびアクセラレータ(1744)は、組み合わさって上記のコンピュータコードを形成することができる特定の命令を実行することができる。そのコンピュータコードを、ROM(1745)またはRAM(1746)に記憶することができる。また、移行データをRAM(1746)に記憶することもでき、永続データを、例えば内部大容量記憶装置(1747)に記憶することができる。1つまたは複数のCPU(1741)、GPU(1742)、大容量記憶装置(1747)、ROM(1745)、RAM(1746)などと密接に関連付けることができるキャッシュメモリの使用によって、メモリデバイスのいずれかへの高速記憶および取得を可能にすることができる。
コンピュータ可読媒体は、様々なコンピュータ実施動作を実行するためのコンピュータコードを有し得る。媒体およびコンピュータコードは、本開示の目的のために特別に設計および構築されたものであり得るか、またはそれらは、コンピュータソフトウェア技術のスキルを有する人々に周知かつ利用可能な種類であり得る。
非限定的な例として、アーキテクチャを有するコンピュータシステム(1700)、特にコア(1740)は、(CPU、GPU、FPGA、アクセラレータなどを含む)(1つまたは複数の)プロセッサが、1つまたは複数の有形のコンピュータ可読媒体において具体化されたソフトウェアを実行した結果として機能を提供することができる。そのようなコンピュータ可読媒体は、上記で紹介したようにユーザがアクセス可能な大容量記憶装置のほか、コア内部大容量記憶装置(1747)またはROM(1745)などの非一時的性質のコア(1740)の特定の記憶装置にも関連する媒体であり得る。本開示の様々な実施形態を実施するソフトウェアをこのようなデバイスに記憶して、コア(1740)によって実行することができる。コンピュータ可読媒体は、特定の必要性に応じて、1つまたは複数のメモリデバイスまたはチップを含むことができる。ソフトウェアによって、コア(1740)、特にコア(1740)内のプロセッサ(CPU、GPU、FPGAなどを含む)に、本明細書に記載の、RAM(1746)に記憶されるデータ構造を決めることと、ソフトウェアによって定められた処理にしたがってこのようなデータ構造を修正することとを含む、特定の処理または特定の処理の特定の部分を実行させることができる。加えて、または代替として、コンピュータシステムは、本明細書に記載の特定の処理または特定の処理の特定の部分を実行するためにソフトウェアの代わりにまたはそれと一緒に動作することができる回路(例えば、アクセラレータ(1744))に配線された、またはそうでなければ具体化されたロジックの結果として機能を提供することができる。ソフトウェアへの言及は、適切な場合には、ロジックを包含することができ、逆もまた同様である。必要に応じて、コンピュータ可読媒体への言及は、実行のためのソフトウェアを記憶する回路(集積回路(IC:integrated circuit)など)、実行のためのロジックを具体化する回路、またはこれらの両方を包含し得る。本開示は、ハードウェアとソフトウェアの任意の適切な組み合わせを包含する。
本開示はいくつかの例示的な実施形態を説明してきたが、本開示の範囲内にある修正例、置換例、および様々な代替の等価な例がある。したがって、当業者は、本明細書では明示的に示されていないか、または説明されていないが、本開示の原理を具現化し、したがってその精神および範囲内にある多数のシステムおよび方法を考案できることが理解されよう。
付記A:頭字語
JEM:共同探索モデル
VVC:多用途ビデオコーディング
BMS:ベンチマークセット
MV:動きベクトル
HEVC:高効率ビデオコーディング
SEI:補足拡張情報
VUI:ビデオユーザビリティ情報
GOP:グループオブピクチャ
TU:変換ユニット
PU:予測ユニット
CTU:コーディングツリーユニット
CTB:コーディングツリーブロック
PB:予測ブロック
HRD:仮想参照デコーダ
SNR:信号対雑音比
CPU:中央処理装置
GPU:グラフィックス処理装置
CRT:陰極線管
LCD:液晶ディスプレイ
OLED:有機発光ダイオード
CD:コンパクトディスク
DVD:デジタルビデオディスク
ROM:読み取り専用メモリ
RAM:ランダムアクセスメモリ
ASIC:特定用途向け集積回路
PLD:プログラマブルロジックデバイス
LAN:ローカルエリアネットワーク
GSM:モバイル通信用グローバルシステム
LTE:Long-Term Evolution
CANBus:コントローラエリアネットワークバス
USB:ユニバーサルシリアルバス
PCI:周辺構成要素相互接続
FPGA:フィールドプログラマブルゲートエリア
SSD:ソリッドステートドライブ
IC:集積回路
HDR:ハイダイナミックレンジ
SDR:標準ダイナミックレンジ
JVET:共同ビデオ探索チーム
MPM:最確モード
WAIP:広角イントラ予測
CU:コーディングユニット
PU:予測ユニット
TU:変換ユニット
CTU:コーディングツリーユニット
PDPC:位置依存予測組み合わせ
ISP:イントラサブパーティション
SPS:シーケンスパラメータ設定
PPS:ピクチャパラメータセット
APS:適応パラメータセット
VPS:ビデオパラメータセット
DPS:デコーディングパラメータセット
ALF:適応ループフィルタ
SAO:サンプル適応オフセット
CC-ALF:クロスコンポーネント適応ループフィルタ
CDEF:制約付き指向性強化フィルタ
CCSO:クロスコンポーネントサンプルオフセット
LSO:ローカルサンプルオフセット
LR:ループ復元フィルタ
AV1:AOMedia Video 1
AV2:AOMedia Video 2
101 サンプル
102 矢印
103 矢印
104 正方形ブロック
201 ブロック
300 通信システム
310 端末デバイス
320 端末デバイス
330 端末デバイス
340 端末デバイス
350 通信ネットワーク
400 通信システム
401 ビデオソース
402 ビデオピクチャまたは画像のストリーム
403 ビデオエンコーダ
404 エンコーディングされたビデオデータ、エンコーディングされたビデオビットストリーム
405 ストリーミングサーバ
406 クライアントサブシステム
407 入力コピー
408 クライアントサブシステム
409 コピー
410 ビデオデコーダ
411 ビデオピクチャの出力ストリーム
412 ディスプレイ
413 ビデオ取り込みサブシステム
420 電子デバイス
430 電子デバイス
501 チャネル
510 ビデオデコーダ
512 ディスプレイ、レンダリングデバイス
515 バッファメモリ
520 エントロピーデコーダ/パーサ
521 シンボル
530 電子デバイス
531 受信機
551 スケーラ/逆変換ユニット
552 イントラピクチャ予測ユニット
553 動き補償予測ユニット
555 アグリゲータ
556 ループフィルタユニット
557 参照ピクチャメモリ
558 ピクチャバッファ
601 ビデオソース
603 ビデオエンコーダ、ビデオコーダ
620 電子デバイス、エンコーダ
630 ソースコーダ
632 コーディングエンジン
633 ローカルビデオデコーダ、デコーディングユニット
634 参照ピクチャメモリ、参照ピクチャキャッシュ
635 予測器
640 送信機
643 コーディングされたビデオシーケンス
645 エントロピーコーダ
650 コントローラ
660 通信チャネル
703 ビデオエンコーダ
721 汎用コントローラ
722 イントラエンコーダ
723 残差計算器
724 残差エンコーダ
725 エントロピーエンコーダ
726 スイッチ
728 残差デコーダ
730 インターエンコーダ
810 ビデオデコーダ
871 エントロピーデコーダ
872 イントラデコーダ
873 残差デコーダ
874 再構成モジュール
880 インターデコーダ
1002 4×4ブロック
1004 参照サンプル
1006 隣接サンプル、参照サンプル
1008 隣接サンプル、参照サンプル
1010 サンプル
1102 8×8ブロック
1202 コーディングされたブロック
1204 中間レベルの四分木分割
1302 ブロック
1304 四分木サブブロック
1402 順方向一次変換
1404 一次変換係数行列
1406 斜線部分、一次係数
1408 二次変換係数
1500 データフロー
1502 順方向二次変換、分離不可能二次変換、分離不可能変換処理
1504 逆方向二次変換
1506 一次変換係数データブロック
1507 修正一次変換係数データブロック、出力
1508 一次係数データブロック
1509 修正一次係数データブロック
1510 データシーケンス
1512 走査処理
1514 二次変換係数シーケンス
1516 入力一次変換係数
1517 入力係数
1518 データ走査
1520 二次変換係数シーケンス
1522 走査処理
1524 一次変換係数シーケンス
1526 一次変換係数
1528 一次係数データブロック
1530 逆走査処理
1540 量子化/エントロピー処理、量子化およびエントロピーエンコーディング
1550 エントロピーデコーディング/逆量子化処理、エントロピーデコーディングおよび逆量子化
1700 コンピュータシステム
1701 キーボード
1702 マウス
1703 トラックパッド
1705 ジョイスティック
1706 マイクロフォン
1707 スキャナ
1708 カメラ
1709 オーディオ出力デバイススピーカ
1710 タッチ画面
1720 CD/DVD ROM/RW
1721 CD/DVDなどの媒体
1722 サムドライブ
1723 リムーバブルハードドライブやソリッドステートドライブ
1740 コア
1741 中央処理装置(CPU)
1742 グラフィックス処理装置(GPU)
1743 フィールドプログラマブルゲートエリア(FPGA)
1744 ハードウェアアクセラレータ
1745 読み取り専用メモリ(ROM)
1746 ランダムアクセスメモリ
1747 コア内部大容量記憶装置
1748 システムバス
1749 周辺バス
1750 グラフィックスアダプタ
1754 インターフェース
1755 通信ネットワーク
S1 第1の走査順序
S2 第2の走査順序

Claims (21)

  1. ビデオデータを処理するための方法であって、
    前記ビデオデータからデータブロックを抽出するステップと、
    第1の走査順序に従う前記データブロック内の第1の数のデータ項目を走査して第1のデータシーケンスを生成するステップと、
    前記第1のデータシーケンスに対して分離不可能変換を実行して第2の数のデータ項目を有する第2のデータシーケンスを取得するステップと、
    前記データブロック内の前記第1の数のデータ項目の少なくとも一部を、第2の走査順序に従う前記第2のデータシーケンスの一部または全部と置換するステップと
    を含む方法。
  2. 前記データブロックが、一次変換係数を備え、
    前記分離不可能変換が、順方向分離不可能二次変換を備え、
    前記データブロック内の前記第1の数のデータ項目の少なくとも一部を置換するステップが、前記データブロック内の前記第1の数のデータ項目内の前記第2の数のデータ項目を、前記第2の走査順序に従う前記第2のシーケンスと置換するステップを含む、
    請求項1に記載の方法。
  3. 前記第1の走査順序が、
    前記データブロックに関連付けられたイントラ予測モード、
    前記順方向分離不可能二次変換のタイプ、または、
    前記データブロックのサイズのうちの少なくとも1つに基づいて決定される、請求項2に記載の方法。
  4. 前記第2の走査順序が、
    前記データブロックに関連付けられたイントラ予測モード、
    前記順方向分離不可能二次変換のタイプ、または、
    前記データブロックのサイズのうちの少なくとも1つに基づいて決定される、請求項2に記載の方法。
  5. 前記第1の走査順序、または前記第2の走査順序が、
    ジグザグ走査順序、
    対角走査順序、または、
    行および列の走査順序のうちの1つを備える、請求項2に記載の方法。
  6. 変換カーネルの同じセットが、前記ビデオデータに関して複数のイントラ予測モードによって共有されるとき、前記第1の走査順序または第2の走査順序が、前記データブロックに関連付けられたイントラ予測モードに基づいて決定される、請求項2に記載の方法。
  7. 前記第1の数および前記第2の数が、両端を含む0と127の間の整数である、請求項2に記載の方法。
  8. 前記第1の走査順序および前記第2の走査順序が、
    前記データブロックが正方形ブロックであるときのジグザグ走査順序、または、
    前記データブロックが非正方形ブロックであるときの対角走査順序である、請求項2に記載の方法。
  9. 前記データブロックが、残差サンプルを備え、
    前記分離不可能変換が、順方向分離不可能一次変換を備え、
    前記データブロック内の前記第1の数のデータ項目の少なくとも一部を置換するステップが、前記データブロック内の前記第1の数のデータ項目内の前記第2の数のデータ項目を、前記第2の走査順序に従う前記第2のシーケンスと置換するステップを含む、請求項1に記載の方法。
  10. 前記第1の走査順序が、
    前記データブロックに関連付けられたイントラ予測モード、
    前記順方向分離不可能二次変換のタイプ、または、
    前記データブロックのサイズのうちの少なくとも1つに基づいて決定される、請求項9に記載の方法。
  11. 前記第2の走査順序が、
    前記データブロックに関連付けられたイントラ予測モード、
    前記順方向分離不可能二次変換のタイプ、または、
    前記データブロックのサイズのうちの少なくとも1つに基づいて決定される、請求項9に記載の方法。
  12. 前記第1の走査順序または前記第2の走査順序が、
    ジグザグ走査順序、
    対角走査順序、または、
    行および列の走査順序のうちの1つを備える、請求項9に記載の方法。
  13. 変換カーネルの同じセットが、前記ビデオデータに関して複数のイントラ予測モードによって共有されるとき、前記第1の走査順序または第2の走査順序が、前記データブロックに関連付けられたイントラ予測モードに基づいて決定される、請求項9に記載の方法。
  14. 前記第1の数および前記第2の数が、両端を含む0と127の間の整数である、請求項9に記載の方法。
  15. 前記第1の走査順序および前記第2の走査順序が、
    前記データブロックが正方形ブロックであるときのジグザグ走査順序、または、
    前記データブロックが非正方形ブロックであるときの対角走査順序である、請求項9に記載の方法。
  16. 前記第1の走査順序が、水平または垂直走査順序である、請求項9に記載の方法。
  17. ビデオデータに関連付けられた変換係数をエントロピーエンコーディングするための方法であって、
    前記変換係数に関連付けられた変換が分離不可能であることに応答して、
    水平走査順序、または、
    垂直走査順序のうちの1つである第1の走査順序を使用して前記変換係数のエントロピーエンコーディングを実行するときに、前記変換係数を走査するステップと、
    前記変換係数に関連付けられた変換が分離可能であることに応答して、前記変換係数のエントロピーエンコーディングを実行するときに、前記第1の走査順序とは異なる第2の走査順序で前記変換係数を走査するステップと
    を含む方法。
  18. 前記変換が、
    一次変換、または、
    二次変換のうちの1つを備える、請求項17に記載の方法。
  19. ビデオデータを処理するための方法であって、
    前記ビデオデータを受信するステップと、
    分離不可能変換が二次変換として前記ビデオデータに適用されるかどうかを決定するステップと、
    前記分離不可能変換が前記二次変換として前記ビデオデータに適用されることに応答して、
    第1の数の一次変換係数を走査するステップであって、前記一次変換係数が、第1の走査順序に従う、ステップと、
    入力として前記第1の数の一次変換係数を使用して分離不可能変換を実行して、出力として第2の数の二次変換係数を取得するステップであって、前記二次変換係数が、第2の走査順序に従う、ステップと、
    少なくとも前記第2の数の一次変換係数を、前記第2の走査順序に従う前記二次変換係数と置換するステップと、
    入力として前記第2の数の二次変換係数を使用して前記分離不可能変換に対応する逆方向二次変換を実行して、出力として前記第1の数の一次変換係数を取得するステップと、
    少なくとも前記第1の数の二次変換係数を、前記第1の走査順序に従う前記一次変換係数と置換するステップと
    を含む方法。
  20. 請求項1から19のいずれか一項に記載の方法を実行するように構成された回路を備えるデバイス。
  21. コンピュータコードが記憶された非一時的コンピュータ可読プログラム媒体を備えるコンピュータプログラム製品であって、前記コンピュータコードが、1つまたは複数のプロセッサによって実行されたとき、前記1つまたは複数のプロセッサに、請求項1から19のいずれか一項に記載の方法を実行させる、コンピュータプログラム製品。
JP2023532416A 2021-08-30 2022-02-04 二次変換係数の走査順序 Pending JP2023552148A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202163238646P 2021-08-30 2021-08-30
US63/238,646 2021-08-30
US17/587,164 2022-01-28
US17/587,164 US20230078100A1 (en) 2021-08-30 2022-01-28 Scan order of secondary transform coefficients
PCT/US2022/015242 WO2023033865A1 (en) 2021-08-30 2022-02-04 Scan order of secondary transform coefficients

Publications (1)

Publication Number Publication Date
JP2023552148A true JP2023552148A (ja) 2023-12-14

Family

ID=85410749

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023532416A Pending JP2023552148A (ja) 2021-08-30 2022-02-04 二次変換係数の走査順序

Country Status (5)

Country Link
US (1) US20230078100A1 (ja)
EP (1) EP4397035A1 (ja)
JP (1) JP2023552148A (ja)
KR (1) KR20230075498A (ja)
WO (1) WO2023033865A1 (ja)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102045560B (zh) * 2009-10-23 2013-08-07 华为技术有限公司 一种视频编解码方法及设备
US9288496B2 (en) * 2010-12-03 2016-03-15 Qualcomm Incorporated Video coding using function-based scan order for transform coefficients
US9392301B2 (en) * 2011-07-01 2016-07-12 Qualcomm Incorporated Context adaptive entropy coding for non-square blocks in video coding
EP3222044A1 (en) * 2014-11-21 2017-09-27 VID SCALE, Inc. One-dimensional transform modes and coefficient scan order
US10491922B2 (en) * 2015-09-29 2019-11-26 Qualcomm Incorporated Non-separable secondary transform for video coding
US11375220B2 (en) * 2019-11-27 2022-06-28 Tencent America LLC Method and apparatus for video decoding using a nominal directional mode and an angular offset

Also Published As

Publication number Publication date
WO2023033865A1 (en) 2023-03-09
US20230078100A1 (en) 2023-03-16
KR20230075498A (ko) 2023-05-31
EP4397035A1 (en) 2024-07-10

Similar Documents

Publication Publication Date Title
JP2022526400A (ja) ビデオコーディングのための方法および装置
WO2022103445A1 (en) Method and apparatus for video coding
JP7451772B2 (ja) ビデオ情報を処理するための方法、デバイス、およびコンピュータプログラム
JP7508705B2 (ja) イントラ予測モード向けのエントロピーコーディングのための方法、装置、及びコンピュータプログラム
JP2024111184A (ja) イントラモードコーディングのための改良
KR20220100726A (ko) 비디오 코딩을 위한 방법 및 장치
KR20230170759A (ko) 1차원 변환 스킵을 위한 eob의 시그널링
US20220337854A1 (en) Interaction between transform partitioning and primary/secondary transform type selection
JP2023553997A (ja) 複合インターイントラ予測モードのための適応変換
KR20220143903A (ko) 변환 계수에 대한 부호 맵의 개선된 엔트로피 코딩
EP4118824A1 (en) Harmonized design between multiple reference line intra prediction and transform partitioning
JP2023552148A (ja) 二次変換係数の走査順序
US11838498B2 (en) Harmonized design for intra bi-prediction and multiple reference line selection
US20230069984A1 (en) Hardware friendly design for intra mode coding
JP2023543983A (ja) コーディングされたビデオストリームの現在のブロックに対してイントラ予測を実行するための方法、装置、およびコンピュータプログラム
JP2024535959A (ja) 複合インターイントラ予測モードのための二次変換
EP4179726A1 (en) Harmonized design for offset based refinement and multiple reference line selection
JP2023549771A (ja) 適応カーネルオプションを用いた二次変換の方法および装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230526

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230526

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240318

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20240618

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240918

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20241021