JP7239697B2 - エンコーダ、デコーダ、インター予測のための対応する方法 - Google Patents

エンコーダ、デコーダ、インター予測のための対応する方法 Download PDF

Info

Publication number
JP7239697B2
JP7239697B2 JP2021528442A JP2021528442A JP7239697B2 JP 7239697 B2 JP7239697 B2 JP 7239697B2 JP 2021528442 A JP2021528442 A JP 2021528442A JP 2021528442 A JP2021528442 A JP 2021528442A JP 7239697 B2 JP7239697 B2 JP 7239697B2
Authority
JP
Japan
Prior art keywords
index
prediction
block
sub
candidate list
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.)
Active
Application number
JP2021528442A
Other languages
English (en)
Other versions
JP2022507872A (ja
Inventor
ミハイロヴィッチ ソロヴィエフ、ティモフェイ
エセンリク、セミ
チェン、ジアンレ
メハー コトラ、アナンド
ガオ、ハン
ワン、ビャオ
イゴレヴィッチ チェーンヤク、ロマン
アレクサンドロヴィッチ カラブトフ、アレキサンダー
ユリエビッチ イコニン、セルゲイ
Original Assignee
ホアウェイ・テクノロジーズ・カンパニー・リミテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ホアウェイ・テクノロジーズ・カンパニー・リミテッド filed Critical ホアウェイ・テクノロジーズ・カンパニー・リミテッド
Publication of JP2022507872A publication Critical patent/JP2022507872A/ja
Priority to JP2023031523A priority Critical patent/JP2023078188A/ja
Application granted granted Critical
Publication of JP7239697B2 publication Critical patent/JP7239697B2/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/103Selection of coding mode or of prediction mode
    • 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/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/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/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • 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/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • 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/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • 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/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Analogue/Digital Conversion (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Description

本発明は、参照によって内容が全体として本明細書に組み込まれる、2018年11月22日に出願された米国仮特許出願第62/770,826号、2019年1月2日に出願された米国仮特許出願第62/787,678号、2019年3月11日に出願された米国仮特許出願第62/816,897号、および、2019年9月24日に出願された米国仮特許出願第62/905,367号の優先権を主張する。
本願の実施形態は概して、画像処理、より具体的にはインター予測の分野に関する。
ビデオコーディング(ビデオエンコーディングおよびデコーディング)は、例えば、放送デジタルTV、インターネットおよびモバイルネットワークを介したビデオ送信、またはビデオチャット、ビデオ会議、DVDおよびブルーレイディスク、ビデオコンテンツの取得と編集システム、セキュリティアプリケーションのカムコーダーなどのリアルタイムの会話型アプリケーションなど、幅広いデジタルビデオアプリケーションで使用される。
比較的短いビデオを描画するのであっても、必要とされるビデオデータの量は、かなりのものであり得、その結果、限定的な帯域幅容量を有する通信ネットワークを介してデータがストリームされるかまたは別の形で通信されることになる場合に困難が生じる場合がある。したがって、ビデオデータは一般に、現代の遠隔通信ネットワークを介して通信される前に圧縮される。ビデオのサイズは、メモリリソースが限定的である場合があるので、ビデオがストレージデバイス上に保存される場合にも問題となり得る。ビデオ圧縮デバイスは、しばしば、ソースにおけるソフトウェアおよび/またはハードウェアを用いて、送信または保存の前にビデオデータをコードし、それによりデジタルビデオイメージを表現するのに必要なデータの量を低減させる。その後、圧縮データは、デスティネーションにおいて、ビデオデータをデコードするビデオ解凍デバイスによって受信される。限定的なネットワークリソースおよび増大し続ける高ビデオ品質の需要に鑑みて、画像品質をほとんどまたは全く犠牲にせずに圧縮比を改善する、改善された圧縮および解凍技術が望まれている。
本願の実施形態は、独立請求項に記載のエンコーディングおよびデコーディングのための装置および方法を提供する。
本願の第1態様において、現在のブロックが第1予測サブブロックおよび第2予測サブブロックを含む、イメージブロックのための予測方法は、ビットストリームから第1インデックスを解析する段階であって、第1インデックスは、第1予測サブブロックの予測情報を取得するために使用される、段階と、ビットストリームから第2インデックスを解析する段階と、第1インデックスを第2インデックスと比較する段階と、第2インデックスが第1インデックス以上である場合に第2インデックスを調節する段階と、調節された第2インデックスに従って第2予測サブブロックの予測情報を取得する段階とを備える。
実現可能な実装において、第2インデックスの調節は、第2インデックスをmだけインクリメントすることを含み、mは正の整数である。実現可能な実装において、mは1である。
実現可能な実装において、ビットストリームから第1インデックスを解析する前に、予測方法は更に、少なくとも1つのインジケータを解析して現在のブロックの予測モードを決定する段階であって、予測モードは三角形予測モードまたは幾何予測モードである、段階を備える。予測モードは、矩形または非矩形(台形)モードを含む予測モードに基づく他のサブブロックであり得る。そして、三角形予測モードおよび幾何予測モードは片予測モードとして統合され得る。これも実現可能な実装に関与し得る。
実現可能な実装において、予測方法は更に、現在のブロックについての候補リストを取得する段階を備える。
実現可能な実装において、第1予測サブブロックの予測情報は、第1インデックスに従って候補リストから取得される。
実現可能な実装において、第2予測サブブロックの予測情報は、調節された第2インデックスに従って候補リストから取得される。実現可能な実装において、候補リストはマージモードの候補リストである。
実現可能な実装において、予測方法は更に、第1の数を解析して、候補リストにおける最大許容候補インデックスを決定する段階と、最大許容候補インデックスに基づいて最大インデックスを取得する段階であって、第1インデックスは最大インデックスより大きくない、段階とを備える。
実現可能な実装において、最大許容候補インデックスに基づいて最大インデックスを取得する段階は、最大許容候補インデックスと予め定められた数との間の計算によって最大インデックスを取得する段階を含む。
実現可能な実装において、最大許容候補インデックスに基づいて最大インデックスを取得する段階は、第2の数を解析して、最大許容候補インデックスと最大インデックスとの間の差を導出する段階と、最大許容候補インデックスと差との間の計算によって最大インデックスを取得する段階とを含む。
実現可能な実装において、予測方法は更に、第3の数を解析して最大インデックスを決定する段階を備える。
実現可能な実装において、最大許容候補インデックスは、最大インデックス以上である。
実現可能な実装において、調節された第2インデックスに従って第2予測サブブロックの予測情報を取得した後に、予測方法は更に、第1予測サブブロックの予測情報および第2予測サブブロックの予測情報に基づいて現在のブロックの予測値を取得する段階を備える。
実現可能な実装において、第1インデックスまたは第2インデックスは、切り捨てられた単進符号に従って二値化される。
実現可能な実装において、二値化された第1インデックスまたは第2インデックスの第1binは、CABACの通常のコーディングモードを使用してコーディングされる。
実現可能な実装において、二値化された第1インデックスまたは第2インデックスの非第1binは、CABACのバイパスコーディングモードを使用してコーディングされる。
実現可能な実装において、予測方法は更に、ビットストリームから方向インジケータを解析する段階を備え、方向インジケータは、現在のブロックの分割方向を示すために使用される。
本願の第2態様において、画像のブロックのインター予測のための方法は、予測インジケータを取得する段階と、サブブロック予測を示す予測インジケータがブロックに適用されるかどうかを決定する段階と、サブブロック予測がブロックに適用されることを予測インジケータが示すとき、2つの異なるインジケータを取得する段階であって、2つの異なるインジケータは、ブロックにおける2つのサブブロックについての動き情報候補リストにおける2つの異なるエントリを個別に示す、段階と、2つの異なるインジケータに基づいてブロックのためのインター予測を実行する段階とを備える。
実現可能な実装において、2つの異なるインジケータを取得する段階は更に、初期第1インジケータおよび初期第2インジケータを含む2つの初期インジケータを取得する段階と、初期第2インジケータを初期第1インジケータと比較する段階と、初期第2インジケータが初期第1インジケータ以上であるとき、初期第2インジケータを調節して、更新された第2インジケータを取得する段階であって、更新された第2インジケータは、初期第1インジケータと異なる、段階と、初期第1インジケータおよび更新された第2インジケータを2つの異なるインジケータとして決定する段階とを含む。
実現可能な実装において、初期第2インジケータを調節して、更新された第2インジケータを取得する段階は更に、初期第2インジケータをmだけインクリメントする段階であって、mは予め定義された数であり、好ましくは1に設定される、段階を含む。
実現可能な実装において、方法は更に、初期第1インジケータの最大値をMに設定する段階と、初期第2インジケータの最大値をM-mに設定する段階とを備え、MはNより大きくなく、Nは動き情報候補リストのサイズである。
実現可能な実装において、Nは、受信されたビットストリームにおけるインジケータシグナリングに基づいて決定される正の整数である。
実現可能な実装において、方法は更に、ブロックのサイズを指定された閾値と比較して、ブロックのサイズが指定された閾値より大きくない場合、初期第1インジケータの最大値をMに設定し、初期第2インジケータの最大値をM-mに設定する段階であって、MはNより大きくなく、Nは動き情報候補リストのサイズである、段階と、ブロックのサイズが指定された閾値より大きい場合、初期第1インジケータの最大値をPに設定し、初期第2インジケータの最大値をP-mに設定する段階であって、PはMより大きく、Nより大きくなく、Nは動き情報候補リストのサイズである、段階とを備える。実現可能な実装において、MおよびPは予め定義された正の整数である。
実現可能な実装において、PがNより大きいと決定される場合、PはNに等しくなるように更新され、または、MがNより大きいと決定される場合、MはNに等しくなるように更新される。
実現可能な実装において、方法は更に、サブブロック予測がブロックに適用されないことを予測インジケータが示すとき、単一のインジケータを取得する段階であって、単一のインジケータは、ブロックについてのマージ候補リストにおけるエントリを示す、段階と、単一のインジケータに基づいてブロックについてのインター予測を実行する段階とを備える。
実現可能な実装において、方法は更に、初期第1インジケータの最大値をMに設定する段階であって、Nは、動き情報候補リストと同一でないマージ候補リストのサイズである。段階を備える。
実現可能な実装において、方法は更に、分割方向インジケータを決定する段階であって、分割方向インジケータはブロックについての分割方向を示す、段階を備える。
実現可能な実装において、2つの異なるインジケータを取得する段階は更に、分割方向インジケータが第1分割方向を示すとき、初期第2インジケータを調節して、更新された第2インジケータを取得する段階であって、更新された第2インジケータは初期第1インジケータと異なる、段階と、初期第1インジケータおよび更新された第2インジケータを2つの異なるインジケータとして決定する段階、または、分割方向インジケータが第2分割方向を示すとき、初期第1インジケータを調節して、更新された第1インジケータを取得する段階であって、更新された第1インジケータは、初期第2インジケータと異なる、段階と、更新された第1インジケータおよび初期第2インジケータを2つの異なるインジケータとして決定する段階とを含む。
実現可能な実装において、方法は更に、2つの異なるインジケータに基づいて動き情報候補リストから動き情報を選択する段階と、選択された動き情報に基づいて現在のブロックについてのサブブロック予測を実行する段階とを備える。
実現可能な実装において、方法は更に、2つの異なるインジケータに従って、動き情報候補リストから第1動き情報および第2動き情報を選択する段階と、第1動き情報に基づいて第1サブブロックについてのサブブロック予測を実行する段階と、第2動き情報に基づいて第2サブブロックについてのサブブロック予測を実行する段階とを備える。
実現可能な実装において、第1サブブロックは、幾何学的中心が現在のブロックの左の境界に近い部分に割り当てられる。
実現可能な実装において、方法は更に、切り捨てられた単進符号に従って、2つの異なるインジケータを二値化する段階を備える。
実現可能な実装において、方法は更に、コンテキスト適応バイナリ算術コーディング(CABAC)のコーディングモードを使用して、2つの異なるインジケータのうちのインジケータの第1binをコーディングする段階と、CABACのバイパスモードを使用して、2つの異なるインジケータうちのインジケータの他のbinをコーディングする段階とを備える。
本願の第3態様において、現在のブロックが第1サブユニットおよび第2サブユニットを含む、ブロックのためのデコーディング方法は、第1インジケータを解析する段階であって、第1インジケータは、現在のブロックの区分パターンを決定するために使用される、段階と、第2インジケータおよび第3インジケータを解析する段階と、第2インジケータの値に基づいて、第1サブユニットの予測情報を決定する段階と、第3インジケータの値を決定する段階であって、第3インジケータの値が第2インジケータ以上である場合、第3インジケータの値は目標値だけ加算される、段階と、第3インジケータの決定された値に基づいて、第2サブユニットの予測情報を決定する段階とを備える。
実現可能な実装において、第2インジケータの最大許容値はMであり、第3インジケータの最大許容値はM-mであり、Mは正の整数であり、mは予め設定された正の整数である。
実現可能な実装において、予測情報候補リストにおけるエントリの数はNである。実現可能な実装において、MはN以下である。実現可能な実装において、MはN以上である。
第4インジケータを解析することを更に含む実現可能な実装において、第4インジケータはNの値を示すために使用される。実現可能な実装において、Nは予め定められた値である。
第5インジケータを解析することを更に含む実現可能な実装において、第5インジケータは、Mの値を示すために使用される。実現可能な実装において、Mの値は、Nの値によって決定される。
本願の第4態様において、現在のブロックが第1予測サブブロックおよび第2予測サブブロックを含む、インター予測のための装置は、ビットストリームから第1インデックスを解析し、ビットストリームから第2インデックスを解析するよう構成される解析モジュールであって、第1インデックスは、第1予測サブブロックの予測情報を取得するために使用される、解析モジュールと、第1インデックスを第2インデックスと比較し、第2インデックスが第1インデックス以上である場合に第2インデックスを調節するよう構成される位置特定モジュールと、調節された第2インデックスに従って第2予測サブブロックの予測情報を取得するよう構成される取得モジュールとを備える。
実現可能な実装において、位置特定モジュールは、第2インデックスをmだけインクリメントするよう構成され、mは正の整数である。実現可能な実装において、mは1である。
実現可能な実装において、ビットストリームから第1インデックスを解析する前に、解析モジュールは更に、少なくとも1つのインジケータを解析して、現在のブロックの予測モードを決定するよう構成され、予測モードは三角形予測モードまたは幾何予測モードである。予測モードは、矩形または非矩形(台形)モードを含む予測モードに基づく他のサブブロックであり得る。そして、三角形予測モードおよび幾何予測モードは片予測モードとして統合され得る。これも実現可能な実装に関与し得る。
実現可能な実装において、位置特定モジュールは更に、現在のブロックについての候補リストを取得するよう構成される。
実現可能な実装において、第1予測サブブロックの予測情報は、第1インデックスに従って候補リストから取得される。
実現可能な実装において、第2予測サブブロックの予測情報は、調節された第2インデックスに従って候補リストから取得される。実現可能な実装において、候補リストはマージモードの候補リストである。
実現可能な実装において、解析モジュールは、第1の数を解析して、候補リストにおける最大許容候補インデックスを決定し、最大許容候補インデックスに基づいて最大インデックスを取得するよう構成され、第1インデックスは最大インデックスより大きくない。
実現可能な実装において、解析モジュールは、最大許容候補インデックスと予め定められた数との間の計算によって最大インデックスを取得するよう構成される。
実現可能な実装において、解析モジュールは、第2の数を解析して、最大許容候補インデックスと最大インデックスとの間の差を導出し、最大許容候補インデックスと差との間の計算によって最大インデックスを取得するよう構成される。
実現可能な実装において、解析モジュールは、第3の数を解析して最大インデックスを決定するよう構成される。
実現可能な実装において、最大許容候補インデックスは最大インデックス以上である。
実現可能な実装において、調節された第2インデックスに従って第2予測サブブロックの予測情報を取得した後に、取得モジュールは更に、第1予測サブブロックの予測情報および第2予測サブブロックの予測情報に基づいて現在のブロックの予測値を取得するよう構成される。
実現可能な実装において、第1インデックスまたは第2インデックスは、切り捨てられた単進符号に従って二値化される。
実現可能な実装において、二値化された第1インデックスまたは第2インデックスの第1binは、CABACの通常のコーディングモードを使用してコーディングされる。
実現可能な実装において、二値化された第1インデックスまたは第2インデックスの非第1binは、CABACのバイパスコーディングモードを使用してコーディングされる。
実現可能な実装において、解析モジュールは、ビットストリームから方向インジケータを解析するよう構成され、方向インジケータは現在のブロックの分割方向を示すために使用される。
本願の第5態様において、コンピュータプログラム製品は、コンピュータまたはプロセッサ上で実行されるときに第1態様から第4態様のいずれか1つに記載の方法を実行するためのプログラムコードを備える。
本願の第6態様において、デコーダは、1または複数のプロセッサと、プロセッサに連結され、プロセッサによって実行されるプログラムを格納する非一時的コンピュータ可読記憶媒体とを備え、プログラムは、プロセッサによって実行されるとき、第1態様から第4態様のいずれか一項に記載の方法を実行するようデコーダを構成する。
本願の第7態様において、エンコーダは、1または複数のプロセッサと、プロセッサに連結され、プロセッサによって実行されるプログラムを格納する非一時的コンピュータ可読記憶媒体とを備え、プログラムは、プロセッサによって実行されるとき、第1態様から第4態様のいずれか一項に記載の方法を実行するようエンコーダを構成する。
本願の第8態様において、非一時的コンピュータ可読媒体は、コンピュータデバイスによって実行されるときに第1態様から第4態様のいずれか1つの方法をコンピュータデバイスに実行させるプログラムコードを保持する。
上述の目的および他の目的が独立請求項の主題により達成される。従属請求項、明細書および図からは更なる実装形態が明らかになる。
特定の実施形態は、従属請求項における他の実施形態と共に、添付の独立請求項において概説される。
1または複数の実施形態の詳細は、添付の図面および以下の説明に記載されている。他の特徴、目的、および利点は、明細書、図面、および特許請求の範囲から明らかになるであろう。
本願において、三角形予測モードの場合、全体のブロックが統一予測情報を有する予測モードと比較するので、上記ブロックにおける2つの予測サブブロックが同一の予測情報を有する場合は冗長であることに留意されたい。本願は、冗長な場合を回避するために予測インデックスコーディング方法を設計する。予測インデックスをシグナリングするためのビットが節約され、コーディング効率が改善される。そして、三角形予測モードについての候補予測情報の最大数は、マージモードについての候補予測情報の最大数に基づいて導出される。コーディングビットも節約され、三角形予測モードについての候補予測情報の最大数との比較が別個にシグナリングされる。
以下の実施形態において、添付の図および図面を参照して、本発明がより詳細に説明される。
本発明の実施形態を実装するよう構成されるビデオコーディングシステムの例を示すブロック図である。 本発明の実施形態を実装するよう構成されるビデオコーディングシステムの別の例を示すブロック図である。 本発明の実施形態を実装するよう構成されるビデオエンコーダの例を示すブロック図である。 本発明の実施形態を実装するよう構成されるビデオデコーダの構造の例を示すブロック図である。 エンコーディング装置またはデコーディング装置の例を示すブロック図である。 エンコーディング装置またはデコーディング装置の別の例を示すブロック図である。 空間マージ候補の位置の例を示す図である。 空間マージ候補の冗長チェックについて考慮される候補ペアの例を示す図である。 時間的マージ候補についての動きベクトルスケーリングの例を示す図である。 時間的候補についての位置の例を示す図である。 2つの三角形予測ユニットへのブロックの分割の例示である。 2つの三角形予測ユニットへのブロックの分割の別の例示である。 他のサブブロック区分方式の例である。 マージ候補リストからの片予測動きベクトルの導出の例示である。 ブレンドフィルタを適用するブロックの例である。 CABACの処理を示す概略ブロック図である。 予測方法の例を示すブロック図である。 予測方法の別の例を示すブロック図である。 本願の実施形態を実装するよう構成される予測装置の例を示すブロック図である。 エンコーディング装置またはデコーディング装置の例を示すブロック図である。 コンテンツ配信サービスを実現するコンテンツ供給システム3100の構造の例を示すブロック図である。 端末デバイスの例の構造を示すブロック図である。 以下、別途明示的に指定されていない限り、同一の参照符号は、同一または少なくとも機能的に同等の機能を指す。
以下の説明では、本開示の一部をなし、本発明の実施形態の具体的態様または本発明の実施形態が使用され得る具体的態様を例示として示す、添付図面が参照される。本発明の実施形態は他の態様で使用されてもよく、図に示されない構造的または論理的変更を含んでもよいことが理解される。したがって、以下の詳細な説明は、限定する意味で解釈されず、本発明の範囲は、添付の特許請求の範囲によって規定される。
例えば、記載されている方法に関連する開示が、この方法を実行するように構成されている対応するデバイスまたはシステムについても適用され得ること、および、その逆もまた同様であることが解る。例えば、特定の方法の段階のうちの1または複数が説明される場合、対応するデバイスは、説明された1または複数の方法の段階(例えば、上記1または複数の段階を実行する1つのユニット、または、それぞれ複数の段階のうちの1または複数を実行する複数のユニット)を実行するために、1または複数のユニットが明示的に説明もまたは図面に示しもされていない場合であっても、そのような1または複数のユニット、例えば、機能ユニットを含んでよい。他方で、例えば、特定の装置が1または複数のユニット、例えば機能ユニットに基づいて説明される場合、対応する方法は、上記1または複数のユニットの機能を実行するために、1または複数の段階が明示的に説明もまたは図面に示しもされていない場合であっても、そのような1つの段階(例えば、1または複数のユニットの機能を実行する1つの段階、またはそれぞれ複数のユニットのうちの1または複数の機能を実行する複数の段階)を含んでよい。さらに、別途特に注記されない限り、本明細書で説明する様々な例示的な実施形態および/または態様の特徴が互いに組み合わされ得ることが理解される。
ビデオコーディングは典型的には、ビデオまたはビデオシーケンスを形成する一連の画像の処理を指す。「画像」という用語の代わりに、「フレーム」または「イメージ」という用語がビデオコーディングの分野での同義語として用いられる場合がある。ビデオコーディング(または一般にコーディング)は、ビデオエンコーディングおよびビデオデコーディングの2つの部分を含む。ビデオエンコーディングは、ソース側で実行され、典型的には、(より効率的な保存および/または送信のために)ビデオ画像を表現するために要求されるデータ量を低減させるように、元のビデオ画像を処理(例えば、圧縮による)することを含む。ビデオデコーディングは、デスティネーション側で実行され、典型的には、ビデオ画像を再構築するように、エンコーダと比較して逆の処理を含む。ビデオ画像(または一般に画像)の「コーディング」に言及する実施形態は、ビデオ画像またはそれぞれのビデオシーケンスの「エンコーディング」または「デコーディング」に関すると理解されるものとする。エンコーディング部分とデコーディング部分との組み合わせは、コーデック(コーディングおよびデコーディング)とも称される。
無損失ビデオコーディングの場合、元のビデオ画像を再構築でき、すなわち、再構築されたビデオ画像は元のビデオ画像と同じ品質である(保存中または送信中に伝送損失またはその他のデータ損失がないと仮定)。不可逆ビデオコーディングの場合、ビデオ画像を表現するデータ量を低減するために、例えば量子化による更なる圧縮が実行されるが、これはデコーダにおいて完全には再構築できない、すなわち、再構築されたビデオ画像の品質は、元のビデオ画像の品質に比較して低下または劣化する。
いくつかのビデオコーディング規格は、「不可逆ハイブリッドビデオコーデック」のグループに属する(すなわち、サンプル領域における空間的および時間的予測と、変換領域における量子化を適用するための2D変換コーディングとを組み合わせる)。ビデオシーケンスの各画像は、典型的には、非重複ブロックのセットへと区分化され、コーディングは、典型的には、ブロックレベルで実行される。換言すれば、エンコーダにおいて、ビデオは、例えば、空間的(画像内)予測および/または時間的(画像間)予測を使用して予測ブロックを生成し、現在のブロック(現在処理されている/処理されることになるブロック)から予測ブロックを減算して残差ブロックを取得し、残差ブロックを変換するとともに変換領域における残差ブロックを量子化して、送信されることになるデータ量を低減(圧縮)することによって、典型的にはブロック(ビデオブロック)レベルで処理される、すなわちエンコードされ、一方で、デコーダにおいて、現在のブロックを表現のために再構築するために、エンコーダと比較して逆の処理がエンコードまたは圧縮されたブロックに適用される。さらに、エンコーダがデコーダの処理ループを繰り返すことにより、後続のブロックの処理のために、すなわちコーディングのために、両方が同一の予測(例えば、イントラおよびインター予測)および/または再構築物を生成することになる。
以下、ビデオコーディングシステム10、ビデオエンコーダ20、およびビデオデコーダ30の実施形態が、図1A~図3に基づいて説明される。
図1Aは、本願の技術を使用し得る例示的なコーディングシステム10、例えばビデオコーディングシステム10(または略してコーディングシステム10)を示す概略ブロック図である。ビデオコーディングシステム10のビデオエンコーダ20(または略してエンコーダ20)およびビデオデコーダ30(または略してデコーダ30)は、本願において説明される様々な例に従って技術を実行するように構成され得るデバイスの例を表す。
図1Aに示すように、コーディングシステム10は、エンコード済みの画像データ21を、例えば、このエンコード済みの画像データ13をデコードするためにデスティネーションデバイス14に提供するように構成されているソースデバイス12を備える。
ソースデバイス12は、エンコーダ20を備え、加えて、すなわち任意選択で、画像ソース16と、プリプロセッサ(または前処理ユニット)18と、例えば画像プリプロセッサ18と、通信インタフェースまたは通信ユニット22とを備えてよい。
画像ソース16は、任意の種類の画像捕捉デバイス、例えば、現実世界の画像を捕捉するカメラ、および/または、任意の種類の画像生成デバイス、例えば、コンピュータアニメーション化画像を生成するコンピュータグラフィックプロセッサ、または、現実世界の画像、コンピュータ生成画像(例えば、スクリーンコンテンツ、仮想現実(VR)画像)、および/またはそれらの任意の組み合わせ(例えば、拡張現実(AR)画像)を取得および/または提供する任意の種類の他のデバイスを含むかまたはそれらのデバイスであってよい。画像ソースは、上述の画像の任意のものを保存する任意の種類のメモリまたはストレージであってよい。
プリプロセッサ18および前処理ユニット18によって実行される処理と区別するように、画像または画像データ17は、生画像または生画像データ17とも称され得る。
プリプロセッサ18は、(生)画像データ17を受信するとともに、画像データ17に対して前処理を実行して、前処理済みの画像19または前処理済みの画像データ19を取得するように構成されている。プリプロセッサ18によって実行される前処理は、例えば、トリミング、カラーフォーマット変換(例えば、RGBからYCbCr)、色補正、またはノイズ除去を含んでよい。前処理ユニット18は任意選択のコンポーネントでもよいことが理解され得る。
ビデオエンコーダ20は、前処理済みの画像データ19を受信するとともに、エンコード済みの画像データ21を提供するように構成されている(更なる詳細は、例えば図2に基づいて下記で説明される)。
ソースデバイス12の通信インタフェース22は、通信チャネル13を介して、エンコード済みの画像データ21を受信するとともに、エンコード済みの画像データ21(またはその任意の更なる処理バージョン)を、保存または直接の再構築のために、別のデバイス、例えばデスティネーションデバイス14または任意の他のデバイスに送信するよう構成されてよい。
デスティネーションデバイス14は、デコーダ30(例えばビデオデコーダ30)を備え、加えて、すなわち任意選択で、通信インタフェースまたは通信ユニット28と、ポストプロセッサ32(または後処理ユニット32)と、ディスプレイデバイス34とを備えてよい。
デスティネーションデバイス14の通信インタフェース28は、エンコード済みの画像データ21(またはその任意の更なる処理バージョン)を、例えばソースデバイス12から直接または任意の他のソース、例えばストレージデバイス、例えばエンコード済みの画像データストレージデバイスから受信するとともに、エンコード済みの画像データ21をデコーダ30に提供するように構成されている。
通信インタフェース22および通信インタフェース28は、ソースデバイス12とデスティネーションデバイス14との間で、直接的な通信リンク、例えば、直接的な有線もしくは無線接続を介して、または、任意の種類のネットワーク、例えば、有線もしくは無線ネットワークもしくはそれらの任意の組み合わせ、もしくは、任意の種類のプライベートおよびパブリックネットワークもしくはそれらの任意の種類の組み合わせを介して、エンコード済みの画像データ21またはエンコード済みのデータ13を送信または受信するように構成されてよい。
通信インタフェース22は、例えば、エンコード済みの画像データ21を適切なフォーマットに、例えばパケットにパッケージ化する、および/または、通信リンクまたは通信ネットワークを介した送信のための任意の種類の送信エンコーディングまたは処理を用いて、エンコード済みの画像データを処理するように構成されてよい。
通信インタフェース22のカウンターパートをなす通信インタフェース28は、例えば、送信されたデータを受信するとともに、任意の種類の対応する送信デコーディングまたは処理および/またはデパッケージングを用いて送信データを処理して、エンコード済みの画像データ21を取得するように構成されてよい。
通信インタフェース22および通信インタフェース28は両方とも、図1Aにおいてソースデバイス12からデスティネーションデバイス14に向く通信チャネル13の矢印で示すように単方向通信インタフェースとして、または、双方向通信インタフェースとして構成されてよく、例えば、メッセージを送信および受信する、例えば、接続を設定し、通信リンクおよび/またはデータ送信、例えばエンコード済みの画像データ送信に関連する任意の他の情報を確認およびやりとりするように構成されてよい。
デコーダ30は、エンコード済みの画像データ21を受信するとともに、デコード済みの画像データ31またはデコード済みの画像31を提供するように構成されている(更なる詳細は、例えば図3または図5に基づいて下記で説明される)。
デスティネーションデバイス14のポストプロセッサ32は、デコード済みの画像データ31(再構築画像データとも呼ばれる)、例えばデコード済みの画像31を後処理して、後処理済みの画像データ33、例えば後処理済みの画像33を取得するように構成されている。後処理ユニット32により行われる後処理は、例えば、デコード済みの画像データ31を、例えば、ディスプレイデバイス34による表示のために準備する目的で、例えば、カラーフォーマット変換(例えば、YCbCrからRGBへ)、色補正、トリミング、もしくは再サンプリング、または任意の他の処理を含んでよい。
デスティネーションデバイス14のディスプレイデバイス34は、画像を例えばユーザまたは視聴者に表示するために、後処理済みの画像データ33を受信するように構成されている。ディスプレイデバイス34は、再構築画像を表現するための任意の種類のディスプレイ、例えば、一体型または外付けのディスプレイまたはモニタであってもよく、これを含んでもよい。ディスプレイは、例えば、液晶ディスプレイ(LCD)、有機発光ダイオード(OLED)ディスプレイ、プラズマディスプレイ、プロジェクタ、マイクロLEDディスプレイ、液晶オンシリコン(LCoS)、デジタル光プロセッサ(DLP)、または任意の種類の他のディスプレイを含んでよい。
図1Aはソースデバイス12とデスティネーションデバイス14とを別個のデバイスとして示しているが、デバイスの実施形態は、それらの両方または両方の機能、すなわち、ソースデバイス12または対応する機能と、デスティネーションデバイス14または対応する機能とを備えてもよい。そのような実施形態では、ソースデバイス12または対応する機能およびデスティネーションデバイス14または対応する機能は、同じハードウェアおよび/またはソフトウェアを使用して、または別個のハードウェアおよび/またはソフトウェアまたはそれらの任意の組み合わせによって実装され得る。
本説明に基づいて当業者には明らかであるように、図1Aに示すような、異なるユニットの機能またはソースデバイス12および/またはデスティネーションデバイス14内の機能の存在および(正確な)分割は、実際のデバイスおよびアプリケーションに応じて変わり得る。
エンコーダ20(例えば、ビデオエンコーダ20)またはデコーダ30(例えば、ビデオデコーダ30)またはエンコーダ20およびデコーダ30の両方は、1または複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリートロジック、ハードウェア、ビデオコーディング専用またはそれらの任意の組み合わせ等の、図1Bに示すような処理回路を介して実装されてよい。エンコーダ20は、図2のエンコーダ20および/または本明細書に記載の任意の他のエンコーダシステムまたはサブシステムに関連して説明される様々なモジュールを具現するために処理回路46を介して実装されてよい。デコーダ30は、図3のデコーダ30および/または本明細書に記載の任意の他のデコーダシステムまたはサブシステムに関連して説明される様々なモジュールを具現するために処理回路46を介して実装されてよい。処理回路は、後で説明されるように様々な操作を実行するように構成されてよい。図5に示すように、本技術がソフトウェアにおいて部分的に実装される場合、デバイスは、好適な非一時的コンピュータ可読記憶媒体にソフトウェアのための命令を保存してよく、ハードウェア内で1または複数のプロセッサを用いて命令を実行して、本開示の技術を実現してよい。ビデオエンコーダ20およびビデオデコーダ30のいずれかは、図1Bに示すように、例えば、単一のデバイス内の組み合わされたエンコーダ/デコーダ(コーデック)の一部として統合されてよい。
ソースデバイス12およびデスティネーションデバイス14は、任意の種類のハンドヘルドまたはステーショナリデバイス、例えば、ノートブックまたはラップトップコンピュータ、携帯電話、スマートフォン、タブレットまたはタブレットコンピュータ、カメラ、デスクトップコンピュータ、セットトップボックス、テレビ、ディスプレイデバイス、デジタルメディアプレイヤ、ビデオゲーミングコンソール、ビデオストリーミングデバイス(コンテンツサービスサーバまたはコンテンツ配信サーバ等)、ブロードキャスト受信機デバイス、ブロードキャスト送信機デバイス等を含む、広範なデバイスのいずれかを備えてよく、オペレーティングシステムを用いないまたは任意の種類のオペレーティングシステムを用いてよい。いくつかの場合、ソースデバイス12およびデスティネーションデバイス14は、無線通信に対応してよい。したがって、ソースデバイス12およびデスティネーションデバイス14は、無線通信デバイスとしてよい。
いくつかの場合、図1Aに示すビデオコーディングシステム10は、単に例であり、本願の技術は、エンコーディングデバイスとデコーディングデバイスとの間の任意のデータ通信を必ずしも含まないビデオコーディング設定(例えば、ビデオエンコーディングまたはビデオデコーディング)に適用されてよい。他の例において、データは、ローカルメモリから取得され、ネットワークを介してストリーム等される。ビデオエンコーディングデバイスは、データをメモリにエンコードして格納してよく、および/または、ビデオデコーディングデバイスは、データをメモリからデコードして取得してよい。いくつかの例において、エンコーディングおよびデコーディングは、互いに通信しないが単にデータをメモリにエンコードするおよび/またはデータをメモリから取得するとともにデコードするデバイスによって実行される。
説明の便宜上、例えば、ITU-Tビデオコーディング専門家グループ(VCEG)およびISO/IEC動画像専門家グループ(MPEG)のビデオコーディングに関する共同作業チーム(JCT-VC)によって開発された次世代ビデオコーディング規格である、高効率ビデオコーディング(HEVC)または多目的ビデオコーディング(VVC)のリファレンスソフトウェアを参照して、本発明の実施形態が本明細書で説明される。当業者であれば、本発明の実施形態がHEVCまたはVVCに限定されないことを理解するであろう。
[エンコーダおよびエンコーディング方法]
図2は、本願の技術を実装するように構成されている例示のビデオエンコーダ20の概略ブロック図を示している。図2の例において、ビデオエンコーダ20は、入力201(または入力インタフェース201)と、残差計算ユニット204と、変換処理ユニット206と、量子化ユニット208と、逆量子化ユニット210と、逆変換処理ユニット212と、再構築ユニット214と、ループフィルタユニット220と、デコード済みの画像バッファ(DPB)230と、モード選択ユニット260と、エントロピーエンコーディングユニット270と、出力272(または出力インタフェース272)とを備える。モード選択ユニット260は、インター予測ユニット244と、イントラ予測ユニット254と、区分化ユニット262とを備えてよい。インター予測ユニット244は、動き推定ユニットおよび動き補償ユニット(図示せず)を備えてよい。図2に示されるビデオエンコーダ20は、ハイブリッドビデオエンコーダ、またはハイブリッドビデオコーデックによるビデオエンコーダとも称され得る。
残差計算ユニット204と、変換処理ユニット206と、量子化ユニット208と、モード選択ユニット260とは、エンコーダ20の順方向信号経路を形成するものとして言及されてよく、一方、逆量子化ユニット210と、逆変換処理ユニット212と、再構築ユニット214と、バッファ216と、ループフィルタ220と、デコード済みの画像バッファ(DPB)230と、インター予測ユニット244と、イントラ予測ユニット254とは、ビデオエンコーダ20の逆方向信号経路を形成するものとして言及されてよい。ビデオエンコーダ20の逆方向信号経路は、デコーダの信号経路に対応する(図3のビデオデコーダ30を参照)。逆量子化ユニット210と、逆変換処理ユニット212と、再構築ユニット214と、ループフィルタ220と、デコード済みの画像バッファ(DPB)230と、インター予測ユニット244と、イントラ予測ユニット254とは、ビデオエンコーダ20の「内蔵デコーダ」を形成するものとも言及される。
[画像および画像区分化(画像およびブロック)]
エンコーダ20は、例えば、入力201を介して、画像17(または画像データ17)、例えば、ビデオまたはビデオシーケンスを形成する一連の画像のうちの画像を受信するように構成されてよい。受信された画像または画像データは、前処理済みの画像19(または前処理済みの画像データ19)であってもよい。簡潔さのために、以下の説明では画像17が参照される。画像17は、現在の画像またはコードされる画像とも称され得る(特に、ビデオコーディングにおいて、現在の画像を他の画像、例えば、同じビデオシーケンス、すなわち現在の画像も含むビデオシーケンスの、以前にエンコード済みおよび/またはデコード済みの画像から区別するために)。
(デジタル)画像は、強度値を持つサンプルの二次元アレイまたはマトリックスであるか、それとみなされ得る。アレイ内のサンプルは、画素(画像要素の略称)またはペルとも称され得る。アレイまたは画像の水平および垂直方向(または軸)のサンプル数は、画像のサイズおよび/または解像度を定義する。色を表現するために、典型的には3つの色成分が使用され、すなわち、画像は、3つのサンプルアレイで表されてもまたはこれを含んでもよい。RBG形式または色空間では、画像は対応する赤、緑、および青のサンプルアレイを含む。しかしながら、ビデオコーディングでは、各画素は、典型的には輝度およびクロミナンス形式または色空間、例えばYCbCrで表され、これには、Y(代わりにLが用いられる場合もある)で示される輝度成分と、CbおよびCrで示される2つのクロミナンス成分とが含まれる。輝度(または略してルマ(luma))成分Yは、明るさまたは(例えば、グレースケール画像でのような)グレーレベルの強度を表し、2つのクロミナンス(または略してクロマ(chroma))成分であるCbおよびCrは、色度または色情報成分を表す。したがって、YCbCr形式の画像は、輝度サンプル値(Y)の輝度サンプルアレイと、クロミナンス値(CbおよびCr)の2つのクロミナンスサンプルアレイとを含む。RGB形式の画像は、YCbCr形式に転換または変換され得、その逆もまた同様であり、このプロセスは、色変換または転換としても知られている。画像がモノクロの場合、画像は輝度サンプルアレイのみを含んでよい。したがって、画像は、例えば、モノクロ形式におけるルマサンプルのアレイ、または、4:2:0、4:2:2、および4:4:4のカラー形式におけるルマサンプルのアレイおよびクロマサンプルの2つの対応するアレイであってよい。
ビデオエンコーダ20の実施形態は、画像17を複数の(典型的には非重複)画像ブロック203に区分化するように構成されている画像区分化ユニット(図2には示されない)を備えてよい。これらのブロックは、ルートブロック、マクロブロック(H.264/AVC)またはコーディングツリーブロック(CTB)またはコーディングツリーユニット(CTU)(H.265/HEVCおよびVVC)とも称され得る。画像区分化ユニットは、ビデオシーケンスのすべての画像およびブロックサイズを定義する対応するグリッドに同じブロックサイズを使用するか、または、画像または画像のサブセットもしくはグループ間でブロックサイズを変化させて、各画像を対応するブロックに区分化するように構成されてよい。
更なる実施形態において、ビデオエンコーダは、画像17のブロック203、例えば、画像17を形成する1つ、いくつか、またはすべてのブロックを直接受信するように構成されてよい。画像ブロック203は、現在の画像ブロックまたはコーディングされる画像ブロックとも称され得る。
画像17と同様にここでも、画像ブロック203は、画像17よりも寸法が小さいが、強度値(サンプル値)を持つサンプルの二次元アレイまたはマトリックスであるか、または、それとみなすことができる。換言すれば、ブロック203は、例えば、1つのサンプルアレイ(例えば、モノクロ画像17の場合はルマアレイ、または、カラー画像の場合はルマもしくはクロマアレイ)、または3つのサンプルアレイ(例えば、カラー画像17の場合はルマおよび2つのクロマアレイ)、または、適用されるカラーフォーマットに応じた任意の他の数および/または種類のアレイを備えてよい。ブロック203の水平および垂直方向(または軸)のサンプル数は、ブロック203のサイズを定義する。したがって、ブロックは、例えば、サンプルのM×N(M列×N行)アレイ、または変換係数のM×Nアレイであってよい。
図2に示すビデオエンコーダ20の実施形態は、画像17をブロック毎にエンコードするように構成されてよく、例えば、エンコーディングおよび予測がブロック203毎に実行される。
図2に示されるビデオエンコーダ20の実施形態は更に、スライス(ビデオスライスとも称される)を使用することによって画像を区分化および/またはエンコードするよう構成されてよく、画像は、1または複数のスライス(典型的には非重複)を使用して区分化またはエンコードされてよく、各スライスは、1または複数のブロック(例えばCTU)、または、ブロックの1または複数のグループ(例えば、タイルH.265/HEVCおよびVVC)またはブリック(VVC)を含んでよい。
図2に示されるビデオエンコーダ20の実施形態は更に、スライス/タイルグループ(ビデオタイルグループとも称される)および/またはタイル(ビデオタイルとも称される)を使用することによって画像を区分化および/またはエンコードするよう構成されてよく、画像は、1または複数のスライス/タイルグループ(典型的には非重複)を使用して区分化またはエンコードされてよく、各スライス/タイルグループは、例えば1または複数のブロック(例えばCTU)または1または複数のタイルを含んでよく、各タイルは例えば、矩形形状であってよく、1または複数のブロック(例えば、CTU)、例えば完全または部分的ブロックを含んでよい。
[残差計算]
残差計算ユニット204は、例えば、サンプル毎(画素毎)に画像ブロック203のサンプル値から予測ブロック265のサンプル値を減算し、サンプル領域における残差ブロック205を取得することによって、画像ブロック203および予測ブロック265に基づいて(予測ブロック265に関する更なる詳細は後で提供される)、残差ブロック205(残差205とも称される)を計算するように構成されてよい。
[変換]
変換処理ユニット206は、残差ブロック205のサンプル値に対して変換、例えば、離散コサイン変換(DCT)または離散サイン変換(DST)を適用し、変換領域における変換係数207を取得するように構成されてよい。変換係数207は、変換残差係数とも称されてよく、変換領域における残差ブロック205を表す。
変換処理ユニット206は、H.265/HEVCに指定された変換等のDCT/DSTの整数近似を適用するように構成されてよい。直交DCT変換に比較して、そのような整数近似は、典型的には特定の係数によってスケーリングされる。順変換および逆変換によって処理される残差ブロックのノルムを保存するべく、変換プロセスの一部として追加のスケーリング係数が適用される。スケーリング係数は、典型的には、シフト演算に関して2のべき乗であるスケーリング係数、変換係数のビット深度、確度と実装コストとの間のトレードオフ等のような特定の制約に基づいて選択される。例えば、特定のスケーリング係数が、例えば、逆変換処理ユニット212による逆変換(および、例えばビデオデコーダ30における逆変換処理ユニット312による対応する逆変換)に指定され、例えば、エンコーダ20における変換処理ユニット206による順方向変換のための対応するスケーリング係数が、相応に指定されてよい。
ビデオエンコーダ20の実施形態は(それぞれ変換処理ユニット206)は、変換パラメータ、例えば単数または複数の変換のタイプを、例えば、直接またはエントロピーエンコーディングユニット270を介してエンコードもしくは圧縮してから出力するように構成されてよく、それにより、例えば、ビデオデコーダ30は、デコーディングのための変換パラメータを受信して使用してよい。
[量子化]
量子化ユニット208は、例えば、スカラ量子化またはベクトル量子化を適用することによって、変換係数207を量子化して、量子化係数209を取得するように構成されてよい。量子化係数209は、量子化変換係数209または量子化残差係数209とも称され得る。
量子化プロセスは、変換係数207のいくつかまたはすべてに関連付けられたビット深度を減少させ得る。例えば、nビット変換係数は、量子化中にmビット変換係数に丸められてよく、ここでnはmよりも大きい。量子化の程度は、量子化パラメータ(QP)を調整することによって変更されてよい。例えば、スカラ量子化の場合、より細かいまたはより粗い量子化を達成するために、異なるスケーリングが適用されてよい。量子化ステップサイズが小さいほど細かい量子化に対応し、一方で、量子化ステップサイズが大きいほど粗い量子化に対応する。適用可能な量子化ステップサイズは、量子化パラメータ(QP)によって示され得る。量子化パラメータは、例えば、適用可能な量子化ステップサイズの予め定義されたセットへのインデックスであり得る。例えば、小さな量子化パラメータは細かい量子化(小さな量子化ステップサイズ)に対応し得、大きな量子化パラメータは粗い量子化(大きな量子化ステップサイズ)に対応し得るか、または逆もまた同様である。量子化は、量子化ステップサイズによる除算を含んでよく、例えば逆量子化ユニット210による対応するおよび/または逆の量子化解除は、量子化ステップサイズによる乗算を含んでよい。いくつかの規格、例えばHEVCに従った実施形態は、量子化ステップサイズを決定するのに量子化パラメータを使用するように構成されてよい。概して、量子化ステップサイズは、除算を含む方程式の固定小数点近似を使用する量子化パラメータに基づいて算出され得る。残差ブロックのノルムを復元するために、量子化および量子化解除に追加のスケーリング係数を導入し得、これは、量子化ステップサイズおよび量子化パラメータの方程式の固定小数点近似で使用されるスケーリングに起因して変更され得る。一例の実装では、逆変換および量子化解除のスケーリングは組み合わされ得る。代替的には、カスタマイズされた量子化テーブルが使用され、例えばビットストリームにおいてエンコーダからデコーダにシグナリングされてよい。量子化は不可逆演算であり、損失は量子化ステップサイズの増加に伴って増加する。
ビデオエンコーダ20の実施形態(それぞれ量子化ユニット208)は、量子化パラメータ(QP)、例えば直接かまたはエントロピーエンコーディングユニット270を介してエンコードしてから出力するように構成されてよく、それにより、例えば、ビデオデコーダ30は、デコーディングのための量子化パラメータを受信して適用してよい。
[逆量子化]
逆量子化ユニット210は、例えば、量子化ユニット208と同じ量子化ステップサイズに基づいてまたはそれを使用して量子化ユニット208によって適用された量子化スキームの逆を適用することによって、量子化係数に対して量子化ユニット208の逆量子化を適用し、量子化解除係数211を取得するように構成されている。量子化解除係数211は、量子化解除残差係数211とも称され得、典型的には量子化による損失に起因して変換係数とは同一でないが、変換係数207に対応する。
[逆変換]
逆変換処理ユニット212は、変換処理ユニット206によって適用された変換の逆変換、例えば、逆離散コサイン変換(DCT)または逆離散サイン変換(DST)または他の逆変換を適用し、サンプル領域における再構築残差ブロック213(または対応する量子化解除係数213)を取得するように構成されている。再構築残差ブロック213は、変換ブロック213とも称され得る。
[再構築]
再構築ユニット214(例えば、加算器または合算器214)は、例えば、サンプル毎に、再構築残差ブロック213のサンプル値と予測ブロック265のサンプル値とを加算することによって、変換ブロック213(すなわち、再構築残差ブロック213)を予測ブロック265に加算し、サンプル領域における再構築ブロック215を取得するように構成されている。
[フィルタリング]
ループフィルタユニット220(または、略して「ループフィルタ」220)は、再構築ブロック215をフィルタして、フィルタリング済みのブロック221を取得する、または、一般に、再構築サンプルをフィルタして、フィルタリング済みのサンプル値を取得するように構成されている。ループフィルタユニットは、例えば、画素遷移を滑らかにする、または、別様にビデオ品質を改善するように構成されている。ループフィルタユニット220は、デブロッキングフィルタ、サンプル適応型オフセット(SAO)フィルタ、または、1または複数の他のフィルタ、例えば、適応ループフィルタ(ALF)、ノイズ抑制フィルタ(NSF)、またはそれらの任意の組み合わせなど、1または複数のループフィルタを含み得る。例において、ループフィルタユニット220はデブロッキングフィルタ、SAOフィルタ、およびALFフィルタを含み得る。フィルタリング処理の順序は、非ブロック化フィルタ、SAO、およびALFであり得る。別の例において、クロマスケーリングを伴うルママッピング(LMCS)(すなわち、適応インループリシェーパ)と呼ばれる処理が追加される。この処理は非ブロック化の前に実行される。別の例において、非ブロック化フィルタ処理はまた、内部サブブロックエッジ、例えば、アフィンサブブロックエッジ、ATMVPサブブロックエッジ、サブブロック変換(SBT)エッジ、およびイントラサブパーティション(ISP)エッジに適用され得る。ループフィルタユニット220が、ループフィルタ内にあるものとして図2に示されているが、他の構成では、ループフィルタユニット220はポストループフィルタとして実装されてもよい。フィルタリング済みのブロック221は、フィルタリング済みの再構築ブロック221とも称され得る。
ビデオエンコーダ20の実施形態(それぞれループフィルタユニット220)は、ループフィルタパラメータを(SAOフィルタパラメータまたはALFフィルタパラメータまたはLMCSパラメータなど)、例えば、直接またはエントロピーエンコーディングユニット270を介してエンコードしてから出力するように構成されてよく、それにより、例えば、デコーダ30は、デコーディングのために同じループフィルタパラメータまたはそれぞれのループフィルタを受信して適用してよい。
[デコード済みの画像バッファ]
デコード済みの画像バッファ(DPB)230は、ビデオエンコーダ20によってビデオデータをエンコードするための参照画像、または一般に参照画像データを保存するメモリであってよい。DPB230は、シンクロナスDRAM(SDRAM)、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM(登録商標))、または他のタイプのメモリデバイスを含む、ダイナミックランダムアクセスメモリ(DRAM)等の様々なメモリデバイスのうちの任意のものによって形成されてよい。デコード済みの画像バッファ(DPB)230は、1または複数のフィルタリング済みのブロック221を保存するように構成されてよい。デコード済みの画像バッファ230は、同じ現在の画像または異なる画像、例えば、以前の再構築画像の他の以前にフィルタリング済みのブロック、例えば、以前に再構築され且つフィルタリング済みのブロック221を保存するようにさらに構成されてよく、例えば、インター予測のために、以前に再構築された、すなわちデコード済みの、完全な画像(並びに、対応する参照ブロックおよびサンプル)、および/または、部分的に再構築された現在の画像(並びに、対応する参照ブロックおよびサンプル)を提供してよい。デコード済みの画像バッファ(DPB)230は、例えば、再構築ブロック215がループフィルタユニット220によってフィルタリングされていない場合、1または複数のフィルタリングされていない再構築ブロック215、または一般に、フィルタリングされていない再構築サンプル、または、再構築ブロックもしくはサンプルの任意の他のさらに処理されたバージョンを保存するように構成されてもよい。
[モード選択(区分化および予測)]
モード選択ユニット260は、区分化ユニット262と、インター予測ユニット244と、イントラ予測ユニット254とを備え、元の画像データ、例えば元のブロック203(現在の画像17の現在のブロック203)、および再構築画像データ、例えば、同じ(現在の)画像のおよび/または1または複数の以前のデコード済みの画像からの、例えばデコード済みの画像バッファ230もしくは他のバッファ(例えば、図示しないラインバッファ)からのフィルタリング済みおよび/またはフィルタリングされていない再構築サンプルもしくはブロックを受信または取得するように構成されている。再構築画像データは、予測ブロック265または予測因子265を得るために、予測、例えばインター予測またはイントラ予測のための参照画像データとして使用される。
モード選択ユニット260は、現在のブロック予測モード(区分化を含まない)のための区分化および予測モード(例えば、イントラまたはインター予測モード)を決定または選択し、対応する予測ブロック265を生成するように構成されてよく、予測ブロック265は、残差ブロック205の計算のためおよび再構築ブロック215の再構築のために使用される。
モード選択ユニット260の実施形態は、区分化および予測モード(例えば、モード選択ユニット260によってサポートされているものまたはモード選択ユニット260に利用可能なものから)選択するように構成されてよく、これにより、最良のマッチ、または換言すれば、最小残差(最小残差は、送信または保存のための圧縮率がより良好であることを意味する)、または、最小シグナリングオーバヘッド(最小シグナリングオーバヘッドは、送信または保存のための圧縮率がより良好であることを意味する)、またはこれらの両方を考慮したもしくはバランスを取ったものを提供する。モード選択ユニット260は、レート歪み最適化(RDO)に基づいて区分化および予測モードを決定する、すなわち、最小レート歪みを提供する予測モードを選択するように構成されてよい。この文脈において「最良」、「最小」、「最適」等のような用語は、全般的な「最良」、「最小」、「最適」等を必ずしも指さず、値が閾値または他の制約を超過または下回り、潜在的に「最適未満選択」につながるが複雑性および処理時間を低減するような、終了または選択基準の達成を指してもよい。
換言すれば、区分化ユニット262は、ビデオシーケンスからの画像を一連のコーディングツリーユニット(CTU)に区分するよう構成されてよく、CTU203は、例えば、四分木区分化(QT)、二分木区分化(BT)、もしくは三分木区分化(TT)、またはそれらの任意の組み合わせを繰り返し用いて、より小さいブロック区分または(やはりブロックを形成する)サブブロックに更に区分化されてよく、また、例えば、ブロック区分またはサブブロックのそれぞれのための予測を実行するように構成されてよく、モード選択は、区分化されたブロック203のツリー構造の選択を含み、予測モードは、ブロック区分またはサブブロックのそれぞれに適用される。
以下では、例示のビデオエンコーダ20によって実行される、区分化(例えば、区分化ユニット260による)および予測処理(インター予測ユニット244およびイントラ予測ユニット254による)をより詳細に説明する。
[区分化]
区分化ユニット262は、ビデオシーケンスからの画像を一連のコーディングツリーユニット(CTU)に区分化するよう構成されてよく、区分化ユニット262は、コーディングツリーユニット(CTU)203をより小さい区分、例えば、正方形または矩形サイズのより小さいブロックに区分化(または分割)してよい。3つのサンプルアレイを有する画像の場合、CTUは、クロマサンプルの2つの対応するブロックと共に、ルマサンプルのN×Nブロックから成る。CTUにおけるルマブロックの最大許容サイズは、開発中の多目的ビデオコーディング(VVC)において、128×128に指定されるが、将来は128×128以外の値、例えば256×256に指定されてよい。画像のCTUは、スライス/タイルグループ、タイルまたはブリックとしてクラスター化/グループ化されてよい。タイルは、画像の矩形領域をカバーし、タイルは、1または複数のブリックに分割されてよい。ブリックは、タイル内の多くのCTU行から成る。複数のブリックに区分化されないタイルはブリックと称されてよい。しかしながら、ブリックは、タイルの真のサブセットであり、タイルと称されない。VVCにおいてサポートされるタイルグループには2つのモードがある。すなわち、ラスタースキャンスライス/タイルグループモードおよび矩形スライスモードである。ラスタースキャンタイルグループモードにおいて、スライス/タイルグループは、画像のタイルラスタースキャンにおける一連のタイルを含む。矩形スライスモードにおいて、スライスは、まとめて画像の矩形領域を形成する画像の多くのブリックを含む。矩形スライス内のブリックは、スライスのブリックラスタースキャンの順序である。これらのより小さいブロック(サブブロックとも称され得る)は、さらにより小さい区分にさらに区分化されてよい。これは、ツリー区分化もしくは階層的ツリー区分化とも称され、ここで、例えばルートツリーレベル0(階層レベル0、深度0)にあるルートブロックは、再帰的に区分化、例えば、次に低いツリーレベル、例えばツリーレベル1(階層レベル1、深度1)にあるノードの2または2より多いブロックに区分化されてよく、これらのブロックは、例えば終了基準が達成されたことで、例えば最大ツリー深度または最小ブロックサイズに達したことで、区分化が終了するまで、次に低いレベル、例えばツリーレベル2(階層レベル2、深度2)の2または2より多いブロックに再度区分化される等してよい。さらに区分化されないブロックは、ツリーのリーフブロックまたはリーフノードとも称される。2つの区分への区分化を用いるツリーは、二分木(BT)と称され、3つの区分への区分化を用いるツリーは、三分木(TT)と称され、4つの区分への区分化を用いるツリーは、四分木(QT)と称される。
例えば、コーディングツリーユニット(CTU)は、3つのサンプルアレイを有する画像のルマサンプルのCTB、クロマサンプルの2つの対応するCTB、または、モノクロ画像のもしくはサンプルをコードするために使用された3つの別個の色平面およびシンタックス構造を用いてコードされた画像のサンプルのCTBであるか、またはそれらを含んでよい。対応して、コーディングツリーブロック(CTB)は、CTBへの構成要素の分割が区分化であるように、或るNの値に関してサンプルのN×Nのブロックであってよい。コーディングユニット(CU)は、ルマサンプルのコーディングブロック、3つのサンプルアレイを有する画像のクロマサンプルの2つの対応するコーディングブロック、または、モノクロ画像のもしくはサンプルをコードするために使用された3つの別個の色平面およびシンタックス構造を用いてコードされた画像のサンプルのコーディングブロックであるか、またはそれらを含んでよい。対応して、コーディングブロック(CB)は、コーディングブロックへのCTBの分割が区分化であるように、或るMおよびNの値に関してサンプルのM×Nのブロックであってよい。
例えばHEVCに従う実施形態において、コーディングツリーユニット(CTU)は、コーディングツリーとして表される四分木構造を用いることによってCUに分割されてよい。画像エリアを、インター画像(時間)予測を用いてコードするのかまたはイントラ画像(空間)予測を用いてコードするのかの決定は、リーフCUレベルで行われる。各リーフCUはさらに、PUの分割タイプに従って、1つ、2つ、または4つのPUに分割することができる。1つのPUの内部では、同じ予測処理が適用され、関連情報はPUベースでデコーダに送信される。PUの分割タイプに基づいて予測処理を適用することによって残差ブロックを取得した後、リーフCUは、CUのコーディングツリーと同様の別の四分木構造に従って変換ユニット(TU)に区分化できる。
実施形態において、例えば、多目的ビデオコーディング(VVC)と称される現在開発中の最新のビデオコーディング規格によれば、組み合わされた四分木が、例えばコーディングツリーユニットを区分化するのに使用される2および3分割セグメンテーション構造を使用して、マルチタイプツリーをネストした。コーディングツリーユニット中のコーディングツリー構造において、CUは、正方形または矩形形状のいずれかを有することができる。例えば、コーディングツリーユニット(CTU)は、最初に四分木によって区分化される。次に、四分木リーフノードは更に、マルチタイプツリー構造によって区分化され得る。マルチタイプツリー構造には4つの分割タイプ、すなわち、垂直2分割(SPLIT_BT_VER)、水平2分割(SPLIT_BT_HOR)、垂直3分割(SPLIT_TT_VER)および水平3分割(SPLIT_TT_HOR)がある。マルチタイプツリーリーフノードは、コーディングユニット(CU)と呼ばれ、CUが最大変換長に対して大きすぎない限り、このセグメンテーションは、任意の更なる区分化なしで、予測および変換処理に使用される。このことは、ほとんどの場合において、CU、PU、およびTUは、ネストされたマルチタイプツリーコーディングブロック構造を有する四分木において同一のブロックサイズを有することを意味する。サポートされる最大変換長がCUのカラーコンポーネントの幅または高さより小さいとき、例外が発生する。VVCは、ネストされたマルチタイプツリーコーディングツリー構造を有する四分木における区分分割情報の独自のシグナリング機構を発展させる。シグナリング機構において、コーディングツリーユニット(CTU)は、四分木のルートとして扱われ、最初に四分木構造によって区分化される。そして、各四分木リーフノードは(それを可能とするのに十分大きいとき)更にマルチタイプツリー構造によって区分化される。マルチタイプツリー構造において、ノードが更に区分化されるかどうかを示すために第1フラグ(mtt_split_cu_flag)がシグナリングされ、ノードが更に区分化されるとき、分割方向を示すために第2フラグ(mtt_split_cu_vertical_flag)がシグナリングされ、次に、分割が2分割であるか、または、3分割であるかを示すために第3フラグ(mtt_split_cu_binary_flag)がシグナリングされる。mtt_split_cu_vertical_flagおよびmtt_split_cu_binary_flagの値に基づいて、CUのマルチタイプツリースリッティングモード(MttSplitMode)が、予め定義された規則または表に基づいてデコーダによって導出され得る。特定の設計、例えば、VVCハードウェアデコーダにおける64×64ルマブロックおよび32×32クロマパイプライン設計では、図6に示されるように、ルマコーディングブロックの幅または高さのいずれかが64より大きいとき、TT分割が禁止されることを留意すべきである。TT分割はまた、クロマコーディングブロックの幅または高さのいずれかが32より大きいとき、禁止される。パイプライン設計は、画像における非重複ユニットとして規定される仮想パイプラインデータユニット(VPDU)に画像を分割する。ハードウェアデコーダにおいて、連続するVPDUが複数のパイプラインステージによって同時に処理される。VPDUサイズは、大部分のパイプラインステージにおいてバッファサイズに概ね比例するので、VPDUサイズを小さく維持することは重要である。大部分のハードウェアデコーダにおいて、VPDUサイズは、最大変換ブロック(TB)サイズに設定され得る。しかしながら、VVCにおいて、三分木(TT)および二分木(BT)区分は、VPDUサイズの増加につながり得る。
加えて、ツリーノードブロックの部分が、下または右の画像の境界を超える場合、すべてのコーディングCUのすべてのサンプルが画像境界内で位置特定されるまで、ツリーノードブロックは強制的に分割されることに留意すべきである。
例として、イントラサブパーティション(ISP)ツールは、ブロックサイズに応じて、ルマイントラ予測ブロックを垂直または水平に2または4つのサブ区分に分割し得る。
一例において、ビデオエンコーダ20のモード選択ユニット260は、本明細書に記載の区分化技術の任意の組み合わせを実行するように構成されてよい。
上述したように、ビデオエンコーダ20は、(例えば、事前決定された)予測モードのセットから最良または最適な予測モードを決定または選択するように構成されている。予測モードのセットは、例えば、イントラ予測モードおよび/またはインター予測モードを含んでよい。
[イントラ予測]
イントラ予測モードのセットは、35の異なるイントラ予測モード、例えば、DC(またはミーン)モードおよび平面モードのような無方向性モード、もしくは、例えばHEVCにおいて定義されているような、方向性モードを含んでよく、または、67の異なるイントラ予測モード、例えば、DC(またはミーン)モードおよび平面モードのような無方向性モード、もしくは、例えばVVCに定義されている、方向性モードを含んでよい。例として、いくつかの従来の角度イントラ予測モードは、例えばVVCにおいて規定される非正方形ブロックについての広角イントラ予測モードと適応的に置き換えられる。別の例として、DC予測についての分割操作を回避するべく、長辺のみが、非正方形ブロックについての平均を計算するのに使用される。そして、平面モードのイントラ予測の結果は更に、位置依存イントラ予測組み合わせ(PDPC)法によって修正され得る。
イントラ予測ユニット254は、同じ現在の画像の隣接ブロックの再構築サンプルを使用して、イントラ予測モードのセットのうちのイントラ予測モードに従って、イントラ予測ブロック265を生成するように構成されている。
イントラ予測ユニット254(または一般にモード選択ユニット260)は、イントラ予測パラメータ(または一般に、ブロックのために選択されたイントラ予測モードを示す情報)を、エンコード済みの画像データ21に含まれるようにシンタックス要素266の形態でエントロピーエンコーディングユニット270に出力するようにさらに構成され、それにより、例えば、ビデオデコーダ30は、デコーディングのための予測パラメータを受信して使用してよい。
[インター予測]
インター予測モードのセット(または可能なインター予測モード)は、利用可能な参照画像(すなわち、例えばDBP230に保存された、以前の少なくとも部分的にデコード済みの画像)および他のインター予測パラメータ、例えば、最良にマッチする参照ブロックの検索に使用されたのは、参照画像の全体なのかもしくは参照画像の一部のみ、例えば、現在のブロックのエリアの周りの検索窓エリアなのか、および/または、例えば、画素補間、例えばハーフ/セミペルおよび/またはクオータペルおよび/または1/16ペル補間が適用されたか否かに依拠する。
上の予測モードに加えて、スキップモード、ダイレクトモードおよび/または他のインター予測モードが適用され得る。
例えば、拡張マージ予測では、そのようなモードのマージ候補リストは、以下の5種類の候補、すなわち、空間近傍CUからの空間的MVP、コロケートCUからの時間的MVP、FIFOテーブルからの履歴ベースのMVP、ペアワイズ平均MVP、およびゼロMVを順に含めることによって構築される。そして、バイラテラルマッチングをベースとしてデコーダ側動きベクトル洗練化(DMVR)が、マージモードのMVの正確度を増加させるために適用され得る。動きベクトル差を伴うマージモードに由来するMVDを伴うマージモード(MMVD)。MMVDフラグは、スキップフラグおよびマージフラグを送信し直後にシグナリングされ、MMVDモードがCUに使用されるかどうかを指定する。そして、CUレベル適応型動きベクトル解像度(AMVR)方式が適用され得る。AMVRは、CUのMVDが異なる精度でコーディングされることを可能にする。現在のCUの予測モードに応じて、現在のCUのMVDは適応的に選択され得る。CUがマージモードにおいてコーディングされるとき、組み合されたインター/イントラ予測(CIIP)モードが現在のCUに適用され得る。インター/イントラ予測信号の加重平均化が、CIIP予測を取得するために実行される。アフィン動き補償予測、ブロックのアフィン動きフィールドは、2つの制御点(4パラメータ)または3つの制御点動きベクトル(6パラメータ)の動き情報によって記述される。HEVCにおける時間的動きベクトル予測(TMVP)と同様であるが、現在のCUにおけるサブCUの動きベクトルを予測するサブブロックベースの時間的動きベクトル予測(SbTMVP)。以前はBIOと称されていた双方向オプティカルフロー(BDOF)は、特に乗算の数および乗数のサイズに関して、はるかに少ない計算を要求する、より単純なバージョンである。そのようなモードにおける三角形区分モードでは、CUは、対角線分割または反対角線分割のいずれかを使用して、2つの三角形形状の区分に均等に分割される。また、双予測モードは、単純な平均化を超えて拡張され、2つの予測信号の加重平均化を可能にする。
インター予測ユニット244は、動き推定(ME)ユニットおよび動き補償(MC)ユニット(両方とも図2には図示せず)を備えてよい。動き推定ユニットは、動き推定のために、画像ブロック203(現在の画像17の現在の画像ブロック203)およびデコード済みの画像231、または、少なくとも1または複数の以前の再構築ブロック、例えば1または複数の他の/異なる以前のデコード済みの画像231の再構築ブロックを受信または取得するように構成されてよい。例えば、ビデオシーケンスは、現在の画像および以前のデコード済みの画像231を含んでよく、または換言すれば、現在の画像および以前のデコード済みの画像231は、ビデオシーケンスを形成する一連の画像の一部であるかまたはそれを形成してよい。
エンコーダ20は、例えば、複数の他の画像のうちの同じまたは異なる画像の複数の参照ブロックから参照ブロックを選択し、インター予測パラメータとして参照画像(または参照画像インデックス)および/または参照ブロックの位置(x、y座標)と現在のブロックの位置との間のオフセット(空間的オフセット)を動き推定ユニットに提供するように構成してよい。このオフセットは、動きベクトル(MV)とも呼ばれる。
動き補償ユニットは、インター予測パラメータを取得、例えば受信するとともに、そのインター予測パラメータに基づいてまたはそれを使用してインター予測を実行して、インター予測ブロック265を取得するように構成されている。動き補償ユニットによって実行される動き補償は、動き推定によって決定された動き/ブロックベクトルに基づいて予測ブロックをフェッチまたは生成し、場合によって副画素精度までの補間を実行することを伴ってよい。補間フィルタリングは、既知の画素サンプルから更なる画素サンプルを生成してよく、したがって、画像ブロックをコードするのに用いられ得る候補予測ブロックの数を潜在的に増加させる。現在の画像ブロックのPUのための動きベクトルを受信すると、動き補償ユニットは、参照画像リストのうちの1つにおいて動きベクトルが指し示す予測ブロックを位置特定してよい。
動き補償ユニットは、ビデオスライスの画像ブロックをデコードする際にビデオデコーダ30によって用いられる、ブロックおよびビデオスライスに関連付けられるシンタックス要素を生成してもよい。スライスおよびそれぞれのシンタックス要素に追加的に、または代替的に、タイルグループおよび/またはタイル、ならびに、それぞれのシンタックス要素が生成または使用され得る。
[エントロピーコーディング]
エントロピーエンコーディングユニット270は、例えば、エントロピーエンコーディングアルゴリズムまたはスキーム(例えば、可変長コーディング(VLC)スキーム、コンテキスト適応VLCスキーム(CAVLC)、算術コーディングスキーム、二値化、コンテキスト適応バイナリ算術コーディング(CABAC)、シンタックスベースのコンテキスト適応バイナリ算術コーディング(SBAC)、確率インターバル区分化エントロピー(PIPE)コーディング、または、別のエントロピーエンコーディング方法もしくは技術)、またはバイパス(無圧縮)を、量子化係数209、インター予測パラメータ、イントラ予測パラメータ、ループフィルタパラメータ、および/または他のシンタックス要素に適用し、例えばエンコード済みのビットストリーム21の形態で出力272を介して出力できるエンコード済みの画像データ21を取得するように構成され、それにより、例えば、ビデオデコーダ30は、デコーディングのためのパラメータを受信して使用してよい。エンコード済みのビットストリーム21は、ビデオデコーダ30に送信、または、後でビデオデコーダ30によって送信または取得するためにメモリに保存されてよい。
ビデオエンコーダ20の他の構造上のバリエーションを、ビデオストリームをエンコードするのに用いてよい。例えば、非変換ベースのエンコーダ20は、特定のブロックまたはフレームのための変換処理ユニット206を用いずに直接的に残差信号を量子化できる。別の実装において、エンコーダ20は、単一のユニットに組み合わされた量子化ユニット208および逆量子化ユニット210を有することができる。
[デコーダおよびデコーディング方法]
図3は、本願の技術を実装するように構成されているビデオデコーダ30の例を示している。ビデオデコーダ30は、例えばエンコーダ20によってエンコードされた、エンコード済みの画像データ21(例えば、エンコード済みのビットストリーム21)を受信して、デコード済みの画像331を取得するように構成されている。エンコード済みの画像データまたはビットストリームは、エンコード済みの画像データをデコードするための情報、例えば、エンコード済みのビデオスライス(および/またはタイルグループまたはタイル)の画像ブロックおよび関連するシンタックス要素を表すデータを含む。
図3の例において、デコーダ30は、エントロピーデコーディングユニット304、逆量子化ユニット310、逆変換処理ユニット312、再構築ユニット314(例えば、合算器314)、ループフィルタ320、モード適用ユニット360、デコード済みの画像バッファ(DBP)330、インター予測ユニット344、およびイントラ予測ユニット354を備える。インター予測ユニット344は、動き補償ユニットであるかまたはこれを備えてよい。ビデオデコーダ30は、いくつかの例では、図2のビデオエンコーダ100に関して説明されたエンコーディングパスに対して概ね逆のデコーディングパスを実行してよい。
エンコーダ20に関して説明したように、逆量子化ユニット210、逆変換処理ユニット212、再構築ユニット214、ループフィルタ220、デコード済みの画像バッファ(DPB)230、インター予測ユニット344、およびイントラ予測ユニット354も、ビデオエンコーダ20の「内蔵デコーダ」を形成するものとして言及される。したがって、逆量子化ユニット310は、逆量子化ユニット110と機能的に同一であってよく、逆変換処理ユニット312は、逆変換処理ユニット212と機能的に同一であってよく、再構築ユニット314は、再構築ユニット214と機能的に同一であってよく、ループフィルタ320は、ループフィルタ220と機能的に同一であってよく、デコード済みの画像バッファ330は、デコード済みの画像バッファ230と機能的に同一であってよい。したがって、ビデオエンコーダ20のそれぞれのユニットおよび機能について提供された説明は、ビデオデコーダ30のそれぞれのユニットおよび機能に対応するように当てはまる。
[エントロピーデコーディング]
エントロピーデコーディングユニット304は、ビットストリーム21(または一般にエンコード済みの画像データ21)を解析し、例えば、エンコード済みの画像データ21にエントロピーデコーディングを実行して、例えば量子化係数309および/またはデコードされたコーディングパラメータ(図3には図示せず)、例えば、インター予測パラメータ(例えば、参照画像インデックスおよび動きベクトル)、イントラ予測パラメータ(例えば、イントラ予測モードまたはインデックス)、変換パラメータ、量子化パラメータ、ループフィルタパラメータ、および/または他のシンタックス要素のいずれかまたはすべてを取得するように構成されている。エントロピーデコーディングユニット304は、エンコーダ20のエントロピーエンコーディングユニット270に関して記載されたエンコーディングスキームに対応するデコーディングアルゴリズムまたはスキームを適用するように構成されてよい。エントロピーデコーディングユニット304は、インター予測パラメータ、イントラ予測パラメータ、および/または他のシンタックス要素をモード適用ユニット360に、また他のパラメータをデコーダ30の他のユニットに提供するようにさらに構成されてよい。ビデオデコーダ30は、ビデオスライスレベルでおよび/またはビデオブロックレベルで、シンタックス要素を受信してよい。スライスおよびそれぞれのシンタックス要素に追加的に、または代替的に、タイルグループおよび/またはタイル、ならびに、それぞれのシンタックス要素が受信および/または使用され得る。
[逆量子化]
逆量子化ユニット310は、エンコード済みの画像データ21から量子化パラメータ(QP)(または一般に逆量子化に関連する情報)および量子化係数を受信する(例えばエントロピーデコーディングユニット304によって、例えば解析および/またはデコードすることによって)とともに、量子化パラメータに基づいて、デコード済みの量子化係数309に逆量子化を適用し、変換係数311とも称され得る量子化解除係数311を取得するように構成されてよい。逆量子化プロセスは、量子化の程度、また同様に適用されるべき逆量子化の程度を決定するために、ビデオスライス(またはタイルもしくはタイルグループ)内のビデオブロック毎にビデオエンコーダ20によって決定される量子化パラメータの使用を含んでよい。
[逆変換]
逆変換処理ユニット312は、変換係数311とも称される量子化解除係数311を受信するとともに、サンプル領域における再構築残差ブロック213を取得するべく、量子化解除係数311に変換を適用するように構成されてよい。再構築残差ブロック213は、変換ブロック313とも称され得る。変換は、逆変換、例えば、逆DCT、逆DST、逆整数変換、または概念的に同様の逆変換プロセスであってよい。逆変換処理ユニット312は、エンコード済みの画像データ21から変換パラメータまたは対応する情報を受信し(例えばエントロピーデコーディングユニット304によって、例えば解析および/またはデコードすることによって)、量子化解除係数311に適用されるべき変換を決定するようにさらに構成されてよい。
[再構築]
再構築ユニット314(例えば、加算器または合算器314)は、再構築残差ブロック313を予測ブロック365に加算し、例えば、再構築残差ブロック313のサンプル値と予測ブロック365のサンプル値とを加算することによって、サンプル領域における再構築ブロック315を取得するように構成されてよい。
[フィルタリング]
ループフィルタユニット320(コーディングループ内またはコーディングループの後のいずれかにある)は、例えば、画素遷移を滑らかにするようにまたはビデオ品質を別様に改善するように、再構築ブロック315をフィルタして、フィルタリング済みのブロック321を取得するように構成されている。ループフィルタユニット320は、デブロッキングフィルタ、サンプル適応型オフセット(SAO)フィルタ、または、1または複数の他のフィルタ、例えば、適応ループフィルタ(ALF)、ノイズ抑制フィルタ(NSF)、またはそれらの任意の組み合わせなど、1または複数のループフィルタを含み得る。例において、ループフィルタユニット220はデブロッキングフィルタ、SAOフィルタ、およびALFフィルタを含み得る。フィルタリング処理の順序は、非ブロック化フィルタ、SAO、およびALFであり得る。別の例において、クロマスケーリングを伴うルママッピング(LMCS)(すなわち、適応インループリシェーパ)と呼ばれる処理が追加される。この処理は非ブロック化の前に実行される。別の例において、非ブロック化フィルタ処理はまた、内部サブブロックエッジ、例えば、アフィンサブブロックエッジ、ATMVPサブブロックエッジ、サブブロック変換(SBT)エッジ、およびイントラサブパーティション(ISP)エッジに適用され得る。ループフィルタユニット320が、ループフィルタ内にあるものとして図3に示されているが、他の構成では、ループフィルタユニット320はポストループフィルタとして実装されてもよい。
[デコード済みの画像バッファ]
画像のデコード済みのビデオブロック321は、その後、デコード済みの画像バッファ330に保存され、デコード済みの画像バッファ330は、デコード済みの画像331を他の画像の後続の動き補償のためのおよび/またはそれぞれ表示を出力するための参照画像として保存する。
デコーダ30は、例えば出力312を介して、ユーザに提示または閲覧させるために、デコード済みの画像311を出力するように構成されている。
[予測]
インター予測ユニット344は、インター予測ユニット244(特に、動き補償ユニット)と同一であってよく、イントラ予測ユニット354は、インター予測ユニット254と機能的に同一であってよく、エンコード済みの画像データ21から受信(例えば、エントロピーデコーディングユニット304によって、例えば、解析および/またはデコードすることによって)された区分化および/または予測パラメータまたはそれぞれの情報に基づいて分割または区分化の決定および予測を実行する。モード適用ユニット360は、再構築画像、ブロック、またはそれぞれのサンプル(フィルタリング済みまたはフィルタリングされていない)に基づいてブロック毎に予測(イントラまたはインター予測)を実行し、予測ブロック365を取得するように構成されてよい。
ビデオスライスがイントラコード済み(I)スライスとしてコードされている場合、モード適用ユニット360のイントラ予測ユニット354は、シグナリングされたイントラ予測モードおよび現在の画像の以前にデコード済みのブロックからのデータに基づいて、現在のビデオスライスの画像ブロックのための予測ブロック365を生成するように構成されている。ビデオ画像がインターコード済みの(すなわち、BまたはP)スライスとしてコードされている場合、モード適用ユニット360のインター予測ユニット344(例えば、動き補償ユニット)は、動きベクトルおよびエントロピーデコーディングユニット304から受信された他のシンタックス要素に基づいて、現在のビデオスライスのビデオブロックのための予測ブロック365を生成するように構成されている。インター予測では、予測ブロックは、複数の参照画像リストのうちの1つに含まれる複数の参照画像のうちの1つから生成されてよい。ビデオデコーダ30は、リスト0およびリスト1という参照フレームリストを、デフォルトの構築技法を用いて、DPB330に保存された参照画像に基づいて構築してよい。同一または同様のことが、スライス(例えばビデオスライス)に追加的または代替的にタイルグループ(例えばビデオタイルグループ)および/またはタイル(例えばビデオタイル)を使用する実施形態について、または、それによって適用され得る。例えば、ビデオは、I、P、またはBタイルグループおよび/またはタイルを使用してコーディングされ得る。
モード適用ユニット360は、動きベクトルまたは関連情報および他のシンタックス要素を解析することによって、現在のビデオスライスのビデオブロックのための予測情報を決定するように構成され、デコードされている現在のビデオブロックのための予測ブロックを生成するために上記予測情報を用いる。例えば、モード適用ユニット360は、受信されたシンタックス要素のいくつかを用いて、ビデオスライスのビデオブロックをコードするのに用いられた予測モード(例えば、イントラまたはインター予測)、インター予測スライスタイプ(例えば、Bスライス、Pスライス、またはGPBスライス)、スライスのための参照画像リストのうちの1もしくは複数に関する構築情報、スライスの各インターエンコード済みのビデオブロック毎の動きベクトル、スライスのインターコード済みのビデオブロック毎のインター予測ステータス、および現在のビデオスライス内のビデオブロックをデコードするための他の情報を決定する。同一または同様のことが、スライス(例えばビデオスライス)に追加的または代替的にタイルグループ(例えばビデオタイルグループ)および/またはタイル(例えばビデオタイル)を使用する実施形態について、または、それによって適用され得る。例えば、ビデオは、I、P、またはBタイルグループおよび/またはタイルを使用してコーディングされ得る。
図3に示されるビデオデコーダ30の実施形態は、スライス(ビデオスライスとも称される)を使用することによって画像を区分化および/またはデコードするよう構成されてよく、画像は、1または複数のスライス(典型的には非重複)を使用して区分化またはデコードされてよく、各スライスは、1または複数のブロック(例えばCTU)、または、ブロックの1または複数のグループ(例えば、タイルH.265/HEVCおよびVVC)またはブリック(VVC)を含んでよい。
図3に示されるビデオデコーダ30の実施形態は、スライス/タイルグループ(ビデオタイルグループとも称される)および/またはタイル(ビデオタイルとも称される)を使用することによって画像を区分化および/またはデコードするよう構成されてよく、画像は、1または複数のスライス/タイルグループ(典型的には非重複)を使用して区分化またはデコードされてよく、各スライス/タイルグループは、例えば1または複数のブロック(例えばCTU)または1または複数のタイルを含んでよく、各タイルは例えば、矩形形状であってよく、1または複数のブロック(例えば、CTU)、例えば完全または部分的ブロックを含んでよい。
ビデオデコーダ30の他のバリエーションを、エンコード済みの画像データ21をデコードするのに用いてよい。例えば、デコーダ30は、ループフィルタリングユニット320を用いずに、出力ビデオストリームを生成することができる。例えば、非変換ベースのデコーダ30は、特定のブロックまたはフレームのための逆変換処理ユニット312を用いずに、残差信号を直接的に逆量子化することができる。別の実装において、ビデオデコーダ30は、単一のユニットに組み合わされた逆量子化ユニット310および逆変換処理ユニット312を有することができる。
エンコーダ20およびデコーダ30において、現在の段階の処理結果は、さらに処理されて、その後、次の段階に出力されてよいことが理解されるべきである。例えば、補間フィルタリング、動きベクトル導出またはループフィルタリングの後に、クリップまたはシフト等の更なる操作を、補間フィルタリング、動きベクトル導出またはループフィルタリングの処理結果に対して実行してよい。
更なる操作を、現在のブロックの導出された動きベクトル(限定しないが、アフィンモードの制御点動きベクトル、アフィン、平面、ATMVPモードにおけるサブブロック動きベクトル、時間的な動きベクトル等を含む)に適用してよいことに留意すべきである。例えば、動きベクトルの値は、その表現ビットに従って予め定義された範囲に制限される。動きベクトルの表現ビットがbitDepthである場合、その範囲は、-2^(bitDepth-1)~2^(bitDepth-1)-1であり、ここで、「^」はべき乗を意味する。例えば、bitDepthが16に等しく設定されている場合、その範囲は-32768~32767であり、bitDepthが18に等しく設定されている場合、その範囲は-131072~131071である。例えば、導出された動きベクトル(例えば、1つの8×8ブロックにおける4つの4×4サブブロックのMV)の値は、4つの4×4サブブロックMVの整数部分の間の最大差が、1画素以下など、N画素以下であるように制限される。以下、BitDepthに従って動きベクトルを制限する2つの方法を提供する。
図4は、本開示の一実施形態に係るビデオコーディングデバイス400の概略図である。ビデオコーディングデバイス400は、本明細書に記載の開示される実施形態を実装するのに好適なものである。一実施形態において、ビデオコーディングデバイス400は、図1Aのビデオデコーダ30等のデコーダ、または、図1Aのビデオエンコーダ20等のエンコーダであってよい。
ビデオコーディングデバイス400は、データを受信するための入口ポート410(または、入力ポート410)および受信器ユニット(Rx)420と、データを処理するためのプロセッサ、ロジックユニット、または中央演算処理装置(CPU)430と、データを送信するための送信器ユニット(Tx)440および出口ポート450(または出力ポート450)と、データを保存するためのメモリ460とを備える。ビデオコーディングデバイス400は、入口ポート410、受信器ユニット420、送信器ユニット440、および、光または電気信号の出入りのための出口ポート450に連結されている、光/電気(OE)構成要素および電気/光(EO)構成要素を備えてもよい。
プロセッサ430は、ハードウェアおよびソフトウェアによって実装される。プロセッサ430は、1または複数のCPUチップ、コア(例えば、マルチコアプロセッサとして)、FPGA、ASIC、およびDSPとして実装されてよい。プロセッサ430は、入口ポート410、受信器ユニット420、送信器ユニット440、出口ポート450、およびメモリ460と通信する。プロセッサ430は、コーディングモジュール470を備える。コーディングモジュール470は、上述した開示される実施形態を実装する。例えば、コーディングモジュール470は、様々なコーディング操作を実装、処理、準備、または提供する。したがって、コーディングモジュール470を含むことにより、ビデオコーディングデバイス400の機能のかなりの改善が提供され、ビデオコーディングデバイス400の異なる状態への変換がもたらされる。代替的に、コーディングモジュール470は、メモリ460に格納され、プロセッサ430により実行される命令として実装される。
メモリ460は、1または複数のディスク、テープドライブ、およびソリッドステートドライブを備え得、オーバーフローデータ格納デバイスとして使用され、そのようなプログラムが実行のために選択された場合にプログラムを格納して、プログラムを実行している間に読み取られる命令およびデータを格納し得る。メモリ460は、例えば、揮発性および/または不揮発性であってよく、リードオンリメモリ(ROM)、ランダムアクセスメモリ(RAM)、三値連想メモリ(TCAM)、および/または、スタティックランダムアクセスメモリ(SRAM)であってよい。
図5は、例示的な実施形態に係る図1Aによるソースデバイス12およびデスティネーションデバイス14のいずれかまたは両方として使用されてよい装置500の概略ブロック図である。
装置500におけるプロセッサ502は、中央演算処理装置としてよい。代替的には、プロセッサ502は、現在既存のまたは今後開発される情報の操作または処理が可能な任意の他のタイプのデバイス、または複数のデバイスとしてよい。開示の実装は、図示のような単一のプロセッサ、例えばプロセッサ502で実施してよいが、1つより多いプロセッサを用いて、速度および効率の利益を実現してよい。
装置500におけるメモリ504は、一実装において、リードオンリメモリ(ROM)デバイスまたはランダムアクセスメモリ(RAM)デバイスとしてよい。任意の他の好適なタイプのストレージデバイスを、メモリ504として使用してよい。メモリ504は、バス512を用いてプロセッサ502によってアクセスされるコードおよびデータ506を備えることができる。メモリ504は、オペレーティングシステム508およびアプリケーションプログラム510をさらに備えることができ、アプリケーションプログラム510は、プロセッサ502が本明細書に記載の方法を実行することを可能にする少なくとも1つのプログラムを含む。例えば、アプリケーションプログラム510は、アプリケーション1~Nを含むことができ、アプリケーション1~Nは、本明細書に記載の方法を実行するビデオコーディングアプリケーションをさらに含む。
装置500は、ディスプレイ518等の、1または複数の出力デバイスも備えることができる。ディスプレイ518は、一例において、ディスプレイと、タッチ入力を検知するように動作可能なタッチセンサ素子とを組み合わせたタッチセンサ式ディスプレイであってよい。ディスプレイ518は、バス512を介してプロセッサ502に連結してよい。
単一のバスとして本明細書に示したが、装置500のバス512は、複数のバスから構成されてよい。さらに、セカンダリストレージ514は、装置500の他の構成要素に直接連結してよく、または、ネットワークを介してアクセスでき、メモリカード等の単一の一体型ユニットまたは複数のメモリカード等の複数のユニットを含んでよい。したがって、装置500は、多種多様な構成で実装することができる。
本願の現在の解決手段で実装されてよい一部の技法を以下で紹介する。
[マージ候補リスト]
マージ動き候補リストを構築する処理が、ITU‐T H.265規格によって導入される。別の実施形態において、マージ動き候補リストは、多目的ビデオコーディング(VVC)の拡張マージ予測によって使用される。
ブロックマージ操作は、動きデータコーディングのための特殊モード(「マージモード」とも呼ばれる)である。ブロックマージ操作は、隣接ブロックの同一の動き情報を使用して、現在のブロックを可能にする。動き情報は動きデータを含み、動きデータは、1つまたは2つの参照画像リストが使用されているかどうかについての情報、ならびに、各参照画像リストについての参照インデックスおよび動きベクトルを含む。ブロックマージ操作は特に、2つの隣接ブロックが画像フレームにおける同一の非変形可能オブジェクトに対応する場合に有用である。この場合、2つのブロックは、同一の動きベクトルおよび同一の参照画像を使用して予測されてよく、したがって、動き情報全体が両方のブロックで同一である。
実装において、隣接ブロックが利用可能であり動き情報を含むかどうかをチェックした後に、隣接ブロックのすべての動きデータを動き情報候補として取得する前に追加の冗長チェックが実行される。
実装において、マージ候補リストは、以下の5種類の候補を順に含めることによって構築される。
1)空間近傍CUからの空間的MVP
2)コロケートCUからの時間的MVP
3)FIFOテーブルからの履歴ベースのMVP
4)ペアワイズ平均MVP
5)ゼロMV
マージリストのサイズは、スライスヘッダにおいてシグナリングされ、マージリストの最大許容サイズは例えば6である。マージモードにおける各CUコードについて、最良のマージ候補のインデックスがエンコードされる。マージ候補の各カテゴリの生成処理が提供される。
[空間候補導出]
実装において、図6に示される位置に位置する候補の中から最大4つのマージ候補が選択される。導出の順序は、B1、A1、B0、A0およびB2である。位置B2は、位置A0、B0、B1、A1の任意のCUが利用可能でない(例えば、別のスライスまたはタイルに属するという理由で)、または、イントラコーディングされるときのみ考慮される。位置B1における候補が追加された後に、残りの候補の追加が冗長チェックを受ける。これにより、同一の動き情報を有する候補がリストから除外されることを確実にでき、その結果、コーディング効率が改善される。計算の複雑性を低減するべく、すべての可能な候補ペアが上述の冗長チェックにおいて考慮されるわけではない。代わりに、図7における矢印で連結されたペアのみが考慮され、候補は、冗長チェックに使用される対応する候補が同一の動き情報を有しない場合にリストに追加されるのみである。
実装中、上述の例において変更可能とみなされる空間近傍の順序、位置、および数は、制限とみなされなくてよい。
[時間候補導出]
実装において、1つの候補のみがリストに追加される。特に、この時間的マージ候補の導出において、スケーリングされた動きベクトルが、コロケート参照画像に属するコロケートCUに基づいて導出される。コロケートCUの導出に使用される参照画像リストは、スライスヘッダにおいて明示的にシグナリングされる。時間的マージ候補についてのスケーリングされた動きベクトルは、図8において点線で示されるように取得され、POC距離tbおよびtdを使用してコロケートCUの動きベクトルからスケーリングされ、tbは、現在の画像の参照画像と現在の画像との間のPOC差分として規定され、tdは、コロケートされた画像の参照画像とコロケートされた画像との間のPOC差分として規定される。時間的マージ候補の参照画像インデックスはゼロに等しく設定される。
時間的候補の位置は、図9に示されるように、候補C0およびC1の間から選択される。位置C0におけるCUが利用可能でない、イントラコーディングされる、または、CTUの現在の行の外にある場合、位置C1が使用される。そうでなければ、位置C0が時間的マージ候補の導出において使用される。
[履歴ベースのマージ候補導出 ]
履歴ベースのMVP(HMVP)マージ候補は、空間的MVPおよびTMVPの後にマージリストに追加される。実装において、前にコーディングされたブロックの動き情報は、テーブルに格納され、現在のCUのためのMVPとして使用される。複数のHMVP候補を有するテーブルは、エンコーディング/デコーディング処理中に維持される。テーブルは、新しいCTU行に遭遇するときにリセットされる(空になる)。非サブブロックインターコーディングCUがあるときは常に、関連する動き情報がテーブルの最後のエントリに新しいHMVP候補として追加される。
HMVPテーブルサイズSは5に設定される。このことは、例えば最大5つの履歴ベースのMVP(HMVP)候補がテーブルに追加され得ることを示す。新しい動き候補をテーブルに挿入するとき、制限のある先入先出(FIFO)規則が利用され、テーブルに同一のHMVPがあるかどうかを見つけるために冗長チェックが最初に適用される。見つかった場合、同一のHMVPがテーブルから削除され、その後のすべてのHMVP候補が前に動かされる。
HMVP候補がマージ候補リスト構築プロセスにおいて使用され得る。テーブルにおける最新のいくつかのHMVP候補が順番にチェックされ、TMVP候補の後に候補リストに挿入される。HMVP候補から空間または時間的マージ候補に対して冗長チェックが適用される。
冗長チェック操作の数を低減するべく、異なる単純化が導入されてよい。概して、利用可能のマージ候補の総数が最大許容マージ候補-1に到達すると、HMVPからのマージ候補リスト構築プロセスが終了される。
[ペアワイズ平均マージ候補導出 ]
ペアワイズ平均候補は、既存のマージ候補リストにおける候補の予め定義されたペアを平均化することによって生成され、予め定義されたペアは(0,1)と規定され、例えば、当該数は、マージ候補リストへのマージインデックスを示す。平均化された動きベクトルは、各参照リストについて個別に算出される。1つのリストにおいて両方の動きベクトルが利用可能である場合、これら2つの動きベクトルは、異なる参照画像を指すときでも平均化される。1つの動きベクトルが利用可能でありさえすれば、その1つを直接使用する。利用可能な動きベクトルが無い場合、このリストを無効に維持する。
動き情報候補のリストがマージ候補リスト構築プロセス中に出力される。「動き情報」という用語は、インター予測処理を実行するのに必要な収集された情報を指す。動き情報は通常、以下の情報を指す。
1)ブロックが片予測または双予測のどちらを適用するか(予測方向)
2)動きベクトル(ブロックが双予測を適用する場合、2つの動きベクトル)
3)予測において使用される参照画像インデックス(ブロックが双予測を適用する場合、2インデックスであり、各インデックスは1つの参照画像リスト、第1参照画像リスト(L0)または第2参照画像リスト(L1)に対応する)。
いくつかの実現可能な実装において、動き情報はまた、インター予測ユニットの動き補償についての特定の補間フィルタを示すのに使用される切り替え可能な補間フィルタインデックスを指してよい。
本願において、動き情報は、1または複数の上の項目、または、種々の実施形態に記載のインター予測処理を実行するのに必要な任意の他の情報であってよい。
参照画像インデックスは、コーディングブロックの予測処理において使用される参照画像リストにおけるエントリを示すために使用される。例えば、第1動きベクトルは、L0における第1画像を指してよく、第2動きベクトルは、L1における第1画像を指してよい。2つの参照画像リストが維持されてよく、第1動きベクトルが指す画像はL0から選択され、第2動きベクトルが指す画像はL1から選択される。
参照画像リストL0およびL1の各々は、1または複数の参照画像を含んでよく、その各々は、画像順序カウント(POC)で識別される。各参照インデックスおよびPOC値との関連は、ビットストリームにおいてシグナリングされてよい。例として、L0およびL1参照画像リストは以下の参照画像を含み得る。
Figure 0007239697000001
上の例において、参照画像リストL1における第1エントリ(参照インデックス0によって示される)は、POC値13を有する参照画像である。
POCは、各画像に関連する変数であり、コーディングビデオシーケンス(CVS)におけるすべての画像のうち関連付けられた画像を一意に識別し、関連付けられた画像がデコード済みの画像バッファから出力されるとき、デコード済みの画像バッファから出力される同一のCVSにおける他の画像の出力順の位置に対する出力順で、関連付けられた画像の位置を示す。
[三角形予測モード]
三角形予測モード(TPM)が使用されるとき、CUは、図10Aまたは図10Bに示されるように、対角線分割または反対角線分割のいずれかを使用して、2つの三角形形状区分に均等に分割される。図10Aまたは図10Bのいずれかは例であることに留意されたい。PUおよびPUの位置は本願において限定されるものではない。CUにおける各三角形区分は、自身の動きを使用してインター予測される。片予測のみが各区分に許容される。すなわち、各区分は、1つの動きベクトルおよび1つの参照インデックスを有する。片予測動きの制約は、従来の双予測と同じように、各CUについて2つの動き補償予測のみが必要であることを確実にするために適用される。各区分についての片予測動きは、上で説明された拡張マージ予測について構築されたマージ候補リストから直接導出される。
三角形区分モードが現在のCUについて使用される場合、三角形区分の方向(対角線または反対角線)を示すフラグ、および、2つのマージインデックス(各区分に1つ)が更にシグナリングされる。三角形区分の各々を予測した後に、対角線または反対角線エッジに沿ったサンプル値が、適応型の重みを伴うブレンド処理を使用して調節される。これは、完全なCUについての予測信号であり、他の予測モードのように、変換および量子化プロセスが完全なCUに適用される。最後に、三角形区分モードを使用して予測されるCUの動きフィールドが4×4ユニットに格納される。
TPMは、サブブロック区分化の特殊な場合であり、ブロックが2つのブロックに分割される。上述の例において、2つのブロック分割方向が示される(45度および135度の区分)。しかしながら、図11に例示されるように、他の区分角度および区分比率も可能であることに留意されたい。例として、サブブロックは、区分角度に応じて、矩形(例えば、図11の中央および右の図)または非矩形(台形、例えば図11の左の図)であってよい。いくつかの例において、現在のブロックは、2つの予測ユニットから成り、2つの予測ユニットは仮想分割線によって分割される。この場合、現在のブロックが幾何予測モードによって予測されると呼ばれる。そして、例として、仮想分割線は、第1サブブロックと第2サブブロックとの間の境界である直線であってよい。より具体的には、TPMを使用する予測の手順は以下を含む。
[片予測候補リスト構築]
図12に例示されるように、マージ候補インデックスを与えられると、片予測動きベクトルは、拡張マージ予測について構築されたマージ候補リストから導出される。リストにおける候補について、そのLX動きベクトル(Xはマージ候補インデックス値のパリティに等しい)は、三角形区分モードについての片予測動きベクトルとして使用される。これらの動きベクトルは、図12において、「x」で示される。対応するLX動きベクトルが存在しない場合、拡張マージ予測候補リストにおける同一の候補のL(1-X)動きベクトルは、三角形区分モードについての片予測動きベクトルとして使用される。
実現可能な実装において、特殊な別の片予測候補リストを明示的に構築することなく、片予測動きベクトルは、通常のマージモード(Merge Mode)に使用されるマージ候補リストから直接導出できることに留意されたい。
[三角形区分エッジに沿ったブレンド]
各三角形区分を、それ自体の動きを使用して予測した後に、ブレンドが2つの予測信号に適用され、対角線または反対角線エッジの周りのサンプルが導出される。図13に示されるように、以下の重み、すなわち、ルマの場合は{7/8,6/8,5/8,4/8,3/8,2/8,1/8}、クロマの場合は{6/8,4/8,2/8}がブレンド処理において使用される。
通常の予測モードと比較して、異なるサブブロックの動き情報がブロックについてシグナリングされる必要がある。したがって、サブブロック予測モードにおいて、動き情報を表すために使用されるサイド情報のオーバヘッドはより高い。サブブロック予測モードについてのサイド情報をコーディングする効率を改善するために、種々の実施形態が本願において導入される。
実施形態1
サブブロック予測がブロックに適用されると決定される場合:
1.初期第1インデックスが、最大値M(Mは整数であり、M≦N、Nは動き情報候補リストにおける候補の数である)を有し得る(エンコーダ側における)ビットストリームに含まれる。
2.初期第2インデックスが、最大値M-m(mは整数であり、m<M、mは予め定義された値である)を有し得る(エンコーダ側における)ビットストリームに含まれる。
3.初期第2インデックスの値が初期第1インデックスの値以上である場合、初期第2インデックスの値は、予め定義された数だけインクリメントされ、更新された第2インデックスが取得される(例えば、予め定義された数は1であり得る)。
4.ブロックの第1サブブロック部分は、初期第1インデックスに基づいて決定される動き候補情報の適用によって予測される。
5.ブロックの第2サブブロック部分は、更新された第2インデックスに基づいて決定される動き候補情報の適用によって予測される。
実現可能な実装において、初期第1インデックスおよび初期第2インデックスは、エンコーダによってビットストリームに含められてよく、デコーダによって解析されてよい。
実現可能な実装において、初期第2インデックスをmだけインクリメントする操作は、エンコーダ側およびデコーダ側の両方において実行され、この操作は、エンコーダ側とデコーダ側との間の一貫性を維持することを目的としている。
実現可能な実装において、初期第1インデックスおよび更新された第2インデックスは、動き情報候補リストにおけるエントリを選択するために使用され(エントリとしての初期第1インデックスおよび更新された第2インデックスに基づいて、対応する動き情報候補が選択されてよい)、選択された動き情報候補は、ブロックの第1サブブロック部分(例えば、図10Aまたは図10BにおけるPU)および第2サブブロック部分(例えば、図10Aまたは図10BにおけるPU)について使用され、予測が実行される。
実現可能な実装において、動き情報候補リストは、片予測動き情報候補のみから構成されてよい。マージ候補リスト(ITU‐T H.265のマージ候補リストなど)は、片予測および双予測動き情報候補から構成されてよいことに留意されたい。したがって、実施形態において使用される動き情報候補リストは、ITU‐T H.265のマージ候補リストと異なり得る。
動き情報候補リストはマージ候補リストと同一でなくてよい。なぜなら、マージ候補リストは、サブブロック(例えば三角形)予測を適用するためにブロックが決定されるときに使用されることが禁止される双予測候補を含んでよいからである。この場合、各サブブロックは、片予測動き情報を適用する必要があり、したがって、初期第1インデックスおよび更新された第2インデックスは、片予測候補のみを含む動き情報候補リストにおけるエントリを指す。動き情報候補リストは、マージ候補リストの構築において使用される同一の空間および時間隣接ブロックを使用することによって構築されてよい。別の例において、動き情報候補リストは、マージ候補リストにおける双予測候補を片予測候補に変換することによって、マージ候補リストに基づいて構築されてよい。
初期第1および初期第2インデックスは、ビットストリーム構造における特定の順序に従う必要はないことに留意されたい。
初期第1インデックスと初期第2インデックスとの間の比較操作は、エンコーダおよびデコーダの両方において実行されることに留意されたい。エンコーダ側の場合、インジケータ(例えば初期第1インデックスおよび初期第2インデックス)がビットストリーム内に含まれる。デコーダ側の場合、インジケータ(例えば初期第1インデックスおよび初期第2インデックス)がビットストリームから解析される。
初期第2インデックスの値が初期第1インデックスの値以上である場合、初期第2インデックスの値は、予め定義された数(例えば1)だけインクリメントされる。概して、同一の動き情報候補リスト(動き情報候補から構成される)が使用され、2つのインデックスが動き情報候補リストにおける同一の動き情報を指す場合、これは、全体のブロックについて単一の動き情報を有することに対応する。したがって、同一のインデックスを取得することを防止するために、初期第2インデックスは1だけインクリメントされる。初期第2インデックスがインクリメントされない場合、第1および第2インデックスは、動き情報候補リストにおける同一の動き候補を指してよい(なぜなら、同一のリストが両方のサブブロック部分の動き情報を選択するために使用されるからである)。この場合、各サブブロック部分は、予測のために同一の動き情報を適用する。このことは、ブロックを2つのサブブロックに分割する意味がないことを意味する。初期第2インデックスの値が初期第1インデックス以上である場合、初期第2インデックスをインクリメントすることによる冗長な表現は回避される。したがって、動き情報候補リストは少なくとも2つのセットの動き情報を含むことに留意されたい。本発明によってサブブロックの冗長な動き情報表現を除去する結果として、圧縮効率が改善される。
インクリメント操作の結果が動き情報候補リストにおける候補の数を超えない場合でも、初期第2インデックスは、予め定義された数(例えば1、2、3、など)だけインクリメントされてよいことに留意されたい。
第1実施形態の具体的な実装において、動き情報候補リストは、6エントリを有する動き情報候補を含むと想定する。更に、動き情報候補リストにおける第1動き候補は、予測のためにブロックの第1サブブロック部分に適用され、動き情報候補リストにおける第5動き候補は、予測のためにブロックの第2サブブロック部分に適用されると想定する。
エンコーダ側:
1.初期第1インデックスの値を示すために、0の値がビットストリームに含まれる(またはシグナリングされる)。(インデックス値0は動き情報候補リストにおける第1エントリに対応し、値1は第2エントリに対応し、以降も同様である。)
2.初期第2インデックスの値を示すために、3の値がビットストリームに含まれる(またはシグナリングされる)。
3.更新された第2インデックスの値は、初期第2インデックスの値を、例えば1だけインクリメントすることによって算出され、このようにして値4が取得される。
4.初期第1インデックスは、動き情報候補リストにおける第1動き候補を指すように決定される。それは、ブロックの第1サブブロック部分を予測するために適用される。
5.更新された第2インデックスは、動き情報候補リストにおける第5動き候補を指すように決定される。それは、ブロックの第2サブブロック部分を予測するために適用される。
デコーダ側:
1.初期第1インデックスの値を示すために、0の値がビットストリームから解析される。
2.初期第2インデックスの値を示すために、3の値がビットストリームから解析される。
3.更新された第2インデックスの値は、その値を例えば1(3は0より大きいため)だけインクリメントすることによって算出され、そのようにして、値4が取得される。
4.初期第1インデックスは、動き情報候補リストにおける第1動き候補を指すように決定される。それは、ブロックの第1サブブロック部分を予測するために適用される。
5.更新された第2インデックスは、動き情報候補リストにおける第5動き候補を指すように決定される。それは、ブロックの第2サブブロック部分を予測するために適用される。
この実装から、エンコーダ側において、初期第2インデックスはまた、1だけインクリメントすることによって更新され、この操作は、デコーダ側における同様の操作との一貫性を維持することを目的とする。
インクリメント操作の結果が動き情報候補リストにおける候補の数を超えない場合でも、インクリメント数は、予め定義された数、例えば1、2、3などであってよいことが理解される。
第1実施形態の別の具体的な実装において、動き情報候補リストは、以下の3つのエントリを含むと想定する。
(1)第1動き情報候補(第1候補)
(2)第2動き情報候補(第2候補)
(3)第3動き情報候補(第3候補)
第1および第2インデックスの値は以下の通りである。
Figure 0007239697000002
上の表から、第1インデックスの最大値は3、第2インデックスの最大値は2である。表から、初期第2インデックスが初期第1インデックスより大きい場合、初期第2インデックスはなお1だけインクリメントされる。これは、初期第2インデックスが初期第1インデックス以上であるときのシナリオについて、統一操作(例えば1だけインクリメントする)を維持するためである。上の表における第1~第3行を例にとると、第1および第3行については、初期第1インデックスおよび初期第2インデックスは等しく、それらを異ならせるために、初期第2インデックスが1だけインクリメントされる。第2行については、初期第2インデックスは初期第1インデックスより大きく、インクリメント操作が実行されない場合、これは例外となり、複雑性を改善する。単純にするために、初期第2インデックスが初期第1インデックスより大きいと決定するとき、初期第2インデックスはなお1だけインクリメントされる。
実施形態2
サブブロック予測をブロックに適用すると決定される場合:
1.分割方向を示すインジケータがビットストリームに含まれる。
2.初期第1インデックスが、最大値M(Mは整数であり、M≦N、Nは動き情報候補リストにおける候補の数である)を有し得るビットストリームに含まれる。
3.初期第2インデックスが、最大値M-m(mは整数であり、m<M、mは予め定義された値である)を有し得るビットストリームに含まれる。
4.初期第2インデックスの値が初期第1インデックスの値以上である場合、初期第2インデックスの値は、予め定義された数だけインクリメントされ、更新された第2インデックスが取得される(例えば、予め定義された数は1であり得る)。
5.ブロックの第1サブブロック部分は、初期第1インデックスに基づいて決定される動き候補情報の適用によって予測される。
6.ブロックの第2サブブロック部分は、更新された第2インデックスに基づいて決定される動き候補情報の適用によって予測される。
分割方向インジケーション、初期第1インデックス、および初期第2インデックスは、ビットストリーム構造における特定の順序に従う必要はないことに留意されたい。
実現可能な実装において、以下のようであってよい2つの分割方向があってよい。
(1)ブロックの左上隅から右下隅に分割する(図10Aまたは図10Bにおける左の図を参照されたい)
(2)右上隅からブロックの左下隅に分割する(図10Aまたは図10Bにおける右の図を参照されたい)
実現可能な実装において、以下の通りであってよい4つの分割方向があってよい。
(1)ブロックの左上隅から右下隅に分割する
(2)ブロックの右上隅から左下隅に分割する
(3)ブロックの中央上ポイントから中央下ポイントに分割する
(4)ブロックの中央左ポイントから中央右ポイントに分割する
実施形態3
サブブロック予測をブロックに適用すると決定される場合:
1.分割方向を示すインジケータがビットストリームに含まれる。
2.インジケータが特定の分割方向を示す場合(例えば、ブロックの左上隅から右下隅に分割する。図10Aまたは図10Bにおける左の図を参照されたい)
2.1 初期第1インデックスが、最大値M(Mは整数であり、M≦N、Nは動き情報候補リストにおける候補の数である)を有し得るビットストリームに含まれる。
2.2 初期第2インデックスが、最大値M-m(mは整数であり、m<M、mは予め定義された値である)を有し得るビットストリームに含まれる。
2.3.初期第2インデックスの値が初期第1インデックスの値以上である場合、初期第2インデックスの値は、予め定義された数だけインクリメントされ、更新された第2インデックスが取得される(例えば、予め定義された数は1であり得る)。
3.そうでない場合(インジケータが異なる分割方向、例えば、ブロックの右上隅から左下隅への分割を示す場合(図10Aまたは図10Bにおける右の図を参照))
3.1 初期第1インデックスが、最大値M-m(mは整数であり、m<M、mは予め定義された値である)を有し得るビットストリームに含まれる。
3.2.初期第2インデックスが、最大値M(Mは整数であり、M≦N、Nは動き情報候補リストにおける候補の数である)を有し得るビットストリームに含まれる。
3.3.初期第2インデックスの値が初期第1インデックスの値以上である場合、初期第2インデックスの値は、予め定義された数だけインクリメントされ、更新された第2インデックスが取得される(例えば、予め定義された数は1であり得る)。
4.ブロックの第1サブブロック部分は、第1インデックスに基づいて決定される動き情報候補の適用によって予測される。
5.ブロックの第2サブブロック部分は、第2インデックスに基づいて決定される動き情報候補の適用によって予測される。
実現可能な実装において、以下の通りであってよい2つの分割方向があってよい。
(1)ブロックの左上隅から右下隅に分割する
(2)ブロックの右上隅から左下隅に分割する
実現可能な実装において、以下の通りであってよい4つの分割方向があってよい。
(1)ブロックの左上隅から右下隅に分割する
(2)ブロックの右上隅から左下隅に分割する
(3)ブロックの中央上ポイントから中央下ポイントに分割する
(4)ブロックの中央左ポイントから中央右ポイントに分割する
実施形態4
サブブロック予測をブロックに適用すると決定される場合
1.分割方向を示すインジケータがビットストリームに含まれる。
2.初期第1インデックスが、最大値M(Mは整数であり、M≦N、Nは動き情報候補リストにおける候補の数である)を有し得るビットストリームに含まれる。
3.初期第2インデックスが、最大値M-m(mは整数であり、m<M、mは予め定義された値である)を有し得るビットストリームに含まれる。
4.初期第2インデックスの値が初期第1インデックスの値以上である場合、初期第2インデックスの値は、予め定義された数だけインクリメントされ、更新された第2インデックスが取得される(例えば、予め定義された数は1であり得る)。
5.ブロックの第1サブブロック部分は、初期第1インデックスに基づいて決定される動き候補情報の適用によって予測される。
6.ブロックの第2サブブロック部分は、更新された第2インデックスに基づいて決定される動き候補情報の適用によって予測される。
第1サブブロック部分が、幾何学的中心がブロックの左の境界に近い部分に割り当てられる場合。図10Aまたは図10Bを例にとると、PUは第1サブブロック部分を示し、PUは第2サブブロック部分を示す。
実施形態4において、ブロックの左の境界に近い幾何学的中心を有するサブブロック部分に対応するインデックスが最初にビットストリームに含まれる。動き情報候補リストの構築は典型的には、左ブロックの動き情報、上ブロックの動き情報、右上ブロックの動き情報...の順序で隣接ブロックの動き情報を考慮する。上の空間近傍順序は、例としてHEVCからとられる。左近傍の動き情報が最初に考慮されるので、左近傍の動き情報を示すインデックスは典型的には、より少ないビットを有する。左近傍に(幾何学的な意味で)近いサブブロック部分は最初にコーディングされ、第2インデックスは同一の動き情報(すなわち、マージリストにおける同一エントリ)を指すことができないので、第1インデックスおよび第2インデックスを表すビットの総数は典型的には低い。別の実現可能な実装において、ブロックの上の境界に近い幾何学的中心を有するサブブロック部分に対応するインデックスは最初にビットストリームに含まれる。順序は本願によって限定されるものではない。
特定の実施形態において、動き情報候補リストは3のサイズを有し、以下の動き情報候補、すなわち、左隣接ブロックの動き情報(第1エントリ)、上隣接ブロックの動き情報(第2エントリ)、および、コロケートブロックの動き情報(第3エントリ、時間隣接ブロック)を含むと想定する。
更に、分割方向ならびに第1サブブロック(PU)および第2サブブロック(PU)は図10Aまたは図10Bにおける左の図のように与えられると想定する。概して、空間的近接性に起因して、PUは、(左隣接ブロックの動き情報に対応する)動き情報候補リストにおける第1エントリに基づいて予測され、PUは、(上隣接ブロックの動き情報に対応する)動き情報候補リストにおける第2エントリに基づいて予測される可能性がより高い。
本発明によれば、第1インデックスを表すために、0の値がビットストリームに含められ(デコーダにおいて解析され)、第2インデックス(インデックスがとり得る最小値)を表すために、0の値がビットストリームに含められ(デコーダにおいて解析され)、第2インデックスは第1インデックスに等しいので、動き情報候補リストから動き候補を選択する前に、第2インデックスが1だけインクリメントされる。ある場合において、第1および第2インデックスは、本発明による最小の可能な値を有し、ビットストリームにおける第1インデックスおよび第2インデックスを表すために最小数の合計ビットが要求される。
分割方向インジケーション、第1インデックスおよび第2インデックスは、ビットストリーム構造における特定の順序に従う必要はないことに留意されたい。具体的な実装において、サブブロック予測モードは三角形予測モードである。
第1インデックス(例えば初期第1インデックス)および第2インデックス(例えば更新された第2インデックス)は、第1サブブロックおよび第2サブブロックに適用される動き情報を選択するために使用される。動き情報は同一の動き情報候補リストから選択される。両方のサブブロック部分について同一の動き情報を選択すること(サブブロック区分を有しないことと同一である)を回避するべく、第2インデックスは、第1インデックス以上である場合、予め定義された数(例えば1)だけインクリメントされる。
実施形態1から4は、サブブロック予測を適用するブロックの各サブブロックについて、動き情報をシグナリングする異なる効率的方法を提供する。
実施形態5
第1インデックスおよび第2インデックスの最大値(実施形態1から4においてMとして表される)は、動き情報候補リストのサイズN以下である。
第1および第2インデックスの最大値はまた、動き情報候補リストにおけるエントリの数を記述することに留意されたい。例えば、第1インデックスの最大値が6である場合(カウントが1から開始し、インデックスは1、2、3、4、5、6の値をとり得ると想定する)、動き情報候補リストのサイズは6である。
マージ候補リストは、ITU‐T H.265またはVVCにおける方法に従って構築され得る。HEVCおよびVVCにおけるマージリスト構築プロセスについての上述の例および開示を参照されたい。
第1インデックスおよび第2インデックスの最大値(Mで与えられ、動き情報候補リストのサイズと同等である)は、マージ候補リストのサイズN以下である。サブブロック予測モードを適用しないようにブロックが決定される場合、ブロックは、マージ候補リストにおけるエントリの1つに基づいて予測されてよいことに留意されたい。しかしながら、サブブロック予測モードを使用してブロックが予測される場合、動き情報候補リストのエントリは、ブロックを予測するために使用される。
例えば、ビットストリームから解析された予測インジケータが、サブブロック予測がブロックに適用されることを示すとき、2つの異なるインジケータが取得され、これら2つの異なるインジケータは、ブロックにおける2つのサブブロックについて、動き情報候補リストにおける2つの異なるエントリを個別に示し、インター予測が2つの異なるインジケータに基づいてブロックに実行される。ビットストリームから解析された予測インジケータが、サブブロック予測がブロックに適用されないことを示すとき、単一のインジケータが取得され、単一のインジケータは、ブロックについてのマージ候補リスト(例えば、ITU‐T H.265およびVVCにおける方法に従って構築されてよい)におけるエントリを示し、単一のインジケータに基づいて、インター予測(例えば非サブブロック予測)がブロックについて実行される。
MがN以下である場合、第1インデックスの最大値は、Mに等しくなるように設定される。Nはマージ候補リストのサイズ(候補の数)である。そうでなければ(NがM未満である場合)、第1マージインデックスの最大値はNに等しくなるように設定される。
実現可能な実装において、Nは、ビットストリームに含まれるインジケータから導出されてよく、Mは予め定義された数であってよい。
例として、値M(第1インデックスの最大値を記述する)は5であってよく、予め定められる。そして、Nの値(マージ候補リストのサイズ)は、シーケンスパラメータセット(SPS)においてシグナリングされてよい。Nの値が6としてシグナリングされる場合、NがMより大きいので、第1インデックスの最大値は5(カウントが0から開始する場合、4)に等しい。別のシナリオにおいて、NがSPSにおいて3としてシグナリングされる場合、第1インデックスの最大値は3に等しい(カウントが0から開始する場合、2)。
Nは、ITU‐T H.265およびVVCにおける方法に従って構築され得るマージ候補リストのサイズであることに留意されたい。実施形態において使用される第1インデックスおよび第2インデックスは、異なるリスト、すなわち、片予測候補のみから構成される動き情報候補リストを指す。動き情報候補リストはマージ候補リストと同一でなくてよい。なぜなら、マージ候補リストは、サブブロック(または三角形)予測を適用するためにブロックが決定されるときに使用されることが禁止される双予測候補を含んでよいからである。この場合、各サブブロックは、片予測動き情報を適用する必要があり、したがって、第1インデックスおよび第2インデックスは、片予測候補のみを含む動き情報候補リストにおけるエントリを指す。動き情報候補リストは、マージ候補リストの構築において使用される同一の空間および時間隣接ブロックを使用することによって構築されてよい。代替的に、動き情報候補リストは、マージ候補リストのエントリに基づいて構築されてよい。実現可能な実装において、動き情報候補リストは、明示的に構築されないことがあり得る。例えば片予測候補は、マージ候補リストから直接導出できる。
ブロックベースの予測については、1セットの動き情報のみが(一実装においてマージインデックスの形式で)シグナリングされる。サブブロック予測の場合、2セットの動き情報が必要であるので(シグナリングオーバヘッドを増加させる)、インデックスの値は、マージインデックスの最大値より大きくないことが期待される(マージインデックスの最大値はマージ候補リストのサイズと同等である)。
動き情報候補リストが、マージ候補リストを構築するのに使用される候補に基づいて、または、マージ候補リストのエントリに基づいて構築されること期待されるので、動き情報候補リストは、マージ候補リストのサイズより大きいサイズを有しない。
したがって、動き情報候補リストのサイズ(したがって、第1および第2インデックスの最大値)は、マージ候補リスト以下に設定される。
別の実現可能な実装において、Nは、ビットストリームに含まれるインジケータから導出されてよく、Mは、ビットストリームに含まれるインジケータから導出されてよい。この場合、Mの値を導出するために使用されるインジケータは、Nより大きいM値を示すことができない。
HEVCにおいて、動き情報候補リストのサイズはNであり、Nはビットストリームに含まれるシンタックス要素に基づいて修正されてよい。Nの値は、正の整数(典型的には2から5の間)でよく、SPSにおいてシグナリングされる。マージリストのサイズは、ビデオシーケンス全体で固定である。
第1インデックスおよび第2インデックスの最大値は、動き情報候補リストのサイズより大きくなることができない。第1インデックスおよび第2インデックスは、異なるリスト(マージ候補リストと同一でない動き情報候補リスト)から動き情報を選択するために使用されるが、動き情報候補リストは典型的には、同一の空間および時間隣接ブロックを使用して構築されてよい(しかし、動き情報候補リストとは異なる構築規則を適用する)。
特定の実装において、動き情報候補リストは、マージ候補リストにおける双予測候補を片予測候補に変換することによって構築されてよい。したがって、第1および第2インデックスの最大値をマージ候補リストのサイズ未満に設定することにより、マージ候補リストに基づいて構築された動き情報候補リストが、現在のブロックの各サブブロックの動き情報を選択するために使用されてよいことを保証する。
実施形態6
第1および第2インデックスは、切り捨てられた単進バイナリコードを使用して、インデックスの最大値に基づいて二値化される(十進表現から二進表現に変換される)。インデックスの最大値は、インデックスの十進値を二進表現にマッピングする処理において使用される。切り捨てられた単進バイナリコード(最大十進値が4である、切り捨てられた単進符号)についての値コードワード割り当てが以下に与えられる。
Figure 0007239697000003
上の表において、各十進値は、前の十進値(十進数において1小さい)と比較して、二進表現において1ビット多く必要とするが、インデックスの最大値に対応する最後の十進値を除く。この場合(インデックスの値が、最大値である4のとき)、二進表現において前の十進値(3)と同一の量のビットで表される。
第1インデックスが最大値4(=M)を有し、第2インデックスが最大値3(=M-1)を有する場合、以下の二進表現が適用される。
Figure 0007239697000004
実施形態7
第1インデックスの第1binは、コンテキストベース適応型バイナリ算術コーディング(CABAC)の通常のコーディングモードを使用して(第1インデックスのすべての発生のコーディングの後に更新される確率推定を使用して)コーディングされ、他のbinは、CABACのバイパスモードを使用して(更新されない等しい確率を使用して)コーディングされる。CABACの通常のコーディングモードは、図14の「通常の算術エンコーダ」分岐によって示される。バイパスモードは、図14の「バイパス算術エンコーダ」分岐によって示される。
例として、第2インデックスの第1binは、CABACの通常のコーディングモードを使用して(第2インデックスのすべての発生のコーディングの後に更新される確率推定を使用して)コーディングされ、他のbinは、CABACのバイパスモードを使用して(更新されない等しい確率を使用して)コーディングされる。この場合、第1インデックスはCABACによってビットストリームに含められ(または、ビットストリームからデコーダによって解析され)、二値化された第1インデックスの第1binは、CABACの通常のコーディングモードを使用する第1確率推定モデルを使用してCABACによってコーディングされる。二値化された第1インデックスの残りのbinは、CABACのバイパスモードを使用してコーディングされる。第2インデックスは、CABACによってビットストリームに含められ(または、ビットストリームからデコーダによって解析され)、二値化第2インデックスの第1binは、CABACの通常のコーディングモードを使用する第2確率推定モデルを使用してCABACによってコーディングされる。二値化第2インデックスの残りのbinは、CABACのバイパスモードを使用してコーディングされる。
別の例として、第1インデックスの第1binおよび第2インデックスの第1binは、CABACの通常のコーディングモードを使用してコーディングされ、同一の確率推定モデルが使用される。確率推定モデルは、第1インデックスをコーディングした後、および第2インデックスをコーディングした後に更新される。この場合、第1インデックスはCABACによってビットストリームに含められ(または、ビットストリームからデコーダによって解析され)、二値化された第1インデックスの第1binは、CABACの通常のコーディングモードを使用する第1確率推定モデルを使用してCABACによってコーディングされる。二値化された第1インデックスの残りのbinは、CABACのバイパスモードを使用してコーディングされる。第2インデックスは、CABACによってビットストリームに含められ(または、ビットストリームからデコーダによって解析され)、二値化第2インデックスの第1binは、CABACの通常のコーディングモードを使用する第1確率推定モデルを使用してCABACによってコーディングされる。二値化第2インデックスの残りのbinは、CABACのバイパスモードを使用してコーディングされる。
確率推定モデルは、binが「0」の代わりに「1」の値を有する確率を記述する。確率推定モデルは、統計に適合するべく更新される。例えば、「1」を観察する確率が0.8である(「0」が0.2であることを意味する)場合、「1」の値を有するbinは、CABACによって、「0」より小さい実際のビットを使用してコーディングされる。
第1binは、二進表現の第1シンボルであり、例が以下の表に示される。
Figure 0007239697000005
実施形態8
サブブロック予測をブロックに適用すると決定される場合
1.分割方向を示すインジケータがビットストリームに含まれる。
2.ブロックのサイズが、指定された閾値以下である場合
2.1 初期第1インデックスが、最大値M(Mは正の整数、M≦N、Nはマージ候補リストにおける候補の数)を有し得るビットストリームに含まれる。
2.2 初期第2インデックスが、最大値M-m(mは正の整数、m<M、mは予め定義される値)を有し得るビットストリームに含まれる。
3.そうでない場合(ブロックのサイズが指定された閾値より大きい場合)
3.1 第1インデックスが、最大値P(Pは正の整数であり、M<P≦N、Nは動き情報候補リストにおける候補の数)を有し得るビットストリームに含まれる。
3.2 第2インデックスが、最大値P-m(mは正の整数、m<P、mは予め定義された値)を有し得るビットストリームに含まれる。
4.初期第2インデックスの値が初期第1インデックスの値以上である場合、初期第2インデックスの値は、予め定義された数だけインクリメントされ、更新された第2インデックスが取得される(例えば、予め定義された数は1であり得る)。
5.ブロックの第1サブブロック部分は、初期第1インデックスに基づいて決定される動き情報候補の適用によって予測される。
6.ブロックの第2サブブロック部分は、更新された第2インデックスに基づいて決定される動き情報候補の適用によって予測される。
PおよびMは正の整数値であり、M<P≦Nである。初期第1インデックスおよび初期第2インデックスは、以下のように二値化されてよい。
ブロックのサイズが、指定された閾値以下である場合:
(1)最大値Mに基づいて、切り捨てられたバイナリコーディングを適用することによって、第1インデックスは十進数から二進表現に変換される。
(2)最大値M―1に基づいて、切り捨てられたバイナリコーディングを適用することによって、第2インデックスは十進数から二進表現に変換される。
ブロックのサイズが、指定された閾値より大きい場合:
(1)最大値Pに基づいて、切り捨てられたバイナリコーディングを適用することによって、第1インデックスは十進数から二進表現に変換される。
(2)最大値P―1に基づいて、切り捨てられたバイナリコーディングを適用することによって、第2インデックスは十進数から二進表現に変換される。
閾値は、ビットストリームにおいてシグナリングされる正の整数であってよく、または、予め定義された数であってよく。
ブロックが閾値より大きいかどうかを決定するべく、ブロックの幅および高さの乗算が、閾値と比較されてよい(幅×高さ>閾値)。別の例において、幅および高さの両方が閾値と比較されてよく、その両方が閾値より大きい場合(幅>閾値AND高さ>閾値)、ブロックは閾値より大きいとみなされてよい。別の例において、幅および高さのいずれかが閾値より大きい場合(幅>閾値OR高さ>閾値)、ブロックは閾値より大きいとみなされてよい。
分割方向インジケーション、第1インデックスおよび第2インデックスは、ビットストリーム構造における特定の順序に従う必要はないことに留意されたい。
実現可能な実装において、以下の通りであってよい2つの分割方向があってよい。
(1)ブロックの左上隅から右下隅に分割する
(2)ブロックの右上隅から左下隅に分割する
別の実現可能な実装において、以下の通りであってよい4つの分割方向があってよい。
(1)ブロックの左上隅から右下隅に分割する
(2)ブロックの右上隅から左下隅に分割する
(3)ブロックの中央上ポイントから中央下ポイントに分割する
(4)ブロックの中央左ポイントから中央右ポイントに分割する
実現可能な実装において、分割方向インジケーションはビットストリームに含まれない(または、それから解析されない)ことに留意されたい。
実施形態9
サブブロック予測をブロックに適用することが決定される場合
1.初期第1インデックスが、最大値Mを有し得るビットストリームに含まれる。(Mは整数、M≦N、Nは動き情報候補リストにおける候補の数)
2.初期第2インデックスが、最大値Mを有し得るビットストリームに含まれる。
3.初期第2インデックスの値が第1インデックスの値以上である場合、初期第2インデックスの値は、予め定義された数だけインクリメントされ、更新された第2インデックスが取得される(例えば、予め定義された数は1であり得る)。
4.ブロックの第1サブブロック部分は、初期第1インデックスに基づいて決定される動き候補情報の適用によって予測される。
5.ブロックの第2サブブロック部分は、更新された第2インデックスに基づいて決定される動き候補情報の適用によって予測される。
MがN-1以下である場合、初期第1インデックスおよび第2インデックスの最大値は、Mに等しくなるように設定される。Nは動き情報候補リストのサイズ(動き候補の数)である。そうでない場合、第1インデックスおよび第2インデックスの最大値はN-1に等しくなるように設定される。
Nは、ITU‐T H.265およびVVCにおける方法に従って構築され得るマージ候補リストのサイズであることに留意されたい。実施形態において使用される第1インデックスおよび第2インデックスは、片予測候補のみから構成される異なる動き情報候補リストを指す。動き情報候補リストはマージ候補リストと同一でない。なぜなら、マージ候補リストは、サブブロック(または三角形)予測を適用するためにブロックが決定されるときに使用されることが禁止される双予測候補を含んでよいからである。この場合、各サブブロックは、片予測動き情報を適用する必要があり、したがって、第1インデックスおよび第2インデックスは、片予測候補のみを含む動き情報候補リストにおけるエントリを指す。動き情報候補リストは、マージ候補リストの構築において使用される同一の空間および時間隣接ブロックを使用することによって構築されてよい。別の例において、動き情報候補リストは、マージ候補リストにおける双予測候補を片予測候補に変換することによって、マージ候補リストに基づいて構築され得る。
実現可能な実装において、Nは、ビットストリームに含まれるインジケータから導出されてよく、Mは予め定義された数であってよい。
別の実現可能な実装において、Nは、ビットストリームに含まれるインジケータから導出されてよく、Mは、ビットストリームに含まれるインジケータから導出されてよい。この場合、Mの値を導出するために使用されるインジケータは、N-1より大きいM値を示すことができない。
具体例において、動き情報候補リストは、第1動き情報候補(第1候補)、第2動き情報候補(第2候補)および第3動き情報候補(第3候補)である3エントリを含むと想定する。第1および第2インデックスの値は、以下のような下の表に例として示される。
Figure 0007239697000006
第3動き情報候補は、ブロックの第1サブブロックにおいて適用されるために選択されることができないことに留意されたい。利点は、ビットストリームに含まれる第1インデックスおよび第2インデックスの最大値が同一であることである(上述の例では1)。したがって、同一の二値化方式(最大値1に基づく、切り捨てられたバイナリコーディング)が、第1インデックスおよび第2インデックスの両方を二値化するために適用されてよい。
第1および第2インデックスの最大値は同一となるように設定される。この特徴は、切り捨てられたバイナリコーディングが使用されるときに、第1および第2マージインデックスの両方について同一の二値化方式を使用する追加の利益を有する。
実施形態10
サブブロック予測をブロックに適用すると決定される場合
1.初期第1インデックスが、最大値Mを有し得るビットストリームに含まれる。(Mは整数、M≦N、Nは動き情報候補リストにおける候補の数)
2.初期第2インデックスが、最大値Mを有し得るビットストリームに含まれる。
3.ブロックの第1サブブロック部分は、初期第1インデックスに基づいて決定される動き候補情報の適用によって予測される。
4.ブロックの第2サブブロック部分は、初期第2インデックスに基づいて決定される動き候補情報の適用によって予測される。
実現可能な実装において、第1インデックスおよび第2インデックスは、動き情報候補リストにおけるエントリを選択するために使用され(同一リストが、第1インデックスおよび第2インデックスによって動き情報を選択するために使用される)、選択された動き情報候補はブロックの第1サブブロックおよび第2サブブロックに適用され、ブロックが予測される。
実現可能な実装において、動き情報候補リストは、片予測動き情報候補のみから構成されてよい。マージ候補リスト(ITU‐T H.265のマージ候補リストなど)は、片予測および双予測動き情報候補から構成されてよいことに留意されたい。したがって、実施形態において使用される動き情報候補リストは、ITU‐T H.265のマージ候補リストと異なり得る。
動き情報候補リストはマージ候補リストと同一でない。なぜなら、マージ候補リストは、サブブロック(または三角形)予測を適用するためにブロックが決定されるときに使用されることが禁止される双予測候補を含んでよいからである。この場合、各サブブロックは、片予測動き情報を適用する必要があり、したがって、第1インデックスおよび第2インデックスは、片予測候補のみを含む動き情報候補リストにおけるエントリを指す。動き情報候補リストは、マージ候補リストの構築において使用される同一の空間および時間隣接ブロックを使用することによって構築されてよい。別の例において、動き情報候補リストは、マージ候補リストにおける双予測候補を片予測候補に変換することによって、マージ候補リストに基づいて構築され得る。
第1および第2インデックスは、ビットストリーム構造における特定の順序に従う必要がないことに留意されたい。
インジケータ(インデックス)をビットストリームに含めることを除く同一の操作がエンコーダおよびデコーダにおいて実行されることに留意されたい。デコーダにおいて、ビットストリームからインジケータが解析され、インジケータはエンコーダによってビットストリームに含められる。
具体例において、6エントリを有する動き情報候補を含む動き情報候補リストを想定する。更に、動き情報候補リストにおける第1動き候補は、予測のために第1サブブロックに適用され、動き情報候補リストにおける第5動き候補は、予測のために第2サブブロックに適用されると想定する。
エンコーダ側:
1.第1インデックスの値を示すために、0の値がビットストリームに含まれる。(インデックス値0は動き情報候補リストにおける第1エントリに対応し、値1は第2エントリに対応し、以降も同様である。)
2.第2インデックスの値を示すために、3の値がビットストリームに含まれる。
3.第1インデックスは、動き情報候補リストにおける第1動き候補を指すと決定される。それは、ブロックの第1サブ部分を予測するために適用される。
4.第2インデックスは、動き情報候補リストにおける第4動き候補を指すと決定される。それは、ブロックの第2サブ部分を予測するために適用される。
デコーダ側:
1.第1インデックスの値を示すために、ビットストリームから0の値が解析される。
2.第2インデックスの値を示すために、ビットストリームから3の値が解析される。
3.第1インデックスは、動き情報候補リストにおける第1動き候補を指すと決定される。それは、ブロックの第1サブ部分を予測するために適用される。
4.第2インデックスは、動き情報候補リストにおける第4動き候補を指すと決定される。それは、ブロックの第2サブ部分を予測するために適用される。
別の具体例において、動き情報候補リストは、第1動き情報候補(第1候補)、第2動き情報候補(第2候補)および第3動き情報候補(第3候補)である3エントリを含むと想定する。 第1および第2インデックスの値は以下の通りである。
Figure 0007239697000007
実施形態11
サブブロック予測をブロックに適用することが決定される場合
1.分割方向を示すインジケータがビットストリームに含まれる。
2.初期第1インデックスが、最大値M(Mは整数であり、M≦N、Nは動き情報候補リストにおける候補の数である)を有し得るビットストリームに含まれる。
3.初期第2インデックスが、最大値M-m(mは整数であり、m<M、mは予め定義された値である)を有し得るビットストリームに含まれる。
4.初期第2インデックスの値が第1インデックスの値以上である場合、初期第2インデックスの値は、予め定義された数だけインクリメントされ、更新された第2インデックスが取得される(例えば、予め定義された数は1であり得る)。
5.ブロックの第1サブブロック部分は、初期第1インデックスに基づいて決定される動き候補情報の適用によって予測される。
6.ブロックの第2サブブロック部分は、更新された第2インデックスに基づいて決定される動き候補情報の適用によって予測される。
Nは、ITU‐T H.265およびVVCにおける方法に従って構築され得るマージ候補リストのサイズであることに留意されたい。実施形態において使用される第1インデックスおよび第2インデックスは、片予測候補のみから構成される異なる動き情報候補リストを指す。動き情報候補リストはマージ候補リストと同一でない。なぜなら、マージ候補リストは、サブブロック(または三角形)予測を適用するためにブロックが決定されるときに使用されることが禁止される双予測候補を含んでよいからである。この場合、各サブブロックは、片予測動き情報を適用する必要があり、したがって、第1インデックスおよび第2インデックスは、片予測候補のみを含む動き情報候補リストにおけるエントリを指す。動き情報候補リストは、マージ候補リストの構築において使用される同一の空間および時間隣接ブロックを使用することによって構築されてよい。別の例において、動き情報候補リストは、マージ候補リストにおける双予測候補を片予測候補に変換することによって、マージ候補リストに基づいて構築されてよい。初期第1インデックスの最大値はMに等しくなるように設定される。
実現可能な実装において、Nは、ビットストリームに含まれるインジケータから導出されてよく、Mは予め定義された数であってよい。
別の実現可能な実装において、Nは、ビットストリームに含まれるインジケータから導出されてよく、Mは、ビットストリームに含まれるインジケータから導出されてよい。この場合、Mの値を導出するために使用されるインジケータは、N-1より大きいM値を示すことができない。
別の実現可能な実装において、Nは、ビットストリームに含まれるインジケータから導出されてよく、MはNから導出されてよい。例えば、Mは以下のようにNから導出されてよい。
Nが1に等しい場合、Mは0に等しい(サブブロック予測は使用されず、サブブロック予測に対応するシンタックス要素はシグナリングされない)。N≧2である場合、MはNに等しい。例えば、Mは、以下の表に従ってNから導出されてよい。
Figure 0007239697000008
別の実現可能な実装において、Nは、ビットストリームに含まれるインジケータから導出されてよく、MはNから導出されてよい。例えば、Mは以下のようにNから導出されてよい。
Nが1に等しい場合、Mは0に等しい(サブブロック予測は使用されず、サブブロック予測に対応するシンタックス要素はシグナリングされない)。
N≧2かつN≦Kである場合、MはNに等しく、Kは予め定義された値の整数である(例えば、Kは5に等しくてよい)。N>Kである場合、MはKに等しい。例えば、Mは、以下の表に従ってNから導出されてよい(Kは5に等しい)。
Figure 0007239697000009
実施形態12
サブブロック予測をブロックに適用すると決定される場合
1.分割方向を示すインジケータがビットストリームに含まれる。
2.初期第1インデックスが、最大値Mを有してよいビットストリームに含まれる(Mは整数)。
3.初期第2インデックスが、最大値M-m(mは整数であり、m<M、mは予め定義された値である)を有し得るビットストリームに含まれる。
4.初期第2インデックスの値が第1インデックスの値以上である場合、初期第2インデックスの値は、予め定義された数だけインクリメントされ、更新された第2インデックスが取得される(例えば、予め定義された数は1であり得る)。
5.ブロックの第1サブブロック部分は、初期第1インデックスに基づいて決定される動き候補情報の適用によって予測される。
6.ブロックの第2サブブロック部分は、更新された第2インデックスに基づいて決定される動き候補情報の適用によって予測される。
実施形態において使用される第1インデックスおよび第2インデックスは、片予測候補のみから構成される異なる動き情報候補リストを指す。動き情報候補リストはマージ候補リストと同一でない。なぜなら、マージ候補リストは、サブブロック(または三角形)予測を適用するためにブロックが決定されるときに使用されることが禁止される双予測候補を含んでよいからである。この場合、各サブブロックは、片予測動き情報を適用する必要があり、したがって、第1インデックスおよび第2インデックスは、片予測候補のみを含む動き情報候補リストにおけるエントリを指す。動き情報候補リストは、マージ候補リストの構築において使用される同一の空間および時間隣接ブロックを使用することによって構築されてよい。別の例において、動き情報候補リストは、マージ候補リストにおける双予測候補を片予測候補に変換することによって、マージ候補リストに基づいて構築され得る。初期第1インデックスの最大値はMである。
実現可能な実装において、Mは、ビットストリームに含まれるインジケータから導出されてよい。
Mは、ITU‐T H.265およびVVCにおける方法に従って構築され得るマージ候補リストのサイズである整数値Nに依存してよい。
別の実現可能な実装において、Nは、ビットストリームに含まれるインジケータから導出されてよく、Mは、予め定義された数であってよい。
別の実現可能な実装において、Nは、ビットストリームに含まれるインジケータから導出されてよく、MはNから導出されてよい。例えば、Mは以下のようにNから導出されてよい。
Nが1に等しい場合、Mは2に等しい(いくつかの例では、サブブロックモードは、更新された第2インデックスに等しくない初期第1インデックスを必要としてよい)。N≧2である場合、MはNに等しい。例えば、Mは、以下の表に従ってNから導出されてよい。
Figure 0007239697000010
別の実現可能な実装において、Nは、ビットストリームに含まれるインジケータから導出されてよく、MはNから導出されてよい。例えば、Mは以下のようにNから導出されてよい。
Nが1に等しい場合、Mは2に等しい(いくつかの例では、サブブロックモードは、更新された第2インデックスに等しくない初期第1インデックスを必要としてよい)。
N≧2かつN≦Kである場合、MはNに等しく、Kは予め定義された値の整数である(例えば、Kは5に等しくてよい)。N>Kである場合、MはKに等しい。例えば、Mは、以下の表に従ってNから導出されてよい(Kは5に等しい)。
Figure 0007239697000011
Nの値(マージ候補リストのサイズ)は、M(初期第1インデックスの最大値)の値未満であってよいことに留意されたい。
図15は本願のインター予測方法を示す。インター予測方法は、予測方法、例えば三角形予測モードなど、サブブロックベースのイメージブロックについて実行される。
三角形予測モードにおいて、現在のブロックは、第1予測サブブロックおよび第2予測サブブロック、例えば、図10Aまたは図10BにおけるPUおよびPUを含む。本願はまた、異なるサブブロックベースの予測方法、例えば、図11に示される予測モードに基づいて実装されてよいことに留意されたい。
S1501:少なくとも1つのインジケータを解析して現在のブロックの予測モードを決定する。
概して、インター予測はいくつかのインター予測モードを含む。目標インター予測モードは、異なる基準、例えば、RDO手順を使用してエンコーダ側において選択され、ビットストリームにおいて1または複数のインジケータとしてエンコードされる。デコーダ側は、ビットストリームを解析して、1または複数のインジケータの値を取得し、1または複数のインジケータの値に従って目標インター予測モードを決定する。 実現可能な実装において、インジケータは予測モードインデックスであってよい。別の実現可能な実装において、いくつかのインジケータが組み合わされて予測モードが決定される。 現在のブロックの決定された予測モードが三角形予測モードである場合、本方法の手順が継続する。
S1502:現在のブロックについての候補リストを取得する。
候補リストはマージモード候補リストから取得される。例として、マージモード候補リストの構築、および、現在のブロックの三角形予測についての片予測候補リストの構築については、上の章を参照してよい。三角形予測についての候補リストはマージモード候補リストから導出されるからであることに留意されたい。実現可能な実装において、候補リストは独立のリストでなくてよい。候補リストにおける候補は、マージモード候補リストにおける候補を指すインジケータによって表されてよい。段階S1502は、第1予測サブブロックおよび/または第2予測サブブロックの予測情報インデックスを解析した後に実装されてよいことに留意されたい。それは本願において限定されるものではない。
S1503:ビットストリームから第1インデックスを解析する。
第1インデックスは、第1予測サブブロックの予測情報を取得するために使用される。例として、ビットストリームから第1インデックスを表すシンタックス要素を解析し、第1インデックスに従って候補リストにおいて項目を位置特定し、第1予測サブブロックの予測情報として項目を取得する。
S1504:ビットストリームから第2インデックスを解析する。第2インデックスは、第2予測サブブロックの予測情報を取得するために使用される。例として、ビットストリームから第2インデックスを表す別のシンタックス要素を解析する。
S1505:第1インデックスを第2インデックスと比較する。
S1506A:第2インデックスが第1インデックス未満である場合、第2インデックスに従って候補リストにおいて項目を位置特定し、第2予測サブブロックの予測情報として項目を取得する。
S1506B:第2インデックスが第1インデックス以上である場合、第2インデックスを調節し、次に、調節された第2インデックスに従って第2予測サブブロックの予測情報を取得する。
段階S1506Aと同様に、調節された第2インデックスに従って第2予測サブブロックの予測情報を取得することは、調節された第2インデックスに従って候補リストにおける項目を位置特定し、第2予測サブブロックの予測情報として項目を取得することを含む。
実現可能な実装において、第2インデックスを調節することは、第2インデックスをmだけインクリメントすることであってよく、mは正の整数である。実現可能な実装において、mは1であってよい。
別の実現可能な実装において、第2インデックスを調節することは、第2インデックスの解析された値に基づく他の計算であってよく、第2インデックスの調節された値は解析された値とは異なる。
具体的な実装において、段階S1505、S1506A、およびS1506Bは、以下のように説明されてよい。それぞれ、第1予測サブブロックおよび第2予測サブブロックについて、(調節された)第1インデックスおよび第2インデックスである変数idxmおよびidxnが、第1インデックス(merge_triangle_idx0)の解析された値および第2インデックス(merge_triangle_idx1)の解析された値を使用して、
idxm=merge_triangle_idx0
idxn=merge_triangle_idx1+(merge_triangle_idx1>=idxm)?1:0
のように導出されると想定する。
別の実装において、idxnはまた、merge_triangle_idx1+(merge_triangle_idx1>idxm)?1:0のように導出されてよいことに留意されたい。同様に、第2インデックスが第1インデックスに等しい場合、S1506AまたはS1506Bにおけるアクションは代替的に、種々の実施形態に基づいて実行されてよいが、本願において限定されるものではない。
切り捨てられた単進符号に従って第1インデックスが二値化される実現可能な実装において、第2インデックスは、切り捨てられた単進符号に従って二値化される。
二値化された第1インデックスの第1binが、CABACの通常のコーディングモードを使用してコーディングされる実現可能な実装において、二値化第2インデックスの第1binは、CABACの通常のコーディングモードを使用してコーディングされる。
二値化された第1インデックスの非第1binが、CABACのバイパスコーディングモードを使用してコーディングされる実現可能な実装において、二値化第2インデックスの非第1binは、CABACのバイパスコーディングモードを使用してコーディングされる。非第1binとは、第1binを除く、二値化された第1インデックス(または二値化第2インデックス)の任意の他のbinを意味する。
S1507:第1予測サブブロックの予測情報および第2予測サブブロックの予測情報に基づいて現在のブロックの予測値を取得する。
第1予測サブブロックの予測情報および第2予測サブブロックの予測情報を取得した後に、現在のブロックの予測値が、上の章で説明されたような三角形予測方法の構築方法に基づいて取得されてよい。
実現可能な実装において、予測方法は更に、ビットストリームから方向インジケータを解析する段階を備え、方向インジケータは、現在のブロックの分割方向を示すために使用される。例えば、方向インジケータが0であるとき、PUおよびPUは、図10Aまたは図10Bの左の図として示される分割方向によって分割され、方向インジケータが1であるとき、PUおよびPUは、図10Aまたは図10Bの右の図として示される分割方向によって分割される。
実現可能な実装においては、ビットストリームから第1インデックスを解析する前にビットストリームから方向インジケータを解析し、別の実現可能な実装においては、調節された第2インデックスを導出した後にビットストリームから方向インジケータを解析することに留意されたい。実装される順序は、本願に限定されるものではない。このことは、方向インジケータが、ビットストリームによって異なる位置に保持されてよいことを意味する。
図16は本願の別のインター予測方法を示す。第1インデックスおよび/または第2インデックスのコードワード設計は、第1インデックスおよび/または第2インデックスの最大許容値に基づくことに留意されたい。デコーダ側は、第1インデックスおよび/または、第2インデックスの最大許容値を取得することなく、第1インデックスおよび/または第2インデックスを正常に解析することができない。
実現可能な実装において、第1インデックスおよび/または第2インデックスの最大許容値は、予め設定されたプロトコル、例えば、規格における予め設定された値に従って、エンコーダ側およびデコーダ側の両方によって取得される。この場合、最大許容値を表すためのインジケータがシグナリングされない。
別の実現可能な実装において、最大許容値を表すための1または複数のインジケータがビットストリームにおいてシグナリングされる。そのため、デコーダ側は、ビットストリームを解析することによって、エンコーダ側と同一の値を取得できる。
例として、第1予測サブブロックおよび第2予測サブブロックは、同一の候補リストを共有し、第1インデックスおよび/または第2インデックスの最大許容値は、候補リストの長さとみなされてよいことに留意されたい。
候補リストの長さは、高レベルシンタックスとしてビットストリームにおいてエンコードされてよく、例えば、シーケンスパラメータセット、画像パラメータセット、画像ヘッダ、またはスライスヘッダなどに含まれてよいことに留意されたい。この場合、候補リストの長さは、段階S1501の前に決定されてよい。
候補リストの長さはまた、ブロックまたはPUレベルでエンコードされてよい。この場合、候補リストの長さは、段階S1502と段階S1501との間に決定されてよい。候補リストの長さは以下のように決定される。
S1508:第1の数を解析して候補リストの第1の長さを決定する。実現可能な実装において、第1の数はビットストリームから直接解析される。
別の実現可能な実装において、いくつかのシンタックスがビットストリームから解析され、解析されたシンタックスは組み合わされて第1の数が決定される。
例として、第1の長さは、候補リストにおけるマージモードについての候補予測情報の最大数である。
上の章で説明されたように、三角形予測モードの候補リストはマージモードの候補リストから導出される。マージモードインデックスはまた、第1インデックスおよび/または第2インデックスとして使用されてよい。この場合、三角形予測モードの候補リストは、マージモードの候補リストの一部とみなされてよい。例えば図12に示されるように、三角形予測モードの候補リストにおける各候補は、マージモードの候補リストにおける片予測動き情報に対応する。そして、マージモードおよび三角形予測モードの候補予測情報の最大数は異なってよい。
S1509:第1の数に基づいて候補リストの第2の長さを導出する。
第2の長さは、候補リストにおけるサブブロックベースの予測モードの候補予測情報の最大数である。サブブロックベースの予測モードは三角形予測モードまたは幾何予測モードである。予測モードは、矩形または非矩形(台形)モードを含む予測モードに基づく他のサブブロックであり得る。そして、三角形予測モードおよび幾何予測モードは片予測モードとして統合され得る。これも実現可能な実装に関与し得る。
三角形予測モードの候補リストはマージモードの候補リストから導出されるので、第1の長さは第2の長さ以上である。
実現可能な実装において、第2の長さは、予め設定されたデルタ値を第1の数から減算することによって取得されてよい。
別の実現可能な実装において、第2の長さは、デルタ値を第1の数から減算することによって取得されてよく、デルタ値はビットストリームから解析される。
図12に示されるように、片予測候補リストは三角形予測モードについて構築され、双予測候補リストはマージモードについて構築されることに留意されたい。本願において、インデックスによって示される片予測候補リストにおける各動き情報は、TPMについての候補である。インデックスによって示される双予測候補リストにおける各動き情報セット(List0の動き情報、および、List1の動き情報)は、マージモードについての候補である。実施形態はまた、以下のように説明されてよい。
候補リストはマージモードの候補リストであり、したがって、マージモードインデックスが、候補リストにおける候補を示すために使用されると想定する。
S1508':第1の数を解析して、候補リストにおける最大許容候補インデックスを決定する。
最大許容候補インデックスは、マージモードについての最大インデックスであってよい。換言すれば、それはマージモードインデックスの最大許容値である。
S1509':最大許容候補インデックスに基づいて最大値インデックスを取得する。
最大値インデックスは、第1インデックスおよび第2インデックス(図15の実施形態において説明されるものと同一のインデックス)についての最高限度を示すために使用される。
本願によれば、第1インデックスおよび第2インデックスが同一である場合、それは、サブブロックベースの予測モードについて冗長であることに留意されたい。したがって、第1インデックスが最高限度MAXを有する場合、第2インデックスがビットストリームから解析されるとき、第2インデックスは、最高限度MAX-mを有する。mは正の整数であり、例えば、mは本実施形態において1であってよい。そして、本実施形態における調節された第2インデックスは、最高限度と同一であってよいことにも留意されたい。
実現可能な実装において、最大許容候補インデックスと予め定められた数との間の計算によって最大インデックスを取得する。例えば、最大インデックスは、最大許容候補インデックス-予め定められた数に等しい。別の例において、最大インデックスは、予め定められた数-最大許容候補インデックス+オフセット値に等しい。
別の実現可能な実装において、第2の数を解析して、最大許容候補インデックスと最大インデックスとの間の差を導出し、最大許容候補インデックスと差との間の計算によって最大インデックスを取得する。例えば、最大インデックスは、最大許容候補インデックス-当該差に等しい。別の例において、最大インデックスは、当該差-最大許容候補インデックス+オフセット値に等しい。
別の実施形態において、最大インデックスおよび最大許容候補インデックスは別個にシグナリングされる。例えば、S1508またはS1508'と同様に、第3の数を解析して最大インデックスを決定する。
そして、最大インデックスおよび最大許容候補インデックスが別個にシグナリングされるか、または、従属的にシグナリングされるかに関らず、実現可能な実装において、マージモードの最大インデックスである最大許容候補インデックスは、最大インデックス以上である。
具体的な実装において、max_num_merge_cand_minus_max_num_triangle_candは、MaxNumMergeCandから減算されたスライスにおいて(または、種々の実施形態によれば、画像において)サポートされる三角形マージモード候補の最大数を指定する。six_minus_max_num_merge_candは、6から減算されたスライスにおいてサポートされるマージ動きベクトル予測(MVP)候補の最大数を指定する。マージMVP候補の最大数、MaxNumMergeCandは、MaxNumMergeCand=6-six_minus_max_num_merge_candとして導出される。三角形マージモード候補の最大数、MaxNumTriangleMergeCandは、MaxNumTriangleMergeCand=max_num_merge_cand_minus_max_num_triangle_candとして導出される。
max_num_merge_cand_minus_max_num_triangle_candは、ビットストリームによって保持されて(存在して)よいので、max_num_merge_cand_minus_max_num_triangle_candの値を解析できる。MaxNumTriangleMergeCandの値は、2からMaxNumMergeCandの範囲にあるものとすることに留意されたい。
異なる条件に基づいて、max_num_merge_cand_minus_max_num_triangle_candは、ビットストリームによって保持されない(存在しない)ことがあってよい。この場合、sps_triangle_enabled_flagが0に等しい、または、MaxNumMergeCandが2未満であるとき、MaxNumTriangleMergeCandは、0に等しくなるように設定される。このことは、三角形マージモードが現在のスライス(または、種々の実施形態によれば、現在の画像)に許容されないことを意味する。sps_triangle_enabled_flagが1に等しく、MaxNumMergeCandが2以上であるとき、max_num_merge_cand_minus_max_num_triangle_candは、pps_max_num_merge_cand_minus_max_num_triangle_cand_plus1-1に等しいと推論される。ここで、sps_triangle_enabled_flagは、シーケンスパラメータセットに含まれ、TPMが許容されるかどうかを示すシンタックス要素であり、pps_max_num_merge_cand_minus_max_num_triangle_cand_plus1は、画像パラメータセットに含まれるシンタックス要素である。pps_max_num_merge_cand_minus_max_num_triangle_cand_plus1が0に等しいことは、max_num_merge_cand_minus_max_num_triangle_candが、画像パラメータセットを参照するスライス(または種々の実施形態によれば画像の画像ヘッダ)のスライスヘッダに存在することを指定する。pps_max_num_merge_cand_minus_max_num_triangle_cand_plus1が0より大きいことは、max_num_merge_cand_minus_max_num_triangle_candが、画像パラメータセットを参照するスライス(または種々の実施形態によれば画像の画像ヘッダ)のスライスヘッダに存在しないことを指定する。pps_max_num_merge_cand_minus_max_num_triangle_cand_plus1の値は、0からMaxNumMergeCand-1の範囲にあるものとする。
代替的に、第1の長さおよび第2の長さは、別個にシグナリングされてよく、このことは、段階S1509が第2の数を解析して候補リストの第2の長さを決定することであってよいことを意味する。
同様に、実現可能な実装において、第2の数は、ビットストリームから直接解析される。そして、別の実現可能な実装において、いくつかのシンタックスがビットストリームから解析され、解析されたシンタックスが組み合わされて第2の数が決定される。
ビットストリームから解析されて、第1の長さおよび/または第2の長さを直接的または間接的に示す任意の情報(例えば、2つの長さの間の差の値)は、シーケンスパラメータセット、画像パラメータセット、画像ヘッダ、またはスライスヘッダなどにおけるビットストリームによって保持できることに留意されたい。図17は本願のインター予測装置1700を示す。
現在のブロックが第1予測サブブロックおよび第2予測サブブロックを含む装置1700は、ビットストリームから第1インデックスを解析することであって、第1インデックスは、第1予測サブブロックの予測情報を取得するために使用される、ことと、ビットストリームから第2インデックスを解析することとを行うよう構成される解析モジュール1701と、第1インデックスを第2インデックスと比較し、第2インデックスが第1インデックス以上である場合に第2インデックスを調節するよう構成される位置特定モジュール1702と、調節された第2インデックスに従って第2予測サブブロックの予測情報を取得するよう構成される取得モジュール1703とを備える。
実現可能な実装において、位置特定モジュール1702は、第2インデックスをmだけインクリメントするよう構成され、mは正の整数である。実現可能な実装において、mは1である。
実現可能な実装において、ビットストリームから第1インデックスを解析する前に、解析モジュール1701は、少なくとも1つのインジケータを解析して、現在のブロックの予測モードを決定するよう更に構成され、予測モードは三角形予測モードまたは幾何予測モードである。予測モードは、矩形または非矩形(台形)モードを含む予測モードに基づく他のサブブロックであり得る。そして、三角形予測モードおよび幾何予測モードは片予測モードとして統合され得る。これも実現可能な実装に関与し得る。
実現可能な実装において、位置特定モジュール1702は更に、現在のブロックについての候補リストを取得するよう構成される。
実現可能な実装において、第1予測サブブロックの予測情報は、第1インデックスに従って候補リストから取得される。
実現可能な実装において、第2予測サブブロックの予測情報は、調節された第2インデックスに従って候補リストから取得される。実現可能な実装において、候補リストはマージモードの候補リストである。
実現可能な実装において、解析モジュール1701は、第1の数を解析して、候補リストにおける最大許容候補インデックスを決定し、最大許容候補インデックスに基づいて最大インデックスを取得するよう構成され、第1インデックスは最大インデックスより大きくない。
実現可能な実装において、解析モジュール1701は、最大許容候補インデックスと予め定められた数との間の計算によって最大インデックスを取得するよう構成される。
実現可能な実装において、解析モジュール1701は、第2の数を解析して、最大許容候補インデックスと最大インデックスとの間の差を導出し、最大許容候補インデックスと差との間の計算によって最大インデックスを取得するよう構成される。
実現可能な実装において、解析モジュール1701は、第3の数を解析して最大インデックスを決定するよう構成される。
実現可能な実装において、最大許容候補インデックスは、最大インデックス以上である。
実現可能な実装において、調節された第2インデックスに従って第2予測サブブロックの予測情報を取得した後に、取得モジュール1703は更に、第1予測サブブロックの予測情報および第2予測サブブロックの予測情報に基づいて現在のブロックの予測値を取得するよう構成される。
実現可能な実装において、第1インデックスまたは第2インデックスは、切り捨てられた単進符号に従って二値化される。
実現可能な実装において、二値化された第1インデックスまたは第2インデックスの第1binは、CABACの通常のコーディングモードを使用してコーディングされる。
実現可能な実装において、二値化された第1インデックスまたは第2インデックスの非第1binは、CABACのバイパスコーディングモードを使用してコーディングされる。
実現可能な実装において、解析モジュール1701は、ビットストリームから方向インジケータを解析するよう構成され、方向インジケータは、現在のブロックの分割方向を示すために使用される。
図18は、本願のインター予測装置1800を示し、装置1800はデコーダまたはエンコーダであってよい。装置1800は、1または複数のプロセッサ1801と、プロセッサに連結されて、プロセッサによって実行するためのプログラムを格納する非一時的コンピュータ可読記憶媒体1802とを備え、プログラムは、プロセッサによって実行されるとき、図15または図16における方法を実行するようデコーダを構成する。
別の実施形態において、コンピュータプログラム製品は、コンピュータまたはプロセッサ上で実行されるときに図15または図16における方法を実行するためのプログラムコードを備える。
別の実施形態において、非一時的コンピュータ可読媒体はプログラムコードを保持し、プログラムコードはコンピュータデバイスによって実行されるとき、コンピュータデバイスに図15または図16における方法を実行させる。
以下は、上述の実施形態に示されるようなエンコーディング方法およびデコーディング方法のアプリケーションおよびそれらを用いたシステムの説明である。
図19は、コンテンツ配布サービスを実現するためのコンテンツ供給システム3100を示すブロック図である。このコンテンツ供給システム3100は、キャプチャデバイス3102、端末デバイス3106を含み、任意で、ディスプレイ3126を含む。キャプチャデバイス3102は、通信リンク3104を介して端末デバイス3106と通信する。通信リンクは、上述した通信チャネル13を含んでよい。通信リンク3104は、限定されるものではないが、WIFI(登録商標)、イーサネット(登録商標)、ケーブル、無線(3G/4G/5G)、USBまたはこれらの任意の種類の組み合わせなどを含む。
キャプチャデバイス3102は、データを生成し、上記の実施形態に示されるようなエンコーディング方法により、データをエンコードしてよい。代わりに、キャプチャデバイス3102は、データをストリーミングサーバ(図には示されていない)に配信してよく、サーバは、データをエンコードして、エンコード済みのデータを端末デバイス3106に伝送する。キャプチャデバイス3102は、限定されるものではないが、カメラ、スマートフォンまたはパッド、コンピュータまたはラップトップ、ビデオ会議システム、PDA、車載デバイスまたはこれらのいずれかの組み合わせなどを含む。例えば、上述したように、キャプチャデバイス3102はソースデバイス12を含んでよい。データがビデオを含む場合、キャプチャデバイス3102に含まれるビデオエンコーダ20は、ビデオエンコーディング処理を実際に実行してよい。データがオーディオ(すなわち、音声)を含む場合、キャプチャデバイス3102に含まれるオーディオエンコーダは、オーディオエンコーディング処理を実際に実行してよい。いくつかの実際のシナリオについて、キャプチャデバイス3102は、これらを一緒に多重化することにより、エンコードされたビデオおよびオーディオデータを配信する。他の実際のシナリオについて、例えば、ビデオ会議システムにおいて、エンコードされたオーディオデータおよびエンコードされたビデオデータは多重化されない。キャプチャデバイス3102は、エンコードされたオーディオデータおよびエンコードされたビデオデータを別個に端末デバイス3106に配信する。
コンテンツ供給システム3100において、端末デバイス310は、エンコード済みのデータを受信および再生する。端末デバイス3106は、データ受信および復元機能を有するデバイス、例えば、上述したエンコード済みのデータをデコードすることが可能なスマートフォンまたはパッド3108、コンピュータまたはラップトップ3110、ネットワークビデオレコーダ(NVR)/デジタルビデオレコーダ(DVR)3112、TV3114、セットトップボックス(STB)3116、ビデオ会議システム3118、ビデオ監視システム3120、パーソナルデジタルアシスタント(PDA)3122、車載デバイス3124またはこれらのいずれかの組み合わせなどであってよい。例えば、上述したように、端末デバイス3106はデスティネーションデバイス14を含んでよい。エンコード済みのデータがビデオを含む場合、端末デバイスに含まれるビデオデコーダ30は、ビデオデコーディングを実行することを優先させる。エンコード済みのデータがオーディオを含む場合、端末デバイスに含まれるオーディオデコーダは、オーディオデコーディング処理を実行することを優先させる。
ディスプレイを有する端末デバイス、例えば、スマートフォンまたはパッド3108、コンピュータまたはラップトップ3110、ネットワークビデオレコーダ(NVR)/デジタルビデオレコーダ(DVR)3112、TV3114、パーソナルデジタルアシスタント(PDA)3122または車載デバイス3124について、端末デバイスは、デコードされたデータをそのディスプレイに入力できる。ディスプレイを搭載していない端末デバイス、例えば、STB3116、ビデオ会議システム3118またはビデオ監視システム3120について、外部ディスプレイ3126は、デコードされたデータを受信および示すために、内部でコンタクトされる。
このシステムにおける各デバイスがエンコーディングまたはデコーディングを実行するとき、上述の実施形態に示されるような画像エンコーディングデバイスまたは画像デコーディングデバイスが使用されてよい。
図20は、端末デバイス3106の例の構造を示す図である。端末デバイス3106がキャプチャデバイス3102からストリームを受信した後に、プロトコル処理ユニット3202は、ストリームの伝送プロトコルを解析する。プロトコルは、限定されるものではないが、リアルタイムストリーミングプロトコル(RTSP)、ハイパーテキストトランスファープロトコル(HTTP)、HTTPライブストリーミングプロトコル(HLS)、MPEG-DASH、リアルタイムトランスポートプロトコル(RTP)、リアルタイムメッセージングプロトコル(RTMP)、または、これらの任意の種類の組み合わせなどを含む。
プロトコル処理ユニット3202がストリームを処理した後に、ストリームファイルが生成される。当該ファイルは、逆多重化ユニット3204に出力される。逆多重化ユニット3204は、多重化されたデータをエンコードされたオーディオデータおよびエンコードされたビデオデータに分離できる。上述したように、いくつかの実際のシナリオについて、例えば、ビデオ会議システムでは、エンコードされたオーディオデータおよびエンコードされたビデオデータは多重化されていない。この状況において、エンコード済みのデータは、逆多重化ユニット3204を介することなくビデオデコーダ3206およびオーディオデコーダ3208へ送信される。
逆多重化処理を介して、ビデオエレメンタリストリーム(ES)、オーディオESおよび任意で字幕が生成される。上述の実施形態において説明したように、ビデオデコーダ30を含むビデオデコーダ3206は、上述の実施形態に示されるようなデコーディング方法により、ビデオESをデコードしてビデオフレームを生成し、このデータを同期ユニット3212に入力する。オーディオデコーダ3208は、オーディオESをデコードしてオーディオフレームを生成し、このデータを同期ユニット3212に入力する。代わりに、ビデオフレームは、それを同期ユニット3212に入力する前に、(図20には示されていない)バッファに格納されてよい。同様に、オーディオフレームは、それを同期ユニット3212に入力する前に、(図20には示されていない)バッファに格納されてよい。
同期ユニット3212は、ビデオフレームおよびオーディオフレームを同期させて、ビデオ/オーディオをビデオ/オーディオディスプレイ3214に供給する。例えば、同期ユニット3212は、ビデオおよびオーディオ情報の提示を同期させる。情報は、コードされたオーディオおよびビジュアルデータの提示に関するタイムスタンプ、および、データストリームそのものの配信に関するタイムスタンプを用いて構文でコードしてよい。
ストリームに字幕が含まれている場合、字幕デコーダ3210は、字幕をデコードし、それをビデオフレームおよびオーディオフレームと同期させ、ビデオ/オーディオ/字幕をビデオ/オーディオ/字幕ディスプレイ3216に供給する。
本発明は、上記のシステムに限定されるものではなく、上述の実施形態における画像エンコーディングデバイスまたは画像デコーディングデバイスのいずれかは、他のシステム、例えば車載システムに組み込まれてよい。
[数学演算子]
本願において使用される数学演算子は、Cプログラミング言語において使用されるものと同様である。しかしながら、整数除算および算術シフト演算の結果はより厳密に定義され、べき乗および実数値除算などの追加の演算が定義される。番号およびカウントの方式は概して0から始まり、例えば「第1」は0番目と同等であり、「第2」は1番目と同等であり、以降も同様である。
[算術演算子]
Figure 0007239697000012
[論理演算子]
以下の論理的演算子が次のように定義される。
x&&y xおよびyのブール論理「and」
x||y xおよびyのブール論理「or」
! ブール論理「not」
x?y:z xが真であるかまたは0に等しくない場合、yの値を評価し、そうでない場合、zの値を評価する。
[関係演算子]
以下の関係演算子を次のように定義する。
> より大きい
>= 以上
< より小さい
<= 以下
= = に等しい
!= に等しくない
関係演算子が、値「na」(非該当)を割り当てられているシンタックス要素または変数に適用される場合、値「na」は、そのシンタックス要素または変数の区別的な値として扱われる。値「na」は、任意の他の値に等しくないとみなされる。
[ビット単位演算子]
以下のビット単位演算子が次のように定義される。
& ビット単位の「and」。整数項に対して演算を行う場合、整数値の2の補数表現に対して演算を行う。別の項より少ないビットを含む二進項に対して演算を行う場合、そのより短い項は、0に等しいより上位のビットを追加することによって拡張される。
| ビット単位の「or」。整数項に対して演算を行う場合、整数値の2の補数表現に対して演算を行う。別の項より少ないビットを含む二進項に対して演算を行う場合、そのより短い項は、0に等しいより上位のビットを追加することによって拡張される。
^ ビット単位の「排他的or」。整数項に対して演算を行う場合、整数値の2の補数表現に対して演算を行う。別の項より少ないビットを含む二進項に対して演算を行う場合、そのより短い項は、0に等しいより上位のビットを追加することによって拡張される。
x>>y yの二進数だけの、xの2の補数整数表現の算術右シフト。この関数は、yの非負の整数値に関してのみ定義される。右シフトの結果として最上位ビット(MSB)にシフトされたビットは、シフト演算前のxのMSBに等しい値を有する。
x<<y yの二進数だけの、xの2の補数整数表現の算術左シフト。この関数は、yの非負の整数値に関してのみ定義される。左シフトの結果として最下位ビット(LSB)にシフトされたビットは、0に等しい値を有する。
[代入演算子]
以下の算術演算子は以下のように定義される。
= 代入演算子
++ インクリメント、すなわち、x++は、x=x+1と同等であり、配列インデックスにおいて使用されるとき、インクリメント演算の前の変数の値を評価する。
――デクリメント、すなわち、x――は、x=x-1と同等であり、配列インデックスにおいて使用されるとき、デクリメント演算の前の変数の値を評価する。
+= 指定された量のインクリメント、すなわち、x+=3は、x=x+3と同等である。
x+=(-3)は、x=x+(-3)と同等である。
-= 指定された量だけデクリメント、すなわち、x-=3は、x=x-3と同等である。
x-=(-3)は、x=x-(-3)と同等である。
[範囲表記]
値の範囲を指定するために以下の表記が使用される。
x=y..z xはyから始まるzまで(境界を含む)の整数値を取り、x、y、zは整数であり、zはyより大きい。
[数学関数]
以下の数学関数が定義される。
Figure 0007239697000013
Asin(x) -1.0から1.0の範囲(境界を含む)にある引数xを操作する正弦の逆三角関数であり、出力値は、-π÷2からπ÷2の範囲(境界を含む)にある(単位はラジアン)。
Atan(x) 引数xを操作する正接の逆三角関数であり、出力値は、-π÷2からπ÷2の範囲(境界を含む)にある(単位はラジアン)。
Figure 0007239697000014
Ceil(x) x以上の最小の整数
Clip1(x)=Clip3(0,(1<<BitDepth)-1,x)
Clip1(x)=Clip3(0,(1<<BitDepth)-1,x)
Figure 0007239697000015
Cos(x) ラジアンの単位である引数xに対して操作する余弦の三角関数
Floor(x) x以下の最大の整数
Figure 0007239697000016
Ln(x) xの自然対数(底をeとする対数、eは自然対数底定数2.718 281 828...)
Log2(x) 底を2とするxの対数
Log10(x) 底を10とするxの対数
Figure 0007239697000017
Figure 0007239697000018
Round(x)=Sign(x)*Floor(Abs(x)+0.5)
Figure 0007239697000019
Sin(x) ラジアンの単位である引数xを操作する正弦の三角関数
Figure 0007239697000020
Swap(x,y)=(y,x)
Tan(x) ラジアンの単位である引数xを操作する正接の三角関数
[演算の優先度の順位]
数式における優先度の順位が、括弧の使用によって明示的に示されないとき、以下の規則が適用される。
より高い優先度の演算は、より低い優先度の任意の操作の前に評価される。
同一の優先度の演算は、左から右に順に評価される。
下の表は、演算の優先度を最高から最低まで指定し、表においてより高い位置は、より高い優先度を示す。
Cプログラミング言語においても使用される演算子の場合、この明細書において使用される優先度の順序は、Cプログラミング言語において使用されるものと同一である。
表:最高(表の一番上)から最低(表の一番下)までの演算優先度
Figure 0007239697000021
[論理演算のテキストの説明]
テキストにおいて、論理演算のステートメントは、以下の形式で数学的に記載される。
if(条件0)
ステートメント0
else if(条件1)
ステートメント1
...
else/*残りの条件の情報についての記述*/
ステートメントn
以下の方式で記載されてよい。
...以下の通りである/...以下を適用する
- if 条件0,ステートメント0
- Otherwise,if 条件1,ステートメント1
- ...
-Otherwise(残りの条件の情報についての記述),ステートメントn
テキストにおける「if...Otherwise,if...Otherwise」ステートメントの各々は、直後に「if...」が続く「...以下の通りである」または「...以下を適用する」を用いて導入される。「if...Otherwise,if...Otherwise」の最後の条件は常に、「Otherwise,...」である。挟まれた「if...Otherwise,if...Otherwise」ステートメントは、「...以下の通りである」または「...以下を適用する」を最後の「Otherwise,...」とマッチさせることによって識別されてよい。
テキストにおいて、論理演算のステートメントは、以下の形式で数学的に記載される。
if(条件0a&&条件0b)
ステートメント0
else if(条件1a||条件1b)
ステートメント1
...
else
ステートメントn
以下の方式で記載されてよい。
...以下の通りである/...以下を適用する
-以下の条件のすべてが真である場合、ステートメント0:
-条件0a
-条件0b
そうでなければ、以下の条件の1または複数が真である場合、ステートメント1:
-条件1a
-条件1b
-...
そうでなければ、ステートメントn
テキストにおいて、論理演算のステートメントは、以下の形式で数学的に記載される。
if(条件0)
ステートメント0
if(条件1)
ステートメント1
以下の方式で記載され得る。
条件0であるとき、ステートメント0
条件1であるとき、ステートメント1
例えばエンコーダ20およびデコーダ30の実施形態、並びに、例えばエンコーダ20およびデコーダ30を参照して本明細書に記載された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組み合わせで実装されてよい。ソフトウェアにおいて実装される場合、機能は、コンピュータ可読媒体上に保存されるか、または、通信媒体を介して1または複数の命令もしくはコードとして送信され、ハードウェアベースの処理ユニットによって実行されてよい。コンピュータ可読媒体は、データ記憶媒体等の有形の媒体に対応するコンピュータ可読記憶媒体、または、例えば通信プロトコルに従った、コンピュータプログラムの1つの場所から別の場所への移動を容易にする任意の媒体を含む通信媒体を含んでよい。このように、コンピュータ可読媒体は、一般に、(1)非一時的な有形コンピュータ可読記憶媒体、または、(2)信号もしくは搬送波等の通信媒体に対応してよい。データ記憶媒体は、本開示に記載された技術の実装のための命令、コード、および/またはデータ構造を取得するために、1もしくは複数のコンピュータまたは1もしくは複数のプロセッサによってアクセスできる任意の利用可能な媒体であってよい。コンピュータプログラム製品は、コンピュータ可読媒体を含んでよい。
限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、フラッシュメモリ、または、命令もしくはデータ構造の形の所望のプログラムコードを保存するのに使用でき、コンピュータによってアクセスできる、任意の他の媒体を含むことができる。また、任意の接続が、適宜コンピュータ可読媒体と称される。例えば、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者線(DSL)、または、赤外線、無線、およびマイクロ波等の無線技術を用いて、ウェブサイト、サーバ、または他のリモートソースから命令が送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または、赤外線、無線、およびマイクロ波等の無線技術が媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含まず、その代わりに、非一時的な有形の記憶媒体を指すことが理解されるべきである。本明細書で使用されるディスク(Disk and disc)は、コンパクトディスク(CD)、レーザディスク、光ディスク、デジタル多用途ディスク(DVD)、フロッピディスク、およびブルーレイディスクを含み、ここで、通例、ディスク(disk)はデータを磁気的に再現するものであり、ディスク(disc)はデータをレーザによって光学的に再現するものである。上記の組み合わせもまた、コンピュータ可読媒体の範囲内に含まれるべきである。
命令は、1または複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルロジックアレイ(FPGA)、または他の同等の一体型もしくはディスクリートロジック回路等の1または複数のプロセッサによって実行されてよい。したがって、本明細書で使用される「プロセッサ」という用語は、前述の構造のいずれか、または、本明細書に記載の技術の実装に好適な任意の他の構造を指してよい。加えて、いくつかの態様では、本明細書に記載の機能は、エンコーディングおよびデコーディングのために構成されている専用ハードウェアおよび/またはソフトウェアモジュール内に提供されるか、または、組み合わされたコーデックに組み込まれてよい。また、本技術は、1もしくは複数の回路またはロジック要素において完全に実装することができる。
本開示の技術は、無線ハンドセット、集積回路(IC)またはICのセット(例えば、チップセット)を含む、多種多様なデバイスまたは装置において実装してよい。様々な構成要素、モジュール、またはユニットが、開示された技術を実行するように構成されているデバイスの機能的態様を強調するように本開示において記載されているが、異なるハードウェアユニットによる実現は必ずしも要求されない。むしろ、上述したように、好適なソフトウェアおよび/またはファームウェアと連動して、様々なユニットがコーデックハードウェアユニットにして組み合わされるか、または、上述したように、1または複数のプロセッサを含む相互運用ハードウェアユニットの集合によって提供されてよい。

Claims (40)

  1. 現在のブロックが第1予測サブブロックおよび第2予測サブブロックを含む、イメージブロックのための予測方法であって、
    ビットストリームから第1インデックスを解析する段階であって、前記第1インデックスは、前記第1予測サブブロックの予測情報を取得するために使用される、段階と、
    前記ビットストリームから第2インデックスを解析する段階と、
    前記第1インデックスを前記第2インデックスと比較する段階と、
    前記第2インデックスが前記第1インデックス以上である場合に前記第2インデックスを調節する段階と、
    調節された前記第2インデックスに従って前記第2予測サブブロックの予測情報を取得する段階と
    を備える予測方法。
  2. 前記第2インデックスを調節する段階は、
    前記第2インデックスをmだけインクリメントする段階であって、mは正の整数である、段階
    を含む、請求項1に記載の予測方法。
  3. mが1である、請求項2に記載の予測方法。
  4. ビットストリームから第1インデックスを解析する前に、前記予測方法は更に、
    少なくとも1つのインジケータを解析して、前記現在のブロックの予測モードを決定する段階であって、前記予測モードは三角形予測モードまたは幾何予測モードである、段階
    を備える、請求項1から3のいずれか一項に記載の予測方法。
  5. 前記予測方法は更に、
    前記現在のブロックについての候補リストを取得する段階
    を備える、請求項1から4のいずれか一項に記載の予測方法。
  6. 前記第1予測サブブロックの前記予測情報は、前記第1インデックスに従って前記候補リストから取得される、請求項5に記載の予測方法。
  7. 前記第2予測サブブロックの前記予測情報は、調節された前記第2インデックスに従って前記候補リストから取得される、請求項5または6に記載の予測方法。
  8. 前記候補リストはマージモードの候補リストである、請求項5から7のいずれか一項に記載の予測方法。
  9. 前記予測方法は更に、
    前記ビットストリームに含まれる少なくとも1つのインジケータにより示される第1の数に基づいて、前記候補リストにおける最大許容候補インデックスを決定する段階と、
    前記最大許容候補インデックスに基づいて最大インデックスを取得する段階であって、前記第1インデックスは前記最大インデックスより大きくない、段階と
    を備える、請求項8に記載の予測方法。
  10. 前記最大許容候補インデックスに基づいて前記最大インデックスを取得する段階は、
    前記最大許容候補インデックスと予め定められた数との間の計算によって前記最大インデックスを取得する段階
    を含む、請求項9に記載の予測方法。
  11. 前記最大許容候補インデックスに基づいて前記最大インデックスを取得する段階は、
    前記ビットストリームに含まれる少なくとも1つのインジケータにより示される第2の数に基づいて、前記最大許容候補インデックスと前記最大インデックスとの間の差を導出する段階と、
    前記最大許容候補インデックスと前記差との間の計算によって前記最大インデックスを取得する段階と
    を備える、請求項9に記載の予測方法。
  12. 前記予測方法は更に、
    前記ビットストリームに含まれる少なくとも1つのインジケータにより示される第3の数に基づいて、最大インデックスを決定する段階
    を備える、請求項1から8のいずれか一項に記載の予測方法。
  13. 前記最大許容候補インデックスは、前記最大インデックス以上である、請求項9から11のいずれか一項に記載の予測方法。
  14. 調節された前記第2インデックスに従って前記第2予測サブブロックの予測情報を取得した後に、前記予測方法は更に、
    前記第1予測サブブロックの前記予測情報および前記第2予測サブブロックの前記予測情報に基づいて前記現在のブロックの予測値を取得する段階
    を備える、請求項1から13のいずれか一項に記載の予測方法。
  15. 前記第1インデックスまたは前記第2インデックスは、切り捨てられた単進符号に従って二値化される、請求項1から14のいずれか一項に記載の予測方法。
  16. 二値化された前記第1インデックスまたは前記第2インデックスの第1binは、CABACの通常のコーディングモードを使用してコーディングされる、請求項15に記載の予測方法。
  17. 二値化された前記第1インデックスまたは前記第2インデックスの非第1binは、CABACのバイパスコーディングモードを使用してコーディングされる、請求項15または16に記載の予測方法。
  18. 前記ビットストリームから方向インジケータを解析する段階であって、前記方向インジケータは、前記現在のブロックの分割方向を示すために使用される、段階を更に備える、請求項1から17のいずれか一項に記載の予測方法。
  19. 現在のブロックが第1予測サブブロックおよび第2予測サブブロックを含む、インター予測のための装置であって、
    ビットストリームから第1インデックスを解析することであって、前記第1インデックスは、前記第1予測サブブロックの予測情報を取得するために使用される、ことと、
    前記ビットストリームから第2インデックスを解析することと
    を行うよう構成される解析モジュールと、
    前記第1インデックスを前記第2インデックスと比較し、
    前記第2インデックスが前記第1インデックス以上である場合に前記第2インデックスを調節する
    よう構成される位置特定モジュールと、
    調節された前記第2インデックスに従って前記第2予測サブブロックの予測情報を取得するよう構成される取得モジュールと
    を備える装置。
  20. 前記位置特定モジュールは、前記第2インデックスをmだけインクリメントするよう構成され、mは正の整数である、請求項19に記載の装置。
  21. mは1である、請求項20に記載の装置。
  22. ビットストリームから第1インデックスを解析する前に、前記解析モジュールは更に、
    少なくとも1つのインジケータを解析して、前記現在のブロックの予測モードを決定するよう構成され、前記予測モードは三角形予測モードまたは幾何予測モードである、請求項19から21のいずれか一項に記載の装置。
  23. 前記位置特定モジュールは更に、前記現在のブロックについての候補リストを取得するよう構成される、請求項19から22のいずれか一項に記載の装置。
  24. 前記第1予測サブブロックの前記予測情報は、前記第1インデックスに従って前記候補リストから取得される、請求項23に記載の装置。
  25. 前記第2予測サブブロックの前記予測情報は、調節された前記第2インデックスに従って前記候補リストから取得される、請求項23または24に記載の装置。
  26. 前記候補リストはマージモードの候補リストである、請求項23から25のいずれか一項に記載の装置。
  27. 前記解析モジュールは、
    前記ビットストリームに含まれる少なくとも1つのインジケータに示される第1の数に基づいて、前記候補リストにおける最大許容候補インデックスを決定し、
    前記最大許容候補インデックスに基づいて最大インデックスを取得する
    よう構成され、前記第1インデックスは前記最大インデックスより大きくない、
    請求項26に記載の装置。
  28. 前記解析モジュールは、前記最大許容候補インデックスと予め定められた数との間の計算によって前記最大インデックスを取得するよう構成される、請求項27に記載の装置。
  29. 前記解析モジュールは、
    前記ビットストリームに含まれる少なくとも1つのインジケータに示される第2の数に基づいて、前記最大許容候補インデックスと前記最大インデックスとの間の差を導出し、
    前記最大許容候補インデックスと前記差との間の計算によって前記最大インデックスを取得する
    よう構成される、請求項27に記載の装置。
  30. 前記解析モジュールは、前記ビットストリームに含まれる少なくとも1つのインジケータに示される第3の数に基づいて、最大インデックスを決定するよう構成される、請求項19から26のいずれか一項に記載の装置。
  31. 前記最大許容候補インデックスは前記最大インデックス以上である、請求項27から29のいずれか一項に記載の装置。
  32. 調節された前記第2インデックスに従って前記第2予測サブブロックの予測情報を取得した後に、前記取得モジュールは更に、
    前記第1予測サブブロックの前記予測情報および前記第2予測サブブロックの前記予測情報に基づいて前記現在のブロックの予測値を取得するよう構成される、請求項19から31のいずれか一項に記載の装置。
  33. 前記第1インデックスまたは前記第2インデックスは、切り捨てられた単進符号に従って二値化される、請求項19から32のいずれか一項に記載の装置。
  34. 二値化された前記第1インデックスまたは前記第2インデックスの第1binは、CABACの通常のコーディングモードを使用してコーディングされる、請求項33に記載の装置。
  35. 二値化された前記第1インデックスまたは前記第2インデックスの非第1binは、CABACのバイパスコーディングモードを使用してコーディングされる、請求項33または34に記載の装置。
  36. 前記解析モジュールは、前記ビットストリームから方向インジケータを解析するよう構成され、前記方向インジケータは、前記現在のブロックの分割方向を示すために使用される、請求項19から35のいずれか一項に記載の装置。
  37. 請求項1から18のいずれか一項に記載の予測方法をコンピュータに実行させるプログラム。
  38. 1または複数のプロセッサと、
    前記1または複数のプロセッサに連結され、前記1または複数のプロセッサによって実行されるプログラムを格納する非一時的コンピュータ可読記憶媒体と
    を備えるデコーダであって、前記プログラムは、前記1または複数のプロセッサによって実行されるとき、請求項1から18のいずれか一項に記載の予測方法を実行するよう前記デコーダを構成する、
    デコーダ。
  39. 1または複数のプロセッサと、
    前記1または複数のプロセッサに連結され、前記1または複数のプロセッサによって実行されるプログラムを格納する非一時的コンピュータ可読記憶媒体と
    を備えるエンコーダであって、前記プログラムは、前記1または複数のプロセッサによって実行されるとき、請求項1から18のいずれか一項に記載の予測方法を実行するよう前記エンコーダを構成する、
    エンコーダ。
  40. コンピュータデバイスによって実行されるとき、前記コンピュータデバイスに、請求項1から18のいずれか一項に記載の予測方法を実行させるプログラムを格納する非一時的コンピュータ可読媒体。
JP2021528442A 2018-11-22 2019-11-22 エンコーダ、デコーダ、インター予測のための対応する方法 Active JP7239697B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2023031523A JP2023078188A (ja) 2018-11-22 2023-03-02 エンコーダ、デコーダ、インター予測のための対応する方法

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US201862770826P 2018-11-22 2018-11-22
US62/770,826 2018-11-22
US201962787678P 2019-01-02 2019-01-02
US62/787,678 2019-01-02
US201962816897P 2019-03-11 2019-03-11
US62/816,897 2019-03-11
US201962905367P 2019-09-24 2019-09-24
US62/905,367 2019-09-24
PCT/RU2019/050224 WO2020106190A1 (en) 2018-11-22 2019-11-22 An encoder, a decoder and corresponding methods for inter prediction

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2023031523A Division JP2023078188A (ja) 2018-11-22 2023-03-02 エンコーダ、デコーダ、インター予測のための対応する方法

Publications (2)

Publication Number Publication Date
JP2022507872A JP2022507872A (ja) 2022-01-18
JP7239697B2 true JP7239697B2 (ja) 2023-03-14

Family

ID=70773945

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2021528442A Active JP7239697B2 (ja) 2018-11-22 2019-11-22 エンコーダ、デコーダ、インター予測のための対応する方法
JP2023031523A Pending JP2023078188A (ja) 2018-11-22 2023-03-02 エンコーダ、デコーダ、インター予測のための対応する方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2023031523A Pending JP2023078188A (ja) 2018-11-22 2023-03-02 エンコーダ、デコーダ、インター予測のための対応する方法

Country Status (16)

Country Link
US (2) US11558632B2 (ja)
EP (2) EP3884670B9 (ja)
JP (2) JP7239697B2 (ja)
KR (2) KR20240025062A (ja)
CN (2) CN113170142A (ja)
AU (2) AU2019384016B2 (ja)
BR (1) BR112021009848A2 (ja)
CA (1) CA3120877A1 (ja)
ES (1) ES2946909T3 (ja)
HU (1) HUE062487T2 (ja)
IL (1) IL283359A (ja)
MX (1) MX2021006039A (ja)
PL (1) PL3884670T3 (ja)
PT (1) PT3884670T (ja)
SG (1) SG11202105354YA (ja)
WO (1) WO2020106190A1 (ja)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11520704B1 (en) * 2021-06-30 2022-12-06 International Business Machines Corporation Writing store data of multiple store operations into a cache line in a single cycle
EP4274233A3 (en) 2018-11-08 2023-11-22 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Method for encoding/decoding image signal, and apparatus therefor
US10778977B2 (en) * 2018-12-05 2020-09-15 Qualcomm Incorporated Triangle motion information for video coding
US10893298B2 (en) * 2018-12-12 2021-01-12 Tencent America LLC Method and apparatus for video coding
GB2580084B (en) * 2018-12-20 2022-12-28 Canon Kk Video coding and decoding
US11032574B2 (en) * 2018-12-31 2021-06-08 Tencent America LLC Method and apparatus for video coding
JP2021513795A (ja) * 2019-01-01 2021-05-27 エルジー エレクトロニクス インコーポレイティド 履歴ベース動きベクトル予測に基づいてビデオ信号を処理するための方法及び装置
US10742972B1 (en) * 2019-03-08 2020-08-11 Tencent America LLC Merge list construction in triangular prediction
US11589043B2 (en) * 2019-06-24 2023-02-21 Tencent America LLC Flexible slice, tile and brick partitioning
JP2021027429A (ja) * 2019-08-01 2021-02-22 シャープ株式会社 動画像符号化装置、動画像復号装置
US11792423B2 (en) 2019-11-22 2023-10-17 Qualcomm Incorporated Early termination of motion vector refinement process in video coding
US11496755B2 (en) * 2019-12-28 2022-11-08 Tencent America LLC Method and apparatus for video coding
CN117499626A (zh) * 2020-03-26 2024-02-02 阿里巴巴(中国)有限公司 用于对视频进行编码或解码的方法和装置
EP4320862A1 (en) * 2021-04-09 2024-02-14 InterDigital CE Patent Holdings, SAS Geometric partitions with switchable interpolation filter
KR20240011199A (ko) * 2021-06-28 2024-01-25 베이징 다지아 인터넷 인포메이션 테크놀로지 컴퍼니 리미티드 움직임 벡터 미세조정을 이용한 기하학적 파티션 모드를 위한 방법 및 디바이스
JP2023005871A (ja) * 2021-06-29 2023-01-18 Kddi株式会社 画像復号装置、画像復号方法及びプログラム
JP7495909B2 (ja) 2021-08-05 2024-06-05 Kddi株式会社 画像復号装置、画像復号方法及びプログラム
US20230069984A1 (en) * 2021-08-24 2023-03-09 Tencent America LLC Hardware friendly design for intra mode coding
JP2023047920A (ja) * 2021-09-27 2023-04-06 Kddi株式会社 画像復号装置、画像復号方法及びプログラム
JP2023048030A (ja) * 2021-09-27 2023-04-06 Kddi株式会社 画像復号装置、画像復号方法及びプログラム
WO2023132615A1 (ko) * 2022-01-04 2023-07-13 현대자동차주식회사 쌍 머지 후보들을 생성하여 머지 후보 리스트를 구성하는 비디오 부호화/복호화 방법 및 장치
WO2024067638A1 (en) * 2022-09-27 2024-04-04 Douyin Vision Co., Ltd. Method, apparatus, and medium for video processing

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8724697B2 (en) * 2008-09-26 2014-05-13 Qualcomm Incorporated Locating motion vectors for video data units
KR102355933B1 (ko) * 2010-05-04 2022-01-25 엘지전자 주식회사 비디오 신호의 처리 방법 및 장치
KR20130049522A (ko) * 2011-11-04 2013-05-14 오수미 인트라 예측 블록 생성 방법
US9554150B2 (en) * 2013-09-20 2017-01-24 Qualcomm Incorporated Combined bi-predictive merging candidates for 3D video coding
US10158866B2 (en) * 2014-09-26 2018-12-18 Qualcomm Incorporated Parsing dependency reduction for palette index coding
SG11201703454XA (en) * 2014-11-18 2017-06-29 Mediatek Inc Method of bi-prediction video coding based on motion vectors from uni-prediction and merge candidate
CN111147855A (zh) * 2018-11-02 2020-05-12 北京字节跳动网络技术有限公司 几何分割预测模式与其他工具之间的协调
JP7416781B2 (ja) * 2018-11-08 2024-01-17 オッポ広東移動通信有限公司 ビデオ信号符号化/復号方法及びその機器
US10778977B2 (en) * 2018-12-05 2020-09-15 Qualcomm Incorporated Triangle motion information for video coding
US11032574B2 (en) * 2018-12-31 2021-06-08 Tencent America LLC Method and apparatus for video coding
WO2020222617A1 (ko) * 2019-05-02 2020-11-05 주식회사 엑스리스 영상 신호 부호화/복호화 방법 및 이를 위한 장치

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Ru-Ling Liao, et al.,"CE10.3.1.b: Triangular prediction unit mode",Document: JVET-L0124-v2, [online],JVET-L0124 (version 2),Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,2018年10月05日,Pages 1-8,[令和5年1月24日検索], インターネット, <URL: https://jvet-experts.org/doc_end_user/current_document.php?id=4205> and <URL: https://jvet-experts.org/doc_end_user/documents/12_Macao/wg11/JVET-L0124-v2.zip>.

Also Published As

Publication number Publication date
CN113727101B (zh) 2022-10-11
MX2021006039A (es) 2021-09-10
PT3884670T (pt) 2023-06-02
SG11202105354YA (en) 2021-06-29
CA3120877A1 (en) 2020-05-28
CN113727101A (zh) 2021-11-30
EP3884670B1 (en) 2023-05-10
CN113170142A (zh) 2021-07-23
EP3884670A4 (en) 2022-01-19
WO2020106190A1 (en) 2020-05-28
US20230125381A1 (en) 2023-04-27
AU2019384016B2 (en) 2023-03-02
US20210281870A1 (en) 2021-09-09
US11558632B2 (en) 2023-01-17
BR112021009848A2 (pt) 2021-08-17
KR20240025062A (ko) 2024-02-26
EP3884670B9 (en) 2023-07-19
EP3884670A1 (en) 2021-09-29
KR20210089776A (ko) 2021-07-16
HUE062487T2 (hu) 2023-11-28
IL283359A (en) 2021-07-29
ES2946909T3 (es) 2023-07-27
JP2022507872A (ja) 2022-01-18
EP4221205A1 (en) 2023-08-02
JP2023078188A (ja) 2023-06-06
KR102638710B1 (ko) 2024-02-19
AU2019384016A1 (en) 2021-06-17
PL3884670T3 (pl) 2023-07-10
AU2023203444A1 (en) 2023-06-29

Similar Documents

Publication Publication Date Title
JP7239697B2 (ja) エンコーダ、デコーダ、インター予測のための対応する方法
JP7271683B2 (ja) エンコーダ、デコーダ、および対応するイントラ予測方法
JP7303894B2 (ja) エンコーダ、デコーダ、及び対応するインター予測方法
JP7275270B2 (ja) エンコーダ、デコーダ、及びデブロッキングフィルタの境界強度導出の対応する方法
JP7457010B2 (ja) マージモードのためのエンコーダ、デコーダ、および対応する方法
JP7314281B2 (ja) イントラ・サブパーティション・コーディング・ツールによって引き起こされるサブパーティション境界のためのデブロッキングフィルタ
JP7477066B2 (ja) Ibcマージリストを使用するエンコーダ、デコーダ、及び対応する方法
JP7351908B2 (ja) エンコーダ、デコーダ、および対応するブロック解除フィルタ適応の方法
JP7408849B2 (ja) タイル構成のシグナリングのためのエンコーダ、デコーダ、および対応する方法
CN114424571A (zh) 编码器、解码器及对应方法
JP2023511206A (ja) 適応ループフィルタリングのためのエンコーダ、デコーダ、および対応する方法
JP2024055893A (ja) 非線形適応ループフィルタのためのクリッピングレベル
US11336916B2 (en) Encoder, a decoder and corresponding methods for inter-prediction
CN115349257A (zh) 基于dct的内插滤波器的使用
JP2023100701A (ja) イントラ予測のためのイントラモードコーディングを使用するエンコーダ、デコーダ、および対応する方法
JP7470795B2 (ja) 柔軟なプロファイル構成のエンコーダ、デコーダ及び対応する方法
JP2023515189A (ja) スライス用のピクチャパーティション情報をシグナリングするためのデコーダ及び対応する方法
RU2818228C2 (ru) Уровни ограничения для нелинейного адаптивного контурного фильтра
US11997296B2 (en) Motion field storage optimization for a line buffer
JP7385004B2 (ja) 動き情報保存のための方法及び装置
JP2022550989A (ja) エンコーダ、デコーダ、および、対応する方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210630

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220726

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221017

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230131

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230302

R150 Certificate of patent or registration of utility model

Ref document number: 7239697

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150