JP2009510845A - ビデオエンコードのための多次元近隣ブロック予測 - Google Patents

ビデオエンコードのための多次元近隣ブロック予測 Download PDF

Info

Publication number
JP2009510845A
JP2009510845A JP2008532452A JP2008532452A JP2009510845A JP 2009510845 A JP2009510845 A JP 2009510845A JP 2008532452 A JP2008532452 A JP 2008532452A JP 2008532452 A JP2008532452 A JP 2008532452A JP 2009510845 A JP2009510845 A JP 2009510845A
Authority
JP
Japan
Prior art keywords
block
video block
video
motion vector
motion
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.)
Pending
Application number
JP2008532452A
Other languages
English (en)
Other versions
JP2009510845A5 (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 JP2009510845A publication Critical patent/JP2009510845A/ja
Publication of JP2009510845A5 publication Critical patent/JP2009510845A5/ja
Pending legal-status Critical Current

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
    • 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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • H04N19/197Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters including determination of the initial value of an encoding parameter
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
    • 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/567Motion estimation based on rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

開示された動作推定技術およびビデオエンコードデバイスは、現在のビデオブロックに対する正確な動作推定パラメータを生成するために2次元パイプラインを用いる。2次元パイプラインは、現在のビデオブロックの正確な動作ベクトル、動作ベクトル予測変量、およびモード判定を生成する前に、現在のビデオブロックと同じ行における先行するビデオブロックを含む関連近隣ビデオブロックの、以前に計算された動作推定パラメータを用いる。2次元パイプラインを用いることによって、動作ベクトルを計算する際に、以前は利用可能ではない近隣ビデオブロックから、正確な動作ベクトル予測変量を得ることができる。2次元パイプラインでは、3つのエンジン、すなわち取得エンジンと、整数探索エンジンと、部分および空間探索エンジンとが使用される。取得エンジンと、部分および空間探索エンジンとが、1つの行で動作している間、整数探索エンジンが、別の行で動作する。

Description

本明細書で記述されるものは、デジタルビデオ処理に関し、更に詳しくは、ビデオシーケンスのエンコードに関する。
デジタルビデオ機能は、デジタルテレビ、デジタル直接ブロードキャストシステム、無線通信デバイス、携帯情報端末(PDA)、ラップトップコンピュータ、デスクトップコンピュータ、デジタルカメラ、デジタル録画デバイス、セル電話または衛星ラジオ電話等を含む広範囲なデバイスに組み込むことができる。デジタルビデオデバイスは、フルモーションビデオシーケンスを生成し、修正し、送信し、格納し、記録し、再生する際において、従来のアナログビデオシステムに対して顕著な改善を与えることができる。
多くの異なるビデオエンコード規格が、デジタルビデオシーケンスのエンコードのために確立された。Moving Picture Experts Group(MPEG)は、例えば、MPEG−1、MPEGー2およびMPEG−4を含む多くの規格を開発した。その他の規格は、国際電気通信連合(ITU)H.263規格、California州Cupertionのアップルコンピュータ社によって開発されたQuickTime(登録商標)技術、Washington州Redmondのマイクロソフト社によって開発されたVideo for Windows(登録商標)、インテル社によって開発されたIndeo(登録商標)、Washington州Seattleのリアルネットワークス社のRealVideo(登録商標)、SuperMac社によって開発されたCinepak(登録商標)を含む。ITU H.264規格や、多くの所有権付き規格を含む新たな規格が、出現および発展を続けている。
多くのビデオエンコード規格は、圧縮方式でデータをエンコードすることにより、ビデオシーケンスの改善された伝送レートを可能にする。圧縮は、ビデオフレームの実際の伝送のために送信される必要のあるデータの全体量を低減することができる。ほとんどのビデオエンコード規格は、例えば、圧縮無しで達成できるよりも狭い帯域幅にわたったビデオおよびイメージ送信を容易にするように設計されたグラフィックス圧縮技術およびビデオ圧縮技術を利用する。
MPEG規格およびITU H.263およびITU H.264規格は、例えば、フレーム間圧縮を提供するため、時間的相関あるいはフレーム間相関と称される連続したビデオフレーム間の類似点を利用するビデオエンコード技術をサポートする。このフレーム間圧縮技術は、ビデオフレームのピクセルベース表示を、動作表示に変換することによって、フレームにわたったデータ冗長を活用する。更に、幾つかのビデオエンコード技術は、ビデオフレームを更に圧縮するために、空間フレーム相関またはフレーム内相関と称されるフレーム内の類似性を活用することができる。
圧縮をサポートするために、デジタルビデオデバイスは、デジタルビデオシーケンスを圧縮するエンコーダと、デジタルビデオシーケンスを解凍するデコーダとを含んでいる。多くの場合、エンコーダとデコーダは、ビデオイメージのシーケンスを定義するフレーム内のピクセルのブロック上で動作する統合型エンコーダ/デコーダ(CODEC)を形成する。国際電気通信連合(ITU)H.264規格では、例えばエンコーダは、一般に、送信されるビデオフレームを、16×16のピクセルアレイを備えうる“マクロブロック”(MB)と称されるビデオブロックへ分割する。ITU H.264規格は、16×16ビデオブロック、16×8ビデオブロック、8×16ビデオブロック、8×8ビデオブロック、8×4ビデオブロック、4×8ビデオブロック、および4×4ビデオブロックをサポートする。その他の規格は、異なるサイズのビデオブロックをサポートしうる。
ビデオフレーム内の個々のビデオブロックについて、エンコーダは、1または複数の直前(または直後)のビデオフレームの類似サイズのビデオブロックを探索して、「最良予測ブロック」と称される最も類似したビデオブロックを識別する。現在のビデオブロックを、他のフレームのビデオブロックと比較する処理は、一般に、動作推定と呼ばれる。ビデオブロックについて一旦「最良予測ブロック」が識別されると、エンコーダは、現在のビデオブロックと、最良予測ブロックとの差分をエンコードすることができる。現在のビデオブロックと最良予測ブロックとの差分をエンコードするこの処理は、動作補償と称される処理を含む。動作補償は、エンコードされる現在のビデオブロックと、最良予測ブロックとの差を示す差分ブロックを生成する処理を含む。通常、動作補償とは、動作ベクトルを用いて最良予測ブロックを取得し、次に、最良予測ブロックを入力ブロックから引くことによって、差分ブロックを生成する動作を称する。
動作補償が、この差分ブロックを生成した後、一般には、一連の追加のエンコードステップが実行され、差分ブロックがエンコードされる。これら追加のエンコードステップは、使用されているエンコード規格に依存しうる。例えば、MPEG−4に準拠したエンコーダでは、追加のエンコードステップは、8×8離散コサイン変換を含む。この変換の後、スカラー量子化、ラスタ−ジグザグ(raster-to-zigzag)再整列、ランレングスエンコード、Huffmanエンコードがなされる。エンコードされた差分ブロックは、先行するフレーム(または後続するフレーム)からのどのビデオブロックがエンコードのために使用されるかを示す動作ベクトルとともに送信することができる。デコーダは、この動作ベクトルと、エンコードされた差分ブロックとを受け取り、受け取った情報をデコードして、ビデオシーケンスを再構築する。
エンコード処理を単純化および改良することは極めて望ましい。この目的のために、種々様々なエンコード技術が開発されている。動作推定は、ビデオエンコードにおいて最も計算集約的な処理のうちの1つであるので、動作推定に対する改良は、ビデオエンコード処理において顕著な改良を与えることができる。
動作ベクトルを計算する際に、より効率的で正確な方法を見つけることが望ましい。
発明の概要
本願は、その全体が参照によって本明細書に組み込まれ、本願の譲受人に譲渡された、2005年9月22日出願の米国仮出願60/719,891号の優先権を主張する。
本開示は、ビデオエンコードを改善することができる動作推定技術について記述する。特に、本開示は、フレーム内のビデオブロックを処理するための従来とは異なる方法を提案する。動作推定を改善するために技術を以下に述べる。1つの実施形態では、2次元パイプラインを用いて、現在のビデオブロックの動作推定パラメータを正確に生成する動作推定器が説明される。2次元パイプラインは、正確な動作推定パラメータを生成する前に、現在のビデオブロックと同じ行における先行するビデオブロックを含む関連近隣ビデオブロックの、以前に計算された動作推定パラメータを使用する。動作推定パラメータは、例えば、動作ベクトル、動作ベクトル予測変量、およびモード決定である。開示された動作推定技術は、ピクセルを取得するエンジン/モジュールと、整数ピクセル探索を実行するエンジン/モジュールと、ピンポン方式で少なくとも2つのビデオブロック行にわたって精細な部分(fractional)および空間探索を実行するエンジン/モジュールとをパイプライン化することによってエンコードを改善することができる。ピン部分の間、第1のブロック行からの2つのビデオブロックが処理される。その間、別のビデオブロック行において同時処理が行われている。ポン部分の間、第2のブロック行からの2つのビデオブロックが処理される。その間、第1のブロック行では、別のビデオブロックが処理されている。このピンポン方式の処理によって、整数探索エンジン/モジュールは、正確な動作ベクトル予測変量(MVP:motion vector predictor)によって、費用に関してより正確な動作ベクトルを計算し、出力することが可能となる。この動作ベクトルは、部分および空間エンジン/モジュールが、全ての近隣ビデオブロックを処理した後にのみ得られる。MVPは、所望の動作ベクトルの初期推定値であり、一般に、近隣ビデオブロックについて以前に計算された動作ベクトルに基づいて計算される。1つのビデオブロック行だけが連続して処理される技術では、MVPは、実際の値ではなく、推定値である。推定値のみしか使用しなければ、動作推定に用いられる精度は制限される。ここで開示された技術を用いる1つの利点は、動作推定を計算する際に、全ての精細な分解の実際の値を用いることである。他の長所は、2次元パイプラインを用いることによって、別の行の部分を処理する前に、1つの行全体が処理されるのを待つ必要があるという問題を解決することである。そのため、2次元パイプラインを用いるこのピンポン方式の処理は、通信バス上の帯域幅を低減する。探索領域を更新するための、外部メモリに対するリフレッシュの数も、著しく低減することができる。
本開示における実施形態は、歪み測定値の計算を提案する。本実施形態は、エンコードされる現在のビデオブロックに近接したビデオブロックについて以前に計算された動作ベクトルに基づいて動作ベクトル予測変量を計算することと、現在のビデオブロックをエンコードするために使用される予測ビデオブロックを探索する際に、動作ベクトル予測変量を用いることとを備える方法を開示する。この実施形態は、歪み測定値の計算を最小化するために、実際の全ての動作ベクトル予測変量を用いる方法を更に記載する。
本明細書で記述されたこれら技術およびその他の技術は、ハードウェア、ソフトウェア、ファームウェア、またはこれらの任意の組み合わせによって、デジタルビデオデバイス内で実現される。ソフトウェアで実現される場合、本技術は、実行された場合に、本明細書に記載のエンコード技術のうちの1または複数を実行するプログラムコードを備えたコンピュータ読取可能媒体に向けられうる。様々な実施形態の更なる詳細が、添付図面および下記記載において述べられる。その他の特徴、他の機能、客体、および長所も、これら記載および図面、更には特許請求の範囲から明白になるだろう。
詳細な説明
本開示は、ビデオエンコードを改善するために使用することができる動作ベクトル(MV)および動作ベクトル予測変量(MVP)の両方を計算する多次元技術について記述する。この技術は、一般に、動作推定のための全体的な処理に関連して説明されるが、様々なシナリオにおいて、これら技術のうちの1または複数が、個別に使用されうることが理解される。一般にMVPは、例えば、記録されている隣接ビデオブロックの動作ベクトルのメジアンとして、近隣ビデオブロックのために以前に計算された動作ベクトルに基づいて計算される。しかしながら、MVPを計算するために、例えば動作ベクトルまたは近隣ビデオブロックの平均や、より複雑な数学的関数のようなその他の数学的関数も使用されうる。
図1Aは、ソースデバイス112aが、エンコードされたビットストリームを、通信リンク113を介して受信デバイス114aへ送信するシステム100の例を示すブロック図である。ソースデバイス112aおよび受信デバイス114aは、両方ともデジタルビデオデバイスでありうる。特に、ソースデバイス112aは、例えば、MPEG−4規格、ITU H.263規格、ITU H.264規格、あるいはビデオエンコードにおいて動作推定を活用するその他様々な規格のようなビデオ規格にしたがうビデオデータをエンコードする。システム100のデバイス112a,114aの一方または両方は、ビデオエンコード処理を改善するために、以下に詳述するようにして動作推定技術および動作補償技術を実施する。
通信リンク113は、例えばインターネット、公衆交換電話網(PSTN)、あるいはデータ伝送可能なその他任意の通信リンクのようなグローバルネットワークや、広域ネットワークや、ローカル領域ネットワークのようなネットワークベースのパケット、光ファイバ、物理的伝送路、無線リンクを備えうる。通信リンク113は、例えばCD、DVD等のような記憶媒体と接続されうる。したがって、通信リンク113は、ソースデバイス112aから受信デバイス114aへとビデオデータを送信するための任意の適切な通信媒体、または恐らくは異なるネットワークおよびリンクの集合を表す。
ソースデバイス112aは、ビデオシーケンスをキャプチャし、キャプチャしたシーケンスをメモリ116内に格納する例えばビデオカメラのようなビデオキャプチャデバイス115を含む。ビデオシーケンスは、ディスプレイ117上で見ることができる。特に、ビデオキャプチャデバイス115は、電荷結合素子(CCD)、電源投入デバイス、フォトダイオードアレイ、相補性金属酸化膜半導体(CMOS)デバイス、あるいは、ビデオイメージまたはデジタルビデオシーケンスをキャプチャすることができるその他任意の感光性デバイスを含みうる。
更なる例として、ビデオキャプチャデバイス115は、例えば、テレビ、ビデオカセットレコーダ、カムコーダ、またはその他のビデオデバイスからのアナログビデオデータをデジタルビデオデータに変換するビデオコンバータでありうる。幾つかの実施形態では、ソースデバイス112aは、通信リンク113によってリアルタイムでビデオシーケンスを送信するように構成されうる。その場合、受信デバイス114aは、リアルタイムでビデオシーケンスを受信し、そのビデオシーケンスをユーザへ表示しうる。あるいは、ソースデバイス112aは、受信デバイス114aへ送られたビデオシーケンスをキャプチャして、ビデオデータファイルとして非リアルタイムでエンコードする。従って、ソースデバイス112aおよび受信デバイス114aは、例えばモバイル無線ネットワークにおいて、例えばビデオクリッププレイバック、ビデオメール、またはビデオカンファレンスのようなアプリケーションをサポートすることができる。デバイス112a,114aは、図1に具体的に例示されていないその他の様々な要素を含むことができる。
更に、ソースデバイス112aは、ビデオデータをエンコードおよび送信することが可能な任意のデジタルビデオデバイスでありうる。ソースデバイス112aはまた、シーケンスをエンコードするビデオエンコーダ118と、エンコードされたビットストリームを、通信リンク113を介して受信デバイス114aへ送信する送信機120とを含みうる。ビデオエンコーダ118は、例えば様々なハードウェア、ソフトウェア、ファームウェア、あるいは、例えば、本明細書で記述されるようなビデオエンコード技術を制御するプログラマブルソフトウェアモジュールを実行する1または複数のデジタルシグナルプロセッサ(DSP)を含みうる。ビデオエンコード技術を制御する際にDSPを支援するために、関連するメモリおよび論理回路が提供されうる。説明するように、動作ベクトル予測変量(MVP)の正確な値が使用される場合、ビデオエンコーダ118はより良好に動作する。
受信デバイス114aは、ビデオデータの受信およびデコードが可能な任意のデジタルビデオデバイスの形態をとりうる。例えば、受信デバイス114aは、エンコードされたデジタルビデオシーケンスを、例えば中間リンク、ルータ、その他のネットワーク機器等を介して送信機120から受信する受信機122を含むことができる。受信デバイス114aはまた、ビットストリームをデコードするビデオデコーダ124と、デコードされたビットストリームのシーケンスをユーザへ表示するディスプレイデバイス126とを含むことができる。しかしながら、幾つかの実施形態では、受信デバイス114aは、統合式ディプレイデバイスを含んでいないかもしれない。そのような場合、受信デバイス114aは、例えばテレビやモニタのような離散的なディスプレイデバイスを駆動するために、受信したビデオデータをデコードする受信機として動作する。
ソースデバイス112aおよび受信デバイス114aのデバイスの例は、コンピュータネットワーク上に配置されたサーバ、ワークステーションまたはその他のデスクトップ計算デバイス、および、例えばラップトップコンピュータやパーソナルデジタルアシスタント(PDA)のようなモバイル計算デバイスを含みうる。他の例は、例えばデジタルテレビのようなデジタルテレビブロードキャスト衛星デバイスおよび受信デバイス、デジタルカメラ、デジタルビデオカメラあるいは他のデジタル記録デバイス、例えばビデオ機能を有するモバイル電話のようなデジタルビデオ電話、ビデオ機能を備えたダイレクト二方式通信デバイス、その他の無線ビデオデバイス等を含む。
幾つかの場合、ソースデバイス112bおよび受信デバイス114bはそれぞれ、デジタルビデオデータをエンコードおよびデコードするため、図1Bに示すようなエンコーダ/デコーダ(コーデック)を含む。特に、ソースデバイス112aと受信デバイス114aとの両方は、メモリおよびディスプレイの他に、送信機および受信機を含むことができる。以下に概説するエンコード技術の多くは、エンコーダを含むデジタルビデオデバイスに関して記述される。しかしながら、エンコーダが、コーデックの一部を形成しうることが理解される。その場合、コーデックは、ハードウェア、ソフトウェア、ファームウェア、DSP、マイクロプロセッサ、特定用途向けIC(ASIC)、フィールドプログラム可能なゲートアレイ(FPGA)、離散的なハードウェア要素、またはこれらの様々な組合せによって実現されうる。
ソースデバイス112aあるいはソースデバイス112b内のビデオエンコーダ118は、ビデオデータをエンコードするために、ビデオフレームのシーケンス内のピクセルのブロックについて動作する。例えば、ビデオエンコーダ118は、送信されるビデオフレームが、ピクセルのブロック(ビデオブロックと称される)へ分割される動作推定技術および動作補償技術を実行しうる。このビデオブロックは、例示目的のために、任意のサイズのブロックを備えることができ、また、与えられたビデオシーケンス内で変化しうる。例として、ITU H.264規格は、16×16のビデオブロック、16×8のビデオブロック、8×16のビデオブロック、8×8のビデオブロック、8×4のビデオブロック、4×8のビデオブロック、および4×4のビデオブロックをサポートする。ビデオエンコードにおいて、より小さなビデオブロックを用いることによって、エンコードにおけるより良い圧縮を生み出すことができ、特に、より高レベルの詳細を含むビデオフレームの位置のために使用することができる。
ビデオブロック内のピクセルはそれぞれ、例えば8ビットのように、n−ビット値によって表される。これは、例えばクロミナンスや輝度の値における色や強度のようなピクセルの視覚特性を定める。しかしながら、動作推定はしばしば、輝度成分のみについて実行される。なぜなら、人間は、クロミナンスよりも輝度の変化により敏感だからである。従って、動作推定の目的のために、n−ビット値全体が、与えられたピクセルのための輝度を定量化しうる。しかしながら、本開示の原理は、ピクセルのフォーマットに限定されず、より簡単な少ないビットピクセルフォーマットや、より複雑な多くのビットピクセルフォーマットとともに使用されるために拡張することができる。
ビデオフレーム内の個々のビデオブロックについて、ソースデバイス112aあるいはソースデバイス112bのビデオエンコーダ118は、予測ビデオブロックと称される類似のビデオブロックを識別するために、既に送信された1または複数の先行するビデオフレーム(または後続するビデオフレーム)を求めて、メモリ116に格納されたビデオブロックを探索することによって、動作推定を実行する。ある場合には、予測ビデオブロックは、先行するビデオフレームまたは後続するビデオフレームからの「最良予測ブロック」を備えうるが、本開示は、この点に限定されない。ビデオエンコーダ118は、エンコードされる現在のビデオブロックと、最良予測ブロックとの差を示す差分ブロックを生成するために動作補償を行なう。動作補償は、通常、動作ベクトルを用いて最良予測ブロックを取得し、次に、最良予測ブロックを入力ブロックから引いて、差分ブロックを生成する動作を称する。
動作補償処理が、差分ブロックを生成した後、差分ブロックをエンコードするために、一般に、一連の追加エンコードステップが行なわれる。これらの追加エンコードステップは、使用されているエンコード規格に依存しうる。
一旦エンコードされると、エンコードされた差分ブロックは、エンコードのために使用された先行フレーム(または後続フレーム)からビデオブロックを識別する動作ベクトルまたはエンコードされた動作ベクトルとともに送信される。このように、各フレームを独立したピクチャとしてエンコードするのではなく、ビデオエンコーダ118は、隣接するフレーム間の差分をエンコードする。そのような技術は、ビデオシーケンスの各フレームを正確に表わすために必要なデータの量を著しく低減することができる。
動作ベクトルは、エンコードされているビデオブロックの上部左手コーナに対するピクセル位置を定義することができる。しかしながら、動作ベクトルのためのその他のフォーマットを使用することもできる。動作ベクトルを使用してビデオブロックをエンコードすることによって、ビデオデータのストリームの送信のために必要な帯域幅を、著しく低減することができる。
ある場合には、ビデオエンコーダ118は、フレーム間エンコードに加えて、フレーム内エンコードをサポートすることができる。フレーム内エンコードは、ビデオフレームを更に圧縮するために、空間相関またはフレーム内相関と称される類似物をフレーム内で利用することができる。フレーム内圧縮は、一般に、例えば離散コサイン変換(DCT)エンコードのような、静止画像の圧縮のためのテクスチャエンコードに基づく。フレーム内圧縮は、しばしば、フレーム間圧縮と共に使用されるが、幾つかの実施では、代替として使用することができる。
受信デバイス114aの受信機122は、エンコードされているビデオブロックと、動作推定に使用される最良予測ブロックとの間のエンコード済差分を示すエンコード済差分ブロックおよび動作ベクトルの形態をしたエンコード済ビデオデータを受信することができる。しかしながら、ある場合には、動作ベクトルを送るのではなく、動作ベクトルとMVPとの差分が送信される。何れの場合も、ディスプレイデバイス126を介してユーザに表示するためのビデオシーケンスを生成するために、ビデオデコーディングを実行することができる。受信デバイス114aのデコーダ124は、図1Bに示すようにエンコーダ/デコーダ(コーデック)として実現することもできる。その場合、ソースデバイス112bと受信デバイス114bとの両方が、デジタルビデオシーケンスのエンコード、送信、受信、およびデコードを行うことができる。
図2は、図1Aまたは図1Bのデバイスにおいて使用されうる典型的なビデオエンコーダを図示する。ビデオシーケンスからのフレームまたはフレームの一部は、コーデック24の一部でありうるビデオエンコーダ118内部の入力フレームバッファ242内に入力されうる。入力フレームバッファ242からの入力フレームは、ブロックへ分解され(ビデオブロックは任意のサイズからなることができるが、標準的な平方ビデオブロックサイズは4×4、8×8、または16×16である)、ビデオブロックバッファ243へ送られる。ビデオブロックバッファ243は、一般に、減算器244にビデオブロックを送る。減算器244は、スイッチ246の出力から、ビデオブロックxを減算する。スイッチ246は、エンコードの符号内予測モードと符号間予測モードとの間を切り換えることができる。スイッチ246が、符号間予測モードをイネーブルしているのであれば、異なる(先行または後続する)フレームからのビデオブロックとxとの差分が、テクスチャエンコーダ247によって圧縮される。スイッチ246が符号内予測モードをイネーブルしているのであれば、同じフレーム内の前のビデオブロックからの予測値とxとの差分が、テクスチャエンコーダ247によって圧縮される。
テクスチャエンコーダ247は、DCTブロック248を有している。DCTブロック248は、ピクセル領域からの入力x(ビデオブロックまたは差分ブロック)を、空間周波数領域へ変換する。空間周波数領域では、データは、DCTブロック係数によって表わされる。DCTブロック係数は、ビデオブロックにおいて検出された空間周波数の数および次数(degree)を表わす。DCTが計算された後、DCTブロック係数は、「ブロック量子化」として知られる処理で、量子化器250によって量子化されうる。(ビデオブロックまたは差分ビデオブロックの何れかから得られる)DCTブロック係数を量子化することによって、空間冗長部分がブロックから取り除かれる。この「ブロック量子化」処理中に、量子化されたDCTブロック係数をしきい値と比較することによって、更なる空間冗長が取り除かれる。この比較は、量子化器250の内部、あるいは別の比較ブロック(図示せず)の内部でなされうる。量子化されたDCTブロック係数の大きさが、しきい値未満である場合、この係数は破棄されるか、またはゼロ値に設定される。
ブロック量子化の後、結果として得られた出力は、2つの個別の構成要素、すなわち、(1)テクスチャデコーダ265、および(2)エントロピエンコーダ255へ送られる。テクスチャデコーダ265は、逆量子化器266を備える。逆量子化器266は、符合化予測モードで使用される再構築ビデオブロックまたはフレームの生成を支援する。エントロピエンコーダ255は、送信または記憶のためのビットストリームを生成する。エントロピエンコーダ255は、スキャナ256を含みうる。スキャナ256は、ブロック量子化出力を受け取り、それを、可変長コーダ(VLC)258によるより効率的なエンコードのために、再配列する。VLC258は、エンコードされたビットストリームを生成するために、ランレングス技術およびHuffman符合化技術の使用を適用する。エンコードされたビットストリームは、出力バッファ260へ送られる。このビットストリームは、レートコントローラ262へ送られうる。基本品質を維持している間、レートコントローラ262は、量子化器250によって使用される量子化ビットの数をバジェット(budget)する。エントロピエンコードは、非不可逆的な(non-lossy)圧縮形式と考えられる。非不可逆的圧縮は、破壊されたエンコード済データが無くエントロピデコーダによってデコードされるのであれば、エンコードされているデータは、同一に復元されうることを意味する。エントロピエンコーダ255は、非不可逆的圧縮を実行する。
不可逆的圧縮(lossy compression)は、エンコードされた入力が破壊されていなくても、エンコードの結果として、入力xが、xの同一のコピーを生成しないことを意味する。再構築された入力は、その情報の一部を「失って」いる。テクスチャエンコーダ247は、不可逆的圧縮を行なう。一般的なビデオエンコーダ118は、通常、符号間予測モードと符号内予測モードとの両方の補償を支援するローカルテクスチャデコーダ265を有する。テクスチャエンコーダ247の出力をデコードし、テクスチャエンコーダ247へ入力された入力xを再構築するために、逆量子化器266と、逆DCT268と、加算器269に送られたスイッチ246の出力とが、ともに働く。再構築された入力yは、xに類似しているように見えるが、正確にはxではない。一般的なビデオ「デコーダ」は、逆量子化器266と、逆DCT268と、加算器269へ送られるスイッチ246の出力との機能を備える。
再構築された入力は、メモリバッファ281へ送られうる。メモリバッファ281の内部には、2つのメモリバッファ、すなわち(1)再構築された新たなフレームバッファ282と、(2)再構築された古いフレームバッファ284とが存在する。再構築された新たなフレームバッファ282は、現在処理された再構築フレーム(又は部分フレーム)を格納する。再構築された古いフレームバッファ284は、過去に処理された再構築フレームを格納する。過去に処理された再構築フレームは、(再構築された)基準フレームとして使用される。再構築された基準フレームは、入力フレームバッファ242内の現在のフレームの前あるいは後にあるフレームでありうる。現在のフレーム(または現在のフレームからのビデオブロック)、あるいは、現在のフレームと再構築された基準フレームとの間の差分(または差分ブロックからのビデオブロック)は、「現在」エンコードされているものである。現在のフレームがエンコードを終了した後で、かつ、入力フレームバッファ242からの入力における次のフレームが、エンコードされるために取得される前に、再構築された古いフレームバッファ284が、再構築された新たなフレームバッファ282の内容を備えたコピーを用いて更新される。
再構築された新たなフレームバッファ282は、空間予測器286において使用されるために受け取った、再構築されたビデオブロックを送る。再構築された古いフレームバッファ284は、過去に処理された再構築されたビデオブロックをMEC(動作推定および補償ブロック)287へ送る。MECブロックは、動作推定器288および動作補償器290を備える。動作推定器288は、動作ベクトル(MV)292および動作ベクトル予測変量(MVP)294を生成する。これらは、エンコードされているフレームではない他のフレームからの差分を補償するために、動作補償器290によって使用される。MV292はまた、エントロピエンコーダ255によって使用されうる。例えばITU H.264のような幾つかの規格では、空間予測器286の出力が、フレーム内予測モードで使用され、減算器244および加算器269の両方へ供給される。例えばMPEG−4またはJPEGのような幾つかの規格では、空間予測器286は存在しない。
図3は、任意のイメージあるいはフレームの2つの部分的なブロック行を図示する。例として、ブロック行N−1,Nを、ブロック行3,4とする。ブロック行3 330には、9つのビデオブロックがある。例示目的のために、16×16ブロックが、本開示の説明を通じて使用される。従って、マクロブロック(MB)331−339は、行3 330にあり、行4 340には、9つのMB341−349がある。MBは、ブロック行番号と、M番目のマクロブロックに対する位置との両方を示して図示されている。Mは、現在のマクロブロックを示す。一般に、ブロック行3は、ブロック行4の前に処理される。本開示では、ブロック行を処理することは、行3 330および行4 340で述べているように、マクロブロックの行を処理することを意味する。それは一般に、任意のサイズのビデオブロック行を処理することをも意味する。
例えば、H.264、MPEG−4、およびH.263のような様々な規格において、マクロブロック(MB)345に関する動作ベクトルを計算する場合、近隣のMB344、MB335、およびMB336(または、MB336が利用可能ではない場合にはMB334)を事前に知っていることが望まれうる。例えば、H.264では、PフレームのINTERモードは、INTER 16×16、INTER 16×8、INTER 8×16、INTER 8×8でありうる。もしもINTER 8×8モードであれば、INTER 8×4モード、またはINTER 4×8モード、またはINTER 4×4モードを選択するために、更なる分割がなされる。モードは、そのタイプ(INTER)のみならず、そのサイズにも依存する。また、INTERモードおよびSKIPモードもある。SKIPモードを起動する他の条件も存在するが、SKIPモードを起動することができる1つの条件は、MVがMVPに等しい場合である。
例えば動作推定は、一般に、ビデオエンコードのその他のどの処理よりも多くの計算リソースを必要とする。この理由により、計算の複雑さを低減し、また、圧縮比の改善を支援する方式で動作推定を実行することが、より強く望まれる。本明細書で記述された動作推定技術は、多くの空間分解により探索を行なう探索スキームを使用することにより、目標を達することができる。これによって、精度を落とすことなく、計算上の複雑さが低減される。更に、歪み測定としても知られているコスト関数が提案される。それは、動作ベクトルをエンコードするコストを含む。動作推定器はまた、ビデオエンコードの精度を改善するために、探索空間の多くの候補位置を使用することができる。また、多くの候補の周囲の探索領域は、プログラム可能である。これによって、この処理は、フレームレートおよびピクチャサイズでスケール可能となる。最後に、動作推定器はまた、例えば、4×8ビデオブロック、8×4ビデオブロック、8×8ビデオブロック、8×16ビデオブロック、16×8ビデオブロック、16×16ビデオブロック等のような大きな様々なブロック形状のコストを取得するために、例えば4×4ビデオブロックのような多くの小さな平方ビデオブロックのコスト関数を組み合わせる。多くの動作および計算のために、動作ベクトル予測変量(MVP)が使用され、動作ベクトル予測変量から導かれる動作ベクトルについてコスト因子が加えられる。MVPはまた、更なる初期動作ベクトルをも与える。これは、特に、マルチステージ探索の高分解ステージにおいて、探索を定義するために使用することができる。動作ベクトル予測値に少なくとも部分的に依存する歪み測定値の計算は、コスト因子の一部である。歪み測定値は、別の動作ベクトルをエンコードするために必要なビット数を定量化することを助ける。
図4は、フレームにわたって動作推定がどのようになされるかの処理を記載した典型的なフローチャートである。まず、セットアップ手順400が開始される。セットアップの一部として、基準(過去または未来の)フレームが、メモリへロードされる(402)。このメモリは、例えば、ローカルメモリまたはオフメモリ候補RAMでありうる。次に、現在のフレームがメモリへのロードされる(404)。このメモリもまた、例えば、ローカルメモリまたはオフメモリエンコードRAMの一部でありうる。その後、ブロック行において、現在のマクロブロックMが選択される。次に、現在のマクロブロックMの周囲において、探索空間が識別される(406)。基準フレームから探索空間が一旦識別されると(408)、現在のフレームにおける2つのビデオブロック行にわたった2次元ステージパイプラインを処理する動作がなされる(410)。これは、1次元ステージパイプラインによって、時間において1つのビデオブロック行を処理することのみを考慮する現在の技術に対する改良である。2次元ステージパイプライン動作が行なわれた後、判定ブロック412が、2つのブロック行の終わりに達したかを確認する。2つのブロック行の終わりに達していないのであれば(NO)、基準フレームにおける探索空間がリフレッシュされ(414)、現在のフレームにおいて、2つのブロック行にわたった2次元ステージパイプラインの処理が継続する(410)。2つのブロック行の終わりに達しているのであれば(YES)、判定ブロック416によって、別の確認がなされる。判定ブロック416は、それが、現在のフレームにおける最後の2つのブロック行の終わりであるかを確認する。それが現在のフレーム内の最後の2つのブロック行の終わりではない場合(NO)には、次の2つのブロック行にインクリメントする動作418が行なわれ、現在のフレームにおける2つのブロック行にわたった2次元ステージパイプラインの処理が継続する(410)。それが現在のフレーム内の最後の2つのブロック行の終わりであれば(YES)、現在のフレームの処理が終了する。
動作推定(ME)は、少なくとも2つのエンジンによってビデオブロックを処理することを含んでいる。第1のエンジンは、取得エンジン(FE)であり、エンコードされるビデオブロックを、メモリから取得する。第2のエンジンは、歪みを最小にする類似のマッチングブロックを見つけ出すために、歪み数的指標を用いる。第2のエンジンは、整数検索エンジン(ISE)であり、探索が進むとより精細な分解で実行される探索を備えた階層的探索を適用しうる。第3のエンジンである部分および空間探索エンジンを備える場合もある。これは、歪みを最小にする類似のマッチングブロックを見つけ出すためにより精細な分解の探索を用いる。FSEは、開始点として、第2のエンジンの結果を用いても良いし、用いなくても良い。典型的な目的のため、動作推定技術の記載は、3つのエンジン、すなわち取得エンジン(FE)、整数探索エンジン(ISE)、部分および空間探索エンジン(FSE)を用いてなされる。これらの3つのエンジンは、ビデオブロックを連続的に処理する。一般に、処理の遅れを最小にするために、3つのエンジンは、3つのステージにわたってパイプライン化される。すなわち、FE、ISEおよびFSEはすべて、3ステージパイプライン内で並行して動作する。例えば、ステージ1の間、FEは、メモリから現在のマクロブロックMを取得する。同時に、マクロブロックM−1のコーナにおいて、整数ピクセルアンカーポイントに位置するISEは、基準(過去または未来)フレームから、ベストマッチしたマクロブロックを見つけ出すことを試みる。またステージ1の間、FEエンジンおよびISEエンジンと同時に動作して、マクロブロックM−2内の部分ピクセルアンカーポイントに位置するFSEは、基準(過去または未来)フレームから、ベストマッチしたマクロブロックを見つけ出すことを試みる。動作ベクトルを生成する1つのビデオブロックの完全な処理を完了するために3ステージを要する。3ステージの終了時に、3つの取得と、実行された3つの整数探索と、実行された3つの部分および空間探索とがなされよう。一般に、1次元(1D)3ステージパイプラインは、1つのビデオブロック行に対して連続して動作する。ビデオブロック行の全体が完全に処理されるまで、第2のブロック行では処理はなされない。
図5は、1次元3ステージパイプラインの概念の実例を図示する。見て分かるように、行3 330のほとんどが処理されている。図5の左上コーナでは、3、M−3、MB パイプライン520のステージ1 501の間、3つのうちの2つのエンジンが動作している。FEは、マクロブロック3、M−3 332に対して動作し、ISEは、マクロブロック3、M−4 331に対して動作する。3、M−3 MB パイプライン520のステージ2 502と、3、M−3 MB パイプライン520のステージ3 503とは、FSEが、3、M−3 MB(マクロブロック)332について終了した後、動作ベクトルの生成を終了する。前述したように、一般に、各ステージでは、取得と、整数探索と、部分および空間探索とが実行される。図5では、3、M−4 マクロブロック331の最初の取得を除いて、図3の行3 330内の全てのマクロブロック(MB)が処理される。1次元パイプライン521−527については、次のパイプラインのステージ1は常に、前のパイプラインのステージ2である。次のパイプラインのステージ2は、前のパイプラインのステージ3である。従って、ステージ502−510は、どのパイプラインが現在動作しているかに依存して、パイプライン内のステージ1、ステージ2、またはステージ3となりうる。一般に、1次元パイプラインを使用して、N個のマクロブロック(つまり、ビデオブロック)を処理するために、N+2ステージを要する。
与えられたマクロブロックについて、1次元パイプライン技術は、前の動作ブロックのFSE結果を都合よく使用しないように、現在のISEに制約を課す。例えば、FEが、エンコードデータを取得し、MB335についてメモリを更新している場合、ISEは、MB334に対する整数探索を行っており、FSEは、MB333に対する部分探索および空間推定を行っている。1次元パイプラインに関する固有の問題は、ISEは、その左の近隣MBのモードおよび最終動作ベクトル(MV)を知らず、動作ベクトル予測変量(MVP)の正確な推定を得ることができないことである。その結果、動作ベクトル計算は、わずかに外れるかもしれない。従って、1次元パイプライン技術を用いることによって、動作推定(MVを生成すること)と、モード判定(MVPを生成すること)との間には相互依存性がある。
動作推定とモード判定との間の相互依存性を解決する動作推定技術が、図6に例示される。図6は、3ステージ2次元(2D)パイプラインと、関連する全ての近隣MBモードとMVとの事前情報をISEに教える動作推定技術とを例示する典型的な図である。図6では、2つのビデオブロック行が、ピンポン方式(ping pong fashion)で処理される。ピン部分の間、第1のビデオブロック行からの2つのビデオブロックが処理される。同時に、別のビデオブロック行に対する処理も行われる。ポン部分の間、第2のビデオブロック行からの2つのビデオブロックが処理される。同時に、第1のビデオブロック行では、別のビデオブロックが処理されている。
図6の左上コーナでは、3、M−0 MB 2次元パイプライン621のステージ1 601が図示されている。FEは、マクロブロック3、M−0 335に対して動作し、ISEは、マクロブロック4、M−3 342に対して動作する一方、FSEは、マクロブロック3、M−1 334に対して動作する。3、M−0 MB 2次元パイプライン621のステージ2 602の間、FEは、マクロブロック4、M−2 343に対して動作し、ISEは、マクロブロック3、M−0 335に対して動作する一方、FSEは、マクロブロック4、M−3 342に対して動作する。3、M−0 MB 2次元パイプライン621のステージ3 603の間、FEは、マクロブロック3、M+1 336に対して動作し、ISEは、マクロブロック4、M−2 343に対して動作する一方、FSEは、マクロブロック3、M−0 335に対して動作する。3、M−0 MB 2Dパイプライン621の終了後、FSE後の動作ベクトルの生成が、3、M−0 MB 335において完了する。ステージ602−609は、上述したように、2次元パイプライン622−627を完了するために使用される。図6に示すように、全ての「ピン/ポン」は、1行に対するFE/FSE動作を示している一方、別の行にはISEが存在する。ピンポンという用語は、行の間の役割の交換に関連付けられる。例えば、「ピン」の間、FE/FSEは行3に対して動作し、ISEは行4に対して動作する。「ポン」の間、FE/FSEは、行4に対して動作し、ISEは、行3に対して動作する。
2次元パイプラインを用いることの利点は、少なくとも2つの異なる行からであるが、近接している2つのマクロブロックが、探索領域の大部分を共有することができることである。ポンは、ピンからの探索領域を再使用することができるので、少ない取得しか必要とされないだろう。このピンポン方式による処理によって、通信バス上の帯域幅を低減する。探索領域を更新するための外部メモリに対するリフレッシュの数は、著しく低減されうる。探索領域を更新するための外部メモリに対するリフレッシュの数は、著しく低減されうる。
更に、マクロブロック345は、関連する近隣マクロブロック344,335,および334(または、334が利用可能ではない場合には336)からのモード判定を用いることができる。モード判定を用いることは、これら関連する近隣マクロブロックのそれぞれからの動作ベクトル予測変量が、動作ベクトルの正確な推定値を生成することを助けることができる。2次元ピンポンパイプライン無しでは、マクロブロック345動作ベクトル生成の計算において、近隣マクロブロック344からの正確な動作ベクトル予測変量を利用できないかもしれない。従って、2次元パイプラインは、動作推定ビデオブロックとモード判定との間の相互依存性を解決する。
多くの異なる実施形態は記述された。これら技術は、動作推定を改善することにより、ビデオエンコードを改善することができる。これら技術は、ハードウェア、ソフトウェア、ファームウェア、あるいはこれらの任意の組合せによって実現されうる。ソフトウェアで実現される場合、これら技術は、デバイス内で実行された場合、ビデオシーケンスをエンコードし、上述した方法のうちの1または複数の実行するプログラムコードを備えるコンピュータ読取可能媒体に向けられる。その場合、コンピュータ読取可能媒体は、例えばシンクロナス・ダイナミックRAM(SDRAM)のようなランダムアクセスメモリ(RAM)、読取専用メモリ(ROM)、非揮発性ランダムアクセスメモリ(NVRAM)、電気的消去可能PROM(EEPROM)、FLASHメモリ等を備えることができる。
このプログラムコードは、コンピュータ読取可能命令の形態でメモリ上に格納されうる。その場合、本明細書で記載した技術のうちの1または複数を実行するために、例えばDSPのようなプロセッサが、メモリに格納された命令を実行することができる。幾つかの場合、これらの技術は、エンコード処理を加速する例えば動作推定器のような様々なハードウェア要素を起動するDPSによって実行されうる。その他の場合、ビデオエンコーダが、マイクロプロセッサ、1又は複数の特定用途向けIC(ASIC)、1又は複数のフィールドプログラム可能ゲートアレイ(FPGA)、あるいはその他、ハードウェアとソフトウェアとの組み合わせとして実現されうる。これらおよびその他の実施形態は、特許請求の範囲のスコープ内である。
図1Aは、ソースデジタルビデオデバイスが、エンコードされたビットストリームを、受信デジタルビデオデバイスへ送信するシステム例を例示するブロック図である。 図1Bは、本明細書の実施形態で説明したようにして使用される2つのコーデックのブロック図である。 図2は、図1Aまたは図1Bに例示されるデジタルビデオデバイスにおいて使用される基本的なデジタルビデオエンコーダの典型的なブロック図である。 図3は、イメージの2つの部分的な行の典型的な実例である。 図4は、動作推定および動作ベクトル予測が2つのビデオブロック行にわたってなされる処理を例示する典型的なフローチャートである。 図5は、部分的なイメージ行に対して適用されたMEパイプラインの典型的な実例である。 図6は、2つの部分的なイメージ行に対して適用されたMEパイプラインの典型的な実例である。

Claims (28)

  1. 現在のビデオブロックに対する正確な動作ベクトル、動作ベクトル予測変量、およびモード判定を生成するために2次元パイプラインを用いる動作推定器を有するデバイスであって、
    前記現在のビデオブロックに対する正確な動作ベクトル、動作ベクトル予測変量、およびモード判定を生成する前に、前記2次元パイプラインが、前記現在のビデオブロックと同じビデオブロック行における先行するビデオブロックを含む関連近隣ビデオブロックの完了した動作ベクトル、動作ベクトル予測変量、およびモード判定計算を用いるデバイス。
  2. 前記2次元パイプラインは、ビデオブロック行において動作する取得エンジンおよび部分空間探索エンジンを用いることを備え、その間、整数検索エンジンが、別のビデオブロック行において動作する請求項1に記載のデバイス。
  3. 前記2次元パイプラインは、前記パイプライン内で少なくとも2ステージを処理することを含む請求項1に記載のデバイス。
  4. 前記ビデオブロックは、8×8ブロック、8×4ブロック、4×8ブロック、4×4ブロック、または2×2ブロックのマクロブロックである請求項1に記載のデバイス。
  5. 動作推定器を含むデバイスにおいて、現在のビデオブロックに対する正確な動作推定パラメータを生成するために2次元パイプライン処理を実行する方法であって、
    前記2次元パイプライン処理は、前記現在のビデオブロックの正確な動作推定パラメータを生成する前に、前記現在のビデオブロックと同じビデオブロック行における先行するビデオブロックを含む近隣ビデオブロックの、以前に計算された動作推定パラメータを識別することを含む方法。
  6. 前記動作推定パラメータは、前記現在のビデオブロックからの動作ベクトル、前記現在のビデオブロックに関連付けられた動作ベクトル予測変量、およびモード判定である請求項5に記載の方法。
  7. 前記2次元パイプライン処理は、ビデオブロック行において動作する取得エンジンおよび部分空間探索エンジンを用いることを備え、その間、整数検索エンジンが、別のビデオブロック行において動作する請求項5に記載の方法。
  8. 前記2次元パイプライン処理は、前記パイプライン内で少なくとも2ステージを含む請求項5に記載の方法。
  9. 前記ビデオブロックは、8×8ブロック、8×4ブロック、4×8ブロック、4×4ブロック、または2×2ブロックのマクロブロックである請求項5に記載の方法。
  10. 現在のビデオブロックに対する正確な動作推定パラメータを生成するために2次元パイプライン処理を実行する手段を含む動作推定器を有するデバイスであって、
    前記2次元パイプライン処理は、前記現在のビデオブロックの正確な動作推定パラメータを生成する前に、前記現在のビデオブロックと同じビデオブロック行における先行するビデオブロックを含む関連する近隣ビデオブロックの、以前に計算された動作推定パラメータを識別する手段を有するデバイス。
  11. 前記動作推定パラメータは、前記現在のビデオブロックからの動作ベクトル、前記現在のビデオブロックに関連付けられた動作ベクトル予測変量、およびモード判定である請求項10に記載のデバイス。
  12. 前記2次元パイプライン処理は、ビデオブロック行において動作する取得エンジンおよび部分空間探索エンジンを用いることを備え、その間、整数検索エンジンが、別のビデオブロック行において動作する請求項10に記載のデバイス。
  13. 前記2次元パイプライン処理は、前記パイプライン内で少なくとも2ステージを含む請求項10に記載のデバイス。
  14. 前記ビデオブロックは、8×8ブロック、8×4ブロック、4×8ブロック、4×4ブロック、または2×2ブロックのマクロブロックである請求項10に記載のデバイス。
  15. 実行された場合、現在のビデオブロックに対する動作ベクトルを生成する命令を格納して有するコンピュータ読取可能媒体を備えるコンピュータプログラム製品であって、
    現在のビデオブロックに対する正確な動作推定パラメータを生成するために2次元パイプライン処理を実行するための各命令のセットを備え、前記2次元パイプライン処理は更に、前記現在のビデオブロックの正確な動作推定パラメータを生成する前に、前記現在のビデオブロックと同じビデオブロック行における先行するビデオブロックを含む近隣ビデオブロックの、以前に計算された動作推定パラメータを識別する命令を含むコンピュータプログラム製品。
  16. 前記動作推定パラメータは、前記現在のビデオブロックからの動作ベクトル、前記現在のビデオブロックに関連付けられた動作ベクトル予測変量、およびモード判定である請求項15に記載のコンピュータプログラム製品。
  17. 前記2次元パイプライン処理は、ビデオブロック行において動作する取得エンジンおよび部分空間探索エンジンを用いることを備え、その間、整数検索エンジンが、別のビデオブロック行において動作する請求項15に記載のコンピュータプログラム製品。
  18. 前記2次元パイプライン処理は、前記パイプライン内で少なくとも2ステージを含む請求項15に記載のコンピュータプログラム製品。
  19. 前記ビデオブロックは、8×8ブロック、8×4ブロック、4×8ブロック、4×4ブロック、または2×2ブロックのマクロブロックである請求項15に記載のコンピュータプログラム製品。
  20. ビデオエンコード方法であって、
    エンコードされる現在のビデオブロックに近接したビデオブロックについて以前に計算された動作ベクトルに基づいて、動作ベクトル予測変量を計算することと、
    前記現在のビデオブロックをエンコードするために用いられる予測ブロックに対する探索の際に、前記動作ベクトル予測変量を用いることと、
    2次元パイプラインを用いて少なくとも2つのビデオブロックを処理することによって、少なくとも1つの動作ベクトル予測変量と、少なくとも1つの動作ベクトルとを計算することと
    を備える方法。
  21. 前記エンコードされる現在のビデオブロックと、最良予測ブロックとの差を示す差分ブロックを生成することを更に備える請求項20に記載の方法。
  22. 前記動作ベクトル予測値に少なくとも部分的に依存する歪み測定値を計算することを含み、前記現在のビデオブロックをエンコードするために使用される前記予測ビデオブロックに対する動作ベクトルを識別することを更に備える請求項21に記載の方法。
  23. 前記歪み測定値は、異なる動作ベクトルをエンコードするために必要とされるビット数を定量化する請求項22に記載の方法。
  24. 前記現在のビデオブロックをエンコードするために使用される最良予測ブロックに対する動作ベクトルを識別するために、異なる空間分解で、ステージにおける探索を実行することを更に備える請求項20に記載の方法。
  25. 前記2次元パイプラインは、ビデオブロック行において動作する取得エンジンおよび部分空間探索エンジンを用いることを備え、その間、整数検索エンジンが、別のビデオブロック行において動作する請求項20に記載のデバイス。
  26. ビデオエンコードデバイスであって、
    異なる動作ベクトルに関連付けられたデータ量に少なくとも部分的に依存する歪み測定値を計算することを含み、現在のビデオブロックをエンコードするために使用される最良予測ブロックに対する動作ベクトルを識別する動作推定器と、
    エンコードされる現在のビデオブロックと、前記最良予測ビデオブロックとの差分を示す差分ブロックを生成する動作補償器と、
    少なくとも2つのビデオブロック行にわたって2次元パイプラインを用いることによって、少なくとも1つの動作ベクトルと、少なくとも1つの動作ベクトル予測変量とを計算することと
    を備えるビデオエンコードデバイス。
  27. 前記動作推定器は、前記現在のビデオブロックをエンコードするために使用される前記最良予測ブロックに対する動作ベクトルを識別するために、異なる空間分解で、ステージにおける探索を実行する請求項26に記載のビデオエンコードデバイス。
  28. 前記ビデオエンコードデバイスは、エンコードされる前記現在のビデオブロックに近接したビデオブロックについて以前に計算された動作ベクトルに基づいて、動作ベクトル予測変量を計算し、
    前記動作ベクトル予測変量の値は、前記ステージのうちの少なくとも1つにおける探索を定義し、前記歪み測定値を計算するためにも使用される請求項26に記載のビデオエンコードデバイス。
JP2008532452A 2005-09-22 2006-09-22 ビデオエンコードのための多次元近隣ブロック予測 Pending JP2009510845A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US71989105P 2005-09-22 2005-09-22
US11/533,745 US8761259B2 (en) 2005-09-22 2006-09-20 Multi-dimensional neighboring block prediction for video encoding
PCT/US2006/037130 WO2007038357A2 (en) 2005-09-22 2006-09-22 Multi-dimensional neighboring block prediction for video encoding

Publications (2)

Publication Number Publication Date
JP2009510845A true JP2009510845A (ja) 2009-03-12
JP2009510845A5 JP2009510845A5 (ja) 2011-06-02

Family

ID=37810755

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008532452A Pending JP2009510845A (ja) 2005-09-22 2006-09-22 ビデオエンコードのための多次元近隣ブロック予測

Country Status (7)

Country Link
US (1) US8761259B2 (ja)
EP (1) EP1958448B1 (ja)
JP (1) JP2009510845A (ja)
KR (1) KR100955152B1 (ja)
CN (1) CN101305615B (ja)
AT (1) ATE518372T1 (ja)
WO (1) WO2007038357A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008154072A (ja) * 2006-12-19 2008-07-03 Canon Inc 動画像符号化装置及び動画像符号化方法

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060120612A1 (en) * 2004-12-08 2006-06-08 Sharath Manjunath Motion estimation techniques for video encoding
US7683910B2 (en) * 2006-06-29 2010-03-23 Microsoft Corporation Strategies for lossy compression of textures
KR100827093B1 (ko) * 2006-10-13 2008-05-02 삼성전자주식회사 영상 부호화 방법 및 장치
US8127233B2 (en) * 2007-09-24 2012-02-28 Microsoft Corporation Remote user interface updates using difference and motion encoding
US8619877B2 (en) * 2007-10-11 2013-12-31 Microsoft Corporation Optimized key frame caching for remote interface rendering
US8121423B2 (en) * 2007-10-12 2012-02-21 Microsoft Corporation Remote user interface raster segment motion detection and encoding
US8106909B2 (en) * 2007-10-13 2012-01-31 Microsoft Corporation Common key frame caching for a remote user interface
EP2051530A2 (en) * 2007-10-17 2009-04-22 Electronics and Telecommunications Research Institute Video encoding apparatus and method using pipeline technique with variable time slot
KR100939917B1 (ko) 2008-03-07 2010-02-03 에스케이 텔레콤주식회사 움직임 예측을 통한 부호화 시스템 및 움직임 예측을 통한부호화 방법
KR101364195B1 (ko) 2008-06-26 2014-02-21 에스케이텔레콤 주식회사 움직임벡터 부호화/복호화 방법 및 그 장치
KR101522850B1 (ko) 2010-01-14 2015-05-26 삼성전자주식회사 움직임 벡터를 부호화, 복호화하는 방법 및 장치
TWI404422B (zh) * 2010-04-14 2013-08-01 Himax Tech Ltd 階層式動作估計的方法與系統
KR20120016991A (ko) * 2010-08-17 2012-02-27 오수미 인터 프리딕션 방법
MX2013001659A (es) 2010-09-24 2013-03-21 Panasonic Corp Metodo de codificacion de imagen, metodo de decodificacion de imagen, aparato de codificacion de imagen, y aparato de decodificacion de imagen.
CN103477637B (zh) * 2011-02-10 2017-04-26 太阳专利托管公司 动态图像编码方法、动态图像编码装置
TW201626802A (zh) * 2011-09-28 2016-07-16 Jvc Kenwood Corp 動態影像編碼裝置、動態影像編碼方法、動態影像編碼程式、送訊裝置、送訊方法及送訊程式、以及動態影像解碼裝置、動態影像解碼方法、動態影像解碼程式、收訊裝置、收訊方法及收訊程式
CN102339592A (zh) * 2011-09-29 2012-02-01 中山大学 一种基于lcd控制器的显存压缩方法
TWI580264B (zh) * 2011-11-10 2017-04-21 Sony Corp Image processing apparatus and method
US20130235926A1 (en) * 2012-03-07 2013-09-12 Broadcom Corporation Memory efficient video parameter processing
US9277222B2 (en) * 2012-05-14 2016-03-01 Qualcomm Incorporated Unified fractional search and motion compensation architecture across multiple video standards
US8787689B2 (en) * 2012-05-15 2014-07-22 Omnivision Technologies, Inc. Apparatus and method for correction of distortion in digital image data
US9979960B2 (en) 2012-10-01 2018-05-22 Microsoft Technology Licensing, Llc Frame packing and unpacking between frames of chroma sampling formats with different chroma resolutions
CN103327340B (zh) * 2013-06-20 2016-06-15 华为技术有限公司 一种整数搜索方法及装置
US9292899B2 (en) 2013-09-25 2016-03-22 Apple Inc. Reference frame data prefetching in block processing pipelines
US9224186B2 (en) 2013-09-27 2015-12-29 Apple Inc. Memory latency tolerance in block processing pipelines
US9774881B2 (en) 2014-01-08 2017-09-26 Microsoft Technology Licensing, Llc Representing motion vectors in an encoded bitstream
US9942560B2 (en) 2014-01-08 2018-04-10 Microsoft Technology Licensing, Llc Encoding screen capture data
US9749642B2 (en) 2014-01-08 2017-08-29 Microsoft Technology Licensing, Llc Selection of motion vector precision
US9715559B2 (en) * 2014-03-17 2017-07-25 Qualcomm Incorporated Hash-based encoder search for intra block copy
US10715818B2 (en) * 2016-08-04 2020-07-14 Intel Corporation Techniques for hardware video encoding
US10602174B2 (en) 2016-08-04 2020-03-24 Intel Corporation Lossless pixel compression for random video memory access
US10368080B2 (en) 2016-10-21 2019-07-30 Microsoft Technology Licensing, Llc Selective upsampling or refresh of chroma sample values
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
US20200014918A1 (en) * 2018-07-08 2020-01-09 Mellanox Technologies, Ltd. Application accelerator
US10291925B2 (en) * 2017-07-28 2019-05-14 Intel Corporation Techniques for hardware video encoding
US11025913B2 (en) 2019-03-01 2021-06-01 Intel Corporation Encoding video using palette prediction and intra-block copy
US20190222858A1 (en) * 2019-03-26 2019-07-18 Intel Corporation Optimal out of loop inter motion estimation with multiple candidate support
US10855983B2 (en) 2019-06-13 2020-12-01 Intel Corporation Encoding video using two-stage intra search

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1023413A (ja) * 1996-07-03 1998-01-23 Fuji Xerox Co Ltd 符号化装置
JP2005142606A (ja) * 2003-11-04 2005-06-02 Sony Corp データ処理装置およびその方法と符号化装置
JP2005198289A (ja) * 2003-12-30 2005-07-21 Samsung Electronics Co Ltd データ処理システムおよびデータ処理方法
JP2005244503A (ja) * 2004-02-25 2005-09-08 Sony Corp 画像情報符号化装置および画像情報符号化方法
JP2005295526A (ja) * 2004-03-11 2005-10-20 Matsushita Electric Ind Co Ltd 画像符号化方法、画像符号化装置および画像符号化プログラム

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5414469A (en) 1991-10-31 1995-05-09 International Business Machines Corporation Motion video compression system with multiresolution features
GB9519923D0 (en) 1995-09-29 1995-11-29 Philips Electronics Nv Motion estimation for predictive image coding
US5652625A (en) 1996-06-19 1997-07-29 United Microelectronics Corp. Multi-stage pipeline architecture for motion estimation block matching
US6023296A (en) 1997-07-10 2000-02-08 Sarnoff Corporation Apparatus and method for object based rate control in a coding system
US6690833B1 (en) 1997-07-14 2004-02-10 Sarnoff Corporation Apparatus and method for macroblock based rate control in a coding system
US6418166B1 (en) 1998-11-30 2002-07-09 Microsoft Corporation Motion estimation and block matching pattern
CN1147159C (zh) 1999-04-27 2004-04-21 三星电子株式会社 实时运动图像编码的高速运动估计方法及其装置
TW550953B (en) 2000-06-16 2003-09-01 Intel Corp Method of performing motion estimation
CN1156168C (zh) * 2001-01-12 2004-06-30 北京航空航天大学 快速视频运动估计方法
US20040190609A1 (en) * 2001-11-09 2004-09-30 Yasuhiko Watanabe Moving picture coding method and apparatus
JP4130783B2 (ja) * 2002-04-23 2008-08-06 松下電器産業株式会社 動きベクトル符号化方法および動きベクトル復号化方法
US7817717B2 (en) 2002-06-18 2010-10-19 Qualcomm Incorporated Motion estimation techniques for video encoding
US6925123B2 (en) * 2002-08-06 2005-08-02 Motorola, Inc. Method and apparatus for performing high quality fast predictive motion search
US7555044B2 (en) * 2002-10-04 2009-06-30 General Instrument Corporation Frequency coefficient scanning paths for coding digital video content
US7606427B2 (en) 2004-07-08 2009-10-20 Qualcomm Incorporated Efficient rate control techniques for video encoding
JP4145275B2 (ja) 2004-07-27 2008-09-03 富士通株式会社 動きベクトル検出・補償装置
US20060120612A1 (en) 2004-12-08 2006-06-08 Sharath Manjunath Motion estimation techniques for video encoding
US7813432B2 (en) * 2004-12-30 2010-10-12 Intel Corporation Offset buffer for intra-prediction of digital video
US9172973B2 (en) * 2005-04-01 2015-10-27 Broadcom Corporation Method and system for motion estimation in a video encoder
US7852940B2 (en) 2005-10-20 2010-12-14 Qualcomm Incorporated Scalable motion estimation for video encoding
US8208548B2 (en) 2006-02-09 2012-06-26 Qualcomm Incorporated Video encoding

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1023413A (ja) * 1996-07-03 1998-01-23 Fuji Xerox Co Ltd 符号化装置
JP2005142606A (ja) * 2003-11-04 2005-06-02 Sony Corp データ処理装置およびその方法と符号化装置
JP2005198289A (ja) * 2003-12-30 2005-07-21 Samsung Electronics Co Ltd データ処理システムおよびデータ処理方法
JP2005244503A (ja) * 2004-02-25 2005-09-08 Sony Corp 画像情報符号化装置および画像情報符号化方法
JP2005295526A (ja) * 2004-03-11 2005-10-20 Matsushita Electric Ind Co Ltd 画像符号化方法、画像符号化装置および画像符号化プログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008154072A (ja) * 2006-12-19 2008-07-03 Canon Inc 動画像符号化装置及び動画像符号化方法

Also Published As

Publication number Publication date
KR20080046238A (ko) 2008-05-26
KR100955152B1 (ko) 2010-04-28
WO2007038357A3 (en) 2007-05-18
ATE518372T1 (de) 2011-08-15
US20070110160A1 (en) 2007-05-17
EP1958448A2 (en) 2008-08-20
CN101305615B (zh) 2011-06-08
US8761259B2 (en) 2014-06-24
EP1958448B1 (en) 2011-07-27
WO2007038357A2 (en) 2007-04-05
CN101305615A (zh) 2008-11-12

Similar Documents

Publication Publication Date Title
EP1958448B1 (en) Multi-dimensional neighboring block prediction for video encoding
JP4755095B2 (ja) 映像符号化の符号化側/復号化側に使用される双方向予測方法
KR100964515B1 (ko) 비디오 인코딩을 위한 비-정수 픽셀 공유
US6289052B1 (en) Methods and apparatus for motion estimation using causal templates
JP2008523724A (ja) 動画像符号化のための動き推定技術
US20090274213A1 (en) Apparatus and method for computationally efficient intra prediction in a video coder
US20120300845A1 (en) Method, apparatus and computer program product for image motion prediction
JP2001028756A (ja) コンテクストベースでフレーム内コーディングモードとフレーム間コーディングモードとの間の選択を行なうための方法および装置
JPH0795594A (ja) 半画素精度の動きベクトル検出方法および装置
US9088797B2 (en) Video processing method and apparatus with residue prediction
JP2004241957A (ja) 画像処理装置および符号化装置とそれらの方法
JPH0974569A (ja) 最適動きベクトル決定方法及び装置
KR100602148B1 (ko) 1/4픽셀 움직임 벡터를 이용한 동영상 압축방법
Ratnottar et al. Comparative study of motion estimation & motion compensation for video compression
KR100617598B1 (ko) 1/4픽셀 움직임 벡터를 이용한 동영상 압축방법
US20130170565A1 (en) Motion Estimation Complexity Reduction
KR100757832B1 (ko) 1/4픽셀 움직임 벡터를 이용한 동영상 압축방법
KR100757831B1 (ko) 1/4픽셀 움직임 벡터를 이용한 동영상 압축방법
KR100757830B1 (ko) 1/4픽셀 움직임 벡터를 이용한 동영상 압축방법
KR100935492B1 (ko) 1 비트 변환을 이용한 움직임 추정 장치 및 방법, 그리고,영상 부호화 장치 및 방법
KR100757829B1 (ko) 1/4픽셀 움직임 벡터를 이용한 동영상 압축방법
KR20100097387A (ko) 고속 움직임 추정을 위한 부분 블록정합 방법
Ma et al. WZ frame reconstruction algorithm based on side information improved in distributed video coding
KR100657714B1 (ko) 3차원 스캐닝을 이용한 영상데이터 부호화 방법
KR20070063479A (ko) 1/4픽셀 움직임 벡터를 이용한 동영상 압축방법

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101109

A524 Written submission of copy of amendment under article 19 pct

Free format text: JAPANESE INTERMEDIATE CODE: A524

Effective date: 20110107

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110215

A524 Written submission of copy of amendment under article 19 pct

Free format text: JAPANESE INTERMEDIATE CODE: A524

Effective date: 20110415

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110531