JP2021535652A - クロマブロック予測方法およびデバイス - Google Patents

クロマブロック予測方法およびデバイス Download PDF

Info

Publication number
JP2021535652A
JP2021535652A JP2021507937A JP2021507937A JP2021535652A JP 2021535652 A JP2021535652 A JP 2021535652A JP 2021507937 A JP2021507937 A JP 2021507937A JP 2021507937 A JP2021507937 A JP 2021507937A JP 2021535652 A JP2021535652 A JP 2021535652A
Authority
JP
Japan
Prior art keywords
block
sample
chroma
luma
template
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.)
Granted
Application number
JP2021507937A
Other languages
English (en)
Other versions
JP7431803B2 (ja
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of JP2021535652A publication Critical patent/JP2021535652A/ja
Priority to JP2023045823A priority Critical patent/JP2023083292A/ja
Application granted granted Critical
Publication of JP7431803B2 publication Critical patent/JP7431803B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/117Filters, e.g. for pre-processing or post-processing
    • 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/124Quantisation
    • 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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • 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/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/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/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • H04N19/45Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder performing compensation of the inverse transform mismatch, e.g. Inverse Discrete Cosine Transform [IDCT] mismatch
    • 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
    • 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/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
    • 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/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
    • 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/96Tree coding, e.g. quad-tree coding

Landscapes

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

Abstract

本発明は、クロマブロック予測方法およびデバイスを提供する。方法は、第1の表示情報を取得するためにビットストリームを構文解析することと、第2のルーマブロックを取得するために、第1の表示情報の値が第1の値であるときに第1のフィルタを使用することによって、または第1の表示情報の値が第2の値であるときに第2のフィルタを使用することによって、第1のルーマブロックに対してダウンサンプリング動作を実行することであって、第1のルーマブロックが、現在クロマブロックに対応するルーマブロックである、実行することと、複数のクロマサンプルおよび複数のルーマサンプルを取得することと、複数のクロマサンプルおよび複数のルーマサンプルに基づいて線形モデル係数を取得することと、第2のルーマブロックおよび線形モデル係数に基づいて現在クロマブロックの予測値を取得することとを含む。

Description

本発明は、ビデオコーディングの分野に関し、詳細には、クロマブロック予測方法およびデバイスに関する。
インターネット技術が急速に発展し人間の物質文化および精神文化がますます豊かになるにつれて、ビデオの適用、特に高精細ビデオの適用に対して、インターネットへの需要がますます高まっている。しかしながら、高精細ビデオは極めて大量のデータを含む。帯域幅が限定されたインターネット上で高精細ビデオを送信するために、最初に高精細ビデオの圧縮コーディングが実行される必要がある。現在、2つの国際機関、すなわち、ISO/IECにおけるMPEGおよびITU-TにおけるVCEGが、ビデオコーディング規格を策定することに専任されている。1986年に設立されたMPEGは、マルチメディア分野での、ストレージ、ブロードキャストテレビジョン、インターネット上またはワイヤレスネットワーク上でのストリーミングメディアなどにおいて主に使用される、関係する規格を策定することに特化している。ITU-Tは、ビデオ電話、ビデオ会議、または他の用途などの、リアルタイムビデオ通信の分野のためのビデオコーディング規格を主に策定する。過去数十年にわたって、VCD用のMPEG-1、DVD用およびDVB用のMPEG-2、ビデオ会議用のH.261、H.263、およびH.264、任意の形をなす対象物のコーディングを可能にするMPEG-4およびHEVCなどを含めて、様々な用途のためにビデオコーディング規格が策定されている。
現在、広く使用されるビデオコーディング規格H.264/AVC(H.264として示される)およびH.265/HEVC(H.265として示される)では、予測、変換、およびエントロピーコーディングなどの、様々なタイプのコーディング動作は、画像ブロックを基本単位として使用することによって実行される。画像ブロックは、2次元のサンプルアレイ、すなわち、サイズがW*Hサンプルのアレイである(ただし、WはHに等しくても等しくなくてもよい)。加えて、各サンプル位置におけるサンプルの値が知られている。
一般的なビデオ符号化プロセスは主に、以下の段階、すなわち、イントラ予測(Intra Prediction)、インター予測(Inter Prediction)、変換(Transform)、量子化(Quantization)、エントロピー符号化(Entropy encoding)、ループ内フィルタ処理(in-loop filtering)などを含む。画像が画像ブロックに区分された後、イントラ予測およびインター予測が実行される。次いで、残差が取得された後、変換および量子化が実行される。最後に、エントロピー符号化が実行されてビットストリームを出力する。
イントラ予測とは、現在ブロックの中のサンプルのサンプル値を予測するために、現在の画像の中の再構成された領域の中のサンプルのサンプル値が使用されることを意味する。概して、現在ブロックの中のサンプルの予測値は、現在ブロックの周囲の再構成された隣接ブロックの中のサンプルに基づいて導出される。たとえば、H.264またはH.265では、隣接ブロックの境界(現在ブロックの近くの境界)サンプルが、一般に、現在ブロックの参照サンプルとして使用され、現在ブロックの中のサンプルの予測値が、特定の方法を使用することによってこれらの参照サンプルに基づいて導出される。イントラ予測モードは、たとえば、DC(または平均)モードもしくは平面モードなどの無指向性モード、またはH.265において規定されるような方向性モードである。
イントラ予測を通じて予測情報が取得された後、現在のコーディングブロックの中のサンプルのサンプル値から、対応する予測情報を減算することによって残差情報が取得される。次いで、残差情報は、離散コサイン変換(Discrete Cosine Transformation、DCT)などの方法を使用することによって変換される。最後に、量子化およびエントロピー符号化を通じてビットストリームが取得される。予測信号および再構成された残差信号が合算された後、再構成された信号を取得するために、さらにフィルタ処理演算が実行される必要がある。再構成された信号は、後続の符号化のための基準信号として使用される。
復号は符号化の逆のプロセスである。エントロピー復号、量子化解除、および逆変換が最初に実行されて、残差情報を取得する。現在ブロックに対してイントラ予測が使用されるのか、それともインター予測が使用されるのかを決定するために、ビットストリームが復号される。イントラ符号化が使用される場合、イントラ予測方法を使用することによって、現在の画像の周囲の再構成された領域の中のサンプルのサンプル値に基づいて予測情報が構成される。予測情報および残差情報が合算された後、フィルタ処理演算を実行することによって、再構成された情報が取得され得る。
既存のビデオは、一般に、カラービデオである。ルーマ成分に加えて、カラービデオの中の画像はさらにクロマ成分を含む。したがって、ルーマ成分がコーディングされる必要があり、クロマ成分もコーディングされる必要がある。イントラ予測においてクロマ成分に対してコーディング効率をどのように改善するのかが、現在において依然として技術的課題である。
本発明の実施形態は、クロマブロック予測方法およびデバイスを提供して、イントラ予測におけるクロマ成分(クロマブロック)に対するコーディング効率を改善する。
第1の態様によれば、本発明の一実施形態はクロマブロック予測方法を提供する。方法はエンコーダ側の観点から説明される。方法は、現在クロマブロックに対するイントラ予測において使用されてよく、使用されるイントラ予測モードは、線形モデルモード(linear model mode、略してLMモード)である。方法は、現在クロマブロックのサンプル位置タイプに基づいてフィルタタイプを決定することであって、ここで、フィルタタイプが、現在クロマブロックのサンプル位置タイプに基づいて決定され、現在クロマブロックの各サンプル位置タイプが、フィルタタイプに対応する、決定することと、第1の表示情報を設定することであって、ここで、第1の表示情報が、フィルタタイプを示すために使用される、設定することと、第1の表示情報をビットストリームの中に符号化することとを含んでよく、その結果、後でビットストリームがデコーダ側へ送られる。
本発明のこの実施形態では、エンコーダが、現在ルーマブロックに対して使用されるルーマダウンサンプリングフィルタを現在クロマサンプルのサンプル位置タイプに基づいて決定し得るとともに、表示情報を通じてデコーダ用のダウンサンプリングフィルタのタイプを指定し得ることを、知ることができる。このことは、エンコーダ側とデコーダ側の両方が、クロマサンプル位置に対応するフィルタを取得できることを確実にし、それによって、エンコーダ側のコーディング確度およびコーディング効率を改善する。
第1の態様に基づいて、可能な実施形態では、6個のサンプル位置タイプ、すなわち、type0、type1、type2、type3、type4、およびtype5が設計され得る。したがって、6個のサンプル位置タイプに対応する6個のタイプのルーマダウンサンプリングフィルタ、すなわち、フィルタ0、フィルタ1、フィルタ2、フィルタ3、フィルタ4、およびフィルタ5がある。言い換えれば、現在クロマブロックのサンプル位置タイプは、6個のサンプル位置タイプのうちの1つであってよい。これらのフィルタを設定することによって、エンコーダ側とデコーダ側の両方が、クロマサンプル位置に対応するフィルタを取得することが確実にされる。このことは、実際には異なるビデオシーケンスの中に異なるクロマサンプル位置が存在し得る事例を考慮し、それによって、エンコーダ側のコーディング確度およびコーディング効率を改善する。
第1の態様に基づいて、可能な実施形態では、クロマサンプル位置type0およびtype2が現在は最も一般的であることが考慮され、2つのサンプル位置タイプが代替として設計されてよい。言い換えれば、2つのサンプル位置タイプはtype0およびtype2しか含まない。したがって、2つのタイプのルーマダウンサンプリングフィルタ、すなわち、2つのサンプル位置タイプに対応するフィルタ0およびフィルタ2がある。言い換えれば、現在クロマブロックのサンプル位置タイプは、2つのサンプル位置タイプのうちの1つであってよい。これらのフィルタを設定することによって、最も一般的なコーディング要件が満たされながら、エンコーダ側のコーディング確度およびコーディング効率が改善され得る。
第1の態様に基づいて、可能な実施形態では、シーケンスパラメータセット(sequence parameter set、SPS)パラメータが新たに追加されてよく、SPSパラメータの値は、現在のビデオシーケンスの符号化または復号の間にLMモードにおけるルーマダウンサンプリングフィルタのタイプを示すために使用される。エンコーダ側において、このパラメータは、現在のシーケンスの中のクロマサンプル位置に基づいて設定されてよい。具体的には、第1の表示情報はフィルタタイプに基づいて設定されてよい。第1の表示情報はSPSパラメータの値を含んでよく、ここで、その値は、符号化または復号の間にクロマブロックに対する予測のために使用されるルーマダウンサンプリングフィルタのタイプを示すために使用される。
第1の態様に基づいて、可能な実施形態では、エンコーダ側において複数のイントラ予測モードが事前設定されてよい。複数のイントラ予測モードはLMモードを含む。エンコーダ側は、複数のイントラ予測モードを詳しく検討し、現在クロマブロック用の最適なイントラ予測モードがLMモードであることを決定する。加えて、エンコーダ側は、第2の表示情報をさらに設定することであって、ここで、第2の表示情報がLMモードを示すために使用される、設定することと、第2の表示情報をビットストリームの中に符号化することとを行ってよく、その結果、デコーダ側もLMモードでイントラ予測を実行してコーディング効率を改善する。
第1の態様に基づいて、可能な実施形態では、予測ブロックの構成中、エンコーダ側は、フィルタタイプに対応するフィルタを第1の表示情報に基づいて決定することと、第2のルーマブロックを取得するために、フィルタタイプに対応するフィルタを使用することによって第1のルーマブロックをダウンサンプリングすることであって、ここで、第1のルーマブロックが、現在クロマブロックに対応するルーマブロックである、ダウンサンプリングすることと、テンプレートクロマサンプルおよびテンプレートルーマサンプルを取得することであって、ここで、テンプレートクロマサンプルが、現在クロマブロックの複数の隣接クロマサンプルを含み、テンプレートルーマサンプルが、第1のルーマブロックの複数の隣接ルーマサンプルをダウンサンプリングすることによって取得される、取得することと、テンプレートクロマサンプルおよびテンプレートルーマサンプルに基づいて線形モデル係数を取得することと、第2のルーマブロックおよび線形モデル係数に基づいて現在クロマブロックの予測値を取得することとをさらに行ってよい。
第2の態様によれば、本発明の一実施形態はクロマブロック予測方法を提供する。方法は、現在クロマブロックに対するイントラ予測において使用されてよく、使用されるイントラ予測モードはLMモードである。方法は、第1の表示情報を取得するためにビットストリームを構文解析することであって、ここで、第1の表示情報が、フィルタタイプを示すために使用される、構文解析することと、第2のルーマブロックを取得するために、フィルタタイプに対応するフィルタを使用することによって第1のルーマブロックに対してダウンサンプリング動作を実行することであって、ここで、第1のルーマブロックが、現在クロマブロックに対応するルーマブロックであり、第2のルーマブロックのルーマサンプルの位置が、現在クロマブロックのクロマサンプルの位置に整合する、実行することと、テンプレートクロマサンプルおよびテンプレートルーマサンプルを取得することであって、ここで、テンプレートクロマサンプルが、現在クロマブロックの複数の隣接クロマサンプルを含み、テンプレートルーマサンプルが、第1のルーマブロックの複数の隣接ルーマサンプルに対してダウンサンプリング動作を実行することによって取得される、取得することと、テンプレートクロマサンプルおよびテンプレートルーマサンプルに基づいて線形モデル係数を取得することと、第2のルーマブロックおよび線形モデル係数に基づいて現在クロマブロックの予測値を取得することとを含む。
本発明のこの実施形態では、LMモードに対して、デコーダ側が、現在クロマブロックに対応するルーマブロックのダウンサンプリングのために使用されるフィルタを、現在ブロックのダウンサンプリング中にビットストリームの中の表示情報に基づいて決定し得ることを、知ることができる。このようにして、クロマサンプル位置に対応するフィルタが取得され得る。このことは、実際には異なるビデオシーケンスの中に異なるクロマサンプル位置が存在し得る事例を考慮し、それによって、コーディング確度およびコーディング効率を改善する。
具体的には、本発明のこの実施形態では、線形モデル係数の計算のために使用される、隣接する上側および隣接する左側は、テンプレート(template)と呼ばれることがある。テンプレートとは、線形モデル係数の計算のために使用されるルーマサンプルのセットまたはクロマサンプルのセットである。線形モデル係数の計算のために使用されるルーマサンプル(luma sample)のセットは、テンプレートルーマサンプルと呼ばれることもある。テンプレートルーマサンプルは、(ルーマ画像の中で、テンプレートクロマサンプルに対応する位置においてルーマサンプル値がないことがあるので)ルーマブロックの複数の隣接ルーマサンプルに対してダウンサンプリング動作を実行することによって取得される。線形モデル係数の計算のために使用されるクロマサンプル(chroma sample)のセットは、テンプレートクロマサンプルと呼ばれることもある。テンプレートクロマサンプルは、現在クロマブロックの再構成された複数の隣接クロマサンプルを含む。
第2の態様に基づいて、可能な実施形態では、テンプレートクロマサンプルは、現在クロマブロックの上の隣接クロマサンプルの1つまたは複数の行、および現在クロマブロックの左の隣接クロマサンプルの1つまたは複数の列を特に含む。テンプレートルーマサンプルは、テンプレートクロマサンプルに1対1対応し、テンプレートルーマサンプルの中のサンプルの値およびテンプレートクロマサンプルの中のサンプルの値は、値ペアをなす。
第2の態様に基づいて、可能な実施形態では、テンプレートクロマサンプルは、現在クロマブロックの、上の隣接クロマサンプルの1行および隣接クロマサンプルの1列を含む。したがって、テンプレートルーマサンプルは、ルーマサンプルの1行および左のルーマサンプルの1列を含み、ここで、ルーマサンプルの1行および左のルーマサンプルの1列は、テンプレートクロマサンプルの中のクロマサンプル位置に対応する。
第2の態様に基づいて、可能な実施形態では、テンプレートクロマサンプルは、現在クロマブロックの、上の隣接クロマサンプルの2行および左の隣接クロマサンプルの2列を含む。したがって、テンプレートルーマサンプルは、ルーマサンプルの2行およびルーマサンプルの2列を含み、ここで、ルーマサンプルの2行およびルーマサンプルの2列は、テンプレートクロマサンプルの中のクロマサンプル位置に対応する。
第2の態様に基づいて、可能な実施形態では、テンプレートクロマサンプルは、代替として、現在クロマブロックの左の隣接クロマサンプルの1つまたは複数の列のみを含んでよい。テンプレートルーマサンプルは、ルーマサンプルの1つまたは複数の列のみを含み、テンプレートルーマサンプルは、テンプレートクロマサンプルに1対1対応する。
第2の態様に基づいて、可能な実施形態では、テンプレートクロマサンプルは、代替として、現在クロマブロックの上の隣接クロマサンプルの1つまたは複数の行のみを含んでよい。テンプレートルーマサンプルは、ルーマサンプルの1つまたは複数の行のみを含み、テンプレートルーマサンプルは、テンプレートクロマサンプルに1対1対応する。
第2の態様に基づいて、可能な実施形態では、テンプレートルーマサンプルに対して、第1の表示情報がフィルタタイプを示すので、テンプレートルーマサンプルを取得するために、フィルタタイプに対応するフィルタを使用することによって第1のルーマブロックの複数の隣接ルーマサンプルに対してダウンサンプリング動作が実行されてよい。このようにして、デコーダ側は、テンプレートルーマサンプルを導出するダウンサンプリングプロセス、および現在ブロックのダウンサンプリングプロセスの中で、同じフィルタを使用し、それによって、処理効率を改善する。
たとえば、デコーダ側に対して6個のフィルタタイプが設計され、かつ第1の表示情報によって現在示される値が0である場合、使用されるルーマダウンサンプリングフィルタはフィルタ0であり、テンプレートルーマサンプルの中の各ルーマサンプルの値を取得するために、フィルタ0を使用することによって第1のルーマブロックの複数の隣接ルーマサンプルに対してダウンサンプリング動作が実行されてよい。
第2の態様に基づいて、可能な実施形態では、ビットストリームの構文解析中、ビットストリームを構文解析することによって第2の表示情報がさらに取得されてよい。第2の表示情報は、現在クロマブロックを復号するためにデコーダ側によって使用されるイントラ予測モードがLMモードであることを示すために使用され、その結果、デコーダ側は、ビデオシーケンスの中の現在の画像に対するイントラ予測のために、LMモードを使用すべきであることを決定する。
第2の態様に基づいて、可能な実施形態では、方法は、ビデオシーケンスの中の現在画像ブロックの復号のために使用される。現在画像ブロックは、第1のルーマブロックおよび現在クロマブロックを含み、ビデオシーケンスの中の画像は、4:2:0フォーマットまたは4:2:2フォーマットをなす。
第2の態様に基づいて、可能な実施形態では、エンコーダ側およびデコーダ側は、同じ設計のフィルタタイプを使用してよい。たとえば、エンコーダ側に対して(6個のクロマサンプル位置に対応する)6個のフィルタタイプが設計され、デコーダ側に対しても6個のフィルタタイプが設計される。加えて、デコーダ側の6個のフィルタタイプのダウンサンプリングアルゴリズムは、それぞれ、エンコーダ側の6個のフィルタタイプのダウンサンプリングアルゴリズムに整合する。別の例の場合、エンコーダ側に対して(2つのクロマサンプル位置に対応する)2つのフィルタタイプが設計され、デコーダ側に対しても2つのフィルタタイプが設計される。加えて、デコーダ側の2つのフィルタタイプのダウンサンプリングアルゴリズムは、それぞれ、エンコーダ側の2つのフィルタタイプのダウンサンプリングアルゴリズムに整合する。
第2の態様に基づいて、可能な実施形態では、第1の表示情報は、SPSパラメータの値を含み、ここで、その値は、符号化または復号の間にクロマブロックに対する予測のために使用されるルーマダウンサンプリングフィルタのタイプを示すために使用される。
第2の態様に基づいて、可能な実施形態では、テンプレートクロマサンプルおよびテンプレートルーマサンプルに基づいて線形モデル係数を取得することは、最小2乗法を使用することによってテンプレートクロマサンプルおよびテンプレートルーマサンプルに基づいて線形モデル係数αおよびβを取得することを含む。
第2の態様に基づいて、可能な実施形態では、テンプレートクロマサンプルおよびテンプレートルーマサンプルに基づいて線形モデル係数を取得することは、極値法を使用することによってテンプレートクロマサンプルおよびテンプレートルーマサンプルに基づいて線形モデル係数αおよびβを取得することを含む。
第3の態様によれば、方法は、現在クロマブロックに対するイントラ予測において使用されてよい。方法はデコーダ側の観点から説明されてよく、使用されるイントラ予測モードは、たとえば、LMモードである。方法は、現在クロマブロックのサンプル位置に基づいてフィルタタイプを決定することと、第2のルーマブロックを取得するために、フィルタタイプに対応するフィルタを使用することによって第1のルーマブロックに対してダウンサンプリング動作を実行することであって、ここで、第1のルーマブロックが、現在クロマブロックに対応するルーマブロックである、実行することと、テンプレートクロマサンプルおよびテンプレートルーマサンプルを取得することであって、ここで、テンプレートクロマサンプルが、現在クロマブロックの複数の隣接クロマサンプルを含み、テンプレートルーマサンプルが、第1のルーマブロックの複数の隣接ルーマサンプルに対してダウンサンプリング動作を実行することによって取得される、取得することと、テンプレートクロマサンプルおよびテンプレートルーマサンプルに基づいて線形モデル係数を取得することと、第2のルーマブロックおよび線形モデル係数に基づいて現在クロマブロックの予測値を取得することとを含む。
本発明のこの実施形態では、エンコーダが、クロマサンプル位置に対応するフィルタを取得するために、現在ルーマブロックに対して使用されるルーマダウンサンプリングフィルタを、現在クロマブロックのサンプル位置に基づいて決定し得ることを、知ることができる。このことは、実際には異なるビデオシーケンスの中に異なるクロマサンプル位置が存在し得る事例を考慮し、それによって、コーディング確度およびコーディング効率を改善する。
第3の態様に基づいて、可能な実施形態では、現在クロマブロックのサンプル位置に基づいてフィルタタイプを決定する前に、方法は、第1の表示情報を取得するためにビットストリームを構文解析することを含み、ここで、第1の表示情報は、現在クロマブロックのサンプル位置を示すために使用される。現在クロマブロックのサンプル位置は、フィルタタイプに関連付けられ得る。
本発明のこの実施形態では、エンコーダが、クロマサンプル位置に対応するフィルタを取得するために、第1の表示情報に基づいて現在クロマサンプルのサンプル位置を決定し得ることを、知ることができる。エンコーダ側とデコーダ側の両方は、クロマサンプル位置に対応するフィルタを取得することができ、それによって、エンコーダ側のコーディング確度およびコーディング効率を改善する。
第3の態様に基づいて、可能な実施形態では、現在クロマブロックのサンプル位置は、たとえば、現在クロマブロックのサンプル位置タイプに基づいて決定されてよい。現在クロマブロックのサンプル位置タイプは、フィルタタイプに関連付けられ得る。
一実装形態では、現在クロマブロックのサンプル位置タイプは、以下のサンプル位置タイプ、すなわち、サンプル位置タイプtype0およびサンプル位置タイプtype2のうちの少なくとも1つである。
別の実装形態では、現在クロマブロックのサンプル位置タイプは、以下のサンプル位置タイプ、すなわち、サンプル位置タイプtype0、サンプル位置タイプtype1、サンプル位置タイプtype2、サンプル位置タイプtype3、サンプル位置タイプtype4、およびサンプル位置タイプtype5のうちの少なくとも1つである。
第3の態様に基づいて、可能な実施形態では、第1の表示情報を取得するためにビットストリームを構文解析することは、第1の表示情報を取得するためにビットストリームの中のシーケンスパラメータセット(SPS)パラメータを構文解析することを含む。この実施形態の実施中、エンコーダ側は、特定のSPSパラメータを通じてデコーダ側に現在クロマブロックのサンプル位置タイプを示してよい。このことは、デコーダ側のためのダウンサンプリングフィルタのタイプを指定することと均等であり、それによって、エンコーダ側とデコーダ側の両方が、クロマサンプル位置に対応するフィルタを取得できることを確実にする。
第4の態様によれば、本発明の一実施形態はビデオデータ符号化デバイスを提供する。デバイスは、メモリおよびメモリに結合されたエンコーダを含む。メモリは、ビットストリーム形式でビデオデータを記憶するように構成される。エンコーダは、現在クロマブロックのサンプル位置タイプに基づいてフィルタタイプを決定することと、第1の表示情報を設定することであって、ここで、第1の表示情報が、フィルタタイプを示すために使用される、設定することと、第1の表示情報をビットストリームの中に符号化することとを行うように構成される。具体的には、デバイスは、第1の態様で説明した方法を実施するように構成され得る。
第5の態様によれば、本発明の一実施形態はビデオデータ復号デバイスを提供する。デバイスは、メモリおよびメモリに結合されたデコーダを含む。メモリは、ビットストリーム形式でビデオデータを記憶するように構成される。デコーダは、第1の表示情報を取得するためにビットストリームを構文解析することであって、ここで、第1の表示情報が、フィルタタイプを示すために使用される、構文解析することと、第2のルーマブロックを取得するために、フィルタタイプに対応するフィルタを使用することによって第1のルーマブロックに対してダウンサンプリング動作を実行することであって、ここで、第1のルーマブロックが、現在クロマブロックに対応するルーマブロックである、実行することと、テンプレートクロマサンプルおよびテンプレートルーマサンプルを取得することであって、ここで、テンプレートクロマサンプルが、現在クロマブロックの複数の隣接クロマサンプルを含み、テンプレートルーマサンプルが、第1のルーマブロックの複数の隣接ルーマサンプルに対してダウンサンプリング動作を実行することによって取得される、取得することと、テンプレートクロマサンプルおよびテンプレートルーマサンプルに基づいて線形モデル係数を取得することと、第2のルーマブロックおよび線形モデル係数に基づいて現在クロマブロックの予測値を取得することとを行うように構成される。具体的には、デバイスは、第2の態様で説明した方法を実施するように構成され得る。
第6の態様によれば、本発明の一実施形態はビデオデータ復号デバイスを提供する。デバイスは、メモリおよびメモリに結合されたデコーダを含む。メモリは、ビットストリーム形式でビデオデータを記憶するように構成される。デコーダは、現在クロマブロックのサンプル位置タイプに基づいてフィルタタイプを決定することと、第2のルーマブロックを取得するために、フィルタタイプに対応するフィルタを使用することによって第1のルーマブロックに対してダウンサンプリング動作を実行することであって、ここで、第1のルーマブロックが、現在クロマブロックに対応するルーマブロックである、実行することと、テンプレートクロマサンプルおよびテンプレートルーマサンプルを取得することであって、ここで、テンプレートクロマサンプルが、現在クロマブロックの複数の隣接クロマサンプルを含み、テンプレートルーマサンプルが、第1のルーマブロックの複数の隣接ルーマサンプルに対してダウンサンプリング動作を実行することによって取得される、取得することと、テンプレートクロマサンプルおよびテンプレートルーマサンプルに基づいて線形モデル係数を取得することと、第2のルーマブロックおよび線形モデル係数に基づいて現在クロマブロックの予測値を取得することとを行うように構成される。具体的には、デバイスは、第3の態様で説明した方法を実施するように構成され得る。
第7の態様によれば、本発明の一実施形態は符号化デバイスを提供する。符号化デバイスは、互いに結合されている不揮発性メモリおよびプロセッサを含む。プロセッサは、第1の態様で説明した方法を実行するために、メモリの中に記憶されたプログラムコードを呼び出す。
第8の態様によれば、本発明の一実施形態は復号デバイスを提供する。復号デバイスは、互いに結合されている不揮発性メモリおよびプロセッサを含む。プロセッサは、第2の態様で説明した方法を実行するために、メモリの中に記憶されたプログラムコードを呼び出す。
第9の態様によれば、本発明の一実施形態は復号デバイスを提供する。復号デバイスは、互いに結合されている不揮発性メモリおよびプロセッサを含む。プロセッサは、第3の態様で説明した方法を実行するために、メモリの中に記憶されたプログラムコードを呼び出す。
第10の態様によれば、本発明の一実施形態はシステムを提供する。システムは、第4の態様で説明したデバイスおよび第5の態様で説明したデバイスを含むか、またはシステムは、第4の態様で説明したデバイスおよび第6の態様で説明したデバイスを含む。
第11の態様によれば、本発明の一実施形態は別のシステムを提供する。システムは、第7の態様で説明した符号化デバイスおよび第8の態様で説明した復号デバイスを含むか、またはシステムは、第7の態様で説明した符号化デバイスおよび第9の態様で説明した復号デバイスを含む。
第12の態様によれば、本発明の一実施形態は不揮発性コンピュータ可読記憶媒体を提供する。コンピュータ可読記憶媒体は、第1の態様で説明した方法のプログラムコードを記憶するように構成される。プログラムコードがコンピューティングデバイスによって実行されると、コンピューティングデバイスは第1の態様で説明した方法を実行するように構成される。
第13の態様によれば、本発明の一実施形態は別の不揮発性コンピュータ可読記憶媒体を提供する。コンピュータ可読記憶媒体は、第2の態様または第3の態様で説明した方法のプログラムコードを記憶するように構成される。プログラムコードがコンピューティングデバイスによって実行されると、ユーザ機器は第2の態様または第3の態様で説明した方法を実行するように構成される。
第14の態様によれば、本発明の一実施形態はコンピュータプログラム製品を提供する。コンピュータプログラム製品はプログラム命令を含む。コンピュータプログラム製品がコンピューティングデバイスによって実行されると、コントローラは、第1の態様で説明した方法を実行する。コンピュータプログラム製品はソフトウェアインストールパッケージであってよい。第1の態様の任意の可能な設計において提供される方法が使用される必要があるとき、第1の態様で説明した方法を実施するためにコンピュータプログラム製品がコントローラ上でダウンロードおよび実行されてよい。
第15の態様によれば、本発明の一実施形態は別のコンピュータプログラム製品を提供する。コンピュータプログラム製品はプログラム命令を含む。コンピュータプログラム製品がユーザ機器によって実行されると、コントローラは、第2の態様または第3の態様の任意の可能な設計において提供される方法を実行する。コンピュータプログラム製品はソフトウェアインストールパッケージであってよい。第2の態様または第3の態様の任意の可能な設計において提供される方法が使用される必要があるとき、第2の態様または第3の態様で説明した方法を実施するためにコンピュータプログラム製品がコントローラ上でダウンロードおよび実行されてよい。
本発明の実施形態では、LMモードに対して、エンコーダが、現在ルーマブロックに対して使用されるルーマダウンサンプリングフィルタを、現在クロマブロックのサンプル位置に基づいて決定し得るとともに、表示情報(たとえば、新たに追加されたSPSパラメータの値)を通じてデコーダ用のダウンサンプリングフィルタのタイプを指定し得ることを、知ることができる。このことは、エンコーダ側とデコーダ側の両方が、クロマサンプル位置に対応するフィルタを取得できることを確実にする。このことは、実際には異なるビデオシーケンスの中に異なるクロマサンプル位置が存在し得る事例を考慮し、それによって、ダウンサンプリングされたルーマサンプル位置とクロマサンプル位置との間の整合性を保証し、エンコーダ側のコーディング確度およびコーディング効率を改善する。
本発明の実施形態または背景技術における技術的解決策をより明瞭に説明するために、以下のことは本発明の実施形態または背景技術において使用される添付図面を説明する。
本発明の一実施形態を実施するための例示的なビデオコーディングシステムのブロック図である。 図2におけるエンコーダ20および図3におけるデコーダ30のうちのいずれか1つまたは2つを含む、例示的なビデオコーディングシステムのブロック図である。 本発明の一実施形態を実施するためのエンコーダの例示的な構造のブロック図である。 本発明の一実施形態を実施するためのデコーダの例示的な構造のブロック図である。 例示的な符号化装置または例示的な復号装置のブロック図である。 別の例示的な符号化装置または別の例示的な復号装置のブロック図である。 YUV画像のいくつかのフォーマットの概略図である。 クロマサンプル位置とルーマサンプル位置との間の関係の概略図である。 ルーマブロック、ダウンサンプリングされたルーマブロック、および現在クロマブロックの一実施形態を示す図である。 テンプレートルーマサンプルおよびテンプレートクロマサンプルの一実施形態を示す図である。 テンプレートルーマサンプルおよびテンプレートクロマサンプルの別の実施形態を示す図である。 いくつかのクロマサンプル位置といくつかのルーマサンプル位置との間の関係の例示的な図である。 本発明の一実施形態によるクロマブロック予測方法のフローチャートである。 本発明の一実施形態による別のクロマブロック予測方法のフローチャートである。 ルーマクロマ座標系におけるサンプル値ペアのセットの分布の概略図である。 本発明の一実施形態によるさらに別のクロマブロック予測方法のフローチャートである。 コンテンツ配信サービスを実施するためのコンテンツ供給システムの例示的な構造のブロック図である。 端末デバイスの例示的な構造のブロック図である。
以下のことは、本発明の実施形態における添付の図面を参照しながら、本発明の実施形態を説明する。本発明の実装形態において使用される用語は、本発明の特定の実施形態を説明することを意図するにすぎず、本発明を限定することは意図しない。
ビデオコーディングとは、通常、ビデオまたはビデオシーケンスを形成するピクチャのシーケンスの処理を指す。ビデオコーディングの分野では、「ピクチャ(picture)」、「フレーム(frame)」、および「画像(image)」という用語は、同義語として使用されることがある。本明細書で使用するビデオコーディングとは、ビデオ符号化またはビデオ復号を指す。ビデオ符号化はソース側において実行され、通常、より効率的な記憶および/または送信のために、(たとえば、圧縮することによって)元のビデオピクチャを処理してビデオピクチャを描写するためのデータの量を低減することを含む。ビデオ復号は宛先側において実行され、通常、ビデオピクチャを再構成するために、エンコーダの処理と比較して逆の処理を含む。本実施形態におけるビデオピクチャの「コーディング」は、ビデオシーケンスの「符号化」または「復号」として理解されるべきである。符号化部分と復号部分との組合せは、コーデック(符号化および復号)とも呼ばれる。
ビデオシーケンスの中の複数のピクチャの各々は、通常、重複しないブロックのセットに区分され、コーディングは、通常、ブロックレベルで実行される。言い換えれば、エンコーダ側において、ビデオは、通常、たとえば、空間(イントラピクチャ)予測および/または時間(インターピクチャ)予測を使用して予測ブロックを生成すること、現在ブロック(現在処理されつつある/処理されるべきブロック)から予測ブロックを減算して残差ブロックを取得すること、ならびに残差ブロックを変換するとともに変換領域において残差ブロックを量子化して、送信(圧縮)されるべきデータの量を低減することによって、ブロック(画像ブロックまたはビデオブロックとも呼ばれる)レベルで処理すなわち符号化され、他方ではデコーダ側において、符号化または圧縮されたブロックにエンコーダの処理と比較して逆の処理が適用されて、描写のために現在ブロックを再構成する。さらに、エンコーダはデコーダ処理ループを複製し、その結果、後続のブロックを処理すなわちコーディングするために、両方が同一の予測(たとえば、イントラ予測およびインター予測)および/または再構成を生成する。
「ブロック」という用語は、ピクチャまたはフレームの一部である。本明細書では、現在ブロックとは、現在処理されつつあるブロックである。たとえば、符号化の間、現在ブロックは現在符号化されつつあるブロックであり、復号の間、現在ブロックは復号されつつあるブロックである。現在処理されつつあるブロックがクロマ成分ブロックである場合、そのブロックは現在クロマブロックと呼ばれる。現在クロマブロックに対応するルーマブロックは、現在ルーマブロックと呼ばれることがある。参照ブロックとは、現在ブロック用の基準信号を提供するブロックである。基準信号は、画像ブロックの中のサンプル値、サンプル値、またはサンプル信号を表す。予測ブロックとは、現在ブロック用の予測信号を提供するブロックである。予測信号は、予測ブロックの中のサンプル値、サンプル値、またはサンプル信号を表す。たとえば、複数の参照ブロックが詳しく検討された後、最適参照ブロックが見つけられる。最適参照ブロックは現在ブロックに対する予測を提供し、このブロックは予測ブロックと呼ばれる。
加えて、本明細書では、サンプル(またはペル)はサンプルと呼ばれることもある。それに対応して、サンプル値はサンプルの値(またはサンプル値)と呼ばれることもある。現在ブロックの中に含まれるサンプルがルーマサンプルである場合、現在ブロックは現在ルーマブロックと呼ばれる(または現在ルーマ画像ブロックと呼ばれる)ことがある。現在画像ブロックの中に含まれるサンプルがクロマサンプルである場合、現在画像ブロックは現在クロマブロックと呼ばれる(または現在クロマ画像ブロックと呼ばれる)ことがある。
以下のことは、本発明の一実施形態が適用されるシステムアーキテクチャを説明する。図1Aは、本発明の一実施形態で説明する例示的なビデオコーディングシステム10のブロック図である。本明細書で使用する「ビデオコーデック」という用語は、概して、ビデオエンコーダとビデオデコーダの両方を指す。本明細書では、「ビデオコーディング」または「コーディング」という用語は、概して、ビデオ符号化またはビデオ復号を指してよい。図1Aに示すように、ビデオコーディングシステム10は、ソースデバイス12および宛先デバイス14を含んでよい。ソースデバイス12は符号化ビデオデータを生成し、したがって、ソースデバイス12はビデオ符号化装置と呼ばれることがある。宛先デバイス14は、ソースデバイス12によって生成された符号化ビデオデータを復号してよく、したがって、宛先デバイス14はビデオ復号装置と呼ばれることがある。ソースデバイス12、宛先デバイス14、またはソースデバイス12もしくは宛先デバイス14の様々な実施解決策は、1つまたは複数のプロセッサ、および1つまたは複数のプロセッサに結合されたメモリを含んでよい。メモリは、本明細書で説明するように、限定はしないが、RAM、ROM、EEPROM、フラッシュメモリ、またはコンピュータによってアクセス可能な命令もしくはデータ構造の形態で所望のプログラムコードを記憶するために使用され得る任意の他の媒体を含んでよい。ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、モバイルコンピューティング装置、ノートブック(たとえば、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、「スマートフォン」などのハンドヘルド電話機、テレビセット、カメラ、ディスプレイ装置、デジタルメディアプレーヤ、ビデオゲーム機、車両内コンピュータ、および類似の装置を含む、様々な装置を含んでよい。
ソースデバイス12と宛先デバイス14との間の通信接続は、リンク13を通じて実施されてよく、宛先デバイス14は、ソースデバイス12からリンク13を通じて符号化ビデオデータを受信し得る。リンク13は、ソースデバイス12から宛先デバイス14に符号化ビデオデータを移動させることが可能な1つまたは複数の媒体または装置を含んでよい。一例では、リンク13は、ソースデバイス12が符号化ビデオデータを宛先デバイス14へリアルタイムで直ちに送信することを可能にする、1つまたは複数の通信媒体を含んでよい。この例では、ソースデバイス12は、通信規格(たとえば、ワイヤレス通信プロトコル)に従って符号化ビデオデータを変調し得、被変調ビデオデータを宛先デバイス14へ送信し得る。1つまたは複数の通信媒体は、ワイヤレス通信媒体および/または有線通信媒体、たとえば、無線周波数(RF)スペクトルまたは1つもしくは複数の物理伝送線路を含んでよい。1つまたは複数の通信媒体は、パケットベースネットワークの一部をなしてよく、パケットベースネットワークは、たとえば、ローカルエリアネットワーク、ワイドエリアネットワーク、またはグローバルネットワーク(たとえば、インターネット)である。1つまたは複数の通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス12から宛先デバイス14への通信を容易にする別のデバイスを含んでよい。
ソースデバイス12はエンコーダ20を含み、随意に、ソースデバイス12は、ピクチャソース16、ピクチャプリプロセッサ18、および通信インターフェース22をさらに含んでよい。特定の実施形式では、エンコーダ20、ピクチャソース16、ピクチャプリプロセッサ18、および通信インターフェース22は、ソースデバイス12の中のハードウェア構成要素であってよく、またはソースデバイス12上のソフトウェアプログラムであってもよい。個々の説明は以下の通りである。
ピクチャソース16は、たとえば、実世界のピクチャをキャプチャするように構成された、任意のタイプのピクチャキャプチャデバイス、および/またはピクチャもしくはコメント(スクリーンコンテンツ符号化の場合、スクリーン上のいくつかのテキストも符号化されるべきピクチャまたは画像の一部と見なされる)を生成するための任意のタイプのデバイス、たとえば、コンピュータアニメーションピクチャを生成するように構成されたコンピュータグラフィックスプロセッサ、あるいは実世界のピクチャまたはコンピュータアニメーションピクチャ(たとえば、スクリーンコンテンツまたは仮想現実(virtual reality、VR)ピクチャ)、および/またはそれらの任意の組合せ(たとえば、拡張現実(augmented reality、AR)ピクチャ)を取得および/または提供するように構成された任意のタイプのデバイスを含んでよく、またはそうしたデバイスであってもよい。ピクチャソース16は、ピクチャをキャプチャするように構成されたカメラ、またはピクチャを記憶するように構成されたメモリであってよい。ピクチャソース16は、以前にキャプチャもしくは生成されたピクチャを記憶するための、かつ/またはピクチャを取得もしくは受信するための、任意のタイプの(内部または外部の)インターフェースをさらに含んでよい。ピクチャソース16がカメラであるとき、ピクチャソース16は、たとえば、ローカルカメラ、またはソースデバイスの中に統合された統合カメラであってよい。ピクチャソース16がメモリであるとき、ピクチャソース16は、たとえば、ローカルメモリ、またはソースデバイスの中に統合された統合メモリであってよい。ピクチャソース16がインターフェースを含むとき、インターフェースは、たとえば、外部ビデオソースからピクチャを受信するための外部インターフェースであってよい。外部ビデオソースは、たとえば、カメラなどの外部ピクチャキャプチャデバイス、外部メモリ、または外部ピクチャ生成デバイスである。外部ピクチャ生成デバイスは、たとえば、外部のコンピュータグラフィックスプロセッサ、コンピュータ、またはサーバである。インターフェースは、任意のタイプのインターフェース、たとえば、任意のプロプライエタリなインターフェースプロトコルまたは標準化されたインターフェースプロトコル
による、有線もしくはワイヤレスのインターフェースまたは光インターフェースであってよい。
ピクチャは、ルーマ値を有するサンプルの2次元のアレイまたは行列として見なされてよい。アレイの中のサンプルは、サンプル(sample)(ピクチャ要素(picture element)の短縮形式)またはペル(pel)と呼ばれることもある。アレイまたはピクチャの水平および垂直の方向(または軸)におけるサンプルの数量は、ピクチャのサイズおよび/または解像度を規定する。色の描写のために、3つの色成分が一般に使用される。たとえば、ピクチャは3つのサンプルアレイとして描写されてよく、またはそれらを含んでもよい。RBGフォーマットまたは色空間では、ピクチャは、対応する赤色、緑色、および青色のサンプルアレイを含む。しかしながら、ビデオコーディングでは、各サンプルは、通常、ルミナンス/クロミナンスフォーマットまたはルミナンス/クロミナンス色空間をなして描写される。たとえば、YUVフォーマットでのピクチャは、Y(時々、代わりにLが使用される)によって示されるルミナンス成分、ならびにUおよびVによって示される2つのクロミナンス成分を含む。ルミナンス(短縮してluma)成分Yは、輝度またはグレーレベル強度(たとえば、グレースケールピクチャでは、その2つは同一である)を表し、2つのクロミナンス(短縮してchroma)成分UおよびVは、色度または色情報成分を表す。したがって、YUVフォーマットでのピクチャは、ルーマサンプル値(Y)のルーマサンプルアレイ、およびクロマ値(UおよびV)の2つのクロマサンプルアレイを含む。RGBフォーマットでのピクチャがYUVフォーマットでのピクチャに変換(convert)または変換(transform)されてよく、逆も同様であり、そのプロセスは色変換(color transformation)または色変換(color conversion)とも呼ばれる。ピクチャがモノクロである場合、ピクチャはルーマサンプルアレイのみを含んでよい。本発明のこの実施形態では、ピクチャソース16によってピクチャプロセッサへ送信されるピクチャは、未加工ピクチャデータ17と呼ばれることもある。本発明の可能な実施形態では、ピクチャソース16は、現在のビデオシーケンスの中の各ピクチャのクロマサンプル位置を決定するようにさらに構成されてよい。
ピクチャプリプロセッサ18は、前処理されたピクチャ19または前処理されたピクチャデータ19を取得するために、未加工ピクチャデータ17を受信するとともに未加工ピクチャデータ17を前処理するように構成される。たとえば、ピクチャプリプロセッサ18によって実行される前処理は、トリミング、(たとえば、RGBフォーマットからYUVフォーマットへの)カラーフォーマット変換、色補正、またはノイズ除去を含んでよい。可能な実施形態では、ピクチャプリプロセッサ18は、現在のビデオシーケンスの中のクロマサンプル位置を決定するようにさらに構成されてよい。
エンコーダ20(エンコーダ20とも呼ばれる)は、符号化ピクチャデータ21を提供するために、前処理されたピクチャデータ19を受信するとともに前処理されたピクチャデータ19を関係する予測モード(たとえば、本明細書のこの実施形態ではイントラ予測モード)で処理するように構成される(エンコーダ20の構造的な詳細は、図2、図4、または図5に基づいてさらに以下で説明される)。いくつかの実施形態では、エンコーダ20は、本発明で説明するエンコーダ側においてクロマブロック予測方法の適用を実施するために、以下で説明する実施形態を実行するように構成され得る。
通信インターフェース22は、符号化ピクチャデータ21を受信し、記憶または直接の再構成のためにリンク13を通じて符号化ピクチャデータ21を宛先デバイス14または任意の他のデバイス(たとえば、メモリ)へ送信するように構成され得る。任意の他のデバイスは、復号または記憶のために使用されるいかなるデバイスであってもよい。通信インターフェース22は、たとえば、リンク13を通じた送信のために符号化ピクチャデータ21を適切なフォーマットに、たとえば、データパケットにパッケージングするように構成され得る。
宛先デバイス14はデコーダ30を含み、随意に、宛先デバイス14は、通信インターフェース28、ピクチャポストプロセッサ32、およびディスプレイデバイス34をさらに含んでよい。個々の説明は以下の通りである。
通信インターフェース28は、ソースデバイス12または任意の他のソースから符号化ピクチャデータ21を受信するように構成され得る。任意の他のソースは、たとえば、記憶デバイスであり、記憶デバイスは、たとえば、符号化ピクチャデータ記憶デバイスである。通信インターフェース28は、ソースデバイス12と宛先デバイス14との間のリンク13を通じて、または任意のタイプのネットワークを通じて、符号化ピクチャデータ21を送信または受信するように構成され得る。リンク13は、たとえば、直接有線接続またはワイヤレス接続であり、任意のタイプのネットワークは、たとえば、有線ネットワークもしくはワイヤレスネットワーク、またはそれらの任意の組合せ、あるいは任意のタイプのプライベートネットワークもしくはパブリックネットワーク、またはそれらの任意の組合せである。通信インターフェース28は、たとえば、符号化ピクチャデータ21を取得するために、通信インターフェース22を通じて送信されたデータパケットをデパッケージングするように構成され得る。
通信インターフェース28と通信インターフェース22の両方は、単方向通信インターフェースまたは双方向通信インターフェースとして構成されてよく、たとえば、接続をセットアップするためのメッセージを送るとともに受信し、かつ通信リンクに関係する任意の他の情報、および/または符号化ピクチャデータ送信などのデータ送信を、認識応答および交換するように構成されてよい。
デコーダ30(デコーダ30とも呼ばれる)は、符号化ピクチャデータ21を受信し、復号ピクチャデータ31または復号ピクチャ31を提供するように構成される(デコーダ30の構造的な詳細は、図3、図4、または図5に基づいてさらに以下で説明される)。いくつかの実施形態では、デコーダ30は、本発明で説明するデコーダ側においてクロマブロック予測方法の適用を実施するために、以下で説明する実施形態を実行するように構成され得る。
ピクチャポストプロセッサ32は、後処理されたピクチャデータ33を取得するために、復号ピクチャデータ31(再構成されたピクチャデータとも呼ばれる)を後処理するように構成される。ピクチャポストプロセッサ32によって実行される後処理は、(たとえば、YUVフォーマットからRGBフォーマットへの)カラーフォーマット変換、色補正、トリミング、リサンプリング、または任意の他の処理を含んでよい。ピクチャポストプロセッサ32は、後処理されたピクチャデータ33をディスプレイデバイス34へ送信するようにさらに構成され得る。
ディスプレイデバイス34は、たとえば、ユーザまたは視聴者にピクチャを表示するための、後処理されたピクチャデータ33を受信するように構成される。ディスプレイデバイス34は、再構成されたピクチャを提示するように構成された任意のタイプのディスプレイであってよく、またはそうしたディスプレイを含んでもよく、たとえば、統合されるかまたは外部のディスプレイまたはモニタであってよい。たとえば、ディスプレイは、液晶ディスプレイ(liquid crystal display、LCD)、有機発光ダイオード(organic light emitting diode、OLED)ディスプレイ、プラズマディスプレイ、プロジェクタ、マイクロLEDディスプレイ、液晶オンシリコン(liquid crystal on silicon、LCoS)、デジタル光プロセッサ(digital light processor、DLP)、または任意のタイプの他のディスプレイを含んでよい。
図1Aはソースデバイス12および宛先デバイス14を別個のデバイスとして示すが、デバイスの実施形態はまた、ソースデバイス12もしくは対応する機能と宛先デバイス14もしくは対応する機能の両方、またはその両方の機能を含んでよい。そのような実施形態では、ソースデバイス12または対応する機能および宛先デバイス14または対応する機能は、同じハードウェアおよび/またはソフトウェアを使用することによって、あるいは別個のハードウェアおよび/もしくはソフトウェアまたはそれらの任意の組合せを使用することによって実装され得る。
本説明に基づいて、様々なユニットの機能または図1Aに示すソースデバイス12および/もしくは宛先デバイス14の機能の存在および(厳密な)分割が実際のデバイスおよび適用例に応じて変わってよいことが、当業者に知られ得る。ソースデバイス12および宛先デバイス14は各々、任意のタイプのハンドヘルドまたは固定のデバイス、たとえば、ノートブックまたはラップトップコンピュータ、モバイルフォン、スマートフォン、パッドまたはタブレットコンピュータ、ビデオカメラ、デスクトップコンピュータ、セットトップボックス、テレビジョン、カメラ、車載デバイス、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲーム機、(コンテンツサービスサーバまたはコンテンツ配信サーバなどの)ビデオストリーミングデバイス、ブロードキャスト受信機デバイスまたはブロードキャスト送信機デバイスを含む、広範囲のデバイスのうちのいずれか1つであってよく、任意のタイプのオペレーティングシステムを使用しなくてもよく使用してもよい。
エンコーダ20およびデコーダ30は各々、様々な適切な回路のうちのいずれか、たとえば、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(digital signal processor、DSP)、特定用途向け集積回路(application-specific integrated circuit、ASIC)、フィールドプログラマブルゲートアレイ(field-programmable gate array、FPGA)、個別論理、ハードウェア、またはそれらの任意の組合せとして実装され得る。部分的にソフトウェアを使用することによって本技術が実装される場合、デバイスは、適切かつ非一時的なコンピュータ可読記憶媒体の中にソフトウェア命令を記憶してよく、本開示の技術を実行するために1つまたは複数のプロセッサなどのハードウェアを使用することによって命令を実行してよい。上記のもの(ハードウェア、ソフトウェア、ハードウェアとソフトウェアとの組合せなどを含む)のうちのいずれも、1つまたは複数のプロセッサと見なされてよい。
場合によっては、図1Aに示すビデオコーディングシステム10は一例にすぎず、本出願における技術は、符号化デバイスと復号デバイスとの間の任意のデータ通信を必ずしも含むとは限らないビデオコーディング設定(たとえば、ビデオ符号化またはビデオ復号)に適用可能である。他の例では、データは、ローカルメモリから取り出されてよく、ネットワークを介してストリーミングされるなどしてもよい。ビデオ符号化デバイスは、データを符号化してよく、符号化データをメモリの中に記憶してよく、かつ/またはビデオ復号デバイスは、メモリからデータを取り出してよく、そのデータを復号してよい。いくつかの例では、符号化および復号は、互いに通信しないが、データをメモリへ単に符号化し、かつ/またはメモリからデータを取り出しそのデータを復号する、デバイスによって実行される。
図1Bは、例示的な一実施形態による、図2におけるエンコーダ20および/または図3におけるデコーダ30を含むビデオコーディングシステム40の一例の例示的な図である。ビデオコーディングシステム40は、本発明の実施形態における様々な技術の組合せを実施することができる。図示した実装形態では、ビデオコーディングシステム40は、イメージングデバイス41、エンコーダ20、デコーダ30(および/または処理ユニット46の論理回路47によって実装されたビデオエンコーダ/デコーダ)、アンテナ42、1つもしくは複数のプロセッサ43、1つもしくは複数のメモリ44、および/またはディスプレイデバイス45を含んでよい。
図1Bに示すように、イメージングデバイス41、アンテナ42、処理ユニット46、論理回路47、エンコーダ20、デコーダ30、プロセッサ43、メモリ44、および/またはディスプレイデバイス45は、互いに通信することができる。説明したように、エンコーダ20およびデコーダ30を使用することによってビデオコーディングシステム40が図示されるが、ビデオコーディングシステム40は、様々な例ではエンコーダ20のみまたはデコーダ30のみを含んでよい。
いくつかの例では、アンテナ42は、ビデオデータの符号化ビットストリームを送信または受信するように構成され得る。さらに、いくつかの例では、ディスプレイデバイス45は、ビデオデータを提示するように構成され得る。いくつかの例では、論理回路47は処理ユニット46によって実装され得る。処理ユニット46は、特定用途向け集積回路(application-specific integrated circuit、ASIC)論理、グラフィックスプロセッサ、汎用プロセッサなどを含んでよい。ビデオコーディングシステム40はまた、随意のプロセッサ43を含んでよい。随意のプロセッサ43は、同様に、特定用途向け集積回路(application-specific integrated circuit、ASIC)論理、グラフィックスプロセッサ、汎用プロセッサなどを含んでよい。いくつかの例では、論理回路47は、ハードウェア、たとえば、ビデオコーディング専用ハードウェアによって実装されてよく、プロセッサ43は、汎用ソフトウェア、オペレーティングシステムなどによって実装されてよい。加えて、メモリ44は、任意のタイプのメモリ、たとえば、揮発性メモリ(たとえば、スタティックランダムアクセスメモリ(Static Random Access Memory、SRAM)、ダイナミックランダムアクセスメモリ(Dynamic Random Access Memory、DRAM))、または不揮発性メモリ(たとえば、フラッシュメモリ)であってよい。非限定的な例では、メモリ44はキャッシュメモリによって実装され得る。いくつかの例では、論理回路47は、(たとえば、画像バッファの実装のために)メモリ44にアクセスし得る。他の例では、論理回路47および/または処理ユニット46は、画像バッファなどの実装のためにメモリ(たとえば、キャッシュ)を含んでよい。
いくつかの例では、論理回路によって実装されたエンコーダ20は、(たとえば、処理ユニット46またはメモリ44によって実装された)画像バッファ、および(たとえば、処理ユニット46によって実装された)グラフィックス処理ユニットを含んでよい。グラフィックス処理ユニットは、画像バッファに通信可能に結合されてよい。グラフィックス処理ユニットは、図2を参照しながら説明される様々なモジュールおよび/または本明細書で説明される任意の他のエンコーダシステムもしくはサブシステムを実装するために、論理回路47によって実装されたエンコーダ20を含んでよい。論理回路は、本明細書で説明する様々な動作を実行するように構成され得る。
いくつかの例では、デコーダ30は、図3におけるデコーダ30を参照しながら説明される様々なモジュールおよび/または本明細書で説明される任意の他のデコーダシステムもしくはサブシステムを実装するために、同様の方法で論理回路47によって実装され得る。いくつかの例では、論理回路によって実装されたデコーダ30は、(たとえば、処理ユニット2820またはメモリ44によって実装された)画像バッファ、および(たとえば、処理ユニット46によって実装された)グラフィックス処理ユニットを含んでよい。グラフィックス処理ユニットは、画像バッファに通信可能に結合され得る。グラフィックス処理ユニットは、図3を参照しながら説明される様々なモジュールおよび/または本明細書で説明される任意の他のデコーダシステムもしくはサブシステムを実装するために、論理回路47によって実装されたデコーダ30を含んでよい。
いくつかの例では、アンテナ42は、ビデオデータの符号化ビットストリームを受信するように構成され得る。説明したように、符号化ビットストリームは、本明細書で説明するビデオフレームコーディングに関係する、データ、インジケータ、インデックス値、モード選択データなど、たとえば、コーディング区分に関係するデータ(たとえば、変換係数もしくは量子化変換係数、(説明するような)随意のインジケータ、および/またはコーディング区分を規定するデータ)を含んでよい。ビデオコーディングシステム40は、アンテナ42に結合されており符号化ビットストリームを復号するように構成されるデコーダ30をさらに含んでよい。ディスプレイデバイス45は、ビデオフレームを提示するように構成される。
本発明のこの実施形態では、エンコーダ20を参照しながら説明する例に対して、デコーダ30が逆プロセスを実行するように構成され得ることを理解されたい。シグナリングシンタックス要素に関して、デコーダ30は、そのようなシンタックス要素を受信および構文解析し、関係するビデオデータをそれに対応して復号するように構成され得る。いくつかの例では、エンコーダ20は、シンタックス要素を符号化ビデオビットストリームの中にエントロピー符号化し得る。そのような例では、デコーダ30は、そのようなシンタックス要素を構文解析してよく、関係するビデオデータをそれに対応して復号してよい。
本発明の実施形態で説明するクロマブロック予測方法が主にイントラ予測プロセスにおいて使用され、エンコーダ20とデコーダ30の両方においてプロセスが存在することに留意されたい。本発明の実施形態におけるエンコーダ20/デコーダ30は、H.263、H.264、HEVV、MPEG-2、MPEG-4、VP8、もしくはVP9などのビデオ標準プロトコルに対応するか、または(H.266などの)次世代ビデオ標準プロトコルに対応する、エンコーダ/デコーダであってよい。
図2は、本発明の一実施形態を実施するように構成された例示的なエンコーダ20の概略/概念ブロック図である。図2の例では、エンコーダ20は、残差計算ユニット204、変換処理ユニット206、量子化ユニット208、逆量子化ユニット210、逆変換処理ユニット212、再構成ユニット214、バッファ216、ループフィルタユニット220、復号ピクチャバッファ(decoded picture buffer、DPB)230、予測処理ユニット260、およびエントロピー符号化ユニット270を含む。予測処理ユニット260は、インター予測ユニット244、イントラ予測ユニット254、およびモード選択ユニット262を含んでよい。インター予測ユニット244は、動き推定ユニットおよび動き補償ユニット(図に示さず)を含んでよい。図2に示すエンコーダ20は、ハイブリッドビデオエンコーダ、またはハイブリッドビデオコーデックに基づくビデオエンコーダと呼ばれることもある。
たとえば、残差計算ユニット204、変換処理ユニット206、量子化ユニット208、予測処理ユニット260、およびエントロピー符号化ユニット270は、エンコーダ20の順方向信号経路を形成し、他方では、たとえば、逆量子化ユニット210、逆変換処理ユニット212、再構成ユニット214、バッファ216、ループフィルタ220、復号ピクチャバッファ(decoded picture buffer、DPB)230、および予測処理ユニット260は、エンコーダの逆方向信号経路を形成する。エンコーダの逆方向信号経路はデコーダの信号経路に相当する(図3におけるデコーダ30を参照)。
エンコーダ20は、たとえば、入力部202を通じて、ピクチャ201またはピクチャ201の画像ブロック203、たとえば、ビデオまたはビデオシーケンスを形成するピクチャのシーケンスの中のピクチャを受信する。画像ブロック203は、現在ピクチャブロックまたは符号化されるべきピクチャブロックと呼ばれることもある。ピクチャ201は、現在ピクチャまたは符号化されるべきピクチャと呼ばれることがある(特にビデオコーディングでは、他のピクチャから現在ピクチャを区別するために、他のピクチャは、たとえば、同じビデオシーケンス、すなわち、現在ピクチャも含むビデオシーケンスの中の、前に符号化および/または復号されたピクチャである)。
エンコーダ20の一実施形態は、ピクチャ201を画像ブロック203などの複数のブロックに区分するように構成された区分ユニット(図2に示さず)を含んでよい。ピクチャ201は、通常、重複しない複数のブロックに区分される。区分ユニットは、ビデオシーケンスの中のすべてのピクチャに対して同じブロックサイズを、かつブロックサイズを規定する対応するグリッドを使用するか、あるいはピクチャまたはサブセットまたはピクチャグループの間でブロックサイズを変更し、かつ各ピクチャを対応するブロックに区分するように、構成され得る。
一例では、エンコーダ20の予測処理ユニット260は、上記で説明した区分技法の任意の組合せを実行するように構成され得る。
ピクチャ201のように、画像ブロック203もルーマ値(サンプル値)を有するサンプルの2次元のアレイまたは行列であり、またはそのように見なされてもよいが、画像ブロック203のサイズはピクチャ201のサイズよりも小さい。言い換えれば、画像ブロック203は、たとえば、1つのサンプルアレイ(たとえば、モノクロピクチャ201の場合にはルーマアレイ)、3つのサンプルアレイ(たとえば、カラーピクチャの場合には1つのルーマアレイおよび2つのクロマアレイ)、または適用されるカラーフォーマットに応じて任意の他の数量および/もしくはタイプのアレイを含んでよい。画像ブロック203の水平および垂直の方向(または軸)におけるサンプルの数量は、画像ブロック203のサイズを規定する。
図2に示すエンコーダ20は、ピクチャ201をブロック単位で符号化し、たとえば、各画像ブロック203を符号化および予測するように構成される。
残差計算ユニット204は、ピクチャ画像ブロック203および予測ブロック265に基づいて残差ブロック205を計算し(予測ブロック265についてのさらなる詳細は以下で提供される)、たとえば、ピクチャ画像ブロック203のサンプル値から予測ブロック265のサンプル値をサンプル単位で(サンプル単位で)減算することによってサンプル領域における残差ブロック205を取得するように構成される。
変換処理ユニット206は、残差ブロック205のサンプル値に変換、たとえば、離散コサイン変換(discrete cosine transform、DCT)または離散サイン変換(discrete sine transform、DST)を適用して、変換領域における変換係数207を取得するように構成される。変換係数207は、変換残差係数と呼ばれることもあり、変換領域における残差ブロック205を表す。
変換処理ユニット206は、HEVC/H.265において指定される変換などのDCT/DSTの整数近似を適用するように構成され得る。直交DCT変換と比較して、そのような整数近似は、通常、特定の係数によってスケーリングされる。順変換および逆変換を使用することによって処理される残差ブロックのノルムを維持するために、追加のスケール係数を適用することは変換プロセスの一部である。スケール係数は、通常、いくつかの制約に基づいて選ばれる。たとえば、スケール係数は、シフト演算用の2のべき乗、変換係数のビット深度、確度と実装コストとの間のトレードオフなどである。特定のスケーリング係数が、たとえば、デコーダ側30における逆変換処理ユニット212による、たとえば、逆変換(および、たとえば、エンコーダ側20における逆変換処理ユニット212による、対応する逆変換)に対して指定され、たとえば、エンコーダ側20における変換処理ユニット206による、順変換用の対応するスケーリング係数が、それに応じて指定されてよい。
量子化ユニット208は、たとえば、スカラー量子化またはベクトル量子化を適用することによって、変換係数207を量子化して量子化変換係数209を取得するように構成される。量子化変換係数209は、量子化残差係数209と呼ばれることもある。量子化プロセスは、変換係数207の一部または全部に関連するビット深度を低減し得る。たとえば、nビットの変換係数は、量子化の間にmビットの変換係数に切り捨てられてよく、ただし、nはmよりも大きい。量子化度は、量子化パラメータ(quantization parameter、QP)を調整することによって修正されてよい。たとえば、スカラー量子化の場合、より細かいかまたはより粗い量子化を達成するために、異なるスケールが適用されてよい。より小さい量子化ステップは、より細かい量子化に対応し、より大きい量子化ステップは、より粗い量子化に対応する。適切な量子化ステップサイズが、量子化パラメータ(quantization parameter、QP)によって示されてよい。量子化パラメータは、たとえば、適切な量子化ステップサイズの既定のセットへのインデックスであってよい。たとえば、より小さい量子化パラメータは、より細かい量子化(より小さい量子化ステップサイズ)に対応し得、より大きい量子化パラメータは、より粗い量子化(より大きい量子化ステップサイズ)に対応し得、またはその逆である。量子化は、量子化ステップサイズによる除算と、たとえば、逆量子化ユニット210によって実行される、対応する量子化および/もしくは逆量子化とを含んでよく、または量子化ステップサイズによる乗算を含んでよい。HEVCなどのいくつかの規格による実施形態では、量子化パラメータは、量子化ステップサイズを決定するために使用され得る。概して、量子化ステップサイズは、除算を含む式の固定小数点近似を使用することによって、量子化パラメータに基づいて計算されてよい。残差ブロックのノルムを復元するために量子化および量子化解除に対して追加のスケーリング係数が導入されてよく、ここで、量子化ステップサイズおよび量子化パラメータを求める式の固定小数点近似において使用されるスケールのため、残差ブロックのノルムが修正されることがある。例示的な実装形態では、逆変換および量子化解除のスケールは組み合わせられてよい。代替として、カ
スタマイズされた量子化テーブルが使用されてよく、たとえば、ビットストリームの中で、エンコーダからデコーダにシグナリングされてよい。量子化は損失のある演算であり、ここで、量子化ステップサイズを大きくするとともに損失が増大する。
逆量子化ユニット210は、量子化ユニット208の逆量子化を量子化係数に適用して、量子化解除された係数211を取得し、たとえば、量子化ユニット208と同じ量子化ステップに基づいて、またはそうした量子化ステップを使用することによって、量子化ユニット208によって適用された量子化方式の逆量子化方式を適用するように構成される。量子化解除された係数211は、量子化解除された残差係数211と呼ばれることもあり、量子化による損失に起因して通常は変換係数と同一ではないが、変換係数207に対応し得る。
逆変換処理ユニット212は、サンプル領域における逆変換ブロック213を取得するために、変換処理ユニット206によって適用された変換の逆変換、たとえば、逆離散コサイン変換(discrete cosine transform、DCT)または逆離散サイン変換(discrete sine transform、DST)を適用するように構成される。逆変換ブロック213は、逆変換量子化解除されたブロック213または逆変換残差ブロック213と呼ばれることもある。
再構成ユニット214(たとえば、加算器214)は、たとえば、再構成された残差ブロック213のサンプル値と予測ブロック265のサンプル値とを加算することによって、逆変換ブロック213(すなわち、再構成された残差ブロック213)を予測ブロック265に加算して、サンプル領域における再構成されたブロック215を取得するように構成される。
随意に、たとえば、ラインバッファ216の、バッファユニット216(略して「バッファ」216)は、たとえば、イントラ予測用の、再構成されたブロック215および対応するサンプル値をバッファリングすなわち記憶するように構成される。他の実施形態では、エンコーダは、任意のタイプの推定および/または予測、たとえば、イントラ予測のために、バッファユニット216の中に記憶されている、フィルタ処理されていない再構成されたブロックおよび/または対応するサンプル値を使用するように構成され得る。
たとえば、エンコーダ20の一実施形態は、バッファユニット216が、イントラ予測ユニット254のための再構成されたブロック215を記憶するために使用されるだけでなく、ループフィルタユニット220(図2に示さず)のためにも使用されるように、かつ/または、たとえば、バッファユニット216および復号ピクチャバッファユニット230が1つのバッファを形成するように、構成されてよい。他の実施形態では、フィルタ処理済みのブロック221、および/または復号ピクチャバッファ230からのブロックもしくはサンプル(そのブロックまたはサンプルは図2に示されない)が、イントラ予測ユニット254のための入力または基準として使用される。
ループフィルタユニット220(簡潔に「ループフィルタ」220と呼ばれる)は、サンプル遷移を平滑化するかまたはビデオ品質を改善するために、再構成されたブロック215をフィルタ処理してフィルタ処理済みのブロック221を取得するように構成される。ループフィルタユニット220は、たとえば、デブロッキングフィルタ、サンプル適応オフセット(sample-adaptive offset、SAO)フィルタ、あるいは双方向フィルタ、適応ループフィルタ(adaptive loop filter、ALF)、シャープ化もしくは平滑化フィルタ、または協調フィルタなどの別のフィルタを含む、1つまたは複数のループフィルタを表すことを意図する。ループフィルタユニット220はループ内フィルタとして図2に示されるが、別の構成では、ループフィルタユニット220はループ後フィルタとして実装されてよい。フィルタ処理済みのブロック221は、フィルタ処理済みの再構成されたブロック221と呼ばれることもある。復号ピクチャバッファ230は、ループフィルタユニット220が、再構成された符号化ブロックに対してフィルタ処理演算を実行した後、再構成された符号化ブロックを記憶し得る。
エンコーダ20(それに対応して、ループフィルタユニット220)の一実施形態は、たとえば、直ちに、またはエントロピー符号化ユニット270もしくは任意の他のエントロピー符号化ユニットによって実行されるエントロピー符号化の後、(サンプル適応オフセット情報などの)ループフィルタパラメータを出力するように構成されてよく、その結果、たとえば、デコーダ30は、同じループフィルタパラメータを受信し得、同じループフィルタパラメータを復号に適用し得る。
復号ピクチャバッファ(decoded picture buffer、DPB)230は、エンコーダ20によってビデオデータを符号化するための参照ピクチャデータを記憶する参照ピクチャメモリであってよい。DPB230は、ダイナミックランダムアクセスメモリ(dynamic random access memory、DRAM)(同期DRAM(synchronous DRAM、SDRAM)、磁気抵抗RAM(magnetoresistive RAM、MRAM)、および抵抗RAM(resistive RAM、RRAM)を含む)または別のタイプのメモリデバイスなどの、様々なメモリデバイスのうちのいずれか1つによって形成され得る。DPB230およびバッファ216は、同じメモリデバイスまたは別個のメモリデバイスによって設けられてよい。一例では、復号ピクチャバッファ(decoded picture buffer、DPB)230は、フィルタ処理済みのブロック221を記憶するように構成される。復号ピクチャバッファ230は、同じ現在ピクチャの、または異なるピクチャの、以前にフィルタ処理された別のブロック、たとえば、以前に再構成かつフィルタ処理されたブロック221、たとえば、以前に再構成されたピクチャを記憶するようにさらに構成されてよく、たとえば、インター予測用の、以前に再構成された完全な、すなわち、復号されたピクチャ(ならびに対応する参照ブロックおよびサンプル)、および/または部分的に再構成された現在ピクチャ(ならびに対応する参照ブロックおよびサンプル)を提供し得る。一例では、再構成されたブロック215が、ループ内フィルタ処理を用いずに再構成される場合、復号ピクチャバッファ(decoded picture buffer、DPB)230は、再構成されたブロック215を記憶するように構成される。
ブロック予測処理ユニット260とも呼ばれる予測処理ユニット260は、画像ブロック203(現在ピクチャ201の現在画像ブロック203)、および再構成されたピクチャデータ、たとえば、同じ(現在)ピクチャの参照サンプルをバッファ216から、かつ/または以前に復号された1つもしくは複数のピクチャの参照ピクチャデータ231を復号ピクチャバッファ230から受信または取得し、そのようなデータを予測のために処理し、すなわち、インター予測ブロック245またはイントラ予測ブロック255であってよい予測ブロック265を提供するように構成される。
モード選択ユニット262は、残差ブロック205を計算するとともに再構成されたブロック215を再構成するために、予測モード(たとえば、イントラ予測モードまたはインター予測モード)、および/または予測ブロック265として使用されるべき対応する予測ブロック245もしくは255を選択するように構成され得る。
モード選択ユニット262の一実施形態は、(たとえば、予測処理ユニット260によってサポートされる予測モードから)予測モードを選択するように構成されてよく、ここで、予測モードは、最適整合もしくは最小残差(最小残差は、送信または記憶のためのより良好な圧縮を意味する)をもたらし、または最小シグナリングオーバーヘッド(最小シグナリングオーバーヘッドは、送信または記憶のためのより良好な圧縮を意味する)をもたらし、あるいはその両方を考慮するかまたはその両方のバランスをとる。モード選択ユニット262は、レートひずみ最適化(rate distortion optimization、RDO)に基づいて予測モードを決定し、すなわち、最小レートひずみ最適化をもたらす予測モードを選択するか、または関係するレートひずみがそれに対して少なくとも予測モード選択基準を満たす予測モードを選択するように構成され得る。
予測処理ユニット260は、たとえば、4分木(quad-tree、QT)区分、2分木(binary-tree、BT)区分、3分木(triple-tree、TT)区分、またはそれらの任意の組合せを反復的に使用するによって、より小さいブロック区分またはサブブロックに画像ブロック203を区分し、ブロック区分またはサブブロックの各々に対して、たとえば、予測を実行するようにさらに構成されてよく、ここで、モード選択は、区分された画像ブロック203の木構造の選択、およびブロック区分またはサブブロックの各々に適用される予測モードの選択を含む。
インター予測ユニット244は、動き推定(motion estimation、ME)ユニット(図2に示さず)および動き補償(motion compensation、MC)ユニット(図2に示さず)を含んでよい。動き推定ユニットは、動き推定のために、ピクチャ画像ブロック203(現在ピクチャ201の現在ピクチャ画像ブロック203)、および復号ピクチャ231、または以前に再構成された少なくとも1つまたは複数のブロック、たとえば、以前に復号された1つまたは複数の他の/異なるピクチャ231の再構成された1つまたは複数のブロックを受信または取得するように構成される。たとえば、ビデオシーケンスは、現在ピクチャおよび以前に復号されたピクチャ31を含んでよい。言い換えれば、現在ピクチャおよび以前に復号されたピクチャ31は、ビデオシーケンスを形成するピクチャのシーケンスの一部であってよく、またはそれらを形成してよい。
たとえば、エンコーダ20は、複数の他のピクチャのうちの同じピクチャもしくは異なるピクチャの複数の参照ブロックから参照ブロックを選択し、参照ピクチャを動き推定ユニット(図2に示さず)に提供し、かつ/または参照ブロックの位置(座標XおよびY)と現在ブロックの位置との間のオフセット(空間的なオフセット)をインター予測パラメータとして提供するように構成され得る。このオフセットは、動きベクトル(motion vector、MV)とも呼ばれる。
動き補償ユニットは、インター予測パラメータを取得し、インター予測ブロック245を取得するために、インター予測パラメータに基づいて、またはインター予測パラメータを使用することによって、インター予測を実行するように構成される。動き補償ユニット(図2に示さず)によって実行される動き補償は、動き推定を通じて決定された動き/ブロックベクトルに基づいて予測ブロックをフェッチまたは生成すること(場合によってはサブサンプル精度を得るために補間を実行すること)を含んでよい。補間フィルタ処理は、知られている見本のサンプルから追加の見本のサンプルを生成してよく、それによって、ピクチャブロックをコーディングするために使用され得る候補予測ブロックの数量を潜在的に増大させる。現在ピクチャブロックのPU用の動きベクトルを受信すると、動き補償ユニット246は、1つの参照ピクチャリストの中で動きベクトルが指し示す先の予測ブロックの位置を特定し得る。動き補償ユニット246は、デコーダ30によってビデオスライスのピクチャブロックを復号するために、ブロックおよびビデオスライスに関連するシンタックス要素をさらに生成し得る。
イントラ予測ユニット254は、ピクチャ画像ブロック203(現在ピクチャブロック)、およびイントラ推定用の同じピクチャの、以前に再構成された1つまたは複数のブロック、たとえば、再構成された隣接ブロックを取得するように構成される。たとえば、エンコーダ20は、複数のイントラ予測モードからイントラ予測モード(たとえば、LM予測モード)を選択するように構成され得る。
たとえば、ビデオシーケンスの中の画像のクロマ成分に対して、H.265では、画像のクロマ成分用の5つのイントラ予測モード、すなわち、planarモード、垂直モード、水平モード、DCモード、および派生モード(DM)があり得る。次世代ビデオコーディング規格(たとえば、H.266)では、画像のクロマ成分用のイントラ予測モードは成分交差予測(Cross component prediction、CCP)モードをさらに含み、ここで、成分交差予測(Cross component prediction、CCP)モードは、成分交差イントラ予測モード(Cross component intra prediction、CCIP)またはcross component linear mode(CCLM)予測モードとも呼ばれる。CCLM予測モードは、簡潔に線形モデルモード(linear model mode、略してLMモード)と呼ばれることもある。LMモードとは、ルーマとクロマとの間のテクスチャ相関を使用するクロマイントラ予測方法である。
別の例の場合、ビデオシーケンスの中の画像のルーマ成分に対して、H.265ではルーマ成分用の合計35個のイントラ予測モードがあり、ここで、35個のイントラ予測モードは、33個の方向性予測モード、DC予測モード、およびplanar予測モードを含む。方向性予測モードは、(intra mode indexフラグを使用して)特定の方向で、現在ブロックの中のサンプルの位置に参照サンプルをマッピングして現在サンプルの予測値を取得すること、または(intra mode indexフラグを使用して)特定の方向で、現在のブロックの中の各サンプルの位置を参照サンプルに逆にマッピングすることを指し、ここで、対応する参照サンプルのサンプル値は、現在サンプルの予測値である。方向性予測モードとは異なり、DC予測モードは、現在ブロックの中のサンプルの予測値として参照サンプルの平均を使用し、planarモードは、現在サンプルの上および左における参照サンプルのサンプル値、ならびに現在ブロックの右上および左下における参照サンプルのサンプル値を使用して、現在サンプルの予測値を共同で導出する。
イントラ予測ユニット254は、たとえば、選択されたイントラ予測モードのイントラ予測パラメータに基づいて、イントラ予測ブロック255を決定するようにさらに構成される。いずれの場合も、ブロック用のイントラ予測モードを選択した後、イントラ予測ユニット254は、イントラ予測パラメータ、すなわち、ブロック用の選択されたイントラ予測モードを示す情報を、エントロピー符号化ユニット270に提供するようにさらに構成される。
本発明のこの実施形態では、イントラ予測ユニット254は、フィルタセットをさらに含んでよい。フィルタセットは複数のフィルタタイプを含み、異なるフィルタタイプは、それぞれ、異なるルーマブロックダウンサンプリングアルゴリズムを表し、各フィルタタイプは1つのクロマサンプル位置に対応する。イントラ予測ユニット254は、現在のビデオシーケンスのクロマサンプル位置を決定し、現在の符号化に対して使用されるフィルタタイプをクロマサンプル位置に基づいて決定し、フィルタタイプに基づいて表示情報を生成するようにさらに構成され得る。表示情報は、現在のビデオシーケンスの符号化または復号の間(たとえば、ピクチャ201または画像ブロック203の符号化または再構成の間)、LM予測モードでのルーマ画像のダウンサンプリングプロセスにおいて使用されるフィルタタイプを示すために使用される。イントラ予測ユニット254は、フィルタタイプの表示情報をエントロピー符号化ユニット270に提供するようにさらに構成される。
具体的には、イントラ予測ユニット254は、シンタックス要素をエントロピー符号化ユニット270へ送信してよく、ここで、シンタックス要素は、イントラ予測パラメータ(たとえば、複数のイントラ予測モードが詳しく検討された後、現在ブロックに対する予測のために選択されるイントラ予測モード、たとえば、LMモードの表示情報)、およびフィルタタイプの表示情報を含む。可能な適用シナリオでは、1つのイントラ予測モードしかない、すなわち、LM予測モードしかない場合、シンタックス要素の中でイントラ予測パラメータが搬送されなくてよい。この場合、デコーダ側30は、復号のためにデフォルトでLM予測モードを直ちに使用してよい。一例では、イントラ予測ユニット254は、以下のインター予測技法の任意の組合せを実行するように構成され得る。
エントロピー符号化ユニット270は、たとえば、符号化ビットストリーム21の形態で、出力部272を通じて出力され得る符号化ピクチャデータ21を取得するために、以下のもの、すなわち、量子化係数209、インター予測パラメータ、イントラ予測パラメータ、および/またはループフィルタパラメータの1つまたは全部に対して、エントロピー符号化アルゴリズムまたは方式(たとえば、可変長コーディング(variable length coding、VLC)方式、コンテキスト適応VLC(context adaptive VLC、CAVLC)方式、算術コーディング方式、コンテキスト適応バイナリ算術コーディング(context adaptive binary arithmetic coding、CABAC)、シンタックスベースコンテキスト適応バイナリ算術コーディング(syntax-based context-adaptive binary arithmetic coding、SBAC)、確率間隔区分エントロピー(probability interval partitioning entropy、PIPE)コーディング、または別のエントロピーコーディング方法もしくは技法)を適用(またはバイパス)するように構成される。符号化ビットストリームは、デコーダ30へ送信されてよく、または後でデコーダ30によって送信するかもしくは取り出すためにアーカイブされてもよい。エントロピー符号化ユニット270は、符号化されつつある現在ビデオスライスのための別のシンタックス要素をエントロピー符号化するようにさらに構成され得る。
エンコーダ20の他の構造的変形は、ビデオストリームを符号化するように構成され得る。たとえば、非変換ベースのエンコーダ20は、いくつかのブロックまたはフレームに対して変換処理ユニット206を用いずに残差信号を直接量子化してよい。別の実装形態では、エンコーダ20は、単一のユニットに組み合わせられている量子化ユニット208および逆量子化ユニット210を有してよい。
具体的には、本発明の一実施形態では、エンコーダ20は、クロマブロックのサンプル位置タイプに基づいてフィルタタイプの値を設定することと、その値に基づいて、フィルタタイプを示すために使用される第1の表示情報を生成することであって、ここで、フィルタタイプが、フィルタセットの中のフィルタに対応する、生成することと、シンタックス要素の中の情報として第1の表示情報をビットストリームの中に符号化することであって、ここで、第1の表示情報が、符号化ピクチャデータ21の中で搬送される、符号化することとを行うように構成され得る。
本発明の一実施形態では、エンコーダ20は、複数のイントラ予測モードからLMモードを選択することと、第2の表示情報を生成することであって、ここで、第2の表示情報が、線形モデルモードを示すために使用される、生成することと、シンタックス要素の中の情報として第2の表示情報をビットストリームの中に符号化することであって、ここで、第2の表示情報が、符号化ピクチャデータ21の中で搬送される、符号化することとを行うようにさらに構成され得る。
本発明の一実施形態では、予測ブロックの構成中、エンコーダ20は、LMモードにおいて、フィルタセットの中にありフィルタタイプに対応するフィルタを第1の表示情報に基づいて決定することと、第2のルーマブロックを取得するために、フィルタを使用することによって第1のルーマブロックをダウンサンプリングすることであって、ここで、第1のルーマブロックが、現在クロマブロックに対応するルーマブロックである、ダウンサンプリングすることと、テンプレートクロマサンプルおよびテンプレートルーマサンプルを取得することであって、ここで、テンプレートクロマサンプルが、現在クロマブロックの複数の隣接クロマサンプルを含み、テンプレートルーマサンプルが、第1のルーマブロックの複数の隣接ルーマサンプルをダウンサンプリングすることによって取得される、取得することと、テンプレートクロマサンプルおよびテンプレートルーマサンプルに基づいて線形モデル係数を取得することと、第2のルーマブロックおよび線形モデル係数に基づいて現在クロマブロックの予測値を取得することとを行うようにさらに構成され得る。
図3は、本発明の一実施形態を実施するように構成された例示的なデコーダ30の概略/概念ブロック図である。デコーダ30は、復号ピクチャ231を取得するために、たとえば、エンコーダ20による符号化を通じて取得された、符号化ピクチャデータ21を受信するように構成される。復号中、デコーダ30は、エンコーダ20からビデオデータ、たとえば、符号化ビデオスライスのピクチャブロックおよび関連するシンタックス要素を表す符号化ビデオビットストリームを受信する。
図3の例では、デコーダ30は、エントロピー復号ユニット304、逆量子化ユニット310、逆変換処理ユニット312、再構成ユニット314(たとえば、加算器314)、バッファ316、ループフィルタ320、復号ピクチャバッファ330、および予測処理ユニット360を含む。予測処理ユニット360は、インター予測ユニット344、イントラ予測ユニット354、およびモード選択ユニット362を含んでよい。いくつかの例では、デコーダ30は、図2におけるエンコーダ20を参照しながら説明した符号化プロセスのおおよそ逆である復号プロセスを実行し得る。
エントロピー復号ユニット304は、符号化ピクチャデータ21に対してエントロピー復号を実行して、たとえば、量子化係数309、ならびに/または復号されたコーディングパラメータ(図3に示さず)、たとえば、インター予測パラメータ、イントラ予測パラメータ、ループフィルタパラメータ、および/もしくは(復号されている)別のシンタックス要素のいずれか1つまたは全部を取得するように構成される。エントロピー復号ユニット304は、インター予測パラメータ、イントラ予測パラメータ、および/または別のシンタックス要素を予測処理ユニット360に転送するようにさらに構成される。デコーダ30は、ビデオスライスレベルおよび/またはビデオブロックレベルでシンタックス要素を受信し得る。
逆量子化ユニット310は、逆量子化ユニット110と同じ機能を有してよい。逆変換処理ユニット312は、逆変換処理ユニット212と同じ機能を有してよい。再構成ユニット314は、再構成ユニット214と同じ機能を有してよい。バッファ316は、バッファ216と同じ機能を有してよい。ループフィルタ320は、ループフィルタ220と同じ機能を有してよい。復号ピクチャバッファ330は、復号ピクチャバッファ230と同じ機能を有してよい。
予測処理ユニット360は、インター予測ユニット344およびイントラ予測ユニット354を含んでよい。インター予測ユニット344は、機能がインター予測ユニット244と類似であってよく、イントラ予測ユニット354は、機能がイントラ予測ユニット254と類似であってよい。予測処理ユニット360は、ブロック予測を実行し、かつ/または符号化データ21から予測ブロック365を取得し、たとえば、エントロピー復号ユニット304から、予測関連パラメータ、および/または選択された予測モードについての情報を(明示的または暗黙的に)受信または取得するように、通常は構成される。
ビデオスライスがイントラ符号化(I)スライスとして符号化されるとき、予測処理ユニット360のイントラ予測ユニット354は、シグナリングされたイントラ予測モードおよび現在フレームまたは現在ピクチャの以前に復号されたブロックからのデータに基づいて、現在ビデオスライスのピクチャブロックに対する予測ブロック365を生成するように構成される。ビデオフレームがインター符号化(BまたはP)スライスとして符号化されるとき、予測処理ユニット360のインター予測ユニット344(たとえば、動き補償ユニット)は、動きベクトル、およびエントロピー復号ユニット304から受信される別のシンタックス要素に基づいて、現在ビデオスライスのビデオブロックに対する予測ブロック365を生成するように構成される。インター予測の場合、予測ブロックは、1つの参照ピクチャリストの中の参照ピクチャのうちの1つから生成されてよい。デコーダ30は、DPB330の中に記憶された参照ピクチャに基づいてデフォルトの構成技法を使用することによって、参照フレームリスト、すなわち、リスト0およびリスト1を構成し得る。
予測処理ユニット360は、動きベクトルおよび別のシンタックス要素を構文解析することによって現在ビデオスライスのビデオブロックに対する予測情報を決定し、予測情報を使用して、復号されつつある現在ビデオブロックに対する予測ブロックを生成するように構成される。たとえば、予測処理ユニット360は、受信されたシンタックス要素のうちのいくつかを使用して、ビデオスライスのビデオブロックをコーディングするために使用される予測モード(たとえば、イントラ予測またはインター予測)、インター予測スライスタイプ(たとえば、Bスライス、Pスライス、またはGPBスライス)、スライス用の参照ピクチャリストのうちの1つまたは複数に対する構成情報、スライスのインター符号化ビデオブロックごとの動きベクトル、スライスのインターコード化ビデオブロックごとのインター予測ステータス、および現在ビデオスライスのビデオブロックを復号するための他の情報を決定する。
逆量子化ユニット310は、ビットストリームの中で提供されエントロピー復号ユニット304によって復号された量子化変換係数を逆量子化(inverse quantize)(すなわち、量子化解除(dequantize))するように構成され得る。逆量子化プロセスは、ビデオスライスの中のビデオブロックごとにエンコーダ20によって計算された量子化パラメータを使用して、適用されるべき量子化度を決定し、かつ同様に、適用されるべき逆量子化度を決定することを含んでよい。
逆変換処理ユニット312は、変換係数に逆変換(たとえば、逆DCT、逆整数変換、または概念的に類似の逆変換プロセス)を適用してサンプル領域における残差ブロックを生成するように構成される。
再構成ユニット314(たとえば、加算器314)は、たとえば、再構成された残差ブロック313のサンプル値と予測ブロック365のサンプル値とを加算することによって、逆変換ブロック313(すなわち、再構成された残差ブロック313)を予測ブロック365に加算して、サンプル領域における再構成されたブロック315を取得するように構成される。
(コーディングループ中またはコーディングループ後の)ループフィルタユニット320は、フィルタ処理済みのブロック321を取得するために、再構成されたブロック315をフィルタ処理して、サンプル遷移を平滑化するかまたはビデオ品質を改善するように構成される。一例では、ループフィルタユニット320は、以下で説明するフィルタ処理技法の任意の組合せを実行するように構成され得る。ループフィルタユニット320は、たとえば、デブロッキングフィルタ、サンプル適応オフセット(sample-adaptive offset、SAO)フィルタ、あるいは双方向フィルタ、適応ループフィルタ(adaptive loop filter、ALF)、シャープ化もしくは平滑化フィルタ、または協調フィルタなどの別のフィルタを含む、1つまたは複数のループフィルタを表すことを意図する。ループフィルタユニット320はループ内フィルタとして図3に示されるが、別の構成では、ループフィルタユニット320はループ後フィルタとして実装されてよい。
所与のフレームまたはピクチャの中の復号ビデオブロック321は、次いで、後続の動き補償のために使用される参照ピクチャを記憶する復号ピクチャバッファ330の中に記憶される。
デコーダ30は、ユーザへの提示またはユーザによる視聴のために、たとえば、出力部332を通じて復号ピクチャ31を出力するように構成される。
デコーダ30の他の変形は、圧縮されたビットストリームを復号するように構成され得る。たとえば、デコーダ30は、ループフィルタユニット320を用いずに出力ビデオストリームを生成してよい。たとえば、非変換ベースのエンコーダ30は、いくつかのブロックまたはフレームに対して逆変換処理ユニット312を用いずに残差信号を直接逆量子化してよい。別の実装形態では、デコーダ30は、単一のユニットに組み合わせられている逆量子化ユニット310および逆変換処理ユニット312を有してよい。
具体的には、本発明の一実施形態では、デコーダ30は、第1の表示情報および第2の表示情報を取得するためにビットストリームを構文解析することであって、ここで、第2の表示情報が、クロマブロックを現在復号するために使用されるイントラ予測モードがLMモードであることを示すために使用され、第1の表示情報が、フィルタタイプを示すために使用される、構文解析することと、第2のルーマブロックを取得するために、フィルタタイプに対応するフィルタを使用することによって第1のルーマブロックをダウンサンプリングすることであって、ここで、第1のルーマブロックが、現在クロマブロックに対応するルーマブロックである、ダウンサンプリングすることと、テンプレートクロマサンプルおよびテンプレートルーマサンプルを取得することであって、ここで、テンプレートクロマサンプルが、現在クロマブロックの複数の隣接クロマサンプルを含み、テンプレートルーマサンプルが、第1のルーマブロックの複数の隣接ルーマサンプルをダウンサンプリングすることによって取得される、取得することと、テンプレートクロマサンプルおよびテンプレートルーマサンプルに基づいて線形モデル係数を取得することと、第2のルーマブロックおよび線形モデル係数に基づいて現在クロマブロックの予測値を取得することとを行うように構成される。
図4は、本発明の一実施形態によるビデオコーディングデバイス400(たとえば、ビデオ符号化デバイス400またはビデオ復号デバイス400)の概略構造図である。ビデオコーディングデバイス400は、本明細書で説明する一実施形態を実施することに適している。一実施形態では、ビデオコーディングデバイス400は、ビデオデコーダ(たとえば、図1Aにおけるデコーダ30)またはビデオエンコーダ(たとえば、図1Aにおけるエンコーダ20)であってよい。別の実施形態では、ビデオコーディングデバイス400は、図1Aにおけるデコーダ30または図1Aにおけるエンコーダ20の1つまたは複数の構成要素であってよい。
ビデオコーディングデバイス400は、データを受信するように構成される入口ポート410および受信機ユニット(Rx)420、データを処理するように構成されるプロセッサ、論理ユニット、または中央処理ユニット(CPU)430、データを送信するように構成される送信機ユニット(Tx)440および出口ポート450、ならびにデータを記憶するように構成されたメモリ460を含む。ビデオコーディングデバイス400は、光信号または電気信号の出口または入口のために、入口ポート410、受信機ユニット420、送信機ユニット440、および出口ポート450に結合される、光電気構成要素および電気光(EO)構成要素をさらに含んでよい。
プロセッサ430は、ハードウェアおよびソフトウェアを使用することによって実装される。プロセッサ430は、1つまたは複数のCPUチップ、コア(たとえば、マルチコアプロセッサ)、FPGA、ASIC、およびDSPとして実装され得る。プロセッサ430は、入口ポート410、受信機ユニット420、送信機ユニット440、出口ポート450、およびメモリ460と通信する。プロセッサ430は、コーディングモジュール470(たとえば、符号化モジュール470または復号モジュール470)を含む。符号化/復号モジュール470は、本発明の実施形態において提供されるクロマブロック予測方法を実施するために、本明細書で開示する実施形態を実施する。たとえば、符号化/復号モジュール470は、様々なコーディング動作を実施、処理、または提供する。したがって、符号化/復号モジュール470を含むことは、ビデオコーディングデバイス400の機能に大幅な改善をもたらし、異なる状態へのビデオコーディングデバイス400の切替えに影響を及ぼす。代替として、符号化/復号モジュール470は、メモリ460の中に記憶されプロセッサ430によって実行される命令として実装される。
メモリ460は、1つまたは複数のディスク、テープドライブ、およびソリッドステートドライブを含み、そのようなプログラムが選択的に実行されるときにプログラムを記憶するための、かつプログラム実行中に読み取られる命令およびデータを記憶するための、オーバーフローデータ記憶デバイスとして使用され得る。メモリ460は、揮発性および/または不揮発性であってよく、読取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、3進連想メモリ(ternary content-addressable memory、TCAM)、および/またはスタティックランダムアクセスメモリ(SRAM)であってよい。
図5は、例示的な一実施形態による、図1Aにおけるソースデバイス12および宛先デバイス14のうちのいずれか1つまたは2つとして使用され得る装置500の簡略化されたブロック図である。装置500は、本出願における技術を実施することができる。クロマブロック予測のための装置500は、複数のコンピューティングデバイスを含む、コンピューティングシステムの形態をなしてよく、またはモバイルフォン、タブレットコンピュータ、ラップトップコンピュータ、もしくはデスクトップコンピュータなどの、単一のコンピューティングデバイスの形態をなしてよい。
装置500の中のプロセッサ502は、中央処理ユニットであってよい。代替として、プロセッサ502は、情報を制御または処理することが可能な、任意の他のタイプの1つまたは複数の既存の/将来開発されるデバイスであってよい。図に示すように、開示する実装形態はプロセッサ502などの単一のプロセッサを使用することによって実践され得るが、2つ以上のプロセッサを使用することによって速度および効率における利点が達成され得る。
一実装形態では、装置500の中のメモリ504は、読取り専用メモリ(Read Only Memory、ROM)デバイスまたはランダムアクセスメモリ(random access memory、RAM)デバイスであってよい。任意の他の適切なタイプの記憶デバイスがメモリ504として使用され得る。メモリ504は、バス512を通じてプロセッサ502によってアクセスされるコードおよびデータ506を含んでよい。メモリ504は、オペレーティングシステム508およびアプリケーションプログラム510をさらに含んでよい。アプリケーションプログラム510は、本明細書で説明する方法をプロセッサ502が実行することを可能にする少なくとも1つのプログラムを含む。たとえば、アプリケーションプログラム510は、アプリケーション1〜Nを含んでよく、アプリケーション1〜Nは、本明細書で説明する方法を実行するビデオコーディングアプリケーションをさらに含む。装置500は、追加のメモリを2次メモリ514の形態でさらに含んでよい。2次メモリ514は、たとえば、モバイルコンピューティングデバイスと一緒に使用されるメモリカードであってよい。ビデオ通信セッションが大量の情報を含むことがあるので、情報のうちの全部または一部は、2次メモリ514の中に記憶されてよく、必要に応じて処理のためにメモリ504の中にロードされてよい。
装置500は、1つまたは複数の出力デバイス、たとえば、ディスプレイ518をさらに含んでよい。一例では、ディスプレイ518は、ディスプレイとタッチ入力を動作可能に感知するタッチセンシティブ素子とを組み合わせるタッチセンシティブディスプレイであってよい。ディスプレイ518は、バス512を通じてプロセッサ502に結合され得る。ディスプレイ518に加えて、またはディスプレイ518の代替として、ユーザが装置500をプログラムするかまたは別の方式で装置500を使用することを可能にする別の出力デバイスが設けられてよい。出力デバイスがディスプレイであるかまたはディスプレイを含むとき、ディスプレイは、液晶ディスプレイ(liquid crystal display、LCD)、陰極線管(cathode-ray tube、CRT)ディスプレイ、プラズマディスプレイ、または有機LED(organic LED、OLED)ディスプレイなどの発光ダイオード(light emitting diode、LED)ディスプレイを使用することによることを含む、様々なやり方で実装され得る。
装置500は、画像感知デバイス520をさらに含んでよく、または画像感知デバイス520と通信していてよい。画像感知デバイス520は、たとえば、カメラ、または画像を感知することが可能な任意の他の既存の/将来開発される画像感知デバイス520である。画像は、たとえば、装置500を動作させるユーザの画像である。画像感知デバイス520は、装置500を動作させるユーザと直接向き合うように配置されることがある。一例では、画像感知デバイス520の位置および光学軸は、画像感知デバイス520の視野が、ディスプレイ518に隣接する領域を含み、かつディスプレイ518がその領域から見えるように構成されてよい。
装置500は、音感知デバイス522をさらに含んでよく、または音感知デバイス522と通信していてよい。音感知デバイス522は、たとえば、マイクロフォン、または装置500の近くの音を送ることが可能な任意の他の既存の/将来開発される音感知デバイスである。音感知デバイス522は、装置500を動作させるユーザと向き合うように直接配置されることがあり、ユーザが装置500を動作させるときに作られる音、たとえば、音声または他の音を受け取るように構成され得る。
図5は装置500のプロセッサ502およびメモリ504を単一のユニットの中に統合されるものとして示すが、別の構成があり得る。プロセッサ502の実装は、互いに直接結合され得る複数の機械(各機械が1つまたは複数のプロセッサを有する)の中に分散されてよく、または局所的な領域もしくは別のネットワークの中に分散されてもよい。メモリ504は、複数の機械にわたって分散されてよく、たとえば、メモリ504は、ネットワークベースのメモリ、または装置500がその中で動作する複数の機械の中のメモリである。本明細書では単一のバスしか示されないが、装置500のバス512は複数のバスを含んでよい。さらに、2次メモリ514は、装置500の他の構成要素に直接結合されてよく、またはネットワークを介してアクセスされ得る。2次メモリ514は、メモリカードなどの単一の統合ユニット、または複数のメモリカードなどの複数のユニットを含んでよい。したがって、装置500は多種多様な構成で実装され得る。
本発明の実施形態における技術的解決策をよりよく理解するために、以下のことは、YUV画像(またはYCbCr画像と呼ばれる)、および本発明の実施形態におけるクロマ成分に対するイントラ予測用のLMモードをさらに説明する。
既存のビデオは、一般にカラービデオである。ルーマ(Y)成分に加えて、カラービデオはクロマ成分(U,V)をさらに含む。したがって、そのような画像はYUV画像とも呼ばれる。この場合、YUV画像のコーディングは、ルーマ成分のコーディングだけでなくクロマ成分のコーディングも含む。研究は人間の目が色よりも輝度に敏感であることを示す。したがって、コーディング中、記憶空間を節約しコーディング効率を改善するために、ルーマ成分は完全な解像度でサンプリングされ、クロマ成分は完全な解像度でサンプリングされなくてよい。カラービデオにおけるルーマ成分およびクロマ成分に対する様々なサンプリング方法によれば、一般に、ビデオシーケンスの中に、4:4:4フォーマットでのYUV画像、4:2:2フォーマットでのYUV画像、4:2:0フォーマットでのYUV画像などがある。図6は、4:4:4フォーマット、4:2:2フォーマット、および4:2:0フォーマットの例を示し、ここで、図の中の十字記号(×)はルーマ成分サンプルを表し、図の中の円記号(○)はクロマ成分サンプルを表す。
4:4:4フォーマットは、クロマ成分に対してダウンサンプリングが実行されないことを示し、4:4:4フォーマットは、クロマ成分の解像度が最も高いフォーマットである。言い換えれば、4つの隣接サンプルの中のデータは、4つのY成分、4つのU成分、および4つのV成分を含む。
4:2:2フォーマットは、ルーマ成分と比較してクロマ成分に対して2:1水平ダウンサンプリングが実行され、垂直ダウンサンプリングが実行されないことを示す。2つごとのUサンプルまたは2つごとのVサンプルに対して、各行は4つのYサンプルを含む。言い換えれば、4つの隣接サンプルの中のデータは、4つのY成分、2つのU成分、および2つのV成分を含む。
4:2:0フォーマットは、ルーマ成分と比較してクロマ成分に対して2:1水平ダウンサンプリングおよび2:1垂直ダウンサンプリングが実行されることを示す。4:2:0フォーマットは、クロマ成分の解像度が最も低いフォーマットであり、最も一般的なフォーマットでもある。4:2:0フォーマットでは、クロマサンプルの数量は、各行において(すなわち、水平方向において)ルーマサンプルの数量の半分でしかなく、各列において(すなわち、垂直方向において)ルーマサンプルの数量の半分でしかない。ビデオ画像が4:2:0フォーマットを使用するとき、画像ブロックのルーマ成分が2M*2Nというサイズを有する画像ブロックである場合、画像ブロックのクロマ成分はM*Nというサイズを有する画像ブロックである。たとえば、画像ブロックの解像度が720*480である場合、画像ブロックのルーマ成分の解像度は720*480であり、画像ブロックのクロマ成分の解像度は360*240である。
4:2:0フォーマットの場合、異なるクロマサンプル位置に基づく6個の異なるクロマサンプル位置タイプがあり得る。図7は、ルーマサンプルのルーマサンプル位置とクロマサンプルの6個の異なるクロマサンプル位置タイプとの間の例示的な関係を示す。6個の異なるクロマサンプル位置タイプは、タイプ0(type0)、タイプ1(type1)、タイプ2(type2)、タイプ3(type3)、タイプ4(type4)、およびタイプ5(type5)である。
本明細書では、本発明の実施形態における技術的解決策を説明するための一例として、4:2:0フォーマットでのYUV画像が使用される。本明細書では、現在の処理されるべき画像ブロックのルーマ成分は、ルーマブロックと呼ばれる(または、現在クロマブロックに対応するルーマブロック、第1のルーマブロック、ルーマ成分ブロック、もしくはlumaブロックと呼ばれる)こともあり、現在の処理されるべき画像ブロックのクロマ成分は、現在クロマブロックと呼ばれる(または、クロミナンスブロック、クロマ成分ブロック、もしくはchromaブロックと呼ばれる)こともある。
ルーマ成分に対するイントラ予測と同様に、クロマ成分に対するイントラ予測は、現在クロマブロックの周囲の再構成された隣接ブロックの境界サンプルを、現在クロマブロックの参照サンプルとして使用し、特定の予測モードでの現在クロマブロックの中のサンプルに参照サンプルをマッピングし、マッピングされた参照サンプルの値を現在クロマブロックの中のサンプルの予測値として使用する。クロマ成分のテクスチャが一般に比較的単純であるので、クロマ成分用のイントラ予測モードの数量が一般にルーマ成分用のイントラ予測モードの数量よりも小さいという点で、差異がある。たとえば、H.265では、クロマ成分用の5つのイントラ予測モード、すなわち、planarモード、垂直モード、水平モード、DCモード、および派生モード(DM)しかあり得ない。次世代ビデオコーディング規格(たとえば、H.266)では、クロマ成分用のイントラ予測モードは、成分交差予測(Cross component prediction、CCP)モードをさらに含む。
異なる適用シナリオでは、CCPモードが、成分交差イントラ予測モード(Cross component intra prediction、CCIP)もしくは成分交差線形予測モード(cross component linear mode、CCLM)と呼ばれることもあり、または簡潔に線形モデルモード(linear model mode、LMモード)と呼ばれることもあることを理解されたい。本明細書における説明のために一例としてLMモードが使用される。
LMモードは、ルーマとクロマとの間のテクスチャ相関を使用するクロマイントラ予測方法である。LMモードは、再構成されたルーマ成分を使用して線形モデルに基づいて現在クロマブロックの予測値を導出し、それによって、クロマ成分に対して、より正確な予測値を提供する。LMモードは以下の式で表現され得る。
predC(i,j)=α*recL'(i,j)+β
αおよびβは線形モデル係数を表し、predC(i,j)は位置(i,j)におけるクロマサンプルの予測値を表し、recL'(i,j)は、現在クロマブロックに対応するルーマブロックがクロマ成分の解像度にダウンサンプリングされた後に取得される、位置(i,j)における再構成されたルーマサンプルの値を表す。4:2:0フォーマットでのビデオシーケンスの場合、ルーマ成分の解像度はクロマ成分の解像度の4倍である。解像度がクロマブロックと同じルーマブロックを取得するために、ルーマ成分は、使用される前に、クロマ成分の同じダウンサンプリング方法を使用することによってクロマ成分の解像度にダウンサンプリングされる必要がある。
一例として図8が使用される。図8は、4:2:0フォーマットでのYUV画像において、現在クロマブロックに対応するルーマブロック(すなわち、画像ブロックのルーマ成分)、ならびにルーマブロックの隣接する上の参照サンプルおよび隣接する左の参照サンプル、ダウンサンプリングされたルーマブロック(すなわち、画像ブロックのダウンサンプリングされたルーマ成分、または第2のルーマブロックと呼ばれる)、ならびにダウンサンプリングされたルーマブロックの隣接する上の再構成された参照サンプルおよび隣接する左の再構成された参照サンプル、ならびに、現在クロマブロック(すなわち、画像ブロックのクロマ成分)、ならびに現在クロマブロックの隣接する上の再構成された参照サンプルおよび隣接する左の再構成された参照サンプルを示す。現在クロマブロックに対応するルーマブロックの解像度は2W*2Hであり、ダウンサンプリングされたルーマブロックの解像度はW*Hであり、現在クロマブロックの解像度はW*Hである。言い換えれば、ルーマブロック、およびルーマブロックの隣接する参照サンプルは、クロマ成分の解像度にダウンサンプリングされ、その結果、ダウンサンプリングされたルーマブロックが取得され得る。ダウンサンプリングされたルーマブロックの隣接する参照サンプルと、現在クロマブロックの隣接する参照サンプルとの間に、1対1の対応がある。
図9および図10を参照されたい。本発明のこの実施形態では、理解しやすいように、線形モデル係数の計算のために使用される、隣接する上側および隣接する左側は、テンプレート(template)と呼ばれることがある。テンプレートとは、線形モデル係数の計算のために使用されるルーマサンプルのセットまたはクロマサンプルのセットである。線形モデル係数の計算のために使用されるルーマサンプル(luma sample)のセットは、テンプレートルーマサンプルと呼ばれることもある。テンプレートルーマサンプルは、(ルーマ画像の中で、テンプレートクロマサンプルに対応する位置においてルーマサンプル値がないことがあるので)ルーマブロックの複数の隣接ルーマサンプルに対してダウンサンプリング動作を実行することによって取得される。線形モデル係数の計算のために使用されるクロマサンプル(chroma sample)のセットは、テンプレートクロマサンプルと呼ばれることもある。テンプレートクロマサンプルは、現在クロマブロックの再構成された複数の隣接クロマサンプルを含む。
可能な実施形態では、テンプレートクロマサンプルは、現在クロマブロックの上の隣接クロマサンプルの1つまたは複数の行、および現在クロマブロックの左の隣接クロマサンプルの1つまたは複数の列を特に含む。テンプレートルーマサンプルは、テンプレートクロマサンプルに1対1対応し、テンプレートルーマサンプルの中のサンプルの値およびテンプレートクロマサンプルの中のサンプルの値は、値ペアをなす。
たとえば、図9において、テンプレートクロマサンプルは、現在クロマブロックの、上の隣接クロマサンプルの1行および隣接クロマサンプルの1列を含む。したがって、テンプレートルーマサンプルは、ルーマサンプルの1行および左のルーマサンプルの1列を含み、ここで、ルーマサンプルの1行および左のルーマサンプルの1列は、テンプレートクロマサンプルの中のクロマサンプル位置に対応する。
たとえば、図10に示すように、一例では、テンプレートクロマサンプルは、現在クロマブロックの、上の隣接クロマサンプルの2行および左の隣接クロマサンプルの2列を含む。したがって、テンプレートルーマサンプルは、ルーマサンプルの2行およびルーマサンプルの2列を含み、ここで、ルーマサンプルの2行およびルーマサンプルの2列は、テンプレートクロマサンプルの中のクロマサンプル位置に対応する。
確かに、テンプレートクロマサンプルおよびテンプレートルーマサンプルの様々な特定の実装形態があり得る。別の例では、テンプレートクロマサンプルは、現在クロマブロックの左の隣接クロマサンプルの1つまたは複数の列のみを含んでよい。テンプレートルーマサンプルは、ルーマサンプルの1つまたは複数の列のみを含み、テンプレートルーマサンプルは、テンプレートクロマサンプルに1対1対応する。さらに別の例では、テンプレートクロマサンプルは、代替として、現在クロマブロックの上の隣接クロマサンプルの1つまたは複数の行のみを含んでよい。テンプレートルーマサンプルは、ルーマサンプルの1つまたは複数の行のみを含み、テンプレートルーマサンプルは、テンプレートクロマサンプルに1対1対応する。
上記で説明したように、テンプレートルーマサンプルは、ルーマブロックの複数の隣接ルーマサンプルに対してダウンサンプリング(downsampling)動作を実行することによって取得される。以下のことは、テンプレートルーマサンプルに対してダウンサンプリング動作を実行するための方法の一例を説明する。
図11は、いくつかのクロマサンプル位置といくつかのルーマサンプル位置との間の関係の例示的な図である。4:2:0フォーマットでのYUV画像に対して、ルーマ画像の左上頂点がルーマサンプルの座標原点として使用され、かつクロマ画像の左上頂点がクロマサンプルの座標原点として使用される場合、ルーマ画像の中の位置に対応するクロマ画像の中のサンプル位置(xb,yb)は、(2*xb,2*yb+0.5)である。テンプレートルーマサンプルの中のルーマサンプルの値、すなわち、サンプル位置(xb,yb)に対応するルーマサンプルの値を取得するために、ルーマブロックの複数の隣接ルーマサンプルが最初に選択されてよい。たとえば、ルーマブロックの複数の隣接ルーマサンプルのサンプル位置は、(2*xb,2*yb)、(2*xb-1,2*yb)、(2*xb+1,2*yb)、(2*xb,2*yb+1)、(2*xb-1,2*yb+1)、および(2*xb+1,2*yb+1)であり、位置(2*xb,2*yb+0.5)における値は、これらの位置に対応するルーマ画像の中のルーマサンプル値に基づいて導出され、その値はサンプル位置(xb,yb)に対応するルーマサンプルの値として使用される。
たとえば、一例では、テンプレートルーマサンプルの中のサンプル位置(xb,yb)に対応するルーマサンプルの値LC(xb,yb)を取得するために、以下の式に従って複数のルーマサンプルに対してダウンサンプリング計算が実行されてよい。
LC(xb,yb)=(2*L(2*xb,2*yb)+L(2*xb-1,2*yb)+L(2*xb+1,2*yb)+2*L(2*xb,2*yb+1)+L(2*xb-1,2*yb+1)+L(2*xb+1,2*yb+1)+4)>>3
ただし、シンボル「>>」は右への移動を表す。
現在ブロックのテンプレートルーマサンプルの中の他のルーマサンプル(xb+1,yb-1)、...、(xb+i,yb-1)...、および(xb-1,yb)、...、および(xb-1,yb+j)の値に対しても、同じダウンサンプリング方法を使用することによってダウンサンプリングが実行されてよいことが理解され得る。
既存のサンプリング方法でのダウンサンプリングが、確定したフィルタに基づいて実行されることに留意されたい。具体的に言えば、様々なビデオシーケンスの中の画像に対して、既存のLMモードでは、クロマサンプル位置にかかわらず、確定したダウンサンプリングフィルタが使用されるが、実際には異なるビデオシーケンスの中に異なるクロマサンプル位置が存在し得る事例、および異なるクロマサンプル位置によってルーマダウンサンプリングフィルタに引き起こされる影響は考慮されない。ルーマダウンサンプリング位置がクロマサンプル位置に整合しない場合、LMモデル式に従って導出されるLMモデル係数αおよびβは不正確であり、recL'(i,j)およびクロマサンプル位置は位置合わせされない。したがって、コーディング効率が下がる。
上記の欠点を克服し、LMモードでのクロマブロックに対する予測の確度を改善し、かつコーディング効率を改善するために、本発明の一実施形態は、LMモードにおいて使用されるクロマブロック予測方法を、上記の説明したシステムおよびデバイスに基づいて提供する。最初に、エンコーダ側の観点から方法が説明される。図12を参照すると、方法は、限定はしないが、以下のステップを含む。
ステップ701:現在クロマブロックに対する予測のために使用されるイントラ予測モードがLMモードであることを決定する。
特定の実装形態では、エンコーダ側は、イントラ予測用のLMモードのみを事前設定してよい。言い換えれば、この場合、エンコーダ側は、現在使用されるイントラ予測モードがLMモードであることを直ちに決定し、次いで、ステップ702〜ステップ704を実行し続ける。
別の特定の実装形態では、エンコーダ側は、複数のイントラ予測モードを事前設定してよく、ここで、複数のイントラ予測モードはLMモードを含み、エンコーダ側は、複数のイントラ予測モードを詳しく検討し、現在クロマブロック用の最適なイントラ予測モードがLMモードであることを決定する。この場合、エンコーダ側は、ステップ702〜ステップ704などの後続のステップの実行を開始する。
加えて、エンコーダ側は第2の表示情報をさらに設定してよく、ここで、第2の表示情報はLMモードを示すために使用され、その結果、第2の表示情報は、後続のステップ704においてビットストリームの中に符号化される。
ステップ702:現在クロマブロックのサンプル位置タイプに基づいてフィルタタイプを決定する。
言い換えれば、本発明のこの実施形態の設計では、現在クロマブロックがLMモードで予測されるとき、使用されるルーマダウンサンプリングフィルタは確定していないが、現在クロマブロックのサンプル位置タイプに基づいて決定される。現在クロマブロックの各サンプル位置タイプはフィルタタイプに対応する。
本発明の特定の実施形態では、6個のサンプル位置タイプが設計されてよい(そのような設計は、設計1と呼ばれることがある)。図7に示すように、6個のサンプル位置タイプは、type0、type1、type2、type3、type4、およびtype5を含む。したがって、6個のサンプル位置タイプに対応する6個のタイプのルーマダウンサンプリングフィルタ、すなわち、フィルタ0、フィルタ1、フィルタ2、フィルタ3、フィルタ4、およびフィルタ5がある。一例では、これらのフィルタのダウンサンプリングアルゴリズムは次のように別々に設定されてよい。
フィルタ0の場合:
LC(xb,yb)=(2*L(2*xb,2*yb)+L(2*xb-1,2*yb)+L(2*xb+1,2*yb)+2*L(2*xb,2*yb+1)+L(2*xb-1,2*yb+1)+L(2*xb+1,2*yb+1)+4)>>3
フィルタ1の場合:
LC(xb,yb)=(L(2*xb,2*yb)+L(2*xb+1,2*yb)+L(2*xb,2*yb+1)+L(2*xb+1,2*yb+1)+2)>>2
フィルタ2の場合:
LC(xb,yb)=(4*L(2*xb,2*yb)
+2*L(2*xb,2*yb+1)+2*L(2*xb,2*yb-1)+2*L(2*xb-1,2*yb)+2*L(2*xb+1,2*yb)
+L(2*xb+1,2*yb+1)+L(2*xb-1,2*yb+1)+L(2*xb-1,2*yb-1)+L(2*xb+1,2*yb-1)+8)>>4
フィルタ3の場合:
LC(xb,yb)=(2*L(2*xb,2*yb)+2*L(2*xb+1,2*yb)+L(2*xb,2*yb-1)+L(2*xb+1,2*yb-1)+L(2*xb,2*yb+1)+L(2*xb+1,2*yb+1)+4)>>3
フィルタ4の場合:
LC(xb,yb)=(4*L(2*xb,2*yb+1)
+2*L(2*xb,2*yb+2)+2*L(2*xb,2*yb)+2*L(2*xb-1,2*yb+1)+2*L(2*xb+1,2*yb+1)
+L(2*xb+1,2*yb+2)+L(2*xb-1,2*yb+2)+L(2*xb-1,2*yb)+L(2*xb+1,2*yb)+8)>>4
フィルタ5の場合:
LC(xb,yb)=(2*L(2*xb,2*yb+1)+2*L(2*xb+1,2*yb+1)+L(2*xb,2*yb)+L(2*xb+1,2*yb)+L(2*xb,2*yb+2)+L(2*xb+1,2*yb+2)+4)>>3
フィルタのダウンサンプリングアルゴリズムが限定ではなく例にすぎないことに留意されたい。
本発明の別の特定の実施形態では、クロマサンプル位置type0およびtype2が現在は最も一般的であることが考慮され、2つのサンプル位置タイプが代替として設計されてよい(そのような設計は、設計2と呼ばれることがある)。言い換えれば、2つのサンプル位置タイプは、type0およびtype2しか含まない。したがって、2つのサンプル位置タイプに対応する2つのタイプのルーマダウンサンプリングフィルタ、すなわち、フィルタ0およびフィルタ2がある。一例では、これらのフィルタのダウンサンプリングアルゴリズムは次のように別々に設定されてよい。
フィルタ0の場合:
LC(xb,yb)=(2*L(2*xb,2*yb)+L(2*xb-1,2*yb)+L(2*xb+1,2*yb)+2*L(2*xb,2*yb+1)+L(2*xb-1,2*yb+1)+L(2*xb+1,2*yb+1)+4)>>3
フィルタ2の場合:
LC(xb,yb)=(4*L(2*xb,2*yb)
+2*L(2*xb,2*yb+1)+2*L(2*xb,2*yb-1)+2*L(2*xb-1,2*yb)+2*L(2*xb+1,2*yb)
+L(2*xb+1,2*yb+1)+L(2*xb-1,2*yb+1)+L(2*xb-1,2*yb-1)+L(2*xb+1,2*yb-1)+8)>>4
フィルタのダウンサンプリングアルゴリズムが限定ではなく例にすぎないことに留意されたい。
上記の2つの設計に加えて、本発明のこの実施形態が代替として別の設計を含んでよいことにさらに留意されたい。たとえば、3つのクロマサンプル位置が設計され、3つのクロマサンプル位置は、それぞれ、3つのタイプのフィルタに対応する。本明細書ではこのことは限定されない。
このようにして、エンコーダ側は、最初に現在クロマブロックのサンプル位置タイプを決定してよく、次いで、現在クロマブロックのサンプル位置タイプに基づいて対応するフィルタタイプを決定してよく、すなわち、LMモードにおいて現在クロマブロックに対する予測のために使用されるルーマダウンサンプリングフィルタを決定してよい。
ステップ703:第1の表示情報を設定し、ここで、第1の表示情報は、フィルタタイプを示すために使用される。
本発明のこの実施形態では、シーケンスパラメータセット(sequence parameter set、SPS)パラメータが新たに追加され、SPSパラメータの値は、現在のビデオシーケンスの符号化または復号の間にLMモードにおけるルーマダウンサンプリングフィルタのタイプを示すために使用される。エンコーダ側において、このパラメータは、現在のシーケンスの中のクロマサンプル位置に基づいて設定されてよい。具体的には、第1の表示情報はフィルタタイプに基づいて設定されてよい。第1の表示情報はSPSパラメータの値を含み、ここで、その値は、符号化または復号の間にクロマブロックに対する予測のために使用されるルーマダウンサンプリングフィルタのタイプを示すために使用される。
本発明の特定の実装形態では、新たに追加されたSPSパラメータのシンタックス要素は「lm_mode_downsampling_filter_type_idc」として指名されてよく、ここで、lm_mode_downsampling_filter_type_idcは、LMモードでのダウンサンプリングフィルタタイプを指定するために使用される。
たとえば、ステップ702において説明した設計1の場合、6個のフィルタタイプ、すなわち、フィルタ0、フィルタ1、フィルタ2、フィルタ3、フィルタ4、およびフィルタ5が設計される。この場合、シーケンスパラメータセットは次のように設計されてよい。
Figure 2021535652
lm_mode_downsampling_filter_type_idcの値は0から5までにわたり、異なる値は異なるフィルタに対応する。たとえば、値0はフィルタ0に対応し、値1はフィルタ1に対応し、値2はフィルタ2に対応し、値3はフィルタ3に対応し、値4はフィルタ4に対応し、値5はフィルタ5に対応する。確かに、値の上記の設定および各値とフィルタとの間の対応は、限定ではなく例にすぎない。
別の例の場合、ステップ702において説明した設計2に対して、2つのフィルタタイプ、すなわち、フィルタ0およびフィルタ2が設計される。この場合、シーケンスパラメータセットは次のように設計されてよい。
Figure 2021535652
lm_mode_downsampling_filter_type_idcの値は0または1であってよく、異なる値は異なるフィルタに対応する。たとえば、値0はフィルタ0に対応し、値1はフィルタ2に対応する。確かに、値の上記の設定および各値とフィルタとの間の対応は、限定ではなく例にすぎない。
ステップ704:第1の表示情報をビットストリームの中に符号化し、ビットストリームをデコーダ側へ送る。特定の実装形態では、上記のステップ701において設定される第2の表示情報が、ビットストリームの中にさらに符号化されてよく、次いで、ビットストリームがデコーダ側へ送られる。第2の表示情報は、LMモードを示すために使用され、その結果、LMモードを使用すべきであることがデコーダ側に示される。
上記の実施形態が、エンコーダ側が符号化プロセスおよびビットストリーム送出プロセスを実施することだけを説明することに留意されたい。上記の説明によれば、エンコーダ側が本発明の実施形態において説明する別の方法を別の手順でさらに実施してよいことを、当業者は理解する。たとえば、クロマブロック予測において、エンコーダ側によって実行されるクロマブロックの再構成の具体的な実装形態については、以下においてデコーダ側の観点から説明される関係する方法を参照されたい。詳細は本明細書で説明しない。
本発明のこの実施形態では、LMモードに対して、エンコーダが、現在ルーマブロックに対して使用されるルーマダウンサンプリングフィルタを、現在クロマサンプルのサンプル位置タイプに基づいて決定してよく、表示情報(たとえば、新たに追加されたSPSパラメータの値)を通じてデコーダ用のダウンサンプリングフィルタのタイプを指定してよいことを、知ることができる。このことは、エンコーダ側とデコーダ側の両方が、クロマサンプル位置に対応するフィルタを取得できることを確実にする。このことは、実際には異なるビデオシーケンスの中に異なるクロマサンプル位置が存在し得る事例を考慮し、それによって、ダウンサンプリングされたルーマサンプル位置とクロマサンプル位置との間の整合性を保証し、エンコーダ側のコーディング確度およびコーディング効率を改善する。
上記のシステムおよびデバイスに基づいて、本発明の一実施形態は別のクロマブロック予測方法を提供する。方法はデコーダ側の観点から説明される。図13を参照すると、方法は、限定はしないが、以下のステップを含む。
ステップ801:第1の表示情報を取得するためにビットストリームを構文解析する。
具体的には、デコーダ側は、ビットストリームの中のシーケンスパラメータセット(SPS)パラメータを構文解析することによって第1の表示情報を取得し得る。たとえば、ビットストリームの中のSPSパラメータは、具体的には新たに追加されたSPSパラメータであってよい。
一実施形態では、第1の表示情報は、フィルタタイプを示すために使用される。
具体的には、デコーダ側は、フィルタタイプを示すために使用される第1の表示情報を取得するために、エンコーダ側から送信されたビットストリームを構文解析する。第1の表示情報の詳細な内容については、図12の実施形態でのステップ703における説明を参照されたい。
エンコーダ側およびデコーダ側は、同じ設計のフィルタタイプを使用してよい。たとえば、エンコーダ側に対して(6個のクロマサンプル位置に対応する)6個のフィルタタイプが設計され、デコーダ側に対しても6個のフィルタタイプが設計される。加えて、デコーダ側の6個のフィルタタイプのダウンサンプリングアルゴリズムは、それぞれ、エンコーダ側の6個のフィルタタイプのダウンサンプリングアルゴリズムに整合する。6個のフィルタタイプは、フィルタ0、フィルタ1、フィルタ2、フィルタ3、フィルタ4、およびフィルタ5である。この場合、デコーダ側によって受信される第1の表示情報は、6個のフィルタタイプのうちの1つを示すために使用される。たとえば、第1の表示情報がSPSパラメータlm_mode_downsampling_filter_type_idcであり、かつそのSPSパラメータの値が2であるとき、そのことはフィルタタイプがフィルタ2であることを第1の表示情報が示すことを示す。
別の例の場合、エンコーダ側に対して(2つのクロマサンプル位置に対応する)2つのフィルタタイプが設計され、デコーダ側に対しても2つのフィルタタイプが設計される。加えて、デコーダ側の2つのフィルタタイプのダウンサンプリングアルゴリズムは、それぞれ、エンコーダ側の2つのフィルタタイプのダウンサンプリングアルゴリズムに整合する。2つのフィルタタイプは、フィルタ0およびフィルタ2である。この場合、デコーダ側によって受信される第1の表示情報は、2つのフィルタタイプのうちの1つを示すために使用される。たとえば、第1の表示情報がSPSパラメータlm_mode_downsampling_filter_type_idcであり、かつそのSPSパラメータの値が0であるとき、そのことはフィルタタイプがフィルタ0であることを第1の表示情報が示すことを示す。
別の実施形態では、第1の表示情報は、現在クロマブロックのサンプル位置を示すために使用され、現在クロマブロックのサンプル位置は、フィルタタイプに関連付けられる。したがって、デコーダ側は、現在クロマブロックのサンプル位置に基づいてフィルタタイプを決定してよい。
さらに、第1の表示情報は、現在クロマブロックのサンプル位置タイプを示すために特に使用されてよく、したがって、現在クロマブロックのサンプル位置タイプは、フィルタタイプに関連付けられる。したがって、デコーダ側は、現在クロマブロックのサンプル位置タイプに基づいてフィルタタイプを決定してよい。
たとえば、エンコーダ側に対して(2つのクロマサンプル位置に対応する)2つのフィルタタイプが設計され、デコーダ側に対しても2つのフィルタタイプが設計される。加えて、デコーダ側の2つのフィルタタイプのダウンサンプリングアルゴリズムは、それぞれ、エンコーダ側の2つのフィルタタイプのダウンサンプリングアルゴリズムに整合する。2つのフィルタタイプは、フィルタ0およびフィルタ2である。この場合、デコーダ側によって受信される第1の表示情報は、2つのクロマサンプル位置のうちの1つを示すために使用される。たとえば、第1の表示情報がSPSパラメータlm_mode_downsampling_filter_type_idcであり、かつそのSPSパラメータの値が0であるとき、第1のクロマサンプル位置、たとえば、type0が示される。サンプル位置タイプがフィルタタイプに関連付けられているので、デコーダ側は、フィルタタイプがフィルタ0であることを、第1のサンプル位置タイプtype0に基づいて直ちに決定してよい。別の例の場合、SPSパラメータの値が1であるとき、第2のクロマサンプル位置、たとえば、type2が示される。サンプル位置タイプがフィルタタイプに関連付けられているので、デコーダ側は、フィルタタイプがフィルタ2であることを、第2のサンプル位置タイプtype2に基づいて直ちに決定してよい。
加えて、特定の実施形態では、ビットストリームの構文解析中、ビットストリームを構文解析することによって第2の表示情報がさらに取得されてよい。第2の表示情報は、現在クロマブロックを復号するためにデコーダ側によって使用されるイントラ予測モードがLMモードであることを示すために使用され、その結果、デコーダ側は、ビデオシーケンスの中の現在の画像に対するイントラ予測のために、LMモードを使用すべきであることを決定する。さらに、デコーダ側は、関係するステップ802〜805を実行し続ける。
ステップ802:第2のルーマブロックを取得するために、フィルタタイプに対応するフィルタを使用することによって第1のルーマブロックに対してダウンサンプリング(downsampling)動作を実行し、ここで、第1のルーマブロックは、現在クロマブロックに対応するルーマブロックである。
特定の実施形態では、第1の表示情報に対応するフィルタは、ダウンサンプリングされたルーマブロック(すなわち、第2のルーマブロック)の中の各ルーマサンプルの値を取得するために、現在の画像の現在クロマブロックに対応するルーマブロック(すなわち、第1のルーマブロック)をダウンサンプリングするために使用され得る。このようにして、LMモードのアルゴリズム式の中のrecL'(i,j)が取得される。
たとえば、デコーダ側に対して6個のフィルタタイプが設計され、かつ第1の表示情報によって現在示される値が0である場合、使用されるルーマダウンサンプリングフィルタはフィルタ0であり、サンプリングアルゴリズムは以下の通りである。
LC(xb,yb)=(2*L(2*xb,2*yb)+L(2*xb-1,2*yb)+L(2*xb+1,2*yb)+2*L(2*xb,2*yb+1)+L(2*xb-1,2*yb+1)+L(2*xb+1,2*yb+1)+4)>>3
この場合、フィルタ0は、第2のルーマブロックの中の各ルーマサンプルの値を取得するために、第1のルーマブロックをダウンサンプリングするために使用され得る。
別の例の場合、デコーダ側に対して2つのフィルタタイプ(たとえば、フィルタ0およびフィルタ2)が設計され、かつ第1の表示情報によって現在示される値が1である場合、使用されるルーマダウンサンプリングフィルタはフィルタ2であり、サンプリングアルゴリズムは以下の通りである。
LC(xb,yb)=(4*L(2*xb,2*yb)
+2*L(2*xb,2*yb+1)+2*L(2*xb,2*yb-1)+2*L(2*xb-1,2*yb)+2*L(2*xb+1,2*yb)
+L(2*xb+1,2*yb+1)+L(2*xb-1,2*yb+1)+L(2*xb-1,2*yb-1)+L(2*xb+1,2*yb-1)+8)>>4
この場合、フィルタ2は、第2のルーマブロックの中の各ルーマサンプルの値を取得するために、第1のルーマブロックをダウンサンプリングするために使用され得る。
ステップ803:テンプレートクロマサンプルおよびテンプレートルーマサンプルを取得する。テンプレートクロマサンプルは、現在クロマブロックの複数の隣接クロマサンプルを含み、テンプレートルーマサンプルは、第1のルーマブロックの複数の隣接ルーマサンプルに対してダウンサンプリング動作を実行することによって取得される。ステップ803の具体的な実装形態については、図9および図10での実施形態における関係する説明を参照されたい。本明細書の簡潔のために、詳細は本明細書で再び説明しない。
ステップ802およびステップ803が連続的でなく、すなわち、ステップ802がステップ803の前もしくは後に実行されてよく、またはステップ802およびステップ803が同時に実行されてよいことに留意されたい。
ステップ804:テンプレートクロマサンプルおよびテンプレートルーマサンプルに基づいて線形モデル係数αおよびβを取得する。
たとえば、一実装形態では、線形モデル係数αおよびβは、最小2乗法を使用することによって計算されてよい。具体的には、たとえば、図9に示されるダウンサンプリングされたルーマブロックのテンプレートクロマサンプル、およびテンプレートクロマサンプルを使用することによって、線形方程式の体系が構成され得る。テンプレートクロマサンプルまたはテンプレートルーマサンプルの隣接する参照サンプルの数量がNとして示され、L(n)およびC(n)は、それぞれ、第nのルーマサンプルの値および第nのクロマサンプルの値を表す。この場合、線形モデル係数αおよびβは以下の通りである。
Figure 2021535652
別の例の場合、別の実装形態では、線形モデル係数αおよびβは、極値法を使用することによって計算されてよい。具体的には、テンプレートクロマサンプルまたはテンプレートルーマサンプルの隣接する参照サンプルの数量がNとして示され、L(n)およびC(n)は、それぞれ、第nのルーマサンプルの値および第nのクロマサンプルの値を表し、L(n)およびC(n)はサンプル値ペアをなす。サンプル値ペアのセットが次のように、すなわち、{(L0,C0),(L1,C1),(L2,C2)...(Ln,Cn)...(LN-1,CN-1)}として取得されてよく、ただし、Nは、線形モデル係数を決定するために使用される現在クロマブロックの隣接サンプルの数量を表す。図14は、ルーマクロマ座標系におけるサンプル値ペアのセットの分布を示す。最大ルーマ値Lmaxおよび最小ルーマ値Lminに対応する値ペアが、サンプル値ペアのセットの中に見つけられる。第iのサンプルBが最大ルーマ値に対応すること、すなわち、Li=Lmax、および第jのサンプルAが最小ルーマ値に対応すること、すなわち、Lj=Lminを想定すると、線形モデル係数αおよびβは、それぞれ、
Figure 2021535652
β=Cj-α*Lj
となる。
上記のことが一例にすぎず限定でないことを理解されたい。テンプレートクロマサンプルの各ルーマサンプルの値およびテンプレートルーマサンプルの各クロマサンプルの値が取得された後、テンプレートクロマサンプルおよびテンプレートルーマサンプルに基づいてLMモードの線形モデル係数αおよびβを導出する方式は、本発明のこの実施形態では限定されない。
ステップ805:第2のルーマブロックおよび線形モデル係数に基づいて現在クロマブロックの予測値を取得する。
recL'(i,j)ならびに線形モデル係数αおよびβが取得された後、LMモードのアルゴリズム式、すなわち、
predC(i,j)=α*recL'(i,j)+βによれば、
現在クロマブロックの中の各クロマサンプルの予測値predC(i,j)が取得され得ることが理解され得る。
本発明のこの実施形態では、デコーダ側が、LMモードでの現在クロマブロックに対応するルーマブロックをダウンサンプリングするために使用されるフィルタを、ビットストリームの中の表示情報(たとえば、新たに追加されたSPSパラメータの値)に基づいて決定し得ることを、知ることができる。このようにして、クロマサンプル位置に対応するフィルタが取得され得る。このことは、実際には異なるビデオシーケンスの中に異なるクロマサンプル位置が存在し得る事例を考慮し、それによって、ダウンサンプリングされたルーマサンプル位置とクロマサンプル位置との間の整合性を保証する。
上記の説明したシステムおよびデバイスに基づいて、本発明の一実施形態はさらに別のクロマブロック予測方法を提供する。方法はデコーダ側の観点から説明される。図15を参照されたい。図13と比較して、図15の実施形態におけるステップ903は、図13の実施形態におけるステップ803とは異なる。方法は、次のように簡潔に説明される。
ステップ901:第1の表示情報を取得するためにビットストリームを構文解析し、ここで、第1の表示情報は、フィルタタイプを示すために使用される。具体的な実装形態については、図13の実施形態におけるステップ801の説明を参照されたい。詳細は本明細書で再び説明しない。
ステップ902:第2のルーマブロックを取得するために、フィルタタイプに対応するフィルタを使用することによって第1のルーマブロックに対してダウンサンプリング(downsampling)動作を実行し、ここで、第1のルーマブロックは、現在クロマブロックに対応するルーマブロックであり、第2のルーマブロックは、第1のルーマブロックの中のダウンサンプリングされたルーマサンプルのセットを表す。具体的な実装形態については、図13の実施形態におけるステップ802の説明を参照されたい。詳細は本明細書で再び説明しない。
ステップ903:テンプレートクロマサンプルを取得し、第1の表示情報に基づいてテンプレートルーマサンプルを取得する。
本発明のこの実施形態では、テンプレートルーマサンプルに対して、第1の表示情報がフィルタタイプを示すので、ダウンサンプリング動作は、テンプレートルーマサンプルを取得するために、フィルタタイプに対応するフィルタを使用することによって第1のルーマブロックの複数の隣接ルーマサンプルに対して実行されてよい。
たとえば、デコーダ側に対して6個のフィルタタイプが設計され、かつ第1の表示情報によって現在示される値が0である場合、使用されるルーマダウンサンプリングフィルタはフィルタ0であり、サンプリングアルゴリズムは以下の通りである。
LC(xb,yb)=(2*L(2*xb,2*yb)+L(2*xb-1,2*yb)+L(2*xb+1,2*yb)+2*L(2*xb,2*yb+1)+L(2*xb-1,2*yb+1)+L(2*xb+1,2*yb+1)+4)>>3
この場合、フィルタ0は、テンプレートルーマサンプルの中の各ルーマサンプルの値を取得するために、第1のルーマブロックの複数の隣接ルーマサンプルに対してダウンサンプリング動作を実行するために使用され得る。
別の例の場合、デコーダ側に対して2つのフィルタタイプ(たとえば、フィルタ0およびフィルタ2)が設計され、第1の表示情報によって現在示される値は1であり、使用されるルーマダウンサンプリングフィルタはフィルタ2であり、サンプリングアルゴリズムは以下の通りである。
LC(xb,yb)=(4*L(2*xb,2*yb)
+2*L(2*xb,2*yb+1)+2*L(2*xb,2*yb-1)+2*L(2*xb-1,2*yb)+2*L(2*xb+1,2*yb)
+L(2*xb+1,2*yb+1)+L(2*xb-1,2*yb+1)+L(2*xb-1,2*yb-1)+L(2*xb+1,2*yb-1)+8)>>4
この場合、フィルタ2は、テンプレートルーマサンプルの中の各ルーマサンプルの値を取得するために、第1のルーマブロックの複数の隣接ルーマサンプルに対してダウンサンプリング動作を実行するために使用され得る。
上記のことが限定ではなく一例にすぎないことに留意されたい。
本発明のこの実施形態では、テンプレートルーマサンプルに対して、テンプレートクロマサンプルは、現在クロマブロックの複数の隣接クロマサンプルを含む。テンプレートクロマサンプルを取得するための具体的な方法については、図9および図10での実施形態における関係する説明を参照されたい。詳細は本明細書で再び説明しない。
ステップ904:テンプレートクロマサンプルおよびテンプレートルーマサンプルに基づいて線形モデル係数αおよびβを取得する。具体的な実装形態については、図13の実施形態におけるステップ804の説明を参照されたい。詳細は本明細書で再び説明しない。
ステップ905:第2のルーマブロックおよび線形モデル係数に基づいて現在クロマブロックの予測値を取得する。具体的な実装形態については、図13の実施形態におけるステップ805の説明を参照されたい。詳細は本明細書で再び説明しない。
本発明のこの実施形態では、LMモードに対して、テンプレートルーマサンプルを導出するダウンサンプリングプロセス、および現在のブロックのダウンサンプリングプロセスにおいて、デコーダ側が、LMモードでの現在クロマブロックに対応するルーマブロックをダウンサンプリングするために使用されるフィルタを、ビットストリームの中の表示情報(たとえば、新たに追加されたSPSパラメータの値)に基づいて決定し得ることを、知ることができる。このようにして、クロマサンプル位置に対応するフィルタが取得され得る。このことは、実際には異なるビデオシーケンスの中に異なるクロマサンプル位置が存在し得る事例を考慮し、それによって、ダウンサンプリングされたルーマサンプル位置とクロマサンプル位置との間の整合性を保証する。
以下のことは、上記の実施形態で説明した符号化方法および復号方法の適用例、ならびに符号化方法および復号方法が使用されるシステムを説明する。
図16は、コンテンツ配信サービスを実施するためのコンテンツ供給システム3100のブロック図である。コンテンツ供給システム3100は、キャプチャデバイス3102および端末デバイス3106を含み、随意に、ディスプレイ3126を含む。キャプチャデバイス3102は、通信リンク3104を通じて端末デバイス3106と通信する。通信リンクは、上記で説明した通信チャネル13を含んでよい。通信リンク3104は、限定はしないが、Wi-Fi、イーサネット(登録商標)、ケーブル、ワイヤレス(3G/4G/5G)、USB、それらの任意の種類の組合せなどを含む。
キャプチャデバイス3102はデータを生成し、上記の実施形態で説明したような符号化方法を使用することによってデータを符号化し得る。代替として、キャプチャデバイス3102は、データをストリーミングサーバ(図に示さず)に配信してよく、サーバはデータを符号化し、符号化データを端末デバイス3106へ送信する。キャプチャデバイス3102は、限定はしないが、カメラ、スマートフォン、タブレットコンピュータ、コンピュータ、ノートブックコンピュータ、ビデオ会議システム、PDA、車載デバイス、それらの組合せなどを含む。たとえば、キャプチャデバイス3102は、上記で説明したようなソースデバイス12を含んでよい。データがビデオを含むとき、キャプチャデバイス3102の中に含まれるビデオエンコーダ20が実際にビデオ符号化処理を実行してよい。データがオーディオ(たとえば、音声)を含むとき、キャプチャデバイス3102の中に含まれるオーディオエンコーダが実際にオーディオ符号化処理を実行してよい。いくつかの実際的なシナリオの場合、キャプチャデバイス3102は、符号化ビデオデータおよび符号化オーディオデータを、それらを一緒に多重化することによって配信する。他の実際的なシナリオの場合、たとえば、ビデオ会議システムでは、符号化オーディオデータおよび符号化ビデオデータは多重化されない。キャプチャデバイス3102は、符号化オーディオデータおよび符号化ビデオデータを別々に端末デバイス3106に配信する。
コンテンツ供給システム3100の中で、端末デバイス310は符号化データを受信および再生する。端末デバイス3106は、スマートフォンもしくはタブレットコンピュータ3108、コンピュータもしくはノートブックコンピュータ3110、ネットワークビデオレコーダ(network video recorder、NVR)/デジタルビデオレコーダ(digital video recorder、DVR)3112、TV3114、セットトップボックス(set top box、STB)3116、ビデオ会議システム3118、ビデオ監視システム3120、携帯情報端末(personal digital assistant、PDA)3122、車載デバイス3124、または上記の符号化データを復号することが可能なそれらの任意の種類の組合せなどの、データ受信および復元能力を有するデバイスであってよい。たとえば、端末デバイス3106は、上記で説明したような宛先デバイス14を含んでよい。符号化データがビデオを含むとき、ビデオ復号を実行するために、端末デバイスの中に含まれるビデオデコーダ30が優先される。符号化データがオーディオを含むとき、オーディオ復号処理を実行するために、端末デバイスの中に含まれるオーディオデコーダが優先される。
ディスプレイを装備した端末デバイス、たとえば、スマートフォンもしくはタブレットコンピュータ3108、コンピュータもしくはノートブックコンピュータ3110、ネットワークビデオレコーダ(network video recorder、NVR)/デジタルビデオレコーダ(digital video recorder、DVR)3112、TV3114、携帯情報端末(personal digital assistant、PDA)3122、または車載デバイス3124の場合、端末デバイスは、端末デバイスのディスプレイに復号データを供給してよい。ディスプレイを装備しない端末デバイス、たとえば、STB3116、ビデオ会議システム3118、またはビデオ監視システム3120の場合、復号データを受信および表示するために外部ディスプレイ3126が接続される。
このシステムの中の各デバイスが符号化または復号を実行するとき、上記の説明した実施形態で説明したような、画像符号化デバイスまたは画像復号デバイスが使用され得る。
図17は、端末デバイス3106の例示的な構造の図である。端末デバイス3106がキャプチャデバイス3102からストリームを受信した後、プロトコル処理ユニット3202は、ストリームの伝送プロトコルを分析する。プロトコルは、限定はしないが、リアルタイムストリーミングプロトコル(Real Time Streaming Protocol、RTSP)、ハイパーテキスト転送プロトコル(Hyper Text Transfer Protocol、HTTP)、HTTPライブストリーミングプロトコル(HTTP Live streaming protocol、HLS)、MPEG-DASH、リアルタイムトランスポートプロトコル(Real-time Transport protocol、RTP)、リアルタイムメッセージングプロトコル(Real Time Messaging Protocol、RTMP)、それらの任意の種類の組合せなどを含む。
ストリームを処理した後、プロトコル進行ユニット3202がストリームファイルを生成する。ファイルはデマルチプレクサユニット3204に出力される。デマルチプレクサユニット3204は、多重化されたデータを符号化オーディオデータおよび符号化ビデオデータに分離し得る。上記で説明したように、他の実際的なシナリオの場合、たとえば、ビデオ会議システムでは、符号化オーディオデータおよび符号化ビデオデータは多重化されない。この状況では、符号化データは、デマルチプレクサユニット3204を通じることなくビデオデコーダ3206およびオーディオデコーダ3208へ送信される。
ビデオエレメンタリストリーム(elementary stream、ES)、オーディオES、および随意にサブタイトルが、デマルチプレクス処理を通じて生成される。ビデオデコーダ3206は、上記の実施形態で説明したビデオデコーダ30を含み、上記の実施形態に示す復号方法を使用することによってビデオESを復号してビデオフレームを生成し、同期ユニット3212にデータを供給する。オーディオデコーダ3208は、オーディオESを復号してオーディオフレームを生成し、同期ユニット3212にデータを供給する。代替として、ビデオフレームが同期ユニット3212に供給される前に、ビデオフレームがバッファ(図に示さず)の中に記憶されてよい。同様に、オーディオフレームが同期ユニット3212に供給される前に、オーディオフレームがバッファ(図に示さず)の中に記憶されてよい。
同期ユニット3212は、ビデオフレームとオーディオフレームとを同期させ、ビデオ/オーディオディスプレイ3214にビデオ/オーディオを提供する。たとえば、同期ユニット3212は、ビデオ情報およびオーディオ情報の提示を同期させる。情報は、符号化されたオーディオおよびビデオデータの提示に関係するタイムスタンプ、ならびにデータストリームの配送に関係するタイムスタンプを使用することによって、シンタックス要素の中で符号化されてよい。
ストリームの中にサブタイトルが含まれる場合、サブタイトルデコーダ3210は、サブタイトルを復号し、サブタイトルをビデオフレームおよびオーディオフレームと同期させ、ビデオ/オーディオ/サブタイトルディスプレイ3216にビデオ/オーディオ/サブタイトルを提供する。
本発明は上記のシステムに限定されず、上記の実施形態における画像符号化デバイスまたは画像復号デバイスは、別のシステム、たとえば、車両システムの中に組み込まれてよい。
上記の実施形態のうちの全部または一部は、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せによって実装され得る。実装のためにソフトウェアが使用されるとき、本実施形態は、全面的または部分的にコンピュータプログラム製品の形態で実装され得る。コンピュータプログラム製品は、1つまたは複数のコンピュータ命令を含む。コンピュータ上でコンピュータプログラム命令がロードおよび実行されると、本発明の実施形態に従ってプロシージャまたは関数のうちの全部または一部が生成される。コンピュータは、汎用コンピュータ、専用コンピュータ、コンピュータネットワーク、または別のプログラマブル装置であってよい。コンピュータ命令は、コンピュータ可読記憶媒体の中に記憶され得るか、またはあるコンピュータ可読記憶媒体から別のコンピュータ可読記憶媒体へ送信され得る。たとえば、コンピュータ命令は、有線(たとえば、同軸ケーブル、光ファイバ、またはデジタル加入者回線)またはワイヤレス(たとえば、赤外線、マイクロ波など)の方法で、ウェブサイト、コンピュータ、サーバ、またはデータセンタから、別のウェブサイト、コンピュータ、サーバ、またはデータセンタへ送信され得る。コンピュータ可読記憶媒体は、コンピュータ、または1つもしくは複数の使用可能な媒体を統合するサーバもしくはデータセンタなどのデータ記憶デバイスによってアクセス可能な、任意の使用可能な媒体であってよい。使用可能な媒体は、磁気媒体(たとえば、フロッピー(登録商標)ディスク、ハードディスク、または磁気テープ)、光学媒体(たとえば、DVD)、半導体媒体(たとえば、ソリッドステートドライブ)などであってよい。
上記の実施形態では、本実施形態における説明はそれぞれの重点を有する。ある実施形態において詳細に説明されない部分については、他の実施形態における関係する説明を参照されたい。
10 ビデオコーディングシステム
12 ソースデバイス
13 リンク
14 宛先デバイス
16 ピクチャソース
17 未加工ピクチャデータ
18 ピクチャプリプロセッサ
19 前処理されたピクチャデータ、前処理されたピクチャ
20 エンコーダ
21 符号化ピクチャデータ
22 通信インターフェース
28 通信インターフェース
30 デコーダ
31 復号ピクチャデータ、復号ピクチャ
32 ピクチャポストプロセッサ
33 後処理されたピクチャデータ
34 ディスプレイデバイス
40 ビデオコーディングシステム
41 イメージングデバイス
42 アンテナ
43 プロセッサ
44 メモリ
45 ディスプレイデバイス
46 処理ユニット
47 論理回路
201 ピクチャ
202 入力部
203 画像ブロック、ピクチャ画像ブロック
204 残差計算ユニット
205 残差ブロック
206 変換処理ユニット
207 変換係数
208 量子化ユニット
209 量子化変換係数、量子化残差係数
210 逆量子化ユニット
211 量子化解除された係数、量子化解除された残差係数
212 逆変換処理ユニット
213 逆変換ブロック、逆変換量子化解除されたブロック、逆変換残差ブロック、再構成された残差ブロック
214 再構成ユニット、加算器
215 再構成されたブロック
216 バッファ、ラインバッファ、バッファユニット
220 ループフィルタユニット
221 フィルタ処理済みのブロック
230 復号ピクチャバッファ
231 参照ピクチャデータ、復号ピクチャ
244 インター予測ユニット
245 インター予測ブロック
246 動き補償ユニット
254 イントラ予測ユニット
255 イントラ予測ブロック
260 ブロック予測処理ユニット、予測処理ユニット
262 モード選択ユニット
265 予測ブロック
270 エントロピー符号化ユニット
272 出力部
304 エントロピー復号ユニット
309 量子化係数
310 逆量子化ユニット
312 逆変換処理ユニット
313 再構成された残差ブロック、逆変換ブロック
314 再構成ユニット、加算器
315 再構成されたブロック
316 バッファ
320 ループフィルタ
321 フィルタ処理済みのブロック、復号ビデオブロック
330 復号ピクチャバッファ
332 出力部
344 インター予測ユニット
354 イントラ予測ユニット
360 予測処理ユニット
362 モード選択ユニット
365 予測ブロック
400 ビデオコーディングデバイス、ビデオ符号化デバイス、ビデオ復号デバイス
410 入口ポート
420 受信機ユニット
430 プロセッサ、論理ユニット、中央処理ユニット
440 送信機ユニット
450 出口ポート
460 メモリ
470 コーディングモジュール、符号化モジュール、復号モジュール
500 装置
502 プロセッサ
504 メモリ
506 データ
508 オペレーティングシステム
510 アプリケーションプログラム
512 バス
514 2次メモリ
518 ディスプレイ
520 画像感知デバイス
522 音感知デバイス
3100 コンテンツ供給システム
3102 キャプチャデバイス
3104 通信リンク
3106 端末デバイス
3108 スマートフォン、タブレットコンピュータ
3110 コンピュータ、ノートブックコンピュータ
3112 ネットワークビデオレコーダ、デジタルビデオレコーダ
3114 TV
3116 セットトップボックス
3118 ビデオ会議システム
3120 ビデオ監視システム
3122 携帯情報端末
3124 車載デバイス
3126 ディスプレイ
3202 プロトコル処理ユニット
3204 デマルチプレクサユニット
3206 ビデオデコーダ
3208 オーディオデコーダ
3210 サブタイトルデコーダ
3212 同期ユニット
3214 ビデオ/オーディオディスプレイ
3216 ビデオ/オーディオ/サブタイトルディスプレイ
本発明は、ビデオコーディングの分野に関し、詳細には、クロマブロック予測方法およびデバイスに関する。
インターネット技術が急速に発展し人間の物質文化および精神文化がますます豊かになるにつれて、ビデオの適用、特に高精細ビデオの適用に対して、インターネットへの需要がますます高まっている。しかしながら、高精細ビデオは極めて大量のデータを含む。帯域幅が限定されたインターネット上で高精細ビデオを送信するために、最初に高精細ビデオの圧縮コーディングが実行される必要がある。現在、2つの国際機関、すなわち、ISO/IECにおけるMPEGおよびITU-TにおけるVCEGが、ビデオコーディング規格を策定することに専任されている。1986年に設立されたMPEGは、マルチメディア分野での、ストレージ、ブロードキャストテレビジョン、インターネット上またはワイヤレスネットワーク上でのストリーミングメディアなどにおいて主に使用される、関係する規格を策定することに特化している。ITU-Tは、ビデオ電話、ビデオ会議、または他の用途などの、リアルタイムビデオ通信の分野のためのビデオコーディング規格を主に策定する。過去数十年にわたって、VCD用のMPEG-1、DVD用およびDVB用のMPEG-2、ビデオ会議用のH.261、H.263、およびH.264、任意の形をなす対象物のコーディングを可能にするMPEG-4およびHEVCなどを含めて、様々な用途のためにビデオコーディング規格が策定されている。
現在、広く使用されるビデオコーディング規格H.264/AVC(H.264として示される)およびH.265/HEVC(H.265として示される)では、予測、変換、およびエントロピーコーディングなどの、様々なタイプのコーディング動作は、画像ブロックを基本単位として使用することによって実行される。画像ブロックは、2次元のサンプルアレイ、すなわち、サイズがW*Hサンプルのアレイである(ただし、WはHに等しくても等しくなくてもよい)。加えて、各サンプル位置におけるサンプルの値が知られている。
一般的なビデオ符号化プロセスは主に、以下の段階、すなわち、イントラ予測(Intra Prediction)、インター予測(Inter Prediction)、変換(Transform)、量子化(Quantization)、エントロピー符号化(Entropy encoding)、ループ内フィルタ処理(in-loop filtering)などを含む。画像が画像ブロックに区分された後、イントラ予測およびインター予測が実行される。次いで、残差が取得された後、変換および量子化が実行される。最後に、エントロピー符号化が実行されてビットストリームを出力する。
イントラ予測とは、現在ブロックの中のサンプルのサンプル値を予測するために、現在の画像の中の再構成された領域の中のサンプルのサンプル値が使用されることを意味する。概して、現在ブロックの中のサンプルの予測値は、現在ブロックの周囲の再構成された隣接ブロックの中のサンプルに基づいて導出される。たとえば、H.264またはH.265では、隣接ブロックの境界(現在ブロックの近くの境界)サンプルが、一般に、現在ブロックの参照サンプルとして使用され、現在ブロックの中のサンプルの予測値が、特定の方法を使用することによってこれらの参照サンプルに基づいて導出される。イントラ予測モードは、たとえば、DC(または平均)モードもしくは平面モードなどの無指向性モード、またはH.265において規定されるような方向性モードである。
イントラ予測を通じて予測情報が取得された後、現在のコーディングブロックの中のサンプルのサンプル値から、対応する予測情報を減算することによって残差情報が取得される。次いで、残差情報は、離散コサイン変換(Discrete Cosine Transformation、DCT)などの方法を使用することによって変換される。最後に、量子化およびエントロピー符号化を通じてビットストリームが取得される。予測信号および再構成された残差信号が合算された後、再構成された信号を取得するために、さらにフィルタ処理演算が実行される必要がある。再構成された信号は、後続の符号化のための基準信号として使用される。
復号は符号化の逆のプロセスである。エントロピー復号、量子化解除、および逆変換が最初に実行されて、残差情報を取得する。現在ブロックに対してイントラ予測が使用されるのか、それともインター予測が使用されるのかを決定するために、ビットストリームが復号される。イントラ符号化が使用される場合、イントラ予測方法を使用することによって、現在の画像の周囲の再構成された領域の中のサンプルのサンプル値に基づいて予測情報が構成される。予測情報および残差情報が合算された後、フィルタ処理演算を実行することによって、再構成された情報が取得され得る。
既存のビデオは、一般に、カラービデオである。ルーマ成分に加えて、カラービデオの中の画像はさらにクロマ成分を含む。したがって、ルーマ成分がコーディングされる必要があり、クロマ成分もコーディングされる必要がある。イントラ予測においてクロマ成分に対してコーディング効率をどのように改善するのかが、現在において依然として技術的課題である。
本発明の実施形態は、クロマブロック予測方法およびデバイスを提供して、イントラ予測におけるクロマ成分(クロマブロック)に対するコーディング効率を改善する。
第1の態様によれば、本発明の一実施形態はクロマブロック予測方法を提供する。方法はエンコーダ側の観点から説明される。方法は、現在クロマブロックに対するイントラ予測において使用されてよく、使用されるイントラ予測モードは、線形モデルモード(linear model mode、略してLMモード)である。方法は、現在クロマブロックのサンプル位置タイプに基づいてフィルタタイプを決定することであって、ここで、フィルタタイプが、現在クロマブロックのサンプル位置タイプに基づいて決定され、現在クロマブロックの各サンプル位置タイプが、フィルタタイプに対応する、決定することと、第1の表示情報を設定することであって、ここで、第1の表示情報が、フィルタタイプを示すために使用される、設定することと、第1の表示情報をビットストリームの中に符号化することとを含んでよく、その結果、後でビットストリームがデコーダ側へ送られる。
本発明のこの実施形態では、エンコーダが、現在ルーマブロックに対して使用されるルーマダウンサンプリングフィルタを現在クロマサンプルのサンプル位置タイプに基づいて決定し得るとともに、表示情報を通じてデコーダ用のダウンサンプリングフィルタのタイプを指定し得ることを、知ることができる。このことは、エンコーダ側とデコーダ側の両方が、クロマサンプル位置に対応するフィルタを取得できることを確実にし、それによって、エンコーダ側のコーディング確度およびコーディング効率を改善する。
第1の態様に基づいて、可能な実施形態では、6個のサンプル位置タイプ、すなわち、type0、type1、type2、type3、type4、およびtype5が設計され得る。したがって、6個のサンプル位置タイプに対応する6個のタイプのルーマダウンサンプリングフィルタ、すなわち、フィルタ0、フィルタ1、フィルタ2、フィルタ3、フィルタ4、およびフィルタ5がある。言い換えれば、現在クロマブロックのサンプル位置タイプは、6個のサンプル位置タイプのうちの1つであってよい。これらのフィルタを設定することによって、エンコーダ側とデコーダ側の両方が、クロマサンプル位置に対応するフィルタを取得することが確実にされる。このことは、実際には異なるビデオシーケンスの中に異なるクロマサンプル位置が存在し得る事例を考慮し、それによって、エンコーダ側のコーディング確度およびコーディング効率を改善する。
第1の態様に基づいて、可能な実施形態では、クロマサンプル位置type0およびtype2が現在は最も一般的であることが考慮され、2つのサンプル位置タイプが代替として設計されてよい。言い換えれば、2つのサンプル位置タイプはtype0およびtype2しか含まない。したがって、2つのタイプのルーマダウンサンプリングフィルタ、すなわち、2つのサンプル位置タイプに対応するフィルタ0およびフィルタ2がある。言い換えれば、現在クロマブロックのサンプル位置タイプは、2つのサンプル位置タイプのうちの1つであってよい。これらのフィルタを設定することによって、最も一般的なコーディング要件が満たされながら、エンコーダ側のコーディング確度およびコーディング効率が改善され得る。
第1の態様に基づいて、可能な実施形態では、シーケンスパラメータセット(sequence parameter set、SPS)パラメータが新たに追加されてよく、SPSパラメータの値は、現在のビデオシーケンスの符号化または復号の間にLMモードにおけるルーマダウンサンプリングフィルタのタイプを示すために使用される。エンコーダ側において、このパラメータは、現在のシーケンスの中のクロマサンプル位置に基づいて設定されてよい。具体的には、第1の表示情報はフィルタタイプに基づいて設定されてよい。第1の表示情報はSPSパラメータの値を含んでよく、ここで、その値は、符号化または復号の間にクロマブロックに対する予測のために使用されるルーマダウンサンプリングフィルタのタイプを示すために使用される。
第1の態様に基づいて、可能な実施形態では、エンコーダ側において複数のイントラ予測モードが事前設定されてよい。複数のイントラ予測モードはLMモードを含む。エンコーダ側は、複数のイントラ予測モードを詳しく検討し、現在クロマブロック用の最適なイントラ予測モードがLMモードであることを決定する。加えて、エンコーダ側は、第2の表示情報をさらに設定することであって、ここで、第2の表示情報がLMモードを示すために使用される、設定することと、第2の表示情報をビットストリームの中に符号化することとを行ってよく、その結果、デコーダ側もLMモードでイントラ予測を実行してコーディング効率を改善する。
第1の態様に基づいて、可能な実施形態では、予測ブロックの構成中、エンコーダ側は、フィルタタイプに対応するフィルタを第1の表示情報に基づいて決定することと、第2のルーマブロックを取得するために、フィルタタイプに対応するフィルタを使用することによって第1のルーマブロックをダウンサンプリングすることであって、ここで、第1のルーマブロックが、現在クロマブロックに対応するルーマブロックである、ダウンサンプリングすることと、テンプレートクロマサンプルおよびテンプレートルーマサンプルを取得することであって、ここで、テンプレートクロマサンプルが、現在クロマブロックの複数の隣接クロマサンプルを含み、テンプレートルーマサンプルが、第1のルーマブロックの複数の隣接ルーマサンプルをダウンサンプリングすることによって取得される、取得することと、テンプレートクロマサンプルおよびテンプレートルーマサンプルに基づいて線形モデル係数を取得することと、第2のルーマブロックおよび線形モデル係数に基づいて現在クロマブロックの予測値を取得することとをさらに行ってよい。
第2の態様によれば、本発明の一実施形態はクロマブロック予測方法を提供する。方法は、現在クロマブロックに対するイントラ予測において使用されてよく、使用されるイントラ予測モードはLMモードである。方法は、第1の表示情報を取得するためにビットストリームを構文解析することであって、ここで、第1の表示情報が、フィルタタイプを示すために使用される、構文解析することと、第2のルーマブロックを取得するために、フィルタタイプに対応するフィルタを使用することによって第1のルーマブロックに対してダウンサンプリング動作を実行することであって、ここで、第1のルーマブロックが、現在クロマブロックに対応するルーマブロックであり、第2のルーマブロックのルーマサンプルの位置が、現在クロマブロックのクロマサンプルの位置に整合する、実行することと、テンプレートクロマサンプルおよびテンプレートルーマサンプルを取得することであって、ここで、テンプレートクロマサンプルが、現在クロマブロックの複数の隣接クロマサンプルを含み、テンプレートルーマサンプルが、第1のルーマブロックの複数の隣接ルーマサンプルに対してダウンサンプリング動作を実行することによって取得される、取得することと、テンプレートクロマサンプルおよびテンプレートルーマサンプルに基づいて線形モデル係数を取得することと、第2のルーマブロックおよび線形モデル係数に基づいて現在クロマブロックの予測値を取得することとを含む。
本発明のこの実施形態では、LMモードに対して、デコーダ側が、現在クロマブロックに対応するルーマブロックのダウンサンプリングのために使用されるフィルタを、現在ブロックのダウンサンプリング中にビットストリームの中の表示情報に基づいて決定し得ることを、知ることができる。このようにして、クロマサンプル位置に対応するフィルタが取得され得る。このことは、実際には異なるビデオシーケンスの中に異なるクロマサンプル位置が存在し得る事例を考慮し、それによって、コーディング確度およびコーディング効率を改善する。
具体的には、本発明のこの実施形態では、線形モデル係数の計算のために使用される、隣接する上側および隣接する左側は、テンプレート(template)と呼ばれることがある。テンプレートとは、線形モデル係数の計算のために使用されるルーマサンプルのセットまたはクロマサンプルのセットである。線形モデル係数の計算のために使用されるルーマサンプル(luma sample)のセットは、テンプレートルーマサンプルと呼ばれることもある。テンプレートルーマサンプルは、(ルーマ画像の中で、テンプレートクロマサンプルに対応する位置においてルーマサンプル値がないことがあるので)ルーマブロックの複数の隣接ルーマサンプルに対してダウンサンプリング動作を実行することによって取得される。線形モデル係数の計算のために使用されるクロマサンプル(chroma sample)のセットは、テンプレートクロマサンプルと呼ばれることもある。テンプレートクロマサンプルは、現在クロマブロックの再構成された複数の隣接クロマサンプルを含む。
第2の態様に基づいて、可能な実施形態では、テンプレートクロマサンプルは、現在クロマブロックの上の隣接クロマサンプルの1つまたは複数の行、および現在クロマブロックの左の隣接クロマサンプルの1つまたは複数の列を特に含む。テンプレートルーマサンプルは、テンプレートクロマサンプルに1対1対応し、テンプレートルーマサンプルの中のサンプルの値およびテンプレートクロマサンプルの中のサンプルの値は、値ペアをなす。
第2の態様に基づいて、可能な実施形態では、テンプレートクロマサンプルは、現在クロマブロックの、上の隣接クロマサンプルの1行および左の隣接クロマサンプルの1列を含む。したがって、テンプレートルーマサンプルは、ルーマサンプルの1行および左のルーマサンプルの1列を含み、ここで、ルーマサンプルの1行および左のルーマサンプルの1列は、テンプレートクロマサンプルの中のクロマサンプル位置に対応する。
第2の態様に基づいて、可能な実施形態では、テンプレートクロマサンプルは、現在クロマブロックの、上の隣接クロマサンプルの2行および左の隣接クロマサンプルの2列を含む。したがって、テンプレートルーマサンプルは、ルーマサンプルの2行およびルーマサンプルの2列を含み、ここで、ルーマサンプルの2行およびルーマサンプルの2列は、テンプレートクロマサンプルの中のクロマサンプル位置に対応する。
第2の態様に基づいて、可能な実施形態では、テンプレートクロマサンプルは、代替として、現在クロマブロックの左の隣接クロマサンプルの1つまたは複数の列のみを含んでよい。テンプレートルーマサンプルは、ルーマサンプルの1つまたは複数の列のみを含み、テンプレートルーマサンプルは、テンプレートクロマサンプルに1対1対応する。
第2の態様に基づいて、可能な実施形態では、テンプレートクロマサンプルは、代替として、現在クロマブロックの上の隣接クロマサンプルの1つまたは複数の行のみを含んでよい。テンプレートルーマサンプルは、ルーマサンプルの1つまたは複数の行のみを含み、テンプレートルーマサンプルは、テンプレートクロマサンプルに1対1対応する。
第2の態様に基づいて、可能な実施形態では、テンプレートルーマサンプルに対して、第1の表示情報がフィルタタイプを示すので、テンプレートルーマサンプルを取得するために、フィルタタイプに対応するフィルタを使用することによって第1のルーマブロックの複数の隣接ルーマサンプルに対してダウンサンプリング動作が実行されてよい。このようにして、デコーダ側は、テンプレートルーマサンプルを導出するダウンサンプリングプロセス、および現在ブロックのダウンサンプリングプロセスの中で、同じフィルタを使用し、それによって、処理効率を改善する。
たとえば、デコーダ側に対して6個のフィルタタイプが設計され、かつ第1の表示情報によって現在示される値が0である場合、使用されるルーマダウンサンプリングフィルタはフィルタ0であり、テンプレートルーマサンプルの中の各ルーマサンプルの値を取得するために、フィルタ0を使用することによって第1のルーマブロックの複数の隣接ルーマサンプルに対してダウンサンプリング動作が実行されてよい。
第2の態様に基づいて、可能な実施形態では、ビットストリームの構文解析中、ビットストリームを構文解析することによって第2の表示情報がさらに取得されてよい。第2の表示情報は、現在クロマブロックを復号するためにデコーダ側によって使用されるイントラ予測モードがLMモードであることを示すために使用され、その結果、デコーダ側は、ビデオシーケンスの中の現在の画像に対するイントラ予測のために、LMモードを使用すべきであることを決定する。
第2の態様に基づいて、可能な実施形態では、方法は、ビデオシーケンスの中の現在画像ブロックの復号のために使用される。現在画像ブロックは、第1のルーマブロックおよび現在クロマブロックを含み、ビデオシーケンスの中の画像は、4:2:0フォーマットまたは4:2:2フォーマットをなす。
第2の態様に基づいて、可能な実施形態では、エンコーダ側およびデコーダ側は、同じ設計のフィルタタイプを使用してよい。たとえば、エンコーダ側に対して(6個のクロマサンプル位置に対応する)6個のフィルタタイプが設計され、デコーダ側に対しても6個のフィルタタイプが設計される。加えて、デコーダ側の6個のフィルタタイプのダウンサンプリングアルゴリズムは、それぞれ、エンコーダ側の6個のフィルタタイプのダウンサンプリングアルゴリズムに整合する。別の例の場合、エンコーダ側に対して(2つのクロマサンプル位置に対応する)2つのフィルタタイプが設計され、デコーダ側に対しても2つのフィルタタイプが設計される。加えて、デコーダ側の2つのフィルタタイプのダウンサンプリングアルゴリズムは、それぞれ、エンコーダ側の2つのフィルタタイプのダウンサンプリングアルゴリズムに整合する。
第2の態様に基づいて、可能な実施形態では、第1の表示情報は、SPSパラメータの値を含み、ここで、その値は、符号化または復号の間にクロマブロックに対する予測のために使用されるルーマダウンサンプリングフィルタのタイプを示すために使用される。
第2の態様に基づいて、可能な実施形態では、テンプレートクロマサンプルおよびテンプレートルーマサンプルに基づいて線形モデル係数を取得することは、最小2乗法を使用することによってテンプレートクロマサンプルおよびテンプレートルーマサンプルに基づいて線形モデル係数αおよびβを取得することを含む。
第2の態様に基づいて、可能な実施形態では、テンプレートクロマサンプルおよびテンプレートルーマサンプルに基づいて線形モデル係数を取得することは、極値法を使用することによってテンプレートクロマサンプルおよびテンプレートルーマサンプルに基づいて線形モデル係数αおよびβを取得することを含む。
第3の態様によれば、方法は、現在クロマブロックに対するイントラ予測において使用されてよい。方法はデコーダ側の観点から説明されてよく、使用されるイントラ予測モードは、たとえば、LMモードである。方法は、現在クロマブロックのサンプル位置に基づいてフィルタタイプを決定することと、第2のルーマブロックを取得するために、フィルタタイプに対応するフィルタを使用することによって第1のルーマブロックに対してダウンサンプリング動作を実行することであって、ここで、第1のルーマブロックが、現在クロマブロックに対応するルーマブロックである、実行することと、テンプレートクロマサンプルおよびテンプレートルーマサンプルを取得することであって、ここで、テンプレートクロマサンプルが、現在クロマブロックの複数の隣接クロマサンプルを含み、テンプレートルーマサンプルが、第1のルーマブロックの複数の隣接ルーマサンプルに対してダウンサンプリング動作を実行することによって取得される、取得することと、テンプレートクロマサンプルおよびテンプレートルーマサンプルに基づいて線形モデル係数を取得することと、第2のルーマブロックおよび線形モデル係数に基づいて現在クロマブロックの予測値を取得することとを含む。
本発明のこの実施形態では、エンコーダが、クロマサンプル位置に対応するフィルタを取得するために、現在ルーマブロックに対して使用されるルーマダウンサンプリングフィルタを、現在クロマブロックのサンプル位置に基づいて決定し得ることを、知ることができる。このことは、実際には異なるビデオシーケンスの中に異なるクロマサンプル位置が存在し得る事例を考慮し、それによって、コーディング確度およびコーディング効率を改善する。
第3の態様に基づいて、可能な実施形態では、現在クロマブロックのサンプル位置に基づいてフィルタタイプを決定する前に、方法は、第1の表示情報を取得するためにビットストリームを構文解析することを含み、ここで、第1の表示情報は、現在クロマブロックのサンプル位置を示すために使用される。現在クロマブロックのサンプル位置は、フィルタタイプに関連付けられ得る。
本発明のこの実施形態では、エンコーダが、クロマサンプル位置に対応するフィルタを取得するために、第1の表示情報に基づいて現在クロマサンプルのサンプル位置を決定し得ることを、知ることができる。エンコーダ側とデコーダ側の両方は、クロマサンプル位置に対応するフィルタを取得することができ、それによって、エンコーダ側のコーディング確度およびコーディング効率を改善する。
第3の態様に基づいて、可能な実施形態では、現在クロマブロックのサンプル位置は、たとえば、現在クロマブロックのサンプル位置タイプに基づいて決定されてよい。現在クロマブロックのサンプル位置タイプは、フィルタタイプに関連付けられ得る。
一実装形態では、現在クロマブロックのサンプル位置タイプは、以下のサンプル位置タイプ、すなわち、サンプル位置タイプtype0およびサンプル位置タイプtype2のうちの少なくとも1つである。
別の実装形態では、現在クロマブロックのサンプル位置タイプは、以下のサンプル位置タイプ、すなわち、サンプル位置タイプtype0、サンプル位置タイプtype1、サンプル位置タイプtype2、サンプル位置タイプtype3、サンプル位置タイプtype4、およびサンプル位置タイプtype5のうちの少なくとも1つである。
第3の態様に基づいて、可能な実施形態では、第1の表示情報を取得するためにビットストリームを構文解析することは、第1の表示情報を取得するためにビットストリームの中のシーケンスパラメータセット(SPS)パラメータを構文解析することを含む。この実施形態の実施中、エンコーダ側は、特定のSPSパラメータを通じてデコーダ側に現在クロマブロックのサンプル位置タイプを示してよい。このことは、デコーダ側のためのダウンサンプリングフィルタのタイプを指定することと均等であり、それによって、エンコーダ側とデコーダ側の両方が、クロマサンプル位置に対応するフィルタを取得できることを確実にする。
第4の態様によれば、本発明の一実施形態はビデオデータ符号化デバイスを提供する。デバイスは、メモリおよびメモリに結合されたエンコーダを含む。メモリは、ビットストリーム形式でビデオデータを記憶するように構成される。エンコーダは、現在クロマブロックのサンプル位置タイプに基づいてフィルタタイプを決定することと、第1の表示情報を設定することであって、ここで、第1の表示情報が、フィルタタイプを示すために使用される、設定することと、第1の表示情報をビットストリームの中に符号化することとを行うように構成される。具体的には、デバイスは、第1の態様で説明した方法を実施するように構成され得る。
第5の態様によれば、本発明の一実施形態はビデオデータ復号デバイスを提供する。デバイスは、メモリおよびメモリに結合されたデコーダを含む。メモリは、ビットストリーム形式でビデオデータを記憶するように構成される。デコーダは、第1の表示情報を取得するためにビットストリームを構文解析することであって、ここで、第1の表示情報が、フィルタタイプを示すために使用される、構文解析することと、第2のルーマブロックを取得するために、フィルタタイプに対応するフィルタを使用することによって第1のルーマブロックに対してダウンサンプリング動作を実行することであって、ここで、第1のルーマブロックが、現在クロマブロックに対応するルーマブロックである、実行することと、テンプレートクロマサンプルおよびテンプレートルーマサンプルを取得することであって、ここで、テンプレートクロマサンプルが、現在クロマブロックの複数の隣接クロマサンプルを含み、テンプレートルーマサンプルが、第1のルーマブロックの複数の隣接ルーマサンプルに対してダウンサンプリング動作を実行することによって取得される、取得することと、テンプレートクロマサンプルおよびテンプレートルーマサンプルに基づいて線形モデル係数を取得することと、第2のルーマブロックおよび線形モデル係数に基づいて現在クロマブロックの予測値を取得することとを行うように構成される。具体的には、デバイスは、第2の態様で説明した方法を実施するように構成され得る。
第6の態様によれば、本発明の一実施形態はビデオデータ復号デバイスを提供する。デバイスは、メモリおよびメモリに結合されたデコーダを含む。メモリは、ビットストリーム形式でビデオデータを記憶するように構成される。デコーダは、現在クロマブロックのサンプル位置タイプに基づいてフィルタタイプを決定することと、第2のルーマブロックを取得するために、フィルタタイプに対応するフィルタを使用することによって第1のルーマブロックに対してダウンサンプリング動作を実行することであって、ここで、第1のルーマブロックが、現在クロマブロックに対応するルーマブロックである、実行することと、テンプレートクロマサンプルおよびテンプレートルーマサンプルを取得することであって、ここで、テンプレートクロマサンプルが、現在クロマブロックの複数の隣接クロマサンプルを含み、テンプレートルーマサンプルが、第1のルーマブロックの複数の隣接ルーマサンプルに対してダウンサンプリング動作を実行することによって取得される、取得することと、テンプレートクロマサンプルおよびテンプレートルーマサンプルに基づいて線形モデル係数を取得することと、第2のルーマブロックおよび線形モデル係数に基づいて現在クロマブロックの予測値を取得することとを行うように構成される。具体的には、デバイスは、第3の態様で説明した方法を実施するように構成され得る。
第7の態様によれば、本発明の一実施形態は符号化デバイスを提供する。符号化デバイスは、互いに結合されている不揮発性メモリおよびプロセッサを含む。プロセッサは、第1の態様で説明した方法を実行するために、メモリの中に記憶されたプログラムコードを呼び出す。
第8の態様によれば、本発明の一実施形態は復号デバイスを提供する。復号デバイスは、互いに結合されている不揮発性メモリおよびプロセッサを含む。プロセッサは、第2の態様で説明した方法を実行するために、メモリの中に記憶されたプログラムコードを呼び出す。
第9の態様によれば、本発明の一実施形態は復号デバイスを提供する。復号デバイスは、互いに結合されている不揮発性メモリおよびプロセッサを含む。プロセッサは、第3の態様で説明した方法を実行するために、メモリの中に記憶されたプログラムコードを呼び出す。
第10の態様によれば、本発明の一実施形態はシステムを提供する。システムは、第4の態様で説明したデバイスおよび第5の態様で説明したデバイスを含むか、またはシステムは、第4の態様で説明したデバイスおよび第6の態様で説明したデバイスを含む。
第11の態様によれば、本発明の一実施形態は別のシステムを提供する。システムは、第7の態様で説明した符号化デバイスおよび第8の態様で説明した復号デバイスを含むか、またはシステムは、第7の態様で説明した符号化デバイスおよび第9の態様で説明した復号デバイスを含む。
第12の態様によれば、本発明の一実施形態は不揮発性コンピュータ可読記憶媒体を提供する。コンピュータ可読記憶媒体は、第1の態様で説明した方法のプログラムコードを記憶するように構成される。プログラムコードがコンピューティングデバイスによって実行されると、コンピューティングデバイスは第1の態様で説明した方法を実行するように構成される。
第13の態様によれば、本発明の一実施形態は別の不揮発性コンピュータ可読記憶媒体を提供する。コンピュータ可読記憶媒体は、第2の態様または第3の態様で説明した方法のプログラムコードを記憶するように構成される。プログラムコードがコンピューティングデバイスによって実行されると、コンピューティングデバイスは第2の態様または第3の態様で説明した方法を実行するように構成される。
第14の態様によれば、本発明の一実施形態はコンピュータプログラム製品を提供する。コンピュータプログラム製品はプログラム命令を含む。コンピュータプログラム製品がコンピューティングデバイスによって実行されると、コンピューティングデバイスは、第1の態様で説明した方法を実行する。コンピュータプログラム製品はソフトウェアインストールパッケージであってよい。第1の態様の任意の可能な設計において提供される方法が使用される必要があるとき、第1の態様で説明した方法を実施するためにコンピュータプログラム製品がコンピューティングデバイス上でダウンロードおよび実行されてよい。
第15の態様によれば、本発明の一実施形態は別のコンピュータプログラム製品を提供する。コンピュータプログラム製品はプログラム命令を含む。コンピュータプログラム製品がコンピューティングデバイスによって実行されると、コンピューティングデバイスは、第2の態様または第3の態様の任意の可能な設計において提供される方法を実行する。コンピュータプログラム製品はソフトウェアインストールパッケージであってよい。第2の態様または第3の態様の任意の可能な設計において提供される方法が使用される必要があるとき、第2の態様または第3の態様で説明した方法を実施するためにコンピュータプログラム製品がコンピューティングデバイス上でダウンロードおよび実行されてよい。
本発明の実施形態では、LMモードに対して、エンコーダが、現在ルーマブロックに対して使用されるルーマダウンサンプリングフィルタを、現在クロマブロックのサンプル位置に基づいて決定し得るとともに、表示情報(たとえば、新たに追加されたSPSパラメータの値)を通じてデコーダ用のダウンサンプリングフィルタのタイプを指定し得ることを、知ることができる。このことは、エンコーダ側とデコーダ側の両方が、クロマサンプル位置に対応するフィルタを取得できることを確実にする。このことは、実際には異なるビデオシーケンスの中に異なるクロマサンプル位置が存在し得る事例を考慮し、それによって、ダウンサンプリングされたルーマサンプル位置とクロマサンプル位置との間の整合性を保証し、エンコーダ側のコーディング確度およびコーディング効率を改善する。
本発明の実施形態または背景技術における技術的解決策をより明瞭に説明するために、以下のことは本発明の実施形態または背景技術において使用される添付図面を説明する。
本発明の一実施形態を実施するための例示的なビデオコーディングシステムのブロック図である。 図2におけるエンコーダ20および図3におけるデコーダ30のうちのいずれか1つまたは2つを含む、例示的なビデオコーディングシステムのブロック図である。 本発明の一実施形態を実施するためのエンコーダの例示的な構造のブロック図である。 本発明の一実施形態を実施するためのデコーダの例示的な構造のブロック図である。 例示的な符号化装置または例示的な復号装置のブロック図である。 別の例示的な符号化装置または別の例示的な復号装置のブロック図である。 YUV画像のいくつかのフォーマットの概略図である。 クロマサンプル位置とルーマサンプル位置との間の関係の概略図である。 ルーマブロック、ダウンサンプリングされたルーマブロック、および現在クロマブロックの一実施形態を示す図である。 テンプレートルーマサンプルおよびテンプレートクロマサンプルの一実施形態を示す図である。 テンプレートルーマサンプルおよびテンプレートクロマサンプルの別の実施形態を示す図である。 いくつかのクロマサンプル位置といくつかのルーマサンプル位置との間の関係の例示的な図である。 本発明の一実施形態によるクロマブロック予測方法のフローチャートである。 本発明の一実施形態による別のクロマブロック予測方法のフローチャートである。 ルーマクロマ座標系におけるサンプル値ペアのセットの分布の概略図である。 本発明の一実施形態によるさらに別のクロマブロック予測方法のフローチャートである。 コンテンツ配信サービスを実施するためのコンテンツ供給システムの例示的な構造のブロック図である。 端末デバイスの例示的な構造のブロック図である。
以下のことは、本発明の実施形態における添付の図面を参照しながら、本発明の実施形態を説明する。本発明の実装形態において使用される用語は、本発明の特定の実施形態を説明することを意図するにすぎず、本発明を限定することは意図しない。
ビデオコーディングとは、通常、ビデオまたはビデオシーケンスを形成するピクチャのシーケンスの処理を指す。ビデオコーディングの分野では、「ピクチャ(picture)」、「フレーム(frame)」、および「画像(image)」という用語は、同義語として使用されることがある。本明細書で使用するビデオコーディングとは、ビデオ符号化またはビデオ復号を指す。ビデオ符号化はソース側において実行され、通常、より効率的な記憶および/または送信のために、(たとえば、圧縮することによって)元のビデオピクチャを処理してビデオピクチャを描写するためのデータの量を低減することを含む。ビデオ復号は宛先側において実行され、通常、ビデオピクチャを再構成するために、エンコーダの処理と比較して逆の処理を含む。本実施形態におけるビデオピクチャの「コーディング」は、ビデオシーケンスの「符号化」または「復号」として理解されるべきである。符号化部分と復号部分との組合せは、コーデック(符号化および復号)とも呼ばれる。
ビデオシーケンスの中の複数のピクチャの各々は、通常、重複しないブロックのセットに区分され、コーディングは、通常、ブロックレベルで実行される。言い換えれば、エンコーダ側において、ビデオは、通常、たとえば、空間(イントラピクチャ)予測および/または時間(インターピクチャ)予測を使用して予測ブロックを生成すること、現在ブロック(現在処理されつつある/処理されるべきブロック)から予測ブロックを減算して残差ブロックを取得すること、ならびに残差ブロックを変換するとともに変換領域において残差ブロックを量子化して、送信(圧縮)されるべきデータの量を低減することによって、ブロック(画像ブロックまたはビデオブロックとも呼ばれる)レベルで処理すなわち符号化され、他方ではデコーダ側において、符号化または圧縮されたブロックにエンコーダの処理と比較して逆の処理が適用されて、描写のために現在ブロックを再構成する。さらに、エンコーダはデコーダ処理ループを複製し、その結果、後続のブロックを処理すなわちコーディングするために、両方が同一の予測(たとえば、イントラ予測およびインター予測)および/または再構成を生成する。
「ブロック」という用語は、ピクチャまたはフレームの一部である。本明細書では、現在ブロックとは、現在処理されつつあるブロックである。たとえば、符号化の間、現在ブロックは現在符号化されつつあるブロックであり、復号の間、現在ブロックは復号されつつあるブロックである。現在処理されつつあるブロックがクロマ成分ブロックである場合、そのブロックは現在クロマブロックと呼ばれる。現在クロマブロックに対応するルーマブロックは、現在ルーマブロックと呼ばれることがある。参照ブロックとは、現在ブロック用の基準信号を提供するブロックである。基準信号は、画像ブロックの中のサンプル値、サンプル値、またはサンプル信号を表す。予測ブロックとは、現在ブロック用の予測信号を提供するブロックである。予測信号は、予測ブロックの中のサンプル値、サンプル値、またはサンプル信号を表す。たとえば、複数の参照ブロックが詳しく検討された後、最適参照ブロックが見つけられる。最適参照ブロックは現在ブロックに対する予測を提供し、このブロックは予測ブロックと呼ばれる。
加えて、本明細書では、サンプル(またはペル)はサンプルと呼ばれることもある。それに対応して、サンプル値はサンプルの値(またはサンプル値)と呼ばれることもある。現在ブロックの中に含まれるサンプルがルーマサンプルである場合、現在ブロックは現在ルーマブロックと呼ばれる(または現在ルーマ画像ブロックと呼ばれる)ことがある。現在画像ブロックの中に含まれるサンプルがクロマサンプルである場合、現在画像ブロックは現在クロマブロックと呼ばれる(または現在クロマ画像ブロックと呼ばれる)ことがある。
以下のことは、本発明の一実施形態が適用されるシステムアーキテクチャを説明する。図1Aは、本発明の一実施形態で説明する例示的なビデオコーディングシステム10のブロック図である。本明細書で使用する「ビデオコーデック」という用語は、概して、ビデオエンコーダとビデオデコーダの両方を指す。本明細書では、「ビデオコーディング」または「コーディング」という用語は、概して、ビデオ符号化またはビデオ復号を指してよい。図1Aに示すように、ビデオコーディングシステム10は、ソースデバイス12および宛先デバイス14を含んでよい。ソースデバイス12は符号化ビデオデータを生成し、したがって、ソースデバイス12はビデオ符号化装置と呼ばれることがある。宛先デバイス14は、ソースデバイス12によって生成された符号化ビデオデータを復号してよく、したがって、宛先デバイス14はビデオ復号装置と呼ばれることがある。ソースデバイス12、宛先デバイス14、またはソースデバイス12もしくは宛先デバイス14の様々な実施解決策は、1つまたは複数のプロセッサ、および1つまたは複数のプロセッサに結合されたメモリを含んでよい。メモリは、本明細書で説明するように、限定はしないが、RAM、ROM、EEPROM、フラッシュメモリ、またはコンピュータによってアクセス可能な命令もしくはデータ構造の形態で所望のプログラムコードを記憶するために使用され得る任意の他の媒体を含んでよい。ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、モバイルコンピューティング装置、ノートブック(たとえば、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、「スマートフォン」などのハンドヘルド電話機、テレビセット、カメラ、ディスプレイ装置、デジタルメディアプレーヤ、ビデオゲーム機、車両内コンピュータ、および類似の装置を含む、様々な装置を含んでよい。
ソースデバイス12と宛先デバイス14との間の通信接続は、リンク13を通じて実施されてよく、宛先デバイス14は、ソースデバイス12からリンク13を通じて符号化ビデオデータを受信し得る。リンク13は、ソースデバイス12から宛先デバイス14に符号化ビデオデータを移動させることが可能な1つまたは複数の媒体または装置を含んでよい。一例では、リンク13は、ソースデバイス12が符号化ビデオデータを宛先デバイス14へリアルタイムで直ちに送信することを可能にする、1つまたは複数の通信媒体を含んでよい。この例では、ソースデバイス12は、通信規格(たとえば、ワイヤレス通信プロトコル)に従って符号化ビデオデータを変調し得、被変調ビデオデータを宛先デバイス14へ送信し得る。1つまたは複数の通信媒体は、ワイヤレス通信媒体および/または有線通信媒体、たとえば、無線周波数(RF)スペクトルまたは1つもしくは複数の物理伝送線路を含んでよい。1つまたは複数の通信媒体は、パケットベースネットワークの一部をなしてよく、パケットベースネットワークは、たとえば、ローカルエリアネットワーク、ワイドエリアネットワーク、またはグローバルネットワーク(たとえば、インターネット)である。1つまたは複数の通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス12から宛先デバイス14への通信を容易にする別のデバイスを含んでよい。
ソースデバイス12はエンコーダ20を含み、随意に、ソースデバイス12は、ピクチャソース16、ピクチャプリプロセッサ18、および通信インターフェース22をさらに含んでよい。特定の実施形式では、エンコーダ20、ピクチャソース16、ピクチャプリプロセッサ18、および通信インターフェース22は、ソースデバイス12の中のハードウェア構成要素であってよく、またはソースデバイス12上のソフトウェアプログラムであってもよい。個々の説明は以下の通りである。
ピクチャソース16は、たとえば、実世界のピクチャをキャプチャするように構成された、任意のタイプのピクチャキャプチャデバイス、および/またはピクチャもしくはコメント(スクリーンコンテンツ符号化の場合、スクリーン上のいくつかのテキストも符号化されるべきピクチャまたは画像の一部と見なされる)を生成するための任意のタイプのデバイス、たとえば、コンピュータアニメーションピクチャを生成するように構成されたコンピュータグラフィックスプロセッサ、あるいは実世界のピクチャまたはコンピュータアニメーションピクチャ(たとえば、スクリーンコンテンツまたは仮想現実(virtual reality、VR)ピクチャ)、および/またはそれらの任意の組合せ(たとえば、拡張現実(augmented reality、AR)ピクチャ)を取得および/または提供するように構成された任意のタイプのデバイスを含んでよく、またはそうしたデバイスであってもよい。ピクチャソース16は、ピクチャをキャプチャするように構成されたカメラ、またはピクチャを記憶するように構成されたメモリであってよい。ピクチャソース16は、以前にキャプチャもしくは生成されたピクチャを記憶するための、かつ/またはピクチャを取得もしくは受信するための、任意のタイプの(内部または外部の)インターフェースをさらに含んでよい。ピクチャソース16がカメラであるとき、ピクチャソース16は、たとえば、ローカルカメラ、またはソースデバイスの中に統合された統合カメラであってよい。ピクチャソース16がメモリであるとき、ピクチャソース16は、たとえば、ローカルメモリ、またはソースデバイスの中に統合された統合メモリであってよい。ピクチャソース16がインターフェースを含むとき、インターフェースは、たとえば、外部ビデオソースからピクチャを受信するための外部インターフェースであってよい。外部ビデオソースは、たとえば、カメラなどの外部ピクチャキャプチャデバイス、外部メモリ、または外部ピクチャ生成デバイスである。外部ピクチャ生成デバイスは、たとえば、外部のコンピュータグラフィックスプロセッサ、コンピュータ、またはサーバである。インターフェースは、任意のタイプのインターフェース、たとえば、任意のプロプライエタリなインターフェースプロトコルまたは標準化されたインターフェースプロトコル
による、有線もしくはワイヤレスのインターフェースまたは光インターフェースであってよい。
ピクチャは、ルーマ値を有するサンプルの2次元のアレイまたは行列として見なされてよい。アレイの中のサンプルは、サンプル(sample)(ピクチャ要素(picture element)の短縮形式)またはペル(pel)と呼ばれることもある。アレイまたはピクチャの水平および垂直の方向(または軸)におけるサンプルの数量は、ピクチャのサイズおよび/または解像度を規定する。色の描写のために、3つの色成分が一般に使用される。たとえば、ピクチャは3つのサンプルアレイとして描写されてよく、またはそれらを含んでもよい。RBGフォーマットまたは色空間では、ピクチャは、対応する赤色、緑色、および青色のサンプルアレイを含む。しかしながら、ビデオコーディングでは、各サンプルは、通常、ルミナンス/クロミナンスフォーマットまたはルミナンス/クロミナンス色空間をなして描写される。たとえば、YUVフォーマットでのピクチャは、Y(時々、代わりにLが使用される)によって示されるルミナンス成分、ならびにUおよびVによって示される2つのクロミナンス成分を含む。ルミナンス(短縮してluma)成分Yは、輝度またはグレーレベル強度(たとえば、グレースケールピクチャでは、その2つは同一である)を表し、2つのクロミナンス(短縮してchroma)成分UおよびVは、色度または色情報成分を表す。したがって、YUVフォーマットでのピクチャは、ルーマサンプル値(Y)のルーマサンプルアレイ、およびクロマ値(UおよびV)の2つのクロマサンプルアレイを含む。RGBフォーマットでのピクチャがYUVフォーマットでのピクチャに変換(convert)または変換(transform)されてよく、逆も同様であり、そのプロセスは色変換(color transformation)または色変換(color conversion)とも呼ばれる。ピクチャがモノクロである場合、ピクチャはルーマサンプルアレイのみを含んでよい。本発明のこの実施形態では、ピクチャソース16によってピクチャプロセッサへ送信されるピクチャは、未加工ピクチャデータ17と呼ばれることもある。本発明の可能な実施形態では、ピクチャソース16は、現在のビデオシーケンスの中の各ピクチャのクロマサンプル位置を決定するようにさらに構成されてよい。
ピクチャプリプロセッサ18は、前処理されたピクチャ19または前処理されたピクチャデータ19を取得するために、未加工ピクチャデータ17を受信するとともに未加工ピクチャデータ17を前処理するように構成される。たとえば、ピクチャプリプロセッサ18によって実行される前処理は、トリミング、(たとえば、RGBフォーマットからYUVフォーマットへの)カラーフォーマット変換、色補正、またはノイズ除去を含んでよい。可能な実施形態では、ピクチャプリプロセッサ18は、現在のビデオシーケンスの中のクロマサンプル位置を決定するようにさらに構成されてよい。
エンコーダ20(ビデオエンコーダ20とも呼ばれる)は、符号化ピクチャデータ21を提供するために、前処理されたピクチャデータ19を受信するとともに前処理されたピクチャデータ19を関係する予測モード(たとえば、本明細書のこの実施形態ではイントラ予測モード)で処理するように構成される(エンコーダ20の構造的な詳細は、図2、図4、または図5に基づいてさらに以下で説明される)。いくつかの実施形態では、エンコーダ20は、本発明で説明するエンコーダ側においてクロマブロック予測方法の適用を実施するために、以下で説明する実施形態を実行するように構成され得る。
通信インターフェース22は、符号化ピクチャデータ21を受信し、記憶または直接の再構成のためにリンク13を通じて符号化ピクチャデータ21を宛先デバイス14または任意の他のデバイス(たとえば、メモリ)へ送信するように構成され得る。任意の他のデバイスは、復号または記憶のために使用されるいかなるデバイスであってもよい。通信インターフェース22は、たとえば、リンク13を通じた送信のために符号化ピクチャデータ21を適切なフォーマットに、たとえば、データパケットにパッケージングするように構成され得る。
宛先デバイス14はデコーダ30を含み、随意に、宛先デバイス14は、通信インターフェース28、ピクチャポストプロセッサ32、およびディスプレイデバイス34をさらに含んでよい。個々の説明は以下の通りである。
通信インターフェース28は、ソースデバイス12または任意の他のソースから符号化ピクチャデータ21を受信するように構成され得る。任意の他のソースは、たとえば、記憶デバイスであり、記憶デバイスは、たとえば、符号化ピクチャデータ記憶デバイスである。通信インターフェース28は、ソースデバイス12と宛先デバイス14との間のリンク13を通じて、または任意のタイプのネットワークを通じて、符号化ピクチャデータ21を送信または受信するように構成され得る。リンク13は、たとえば、直接有線接続またはワイヤレス接続であり、任意のタイプのネットワークは、たとえば、有線ネットワークもしくはワイヤレスネットワーク、またはそれらの任意の組合せ、あるいは任意のタイプのプライベートネットワークもしくはパブリックネットワーク、またはそれらの任意の組合せである。通信インターフェース28は、たとえば、符号化ピクチャデータ21を取得するために、通信インターフェース22を通じて送信されたデータパケットをデパッケージングするように構成され得る。
通信インターフェース28と通信インターフェース22の両方は、単方向通信インターフェースまたは双方向通信インターフェースとして構成されてよく、たとえば、接続をセットアップするためのメッセージを送るとともに受信し、かつ通信リンクに関係する任意の他の情報、および/または符号化ピクチャデータ送信などのデータ送信を、認識応答および交換するように構成されてよい。
デコーダ30(ビデオデコーダ30とも呼ばれる)は、符号化ピクチャデータ21を受信し、復号ピクチャデータ31または復号ピクチャ31を提供するように構成される(デコーダ30の構造的な詳細は、図3、図4、または図5に基づいてさらに以下で説明される)。いくつかの実施形態では、デコーダ30は、本発明で説明するデコーダ側においてクロマブロック予測方法の適用を実施するために、以下で説明する実施形態を実行するように構成され得る。
ピクチャポストプロセッサ32は、後処理されたピクチャデータ33を取得するために、復号ピクチャデータ31(再構成されたピクチャデータとも呼ばれる)を後処理するように構成される。ピクチャポストプロセッサ32によって実行される後処理は、(たとえば、YUVフォーマットからRGBフォーマットへの)カラーフォーマット変換、色補正、トリミング、リサンプリング、または任意の他の処理を含んでよい。ピクチャポストプロセッサ32は、後処理されたピクチャデータ33をディスプレイデバイス34へ送信するようにさらに構成され得る。
ディスプレイデバイス34は、たとえば、ユーザまたは視聴者にピクチャを表示するための、後処理されたピクチャデータ33を受信するように構成される。ディスプレイデバイス34は、再構成されたピクチャを提示するように構成された任意のタイプのディスプレイであってよく、またはそうしたディスプレイを含んでもよく、たとえば、統合されるかまたは外部のディスプレイまたはモニタであってよい。たとえば、ディスプレイは、液晶ディスプレイ(liquid crystal display、LCD)、有機発光ダイオード(organic light emitting diode、OLED)ディスプレイ、プラズマディスプレイ、プロジェクタ、マイクロLEDディスプレイ、液晶オンシリコン(liquid crystal on silicon、LCoS)、デジタル光プロセッサ(digital light processor、DLP)、または任意のタイプの他のディスプレイを含んでよい。
図1Aはソースデバイス12および宛先デバイス14を別個のデバイスとして示すが、デバイスの実施形態はまた、ソースデバイス12もしくは対応する機能と宛先デバイス14もしくは対応する機能の両方、またはその両方の機能を含んでよい。そのような実施形態では、ソースデバイス12または対応する機能および宛先デバイス14または対応する機能は、同じハードウェアおよび/またはソフトウェアを使用することによって、あるいは別個のハードウェアおよび/もしくはソフトウェアまたはそれらの任意の組合せを使用することによって実装され得る。
本説明に基づいて、様々なユニットの機能または図1Aに示すソースデバイス12および/もしくは宛先デバイス14の機能の存在および(厳密な)分割が実際のデバイスおよび適用例に応じて変わってよいことが、当業者に知られ得る。ソースデバイス12および宛先デバイス14は各々、任意のタイプのハンドヘルドまたは固定のデバイス、たとえば、ノートブックまたはラップトップコンピュータ、モバイルフォン、スマートフォン、パッドまたはタブレットコンピュータ、ビデオカメラ、デスクトップコンピュータ、セットトップボックス、テレビジョン、カメラ、車載デバイス、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲーム機、(コンテンツサービスサーバまたはコンテンツ配信サーバなどの)ビデオストリーミングデバイス、ブロードキャスト受信機デバイスまたはブロードキャスト送信機デバイスを含む、広範囲のデバイスのうちのいずれか1つであってよく、任意のタイプのオペレーティングシステムを使用しなくてもよく使用してもよい。
エンコーダ20およびデコーダ30は各々、様々な適切な回路のうちのいずれか、たとえば、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(digital signal processor、DSP)、特定用途向け集積回路(application-specific integrated circuit、ASIC)、フィールドプログラマブルゲートアレイ(field-programmable gate array、FPGA)、個別論理、ハードウェア、またはそれらの任意の組合せとして実装され得る。部分的にソフトウェアを使用することによって本技術が実装される場合、デバイスは、適切かつ非一時的なコンピュータ可読記憶媒体の中にソフトウェア命令を記憶してよく、本開示の技術を実行するために1つまたは複数のプロセッサなどのハードウェアを使用することによって命令を実行してよい。上記のもの(ハードウェア、ソフトウェア、ハードウェアとソフトウェアとの組合せなどを含む)のうちのいずれも、1つまたは複数のプロセッサと見なされてよい。
場合によっては、図1Aに示すビデオコーディングシステム10は一例にすぎず、本出願における技術は、符号化デバイスと復号デバイスとの間の任意のデータ通信を必ずしも含むとは限らないビデオコーディング設定(たとえば、ビデオ符号化またはビデオ復号)に適用可能である。他の例では、データは、ローカルメモリから取り出されてよく、ネットワークを介してストリーミングされるなどしてもよい。ビデオ符号化デバイスは、データを符号化してよく、符号化データをメモリの中に記憶してよく、かつ/またはビデオ復号デバイスは、メモリからデータを取り出してよく、そのデータを復号してよい。いくつかの例では、符号化および復号は、互いに通信しないが、データをメモリへ単に符号化し、かつ/またはメモリからデータを取り出しそのデータを復号する、デバイスによって実行される。
図1Bは、例示的な一実施形態による、図2におけるエンコーダ20および/または図3におけるデコーダ30を含むビデオコーディングシステム40の一例の例示的な図である。ビデオコーディングシステム40は、本発明の実施形態における様々な技術の組合せを実施することができる。図示した実装形態では、ビデオコーディングシステム40は、イメージングデバイス41、エンコーダ20、デコーダ30(および/または処理ユニット46の論理回路47によって実装されたビデオエンコーダ/デコーダ)、アンテナ42、1つもしくは複数のプロセッサ43、1つもしくは複数のメモリ44、および/またはディスプレイデバイス45を含んでよい。
図1Bに示すように、イメージングデバイス41、アンテナ42、処理ユニット46、論理回路47、エンコーダ20、デコーダ30、プロセッサ43、メモリ44、および/またはディスプレイデバイス45は、互いに通信することができる。説明したように、エンコーダ20およびデコーダ30を使用することによってビデオコーディングシステム40が図示されるが、ビデオコーディングシステム40は、様々な例ではエンコーダ20のみまたはデコーダ30のみを含んでよい。
いくつかの例では、アンテナ42は、ビデオデータの符号化ビットストリームを送信または受信するように構成され得る。さらに、いくつかの例では、ディスプレイデバイス45は、ビデオデータを提示するように構成され得る。いくつかの例では、論理回路47は処理ユニット46によって実装され得る。処理ユニット46は、特定用途向け集積回路(application-specific integrated circuit、ASIC)論理、グラフィックスプロセッサ、汎用プロセッサなどを含んでよい。ビデオコーディングシステム40はまた、随意のプロセッサ43を含んでよい。随意のプロセッサ43は、同様に、特定用途向け集積回路(application-specific integrated circuit、ASIC)論理、グラフィックスプロセッサ、汎用プロセッサなどを含んでよい。いくつかの例では、論理回路47は、ハードウェア、たとえば、ビデオコーディング専用ハードウェアによって実装されてよく、プロセッサ43は、汎用ソフトウェア、オペレーティングシステムなどによって実装されてよい。加えて、メモリ44は、任意のタイプのメモリ、たとえば、揮発性メモリ(たとえば、スタティックランダムアクセスメモリ(Static Random Access Memory、SRAM)、ダイナミックランダムアクセスメモリ(Dynamic Random Access Memory、DRAM))、または不揮発性メモリ(たとえば、フラッシュメモリ)であってよい。非限定的な例では、メモリ44はキャッシュメモリによって実装され得る。いくつかの例では、論理回路47は、(たとえば、画像バッファの実装のために)メモリ44にアクセスし得る。他の例では、論理回路47および/または処理ユニット46は、画像バッファなどの実装のためにメモリ(たとえば、キャッシュ)を含んでよい。
いくつかの例では、論理回路によって実装されたエンコーダ20は、(たとえば、処理ユニット46またはメモリ44によって実装された)画像バッファ、および(たとえば、処理ユニット46によって実装された)グラフィックス処理ユニットを含んでよい。グラフィックス処理ユニットは、画像バッファに通信可能に結合されてよい。グラフィックス処理ユニットは、図2を参照しながら説明される様々なモジュールおよび/または本明細書で説明される任意の他のエンコーダシステムもしくはサブシステムを実装するために、論理回路47によって実装されたエンコーダ20を含んでよい。論理回路は、本明細書で説明する様々な動作を実行するように構成され得る。
いくつかの例では、デコーダ30は、図3におけるデコーダ30を参照しながら説明される様々なモジュールおよび/または本明細書で説明される任意の他のデコーダシステムもしくはサブシステムを実装するために、同様の方法で論理回路47によって実装され得る。いくつかの例では、論理回路によって実装されたデコーダ30は、(たとえば、処理ユニット46またはメモリ44によって実装された)画像バッファ、および(たとえば、処理ユニット46によって実装された)グラフィックス処理ユニットを含んでよい。グラフィックス処理ユニットは、画像バッファに通信可能に結合され得る。グラフィックス処理ユニットは、図3を参照しながら説明される様々なモジュールおよび/または本明細書で説明される任意の他のデコーダシステムもしくはサブシステムを実装するために、論理回路47によって実装されたデコーダ30を含んでよい。
いくつかの例では、アンテナ42は、ビデオデータの符号化ビットストリームを受信するように構成され得る。説明したように、符号化ビットストリームは、本明細書で説明するビデオフレームコーディングに関係する、データ、インジケータ、インデックス値、モード選択データなど、たとえば、コーディング区分に関係するデータ(たとえば、変換係数もしくは量子化変換係数、(説明するような)随意のインジケータ、および/またはコーディング区分を規定するデータ)を含んでよい。ビデオコーディングシステム40は、アンテナ42に結合されており符号化ビットストリームを復号するように構成されるデコーダ30をさらに含んでよい。ディスプレイデバイス45は、ビデオフレームを提示するように構成される。
本発明のこの実施形態では、エンコーダ20を参照しながら説明する例に対して、デコーダ30が逆プロセスを実行するように構成され得ることを理解されたい。シグナリングシンタックス要素に関して、デコーダ30は、そのようなシンタックス要素を受信および構文解析し、関係するビデオデータをそれに対応して復号するように構成され得る。いくつかの例では、エンコーダ20は、シンタックス要素を符号化ビデオビットストリームの中にエントロピー符号化し得る。そのような例では、デコーダ30は、そのようなシンタックス要素を構文解析してよく、関係するビデオデータをそれに対応して復号してよい。
本発明の実施形態で説明するクロマブロック予測方法が主にイントラ予測プロセスにおいて使用され、エンコーダ20とデコーダ30の両方においてプロセスが存在することに留意されたい。本発明の実施形態におけるエンコーダ20/デコーダ30は、H.263、H.264、HEVC、MPEG-2、MPEG-4、VP8、もしくはVP9などのビデオ標準プロトコルに対応するか、または(H.266などの)次世代ビデオ標準プロトコルに対応する、エンコーダ/デコーダであってよい。
図2は、本発明の一実施形態を実施するように構成された例示的なエンコーダ20の概略/概念ブロック図である。図2の例では、エンコーダ20は、残差計算ユニット204、変換処理ユニット206、量子化ユニット208、逆量子化ユニット210、逆変換処理ユニット212、再構成ユニット214、バッファ216、ループフィルタユニット220、復号ピクチャバッファ(decoded picture buffer、DPB)230、予測処理ユニット260、およびエントロピー符号化ユニット270を含む。予測処理ユニット260は、インター予測ユニット244、イントラ予測ユニット254、およびモード選択ユニット262を含んでよい。インター予測ユニット244は、動き推定ユニットおよび動き補償ユニット(図に示さず)を含んでよい。図2に示すエンコーダ20は、ハイブリッドビデオエンコーダ、またはハイブリッドビデオコーデックに基づくビデオエンコーダと呼ばれることもある。
たとえば、残差計算ユニット204、変換処理ユニット206、量子化ユニット208、予測処理ユニット260、およびエントロピー符号化ユニット270は、エンコーダ20の順方向信号経路を形成し、他方では、たとえば、逆量子化ユニット210、逆変換処理ユニット212、再構成ユニット214、バッファ216、ループフィルタ220、復号ピクチャバッファ(decoded picture buffer、DPB)230、および予測処理ユニット260は、エンコーダの逆方向信号経路を形成する。エンコーダの逆方向信号経路はデコーダの信号経路に相当する(図3におけるデコーダ30を参照)。
エンコーダ20は、たとえば、入力部202を通じて、ピクチャ201またはピクチャ201の画像ブロック203、たとえば、ビデオまたはビデオシーケンスを形成するピクチャのシーケンスの中のピクチャを受信する。画像ブロック203は、現在ピクチャブロックまたは符号化されるべきピクチャブロックと呼ばれることもある。ピクチャ201は、現在ピクチャまたは符号化されるべきピクチャと呼ばれることがある(特にビデオコーディングでは、他のピクチャから現在ピクチャを区別するために、他のピクチャは、たとえば、同じビデオシーケンス、すなわち、現在ピクチャも含むビデオシーケンスの中の、前に符号化および/または復号されたピクチャである)。
エンコーダ20の一実施形態は、ピクチャ201を画像ブロック203などの複数のブロックに区分するように構成された区分ユニット(図2に示さず)を含んでよい。ピクチャ201は、通常、重複しない複数のブロックに区分される。区分ユニットは、ビデオシーケンスの中のすべてのピクチャに対して同じブロックサイズを、かつブロックサイズを規定する対応するグリッドを使用するか、あるいはピクチャまたはサブセットまたはピクチャグループの間でブロックサイズを変更し、かつ各ピクチャを対応するブロックに区分するように、構成され得る。
一例では、エンコーダ20の予測処理ユニット260は、上記で説明した区分技法の任意の組合せを実行するように構成され得る。
ピクチャ201のように、画像ブロック203もルーマ値(サンプル値)を有するサンプルの2次元のアレイまたは行列であり、またはそのように見なされてもよいが、画像ブロック203のサイズはピクチャ201のサイズよりも小さい。言い換えれば、画像ブロック203は、たとえば、1つのサンプルアレイ(たとえば、モノクロピクチャ201の場合にはルーマアレイ)、3つのサンプルアレイ(たとえば、カラーピクチャの場合には1つのルーマアレイおよび2つのクロマアレイ)、または適用されるカラーフォーマットに応じて任意の他の数量および/もしくはタイプのアレイを含んでよい。画像ブロック203の水平および垂直の方向(または軸)におけるサンプルの数量は、画像ブロック203のサイズを規定する。
図2に示すエンコーダ20は、ピクチャ201をブロック単位で符号化し、たとえば、各画像ブロック203を符号化および予測するように構成される。
残差計算ユニット204は、ピクチャ画像ブロック203および予測ブロック265に基づいて残差ブロック205を計算し(予測ブロック265についてのさらなる詳細は以下で提供される)、たとえば、ピクチャ画像ブロック203のサンプル値から予測ブロック265のサンプル値をサンプル単位で(サンプル単位で)減算することによってサンプル領域における残差ブロック205を取得するように構成される。
変換処理ユニット206は、残差ブロック205のサンプル値に変換、たとえば、離散コサイン変換(discrete cosine transform、DCT)または離散サイン変換(discrete sine transform、DST)を適用して、変換領域における変換係数207を取得するように構成される。変換係数207は、変換残差係数と呼ばれることもあり、変換領域における残差ブロック205を表す。
変換処理ユニット206は、HEVC/H.265において指定される変換などのDCT/DSTの整数近似を適用するように構成され得る。直交DCT変換と比較して、そのような整数近似は、通常、特定の係数によってスケーリングされる。順変換および逆変換を使用することによって処理される残差ブロックのノルムを維持するために、追加のスケール係数を適用することは変換プロセスの一部である。スケール係数は、通常、いくつかの制約に基づいて選ばれる。たとえば、スケール係数は、シフト演算用の2のべき乗、変換係数のビット深度、確度と実装コストとの間のトレードオフなどである。特定のスケーリング係数が、たとえば、デコーダ側30における逆変換処理ユニット212による、たとえば、逆変換(および、たとえば、エンコーダ側20における逆変換処理ユニット212による、対応する逆変換)に対して指定され、たとえば、エンコーダ側20における変換処理ユニット206による、順変換用の対応するスケーリング係数が、それに応じて指定されてよい。
量子化ユニット208は、たとえば、スカラー量子化またはベクトル量子化を適用することによって、変換係数207を量子化して量子化変換係数209を取得するように構成される。量子化変換係数209は、量子化残差係数209と呼ばれることもある。量子化プロセスは、変換係数207の一部または全部に関連するビット深度を低減し得る。たとえば、nビットの変換係数は、量子化の間にmビットの変換係数に切り捨てられてよく、ただし、nはmよりも大きい。量子化度は、量子化パラメータ(quantization parameter、QP)を調整することによって修正されてよい。たとえば、スカラー量子化の場合、より細かいかまたはより粗い量子化を達成するために、異なるスケールが適用されてよい。より小さい量子化ステップは、より細かい量子化に対応し、より大きい量子化ステップは、より粗い量子化に対応する。適切な量子化ステップサイズが、量子化パラメータ(quantization parameter、QP)によって示されてよい。量子化パラメータは、たとえば、適切な量子化ステップサイズの既定のセットへのインデックスであってよい。たとえば、より小さい量子化パラメータは、より細かい量子化(より小さい量子化ステップサイズ)に対応し得、より大きい量子化パラメータは、より粗い量子化(より大きい量子化ステップサイズ)に対応し得、またはその逆である。量子化は、量子化ステップサイズによる除算と、たとえば、逆量子化ユニット210によって実行される、対応する量子化および/もしくは逆量子化とを含んでよく、または量子化ステップサイズによる乗算を含んでよい。HEVCなどのいくつかの規格による実施形態では、量子化パラメータは、量子化ステップサイズを決定するために使用され得る。概して、量子化ステップサイズは、除算を含む式の固定小数点近似を使用することによって、量子化パラメータに基づいて計算されてよい。残差ブロックのノルムを復元するために量子化および量子化解除に対して追加のスケーリング係数が導入されてよく、ここで、量子化ステップサイズおよび量子化パラメータを求める式の固定小数点近似において使用されるスケールのため、残差ブロックのノルムが修正されることがある。例示的な実装形態では、逆変換および量子化解除のスケールは組み合わせられてよい。代替として、カ
スタマイズされた量子化テーブルが使用されてよく、たとえば、ビットストリームの中で、エンコーダからデコーダにシグナリングされてよい。量子化は損失のある演算であり、ここで、量子化ステップサイズを大きくするとともに損失が増大する。
逆量子化ユニット210は、量子化ユニット208の逆量子化を量子化係数に適用して、量子化解除された係数211を取得し、たとえば、量子化ユニット208と同じ量子化ステップに基づいて、またはそうした量子化ステップを使用することによって、量子化ユニット208によって適用された量子化方式の逆量子化方式を適用するように構成される。量子化解除された係数211は、量子化解除された残差係数211と呼ばれることもあり、量子化による損失に起因して通常は変換係数と同一ではないが、変換係数207に対応し得る。
逆変換処理ユニット212は、サンプル領域における逆変換ブロック213を取得するために、変換処理ユニット206によって適用された変換の逆変換、たとえば、逆離散コサイン変換(discrete cosine transform、DCT)または逆離散サイン変換(discrete sine transform、DST)を適用するように構成される。逆変換ブロック213は、逆変換量子化解除されたブロック213または逆変換残差ブロック213と呼ばれることもある。
再構成ユニット214(たとえば、加算器214)は、たとえば、再構成された残差ブロック213のサンプル値と予測ブロック265のサンプル値とを加算することによって、逆変換ブロック213(すなわち、再構成された残差ブロック213)を予測ブロック265に加算して、サンプル領域における再構成されたブロック215を取得するように構成される。
随意に、たとえば、ラインバッファ216の、バッファユニット216(略して「バッファ」216)は、たとえば、イントラ予測用の、再構成されたブロック215および対応するサンプル値をバッファリングすなわち記憶するように構成される。他の実施形態では、エンコーダは、任意のタイプの推定および/または予測、たとえば、イントラ予測のために、バッファユニット216の中に記憶されている、フィルタ処理されていない再構成されたブロックおよび/または対応するサンプル値を使用するように構成され得る。
たとえば、エンコーダ20の一実施形態は、バッファユニット216が、イントラ予測ユニット254のための再構成されたブロック215を記憶するために使用されるだけでなく、ループフィルタユニット220(図2に示さず)のためにも使用されるように、かつ/または、たとえば、バッファユニット216および復号ピクチャバッファユニット230が1つのバッファを形成するように、構成されてよい。他の実施形態では、フィルタ処理済みのブロック221、および/または復号ピクチャバッファ230からのブロックもしくはサンプル(そのブロックまたはサンプルは図2に示されない)が、イントラ予測ユニット254のための入力または基準として使用される。
ループフィルタユニット220(簡潔に「ループフィルタ」220と呼ばれる)は、サンプル遷移を平滑化するかまたはビデオ品質を改善するために、再構成されたブロック215をフィルタ処理してフィルタ処理済みのブロック221を取得するように構成される。ループフィルタユニット220は、たとえば、デブロッキングフィルタ、サンプル適応オフセット(sample-adaptive offset、SAO)フィルタ、あるいは双方向フィルタ、適応ループフィルタ(adaptive loop filter、ALF)、シャープ化もしくは平滑化フィルタ、または協調フィルタなどの別のフィルタを含む、1つまたは複数のループフィルタを表すことを意図する。ループフィルタユニット220はループ内フィルタとして図2に示されるが、別の構成では、ループフィルタユニット220はループ後フィルタとして実装されてよい。フィルタ処理済みのブロック221は、フィルタ処理済みの再構成されたブロック221と呼ばれることもある。復号ピクチャバッファ230は、ループフィルタユニット220が、再構成された符号化ブロックに対してフィルタ処理演算を実行した後、再構成された符号化ブロックを記憶し得る。
エンコーダ20(それに対応して、ループフィルタユニット220)の一実施形態は、たとえば、直ちに、またはエントロピー符号化ユニット270もしくは任意の他のエントロピー符号化ユニットによって実行されるエントロピー符号化の後、(サンプル適応オフセット情報などの)ループフィルタパラメータを出力するように構成されてよく、その結果、たとえば、デコーダ30は、同じループフィルタパラメータを受信し得、同じループフィルタパラメータを復号に適用し得る。
復号ピクチャバッファ(decoded picture buffer、DPB)230は、エンコーダ20によってビデオデータを符号化するための参照ピクチャデータを記憶する参照ピクチャメモリであってよい。DPB230は、ダイナミックランダムアクセスメモリ(dynamic random access memory、DRAM)(同期DRAM(synchronous DRAM、SDRAM)、磁気抵抗RAM(magnetoresistive RAM、MRAM)、および抵抗RAM(resistive RAM、RRAM)を含む)または別のタイプのメモリデバイスなどの、様々なメモリデバイスのうちのいずれか1つによって形成され得る。DPB230およびバッファ216は、同じメモリデバイスまたは別個のメモリデバイスによって設けられてよい。一例では、復号ピクチャバッファ(decoded picture buffer、DPB)230は、フィルタ処理済みのブロック221を記憶するように構成される。復号ピクチャバッファ230は、同じ現在ピクチャの、または異なるピクチャの、以前にフィルタ処理された別のブロック、たとえば、以前に再構成かつフィルタ処理されたブロック221、たとえば、以前に再構成されたピクチャを記憶するようにさらに構成されてよく、たとえば、インター予測用の、以前に再構成された完全な、すなわち、復号されたピクチャ(ならびに対応する参照ブロックおよびサンプル)、および/または部分的に再構成された現在ピクチャ(ならびに対応する参照ブロックおよびサンプル)を提供し得る。一例では、再構成されたブロック215が、ループ内フィルタ処理を用いずに再構成される場合、復号ピクチャバッファ(decoded picture buffer、DPB)230は、再構成されたブロック215を記憶するように構成される。
ブロック予測処理ユニット260とも呼ばれる予測処理ユニット260は、画像ブロック203(現在ピクチャ201の現在画像ブロック203)、および再構成されたピクチャデータ、たとえば、同じ(現在)ピクチャの参照サンプルをバッファ216から、かつ/または以前に復号された1つもしくは複数のピクチャの参照ピクチャデータ231を復号ピクチャバッファ230から受信または取得し、そのようなデータを予測のために処理し、すなわち、インター予測ブロック245またはイントラ予測ブロック255であってよい予測ブロック265を提供するように構成される。
モード選択ユニット262は、残差ブロック205を計算するとともに再構成されたブロック215を再構成するために、予測モード(たとえば、イントラ予測モードまたはインター予測モード)、および/または予測ブロック265として使用されるべき対応する予測ブロック245もしくは255を選択するように構成され得る。
モード選択ユニット262の一実施形態は、(たとえば、予測処理ユニット260によってサポートされる予測モードから)予測モードを選択するように構成されてよく、ここで、予測モードは、最適整合もしくは最小残差(最小残差は、送信または記憶のためのより良好な圧縮を意味する)をもたらし、または最小シグナリングオーバーヘッド(最小シグナリングオーバーヘッドは、送信または記憶のためのより良好な圧縮を意味する)をもたらし、あるいはその両方を考慮するかまたはその両方のバランスをとる。モード選択ユニット262は、レートひずみ最適化(rate distortion optimization、RDO)に基づいて予測モードを決定し、すなわち、最小レートひずみ最適化をもたらす予測モードを選択するか、または関係するレートひずみがそれに対して少なくとも予測モード選択基準を満たす予測モードを選択するように構成され得る。
予測処理ユニット260は、たとえば、4分木(quad-tree、QT)区分、2分木(binary-tree、BT)区分、3分木(triple-tree、TT)区分、またはそれらの任意の組合せを反復的に使用するによって、より小さいブロック区分またはサブブロックに画像ブロック203を区分し、ブロック区分またはサブブロックの各々に対して、たとえば、予測を実行するようにさらに構成されてよく、ここで、モード選択は、区分された画像ブロック203の木構造の選択、およびブロック区分またはサブブロックの各々に適用される予測モードの選択を含む。
インター予測ユニット244は、動き推定(motion estimation、ME)ユニット(図2に示さず)および動き補償(motion compensation、MC)ユニット(図2に示さず)を含んでよい。動き推定ユニットは、動き推定のために、ピクチャ画像ブロック203(現在ピクチャ201の現在ピクチャ画像ブロック203)、および復号ピクチャ231、または以前に再構成された少なくとも1つまたは複数のブロック、たとえば、以前に復号された1つまたは複数の他の/異なるピクチャ231の再構成された1つまたは複数のブロックを受信または取得するように構成される。たとえば、ビデオシーケンスは、現在ピクチャおよび以前に復号されたピクチャ31を含んでよい。言い換えれば、現在ピクチャおよび以前に復号されたピクチャ31は、ビデオシーケンスを形成するピクチャのシーケンスの一部であってよく、またはそれらを形成してよい。
たとえば、エンコーダ20は、複数の他のピクチャのうちの同じピクチャもしくは異なるピクチャの複数の参照ブロックから参照ブロックを選択し、参照ピクチャを動き推定ユニット(図2に示さず)に提供し、かつ/または参照ブロックの位置(座標XおよびY)と現在ブロックの位置との間のオフセット(空間的なオフセット)をインター予測パラメータとして提供するように構成され得る。このオフセットは、動きベクトル(motion vector、MV)とも呼ばれる。
動き補償ユニットは、インター予測パラメータを取得し、インター予測ブロック245を取得するために、インター予測パラメータに基づいて、またはインター予測パラメータを使用することによって、インター予測を実行するように構成される。動き補償ユニット(図2に示さず)によって実行される動き補償は、動き推定を通じて決定された動き/ブロックベクトルに基づいて予測ブロックをフェッチまたは生成すること(場合によってはサブサンプル精度を得るために補間を実行すること)を含んでよい。補間フィルタ処理は、知られている見本のサンプルから追加の見本のサンプルを生成してよく、それによって、ピクチャブロックをコーディングするために使用され得る候補予測ブロックの数量を潜在的に増大させる。現在ピクチャブロックのPU用の動きベクトルを受信すると、動き補償ユニット246は、1つの参照ピクチャリストの中で動きベクトルが指し示す先の予測ブロックの位置を特定し得る。動き補償ユニット246は、デコーダ30によってビデオスライスのピクチャブロックを復号するために、ブロックおよびビデオスライスに関連するシンタックス要素をさらに生成し得る。
イントラ予測ユニット254は、ピクチャ画像ブロック203(現在ピクチャブロック)、およびイントラ推定用の同じピクチャの、以前に再構成された1つまたは複数のブロック、たとえば、再構成された隣接ブロックを取得するように構成される。たとえば、エンコーダ20は、複数のイントラ予測モードからイントラ予測モード(たとえば、LM予測モード)を選択するように構成され得る。
たとえば、ビデオシーケンスの中の画像のクロマ成分に対して、H.265では、画像のクロマ成分用の5つのイントラ予測モード、すなわち、planarモード、垂直モード、水平モード、DCモード、および派生モード(DM)があり得る。次世代ビデオコーディング規格(たとえば、H.266)では、画像のクロマ成分用のイントラ予測モードは成分交差予測(Cross component prediction、CCP)モードをさらに含み、ここで、成分交差予測(Cross component prediction、CCP)モードは、成分交差イントラ予測モード(Cross component intra prediction、CCIP)またはcross component linear mode(CCLM)予測モードとも呼ばれる。CCLM予測モードは、簡潔に線形モデルモード(linear model mode、略してLMモード)と呼ばれることもある。LMモードとは、ルーマとクロマとの間のテクスチャ相関を使用するクロマイントラ予測方法である。
別の例の場合、ビデオシーケンスの中の画像のルーマ成分に対して、H.265ではルーマ成分用の合計35個のイントラ予測モードがあり、ここで、35個のイントラ予測モードは、33個の方向性予測モード、DC予測モード、およびplanar予測モードを含む。方向性予測モードは、(intra mode indexフラグを使用して)特定の方向で、現在ブロックの中のサンプルの位置に参照サンプルをマッピングして現在サンプルの予測値を取得すること、または(intra mode indexフラグを使用して)特定の方向で、現在のブロックの中の各サンプルの位置を参照サンプルに逆にマッピングすることを指し、ここで、対応する参照サンプルのサンプル値は、現在サンプルの予測値である。方向性予測モードとは異なり、DC予測モードは、現在ブロックの中のサンプルの予測値として参照サンプルの平均を使用し、planarモードは、現在サンプルの上および左における参照サンプルのサンプル値、ならびに現在ブロックの右上および左下における参照サンプルのサンプル値を使用して、現在サンプルの予測値を共同で導出する。
イントラ予測ユニット254は、たとえば、選択されたイントラ予測モードのイントラ予測パラメータに基づいて、イントラ予測ブロック255を決定するようにさらに構成される。いずれの場合も、ブロック用のイントラ予測モードを選択した後、イントラ予測ユニット254は、イントラ予測パラメータ、すなわち、ブロック用の選択されたイントラ予測モードを示す情報を、エントロピー符号化ユニット270に提供するようにさらに構成される。
本発明のこの実施形態では、イントラ予測ユニット254は、フィルタセットをさらに含んでよい。フィルタセットは複数のフィルタタイプを含み、異なるフィルタタイプは、それぞれ、異なるルーマブロックダウンサンプリングアルゴリズムを表し、各フィルタタイプは1つのクロマサンプル位置に対応する。イントラ予測ユニット254は、現在のビデオシーケンスのクロマサンプル位置を決定し、現在の符号化に対して使用されるフィルタタイプをクロマサンプル位置に基づいて決定し、フィルタタイプに基づいて表示情報を生成するようにさらに構成され得る。表示情報は、現在のビデオシーケンスの符号化または復号の間(たとえば、ピクチャ201または画像ブロック203の符号化または再構成の間)、LM予測モードでのルーマ画像のダウンサンプリングプロセスにおいて使用されるフィルタタイプを示すために使用される。イントラ予測ユニット254は、フィルタタイプの表示情報をエントロピー符号化ユニット270に提供するようにさらに構成される。
具体的には、イントラ予測ユニット254は、シンタックス要素をエントロピー符号化ユニット270へ送信してよく、ここで、シンタックス要素は、イントラ予測パラメータ(たとえば、複数のイントラ予測モードが詳しく検討された後、現在ブロックに対する予測のために選択されるイントラ予測モード、たとえば、LMモードの表示情報)、およびフィルタタイプの表示情報を含む。可能な適用シナリオでは、1つのイントラ予測モードしかない、すなわち、LM予測モードしかない場合、シンタックス要素の中でイントラ予測パラメータが搬送されなくてよい。この場合、デコーダ側30は、復号のためにデフォルトでLM予測モードを直ちに使用してよい。一例では、イントラ予測ユニット254は、以下のインター予測技法の任意の組合せを実行するように構成され得る。
エントロピー符号化ユニット270は、たとえば、符号化ビットストリームの形態で、出力部272を通じて出力され得る符号化ピクチャデータ21を取得するために、以下のもの、すなわち、量子化係数209、インター予測パラメータ、イントラ予測パラメータ、および/またはループフィルタパラメータの1つまたは全部に対して、エントロピー符号化アルゴリズムまたは方式(たとえば、可変長コーディング(variable length coding、VLC)方式、コンテキスト適応VLC(context adaptive VLC、CAVLC)方式、算術コーディング方式、コンテキスト適応バイナリ算術コーディング(context adaptive binary arithmetic coding、CABAC)、シンタックスベースコンテキスト適応バイナリ算術コーディング(syntax-based context-adaptive binary arithmetic coding、SBAC)、確率間隔区分エントロピー(probability interval partitioning entropy、PIPE)コーディング、または別のエントロピーコーディング方法もしくは技法)を適用(またはバイパス)するように構成される。符号化ビットストリームは、デコーダ30へ送信されてよく、または後でデコーダ30によって送信するかもしくは取り出すためにアーカイブされてもよい。エントロピー符号化ユニット270は、符号化されつつある現在ビデオスライスのための別のシンタックス要素をエントロピー符号化するようにさらに構成され得る。
エンコーダ20の他の構造的変形は、ビデオストリームを符号化するように構成され得る。たとえば、非変換ベースのエンコーダ20は、いくつかのブロックまたはフレームに対して変換処理ユニット206を用いずに残差信号を直接量子化してよい。別の実装形態では、エンコーダ20は、単一のユニットに組み合わせられている量子化ユニット208および逆量子化ユニット210を有してよい。
具体的には、本発明の一実施形態では、エンコーダ20は、クロマブロックのサンプル位置タイプに基づいてフィルタタイプの値を設定することと、その値に基づいて、フィルタタイプを示すために使用される第1の表示情報を生成することであって、ここで、フィルタタイプが、フィルタセットの中のフィルタに対応する、生成することと、シンタックス要素の中の情報として第1の表示情報をビットストリームの中に符号化することであって、ここで、第1の表示情報が、符号化ピクチャデータ21の中で搬送される、符号化することとを行うように構成され得る。
本発明の一実施形態では、エンコーダ20は、複数のイントラ予測モードからLMモードを選択することと、第2の表示情報を生成することであって、ここで、第2の表示情報が、線形モデルモードを示すために使用される、生成することと、シンタックス要素の中の情報として第2の表示情報をビットストリームの中に符号化することであって、ここで、第2の表示情報が、符号化ピクチャデータ21の中で搬送される、符号化することとを行うようにさらに構成され得る。
本発明の一実施形態では、予測ブロックの構成中、エンコーダ20は、LMモードにおいて、フィルタセットの中にありフィルタタイプに対応するフィルタを第1の表示情報に基づいて決定することと、第2のルーマブロックを取得するために、フィルタを使用することによって第1のルーマブロックをダウンサンプリングすることであって、ここで、第1のルーマブロックが、現在クロマブロックに対応するルーマブロックである、ダウンサンプリングすることと、テンプレートクロマサンプルおよびテンプレートルーマサンプルを取得することであって、ここで、テンプレートクロマサンプルが、現在クロマブロックの複数の隣接クロマサンプルを含み、テンプレートルーマサンプルが、第1のルーマブロックの複数の隣接ルーマサンプルをダウンサンプリングすることによって取得される、取得することと、テンプレートクロマサンプルおよびテンプレートルーマサンプルに基づいて線形モデル係数を取得することと、第2のルーマブロックおよび線形モデル係数に基づいて現在クロマブロックの予測値を取得することとを行うようにさらに構成され得る。
図3は、本発明の一実施形態を実施するように構成された例示的なデコーダ30の概略/概念ブロック図である。デコーダ30は、復号ピクチャ231を取得するために、たとえば、エンコーダ20による符号化を通じて取得された、符号化ピクチャデータ21を受信するように構成される。復号中、デコーダ30は、エンコーダ20からビデオデータ、たとえば、符号化ビデオスライスのピクチャブロックおよび関連するシンタックス要素を表す符号化ビデオビットストリームを受信する。
図3の例では、デコーダ30は、エントロピー復号ユニット304、逆量子化ユニット310、逆変換処理ユニット312、再構成ユニット314(たとえば、加算器314)、バッファ316、ループフィルタ320、復号ピクチャバッファ330、および予測処理ユニット360を含む。予測処理ユニット360は、インター予測ユニット344、イントラ予測ユニット354、およびモード選択ユニット362を含んでよい。いくつかの例では、デコーダ30は、図2におけるエンコーダ20を参照しながら説明した符号化プロセスのおおよそ逆である復号プロセスを実行し得る。
エントロピー復号ユニット304は、符号化ピクチャデータ21に対してエントロピー復号を実行して、たとえば、量子化係数309、ならびに/または復号されたコーディングパラメータ(図3に示さず)、たとえば、インター予測パラメータ、イントラ予測パラメータ、ループフィルタパラメータ、および/もしくは(復号されている)別のシンタックス要素のいずれか1つまたは全部を取得するように構成される。エントロピー復号ユニット304は、インター予測パラメータ、イントラ予測パラメータ、および/または別のシンタックス要素を予測処理ユニット360に転送するようにさらに構成される。デコーダ30は、ビデオスライスレベルおよび/またはビデオブロックレベルでシンタックス要素を受信し得る。
逆量子化ユニット310は、逆量子化ユニット210と同じ機能を有してよい。逆変換処理ユニット312は、逆変換処理ユニット212と同じ機能を有してよい。再構成ユニット314は、再構成ユニット214と同じ機能を有してよい。バッファ316は、バッファ216と同じ機能を有してよい。ループフィルタ320は、ループフィルタ220と同じ機能を有してよい。復号ピクチャバッファ330は、復号ピクチャバッファ230と同じ機能を有してよい。
予測処理ユニット360は、インター予測ユニット344およびイントラ予測ユニット354を含んでよい。インター予測ユニット344は、機能がインター予測ユニット244と類似であってよく、イントラ予測ユニット354は、機能がイントラ予測ユニット254と類似であってよい。予測処理ユニット360は、ブロック予測を実行し、かつ/または符号化データ21から予測ブロック365を取得し、たとえば、エントロピー復号ユニット304から、予測関連パラメータ、および/または選択された予測モードについての情報を(明示的または暗黙的に)受信または取得するように、通常は構成される。
ビデオスライスがイントラ符号化(I)スライスとして符号化されるとき、予測処理ユニット360のイントラ予測ユニット354は、シグナリングされたイントラ予測モードおよび現在フレームまたは現在ピクチャの以前に復号されたブロックからのデータに基づいて、現在ビデオスライスのピクチャブロックに対する予測ブロック365を生成するように構成される。ビデオフレームがインター符号化(BまたはP)スライスとして符号化されるとき、予測処理ユニット360のインター予測ユニット344(たとえば、動き補償ユニット)は、動きベクトル、およびエントロピー復号ユニット304から受信される別のシンタックス要素に基づいて、現在ビデオスライスのビデオブロックに対する予測ブロック365を生成するように構成される。インター予測の場合、予測ブロックは、1つの参照ピクチャリストの中の参照ピクチャのうちの1つから生成されてよい。デコーダ30は、DPB330の中に記憶された参照ピクチャに基づいてデフォルトの構成技法を使用することによって、参照フレームリスト、すなわち、リスト0およびリスト1を構成し得る。
予測処理ユニット360は、動きベクトルおよび別のシンタックス要素を構文解析することによって現在ビデオスライスのビデオブロックに対する予測情報を決定し、予測情報を使用して、復号されつつある現在ビデオブロックに対する予測ブロックを生成するように構成される。たとえば、予測処理ユニット360は、受信されたシンタックス要素のうちのいくつかを使用して、ビデオスライスのビデオブロックをコーディングするために使用される予測モード(たとえば、イントラ予測またはインター予測)、インター予測スライスタイプ(たとえば、Bスライス、Pスライス、またはGPBスライス)、スライス用の参照ピクチャリストのうちの1つまたは複数に対する構成情報、スライスのインター符号化ビデオブロックごとの動きベクトル、スライスのインターコード化ビデオブロックごとのインター予測ステータス、および現在ビデオスライスのビデオブロックを復号するための他の情報を決定する。
逆量子化ユニット310は、ビットストリームの中で提供されエントロピー復号ユニット304によって復号された量子化変換係数を逆量子化(inverse quantize)(すなわち、量子化解除(dequantize))するように構成され得る。逆量子化プロセスは、ビデオスライスの中のビデオブロックごとにエンコーダ20によって計算された量子化パラメータを使用して、適用されるべき量子化度を決定し、かつ同様に、適用されるべき逆量子化度を決定することを含んでよい。
逆変換処理ユニット312は、変換係数に逆変換(たとえば、逆DCT、逆整数変換、または概念的に類似の逆変換プロセス)を適用してサンプル領域における残差ブロックを生成するように構成される。
再構成ユニット314(たとえば、加算器314)は、たとえば、再構成された残差ブロック313のサンプル値と予測ブロック365のサンプル値とを加算することによって、逆変換ブロック313(すなわち、再構成された残差ブロック313)を予測ブロック365に加算して、サンプル領域における再構成されたブロック315を取得するように構成される。
(コーディングループ中またはコーディングループ後の)ループフィルタユニット320は、フィルタ処理済みのブロック321を取得するために、再構成されたブロック315をフィルタ処理して、サンプル遷移を平滑化するかまたはビデオ品質を改善するように構成される。一例では、ループフィルタユニット320は、以下で説明するフィルタ処理技法の任意の組合せを実行するように構成され得る。ループフィルタユニット320は、たとえば、デブロッキングフィルタ、サンプル適応オフセット(sample-adaptive offset、SAO)フィルタ、あるいは双方向フィルタ、適応ループフィルタ(adaptive loop filter、ALF)、シャープ化もしくは平滑化フィルタ、または協調フィルタなどの別のフィルタを含む、1つまたは複数のループフィルタを表すことを意図する。ループフィルタユニット320はループ内フィルタとして図3に示されるが、別の構成では、ループフィルタユニット320はループ後フィルタとして実装されてよい。
所与のフレームまたはピクチャの中の復号ビデオブロック321は、次いで、後続の動き補償のために使用される参照ピクチャを記憶する復号ピクチャバッファ330の中に記憶される。
デコーダ30は、ユーザへの提示またはユーザによる視聴のために、たとえば、出力部332を通じて復号ピクチャ31を出力するように構成される。
デコーダ30の他の変形は、圧縮されたビットストリームを復号するように構成され得る。たとえば、デコーダ30は、ループフィルタユニット320を用いずに出力ビデオストリームを生成してよい。たとえば、非変換ベースのエンコーダ30は、いくつかのブロックまたはフレームに対して逆変換処理ユニット312を用いずに残差信号を直接逆量子化してよい。別の実装形態では、デコーダ30は、単一のユニットに組み合わせられている逆量子化ユニット310および逆変換処理ユニット312を有してよい。
具体的には、本発明の一実施形態では、デコーダ30は、第1の表示情報および第2の表示情報を取得するためにビットストリームを構文解析することであって、ここで、第2の表示情報が、クロマブロックを現在復号するために使用されるイントラ予測モードがLMモードであることを示すために使用され、第1の表示情報が、フィルタタイプを示すために使用される、構文解析することと、第2のルーマブロックを取得するために、フィルタタイプに対応するフィルタを使用することによって第1のルーマブロックをダウンサンプリングすることであって、ここで、第1のルーマブロックが、現在クロマブロックに対応するルーマブロックである、ダウンサンプリングすることと、テンプレートクロマサンプルおよびテンプレートルーマサンプルを取得することであって、ここで、テンプレートクロマサンプルが、現在クロマブロックの複数の隣接クロマサンプルを含み、テンプレートルーマサンプルが、第1のルーマブロックの複数の隣接ルーマサンプルをダウンサンプリングすることによって取得される、取得することと、テンプレートクロマサンプルおよびテンプレートルーマサンプルに基づいて線形モデル係数を取得することと、第2のルーマブロックおよび線形モデル係数に基づいて現在クロマブロックの予測値を取得することとを行うように構成される。
図4は、本発明の一実施形態によるビデオコーディングデバイス400(たとえば、ビデオ符号化デバイス400またはビデオ復号デバイス400)の概略構造図である。ビデオコーディングデバイス400は、本明細書で説明する一実施形態を実施することに適している。一実施形態では、ビデオコーディングデバイス400は、ビデオデコーダ(たとえば、図1Aにおけるデコーダ30)またはビデオエンコーダ(たとえば、図1Aにおけるエンコーダ20)であってよい。別の実施形態では、ビデオコーディングデバイス400は、図1Aにおけるデコーダ30または図1Aにおけるエンコーダ20の1つまたは複数の構成要素であってよい。
ビデオコーディングデバイス400は、データを受信するように構成される入口ポート410および受信機ユニット(Rx)420、データを処理するように構成されるプロセッサ、論理ユニット、または中央処理ユニット(CPU)430、データを送信するように構成される送信機ユニット(Tx)440および出口ポート450、ならびにデータを記憶するように構成されたメモリ460を含む。ビデオコーディングデバイス400は、光信号または電気信号の出口または入口のために、入口ポート410、受信機ユニット420、送信機ユニット440、および出口ポート450に結合される、光電気構成要素および電気光(EO)構成要素をさらに含んでよい。
プロセッサ430は、ハードウェアおよびソフトウェアを使用することによって実装される。プロセッサ430は、1つまたは複数のCPUチップ、コア(たとえば、マルチコアプロセッサ)、FPGA、ASIC、およびDSPとして実装され得る。プロセッサ430は、入口ポート410、受信機ユニット420、送信機ユニット440、出口ポート450、およびメモリ460と通信する。プロセッサ430は、コーディングモジュール470(たとえば、符号化モジュール470または復号モジュール470)を含む。符号化/復号モジュール470は、本発明の実施形態において提供されるクロマブロック予測方法を実施するために、本明細書で開示する実施形態を実施する。たとえば、符号化/復号モジュール470は、様々なコーディング動作を実施、処理、または提供する。したがって、符号化/復号モジュール470を含むことは、ビデオコーディングデバイス400の機能に大幅な改善をもたらし、異なる状態へのビデオコーディングデバイス400の切替えに影響を及ぼす。代替として、符号化/復号モジュール470は、メモリ460の中に記憶されプロセッサ430によって実行される命令として実装される。
メモリ460は、1つまたは複数のディスク、テープドライブ、およびソリッドステートドライブを含み、そのようなプログラムが選択的に実行されるときにプログラムを記憶するための、かつプログラム実行中に読み取られる命令およびデータを記憶するための、オーバーフローデータ記憶デバイスとして使用され得る。メモリ460は、揮発性および/または不揮発性であってよく、読取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、3進連想メモリ(ternary content-addressable memory、TCAM)、および/またはスタティックランダムアクセスメモリ(SRAM)であってよい。
図5は、例示的な一実施形態による、図1Aにおけるソースデバイス12および宛先デバイス14のうちのいずれか1つまたは2つとして使用され得る装置500の簡略化されたブロック図である。装置500は、本出願における技術を実施することができる。クロマブロック予測のための装置500は、複数のコンピューティングデバイスを含む、コンピューティングシステムの形態をなしてよく、またはモバイルフォン、タブレットコンピュータ、ラップトップコンピュータ、もしくはデスクトップコンピュータなどの、単一のコンピューティングデバイスの形態をなしてよい。
装置500の中のプロセッサ502は、中央処理ユニットであってよい。代替として、プロセッサ502は、情報を制御または処理することが可能な、任意の他のタイプの1つまたは複数の既存の/将来開発されるデバイスであってよい。図に示すように、開示する実装形態はプロセッサ502などの単一のプロセッサを使用することによって実践され得るが、2つ以上のプロセッサを使用することによって速度および効率における利点が達成され得る。
一実装形態では、装置500の中のメモリ504は、読取り専用メモリ(Read Only Memory、ROM)デバイスまたはランダムアクセスメモリ(random access memory、RAM)デバイスであってよい。任意の他の適切なタイプの記憶デバイスがメモリ504として使用され得る。メモリ504は、バス512を通じてプロセッサ502によってアクセスされるコードおよびデータ506を含んでよい。メモリ504は、オペレーティングシステム508およびアプリケーションプログラム510をさらに含んでよい。アプリケーションプログラム510は、本明細書で説明する方法をプロセッサ502が実行することを可能にする少なくとも1つのプログラムを含む。たとえば、アプリケーションプログラム510は、アプリケーション1〜Nを含んでよく、アプリケーション1〜Nは、本明細書で説明する方法を実行するビデオコーディングアプリケーションをさらに含む。装置500は、追加のメモリを2次メモリ514の形態でさらに含んでよい。2次メモリ514は、たとえば、モバイルコンピューティングデバイスと一緒に使用されるメモリカードであってよい。ビデオ通信セッションが大量の情報を含むことがあるので、情報のうちの全部または一部は、2次メモリ514の中に記憶されてよく、必要に応じて処理のためにメモリ504の中にロードされてよい。
装置500は、1つまたは複数の出力デバイス、たとえば、ディスプレイ518をさらに含んでよい。一例では、ディスプレイ518は、ディスプレイとタッチ入力を動作可能に感知するタッチセンシティブ素子とを組み合わせるタッチセンシティブディスプレイであってよい。ディスプレイ518は、バス512を通じてプロセッサ502に結合され得る。ディスプレイ518に加えて、またはディスプレイ518の代替として、ユーザが装置500をプログラムするかまたは別の方式で装置500を使用することを可能にする別の出力デバイスが設けられてよい。出力デバイスがディスプレイであるかまたはディスプレイを含むとき、ディスプレイは、液晶ディスプレイ(liquid crystal display、LCD)、陰極線管(cathode-ray tube、CRT)ディスプレイ、プラズマディスプレイ、または有機LED(organic LED、OLED)ディスプレイなどの発光ダイオード(light emitting diode、LED)ディスプレイを使用することによることを含む、様々なやり方で実装され得る。
装置500は、画像感知デバイス520をさらに含んでよく、または画像感知デバイス520と通信していてよい。画像感知デバイス520は、たとえば、カメラ、または画像を感知することが可能な任意の他の既存の/将来開発される画像感知デバイス520である。画像は、たとえば、装置500を動作させるユーザの画像である。画像感知デバイス520は、装置500を動作させるユーザと直接向き合うように配置されることがある。一例では、画像感知デバイス520の位置および光学軸は、画像感知デバイス520の視野が、ディスプレイ518に隣接する領域を含み、かつディスプレイ518がその領域から見えるように構成されてよい。
装置500は、音感知デバイス522をさらに含んでよく、または音感知デバイス522と通信していてよい。音感知デバイス522は、たとえば、マイクロフォン、または装置500の近くの音を送ることが可能な任意の他の既存の/将来開発される音感知デバイスである。音感知デバイス522は、装置500を動作させるユーザと向き合うように直接配置されることがあり、ユーザが装置500を動作させるときに作られる音、たとえば、音声または他の音を受け取るように構成され得る。
図5は装置500のプロセッサ502およびメモリ504を単一のユニットの中に統合されるものとして示すが、別の構成があり得る。プロセッサ502の実装は、互いに直接結合され得る複数の機械(各機械が1つまたは複数のプロセッサを有する)の中に分散されてよく、または局所的な領域もしくは別のネットワークの中に分散されてもよい。メモリ504は、複数の機械にわたって分散されてよく、たとえば、メモリ504は、ネットワークベースのメモリ、または装置500がその中で動作する複数の機械の中のメモリである。本明細書では単一のバスしか示されないが、装置500のバス512は複数のバスを含んでよい。さらに、2次メモリ514は、装置500の他の構成要素に直接結合されてよく、またはネットワークを介してアクセスされ得る。2次メモリ514は、メモリカードなどの単一の統合ユニット、または複数のメモリカードなどの複数のユニットを含んでよい。したがって、装置500は多種多様な構成で実装され得る。
本発明の実施形態における技術的解決策をよりよく理解するために、以下のことは、YUV画像(またはYCbCr画像と呼ばれる)、および本発明の実施形態におけるクロマ成分に対するイントラ予測用のLMモードをさらに説明する。
既存のビデオは、一般にカラービデオである。ルーマ(Y)成分に加えて、カラービデオはクロマ成分(U,V)をさらに含む。したがって、そのような画像はYUV画像とも呼ばれる。この場合、YUV画像のコーディングは、ルーマ成分のコーディングだけでなくクロマ成分のコーディングも含む。研究は人間の目が色よりも輝度に敏感であることを示す。したがって、コーディング中、記憶空間を節約しコーディング効率を改善するために、ルーマ成分は完全な解像度でサンプリングされ、クロマ成分は完全な解像度でサンプリングされなくてよい。カラービデオにおけるルーマ成分およびクロマ成分に対する様々なサンプリング方法によれば、一般に、ビデオシーケンスの中に、4:4:4フォーマットでのYUV画像、4:2:2フォーマットでのYUV画像、4:2:0フォーマットでのYUV画像などがある。図6は、4:4:4フォーマット、4:2:2フォーマット、および4:2:0フォーマットの例を示し、ここで、図の中の十字記号(×)はルーマ成分サンプルを表し、図の中の円記号(○)はクロマ成分サンプルを表す。
4:4:4フォーマットは、クロマ成分に対してダウンサンプリングが実行されないことを示し、4:4:4フォーマットは、クロマ成分の解像度が最も高いフォーマットである。言い換えれば、4つの隣接サンプルの中のデータは、4つのY成分、4つのU成分、および4つのV成分を含む。
4:2:2フォーマットは、ルーマ成分と比較してクロマ成分に対して2:1水平ダウンサンプリングが実行され、垂直ダウンサンプリングが実行されないことを示す。2つごとのUサンプルまたは2つごとのVサンプルに対して、各行は4つのYサンプルを含む。言い換えれば、4つの隣接サンプルの中のデータは、4つのY成分、2つのU成分、および2つのV成分を含む。
4:2:0フォーマットは、ルーマ成分と比較してクロマ成分に対して2:1水平ダウンサンプリングおよび2:1垂直ダウンサンプリングが実行されることを示す。4:2:0フォーマットは、クロマ成分の解像度が最も低いフォーマットであり、最も一般的なフォーマットでもある。4:2:0フォーマットでは、クロマサンプルの数量は、各行において(すなわち、水平方向において)ルーマサンプルの数量の半分でしかなく、各列において(すなわち、垂直方向において)ルーマサンプルの数量の半分でしかない。ビデオ画像が4:2:0フォーマットを使用するとき、画像ブロックのルーマ成分が2M*2Nというサイズを有する画像ブロックである場合、画像ブロックのクロマ成分はM*Nというサイズを有する画像ブロックである。たとえば、画像ブロックの解像度が720*480である場合、画像ブロックのルーマ成分の解像度は720*480であり、画像ブロックのクロマ成分の解像度は360*240である。
4:2:0フォーマットの場合、異なるクロマサンプル位置に基づく6個の異なるクロマサンプル位置タイプがあり得る。図7は、ルーマサンプルのルーマサンプル位置とクロマサンプルの6個の異なるクロマサンプル位置タイプとの間の例示的な関係を示す。6個の異なるクロマサンプル位置タイプは、タイプ0(type0)、タイプ1(type1)、タイプ2(type2)、タイプ3(type3)、タイプ4(type4)、およびタイプ5(type5)である。
本明細書では、本発明の実施形態における技術的解決策を説明するための一例として、4:2:0フォーマットでのYUV画像が使用される。本明細書では、現在の処理されるべき画像ブロックのルーマ成分は、ルーマブロックと呼ばれる(または、現在クロマブロックに対応するルーマブロック、第1のルーマブロック、ルーマ成分ブロック、もしくはlumaブロックと呼ばれる)こともあり、現在の処理されるべき画像ブロックのクロマ成分は、現在クロマブロックと呼ばれる(または、クロミナンスブロック、クロマ成分ブロック、もしくはchromaブロックと呼ばれる)こともある。
ルーマ成分に対するイントラ予測と同様に、クロマ成分に対するイントラ予測は、現在クロマブロックの周囲の再構成された隣接ブロックの境界サンプルを、現在クロマブロックの参照サンプルとして使用し、特定の予測モードでの現在クロマブロックの中のサンプルに参照サンプルをマッピングし、マッピングされた参照サンプルの値を現在クロマブロックの中のサンプルの予測値として使用する。クロマ成分のテクスチャが一般に比較的単純であるので、クロマ成分用のイントラ予測モードの数量が一般にルーマ成分用のイントラ予測モードの数量よりも小さいという点で、差異がある。たとえば、H.265では、クロマ成分用の5つのイントラ予測モード、すなわち、planarモード、垂直モード、水平モード、DCモード、および派生モード(DM)しかあり得ない。次世代ビデオコーディング規格(たとえば、H.266)では、クロマ成分用のイントラ予測モードは、成分交差予測(Cross component prediction、CCP)モードをさらに含む。
異なる適用シナリオでは、CCPモードが、成分交差イントラ予測モード(Cross component intra prediction、CCIP)もしくは成分交差線形予測モード(cross component linear mode、CCLM)と呼ばれることもあり、または簡潔に線形モデルモード(linear model mode、LMモード)と呼ばれることもあることを理解されたい。本明細書における説明のために一例としてLMモードが使用される。
LMモードは、ルーマとクロマとの間のテクスチャ相関を使用するクロマイントラ予測方法である。LMモードは、再構成されたルーマ成分を使用して線形モデルに基づいて現在クロマブロックの予測値を導出し、それによって、クロマ成分に対して、より正確な予測値を提供する。LMモードは以下の式で表現され得る。
predC(i,j)=α*recL'(i,j)+β
αおよびβは線形モデル係数を表し、predC(i,j)は位置(i,j)におけるクロマサンプルの予測値を表し、recL'(i,j)は、現在クロマブロックに対応するルーマブロックがクロマ成分の解像度にダウンサンプリングされた後に取得される、位置(i,j)における再構成されたルーマサンプルの値を表す。4:2:0フォーマットでのビデオシーケンスの場合、ルーマ成分の解像度はクロマ成分の解像度の4倍である。解像度がクロマブロックと同じルーマブロックを取得するために、ルーマ成分は、使用される前に、クロマ成分の同じダウンサンプリング方法を使用することによってクロマ成分の解像度にダウンサンプリングされる必要がある。
一例として図8が使用される。図8は、4:2:0フォーマットでのYUV画像において、現在クロマブロックに対応するルーマブロック(すなわち、画像ブロックのルーマ成分)、ならびにルーマブロックの隣接する上の参照サンプルおよび隣接する左の参照サンプル、ダウンサンプリングされたルーマブロック(すなわち、画像ブロックのダウンサンプリングされたルーマ成分、または第2のルーマブロックと呼ばれる)、ならびにダウンサンプリングされたルーマブロックの隣接する上の再構成された参照サンプルおよび隣接する左の再構成された参照サンプル、ならびに、現在クロマブロック(すなわち、画像ブロックのクロマ成分)、ならびに現在クロマブロックの隣接する上の再構成された参照サンプルおよび隣接する左の再構成された参照サンプルを示す。現在クロマブロックに対応するルーマブロックの解像度は2W*2Hであり、ダウンサンプリングされたルーマブロックの解像度はW*Hであり、現在クロマブロックの解像度はW*Hである。言い換えれば、ルーマブロック、およびルーマブロックの隣接する参照サンプルは、クロマ成分の解像度にダウンサンプリングされ、その結果、ダウンサンプリングされたルーマブロックが取得され得る。ダウンサンプリングされたルーマブロックの隣接する参照サンプルと、現在クロマブロックの隣接する参照サンプルとの間に、1対1の対応がある。
図9および図10を参照されたい。本発明のこの実施形態では、理解しやすいように、線形モデル係数の計算のために使用される、隣接する上側および隣接する左側は、テンプレート(template)と呼ばれることがある。テンプレートとは、線形モデル係数の計算のために使用されるルーマサンプルのセットまたはクロマサンプルのセットである。線形モデル係数の計算のために使用されるルーマサンプル(luma sample)のセットは、テンプレートルーマサンプルと呼ばれることもある。テンプレートルーマサンプルは、(ルーマ画像の中で、テンプレートクロマサンプルに対応する位置においてルーマサンプル値がないことがあるので)ルーマブロックの複数の隣接ルーマサンプルに対してダウンサンプリング動作を実行することによって取得される。線形モデル係数の計算のために使用されるクロマサンプル(chroma sample)のセットは、テンプレートクロマサンプルと呼ばれることもある。テンプレートクロマサンプルは、現在クロマブロックの再構成された複数の隣接クロマサンプルを含む。
可能な実施形態では、テンプレートクロマサンプルは、現在クロマブロックの上の隣接クロマサンプルの1つまたは複数の行、および現在クロマブロックの左の隣接クロマサンプルの1つまたは複数の列を特に含む。テンプレートルーマサンプルは、テンプレートクロマサンプルに1対1対応し、テンプレートルーマサンプルの中のサンプルの値およびテンプレートクロマサンプルの中のサンプルの値は、値ペアをなす。
たとえば、図9において、テンプレートクロマサンプルは、現在クロマブロックの、上の隣接クロマサンプルの1行および左の隣接クロマサンプルの1列を含む。したがって、テンプレートルーマサンプルは、ルーマサンプルの1行および左のルーマサンプルの1列を含み、ここで、ルーマサンプルの1行および左のルーマサンプルの1列は、テンプレートクロマサンプルの中のクロマサンプル位置に対応する。
たとえば、図10に示すように、一例では、テンプレートクロマサンプルは、現在クロマブロックの、上の隣接クロマサンプルの2行および左の隣接クロマサンプルの2列を含む。したがって、テンプレートルーマサンプルは、ルーマサンプルの2行およびルーマサンプルの2列を含み、ここで、ルーマサンプルの2行およびルーマサンプルの2列は、テンプレートクロマサンプルの中のクロマサンプル位置に対応する。
確かに、テンプレートクロマサンプルおよびテンプレートルーマサンプルの様々な特定の実装形態があり得る。別の例では、テンプレートクロマサンプルは、現在クロマブロックの左の隣接クロマサンプルの1つまたは複数の列のみを含んでよい。テンプレートルーマサンプルは、ルーマサンプルの1つまたは複数の列のみを含み、テンプレートルーマサンプルは、テンプレートクロマサンプルに1対1対応する。さらに別の例では、テンプレートクロマサンプルは、代替として、現在クロマブロックの上の隣接クロマサンプルの1つまたは複数の行のみを含んでよい。テンプレートルーマサンプルは、ルーマサンプルの1つまたは複数の行のみを含み、テンプレートルーマサンプルは、テンプレートクロマサンプルに1対1対応する。
上記で説明したように、テンプレートルーマサンプルは、ルーマブロックの複数の隣接ルーマサンプルに対してダウンサンプリング(downsampling)動作を実行することによって取得される。以下のことは、テンプレートルーマサンプルに対してダウンサンプリング動作を実行するための方法の一例を説明する。
図11は、いくつかのクロマサンプル位置といくつかのルーマサンプル位置との間の関係の例示的な図である。4:2:0フォーマットでのYUV画像に対して、ルーマ画像の左上頂点がルーマサンプルの座標原点として使用され、かつクロマ画像の左上頂点がクロマサンプルの座標原点として使用される場合、ルーマ画像の中の位置に対応するクロマ画像の中のサンプル位置(xb,yb)は、(2*xb,2*yb+0.5)である。テンプレートルーマサンプルの中のルーマサンプルの値、すなわち、サンプル位置(xb,yb)に対応するルーマサンプルの値を取得するために、ルーマブロックの複数の隣接ルーマサンプルが最初に選択されてよい。たとえば、ルーマブロックの複数の隣接ルーマサンプルのサンプル位置は、(2*xb,2*yb)、(2*xb-1,2*yb)、(2*xb+1,2*yb)、(2*xb,2*yb+1)、(2*xb-1,2*yb+1)、および(2*xb+1,2*yb+1)であり、位置(2*xb,2*yb+0.5)における値は、これらの位置に対応するルーマ画像の中のルーマサンプル値に基づいて導出され、その値はサンプル位置(xb,yb)に対応するルーマサンプルの値として使用される。
たとえば、一例では、テンプレートルーマサンプルの中のサンプル位置(xb,yb)に対応するルーマサンプルの値LC(xb,yb)を取得するために、以下の式に従って複数のルーマサンプルに対してダウンサンプリング計算が実行されてよい。
LC(xb,yb)=(2*L(2*xb,2*yb)+L(2*xb-1,2*yb)+L(2*xb+1,2*yb)+2*L(2*xb,2*yb+1)+L(2*xb-1,2*yb+1)+L(2*xb+1,2*yb+1)+4)>>3
ただし、シンボル「>>」は右への移動を表す。
現在ブロックのテンプレートルーマサンプルの中の他のルーマサンプル(xb+1,yb-1)、...、(xb+i,yb-1)...、および(xb-1,yb)、...、および(xb-1,yb+j)の値に対しても、同じダウンサンプリング方法を使用することによってダウンサンプリングが実行されてよいことが理解され得る。
既存のサンプリング方法でのダウンサンプリングが、確定したフィルタに基づいて実行されることに留意されたい。具体的に言えば、様々なビデオシーケンスの中の画像に対して、既存のLMモードでは、クロマサンプル位置にかかわらず、確定したダウンサンプリングフィルタが使用されるが、実際には異なるビデオシーケンスの中に異なるクロマサンプル位置が存在し得る事例、および異なるクロマサンプル位置によってルーマダウンサンプリングフィルタに引き起こされる影響は考慮されない。ルーマダウンサンプリング位置がクロマサンプル位置に整合しない場合、LMモデル式に従って導出されるLMモデル係数αおよびβは不正確であり、recL'(i,j)およびクロマサンプル位置は位置合わせされない。したがって、コーディング効率が下がる。
上記の欠点を克服し、LMモードでのクロマブロックに対する予測の確度を改善し、かつコーディング効率を改善するために、本発明の一実施形態は、LMモードにおいて使用されるクロマブロック予測方法を、上記の説明したシステムおよびデバイスに基づいて提供する。最初に、エンコーダ側の観点から方法が説明される。図12を参照すると、方法は、限定はしないが、以下のステップを含む。
ステップ701:現在クロマブロックに対する予測のために使用されるイントラ予測モードがLMモードであることを決定する。
特定の実装形態では、エンコーダ側は、イントラ予測用のLMモードのみを事前設定してよい。言い換えれば、この場合、エンコーダ側は、現在使用されるイントラ予測モードがLMモードであることを直ちに決定し、次いで、ステップ702〜ステップ704を実行し続ける。
別の特定の実装形態では、エンコーダ側は、複数のイントラ予測モードを事前設定してよく、ここで、複数のイントラ予測モードはLMモードを含み、エンコーダ側は、複数のイントラ予測モードを詳しく検討し、現在クロマブロック用の最適なイントラ予測モードがLMモードであることを決定する。この場合、エンコーダ側は、ステップ702〜ステップ704などの後続のステップの実行を開始する。
加えて、エンコーダ側は第2の表示情報をさらに設定してよく、ここで、第2の表示情報はLMモードを示すために使用され、その結果、第2の表示情報は、後続のステップ704においてビットストリームの中に符号化される。
ステップ702:現在クロマブロックのサンプル位置タイプに基づいてフィルタタイプを決定する。
言い換えれば、本発明のこの実施形態の設計では、現在クロマブロックがLMモードで予測されるとき、使用されるルーマダウンサンプリングフィルタは確定していないが、現在クロマブロックのサンプル位置タイプに基づいて決定される。現在クロマブロックの各サンプル位置タイプはフィルタタイプに対応する。
本発明の特定の実施形態では、6個のサンプル位置タイプが設計されてよい(そのような設計は、設計1と呼ばれることがある)。図7に示すように、6個のサンプル位置タイプは、type0、type1、type2、type3、type4、およびtype5を含む。したがって、6個のサンプル位置タイプに対応する6個のタイプのルーマダウンサンプリングフィルタ、すなわち、フィルタ0、フィルタ1、フィルタ2、フィルタ3、フィルタ4、およびフィルタ5がある。一例では、これらのフィルタのダウンサンプリングアルゴリズムは次のように別々に設定されてよい。
フィルタ0の場合:
LC(xb,yb)=(2*L(2*xb,2*yb)+L(2*xb-1,2*yb)+L(2*xb+1,2*yb)+2*L(2*xb,2*yb+1)+L(2*xb-1,2*yb+1)+L(2*xb+1,2*yb+1)+4)>>3
フィルタ1の場合:
LC(xb,yb)=(L(2*xb,2*yb)+L(2*xb+1,2*yb)+L(2*xb,2*yb+1)+L(2*xb+1,2*yb+1)+2)>>2
フィルタ2の場合:
LC(xb,yb)=(4*L(2*xb,2*yb)
+2*L(2*xb,2*yb+1)+2*L(2*xb,2*yb-1)+2*L(2*xb-1,2*yb)+2*L(2*xb+1,2*yb)
+L(2*xb+1,2*yb+1)+L(2*xb-1,2*yb+1)+L(2*xb-1,2*yb-1)+L(2*xb+1,2*yb-1)+8)>>4
フィルタ3の場合:
LC(xb,yb)=(2*L(2*xb,2*yb)+2*L(2*xb+1,2*yb)+L(2*xb,2*yb-1)+L(2*xb+1,2*yb-1)+L(2*xb,2*yb+1)+L(2*xb+1,2*yb+1)+4)>>3
フィルタ4の場合:
LC(xb,yb)=(4*L(2*xb,2*yb+1)
+2*L(2*xb,2*yb+2)+2*L(2*xb,2*yb)+2*L(2*xb-1,2*yb+1)+2*L(2*xb+1,2*yb+1)
+L(2*xb+1,2*yb+2)+L(2*xb-1,2*yb+2)+L(2*xb-1,2*yb)+L(2*xb+1,2*yb)+8)>>4
フィルタ5の場合:
LC(xb,yb)=(2*L(2*xb,2*yb+1)+2*L(2*xb+1,2*yb+1)+L(2*xb,2*yb)+L(2*xb+1,2*yb)+L(2*xb,2*yb+2)+L(2*xb+1,2*yb+2)+4)>>3
フィルタのダウンサンプリングアルゴリズムが限定ではなく例にすぎないことに留意されたい。
本発明の別の特定の実施形態では、クロマサンプル位置type0およびtype2が現在は最も一般的であることが考慮され、2つのサンプル位置タイプが代替として設計されてよい(そのような設計は、設計2と呼ばれることがある)。言い換えれば、2つのサンプル位置タイプは、type0およびtype2しか含まない。したがって、2つのサンプル位置タイプに対応する2つのタイプのルーマダウンサンプリングフィルタ、すなわち、フィルタ0およびフィルタ2がある。一例では、これらのフィルタのダウンサンプリングアルゴリズムは次のように別々に設定されてよい。
フィルタ0の場合:
LC(xb,yb)=(2*L(2*xb,2*yb)+L(2*xb-1,2*yb)+L(2*xb+1,2*yb)+2*L(2*xb,2*yb+1)+L(2*xb-1,2*yb+1)+L(2*xb+1,2*yb+1)+4)>>3
フィルタ2の場合:
LC(xb,yb)=(4*L(2*xb,2*yb)
+2*L(2*xb,2*yb+1)+2*L(2*xb,2*yb-1)+2*L(2*xb-1,2*yb)+2*L(2*xb+1,2*yb)
+L(2*xb+1,2*yb+1)+L(2*xb-1,2*yb+1)+L(2*xb-1,2*yb-1)+L(2*xb+1,2*yb-1)+8)>>4
フィルタのダウンサンプリングアルゴリズムが限定ではなく例にすぎないことに留意されたい。
上記の2つの設計に加えて、本発明のこの実施形態が代替として別の設計を含んでよいことにさらに留意されたい。たとえば、3つのクロマサンプル位置が設計され、3つのクロマサンプル位置は、それぞれ、3つのタイプのフィルタに対応する。本明細書ではこのことは限定されない。
このようにして、エンコーダ側は、最初に現在クロマブロックのサンプル位置タイプを決定してよく、次いで、現在クロマブロックのサンプル位置タイプに基づいて対応するフィルタタイプを決定してよく、すなわち、LMモードにおいて現在クロマブロックに対する予測のために使用されるルーマダウンサンプリングフィルタを決定してよい。
ステップ703:第1の表示情報を設定し、ここで、第1の表示情報は、フィルタタイプを示すために使用される。
本発明のこの実施形態では、シーケンスパラメータセット(sequence parameter set、SPS)パラメータが新たに追加され、SPSパラメータの値は、現在のビデオシーケンスの符号化または復号の間にLMモードにおけるルーマダウンサンプリングフィルタのタイプを示すために使用される。エンコーダ側において、このパラメータは、現在のシーケンスの中のクロマサンプル位置に基づいて設定されてよい。具体的には、第1の表示情報はフィルタタイプに基づいて設定されてよい。第1の表示情報はSPSパラメータの値を含み、ここで、その値は、符号化または復号の間にクロマブロックに対する予測のために使用されるルーマダウンサンプリングフィルタのタイプを示すために使用される。
本発明の特定の実装形態では、新たに追加されたSPSパラメータのシンタックス要素は「lm_mode_downsampling_filter_type_idc」として指名されてよく、ここで、lm_mode_downsampling_filter_type_idcは、LMモードでのダウンサンプリングフィルタタイプを指定するために使用される。
たとえば、ステップ702において説明した設計1の場合、6個のフィルタタイプ、すなわち、フィルタ0、フィルタ1、フィルタ2、フィルタ3、フィルタ4、およびフィルタ5が設計される。この場合、シーケンスパラメータセットは次のように設計されてよい。
Figure 2021535652
lm_mode_downsampling_filter_type_idcの値は0から5までにわたり、異なる値は異なるフィルタに対応する。たとえば、値0はフィルタ0に対応し、値1はフィルタ1に対応し、値2はフィルタ2に対応し、値3はフィルタ3に対応し、値4はフィルタ4に対応し、値5はフィルタ5に対応する。確かに、値の上記の設定および各値とフィルタとの間の対応は、限定ではなく例にすぎない。
別の例の場合、ステップ702において説明した設計2に対して、2つのフィルタタイプ、すなわち、フィルタ0およびフィルタ2が設計される。この場合、シーケンスパラメータセットは次のように設計されてよい。
Figure 2021535652
lm_mode_downsampling_filter_type_idcの値は0または1であってよく、異なる値は異なるフィルタに対応する。たとえば、値0はフィルタ0に対応し、値1はフィルタ2に対応する。確かに、値の上記の設定および各値とフィルタとの間の対応は、限定ではなく例にすぎない。
ステップ704:第1の表示情報をビットストリームの中に符号化し、ビットストリームをデコーダ側へ送る。特定の実装形態では、上記のステップ701において設定される第2の表示情報が、ビットストリームの中にさらに符号化されてよく、次いで、ビットストリームがデコーダ側へ送られる。第2の表示情報は、LMモードを示すために使用され、その結果、LMモードを使用すべきであることがデコーダ側に示される。
上記の実施形態が、エンコーダ側が符号化プロセスおよびビットストリーム送出プロセスを実施することだけを説明することに留意されたい。上記の説明によれば、エンコーダ側が本発明の実施形態において説明する別の方法を別の手順でさらに実施してよいことを、当業者は理解する。たとえば、クロマブロック予測において、エンコーダ側によって実行されるクロマブロックの再構成の具体的な実装形態については、以下においてデコーダ側の観点から説明される関係する方法を参照されたい。詳細は本明細書で説明しない。
本発明のこの実施形態では、LMモードに対して、エンコーダが、現在ルーマブロックに対して使用されるルーマダウンサンプリングフィルタを、現在クロマサンプルのサンプル位置タイプに基づいて決定してよく、表示情報(たとえば、新たに追加されたSPSパラメータの値)を通じてデコーダ用のダウンサンプリングフィルタのタイプを指定してよいことを、知ることができる。このことは、エンコーダ側とデコーダ側の両方が、クロマサンプル位置に対応するフィルタを取得できることを確実にする。このことは、実際には異なるビデオシーケンスの中に異なるクロマサンプル位置が存在し得る事例を考慮し、それによって、ダウンサンプリングされたルーマサンプル位置とクロマサンプル位置との間の整合性を保証し、エンコーダ側のコーディング確度およびコーディング効率を改善する。
上記のシステムおよびデバイスに基づいて、本発明の一実施形態は別のクロマブロック予測方法を提供する。方法はデコーダ側の観点から説明される。図13を参照すると、方法は、限定はしないが、以下のステップを含む。
ステップ801:第1の表示情報を取得するためにビットストリームを構文解析する。
具体的には、デコーダ側は、ビットストリームの中のシーケンスパラメータセット(SPS)パラメータを構文解析することによって第1の表示情報を取得し得る。たとえば、ビットストリームの中のSPSパラメータは、具体的には新たに追加されたSPSパラメータであってよい。
一実施形態では、第1の表示情報は、フィルタタイプを示すために使用される。
具体的には、デコーダ側は、フィルタタイプを示すために使用される第1の表示情報を取得するために、エンコーダ側から送信されたビットストリームを構文解析する。第1の表示情報の詳細な内容については、図12の実施形態でのステップ703における説明を参照されたい。
エンコーダ側およびデコーダ側は、同じ設計のフィルタタイプを使用してよい。たとえば、エンコーダ側に対して(6個のクロマサンプル位置に対応する)6個のフィルタタイプが設計され、デコーダ側に対しても6個のフィルタタイプが設計される。加えて、デコーダ側の6個のフィルタタイプのダウンサンプリングアルゴリズムは、それぞれ、エンコーダ側の6個のフィルタタイプのダウンサンプリングアルゴリズムに整合する。6個のフィルタタイプは、フィルタ0、フィルタ1、フィルタ2、フィルタ3、フィルタ4、およびフィルタ5である。この場合、デコーダ側によって受信される第1の表示情報は、6個のフィルタタイプのうちの1つを示すために使用される。たとえば、第1の表示情報がSPSパラメータlm_mode_downsampling_filter_type_idcであり、かつそのSPSパラメータの値が2であるとき、そのことはフィルタタイプがフィルタ2であることを第1の表示情報が示すことを示す。
別の例の場合、エンコーダ側に対して(2つのクロマサンプル位置に対応する)2つのフィルタタイプが設計され、デコーダ側に対しても2つのフィルタタイプが設計される。加えて、デコーダ側の2つのフィルタタイプのダウンサンプリングアルゴリズムは、それぞれ、エンコーダ側の2つのフィルタタイプのダウンサンプリングアルゴリズムに整合する。2つのフィルタタイプは、フィルタ0およびフィルタ2である。この場合、デコーダ側によって受信される第1の表示情報は、2つのフィルタタイプのうちの1つを示すために使用される。たとえば、第1の表示情報がSPSパラメータlm_mode_downsampling_filter_type_idcであり、かつそのSPSパラメータの値が0であるとき、そのことはフィルタタイプがフィルタ0であることを第1の表示情報が示すことを示す。
別の実施形態では、第1の表示情報は、現在クロマブロックのサンプル位置を示すために使用され、現在クロマブロックのサンプル位置は、フィルタタイプに関連付けられる。したがって、デコーダ側は、現在クロマブロックのサンプル位置に基づいてフィルタタイプを決定してよい。
さらに、第1の表示情報は、現在クロマブロックのサンプル位置タイプを示すために特に使用されてよく、したがって、現在クロマブロックのサンプル位置タイプは、フィルタタイプに関連付けられる。したがって、デコーダ側は、現在クロマブロックのサンプル位置タイプに基づいてフィルタタイプを決定してよい。
たとえば、エンコーダ側に対して(2つのクロマサンプル位置に対応する)2つのフィルタタイプが設計され、デコーダ側に対しても2つのフィルタタイプが設計される。加えて、デコーダ側の2つのフィルタタイプのダウンサンプリングアルゴリズムは、それぞれ、エンコーダ側の2つのフィルタタイプのダウンサンプリングアルゴリズムに整合する。2つのフィルタタイプは、フィルタ0およびフィルタ2である。この場合、デコーダ側によって受信される第1の表示情報は、2つのクロマサンプル位置のうちの1つを示すために使用される。たとえば、第1の表示情報がSPSパラメータlm_mode_downsampling_filter_type_idcであり、かつそのSPSパラメータの値が0であるとき、第1のクロマサンプル位置、たとえば、type0が示される。サンプル位置タイプがフィルタタイプに関連付けられているので、デコーダ側は、フィルタタイプがフィルタ0であることを、第1のサンプル位置タイプtype0に基づいて直ちに決定してよい。別の例の場合、SPSパラメータの値が1であるとき、第2のクロマサンプル位置、たとえば、type2が示される。サンプル位置タイプがフィルタタイプに関連付けられているので、デコーダ側は、フィルタタイプがフィルタ2であることを、第2のサンプル位置タイプtype2に基づいて直ちに決定してよい。
加えて、特定の実施形態では、ビットストリームの構文解析中、ビットストリームを構文解析することによって第2の表示情報がさらに取得されてよい。第2の表示情報は、現在クロマブロックを復号するためにデコーダ側によって使用されるイントラ予測モードがLMモードであることを示すために使用され、その結果、デコーダ側は、ビデオシーケンスの中の現在の画像に対するイントラ予測のために、LMモードを使用すべきであることを決定する。さらに、デコーダ側は、関係するステップ802〜805を実行し続ける。
ステップ802:第2のルーマブロックを取得するために、フィルタタイプに対応するフィルタを使用することによって第1のルーマブロックに対してダウンサンプリング(downsampling)動作を実行し、ここで、第1のルーマブロックは、現在クロマブロックに対応するルーマブロックである。
特定の実施形態では、第1の表示情報に対応するフィルタは、ダウンサンプリングされたルーマブロック(すなわち、第2のルーマブロック)の中の各ルーマサンプルの値を取得するために、現在の画像の現在クロマブロックに対応するルーマブロック(すなわち、第1のルーマブロック)をダウンサンプリングするために使用され得る。このようにして、LMモードのアルゴリズム式の中のrecL'(i,j)が取得される。
たとえば、デコーダ側に対して6個のフィルタタイプが設計され、かつ第1の表示情報によって現在示される値が0である場合、使用されるルーマダウンサンプリングフィルタはフィルタ0であり、サンプリングアルゴリズムは以下の通りである。
LC(xb,yb)=(2*L(2*xb,2*yb)+L(2*xb-1,2*yb)+L(2*xb+1,2*yb)+2*L(2*xb,2*yb+1)+L(2*xb-1,2*yb+1)+L(2*xb+1,2*yb+1)+4)>>3
この場合、フィルタ0は、第2のルーマブロックの中の各ルーマサンプルの値を取得するために、第1のルーマブロックをダウンサンプリングするために使用され得る。
別の例の場合、デコーダ側に対して2つのフィルタタイプ(たとえば、フィルタ0およびフィルタ2)が設計され、かつ第1の表示情報によって現在示される値が1である場合、使用されるルーマダウンサンプリングフィルタはフィルタ2であり、サンプリングアルゴリズムは以下の通りである。
LC(xb,yb)=(4*L(2*xb,2*yb)
+2*L(2*xb,2*yb+1)+2*L(2*xb,2*yb-1)+2*L(2*xb-1,2*yb)+2*L(2*xb+1,2*yb)
+L(2*xb+1,2*yb+1)+L(2*xb-1,2*yb+1)+L(2*xb-1,2*yb-1)+L(2*xb+1,2*yb-1)+8)>>4
この場合、フィルタ2は、第2のルーマブロックの中の各ルーマサンプルの値を取得するために、第1のルーマブロックをダウンサンプリングするために使用され得る。
ステップ803:テンプレートクロマサンプルおよびテンプレートルーマサンプルを取得する。テンプレートクロマサンプルは、現在クロマブロックの複数の隣接クロマサンプルを含み、テンプレートルーマサンプルは、第1のルーマブロックの複数の隣接ルーマサンプルに対してダウンサンプリング動作を実行することによって取得される。ステップ803の具体的な実装形態については、図9および図10での実施形態における関係する説明を参照されたい。本明細書の簡潔のために、詳細は本明細書で再び説明しない。
ステップ802およびステップ803が連続的でなく、すなわち、ステップ802がステップ803の前もしくは後に実行されてよく、またはステップ802およびステップ803が同時に実行されてよいことに留意されたい。
ステップ804:テンプレートクロマサンプルおよびテンプレートルーマサンプルに基づいて線形モデル係数αおよびβを取得する。
たとえば、一実装形態では、線形モデル係数αおよびβは、最小2乗法を使用することによって計算されてよい。具体的には、たとえば、図9に示されるダウンサンプリングされたルーマブロックのテンプレートルーマサンプル、およびテンプレートクロマサンプルを使用することによって、線形方程式の体系が構成され得る。テンプレートクロマサンプルまたはテンプレートルーマサンプルの隣接する参照サンプルの数量がNとして示され、L(n)およびC(n)は、それぞれ、第nのルーマサンプルの値および第nのクロマサンプルの値を表す。この場合、線形モデル係数αおよびβは以下の通りである。
Figure 2021535652
別の例の場合、別の実装形態では、線形モデル係数αおよびβは、極値法を使用することによって計算されてよい。具体的には、テンプレートクロマサンプルまたはテンプレートルーマサンプルの隣接する参照サンプルの数量がNとして示され、L(n)およびC(n)は、それぞれ、第nのルーマサンプルの値および第nのクロマサンプルの値を表し、L(n)およびC(n)はサンプル値ペアをなす。サンプル値ペアのセットが次のように、すなわち、{(L0,C0),(L1,C1),(L2,C2)...(Ln,Cn)...(LN-1,CN-1)}として取得されてよく、ただし、Nは、線形モデル係数を決定するために使用される現在クロマブロックの隣接サンプルの数量を表す。図14は、ルーマクロマ座標系におけるサンプル値ペアのセットの分布を示す。最大ルーマ値Lmaxおよび最小ルーマ値Lminに対応する値ペアが、サンプル値ペアのセットの中に見つけられる。第iのサンプルBが最大ルーマ値に対応すること、すなわち、Li=Lmax、および第jのサンプルAが最小ルーマ値に対応すること、すなわち、Lj=Lminを想定すると、線形モデル係数αおよびβは、それぞれ、
Figure 2021535652
β=Cj-α*Lj
となる。
上記のことが一例にすぎず限定でないことを理解されたい。テンプレートクロマサンプルの各ルーマサンプルの値およびテンプレートルーマサンプルの各クロマサンプルの値が取得された後、テンプレートクロマサンプルおよびテンプレートルーマサンプルに基づいてLMモードの線形モデル係数αおよびβを導出する方式は、本発明のこの実施形態では限定されない。
ステップ805:第2のルーマブロックおよび線形モデル係数に基づいて現在クロマブロックの予測値を取得する。
recL'(i,j)ならびに線形モデル係数αおよびβが取得された後、LMモードのアルゴリズム式、すなわち、
predC(i,j)=α*recL'(i,j)+βによれば、
現在クロマブロックの中の各クロマサンプルの予測値predC(i,j)が取得され得ることが理解され得る。
本発明のこの実施形態では、デコーダ側が、LMモードでの現在クロマブロックに対応するルーマブロックをダウンサンプリングするために使用されるフィルタを、ビットストリームの中の表示情報(たとえば、新たに追加されたSPSパラメータの値)に基づいて決定し得ることを、知ることができる。このようにして、クロマサンプル位置に対応するフィルタが取得され得る。このことは、実際には異なるビデオシーケンスの中に異なるクロマサンプル位置が存在し得る事例を考慮し、それによって、ダウンサンプリングされたルーマサンプル位置とクロマサンプル位置との間の整合性を保証する。
上記の説明したシステムおよびデバイスに基づいて、本発明の一実施形態はさらに別のクロマブロック予測方法を提供する。方法はデコーダ側の観点から説明される。図15を参照されたい。図13と比較して、図15の実施形態におけるステップ903は、図13の実施形態におけるステップ803とは異なる。方法は、次のように簡潔に説明される。
ステップ901:第1の表示情報を取得するためにビットストリームを構文解析し、ここで、第1の表示情報は、フィルタタイプを示すために使用される。具体的な実装形態については、図13の実施形態におけるステップ801の説明を参照されたい。詳細は本明細書で再び説明しない。
ステップ902:第2のルーマブロックを取得するために、フィルタタイプに対応するフィルタを使用することによって第1のルーマブロックに対してダウンサンプリング(downsampling)動作を実行し、ここで、第1のルーマブロックは、現在クロマブロックに対応するルーマブロックであり、第2のルーマブロックは、第1のルーマブロックの中のダウンサンプリングされたルーマサンプルのセットを表す。具体的な実装形態については、図13の実施形態におけるステップ802の説明を参照されたい。詳細は本明細書で再び説明しない。
ステップ903:テンプレートクロマサンプルを取得し、第1の表示情報に基づいてテンプレートルーマサンプルを取得する。
本発明のこの実施形態では、テンプレートルーマサンプルに対して、第1の表示情報がフィルタタイプを示すので、ダウンサンプリング動作は、テンプレートルーマサンプルを取得するために、フィルタタイプに対応するフィルタを使用することによって第1のルーマブロックの複数の隣接ルーマサンプルに対して実行されてよい。
たとえば、デコーダ側に対して6個のフィルタタイプが設計され、かつ第1の表示情報によって現在示される値が0である場合、使用されるルーマダウンサンプリングフィルタはフィルタ0であり、サンプリングアルゴリズムは以下の通りである。
LC(xb,yb)=(2*L(2*xb,2*yb)+L(2*xb-1,2*yb)+L(2*xb+1,2*yb)+2*L(2*xb,2*yb+1)+L(2*xb-1,2*yb+1)+L(2*xb+1,2*yb+1)+4)>>3
この場合、フィルタ0は、テンプレートルーマサンプルの中の各ルーマサンプルの値を取得するために、第1のルーマブロックの複数の隣接ルーマサンプルに対してダウンサンプリング動作を実行するために使用され得る。
別の例の場合、デコーダ側に対して2つのフィルタタイプ(たとえば、フィルタ0およびフィルタ2)が設計され、第1の表示情報によって現在示される値は1であり、使用されるルーマダウンサンプリングフィルタはフィルタ2であり、サンプリングアルゴリズムは以下の通りである。
LC(xb,yb)=(4*L(2*xb,2*yb)
+2*L(2*xb,2*yb+1)+2*L(2*xb,2*yb-1)+2*L(2*xb-1,2*yb)+2*L(2*xb+1,2*yb)
+L(2*xb+1,2*yb+1)+L(2*xb-1,2*yb+1)+L(2*xb-1,2*yb-1)+L(2*xb+1,2*yb-1)+8)>>4
この場合、フィルタ2は、テンプレートルーマサンプルの中の各ルーマサンプルの値を取得するために、第1のルーマブロックの複数の隣接ルーマサンプルに対してダウンサンプリング動作を実行するために使用され得る。
上記のことが限定ではなく一例にすぎないことに留意されたい。
本発明のこの実施形態では、テンプレートクロマサンプルに対して、テンプレートクロマサンプルは、現在クロマブロックの複数の隣接クロマサンプルを含む。テンプレートクロマサンプルを取得するための具体的な方法については、図9および図10での実施形態における関係する説明を参照されたい。詳細は本明細書で再び説明しない。
ステップ904:テンプレートクロマサンプルおよびテンプレートルーマサンプルに基づいて線形モデル係数αおよびβを取得する。具体的な実装形態については、図13の実施形態におけるステップ804の説明を参照されたい。詳細は本明細書で再び説明しない。
ステップ905:第2のルーマブロックおよび線形モデル係数に基づいて現在クロマブロックの予測値を取得する。具体的な実装形態については、図13の実施形態におけるステップ805の説明を参照されたい。詳細は本明細書で再び説明しない。
特に、以下の実施形態が本明細書に提供される。
実施形態1。 クロマブロック予測方法であって、
第1の表示情報を取得するためにビットストリームを構文解析するステップであって、前記第1の表示情報が、フィルタタイプを示すために使用される、ステップと、
第2のルーマブロックを取得するために、前記フィルタタイプに対応するフィルタを使用することによって第1のルーマブロックに対してダウンサンプリング動作を実行するステップであって、前記第1のルーマブロックが、現在クロマブロックに対応するルーマブロックである、ステップと、
テンプレートクロマサンプルおよびテンプレートルーマサンプルを取得するステップであって、前記テンプレートクロマサンプルが、前記現在クロマブロックの複数の隣接クロマサンプルを備え、前記テンプレートルーマサンプルが、前記第1のルーマブロックの複数の隣接ルーマサンプルに対してダウンサンプリング動作を実行することによって取得される、ステップと、
前記テンプレートクロマサンプルおよび前記テンプレートルーマサンプルに基づいて線形モデル係数を取得するステップと、
前記第2のルーマブロックおよび前記線形モデル係数に基づいて前記現在クロマブロックの予測値を取得するステップと
を備える方法。
実施形態2。 テンプレートルーマサンプルを取得する前記ステップが、
前記テンプレートルーマサンプルを取得するために、前記フィルタタイプに対応する前記フィルタを使用することによって前記第1のルーマブロックの前記複数の隣接ルーマサンプルに対して前記ダウンサンプリング動作を実行するステップを備える、
実施形態1に記載の方法。
実施形態3。 前記テンプレートクロマサンプルが、
前記現在クロマブロックの左の隣接クロマサンプルの1つまたは複数の列を備える、
実施形態1または2に記載の方法。
実施形態4。 前記テンプレートクロマサンプルが、
前記現在クロマブロックの上の隣接クロマサンプルの1つまたは複数の行を備える、
実施形態1または2に記載の方法。
実施形態5。 前記テンプレートクロマサンプルが、
前記現在クロマブロックの上の隣接クロマサンプルの前記1つまたは複数の行、および前記現在クロマブロックの左の隣接クロマサンプルの前記1つまたは複数の列を備える、
実施形態1から4のいずれか一項に記載の方法。
実施形態6。 テンプレートクロマサンプルおよびテンプレートルーマサンプルを取得する前記ステップの前に、
第2の表示情報を取得するために前記ビットストリームを構文解析するステップをさらに備え、前記第2の表示情報が、現在の復号のために使用されるイントラ予測モードが線形モデルLMモードであることを示すために使用される、
実施形態1から5のいずれか一項に記載の方法。
実施形態7。 前記方法が、ビデオシーケンスの中の現在画像ブロックを復号するために使用され、前記現在画像ブロックが、前記第1のルーマブロックおよび前記現在クロマブロックを備え、前記ビデオシーケンスの中の画像が、4:2:0フォーマットまたは4:2:2フォーマットをなす、
実施形態1から6のいずれか一項に記載の方法。
実施形態8。 クロマブロック予測方法であって、
現在クロマブロックのサンプル位置に基づいてフィルタタイプを決定するステップと、
第2のルーマブロックを取得するために、前記フィルタタイプに対応するフィルタを使用することによって第1のルーマブロックに対してダウンサンプリング動作を実行するステップであって、前記第1のルーマブロックが、前記現在クロマブロックに対応するルーマブロックである、ステップと、
テンプレートクロマサンプルおよびテンプレートルーマサンプルを取得するステップであって、前記テンプレートクロマサンプルが、前記現在クロマブロックの複数の隣接クロマサンプルを備え、前記テンプレートルーマサンプルが、前記第1のルーマブロックの複数の隣接ルーマサンプルに対してダウンサンプリング動作を実行することによって取得される、ステップと、
前記テンプレートクロマサンプルおよび前記テンプレートルーマサンプルに基づいて線形モデル係数を取得するステップと、
前記第2のルーマブロックおよび前記線形モデル係数に基づいて前記現在クロマブロックの予測値を取得するステップと
を備える方法。
実施形態9。 現在クロマブロックのサンプル位置に基づいてフィルタタイプを決定する前記ステップの前に、
第1の表示情報を取得するためにビットストリームを構文解析するステップをさらに備え、前記第1の表示情報が、前記現在クロマブロックの前記サンプル位置を示すために使用される、
実施形態8に記載の方法。
実施形態10。 第1の表示情報を取得するためにビットストリームを構文解析する前記ステップが、
前記第1の表示情報を取得するために前記ビットストリームの中のシーケンスパラメータセット(SPS)パラメータを構文解析するステップを備える、
実施形態9に記載の方法。
実施形態11。 クロマブロック予測方法であって、
現在クロマブロックのサンプル位置タイプに基づいてフィルタタイプを決定するステップと、
第1の表示情報を設定するステップであって、前記第1の表示情報が、前記フィルタタイプを示すために使用される、ステップと、
前記第1の表示情報をビットストリームの中に符号化するステップと
を備える方法。
実施形態12。 前記現在クロマブロックの前記サンプル位置タイプが、以下のサンプル位置タイプ、すなわち、
サンプル位置タイプtype0、サンプル位置タイプtype1、サンプル位置タイプtype2、サンプル位置タイプtype3、サンプル位置タイプtype4、およびサンプル位置タイプtype5のうちの少なくとも1つである、
実施形態11に記載の方法。
実施形態13。 前記現在クロマブロックの前記サンプル位置タイプが、以下のサンプル位置タイプ、すなわち、
サンプル位置タイプtype0およびサンプル位置タイプtype2のうちの少なくとも1つである、
実施形態11に記載の方法。
実施形態14。 複数のイントラ予測モードから線形モデルLMモードを選択するステップと、
第2の表示情報を設定するステップであって、前記第2の表示情報が、前記線形モデルLMモードを示すために使用される、ステップと、
前記第2の表示情報を前記ビットストリームの中に符号化するステップと
をさらに備える、実施形態11から13のいずれか一項に記載の方法。
実施形態15。 前記フィルタタイプに対応するフィルタを前記第1の表示情報に基づいて決定するステップと、
第2のルーマブロックを取得するために、前記フィルタタイプに対応する前記フィルタを使用することによって第1のルーマブロックをダウンサンプリングするステップであって、前記第1のルーマブロックが、前記現在クロマブロックに対応するルーマブロックである、ステップと、
テンプレートクロマサンプルおよびテンプレートルーマサンプルを取得するステップであって、前記テンプレートクロマサンプルが、前記現在クロマブロックの複数の隣接クロマサンプルを備え、前記テンプレートルーマサンプルが、前記第1のルーマブロックの複数の隣接ルーマサンプルをダウンサンプリングすることによって取得される、ステップと、
前記テンプレートクロマサンプルおよび前記テンプレートルーマサンプルに基づいて線形モデル係数を取得するステップと、
前記第2のルーマブロックおよび前記線形モデル係数に基づいて前記現在クロマブロックの予測値を取得するステップと
をさらに備える、実施形態11から14のいずれか一項に記載の方法。
本発明のこの実施形態では、LMモードに対して、テンプレートルーマサンプルを導出するダウンサンプリングプロセス、および現在のブロックのダウンサンプリングプロセスにおいて、デコーダ側が、LMモードでの現在クロマブロックに対応するルーマブロックをダウンサンプリングするために使用されるフィルタを、ビットストリームの中の表示情報(たとえば、新たに追加されたSPSパラメータの値)に基づいて決定し得ることを、知ることができる。このようにして、クロマサンプル位置に対応するフィルタが取得され得る。このことは、実際には異なるビデオシーケンスの中に異なるクロマサンプル位置が存在し得る事例を考慮し、それによって、ダウンサンプリングされたルーマサンプル位置とクロマサンプル位置との間の整合性を保証する。
以下のことは、上記の実施形態で説明した符号化方法および復号方法の適用例、ならびに符号化方法および復号方法が使用されるシステムを説明する。
図16は、コンテンツ配信サービスを実施するためのコンテンツ供給システム3100のブロック図である。コンテンツ供給システム3100は、キャプチャデバイス3102および端末デバイス3106を含み、随意に、ディスプレイ3126を含む。キャプチャデバイス3102は、通信リンク3104を通じて端末デバイス3106と通信する。通信リンクは、上記で説明した通信チャネル13を含んでよい。通信リンク3104は、限定はしないが、Wi-Fi、イーサネット(登録商標)、ケーブル、ワイヤレス(3G/4G/5G)、USB、それらの任意の種類の組合せなどを含む。
キャプチャデバイス3102はデータを生成し、上記の実施形態で説明したような符号化方法を使用することによってデータを符号化し得る。代替として、キャプチャデバイス3102は、データをストリーミングサーバ(図に示さず)に配信してよく、サーバはデータを符号化し、符号化データを端末デバイス3106へ送信する。キャプチャデバイス3102は、限定はしないが、カメラ、スマートフォン、タブレットコンピュータ、コンピュータ、ノートブックコンピュータ、ビデオ会議システム、PDA、車載デバイス、それらの組合せなどを含む。たとえば、キャプチャデバイス3102は、上記で説明したようなソースデバイス12を含んでよい。データがビデオを含むとき、キャプチャデバイス3102の中に含まれるビデオエンコーダ20が実際にビデオ符号化処理を実行してよい。データがオーディオ(たとえば、音声)を含むとき、キャプチャデバイス3102の中に含まれるオーディオエンコーダが実際にオーディオ符号化処理を実行してよい。いくつかの実際的なシナリオの場合、キャプチャデバイス3102は、符号化ビデオデータおよび符号化オーディオデータを、それらを一緒に多重化することによって配信する。他の実際的なシナリオの場合、たとえば、ビデオ会議システムでは、符号化オーディオデータおよび符号化ビデオデータは多重化されない。キャプチャデバイス3102は、符号化オーディオデータおよび符号化ビデオデータを別々に端末デバイス3106に配信する。
コンテンツ供給システム3100の中で、端末デバイス310は符号化データを受信および再生する。端末デバイス3106は、スマートフォンもしくはタブレットコンピュータ3108、コンピュータもしくはノートブックコンピュータ3110、ネットワークビデオレコーダ(network video recorder、NVR)/デジタルビデオレコーダ(digital video recorder、DVR)3112、TV3114、セットトップボックス(set top box、STB)3116、ビデオ会議システム3118、ビデオ監視システム3120、携帯情報端末(personal digital assistant、PDA)3122、車載デバイス3124、または上記の符号化データを復号することが可能なそれらの任意の種類の組合せなどの、データ受信および復元能力を有するデバイスであってよい。たとえば、端末デバイス3106は、上記で説明したような宛先デバイス14を含んでよい。符号化データがビデオを含むとき、ビデオ復号を実行するために、端末デバイスの中に含まれるビデオデコーダ30が優先される。符号化データがオーディオを含むとき、オーディオ復号処理を実行するために、端末デバイスの中に含まれるオーディオデコーダが優先される。
ディスプレイを装備した端末デバイス、たとえば、スマートフォンもしくはタブレットコンピュータ3108、コンピュータもしくはノートブックコンピュータ3110、ネットワークビデオレコーダ(network video recorder、NVR)/デジタルビデオレコーダ(digital video recorder、DVR)3112、TV3114、携帯情報端末(personal digital assistant、PDA)3122、または車載デバイス3124の場合、端末デバイスは、端末デバイスのディスプレイに復号データを供給してよい。ディスプレイを装備しない端末デバイス、たとえば、STB3116、ビデオ会議システム3118、またはビデオ監視システム3120の場合、復号データを受信および表示するために外部ディスプレイ3126が接続される。
このシステムの中の各デバイスが符号化または復号を実行するとき、上記の説明した実施形態で説明したような、画像符号化デバイスまたは画像復号デバイスが使用され得る。
図17は、端末デバイス3106の例示的な構造の図である。端末デバイス3106がキャプチャデバイス3102からストリームを受信した後、プロトコル処理ユニット3202は、ストリームの伝送プロトコルを分析する。プロトコルは、限定はしないが、リアルタイムストリーミングプロトコル(Real Time Streaming Protocol、RTSP)、ハイパーテキスト転送プロトコル(Hyper Text Transfer Protocol、HTTP)、HTTPライブストリーミングプロトコル(HTTP Live streaming protocol、HLS)、MPEG-DASH、リアルタイムトランスポートプロトコル(Real-time Transport protocol、RTP)、リアルタイムメッセージングプロトコル(Real Time Messaging Protocol、RTMP)、それらの任意の種類の組合せなどを含む。
ストリームを処理した後、プロトコル進行ユニット3202がストリームファイルを生成する。ファイルはデマルチプレクサユニット3204に出力される。デマルチプレクサユニット3204は、多重化されたデータを符号化オーディオデータおよび符号化ビデオデータに分離し得る。上記で説明したように、他の実際的なシナリオの場合、たとえば、ビデオ会議システムでは、符号化オーディオデータおよび符号化ビデオデータは多重化されない。この状況では、符号化データは、デマルチプレクサユニット3204を通じることなくビデオデコーダ3206およびオーディオデコーダ3208へ送信される。
ビデオエレメンタリストリーム(elementary stream、ES)、オーディオES、および随意にサブタイトルが、デマルチプレクス処理を通じて生成される。ビデオデコーダ3206は、上記の実施形態で説明したビデオデコーダ30を含み、上記の実施形態に示す復号方法を使用することによってビデオESを復号してビデオフレームを生成し、同期ユニット3212にデータを供給する。オーディオデコーダ3208は、オーディオESを復号してオーディオフレームを生成し、同期ユニット3212にデータを供給する。代替として、ビデオフレームが同期ユニット3212に供給される前に、ビデオフレームがバッファ(図に示さず)の中に記憶されてよい。同様に、オーディオフレームが同期ユニット3212に供給される前に、オーディオフレームがバッファ(図に示さず)の中に記憶されてよい。
同期ユニット3212は、ビデオフレームとオーディオフレームとを同期させ、ビデオ/オーディオディスプレイ3214にビデオ/オーディオを提供する。たとえば、同期ユニット3212は、ビデオ情報およびオーディオ情報の提示を同期させる。情報は、符号化されたオーディオおよびビデオデータの提示に関係するタイムスタンプ、ならびにデータストリームの配送に関係するタイムスタンプを使用することによって、シンタックス要素の中で符号化されてよい。
ストリームの中にサブタイトルが含まれる場合、サブタイトルデコーダ3210は、サブタイトルを復号し、サブタイトルをビデオフレームおよびオーディオフレームと同期させ、ビデオ/オーディオ/サブタイトルディスプレイ3216にビデオ/オーディオ/サブタイトルを提供する。
本発明は上記のシステムに限定されず、上記の実施形態における画像符号化デバイスまたは画像復号デバイスは、別のシステム、たとえば、車両システムの中に組み込まれてよい。
上記の実施形態のうちの全部または一部は、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せによって実装され得る。実装のためにソフトウェアが使用されるとき、本実施形態は、全面的または部分的にコンピュータプログラム製品の形態で実装され得る。コンピュータプログラム製品は、1つまたは複数のコンピュータ命令を含む。コンピュータ上でコンピュータプログラム命令がロードおよび実行されると、本発明の実施形態に従ってプロシージャまたは関数のうちの全部または一部が生成される。コンピュータは、汎用コンピュータ、専用コンピュータ、コンピュータネットワーク、または別のプログラマブル装置であってよい。コンピュータ命令は、コンピュータ可読記憶媒体の中に記憶され得るか、またはあるコンピュータ可読記憶媒体から別のコンピュータ可読記憶媒体へ送信され得る。たとえば、コンピュータ命令は、有線(たとえば、同軸ケーブル、光ファイバ、またはデジタル加入者回線)またはワイヤレス(たとえば、赤外線、マイクロ波など)の方法で、ウェブサイト、コンピュータ、サーバ、またはデータセンタから、別のウェブサイト、コンピュータ、サーバ、またはデータセンタへ送信され得る。コンピュータ可読記憶媒体は、コンピュータ、または1つもしくは複数の使用可能な媒体を統合するサーバもしくはデータセンタなどのデータ記憶デバイスによってアクセス可能な、任意の使用可能な媒体であってよい。使用可能な媒体は、磁気媒体(たとえば、フロッピー(登録商標)ディスク、ハードディスク、または磁気テープ)、光学媒体(たとえば、DVD)、半導体媒体(たとえば、ソリッドステートドライブ)などであってよい。
上記の実施形態では、本実施形態における説明はそれぞれの重点を有する。ある実施形態において詳細に説明されない部分については、他の実施形態における関係する説明を参照されたい。
10 ビデオコーディングシステム
12 ソースデバイス
13 リンク
14 宛先デバイス
16 ピクチャソース
17 未加工ピクチャデータ
18 ピクチャプリプロセッサ
19 前処理されたピクチャデータ、前処理されたピクチャ
20 エンコーダ
21 符号化ピクチャデータ
22 通信インターフェース
28 通信インターフェース
30 デコーダ
31 復号ピクチャデータ、復号ピクチャ
32 ピクチャポストプロセッサ
33 後処理されたピクチャデータ
34 ディスプレイデバイス
40 ビデオコーディングシステム
41 イメージングデバイス
42 アンテナ
43 プロセッサ
44 メモリ
45 ディスプレイデバイス
46 処理ユニット
47 論理回路
201 ピクチャ
202 入力部
203 画像ブロック、ピクチャ画像ブロック
204 残差計算ユニット
205 残差ブロック
206 変換処理ユニット
207 変換係数
208 量子化ユニット
209 量子化変換係数、量子化残差係数
210 逆量子化ユニット
211 量子化解除された係数、量子化解除された残差係数
212 逆変換処理ユニット
213 逆変換ブロック、逆変換量子化解除されたブロック、逆変換残差ブロック、再構成された残差ブロック
214 再構成ユニット、加算器
215 再構成されたブロック
216 バッファ、ラインバッファ、バッファユニット
220 ループフィルタユニット
221 フィルタ処理済みのブロック
230 復号ピクチャバッファ
231 参照ピクチャデータ、復号ピクチャ
244 インター予測ユニット
245 インター予測ブロック
246 動き補償ユニット
254 イントラ予測ユニット
255 イントラ予測ブロック
260 ブロック予測処理ユニット、予測処理ユニット
262 モード選択ユニット
265 予測ブロック
270 エントロピー符号化ユニット
272 出力部
304 エントロピー復号ユニット
309 量子化係数
310 逆量子化ユニット
312 逆変換処理ユニット
313 再構成された残差ブロック、逆変換ブロック
314 再構成ユニット、加算器
315 再構成されたブロック
316 バッファ
320 ループフィルタ
321 フィルタ処理済みのブロック、復号ビデオブロック
330 復号ピクチャバッファ
332 出力部
344 インター予測ユニット
354 イントラ予測ユニット
360 予測処理ユニット
362 モード選択ユニット
365 予測ブロック
400 ビデオコーディングデバイス、ビデオ符号化デバイス、ビデオ復号デバイス
410 入口ポート
420 受信機ユニット
430 プロセッサ、論理ユニット、中央処理ユニット
440 送信機ユニット
450 出口ポート
460 メモリ
470 コーディングモジュール、符号化モジュール、復号モジュール
500 装置
502 プロセッサ
504 メモリ
506 データ
508 オペレーティングシステム
510 アプリケーションプログラム
512 バス
514 2次メモリ
518 ディスプレイ
520 画像感知デバイス
522 音感知デバイス
3100 コンテンツ供給システム
3102 キャプチャデバイス
3104 通信リンク
3106 端末デバイス
3108 スマートフォン、タブレットコンピュータ
3110 コンピュータ、ノートブックコンピュータ
3112 ネットワークビデオレコーダ、デジタルビデオレコーダ
3114 TV
3116 セットトップボックス
3118 ビデオ会議システム
3120 ビデオ監視システム
3122 携帯情報端末
3124 車載デバイス
3126 ディスプレイ
3202 プロトコル処理ユニット
3204 デマルチプレクサユニット
3206 ビデオデコーダ
3208 オーディオデコーダ
3210 サブタイトルデコーダ
3212 同期ユニット
3214 ビデオ/オーディオディスプレイ
3216 ビデオ/オーディオ/サブタイトルディスプレイ

Claims (32)

  1. クロマブロック予測方法であって、
    第1の表示情報を取得するためにビットストリームを構文解析するステップであって、前記第1の表示情報が、フィルタタイプを示すために使用される、ステップと、
    第2のルーマブロックを取得するために、前記フィルタタイプに対応するフィルタを使用することによって第1のルーマブロックに対してダウンサンプリング動作を実行するステップであって、前記第1のルーマブロックが、現在クロマブロックに対応するルーマブロックである、ステップと、
    テンプレートクロマサンプルおよびテンプレートルーマサンプルを取得するステップであって、前記テンプレートクロマサンプルが、前記現在クロマブロックの複数の隣接クロマサンプルを備え、前記テンプレートルーマサンプルが、前記第1のルーマブロックの複数の隣接ルーマサンプルに対してダウンサンプリング動作を実行することによって取得される、ステップと、
    前記テンプレートクロマサンプルおよび前記テンプレートルーマサンプルに基づいて線形モデル係数を取得するステップと、
    前記第2のルーマブロックおよび前記線形モデル係数に基づいて前記現在クロマブロックの予測値を取得するステップと
    を備える方法。
  2. テンプレートルーマサンプルを取得する前記ステップが、
    前記テンプレートルーマサンプルを取得するために、前記フィルタタイプに対応する前記フィルタを使用することによって前記第1のルーマブロックの前記複数の隣接ルーマサンプルに対して前記ダウンサンプリング動作を実行するステップを備える、
    請求項1に記載の方法。
  3. 前記テンプレートクロマサンプルが、
    前記現在クロマブロックの左の隣接クロマサンプルの1つまたは複数の列を備える、
    請求項1または2に記載の方法。
  4. 前記テンプレートクロマサンプルが、
    前記現在クロマブロックの上の隣接クロマサンプルの1つまたは複数の列を備える、
    請求項1または2に記載の方法。
  5. 前記テンプレートクロマサンプルが、
    前記現在クロマブロックの上の隣接クロマサンプルの前記1つまたは複数の行、および前記現在クロマブロックの左の隣接クロマサンプルの前記1つまたは複数の列を備える、
    請求項1から4のいずれか一項に記載の方法。
  6. テンプレートクロマサンプルおよびテンプレートルーマサンプルを取得する前記ステップの前に、
    第2の表示情報を取得するために前記ビットストリームを構文解析するステップをさらに備え、前記第2の表示情報が、現在の復号のために使用されるイントラ予測モードが線形モデルLMモードであることを示すために使用される、
    請求項1から5のいずれか一項に記載の方法。
  7. 前記方法が、ビデオシーケンスの中の現在画像ブロックを復号するために使用され、前記現在画像ブロックが、前記第1のルーマブロックおよび前記現在クロマブロックを備え、前記ビデオシーケンスの中の画像が、4:2:0フォーマットまたは4:2:2フォーマットをなす、
    請求項1から6のいずれか一項に記載の方法。
  8. クロマブロック予測方法であって、
    現在クロマブロックのサンプル位置に基づいてフィルタタイプを決定するステップと、
    第2のルーマブロックを取得するために、前記フィルタタイプに対応するフィルタを使用することによって第1のルーマブロックに対してダウンサンプリング動作を実行するステップであって、前記第1のルーマブロックが、前記現在クロマブロックに対応するルーマブロックである、ステップと、
    テンプレートクロマサンプルおよびテンプレートルーマサンプルを取得するステップであって、前記テンプレートクロマサンプルが、前記現在クロマブロックの複数の隣接クロマサンプルを備え、前記テンプレートルーマサンプルが、前記第1のルーマブロックの複数の隣接ルーマサンプルに対してダウンサンプリング動作を実行することによって取得される、ステップと、
    前記テンプレートクロマサンプルおよび前記テンプレートルーマサンプルに基づいて線形モデル係数を取得するステップと、
    前記第2のルーマブロックおよび前記線形モデル係数に基づいて前記現在クロマブロックの予測値を取得するステップと
    を備える方法。
  9. 現在クロマブロックのサンプル位置に基づいてフィルタタイプを決定する前記ステップの前に、
    第1の表示情報を取得するためにビットストリームを構文解析するステップをさらに備え、前記第1の表示情報が、前記現在クロマブロックの前記サンプル位置を示すために使用される、
    請求項8に記載の方法。
  10. 第1の表示情報を取得するためにビットストリームを構文解析する前記ステップが、
    前記第1の表示情報を取得するために前記ビットストリームの中のシーケンスパラメータセット(SPS)パラメータを構文解析するステップを備える、
    請求項9に記載の方法。
  11. クロマブロック予測方法であって、
    現在クロマブロックのサンプル位置タイプに基づいてフィルタタイプを決定するステップと、
    第1の表示情報を設定するステップであって、前記第1の表示情報が、前記フィルタタイプを示すために使用される、ステップと、
    前記第1の表示情報をビットストリームの中に符号化するステップと
    を備える方法。
  12. 前記現在クロマブロックの前記サンプル位置タイプが、以下のサンプル位置タイプ、すなわち、
    サンプル位置タイプtype0、サンプル位置タイプtype1、サンプル位置タイプtype2、サンプル位置タイプtype3、サンプル位置タイプtype4、およびサンプル位置タイプtype5のうちの少なくとも1つである、
    請求項11に記載の方法。
  13. 前記現在クロマブロックの前記サンプル位置タイプが、以下のサンプル位置タイプ、すなわち、
    サンプル位置タイプtype0およびサンプル位置タイプtype2のうちの少なくとも1つである、
    請求項11に記載の方法。
  14. 複数のイントラ予測モードから線形モデルLMモードを選択するステップと、
    第2の表示情報を設定するステップであって、前記第2の表示情報が、前記線形モデルLMモードを示すために使用される、ステップと、
    前記第2の表示情報を前記ビットストリームの中に符号化するステップと
    をさらに備える、請求項11から13のいずれか一項に記載の方法。
  15. 前記フィルタタイプに対応するフィルタを前記第1の表示情報に基づいて決定するステップと、
    第2のルーマブロックを取得するために、前記フィルタタイプに対応する前記フィルタを使用することによって第1のルーマブロックをダウンサンプリングするステップであって、前記第1のルーマブロックが、前記現在クロマブロックに対応するルーマブロックである、ステップと、
    テンプレートクロマサンプルおよびテンプレートルーマサンプルを取得するステップであって、前記テンプレートクロマサンプルが、前記現在クロマブロックの複数の隣接クロマサンプルを備え、前記テンプレートルーマサンプルが、前記第1のルーマブロックの複数の隣接ルーマサンプルをダウンサンプリングすることによって取得される、ステップと、
    前記テンプレートクロマサンプルおよび前記テンプレートルーマサンプルに基づいて線形モデル係数を取得するステップと、
    前記第2のルーマブロックおよび前記線形モデル係数に基づいて前記現在クロマブロックの予測値を取得するステップと
    をさらに備える、請求項11から14のいずれか一項に記載の方法。
  16. ビデオデータ復号デバイスであって、
    ビットストリーム形式でビデオデータを記憶するように構成されたメモリ、および
    デコーダを備え、前記デコーダが、
    第1の表示情報を取得するためにビットストリームを構文解析することであって、前記第1の表示情報が、フィルタタイプを示すために使用される、構文解析することと、
    第2のルーマブロックを取得するために、前記フィルタタイプに対応するフィルタを使用することによって第1のルーマブロックに対してダウンサンプリング動作を実行することであって、前記第1のルーマブロックが、現在クロマブロックに対応するルーマブロックである、実行することと、
    テンプレートクロマサンプルおよびテンプレートルーマサンプルを取得することであって、前記テンプレートクロマサンプルが、前記現在クロマブロックの複数の隣接クロマサンプルを備え、前記テンプレートルーマサンプルが、前記第1のルーマブロックの複数の隣接ルーマサンプルに対してダウンサンプリング動作を実行することによって取得される、取得することと、
    前記テンプレートクロマサンプルおよび前記テンプレートルーマサンプルに基づいて線形モデル係数を取得することと、
    前記第2のルーマブロックおよび前記線形モデル係数に基づいて前記現在クロマブロックの予測値を取得することと
    を行うように構成される、
    デバイス。
  17. 前記デコーダが、
    前記テンプレートルーマサンプルを取得するために、前記フィルタタイプに対応する前記フィルタを使用することによって前記第1のルーマブロックの前記複数の隣接ルーマサンプルに対して前記ダウンサンプリング動作を実行するように構成される、
    請求項16に記載のデバイス。
  18. 前記テンプレートクロマサンプルが、前記現在クロマブロックの左の隣接クロマサンプルの1つまたは複数の列を備える、
    請求項15または16に記載のデバイス。
  19. 前記テンプレートクロマサンプルが、前記現在クロマブロックの上の隣接クロマサンプルの1つまたは複数の列を備える、
    請求項15または16に記載のデバイス。
  20. 前記テンプレートクロマサンプルが、前記現在クロマブロックの上の隣接クロマサンプルの前記1つまたは複数の行、および前記現在クロマブロックの左の隣接クロマサンプルの前記1つまたは複数の列を備える、
    請求項16から19のいずれか一項に記載のデバイス。
  21. 前記デコーダが、
    第2の表示情報を取得するために前記ビットストリームを構文解析するようにさらに構成され、前記第2の表示情報が、現在の復号のために使用されるイントラ予測モードが線形モデルLMモードであることを示すために使用される、
    請求項16から20のいずれか一項に記載のデバイス。
  22. 前記デコーダが、ビデオシーケンスの中の現在画像ブロックを復号するように構成され、前記現在画像ブロックが、前記第1のルーマブロックおよび前記現在クロマブロックを備え、前記ビデオシーケンスの中の画像が、4:2:0フォーマットまたは4:2:2フォーマットをなす、
    請求項16から21のいずれか一項に記載のデバイス。
  23. ビデオデータ復号デバイスであって、
    ビットストリーム形式でビデオデータを記憶するように構成されたメモリ、および
    デコーダを備え、前記デコーダが、
    現在クロマブロックのサンプル位置に基づいてフィルタタイプを決定することと、
    第2のルーマブロックを取得するために、前記フィルタタイプに対応するフィルタを使用することによって第1のルーマブロックに対してダウンサンプリング動作を実行することであって、前記第1のルーマブロックが、前記現在クロマブロックに対応するルーマブロックである、実行することと、
    テンプレートクロマサンプルおよびテンプレートルーマサンプルを取得することであって、前記テンプレートクロマサンプルが、前記現在クロマブロックの複数の隣接クロマサンプルを備え、前記テンプレートルーマサンプルが、前記第1のルーマブロックの複数の隣接ルーマサンプルに対してダウンサンプリング動作を実行することによって取得される、取得することと、
    前記テンプレートクロマサンプルおよび前記テンプレートルーマサンプルに基づいて線形モデル係数を取得することと、
    前記第2のルーマブロックおよび前記線形モデル係数に基づいて前記現在クロマブロックの予測値を取得することと
    を行うように構成される、
    デバイス。
  24. 前記デコーダが、前記現在クロマブロックの前記サンプル位置に基づいて前記フィルタタイプを決定する前に、第1の表示情報を取得するためにビットストリームを構文解析するように構成され、前記第1の表示情報が、前記現在クロマブロックの前記サンプル位置を示すために使用される、請求項23に記載のデバイス。
  25. 前記デコーダが、前記第1の表示情報を取得するために前記ビットストリームの中のシーケンスパラメータセット(SPS)パラメータを構文解析するように構成される、請求項24に記載のデバイス。
  26. ビデオデータ符号化デバイスであって、
    ビットストリーム形式でビデオデータを記憶するように構成されたメモリ、および
    エンコーダを備え、前記エンコーダが、
    現在クロマブロックのサンプル位置タイプに基づいてフィルタタイプを決定することと、
    第1の表示情報を設定することであって、前記第1の表示情報が、前記フィルタタイプを示すために使用される、設定することと、
    前記第1の表示情報をビットストリームの中に符号化することと
    を行うように構成される、
    デバイス。
  27. 前記現在クロマブロックの前記サンプル位置タイプが、以下のサンプル位置タイプ、すなわち、
    サンプル位置タイプtype0、サンプル位置タイプtype1、サンプル位置タイプtype2、サンプル位置タイプtype3、サンプル位置タイプtype4、およびサンプル位置タイプtype5のうちの少なくとも1つである、
    請求項26に記載のデバイス。
  28. 前記現在クロマブロックの前記サンプル位置タイプが、以下のサンプル位置タイプ、すなわち、
    サンプル位置タイプtype0およびサンプル位置タイプtype2のうちの少なくとも1つである、
    請求項26に記載のデバイス。
  29. 前記エンコーダが、
    複数のイントラ予測モードから線形モデルLMモードを選択することと、
    第2の表示情報を設定することであって、前記第2の表示情報が、前記線形モデルLMモードを示すために使用される、設定することと、
    前記第2の表示情報を前記ビットストリームの中に符号化することと
    を行うようにさらに構成される、
    請求項26から28のいずれか一項に記載のデバイス。
  30. 前記エンコーダが、
    前記フィルタタイプに対応するフィルタを前記第1の表示情報に基づいて決定することと、
    第2のルーマブロックを取得するために、前記フィルタタイプに対応する前記フィルタを使用することによって第1のルーマブロックをダウンサンプリングすることであって、前記第1のルーマブロックが、前記現在クロマブロックに対応するルーマブロックである、ダウンサンプリングすることと、
    テンプレートクロマサンプルおよびテンプレートルーマサンプルを取得することであって、前記テンプレートクロマサンプルが、前記現在クロマブロックの複数の隣接クロマサンプルを備え、前記テンプレートルーマサンプルが、前記第1のルーマブロックの複数の隣接ルーマサンプルをダウンサンプリングすることによって取得される、取得することと、
    前記テンプレートクロマサンプルおよび前記テンプレートルーマサンプルに基づいて線形モデル係数を取得することと、
    前記第2のルーマブロックおよび前記線形モデル係数に基づいて前記現在クロマブロックの予測値を取得することと
    を行うようにさらに構成される、
    請求項26から29のいずれか一項に記載のデバイス。
  31. 互いに結合されている不揮発性メモリおよびプロセッサを備える復号デバイスであって、前記メモリが、プログラム命令を記憶するように構成され、前記プログラム命令が、請求項1から7のいずれか一項に記載の方法を前記プロセッサが実行することを可能にするか、または前記プログラム命令が、請求項8から10のいずれか一項に記載の方法を前記プロセッサが実行することを可能にする、復号デバイス。
  32. 互いに結合されている不揮発性メモリおよびプロセッサを備える符号化デバイスであって、前記メモリが、プログラム命令を記憶するように構成され、前記プログラム命令が、請求項8から12のいずれか一項に記載の方法を前記プロセッサが実行することを可能にする、符号化デバイス。
JP2021507937A 2018-09-05 2019-09-05 クロマブロック予測方法およびデバイス Active JP7431803B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2023045823A JP2023083292A (ja) 2018-09-05 2023-03-22 クロマブロック予測方法およびデバイス

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201811035923.5 2018-09-05
CN201811035923.5A CN110881126B (zh) 2018-09-05 2018-09-05 色度块预测方法以及设备
PCT/CN2019/104527 WO2020048507A1 (zh) 2018-09-05 2019-09-05 色度块预测方法以及设备

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2023045823A Division JP2023083292A (ja) 2018-09-05 2023-03-22 クロマブロック予測方法およびデバイス

Publications (2)

Publication Number Publication Date
JP2021535652A true JP2021535652A (ja) 2021-12-16
JP7431803B2 JP7431803B2 (ja) 2024-02-15

Family

ID=69721558

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2021507937A Active JP7431803B2 (ja) 2018-09-05 2019-09-05 クロマブロック予測方法およびデバイス
JP2023045823A Pending JP2023083292A (ja) 2018-09-05 2023-03-22 クロマブロック予測方法およびデバイス

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2023045823A Pending JP2023083292A (ja) 2018-09-05 2023-03-22 クロマブロック予測方法およびデバイス

Country Status (9)

Country Link
US (2) US11431991B2 (ja)
EP (1) EP3820152B1 (ja)
JP (2) JP7431803B2 (ja)
KR (2) KR20230098717A (ja)
CN (5) CN117915101A (ja)
BR (1) BR112021001991A2 (ja)
MX (1) MX2021002486A (ja)
SG (1) SG11202100113RA (ja)
WO (1) WO2020048507A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022503990A (ja) 2018-10-12 2022-01-12 オッポ広東移動通信有限公司 ビデオ画像成分予測方法および装置、コンピュータ記憶媒体
US20220279161A1 (en) * 2019-05-03 2022-09-01 Electronics And Telecommunications Research Institute Image encoding/decoding method and device, and recording medium storing bitstream
CN113497937B (zh) * 2020-03-20 2023-09-05 Oppo广东移动通信有限公司 图像编码方法、图像解码方法及相关装置
CN115665409A (zh) * 2020-06-03 2023-01-31 北京达佳互联信息技术有限公司 对视频数据进行编码的方法和设备
CN113365067B (zh) * 2021-05-21 2023-03-14 中山大学 基于位置加权的色度线性预测方法、装置、设备及介质
WO2024061136A1 (en) * 2022-09-19 2024-03-28 Douyin Vision Co., Ltd. Method, apparatus, and medium for video processing

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018053293A1 (en) * 2016-09-15 2018-03-22 Qualcomm Incorporated Linear model chroma intra prediction for video coding
JP2018514119A (ja) * 2015-03-20 2018-05-31 クアルコム,インコーポレイテッド 線形モデル予測モードのためのダウンサンプリングプロセス

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102104594B1 (ko) * 2011-06-24 2020-04-24 엘지전자 주식회사 영상 정보 부호화 및 복호화 방법
SG10201408745YA (en) * 2011-06-28 2015-02-27 Samsung Electronics Co Ltd Prediction method and apparatus for chroma component of image using luma component of image
US9807403B2 (en) * 2011-10-21 2017-10-31 Qualcomm Incorporated Adaptive loop filtering for chroma components
CN103096057B (zh) * 2011-11-08 2016-06-29 华为技术有限公司 一种色度帧内预测方法和装置
CN103369315B (zh) * 2012-04-06 2016-08-24 华为技术有限公司 色度分量的帧内预测模式的编码、解码方法、设备及系统
CN107211121B (zh) * 2015-01-22 2020-10-23 联发科技(新加坡)私人有限公司 视频编码方法与视频解码方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018514119A (ja) * 2015-03-20 2018-05-31 クアルコム,インコーポレイテッド 線形モデル予測モードのためのダウンサンプリングプロセス
WO2018053293A1 (en) * 2016-09-15 2018-03-22 Qualcomm Incorporated Linear model chroma intra prediction for video coding

Also Published As

Publication number Publication date
EP3820152A4 (en) 2021-05-12
MX2021002486A (es) 2021-05-12
CN111801943A (zh) 2020-10-20
US11962787B2 (en) 2024-04-16
SG11202100113RA (en) 2021-02-25
JP2023083292A (ja) 2023-06-15
JP7431803B2 (ja) 2024-02-15
CN110881126B (zh) 2024-01-30
CN111801943B (zh) 2021-08-31
KR102549670B1 (ko) 2023-06-29
BR112021001991A2 (pt) 2021-04-27
US20220368928A1 (en) 2022-11-17
EP3820152B1 (en) 2024-05-15
KR20210025107A (ko) 2021-03-08
WO2020048507A1 (zh) 2020-03-12
US11431991B2 (en) 2022-08-30
CN117896531A (zh) 2024-04-16
CN110881126A (zh) 2020-03-13
CN118018746A (zh) 2024-05-10
US20210160514A1 (en) 2021-05-27
KR20230098717A (ko) 2023-07-04
CN117915101A (zh) 2024-04-19
EP3820152A1 (en) 2021-05-12

Similar Documents

Publication Publication Date Title
US11689723B2 (en) Apparatus and method for inverse quantization
US11930171B2 (en) Video encoder, a video decoder and corresponding methods with improved block partitioning
JP7431803B2 (ja) クロマブロック予測方法およびデバイス
AU2019332711B2 (en) An encoder, a decoder and corresponding methods using a palette coding
KR20210077759A (ko) 이미지 예측 방법 및 디바이스
US20210289222A1 (en) Encoder, decoder and corresponding methods of most probable mode list construction for blocks with multi-hypothesis prediction
US20240121446A1 (en) Encoder, a decoder and corresponding methods of deblocking filter adaptation
KR20210129729A (ko) 인트라-예측을 위한 방법 및 장치
JP7299331B2 (ja) ビデオコーディングにおけるクロマイントラ予測のための方法及び装置
KR20210103562A (ko) 인트라 예측을 위한 교차-성분 선형 모델링의 방법 및 장치
US20210352276A1 (en) Encoder, a Decoder and Corresponding Methods for Local Illumination Compensation
KR20210145824A (ko) 제산 없는 인트라 예측을 위한 방법 및 장치
RU2787713C2 (ru) Способ и устройство предсказания блока цветности
WO2020073928A1 (en) Inter prediction method and apparatus

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210305

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210305

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220425

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220509

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220809

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20221121

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230322

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20230322

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20230403

C21 Notice of transfer of a case for reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20230410

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20230616

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240202

R150 Certificate of patent or registration of utility model

Ref document number: 7431803

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150