JP6195912B2 - インターコード化又はイントラコード化のための候補ブロックのプログラマブル且つスケーラブルな探索 - Google Patents

インターコード化又はイントラコード化のための候補ブロックのプログラマブル且つスケーラブルな探索 Download PDF

Info

Publication number
JP6195912B2
JP6195912B2 JP2015512708A JP2015512708A JP6195912B2 JP 6195912 B2 JP6195912 B2 JP 6195912B2 JP 2015512708 A JP2015512708 A JP 2015512708A JP 2015512708 A JP2015512708 A JP 2015512708A JP 6195912 B2 JP6195912 B2 JP 6195912B2
Authority
JP
Japan
Prior art keywords
block
candidate
frame
search
video
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.)
Expired - Fee Related
Application number
JP2015512708A
Other languages
English (en)
Other versions
JP2015520581A5 (ja
JP2015520581A (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 JP2015520581A publication Critical patent/JP2015520581A/ja
Publication of JP2015520581A5 publication Critical patent/JP2015520581A5/ja
Application granted granted Critical
Publication of JP6195912B2 publication Critical patent/JP6195912B2/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/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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
    • 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/162User input
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/55Motion estimation with spatial constraints, e.g. at image or region borders
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/57Motion estimation characterised by a search window with variable size or shape
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction

Landscapes

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

Description

[0001] 本開示は、ビデオコード化に関し、より詳細には、インターコード化及び/又はイントラコード化のための候補ブロックの効率的な探索に関する。
[0002] デジタルビデオコード化は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレス通信デバイス、携帯情報端末(PDA)、ラップトップ又はデスクトップコンピュータ、デジタルカメラ、デジタル記録デバイス、ビデオゲーム機器、セルラ又は衛星無線電話、等を含む、広範囲のデバイスで使用される。デジタルビデオデバイスは、デジタルビデオをより効率的に送受信するために、MPEG−2、MPEG−4、又はH.264/MPEG−4 AVC(Advanced Video Coding)のようなビデオ圧縮技法を実現する。
[0003] 一般に、ビデオ圧縮技法は、ビデオデータに内在する冗長性を低減又は除去するために、空間予測、動き推定、及び動き補償を実行する。具体的には、イントラコード化は、所与のビデオフレーム内のビデオにおける空間冗長性を低減又は除去するために空間予測に依存する。インターコード化は、隣接フレーム内のビデオにおける時間冗長性を低減又は除去するために、時間予測に依存する。インターコード化の場合、ビデオエンコーダは、2つ以上の隣接フレーム間でビデオブロックを整合する動きを追うために、動き推定を実行する。動き推定は、1つ以上の参照フレーム内の対応するビデオブロックに対するビデオブロックの変位(displacement)を示す動きベクトルを生成する。動き補償は、この動きベクトルを使用して、参照フレームから予測ビデオブロックを生成する。動き補償の後、この予測ビデオブロックを元のビデオブロックから差し引くことによって残差ビデオブロックが形成される。
[0004] 本開示のシステム、方法、デバイスは各々、幾つかの革新的な態様を有し、それらの何れもが、本明細書で開示される所望の属性に関与しているわけではない。
[0005] 1つの革新的な態様では、動き推定を実行するための装置が提供される。装置は、探索されるべきビデオデータのフレームの候補ブロックの数を識別するように構成されたプロセッサを含み、少なくとも1つの候補ブロックは、ビデオデータの別のフレームのブロックに対応する。プロセッサは更に、候補ブロック間の距離に基づいて、探索すべき候補ブロックのうちの1つ以上を選択するように構成される。プロセッサはまた、ビデオデータの形式に基づいて、選択された候補ブロックを探索するための方法を選択するように構成される。プロセッサはまた、選択された方法及び選択された候補ブロックに基づいて、別のフレームのブロックについての動きを推定するように構成される。
[0006] 更なる革新的な態様において、動き推定を実行するための方法が提供される。方法は、探索されるべきビデオデータのフレームの候補ブロックの数を識別することを含み、少なくとも1つの候補ブロックは、ビデオデータの別のフレームのブロックに対応する。方法はまた、候補ブロック間の距離に基づいて、探索すべき候補ブロックのうちの1つ以上を選択することを含む。方法は、ビデオデータの形式に基づいて、選択された候補ブロックを探索するための方法を選択することを更に含む。方法はまた、選択された方法及び選択された候補ブロックに基づいて、別のフレームのブロックについて動きを推定することを含む。
[0007] 動き推定を実行するための追加の装置が別の革新的な態様で説明される。装置は、探索されるべきビデオデータのフレームの候補ブロックの数を識別するための手段を含み、少なくとも1つの候補ブロックは、ビデオデータの別のフレームのブロックに対応する。装置は、候補ブロック間の距離に基づいて、探索すべき候補ブロックのうちの1つ以上を選択するための手段を含む。装置はまた、ビデオデータの形式に基づいて、選択された候補ブロックを探索するための方法を選択するための手段を含む。装置は、選択された方法及び選択された候補ブロックに基づいて、別のフレームのブロックについての動きを推定するための手段を更に含む。
[0008] 更なる革新的な態様において、命令を備えたコンピュータ可読記憶媒体が提供される。命令は、探索されるべきビデオデータのフレームの候補ブロックの数を識別することを装置に行わせ、少なくとも1つの候補ブロックは、ビデオデータの別のフレームのブロックに対応する。命令は、候補ブロック間の距離に基づいて、探索すべき候補ブロックのうちの1つ以上を選択することを装置に更に行わせる。命令はまた、ビデオデータの形式に基づいて、選択された候補ブロックを探索するための方法を選択することを装置に行わせる。命令は、選択された方法及び選択された候補ブロックに基づいて、別のフレームのブロックについて動きを推定することを装置に更に行わせる。
図1は、ビデオ符号化及び復号システムを示すブロック図である。 図2は、ビデオエンコーダの例を示すブロック図である。 図3は、ビデオデコーダの例を示すブロック図である。 図4Aは、参照フレームにおいて候補ブロックを識別するために使用され得る動きベクトル候補の例を示す。 図4Bは、候補ブロックを探索するための順序の例を示す。 図5は、例示的な候補ブロック探索のためのプロセスフロー図を示す。 図6は、低複雑度探索(low complexity search)プロセスの例を示す。 図7は、サブブロックレベル予測子を使用した中複雑度探索(medium complexity search)プロセスの例を示す。 図8は、サブブロックレベル予測子を使用した高複雑度探索(high complexity search)プロセスの例を示す。 図9は、候補ブロックを探索するための例示的なプロセスのフローチャートを示す。 図10は、動き推定を実行するための装置のブロック図を示す。 図11は、候補動き推定プロセッサを含む動き推定ユニットのブロック図を示す。 図12は、候補ブロックの効率的な探索のプロセス図を示す。 図12は、候補ブロックの効率的な探索のプロセス図を示す。
発明の詳細な説明
[0022] 一般に、本開示は、インターコード化及び/又はイントラコード化のための候補ブロックの効率的な探索のための技法に向けられている。「コード化」という用語は、本明細書で使用される場合、符号化すること、復号すること、又は両方を指し得る。本開示で説明される技法は、幅広い実用例に適用可能であり得るが、本開示は、例示を目的として、デジタルビデオ符号化及び復号に言及するだろう。
[0023] 図1は、ビデオ符号化及び復号システムを示すブロック図である。図1に示されるように、システム10は、符号化されたビデオを、通信チャネル16を介して受信デバイス14へ送信するソースデバイス12を含む。ソースデバイス12は、ビデオソース18、ビデオエンコーダ20、及び送信機22を含み得る。受信デバイス14は、受信機24、ビデオデコーダ26、及びビデオディスプレイデバイス28を含み得る。システム10は、本開示に係るデジタルビデオデータの効率的なコード化のための技法を適用するように構成され得る。
[0024] 図1の例では、通信チャネル16は、無線周波数(RF)スペクトル又は1つ以上の物理送信回線のような任意のワイヤレス又はワイヤード通信媒体、或いはワイヤレス及びワイヤード媒体の任意の組み合わせを備え得る。チャネル16は、ローカルエリアネットワーク、広域ネットワーク、又はインターネットのようなグローバルネットワークといった、パケットベースのネットワークの一部を形成し得る。通信チャネル16は、一般に、ソースデバイス12から受信デバイス14にビデオデータを送信するための、任意の適切な通信媒体又は異なる通信媒体の集合を表す。幾つかの実現では、通信チャネル16は、双方向である。そのような実現では、ソースデバイス12は、受信デバイス14からフィードバックを受信し得る。フィードバックは、符号化プロセスへの入力として使用され得る。
[0025] ソースデバイス12は、受信デバイス14への送信のためにビデオを生成する。しかしながら、幾つかのケースでは、ソースデバイス12及び受信デバイス14は、ほぼ対称的な方法で動作し得る。例えば、ソースデバイス12及び受信デバイス14の各々は、ビデオ符号化及び復号構成要素を含み得る。故に、システム10は、例えば、ビデオストリーミング、ビデオブロードキャスティング、又は、ビデオ電話会議のために、ソースデバイス12及び受信デバイス14のようなビデオデバイス間での単方向又は双方向のビデオ送信をサポートし得る。他のデータ圧縮及びコード化アプリケーションの場合、ソースデバイス12及び/又は受信デバイス14は、画像、スピーチ又はオーディオデータ、或いは、ビデオ、画像、スピーチ及びオーディオデータのうち2つ以上を組み合わせたもののような他のタイプのデータを送受信する、即ち交換する、ように構成され得る。結果として、ビデオ符号化及び復号アプリケーションについての説明は、例示を目的として提供され、本明細書で広く説明されている本開示の様々な態様を限定するものと考えられるべきではない。
[0026] ビデオソース18は、1つ以上のビデオカメラ、以前に撮影されたビデオを含んでいるビデオアーカイブ、又はビデオコンテンツプロバイダからのライブビデオフィードのような撮像装置を含み得る。更なる代替例として、ビデオソース18は、ソースビデオとしてコンピュータグラフィックベースのデータを、又は、ライブビデオとコンピュータによって生成されたビデオとを組み合わせたものを生成し得る。幾つかのケースでは、ビデオソース18がカメラである場合、ソースデバイス12及び受信デバイス14は、所謂カメラ電話又はビデオ電話を形成し得る。故に、幾つかの態様では、ソースデバイス12、受信デバイス14、又は両方は、モバイル電話ハンドセットのようなワイヤレス通信デバイスハンドセットを形成し得る。何れのケースにおいても、撮影されたビデオ、事前に撮影されているビデオ、又はコンピュータによって生成されたビデオは、送信機22、チャネル16及び受信機24を介してビデオソースデバイス12からビデオ受信デバイス14のビデオデコーダ26に送信するために、ビデオエンコーダ20によって符号化され得る。ディスプレイデバイス28は、液晶ディスプレイ(LCD)、プラズマディスプレイ、又は有機発光ダイオード(OLED)ディスプレイのような様々なディスプレイデバイスの何れかを含み得る。
[0027] ビデオエンコーダ20及びビデオデコーダ26は、空間、時間、及び/又は信号対ノイズ比(SNR)スケーラビリティのためにスケーラブルビデオコード化(SVC)をサポートするように構成され得る。幾つかの態様では、ビデオエンコーダ20及びビデオデコーダ26は、SVCのための細粒SNRスケーラビリティ(FGS)コード化をサポートするように構成され得る。エンコーダ20及びデコーダ26は、基準層及び1つ以上のスケーラブル強化層の符号化、送信、及び復号をサポートすることで、様々な程度のスケーラビリティをサポートし得る。スケーラブルビデオコード化の場合、基準層は、最小の品質レベルでビデオデータを搬送する。1つ以上の強化層は、より高い空間、時間、及び/又はSNRレベルをサポートするために、追加のビットストリームを搬送する。
[0028] ビデオエンコーダ20及びビデオデコーダ26は、一部分が本明細書で説明される技法に従って、一部分がMPEG−2、MPEG−4、ITU−T H.263、又はITU−T H264/MPEG−4 AVC(Advanced Video Coding)のようなビデオ圧縮規格に従って動作し得る。例えば、本明細書で使用される技法は、当業者によって理解されるであろうビデオ圧縮規格で使用されるそれぞれの技法を増強又は置き換えるために使用され得る。図1には示されていないが、幾つかの態様では、ビデオエンコーダ20及びビデオデコーダ26は、それぞれオーディオエンコーダ及びデコーダと統合され、共通のデータストリーム又は別個のデータストリームにおけるオーディオ及びビデオの両方の符号化に対処するために、適切なMUX−DEMUXユニット又は他のハードウェア及びソフトウェアを含み得る。適用可能な場合、MUX−DEMUXユニットは、ITU H.223マルチプレクサプロトコル、又はユーザデータグラムプロトコル(UDP)のような他のプロトコルに準拠し得る。
[0029] H.264/MPEG−4(AVC)規格は、JVT(Joint Video Team)として知られている共同パートナーシップの成果として、ITU−T VCEG(Video Coding Experts Group)がISO/IEC MPEG(Moving Picture Experts Group)と共同で公式化したものである。H.264規格は、2005年3月付けの、ITU−TスタディグループによるITU−T推奨H.264、Advanced video coding for generic audiovisual servicesに記載されており、それは、本明細書において、H.264規格、H.264仕様、或いはH.264/AVC規格又は仕様と呼ばれ得る。
[0030] 幾つかの態様において、ビデオブロードキャストのために、本明細書で説明される技法は、例えば、ワイヤレスビデオブロードキャストサーバ又はワイヤレス通信デバイスハンドセットを介して、地上波モバイルマルチメディアマルチキャスト(TM3)システムでリアルタイムビデオサービスを配信するための強化H.264ビデオコード化に適用され得る。幾つかの実現において、ビデオは、DVB−H(デジタルビデオブロードキャスト−ハンドヘルド)、ISDB−T(統合サービスデジタルブロードキャスト地上波)、又はDMB(デジタルメディアブロードキャスト)のような他の規格に従ってブロードキャストされ得る。故に、ソースデバイス12は、モバイルワイヤレス端末、ビデオストリーミングサーバ、又はビデオブロードキャストサーバであり得る。しかしながら、本開示で説明される技法は、任意の特定のタイプのブロードキャスト、マルチキャスト、又はポイント・ツー・ポイントシステムに制限されない。ブロードキャストのケースにおいて、ソースデバイス12は、ビデオデータの幾つかのチャネルを、各々が図1の受信デバイス14に類似し得る多数の受信デバイスにブロードキャストし得る。
[0031] ビデオエンコーダ20及びビデオデコーダ26は各々、1つ以上のマイクロプロセッサ、デジタルシグナルプロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、又はそれらのあらゆる組み合わせとして実現され得る。故に、ビデオエンコーダ20及びビデオデコーダ26の各々は、集積回路(IC)チップ又はデバイスとして少なくとも部分的に実現され、1つ以上のエンコーダ又はデコーダに含まれ得、それらの何れかは、それぞれのモバイルデバイス、加入者デバイス、ブロードキャストデバイス、サーバ、等における複合エンコーダ/デコーダ(CODEC)の一部分として統合され得る。加えて、ソースデバイス12及び受信デバイス14は各々、符号化されたビデオの送受信のために、適切な変調、復調、周波数コンバージョン、フィルタリング、及び増幅器構成要素を適宜含み得、それらは、ワイヤレス通信をサポートするのに十分な無線周波数(RF)ワイヤレス構成要素及びアンテナを含む。しかしながら、例示を容易にするために、そのような構成要素は、図1には示されない。
[0032] ビデオシーケンスは、一連のビデオフレームを含む。ビデオエンコーダ20は、ビデオデータを符号化するために個々のビデオフレーム内のピクセルのブロック上で動作する。ビデオブロックは、一定又は可変サイズを有し得、指定のコード化規格に従ってサイズが異なり得る。各ビデオフレームは、一連のスライスを含む。各スライスは、サブブロックへと配列され得る一連のマクロブロックを含み得る。例として、ITU−T H.264規格は、輝度成分については16×16、8×8、4×4、彩度成分については8×8といった様々なブロックサイズでのイントラ予測をサポートすることに加え、輝度成分については16×16、16×8、8×16、8×8、8×4、4×8、4×4、彩度成分については対応するスケーリングされた(scaled)サイズといった様々なブロックサイズでのインター予測をサポートする。
[0033] より小さいビデオブロックはより良い解像度を提供することができ、より高い詳細度(level of detail)を含むビデオフレームの位置付けのために使用され得る。一般に、マクロブロック(MB)及び様々なサブブロックは、ビデオブロックであると考えられ得る。加えて、スライスは、MB及び/又はサブブロックのような一連のビデオブロックであると考えられ得る。各スライスは、独立して復号可能な単位であり得る。予測の後、8×8の残差ブロック又は4×4の残差ブロックに対して変換が実行され得、イントラ_16×16_予測モードが使用された場合には、彩度成分又は輝度成分について4×4のブロックのDC係数に追加の変換が適用され得る。
[0034] 図1のシステム10のビデオエンコーダ20及び/又はビデオデコーダ26は、処理オーバーヘッド、処理複雑度、及び/又は電力消費を低減させるために、インターコード化及び/又はイントラコード化のための候補ブロックの効率的な探索について以下に説明される態様を組み込むように構成され得る。
[0035] 図2は、ビデオエンコーダの例を示すブロック図である。ビデオエンコーダ20は、少なくとも一部が1つ以上の集積回路デバイスとして形成され得、それは、総称して、集積回路デバイスと呼ばれ得る。幾つかの態様において、ビデオエンコーダ20は、ワイヤレス通信デバイスハンドセット又はブロードキャストサーバの一部を形成し得る。ビデオエンコーダ20は、ビデオフレーム内のブロックのイントラ及びインターコード化を実行し得る。イントラコード化は、所与のビデオフレーム内のビデオにおける空間冗長性を低減又は除去するために、空間予測に依存する。インターコード化は、ビデオシーケンスの隣接フレーム内のビデオにおける時間冗長性を低減又は除去するために、時間予測に依存する。インターコード化の場合、ビデオエンコーダ20は、隣接フレーム間でビデオブロックを整合する動きを追うために、動き推定を実行する。
[0036] 図2に示されるように、ビデオエンコーダ20は、符号化されるべきビデオフレーム内の現在のビデオブロック30を受信する。図2の例において、ビデオエンコーダ20は、動き推定ユニット32、参照フレーム記憶装置34、動き補償ユニット36、ブロック変換ユニット38、量子化ユニット40、逆量子化ユニット42、逆変換ユニット44、及びエントロピ符号化ユニット46を含む。ビデオエンコーダ20はまた、メモリ47を含むメモリを含み得る。ブロックをフィルタリングして、ブロック歪み(blocking artifact)を除去するために、インループブロックデブロッキングフィルタ(示されない)が適用され得る。ビデオエンコーダ20はまた、加算器48及び加算器50を含む。図2は、ビデオブロックのインターコード化のためのビデオエンコーダ20の時間予測構成要素を示す。例示を容易にするために図2には示されていないが、ビデオエンコーダ20はまた、幾つかのビデオブロックのイントラコード化のために空間予測構成要素を含み得る。
[0037] 動き推定ユニット32は、ビデオブロック30を、1つ以上の隣接ビデオフレーム内のブロックと比較して、1つ以上の動きベクトルを生成する。1つの隣接フレーム又は複数の隣接フレームは、以前に符号化されたブロックから復元(reconstruct)されたビデオブロックを記憶するための任意のタイプのメモリ又はデータ記憶デバイスを備え得る参照フレーム記憶装置34から検索され得る。例えば、16×16、16×8、8×16、8×8、又はより小さいブロックサイズのような可変サイズのブロックについて動き推定が実行され得る。
[0038] 動作中、動き推定ユニット32は、例えば、レート歪みモデルに基づいて、現在のビデオブロック30と最も厳密に整合する隣接フレーム内の1つ以上のブロックを識別し、隣接フレーム内のブロックと、現在のビデオブロックとの間の変位を決定する。これを基に、動き推定ユニット32は、現在のビデオブロック30と、現在のビデオブロック30をコード化するために使用された参照フレームからの1つ以上の整合ブロックとの間の変位の大きさ及び軌道を示す1つ以上の動きベクトル(MV)を生成する。
[0039] 動きベクトルは、1/2又は1/4ピクセル精度、或いは、より一層細かい精度を有し得、それにより、ビデオエンコーダ20は、整数ピクセルロケーションよりも高い精度で動きを追い、より優れた予測ブロックを取得することができる。幾つかの実現では、これらのより細かい精度のベクトルは、サブサンプルと呼ばれ得る。分数ピクセル値を有する動きベクトルが使用された場合、動き補償ユニット36において補間動作が実行される。動き推定ユニット32は、レート歪みモデルのような特定の基準を使用して、ビデオブロックについての最良のブロック分割及び1つの動きベクトル又は複数の動きベクトルを識別する。例えば、双方向予測の場合、動きベクトルだけではない可能性がある。結果として得られたブロック分割及び動きベクトルを使用して、動き補償ユニット36は、予測ビデオブロックを形成する。
[0040] ビデオエンコーダ20は、加算器48において、動き補償ユニット36によって生成された予測ビデオブロックを元の現在のビデオブロック30から差し引くことで、残差ビデオブロックを形成する。ブロック変換ユニット38は、H.264/AVCにおいて使用される4×4又は8×8の整数変換のような変換を残差ブロックに適用し、残差変換ブロック係数を生成する。量子化ユニット40は、ビットレートを更に低減させるために、残差変換ブロック係数を量子化する。エントロピ符号化ユニット46は、ビットレートをより一層低減させるために、量子化された係数をエントロピコード化する。
[0041] 一般に、ビデオデコーダ26は、例えば、図3に関して説明されるように、符号化されたビデオを復号及び復元するために、復号及び構文解析(parsing)を含む逆動作を実行する。
[0042] 逆量子化ユニット42及び逆変換ユニット44は、それぞれ、逆量子化及び逆変換を適用して、残差ブロックを復元する。加算器50は、復元された残差ブロックを動き補償ユニット36によって生成された動き補償予測ブロックに加えて、参照フレーム記憶装置34に記憶するための復元されたビデオブロックを生成する。復元されたビデオブロックは、後続のビデオフレームにおけるブロックを符号化するために、動き推定ユニット32及び動き補償ユニット36によって使用される。
[0043] 図3は、ビデオデコーダの例を示すブロック図である。ビデオデコーダ26は、少なくとも一部が1つ以上の集積回路デバイスとして形成され得、それは、総称して、集積回路デバイスと呼ばれ得る。幾つかの態様において、ビデオデコーダ26は、ワイヤレス通信デバイスハンドセットの一部を形成し得る。ビデオデコーダ26は、ビデオフレーム内のブロックのイントラ及びインター復号を実行し得る。図3に示されるように、ビデオデコーダ26は、ビデオエンコーダ20によって符号化されている符号化されたビデオストリームを、受信機24(図1)から受信する。図3の例において、ビデオデコーダ26は、エントロピ復号ユニット52、動き補償ユニット54、逆量子化ユニット56、逆変換ユニット58、及び参照フレーム記憶装置62を含む。ビデオデコーダ26はまた、コード化データの記憶及び検索のために、エントロピ復号ユニット52を使用され得るメモリ53含むメモリを含み得る。ビデオデコーダ26はまた、加算器64の出力をフィルタリングするインループでブロッキングフィルタ(示されない)を含み得る。ビデオデコーダ26はまた、加算器64を含む。図3は、ビデオブロックのインター復号のためのビデオデコーダ26の時間予測構成要素を示す。図3には示されないが、ビデオデコーダ26はまた、幾つかのビデオブロックのイントラ復号のための空間予測構成要素を含み得る。
[0044] エントロピ復号ユニット52は、符号化されたビットストリームを受信し、このビットストリームから、量子された残差係数、マクロブロックコード化モード、並びに動きベクトル及びブロック分割を含み得る動き情報を復号する。
[0045] 動き補償ユニット54は、動きベクトル及びブロック分割と、参照フレーム記憶装置62からの1つ以上の復元された参照フレームとを受信して、予測ビデオブロックを生成する。逆量子化ユニット56は、量子化されたブロック係数を逆量子化、即ち、逆量子化(dequantize)する。逆変換ユニット58は、逆変換、例えば、逆DCT或いは逆4×4又は8×9整数変換、を係数に適用して、残差ブロックを生成する。その後、復号されたブロックを形成するために、予測ビデオブロックが、残差ブロックを使用して加算器64によって生成される。復号されたブロックをフィルタリングしてブロック歪みを除去するために、デブロッキングフィルタ(示されない)が適用され得る。その後、フィルタリングされたブロックは、後続のビデオフレームの復号のための参照フレームを提供すること、及び、ディスプレイデバイス28(図1)を駆動するために復号されたビデオを生成することを行う参照フレーム記憶装置62に配置される。
[0046] 上述されたように、ビデオエンコーダ20は、イントラコード化及びインターコード化の一方又は両方、或いは、同一のフレーム又は隣接フレーム内のブロックへの整合ブロックを探索することでブロック(「マクロブロック」とも呼ばれる)をコード化することを含む他のコード化技法を実行し得る。上述されたように、異なるマクロブロックは、異なるサイズ及び/又は形であり得ることに留意されたい。潜在的な整合ブロックとしてチェック又は探索されることとなるブロックは、本明細書において「候補ブロック」と呼ばれ得る。
[0047] 高解像度及び/又は高いフレームレートのビデオを符号化する際、ビデオエンコーダ20は、ビデオの画像を処理するための制限された時間量が存在し得る。これは、各画像の各マクロブロックに対して、制限された処理時間が存在し得ることを意味する。
[0048] 更に、幾つかの例において、ビデオエンコーダ20は、高解像度及び/又は高いフレームレートのビデオを符号化することに加え、低解像度及び/又は低いフレームレートのビデオを符号化するために使用され得る。結果として、処理時間を低減する、コード化のための候補ブロックの効率的な探索を提供し、更に、例えば、コード化されるべきビデオの態様(例えば、解像度、フレームレート、等)に依存して、例えば、どの複雑度レベルで、及び、どれだけ長く探索が実行されるかという観点で調節可能である(例えば、プログラマブルである)システム及び方法のための技法が本明細書で説明される。様々な態様が本明細書で説明される。これらの態様が、ビデオエンコーダ20又は他の適切なハードウェア及び/又はソフトウェアによって、任意の態様を含む又は除く任意の組み合わせで実行され得ることに留意されたい。
[0049] 幾つかの態様において、ビデオエンコーダ20は、符号化されるべきビデオの形式(例えば、フレームサイズ及びフレームレート)に対応する(scale with)ように構成される。具体的には、ビデオエンコーダ20は、それが、候補ブロックを探索するために使用される処理サイクルの数を調節するように構成されるという点でプログラマブルあり得る。使用される処理サイクルの数は、例えば、適切な処理サイクルの数を反映するようにビデオエンコーダ20に関連付けられたプログラミングを変更すること(例えば、レジスタ値、算術論理、等を調節すること)によって、手動で調節され得る。幾つかの態様において、使用される処理サイクルの数は、例えば、符号化されるべきビデオの形式(例えば、フレームサイズ、フレームレート、等)、及び/又は、ビデオを符号化するために使用されるコード化スキーム(例えば、規格)(例えば、H.264、VP8、MPEG−4、等)に基づいて、自動的に調節され得る。例えば、より高いフレームレート及び/又はより大きいフレームサイズ(例えば、閾値を上回る)は、全体を符号化するために、より多くの処理時間を費やし得る。そのため、より少ない数の処理サイクルが、候補ブロックを探索するために割り振られ得る。同様に、例えば、より低いフレームレート及び/又はより小さいフレームサイズ(例えば、閾値を下回る)は、全体を符号化するために、より短い処理時間を費やし得る。そのため、より多くの数の処理サイクルが、候補ブロックを探索するために割り振られ得る。
[0050] 幾つかの態様において、ビデオエンコーダ20はまた、それが、調節可能な優先スキームに従って候補ブロックを探索するように構成されるという点でプログラマブルであり得る。例えば、優先スキームは、ビデオデータを符号化するために使用されるコード化スキーム(例えば、H.264、VP8、MPEG−4、等)に基づいて調節され得る。このように、候補ブロックの探索が実行される順序は、特定のコード化スキームに最適化されることができる。例えば、1つの優先スキームは、ビデオのフレームの中央の近くの候補ブロックを最初に探索し、フレームの周辺(periphery)の候補ブロックを後で探索することを備え得る。追加的又は代替的に、インターフレーム候補ブロック(時間予測子を使用した)は、コード化スキームに依存して、イントラフレーム候補ブロック(空間予測子を使用した)の前に探索され得るか、又はその逆であり得る。例えば、幾つかのコード化スキームにおいて、インターフレーム候補ブロックは、イントラフレーム候補ブロックよりも少ない数のビットを使用してコード化され得るため、最初に探索され得る。別の例において、候補ブロックは、1つ以上の方法(例えば、インターフレーム(時間)探索、イントラフレーム(空間)探索、サブサンプル探索エンジン(SSE)探索、動きベクトル予測(MVP)探索、等)を使用して探索され得る。これらの1つ以上の方法は、符号化に使用されたコード化スキームに依存して、特定の順序で探索され得る。
[0051] 図4Aは、参照フレームにおける候補ブロックを識別するために使用され得る動きベクトル候補の例を示す。候補ブロックは、例えば、参照フレームのマクロブロックといった、参照フレームにおけるピクセル値のグループである。動きベクトル候補及び候補ブロックは、交換可能に使用され得る。関心点(POI)が、フレーム425のマクロブロック(MB)内に示される。この関心点に加えて、幾つかの追加ブロックが、候補ブロックとして使用され得る。例えば、図4Aでは、時間予測子値T1、T2、T3、及びT4 430が提供される。
[0052] 幾つかの空間予測子もまた、このフレームの関心点の近くに含まれ得る。図4Aに示されるように、空間予測子値S1、S2、S3、S4、S5、及びS6が提供される。幾つかの実現において、サブサンプル探索エンジン値435もまた提供され得る。図4Aに示される関心点は、SSE−1、SSE−2、SSE−3、SSE−4、SSE−5、SSE−6、SSE−7、及びSSE−8で識別される8つのサブサンプル探索エンジン値に関連付けられる。上述されたように、探索に利用可能な候補ブロックは、図4Aに示されたものよりも多くの又は少ない値を含み得る。
[0053] 図4Bは、候補ブロックを探索するための順序の例を示す。図4Bに示される順序は、図4Aで識別された候補ブロックに基づく。動きベクトル候補450は各々、識別子(ID)455に関連付けられる。候補ブロック450の順序付けは、候補ブロックが探索されることとなることを必ずしも意味するわけではない。説明されるように、幾つかの候補ブロック450は、ビデオデータの特定の部分について、探索から省略され得る。
[0054] 図4Bに示される実現において、候補ブロック450は、優先探索の順序で編成される。探索されるべき第1のブロックは関心点である。探索すべき第2のブロックは、関心点からのブロックオフセットである。例えば、このオフセットは、垂直及び/又は水平オフセットに沿っている。探索すべき第3のブロックは、動きベクトル予測(MVP)である。MVP候補は、予測された動きベクトルの周りの候補ブロックを探索することに対応する。探索すべき第4のブロックは、第1のサブサンプル探索エンジン候補ブロック(SSE−1)によって識別されたエリアの周りの候補ブロックである。次に、空間予測された(例えば、イントラフレーム)ブロック(S1−S6)の各々が探索され得る。次に、SSE−2及びSSE−3の周りの候補ブロックが次に探索され得、時間(インターフレーム)候補ブロックT1〜T4が続く。その後、SSE−4〜SSE−8によって識別された残りの候補ブロックが探索され得る。
[0055] 図4Bに示される順序付けは、順序付けの単なる一例であり、特定のコード化スキーム、フレームサイズ、及びフレームレートと共に有益に使用され得る。順序付けは、候補ブロック450の探索に使用すべきブロックの進行を識別するために使用され得る。
[0056] 図5は、例示的な候補ブロック探索のためのプロセスフロー図を示す。図5に示されるプロセスは、ソースデバイス12のような本明細書で説明されるデバイスによって、例えば、ビデオエンコーダ20を介して実行され得る。図5に示されるプロセスは、図4Bに示されたもののような候補ブロックの順序付けを、入力として受け取るだろう。説明を容易にするために、図5は、図4Bの順序付けを使用して説明されるだろう。しかしながら、幾つかの実現では順序付けが異なり得るため、図5のプロセスが、様々な順序付けに適用され得ることは理解されるだろう。プロセスへの第2の入力は、3つの方法の各々を使用して探索すべき候補の数である。
[0057] 幾つかの態様において、ビデオエンコーダ20は、示されるプロセスを実行するようにプログラムで(programmatically)構成され得る。ビデオエンコーダ20は、互いに似ていない候補ブロックの探索を優先するように構成され得る。例えば、幾つかの候補ブロックは、空間的に所与のフレーム内の同一のロケーションの近くにあり得、よって、類似した画像データを含み得る。これらの類似した候補ブロックを探索することは、貴重なメモリ(例えば、ランダムアクセスメモリ(RAM))帯域幅、処理電力、及び/又は他のソースデバイス12リソースを浪費し得る。結果として、ビデオエンコーダ20は、候補ブロックの探索がすでに実行されたロケーションの近くの候補ブロックの探索を無視する(例えば、除外する)ように構成され得る。
[0058] この除外は、設定可能な距離値又は閾値に基づき得る。結果として、幾つかの候補ブロックが、空間的に互いに距離値又は閾値距離(例えば、候補ブロックの中心から測定された、候補ブロックの最も近い外縁から測定された、等)内である場合、そのような候補ブロックの全てに満たない数(例えば、1つ)が、マクロブロックへの潜在的な整合について探索され得、他のそのような候補ブロックは、探索から除外される。幾つかの態様において、探索されることとなる候補ブロックを定義するためのブロックの選択/除去は、処理サイクルの使用を最大化するために、ビデオエンコーダ20又は他のハードウェア構成要素によって実行されるべき他の処理(例えば、動きベクトル処理)と並行して実行され得る。例えば、より詳細に以下で説明されるように、図4Bの特定の候補ブロックは、探索されるであろう候補ブロック間の類似性により、探索プロセスから除去され得る。
[0059] 幾つかの態様において、ビデオエンコーダ20は、それが、候補ブロックを探索する際に調節可能な探索複雑度を有するように構成されるという点でプログラマブルである。例えば、高複雑度探索は、より低い数の候補が探索されることとなり得、低複雑度探索は、より高い数の候補が探索されることとなり得る。結果として、ビデオエンコーダ20は、探索されている画像に合わせられるようにプログラムされることができる。例えば、より大きいサイズのより高い解像度のビデオマクロブロックは、より低い解像度のビデオよりも類似した動きベクトルを有し得(例えば、より大きいブロックは、1つのフレーム内で空間的に類似しているか、又は、複数のフレーム間で時間的に類似しており)、よって、低複雑度探索が、より多くの候補を探索するために利用され得る。しかしながら、より低い解像度のビデオは、類似した動きベクトルを有するより大きいサイズのマクロブロックを有していない可能性があり、むしろ、類似した動きベクトルを有するより小さいマクロブロックだけを有し得る。結果として、そのようなより低い解像度のビデオの場合、より高い品質であるより少ない数の候補を探索する高複雑度探索が利用され得る。このように、ビデオエンコーダ20は、探索される候補ブロックのサイズ(例えば、16×16、16×8、8×16、8×8、等)を調節することで、候補ブロックを探索する際の複雑度を調節するようにプログラマブルである/構成され得る。サイズは、探索されるべき画像(例えば、画像の解像度、ビデオのフレームレート、等)に基づいて調節され得る。更に、例えば、異なる組み合わせにおける1つ以上のサイズの1つ以上の探索が、探索されるべき画像に依存して使用され得る。
[0060] 図5において、ノード502では、関心点候補が、低複雑度探索を使用して探索される。マクロブロックが16×16マクロブロックである実現では、関心点は、16×16ブロックを使用して探索されるであろう。
[0061] 図6は、低複雑度探索プロセスの例を示す。幾つかの実現では、サイズが16×16の候補ブロックにのみ基づいて画像が探索され得る。動き値がマクロブロックレベルで決定されるため、マクロブロックに含まれる各サブブロックは、同一の動きベクトルを有すると推測される。
[0062] 低複雑度探索では、16×16候補ブロック内のエリア全体がブロック及びより小さいサブブロックと整合させるために、コストなしで(例えば、計算コスト無しで)探索される。全てのブロックに対して同一の動きベクトルが使用されるため、探索の精度は、落ちる可能性がある。そのような態様は、例えば、より大きいフレームサイズ及び/又はより高いフレームレート(例えば、閾値を上回る)に対して使用され得る。別の態様において、幾つかのブロックは、サイズが16×16の候補ブロックに基づいて探索され、他のものは16×8に基づいて探索され、他のものは8×16に基づいて探索され、更に他のものは8×8に基づいて探索され得る。これらは、後続の段落で説明されるように、中複雑度探索及び/又は高複雑度探索を使用して行われ得る。
[0063] 16×16候補ブロックは、サイズが8×8である4つの等しいサブブロックへと分割され得る。図6に示されるように、サブブロック5(SB5)、サブブロック6(SB6)、サブブロック7(SB7)、及びサブブロック8(SB8)は、16×16候補ブロックに含まれる。各サブブロックは、関連コスト値を有する。一例において、コスト値は、ピクセル間の絶対差分値和(sum of absolute difference)であり得る。より大きいサブブロックのコストを作り出すために、これらのサブブロックについてのコスト値が加算され得る。例えば、16×8の寸法を有するサブブロック1(SB1)を生成するために、SB5とSB6が加算され得る。同様に16×8サブブロックであるサブブロック2(SB2)を生成するために、SB7とSB8が加算され得る。SB5とSB7を加算することで、8×16の寸法を有するサブブロック3(SB3)が生成される。同様に8×16サブブロックであるサブブロック4(SB4)を生成するために、SB6とSB8が加算され得る。候補ブロック全体についてのコスト値は、サブブロック0(SB0)で表され、それは、必ずしも、サブブロックである必要はなく、むしろ、各構成サブブロックSB5〜SB9についてのコスト値の集合であり得る。SB0は、16×16の寸法を有する。
[0064] 図5に戻り、所与のマクロブロック、フレーム、又はビデオ入力について、グローバル動き値が提供され得る。グローバル動き値は、マクロブロック、フレーム、又はビデオ入力についてのピクセルの変位全体を示す。ノード504において、グローバル動きオフセット候補は、低複雑度探索を使用して探索される。グローバル動きオフセット値がゼロである場合、この探索は、ノード502で実行されたものと同一になるであろう。そのような実現では、ノード504での探索は省略され得る。グローバル動きオフセットがゼロでない場合(例えば、xオフセット及び/又はyオフセット値を有する場合)、関心点±グローバルオフセット値に位置付けられた候補ブロックが探索される。
[0065] ノード502において、低複雑度探索を使用して関心点候補を探索することは、比較が、マクロブロックについての16×16予測子だけを有する探索に基づくため、整合の荒い決定(coarse grained determination)をもたらす。
[0066] ノード508において、候補ブロックは、更なる考慮(consideration)から除外される。除外は、候補ブロックの他の候補ブロックまでの距離に基づく。考えられ得る1つの距離は、他の候補ブロックまでのピクセル距離である。候補ブロックについての距離が指定の閾値未満である場合、候補ブロックは、この候補に関連付けられた動きが他の候補ブロックと比べて非常に小さいため、更なる考慮から除外され得る。閾値は、x及び/又はy動き値に沿って指定され得る。閾値は、例えば、符号化されるべき入力されたビデオ、デバイスについての動作条件(例えば、負荷、ネットワークトラフィック、リソース利用性)、等に基づいて、デバイスについて静的に構成されうる(例えば、メモリに記憶される)か、ユーザ構成されるか、又は動的に決定され得る。
[0067] 過度に多くの候補が考慮から除外された場合、ビデオエンコーダ20は、割り当てられた探索時間がそのマクロブロックに対して使用され得るように、関心点、MVP、サブサンプル探索エンジン候補のような、重要な候補の周りを探索するようにプログラムされ得る。上述されたように、異なるコード化スキームは、当業者によって理解されるように、異なる順序付けから利益を得ることができる。
[0068] ノード510において、除外されていない候補ブロックについての動きベクトルは、低複雑度探索を使用して探索される。
[0069] 候補ブロックのうちの幾つかが考慮から除外されている可能性があるため、コスト値が生成される必要のある候補ブロックの数は、全ての候補ブロックについて算出を実行するよりも小さい可能性がある。これは、より少ない数の候補ブロックを処理することが、候補ブロックのセット全体を処理するよりも少ない処理時間、電力、メモリ、等を要求し得るため、1つの非限定的な利益として、ビデオデータを符号化するために消費されるリソースの低減を提供する。幾つかの実現において、動きベクトル値は、候補動きベクトルプロセッサに結合された絶対差分値和エンジンにより生成され得る。プロセスは、二乗差分和(sum of squared difference)、絶対変換距離和(sum of absolute transformed distance)、等の他の推定プロシージャを使用して、又は、それと併用して、除外されていない候補についての動きベクトル情報を取得し得る。
[0070] 決定ノード512において、ノード502〜510を介して探索される候補ブロックの数が、低複雑度探索を使用して探索されるべき候補の所望の数のよりも多いか否かについての決定がなされる。
[0071] 探索される候補ブロックの数が、低複雑度探索の所望の数よりも大きくない場合、プロセスはノード514に進む。ノード514において、除外されていないサブサンプル探索エンジンの周りの候補ブロック及び動きベクトル予測子候補ブロックが低複雑度探索を使用して探索される。これにより、除外されていないサブサンプル及び動きベクトル予測子候補ブロックの周りを追加で探索することが可能になるため、これは、現在のマクロブロックについて整合を約束することを表し得る。その後、プロセスは、以下で説明されるようなノード516に進む。決定ノード512に戻り、探索される候補ブロックの数が、中複雑度探索の所望の数以下である場合、プロセスはノード516に進む。
[0072] ノード516において、候補ブロックは、図7に示されるもののような中複雑度探索で探索される。
[0073] 図7は、サブブロックレベル予測子を使用した中複雑度探索プロセスの例を示す。図7に示される探索は、1つの16×16探索、1つの16×8探索、1つの8×16探索、及び3つの8×8探索を実行することを含み得る。図7の探索は、図6に示された探索と比べて、より高いレベルの計算複雑度を有し得る。図6の探索とは異なり、サブブロックは、全てが同一の動きベクトル候補を有しているものとは推測されない。代わりに、図7では、サブブロック0(SB’0)、候補ブロックの最も左上に位置付けられたサブブロックに対応するサブブロック5(SB’5)は、候補ブロックの最上行に位置付けられた16×8サブブロックに対応するサブブロック1(SB’1)、及び、候補ブロックの左手の列に位置付けられた8×16サブブロックに対応するサブブロック3(SB’3)は、同一の動き値を有するものと推測される。結果として、SB’0についてのコストの決定はまた、SB’5、SB’1、及びSB’3についてのコストを提供する。
[0074] 16×8サブブロックであるサブブロック(SB’4)についてのコストを生成するために、追加の1つの算出が必要である。更なる1つの算出が、8×16サブブロックであるサブブロック(SB’2)についてのコスト値を生成するために実行される。8×8サブブロックであるサブブロック6(SB’6)、サブブロック7(SB’7)、及びサブブロック8(SB’8)の各々についてコスト値を生成するために、3つの算出が必要とされる。
[0075] 図5に戻り、ノード516では、中複雑度探索において、幾つかのサブブロックについての候補ブロックは、優先のサブブロックについて探索が行われた後にのみ知られる。例えば、SB’4候補ブロックは、SB’0の探索の後にのみ決定され得る。同様に、SB’7候補ブロックは、SB’6が探索されるのを待つ必要があり、SB’8は、SB’6及びSB’8が探索されるのを待つ必要があるだろう。先と同様に、この探索は、全てのサブブロックが同一の動きベクトルを有すると想定するマクロブロックレベル値に基づく図6に示される探索、及びサブブロックレベルで実行され且つ各サブブロックが異なる動きベクトルを有すると想定する図8に示される探索との比較で「中」複雑度として説明される。
[0076] 図8は、サブブロックレベルの予測子を使用した高複雑度探索プロセスの例を示す。図8に示される探索プロセスは、各サブブロックがそれ自体の動きベクトルを有しているものと推測する。結果として、各サブブロックは、関連コスト値を生成するための探索を含む。
[0077] ノード518において、候補ブロックは、図8で示されたもののような高複雑度探索に従って、サブブロック予測子値を使用して再度探索される。高複雑度探索において、全てのサブブロックが異なる候補ブロックを探索することができ、1つのサブブロックの探索は、優先のサブブロック探索(例えば、ラスタ走査順序で)が実行された後にのみ開始されることができる。
[0078] 以下の表1は、本明細書で説明され、図6、7、及び8に示される3つの探索を要約したものである。
Figure 0006195912
[0078] 当業者によって理解されるように、探索されるべき画像に基づき、異なるブロックサイズに対し異なる数の探索を用いて、様々な探索スキームが考え出され(devise)及び/又は使用され得ることに留意されたい。例えば、より大きいフレームサイズ及びより高いフレームレート(例えば、閾値を上回る)の場合、図6に関して説明されたもののようなより多くの探索が実行され得る。より小さいフレームサイズ及びより低いフレームレート(例えば、閾値を下回る)の場合、図7及び8に関して説明されたもののようなより多くの探索が実行され得る。幾つかの態様では、ビデオの候補ブロックを探索するために多数の探索スキームが使用される場合、より低いサイクルカウントコストでより高いレベルの性能を得るために、低複雑度探索から生成された絶対差分値和が、より高い複雑度探索からのより正確な動きベクトルコストとともに再使用され得る。
[0080] 図9は、候補ブロックを探索するための例示的なプロセス900のフローチャートを示す。探索するためのプロセスは、ソースデバイス12のような、本明細書で説明されたデバイスのうちの1つ以上によって実行され得る。当業者によって及び本開示の教示によって理解されるように、プロセス900で説明される様々なステップが示されたものとは異なる順序で実行され得ること、及び/又は、幾つかのステップが追加又は除去され得ることに留意されたい。
[0081] ノード902において、ビデオ画像について探索されるべき候補ブロックの数が設定/調節される。探索されるべき候補ブロックの数は、所望の符号化時間を達成するために、例えば、ビデオ画像(例えば、フレームサイズ、フレームレート、等)の形式に基づいて設定され得る。候補ブロックのうちの少なくとも1つは、ビデオデータの別のフレームのブロックに対応する(例えば、整合する)。整合は、必ずしも、等しいことを示す必要はないが、所与の候補ブロックが、動き推定が実行されているブロックに対応する可能性が最も高いブロックであることを示し得る。
[0082] ノード904において、探索すべき候補ブロックのうちの1つ以上が、候補ブロック間の距離に基づいて選択される。上述されたように、幾つかの候補ブロックは、近くの候補ブロックが探索から除外され得る以前に探索された候補ブロックの十分近くに位置付けされ得る。例えば、特定のブロックは、他のブロックへの空間類似性により探索されないため、候補ブロックとして除去され得る。
[0083] ノード906において、候補ブロックを探索するための方法は、ビデオデータの形式に基づいて選択される。方法は、図6、7、及び8に関して説明された探索のうちの1つ以上を含み得る。
[0084] ノード908において、選択された方法及び選択された候補ブロックに基づいて、ブロックについて動きが推定される。
[0085] 図10は、動き推定を実行するための装置のブロック図を示す。装置1000は、動き推定を実行するためにデバイスに含まれ得る特徴のうちのほんの幾つかを示す。デバイス1000は、候補カウント生成器1005、候補セレクタ1010、探索方法セレクタ1015、及び動き推定器1020を含む。
[0086] 候補カウント生成器1005は、探索されるべきビデオデータのフレームの候補ブロックの数を識別するように構成される。候補カウント生成器1005は、プロセッサ、メモリ、フレームレート検出器、フレームサイズ検出器、及びビデオ符号化方法検出器のうちの1つ以上を含み得る。幾つかの実現において、候補ブロックの数を識別するための手段は、候補カウント生成器1005を含み得る。
[0087] 候補セレクタ1010は、候補ブロック間の距離に基づいて、探索すべき候補ブロックのうちの1つ以上を選択するように構成される。候補セレクタ1010は、プロセッサ、メモリ、及び比較器(例えば、ブロック比較器)のうちの1つ以上を含み得る。幾つかの実現において、候補ブロックのうちの1つ以上を選択するための手段は、候補セレクタ1010を含む。
[0088] 探索方法セレクタ1015は、ビデオデータの形式に基づいて、選択された候補ブロックを探索するための方法を選択するように構成される。探索方法セレクタ1015は、プロセッサ、メモリ、比較器、フレームレート検出器、フレームサイズ検出器、及びビデオ形式検出器のうちの1つ以上を含み得る。探索するための方法を選択するための手段は、幾つかの実現において、探索方法セレクタ1015を含み得る。
[0089] 動き推定器1020は、選択された方法及び選択された候補ブロックに基づいて、別のフレームのブロックについて動きを推定するように構成される。動き推定器1020は、プロセッサ、メモリ、比較器、算術演算ユニット、差分エンジン(例えば、絶対差分値和エンジン)、及び、生成された動きベクトルを送信するように構成された送信機のうちの1つ以上を含み得る。選択された方法及び選択された候補ブロックに基づいて、別のフレームのブロックについて動きを推定するための手段は、幾つかの実現において、動き推定器1020を含み得る。
[0090] 図11は、候補動き推定プロセッサを含む動き推定ユニットのブロック図を示す。候補動き推定プロセッサ1102は、図10で示され説明された装置1000に類似し得る。動き推定ユニット32は、上述されたように現在のビデオブロック30を取得する。現在のビデオブロック30は、候補動きベクトル(MV)プロセッサ1102に提供される。例えば、ピクセルフェッチ1104は、現在のビデオブロック30を構文解析し、それらに含まれるピクセル値を提供するように構成され得る。候補動きベクトルプロセッサ1102は、現在のビデオブロック30に対応するビデオデータの一部について候補ブロックを探索するように構成される。このプロセスは、例えば、図5及び9において、上述される。候補動きベクトルプロセッサ1102はまた、予測子1106を受信し得る。予測子は、図4Aに関して説明されたように、空間、時間、及び/又はサブサンプルリングされた予測子を含み得る。
[0091] 候補動きベクトルプロセッサ1102は、探索されるべき候補ブロックを識別する動きベクトル値を提供する。示される候補動きベクトルプロセッサ1102は、動きベクトル(MV)コスト算出器1108に結合される。動きベクトル(MV)コスト算出器1108は、ビデオデータの一部に関連付けられたコスト値を生成するように構成される。これらのコストは、絶対差分値和/コスト評価器1110に提供され得る。絶対差分値和/コスト評価器1110は、複数の算出されたコストのうちのどれが、ビデオデータの所与の部分について最もあり得そうであるか(例えば整合であるか)を識別するように構成され得る。絶対差分値和/コスト評価器1110はまた、現在のビデオブロックと、候補動きベクトルプロセッサ1102によって現在のビデオブロック30についての最も近い整合として識別された候補ブロックとに基づいて、現在のビデオブロック30について動き推定値1112を生成するように構成され得る。動き推定値1112は、上述されたような更なる符号化プロセスに使用され得る。例えば、動き推定値は、部分的な探索に使用され得る。
[0092] 動き推定ユニット32がより少ない数の要素又は追加の要素を含みうることは理解されるであろう。説明の明確さを提供するために、ビデオ符号化のためのプログラマブル及びスケーラブルな整数探索に関連した機能を含む動き推定ユニット32が示される。
[0093] 図12は、候補ブロックの効率的な探索のプロセス図を示す。示されるプロセスは、候補ブロックの順序付けが前もって決定されているものと想定する。しかしながら、幾つかの実現では、候補ブロックの順序付けはまた、例えば、入力されたビデオデータに基づいて動的に生成され得る。
[0094] ノード1202において、除外距離閾値(exclusion distance threshold)が取得される。除外距離閾値は、x距離値及びy距離値として提供され得る。幾つかの実現において、同一の除外距離閾値がx距離値及びy距離値として使用され得る。例として、除外距離閾値は、8であり得る。
[0095] ノード1204において、それぞれ図6、7、及び8について説明された探索スキームを使用して探索すべき候補ブロックの所望の数に対応する値NM1、NM2、及びNM3が取得される。これらの値は、例えば、メモリ(例えば、ユーザによって設定された選好/構成)から取得されうるか、或いは、ビデオデータを符号化するために使用されたコード化スキームに基づいて自動的に取得され得る。候補ブロックの数の和は、候補ブロック順序付けにおける候補ブロックの総数を超えるべきではない。そのため、候補ブロックの数は、対応する方法によって探索されることとなる順序付けにおける候補ブロックの範囲に対応し得る。例えば、20個の候補ブロックが特定の探索に対して使用される場合、NM1は10であり得、NM2は4であり得、NM3は1であり得る。このような構成において、10に満たない数の候補ブロックが粗粒方法(coarse grained method)を使用して探索され、4に満たない数の候補ブロックが中粒方法(medium grained method)を使用して探索され、1に満たない数の候補ブロックが細粒方法(fine grained method)を使用して探索されるだろう。
[0096] ノード1206において、最初の探索は、関心点について実行される。関心点は、一般に、プロセスが整合を見つけようと試みている現在のブロックに整合する可能性のある位置に位置付けられた最初の候補ブロックに対応する。ノード1206の探索は、例えば、低複雑度探索に基づいた粗粒探索(coarse grained search)である。粗粒探索は、図6に関して上述されたものに類似し得る。
[0097] ノード1208において、粗粒探索は、関心点の候補ブロックからのオフセットに位置付けられた候補ブロックについて実行され得る。オフセットは、上述されたようなグローバル動きオフセットであり得る。グローバルオフセットが存在しないか、又は、オフセット結果の適用が、ノード1026における、関心点について探索された同一の候補ブロックに帰着した場合、ノード1028での探索は、省略され得る。
[0098] 関心点の候補ブロック及び起こりうる任意のオフセットを高いレベルで探索し、その後、プロセスは、後続の候補ブロックの処理を始める。後続の候補ブロックの各々を探索する前に、別の候補ブロックまで距離閾値内に位置付けられている候補ブロックを除去するために後続の候補ブロックのリストが削られ得る(purned)。
[0099] ノード1210において、候補ブロックの粗粒探索の数についてのカウンタが初期化される。サブプロセス1212は、順序付けに含まれる候補ブロックの一部について実行される。例として、順序付けにおける候補ブロックの数が20であり、NM1が10であり、NM2が4であり、NM3が1である場合、示されるサブプロセス1212は、候補ブロック5〜20について実行され得る。
[0100] 決定ノード1214において、現在の候補ブロックが使用中であるか否かが決定される。現在の候補ブロックは、サブプロセス1212のために識別された複数の候補ブロックの一部のうちの1つの候補ブロックに対応する。決定は、候補ブロックに関連付けられたメモリ内のフラグ値に基づき得る。候補ブロックが使用中でない場合、プロセスは、以下で説明されるようなサブプロセス1220に進む。候補ブロックが探索から除外されていない(例えば、使用中である)場合、プロセスは、決定ノード1216に進む。
[0101] 決定ノード1216において、現在の候補ブロックの現在の距離が閾値距離内であるか否かについて決定がなされる。例えば、決定は、現在の候補ブロックについてのx動きベクトル値がx距離閾値未満か否かを識別し得る。決定は、複合物であり得、これによって、x及びyの両方の距離が比較される。幾つかの実現では、1つの比較(例えば、xだけ又はyだけ)を満たすことが、決定を提供するのに十分であり得る。
[0102] 現在の候補が閾値距離内である場合、現在の候補ブロックは、探索されないそのような短い距離を動いたと考えられ得る。ノード1218において、現在の候補ブロックは、更なる探索から除外される。上述されたように、現在の候補ブロックに関連付けられたフラグは、候補ブロックが更なる探索から除外されるべきであることを示す値に設定され得る。現在の候補ブロックが閾値距離外である場合、現在の候補ブロックは、未だ、推定段階にあるブロックについての可能な整合に対して考えられ得る。
[0103] 閾値に対する現在の候補ブロックの動きをチェックし、サブプロセス1220は、後続の候補ブロックの何れかが探索から除外され得るか否かを決定するために、後続の候補ブロック(例えば、順序的に現在の候補ブロックの後に現れる候補ブロック)の各々と現在の候補ブロックを比較するために提供される。この除外はまた、現在の候補ブロックと後続のブロックとの間の距離(例えば、距離閾値)に基づき得る。
[0104] サブプロセス1220は、現在の候補ブロックの後に現れる、順序付けにおける各候補ブロックについて実行される。例として、順序付けにおける候補ブロックの数が20であり、NM1が10であり、NM2が4であり、NM3が1であり、現在の候補ブロックのインデックスが5である場合、示されるサブプロセス1220は、候補ブロック6〜20について実行され得る。
[0105] サブプロセス1220は、決定ノード1222を含む。決定ノード1222は、処理されるべき後続の候補が存在するか否かを決定する。決定ノード1222において、現在の候補ブロックの後の更なる候補ブロックが何れも利用可能でないと決定されると、サブプロセス1220は終了する。プロセスは、以下でより詳細に説明されるようなノード1228に進む。
[0106] 決定ノード1222に戻り、後続の候補ブロックが存在する場合、現在の候補ブロックと、サブプロセス1220によって処理されている後続の候補ブロックとの間の差分が、決定ノード1224において閾値距離と比較される。幾つかの実現において、これは、2つのブロックについてのx及び/又はy動き値の間の差分の絶対値をとることを含み得る。
[0107] 距離が閾値内であると決定されると、ノード1226において、後続の候補ブロックは、更なる探索から除外される。上述されたように、処理されている後続の候補ブロックに関連付けられたフラグは、候補ブロックが更なる探索から除外されるべきであることを示す値に設定され得る。決定ノード1224において、後続の候補ブロックと現在の候補ブロックとの間の距離が閾値外であると決定されると、後続の候補ブロックは、使用中のままとなり、プロセスは、上述されたような決定ノード1222に戻る。
[0108] 一度サブプロセス1220が後続の候補ブロックの各々を処理すると、決定ノード1228において、現在の候補ブロックが未だ使用中であるか否かについての決定がなされる。この優先処理は、現在の候補ブロックがもはや使用中でないことを、その動き情報又は他の候補ブロックとの比較動きに基づいて示している可能性がある。現在の候補ブロックがもはや使用中でない場合、プロセスは、以下で説明されるようなノード1236に進む。現在の候補ブロックが未だ使用中である場合、ノード1230において、現在の候補ブロックのサブブロックについての動き値が取得される。例えば、動き値を生成するために、絶対差分値和エンジンが使用され得る。ノード1232において、粗粒探索カウンタが増分される。決定ノード1234において、カウンタが、中粒探索(medium grained search)に関連付けられた候補ブロックの数(NM2)を超えると、プロセスは、更なる処理を省略し、以下で更に詳しく説明されるようなノード1242に進む。
[0109] カウンタがNM2を超えない場合、プロセスは、決定ノード1236に進む。候補ブロック順序が追加の候補ブロックを含む場合、現在の候補ブロックは、その順序において次の候補ブロックに設定される。その後、サブプロセス1212は、上述されたような決定ノード1214に戻る。候補ブロック順序リストがサブプロセス1212によって完全に処理されると、サブプロセス1212は終了し、プロセスは、ノード1240に進む。
[0110] ノード1240では、除外されていない候補は、特定の数の粗粒探索が実行されるまで順序を下げ続けて、探索される。ノード1242では、除外されていない候補は、現在推定段階にあるブロックへの可能な整合について、推定段階にあるブロックについての可能な整合が、探索される。中粒探索は一般に、探索のために共通サブブロックレベル予測子の使用を指す。ノード1242での探索は、図7に関して示され説明された探索に準拠し得る。
[0111] ノード1244において、除外されていない候補は、細粒探索(fine grained search)を使用して探索される。細粒探索は、一般に、候補ブロックの各サブブロックについて予測子が使用される探索を指す。ノード1244での探索は、図8に関して示され説明された探索に準拠し得る。
[0112] 説明された動き推定の実験的な実現は、動き推定を実行する既存のエンコーダに対する幾つかの改善をもたらした。表2は、共通参照エンコーダ(common reference encoder)と比較して、エンコーダについての平均ビットレート損失の例を提示する。他のエンコーダと比較してのビッドレート損失の改善は、開示された態様の効率性の単なる1つの非限定的な測定値である。
Figure 0006195912
[0113] 本明細書において使用される場合、「決定する」又は「決定すること」という用語は、幅広い動作を包含する。例えば、「決定すること」は、算出すること、計算すること、処理すること、導出すること、調べること、ルックアップすること(例えば、表、データベース、又は、別のデータ構造をルックアップすること)、確認すること、等を含み得る。また、「決定すること」は、受信すること(例えば、情報を受信すること)、アクセスすること(例えば、メモリ内のデータにアクセスすること)、等を含み得る。更に、「決定すること」は、解決すること、選択すること、選ぶこと、確立すること、等を含み得る。
[0114] 本明細書において使用される場合、「提供する」又は「提供すること」という用語は、幅広い動作を包含する。例えば、「提供すること」は、後続の検索のためにロケーションに値を記憶すること、値を直接受信側に送信すること、値への参照を送信又は記憶すること、等を含み得る。「提供すること」はまた、符号化すること、復号すること、暗号化すること、暗号解除すること、立証すること、検証すること、等を含み得る。
[0115] 本明細書で使用される場合、項目のリスト「のうちの少なくとも1つ」に関する表現は、単一のメンバを含む、それらの項目の任意の組み合わせを指す。例として、「a、b、又はcのうちの少なくとも1つ」は、a、b、c、a−b、a−c、b−c、及びa−b−cをカバーすることが意図される。
[0116] 当業者は、情報及び信号が、様々な異なる技術及び技法の何れかを使用して表され得ることを理解するだろう。例えば、上記説明の全体にわたって参照され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、及びチップは、電圧、電流、電磁波、磁場又は磁性粒子、光場又は光粒子、或いはこれらの任意の組み合わせによって表され得る。
[0117] 当業者は、本明細書に開示された実施形態に関連して説明された様々な実例となる論理ブロック、モジュール、回路、及びアルゴリズムステップが、電子ハードウェア、コンピュータソフトウェア、又は両方の組み合わせとして実現され得ることを更に認識するであろう。このハードウェア及びソフトウェアの互換性を明確に示すために、様々な実例となる構成要素、ブロック、モジュール、回路、及びステップが、概ねそれらの機能の観点から上記で説明されている。このような機能が、ハードウェアとして実現されるかソフトウェアとして実現されるかは、特定のアプリケーション及びシステム全体に課せられる設計制約に依存する。当業者は、特定アプリケーションごとに、上で説明された機能を様々な方法で実現することができるが、このような実現の決定は本発明の範囲からの逸脱の原因になるとして解釈されるべきではない。
[0118] 本明細書で説明された技法は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組み合わせにおいて実現され得る。そのような技法は、ワイヤレス通信デバイスハンドセット及び他のデバイスへの適用を含む多数の用途を有する汎用コンピュータ、ワイヤレス通信デバイスハンドセット、又は集積回路デバイスのような様々なデバイスの何れかで実現され得る。モジュール又は構成要素として説明された任意の特徴は、統合論理デバイスでまとめて実現されるか、又は、離散的でありながらも相互作用可能な論理デバイスとして別々に実現され得る。ソフトウェアで実現された場合、本技法は少なくとも一部が、実行されると、上述された方法のうちの1つ以上を実行する命令を含むプログラムコードを備えるコンピュータ可読データ記憶媒体によって実現され得る。コンピュータ可読データ記憶媒体は、パッケージングマテリアルを含み得る、コンピュータプログラム製品の一部を形成し得る。コンピュータ可読媒体は、同期ダイナミックランダムアクセスメモリ(SSDRAM)、読取専用メモリ(ROM)、不揮発性ランダムアクセスメモリ(NVRAM)、電気的消去可能なプログラマブル読取専用メモリ(EEPROM)、フラッシュメモリ、磁気又は光学データ記憶媒体、等のランダムアクセスメモリ(RAM)のようなメモリ又はデータ記憶媒体を備え得る。コンピュータ可読媒体は、非一時的な記憶媒体であり得る。追加的に又は代替的に、本技法は少なくとも一部が、伝播信号又は波形のような、命令又はデータ構造の形式でプログラムコードを搬送又は通信し、且つ、コンピュータによってアクセス、読取、及び/又は実行可能なコンピュータ可読通信媒体によって実現され得る。
[0119] プログラムコードは、1つ以上のデジタルシグナルプロセッサ(DSP)、汎用マイクロプロセッサ、特定用途集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、又は、他の同等な集積又はディスクリートな論理回路、のような1つ以上のプロセッサを含み得るプロセッサによって実行され得る。そのようなプロセッサは、本開示で説明された技法の何れかを実行するように構成され得る。汎用プロセッサは、マイクロプロセッサであり得るが、代替的に、このプロセッサは、任意の従来型のプロセッサ、コントローラ、マイクロコントローラ、又はステートマシンであり得る。プロセッサはまた、コンピューティングデバイスの組み合わせ、例えば、DSPと、1つのマイクロプロセッサ、複数のマイクロプロセッサ、DSPコアに連結した1つ以上のマイクロプロセッサ、又は任意のそのような他の構成との組み合わせとして実現され得る。結果として、本明細書で使用される場合、「プロセッサ」という用語は、前述の構造、前述の構造の任意の組み合わせ、又は本明細書で説明された技法の実現に適したその他の構造又は装置を指し得る。加えて、幾つかの態様では、本明細書で説明された機能は、符号化及び復号のために構成された専用ソフトウェアモジュール又はハードウェアモジュール内で提供されうるか、或いは複合ビデオエンコーダ/デコーダ(CODEC)に統合され得る。
[0120] 本明細書に開示された方法は、説明された方法を達成するための1つ以上のステップ又は動作を備える。方法のステップ及び/又は動作は、本願の特許請求の範囲から逸脱せずに、互いに交換可能であり得る。換言すると、ステップ又は動作の特定の順序が明記されていない限り、特定のステップ及び/又は動作の順序及び/又は使用は、本願の特許請求の範囲から逸脱することなく変更され得る。
[0121] 本発明の様々な実施形態が説明されている。これらの実施形態及び他の実施形態は、以下の特許請求の範囲の範囲内にある。
以下に本願発明の当初の特許請求の範囲に記載された発明を付記する。
[C1] 動き推定を実行するための装置であって、
探索されるべきビデオデータのフレームの候補ブロックの数を識別し、ここで、少なくとも1つの候補ブロックは、前記ビデオデータの別のフレームのブロックに対応する、
前記候補ブロック間の距離に基づいて、探索すべき前記候補ブロックのうちの1つ以上を選択し、
前記ビデオデータの形式に基づいて、選択された前記候補ブロックを探索するための方法を選択し、
選択された前記方法及び選択された前記候補ブロックに基づいて、前記別のフレームの前記ブロックについて動きを推定する
ように構成されたプロセッサ
を備える装置。
[C2] 前記プロセッサは、前記候補ブロックを探索する順序を識別するように更に構成される、C1に記載の装置。
[C3] 前記候補ブロックの数は、所望の符号化時間に基づいて識別される、C1又は2のうちの何れか1項に記載の装置。
[C4] 前記候補ブロックの数は、前記ビデオデータの前記形式に基づいて識別される、C1乃至3のうちの何れか1項に記載の装置。
[C5] 前記ビデオデータの前記形式は、前記ビデオデータの前記フレームのサイズ及びフレームレートのうちの少なくとも1つを備える、C1乃至4のうちの何れか1項に記載の装置。
[C6] 前記候補ブロックの数は、前記フレームのサイズと、フレームサイズ閾値との比較に基づいて識別される、C5に記載の装置。
[C7] 前記候補ブロックの数は、前記フレームサイズ閾値から差し引かれる前記フレームのサイズに比例する、C6に記載の装置。
[C8] 前記候補ブロックの数は、前記フレームレートと、フレームレート閾値との比較に基づいて識別される、C5乃至7のうちの何れか1項に記載の装置。
[C9] 前記候補ブロックの数は、前記フレームレート閾値から差し引かれる前記フレームレートに比例する、C8に記載の装置。
[C10] 前記候補ブロックと別の候補ブロックとの距離が設定可能値よりも大きい場合、探索すべき候補ブロックが選択される、C1乃至9のうちの何れか1項に記載の装置。
[C11] 前記距離は、動き値を備える、C10に記載の装置。
[C12] 探索するための前記方法を選択することは、
ブロック探索サイズを識別することと、
前記識別されたブロック探索サイズと、複数の方法の各々についてのブロック探索サイズとに基づいて、前記複数の方法のうちの1つから前記方法を選択することと
を備える、C1乃至11のうちの何れか1項に記載の装置。
[C13] 前記ブロック探索サイズは、前記フレームのサイズと、フレームサイズ閾値との比較に基づいて識別される、C12に記載の装置。
[C14] 前記ブロック探索サイズは、前記フレームサイズ閾値から差し引かれる前記フレームのサイズに反比例する、C13に記載の装置。
[C15] 前記ブロック探索サイズは、前記フレームレートと、フレームレート閾値との比較に基づいて識別される、C12乃至14のうちの何れか1項に記載の装置。
[C16] 前記ブロック探索サイズは、前記フレームレート閾値から差し引かれる前記フレームレートに反比例する、C15に記載の装置。
[C17] 前記順序は、前記ビデオデータを符号化するために使用されるコード化スキームに基づいて設定される、C1乃至16のうちの何れか1項に記載の装置。
[C18] 動き推定を実行するための方法であって、
探索されるべきビデオデータのフレームの候補ブロックの数を識別することと、ここで、少なくとも1つの候補ブロックは、前記ビデオデータの別のフレームのブロックに対応する、
前記候補ブロック間の距離に基づいて、探索すべき前記候補ブロックのうちの1つ以上を選択することと、
前記ビデオデータの形式に基づいて、選択された前記候補ブロックを探索するための方法を選択することと、
選択された前記方法及び選択された前記候補ブロックに基づいて、前記別のフレームの前記ブロックについて動きを推定することと
を備える方法。
[C19] 前記プロセッサは、前記候補ブロックを探索する順序を識別するように更に構成される、C18に記載の方法。
[C20] 前記候補ブロックの数は、所望の符号化時間に基づいて識別される、C18又は19のうちの何れか1項に記載の方法。
[C21] 前記候補ブロックの数は、前記ビデオデータの前記形式に基づいて識別される、C18乃至20のうちの何れか1項に記載の方法。
[C22] 前記ビデオデータの前記形式は、前記ビデオデータのフレームのサイズ及びフレームレートのうちの少なくとも1つを備える、C18乃至21のうちの何れか1項に記載の方法。
[C23] 前記候補ブロックの数は、前記フレームのサイズと、フレームサイズ閾値との比較に基づいて識別される、C22に記載の方法。
[C24] 前記候補ブロックの数は、前記フレームサイズ閾値から差し引かれる前記フレームのサイズに比例する、C23に記載の方法。
[C25] 前記候補ブロックの数は、前記フレームレートと、フレームレート閾値との比較に基づいて識別される、C22乃至24のうちの何れか1項に記載の方法。
[C26] 前記候補ブロックの数は、前記フレームレート閾値から差し引かれる前記フレームレートに比例する、C25に記載の方法。
[C27] 前記候補ブロックと別の候補ブロックとの距離が設定可能値よりも大きい場合に、探索すべき候補ブロックが選択される、C18乃至26のうちの何れか一項に記載の方法。
[C28] 前記距離は、動き値を備える、C27に記載の方法。
[C29] 探索するための前記方法を選択することは、
ブロック探索サイズを識別することと、
識別された前記ブロック探索サイズと、複数の方法の各々についてのブロック探索サイズとに基づいて、前記複数の方法のうちの1つから前記方法を選択することと
を備える、C18乃至28のうちの何れか一項に記載の方法。
[C30] 前記ブロック探索サイズは、前記フレームのサイズと、フレームサイズ閾値との比較に基づいて識別される、C29に記載の方法。
[C31] 前記ブロック探索サイズは、前記フレームサイズ閾値から差し引かれる前記フレームのサイズに反比例する、C30に記載の方法。
[C32] 前記ブロック探索サイズは、前記フレームレートと、フレームレート閾値との比較に基づいて識別される、C29に記載の方法。
[C33] 前記ブロック探索サイズは、前記フレームレート閾値から差し引かれる前記フレームレートに反比例する、C32に記載の方法。
[C34] 前記順序は、前記ビデオデータを符号化するために使用されたコード化スキームに基づいて設定される、C18乃至33のうちの何れか1項に記載の方法。
[C35] 動き推定を実行するための装置であって、
探索されるべきビデオデータのフレームの候補ブロックの数を識別するための手段と、ここで、少なくとも1つの候補ブロックは、前記ビデオデータの別のフレームのブロックに対応する、
前記候補ブロック間の距離に基づいて、探索すべき前記候補ブロックのうちの1つ以上を選択するための手段と、
前記ビデオデータの形式に基づいて、前記選択された候補ブロックを探索するための方法を選択するための手段と、
選択された前記方法及び選択された前記候補ブロックに基づいて、前記別のフレームの前記ブロックについて動きを推定するための手段と
を備える装置。
[C36] 命令を備えたコンピュータ可読記憶媒体であって、前記命令は、
探索されるべきビデオデータのフレームの候補ブロックの数を識別することと、ここで、少なくとも1つの候補ブロックは、前記ビデオデータの別のフレームのブロックに対応する、
前記候補ブロック間の距離に基づいて、探索すべき前記候補ブロックのうちの1つ以上を選択することと、
前記ビデオデータの形式に基づいて、選択された前記候補ブロックを探索するための方法を選択することと、
選択された前記方法及び選択された前記候補ブロックに基づいて、前記別のフレームの前記ブロックについて動きを推定することと
を装置に行わせる、コンピュータ可読記憶媒体。

Claims (15)

  1. 動き推定を実行するための方法であって、
    探索されるべきビデオデータのフレームの候補ブロックのセットのサイズを識別することと、ここで、少なくとも1つの候補ブロックは、前記ビデオデータの別のフレームのブロックに対応する、
    探索すべき候補ブロックのセットを選択することと、ここで、選択された前記セットは、前記サイズに等しい最初の数の候補ブロックを含み、前記選択することは、前記候補ブロックと以前に探索されたブロックとの間の距離に基づいて前記セットから候補ブロックを除外することを備え、前記セットは、前記ビデオデータの別のフレームのブロックに対応する少なくとも1つの候補ブロックを含む、
    前記ビデオデータの形式に基づいて、選択された前記候補ブロックを探索するための探索複雑度レベルを選択することと、
    選択された前記候補ブロックから推定ブロックを識別することと、ここで、前記識別は、選択された前記探索複雑度レベルの探索方法に従って実行される、
    前記推定ブロックに基づいて、前記別のフレームの前記ブロックについて動きを推定することと
    を備える方法。
  2. 前記候補ブロックを探索する順序を識別することを更に備える、請求項1に記載の方法。
  3. 前記候補ブロックのセットの前記サイズは、所望の符号化時間又は前記ビデオデータの前記形式に基づいて識別される、請求項1又は2に記載の方法。
  4. 前記ビデオデータの前記形式は、前記ビデオデータのフレームのサイズ及びフレームレートのうちの少なくとも1つを備える、請求項1乃至3のうちの何れか一項に記載の方法。
  5. 前記候補ブロックのセットの前記サイズは、前記フレームのサイズと、フレームサイズ閾値との比較に基づいて識別される、請求項4に記載の方法。
  6. 前記候補ブロックのセットの前記サイズは、前記フレームサイズ閾値から差し引かれる前記フレームのサイズに比例する、請求項5に記載の方法。
  7. 前記候補ブロックのセットの前記サイズは、前記フレームレートと、フレームレート閾値との比較に基づいて識別される、請求項4乃至6のうちの何れか項に記載の方法。
  8. 前記候補ブロックのセットの前記サイズは、前記フレームレート閾値から差し引かれる前記フレームレートに比例する、請求項7に記載の方法。
  9. 前記候補ブロックと別の候補ブロックとの距離が設定可能値よりも大きい場合に、探索すべき候補ブロックが選択される、請求項1乃至8のうちの何れか一項に記載の方法。
  10. 前記距離は、動き値を備える、請求項9に記載の方法。
  11. 探索するための前記探索複雑度レベルを選択することは、前記フレームの前記サイズと、フレームサイズ閾値との比較に基づく、請求項1乃至10のうちの何れか一項に記載の方法。
  12. 探索するための前記探索複雑度レベルを選択することは、前記フレームの前記サイズと、フレームサイズ閾値との比較と、前記フレームレートと、フレームレート閾値との比較に基づく、請求項4乃至8のうちの何れか一項に記載の方法。
  13. 前記順序は、前記ビデオデータを符号化するために使用されたコード化スキームに基づいて設定される、請求項に記載の方法。
  14. 動き推定を実行するための装置であって、
    探索されるべきビデオデータのフレームの候補ブロックのセットのサイズを識別するための手段と、
    探索すべき候補ブロックのセットを選択するための手段と、ここで、選択された前記セットは、前記サイズに等しい最初の数の候補ブロックを含み、前記選択することは、前記候補ブロックと以前に探索されたブロックとの間の距離に基づいて前記セットから候補ブロックを除外することを備え、前記セットは、前記ビデオデータの別のフレームのブロックに対応する少なくとも1つの候補ブロックを含む、
    前記ビデオデータの形式に基づいて、選択された前記候補ブロックを探索するための探索複雑度レベルを選択するための手段と、
    選択された前記候補ブロックから推定ブロックを識別するため、及び、前記推定ブロックに基づいて、前記別のフレームの前記ブロックについて動きを推定するための手段と、ここで、前記識別は、選択された前記探索複雑度レベルの探索方法に従って実行される、
    を備える装置。
  15. 命令を備えたコンピュータ可読記憶媒体であって、前記命令は、
    請求項1〜13のうちの何れか1項に記載の方法を装置に行わせる、コンピュータ可読記憶媒体。
JP2015512708A 2012-05-14 2013-05-10 インターコード化又はイントラコード化のための候補ブロックのプログラマブル且つスケーラブルな探索 Expired - Fee Related JP6195912B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201261646808P 2012-05-14 2012-05-14
US61/646,808 2012-05-14
US13/801,622 US20130301727A1 (en) 2012-05-14 2013-03-13 Programmable and scalable integer search for video encoding
US13/801,622 2013-03-13
PCT/US2013/040532 WO2013173185A1 (en) 2012-05-14 2013-05-10 Programmable and scalable searching for candidate blocks for inter-coding or/intra coding

Publications (3)

Publication Number Publication Date
JP2015520581A JP2015520581A (ja) 2015-07-16
JP2015520581A5 JP2015520581A5 (ja) 2016-06-09
JP6195912B2 true JP6195912B2 (ja) 2017-09-13

Family

ID=49548597

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015512708A Expired - Fee Related JP6195912B2 (ja) 2012-05-14 2013-05-10 インターコード化又はイントラコード化のための候補ブロックのプログラマブル且つスケーラブルな探索

Country Status (7)

Country Link
US (1) US20130301727A1 (ja)
EP (1) EP2850833B1 (ja)
JP (1) JP6195912B2 (ja)
KR (1) KR20150018569A (ja)
CN (1) CN104285446B (ja)
IN (1) IN2014MN02186A (ja)
WO (1) WO2013173185A1 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9330171B1 (en) * 2013-10-17 2016-05-03 Google Inc. Video annotation using deep network architectures
KR102025362B1 (ko) * 2013-11-07 2019-09-25 한화테크윈 주식회사 검색 시스템 및 영상 검색 방법
US20150189269A1 (en) * 2013-12-30 2015-07-02 Google Inc. Recursive block partitioning
US10057590B2 (en) * 2014-01-13 2018-08-21 Mediatek Inc. Method and apparatus using software engine and hardware engine collaborated with each other to achieve hybrid video encoding
US9857871B2 (en) 2015-09-04 2018-01-02 Sony Interactive Entertainment Inc. Apparatus and method for dynamic graphics rendering based on saccade detection
US9930357B2 (en) * 2016-03-03 2018-03-27 Uurmi Systems Pvt. Ltd. Systems and methods for motion estimation for coding a video sequence
US10602180B2 (en) 2017-06-13 2020-03-24 Qualcomm Incorporated Motion vector prediction
US11252464B2 (en) 2017-06-14 2022-02-15 Mellanox Technologies, Ltd. Regrouping of video data in host memory
US20200014945A1 (en) * 2018-07-08 2020-01-09 Mellanox Technologies, Ltd. Application acceleration
US12058309B2 (en) * 2018-07-08 2024-08-06 Mellanox Technologies, Ltd. Application accelerator
CN118042154A (zh) * 2018-01-25 2024-05-14 三星电子株式会社 使用基于子块的运动补偿进行视频信号处理的方法和装置
US11006143B2 (en) * 2018-07-11 2021-05-11 Apple Inc. Motion vector candidate pruning systems and methods
US11985324B2 (en) 2019-03-14 2024-05-14 Hfi Innovation Inc. Methods and apparatuses of video processing with motion refinement and sub-partition base padding
JP7437426B2 (ja) * 2019-09-24 2024-02-22 オッポ広東移動通信有限公司 インター予測方法および装置、機器、記憶媒体
US11330296B2 (en) 2020-09-14 2022-05-10 Apple Inc. Systems and methods for encoding image data
CN116506628B (zh) * 2023-06-27 2023-10-24 苇创微电子(上海)有限公司 一种基于像素块的编码预测器方法、编码系统及编码装置

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6965644B2 (en) * 1992-02-19 2005-11-15 8×8, Inc. Programmable architecture and methods for motion estimation
US5959672A (en) * 1995-09-29 1999-09-28 Nippondenso Co., Ltd. Picture signal encoding system, picture signal decoding system and picture recognition system
US6937770B1 (en) * 2000-12-28 2005-08-30 Emc Corporation Adaptive bit rate control for rate reduction of MPEG coded video
US20050091311A1 (en) * 2003-07-29 2005-04-28 Lund Christopher D. Method and apparatus for distributing multimedia to remote clients
EP1615447B1 (en) * 2004-07-09 2016-03-09 STMicroelectronics Srl Method and system for delivery of coded information streams, related network and computer program product therefor
KR100681258B1 (ko) * 2004-10-02 2007-02-09 삼성전자주식회사 트랜스코딩을 위한 움직임벡터 정밀화 기반 출력움직임벡터 추정방법 및 이를 이용한 트랜스코더
TW200633539A (en) * 2005-03-09 2006-09-16 Pixart Imaging Inc Estimation method of motion vector based on distance weighted searching sequence
US7881384B2 (en) * 2005-08-05 2011-02-01 Lsi Corporation Method and apparatus for H.264 to MPEG-2 video transcoding
KR100723861B1 (ko) * 2005-11-04 2007-05-31 한국전자통신연구원 고속 움직임 예측을 위한 고속 모드 검색 장치 및 방법
JP2007142809A (ja) * 2005-11-18 2007-06-07 Matsushita Electric Ind Co Ltd 映像記録装置
US8009923B2 (en) * 2006-03-14 2011-08-30 Celestial Semiconductor, Inc. Method and system for motion estimation with multiple vector candidates
US9883202B2 (en) * 2006-10-06 2018-01-30 Nxp Usa, Inc. Scaling video processing complexity based on power savings factor
US8050324B2 (en) * 2006-11-29 2011-11-01 General Instrument Corporation Method and apparatus for selecting a reference frame for motion estimation in video encoding
JP4797999B2 (ja) * 2007-01-12 2011-10-19 株式会社日立製作所 画像符号化・復号化装置
JP4882956B2 (ja) * 2007-10-22 2012-02-22 ソニー株式会社 画像処理装置および画像処理方法
KR101454133B1 (ko) * 2010-09-02 2014-10-23 엘지전자 주식회사 영상 부호화 및 복호화 방법과 이를 이용한 장치
US20120195356A1 (en) * 2011-01-31 2012-08-02 Apple Inc. Resource usage control for real time video encoding

Also Published As

Publication number Publication date
WO2013173185A1 (en) 2013-11-21
CN104285446A (zh) 2015-01-14
IN2014MN02186A (ja) 2015-08-28
US20130301727A1 (en) 2013-11-14
CN104285446B (zh) 2018-11-09
JP2015520581A (ja) 2015-07-16
WO2013173185A8 (en) 2014-12-18
KR20150018569A (ko) 2015-02-23
EP2850833A1 (en) 2015-03-25
EP2850833B1 (en) 2016-05-25

Similar Documents

Publication Publication Date Title
JP6195912B2 (ja) インターコード化又はイントラコード化のための候補ブロックのプログラマブル且つスケーラブルな探索
US10334258B2 (en) Scalable video coding method and apparatus using inter prediction mode
CN107431820B (zh) 视频译码中运动向量推导
TWI413419B (zh) 視訊編碼中之非零修整與預測模式選擇技術
JP5752771B2 (ja) ビデオコーディングのためのテンプレートマッチング
US8995527B2 (en) Block type signalling in video coding
KR101067305B1 (ko) 공간 확장성을 위한 확장된 인터-계층 코딩
JP5844392B2 (ja) ビデオコード化における双方向予測インターモードのための動きベクトル予測子(mvp)
TWI408966B (zh) 用於視訊編碼中單向預測及雙向預測之不同權重
US9277222B2 (en) Unified fractional search and motion compensation architecture across multiple video standards
JP2017508346A (ja) ビデオコーディングのための適応的な動きベクトル分解シグナリング
JP2015529065A (ja) スケーラブルビデオコーディングおよび3dビデオコーディングのための多重仮説動き補償
US8638854B1 (en) Apparatus and method for creating an alternate reference frame for video compression using maximal differences
KR20120048612A (ko) 비디오 인코딩에서 넌-제로 라운딩 및 예측 모드 선택 기법들
US20070133689A1 (en) Low-cost motion estimation apparatus and method thereof
US9479788B2 (en) Systems and methods for low complexity encoding and background detection
CN111937389B (zh) 用于视频编解码的设备和方法
KR20230150284A (ko) 효율적인 비디오 인코더 아키텍처
US20150103909A1 (en) Multi-threaded video encoder
JP2007096540A (ja) 符号化方法
WO2024151798A1 (en) Merge mode with motion vector difference based subblock-based temporal motion vector prediction
EP4268460A1 (en) Temporal filter
Lange Multiresolution Representation of Motion Vectors in Video Compression

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160411

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160411

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170308

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170425

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170707

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170816

R150 Certificate of patent or registration of utility model

Ref document number: 6195912

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees