JP2011530199A - 動き補償ビデオ符号化における画像ブロック比較のためのメトリックを決定する方法及びシステム - Google Patents

動き補償ビデオ符号化における画像ブロック比較のためのメトリックを決定する方法及びシステム Download PDF

Info

Publication number
JP2011530199A
JP2011530199A JP2011520284A JP2011520284A JP2011530199A JP 2011530199 A JP2011530199 A JP 2011530199A JP 2011520284 A JP2011520284 A JP 2011520284A JP 2011520284 A JP2011520284 A JP 2011520284A JP 2011530199 A JP2011530199 A JP 2011530199A
Authority
JP
Japan
Prior art keywords
image block
motion
pixel
pattern matrix
matrix
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
JP2011520284A
Other languages
English (en)
Inventor
ピジョン、スティーブン
Original Assignee
エコール・ドゥ・テクノロジー・スュペリュール
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 エコール・ドゥ・テクノロジー・スュペリュール filed Critical エコール・ドゥ・テクノロジー・スュペリュール
Publication of JP2011530199A publication Critical patent/JP2011530199A/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/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/527Global motion vector estimation

Landscapes

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

Abstract

シーンの動き補償ビデオ符号化に使用される2つの画像ブロック間の差分を表すメトリック決定のための方法及びシステムを記載する。シーン内の1つのブロック内の選択されたピクセルのみが処理されるため、メトリックの計算速度が向上する。
【選択図】図4c

Description

本発明は、動き補償ビデオ符号化に関し、特に、動き補償ビデオ符号化において画像ブロックを比較するのに使用されるメトリックを決定するための改善された方法及びシステムに関する。
マルチメディアは、テキスト、音声、動画等の様々な種類のコンテンツを含み、ネットワークオペレーターにビジネス好機を提供している。より高い帯域幅での通信が可能となり、またパケット交換方式のインターネット・プロトコル(IP)技術の利用により、テキスト、音声、静止及び動画グラフィックス、写真、ビデオクリップ及び音楽といった豊富なコンテンツを送信することが可能となった。ネットワークオペレーターが、この市場において利益を得るためには、品質及び信頼性について顧客の期待に応えなければならない。サーバーレベルでのメディアのトランスコーディングは、今日の携帯端末、携帯電話、コンピュータ、その他の電子機器等から構成される異機種ネットワーク環境下でマルチメディアアプリケーションをレンダリングするのに、重要な技術である。個々のデバイスのリソースは制限されており、多くの場合、メディアを自身で適応化させることができないので、サービスプロバイダ側でメディアの適応化及びトランスコーディングを行う必要がある。これは、サービスプロバイダにとって非常に重要な問題である。なぜなら、今後数年で非常に急激なトラフィックの増加が見込まれており、プロバイダが新しいハードウェアを導入するだけではその急激な増加に追いつかない可能性があるからである。サーバーの数を増やすという総当り的な解決方法は、効率的でない。また、サーバーの数を増やすとそれに比例して消費電力が増加し、放熱や必要とする空間も増加する。システム性能を改善し、トラフィックの大幅な増加に対処する別の方法として、ビデオ符号化のスマート化を図る技術を考案することが挙げられ、マルチメディア適応化におけるリソース集約化に重要な段階となる。
動き補償ビデオ符号化では、複数ブロックからなるシーンの処理を行い、各ブロックは、複数のピクセルからなる。基本的に、現在のビデオコーデックは、動き補償符号化を採用しており、フレームが幾つかの先行フレームに対して符号化され、時間的依存性を利用してより良い補償を行うことを目指している。動き補償ビデオ符号化において最も労力を要する段階は、動き推定段階である。この段階は、シーンに存在する物体のあるフレームから次のフレームへの移動を推定する動き推定アルゴリズムを通じて実行される。この動き推定を使用して合成フレームを生成するが、シーンは、推定された物体の動きに合わせて変形されたものとなる。合成フレームは、差動符号化される現在のフレームに対する予測子として使用される。このような動き推定アルゴリズムは、非常に多くの計算を行う必要があり、したがってエンコーダの実行時間の大部分を占め、解像度が高くなるに従いその割合が大きくなることから、最適化を図るべき対象となっている。
今日まで、ブロックベースの動き推定の問題に対処するために様々な努力がなされており、一般的な問題として、予測フレームが参照フレームからコピーされた複数の小さな四角形の領域から構築されるのをより単純化することを目標としてきた。次に、ブロックベースの動き推定について述べる。本明細における説明では、基本ブロックを16×16ピクセルとしている。しかしながら、本発明と同じ理念を、異なる大きさのブロックに適用可能である。システムの目的は、符号化される現在のフレームに対する予測フレームを生成することである。予測フレームは、所与の参照フレームから現在のフレームを差動符号化することによって生成される。システムは、現在のフレームにおける各16×16ブロックに対して、参照フレームにおける最もマッチングするブロックを探す。探索では、参照フレーム内の幾つかのブロック(16×16の境界に必ずしも合っていなくてもよい)を調べ、現在のブロックとの差が最も小さいブロックを選択する。動き補償プロセスにおいて鍵となる要素である動きベクトルとは、単順に(現在のフレームにおける)現在のブロック部分と比較して(参照フレームにおける)最もマッチングするブロックに対するオフセット(補正値)であると言うことができる。そして、最もマッチングするブロックが参照フレーム又は予測フレームの現在のブロック位置にコピーされる。ブロックのコピーのみが許される状況を考慮すれば、このプロセスの後の予測フレームは、参照フレームから構築できる(画像ブロック間の差分を表す選択されたメトリックによれば)最良の近似となると言える。参照フレームは、現在のフレームを差動符号化するための予測子として使用されている。
以下に、従来技術の参照文献とその内容を簡単に記す。様々な方向に研究がなされている。S. Borman, M. Robertson, R.L Stevenson著「Block Matching Sub-Pixel Motion Estimation from Noisy, Undersampled Frames(多ノイズのアンダーサンプルされたフレームからのサブピクセル動き推定におけるブロックマッチング)」SPIE Visual Communications and Image Processing Conference,1999年には、SAD、MSE及びNCFにおけるサンプリング誤差又はノイズ誤差の影響の実証的研究について記載されている。また、W. Li, E. Salari著「Successive Elimination Algorithm for Motion Estimation(動き補償のための逐次削除アルゴリズム)」IEEE Transactions on Image Processing, Volume 4, Issue 1, 1995年1月, 105‐107頁では、高速動き補償のための動的プログラミングのような方法を考案すべくSAD及びMSEの特性について研究をおこなっている。著者は、解空間の包括的探索を必要としないアルゴリズムに注目し、存在するメトリックの特性について述べているが、新たなメトリックを提案してはいない。F. Tombari, S.Mattocia, L. di Stefano著 「Template Matching Based on Lp Norm Using Sufficient Conditions with Incremental Approximation(増分近似の十分条件を使用したlpノルムに基づくテンプレートマッチング」IEEE International Conference on Video and Signal Based Surveillance, 2006年11月, 20頁は、上記の著者Li及びSalari氏の研究を発展させたものである。メトリックの高速バージョンを計算するのに、同様な動的プログラミング手法を使用している。
U. Koc, K.J.R. Liu著「Interpolation-free Subpixel Motion Estimation Technique in DCT Domain(DCT領域における補間なしサブピクセル動き推定技術)」IEEE Transactions on Circuits and Systems for Video Technology, Volume 8, Issue 4, 1998年8月, 460‐487頁では、サブピクセルレベルに注目し、DCT領域における技術を使用して空間領域におけるサブピクセル補間を避けることを試みており、使用される技術は少なくとも空間領域で使用される技術と同等程度に複雑である。メトリックは、DCT領域へのシフトに対応して適切に拡張されている。S.Lee, Soo-lk Chae,著「Two-step Motion Estimation Algorithm using Low Resolution Quantization(低解像度量子化を使用した2段階動き推定アルゴリズム)」International Conference on Image Processing, Volume 3, 1996年9月, 795‐798頁は、動き推定技術に注目している。この論文では、SADマッチングに"fail fast"という手法を用いている。まず、画像を量子化して各ピクセルの精度を、例えば、8ビット/ピクセルから4ビット/ピクセルへと落とす。精度を落としたバージョンを使用して、第1関数が2つのブロックを比較する。比較結果が許容範囲にある場合は、最大精度のメトリックを使用してプロセスを続行する。また論文では、ハードウェアへの実装を考慮してはいるものの、プロセッサが実行するコードにSADを含むSingle Instruction Multiple Data(SIMD)命令セットが存在する場合において、このSIMDを有効活用することについては検討していない。本発明の重要な側面は、今日の商業プロセッサの市場において利用可能な性能を最適化するSIMD命令セットのようなものを使用して、メトリックの計算に必要な時間を削減することである。
C.-K. Cheung, L.-M. Po著「A Hierarchical Block Motion Estimation Algorithm using Partial Distortion Measure(部分歪測度を用いた階層的ブロックマッチングアルゴリズム)」International Conference on Image Processing, Volume 3, 1997年10月, 606‐609頁に報告されている研究では、通常のサブサンプリングと厳密に等価である通常のグリッドサンプリングを使用したピクセルのサンプリングを行っている。この論文では、SAD及びMSEを、ピクセル全数の1/2又は1/4(5の目形、2列に1列、又は2行に1行の割合のいずれか)のピクセルを使用して計算している。また、ブロックを、1/4グリッドのSADと比較する。n個の優れたものに入る場合には、1/2グリッド密度が使用される次の回に持ち越される。前の回で取得されたn個の優れたもののうち、m個が持ち越されて、完全なSADとの比較を行う。残念ながら、このCheung氏及びPo氏によって提案された手法では、SIMDのような型の並列操作を有効活用できない。
Y.-L.Chan, W.-C.Siu著「New Adaptive Pixel Decimation for Block Motion Vector Estimation(ブロック動きベクトル探索のための新しい適応ピクセルデシメーション)」IEEE Transactions on Circuits and Systems for Video Technology, Volume 6, Issue 1, 1996年2月, 113‐118頁では、Cheung氏及びPo氏の論文と同様な研究を報告している。しかしながら、Chan氏及びSiu氏の論文では、5の目形を除く通常使用されるような様々なサンプリングパターンを検討している。ピクセル密度が1/4及び1/9となるような(2×2ピクセルにつき1ピクセル、又は3×3ピクセルにつき1ピクセル)パターンについて検討しているが、サブピクセル推定については触れていない。
以上のように、画像ブロックの差分を計測するのに様々なタイプのメトリックが、ブロック補償のための現在のコーデックで使用されており、これらを以下の説明でもメトリックと称する。的確なメトリックを使用したとしても、これらを算出するのは、計算コストの高いプロセスである。
したがって、この分野において、画像ブロック間の差分を表すメトリックを速く計算できる有効で改良された方法及びシステムが求められている。
以上のような点を鑑み、本発明は、動き補償ビデオ符号化のブロック比較に使用される2つの画像ブロック間の差分を表すメトリックを計算するための改良された方法及びシステムを提供することを目的とする。
上記課題を解決するために、本発明の1つの態様においては、フレームによって構成されるシーンの動き補償ビデオ符号化において使用されるメトリックを決定する方法であって、メトリックは参照フレームに含まれる第1画像ブロックと現在のフレームに含まれる第2画像ブロックとの差分を表し、第1画像ブロック及び第2画像ブロックは、同じ行数及び列数のピクセルを含み、当該方法は、(a1)第1画像ブロック及び第2画像ブロックにおけるピクセルサブセットを選択するために、第1及び第2画像ブロックと同じ行数及び列数を有するパターン行列を生成する段階と、(b1)前記(a1)段階で生成されたピクセルサブセットにおけるピクセルそれぞれの特徴を取得する段階と、(c1)ピクセルサブセットの特徴を処理して、メトリックを決定する段階とを備える。
前記(a1)段階は、(a2)シーンにおける物体の動きの方向を示すシーンのグローバル動き特徴を生成する段階と、(b2)動き補償ビデオ符号化に使用されるCPUアーキテクチャ、(a2)段階で生成されたグローバル動き特徴及びピクセルサブセット内のピクセル数の推定値であるピクセルバジェットに対応するパターン行列を生成する段階とをさらに有する。
前記(a2)段階は、(a3)シーンについて、振幅及び方向を持つ平均動きベクトルを決定する段階と、(b3)平均動きベクトルの振幅を、所定の動き無しとする閾値と比較する段階と、(c3)平均動きベクトルの振幅が閾値よりも小さい場合に、グローバル動き特徴を、物体の動きが無いことを示す静止状態であると判断する段階と、(d3)平均動きベクトルの振幅が閾値以上である場合は、(a3)段階において決定された平均動きベクトルの方向に基づいて、グローバル動き特徴が、水平方向運動、垂直方向運動又は斜め方向運動のうちいずれか1つであると判断する段階とをさらに含む。
前記(b2)段階は、(a4)動き補償ビデオ符号化に使用されるCPUアーキテクチャ、グローバル動き特徴及びピクセルバジェットに基づいて、一連の所定の複数のパターン行列からパターン行列を選択する段階をさらに含む。
前記(a4)段階は、(a5)動き補償を行う前にパターン行列のリポジトリを生成し、リポジトリのパターン行列はそれぞれ、動き補償ビデオ符号化に使用されるCPUアーキテクチャ、グローバル動き特徴及びピクセルバジェットに対応している。
前記(a5)段階は、リポジトリの複数のパターン行列のそれぞれについて、(a6)第1画像ブロック及び第2画像ブロックにおいて同じ位置を占めるピクセルに対応しているセルであって、パターン行列の複数のセルに複数のブール値を記憶する段階と、(b6)第1画像ブロック及び第2画像ブロックからのピクセルがメトリックの計算に含まれることに対応する"真"又は"偽"のいずれか一方のブール値を、パターン行列の複数のセルに記憶し、第1画像ブロック及び第2画像ブロックからのピクセルがメトリックの計算から除外されることに対応する"真"又は"偽"の他方のブール値を、パターン行列の複数のセルに記憶する段階とをさらに含む。
前記(b1)段階は、(a7)輝度値である特徴を取得する段階と、(b7)第1画像ブロックの複数のピクセルの輝度値を、第1行列の複数のセルに記憶する段階と、(c7)第2画像ブロックの複数のピクセルの輝度値を、第2行列の複数のセルに記憶する段階とをさらに有する。
前記(c1)段階は、(a8)パターン行列を使用して第1行列及び第2行列のセルを選択する段階と、(b8)(a8)段階で選択したセルに記憶された輝度値に、差分絶対値和関数を適用する段階とをさらに有する。前記(c1)段階は、(a9)パターン行列を使用して第1行列及び第2行列のセルを選択する段階と、(b9)(a9)段階で選択したセルに記憶された輝度値に、平均自乗誤差関数を適用する段階とをさらに有する。
本発明の他の側面に係るコンピュータ可読プログラムコード手段を記憶するコンピュータ可読媒体は、コンピュータよって実行された場合に、上述の方法の段階を実行させるコンピュータ可読媒体。
本発明の他の側面に係る方法は、複数のピクセルを有する複数のブロックを含むシーンを動き補償ビデオ符号化するのに使用され、第1画像ブロックと第2画像ブロックとの間の差分を表すメトリックを迅速に計算する方法であって、(a17)第1画像ブロック及び第2画像ブロックにおけるピクセルサブセットを選択するためのパターン行列を生成する段階と、(b17)ピクセルサブセットにおけるピクセルそれぞれの特徴を取得する段階と、(c17)ピクセルサブセットの特徴を処理して、メトリックを決定する段階とを備える。
前記(a17)段階は、(a18)シーンにおける物体の動きの方向を示すシーンのグローバル動き特徴を生成する段階と、(b18)動き補償ビデオ符号化に使用されるCPUアーキテクチャ及びグローバル動き特徴に対応するパターン行列を生成する段階をさらに有する。
前記(a18)段階は、(a19)シーンについて、振幅及び方向を持つ平均動きベクトルを決定する段階と、(b19)平均動きベクトルの振幅を、所定の動き無しとする閾値と比較する段階と、(c19)平均動きベクトルの振幅が閾値よりも小さい場合に、グローバル動き特徴を、物体の動きが無いことを示す静止状態であると判断する段階と、(d19)平均動きベクトルの振幅が閾値以上である場合は、平均動きベクトルの方向に基づいて、グローバル動き特徴が、水平方向運動、垂直方向運動又は斜め方向運動のうちのいずれか1つであると判断する段階とをさらに含む。
前記(b18)段階は、(a20)一連の所定の複数のパターン行列から、パターン行列を選択する段階をさらに含む。前記(b17)段階は、(a21)輝度値である特徴を取得する段階と、(b21)第1画像ブロックの複数のピクセルの輝度値を、第1行列の複数のセルに記憶する段階と、(c21)第2画像ブロックの複数のピクセルの輝度値を、第2行列の複数のセルに記憶する段階とをさらに有する。例えば、前記(c17)段階は、(a22)パターン行列を使用して第1行列及び第2行列のセルを選択する段階と、(b22)(a22)段階で選択したセルに記憶された輝度値に、差分絶対値和関数を適用する段階とをさらに有してもよい。あるいは、前記(c17)段階は、(a23)パターン行列を使用して第1行列及び第2行列のセルを選択する段階と、(b23)(a8)段階で選択したセルに記憶された輝度値に、平均自乗誤差関数を適用する段階とをさらに有してもよい。
ピクセルサブセットは、複数のグループを含み、第1画像ブロック及び第2画像ブロックにおいて、複数のグループは、ブロックをカバーする範囲が最大となるように位置している。これらのグループは、好ましくは等間隔に配置され、各グループ内の複数のピクセルは、ピクセルの複数の行のうちの1つに連続して位置している。
本発明の他の態様では、プロセッサ及びメモリ有し、フレームによって構成されるシーンの動き補償ビデオ符号化において使用されるメトリックを決定するシステムであって、メトリックは参照フレームに含まれる第1画像ブロックと現在のフレームに含まれる第2画像ブロックとの差分を表し、第1画像ブロック及び第2画像ブロックは、同じピクセル行数及びピクセル列数を含み、(a10)第1画像ブロック及び第2画像ブロックにおけるピクセルサブセットを選択するために、第1及び第2画像ブロックと同数の行及び列を有するパターン行列を生成するパターン行列生成ユニットと、(b10)ピクセルそれぞれの特徴を読み出す画像読み出しユニットと、(c10)ピクセルサブセットの特徴を処理することによりメトリックを決定するメトリック計算ユニットとを備えるシステムを提供する。
パターン行列生成ユニット(a10)は、(a11)シーンにおける物体の動きの方向を示すシーンのグローバル動き特徴を計算するグローバル動き特徴決定ユニットと、(b11)シーンのグローバル動き特徴、動き補償ビデオ符号化に使用されるCPUアーキテクチャ及びピクセルサブセット内のピクセル数の推定値であるピクセルバジェットに基づいて、パターン行列を生成する行列決定ユニットとをさらに有する。
行列決定ユニット(b11)は、(a12)一連の所定の複数のパターン行列を記憶するパターン行列リポジトリと、(b12)パターン行列リポジトリからパターン行列を選択するパターン行列選択ユニットとを含み、パターン行列リポジトリのパターン行列はそれぞれ、動き補償ビデオ符号化に使用されるCPUアーキテクチャ、グローバル動き特徴及びピクセルバジェットに対応している。このようなシステムにおいて、特徴は、輝度値である。
メトリック計算ユニット(c10)は、差分絶対値和関数をピクセルサブセットの輝度値に適用する差分絶対値和計算ユニットを含む。または、メトリック計算ユニット(c10)は、平均自乗誤差関数をピクセルサブセットの輝度値に適用する平均自乗誤差計算ユニットを含む。
ピクセルサブセットは複数のグループを含み、複数のグループは、第1画像ブロック及び第2画像ブロックにおいてブロックをカバーする範囲が最大となるように位置している。
以上のように、動き補償ビデオ符号化で使用されるメトリックを決定するための改良されたシステム及び方法が提供される。
本発明のさらなる特徴及び利点は、添付の図面を参照して説明され、例示することのみを目的として以下に記載される実施形態を通じて明らかになる。
動き補償ビデオ符号化のための従来のシステムを示した図である。 図1のコアサブシステム102aをより詳細に示した図である。 動き補償ビデオ符号化における動き推定を行う従来の方法の段階を示したフローチャートである。 本発明の実施形態に係るメトリック決定に掛かる計算コストを削減するCPUアーキテクチャに基づく、連続ピクセル選択の例を示した図である。 本発明の実施形態の改良されたコアサブシステム102bを示した図である。 図4bの改良されたメトリック決定モジュール214b内のユニットを示した図である。 画像ブロック間の差分を表すメトリックを決定するための本発明の実施形態によって実行される方法の段階を示したフローチャートである。 本発明の実施形態において、シーンのグローバル動き特徴を決定するのに使用される方法を示した図である。 図5の"P‐SADを計算する"段階を示したフローチャートである。
ブロックベースの動き推定アルゴリズムは、2つの画像ブロック間の差分(文献ではしばしば、誤差と称される)を表すメトリックが、最適化領域周辺では最小になるというほぼ正しい仮定に基づいているので、実際のメトリックに対する依存性は緩く、アルゴリズムは、効率的で低コストの近似メトリックに対して弾力的であると考えられる。本発明は、比較されるブロックにおいて選択されたピクセルのみを考慮することにより、画像ブロック間の差分を表すメトリックを決定するのに掛かる計算コストを削減するものである。メトリックを決定するのに掛かる時間が大幅に削減でき、画像の明らかな品質低下が生じない。
本発明の詳細を説明する前に、図1に示すシステム100を参照して、動き補償符号化の概略を説明する。コアシステム102aは、動き推定モジュール106に接続されたフレームバッファモジュール104、及び動き補償モジュール108を含む。動き推定モジュール106は、動き補償モジュール108に接続される。フレームバッファモジュール104は、他のモジュールが動き補償フレームを生成するのに必要とする幾つかの前(previous)フレームを格納し、生成された動き補償フレームは、処理中の現在の(current)フレームの予測子として使用される。動き補償された画像を生成するコアサブシステム102aについては、図2を参照して詳細に説明する。
動き補償モジュール108からの動き補償されたフレームを、現在の画像から差し引き(図1ではマイナス"−"の演算子114で表されている)、残り(画像の差分)が、符号化のために変換ステップへ送られる。
フレームはフレームソース110によって生成されるが、フレームソースは画像フレームをエンコーダに提供しさえすればどのような装置であってもよい(例えば、カメラ又はファイル)。フレームソース110に記憶されたフレームの処理は、選択されたモードに依存する。モード選択モジュール112は、コーデックに入力されるフレームを、動き補償で符号化するべきか、又は"フレーム内予測モード(イントラモード)"を使用して符号化するべきかを示す。フレーム内予測(イントラ)モードは、他のフレームに対して復号化ができないフレーム(例えば、キー(key)フレーム)に対して使用される。このようなフレームには、その画像内に完全包含されるデータに限定して行われるスタンドアローンの符号化を適用する。モード選択モジュールは、ストリームレベルのポリシーに基づく構成であるので、動き補償構成の外部に設けられる。モード選択モジュールは、補間されたフレーム(動き補償されたフレーム)、若しくは、補償又は他のフレームを参照することなくそのフレーム自身で復号化を行うことのできる"キーフレーム"のいずれかを選択する。とりわけ、前フレームの復号化をせずに動画の特定の位置を探す場合には、キーフレームが使用される。また、伸長(解凍)は、キーフレームでのみ開始することができ、動き補償されたフレームは他のフレームに依存するため、伸長の初期点とすることはできない。モード選択モジュール112が、イントラ予測モジュール116を選択した場合は、このモジュール116が、他のフレームの助けを借りることなく現在のフレーム内でピクセルの予測を行う。このとき、符号化のためのキーフレームが準備される。先に述べたように、Iフレーム(intra‐coded frame)の圧縮/伸長は、他のフレームに依存しない。フレーム内予測の詳細については、本発明の議論すべき範囲を超えるため、ここでは記載しない。モード選択モジュール112が、変換オペレーションを行うよう選択した場合は、動き補償モジュール108の出力に従って処理された後のフレームが、変換モジュール118に入力される。変換は、コーデックに固有のステップであり、画像が、空間(ピクセル)領域から周波数領域に変換される。変換は、通常、離散コサイン変換(DCT)又は同類(kin)変換である。変換符号化はよく知られた技術であり、本発明の原理に関してこれ以上詳細に説明する必要はないため、省略する。ピクセルを周波数領域に変換した後、得られたデータを量子化モジュール128の助けを借りて量子化する。量子化は、基本的に精度低下(したがって、不可逆な)を伴うステップであり、実際のデータの表示に使用されるビットの数が少なくなっていることを意味する。量子化の種類及び粗さはそれぞれ、コーデック及びユーザーが指定する目標とする品質/ビットレートに依存する。そして、量子化モジュール128からの出力は、逆量子化モジュール126、及び動き推定モジュール106から動きベクトルを受信するエントロピー符号化モジュール130によって処理される。エントロピー符号化は、コーデック固有のステップであり、量子化モジュール128からの精度が落とされたデータは、可変長コード及び他の補償技術を使用して符号化される。このレベルでは、精度は失われておらず、より効率的なデータ表示が使用されているだけである。典型的には、ハフマン符号化を変化させたものであって、事前に計算される静的符号、又はデータの符号化に従って展開される適応符号のいずれかを使用する。より高度なコーデックには、H.264のような高度な技術を使用する。
エントロピー符号化モジュール130の出力は、トランスポート符号化モジュール132によって処理される。このモジュールは、出力がファイルとしてストレージモジュール136に格納されるのか又は送信モジュール134によってデータとして送信されるのかに基づいて、エントロピー符号化されたデータをトランスポート形式に"ラッピング"する。典型的なトラスンポートファイル形式としては、MPEG TS、AVI、3GP等が挙げられる。送信は、インターネットで動画をストリームするのに使用されるリアルタイム・トランスポート・プロトコル、すなわちRTP/RTSPを使用して行うことができる。
逆量子化モジュール126は、量子化モジュール128の出力を受信し、量子化モジュール128が行ったステップを元に戻す。これは、しかしながら、量子化の段階で情報が回復不可能に失われてしまうため、完全に元に戻すプロセスとはならない。したがって、逆量子化は、精度を落とした元のデータの近似値を生成するプロセスである。次に、逆量子化されたデータが、逆変換モジュール124により処理される。このモジュールでは、変換ステップの逆が行われ、周波数領域のデータを、ピクセル領域のデータへと変換する。この時点で、データは、変換モジュール118に入力された画像よりも精度が落とされた近似データとなっている。
図1の上部中央に示されている第2のモード選択スイッチ120(スイッチ112の反転構成)は、フレームバッファモジュール104に追加する画像を、イントラフレームのものにするか動き補償フレームのものにするかを決定する。イントラフレームの場合、逆変換モジュール124の出力は、すでに完全な画像になっていることから、そのままフレームバッファモジュール104に追加される。動き補償フレームの場合、逆変換からの差分を動き補償フレームに加算し戻し(このオペレーションは、図ではプラス"+"の演算子122で表されている)、フレームバッファモジュール104に追加される最終的な符号化された画像となる。
コアサブシステム102aを、図2を参照して説明する。最終符号化画像202とは、図1の逆変換モジュール124により生成された画像のことであり、幾つかのフレームを格納するフレームバッファモジュール104に挿入される。典型的なフレームバッファモジュール104では、一般的に、最後に符号化された1つ又は2つの画像を含む少数のバッファされたフレーム208の格納に限定される。新たなフレームが追加される時には、最も古いフレーム(最も長い時間バッファに留まっていたフレーム)が廃棄され、バッファが無制限に増加してしまうのを防いでいる。H.264のような特定のコーデックでは、格納されるフレームの数が16と多くなるが、通常は、前フレームのみに限定される。フレーム選択モジュール210は、動き推定アルゴリズム216から出力されたフレーム選択に応じて、次のモジュールに適したフレームを選択する。
符号化すべき現在の画像212及びフレーム選択モジュール210によって選択されたフレームは、実際に動き推定を実行する動き推定アルゴリズム216を備える動き推定モジュール106によって処理される。また、メトリック決定モジュール214aを使用して、2つの画像ブロック間の差分を測るのに使われるメトリックを生成する。動き推定アルゴリズム216の複雑さに応じて、単純に"最後のフレームを取得する"フレーム選択にするか、インタレース方式で複数のハーフ・フレームを選択するといったより複雑なフレーム選択をするかが決まる。また、フレーム選択は、特定のコーデックがサポートされているか否かにも依存する。あるコーデックでは、最後のフレームのみが参照フレームとしてサポートされており、H.264のような別のコーデックでは、多数の画像(この場合、16個まで)から複数の画像の切り取りをサポートしている場合もある。そして動き推定モジュールは、動きベクトルを返す(複数の前フレームの参照を含む場合もある)。
動き推定アルゴリズム216の出力は、動き補償モジュール108によって使用される。動き補償モジュールは、動きベクトル(及び前フレームの参照)によって記述された変換を適用する。動き補償モジュール108は、動きベクトルによって規定されるように、参照フレームのパーツから予測画像を構成する。
典型的な動き推定アルゴリズムによって実行される方法の各ステップについて、図3に示すフローチャート300を参照して説明する。プロセス300が開始される(ボックス302)と、最適メトリック変数は任意の大きい値に設定され(ボックス304)、探索位置は初期値に設定される(ボックス306)。探索位置は、処理されている現在フレームを補償するための、現在のブロックと比較される参照フレーム内のブロックの位置である。動き推定アルゴリズムは、このような幾つかの参照フレームにおける位置を生成し、これらの位置におけるブロックを現在フレームにおける現在のブロックと比較することにより検証する。プロセス300は、探索位置を検証する(ボックス308)。差分絶対値和(SAD)関数を、2つの行列a及びbの対応するセルに格納された各ピクセルの輝度値に適用することにより、探索位置の検証が行われる。検証される参照フレームからのブロックは第1ブロックと称され、当該ブロックのピクセルの輝度値は第1行列に格納されて、以下に示す式において"a"として表されている。また、処理される現在フレームからのブロックは第2ブロックと称され、当該ブロックのピクセルの輝度値は第2行列に格納されて、以下に示す式において"b"として表されている。行i、列jのセルにおけるこれら2つの行列をそれぞれ、a[i,j]、b[i,j]と表すことにする。すなわち、
Figure 2011530199
このSAD関数によって計算される2つのブロック間の差分の大きさは、メトリックと呼ばれ、このメトリックと最適メトリックとを比較する(ボックス310)。プロセス300において、メトリックが最適メトリックよりも小さい場合は、ボックス310にて"Yes"が選択され、この探索位置から動きベクトルが計算される(ボックス314)。プロセス300において、反対にメトリックが最適メトリックよりも小さくない場合には、ボックス310において"No"が選択されて、追加の探索位置を生成する必要があるか否かを検証する(ボックス312)。必要でない場合は、ボックス312において"No"が選択され、プロセス300は終了する(ボックス322)。必要がある場合は、新たな探索位置が生成され(ボックス315)、プロセス300はボックス308に再び戻る。ボックス314において、動きベクトルを計算した後、プロセス300は、このメトリックの値を最適メトリックに記憶し、ボックス314において計算された動きベクトルを最適ベクトルと呼ばれる変数に記憶する(ボックス316)。次いで、最適メトリックが所定の閾値よりも小さいか否かを検証する(ボックス318)。小さくない場合、ボックス318において"No"が選択され、プロセス300はボックス312に戻る。小さい場合は、ボックス318において"Yes"が選択され、最適ベクトルを動きベクトルバッファに追加し(ボックス320)、プロセス300は終了する(ボックス322)。
例えばSAD関数を使用した、2つの画像ブロック間の差分を表すメトリックの計算は、2つのブロック内の各ピクセルに基づいて行われるため、非常に時間が掛かるプロセスである。本発明は、2つの異なる技術を採用して、この計算の複雑さを大幅に低減する。選択されたピクセルのサブセット(部分集合)のみが、メトリックの計算に使用される。
Figure 2011530199
P‐SADは、SAD関数に基づく最適化されたパターンであり、Pに含まれるピクセルのサブセットのみを使用し、このピクセルのサブセットの選択に使用されるパターン行列に基づいている。P‐SADの計算の複雑さは、計算されるi,jの組の数に直接比例する。(i,jによって特定される)ピクセルは、構成される画像における歪みが無視できる程度に小さくなるように選択される。P‐SADプロセスは、a行列、b行列及びパターン行列という3つの独立変数を持つ。パターン行列は、ブール行列であり、あるi及びjの組み合わせについて、あるピクセル輝度値のセット、a[i,j]及びb[i,j]がP‐SADの計算に含まれるか否かを示す"真(true)"又は"偽(false)"の値を含む。パターン行列[i,j]おける"真"の値は、対応するa[i,j]及びb[i,j]の組がP‐SADの計算に含まれることを意味し、反対に値が"偽"であるとは、対応するa[i,j]及びb[i,j]の組が計算から除外されていることを意味する。P‐SADの計算に使用される項の数を減らすことにより、計算の複雑さが大幅に低下する。P‐SADの計算の実行時間は、グループと称する、同じ行に位置する連続した複数のピクセルを選択することにより、さらに最適化することができる。使用可能な複数のCPUが、1つのCPU命令でこのようなグループの演算を実行できる。市場に存在する幾つかのCPUは、このような演算を行うための単一命令複数データ(Single Instruction Multiple Data:SIMD)命令を備える。例えば、インテル(登録商標)のPentium(登録商標)IIIシリーズプロセッサは、x86アーキテクチャを拡張したストリーミングSIMD拡張命令(SSE)を備える。また、3DNow!は、PSADBW(packed SAD from byte summed to word)命令を提供するAMDのK6プロセッサのマルチメディア拡張である。
5つのグループを選択した例が図4aの略図350に示されており、灰色のセルは、例示された16×16のブロックから選択されたP‐SADの計算に使用されるピクセルを表している。この例では、各グループが8つのピクセルを含んでいる。パターン行列は、これらのグループが可能な限り(水平方向及び垂直方向の両方において)等間隔に配置され、ブロックをカバーする範囲の長さが最大となるように構築される(図4a参照)。図4aの例において、任意の隣接する2つのグループ間の垂直方向の距離はおよそ等しくなっており、任意の隣接する2つのグループ間の水平方向の距離は互いに等しくなっている。ブロック内においてこのようにグループを位置させることにより、ブロックをカバーする範囲が最大になる。すなわち、図4aに示されるように、グループは、ブロックの一領域に密集しないように配置され、可能な限りブロックの大部分をカバーするように配置される。SSEを備えるインテルのPentium(登録商標)IIIプロセッサは、例えば、1つのCPU命令につき、同じ行に位置する8つの連続した灰色のセルのセットで表されるグループの演算を行うことができる。
パターン行列における"真"の値の数(又は、"偽"の値の数)により、P‐SADの計算に伴うコストを直接制御でき、また、ピクセルバジェットに基づく。ピクセルバジェットは、選択されたピクセルのサブセットにおいてP‐SADにより処理されるピクセル数の推定値である。ピクセルバジェットは、予め定められる固定値であってもよいし、ユーザーによって指定される値であってもよい。パターン行列は、このピクセルバジェット、CPUアーキテクチャ及び処理されるシーンのグローバル動き特性に基づいて選択される。図4aの例は、ピクセルバジェットが40の場合に対応する。SSEを備えるインテルのPentium(登録商標)IIIプロセッサを使用して、1つの命令につき、8つのピクセルからなる1グループの演算を行うとすると、グループの数は、40/8=5となり、図4aの例では、5つのグループが使用されることになる。
本発明の実施形態では、メトリックを決定するための計算の複雑さを、メトリック決定モジュール214aを改良することにより軽減する。P‐SAD関数を実装する改良されたメトリック決定モジュール214bを組み込んだ改良されたコアサブシステム102bが、本発明の実施形態を示す図4bのシステム370に示されている。214bを除いた、改良されたコアサブシステムの全て要素は、図2のコアサブシステム102aに示されたものと同じである。本発明の実施形態に係るシステム370は、1つのCPU及び1つのコンピュータ可読媒体を有する汎用コンピュータ又は専用コンピュータを含み、コンピュータ可読媒体の例としては、メモリ、DVD、CD‐ROM及びCPUによって実行されるコンピュータ可読命令を記録するその他の媒体が挙げられる。あるいは、システムを、ファームウェア又はファームウェアと専用コンピュータの組み合わせに実装してもよい。改良されたメトリック決定モジュール214bを含め、システム370の様々なモジュールが、コンピュータ可読媒体に記憶されCPUによって実行されるコンピュータ可読命令として実装される。
改良されたメトリック決定モジュール214bを、図4cに示す略図214bを参照して説明する。上述したように、改良されたメトリック決定モジュール214bは、ファームウェア、又はコンピュータ可読媒体に記憶されたコンピュータソフトウェアコードにより実装可能である。
改良されたメトリック決定モジュール214bは、画像読み出しユニット404、パターン行列生成ユニット402及びメトリック計算ユニット406の3つのユニットを含み、コンピュータ可読媒体に記憶されたコンピュータ可読命令によって構成される。1つのシーン内の全ピクセルの輝度値のような特徴は、動き補償ビデオ符号化を実行するために画像読み出しユニット404によって読み出される。これらの特徴は、パターン行列生成ユニット402が適切なパターン行列を生成するのに使用され、また、メトリック計算ユニット406が、参照フレームに含まれる第1画像ブロックと処理される現在フレームに含まれる第2画像ブロックとの間の差分を表すメトリックを決定するのに使用される。本発明の一実施形態では、メトリック計算ユニットは、先に説明したP‐SAD関数を実装する差分絶対値和計算ユニットを含む。パターン行列生成ユニット402は、グローバル動き特徴決定ユニット408及びパターン行列決定ユニット409の2つのユニットを含み、コンピュータ可読媒体に記憶されたコンピュータ可読命令によって構成される。グローバル動き特徴決定ユニット408は、シーンにおいて物体が動く方向を示す、シーンのグローバル動き特徴を計算する。この情報は、パターン行列決定ユニット409が、このシーンの動き補償ビデオ符号化に使用するパターン行列を選択するのに使用される。パターン行列決定ユニット409は、行列選択ユニット410及びコンピュータ可読媒体に記憶されているパターン行列リポジトリ412の2つのユニットを含む。パターン行列リポジトリ412は、予め定められた一連のパターン行列を記憶しており、パターン行列のそれぞれが、CPUアーキテクチャ及びシーンのグローバル動き特徴に対応している。パターン行列決定ユニット410は、動き補償ビデオ符号化で使用されるCPUアーキテクチャ、処理されるシーンのグローバル動き特徴及びピクセルバジェットに基づいて、パターン行列リポジトリ412からパターン行列を選択する役割を担っている。パターン行列リポジトリは、複数のパターン行列を含み、各パターン行列は、動き補償ビデオ符号化で使用されるCPUアーキテクチャ、処理されるシーンのグローバル動き特徴及びピクセルバジェットの特定の組み合わせに対応している。図4aに示された例の場合、パターン行列リポジトリは、SSE拡張を備えるインテルのPentium(登録商標)IIIプロセッサ及びピクセルバジェット40に対応する4つの特定のパターン行列を含む。これら4つのパターン行列はそれぞれ、シーンの特定のグローバル動き特性である、静止状態、水平方向運動、垂直方向運動及び斜め方向運動に対応している。3つの因数の全てについて値が既知となると、特定のパターン行列の位置が特定され、リポジトリから読み出される。これらのユニットを実現する方法を、次に説明する。
メトリック計算ユニット406によって実行されるP‐SAD値の計算方法のステップを、図5に示すフローチャート500を参照して説明する。方法が開始される(ボックス502)と、CPUアーキテクチャに基づいて、1グループのピクセルの数ln_groupを選択する(ボックス504)。ここで、先に述べたように、グループとは、1つの行に連続して位置し、1つのCPU命令によって処理される複数ピクセルのことを指す。例えば、CPUが、一度にn個のピクセルを処理できる命令をサポートしている場合には、ln_groupはnに設定される。使用されるグループの数は、no_groupと表され、これを計算する(ボックス506)。床関数(floor function)は、変数に対して、変数以下の最大の整数を生成する関数である。シーンのln_group、no_group及びグローバル動き特徴に基づいて、使用するパターン行列を決定する(ボックス508)。本発明の一実施形態では、パターン行列は、記憶された複数の行列のセットから選択される。パターン行列が決定した後、P‐SAD値が計算され(ボックス510)、プロセス500が終了する(ボックス512)。様々なパターン行列の記憶及びボックス508で行われる選択について、次に説明する。そして、P‐SADの計算方法について説明する。
パターン行列は、パターン行列生成ユニット402により生成される。パターン行列の選択について、簡単に説明する。シーンは、多様な方法で特徴づけることができる。本発明の一実施形態では、シーンのグローバル動き特徴を使用して、静止状態、垂直方向運動、斜め方向運動又は水平方向運動としてシーンを特徴づける。この特徴づけは、物体の動きのおよその方向を捉えることによって行われ、静止状態は、動きが僅かである又は全くない特別な場合である。図6に示す図表600は、1つのシーンのグローバル動き特徴を決定するのに使用されるプロセスを説明する図である。あるシーンに対する、振幅と方向を持つ平均動きベクトルは、そのシーンにおける異なる複数ブロックに対する動きベクトルを足し合わせ、この合計をブロックの数で割ることにより計算される。平均動きベクトルの振幅(又は長さ)は、ユーザーが設定する所定の"動き無しとする閾値"602と比較される。ベクトルの振幅が、この閾値よりも小さい場合には、シーンは静止状態であると分類される。例えば、平均動きベクトル604の振幅が、動き無しとする閾値よりも小さい場合は、静止状態であると判断される。平均動きベクトル606の振幅が、動き無しとする閾値よりも大きい場合には、ベクトルの方向を考慮する。
図6の例では、シーンの特徴づけ空間が8つの領域に分割される。領域612及び620は水平方向運動に対応し、領域608及び616は垂直方向運動に対応し、領域610、614、618及び622は斜め方向運動に対応している。平均動きベクトルがどの領域に属するかに応じて、シーンが、水平方向運動、垂直方向運動又は斜め方向運動として分類される(図6参照)。図6では、平均動きベクトル606の振幅は動き無しの閾値よりも大きく、図表の垂直方向運動領域608に位置するので、シーンは垂直方向運動として分類される。本発明の一実施形態では、動き補償ビデオ符号化が行われる前に、P‐SADの計算に使用されるパターン行列が複数生成され、リポジトリに記憶される。各パターン行列は、シーンのln_group、no_group及びグローバル動き特徴のある特定の組み合わせに対応する。実行時には、処理されるべきシーンの平均動きベクトルを分析して、適切なパターン行列をパターン行列のリポジトリから読み出し(ボックス508)、次に説明するP‐SADの計算に使用する。
図5のボックス510で実行される本発明の方法の段階を、図7に示すフローチャート700を参照して説明する。16×16ピクセルの画像ブロックを使用するシステムを例として説明するが、本発明の方法は、他のブロックサイズにも容易に拡張可能である。プロセス700が開始すると(ボックス702)、初期化ステップが実行される(ボックス704)。このステップでは、現在の行及び列を表すインデックスを記憶するi及びjの初期値をそれぞれ1に設定し、変数の合計(sum)は0に設定される。プロセス700では、初期化段階の後、パターン行列のi番目の行及びj番目の列に位置するセルに記憶されているブール値を確認する(ボックス706)。確認の結果、値が"真"である場合は、プロセス700のボックス706において"Yes"が選択され、ボックス708に示すようにP‐SADの計算にa[i,j]、b[i,j]が使用される。偽である場合は、プロセス700のボックス706において"No"が選択され、P‐SADの計算からa[i,j]、b[i,j]の値が除外される。したがって、プロセス700のボックス708のオペレーションはスキップされ、現在の行に対する全ての列が対象となっているか否かを検証する(ボックス710)。全ての列が対象となっていない場合、プロセス700のボックス710において"No"が選択され、jの値をインクリメントして(ボックス712)次の列に進み、ボックス706に戻る。全ての列が対象となっている場合、プロセス700のボックス710において"Yes"が選択され、全ての行がカバーされたか否かを検証する(ボックス716)。全ての行がカバーされた場合は、ボックス716において"Yes"が選択され、値を合計に返し(ボックス718)、プロセス700が終了となる(ボックス720)。全ての行がカバーされていない場合は、プロセス700のボックス716において"No"が選択され、iの値をインクリメントし、jの値を1に設定して(ボックス714)次の行に進み、ボックス706に戻る。
本発明の特定の実施形態が詳細に記載されたが、記載された実施形態は、本発明を例示するために示したものであり、限定することを意図していない。本発明の広範な側面における範囲を逸脱することなく、図及び明細書に示された実施形態について、様々な変更及び改良が可能である。例えば、メトリックの決定のためにP‐SAD関数ではなく、平均自乗誤差関数に基づく最適化されたパターン(P‐MSE)を使用してもよい。
Figure 2011530199
P‐SADの場合と同様、メトリックの計算には、選択されたピクセルの特徴のみが使用される。必要であれば、例えば、デシベルのようなメトリックの決定に、他の関数を使用することもできる。また、ピクセルバジットで規定されるピクセルの数よりも僅かに多いピクセル数の使用がユーザーに許容される場合には、床関数の替わりに、天井関数をno_group(図5参照)の決定に使用してもよい。別の実施形態では、所望の機能を達成するよう、図4cに示されたものとは異なるユニットを改良されたメトリック決定モジュール214bで使用してもよい。さらに、このようなユニットを、1つのコンピュータで実行してもよいし、複数のコンピュータ間に分配して実行してもよい。
また、本発明の実施形態に係る方法の段階を実行する命令を記憶するコンピュータメモリ、DVD、CD−ROM、フロッピー(登録商標)ディスク等のコンピュータ可読媒体が提供される。
必要に応じて、様々な変形例が考えられる。記載されたシステムの特徴の範囲内で、ここに特に記載された以外の態様でも発明を実行することができる。
本発明の特定の実施形態が詳細に記載されたが、記載された実施形態は、本発明を例示するために示したものであり、限定することを意図していない。本発明の広範な側面における範囲を逸脱することなく、添付の図及び明細書に示された実施形態について、様々な変更及び改良が可能である。

Claims (17)

  1. 複数のピクセルを有する複数のブロックを含むシーンを動き補償ビデオ符号化するのに使用され、第1画像ブロックと第2画像ブロックとの間の差分を表すメトリックを決定する方法であって、
    (a1)前記第1画像ブロック及び前記第2画像ブロックにおけるピクセルサブセットを選択するためのパターン行列を生成する段階と、
    (b1)前記(a1)段階で生成された前記ピクセルサブセットにおけるピクセルそれぞれの特徴を取得する段階と
    (c1)前記ピクセルサブセットの前記特徴を処理して、前記メトリックを決定する段階と
    を備える方法。
  2. 前記第1画像ブロック、前記第2画像ブロック及び前記パターン行列は、同じピクセル行数及びピクセル列数を含む請求項1に記載の方法。
  3. 前記(a1)段階は、
    (a2)前記シーンにおける物体の動きの方向を示す前記シーンのグローバル動き特徴を生成する段階と、
    (b2)前記動き補償ビデオ符号化に使用されるCPUアーキテクチャ及び前記グローバル動き特徴に対応している前記パターン行列を生成する段階とをさらに有する請求項1又は2に記載の方法。
  4. 前記(b2)段階は、
    前記ピクセルサブセット内のピクセル数の推定値であるピクセルバジェットに基づいて、前記パターン行列を生成する段階をさらに含む請求項3に記載の方法。
  5. 前記(a2)段階は、
    (a3)前記シーンについて、振幅及び方向を持つ平均動きベクトルを決定する段階と、
    (b3)前記平均動きベクトルの前記振幅を、動き無しとする予め定められた閾値と比較する段階と、
    (c3)前記平均動きベクトルの前記振幅が前記閾値よりも小さい場合に、前記グローバル動き特徴を、物体の動きが無いことを示す静止状態であると決定する段階と、
    (d3)前記平均動きベクトルの前記振幅が前記閾値以上である場合は、前記(a3)段階において決定された前記平均動きベクトルの前記方向に基づいて、前記グローバル動き特徴が、水平方向運動、垂直方向運動又は斜め方向運動のうちいずれか1つであると判断する段階とをさらに含む請求項3又は4に記載の方法。
  6. 前記(b2)段階は、
    (a4)動き補償を行う前に生成される複数のパターン行列のリポジトリから前記パターン行列を選択する段階をさらに含み、
    前記リポジトリのパターン行列それぞれは、前記動き補償ビデオ符号化に使用される前記CPUアーキテクチャ、前記グローバル動き特徴及び前記ピクセルバジェットに対応している請求項3から5のいずれか一項に記載の方法。
  7. 前記(a4)段階は、前記リポジトリの前記複数のパターン行列のそれぞれについて、
    (a6)前記パターン行列は、前記第1画像ブロック及び前記第2画像ブロックにおいて同じ位置に位置するピクセルにそれぞれ対応する複数のセルを含み、前記パターン行列の前記セルにブール値を記憶する段階と、
    (b6)前記第1画像ブロック及び前記第2画像ブロックのピクセルが前記メトリックの計算に含まれることに対応する"真"のブール値又は"偽"のブール値の一方を、前記パターン行列の前記セルに記憶し、前記第1画像ブロック及び前記第2画像ブロックのピクセルが前記メトリックの計算から除外されることに対応する前記"真"のブール値又は"偽"のブール値の他方を、前記パターン行列の前記セルに記憶する段階とをさらに含む請求項6に記載の方法。
  8. 前記(b1)段階は、
    (a7)輝度値である前記特徴を取得する段階と、
    (b7)前記第1画像ブロックの複数のピクセルの輝度値を、第1行列の複数のセルに記憶する段階と、
    (c7)前記第2画像ブロックの複数のピクセルの輝度値を、第2行列の複数のセルに記憶する段階とをさらに有する請求項1から7のいずれか一項に記載の方法。
  9. 前記(c1)段階は、
    (a8)前記パターン行列を使用して前記第1行列及び前記第2行列の複数のセルを選択する段階と、
    (b8)前記(a8)段階で選択された前記複数のセルに記憶された前記輝度値に、差分絶対値和関数又は平均自乗誤差関数のいずれか一方を適用する段階とをさらに有する請求項1から8のいずれか一項に記載の方法。
  10. 前記ピクセルサブセットは、複数のグループを含み、
    前記第1画像ブロック及び前記第2画像ブロックにおいて、前記複数のグループは、ブロックをカバーする範囲が最大となるように位置している請求項1から9のいずれか一項に記載の方法。
  11. プロセッサ及びコンピュータ可読命令を記憶するコンピュータ可読媒体を備え、複数のピクセルを有する複数のブロックを含むシーンを動き補償ビデオ符号化するのに使用され第1画像ブロックと第2画像ブロックとの間の差分を表すメトリックを決定するためのシステムであって、
    (a10)前記第1画像ブロック及び前記第2画像ブロックにおけるピクセルサブセットを選択するためのパターン行列を生成するパターン行列生成ユニットと、
    (b10)ピクセルそれぞれの特徴を読み出す画像読み出しユニットと、
    (c10)前記ピクセルサブセットの前記特徴を処理することにより前記メトリックを決定するメトリック計算ユニットとを備えるシステム。
  12. 前記第1画像ブロック、前記第2画像ブロック及び前記パターン行列は、同じピクセル行数及びピクセル列数を含む請求項11に記載のシステム。
  13. 前記パターン行列生成ユニット(a10)は、
    (a11)前記シーンにおける物体の動きの方向を示す前記シーンのグローバル動き特徴を計算するグローバル動き特徴決定ユニットと、
    (b11)前記シーンの前記グローバル動き特徴、前記動き補償ビデオ符号化に使用されるCPUアーキテクチャ及び前記ピクセルサブセット内のピクセル数の推定値であるピクセルバジェットに基づいて、前記パターン行列を生成する行列決定ユニットとをさらに有する請求項11又は12に記載のシステム。
  14. 前記行列決定ユニット(b11)は、
    (a12)一連の所定の複数のパターン行列を記憶するパターン行列リポジトリと、
    (b12)前記パターン行列リポジトリから前記パターン行列を選択するパターン行列選択ユニットとを含み、
    前記パターン行列リポジトリのパターン行列はそれぞれ、前記動き補償ビデオ符号化に使用される前記CPUアーキテクチャ、前記グローバル動き特徴及び前記ピクセルバジェットに対応している請求項13に記載のシステム。
  15. 前記メトリック計算ユニット(c10)は、差分絶対値和関数を前記ピクセルサブセットの前記特徴の値に適用する差分絶対値和計算ユニット、又は平均自乗誤差関数を前記ピクセルサブセットの前記特徴の値に適用する平均自乗誤差計算ユニットを含む請求項11から14のいずれか一項に記載のシステム。
  16. 前記ピクセルサブセットは、複数のグループを含み、
    前記第1画像ブロック及び前記第2画像ブロックにおいて、前記複数のグループは、ブロックをカバーする範囲が最大となるように位置している請求項11から15のいずれか一項に記載のシステム。
  17. コンピュータ可読プログラムコード手段を記憶するコンピュータ可読媒体であって、コンピュータよって実行された場合に、請求項1から10のいずれか一項に記載の方法の段階を実行させるコンピュータ可読媒体。
JP2011520284A 2008-08-02 2008-10-16 動き補償ビデオ符号化における画像ブロック比較のためのメトリックを決定する方法及びシステム Pending JP2011530199A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/185,077 US8831101B2 (en) 2008-08-02 2008-08-02 Method and system for determining a metric for comparing image blocks in motion compensated video coding
US12/185,077 2008-08-02
PCT/CA2008/001821 WO2010015066A1 (en) 2008-08-02 2008-10-16 Method and system for determining a metric for comparing image blocks in motion compensated video coding

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2014152846A Division JP2014239497A (ja) 2008-08-02 2014-07-28 動き補償ビデオ符号化における画像ブロック比較のためのメトリックを決定する方法、システム、およびプログラム

Publications (1)

Publication Number Publication Date
JP2011530199A true JP2011530199A (ja) 2011-12-15

Family

ID=41608336

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2011520284A Pending JP2011530199A (ja) 2008-08-02 2008-10-16 動き補償ビデオ符号化における画像ブロック比較のためのメトリックを決定する方法及びシステム
JP2014152846A Pending JP2014239497A (ja) 2008-08-02 2014-07-28 動き補償ビデオ符号化における画像ブロック比較のためのメトリックを決定する方法、システム、およびプログラム

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2014152846A Pending JP2014239497A (ja) 2008-08-02 2014-07-28 動き補償ビデオ符号化における画像ブロック比較のためのメトリックを決定する方法、システム、およびプログラム

Country Status (8)

Country Link
US (1) US8831101B2 (ja)
EP (1) EP2304964A4 (ja)
JP (2) JP2011530199A (ja)
KR (1) KR101459397B1 (ja)
CN (1) CN102113328B (ja)
CA (1) CA2723910C (ja)
IL (1) IL209721A0 (ja)
WO (1) WO2010015066A1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8363727B2 (en) * 2008-09-30 2013-01-29 Microsoft Corporation Techniques to perform fast motion estimation
US8494056B2 (en) * 2009-05-21 2013-07-23 Ecole De Technologie Superieure Method and system for efficient video transcoding
US9100656B2 (en) 2009-05-21 2015-08-04 Ecole De Technologie Superieure Method and system for efficient video transcoding using coding modes, motion vectors and residual information
WO2011122200A1 (ja) 2010-03-29 2011-10-06 ソニー株式会社 データ処理装置およびデータ処理方法、画像処理装置および方法、並びに、プログラム
US8620372B2 (en) * 2010-09-30 2013-12-31 Apple Inc. Method and apparatus for transport format selection in a mobile wireless device
FR2966679A1 (fr) * 2010-10-25 2012-04-27 France Telecom Procedes et dispositifs de codage et de decodage d'au moins une image a partir d'un epitome, signal et programme d'ordinateur correspondants
GB2484969B (en) * 2010-10-29 2013-11-20 Canon Kk Improved reference frame for video encoding and decoding
US8755438B2 (en) 2010-11-29 2014-06-17 Ecole De Technologie Superieure Method and system for selectively performing multiple video transcoding operations
US9143799B2 (en) * 2011-05-27 2015-09-22 Cisco Technology, Inc. Method, apparatus and computer program product for image motion prediction
CN113965814B (zh) * 2021-08-30 2023-07-04 国网山东省电力公司信息通信公司 基于视频会议场景的多会场关键帧提取方法及系统
TWI801033B (zh) * 2021-12-13 2023-05-01 大陸商星宸科技股份有限公司 視訊編碼方法、視訊編碼裝置及影像處理裝置
CN116013072B (zh) * 2023-01-03 2024-02-13 深圳市易联联盟科技有限公司 一种基于深度学习应用的停车场出入车辆计数方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09182077A (ja) * 1995-12-25 1997-07-11 Nippon Telegr & Teleph Corp <Ntt> 画像符号化方法および画像符号化装置
JPH11239354A (ja) * 1998-02-23 1999-08-31 Mitsubishi Electric Corp 動きベクトル検出器
JP2004129099A (ja) * 2002-10-07 2004-04-22 Nec Corp 動きベクトル探索方法および装置
JP2004199222A (ja) * 2002-12-17 2004-07-15 Nec Corp 対称型画像フィルタ処理装置、プログラム、及びその方法

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5983251A (en) * 1993-09-08 1999-11-09 Idt, Inc. Method and apparatus for data analysis
US5764787A (en) * 1996-03-27 1998-06-09 Intel Corporation Multi-byte processing of byte-based image data
US6137837A (en) * 1998-01-23 2000-10-24 Motorola, Inc. Motion estimation for digital video with reduced number of search window pixels
JP2000134616A (ja) * 1998-10-26 2000-05-12 Sony Corp 近似画像探索装置及び方法
US6518974B2 (en) * 1999-07-16 2003-02-11 Intel Corporation Pixel engine
US6567469B1 (en) * 2000-03-23 2003-05-20 Koninklijke Philips Electronics N.V. Motion estimation algorithm suitable for H.261 videoconferencing applications
KR100778468B1 (ko) * 2000-12-12 2007-11-21 엘지전자 주식회사 움직임 추정 최적화 방법 및 장치
US6687301B2 (en) * 2001-03-19 2004-02-03 Fulvio Moschetti Method for block matching motion estimation in digital video sequences
US6671322B2 (en) * 2001-05-11 2003-12-30 Mitsubishi Electric Research Laboratories, Inc. Video transcoder with spatial resolution reduction
US7088780B2 (en) * 2001-05-11 2006-08-08 Mitsubishi Electric Research Labs, Inc. Video transcoder with drift compensation
EP1520431B1 (en) * 2002-07-01 2018-12-26 E G Technology Inc. Efficient compression and transport of video over a network
US6925123B2 (en) * 2002-08-06 2005-08-02 Motorola, Inc. Method and apparatus for performing high quality fast predictive motion search
JP2004234407A (ja) * 2003-01-31 2004-08-19 Hitachi Ulsi Systems Co Ltd データ処理装置
US20050175099A1 (en) * 2004-02-06 2005-08-11 Nokia Corporation Transcoder and associated system, method and computer program product for low-complexity reduced resolution transcoding
WO2005081524A1 (en) * 2004-02-23 2005-09-01 Koninklijke Philips Electronics N.V. Reducing artefacts in scan-rate conversion of image signals by combining interpolation and extrapolation of images
KR101196429B1 (ko) * 2004-03-12 2012-11-01 삼성전자주식회사 동영상 트랜스코딩 방법 및 그 장치, 이에 사용되는움직임 벡터 보간방법
US8665955B2 (en) * 2004-06-11 2014-03-04 Nxp, B.V. Method of storing pictures in a memory using compression coding and cost function including power consumption
US7447337B2 (en) * 2004-10-25 2008-11-04 Hewlett-Packard Development Company, L.P. Video content understanding through real time video motion analysis
KR101239304B1 (ko) * 2004-11-03 2013-03-05 실리콘 하이브 비.브이. Simd 명령을 지원하는 프로그램 가능한 데이터 처리회로
US8913660B2 (en) * 2005-04-14 2014-12-16 Fastvdo, Llc Device and method for fast block-matching motion estimation in video encoders
US7912127B2 (en) * 2005-08-05 2011-03-22 Lsi Corporation H.264 to VC-1 and VC-1 to H.264 transcoding
US8447121B2 (en) * 2005-09-14 2013-05-21 Microsoft Corporation Efficient integrated digital video transcoding
US20070201554A1 (en) * 2006-02-24 2007-08-30 Samsung Electronics Co., Ltd. Video transcoding method and apparatus
WO2007124163A2 (en) * 2006-04-21 2007-11-01 Dilithium Networks Pty Ltd. Method and apparatus for video mixing
US20080002770A1 (en) * 2006-06-30 2008-01-03 Nokia Corporation Methods, apparatus, and a computer program product for providing a fast inter mode decision for video encoding in resource constrained devices
US20080019559A1 (en) * 2006-07-21 2008-01-24 Xerox Corporation Digital watermarking process
US8428118B2 (en) * 2006-08-17 2013-04-23 Ittiam Systems (P) Ltd. Technique for transcoding MPEG-2/MPEG-4 bitstream to H.264 bitstream
US8331448B2 (en) * 2006-12-22 2012-12-11 Qualcomm Incorporated Systems and methods for efficient spatial intra predictabilty determination (or assessment)
US8311120B2 (en) * 2006-12-22 2012-11-13 Qualcomm Incorporated Coding mode selection using information of other coding modes
US20080205515A1 (en) * 2007-01-25 2008-08-28 Florida Atlantic University Video encoding with reduced complexity
US8265157B2 (en) * 2007-02-07 2012-09-11 Lsi Corporation Motion vector refinement for MPEG-2 to H.264 video transcoding
KR101545008B1 (ko) * 2007-06-26 2015-08-18 코닌클리케 필립스 엔.브이. 3d 비디오 신호를 인코딩하기 위한 방법 및 시스템, 동봉된 3d 비디오 신호, 3d 비디오 신호용 디코더에 대한 방법 및 시스템
US9197903B2 (en) * 2007-10-17 2015-11-24 Stmicroelectronics S.R.L. Method and system for determining a macroblock partition for data transcoding
US8582652B2 (en) * 2007-10-30 2013-11-12 General Instrument Corporation Method and apparatus for selecting a coding mode
JP4941273B2 (ja) 2007-12-20 2012-05-30 株式会社Jvcケンウッド 路車間通信システム
JPWO2009133845A1 (ja) * 2008-04-30 2011-09-01 株式会社東芝 動画像符号化/復号化装置及び方法
US8494056B2 (en) * 2009-05-21 2013-07-23 Ecole De Technologie Superieure Method and system for efficient video transcoding
US20120027091A1 (en) * 2010-07-28 2012-02-02 Wei-Lien Hsu Method and System for Encoding Video Frames Using a Plurality of Processors
JP2012034213A (ja) * 2010-07-30 2012-02-16 Toshiba Corp 画像処理装置、画像処理システムおよび画像処理方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09182077A (ja) * 1995-12-25 1997-07-11 Nippon Telegr & Teleph Corp <Ntt> 画像符号化方法および画像符号化装置
JPH11239354A (ja) * 1998-02-23 1999-08-31 Mitsubishi Electric Corp 動きベクトル検出器
JP2004129099A (ja) * 2002-10-07 2004-04-22 Nec Corp 動きベクトル探索方法および装置
JP2004199222A (ja) * 2002-12-17 2004-07-15 Nec Corp 対称型画像フィルタ処理装置、プログラム、及びその方法

Also Published As

Publication number Publication date
EP2304964A4 (en) 2015-11-11
KR101459397B1 (ko) 2014-11-10
US8831101B2 (en) 2014-09-09
US20100027662A1 (en) 2010-02-04
CN102113328B (zh) 2013-06-12
CA2723910A1 (en) 2010-02-11
EP2304964A1 (en) 2011-04-06
CN102113328A (zh) 2011-06-29
WO2010015066A1 (en) 2010-02-11
JP2014239497A (ja) 2014-12-18
KR20110050480A (ko) 2011-05-13
CA2723910C (en) 2014-09-30
IL209721A0 (en) 2011-02-28

Similar Documents

Publication Publication Date Title
JP2014239497A (ja) 動き補償ビデオ符号化における画像ブロック比較のためのメトリックを決定する方法、システム、およびプログラム
US9699458B2 (en) Image encoding apparatus, image encoding method, image decoding apparatus, and image decoding method
US8761254B2 (en) Image prediction encoding device, image prediction decoding device, image prediction encoding method, image prediction decoding method, image prediction encoding program, and image prediction decoding program
WO2019242491A1 (zh) 视频编码、解码方法、装置、计算机设备和存储介质
CN108833923B (zh) 视频编码、解码方法、装置、存储介质和计算机设备
JP7114153B2 (ja) ビデオエンコーディング、デコーディング方法、装置、コンピュータ機器及びコンピュータプログラム
US20090290641A1 (en) Digital video compression acceleration based on motion vectors produced by cameras
JP6636615B2 (ja) 動きベクトル場の符号化方法、復号方法、符号化装置、および復号装置
CN118055253A (zh) 用于视频代码化中的运动补偿预测的光流估计
JP2004519909A (ja) 細粒度スケーラビリティビデオ符号化における上位レイヤのための改善された予測構造
US8923389B1 (en) Unified scaling with differential coding for internal bit depth extension and reference frame compression
JP4494803B2 (ja) 動き補償に基づいた改善されたノイズ予測方法及びその装置とそれを使用した動画符号化方法及びその装置
US6909750B2 (en) Detection and proper interpolation of interlaced moving areas for MPEG decoding with embedded resizing
JP2018511237A (ja) コンテンツ適応型bピクチャパターンビデオエンコーディング
KR101085963B1 (ko) 동영상 부호화 장치 및 방법
JP2010010917A (ja) 動画像符号化装置、動画像復号装置、動画像符号化方法、及び動画像復号方法
JP6875566B2 (ja) 動画像予測符号化装置、動画像予測復号装置、動画像予測符号化方法、動画像予測復号方法及び動画像予測復号プログラム
JP2008311824A (ja) 画像符号化装置および画像符号化プログラム
KR20100082700A (ko) 와이너-지브 부호화 및 복호화 시스템 및 방법
JP2007510344A (ja) 電力最適化された配列動き予測方法
JP2012120108A (ja) 補間画像生成装置及びプログラム、並びに、動画像復号装置及びプログラム
JP2007110672A (ja) 符号化方法
JP6071618B2 (ja) 画像処理装置及びプログラム
JP5681557B2 (ja) 映像再生方法、映像再生装置、及び映像再生プログラム
JP2004336640A (ja) 画像処理装置および方法、記録媒体、並びにプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111014

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121011

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130604

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130830

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140401