JP2018536364A - ディスプレイストリーム圧縮(dsc)のためのブロック予測モードに関するマルチ領域探索範囲 - Google Patents

ディスプレイストリーム圧縮(dsc)のためのブロック予測モードに関するマルチ領域探索範囲 Download PDF

Info

Publication number
JP2018536364A
JP2018536364A JP2018529177A JP2018529177A JP2018536364A JP 2018536364 A JP2018536364 A JP 2018536364A JP 2018529177 A JP2018529177 A JP 2018529177A JP 2018529177 A JP2018529177 A JP 2018529177A JP 2018536364 A JP2018536364 A JP 2018536364A
Authority
JP
Japan
Prior art keywords
block
pixel
line
current
pixels
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2018529177A
Other languages
English (en)
Other versions
JP7198665B2 (ja
JP2018536364A5 (ja
Inventor
ヤコブソン、ナタン・ハイム
ティルマライ、ビジャヤラガバン
ジョーシー、ラジャン・ラクスマン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2018536364A publication Critical patent/JP2018536364A/ja
Publication of JP2018536364A5 publication Critical patent/JP2018536364A5/ja
Application granted granted Critical
Publication of JP7198665B2 publication Critical patent/JP7198665B2/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
    • 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/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/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
    • 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/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/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/174Methods 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 slice, e.g. a line of blocks or a group of 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/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/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements

Landscapes

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

Abstract

ディスプレイリンクを介した送信のために固定ビットレートビデオコーディング方式の簡略化されたブロック予測モードでビデオデータのブロックをコーディングするための方法が開示される。一態様では、方法は、現在スライス中の現在ブロックを予測するために使用される候補ブロックを決定することを含み、候補ブロックは、現在スライス中の再構成されたピクセルに各々対応する複数のピクセル位置の範囲内にある。ピクセル位置の範囲は、(i)現在ブロックとオーバーラップする複数のピクセルの第1のライン中の1つまたは複数の第1のピクセル位置を含む第1の領域と、(ii)現在ブロックとオーバーラップしない複数のピクセルの第2のライン中の1つまたは複数の第2のピクセル位置を含む第2の領域とを備え得る。方法は、候補ブロックのピクセル位置を示す予測ベクトルを決定およびシグナリングすることをさらに備え得る。

Description

[0001] 本開示は、ビデオコーディングおよび圧縮の分野に関し、詳細には、ディスプレイリンクビデオ圧縮(display link video compression)などの、ディスプレイリンクを介した送信のためのビデオ圧縮に関する。
[0002] デジタルビデオ機能は、デジタルテレビジョン、携帯情報端末(PDA)、ラップトップコンピュータ、デスクトップモニタ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレイヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラ電話または衛星無線電話、ビデオ遠隔会議デバイスなどを含む、広範囲にわたるディスプレイに組み込まれ得る。適切なソースデバイスにディスプレイを接続するために、ディスプレイリンクが使用される。ディスプレイリンクの帯域幅要件はディスプレイの解像度に比例し、従って、高解像度ディスプレイは、大きい帯域幅のディスプレイリンクを必要とする。いくつかのディスプレイリンクは、高解像度ディスプレイをサポートするための帯域幅を有しない。高解像度ディスプレイにデジタルビデオを提供するためにより低い帯域幅のディスプレイリンクが使用され得るように帯域幅要件を低減するために、ビデオ圧縮が使用され得る。
[0003] ピクセルデータのイメージ圧縮を含むコーディング方式が存在する。しかしながら、そのような方式は、時々視覚的ロスレス(visually lossless)でないか、または従来のディスプレイデバイスにおいて実装することが困難で費用がかかることがある。
[0004] ビデオエレクトロニクス規格協会(VESA:Video Electronics Standards Association)は、ディスプレイリンクビデオ圧縮のための規格として、ディスプレイストリーム圧縮(DSC:Display Stream Compression)を開発した。DSCなどの、ディスプレイリンクビデオ圧縮技法は、特に、視覚的ロスレスであるピクチャ品質(すなわち、圧縮がアクティブであることをユーザがわからないような品質のレベルを有するピクチャ)を提供するべきである。ディスプレイリンクビデオ圧縮技法はまた、従来のハードウェアを用いてリアルタイムに実装することが容易で費用がかからない方式を提供するべきである。
[0005] 図1Aは、本開示で説明される態様による技法を利用し得る例示的なビデオ符号化および復号システムを図示するブロック図である。 [0006] 図1Bは、本開示で説明される態様による技法を実行し得る別の例示的なビデオ符号化および復号システムを図示するブロック図である。 [0007] 図2Aは、技法を実装し得るビデオエンコーダの一例を図示するブロック図である。 [0008] 図2Bは、技法を実装し得るビデオデコーダの一例を図示するブロック図である。 [0009] 図3は、1Dブロックについての第1でないラインのための探索空間(search space)を図示するブロック図である。 [0010] 図4は、2Dブロックについての第1でないラインのための探索空間を図示するブロック図である。 [0011] 図5は、1Dブロックについての第1のラインのための探索空間を図示するブロック図である。 [0012] 図6は、2Dブロックについての第1のラインのための探索空間を図示するブロック図である。 [0013] 図7は、ブロック予測モードでビデオデータのブロックを予測するための方法を図示するフローチャートである。 [0014] 図8は、区分(partitions)を有するブロックを図示するブロック図である。 [0015] 図9は、適応型区分サイズを有するブロック予測モードのためのデータフローを図示するブロック図である。 [0016] 図10は、ブロック内の2×2領域のための2つの異なる区分オプションを図示するブロック図である。 [0017] 図11は、ブロック予測モードのためのエントロピーコーディンググループを図示するブロック図である。 [0018] 図12は、2×8ブロックのための探索空間を図示するブロック図である。 [0019] 図13は、ブロックの異なる領域に関して使用されている異なる区分サイズを図示するブロック図である。 [0020] 図14は、可変の区分サイズを使用してブロック予測モードでビデオデータのブロックを予測するための方法を示すフローチャートである。 [0021] 図15は、4:2:0クロマサブサンプリングの2×2区分に関する例示的なブロック予測探索を図示するブロック図である。 [0022] 図16は、4:2:0クロマサブサンプリングの1×2区分に関する例示的なブロック予測探索を図示するブロック図である。 [0023] 図17は、4:2:2クロマサブサンプリングの2×2区分に関する例示的なブロック予測探索を図示するブロック図である。 [0024] 図18は、4:2:2クロマサブサンプリングの1×2区分に関する例示的なブロック予測探索を図示するブロック図である。 [0025] 図19は、ブロック予測モードについての単一の探索範囲を図示するブロック図である。 [0026] 図20は、ブロック予測モードについての複数の探索範囲を図示するブロック図である。 [0027] 図21は、複数の探索範囲を使用してブロック予測モードでビデオデータのブロックを予測するための方法を示すフローチャートである。 [0028] 図22は、簡略化されたブロック予測モードのための例示的な探索領域を図示するブロック図である。 [0029] 図23は、簡略化されたブロック予測モードのための例示的な探索領域を図示するブロック図である。 [0030] 図24は、簡略化されたブロック予測モードのための例示的な探索領域を図示するブロック図である。 [0031] 図25は、簡略化されたブロック予測モードのための例示的な探索領域を図示するブロック図である。 [0032] 図26は、簡略化されたブロック予測モードでビデオデータのブロックを予測するための方法を図示するフローチャートである。
[0033] DSC規格は、ビデオデータの各ブロックが、エンコーダによって符号化され、同様に、デコーダによって復号され得る、いくつかのコーディングモードを含む。いくつかの実装では、エンコーダおよび/またはデコーダは、前にコーディングされたブロックに基づいてコーディングされる現在ブロックを予測し得る。
[0034] しかしながら、既存のコーディングモード(例えば、変換コーディング、差分パルスコード変調など)は、ビデオデータ中の極めて複雑な領域(highly complex region)を圧縮する満足のいく方法を提供しない。しばしば、このタイプのデータ(すなわち、高度に圧縮されたビデオデータ)について、コーディングされる現在ブロック(または現在ブロックの構成サブブロック(constituent sub-blocks))は、コーダ(例えば、エンコーダまたはデコーダ)によって遭遇された前のブロック(previous blocks)にコンテンツが類似する。しかしながら、既存のイントラ予測は、そのような現在ブロックの満足のいく予測(例えば、現在ブロックに十分に類似し、従って十分に小さい残差(residual)をもたらすであろう現在ブロックの予測)を行うには制限されすぎていることがある。従って、ビデオデータのブロックをコーディングする改善された方法が望まれる。
[0035] 本開示のシステム、方法およびデバイスは、各々いくつかの発明的態様を有し、それらのうちの単一の態様が、本明細書で開示される望ましい属性を単独で担うものではない。
[0036] 一態様では、固定ビットレートビデオコーディング方式の簡略化されたブロック予測モードでビデオデータのブロックをコーディングするための方法は、現在スライス中の現在ブロックを予測するために使用される候補ブロックを決定することと、候補ブロックは、現在スライス中の再構成されたピクセルに各々対応する複数のピクセル位置の範囲内にあり、複数のピクセル位置の範囲は、少なくとも(i)現在スライス中の複数のピクセルの第1のライン中の1つまたは複数の第1のピクセル位置を含む第1の領域と、ここで、複数のピクセルの第1のラインは、現在ブロック中の少なくとも1つのピクセルを含み、現在スライスの全体の幅にわたる、(ii)現在スライス中の複数のピクセルの第2のライン中の1つまたは複数の第2のピクセル位置を含む第2の領域と、ここで、複数のピクセルの第2のラインは、現在ブロック中のいずれのピクセルも含まないが、現在スライスの全体の幅にわたる、を備え、複数のピクセル位置の範囲内の候補ブロックのピクセル位置を示す予測ベクトルを決定することと、候補ブロックのピクセル位置は、第1の領域または第2の領域のうちの1つにあり、予測ベクトルをシグナリングすることを少なくとも部分的に介して、簡略化されたブロック予測モードで現在ブロックをコーディングすることと、を含み得る。
[0037] 別の態様では、固定ビットレートビデオコーディング方式の簡略化されたブロック予測モードでビデオデータのブロックをコーディングするように構成された装置は、ビデオデータの現在スライスの1つまたは複数の再構成されたピクセルを記憶するように構成されたメモリと、メモリと通信状態にある1つまたは複数のプロセッサと、を含み得る。1つまたは複数のプロセッサは、現在スライス中の現在ブロックを予測するために使用される候補ブロックを決定することと、候補ブロックは、現在スライス中の再構成されたピクセルに各々対応する複数のピクセル位置の範囲内にあり、複数のピクセル位置の範囲は、少なくとも(i)現在スライス中の複数のピクセルの第1のライン中の1つまたは複数の第1のピクセル位置を含む第1の領域と、ここで、複数のピクセルの第1のラインは、現在ブロック中の少なくとも1つのピクセルを含み、現在スライスの全体の幅にわたる、(ii)現在スライス中の複数のピクセルの第2のライン中の1つまたは複数の第2のピクセル位置を含む第2の領域と、ここで、複数のピクセルの第2のラインは、現在ブロック中のいずれのピクセルも含まないが、現在スライスの全体の幅にわたる、を備え、複数のピクセル位置の範囲内の候補ブロックのピクセル位置を示す予測ベクトルを決定することと、候補ブロックのピクセル位置は、第1の領域または第2の領域のうちの1つにあり、予測ベクトルをシグナリングすることを少なくとも部分的に介して、簡略化されたブロック予測モードで現在ブロックをコーディングすることと、を行うように構成され得る。
[0038] 別の態様では、非一時的物理的コンピュータストレージは、固定ビットレートビデオコーディング方式の簡略化されたブロック予測モードでビデオデータのブロックをコーディングするように構成されたコードを備え得る。コードは、実行されたとき、装置に、現在スライス中の現在ブロックを予測するために使用される候補ブロックを決定することと、候補ブロックは、現在スライス中の再構成されたピクセルに各々対応する複数のピクセル位置の範囲内にあり、複数のピクセル位置の範囲は、少なくとも(i)現在スライス中の複数のピクセルの第1のライン中の1つまたは複数の第1のピクセル位置を含む第1の領域と、ここで、複数のピクセルの第1のラインは、現在ブロック中の少なくとも1つのピクセルを含み、現在スライスの全体の幅にわたる、(ii)現在スライス中の複数のピクセルの第2のライン中の1つまたは複数の第2のピクセル位置を含む第2の領域と、ここで、複数のピクセルの第2のラインは、現在ブロック中のいずれのピクセルも含まないが、現在スライスの全体の幅にわたる、を備え、複数のピクセル位置の範囲内の候補ブロックのピクセル位置を示す予測ベクトルを決定することと、候補ブロックのピクセル位置は、第1の領域または第2の領域のうちの1つにあり、予測ベクトルをシグナリングすることを少なくとも部分的に介して、簡略化されたブロック予測モードで現在ブロックをコーディングすることと、を行わせ得る。
[0039] 別の態様では、ビデオコーディングデバイスは、固定ビットレートビデオコーディング方式の簡略化されたブロック予測モードでビデオデータのブロックをコーディングするように構成され得る。ビデオコーディングデバイスは、現在スライス中の現在ブロックを予測するために使用される候補ブロックを決定するための手段と、候補ブロックは、現在スライス中の再構成されたピクセルに各々対応する複数のピクセル位置の範囲内にあり、複数のピクセル位置の範囲は、少なくとも(i)現在スライス中の複数のピクセルの第1のライン中の1つまたは複数の第1のピクセル位置を含む第1の領域と、ここで、複数のピクセルの第1のラインは、現在ブロック中の少なくとも1つのピクセルを含み、現在スライスの全体の幅にわたる、(ii)現在スライス中の複数のピクセルの第2のライン中の1つまたは複数の第2のピクセル位置を含む第2の領域と、ここで、複数のピクセルの第2のラインは、現在ブロック中のいずれのピクセルも含まないが、現在スライスの全体の幅にわたる、を備え、複数のピクセル位置の範囲内の候補ブロックのピクセル位置を示す予測ベクトルを決定するための手段と、候補ブロックのピクセル位置は、第1の領域または第2の領域のうちの1つにあり、予測ベクトルをシグナリングすることを少なくとも部分的に介して、簡略化されたブロック予測モードで現在ブロックをコーディングするための手段と、を備え得る。
詳細な説明
[0040] 概して、本開示は、例えば、ディスプレイリンクビデオ圧縮で利用されるもののような、ビデオ圧縮技法を改善する方法に関する。より詳細には、本開示は、適応型探索範囲選択を使用してブロック予測モードでビデオデータのブロックをコーディングするためのシステムおよび方法に関する。
[0041] ある特定の実施形態について、ディスプレイリンクビデオ圧縮技法の例である、DSC規格のコンテキストにおいて本明細書で説明されるが、本明細書で開示されるシステムおよび方法が任意の適切なビデオコーディング規格に適用可能であり得ることを、当業者は理解するだろう。例えば、本明細書で開示される実施形態は、下記の規格、国際電気通信連合(ITU)電気通信標準化部門(ITU−T)H. 261、国際標準化機構/国際電気標準会議(ISO/IEC)ムービングピクチャエキスパートグループ1(MPEG−1)Visual、ITU−T H. 262またはISO/IEC MPEG−2 Visual、ITU−T H. 263、ISO/IEC MPEG−4 Visual、(ISO/IEC MPEG−4 AVCとしても知られる)ITU−T H. 264、高効率ビデオコーディング(HEVC:High Efficiency Video Coding)のうちの1つまたは複数、およびそのような規格に対する任意の拡張に適用可能であり得る。また、本開示で説明される技法は、将来開発される規格の一部になり得る。言い換えれば、本開示で説明する技法は、前に開発されたビデオコーディング規格、現在開発中のビデオコーディング規格、および次のビデオコーディング規格に適用可能であり得る。
[0042] DSC規格は、ビデオデータの各ブロックが、エンコーダによって符号化され、同様に、デコーダによって復号され得る、いくつかのコーディングモードを含む。いくつかの実装では、エンコーダおよび/またはデコーダは、前にコーディングされたブロックに基づいてコーディングされるべき現在ブロックを予測し得る。
[0043] しかしながら、既存のコーディングモード(例えば、変換コーディング、差分パルスコード変調など)は、ビデオデータ中の極めて複雑な領域を圧縮する満足のいく方法を提供しない。しばしば、このタイプのデータ(すなわち、高度に圧縮されたビデオデータ)について、コーディングされる現在ブロック(または現在ブロックの構成サブブロック)は、コーダ(例えば、エンコーダまたはデコーダ)によって遭遇された前のブロックにコンテンツが類似する。しかしながら、既存のイントラ予測は、そのような現在ブロックの満足のいく予測(例えば、現在ブロックに十分に類似し、従って十分に小さい残差をもたらすであろう現在ブロックの予測)を行うには制限されすぎていることがある。従って、ビデオデータのブロックをコーディングする改善された方法が望まれる。
[0044] 本開示では、ブロック予測モードでブロックをコーディングする改善された方法が説明される。例えば、現在ブロックを(または現在ブロック内の現在領域)予測するために使用される候補ブロック(または候補領域)を探索するとき、探索範囲は、エンコーダが、探索コストを最小限に抑えながら、良好な一致であり得る潜在的な候補(potential candidates)へのアクセスを有するように定義され得る。別の例では、エンコーダは、レート歪み(RD:rate distortion)分析に基づいて、現在ブロックをコーディングするために複数の探索範囲のうちのどの1つを使用するかを決定し得る。さらに別の例では、エンコーダは、前にコーディングされたピクセルのうちのどの1つが、現在ブロックのロケーション、RDコストなどのような様々なファクタに基づいて、現在ブロックをコーディングするために使用される探索範囲に含まれるかを決定し得る。エンコーダ側でより多くの動作を実行すること(例えば、コンピューティングリソースと処理能力(power)とを消費し得る、現在ブロックを予測するために使用される候補ブロックを探索すること、現在ブロックに関する候補ブロックのロケーションを識別するベクトルを計算すること、関連付けられたコストを異なる探索範囲を使用することと比較することなど)によって、本方法はデコーダ複雑さ(decoder complexity)を低減し得る。追加的に、複数のおよび/または適用可能探索範囲がブロック予測モードでブロックをコーディングするために使用されることを可能にすることによって、より良い候補区分に位置している可能性が高くなり得、それにより、ブロック予測モードのコーディング効率および/またはコーディング性能を改善する。さらに、探索範囲を適応可能に選択するためのエンコーダが各ブロックをコーディングするために使用されることを可能にすることによって、ブロック予測方式の性能は、さらに改善され得る。
ビデオコーディング規格
[0045] ビデオ画像、TV画像、静止画像、あるいはビデオレコーダまたはコンピュータによって生成される画像のようなデジタル画像は、水平ラインおよび垂直ラインで配置されたピクセルまたはサンプルを含み得る。単一の画像中のピクセルの数は一般に数万個である。各ピクセルは、一般に、ルミナンス情報とクロミナンス情報とを含んでいる。圧縮がなければ、画像エンコーダから画像デコーダに搬送されるべき情報の甚だしい(sheer)量は、リアルタイム画像送信を実行不可能(impractical)にするであろう。送信される情報の量を低減するために、JPEG、MPEGおよびH. 263規格などの、いくつかの異なる圧縮方法が開発された。
[0046] ビデオコーディング規格は、ITU−T H. 261と、ISO/IEC MPEG−1 Visualと、ITU−T H. 262またはISO/IEC MPEG−2 Visualと、ITU−T H. 263と、ISO/IEC MPEG−4 Visualと、(ISO/IEC MPEG−4 AVCとしても知られる)ITU−T H. 264と、そのような規格の拡張を含むHEVCとを含む。
[0047] さらに、VESAによって、あるビデオコーディング規格、すなわち、DSCが開発された。DSC規格は、ディスプレイリンクを介した送信のためにビデオを圧縮することができるビデオ圧縮規格である。ディスプレイの解像度が増加するにつれて、ディスプレイを駆動するために必要とされるビデオデータの帯域幅は、対応して増加する。いくつかのディスプレイリンクは、そのような解像度についてディスプレイにビデオデータの全てを送信するための帯域幅を有しない可能性がある。従って、DSC規格は、ディスプレイリンクを介した相互運用可能な、視覚的ロスレス圧縮のための圧縮規格を規定する。
[0048] DSC規格は、H. 264およびHEVCなどの、他のビデオコーディング規格とは異なる。DSCは、フレーム内圧縮(intra-frame compression)を含むが、フレーム間圧縮(inter-frame compression)を含まず、これは、ビデオデータをコーディングする際にDSC規格によって時間的情報が使用されない可能性があることを意味する。対照的に、他のビデオコーディング規格は、それらのビデオコーディング技法においてフレーム間圧縮を採用し得る。
ビデオコーディングシステム
[0049] 添付の図面を参照して新規のシステム、装置、および方法の様々な態様が以下でより十分に説明される。しかしながら、本開示は、多くの異なる形態で実施され得、本開示全体にわたって提示される任意の特定の構造または機能に限定されるものと解釈されるべきではない。むしろ、これらの態様は、本開示が綿密で完全になり、本開示の範囲を当業者に十分に伝えるために提供されるものである。本明細書の教示に基づいて、本開示の範囲は、本開示の任意の他の態様とは無関係に実装されようと、本開示の任意の他の態様と組み合わせて実装されようと、本明細書で開示される新規のシステム、装置、および方法のいずれの態様をもカバーすると意図されていることを、当業者は理解するべきである。例えば、本明細書に記載されるいずれの数の態様を使用しても、装置は実装され得、または方法は実施され得る。さらに、本開示の範囲は、本明細書に記載される本開示の様々な態様に加えてまたはそれらの態様以外に、他の構造、機能、または構造および機能を使用して実施されるそのような装置または方法をカバーすることが意図される。本明細書で開示されるいずれの態様も請求項の1つまたは複数の要素によって具現化され得ることを理解されたい。
[0050] 本明細書では特定の態様が説明されるが、これらの態様の多くの変形および置換は本開示の範囲内に入る。適切な態様のいくつかの利益および利点が説明されるが、本開示の範囲は特定の利益、使用、または目的に限定されることを意図したものではない。むしろ、本開示の態様は、異なるワイヤレス技術、システム構成、ネットワーク、および送信プロトコルに広く適用可能であることを意図したものであり、それらのいくつかを例として、図および適切な(preferred)態様の以下の説明において図示する。詳細な説明および図面は、本開示を限定するものではなく単に説明するものにすぎず、本開示の範囲は添付の特許請求の範囲およびそれの均等物によって定義される。
[0051] 添付の図面は例を図示している。添付の図面中の参照番号によって示される要素は、以下の説明における同様の参照番号によって示される要素に対応する。本開示では、序数語(例えば、「第1の」、「第2の」、「第3の」など)で始まる名前を有する要素は、必ずしもそれらの要素が特定の順序を有することを暗示するとは限らない。むしろ、そのような序数語は、同じまたは同様のタイプの異なる要素を指すために使用されるにすぎない。
[0052] 図1Aは、本開示で説明される態様による技法を利用し得る例示的なビデオコーディングシステム10を図示するブロック図である。本明細書で使用され説明される「ビデオコーダ」または「コーダ」という用語は、ビデオエンコーダとビデオデコーダの両方を総称的に指す。本開示では、「ビデオコーディング」または「コーディング」という用語は、ビデオ符号化とビデオ復号とを総称的に指すことがある。ビデオエンコーダおよびビデオデコーダに加えて、本出願で説明される態様は、トランスコーダ(transcoder)(例えば、ビットストリームを復号し、別のビットストリームを再符号化することができるデバイス)およびミドルボックス(middlebox)(例えば、ビットストリームを変更、変換、および/または他の場合には操作することができるデバイス)など、他の関係するデバイスに拡張され得る。
[0053] 図1Aに示されているように、ビデオコーディングシステム10は、宛先デバイス14(すなわち、「ビデオコーディングデバイス14」または「コーディングデバイス14」)によって後で復号される符号化ビデオデータを生成するソースデバイス12(すなわち、「ビデオコーディングデバイス12」または「コーディングデバイス12」)を含む。図1Aの例では、ソースデバイス12および宛先デバイス14は、別個のデバイスを構成する。しかしながら、ソースデバイス12および宛先デバイス14は、図1Bの例に示されているように、同じデバイス上にあるかまたはそれの一部であり得ることに留意されたい。
[0054] もう一度図1Aを参照すると、ソースデバイス12および宛先デバイス14は、それぞれ、デスクトップコンピュータ、ノートブック(例えば、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレイヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、デバイス(ビデオコーディングデバイスとも呼ばれる)の広範囲にわたるデバイスのいずれかを備え得る。様々な実施形態では、ソースデバイス12および宛先デバイス14は、ワイヤレス通信のために装備され(すなわち、ワイヤレス通信を介して通信するように構成され)得る。
[0055] ビデオコーディングシステム10のビデオコーディングデバイス12、14は、ワイヤレスワイドエリアネットワーク(WWAN)(例えば、セルラ)および/またはワイヤレスローカルエリアネットワーク(WLAN)キャリアのようなワイヤレスネットワークおよび無線技術を介して通信するように構成され得る。「ネットワーク」および「システム」という用語は、しばしば互換的に使用される。ビデオコーディングデバイス12、14の各々は、ユーザ機器(UE)、ワイヤレスデバイス、端末、モバイル局、加入者局などであり得る。
[0056] WWANキャリアは、例えば、符号分割多元接続(CDMA)、時分割多元接続(TDMA)、周波数分割多元接続(FDMA)、直交FDMA(OFDMA)、シングルキャリアFDMA(SC−FDMA)、および他のネットワークのようなワイヤレス通信ネットワークを含み得る。CDMAネットワークは、ユニバーサル地上無線アクセス(UTRA)、cdma2000などのような無線技術を実装し得る。UTRAは、広帯域CDMA(WCDMA(登録商標))およびCDMAの他の変形を含む。CDMA2000は、IS−2000、IS−95およびIS−856規格をカバーする。TDMAネットワークは、グローバル・システム・フォー・モバイルコミュニケーションズ(GSM)(登録商標)のような無線技術を実装し得る。OFDMAネットワークは、発展型UTRA(E−UTRA)、ウルトラ・モバイル・ブロードバンド(UMB)、IEEE 802. 11(Wi−Fi)、IEEE 802. 16(WiMAX)、IEEE 802. 20、Flash−OFDM(登録商標)などのような無線技術を実装し得る。UTRAおよびE−UTRAは、ユニバーサル・モバイル・テレコミュニケーション・システム(UMTS)の一部である。3GPP(登録商標)ロングタームエボリューション(LTE(登録商標))およびLTEアドバンスト(LTE−A)は、E−UTRAを使用するUMTSの最新リリースである。UTRA、E−UTRA、UMTS、LTE、LTE−AおよびGSMは、「第3世代パートナーシッププロジェクト」(3GPP)と名付けられた団体からの文書で説明されている。CDMA2000およびUMBは、「第3世代パートナーシッププロジェクト2」(3GPP2)名付けられた団体からの文書で説明されている。
[0057] ビデオコーディングシステム10のビデオコーディングデバイス12、14はまた、例えば、802.11a−1999(通常、「802.11a」と呼ばれる)、802.11b−1999(通常、「802.11b」と呼ばれる)、802.11g−2003(通常、「802.11g」と呼ばれる)などの修正を含む、IEEE802.11規格のような、1つまたは複数の規格に従ったWLAN基地局上で互いと通信し得る。
[0058] 宛先デバイス14は、復号される符号化ビデオデータを、リンク16を介して受信し得る。リンク16は、ソースデバイス12から宛先デバイス14に符号化ビデオデータを移動することが可能な任意のタイプの媒体またはデバイスを備え得る。図1Aの例では、リンク16は、ソースデバイス12が符号化ビデオデータをリアルタイムで宛先デバイス14に送信することを可能にするための通信媒体を備え得る。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス14に送信され得る。通信媒体は、無線周波数(RF)スペクトルあるいは1つまたは複数の物理伝送路などの、任意のワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットのようなグローバルネットワークなどの、パケットベースネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス12から宛先デバイス14への通信を容易にするために有用であり得る任意の他の機器を含み得る。
[0059] 図1Aの例では、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20(単に、エンコーダ20とも呼ばれる)と、出力インターフェース22とを含む。いくつかの場合には、出力インターフェース22は、変調器/復調器(モデム)および/または送信機を含み得る。ソースデバイス12において、ビデオソース18は、ビデオキャプチャデバイス、例えばビデオカメラ、前にキャプチャされたビデオを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および/またはソースビデオとしてコンピュータグラフィックデータを生成するためのコンピュータグラフィックシステムなどのソース、あるいはそのようなソースの組合せを含み得る。一例として、ビデオソース18がビデオカメラである場合、ソースデバイス12および宛先デバイス14は、図1Bの例に図示されるように、いわゆる「カメラフォン」または「ビデオフォン」を形成し得る。しかしながら、本開示で説明される技法は、概してビデオコーディングに適用可能であり得、ワイヤレスおよび/またはワイヤードアプリケーションに適用され得る。
[0060] キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成されたビデオは、ビデオエンコーダ20によって符号化され得る。符号化ビデオデータは、ソースデバイス12の出力インターフェース22を介して宛先デバイス14に送信され得る。符号化ビデオデータはまた(あるいは代替として)、復号および/または再生のための宛先デバイス14または他のデバイスによる後のアクセスのためにストレージデバイス31上に記憶され得る。図1Aおよび図1Bに図示されるビデオエンコーダ20は、図2Aに示されるビデオエンコーダ20、または本明細書で説明される他のビデオエンコーダを備え得る。
[0061] 図1Aの例では、宛先デバイス14は、入力インターフェース28と、ビデオデコーダ30(単に、デコーダ30とも呼ばれる)と、ディスプレイデバイス32とを含む。いくつかの場合には、入力インターフェース28は、受信機および/またはモデムを含み得る。宛先デバイス14の入力インターフェース28は、リンク16を介しておよび/またはストレージデバイス31から符号化ビデオデータを受信し得る。リンク16を介して通信され、またはストレージデバイス31上に提供された符号化ビデオデータは、ビデオデータを復号する際に、ビデオデコーダ30などのビデオデコーダが使用するためのビデオエンコーダ20によって生成される様々なシンタックス要素を含み得る。そのようなシンタックス要素は、通信媒体上で送信された、記憶媒体上に記憶された、またはファイルサーバに記憶された符号化ビデオデータに含まれ得る。図1Aおよび図1Bに図示されているビデオデコーダ30は、図2Bに図示されているビデオデコーダ30、または本明細書で説明される他のビデオデコーダを備え得る。
[0062] ディスプレイデバイス32は、宛先デバイス14と一体化されるかまたはその外部にあり得る。いくつかの例では、宛先デバイス14は、一体型ディスプレイデバイスを含み、また、外部ディスプレイデバイスとインターフェースするように構成され得る。他の例では、宛先デバイス14はディスプレイデバイスであり得る。概して、ディスプレイデバイス32は、復号ビデオデータをユーザに対して表示し、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなどの、様々なディスプレイデバイスのいずれかを備え得る。
[0063] 関係する態様では、図1Bは例示的なビデオコーディングシステム10’を示し、ここにおいて、ソースデバイス12および宛先デバイス14はデバイス11上にあるかまたはそれの一部である。デバイス11は、「スマート」フォンなどのような電話ハンドセットであり得る。デバイス11は、ソースデバイス12および宛先デバイス14と動作可能に通信している(随意に存在する)プロセッサ/コントローラデバイス13を含み得る。図1Bのビデオコーディングシステム10’およびそれのコンポーネントは、他の場合には図1Aのビデオコーディングシステム10およびそれのコンポーネントと同様である。
[0064] ビデオエンコーダ20およびビデオデコーダ30は、DSCなどの、ビデオ圧縮規格に従って動作し得る。代替的に、ビデオエンコーダ20およびビデオデコーダ30は、代替的にMPEG−4,Part10,AVCと呼ばれるITU−T H. 264規格、HEVCなどの、他のプロプライエタリ規格または業界規格、あるいはそのような規格の拡張に従って動作し得る。しかしながら、本開示の技法は、いかなる特定のコーディング規格にも限定されない。ビデオ圧縮規格の他の例は、MPEG−2およびITU−T H. 263を含む。
[0065] 図1Aおよび図1Bの例には示されていないが、ビデオエンコーダ20およびビデオデコーダ30は、各々オーディオエンコーダおよびデコーダと統合され得、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するために、適切なMUX−DEMUXユニット、または他のハードウェアおよびソフトウェアを含み得る。適用可能な場合、いくつかの例では、MUX−DEMUXユニットは、ITU H. 223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠し得る。
[0066] ビデオエンコーダ20およびビデオデコーダ30は各々、1つまたは複数のマイクロプロセッサ、デジタルシグナルプロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなどの、様々な適切なエンコーダ回路のいずれか、またはそれらの任意の組合せとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、デバイスは、ソフトウェアのための命令を適切な非一時的コンピュータ可読媒体に記憶し、本開示の技法を実行するために1つまたは複数のプロセッサを使用してハードウェアでその命令を実行し得る。ビデオエンコーダ20およびビデオデコーダ30の各々は1つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも、それぞれのデバイスにおいて複合エンコーダ/デコーダの一部として統合され得る。
ビデオコーディングプロセス
[0067] 上記で簡潔に述べたように、ビデオエンコーダ20はビデオデータを符号化する。ビデオデータは1つまたは複数のピクチャを備え得る。ピクチャの各々は、ビデオの一部を形成する静止画像である。いくつかの事例では、ピクチャはビデオ「フレーム(frame)」と呼ばれ得る。ビデオエンコーダ20がビデオデータ(例えば、ビデオコーディングレイヤ(VCL)データおよび/または非VCLデータ)を符号化するとき、ビデオエンコーダ20は、ビットストリームを生成し得る。ビットストリームは、ビデオデータのコード化表現を形成するビットのシーケンスを含み得る。ビットストリームはコード化ピクチャと関連データとを含み得る。コード化ピクチャはピクチャのコード化表現である。VCLデータは、コード化ピクチャデータ(すなわち、(1つまたは複数の)コード化ピクチャのサンプルに関連付けられた情報)を含み、非VCLデータは、1つまたは複数のコード化ピクチャに関連付けられた制御情報(例えば、パラメータセットおよび/または補足的な拡張情報)を含み得る。
[0068] ビットストリームを生成するために、ビデオエンコーダ20は、ビデオデータ中の各ピクチャに対して符号化演算を実行し得る。ビデオエンコーダ20がピクチャに対して符号化演算を実行するとき、ビデオエンコーダ20は、一連のコード化ピクチャと関連データとを生成し得る。関連データは、量子化パラメータ(QP:quantization parameter)などのコーディングパラメータのセットを含み得る。コード化ピクチャを生成するために、ビデオエンコーダ20は、ピクチャを等しいサイズのビデオブロックに区分し得る。ビデオブロックは複数のサンプルの2次元アレイであり得る。コーディングパラメータは、ビデオデータのあらゆるブロックについてコーディングオプション(例えば、コーディングモード)を定義し得る。コーディングオプションは、所望のRD性能を達成するために選択され得る。
[0069] いくつかの例では、ビデオエンコーダ20はピクチャを複数のスライスに区分し得る。スライスの各々は、画像またはフレーム中の領域の残り(the rest of the regions)からの情報なしに独立して復号され得る、画像(例えば、フレーム)中の空間的に別個の領域を含み得る。各画像またはビデオフレームは、単一のスライス中で符号化され得るか、あるいは各画像またはビデオフレームは、いくつかのスライス中で符号化され得る。DSCでは、各スライスを符号化するために割り振られるビットの数は、実質的に一定であり得る。ピクチャに対して符号化演算を実行することの一部として、ビデオエンコーダ20は、ピクチャの各スライスに対して符号化演算を実行し得る。ビデオエンコーダ20がスライスに対して符号化演算を実行するとき、ビデオエンコーダ20は、スライスに関連付けられた符号化データを生成し得る。スライスに関連付けられた符号化データは「コード化スライス(coded slice)」と呼ばれ得る。
DSCビデオエンコーダ
[0070] 図2Aは、本開示で説明される態様による技法を実装し得るビデオエンコーダ20の一例を図示するブロック図である。ビデオエンコーダ20は、本開示の技法の一部または全部を実行するように構成され得る。いくつかの例では、本開示で説明される技法は、ビデオエンコーダ20の様々なコンポーネント間で共有され得る。いくつかの例では、追加または代替として、プロセッサ(図示せず)が、本開示で説明される技法の一部または全部を実行するように構成され得る。
[0071] 説明の目的で、本開示では、DSCコーディングのコンテキストにおいてビデオエンコーダ20について説明する。しかしながら、本開示の技法は、他のコーディング規格または方法に適用可能であり得る。
[0072] 図2Aの例では、ビデオエンコーダ20は複数の機能コンポーネントを含む。ビデオエンコーダ20の機能コンポーネントは、色空間変換器(color-space converter)105と、バッファ110と、平坦度検出器(flatness detector)115と、レートコントローラ(rate controller)120と、予測器(predictor)、量子化器(quantizer)、および再構成器コンポーネント(reconstructor component)125と、ラインバッファ(line buffer)130と、インデックスカラー履歴(indexed color history)135と、エントロピーエンコーダ(entropy encoder)140と、サブストリームマルチプレクサ(substream multiplexor)145と、レートバッファ(rate buffer)150とを含む。他の例では、ビデオエンコーダ20は、より多数の、より少数の、または異なる機能コンポーネントを含み得る。
[0073] 色空間変換器105は、入力色空間をコーディング実装において使用される色空間に変換し得る。例えば、例示的な一実施形態では、入力ビデオデータの色空間は、赤、緑、および青(RGB)色空間中にあり、コーディングは、ルミナンスY、クロミナンスグリーンCg、およびクロミナンスオレンジCo(YCgCo)色空間において実装される。色空間変換は、ビデオデータへのシフトおよび追加を含む(1つまたは複数の)方法によって実行され得る。他の色空間(other color-spaces)中の入力ビデオデータが処理され得、他の色空間への変換も実行され得ることに留意されたい。
[0074] 関係する態様では、ビデオエンコーダ20は、バッファ110、ラインバッファ130、および/またはレートバッファ150を含み得る。例えば、バッファ110は、色空間変換されたビデオデータを、ビデオエンコーダ20の他の部分によるそれの使用に先立って保持(例えば、記憶)し得る。別の例では、色空間変換されたデータはより多くのビットを必要とし得るので、ビデオデータはRGB色空間中で記憶され得、色空間変換が必要に応じて実行され得る。
[0075] レートバッファ150はビデオエンコーダ20においてレート制御メカニズムの一部として機能し得、それは、レートコントローラ120に関して以下でより詳細に説明される。各ブロックを符号化することに費やされるビット数は、大いに、実質的に、ブロックの性質に基づいて変動することがある。レートバッファ150は、圧縮されたビデオにおけるレート変動を平滑化することができる。いくつかの実施形態では、レートバッファ(例えば、レートバッファ150)中に記憶されたビットが固定ビットレート(CBR:constant bit rate)でレートバッファから削除されるCBRバッファモデルが採用される。CBRバッファモデルでは、ビデオエンコーダ20がビットストリームにあまりに多くのビットを加えた場合、レートバッファ150はオーバーフローし得る。一方、ビデオエンコーダ20は、レートバッファ150のアンダーフローを防ぐために、十分なビットを加える必要があり得る。
[0076] ビデオデコーダ側では、ビットは、固定ビットレートでビデオデコーダ30のレートバッファ155(以下でさらに詳細に説明される図2Bを参照)に加えられ得、ビデオデコーダ30は、各ブロックについて可変数のビットを削除し得る。適切な復号を保証するために、ビデオデコーダ30のレートバッファ155は、圧縮されたビットストリームの復号中に「アンダーフロー」または「オーバーフロー」すべきでない。
[0077] いくつかの実施形態では、バッファフルネス(BF:buffer fullness)は、バッファに現在あるビットの数を表す値BufferCurrentSizeと、レートバッファ150のサイズ、すなわち、任意の時点においてレートバッファ150に記憶され得るビットの最大数を表すBufferMaxSizeとに基づいて定義され得る。BFは次のように計算され得る。
Figure 2018536364
[0078] 平坦度検出器115は、ビデオデータ中の複雑な(すなわち、平坦でない)エリアからビデオデータ中の平坦な(すなわち、単純なまたは均一な)エリアへの変化を検出することができる。「複雑な」および「平坦な」という用語は、本明細書では、概して、ビデオエンコーダ20がビデオデータのそれぞれの領域を符号化することの困難さを指すために使用される。従って、本明細書で使用される複雑なという用語は、概して、ビデオデータの領域が、ビデオエンコーダ20が符号化することが複雑であることを表し、例えば、テクスチャードビデオデータ(textured video data)、高い空間周波数、および/または符号化することが複雑である他の特徴を含み得る。本明細書で使用する平坦なという用語は、概して、ビデオデータの領域が、ビデオエンコーダ20がエンコーダすることが単純であることを表し、例えば、ビデオデータ中の滑らかな勾配、低い空間周波数、および/または符号化することが単純である他の特徴を含み得る。複雑な領域と平坦な領域との間の遷移が、符号化ビデオデータ中の量子化アーティファクト(quantization artifact)を低減するために、ビデオエンコーダ20によって使用され得る。詳細には、レートコントローラ120、ならびに予測器、量子化器、および再構成器コンポーネント125は、複雑な領域から平坦な領域への遷移が識別されたとき、そのような量子化アーティファクトを低減することができる。
[0079] レートコントローラ120は、コーディングパラメータのセット、例えば、QPを決定する。QPは、レートバッファ150がオーバーフローまたはアンダーフローしないことを保証するターゲットビットレートについてピクチャ品質を最大にするために、レートバッファ150のバッファフルネスとビデオデータの画像アクティビティとに基づいて、レートコントローラ120によって調整され得る。レートコントローラ120はまた、最適RD性能を達成するために、ビデオデータの各ブロックについて特定のコーディングオプション(例えば、特定のモード)を選択する。レートコントローラ120は、再構成された画像の歪みを、レートコントローラ120がビットレート制約を満たすように、すなわち、全体的実コーディングレート(overall actual coding rate)がターゲットビットレート内に収まるように最小限に抑える。
[0080] 予測器、量子化器、および再構成器コンポーネント125は、ビデオエンコーダ20の少なくとも3つの符号化演算を実行し得る。予測器、量子化器、および再構成器コンポーネント125は、いくつかの異なるモードで予測を実行し得る。1つの例示的なプレディケーションモード(predication mode)は、メディアン適応予測(median-adaptive prediction)の修正バージョンである。メディアン適応予測はロスレスJPEG規格(JPEG−LS)によって実装され得る。予測器、量子化器、および再構成器コンポーネント125によって実行され得るメディアン適応予測の修正バージョンは、3つの連続するサンプル値の並列予測を可能にし得る。別の例示的な予測モードはブロック予測である。ブロック予測では、上のラインまたは同じラインの左にある、前に再構成されたピクセルからサンプルが予測される。いくつかの実施形態では、ビデオエンコーダ20およびビデオデコーダ30は、両方とも、ブロック予測使用を決定するために、再構成されたピクセルに対して同じ探索を実行し得、従って、ビットはブロック予測モードで送られる必要がない。他の実施形態では、ビデオエンコーダ20は、ビデオデコーダ30が別個の探索を実行する必要がないように、探索を実行し、ビットストリームにおいてブロック予測ベクトルをシグナリングし得る。成分範囲(component range)の中点を使用してサンプルが予測される中点予測モード(midpoint prediction mode)も実装され得る。中点予測モードは、ワーストケースサンプルにおいてさえも、圧縮されたビデオに必要なビットの数の抑制(bounding)を可能にし得る。図3−26を参照して以下でさらに論じられるように、予測器、量子化器、および再構成器コンポーネント125は、本明細書で説明される1つまたは複数の技法に基づいて、ビデオデータのブロック(または予測の任意の他のユニット)をコーディング(例えば、符号化または復号)するように構成され得る。例えば、予測器、量子化器、および再構成器コンポーネント125は、図3−26で図示される方法を実行するように構成され得る。他の実施形態では、予測器、量子化器、および再構成器コンポーネント125は、ビデオエンコーダ20の1つまたは複数の他のコンポーネントを用いて本明細書で説明される1つまたは複数の方法または技法を実行するように構成され得る。
[0081] 予測器、量子化器、および再構成器コンポーネント125はまた、量子化を実行する。例えば、量子化は、シフタを使用して実装され得る2のべき乗量子化器(power-of-2 quantizer)を介して実行され得る。2のべき乗量子化器の代わりに他の量子化技法が実装され得ることに留意されたい。予測器、量子化器、および再構成器コンポーネント125によって実行される量子化は、レートコントローラ120によって決定されたQPに基づき得る。最終的に、予測器、量子化器、および再構成器コンポーネント125はまた、予測値に逆量子化された残差を加えることと、結果がサンプル値の有効範囲の外側にないことを保証することとを含む再構成を実行する。
[0082] 予測器、量子化器、および再構成器コンポーネント125によって実行される予測、量子化、および再構成に対する上記で説明された例示的な手法は、単なる事例すぎず、他の手法が実装され得ることに留意されたい。また、予測器、量子化器、および再構成器コンポーネント125は、予測、量子化、および/または再構成を実行するための(1つまたは複数の)サブコンポーネントを含み得ることに留意されたい。さらに、予測、量子化、および/または再構成は、予測器、量子化器、および再構成器コンポーネント125の代わりにいくつかの別個のエンコーダコンポーネントによって実行され得ることに留意されたい。
[0083] ラインバッファ130は、予測器、量子化器、および再構成器コンポーネント125ならびにインデックスカラー履歴(indexed color history)135が、バッファされたビデオデータを使用することができるように、予測器、量子化器、および再構成器コンポーネント125からの出力を保持(例えば、記憶)する。インデックスカラー履歴135は、最近使用されたピクセル値を記憶する。これらの最近使用されたピクセル値は、専用シンタックスを介してビデオエンコーダ20によって直接参照され得る。
[0084] エントロピーエンコーダ140は、インデックスカラー履歴135と、平坦度検出器115によって識別された平坦度遷移(flatness transitions)とに基づいて、予測器、量子化器、および再構成器コンポーネント125から受信された予測残差および任意の他のデータ(例えば、予測器、量子化器、および再構成器コンポーネント125によって識別されたインデックス)を符号化する。いくつかの例では、エントロピーエンコーダ140は、サブストリームエンコーダごとにクロックごとに3つのサンプルを符号化し得る。サブストリームマルチプレクサ145は、ヘッダレスパケット多重化方式(headerless packet multiplexing scheme)に基づいてビットストリームを多重化し得る。これは、ビデオデコーダ30が並列に3つのエントロピーデコーダを動作させることを可能にし、クロックごとの3つのピクセルの復号を容易にする。サブストリームマルチプレクサ145は、パケットがビデオデコーダ30によって効率的に復号され得るようにパケット順序を最適化し得る。クロックごとの2のべき乗個のピクセル(例えば、2つのピクセル/クロックまたは4つのピクセル/クロック)の復号を容易にし得る、エントロピーコーディングに対する異なる手法が実装され得ることに留意されたい。
DSCビデオデコーダ
[0085] 図2Bは、本開示で説明される態様による技法を実装し得るビデオデコーダ30の一例を図示するブロック図である。ビデオデコーダ30は、本開示の技法の一部または全部を実行するように構成され得る。いくつかの例では、本開示で説明される技法は、ビデオデコーダ30の様々なコンポーネント間で共有され得る。いくつかの例では、追加または代替として、プロセッサ(図示せず)が、本開示で説明される技法の一部または全部を実行するように構成され得る。
[0086] 説明の目的で、本開示では、DSCコーディングのコンテキストにおいてビデオデコーダ30について説明する。しかしながら、本開示の技法は、他のコーディング規格または方法に適用可能であり得る。
[0087] 図2Bの例では、ビデオデコーダ30は複数の機能コンポーネントを含む。ビデオデコーダ30の機能コンポーネントは、レートバッファ155と、サブストリームデマルチプレクサ160と、エントロピーデコーダ165と、レートコントローラ170と、予測器、量子化器、および再構成器コンポーネント175と、インデックスカラー履歴180と、ラインバッファ185と、色空間変換器190とを含む。ビデオデコーダ30の図示されたコンポーネントは、図2A中のビデオエンコーダ20に関して上記で説明された対応するコンポーネントに類似する。従って、ビデオデコーダ30のコンポーネントの各々は、上記で説明されたビデオエンコーダ20の対応するコンポーネントと同様の様式で動作し得る。いくつかの実施形態では、ビデオエンコーダ20および/またはビデオデコーダ30の1つまたは複数のコンポーネントは、このようなコンポーネントのタスクを行うように構成されたソフトウェアコードを実行するように構成された1つまたは複数のハードウェアプロセッサで実装され得る。他の実施形態では、ビデオエンコーダ20および/またはビデオデコーダ30の1つまたは複数のコンポーネントは、このようなコンポーネントのタスクを行うように構成されたハードウェア回路で実装され得る。
DSCにおけるスライス
[0088] 上述のように、スライスは、概して、画像またはフレーム中の領域の残りからの情報を使用することなく独立して復号され得る、画像またはフレーム中の空間的に別個の領域を指す。各画像またはビデオフレームは単一のスライス中で符号化され得るか、またはそれはいくつかのスライス中で符号化され得る。DSCでは、各スライスを符号化するために割り振られるターゲットビットは、実質的に一定であり得る。
ブロック予測モード
[0089] ビデオデータの単一のブロックはいくつかのピクセルを含み得、ビデオデータの各ブロックは、ブロックがコーディングされ得るいくつかの潜在的なコーディングモードを有する。そのようなコーディングモードのうちの1つが、ブロック予測モードである。ブロック予測モードでは、コーダは、(例えば、現在ブロックが現在スライスの第1のライン中にない場合)前の再構成されたライン中で、または(例えば、現在ブロックが現在スライスの第1のライン中にある場合)コーディングされる現在ブロックに(例えば、ピクセル値が)近い、同じライン中の前の再構成されたブロック中で候補ブロックを見つけることを試みる。いくつかの実施形態では、差分絶対値和(SAD:Sum of Absolute Differences)メトリックによって、ピクセル値間の近さが決定される。コーダは、(例えば、エンコーダとデコーダの両方に知られているあらかじめ定められた値であり得る)探索範囲によって定義された前に再構成されたブロックの任意の部分中で候補ブロックを見つけることを試み得る。探索範囲は、エンコーダが、探索コストを最小限に抑えながら、良好な一致を見つけるために、探索範囲内に潜在的な候補を有するように定義される。ブロック予測モードのコーディング効率は、良好な候補(すなわち、コーディングされる現在ブロックにピクセル値が近いと決定された、探索範囲内の候補)が発見された場合、候補ブロックと現在ブロックとの間の(残差として知られる)差分が小さくなるという事実から来る。小さい残差は、現在ブロックの実際のピクセル値をシグナリングするために必要とされるビットの数と比較して、シグナリングするためにより少数のビットを要し、それにより、より低いRDコストが生じ、RDメカニズムによって選択される可能性が増加する。ある特定のタイプのグラフィックコンテンツについて、ブロック予測モードを有効にすることからの性能ブーストが極めて著しい。
ブロック予測モードでのパラメータ
[0090] ブロック予測モードは、指定された探索範囲が与えられると、符号化される現在ブロックからの最小歪みを提供する候補ブロックを生成するように設計される。いくつかの実施形態では、最小歪みは、SADを使用して定義される。本開示のいくつかの実装では、ブロック予測方法は、3つのパラメータ、すなわち、探索範囲(SR:search range)と、スキュー(skew)(α)と、区分サイズ(partition size)(β)とによって定義される。これらの3つのパラメータは、ブロック予測モードの性能に影響を及ぼし、実装中に調整(すなわち、修正または再構成)され得る。これらのパラメータは、エンコーダとデコーダの両方に知られ得る。
ブロック予測モードでの探索空間
[0091] 本開示のいくつかの実施形態では、探索空間(例えば、エンコーダが、候補ブロックを見つけるために探索し得る、ピクセルの空間ロケーション)は、現在ブロックの特性に基づいて異なり得る。探索空間は、全ての前に再構成されたブロック/ピクセルを包含し得るが、エンコーダおよび/またはデコーダは、例えば、計算複雑さ(computational complexity)を低減するために、候補ブロックのための探索を探索空間内の指定された部分(例えば、ビットストリーム中であらかじめ定義されるかまたはシグナリングされるかのいずれかである1つまたは複数のパラメータによって定義される「探索範囲」)に制限し得る。ブロック予測探索空間の例が図3−図6に示される。図3および図4は、現在スライスの第1のライン中にない現在ブロック(例えば、現在ブロック308および408)を伴う場合を示す。図5および図6は、現在スライスの第1のライン中にある現在ブロック(例えば、現在ブロック506および606)を伴う場合を示す。これらの2つの場合は、スライス中の第1のラインが垂直ネイバー(vertical neighbor)を有していないので、別々に処理される。従って、現在ラインからの再構成されたピクセルは、探索範囲(例えば、探索範囲508および608)として活用され得る。本開示では、現在スライス中の第1のラインはFLSと呼ばれ得、現在スライス中の任意の他のラインはNFLSと呼ばれ得る。
[0092] さらに、本明細書で説明されるブロック予測技法は、単一のラインバッファ(すなわち、1Dブロックサイズ)を使用するコーデックまたは複数のラインバッファ(すなわち、2Dブロックサイズ)を使用するコーデックのいずれかにおいて実装され得る。1Dの場合のための探索空間の例が図3および図5に示され、2Dの場合のための探索空間の例が図4および図6に示される。2Dの場合、探索範囲は、前の再構成されたライン(例えば、前のライン402)からのピクセル、または2Dブロック中のラインと同じラインからの再構成されたブロック(例えば、現在ブロック606のすぐ左にある、現在ライン602中の前の604)を含み得る。2Dブロックは、水平方向または垂直方向のいずれかあるいはその両方に区分され得る。ブロック区分を伴う場合、各ブロック区分について、ブロック予測ベクトルが指定され得る。
ブロック予測モードの例示的な実装
[0093] 本開示のいくつかの実施形態では、SAD以外の歪みメトリック、例えば2乗差分和(SSD:sum of squared difference)が使用され得る。代替または追加として、歪みは重み付けによって修正され得る。例えば、YCoCg色空間が使用されている場合、コストは次のように計算され得る。
Figure 2018536364
[0094] 本明細書で説明されるブロック予測技法は、RGB色空間またはYCoCg色空間のいずれか中で実行され得る。さらに、代替の実装は、両方の色空間を使用し、2つの色空間のうちのどちらが選択されるか(例えば、レートおよび歪みに関して最低コストを有するのがどちらの色空間か)を示す1ビットフラグをデコーダにシグナリングし得る。
[0095] FLSに関する本開示のいくつかの実施形態では、1つまたは複数の直前の再構成されたブロック(direct previous reconstructed block or blocks)は、パイプライン化制約およびタイミング制約により探索範囲から除外され得る。例えば、ハードウェア実装に応じて、コーダは、現在ブロックがコーダによって処理される時までに、直前の再構成されたブロックの処理を完了しない可能性があり(例えば、前のブロックのための再構成されたピクセルは、コーダが現在ブロックを処理し始めるときに知られていない可能性があり)、その結果、遅延または失敗が生じる。そのような実装では、前の再構成されたブロックの使用を、再構成されたピクセル値が知られているブロックに制限することによって(例えば、1つまたは複数の直前の再構成されたブロックを除外することによって)、上記に示されたパイプライン化問題は解決され得る。NFLSに関する本開示のいくつかの実施形態では、現在ブロックの左の探索範囲は、前の再構成されたラインではなく、同じラインからであり得る。このような実施形態のうちのいくつかでは、1つまたは複数の前の再構成されたブロックは、パイプライン化制約およびタイミング制約により探索範囲から除外され得る。
NFLSの例示的な実装
[0096] 図3に示されているように、ブロック予測方法は、現在ブロック308のための候補を見つけるために、探索空間中で探索範囲310(SR)を探索し得る(および図4の探索空間400中でも同様である)。符号化される現在ブロック308の第1のピクセルのx座標位置がjである場合、探索空間内の全ての候補ブロックの開始位置のセットkが次のように与えられ得る。
Figure 2018536364
[0097] この例では、パラメータαは、符号化される現在ブロックに対する探索範囲310のx座標位置をスキューする(skews)。αのより高い値が探索範囲310を右にシフトし、一方、αのより低い値が探索範囲310を左にシフトする。例えば、(i)32のSRおよび15のαが探索範囲310を前のライン302の中央に置き(place)得、(ii)32のSRおよび0のαが探索範囲310を前のライン302の左側に置き得、(iii)32のSRおよび31のαが探索範囲310を前のライン302の右側に置き得る。
[0098] 本開示のいくつかの実装では、探索範囲内にあるが、スライス境界の外側にあるピクセルが、そのピクセルのためのダイナミックレンジの1/2に設定され得る。例えば、コンテンツがRGB888である場合、R、G、およびBのために128のデフォルト値が使用され得る。コンテンツがYCoCg空間中にある場合、Yのために128のデフォルト値が使用され得、CoおよびCgのために0のデフォルト値が使用され得る(例えば、CoおよびCgは、0を中心とする9ビット値である)。
FLSの例示的な実装
[0099] 図5に示されているように、探索範囲は、FLSの場合について異なり得る。これは、垂直ネイバーが、そのような垂直ネイバーが現在フレームの外側にあるので、またはそのような垂直ネイバーが異なるスライス内に含まれているので、利用可能でないからである。FLSの場合に関する本開示のいくつかの実施形態では、ブロック予測のために現在ライン中のピクセルが使用され得る。一実施形態では、現在ブロックの左の現在ライン中の任意のピクセルは探索範囲の一部として考慮され得る。別の実施形態では、1つまたは複数の前にコーディングされたブロック(例えば、現在ブロックのすぐ左にある前のブロック504)は、パイプライン化制約およびタイミング制約により探索範囲から除外され得る。
[0100] FLSのいくつかの実装では、スライスの第1のライン中の最初の数個のブロックのための利用可能な範囲は、一般に他のブロックのために予想される探索範囲よりも小さくなり得る。これは、候補ブロックのための有効な位置が、ラインの最初に開始し、現在ブロックの前に終了するからである。FLS中の最初の数個のブロックの場合、この有効範囲は、所望の範囲(例えば、32個または64個の位置)よりも小さくなり得る。従って、これらのブロックの場合、探索範囲は、候補ブロックの各ブロック区分が探索範囲内に完全に含まれているように調整される必要があり得る。NFLSの場合、探索範囲は、探索位置の総数が、定義された探索範囲(例えば、32個または64個のピクセル位置)に等しくなるように左または右にシフトされ得る。jが現在ブロック中の第1のピクセルであるので、現在ブロック中の最後のピクセルはj+blkWidth−1である。この理由で、探索範囲は、左に(blkWidth−1)ピクセルシフトされる必要があり得る。
[0101] FLSのいくつかの実装では、符号化される現在ブロックの第1のピクセルのx座標ロケーションがjと呼ばれる場合、探索範囲内の全ての候補ブロックの開始位置のセットが次のように与えられ得る。
[0102] (i)直近の前の再構成されたブロックが探索範囲の一部であり、例えば、α=1である場合、
Figure 2018536364
[0103] (ii)n個の直近の前の再構成されたブロックが探索範囲から除外されるである場合、
Figure 2018536364
[0104] ここで、blkxはブロック幅である。NFLSの場合に関して上記で説明されたように、スライス境界の外側の任意のピクセルがデフォルト値に設定され得る。また、スキューパラメータ(skew parameter)がFLSの場合に関連付けられる必要がないことに留意されたい。
ブロック予測モードでコーディングするための例示的なフローチャート
[0105] 図7を参照して、ブロック予測モードでビデオデータのブロックをコーディングするための例示的なプロシージャが説明される。図7に示されているステップは、ビデオエンコーダ(例えば、図2A中のビデオエンコーダ20)、ビデオデコーダ(例えば、図2B中のビデオデコーダ30)、またはそれらの(1つまたは複数の)コンポーネントによって実行され得る。便宜上、方法700は、ビデオエンコーダ20、ビデオデコーダ30、または別のコンポーネントであり得る、(単にコーダとも呼ばれる)ビデオコーダによって実行されるものとして説明される。
[0106] 方法700はブロック701において開始する。ブロック705において、コーダは、現在スライス中の現在ブロックを予測するために使用される候補ブロックを決定する。候補ブロックは、1つまたは複数のブロック予測パラメータによって定義された複数のロケーション(または複数のピクセル位置)の範囲内にあり得る。例えば、ブロック予測パラメータは、(i)複数のロケーションの範囲のサイズを定義する探索範囲パラメータと、(ii)現在ブロックに関する複数のロケーションの範囲の相対ロケーション(relative location)を定義するスキューパラメータと、(iii)現在ブロック中の各区分のサイズを定義する区分サイズパラメータとを含み得る。本開示のいくつかの実施形態では、探索範囲パラメータ、スキューパラメータ、および区分サイズパラメータの各々は、時間的にではなく、空間的に、候補ブロックの複数のロケーションを定義する。
[0107] ブロック710において、コーダは、候補ブロックと現在ブロックとに基づいて予測ベクトルを決定する。予測ベクトルは、現在ブロックに関する候補ブロックのロケーションを識別し得る。予測ベクトルは、1つまたは複数の座標値(例えば、1D空間中のオフセットを示す座標値)を含み得る。ブロック715において、コーダは、予測ベクトルをシグナリングすることを少なくとも部分的に介して、ブロック予測モードで現在ブロックをコーディングする。いくつかの実施形態では、コーダはまた、候補ブロックと現在ブロックとの間の残差をシグナリングし得る。現在ブロックの実際のピクセル値をシグナリングしなければならないのではなく、候補ブロックのロケーションを識別する予測ベクトルと、現在ブロックと候補ブロックとの間の差分を表す残差とをシグナリングすることによって、ビット節約(Bit saving)が達成され得る。方法700はブロック720において終了する。
[0108] 方法700では、図7に示されているブロックのうちの1つまたは複数は削除される(例えば、実行されない)可能性があり、および/または方法が実行される順序は入れ替えられ得る。いくつかの実施形態では、さらなるブロックが方法700に追加され得る。本開示の実施形態は、図7に示されている例にまたはそれによって限定されず、他の変形が本開示の趣旨から逸脱することなく実装され得る。
候補ブロックを見つけた後
[0109] 最良の候補ブロックが決定された後、候補ブロックのピクセル値は、現在ブロックのピクセル値から減算され、その結果、残差が生じる。残差は、ブロック予測モードに関連付けられたあらかじめ選択されたQPに基づいて量子化され得る。量子化された残差は、(固定長または可変長のいずれかであり得る)コードブックを使用して符号化され、固定長コード(fixed-length code)または可変長コード(variable-length code)を使用してシグナリングされ得る。選択されたコードブックは、コーディング効率およびハードウェア複雑さ要件に基づき得る。例えば、選択されたコードブックは指数ゴロムコードブック(Exp-Golomb codebook)であり得る。本開示のいくつかの実施形態では、既存のDSC実装のデルタサイズ単位可変長コーディング(DSU−VLC:delta size unit variable length coding)と同様であるエントロピーコーディング方式が使用され得る。いくつかの実施形態では、残差は、上記で説明された量子化の前に、(例えば、直接コサイン変換、アダマール変換、または他の知られている変換を使用して)変換され得る。
[0110] 本開示のいくつかの実施形態では、現在ブロックの残差中のサンプルは複数のグループに区分され得る(例えば、16個のサンプルを含んでいるブロックに関して、グループごとに4つのサンプル)。ブロック中の全ての係数が0である場合、ブロックの残差は、スキップモードを使用してコーディングされ、すなわち、ブロック中の現在成分がスキップモードを使用してコーディングされるか否かを示すための、ブロックごとの(成分ごとの)1ビットフラグがシグナリングされる。少なくとも1つの0でない値がブロック内に含まれている場合、各グループは、グループが1つの0でない値を有する場合のみ、DSU−VLCを使用してコーディングされ得る。グループ(例えば、残差中の16個のサンプルのうちの4つのサンプル)が0でない値を含んでいない場合、グループは、スキップモードを使用してコーディングされ、すなわち、グループがスキップモードを使用してコーディングされるか否かを示すための、グループごとの1ビットフラグがシグナリングされる。より詳細には、各グループについて、グループ中の全ての値が0であるかどうかを決定するために、探索が実行され得る。グループ中の全ての値が0である場合、「1」の値がデコーダにシグナリングされ得、他の場合(少なくとも1つの値が0でない場合)、「0」の値がデコーダにシグナリングされ、その後にDSU−VLCコーディングのコーディングが続き得る。代替例では、グループ中の全ての値が0である場合、「0」の値がシグナリングされ得、グループが少なくとも1つの0でない値を含んでいる場合、「1」の値がシグナリングされ得る。
[0111] 本開示のいくつかの実施形態では、最良の候補ブロックは、最良のオフセットを含んでいる固定長コードを送信することによって、デコーダに明示的にシグナリングされる。オフセットは「ベクトル」と呼ばれ得る。ベクトルをデコーダに明示的にシグナリングすることの利点は、デコーダがブロック探索自体を実行する必要がないことである。むしろ、デコーダは、明示的にベクトルを受信し、現在ブロックのピクセル値を決定するために、復号された、逆量子化された残差値に、候補ブロックを加える。
ブロック区分
[0112] 本開示のいくつかの実施形態では、コーディングされる現在ブロックが区分され、その結果、ブロックごとに複数の候補ブロックと複数のベクトルとが生じ得る。そのような実施形態のうちのいくつかでは、(1つまたは複数の)ベクトルは、固定長コードを使用して明示的にシグナリングされ得る。例えば、この固定長コードの長さはlog(SR)であり得る。別の実施形態では、(1つまたは複数の)ベクトルは、指数ゴロムまたはゴロムライスコード(Golomb-Rice code)ファミリからのコードなどの、可変長コードを使用して明示的にシグナリングされ得る。このコードブックは、(1つまたは複数の)ベクトルに関連付けられた統計的分布に基づいて選択され得る。また別の実施形態では、(1つまたは複数の)ベクトルは、前にコーディングされた(1つまたは複数の)ベクトルに基づいて予測され得、(1つまたは複数の)ベクトルの残差は、何らかの固定長または可変長コードを使用してコーディングされ得る。また別の実施形態では、(1つまたは複数の)ベクトルは、前にコーディングされた(1つまたは複数の)ベクトルに基づいて予測され得、2つのベクトルが同じであるかどうかをシグナリングするための1ビットフラグが使用され得る。このフラグはSameFlagと呼ばれ得る。SameFlag=1である場合、ベクトル値自体はデコーダにシグナリングされる必要がない。SameFlag=0である場合、ベクトルは、(例えば、固定長コードまたは可変長コードのいずれかを使用して)明示的にシグナリングされる。例示的なブロック区分方式が図8に示されている。
[0113] 図8の図800に示されているように、現在ブロック802が単一の区分を含んでいる。現在ブロック802のためにシグナリングされる情報は、モードヘッダ、ベクトルSameFlag、ベクトルA、およびペイロードを備える。現在ブロック804は、2つの区分、区分Aと区分Bとを含んでいる。現在ブロック804のためにシグナリングされる情報は、モードヘッダ、ベクトルSameFlag、ベクトルA、ベクトルSameFlag、ベクトルB、およびペイロードを備える。上記で説明されたように、上記で列挙された1つまたは複数の項目はシグナリングされない可能性がある。例えば、ベクトルSameFlagが1に等しい場合、後続のベクトルはシグナリングされる必要がない。
[0114] 区分サイズβは、別個のサブブロックへの現在ブロックの区分を決定し得る。そのような場合、各サブブロックについて、別個のブロック予測が実行され得る。例えば、ブロックサイズがN=16であり、区分サイズβ=8β=8である場合、探索は16/8=2つの区分の各々について実行される。別の例では、β=Nである場合、ブロック区分は無効にされる。β<Nである場合、各ベクトルはデコーダに明示的にシグナリングされ得る。(例えば、現在ベクトルを定義するために、前にシグナリングされたベクトルを使用する)ベクトル予測が採用されない場合、各ベクトルは、固定長または可変長コードを使用してシグナリングされる。ベクトル予測が採用される場合、第1のベクトルは、前のコーディングされたベクトルから予測され(例えば、メモリに記憶され)得、n>0について、ベクトルnはベクトルn−1から予測される。
ブロック予測モードにおける可変の区分サイズ
[0115] 上記の例は、1×8のサイズを有する(例えば、1ピクセルの高さと8ピクセルの幅とを有する)、または2×8(例えば、2ピクセルの高さと8ピクセルの幅とを有する)ブロックが、どのようにブロック予測モードでコーディングされ得るかを例示する。図8に示されているように、ブロックは、複数の領域に区分され得、各領域は、異なる区分方式を使用して(例えば、1×2区分を使用して、2×2区分を使用して、など)コーディングされ得、ブロック予測ベクトルは、各区分について指定され得る(例えば、各区分に関連付けられた残差とともにビットストリームにおいてシグナリングされる)。例えば、各ブロックは、2つのピクセル(または、他の固定されたサイズの区分)を含む複数の1×2区分に区分され得る。
[0116] 他の実施形態では、エンコーダは、(ブロック内の各サブ領域についての)各ブロックについての最も効率的であるブロック区分サイズを決定し得る。効率は、所与のブロック区分サイズを使用して、ブロック(またはその中のサブ領域)をコーディングすることに関連付けられたレートおよび歪みに基づいて測定され得る。例えば、4つの2×2領域を含むブロックをコーディングするとき、エンコーダは、単一の区分(例えば、各2×2領域についての単一の2×2区分)を使用して第1の3つの2×2領域をコーディングすること、および2つの区分(例えば、2つの1×2区分)を使用して第4の2×2領域をコーディングすることによって、最大コーディング効率が達成され得ることを決定し得る。エンコーダが各ブロックについての区分サイズを適用可能に選択するのを可能にすることによって、ブロック予測方式の性能はさらに改善され得る。これは、大きい区分が、領域(例えば、領域にわたるピクセル値において、変化がないかまたは閾値量の変化よりも小さいことを示す領域)を平滑化するために使用され得、それにより、ブロック予測ベクトル(例えば、領域のサイズに関連する)をシグナリングするためにより少ないビットを要求するからであり、一方より小さい区分を使用することは、(歪みおよび/またはエントロピーコーディングレートの減少が追加のシグナリングコストを重み付けする)複雑な領域のために使用され得る。例えば、エンコーダは、所与の領域またはブロックが平滑化閾値条件を満たすかどうかを決定し得、所与の領域またはブロックが平滑化閾値条件を満たすと決定することに応答して、より大きい区分サイズを使用してブロック予測モードで所与の領域またはブロックを符号化(他の場合には、より小さい区分サイズを使用してブロック予測モードで所与の領域またはブロックを符号化)し得る。別の例として、エンコーダは、所与の領域またはブロックが複雑さ閾値条件を満たすかどうかを決定し得、所与の領域またはブロックが複雑さ閾値条件を満たすと決定することに応答して、より小さい区分サイズを使用してブロック予測モードで所与の領域またはブロックを符号化(他の場合には、より大きい区分サイズを使用してブロック予測モードで所与の領域またはブロックを符号化)し得る。異なる区分サイズを適用可能に選択するための能力は、ブロック予測モードが、コンテンツタイプ(例えば、グラフィックコンテンツ、自然画像、テストパターン、細かいテキストレンダリング)のより広い範囲で使用されることを可能にし得る。
ブロック予測モードにおけるコーディングの例示的なデータフロー
[0117] 図9は、適応型区分サイズを使用してブロック予測モードでブロックをコーディングするための例示的なデータフロー900を図示する。図9に図示さていれるように、ブロック予測モードで予測される現在ブロック902は、ブロック区分904を含む。一例では、ブロック区分は、1×2または2×2のサイズを有する。ブロック予測(BP:block prediction)探索906は、ブロック予測モードで現在ブロック902(またはブロック区分904)を予測するために利用可能なおよび既にコーディングされているブロックまたは区分を識別するために実施される。図9に示されているように、BP探索906は、例えば、前のライン(例えば、すぐ前のライン(immediately preceding line)または別の先行するラインなどの、現在ブロックを含む現在のラインをコーディングすることに先立ってコーディングされたライン)中の1つまたは複数の前の再構成されたブロック907A、および/または現在のライン(例えば、現在ブロックを含むライン)からの前の再構成されたブロック907Bを含む、探索範囲内を探索し得る。
[0118] エンコーダは、探索範囲において識別された候補ブロックまたは区分に基づいてブロック予測器908を決定する。ブロック予測器908は、ブロック910において現在ブロック902(または候補ブロック902内の現在ブロック区分904)から減算され、減算に基づいて決定された残差は、ブロック912において量子化される。量子化された残差は、エントロピーコーダ920によってエントロピーコーディングされる。さらに、逆量子化914は、量子化された残差に対して実行され、結果が、再構成されたブロック918を生成するためにブロック916においてブロック予測器908に加えられる。BP区分サイズ選択922は、再構成されたブロック918の歪み性能(D)およびエントロピー符号化された残差のレート性能(R)に基づいて実行される。ビットストリーム924は、選択されたBP区分サイズに基づいて生成される。
[0119] 例えば、BP区分サイズ選択922は、現在ブロック902内の各区分領域(例えば、2×2)のレート(例えば、R)および歪み(例えば、D)を入力として受け取り、区分領域が単一のブロック予測ベクトル(BPV:block prediction vector)(例えば、単一の2×2区分について合計1BPV)を使用してコーディングされるべきか、または複数のBPV(例えば、2つの1×2区分について各々1BPVである、合計2BPV)を使用して区分およびコーディングされるべきかを、2つのオプション間のRDトレードオフに基づく予測のために決定し得る。本明細書で論じられるいくつかの例は2×2の区分領域サイズを含む(それにより、選択可能なオプションとして1×2、2×1、および2×2の区分サイズを有する)が、エンコーダによって選択可能な区分サイズは、このような例(例えば、1×2および2×2)で使用されるものに限定されず、ブロックサイズおよび/または領域サイズに基づいて他のサイズ(例えば、2×1)を含み得る。
[0120] いくつかの実施形態では、区分サイズは、現在区分領域またはブロック中で固定される(例えば、1×2、2×2、またはピクセルの任意の他のサブコンビネーション。例えば、あるブロックは、2×8のブロックサイズを有し得、そのブロックは、2×2のサイズを有するサブブロックまたは領域に分割され得る。2×8ブロック内の2×2サブブロックまたは領域は、1×2のサイズを有する区分にさらに区分され得る。このような例では、他の区分から独立して、各1×2区分は単一のBPVを使用して予測され得る。他の実施形態では、区分サイズは可変であり、どの区分サイズを使用して各ブロック、サブブロック、および/または領域がブロック予測においてどのようにコーディングされるかは、各区分方式のレートおよび歪み性能に基づいてエンコーダによって決定され得る。例えば、現在ブロック内の2×2領域(例えば、現在領域)について、2つの1×2区分に現在領域を分割することによって現在領域を予測すること、および(例えば、定義された探索範囲内の、前にコーディングされた1×2区分に各々が向けられている)2つのBPVを別個に使用して2つの1×2区分を予測することが、(例えば、2×2のような他の区分方式と比較して)より良いレートおよび/または歪み性能をもたらす場合、現在領域は、1×2区分方式を使用して予測され得る。一方、(例えば、定義された探索範囲内の、前にコーディングされた2×2区分を示す)1つのBPVを使用して単一の2×2区分として現在領域を予測することが、(例えば、1×2のような他の区分方式と比較して)より良いレートおよび/または歪み性能をもたらす場合、現在領域は、2×2区分方式を使用して予測され得る。予測モードにおいてブロックをコーディングするために使用される区分方式を決定するプロセスは、図14を参照して下記でより詳細に説明される。
ブロックサイズおよびサブブロックサイズ
[0121] M×Nのブロックサイズについて、いくつかの実施形態は、Msub≦MかつNsub≦Nである、サイズMsub×Nsubのサブブロック(本明細書では、領域とも呼ばれる)を参照して説明される。いくつかの実装では、計算を簡単にするために、MsubとNsubとの両方がM×Nブロック内のエントロピーコーディンググループにアラインされる(aligned)。ブロック内の各サブブロックMsub×Nsubは、各区分のために使用されるBPVを用いて、(i)さらに区分されることなく単一のBPVを使用して予測されるか、あるいは(ii)複数の区分に(例えば、2つの1×2区分に)区分されるかのいずれかであり得る。サブブロック全体について単一のBPVを使用すること、または各々がそれ自体のBPVを有する区分にサブブロックを区分することの間の効率的なトレードオフは、より多くのBPVをシグナリングすることがビットストリーム中の余分なレートをもたらす可能性があるが、しかしながら、より多くのBPVを使用することによって、歪みおよびエントロピーコーディングレートは減少し得る。言い換えれば、さらなるBPVをシグナリングするためにより多くのビットを使用することによって、残差(候補ブロック/領域と現在ブロック/領域との間の差)をシグナリングするために使用されるビットの数が減少し、それはさらに、エントロピーコーディングのために使用されるビットの数もまた同様に減少することを引き起こす。エンコーダは、RDコストに関して各オプション(例えば、区分が存在しないこと対複数の区分)を比較し、そのコスト比較に基づいて各サブブロックまたは領域を区分するか否かを選択するか、あるいは最良のRD性能を提供する複数の区分方式から1つの区分方式を選択し得る。
例示的な区分方式
[0122] 図10は、例示的な区分方式を図示する図1000を図示する。図10には、2×2サブブロックまたは領域についての2つの区分オプションが図示されている。この例では、ブロック1002(例えば、ピクセルX〜X15を含む)は、2×8のサイズを有しており、ブロック内のサブブロックまたは領域1004(例えば、ピクセルX、X、X、およびXを含む)は、2×2のサイズを有している。区分オプション1006は、単一のBPVを使用してサブブロックまたは領域1004が予測される例を図示しており、区分オプション1008は、サブブロックまたは領域1004内の各1×2区分について2つのBPVを使用してサブブロックまたは領域1004が予測される例を図示している。図11で示される、ブロック予測モードについてのエントロピーコーディンググループ構造1100にサブブロックまたは領域をアラインするために、アドバンストDSC(Adv−DSC)のようないくつかの実装において、2×2のサイズを有するサブブロックまたは領域が使用される。図11の例では、エントロピーコーディンググループ0、1、2、および3が図示されており、各々が、ブロック内の4つの2×2サブブロックまたは領域のうちの1つに対応する。しかしながら、本明細書で説明される技法は、このような実施形態に限定されるものではなく、いずれのブロックサイズM×NおよびいずれのサブブロックサイズMsub×Nsubにも拡張され得る。しかしながら、下記に図示される例では、パラメータM=2、N=8、Msub=2、Nsub=2が使用される。いくつかの実施形態では、サブブロックおよび/または区分方式は、エントロピーコーディンググループに基づいて決定され得る。例えば、サブブロックおよび/または区分方式は、各サブブロックおよび/または区分方式が単一のエントロピーコーディンググループ内に含まれるように決定され得る。
区分サイズを決定する
[0123] エンコーダは、(i)単一の2×2区分として各2×2領域をコーディングするか、または(ii)2つの1×2区分に領域を分割し、最小RDコストに基づいて各1×2区分を別個にコーディングするかを決定し得る。RDコストは、下記に示されるように計算され得る。
Figure 2018536364
[0124] いくつかの実装では、BPVは、log(SR)log(SR)に等しい、固定数のビット(BPVbits)を用いてシグナリングされ、ここで、SRはブロック予測モードに関連付けられた探索空間(または探索範囲)である。例えば、探索空間が64個の位置からなる場合、log(64)=6ビットが各BPVをシグナリングするために使用される。
[0125] 可変の区分サイズを用いたブロック予測のための探索空間は、図3〜6を参照して論じられる探索範囲とは若干異なり得る。特に、Msub×Nsubサブブロックは、高さMsubを用いた探索空間を利用し得る。このような場合には、可変の区分サイズを用いないブロック予測に対して、可変の区分サイズを用いたブロック予測を実装するために、追加のラインバッファを必要とし得る。このような探索空間の例が、2×2のサブブロックサイズに関する図12において証明される。図12は、例示的な探索範囲を図示する図1200を図示する。図12に示されているように、現在ライン1202は、(i)現在サブブロック1206を有する現在ブロック1204と、(ii)前のブロック1208とを含む。図12の例では、前のライン1210は、現在サブブロック1206を予測するために候補サブブロック1214をエンコーダが選択し得る探索範囲1212を含む。1D区分(例えば、1×2)についての探索範囲または空間は、図3を参照して先に説明された探索範囲に類似しており、単一の前の再構成されたラインに依存し得る。
[0126] いくつかの実施形態では、歪みD2×2およびD1×2は、YCoCg色空間中の修正された差分絶対値和(SAD)を使用して計算され得る。例えば、YCoCg色空間中のピクセルA(例えば、現在サブブロックまたは区分中の)とピクセルB(例えば、候補サブブロックまたは領域中の)との間のSAD歪みは、下記のように計算され得る。
Figure 2018536364
[0127] 現在サブブロックまたは区分が1より多いピクセルを有する場合、全体の現在サブブロックまたは区分についての歪みは、現在サブブロックまたは区分中の各ピクセルについて計算された個々のSADを合計することによって計算され得る。現在サブブロックまたは区分のピクセル値は、実際のピクセル値または再構成されたピクセル値(例えば、候補予測器(candidate predictor)および残差に基づいて計算された)であり得る。いくつかの実装では、ラムダパラメータは、2の値で固定され得る。他の実装では、このパラメータは、ブロックサイズ、ビットレート、または他のコーディングパラメータに依存して調整され(be tuned)得る。
[0128] エントロピーコーディングコストECbitsは、各2×2の領域について計算され得る。各エントロピーコーディンググループにおける4つのサンプルは、単一のBPV(例えば、2×2区分)から予測される2×2の量子化された残差、または2つのベクトル(例えば、2つの1×2区分)を利用する2×2の量子化された残差のいずれかに由来し得る。例えば、エントロピーコーディングコストは、(例えば、(1つまたは複数の)ベクトルおよび残差を含む)ビットストリーム中の各エントロピーコーディンググループをシグナリングするために必要とされるビットの数を表し得る。計算されたエントロピーコーディングコストに基づいて、エンコーダは、各2×2領域についての最低コストを有する区分方式を選択し得る。いくつかの実施形態は、2×2サブブロックサイズ、2×2エントロピーコーディンググループ、および2つの区分方式(1×2および2×2)を有する2×8ブロックを参照して論じられるが、本明細書で説明される技法は、他のブロックサイズ、サブブロックサイズ、エントロピーコーディンググループ、および/または区分方式に拡張され得る。
ビットストリーム中のシグナリングコーディング情報
[0129] 図10に示される2×8ブロック1002では、4つの2×2領域の各々が、上記で説明されたRDコスト分析に基づいて区分され得る。例えば、各2×2領域は、単一の2×2区分または2つの1×2区分のいずれかに区分され得る。このような区分の4つの例が、図13の図1300で図示される。図13に示されているように、ブロック1302は、2×2区分方式に基づいて予測された4つのサブブロックを有し、ブロック1304は、2×2区分方式に基づいて予測された3つのサブブロックと、1×2区分方式に基づいて予測された1つのサブブロックとを有し、ブロック1306は、1×2区分方式に基づいて予測された4つのサブブロックを有し、ブロック1308は、2×2区分に基づいて予測された1つのサブブロックと、1×2区分方式に基づいて予測された3つのサブブロックとを有する。デコーダにBPVをシグナリングすることに加えて、エンコーダはまた、デコーダが区分を適切に推測することができるように、各2×2領域についての1ビットを送り得る。Adv−DSC実装のようないくつかの実装では、ブロック内の各領域(例えば、2×8ブロックにおける各2×2領域)のために選択された区分方式を示す4つのビットのグループは、ビットストリームにおいてシグナリングされる。このような実装では、4つのビット「1011」は、ブロック中の第1、第3、および第4の領域(例えば、2×2サブブロック)が第1の区分方式に基づいて(例えば、1×2区分に基づいて)予測またはコーディングされ、一方、第2の領域(例えば、2×2サブブロック)は、第2の区分方式に基づいて(例えば、2×2区分に基づいて)予測またはコーディングされることを示し得る。いくつかの実施形態では、ビットストリーム中のこれら4つのビットに後続して、BPVが、BPVごとの固定されたビットを使用してシグナリングされ得る。先の例(例えば、「1011」のビットシーケーンス)では、7BPVがシグナリングされ得る。
ブロック予測モードでコーディングするための例示的なフローチャート
[0130] 図14を参照して、ブロック予測モードでビデオデータのブロックをコーディングするための例示的なプロシージャが説明される。図14に図示されるステップは、ビデオエンコーダ(例えば、図2Aのビデオエンコーダ20)、またはそれらの(1つまたは複数の)コンポーネントによって実行され得る。便宜上、方法1400は、ビデオエンコーダ20、または別のコンポーネントであり得る、(単にコーダとも呼ばれる)ビデオコーダによって実行されるものとして説明される。
[0131] 方法1400はブロック1401において開始する。ブロック1405において、コーダは、第1の区分方式を使用して現在領域(例えば、ブロック予測モードでコーディングされるビデオデータのブロック内の)を予測するために使用される1つまたは複数の第1の候補領域を決定する。例えば、第1の候補領域は、2×8ブロックにおける2×2領域のうちの1つであり得る。第1の区分方式は、現在領域が複数の区分(例えば、2つの1×2区分)に区分される区分方式であり得る。いくつかの実施形態では、1つまたは複数の第1の候補領域は、第1の区分方式に関連付けられたロケーションの第1の範囲(例えば、第1の区分方式に関連付けられた探索範囲)内にある。1つまたは複数の第1の候補領域は、ビデオ符号化デバイスのメモリに記憶され得る。
[0132] ブロック1410において、コーダは、第2の区分方式を使用して現在領域を予測するために使用される1つまたは複数の第2の候補領域を決定する。例えば、第2の区分方式は、現在領域が複数の区分に区分されない(例えば、現在領域が単一の2×2区分としてコーディングされる)区分方式であり得る。別の例では、第2の区分方式は、現在領域が、第1の区分方式のために使用される区分の数とは異なる区分の数に区分される区分方式であり得る。いくつかの実施形態では、1つまたは複数の第2の候補領域は、第2の区分方式に関連付けられたロケーションの第2の範囲(例えば、第2の区分方式に関連付けられた探索範囲)内にある。1つまたは複数の第2の候補領域は、ビデオ符号化デバイスのメモリに記憶され得る。
[0133] ブロック1415において、コーダは、第1の区分方式を使用して現在領域をコーディングすることに関連付けられた第1のコストが、第2の区分方式を使用して現在領域をコーディングすることに関連付けられた第2のコストよりも大きいことを決定する。例えば、コーダは、第1の区分方式を使用して現在領域をコーディングすることに関連付けられたレートおよび歪みに基づくコスト、および第2の区分方式を使用する現在領域をコーディングすることに関連付けられたレートおよび歪みに基づくコストを計算し、計算されたコストを比較し得る。
[0134] ブロック1420において、コーダは、現在領域に関する1つまたは複数の第2の候補領域のロケーションを識別する1つまたは複数の予測ベクトルをシグナリングすることを少なくとも部分的に介して、第2の区分方式を使用して現在領域をコーディングする。方法1400はブロック1425において終了する。
[0135] 方法1400では、図14に示されているブロックのうちの1つまたは複数は削除され(例えば、実行されない)得、および/または方法が実行される順序は入れ替えられ得る。いくつかの実施形態では、さらなるブロックが方法1400に追加され得る。本開示の実施形態は、図14に示されている例にまたはそれによって限定されず、他の変形が本開示の趣旨から逸脱することなく実装され得る。
4:2:0および4:2:2クロマサブサンプリングフォーマットへの拡張
[0136] いくつかの実装では、本開示で説明されるブロック予測技法(例えば、ブロック予測モードで可変の区分サイズを使用する)は、4:4:4クロマサンプリングフォーマットのみに対して利用され得る。このフォーマットは、主にグラフィックコンテンツのために使用される。例えば、4:4:4クロマサンプリングフォーマットは、(例えば、クロマサブサンプリングを使用しない)同じサンプリングレートを有する色成分(例えば、ルーマ成分およびクロマ成分)を含むイメージまたはビデオデータを利用する。しかしながら、4:4:4クロマサンプリングフォーマットは、他のビデオアプリケーションのために主に使用される頻度は少ない可能性がある。クロマサブサンプリングが提供し得る大幅な圧縮のために、4:2:0および4:2:2の両方のクロマサブサンプリングフォーマットは、ビデオアプリケーションのために主に使用される。例えば、DSCのいくつかのバージョン(例えば、DSCv1.x)は、4:2:0および4:2:2をサポートし得る。このようなクロマサブサンプリングフォーマットについてのサポートは、将来的なDSC実装で利用または要求され得る。よって、いくつかの実施形態では、本開示で説明されるブロック予測技法(例えば、ブロック予測モードで可変の区分サイズを使用する)は、4:2:0および/または4:2:2フォーマットに拡張される。4:2:0および4:2:2クロマサブサンプリングフォーマットが本明細書で使用されるが、本出願で説明される様々な技法は、他の既知のサンプリングフォーマットに適用され得る。
[0137] いくつかの実施形態では、可変の区分サイズを用いたブロック予測のためのアルゴリズムは、クロマサンプリングフォーマットから独立して、同じ方法で大いに機能する。このような実施形態では、フォーマット(例えば、4:4:4、4:2:2、4:2:0など)に関係なく、単一の区分(例えば、2×2)を使用するか、または複数の区分(例えば、2つの別個の1×2区分)を使用するかの決定、あるいは、現在サブブロックまたは領域をコーディングするために使用される区分の数(例えば、1、2、3、4など)の決定は、ルーマサンプルの各サブブロックまたは領域(例えば、2×2ブロック)のためになされ得る。しかしながら、各区分におけるまたは各ブロックにおけるクロマサンプルの数は、サブサンプリングフォーマットに依存して異なり得る。加えて、エントロピーコーディンググループとのアライメントがクロマ成分にもはや利用可能ではない可能性があるため、エンコーダの決定は、4:2:2および/または4:2:0クロマサブサンプリングフォーマットにおいて修正されることを必要とし得る。従って、エンコーダの決定(例えば、最小RDコストに基づいて、エンコーダが単一の2×2区分または2つの1×2区分に各2×2領域を分割するかどうかを決定するとき)のための各区分についてのレート(例えば、単一の2×2区分、または2つの別個の1×2区分のような区分に関連付けられたレート値)は、4:2:2および4:2:0についてのルーマサンプルだけに依存し得る。例えば、SAD歪みを計算するとき、(1つまたは複数の)クロマ成分に関連した任意の項(terms)は、ゼロに設定され得る。
4:2:0クロマサブサンプリングフォーマットのためのBP探索
[0138] 4:2:0モード(4:2:0クロマサブサンプリングフォーマット)での2×2区分に関して、各区分は、クロマ成分(例えば、CoおよびCg、またはCbおよびCr)の各々について単一のクロマサンプルを含み得る。いくつかの実施形態では、(例えば、現在領域またはブロックにおいて、RDコストを計算するためにおよび/またはサンプルを予測するために)使用されるクロマサンプルは、区分と交差する(intersects)ものである。他の実施形態では、使用されるクロマサンプルは、隣接する区分から導出され得る。4:2:0モードのための例示的な2×2探索1500が図15で示されている。図15では、クロマサイト(chroma sites)(例えば、クロマサンプルを有するサンプル/ピクセルロケーション)は、「X」を使用して示される。例えば、区分Aの左上のサンプル、区分Bの右上のサンプル、および現在区分の左上のサンプルは、それぞれの区分と交差するクロマサイトを備える。このようなクロマサイトは、それぞれの区分のために行われる全ての計算のために(例えば、クロマサンプル値を使用して差分値を計算するために)使用され得る。
[0139] 4:2:0モードでの1×2区分について、現在ブロックの第2のライン中にクロマサイトが存在しないため、現在ブロックの第1のライン中の1×2区分と、現在ブロックの第2のライン中の1×2区分との間で区別(distinction)がなされる必要があり得る。例えば、現在ブロックの第1のライン中の区分について、歪み値の計算は、2つのルーマサンプルと各クロマ成分についての1つのクロマサンプルとを含み得る。現在ブロックの第2のライン中の区分に関して、歪み値の計算は、ルーマサンプル(例えば、2つのルーマサンプル)のみを含み得る。図16の例1600では、現在の1×2区分Aは、第1のライン中にあり、クロマサイトを含む。よって、現在の1×2区分Aを予測するために選択される候補区分は、候補の1×2区分Aであり、それはまた、クロマサイトを含む。同様に、現在の1×2区分Bは、第2のライン中にあり、クロマサイトを含まない。よって、現在の1×2区分Bを予測するために選択される候補区分は、候補の1×2区分Bであり、それはまた、クロマサイトを含まない。
4:2:2クロマサブサンプリングフォーマットのためのBP探索
[0140] 4:2:2モード(4:2:2クロマサブサンプリングフォーマット)での2×2区分に関して、各区分は、4つのルーマサンプルと、クロマ成分(例えば、CoおよびCg、またはCbおよびCr)の各々についての2つのクロマサンプルとを含み得る。4:2:2モードのための例示的な2×2探索1700が図17で示される。図17では、クロマサイト(例えば、クロマサンプルを有するピクセルロケーション)は、「X」を使用して示される。例えば、区分Aの2つの左のサンプル、区分Bの2つの右のサンプル、および現在区分の2つの左のサンプルは、それぞれの区分と交差するクロマサイトを備える。このようなクロマサイトは、それぞれの区分のために行われる全ての計算のために(例えば、クロマサンプル値を使用して差分値を計算するために)使用され得る。
[0141] 4:2:2モードでの1×2区分について、各区分は、2つのルーマサンプルと、クロマ成分(例えば、CoおよびCg、またはCbおよびCr)の各々についての1つのクロマサンプルとを含む。4:2:0モードとは異なり、4:2:2モードにおいて現在ブロックの第1のライン中の区分と、現在ブロックの第2のライン中の区分との間の区別は存在しない可能性がある。4:2:2クロマサブサンプリングのための1×2区分についての例示的なブロック予測探索1800が図18で図示される。図18の例では、現在の1×2区分Aは第1のライン中にあり、現在の1×2区分Bは第2のライン中にあり、現在区分AおよびBの各々は、クロマサイトを含む。現在区分Aは、候補の1×2区分Aに基づいて予測され、それは、第1のサンプル中にクロマサイトを含み、現在区分Bは、候補の1×2区分Bに基づいて予測され、それは、第2のサンプル中にクロマサイトを含む。よって、クロマサイトが候補区分内に位置するかどうかに関わらず、クロマサンプルは、現在区分中のクロマサンプルを予測するために使用され得る。
エンコーダの決定
[0142] 4:2:2および4:2:0フォーマットでは、各クロマ成分について、ブロックごとに4未満のエントロピーコーディンググループが存在し得る。例えば、4つのエントロピーコーディンググループは、ルーマ成分のために使用され得、2つ(または1つ)のエントロピーコーディンググループは、オレンジのクロマ成分のために使用され得、2つ(または1つ)のエントロピーコーディンググループは、緑のクロマ成分のために使用され得る。所与のブロックをコーディングするために使用されるエントロピーコーディンググループの数は、所与のブロック中のルーマまたはクロマサンプルの数に基づいて決定され得る。いくつかの実施形態では、エントロピーコーディンググループは、所与のブロックがコーディングされるコーディングモードに基づいて、エンコーダによって決定される。他の実施形態では、エントロピーコーディンググループは、適用可能なコーディング規格で(例えば、所与のブロックがコーディングされるコーディングモードに基づいて)設定される。
[0143] いくつかの実施形態では、量ECbitsは、クロマについてエンコーダによって必ずしも正確には決定されない。このような実施形態のうちのいくつかでは、4:2:2および4:2:0フォーマットのためにルーマサンプルのみを使用して計算されるエントロピーコーディングレートに基づいて、エンコーダは、1×2区分を使用するか、または2×2区分を使用するかを決定し得る。他の実施形態では、量ECbitsは、クロマについてエンコーダによって決定され、4:2:2および4:2:0フォーマットのためにルーマおよびクロマサンプルの両方を使用して計算されたエントロピーコーディングレートに基づいて、エンコーダは、1×2区分を使用するか、または2×2区分を使用するかを決定し得る。
シグナリング
[0144] いくつかの実施形態では、エンコーダから、各ブロックについてまたは各色成分ついてデコーダに送信されるエントロピーコーディンググループの数は、クロマサブサンプリングフォーマットに依存して変更され得る。いくつかの実装では、エントロピーコーディンググループの数は、コーデックスループットが十分高いことを保証するように変更される。例えば、4:4:4モードでは、2×8ブロックは、図11で図示されるような4つのエントロピーコーディンググループを含み得る。このような例では、4つのエントロピーコーディンググループは、各色成分(color components)(例えば、Y、Co、およびCg)のために使用され(例えば、エンコーダによってシグナリングされ)得る。表1は、4:2:2および4:2:0モードのために使用されるエントロピーコーディンググループの数への、例示的な変更を説明する。上記で説明されたシグナリングの残り(remainder)(例えば、BPVのシグナリング、区分方式のインジケーションのシグナリングなど)は、4:2:2および4:2:0モードについて(4:4:4モードに関して説明されたシグナリングから)変更されない可能性がある。例えば、表1では、成分0がルーマ(Y)に対応し得、成分1がオレンジクロマ(Co)に対応し得、成分2がグリーンクロマ(Cg)に対応し得る。
Figure 2018536364
利点
[0145] 本開示で説明される1つまたは複数のブロック予測モード技法は、非対称設計を使用して実装され得る。非対称設計は、より費用がかかるプロシージャがエンコーダ側で実行されることを可能にし、デコーダの複雑さを減少させる。例えば、(1つまたは複数の)ベクトルがデコーダに明示的にシグナリングされるので、エンコーダは、デコーダと比較して作業の大部分を行う。これは、エンコーダが、しばしば、最先端のプロセスノード(例えば、20nm以下)上で高い周波数で動作するシステムオンチップ(SoC)設計の一部であるので望ましい。一方、デコーダは、制限されたクロック速度とはるかに大きいプロセスサイズ(例えば、65nm以上)とを有するディスプレイドライバ集積回路(DDIC)チップオングラス(COG:chip-on-glass)ソリューションで実装される可能性がある。
[0146] さらに、ブロック区分サイズの適応可能な選択は、ブロック予測モードがコンテンツタイプのより広い範囲に対して使用されることを可能にする。BPVを明示的にシグナリングすることは費用がかかるので、可変の区分サイズは、2×2区分を使用して十分に予測されることができるイメージ領域についての低減されたシグナリングコストを可能にする。極めて複雑な領域について、より高いシグナリングコストを補うようにエントロピーコーディングレートが十分に低減され得る場合、またはRDトレードオフが1×2をさらに支持する(in favor of)ように歪みが十分に低減され得る場合、1×2区分サイズが選択され得る。例えば、ブロック区分サイズの適応可能な選択は、自然画像、テストパターン、細かいテキストレンダリングなどを含む、全てのコンテンツタイプにわたる性能を上昇させ得る。いくつかの実施形態では、本明細書で説明される適応可能な区分技法は、2×2よりも大きいブロック区分サイズおよび/または2×8よりも大きいブロックサイズを考慮することで拡張され得る。
[0147] 本明細書で説明される1つまたは複数の技法は、固定ビットレートバッファモデルを用いて固定されたビット(fixed-bit)のコーデックにおいて実装され得る。このようなモデル、レートバッファ中に記憶されたビットは、固定ビットレートにおいてレートバッファから削除される。よって、ビデオエンコーダがビットストリームにあまりに多くのビットを加えた場合、レートバッファはオーバーフローし得る。一方、ビデオエンコーダは、レートバッファのアンダーフローを防ぐために、十分なビットを加える必要があり得る。さらに、ビデオデコーダ側では、ビットは、固定ビットレートでレートバッファに加えられ得、ビデオデコーダは、各ブロックについて可変数のビットを削除し得る。適切な復号を保証するために、ビデオデコーダのレートバッファは、圧縮されたビットストリームの復号中に「アンダーフロー」または「オーバーフロー」すべきでない。本明細書で説明される1つまたは複数の技法は、符号化および/または復号中、このようなアンダーフローまたはオーバーフローが起こらないことを保証し得る。いくつかの実施形態では、エンコーダは、ビットバジェット制約(a bit-budget constraint)下で動作し得、ここで、エンコーダは、所与の領域、スライス、またはフレームをコーディングするために固定数のビットを有する。このような実施形態では、ビットバジェットまたは制約に関連した他のビット/帯域幅が満たされ得ることをエンコーダが保証できるように、複数のコーディングモードのうちの各1つの、いくつのビットが、所与の領域、スライス、またはフレームをコーディングできることが必要であるかを正確に(推定する必要なく)知ることができることは、エンコーダにとって不可欠(critical)である。例えば、所与の領域、スライス、またはフレームのコーディングが、推定されたより多くのビットを必要とする場合、いずれの予備的な測定も実施しなければならないということなく、エンコーダは、所与のコーディングモードにおいて所与の領域、スライス、またはフレームをコーディングし得る。
[0148] さらに、本明細書で説明される1つまたは複数の技法は、ディスプレイリンクを介した送信におけるビデオ圧縮技術に関連付けられた特定の技術的問題を克服する。ある領域が複数の候補領域(例えば、複数の候補領域のうちの対応する1つに基づいて予測される領域中の各区分)に基づいてコーディングされることを可能にすることによって、ビデオエンコーダおよびデコーダは、領域の性質(例えば、平滑、複雑など)に基づいて、カスタマイズされた予測を提供することができ、それによりビデオエンコーダおよびデコーダ(例えば、ハードウェアおよびソフトウェアコーデック)性能を改善する。
ブロック予測モードのための複数の探索範囲
[0149] 図3〜6を参照して説明されるように、探索空間(例えば、エンコーダが、候補ブロックを見つけるために探索し得る、ピクセルの空間ロケーション)は、現在ブロックの特性に基づいて異なり得る。例えば、探索空間は、全ての前に再構成されたブロック/ピクセルを潜在的に含み得る。いくつかの実施形態では、エンコーダおよび/またはデコーダは、例えば、計算複雑さを低減するために、候補ブロックのための探索を探索空間内の指定された部分(例えば、ビットストリーム中であらかじめ定義されるかまたはシグナリングされるかのいずれかである1つまたは複数のパラメータによって定義される「探索範囲」)に制限し得る。いくつかの実装では、ブロック予測は、ブロック予測モードでコーディングされた各ブロックについての単一の探索範囲を利用する。これらの実装では、現在ブロックに関する探索範囲のロケーションは、現在ブロックがFLS(スライスの第1のライン)にあるかNFLS(スライスの第1でないライン)にあるかに依存し得る。図19の図1900に示されているように、現在ブロック1910がFLSである場合、探索範囲は、同じブロックライン中の現在ブロックの左にあり得(例えば、FLS探索範囲1920)、現在ブロックがNFLSにある場合、探索範囲は、現在ブロックラインのすぐ上のブロックラインにあり得る(例えば、NFLS探索範囲1930)。ブロックラインという用語は、その通常の意味を有していることに加え、ブロックに属する全てのラスタスキャンラインを含み得る。例えば、ブロックサイズが2×8ピクセルである(アドバンストディスプレイストリーム圧縮[ADSC:Advanced Display Stream Compression]が2×8ピクセルの標準的なブロックサイズを有する)場合、ブロックラインは、2つのラスタスキャンラインを含むであろう。
[0150] 対照的に、本開示のいくつかの実施形態では、エンコーダおよび/またはデコーダは、複数の探索範囲を維持し得る。複数の探索範囲がブロック予測モードでブロックをコーディングするために使用されることを可能にすることによって、より良い候補区分に位置している可能性が高くなり得(例えば、ブロック予測モードでコーディングされた各ブロックについて単一の探索範囲のみを考慮する前の実装と比較して)、それにより、ブロック予測モードのコーディング効率および/またはコーディング性能を改善する。さらに、探索範囲を適用可能に選択するためのエンコーダが各ブロックをコーディングするために使用されることを可能にすることによって、ブロック予測方式の性能は、さらに改善され得る。
[0151] このような実施形態のうちのいくつかでは、ブロック予測モードで所与のブロックをコーディングする際に使用するために複数の探索範囲が考慮され得るが、探索範囲のうちの1つのみが、ある時間において使用されることが可能であり得る。例えば、ブロック予測モードでコーディングされている各ブロックは、複数の探索範囲のうちの、両方ではなく1つに関連付けられ得る。いくつかの実施形態では、ブロック予測モードでコーディングされるブロックが複数の区分を有する場合、それらの区分のコーディングは、ブロックのために選択された同じ探索範囲を使用して各区分がコーディングされるように、制約され得る。単一のブロックのために使用される探索範囲の数を制限することによって、エンコーダは、単一のビットを使用して、どの探索範囲が使用されるかをデコーダに容易にシグナリングすることができる。他の実施形態では、1より多い探索範囲は、単一のブロックのために使用され得る。例えば、第1の探索範囲は、単一のブロック中の第1の区分をコーディングするために使用され得、第1の探索範囲とは異なる第2の探索範囲は、単一のブロック中の第2の区分をコーディングするために使用され得る。
[0152] 本開示のいくつかの実施形態では、2つの探索範囲(SRおよびSR)は、図20の図2000に示されているように、エンコーダおよび/またはデコーダによって維持される。FLS内のブロックについて、参照のために現在ブロックラインを使用することが唯一のオプションであるので、2つの探索範囲間の区別は存在しない可能性がある(または、ブロック予測の結果または性能において差異が存在しない可能性がある)。例えば、現在ブロック2010がFLS内にある場合、SR探索範囲2020のみが現在ブロック2010をコーディングするために使用され得、SR探索範囲2030が利用可能ではない可能性がある。一方、現在ブロック2010がNFLS内にある場合、SR探索範囲2020およびSR探索範囲2030は両方とも利用可能であり得、探索範囲2020と2030のうちのいずれかが、ブロック予測モードで現在ブロック2010をコーディングするために使用され得る。図20に図示されるように、SR探索範囲2030は、前の再構成されたブロックライン(例えば、最も最近再構成された1つまたは複数のブロックライン)からのデータ(例えば、現在ブロックのコーディングに先立ってコーディングされたピクセル)を含み、SR探索範囲2020は、現在ブロックラインから(例えば、現在ブロックの左まで)のデータ(例えば、現在ブロックのコーディングに先立ってコーディングされたピクセル)を含む。いくつかの実施形態では、1つまたは複数の最も最近再構成されたピクセルまたはブロックは、パイプライン化の理由(pipelining reasons)から、(1つまたは複数の)探索範囲から除かれ得る。例えば、現在ブロックすぐ左にある、1つまたは複数のブロック(例えば、ピクセルまたはブロックの閾値数)は、探索範囲SRから除かれ得る。(1つまたは複数の)探索範囲から除かれたピクセルまたはブロックの数は、パイプライン化制約(pipelining constraints)に依存し得る。
[0153] エンコーダは、2つの探索範囲に関して独立して、現在ブロック内の全ての区分のためにブロック予測探索を行い得る。例えば、現在ブロックが2つの区分を有する場合、エンコーダは、第1の探索範囲において第1の区分のためにブロック予測探索を行い得、次に、第1の探索範囲において第2の区分のためにブロック予測探索を行い得る。その探索に基づいて、エンコーダは、第1の探索範囲において複数のブロックまたは複数のブロック区分を使用して現在ブロック中の2つの区分をコーディングするための第1のコストを決定し得る。次に、エンコーダは、第2の探索範囲において第1の区分のためにブロック予測探索を行い得、次に、第2の探索範囲において第2の区分のためにブロック予測探索を行い得る。この探索に基づいて、エンコーダは、第2の探索範囲において複数のブロックまたは複数のブロック区分を使用して現在ブロック中の2つの区分をコーディングするための第2のコストを決定し得る。レートおよび歪みコストが現在ブロック全体について最小化されるように(例えば、現在ブロック内の全ての区分を予測するために)、探索範囲におけるブロックまたはブロック区分が選択され得る。
[0154] 各探索範囲についてのコスト(例えば、レートおよび歪み推定)を決定すると、エンコーダは、本開示で論じられるようなRDコスト(例えば、D+λ・R)を最小化することによって、2つのオプション間で選択することができる。エンコーダは、最低RDコストをもたらす探索範囲を選択し、選択された探索範囲を使用して、現在ブロックをコーディングし得る。現在ブロックを復号するために使用される探索範囲のインジケーションは、例えば、ビットストリームにおいて明示的に各ブロックについての1ビットフラグをシグナリングすることによって、デコーダに送信される。よって、複数の探索範囲の使用によって必要とされるデコーダ側の変更は、最小限である。本質的に、一方の探索範囲は、もう一方と置き換えられ、ブロック予測のための全ての他のステップは、複数の探索範囲を使用しない実装においてのように行われ得る。
[0155] 他の実施形態では、選択された探索範囲をシグナリングする1ビットフラグは、省略され得る。このような実施形態では、探索範囲は、ブロック予測モードの別個のインスタンスに各々関連付けられ得、ここで、探索範囲インデックスは、モードヘッダによって暗黙的にシグナリングされ得る。例えば、ブロックに関連付けられたコーディングモードをシグナリングために3ビットが使用される場合、6つのコーディングモードのみがエンコーダまたはデコーダに利用可能であり、同じ3ビットのシンタックス要素が、2つのさらなるコーディングモード(例えば、一方は、第1の探索範囲を常に使用するかまたは、デフォルトで第1の探索範囲を使用するブロック予測モード、そしてもう一方は、第2の探索範囲を常に使用するかまたは、デフォルトで第2の探索範囲を使用するブロック予測モード)をシグナリングするために使用され得る。よって、コーディングモードをシグナリングするために使用される既存のシンタックス要素を利用することによって、ビットの節約が達成され得る。
複数の探索範囲を使用するブロック予測モードにおけるコーディング
[0156] 図21を参照して、ブロック予測モードでビデオデータのブロックをコーディングするための例示的なプロシージャが説明される。図21に示されているステップは、ビデオエンコーダ(例えば、図2A中のビデオエンコーダ20)、またはそれらの(1つまたは複数の)コンポーネントによって実行され得る。便宜上、方法2100について、ビデオエンコーダ20、または別のコンポーネントであり得る、コーダによって実行されるものとして説明する。
[0157] 方法2100はブロック2101において開始する。ブロック2105において、コーダは、現在ブロックに対応するロケーションの第1の範囲内の第1の候補領域に基づいて、現在ブロック(例えば、現在コーディングされているビデオデータのブロック)をコーディングすることに関連付けられた第1のコストを決定する。第1の候補領域は、現在ブロックと同じサイズ(例えば、同じ寸法および/または同じ数のピクセル)を有し得る。第1の候補領域は、前にコーディングされた1つのブロックまたはブロックの一部分を含み得、現在ブロックをコーディングするために現在使用されている。いくつかの実施形態では、第1の候補領域は、現在ブロックの異なる部分をコーディングするために各々使用される、ブロックまたはブロック区分の集合(collection)であり得る。例えば、現在ブロックは、4つのブロック区分を含み得、4つのブロック区分の各々は、ロケーションの第1の範囲内の第1の候補領域の異なるブロックまたはブロック区分を使用して、予測またはコーディングされ得る。いくつかの実装では、現在ブロック内の複数のブロック区分は、複数のロケーションの第1の範囲内の第1の候補領域の同じブロックまたはブロック区分に基づいてコーディングされ得る。複数のロケーションの第1の範囲(例えば、第1の探索範囲)は、エンコーダによって、または適用可能なコーディング規格によって指定された探索範囲であり得る。複数のロケーションの第1の範囲は、本開示で論じられる例示的な探索範囲のうちの1つに類似し得る。複数のロケーションの第1の範囲は、(例えば、コーディング順またはラスタスキャニング順で)後に続く複数のブロックおよび/または複数のブロック区分を予測またはコーディングするために再構成および使用される、複数のブロックまたはブロック区分を備え得る。複数のロケーションの第1の範囲は、現在ブロックとオーバーラップするラスタスキャンラインを含み得る。他の実施形態では、複数のロケーションの第1の範囲は、現在ブロックとオーバーラップするラスタスキャンラインを含まない。第1の候補領域に関連付けられたビデオデータは、ビデオ符号化デバイスのメモリに記憶され得る。
[0158] ブロック2110において、コーダは、現在ブロックに対応する複数のロケーションの第2の範囲内の第2の候補領域に基づいて、現在ブロックをコーディングすることに関連付けられた第2のコストを決定する。第2の候補領域は、現在ブロックと同じサイズ(例えば、同じ寸法および/または同じ数のピクセル)を有し得る。第2の候補領域は、前にコーディングされた1つのブロックまたはブロックの一部を含み得、現在ブロックをコーディングするために現在使用されている。いくつかの実施形態では、第2の候補領域は、現在ブロックの異なる部分をコーディングするために各々使用される、ブロックまたはブロック区分の集合であり得る。例えば、現在ブロックは、4つのブロック区分を含み得、4つのブロック区分の各々は、複数のロケーションの第2の範囲内の第1の候補領域の異なるブロックまたはブロック区分を使用して、予測またはコーディングされ得る。いくつかの実装では、現在ブロック内の複数のブロック区分は、複数のロケーションの第2の範囲内の第1の候補領域の同じブロックまたはブロック区分に基づいてコーディングされ得る。複数のロケーションの第2の範囲は、エンコーダによって、または利用可能なコーディング規格によって指定された探索範囲であり得る。複数のロケーションの第2の範囲は、本開示で論じられる例示的な探索範囲に類似し得る。複数のロケーションの第2の範囲は、(例えば、コーディング順またはラスタスキャニング順で)後に続く複数のブロックおよび/または複数のブロック区分を予測またはコーディングするために再構成および使用される、複数のブロックまたはブロック区分を備え得る。いくつかの実施形態では、複数のロケーションの第1の範囲および複数のロケーションの第2の範囲は、相互に排他的である。代替的にまたは追加的に、複数のロケーションの第1の範囲および複数のロケーションの第2の範囲は、異なるラスタスキャンラインを占有し得る。複数のロケーションの第2の範囲は、現在ブロックとオーバーラップするラスタスキャンラインを含み得る。他の実施形態では、複数のロケーションの第2の範囲は、現在ブロックとオーバーラップするラスタスキャンラインを含まない。例えば、図20に示されているように、2つの探索範囲2020および2030は、互いとオーバーラップしない。第2の候補領域に関連付けられたビデオデータは、ビデオ符号化デバイスのメモリに記憶され得る。
[0159] ブロック2115において、コーダは、第1の候補領域に基づいて現在ブロックをコーディングすることに関連付けられた第1のコストが、第2の候補領域に基づいて現在ブロックをコーディングすることに関連付けられた第2のコストよりも大きいかどうかを決定する。例えば、コーダは、複数のロケーションの第1の範囲内(例えば、第1の探索範囲内)の第1の候補領域を使用して現在ブロックをコーディングすることに関連付けられたレートおよび歪みに基づくコストと、複数のロケーションの第2の範囲内(例えば、第2の探索範囲内)の第2の候補領域を使用して現在ブロックをコーディングすることに関連付けられたレートおよび歪みに基づくコストとを計算し、これら計算されたコストを比較し得る。いくつかの実施形態では、現在ブロックは、複数のブロック区分を備え得る。このような実施形態のうちのいくつかでは、第1および第2のコストを計算することは、(i)現在ブロック中の対応する複数のブロック区分をコーディングするために使用される関連する探索範囲(例えば、それぞれ、第1の探索範囲および第2の探索範囲)内の複数のブロック区分を決定することと、(ii)関連する探索範囲内の複数のブロック区分に基づいて現在ブロック内の個々のブロック区分をコーディングするために個々のコストを決定することと、(iii)個々のコストに基づいて第1および第2のコストを計算することと、を含み得る。例えば、第1および第2のコストは、個々のコストを合計することによって計算され得る。代替的に、第1および第2のコストは、個々のコストを平均化することによって計算され得る。
[0160] ブロック2120において、コーダは、第1のコストが第2のコストよりも大きいと決定することに応答して、第2の範囲に関連付けられたインジケーションを提供することを少なくとも部分的に介して、複数のロケーションの第2の範囲内の第2の候補領域に基づいて現在ブロックをコーディングする。いくつかの実施形態では、インジケーションは、現在ブロックが(i)複数のロケーションの第1の範囲内の第1の候補領域に基づいてコーディングされるか、または(ii)複数のロケーションの第2の範囲内の第2の候補領域に基づいてコーディングされるかを示す1ビットフラグであり得る。例えば、フラグ値が0に等しい場合、そのフラグは、現在ブロックが(例えば、複数のロケーションの第1の範囲内の第1の候補領域に基づいて)第1の探索範囲において1つまたは複数のブロックまたはブロック区分に基づいてコーディングされることを示し得、フラグ値が1に等しい場合、そのフラグは、現在ブロックが(例えば、複数のロケーションの第2の範囲内の第2の候補領域に基づいて)第2の探索範囲において1つまたは複数のブロックまたはブロック区分に基づいてコーディングされることを示し得る。他の実施形態では、インジケーションは、現在ブロックに関連付けられたコーディングモードを示すように構成されるマルチビットシンタックス要素であり得る。例えば、シンタックス要素は、複数のコーディングモードのうちのどの1つが現在ブロックをコーディングするために使用されるべきかを示し得る。コーディングモードのうちの1つが、ブロック予測モードであり得る。いくつかの実施形態では、シンタックス要素が(複数の可能性のある値のうちの)1つの値を有する場合、現在ブロックは、第1の探索範囲のみを使用する(または、他のものに提供されない限り、デフォルトで第1の探索範囲を使用する)ブロック予測モードでコーディングされ、シンタックス要素が(複数の可能性のある値のうちの)別の値を有する場合、現在ブロックは、第2の探索範囲のみを使用する(または、他のものに提供されない限り、デフォルトで第2の探索範囲を使用する)ブロック予測モードでコーディングされる。シンタックス要素が(複数の可能性のある値のうちの)さらに別の値を有し得る場合、現在ブロックは、ブロック予測モード以外のコーディングモードでコーディングされ得る。方法2100はブロック2125において終了する。
[0161] 方法2100では、図21に示されているブロックのうちの1つまたは複数は削除される(例えば、実行されない)可能性があり、および/または方法が実行される順序は入れ替えられ得る。例えば、いくつかの実施形態では、ブロック2105、2110、および2115のうちの1つまたは複数は、(例えば、スライス中の第1のラインのような)同じスライス中の任意の先行するラスタスキャンラインを有していないラスタスキャンラインを現在ブロックが含むことをコーダが決定する場合に省略され得る。いくつかの実施形態では、さらなるブロックが方法2100に追加され得る。本開示の実施形態は、図21に示されている例にまたはそれによって限定されず、他の変形が本開示の趣旨から逸脱することなく実装され得る。
複数の探索範囲を使用する利点
[0162] ブロック予測モードでブロックをコーディングするときに、複数の探索範囲を使用することに関連した技法は、ブロック予測モードに関連付けられたコーディング効率を改善し、それにより、特にグラフィックタイプイメージおよびグラフィックコンテンツに関して、コーディング性能を上昇させる。これらの技法のうちの1つまたは複数を実装することは、エンコーダ側における計算複雑さを増大させ得る。しかしながら、エンコーダがより小さいプロセスノード(20nmまたはそれに満たない)において実装されるので、エンコーダは一般に、増大した計算複雑さに対してさらなる許容度(greater degree of tolerance)を示す。重要なことに、デコーダ複雑さは、複数の探索範囲がブロック予測モードでブロックをコーディングするために使用される場合でさえ、大部分が同じままであるだろう。デコーダは一般に、はるかに大きいプロセスサイズ(60nm以上)で実装され得、より厳しいハードウェア要件(例えば、ゲートカウントが最小化されなければならないなど)に従い得る。よって、ブロック予測モードで複数の探索範囲を使用するための本開示の技法は、計算複雑さの比較的少ない増加で、コーディング性能を改善する。
簡略化されたブロック予測モード
[0163] いくつかの場合には、ブロック予測モードで現在ブロックをコーディングするために上記で説明された技法は、さらに簡略化されることができる。例えば、コストが制限された(cost-constrained)ハードウェア実装について、上記で説明された1つまたは複数の特徴は、(エンコーダ側、デコーダ側、または両方において)コーダの計算複雑さを低減するために削除または修正され得る。このような場合、下記の変更のうちの1つまたは複数は、性能を大きく悪化させることなく、ブロック予測モードでブロックをコーディングする方法を行うことができる:(i)コーダは、上記で説明されたような複数の探索範囲を使用する代わりに、現在ブロックまたは区分を予測するために、単一の探索範囲を使用し得る;(ii)探索範囲は、前の再構成されたライン(例えば、現在ラインのすぐ前のライン)と現在ラインとの両方からのピクセルを含み、ここにおいて、このようなライン中のサンプルは、既に再構成されており(例えば、現在ブロックまたは区分がコーディングされる時間までに)、および/または(iii)単一の前に再構成されたラインは(複数のラインを含み得る)前の再構成されたブロックラインを使用する代わりに、現在ブロックまたは区分を予測するために使用される。
[0164] コーディング性能とハードウェア複雑さとの間の所与の実装の所望のトレードオフに依存して、本明細書で説明されるブロック予測モード(例えば、標準的なブロック予測モード、複数の範囲を使用するブロック予測モード、簡略化されたブロック予測モードなど)においてブロックをコーディングするための技法の様々なバージョンおよび修正が使用され得る。ブロック予測モードのうちのいくつかのバージョンは性能とハードウェア複雑さとの間のVESAタスクグループの譲歩(compromise)に依存して、ADSCのために選択され得る。
[0165] 上記で説明されたように、いくつかの実施形態では、簡略化されたブロック予測モードは、単一の探索範囲を使用し得る。このような実施形態のうちのいくつかでは、可能性のあるブロック予測ベクトルの総数は、いくつかのnに関して2のように決定される。例えば、ADSCは一般に、n=6を使用し、その場合には、可能性のあるブロック予測ベクトルの総数は、64個の位置であるだろう。探索範囲内の候補ピクセルは、領域A、領域B、および領域Cと本明細書では呼ばれ得る、3つの領域のうちのいずれかに由来し得る。探索範囲(SR)および探索範囲内の位置(SR pos)へのBVPインデックスの例示的なマッピングが表2で示される。例えば、このマッピングは、関連するSRの長さSrLen,i∈{A,B,C}から計算され得る。
Figure 2018536364
[0166] いくつかの実施形態では、エンコーダがデコーダに明示的にシグナリングするブロック予測ベクトルは、範囲[0,2−1]における整数であり得る。インデックスから探索範囲へのマッピングは、SrLenに依存し得る。表2は、SrLen=26、SrLen=8、SrLen=30である例を示す。
[0167] 図22の図2200では、原因となる利用可能なイメージ(causally-available image)(例えば、前に再構成されたピクセル)の異なる領域からのピクセルを備える単一の探索範囲を、簡略化されたブロック予測が使用する例が図示されている。各特定の領域中の候補の数は、コーデックのパラメータに依存して調整され得る。図22の例では、SR/SRは、前の再構成されたラインから形成されるが、一方、SRは、現在ブロックラインから形成される。例えば、SRは、図22に図示されているような現在ブロック2340の真上(例えば、それと垂直方向に(vertically)オーバーラップする)、または右のいずれかであるピクセルを含み、SRは、図22に図示されているような現在ブロック2340の左にあるピクセル(例えば、現在ブロック2340と垂直方向にオーバーラップせず、現在ブロック2340中のピクセルよりも小さいx座標値を有する)を含む。図22は、SR2220、SR2210、SR2230、および現在ブロック2240を図示する。図22に図示されているように、SR2220およびSR2210は、前の再構成されたライン中にあり、SR2230は、現在ブロックライン中にある。
[0168] 図23の図2300では、可変の区分サイズ(2×2)を用いた簡略化されたブロック予測モードの例が図示されている。SR内の探索は、本明細書で説明されるように(例えば、SR内の2×2ブロックを使用して現在ブロックをコーディングすることに関連付けられたコストを決定することによって)行われ得る。SR/SR内の探索について、候補区分は、2×2候補を作成するためにy方向に拡張またはパディングされ得る。図23は、SR2320、SR2310、SR2330、および現在ブロック2340を図示する。図23では、SR2320およびSR2310は、前の再構成されたライン中にあり、SR2330は、現在ブロックライン中にある。
[0169] 図24の図2400では、可変の区分サイズ(1×2)を用いた簡略化されたブロック予測モードの例が図示されている。SR/SR内の探索は、本明細書で説明されるように(例えば、SR/SR内の1×2ブロックを使用して現在ブロックをコーディングすることに関連付けられたコストを決定することによって)実行され得る。SR(現在ブロックライン)内の探索について、現在ブロックのラインl内の区分が、SRのラインlから探索される。図24は、SR2420、SR2410、SR2430、および現在ブロック2440を図示する。図24では、SR2420およびSR2410は、前の再構成されたライン中にあり、SR2430は、現在ブロックライン中にある。
[0170] 例えば、特定の領域(例えば、領域A、B、またはC)についての探索位置の数は、領域iについてのSrLenと本明細書で呼ばれ得る。このような例では、下記の制約が確立され得る:SrLen+SrLen+SrLen≦2。例えば、ブロック予測が単一の探索範囲を使用して実行され、かつ単一の探索範囲における位置の最大数が2であると定義される場合、それらの領域の各々における位置の合計は、最大数以下である必要があるだろう。SrLenのための値は、コーデックの必要性に依存して調整され得る。加えて、これらの値は、現在スライス内の区分または現在ブロックのロケーションに基づいて、容易に動的に調整されることができる。例えば、現在ブロックまたは区分がFLSに位置する場合、エンコーダおよびデコーダは、SRおよびSRが現在ブロックをコーディングするために使用できないと推測し得る。従って、多数の位置がSRに(例えば、単一の探索範囲に割り付けられた最大値まで)割り振られ得る。
[0171] 単一の探索範囲を使用することに加えて、または代替として、簡略化されたブロック予測モードで、エンコーダ/デコーダが前の再構成されたブロックラインを記憶するための要件が削除され得る。代わりに、1つの前の再構成されたラインのみが記憶され得る。例えば、任意のブロックサイズP×Qに関して、1つの再構成されたラインのみがPラインの代わりに記憶され得る(および図24のSRのような探索範囲内に含まれる)。
[0172] 可変の区分サイジング(sizing)が活用される(be leveraged)場合、後続のロジック変更が簡略化されたブロック予測モードのために実装され得る。
[0173] いくつかの実装では、2×2区分が現在ブロックをコーディングするために使用される場合、SR/SRからのいずれの候補位置も、図23を参照して上記で説明されたように、2×2候補を生成するために、y方向に拡張またはパディングされ得る。例えば、図23に図示されるように、1×2候補2350は、2×2候補2360を生成するためにサンプル値を複製することによって、y方向に拡張またはパディングされ得る。同様の技法が、任意のサイズのブロックに拡張され得る。例えば、候補は、現在ブロックまたは区分の高さに一致するようにy方向に拡張またはパディングされ得る。一方、2×2候補2380は、拡張またはパディングされないものとして使用され得る。他の実装では、現在ブロック内の2×2区分がどのようにコーディングされるかは、どの探索範囲(例えば、図22〜24におけるSR、SR、またはSR)が2×2区分をコーディングするために使用されるかに依存し得る。このような技法は、図25を参照して下記でより詳細に説明される。
[0174] 1×2区分が現在ブロックをコーディングするために使用される場合、SRからのいずれの候補位置も、図24を参照して上記で説明されたように、現在ブロック中の現在の1×2区分と同じラインから選択され得る。例えば、図24に図示されるように、現在区分2450は、同じライン中の1×2候補2460に基づいて予測され、現在区分2470は、同じライン中の1×2候補2480に基づいて予測される。このような例では、現在区分2450のための候補を発見するために、コーダは、現在区分2450と同じライン内の探索範囲2430における個々の1×2ブロックに基づいて、現在区分2450をコーディングするコストを比較し、現在区分2470のための候補を発見するために、コーダは、現在区分2470と同じライン内の探索範囲2430における個々の1×2ブロックに基づいて、現在区分2470をコーディングするコストを比較する。
簡略化されたブロック予測モードでのコーディングの利点
[0175] 簡略化されたブロック予測モードでのコーディングに関する技法は、エンコーダ側とデコーダ側の両方において、性能と複雑さとの間のトレードオフを提供する。これは、ハードウェアコストにおいて制約されるいずれの実装にとっても望ましい。
簡略化されたブロック予測モードのさらなる簡略化
[0176] ASIC/FPGAのためのADSC実装のエリアを低減するために、上記で説明された簡略化されたブロック予測モードで使用される探索範囲へのさらなる修正がなされ得る。ADSCデコーダのハードウェア実装は、探索範囲内の全て位置への高速ランダムアクセスを要求し得る。例えば、このようなハードウェア実装は、(例えば、最悪のケースでは)探索範囲のサイズに比例したフリップフロップのアレイを含み得る。よって、(例えば、探索範囲内の領域のサイズなどの)探索範囲の各部分内の可能性のある位置の最大数を制限することが望ましいだろう。一例では、探索範囲内の各領域内の可能性のある位置の最大数は、下記の通りであり得る:SR=20,SR=12,SR=32。例えば、それぞれの領域中の位置の数は、他の領域中にいくつ位置があるかに関係なくこのような最大数に制限され得る。処理されている現在ブロックがスライスの第1のライン内の位置x=128(例えば、同じライン内の現在ブロックの前の128ピクセルを有する)にある場合、探索範囲AおよびBが現在ブロックをコーディングするために利用可能なピクセルを有しておらず、探索範囲の最大サイズを超えることなく、追加のピクセルが探索範囲Cに含まれ得る(例えば、探索範囲の最大サイズが64ピクセルである場合、128の前にコーディングされたピクセルのうちの64が探索範囲に含まれ得る)という事実にも関わらず、探索範囲Cについての位置の数は、32に制限され得る。ハードウェアにおいて要求されるストレージの量を制限するために、コーディング効率を犠牲にしてこのような制限が置かれ得る。エンコーダの観点から、他の32の探索範囲位置(例えば、64の位置探索範囲のうちの、最初の20ピクセルおよび最後の12ピクセル)はスライスの第1のライン内の任意の現在ブロックに対して「無効(invalid)」であり得る。いくつかの実装では、探索範囲のそれぞれの部分は常に、同じ数の位置に割り当てられ、各位置は、その位置におけるピクセルが存在するかどうか、あるいは現在ブロックをコーディングする時間にエンコーダに利用可能であるかどうかに依存して、「有効(valid)」または「無効」となり得る。ブロック予測探索および全ての他の動作(例えば、コスト計算および比較)は、このような無効位置に関してスキップされ得る。有効な位置の数は、(例えば、探索範囲2520が後続のブロックラインに拡張される、図25の第2の列によって図示されているような)スライスの第1のラインの右エッジへと増加するであろう。他の実装では、探索範囲のそれぞれの位置における位置の数の和は、最大数(例えば、64個の位置)以下に制限され得る。このような実装では、処理されている現在ブロックが、スライスの第1のライン内の位置x=128((例えば、同じライン内の現在ブロックの前の128ピクセルを有する)にある場合、探索範囲Cについての位置の数は、他の探索範囲(例えば、AおよびB)が空であり得るので、32よりも大きいものに等しくなり得る(例えば、最大数が64である場合、最大64)。
[0177] コーディング効率に対する影響を制限するために、ある特定の状況下では、より少ない数のビットがビットストリーム中のブロック予測ベクトルをシグナリングするために使用され得る。例えば、現在ブロックがある特定の位置の範囲内(例えば、スライスの第1のライン)にある場合、エンコーダおよびデコーダの両方は、より少ない数のビットがブロック予測ベクトルをシグナリングするために使用されると推測し、探索範囲内の個々の位置の各々を正確に識別するために必要とされるビットの数よりも少ないものを使用してシグナリングされるブロック予測ベクトルを使用して(例えば、探索範囲が64個の位置を有する場合、6ビット)、候補ブロックまたは区分を正確に識別し得る。64個の位置のうちの32が「無効」であると決定される上記の例では、64の探索範囲位置のうちの32のみがその時間中に有効であるので、6の代わりに、ブロック予測ベクトルごとに5ビットがスライスの第1のラインの大部分中で使用され得る。
[0178] 加えて、ブロックタイミングに関して、一定レートで探索範囲のフリップフロップを満たすための能力は、ADSCのハードウェア実装のために有利であり得る。これは、探索範囲がブロック時間ごとに1ブロック幅で効率的にシフトするべきであることを意味する。結果として、探索範囲C内のある特定の位置(certain positions)は、一旦、現在ブロックがスライスの次のラインに進むと、現在ブロックに関して技術的には前のブロックライン中にあり得る。この特徴の例示は、図25の図2500で示される。現在ブロック2510がスライスの右エッジへと移動し、次いで、次のブロックラインへと移動するとき、探索範囲2530(例えば、現在ブロックライン内の探索範囲の部分)は、図25の第4および第5の行(rows)に示されているように、前のブロックライン中に残る。
[0179] いくつかの実施形態では、探索範囲B(例えば、図25の探索範囲2540の最上位ライン)が現在ブロックラインの前のラインと第1のラインとにわたる2×2の予測候補を生成するために使用され得る。図25に示されているように、探索範囲2540の最上位ラインは探索範囲Bであり、探索範囲2540の最下位ラインは、探索範囲Bに関してコロケートされる探索範囲Cの一部分(例えば、探索範囲2530)である。よって、このような実施形態のうちのいくつかでは、2×2の予測候補を生成するために探索範囲B中の1×2予測候補を拡張またはパディングするかわりに、コーダは、前の再構成されたラインからの2つのピクセル(例えば、探索範囲Bからの2つのピクセル)と、現在ブロックラインの第1のラインからの2つのピクセル(例えば、探索範囲B中の2つのピクセルに関してコロケートされた、探索範囲Cからの2つのピクセル)とを含む、2×2予測候補を利用し得る。このアプローチは、(例えば、探索範囲A中のピクセルのすぐ下の)探索範囲A中のピクセルに関してコロケートされた現在ブロックラインからのピクセルが、現在ブロック2510をコーディングする時間において原因となる利用可能ではないため、探索範囲A(例えば、探索範囲2520)のために使用されることはできない。
簡略化された探索範囲を使用するブロック予測モードでのコーディング
[0180] 図26を参照して、ブロック予測モードでビデオデータのブロックをコーディングするための例示的なプロシージャが説明される。図26に示されているステップは、ビデオエンコーダ(例えば、図2A中のビデオエンコーダ20)、またはそれらの(1つまたは複数の)コンポーネントによって実行され得る。便宜上、方法2600は、ビデオエンコーダ20、または別のコンポーネントであり得る、コーダによって実行されるものとして説明される。
[0181] 方法2600は、ブロック2601において開始する。ブロック2605において、コーダは、現在スライス中の現在ブロックを予測するために使用される候補ブロックを決定し、ここで、候補ブロックは、現在スライス中の再構成されたピクセルに各々対応する複数のピクセル位置(例えば、探索範囲)の範囲内にある。例えば、コーダは、複数のピクセル位置の範囲において複数の潜在的な候補ブロックの各潜在的な候補ブロックに基づいて、現在ブロックをコーディングすることに関連付けられたコストを決定し、最低コストを有するブロックのうちの1つを候補ブロックとして識別する。各潜在的な候補ブロックは、複数のピクセル位置の範囲内のピクセル位置のうちの1つに対応し得る。複数のピクセル位置の範囲は、現在スライス中のピクセルの第1のライン中の1つまたは複数の第1のピクセル位置を含む第1の領域を含み得、ここで、複数のピクセルの第1のラインは、現在ブロックとオーバーラップする。例えば、複数のピクセルの第1のラインは、現在スライスの全体の幅にわたり得、複数のピクセルの第1のラインは、現在ブロック中の少なくとも1つのピクセルを含み得る。さらに、複数のピクセル位置の範囲は、現在スライス中のピクセルの第2のライン中の1つまたは複数の第2のピクセル位置を含む第2の領域を含み、ここで、複数のピクセルの第2のラインは、現在ブロックとオーバーラップしない。例えば、複数のピクセルの第2のラインは、現在スライスの全体の幅にわたり得、現在ブロック中の任意のピクセルを含まない。複数のピクセルの第2のラインは、現在スライス中の第1のラインにすぐ前に先行し得る。第1のおよび第2のラインの各々は、現在スライス内のラスタスキャンラインであり得る。いくつかの実施形態では、第1の領域および第2の領域は、異なるラスタスキャンラインを占有する。第1の領域は、(例えば、ラスタスキャンラインおよび現在ブロックが少なくとも1つの共通ピクセルを含む)現在ブロックとオーバーラップするラスタスキャンライン内にあり得る。複数のピクセル位置の範囲は、第2のライン中(例えば、第2の領域を含む同じライン中)の1つまたは複数の第3のピクセル位置を含む第3の領域をさらに含み得る。例えば、第3の領域中の1つまたは複数の第3のピクセル位置は、現在ブロックの一部である第1のライン中のピクセル位置に関してコロケートされる(または、現在ブロックと垂直方向にオーバーラップする)第2のライン中のいずれのピクセル位置も含まない可能性があり、一方、第2の領域中の1つまたは複数の第2のピクセル位置のうちの少なくとも1つは、現在ブロックの一部である第1のライン中のピクセル位置に関してコロケートされる(または、現在ブロックと垂直にオーバーラップする)第2のライン中の1つまたは複数の第2のピクセルを含み得る。本明細書で説明されるように、領域は、異なる数のピクセル位置を各々含み得る。例えば、第1の領域中のピクセル位置の数は、第2の領域中のピクセル位置の数よりも多く、それは、第3の領域よりも多い数のピクセル位置を有する。いくつかの実施形態では、現在ブロックは、簡略化されたブロック予測モードで予測された2×8ブロック内の1×2区分である。他の実施形態では、現在ブロックは、簡略化されたブロック予測モードで予測された2×8ブロック内の2×2区分である。いくつかの他の実施形態では、現在ブロックは、簡略化されたブロック予測モードで予測された2×8ブロックである。複数のピクセル位置の範囲における各潜在的な候補ブロックは、複数のピクセル位置の範囲中の任意のピクセル位置(例えば、第1の領域、第2の領域、または第3の領域中の複数のピクセル位置)に対応し得る(例えば、左上のピクセルまたは別の参照ピクセルとして含む)。候補ブロックに関連付けられたビデオデータは、ビデオ符号化デバイスのメモリに記憶され得る。
[0182] ブロック2610において、コーダは、複数のピクセル位置の範囲内の候補ブロックのピクセル位置を示す予測ベクトルを決定する。例えば、候補ブロックのピクセル位置は、第1の領域または第2の領域のうちの1つにあり得る。
[0183] ブロック2615において、コーダは、予測ベクトルをシグナリングすることを少なくとも部分的に介して、簡略化されたブロック予測モードで現在ブロックをコーディングする。コーダは、固定数のビット(例えば、ピクセル位置の範囲における各ピクセル位置を一意に識別するために必要とされる最小数のビット)を使用して、予測ベクトルをシグナリングし得る。例えば、複数のピクセル位置の範囲内に64個のピクセル位置が存在する場合、6ビットが各予測ベクトルをシグナリングするために使用され得る。いくつかの実施形態では、現在スライス内の現在ブロックのロケーションは、複数のピクセル位置の範囲が最大数のピクセル位置よりも小さいある特定数のピクセル位置よりも多いものを有することを妨げる場合、コーダは、複数のピクセル位置の範囲内の最大数のピクセル位置を一意に識別するために必要とされるビットの数よりも小さいものを使用して予測ベクトルをシグナリングし得る。例えば、コーダは、現在スライス内の現在ブロックのロケーションのために、複数のピクセルロケーションの範囲が32個のピクセル位置よりも多くを有することができない(例えば、現在ラインが現在スライス中の第1のラインであり、ラスタスキャン順で現在ブロックに先行する32個の再構成されたブロックのみが存在する)場合、低減されたビットの数(例えば、この場合は5個)は、現在ブロックをコーディングするために使用される候補ブロックのピクセル位置を示す予測ベクトルをシグナリングするために使用され得る。方法2600はブロック2620において終了する。
[0184] 方法2600では、図26に示されているブロックのうちの1つまたは複数は削除され得(例えば、実行されない)、および/または方法が実行される順序は入れ替えられることがある。いくつかの実施形態では、さらなるブロックが方法2600に追加され得る。例えば、いくつかの実施形態では、コーダは、現在スライス中の複数のピクセルの第1のライン中の少なくとも1つのピクセルと、複数のピクセルの第3のライン中の少なくとも1つのピクセルとを現在ブロックが含むことを決定し得、ここで、複数のピクセルの第3のラインは、現在スライスの全体の幅にわたり、現在ブロック中の少なくとも1つのピクセルを含み、ここで、第3のラインは、第1のラインとは異なる。このような決定に基づいて、コーダは、(i)第1のブロックに基づいて、現在ブロックをコーディングすることに関連付けられたコストを決定し、ここで、第1のブロックは、第1の領域中の少なくとも1つのピクセルと、第2の領域中の少なくとも1つのピクセルとを含み、(ii)第1のブロックに基づいて現在ブロックをコーディングすることに関連付けられたコストに基づいて、現在ブロックを予測するために使用される候補ブロックとなる第1のブロックを決定し得る。別の実施形態では、コーダは、現在スライス中の複数のピクセルの第1のライン中の少なくとも1つのピクセルと、複数のピクセルの第3のライン中の少なくとも1つのピクセルとを現在ブロックが含むことを決定し得、ここで、複数のピクセルの第3のラインは、現在スライスの全体の幅にわたり、現在ブロック中の少なくとも1つのピクセルを含み、ここで、第3のラインは、第1のラインとは異なる。このような決定に基づいて、コーダは、(i)現在ブロックよりも少ない数のピクセルを有する第1のブロックに基づいて、現在ブロックをコーディングすることに関連付けられた第1のコストを決定し、ここで、第1のブロックは、第2の領域中の各々にある1つまたは複数のピクセルを含み、(ii)現在ブロックと同じ数のピクセルを有する第2のブロックに基づいて、現在ブロックをコーディングすることに関連付けられた第2のコストを決定し、ここで、第2のブロックは、第1のブロック中の1つまたは複数のピクセルの全てと、第1の領域中の各々にある1つまたは複数の追加のピクセルとを含み、(iii)第2のコストが第1のコストよりも大きいとの決定に基づいて、現在ブロックを予測するために使用される候補ブロックとなる第1のブロックを決定し得る。本開示の実施形態は、図26に示されている例にまたはそれによって限定されず、他の変形が本開示の趣旨から逸脱することなく実装され得る。
他の考慮事項
[0185] 本明細書で開示する情報および信号は、様々な異なる技術および技法のいずれかを使用して表され得る。例えば、上記の説明全体にわたって言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁界または磁性粒子、光場または光学粒子、あるいはそれらの任意の組合せによって表され得る。
[0186] 本明細書で開示される実施形態に関して説明された様々な例示的な論理ブロック、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、またはその両方の組合せとして実装され得る。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的なコンポーネント、ブロック、およびステップが、概してそれらの機能に関して上記で説明されている。そのような機能をハードウェアとして実装するか、ソフトウェアとして実装するかは、特定のアプリケーションおよび全体的なシステムに課される設計制約に依存する。当業者は、説明された機能を特定のアプリケーションごとに様々な方法で実装し得るが、そのような実装の決定は、本開示の範囲からの逸脱をもたらすものと解釈されるべきではない。
[0187] 本明細書で説明された技法は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。そのような技法は、汎用コンピュータ、ワイヤレス通信デバイスハンドセット、またはワイヤレス通信デバイスハンドセットおよび他のデバイスにおけるアプリケーションを含む複数の用途を有する集積回路デバイスなどの、様々なデバイスのいずれかにおいて実装され得る。デバイスまたはコンポーネントとして説明された任意の特徴は、集積論理デバイスに一緒に、または個別であるが相互運用可能な論理デバイスとして別々に実装され得る。ソフトウェアで実装された場合、本技法は、実行されたとき、上記で説明された方法のうちの1つまたは複数を実行する命令を含むプログラムコードを備えるコンピュータ可読データ記憶媒体によって、少なくとも部分的に実現され得る。コンピュータ可読データ記憶媒体は、パッケージング材料を含み得るコンピュータプログラム製品の一部を形成し得る。コンピュータ可読媒体は、同期型ダイナミックランダムアクセスメモリ(SDRAM)などのランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、不揮発性ランダムアクセスメモリ(NVRAM)、電気的消去可能プログラマブル読み取り専用メモリ(EEPROM(登録商標))、フラッシュメモリ、磁気または光学データ記憶媒体などの、メモリまたはデータ記憶媒体を備え得る。本技法は、追加または代替として、伝搬信号または電波などの、命令またはデータ構造の形態でプログラムコードを搬送または通信し、コンピュータによってアクセスされ、読み取られ、および/または実行され得るコンピュータ可読通信媒体によって、少なくとも部分的に実現され得る。
[0188] プログラムコードは、1つまたは複数のデジタルシグナルプロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、または他の同等の集積回路またはディスクリート論理回路などの、1つまたは複数のプロセッサを含み得るプロセッサによって実行され得る。そのようなプロセッサは、本開示で説明された技法のいずれかを実行するように構成され得る。汎用プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンであり得る。プロセッサはまた、コンピューティングデバイスの組合せ、例えば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つまたは複数のマイクロプロセッサ、あるいは任意の他のそのような構成として実装され得る。従って、本明細書で使用される「プロセッサ」という用語は、上記の構造、上記の構造の任意の組合せ、または本明細書で説明された技法の実装に適切な任意の他の構造または装置のいずれかを指し得る。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のソフトウェアもしくはハードウェア内に提供され得るか、または複合ビデオエンコーダ−デコーダ(コーデック)に組み込まれ得る。また、本技法は、1つまたは複数の回路または論理要素で十分に実装され得る。
[0189] 本開示の技法は、ワイヤレスハンドセット、集積回路(IC)またはICのセット(例えば、チップセット)を含む、多種多様なデバイスまたは装置で実装され得る。本開示では、開示される技法を実行するように構成されたデバイスの機能的態様を強調するために、様々なコンポーネントまたはユニットが説明されたが、それらは、必ずしも異なるハードウェアユニットによる実現を必要としない。むしろ、上記で説明されたように、様々なユニットが、適切なソフトウェアおよび/またはファームウェアとともに、上記で説明された1つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作可能なハードウェアユニットの集合によって与えられ得る。
[0190] 上記で様々な異なる実施形態に関して説明したが、一実施形態からの特徴または要素は、本開示の教示から逸脱することなく他の実施形態と組み合わせられ得る。しかしながら、それぞれの実施形態間の特徴の組合せは、必ずしもそれに限定されるものではない。本開示の様々な実施形態が説明された。これらおよび他の実施形態は以下の特許請求の範囲内に入る。
[0190] 上記で様々な異なる実施形態に関して説明したが、一実施形態からの特徴または要素は、本開示の教示から逸脱することなく他の実施形態と組み合わせられ得る。しかしながら、それぞれの実施形態間の特徴の組合せは、必ずしもそれに限定されるものではない。本開示の様々な実施形態が説明された。これらおよび他の実施形態は以下の特許請求の範囲内に入る。
以下に本願の出願当初の特許請求の範囲に記載された発明を付記する。
[C1]
固定ビットレートビデオコーディング方式の簡略化されたブロック予測モードでビデオデータのブロックをコーディングするための方法であって、前記方法は、
現在スライス中の現在ブロックを予測するために使用される候補ブロックを決定することと、前記候補ブロックは、前記現在スライス中の再構成されたピクセルに各々対応する複数のピクセル位置の範囲内にあり、複数のピクセル位置の前記範囲は、少なくとも(i)前記現在スライス中の複数のピクセルの第1のライン中の1つまたは複数の第1のピクセル位置を含む第1の領域と、ここで、複数のピクセルの前記第1のラインは、前記現在ブロック中の少なくとも1つのピクセルを含み、前記現在スライスの全体の幅にわたる、(ii)前記現在スライス中の複数のピクセルの第2のライン中の1つまたは複数の第2のピクセル位置を含む第2の領域と、ここで、複数のピクセルの前記第2のラインは、前記現在ブロック中のいずれのピクセルも含まないが、前記現在スライスの前記全体の幅にわたる、を備える、
複数のピクセル位置の前記範囲内の前記候補ブロックのピクセル位置を示す予測ベクトルを決定することと、前記候補ブロックの前記ピクセル位置は、前記第1の領域または前記第2の領域のうちの1つにある、
前記予測ベクトルをシグナリングすることを少なくとも部分的に介して、簡略化されたブロック予測モードで前記現在ブロックをコーディングすることと
を備える、方法。
[C2]
複数のピクセルの前記第1のラインおよび複数のピクセルの前記第2のラインは、前記現在スライスの2つの隣接するラスタスキャンラインを備える、C1に記載の方法。
[C3]
前記現在ブロックは、簡略化されたブロック予測モードで予測された2×8ブロック内の1×2区分である、C1に記載の方法。
[C4]
前記現在ブロックは、簡略化されたブロック予測モードで予測された2×8ブロック内の2×2区分である、C1に記載の方法。
[C5]
複数のピクセル位置の前記範囲は、複数のピクセルの前記第2のライン中の1つまたは複数の第3のピクセル位置を備える第3の領域をさらに含み、前記1つまたは複数の第3のピクセル位置は、前記現在ブロックの一部である前記第1のライン中のピクセル位置に関してコロケートされた前記第2のライン中のいずれのピクセル位置も含まない、C1に記載の方法。
[C6]
前記第2の領域および前記第3の領域は、同じラスタスキャンラインを占有する、C5に記載の方法。
[C7]
前記第1の領域は、第1の数のピクセル位置を含み、前記第2の領域は、第2の数のピクセル位置を含み、前記第3の領域は、第3の数のピクセル位置を含み、前記第1の数は、前記第2の数よりも大きく、かつ前記第3の数よりも大きい、C5に記載の方法。
[C8]
前記第1、第2、および第3の数は、互いに異なる、C7に記載の方法。
[C9]
複数の潜在的な候補ブロックの各潜在的な候補ブロックに基づいて、前記現在ブロックをコーディングすることに関連付けられたコストを決定することと、前記複数の潜在的な候補ブロックは、前記第1および第2の領域中の前記第1および第2のピクセル位置の1つに各々対応する、
最低コストを有する前記第1および第2の領域中の前記複数の潜在的な候補ブロックのうちの1つを、前記候補ブロックとして識別することと
をさらに備える、C1に記載の方法。
[C10]
複数のピクセル位置の前記範囲中の各ピクセル位置を一意に識別するために必要とされるビットの数は、第1の数に等しく、前記方法は、
前記現在スライス内のあらかじめ定められた領域内に前記現在ブロックがあると決定することと、
ビットの前記第1の数よりも小さいものを使用して前記予測ベクトルをシグナリングすることと
をさらに備える、C1に記載の方法。
[C11]
前記現在スライス中の複数のピクセルの前記第1のライン中の少なくとも1つのピクセルと、複数のピクセルの第3のライン中の少なくとも1つのピクセルとを前記現在ブロックが含むことを決定することと、複数のピクセルの前記第3のラインは、前記現在ブロック中の少なくとも1つのピクセルを含み、前記現在スライスの前記全体の幅にわたり、ここにおいて、前記第3のラインは、前記第1のラインとは異なる、
第1のブロックに基づいて前記現在ブロックをコーディングすることに関連付けられたコストを決定することと、前記第1のブロックは、前記第1の領域中の少なくとも1つのピクセルと前記第2の領域中の少なくとも1つのピクセルとを含む、
前記第1のブロックに基づいて前記現在ブロックをコーディングすることに関連付けられた前記コストに基づいて、前記現在ブロックを予測するために使用される、前記候補ブロックとなる前記第1のブロックを決定することと
をさらに備える、C1に記載の方法。
[C12]
前記現在スライス中の複数のピクセルの前記第1のライン中の少なくとも1つのピクセルと、複数のピクセルの第3のライン中の少なくとも1つのピクセルとを前記現在ブロックが含むことを決定することと、複数のピクセルの前記第3のラインは、前記現在ブロック中の少なくとも1つのピクセルを含み、前記現在スライスの前記全体の幅にわたり、ここにおいて、前記第3のラインは、前記第1のラインとは異なる、
前記現在ブロックよりも少ない数のピクセルを有する第1のブロックに基づいて、前記現在ブロックをコーディングすることに関連付けられた第1のコストを決定することと、前記第1のブロックは、前記第2の領域中の各々にある1つまたは複数のピクセルを含む、
前記現在ブロックと同じ数のピクセルを有する第2のブロックに基づいて、前記現在ブロックをコーディングすることに関連付けられた第2のコストを決定することと、前記第2のブロックは、前記第1のブロック中の前記1つまたは複数のピクセルの全てと、前記第1の領域中の各々にある1つまたは複数の追加のピクセルとを含む、
前記第2のコストが前記第1のコストよりも大きいとの決定に基づいて、前記現在ブロックを予測するために使用される前記候補ブロックとなる前記第1のブロックを決定することと
をさらに備える、C1に記載の方法。
[C13]
固定ビットレートビデオコーディング方式の簡略化されたブロック予測モードでビデオデータのブロックをコーディングするための装置であって、前記装置は、
ビデオデータの現在スライスの1つまたは複数の再構成されたピクセルを記憶するように構成されたメモリと、
前記メモリと通信状態にある1つまたは複数のプロセッサとを備え、前記1つまたは複数のプロセッサは、
前記現在スライス中の現在ブロックを予測するために使用される候補ブロックを決定することと、前記候補ブロックは、前記現在スライス中の再構成されたピクセルに各々対応する複数のピクセル位置の範囲内にあり、複数のピクセル位置の前記範囲は、少なくとも(i)前記現在スライス中の複数のピクセルの第1のライン中の1つまたは複数の第1のピクセル位置を含む第1の領域と、ここで、複数のピクセルの前記第1のラインは、前記現在ブロック中の少なくとも1つのピクセルを含み、前記現在スライスの全体の幅にわたる、(ii)前記現在スライス中の複数のピクセルの第2のライン中の1つまたは複数の第2のピクセル位置を含む第2の領域と、ここで、複数のピクセルの前記第2のラインは、前記現在ブロック中のいずれのピクセルも含まないが、前記現在スライスの前記全体の幅にわたる、を備える、
複数のピクセル位置の前記範囲内の前記候補ブロックのピクセル位置を示す予測ベクトルを決定することと、前記候補ブロックの前記ピクセル位置は、前記第1の領域または前記第2の領域のうちの1つにある、
前記予測ベクトルをシグナリングすることを少なくとも部分的に介して、簡略化されたブロック予測モードで前記現在ブロックをコーディングすることと
を行うように構成される、装置。
[C14]
複数のピクセルの前記第1のラインおよび複数のピクセルの前記第2のラインは、前記現在スライスの2つの隣接するラスタスキャンラインを備える、C13に記載の装置。
[C15]
前記現在ブロックは、簡略化されたブロック予測モードで予測された2×8ブロック内の1×2区分である、C13に記載の装置。
[C16]
前記現在ブロックは、簡略化されたブロック予測モードで予測された2×8ブロック内の2×2区分である、C13に記載の装置。
[C17]
複数のピクセル位置の前記範囲は、複数のピクセルの前記第2のライン中の1つまたは複数の第3のピクセル位置を備える第3の領域をさらに含み、前記1つまたは複数の第3のピクセル位置は、前記現在ブロックの一部である前記第1のライン中のピクセル位置に関してコロケートされた前記第2のライン中のいずれのピクセル位置も含まない、C13に記載の装置。
[C18]
前記第2の領域および前記第3の領域は、同じラスタスキャンラインを占有する、C17に記載の装置。
[C19]
前記第1の領域は、第1の数のピクセル位置を含み、前記第2の領域は、第2の数のピクセル位置を含み、前記第3の領域は、第3の数のピクセル位置を含み、前記第1の数は、前記第2の数よりも大きく、かつ前記第3の数よりも大きい、C17に記載の装置。
[C20]
前記第1、第2、および第3の数は、互いに異なる、C19に記載の装置。
[C21]
前記1つまたは複数のプロセッサは、
複数の潜在的な候補ブロックの各潜在的な候補ブロックに基づいて、前記現在ブロックをコーディングすることに関連付けられたコストを決定することと、前記複数の潜在的な候補ブロックは、前記第1および第2の領域中の前記第1および第2のピクセル位置の1つに各々対応する、
最低コストを有する前記第1および第2の領域中の前記複数の潜在的な候補ブロックのうちの1つを、前記候補ブロックとして識別することと
を行うようにさらに構成される、C13に記載の装置。
[C22]
複数のピクセル位置の前記範囲中の各ピクセル位置を一意に識別するために必要とされるビットの数は、第1の数に等しく、前記1つまたは複数のプロセッサは、
前記現在スライス内のあらかじめ定められた領域内に前記現在ブロックがあると決定することと、
ビットの前記第1の数よりも小さいものを使用して前記予測ベクトルをシグナリングすることと
を行うようにさらに構成される、C13に記載の装置。
[C23]
前記1つまたは複数のプロセッサは、
前記現在スライス中の複数のピクセルの前記第1のライン中の少なくとも1つのピクセルと、複数のピクセルの第3のライン中の少なくとも1つのピクセルとを前記現在ブロックが含むことを決定することと、複数のピクセルの前記第3のラインは、前記現在ブロック中の少なくとも1つのピクセルを含み、前記現在スライスの前記全体の幅にわたり、ここにおいて、前記第3のラインは、前記第1のラインとは異なる、
第1のブロックに基づいて前記現在ブロックをコーディングすることに関連付けられたコストを決定することと、前記第1のブロックは、前記第1の領域中の少なくとも1つのピクセルと前記第2の領域中の少なくとも1つのピクセルとを含む、
前記第1のブロックに基づいて前記現在ブロックをコーディングすることに関連付けられた前記コストに基づいて、前記現在ブロックを予測するために使用される、前記候補ブロックとなる前記第1のブロックを決定することと
を行うようにさらに構成される、C13に記載の装置。
[C24]
前記1つまたは複数のプロセッサは、
前記現在スライス中の複数のピクセルの前記第1のライン中の少なくとも1つのピクセルと、複数のピクセルの第3のライン中の少なくとも1つのピクセルとを前記現在ブロックが含むことを決定することと、複数のピクセルの前記第3のラインは、前記現在ブロック中の少なくとも1つのピクセルを含み、前記現在スライスの前記全体の幅にわたり、ここにおいて、前記第3のラインは、前記第1のラインとは異なる、
前記現在ブロックよりも少ない数のピクセルを有する第1のブロックに基づいて、前記現在ブロックをコーディングすることに関連付けられた第1のコストを決定することと、前記第1のブロックは、前記第2の領域中の各々にある1つまたは複数のピクセルを含む、
前記現在ブロックと同じ数のピクセルを有する第2のブロックに基づいて、前記現在ブロックをコーディングすることに関連付けられた第2のコストを決定することと、前記第2のブロックは、前記第1のブロック中の前記1つまたは複数のピクセルの全てと、前記第1の領域中の各々にある1つまたは複数の追加のピクセルとを含む、
前記第2のコストが前記第1のコストよりも大きいとの決定に基づいて、前記現在ブロックを予測するために使用される前記候補ブロックとなる前記第1のブロックを決定することと
を行うようにさらに構成される、C13に記載の装置。
[C25]
固定ビットレートビデオコーディング方式の簡略化されたブロック予測モードでビデオデータのブロックをコーディングするように構成されたコードを備える非一時的物理的コンピュータストレージであって、前記コードは、実行されたとき、装置に、
現在スライス中の現在ブロックを予測するために使用される候補ブロックを決定することと、前記候補ブロックは、前記現在スライス中の再構成されたピクセルに各々対応する複数のピクセル位置の範囲内にあり、複数のピクセル位置の前記範囲は、少なくとも(i)前記現在スライス中の複数のピクセルの第1のライン中の1つまたは複数の第1のピクセル位置を含む第1の領域と、ここで、複数のピクセルの前記第1のラインは、前記現在ブロック中の少なくとも1つのピクセルを含み、前記現在スライスの全体の幅にわたる、(ii)前記現在スライス中の複数のピクセルの第2のライン中の1つまたは複数の第2のピクセル位置を含む第2の領域と、ここで、複数のピクセルの前記第2のラインは、前記現在ブロック中のいずれのピクセルも含まないが、前記現在スライスの前記全体の幅にわたる、を備える、
複数のピクセル位置の前記範囲内の前記候補ブロックのピクセル位置を示す予測ベクトルを決定することと、前記候補ブロックの前記ピクセル位置は、前記第1の領域または前記第2の領域のうちの1つにある、
前記予測ベクトルをシグナリングすることを少なくとも部分的に介して、簡略化されたブロック予測モードで前記現在ブロックをコーディングすることと
を行わせる、非一時的物理的コンピュータストレージ。
[C26]
複数のピクセル位置の前記範囲は、複数のピクセルの前記第2のライン中の1つまたは複数の第3のピクセル位置を備える第3の領域をさらに含み、前記1つまたは複数の第3のピクセル位置は、前記現在ブロックの一部である前記第1のライン中のピクセル位置に関してコロケートされた前記第2のライン中のいずれのピクセル位置も含まない、C25に記載の非一時的物理的コンピュータストレージ。
[C27]
前記第1の領域は、第1の数のピクセル位置を含み、前記第2の領域は、第2の数のピクセル位置を含み、前記第3の領域は、第3の数のピクセル位置を含み、前記第1の数は、前記第2の数よりも大きく、かつ前記第3の数よりも大きい、C26に記載の非一時的物理的コンピュータストレージ。
[C28]
固定ビットレートビデオコーディング方式の簡略化されたブロック予測モードでビデオデータのブロックをコーディングするように構成されたビデオコーディングデバイスであって、前記ビデオコーディングデバイスは、
現在スライス中の現在ブロックを予測するために使用される候補ブロックを決定するための手段と、前記候補ブロックは、前記現在スライス中の再構成されたピクセルに各々対応する複数のピクセル位置の範囲内にあり、複数のピクセル位置の前記範囲は、少なくとも(i)前記現在スライス中の複数のピクセルの第1のライン中の1つまたは複数の第1のピクセル位置を含む第1の領域と、ここで、複数のピクセルの前記第1のラインは、前記現在ブロック中の少なくとも1つのピクセルを含み、前記現在スライスの全体の幅にわたる、(ii)前記現在スライス中の複数のピクセルの第2のライン中の1つまたは複数の第2のピクセル位置を含む第2の領域と、ここで、複数のピクセルの前記第2のラインは、前記現在ブロック中のいずれのピクセルも含まないが、前記現在スライスの前記全体の幅にわたる、を備える、
複数のピクセル位置の前記範囲内の前記候補ブロックのピクセル位置を示す予測ベクトルを決定するための手段と、前記候補ブロックの前記ピクセル位置は、前記第1の領域または前記第2の領域のうちの1つにある、
前記予測ベクトルをシグナリングすることを少なくとも部分的に介して、簡略化されたブロック予測モードで前記現在ブロックをコーディングするための手段と
を備える、ビデオコーディングデバイス。
[C29]
複数のピクセル位置の前記範囲は、複数のピクセルの前記第2のライン中の1つまたは複数の第3のピクセル位置を備える第3の領域をさらに含み、前記1つまたは複数の第3のピクセル位置は、前記現在ブロックの一部である前記第1のライン中のピクセル位置に関してコロケートされた前記第2のライン中のいずれのピクセル位置も含まない、C28に記載のビデオコーディングデバイス。
[C30]
前記第1の領域は、第1の数のピクセル位置を含み、前記第2の領域は、第2の数のピクセル位置を含み、前記第3の領域は、第3の数のピクセル位置を含み、前記第1の数は、前記第2の数よりも大きく、かつ前記第3の数よりも大きい、C29に記載のビデオコーディングデバイス。

Claims (30)

  1. 固定ビットレートビデオコーディング方式の簡略化されたブロック予測モードでビデオデータのブロックをコーディングするための方法であって、前記方法は、
    現在スライス中の現在ブロックを予測するために使用される候補ブロックを決定することと、前記候補ブロックは、前記現在スライス中の再構成されたピクセルに各々対応する複数のピクセル位置の範囲内にあり、複数のピクセル位置の前記範囲は、少なくとも(i)前記現在スライス中の複数のピクセルの第1のライン中の1つまたは複数の第1のピクセル位置を含む第1の領域と、ここで、複数のピクセルの前記第1のラインは、前記現在ブロック中の少なくとも1つのピクセルを含み、前記現在スライスの全体の幅にわたる、(ii)前記現在スライス中の複数のピクセルの第2のライン中の1つまたは複数の第2のピクセル位置を含む第2の領域と、ここで、複数のピクセルの前記第2のラインは、前記現在ブロック中のいずれのピクセルも含まないが、前記現在スライスの前記全体の幅にわたる、を備える、
    複数のピクセル位置の前記範囲内の前記候補ブロックのピクセル位置を示す予測ベクトルを決定することと、前記候補ブロックの前記ピクセル位置は、前記第1の領域または前記第2の領域のうちの1つにある、
    前記予測ベクトルをシグナリングすることを少なくとも部分的に介して、簡略化されたブロック予測モードで前記現在ブロックをコーディングすることと
    を備える、方法。
  2. 複数のピクセルの前記第1のラインおよび複数のピクセルの前記第2のラインは、前記現在スライスの2つの隣接するラスタスキャンラインを備える、請求項1に記載の方法。
  3. 前記現在ブロックは、簡略化されたブロック予測モードで予測された2×8ブロック内の1×2区分である、請求項1に記載の方法。
  4. 前記現在ブロックは、簡略化されたブロック予測モードで予測された2×8ブロック内の2×2区分である、請求項1に記載の方法。
  5. 複数のピクセル位置の前記範囲は、複数のピクセルの前記第2のライン中の1つまたは複数の第3のピクセル位置を備える第3の領域をさらに含み、前記1つまたは複数の第3のピクセル位置は、前記現在ブロックの一部である前記第1のライン中のピクセル位置に関してコロケートされた前記第2のライン中のいずれのピクセル位置も含まない、請求項1に記載の方法。
  6. 前記第2の領域および前記第3の領域は、同じラスタスキャンラインを占有する、請求項5に記載の方法。
  7. 前記第1の領域は、第1の数のピクセル位置を含み、前記第2の領域は、第2の数のピクセル位置を含み、前記第3の領域は、第3の数のピクセル位置を含み、前記第1の数は、前記第2の数よりも大きく、かつ前記第3の数よりも大きい、請求項5に記載の方法。
  8. 前記第1、第2、および第3の数は、互いに異なる、請求項7に記載の方法。
  9. 複数の潜在的な候補ブロックの各潜在的な候補ブロックに基づいて、前記現在ブロックをコーディングすることに関連付けられたコストを決定することと、前記複数の潜在的な候補ブロックは、前記第1および第2の領域中の前記第1および第2のピクセル位置の1つに各々対応する、
    最低コストを有する前記第1および第2の領域中の前記複数の潜在的な候補ブロックのうちの1つを、前記候補ブロックとして識別することと
    をさらに備える、請求項1に記載の方法。
  10. 複数のピクセル位置の前記範囲中の各ピクセル位置を一意に識別するために必要とされるビットの数は、第1の数に等しく、前記方法は、
    前記現在スライス内のあらかじめ定められた領域内に前記現在ブロックがあると決定することと、
    ビットの前記第1の数よりも小さいものを使用して前記予測ベクトルをシグナリングすることと
    をさらに備える、請求項1に記載の方法。
  11. 前記現在スライス中の複数のピクセルの前記第1のライン中の少なくとも1つのピクセルと、複数のピクセルの第3のライン中の少なくとも1つのピクセルとを前記現在ブロックが含むことを決定することと、複数のピクセルの前記第3のラインは、前記現在ブロック中の少なくとも1つのピクセルを含み、前記現在スライスの前記全体の幅にわたり、ここにおいて、前記第3のラインは、前記第1のラインとは異なる、
    第1のブロックに基づいて前記現在ブロックをコーディングすることに関連付けられたコストを決定することと、前記第1のブロックは、前記第1の領域中の少なくとも1つのピクセルと前記第2の領域中の少なくとも1つのピクセルとを含む、
    前記第1のブロックに基づいて前記現在ブロックをコーディングすることに関連付けられた前記コストに基づいて、前記現在ブロックを予測するために使用される、前記候補ブロックとなる前記第1のブロックを決定することと
    をさらに備える、請求項1に記載の方法。
  12. 前記現在スライス中の複数のピクセルの前記第1のライン中の少なくとも1つのピクセルと、複数のピクセルの第3のライン中の少なくとも1つのピクセルとを前記現在ブロックが含むことを決定することと、複数のピクセルの前記第3のラインは、前記現在ブロック中の少なくとも1つのピクセルを含み、前記現在スライスの前記全体の幅にわたり、ここにおいて、前記第3のラインは、前記第1のラインとは異なる、
    前記現在ブロックよりも少ない数のピクセルを有する第1のブロックに基づいて、前記現在ブロックをコーディングすることに関連付けられた第1のコストを決定することと、前記第1のブロックは、前記第2の領域中の各々にある1つまたは複数のピクセルを含む、
    前記現在ブロックと同じ数のピクセルを有する第2のブロックに基づいて、前記現在ブロックをコーディングすることに関連付けられた第2のコストを決定することと、前記第2のブロックは、前記第1のブロック中の前記1つまたは複数のピクセルの全てと、前記第1の領域中の各々にある1つまたは複数の追加のピクセルとを含む、
    前記第2のコストが前記第1のコストよりも大きいとの決定に基づいて、前記現在ブロックを予測するために使用される前記候補ブロックとなる前記第1のブロックを決定することと
    をさらに備える、請求項1に記載の方法。
  13. 固定ビットレートビデオコーディング方式の簡略化されたブロック予測モードでビデオデータのブロックをコーディングするための装置であって、前記装置は、
    ビデオデータの現在スライスの1つまたは複数の再構成されたピクセルを記憶するように構成されたメモリと、
    前記メモリと通信状態にある1つまたは複数のプロセッサとを備え、前記1つまたは複数のプロセッサは、
    前記現在スライス中の現在ブロックを予測するために使用される候補ブロックを決定することと、前記候補ブロックは、前記現在スライス中の再構成されたピクセルに各々対応する複数のピクセル位置の範囲内にあり、複数のピクセル位置の前記範囲は、少なくとも(i)前記現在スライス中の複数のピクセルの第1のライン中の1つまたは複数の第1のピクセル位置を含む第1の領域と、ここで、複数のピクセルの前記第1のラインは、前記現在ブロック中の少なくとも1つのピクセルを含み、前記現在スライスの全体の幅にわたる、(ii)前記現在スライス中の複数のピクセルの第2のライン中の1つまたは複数の第2のピクセル位置を含む第2の領域と、ここで、複数のピクセルの前記第2のラインは、前記現在ブロック中のいずれのピクセルも含まないが、前記現在スライスの前記全体の幅にわたる、を備える、
    複数のピクセル位置の前記範囲内の前記候補ブロックのピクセル位置を示す予測ベクトルを決定することと、前記候補ブロックの前記ピクセル位置は、前記第1の領域または前記第2の領域のうちの1つにある、
    前記予測ベクトルをシグナリングすることを少なくとも部分的に介して、簡略化されたブロック予測モードで前記現在ブロックをコーディングすることと
    を行うように構成される、装置。
  14. 複数のピクセルの前記第1のラインおよび複数のピクセルの前記第2のラインは、前記現在スライスの2つの隣接するラスタスキャンラインを備える、請求項13に記載の装置。
  15. 前記現在ブロックは、簡略化されたブロック予測モードで予測された2×8ブロック内の1×2区分である、請求項13に記載の装置。
  16. 前記現在ブロックは、簡略化されたブロック予測モードで予測された2×8ブロック内の2×2区分である、請求項13に記載の装置。
  17. 複数のピクセル位置の前記範囲は、複数のピクセルの前記第2のライン中の1つまたは複数の第3のピクセル位置を備える第3の領域をさらに含み、前記1つまたは複数の第3のピクセル位置は、前記現在ブロックの一部である前記第1のライン中のピクセル位置に関してコロケートされた前記第2のライン中のいずれのピクセル位置も含まない、請求項13に記載の装置。
  18. 前記第2の領域および前記第3の領域は、同じラスタスキャンラインを占有する、請求項17に記載の装置。
  19. 前記第1の領域は、第1の数のピクセル位置を含み、前記第2の領域は、第2の数のピクセル位置を含み、前記第3の領域は、第3の数のピクセル位置を含み、前記第1の数は、前記第2の数よりも大きく、かつ前記第3の数よりも大きい、請求項17に記載の装置。
  20. 前記第1、第2、および第3の数は、互いに異なる、請求項19に記載の装置。
  21. 前記1つまたは複数のプロセッサは、
    複数の潜在的な候補ブロックの各潜在的な候補ブロックに基づいて、前記現在ブロックをコーディングすることに関連付けられたコストを決定することと、前記複数の潜在的な候補ブロックは、前記第1および第2の領域中の前記第1および第2のピクセル位置の1つに各々対応する、
    最低コストを有する前記第1および第2の領域中の前記複数の潜在的な候補ブロックのうちの1つを、前記候補ブロックとして識別することと
    を行うようにさらに構成される、請求項13に記載の装置。
  22. 複数のピクセル位置の前記範囲中の各ピクセル位置を一意に識別するために必要とされるビットの数は、第1の数に等しく、前記1つまたは複数のプロセッサは、
    前記現在スライス内のあらかじめ定められた領域内に前記現在ブロックがあると決定することと、
    ビットの前記第1の数よりも小さいものを使用して前記予測ベクトルをシグナリングすることと
    を行うようにさらに構成される、請求項13に記載の装置。
  23. 前記1つまたは複数のプロセッサは、
    前記現在スライス中の複数のピクセルの前記第1のライン中の少なくとも1つのピクセルと、複数のピクセルの第3のライン中の少なくとも1つのピクセルとを前記現在ブロックが含むことを決定することと、複数のピクセルの前記第3のラインは、前記現在ブロック中の少なくとも1つのピクセルを含み、前記現在スライスの前記全体の幅にわたり、ここにおいて、前記第3のラインは、前記第1のラインとは異なる、
    第1のブロックに基づいて前記現在ブロックをコーディングすることに関連付けられたコストを決定することと、前記第1のブロックは、前記第1の領域中の少なくとも1つのピクセルと前記第2の領域中の少なくとも1つのピクセルとを含む、
    前記第1のブロックに基づいて前記現在ブロックをコーディングすることに関連付けられた前記コストに基づいて、前記現在ブロックを予測するために使用される、前記候補ブロックとなる前記第1のブロックを決定することと
    を行うようにさらに構成される、請求項13に記載の装置。
  24. 前記1つまたは複数のプロセッサは、
    前記現在スライス中の複数のピクセルの前記第1のライン中の少なくとも1つのピクセルと、複数のピクセルの第3のライン中の少なくとも1つのピクセルとを前記現在ブロックが含むことを決定することと、複数のピクセルの前記第3のラインは、前記現在ブロック中の少なくとも1つのピクセルを含み、前記現在スライスの前記全体の幅にわたり、ここにおいて、前記第3のラインは、前記第1のラインとは異なる、
    前記現在ブロックよりも少ない数のピクセルを有する第1のブロックに基づいて、前記現在ブロックをコーディングすることに関連付けられた第1のコストを決定することと、前記第1のブロックは、前記第2の領域中の各々にある1つまたは複数のピクセルを含む、
    前記現在ブロックと同じ数のピクセルを有する第2のブロックに基づいて、前記現在ブロックをコーディングすることに関連付けられた第2のコストを決定することと、前記第2のブロックは、前記第1のブロック中の前記1つまたは複数のピクセルの全てと、前記第1の領域中の各々にある1つまたは複数の追加のピクセルとを含む、
    前記第2のコストが前記第1のコストよりも大きいとの決定に基づいて、前記現在ブロックを予測するために使用される前記候補ブロックとなる前記第1のブロックを決定することと
    を行うようにさらに構成される、請求項13に記載の装置。
  25. 固定ビットレートビデオコーディング方式の簡略化されたブロック予測モードでビデオデータのブロックをコーディングするように構成されたコードを備える非一時的物理的コンピュータストレージであって、前記コードは、実行されたとき、装置に、
    現在スライス中の現在ブロックを予測するために使用される候補ブロックを決定することと、前記候補ブロックは、前記現在スライス中の再構成されたピクセルに各々対応する複数のピクセル位置の範囲内にあり、複数のピクセル位置の前記範囲は、少なくとも(i)前記現在スライス中の複数のピクセルの第1のライン中の1つまたは複数の第1のピクセル位置を含む第1の領域と、ここで、複数のピクセルの前記第1のラインは、前記現在ブロック中の少なくとも1つのピクセルを含み、前記現在スライスの全体の幅にわたる、(ii)前記現在スライス中の複数のピクセルの第2のライン中の1つまたは複数の第2のピクセル位置を含む第2の領域と、ここで、複数のピクセルの前記第2のラインは、前記現在ブロック中のいずれのピクセルも含まないが、前記現在スライスの前記全体の幅にわたる、を備える、
    複数のピクセル位置の前記範囲内の前記候補ブロックのピクセル位置を示す予測ベクトルを決定することと、前記候補ブロックの前記ピクセル位置は、前記第1の領域または前記第2の領域のうちの1つにある、
    前記予測ベクトルをシグナリングすることを少なくとも部分的に介して、簡略化されたブロック予測モードで前記現在ブロックをコーディングすることと
    を行わせる、非一時的物理的コンピュータストレージ。
  26. 複数のピクセル位置の前記範囲は、複数のピクセルの前記第2のライン中の1つまたは複数の第3のピクセル位置を備える第3の領域をさらに含み、前記1つまたは複数の第3のピクセル位置は、前記現在ブロックの一部である前記第1のライン中のピクセル位置に関してコロケートされた前記第2のライン中のいずれのピクセル位置も含まない、請求項25に記載の非一時的物理的コンピュータストレージ。
  27. 前記第1の領域は、第1の数のピクセル位置を含み、前記第2の領域は、第2の数のピクセル位置を含み、前記第3の領域は、第3の数のピクセル位置を含み、前記第1の数は、前記第2の数よりも大きく、かつ前記第3の数よりも大きい、請求項26に記載の非一時的物理的コンピュータストレージ。
  28. 固定ビットレートビデオコーディング方式の簡略化されたブロック予測モードでビデオデータのブロックをコーディングするように構成されたビデオコーディングデバイスであって、前記ビデオコーディングデバイスは、
    現在スライス中の現在ブロックを予測するために使用される候補ブロックを決定するための手段と、前記候補ブロックは、前記現在スライス中の再構成されたピクセルに各々対応する複数のピクセル位置の範囲内にあり、複数のピクセル位置の前記範囲は、少なくとも(i)前記現在スライス中の複数のピクセルの第1のライン中の1つまたは複数の第1のピクセル位置を含む第1の領域と、ここで、複数のピクセルの前記第1のラインは、前記現在ブロック中の少なくとも1つのピクセルを含み、前記現在スライスの全体の幅にわたる、(ii)前記現在スライス中の複数のピクセルの第2のライン中の1つまたは複数の第2のピクセル位置を含む第2の領域と、ここで、複数のピクセルの前記第2のラインは、前記現在ブロック中のいずれのピクセルも含まないが、前記現在スライスの前記全体の幅にわたる、を備える、
    複数のピクセル位置の前記範囲内の前記候補ブロックのピクセル位置を示す予測ベクトルを決定するための手段と、前記候補ブロックの前記ピクセル位置は、前記第1の領域または前記第2の領域のうちの1つにある、
    前記予測ベクトルをシグナリングすることを少なくとも部分的に介して、簡略化されたブロック予測モードで前記現在ブロックをコーディングするための手段と
    を備える、ビデオコーディングデバイス。
  29. 複数のピクセル位置の前記範囲は、複数のピクセルの前記第2のライン中の1つまたは複数の第3のピクセル位置を備える第3の領域をさらに含み、前記1つまたは複数の第3のピクセル位置は、前記現在ブロックの一部である前記第1のライン中のピクセル位置に関してコロケートされた前記第2のライン中のいずれのピクセル位置も含まない、請求項28に記載のビデオコーディングデバイス。
  30. 前記第1の領域は、第1の数のピクセル位置を含み、前記第2の領域は、第2の数のピクセル位置を含み、前記第3の領域は、第3の数のピクセル位置を含み、前記第1の数は、前記第2の数よりも大きく、かつ前記第3の数よりも大きい、請求項29に記載のビデオコーディングデバイス。
JP2018529177A 2015-12-07 2016-12-06 ディスプレイストリーム圧縮(dsc)のためのブロック予測モードに関するマルチ領域探索範囲 Active JP7198665B2 (ja)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201562264087P 2015-12-07 2015-12-07
US62/264,087 2015-12-07
US201662304879P 2016-03-07 2016-03-07
US62/304,879 2016-03-07
US15/369,723 US10368073B2 (en) 2015-12-07 2016-12-05 Multi-region search range for block prediction mode for display stream compression (DSC)
US15/369,723 2016-12-05
PCT/US2016/065186 WO2017100206A1 (en) 2015-12-07 2016-12-06 Multi-region search range for block prediction mode for display stream compression (dsc)

Publications (3)

Publication Number Publication Date
JP2018536364A true JP2018536364A (ja) 2018-12-06
JP2018536364A5 JP2018536364A5 (ja) 2020-01-30
JP7198665B2 JP7198665B2 (ja) 2023-01-04

Family

ID=58800491

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018529177A Active JP7198665B2 (ja) 2015-12-07 2016-12-06 ディスプレイストリーム圧縮(dsc)のためのブロック予測モードに関するマルチ領域探索範囲

Country Status (10)

Country Link
US (1) US10368073B2 (ja)
EP (1) EP3387832B1 (ja)
JP (1) JP7198665B2 (ja)
KR (1) KR102102066B1 (ja)
CN (1) CN108293114B (ja)
BR (1) BR112018011398B1 (ja)
CA (1) CA3004185C (ja)
HU (1) HUE049810T2 (ja)
TW (1) TWI692244B (ja)
WO (1) WO2017100206A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10368073B2 (en) * 2015-12-07 2019-07-30 Qualcomm Incorporated Multi-region search range for block prediction mode for display stream compression (DSC)
KR20200012957A (ko) * 2017-06-30 2020-02-05 후아웨이 테크놀러지 컴퍼니 리미티드 인터-프레임 예측 방법 및 디바이스
US10564890B2 (en) * 2017-07-07 2020-02-18 Seagate Technology Llc Runt handling data storage system
US10685031B2 (en) * 2018-03-27 2020-06-16 New Relic, Inc. Dynamic hash partitioning for large-scale database management systems
US10516885B1 (en) * 2018-07-11 2019-12-24 Tencent America LLC Method and apparatus for video coding
US10965315B2 (en) * 2018-08-09 2021-03-30 Andrew Kamal Data compression method
US10798419B2 (en) * 2018-11-19 2020-10-06 Sony Corporation Embedded codec circuitry for sub-block based encoding of quantized prediction residual levels
CN111787322B (zh) * 2020-08-04 2022-05-13 北京百度网讯科技有限公司 视频编码的方法、装置、电子设备及计算机可读存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150304675A1 (en) * 2014-04-21 2015-10-22 Qualcomm Incorporated System and method for coding in block prediction mode for display stream compression (dsc)

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7145950B2 (en) * 2003-07-14 2006-12-05 Primax Electronics Ltd. Method of motion vector determination in digital video compression
WO2006090334A2 (en) * 2005-02-28 2006-08-31 Nxp B.V. New compression format and apparatus using the new compression format for temporarily storing image data in a frame memory
US8494052B2 (en) * 2006-04-07 2013-07-23 Microsoft Corporation Dynamic selection of motion estimation search ranges and extended motion vector ranges
KR101228020B1 (ko) * 2007-12-05 2013-01-30 삼성전자주식회사 사이드 매칭을 이용한 영상의 부호화 방법 및 장치, 그복호화 방법 및 장치
EP2071852A1 (en) * 2007-12-11 2009-06-17 Alcatel Lucent Process for delivering a video stream over a wireless bidirectional channel between a video encoder and a video decoder
WO2010027170A2 (ko) * 2008-09-03 2010-03-11 에스케이텔레콤 주식회사 예측 방향 전환과 선택적 부호화를 이용한 영상 부호화/복호화 장치 및 방법
GB2471323B (en) * 2009-06-25 2014-10-22 Advanced Risc Mach Ltd Motion vector estimator
CN103039075B (zh) * 2010-05-21 2015-11-25 Jvc建伍株式会社 图像编码装置、图像编码方法、以及图像解码装置、图像解码方法
TWI412281B (zh) * 2010-12-28 2013-10-11 Nat Univ Chung Cheng A Method of Calculating Reverse Conversion of Low Complexity
US8681170B2 (en) * 2011-05-05 2014-03-25 Ati Technologies Ulc Apparatus and method for multi-streaming for more than three pixel component values
US9131239B2 (en) * 2011-06-20 2015-09-08 Qualcomm Incorporated Unified merge mode and adaptive motion vector prediction mode candidates selection
CN102946532A (zh) * 2011-09-02 2013-02-27 斯凯普公司 视频编码
US8963944B2 (en) * 2012-05-15 2015-02-24 Omnivision Technologies, Inc. Method, apparatus and system to provide video data for buffering
US9781418B1 (en) * 2012-06-12 2017-10-03 Google Inc. Adaptive deadzone and rate-distortion skip in video processing
JP6005865B2 (ja) * 2012-09-28 2016-10-12 インテル・コーポレーション スケーラブルビデオ符号化のためのエンハンスド参照領域の利用
US9813711B2 (en) * 2012-10-03 2017-11-07 Avago Technologies General Ip (Singapore) Pte. Ltd. Hybrid transform-based compression
US9451250B2 (en) * 2012-10-03 2016-09-20 Broadcom Corporation Bounded rate compression with rate control for slices
RU2608465C1 (ru) * 2013-01-04 2017-01-18 Самсунг Электроникс Ко., Лтд. Способ энтропийного кодирования сегмента слайса и устройство для него и способ энтропийного декодирования сегмента слайса и устройство для него
KR102070719B1 (ko) * 2013-01-23 2020-01-30 한국전자통신연구원 인터 예측 방법 및 그 장치
JP5845202B2 (ja) * 2013-03-22 2016-01-20 株式会社東芝 画像圧縮装置および画像処理システム
US11284103B2 (en) * 2014-01-17 2022-03-22 Microsoft Technology Licensing, Llc Intra block copy prediction with asymmetric partitions and encoder-side search patterns, search ranges and approaches to partitioning
US20160345022A1 (en) * 2014-03-18 2016-11-24 Mediatek Inc. Data processing apparatus for transmitting/receiving compressed display data with improved error robustness and related data processing method
US10477232B2 (en) * 2014-03-21 2019-11-12 Qualcomm Incorporated Search region determination for intra block copy in video coding
US9930346B2 (en) * 2014-04-15 2018-03-27 Qualcomm Incorporated System and method for flatness detection for display stream compression (DSC)
US9848193B2 (en) * 2014-04-15 2017-12-19 Qualcomm Incorporated System and method for selecting quantization parameter (QP) in display stream compression (DSC)
US9866853B2 (en) * 2014-04-15 2018-01-09 Qualcomm Incorporated System and method for lagrangian parameter calculation for display stream compression (DSC)
US10104397B2 (en) * 2014-05-28 2018-10-16 Mediatek Inc. Video processing apparatus for storing partial reconstructed pixel data in storage device for use in intra prediction and related video processing method
GB201409634D0 (en) * 2014-05-30 2014-07-16 Canon Kk Intra block copy mode encoding choice
US20160127771A1 (en) * 2014-10-30 2016-05-05 Broadcom Corporation System and method for transporting hd video over hdmi with a reduced link rate
US9716889B2 (en) * 2014-12-09 2017-07-25 Sony Corporation Intra and inter-color prediction for Bayer image coding
US9936203B2 (en) * 2015-04-13 2018-04-03 Qualcomm Incorporated Complex region detection for display stream compression
US10200713B2 (en) * 2015-05-11 2019-02-05 Qualcomm Incorporated Search region determination for inter coding within a particular picture of video data
US10200697B2 (en) * 2015-07-09 2019-02-05 Qualcomm Incorporated Display stream compression pixel format extensions using subpixel packing
US20170085886A1 (en) 2015-09-18 2017-03-23 Qualcomm Incorporated Variable partition size for block prediction mode for display stream compression (dsc)
US10368073B2 (en) * 2015-12-07 2019-07-30 Qualcomm Incorporated Multi-region search range for block prediction mode for display stream compression (DSC)
US10091533B2 (en) * 2016-02-18 2018-10-02 Cisco Technology, Inc. Generalized filter for removing video compression artifacts
US10567803B2 (en) * 2017-04-12 2020-02-18 Qualcomm Incorporated Midpoint prediction error diffusion for display stream compression

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150304675A1 (en) * 2014-04-21 2015-10-22 Qualcomm Incorporated System and method for coding in block prediction mode for display stream compression (dsc)

Also Published As

Publication number Publication date
BR112018011398A2 (pt) 2018-12-04
JP7198665B2 (ja) 2023-01-04
CA3004185C (en) 2023-04-25
WO2017100206A1 (en) 2017-06-15
CA3004185A1 (en) 2017-06-15
TW201725909A (zh) 2017-07-16
BR112018011398B1 (pt) 2024-01-23
CN108293114B (zh) 2022-04-01
US20170163986A1 (en) 2017-06-08
EP3387832A1 (en) 2018-10-17
TWI692244B (zh) 2020-04-21
KR102102066B1 (ko) 2020-04-17
HUE049810T2 (hu) 2020-10-28
CN108293114A (zh) 2018-07-17
KR20180091003A (ko) 2018-08-14
EP3387832B1 (en) 2020-04-22
US10368073B2 (en) 2019-07-30

Similar Documents

Publication Publication Date Title
JP7198665B2 (ja) ディスプレイストリーム圧縮(dsc)のためのブロック予測モードに関するマルチ領域探索範囲
CN108028925B (zh) 用于显示流压缩(dsc)的块预测模式的可变分区大小
US10244255B2 (en) Rate-constrained fallback mode for display stream compression
US10631005B2 (en) System and method for coding in block prediction mode for display stream compression (DSC)
JP6622791B2 (ja) マルチモードビデオコーディングのための空間予測モードによるビデオコーディングのための方法
JP2017515377A (ja) ディスプレイストリーム圧縮(dsc)のためのラグランジュパラメータ計算のためのシステムおよび方法
US9843816B2 (en) System and method for coding in pattern mode for display stream compression (DSC)

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180810

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191107

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191107

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191211

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20191211

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200424

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20200605

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200609

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200923

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20210224

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210623

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

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20210623

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20210701

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

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20210706

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

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20210910

C211 Notice of termination of reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C211

Effective date: 20210914

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20220315

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20220628

C13 Notice of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: C13

Effective date: 20220712

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221012

C23 Notice of termination of proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C23

Effective date: 20221025

C03 Trial/appeal decision taken

Free format text: JAPANESE INTERMEDIATE CODE: C03

Effective date: 20221122

C30A Notification sent

Free format text: JAPANESE INTERMEDIATE CODE: C3012

Effective date: 20221122

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221219

R150 Certificate of patent or registration of utility model

Ref document number: 7198665

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150