JP6234994B2 - ビデオ・コーディングのためのウェーブフロント並列処理 - Google Patents

ビデオ・コーディングのためのウェーブフロント並列処理 Download PDF

Info

Publication number
JP6234994B2
JP6234994B2 JP2015505713A JP2015505713A JP6234994B2 JP 6234994 B2 JP6234994 B2 JP 6234994B2 JP 2015505713 A JP2015505713 A JP 2015505713A JP 2015505713 A JP2015505713 A JP 2015505713A JP 6234994 B2 JP6234994 B2 JP 6234994B2
Authority
JP
Japan
Prior art keywords
row
slice
ctu
video
picture
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2015505713A
Other languages
English (en)
Other versions
JP2015516759A (ja
JP2015516759A5 (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 JP2015516759A publication Critical patent/JP2015516759A/ja
Publication of JP2015516759A5 publication Critical patent/JP2015516759A5/ja
Application granted granted Critical
Publication of JP6234994B2 publication Critical patent/JP6234994B2/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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

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

Description

優先権主張
本願は、2012年4月11日出願の米国仮出願61/622,974、および2012年4月30日出願の米国仮出願61/640,529の利益を主張する。これら出願のおのおのの内容全体が、本明細書において、参照によって組み込まれている。
本開示は、ビデオ・コーディングに関連する。
デジタル・ビデオ機能は、デジタル・テレビ、デジタル・ダイレクト・ブロードキャスト・システム、無線ブロードキャスト・システム、携帯情報端末(PDA)、ラップトップまたはデスクトップ・コンピュータ、タブレット・コンピュータ、eブック・リーダ、デジタル・カメラ、デジタル記録デバイス、デジタル・メディア・プレーヤ、ビデオ・ゲーム・デバイス、ビデオ・ゲーム・コンソール、セルラまたは衛星ラジオ電話、いわゆる「スマート・フォン」、ビデオ・テレビ会議デバイス、ビデオ・ストリーミング・デバイス等を含む広範囲のビデオに組み込まれうる。デジタル・ビデオ・デバイスは、例えば、MPEG−2、MPEG−4、ITU−T H.263、ITU−T H.264/MPEG−4、パート10、アドバンスト・ビデオ・コーディング(AVC)、現在開発中の高効率ビデオ・コーディング(HEVC)規格、およびこれら規格の拡張版によって定義された規格において記載されているようなビデオ・コーディング技法を実施する。これら規格の拡張は、例えば、H.264/AVCのスケーラブル・ビデオ・コーディング(SVC)拡張およびマルチビュー・ビデオ・コーディング(MVC)拡張を含む。ビデオ・デバイスは、このようなビデオ・コーディング技法を実施することによって、デジタル・ビデオ情報をより効率的に送信、受信、エンコード、デコード、および/または、格納しうる。
ビデオ・コーディング技法は、ビデオ・シーケンスに固有の冗長性を低減または除去するために、空間(イントラ・ピクチャ)予測、および/または、時間(インタ・ピクチャ)予測を含む。ブロック・ベースのビデオ・コーディングのために、ビデオ・スライス(例えば、ビデオ・フレーム、またはビデオ・フレームの一部分)が、ツリーブロック、コーディング・ユニット(CU)、および/または、コーディング・ノードとも称される複数のビデオ・ブロックへ分割されうる。ピクチャのイントラ・コード(I)スライスにおけるビデオ・ブロックは、同じピクチャ内の近隣ブロックにおける基準サンプルに対する空間予測を用いてエンコードされる。ピクチャのインタ・コード(PまたはB)スライスにおけるビデオ・ブロックは、同じピクチャ内の近隣ブロックにおける基準サンプルに対する空間予測を用いるか、別の基準ピクチャにおける基準サンプルに対する時間予測を用いうる。ピクチャは、フレームと称され、基準ピクチャは、基準フレームと称されうる。
空間予測または時間予測の結果、ブロックの予測ブロックがコーディングされるようになる。残余データは、コーディングされるべきオリジナルのブロックと、予測ブロックとの間のピクセル差分を表す。インタ・コード・ブロックは、予測ブロックを形成する基準サンプルのブロックを示す動きベクトルと、コーディングされたブロックと予測ブロックとの差分を示す残余データと、にしたがってエンコードされる。イントラ・コード・ブロックは、イントラ・コーディング・モードと残余データとにしたがってエンコードされる。さらなる圧縮のため、残余データは、ピクセル領域から変換領域へ変換され、残余変換係数となる。残余変換係数は、その後、量子化されうる。最初に2次元アレイで配列された量子化された変換係数は、変換係数の一次元ベクトルを生成するためにスキャンされ、より更なる圧縮を達成するために、エントロピ・コーディングが適用されうる。
一般に、本開示は、ピクチャのウェーブフロントの並列処理のための技法を記載する。特に、ビデオ・コーダは、本開示のいくつかの技法にしたがって、おのおのが1または複数の完全なスライスを有する1または複数のウェーブフロントを有するピクチャのためのビデオ・データをコーディングするように構成されうる。別の例として、ビデオ・コーダは、本開示のいくつかの技法にしたがって、おのおのが1または複数のウェーブフロントを含む1または複数のスライスを有するピクチャのビデオ・データをコーディングするように構成されうる。いずれのケースであれ、複数のウェーブフロントにおける各ウェーブフロントは、ウェーブフロントの並列処理を可能にする十分な情報を含みうる。したがって、ウェーブフロントは、常にスライス・ヘッダで始まるか、または、スライス・ヘッダで始まらないのであれば、ウェーブフロント上のブロックの行と同じスライスに属する。
一例では、方法は、ビデオ・データのピクチャのスライスが、ピクチャにおけるコーディング・ツリー・ユニット(CTU)の行において、行の先頭以外の位置において始まることを判定することと、この判定に基づいて、このスライスがCTUの行内で終わると判定することと、このスライスがCTUの行内で終わるとの判定に基づいて、このスライスをコーディングすることと、を含む。
別の例では、ビデオ・データをコーディングするデバイスは、ビデオ・データのピクチャのスライスが、ピクチャにおけるコーディング・ツリー・ユニット(CTU)の行において、行の先頭以外の位置において始まることを判定することと、この判定に基づいて、このスライスがCTUの行内で終わると判定することと、このスライスがCTUの行内で終わるとの判定に基づいて、このスライスをコーディングすることと、を実行するように構成されたビデオ・コーダを含む。
別の例では、ビデオ・データをコーディングするデバイスは、ビデオ・データのピクチャのスライスが、ピクチャにおけるコーディング・ツリー・ユニット(CTU)の行において、行の先頭以外の位置において始まることを判定する手段と、この判定に基づいて、このスライスがCTUの行内で終わると判定する手段と、スライスがCTUの行内で終わるとの判定に基づいて、このスライスをコーディングする手段と、を含む。
別の例では、コンピュータ読取可能な記憶媒体は、実行された場合、コンピューティング・デバイスのプログラム可能なプロセッサに対して、ビデオ・データのピクチャのスライスが、ピクチャにおけるコーディング・ツリー・ユニット(CTU)の行において、行の先頭以外の位置において始まることを判定することと、この判定に基づいて、このスライスがCTUの行内で終わると判定することと、このスライスがCTUの行内で終わるとの判定に基づいて、このスライスをコーディングすることと、を実行させる命令群を格納している。
1または複数の例の詳細が、添付図面および以下の説明において述べられる。他の特徴、目的、および利点が、説明と図面から、および特許請求の範囲から明らかになるだろう。
図1は、ウェーブフロントを並列的にコーディングするための技法を利用しうるビデオ・エンコーディングおよびでコーディング・システムの例を例示するブロック図である。 図2は、ウェーブフロントを並列的にコーディングするための技法を実施しうるビデオ・エンコーダの例を例示するブロック図である。 図3は、ウェーブフロントを並列的にコーディングするための技法を実施しうるビデオ・デコーダの例を例示するブロック図である。 図4は、ウェーブフロントに分割されたピクチャの例を例示する概念図である。 図5は、ビデオ・コーダが、ウェーブフロントを並列的にコーディングするための本開示の技法を実施しうる処理の例を例示するフローチャートである。 図6は、ビデオ・コーダが、ウェーブフロントを並列的にコーディングするための本開示の技法を実施しうる処理の別の例を例示するフローチャートである。
一般に、本開示は、ピクチャのウェーブフロントを並行処理のための技法を記述する。ピクチャは、複数のウェーブフロントへ分割されうる。おのおののウェーブフロントは、ピクチャのブロックの行に対応しうる。例において、ブロックは、最大コーディング・ユニット(LCU)とも称される、ピクチャのコーディング・ツリー・ユニット(CTU)に相当しうる。ビデオ・エンコーダまたはビデオ・デコーダのようなビデオ・コーダは、実質的に並列的にウェーブフロントをコーディングしうる。例えば、ビデオ・コーダは、ピクチャの最初のウェーブフロントのブロックを、ピクチャの2番目のウェーブフロントのブロックと、並列的にコーディングしうる。ビデオ・コーダは、上のウェーブフロントの最初の2つのブロックのデータに基づいて、現在のウェーブフロントのコンテキスト適応バイナリ算術コーディング(CABAC)を実行するための現在のウェーブフロントのコンテキストのみならず、現在のウェーブフロントの最初のブロックを含むスライスのスライス・ヘッダの1または複数の要素を初期化しうる。
ピクチャは、コーディング・ツリー・ユニット(CTU)の複数の行に分割されうる。CTUの各行は、それぞれのウェーブフロントに対応しうる。ウェーブフロント並列処理は、CTUの複数の行を、隣接するウェーブフロントの開始間に、2つのCTU分の遅延が生じうるウェーブフロント方式で並列的に処理する機能を提供する。ビデオ・コーダは、後続するCTU行の上にあるCTU行のうちの2つのCTUをコーディングした後のコンテキスト状態を用いて、後続するウェーブフロント(またはCTU行)のCABAC初期化を実行しうる。言い換えれば、現在のウェーブフロントのコーディングを開始する前に、ビデオ・コーダは、現在のウェーブフロントがピクチャのCTUの先頭行ではないと仮定して、現在のウェーブフロント上のウェーブフロントの少なくとも2つのブロックをコーディングしうる。さらに、ビデオ・コーダは、現在のウェーブフロント上のウェーブフロントの少なくとも2つのブロックをコーディングした後、現在のウェーブフロントのCABACコンテキストを初期化しうる。
CABAC機能は、右上のCTUと同期化されうる。ビデオ・コーダは、ウェーブフロントを並列的に処理しうるので、2番目のCTU行の最初をデコードするために、先頭のCTU行の終わりからの情報を必要としうる。そのような情報の例は、スライス情報、量子化パラメータ(QP)等を含みうる。例えば、新たなスライスが、先頭のCTU行(ウェーブフロント)の終了に向かって始まると、ビデオ・コーダは、直下のCTU行(ウェーブフロント)をコーディングする前に、先頭のCTU行の、ある情報を必要としうる。さらに具体的には、先頭のCTU行からの情報は、下のCTU行のデコード処理に影響を与えうる。
一般に、本開示の技法は、ウェーブフロントの最初のCTUの後である位置において始まり、後続するウェーブフロントへ続くスライスによって引き起こされる潜在的な問題を緩和することに向けられる。特に、スライスが、ウェーブフロントの最初のCTUに続く位置で始まり、1または複数の後続するウェーブフロントのCTUを含んでいるのであれば、ビデオ・コーダは、現在のウェーブフロントをコーディングするために必要とされる情報を取得するために、現在のウェーブフロントの各スライスのそれぞれのスライス・ヘッダをコーディングする必要がありうる。そのようなシナリオでは、ビデオ・デコーダは、ビデオ・エンコーダによってエンコードされたスライス・ヘッダに基づいて、ピクチャのさまざまなウェーブフロントをデコードするために必要な情報を決定するために、ピクチャにおける各スライス・ヘッドを検査することが必要とされうる。そのような情報の例は、ウェーブフロントのエントリ・ポイント、ウェーブフロントの量子化パラメータ等を含みうる。いくつかの事例では、ビデオ・コーダは、例えば、ピクチャ内の各スライスの先頭および終了ポイントをマップすることのように、ピクチャ内の位置にしたがってスライスをマップすることが必要とされうる。一方、ビデオ・コーダは、上の行から、現在のCTUの右の2つのCTU内から、現在のウェーブフロントの情報を有しているのであれば、スライス・スピルオーバによって引き起こされる遅延無しで、各ウェーブフロントをコーディングしうる。例えば、ビデオ・デコーダ、または、デコードを実行するように構成されたビデオ・エンコーダが、上の行から、現在のCTUの右の2つのCTU内から、現在のウェーブフロントの情報へのアクセスを有するのであれば、ビデオ・デコーダは、スライス・スピルオーバによって引き起こされる遅延無しで各ウェーブフロントをデコードしうる。
スライス・スピルオーバによって引き起こされるコーディング遅延を緩和または阻止するために、ビデオ・コーダは、ウェーブフロント・スライス・インタラクションを制限するために、本開示の1または複数の技法を実施する。これによって、スライスは、CTU行の先頭以外のCTU行の位置において始まる(例えば、スライスが、CTU行の中間において始まる)と、CTU行内(例えば、行の最後のCTUにおいて、または、行の最後のCTUの前のCTUにおいて)で終了するようになる。反対に、ビデオ・コーダは、スライスがCTU行の先頭で始まる(例えば、行の最初のCTUが、スライスの最初のCTUを形成する)ことと、スライスが現在の行のすべてのCTUと、1または複数の後続するCTU行の1または複数のCTUとを含むことと、を判定するために本技法を実施しうる。このシナリオでは、ビデオ・コーダは、スライス・スピルオーバを許可しうる。すなわち、ビデオ・コーダは、スライスが、1または複数の後続するCTU行の1または複数のCTUを含んでいると判定しうる。本開示の技法によって提供される潜在的な利点は、ビデオ・デコーダは、ピクチャをウェーブフロント並列処理順にデコードしている間に、後続するスライス・ヘッダに依存する必要がないかもしれないことである。代わりに、ビデオ・デコーダは、ウェーブフロント並列処理順にCTUを処理している間に遭遇しうる各スライス・ヘッダを処理しうる。
いくつかの例では、ビデオ・コーダは、スライスが、ウェーブフロントの中間または最後(例えば、ウェーブフロントの最初のブロックに後続するブロック)において始まり、後続するウェーブフロントへの境界を横切ったことを検出しうる。この事例では、ビデオ・コーダは、スライスが始まるウェーブフロント内(例えば、最後のブロック)で終了するようにスライスを設定しうる。前述したスライス・ウェーブフロント構成を用いて、ビデオ・コーダは、ウェーブフロントがスライス・ヘッダで始まるか、あるいは、ウェーブフロントがスライス・ヘッダで始まらないのであれば、このウェーブフロントのは、すぐ上に位置しているウェーブフロントと同じスライスに属していることを保証しうる。
いくつかの例では、ビデオ・コーダは、スライスが、ウェーブフロントの先頭で始まり、後続するウェーブフロントへ続くのであれば、スライスは、ウェーブフロントの中間(または、ウェーブフロント内)で終了せねばならないことを必要とする技法を実施しうる。前述した制約と合わせて、ビデオ・コーダは、最初のスライスが終了するウェーブフロントの残りが、1または複数の完全なスライスを含んでいることを保証しうる。これら要件にしたがってスライスおよびウェーブフロントを構成することによって、ビデオ・コーダは、例えば、ウェーブフロントの最初のブロック後に始まるスライスのスピルオーバによって引き起こされる遅延を緩和することによって、イメージのウェーブフロント並列処理をより効率的に実行する技法を実施しうる。
図1は、ウェーブフロントを並列的にコーディングするための技法を利用しうるビデオ・エンコーディングおよびデコーディング・システム10の例を例示するブロック図である。図1に図示されるように、システム10は、宛先デバイス14によって、後の時間においてデコードされるべきエンコードされたビデオ・データを提供するソース・デバイス12を含む。特に、ソース・デバイス12は、ビデオ・データを、コンピュータ読取可能な媒体16を経由して、宛先デバイス14へ提供する。ソース・デバイス12および宛先デバイス14は、デスクトップ・コンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレット・コンピュータ、セット・トップ・ボックス、いわゆる「スマート」フォンのような電話ハンドセット、いわゆる「スマート」パッド、テレビ、カメラ、ディスプレイ・デバイス、デジタル・メディア・プレーヤ、ビデオ・ゲーム・コンソール、ビデオ・ストリーミング・デバイス等を含む広範なデバイスのうちの何れかを備えうる。いくつかのケースでは、ソース・デバイス12および宛先デバイス14が無線通信のために装備されうる。
宛先デバイス14は、デコードされるべき、エンコードされたビデオ・データを、コンピュータ読取可能な媒体16を経由して受け取りうる。コンピュータ読取可能な媒体16は、エンコードされたビデオ・データを、ソース・デバイス12から宛先デバイス14へ移動させることが可能な任意のタイプの媒体またはデバイスを備えうる。一例において、コンピュータ読取可能な媒体16は、エンコードされたビデオ・データを、ソース・デバイス12が、宛先デバイス14へリアル・タイムでダイレクトに送信することを可能にする通信媒体を備えうる。エンコードされたビデオ・データは、例えば無線通信プロトコルのような通信規格にしたがって変調され、宛先デバイス14へ送信されうる。通信媒体は、例えばラジオ周波数(RF)スペクトルまたは1または複数の物理送信ラインのような任意の無線または有線の通信媒体を備えうる。通信媒体は、例えば、ローカル・エリア・ネットワーク、広域ネットワーク、またはインターネットのようなグローバル・ネットワークのような、パケット・ベースのネットワークの一部を形成しうる。通信媒体は、ルータ、スイッチ、基地局、または、ソース・デバイス12から宛先デバイス14への通信を容易にするために有用でありうるその他任意の機器を含みうる。
いくつかの例において、エンコードされたデータは、出力インタフェース22から、記憶デバイスへ出力されうる。同様に、エンコードされたデータは、入力インタフェースによって、記憶デバイスからアクセスされうる。記憶デバイスは、例えば、ハード・ドライブ、ブルーレイ(登録商標)ディスク、DVD、CD−ROM、フラッシュ・メモリ、揮発性メモリまたは不揮発性メモリ、または、エンコードされたビデオ・データを格納するのに適したその他任意のデジタル記憶媒体のような、分散的にまたはローカルにアクセスされるさまざまなデータ記憶媒体のうちの何れかを含みうる。さらなる例では、記憶デバイスは、ソース・デバイス12によって生成された、エンコードされたビデオを格納しうるファイル・サーバまたはその他の中間記憶デバイスに相当しうる。宛先デバイス14は、ストリーミングまたはダウンロードによって、記憶デバイスから、格納されたビデオ・データにアクセスしうる。ファイル・サーバは、エンコードされたビデオ・データを格納することと、エンコードされたビデオ・データを宛先デバイス14へ送信することとが可能な任意のタイプのサーバでありうる。ファイル・サーバの例は、(例えば、ウェブサイト用の)ウェブ・サーバ、FTPサーバ、ネットワーク・アタッチ・ストレージ(NAS:network attached storage)デバイス、またはローカル・ディスク・ドライブを含む。宛先デバイス14は、エンコードされたビデオ・データに、インターネット接続を含む任意の標準的なデータ接続によってアクセスしうる。これは、無線チャネル(例えば、Wi−Fi接続)、有線接続(例えば、DSL、ケーブル・モデム等)、または、ファイル・サーバに格納されたエンコードされたビデオ・データにアクセスすることに適したこれら両方の組み合わせを含みうる。記憶デバイスからの、エンコードされたビデオ・データの送信は、ストリーミング送信、ダウンロード送信、またはこれらの組み合わせを備えうる。
本開示の技法は、必ずしも無線のアプリケーションまたは設定に制限される必要はない。これら技法は、例えば、オーバ・ザ・エア・テレビジョン・ブロードキャスト、ケーブル・テレビジョン送信、衛星テレビ送信、ダイナミック・アダプティブ・ストリーミング・オーバHTTP(DASH)のようなインターネット・ストリーミング・ビデオ送信、データ記憶媒体にエンコードされるデジタル・ビデオ、データ記憶媒体に格納されたデジタル・ビデオのデコーディング、またはその他のアプリケーションのうちの何れかをサポートするビデオ・コーディングに適用されうる。いくつかの例において、システム10は、例えばビデオ・ストリーミング、ビデオ再生、ビデオ・ブロードキャスト、および/または、ビデオ・テレフォニのようなアプリケーションをサポートする1方向または2方向のビデオ送信をサポートするように構成されうる。
図1の例では、ソース・デバイス12は、ビデオ・ソース18、ビデオ・エンコーダ20、および出力インタフェース22を含んでいる。宛先デバイス14は、入力インタフェース28、ビデオ・デコーダ30、およびディスプレイ・デバイス32を含んでいる。本開示によれば、ソース・デバイス12のビデオ・エンコーダ20は、ウェーブフロントを並列的にコーディングするための技法を適用するように構成されうる。別の例では、ソース・デバイスおよび宛先デバイスは、その他の構成要素または構成を含みうる。例えば、ソース・デバイス12は、例えば外部カメラのような外部ビデオ・ソース18からビデオ・データを受信しうる。同様に、宛先デバイス14は、統合されたディスプレイ・デバイスを含んでいるのではなく、外部のディスプレイ・デバイスとインタフェースしうる。
図1の例示されたシステム10は単なる一例である。ウェーブフロントを並列的にコーディングするための技法は、任意のデジタル・ビデオ・エンコーディングおよび/またはデコーディング・デバイスによって実行されうる。一般に、本開示の技法は、ビデオ・エンコーディング・デバイスによって実行されるが、これら技法は、一般に「コーデック」と称されるビデオ・エンコーダ/デコーダによっても実行されうる。さらに、本開示の技術はまた、ビデオ・プリプロセッサによっても実行されうる。ソース・デバイス12および宛先デバイス14は、単に、ソース・デバイス12が、宛先デバイス14への送信のために、コーディングされたビデオ・データを生成するこのようなコーディング・デバイスの例である。いくつかの例において、デバイス12,14は、デバイス12,14のおのおのがビデオ・エンコードおよびデコード構成要素を含むように、実質的に対称的に動作しうる。したがって、システム10は、例えば、ビデオ・ストリーミング、ビデオ・プレイバック、ビデオ・ブロードキャスト、またはビデオ・テレフォニのために、ビデオ・デバイス12,14間の一方向または二方向のビデオ送信をサポートしうる。
ソース・デバイス12のビデオ・ソース18は、例えば、ビデオ・カメラ、以前にキャプチャされたビデオを含むビデオ・アーカイブ、および/または、ビデオ・コンテンツ・プロバイダからビデオを受け取るためのビデオ・フィード・インタフェースのようなビデオ・キャプチャ・デバイスを含みうる。さらなる代案として、ビデオ・ソース18は、コンピュータ・グラフィック・ベースのデータを、ソース・ビデオとして、または、ライブ・ビデオと、アーカイブされたビデオと、コンピュータによって生成されたビデオとの組み合わせとして生成しうる。いくつかのケースにおいて、ビデオ・ソース18がビデオ・カメラであれば、ソース・デバイス12および宛先デバイス14は、いわゆるカメラ電話またはビデオ電話を形成しうる。しかしながら、前述したように、本開示において記載されているこれら技術は、一般に、ビデオ・コーディングに適用可能でありうる。そして、無線または有線のアプリケーションに適用されうる。各ケースでは、キャプチャされたビデオ、プリキャプチャされたビデオ、または、コンピュータによって生成されたビデオが、ビデオ・エンコーダ20によってエンコードされうる。エンコードされたビデオ情報は、その後、出力インタフェース22によって、コンピュータ読取可能な媒体16に出力されうる。
コンピュータ読取可能な媒体16は、例えば、無線ブロードキャストまたは有線ネットワーク送信のような一時的な媒体、または、例えば、ハード・ディスク、フラッシュ・ドライブ、コンパクト・ディスク、デジタル・ビデオ・ディスク、ブルーレイ・ディスク、または、その他のコンピュータ読取可能な媒体のような記憶媒体(すなわち、非一時的な記憶媒体)を含みうる。いくつかの例において、ネットワーク・サーバ(図示せず)は、エンコードされたビデオ・データを、ソース・デバイス12から受け取り、エンコードされたビデオ・データを、例えばネットワーク送信によって、宛先デバイス14へ提供しうる。同様に、例えばディスク・スタンピング施設のような媒体製造施設のコンピューティング・デバイスが、エンコードされたビデオ・データをソース・デバイス12から受け取り、このエンコードされたビデオ・データを含むディスクを生成しうる。したがって、コンピュータ読取可能な媒体16は、さまざまな例において、さまざまな形態からなる1または複数のコンピュータ読取可能な媒体を含むものと理解されうる。
宛先デバイス14の入力インタフェース28は、コンピュータ読取可能な媒体16から、情報を受け取る。コンピュータ読取可能な媒体16の情報は、ビデオ・エンコーダ20によって定義され、ビデオ・デコーダ30によっても使用されるシンタックス情報を含みうる。これは、例えばGOPのように、ブロックおよびその他のコーディングされたユニットの特性および/または処理を記述するシンタックス要素を含む。ディスプレイ・デバイス32は、デコードされたビデオ・データをユーザへ表示しうる。そして、例えば、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマ・ディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイ・デバイスのようなさまざまなディスプレイ・デバイスのうちの何かを備えうる。
ビデオ・エンコーダ20およびビデオ・デコーダ30は、現在開発中のHigh Efficiency Video Coding(HEVC)規格のようなビデオ・コーディング規格にしたがって動作し、HEVCテスト・モデル(HM)に準拠しうる。あるいは、ビデオ・エンコーダ20およびビデオ・デコーダ30は、例えば、MPEG 4、パート10、アドバンスト・ビデオ・コーディング(AVC)とも称されるITU−T H.264規格のようなその他の独占規格または業界規格、または、これら規格の拡張版にしたがって動作しうる。しかしながら、本開示の技法は、任意の特定のコーディング規格に限定されない。ビデオ・コーディング規格のその他の例は、MPEG2およびITU−T H.263を含んでいる。図1に図示されていないが、いくつかの態様では、ビデオ・エンコーダ20およびビデオ・デコーダ30はおのおの、オーディオ・エンコーダおよびデコーダと統合されうる。そして、共通のデータ・ストリームまたは個別のデータ・ストリームでオーディオとビデオとの両方のエンコードを取り扱うために、適切なMUX−DEMUXユニット、またはその他のハードウェアおよびソフトウェアを含みうる。適用可能であれば、MUX−DEMUXユニットは、ITU H.223マルチプレクサ・プロトコル、または、例えばユーザ・データグラム・プロトコル(UDP)のようなその他のプロトコルに準拠しうる。
ITU−T H.264/MPEG−4(AVC)規格は、ジョイント・ビデオ・チーム(JVT)として知られている集合的なパートナシップの製品として、ISO/IECムービング・ピクチャ・エキスパート・グループ(MPEG)とともにITU−Tビデオ・コーディング・エキスパート・グループ(VCEG)によって公布された。いくつかの態様では、本開示に記載された技術は、一般に、H.264規格に準拠するデバイスに適用されうる。H.264規格は、2005年3月付けのITU−Tスタディ・グループによるITU−T Recommendation H.264,Advanced Video Coding for generic audiovisual servicesに記載されている。これは、本明細書では、H.264規格またはH.264仕様、またはH.264/ACD規格または仕様と称されうる。ジョイント・ビデオ・チーム(JVT)は、H.264/MPEG−4 AVCに対する拡張に取り組み続けている。
ビデオ・エンコーダ20およびビデオ・デコーダ30はおのおの、例えば1または複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向けIC(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、ディスクリート・ロジック、ソフトウェア、ハードウェア、ファームウェア、またはこれらの任意の組み合わせ、のようなさまざまな適切なエンコーダ回路のうちの何れかとして実現されうる。これら技法が部分的にソフトウェアで実現される場合、デバイスは、本開示の技法を実行するために、ソフトウェアのための命令群を、適切な非一時的なコンピュータ読取可能な媒体に格納し、1または複数のプロセッサを用いて、ハードウェアにおいて、これら命令群を実行しうる。ビデオ・エンコーダ20およびビデオ・デコーダ30のおのおのは、1または複数のエンコーダまたはデコーダに含まれうる。これらの何れかは、それぞれのデバイスにおいて、結合されたビデオ・エンコーダ/デコーダ(コーデック)の一部として統合されうる。
JCT−VCは、HEVC規格の開発に寄与している。HEVC規格化の努力は、HEVCテスト・モデル(HM)と称されるビデオ・コーディング・デバイスの発展中のモデルに基づく。HMは、例えばITU−T H.264/AVCにしたがう既存のデバイスに対するビデオ・コーディング・デバイスのいくつかの追加機能であると考えられる。例えば、H.264が、9つのイントラ予測エンコーディング・モードを提供する一方、HMは、33ものイントラ予測エンコーディング・モードを提供しうる。
一般に、HMのワーキング・モデルは、ビデオ・フレームまたはピクチャが、輝度サンプルと彩度サンプルとの両方を含むコーディング・ツリー・ユニット(CTU)またはツリーブロックのシーケンスに分割されうると記載している。ビットストリーム内のシンタックス・データは、ピクセル数の観点から最大のコーディング・ユニットである、CTUのサイズを定義しうる。スライスは、連続した多くのツリーブロックをコーディング順に含んでいる。ビデオ・フレームまたはピクチャは、1または複数のスライスへ分割されうる。おのおののツリーブロックは、クワッドツリーにしたがってコーディング・ユニット(CU)へ分割されうる。一般に、クワッドツリー・データ構造は、ツリーブロックに対応するルート・ノードと共に、CU当たり1つのノードを含んでいる。CUが4つのサブCUへ分割されるのであれば、CUに対応するノードは、4つのリーフ・ノードを含んでいる。これらのおのおのは、サブCUのうちの1つに対応する。
クワッドツリー・データ構造の各ノードは、対応するCUのためのシンタックス・データを提供しうる。例えば、クワッドツリーにおけるノードは、分割フラグを含みうる。これは、このノードに対応するCUが、サブCUに分割されるか否かを示す。CUのためのシンタックス要素は、再帰的に定義されうる。そして、CUがサブCUに分割されるか否かに依存しうる。CUは、さらに分割されないのであれば、リーフCUと称される。本開示では、たとえオリジナルのリーフCUの明示的な分割が無くても、リーフCUのうちの4つのサブCUも、リーフCUと称されるだろう。例えば、16×16サイズのCUがこれ以上分割されていないのであれば、16×16のCUが分割されていなくても、4つの8×8のサブCUもまたリーフCUと称されるだろう。
CUは、CUがサイズ区別を有していないこと以外は、H.264規格のマクロブロックと同様の目的を有する。例えば、ツリーブロックは、4つの子ノード(サブCUとも称される)に分割され、各子ノードが親ノードになり、別の4つの子ノードに分割されうる。クワッドツリーのリーフ・ノードと称される最終的に分割されない子ノードは、リーフCUとも称されるコーディング・ノードを備える。コーディングされたビットストリームに関連付けられたシンタックス・データは、最大CUデプスと称される、ツリーブロックが分割される最大回数を定義しうる。そして、コーディング・ノードの最大サイズをも定義しうる。したがって、ビットストリームはまた、最小コーディング・ユニット(SCU)を定義しうる。本開示は、HEVCのコンテキストにおけるCU、PU、またはTUのうちの何れか、または、その他の規格(例えば、H.264/AVCにおけるマクロブロックおよびそのサブ・ブロック)のコンテキストにおける類似のデータ構造を称するために「ブロック」という用語を用いる。
CUは、コーディング・ノードと、コーディング・ノードに関連付けられた変換ユニット(TU:transform unit)および予測ユニット(PU:prediction unit)を含む。CUのサイズは、コーディング・ノードのサイズに相当し、正方形の形状でなければならない。CUのサイズは、8×8ピクセルから、最大64×64またはそれ以上のピクセルを有するツリーブロックのサイズに及びうる。おのおののCUは、1または複数のPUおよび1または複数のTUを含みうる。CUに関連付けられたシンタックス・データは、例えば、CUを、1または複数のPUへ分割することを記述しうる。モードを分割することは、CUがスキップされるか、または、ダイレクト・モード・エンコードされるか、イントラ予測モード・エンコードされるか、インタ予測モード・エンコードされるかで異なりうる。PUは、非正方形の形状に分割されうる。CUに関連付けられたシンタックス・データはまた、例えば、クワッドツリーにしたがって、CUを1または複数のTUへ分割することを記述しうる。TUは、正方形形状または非正方形形状(例えば、長方形)でありうる。
HEVC規格は、TUにしたがう変換を考慮している。これは異なるCUについて異なりうる。TUは、必ずしもそうだとは限らないかもしれないが、一般に、分割されたCTUのために定義された所与のCU内のPUのサイズに基づいてサイズ化されうる。TUは、一般に、PUと同じサイズであるか、PUよりも小さい。いくつかの例において、CUに対応する残余サンプルは、「残余クワッドツリー」(RQT:residual quad tree)として知られているクワッドツリー構造を用いて、より小さなユニットに細分化されうる。RQTのリーフ・ノードは、変換ユニット(TU)と称されうる。TUに関連付けられたピクセル差分値は、変換係数を生成するために変換されうる。これは、量子化されうる。
リーフCUは、1または複数の予測ユニット(PU)を含みうる。一般に、PUは、対応するCUのすべてまたは一部に対応する空間エリアを表し、PUのための基準サンプルを取得するためのデータを含みうる。さらに、PUは、予測に関連するデータを含む。例えば、PUがイントラ・モード・エンコードされた場合、PUのデータは、残余クワッドツリー(RQT)に含まれうる。これは、PUに対応するTUのためのイントラ予測モードを記述するデータを含みうる。別の例として、PUがインタ・モード・エンコードされている場合、PUは、PUのための1または複数の動きベクトルを定義するデータを含みうる。PUの動きベクトルを定義するデータは、例えば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度(例えば、1/4ピクセル精度または1/8ピクセル精度)、動きベクトルが示す基準ピクチャ、および/または、動きベクトルの基準ピクチャ・リスト(例えば、リスト0、リスト1、またはリストC)、を記述しうる。
1または複数のPUを有するリーフCUはまた、1または複数の変換ユニット(TU)を含みうる。変換ユニットは、前述したように、(TUクワッドツリー構造とも称される)RQTを用いて指定されうる。例えば、分割フラグが、リーフCUが4つの変換ユニットに分割されているか否かを示しうる。その後、各変換ユニットは、さらに、さらなるサブTUに分割されうる。TUは、さらに分割されない場合、リーフTUと称されうる。一般に、イントラ・コーディングの場合、リーフCUに属するすべてのリーフTUは、同じイントラ予測モードを共有する。すなわち、同じイントラ予測モードは、一般に、リーフCUのすべてのTUのための予測値を計算するために適用される。イントラ・コーディングのために、ビデオ・エンコーダは、イントラ予測モードを用いて、各リーフTUのための残余値を、TUに対応するCUの一部と、オリジナル・ブロックとの間の差分として計算しうる。TUは、必ずしもPUのサイズに制限されない。したがって、TUは、PUより大きくも、または、小さくもなりうる。イントラ・コーディングのために、PUは、同じCUのための対応するリーフTUと連結されうる。いくつかの例では、リーフTUの最大サイズは、対応するリーフCUのサイズに相当しうる。
さらに、リーフCUのTUはまた、残余クワッドツリー(RQT)と称されるそれぞれのクワッドツリー・データ構造に関連付けられうる。すなわち、リーフCUは、リーフCUがどうやってTUへ分割されるのかを示すクワッドツリーを含みうる。TUクワッドツリーのルート・ノードは、一般に、リーフCUに対応する一方、CUクワッドツリーのルート・ノードは、一般に、ツリーブロック(またはCTU)に対応する。
分割されないRQTのTUは、リーフTUと称される。一般に、もしも別に言及されていないのであれば、本開示は、リーフCUおよびリーフTUを称するためにCUおよびTUという用語を用いる。
ビデオ・シーケンスは一般に、一連のビデオ・フレームまたはピクチャを含む。ピクチャのグループ(GOP:group of pictures)は、一般に、1または複数のビデオ・ピクチャからなる一連のビデオ・ピクチャを備える。GOPは、GOPのヘッダ、ピクチャの1または複数のヘッダ、または別の何れかに、シンタックス・データを含みうる。これは、GOPに含まれるピクチャの数を記述している。ピクチャのおのおののスライスは、それぞれのスライスのためのエンコード・モードを記述するスライス・シンタックス・データを含みうる。ビデオ・エンコーダ20は一般に、ビデオ・データをエンコードするために、個々のビデオ・スライス内のビデオ・ブロックに対して動作する。ビデオ・ブロックは、CU内のコーディング・ノードに対応しうる。ビデオ・ブロックは、固定サイズまたは可変サイズを有しうる。そして、指定されたコーディング規格によってサイズが異なりうる。
例として、HMは、さまざまなPUサイズにおける予測をサポートする。特定のCUのサイズが2N×2Nであると仮定すると、HMは、2N×2NまたはN×NであるPUサイズではイントラ予測をサポートし、2N×2N、2N×N、N×2N、またはN×Nである対称なPUサイズではインタ予測をサポートする。HMはまた、2N×nU、2N×nD、nL×2N、およびnR×2NのPUサイズにおけるインタ予測のために、非対称分割をサポートする。非対称分割では、CUの1つの方向が分割されないが、他の方向が25%および75%へ分割される。25%分割に対応するCU部分は、“Up”、“Down”、“Left”、または“Right”を示すインジケーションが続く“n”によって示される。したがって、例えば、“2N×nU”は、トップにおいて2N×0.5N PUで、ボトムにおいて2N×1.5N PUを用いて水平的に分割される2N×2N CUを称する。
本開示では、“N×N”および“NバイN”は、例えば16×16ピクセルまたは16バイ16ピクセルのように、垂直寸法および水平寸法に関するビデオ・ブロックのピクセル寸法を称するために交換可能に使用されうる。一般に、16×16ブロックは、垂直方向に16ピクセル(y=16)と、水平方向に16ピクセル(x=16)を有するだろう。同様に、N×Nブロックは、一般に、垂直方向におけるN個のピクセルと、水平方向におけるN個のピクセルとを有する。ここで、Nは、負ではない整数値を表わす。ブロックにおけるピクセルは、行と列とで構成されうる。さらに、ブロックは、必ずしも、垂直方向と同じ数のピクセルを、水平方向に有する必要はない。例えば、ブロックは、N×Mピクセルを備えうる。ここで、Mは、必ずしもNに等しくはない。
CUのPUを用いたイントラ予測コーディングまたはインタ予測コーディングの後、ビデオ・エンコーダ20は、CUのTUの残余データを計算しうる。PUは、(ピクセル領域とも称される)空間領域に予測ピクセル・データ生成する方法またはモードを記述するシンタックス・データを備えうる。そして、TUは、例えば、ディスクリート・コサイン変換(DCT)、整数変換、ウェーブレット変換、または、残余ビデオ・データへの概念的に類似の変換、のような変換の適用後の係数を変換領域に備えうる。残余データは、エンコードされていないピクチャのピクセルと、PUに対応する予測値との間のピクセル差分に対応しうる。ビデオ・エンコーダ20は、CUのための残余データを含むTUを生成し、その後、TUを変換して、CUのための変換係数を生成する。
変換係数を生成するいずれの変換後も、ビデオ・エンコーダ20は、変換係数の量子化を実行しうる。量子化は一般に、変換係数が量子化され、恐らくは、さらなる圧縮によって、これら係数を表すために使用されるデータ量が低減される処理を称する。この量子化処理は、これら係数のうちのいくつかまたはすべてに関連付けられたビット・デプスを低減しうる。例えば、nビット値は、量子化中に、mビット値に丸められうる。ここで、nは、mよりも大きい。
量子化後、ビデオ・エンコーダは、変換係数をスキャンし、量子化された変換係数を含む2次元行列から1次元ベクトルを生成する。スキャンは、アレイの前面により高いエネルギ(したがって、より低い周波数)係数を配置し、アレイに背面により低いエネルギ(したがって、より高い周波数)係数を配置するように設計されうる。いくつかの例において、ビデオ・エンコーダ20は、量子化された変換係数をスキャンするために、予め定義されたスキャン順序を利用し、エントロピ・エンコードされうるシリアル・ベクトルが生成されうる。別の例では、ビデオ・エンコーダ20は、適応性スキャンを実行しうる。1次元ベクトルを生成するために、量子化された変換係数がスキャンされた後、ビデオ・エンコーダ20は、例えば、コンテキスト適応可変長コーディング(CAVLC)、コンテキスト適応バイナリ・コーディング、(CABAC)、シンタックス・ベース・コンテキスト適応バイナリ・コーディング(SBAC)、確率インタバル分割エントロピ(PIPE)コーディング、または、その他のエントロピ・エンコード方法にしたがって、1次元ベクトルをエントロピ・エンコードしうる。ビデオ・エンコーダ20はさらに、ビデオ・データをデコードする際にビデオ・デコーダ30によって用いられるために、エンコードされたビデオ・データに関連付けられたシンタックス要素をエントロピ・エンコードしうる。
CABACを実行するために、ビデオ・エンコーダ20は、コンテキスト・モデル内のコンテキストを、送信されるべきシンボルへ割り当てうる。このコンテキストは、例えば、近隣のシンボルの値が、非ゼロであるか否かに関連しうる。CAVLCを実行するために、ビデオ・エンコーダ20は、送信されるべきシンボルのために、可変長コードを選択しうる。VLCにおけるコードワードは、比較的短いコードが、より確率の高いシンボルに対応する一方、よい長いコードが、より確率の低いシンボルに対応するように構築されうる。このように、VLCを用いることで、例えば、送信されるべき各シンボルのために等しい長さのコードワードを用いることに対するビット節約を達成しうる。確率決定は、シンボルに割り当てられたコンテキストに基づきうる。
ビデオ・エンコーダ20およびビデオ・デコーダ30は、ピクチャをエンコードおよびデコードするために、それぞれウェーブフロント並列処理(WPP)を用いうる。WPPを用いてピクチャをコーディングするために、例えばビデオ・エンコーダ20およびビデオ・デコーダ30のようなビデオ・コーダは、ピクチャのコーディング・ツリー・ユニット(CTU)を、複数のウェーブフロントに分割しうる。各ウェーブフロントは、ピクチャのCTUの異なる行に相当しうる。ビデオ・コーダは、例えば、第1のコーダ・コアまたはスレッドを用いて、先頭のウェーブフロントのコーディングを開始しうる。ビデオ・コーダは、先頭のウェーブフロントのうちの2またはそれ以上のCTUをコーディングした後、例えば、第2の並列したコーダ・コアまたはスレッドを用いて、先頭のウェーブフロントをコーディングすることと並列的に、先頭から2つ目のウェーブフロントのコーディングを開始しうる。ビデオ・コーダは、先頭から2つ目のウェーブフロントの2またはそれ以上のCTUをコーディングした後、例えば、第3の並列したコーダ・コアまたはスレッドを用いて、より高次のウェーブフロントをコーディングすることと並列的に、先頭から3つ目のウェーブフロントのコーディングを開始しうる。このパターンは、ピクチャのウェーブフロントを下がって継続しうる。
本開示は、ビデオ・コーダが、例えばWPPを用いて「CTUグループ」として現在コーディングしているCTUのセットを参照する。したがって、ビデオ・コーダが、ピクチャをコーディングするためにWPPを用いている場合、CTUグループのうちのCTUのおのおのは、ピクチャの異なるウェーブフロントにありうる。そして、CTUグループのうちのCTUのおのおのは、ピクチャのCTUの少なくも2列、それぞれウェーブフロント上において、CTUから垂直方向にオフセットしうる。
さらに、WPPを用いてピクチャをコーディングする場合、ビデオ・コーダは、特定のCTUの外部にある1または複数の空間的に近隣にあるCUが、特定のCTUの左、左上、上、または右上にある限り、特定のCTUにおける特定のCUにおけるイントラ予測またはインタ予測を実行するために、特定のCTUの外部にある1または複数の空間的に近隣にあるCUに関連付けられた情報を用いうる。1または複数の空間的に近隣にあるCUが、特定のCTUの右上にある場合、1または複数の空間的に近隣にあるCUは既にコーディングされていると仮定される。特定のCTUが、一番上のウェーブフロント以外のウェーブフロントにおける最も左のCTUであれば、ビデオ・コーダは、特定のCTUのシンタックス要素をエントロピ・コーディングするためのコーディング・コンテキストを選択するために、隣接するウェーブフロント(例えば、すぐ上に位置するウェーブフロント)の第1および/または第2のCTUに関連付けられた情報を用いうる。特定のCTUが、ウェーブフロントにおける最も左のCTUではないのであれば、ビデオ・コーダは、特定のCTUのシンタックス要素をエントロピ・コーディングするためのコーディング・コンテキストを選択するために、特定のCTUの左、左上、上、および/または、右上に位置している空間的に隣接しているCUに関連付けられた情報から選択しうる。このように、ビデオ・コーダは、すぐ上に位置するウェーブフロントのうちの2またはそれ以上のCTUをエンコーディングした後、すぐ上に位置するウェーブフロントのエントロピ・コーディング状態に基づいて、ウェーブフロントのエントロピ・コーディング(例えば、CABAC)状態を初期化しうる。
さらに、ビデオ・コーダは、イメージを、スライスへ分割しうる。一般に、各スライスは、個々にエントロピ・コーディングされ、これによって、コンテキストは、新たなスライスのコーディングの先頭においてリセットされるようになる。ソース・デバイス12のビデオ・エンコーダ20またはポスト処理ユニット(例えば、図1に図示されないカプセル化ユニット)は、スライスを、それぞれのネットワーク・アブストラクション・レイヤ(NAL)ユニットへカプセル化しうる。例えば、NALユニットは、1または複数のエンコードされたスライスを表わすペイロードおよびNALヘッダを含みうる。エンコードされたスライスを互いに区別するために、ビデオ・エンコーダ20は、スライスの開始を示すために、NALユニット・ペイロード内にスライス・ヘッダを含めうる。さらに、ビデオ・エンコーダ20は、エンコードされた個別のスライスの終わりを示すために、NALユニット・ペイロード内に、1または複数のエンド・オブ・スライス・シンボルを含めうる。
ビデオ・エンコーダ20は、与えられたイメージを、可変長のスライスへ分割しうる。言い換えれば、特定のイメージの異なるスライスが、可変数のCTUを含みうるか、または、可変数のCTUに対応しうる。その結果、ビデオ・エンコーダ20は、異なる数のエンコードされたスライスを含めるために、異なるNALユニットを生成しうる。
それに相応して、ビデオ・デコーダ30は、イメージを、スライス毎にエントロピ・デコードしうる。さらに詳しくは、ソース・デバイス22は、宛先デバイス14の入力インタフェース28にNALユニットを送信するために出力インタフェース22を用いうる。あるいは、出力インタフェース22は、例えば磁気メモリまたはフラッシュ・メモリのようなディスクまたはコンピュータ読取可能なメモリのようなコンピュータ読取可能媒体へNALユニットを出力しうる。ビデオ・デコーダ30は、入力インタフェース28を介してNALユニットを受け取り、エンコードされた各スライスを、含まれたスライス分割情報(例えば、スライス・ヘッダおよび/またはエンド・オブ・スライス・シンボル)を用いて抽出しうる。次に、ビデオ・デコーダ30は、抽出された各スライスをエントロピ・デコードし、イメージをスライス毎に再構築しうる。
WPPのコンテキストでは、いくつかの状況下では、ビデオ・コーダは、スライス境界を超えてコーディング・コンテキストを選択することができないことがありうる。例えば、特定のCTUのコンテキスト情報が、特定のCTUの右上に位置するCTUとは異なるスライスに属するのであれば、ビデオ・コーダは、特定のCTUをコーディングするために必要な情報へのアクセスを有していないことがありうる。さらに具体的には、ウェーブフロント内に位置するという観点において、特定のCTUのスライス・ヘッダは、ビデオ・コーダが、特定のCTUに達した場合にコーディングされないことがありうる。例えば、スライス・ヘッダは、CTUのウェーブフロントのすぐ上にあるウェーブフロントに位置しうる。また、スライス・ヘッダは、特定のCTUと比較して、2よりも多いブロック、右に位置しうる。この例において、ビデオ・コーダは、空間的に近隣にあるCUへのアクセスを有しうる。ビデオ・コーダは、特定のCTUをコーディングするためのコンテキストを、このCUから描画しうる。しかしながら、ビデオ・コーダは、特定のCTUに対応するスライス・ヘッダを未だにコーディングしていないかもしれず、したがって、このスライス・ヘッダがコーディングされるまで、特定のCTUをコーディングすることができないことがありうる。その結果、ビデオ・コーダは、特定のCTUのコーディングを開始する前に、(スライス・ヘッダがコーディングされるまで)先行するウェーブフロントの追加のブロックをコーディングする必要がありうる。このシナリオでは、ビデオ・コーダは、例えば、右上に位置するCTUと並列して特定のCTUをコーディングすることのような、WPPの利点を利用することはできない。
ビデオ・コーダは、スライスがウェーブフロントの中間にある場合に、スライスがウェーブフロント境界を超えることを許可するのではなく、スライスが、ウェーブフロントの先頭(すなわち、最初のCTU)後の任意のポイントで始まる場合に、そのウェーブフロント内で終了するように、コーディング処理を制限するために本開示の技法を実施しうる。議論目的を容易にするのみのために、ウェーブフロントの先頭後の任意のポイントは、一般に、ウェーブフロントの「中間」として総括的に称される。すなわち、本明細書において用いられるようなウェーブフロントの「中間」は、必ずしも中間点である必要はなく、ウェーブフロントの順序的に最初のブロック以外のウェーブフロントの任意のCTU(または任意のブロック)である。そのようなスライスはまた、ウェーブフロントの「内部」で始まるとも言われうる。
例えば、ビデオ・エンコーダ20は、スライス・ヘッダが、ウェーブフロントの中間内にあることを判定しうる。そして、このスライスは、ウェーブフロントの残りすべてのCTUのみならず、すぐ下に位置するウェーブフロントの少なくとも1つのCTUをも含む。これに応じて、ビデオ・エンコーダ20は、CTUのエントロピ・エンコードを終了すると、または、ウェーブフロントの最後のCTUを含めると、エンド・オブ・スライス・シンボルを挿入しうる。すなわち、ビデオ・エンコーダ20は、スライスが始まるウェーブフロント内でスライスが終了することを保証しうる。これによって、スライスは、ウェーブフロントの順序的に最初のブロック以外のブロックで始まる場合、ウェーブフロント境界を超えないようになる。さらに、ビデオ・エンコーダ20は、エンド・オブ・シンボルの後にスライス・ヘッダを挿入しうる。これによって、次のウェーブフロント(例えば、すぐ下に位置するウェーブフロント)が、エンコードされた新たなスライスの始まりに対応していることが示される。同様に、ビデオ・デコーダ30は、WPPにしたがってイメージをエントロピ・デコードする場合、エンコードされたスライスが、ウェーブフロントの中間で始まることと、このスライスがまた、このスライスが始まるのと同じウェーブフロント内で終了することとを判定するために、受け取られたNALユニットのエンド・オブ・スライス・シンボルおよび/またはスライス・ヘッダを読み取りうる。いくつかの例では、ビデオ・エンコーダ20は、2または複数のスライスが、単一のウェーブフロントの中間で始まることを判定しうる。そのような例では、ビデオ・エンコーダ20は、このような最後のスライスが、後続するウェーブフロントにスピルオーバするか否かを判定し、このような最後のウェーブフロントに関して本明細書において記載された制約を実施しうる。
このように、スライスは、ウェーブフロントの順序的に最初のCTU以外のCTUまたはその他のブロックで始まり、このウェーブフロント内で終了するという制約が課せられる。これらの制約を実施することによって、例えばビデオ・エンコーダ20および/またはビデオ・デコーダ30のようなビデオ・コーダは、WPPを実施する際の効率を高めうる。さらに詳しくは、ビデオ・コーダは、現在のウェーブフロントのCTUをコーディングしている間に、現在のCTUをコーディングするために必要でありうる以前のウェーブフロントの任意のデータへのアクセスを有することを保証するための制約を実施しうる。すなわち、現在のCTUを含むスライスのスライス・ヘッダ・データは、現在のCTUの1または複数のシンタックス要素をエントロピ・コーディングしている場合に利用可能となることが保証されうる。これによって、ビデオ・コーダは、シンタックス要素を正しくエントロピ・コーディングするためのコンテキストを決定できるようになりうる。
いくつかの例において、スライスは、最初のウェーブフロントの最初のCTUにおいて始まり、最初のウェーブフロントのすぐ下に位置する2番目のウェーブフロントへの境界を超えることがありうる。そのような例において、スライスは、2番目のウェーブフロントの複数のCTUを含みうるが、2番目のウェーブフロント内で終了しうる。言い換えれば、2番目のウェーブフロントは、別の2番目のスライスに属する追加のCTUを含みうる。
この例では、ビデオ・コーダは、2番目のウェーブフロントに位置するスライスのCTUをコーディングしている間、コーディング処理のために必要な最初のウェーブフロントからのすべてのデータへのアクセスを有しうる。すなわち、ビデオ・コーダは、前のウェーブフロントのコーディング中に、スライス・ヘッダ・データのコーディングをすでに完了しているだろう。したがって、ウェーブフロントの順序的に最初のCTUにおいて始まるスライスは、未だに、後続するウェーブフロントへのウェーブフロント境界を超えることを許可されうる。さらに、ビデオ・コーダは、本明細書に記載された制約を用いて、2番目のスライスが、2番目のウェーブフロント内で終了しうることを保証しうる。例えば、2番目のスライスが、2番目のウェーブフロントの中間で始まり、2番目のウェーブフロントの最後のCTUで終わるとビデオ・コーダが判定すると、ビデオ・コーダは、2番目のスライスのコーディングを終了することと同時に2番目のウェーブフロントのコーディングを終了しうる。その結果、3番目のウェーブフロントの開始は、定義によって、3番目のスライスの始まりと一致するだろう。さらに詳しくは、3番目のウェーブフロントのうちの最初の(最も左の)CTUが、3番目のスライスの最初のCTUを表わすだろう。3番目のスライスが、4番目(またはそれ以降の)ウェーブフロントへの境界を超えると、ビデオ・コーダは、前のウェーブフロント内に位置する3番目のスライスの一部からのコーディング・クリティカル・データへの一貫したアクセスを有しうる。これによって、WPPを実行するためのビデオ・コーダの機能が向上される。このように、ビデオ・コーダは、現在のスライスをコーディングするために本開示の技法を実施しうる。これによって、WPPを実施している間、後続するスライスが、WPPにしたがって効率的にコーディングされる。
ビデオ・エンコーダ20および/またはビデオ・デコーダ30のようなビデオ・コーダは、ビデオ・コーダが現在WPPを実施しているか否かに基づいてこの制約(単数または複数)をアクティブにしうる。一例として、ビデオ・デコーダ30は、WPPがイネーブルされていることを示す、シンタックス・データのビットストリームを用いて、WPPが現在イネーブルされているか否かを判定しうる。同様に、ビデオ・エンコーダ20は、WPPがイネーブルされているかを示すシンタックス・データをエンコードしうる。そのようなシンタックス・データは、ビデオ・パラメータ・セット(VPS)、シーケンス・パラメータ・セット(SPS)、ピクチャ・パラメータ・セット(PPS)、補足的エンハンスメント情報(SEI)メッセージ等でコーディングされうる。この例では、WPPがイネーブルされていると判定されることに応じて、ビデオ・エンコーダ20は、エントロピ・エンコードし、ビデオ・デコーダ30は、前述したスライス・ウェーブフロント制約を確保しながら、WPPを用いて、ピクチャをエントロピ・デコードしうる。いくつかの実施では、ビデオ・コーダは、例えば、WPPが現在ディセーブルされていると判定されることに応じて、WPPをイネーブルしうる。
ビデオ・エンコーダ20はさらに、例えば、ブロック・ベースのシンタックス・データ、フレーム・ベースのシンタックス・データ、およびGOPベースのシンタックス・データのようなシンタックス・データを、例えば、フレーム・ヘッダ、ブロック・ヘッダ、スライス・ヘッダ、またはGOPヘッダで、ビデオ・デコーダ30へ送信しうる。GOPシンタックス・データは、それぞれのGOPにおけるフレームの数を記述しうる。そして、フレーム・シンタックス・データは、対応するフレームをエンコードするために使用されるエンコード/予測モードを示しうる。
ビデオ・エンコーダ20およびビデオ・デコーダ30はおのおの、適用可能であれば、例えば、1または複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向けIC(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、ディスクリート論理回路、ソフトウェア、ハードウェア、ファームウェア、またはこれら任意の組み合わせのように、さまざまな適切なエンコーダまたはデコーダ回路の何れかとして実現されうる。ビデオ・エンコーダ20およびビデオ・デコーダ30のおのおのは、1または複数のエンコーダまたはデコーダに含まれうる。これらの何れかは、結合されたビデオ・エンコーダ/デコーダ(コーデック)の一部として統合されうる。ビデオ・エンコーダ20および/またはビデオ・デコーダ30を含むデバイスは、集積回路、マイクロプロセッサ、および/または、例えばセルラ電話のような無線通信デバイスを含みうる。
図2は、複数のウェーブフロントを並列的にコーディングするための技法を実施しうるビデオ・エンコーダ20の例を例示するブロック図である。ビデオ・エンコーダ20は、ビデオ・スライス内で、ビデオ・ブロックのイントラ・コーディングおよびインタ・コーディングを実行しうる。イントラ・コーディングは、所与のビデオ・フレームまたはピクチャ内のビデオにおける空間冗長を低減または除去するために、空間予測に依存する。インタ・コーディングは、ビデオ・シーケンスの隣接するフレームまたはピクチャ内のビデオにおける時間冗長を低減または除去するために、時間予測に依存する。イントラ・モード(Iモード)は、いくつかの空間ベースのコーディング・モードのうちの何れかを称しうる。例えば単一方向予測(Pモード)または双方向予測(Bモード)のようなインタ・モードは、いくつかの時間ベースのコーディング・モードのうちの何れかを称しうる。
図2に図示されるように、ビデオ・エンコーダ20は、エンコードされるべきビデオ・フレーム内の現在のビデオ・ブロックを受け取る。図2の例では、ビデオ・エンコーダ20は、モード選択ユニット40、基準ピクチャ・メモリ64、加算器50、変換処理ユニット52、量子化ユニット54、およびエントロピ・エンコード・ユニット56を含んでいる。一方、モード選択ユニット40は、動き補償ユニット44、動き推定ユニット42、イントラ予測ユニット46、および分割ユニット48を含んでいる。ビデオ・ブロック再構築のために、ビデオ・エンコーダ20はまた、逆量子化ユニット58、逆変換ユニット60、および加算器62を含んでいる。再構築されたビデオからのブロッキネス・アーティファクト(blockiness artifacts)を除去するためにブロック境界をフィルタするデブロッキング・フィルタ(図2に図示せず)もまた含まれうる。所望されるのであれば、デブロッキング・フィルタは、一般には、加算器62の出力をフィルタするであろう。デブロッキング・フィルタに加えて、(ループまたはポスト・ループにおける)追加のフィルタも使用されうる。このようなフィルタは、簡潔さのために図示されていないが、もしも所望されるのであれば、加算器50の出力を(イン・ループ・フィルタとして)フィルタしうる。
エンコード処理中、ビデオ・エンコーダ20は、コーディングされるべきビデオ・フレームまたはスライスを受け取る。フレームまたはスライスは、複数のビデオ・ブロックに分割されうる。動き推定ユニット42および動き補償ユニット44は、時間予測を与えるために、1または複数の基準フレームにおける1または複数のブロックに対して、受け取られたビデオ・ブロックのインタ予測コーディングを実行する。イントラ予測ユニット46は、代わりに、同じフレームまたはスライスにおける1または複数の近隣ブロックに対して、受け取られたビデオ・ブロックのイントラ予測コーディングを、空間予測を提供するためにコーディングされるべきブロックとして実行しうる。ビデオ・エンコーダ20は、例えば、ビデオ・データの各ブロックのために適切なコーディング・モードを選択するために、複数のコーディング・パスを実行しうる。
さらに、分割ユニット48は、以前のコーディング・パスにおける以前の分割スキームの評価に基づいて、ビデオ・データのブロックを、サブ・ブロックに分割しうる。例えば、分割ユニット48は、先ず、フレームまたはスライスを、CTUに分割し、CTUのおのおのを、レート歪み分析(例えば、レート歪み最適化)に基づいてサブCUに分割しうる。モード選択ユニット40はさらに、CTUのサブCUへの分割を示すクワッドツリー・データ構造を生成しうる。クワッドツリーのリーフ・ノードCUは、1または複数のPUおよび1または複数のTUを含みうる。
モード選択ユニット40は、例えば、誤り結果に基づいて、イントラまたはインタのコーディング・モードのうちの1つを選択しうる。そして、結果として得られたイントラ・コーディングされたブロックまたはインタ・コーディングされたブロックを加算器50に提供し、残余ブロック・データを生成し、加算器62に提供し、エンコードされたブロックを、基準フレームとして使用するために再構築する。モード選択ユニット40はまた、例えば、動きベクトル、イントラ・モード・インジケータ、分割情報、およびその他のこのようなシンタックス情報を、エントロピ・コーディング・ユニット56に提供する。
動き推定ユニット42および動き補償ユニット44は、高度に統合されうるが、概念の目的のために、個別に例示されている。動き推定ユニット42によって実行される動き推定は、動きベクトルを生成する処理であり、ビデオ・ブロックの動きを推定する。例えば、動きベクトルは、現在のフレーム内でコーディングされている現在のブロック(または、その他のコーディングされたユニット)に対する、基準フレーム内の予測ブロック(または、その他のコーディングされたユニット)に対する現在のビデオ・フレームまたはピクチャ内のビデオ・ブロックのPUの変位を示しうる。予測ブロックは、絶対差分(SAD)の合計、平方差分(SSD)の合計、または、その他の別のメトリックによって決定されうるピクセル差分の観点においてコーディングされるべきブロックに緊密にマッチするものとして発見されるブロックである。いくつかの例では、ビデオ・エンコーダ20は、基準ピクチャ・メモリ64内に格納された基準ピクチャの整数未満のピクセル位置の値を計算しうる。例えば、ビデオ・エンコーダ20は、基準ピクチャの、1/4ピクセル位置、1/8ピクセル位置、または、その他の分数のピクセル位置の値を補間しうる。したがって、動き推定ユニット42は、フル・ピクセル位置および分数ピクセル位置に対する動き探索を実行し、動きベクトルを、分数ピクセル精度で出力しうる。
動き推定ユニット42は、PUの位置を、基準ピクチャの予測ブロックの位置と比較することによって、インタ・コード・スライスにおけるビデオ・ブロックのPUの動きベクトルを計算する。基準ピクチャは、第1の基準ピクチャ・リスト(リスト0)または第2の基準ピクチャ・リスト(リスト1)から選択されうる。これらのおのおのは、基準ピクチャ・メモリ64に格納された1または複数の基準ピクチャを識別しうる。動き推定ユニット42は、計算された動きベクトルを、エントロピ・エンコード・ユニット56および動き補償ユニット44へ送信する。
動き補償ユニット44によって実行される動き補償は、動き推定ユニット42によって決定された動きベクトルに基づいて、予測ブロックをフェッチまたは生成することを含みうる。繰り返すが、動き推定ユニット42と動き補償ユニット44とは、いくつかの例では、機能的に統合されうる。動き補償ユニット44は、現在のビデオ・ブロックのPUの動きベクトルを受け取ると、基準ピクチャ・リストのうちの1つにおいて動きベクトルが指し示す予測ブロックを位置決めしうる。加算器50は、以下に示すように、予測ブロックのピクセル値を、コーディングされている現在のビデオ・ブロックのピクセル値から引くことによって、ピクセル差分値を生成する。一般に、動き推定ユニット42は、輝度成分に対する動き推定を実行し、動き補償ユニット44は、彩度成分と輝度成分との両方のために、輝度成分に基づいて計算された動きベクトルを用いる。また、モード選択ユニット40は、ビデオ・スライスのビデオ・ブロックをデコードする際に、ビデオ・デコーダ30によって使用されるための、ビデオ・ブロックおよびビデオ・スライスに関連付けられたシンタックス要素を生成しうる。
イントラ予測ユニット46は、前述されたように、動き推定ユニット42および動き補償ユニット44によって実行されるインタ予測に対する代替として、現在のブロックをイントラ予測しうる。特に、イントラ予測ユニット46は、現在のブロックをエンコードするために使用するための、イントラ予測モードを決定しうる。
いくつかの例では、イントラ予測ユニット46は、例えば、個別のエンコーディング・パスの間、さまざまなイントラ予測モードを用いて現在のブロックをエンコードし、イントラ予測ユニット46(または、いくつかの例では、モード選択ユニット40)は、テストされたモードから、使用する適切な予測モードを選択しうる。
例えば、イントラ予測ユニット46は、テストされたさまざまなイントラ予測モードのためのレート歪み値を、レート歪み分析を用いて計算し、テストされたモードのうち最良のレート歪み特性を有するイントラ予測モードを選択しうる。レート歪み分析は、一般に、エンコードされたブロックと、エンコードされたブロックを生成するためのエンコードされる、オリジナルのエンコードされていないブロックとの間の歪み(または誤差)の量のみならず、エンコードされたブロックを生成するために使用されるビットレート(すなわち、ビット数)をも決定する。イントラ予測ユニット46は、どのイントラ予測モードが、ブロックのために最良のレート歪み値(または、最低のコスト値)を示すのかを判定するために、エンコードされたさまざまなブロックのレートおよび歪みからの比を計算しうる。
ブロックのためのイントラ予測モードを選択した後、イントラ予測ユニット46は、ブロックのために選択されたイントラ予測モードを示す情報を、エントロピ・エンコード・ユニット56へ提供しうる。エントロピ・エンコード・ユニット56は、選択されたイントラ予測モードを示す情報をエンコードしうる。ビデオ・エンコーダ20は、送信されるビットストリームに、コンフィギュレーション・データを含めうる。このデータは、複数のイントラ予測モード・インデクス・テーブルおよび複数の修正されたイントラ予測モード・インデクス・テーブル(これらは、コードワード・マッピング・テーブルとも称される)、さまざまなブロックのエンコード・コンテキストの定義、最も確実性の高いイントラ予測モードを示すインジケーション、イントラ予測モード・インデクス・テーブル、および、コンテキストのおのおのを使用するための修正されたイントラ予測モード・インデクス・テーブルを含みうる。
ビデオ・エンコーダ20は、コーディングされているオリジナルのビデオ・ブロックから、モード選択ユニット40からの予測データを引くことにより、残余ビデオ・ブロックを生成する。加算器50は、この減算演算を実行する構成要素(単数または複数)を表す。変換処理ユニット52は、例えば離散コサイン変換(DCT)または概念的に類似した変換のような変換を、残余ブロックに適用し、残余変換係数値を備えるビデオ・ブロックが生成される。変換処理ユニット52は、概念的にDCTに類似したその他の変換を実行しうる。ウェーブレット変換、整数変換、サブ帯域変換、またはその他のタイプの変換もまた使用されうる。何れの場合も、変換処理ユニット52は、この変換を残余ブロックに適用し、残余変換係数のブロックが生成される。この変換は、残余情報を、ピクセル値領域から、例えば周波数領域のような変換領域に変換しうる。
変換処理ユニット52は、結果として得られた変換係数を量子化ユニット54へ送信しうる。量子化ユニット54は、さらにビット・レートを低減するために、この変換係数を量子化する。この量子化処理は、これら係数のうちのいくつかまたはすべてに関連付けられたビット・デプスを低減しうる。量子化の程度は、量子化パラメータを調節することにより修正されうる。いくつかの例では、その後、量子化ユニット54は、量子化された変換係数を含むマトリックスのスキャンを実行しうる。あるいは、エントロピ・エンコード・ユニット56が、このスキャンを実行しうる。
量子化の後、エントロピ・エンコード・ユニット56は、量子化された変換係数を、エントロピ・エンコードする。例えば、エントロピ・エンコード・ユニット56は、コンテキスト適応可変長コーディング(CAVLC)、コンテキスト適応バイナリ計算コーディング(CABAC)、シンタックス・ベースのコンテキスト適応バイナリ演算コーディング(SBAC)、確率インタバル分割エントロピ(PIPE)コーディング、またはその他のエントロピ・コーディング技法を実行しうる。コンテキスト・ベースのエントロピ・エンコーディングのケースでは、コンテキストは、近隣のブロックに基づきうる。エンコードされたビットストリームは、エントロピ・エンコード・ユニット56によるエントロピ・コーディング後、(例えばビデオ・デコーダ30のような)別のデバイスへ送信されうるか、または、後の送信または取得のためにアーカイブされうる。
例では、エントロピ・エンコード・ユニット56は、ウェーブフロント並列処理(WPP)を用いて、量子化された変換係数をエントロピ・エンコードしうる。図1に関して記載されるように、WPPは、量子化された変換係数を並列的にエントロピ・エンコードすることを含みうる。例えば、エントロピ・エンコード・ユニット56は、量子化された変換係数を、複数の行、すなわちウェーブフロントへ整えうる。一方、エントロピ・エンコード・ユニット56は、例えば、近隣係数に関連付けられた1または複数の動きベクトルのように、モード選択ユニット40から受け取られたシンタックス要素を用いて各係数をエンコードしうる。WPPを用いてエンコードするという観点では、エントロピ・エンコード・ユニット56は、ウェーブフロントの先頭または終了以外の任意の位置における係数のために、エンコードされるべき係数の左、左上、上、および右上に位置する係数に関連付けられた動きベクトルを用いうる。
WPPベースのエントロピ・エンコーディングの効率を高めるために、エントロピ・エンコード・ユニット56は、量子化された変換係数に関して、従来のスライス・ウェーブフロント・インタラクションを制限するために、本開示の技法を実施しうる。記載されているように、例えばビデオ・エンコーダ20のようなビデオ・コーダは、イメージ、またはイメージを代表するデータを、複数のスライスに分割しうる。図2に関し、量子化された変換係数のストリームが、複数のスライスに分割されうる。一方、スライスは、エントロピ・エンコード・ユニット56によって区別された1または複数のウェーブフロントの変動部分をカバーしうる。例えば、第1のスライスは、第1のウェーブフロントの全体と、第2のウェーブフロントの不完全な部分をカバーしうる。第2のスライスは、第1のスライスによってカバーされていない第2のウェーブフロントの残りと、第3のウェーブフロントの不完全な部分をカバーしうる。このように、WPPによって提供されるような従来のスライス・ウェーブフロント・インタラクションは、スライスの開始/終了点を、ウェーブフロントの開始/終了点に相関付けないことがありうる。
WPPにしたがうエントロピ・エンコードの効率を高めるために、エントロピ・エンコード・ユニット56は、本開示の1または複数の技法を実施しうる。例えば、エントロピ・エンコード・ユニット56は、量子化ユニット54から受けとられた量子化変換係数に基づいて、ウェーブフロントの開始以外の位置におけるピクチャ内のウェーブフロント、すなわち、コーディング・ツリー・ユニット(CTU)の行において、ビデオ・データのピクチャのスライスが始まると判定しうる。この判定に基づいて、エントロピ・エンコード・ユニット56は、スライスがウェーブフロント内で終了すると判定し、この判定に基づいて、スライスをコーディングしうる。さらに詳しくは、エントロピ・エンコード・ユニット56は、例えば、ウェーブフロントの最後の係数がエンコードされると、エンド・オブ・スライス・シンボルをNALユニットに挿入することによって、ウェーブフロントの最後の係数においてスライスを終了しうる。このように、エントロピ・エンコード・ユニット56は、特定のCTUをコーディングしている間、エントロピ・エンコード・ユニット56がWPPにしたがって特定のCTUをコーディングするためのすべての情報へのアクセスを有することと、特定のCTUのスライス・ヘッダ・データが、すでにエントロピ・エンコードされていることと、を保証しうる。
さらに、エントロピ・エンコード・ユニット56は、次のウェーブフロントの第1の係数をエンコードする前に、NALユニットにスライス・ヘッダを挿入しうる。この事例では、エントロピ・エンコード・ユニット56は、次のウェーブフロントの開始が、個別のスライスの開始と一致するように、量子化された変換係数のストリームをエンコードしうる。新たなスライスが、2番目のウェーブフロント全体を含み、3番目のウェーブフロントにスピルオーバするのであれば、エントロピ・エンコード・ユニット56は、WPPにしたがって、3番目のウェーブフロントを効率的にコーディングするために必要なデータのすべてへのアクセスを有しうる。さらに詳しくは、エントロピ・エンコード・ユニット56は、3番目のウェーブフロントのすべてのCTUのスライス・ヘッダが、3番目のウェーブフロントの何れかのCTUがエントロピ・エンコードされる前にエントロピ・エンコードされていることを保証しうる。
特定の例では、エントロピ・エンコード・ユニット56は、3番目のウェーブフロントの第2の係数をコーディングしている間、2番目および3番目のウェーブフロントのおのおのの第1の係数(すなわち、現在の係数のうちの左および左上の係数)と、2番目のウェーブフロントの第2の係数(すなわち、現在の係数のすぐ上に位置する係数)と、2番目のウェーブフロントの第3の係数(すなわち、現在の係数の右上に位置する係数)とを識別する動きベクトルに、モード選択ユニット40によって送信されたシンタックス要素からアクセスしうる。さらに、2番目のスライス・ヘッダは、2番目のウェーブフロントの第1の係数と一致するので、第2の係数のスライス・ヘッダは、既にエントロピ・エンコードされている。このように、エントロピ・エンコード・ユニット56は、現在のスライスをエンコードするために本開示の技法を実施し、これによって、WPPを用いたその後のスライスのエンコードがより効率的になる。
逆量子化ユニット58および逆変換ユニット60は、例えば、基準ブロックとして後に使用するために、逆量子化または逆変換をそれぞれ適用し、ピクセル領域内の残余ブロックを再構築しうる。動き補償ユニット44は、残余ブロックを、基準ピクチャ・メモリ64のフレームのうちの1つの予測ブロックへ加えることによって、基準ブロックを計算しうる。動き補償ユニット44はまた、動き推定において使用するための整数未満のピクセル値を計算するために、1または複数の補間フィルタを、再構築された残余ブロックに適用しうる。加算器62は、動き補償ユニット44によって生成された動き補償予測ブロックに、再構築された残余ブロックを加え、基準ピクチャ・メモリ64に格納するための再構築されたビデオ・ブロックが生成される。再構築されたビデオ・ブロックは、その後のビデオ・フレームにおけるブロックをインタ・コーディングするために、動き推定ユニット42および動き補償ユニット44によって、基準ブロックとして使用されうる。
前述したように、ビデオ・エンコーダ20は、ビデオ・データのピクチャのスライスが、ピクチャにおけるコーディング・ツリー・ユニット(CTU)の行において、行の先頭以外の位置において始まることを判定することと、この判定に基づいて、このスライスがCTUの行内で終わると判定することと、このスライスがCTUの行内で終わるとの判定に基づいて、このスライスをコーディングすることと、を実行するように構成されたビデオ・コーダの例を示す。例において、ビデオ・エンコーダ20は、例えばデスクトップ・コンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレット・コンピュータ、セット・トップ・ボックス、いわゆる「スマート」フォンのようなテレフォン・ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイ・デバイス、デジタル・メディア・プレーヤ、ビデオ・ゲーム・コンソール、ビデオ・ストリーミング・デバイス等のような、ビデオ・データをコーディングするためのデバイスに含まれうる。例において、ビデオ・データをコーディングするためのそのようなデバイスは、ビデオ・エンコーダ20を含む通信デバイス、マイクロプロセッサ、および集積回路のうちの1または複数を含みうる。
図3は、ウェーブフロントを並列的にコーディングするための技法を実施しうるビデオ・デコーダ30の例を例示するブロック図である。図3の例では、ビデオ・デコーダ30は、エントロピ・デコード・ユニット70、動き補償ユニット72、イントラ予測ユニット74、逆量子化ユニット76、逆変換ユニット78、基準ピクチャ・メモリ82、および加算器80を含んでいる。ビデオ・デコーダ30は、いくつかの例において、ビデオ・エンコーダ20(図2)に関して記載されたエンコード・パスに一般に逆であるデコード・パスを実行しうる。動き補償ユニット72は、エントロピ・デコード・ユニット70から受け取った動きベクトルに基づいて、予測データを生成しうる一方、イントラ予測ユニット74は、エントロピ・デコード・ユニット70から受け取ったイントラ予測モード・インジケータに基づいて、予測データを生成しうる。
デコード処理中、ビデオ・デコーダ30は、関連付けられたシンタックス要素とエンコードされたビデオ・スライスのビデオ・ブロックを示す、エンコードされたビデオ・ビットストリームを、ビデオ・エンコーダ20から受け取る。ビデオ・デコーダ30のエントロピ・デコード・ユニット70は、量子化された係数、動きベクトルまたはイントラ予測モード予測子、およびその他のシンタックス要素を生成するために、ビットストリームをエントロピ・デコードする。エントロピ・デコード・ユニット70は、動きベクトルおよびその他のシンタックス要素を、動き補償ユニット72へ転送する。ビデオ・デコーダ30は、ビデオ・スライス・レベルおよび/またはビデオ・ブロック・レベルにおいて、シンタックス要素を受け取りうる。
エントロピ・デコード・ユニット70は、ウェーブフロント並列処理(WPP)を用いてイメージをより効率的にエントロピ・デコードするために、スライス・ウェーブフロント・インタラクションを制限するために、本開示の技法を実施しうる。例えば、エントロピ・デコード・ユニット70は、例えば、受け取られたNALユニットにおけるスライス・ヘッダが、それぞれのウェーブフロントの最初のCTUではないCTUと一致していると判定することよって、スライスが、ウェーブフロントの中間において始まると判定しうる。この判定に基づいて、エントロピ・デコード・ユニット70は、例えば、受け取られたNALユニットが、現在のウェーブフロントの最後のCTUの終了においてエンド・オブ・スライス・シンボルを含んでいると判定することによって、スライスが、同じウェーブフロント内で終了すると判定しうる。
このようにしてスライス・ウェーブフロント・インタラクションを制限することによって、エントロピ・デコード・ユニット70は、WPPを用いてイメージをより効率的にエントロピ・デコードしうる。例えば、エントロピ・デコード・ユニット70は、特定のCTUをデコードしている間、エントロピ・デコード・ユニット70が、WPPを用いて特定のCTUをデコードするために必要なすべての情報へのアクセスを有することと、エントロピ・デコード・ユニット70が特定のCTUをデコードする準備ができる時までに、特定のCTUのスライス・ヘッダが、すでにエントロピ・デコードされていることと、を保証しうる。このように、エントロピ・デコード・ユニット70は、WPPにしたがってイメージをより効率的にデコードするために、本開示の技法を実施しうる。
ビデオ・スライスが、イントラ・コード(I)スライスとしてコーディングされた場合、イントラ予測ユニット74は、現在のフレームまたはピクチャの、以前にデコードされたブロックからの、シグナルされたイントラ予測モードおよびデータに基づいて、現在のビデオ・スライスのビデオ・ブロックの予測データを生成しうる。ビデオ・フレームが、インタ・コーディングされた(すなわち、B、P、またはGPB)スライスとしてコーディングされている場合、動き補償ユニット72は、エントロピ・デコード・ユニット70から受け取られた動きベクトルおよびその他のシンタックス要素に基づいて、現在のビデオ・スライスのビデオ・ブロックの予測ブロックを生成する。予測ブロックは、基準ピクチャ・リストのうちの1つ内の、基準ピクチャのうちの1つから生成されうる。ビデオ・デコーダ30は、基準ピクチャ・メモリ82に格納された基準ピクチャに基づいて、デフォルトの構築技法を用いて、基準フレーム・リスト、リスト0およびリスト1を構築しうる。動き補償ユニット72は、動きベクトルおよびその他のシンタックス要素を解析することによって、現在のビデオ・スライスのビデオ・ブロックの予測情報を決定し、この予測情報を用いて、デコードされている現在のビデオ・ブロックの予測ブロックを生成する。例えば、動き補償ユニット72は、受け取ったシンタックス要素のうちのいくつかを用いて、ビデオ・スライスのビデオ・ブロック、インタ予測スライス・タイプ(例えば、Bスライス、Pスライス、またはGPBスライス)、スライスのための基準ピクチャ・リストのうちの1または複数の構築情報、スライスの各インタ・エンコード・ビデオ・ブロックの動きベクトル、スライスの各インタ・コード・ビデオ・ブロックのインタ予測状態、および、現在のビデオ・スライスにおけるビデオ・ブロックをデコードするためのその他の情報、をコーディングするために使用される予測モード(例えば、イントラ予測またはインタ予測)を決定する。
動き補償ユニット72はまた、補間フィルタに基づいて、補間を実行しうる。動き補償ユニット72は、基準ブロックの整数未満ピクセルの補間値を計算するために、ビデオ・ブロックのエンコード中、ビデオ・エンコーダ20によって使用されるような補間フィルタを使用しうる。このケースでは、動き補償ユニット72は、受け取られたシンタックス要素から、ビデオ・エンコーダ20によって使用される補間フィルタを決定し、この補間フィルタを用いて、予測ブロックを生成する。
逆量子化ユニット76は、ビットストリームで提供され、エントロピ・デコード・ユニット80によってデコードされた、量子化された変換係数を逆量子化、すなわちde quantizeする。逆量子化処理は、量子化の程度、および、適用されるべき逆量子化の程度も同様に決定するために、ビデオ・スライスにおけるおのおののビデオ・ブロックについて、ビデオ・デコーダ30によって計算される量子化パラメータ(QPY)を使用することを含みうる。
逆変換ユニット78は、ピクセル領域における残余ブロックを生成するために、例えば、逆DCT、逆整数変換、または概念的に同様な逆変換処理を変換係数に適用する。
動き補償ユニット72が、動きベクトルおよびその他のシンタックス要素に基づいて、現在のビデオ・ブロックの予測ブロックを生成した後、ビデオ・デコーダ30は、逆変換ユニット78からの残余ブロックと、動き補償ユニット72によって生成された対応する予測ブロックとを総和することによって、デコードされたビデオ・ブロックを生成する。加算器80は、この総和演算を実行する構成要素(単数または複数)を表わす。所望されるのであれば、ブロッキネス・アーティファクトを除去するために、デブロッキング・フィルタも適用され、デコードされたブロックがフィルタされる。その他のループ・フィルタ(コーディング・ループ中の、またはコーディング・ループ後の何れか)もまた、ピクセル推移を平滑化するために、あるいは、ビデオ品質を改善するために、使用されうる。所与のフレームまたはピクチャ内の、デコードされたビデオ・ブロックは、その後、基準ピクチャ・メモリ82に格納される。基準ピクチャ・メモリ82は、その後の動き補償のために使用される基準ピクチャを格納する。基準ピクチャ・メモリ82はまた、例えば、図1のディスプレイ・デバイス32のような、ディスプレイ・デバイスにおける後の表示のために、デコードされたビデオを格納する。
このように、ビデオ・デコーダ30は、ビデオ・データのピクチャのスライスが、ピクチャにおけるコーディング・ツリー・ユニット(CTU)の行において、この行の先頭以外の位置において始まることを判定することと、この判定に基づいて、このスライスがCTUの行内で終わると判定することと、このスライスがCTUの行内で終わるとの判定に基づいて、このスライスをコーディングすることと、を実行するように構成されたビデオ・コーダの例を表す。例において、ビデオ・デコーダ30は、例えばデスクトップ・コンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレット・コンピュータ、セット・トップ・ボックス、いわゆる「スマート」フォンのようなテレフォン・ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイ・デバイス、デジタル・メディア・プレーヤ、ビデオ・ゲーム・コンソール、ビデオ・ストリーミング・デバイス等のような、ビデオ・データをコーディングするためのデバイスに含まれうる。例において、ビデオ・データをコーディングするためのそのようなデバイスは、ビデオ・デコーダ30を含む通信デバイス、マイクロプロセッサ、および集積回路のうちの1または複数を含みうる。
図4は、ウェーブフロント150−160に分割されたピクチャ100の例を例示する概念図である。ウェーブフロント150−160のおのおのは、多くのブロックを含んでいる。ピクチャ100は、さらなるウェーブフロントを含み、おのおののウェーブフロントは、図示されるもの以外のさらなるブロックを含みうることが注目されるべきである。ブロックの各々は、例えばCTUに対応しうる。
例えば、ビデオ・エンコーダ20またはビデオ・デコーダ30のようなビデオ・コーダは、ウェーブフロント150−160を並列的にコーディングするように構成されうる。ビデオ・エンコーダ20は、上のウェーブフロントのうちの2ブロックがコーディングされた後に、ウェーブフロントのコーディングを開始しうる。図4は、この後、比較的水平な曲線矢印によって接続されている黒い点を用いてウェーブフロントがコーディングされうるブロックを例示する。例えば、ウェーブフロント156のブロック134は、ウェーブフロント154のブロック128がコーディングされた後にコーディングされうる。例として、ビデオ・コーダは、“X”を用いて印されたブロック、すなわち、ブロック116,124,132,および136のおのおのを並列的にコーディングしうる。図4の例では、破線102,104,106,および108は、解析されたブロックを表し、これらから、特定のコーディグ時間における取得のための情報が利用可能である。特定のコーディング時間は、“X”を用いて印されたブロック、すなわち、ブロック116,124,132,および136がコーディングされる時間に対応しうる。
したがって、ビデオ・コーダは、図4において実線の白矢印によって示されたブロックから、“X”を用いて印されたブロックのためのコンテキスト情報を取得しうる。図4に図示されるように、実線の白矢印が示すブロックのおのおのが、破線102,104,106,および108のうちの1つ内にある。例えば、ビデオ・コーダが、ブロック114から、ブロック116のためのコンテキスト情報を取得し、ビデオ・コーダが、ブロック110,112,114,および/または122から、ブロック124のためのコンテキスト情報を取得し、ビデオ・コーダが、ブロック118,120,122,および/または130から、ブロック132のためのコンテキスト情報を取得し、ビデオ・コーダが、ブロック126,128,130,および/または134から、ブロック136のためのコンテキスト情報を取得しうる。集合的に、破線102,104,106,および108は、CTUグループ、すなわち、ビデオ・コーダが、WPPにしたがって、所与の時間においてコーディングすることができるピクチャ100のブロックの集合を含む。
本開示の技法にしたがって、ウェーブフロント150−160のおのおのは、1または複数のスライスの一部または全体を含みうる。あるいは、スライスは、例えばウェーブフロント150−160のうちの1または複数のように、1または複数のウェーブフロントの一部または全体を含みうる。例えば、1番目のスライスは、ウェーブフロント150および152のブロックを含み、2番目のスライスは、ウェーブフロント152,154および156のブロックを含み、3番目のスライスは、ウェーブフロント158および160のブロックを含みうる。このように、スライスが、2つのウェーブフロント間の境界を超えた場合、スライスは、2つのウェーブフロントのうちのいくつかまたはすべてのブロックを含みうる。
ビデオ・コーダが、ブロック132をコーディングすべきであると仮定されたい。ブロック132を含むウェーブフロント154のコンテキスト状態を初期化するために、ビデオ・コーダは、ブロック132を含むスライスのためのスライス・ヘッダの1または複数のパラメータを必要としうる。スライスが、ウェーブフロント152の中間におけるブロックで始まることと、ウェーブフロント152とウェーブフロント154との間の境界を超えることとが許されるのであれば、ビデオ・コーダは、スライス・ヘッダの情報を取得するためにスライス中の第1のブロックをコーディングするのを待たねばならないことがありうる。例えば、スライスが、ブロック116の下のウェーブフロント152におけるブロックの水平位置において始まるのであれば、このブロックは、まだ解析されていないであろうから、ビデオ・コーダは、ウェーブフロント154のコーディングを開始する前に、このブロックが解析されるまで待つ必要になるであろう。しかしながら、ビデオ・コーダは、スライスが、ウェーブフロントの先頭以外の位置におけるピクチャ100のウェーブフロントで始まるのであれば、このスライスが、その特定のウェーブフロント内で終了することを定めるために、本開示の技法を実施しうる。言い換えれば、ピクチャ100のどのウェーブフロントも、スライス・ヘッダで始まるか、または、エンド・オブ・スライス・シンボルで終了しうる(または、その両方である)。このようにスライス・ウェーブフロント・インタラクションを制限することによって、ビデオ・コーダは、ピクチャ100の特定のブロックをコーディングしている間、ビデオ・コーダが、WPPにしたがってブロックをコーディングするために必要なすべての情報へのアクセスを有することと、ブロックに対応するスライス・ヘッダがすでにコーディングされていることと、を保証しうる。したがって、ビデオ・コーダは、ウェーブフロント並列処理(WPP)にしたがってブロックをコーディングすることを待つ必要がある状況の発生を回避しうる。
さらに詳しくは、ビデオ・コーダは、例えばCABACを用いて、ウェーブフロント並列処理(WPP)にしたがってブロックをコーディングするために必要なすべてのデータが利用可能であることと、ブロックのスライス・ヘッダがすでにコーディングされているという点において、ブロックがコーディングされる準備ができていることと、を保証するために本技法を実施しうる。さまざまなビデオ・コーダが本技法を実施しうるが、説明の目的のために、本技法のうちの1または複数は、図2のビデオ・エンコーダ20および図3のビデオ・デコーダおよびこれらのそれぞれの構成要素を参照して記載されている。例えば、ビデオ・デコーダ30のエントロピ・デコード・ユニット70は、WPPにしたがってブロックをコーディングするために必要なすべてのデータが利用可能であることと、ブロックの対応するスライス・ヘッダがすでにコーディングされていることと、を保証するために、ピクチャ100内のスライス・ウェーブフロント・インタラクションを制限しうる。例えば、エントロピ・デコード・ユニット70は、ピクチャ100のスライスがウェーブフロント150であるが、ウェーブフロント150の先頭以外の位置(例えば、ブロック110)において始まることを判定しうる。この判定に基づいて、エントロピ・デコード・ユニット70は、スライスがウェーブフロント150内で終了すると判定しうる。例えば、エントロピ・デコード・ユニット70は、ピクチャ100の一部を表わす、受け取られたNALユニットにおいて、ウェーブフロント150の最後にエンコードされたブロックの直後のエンド・オブ・スライス・シンボルを検出し、ウェーブフロント152の最初にエンコードされたブロックの直前のスライス・ヘッダを検出しうる。このように、ビデオ・エンコーダ20および/またはビデオ・デコーダ30は、特定のブロックがコーディングされる準備ができる前に、ウェーブフロント152の任意の特定のブロックのスライス・ヘッダがコーディングされたことを保証しうる。
WPPにしたがってピクチャ100をエンコードするコンテキストでは、ビデオ・エンコーダ20のエントロピ・エンコード・ユニット56は、ブロック110において始まるスライスが、ウェーブフロント152の1または複数のブロックをも含んでいることを検出しうる。この概念は、本明細書では、「スライス・スピルオーバ」と称される。この事例では、エントロピ・エンコード・ユニット56は、ウェーブフロント150の最後のブロックを含めた後にスライスを終了し、ウェーブフロント152の最初のブロックを含む新たなスライスを開始しうる。記載されているように、エントロピ・エンコード・ユニット56は、ピクチャ100を表わす、エンコードされたデータを含むNALユニットを生成し、ウェーブフロント150の最後のブロックを(エンコードされたとして)表わすデータの後にエンド・オブ・スライス・シンボルを挿入しうる。同様に、エントロピ・エンコード・ユニット56は、ウェーブフロント152の最初のブロックを、エンコードされたものとして表わすデータの直前のスライス・ヘッダを、同じまたは後続するNALユニット内に挿入しうる。これらの制限を実行することによって、ビデオ・エンコーダ20は、ウェーブフロント150および/または152の所与のブロックのスライス・ヘッダが、所与のブロックがコーディングされる準備ができる前にコーディングされていることを保証しうる。このように、ビデオ・エンコーダ20は、WPPをより効率的に利用するためにスライス・ウェーブフロント・インタラクションを制限するために、および、WPPをより効率的に利用するようにビデオ・デコーダ30をイネーブルするために、本開示の技法を実施しうる。
このように、ビデオ・コーダは、ピクチャ100のスライスが、行の先頭以外であるピクチャ100のCTUの行において始まることを判定しうる。この判定に基づいて、ビデオ・コーダは、CTUの行内でスライスが終了していることを判定し、スライスがCTUの行内で終了しているとの判定に基づいてスライスをコーディングしうる。
前述したように、いくつかの例では、例えばビデオ・エンコーダ20またはビデオ・デコーダ30のようなビデオ・コーダは、ビデオ・データのスライスが、フル行を備えるコーディング・ツリー・ユニット(CTU)の最初の行と、フル行よりも少ないCTUを備えるCTUの2番目の行の一部分とを含んでいる場合、このスライスが、最大のコーディング・ユニットのうちの少なくとも1つのフル行の先頭において始まるように、ビデオ・データをコーディングするように構成されうる。例えば、スライスが、ウェーブフロント150の先頭で始まると仮定されたい。この例において、スライスは、例えばウェーブフロント152のような、後続するウェーブフロントの中間(すなわち、後続するウェーブフロントの終了前)において終了しうる。
例えば、スライスがブロック120において終了すると仮定されたい。これは、前述した制約によって可能となるであろう。なぜなら、このスライスは、ウェーブフロント、すなわち、この例ではウェーブフロント150の先頭で始まるからである。したがって、後続するスライスは、ブロック122において開始しうる。しかしながら、このスライスは、この例において、ウェーブフロント152の終了時において境界を超えることを許されないであろう。したがって、スライスは、ウェーブフロント152の終了で終わるであろう。もちろん、この例では、スライスが、ウェーブフロント152とウェーブフロント154との間の境界を超えない限りは、ウェーブフロント152内に、さらなるスライスが追加されないことがありうる。
図5は、ビデオ・コーダが、ウェーブフロントを並列的にコーディングするために本開示の技法を実施しうる処理180の例を例示するフローチャートである。図5は、例えば、ビデオ・エンコーダ20のようなビデオ・コーダが、本開示の1または複数の技法を用いて、例えば、ビデオ・データのフレームのようなピクチャをエンコードしうる処理180の例を例示する。処理180は、本開示の態様にしたがってさまざまなデバイスによって実行されうるが、説明の目的で、処理180は、本明細書では、図4のピクチャ100においても同様に、図1−2のデバイスおよびそれらの構成要素に関して記載されている。処理180は、デバイスがビデオ・データのピクチャを受け取る場合に始まりうる(182)。一例として、ソース・デバイス12は、1または複数の入力デバイスによってピクチャ100を受け取りうる。
さらに、ソース・デバイス12は、ウェーブフロント並列処理(WPP)をイネーブルしうる(184)。例えば、ソース・デバイス12は、WPPをイネーブルしうる。これは、ビデオ・エンコーダ20に対して、WPPにしたがってピクチャ100をエンコードさせる。例えばビデオ・エンコーダ20のようなビデオ・コーダは、ピクチャ100のウェーブフロントを決定しうる(186)。例えば、ビデオ・エンコーダ20は、ピクチャ100のWPPベースのエンコードに関連付けられたウェーブフロント毎のブロックの数(例えば、CTU)を判定しうる。そして、整数倍のブロック数に達すると、ウェーブフロント移行を決定しうる。
さらに、ビデオ・エンコーダ20は、ピクチャ100のスライス・ヘッダを判定しうる(188)。さらに詳しくは、ビデオ・エンコーダ20は、スライス移行、すなわち、ピクチャ100の新たなスライスの開始を示すために、スライス・ヘッダを使用しうる。例えば、ビデオ・エンコーダ20は、新たなスライスの開始に対応するピクチャ100の特定の部位にスライス・ヘッダを挿入しうる。いくつかの例において、ビデオ・エンコーダ20は、例えば、スライスの終了を示すために、ピクチャ100の一部にエンド・オブ・スライス・シンボルを挿入することによって、エンド・オブ・スライス・シンボルに基づいて、スライス移行を示しうる。いくつかの例において、ビデオ・エンコーダ20は、例えば、スライスの終了を示すためにエンド・オブ・スライス・シンボルを挿入することによって、および、新たなスライスの先頭を示すためにエンド・オブ・スライス・シンボルの直後にスライス・ヘッダを挿入することによって、スライス・ヘッダの直後のエンド・オブ・スライス・シンボルのシーケンスを用いてスライス移行を示しうる。
ビデオ・コーダは、現在のスライスが、ウェーブフロントの最初のCTUの後に始まるか否かを判定しうる(190)。例えば、ビデオ・エンコーダ20は、ブロック110において、スライス・ヘッダを検出または挿入すると、ウェーブフロント150の最初のCTUの後に(例えば、ウェーブフロントの「中間」において)現在のスライスが始まることを判定しうる。この例では、ウェーブフロントの最初のCTUの後に現在のスライスが始まるとビデオ・エンコーダ20が判定する(190の「Yes」分岐)と、ビデオ・エンコーダ20は、現在のスライスが、現在のウェーブフロント内で終了すると判定しうる(192)。例えば、ビデオ・エンコーダ20は、ウェーブフロント152への移行を区別する前に、生成されたNALユニット内にエンド・オブ・スライス・シンボルを配置することによって、現在のスライスが、ウェーブフロント150内で終了すると判定しうる。記載されたスライス移行を判定することによって、ビデオ・エンコーダ20は、ビデオ・エンコーダ20(および/または、ビデオ・デコーダ30)が、ウェーブフロント152のブロックをコーディングするために必要なすべての情報へのアクセスを有していることと、ブロックのスライス・ヘッダがすでにコーディングされていることと、を保証しうる。
一方、現在のスライスが、ウェーブフロントの最初のCTU後に始まらない、すなわち、スライス・ヘッダが、ウェーブフロントの最初のCTUと一致しない、とビデオ・コーダが判定すると(190の「No」分岐)、ビデオ・コーダは、ピクチャ100のスライス・ヘッダを判定し続けうる(188)。例えば、ビデオ・エンコーダ30は、現在のスライスが、ウェーブフロントの先頭において始まるとの判定に基づいて、後続するスライス・ヘッダ(および/または、エンド・オブ・スライス・シンボル)をエンコードしうる。このように、ビデオ・エンコーダ20は、ビデオ・エンコーダ20およびビデオ・デコーダ30が、WPPにしたがって現在のCTUを効率的にコーディングするために必要なデータのすべて(既にコーディングされたスライス・ヘッダを含む)に対するアクセスを有するように、スライス・ウェーブフロント・インタラクションを制限するための処理180を実施しうる。
図6は、ビデオ・デコーダが、本開示の1または複数の技法を用いて、例えば、ビデオ・データのフレームのようなエンコードされたピクチャをデコードする別の例の処理200を例示するフローチャートである。処理200は、本開示の態様にしたがうさまざまなデバイスによって実行されうるが、説明の目的のために、処理200は、本明細書では、図4のピクチャ100と同様、図1および図3のデバイスおよびそれらの構成要素の観点で記載される。処理200は、ビデオ・デコーダ30が、ビデオ・データのエンコードされたピクチャを受け取った場合に始まりうる(202)。一例として、宛先デバイス14は、入力インタフェース128において、ピクチャ100のエンコードされたバージョンを受け取りうる。
さらに、ビデオ・デコーダ30は、ウェーブフロント並列処理(WPP)をイネーブルしうる(204)。いくつかの例において、コンピュータ読取可能な媒体16は、WPPがイネーブルされるべきであることを示すシグナリング・データを含みうる。逆に、別の例では、ビデオ・デコーダ30は、コンピュータ読取可能な媒体16に含まれるビデオ・データが、特定の規格、および/または、規格の特定のプロファイルに準拠するか否かに基づいて、WPPをイネーブルするための暗黙的なインジケーションを決定しうる。例えば、宛先デバイス14は、ビデオ・デコーダ30に対して、WPPにしたがってピクチャ100の、受け取られたエンコードされたバージョンをデコードさせることができるようにWPPをイネーブルしうる。さらに、ビデオ・デコーダ30は、エンコードされたピクチャ100の新たなウェーブフロントの開始を決定しうる(206)。例えば、ビデオ・デコーダ30は、エンコードされたピクチャ100の最初のブロック(例えば、CTU)が、新たなウェーブフロント150の先頭を示していると判定しうる。さらに、ビデオ・デコーダ30は、ピクチャ100のWPPベースのエンコーディングに関連付けられたウェーブフロント毎のCTUの数を判定しうる。そして、整数倍のCTU数に達すると、新たなウェーブフロントの開始(すなわち、「ウェーブフロント移行」)を判定しうる。
ビデオ・デコーダ30は、ピクチャ100のエンコードされたバージョンの現在のウェーブフロント(例えば、ウェーブフロント150)の現在のスライスのビデオ・データをデコードしうる(208)。さらに詳しくは、ビデオ・デコーダ30は、最も左のCTUにおいて始まって、CTU毎ベースでウェーブフロント150をデコードし、その後、右側にある次のCTUをデコードするという具合である。さらに、ビデオ・デコーダ30は、ビデオ・デコーダ30がウェーブフロント150の終了(例えば、最も右のCTU)に達する前にスライス・ヘッダを検出したか否かを判定しうる(210)。ビデオ・デコーダ30は、エンコードされたピクチャ100におけるスライス・ヘッダを検出することに基づいて、エンコードされたピクチャ100の新たなスライスの開始、すなわち、「スライス移行」を判定しうる。ビデオ・デコーダ30が、ウェーブフロント150の終了前にスライス・ヘッダを検出しない(210の「No」分岐)のであれば、ビデオ・デコーダ30は、新たなウェーブフロント152の開始を検出しうる(206)。さらに詳しくは、このシナリオでは、ビデオ・デコーダ30は、ウェーブフロント152のCTUと同じスライスに属するウェーブフロント152の最初のCTUを含む、ウェーブフロント152の少なくとも一部分を判定しうる。
逆に、ビデオ・デコーダ30が、ウェーブフロント150の終了前にスライス・ヘッダを検出する(210の「Yes」分岐)と、ビデオ・デコーダ30は、スライス・ヘッダが、ウェーブフロント150の最初のCTUに一致するか否かを判定しうる(212)。言い換えれば、ビデオ・デコーダ30は、現在のスライスが、現在のウェーブフロント150と同じCTUにおいて始まるか否かを判定しうる。検出されたスライス・ヘッダが、ウェーブフロント150の最初のCTUと一致するとビデオ・デコーダ30が判定する(212の「Yes」分岐)と、ビデオ・デコーダ30は、ウェーブフロント150の現在のスライスのビデオ・データをデコードし続けうる(208)。
一方、検出されたスライス・ヘッダが、ウェーブフロント150の最初のCTUと一致しないとビデオ・デコーダ30が判定する(212の「No]分岐)と、ビデオ・デコーダ30は、現在のスライスがウェーブフロント150内で終了すると判定しうる(214)。さらに詳しくは、ビデオ・デコーダ30は、本開示の技法によってイネーブルされるスライス・ウェーブフロント・インタラクション制約に基づいて、現在のスライスが、ウェーブフロント150内(例えば、ウェーブフロント150の最後/最も右のCTUにおいてまたはその前において)終了すると判定しうる。さらに、ビデオ・デコーダは、現在のスライスがウェーブフロント150内で終了するとの判定に基づいて、ウェーブフロント150の現在のスライスのビデオ・データをデコードし続けうる。
図6に例示された方式でスライス・ウェーブフロント・インタラクションを制限することによって、ビデオ・デコーダ30は、例えばウェーブフロント152のようなウェーブフロント内に位置するスライスのCTUをデコードしている間、ウェーブフロント152のデコード処理のために必要なすべてのデータへのウェーブフロント150からのアクセスを有することを保証しうる。すなわち、ビデオ・デコーダ30は、ウェーブフロント150のデコード中、ウェーブフロント152内のスライスのスライス・ヘッダ・データを既にデコードしているか、ウェーブフロント152内のスライスのスライス・ヘッダが、ウェーブフロント152の最初において生じるであろう。したがって、ビデオ・デコーダ30は、WPPにしたがって、必要なすべてのデコードにクリティカルなデータへのアクセスを有することに基づいて、ウェーブフロント152のデコードを開始しうる。
本明細書に記載された技法の何れかのいくつかの動作またはイベントは、例に依存して異なるシーケンスで実行されうるか、追加されうるか、マージされうるか、ともに除外されうる(例えば、記載されたすべての動作またはイベントが、必ずしも本技法の実施のために必要とされる訳ではない)ことが認識されるべきである。さらに、いくつかの例では、これら動作またはイベントは、個別にではなく、例えば、マルチ・スレッド処理、中断処理、または複数のプロセッサによって同時に実行されうる。
1または複数の例において、記述された機能は、ハードウェア、ソフトウェア、ファームウェア、またはこれらの任意の組み合わせで実現されうる。ソフトウェアで実現されるのであれば、これら機能は、コンピュータ読取可能な媒体におけるコードまたは1または複数の命令群で送信されるか格納され、ハードウェア・ベースの処理ユニットによって実行されうる。コンピュータ読取可能な媒体は、コンピュータ読取可能な記憶媒体を含みうる。これは、例えばデータ記憶媒体のような有形な媒体、または、例えば通信プロトコルにしたがって、1つの場所から別の場所へのコンピュータ・プログラムの転送を容易にする任意の媒体を含む通信媒体に相当しうる。このように、コンピュータ読取可能な媒体は、一般に、(1)非一時的である有形のコンピュータ読取可能な記憶媒体、または、(2)例えば信号または搬送波のような通信媒体に対応しうる。データ記憶媒体は、本開示において記述された技術を実施するための命令群、コード、および/または、データ構造を検索するために1または複数のコンピュータまたは1または複数のプロセッサによってアクセスされうる任意の利用可能な媒体でありうる。コンピュータ・プログラム製品は、コンピュータ読取可能な媒体を含みうる。
例として、限定することなく、このようなコンピュータ読取可能な記憶媒体は、RAM、ROM、EEPROM、CD−ROMまたはその他の光ディスク記憶装置、磁気ディスク記憶装置またはその他の磁気記憶デバイス、フラッシュ・デバイス、あるいは、所望のプログラム・コード手段を命令群またはデータ構造の形式で搬送または格納するために使用され、しかも、コンピュータによってアクセスされうるその他任意の媒体を備えうる。さらに、いかなる接続も、コンピュータ読取可能な媒体として適切に称される。同軸ケーブル、光ファイバ・ケーブル、ツイスト・ペア、デジタル加入者線(DSL)、あるいは、例えば赤外線、無線およびマイクロ波のような無線技術を使用して、ウェブサイト、サーバ、あるいはその他の遠隔ソースから命令群が送信される場合、同軸ケーブル、光ファイバ・ケーブル、ツイスト・ペア、DSL、あるいは、例えば赤外線、無線およびマイクロ波のような無線技術が、媒体の定義に含まれる。しかしながら、コンピュータ読取可能な記憶媒体およびデータ記憶媒体は、コネクション、搬送波、信号、またはその他の一時的な媒体を含まず、代わりに、非一時的な、有形の記憶媒体に向けられていることが理解されるべきである。本明細書で使用されるディスク(diskおよびdisc)は、コンパクト・ディスク(disc)(CD)、レーザ・ディスク(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)、およびブルーレイ・ディスク(disc)を含む。これらdiscは、レーザを用いてデータを光学的に再生する。それに対して、diskは、通常、データを磁気的に再生する。前述した組み合わせもまた、コンピュータ読取可能な媒体の範囲内に含まれるべきである。
命令群は、例えば1または複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向けIC(ASIC)、フィールド・プログラマブル・ロジック・アレイ(FPGA)、またはその他等価な集積またはディスクリート論理回路のような1または複数のプロセッサによって実行されうる。したがって、本明細書で使用されているように、用語「プロセッサ」は、前述した構成、または、本明細書に記載された技術の実施のために適切なその他任意の構成のうちの何れかを称しうる。さらに、いくつかの態様では、本明細書に記載された機能は、符号化および復号のために構成された専用のハードウェアおよび/またはソフトウェア・モジュール内に適用されうるか、または、結合されたコーデック内に組み込まれうる。さらに、これら技法は、1または複数の回路または論理要素で完全に実現されうる。
本開示の技術は、無線ハンドセット、集積回路(IC)、またはICのセット(例えば、チップセット)を含む種々さまざまなデバイスまたは装置において実現されうる。さまざまな構成要素、モジュール、またはユニットは、本開示では、開示された技術を実行するように構成されたデバイスの機能態様を強調するように記載されているが、異なるハードウェア・ユニットによる実現を必ずしも必要とする訳ではない。むしろ、前述されたように、さまざまなユニットは、適切なソフトウェアおよび/またはハードウェアと連携する、前述されたような1または複数のプロセッサを含む共通のハードウェア・ユニットの集合によって提供されうるか、コーデック・ハードウェア・ユニットに結合されうる。
さまざまな例が記載された。これらの例およびその他の例は、以下の特許請求の範囲のスコープ内である。
以下に、出願時の特許請求の範囲に記載された発明を付記する。
[発明1]
ビデオ・データをコーディングする方法であって、
ビデオ・データのピクチャのスライスが、前記ピクチャにおけるコーディング・ツリー・ユニット(CTU)の行において、前記行の先頭以外の位置において始まることを判定することと、
前記判定に基づいて、前記スライスが前記CTUの行内で終了すると判定することと、
前記スライスが前記CTUの行内で終了するとの判定に基づいて、前記スライスをコーディングすることと、
を備える方法。
[発明2]
CTUの対応する行の先頭以外の位置において始まるスライスのすべてが、前記CTUの対応する行内で終了するように、前記ビデオ・データのすべてのピクチャのすべてのスライスをコーディングすること、をさらに備える発明1に記載の方法。
[発明3]
前記スライスをコーディングすることは、ウェーブフロント並列処理を用いて前記スライスをコーディングすることを備える、発明1に記載の方法。
[発明4]
前記ウェーブフロント並列処理を用いて前記スライスをコーディングすることはさらに、前記ウェーブフロント並列処理がイネーブルされていることを判定することを備える、発明3に記載の方法。
[発明5]
ウェーブフロント並列処理をイネーブルすること、をさらに備える発明3に記載の方法。
[発明6]
ウェーブフロント並列処理がイネーブルされていることを示すシンタックス・データをコーディングすること、をさらに備える発明5に記載の方法。
[発明7]
前記スライスをコーディングすることは、ウェーブフロント並列処理を用いて、前記スライスを含むピクチャの少なくとも一部をコーディングすることを備える、発明3に記載の方法。
[発明8]
前記CTUの行の終わりにおいて、または、前記CTUの行の終わりの前において、前記スライスが終了していることを判定すること、をさらに備える発明1に記載の方法。
[発明9]
前記スライスをコーディングすることは、前記スライスの終わりに達する前に、前記ピクチャ内のCTUの後続する行に進むことなく、ラスタ・スキャン順に前記スライスのCTUをコーディングすることを備える、発明1に記載の方法。
[発明10]
前記CTUの行は、CTUの最初の行を備え、
前記方法はさらに、前記CTUの最初の行をコーディングすることと実質的に並列的に、前記CTUの最初の行に隣接するCTUの行をコーディングすることを備える、発明1に記載の方法。
[発明11]
前記隣接するCTUの行は、前記CTUの最初の行の下に位置するCTUの2番目の行を備える、発明10に記載の方法。
[発明12]
前記隣接するCTUの行は、前記CTUの最初の行の上に位置するCTUの2番目の行を備える、発明10に記載の方法。
[発明13]
前記スライスをコーディングすることは、前記スライスが、前記CTUの行内で終了するとの判定に基づいて、前記スライスをエントロピ・デコードすることを備える、発明1に記載の方法。
[発明14]
前記スライスをコーディングすることは、前記スライスが、前記CTUの行内で終了するとの判定に基づいて、前記スライスをエントロピ・エンコードすることを備える、発明1に記載の方法。
[発明15]
ビデオ・データをコーディングするためのデバイスであって、
ビデオ・データのピクチャのスライスが、前記ピクチャにおけるコーディング・ツリー・ユニット(CTU)の行において、前記行の先頭以外の位置において始まることを判定することと、
前記判定に基づいて、前記スライスが前記CTUの行内で終了すると判定することと、
前記スライスが前記CTUの行内で終了するとの判定に基づいて、前記スライスをコーディングすることと、
を実行するように構成されたビデオ・コーダ、を備えるデバイス。
[発明16]
前記ビデオ・コーダを備える通信デバイスと、マイクロプロセッサと、集積回路とのうちの少なくとも1つを備える、発明15に記載のデバイス。
[発明17]
前記ビデオ・コーダはさらに、CTUの対応する行の先頭以外の位置において始まるスライスのすべてが、前記CTUの対応する行内で終了するように、前記ビデオ・データのすべてのピクチャのすべてのスライスをコーディングするように構成された、発明15に記載のデバイス。
[発明18]
前記ビデオ・コーダは、ウェーブフロント並列処理を用いて前記スライスをコーディングするように構成された、発明15に記載のデバイス。
[発明19]
前記ビデオ・コーダは、少なくとも部分的に、前記ウェーブフロント並列処理が前記デバイスによってイネーブルされたと判定することによって、ウェーブフロント並列処理を用いて前記スライスをコーディングするように構成された、発明18に記載のデバイス。
[発明20]
前記ビデオ・コーダはさらに、前記デバイスにおいてウェーブフロント並列処理をイネーブルするように構成された、発明18に記載のデバイス。
[発明21]
前記ビデオ・コーダはさらに、前記CTUの行の終わりにおいて、または、前記CTUの行の終わりの前において、前記スライスが終了していることを判定するように構成された、発明15に記載のデバイス。
[発明22]
前記ビデオ・コーダは、少なくとも部分的に、前記スライスの終わりに達する前に、前記ピクチャ内のCTUの後続する行に進むことなく、ラスタ・スキャン順に前記スライスのCTUをコーディングすることによって、前記スライスをコーディングするように構成された、発明15に記載のデバイス。
[発明23]
前記CTUの行は、前記CTUの最初の行を備え、
前記ビデオ・コーダはさらに、前記CTUの最初の行をコーディングすることと実質的に並列的に、最初のスライスに隣接するCTUの行をコーディングするように構成された、発明15に記載のデバイス。
[発明24]
前記隣接するCTUの行は、前記CTUの最初の行の下に位置するCTUの2番目の行を備える、発明23に記載のデバイス。
[発明25]
前記隣接するCTUの行は、前記CTUの最初の行の上に位置するCTUの2番目の行を備える、発明23に記載のデバイス。
[発明26]
前記ビデオ・コーダは、前記スライスが、前記CTUの行内で終了するとの判定に基づいて、前記スライスをエントロピ・デコードするように構成されたビデオ・デコーダを備える、発明15に記載のデバイス。
[発明27]
前記ビデオ・コーダは、前記スライスが、前記CTUの行内で終了するとの判定に基づいて、前記スライスをエントロピ・エンコードするように構成されたビデオ・エンコーダを備える、発明15に記載のデバイス。
[発明28]
ビデオ・データをコーディングするためのデバイスであって、
ビデオ・データのピクチャのスライスが、前記ピクチャにおけるコーディング・ツリー・ユニット(CTU)の行において、前記行の先頭以外の位置において始まることを判定する手段と、
前記判定に基づいて、前記スライスが前記CTUの行内で終了すると判定する手段と、
前記スライスが前記CTUの行内で終了するとの判定に基づいて、前記スライスをコーディングする手段と、
を備えるデバイス。
[発明29]
CTUの対応する行の先頭以外の位置において始まるスライスのすべてが、前記CTUの対応する行内で終了するように、前記ビデオ・データのすべてのピクチャのすべてのスライスをコーディングする手段、をさらに備える発明28に記載のデバイス。
[発明30]
前記スライスをコーディングする手段は、ウェーブフロント並列処理を用いて前記スライスをコーディングする手段を備える、発明28に記載のデバイス。
[発明31]
前記スライスをコーディングする手段は、前記スライスの終わりに達する前に、前記ピクチャ内のCTUの後続する行に進むことなく、ラスタ・スキャン順に前記スライスのCTUをコーディングする手段を備える、発明28に記載のデバイス。
[発明32]
前記スライスは、最初のスライスを備え、
前記デバイスはさらに、前記CTUの最初の行をコーディングすることと実質的に並列的に、前記CTUの最初の行に隣接するCTUの行をコーディングする手段を備える、発明28に記載のデバイス。
[発明33]
格納された命令群を有するコンピュータ読取可能な記憶媒体であって、
前記命令群は、実行された場合、コンピューティング・デバイスのプログラマブル・プロセッサに対して、
ビデオ・データのピクチャのスライスが、前記ピクチャにおけるコーディング・ツリー・ユニット(CTU)の行において、前記行の先頭以外の位置において始まることを判定することと、
前記判定に基づいて、前記スライスが前記CTUの行内で終了すると判定することと、
前記スライスが前記CTUの行内で終了するとの判定に基づいて、前記スライスをコーディングすることと
を実行させる、コンピュータ読取可能な記憶媒体。
[発明34]
前記命令群は、実行された場合、コンピューティング・デバイスのプログラマブル・プロセッサに対して、
CTUの対応する行の先頭以外の位置において始まるスライスのすべてが、前記CTUの対応する行内で終了するように、前記ビデオ・データのすべてのピクチャのすべてのスライスをコーディングすることを実行させる、発明33に記載のコンピュータ読取可能な記憶媒体。
[発明35]
前記命令群は、実行された場合、コンピューティング・デバイスのプログラマブル・プロセッサに対して、ウェーブフロント並列処理を用いて前記スライスをコーディングすることを実行させる、発明33に記載のコンピュータ読取可能な記憶媒体。
[発明36]
前記命令群は、実行された場合、コンピューティング・デバイスのプログラマブル・プロセッサに対して、少なくとも部分的に、前記スライスの終わりに達する前に、前記ピクチャ内のCTUの後続する行に進むことなく、ラスタ・スキャン順に前記スライスのCTUをコーディングすることによって、前記スライスをコーディングすることを実行させる、発明33に記載のコンピュータ読取可能な記憶媒体。
[発明37]
前記CTUの行は、前記CTUの最初の行であり、
前記命令群は、実行された場合、コンピューティング・デバイスのプログラマブル・プロセッサに対して、前記CTUの最初の行をコーディングすることと実質的に並列的に、前記CTUの最初の行に隣接するCTUの行をコーディングすることを実行させる、発明33に記載のコンピュータ読取可能な記憶媒体。

Claims (37)

  1. エンコードされたビデオビットストリームのビデオ・データをデコードするための方法において、
    ウェーブフロント並列処理がイネーブルされていることを示すシンタックス・データをデコードすることと、
    前記ウェーブフロント並列処理がイネーブルされていることを示す前記シンタックス・データに応答して、前記ビデオ・データのピクチャの現在のスライスのスライス・ヘッダに基づいて、前記ビデオ・データのピクチャの現在のスライスが、前記ピクチャにおけるコーディング・ツリー・ユニット(CTU)の行中の、前記行の先頭以外の位置において始まることを決定することと、
    前記現在のスライスが前記行の先頭以外の位置において始まるとの決定に基づいて、前記現在のスライスが前記CTUの行内で終了することを決定することと、
    前記現在のスライスが前記CTUの行内で終了するとの決定に基づいて、前記現在のスライスに後続するスライスのスライス・ヘッダに依存することなく、前記現在のスライスをデコードすることとを含み、
    前記行は前記ピクチャの幅に渡り、前記行の先頭は、前記ピクチャの左端に対応し、前記行の終わりは、前記ピクチャの右端に対応する方法。
  2. 前記CTUの対応する行の先頭以外の位置において始まるスライスのすべてが、前記CTUの対応する行内で終了する請求項1記載の方法。
  3. 前記ウェーブフロント並列処理を使用して、前記現在のスライスをデコードすることをさらに含む請求項1記載の方法。
  4. 前記現在のスライスをデコードすることは、ウェーブフロント並列処理を使用して、前記現在のスライスを含むピクチャの少なくとも一部をデコードすることを含む請求項3記載の方法。
  5. 前記現在のスライスが前記行の先頭以外の位置において始まるとの決定に応答して、前記CTUの行の終わりにおいて、または、前記CTUの行の終わりの前において、前記現在のスライスが終了することを決定することをさらに含む請求項1記載の方法。
  6. 後続するスライスから前記現在のスライスを区別するスライス分割シンタックス要素に達する前に、前記ピクチャ中の前記CTUの後続する行を横切ることなく、ラスタ・スキャン順に前記現在のスライスの前記CTUをデコードすることをさらに含む請求項1記載の方法。
  7. 前記CTUの行は、前記CTUの第1の行を備え、
    前記方法は、前記CTUの前記第1の行をコーディングすることと実質的に並列的に、前記CTUの前記第1の行に隣接する前記CTUの行をデコードすることをさらに含む請求項1記載の方法。
  8. 前記CTUの隣接する行は、前記CTUの前記第1の行の下に位置する前記CTUの第2の行を備える請求項7記載の方法。
  9. 前記CTUの隣接する行は、前記CTUの前記第1の行の上に位置する前記CTUの第2の行を備える請求項7記載の方法。
  10. 前記エンコードされたビデオビットストリームを受け取ることをさらに含み、前記現在のスライスをデコードすることは、前記現在のスライスが前記CTUの行内で終了するとの決定に基づいて、前記現在のスライスをエントロピ・デコードすることを含む請求項1記載の方法。
  11. 前記行は、第1の行を備え、
    前記方法は、前記現在のスライスが前記CTUの前記第1の行内で終了するとの決定に基づいて、第2のスライスのスライス・ヘッダを使用して、後続するスライスに対して、1つ以上のコンテキスト適応バイナリ算術コーディング(CABAC)確率を初期化することをさらに含み、
    前記後続するスライスは、前記第1の行の直下に位置する第2の行の先頭において始まる請求項1記載の方法。
  12. 前記行は、第1の行を備え、
    前記方法は、
    後続するスライスが、前記第1の行の直下に位置する第2の行の先頭において始まることを決定することと、
    前記後続するスライスが、前記第2の行の先頭において始まるとの決定に基づいて、
    前記第2の行の直下に位置する第3の行のデータが、前記後続するスライスの一部分、または、前記後続するスライスの後に始まるスライスの一部分を形成するか否かを決定することと、
    前記第3の行のデータが、前記後続するスライスの一部分を形成するとの決定に基づいて、前記後続するスライスからの1つ以上のCABACパラメータを使用して、前記第3の行のデータをコーディングすること、または、
    前記第3の行のデータが、前記後続するスライスの後に始まるスライスの一部分を形成するとの決定に基づいて、前記後続するスライスの後に始まるスライスのスライス・ヘッダから初期化された1つ以上のCABACパラメータを使用して、前記第3の行のデータをコーディングすること、のうちの1つを実行することとをさらに含む請求項1記載の方法。
  13. 前記スライス分割シンタックス要素は、
    (i)前記現在のスライスの終了を示す1つ以上のエンド・オブ・スライス・シンボル、または、
    (ii)後続するスライスの始まりを示すスライス・ヘッダシンタックス要素、のうちの少なくとも1つを含む請求項6記載の方法。
  14. エンコードされたビデオビットストリームのビデオ・データをデコードするデバイスにおいて、
    前記ビデオ・データの少なくとも一部分を記憶するように構成されているメモリと、
    1つ以上のプロセッサとを具備し、
    前記1つ以上のプロセッサは、
    ウェーブフロント並列処理がイネーブルされていることを示すシンタックス・データをデコードするようにと、
    前記ウェーブフロント並列処理がイネーブルされていることを示す前記シンタックス・データに応答して、前記ビデオ・データのピクチャの現在のスライスのスライス・ヘッダに基づいて、前記ビデオ・データのピクチャの現在のスライスが、前記ピクチャにおけるコーディング・ツリー・ユニット(CTU)の行中の、前記行の先頭以外の位置において始まることを決定するようにと、
    前記現在のスライスが前記行の先頭以外の位置において始まるとの決定に基づいて、前記現在のスライスが前記CTUの行内で終了することを決定するようにと、
    前記現在のスライスが前記CTUの行内で終了するとの決定に基づいて、前記現在のスライスに後続するスライスのスライス・ヘッダに依存することなく、前記現在のスライスをデコードするように構成され、
    前記行は前記ピクチャの幅に渡り、前記行の先頭は、前記ピクチャの左端に対応し、前記行の終わりは、前記ピクチャの右端に対応するデバイス。
  15. 1つ以上の集積回路と、
    1つ以上のマイクロプロセッサと、
    1つ以上のデジタル信号プロセッサ(DSP)と、
    1つ以上のフィールドプログラマブルゲートアレイ(FGPA)と、
    デスクトップコンピュータと、
    ラップトップコンピュータと、
    タブレットコンピュータと、
    電話機と、
    テレビと、
    カメラと、
    ディスプレイデバイスと、
    デジタルメディアプレーヤーと、
    ビデオゲームコンソールと、
    ビデオゲームデバイスと、
    ビデオストリーミングデバイスと、または、
    ワイヤレス通信デバイスと、
    のうちの少なくとも1つをさらに具備する請求項14記載のデバイス。
  16. 記CTUの対応する行の先頭以外の位置において始まるスライスのすべてが、前記CTUの対応する行内で終了する請求項14記載のデバイス。
  17. 前記1つ以上のプロセッサは、前記ウェーブフロント並列処理を使用して、前記現在のスライスをデコードするようにさらに構成されている請求項14記載のデバイス。
  18. 前記ウェーブフロント並列処理を使用して、前記現在のスライスをデコードするために、前記1つ以上のプロセッサは、前記ウェーブフロント並列処理が前記デバイス上でイネーブルされていることを決定するように構成されている請求項17記載のデバイス。
  19. 前記1つ以上のプロセッサは、前記デバイス上で前記ウェーブフロント並列処理をイネーブルするようにさらに構成されている請求項17記載のデバイス。
  20. 前記1つ以上のプロセッサは、前記現在のスライスが前記行の先頭以外の位置において始まるとの決定に応答して、前記CTUの行の終わりにおいて、または、前記CTUの行の終わりの前において、前記現在のスライスが終了することを決定するようにさらに構成されている請求項14記載のデバイス。
  21. 前記1つ以上のプロセッサは、後続するスライスから前記現在のスライスを区別するスライス分割シンタックス要素に達する前に、前記ピクチャ中の前記CTUの後続する行を横切ることなく、ラスタ・スキャン順に前記現在のスライスの前記CTUをデコードするようにさらに構成されている請求項14記載のデバイス。
  22. 前記CTUの行は、前記CTUの第1の行を備え、
    前記1つ以上のプロセッサは、前記CTUの前記第1の行をデコードすることと実質的に並列的に、前記CTUの前記第1の行に隣接する前記CTUの行をデコードするようにさらに構成されている請求項14記載のデバイス。
  23. 前記CTUの隣接する行は、前記CTUの前記第1の行の下に位置する前記CTUの第2の行を備える請求項22記載のデバイス。
  24. 前記CTUの隣接する行は、前記CTUの前記第1の行の上に位置する前記CTUの第2の行を備える請求項22記載のデバイス。
  25. 前記現在のスライスをデコードするために、前記1つ以上のプロセッサは、前記現在のスライスが、前記CTUの行内で終了するとの決定に基づいて、前記現在のスライスをエントロピ・デコードするように構成されている請求項14記載のデバイス。
  26. スライス分割シンタックス要素は、
    (i)前記現在のスライスの終了を示す1つ以上のエンド・オブ・スライス・シンボル、または、
    (ii)後続するスライスの始まりを示すスライス・ヘッダシンタックス要素、のうちの少なくとも1つを含む請求項21記載のデバイス。
  27. エンコードされたビデオビットストリームのビデオ・データをデコードするデバイスにおいて、
    ウェーブフロント並列処理がイネーブルされていることを示すシンタックス・データをデコードする手段と、
    前記ウェーブフロント並列処理がイネーブルされていることを示す前記シンタックス・データに応答して、前記ビデオ・データのピクチャの現在のスライスのスライス・ヘッダに基づいて、前記ビデオ・データのピクチャの現在のスライスが、前記ピクチャにおけるコーディング・ツリー・ユニット(CTU)の行中の、前記行の先頭以外の位置において始まることを決定する手段と、
    前記現在のスライスが前記行の先頭以外の位置において始まるとの決定に基づいて、前記現在のスライスが前記CTUの行内で終了することを決定する手段と、
    前記現在のスライスが前記CTUの行内で終了するとの決定に基づいて、前記現在のスライスに後続するスライスのスライス・ヘッダに依存することなく、前記現在のスライスをデコードする手段とを具備し、
    前記行は前記ピクチャの幅に渡り、前記行の先頭は、前記ピクチャの左端に対応し、前記行の終わりは、前記ピクチャの右端に対応するデバイス。
  28. 前記CTUの対応する行の先頭以外の位置において始まるスライスのすべてが、前記CTUの対応する行内で終了する請求項27記載のデバイス。
  29. 前記ウェーブフロント並列処理を使用して、前記現在のスライスをデコードする手段をさらに具備する請求項27記載のデバイス。
  30. 後続するスライスから前記現在のスライスを区別するスライス分割シンタックス要素に達する前に、前記ピクチャ中の前記CTUの後続する行を横切ることなく、ラスタ・スキャン順に前記現在のスライスの前記CTUをデコードする手段をさらに具備する請求項27記載のデバイス。
  31. 前記CTUの行は、前記CTUの第1の行を備え、
    前記デバイスは、前記CTUの前記第1の行をデコードすることと実質的に並列的に、前記CTUの前記第1の行に隣接する前記CTUの行をデコードする手段をさらに具備する請求項27記載のデバイス。
  32. 格納された命令群を有する非一時的コンピュータ読取可能な記憶媒体において、
    前記命令群は、実行されるとき、コンピューティング・デバイスのプログラマブル・プロセッサに、
    エンコードされたビデオビットストリームのビデオ・データを処理させ、
    ウェーブフロント並列処理がイネーブルされていることを示すシンタックス・データをデコードさせ、
    前記ウェーブフロント並列処理がイネーブルされていることを示す前記シンタックス・データに応答して、前記ビデオ・データのピクチャの現在のスライスのスライス・ヘッダに基づいて、前記ビデオ・データのピクチャの現在のスライスが、前記ピクチャにおけるコーディング・ツリー・ユニット(CTU)の行中の、前記行の先頭以外の位置において始まることを決定させ、
    前記現在のスライスが前記行の先頭以外の位置において始まるとの決定に基づいて、前記現在のスライスが前記CTUの行内で終了することを決定させ、
    前記現在のスライスが前記CTUの行内で終了するとの決定に基づいて、前記現在のスライスに後続するスライスのスライス・ヘッダに依存することなく、前記現在のスライスをデコードさせ、
    前記行は前記ピクチャの幅に渡り、前記行の先頭は、前記ピクチャの左端に対応し、前記行の終わりは、前記ピクチャの右端に対応する非一時的コンピュータ読取可能な記憶媒体。
  33. 記CTUの対応する行の先頭以外の位置において始まるスライスのすべてが、前記CTUの対応する行内で終了する請求項32記載の非一時的コンピュータ読取可能な記憶媒体。
  34. 前記命令群は、実行されるとき、前記コンピューティング・デバイスのプログラマブル・プロセッサにさらに、前記ウェーブフロント並列処理を使用させて、前記現在のスライスをデコードさせる請求項32記載の非一時的コンピュータ読取可能な記憶媒体。
  35. 前記命令群は、実行されるとき、前記コンピューティング・デバイスのプログラマブル・プロセッサにさらに、少なくとも部分的に、後続するスライスから前記現在のスライスを区別するスライス分割シンタックス要素に達する前に、前記ピクチャ中の前記CTUの後続する行を横切ることなく、ラスタ・スキャン順に前記スライスの前記CTUをコーディングさせることによって、前記現在のスライスをデコードさせる請求項32記載の非一時的コンピュータ読取可能な記憶媒体。
  36. 前記CTUの行は、前記CTUの第1の行を備え、
    前記命令群は、実行されるとき、前記コンピューティング・デバイスのプログラマブル・プロセッサにさらに、前記CTUの前記第1の行をデコードさせることと実質的に並列的に、前記CTUの前記第1の行に隣接する前記CTUの行をデコードさせる請求項32記載の非一時的コンピュータ読取可能な記憶媒体。
  37. ビデオ・データをエンコードするための方法において、
    ウェーブフロント並列処理がイネーブルされていることに応答して、前記ビデオ・データのピクチャの現在のスライスが、前記ピクチャにおけるコーディング・ツリー・ユニット(CTU)の行中の、前記行の先頭以外の位置において始まり、後続する行への境界を横切ることを決定することと、
    前記現在のスライスが前記行の先頭以外の位置において始まり、前記後続する行への境界を横切るとの決定に基づいて、前記現在のスライスが前記CTUの行内で終了するように設定することと、
    前記スライスが前記CTUの行内で終了するとの設定に基づいて、前記スライスをエンコードすることと
    前記ウェーブフロント並列処理がイネーブルされていることを示すシンタックス・データをエンコードすることを含み、
    前記行は前記ピクチャの幅に渡り、前記行の先頭は、前記ピクチャの左端に対応し、前記行の終わりは、前記ピクチャの右端に対応する方法。
JP2015505713A 2012-04-11 2013-02-26 ビデオ・コーディングのためのウェーブフロント並列処理 Active JP6234994B2 (ja)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201261622974P 2012-04-11 2012-04-11
US61/622,974 2012-04-11
US201261640529P 2012-04-30 2012-04-30
US61/640,529 2012-04-30
US13/776,071 US9838684B2 (en) 2012-04-11 2013-02-25 Wavefront parallel processing for video coding
US13/776,071 2013-02-25
PCT/US2013/027760 WO2013154687A1 (en) 2012-04-11 2013-02-26 Wavefront parallel processing for video coding

Publications (3)

Publication Number Publication Date
JP2015516759A JP2015516759A (ja) 2015-06-11
JP2015516759A5 JP2015516759A5 (ja) 2016-03-24
JP6234994B2 true JP6234994B2 (ja) 2017-11-22

Family

ID=49325045

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015505713A Active JP6234994B2 (ja) 2012-04-11 2013-02-26 ビデオ・コーディングのためのウェーブフロント並列処理

Country Status (18)

Country Link
US (1) US9838684B2 (ja)
EP (1) EP2842312B1 (ja)
JP (1) JP6234994B2 (ja)
KR (1) KR102086872B1 (ja)
CN (1) CN104221381B (ja)
AU (1) AU2013246460B2 (ja)
BR (1) BR112014025418B1 (ja)
CA (1) CA2868467C (ja)
ES (1) ES2673069T3 (ja)
HK (1) HK1201002A1 (ja)
HU (1) HUE036971T2 (ja)
IL (1) IL234649A (ja)
MX (1) MX342659B (ja)
MY (1) MY171182A (ja)
PH (1) PH12014502145A1 (ja)
RU (1) RU2643652C2 (ja)
SG (2) SG10201608476TA (ja)
WO (1) WO2013154687A1 (ja)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5259625B2 (ja) * 2008-05-23 2013-08-07 パナソニック株式会社 画像復号化装置、画像復号化方法、画像符号化装置、及び画像符号化方法
MY189391A (en) 2013-01-04 2022-02-09 Samsung Electronics Co Ltd Method for entropy-encoding slice segment and apparatus therefor, and method for entropy-decoding slice segment and apparatus therefor
US9224187B2 (en) * 2013-09-27 2015-12-29 Apple Inc. Wavefront order to scan order synchronization
CN105659602B (zh) 2013-10-14 2019-10-08 微软技术许可有限责任公司 用于视频和图像编码的帧内块复制预测模式的编码器侧选项
KR102275639B1 (ko) 2013-10-14 2021-07-08 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 비디오 및 영상 코딩 및 디코딩에 대한 기본 색상 인덱스 맵 모드의 특징
AU2013403224B2 (en) 2013-10-14 2018-10-18 Microsoft Technology Licensing, Llc Features of intra block copy prediction mode for video and image coding and decoding
US10390034B2 (en) 2014-01-03 2019-08-20 Microsoft Technology Licensing, Llc Innovations in block vector prediction and estimation of reconstructed sample values within an overlap area
WO2015100726A1 (en) 2014-01-03 2015-07-09 Microsoft Corporation Block vector prediction in video and image coding/decoding
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
US10542274B2 (en) 2014-02-21 2020-01-21 Microsoft Technology Licensing, Llc Dictionary encoding and decoding of screen content
AU2014385769B2 (en) 2014-03-04 2018-12-06 Microsoft Technology Licensing, Llc Block flipping and skip mode in intra block copy prediction
US10477232B2 (en) * 2014-03-21 2019-11-12 Qualcomm Incorporated Search region determination for intra block copy in video coding
KR102311815B1 (ko) 2014-06-19 2021-10-13 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 통합된 인트라 블록 카피 및 인터 예측 모드
JP2017535145A (ja) * 2014-09-30 2017-11-24 マイクロソフト テクノロジー ライセンシング,エルエルシー 波面並列処理が可能にされた場合のピクチャ内予測モードに関する規則
GB2531001B (en) * 2014-10-06 2019-06-05 Canon Kk Method and apparatus for vector encoding in video coding and decoding
US9591325B2 (en) 2015-01-27 2017-03-07 Microsoft Technology Licensing, Llc Special case handling for merged chroma blocks in intra block copy prediction mode
CN106210728B (zh) * 2015-04-10 2019-08-30 上海澜至半导体有限公司 用于视频解码的电路、方法和视频解码器
WO2016197314A1 (en) 2015-06-09 2016-12-15 Microsoft Technology Licensing, Llc Robust encoding/decoding of escape-coded pixels in palette mode
US10382793B2 (en) * 2015-06-23 2019-08-13 Integrated Device Technology, Inc. Apparatuses and methods for performing information extraction and insertion on bitstreams
JP6642573B2 (ja) 2015-06-24 2020-02-05 ソニー株式会社 符号化装置、復号装置及び伝送制御方法
US10264257B2 (en) * 2015-06-30 2019-04-16 Texas Instruments Incorporated Video encoding
KR102633460B1 (ko) * 2016-03-29 2024-02-06 한국전자통신연구원 비디오 분산 부호화 장치 및 방법
KR20180047763A (ko) 2016-11-01 2018-05-10 삼성전자주식회사 처리 장치들 및 그 제어 방법들
KR102390413B1 (ko) * 2017-03-03 2022-04-25 에스케이텔레콤 주식회사 영상 부호화 또는 복호화하기 위한 장치 및 방법
WO2018186510A1 (ko) * 2017-04-06 2018-10-11 엘지전자(주) 비디오 신호를 엔트로피 인코딩, 디코딩하는 방법 및 장치
CN107197296B (zh) * 2017-06-22 2019-08-13 华中科技大学 一种基于COStream的HEVC并行编码方法和系统
US10986349B2 (en) 2017-12-29 2021-04-20 Microsoft Technology Licensing, Llc Constraints on locations of reference blocks for intra block copy prediction
KR102515357B1 (ko) * 2018-01-25 2023-03-29 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 효율적인 서브 픽처 추출
US10798407B2 (en) * 2018-06-01 2020-10-06 Tencent America LLC Methods and apparatus for inter prediction with a reduced above line buffer in video coding
CN112204978B (zh) 2018-06-01 2024-03-15 夏普株式会社 图像解码装置以及图像编码装置
WO2019234612A1 (en) 2018-06-05 2019-12-12 Beijing Bytedance Network Technology Co., Ltd. Partition tree with four sub-blocks symmetric or asymmetric
US11589069B2 (en) 2018-09-20 2023-02-21 Sharp Kabushiki Kaisha Systems and methods for signaling parameters in video coding
EP3843405A4 (en) * 2018-10-05 2021-10-27 LG Electronics Inc. IMAGE CODING PROCESS USING HISTORY-BASED MOVEMENT INFORMATION, AND ASSOCIATED DEVICE
CN117255200A (zh) 2019-04-24 2023-12-19 字节跳动有限公司 编解码视频的量化残差差分脉冲编解码调制表示
KR20220002292A (ko) 2019-05-01 2022-01-06 바이트댄스 아이엔씨 양자화된 잔차 차동 펄스 코드 변조 코딩을 사용하는 인트라 코딩된 비디오
JP7288083B2 (ja) 2019-05-02 2023-06-06 バイトダンス インコーポレイテッド 符号化ツリー構造タイプに基づく符号化モード
US11202070B2 (en) * 2019-05-30 2021-12-14 Hulu, LLC Parallel bi-directional intra-coding of sub-partitions
US11197009B2 (en) * 2019-05-30 2021-12-07 Hulu, LLC Processing sub-partitions in parallel using reference pixels
WO2021134019A1 (en) 2019-12-26 2021-07-01 Bytedance Inc. Constraints on coding of layered video
KR20220115958A (ko) 2019-12-26 2022-08-19 바이트댄스 아이엔씨 코딩된 비트스트림들에서의 비디오 계층들의 시그널링에 대한 제약들
WO2021134055A1 (en) 2019-12-27 2021-07-01 Bytedance Inc. Subpicture signaling in parameter sets
CN115004669A (zh) 2020-01-09 2022-09-02 字节跳动有限公司 不同sei消息的解码顺序

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4517468B2 (ja) 2000-07-10 2010-08-04 ソニー株式会社 画像情報変換装置及び方法並びに符号化装置及び方法
KR101125819B1 (ko) 2005-10-11 2012-03-27 노키아 코포레이션 효율적인 규모가변적 스트림 조정을 위한 시스템 및 방법
JP2007312002A (ja) 2006-05-17 2007-11-29 Toshiba Corp Mpegビデオ再生装置、およびmpegビデオ再生方法
US8542748B2 (en) 2008-03-28 2013-09-24 Sharp Laboratories Of America, Inc. Methods and systems for parallel video encoding and decoding
KR101457396B1 (ko) * 2010-01-14 2014-11-03 삼성전자주식회사 디블로킹 필터링을 이용한 비디오 부호화 방법과 그 장치, 및 디블로킹 필터링을 이용한 비디오 복호화 방법 및 그 장치
US8855188B2 (en) 2010-07-15 2014-10-07 Sharp Laboratories Of America, Inc. Method of parallel video coding based on mapping
CN103119938B (zh) * 2010-07-21 2016-09-14 瑞典爱立信有限公司 对画面进行编码的方法和设备、对画面的编码画面表示进行解码的方法和设备、以及媒体终端
WO2012044707A1 (en) 2010-10-01 2012-04-05 General Instrument Corporation Coding and decoding utilizing picture boundary variability in flexible partitioning
US9313514B2 (en) * 2010-10-01 2016-04-12 Sharp Kabushiki Kaisha Methods and systems for entropy coder initialization
US8654860B2 (en) * 2010-11-01 2014-02-18 Mediatek Inc. Apparatus and method for high efficiency video coding using flexible slice structure
US20120106622A1 (en) * 2010-11-03 2012-05-03 Mediatek Inc. Method and Apparatus of Slice Grouping for High Efficiency Video Coding
GB2488830B (en) * 2011-03-10 2015-07-29 Canon Kk Method and device for encoding image data and method and device for decoding image data
US20130113880A1 (en) * 2011-11-08 2013-05-09 Jie Zhao High Efficiency Video Coding (HEVC) Adaptive Loop Filter

Also Published As

Publication number Publication date
KR102086872B1 (ko) 2020-03-09
EP2842312B1 (en) 2018-03-21
JP2015516759A (ja) 2015-06-11
MY171182A (en) 2019-09-30
PH12014502145B1 (en) 2014-12-10
WO2013154687A1 (en) 2013-10-17
MX342659B (es) 2016-10-07
HK1201002A1 (en) 2015-08-14
SG10201608476TA (en) 2016-11-29
US9838684B2 (en) 2017-12-05
CN104221381A (zh) 2014-12-17
RU2014145217A (ru) 2016-06-10
ES2673069T3 (es) 2018-06-19
CA2868467A1 (en) 2013-10-17
KR20150003239A (ko) 2015-01-08
MX2014012291A (es) 2015-01-14
RU2643652C2 (ru) 2018-02-02
CN104221381B (zh) 2018-06-05
IL234649A (en) 2017-09-28
EP2842312A1 (en) 2015-03-04
BR112014025418A8 (pt) 2021-06-22
CA2868467C (en) 2020-02-25
AU2013246460B2 (en) 2017-06-01
BR112014025418B1 (pt) 2023-02-28
BR112014025418A2 (pt) 2017-06-20
US20130272370A1 (en) 2013-10-17
SG11201405619RA (en) 2014-11-27
AU2013246460A1 (en) 2014-10-09
HUE036971T2 (hu) 2018-08-28
PH12014502145A1 (en) 2014-12-10

Similar Documents

Publication Publication Date Title
JP6234994B2 (ja) ビデオ・コーディングのためのウェーブフロント並列処理
US10313682B2 (en) Determining regions when performing intra block copying
US10477232B2 (en) Search region determination for intra block copy in video coding
US9832467B2 (en) Deblock filtering for intra block copying
KR102334126B1 (ko) 인트라 블록 복사를 위한 레지듀얼 예측
US10412419B2 (en) Adaptive filtering in video coding
JP6165840B2 (ja) クロマスライスレベルqpオフセットおよびデブロッキング
US9591331B2 (en) Merge signaling and loop filter on/off signaling
US9729873B2 (en) Video coding using parallel motion estimation
US20150071357A1 (en) Partial intra block copying for video coding
JP6199371B2 (ja) ビデオ・コーディングのためのインタ・レイヤ・テクスチャ予測
JP2015525988A (ja) 3dビデオコーディングのための深度マップのイントラコーディング
JP2015531570A (ja) ビデオコーダの動作点のためのレイヤ識別子の向上したシグナリング
JP2017512025A (ja) ビデオコーディングにおけるフリッカー検出および軽減

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160202

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160202

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161201

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161206

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170303

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170404

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170530

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170926

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171025

R150 Certificate of patent or registration of utility model

Ref document number: 6234994

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250