JP2024513993A - 方法、電子装置、非一時的コンピュータ可読記憶媒体、およびコンピュータプログラム - Google Patents

方法、電子装置、非一時的コンピュータ可読記憶媒体、およびコンピュータプログラム Download PDF

Info

Publication number
JP2024513993A
JP2024513993A JP2023563028A JP2023563028A JP2024513993A JP 2024513993 A JP2024513993 A JP 2024513993A JP 2023563028 A JP2023563028 A JP 2023563028A JP 2023563028 A JP2023563028 A JP 2023563028A JP 2024513993 A JP2024513993 A JP 2024513993A
Authority
JP
Japan
Prior art keywords
luma
block
chroma
samples
video
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
JP2023563028A
Other languages
English (en)
Inventor
ジュ,ホン-ジェン
シュウ,シャオユウ
チェン,イ-ウェン
チェン,ウェイ
クオ,チーウェイ
ワン,シャンリン
ユ,ビン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Dajia Internet Information Technology Co Ltd
Original Assignee
Beijing Dajia Internet Information Technology Co Ltd
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 Beijing Dajia Internet Information Technology Co Ltd filed Critical Beijing Dajia Internet Information Technology Co Ltd
Publication of JP2024513993A publication Critical patent/JP2024513993A/ja
Pending legal-status Critical Current

Links

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/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/186Methods 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 colour or a chrominance component
    • 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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • 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/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for 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/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/136Incoming video signal characteristics or properties
    • 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
    • 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/184Methods 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 bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • 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

Abstract

コンピューティングデバイスは、最小ルマ値と閾値ルマ値との間の第1の線形モデルと、閾値ルマ値と最大ルマ値との間の第2の線形モデルとを含むマルチモデル線形モデル(MMLM)を基準ルマサンプルのグループ及び基準クロマサンプルのグループから生成するとともに、ルマブロックの、マルチモデル線形モデルを使用して再構成された対応するそれぞれの第1のサンプル値と、隣接するクロマブロックの、イントラ予測モードから再構成されたそれぞれの第2のサンプル値との重み付けられた組み合わせから、クロマブロックのそれぞれのサンプル値を再構成することによってビデオデータを復号する方法を実行する。

Description

関連出願の相互参照
本出願は、2021年4月16日に出願された「マルチモデル線形モデルを用いたビデオコーディング」と題する米国仮特許出願第63/176,140号に基づくとともにこの米国仮特許出願第63/176,140号の優先権を主張し、この米国仮特許出願の内容は参照によりその全体が本願に組み入れられる。
この出願は、ビデオコーディング及び圧縮に関し、より具体的には、コーディング効率を向上させ、複雑さを単純化し、イントラ予測の精度を向上させる方法及び装置に関する。
デジタルビデオは、デジタルテレビ、ラップトップ又はデスクトップコンピュータ、タブレットコンピュータ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、スマートフォン、ビデオテレコンファレンスデバイス、ビデオストリーミングデバイスなどの様々な電子デバイスによってサポートされる。電子デバイスは、通信ネットワークを介してデジタルビデオデータを送受信又は通信し、及び/又は記憶デバイスにデジタルビデオデータを記憶する。通信ネットワークの帯域幅容量が限られており、記憶デバイスのメモリリソースが限られているため、ビデオコーディングを使用して、ビデオデータが通信又は記憶される前に1つ以上のビデオコーディング規格にしたがってビデオデータを圧縮する場合がある。例えば、ビデオコーディング規格としては、多用途ビデオコーディング(VVC)、ジョイントエクスポレーションテストモデル(JEM)、高効率ビデオコーディング(HEVC/H.265)、高度ビデオコーディング(AVC/H.264)、ムービングピクチャエキスパートグループ(MPEG)コーディングなどが挙げられる。ビデオコーディングは、一般に、ビデオデータに固有の冗長性を利用する予測方法(例えば、インター予測、イントラ予測など)を利用する。ビデオコーディングは、ビデオ品質の低下を回避又は最小化しながら、ビデオデータをより低いビットレートを使用する形式に圧縮することを目的とする。
本出願は、ビデオデータ符号化及び復号に関連する、より詳細には、マルチモデル線形モデル(MMLM)及びイントラ予測モードを使用してコーディング効率を向上させ、複雑さを単純化し、イントラ予測の精度を向上させる方法及び装置に関連する実施態様について記載する。
本出願の第1の態様によれば、ビデオ信号のクロマブロックを構成するための方法が、クロマブロック、対応するルマブロック、ルマブロックを取り囲む複数の隣接するルマサンプル、及び前記クロマブロックを取り囲む複数の隣接するクロマサンプルを符号化したビットストリームを受信することと、ルマブロックの複数の再構成されたルマサンプル、複数の再構成された隣接するルマサンプル、及び複数の再構成された隣接するクロマサンプルをそれぞれ取得するために、ルマブロック、複数の隣接するルマサンプル、及び複数の隣接するクロマサンプルを復号することと、複数の再構成された隣接するルマサンプル及び複数の再構成された隣接するクロマサンプルから、基準ルマサンプルのグループ及び基準クロマサンプルのグループであって、各基準ルマサンプルがそれぞれの基準クロマサンプルに対応している、ルマサンプルのグループ及び基準クロマサンプルのグループを選択することと、基準ルマサンプルのグループから閾値ルマ値を計算するとともに、基準クロマサンプルのグループから対応する閾値クロマ値を計算することと、基準ルマサンプルのグループから、閾値ルマ値が最小ルマ値と最大ルマ値との間にある、最大ルマ値及び最小ルマ値を判定することと、最小ルマ値と閾値ルマ値との間の第1の線形モデルと、閾値ルマ値と最大ルマ値との間の第2の線形モデルとを含むマルチモデル線形モデルを生成することと、ルマブロックの、マルチモデル線形モデルを使用して再構成された対応するそれぞれの第1のサンプル値と、隣接するクロマブロックの、イントラ予測モードから再構成されたそれぞれの第2のサンプル値との重み付けられた組み合わせからクロマブロックのそれぞれのサンプル値を再構成することと、を含む。
本出願の第2の態様によれば、電子装置が、1つ以上の処理ユニットと、1つ以上の処理ユニットに結合されるメモリと、メモリに記憶された複数のプログラムと、を備える。これらのプログラムは、1つ以上の処理ユニットによって実行されると、電子装置に、上述のような、ビデオ信号のコード化の方法を実行させる。
本出願の第3の態様によれば、非一時的コンピュータ可読記憶媒体が、1つ以上の処理ユニットを有する電子装置によって実行される複数のプログラムを記憶している。これらのプログラムは、1つ以上の処理ユニットによって実行されると、電子装置に、上述のような、ビデオ信号のコード化の方法を実行させる。
本出願の第4の態様によれば、コンピュータ可読記憶媒体が、上述のような、ビデオ復号の方法によって生成されたビデオ情報を含むビットストリームを記憶している。
前述の一般的な説明及び以下の詳細な説明の両方は、例にすぎず、本開示を限定するものではないことを理解すべきである。
実施態様の更なる理解を与えるために含まれて、本明細書に組み込まれるとともに、本明細書の一部を構成する添付図面は、記載された実施態様を例示し、説明と共に基礎となる原理を説明するのに役立つ。同様の参照番号は、対応する部分を指す。
本開示の幾つかの実施に係る典型的なビデオ符号化及び復号システムを示すブロック図である。 本開示の幾つかの実施に係る典型的なビデオエンコーダを例示するブロック図である。 本開示の幾つかの実施に係る典型的なビデオデコーダを示すブロック図である。 本開示の幾つかの実施にしたがってフレームがどのようにして異なるサイズの複数のビデオブロックに再帰的に四分木分割されるかを示すブロック図である。 本開示の幾つかの実施にしたがってフレームがどのようにして異なるサイズの複数のビデオブロックに再帰的に四分木分割されるかを示すブロック図である。 本開示の幾つかの実施にしたがってフレームがどのようにして異なるサイズの複数のビデオブロックに再帰的に四分木分割されるかを示すブロック図である。 本開示の幾つかの実施にしたがってフレームがどのようにして異なるサイズの複数のビデオブロックに再帰的に四分木分割されるかを示すブロック図である。 本開示の幾つかの実施に係る符号化されるべき現在のCUの空間的に隣接して時間的にコロケートされたブロック位置を例示するブロック図である。 本開示の幾つかの実施に係る波面並列処理を使用するピクチャのCTlJの複数の行のマルチスレッド符号化を示すブロック図である。 本開示の幾つかの実施に係るVVC規格で規定されるイントラモードを示すブロック図である。 本開示の幾つかの実施に係るイントラ予測のための基準として現在のブロックの上及び左に隣接する再構成されたサンプルのセットを示すブロック図である。 本開示の幾つかの実施に係る勾配解析が実行される選択されたピクセルのセットを示すブロック図である。 本開示の幾つかの実施に係るテンプレートを用いた3x3 Sobel勾配フィルタの畳み込みプロセスを示すブロック図である。 本開示の幾つかの実施に係る、復号されるべき典型的な事前に再構成されたルマブロック602を示すブロック図である。 本開示の幾つかの実施に係る、復号されるべき典型的な関連するクロマブロック620を示すブロック図である。 本開示の幾つかの実施に係る、マルチモデル線形モデルを導出するとともにマルチモデル線形モデルを適用してコーディングユニットのクロマサンプルを予測する技術をビデオコーダが実施する典型的なプロセスを示すプロット図である。 本開示の幾つかの実施に係る、マルチモデル線形モデルを導出するとともにマルチモデル線形モデルを適用してコーディングユニットのクロマサンプルを予測する技術をビデオコーダが実施する典型的なプロセスを示すプロット図である。 本開示の幾つかの実施に係る、マルチモデル線形モデルを導出するとともにマルチモデル線形モデルを適用してコーディングユニットのクロマサンプルを予測する技術をビデオコーダが実施する典型的なプロセスを示すプロット図である。 本開示の幾つかの実施に係る、マルチモデル線形モデルを導出するとともにマルチモデル線形モデルを適用してコーディングユニットのクロマサンプルを予測する技術をビデオコーダが実施する典型的なプロセスを示すプロット図である。 本開示の幾つかの実施に係る、マルチモデル線形モデルを導出するとともにマルチモデル線形モデルを適用してコーディングユニットのクロマサンプルを予測する技術をビデオコーダが実施する典型的なプロセスを示すフローチャートである。 本開示の幾つかの実施に係るMMLMに使用される隣接するサンプル(灰色の円として示される)の位置を示すブロック図である。 本開示の幾つかの実施に係るMMLMに使用されるサンプルの4つのセットの位置を示すブロック図である。 本開示の幾つかの実施に係るMMLMとイントラ予測とを組み合わせてビデオ信号のクロマブロックを予測又は構成する技術をビデオコーダが実施する典型的なプロセスを示すフローチャートである。 本開示の幾つかの実施に係る、ユーザインタフェースと結合されるコンピューティング環境を示す図である。
ここで、その例が添付図面に示される特定の実施態様について詳細に言及する。以下の詳細な説明では、本明細書に提示される主題の理解を助けるために、多数の非限定的な特定の詳細が記載される。しかし、当業者であれば分かるように、特許請求の範囲から逸脱することなく様々な代替形態を使用することができ、これらの特定の詳細を伴うことなく主題を実施できる。例えば、当業者であれば分かるように、本明細書に提示される主題は、デジタルビデオ機能を有する多くのタイプの電子デバイスで実施され得る。
図1は、本開示の幾つかの実施に係るビデオブロックを並列に符号化及び復号するための典型的なシステム10を示すブロック図である。図1に示されるように、システム10は、送信先デバイス14によって後で復号されるべきビデオデータを生成及び符号化する送信元デバイス12を含む。送信元デバイス12及び送信先デバイス14は、デスクトップ又はラップトップコンピュータ、タブレットコンピュータ、スマートフォン、セットトップボックス、デジタルテレビ、カメラ、表示デバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む多種多様な電子デバイスのいずれかを含んでいてよい。幾つかの実施において、送信元デバイス12及び送信先デバイス14は、無線通信機能を備えている。
幾つかの実施において、送信先デバイス14は、リンク16を介して復号されるべき符号化されたビデオデータを受信してよい。リンク16は、符号化されたビデオデータを送信元デバイス12から送信先デバイス14に移動することができる任意のタイプの通信媒体又はデバイスを含んでいてよい。一例では、リンク16は、送信元デバイス12が符号化されたビデオデータをリアルタイムで送信先デバイス14に直接送信できるようにするべく通信媒体を含んでいてよい。符号化されたビデオデータは、例えば無線通信プロトコルのような通信規格にしたがって変調され、送信先デバイス14へ送信され得る。通信媒体は、無線周波数(RF)スペクトル又は1つ以上の物理送信ラインなどの任意の無線又は有線通信媒体を含んでいてよい。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、又はインターネットなどのグローバルネットワークなどのパケットベースのネットワークの一部を形成していてよい。通信媒体は、ルータ、スイッチ、基地局、又は、送信元デバイス12から送信先デバイス14への通信を容易にするために有用であり得る任意の他の機器を含み得る。
幾つかの他の実施において、符号化されたビデオデータは、出力インタフェース22から記憶デバイス32に送信され得る。その後、記憶デバイス32内の符号化されたビデオデータは、入力インタフェース28を介して送信先デバイス14によってアクセスされ得る。記憶デバイス32は、ハードドライブ、ブルーレイディスク、DVD、CD-ROM、フラッシュメモリ、揮発性もしくは不揮発性メモリ、又は符号化されたビデオデータを記憶するための任意の他の適切なデジタル記憶媒体などの様々な分散型又はローカルアクセス型データ記憶媒体のいずれかを含んでいてよい。更なる例において、記憶デバイス32は、送信元デバイス12によって生成される符号化されたビデオデータを保持していてよいファイルサーバ又は他の中間記憶デバイスに対応していてよく、送信先デバイス14は、ストリーミング又はダウンロードを介して記憶デバイス32から記憶されたビデオデータにアクセスしてよい。ファイルサーバは、符号化されたビデオデータを記憶して符号化されたビデオデータを送信先デバイス14に送信することができる任意のタイプのコンピュータであってもよい。典型的なファイルサーバは、ウェブサーバ(例えば、ウェブサイトの場合)、FTPサーバ、ネットワーク接続記憶(NAS)デバイス、又はローカルディスクドライブを含む。送信先デバイス14は、ファイルサーバに記憶される符号化されたビデオデータにアクセスするのに適した無線チャネル(例えば、Wi-Fi接続)、有線接続(例えば、DSL、ケーブルモデムなど)、又はこれらの両方の組み合わせを含む任意の標準的なデータ接続を介して符号化されたビデオデータにアクセスしてよい。記憶デバイス32からの符号化されたビデオデータの送信は、ストリーミング送信、ダウンロード送信、又はこれらの両方の組み合わせであってもよい。
図1に示されるように、送信元デバイス12は、ビデオソース18、ビデオエンコーダ20、及び出力インタフェース22を含む。ビデオソース18は、例えばビデオカメラなどのビデオ撮像デバイス、事前に撮像されたビデオを含むビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインタフェース、及び/又はソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステム、又はそのようなソースの組み合わせなどのソースを含んでいてよい。一例として、ビデオソース18がセキュリティ監視システムのビデオカメラである場合、送信元デバイス12及び送信先デバイス14は、カメラフォン又はビデオカメラフォンを形成していてよい。しかしながら、本出願に記載された実施態様は、一般にビデオコーディングに適用可能であってもよく、無線及び/又は有線用途に適用されてもよい。
撮像された、事前撮像された、又はコンピュータ生成されたビデオは、ビデオエンコーダ20によって符号化されてよい。符号化されたビデオデータは、送信元デバイス12の出力インタフェース22を介して送信先デバイス14に直接送信されてもよく、符号化されたビデオデータも同様に(又は代わりに)、復号及び/又は再生のために、送信先デバイス14又は他のデバイスによる後のアクセスのために記憶デバイス32に記憶されてもよい。出力インタフェース22は、モデム及び/又は送信機を更に含んでいてよい。
送信先デバイス14は、入力インタフェース28、ビデオデコーダ30、及び表示デバイス34を含む。入力インタフェース28は、受信機及び/又はモデムを含んでいてよく、リンク16を介して符号化されたビデオデータを受信してよい。リンク16を介して通信される又は記憶デバイス32上に提供される符号化されたビデオデータは、ビデオデータを復号する際にビデオデコーダ30によって使用するためにビデオエンコーダ20によって生成された様々なシンタックス要素を含んでいてよい。そのようなシンタックス要素は、通信媒体上で送信され、記憶媒体上に記憶され、又はファイルサーバに記憶される符号化されたビデオデータ内に含まれてもよい。
幾つかの実施において、送信先デバイス14は、一体型表示デバイス、及び送信先デバイス14と通信するように構成される外部表示デバイスとすることができる表示デバイス34を含んでいてよい。表示デバイス34は、復号されたビデオデータをユーザに表示するとともに、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、又は他のタイプの表示デバイスなどの様々な表示デバイスのいずれかを含んでいてよい。
ビデオエンコーダ20及びビデオデコーダ30は、例えばVVC、HEVC、MPEG-4、Part10、アドバンストビデオコーディング(AVC)、又はこのような規格の拡張などの専用規格又は業界規格にしたがって動作してよい。本出願は、特定のビデオコーディング/復号規格に限定されず、他のビデオコーディング/復号規格に適用可能であってよいことを理解すべきである。送信元デバイス12のビデオエンコーダ20は、これらの現在又は将来の規格のうちのいずれかにしたがってビデオデータを符号化するように構成してよいことが一般に考えられる。同様に、送信先デバイス14のビデオデコーダ30が、これらの現在又は将来の規格のうちのいずれかにしたがってビデオデータを復号するように構成してよいことも一般に考えられる。
ビデオエンコーダ20及びビデオデコーダ30はそれぞれ、例えば、1つ以上のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリートロジック、ソフトウェア、ハードウェア、ファームウェア、又はこれら任意の組み合わせなどの様々な適切なエンコーダ回路のうちのいずれかとして実装されてよい。部分的にソフトウェアで実装される場合、電子デバイスは、ソフトウェアのための命令を適切な非一時的コンピュータ可読媒体に記憶するとともに、1つ以上のプロセッサを使用するハードウェアで命令を実行して本開示で開示されるビデオコーディング/復号動作を実行してよい。ビデオエンコーダ20及びビデオデコーダ30のそれぞれは、1つ以上のエンコーダ又はデコーダに含まれてもよく、これらのいずれかは、それぞれのデバイスにおける複合エンコーダ/デコーダ(CODEC)の一部として組み込まれてもよい。
図2は、本出願に記載された幾つかの実施に係る典型的なビデオエンコーダ20を示すブロック図である。ビデオエンコーダ20は、ビデオフレーム内のビデオブロックのイントラ予測コーディング及びインター予測コーディングを実行してよい。イントラ予測コーディングは、所与のビデオフレーム内又はピクチャ内のビデオデータの空間的冗長性を低減又は除去するために空間予測に依存する。インター予測コーディングは、隣接するビデオフレーム内又はビデオシーケンスのピクチャ内のビデオデータの時間的冗長性を低減又は除去するために時間予測に依存する。
図2に示されるように、ビデオエンコーダ20は、ビデオデータメモリ40、予測処理ユニット41、復号ピクチャバッファ(DPB)64、加算器50、変換処理ユニット52、量子化ユニット54、及びエントロピー符号化ユニット56を含む。また、予測処理ユニット41は、動き推定ユニット42、動き補償ユニット44、分割ユニット45、イントラ予測処理ユニット46、及びイントラブロックコピー(BC)ユニット48を更に含む。幾つかの実施において、ビデオエンコーダ20は、ビデオブロック再構成のために逆量子化ユニット58、逆変換処理ユニット60、及び加算器62も含む。デブロッキングフィルタ(図示せず)を加算器62とDPB64との間に位置させて、ブロック境界をフィルタリングし、再構成されたビデオからブロックネスアーチファクトを除去してよい。加算器62の出力をフィルタリングするために、デブロッキングフィルタに加えてインループフィルタ(図示せず)を使用してもよい。ビデオエンコーダ20は、固定された又はプログラム可能なハードウェアユニットの形態をとってよく、又は、例示された固定された又はプログラム可能なハードウェアユニットのうちの1つ以上の中に分割されていてよい。
ビデオデータメモリ40は、ビデオエンコーダ20の構成要素によって符号化されるべきビデオデータを記憶してよい。ビデオデータメモリ40内のビデオデータは、例えば、ビデオソース18から取得してよい。DPB64は、(例えば、イントラ又はインター予測コーディングモードにおいて)ビデオエンコーダ20によるビデオデータの符号化に用いられる基準ビデオデータを記憶するバッファである。ビデオデータメモリ40及びDPB64は、様々なメモリデバイスのいずれかによって形成されてもよい。様々な例において、ビデオデータメモリ40は、ビデオエンコーダ20の他の構成要素とオンチップであってもよく、それらの構成要素に対してオフチップであってもよい。
図2に示されるように、予測処理ユニット41内の分割ユニット45は、ビデオデータを受信した後、ビデオデータをビデオブロックに分割する。この分割は、ビデオデータに関連付けられた四分木構造などの所定の分割構造にしたがってビデオフレームをスライス、タイル、又は他のより大きなコーディングユニット(CU)に分割することも含んでよい。ビデオフレームは、複数のビデオブロック(又はタイルと呼ばれるビデオブロックのセット)に分割されてよい。予測処理ユニット41は、エラー結果(例えば、コーディングレート及び歪みのレベル)に基づいて現在のビデオブロックに関して、複数のイントラ予測コーディングモードのうちの1つ又は複数のインター予測コーディングモードのうちの1つなどの、複数の想定し得る予測コーディングモードのうちの1つを選択してよい。予測処理ユニット41は、結果として得られるイントラ又はインター予測コード化されたブロックを、加算器50に供給して残差ブロックを生成するとともに、加算器62に供給して符号化されたブロックを再構成し、その後、基準フレームの一部として使用してよい。また、予測処理ユニット41は、動きベクトル、イントラモードインジケータ、分割情報、及び他のそのようなシンタックス情報などのシンタックス要素をエントロピー符号化ユニット56に供給する。
現在のビデオブロックに適したイントラ予測コーディングモードを選択するために、予測処理ユニット41内のイントラ予測処理ユニット46は、空間予測を与えるべくコード化されるべき現在のブロックと同じフレーム内の1つ以上の隣接するブロックに対して現在のビデオブロックのイントラ予測コーディングを実行してよい。
予測処理ユニット41内の動き推定ユニット42及び動き補償ユニット44は、時間予測を与えるために1つ以上の基準フレーム内の1つ以上の予測ブロックに対して現在のビデオブロックのインター予測コーディングを実行する。ビデオエンコーダ20は、例えば、ビデオデータのそれぞれのブロックごとに適切なコーディングモードを選択するために、複数のコーディングパスを実行してよい。
幾つかの実施態様において、動き推定ユニット42は、ビデオフレームのシーケンス内の所定のパターンにしたがって、基準ビデオフレーム内の予測ブロックに対する現在のビデオフレーム内のビデオブロックの予測ユニット(PU)の変位を示す動きベクトルを生成することによって現在のビデオフレームに関するインター予測モードを決定する。動き推定ユニット42によって実行される動き推定は、ビデオブロックにおける動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、例えば、現在のフレーム(又は他のコーディングユニット)内でコード化されている現在のブロックに対する基準フレーム(又は他のコーディングユニット)内の予測ブロックに対する現在のビデオフレーム又はピクチャ内のビデオブロックのPUの変位を示していてよい。所定のパターンは、シーケンス内のビデオフレームをPフレーム又はBフレームとして指定してよい。イントラBCユニット48は、インター予測のための動き推定ユニット42による動きベクトルの判定と同様の態様で、イントラBCコーディングのためのベクトル、例えばブロックベクトルを判定してよく、又は動き推定ユニット42を利用してブロックベクトルを判定してもよい。
予測ブロックは、絶対差の和(SAD)、平方差の和(SSD)、又は他の差分メトリックによって判定されてよい、ピクセル差分に関してコード化されるべきビデオブロックのPUと密接に一致すると見なされる基準フレームのブロックである。幾つかの実施において、ビデオエンコーダ20は、DPB64に記憶された基準フレームの部分整数(subinteger)ピクセル位置に関する値を計算してよい。例えば、ビデオエンコーダ20は、基準フレームの1/4ピクセル位置、1/8ピクセル位置、又はその他の分数ピクセル位置の値を補間してよい。したがって、動き推定ユニット42は、全ピクセル位置及び分数ピクセル位置に対して動き探索を行ない、分数ピクセル精度で動きベクトルを出力してよい。
動き推定ユニット42は、PUの位置を、それぞれがDPB64に記憶された1つ以上の基準フレームを識別する第1の基準フレームリスト(List0)又は第2の基準フレームリスト(List1)から選択された基準フレームの予測ブロックの位置と比較することによって、インター予測コーディングフレームにおけるビデオブロックのPUに関して動きベクトルを計算する。動き推定ユニット42は、計算された動きベクトルを動き補償ユニット44に送り、次いでエントロピー符号化ユニット56に送る。
動き補償ユニット44によって実行される動き補償は、動き推定ユニット42によって判定された動きベクトルに基づいて予測ブロックをフェッチする又は生成することを含んでいてよい。現在のビデオブロックのPUにおける動きベクトルを受信すると、動き補償ユニット44は、基準フレームリストのうちの1つで動きベクトルが指し示す予測ブロックを見つけ、DPB64から予測ブロックを検索し、予測ブロックを加算器50に転送してよい。加算器50は、その後、コード化されている現在のビデオブロックのピクセル値から動き補償ユニット44によって与えられる予測ブロックのピクセル値を減算することによって、ピクセル差分値の残差ビデオブロックを形成する。残差ビデオブロックを形成するピクセル差分値は、ルマ又はクロマ差分成分又はその両方を含んでいてよい。動き補償ユニット44は、ビデオフレームのビデオブロックを復号する際にビデオデコーダ30によって使用されるためにビデオフレームのビデオブロックと関連付けられたシンタックス要素も生成してよい。シンタックス要素は、例えば、予測ブロックを識別するために使用される動きベクトルを規定するシンタックス要素、予測モードを示す任意のフラグ、又は本明細書に記載の任意の他のシンタックス情報を含んでいてよい。なお、動き推定ユニット42及び動き補償ユニット44は、高度に統合されてもよいが、概念的な目的のために別々に示される。
幾つかの実施において、イントラBCユニット48は、動き推定ユニット42及び動き補償ユニット44に関連して前述したのと同様の態様でベクトルを生成して予測ブロックをフェッチしてよいが、予測ブロックはコード化されている現在のブロックと同じフレーム内にあり、ベクトルは動きベクトルとは対照的にブロックベクトルと呼ばれる。特に、イントラBCユニット48は、現在のブロックを符号化するために使用すべきイントラ予測モードを決定してよい。幾つかの例において、イントラBCユニット48は、例えば別個の符号化パス中に、様々なイントラ予測モードを使用して現在のブロックを符号化し、レート歪み解析によってそれらの性能をテストしてよい。次に、イントラBCユニット48は、テストされた様々なイントラ予測モードの中から、適切なイントラ予測モードを選択し、それに応じてイントラモードインジケータを使用して生成してよい。例えば、イントラBCユニット48は、様々なテストされたイントラ予測モードのレート歪み解析を使用してレート歪み値を計算し、テストされたモードの中で最良のレート歪み特性を有するイントラ予測モードを、使用するのに適したイントラ予測モードとして選択してよい。レート歪み解析は、一般に、符号化されたブロックと、符号化されたブロックを生成するために符号化される元の符号化されていないブロックとの間の歪み(又はエラー)の量、並びに符号化されたブロックを生成するために使用されるビットレート(すなわち、ビット数)を判定し、イントラBCユニット48は、様々な符号化されたブロックに関する歪み及びレートから比率を計算して、どのイントラ予測モードがブロックにとって最良のレート歪み値を示すかを判定してよい。
他の例において、イントラBCユニット48は、動き推定ユニット42及び動き補償ユニット44を全体的又は部分的に使用して、本明細書に記載の実施に係るイントラBC予測のためのそのような機能を果たしてもよい。いずれの場合にも、イントラブロックコピーに関し、予測ブロックは、絶対差の和(SAD)、平方差の和(SSD)、又は他の差分メトリックによって判定されてよいピクセル差分に関して、コード化されるべきブロックと密接に一致すると見なされるブロックであってよく、予測ブロックの識別は、部分整数ピクセル位置に関する値の計算を含んでいてよい。
予測ブロックがイントラ予測に係る同じフレームからのものであるか又はインター予測に係る異なるフレームからのものであるかどうかにかかわらず、ビデオエンコーダ20は、コード化されている現在のビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、ピクセル差分値を形成することによって、残余ビデオブロックを形成してよい。残差ビデオブロックを形成するピクセル差分値は、ルマ成分差分及びクロマ成分差分の両方を含んでいてよい。
イントラ予測処理ユニット46は、前述したように、動き推定ユニット42及び動き補償ユニット44によって実行されるインター予測、又はイントラBCユニット48によって実行されるイントラブロックコピー予測の代わりに、処理対象のビデオブロックをイントラ予測してもよい。特に、イントラ予測処理ユニット46は、現在のブロックを符号化するのに用いるイントラ予測モードを決定してもよい。そのために、イントラ予測処理ユニット46は、例えば別個の符号化パス中に、様々なイントラ予測モードを使用して現在のブロックを符号化してよく、イントラ予測処理ユニット46(又は、幾つかの例では、モード選択ユニット)は、テストされたイントラ予測モードから使用するのに適したイントラ予測モードを選択してよい。イントラ予測処理ユニット46は、ブロックに関して選択されたイントラ予測モードを示す情報をエントロピー符号化ユニット56に提供してよい。エントロピー符号化ユニット56は、選択されたイントラ予測モードを示す情報をビットストリームに符号化してもよい。
予測処理ユニット41がインター予測又はイントラ予測のいずれかを介して現在のビデオブロックに関する予測ブロックを判定した後、加算器50は、現在のビデオブロックから予測ブロックを減算することによって残差ビデオブロックを形成する。残差ブロック内の残差ビデオデータは、1つ以上の変換ユニット(TU)に含まれてもよく、変換処理ユニット52に提供される。変換処理ユニット52は、例えば、離散コサイン変換(DCT)又は概念的に類似した変換等の変換を用いて、残差ビデオデータを残差変換係数に変換する。
変換処理ユニット52は、結果として得られた変換係数を量子化ユニット54に送ってよい。量子化ユニット54は、変換係数を量子化してビットレートを更に低減する。量子化プロセスは、係数の一部又は全てに関連するビット深度を低減してもよい。量子化の程度は、量子化パラメータを調整することによって変更してよい。幾つかの例において、量子化ユニット54は、その後、量子化変換係数を含む行列の走査を実行してよい。或いは、エントロピー符号化ユニット56が走査を実行してよい。
量子化に続いて、エントロピー符号化ユニット56は、例えば、コンテキスト適応可変長コーディング(CAVLC)、コンテキスト適応バイナリ算術コーディング(CABAC)、シンタックスベースのコンテキスト適応バイナリ算術コーディング(SBAC)、確率区間分割エントロピー(PIPE)コーディング、又は別のエントロピー符号化方法又は技術を使用して、量子化変換係数をビデオビットストリームにエントロピー符号化する。符号化されたビットストリームは、その後、ビデオデコーダ30に送信されてもよく、又はビデオデコーダ30への後の送信もしくはビデオデコーダ30による検索のために記憶デバイス32にアーカイブされてもよい。また、エントロピー符号化ユニット56は、コード化されている現在のビデオフレームのための動きベクトル及びその他のシンタックス要素をエントロピー符号化してもよい。
逆量子化ユニット58及び逆変換処理ユニット60は、逆量子化及び逆変換をそれぞれ適用して、他のビデオブロックの予測のための基準ブロックを生成するためのピクセル領域内の残差ビデオブロックを再構成する。前述したように、動き補償ユニット44は、DPB64に記憶されたフレームの1つ以上の基準ブロックから動き補償された予測ブロックを生成してよい。また、動き補償ユニット44は、動き推定に使用するための部分整数ピクセル値を計算するために予測ブロックに1つ以上の補間フィルタを適用してもよい。
加算器62は、再構成された残差ブロックを、動き補償ユニット44によって生成された動き補償された予測ブロックに加算して、DPB64に記憶するための基準ブロックを生成する。次いで、基準ブロックは、後続のビデオフレーム内の他のビデオブロックをインター予測するための予測ブロックとして、イントラBCユニット48、動き推定ユニット42、及び動き補償ユニット44によって使用されてよい。
図3は、本出願の幾つかの実施に係る典型的なビデオデコーダ30を示すブロック図である。ビデオデコーダ30は、ビデオデータメモリ79、エントロピー復号ユニット80、予測処理ユニット81、逆量子化ユニット86、逆変換処理ユニット88、加算器90、及びDPB92を含む。
また、予測処理ユニット81は、動き補償ユニット82、イントラ予測処理ユニット84、及びイントラBCユニット85を更に含む。ビデオデコーダ30は、図2に関連してビデオエンコーダ20に関して前述された符号化プロセスと略逆の復号プロセスを実行してよい。例えば、動き補償ユニット82は、エントロピー復号ユニット80から受信された動きベクトルに基づいて予測データを生成してよく、一方、イントラ予測ユニット84は、エントロピー復号ユニット80から受信されたイントラ予測モードインジケータに基づいて予測データを生成してよい。
幾つかの例において、ビデオデコーダ30のユニットは、本出願の実施態様を実行することを任されてもよい。また、幾つかの例において、本開示の実施態様は、ビデオデコーダ30のユニットのうちの1つ以上の間で分割されてもよい。例えば、イントラBCユニット85は、単独で、又は動き補償ユニット82、イントラ予測処理ユニット84、及びエントロピー復号ユニット80などのビデオデコーダ30の他のユニットと組み合わせて、本出願の実施態様を実行してよい。幾つかの例において、ビデオデコーダ30は、イントラBCユニット85を含まなくてもよく、イントラBCユニット85の機能は、例えば動き補償ユニット82のような予測処理ユニット81のその他の構成要素によって果たされてもよい。
ビデオデータメモリ79は、ビデオデコーダ30の他の構成要素によって復号されるべき符号化ビデオビットストリームなどのビデオデータを記憶してよい。ビデオデータメモリ79に記憶されたビデオデータは、例えば、記憶デバイス32から、カメラなどのローカルビデオソースから、ビデオデータの有線又は無線ネットワーク通信を介して、又は物理データ記憶媒体(例えば、フラッシュドライブ又はハードディスク)にアクセスすることによって取得されてよい。ビデオデータメモリ79は、符号化されたビデオビットストリームからの符号化されたビデオデータを記憶するコーディングピクチャバッファ(CPB)を含んでいてよい。ビデオデコーダ30の復号ピクチャバッファ(DPB)92は、ビデオデコーダ30によってビデオデータを復号する際に用いる基準ビデオデータ(例えば、イントラ又はインター予測コーディングモードで)を記憶する。ビデオデータメモリ79及びDPB92は、シンクロナスDRAM(SDRAM)、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM(登録商標))、又は他のタイプのメモリデバイスを含むダイナミックランダムアクセスメモリ(DRAM)などの様々なメモリデバイスのいずれかによって形成されてもよい。例示を目的として、ビデオデータメモリ79及びDPB92は、図3のビデオデコーダ30の2つの別個の構成要素として示される。しかし、当業者であれば分かるように、ビデオデータメモリ79及びDPB92は、同じメモリデバイス又は別個のメモリデバイスによって提供されてもよい。幾つかの例において、ビデオデータメモリ79は、ビデオデコーダ30の他の構成要素とオンチップであってもよく、それらの構成要素に対してオフチップであってもよい。
復号プロセス中、ビデオデコーダ30は、符号化されたビデオフレームのビデオブロックを表わす符号化されたビデオビットストリーム及び関連するシンタックス要素を受信する。ビデオデコーダ30は、ビデオフレームレベル及び/又はビデオブロックレベルにおいてシンタックス要素を受信してよい。ビデオデコーダ30のエントロピー復号ユニット80は、ビットストリームをエントロピー復号して、量子化された係数、動きベクトル又はイントラ予測モードインジケータ、及びその他のシンタックス要素を生成する。次いで、エントロピー復号ユニット80は、動きベクトル及びその他のシンタックス要素を予測処理ユニット81へ転送する。
ビデオフレームがイントラ予測コード化された(I)フレームとして、又は他のタイプのフレーム内のイントラコード化された予測ブロックに関してコード化されるとき、予測処理ユニット81のイントラ予測処理ユニット84は、信号伝達されたイントラ予測モード及び現在のフレームの事前に復号されたブロックからの基準データに基づいて、現在のビデオフレームのビデオブロックにおける予測データを生成してよい。
ビデオフレームがインター予測コード化された(すなわち、B又はP)フレームとしてコード化されるとき、予測処理ユニット81の動き補償ユニット82は、エントロピー復号ユニット80から受信した動きベクトル及び他のシンタックス要素に基づいて、現在のビデオフレームのビデオブロックのための1つ以上の予測ブロックを生成する。予測ブロックのそれぞれは、基準フレームリストのうちの1つの中の基準フレームから生成されてよい。ビデオデコーダ30は、DPB92に記憶された基準フレームに基づいて、デフォルト構成技術を用いて、基準フレームリスト、リスト0及びリスト1を構成してよい。
幾つかの例では、ビデオブロックが本明細書に記載のイントラBCモードにしたがってコード化されるとき、予測処理ユニット81のイントラBCユニット85は、エントロピー復号ユニット80から受信したブロックベクトル及び他のシンタックス要素に基づいて現在のビデオブロックのための予測ブロックを生成する。予測ブロックは、ビデオエンコーダ20によって規定される現在のビデオブロックと同じピクチャの再構成された領域内にあってよい。
動き補償ユニット82及び/又はイントラBCユニット85は、動きベクトル及び他のシンタックス要素を構文解析することによって現在のビデオフレームのビデオブロックに関する予測情報を判定し、その後、予測情報を使用して、復号されている現在のビデオブロックに関する予測ブロックを生成する。例えば、動き補償ユニット82は、ビデオフレームのビデオブロックをコード化するために使用される予測モード(例えば、イントラ又はインター予測)、インター予測フレームタイプ(例えば、B又はP)、フレームに関する基準フレームリストのうちの1つ以上における構成情報、フレームのそれぞれのインター予測符号化されたビデオブロックにおける動きベクトル、フレームのそれぞれのインター予測コード化されたビデオブロックにおけるインター予測状態、及び現在のビデオフレーム内のビデオブロックを復号するための他の情報を判定するために、受信したシンタックス要素の幾つかを使用する。
同様に、イントラBCユニット85は、受信したシンタックス要素の幾つか、例えばフラグを使用して、現在のビデオブロックがイントラBCモードを使用して予測されたこと、フレームのどのビデオブロックが再構成された領域内にあってDPB92に記憶されるべきかの構成情報、フレームのそれぞれのイントラBC予測されたビデオブロックにおけるブロックベクトル、フレームのそれぞれのイントラBC予測されたビデオブロックにおけるイントラBC予測状態、及び現在のビデオフレーム内のビデオブロックを復号するための他の情報を判定してよい。
また、動き補償ユニット82は、基準ブロックの部分整数ピクセルにおける補間値を計算するために、ビデオブロックの符号化中に、ビデオエンコーダ20によって使用されるような補間フィルタを用いて補間を実行してよい。この場合、動き補償ユニット82は、ビデオエンコーダ20によって使用される補間フィルタを受信されたシンタックス要素から判定し、補間フィルタを使用して予測ブロックを生成してよい。
逆量子化ユニット86は、ビデオフレーム内のそれぞれのビデオブロックごとにビデオエンコーダ20によって計算された同じ量子化パラメータを使用して、ビットストリームに与えられてエントロピー復号ユニット80によってエントロピー復号される量子化された変換係数を逆量子化して、量子化の程度を判定する。逆変換処理ユニット88は、ピクセル領域内の残差ブロックを再構成するために、変換係数に対して、逆変換、例えば逆DCT、逆整数変換、又は概念的に類似した逆変換プロセスを適用する。
動き補償ユニット82又はイントラBCユニット85がベクトル及び他のシンタックス要素に基づいて現在のビデオブロックにおける予測ブロックを生成した後、加算器90は、逆変換処理ユニット88からの残差ブロックと、動き補償ユニット82及びイントラBCユニット85によって生成された対応する予測ブロックとを加算することによって、現在のビデオブロックにおける復号されたビデオブロックを再構成する。復号されたビデオブロックを更に処理するために、加算器90とDPB92との間にインループフィルタ(図示せず)を位置させてもよい。所与のフレーム内の復号されたビデオブロックは、次のビデオブロックの後続の動き補償のために使用される基準フレームを記憶するDPB92に記憶される。また、DPB92又はDPB92とは別個のメモリデバイスは、図1の表示デバイス34などの表示デバイス上に後で提示するために復号されたビデオを記憶してよい。
典型的なビデオコーディングプロセスでは、ビデオシーケンスは、一般に、フレーム又はピクチャの順序付けられたセットを含む。各フレームは、SL、SCb、及びSCrで示される3つのサンプルアレイを含んでいてよい。SLは、ルマサンプルの2次元アレイである。SCbは、Cbクロマサンプルの2次元アレイである。SCrは、Crクロマサンプルの2次元アレイである。他の例では、フレームはモノクロであってもよく、したがって、ルマサンプルの1つの2次元アレイのみを含む。
図4Aに示されるように、ビデオエンコーダ20(又は、より具体的には、分割ユニット45)は、まず最初に、フレームをコーディングツリーユニット(CTU)のセットへ分割することによって、フレームの符号化された表示を生成する。ビデオフレームは、左から右及び上から下へラスタスキャン順に連続して順序付けられた整数個のCTUを含んでいてよい。各CTUは最大の論理コーディングユニットであり、CTUの幅及び高さは、ビデオシーケンス内の全てのCTUが128x128、64x64、32x32、及び16x16のうちの1つである同じサイズを有するように、シーケンスパラメータセット内でビデオエンコーダ20によって信号伝達される。しかし、本出願が必ずしも特定のサイズに限定されないことに留意すべきである。図4Bに示されるように、各CTUは、ルマサンプルの1つのコーディングツリーブロック(CTB)、クロマサンプルの、対応する2つのコーディングツリーブロック、及びコーディングツリーブロックのサンプルをコード化するために使用されるシンタックス要素を含んでいてよい。シンタックス要素は、コード化されたピクセルブロックの異なるタイプのユニットの適切さ、及びインター又はイントラ予測、イントラ予測モード、動きベクトル、及び他のパラメータを含めて、ビデオシーケンスがビデオデコーダ30でどのように再構成され得るかを記述する。モノクロのピクチャ又は3つの別々の色平面を有するピクチャでは、CTUは、単一のコーディングツリーブロックと、コーディングツリーブロックのサンプルをコード化するために使用されるシンタックス要素とを含んでいてよい。コーディングツリーブロックは、サンプルのNxNブロックであってよい。
より良い性能を達成するために、ビデオエンコーダ20は、CTUのコーディングツリーブロックにおいて、二分木分割、四分木分割、又はこれら両方の組み合わせのようなツリー分割を再帰的に実行し、CTUをより小さいコーディングユニット(CU)に分割してよい。図4Cに示されるように、64x64 CTU400は、まず最初に、それぞれが32x32のブロックサイズを有する4つのより小さいCUに分割される。より小さい4つのCUのうち、CU410及びCU420はそれぞれ、ブロックサイズによって16x16の4つのCUに分割される。2つの16x16 CU430及び440はそれぞれ、ブロックサイズによって8x8の4つのCUに更に分割される。図4Dは、図4Cに示すようなCTU400の分割プロセスの最終結果を示す四分木データ構造を示し、四分木の各リーフノードは、32x32から8x8までの範囲のそれぞれのサイズの1つのCUに対応する。図4Bに示されるCTUと同様に、各CUは、同じサイズのフレームのルマサンプルのコーディングブロック(CB)及びクロマサンプルの、対応する2つのコーディングブロックと、コーディングブロックのサンプルをコード化するために使用されるシンタックス要素とを含んでいてよい。モノクロのピクチャ又は3つの別個の色平面を有するピクチャでは、CUは、単一のコーディングブロックと、コーディングブロックのサンプルをコード化するために使用されるシンタックス構造とを含んでいてよい。
幾つかの実施において、ビデオエンコーダ20は、CUのコーディングブロックを、1つ以上のMxN予測ブロック(PB)へ更に分割してよい。予測ブロックが、同じ予測、すなわち、インター予測又はイントラ予測が適用されるサンプルの矩形(正方形又は非正方形)ブロックである。CUの予測ユニット(PU)が、ルマサンプルの予測ブロック、クロマサンプルの、対応する2つの予測ブロック、及び予測ブロックを予測するために使用されるシンタックス要素を含んでいてよい。モノクロのピクチャ又は3つの別個の色平面を有するピクチャでは、PUは、単一の予測ブロックと、予測ブロックを予測するために使用されるシンタックス構造とを含んでいてよい。ビデオエンコーダ20は、CUの各PUの予測ルマ、ルマにおけるCb及びCrブロック、Cb及びCr予測ブロックを生成してよい。
ビデオエンコーダ20は、PUにおける予測ブロックを生成するために、イントラ予測又はインター予測を使用してよい。ビデオエンコーダ20が、PUの予測ブロックを生成するためにイントラ予測を使用する場合、ビデオエンコーダ20は、PUと関連付けられたフレームの復号されたサンプルに基づいてPUの予測ブロックを生成してよい。ビデオエンコーダ20がPUの予測ブロックを生成するためにインター予測を使用する場合、ビデオエンコーダ20は、PUと関連付けられたフレーム以外の1つ以上のフレームの復号されたサンプルに基づいてPUの予測ブロックを生成してよい。
ビデオエンコーダ20が予測ルマ、CUの1つ以上のPUにおけるCb及びCrブロックを生成した後、ビデオエンコーダ20は、CUのルマ残差ブロック内の各サンプルがCUの予測ルマブロックのうちの1つにおけるルマサンプルとCUの元のルマコーディングブロック内の対応するサンプルとの間の差分を示すように、CUの予測ルマブロックをその元のルマコーディングブロックから減算することによってCUにおけるルマ残差ブロックを生成してよい。同様に、ビデオエンコーダ20は、CUにおけるCb残差ブロック及びCr残差ブロックをそれぞれ生成してよく、それにより、CUのCb残差ブロックにおける各サンプルは、CUの予測Cbブロックのうちの1つにおけるCbサンプルとCUの元のCbコーディングブロックにおける対応するサンプルとの間の差分を示し、CUのCr残差ブロックにおける各サンプルは、CUの予測Crブロックのうちの1つにおけるCrサンプルとCUの元のCrコーディングブロックにおける対応するサンプルとの間の差分を示してよい。
更に、図4Cに例示されるように、ビデオエンコーダ20は、CUのルマ、Cb及びCr残差ブロックを、1つ以上のルマ、Cb及びCr変換ブロックへ分解するために、四分木分割を使用してよい。変換ブロックは、同じ変換が適用されるサンプルの矩形(正方形又は非正方形)ブロックである。CUの変換ユニット(TU)は、ルマサンプルの変換ブロックと、クロマサンプルの、対応する2つの変換ブロックと、変換ブロックサンプルを変換するために使用されるシンタックス要素とを含んでいてよい。したがって、CUの各TUは、ルマ変換ブロック、Cb変換ブロック、及びCr変換ブロックと関連付けられてよい。幾つかの例において、TUと関連付けられたルマ変換ブロックは、CUのルマ残差ブロックのサブブロックであってよい。Cb変換ブロックは、CUのCb残差ブロックのサブブロックであってよい。Cr変換ブロックは、CUのCr残差ブロックのサブブロックであってよい。モノクロのピクチャ又は3つの別個の色平面を有するピクチャにおいて、TUは、単一の変換ブロックと、変換ブロックのサンプルを変換するために使用されるシンタックス構造とを含んでいてよい。
ビデオエンコーダ20は、TUにおけるルマ係数ブロックを生成するためにTUのルマ変換ブロックに対して1つ以上の変換を適用してよい。係数ブロックは、変換係数の2次元アレイであってよい。変換係数はスカラー量であってもよい。ビデオエンコーダ20は、TUにおけるCb係数ブロックを生成するためにTUのCb変換ブロックに対して1つ以上の変換を適用してよい。ビデオエンコーダ20は、TUのCr係数ブロックを生成するためにTUのCr変換ブロックに対して1つ以上の変換を適用してよい。
係数ブロック(例えば、ルマ係数ブロック、Cb係数ブロック、又はCr係数ブロック)を生成した後、ビデオエンコーダ20は、係数ブロックを量子化してよい。量子化は、一般に、変換係数を表わすために使用されるデータの量を場合により低減して更なる圧縮をもたらすために変換係数が量子化されるプロセスを指す。ビデオエンコーダ20が係数ブロックを量子化した後、ビデオエンコーダ20は、量子化された変換係数を示すシンタックス要素をエントロピー符号化してよい。例えば、ビデオエンコーダ20は、量子化された変換係数を示すシンタックス要素に対してコンテキスト適応バイナリ算術コーディング(CABAC)を実行してよい。最後に、ビデオエンコーダ20は、コード化されたフレーム及び関連付けられたデータの表示を形成するビットのシーケンスを含むビットストリームを出力してよく、これは記憶デバイス32に保存される又は送信先デバイス14に送信される。
ビデオエンコーダ20によって生成されたビットストリームを受信した後、ビデオデコーダ30は、ビットストリームからシンタックス要素を取得するためにビットストリームを構文解析してよい。ビデオデコーダ30は、ビットストリームから取得されたシンタックス要素に少なくとも部分的に基づいてビデオデータのフレームを再構成してよい。ビデオデータを再構成するプロセスは、一般に、ビデオエンコーダ20によって実行される符号化プロセスと逆である。例えば、ビデオデコーダ30は、現在のCUのTUと関連付けられた残余ブロックを再構成するために現在のCUのTUと関連付けられた係数ブロックに対して逆変換を実行してよい。また、ビデオデコーダ30は、現在のCUのPUにおける予測ブロックのサンプルを現在のCUのTUの変換ブロックの対応するサンプルに加えることによって、現在のCUのコーディングブロックを再構成する。フレームのそれぞれのCUごとにコーディングブロックを再構成した後、ビデオデコーダ30は、フレームを再構成してよい。
前述したように、ビデオコーディングは、主に2つのモード、すなわち、イントラフレーム予測(又はイントラ予測)及びインターフレーム予測(又はインター予測)を使用してビデオ圧縮を達成する。なお、IBCは、イントラフレーム予測又は第3のモードのいずれかと見なすことができる。2つのモード間で、イントラフレーム予測は、基準ビデオブロックから現在のビデオブロックを予測するために動きベクトルを使用するため、イントラフレーム予測よりもコーディング効率に寄与する。
しかし、ビデオデータの詳細を保存するためのビデオデータ撮像技術及びより洗練されたビデオブロックサイズの向上により、現在のフレームにおける動きベクトルを表わすのに必要なデータ量も大幅に増大する。この課題を克服する1つの方法は、空間領域と時間領域の両方における隣接するCUのグループが目的を予測するために同様のビデオデータを有するだけでなく、これらの隣接するCU間の動きベクトルも同様であるという事実から利益を得ることである。したがって、「現在のCUの動きベクトル予測子(MVP)」とも呼ばれるそれらの空間的及び時間的相関を探索することによって、現在のCUの動き情報(例えば、動きベクトル)の近似として空間的に隣接するCU及び/又は時間的にコロケートされたCUの動き情報を使用することが可能である。
図2に関連して前述したように動き推定ユニット42によって判定された現在のCUの実際の動きベクトルをビデオビットストリームに符号化する代わりに、現在のCUの実際の動きベクトルから現在のCUの動きベクトル予測子を減算して、現在のCUの動きベクトル差(MVD)を生成する。
このようにすることで、動き推定ユニット42がフレームのCUごとに判定した動きベクトルをビデオビットストリームに符号化する必要がなくなり、ビデオビットストリームにおける動き情報を表わすために用いるデータ量を大幅に削減することができる。
コードブロックのインターフレーム予測中に基準フレーム内の予測ブロックを選択するプロセスと同様に、現在のCUの空間的に隣接するCU及び/又は時間的にコロケートされたCUと関連付けられた潜在的な候補動きベクトルを使用して現在のCUにおける動きベクトル候補リスト(「マージリスト」としても知られる)を構成した後に動きベクトル候補リストから1つのメンバーを現在のCUの動きベクトル予測子として選択するためにビデオエンコーダ20及びビデオデコーダ30の両方によって一組のルールが採用される必要がある。そうすることによって、動きベクトル候補リスト自体をビデオエンコーダ20とビデオデコーダ30との間で送信する必要がなく、動きベクトル候補リスト内の選択された動きベクトル予測子のインデックスは、ビデオエンコーダ20及びビデオデコーダ30が現在のCUを符号化及び復号するために動きベクトル候補リスト内の同じ動きベクトル予測子を使用するのに十分である。
幾つかの実施において、各インター予測CUは、動きベクトル候補リストを構成するためのインター(「高度動きベクトル予測」(AMVP)とも呼ばれる)、スキップ、及びマージを含む3つの動きベクトル予測モードを有する。各モード下で、以下に説明するアルゴリズムにしたがって、1つ以上の動きベクトル候補を動きベクトル候補リストに追加してよい。最終的に、候補リスト内の動きベクトル候補のうちの1つは、ビデオエンコーダ20によってビデオビットストリームに符号化される又はビデオデコーダ30によってビデオビットストリームから復号されるべきインター予測CUの最良の動きベクトル予測子として使用される。候補リストから最良の動きベクトル予測子を見つけるために、動きベクトル競合(MVC)方式を導入して、動きベクトルの所与の候補セット、すなわち、空間的及び時間的動きベクトル候補を含む動きベクトル候補リストから動きベクトルを選択する。
空間的に隣接する又は時間的にコロケートされたCUから動きベクトル予測候補を導出することに加えて、動きベクトル予測候補を、いわゆる「履歴ベースの動きベクトル予測」(HMVP)テーブルから導出してもよい。HMVPテーブルは所定数の動きベクトル予測子を収容し、各予測子は、CTUの同じ行(又は場合によっては同じCTU)の特定のCUを符号化/復号するために使用されている。これらのCUは空間的/時間的に近接しているため、HMVPテーブル内の動きベクトル予測子のうちの1つがCTUの同じ行内の異なるCUを符号化/復号するために再利用されてよい可能性が高い。したがって、動きベクトル候補リストを構成するプロセスにHMVPテーブルを含めることによって、より高いコード効率を実現することができる。
幾つかの実施において、HMVPテーブルは、固定長(例えば、5)を有し、準先入れ先出し(FIFO)方式で管理される。例えば、動きベクトルは、CUの1つのインターコード化されたブロックを復号するときにCUに関して再構成される。HMVPテーブルは、そのような動きベクトルが後続のCUの動きベクトル予測子であってよいため、再構成された動きベクトルによりオンザフライで更新される。HMVPテーブルを更新する際には、(i)再構成された動きベクトルがHMVPテーブル内の他の既存の動きベクトルと異なる、又は(ii)再構成された動きベクトルがHMVPテーブル内の既存の動きベクトルのうちの1つと同じである、という2つのシナリオが存在する。第1のシナリオでは、HMVPテーブルが一杯でない場合、再構成された動きベクトルは最新のものとしてHMVPテーブルに追加される。HMVPテーブルが既に一杯である場合、HMVPテーブル内の最も古い動きベクトルは、再構成された動きベクトルが最新のものとして追加される前に、最初にHMVPテーブルから除去される必要がある。言い換えれば、この場合のHMVPテーブルはFIFOバッファと同様であり、それにより、FIFOバッファの先頭に位置し、事前にインターコード化された別のブロックと関連付けられた動き情報がバッファの外にシフトされ、その結果、再構成された動きベクトルがHMVPテーブル内の最新のメンバーとしてFIFOバッファの末尾に付加される。第2のシナリオでは、再構成された動きベクトルが最新のものとしてHMVPテーブルに追加される前に、再構成された動きベクトルと実質的に同一であるHMVPテーブル内の既存の動きベクトルがHMVPテーブルから除去される。HMVPテーブルもFIFOバッファの形態で維持される場合、HMVPテーブル内の同一の動きベクトルの後の動きベクトル予測子は、除去された動きベクトルによって残された空間を占有するために1つの要素だけ前方にシフトされ、再構成された動きベクトルは、その後、HMVPテーブル内の最新のメンバーとしてFIFOバッファの末尾に追加される。
HMVPテーブル内の動きベクトルは、AMVP、マージ、スキップなどの異なる予測モード下で動きベクトル候補リストに追加されてよい。現在のブロックに隣接していなくても、HMVPテーブルに記憶された事前にインターコード化されたブロックの動き情報は、より効率的な動きベクトル予測に利用できることが分かってきた。
現在のCUにおける動きベクトルの所与の候補セット内で1つのMVP候補が選択された後、ビデオエンコーダ20は、対応するMVP候補のための1つ以上のシンタックス要素を生成し、ビデオデコーダ30がこれらシンタックス要素を用いてビデオビットストリームからMVP候補を検索できるように、シンタックス要素をビデオビットストリームへと符号化してよい。動きベクトル候補セットを構成するために使用される特定のモードに応じて、異なるモード(例えば、AMVP、マージ、スキップなど)が異なるシンタックス要素のセットを有する。AMVPモードの場合、シンタックス要素は、インター予測インジケータ(リスト0、リスト1、又は双方向予測)、基準インデックス、動きベクトル候補インデックス、動きベクトル予測残差信号などを含む。スキップモード及びマージモードの場合、現在のCUは、コード化されたマージインデックスによって参照される隣接するCUからインター予測インジケータ、基準インデックス、及び動きベクトルを含む他のシンタックス要素を受け継ぐため、マージインデックスのみがビットストリームへと符号化される。スキップコード化されたCUの場合、動きベクトル予測残差信号も省かれる。
図5Aは、本開示の幾つかの実施に係る符号化/復号されるべき現在のCUの空間的に隣接して時間的にコロケートされたブロック位置を示すブロック図である。所与のモードに関して、動きベクトル予測(MW)候補リストは、まず最初に、空間的に左及び上に隣接するブロック位置と関連付けられた動きベクトルの利用可能性、及び時間的にコロケートされたブロック位置と関連付けられた動きベクトルの利用可能性をチェックし、その後、HMVPテーブル内の動きベクトルをチェックすることによって構成される。MVP候補リストを構成するプロセス中に、幾つかの冗長なMVP候補が候補リストから除去され、必要に応じて、候補リストが固定長を有するようにするべくゼロ値の動きベクトルが追加される(異なるモードが異なる固定長を有してもよいことに留意されたい)。MVP候補リストの構成後、ビデオエンコーダ20は、候補リストから最良の動きベクトル予測子を選択し、選択された候補を示す対応するインデックスをビデオビットストリームに符号化することができる。
一例として図5Aを使用し、候補リストが2の固定長を有すると仮定すると、現在のCUにおける動きベクトル予測子(MVP)候補リストは、AMVPモード下で以下のステップを順に実行することによって構成されてよい。
1)空間的に隣接するCUからのMVP候補の選択
a)A0で始まりA1で終わる2つの左の空間的に隣接するCUのうちの1つから最大1つのスケーリングされていないMVP候補を導出する;
b)前のステップで左からのノイズスケーリングされたMVP候補が利用可能でない場合、A0で始まりA1で終わる2つの左の空間的に隣接するCUのうちの1つから最大1つのスケーリングされたMVP候補を導出する;
c)B0で始まって、その後B1を経て、B2で終わる上記3つの空間的に隣接するCUのうちの1つから最大1つのスケーリングされていないMVP候補を導出する;
d)A0もA1も利用できない場合、又はそれらがイントラモードでコード化される場合、B0で始まって、その後にB1を経て、B2で終わる上記3つの空間的に隣接するCUのうちの1つから最大1つのスケーリングされたMVP候補を導出する;
2)前のステップで2つのMVP候補が発見されてそれらが同一である場合、2つの候補のうちの1つをMVP候補リストから除去する;
3)時間的にコロケートされたCUからのMVP候補の選択
a)前のステップの後のMVP候補リストが2つのMVP候補を含まない場合、時間的にコロケートされたCU(例えば、T0)から最大1つのMVP候補を導出する
4)HMVPテーブルからのMVP候補の選択
a)前のステップの後のMVP候補リストが2つのMVP候補を含まない場合、HMVPテーブルから最大2つの履歴ベースのMVPを導出する;及び
5)前のステップの後のMVP候補リストが2つのMVP候補を含まない場合、最大2つのゼロ値MVPをMVP候補リストに加える。
上記で構成されたAMVPモードMVP候補リストには2つの候補しかないので、候補リスト内の2つのMVP候補のうちのどれが現在のCUを復号するために使用されるかを示すために、バイナリフラグのような関連するシンタックス要素がビットストリームに符号化される。
幾つかの実施において、スキップモード下又はマージモード下の現在のCUにおけるMVP候補リストは、上記と同様のステップのセットを順番に実行することによって構成されてもよい。なお、スキップモード又はマージモードにおけるMVP候補リストには、「ペアワイズマージ候補」と呼ばれる特殊なマージ候補も1つ含まれる。ペアワイズマージ候補は、事前に導出された2つのマージモード動きベクトル候補のMVsを平均化することによって生成される。マージMVP候補リストのサイズ(例えば、1~6)は、現在のCUのスライスヘッダで信号伝達される。マージモードのそれぞれのCUごとに、最良のマージ候補のインデックスが、短縮単項2値化(TU)を使用して符号化される。マージインデックスの最初のビンはコンテキストでコード化され、バイパスコーディングが他のビンに関して使用される。
前述したように、履歴ベースのMVPは、空間MVP及び時間MVPの後にAMVPモードMVP候補リスト又はマージMVP候補リストのいずれかに追加されてよい。事前にインターコード化されたCUの動き情報は、HMVPテーブルに記憶され、現在のCUに関するMVP候補として使用される。HMVPテーブルは、符号化/復号プロセス中に維持される。サブブロックインターコード化されないCUが存在するときはいつでも、関連する動きベクトル情報は、新しい候補としてHMVPテーブルの最後のエントリに追加され、一方、HMVPテーブルの最初のエントリに記憶された動きベクトル情報はそこから除去される(HMVPテーブルが既に一杯であり、テーブル内に関連する動きベクトル情報の同一の複製がない場合)。或いは、関連する動きベクトル情報がHMVPテーブルの最後のエントリに追加される前に、関連する動きベクトル情報の同一の複製がテーブルから除去される。
前述したように、イントラブロックコピー(IBC)は、スクリーンコンテンツマテリアルのコーディング効率を大幅に向上させることができる。IBCモードはブロックレベルのコーディングモードとして実施されるため、各CUにとって最適なブロックベクトルを見つけるためにブロックマッチング(BM)がビデオエンコーダ20で実行される。ここで、ブロックベクトルは、現在のブロックから現在のピクチャ内で事前に再構成されている基準ブロックへの変位を示すために使用される。IBCコード化されたCUは、イントラ又はインター予測モード以外の第3の予測モードとして扱われる。
CUレベルでは、IBCモードは、以下のようにIBC AMVPモード又はIBCスキップマージモードとして信号伝達されてよい。
-IBC AMVPモード:CUの実際のブロックベクトルとCUのブロックベクトル候補から選択されたCUのブロックベクトル予測子との間のブロックベクトル差分(BVD)は、動きベクトル差分が上記のAMVPモードで符号化されるのと同じ方法で符号化される。ブロックベクトル予測方法は、2つのブロックベクトル候補を予測子として使用し、1つは左隣からのものであり、もう1つは上隣からのものである(IBCコード化されている場合)。いずれかの隣が利用できない場合、デフォルトのブロックベクトルがブロックベクトル予測子として使用される。バイナリフラグが、ブロックベクトル予測子インデックスを示すために信号伝達される。IBC AMVP候補リストは、空間及びHMVP候補から成る。
-IBCスキップ/マージモード:マージ候補インデックスを使用して、隣接するIBCコーディングブロックからのマージ候補リスト(「マージリスト」とも呼ばれる)内のどのブロックベクトル候補が現在のブロックにおけるブロックベクトルを予測するために使用されるかを示す。IBCマージ候補リストは、空間、HMVP、及びペアワイズ候補から成る。
最先端のコーディング規格によって採用されるコーディング効率を向上させる別の手法は、例えばマルチコアプロセッサを使用してビデオ符号化/復号プロセスに並列処理を導入することである。例えば、波面並列処理(WPP)は、複数のスレッドを使用して複数の行CTUを並列に符号化又は復号する機能としてHEVCに既に導入されている。
図5Bは、本開示の幾つかの実施に係る波面並列処理(WPP)を使用するピクチャのCTUの複数の行のマルチスレッド符号化を示すブロック図である。WPPが有効にされると、波面方式でCTUの複数の行を並列に処理することが可能であり、その場合、2つの隣接する波面の開始間に2つのCTUの遅延があってよい。例えば、WPPを使用してピクチャ500をコード化するために、ビデオエンコーダ20及びビデオデコーダ30などのビデオコーダは、ピクチャ500のコーディングツリーユニット(CTU)を複数の波面に分割してよく、各波面はピクチャにおけるCTUのそれぞれの行に対応する。ビデオコーダは、例えば、第1のコーダコア又はスレッドを使用して、上端波面のコーディングを開始してよい。ビデオコーダが上端波面の2つ以上のCTUをコード化した後、ビデオコーダは、例えば、第2の並列コーダコア又はスレッドを使用して、上端波面のコーディングと並列に、第2-上端波面のコーディングを開始してよい。ビデオコーダが第2-上端波面の2つ以上のCTUをコード化した後、ビデオコーダは、例えば、第3の並列コーダコア又はスレッドを使用して、より高い波面のコーディングと並列に第3-上端波面のコーディングを開始してよい。このパターンは、ピクチャ500における波面を下って継続してよい。本開示では、ビデオコーダがWPPを使用して同時にコーディングしているCTUのセットが、「CTUグループ」と呼ばれる。したがって、ビデオコーダがWPPを使用してピクチャをコード化するとき、CTUグループの各CTUは、ピクチャの固有の波面に属していてよく、CTUは、ピクチャのCTUの少なくとも2列だけ波面の上方のそれぞれのCTUからオフセットされていてよい。
ビデオコーダは、上記の波面の最初の2つのブロックのデータ、並びに現在の波面の最初のコードブロックを含むスライスにおけるスライスヘッダの1つ以上の要素に基づいて、現在の波面のコンテキスト適応型バイナリ算術コーディング(CABAC)を実行するために現在の波面におけるコンテキストを初期化してよい。ビデオコーダは、後続のCTU行の上方のCTU行の2つのCTUをコード化した後、コンテキスト状態を使用して後続の波面(又はCTU行)のCABAC初期化を実行してよい。言い換えれば、現在の波面のコーディングを開始する前に、ビデオコーダ(又はより具体的には、ビデオコーダのスレッド)は、現在の波面がピクチャのCTUの上端の行ではないと仮定して、現在の波面の上方の波面の少なくとも2つのブロックをコード化してよい。その後、ビデオコーダは、現在の波面の上方の波面の少なくとも2つのブロックをコード化した後に現在の波面のCABACコンテキストを初期化してよい。この例では、ピクチャ500の各CTU行が、分離された分割であり、ピクチャ500内のCTU行の数を並列に符号化できるように関連するスレッド(WPPスレッド1、WPPスレッド2、...)を有する。
HMVPテーブルの現在の実装は、事前に再構成された動きベクトルを記憶するためにグローバル動きベクトル(MV)バッファを使用するため、このHMVPテーブルは、図5Bに関連して前述したWPP対応並列符号化方式では実装され得ない。特に、グローバルMVバッファがビデオコーダの符号化/復号プロセスの全てのスレッドによって共有されるという事実は、第1のWPPスレッド(すなわち、第1のCTU行)の最後のCTU(すなわち、右端のCTU)からのHMVPテーブル更新が完了するのをこれらのWPPスレッドが待たなければならないため、第1のWPPスレッド(すなわち、WPPスレッド1)の後のWPPスレッドが開始されるのを妨げる。
この問題を克服するために、WPPがビデオコーダで有効にされるときに、CTU行の各波面が対応するWPPスレッドによって処理されているCTU行に対応するHMVPテーブルを記憶するための独自のバッファを有するように、WPPスレッドによって共有されるグローバルMVバッファを複数のCTU行専用バッファで置き換えることが提案される。独自のHMVPテーブルを有する各CTU行が、CTU行の最初のCUをコード化する前にHMVPテーブルをリセットすることに相当することに留意されたい。HMVPテーブルリセットは、別のCTU行のコーディングから生じるHMVPテーブル内の全ての動きベクトルを一掃することである。一実施態様において、リセット操作は、HMVPテーブル内の利用可能な動きベクトル予測子のサイズを0に設定することである。更に別の実施において、リセット操作は、HMVPテーブル内の全てのエントリの基準インデックスを-1などの無効値に設定することでありってよい。そうすることにより、AMVP、マージ、及びスキップの3つのモードのうちのいずれであるかにかかわらず、特定の波面内の現在のCTUにおけるMVP候補リストの構成は、特定の波面を処理するWPPスレッドと関連付けられたHMVPテーブルに依存する。前述した2-CTU遅延以外の異なる波面間には相互依存性はなく、異なる波面に関連する動きベクトル候補リストの構成を、図5Bに示されるWPPプロセスのように並行して進めてよい。言い換えれば、特定の波面の処理の開始時に、HMVPテーブルは、別のWPPスレッドによるCTUの別の波面のコーディングに影響を与えることなく空になるようにリセットされる。場合によっては、それぞれの個々のCTUのコーディングの前にHMVPテーブルを空になるようにリセットしてよい。この場合、HMVPテーブル内の動きベクトルは特定のCTUに制限され、また、おそらく、HMVPテーブル内の動きベクトルが特定のCTU内の現在のCUの動きベクトルとして選択される可能性が高くなる。
幾つかの例では、広角イントラ方向を伴うイントラ予測モードが本明細書で更に説明される。CUのサンプルを予測するために1つの現在のCU(すなわち、上又は左)に隣接する事前に復号されたサンプルのセットが使用される。しかしながら、自然なビデオ(特に高解像度、例えば4Kのビデオコンテンツの場合)に存在するより細かいエッジ方向を撮像するために、角度イントラモードの数は、HEVCにおける33からVVCにおける93に拡張される。角度方向に加えて、平面モード(境界から導出される水平及び垂直勾配を伴う緩やかに変化する表面を想定する)及びDCモード(平面を想定する)も適用される。図5Cは、本開示の幾つかの実施に係るVVC規格で規定されているイントラモードを示すブロック図である。図5Dは、本開示の幾つかの実施に係るイントラ予測のための基準として現在のブロックの上及び左に隣接する再構成されたサンプルのセットを示すブロック図である。全てのイントラモード(すなわち、平面方向、DC方向、及び角度方向)は、イントラ予測のための基準として予測ブロックの上及び左に隣接する再構成されたサンプルのセットを利用する。しかしながら、再構成されたサンプルの最も近い行/列(すなわち、図5Dのライン0)のみが基準としてある方法とは異なる幾つかの実施形態では、2つの更なる行/列(例えば、図5Dのライン1及びライン3)がイントラ予測に使用されるマルチ基準ライン(MRL)が導入される。選択された基準行/列のインデックスは、エンコーダからデコーダに信号伝達される。幾つかの例では、最も近くない行/列が選択されると、平面モード及びDCモードは、現在のブロックを予測するために使用され得るイントラモードのセットから除外される。
幾つかの例において、デコーダ側モード導出(DIMD)モードでは、イントラ予測モードは、もはやエンコーダで検索されず、むしろ勾配解析により事前に符号化された隣接するピクセルを使用して導出される。DIMDは、単純なフラグを用いて、イントラコード化されたブロックのために信号伝達される。デコーダにおいて、DIMDフラグが真である場合、イントラ予測モードは、同じ事前に符号化された隣接するピクセルを使用して再構成プロセスにおいて導出される。そうでない場合、イントラ予測モードは、ビットストリームから古典的イントラコーディングモードのものとして構文解析される。
ブロックにおけるイントラ予測モードを導出するために、隣接するピクセルのセットを最初に選択する必要があり、それに対して勾配解析が実行される。正規化の目的のために、これらのピクセルは、復号/再構成されたピクセルのプール内にあるべきであり、図5Eは、本開示の幾つかの実施に係る勾配解析が実行される選択されたピクセルのセットを示すブロック図である。図5Eに示されるように、テンプレートが、現在のブロックを左にTピクセルだけ、上方に(上端で)Tピクセルだけ取り囲むことによって選択される。次に、テンプレートのピクセルに対して勾配解析が行なわれる。これにより、現在のブロックと同一である可能性が高いと想定されるテンプレートの主角度方向を判定することができる。この仮定は、この方法の中心的な前提である。したがって、単純な3x3 Sobel勾配フィルタが使用され、このフィルタはテンプレートと畳み込まれる以下の行列によって規定される。
テンプレートのそれぞれのピクセルごとに、これらの2つの行列のそれぞれは、現在のピクセルを中心とし、8つの直接に隣接するものから構成される3x3窓とポイントごとに乗算され、結果が合計される。したがって、水平方向及び垂直方向のそれぞれにおいて、現在のピクセルにおける勾配に対応する2つの値Gx(Mxとの乗算による値)及びGy(Myとの乗算による値)が得られる。
図5Fは、本開示の幾つかの実施に係る(図5Eに示すような)テンプレートを用いた3x3 Sobel勾配フィルタの畳み込みプロセスを示すブロック図である。黒ピクセルが現在のピクセルである。白(及び黒)のピクセルは、勾配解析が可能なピクセルである。斜線勾配を伴うピクセルは、幾つかの隣接するものがないために勾配解析が不可能なピクセルである。一点鎖線のピクセルは、考慮されるテンプレートの外側の利用可能な(再構成された)ピクセルであり、これは赤ピクセルの勾配解析に使用される。(例えば、ブロックがピクチャの境界に近すぎるために)一点鎖線のピクセルが利用できない場合、この一点鎖線のピクセルを使用する白ピクセルの勾配解析は実行されない。それぞれの白ピクセルごとに、勾配の強度(G)及び向き(O)がGx及びGyをそのまま使用して計算される。
その後、勾配の向きは、ヒストグラムにインデックスを付けるために使用されるイントラ角度予測モードに変換される。0に初期化されると、イントラ角度モードでのヒストグラム値がGだけ増大される。テンプレート内の全ての赤ピクセルが処理された時点で、ヒストグラムは、それぞれのイントラ角度モードごとに勾配強度の累積値を含む。ヒストグラムの中で最も高いピークを示すモードが、現在のブロックにおけるイントラ予測モードとして選択される。ヒストグラムにおける最大値が0であれば(勾配解析を行なうことができなかった又はテンプレートを構成する領域が平坦であることを意味する)、現在のブロックにおけるイントラ予測モードとしてDCモードが選択される。
図6A及び図6Bはそれぞれ、本開示の幾つかの実施に係る、事前に再構成された典型的なルマブロック602及び対応する再構成されるべき典型的なクロマブロック620をそれぞれ示すブロック図である。この例では、ビデオコーディングプロセス中に、事前に再構成されたルマブロック602のルマサンプル(例えば、ルマサンプル604を含む)、上隣ルマグループ606のルマサンプル(例えば、ルマサンプル608を含む)、及び左隣ルマグループ610のルマサンプル(例えば、ルマサンプル615を含む)が予測されている。クロマブロック620のクロマサンプル(例えば、クロマサンプル622を含む)が予測されるようになっており、一方、上隣クロマグループ624のクロマサンプル(例えば、クロマサンプル626を含む)及び左隣クロマグループ628のクロマサンプル(例えば、クロマサンプル630を含む)は、ビデオコーディングプロセス中に事前に再構成されている。幾つかの実施形態では、ルマブロック602及びクロマブロック620が異なるサイズ及び形状を成す場合、クロマブロック620のクロマサンプルは、上隣クロマグループ624のクロマサンプル(例えば、クロマサンプル626を含む)及び左隣クロマグループ628のクロマサンプル(例えば、クロマサンプル630を含む)とともに、ルマブロック602の、事前に再構成された対応するダウンサンプリングされたルマサンプル(例えば、ダウンサンプリングされたルマサンプル605)にマルチモデル線形モデル(MMLM)を適用することによって予測されてよい。MMLMの導出及び適用は、図7A~図7Dに関連して以下に与えられる。
幾つかの実施形態において、事前に再構成されたルマブロック602及びクロマブロック620はそれぞれ、ビデオフレームの一部の異なる成分を表わす。例えば、YCbCr色空間では、画像がルマ成分(Y)、青差クロマ成分(Cb)、赤差クロマ成分(Cr)で表わされる。事前に再構成されたルマブロック602は、ビデオフレームの一部のルマ成分(すなわち、輝度)を表わし、クロマブロック620は、ビデオフレームの同じ部分のクロマ成分(すなわち、色)を表わす。事前に再構成されたルマブロック602のルマサンプル(例えば、ルマサンプル604)は、ビデオフレームの特定のピクセルにおける輝度を表わすルマ値を有し、クロマサンプル(例えば、クロマサンプル622)は、ビデオフレームの特定のピクセルにおける色を表わすクロマ値を有する。
幾つかの実施形態において、事前に再構成されたルマブロック602は、ブロック幅にわたって2M個のルマサンプルを伴うとともにブロック高さにわたって2N個のルマサンプルを伴う2Mx2Nブロックである。例えば、「M」及び「N」は、同じ値(例えば、事前に再構成されたルマブロック602が正方形ブロックである)又は異なる値(例えば、事前に再構成されたルマブロック602が非正方形ブロックである)となってよい。
クロマサブサンプリングは、人間の視覚系が輝度差よりも色差に敏感でないため、一般的な圧縮技術である。結果として、事前に再構成されたルマブロック602及びクロマブロック620は、ビデオフレームの同じ部分を表わしていてよいが、異なる解像度で符号化される。例えば、ビデオフレームは、ルマ情報よりもクロマ情報を低解像度で符号化するように、クロマサブサンプリング方式(例えば、4:2:0又は4:2:2)を使用して符号化してよい。図6A及び図6Bに示されるように、事前に再構成されたルマブロック602は、2M2Nの解像度で符号化されるが、クロマブロック620は、MxNのより小さい解像度で符号化される。実際には、クロマブロック620は、2Mx2N(例えば、4:4:4フルサンプリング)、2MxN(例えば、4:4:0サブサンプリング)、Mx2N(例えば、4:2:2サブサンプリング)、及び1/2Mx2N(例えば、4:1:1サブサンプリング)などの他の解像度を有することができる。
事前に再構成されたルマブロック602は、上隣ルマグループ606及び左隣ルマグループ610の隣にある。上隣ルマグループ606及び左隣ルマグループ610のサイズは、明示的に信号伝達され、又は事前に再構成されたルマブロック602のサイズに依存することができる。例えば、上隣ルマグループ606は、2Mサンプルの幅(例えば、事前に再構成されたルマブロック602の幅と同じ)又は4Mサンプルの幅(例えば、事前に再構成されたルマブロック602の幅の倍)及び2サンプルの高さを有することができる。左隣ルマグループ610は、2N又は4Nサンプルの高さで、2サンプルの幅を有することができる。幾つかの実施形態において、上隣ルマグループ606及び左隣ルマグループ610はそれぞれ、再構成された同じビデオフレームの別の1つ又は複数のルマブロックの一部である。
クロマブロック620は、上隣クロマグループ624及び左隣グループ628の隣にある。上隣クロマグループ624及び左隣グループ628のサイズは、明示的に信号伝達される又はクロマブロック620のサイズに依存することができる。例えば、上隣クロマグループ624は、1xM又は1x2Mのサイズを有することができ、左隣クロマグループ628は、Nx1又は2Nx1のサイズを有することができる。
幾つかの実施形態において、クロマ値(例えば、クロマブロック620内のクロマサンプルのクロマ値)は、再構成された対応するルマサンプルのルマ値(例えば、事前に再構成されたルマブロック602内のルマサンプルのルマ値)に基づいて予測することができる。例えば、コーディングユニットのルマ値と対応するクロマ値との間に線形又は準線形関係が存在するという仮定の下で、ビデオコーダは、MMLMを使用して再構成された対応するルマ値に基づいてクロマ値を予測することができる。このようにすることにより、ビデオコーダは、クロマ値を符号化し、符号化されたクロマ値を送信し、及び符号化されたクロマ値を復号するためのかなりの時間及び帯域幅を節約することができる。MMLMを使用してルマサンプルの既知のルマ値からクロマサンプルの未知のクロマ値を予測するために、ビデオコーダは、(1)クロマサンプルの既知のクロマ値とコーディングブロック内の対応するルマサンプルの既知のルマ値との間の線形関係のグループ(例えば、2つ以上)を導出し(各線形関係は、特定の範囲内のルマ値及び/又はクロマ値に適用可能である)、(2)事前に再構成された対応するルマサンプルの既知のルマ値に適切な線形関係を適用することによってクロマサンプルの未知のクロマ値を予測する。ビデオコーダがMMLMを使用して事前に再構成された対応するルマサンプルの既知のルマ値から未知のクロマ値を予測する方法の詳細については、図7A~図7D、図8、及び関連する説明を参照されたい。
幾つかの実施形態では、ルマブロックとクロマブロックとは異なる解像度を有する(例えば、クロマブロックがサブサンプリングされていてもよい)ため、ビデオコーダは、それぞれのクロマサンプルに一意的に対応するダウンサンプリングされたルマサンプル(例えば、ダウンサンプリングされたルマサンプル605,609及び613)を生成するためにルマサンプルに対してダウンサンプリングを最初に実行する。幾つかの実施形態では、MMLMを使用してクロマサンプルの未知のクロマ値を予測するとき、ビデオコーダは、実際のルマサンプルの既知のルマ値の代わりに、ダウンサンプリングされたルマサンプル(例えば、そのそれぞれは、それぞれのクロマサンプルに一意的に対応する)の既知のルマ値に線形関係を適用する。幾つかの実施形態では、ビデオフレームの高さ方向及び幅方向の両方における6つの隣接する再構成されたルマサンプルが、例えば、6タップダウンサンプリングなどを含む当技術分野で知られている重み付け平均方式を使用して、ダウンサンプリングされたクロマサンプルを生成するために使用される。例えば、上隣ルマグループ内の領域611内の6つの再構成されたルマサンプル(図では小さいボックスでそれぞれ表わされる)は、対応するそれらのルマ値の加重平均によってダウンサンプリングされたクロマサンプル609を生成するために使用され、また、事前に再構成されたルマブロック602内の領域607内の6つの再構成されたルマサンプル(図では小さいボックスでそれぞれ表わされる)は、ダウンサンプリングされたクロマサンプル605を生成するために使用される。
例えば、2つの線形関係を有するMMLMの適用は、以下のように表わすことができる。
式中、pred(i,j)、pred(i,j)は、コーディングユニット内のクロマサンプル(例えば、クロマサンプル622)の予測されたクロマ値を表わし、rec’(i,j)は、同じコーディングユニットの、事前に再構成された対応するルマサンプルの既知のルマ値を表わす。幾つかの実施形態において、rec’(i,j)は、事前に再構成されたルマサンプルに基づいて判定される、同じコーディングユニットのダウンサンプリングされたルマサンプル(例えば、ダウンサンプリングされたルマサンプル605)の既知のルマ値を表わす(例えば、6タップダウンサンプリング)。閾値は、MMLMの複数の線形関係のうちのどれが特定のルマ値に使用されるべきかを判定する閾値を表わす。2つの線形関係を含むMMLMの導出(例えば、線形モデルパラメータα,α,β,β、Thresholdの導出)については、図7A~図7D、図8、及び関連する説明を参照されたい。
別の例では、3つの線形関係を有するMMLMの適用は、以下のように表わすことができる。
式2は、式2のMMLMが、3つの別々の範囲を決める2つの閾値を有する3つの異なる線形関係を含むという点で、式1とは異なる。3つの線形関係を含むMMLMの導出(例えば、パラメータ(α,α,α,β,β,β,Threshold,Threshold)の導出)については、図7A~図7D、図8、及び関連する説明を参照されたい。
図7A~図7Dは、本開示の幾つかの実施に係る、マルチモデル線形モデル(MMLM)を導出するとともにMMLMを適用してコーディングユニットのクロマサンプルの未知のクロマ値を予測する技術をビデオコーダが実施するプロセスの例を示すプロット図である。便宜上、このプロセスはビデオコーダによって実行されるものとして説明される。それぞれのプロットごとに、水平軸はルマサンプルのルマ値を表わし、垂直軸はクロマサンプルのクロマ値を表わし、プロット内の各データ点はクロマサンプルと対応するルマサンプルとの対を表わす。幾つかの実施形態において、対応するルマサンプルは、ダウンサンプリングされたルマサンプルである。例えば、プロット上のデータ点は、上隣クロマグループ624(図6B)内の事前に再構成されたクロマサンプル(例えば、図6Bのクロマサンプル626)と、上隣ルマグループ606(図6A)内の、ダウンサンプリングされた対応するルマサンプル(例えば、図6Aのダウンサンプリングされたルマサンプル613)との対を表わしていてよい。
図7Aは、データ点の第1のグループ704を伴うプロット702aを示し、各データ点(例えば、基準サンプル対としても知られている)はプロット上にある。702aは、事前に再構成されたクロマサンプル(例えば、図6Bのクロマサンプル626)と、事前に再構成された対応するルマサンプル(例えば、図6Aのダウンサンプリングされたルマサンプル613)との対を表わす。事前に再構成されたクロマサンプル及びそれらに対応するルマサンプルは「基準クロマサンプル」及び「基準ルマサンプル」としてそれぞれ知られている。幾つかの実施形態において、ビデオコーダは、再構成されたルマサンプルの隣接するグループ(例えば、上隣ルマグループ606、左隣ルマグループ610、又はその両方)から現在のルマコーディングブロックにおける基準ルマサンプルを選択するとともに、再構成されたクロマサンプルの隣接するグループ(例えば、上隣クロマグループ624、左隣クロマグループ628、又はその両方)から基準クロマサンプルを選択する。基準ルマサンプル及びそれらに対応する基準クロマサンプルは、式1における(α,α,β,β,Threshold)パラメータ又は式2における(α,α,α,β,β,β,Threshold,Threshold)パラメータなどのMMLMにおける線形モデルパラメータを導出するために使用される。
(「MMLM_Aモード」としても知られている)幾つかの実施形態において、ビデオコーダは、上隣ルマグループからのルマ基準サンプル(例えば、図6Aの上隣ルマグループ606からダウンサンプリングされたルマサンプル)及び対応する上隣クロマグループ(例えば、図6Bの上隣クロマグループ624)からのクロマ基準サンプルを選択する。左隣グループ(例えば、図6Aの左隣ルマグループ610)からのダウンサンプリングされたルマサンプル及び左隣クロマグループ(例えば、図6Bの左隣クロマグループ628)からのそれらに対応するクロマサンプルは無視される。例えば、図6A及び図6Bにおいて、ビデオコーダは、M個のダウンサンプリングされたルマサンプル(例えば、再構成されたルマブロック602の行ごとのダウンサンプリングされたルマサンプルの数)及びM個のクロマ基準サンプル(例えば、クロマブロック620の行ごとのクロマ基準サンプルの数)を基準ルマサンプル及び基準クロマサンプルとして、又は2M個のダウンサンプリングされたルマサンプル(例えば、再構成されたルマブロック602の行ごとのダウンサンプリングされたルマサンプルの数の倍)及び2M個のクロマサンプル(例えば、クロマブロック620の行ごとのクロマサンプルの数の倍)を基準ルマサンプル及び基準クロマサンプルとして選択してよい。一般に、使用される基準ルマサンプル及び基準クロマサンプルが多いほど、ルマ値に基づくクロマ値の予測をより正確に(例えば、MMLMパラメータの判定をより正確に)、ただしより高い計算コストで、行なうことができる。
(「MMLM_Lモード」としても知られている)幾つかの実施形態において、ビデオコーダは、左隣ルマグループ(図6Aの左隣ルマグループ610)からのルマ基準サンプル及び対応する左隣クロマグループ(図6Bの左隣クロマグループ628)からのクロマ基準サンプルを選択する。上隣ルマグループ(例えば、図6Aの上隣ルマグループ606)からダウンサンプリングされたルマサンプル及び上隣クロマグループ(例えば、図6Bの上隣クロマグループ628)からのそれらに対応するクロマサンプルは無視される。例えば、図6A及び図6Bにおいて、ビデオコーダは、N個のダウンサンプリングされたルマサンプル(例えば、再構成されたルマブロック602の列ごとのダウンサンプリングされたルマサンプルの数)及びN個のクロマ基準サンプル(例えば、クロマブロック620の列ごとのクロマ基準サンプルの数)を基準ルマサンプル及び基準クロマサンプルとして、又は2N個のダウンサンプリングされたルマサンプル(例えば、再構成されたルマブロック602の列ごとのダウンサンプリングされたルマサンプルの数の倍)及び2M個のクロマサンプル(例えば、クロマブロック620の列ごとのクロマサンプルの数の倍)を基準ルマサンプル及び基準クロマサンプルとして選択してよい。
幾つかの実施形態において、ビデオコーダは、MMLM_LモードとMMLM_Aモードの両方を使用してルマ及びクロマ基準サンプルを選択する。
図7Bは、データ点の第2のグループ706を伴うプロット702bを示す。ビデオコーダは、MMLMパラメータを導出するためにデータ点の第2のグループ706を使用する。幾つかの実施形態において、データ点の第2のグループ706は、データ点の第1のグループ704のサブセットである。ルマ基準サンプル及びクロマ基準サンプルの数を減らすことにより、MMLMパラメータを導出する際の計算の複雑さが低減される。ビデオコーダは、以下の方法でデータ点の第1のグループ704からデータ点の第2のグループ706を判定する。
幾つかの実施形態において、データ点の第2のグループ706内のデータ点(例えば、基準サンプル対としても知られている)の数は、クロマサンプルが予測されるべきクロマブロック(例えば、図6Bのクロマブロック620)のサイズ及び/又は形状に基づいて所定の値に制限される。以下の表1には4つの異なる例(方法1、2、3、及び4としてラベル付けされる)が示されており、ここで、nは、現在のコーディングユニットのクロマブロックのサイズ及び形状に応じて、2、4、及び/又は8であってよい。
例えば、クロマブロックが4x8又は8x4のサイズを有するとともに、ビデオコーダが方法1を選択する場合、データ点の第2のグループ706内のデータ点の数は4に制限される。別の例では、クロマブロックが32x32のサイズを有するとともに、ビデオコーダが方法2を選択する場合、データ点の第2のグループ706内のデータ点の数は8に制限される。
幾つかの実施形態において、MMLMは、所定の閾値以上のブロックサイズを有するブロックにのみ適用可能である。例えば、閾値よりも小さいサイズのクロマブロックは、MMLMを用いて予測されるようになっていない。一例では、MMLMを導出するために使用される基準サンプル対の最大数が8に制限され、ブロックサイズ閾値は8x8又は16x16に制限される。その結果、MMLMを使用して十分に関連付けられた基準サンプル対を有さない場合があるより小さいクロマブロックは予測されないようになっている。
幾つかの実施形態において、ビデオコーダは、固定ダウンサンプリングによってデータ点の第2のグループ706内の基準サンプル対を選択する。例えば、ビデオコーダは、MMLMパラメータ導出のために垂直方向(例えば、MMLM_Lモード)又は水平方向(例えば、MMLM_Aモード)の特定のインデックス付けされた位置(例えば、奇数インデックス位置)におけるルマ又はクロマ基準サンプルが選択される固定ダウンサンプリング方法を使用することができる。
幾つかの実施形態において、ビデオコーダは、適応ダウンサンプリングによってデータ点の第2のグループ706内の基準サンプル対を選択する。例えば、ビデオコーダは、(1)所定のサンプリング間隔、及び(2)垂直方向又は水平方向の開始オフセットにしたがって基準サンプルが選択される適応ダウンサンプリング方法を選択してよい。より具体的には、ビデオコーダは、(例えば、データ点の第1のグループ704における)元の基準サンプル対の数及び(例えば、データ点の第2のグループ706における)低減された基準サンプル対の数に基づいて以下の方法でサンプリング間隔及び開始オフセットを判定することができる。
1.元の基準サンプル対の数を判定する:L(例えば、16)
2.低減された基準サンプル対の数を判定する:N(例えば、8)
3.サンプリング間隔を判定する:Δ=L/N(例えば、2)
4.開始オフセットを判定する:オフセット=Δ/2(例えば、1)
ビデオコーダは、所定の開始位置(例えば、第2の参照サンプル)+開始オフセットの(例えば、隣接するルマ又はクロマグループの)位置で第1の基準サンプル(例えば、ルマサンプル又はクロマサンプル)を選択する。他の基準サンプルの位置は、前の点からの位置+サンプリング間隔である。
図7Cは、ルマ値に基づいてルマ閾値710によって2つのサブグループに分離されたデータ点の第2のグループ708を伴うプロット702cを示し、第1のサブグループは最小基準ルマ値712からルマ閾値710まで及び、第2のサブグループはルマ閾値から最大ルマ値712まで及ぶ。各サブグループ内で、ビデオコーダは、その後、ルマ値をクロマ値にマッピングするMMLMのそれぞれの線形モデルを導出する。
幾つかの実施形態において、ビデオコーダは、左隣ルマグループ(例えば、図6Aの左隣ルマグループ610)内の全てのルマサンプル(又はダウンサンプリングされたルマサンプル)を選択し、他の全てのルマサンプルを無視することによって、ルマ閾値710を計算する。その後、ビデオコーダは、選択されたルマサンプルに対して、平均ルマ値、中央ルマ値、モードルマ値を判定するなどの又はカスタム定義式によって動作を実行する。
幾つかの実施形態において、ビデオコーダは、上隣ルマグループ(例えば、図6Aの上隣ルマグループ606)内の全てのルマサンプル(又はダウンサンプリングされたルマサンプル)を選択し、他の全てのルマサンプルを無視することによって、ルマ閾値710を計算する。その後、ビデオコーダは、選択されたルマサンプルに対して、平均ルマ値、中央ルマ値、モードルマ値を判定するなどの又はカスタム定義式によって動作を実行する。
幾つかの実施形態において、ビデオコーダは、上隣及び左隣ルマグループ(例えば、図6Aの左隣ルマグループ610及び上隣ルマグループ606)の両方の全てのルマサンプル(又はダウンサンプリングされたルマサンプル)を選択し、他の全てのルマサンプルを無視することによって、ルマ閾値710を計算する。その後、ビデオコーダは、選択されたルマサンプルに対して、平均ルマ値、中央ルマ値、モードルマ値を判定するなどの又はカスタム定義式によって動作を実行する。
幾つかの実施形態において、ビデオコーダは、現在のコーディングユニット(例えば、図6Aのルマブロック602)内の全てのルマサンプル(又はダウンサンプリングされたルマサンプル)を選択し、他の全てのルマサンプルを無視することによって、ルマ閾値710を計算する。その後、ビデオコーダは、選択されたルマサンプルに対して、平均ルマ値、中央ルマ値、モードルマ値を判定するなどの又はカスタム定義式によって動作を実行する。
幾つかの実施形態において、ビデオコーダは、現在のコーディングユニット(例えば、図6Aのルマブロック602)内の全てのルマサンプル(又はダウンサンプリングされたルマサンプル)並びに上隣及び左隣グループ(例えば、図6Aの左隣ルマグループ610及び上隣ルマグループ606)を選択することによって、ルマ閾値710を計算する。その後、ビデオコーダは、選択されたルマサンプルに対して、平均ルマ値、中央ルマ値、モードルマ値を判定するなどの又はカスタム定義式によって動作を実行する。
幾つかの実施形態において、カスタム定義式は、最小及び最大ルマ値(Lmin及びLmax)を見つけることと、
を実行することとを含み、ここで、Nは2などの所定値である。
同様に、ビデオコーダは、クロマ隣接グループに上記の技術を適用することによってクロマ閾値711を判定することができる。
プロット702cは、ルマ値を2つの別々のグループに分割するただ1つのルマ閾値710を含む(例えば、MMLMのために導出されるべき2つの線形関係がある)が、実際のやり方では、ルマ値を3つ以上の別々のグループに分割する複数のルマ閾値が存在してよい(例えば、MMLMのために導出されるべき3つ以上の線形関係が存在する)。例えば、MMLMに3つの線形関係がある場合、ビデオコーダは、以下の方法で最大基準ルマ値712及び最小基準ルマ値714に基づいて2つのルマ閾値を判定してよい。
別の例において、全ての隣接する(上隣又は左隣)再構成ルマサンプル(又はダウンサンプリングされたルマサンプル)は、隣接する再構成されたルマサンプルの平均値に基づいて2つのグループに分離される。平均値よりも小さい値を有するルマサンプルは1つのグループに属し、平均値よりも小さくない値を有するルマサンプルは別のグループに属する。そして、Threshold及びThresholdは、各グループの平均値として算出されてよい。
図7Dは、MMLMの2つの線形関係(線形関係716及び718)がルマ閾値710、最小基準ルマ値712、及び最大基準ルマ値714に基づいて導出されるプロット702dを示す。図7Cを参照して前述したように、ビデオコーダは、まず最初に、ルマ閾値710に基づいて、データ点の第2のグループ708の基準サンプルを2つのサブグループに分離する。各サブグループ内で、ビデオコーダは、ルマ値をクロマ値にマッピングするそれぞれの線形関係(式1を参照)を判定する。幾つかの実施形態において、ビデオコーダは、回帰法を使用してそれぞれの線形関係を判定する(例えば、グループ内の全てのデータ点を考慮に入れる)。しかしながら、回帰を実行することは、計算集約的であり、例えばリアルタイムでのビデオ符号化/復号の目的では非現実的であることが多い。したがって、線形関係を導出する(例えば、式1の線形パラメータを判定する)ためのより効率的な実装が望まれる。
幾つかの実施形態において、ビデオコーダは、Max-Min法を使用して線形関係716及び718を導出する。ビデオコーダは、(1)最小基準ルマ値712を有する基準サンプル(例えば、A(X,Y)によって数学的に表わされ、ここで、Xは最小基準ルマ値712である)、(2)ルマ閾値710及びクロマ閾値711を有するデータ点(例えば、閾値(X、Y)によって数学的に表わされ、ここで、X及びYはそれぞれ、ルマ閾値710及びクロマ閾値711である)、及び(3)最大基準ルマ値714を有する基準サンプル(例えば、B(X,Y)によって数学的に表わされる)から式1の線形モデルパラメータ(α β α β)を判定する。なお、X及びXは最小及び最大のルマ値であるが、Y及びYは必ずしも最小及び最大のクロマ値であるとは限らない。ビデオコーダは、以下の方法で線形モデルパラメータを判定する。
幾つかの実施形態では、正方形の形状を有するコーディングブロックの場合、ビデオコーダは上記の技術を直接適用する。非正方形コーディングブロックの場合、幾つかの実施形態において、ビデオコーダは、短い方の境界と同じ数のサンプルを有するように長い方の境界の隣接する基準サンプルを最初にサブサンプリングする。
MMLMが3つの線形関係(例えば、式3によって表わされる)を含む場合、ビデオコーダは、2つの線形関係を有するMMLMに関して前述したのと同様の態様で線形関係における線形モデルパラメータを導出することができる。例えば、2つの閾値データ点をThreshold(XT1、YT1)及びThreshold(XT2、YT2)として表わすことができ、YT2>YT1であると仮定すると、ビデオコーダは、A(X、Y)とThreshold(XT1、YT1)との間の直線関係から線形モデルパラメータα及びβを判定することができる。線形モデルパラメータα及びβは、直線関係Threshold(XT1、YT1)及びThreshold(XT2、YT2)から導出される。線形モデルパラメータα及びβは、Threshold(XT2、YT2)及びB(X,Y)間の直線関係から導出されてよい。
MMLMの線形関係716及び718を導出した後、ビデオコーダは、適切な線形モデルを対応するルマ値(又はサブサンプリングされたルマ値)に適用することによって、クロマサンプル値(例えば、図6B中のクロマサンプル622のクロマサンプル値)を予測することができる。
図8は、本開示の幾つかの実施に係る、マルチモデル線形モデル(MMLM)を導出するとともにMMLMを適用してコーディングユニットのクロマサンプルを予測する技術をビデオコーダが実施する典型的なプロセス800を示すフローチャートである。便宜上、プロセス800は、図3のビデオデコーダ30などの送信先デバイス上のビデオデコーダによって実行されるものとして説明される。
最初のステップとして、ビデオデコーダは、クロマブロック(例えば、図6Bのクロマブロック620)、ルマブロック(例えば、図6Aのルマブロック602)(例えば、クロマブロック及びルマブロックは同じコーディングユニットに属する)、ルマブロック(例えば、図6Aの上隣ルマグループ606及び/又は左隣ルマグループ610)を取り囲む複数の隣接するルマサンプル、及びクロマブロック(例えば、上隣クロマグループ624及び/又は左隣クロマグループ628)を取り囲む複数の隣接するクロマサンプル(例えば、複数の隣接するルナサンプルにおける1つ以上のルマサンプルは、隣接するクロマサンプルにおけるクロマサンプルに対応する)を符号化したビットストリームを受信する(例えば、図2のビデオエンコーダ20によって送信される)(810)。幾つかの実施形態において、ルマブロック及びクロマブロックは、異なるサンプルレートでサンプリングされ、異なるブロックサイズ及び/又は形状を有する。例えば、ルマブロックは、クロマブロックより大きくてもよく、また、ルマブロックのサブサンプリングは、クロマサンプルに対応するサブサンプリングされたルマサンプル(例えば、隣接するルマサンプルを平均化することによって計算されたルマサンプル)を見つけるために実行される。
その後、ビデオデコーダは、ルマブロック、複数の隣接するルマサンプル、及び複数の隣接するクロマサンプルを復号して、ルマブロックの複数の再構成されたルマサンプル、複数の再構成された隣接するルマサンプル、及び複数の再構成された隣接するクロマサンプルをそれぞれ取得する(820)。例えば、ビデオデコーダは、インターモード予測又はイントラモード予測を使用して、ルマブロック、複数の隣接するルナサンプル、及び複数の隣接するクロマサンプルを復号してよい。それぞれの再構成された隣接するルマサンプル(又は再構成されたサブサンプリングされた隣接するルマサンプル)及びそれに対応する再構成された隣接するクロマサンプルは、ルマ値とクロマ値との間の対応関係を示す基準データ点として(例えば、図7Aのデータ点の第1のグループ704における1つのデータ点として)表わされてよい。
次に、ビデオデコーダは、複数の再構成された隣接するルマサンプル(又は再構成されたサブサンプリングされた隣接するルマサンプル)及び複数の再構成された隣接するクロマサンプルから、基準ルマサンプルのグループ及び基準クロマサンプルの、対応するグループ(例えば、図7Bのデータ点の第2のグループ706によって表わされる)をそれぞれ選択する(830)。幾つかの実施形態において、基準ルマサンプル及び対応する基準クロマサンプルはそれぞれ、複数の再構成された隣接するルマサンプル及び複数の再構成された隣接するクロマサンプルのサブセットである。選択機構の詳細については、図7B及び関連する説明を参照されたい。
次に、ビデオデコーダは、複数の再構成された隣接するクロマサンプルから閾値ルマ値(例えば、平均ルマ値、中央ルマ値、又は他の所定の演算から計算されたルマ値)を計算するとともに、複数の再構成された隣接するクロマサンプルから閾値クロマ値(例えば、平均クロマ値、中央クロマ値、又はルマサンプルから他の方法で計算されたクロマ値)を計算する(例えば、データ点(閾値ルマ値、閾値クロマ値)は、MMLMにおける「ニーポイント」を表わすとともに、MMLMにおける第1の線形モデルを第2の線形モデルから分離するために使用され、これについては図7D及び関連する説明を参照されたい)(840)。
閾値ルマ値及び閾値クロマ値を判定した後、ビデオデコーダは、基準ルマサンプルのグループから最大ルマ値及び最小ルマ値を判定する(850)。例えば、図7Dのプロット702dでは、最大ルマ値が値Xであり、最小ルマ値が値Xである。最大ルマ値及び最小ルマ値を含む基準サンプルはそれぞれB(X,Y)及びA(X、Y)である。最小ルマ値(例えば、図7DのX)、閾値ルマ値(例えば、図7DのX)、及び最大ルマ値(例えば、図7DのX)は、ルマ値の2つの別々の領域を規定し、第1の領域は最小ルマ値から閾値ルマ値まで延在し、第2の領域は閾値ルマ値から最大ルマ値まで延在する。閾値ルマ値は、最小ルマ値と最大ルマ値との間にある。幾つかの実施形態では、最大ルマ値が最小ルマ値と異なる場合、閾値ルマ値は、最小ルマ値以上であり、最大ルマ値以下である。幾つかの実施形態では、最大ルマ値が最小ルマ値に等しい場合(例えば、最大及び最小のルマ値を計算するための領域は、一様なルマサンプルを含む)、最大、最小、及び閾値ルマ値は全て互いに等しい。したがって、閾値ルマ値が最小ルマ値以上であり且つ最大ルマ値以下である場合、閾値ルマ値は最小ルマ値と最大ルマ値との間にある。
その後、ビデオデコーダは、最小ルマ値と閾値ルマ値との間の第1の線形モデルと、閾値ルマ値と最大ルマ値との間の第2の線形モデルとを含むマルチモデル線形モデルを生成する(860)。第1の線形モデルは、最小ルマ値を含む基準サンプル(例えば、図7DのA(X、Y))と、閾値ルマ値(例えば、図7DのThreshold(X、Y))を含む基準サンプルとによって規定される。第2の線形モデルは、閾値ルマ値(例えば、図7DのThresholdf(X、Y))を含む基準サンプルと、最大ルマ値を含む基準サンプル(例えば、図7DのB(X,Y))とによって規定される。例えば、図7Dのプロット702dは、第1及び第2の線形モデルを線形関係716及び線形関係718としてそれぞれ示す。
最後に、ビデオデコーダは、マルチモデル線形モデルを使用してルマブロックからクロマブロックを再構成する(870)。幾つかの実施形態において、ビデオデコーダは、ラスタスキャン順にルマブロック内の各ルマサンプル(又はサブサンプリングされたルマサンプル)を処理してよく、MMLMの適切な線形関係を適用して、対応するクロマサンプルを再構成する(例えば、ルマサンプルのルマ値がルマ閾値を下回る場合、第1の線形関係を適用し、ルマサンプルのルマ値がルマ閾値よりも大きい場合、第2の線形関係を適用する)。
幾つかの実施形態において、マルチモデル線形モデルを生成することは、最大ルマ値を有する第1の基準ルマサンプルに対応する第1の基準クロマサンプルの第1のクロマ値、及び最小ルマ値を有する第2の基準ルマサンプルに対応する第2の基準クロマサンプルの第2のクロマ値を判定することを含み、第1の線形モデルは、(最小ルマ値、第1のクロマ値)と(閾値ルマ値、閾値クロマ値)とを結び付け、第2の線形モデルは、(閾値ルマ値、閾値クロマ値)と(最大ルマ値、第2のクロマ値)とを結び付ける。
幾つかの実施形態において、マルチモデル線形モデルを使用してルマブロックからクロマブロックを構成することは、クロマブロック内のそれぞれのクロマサンプルに関して、それぞれのクロマサンプルに対応する再構成されたルマブロック内のそれぞれのルマサンプルのそれぞれのルマ値を判定し、それぞれのルマ値が閾値ルマ値以下であるという判定に応じて、それぞれのルマ値に第1の線形モデルを適用してそれぞれのクロマ値を取得し、それぞれのルマ値が閾値ルマ値以上であるという判定に応じて、第2の線形モデルをそれぞれのルマ値に適用して、それぞれのクロマ値を取得することを含む。
幾つかの実施形態において、閾値ルマ値を計算することは、複数の再構成された隣接するルマサンプルから平均ルマ値を見つけることを含み、また、閾値クロマ値を計算することは、複数の再構成された隣接するクロマサンプルから平均クロマ値を見つけることを含む。
幾つかの実施形態において、基準ルマサンプルのグループ及びクロマ基準サンプルのグループを選択することは、使用されるべき基準ルマサンプル及び基準クロマサンプルの数の上限を判定することを含む。
幾つかの実施形態において、基準ルマサンプルのグループ及び基準クロマサンプルのグループを選択することは、複数の再構成された隣接するルマサンプルから1つおきのルマサンプル及び複数の再構成された隣接するクロマサンプルから1つおきのクロマサンプルを選択することを含む。
幾つかの実施形態では、閾値ルマ値よりも大きい第2の閾値ルマ値及び閾値クロマ値よりも大きい対応する第2の閾値クロマ値を計算し、第2の線形モデルは、閾値ルマ値と第2の閾値ルマ値との間のルマ値に適用可能であり、第3の線形モデルは、第2の閾値ルマ値と最大ルマ値との間のルマ値に適用可能である。
幾つかの実施形態において、閾値ルマ値を計算することは、複数の再構成された隣接するルマサンプルから最大ルマ値と最小ルマ値との間の加重平均ルマ値を見つけることを含み、閾値クロマ値を計算することは、複数の再構成された隣接するクロマサンプルから最大クロマ値と最小クロマ値との間の加重平均クロマ値を見つけることを含む。
幾つかの実施形態において、閾値ルマ値を計算することは、ルマブロックの複数の再構成ルマサンプルから平均ルマ値を見つけることを含む。
幾つかの実施形態において、マルチモデル線形モデルを使用してルマブロックからクロマブロックを構成することは、クロマブロック内のクロマサンプルのそれぞれのブロックに関して、クロマサンプルのそれぞれのブロックに対応する復号されたルマブロック内のルマサンプルのそれぞれのブロックのそれぞれの平均ルマ値を判定し、それぞれの平均ルマ値が閾値ルマ値以下であるという判定に応じて、第1の線形モデルをルマサンプルのそれぞれのブロック内の各ルマ値に適用して、クロマサンプルのそれぞれのブロック内のそれぞれのクロマ値を取得し、それぞれの平均ルマ値が閾値ルマ値以上であるという判定に応じて、第2の線形モデルをルマサンプルのそれぞれのブロック内の各ルマ値に適用して、クロマサンプルのそれぞれのブロック内のそれぞれのクロマ値を取得することを含む。
図9は、本開示の幾つかの実施に係るMMLMに使用される隣接サンプル(灰色の円として示される)の位置を示すブロック図である。幾つかの実施形態では、図9に示されるように、マルチモデル線形モデルパラメータ導出が複数のラインからのものである。幾つかの実施形態において、MMLMにおけるモデルパラメータは、基準サンプルの複数のラインを用いて生成される。
一実施形態では、基準サンプルの複数のラインがN個のセットに分割され、ここで、Nは正の数であり、その値は、現在のブロックの特定のコード化された情報、例えば、TB(変換ブロック)/CB(コーディングブロック)及び/又はスライス/プロファイルと関連付けられたコード化されたブロックの量子化パラメータ又はサイズに基づいて動的に変更されてよい。図10は、本開示の幾つかの実施態様に係るMMLMに使用されるサンプルの4つのセットの位置を例示するブロック図である。図10において、サンプルの4つのセットは、灰色の円の中にある異なる記号によって、例えば、記号のない灰色の円、十字記号のある灰色の円、三角記号のある灰色の円、チェック記号のある灰色の円によって表わされる。他の実施形態では、基準サンプルの複数のラインがN個の基準セットに分割され、ここで、Nは正の数であり、コード語は、現在のブロックの特定のコード化された情報、例えば、量子化パラメータ、TB/CB及び/又はスライス/プロファイルと関連付けられたコード化されたブロックのセット数又はサイズに基づいてN個の基準セットのうちの特定の1つを示すように動的に変更される。
一例では、MMLMブロックにおける基準セットの信号伝達が有効か無効かを示すために、TB/CB/スライス/ピクチャ/シーケンスレベルで制御フラグが信号伝達される。制御フラグが有効にされている場合、それぞれのCBごとに、そのCB内の線形モデルパラメータの導出のために特定の基準セットが使用されることを示すように、シンタックス要素が更に信号伝達される。制御フラグが無効にされている(例えば、フラグを「0」に設定する)場合、線形モデルパラメータの導出のための特定の基準セットを示すために更なるシンタックス要素は下位レベルで信号伝達されず、線形モデルパラメータの導出のためにデフォルトの基準セット(例えば、利用可能な上方(上端)及び左再構成)が使用される。
幾つかの実施形態では、MMLMとイントラ予測とを組み合わせて使用して予測を形成する。幾つかの実施形態では、MMLMと導出された重みによるイントラ予測とを組み合わせて最終予測を形成する。一実施形態において、重みは、左(上端)及び上方の2つの隣接するブロックの予測モードから導出され、それらを組み合わせて最終予測を形成する。重みの組み合わせのイントラ予測モードとしては、平面モードのみが用いられる。別の実施形態では、組み合わせのイントラ予測モードは、コロケートされたルマイントラ予測と同じモードであってもよい。更に他の実施形態において、組み合わせの重み及び/又はイントラ予測モードは、組み合わせで使用されるイントラ予測モードの重み及び/又はタイプを示すために、TB/CB/スライス/ピクチャ/シーケンスレベルで信号伝達されてよい。
一例では、組み合わされたMMLM及びイントラ予測のモードが有効であるか無効であるかどうかを示すために、TB/CB/スライス/ピクチャ/シーケンスレベルで制御フラグが信号伝達される。制御フラグが有効にされると、それぞれのCBごとに、そのCB内の組み合わせのイントラ予測モードとして特定のイントラ予測が使用されることを示すために、シンタックス要素が更に信号伝達される。別の例では、組み合わされたMMLM及びイントラ予測のモードが有効であるか無効であるかどうかを示すために、TB/CB/スライス/ピクチャ/シーケンスレベルで制御フラグが信号伝達される。制御フラグが有効にされると、それぞれのCBごとに、そのCBの組み合わされたMMLM及びイントラ予測に重みが使用されることを示すために、シンタックス要素が更に信号伝達される。
更に別の実施形態において、最終予測を組み合わせるためのイントラモードのタイプ及び重みは、左及び上方(上端)の2つの隣接するブロックの予測モードから導出される。
一例では、組み合わされたMMLM及びイントラ予測のモードが有効であるか無効であるかどうかを示すために、TB/CB/スライス/ピクチャ/シーケンスレベルで制御フラグが信号伝達される。制御フラグが有効にされる場合、例えば、DIMDで用いられる勾配解析として、事前に符号化された隣接するピクセルを用いて勾配解析によりイントラ予測モードが導出される。ヒストグラムにおいて最も高いピークを示すモードは、そのCBにおける組み合わせのイントラ予測モードとして選択される。重みは、ヒストグラム内の最高ピークの比率に基づいて動的に変更されてもよく、例えば、最高ピークの比率が高いほど、イントラモードの重みが高くなる。
図11は、本開示の幾つかの実施に係るMMLMとイントラ予測とを組み合わせてビデオ信号のクロマブロックを予測又は構成する技術をビデオコーダが実施する典型的なプロセス1100を示すフローチャートである。便宜上、プロセス800は、図3のビデオデコーダ30などの送信先デバイス上のビデオデコーダによって実行されるものとして説明される。
最初のステップとして、ビデオデコーダは、クロマブロック、対応するルマブロック、ルマブロックを取り囲む複数の隣接するルマサンプル、及びクロマブロックを取り囲む複数の隣接するクロマサンプルを符号化したビットストリーム(例えば、図2のビデオエンコーダ20によって送信される)を受信する(1110)。
その後、ビデオデコーダは、ルマブロック、複数の隣接するルマサンプル、及び複数の隣接するクロマサンプルを復号して、ルマブロックの複数の再構成されたルマサンプル、複数の再構成された隣接するルマサンプル、及び複数の再構成された隣接するクロマサンプルをそれぞれ取得する(1120)。
その後、ビデオデコーダは、複数の再構成された隣接するルマサンプル及び複数の再構成された隣接するクロマサンプルから、各基準ルマサンプルが、それぞれの基準クロマサンプルに対応する、基準ルマサンプルのグループ及び基準クロマサンプルのグループを選択する(1130)。
その後、ビデオデコーダは、基準ルマサンプルのグループからの閾値ルマ値を計算するとともに、基準クロマサンプルのグループから対応する閾値クロマ値を計算する(1140)。
その後、ビデオデコーダは、基準ルマサンプルのグループから、閾値ルマ値が最小ルマ値と最大ルマ値との間にある最大ルマ値及び最小ルマ値を判定する(1150)。
その後、ビデオデコーダは、最小ルマ値と閾値ルマ値との間の第1の線形モデルと、閾値ルマ値と最大ルマ値との間の第2の線形モデルとを含むマルチモデル線形モデルを生成する(1160)。
ビデオデコーダは、更に、ルマブロック、マルチモデル線形モデルを使用して再構成された対応するそれぞれの第1のサンプル値と、隣接するクロマブロックの、イントラ予測モードから再構成されたそれぞれの第2のサンプル値との重み付けられた組み合わせからクロマブロックのそれぞれのサンプル値を再構成する(1170)。
幾つかの実施形態において、複数の隣接するルマサンプルは、ルマブロックを取り囲む少なくとも2つの左ライン及び少なくとも2つの上ラインから選択され、複数の隣接するクロマサンプルは、クロマブロックを取り囲む少なくとも2つの左ライン及び少なくとも2つの上ラインから選択される。例えば、マルチモデル線形モデルパラメータ導出は、図9に示すような複数のラインからのものである。
幾つかの実施形態において、複数の隣接するルマサンプルは、所定数の基準セットに分割され、複数の隣接するクロマサンプルは、所定数の基準セットに分割され、基準ルマサンプルのグループは、所定数の基準セットのうちの1つから選択され、基準クロマサンプルのグループは、所定数の基準セットのうちの1つから選択される。例えば、図10に示されるように、基準サンプルの複数ラインがN個の基準セットとして分割され、ここで、Nは正の数であり、動的に変化するコード語は、現在のブロックの特定のコード化された情報、例えば量子化パラメータ、TB/CB及び/又はスライス/プロファイルと関連付けられたコード化されたブロックのセット数又はサイズに基づいて基準セットのうちの特定の1つを示すために使用される。
幾つかの実施形態において、基準ルマサンプルのグループ及び基準クロマサンプルのグループは、クロマ及びルマブロックを含む現在のブロックのコード化された情報に基づいて選択される。
幾つかの実施形態において、複数の再構成された隣接するルマサンプル及び複数の再構成された隣接するクロマサンプルから、基準ルマサンプルのグループ及び基準クロマサンプルのグループを選択すること(1130)ステップは、TB(変換ブロック)、CB(コーディングブロック)、スライス、ピクチャ、及びシーケンスレベルから成るグループから選択される1つで制御フラグから所定数の基準セットの信号伝達かどうかを判定することと、所定数の基準セットの信号伝達が制御フラグから有効にされていると判定するのに応じて、所定数の基準セットのうちの特定のセットが基準ルマサンプルのグループ及び基準クロマサンプルのグループとして選択されるとシンタックスから判定することとを含む。幾つかの例では、MMLMブロックにおける基準セットの信号伝達が有効か無効かどうかを示すために、TB/CB/スライス/ピクチャ/シーケンスレベルで1つの制御フラグが信号伝達される。制御フラグが有効にされるとして信号伝達されると、それぞれのCBごとに、そのCB内の線形モデルパラメータの導出のために特定の基準セットが使用されることを示すために、1つのシンタックス要素が更に信号伝達される。
幾つかの実施形態において、ルマブロックの、マルチモデル線形モデルを使用して再構成された対応するそれぞれの第1のサンプル値と、隣接するクロマブロックの、イントラ予測モードから再構成されたそれぞれの第2のサンプル値との重み付けられた組み合わせからクロマブロックのそれぞれのサンプル値を再構成すること(1170)は、TB/CB/スライス/ピクチャ/シーケンスレベルで、再構成された対応するそれぞれの第1のサンプル値の重みを示す第1の信号伝達、及びイントラ予測モードのタイプを示す第2の信号伝達のうちの少なくとも一方を受信することを含む。例えば、組み合わせの重み及び/又はイントラ予測モードは、組み合わせで使用されるイントラ予測モードの重み及び/又はタイプを示すために、TB/CB/スライス/ピクチャ/シーケンスレベルで信号伝達されてよい。再構成されたそれぞれの第2のサンプル値の対応する重みは、再構成された対応するそれぞれの第1のサンプル値の重みから導出されてよい。
幾つかの実施形態において、ルマブロックの、マルチモデル線形モデルを使用して再構成された対応するそれぞれの第1のサンプル値と、隣接するクロマブロックの、イントラ予測モードから再構成されたそれぞれの第2のサンプル値との重み付けられた組み合わせからクロマブロックのそれぞれのサンプル値を再構成すること(1170)は、TB/CB/スライス/ピクチャ/シーケンスレベルで信号伝達された制御フラグが有効にされている場合に実行される。一例では、組み合わされたMMLM及びイントラ予測のモードが有効か無効かを示すために、1つの制御フラグがTB/CB/スライス/ピクチャ/シーケンスレベルで信号伝達される。
幾つかの実施形態において、イントラ予測モードは、勾配解析によって事前に符号化された隣接サンプルを使用して導出される。
幾つかの実施形態において、複数の隣接するルマサンプルは、ルマブロックを取り囲む単一の左ライン及び単一の上ラインから選択され、複数の隣接するクロマサンプルは、クロマブロックを取り囲む単一の左ライン及び単一の上ラインから選択される。例えば、図6A及び図6Bに示されるように、ルマブロック又はクロマブロックを囲む単一の左ライン及び単一の上ラインが示される。
幾つかの実施形態において、ルマブロックの、マルチモデル線形モデルを使用して再構成された対応するそれぞれの第1のサンプル値からクロマブロックのそれぞれのサンプル値を再構成することは、ルマブロックの、再構成された対応するそれぞれの第1のサンプル値が閾値ルマ値以下であるという判定に応じて、クロマブロックのそれぞれのサンプル値を取得するために第1の線形モデルをルマブロックの、再構成された対応するそれぞれの第1のサンプル値に適用することと、ルマブロックの、再構成された対応するそれぞれの第1のサンプル値が閾値ルマ値よりも大きいという判定に応じて、クロマブロックのそれぞれのサンプル値を取得するために第2の線形モデルをルマブロックの、再構成された対応するそれぞれの第1のサンプル値に適用することとを含む。
図12は、ユーザインタフェース1250と結合されたコンピューティング環境1210を示す。コンピューティング環境1210は、データ処理サーバの一部となり得る。コンピューティング環境1210は、プロセッサ1220、メモリ1230、及び入力/出力(I/O)インタフェース1240を含む。
プロセッサ1220は、一般に、ディスプレイ、データ取得、データ通信、及び画像処理に関連する動作など、コンピューティング環境1210の全体的な動作を制御する。プロセッサ1220は、前述の方法におけるステップの全て又は一部を実行するための命令を実行する1つ以上のプロセッサを含んでいてよい。更に、プロセッサ1220は、プロセッサ1220と他の構成要素との間の相互作用を容易にする1つ以上のモジュールを含んでいてよい。プロセッサは、中央処理ユニット(CPU)、マイクロプロセッサ、シングルチップ機械、グラフィック処理ユニット(GPU)などであってもよい。
メモリ1230は、コンピューティング環境1210の動作をサポートするために様々なタイプのデータを記憶するように構成される。メモリ1230は、所定のソフトウェア1232を含んでいてよく、そのようなデータの例としては、コンピューティング環境1210、ビデオデータセット、画像データなどで動作する任意のアプリケーション又は方法のための命令が挙げられる。メモリ1230は、スタティックランダムアクセスメモリ(SRAM)、電気的消去可能プログラマブルリードオンリーメモリ(EEPROM)、消去可能プログラマブルリードオンリーメモリ(EPROM)、プログラマブルリードオンリーメモリ(PROM)、リードオンリーメモリ(ROM)、磁気メモリ、フラッシュメモリ、磁気又は光ディスクなどの、任意のタイプの揮発性又は不揮発性メモリデバイス、又はそれらの組み合わせを使用して実装されてよい。
I/Oインタフェース1240は、プロセッサ1220と、キーボード、クリックホイール、ボタンなどの周辺インタフェースモジュールとの間のインタフェースを提供する。ボタンは、ホームボタン、スキャン開始ボタン、及びスキャン停止ボタンを含んでいてよいが、これらに限定されない。I/Oインタフェース1240は、エンコーダ及びデコーダと結合されてよい。
一実施形態では、前述の方法を実行するために、コンピューティング環境1210内のプロセッサ1220によって実行可能な、例えばメモリ1230内の複数のプログラムを含む非一時的コンピュータ可読記憶媒体も提供される。或いは、非一時的コンピュータ可読記憶媒体は、例えば、ビデオデータを復号する際にデコーダ(例えば、図3のビデオデコーダ30)によって使用するために前述した符号化方法を使用して、エンコーダ(例えば、図2のビデオエンコーダ20)によって生成された符号化されたビデオ情報(例えば、1つ以上のシンタックス要素を含むビデオ情報)を含むビットストリーム又はデータストリームを記憶していてもよい。非一時的コンピュータ可読記憶媒体は、例えば、ROM、ランダムアクセスメモリ(RAM)、CD-ROM、磁気テープ、フロッピー(登録商標)ディスク、光データ記憶デバイスなどであってもよい。
一実施形態では、コンピューティングデバイスも提供され、コンピューティングデバイスは、1つ以上のプロセッサ(例えば、プロセッサ1220)と、1つ以上のプロセッサによって実行可能な複数のプログラムを内部に記憶した非一時的コンピュータ可読記憶媒体又はメモリ1230とを備え、1つ以上のプロセッサは、複数のプログラムの実行時に、前述の方法を実行するように構成される。
一実施形態では、前述の方法を実行するために、コンピューティング環境1210内のプロセッサ1220によって実行可能な、例えばメモリ1230内の複数のプログラムを含むコンピュータプログラムプロダクトも提供される。例えば、コンピュータプログラムプロダクトは、非一時的コンピュータ可読記憶媒体を含んでいてよい。
一実施形態において、コンピューティング環境1210は、前述の方法を実行するために、1つ以上のASIC、DSP、デジタル信号処理装置(DSPD)、プログラマブル論理装置(PLD)、FPGA、GPU、コントローラ、マイクロコントローラ、マイクロプロセッサ、又は他の電子部品で実装されてもよい。
また、更なる実施形態は、様々な他の実施形態において組み合わされるか、そうでなければ再構成される上記の実施形態の様々なサブセットを含む。
1つ以上の例において、記載された機能は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組み合わせで実装されてよい。ソフトウェアで実装される場合、機能は、コンピュータ可読媒体に記憶されるか、又は1つ以上の命令又はコードとしてコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行されてもよい。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応するコンピュータ可読記憶媒体、又は例えば通信プロトコルにしたがって、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体を含んでいてよい。このように、コンピュータ可読媒体は、一般に、(1)非一時的である有形のコンピュータ可読記憶媒体、又は(2)信号又は搬送波などの通信媒体に対応していてよい。データ記憶媒体は、本出願に記載された実施態様を実施するための命令、コード、及び/又はデータ構造を取り出すために1つ以上のコンピュータ又は1つ以上のプロセッサによってアクセスされてよい任意の利用可能な媒体であってもよく、コンピュータプログラムプロダクトは、コンピュータ可読媒体を含んでもよい。
本開示の説明は、例示の目的で提示されており、網羅的であることも又は本開示に限定されることも意図されていない。前述の説明及び関連する図面に提示された教示の利益を有する当業者には、多くの修正、変形、及び代替実施態様が明らかとなる。
別段具体的に述べられなければ、本開示に係る方法のステップの順序は例示的であることを意図しているにすぎず、本開示に係る方法のステップは、上記で具体的に説明した順序に限定されず、実際の条件にしたがって変更されてもよい。更に、本開示に係る方法のステップの少なくとも1つは、実際の要件にしたがって調整され、組み合わされ、又は削除されてもよい。
実施例は、本開示の原理を説明するとともに、他の当業者が様々な実施態様に関して本開示を理解して想定される特定の用途に適した様々な修正を伴う基本的な原理及び様々な実施態様を最良に利用できるようにするために選択及び説明された。したがって、本開示の範囲は、開示された実施態様の特定の例に限定されるものではなく、修正及び他の実施態様が本開示の範囲内に含まれることが意図されていることを理解すべきである。

Claims (13)

  1. ビデオ信号のクロマブロックを構成するための方法であって、
    前記クロマブロック、対応するルマブロック、前記ルマブロックを取り囲む複数の隣接するルマサンプル、及び前記クロマブロックを取り囲む複数の隣接するクロマサンプルを符号化したビットストリームを受信することと、
    前記ルマブロックの複数の再構成されたルマサンプル、複数の再構成された隣接するルマサンプル、及び複数の再構成された隣接するクロマサンプルをそれぞれ取得するために、前記ルマブロック、前記複数の隣接するルマサンプル、及び前記複数の隣接するクロマサンプルを復号することと、
    前記複数の再構成された隣接するルマサンプル及び前記複数の再構成された隣接するクロマサンプルから、基準ルマサンプルのグループ及び基準クロマサンプルのグループであって、各基準ルマサンプルがそれぞれの基準クロマサンプルに対応している、ルマサンプルのグループ及び基準クロマサンプルのグループを選択することと、
    前記基準ルマサンプルのグループから閾値ルマ値を計算するとともに、前記基準クロマサンプルのグループから対応する閾値クロマ値を計算することと、
    前記基準ルマサンプルのグループから、最大ルマ値及び最小ルマ値であって、前記閾値ルマ値が前記最小ルマ値と前記最大ルマ値との間にある、最大ルマ値及び最小ルマ値を判定することと、
    前記最小ルマ値と前記閾値ルマ値との間の第1の線形モデルと、前記閾値ルマ値と前記最大ルマ値との間の第2の線形モデルとを含むマルチモデル線形モデルを生成することと、
    前記ルマブロックの、前記マルチモデル線形モデルを使用して再構成された対応するそれぞれの第1のサンプル値と、隣接するクロマブロックの、イントラ予測モードから再構成されたそれぞれの第2のサンプル値との重み付けられた組み合わせから前記クロマブロックのそれぞれのサンプル値を再構成することと、
    を含む、方法。
  2. 前記複数の隣接するルマサンプルは、前記ルマブロックを取り囲む少なくとも2つの左ライン及び少なくとも2つの上ラインから選択され、前記複数の隣接するクロマサンプルは、前記クロマブロックを取り囲む少なくとも2つの左ライン及び少なくとも2つの上ラインから選択される、請求項1に記載の方法。
  3. 前記複数の隣接するルマサンプルが所定数の基準セットに分割され、前記複数の隣接するクロマサンプルが前記所定数の基準セットに分割され、前記基準ルマサンプルのグループは、前記所定数の基準セットのうちの1つから選択され、前記基準クロマサンプルのグループは、前記所定数の基準セットのうちの1つから選択される、請求項2に記載の方法。
  4. 前記基準ルマサンプルのグループ及び前記基準クロマサンプルのグループは、前記クロマブロック及び前記ルマブロックを含む現在のブロックのコード化された情報に基づいて選択される、請求項3に記載の方法。
  5. 前記複数の再構成された隣接するルマサンプル及び前記複数の再構成された隣接するクロマサンプルから、前記基準ルマサンプルのグループ及び前記基準クロマサンプルのグループを選択することは、
    TB(変換ブロック)、CB(コーディングブロック)、スライス、ピクチャ、及びシーケンスレベルから成るグループから選択される1つにおける制御フラグから前記所定数の基準セットの信号伝達かどうかを判定することと、
    前記制御フラグから、前記所定数の基準セットの前記信号伝達が有効にされていると判定するのに応じて、前記所定数の基準セットのうちの特定のセットが前記基準ルマサンプルのグループ及び前記基準クロマサンプルのグループとして選択されるとシンタックスから判定することと、
    を含む、請求項3に記載の方法。
  6. 前記ルマブロックの、前記マルチモデル線形モデルを使用して再構成された対応するそれぞれの前記第1のサンプル値と、隣接するクロマブロックの、前記イントラ予測モードから再構成されたそれぞれの前記第2のサンプル値との前記重み付けられた組み合わせから前記クロマブロックのそれぞれの前記サンプル値を再構成することは、
    TB/CB/スライス/ピクチャ/シーケンスレベルで、対応する再構成されたそれぞれの前記第1のサンプル値の重みを示す第1の信号伝達、及び前記イントラ予測モードのタイプを示す第2の信号伝達のうちの少なくとも一方を受信すること、
    を含む、請求項1に記載の方法。
  7. 前記ルマブロックの、前記マルチモデル線形モデルを使用して再構成された対応するそれぞれの前記第1のサンプル値と、隣接するクロマブロックの、前記イントラ予測モードから再構成されたそれぞれの前記第2のサンプル値との前記重み付けられた組み合わせから前記クロマブロックのそれぞれの前記サンプル値を再構成することは、TB/CB/スライス/ピクチャ/シーケンスレベルで信号伝達された制御フラグが有効にされている場合に実行される、請求項1に記載の方法。
  8. 前記イントラ予測モードは、勾配解析によって、事前に符号化された隣接するサンプルを使用して導出される、請求項7に記載の方法。
  9. 前記複数の隣接するルマサンプルは、前記ルマブロックを取り囲む単一の左ライン及び単一の上ラインから選択され、前記複数の隣接するクロマサンプルは、前記クロマブロックを取り囲む単一の左ライン及び単一の上ラインから選択される、請求項1に記載の方法。
  10. 前記ルマブロックの、前記マルチモデル線形モデルを使用して再構成された対応するそれぞれの前記第1のサンプル値から前記クロマブロックのそれぞれの前記サンプル値を再構成することは、
    前記ルマブロックの、再構成された対応するそれぞれの前記第1のサンプル値が前記閾値ルマ値以下であるという判定に応じて、前記クロマブロックのそれぞれの前記サンプル値を取得するために前記第1の線形モデルを前記ルマブロックの、再構成された対応するそれぞれの前記第1のサンプル値に適用することと、
    前記ルマブロックの、再構成された対応するそれぞれの前記第1のサンプル値が前記閾値ルマ値よりも大きいという判定に応じて、前記クロマブロックのそれぞれの前記サンプル値を取得するために前記第2の線形モデルを前記ルマブロックの、再構成された対応するそれぞれの前記第1のサンプル値に適用することと、
    を含む、請求項1に記載の方法。
  11. 1つ以上の処理ユニットと、
    前記1つ以上の処理ユニットに結合されるメモリと、
    前記メモリに記憶された複数のプログラムであって、前記1つ以上の処理ユニットによって実行されると、前記電子装置に請求項1から10のいずれか一項に記載の方法を実行させる、複数のプログラムと、
    を備える電子装置。
  12. 請求項1から10のいずれか一項に記載の前記ビデオ信号の前記クロマブロックを構成するための方法によって生成されるビデオ情報を含むビットストリームが記憶されたコンピュータ可読記憶媒体。
  13. 1つ以上の処理ユニットを有する電子装置によって実行される複数のプログラムを記憶する非一時的コンピュータ可読記憶媒体であって、前記複数のプログラムは、前記1つ以上の処理ユニットによって実行されると、前記電子装置に請求項1から10のいずれか一項に記載の方法を実行させる、非一時的コンピュータ可読記憶媒体。
JP2023563028A 2021-04-16 2022-04-18 方法、電子装置、非一時的コンピュータ可読記憶媒体、およびコンピュータプログラム Pending JP2024513993A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202163176140P 2021-04-16 2021-04-16
US63/176,140 2021-04-16
PCT/US2022/025184 WO2022221756A1 (en) 2021-04-16 2022-04-18 Video coding using multi-model linear model

Publications (1)

Publication Number Publication Date
JP2024513993A true JP2024513993A (ja) 2024-03-27

Family

ID=83639736

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023563028A Pending JP2024513993A (ja) 2021-04-16 2022-04-18 方法、電子装置、非一時的コンピュータ可読記憶媒体、およびコンピュータプログラム

Country Status (6)

Country Link
US (1) US20240040133A1 (ja)
EP (1) EP4324208A1 (ja)
JP (1) JP2024513993A (ja)
KR (1) KR20230170064A (ja)
CN (1) CN117256149A (ja)
WO (1) WO2022221756A1 (ja)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9288500B2 (en) * 2011-05-12 2016-03-15 Texas Instruments Incorporated Luma-based chroma intra-prediction for video coding
US10652575B2 (en) * 2016-09-15 2020-05-12 Qualcomm Incorporated Linear model chroma intra prediction for video coding
CN116708837A (zh) * 2018-07-02 2023-09-05 Lg电子株式会社 编解码设备和数据发送设备
DK3815377T3 (da) * 2018-07-16 2023-04-03 Huawei Tech Co Ltd Videokoder, videoafkoder og tilsvarende kodnings- og afkodningsfremgangsmåder
US11197005B2 (en) * 2018-11-08 2021-12-07 Qualcomm Incorporated Cross-component prediction for video coding

Also Published As

Publication number Publication date
CN117256149A (zh) 2023-12-19
US20240040133A1 (en) 2024-02-01
WO2022221756A1 (en) 2022-10-20
KR20230170064A (ko) 2023-12-18
EP4324208A1 (en) 2024-02-21

Similar Documents

Publication Publication Date Title
EP3847816B1 (en) Simplifications of cross-component linear model
US20220360799A1 (en) Video coding using multi-model linear model
CN113242432B (zh) 视频解码的方法、计算设备和存储介质
JP2024513993A (ja) 方法、電子装置、非一時的コンピュータ可読記憶媒体、およびコンピュータプログラム
CN116847097B (zh) 用于对视频信号进行解码的方法、计算装置以及存储介质

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231013

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20231013