JP2015008497A - キャッシュヒットを向上させるための復号器内での時間的及び空間的ビデオブロックの再順序付け - Google Patents

キャッシュヒットを向上させるための復号器内での時間的及び空間的ビデオブロックの再順序付け Download PDF

Info

Publication number
JP2015008497A
JP2015008497A JP2014162798A JP2014162798A JP2015008497A JP 2015008497 A JP2015008497 A JP 2015008497A JP 2014162798 A JP2014162798 A JP 2014162798A JP 2014162798 A JP2014162798 A JP 2014162798A JP 2015008497 A JP2015008497 A JP 2015008497A
Authority
JP
Japan
Prior art keywords
video
frame
unit
units
followed
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
JP2014162798A
Other languages
English (en)
Other versions
JP5985553B2 (ja
JP2015008497A5 (ja
Inventor
ブラダン・アンドリジャニク
Andrijanic Vladan
セラグ・ガデルラブ
Gadelrab Serag
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 JP2015008497A publication Critical patent/JP2015008497A/ja
Publication of JP2015008497A5 publication Critical patent/JP2015008497A5/ja
Application granted granted Critical
Publication of JP5985553B2 publication Critical patent/JP5985553B2/ja
Expired - Fee Related 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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/43Hardware specially adapted for motion estimation or compensation
    • H04N19/433Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
    • 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
    • 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/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/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • 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

Landscapes

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

Abstract

【課題】ビデオブロックの復号順序がビデオブロックのディスプレイ順序に対して変更される技法を提供する。
【解決手段】復号順序は、異なるビデオフレーム(もしくは他のコード化されたユニット)のビデオブロックが交互に入れ替わる形態で復号されるように、時間的に変更される。ビデオブロックの復号順序は、2つ以上の異なるフレームのビデオブロックの間で交互に入れ替わる。また、ビデオブロックのラスタスキャン順序と一致しない順序でビデオブロックが復号されるように、所与のビデオブロック内で空間的にも変更される。キャッシュヒットの可能性を向上させ、それによって外部メモリから復号器と関連する内部キャッシュへのメモリロードの数を低減することによってメモリの使用を向上する。
【選択図】図11

Description

本開示は、ビデオデータを圧縮及び解凍するために使用されるブロックをベースとしたデジタルビデオコード化に、より具体的には、実質的にキャッシュヒットを最大化し、キャッシュへのメモリロードを低減するためにビデオブロックを効率的に処理するための技法に関する。
デジタルビデオの能力は、デジタルテレビ、デジタル直接放送システム、無線電話ハンドセットのようなワイアレス通信デバイス、ワイアレス放送システム、パーソナルデジタルアシスタント(PDAs)、ラップトップもしくはデスクトップコンピュータ、デジタルカメラ、デジタル記録化デバイス、ビデオゲームデバイス、ビデオコンピュータゲーム機などを含む、幅広いデバイスに組み込まれ得る。デジタルビデオデバイスは、デジタルビデオをより効率的に送信及び受信するためにMPEG−2、MPEG−4、もしくはITU−TH.264/MPEG−4,Part10,Advanced Video Coding(AVC)のようなビデオ圧縮技法を実行する。ビデオ圧縮技法は、ビデオシーケンスに備わっている冗長度(redundancy)を低減、もしくは取り除くために空間的及び時間的予測を実行する。
ブロックをベースとしたビデオ圧縮技法は空間的予測及び/もしくは時間的予測を実行し得る。イントラコード化(Intra−coding)は、ビデオフレーム、ビデオフレームのスライスなどを備え得る所与のコード化されたユニット内のビデオブロック間の空間的冗長度を低減、もしくは取り除くために空間的予測に依存する。その一方でインターコード化は、ビデオシーケンスの連続するコード化されたユニットのビデオブロック間の時間的冗長度を低減、もしくは取り除くために時間的予測に依存する。イントラコード化のためにビデオ符号器は、同じコード化されたユニット内の他のデータに基づいてデータを圧縮するために空間的予測を実行する。インターコード化のためにビデオ符号器は、2つ以上の時間的に近接するコード化されたユニットの対応するビデオブロックの動きを本質的に追跡するために動き推定及び動き補償を実行する。
コード化されたビデオブロックは、予測ブロック、及びコード化されているブロックと予測ブロックとの間の差分を示すデータの残差ブロックを作成もしくは識別するために使用され得る予測情報によって示され得る。イントラコード化の場合において、予測モードがコード化されているビデオブロックと関連するコード化されたユニット内のデータに基づいて予測ブロックを生成するために使用され得るのに対し、インターコード化の場合において、1つ又は複数の動きベクトルが、前のもしくは後に続くコード化されたユニットからのデータの予測ブロックを識別するために使用される。イントラコード化及びインターコード化の両方は、いくつかの異なる予測モードを定義し得、それらのそれぞれがコード化の中で使用される異なるブロックサイズと予測技法の両方または一方を定義し得る。追加の種類のシンタックス要素もまた、コード化処理において使用されるコード化技法もしくはパラメータを制御もしくは定義するために符号化されたビデオデータの一部として含まれ得る。
ブロックをベースとした予測コード化の後ビデオ符号器は、残差ブロックの通信と関連するビットレートをさらに低減するために、変換、量子化、及びエントロピーコード化処理を適用し得る。変換技法は、ディスクリートコサイン変換(DCTs)、もしくはウェーブレット変換、整数変換、もしくは他の種類の変換のような、概念的に類似する処理の使用を備え得る。DCT処理において、例として変換処理は1組の残差ピクセル値を変換係数にコンバートし、それは周波数ドメインにおいて残差ピクセル値のエネルギーを示し得る。量子化は変換係数に適用され、概して任意の所与の変換係数と関連するビットの数を限定する処理を伴う。エントロピーコード化は量子化された変換係数のシーケンスを集合的に圧縮する1つ又は複数の処理を備える。
本開示は、ビデオブロックの復号順序がビデオブロックのディスプレイ順序に対して変更される技法を説明する。復号順序は、異なるビデオフレーム(もしくは他のコード化されたユニット)のビデオブロックが並行に復号され、その異なるフレームのビデオブロックの復号順序は交互に入れ替わる、もしくはインターリーブされるように時間的に変更され得る。特に、ビデオブロックの復号順序は2つ以上の異なるフレームのビデオブロック間で交互に入れ替わり得る。さらに復号順序はまた、ビデオブロックが、ビデオブロックのラスタスキャン順序と一致しない順序で復号されるように所与のビデオブロック内で空間的にも変更され得る。その技法は、復号器内のキャッシュヒットの可能性を向上させ、それによって外部メモリから復号器と関連する内部キャッシュへのメモリロードの数を低減することによってメモリの使用を向上し得る。復号順序は、キャッシュにすでに格納された予測データが復号において必要とされる及び使用されることになる可能性を高める形態で特別に定義され得、復号処理の間に外部メモリから内部キャッシュへのメモリロードを低減し得る。
ある例において本開示は、ビデオデータを復号する方法を説明する。その方法は、復号器においてビデオユニットのシーケンスを受信し、ここにおいてシーケンスがビデオユニットのディスプレイ順序を定義すること、及びその復号器を介して相互依存であり得ないビデオユニットのサブセットを識別することを備える。その方法はまた、メモリからキャッシュへ予測データをロードし、ここにおいてキャッシュが復号器と関連すること、及び少なくとも部分的にはキャッシュ内の予測データに基づいて符号化されたビデオユニットのサブセットのビデオブロックを復号し、ここにおいてビデオブロックを復号することは、第2のビデオユニットの少なくともいくつかのビデオブロックが第1のビデオユニットの少なくともいくつかのビデオブロックの前に復号され、ここにおいて第2のビデオユニットがディスプレイ順序において第1のビデオユニットの後に生じる復号順序を定義することを含むことも備え得る。
別の例において本開示は、ビデオデータを復号する装置を説明し、その装置はビデオ復号器及び関連するキャッシュを備える装置である。ビデオ復号器は、ビデオユニットのシーケンスを受信し、ここにおいてシーケンスがビデオユニットのディスプレイ順序を定義するように構成される。ビデオ復号器はまた、相互依存であり得ないビデオユニットのサブセットを識別し、メモリからキャッシュへ予測データをロードし、ならびに少なくとも部分的にはキャッシュ内の予測データに基づいて符号化されたビデオユニットのサブセットのビデオブロックを復号するようにも構成される。さらにはビデオブロックを復号する際に復号器は、第2のビデオユニットの少なくともいくつかのビデオブロックが第1のビデオユニットの少なくともいくつかのビデオブロックの前に復号され、ここにおいて第2のビデオユニットがディスプレイ順序において第1のビデオユニットの後に生じる復号順序を定義する。
別の例において本開示はビデオデータを復号するデバイスを説明し、そのデバイスはビデオユニットのシーケンスを受信し、ここにおいてシーケンスがビデオユニットのディスプレイ順序を定義するための手段、相互依存であり得ないビデオユニットのサブセットを識別するための手段、メモリからキャッシュへ予測データをロードするための手段、及び少なくとも部分的にはキャッシュ内の予測データに基づいて符号化されたビデオユニットのサブセットのビデオブロックを復号するための手段で、ここにおいてビデオブロックを復号するためのその手段は、第2のビデオユニットの少なくともいくつかのビデオブロックが第1のビデオユニットの少なくともいくつかのビデオブロックの前に復号され、ここにおいて第2のビデオユニットがディスプレイ順序において第1のビデオユニットの後に生じる復号順序を定義するための手段を含む手段を備える。
本開示で説明される技法は、ハードウェア、ソフトウェア、ファームウェア、もしくはそれらの任意の組み合わせにおいて実行され得る。ハードウェアで実行される場合、装置は集積回路、プロセッサ、ディスクリート論理、もしくはそれらの任意の組み合わせとして具現化され得る。ソフトウェアで実行される場合、ソフトウェアはマイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、もしくはデジタル信号プロセッサ(DSP)のような1つ又は複数のプロセッサにおいて実行され得る。その技法を実行するソフトウェアは、最初にコンピュータ読み取り可能媒体に格納され、プロセッサにおいてロード及び実行され得る。
従って本開示はまた、プロセッサで実行されるとプロセッサに、ビデオユニットのシーケンスを受信し、ここにおいてシーケンスがビデオユニットのディスプレイ順序を定義すること、相互依存であり得ないビデオユニットのサブセットを識別すること、メモリからキャッシュへ予測データをロードすること、ならびに少なくとも部分的にはキャッシュ内の予測データに基づいて符号化されたビデオユニットのサブセットのビデオブロックを復号することを行わせる命令を備えるコンピュータ読み取り可能記憶媒体も熟考する。ビデオブロックを復号する際に、その命令はプロセッサに、第2のビデオユニットの少なくともいくつかのビデオブロックが第1のビデオユニットの少なくともいくつかのビデオブロックの前に復号され、ここにおいて第2のビデオユニットがディスプレイ順序において第1のビデオユニットの後に生じる復号順序を定義することを行わせる。
本開示の1つ又は複数の態様の詳細は添付の図面及び以下の説明の中で述べられる。本開示で説明される技法の他の特徴、対象、及び利点は説明及び図面で、ならびに特許請求の範囲で明らかになる。
典型的なビデオ符号化及び復号システムを例示する典型的なブロック図。 典型的なビデオ符号器を例示するブロック図。 本開示と一貫した復号技法を実行し得る典型的なビデオ復号器を例示するブロック図。 ビデオ復号器の予測ユニット及びメモリをより詳細に例示するブロック図。 ビデオブロックのラスタスキャン順序とは異なる復号順序で復号され得る、ビデオフレームのようなビデオブロックのユニットを例示する概念図。 フレーム内のマクロブロックの空間的再順序付けを例示する概念図。 並行に復号され得る、ビデオフレームのような、ビデオブロックの2つの異なるユニットを例示する概念図。 ビデオユニットのIBPBPパターンを例示する概念図。 ビデオユニットのIBBPBBPパターンを例示する概念図。 並行に復号され得るビデオブロックを有するフレームを例示する概念図。 入力ストリームにおいて定義されるようなディスプレイ順序におけるビデオユニットを例示する概念図。 ディスプレイ順序とは異なる復号順序に従うビデオユニットの復号を例示する概念図。 本開示に従った復号技法を例示するフロー図。
本開示は、ビデオブロックの復号順序がビデオブロックのディスプレイ順序に対して変更される技法を説明する。復号順序は、異なるビデオフレーム(もしくは他のコード化されたユニット)のビデオブロックが並行に復号され、その異なるフレームのビデオブロックの復号順序は交互に入れ替わる、もしくはインターリーブされるように時間的に変更され得る。特に、ビデオブロックの復号順序は2つ以上の異なるフレームのビデオブロック間で交互に入れ替わり得る。さらに復号順序はまた、ビデオブロックがビデオブロックのラスタスキャン順序と一致しない復号順序で復号されるように所与のビデオブロック内で空間的にも変更され得る。
技法は、メモリからキャッシュへ予測データをロードし、ここにおいてキャッシュが復号器と関連することを含み得る。ビデオブロックの復号順序は、キャッシュにロードされたデータの使用を高め、キャッシュ内のデータが、キャッシュ内のデータに依存する任意の予測復号のために使用されるまで、追加のメモリからキャッシュへのリロードを実行する必要性を低減する形態で定義され得る。このように技法は、キャッシュヒットの可能性を向上させ、それによって外部メモリから復号器と関連する内部キャッシュへのメモリロードの数を低減することによって、メモリの使用を向上させ得る。
復号順序は、キャッシュにすでに格納されている予測データが復号において必要とされる及び使用されることになる可能性を高める形態で特別に定義され得、復号処理の間外部メモリから内部キャッシュへのメモリロードを低減し得る。技法は、ビデオユニットのシーケンスの少なくとも一部に渡って平均的な動きを定量化するグローバル動きメトリック(global motion metric)のような統計メトリックを使用し得る。別の例において統計メトリックは、第1のビデオユニットと第2のビデオユニットとの間のビデオブロックの平均的な動きを定量化する平均動きメトリックを備え得る。いずれの場合においても、復号順序はデータのメモリからキャッシュへのリロードを要求することなく復号処理においてキャッシュヒットの可能性を向上させるために、少なくとも部分的には統計メトリックに基づいて定義され得る。
図1は本開示の技法を実行し得る典型的なビデオ符号化及び復号システム10を例示するブロック図である。図1で示されているようにシステム10は、通信チャネル15を介して宛先デバイス16に符号化されたビデオを送信する発信元デバイス12を含む。発信元デバイス12及び宛先デバイス16は任意の幅広いデバイスを備え得る。いくつかの場合において発信元デバイス12及び宛先デバイス16は、いわゆるセルラー方式、もしくはサテライト無線電話機のような、ワイアレス通信デバイスハンドセットを備え得る。しかしながら、より一般的にビデオ復号に適用する本開示の技法は、必ずしもワイアレスアプリケーションもしくは設定に限定されず、コンピュータ、コンピュータゲーム機、テレビセットトップボックス、マルチメディアプレイヤ、ディスプレイなどのような、ビデオ復号能力を含む非ワイアレスデバイスに適用され得る。
図1の例において発信元デバイス12は、ビデオソース20、ビデオ符号器22、変調器/復調器(モデム)23、及び送信機24を含み得る。宛先デバイス16は受信機26、モデム27、ビデオ復号器28、及びディスプレイデバイス30を含み得る。発信元デバイス12のビデオ符号器22はビデオソース20から受信されたビデオデータを符号化し得る。ビデオソース20は、ビデオカメラのようなビデオキャプチャデバイス、予めキャプチャされたビデオを収容するビデオアーカイブ、もしくはビデオコンテンツプロバイダからのビデオフィードを備え得る。更なる代わりとしてビデオ発信元20は、ソースビデオ、もしくはライブビデオ、アーカイブされたビデオ、及びコンピュータによって生成された(computer−generated)ビデオの組み合わせとしてコンピュータグラフィックをベースとしたデータを生成し得る。いくつかの場合において、ビデオソース20がビデオカメラである場合、発信元デバイス12及び宛先デバイス16はいわゆるカメラ付電話、もしくはテレビ電話を形成し得る。それぞれの場合において、キャプチャされた、予めキャプチャされた、もしくはコンピュータによって生成されたビデオはビデオ符号器22によって符号化され得る。
一度ビデオデータがビデオ符号器22によって符号化されると、その後符号化されたビデオ情報は、例えば符号分割多元接続(CDMA)もしくは別の通信標準規格あるいは技法のような通信標準規格に従ってモデム23によって変調され、送信機24を介して宛先デバイス16に送信され得る。モデム23は、様々なミキサ、フィルタ、増幅器、もしくは信号変調のために設計された他のコンポーネントを含み得る。送信機24は、増幅器、フィルタ、及び1つ又は複数のアンテナを含むデータを送信するために設計された回路を含み得る。
宛先デバイス16の受信機26はチャネル15上で情報を受信し、モデム27はその情報を復調する。ビデオ復号器28によって実行されるビデオ復号処理は、復号処理の間のメモリ使用を向上させるために本開示の技法を実行し得る。特にビデオ復号器28は、復号器28の内部キャッシュに格納されたデータの使用を高める形態で、時間的なビデオブロックの再順序付け、及び場合により空間的なビデオブロックの再順序付けを実行し得る。そのように行う際に、復号器は外部メモリ(図1では示されていない)から復号器28の内部キャッシュへのメモリロードの量を最小化することを促進し得る。
ビデオ復号器28は、ITU−T H.264/AVCもしくは別の標準規格のような、ブロックをベースとした予測符号化技法もしくは標準規格に従ってビデオブロックを復号する。復号されたビデオブロックはその後、復号されたビデオデータを形成するためにビデオフレームにまとめられ得る。ディスプレイデバイス28は復号されたビデオデータをユーザに表示し、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、もしくは別の種類のディスプレイデバイスのような様々なディスプレイデバイスのいずれかを備え得る。
通信チャネル15は、無線周波数(RF)スペクトル、もしくは1つ又は複数の物理的伝送線のような、任意のワイアレスあるいは有線通信媒体、もしくはワイアレス及び有線媒体の任意の組み合わせを備え得る。通信チャネル15は、ローカルエリアネットワーク、広域ネットワーク、もしくはインターネットのようなグローバルネットワークのようなパケットをベースとしたネットワークの一部を形成し得る。通信チャネル15は概して、発信元デバイス12から宛先デバイス16へビデオデータを送信するための、任意の適当な通信媒体、もしくは異なる通信媒体の集合を示す。
ビデオ符号器22及びビデオ復号器28はITU−T H.264/AVC標準規格のようなビデオ圧縮標準規格に従って、相互に動作し得る。ITU−T H.264標準規格はまた、MPEG−4,Part10,Advanced Video Coding(AVC)の中でも説明される。しかしながら本開示の技法は任意の特定の標準規格に限定されず、任意の様々な他のビデオコード化標準規格もしくは技法に容易に適用され得る。
図1では示されていないけれどもいくつかの態様において、ビデオ符号器22及びビデオ復号器28はそれぞれ、オーディオ符号器及び復号器と一体化され得、共通のデータストリームもしくは別個のデータストリームにおいてオーディオ及びビデオの両方の符号化を扱うために、適当なMUX−DEMUXユニット、もしくは他のハードウェア及びソフトウェアを含み得る。適用可能である場合、MUX−DEMUXユニットは、ITU H.223マルチプレクサプロトコル、もしくはユーザデータグラムプロトコル(UDP)のような他のプロトコルに適合し得る。
ビデオ符号器22及びビデオ復号器28はそれぞれ、1つ又は複数のマイクロプロセッサ、デジタル信号プロセッサ(DSPs)、特定用途向け集積回路(ASICs)、フィールドプログラマブルゲートアレイ(FPGAs)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、もしくはそれらの任意の組み合わせとして実行され得る。ビデオ符号器22及びビデオ復号器28のそれぞれは1つ又は複数の符号器もしくは復号器に含まれ得、それらのどちらかはそれぞれの移動デバイス、加入者デバイス、放送デバイス、サーバなどの中で結合した符号器/復号器(CODEC)の一部として一体化され得る。
いくつかの場合において、デバイス12、16は実質的に対称的な形態で動作し得る。例えば、デバイス12、16のそれぞれは、ビデオ符号化及び復号コンポーネントを含み得る。従ってシステム10は、例えばビデオストリーミング、ビデオプレイバック、ビデオ放送、もしくはビデオ電話のためにビデオデバイス12、16の間の1方向もしくは双方向のビデオ送信をサポートし得る。
本開示の技法は、特にビデオ復号器28によって実行される復号処理の間に特に当てはまる。特に、ビデオ復号器28はビデオフレームのような復号可能なユニットのビデオブロックを再順序付ける復号技法を実行し得る。より一般的に、フレーム、スライス、フレームの一部、画像のグループ(GOPs)、もしくは他のデータ構造は、それぞれが複数のビデオブロックを含む独立して復号可能なユニットとして定義され得る。いくつかの場合において、それぞれのビデオフレームは一連の独立して復号可能なスライスを含み得、それぞれのスライスは一連のマクロブロックを含み得、それはさらにより小さなブロックに整えられ得る。「コード化されたユニット」及び「ビデオユニット」という用語は、フレーム、スライス、フレームの一部、画像のグループ(GOPs)、もしくは独立して復号可能である他のデータ構造を表す。コード化されたユニット内のビデオブロックは一定の、もしくは可変のサイズを有し得、特定のコード化標準規格に従ってサイズが異なり得る。シンタックスデータは、それぞれのコード化されたユニットが関連するシンタックスデータを含むように、コード化されたユニット毎を基準に定義され得る。
ビデオブロックはいわゆるマクロブロック、もしくはビデオデータの他のサイズのブロックを備え得る。マクロブロックは通常、データの16×16のブロックを表す。ITU−T H.264標準規格は、輝度(luma)コンポーネント用に16×16、16×8、8×16、8×8、8×4、4×8、及び4×4、ならびに色差(chroma)コンポーネント用に対応するスケーリングされた(scaled)サイズのような、様々なブロックサイズにおけるインター予測だけでなく、輝度コンポーネント用に16×16、8×8、もしくは4×4、ならびに色差コンポーネント用に8×8のような、様々なブロックサイズにおけるイントラ予測をサポートする。マクロブロックは、16×16のピクセルを集合的に定義する1組の色差及び輝度ブロックを表し得る。色差のビデオブロックは度々、ダウンサンプル処理され、輝度ブロックは様々なサイズを前提とし得る。本開示において、「ビデオブロック」という表現は、いずれのサイズのビデオブロックも表す。ビデオブロックは色差ブロック、輝度ブロック、もしくは場合により、集合的にマクロブロックを形成する1組の色差及び輝度ブロックを表し得る。さらにビデオブロックは、ピクセルドメインにおけるビデオデータのブロック、もしくはディスクリートコサイン変換(DCT)ドメイン、DCTに類似するドメイン、ウェーブレットドメインなどのような変換ドメインにおけるデータのブロックを表し得る。
ビデオ符号器22は、予測ブロックを識別するためにコード化されているビデオブロックが予測フレーム(もしくは他のコード化されたユニット)と比較される予測コード化を実行し得る。コード化されている現在のビデオブロックと予測ブロックとの間の差分は、残差ブロックとしてコード化され、予測シンタックスは予測ブロックを識別するために使用される。残差ブロックは変換及び量子化され得る。変換技法は、DCT処理あるいは概念的に類似の処理、整数変換、ウェーブレット変換、もしくは他の種類の変換を備え得る。DCT処理において1つの例として、変換処理が1組のピクセル値を変換係数にコンバートし、それは周波数ドメインにおいてピクセル値のエネルギーを示し得る。量子化は通常、変換係数に適用され、一般的に任意の所与の変換係数と関連するビットの数を限定する処理を伴う。
変換及び量子化に引き続いて、エントロピーコード化は量子化及び変換された残差のビデオブロック上で実行され得る。符号化の間に定義された予測ベクトル及びフィルタ情報のようなシンタックス要素もまた、それぞれのコード化されたユニット用のエントロピーコード化されたビットストリームに含まれ得る。概してエントロピーコード化は、量子化された変換係数と他のシンタックス情報の両方又はどちらか一方のシーケンスを集合的に圧縮する1つ又は複数の処理を備える。ジグザグスキャン技法のようなスキャン技法は、2次元のビデオブロックから1つ又は複数のシリアル化された1次元のベクトルの係数を定義するために、例えばエントロピーコード化処理の一部として量子化された変換係数上で実行される。スキャンされた係数はその後、例えばコンテント適応可変長符号化(CAVLC)、コンテクスト適応2進演算符号化(CABAC)、もしくは別のエントロピーコード化処理を介して任意のシンタックス情報と共にエントロピーコード化される。
述べられたように、本開示の技法は特に、ビデオ復号器28によって実行される復号処理に当てはまる。特に、述べられたように、ビデオ復号器28は復号器28の内部キャッシュに格納されたデータの使用を高める形態で時間的なビデオブロックの再順序付け、及び場合により空間的なビデオブロックの再順序付けを実行し得る。復号処理を十分理解することを促進するために図2は、まず典型的な符号化処理を解説するように記載される。
図2は本開示と一貫したビデオ符号器50を例示するブロック図である。ビデオ符号器50はデバイス20のビデオ符号器22、もしくは異なるデバイスのビデオ符号器に対応し得る。図2で表示されているようにビデオ符号器50は予測ユニット32、加算器48及び51、及びメモリ34を含む。ビデオ符号器50はまた、逆量子化ユニット42及び逆変換ユニット44だけでなく、変換ユニット38及び量子化ユニット40も含む。ビデオ符号器50はまた、エントロピーコード化ユニット46も含む。1つ又は複数のフィルタ(示されていない)もまた、符号化処理において実行され得る。
符号化処理の間ビデオ符号器50は、コード化されるビデオブロックを受信し、予測ユニット32は予測コード化技法を実行する。インターコード化のために予測ユニット32は、予測ブロックを定義するために、符号化されるビデオブロックを1つ又は複数のビデオ参照フレームもしくはスライスにおける様々なブロックと比較する。イントラコード化のために、予測ユニット32は同じコード化されたユニット内の隣接するデータに基づいて予測ブロックを生成する。予測ユニット32は予測ブロックを出力し、加算器48は残差ブロックを生成するためにコード化されているビデオブロックから予測ブロックを取り去る。
インターコード化のために予測ユニット32は、予測ブロックを指し示す動きベクトルを識別する動き推定及び動き補償ユニットを備え得、動きベクトルに基づいて予測ブロックを生成する。動き推定は通常、動きを推定する動きベクトルを生成する処理と考えられる。例えば、動きベクトルは現在のフレーム内でコード化されている現在のブロックに対する予測フレーム内の予測ブロックの移動(displacement)を指し示し得る。動き補償は通常、動き推定によって決定される動きベクトルに基づいて予測ブロックをフェッチもしくは生成する処理と考えられる。イントラコード化のために予測ユニット32は、同じコード化されたユニット内の近接するデータに基づいて予測ブロックを生成する。1つ又は複数のイントラ予測モードはイントラ予測ブロックがどのように定義され得るかを定義し得る。
予測ユニット32が予測ブロックを出力し、加算器48が残差ブロックを生成するためにコード化されているビデオブロックから予測ブロックを取り去った後、変換ユニット38は残差ブロックに変換を適用する。その変換はディスクリートコサイン変換(DCT)、もしくはH.264標準規格によって定義されるもののような概念的に類似する変換を備え得る。ウェーブレット変換、整数変換、サブバンド(sub−band)変換、もしくは他の種類の変換も使用されることができるだろう。いずれの場合においても変換ユニット38は、変換を残差ブロックに適用して、残差変換係数のブロックを作り出す。その変換は残差情報をピクセルドメインから周波数ドメインにコンバートし得る。
量子化ユニット40は、その後ビットレートをさらに低減するために残差変換係数を量子化する。例えば量子化ユニット40は、係数のそれぞれをコード化するために使用されるビットの数を限定し得る。量子化の後、エントロピーコード化ユニット46は量子化された係数ブロックを2次元表示から1つ又は複数のシリアル化された1次元ベクトルにスキャンする。スキャンの順序は、(ジグザグスキャン、あるいは別の予め定義された順序のような)定義された順序で生じるように予めプログラムされ得る、もしくは場合により以前のコード化統計に基づいて適応可能に定義され得る。
このスキャン処理に引き続き、エントロピー符号化ユニット46はさらにデータを圧縮するために、CAVLCもしくはCABACのようなエントロピーコード化方法に従って(任意のシンタックス要素と共に)量子化された変換係数を符号化する。エントロピーコード化されたビットストリームの中に含まれるシンタックス要素は、インターコード化のための動きベクトル、もしくはイントラコード化のための予測モードのような、予測ユニット32からの予測シンタックスを含み得る。エントロピーコード化されたビットストリームの中に含まれるシンタックス要素はまた、フィルタ情報、もしくは復号処理において使用され得る他のデータも含み得る。
CAVLCは、ITU H.264/MPEG4,AVC標準規格によってサポートされるエントロピーコード化技法の1つの種類であり、エントロピーコード化ユニット46によってベクトル基準で適用され得る。CAVLCは変換係数とシンタックス要素の両方又はどちらか一方のシリアル化された「ラン」を効率的に圧縮する形態で可変長符号化(VLC)テーブルを使用する。CABACは、ITU H.264/MPEG4,AVC標準規格によってサポートされる別の種類のエントロピーコード化技法であり、エントロピーコード化ユニット46によってベクトル基準で適用され得る。CABACは、2値化、コンテキストモデル選択、及び2進演算コード化を含む、いくつかの段階を伴い得る。この場合においてエントロピーコード化ユニット46は、CABACに従って変換係数及びシンタックス要素をコード化する。多くの他の種類のエントロピーコード化技法もまた存在し、新しいエントロピーコード化技法が将来、おそらく登場するだろう。本開示はいずれの特定のエントロピーコード化技法にも限定されない。
エントロピー符号化ユニット46によるエントロピーコード化に引き続いて、符号化されたビデオは別のデバイスに送信され得る、もしくは後の送信あるいは検索用にアーカイブされ得る。また、符号化されたビデオは、エントロピーコード化された動きベクトル、及び復号処理を適当に構成するために復号器によって使用され得る他の様々なシンタックスを備え得る。逆量子化ユニット42及び逆変換ユニット44はピクセルドメインで残差ブロックを再構成するためにそれぞれ逆量子化及び逆変換を適用する。加算器(summer)51は、メモリ34内への格納用に再構成されたビデオブロックを作り出すために予測ユニット32によって作り出された予測ブロックに再構成された残差ブロックを加える。そのような格納に先立ってフィルタリングもまた、ビデオ品質を向上させるためにビデオブロック上で適用され得る。そのようなフィルタリングは、ブロッキネス(blockiness)もしくは他のアーティファクト(artifact)を低減し得、ループの内(この場合、予測用に使用されるデータはフィルタリングされたデータである)、あるいはループの後(この場合、予測用に使用されるデータはフィルタリングされていないデータである)で実行され得る。
図3は、本開示の1つ又は複数の技法を使用してビデオシーケンスを復号する、ビデオ復号器60の例を例示するブロック図である。受信されたビデオシーケンスは、符号化された1組の画像フレーム、1組のフレームスライス、共通にコード化された画像のグループ(GOPs)、もしくはどのようにそのようなビデオブロックを復号するかを定義するためのシンタックス及び符号化されたビデオブロックを含む幅広い種類のコード化されたビデオユニットを備え得る。ビデオ復号器60は図1におけるシステム10のビデオ復号器28に対応し得、もしくは別のデバイスのビデオ復号器を備え得る。図3において例示される様々なコンポーネントは例示的な目的のために示される。様々なコンポーネントは組み合わされ得、他のコンポーネントが存在し得る。
以下でより詳細に説明されるように、ビデオ復号器60は従来の復号技法に対してビデオブロックの復号順序を変更もしくは調整し得る。従来より、ビデオユニットは復号順序においてシーケンシャルに復号され得る。さらにそれぞれのビデオユニットのビデオブロックは、ビデオユニットの上部左端にある第1のビデオブロックから下部右端にある最後のビデオブロックへとラスタスキャン順序において復号され得る。しかしながら本開示の技法は、メモリの有効的な使用を高める形態でビデオブロックのこの復号順序を変更する。
復号順序は、異なるビデオフレームもしくはスライス(もしくは他のコード化されたユニット)のビデオブロックが並行に復号されるように時間的に変更され得る。この場合において、ビデオブロックの復号順序は2つ以上の異なるフレームのビデオブロック間で交互に入れ替わり得る。さらに復号順序はまた、ビデオブロックがビデオブロックのラスタスキャン順序と一致しない順序で復号されるように所与のビデオブロック内で空間的にも変更され得る。統計的メトリックは、他の方法で実行され得るよりも早い復号のために順序付けされるべきであるそれらのビデオブロックを、そのようなビデオブロックの復号がキャッシュ70内のデータをそのようなデータが置き換えられる前に使用することができるように予測することを促進するために使用され得る。このようにキャッシュ70へのメモリロードの数は、時間の経過と共に低減され得る。
ビデオ復号器60は、図2のエントロピー符号化ユニット46によって実行される符号化の相補的な復号機能を実行する、エントロピー復号ユニット52を含む。特に、エントロピー復号ユニット52はCAVLCもしくはCABAC復号、あるいはビデオ符号器50によって使用される任意の他の種類のエントロピー復号を実行し得る。1次元のシリアル化されたフォーマット内のエントロピー復号されたビデオブロックは、1つ又は複数の1次元のベクトルの係数を2次元のブロックのフォーマットに戻すようにコンバートするために逆スキャンされ得る。ビデオブロック用に定義されたスキャン順序だけでなく、ベクトルの数及びサイズは、どのように2次元のブロックが再構成されるかを定義し得る。動きベクトルのようなエントロピー復号された予測シンタックス要素(及び場合により他の復号されたシンタックス要素)はエントロピー復号ユニット52から予測ユニット54へ送られ得る。
ビデオ復号器60はまた、予測ユニット54、逆量子化ユニット56、逆変換ユニット58、メモリ62、及び加算器64も含む。加えてビデオ復号器60はまた、加算器64の出力をフィルタするフィルタユニット(示されていない)も含み得る。予測ユニット54は、例えばメモリ62よりも速くならびに小さい、比較的速い内部メモリ回路を備え得る関連するキャッシュ70を含み得る。予測データは、復号処理のために必要とされることになるキャッシュ70内のデータを高めるために1つ又は複数のビデオユニットの統計に基づいてメモリ62からキャッシュ70へロードされ得る。さらにキャッシュ70内のデータの使用をそのようなデータをリロードする必要なく、さらに高めるために、異なるコード化されたビデオユニットのビデオブロックの復号順序が、復号順序がディスプレイ順序と一致しないように変更され得る。2つ以上のビデオユニットは、復号処理が2つ以上の異なるビデオユニットのビデオブロック間で交互に入れ替わるように並行に復号され得る。この場合において予測ユニット54は、相互依存であり得ないビデオユニットを識別し得、キャッシュ70内のデータの使用を高めるために、キャッシュ70に備わり、ビデオブロックの復号順序を定義するためにコード化統計を使用し得る。第1のビデオユニットのビデオブロックが第2のビデオユニットのビデオブロックを指し示す動きベクトルを有することができない場合、及び逆の場合も同様に、第1のビデオユニット及び第2のビデオユニットは相互依存であり得ない。
予測ユニット54はエントロピー復号ユニット52から(動きベクトルのような)予測シンタックスを受信する。予測シンタックスを使用して、予測ユニット54はキャッシュ70から予測ブロックを生成し、それは加算器64を介して残差ブロックと結合され得る。逆量子化ユニット56は逆量子化を実行し、逆変換ユニット58は残差ビデオブロックの係数をピクセルドメインに戻るように変えるために逆変換を実行する。加算器64は、所与のビデオブロックを再構成するために逆変換ユニット58によってそれぞれの予測ブロックを対応する残差ブロック出力と結合する。
概して、ビデオ復号器60はビデオユニットのシーケンスを受信し得、シーケンスはビデオユニットのディスプレイ順序を定義し得る。予測ユニット54は相互依存であり得ないビデオユニットのサブセットを識別し得、予測データをメモリ62からキャッシュ70へロードし得、ここにおいてキャッシュ70は復号器60の予測ユニット54と関連する。メモリ62もまた、復号器70と関連し得る、あるいは他のプロセッサもしくはユニットと共有される外部メモリであり得る。しかしながら概してキャッシュ70は、メモリ62よりもメモリアクセススピードの点で速く、サイズにおいて小さいメモリ回路を備え得る。キャッシュ70のサイズは、いくつかのマクロブロックの行(rows)の始まり以外のどこにおいてもキャッシュのウォーミングアップの必要を回避するために特別に設計され得る。特にキャッシュのサイズは、キャッシュミスを最小化するように選択され得る。その処理は(いくつかのフレームから)4つのマクロブロックの行の連続する組に移動し得、処理がマクロブロックの行の別の組に移動する時、キャッシュ内のデータは比較的広いフレームの幅のために無効であると予期され得る。この場合において多くのキャッシュミスが、ウォーミングアップ期間の間予期され得るが、しかしウォーミングアップ期間の後、本開示の技法はそのような生じ得るキャッシュミスを低減することを促進し得る。
予測ユニット54は、少なくとも部分的にはキャッシュ70内の予測データに基づいて符号化されたビデオユニットのサブセットのビデオブロックを復号し得る。本開示に従って予測ユニット54は、第2のビデオユニットの少なくともいくつかのビデオブロックが第1のビデオユニットの少なくともいくつかのビデオブロックの前に復号され、第2のビデオユニットがディスプレイ順序において第1のビデオユニットの後に生じる復号順序を定義し得る。メモリ62及びキャッシュ70は幅広い種類のメモリ回路のいずれかを備え得る。通常、キャッシュ70はメモリ62と比較してより小さく、より速いメモリである。1つの例として、メモリ62はダイナミックランダムアクセスメモリ(DRAM)を備え得、キャッシュ70はスタティックランダムアクセスメモリ(SRAM)もしくは混載DRAMを備え得る。
符号化されたビデオユニットのシーケンスは、ビデオフレームのシーケンス、ビデオフレームの一部のシーケンス、もしくはビデオフレームのスライスのシーケンスを備え得る。復号順序は第1の符号化されたビデオユニットの1つ又は複数のビデオブロックと第2のビデオユニットの1つ又は複数のビデオブロックとの間で交互に入れ替わり得る。本開示に従って復号順序は、キャッシュ内にロードされた予測データがキャッシュをリロードする必要なくビデオユニットのサブセットのビデオブロックを復号する際に使用される可能性を実質的に向上させるように定義され得る。
復号順序はまた、所与のコード化されたユニットのビデオブロックのために空間的にも定義もしくは変えられ得る。この場合において復号順序は、第1のビデオユニットのビデオブロックが第1のビデオユニットのラスタスキャン順序と一致しない順序で復号され、第2のビデオユニットのビデオブロックが第2のビデオユニットのラスタスキャン順序と一致しない順序で復号されるように予測ユニット54によって定義され得る。従って第1のビデオユニットの第2の行の少なくとも1つのビデオブロックは第1のビデオユニットの第1の行の少なくとも1つのビデオブロックに先立って復号され得、ここにおいて第2の行はビデオユニットのディスプレイされたバージョンにおいて第1の行の下にある。
復号順序を定義するために予測ユニット54は、異なるコード化されたビデオユニット内のビデオブロックの統計を使用し得る。予測ユニット54もしくは場合によりエントロピー復号ユニット52あるいは別個の前処理ユニット(示されていない)は統計を生成するために事前にいくつかのフレーム用にビデオストリームを前処理し得る。統計は、全ての前処理されたフレームのためのグローバル動きベクトル及び関連する参照フレームリストを備え得る。このコンテクストにおけるグローバル動きベクトルはいずれの実在の動きも示さない場合があるが、しかし例えば全ての前処理されたフレームのための、ストリーム内の平均動きベクトルを備え得る。グローバル動きベクトルは、参照データの読み出しにおける重複の最大の可能性(chance)をもたらすフレーム間の平均的な水平及び垂直の移動を識別するために使用され得る。フレーム間の平均的な水平及び垂直の移動は、重複する参照データを有することになる異なるフレームの見込みのある(likely)領域を定義するために、定量化され得、例えば最も近い16ピクセルに丸め処理され得る。以下でより詳細に説明されるように、前前処理されたフレームはフレームのスライドウィンドウを備え得、もしくは1組のIBPBPフレームもしくは1組のIBBPBBPフレームのような、ディスクリートな1組のフレームを備え得る。
また、予測ユニット54(もしくは前処理を実行する別のユニット)は、相互依存であり得ない2つ以上のビデオユニットを最初に決定することができ、これは例えばそのようなビデオユニットが予測のために互いのデータに頼らないことを意味する。これらの種類の相互関連のないビデオユニットは並行に復号され得、キャッシュ70にロードされたデータは(ビデオブロックの定義されたコード化順序と共に)キャッシュ70への重複のロードが回避されることを確実にすることを促進し得る。メモリ62からキャッシュ70へロードされたいずれの予測データも、たとえいくつかのビデオブロックがビデオユニット内でシーケンシャルでない、もしくは2つ以上の異なるビデオユニットの中に含まれる場合でもそのようなビデオブロックの復号のために使用され得る。
ある例において、予測ユニット54はビデオユニットのシーケンス内のビデオブロックと関連する統計メトリックを定義し得、少なくとも部分的には統計メトリックに基づいて復号順序を定義し得る。統計メトリックは、ビデオユニットのシーケンスの少なくとも一部に渡って平均的な動きを定量化するグローバル動きメトリックを備え得る。別の例において、予測ユニット54は、第1のビデオユニットと第2のビデオユニットとの間のビデオブロックの平均的な動きを定量化し、ここにおいて第1のビデオユニット及び第2のビデオユニットが相互依存であり得ないユニットである、平均動きメトリックを決定し得る。予測ユニット54はその後、少なくとも部分的には平均動きメトリックに基づいて復号順序を定義し得る。
以下でより詳細に説明されるように、本開示の技法はビデオユニットの共通に使用されるシーケンスを用いて機能し得る。ある例においてビデオユニットのシーケンスは、第1のBフレームが続き、第1のPフレームが続き、第2のBフレームが続き、第2のPフレームが続くIフレームを含むIBPBPフォーマットに従い、ここにおいてビデオユニットのサブセットは第1のBフレーム及び第2のPフレームから成り立つ。別の例においてビデオユニットのシーケンスは、第1のBフレームが続き、第2のBフレームが続き、第1のPフレームが続き、第3のBフレームが続き、第4のBフレームが続き、第2のPフレームが続くIフレームを含むIBBPBBPフォーマットに従い、ここにおいてビデオユニットのサブセットは第1のBフレーム、第2のBフレーム、及び第2のPフレームから成り立つ。前処理はディスクリートな組のIBPBPフレームもしくはディスクリートな組のIBBPBBPフレームで行われ得、もしくはフレームのスライドウィンドウに渡って平均的な動きを定義するためにスライドウィンドウ内で行われ得る。その技法はまた、スライスもしくはフレームの他の部分のような、他の種類のビデオユニットにも当てはまり得る。
Iフレームという用語はイントラコード化されたフレームを表す。Pフレームという用語は1組の予測データに依存する予測インターコード化されたフレームを表す。Bフレームという用語は、(例えば、2つの異なるフレームからの)2つの異なる組の予測データに依存する双予測インターコード化されたフレームを表す。IBPBP及びIBBPBBPは、ビデオシーケンスが符号化される2つの一般的な方法である。本開示の技法はこれらの、もしくは他の符号化されたビデオシーケンスに当てはまり得る。
図4はより詳細に予測ユニット54及びメモリ62を例示するブロック図である。示されているように予測ユニット54は、外部メモリ72と比較して小さく、速いメモリを備え得るキャッシュを含む。予測ユニットはメモリフェッチコマンドをメモリコントローラ71に出すことができ、それはデータが外部メモリ72から予測ユニット54の内部キャッシュ70へロードされることを引き起こす。メモリ72は、プロセッサの外に位置する点で外部であり得、そのプロセッサはその他の点では復号器50を形成する。反対に、キャッシュ70は復号器50を形成するプロセッサに対する内部メモリを備え得る。プロセッサは図3で示される異なるユニット及びモジュールの様々な機能を実行するようにプログラムもしくは構成され得る。
また本開示は、予測データをメモリ62からキャッシュ70へとロードすることを含む技法を提供する。ビデオブロックの復号順序は、キャッシュ70にロードされたデータの使用を高め、キャッシュ70内のデータがそのようなデータに依存する任意の予測復号のために使用されるまで追加のメモリからキャッシュへのリロードを実行する必要性を低減する形態で定義され得る。このように技法は、キャッシュ70におけるキャッシュヒットの可能性を向上させ、それによって外部メモリ72からのメモリロードの数を低減することによってメモリ62及びキャッシュ70の使用を向上させ得る。
また復号順序は、異なるビデオフレーム(もしくは他のコード化されたユニット)のビデオブロックが交互に入れ替わる形態で復号されるように時間的に変更され得る。この場合において、ビデオブロックの復号順序は、2つ以上の異なるフレームのビデオブロック間で交互に入れ替わり得る。さらに復号順序はまた、ビデオブロックがビデオブロックのラスタスキャン順序と一致しない順序で復号されるように所与のビデオブロック内で空間的にも変更され得る。
図5は、ビデオブロックのラスタスキャン順序とは異なる復号順序で復号され得る、ビデオフレームのようなビデオブロック77のビデオユニットを例示する概念図である。このシナリオは、ビデオユニット77のビデオブロックの復号順序の空間的な再順序付けとして表され得る。図5において、ビデオユニット77のビデオブロックはラスタスキャン順序で1から64まで分類される。しかしながら本開示に従って、ビデオユニット77のビデオブロックの復号順序はこのラスタスキャン順序とは異なり得る。特に、全ての第1の行のビデオブロック(VB1からVB8)を復号することに先立って1つ又は複数の第2の行のビデオブロック(VB9からVB16)を復号することは有利であり得る。例えばVB1及びVB10は、VB1及びVB10の空間的近接性のためにVB1及びVB9よりも、同じ予測データに依存する可能性がよりあり得る。この理由のために、VB8を復号することに先立ってVB10を復号することは、キャッシュ70の使用の見地からより有利であり得る。復号は最初に実行された符号化に左右されるので、ビデオ復号器50は復号順序を定義するために図5において表示されるビデオブロックの動きベクトルの動きベクトル統計を利用し得る。動きベクトルの全体的な統計(例えば、ビデオユニット77の平均的な動き)は、キャッシュヒットを高め、キャッシュ70内でデータをロード及び置き換える必要性を低減するためにビデオ復号50がキャッシュ70にロードされた1組のデータに対して望ましい復号順序を推定することを可能にし得る。
図6は、フレーム内のマクロブロックの空間的な再順序付けを例示する概念図である。示されているように、行66の第1のマクロブロックが復号される。その後、行67からの第2のマクロブロックが復号される。次に行68からの第3のマクロブロックが復号され、最後に行69からの第4のマクロブロックが復号される。この時点で、行66からの次のマクロブロックが復号され得る。このように復号順序は、所与のビデオユニット内のビデオブロックがラスタスキャン順序と一致しない順序で復号されるように定義される。つまり、第1のビデオユニットの第2の行の少なくとも1つのビデオブロックは第1のビデオユニットの第1の行の少なくとも1つのビデオブロックに先立って復号され、ここにおいて第2の行は第1の行の下にある。これは、参照フレームからの参照エリア65がメモリ62からキャッシュ70へのデータのロード及びリロードを回避してキャッシュ70(図3)内でより十分に活用されることを可能にする。
図7は、並行に復号され得る、2つの異なるビデオフレームのような、ビデオブロックの2つの異なるユニット(78及び79)を例示する概念図である。このシナリオはビデオユニット78及び79のビデオブロックの復号順序の時間的再順序付けとして表され得る。本開示は、キャッシュの使用を向上させ、キャッシュヒットを実質的に最大化するためにビデオブロックの空間的再順序付け及び時間的再順序付けの両方を考慮に入れる。
時間的再順序付けの場合において、ビデオ復号器50は復号処理においてビデオユニット78及び79のビデオブロック間で交互に入れ替わり得る。図7において、ビデオユニット78のビデオブロックはラスタスキャン順序で1から64まで分類され、ビデオユニット79のビデオブロックも同様にラスタスキャン順序で1から64まで分類される。しかしながら本開示に従って、ビデオユニット78及び79のビデオブロックの復号順序は、ビデオユニット78及び79のビデオブロックが並行で共に復号され得る限り、ラスタスキャン順序とは異なり得る。特に、ビデオユニット78の全てのビデオブロックを復号することに先立ってビデオユニット79の1つ又は複数のビデオブロックを復号することは有利であり得る。
例えば、ビデオユニット78及び79の同じ場所に配置された、もしくは近くに配置されたビデオブロックは、所与のビデオユニットの2つのより空間的に離れたビデオブロックよりも、同じ予測データに依存する可能性がよりあり得る。この理由のために、ビデオユニット78のVB8を復号することに先立ってビデオユニット79のVB1を復号することは、キャッシュ70の使用の見地からより有利であり得る。ビデオユニット78及び79は、非相互依存であり得、そしてそれはビデオユニット78が予測のためにビデオユニット79のいずれのデータにも依存せず、ビデオユニット79が予測のためにビデオユニット78のいずれのデータにも依存しないこと意味する。これは復号処理においてビデオユニット78及び79の並行復号及びビデオユニット78及び79のビデオブロック間の交互の入れ替わりを許容する。
ビデオ復号器50は、復号順序を定義するためにビデオユニット79のビデオブロックの動きベクトルに対するビデオユニット78のビデオブロックの動きベクトルの動きベクトル統計を利用し得る。この場合において、ビデオユニット78と79との間の相対的な動きは復号のために類似のデータを使用し得るそれらのビデオブロックを推定するために使用され得る。例示としてビデオユニット78及び79において示されたボールド体のブロックは全て共通の組の予測データに依存し得る。しかしながら、示されているようにビデオユニット79のボールド体のブロックはビデオユニット78のボールド体のブロックに対する動きを有する。ビデオユニット79のものに対するビデオユニット78のビデオブロックの平均的な動きは、予期された動きを定量化もしくは推定し、それによってビデオ復号器が、ビデオユニット78及びビデオユニット79のビデオブロック間で交互に入れ替わる交互のビデオブロック復号順序を定義することを可能にするために使用され得る。このように、復号のために類似のデータに依存するビデオユニット78及び79のそれらのビデオブロックは時間においてより密接に復号され得、それによってキャッシュ70におけるキャッシュヒットの可能性を最大化することを促進し、それによって復号処理の間キャッシュ70への重複のメモリロードを低減する。
図8Aは、ビデオユニットのIBPBPパターンを例示する概念図である。IBPBPフォーマットにおいて、ビデオフレームのシーケンスは、第1のBフレームが続き、第1のPフレームが続き、第2のBフレームが続き、第2のPフレームが続く、Iフレームを含む。この場合において、第1のBフレーム及び第2のPフレームは相互依存であり得ない。従ってビデオ復号器50は第1のBフレーム及び第2のPフレームを並行で共に復号するための候補として識別もしくは定義し得る。この場合においてビデオ復号器50はビデオフレームをシーケンシャルに処理し得るが、しかし第1のBフレームのビデオブロックと第2のPフレームのビデオブロックとの間で交互に入れ替わって第1のBフレーム及び第2のPフレームを並行に復号し得る。
図8BはビデオユニットのIBBPBBPパターンを例示する概念図である。IBBPBBPフォーマットにおいてビデオフレームのシーケンスは第1のBフレームが続き、第2のBフレームが続き、第1のPフレームが続き、第3のBフレームが続き、第4のBフレームが続き、第2のPフレームが続くIフレームを含む。この場合において、第1のBフレーム、第2のBフレーム、及び第2のPフレームは相互依存であり得ない。従ってビデオ復号器50は、第1のBフレーム、第2のBフレーム、及び第2のPフレームを並行で共に復号するための候補として識別もしくは定義し得る。この場合において、ビデオ復号器50は一般的にビデオフレームをシーケンシャルに処理し得るが、しかし第1のBフレーム、第2のBフレーム、及び第2のPフレームのビデオブロック間で交互に入れ替わって第1のBフレーム、第2のBフレーム、及び第2のPフレームを並行に復号し得る。
図9は、並行に復号され得るビデオブロックを有するフレームを例示する概念図である。図9において示されるシナリオは、ビデオフレームがIBBPBBPフォーマットに従う図8Bのものに類似し得る。このIBBPBBPフォーマットにおけるフレームは、P/Iフレーム0、Bフレーム1、Bフレーム2、Pフレーム3、Bフレーム4、Bフレーム5、及びPフレーム6として分類され得る。これらのフレームのいくつかのみが図9において例示される。
図9は、復号の間の参照フレームの読み込みが異なるフレーム内のマクロブロック用の同じエリアによってもたらされる1つの例を例示する。時間的及び空間的に近接したマクロブロックにおける動きベクトル間の相互関係に左右されて、連続して処理されたマクロブロックの読み込みエリアの類似性は変わり得る。図9において、MBはマクロブロックを表し、記号は行及び列の位置(行はkであり、列はnであり、Dvlはフレーム間の垂直移動であり、Dhlはフレーム間の水平移動である)を示す。Dvl及びDhlは、本明細書で説明されるグローバル動きベクトルのような統計メトリックに基づき得る。
図9で示されているように、Bフレーム1、Bフレーム2、及びPフレーム6は全てPフレーム3及びI/Pフレーム0からのデータに依存し得る。図9において示されているBフレーム1、Bフレーム2、及びPフレーム6の例示されたビデオブロックはそれぞれ、例えば、Pフレーム3及びI/Pフレーム0のエリア81及び82によってそれぞれ定義されるデータのサブセットに依存し得る。この場合において、エリア81及び82におけるデータが後の復号用にキャッシュ70をリロードすることに先立ってキャッシュ70において十分に活用され得るように、Bフレーム1、Bフレーム2及びPフレーム6のビデオブロックを並行に復号することは有利であり得る。
従ってビデオ復号器50は、異なるフレームのビデオブロック間で交互に入れ替わる、Bフレーム1、Bフレーム2、及びPフレーム6のビデオブロックのための復号順序を定義し得る。例えばビデオ復号器50は、Bフレーム1からのブロックを復号することができ、その後、Bフレーム2からのブロックが続き、Pフレーム6からのブロックが続き、Bフレーム1からの別のブロックが続き、Bフレーム2からの別のブロックが続き、Pフレーム6からの別のブロックが続き、その後同じように続く。本明細書で説明されるように、異なるフレームのグローバル動き、もしくは動きベクトルに基づく1つ又は複数の統計メトリックによって定義されるそのようなフレームの相対的な動きは、ビデオブロック間の交互の入れ替わりが生じるそれぞれのフレーム内の空間的配置を定義するために使用され得る。つまり、ビデオブロック間での交互の入れ替わりは同じ場所に配置されたビデオブロックに関しては生じ得ないが、しかし異なるフレーム間の平均的な動きの推定された量の分だけオフセットされたそのようなフレームのビデオブロックに関しては生じ得る。ビデオブロックの時間的再順序付けは、キャッシュ70の使用をさらに向上させるためにそれぞれのフレーム内のビデオブロックの空間的再順序付けと結合され得る。
図10Aは、入力ストリーム内で定義されるようなディスプレイ順序におけるビデオユニットを例示する概念図である。この例において入力ストリームは、Pフレームが続き、bフレームが続き、bフレームが続き、Pフレームが続き、Bフレームが続き、bフレームが続き、bフレームが続き、Pフレームが続き、bフレームが続き、Pフレームが続くIフレームを備える。Bフレームは、それ自体が予測データとして使用される双予測フレームを備え得、それに対してbフレームは予測データとして使用され得ない双予測フレームを備え得る。数表示91、92、93、及び94によって定義されるフレームの組は同時に復号されることができる組であり得る。組91はいずれの相互依存性も有しないことがある。同様に、組92、組93、及び組94もまた、それぞれの所与の組内でいずれの相互依存性も有しないことがある。従ってこれらの組91、92、93、及び94のそれぞれは復号器50によって共に復号可能であるとして識別され得る。
図10Bはディスプレイ順序とは異なる復号順序に従ったビデオユニットの復号を例示する概念図である。この場合において、復号器50はPフレーム復号が続く、Iフレーム復号を実行し得る。復号器50はその後、例えば図10Aにおける組91によって定義される、bフレーム1、bフレーム2、及びPフレームのために並行な復号を実行し得る。この場合において復号器50は、本明細書で説明されるようにより効率的にキャッシュ70を使用するために、組91にける異なるフレームのビデオブロック間で交互し得る。
次に復号器50は組92のPフレームの復号と並行にBフレーム復号を実行し得る。次に復号器50は組93のbフレーム復号と並行にbフレーム復号を実行し得る。最後に復号器50は、組94のPフレーム復号と並行にbフレーム復号を実行し得る。並行に復号を実行する際に復号器50は、メモリのリロードを必要とすることなくキャッシュ70におけるデータの使用を高めるビデオブロックの時間的再順序付けに従って異なるフレームのビデオブロック間で交互し得る。同時に、それぞれ個別のフレームのためのビデオブロックの空間的再順序付けもまた、キャッシュヒットの数をさら向上させるためにビデオ復号器50によって実行され得る。
図11は本開示に従った復号技法を例示するフロー図である。図5において示されているように、ビデオ復号器50は、ディスプレイ順序を定義するビデオユニットのシーケンスを受信する(101)。ビデオ復号器50は、相互依存であり得ないビデオユニットのサブセットを識別するために前処理を実行し得る(102)。例えば、エントロピー復号ユニット52もしくは予測ユニット54もしくは場合により別個の前処理ユニット(示されていない)が、相互依存であり得ないビデオユニットのサブセットを識別するためにビデオシーケンスの前処理を実行し得る。さらにこの前処理の一部として、本明細書で説明されるもののような統計が、ビデオブロックの復号順序を定義する際の使用のために集められ得る。例えば言及されたように、フレームのシーケンスに渡って定義されるグローバル動きは、その後望ましい復号順序を定義することを促進するために使用され得る、そのフレームの組におけるグローバル動きを概算もしくは推定するために使用され得る。ビデオ復号器50は、いくつかのフレームは復号することに先立って前処理され得、そしてフレームの組はその後本開示に従って並行に復号され得るので、前処理及び復号する段階の間入力ビデオストリームを格納するための追加のフレームバッファを含み得る。
予測ユニット54は、メモリ62から予測ユニット54に関連するキャッシュ70へ予測データをロードする(103)。予測ユニット54(もしくは場合により別個の前処理ユニット)は、実質的にキャッシュヒットを最大化するビデオブロックの復号順序を定義し得る(104)。この場合において復号順序は異なるフレームのビデオブロック間で交互に入れ替わり得(時間的再順序付け)、そのラスタスキャン順序とは異なる所与のフレーム内の順序にも従い得る(空間的再順序付け)。予測ユニット54は定義された復号順序に基づいてビデオブロックを復号する(105)。
本開示の技法は、ワイアレスハンドセット、及び集積回路(IC)もしくは1組のICs(つまり、チップセット)を含む幅広い種類のデバイスもしくは装置において実行され得る。いずれのコンポーネント、モジュール、もしくはユニットも、機能の態様を強調するように提供されて説明されてきており、必ずしも異なるハードウェアユニットによる具現化を要求しない。
従って本明細書で説明される技法は、ハードウェア、ソフトウェア、ファームウェア、もしくは任意のそれらの組み合わせにおいて実行され得る。ハードウェアにおいて実行される場合、モジュール、ユニット、もしくはコンポーネントとして説明されるいずれの特徴も集積論理デバイスにおいて共に、もしくはディスクリートであるが相互動作可能な論理デバイスとして別個に実装され得る。ソフトウェアにおいて実行される場合その技法は、少なくとも部分的には、プロセッサ内で実行される時に1つ又は複数の上記で説明された方法を実行する命令を備えるコンピュータ読み取り可能媒体によって具現化され得る。コンピュータ読み取り可能媒体はコンピュータ読み取り可能記憶媒体を備え得、包装媒体を含み得るコンピュータプログラム製品の一部を形成し得る。コンピュータ読み取り可能記憶媒体は、同期ダイナミックランダムアクセスメモリ(SDRAM)のようなランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、非揮発性ランダムアクセスメモリ(NVRAM)、電気消去可能なプログラマブル読み取り専用メモリ(EEPROM)、FLASHメモリ、磁気もしくは光学データ記憶媒体などを備え得る。技法は加えて、もしくは代わりとして、少なくとも部分的には、命令もしくはデータ構造の形態でコードを搬送もしくは通信し、コンピュータによってアクセス、読み込み、もしくは実行の全て又はいずれかをされ得るコンピュータ読み取り可能通信媒体によって具現化され得る。
コードは、1つ又は複数のデジタル信号プロセッサ(DSPs)、汎用マイクロプロセッサ、特定用途向け集積回路(ASICs)、フィールドプログラマブル論理アレイ(FPGAs)、もしくは他の均等の集積もしくはディスクリート論理回路のような1つ又は複数のプロセッサによって実行され得る。従って、本明細書で使用されているように、「プロセッサ」という用語は任意の前述の構造、もしくは本明細書で説明される技法の実行に適当な任意の他の構造を表し得る。加えていくつかの態様において本明細書で説明される機能は、符号化及び復号のために構成される専用のソフトウェアモジュールもしくはハードウェアモジュール内で提供され得る、もしくは結合されたビデオコーデックの中に組み込まれ得る。また技法は1つ又は複数の回路もしくは論理要素の中で十分に実行され得るだろう。
本開示の様々な態様が説明されてきた。これらの及び他の態様は以下の特許請求の範囲の範囲内である。
図4はより詳細に予測ユニット54及びメモリ62を例示するブロック図である。示されているように予測ユニット54は、外部メモリ72と比較して小さく、速いメモリを備え得るキャッシュを含む。予測ユニットはメモリフェッチコマンドをメモリコントローラ71に出すことができ、それはデータが外部メモリ72から予測ユニット54の内部キャッシュ70へロードされることを引き起こす。メモリ72は、プロセッサの外に位置する点で外部であり得、そのプロセッサはその他の点では復号器60を形成する。反対に、キャッシュ70は復号器60を形成するプロセッサに対する内部メモリを備え得る。プロセッサは図3で示される異なるユニット及びモジュールの様々な機能を実行するようにプログラムもしくは構成され得る。
図5は、ビデオブロックのラスタスキャン順序とは異なる復号順序で復号され得る、ビデオフレームのようなビデオブロック77のビデオユニットを例示する概念図である。このシナリオは、ビデオユニット77のビデオブロックの復号順序の空間的な再順序付けとして表され得る。図5において、ビデオユニット77のビデオブロックはラスタスキャン順序で1から64まで分類される。しかしながら本開示に従って、ビデオユニット77のビデオブロックの復号順序はこのラスタスキャン順序とは異なり得る。特に、全ての第1の行のビデオブロック(VB1からVB8)を復号することに先立って1つ又は複数の第2の行のビデオブロック(VB9からVB16)を復号することは有利であり得る。例えばVB1及びVB10は、VB1及びVB10の空間的近接性のためにVB1及びVB9よりも、同じ予測データに依存する可能性がよりあり得る。この理由のために、VB8を復号することに先立ってVB10を復号することは、キャッシュ70の使用の見地からより有利であり得る。復号は最初に実行された符号化に左右されるので、ビデオ復号器60は復号順序を定義するために図5において表示されるビデオブロックの動きベクトルの動きベクトル統計を利用し得る。動きベクトルの全体的な統計(例えば、ビデオユニット77の平均的な動き)は、キャッシュヒットを高め、キャッシュ70内でデータをロード及び置き換える必要性を低減するためにビデオ復号器60がキャッシュ70にロードされた1組のデータに対して望ましい復号順序を推定することを可能にし得る。
時間的再順序付けの場合において、ビデオ復号器60は復号処理においてビデオユニット78及び79のビデオブロック間で交互に入れ替わり得る。図7において、ビデオユニット78のビデオブロックはラスタスキャン順序で1から64まで分類され、ビデオユニット79のビデオブロックも同様にラスタスキャン順序で1から64まで分類される。しかしながら本開示に従って、ビデオユニット78及び79のビデオブロックの復号順序は、ビデオユニット78及び79のビデオブロックが並行で共に復号され得る限り、ラスタスキャン順序とは異なり得る。特に、ビデオユニット78の全てのビデオブロックを復号することに先立ってビデオユニット79の1つ又は複数のビデオブロックを復号することは有利であり得る。
ビデオ復号器60は、復号順序を定義するためにビデオユニット79のビデオブロックの動きベクトルに対するビデオユニット78のビデオブロックの動きベクトルの動きベクトル統計を利用し得る。この場合において、ビデオユニット78と79との間の相対的な動きは復号のために類似のデータを使用し得るそれらのビデオブロックを推定するために使用され得る。例示としてビデオユニット78及び79において示されたボールド体のブロックは全て共通の組の予測データに依存し得る。しかしながら、示されているようにビデオユニット79のボールド体のブロックはビデオユニット78のボールド体のブロックに対する動きを有する。ビデオユニット79のものに対するビデオユニット78のビデオブロックの平均的な動きは、予期された動きを定量化もしくは推定し、それによってビデオ復号器が、ビデオユニット78及びビデオユニット79のビデオブロック間で交互に入れ替わる交互のビデオブロック復号順序を定義することを可能にするために使用され得る。このように、復号のために類似のデータに依存するビデオユニット78及び79のそれらのビデオブロックは時間においてより密接に復号され得、それによってキャッシュ70におけるキャッシュヒットの可能性を最大化することを促進し、それによって復号処理の間キャッシュ70への重複のメモリロードを低減する。
図8Aは、ビデオユニットのIBPBPパターンを例示する概念図である。IBPBPフォーマットにおいて、ビデオフレームのシーケンスは、第1のBフレームが続き、第1のPフレームが続き、第2のBフレームが続き、第2のPフレームが続く、Iフレームを含む。この場合において、第1のBフレーム及び第2のPフレームは相互依存であり得ない。従ってビデオ復号器60は第1のBフレーム及び第2のPフレームを並行で共に復号するための候補として識別もしくは定義し得る。この場合においてビデオ復号器60はビデオフレームをシーケンシャルに処理し得るが、しかし第1のBフレームのビデオブロックと第2のPフレームのビデオブロックとの間で交互に入れ替わって第1のBフレーム及び第2のPフレームを並行に復号し得る。
図8BはビデオユニットのIBBPBBPパターンを例示する概念図である。IBBPBBPフォーマットにおいてビデオフレームのシーケンスは第1のBフレームが続き、第2のBフレームが続き、第1のPフレームが続き、第3のBフレームが続き、第4のBフレームが続き、第2のPフレームが続くIフレームを含む。この場合において、第1のBフレーム、第2のBフレーム、及び第2のPフレームは相互依存であり得ない。従ってビデオ復号器60は、第1のBフレーム、第2のBフレーム、及び第2のPフレームを並行で共に復号するための候補として識別もしくは定義し得る。この場合において、ビデオ復号器60は一般的にビデオフレームをシーケンシャルに処理し得るが、しかし第1のBフレーム、第2のBフレーム、及び第2のPフレームのビデオブロック間で交互に入れ替わって第1のBフレーム、第2のBフレーム、及び第2のPフレームを並行に復号し得る。
従ってビデオ復号器60は、異なるフレームのビデオブロック間で交互に入れ替わる、Bフレーム1、Bフレーム2、及びPフレーム6のビデオブロックのための復号順序を定義し得る。例えばビデオ復号器60は、Bフレーム1からのブロックを復号することができ、その後、Bフレーム2からのブロックが続き、Pフレーム6からのブロックが続き、Bフレーム1からの別のブロックが続き、Bフレーム2からの別のブロックが続き、Pフレーム6からの別のブロックが続き、その後同じように続く。本明細書で説明されるように、異なるフレームのグローバル動き、もしくは動きベクトルに基づく1つ又は複数の統計メトリックによって定義されるそのようなフレームの相対的な動きは、ビデオブロック間の交互の入れ替わりが生じるそれぞれのフレーム内の空間的配置を定義するために使用され得る。つまり、ビデオブロック間での交互の入れ替わりは同じ場所に配置されたビデオブロックに関しては生じ得ないが、しかし異なるフレーム間の平均的な動きの推定された量の分だけオフセットされたそのようなフレームのビデオブロックに関しては生じ得る。ビデオブロックの時間的再順序付けは、キャッシュ70の使用をさらに向上させるためにそれぞれのフレーム内のビデオブロックの空間的再順序付けと結合され得る。
図10Aは、入力ストリーム内で定義されるようなディスプレイ順序におけるビデオユニットを例示する概念図である。この例において入力ストリームは、Pフレームが続き、bフレームが続き、bフレームが続き、Pフレームが続き、Bフレームが続き、bフレームが続き、bフレームが続き、Pフレームが続き、bフレームが続き、Pフレームが続くIフレームを備える。Bフレームは、それ自体が予測データとして使用される双予測フレームを備え得、それに対してbフレームは予測データとして使用され得ない双予測フレームを備え得る。数表示91、92、93、及び94によって定義されるフレームの組は同時に復号されることができる組であり得る。組91はいずれの相互依存性も有しないことがある。同様に、組92、組93、及び組94もまた、それぞれの所与の組内でいずれの相互依存性も有しないことがある。従ってこれらの組91、92、93、及び94のそれぞれは復号器60によって共に復号可能であるとして識別され得る。
図10Bはディスプレイ順序とは異なる復号順序に従ったビデオユニットの復号を例示する概念図である。この場合において、復号器60はPフレーム復号が続く、Iフレーム復号を実行し得る。復号器60はその後、例えば図10Aにおける組91によって定義される、bフレーム1、bフレーム2、及びPフレームのために並行な復号を実行し得る。
この場合において復号器60は、本明細書で説明されるようにより効率的にキャッシュ70を使用するために、組91にける異なるフレームのビデオブロック間で交互し得る。
次に復号器60は組92のPフレームの復号と並行にBフレーム復号を実行し得る。次に復号器60は組93のbフレーム復号と並行にbフレーム復号を実行し得る。最後に復号器60は、組94のPフレーム復号と並行にbフレーム復号を実行し得る。並行に復号を実行する際に復号器60は、メモリのリロードを必要とすることなくキャッシュ70におけるデータの使用を高めるビデオブロックの時間的再順序付けに従って異なるフレームのビデオブロック間で交互し得る。同時に、それぞれ個別のフレームのためのビデオブロックの空間的再順序付けもまた、キャッシュヒットの数をさら向上させるためにビデオ復号器60によって実行され得る。
図11は本開示に従った復号技法を例示するフロー図である。図5において示されているように、ビデオ復号器60は、ディスプレイ順序を定義するビデオユニットのシーケンスを受信する(101)。ビデオ復号器60は、相互依存であり得ないビデオユニットのサブセットを識別するために前処理を実行し得る(102)。例えば、エントロピー復号ユニット52もしくは予測ユニット54もしくは場合により別個の前処理ユニット(示されていない)が、相互依存であり得ないビデオユニットのサブセットを識別するためにビデオシーケンスの前処理を実行し得る。さらにこの前処理の一部として、本明細書で説明されるもののような統計が、ビデオブロックの復号順序を定義する際の使用のために集められ得る。例えば言及されたように、フレームのシーケンスに渡って定義されるグローバル動きは、その後望ましい復号順序を定義することを促進するために使用され得る、そのフレームの組におけるグローバル動きを概算もしくは推定するために使用され得る。ビデオ復号器60は、いくつかのフレームは復号することに先立って前処理され得、そしてフレームの組はその後本開示に従って並行に復号され得るので、前処理及び復号する段階の間入力ビデオストリームを格納するための追加のフレームバッファを含み得る。
本開示の様々な態様が説明されてきた。これらの及び他の態様は以下の特許請求の範囲の範囲内である。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[C1]
ビデオデータを復号する方法であって、前記方法は、
復号器内でビデオユニットのシーケンスを受信することと、ここにおいて前記シーケンスは前記ビデオユニットのディスプレイ順序を定義し、
前記復号器を介して、相互依存であり得ない前記ビデオユニットのサブセットを識別することと、
メモリからキャッシュへ予測データをロードすることと、ここにおいて前記キャッシュが前記復号器と関連し、
少なくとも部分的には前記キャッシュ内の前記予測データに基づいて符号化されたビデオユニットの前記サブセットのビデオブロックを復号することと、ここにおいて前記ビデオブロックを復号することは、第2のビデオユニットの少なくともいくつかのビデオブロックが第1のビデオユニットの少なくともいくつかのビデオブロックの前に復号される復号順序を定義することを含み、ここにおいて前記第2のビデオユニットは前記ディスプレイ順序において前記第1のビデオユニットの後に生じる、
を備える方法。
[C2]
符号化されたビデオユニットの前記シーケンスが、
ビデオフレームのシーケンスと、
ビデオフレームの一部のシーケンスと、
ビデオフレームのスライスのシーケンスと
の内の少なくとも1つを備えるC1に記載の方法。
[C3]
前記復号順序は、前記第1の符号化されたビデオユニットの1つ又は複数のビデオブロックと前記第2のビデオユニットの1つ又は複数のビデオブロックとの間で交互に入れ替わるC1に記載の方法。
[C4]
前記復号順序は、前記キャッシュ内にロードされた前記予測データが前記キャッシュをリロードする必要なく、ビデオユニットの前記サブセットの前記ビデオブロックを復号する際に使用される可能性を実質的に向上させるために定義されるC1に記載の方法。
[C5]
前記復号順序が前記第1のビデオユニットの前記ビデオブロックが前記第1のビデオユニットのラスタスキャン順序と一致しない順序で復号され、前記第2のビデオユニットの前記ビデオブロックが前記第2のビデオユニットのラスタスキャン順序と一致しない順序で復号されるように定義されるC1に記載の方法。
[C6]
前記第1のビデオユニットの第2の行の少なくとも1つのビデオブロックが前記第1のビデオユニットの第1の行の少なくとも1つのビデオブロックに先立って復号される、ここにおいて前記第2の行が前記第1の行よりも下であるC5に記載の方法。
[C7]
ビデオユニットの前記シーケンスにおけるビデオブロックと関連する統計メトリックを定義することと、
少なくとも部分的には前記統計メトリックに基づいて前記復号順序を定義することと、
をさらに備えるC1に記載の方法。
[C8]
前記統計メトリックはビデオユニットの前記シーケンスの少なくとも一部に渡って平均的な動きを定量化するグローバル動きメトリックを備えるC7に記載の方法。
[C9]
前記第1のビデオユニットと前記第2のビデオユニットとの間のビデオブロックの平均的な動きを定量化する平均動きメトリックを決定することと、
少なくとも部分的には前記平均動きメトリックに基づいて前記復号順序を定義することと、
をさらに備えるC1に記載の方法。
[C10]
ビデオユニットの前記シーケンスは、第1のBフレームが続き、第1のPフレームが続き、第2のBフレームが続き、第2のPフレームが続くIフレームを含むIBPBPフォーマットに従う、ここにおいて前記ビデオユニットの前記サブセットが前記第1のBフレーム及び前記第2のPフレームから成るC1に記載の方法。
[C11]
ビデオユニットの前記シーケンスは、第1のBフレームが続き、第2のBフレームが続き、第1のPフレームが続き、第3のBフレームが続き、第4のBフレームが続き、第2のPフレームが続くIフレームを含むIBBPBBPフォーマットに従う、ここにおいて前記ビデオユニットの前記サブセットが前記第1のBフレーム、前記第2のBフレーム、及び前記第2のPフレームから成るC1に記載の方法。
[C12]
ビデオデータを復号する装置であって、前記装置がビデオ復号器及び関連するキャッシュを備え、前記ビデオ復号器が、
ビデオユニットのシーケンスを受信するように、ここにおいて前記シーケンスが前記ビデオユニットのディスプレイ順序を定義し、
相互依存であり得ない前記ビデオユニットのサブセットを識別するように、
メモリから前記キャッシュへ予測データをロードするように、
少なくとも部分的には前記キャッシュ内の前記予測データに基づいて符号化されたビデオユニットの前記サブセットのビデオブロックを復号するように、ここにおいて前記ビデオブロックを復号する際に前記復号器が、第2のビデオユニットの少なくともいくつかのビデオブロックが第1のビデオユニットの少なくともいくつかのビデオブロックの前に復号される復号順序を定義し、ここにおいて前記第2のビデオユニットが前記ディスプレイ順序において前記第1のビデオユニットの後に生じる、
構成されている装置。
[C13]
符号化されたビデオユニットの前記シーケンスは、
ビデオフレームのシーケンスと、
ビデオフレームの一部のシーケンスと、
ビデオフレームのスライスのシーケンスと、
の内の少なくとも1つを備えるC12に記載の装置。
[C14]
前記復号順序は、前記第1の符号化されたビデオユニットの1つ又は複数のビデオブロックと前記第2のビデオユニットの1つ又は複数のビデオブロックとの間で交互に入れ替わるC12に記載の装置。
[C15]
前記復号順序は、前記キャッシュ内にロードされた前記予測データが前記キャッシュをリロードする必要なく前記ビデオユニットの前記サブセットの前記ビデオブロックを復号する際に使用される可能性を実質的に向上させるために定義されるC12に記載の装置。
[C16]
前記復号順序は、前記第1のビデオユニットの前記ビデオブロックが前記第1のビデオユニットのラスタスキャン順序と一致しない順序で復号され、前記第2のビデオユニットの前記ビデオブロックが前記第2のビデオユニットのラスタスキャンと一致しない順序で復号されるように定義されるC12に記載の装置。
[C17]
前記第1のビデオユニットの第2の行の少なくとも1つのビデオブロックは、前記第1のビデオユニットの第1の行の少なくとも1つのビデオブロックに先立って復号される、ここにおいて前記第2の行が前記第1の行の下にあるC16に記載の装置。
[C18]
前記復号器が、
ビデオユニットの前記シーケンス内のビデオブロックと関連する統計メトリックを定義するように、
少なくとも部分的には前記統計メトリックに基づいて前記復号順序を定義するように
さらに構成されるC12に記載の装置。
[C19]
前記統計メトリックはビデオユニットの前記シーケンスの少なくとも一部に渡って平均的な動きを定量化するグローバル動きメトリックを備えるC18に記載の装置。
[C20]
前記復号器は
前記第1のビデオユニットと前記第2のビデオユニットの間のビデオブロックの平均的な動きを定量化する平均動きメトリックを決定するように、
少なくとも部分的には前記平均動きメトリックに基づいて前記復号順序を定義するように、
さらに構成されるC12に記載の装置。
[C21]
ビデオユニットの前記シーケンスは、第1のBフレームが続き、第1のPフレームが続き、第2のBフレームが続き、第2のPフレームが続くIフレームを含むIBPBPフォーマットに従う、ここにおいて前記ビデオユニットの前記サブセットが前記第1のBフレーム及び前記第2のPフレームから成るC12に記載の装置。
[C22]
ビデオユニットの前記シーケンスは、第1のBフレームが続き、第2のBフレームが続き、第1のPフレームが続き、第3のBフレームが続き、第4のBフレームが続き、第2のPフレームが続くIフレームを含むIBBPBBPフォーマットに従う、ここにおいて前記ビデオユニットの前記サブセットが前記第1のBフレーム、前記第2のBフレーム、及び前記第2のPフレームから成るC12に記載の装置。
[C23]
前記ビデオ復号器は集積回路を備えるC12に記載の装置。
[C24]
前記ビデオ復号器はマイクロプロセッサを備える、C12に記載の装置。
[C25]
前記装置は前記ビデオ復号器を含むワイアレス通信デバイスを備えるC12に記載の装置。
[C26]
ビデオデータを復号するデバイスであって、前記デバイスが、
ビデオユニットのシーケンスを受信するための手段と、ここにおいて前記シーケンスが前記ビデオユニットのディスプレイ順序を定義し、
相互依存であり得ない前記ビデオユニットのサブセットを識別するための手段と、
メモリからキャッシュへ予測データをロードするための手段と、
少なくとも部分的には前記キャッシュ内の前記予測データに基づいて符号化されたビデオユニットの前記サブセットのビデオブロックを復号するための手段と、ここにおいて前記ビデオブロックを復号するための前記手段は第2のビデオユニットの少なくともいくつかのビデオブロックが第1のビデオユニットの少なくともいくつかのビデオブロックの前に復号される復号順序を定義するための手段を含み、ここにおいて前記第2のビデオユニットが前記ディスプレイ順序において前記第1のビデオユニットの後に生じる、
を備えるデバイス。
[C27]
符号化されたビデオユニットの前記シーケンスは、
ビデオフレームのシーケンスと、
ビデオフレームの一部のシーケンスと、
ビデオフレームのスライスのシーケンスと、
の内の少なくとも1つを備えるC26に記載のデバイス。
[C28]
前記復号順序は、前記第1の符号化されたビデオユニットの1つ又は複数のビデオブロックと前記第2のビデオユニットの1つ又は複数のビデオブロックとの間で交互に入れ替わるC26に記載のデバイス。
[C29]
前記復号順序は、前記キャッシュ内にロードされた前記予測データが前記キャッシュをリロードする必要なくビデオユニットの前記サブセットの前記ビデオブロックを復号する際に使用される可能性を実質的に向上させるために定義されるC26に記載のデバイス。
[C30]
前記復号順序は、前記第1のビデオユニットの前記ビデオブロックが前記第1のビデオユニットのラスタスキャン順序と一致しない順序で復号され、前記第2のビデオユニットの前記ビデオブロックが前記第2のビデオユニットのラスタスキャン順序と一致しない順序で復号されるように定義されるC26に記載のデバイス。
[C31]
前記第1のビデオユニットの第2の行の少なくとも1つのビデオユニットは、前記第1のビデオユニットの第1の行の少なくとも1つのビデオブロックに先立って復号される、ここにおいて前記第2の行が前記第1の行の下にあるC30に記載のデバイス。
[C32]
ビデオユニットの前記シーケンスにおけるビデオブロックと関連する統計メトリックを定義するための手段と、
少なくとも部分的には前記統計メトリックに基づいて前記復号順序を定義するための手段と、
をさらに備えるC26に記載のデバイス。
[C33]
前記統計メトリックは、ビデオユニットの前記シーケンスの少なくとも一部に渡って平均的な動きを定量化するグローバル動きメトリックを備えるC32に記載のデバイス。
[C34]
前記第1のビデオユニットと前記第2のビデオユニットとの間のビデオブロックの平均的な動きを定量化する平均動きメトリックを決定するために手段と、
少なくとも部分的には前記平均動きメトリックに基づいて前記復号順序を定義するための手段と、
をさらに備えるC26に記載のデバイス。
[C35]
ビデオユニットの前記シーケンスは、第1のBフレームが続き、第1のPフレームが続き、第2のBフレームが続き、第2のPフレームが続くIフレームを含むIBPBPフォーマットに従う、ここにおいて前記ビデオユニットの前記サブセットが前記第1のBフレーム及び前記第2のPフレームから成るC26に記載のデバイス。
[C36]
ビデオユニットの前記シーケンスは、第1のBフレームが続き、第2のBフレームが続き、第1のPフレームが続き、第3のBフレームが続き、第4のBフレームが続き、第2のPフレームが続くIフレームを含むIBBPBBPフォーマットに従う、ここにおいて前記ビデオユニットの前記サブセットが前記第1のBフレーム、前記第2のBフレーム及び前記第2のPフレームから成るC26に記載のデバイス。
[C37]
プロセッサ内で実行されると前記プロセッサに、
ビデオユニットのシーケンスを受信することと、ここにおいて前記シーケンスが前記ビデオユニットのディスプレイ順序を定義し、
相互依存であり得ない前記ビデオユニットのサブセットを識別することと、
メモリからキャッシュへ予測データをロードすることと、
少なくとも部分的には前記キャッシュ内の前記予測データに基づいて符号化されたビデオユニットの前記サブセットのビデオブロックを復号することと、を行わせる命令を備えるコンピュータ読み取り可能記憶媒体であって、
ここにおいて前記ビデオブロックを復号する際に前記命令がプロセッサに、第2のビデオユニットの少なくともいくつかのビデオブロックが第1のビデオユニットの少なくともいくつかのビデオブロックの前に復号される復号順序を定義することを行わせ、ここにおいて前記第2のビデオユニットが前記ディスプレイ順序において前記第1のビデオユニットの後に生じるコンピュータ読み取り可能記憶媒体。
[C38]
符号化されたビデオユニットの前記シーケンスは、
ビデオフレームのシーケンスと、
ビデオフレームの一部のシーケンスと、
ビデオフレームのスライスのシーケンスと、
の内の少なくとも1つを備えるC37に記載のコンピュータ読み取り可能記憶媒体。
[C39]
前記復号順序は、前記第1の符号化されたビデオユニットの1つ又は複数のビデオブロックと前記第2のビデオユニットの1つ又は複数のビデオブロックとの間で交互に入れ替わるC37に記載のコンピュータ読み取り可能記憶媒体。
[C40]
前記復号順序は、前記キャッシュ内にロードされた前記予測データが前記キャッシュをリロードする必要ななくビデオユニットの前記サブセットの前記ビデオブロックを復号する際に使用される可能性を実質的に向上させるために定義されるC37に記載のコンピュータ読み取り可能記憶媒体。
[C41]
前記復号順序は、前記第1のビデオユニットの前記ビデオブロックが前記第1のビデオユニットのラスタスキャン順序と一致しない順序で復号され、前記第2のビデオユニットの前記ビデオブロックが前記第2のビデオユニットのラスタスキャン順序と一致しない順序で復号されるように定義されるC37に記載のコンピュータ読み取り可能記憶媒体。
[C42]
前記第1のビデオユニットの第2の行の少なくとも1つのビデオブロックは前記第1のビデオユニットの第1の行の少なくとも1つのビデオブロックに先立って復号される、ここにおいて前記第2の行が前記第1の行の下にあるC41に記載のコンピュータ読み取り可能記憶媒体。
[C43]
ビデオユニットの前記シーケンス内のビデオブロックと関連する統計メトリックを定義することと、
少なくとも部分的には前記統計メトリックに基づいて前記復号順序を定義することと、を前記プロセッサに行わせる命令をさらに備えるC37に記載のコンピュータ読み取り可能記憶媒体。
[C44]
前記統計メトリックは、ビデオユニットの前記シーケンスの少なくとも一部に渡って平均的な動きを定量化するグローバル動きメトリックを備えるC43に記載のコンピュータ読み取り可能記憶媒体。
[C45]
前記第1のビデオユニットと前記第2のビデオユニットとの間のビデオブロックの平均的な動きを定量化する平均動きメトリックを決定することと、
少なくとも部分的には前記平均動きメトリックに基づいて前記復号順序を定義することと、
を前記プロセッサに行わせる命令をさらに備えるC37に記載のコンピュータ読み取り可能記憶媒体。
[C46]
ビデオユニットの前記シーケンスは、第1のBフレームが続き、第1のPフレームが続き、第2のBフレームが続き、第2のPフレームが続くIフレームを含むIBPBPフォーマットに従う、ここにおいて前記ビデオユニットの前記サブセットが前記第1のBフレーム及び前記第2のPフレームから成るC37に記載のコンピュータ読み取り可能記憶媒体。
[C47]
ビデオユニットの前記シーケンスは、第1のBフレームが続き、第2のBフレームが続き、第1のPフレームが続き、第3のBフレームが続き、第4のBフレームが続き、第2のPフレームが続くIフレームを含むIBBPBBPフォーマットに従う、ここにおいて前記ビデオユニットの前記サブセットが前記第1のBフレーム、前記第2のBフレーム、及び前記第2のPフレームから成るC37に記載のコンピュータ読み取り可能記憶媒体。

Claims (47)

  1. ビデオデータを復号する方法であって、前記方法は、
    復号器内でビデオユニットのシーケンスを受信することと、ここにおいて前記シーケンスは前記ビデオユニットのディスプレイ順序を定義し、
    前記復号器を介して、相互依存であり得ない前記ビデオユニットのサブセットを識別することと、
    メモリからキャッシュへ予測データをロードすることと、ここにおいて前記キャッシュが前記復号器と関連し、
    少なくとも部分的には前記キャッシュ内の前記予測データに基づいて符号化されたビデオユニットの前記サブセットのビデオブロックを復号することと、ここにおいて前記ビデオブロックを復号することは、第2のビデオユニットの少なくともいくつかのビデオブロックが第1のビデオユニットの少なくともいくつかのビデオブロックの前に復号される復号順序を定義することを含み、ここにおいて前記第2のビデオユニットは前記ディスプレイ順序において前記第1のビデオユニットの後に生じる、
    を備える方法。
  2. 符号化されたビデオユニットの前記シーケンスが、
    ビデオフレームのシーケンスと、
    ビデオフレームの一部のシーケンスと、
    ビデオフレームのスライスのシーケンスと
    の内の少なくとも1つを備える請求項1に記載の方法。
  3. 前記復号順序は、前記第1の符号化されたビデオユニットの1つ又は複数のビデオブロックと前記第2のビデオユニットの1つ又は複数のビデオブロックとの間で交互に入れ替わる請求項1に記載の方法。
  4. 前記復号順序は、前記キャッシュ内にロードされた前記予測データが前記キャッシュをリロードする必要なく、ビデオユニットの前記サブセットの前記ビデオブロックを復号する際に使用される可能性を実質的に向上させるために定義される請求項1に記載の方法。
  5. 前記復号順序が前記第1のビデオユニットの前記ビデオブロックが前記第1のビデオユニットのラスタスキャン順序と一致しない順序で復号され、前記第2のビデオユニットの前記ビデオブロックが前記第2のビデオユニットのラスタスキャン順序と一致しない順序で復号されるように定義される請求項1に記載の方法。
  6. 前記第1のビデオユニットの第2の行の少なくとも1つのビデオブロックが前記第1のビデオユニットの第1の行の少なくとも1つのビデオブロックに先立って復号される、ここにおいて前記第2の行が前記第1の行よりも下である請求項5に記載の方法。
  7. ビデオユニットの前記シーケンスにおけるビデオブロックと関連する統計メトリックを定義することと、
    少なくとも部分的には前記統計メトリックに基づいて前記復号順序を定義することと、
    をさらに備える請求項1に記載の方法。
  8. 前記統計メトリックはビデオユニットの前記シーケンスの少なくとも一部に渡って平均的な動きを定量化するグローバル動きメトリックを備える請求項7に記載の方法。
  9. 前記第1のビデオユニットと前記第2のビデオユニットとの間のビデオブロックの平均的な動きを定量化する平均動きメトリックを決定することと、
    少なくとも部分的には前記平均動きメトリックに基づいて前記復号順序を定義することと、
    をさらに備える請求項1に記載の方法。
  10. ビデオユニットの前記シーケンスは、第1のBフレームが続き、第1のPフレームが続き、第2のBフレームが続き、第2のPフレームが続くIフレームを含むIBPBPフォーマットに従う、ここにおいて前記ビデオユニットの前記サブセットが前記第1のBフレーム及び前記第2のPフレームから成る請求項1に記載の方法。
  11. ビデオユニットの前記シーケンスは、第1のBフレームが続き、第2のBフレームが続き、第1のPフレームが続き、第3のBフレームが続き、第4のBフレームが続き、第2のPフレームが続くIフレームを含むIBBPBBPフォーマットに従う、ここにおいて前記ビデオユニットの前記サブセットが前記第1のBフレーム、前記第2のBフレーム、及び前記第2のPフレームから成る請求項1に記載の方法。
  12. ビデオデータを復号する装置であって、前記装置がビデオ復号器及び関連するキャッシュを備え、前記ビデオ復号器が、
    ビデオユニットのシーケンスを受信するように、ここにおいて前記シーケンスが前記ビデオユニットのディスプレイ順序を定義し、
    相互依存であり得ない前記ビデオユニットのサブセットを識別するように、
    メモリから前記キャッシュへ予測データをロードするように、
    少なくとも部分的には前記キャッシュ内の前記予測データに基づいて符号化されたビデオユニットの前記サブセットのビデオブロックを復号するように、ここにおいて前記ビデオブロックを復号する際に前記復号器が、第2のビデオユニットの少なくともいくつかのビデオブロックが第1のビデオユニットの少なくともいくつかのビデオブロックの前に復号される復号順序を定義し、ここにおいて前記第2のビデオユニットが前記ディスプレイ順序において前記第1のビデオユニットの後に生じる、
    構成されている装置。
  13. 符号化されたビデオユニットの前記シーケンスは、
    ビデオフレームのシーケンスと、
    ビデオフレームの一部のシーケンスと、
    ビデオフレームのスライスのシーケンスと、
    の内の少なくとも1つを備える請求項12に記載の装置。
  14. 前記復号順序は、前記第1の符号化されたビデオユニットの1つ又は複数のビデオブロックと前記第2のビデオユニットの1つ又は複数のビデオブロックとの間で交互に入れ替わる請求項12に記載の装置。
  15. 前記復号順序は、前記キャッシュ内にロードされた前記予測データが前記キャッシュをリロードする必要なく前記ビデオユニットの前記サブセットの前記ビデオブロックを復号する際に使用される可能性を実質的に向上させるために定義される請求項12に記載の装置。
  16. 前記復号順序は、前記第1のビデオユニットの前記ビデオブロックが前記第1のビデオユニットのラスタスキャン順序と一致しない順序で復号され、前記第2のビデオユニットの前記ビデオブロックが前記第2のビデオユニットのラスタスキャンと一致しない順序で復号されるように定義される請求項12に記載の装置。
  17. 前記第1のビデオユニットの第2の行の少なくとも1つのビデオブロックは、前記第1のビデオユニットの第1の行の少なくとも1つのビデオブロックに先立って復号される、ここにおいて前記第2の行が前記第1の行の下にある請求項16に記載の装置。
  18. 前記復号器が、
    ビデオユニットの前記シーケンス内のビデオブロックと関連する統計メトリックを定義するように、
    少なくとも部分的には前記統計メトリックに基づいて前記復号順序を定義するように
    さらに構成される請求項12に記載の装置。
  19. 前記統計メトリックはビデオユニットの前記シーケンスの少なくとも一部に渡って平均的な動きを定量化するグローバル動きメトリックを備える請求項18に記載の装置。
  20. 前記復号器は
    前記第1のビデオユニットと前記第2のビデオユニットの間のビデオブロックの平均的な動きを定量化する平均動きメトリックを決定するように、
    少なくとも部分的には前記平均動きメトリックに基づいて前記復号順序を定義するように、
    さらに構成される請求項12に記載の装置。
  21. ビデオユニットの前記シーケンスは、第1のBフレームが続き、第1のPフレームが続き、第2のBフレームが続き、第2のPフレームが続くIフレームを含むIBPBPフォーマットに従う、ここにおいて前記ビデオユニットの前記サブセットが前記第1のBフレーム及び前記第2のPフレームから成る請求項12に記載の装置。
  22. ビデオユニットの前記シーケンスは、第1のBフレームが続き、第2のBフレームが続き、第1のPフレームが続き、第3のBフレームが続き、第4のBフレームが続き、第2のPフレームが続くIフレームを含むIBBPBBPフォーマットに従う、ここにおいて前記ビデオユニットの前記サブセットが前記第1のBフレーム、前記第2のBフレーム、及び前記第2のPフレームから成る請求項12に記載の装置。
  23. 前記ビデオ復号器は集積回路を備える請求項12に記載の装置。
  24. 前記ビデオ復号器はマイクロプロセッサを備える、請求項12に記載の装置。
  25. 前記装置は前記ビデオ復号器を含むワイアレス通信デバイスを備える請求項12に記載の装置。
  26. ビデオデータを復号するデバイスであって、前記デバイスが、
    ビデオユニットのシーケンスを受信するための手段と、ここにおいて前記シーケンスが前記ビデオユニットのディスプレイ順序を定義し、
    相互依存であり得ない前記ビデオユニットのサブセットを識別するための手段と、
    メモリからキャッシュへ予測データをロードするための手段と、
    少なくとも部分的には前記キャッシュ内の前記予測データに基づいて符号化されたビデオユニットの前記サブセットのビデオブロックを復号するための手段と、ここにおいて前記ビデオブロックを復号するための前記手段は第2のビデオユニットの少なくともいくつかのビデオブロックが第1のビデオユニットの少なくともいくつかのビデオブロックの前に復号される復号順序を定義するための手段を含み、ここにおいて前記第2のビデオユニットが前記ディスプレイ順序において前記第1のビデオユニットの後に生じる、
    を備えるデバイス。
  27. 符号化されたビデオユニットの前記シーケンスは、
    ビデオフレームのシーケンスと、
    ビデオフレームの一部のシーケンスと、
    ビデオフレームのスライスのシーケンスと、
    の内の少なくとも1つを備える請求項26に記載のデバイス。
  28. 前記復号順序は、前記第1の符号化されたビデオユニットの1つ又は複数のビデオブロックと前記第2のビデオユニットの1つ又は複数のビデオブロックとの間で交互に入れ替わる請求項26に記載のデバイス。
  29. 前記復号順序は、前記キャッシュ内にロードされた前記予測データが前記キャッシュをリロードする必要なくビデオユニットの前記サブセットの前記ビデオブロックを復号する際に使用される可能性を実質的に向上させるために定義される請求項26に記載のデバイス。
  30. 前記復号順序は、前記第1のビデオユニットの前記ビデオブロックが前記第1のビデオユニットのラスタスキャン順序と一致しない順序で復号され、前記第2のビデオユニットの前記ビデオブロックが前記第2のビデオユニットのラスタスキャン順序と一致しない順序で復号されるように定義される請求項26に記載のデバイス。
  31. 前記第1のビデオユニットの第2の行の少なくとも1つのビデオユニットは、前記第1のビデオユニットの第1の行の少なくとも1つのビデオブロックに先立って復号される、ここにおいて前記第2の行が前記第1の行の下にある請求項30に記載のデバイス。
  32. ビデオユニットの前記シーケンスにおけるビデオブロックと関連する統計メトリックを定義するための手段と、
    少なくとも部分的には前記統計メトリックに基づいて前記復号順序を定義するための手段と、
    をさらに備える請求項26に記載のデバイス。
  33. 前記統計メトリックは、ビデオユニットの前記シーケンスの少なくとも一部に渡って平均的な動きを定量化するグローバル動きメトリックを備える請求項32に記載のデバイス。
  34. 前記第1のビデオユニットと前記第2のビデオユニットとの間のビデオブロックの平均的な動きを定量化する平均動きメトリックを決定するために手段と、
    少なくとも部分的には前記平均動きメトリックに基づいて前記復号順序を定義するための手段と、
    をさらに備える請求項26に記載のデバイス。
  35. ビデオユニットの前記シーケンスは、第1のBフレームが続き、第1のPフレームが続き、第2のBフレームが続き、第2のPフレームが続くIフレームを含むIBPBPフォーマットに従う、ここにおいて前記ビデオユニットの前記サブセットが前記第1のBフレーム及び前記第2のPフレームから成る請求項26に記載のデバイス。
  36. ビデオユニットの前記シーケンスは、第1のBフレームが続き、第2のBフレームが続き、第1のPフレームが続き、第3のBフレームが続き、第4のBフレームが続き、第2のPフレームが続くIフレームを含むIBBPBBPフォーマットに従う、ここにおいて前記ビデオユニットの前記サブセットが前記第1のBフレーム、前記第2のBフレーム及び前記第2のPフレームから成る請求項26に記載のデバイス。
  37. プロセッサ内で実行されると前記プロセッサに、
    ビデオユニットのシーケンスを受信することと、ここにおいて前記シーケンスが前記ビデオユニットのディスプレイ順序を定義し、
    相互依存であり得ない前記ビデオユニットのサブセットを識別することと、
    メモリからキャッシュへ予測データをロードすることと、
    少なくとも部分的には前記キャッシュ内の前記予測データに基づいて符号化されたビデオユニットの前記サブセットのビデオブロックを復号することと、を行わせる命令を備えるコンピュータ読み取り可能記憶媒体であって、
    ここにおいて前記ビデオブロックを復号する際に前記命令がプロセッサに、第2のビデオユニットの少なくともいくつかのビデオブロックが第1のビデオユニットの少なくともいくつかのビデオブロックの前に復号される復号順序を定義することを行わせ、ここにおいて前記第2のビデオユニットが前記ディスプレイ順序において前記第1のビデオユニットの後に生じるコンピュータ読み取り可能記憶媒体。
  38. 符号化されたビデオユニットの前記シーケンスは、
    ビデオフレームのシーケンスと、
    ビデオフレームの一部のシーケンスと、
    ビデオフレームのスライスのシーケンスと、
    の内の少なくとも1つを備える請求項37に記載のコンピュータ読み取り可能記憶媒体。
  39. 前記復号順序は、前記第1の符号化されたビデオユニットの1つ又は複数のビデオブロックと前記第2のビデオユニットの1つ又は複数のビデオブロックとの間で交互に入れ替わる請求項37に記載のコンピュータ読み取り可能記憶媒体。
  40. 前記復号順序は、前記キャッシュ内にロードされた前記予測データが前記キャッシュをリロードする必要ななくビデオユニットの前記サブセットの前記ビデオブロックを復号する際に使用される可能性を実質的に向上させるために定義される請求項37に記載のコンピュータ読み取り可能記憶媒体。
  41. 前記復号順序は、前記第1のビデオユニットの前記ビデオブロックが前記第1のビデオユニットのラスタスキャン順序と一致しない順序で復号され、前記第2のビデオユニットの前記ビデオブロックが前記第2のビデオユニットのラスタスキャン順序と一致しない順序で復号されるように定義される請求項37に記載のコンピュータ読み取り可能記憶媒体。
  42. 前記第1のビデオユニットの第2の行の少なくとも1つのビデオブロックは前記第1のビデオユニットの第1の行の少なくとも1つのビデオブロックに先立って復号される、ここにおいて前記第2の行が前記第1の行の下にある請求項41に記載のコンピュータ読み取り可能記憶媒体。
  43. ビデオユニットの前記シーケンス内のビデオブロックと関連する統計メトリックを定義することと、
    少なくとも部分的には前記統計メトリックに基づいて前記復号順序を定義することと、を前記プロセッサに行わせる命令をさらに備える請求項37に記載のコンピュータ読み取り可能記憶媒体。
  44. 前記統計メトリックは、ビデオユニットの前記シーケンスの少なくとも一部に渡って平均的な動きを定量化するグローバル動きメトリックを備える請求項43に記載のコンピュータ読み取り可能記憶媒体。
  45. 前記第1のビデオユニットと前記第2のビデオユニットとの間のビデオブロックの平均的な動きを定量化する平均動きメトリックを決定することと、
    少なくとも部分的には前記平均動きメトリックに基づいて前記復号順序を定義することと、
    を前記プロセッサに行わせる命令をさらに備える請求項37に記載のコンピュータ読み取り可能記憶媒体。
  46. ビデオユニットの前記シーケンスは、第1のBフレームが続き、第1のPフレームが続き、第2のBフレームが続き、第2のPフレームが続くIフレームを含むIBPBPフォーマットに従う、ここにおいて前記ビデオユニットの前記サブセットが前記第1のBフレーム及び前記第2のPフレームから成る請求項37に記載のコンピュータ読み取り可能記憶媒体。
  47. ビデオユニットの前記シーケンスは、第1のBフレームが続き、第2のBフレームが続き、第1のPフレームが続き、第3のBフレームが続き、第4のBフレームが続き、第2のPフレームが続くIフレームを含むIBBPBBPフォーマットに従う、ここにおいて前記ビデオユニットの前記サブセットが前記第1のBフレーム、前記第2のBフレーム、及び前記第2のPフレームから成る請求項37に記載のコンピュータ読み取り可能記憶媒体。
JP2014162798A 2009-12-21 2014-08-08 キャッシュヒットを向上させるための復号器内での時間的及び空間的ビデオブロックの再順序付け Expired - Fee Related JP5985553B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/643,523 2009-12-21
US12/643,523 US9877033B2 (en) 2009-12-21 2009-12-21 Temporal and spatial video block reordering in a decoder to improve cache hits

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2012546126A Division JP2013515448A (ja) 2009-12-21 2010-12-20 キャッシュヒットを向上させるための復号器内での時間的及び空間的ビデオブロックの再順序付け

Publications (3)

Publication Number Publication Date
JP2015008497A true JP2015008497A (ja) 2015-01-15
JP2015008497A5 JP2015008497A5 (ja) 2016-02-25
JP5985553B2 JP5985553B2 (ja) 2016-09-06

Family

ID=43598348

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2012546126A Withdrawn JP2013515448A (ja) 2009-12-21 2010-12-20 キャッシュヒットを向上させるための復号器内での時間的及び空間的ビデオブロックの再順序付け
JP2014162798A Expired - Fee Related JP5985553B2 (ja) 2009-12-21 2014-08-08 キャッシュヒットを向上させるための復号器内での時間的及び空間的ビデオブロックの再順序付け

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2012546126A Withdrawn JP2013515448A (ja) 2009-12-21 2010-12-20 キャッシュヒットを向上させるための復号器内での時間的及び空間的ビデオブロックの再順序付け

Country Status (7)

Country Link
US (1) US9877033B2 (ja)
EP (1) EP2517471A1 (ja)
JP (2) JP2013515448A (ja)
KR (1) KR101376008B1 (ja)
CN (1) CN102668563B (ja)
TW (1) TW201141239A (ja)
WO (1) WO2011084754A1 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9178648B2 (en) * 2010-01-06 2015-11-03 Alcatel Lucent Method to improve voice over IP capacity for user equipment employing variable rate vocoders
KR101436342B1 (ko) * 2010-08-02 2014-09-01 페킹 유니버시티 효과적인 비디오 분류 및 검색을 위한 대표 모션 플로우 추출
US8767824B2 (en) 2011-07-11 2014-07-01 Sharp Kabushiki Kaisha Video decoder parallelization for tiles
US8787454B1 (en) * 2011-07-13 2014-07-22 Google Inc. Method and apparatus for data compression using content-based features
US9736489B2 (en) 2011-09-17 2017-08-15 Qualcomm Incorporated Motion vector determination for video coding
EP2777258B1 (en) 2011-11-04 2017-01-11 Huawei Technologies Co., Ltd. Binarization of prediction residuals for lossless video coding
US10003803B1 (en) 2012-04-18 2018-06-19 Matrox Graphics Inc. Motion-based adaptive quantization
US9300984B1 (en) * 2012-04-18 2016-03-29 Matrox Graphics Inc. Independent processing of data streams in codec
US10003802B1 (en) 2012-04-18 2018-06-19 Matrox Graphics Inc. Motion-based adaptive quantization
US20150085915A1 (en) * 2013-09-25 2015-03-26 Jay C.-C. Kuo Method and system for automatically encoding video with uniform throughput
KR101805630B1 (ko) * 2013-09-27 2017-12-07 삼성전자주식회사 멀티 디코딩 처리 방법 및 이를 수행하기 위한 멀티 디코더
JP6272194B2 (ja) * 2014-09-24 2018-01-31 株式会社日立情報通信エンジニアリング 動画像符号化装置、動画像復号装置、および動画像符号化・復号化方法
JP6438777B2 (ja) * 2015-01-30 2018-12-19 ルネサスエレクトロニクス株式会社 画像処理装置および半導体装置
US11051026B2 (en) * 2015-08-31 2021-06-29 Intel Corporation Method and system of frame re-ordering for video coding
US10034026B2 (en) 2016-04-22 2018-07-24 Akila Subramaniam Device for and method of enabling the processing of a video stream
US10798375B2 (en) 2016-11-01 2020-10-06 Samsung Electronics Co., Ltd. Encoding method and device therefor, and decoding method and device therefor

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000278693A (ja) * 1999-03-19 2000-10-06 Nec Corp 動画像伸長方法及びそれを実行するプログラムを記録した記録媒体
WO2008038513A1 (en) * 2006-09-26 2008-04-03 Panasonic Corporation Decoding device, decoding method, decoding program, and integrated circuit

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000513167A (ja) * 1997-01-13 2000-10-03 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ ディジタルビデオ信号内に補足データを埋め込む方法及び装置
KR19980068686A (ko) * 1997-02-22 1998-10-26 구자홍 엠펙 디코더(MPEG Decoder)의 레터 박스(Letter Box) 처리방법
US6948127B1 (en) 2001-12-10 2005-09-20 Cisco Technology, Inc. Interface for compressed video data analysis
WO2003098939A1 (en) * 2002-05-22 2003-11-27 Matsushita Electric Industrial Co., Ltd. Moving image encoding method, moving image decoding method, and data recording medium
AU2003241696A1 (en) * 2002-07-26 2004-02-16 Matsushita Electric Industrial Co., Ltd. Moving picture encoding method, moving picture decoding method, and recording medium
US7715479B2 (en) * 2003-07-21 2010-05-11 International Business Machines Corporation Power-aware on-chip memory management for video coding algorithms
WO2006013690A1 (ja) * 2004-08-04 2006-02-09 Matsushita Electric Industrial Co., Ltd. 画像復号装置
US7859574B1 (en) * 2005-07-19 2010-12-28 Maxim Integrated Products, Inc. Integrated camera image signal processor and video encoder
US20070025444A1 (en) * 2005-07-28 2007-02-01 Shigeyuki Okada Coding Method
ATE448644T1 (de) 2005-08-17 2009-11-15 Nxp Bv Videocodierung und -decodierung unter berücksichtigung von positionen im cache
US8238442B2 (en) 2006-08-25 2012-08-07 Sony Computer Entertainment Inc. Methods and apparatus for concealing corrupted blocks of video data
KR100906152B1 (ko) 2007-12-07 2009-07-03 한국전자통신연구원 마이크로 볼로미터용 저항재료, 이의 제조방법 및 이를포함한 마이크로 볼로미터
US8265154B2 (en) * 2007-12-18 2012-09-11 At&T Intellectual Property I, Lp Redundant data dispersal in transmission of video data based on frame type
EP2104356A1 (en) 2008-03-18 2009-09-23 Deutsche Thomson OHG Method and device for generating an image data stream, method and device for reconstructing a current image from an image data stream, image data stream and storage medium carrying an image data stream
US20100027663A1 (en) * 2008-07-29 2010-02-04 Qualcomm Incorporated Intellegent frame skipping in video coding based on similarity metric in compressed domain
JP5340289B2 (ja) * 2008-11-10 2013-11-13 パナソニック株式会社 画像復号装置、画像復号方法、集積回路及びプログラム
US20100215104A1 (en) * 2009-02-26 2010-08-26 Akira Osamoto Method and System for Motion Estimation

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000278693A (ja) * 1999-03-19 2000-10-06 Nec Corp 動画像伸長方法及びそれを実行するプログラムを記録した記録媒体
WO2008038513A1 (en) * 2006-09-26 2008-04-03 Panasonic Corporation Decoding device, decoding method, decoding program, and integrated circuit

Also Published As

Publication number Publication date
WO2011084754A1 (en) 2011-07-14
JP5985553B2 (ja) 2016-09-06
CN102668563B (zh) 2017-08-22
KR101376008B1 (ko) 2014-03-20
EP2517471A1 (en) 2012-10-31
CN102668563A (zh) 2012-09-12
TW201141239A (en) 2011-11-16
KR20120096592A (ko) 2012-08-30
JP2013515448A (ja) 2013-05-02
US20110150085A1 (en) 2011-06-23
US9877033B2 (en) 2018-01-23

Similar Documents

Publication Publication Date Title
JP5985553B2 (ja) キャッシュヒットを向上させるための復号器内での時間的及び空間的ビデオブロックの再順序付け
JP5405596B2 (ja) ビデオのコーディングの際の、アクティビティメトリックに基づくフィルタ予測
RU2765300C1 (ru) Способ кодирования и декодирования изображений, устройство кодирования и декодирования и соответствующие компьютерные программы
JP6042470B2 (ja) ビデオコーディングのための適応動き解像度
JP5642806B2 (ja) ビデオ符号化のための方法及び装置
KR101273149B1 (ko) 비디오 코딩에서 보간 필터링, 인-루프 필터링 및 포스트-필터링을 위한 결합된 방식
JP5497169B2 (ja) ビデオコーディングにおける単方向予測および双方向予測のための異なる重み付け
JP5415546B2 (ja) ベクトル化エントロピーコーディングに基づく加重予測
JP5897698B2 (ja) ビデオコーディングにおける単予測ネイバーに基づく双予測マージモード
JP6701391B2 (ja) 改良情報を用いてダウンサンプリング/アップサンプリングすることによるデジタルフレームの符号化/復号化
JP5275469B2 (ja) クロマビデオブロックおよびルマビデオブロックの符号化のための量子化パラメータ選択
KR101168843B1 (ko) 수평 및 수직 대칭에 기초한 필터 계수들의 비디오 코딩
RU2497303C2 (ru) Видео кодирование с использованием преобразования больше чем 4×4 и 8×8
US8665959B2 (en) Block and partition signaling techniques for video coding
JP2013243716A (ja) ビデオブロックのインターリーブされたサブブロックのエントロピーコード化
JP5755808B2 (ja) ルーマおよびクロマブロックのためのvlc係数コーディング
WO2015057570A1 (en) Multi-threaded video encoder
Wu et al. A real-time H. 264 video streaming system on DSP/PC platform

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160104

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160126

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160419

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: 20160705

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160803

R150 Certificate of patent or registration of utility model

Ref document number: 5985553

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees